From 829313765e367fb9a427c6f2eaa802754e530de2 Mon Sep 17 00:00:00 2001 From: claw Date: Mon, 18 May 2026 14:09:14 +0800 Subject: [PATCH] Update: add Prolog translation, 4A system design, Mermaid, Hextra partials & blog articles --- 4a-system-design/ai-cicd.md | 388 ++++ 4a-system-design/audit-center.md | 477 ++++ 4a-system-design/auth-identity-center.md | 382 ++++ 4a-system-design/overview.md | 160 ++ 4a-system-design/resource-centers.md | 532 +++++ README.md | 6 +- assets/css/custom.css | 27 +- assets/js/mermaid.min.js | 2024 +++++++++++++++++ content/_index.md | 12 +- content/about/_index.md | 24 +- content/blog/_index.md | 4 +- content/blog/ai-assistant-first-week.md | 116 + content/blog/ai-productivity-observation.md | 55 + content/blog/prolog-pokemon.md | 532 +++++ hugo.yaml | 4 + static/images/fusheng.jpg | Bin 0 -> 221010 bytes themes/hextra/layouts/partials/banner.html | 19 + .../hextra/layouts/partials/breadcrumb.html | 17 + .../components/analytics/analytics.html | 24 + .../components/analytics/goat-counter.html | 17 + .../analytics/google-analytics.html | 13 + .../partials/components/analytics/matomo.html | 31 + .../partials/components/analytics/umami.html | 57 + .../partials/components/blog-pager.html | 39 + .../components/codeblock-copy-button.html | 17 + .../partials/components/codeblock.html | 29 + .../layouts/partials/components/comments.html | 11 + .../layouts/partials/components/giscus.html | 89 + .../components/github-style-alert.html | 53 + .../partials/components/last-updated.html | 20 + .../components/page-context-menu.html | 90 + .../layouts/partials/components/pager.html | 53 + .../layouts/partials/custom/banner.html | 0 .../layouts/partials/custom/footer.html | 0 .../layouts/partials/custom/head-end.html | 0 .../layouts/partials/custom/navbar-title.html | 0 themes/hextra/layouts/partials/favicons.html | 6 + themes/hextra/layouts/partials/footer.html | 44 + .../layouts/partials/google-analytics.html | 2 + themes/hextra/layouts/partials/head.html | 81 + .../layouts/partials/language-switch.html | 58 + .../hextra/layouts/partials/navbar-link.html | 88 + .../hextra/layouts/partials/navbar-title.html | 16 + themes/hextra/layouts/partials/navbar.html | 59 + themes/hextra/layouts/partials/opengraph.html | 96 + themes/hextra/layouts/partials/scripts.html | 20 + .../layouts/partials/scripts/asciinema.html | 132 ++ .../hextra/layouts/partials/scripts/core.html | 10 + .../layouts/partials/scripts/katex.html | 88 + .../layouts/partials/scripts/mathjax.html | 20 + .../layouts/partials/scripts/medium-zoom.html | 82 + .../layouts/partials/scripts/mermaid.html | 76 + .../layouts/partials/scripts/search.html | 60 + themes/hextra/layouts/partials/search.html | 30 + .../layouts/partials/shortcodes/badge.html | 38 + .../layouts/partials/shortcodes/callout.html | 28 + .../layouts/partials/shortcodes/card.html | 70 + .../layouts/partials/shortcodes/cards.html | 6 + .../layouts/partials/shortcodes/tabs.html | 48 + themes/hextra/layouts/partials/sidebar.html | 326 +++ themes/hextra/layouts/partials/tags.html | 7 + .../hextra/layouts/partials/theme-toggle.html | 83 + themes/hextra/layouts/partials/toc.html | 91 + .../partials/utils/extract-headings.html | 31 + .../layouts/partials/utils/file-path.html | 21 + .../layouts/partials/utils/format-date.html | 3 + .../layouts/partials/utils/fragments.html | 93 + .../utils/hugo-compat/language-direction.html | 15 + .../utils/hugo-compat/language-label.html | 15 + .../utils/hugo-compat/language-locale.html | 15 + .../partials/utils/hugo-compat/site-data.html | 14 + .../partials/utils/hugo-compat/sites.html | 14 + .../hextra/layouts/partials/utils/icon.html | 15 + .../layouts/partials/utils/lang-link.html | 25 + .../partials/utils/page-description.html | 11 + .../partials/utils/page-width-override.html | 10 + .../layouts/partials/utils/sort-pages.html | 32 + .../layouts/partials/utils/template-url.html | 18 + .../hextra/layouts/partials/utils/title.html | 19 + .../hextra/layouts/shortcodes/asciinema.html | 88 + themes/hextra/layouts/shortcodes/badge.html | 54 + themes/hextra/layouts/shortcodes/callout.html | 57 + themes/hextra/layouts/shortcodes/card.html | 72 + themes/hextra/layouts/shortcodes/cards.html | 11 + themes/hextra/layouts/shortcodes/details.html | 20 + .../shortcodes/hextra-feature-card.html | 51 + .../shortcodes/hextra-feature-grid.html | 21 + .../layouts/shortcodes/hextra-hero-badge.html | 24 + .../shortcodes/hextra-hero-button.html | 25 + .../shortcodes/hextra-hero-container.html | 56 + .../shortcodes/hextra-hero-headline.html | 16 + .../shortcodes/hextra-hero-section.html | 20 + .../shortcodes/hextra-hero-subtitle.html | 16 + themes/hextra/layouts/shortcodes/icon.html | 28 + themes/hextra/layouts/shortcodes/include.html | 22 + themes/hextra/layouts/shortcodes/jupyter.html | 88 + themes/hextra/layouts/shortcodes/pdf.html | 15 + themes/hextra/layouts/shortcodes/steps.html | 9 + themes/hextra/layouts/shortcodes/tab.html | 28 + themes/hextra/layouts/shortcodes/tabs.html | 39 + themes/hextra/layouts/shortcodes/term.html | 33 + 101 files changed, 8087 insertions(+), 44 deletions(-) create mode 100644 4a-system-design/ai-cicd.md create mode 100644 4a-system-design/audit-center.md create mode 100644 4a-system-design/auth-identity-center.md create mode 100644 4a-system-design/overview.md create mode 100644 4a-system-design/resource-centers.md create mode 100644 assets/js/mermaid.min.js create mode 100644 content/blog/ai-assistant-first-week.md create mode 100644 content/blog/ai-productivity-observation.md create mode 100644 content/blog/prolog-pokemon.md create mode 100644 static/images/fusheng.jpg create mode 100644 themes/hextra/layouts/partials/banner.html create mode 100644 themes/hextra/layouts/partials/breadcrumb.html create mode 100644 themes/hextra/layouts/partials/components/analytics/analytics.html create mode 100644 themes/hextra/layouts/partials/components/analytics/goat-counter.html create mode 100644 themes/hextra/layouts/partials/components/analytics/google-analytics.html create mode 100644 themes/hextra/layouts/partials/components/analytics/matomo.html create mode 100644 themes/hextra/layouts/partials/components/analytics/umami.html create mode 100644 themes/hextra/layouts/partials/components/blog-pager.html create mode 100644 themes/hextra/layouts/partials/components/codeblock-copy-button.html create mode 100644 themes/hextra/layouts/partials/components/codeblock.html create mode 100644 themes/hextra/layouts/partials/components/comments.html create mode 100644 themes/hextra/layouts/partials/components/giscus.html create mode 100644 themes/hextra/layouts/partials/components/github-style-alert.html create mode 100644 themes/hextra/layouts/partials/components/last-updated.html create mode 100644 themes/hextra/layouts/partials/components/page-context-menu.html create mode 100644 themes/hextra/layouts/partials/components/pager.html create mode 100644 themes/hextra/layouts/partials/custom/banner.html create mode 100644 themes/hextra/layouts/partials/custom/footer.html create mode 100644 themes/hextra/layouts/partials/custom/head-end.html create mode 100644 themes/hextra/layouts/partials/custom/navbar-title.html create mode 100644 themes/hextra/layouts/partials/favicons.html create mode 100644 themes/hextra/layouts/partials/footer.html create mode 100644 themes/hextra/layouts/partials/google-analytics.html create mode 100644 themes/hextra/layouts/partials/head.html create mode 100644 themes/hextra/layouts/partials/language-switch.html create mode 100644 themes/hextra/layouts/partials/navbar-link.html create mode 100644 themes/hextra/layouts/partials/navbar-title.html create mode 100644 themes/hextra/layouts/partials/navbar.html create mode 100644 themes/hextra/layouts/partials/opengraph.html create mode 100644 themes/hextra/layouts/partials/scripts.html create mode 100644 themes/hextra/layouts/partials/scripts/asciinema.html create mode 100644 themes/hextra/layouts/partials/scripts/core.html create mode 100644 themes/hextra/layouts/partials/scripts/katex.html create mode 100644 themes/hextra/layouts/partials/scripts/mathjax.html create mode 100644 themes/hextra/layouts/partials/scripts/medium-zoom.html create mode 100644 themes/hextra/layouts/partials/scripts/mermaid.html create mode 100644 themes/hextra/layouts/partials/scripts/search.html create mode 100644 themes/hextra/layouts/partials/search.html create mode 100644 themes/hextra/layouts/partials/shortcodes/badge.html create mode 100644 themes/hextra/layouts/partials/shortcodes/callout.html create mode 100644 themes/hextra/layouts/partials/shortcodes/card.html create mode 100644 themes/hextra/layouts/partials/shortcodes/cards.html create mode 100644 themes/hextra/layouts/partials/shortcodes/tabs.html create mode 100644 themes/hextra/layouts/partials/sidebar.html create mode 100644 themes/hextra/layouts/partials/tags.html create mode 100644 themes/hextra/layouts/partials/theme-toggle.html create mode 100644 themes/hextra/layouts/partials/toc.html create mode 100644 themes/hextra/layouts/partials/utils/extract-headings.html create mode 100644 themes/hextra/layouts/partials/utils/file-path.html create mode 100644 themes/hextra/layouts/partials/utils/format-date.html create mode 100644 themes/hextra/layouts/partials/utils/fragments.html create mode 100644 themes/hextra/layouts/partials/utils/hugo-compat/language-direction.html create mode 100644 themes/hextra/layouts/partials/utils/hugo-compat/language-label.html create mode 100644 themes/hextra/layouts/partials/utils/hugo-compat/language-locale.html create mode 100644 themes/hextra/layouts/partials/utils/hugo-compat/site-data.html create mode 100644 themes/hextra/layouts/partials/utils/hugo-compat/sites.html create mode 100644 themes/hextra/layouts/partials/utils/icon.html create mode 100644 themes/hextra/layouts/partials/utils/lang-link.html create mode 100644 themes/hextra/layouts/partials/utils/page-description.html create mode 100644 themes/hextra/layouts/partials/utils/page-width-override.html create mode 100644 themes/hextra/layouts/partials/utils/sort-pages.html create mode 100644 themes/hextra/layouts/partials/utils/template-url.html create mode 100644 themes/hextra/layouts/partials/utils/title.html create mode 100644 themes/hextra/layouts/shortcodes/asciinema.html create mode 100644 themes/hextra/layouts/shortcodes/badge.html create mode 100644 themes/hextra/layouts/shortcodes/callout.html create mode 100644 themes/hextra/layouts/shortcodes/card.html create mode 100644 themes/hextra/layouts/shortcodes/cards.html create mode 100644 themes/hextra/layouts/shortcodes/details.html create mode 100644 themes/hextra/layouts/shortcodes/hextra-feature-card.html create mode 100644 themes/hextra/layouts/shortcodes/hextra-feature-grid.html create mode 100644 themes/hextra/layouts/shortcodes/hextra-hero-badge.html create mode 100644 themes/hextra/layouts/shortcodes/hextra-hero-button.html create mode 100644 themes/hextra/layouts/shortcodes/hextra-hero-container.html create mode 100644 themes/hextra/layouts/shortcodes/hextra-hero-headline.html create mode 100644 themes/hextra/layouts/shortcodes/hextra-hero-section.html create mode 100644 themes/hextra/layouts/shortcodes/hextra-hero-subtitle.html create mode 100644 themes/hextra/layouts/shortcodes/icon.html create mode 100644 themes/hextra/layouts/shortcodes/include.html create mode 100644 themes/hextra/layouts/shortcodes/jupyter.html create mode 100644 themes/hextra/layouts/shortcodes/pdf.html create mode 100644 themes/hextra/layouts/shortcodes/steps.html create mode 100644 themes/hextra/layouts/shortcodes/tab.html create mode 100644 themes/hextra/layouts/shortcodes/tabs.html create mode 100644 themes/hextra/layouts/shortcodes/term.html diff --git a/4a-system-design/ai-cicd.md b/4a-system-design/ai-cicd.md new file mode 100644 index 0000000..9b871c9 --- /dev/null +++ b/4a-system-design/ai-cicd.md @@ -0,0 +1,388 @@ +# AI全流程兜底闭环 + +## 1. 核心理念 + +两个月自研一套对标泰岳的4A系统,**不可能靠纯人工完成**。AI不是锦上添花,而是项目成功的前提条件。 + +核心策略:**AI最大化替代重复性工作,人工聚焦架构设计、安全审查和关键决策。** + +--- + +## 2. AI在各个阶段的介入点 + +### 2.1 开发阶段 + +``` +┌─────────────────────────────────────────────────────────────────────┐ +│ 开发阶段 AI 介入 │ +│ │ +│ ┌────────────────────┐ ┌────────────────────┐ │ +│ │ AI代码生成 │ │ AI代码审查 │ │ +│ │ │ │ │ │ +│ │ • API层CRUD代码 │ │ • 安全漏洞扫描 │ │ +│ │ • 数据模型→SQL │ │ (SQL注入/XSS/越权) │ │ +│ │ • Service层业务逻辑 │ │ • 接口规范一致性检查 │ │ +│ │ • 前端列表/表单页面 │ │ • 日志埋点完整性检查 │ │ +│ │ • 单元测试代码 │ │ • 异常处理覆盖率检查 │ │ +│ │ • 接口文档生成 │ │ • 代码风格统一 │ │ +│ └────────────────────┘ └────────────────────┘ │ +│ │ +│ ┌────────────────────┐ ┌────────────────────┐ │ +│ │ AI数据模型辅助 │ │ AI对接适配器生成 │ │ +│ │ │ │ │ │ +│ │ • 从泰岳界面反推 │ │ • 金科人脸API适配器 │ │ +│ │ 数据模型 │ │ • 消息中心API适配器 │ │ +│ │ • 字段映射脚本生成 │ │ • 现网账号同步适配器 │ │ +│ │ • 数据迁移/同步 │ │ • 亚信接口规范适配器 │ │ +│ │ 代码生成 │ │ • 泰岳接口模拟器 │ │ +│ └────────────────────┘ └────────────────────┘ │ +└─────────────────────────────────────────────────────────────────────┘ +``` + +**AI代码生成策略**: + +1. **模型选型**:使用 DeepSeek/Claude 等具有编程能力的模型 +2. **Prompt模板化**:为每种代码类型(API CRUD、数据模型、单元测试、接口适配层)建立标准 Prompt +3. **微调/知识注入**:将本项目的表结构定义、接口规范作为 System Prompt 上下文 +4. **人机协作**:AI生成初稿 → 人工审查 → AI根据Review意见修正 → 循环至满意 +5. **生成量目标**:争取 60-70% 的业务代码由AI完成初稿 + +### 2.2 测试阶段 + +``` +┌──────────────────────────────────────────────────────────────────────┐ +│ 测试阶段 AI 介入 │ +│ │ +│ 1. 测试用例自动生成 │ +│ ┌──────────────────────────────────────────────────────────┐ │ +│ │ 输入: API接口定义/数据模型/业务规则描述 → AI生成: │ │ +│ │ - 正常流程测试用例集 │ │ +│ │ - 异常路径测试用例集(参数错误/越权/并发/超时) │ │ +│ │ - 边界条件测试用例集(空值/超长/特殊字符/数据溢出) │ │ +│ │ - 安全性测试用例(SQL注入/XSS/CSRF/越权枚举) │ │ +│ │ - 压力测试基准脚本 │ │ +│ └──────────────────────────────────────────────────────────┘ │ +│ │ +│ 2. 与泰岳版行为比对测试 │ +│ ┌──────────────────────────────────────────────────────────┐ │ +│ │ AI Agent 框架: │ │ +│ │ │ │ +│ │ ① AI录制泰岳版操作 → 生成操作序列 │ │ +│ │ ② AI将操作序列转为自动化测试脚本 │ │ +│ │ ③ AI同时在泰岳版和自研版执行测试脚本 │ │ +│ │ ④ AI比对两系统的: │ │ +│ │ - 接口请求/响应差异 │ │ +│ │ - 界面元素/流程差异 │ │ +│ │ - 数据持久化结果差异 │ │ +│ │ ⑤ AI输出差异报告,标注关键程度 │ │ +│ └──────────────────────────────────────────────────────────┘ │ +│ │ +│ 3. 回归测试自愈 │ +│ - 当代码变更导致测试失败时,AI自动分析失败原因 │ +│ - 测试预期结果过时?AI自动更新测试用例 │ +│ - 产品逻辑改变?AI识别并标记为"预期变化" │ +│ - 测试环境问题?AI标记为"环境异常"而非"功能失败" │ +└──────────────────────────────────────────────────────────────────────┘ +``` + +### 2.3 部署阶段 + +``` +┌──────────────────────────────────────────────────────────────────────┐ +│ 部署阶段 AI 介入 │ +│ │ +│ 1. 基础设施编排 │ +│ ┌───────────────────────────────────────────────────────────┐ │ +│ │ AI生成 Ansible Playbook / Terraform 配置: │ │ +│ │ - 服务器初始化(OS调优、安全基线配置) │ │ +│ │ - 中间件部署(Nginx/Redis/MySQL/ES/MinIO) │ │ +│ │ - 应用部署(认证中心/资源中心/审计中心各模块) │ │ +│ │ - 网络策略配置(防火墙规则、反向代理、TLS证书) │ │ +│ └───────────────────────────────────────────────────────────┘ │ +│ │ +│ 2. 配置差异自适应 │ +│ ┌───────────────────────────────────────────────────────────┐ │ +│ │ 当部署失败时,AI分析错误日志: │ │ +│ │ - 配置参数与环境不匹配?AI推荐正确值 │ │ +│ │ - 依赖组件版本冲突?AI推荐兼容版本组合 │ │ +│ │ - 权限问题?AI生成正确的权限设置命令 │ │ +│ │ - 网络不可达?AI诊断网络路径 + 推荐修复方案 │ │ +│ └───────────────────────────────────────────────────────────┘ │ +│ │ +│ 3. CI/CD Pipeline │ +│ ┌───────────────────────────────────────────────────────────┐ │ +│ │ 流水线步骤(AI辅助维护): │ │ +│ │ │ │ +│ │ [代码提交] → [AI代码审查] → [AI生成测试] → [自动编译] │ │ +│ │ → [单元测试] → [集成测试] → [AI比对测试] → [安全扫描] │ │ +│ │ → [构建镜像] → [部署到测试环境] → [冒烟测试] → [通知] │ │ +│ └───────────────────────────────────────────────────────────┘ │ +└──────────────────────────────────────────────────────────────────────┘ +``` + +### 2.4 运维阶段 + +``` +┌──────────────────────────────────────────────────────────────────────┐ +│ 运维阶段 AI 介入 │ +│ │ +│ 1. 智能告警与根因分析 │ +│ ┌───────────────────────────────────────────────────────────┐ │ +│ 场景1:用户反馈"登录不上了" │ │ +│ AI排查链路:API超时?→ Redis连接失败?→ Redis进程挂了? │ │ +│ → OOM被Killed?→ 内存泄漏? │ │ +│ 根因定位后AI自动在5分钟内输出根因报告 + 修复方案 │ │ +│ │ +│ 场景2:SSO跳转后白屏 │ │ +│ AI排查链路:前端报错→ API返回500 → 后端日志ClassNotFound │ │ +│ → 发版时删了jar包 → 回滚建议 │ │ +│ └───────────────────────────────────────────────────────────┘ │ +│ │ +│ 2. 数据一致性巡检 │ +│ ┌───────────────────────────────────────────────────────────┐ │ +│ AI Agent定时任务(每天凌晨执行): │ │ +│ ✓ 自研系统账号数与现网账号平台对比 → 偏差 > 0.1% 告警 │ │ +│ ✓ 昨日新增的日志量与API调用量匹配度 → 缺漏事件告警 │ │ +│ ✓ 授权数据完整性和无循环引用 → 数据损坏告警 │ │ +│ ✓ 密钥轮换成功率检测 → 失败操作通知管理员 │ │ +│ └───────────────────────────────────────────────────────────┘ │ +│ │ +│ 3. 性能基线追踪 │ +│ ┌───────────────────────────────────────────────────────────┐ │ +│ 持续采集: │ │ +│ - API响应时间 P50/P95/P99(按接口维度) │ │ +│ - 认证成功率/耗时趋势 │ │ +│ - ES查询响应时间趋势 │ │ +│ - 堡垒机并发数/响应延迟趋势 │ │ +│ │ +│ 当性能偏离基线 > 20%时,AI自动生成性能分析报告 │ │ +│ 与上一发版/配置变更/流量突增做关联分析 │ │ +│ └───────────────────────────────────────────────────────────┘ │ +└──────────────────────────────────────────────────────────────────────┘ +``` + +--- + +## 3. 与泰岳版的比对验证方案 + +### 3.1 验证框架 + +``` +┌────────────────────────────────────────────────────────────────────────┐ +│ 比对验证框架 │ +│ │ +│ ┌────────────────────┐ ┌────────────────────┐ │ +│ │ 功能覆盖度验证 │ │ 行为一致性验证 │ │ +│ ├────────────────────┤ ├────────────────────┤ │ +│ │ 工具: AI扫描 + │ │ 工具: AI Agent │ │ +│ │ 功能矩阵表 │ │ 录制→回放→比对 │ │ +│ │ 方法: │ │ 方法: │ │ +│ │ ① 列出泰岳版所有 │ │ ① 录制泰岳版操作 │ │ +│ │ 功能点 │ │ ② 生成测试脚本 │ │ +│ │ ② 逐项标记自研版 │ │ ③ 在两系统执行 │ │ +│ │ 覆盖状态 │ │ ④ AI比对行为差异 │ │ +│ │ ③ AI辅助识别遗漏 │ │ ⑤ 输出差异报告 │ │ +│ └────────────────────┘ └────────────────────┘ │ +│ │ +│ ┌────────────────────┐ ┌────────────────────┐ │ +│ │ 性能基准验证 │ │ 安全基准验证 │ │ +│ ├────────────────────┤ ├────────────────────┤ │ +│ │ 工具: JMeter/k6 │ │ 工具: 安全扫描器+AI │ │ +│ │ 方法: │ │ 方法: │ │ +│ │ ① 相同硬件上运行 │ │ ① OWASP Top10扫描 │ │ +│ │ ② 定义核心场景 │ │ ② 认证机制审查 │ │ +│ │ (登录/SSO/授权/ │ │ ③ 敏感数据加密审计 │ │ +│ │ 日志查询) │ │ ④ 越权测试 │ │ +│ │ ③ 逐步增加并发 │ │ ⑤ AI对比差异 + │ │ +│ │ ④ AI输出对比曲线 │ │ 给出安全建议 │ │ +│ └────────────────────┘ └────────────────────┘ │ +└────────────────────────────────────────────────────────────────────────┘ +``` + +### 3.2 功能覆盖度矩阵(示例片段) + +| 功能模块 | 功能点 | 泰岳版 | 自研版 | 完成度 | 备注 | +|---------|--------|--------|--------|--------|------| +| 认证 | 密码认证 | ✓ | ✓ | 100% | | +| 认证 | 短信验证码 | ✓ | ✓ | 100% | | +| 认证 | 人脸识别认证 | ✓ | ✓ | 100% | 金科接口 | +| 认证 | SIM卡无感认证 | — | ✓ | 100% | 自研特有 | +| 认证 | LDAP集成 | ✓ | ☐ | 0% | 二期 | +| 认证 | MFA策略配置 | ✓ | ✓ | 100% | | +| 账号 | 账号新建 | ✓ | ✓ | 100% | | +| 账号 | 账号批量导入 | ✓ | ✓ | 100% | | +| 账号 | 账号同步(多源) | ✓ | ✓ | 100% | | +| 账号 | 密码策略配置 | ✓ | ✓ | 100% | | +| 应用SSO | OIDC协议 | ✓ | ✓ | 100% | | +| 应用SSO | SAML协议 | ✓ | ✓ | 80% | 部分场景验证中 | +| 应用权限 | RBAC模型 | ✓ | ✓ | 100% | | +| 应用权限 | ABAC策略 | — | ✓ | 100% | 自研特有 | +| 应用权限 | 临时授权 | ✓ | ✓ | 100% | | +| 系统资源 | 资产纳管 | ✓ | ✓ | 100% | | +| 系统资源 | 批量导入资产 | ✓ | ✓ | 100% | | +| 系统资源 | 命令白名单 | ✓ | ✓ | 100% | | +| 系统资源 | 命令拦截 | ✓ | ✓ | 100% | | +| 系统资源 | 密码轮换 | ✓ | ✓ | 50% | 实现中 | +| 堡垒机 | SSH单点登录 | ✓ | ✓ | 100% | | +| 堡垒机 | RDP单点登录 | ✓ | ☐ | 0% | 二期 | +| 堡垒机 | 会话录制 | ✓ | ✓ | 100% | | +| 堡垒机 | 会话回放 | ✓ | ✓ | 80% | 播放器优化中 | +| 审计 | 操作日志 | ✓ | ✓ | 100% | | +| 审计 | 合规规则引擎 | — | ✓ | 100% | 自研特有 | +| 审计 | 定时报表 | ✓ | ✓ | 100% | | +| 审计 | 自定义报表 | ✓ | ✓ | 80% | 查询条件还在完善 | + +### 3.3 比对验证AI Agent(核心设计) + +```yaml +验证Agent设计: + + 输入: + - 泰岳版API/界面操作录制 + - 自研版API/界面操作 + - 期望行为描述 + + 处理流程: + 1. 理解场景: 从录制内容中提取操作步骤和预期结果 + 2. 脚本生成: 将操作步骤转换为可执行的测试脚本 + 3. 双系统执行: 并行在泰岳版和自研版中执行 + 4. 结果采集: 捕获接口请求/响应、页面状态、数据变更 + 5. 差异分析: + - 返回JSON字段差异 + - 流程状态机步骤差异 + - 数据持久化差异 + - 错误处理差异 + 6. 差异分级: + Critical: 功能缺失/数据丢失 + Major: 行为不符合预期 + Minor: 界面/错误提示文本差异 + Info: 实现方式不同但结果一致 + 7. 报告生成: 输出结构化差异报告 + + 输出: + - 功能覆盖度百分比 + - 行为一致度评分 + - 差异清单(含分级和截图/调用链) + - 建议排期(哪些差异需要立即修复) +``` + +--- + +## 4. 用户发现问题 → 闭环解决的AI全链路支持 + +### 4.1 问题闭环流程 + +``` +┌──────────────────────────────────────────────────────────────────────┐ +│ 用户反馈 → AI初步诊断 → 自动修复/路由 → 人工确认 → 知识沉淀 │ +│ │ +│ 阶段1: 用户反馈 │ +│ ┌──────────────────────────────────────────────────────────────┐ │ +│ │ 用户: "我通过4A跳转到报销系统,显示'无权限',但我昨天还能用" │ │ +│ └──────────────────────────────────────────────────────────────┘ │ +│ │ │ +│ ▼ │ +│ 阶段2: AI初步诊断 │ +│ ┌──────────────────────────────────────────────────────────────┐ │ +│ │ AI Agent 自动排查: │ │ +│ │ ① 查询该用户的权限分配记录(最近变更) │ │ +│ │ ② 查询报销系统的应用注册配置是否变更 │ │ +│ │ ③ 查询用户所属组织的角色继承链路 │ │ +│ │ ④ 检查授权有效期是否已过期 │ │ +│ │ ⑤ 模拟该用户的权限验证请求 │ │ +│ │ │ │ +│ │ 初步结论:用户角色有效期已过期(昨日到期) │ │ +│ └──────────────────────────────────────────────────────────────┘ │ +│ │ │ +│ ▼ │ +│ 阶段3: 自动修复 / 路由 │ +│ ┌──────────────────────────────────────────────────────────────┐ │ +│ │ 自动处理: │ │ +│ │ ① 生成角色续期申请单(自动填充用户信息+原有角色) │ │ +│ │ ② 推送给用户的直接上级审批 │ │ +│ │ ③ 回复用户:"经排查,您对报销系统的访问权限已于昨日到期。 │ │ +│ │ 已为您生成续期申请,请等待审批人确认,预计5分钟内恢复。" │ │ +│ └──────────────────────────────────────────────────────────────┘ │ +│ │ │ +│ ▼ │ +│ 阶段4: 人工确认 │ +│ ┌──────────────────────────────────────────────────────────────┐ │ +│ │ 审批人确认 → 权限生效 │ │ +│ │ AI自动通知用户:"权限已恢复,请重新登录报销系统" │ │ +│ └──────────────────────────────────────────────────────────────┘ │ +│ │ │ +│ ▼ │ +│ 阶段5: 知识沉淀 │ +│ ┌──────────────────────────────────────────────────────────────┐ │ +│ │ AI将本次问题 + 排查链路 + 修复方案 存入"问题知识库" │ │ +│ │ 同类问题下次出现时,AI可更快定位 + 自动修复 │ │ +│ │ 定期输出"常见问题处理SOP" 给运维团队 │ │ +│ └──────────────────────────────────────────────────────────────┘ │ +└──────────────────────────────────────────────────────────────────────┘ +``` + +### 4.2 问题知识库设计 + +```sql +CREATE TABLE T_ISSUE_KNOWLEDGE ( + id BIGINT PRIMARY KEY AUTO_INCREMENT, + issue_type VARCHAR(64) NOT NULL COMMENT '问题类型', + symptom TEXT NOT NULL COMMENT '用户描述的症状', + diagnosis_steps JSON NOT NULL COMMENT '排查步骤(结构化)', + root_cause TEXT COMMENT '根因分析', + solution TEXT COMMENT '解决方案', + auto_fixable TINYINT NOT NULL DEFAULT 0 COMMENT '是否可自动修复', + auto_fix_script TEXT COMMENT '自动修复脚本/指令', + severity VARCHAR(16) COMMENT 'high/medium/low', + occurrence_count INT NOT NULL DEFAULT 1, + last_occurrence DATETIME, + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + + INDEX idx_issue_type (issue_type), + INDEX idx_symptom (symptom(100)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='问题知识库'; +``` + +### 4.3 AI闭环成熟度模型 + +| 阶段 | 能力 | 目标月份 | +|------|------|---------| +| L1: 人工全流程 | 用户反馈 → 人工排查 → 人工修复 | 第1个月 | +| L2: AI辅助诊断 | AI根据知识库推荐排查路径 + 建议修复方案 | 第1-2个月 | +| L3: AI半自动修复 | AI可处理 >50% 的常见问题(权限过期、配置错误等) | 第2个月+ | +| L4: AI全自动闭环 | AI自动发现、自动诊断、自动修复、自动通知 | 后续迭代 | + +--- + +## 5. 技术实现要点 + +### 5.1 AI工具链选型 + +| 用途 | 工具/平台 | 备注 | +|------|----------|------| +| 代码生成 | Claude / DeepSeek Coder | 用于核心逻辑编写 | +| 代码审查 | DeepSeek + 自定义规则 | 自动化Review | +| 测试生成 | AI Agent(自定义实现) | 基于接口定义生成 | +| 比对验证 | AI Agent | 录制→回放→比对 | +| 部署编排 | Ansible + AI生成Playbook | 配置即代码 | +| 运维Agent | 自建Agent框架 | 使用LLM API | +| 知识库 | 向量数据库(Milvus/Chroma) | 问题案例语义搜索 | + +### 5.2 Prompt策略 + +| 场景 | Prompt策略 | +|------|-----------| +| 代码生成 | 给出完整的表结构、接口规范、业务规则描述,要求严格遵循 | +| 测试生成 | 给出API定义,要求覆盖正常/异常/边界/安全场景 | +| 问题诊断 | 给出系统日志、用户描述、相关配置,要求结构化输出排查链路 | +| 比对验证 | 给出双系统的操作结果,要求逐字段比对并分级差异 | + +### 5.3 重要提醒 + +> **AI不是银弹**。关键约束: +> 1. AI生成的代码必须经过人工安全审查——尤其涉及认证和授权的逻辑 +> 2. AI不擅长系统架构决策——架构师责任不可外包 +> 3. AI生成的测试用例依赖人类确认预期结果是否正确 +> 4. 数据一致性场景AI不能100%信任——关键路径需人工复核 +> 5. 泰岳版接口反推中,AI只能辅助分析,最终结论需人工验证 diff --git a/4a-system-design/audit-center.md b/4a-system-design/audit-center.md new file mode 100644 index 0000000..93ded25 --- /dev/null +++ b/4a-system-design/audit-center.md @@ -0,0 +1,477 @@ +# 审计中心设计 + +## 1. 总体定位 + +审计中心是4A系统的**可观测性和合规性基座**,负责收集、存储、分析全平台的操作行为数据。核心职责: + +- 从认证身份中心、应用资源管理中心、系统资源管理中心采集全量操作事件 +- 基于现有审计报表逆推审计数据模型 +- 提供合规规则引擎,实时/准实时检测异常行为 +- 生成分级审计报表,支撑部门级和公司级审计需求 +- 利用招标空窗期(几个月)充分梳理数据模型 + +--- + +## 2. 设计原则 + +### 2.1 从报表反推模型——逆推方法论 + +泰岳版现网已有成熟审计报表。我们的策略:**不猜测泰岳的存储结构,而是从"报表要什么"反推"数据该存什么"**。 + +``` +┌──────────────────────────────────────────────┐ +│ 逆推路径:报表需求 → 数据模型 │ +│ │ +│ Step 1: 收集所有现网审计报表 │ +│ - 固定报表(日/周/月报) │ +│ - 自定义报表(管理员手动查询) │ +│ - 触发式报表(异常告警详情) │ +│ │ +│ Step 2: 提取报表中的字段 │ +│ - 每个报表的列、筛选条件、汇总维度 │ +│ - 示例:登录报表需要{用户、时间、IP、结果、 │ +│ 认证方式、地理位置、设备指纹} │ +│ │ +│ Step 3: 构建事件模型 │ +│ - 将字段归类到事件模型中 │ +│ - 识别共性字段(audit_id, timestamp, user, │ +│ action, resource, result, client_info) │ +│ │ +│ Step 4: 设计存储结构 │ +│ - 根据查询模式选择存储引擎 │ +│ - 高频查询字段建索引 │ +│ - 根据报表筛选条件确定分区策略 │ +└──────────────────────────────────────────────┘ +``` + +### 2.2 逆推示例 + +**现网报表-A:账号登录统计日报** +``` +字段: 日期 | 登录名 | 姓名 | 部门 | 登录次数 | 成功次数 | 失败次数 | + 最后登录时间 | 最后登录IP | 最后认证方式 +``` + +**逆推结论 → 登录事件字段集**: +- 基础:`event_id, event_type, timestamp` +- 主体:`account_id, login_name, display_name, org_path` +- 行为:`action=login, auth_method, result, fail_reason` +- 环境:`source_ip, user_agent, device_id, geo_location` +- 关联:`session_id, mfa_level` + +**现网报表-B:权限变更审计报表** +``` +字段: 变更时间 | 操作人 | 被授权人 | 应用/资产 | + 授权角色 | 操作类型(授予/回收) | 审批人 | 生效时间 +``` + +**逆推结论 → 授权事件字段集**: +- `event_id, event_type=auth_change, timestamp` +- `operator_id, target_user_id` +- `resource_type(app/asset), resource_id` +- `old_role, new_role, change_type(grant/revoke/expire)` +- `approver_id, approval_comment` +- `effective_period` + +--- + +## 3. 三中心数据来源定义 + +### 3.1 事件分类与来源 + +| 事件类型 | 来源中心 | 采集方式 | 实时性 | +|---------|---------|---------|--------| +| 登录事件 | 认证身份中心 | API回调 / MQ | 实时 | +| 登出事件 | 认证身份中心 | API回调 | 实时 | +| 令牌刷新 | 认证身份中心 | 中间件Hook | 实时 | +| 认证失败 | 认证身份中心 | 业务日志 | 实时 | +| 密码修改 | 认证身份中心 | 业务日志 | 近实时 | +| 账号创建/修改/删除 | 认证身份中心 | CQRS事件 | 近实时 | +| SSO跳转 | 应用资源管理中心 | 网关日志 | 实时 | +| 权限分配/回收 | 应用资源管理中心 | 业务日志 | 实时 | +| 权限校验结果 | 应用资源管理中心 | 授权引擎日志 | 准实时 | +| 应用注册/配置变动 | 应用资源管理中心 | 业务日志 | 近实时 | +| 资产访问(SSH/RDP) | 系统资源管理中心 | 堡垒节点代理 | 实时 | +| 命令执行记录 | 系统资源管理中心 | 堡垒节点代理 | 实时 | +| 文件传输记录 | 系统资源管理中心 | 堡垒节点代理 | 实时 | +| 密码轮换操作 | 系统资源管理中心 | 业务日志 | 近实时 | +| 资产授权变动 | 系统资源管理中心 | 业务日志 | 近实时 | + +### 3.2 数据采集架构 + +``` +┌─────────────┐ ┌─────────────┐ ┌─────────────┐ +│ 认证身份中心 │ │ 应用资源中心 │ │ 系统资源中心 │ +│ (业务事件) │ │ (业务事件) │ │ (业务事件) │ +└──────┬──────┘ └──────┬──────┘ └──────┬──────┘ + │ │ │ + │ 异步MQ │ 异步MQ │ 异步MQ + │ (RocketMQ) │ (RocketMQ) │ (RocketMQ) + ├────────────────┼────────────────┘ + │ │ + ▼ ▼ +┌────────────────────────────────────────────────┐ +│ 审计事件消费处理器 │ +│ │ +│ 1. 事件解析器(JSON → 统一事件格式) │ +│ 2. 事件增强器(补充IP地理信息、资产元数据等) │ +│ 3. 事件路由器(分类型写入不同索引) │ +│ 4. 合规规则引擎(实时检测异常规则) │ +└──────┬─────────────────────────────────┬────────┘ + │ │ + ▼ ▼ +┌──────────────┐ ┌──────────────────┐ +│ Elasticsearch │ │ 告警通道 │ +│ (事件存储) │ │ (企业微信/短信等) │ +│ 按时间分索引 │ │ │ +│ 按月建索引别名 │ │ 合规告警 → 通知 │ +└──────────────┘ └──────────────────┘ + │ + ▼ +┌──────────────┐ +│ 报表引擎 │ +│ (定时+按需) │ +└──────────────┘ +``` + +--- + +## 4. 统一审计事件模型 + +### 4.1 事件基础结构 + +```json +{ + "audit_id": "aud-20260517-abc123def456", + "event_type": "login", // 事件类型 + "event_version": "1.0", // 事件格式版本 + "timestamp": 1700000000000, // 事件发生时间(毫秒级) + "received_at": 1700000001000, // 审计中心接收时间 + + "actor": { // 行为主体 + "uid": "uid_00123", + "login_name": "zhangsan", + "display_name": "张三", + "org_code": "BJ_SALES", + "org_path": "省公司/北京分公司/销售部", + "identity_type": "internal" + }, + + "action": { // 行为描述 + "category": "auth", // 大类: auth/access/perm/admin/system + "operation": "login", // 具体操作 + "detail": "密码认证登录", // 人工可读描述 + "result": "success", // success/failure/blocked + "reason": "" // 失败/阻断原因 + }, + + "resource": { // 操作对象 + "type": "system", // system/app/asset/data + "id": "auth-service", // 资源标识 + "name": "认证服务" // 资源名称 + }, + + "context": { // 操作上下文 + "source_ip": "10.0.1.100", + "source_ip_country": "中国", + "source_ip_city": "北京", + "user_agent": "Mozilla/5.0 ...", + "device_id": "dev_fingerprint_xxx", + "session_id": "sess_xyz789", + "mfa_level": 2, + "auth_methods": ["password", "sms"] + }, + + "metadata": { // 元数据 + "source_center": "auth-identity", + "source_service": "auth-api", + "trace_id": "trace-uuid-xxx" + } +} +``` + +### 4.2 ES索引模型 + +```json +// 索引模板:audit-events-{year}-{month} +{ + "mappings": { + "dynamic": "strict", + "properties": { + "audit_id": { "type": "keyword" }, + "event_type": { "type": "keyword" }, + "event_version":{ "type": "keyword", "index": false }, + "timestamp": { "type": "date", "format": "epoch_millis" }, + "received_at": { "type": "date", "format": "epoch_millis" }, + // actor字段 + "actor.uid": { "type": "keyword" }, + "actor.login_name": { "type": "keyword" }, + "actor.display_name": { "type": "text", "fields": { "keyword": { "type": "keyword" } } }, + "actor.org_code": { "type": "keyword" }, + "actor.org_path": { "type": "keyword" }, + "actor.identity_type": { "type": "keyword" }, + // action字段 + "action.category": { "type": "keyword" }, + "action.operation": { "type": "keyword" }, + "action.detail": { "type": "text" }, + "action.result": { "type": "keyword" }, + "action.reason": { "type": "text" }, + // resource字段 + "resource.type": { "type": "keyword" }, + "resource.id": { "type": "keyword" }, + "resource.name": { "type": "text" }, + // context字段 + "context.source_ip": { "type": "ip" }, + "context.source_ip_country": { "type": "keyword" }, + "context.source_ip_city": { "type": "keyword" }, + "context.user_agent": { "type": "text", "index": false }, + "context.device_id": { "type": "keyword" }, + "context.session_id": { "type": "keyword" }, + "context.mfa_level": { "type": "integer" }, + "context.auth_methods": { "type": "keyword" } + } + }, + "settings": { + "number_of_shards": 3, + "number_of_replicas": 1, + "refresh_interval": "5s" + } +} +``` + +### 4.3 索引与生命周期管理 + +``` +索引命名: audit-events-2026-05 (按月) +别名策略: + write: audit-events-active (当前写入索引) + read: audit-events-all (查询所有) + +生命周期(ILM): + 热阶段(7天): SSD存储, 副本数2, 刷新间隔1s + 温阶段(30天): HDD存储, 副本数1, 刷新间隔30s + 冷阶段(180天): HDD存储, 副本数1, forcemerge 1段 + 删除: 180天后删除索引 + +容量估算: + 假设日均50万事件 × 1KB/事件 ≈ 500MB/天 + 30天 ≈ 15GB, 180天 ≈ 90GB (含副本) + 上硬件资源绰绰有余 +``` + +--- + +## 5. 合规规则引擎 + +### 5.1 规则示例 + +```yaml +rules: + - id: "RULE-001" + name: "非工作时间登录告警" + severity: "medium" + condition: + event_type: "login" + time_range: + - "22:00-08:00" # 非工作时间 + - "周六,周日" + action: "notify_manager" + + - id: "RULE-002" + name: "连续登陆失败锁定" + severity: "high" + condition: + event_type: "login" + action.result: "failure" + count: 5 + window: "5m" # 5分钟内 + per: "actor.uid" + action: "lock_account" + + - id: "RULE-003" + name: "异地登录检测" + severity: "high" + condition: + event_type: "login" + action.result: "success" + geo_change: true # 与前一次登录IP不同城市 + window: "1h" # 1小时内跨越城市 + action: "notify_user_sms" + + - id: "RULE-004" + name: "高危命令执行" + severity: "critical" + condition: + event_type: "command" + command_match: "(rm -rf|shutdown|reboot|mkfs|dd if=)" + action: "block_and_notify" + + - id: "RULE-005" + name: "权限批量回收异常" + severity: "medium" + condition: + event_type: "perm_change" + change_type: "revoke" + count: 10 + window: "10m" + per: "actor.uid" + action: "notify_security_admin" + + - id: "RULE-006" + name: "非授权资产访问尝试" + severity: "high" + condition: + event_type: "access" + action.result: "denied" + count: 3 + window: "5m" + action: "notify_security_admin" +``` + +### 5.2 规则执行架构 + +``` +┌─────────────┐ +│ 审计事件流 │ +│ (MQ消费) │ +└──────┬──────┘ + │ + ▼ +┌──────────────────────┐ +│ 规则引擎核心 │ +│ │ +│ ┌──────────────────┐ │ +│ │ 规则编译模块 │ │ +│ │ (YAML → 执行计划) │ │ +│ └──────────────────┘ │ +│ ┌──────────────────┐ │ +│ │ 规则执行器 │ │ +│ │ (有状态: 使用 │ │ +│ │ Redis计数窗口) │ │ +│ └──────────────────┘ │ +│ ┌──────────────────┐ │ +│ │ 告警聚合器 │ │ +│ │ (去重+降噪) │ │ +│ └──────────────────┘ │ +└──────┬──────┬───────┘ + │ │ + ▼ ▼ +┌──────────┐ ┌──────────┐ +│ 告警存储 │ │ 通知通道 │ +│ (ES告警索引)│ │ 企业微信 │ +│ │ │ 短信/电话 │ +│ │ │ 4A管理台 │ +└──────────┘ └──────────┘ +``` + +### 5.3 规则治理 + +- **规则热加载**:规则从DB/配置中心动态读取,变更无需重启 +- **规则测试沙箱**:支持在沙箱中测试规则效果再发布 +- **规则级联**:支持规则之间的依赖和触发关系 +- **误报反馈**:告警可标注"误报",自动调整规则阈值 + +--- + +## 6. 审计报表输出模型 + +### 6.1 报表分类 + +| 报表类型 | 周期 | 受众 | 内容 | +|---------|------|------|------| +| **部门操作日报** | 日 | 部门安全员 | 本部门人员登录、权限变更、资产访问汇总 | +| **公司安全周报** | 周 | 安全管理员 | 全公司异常行为统计、高危操作汇总 | +| **合规月报** | 月 | 合规部门/领导 | 合规指标完成情况、不合规事件明细 | +| **账号健康检查报告** | 月 | 系统管理员 | 僵尸账号、过期权限、密码过期情况 | +| **资产访问趋势分析** | 月 | 运维负责人 | 各资产访问频次、高峰时段、异常访问 | +| **权限审计专报** | 季 | 审计部门 | 权限合规性专项检查、最小权限原则遵从度 | +| **自定义报表** | 按需 | 指定人员 | 按事件类型/时间/用户/资产组合查询 | + +### 6.2 报表模板示例 + +**报表:部门操作日报** + +``` +┌────────────────────────────────────────────────────────────────┐ +│ 4A操作日报 - 日期:2026-05-17 │ +│ 部门:北京分公司/销售部 │ +├────────────────────────────────────────────────────────────────┤ +│ 一、登录统计 │ +│ ┌─────────────────────┬────────┬────────┬────────┐ │ +│ │ 项目 │ 总量 │ 成功 │ 失败 │ │ +│ ├─────────────────────┼────────┼────────┼────────┤ │ +│ │ 密码登录 │ 156 │ 148 │ 8 │ │ +│ │ 人脸登录 │ 23 │ 22 │ 1 │ │ +│ │ SIM卡登录 │ 12 │ 12 │ 0 │ │ +│ │ 短信验证码登录 │ 45 │ 44 │ 1 │ │ +│ └─────────────────────┴────────┴────────┴────────┘ │ +│ │ +│ 二、权限变更 │ +│ ┌─────────────────────┬────────┬────────┬────────┐ │ +│ │ 操作类型 │ 次数 │ 涉及用户 │ 涉及应用 │ │ +│ ├─────────────────────┼────────┼────────┼────────┤ │ +│ │ 角色授予 │ 3 │ 3 │ 2 │ │ +│ │ 角色回收 │ 1 │ 1 │ 1 │ │ +│ │ 临时授权 │ 2 │ 2 │ 1 │ │ +│ └─────────────────────┴────────┴────────┴────────┘ │ +│ │ +│ 三、资产访问 │ +│ ┌─────────────────────┬────────┬────────┐ │ +│ │ 资产 │ 访问次数 │ 操作人员数 │ │ +│ ├─────────────────────┼────────┼────────┤ │ +│ │ 10.0.1.10 (DB-MAST)│ 12 │ 3 │ │ +│ │ 10.0.2.20 (APP-01) │ 8 │ 2 │ │ +│ └─────────────────────┴────────┴────────┘ │ +│ │ +│ 四、异常告警 │ +│ ┌────────────────────────────┬────────┬──────────┐ │ +│ │ 告警内容 │ 等级 │ 处理状态 │ │ +│ ├────────────────────────────┼────────┼──────────┤ │ +│ │ 用户张三 22:35 登录(异地) │ 中 │ 待处理 │ │ +│ └────────────────────────────┴────────┴──────────┘ │ +└────────────────────────────────────────────────────────────────┘ +``` + +### 6.3 报表引擎设计 + +```yaml +报表引擎: + 调度器: + - 定时任务 (cron表达式) + - 按需触发 (API) + - 事件触发 (达到某告警阈值时自动生成详细报告) + + 数据源: + ES查询: 按事件类型/时间范围/用户/资产等组合查询 + 聚合: 使用ES的聚合API (terms/date_histogram/filters/cardinality) + 补充: 需要时从MySQL读取用户/资产元数据 + + 输出格式: + - HTML (内联样式, 可邮件发送) + - PDF (wkhtmltopdf / puppeteer) + - Excel (报表导出) + + 分发通道: + - 企业微信/钉钉机器人 + - 邮件 (IMAP-SMTP技能) + - 4A管理台消息中心 + - 短信通知(仅紧急告警) + + 报表存储: + - 生成的报表文件 → MinIO对象存储 + - 元数据 → MySQL + - 保留周期: 日报30天, 周报6个月, 月报2年 +``` + +--- + +## 7. 与泰岳版比对关注点 + +| 项 | 自研方案 | 泰岳方案(推测) | 验证方法 | +|----|---------|-----------------|---------| +| 事件模型 | 统一JSON事件模型,ES存储 | 可能关系型数据库分表存储 | 事件查询效率对比(涉及跨类型查询场景) | +| 合规规则 | 可编程规则引擎,热加载 | 可能硬编码或有限规则 | 新增规则的上线周期对比 | +| 审计报表 | 模板引擎+ES聚合 | 可能定时SQL查询生成 | 复杂报表生成时间对比 | +| 存储方案 | ES按时间分区+ILM | 可能MySQL分表+归档 | 180天数据查询性能对比 | +| 实时告警 | 流式规则引擎 | 可能定时任务扫描 | 告警延迟对比 | +| 会话回放 | asciinema播放器 | 自有格式播放器 | 回放流畅度+存储效率对比 | diff --git a/4a-system-design/auth-identity-center.md b/4a-system-design/auth-identity-center.md new file mode 100644 index 0000000..31bee9a --- /dev/null +++ b/4a-system-design/auth-identity-center.md @@ -0,0 +1,382 @@ +# 认证身份中心设计 + +## 1. 总体定位 + +认证身份中心是4A系统的**统一认证入口和账号数据基座**,合并了传统4A中"认证"和"身份"两个模块。核心职责: + +- 维护全平台统一的账号数据模型 +- 提供多因素认证能力(密码 + 人脸 + SIM卡识别 + 短信验证码) +- 管理用户会话和令牌(JWT签发/验证/刷新) +- 与现网账号平台保持账号数据实时/准实时一致 + +--- + +## 2. 数据模型 + +### 2.1 核心账号表(T_ACCOUNT) + +```sql +-- 账号主表 +CREATE TABLE T_ACCOUNT ( + account_id BIGINT PRIMARY KEY AUTO_INCREMENT, + -- 统一账号标识(与现网账号平台对齐) + uid VARCHAR(64) NOT NULL UNIQUE COMMENT '统一用户ID,与现网平台一致', + login_name VARCHAR(128) NOT NULL UNIQUE COMMENT '登录名', + display_name VARCHAR(256) COMMENT '显示姓名', + -- 身份信息 + id_type TINYINT NOT NULL DEFAULT 1 COMMENT '身份类型:1-内部员工 2-外包 3-第三方 4-临时', + employee_id VARCHAR(64) COMMENT '工号', + org_code VARCHAR(64) COMMENT '所属组织编码', + org_path VARCHAR(512) COMMENT '组织全路径, 如:省公司/市公司/部门', + -- 联系方式 + mobile VARCHAR(32) COMMENT '手机号', + email VARCHAR(256) COMMENT '邮箱', + -- 认证凭据 + password_hash VARCHAR(256) COMMENT '密码哈希(BCrypt)', + password_salt VARCHAR(64) COMMENT '密码盐值', + password_version INT NOT NULL DEFAULT 1 COMMENT '密码策略版本号', + need_reset_password TINYINT NOT NULL DEFAULT 0 COMMENT '需要重置密码:0-否 1-是', + -- 人脸信息 + face_template_id VARCHAR(128) COMMENT '人脸模板ID(金科侧)', + face_registered TINYINT NOT NULL DEFAULT 0 COMMENT '是否已注册人脸', + -- SIM卡信息 + sim_imsi VARCHAR(64) COMMENT 'SIM卡IMSI(互联网SIM卡识别用)', + sim_phone VARCHAR(32) COMMENT 'SIM卡关联手机号', + sim_verified TINYINT NOT NULL DEFAULT 0 COMMENT 'SIM卡是否已验证', + -- 状态管理 + status TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-禁用 1-正常 2-锁定 3-过期', + lock_reason VARCHAR(256) COMMENT '锁定原因', + last_login_ip VARCHAR(64) COMMENT '最后登录IP', + last_login_time DATETIME COMMENT '最后登录时间', + login_fail_count INT NOT NULL DEFAULT 0 COMMENT '连续登录失败次数', + unlock_time DATETIME COMMENT '自动解锁时间', + -- 有效期 + effective_date DATE COMMENT '生效日期', + expire_date DATE COMMENT '失效日期', + -- 审计字段 + created_by VARCHAR(64) NOT NULL, + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_by VARCHAR(64) NOT NULL, + updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', + deleted TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除:0-未删除 1-已删除', + + INDEX idx_uid (uid), + INDEX idx_login_name (login_name), + INDEX idx_org_code (org_code), + INDEX idx_mobile (mobile), + INDEX idx_status (status) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号主表'; +``` + +### 2.2 账号扩展属性表(T_ACCOUNT_ATTR) + +支持与现网平台扩展属性的灵活映射,避免频繁改表。 + +```sql +CREATE TABLE T_ACCOUNT_ATTR ( + id BIGINT PRIMARY KEY AUTO_INCREMENT, + account_id BIGINT NOT NULL COMMENT '关联账号ID', + attr_key VARCHAR(128) NOT NULL COMMENT '属性键', + attr_value VARCHAR(1024) COMMENT '属性值', + attr_type VARCHAR(32) COMMENT '值类型:string/number/date/json', + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + + UNIQUE KEY uk_account_attr (account_id, attr_key), + INDEX idx_attr_key (attr_key, attr_value(128)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号扩展属性表'; +``` + +### 2.3 与现网账号平台拉齐方案 + +现网账号平台通常是多系统异构的(HR系统、OA、运维平台等各有账号体系)。拉齐策略: + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ 现网账号平台(多源) │ +│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ +│ │ HR系统 │ │ OA系统 │ │ 运维平台 │ │ 第三方接入 │ │ +│ │ (工号为主)│ │(邮箱为主) │ │ (SSH用户) │ │ (API对接) │ │ +│ └─────┬────┘ └────┬─────┘ └─────┬────┘ └──────┬───────┘ │ +│ │ │ │ │ │ +│ └──────┬─────┴──────┬──────┴──────────────┘ │ +│ │ │ │ +│ ┌──────▼────────────▼──────┐ │ +│ │ 账号同步适配器层 │ │ +│ │ (定时拉取 + 变更推送) │ │ +│ │ 策略:现网→自研单向同步 │ │ +│ │ 冲突:以现网最新时间为准 │ │ +│ └───────────┬──────────────┘ │ +│ │ │ +│ ┌───────────▼──────────────┐ │ +│ │ 自研T_ACCOUNT主表 │ │ +│ │ (以uid为统一标识) │ │ +│ │ 额外字段:sync_source │ │ +│ │ sync_version │ │ +│ └──────────────────────────┘ │ +└─────────────────────────────────────────────────────────────────┘ +``` + +**同步策略关键点**: + +1. **单向同步**:现网平台 → 自研系统(防止自研的修改反向污染现网) +2. **标识统一**:`uid` 字段作为跨系统唯一标识,映射现网各系统 ID +3. **定时+事件驱动**: + - 定时全量同步(每天凌晨) + - 变更事件订阅(MQ消息,实时增量同步) + - 手动触发全量同步(管理员操作) +4. **冲突处理**: + - 自研系统只读现网字段,不做覆盖 + - 现网字段为主版本,自研扩展字段(如人脸模板ID)为从版本 + - 时间戳精度到毫秒级,解决并发冲突 +5. **挂载表记录同步日志**:T_ACCOUNT_SYNC_LOG 记录每次同步的变更明细 + +--- + +## 3. 认证能力接入 + +### 3.1 认证流程总图 + +``` + ┌──────────────────────┐ + │ 统一认证入口 │ + │ POST /api/v1/auth │ + └──────────┬───────────┘ + │ + ┌─────────────────┼─────────────────┐ + │ │ │ + ┌─────▼─────┐ ┌──────▼──────┐ ┌──────▼──────┐ + │ 密码认证 │ │ 人脸认证 │ │ SIM认证 │ + │ provider │ │ provider │ │ provider │ + └─────┬─────┘ └──────┬──────┘ └──────┬──────┘ + │ │ │ + └────────┬────────┴────────┬────────┘ + │ │ + ┌──────▼──────┐ ┌──────▼──────┐ + │ 认证成功 │ │ 认证失败 │ + │ → 生成令牌 │ │ → 记录失败 │ + │ → 返回JWT │ │ → 触发告警 │ + └─────────────┘ └─────────────┘ +``` + +### 3.2 密码认证 + +- **技术选型**:BCrypt(自适应哈希,cost factor=10-12) +- **策略**: + - 支持密码复杂度策略(长度/大小写/特殊字符组合) + - 支持密码历史管理(禁止使用最近N次密码) + - 连续失败N次后锁定账号 T 分钟 + - 支持首次登录强制改密 +- **接口**:标准 OAuth2 Password Grant + 自定义扩展 + +### 3.3 金科人脸识别接入 + +**集成方案**: + +```yaml +# 金科人脸识别对接配置 +face_recognition: + provider: "jinke" + api_base: "https://face-api.chinamobile.com/v2" + auth_mode: "aksk" # API Key + Secret Key 认证 + timeout_ms: 5000 + retry: + max_attempts: 2 + backoff_ms: 200 + endpoints: + verify: "/face/verify" # 1:1 人脸验证 + detect: "/face/detect" # 人脸检测 + register: "/face/register" # 人脸模板注册 + delete: "/face/template/delete" # 删除人脸模板 + liveness: + enabled: true # 活体检测开关 + mode: "action" # action: 动作指令式, flash: 闪光 +``` + +**认证流程**: + +1. 客户端采集人脸图片 → 上传至自研后台 +2. 自研后台调用金科 `/face/detect` 检测有效性(活体检测) +3. 通过后调用 `/face/verify` 传入用户 `uid` + 人脸图片 +4. 金科返回置信度和匹配结果(阈值 >= 0.85 视为通过) +5. 自研后台记录认证日志,签发JWT + +### 3.4 互联网SIM卡识别 + +**能力说明**: +- 利用运营商网关能力,识别用户手机号与SIM卡IMSI的绑定关系 +- 用户通过蜂窝网络访问时,网关可携带SIM卡信息 +- 实现"无感认证"——用户只需打开页面即可自动识别身份 + +**接入方案**: + +``` +用户手机(蜂窝网络) ──→ 运营商网关 ──→ 自研4A网关 + ↑ ↑ + HTTP Header携带 解析Header提取 + IMSI/MSISDN SIM信息,与账号 + T_ACCOUNT.sim_imsi + 做匹配验证 +``` + +**技术要点**: + +1. 依赖运营商网关配置(需与网络部协调开通) +2. 作为辅助认证因子,不可单独作为强认证手段 +3. 需配合设备指纹、IP地理位置等信息做风险判断 +4. 当SIM信息与预注册信息不一致时,触发二次认证(短信验证码) + +### 3.5 消息中心短信接入 + +**集成方案**: + +```yaml +sms: + provider: "message_center" # 中国移动消息中心 + api_base: "https://msg-center.chinamobile.com/api" + app_id: "${SMS_APP_ID}" + app_secret: "${SMS_APP_SECRET}" + endpoints: + send: "/sms/send" + batch_send: "/sms/batch_send" + query_status: "/sms/status/{msg_id}" + features: + template: true # 使用短信模板(防篡改) + signature: "【中国移动】" + expiry_minutes: 5 # 验证码有效期5分钟 +``` + +**流程**: + +1. 发送验证码:生成6位数字验证码 → 写入 Redis(key=sms:code:{mobile}, TTL=300s)→ 调用消息中心API下发 +2. 验证:用户提交验证码 → 查 Redis 比对 → 正确则完成认证 +3. 限制策略:60秒内不可重复发送,每日上限10次 + +### 3.6 多因素认证组合策略 + +``` +┌──────────────────────────────────────────────────────────────────┐ +│ MFA策略配置(可动态调整) │ +│ │ +│ 场景类型 │ 认证因子组合 │ +│ ──────────────────┼─────────────────────────────────────────── │ +│ 内部网络登录 │ 密码 (单因素) │ +│ 远程VPN登录 │ 密码 + 短信验证码 (双因素) │ +│ 堡垒机登录 │ 密码 + 人脸/SIM (双因素) │ +│ 敏感操作确认 │ 已登录令牌 + 短信验证码 (双因素) │ +│ 管理员操作 │ 密码 + 人脸 + 短信验证码 (三因素) │ +│ SIM卡网关识别 │ SIM识别 (零操作) │ +└──────────────────────────────────────────────────────────────────┘ +``` + +--- + +## 4. 令牌与会话管理 + +### 4.1 JWT令牌设计 + +```json +{ + "access_token": { + "header": {"alg": "RS256", "typ": "JWT", "kid": "2026-01"}, + "payload": { + "sub": "uid_00123", + "iss": "4a-self", + "aud": "4a-resource-centers", + "exp": 3600, + "iat": 1700000000, + "jti": "unique-token-id-abc123", + "auth_context": { + "mfa_level": 2, + "auth_methods": ["password", "sms"], + "session_id": "sess_xyz789" + }, + "roles": ["operator", "auditor"] + }, + "sign": "RS256_signature..." + }, + "refresh_token": { + "expiry": 86400 * 7, + "rotation": true + } +} +``` + +- **签名算法**:RS256(非对称),access_token 和 refresh_token 使用不同密钥对 +- **有效期**:access_token 1小时,refresh_token 7天(支持滑动刷新) +- **吊销机制**:Redis 维护黑名单(`jti:revoked`),注销/改密后立即使所有token失效 + +### 4.2 会话状态存储 + +``` +Redis Key 设计: + 4a:session:{session_id} → Session对象(用户信息、MFA等级、设备指纹) + 4a:token:jti:{jti} → 令牌元数据(issuer_ip、issued_at、status) + 4a:token:user:{uid} → 用户当前有效令牌列表 + 4a:token:blacklist:{jti} → 吊销令牌集合(TTL = token有效期) + 4a:sms:code:{mobile} → 短信验证码(TTL = 300s) + 4a:login:fail:{uid} → 登录失败计数(TTL = 锁定周期) +``` + +--- + +## 5. 接口规范 + +### 5.1 认证接口 + +| 接口 | 方法 | 说明 | +|------|------|------| +| `/api/v1/auth/login` | POST | 统一登录入口,请求体指定认证方式 | +| `/api/v1/auth/refresh` | POST | 刷新access_token | +| `/api/v1/auth/logout` | POST | 登出,吊销令牌 | +| `/api/v1/auth/check` | GET | 校验令牌有效性 | +| `/api/v1/auth/sms/send` | POST | 发送短信验证码 | +| `/api/v1/auth/face/register` | POST | 注册人脸模板 | +| `/api/v1/auth/sim/verify` | POST | SIM卡验证 | + +### 5.2 账号管理接口 + +| 接口 | 方法 | 说明 | +|------|------|------| +| `/api/v1/accounts` | GET | 分页查询账号列表 | +| `/api/v1/accounts/{uid}` | GET | 查询单个账号详情 | +| `/api/v1/accounts` | POST | 创建账号(同步到现网需审批) | +| `/api/v1/accounts/{uid}` | PUT | 更新账号信息 | +| `/api/v1/accounts/{uid}` | DELETE | 禁用/删除账号 | +| `/api/v1/accounts/{uid}/password` | PUT | 修改密码 | +| `/api/v1/accounts/{uid}/status` | PATCH | 修改账号状态 | +| `/api/v1/accounts/sync/trigger` | POST | 手动触发全量同步 | +| `/api/v1/accounts/sync/log` | GET | 查询同步日志 | + +### 5.3 响应格式 + +```json +// 成功响应 +{ + "code": 0, + "message": "success", + "data": {}, + "request_id": "req-uuid-xxx" +} + +// 错误响应 +{ + "code": 40101, + "message": "invalid_credentials", + "detail": "密码错误,还剩3次尝试机会", + "request_id": "req-uuid-xxx" +} +``` + +--- + +## 6. 与泰岳版比对关注点 + +| 项 | 自研方案 | 泰岳方案(推测) | 验证方法 | +|----|---------|-----------------|---------| +| 密码存储 | BCrypt + 多代盐值 | 厂商自研加密模块 | 黑盒:记录认证耗时 | +| 会话管理 | Redis + JWT | 可能为DB + Session | 比较并发下Session创建吞吐 | +| 认证流程扩展 | Provider模式,可插拔 | 模块化程度未知 | 接入新因子时的改动量对比 | +| 多因素组合 | 策略引擎(DSL配置) | 可能硬编码 | 配置灵活度对比 | +| 账号同步 | 适配器模式对接多源 | 可能单源集中 | 同步延迟和完整性对比 | diff --git a/4a-system-design/overview.md b/4a-system-design/overview.md new file mode 100644 index 0000000..4a71c5d --- /dev/null +++ b/4a-system-design/overview.md @@ -0,0 +1,160 @@ +# 自研4A对标系统 - 总体架构说明 + +## 1. 系统定位 + +### 1.1 为什么做 + +现网4A系统为神州泰岳采购版,存在以下核心痛点: +- **黑盒依赖**:核心数据模型、流程引擎、认证逻辑不可控,定制需求依赖厂商排期(通常3-6个月) +- **报价不透明**:二期扩容、功能增补的报价缺乏比价基准 +- **技术演进受限**:无法灵活接入新认证方式(人脸、SIM卡识别等),扩展成本高 +- **运维锁死**:故障排查依赖厂商支撑,MTTR难以压缩 + +本项目利用**1级4A 8期工程已申请的硬件资源**,划拨部分服务器,自研一套与泰岳版功能对标的4A系统,周期**两个月**。 + +### 1.2 核心目标 + +| 维度 | 目标 | +|------|------| +| **功能对标** | 覆盖泰岳版90%以上的核心功能(SSO、账号管理、权限管理、审计) | +| **流程对标** | 实现对标的24个账号管理流程、资源接入流程 | +| **架构验证** | 验证自研方案在性能、稳定性、安全性上是否可替代采购版 | +| **成本基线** | 建立"自研 vs 采购"的成本-能力对比基线,支撑后续采购决策 | +| **技术自主** | 形成完全可控的4A技术栈,后续功能迭代不受厂商约束 | + +### 1.3 约束条件 + +- **周期**:2个月(包含开发、测试、部署、基线对比) +- **硬件**:8期工程剩余资源(具体规格视项目申请而定,按通用X86服务器 + KVM虚拟化部署) +- **团队**:非专职团队,需兼顾现网运维,强调AI辅助开发提效 +- **范围**:不做全量替代,做"可验证对标"版本,功能深度聚焦核心链路 + +--- + +## 2. 四中心架构总览 + +``` +┌─────────────────────────────────────────────────────────────────────────────┐ +│ 自研4A对标系统 │ +│ │ +│ ┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐ │ +│ │ 认证身份中心 │ │ 应用资源管理中心 │ │ 系统资源管理中心 │ │ +│ │ │ │ │ │ (含堡垒集群) │ │ +│ │ ┌───────────────┐ │ │ ┌───────────────┐ │ │ ┌───────────────┐ │ │ +│ │ │ 账号数据模型 │ │ │ │ SSO网关 │ │ │ │ 系统资源 │ │ │ +│ │ │ (LDAP/DB) │ │ │ │ (OIDC/SAML) │ │ │ │ 授权模型 │ │ │ +│ │ ├───────────────┤ │ │ ├───────────────┤ │ │ ├───────────────┤ │ │ +│ │ │ 多因素认证 │ │ │ │ 应用注册 │ │ │ │ 堡垒机集群 │ │ │ +│ │ │ 人脸/SIM/密码 │ │ │ │ +元数据管理 │ │ │ │ SSO/录屏 │ │ │ +│ │ ├───────────────┤ │ │ ├───────────────┤ │ │ ├───────────────┤ │ │ +│ │ │ 令牌/会话管理 │ │ │ │ 权限配置 │ │ │ │ 权限 │ │ │ +│ │ │ (JWT/Redis) │ │ │ │ +授权规则引擎 │ │ │ │ 回收/审批流 │ │ │ +│ │ └───────────────┘ │ │ └───────────────┘ │ │ └───────────────┘ │ │ +│ └─────────┬───────────┘ └─────────┬───────────┘ └─────────┬───────────┘ │ +│ │ │ │ │ +│ └──────────┬─────────────┴─────────────┬───────────┘ │ +│ │ │ │ +│ ┌────────▼──────────────────────────▼────────┐ │ +│ │ 审计中心 │ │ +│ │ │ │ +│ │ ┌──────────────┐ ┌───────────────────┐ │ │ +│ │ │ 审计数据湖 │ │ 报表引擎 │ │ │ +│ │ │ (ES引擎存储) │ │ (定时/按需生成) │ │ │ +│ │ ├──────────────┤ ├───────────────────┤ │ │ +│ │ │ 合规规则引擎 │ │ 分级下发通道 │ │ │ +│ │ │ (策略驱动) │ │ (部门级/公司级) │ │ │ +│ │ └──────────────┘ └───────────────────┘ │ │ +│ └────────────────────────────────────────────┘ │ +│ │ +│ ┌──────────────────────────────────────────────────────────────────────┐ │ +│ │ AI全流程兜底闭环层 │ │ +│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ +│ │ │代码生成 │ │自动测试 │ │部署编排 │ │智能运维 │ │数据一致性│ │ │ +│ │ │Copilot │ │Agent │ │CI/CD │ │AIOps │ │校验Agent │ │ │ +│ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ +│ └──────────────────────────────────────────────────────────────────────┘ │ +└─────────────────────────────────────────────────────────────────────────────┘ +``` + +### 2.1 中心间交互关系 + +``` + ┌─────────────────┐ + │ 前端网关 │ + │ (统一入口) │ + └────────┬────────┘ + │ + ┌──────────────┼──────────────┐ + │ │ │ + ┌───────▼──────┐ ┌────▼─────┐ ┌─────▼──────┐ + │ 认证身份中心 │ │ 应用资源 │ │ 系统资源 │ + │ (认证鉴权) │ │ 管理中心 │ │ 管理中心 │ + └───────┬──────┘ └────┬─────┘ └─────┬──────┘ + │ │ │ + └──────┬───────┴──────┬──────┘ + │ │ + ┌──────▼──────────────▼──────┐ + │ 审计中心 │ + │ (接收全量操作事件) │ + └────────────────────────────┘ +``` + +**核心数据流**: +1. 用户请求 → 前端网关 → 认证身份中心(登录认证)→ 颁发令牌 +2. 用户携带令牌 → 应用资源管理中心(SSO接入应用)/ 系统资源管理中心(SSO接入堡垒机) +3. 全量操作事件 → 异步写入 → 审计中心(ES存储) +4. 审计中心 → 合规规则引擎 → 异常告警/报表生成 + +--- + +## 3. 两个月研发计划 + +``` +Week 1-2: 基础设施搭建 + 认证身份中心核心 (账号模型 + 密码认证 + JWT) +Week 3-4: 多因素认证接入 (人脸/SIM/短信) + 令牌管理 +Week 5-6: 应用资源管理中心 (SSO网关 + 应用注册 + 基本授权) +Week 7: 系统资源管理中心 + 堡垒机SSO原型 +Week 8: 审计中心MVP + AI测试 + 与泰岳版比对验证 +``` + +### 交付原则 + +- **每两周一个可演示版本**:第一周结束出认证登录页,第二周结束出SSO跳转 +- **AI优先**:能用AI生成的代码、测试用例、部署脚本绝不手写 +- **模块化**:每个中心独立可部署,降低集成风险 +- **记录一致**:所有反推结论/接口规范写入文档,作为与泰岳谈判的技术基线 + +--- + +## 4. AI全流程兜底闭环策略 + +详见 `ai-cicd.md`,核心思路: + +1. **开发阶段**:AI辅助生成全部业务代码(CRUD + API + 前端),人工聚焦架构和安全性审查 +2. **测试阶段**:AI Agent自动生成测试用例、执行回归测试、比对与泰岳版的行为差异 +3. **部署阶段**:AI编排部署流水线(Ansible/Terraform),自动处理配置差异 +4. **运维阶段**:AI监控日志异常、自动排查一致性偏差、推送修复建议 +5. **验收阶段**:AI驱动功能覆盖度扫描,自动生成"自研vs泰岳"比对报告 + +--- + +## 5. 与泰岳版比对策略 + +| 比对维度 | 方法 | 产出物 | +|---------|------|-------| +| 功能覆盖 | 逐功能点人工标记 + AI辅助扫描 | 功能覆盖矩阵表 | +| 性能基准 | 相同硬件上运行压测脚本 | 响应时间/并发量对比曲线 | +| 认证流程 | 录制泰岳版操作流程 → 生成测试脚本 → 在自研版本执行 | 流程一致度报告 | +| 数据模型 | 反推泰岳库结构 → 与自研模型逐字段比对 | 数据模型差异表 | +| 安全等级 | 相同安全基线扫描工具 | 安全差距分析 | + +--- + +## 6. 风险与对策 + +| 风险 | 概率 | 影响 | 对策 | +|------|------|------|------| +| 两个月内功能覆盖不足 | 高 | 中 | 聚焦核心链路(SSO+账户管理),非核心功能标记为"二期" | +| 泰岳接口反向推导不完整 | 中 | 高 | 重点攻克登录/授权关键接口,优先保证自研体系内部闭环 | +| 团队人力分散 | 高 | 中 | AI最大化替代重复劳动,每个中心配1-2人即可启动 | +| 与现网系统对接兼容问题 | 中 | 高 | 提前识别对接点,使用适配器模式隔离变更 | diff --git a/4a-system-design/resource-centers.md b/4a-system-design/resource-centers.md new file mode 100644 index 0000000..ed1c59f --- /dev/null +++ b/4a-system-design/resource-centers.md @@ -0,0 +1,532 @@ +# 应用资源管理中心 + 系统资源管理中心(含堡垒集群) + +> 本文件涵盖2个中心的设计,考虑到它们共享权限模型和SSO机制,合并在同一份文档中。 + +--- + +## 第一部分:应用资源管理中心 + +## 1. 总体定位 + +应用资源管理中心负责企业内**业务应用的单点登录接入和权限管理**。核心职责: + +- 提供统一SSO网关,对接各类业务系统(B/S架构为主) +- 管理应用注册、元数据、接入配置 +- 提供权限模型和授权规则引擎 +- 参考亚信安全接口规范(IAM/SSO相关) + +--- + +## 2. SSO网关设计 + +### 2.1 支持的协议 + +| 协议 | 成熟度 | 适用场景 | 优先级 | +|------|--------|---------|--------| +| OAuth2.0 + OIDC | 高 | 现代应用(RESTful API) | P0 | +| SAML 2.0 | 高 | 传统企业应用、ERP系统 | P0 | +| CAS | 中 | 部分遗留Java应用 | P1 | +| 自定义Token透传 | 低 | 老系统改造过渡 | P2 | + +### 2.2 SSO流程(OIDC Authorization Code) + +``` +┌──────┐ ┌──────────┐ ┌──────────────┐ ┌──────────┐ +│ 用户 │ │ 业务应用 │ │ 认证身份中心 │ │SSO网关 │ +│ │ │ (Client) │ │ (Auth Server) │ │ │ +└──┬───┘ └─────┬────┘ └──────┬───────┘ └─────┬────┘ + │ │ │ │ + │ 访问应用 │ │ │ + │───────────────>│ │ │ + │ │ 未登录,跳转SSO │ │ + │<───────────────│ │ │ + │ 302重定向 │ │ │ + │──────────────────────────────────>│ │ + │ │ │ SSO网关代收 │ + │ │ │ 认证请求,返回 │ + │ 登录页 │ │ 授权码 │ + │<──────────────────────────────────│ │ + │ │ │ │ + │ 提交凭证 │ │ │ + │──────────────────────────────────>│ │ + │ │ │ 验证通过 │ + │ │ │ 返回授权码 │ + │<──────────────────────────────────│ │ + │ │ │ │ + │ 携带授权码回调 │ │ │ + │──────────────────────────────────────────────> │ + │ │ │ SSO网关 │ + │ │ │ 校验+与身份中心 │ + │ │ │ 交换AccessToken │ + │ │ <───────────────────────────────────│ + │ │ │ │ + │ 登录成功 │ │ │ + │<───────────────│ │ │ +``` + +### 2.3 应用注册模型 + +```sql +CREATE TABLE T_APP ( + app_id BIGINT PRIMARY KEY AUTO_INCREMENT, + app_name VARCHAR(128) NOT NULL COMMENT '应用名称', + app_key VARCHAR(64) NOT NULL UNIQUE COMMENT '应用唯一标识', + app_secret VARCHAR(256) NOT NULL COMMENT '应用密钥(加密存储)', + app_type TINYINT NOT NULL DEFAULT 1 COMMENT '应用类型:1-B/S 2-C/S 3-API 4-移动端', + -- SSO配置 + sso_protocol VARCHAR(16) NOT NULL DEFAULT 'oidc' COMMENT 'SSO协议:oidc/saml/cas', + callback_urls JSON NOT NULL COMMENT '允许的回调URL列表', + logout_url VARCHAR(512) COMMENT '登出回调URL', + token_endpoint_auth_method VARCHAR(32) DEFAULT 'client_secret_basic', + -- 应用访问控制 + access_level TINYINT NOT NULL DEFAULT 1 COMMENT '访问等级:1-普通 2-敏感 3-高敏感', + require_mfa TINYINT NOT NULL DEFAULT 0 COMMENT '是否需要MFA', + allowed_ips JSON COMMENT 'IP白名单', + allowed_domains JSON COMMENT '域名白名单', + -- 权限模型 + permission_mode VARCHAR(16) DEFAULT 'rbac' COMMENT '权限模式:rbac/abac/hybrid', + -- 状态 + status TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-停用 1-启用', + -- 审计 + created_by VARCHAR(64) NOT NULL, + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + deleted TINYINT NOT NULL DEFAULT 0, + + INDEX idx_app_key (app_key), + INDEX idx_status (status) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用注册表'; +``` + +--- + +## 3. 权限模型(参考亚信接口规范) + +### 3.1 RBAC + ABAC 混合模型 + +``` + ┌──────────┐ + │ 用户 │ + │ (User) │ + └────┬─────┘ + │ + ┌─────────┼─────────┐ + │ │ │ + ┌─────▼──┐ ┌────▼───┐ ┌────▼───┐ + │ 组织(Org)│ │ 角色 │ │ 属性 │ + │ (ABAC) │ │ (Role) │ │(Attr) │ + └────┬───┘ └────┬───┘ └────┬───┘ + │ │ │ + │ ┌─────▼──────┐ │ + │ │ 权限集 │ │ + └────┤ (Permission)├──┘ + │ +策略规则 │ + └─────┬──────┘ + │ + ┌─────▼──────┐ + │ 资源实例 │ + │ (Resource) │ + └────────────┘ +``` + +**权限判定引擎流程**: + +``` +输入: 用户U, 应用A, 操作OP, 资源R, 上下文C + +1. 检查U是否在A的应用白名单中(组织级) → 否→拒绝 +2. 获取U在A中的角色列表 → 获取角色对应的权限集 +3. 检查权限集是否包含 (OP, R) → 是→允许 +4. ABAC规则评估:检查上下文C(时间/IP/设备/MFA等级) + → ABAC规则不满足 → 降级/拒绝 +5. 返回判定结果 +``` + +### 3.2 核心权限表结构 + +```sql +-- 角色表 +CREATE TABLE T_ROLE ( + role_id BIGINT PRIMARY KEY AUTO_INCREMENT, + app_id BIGINT NOT NULL COMMENT '所属应用', + role_name VARCHAR(64) NOT NULL COMMENT '角色名', + role_code VARCHAR(64) NOT NULL COMMENT '角色编码(应用内唯一)', + description VARCHAR(256), + is_system TINYINT NOT NULL DEFAULT 0 COMMENT '系统预置角色', + status TINYINT NOT NULL DEFAULT 1, + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY uk_app_role (app_id, role_code) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表'; + +-- 权限资源表 +CREATE TABLE T_PERMISSION ( + perm_id BIGINT PRIMARY KEY AUTO_INCREMENT, + app_id BIGINT NOT NULL COMMENT '所属应用', + resource VARCHAR(128) NOT NULL COMMENT '资源标识: menu:/user/list', + action VARCHAR(32) NOT NULL COMMENT '操作: read/write/delete/admin', + description VARCHAR(256), + status TINYINT NOT NULL DEFAULT 1, + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY uk_app_resource_action (app_id, resource, action) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限资源表'; + +-- 角色-权限关联 +CREATE TABLE T_ROLE_PERMISSION ( + id BIGINT PRIMARY KEY AUTO_INCREMENT, + role_id BIGINT NOT NULL, + perm_id BIGINT NOT NULL, + effect TINYINT NOT NULL DEFAULT 1 COMMENT '1-允许 0-拒绝', + UNIQUE KEY uk_role_perm (role_id, perm_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色权限关联表'; + +-- 用户-应用角色分配 +CREATE TABLE T_USER_APP_ROLE ( + id BIGINT PRIMARY KEY AUTO_INCREMENT, + account_id BIGINT NOT NULL COMMENT '用户账号ID', + app_id BIGINT NOT NULL COMMENT '应用ID', + role_id BIGINT NOT NULL COMMENT '角色ID', + grant_type VARCHAR(16) DEFAULT 'direct' COMMENT 'direct-直接分配 org-继承', + start_date DATETIME, + end_date DATETIME COMMENT '有效期', + granted_by VARCHAR(64), + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY uk_account_app_role (account_id, app_id, role_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户应用角色分配表'; + +-- ABAC策略规则表 +CREATE TABLE T_ABAC_POLICY ( + policy_id BIGINT PRIMARY KEY AUTO_INCREMENT, + app_id BIGINT NOT NULL, + policy_name VARCHAR(128) NOT NULL, + policy_type VARCHAR(16) NOT NULL COMMENT 'allow/deny', + subject_attr JSON COMMENT '主体属性条件', + resource_attr JSON COMMENT '资源属性条件', + action_cond JSON COMMENT '操作条件', + context_cond JSON COMMENT '上下文条件(时间/IP/设备等)', + priority INT NOT NULL DEFAULT 0 COMMENT '优先级(数字越大越优先)', + status TINYINT NOT NULL DEFAULT 1, + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ABAC策略规则表'; +``` + +### 3.3 与应用系统的权限接口规范 + +参考亚信安全接口规范,提供以下核心接口供业务系统对接: + +```yaml +授权查询接口: + GET /api/v1/authorization/check + 参数: + - app_key: 应用标识 + - uid: 用户ID + - resource: 资源路径 + - action: 操作 + - context: 上下文(可选JSON) + 返回: { allowed: true/false, reason: "xxx" } + +用户角色列表: + GET /api/v1/apps/{app_key}/users/{uid}/roles + 返回: [{role_id, role_code, role_name, grant_type, valid_until}] + +用户权限列表: + GET /api/v1/apps/{app_key}/users/{uid}/permissions + 返回: [{resource, action, effect}] + +权限批量校验: + POST /api/v1/authorization/batch-check + 请求体: [{app_key, uid, resource, action, context}, ...] + 返回: [{allowed, reason}, ...] + +权限同步通知(服务端推送): + POST /webhook/app/{app_key}/permission-sync + 请求体: {event_type: "role_assign"|"role_revoke"|"perm_change", + uid, changed_roles, timestamp} +``` + +--- + +## 4. 授权流程 + +``` +┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ +│ 资源申请者 │ │ 审批人 │ │ 权限中心 │ │ 业务应用 │ +└─────┬──────┘ └─────┬──────┘ └─────┬──────┘ └─────┬──────┘ + │ │ │ │ + │ 提交权限申请 │ │ │ + │────────────────>│ │ │ + │ │ │ │ + │ 审批通过/拒绝 │ │ + │ │────────────────>│ │ + │ │ │ 分配角色 │ + │ │ │────────────────>│ + │ │ │ (授权生效通知) │ + │ 申请结果通知 │ │ │ + │<───────────────────────────────────────────────────│ + │ │ │ │ + │ 使用授权 │ │ │ + │───────────────────────────────────────────────────>│ + │ │ │ 鉴权校验 │ + │<───────────────────────────────────────────────────│ +``` + +**授权模式**支持: +1. **手动分配**:管理员为指定用户分配角色 +2. **申请审批**:用户提交申请 → 上级/安全管理员审批 → 自动生效 +3. **组织继承**:自动继承所属组织的默认角色集 +4. **临时授权**:设定生效时间窗口,到期自动回收 + +--- + +## 第二部分:系统资源管理中心(含堡垒集群) + +## 5. 总体定位 + +系统资源管理中心负责**服务器、网络设备、数据库等基础设施资源的权限管理**,包含堡垒机集群集成。核心职责: + +- 管理系统资源的访问权限(SSH/RDP/数据库连接) +- 提供堡垒机单点登录和会话录制 +- 参考泰岳管理模型(反推库结构和接口) +- 管理登录凭证、密钥、授权策略 + +--- + +## 6. 参考泰岳管理模型 - 反推策略 + +### 6.1 泰岳系统资源管理模型推断 + +基于现网泰岳版4A的运维经验和操作界面观察,反推其数据模型: + +```sql +-- 推断的泰岳资产表结构 +-- T_ASSET +-- asset_id BIGINT PK +-- asset_name VARCHAR(128) 资产名称 +-- asset_ip VARCHAR(64) 管理IP +-- asset_type TINYINT 资产类型:1-Linux 2-Windows 3-网络设备 4-数据库 +-- asset_group VARCHAR(128) 所属资产组 +-- protocol VARCHAR(16) 管理协议:ssh/rdp/telnet +-- port INT 端口 +-- account_auto TINYINT 1-纳管账号 0-手动密码 +-- auth_mode TINYINT 1-密码 2-密钥 3-双因子 +-- status TINYINT + +-- 推断的泰岳授权表 +-- T_ASSET_AUTH +-- auth_id BIGINT PK +-- asset_id BIGINT FK -> T_ASSET +-- account_id BIGINT FK (泰岳内部账号) +-- system_account VARCHAR(64) 目标系统账号(root/oracle/...) +-- access_level TINYINT 权限等级:1-普通 2-运维 3-管理员 +-- start_time DATETIME 授权开始 +-- end_time DATETIME 授权结束 +-- approver VARCHAR(64) +``` + +**反推方法论**: + +``` +┌──────────────────────────────────────────────────────────────────┐ +│ 反推方法 │ +│ │ +│ 1. 界面观察法 │ +│ - 录屏泰岳操作界面,记录所有字段名和排列顺序 │ +│ - 观察搜索/筛选条件字段(通常映射到DB索引字段) │ +│ - 导出功能里的列名(CSV/xls导出列名常等于DB列名) │ +│ │ +│ 2. API嗅探法 │ +│ - 浏览器开发者工具抓取泰岳管理的API请求/响应JSON │ +│ - 关注字段名映射(下划线命名 vs 驼峰命名规律) │ +│ - 分页参数(limit/offset习惯暗示底层DB) │ +│ │ +│ 3. 日志分析法 │ +│ - 查看泰岳版的操作日志/审计日志字段定义 │ +│ - 从报错信息中提取表名和字段名(典型:Constraint violation) │ +│ │ +│ 4. 行为验证法 │ +│ - 设置特定值 → 观察界面呈现 → 推断字段类型/约束 │ +│ - 创建/修改/删除操作 → 推断关联关系和约束条件 │ +└──────────────────────────────────────────────────────────────────┘ +``` + +### 6.2 自研系统资源模型 + +```sql +-- 资产主表 +CREATE TABLE T_SYSTEM_ASSET ( + asset_id BIGINT PRIMARY KEY AUTO_INCREMENT, + asset_name VARCHAR(128) NOT NULL COMMENT '资产名称', + asset_ip VARCHAR(64) NOT NULL COMMENT '管理IP', + asset_type TINYINT NOT NULL COMMENT '1-Linux 2-Windows 3-网络设备 4-数据库 5-中间件', + asset_group_id BIGINT COMMENT '所属资产组', + -- 连接信息 + protocol VARCHAR(16) NOT NULL DEFAULT 'ssh' COMMENT '管理协议:ssh/rdp/telnet/mysql/oracle', + port INT NOT NULL DEFAULT 22, + -- 凭据管理 + credential_mode TINYINT NOT NULL DEFAULT 1 COMMENT '1-纳管密码 2-纳管密钥 3-手动输入 4-动态令牌', + -- 纳管账号(系统层面的账号,非4A用户账号) + managed_account VARCHAR(64) COMMENT '纳管系统账号(root/oracle等)', + managed_password_enc VARCHAR(512) COMMENT '纳管密码(AES-256加密)', + managed_key_enc TEXT COMMENT '纳管私钥(AES-256加密)', + -- 访问控制 + access_level TINYINT NOT NULL DEFAULT 2 COMMENT '访问等级:1-低 2-中 3-高', + allowed_users JSON COMMENT '允许操作的白名单用户列表', + -- 堡垒机集成 + bastion_enabled TINYINT NOT NULL DEFAULT 1 COMMENT '是否通过堡垒机接入', + -- 状态 + status TINYINT NOT NULL DEFAULT 1 COMMENT '0-停用 1-启用 2-维护', + -- 元数据 + department VARCHAR(128) COMMENT '所属部门', + location VARCHAR(128) COMMENT '物理位置', + vendor VARCHAR(64) COMMENT '厂商', + model VARCHAR(64) COMMENT '型号', + os_version VARCHAR(64) COMMENT '操作系统版本', + remark TEXT, + -- 审计 + created_by VARCHAR(64), + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + deleted TINYINT NOT NULL DEFAULT 0, + + INDEX idx_asset_ip (asset_ip), + INDEX idx_asset_type (asset_type), + INDEX idx_group (asset_group_id), + INDEX idx_status (status) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统资产表'; + +-- 资产授权表 +CREATE TABLE T_ASSET_AUTHORIZATION ( + auth_id BIGINT PRIMARY KEY AUTO_INCREMENT, + asset_id BIGINT NOT NULL, + account_id BIGINT NOT NULL COMMENT '4A用户ID', + -- 目标系统身份 + target_username VARCHAR(64) NOT NULL COMMENT '目标系统账号(root/appuser)', + -- 授权信息 + access_level TINYINT NOT NULL DEFAULT 1 COMMENT '1-只读查看 2-普通操作 3-管理员操作', + -- 时间窗口 + grant_type VARCHAR(16) NOT NULL DEFAULT 'permanent' COMMENT 'permanent-永久 temporary-临时', + valid_from DATETIME NOT NULL, + valid_until DATETIME, + -- 审批信息 + approval_status TINYINT NOT NULL DEFAULT 0 COMMENT '0-待审批 1-已批准 2-已拒绝 3-已回收', + approver_id BIGINT, + approved_at DATETIME, + -- 行为约束 + command_filter TEXT COMMENT '允许执行的命令白名单(正则)', + file_transfer TINYINT NOT NULL DEFAULT 0 COMMENT '0-禁止 1-允许上传 2-允许下载 3-双向', + -- 审计 + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + revoked_at DATETIME, + revoked_by BIGINT, + + INDEX idx_asset (asset_id), + INDEX idx_account (account_id), + INDEX idx_valid (valid_from, valid_until), + INDEX idx_status (approval_status) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资产授权表'; + +-- 资产组表 +CREATE TABLE T_ASSET_GROUP ( + group_id BIGINT PRIMARY KEY AUTO_INCREMENT, + group_name VARCHAR(128) NOT NULL, + parent_id BIGINT, + org_code VARCHAR(64) COMMENT '所属组织', + description VARCHAR(256), + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资产组表'; + +-- 账号密码自动轮换配置 +CREATE TABLE T_CREDENTIAL_ROTATION ( + rotation_id BIGINT PRIMARY KEY AUTO_INCREMENT, + asset_id BIGINT NOT NULL, + target_account VARCHAR(64) NOT NULL COMMENT '目标系统账号', + rotation_schedule VARCHAR(32) NOT NULL DEFAULT '30d' COMMENT '轮换周期:7d/14d/30d/90d', + password_rule JSON COMMENT '密码生成规则', + last_rotation DATETIME, + next_rotation DATETIME, + auto_execute TINYINT NOT NULL DEFAULT 1 COMMENT '是否自动执行', + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY uk_asset_account (asset_id, target_account) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='密码轮换配置表'; +``` + +--- + +## 7. 堡垒集群集成方案 + +### 7.1 架构选择 + +采用**代理模式**(非网关代理,而是独立部署堡垒机节点转发流量): + +``` + ┌──────────────┐ + │ 4A管控平台 │ + │ (认证+授权) │ + └──────┬───────┘ + │ API + ┌──────────────┼──────────────┐ + │ │ │ + ┌────────▼───┐ ┌──────▼──────┐ ┌────▼────────┐ + │ 堡垒节点1 │ │ 堡垒节点2 │ │ 堡垒节点3 │ + │ (区域A) │ │ (区域B) │ │ (区域C) │ + │ ┌────────┐ │ │ ┌────────┐ │ │ ┌────────┐ │ + │ │SSH/RDP │ │ │ │SSH/RDP │ │ │ │SSH/RDP │ │ + │ │代理 │ │ │ │代理 │ │ │ │代理 │ │ + │ └────────┘ │ │ └────────┘ │ │ └────────┘ │ + └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ + │ │ │ + │ (网络隔离,策略控制) │ + │ │ │ + ┌──────▼──────┐ ┌─────▼───────┐ ┌────▼──────┐ + │ 目标服务器1 │ │ 目标服务器2 │ │ 目标服务器3 │ + │ 10.0.1.10 │ │ 10.0.2.20 │ │ 10.0.3.30 │ + └─────────────┘ └─────────────┘ └───────────┘ +``` + +### 7.2 堡垒机核心功能 + +| 功能 | 说明 | 实现方案 | +|------|------|---------| +| **SSO登录** | 用户从4A平台认证后直接跳转堡垒机,无需再次认证 | JWT令牌 → 堡垒节点验证 → 建立会话 | +| **会话录制** | 记录所有操作步骤(键盘输入 + 屏幕输出) | ttyrec/cast 格式录制,定期归档至对象存储 | +| **命令审计** | 记录执行命令,匹配高危命令规则 | 实时监控bash/windows shell日志 | +| **文件传输审计** | 追踪SCP/SFTP传输的文件名、大小、路径 | 代理层拦截审计 | +| **命令拦截** | 高危命令(rm -rf /, shutdown等)实时阻断 | 自定义shell profile + 命令过滤器 | +| **会话同步** | 多人同时监控同一会话 | WebSocket实时同步 | +| **事后回放** | 回放录制的会话 | 基于录制文件+时间轴播放器 | + +### 7.3 堡垒节点技术选型 + +| 组件 | 推荐 | 备选 | +|------|------|------| +| 代理核心 | Apache Guacamole(已支持SSH/RDP/VNC) | teleport/ssh-proxy 自研 | +| 会话录制 | asciinema (ttyrec格式) | script + scriptreplay | +| 命令拦截 | 自定义shell profile (bash_prompt wrapper) | pam_exec模块钩子 | +| 文件传输审计 | SFTP proxy (在openssh中集成ForceCommand) | rssh/scponly | +| 会话存储 | 本地文件 → 定时上传至MinIO | Ceph RGW | +| 会话回放 | asciinema player 前端组件 | 自研播放器组件 | + +### 7.4 堡垒机SSO流程 + +``` +1. 用户从4A平台认证 → 获取JWT (payload含allowed_assets) +2. 用户选择目标资产 → 4A平台验证授权 +3. 4A平台生成一次性堡垒令牌(有效期60秒,含用户+资产+目标账号) +4. 用户浏览器跳转至堡垒节点URL(带令牌) +5. 堡垒节点验证令牌 → 获取目标账号的真实密码/密钥(加密传输) +6. 堡垒节点建立SSH/RDP连接目标资产 +7. 代理层开始录制和审计 +8. 会话结束后录制上传至对象存储 +``` + +--- + +## 8. 与泰岳版比对关注点 + +| 项 | 自研方案 | 泰岳方案(推测) | 验证方法 | +|----|---------|-----------------|---------| +| 资产模型 | 通用资产表+扩展属性 | 可能按类型分多表 | 创建各类型资产对比信息完整度 | +| 授权粒度 | 命令级黑白名单+时间窗口+文件传输控制 | 类似 | 设置复杂授权策略对比生效情况 | +| 堡垒节点 | 基于开源组件(Guacamole) | 自研代理 | 并发连接数对比 | +| 密码轮换 | 定时间隔+自动执行 | 类似 | 轮换成功率+时间对比 | +| 会话录制 | asciinema格式 | 未知格式 | 存储空间占用+回放体验对比 | +| 命令拦截 | shell profile级 | 代理级更底层 | 高危命令漏报率对比 | diff --git a/README.md b/README.md index f445a09..0962576 100644 --- a/README.md +++ b/README.md @@ -103,10 +103,10 @@ hugo server -t terminal ### 品牌与图标 -- [ ] FK 手写书法风格图标,黑底 `#111`,白字 +- [x] FK 手写书法风格图标,黑底 `#111`,白字 - [x] 浅色/深色双版图标(`logo.svg` / `logo-dark.svg`) - [x] 导航栏仅显示图标,隐藏标题文字,40×40px -- [x] 多平台 favicon 适配 +- [ ] 多平台 favicon 适配 - [ ] 自定义 OG 社交分享图(1200×630) - [ ] iOS/Android 触屏图标 @@ -115,7 +115,7 @@ hugo server -t terminal - [x] Hero 标题:**FuKun** - [x] 副标题:*FuKun.Net — Tech notes & life* - [x] 最新文章列表(6 篇) -- [x] **Slogan 重写** — 参照 Dan Koe 的文案风格: +- [ ] **Slogan 重写** — 参照 Dan Koe 的文案风格: - 一句话价值主张(如 "The Art of..." / "How to..." 句式) - 个人使命宣言 - 读者能获得什么(结果导向,而非信息罗列) diff --git a/assets/css/custom.css b/assets/css/custom.css index 18750fb..1429647 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -85,8 +85,7 @@ html.dark .theme-toggle-light { width: 0.6em; height: 1.1em; background: #999; - vertical-align: text-bottom; - transform: translateY(-2px); + vertical-align: text-bottom; transform: translateY(-2px); margin-left: 1px; animation: vim-blink 0.8s step-end infinite; } @@ -103,26 +102,4 @@ html.dark .theme-toggle-light { background: #ccc; } - -/* Center footer copyright on all screens */ - justify-content: center !important; -} - - -/* Footer copyright always centered */ -.hextra-footer > div:last-child { - justify-content: center !important; -} - -/* Remove top border from sidebar bottom section */ -.hextra-sidebar-container div[data-toggle-animation] { - border-top: none !important; -} - -/* Keep cursor blinking even with reduced motion */ -@media (prefers-reduced-motion: reduce) { - #typewriter-text::after { - animation-duration: 0.8s !important; - animation-iteration-count: infinite !important; - } -} +/* Hide current page title in breadcrumb */ diff --git a/assets/js/mermaid.min.js b/assets/js/mermaid.min.js new file mode 100644 index 0000000..9bca46f --- /dev/null +++ b/assets/js/mermaid.min.js @@ -0,0 +1,2024 @@ +(function(ZM,Dg){typeof exports=="object"&&typeof module<"u"?module.exports=Dg():typeof define=="function"&&define.amd?define(Dg):(ZM=typeof globalThis<"u"?globalThis:ZM||self,ZM.mermaid=Dg())})(this,function(){var dYe,gYe;"use strict";function ZM(i){for(var a=[],u=1;u=Pe?Be:""+Array(Pe+1-Ie.length).join(je)+Be},ge={s:be,z:function(Be){var Pe=-Be.utcOffset(),je=Math.abs(Pe),Ie=Math.floor(je/60),Se=je%60;return(Pe<=0?"+":"-")+be(Ie,2,"0")+":"+be(Se,2,"0")},m:function Be(Pe,je){if(Pe.date()1)return Be(ke[0])}else{var Ke=Pe.name;ne[Ke]=Pe,Se=Ke}return!Ie&&Se&&(ae=Se),Se||!Ie&&ae},pe=function(Be,Pe){if(de(Be))return Be.clone();var je=typeof Pe=="object"?Pe:{};return je.date=Be,je.args=arguments,new xe(je)},G=ge;G.l=X,G.i=de,G.w=function(Be,Pe){return pe(Be,{locale:Pe.$L,utc:Pe.$u,x:Pe.$x,$offset:Pe.$offset})};var xe=function(){function Be(je){this.$L=X(je.locale,null,!0),this.parse(je),this.$x=this.$x||je.x||{},this[se]=!0}var Pe=Be.prototype;return Pe.parse=function(je){this.$d=function(Ie){var Se=Ie.date,Ce=Ie.utc;if(Se===null)return new Date(NaN);if(G.u(Se))return new Date;if(Se instanceof Date)return new Date(Se);if(typeof Se=="string"&&!/Z$/i.test(Se)){var ke=Se.match(ee);if(ke){var Ke=ke[2]-1||0,zt=(ke[7]||"0").substring(0,3);return Ce?new Date(Date.UTC(ke[1],Ke,ke[3]||1,ke[4]||0,ke[5]||0,ke[6]||0,zt)):new Date(ke[1],Ke,ke[3]||1,ke[4]||0,ke[5]||0,ke[6]||0,zt)}}return new Date(Se)}(je),this.init()},Pe.init=function(){var je=this.$d;this.$y=je.getFullYear(),this.$M=je.getMonth(),this.$D=je.getDate(),this.$W=je.getDay(),this.$H=je.getHours(),this.$m=je.getMinutes(),this.$s=je.getSeconds(),this.$ms=je.getMilliseconds()},Pe.$utils=function(){return G},Pe.isValid=function(){return this.$d.toString()!==W},Pe.isSame=function(je,Ie){var Se=pe(je);return this.startOf(Ie)<=Se&&Se<=this.endOf(Ie)},Pe.isAfter=function(je,Ie){return pe(je){},debug:(...i)=>{},info:(...i)=>{},warn:(...i)=>{},error:(...i)=>{},fatal:(...i)=>{}},Spe=function(i="fatal"){let a=b7.fatal;typeof i=="string"?(i=i.toLowerCase(),i in b7&&(a=b7[i])):typeof i=="number"&&(a=i),Xe.trace=()=>{},Xe.debug=()=>{},Xe.info=()=>{},Xe.warn=()=>{},Xe.error=()=>{},Xe.fatal=()=>{},a<=b7.fatal&&(Xe.fatal=console.error?console.error.bind(console,Fv("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Fv("FATAL"))),a<=b7.error&&(Xe.error=console.error?console.error.bind(console,Fv("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Fv("ERROR"))),a<=b7.warn&&(Xe.warn=console.warn?console.warn.bind(console,Fv("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Fv("WARN"))),a<=b7.info&&(Xe.info=console.info?console.info.bind(console,Fv("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Fv("INFO"))),a<=b7.debug&&(Xe.debug=console.debug?console.debug.bind(console,Fv("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Fv("DEBUG"))),a<=b7.trace&&(Xe.trace=console.debug?console.debug.bind(console,Fv("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Fv("TRACE")))},Fv=i=>`%c${Ig().format("ss.SSS")} : ${i} : `;var b9={};(function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.sanitizeUrl=i.BLANK_URL=void 0;var a=/^([^\w]*)(javascript|data|vbscript)/im,u=/&#(\w+)(^\w|;)?/g,d=/&(newline|tab);/gi,p=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,v=/^.+(:|:)/gim,b=[".","/"];i.BLANK_URL="about:blank";function y(A){return b.indexOf(A[0])>-1}function E(A){var P=A.replace(p,"");return P.replace(u,function(R,B){return String.fromCharCode(B)})}function _(A){if(!A)return i.BLANK_URL;var P=E(A).replace(d,"").replace(p,"").trim();if(!P)return i.BLANK_URL;if(y(P))return P;var R=P.match(v);if(!R)return P;var B=R[0];return a.test(B)?i.BLANK_URL:P}i.sanitizeUrl=_})(b9);function RY(i,a){return i==null||a==null?NaN:ia?1:i>=a?0:NaN}function hLt(i,a){return i==null||a==null?NaN:ai?1:a>=i?0:NaN}function _pe(i){let a,u,d;i.length!==2?(a=RY,u=(y,E)=>RY(i(y),E),d=(y,E)=>i(y)-E):(a=i===RY||i===hLt?i:fLt,u=i,d=i);function p(y,E,_=0,A=y.length){if(_>>1;u(y[P],E)<0?_=P+1:A=P}while(_>>1;u(y[P],E)<=0?_=P+1:A=P}while(__&&d(y[P-1],E)>-d(y[P],E)?P-1:P}return{left:p,center:b,right:v}}function fLt(){return 0}function dLt(i){return i===null?NaN:+i}const gLt=_pe(RY).right;_pe(dLt).center;const pLt=gLt;class SBe extends Map{constructor(a,u=vLt){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:u}}),a!=null)for(const[d,p]of a)this.set(d,p)}get(a){return super.get(_Be(this,a))}has(a){return super.has(_Be(this,a))}set(a,u){return super.set(bLt(this,a),u)}delete(a){return super.delete(mLt(this,a))}}function _Be({_intern:i,_key:a},u){const d=a(u);return i.has(d)?i.get(d):u}function bLt({_intern:i,_key:a},u){const d=a(u);return i.has(d)?i.get(d):(i.set(d,u),u)}function mLt({_intern:i,_key:a},u){const d=a(u);return i.has(d)&&(u=i.get(d),i.delete(d)),u}function vLt(i){return i!==null&&typeof i=="object"?i.valueOf():i}const wLt=Math.sqrt(50),yLt=Math.sqrt(10),xLt=Math.sqrt(2);function jY(i,a,u){const d=(a-i)/Math.max(0,u),p=Math.floor(Math.log10(d)),v=d/Math.pow(10,p),b=v>=wLt?10:v>=yLt?5:v>=xLt?2:1;let y,E,_;return p<0?(_=Math.pow(10,-p)/b,y=Math.round(i*_),E=Math.round(a*_),y/_a&&--E,_=-_):(_=Math.pow(10,p)*b,y=Math.round(i/_),E=Math.round(a/_),y*_a&&--E),E0))return[];if(i===a)return[i];const d=a=p))return[];const y=v-p+1,E=new Array(y);if(d)if(b<0)for(let _=0;_=d)&&(u=d);else{let d=-1;for(let p of i)(p=a(p,++d,i))!=null&&(u=p)&&(u=p)}return u}function ELt(i,a){let u;if(a===void 0)for(const d of i)d!=null&&(u>d||u===void 0&&d>=d)&&(u=d);else{let d=-1;for(let p of i)(p=a(p,++d,i))!=null&&(u>p||u===void 0&&p>=p)&&(u=p)}return u}function CLt(i,a,u){i=+i,a=+a,u=(p=arguments.length)<2?(a=i,i=0,1):p<3?1:+u;for(var d=-1,p=Math.max(0,Math.ceil((a-i)/u))|0,v=new Array(p);++d+i(a)}function MLt(i,a){return a=Math.max(0,i.bandwidth()-a*2)/2,i.round()&&(a=Math.round(a)),u=>+i(u)+a}function DLt(){return!this.__axis}function LBe(i,a){var u=[],d=null,p=null,v=6,b=6,y=3,E=typeof window<"u"&&window.devicePixelRatio>1?0:.5,_=i===$Y||i===zY?-1:1,A=i===zY||i===Mpe?"x":"y",P=i===$Y||i===Dpe?_Lt:ALt;function R(B){var j=d??(a.ticks?a.ticks.apply(a,u):a.domain()),W=p??(a.tickFormat?a.tickFormat.apply(a,u):SLt),ee=Math.max(v,0)+y,ie=a.range(),oe=+ie[0]+E,be=+ie[ie.length-1]+E,ge=(a.bandwidth?MLt:LLt)(a.copy(),E),ae=B.selection?B.selection():B,ne=ae.selectAll(".domain").data([null]),se=ae.selectAll(".tick").data(j,a).order(),de=se.exit(),X=se.enter().append("g").attr("class","tick"),pe=se.select("line"),G=se.select("text");ne=ne.merge(ne.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),se=se.merge(X),pe=pe.merge(X.append("line").attr("stroke","currentColor").attr(A+"2",_*v)),G=G.merge(X.append("text").attr("fill","currentColor").attr(A,_*ee).attr("dy",i===$Y?"0em":i===Dpe?"0.71em":"0.32em")),B!==ae&&(ne=ne.transition(B),se=se.transition(B),pe=pe.transition(B),G=G.transition(B),de=de.transition(B).attr("opacity",ABe).attr("transform",function(xe){return isFinite(xe=ge(xe))?P(xe+E):this.getAttribute("transform")}),X.attr("opacity",ABe).attr("transform",function(xe){var U=this.parentNode.__axis;return P((U&&isFinite(U=U(xe))?U:ge(xe))+E)})),de.remove(),ne.attr("d",i===zY||i===Mpe?b?"M"+_*b+","+oe+"H"+E+"V"+be+"H"+_*b:"M"+E+","+oe+"V"+be:b?"M"+oe+","+_*b+"V"+E+"H"+be+"V"+_*b:"M"+oe+","+E+"H"+be),se.attr("opacity",1).attr("transform",function(xe){return P(ge(xe)+E)}),pe.attr(A+"2",_*v),G.attr(A,_*ee).text(W),ae.filter(DLt).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",i===Mpe?"start":i===zY?"end":"middle"),ae.each(function(){this.__axis=ge})}return R.scale=function(B){return arguments.length?(a=B,R):a},R.ticks=function(){return u=Array.from(arguments),R},R.tickArguments=function(B){return arguments.length?(u=B==null?[]:Array.from(B),R):u.slice()},R.tickValues=function(B){return arguments.length?(d=B==null?null:Array.from(B),R):d&&d.slice()},R.tickFormat=function(B){return arguments.length?(p=B,R):p},R.tickSize=function(B){return arguments.length?(v=b=+B,R):v},R.tickSizeInner=function(B){return arguments.length?(v=+B,R):v},R.tickSizeOuter=function(B){return arguments.length?(b=+B,R):b},R.tickPadding=function(B){return arguments.length?(y=+B,R):y},R.offset=function(B){return arguments.length?(E=+B,R):E},R}function ILt(i){return LBe($Y,i)}function OLt(i){return LBe(Dpe,i)}var NLt={value:()=>{}};function MBe(){for(var i=0,a=arguments.length,u={},d;i=0&&(d=u.slice(p+1),u=u.slice(0,p)),u&&!a.hasOwnProperty(u))throw new Error("unknown type: "+u);return{type:u,name:d}})}qY.prototype=MBe.prototype={constructor:qY,on:function(i,a){var u=this._,d=PLt(i+"",u),p,v=-1,b=d.length;if(arguments.length<2){for(;++v0)for(var u=new Array(p),d=0,p,v;d=0&&(a=i.slice(0,u))!=="xmlns"&&(i=i.slice(u+1)),IBe.hasOwnProperty(a)?{space:IBe[a],local:i}:i}function FLt(i){return function(){var a=this.ownerDocument,u=this.namespaceURI;return u===Ipe&&a.documentElement.namespaceURI===Ipe?a.createElement(i):a.createElementNS(u,i)}}function RLt(i){return function(){return this.ownerDocument.createElementNS(i.space,i.local)}}function OBe(i){var a=HY(i);return(a.local?RLt:FLt)(a)}function jLt(){}function Ope(i){return i==null?jLt:function(){return this.querySelector(i)}}function $Lt(i){typeof i!="function"&&(i=Ope(i));for(var a=this._groups,u=a.length,d=new Array(u),p=0;p=be&&(be=oe+1);!(ae=ee[be])&&++be=0;)(b=d[p])&&(v&&b.compareDocumentPosition(v)^4&&v.parentNode.insertBefore(b,v),v=b);return this}function lMt(i){i||(i=hMt);function a(P,R){return P&&R?i(P.__data__,R.__data__):!P-!R}for(var u=this._groups,d=u.length,p=new Array(d),v=0;va?1:i>=a?0:NaN}function fMt(){var i=arguments[0];return arguments[0]=this,i.apply(null,arguments),this}function dMt(){return Array.from(this)}function gMt(){for(var i=this._groups,a=0,u=i.length;a1?this.each((a==null?CMt:typeof a=="function"?_Mt:SMt)(i,a,u??"")):eD(this.node(),i)}function eD(i,a){return i.style.getPropertyValue(a)||jBe(i).getComputedStyle(i,null).getPropertyValue(a)}function LMt(i){return function(){delete this[i]}}function MMt(i,a){return function(){this[i]=a}}function DMt(i,a){return function(){var u=a.apply(this,arguments);u==null?delete this[i]:this[i]=u}}function IMt(i,a){return arguments.length>1?this.each((a==null?LMt:typeof a=="function"?DMt:MMt)(i,a)):this.node()[i]}function $Be(i){return i.trim().split(/^|\s+/)}function Npe(i){return i.classList||new zBe(i)}function zBe(i){this._node=i,this._names=$Be(i.getAttribute("class")||"")}zBe.prototype={add:function(i){var a=this._names.indexOf(i);a<0&&(this._names.push(i),this._node.setAttribute("class",this._names.join(" ")))},remove:function(i){var a=this._names.indexOf(i);a>=0&&(this._names.splice(a,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(i){return this._names.indexOf(i)>=0}};function qBe(i,a){for(var u=Npe(i),d=-1,p=a.length;++d=0&&(u=a.slice(d+1),a=a.slice(0,d)),{type:a,name:u}})}function aDt(i){return function(){var a=this.__on;if(a){for(var u=0,d=-1,p=a.length,v;u>8&15|a>>4&240,a>>4&15|a&240,(a&15)<<4|a&15,1):u===8?KY(a>>24&255,a>>16&255,a>>8&255,(a&255)/255):u===4?KY(a>>12&15|a>>8&240,a>>8&15|a>>4&240,a>>4&15|a&240,((a&15)<<4|a&15)/255):null):(a=pDt.exec(i))?new Og(a[1],a[2],a[3],1):(a=bDt.exec(i))?new Og(a[1]*255/100,a[2]*255/100,a[3]*255/100,1):(a=mDt.exec(i))?KY(a[1],a[2],a[3],a[4]):(a=vDt.exec(i))?KY(a[1]*255/100,a[2]*255/100,a[3]*255/100,a[4]):(a=wDt.exec(i))?ZBe(a[1],a[2]/100,a[3]/100,1):(a=yDt.exec(i))?ZBe(a[1],a[2]/100,a[3]/100,a[4]):GBe.hasOwnProperty(i)?YBe(GBe[i]):i==="transparent"?new Og(NaN,NaN,NaN,0):null}function YBe(i){return new Og(i>>16&255,i>>8&255,i&255,1)}function KY(i,a,u,d){return d<=0&&(i=a=u=NaN),new Og(i,a,u,d)}function XBe(i){return i instanceof gC||(i=pC(i)),i?(i=i.rgb(),new Og(i.r,i.g,i.b,i.opacity)):new Og}function Bpe(i,a,u,d){return arguments.length===1?XBe(i):new Og(i,a,u,d??1)}function Og(i,a,u,d){this.r=+i,this.g=+a,this.b=+u,this.opacity=+d}_F(Og,Bpe,VY(gC,{brighter(i){return i=i==null?GY:Math.pow(GY,i),new Og(this.r*i,this.g*i,this.b*i,this.opacity)},darker(i){return i=i==null?AF:Math.pow(AF,i),new Og(this.r*i,this.g*i,this.b*i,this.opacity)},rgb(){return this},clamp(){return new Og(bC(this.r),bC(this.g),bC(this.b),WY(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:QBe,formatHex:QBe,formatHex8:TDt,formatRgb:JBe,toString:JBe}));function QBe(){return`#${mC(this.r)}${mC(this.g)}${mC(this.b)}`}function TDt(){return`#${mC(this.r)}${mC(this.g)}${mC(this.b)}${mC((isNaN(this.opacity)?1:this.opacity)*255)}`}function JBe(){const i=WY(this.opacity);return`${i===1?"rgb(":"rgba("}${bC(this.r)}, ${bC(this.g)}, ${bC(this.b)}${i===1?")":`, ${i})`}`}function WY(i){return isNaN(i)?1:Math.max(0,Math.min(1,i))}function bC(i){return Math.max(0,Math.min(255,Math.round(i)||0))}function mC(i){return i=bC(i),(i<16?"0":"")+i.toString(16)}function ZBe(i,a,u,d){return d<=0?i=a=u=NaN:u<=0||u>=1?i=a=NaN:a<=0&&(i=NaN),new P3(i,a,u,d)}function eFe(i){if(i instanceof P3)return new P3(i.h,i.s,i.l,i.opacity);if(i instanceof gC||(i=pC(i)),!i)return new P3;if(i instanceof P3)return i;i=i.rgb();var a=i.r/255,u=i.g/255,d=i.b/255,p=Math.min(a,u,d),v=Math.max(a,u,d),b=NaN,y=v-p,E=(v+p)/2;return y?(a===v?b=(u-d)/y+(u0&&E<1?0:b,new P3(b,y,E,i.opacity)}function EDt(i,a,u,d){return arguments.length===1?eFe(i):new P3(i,a,u,d??1)}function P3(i,a,u,d){this.h=+i,this.s=+a,this.l=+u,this.opacity=+d}_F(P3,EDt,VY(gC,{brighter(i){return i=i==null?GY:Math.pow(GY,i),new P3(this.h,this.s,this.l*i,this.opacity)},darker(i){return i=i==null?AF:Math.pow(AF,i),new P3(this.h,this.s,this.l*i,this.opacity)},rgb(){var i=this.h%360+(this.h<0)*360,a=isNaN(i)||isNaN(this.s)?0:this.s,u=this.l,d=u+(u<.5?u:1-u)*a,p=2*u-d;return new Og(Fpe(i>=240?i-240:i+120,p,d),Fpe(i,p,d),Fpe(i<120?i+240:i-120,p,d),this.opacity)},clamp(){return new P3(tFe(this.h),YY(this.s),YY(this.l),WY(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const i=WY(this.opacity);return`${i===1?"hsl(":"hsla("}${tFe(this.h)}, ${YY(this.s)*100}%, ${YY(this.l)*100}%${i===1?")":`, ${i})`}`}}));function tFe(i){return i=(i||0)%360,i<0?i+360:i}function YY(i){return Math.max(0,Math.min(1,i||0))}function Fpe(i,a,u){return(i<60?a+(u-a)*i/60:i<180?u:i<240?a+(u-a)*(240-i)/60:a)*255}const CDt=Math.PI/180,SDt=180/Math.PI,XY=18,nFe=.96422,rFe=1,iFe=.82521,sFe=4/29,nD=6/29,aFe=3*nD*nD,_Dt=nD*nD*nD;function oFe(i){if(i instanceof q4)return new q4(i.l,i.a,i.b,i.opacity);if(i instanceof m7)return cFe(i);i instanceof Og||(i=XBe(i));var a=zpe(i.r),u=zpe(i.g),d=zpe(i.b),p=Rpe((.2225045*a+.7168786*u+.0606169*d)/rFe),v,b;return a===u&&u===d?v=b=p:(v=Rpe((.4360747*a+.3850649*u+.1430804*d)/nFe),b=Rpe((.0139322*a+.0971045*u+.7141733*d)/iFe)),new q4(116*p-16,500*(v-p),200*(p-b),i.opacity)}function ADt(i,a,u,d){return arguments.length===1?oFe(i):new q4(i,a,u,d??1)}function q4(i,a,u,d){this.l=+i,this.a=+a,this.b=+u,this.opacity=+d}_F(q4,ADt,VY(gC,{brighter(i){return new q4(this.l+XY*(i??1),this.a,this.b,this.opacity)},darker(i){return new q4(this.l-XY*(i??1),this.a,this.b,this.opacity)},rgb(){var i=(this.l+16)/116,a=isNaN(this.a)?i:i+this.a/500,u=isNaN(this.b)?i:i-this.b/200;return a=nFe*jpe(a),i=rFe*jpe(i),u=iFe*jpe(u),new Og($pe(3.1338561*a-1.6168667*i-.4906146*u),$pe(-.9787684*a+1.9161415*i+.033454*u),$pe(.0719453*a-.2289914*i+1.4052427*u),this.opacity)}}));function Rpe(i){return i>_Dt?Math.pow(i,1/3):i/aFe+sFe}function jpe(i){return i>nD?i*i*i:aFe*(i-sFe)}function $pe(i){return 255*(i<=.0031308?12.92*i:1.055*Math.pow(i,1/2.4)-.055)}function zpe(i){return(i/=255)<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4)}function LDt(i){if(i instanceof m7)return new m7(i.h,i.c,i.l,i.opacity);if(i instanceof q4||(i=oFe(i)),i.a===0&&i.b===0)return new m7(NaN,0()=>i;function uFe(i,a){return function(u){return i+u*a}}function MDt(i,a,u){return i=Math.pow(i,u),a=Math.pow(a,u)-i,u=1/u,function(d){return Math.pow(i+d*a,u)}}function DDt(i,a){var u=a-i;return u?uFe(i,u>180||u<-180?u-360*Math.round(u/360):u):QY(isNaN(i)?a:i)}function IDt(i){return(i=+i)==1?MF:function(a,u){return u-a?MDt(a,u,i):QY(isNaN(a)?u:a)}}function MF(i,a){var u=a-i;return u?uFe(i,u):QY(isNaN(i)?a:i)}const JY=function i(a){var u=IDt(a);function d(p,v){var b=u((p=Bpe(p)).r,(v=Bpe(v)).r),y=u(p.g,v.g),E=u(p.b,v.b),_=MF(p.opacity,v.opacity);return function(A){return p.r=b(A),p.g=y(A),p.b=E(A),p.opacity=_(A),p+""}}return d.gamma=i,d}(1);function ODt(i,a){a||(a=[]);var u=i?Math.min(a.length,i.length):0,d=a.slice(),p;return function(v){for(p=0;pu&&(v=a.slice(u,v),y[b]?y[b]+=v:y[++b]=v),(d=d[0])===(p=p[0])?y[b]?y[b]+=p:y[++b]=p:(y[++b]=null,E.push({i:b,x:B3(d,p)})),u=Upe.lastIndex;return u180?A+=360:A-_>180&&(_+=360),R.push({i:P.push(p(P)+"rotate(",null,d)-2,x:B3(_,A)})):A&&P.push(p(P)+"rotate("+A+d)}function y(_,A,P,R){_!==A?R.push({i:P.push(p(P)+"skewX(",null,d)-2,x:B3(_,A)}):A&&P.push(p(P)+"skewX("+A+d)}function E(_,A,P,R,B,j){if(_!==P||A!==R){var W=B.push(p(B)+"scale(",null,",",null,")");j.push({i:W-4,x:B3(_,P)},{i:W-2,x:B3(A,R)})}else(P!==1||R!==1)&&B.push(p(B)+"scale("+P+","+R+")")}return function(_,A){var P=[],R=[];return _=i(_),A=i(A),v(_.translateX,_.translateY,A.translateX,A.translateY,P,R),b(_.rotate,A.rotate,P,R),y(_.skewX,A.skewX,P,R),E(_.scaleX,_.scaleY,A.scaleX,A.scaleY,P,R),_=A=null,function(B){for(var j=-1,W=R.length,ee;++j=0&&i._call.call(void 0,a),i=i._next;--rD}function mFe(){vC=(tX=NF.now())+nX,rD=DF=0;try{WDt()}finally{rD=0,XDt(),vC=0}}function YDt(){var i=NF.now(),a=i-tX;a>gFe&&(nX-=a,tX=i)}function XDt(){for(var i,a=eX,u,d=1/0;a;)a._call?(d>a._time&&(d=a._time),i=a,a=a._next):(u=a._next,a._next=null,a=i?i._next=u:eX=u);OF=i,Wpe(d)}function Wpe(i){if(!rD){DF&&(DF=clearTimeout(DF));var a=i-vC;a>24?(i<1/0&&(DF=setTimeout(mFe,i-NF.now()-nX)),IF&&(IF=clearInterval(IF))):(IF||(tX=NF.now(),IF=setInterval(YDt,gFe)),rD=1,pFe(mFe))}}function vFe(i,a,u){var d=new rX;return a=a==null?0:+a,d.restart(p=>{d.stop(),i(p+a)},a,u),d}var QDt=MBe("start","end","cancel","interrupt"),JDt=[],wFe=0,yFe=1,Ype=2,iX=3,xFe=4,Xpe=5,sX=6;function aX(i,a,u,d,p,v){var b=i.__transition;if(!b)i.__transition={};else if(u in b)return;ZDt(i,u,{name:a,index:d,group:p,on:QDt,tween:JDt,time:v.time,delay:v.delay,duration:v.duration,ease:v.ease,timer:null,state:wFe})}function Qpe(i,a){var u=F3(i,a);if(u.state>wFe)throw new Error("too late; already scheduled");return u}function H4(i,a){var u=F3(i,a);if(u.state>iX)throw new Error("too late; already running");return u}function F3(i,a){var u=i.__transition;if(!u||!(u=u[a]))throw new Error("transition not found");return u}function ZDt(i,a,u){var d=i.__transition,p;d[a]=u,u.timer=bFe(v,0,u.time);function v(_){u.state=yFe,u.timer.restart(b,u.delay,u.time),u.delay<=_&&b(_-u.delay)}function b(_){var A,P,R,B;if(u.state!==yFe)return E();for(A in d)if(B=d[A],B.name===u.name){if(B.state===iX)return vFe(b);B.state===xFe?(B.state=sX,B.timer.stop(),B.on.call("interrupt",i,i.__data__,B.index,B.group),delete d[A]):+AYpe&&d.state=0&&(a=a.slice(0,u)),!a||a==="start"})}function MIt(i,a,u){var d,p,v=LIt(a)?Qpe:H4;return function(){var b=v(this,i),y=b.on;y!==d&&(p=(d=y).copy()).on(a,u),b.on=p}}function DIt(i,a){var u=this._id;return arguments.length<2?F3(this.node(),u).on.on(i):this.each(MIt(u,i,a))}function IIt(i){return function(){var a=this.parentNode;for(var u in this.__transition)if(+u!==i)return;a&&a.removeChild(this)}}function OIt(){return this.on("end.remove",IIt(this._id))}function NIt(i){var a=this._name,u=this._id;typeof i!="function"&&(i=Ope(i));for(var d=this._groups,p=d.length,v=new Array(p),b=0;b=0))throw new Error(`invalid digits: ${i}`);if(a>15)return CFe;const u=10**a;return function(d){this._+=d[0];for(let p=1,v=d.length;pwC)if(!(Math.abs(P*E-_*A)>wC)||!v)this._append`L${this._x1=a},${this._y1=u}`;else{let B=d-b,j=p-y,W=E*E+_*_,ee=B*B+j*j,ie=Math.sqrt(W),oe=Math.sqrt(R),be=v*Math.tan((Zpe-Math.acos((W+R-ee)/(2*ie*oe)))/2),ge=be/oe,ae=be/ie;Math.abs(ge-1)>wC&&this._append`L${a+ge*A},${u+ge*P}`,this._append`A${v},${v},0,0,${+(P*B>A*j)},${this._x1=a+ae*E},${this._y1=u+ae*_}`}}arc(a,u,d,p,v,b){if(a=+a,u=+u,d=+d,b=!!b,d<0)throw new Error(`negative radius: ${d}`);let y=d*Math.cos(p),E=d*Math.sin(p),_=a+y,A=u+E,P=1^b,R=b?p-v:v-p;this._x1===null?this._append`M${_},${A}`:(Math.abs(this._x1-_)>wC||Math.abs(this._y1-A)>wC)&&this._append`L${_},${A}`,d&&(R<0&&(R=R%e2e+e2e),R>sOt?this._append`A${d},${d},0,1,${P},${a-y},${u-E}A${d},${d},0,1,${P},${this._x1=_},${this._y1=A}`:R>wC&&this._append`A${d},${d},0,${+(R>=Zpe)},${P},${this._x1=a+d*Math.cos(v)},${this._y1=u+d*Math.sin(v)}`)}rect(a,u,d,p){this._append`M${this._x0=this._x1=+a},${this._y0=this._y1=+u}h${d=+d}v${+p}h${-d}Z`}toString(){return this._}};function cOt(i){if(!i.ok)throw new Error(i.status+" "+i.statusText);return i.text()}function uOt(i,a){return fetch(i,a).then(cOt)}function lOt(i){return(a,u)=>uOt(a,u).then(d=>new DOMParser().parseFromString(d,i))}var hOt=lOt("image/svg+xml");function fOt(i){return Math.abs(i=Math.round(i))>=1e21?i.toLocaleString("en").replace(/,/g,""):i.toString(10)}function oX(i,a){if((u=(i=a?i.toExponential(a-1):i.toExponential()).indexOf("e"))<0)return null;var u,d=i.slice(0,u);return[d.length>1?d[0]+d.slice(2):d,+i.slice(u+1)]}function iD(i){return i=oX(Math.abs(i)),i?i[1]:NaN}function dOt(i,a){return function(u,d){for(var p=u.length,v=[],b=0,y=i[0],E=0;p>0&&y>0&&(E+y+1>d&&(y=Math.max(1,d-E)),v.push(u.substring(p-=y,p+y)),!((E+=y+1)>d));)y=i[b=(b+1)%i.length];return v.reverse().join(a)}}function gOt(i){return function(a){return a.replace(/[0-9]/g,function(u){return i[+u]})}}var pOt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function cX(i){if(!(a=pOt.exec(i)))throw new Error("invalid format: "+i);var a;return new t2e({fill:a[1],align:a[2],sign:a[3],symbol:a[4],zero:a[5],width:a[6],comma:a[7],precision:a[8]&&a[8].slice(1),trim:a[9],type:a[10]})}cX.prototype=t2e.prototype;function t2e(i){this.fill=i.fill===void 0?" ":i.fill+"",this.align=i.align===void 0?">":i.align+"",this.sign=i.sign===void 0?"-":i.sign+"",this.symbol=i.symbol===void 0?"":i.symbol+"",this.zero=!!i.zero,this.width=i.width===void 0?void 0:+i.width,this.comma=!!i.comma,this.precision=i.precision===void 0?void 0:+i.precision,this.trim=!!i.trim,this.type=i.type===void 0?"":i.type+""}t2e.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 bOt(i){e:for(var a=i.length,u=1,d=-1,p;u0&&(d=0);break}return d>0?i.slice(0,d)+i.slice(p+1):i}var SFe;function mOt(i,a){var u=oX(i,a);if(!u)return i+"";var d=u[0],p=u[1],v=p-(SFe=Math.max(-8,Math.min(8,Math.floor(p/3)))*3)+1,b=d.length;return v===b?d:v>b?d+new Array(v-b+1).join("0"):v>0?d.slice(0,v)+"."+d.slice(v):"0."+new Array(1-v).join("0")+oX(i,Math.max(0,a+v-1))[0]}function _Fe(i,a){var u=oX(i,a);if(!u)return i+"";var d=u[0],p=u[1];return p<0?"0."+new Array(-p).join("0")+d:d.length>p+1?d.slice(0,p+1)+"."+d.slice(p+1):d+new Array(p-d.length+2).join("0")}const AFe={"%":(i,a)=>(i*100).toFixed(a),b:i=>Math.round(i).toString(2),c:i=>i+"",d:fOt,e:(i,a)=>i.toExponential(a),f:(i,a)=>i.toFixed(a),g:(i,a)=>i.toPrecision(a),o:i=>Math.round(i).toString(8),p:(i,a)=>_Fe(i*100,a),r:_Fe,s:mOt,X:i=>Math.round(i).toString(16).toUpperCase(),x:i=>Math.round(i).toString(16)};function LFe(i){return i}var MFe=Array.prototype.map,DFe=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function vOt(i){var a=i.grouping===void 0||i.thousands===void 0?LFe:dOt(MFe.call(i.grouping,Number),i.thousands+""),u=i.currency===void 0?"":i.currency[0]+"",d=i.currency===void 0?"":i.currency[1]+"",p=i.decimal===void 0?".":i.decimal+"",v=i.numerals===void 0?LFe:gOt(MFe.call(i.numerals,String)),b=i.percent===void 0?"%":i.percent+"",y=i.minus===void 0?"−":i.minus+"",E=i.nan===void 0?"NaN":i.nan+"";function _(P){P=cX(P);var R=P.fill,B=P.align,j=P.sign,W=P.symbol,ee=P.zero,ie=P.width,oe=P.comma,be=P.precision,ge=P.trim,ae=P.type;ae==="n"?(oe=!0,ae="g"):AFe[ae]||(be===void 0&&(be=12),ge=!0,ae="g"),(ee||R==="0"&&B==="=")&&(ee=!0,R="0",B="=");var ne=W==="$"?u:W==="#"&&/[boxX]/.test(ae)?"0"+ae.toLowerCase():"",se=W==="$"?d:/[%p]/.test(ae)?b:"",de=AFe[ae],X=/[defgprs%]/.test(ae);be=be===void 0?6:/[gprs]/.test(ae)?Math.max(1,Math.min(21,be)):Math.max(0,Math.min(20,be));function pe(G){var xe=ne,U=se,Be,Pe,je;if(ae==="c")U=de(G)+U,G="";else{G=+G;var Ie=G<0||1/G<0;if(G=isNaN(G)?E:de(Math.abs(G),be),ge&&(G=bOt(G)),Ie&&+G==0&&j!=="+"&&(Ie=!1),xe=(Ie?j==="("?j:y:j==="-"||j==="("?"":j)+xe,U=(ae==="s"?DFe[8+SFe/3]:"")+U+(Ie&&j==="("?")":""),X){for(Be=-1,Pe=G.length;++Beje||je>57){U=(je===46?p+G.slice(Be+1):G.slice(Be))+U,G=G.slice(0,Be);break}}}oe&&!ee&&(G=a(G,1/0));var Se=xe.length+G.length+U.length,Ce=Se>1)+xe+G+U+Ce.slice(Se);break;default:G=Ce+xe+G+U;break}return v(G)}return pe.toString=function(){return P+""},pe}function A(P,R){var B=_((P=cX(P),P.type="f",P)),j=Math.max(-8,Math.min(8,Math.floor(iD(R)/3)))*3,W=Math.pow(10,-j),ee=DFe[8+j/3];return function(ie){return B(W*ie)+ee}}return{format:_,formatPrefix:A}}var uX,IFe,OFe;wOt({thousands:",",grouping:[3],currency:["$",""]});function wOt(i){return uX=vOt(i),IFe=uX.format,OFe=uX.formatPrefix,uX}function yOt(i){return Math.max(0,-iD(Math.abs(i)))}function xOt(i,a){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(iD(a)/3)))*3-iD(Math.abs(i)))}function kOt(i,a){return i=Math.abs(i),a=Math.abs(a)-i,Math.max(0,iD(a)-iD(i))+1}function lX(i,a){switch(arguments.length){case 0:break;case 1:this.range(i);break;default:this.range(a).domain(i);break}return this}const NFe=Symbol("implicit");function PF(){var i=new SBe,a=[],u=[],d=NFe;function p(v){let b=i.get(v);if(b===void 0){if(d!==NFe)return d;i.set(v,b=a.push(v)-1)}return u[b%u.length]}return p.domain=function(v){if(!arguments.length)return a.slice();a=[],i=new SBe;for(const b of v)i.has(b)||i.set(b,a.push(b)-1);return p},p.range=function(v){return arguments.length?(u=Array.from(v),p):u.slice()},p.unknown=function(v){return arguments.length?(d=v,p):d},p.copy=function(){return PF(a,u).unknown(d)},lX.apply(p,arguments),p}function n2e(){var i=PF().unknown(void 0),a=i.domain,u=i.range,d=0,p=1,v,b,y=!1,E=0,_=0,A=.5;delete i.unknown;function P(){var R=a().length,B=pa&&(u=i,i=a,a=u),function(d){return Math.max(i,Math.min(a,d))}}function SOt(i,a,u){var d=i[0],p=i[1],v=a[0],b=a[1];return p2?_Ot:SOt,E=_=null,P}function P(R){return R==null||isNaN(R=+R)?v:(E||(E=y(i.map(d),a,u)))(d(b(R)))}return P.invert=function(R){return b(p((_||(_=y(a,i.map(d),B3)))(R)))},P.domain=function(R){return arguments.length?(i=Array.from(R,EOt),A()):i.slice()},P.range=function(R){return arguments.length?(a=Array.from(R),A()):a.slice()},P.rangeRound=function(R){return a=Array.from(R),u=$Dt,A()},P.clamp=function(R){return arguments.length?(b=R?!0:sD,A()):b!==sD},P.interpolate=function(R){return arguments.length?(u=R,A()):u},P.unknown=function(R){return arguments.length?(v=R,P):v},function(R,B){return d=R,p=B,A()}}function FFe(){return AOt()(sD,sD)}function LOt(i,a,u,d){var p=Lpe(i,a,u),v;switch(d=cX(d??",f"),d.type){case"s":{var b=Math.max(Math.abs(i),Math.abs(a));return d.precision==null&&!isNaN(v=xOt(p,b))&&(d.precision=v),OFe(d,b)}case"":case"e":case"g":case"p":case"r":{d.precision==null&&!isNaN(v=kOt(p,Math.max(Math.abs(i),Math.abs(a))))&&(d.precision=v-(d.type==="e"));break}case"f":case"%":{d.precision==null&&!isNaN(v=yOt(p))&&(d.precision=v-(d.type==="%")*2);break}}return IFe(d)}function MOt(i){var a=i.domain;return i.ticks=function(u){var d=a();return kLt(d[0],d[d.length-1],u??10)},i.tickFormat=function(u,d){var p=a();return LOt(p[0],p[p.length-1],u??10,d)},i.nice=function(u){u==null&&(u=10);var d=a(),p=0,v=d.length-1,b=d[p],y=d[v],E,_,A=10;for(y0;){if(_=Ape(b,y,u),_===E)return d[p]=b,d[v]=y,a(d);if(_>0)b=Math.floor(b/_)*_,y=Math.ceil(y/_)*_;else if(_<0)b=Math.ceil(b*_)/_,y=Math.floor(y*_)/_;else break;E=_}return i},i}function aD(){var i=FFe();return i.copy=function(){return BFe(i,aD())},lX.apply(i,arguments),MOt(i)}function DOt(i,a){i=i.slice();var u=0,d=i.length-1,p=i[u],v=i[d],b;return v(i(v=new Date(+v)),v),p.ceil=v=>(i(v=new Date(v-1)),a(v,1),i(v),v),p.round=v=>{const b=p(v),y=p.ceil(v);return v-b(a(v=new Date(+v),b==null?1:Math.floor(b)),v),p.range=(v,b,y)=>{const E=[];if(v=p.ceil(v),y=y==null?1:Math.floor(y),!(v0))return E;let _;do E.push(_=new Date(+v)),a(v,y),i(v);while(_l1(b=>{if(b>=b)for(;i(b),!v(b);)b.setTime(b-1)},(b,y)=>{if(b>=b)if(y<0)for(;++y<=0;)for(;a(b,-1),!v(b););else for(;--y>=0;)for(;a(b,1),!v(b););}),u&&(p.count=(v,b)=>(i2e.setTime(+v),s2e.setTime(+b),i(i2e),i(s2e),Math.floor(u(i2e,s2e))),p.every=v=>(v=Math.floor(v),!isFinite(v)||!(v>0)?null:v>1?p.filter(d?b=>d(b)%v===0:b=>p.count(0,b)%v===0):p)),p}const oD=l1(()=>{},(i,a)=>{i.setTime(+i+a)},(i,a)=>a-i);oD.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?l1(a=>{a.setTime(Math.floor(a/i)*i)},(a,u)=>{a.setTime(+a+u*i)},(a,u)=>(u-a)/i):oD),oD.range;const y7=1e3,Rv=y7*60,x7=Rv*60,k7=x7*24,a2e=k7*7,RFe=k7*30,o2e=k7*365,m9=l1(i=>{i.setTime(i-i.getMilliseconds())},(i,a)=>{i.setTime(+i+a*y7)},(i,a)=>(a-i)/y7,i=>i.getUTCSeconds());m9.range;const BF=l1(i=>{i.setTime(i-i.getMilliseconds()-i.getSeconds()*y7)},(i,a)=>{i.setTime(+i+a*Rv)},(i,a)=>(a-i)/Rv,i=>i.getMinutes());BF.range,l1(i=>{i.setUTCSeconds(0,0)},(i,a)=>{i.setTime(+i+a*Rv)},(i,a)=>(a-i)/Rv,i=>i.getUTCMinutes()).range;const FF=l1(i=>{i.setTime(i-i.getMilliseconds()-i.getSeconds()*y7-i.getMinutes()*Rv)},(i,a)=>{i.setTime(+i+a*x7)},(i,a)=>(a-i)/x7,i=>i.getHours());FF.range,l1(i=>{i.setUTCMinutes(0,0,0)},(i,a)=>{i.setTime(+i+a*x7)},(i,a)=>(a-i)/x7,i=>i.getUTCHours()).range;const yC=l1(i=>i.setHours(0,0,0,0),(i,a)=>i.setDate(i.getDate()+a),(i,a)=>(a-i-(a.getTimezoneOffset()-i.getTimezoneOffset())*Rv)/k7,i=>i.getDate()-1);yC.range;const c2e=l1(i=>{i.setUTCHours(0,0,0,0)},(i,a)=>{i.setUTCDate(i.getUTCDate()+a)},(i,a)=>(a-i)/k7,i=>i.getUTCDate()-1);c2e.range,l1(i=>{i.setUTCHours(0,0,0,0)},(i,a)=>{i.setUTCDate(i.getUTCDate()+a)},(i,a)=>(a-i)/k7,i=>Math.floor(i/k7)).range;function xC(i){return l1(a=>{a.setDate(a.getDate()-(a.getDay()+7-i)%7),a.setHours(0,0,0,0)},(a,u)=>{a.setDate(a.getDate()+u*7)},(a,u)=>(u-a-(u.getTimezoneOffset()-a.getTimezoneOffset())*Rv)/a2e)}const RF=xC(0),jF=xC(1),jFe=xC(2),$Fe=xC(3),kC=xC(4),zFe=xC(5),qFe=xC(6);RF.range,jF.range,jFe.range,$Fe.range,kC.range,zFe.range,qFe.range;function TC(i){return l1(a=>{a.setUTCDate(a.getUTCDate()-(a.getUTCDay()+7-i)%7),a.setUTCHours(0,0,0,0)},(a,u)=>{a.setUTCDate(a.getUTCDate()+u*7)},(a,u)=>(u-a)/a2e)}const HFe=TC(0),hX=TC(1),IOt=TC(2),OOt=TC(3),cD=TC(4),NOt=TC(5),POt=TC(6);HFe.range,hX.range,IOt.range,OOt.range,cD.range,NOt.range,POt.range;const $F=l1(i=>{i.setDate(1),i.setHours(0,0,0,0)},(i,a)=>{i.setMonth(i.getMonth()+a)},(i,a)=>a.getMonth()-i.getMonth()+(a.getFullYear()-i.getFullYear())*12,i=>i.getMonth());$F.range,l1(i=>{i.setUTCDate(1),i.setUTCHours(0,0,0,0)},(i,a)=>{i.setUTCMonth(i.getUTCMonth()+a)},(i,a)=>a.getUTCMonth()-i.getUTCMonth()+(a.getUTCFullYear()-i.getUTCFullYear())*12,i=>i.getUTCMonth()).range;const T7=l1(i=>{i.setMonth(0,1),i.setHours(0,0,0,0)},(i,a)=>{i.setFullYear(i.getFullYear()+a)},(i,a)=>a.getFullYear()-i.getFullYear(),i=>i.getFullYear());T7.every=i=>!isFinite(i=Math.floor(i))||!(i>0)?null:l1(a=>{a.setFullYear(Math.floor(a.getFullYear()/i)*i),a.setMonth(0,1),a.setHours(0,0,0,0)},(a,u)=>{a.setFullYear(a.getFullYear()+u*i)}),T7.range;const EC=l1(i=>{i.setUTCMonth(0,1),i.setUTCHours(0,0,0,0)},(i,a)=>{i.setUTCFullYear(i.getUTCFullYear()+a)},(i,a)=>a.getUTCFullYear()-i.getUTCFullYear(),i=>i.getUTCFullYear());EC.every=i=>!isFinite(i=Math.floor(i))||!(i>0)?null:l1(a=>{a.setUTCFullYear(Math.floor(a.getUTCFullYear()/i)*i),a.setUTCMonth(0,1),a.setUTCHours(0,0,0,0)},(a,u)=>{a.setUTCFullYear(a.getUTCFullYear()+u*i)}),EC.range;function BOt(i,a,u,d,p,v){const b=[[m9,1,y7],[m9,5,5*y7],[m9,15,15*y7],[m9,30,30*y7],[v,1,Rv],[v,5,5*Rv],[v,15,15*Rv],[v,30,30*Rv],[p,1,x7],[p,3,3*x7],[p,6,6*x7],[p,12,12*x7],[d,1,k7],[d,2,2*k7],[u,1,a2e],[a,1,RFe],[a,3,3*RFe],[i,1,o2e]];function y(_,A,P){const R=A<_;R&&([_,A]=[A,_]);const B=P&&typeof P.range=="function"?P:E(_,A,P),j=B?B.range(_,+A+1):[];return R?j.reverse():j}function E(_,A,P){const R=Math.abs(A-_)/P,B=_pe(([,,ee])=>ee).right(b,R);if(B===b.length)return i.every(Lpe(_/o2e,A/o2e,P));if(B===0)return oD.every(Math.max(Lpe(_,A,P),1));const[j,W]=b[R/b[B-1][2]53)return null;"w"in Dt||(Dt.w=1),"Z"in Dt?(Nn=l2e(zF(Dt.y,0,1)),ht=Nn.getUTCDay(),Nn=ht>4||ht===0?hX.ceil(Nn):hX(Nn),Nn=c2e.offset(Nn,(Dt.V-1)*7),Dt.y=Nn.getUTCFullYear(),Dt.m=Nn.getUTCMonth(),Dt.d=Nn.getUTCDate()+(Dt.w+6)%7):(Nn=u2e(zF(Dt.y,0,1)),ht=Nn.getDay(),Nn=ht>4||ht===0?jF.ceil(Nn):jF(Nn),Nn=yC.offset(Nn,(Dt.V-1)*7),Dt.y=Nn.getFullYear(),Dt.m=Nn.getMonth(),Dt.d=Nn.getDate()+(Dt.w+6)%7)}else("W"in Dt||"U"in Dt)&&("w"in Dt||(Dt.w="u"in Dt?Dt.u%7:"W"in Dt?1:0),ht="Z"in Dt?l2e(zF(Dt.y,0,1)).getUTCDay():u2e(zF(Dt.y,0,1)).getDay(),Dt.m=0,Dt.d="W"in Dt?(Dt.w+6)%7+Dt.W*7-(ht+5)%7:Dt.w+Dt.U*7-(ht+6)%7);return"Z"in Dt?(Dt.H+=Dt.Z/100|0,Dt.M+=Dt.Z%100,l2e(Dt)):u2e(Dt)}}function de(yt,Bt,Ze,Dt){for(var kt=0,Nn=Bt.length,ht=Ze.length,qr,xt;kt=ht)return-1;if(qr=Bt.charCodeAt(kt++),qr===37){if(qr=Bt.charAt(kt++),xt=ae[qr in UFe?Bt.charAt(kt++):qr],!xt||(Dt=xt(yt,Ze,Dt))<0)return-1}else if(qr!=Ze.charCodeAt(Dt++))return-1}return Dt}function X(yt,Bt,Ze){var Dt=_.exec(Bt.slice(Ze));return Dt?(yt.p=A.get(Dt[0].toLowerCase()),Ze+Dt[0].length):-1}function pe(yt,Bt,Ze){var Dt=B.exec(Bt.slice(Ze));return Dt?(yt.w=j.get(Dt[0].toLowerCase()),Ze+Dt[0].length):-1}function G(yt,Bt,Ze){var Dt=P.exec(Bt.slice(Ze));return Dt?(yt.w=R.get(Dt[0].toLowerCase()),Ze+Dt[0].length):-1}function xe(yt,Bt,Ze){var Dt=ie.exec(Bt.slice(Ze));return Dt?(yt.m=oe.get(Dt[0].toLowerCase()),Ze+Dt[0].length):-1}function U(yt,Bt,Ze){var Dt=W.exec(Bt.slice(Ze));return Dt?(yt.m=ee.get(Dt[0].toLowerCase()),Ze+Dt[0].length):-1}function Be(yt,Bt,Ze){return de(yt,a,Bt,Ze)}function Pe(yt,Bt,Ze){return de(yt,u,Bt,Ze)}function je(yt,Bt,Ze){return de(yt,d,Bt,Ze)}function Ie(yt){return b[yt.getDay()]}function Se(yt){return v[yt.getDay()]}function Ce(yt){return E[yt.getMonth()]}function ke(yt){return y[yt.getMonth()]}function Ke(yt){return p[+(yt.getHours()>=12)]}function zt(yt){return 1+~~(yt.getMonth()/3)}function Ne(yt){return b[yt.getUTCDay()]}function pn(yt){return v[yt.getUTCDay()]}function Tt(yt){return E[yt.getUTCMonth()]}function Et(yt){return y[yt.getUTCMonth()]}function Wt(yt){return p[+(yt.getUTCHours()>=12)]}function un(yt){return 1+~~(yt.getUTCMonth()/3)}return{format:function(yt){var Bt=ne(yt+="",be);return Bt.toString=function(){return yt},Bt},parse:function(yt){var Bt=se(yt+="",!1);return Bt.toString=function(){return yt},Bt},utcFormat:function(yt){var Bt=ne(yt+="",ge);return Bt.toString=function(){return yt},Bt},utcParse:function(yt){var Bt=se(yt+="",!0);return Bt.toString=function(){return yt},Bt}}}var UFe={"-":"",_:" ",0:"0"},rd=/^\s*\d+/,$Ot=/^%/,zOt=/[\\^$*+?|[\]().{}]/g;function bu(i,a,u){var d=i<0?"-":"",p=(d?-i:i)+"",v=p.length;return d+(v[a.toLowerCase(),u]))}function HOt(i,a,u){var d=rd.exec(a.slice(u,u+1));return d?(i.w=+d[0],u+d[0].length):-1}function UOt(i,a,u){var d=rd.exec(a.slice(u,u+1));return d?(i.u=+d[0],u+d[0].length):-1}function VOt(i,a,u){var d=rd.exec(a.slice(u,u+2));return d?(i.U=+d[0],u+d[0].length):-1}function GOt(i,a,u){var d=rd.exec(a.slice(u,u+2));return d?(i.V=+d[0],u+d[0].length):-1}function KOt(i,a,u){var d=rd.exec(a.slice(u,u+2));return d?(i.W=+d[0],u+d[0].length):-1}function VFe(i,a,u){var d=rd.exec(a.slice(u,u+4));return d?(i.y=+d[0],u+d[0].length):-1}function GFe(i,a,u){var d=rd.exec(a.slice(u,u+2));return d?(i.y=+d[0]+(+d[0]>68?1900:2e3),u+d[0].length):-1}function WOt(i,a,u){var d=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(a.slice(u,u+6));return d?(i.Z=d[1]?0:-(d[2]+(d[3]||"00")),u+d[0].length):-1}function YOt(i,a,u){var d=rd.exec(a.slice(u,u+1));return d?(i.q=d[0]*3-3,u+d[0].length):-1}function XOt(i,a,u){var d=rd.exec(a.slice(u,u+2));return d?(i.m=d[0]-1,u+d[0].length):-1}function KFe(i,a,u){var d=rd.exec(a.slice(u,u+2));return d?(i.d=+d[0],u+d[0].length):-1}function QOt(i,a,u){var d=rd.exec(a.slice(u,u+3));return d?(i.m=0,i.d=+d[0],u+d[0].length):-1}function WFe(i,a,u){var d=rd.exec(a.slice(u,u+2));return d?(i.H=+d[0],u+d[0].length):-1}function JOt(i,a,u){var d=rd.exec(a.slice(u,u+2));return d?(i.M=+d[0],u+d[0].length):-1}function ZOt(i,a,u){var d=rd.exec(a.slice(u,u+2));return d?(i.S=+d[0],u+d[0].length):-1}function eNt(i,a,u){var d=rd.exec(a.slice(u,u+3));return d?(i.L=+d[0],u+d[0].length):-1}function tNt(i,a,u){var d=rd.exec(a.slice(u,u+6));return d?(i.L=Math.floor(d[0]/1e3),u+d[0].length):-1}function nNt(i,a,u){var d=$Ot.exec(a.slice(u,u+1));return d?u+d[0].length:-1}function rNt(i,a,u){var d=rd.exec(a.slice(u));return d?(i.Q=+d[0],u+d[0].length):-1}function iNt(i,a,u){var d=rd.exec(a.slice(u));return d?(i.s=+d[0],u+d[0].length):-1}function YFe(i,a){return bu(i.getDate(),a,2)}function sNt(i,a){return bu(i.getHours(),a,2)}function aNt(i,a){return bu(i.getHours()%12||12,a,2)}function oNt(i,a){return bu(1+yC.count(T7(i),i),a,3)}function XFe(i,a){return bu(i.getMilliseconds(),a,3)}function cNt(i,a){return XFe(i,a)+"000"}function uNt(i,a){return bu(i.getMonth()+1,a,2)}function lNt(i,a){return bu(i.getMinutes(),a,2)}function hNt(i,a){return bu(i.getSeconds(),a,2)}function fNt(i){var a=i.getDay();return a===0?7:a}function dNt(i,a){return bu(RF.count(T7(i)-1,i),a,2)}function QFe(i){var a=i.getDay();return a>=4||a===0?kC(i):kC.ceil(i)}function gNt(i,a){return i=QFe(i),bu(kC.count(T7(i),i)+(T7(i).getDay()===4),a,2)}function pNt(i){return i.getDay()}function bNt(i,a){return bu(jF.count(T7(i)-1,i),a,2)}function mNt(i,a){return bu(i.getFullYear()%100,a,2)}function vNt(i,a){return i=QFe(i),bu(i.getFullYear()%100,a,2)}function wNt(i,a){return bu(i.getFullYear()%1e4,a,4)}function yNt(i,a){var u=i.getDay();return i=u>=4||u===0?kC(i):kC.ceil(i),bu(i.getFullYear()%1e4,a,4)}function xNt(i){var a=i.getTimezoneOffset();return(a>0?"-":(a*=-1,"+"))+bu(a/60|0,"0",2)+bu(a%60,"0",2)}function JFe(i,a){return bu(i.getUTCDate(),a,2)}function kNt(i,a){return bu(i.getUTCHours(),a,2)}function TNt(i,a){return bu(i.getUTCHours()%12||12,a,2)}function ENt(i,a){return bu(1+c2e.count(EC(i),i),a,3)}function ZFe(i,a){return bu(i.getUTCMilliseconds(),a,3)}function CNt(i,a){return ZFe(i,a)+"000"}function SNt(i,a){return bu(i.getUTCMonth()+1,a,2)}function _Nt(i,a){return bu(i.getUTCMinutes(),a,2)}function ANt(i,a){return bu(i.getUTCSeconds(),a,2)}function LNt(i){var a=i.getUTCDay();return a===0?7:a}function MNt(i,a){return bu(HFe.count(EC(i)-1,i),a,2)}function eRe(i){var a=i.getUTCDay();return a>=4||a===0?cD(i):cD.ceil(i)}function DNt(i,a){return i=eRe(i),bu(cD.count(EC(i),i)+(EC(i).getUTCDay()===4),a,2)}function INt(i){return i.getUTCDay()}function ONt(i,a){return bu(hX.count(EC(i)-1,i),a,2)}function NNt(i,a){return bu(i.getUTCFullYear()%100,a,2)}function PNt(i,a){return i=eRe(i),bu(i.getUTCFullYear()%100,a,2)}function BNt(i,a){return bu(i.getUTCFullYear()%1e4,a,4)}function FNt(i,a){var u=i.getUTCDay();return i=u>=4||u===0?cD(i):cD.ceil(i),bu(i.getUTCFullYear()%1e4,a,4)}function RNt(){return"+0000"}function tRe(){return"%"}function nRe(i){return+i}function rRe(i){return Math.floor(+i/1e3)}var uD,fX;jNt({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 jNt(i){return uD=jOt(i),fX=uD.format,uD.parse,uD.utcFormat,uD.utcParse,uD}function $Nt(i){return new Date(i)}function zNt(i){return i instanceof Date?+i:+new Date(+i)}function iRe(i,a,u,d,p,v,b,y,E,_){var A=FFe(),P=A.invert,R=A.domain,B=_(".%L"),j=_(":%S"),W=_("%I:%M"),ee=_("%I %p"),ie=_("%a %d"),oe=_("%b %d"),be=_("%B"),ge=_("%Y");function ae(ne){return(E(ne)1?0:i<-1?UF:Math.acos(i)}function oRe(i){return i>=1?dX:i<=-1?-dX:Math.asin(i)}function cRe(i){let a=3;return i.digits=function(u){if(!arguments.length)return a;if(u==null)a=null;else{const d=Math.floor(u);if(!(d>=0))throw new RangeError(`invalid digits: ${u}`);a=d}return i},()=>new oOt(a)}function GNt(i){return i.innerRadius}function KNt(i){return i.outerRadius}function WNt(i){return i.startAngle}function YNt(i){return i.endAngle}function XNt(i){return i&&i.padAngle}function QNt(i,a,u,d,p,v,b,y){var E=u-i,_=d-a,A=b-p,P=y-v,R=P*E-A*_;if(!(R*RBe*Be+Pe*Pe&&(de=pe,X=G),{cx:de,cy:X,x01:-A,y01:-P,x11:de*(p/ae-1),y11:X*(p/ae-1)}}function hD(){var i=GNt,a=KNt,u=Wf(0),d=null,p=WNt,v=YNt,b=XNt,y=null,E=cRe(_);function _(){var A,P,R=+i.apply(this,arguments),B=+a.apply(this,arguments),j=p.apply(this,arguments)-dX,W=v.apply(this,arguments)-dX,ee=aRe(W-j),ie=W>j;if(y||(y=A=E()),BPg))y.moveTo(0,0);else if(ee>gX-Pg)y.moveTo(B*CC(j),B*U4(j)),y.arc(0,0,B,j,W,!ie),R>Pg&&(y.moveTo(R*CC(W),R*U4(W)),y.arc(0,0,R,W,j,ie));else{var oe=j,be=W,ge=j,ae=W,ne=ee,se=ee,de=b.apply(this,arguments)/2,X=de>Pg&&(d?+d.apply(this,arguments):lD(R*R+B*B)),pe=h2e(aRe(B-R)/2,+u.apply(this,arguments)),G=pe,xe=pe,U,Be;if(X>Pg){var Pe=oRe(X/R*U4(de)),je=oRe(X/B*U4(de));(ne-=Pe*2)>Pg?(Pe*=ie?1:-1,ge+=Pe,ae-=Pe):(ne=0,ge=ae=(j+W)/2),(se-=je*2)>Pg?(je*=ie?1:-1,oe+=je,be-=je):(se=0,oe=be=(j+W)/2)}var Ie=B*CC(oe),Se=B*U4(oe),Ce=R*CC(ae),ke=R*U4(ae);if(pe>Pg){var Ke=B*CC(be),zt=B*U4(be),Ne=R*CC(ge),pn=R*U4(ge),Tt;if(eePg?xe>Pg?(U=pX(Ne,pn,Ie,Se,B,xe,ie),Be=pX(Ke,zt,Ce,ke,B,xe,ie),y.moveTo(U.cx+U.x01,U.cy+U.y01),xePg)||!(ne>Pg)?y.lineTo(Ce,ke):G>Pg?(U=pX(Ce,ke,Ke,zt,R,-G,ie),Be=pX(Ie,Se,Ne,pn,R,-G,ie),y.lineTo(U.cx+U.x01,U.cy+U.y01),Gi?1:a>=i?0:NaN}function tPt(i){return i}function nPt(){var i=tPt,a=ePt,u=null,d=Wf(0),p=Wf(gX),v=Wf(0);function b(y){var E,_=(y=uRe(y)).length,A,P,R=0,B=new Array(_),j=new Array(_),W=+d.apply(this,arguments),ee=Math.min(gX,Math.max(-gX,p.apply(this,arguments)-W)),ie,oe=Math.min(Math.abs(ee)/_,v.apply(this,arguments)),be=oe*(ee<0?-1:1),ge;for(E=0;E<_;++E)(ge=j[B[E]=E]=+i(y[E],E,y))>0&&(R+=ge);for(a!=null?B.sort(function(ae,ne){return a(j[ae],j[ne])}):u!=null&&B.sort(function(ae,ne){return u(y[ae],y[ne])}),E=0,P=R?(ee-_*be)/R:0;E<_;++E,W=ie)A=B[E],ge=j[A],ie=W+(ge>0?ge*P:0)+be,j[A]={data:y[A],index:E,value:ge,startAngle:W,endAngle:ie,padAngle:oe};return j}return b.value=function(y){return arguments.length?(i=typeof y=="function"?y:Wf(+y),b):i},b.sortValues=function(y){return arguments.length?(a=y,u=null,b):a},b.sort=function(y){return arguments.length?(u=y,a=null,b):u},b.startAngle=function(y){return arguments.length?(d=typeof y=="function"?y:Wf(+y),b):d},b.endAngle=function(y){return arguments.length?(p=typeof y=="function"?y:Wf(+y),b):p},b.padAngle=function(y){return arguments.length?(v=typeof y=="function"?y:Wf(+y),b):v},b}class hRe{constructor(a,u){this._context=a,this._x=u}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(a,u){switch(a=+a,u=+u,this._point){case 0:{this._point=1,this._line?this._context.lineTo(a,u):this._context.moveTo(a,u);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+a)/2,this._y0,this._x0,u,a,u):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+u)/2,a,this._y0,a,u);break}}this._x0=a,this._y0=u}}function rPt(i){return new hRe(i,!0)}function iPt(i){return new hRe(i,!1)}function v9(){}function bX(i,a,u){i._context.bezierCurveTo((2*i._x0+i._x1)/3,(2*i._y0+i._y1)/3,(i._x0+2*i._x1)/3,(i._y0+2*i._y1)/3,(i._x0+4*i._x1+a)/6,(i._y0+4*i._y1+u)/6)}function mX(i){this._context=i}mX.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:bX(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(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);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:bX(this,i,a);break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a}};function VF(i){return new mX(i)}function fRe(i){this._context=i}fRe.prototype={areaStart:v9,areaEnd:v9,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(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._x2=i,this._y2=a;break;case 1:this._point=2,this._x3=i,this._y3=a;break;case 2:this._point=3,this._x4=i,this._y4=a,this._context.moveTo((this._x0+4*this._x1+i)/6,(this._y0+4*this._y1+a)/6);break;default:bX(this,i,a);break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a}};function sPt(i){return new fRe(i)}function dRe(i){this._context=i}dRe.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(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var u=(this._x0+4*this._x1+i)/6,d=(this._y0+4*this._y1+a)/6;this._line?this._context.lineTo(u,d):this._context.moveTo(u,d);break;case 3:this._point=4;default:bX(this,i,a);break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a}};function aPt(i){return new dRe(i)}function gRe(i,a){this._basis=new mX(i),this._beta=a}gRe.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var i=this._x,a=this._y,u=i.length-1;if(u>0)for(var d=i[0],p=a[0],v=i[u]-d,b=a[u]-p,y=-1,E;++y<=u;)E=y/u,this._basis.point(this._beta*i[y]+(1-this._beta)*(d+E*v),this._beta*a[y]+(1-this._beta)*(p+E*b));this._x=this._y=null,this._basis.lineEnd()},point:function(i,a){this._x.push(+i),this._y.push(+a)}};const oPt=function i(a){function u(d){return a===1?new mX(d):new gRe(d,a)}return u.beta=function(d){return i(+d)},u}(.85);function vX(i,a,u){i._context.bezierCurveTo(i._x1+i._k*(i._x2-i._x0),i._y1+i._k*(i._y2-i._y0),i._x2+i._k*(i._x1-a),i._y2+i._k*(i._y1-u),i._x2,i._y2)}function f2e(i,a){this._context=i,this._k=(1-a)/6}f2e.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:vX(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2,this._x1=i,this._y1=a;break;case 2:this._point=3;default:vX(this,i,a);break}this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const cPt=function i(a){function u(d){return new f2e(d,a)}return u.tension=function(d){return i(+d)},u}(0);function d2e(i,a){this._context=i,this._k=(1-a)/6}d2e.prototype={areaStart:v9,areaEnd:v9,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(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._x3=i,this._y3=a;break;case 1:this._point=2,this._context.moveTo(this._x4=i,this._y4=a);break;case 2:this._point=3,this._x5=i,this._y5=a;break;default:vX(this,i,a);break}this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const uPt=function i(a){function u(d){return new d2e(d,a)}return u.tension=function(d){return i(+d)},u}(0);function g2e(i,a){this._context=i,this._k=(1-a)/6}g2e.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(i,a){switch(i=+i,a=+a,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:vX(this,i,a);break}this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const lPt=function i(a){function u(d){return new g2e(d,a)}return u.tension=function(d){return i(+d)},u}(0);function p2e(i,a,u){var d=i._x1,p=i._y1,v=i._x2,b=i._y2;if(i._l01_a>Pg){var y=2*i._l01_2a+3*i._l01_a*i._l12_a+i._l12_2a,E=3*i._l01_a*(i._l01_a+i._l12_a);d=(d*y-i._x0*i._l12_2a+i._x2*i._l01_2a)/E,p=(p*y-i._y0*i._l12_2a+i._y2*i._l01_2a)/E}if(i._l23_a>Pg){var _=2*i._l23_2a+3*i._l23_a*i._l12_a+i._l12_2a,A=3*i._l23_a*(i._l23_a+i._l12_a);v=(v*_+i._x1*i._l23_2a-a*i._l12_2a)/A,b=(b*_+i._y1*i._l23_2a-u*i._l12_2a)/A}i._context.bezierCurveTo(d,p,v,b,i._x2,i._y2)}function pRe(i,a){this._context=i,this._alpha=a}pRe.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(i,a){if(i=+i,a=+a,this._point){var u=this._x2-i,d=this._y2-a;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(u*u+d*d,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;break;case 2:this._point=3;default:p2e(this,i,a);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=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const hPt=function i(a){function u(d){return a?new pRe(d,a):new f2e(d,0)}return u.alpha=function(d){return i(+d)},u}(.5);function bRe(i,a){this._context=i,this._alpha=a}bRe.prototype={areaStart:v9,areaEnd:v9,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(i,a){if(i=+i,a=+a,this._point){var u=this._x2-i,d=this._y2-a;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(u*u+d*d,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=i,this._y3=a;break;case 1:this._point=2,this._context.moveTo(this._x4=i,this._y4=a);break;case 2:this._point=3,this._x5=i,this._y5=a;break;default:p2e(this,i,a);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=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const fPt=function i(a){function u(d){return a?new bRe(d,a):new d2e(d,0)}return u.alpha=function(d){return i(+d)},u}(.5);function mRe(i,a){this._context=i,this._alpha=a}mRe.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(i,a){if(i=+i,a=+a,this._point){var u=this._x2-i,d=this._y2-a;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(u*u+d*d,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:p2e(this,i,a);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=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const dPt=function i(a){function u(d){return a?new mRe(d,a):new g2e(d,0)}return u.alpha=function(d){return i(+d)},u}(.5);function vRe(i){this._context=i}vRe.prototype={areaStart:v9,areaEnd:v9,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(i,a){i=+i,a=+a,this._point?this._context.lineTo(i,a):(this._point=1,this._context.moveTo(i,a))}};function gPt(i){return new vRe(i)}function wRe(i){return i<0?-1:1}function yRe(i,a,u){var d=i._x1-i._x0,p=a-i._x1,v=(i._y1-i._y0)/(d||p<0&&-0),b=(u-i._y1)/(p||d<0&&-0),y=(v*p+b*d)/(d+p);return(wRe(v)+wRe(b))*Math.min(Math.abs(v),Math.abs(b),.5*Math.abs(y))||0}function xRe(i,a){var u=i._x1-i._x0;return u?(3*(i._y1-i._y0)/u-a)/2:a}function b2e(i,a,u){var d=i._x0,p=i._y0,v=i._x1,b=i._y1,y=(v-d)/3;i._context.bezierCurveTo(d+y,p+y*a,v-y,b-y*u,v,b)}function wX(i){this._context=i}wX.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:b2e(this,this._t0,xRe(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){var u=NaN;if(i=+i,a=+a,!(i===this._x1&&a===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;break;case 2:this._point=3,b2e(this,xRe(this,u=yRe(this,i,a)),u);break;default:b2e(this,this._t0,u=yRe(this,i,a));break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a,this._t0=u}}};function kRe(i){this._context=new TRe(i)}(kRe.prototype=Object.create(wX.prototype)).point=function(i,a){wX.prototype.point.call(this,a,i)};function TRe(i){this._context=i}TRe.prototype={moveTo:function(i,a){this._context.moveTo(a,i)},closePath:function(){this._context.closePath()},lineTo:function(i,a){this._context.lineTo(a,i)},bezierCurveTo:function(i,a,u,d,p,v){this._context.bezierCurveTo(a,i,d,u,v,p)}};function pPt(i){return new wX(i)}function bPt(i){return new kRe(i)}function ERe(i){this._context=i}ERe.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var i=this._x,a=this._y,u=i.length;if(u)if(this._line?this._context.lineTo(i[0],a[0]):this._context.moveTo(i[0],a[0]),u===2)this._context.lineTo(i[1],a[1]);else for(var d=CRe(i),p=CRe(a),v=0,b=1;b=0;--a)p[a]=(b[a]-p[a+1])/v[a];for(v[u-1]=(i[u]+p[u-1])/2,a=0;a=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,a),this._context.lineTo(i,a);else{var u=this._x*(1-this._t)+i*this._t;this._context.lineTo(u,this._y),this._context.lineTo(u,a)}break}}this._x=i,this._y=a}};function vPt(i){return new yX(i,.5)}function wPt(i){return new yX(i,0)}function yPt(i){return new yX(i,1)}function GF(i,a,u){this.k=i,this.x=a,this.y=u}GF.prototype={constructor:GF,scale:function(i){return i===1?this:new GF(this.k*i,this.x,this.y)},translate:function(i,a){return i===0&a===0?this:new GF(this.k,this.x+this.k*i,this.y+this.k*a)},apply:function(i){return[i[0]*this.k+this.x,i[1]*this.k+this.y]},applyX:function(i){return i*this.k+this.x},applyY:function(i){return i*this.k+this.y},invert:function(i){return[(i[0]-this.x)/this.k,(i[1]-this.y)/this.k]},invertX:function(i){return(i-this.x)/this.k},invertY:function(i){return(i-this.y)/this.k},rescaleX:function(i){return i.copy().domain(i.range().map(this.invertX,this).map(i.invert,i))},rescaleY:function(i){return i.copy().domain(i.range().map(this.invertY,this).map(i.invert,i))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},GF.prototype;/*! @license DOMPurify 3.4.2 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.2/LICENSE */const{entries:SRe,setPrototypeOf:_Re,isFrozen:xPt,getPrototypeOf:kPt,getOwnPropertyDescriptor:TPt}=Object;let{freeze:_p,seal:jv,create:fD}=Object,{apply:m2e,construct:v2e}=typeof Reflect<"u"&&Reflect;_p||(_p=function(a){return a}),jv||(jv=function(a){return a}),m2e||(m2e=function(a,u){for(var d=arguments.length,p=new Array(d>2?d-2:0),v=2;v1?u-1:0),p=1;p"u"?null:M0(BigInt.prototype.toString),IRe=typeof Symbol>"u"?null:M0(Symbol.prototype.toString),kf=M0(Object.prototype.hasOwnProperty),XF=M0(Object.prototype.toString),Ud=M0(RegExp.prototype.test),xX=LPt(TypeError);function M0(i){return function(a){a instanceof RegExp&&(a.lastIndex=0);for(var u=arguments.length,d=new Array(u>1?u-1:0),p=1;p2&&arguments[2]!==void 0?arguments[2]:YF;if(_Re&&_Re(i,null),!Ap(a))return i;let d=a.length;for(;d--;){let p=a[d];if(typeof p=="string"){const v=u(p);v!==p&&(xPt(a)||(a[d]=v),p=v)}i[p]=!0}return i}function MPt(i){for(let a=0;a/gm),FPt=jv(/\$\{[\w\W]*/gm),RPt=jv(/^data-[\-\w.\u00B7-\uFFFF]+$/),jPt=jv(/^aria-[\-\w]+$/),FRe=jv(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),$Pt=jv(/^(?:\w+script|data):/i),zPt=jv(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),RRe=jv(/^html$/i),qPt=jv(/^[a-z][.\w]*(-[.\w]+)+$/i);var jRe=Object.freeze({__proto__:null,ARIA_ATTR:jPt,ATTR_WHITESPACE:zPt,CUSTOM_ELEMENT:qPt,DATA_ATTR:RPt,DOCTYPE_NAME:RRe,ERB_EXPR:BPt,IS_ALLOWED_URI:FRe,IS_SCRIPT_OR_DATA:$Pt,MUSTACHE_EXPR:PPt,TMPLIT_EXPR:FPt});const QF={element:1,text:3,progressingInstruction:7,comment:8,document:9},HPt=function(){return typeof window>"u"?null:window},UPt=function(a,u){if(typeof a!="object"||typeof a.createPolicy!="function")return null;let d=null;const p="data-tt-policy-suffix";u&&u.hasAttribute(p)&&(d=u.getAttribute(p));const v="dompurify"+(d?"#"+d:"");try{return a.createPolicy(v,{createHTML(b){return b},createScriptURL(b){return b}})}catch{return console.warn("TrustedTypes policy "+v+" could not be created."),null}},$Re=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function zRe(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:HPt();const a=bs=>zRe(bs);if(a.version="3.4.2",a.removed=[],!i||!i.document||i.document.nodeType!==QF.document||!i.Element)return a.isSupported=!1,a;let{document:u}=i;const d=u,p=d.currentScript,{DocumentFragment:v,HTMLTemplateElement:b,Node:y,Element:E,NodeFilter:_,NamedNodeMap:A=i.NamedNodeMap||i.MozNamedAttrMap,HTMLFormElement:P,DOMParser:R,trustedTypes:B}=i,j=E.prototype,W=gD(j,"cloneNode"),ee=gD(j,"remove"),ie=gD(j,"nextSibling"),oe=gD(j,"childNodes"),be=gD(j,"parentNode");if(typeof b=="function"){const bs=u.createElement("template");bs.content&&bs.content.ownerDocument&&(u=bs.content.ownerDocument)}let ge,ae="";const{implementation:ne,createNodeIterator:se,createDocumentFragment:de,getElementsByTagName:X}=u,{importNode:pe}=d;let G=$Re();a.isSupported=typeof SRe=="function"&&typeof be=="function"&&ne&&ne.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:xe,ERB_EXPR:U,TMPLIT_EXPR:Be,DATA_ATTR:Pe,ARIA_ATTR:je,IS_SCRIPT_OR_DATA:Ie,ATTR_WHITESPACE:Se,CUSTOM_ELEMENT:Ce}=jRe;let{IS_ALLOWED_URI:ke}=jRe,Ke=null;const zt=Yo({},[...ORe,...y2e,...x2e,...k2e,...NRe]);let Ne=null;const pn=Yo({},[...PRe,...T2e,...BRe,...kX]);let Tt=Object.seal(fD(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}})),Et=null,Wt=null;const un=Object.seal(fD(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let yt=!0,Bt=!0,Ze=!1,Dt=!0,kt=!1,Nn=!0,ht=!1,qr=!1,xt=!1,Ri=!1,wi=!1,ia=!1,Hs=!0,mo=!1;const Tr="user-content-";let On=!0,Rn=!1,zn={},Ct=null;const gt=Yo({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let on=null;const dn=Yo({},["audio","video","img","source","image","track"]);let Ln=null;const Io=Yo({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Oo="http://www.w3.org/1998/Math/MathML",No="http://www.w3.org/2000/svg",Us="http://www.w3.org/1999/xhtml";let uo=Us,Es=!1,Ou=null;const _c=Yo({},[Oo,No,Us],w2e);let Kd=Yo({},["mi","mo","mn","ms","mtext"]),qp=Yo({},["annotation-xml"]);const Ul=Yo({},["title","style","font","a","script"]);let Ac=null;const Jc=["application/xhtml+xml","text/html"],Ya="text/html";let Ba=null,ha=null;const $o=u.createElement("form"),Lc=function(Vt){return Vt instanceof RegExp||Vt instanceof Function},Fa=function(){let Vt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(ha&&ha===Vt)return;(!Vt||typeof Vt!="object")&&(Vt={}),Vt=V2(Vt),Ac=Jc.indexOf(Vt.PARSER_MEDIA_TYPE)===-1?Ya:Vt.PARSER_MEDIA_TYPE,Ba=Ac==="application/xhtml+xml"?w2e:YF,Ke=kf(Vt,"ALLOWED_TAGS")&&Ap(Vt.ALLOWED_TAGS)?Yo({},Vt.ALLOWED_TAGS,Ba):zt,Ne=kf(Vt,"ALLOWED_ATTR")&&Ap(Vt.ALLOWED_ATTR)?Yo({},Vt.ALLOWED_ATTR,Ba):pn,Ou=kf(Vt,"ALLOWED_NAMESPACES")&&Ap(Vt.ALLOWED_NAMESPACES)?Yo({},Vt.ALLOWED_NAMESPACES,w2e):_c,Ln=kf(Vt,"ADD_URI_SAFE_ATTR")&&Ap(Vt.ADD_URI_SAFE_ATTR)?Yo(V2(Io),Vt.ADD_URI_SAFE_ATTR,Ba):Io,on=kf(Vt,"ADD_DATA_URI_TAGS")&&Ap(Vt.ADD_DATA_URI_TAGS)?Yo(V2(dn),Vt.ADD_DATA_URI_TAGS,Ba):dn,Ct=kf(Vt,"FORBID_CONTENTS")&&Ap(Vt.FORBID_CONTENTS)?Yo({},Vt.FORBID_CONTENTS,Ba):gt,Et=kf(Vt,"FORBID_TAGS")&&Ap(Vt.FORBID_TAGS)?Yo({},Vt.FORBID_TAGS,Ba):V2({}),Wt=kf(Vt,"FORBID_ATTR")&&Ap(Vt.FORBID_ATTR)?Yo({},Vt.FORBID_ATTR,Ba):V2({}),zn=kf(Vt,"USE_PROFILES")?Vt.USE_PROFILES&&typeof Vt.USE_PROFILES=="object"?V2(Vt.USE_PROFILES):Vt.USE_PROFILES:!1,yt=Vt.ALLOW_ARIA_ATTR!==!1,Bt=Vt.ALLOW_DATA_ATTR!==!1,Ze=Vt.ALLOW_UNKNOWN_PROTOCOLS||!1,Dt=Vt.ALLOW_SELF_CLOSE_IN_ATTR!==!1,kt=Vt.SAFE_FOR_TEMPLATES||!1,Nn=Vt.SAFE_FOR_XML!==!1,ht=Vt.WHOLE_DOCUMENT||!1,Ri=Vt.RETURN_DOM||!1,wi=Vt.RETURN_DOM_FRAGMENT||!1,ia=Vt.RETURN_TRUSTED_TYPE||!1,xt=Vt.FORCE_BODY||!1,Hs=Vt.SANITIZE_DOM!==!1,mo=Vt.SANITIZE_NAMED_PROPS||!1,On=Vt.KEEP_CONTENT!==!1,Rn=Vt.IN_PLACE||!1,ke=IPt(Vt.ALLOWED_URI_REGEXP)?Vt.ALLOWED_URI_REGEXP:FRe,uo=typeof Vt.NAMESPACE=="string"?Vt.NAMESPACE:Us,Kd=kf(Vt,"MATHML_TEXT_INTEGRATION_POINTS")&&Vt.MATHML_TEXT_INTEGRATION_POINTS&&typeof Vt.MATHML_TEXT_INTEGRATION_POINTS=="object"?V2(Vt.MATHML_TEXT_INTEGRATION_POINTS):Yo({},["mi","mo","mn","ms","mtext"]),qp=kf(Vt,"HTML_INTEGRATION_POINTS")&&Vt.HTML_INTEGRATION_POINTS&&typeof Vt.HTML_INTEGRATION_POINTS=="object"?V2(Vt.HTML_INTEGRATION_POINTS):Yo({},["annotation-xml"]);const jr=kf(Vt,"CUSTOM_ELEMENT_HANDLING")&&Vt.CUSTOM_ELEMENT_HANDLING&&typeof Vt.CUSTOM_ELEMENT_HANDLING=="object"?V2(Vt.CUSTOM_ELEMENT_HANDLING):fD(null);if(Tt=fD(null),kf(jr,"tagNameCheck")&&Lc(jr.tagNameCheck)&&(Tt.tagNameCheck=jr.tagNameCheck),kf(jr,"attributeNameCheck")&&Lc(jr.attributeNameCheck)&&(Tt.attributeNameCheck=jr.attributeNameCheck),kf(jr,"allowCustomizedBuiltInElements")&&typeof jr.allowCustomizedBuiltInElements=="boolean"&&(Tt.allowCustomizedBuiltInElements=jr.allowCustomizedBuiltInElements),kt&&(Bt=!1),wi&&(Ri=!0),zn&&(Ke=Yo({},NRe),Ne=fD(null),zn.html===!0&&(Yo(Ke,ORe),Yo(Ne,PRe)),zn.svg===!0&&(Yo(Ke,y2e),Yo(Ne,T2e),Yo(Ne,kX)),zn.svgFilters===!0&&(Yo(Ke,x2e),Yo(Ne,T2e),Yo(Ne,kX)),zn.mathMl===!0&&(Yo(Ke,k2e),Yo(Ne,BRe),Yo(Ne,kX))),un.tagCheck=null,un.attributeCheck=null,kf(Vt,"ADD_TAGS")&&(typeof Vt.ADD_TAGS=="function"?un.tagCheck=Vt.ADD_TAGS:Ap(Vt.ADD_TAGS)&&(Ke===zt&&(Ke=V2(Ke)),Yo(Ke,Vt.ADD_TAGS,Ba))),kf(Vt,"ADD_ATTR")&&(typeof Vt.ADD_ATTR=="function"?un.attributeCheck=Vt.ADD_ATTR:Ap(Vt.ADD_ATTR)&&(Ne===pn&&(Ne=V2(Ne)),Yo(Ne,Vt.ADD_ATTR,Ba))),kf(Vt,"ADD_URI_SAFE_ATTR")&&Ap(Vt.ADD_URI_SAFE_ATTR)&&Yo(Ln,Vt.ADD_URI_SAFE_ATTR,Ba),kf(Vt,"FORBID_CONTENTS")&&Ap(Vt.FORBID_CONTENTS)&&(Ct===gt&&(Ct=V2(Ct)),Yo(Ct,Vt.FORBID_CONTENTS,Ba)),kf(Vt,"ADD_FORBID_CONTENTS")&&Ap(Vt.ADD_FORBID_CONTENTS)&&(Ct===gt&&(Ct=V2(Ct)),Yo(Ct,Vt.ADD_FORBID_CONTENTS,Ba)),On&&(Ke["#text"]=!0),ht&&Yo(Ke,["html","head","body"]),Ke.table&&(Yo(Ke,["tbody"]),delete Et.tbody),Vt.TRUSTED_TYPES_POLICY){if(typeof Vt.TRUSTED_TYPES_POLICY.createHTML!="function")throw xX('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Vt.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw xX('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');ge=Vt.TRUSTED_TYPES_POLICY,ae=ge.createHTML("")}else ge===void 0&&(ge=UPt(B,p)),ge!==null&&typeof ae=="string"&&(ae=ge.createHTML(""));_p&&_p(Vt),ha=Vt},Ra=Yo({},[...y2e,...x2e,...OPt]),ma=Yo({},[...k2e,...NPt]),Kh=function(Vt){let jr=be(Vt);(!jr||!jr.tagName)&&(jr={namespaceURI:uo,tagName:"template"});const Ji=YF(Vt.tagName),Qo=YF(jr.tagName);return Ou[Vt.namespaceURI]?Vt.namespaceURI===No?jr.namespaceURI===Us?Ji==="svg":jr.namespaceURI===Oo?Ji==="svg"&&(Qo==="annotation-xml"||Kd[Qo]):!!Ra[Ji]:Vt.namespaceURI===Oo?jr.namespaceURI===Us?Ji==="math":jr.namespaceURI===No?Ji==="math"&&qp[Qo]:!!ma[Ji]:Vt.namespaceURI===Us?jr.namespaceURI===No&&!qp[Qo]||jr.namespaceURI===Oo&&!Kd[Qo]?!1:!ma[Ji]&&(Ul[Ji]||!Ra[Ji]):!!(Ac==="application/xhtml+xml"&&Ou[Vt.namespaceURI]):!1},Po=function(Vt){WF(a.removed,{element:Vt});try{be(Vt).removeChild(Vt)}catch{ee(Vt)}},Hp=function(Vt,jr){try{WF(a.removed,{attribute:jr.getAttributeNode(Vt),from:jr})}catch{WF(a.removed,{attribute:null,from:jr})}if(jr.removeAttribute(Vt),Vt==="is")if(Ri||wi)try{Po(jr)}catch{}else try{jr.setAttribute(Vt,"")}catch{}},Ug=function(Vt){let jr=null,Ji=null;if(xt)Vt=""+Vt;else{const Ui=LRe(Vt,/^[\r\n\t ]+/);Ji=Ui&&Ui[0]}Ac==="application/xhtml+xml"&&uo===Us&&(Vt=''+Vt+"");const Qo=ge?ge.createHTML(Vt):Vt;if(uo===Us)try{jr=new R().parseFromString(Qo,Ac)}catch{}if(!jr||!jr.documentElement){jr=ne.createDocument(uo,"template",null);try{jr.documentElement.innerHTML=Es?ae:Qo}catch{}}const Hi=jr.body||jr.documentElement;return Vt&&Ji&&Hi.insertBefore(u.createTextNode(Ji),Hi.childNodes[0]||null),uo===Us?X.call(jr,ht?"html":"body")[0]:ht?jr.documentElement:Hi},od=function(Vt){return se.call(Vt.ownerDocument||Vt,Vt,_.SHOW_ELEMENT|_.SHOW_COMMENT|_.SHOW_TEXT|_.SHOW_PROCESSING_INSTRUCTION|_.SHOW_CDATA_SECTION,null)},cd=function(Vt){return Vt instanceof P&&(typeof Vt.nodeName!="string"||typeof Vt.textContent!="string"||typeof Vt.removeChild!="function"||!(Vt.attributes instanceof A)||typeof Vt.removeAttribute!="function"||typeof Vt.setAttribute!="function"||typeof Vt.namespaceURI!="string"||typeof Vt.insertBefore!="function"||typeof Vt.hasChildNodes!="function")},w1=function(Vt){return typeof y=="function"&&Vt instanceof y};function kh(bs,Vt,jr){KF(bs,Ji=>{Ji.call(a,Vt,jr,ha)})}const Wd=function(Vt){let jr=null;if(kh(G.beforeSanitizeElements,Vt,null),cd(Vt))return Po(Vt),!0;const Ji=Ba(Vt.nodeName);if(kh(G.uponSanitizeElement,Vt,{tagName:Ji,allowedTags:Ke}),Nn&&Vt.hasChildNodes()&&!w1(Vt.firstElementChild)&&Ud(/<[/\w!]/g,Vt.innerHTML)&&Ud(/<[/\w!]/g,Vt.textContent)||Nn&&Vt.namespaceURI===Us&&Ji==="style"&&w1(Vt.firstElementChild)||Vt.nodeType===QF.progressingInstruction||Nn&&Vt.nodeType===QF.comment&&Ud(/<[/\w]/g,Vt.data))return Po(Vt),!0;if(Et[Ji]||!(un.tagCheck instanceof Function&&un.tagCheck(Ji))&&!Ke[Ji]){if(!Et[Ji]&&Zf(Ji)&&(Tt.tagNameCheck instanceof RegExp&&Ud(Tt.tagNameCheck,Ji)||Tt.tagNameCheck instanceof Function&&Tt.tagNameCheck(Ji)))return!1;if(On&&!Ct[Ji]){const Qo=be(Vt)||Vt.parentNode,Hi=oe(Vt)||Vt.childNodes;if(Hi&&Qo){const Ui=Hi.length;for(let zs=Ui-1;zs>=0;--zs){const gi=W(Hi[zs],!0);Qo.insertBefore(gi,ie(Vt))}}}return Po(Vt),!0}return Vt instanceof E&&!Kh(Vt)||(Ji==="noscript"||Ji==="noembed"||Ji==="noframes")&&Ud(/<\/no(script|embed|frames)/i,Vt.innerHTML)?(Po(Vt),!0):(kt&&Vt.nodeType===QF.text&&(jr=Vt.textContent,KF([xe,U,Be],Qo=>{jr=dD(jr,Qo," ")}),Vt.textContent!==jr&&(WF(a.removed,{element:Vt.cloneNode()}),Vt.textContent=jr)),kh(G.afterSanitizeElements,Vt,null),!1)},Yd=function(Vt,jr,Ji){if(Wt[jr]||Hs&&(jr==="id"||jr==="name")&&(Ji in u||Ji in $o))return!1;const Qo=Ne[jr]||un.attributeCheck instanceof Function&&un.attributeCheck(jr,Vt);if(!(Bt&&!Wt[jr]&&Ud(Pe,jr))){if(!(yt&&Ud(je,jr))){if(!Qo||Wt[jr]){if(!(Zf(Vt)&&(Tt.tagNameCheck instanceof RegExp&&Ud(Tt.tagNameCheck,Vt)||Tt.tagNameCheck instanceof Function&&Tt.tagNameCheck(Vt))&&(Tt.attributeNameCheck instanceof RegExp&&Ud(Tt.attributeNameCheck,jr)||Tt.attributeNameCheck instanceof Function&&Tt.attributeNameCheck(jr,Vt))||jr==="is"&&Tt.allowCustomizedBuiltInElements&&(Tt.tagNameCheck instanceof RegExp&&Ud(Tt.tagNameCheck,Ji)||Tt.tagNameCheck instanceof Function&&Tt.tagNameCheck(Ji))))return!1}else if(!Ln[jr]){if(!Ud(ke,dD(Ji,Se,""))){if(!((jr==="src"||jr==="xlink:href"||jr==="href")&&Vt!=="script"&&MRe(Ji,"data:")===0&&on[Vt])){if(!(Ze&&!Ud(Ie,dD(Ji,Se,"")))){if(Ji)return!1}}}}}}return!0},Xd=Yo({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Zf=function(Vt){return!Xd[YF(Vt)]&&Ud(Ce,Vt)},Up=function(Vt){kh(G.beforeSanitizeAttributes,Vt,null);const{attributes:jr}=Vt;if(!jr||cd(Vt))return;const Ji={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Ne,forceKeepAttr:void 0};let Qo=jr.length;for(;Qo--;){const Hi=jr[Qo],{name:Ui,namespaceURI:zs,value:gi}=Hi,Bo=Ba(Ui),Ot=gi;let zu=Ui==="value"?Ot:SPt(Ot);if(Ji.attrName=Bo,Ji.attrValue=zu,Ji.keepAttr=!0,Ji.forceKeepAttr=void 0,kh(G.uponSanitizeAttribute,Vt,Ji),zu=Ji.attrValue,mo&&(Bo==="id"||Bo==="name")&&MRe(zu,Tr)!==0&&(Hp(Ui,Vt),zu=Tr+zu),Nn&&Ud(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,zu)){Hp(Ui,Vt);continue}if(Bo==="attributename"&&LRe(zu,"href")){Hp(Ui,Vt);continue}if(Ji.forceKeepAttr)continue;if(!Ji.keepAttr){Hp(Ui,Vt);continue}if(!Dt&&Ud(/\/>/i,zu)){Hp(Ui,Vt);continue}kt&&KF([xe,U,Be],Wh=>{zu=dD(zu,Wh," ")});const Gt=Ba(Vt.nodeName);if(!Yd(Gt,Bo,zu)){Hp(Ui,Vt);continue}if(ge&&typeof B=="object"&&typeof B.getAttributeType=="function"&&!zs)switch(B.getAttributeType(Gt,Bo)){case"TrustedHTML":{zu=ge.createHTML(zu);break}case"TrustedScriptURL":{zu=ge.createScriptURL(zu);break}}if(zu!==Ot)try{zs?Vt.setAttributeNS(zs,Ui,zu):Vt.setAttribute(Ui,zu),cd(Vt)?Po(Vt):ARe(a.removed)}catch{Hp(Ui,Vt)}}kh(G.afterSanitizeAttributes,Vt,null)},u5=function(Vt){let jr=null;const Ji=od(Vt);for(kh(G.beforeSanitizeShadowDOM,Vt,null);jr=Ji.nextNode();)kh(G.uponSanitizeShadowNode,jr,null),Wd(jr),Up(jr),jr.content instanceof v&&u5(jr.content);kh(G.afterSanitizeShadowDOM,Vt,null)};return a.sanitize=function(bs){let Vt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},jr=null,Ji=null,Qo=null,Hi=null;if(Es=!bs,Es&&(bs=""),typeof bs!="string"&&!w1(bs)&&(bs=DPt(bs),typeof bs!="string"))throw xX("dirty is not a string, aborting");if(!a.isSupported)return bs;if(qr||Fa(Vt),a.removed=[],typeof bs=="string"&&(Rn=!1),Rn){const gi=bs.nodeName;if(typeof gi=="string"){const Bo=Ba(gi);if(!Ke[Bo]||Et[Bo])throw xX("root node is forbidden and cannot be sanitized in-place")}}else if(bs instanceof y)jr=Ug(""),Ji=jr.ownerDocument.importNode(bs,!0),Ji.nodeType===QF.element&&Ji.nodeName==="BODY"||Ji.nodeName==="HTML"?jr=Ji:jr.appendChild(Ji);else{if(!Ri&&!kt&&!ht&&bs.indexOf("<")===-1)return ge&&ia?ge.createHTML(bs):bs;if(jr=Ug(bs),!jr)return Ri?null:ia?ae:""}jr&&xt&&Po(jr.firstChild);const Ui=od(Rn?bs:jr);for(;Qo=Ui.nextNode();)Wd(Qo),Up(Qo),Qo.content instanceof v&&u5(Qo.content);if(Rn)return bs;if(Ri){if(kt){jr.normalize();let gi=jr.innerHTML;KF([xe,U,Be],Bo=>{gi=dD(gi,Bo," ")}),jr.innerHTML=gi}if(wi)for(Hi=de.call(jr.ownerDocument);jr.firstChild;)Hi.appendChild(jr.firstChild);else Hi=jr;return(Ne.shadowroot||Ne.shadowrootmode)&&(Hi=pe.call(d,Hi,!0)),Hi}let zs=ht?jr.outerHTML:jr.innerHTML;return ht&&Ke["!doctype"]&&jr.ownerDocument&&jr.ownerDocument.doctype&&jr.ownerDocument.doctype.name&&Ud(RRe,jr.ownerDocument.doctype.name)&&(zs=" +`+zs),kt&&KF([xe,U,Be],gi=>{zs=dD(zs,gi," ")}),ge&&ia?ge.createHTML(zs):zs},a.setConfig=function(){let bs=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Fa(bs),qr=!0},a.clearConfig=function(){ha=null,qr=!1},a.isValidAttribute=function(bs,Vt,jr){ha||Fa({});const Ji=Ba(bs),Qo=Ba(Vt);return Yd(Ji,Qo,jr)},a.addHook=function(bs,Vt){typeof Vt=="function"&&WF(G[bs],Vt)},a.removeHook=function(bs,Vt){if(Vt!==void 0){const jr=EPt(G[bs],Vt);return jr===-1?void 0:CPt(G[bs],jr,1)[0]}return ARe(G[bs])},a.removeHooks=function(bs){G[bs]=[]},a.removeAllHooks=function(){G=$Re()},a}var pD=zRe();const bD=//gi,VPt=i=>i?URe(i).replace(/\\n/g,"#br#").split("#br#"):[""],GPt=(()=>{let i=!1;return()=>{i||(KPt(),i=!0)}})();function KPt(){const i="data-temp-href-target";pD.addHook("beforeSanitizeAttributes",a=>{a.tagName==="A"&&a.hasAttribute("target")&&a.setAttribute(i,a.getAttribute("target")??"")}),pD.addHook("afterSanitizeAttributes",a=>{a.tagName==="A"&&a.hasAttribute(i)&&(a.setAttribute("target",a.getAttribute(i)??""),a.removeAttribute(i),a.getAttribute("target")==="_blank"&&a.setAttribute("rel","noopener"))})}const qRe=i=>(GPt(),pD.sanitize(i)),HRe=(i,a)=>{var u;if(((u=a.flowchart)==null?void 0:u.htmlLabels)!==!1){const d=a.securityLevel;d==="antiscript"||d==="strict"?i=qRe(i):d!=="loose"&&(i=URe(i),i=i.replace(//g,">"),i=i.replace(/=/g,"="),i=QPt(i))}return i},bh=(i,a)=>i&&(a.dompurifyConfig?i=pD.sanitize(HRe(i,a),a.dompurifyConfig).toString():i=pD.sanitize(HRe(i,a),{FORBID_TAGS:["style"]}).toString(),i),WPt=(i,a)=>typeof i=="string"?bh(i,a):i.flat().map(u=>bh(u,a)),YPt=i=>bD.test(i),XPt=i=>i.split(bD),QPt=i=>i.replace(/#br#/g,"
"),URe=i=>i.replace(bD,"#br#"),JPt=i=>{let a="";return i&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replaceAll(/\(/g,"\\("),a=a.replaceAll(/\)/g,"\\)")),a},h1=i=>!(i===!1||["false","null","0"].includes(String(i).trim().toLowerCase())),ZPt=function(...i){const a=i.filter(u=>!isNaN(u));return Math.max(...a)},eBt=function(...i){const a=i.filter(u=>!isNaN(u));return Math.min(...a)},JF=function(i){const a=i.split(/(,)/),u=[];for(let d=0;d0&&d+1Math.max(0,i.split(a).length-1),tBt=(i,a)=>{const u=E2e(i,"~"),d=E2e(a,"~");return u===1&&d===1},nBt=i=>{const a=E2e(i,"~");let u=!1;if(a<=1)return i;a%2!==0&&i.startsWith("~")&&(i=i.substring(1),u=!0);const d=[...i];let p=d.indexOf("~"),v=d.lastIndexOf("~");for(;p!==-1&&v!==-1&&p!==v;)d[p]="<",d[v]=">",p=d.indexOf("~"),v=d.lastIndexOf("~");return u&&d.unshift("~"),d.join("")},VRe=()=>window.MathMLElement!==void 0,C2e=/\$\$(.*)\$\$/g,$v=i=>{var a;return(((a=i.match(C2e))==null?void 0:a.length)??0)>0},ZF=async(i,a)=>{const u=document.createElement("div");u.innerHTML=await SC(i,a),u.id="katex-temp",u.style.visibility="hidden",u.style.position="absolute",u.style.top="0";const d=document.querySelector("body");d==null||d.insertAdjacentElement("beforeend",u);const p={width:u.clientWidth,height:u.clientHeight};return u.remove(),p},rBt=async(i,a)=>{if(!$v(i))return i;if(!VRe()&&!a.legacyMathML)return i.replace(C2e,"MathML is unsupported in this environment.");const{default:u}=await Promise.resolve().then(()=>QUt);return i.split(bD).map(d=>$v(d)?` +
+ ${d} +
+ `:`
${d}
`).join("").replace(C2e,(d,p)=>u.renderToString(p,{throwOnError:!0,displayMode:!0,output:VRe()?"mathml":"htmlAndMathml"}).replace(/\n/g," ").replace(//g,""))},SC=async(i,a)=>bh(await rBt(i,a),a),oi={getRows:VPt,sanitizeText:bh,sanitizeTextOrArray:WPt,hasBreaks:YPt,splitBreaks:XPt,lineBreakRegex:bD,removeScript:qRe,getUrl:JPt,evaluate:h1,getMax:ZPt,getMin:eBt},TX={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:i=>i>=255?255:i<0?0:i,g:i=>i>=255?255:i<0?0:i,b:i=>i>=255?255:i<0?0:i,h:i=>i%360,s:i=>i>=100?100:i<0?0:i,l:i=>i>=100?100:i<0?0:i,a:i=>i>=1?1:i<0?0:i},toLinear:i=>{const a=i/255;return i>.03928?Math.pow((a+.055)/1.055,2.4):a/12.92},hue2rgb:(i,a,u)=>(u<0&&(u+=1),u>1&&(u-=1),u<1/6?i+(a-i)*6*u:u<1/2?a:u<2/3?i+(a-i)*(2/3-u)*6:i),hsl2rgb:({h:i,s:a,l:u},d)=>{if(!a)return u*2.55;i/=360,a/=100,u/=100;const p=u<.5?u*(1+a):u+a-u*a,v=2*u-p;switch(d){case"r":return TX.hue2rgb(v,p,i+1/3)*255;case"g":return TX.hue2rgb(v,p,i)*255;case"b":return TX.hue2rgb(v,p,i-1/3)*255}},rgb2hsl:({r:i,g:a,b:u},d)=>{i/=255,a/=255,u/=255;const p=Math.max(i,a,u),v=Math.min(i,a,u),b=(p+v)/2;if(d==="l")return b*100;if(p===v)return 0;const y=p-v,E=b>.5?y/(2-p-v):y/(p+v);if(d==="s")return E*100;switch(p){case i:return((a-u)/y+(aa>u?Math.min(a,Math.max(u,i)):Math.min(u,Math.max(a,i)),round:i=>Math.round(i*1e10)/1e10},unit:{dec2hex:i=>{const a=Math.round(i).toString(16);return a.length>1?a:`0${a}`}}},w9={};for(let i=0;i<=255;i++)w9[i]=Ka.unit.dec2hex(i);const Bg={ALL:0,RGB:1,HSL:2};class iBt{constructor(){this.type=Bg.ALL}get(){return this.type}set(a){if(this.type&&this.type!==a)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=a}reset(){this.type=Bg.ALL}is(a){return this.type===a}}const sBt=iBt;class aBt{constructor(a,u){this.color=u,this.changed=!1,this.data=a,this.type=new sBt}set(a,u){return this.color=u,this.changed=!1,this.data=a,this.type.type=Bg.ALL,this}_ensureHSL(){const a=this.data,{h:u,s:d,l:p}=a;u===void 0&&(a.h=Ka.channel.rgb2hsl(a,"h")),d===void 0&&(a.s=Ka.channel.rgb2hsl(a,"s")),p===void 0&&(a.l=Ka.channel.rgb2hsl(a,"l"))}_ensureRGB(){const a=this.data,{r:u,g:d,b:p}=a;u===void 0&&(a.r=Ka.channel.hsl2rgb(a,"r")),d===void 0&&(a.g=Ka.channel.hsl2rgb(a,"g")),p===void 0&&(a.b=Ka.channel.hsl2rgb(a,"b"))}get r(){const a=this.data,u=a.r;return!this.type.is(Bg.HSL)&&u!==void 0?u:(this._ensureHSL(),Ka.channel.hsl2rgb(a,"r"))}get g(){const a=this.data,u=a.g;return!this.type.is(Bg.HSL)&&u!==void 0?u:(this._ensureHSL(),Ka.channel.hsl2rgb(a,"g"))}get b(){const a=this.data,u=a.b;return!this.type.is(Bg.HSL)&&u!==void 0?u:(this._ensureHSL(),Ka.channel.hsl2rgb(a,"b"))}get h(){const a=this.data,u=a.h;return!this.type.is(Bg.RGB)&&u!==void 0?u:(this._ensureRGB(),Ka.channel.rgb2hsl(a,"h"))}get s(){const a=this.data,u=a.s;return!this.type.is(Bg.RGB)&&u!==void 0?u:(this._ensureRGB(),Ka.channel.rgb2hsl(a,"s"))}get l(){const a=this.data,u=a.l;return!this.type.is(Bg.RGB)&&u!==void 0?u:(this._ensureRGB(),Ka.channel.rgb2hsl(a,"l"))}get a(){return this.data.a}set r(a){this.type.set(Bg.RGB),this.changed=!0,this.data.r=a}set g(a){this.type.set(Bg.RGB),this.changed=!0,this.data.g=a}set b(a){this.type.set(Bg.RGB),this.changed=!0,this.data.b=a}set h(a){this.type.set(Bg.HSL),this.changed=!0,this.data.h=a}set s(a){this.type.set(Bg.HSL),this.changed=!0,this.data.s=a}set l(a){this.type.set(Bg.HSL),this.changed=!0,this.data.l=a}set a(a){this.changed=!0,this.data.a=a}}const oBt=aBt,EX=new oBt({r:0,g:0,b:0,a:0},"transparent"),GRe={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:i=>{if(i.charCodeAt(0)!==35)return;const a=i.match(GRe.re);if(!a)return;const u=a[1],d=parseInt(u,16),p=u.length,v=p%4===0,b=p>4,y=b?1:17,E=b?8:4,_=v?0:-1,A=b?255:15;return EX.set({r:(d>>E*(_+3)&A)*y,g:(d>>E*(_+2)&A)*y,b:(d>>E*(_+1)&A)*y,a:v?(d&A)*y/255:1},i)},stringify:i=>{const{r:a,g:u,b:d,a:p}=i;return p<1?`#${w9[Math.round(a)]}${w9[Math.round(u)]}${w9[Math.round(d)]}${w9[Math.round(p*255)]}`:`#${w9[Math.round(a)]}${w9[Math.round(u)]}${w9[Math.round(d)]}`}},eR=GRe,CX={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:i=>{const a=i.match(CX.hueRe);if(a){const[,u,d]=a;switch(d){case"grad":return Ka.channel.clamp.h(parseFloat(u)*.9);case"rad":return Ka.channel.clamp.h(parseFloat(u)*180/Math.PI);case"turn":return Ka.channel.clamp.h(parseFloat(u)*360)}}return Ka.channel.clamp.h(parseFloat(i))},parse:i=>{const a=i.charCodeAt(0);if(a!==104&&a!==72)return;const u=i.match(CX.re);if(!u)return;const[,d,p,v,b,y]=u;return EX.set({h:CX._hue2deg(d),s:Ka.channel.clamp.s(parseFloat(p)),l:Ka.channel.clamp.l(parseFloat(v)),a:b?Ka.channel.clamp.a(y?parseFloat(b)/100:parseFloat(b)):1},i)},stringify:i=>{const{h:a,s:u,l:d,a:p}=i;return p<1?`hsla(${Ka.lang.round(a)}, ${Ka.lang.round(u)}%, ${Ka.lang.round(d)}%, ${p})`:`hsl(${Ka.lang.round(a)}, ${Ka.lang.round(u)}%, ${Ka.lang.round(d)}%)`}},SX=CX,_X={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:i=>{i=i.toLowerCase();const a=_X.colors[i];if(a)return eR.parse(a)},stringify:i=>{const a=eR.stringify(i);for(const u in _X.colors)if(_X.colors[u]===a)return u}},KRe=_X,WRe={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:i=>{const a=i.charCodeAt(0);if(a!==114&&a!==82)return;const u=i.match(WRe.re);if(!u)return;const[,d,p,v,b,y,E,_,A]=u;return EX.set({r:Ka.channel.clamp.r(p?parseFloat(d)*2.55:parseFloat(d)),g:Ka.channel.clamp.g(b?parseFloat(v)*2.55:parseFloat(v)),b:Ka.channel.clamp.b(E?parseFloat(y)*2.55:parseFloat(y)),a:_?Ka.channel.clamp.a(A?parseFloat(_)/100:parseFloat(_)):1},i)},stringify:i=>{const{r:a,g:u,b:d,a:p}=i;return p<1?`rgba(${Ka.lang.round(a)}, ${Ka.lang.round(u)}, ${Ka.lang.round(d)}, ${Ka.lang.round(p)})`:`rgb(${Ka.lang.round(a)}, ${Ka.lang.round(u)}, ${Ka.lang.round(d)})`}},AX=WRe,R3={format:{keyword:KRe,hex:eR,rgb:AX,rgba:AX,hsl:SX,hsla:SX},parse:i=>{if(typeof i!="string")return i;const a=eR.parse(i)||AX.parse(i)||SX.parse(i)||KRe.parse(i);if(a)return a;throw new Error(`Unsupported color format: "${i}"`)},stringify:i=>!i.changed&&i.color?i.color:i.type.is(Bg.HSL)||i.data.r===void 0?SX.stringify(i):i.a<1||!Number.isInteger(i.r)||!Number.isInteger(i.g)||!Number.isInteger(i.b)?AX.stringify(i):eR.stringify(i)},YRe=(i,a)=>{const u=R3.parse(i);for(const d in a)u[d]=Ka.channel.clamp[d](a[d]);return R3.stringify(u)},_C=(i,a,u=0,d=1)=>{if(typeof i!="number")return YRe(i,{a});const p=EX.set({r:Ka.channel.clamp.r(i),g:Ka.channel.clamp.g(a),b:Ka.channel.clamp.b(u),a:Ka.channel.clamp.a(d)});return R3.stringify(p)},XRe=(i,a)=>Ka.lang.round(R3.parse(i)[a]),cBt=i=>{const{r:a,g:u,b:d}=R3.parse(i),p=.2126*Ka.channel.toLinear(a)+.7152*Ka.channel.toLinear(u)+.0722*Ka.channel.toLinear(d);return Ka.lang.round(p)},uBt=i=>cBt(i)>=.5,AC=i=>!uBt(i),QRe=(i,a,u)=>{const d=R3.parse(i),p=d[a],v=Ka.channel.clamp[a](p+u);return p!==v&&(d[a]=v),R3.stringify(d)},Ws=(i,a)=>QRe(i,"l",a),ba=(i,a)=>QRe(i,"l",-a),In=(i,a)=>{const u=R3.parse(i),d={};for(const p in a)a[p]&&(d[p]=u[p]+a[p]);return YRe(i,d)},lBt=(i,a,u=50)=>{const{r:d,g:p,b:v,a:b}=R3.parse(i),{r:y,g:E,b:_,a:A}=R3.parse(a),P=u/100,R=P*2-1,B=b-A,W=((R*B===-1?R:(R+B)/(1+R*B))+1)/2,ee=1-W,ie=d*W+y*ee,oe=p*W+E*ee,be=v*W+_*ee,ge=b*P+A*(1-P);return _C(ie,oe,be,ge)},Gi=(i,a=100)=>{const u=R3.parse(i);return u.r=255-u.r,u.g=255-u.g,u.b=255-u.b,lBt(u,i,a)},Lp=(i,a)=>a?In(i,{s:-40,l:10}):In(i,{s:-40,l:-10}),LX="#ffffff",MX="#f2f2f2";let hBt=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var u,d,p,v,b,y,E,_,A,P,R;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||In(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||In(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Lp(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Lp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Lp(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Lp(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||Gi(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Gi(this.tertiaryColor),this.lineColor=this.lineColor||Gi(this.background),this.arrowheadColor=this.arrowheadColor||Gi(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?ba(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||ba(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Gi(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||Ws(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||In(this.primaryColor,{h:30}),this.cScale4=this.cScale4||In(this.primaryColor,{h:60}),this.cScale5=this.cScale5||In(this.primaryColor,{h:90}),this.cScale6=this.cScale6||In(this.primaryColor,{h:120}),this.cScale7=this.cScale7||In(this.primaryColor,{h:150}),this.cScale8=this.cScale8||In(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||In(this.primaryColor,{h:270}),this.cScale10=this.cScale10||In(this.primaryColor,{h:300}),this.cScale11=this.cScale11||In(this.primaryColor,{h:330}),this.darkMode)for(let B=0;B{this[d]=a[d]}),this.updateColors(),u.forEach(d=>{this[d]=a[d]})}};const fBt=i=>{const a=new hBt;return a.calculate(i),a};let dBt=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Ws(this.primaryColor,16),this.tertiaryColor=In(this.primaryColor,{h:-160}),this.primaryBorderColor=Gi(this.background),this.secondaryBorderColor=Lp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Lp(this.tertiaryColor,this.darkMode),this.primaryTextColor=Gi(this.primaryColor),this.secondaryTextColor=Gi(this.secondaryColor),this.tertiaryTextColor=Gi(this.tertiaryColor),this.lineColor=Gi(this.background),this.textColor=Gi(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Ws(Gi("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=_C(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=ba("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=ba(this.sectionBkgColor,10),this.taskBorderColor=_C(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=_C(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var a,u,d,p,v,b,y,E,_,A,P;this.secondBkg=Ws(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=Ws(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=Ws(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=In(this.primaryColor,{h:64}),this.fillType3=In(this.secondaryColor,{h:64}),this.fillType4=In(this.primaryColor,{h:-64}),this.fillType5=In(this.secondaryColor,{h:-64}),this.fillType6=In(this.primaryColor,{h:128}),this.fillType7=In(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||In(this.primaryColor,{h:30}),this.cScale4=this.cScale4||In(this.primaryColor,{h:60}),this.cScale5=this.cScale5||In(this.primaryColor,{h:90}),this.cScale6=this.cScale6||In(this.primaryColor,{h:120}),this.cScale7=this.cScale7||In(this.primaryColor,{h:150}),this.cScale8=this.cScale8||In(this.primaryColor,{h:210}),this.cScale9=this.cScale9||In(this.primaryColor,{h:270}),this.cScale10=this.cScale10||In(this.primaryColor,{h:300}),this.cScale11=this.cScale11||In(this.primaryColor,{h:330});for(let R=0;R{this[d]=a[d]}),this.updateColors(),u.forEach(d=>{this[d]=a[d]})}};const gBt=i=>{const a=new dBt;return a.calculate(i),a};let pBt=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=In(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=In(this.primaryColor,{h:-160}),this.primaryBorderColor=Lp(this.primaryColor,this.darkMode),this.secondaryBorderColor=Lp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Lp(this.tertiaryColor,this.darkMode),this.primaryTextColor=Gi(this.primaryColor),this.secondaryTextColor=Gi(this.secondaryColor),this.tertiaryTextColor=Gi(this.tertiaryColor),this.lineColor=Gi(this.background),this.textColor=Gi(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=_C(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var a,u,d,p,v,b,y,E,_,A,P;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||In(this.primaryColor,{h:30}),this.cScale4=this.cScale4||In(this.primaryColor,{h:60}),this.cScale5=this.cScale5||In(this.primaryColor,{h:90}),this.cScale6=this.cScale6||In(this.primaryColor,{h:120}),this.cScale7=this.cScale7||In(this.primaryColor,{h:150}),this.cScale8=this.cScale8||In(this.primaryColor,{h:210}),this.cScale9=this.cScale9||In(this.primaryColor,{h:270}),this.cScale10=this.cScale10||In(this.primaryColor,{h:300}),this.cScale11=this.cScale11||In(this.primaryColor,{h:330}),this["cScalePeer1"]=this["cScalePeer1"]||ba(this.secondaryColor,45),this["cScalePeer2"]=this["cScalePeer2"]||ba(this.tertiaryColor,40);for(let R=0;R{this[d]=a[d]}),this.updateColors(),u.forEach(d=>{this[d]=a[d]})}};const S2e=i=>{const a=new pBt;return a.calculate(i),a};let bBt=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=Ws("#cde498",10),this.primaryBorderColor=Lp(this.primaryColor,this.darkMode),this.secondaryBorderColor=Lp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Lp(this.tertiaryColor,this.darkMode),this.primaryTextColor=Gi(this.primaryColor),this.secondaryTextColor=Gi(this.secondaryColor),this.tertiaryTextColor=Gi(this.primaryColor),this.lineColor=Gi(this.background),this.textColor=Gi(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var a,u,d,p,v,b,y,E,_,A,P;this.actorBorder=ba(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||In(this.primaryColor,{h:30}),this.cScale4=this.cScale4||In(this.primaryColor,{h:60}),this.cScale5=this.cScale5||In(this.primaryColor,{h:90}),this.cScale6=this.cScale6||In(this.primaryColor,{h:120}),this.cScale7=this.cScale7||In(this.primaryColor,{h:150}),this.cScale8=this.cScale8||In(this.primaryColor,{h:210}),this.cScale9=this.cScale9||In(this.primaryColor,{h:270}),this.cScale10=this.cScale10||In(this.primaryColor,{h:300}),this.cScale11=this.cScale11||In(this.primaryColor,{h:330}),this["cScalePeer1"]=this["cScalePeer1"]||ba(this.secondaryColor,45),this["cScalePeer2"]=this["cScalePeer2"]||ba(this.tertiaryColor,40);for(let R=0;R{this[d]=a[d]}),this.updateColors(),u.forEach(d=>{this[d]=a[d]})}};const mBt=i=>{const a=new bBt;return a.calculate(i),a};class vBt{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Ws(this.contrast,55),this.background="#ffffff",this.tertiaryColor=In(this.primaryColor,{h:-160}),this.primaryBorderColor=Lp(this.primaryColor,this.darkMode),this.secondaryBorderColor=Lp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Lp(this.tertiaryColor,this.darkMode),this.primaryTextColor=Gi(this.primaryColor),this.secondaryTextColor=Gi(this.secondaryColor),this.tertiaryTextColor=Gi(this.tertiaryColor),this.lineColor=Gi(this.background),this.textColor=Gi(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var a,u,d,p,v,b,y,E,_,A,P;this.secondBkg=Ws(this.contrast,55),this.border2=this.contrast,this.actorBorder=Ws(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let R=0;R{this[d]=a[d]}),this.updateColors(),u.forEach(d=>{this[d]=a[d]})}}const C7={base:{getThemeVariables:fBt},dark:{getThemeVariables:gBt},default:{getThemeVariables:S2e},forest:{getThemeVariables:mBt},neutral:{getThemeVariables:i=>{const a=new vBt;return a.calculate(i),a}}},S7={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},theme:"default",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","maxEdges"],legacyMathML:!1,deterministicIds:!1,fontSize:16},JRe={...S7,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:C7.default.getThemeVariables(),sequence:{...S7.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...S7.gantt,tickInterval:void 0,useWidth:void 0},c4:{...S7.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...S7.pie,useWidth:984},xyChart:{...S7.xyChart,useWidth:void 0},requirement:{...S7.requirement,useWidth:void 0},gitGraph:{...S7.gitGraph,useMaxWidth:!1},sankey:{...S7.sankey,useMaxWidth:!1}},ZRe=(i,a="")=>Object.keys(i).reduce((u,d)=>Array.isArray(i[d])?u:typeof i[d]=="object"&&i[d]!==null?[...u,a+d,...ZRe(i[d],"")]:[...u,a+d],[]),wBt=new Set(ZRe(JRe,"")),nh=JRe,DX=i=>{if(Xe.debug("sanitizeDirective called with",i),!(typeof i!="object"||i==null)){if(Array.isArray(i)){i.forEach(a=>DX(a));return}for(const a of Object.keys(i)){if(Xe.debug("Checking key",a),a.startsWith("__")||a.includes("proto")||a.includes("constr")||!wBt.has(a)||i[a]==null){Xe.debug("sanitize deleting key: ",a),delete i[a];continue}if(typeof i[a]=="object"){Xe.debug("sanitizing object",a),DX(i[a]);continue}const u=["themeCSS","fontFamily","altFontFamily"];for(const d of u)a.includes(d)&&(Xe.debug("sanitizing css option",a),i[a]=eje(i[a]))}if(i.themeVariables)for(const a of Object.keys(i.themeVariables)){const u=i.themeVariables[a];u!=null&&u.match&&!u.match(/^[\d "#%(),.;A-Za-z]+$/)&&(i.themeVariables[a]="")}Xe.debug("After sanitization",i)}},eje=i=>{let a=0,u=0;for(const d of i){if(a{for(const{id:a,detector:u,loader:d}of i)ije(a,u,d)},ije=(i,a,u)=>{mD[i]?Xe.error(`Detector with key ${i} already exists`):mD[i]={detector:a,loader:u},Xe.debug(`Detector with key ${i} added${u?" with loader":""}`)},xBt=i=>mD[i].loader,_2e=(i,a,{depth:u=2,clobber:d=!1}={})=>{const p={depth:u,clobber:d};return Array.isArray(a)&&!Array.isArray(i)?(a.forEach(v=>_2e(i,v,p)),i):Array.isArray(a)&&Array.isArray(i)?(a.forEach(v=>{i.includes(v)||i.push(v)}),i):i===void 0||u<=0?i!=null&&typeof i=="object"&&typeof a=="object"?Object.assign(i,a):a:(a!==void 0&&typeof i=="object"&&typeof a=="object"&&Object.keys(a).forEach(v=>{typeof a[v]=="object"&&(i[v]===void 0||typeof i[v]=="object")?(i[v]===void 0&&(i[v]=Array.isArray(a[v])?[]:{}),i[v]=_2e(i[v],a[v],{depth:u-1,clobber:d})):(d||typeof i[v]!="object"&&typeof a[v]!="object")&&(i[v]=a[v])}),i)},id=_2e;var kBt=typeof global=="object"&&global&&global.Object===Object&&global;const sje=kBt;var TBt=typeof self=="object"&&self&&self.Object===Object&&self,EBt=sje||TBt||Function("return this")();const j3=EBt;var CBt=j3.Symbol;const zv=CBt;var aje=Object.prototype,SBt=aje.hasOwnProperty,_Bt=aje.toString,nR=zv?zv.toStringTag:void 0;function ABt(i){var a=SBt.call(i,nR),u=i[nR];try{i[nR]=void 0;var d=!0}catch{}var p=_Bt.call(i);return d&&(a?i[nR]=u:delete i[nR]),p}var LBt=Object.prototype,MBt=LBt.toString;function DBt(i){return MBt.call(i)}var IBt="[object Null]",OBt="[object Undefined]",oje=zv?zv.toStringTag:void 0;function LC(i){return i==null?i===void 0?OBt:IBt:oje&&oje in Object(i)?ABt(i):DBt(i)}function dm(i){var a=typeof i;return i!=null&&(a=="object"||a=="function")}var NBt="[object AsyncFunction]",PBt="[object Function]",BBt="[object GeneratorFunction]",FBt="[object Proxy]";function vD(i){if(!dm(i))return!1;var a=LC(i);return a==PBt||a==BBt||a==NBt||a==FBt}var RBt=j3["__core-js_shared__"];const A2e=RBt;var cje=function(){var i=/[^.]+$/.exec(A2e&&A2e.keys&&A2e.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function jBt(i){return!!cje&&cje in i}var $Bt=Function.prototype,zBt=$Bt.toString;function MC(i){if(i!=null){try{return zBt.call(i)}catch{}try{return i+""}catch{}}return""}var qBt=/[\\^$.*+?()[\]{}|]/g,HBt=/^\[object .+?Constructor\]$/,UBt=Function.prototype,VBt=Object.prototype,GBt=UBt.toString,KBt=VBt.hasOwnProperty,WBt=RegExp("^"+GBt.call(KBt).replace(qBt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function YBt(i){if(!dm(i)||jBt(i))return!1;var a=vD(i)?WBt:HBt;return a.test(MC(i))}function XBt(i,a){return i==null?void 0:i[a]}function DC(i,a){var u=XBt(i,a);return YBt(u)?u:void 0}var QBt=DC(Object,"create");const rR=QBt;function JBt(){this.__data__=rR?rR(null):{},this.size=0}function ZBt(i){var a=this.has(i)&&delete this.__data__[i];return this.size-=a?1:0,a}var eFt="__lodash_hash_undefined__",tFt=Object.prototype,nFt=tFt.hasOwnProperty;function rFt(i){var a=this.__data__;if(rR){var u=a[i];return u===eFt?void 0:u}return nFt.call(a,i)?a[i]:void 0}var iFt=Object.prototype,sFt=iFt.hasOwnProperty;function aFt(i){var a=this.__data__;return rR?a[i]!==void 0:sFt.call(a,i)}var oFt="__lodash_hash_undefined__";function cFt(i,a){var u=this.__data__;return this.size+=this.has(i)?0:1,u[i]=rR&&a===void 0?oFt:a,this}function IC(i){var a=-1,u=i==null?0:i.length;for(this.clear();++a-1}function pFt(i,a){var u=this.__data__,d=OX(u,i);return d<0?(++this.size,u.push([i,a])):u[d][1]=a,this}function _7(i){var a=-1,u=i==null?0:i.length;for(this.clear();++a-1&&i%1==0&&i<=UFt}function y9(i){return i!=null&&O2e(i.length)&&!vD(i)}function xje(i){return V4(i)&&y9(i)}function VFt(){return!1}var kje=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Tje=kje&&typeof module=="object"&&module&&!module.nodeType&&module,GFt=Tje&&Tje.exports===kje,Eje=GFt?j3.Buffer:void 0,KFt=Eje?Eje.isBuffer:void 0,WFt=KFt||VFt;const kD=WFt;var YFt="[object Object]",XFt=Function.prototype,QFt=Object.prototype,Cje=XFt.toString,JFt=QFt.hasOwnProperty,ZFt=Cje.call(Object);function Sje(i){if(!V4(i)||LC(i)!=YFt)return!1;var a=I2e(i);if(a===null)return!0;var u=JFt.call(a,"constructor")&&a.constructor;return typeof u=="function"&&u instanceof u&&Cje.call(u)==ZFt}var eRt="[object Arguments]",tRt="[object Array]",nRt="[object Boolean]",rRt="[object Date]",iRt="[object Error]",sRt="[object Function]",aRt="[object Map]",oRt="[object Number]",cRt="[object Object]",uRt="[object RegExp]",lRt="[object Set]",hRt="[object String]",fRt="[object WeakMap]",dRt="[object ArrayBuffer]",gRt="[object DataView]",pRt="[object Float32Array]",bRt="[object Float64Array]",mRt="[object Int8Array]",vRt="[object Int16Array]",wRt="[object Int32Array]",yRt="[object Uint8Array]",xRt="[object Uint8ClampedArray]",kRt="[object Uint16Array]",TRt="[object Uint32Array]",rh={};rh[pRt]=rh[bRt]=rh[mRt]=rh[vRt]=rh[wRt]=rh[yRt]=rh[xRt]=rh[kRt]=rh[TRt]=!0,rh[eRt]=rh[tRt]=rh[dRt]=rh[nRt]=rh[gRt]=rh[rRt]=rh[iRt]=rh[sRt]=rh[aRt]=rh[oRt]=rh[cRt]=rh[uRt]=rh[lRt]=rh[hRt]=rh[fRt]=!1;function ERt(i){return V4(i)&&O2e(i.length)&&!!rh[LC(i)]}function jX(i){return function(a){return i(a)}}var _je=typeof exports=="object"&&exports&&!exports.nodeType&&exports,sR=_je&&typeof module=="object"&&module&&!module.nodeType&&module,CRt=sR&&sR.exports===_je,N2e=CRt&&sje.process,SRt=function(){try{var i=sR&&sR.require&&sR.require("util").types;return i||N2e&&N2e.binding&&N2e.binding("util")}catch{}}();const TD=SRt;var Aje=TD&&TD.isTypedArray,_Rt=Aje?jX(Aje):ERt;const $X=_Rt;function P2e(i,a){if(!(a==="constructor"&&typeof i[a]=="function")&&a!="__proto__")return i[a]}var ARt=Object.prototype,LRt=ARt.hasOwnProperty;function zX(i,a,u){var d=i[a];(!(LRt.call(i,a)&&wD(d,u))||u===void 0&&!(a in i))&&BX(i,a,u)}function aR(i,a,u,d){var p=!u;u||(u={});for(var v=-1,b=a.length;++v-1&&i%1==0&&i0){if(++a>=URt)return arguments[0]}else a=0;return i.apply(void 0,arguments)}}var WRt=KRt(HRt);const Oje=WRt;function HX(i,a){return Oje(Ije(i,a,NC),i+"")}function oR(i,a,u){if(!dm(u))return!1;var d=typeof a;return(d=="number"?y9(u)&&qX(a,u.length):d=="string"&&a in u)?wD(u[a],i):!1}function YRt(i){return HX(function(a,u){var d=-1,p=u.length,v=p>1?u[p-1]:void 0,b=p>2?u[2]:void 0;for(v=i.length>3&&typeof v=="function"?(p--,v):void 0,b&&oR(u[0],u[1],b)&&(v=p<3?void 0:v,p=1),a=Object(a);++dy.args);DX(b),d=id(d,[...b])}else d=u.args;if(!d)return;let p=IX(i,a);const v="config";return d[v]!==void 0&&(p==="flowchart-v2"&&(p="flowchart"),d[p]=d[v],delete d[v]),d},Pje=function(i,a=null){try{const u=new RegExp(`[%]{2}(?![{]${JRt.source})(?=[}][%]{2}).* +`,"ig");i=i.trim().replace(u,"").replace(/'/gm,'"'),Xe.debug(`Detecting diagram directive${a!==null?" type:"+a:""} based on the text:${i}`);let d;const p=[];for(;(d=tR.exec(i))!==null;)if(d.index===tR.lastIndex&&tR.lastIndex++,d&&!a||a&&d[1]&&d[1].match(a)||a&&d[2]&&d[2].match(a)){const v=d[1]?d[1]:d[2],b=d[3]?d[3].trim():d[4]?JSON.parse(d[4].trim()):null;p.push({type:v,args:b})}return p.length===0?{type:i,args:null}:p.length===1?p[0]:p}catch(u){return Xe.error(`ERROR: ${u.message} - Unable to parse directive type: '${a}' based on the text: '${i}'`),{type:void 0,args:null}}},ejt=function(i){return i.replace(tR,"")},tjt=function(i,a){for(const[u,d]of a.entries())if(d.match(i))return u;return-1};function qv(i,a){if(!i)return a;const u=`curve${i.charAt(0).toUpperCase()+i.slice(1)}`;return QRt[u]??a}function njt(i,a){const u=i.trim();if(u)return a.securityLevel!=="loose"?b9.sanitizeUrl(u):u}const rjt=(i,...a)=>{const u=i.split("."),d=u.length-1,p=u[d];let v=window;for(let b=0;b{u+=Bje(p,a),a=p});const d=u/2;return B2e(i,d)}function sjt(i){return i.length===1?i[0]:ijt(i)}const Fje=(i,a=2)=>{const u=Math.pow(10,a);return Math.round(i*u)/u},B2e=(i,a)=>{let u,d=a;for(const p of i){if(u){const v=Bje(p,u);if(v=1)return{x:p.x,y:p.y};if(b>0&&b<1)return{x:Fje((1-b)*u.x+b*p.x,5),y:Fje((1-b)*u.y+b*p.y,5)}}}u=p}throw new Error("Could not find a suitable point for the given distance")},ajt=(i,a,u)=>{Xe.info(`our points ${JSON.stringify(a)}`),a[0]!==u&&(a=a.reverse());const p=B2e(a,25),v=i?10:5,b=Math.atan2(a[0].y-p.y,a[0].x-p.x),y={x:0,y:0};return y.x=Math.sin(b)*v+(a[0].x+p.x)/2,y.y=-Math.cos(b)*v+(a[0].y+p.y)/2,y};function ojt(i,a,u){const d=structuredClone(u);Xe.info("our points",d),a!=="start_left"&&a!=="start_right"&&d.reverse();const p=25+i,v=B2e(d,p),b=10+i*.5,y=Math.atan2(d[0].y-v.y,d[0].x-v.x),E={x:0,y:0};return a==="start_left"?(E.x=Math.sin(y+Math.PI)*b+(d[0].x+v.x)/2,E.y=-Math.cos(y+Math.PI)*b+(d[0].y+v.y)/2):a==="end_right"?(E.x=Math.sin(y-Math.PI)*b+(d[0].x+v.x)/2-5,E.y=-Math.cos(y-Math.PI)*b+(d[0].y+v.y)/2-5):a==="end_left"?(E.x=Math.sin(y)*b+(d[0].x+v.x)/2-5,E.y=-Math.cos(y)*b+(d[0].y+v.y)/2-5):(E.x=Math.sin(y)*b+(d[0].x+v.x)/2,E.y=-Math.cos(y)*b+(d[0].y+v.y)/2),E}function gm(i){let a="",u="";for(const d of i)d!==void 0&&(d.startsWith("color:")||d.startsWith("text-align:")?u=u+d+";":a=a+d+";");return{style:a,labelStyle:u}}let Rje=0;const jje=()=>(Rje++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Rje);function cjt(i){let a="";const u="0123456789abcdef",d=u.length;for(let p=0;pcjt(i.length),ujt=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:""}},ljt=function(i,a){const u=a.text.replace(oi.lineBreakRegex," "),[,d]=PC(a.fontSize),p=i.append("text");p.attr("x",a.x),p.attr("y",a.y),p.style("text-anchor",a.anchor),p.style("font-family",a.fontFamily),p.style("font-size",d),p.style("font-weight",a.fontWeight),p.attr("fill",a.fill),a.class!==void 0&&p.attr("class",a.class);const v=p.append("tspan");return v.attr("x",a.x+a.textMargin*2),v.attr("fill",a.fill),v.text(u),p},zje=yD((i,a,u)=>{if(!i||(u=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},u),oi.lineBreakRegex.test(i)))return i;const d=i.split(" "),p=[];let v="";return d.forEach((b,y)=>{const E=G4(`${b} `,u),_=G4(v,u);if(E>a){const{hyphenatedStrings:R,remainingWord:B}=hjt(b,a,"-",u);p.push(v,...R),v=B}else _+E>=a?(p.push(v),v=b):v=[v,b].filter(Boolean).join(" ");y+1===d.length&&p.push(v)}),p.filter(b=>b!=="").join(u.joinWith)},(i,a,u)=>`${i}${a}${u.fontSize}${u.fontWeight}${u.fontFamily}${u.joinWith}`),hjt=yD((i,a,u="-",d)=>{d=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},d);const p=[...i],v=[];let b="";return p.forEach((y,E)=>{const _=`${b}${y}`;if(G4(_,d)>=a){const P=E+1,R=p.length===P,B=`${_}${u}`;v.push(R?_:B),b=""}else b=_}),{hyphenatedStrings:v,remainingWord:b}},(i,a,u="-",d)=>`${i}${a}${u}${d.fontSize}${d.fontWeight}${d.fontFamily}`);function F2e(i,a){return R2e(i,a).height}function G4(i,a){return R2e(i,a).width}const R2e=yD((i,a)=>{const{fontSize:u=12,fontFamily:d="Arial",fontWeight:p=400}=a;if(!i)return{width:0,height:0};const[,v]=PC(u),b=["sans-serif",d],y=i.split(oi.lineBreakRegex),E=[],_=Dr("body");if(!_.remove)return{width:0,height:0,lineHeight:0};const A=_.append("svg");for(const R of b){let B=0;const j={width:0,height:0,lineHeight:0};for(const W of y){const ee=ujt();ee.text=W||Nje;const ie=ljt(A,ee).style("font-size",v).style("font-weight",p).style("font-family",R),oe=(ie._groups||ie)[0][0].getBBox();if(oe.width===0&&oe.height===0)throw new Error("svg element not in render tree");j.width=Math.round(Math.max(j.width,oe.width)),B=Math.round(oe.height),j.height+=B,j.lineHeight=Math.round(Math.max(j.lineHeight,B))}E.push(j)}A.remove();const P=isNaN(E[1].height)||isNaN(E[1].width)||isNaN(E[1].lineHeight)||E[0].height>E[1].height&&E[0].width>E[1].width&&E[0].lineHeight>E[1].lineHeight?0:1;return E[P]},(i,a)=>`${i}${a.fontSize}${a.fontWeight}${a.fontFamily}`);class fjt{constructor(a=!1,u){this.count=0,this.count=u?u.length:0,this.next=a?()=>this.count++:()=>Date.now()}}let VX;const djt=function(i){return VX=VX||document.createElement("div"),i=escape(i).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),VX.innerHTML=i,unescape(VX.textContent)};function qje(i){return"str"in i}const gjt=(i,a,u,d)=>{var v;if(!d)return;const p=(v=i.node())==null?void 0:v.getBBox();p&&i.append("text").text(d).attr("x",p.x+p.width/2).attr("y",-u).attr("class",a)},PC=i=>{if(typeof i=="number")return[i,i+"px"];const a=parseInt(i??"",10);return Number.isNaN(a)?[void 0,void 0]:i===String(a)?[a,i+"px"]:[a,i]};function cR(i,a){return UX({},i,a)}const So={assignWithDepth:id,wrapLabel:zje,calculateTextHeight:F2e,calculateTextWidth:G4,calculateTextDimensions:R2e,cleanAndMerge:cR,detectInit:ZRt,detectDirective:Pje,isSubstringInArray:tjt,interpolateToCurve:qv,calcLabelPosition:sjt,calcCardinalityPosition:ajt,calcTerminalLabelPosition:ojt,formatUrl:njt,getStylesFromArray:gm,generateId:jje,random:$je,runFunc:rjt,entityDecode:djt,insertTitle:gjt,parseFontSize:PC,InitIDGenerator:fjt},pjt=function(i){let a=i;return a=a.replace(/style.*:\S*#.*;/g,function(u){return u.substring(0,u.length-1)}),a=a.replace(/classDef.*:\S*#.*;/g,function(u){return u.substring(0,u.length-1)}),a=a.replace(/#\w+;/g,function(u){const d=u.substring(1,u.length-1);return/^\+?\d+$/.test(d)?"fl°°"+d+"¶ß":"fl°"+d+"¶ß"}),a},uR=function(i){return i.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")};var j2e="comm",Hje="rule",Uje="decl",bjt="@media",mjt="@import",vjt="@supports",$2e="@keyframes",Vje="@layer",Gje=Math.abs,z2e=String.fromCharCode;function Kje(i){return i.trim()}function GX(i,a,u){return i.replace(a,u)}function wjt(i,a,u){return i.indexOf(a,u)}function lR(i,a){return i.charCodeAt(a)|0}function hR(i,a,u){return i.slice(a,u)}function L7(i){return i.length}function Wje(i){return i.length}function KX(i,a){return a.push(i),i}var WX=1,CD=1,Yje=0,Hv=0,I0=0,SD="";function q2e(i,a,u,d,p,v,b,y){return{value:i,root:a,parent:u,type:d,props:p,children:v,line:WX,column:CD,length:b,return:"",siblings:y}}function yjt(){return I0}function xjt(){return I0=Hv>0?lR(SD,--Hv):0,CD--,I0===10&&(CD=1,WX--),I0}function z3(){return I0=Hv2||H2e(I0)>3?"":" "}function Cjt(i,a){for(;--a&&z3()&&!(I0<48||I0>102||I0>57&&I0<65||I0>70&&I0<97););return XX(i,YX()+(a<6&&BC()==32&&z3()==32))}function V2e(i){for(;z3();)switch(I0){case i:return Hv;case 34:case 39:i!==34&&i!==39&&V2e(I0);break;case 40:i===41&&V2e(i);break;case 92:z3();break}return Hv}function Sjt(i,a){for(;z3()&&i+I0!==47+10;)if(i+I0===42+42&&BC()===47)break;return"/*"+XX(a,Hv-1)+"*"+z2e(i===47?i:z3())}function _jt(i){for(;!H2e(BC());)z3();return XX(i,Hv)}function Ajt(i){return Tjt(QX("",null,null,null,[""],i=kjt(i),0,[0],i))}function QX(i,a,u,d,p,v,b,y,E){for(var _=0,A=0,P=b,R=0,B=0,j=0,W=1,ee=1,ie=1,oe=0,be="",ge=p,ae=v,ne=d,se=be;ee;)switch(j=oe,oe=z3()){case 40:if(j!=108&&lR(se,P-1)==58){wjt(se+=GX(U2e(oe),"&","&\f"),"&\f",Gje(_?y[_-1]:0))!=-1&&(ie=-1);break}case 34:case 39:case 91:se+=U2e(oe);break;case 9:case 10:case 13:case 32:se+=Ejt(j);break;case 92:se+=Cjt(YX()-1,7);continue;case 47:switch(BC()){case 42:case 47:KX(Ljt(Sjt(z3(),YX()),a,u,E),E);break;default:se+="/"}break;case 123*W:y[_++]=L7(se)*ie;case 125*W:case 59:case 0:switch(oe){case 0:case 125:ee=0;case 59+A:ie==-1&&(se=GX(se,/\f/g,"")),B>0&&L7(se)-P&&KX(B>32?Qje(se+";",d,u,P-1,E):Qje(GX(se," ","")+";",d,u,P-2,E),E);break;case 59:se+=";";default:if(KX(ne=Xje(se,a,u,_,A,p,y,be,ge=[],ae=[],P,v),v),oe===123)if(A===0)QX(se,a,ne,ne,ge,v,P,y,ae);else switch(R===99&&lR(se,3)===110?100:R){case 100:case 108:case 109:case 115:QX(i,ne,ne,d&&KX(Xje(i,ne,ne,0,0,p,y,be,p,ge=[],P,ae),ae),p,ae,P,y,d?ge:ae);break;default:QX(se,ne,ne,ne,[""],ae,0,y,ae)}}_=A=B=0,W=ie=1,be=se="",P=b;break;case 58:P=1+L7(se),B=j;default:if(W<1){if(oe==123)--W;else if(oe==125&&W++==0&&xjt()==125)continue}switch(se+=z2e(oe),oe*W){case 38:ie=A>0?1:(se+="\f",-1);break;case 44:y[_++]=(L7(se)-1)*ie,ie=1;break;case 64:BC()===45&&(se+=U2e(z3())),R=BC(),A=P=L7(be=se+=_jt(YX())),oe++;break;case 45:j===45&&L7(se)==2&&(W=0)}}return v}function Xje(i,a,u,d,p,v,b,y,E,_,A,P){for(var R=p-1,B=p===0?v:[""],j=Wje(B),W=0,ee=0,ie=0;W0?B[oe]+" "+be:GX(be,/&\f/g,B[oe])))&&(E[ie++]=ge);return q2e(i,a,u,p===0?Hje:y,E,_,A,P)}function Ljt(i,a,u,d){return q2e(i,a,u,j2e,z2e(yjt()),hR(i,2,-2),0,d)}function Qje(i,a,u,d,p){return q2e(i,a,u,Uje,hR(i,0,d),hR(i,d+1,-1),d,p)}function G2e(i,a){for(var u="",d=0;d{let u=id({},i),d={};for(const p of a)n$e(p),d=id(d,p);if(u=id(u,d),d.theme&&d.theme in C7){const p=id({},Zje),v=id(p.themeVariables||{},d.themeVariables);u.theme&&u.theme in C7&&(u.themeVariables=C7[u.theme].getThemeVariables(v))}return fR=u,i$e(fR),fR},Ijt=i=>(G2=id({},_D),G2=id(G2,i),i.theme&&C7[i.theme]&&(G2.themeVariables=C7[i.theme].getThemeVariables(i.themeVariables)),JX(G2,AD),G2),Ojt=i=>{Zje=id({},i)},Njt=i=>(G2=id(G2,i),JX(G2,AD),G2),e$e=()=>id({},G2),t$e=i=>(i$e(i),id(fR,i),mh()),mh=()=>id({},fR),n$e=i=>{i&&(["secure",...G2.secure??[]].forEach(a=>{Object.hasOwn(i,a)&&(Xe.debug(`Denied attempt to modify a secure key ${a}`,i[a]),delete i[a])}),Object.keys(i).forEach(a=>{a.startsWith("__")&&delete i[a]}),Object.keys(i).forEach(a=>{typeof i[a]=="string"&&(i[a].includes("<")||i[a].includes(">")||i[a].includes("url(data:"))&&delete i[a],typeof i[a]=="object"&&n$e(i[a])}))},Pjt=i=>{DX(i),i.fontFamily&&(!i.themeVariables||!i.themeVariables.fontFamily)&&(i.themeVariables={fontFamily:i.fontFamily}),AD.push(i),JX(G2,AD)},ZX=(i=G2)=>{AD=[],JX(i,AD)},Bjt={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},r$e={},Fjt=i=>{r$e[i]||(Xe.warn(Bjt[i]),r$e[i]=!0)},i$e=i=>{i&&(i.lazyLoadedDiagrams||i.loadExternalDiagramsAtStartup)&&Fjt("LAZY_LOAD_DEPRECATED")},s$e="c4",Rjt={id:s$e,detector:i=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>$Vt);return{id:s$e,diagram:i}}},a$e="flowchart",jjt={id:a$e,detector:(i,a)=>{var u,d;return((u=a==null?void 0:a.flowchart)==null?void 0:u.defaultRenderer)==="dagre-wrapper"||((d=a==null?void 0:a.flowchart)==null?void 0:d.defaultRenderer)==="elk"?!1:/^\s*graph/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Wen);return{id:a$e,diagram:i}}},o$e="flowchart-v2",$jt={id:o$e,detector:(i,a)=>{var u,d,p;return((u=a==null?void 0:a.flowchart)==null?void 0:u.defaultRenderer)==="dagre-d3"||((d=a==null?void 0:a.flowchart)==null?void 0:d.defaultRenderer)==="elk"?!1:/^\s*graph/.test(i)&&((p=a==null?void 0:a.flowchart)==null?void 0:p.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Yen);return{id:o$e,diagram:i}}},c$e="er",zjt={id:c$e,detector:i=>/^\s*erDiagram/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>xtn);return{id:c$e,diagram:i}}},u$e="gitGraph",qjt={id:u$e,detector:i=>/^\s*gitGraph/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Ktn);return{id:u$e,diagram:i}}},l$e="gantt",Hjt={id:l$e,detector:i=>/^\s*gantt/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Bnn);return{id:l$e,diagram:i}}},h$e="info",Ujt={id:h$e,detector:i=>/^\s*info/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Rnn);return{id:h$e,diagram:i}}},f$e="pie",Vjt={id:f$e,detector:i=>/^\s*pie/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Unn);return{id:f$e,diagram:i}}},d$e="quadrantChart",Gjt={id:d$e,detector:i=>/^\s*quadrantChart/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>arn);return{id:d$e,diagram:i}}},g$e="xychart",Kjt={id:g$e,detector:i=>/^\s*xychart-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Mrn);return{id:g$e,diagram:i}}},p$e="requirement",Wjt={id:p$e,detector:i=>/^\s*requirement(Diagram)?/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>$rn);return{id:p$e,diagram:i}}},b$e="sequence",Yjt={id:b$e,detector:i=>/^\s*sequenceDiagram/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Hin);return{id:b$e,diagram:i}}},m$e="class",Xjt={id:m$e,detector:(i,a)=>{var u;return((u=a==null?void 0:a.class)==null?void 0:u.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>dsn);return{id:m$e,diagram:i}}},v$e="classDiagram",Qjt={id:v$e,detector:(i,a)=>{var u;return/^\s*classDiagram/.test(i)&&((u=a==null?void 0:a.class)==null?void 0:u.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>wsn);return{id:v$e,diagram:i}}},w$e="state",Jjt={id:w$e,detector:(i,a)=>{var u;return((u=a==null?void 0:a.state)==null?void 0:u.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>aan);return{id:w$e,diagram:i}}},y$e="stateDiagram",Zjt={id:y$e,detector:(i,a)=>{var u;return!!(/^\s*stateDiagram-v2/.test(i)||/^\s*stateDiagram/.test(i)&&((u=a==null?void 0:a.state)==null?void 0:u.defaultRenderer)==="dagre-wrapper")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Can);return{id:y$e,diagram:i}}},x$e="journey",e$t={id:x$e,detector:i=>/^\s*journey/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Uan);return{id:x$e,diagram:i}}},t$t=function(i,a){for(let u of a)i.attr(u[0],u[1])},n$t=function(i,a,u){let d=new Map;return u?(d.set("width","100%"),d.set("style",`max-width: ${a}px;`)):(d.set("height",i),d.set("width",a)),d},Fg=function(i,a,u,d){const p=n$t(a,u,d);t$t(i,p)},x9=function(i,a,u,d){const p=a.node().getBBox(),v=p.width,b=p.height;Xe.info(`SVG bounds: ${v}x${b}`,p);let y=0,E=0;Xe.info(`Graph bounds: ${y}x${E}`,i),y=v+u*2,E=b+u*2,Xe.info(`Calculated bounds: ${y}x${E}`),Fg(a,E,y,d);const _=`${p.x-u} ${p.y-u} ${p.width+2*u} ${p.height+2*u}`;a.attr("viewBox",_)},eQ={};function k$e(i){return[...i.cssRules].map(a=>a.cssText).join(` +`)}const r$t=(i,a,u)=>{let d="";return i in eQ&&eQ[i]?d=eQ[i](u):Xe.warn(`No theme found for ${i}`),` & { + font-family: ${u.fontFamily}; + font-size: ${u.fontSize}; + fill: ${u.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${u.errorBkgColor}; + } + & .error-text { + fill: ${u.errorTextColor}; + stroke: ${u.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 2px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${u.lineColor}; + stroke: ${u.lineColor}; + } + & .marker.cross { + stroke: ${u.lineColor}; + } + + & svg { + font-family: ${u.fontFamily}; + font-size: ${u.fontSize}; + } + + ${d} + + ${a} +`},i$t=(i,a)=>{a!==void 0&&(eQ[i]=a)},s$t=r$t;let K2e="",W2e="",Y2e="";const X2e=i=>bh(i,mh()),Rg=()=>{K2e="",Y2e="",W2e=""},jg=i=>{K2e=X2e(i).replace(/^\s+/g,"")},Mp=()=>K2e,Dp=i=>{Y2e=X2e(i).replace(/\n\s+/g,` +`)},Ip=()=>Y2e,pm=i=>{W2e=X2e(i)},Op=()=>W2e,T$e=Object.freeze(Object.defineProperty({__proto__:null,clear:Rg,getAccDescription:Ip,getAccTitle:Mp,getDiagramTitle:Op,setAccDescription:Dp,setAccTitle:jg,setDiagramTitle:pm},Symbol.toStringTag,{value:"Module"})),a$t=Xe,o$t=Spe,qt=mh,c$t=t$e,E$e=_D,u$t=i=>bh(i,qt()),C$e=x9,l$t=()=>T$e,tQ={},nQ=(i,a,u)=>{var d;if(tQ[i])throw new Error(`Diagram ${i} already registered.`);tQ[i]=a,u&&ije(i,u),i$t(i,a.styles),(d=a.injectUtils)==null||d.call(a,a$t,o$t,qt,u$t,C$e,l$t(),()=>{})},Q2e=i=>{if(i in tQ)return tQ[i];throw new h$t(i)};class h$t extends Error{constructor(a){super(`Diagram ${a} not found.`)}}const dR=i=>{var p;const{securityLevel:a}=qt();let u=Dr("body");if(a==="sandbox"){const b=((p=Dr(`#i${i}`).node())==null?void 0:p.contentDocument)??document;u=Dr(b.body)}return u.select(`#${i}`)},S$e={draw:(i,a,u)=>{Xe.debug(`rendering svg for syntax error +`);const d=dR(a),p=d.append("g");d.attr("viewBox","0 0 2412 512"),Fg(d,100,512,!0),p.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),p.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),p.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),p.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),p.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),p.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),p.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),p.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${u}`)}},f$t=S$e,d$t={db:{},renderer:S$e,parser:{parser:{yy:{}},parse:()=>{}}},_$e="flowchart-elk",g$t={id:_$e,detector:(i,a)=>{var u;return!!(/^\s*flowchart-elk/.test(i)||/^\s*flowchart|graph/.test(i)&&((u=a==null?void 0:a.flowchart)==null?void 0:u.defaultRenderer)==="elk")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>aon);return{id:_$e,diagram:i}}},A$e="timeline",p$t={id:A$e,detector:i=>/^\s*timeline/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Con);return{id:A$e,diagram:i}}},L$e="mindmap",b$t={id:L$e,detector:i=>/^\s*mindmap/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Zon);return{id:L$e,diagram:i}}},M$e="sankey",m$t={id:M$e,detector:i=>/^\s*sankey-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Lcn);return{id:M$e,diagram:i}}},D$e="block",v$t={id:D$e,detector:i=>/^\s*block-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Qcn);return{id:D$e,diagram:i}}};let I$e=!1;const J2e=()=>{I$e||(I$e=!0,nQ("error",d$t,i=>i.toLowerCase().trim()==="error"),nQ("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}},init:()=>null},i=>i.toLowerCase().trimStart().startsWith("---")),rje(Rjt,Qjt,Xjt,zjt,Hjt,Ujt,Vjt,Wjt,Yjt,g$t,$jt,jjt,b$t,p$t,qjt,Zjt,Jjt,e$t,Gjt,m$t,Kjt,v$t))};class O$e{constructor(a,u={}){this.text=a,this.metadata=u,this.type="graph",this.text=pjt(a),this.text+=` +`;const d=mh();try{this.type=IX(a,d)}catch(v){this.type="error",this.detectError=v}const p=Q2e(this.type);Xe.debug("Type "+this.type),this.db=p.db,this.renderer=p.renderer,this.parser=p.parser,this.parser.parser.yy=this.db,this.init=p.init,this.parse()}parse(){var u,d,p,v,b;if(this.detectError)throw this.detectError;(d=(u=this.db).clear)==null||d.call(u);const a=mh();(p=this.init)==null||p.call(this,a),this.metadata.title&&((b=(v=this.db).setDiagramTitle)==null||b.call(v,this.metadata.title)),this.parser.parse(this.text)}async render(a,u){await this.renderer.draw(this.text,a,u,this)}getParser(){return this.parser}getType(){return this.type}}const w$t=async(i,a={})=>{const u=IX(i,mh());try{Q2e(u)}catch{const p=xBt(u);if(!p)throw new nje(`Diagram ${u} not found.`);const{id:v,diagram:b}=await p();nQ(v,b)}return new O$e(i,a)};let N$e=[];const y$t=()=>{N$e.forEach(i=>{i()}),N$e=[]};var x$t=mje(Object.keys,Object);const k$t=x$t;var T$t=Object.prototype,E$t=T$t.hasOwnProperty;function P$e(i){if(!RX(i))return k$t(i);var a=[];for(var u in Object(i))E$t.call(i,u)&&u!="constructor"&&a.push(u);return a}var C$t=DC(j3,"DataView");const Z2e=C$t;var S$t=DC(j3,"Promise");const ebe=S$t;var _$t=DC(j3,"Set");const LD=_$t;var A$t=DC(j3,"WeakMap");const tbe=A$t;var B$e="[object Map]",L$t="[object Object]",F$e="[object Promise]",R$e="[object Set]",j$e="[object WeakMap]",$$e="[object DataView]",M$t=MC(Z2e),D$t=MC(iR),I$t=MC(ebe),O$t=MC(LD),N$t=MC(tbe),FC=LC;(Z2e&&FC(new Z2e(new ArrayBuffer(1)))!=$$e||iR&&FC(new iR)!=B$e||ebe&&FC(ebe.resolve())!=F$e||LD&&FC(new LD)!=R$e||tbe&&FC(new tbe)!=j$e)&&(FC=function(i){var a=LC(i),u=a==L$t?i.constructor:void 0,d=u?MC(u):"";if(d)switch(d){case M$t:return $$e;case D$t:return B$e;case I$t:return F$e;case O$t:return R$e;case N$t:return j$e}return a});const MD=FC;var P$t="[object Map]",B$t="[object Set]",F$t=Object.prototype,R$t=F$t.hasOwnProperty;function gR(i){if(i==null)return!0;if(y9(i)&&(D0(i)||typeof i=="string"||typeof i.splice=="function"||kD(i)||$X(i)||xD(i)))return!i.length;var a=MD(i);if(a==P$t||a==B$t)return!i.size;if(RX(i))return!P$e(i).length;for(var u in i)if(R$t.call(i,u))return!1;return!0}const j$t="graphics-document document";function $$t(i,a){i.attr("role",j$t),a!==""&&i.attr("aria-roledescription",a)}function z$t(i,a,u,d){if(i.insert!==void 0){if(u){const p=`chart-desc-${d}`;i.attr("aria-describedby",p),i.insert("desc",":first-child").attr("id",p).text(u)}if(a){const p=`chart-title-${d}`;i.attr("aria-labelledby",p),i.insert("title",":first-child").attr("id",p).text(a)}}}const q$t=i=>i.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart();/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function z$e(i){return typeof i>"u"||i===null}function H$t(i){return typeof i=="object"&&i!==null}function U$t(i){return Array.isArray(i)?i:z$e(i)?[]:[i]}function V$t(i,a){var u,d,p,v;if(a)for(v=Object.keys(a),u=0,d=v.length;uy&&(v=" ... ",a=d-y+v.length),u-d>y&&(b=" ...",u=d+y-b.length),{str:v+i.slice(a,u).replace(/\t/g,"→")+b,pos:d-a+v.length}}function rbe(i,a){return Np.repeat(" ",a-i.length)+i}function ezt(i,a){if(a=Object.create(a||null),!i.buffer)return null;a.maxLength||(a.maxLength=79),typeof a.indent!="number"&&(a.indent=1),typeof a.linesBefore!="number"&&(a.linesBefore=3),typeof a.linesAfter!="number"&&(a.linesAfter=2);for(var u=/\r?\n|\r|\0/g,d=[0],p=[],v,b=-1;v=u.exec(i.buffer);)p.push(v.index),d.push(v.index+v[0].length),i.position<=v.index&&b<0&&(b=d.length-2);b<0&&(b=d.length-1);var y="",E,_,A=Math.min(i.line+a.linesAfter,p.length).toString().length,P=a.maxLength-(a.indent+A+3);for(E=1;E<=a.linesBefore&&!(b-E<0);E++)_=nbe(i.buffer,d[b-E],p[b-E],i.position-(d[b]-d[b-E]),P),y=Np.repeat(" ",a.indent)+rbe((i.line-E+1).toString(),A)+" | "+_.str+` +`+y;for(_=nbe(i.buffer,d[b],p[b],i.position,P),y+=Np.repeat(" ",a.indent)+rbe((i.line+1).toString(),A)+" | "+_.str+` +`,y+=Np.repeat("-",a.indent+A+3+_.pos)+`^ +`,E=1;E<=a.linesAfter&&!(b+E>=p.length);E++)_=nbe(i.buffer,d[b+E],p[b+E],i.position-(d[b]-d[b+E]),P),y+=Np.repeat(" ",a.indent)+rbe((i.line+E+1).toString(),A)+" | "+_.str+` +`;return y.replace(/\n$/,"")}var tzt=ezt,nzt=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],rzt=["scalar","sequence","mapping"];function izt(i){var a={};return i!==null&&Object.keys(i).forEach(function(u){i[u].forEach(function(d){a[String(d)]=u})}),a}function szt(i,a){if(a=a||{},Object.keys(a).forEach(function(u){if(nzt.indexOf(u)===-1)throw new M7('Unknown option "'+u+'" is met in definition of "'+i+'" YAML type.')}),this.options=a,this.tag=i,this.kind=a.kind||null,this.resolve=a.resolve||function(){return!0},this.construct=a.construct||function(u){return u},this.instanceOf=a.instanceOf||null,this.predicate=a.predicate||null,this.represent=a.represent||null,this.representName=a.representName||null,this.defaultStyle=a.defaultStyle||null,this.multi=a.multi||!1,this.styleAliases=izt(a.styleAliases||null),rzt.indexOf(this.kind)===-1)throw new M7('Unknown kind "'+this.kind+'" is specified for "'+i+'" YAML type.')}var $g=szt;function H$e(i,a){var u=[];return i[a].forEach(function(d){var p=u.length;u.forEach(function(v,b){v.tag===d.tag&&v.kind===d.kind&&v.multi===d.multi&&(p=b)}),u[p]=d}),u}function azt(){var i={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},a,u;function d(p){p.multi?(i.multi[p.kind].push(p),i.multi.fallback.push(p)):i[p.kind][p.tag]=i.fallback[p.tag]=p}for(a=0,u=arguments.length;a=0?"0b"+i.toString(2):"-0b"+i.toString(2).slice(1)},octal:function(i){return i>=0?"0o"+i.toString(8):"-0o"+i.toString(8).slice(1)},decimal:function(i){return i.toString(10)},hexadecimal:function(i){return i>=0?"0x"+i.toString(16).toUpperCase():"-0x"+i.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),_zt=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Azt(i){return!(i===null||!_zt.test(i)||i[i.length-1]==="_")}function Lzt(i){var a,u;return a=i.replace(/_/g,"").toLowerCase(),u=a[0]==="-"?-1:1,"+-".indexOf(a[0])>=0&&(a=a.slice(1)),a===".inf"?u===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:a===".nan"?NaN:u*parseFloat(a,10)}var Mzt=/^[-+]?[0-9]+e/;function Dzt(i,a){var u;if(isNaN(i))switch(a){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===i)switch(a){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===i)switch(a){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Np.isNegativeZero(i))return"-0.0";return u=i.toString(10),Mzt.test(u)?u.replace("e",".e"):u}function Izt(i){return Object.prototype.toString.call(i)==="[object Number]"&&(i%1!==0||Np.isNegativeZero(i))}var Ozt=new $g("tag:yaml.org,2002:float",{kind:"scalar",resolve:Azt,construct:Lzt,predicate:Izt,represent:Dzt,defaultStyle:"lowercase"}),U$e=hzt.extend({implicit:[pzt,wzt,Szt,Ozt]}),Nzt=U$e,V$e=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),G$e=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 Pzt(i){return i===null?!1:V$e.exec(i)!==null||G$e.exec(i)!==null}function Bzt(i){var a,u,d,p,v,b,y,E=0,_=null,A,P,R;if(a=V$e.exec(i),a===null&&(a=G$e.exec(i)),a===null)throw new Error("Date resolve error");if(u=+a[1],d=+a[2]-1,p=+a[3],!a[4])return new Date(Date.UTC(u,d,p));if(v=+a[4],b=+a[5],y=+a[6],a[7]){for(E=a[7].slice(0,3);E.length<3;)E+="0";E=+E}return a[9]&&(A=+a[10],P=+(a[11]||0),_=(A*60+P)*6e4,a[9]==="-"&&(_=-_)),R=new Date(Date.UTC(u,d,p,v,b,y,E)),_&&R.setTime(R.getTime()-_),R}function Fzt(i){return i.toISOString()}var Rzt=new $g("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Pzt,construct:Bzt,instanceOf:Date,represent:Fzt});function jzt(i){return i==="<<"||i===null}var $zt=new $g("tag:yaml.org,2002:merge",{kind:"scalar",resolve:jzt}),sbe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function zzt(i){if(i===null)return!1;var a,u,d=0,p=i.length,v=sbe;for(u=0;u64)){if(a<0)return!1;d+=6}return d%8===0}function qzt(i){var a,u,d=i.replace(/[\r\n=]/g,""),p=d.length,v=sbe,b=0,y=[];for(a=0;a>16&255),y.push(b>>8&255),y.push(b&255)),b=b<<6|v.indexOf(d.charAt(a));return u=p%4*6,u===0?(y.push(b>>16&255),y.push(b>>8&255),y.push(b&255)):u===18?(y.push(b>>10&255),y.push(b>>2&255)):u===12&&y.push(b>>4&255),new Uint8Array(y)}function Hzt(i){var a="",u=0,d,p,v=i.length,b=sbe;for(d=0;d>18&63],a+=b[u>>12&63],a+=b[u>>6&63],a+=b[u&63]),u=(u<<8)+i[d];return p=v%3,p===0?(a+=b[u>>18&63],a+=b[u>>12&63],a+=b[u>>6&63],a+=b[u&63]):p===2?(a+=b[u>>10&63],a+=b[u>>4&63],a+=b[u<<2&63],a+=b[64]):p===1&&(a+=b[u>>2&63],a+=b[u<<4&63],a+=b[64],a+=b[64]),a}function Uzt(i){return Object.prototype.toString.call(i)==="[object Uint8Array]"}var Vzt=new $g("tag:yaml.org,2002:binary",{kind:"scalar",resolve:zzt,construct:qzt,predicate:Uzt,represent:Hzt}),Gzt=Object.prototype.hasOwnProperty,Kzt=Object.prototype.toString;function Wzt(i){if(i===null)return!0;var a=[],u,d,p,v,b,y=i;for(u=0,d=y.length;u>10)+55296,(i-65536&1023)+56320)}for(var eze=new Array(256),tze=new Array(256),ID=0;ID<256;ID++)eze[ID]=Z$e(ID)?1:0,tze[ID]=Z$e(ID);function gqt(i,a){this.input=i,this.filename=a.filename||null,this.schema=a.schema||sqt,this.onWarning=a.onWarning||null,this.legacy=a.legacy||!1,this.json=a.json||!1,this.listener=a.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=i.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function nze(i,a){var u={name:i.filename,buffer:i.input.slice(0,-1),position:i.position,line:i.line,column:i.position-i.lineStart};return u.snippet=tzt(u),new M7(a,u)}function la(i,a){throw nze(i,a)}function sQ(i,a){i.onWarning&&i.onWarning.call(null,nze(i,a))}var rze={YAML:function(a,u,d){var p,v,b;a.version!==null&&la(a,"duplication of %YAML directive"),d.length!==1&&la(a,"YAML directive accepts exactly one argument"),p=/^([0-9]+)\.([0-9]+)$/.exec(d[0]),p===null&&la(a,"ill-formed argument of the YAML directive"),v=parseInt(p[1],10),b=parseInt(p[2],10),v!==1&&la(a,"unacceptable YAML version of the document"),a.version=d[0],a.checkLineBreaks=b<2,b!==1&&b!==2&&sQ(a,"unsupported YAML version of the document")},TAG:function(a,u,d){var p,v;d.length!==2&&la(a,"TAG directive accepts exactly two arguments"),p=d[0],v=d[1],X$e.test(p)||la(a,"ill-formed tag handle (first argument) of the TAG directive"),k9.call(a.tagMap,p)&&la(a,'there is a previously declared suffix for "'+p+'" tag handle'),Q$e.test(v)||la(a,"ill-formed tag prefix (second argument) of the TAG directive");try{v=decodeURIComponent(v)}catch{la(a,"tag prefix is malformed: "+v)}a.tagMap[p]=v}};function T9(i,a,u,d){var p,v,b,y;if(a1&&(i.result+=Np.repeat(` +`,a-1))}function pqt(i,a,u){var d,p,v,b,y,E,_,A,P=i.kind,R=i.result,B;if(B=i.input.charCodeAt(i.position),K2(B)||DD(B)||B===35||B===38||B===42||B===33||B===124||B===62||B===39||B===34||B===37||B===64||B===96||(B===63||B===45)&&(p=i.input.charCodeAt(i.position+1),K2(p)||u&&DD(p)))return!1;for(i.kind="scalar",i.result="",v=b=i.position,y=!1;B!==0;){if(B===58){if(p=i.input.charCodeAt(i.position+1),K2(p)||u&&DD(p))break}else if(B===35){if(d=i.input.charCodeAt(i.position-1),K2(d))break}else{if(i.position===i.lineStart&&aQ(i)||u&&DD(B))break;if(K4(B))if(E=i.line,_=i.lineStart,A=i.lineIndent,O0(i,!1,-1),i.lineIndent>=a){y=!0,B=i.input.charCodeAt(i.position);continue}else{i.position=b,i.line=E,i.lineStart=_,i.lineIndent=A;break}}y&&(T9(i,v,b,!1),cbe(i,i.line-E),v=b=i.position,y=!1),RC(B)||(b=i.position+1),B=i.input.charCodeAt(++i.position)}return T9(i,v,b,!1),i.result?!0:(i.kind=P,i.result=R,!1)}function bqt(i,a){var u,d,p;if(u=i.input.charCodeAt(i.position),u!==39)return!1;for(i.kind="scalar",i.result="",i.position++,d=p=i.position;(u=i.input.charCodeAt(i.position))!==0;)if(u===39)if(T9(i,d,i.position,!0),u=i.input.charCodeAt(++i.position),u===39)d=i.position,i.position++,p=i.position;else return!0;else K4(u)?(T9(i,d,p,!0),cbe(i,O0(i,!1,a)),d=p=i.position):i.position===i.lineStart&&aQ(i)?la(i,"unexpected end of the document within a single quoted scalar"):(i.position++,p=i.position);la(i,"unexpected end of the stream within a single quoted scalar")}function mqt(i,a){var u,d,p,v,b,y;if(y=i.input.charCodeAt(i.position),y!==34)return!1;for(i.kind="scalar",i.result="",i.position++,u=d=i.position;(y=i.input.charCodeAt(i.position))!==0;){if(y===34)return T9(i,u,i.position,!0),i.position++,!0;if(y===92){if(T9(i,u,i.position,!0),y=i.input.charCodeAt(++i.position),K4(y))O0(i,!1,a);else if(y<256&&eze[y])i.result+=tze[y],i.position++;else if((b=hqt(y))>0){for(p=b,v=0;p>0;p--)y=i.input.charCodeAt(++i.position),(b=lqt(y))>=0?v=(v<<4)+b:la(i,"expected hexadecimal character");i.result+=dqt(v),i.position++}else la(i,"unknown escape sequence");u=d=i.position}else K4(y)?(T9(i,u,d,!0),cbe(i,O0(i,!1,a)),u=d=i.position):i.position===i.lineStart&&aQ(i)?la(i,"unexpected end of the document within a double quoted scalar"):(i.position++,d=i.position)}la(i,"unexpected end of the stream within a double quoted scalar")}function vqt(i,a){var u=!0,d,p,v,b=i.tag,y,E=i.anchor,_,A,P,R,B,j=Object.create(null),W,ee,ie,oe;if(oe=i.input.charCodeAt(i.position),oe===91)A=93,B=!1,y=[];else if(oe===123)A=125,B=!0,y={};else return!1;for(i.anchor!==null&&(i.anchorMap[i.anchor]=y),oe=i.input.charCodeAt(++i.position);oe!==0;){if(O0(i,!0,a),oe=i.input.charCodeAt(i.position),oe===A)return i.position++,i.tag=b,i.anchor=E,i.kind=B?"mapping":"sequence",i.result=y,!0;u?oe===44&&la(i,"expected the node content, but found ','"):la(i,"missed comma between flow collection entries"),ee=W=ie=null,P=R=!1,oe===63&&(_=i.input.charCodeAt(i.position+1),K2(_)&&(P=R=!0,i.position++,O0(i,!0,a))),d=i.line,p=i.lineStart,v=i.position,ND(i,a,rQ,!1,!0),ee=i.tag,W=i.result,O0(i,!0,a),oe=i.input.charCodeAt(i.position),(R||i.line===d)&&oe===58&&(P=!0,oe=i.input.charCodeAt(++i.position),O0(i,!0,a),ND(i,a,rQ,!1,!0),ie=i.result),B?OD(i,y,j,ee,W,ie,d,p,v):P?y.push(OD(i,null,j,ee,W,ie,d,p,v)):y.push(W),O0(i,!0,a),oe=i.input.charCodeAt(i.position),oe===44?(u=!0,oe=i.input.charCodeAt(++i.position)):u=!1}la(i,"unexpected end of the stream within a flow collection")}function wqt(i,a){var u,d,p=abe,v=!1,b=!1,y=a,E=0,_=!1,A,P;if(P=i.input.charCodeAt(i.position),P===124)d=!1;else if(P===62)d=!0;else return!1;for(i.kind="scalar",i.result="";P!==0;)if(P=i.input.charCodeAt(++i.position),P===43||P===45)abe===p?p=P===43?Y$e:aqt:la(i,"repeat of a chomping mode identifier");else if((A=fqt(P))>=0)A===0?la(i,"bad explicit indentation width of a block scalar; it cannot be less than one"):b?la(i,"repeat of an indentation width identifier"):(y=a+A-1,b=!0);else break;if(RC(P)){do P=i.input.charCodeAt(++i.position);while(RC(P));if(P===35)do P=i.input.charCodeAt(++i.position);while(!K4(P)&&P!==0)}for(;P!==0;){for(obe(i),i.lineIndent=0,P=i.input.charCodeAt(i.position);(!b||i.lineIndenty&&(y=i.lineIndent),K4(P)){E++;continue}if(i.lineIndenta)&&E!==0)la(i,"bad indentation of a sequence entry");else if(i.lineIndenta)&&(ee&&(b=i.line,y=i.lineStart,E=i.position),ND(i,a,iQ,!0,p)&&(ee?j=i.result:W=i.result),ee||(OD(i,P,R,B,j,W,b,y,E),B=j=W=null),O0(i,!0,-1),oe=i.input.charCodeAt(i.position)),(i.line===v||i.lineIndent>a)&&oe!==0)la(i,"bad indentation of a mapping entry");else if(i.lineIndenta?E=1:i.lineIndent===a?E=0:i.lineIndenta?E=1:i.lineIndent===a?E=0:i.lineIndent tag; it should be "scalar", not "'+i.kind+'"'),P=0,R=i.implicitTypes.length;P"),i.result!==null&&j.kind!==i.kind&&la(i,"unacceptable node kind for !<"+i.tag+'> tag; it should be "'+j.kind+'", not "'+i.kind+'"'),j.resolve(i.result,i.tag)?(i.result=j.construct(i.result,i.tag),i.anchor!==null&&(i.anchorMap[i.anchor]=i.result)):la(i,"cannot resolve a node with !<"+i.tag+"> explicit tag")}return i.listener!==null&&i.listener("close",i),i.tag!==null||i.anchor!==null||A}function Eqt(i){var a=i.position,u,d,p,v=!1,b;for(i.version=null,i.checkLineBreaks=i.legacy,i.tagMap=Object.create(null),i.anchorMap=Object.create(null);(b=i.input.charCodeAt(i.position))!==0&&(O0(i,!0,-1),b=i.input.charCodeAt(i.position),!(i.lineIndent>0||b!==37));){for(v=!0,b=i.input.charCodeAt(++i.position),u=i.position;b!==0&&!K2(b);)b=i.input.charCodeAt(++i.position);for(d=i.input.slice(u,i.position),p=[],d.length<1&&la(i,"directive name must not be less than one character in length");b!==0;){for(;RC(b);)b=i.input.charCodeAt(++i.position);if(b===35){do b=i.input.charCodeAt(++i.position);while(b!==0&&!K4(b));break}if(K4(b))break;for(u=i.position;b!==0&&!K2(b);)b=i.input.charCodeAt(++i.position);p.push(i.input.slice(u,i.position))}b!==0&&obe(i),k9.call(rze,d)?rze[d](i,d,p):sQ(i,'unknown document directive "'+d+'"')}if(O0(i,!0,-1),i.lineIndent===0&&i.input.charCodeAt(i.position)===45&&i.input.charCodeAt(i.position+1)===45&&i.input.charCodeAt(i.position+2)===45?(i.position+=3,O0(i,!0,-1)):v&&la(i,"directives end mark is expected"),ND(i,i.lineIndent-1,iQ,!1,!0),O0(i,!0,-1),i.checkLineBreaks&&cqt.test(i.input.slice(a,i.position))&&sQ(i,"non-ASCII line breaks are interpreted as content"),i.documents.push(i.result),i.position===i.lineStart&&aQ(i)){i.input.charCodeAt(i.position)===46&&(i.position+=3,O0(i,!0,-1));return}if(i.position"u"&&(u=a,a=null);var d=aze(i,u);if(typeof a!="function")return d;for(var p=0,v=d.length;pi.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(a,u,d)=>"<"+u+d.replace(/="([^"]*)"/g,"='$1'")+">"),Nqt=i=>{const{text:a,metadata:u}=Iqt(i),{displayMode:d,title:p,config:v={}}=u;return d&&(v.gantt||(v.gantt={}),v.gantt.displayMode=d),{title:p,config:v,text:a}},Pqt=i=>{const a=So.detectInit(i)??{},u=So.detectDirective(i,"wrap");return Array.isArray(u)?a.wrap=u.some(({type:d})=>{}):(u==null?void 0:u.type)==="wrap"&&(a.wrap=!0),{text:ejt(i),directive:a}};function oze(i){const a=Oqt(i),u=Nqt(a),d=Pqt(u.text),p=cR(u.config,d.directive);return i=q$t(d.text),{code:i,title:u.title,config:p}}const Bqt=5e4,Fqt="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",Rqt="sandbox",jqt="loose",$qt="http://www.w3.org/2000/svg",zqt="http://www.w3.org/1999/xlink",qqt="http://www.w3.org/1999/xhtml",Hqt="100%",Uqt="100%",Vqt="border:0;margin:0;",Gqt="margin:0",Kqt="allow-top-navigation-by-user-activation allow-popups",Wqt='The "iframe" tag is not supported by your browser.',Yqt=["foreignobject"],Xqt=["dominant-baseline"];function cze(i){const a=oze(i);return ZX(),Pjt(a.config??{}),a}async function Qqt(i,a){J2e(),i=cze(i).code;try{await ube(i)}catch(u){if(a!=null&&a.suppressErrors)return!1;throw u}return!0}const uze=(i,a,u=[])=>{const d=eje(`{ ${u.join(" !important; ")} !important; }`);return`.${i} ${a} ${d}`},Jqt=(i,a={})=>{var p;const u=new CSSStyleSheet;if(i.fontFamily!==void 0&&u.insertRule(`:root { --mermaid-font-family: ${i.fontFamily}}`,u.cssRules.length),i.altFontFamily!==void 0&&u.insertRule(`:root { --mermaid-alt-font-family: ${i.altFontFamily}}`,u.cssRules.length),!gR(a)){const E=i.htmlLabels||((p=i.flowchart)==null?void 0:p.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const _ in a){const A=a[_];gR(A.styles)||E.forEach(P=>{u.insertRule(uze(A.id,P,A.styles),u.cssRules.length)}),gR(A.textStyles)||u.insertRule(uze(A.id,"tspan",A.textStyles),u.cssRules.length)}}let d="";if(i.themeCSS!==void 0)if(typeof u.replaceSync=="function"){const v=new CSSStyleSheet;v.replaceSync(i.themeCSS),d=k$e(v)+` +`}else d+=`${i.themeCSS} +`;return d+k$e(u)},Zqt=(i,a)=>G2e(Ajt(`${i}{${a}}`),Djt([function(d,p,v,b){if(d.type==="rule"&&Array.isArray(d.props)){if(d.parent&&d.parent.type===$2e)return;d.props=d.props.map(y=>y.startsWith(i)?y:`${i} ${y}`)}else d.type.startsWith("@")&&([...[bjt,vjt,Vje,"@scope","@container","@starting-style"],$2e].includes(d.type)||(Xe.warn(`Removing unsupported at-rule ${d.type} from CSS`),d.type=j2e))},Mjt])),eHt=(i,a,u,d)=>{const p=Jqt(i,u),v=s$t(a,p,i.themeVariables);return Zqt(d,v)},tHt=(i="",a,u)=>{let d=i;return!u&&!a&&(d=d.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),d=uR(d),d=d.replace(/
/g,"
"),d},nHt=(i="",a)=>{var p,v;const u=(v=(p=a==null?void 0:a.viewBox)==null?void 0:p.baseVal)!=null&&v.height?a.viewBox.baseVal.height+"px":Uqt,d=btoa(''+i+"");return``},lze=(i,a,u,d,p)=>{const v=i.append("div");v.attr("id",u),d&&v.attr("style",d);const b=v.append("svg").attr("id",a).attr("width","100%").attr("xmlns",$qt);return p&&b.attr("xmlns:xlink",p),b.append("g"),i};function hze(i,a){return i.append("iframe").attr("id",a).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const rHt=(i,a,u,d)=>{var p,v,b;(p=i.getElementById(a))==null||p.remove(),(v=i.getElementById(u))==null||v.remove(),(b=i.getElementById(d))==null||b.remove()},iHt=async function(i,a,u){var U,Be,Pe,je,Ie,Se;J2e();const d=cze(a);a=d.code;const p=mh();Xe.debug(p),a.length>((p==null?void 0:p.maxTextSize)??Bqt)&&(a=Fqt);const v=`#${i}`,b="i"+i,y="#"+b,E="d"+i,_="#"+E;let A=Dr(document.body);const P=p.securityLevel===Rqt,R=p.securityLevel===jqt,B=p.fontFamily;if(u!==void 0){if(u&&(u.innerHTML=""),P){const Ce=hze(Dr(u),b);A=Dr(Ce.nodes()[0].contentDocument.body),A.node().style.margin="0"}else A=Dr(u);lze(A,i,E,`font-family: ${B}`,zqt)}else{if(rHt(document,i,E,b),P){const Ce=hze(Dr(document.body),b);A=Dr(Ce.nodes()[0].contentDocument.body),A.node().style.margin="0"}else A=Dr("body");lze(A,i,E)}let j,W;try{j=await ube(a,{title:d.title})}catch(Ce){j=new O$e("error"),W=Ce}const ee=A.select(_).node(),ie=j.type,oe=ee.firstChild,be=oe.firstChild,ge=(Be=(U=j.renderer).getClasses)==null?void 0:Be.call(U,a,j),ae=eHt(p,ie,ge,v),ne=document.createElement("style");ne.innerHTML=ae,oe.insertBefore(ne,be);try{await j.renderer.draw(a,i,Jje,j)}catch(Ce){throw f$t.draw(a,i,Jje),Ce}const se=A.select(`${_} svg`),de=(je=(Pe=j.db).getAccTitle)==null?void 0:je.call(Pe),X=(Se=(Ie=j.db).getAccDescription)==null?void 0:Se.call(Ie);aHt(ie,se,de,X),A.select(`[id="${i}"]`).selectAll("foreignobject > *").attr("xmlns",qqt);let pe=A.select(_).node().innerHTML;if(Xe.debug("config.arrowMarkerAbsolute",p.arrowMarkerAbsolute),pe=tHt(pe,P,h1(p.arrowMarkerAbsolute)),P){const Ce=A.select(_+" svg").node();pe=nHt(pe,Ce)}else R||(pe=pD.sanitize(pe,{ADD_TAGS:Yqt,ADD_ATTR:Xqt,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(y$t(),W)throw W;const xe=Dr(P?y:_).node();return xe&&"remove"in xe&&xe.remove(),{svg:pe,bindFunctions:j.db.bindFunctions}};function sHt(i={}){var u;i!=null&&i.fontFamily&&!((u=i.themeVariables)!=null&&u.fontFamily)&&(i.themeVariables||(i.themeVariables={}),i.themeVariables.fontFamily=i.fontFamily),Ojt(i),i!=null&&i.theme&&i.theme in C7?i.themeVariables=C7[i.theme].getThemeVariables(i.themeVariables):i&&(i.themeVariables=C7.default.getThemeVariables(i.themeVariables));const a=typeof i=="object"?Ijt(i):e$e();Spe(a.logLevel),J2e()}const ube=(i,a={})=>{const{code:u}=oze(i);return w$t(u,a)};function aHt(i,a,u,d){$$t(a,i),z$t(a,u,d,a.attr("id"))}const jC=Object.freeze({render:iHt,parse:Qqt,getDiagramFromText:ube,initialize:sHt,getConfig:mh,setConfig:t$e,getSiteConfig:e$e,updateSiteConfig:Njt,reset:()=>{ZX()},globalReset:()=>{ZX(_D)},defaultConfig:_D});Spe(mh().logLevel),ZX(mh());const oHt=async()=>{Xe.debug("Loading registered diagrams");const a=(await Promise.allSettled(Object.entries(mD).map(async([u,{detector:d,loader:p}])=>{if(p)try{Q2e(u)}catch{try{const{diagram:b,id:y}=await p();nQ(y,b,d)}catch(b){throw Xe.error(`Failed to load external diagram with key ${u}. Removing from detectors.`),delete mD[u],b}}}))).filter(u=>u.status==="rejected");if(a.length>0){Xe.error(`Failed to load ${a.length} external diagrams`);for(const u of a)Xe.error(u);throw new Error(`Failed to load ${a.length} external diagrams`)}},cHt=(i,a,u)=>{Xe.warn(i),qje(i)?(u&&u(i.str,i.hash),a.push({...i,message:i.str,error:i})):(u&&u(i),i instanceof Error&&a.push({str:i.message,message:i.message,hash:i.name,error:i}))},fze=async function(i={querySelector:".mermaid"}){try{await uHt(i)}catch(a){if(qje(a)&&Xe.error(a.str),bm.parseError&&bm.parseError(a),!i.suppressErrors)throw Xe.error("Use the suppressErrors option to suppress these errors"),a}},uHt=async function({postRenderCallback:i,querySelector:a,nodes:u}={querySelector:".mermaid"}){const d=jC.getConfig();Xe.debug(`${i?"":"No "}Callback function found`);let p;if(u)p=u;else if(a)p=document.querySelectorAll(a);else throw new Error("Nodes and querySelector are both undefined");Xe.debug(`Found ${p.length} diagrams`),(d==null?void 0:d.startOnLoad)!==void 0&&(Xe.debug("Start On Load: "+(d==null?void 0:d.startOnLoad)),jC.updateSiteConfig({startOnLoad:d==null?void 0:d.startOnLoad}));const v=new So.InitIDGenerator(d.deterministicIds,d.deterministicIDSeed);let b;const y=[];for(const E of Array.from(p)){Xe.info("Rendering diagram: "+E.id);/*! Check if previously processed */if(E.getAttribute("data-processed"))continue;E.setAttribute("data-processed","true");const _=`mermaid-${v.next()}`;b=E.innerHTML,b=ZM(So.entityDecode(b)).trim().replace(//gi,"
");const A=So.detectInit(b);A&&Xe.debug("Detected early reinit: ",A);try{const{svg:P,bindFunctions:R}=await bze(_,b,E);E.innerHTML=P,i&&await i(_),R&&R(E)}catch(P){cHt(P,y,bm.parseError)}}if(y.length>0)throw y[0]},dze=function(i){jC.initialize(i)},lHt=async function(i,a,u){Xe.warn("mermaid.init is deprecated. Please use run instead."),i&&dze(i);const d={postRenderCallback:u,querySelector:".mermaid"};typeof a=="string"?d.querySelector=a:a&&(a instanceof HTMLElement?d.nodes=[a]:d.nodes=a),await fze(d)},hHt=async(i,{lazyLoad:a=!0}={})=>{rje(...i),a===!1&&await oHt()},gze=function(){if(bm.startOnLoad){const{startOnLoad:i}=jC.getConfig();i&&bm.run().catch(a=>Xe.error("Mermaid failed to initialize",a))}};if(typeof document<"u"){/*! + * Wait for document loaded before starting the execution + */window.addEventListener("load",gze,!1)}const fHt=function(i){bm.parseError=i},oQ=[];let lbe=!1;const pze=async()=>{if(!lbe){for(lbe=!0;oQ.length>0;){const i=oQ.shift();if(i)try{await i()}catch(a){Xe.error("Error executing queue",a)}}lbe=!1}},dHt=async(i,a)=>new Promise((u,d)=>{const p=()=>new Promise((v,b)=>{jC.parse(i,a).then(y=>{v(y),u(y)},y=>{var E;Xe.error("Error parsing",y),(E=bm.parseError)==null||E.call(bm,y),b(y),d(y)})});oQ.push(p),pze().catch(d)}),bze=(i,a,u)=>new Promise((d,p)=>{const v=()=>new Promise((b,y)=>{jC.render(i,a,u).then(E=>{b(E),d(E)},E=>{var _;Xe.error("Error parsing",E),(_=bm.parseError)==null||_.call(bm,E),y(E),p(E)})});oQ.push(v),pze().catch(p)}),bm={startOnLoad:!0,mermaidAPI:jC,parse:dHt,render:bze,init:lHt,run:fze,registerExternalDiagrams:hHt,initialize:dze,parseError:void 0,contentLoaded:gze,setParseErrorHandler:fHt,detectType:IX};class ki extends Error{constructor(a,u){var d="KaTeX parse error: "+a,p,v,b=u&&u.loc;if(b&&b.start<=b.end){var y=b.lexer.input;p=b.start,v=b.end,p===y.length?d+=" at end of input: ":d+=" at position "+(p+1)+": ";var E=y.slice(p,v).replace(/[^]/g,"$&̲"),_;p>15?_="…"+y.slice(p-15,p):_=y.slice(0,p);var A;v+15i.replace(gHt,"-$1").toLowerCase(),pHt={"&":"&",">":">","<":"<",'"':""","'":"'"},bHt=/[&><"']/g,zg=i=>String(i).replace(bHt,a=>pHt[a]),cQ=i=>i.type==="ordgroup"||i.type==="color"?i.body.length===1?cQ(i.body[0]):i:i.type==="font"?cQ(i.body):i,mHt=new Set(["mathord","textord","atom"]),D7=i=>mHt.has(cQ(i).type),vHt=i=>{var a=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(i);return a?a[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(a[1])?null:a[1].toLowerCase():"_relative"},uQ={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:i=>"#"+i},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(i,a)=>(a.push(i),a)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:i=>Math.max(0,i),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:i=>Math.max(0,i),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:i=>Math.max(0,i),cli:"-e, --max-expand ",cliProcessor:i=>i==="Infinity"?1/0:parseInt(i)},globalGroup:{type:"boolean",cli:!1}};function wHt(i){if("default"in i)return i.default;var a=i.type,u=Array.isArray(a)?a[0]:a;if(typeof u!="string")return u.enum[0];switch(u){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class fbe{constructor(a){a===void 0&&(a={}),a=a||{};for(var u of Object.keys(uQ)){var d=uQ[u],p=a[u];this[u]=p!==void 0?d.processor?d.processor(p):p:wHt(d)}}reportNonstrict(a,u,d){var p=this.strict;if(typeof p=="function"&&(p=p(a,u,d)),!(!p||p==="ignore")){if(p===!0||p==="error")throw new ki("LaTeX-incompatible input and strict mode is set to 'error': "+(u+" ["+a+"]"),d);p==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(u+" ["+a+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+p+"': "+u+" ["+a+"]"))}}useStrictBehavior(a,u,d){var p=this.strict;if(typeof p=="function")try{p=p(a,u,d)}catch{p="error"}return!p||p==="ignore"?!1:p===!0||p==="error"?!0:p==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(u+" ["+a+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+p+"': "+u+" ["+a+"]")),!1)}isTrusted(a){if("url"in a&&a.url&&!a.protocol){var u=vHt(a.url);if(u==null)return!1;a.protocol=u}var d=typeof this.trust=="function"?this.trust(a):this.trust;return!!d}}class E9{constructor(a,u,d){this.id=a,this.size=u,this.cramped=d}sup(){return W4[yHt[this.id]]}sub(){return W4[xHt[this.id]]}fracNum(){return W4[kHt[this.id]]}fracDen(){return W4[THt[this.id]]}cramp(){return W4[EHt[this.id]]}text(){return W4[CHt[this.id]]}isTight(){return this.size>=2}}var dbe=0,lQ=1,PD=2,I7=3,bR=4,Uv=5,BD=6,Pp=7,W4=[new E9(dbe,0,!1),new E9(lQ,0,!0),new E9(PD,1,!1),new E9(I7,1,!0),new E9(bR,2,!1),new E9(Uv,2,!0),new E9(BD,3,!1),new E9(Pp,3,!0)],yHt=[bR,Uv,bR,Uv,BD,Pp,BD,Pp],xHt=[Uv,Uv,Uv,Uv,Pp,Pp,Pp,Pp],kHt=[PD,I7,bR,Uv,BD,Pp,BD,Pp],THt=[I7,I7,Uv,Uv,Pp,Pp,Pp,Pp],EHt=[lQ,lQ,I7,I7,Uv,Uv,Pp,Pp],CHt=[dbe,lQ,PD,I7,PD,I7,PD,I7],bo={DISPLAY:W4[dbe],TEXT:W4[PD],SCRIPT:W4[bR],SCRIPTSCRIPT:W4[BD]},gbe=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function SHt(i){for(var a=0;a=p[0]&&i<=p[1])return u.name}return null}var hQ=[];gbe.forEach(i=>i.blocks.forEach(a=>hQ.push(...a)));function mze(i){for(var a=0;a=hQ[a]&&i<=hQ[a+1])return!0;return!1}var f1=i=>i+" "+i,FD=80,_Ht=function(a,u){return"M95,"+(622+a+u)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+a/2.075+" -"+a+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+a)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+a)+" "+u+"h400000v"+(40+a)+"h-400000z"},AHt=function(a,u){return"M263,"+(601+a+u)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+a/2.084+" -"+a+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+a)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+a)+" "+u+"h400000v"+(40+a)+"h-400000z"},LHt=function(a,u){return"M983 "+(10+a+u)+` +l`+a/3.13+" -"+a+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+a)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+a)+" "+u+"h400000v"+(40+a)+"h-400000z"},MHt=function(a,u){return"M424,"+(2398+a+u)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+a/4.223+" -"+a+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+a)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+a)+" "+u+` +h400000v`+(40+a)+"h-400000z"},DHt=function(a,u){return"M473,"+(2713+a+u)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+a/5.298+" -"+a+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+a)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+a)+" "+u+"h400000v"+(40+a)+"H1017.7z"},IHt=function(a){var u=a/2;return"M400000 "+a+" H0 L"+u+" 0 l65 45 L145 "+(a-80)+" H400000z"},OHt=function(a,u,d){var p=d-54-u-a;return"M702 "+(a+u)+"H400000"+(40+a)+` +H742v`+p+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+u+"H400000v"+(40+a)+"H742z"},NHt=function(a,u,d){u=1e3*u;var p="";switch(a){case"sqrtMain":p=_Ht(u,FD);break;case"sqrtSize1":p=AHt(u,FD);break;case"sqrtSize2":p=LHt(u,FD);break;case"sqrtSize3":p=MHt(u,FD);break;case"sqrtSize4":p=DHt(u,FD);break;case"sqrtTall":p=OHt(u,FD,d)}return p},PHt=function(a,u){switch(a){case"⎜":return f1("M291 0 H417 V"+u+" H291z");case"∣":return f1("M145 0 H188 V"+u+" H145z");case"∥":return f1("M145 0 H188 V"+u+" H145z")+f1("M367 0 H410 V"+u+" H367z");case"⎟":return f1("M457 0 H583 V"+u+" H457z");case"⎢":return f1("M319 0 H403 V"+u+" H319z");case"⎥":return f1("M263 0 H347 V"+u+" H263z");case"⎪":return f1("M384 0 H504 V"+u+" H384z");case"⏐":return f1("M312 0 H355 V"+u+" H312z");case"‖":return f1("M257 0 H300 V"+u+" H257z")+f1("M478 0 H521 V"+u+" H478z");default:return""}},vze={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:f1("M40 281 V428 H0 V94 H40 V241 H400000 v40z"),leftbracketunder:f1("M0 0 h120 V290 H399995 v120 H0z"),leftbracketover:f1("M0 440 h120 V150 H399995 v-120 H0z"),leftmapsto:f1("M40 281 V448H0V74H40V241H400000v40z"),leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:f1("M0 50 h400000 v40H0z m0 194h40000v40H0z"),midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:f1("M399960 241 V94 h40 V428 h-40 V281 H0 v-40z"),rightbracketunder:f1("M399995 0 h-120 V290 H0 v120 H400000z"),rightbracketover:f1("M399995 440 h-120 V150 H0 v-120 H399995z"),rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},BHt=function(a,u){switch(a){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+u+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+u+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+u+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+u+" v1759 h84z";case"vert":return"M145 15 v585 v"+u+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-u+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+u+" v585 h43z";case"doublevert":return"M145 15 v585 v"+u+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-u+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+u+` v585 h43z +M367 15 v585 v`+u+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-u+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+u+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+u+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+u+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+u+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+u+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+u+` v602 h84z +M403 1759 V0 H319 V1759 v`+u+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+u+` v602 h84z +M347 1759 V0 h-84 V1759 v`+u+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(u+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(u+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(u+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(u+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};class RD{constructor(a){this.children=a,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(a){return this.classes.includes(a)}toNode(){for(var a=document.createDocumentFragment(),u=0;uu.toText();return this.children.map(a).join("")}}var pbe={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},FHt={ex:!0,em:!0,mu:!0},wze=function(a){return typeof a!="string"&&(a=a.unit),a in pbe||a in FHt||a==="ex"},Uh=function(a,u){var d;if(a.unit in pbe)d=pbe[a.unit]/u.fontMetrics().ptPerEm/u.sizeMultiplier;else if(a.unit==="mu")d=u.fontMetrics().cssEmPerMu;else{var p;if(u.style.isTight()?p=u.havingStyle(u.style.text()):p=u,a.unit==="ex")d=p.fontMetrics().xHeight;else if(a.unit==="em")d=p.fontMetrics().quad;else throw new ki("Invalid unit: '"+a.unit+"'");p!==u&&(d*=p.sizeMultiplier/u.sizeMultiplier)}return Math.min(a.number*d,u.maxSize)},Oi=function(a){return+a.toFixed(4)+"em"},C9=function(a){return a.filter(u=>u).join(" ")},yze=function(a,u,d){if(this.classes=a||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=d||{},u){u.style.isTight()&&this.classes.push("mtight");var p=u.getColor();p&&(this.style.color=p)}},xze=function(a){var u=document.createElement(a);u.className=C9(this.classes);for(var d of Object.keys(this.style))u.style[d]=this.style[d];for(var p of Object.keys(this.attributes))u.setAttribute(p,this.attributes[p]);for(var v=0;v/=\x00-\x1f]/,kze=function(a){var u="<"+a;this.classes.length&&(u+=' class="'+zg(C9(this.classes))+'"');var d="";for(var p of Object.keys(this.style))d+=hbe(p)+":"+this.style[p]+";";d&&(u+=' style="'+zg(d)+'"');for(var v of Object.keys(this.attributes)){if(RHt.test(v))throw new ki("Invalid attribute name '"+v+"'");u+=" "+v+'="'+zg(this.attributes[v])+'"'}u+=">";for(var b=0;b",u};class jD{constructor(a,u,d,p){yze.call(this,a,d,p),this.children=u||[]}setAttribute(a,u){this.attributes[a]=u}hasClass(a){return this.classes.includes(a)}toNode(){return xze.call(this,"span")}toMarkup(){return kze.call(this,"span")}}class fQ{constructor(a,u,d,p){yze.call(this,u,p),this.children=d||[],this.setAttribute("href",a)}setAttribute(a,u){this.attributes[a]=u}hasClass(a){return this.classes.includes(a)}toNode(){return xze.call(this,"a")}toMarkup(){return kze.call(this,"a")}}class jHt{constructor(a,u,d){this.alt=u,this.src=a,this.classes=["mord"],this.height=0,this.depth=0,this.maxFontSize=0,this.style=d}hasClass(a){return this.classes.includes(a)}toNode(){var a=document.createElement("img");a.src=this.src,a.alt=this.alt,a.className="mord";for(var u of Object.keys(this.style))a.style[u]=this.style[u];return a}toMarkup(){var a=''+zg(this.alt)+'0&&(u=document.createElement("span"),u.style.marginRight=Oi(this.italic)),this.classes.length>0&&(u=u||document.createElement("span"),u.className=C9(this.classes));for(var d of Object.keys(this.style))u=u||document.createElement("span"),u.style[d]=this.style[d];return u?(u.appendChild(a),u):a}toMarkup(){var a=!1,u="0&&(d+="margin-right:"+Oi(this.italic)+";");for(var p of Object.keys(this.style))d+=hbe(p)+":"+this.style[p]+";";d&&(a=!0,u+=' style="'+zg(d)+'"');var v=zg(this.text);return a?(u+=">",u+=v,u+="",u):v}}class O7{constructor(a,u){this.children=a||[],this.attributes=u||{}}toNode(){var a="http://www.w3.org/2000/svg",u=document.createElementNS(a,"svg");for(var d of Object.keys(this.attributes))u.setAttribute(d,this.attributes[d]);for(var p=0;p':''}}class bbe{constructor(a){this.attributes=a||{}}toNode(){var a="http://www.w3.org/2000/svg",u=document.createElementNS(a,"line");for(var d of Object.keys(this.attributes))u.setAttribute(d,this.attributes[d]);return u}toMarkup(){var a=" but got "+String(i)+".")}var HHt=i=>i instanceof jD||i instanceof fQ||i instanceof RD,Y4={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},dQ={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Tze={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function Eze(i,a){Y4[i]=a}function mbe(i,a,u){if(!Y4[a])throw new Error("Font metrics not found for font: "+a+".");var d=i.charCodeAt(0),p=Y4[a][d];if(!p&&i[0]in Tze&&(d=Tze[i[0]].charCodeAt(0),p=Y4[a][d]),!p&&u==="text"&&mze(d)&&(p=Y4[a][77]),p)return{depth:p[0],height:p[1],italic:p[2],skew:p[3],width:p[4]}}var vbe={};function UHt(i){var a;if(i>=5?a=0:i>=3?a=1:a=2,!vbe[a]){var u=vbe[a]={cssEmPerMu:dQ.quad[a]/18};for(var d in dQ)dQ.hasOwnProperty(d)&&(u[d]=dQ[d][a])}return vbe[a]}var VHt={bin:1,close:1,inner:1,open:1,punct:1,rel:1},GHt={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},vh={math:{},text:{}};function we(i,a,u,d,p,v){vh[i][p]={font:a,group:u,replace:d},v&&d&&(vh[i][d]=vh[i][p])}var Ae="math",ti="text",He="main",jt="ams",wh="accent-token",ls="bin",Bp="close",$D="inner",Sa="mathord",N0="op-token",vm="open",mR="punct",Ht="rel",N7="spacing",bn="textord";we(Ae,He,Ht,"≡","\\equiv",!0),we(Ae,He,Ht,"≺","\\prec",!0),we(Ae,He,Ht,"≻","\\succ",!0),we(Ae,He,Ht,"∼","\\sim",!0),we(Ae,He,Ht,"⊥","\\perp"),we(Ae,He,Ht,"⪯","\\preceq",!0),we(Ae,He,Ht,"⪰","\\succeq",!0),we(Ae,He,Ht,"≃","\\simeq",!0),we(Ae,He,Ht,"∣","\\mid",!0),we(Ae,He,Ht,"≪","\\ll",!0),we(Ae,He,Ht,"≫","\\gg",!0),we(Ae,He,Ht,"≍","\\asymp",!0),we(Ae,He,Ht,"∥","\\parallel"),we(Ae,He,Ht,"⋈","\\bowtie",!0),we(Ae,He,Ht,"⌣","\\smile",!0),we(Ae,He,Ht,"⊑","\\sqsubseteq",!0),we(Ae,He,Ht,"⊒","\\sqsupseteq",!0),we(Ae,He,Ht,"≐","\\doteq",!0),we(Ae,He,Ht,"⌢","\\frown",!0),we(Ae,He,Ht,"∋","\\ni",!0),we(Ae,He,Ht,"∝","\\propto",!0),we(Ae,He,Ht,"⊢","\\vdash",!0),we(Ae,He,Ht,"⊣","\\dashv",!0),we(Ae,He,Ht,"∋","\\owns"),we(Ae,He,mR,".","\\ldotp"),we(Ae,He,mR,"⋅","\\cdotp"),we(Ae,He,mR,"⋅","·"),we(ti,He,bn,"⋅","·"),we(Ae,He,bn,"#","\\#"),we(ti,He,bn,"#","\\#"),we(Ae,He,bn,"&","\\&"),we(ti,He,bn,"&","\\&"),we(Ae,He,bn,"ℵ","\\aleph",!0),we(Ae,He,bn,"∀","\\forall",!0),we(Ae,He,bn,"ℏ","\\hbar",!0),we(Ae,He,bn,"∃","\\exists",!0),we(Ae,He,bn,"∇","\\nabla",!0),we(Ae,He,bn,"♭","\\flat",!0),we(Ae,He,bn,"ℓ","\\ell",!0),we(Ae,He,bn,"♮","\\natural",!0),we(Ae,He,bn,"♣","\\clubsuit",!0),we(Ae,He,bn,"℘","\\wp",!0),we(Ae,He,bn,"♯","\\sharp",!0),we(Ae,He,bn,"♢","\\diamondsuit",!0),we(Ae,He,bn,"ℜ","\\Re",!0),we(Ae,He,bn,"♡","\\heartsuit",!0),we(Ae,He,bn,"ℑ","\\Im",!0),we(Ae,He,bn,"♠","\\spadesuit",!0),we(Ae,He,bn,"§","\\S",!0),we(ti,He,bn,"§","\\S"),we(Ae,He,bn,"¶","\\P",!0),we(ti,He,bn,"¶","\\P"),we(Ae,He,bn,"†","\\dag"),we(ti,He,bn,"†","\\dag"),we(ti,He,bn,"†","\\textdagger"),we(Ae,He,bn,"‡","\\ddag"),we(ti,He,bn,"‡","\\ddag"),we(ti,He,bn,"‡","\\textdaggerdbl"),we(Ae,He,Bp,"⎱","\\rmoustache",!0),we(Ae,He,vm,"⎰","\\lmoustache",!0),we(Ae,He,Bp,"⟯","\\rgroup",!0),we(Ae,He,vm,"⟮","\\lgroup",!0),we(Ae,He,ls,"∓","\\mp",!0),we(Ae,He,ls,"⊖","\\ominus",!0),we(Ae,He,ls,"⊎","\\uplus",!0),we(Ae,He,ls,"⊓","\\sqcap",!0),we(Ae,He,ls,"∗","\\ast"),we(Ae,He,ls,"⊔","\\sqcup",!0),we(Ae,He,ls,"◯","\\bigcirc",!0),we(Ae,He,ls,"∙","\\bullet",!0),we(Ae,He,ls,"‡","\\ddagger"),we(Ae,He,ls,"≀","\\wr",!0),we(Ae,He,ls,"⨿","\\amalg"),we(Ae,He,ls,"&","\\And"),we(Ae,He,Ht,"⟵","\\longleftarrow",!0),we(Ae,He,Ht,"⇐","\\Leftarrow",!0),we(Ae,He,Ht,"⟸","\\Longleftarrow",!0),we(Ae,He,Ht,"⟶","\\longrightarrow",!0),we(Ae,He,Ht,"⇒","\\Rightarrow",!0),we(Ae,He,Ht,"⟹","\\Longrightarrow",!0),we(Ae,He,Ht,"↔","\\leftrightarrow",!0),we(Ae,He,Ht,"⟷","\\longleftrightarrow",!0),we(Ae,He,Ht,"⇔","\\Leftrightarrow",!0),we(Ae,He,Ht,"⟺","\\Longleftrightarrow",!0),we(Ae,He,Ht,"↦","\\mapsto",!0),we(Ae,He,Ht,"⟼","\\longmapsto",!0),we(Ae,He,Ht,"↗","\\nearrow",!0),we(Ae,He,Ht,"↩","\\hookleftarrow",!0),we(Ae,He,Ht,"↪","\\hookrightarrow",!0),we(Ae,He,Ht,"↘","\\searrow",!0),we(Ae,He,Ht,"↼","\\leftharpoonup",!0),we(Ae,He,Ht,"⇀","\\rightharpoonup",!0),we(Ae,He,Ht,"↙","\\swarrow",!0),we(Ae,He,Ht,"↽","\\leftharpoondown",!0),we(Ae,He,Ht,"⇁","\\rightharpoondown",!0),we(Ae,He,Ht,"↖","\\nwarrow",!0),we(Ae,He,Ht,"⇌","\\rightleftharpoons",!0),we(Ae,jt,Ht,"≮","\\nless",!0),we(Ae,jt,Ht,"","\\@nleqslant"),we(Ae,jt,Ht,"","\\@nleqq"),we(Ae,jt,Ht,"⪇","\\lneq",!0),we(Ae,jt,Ht,"≨","\\lneqq",!0),we(Ae,jt,Ht,"","\\@lvertneqq"),we(Ae,jt,Ht,"⋦","\\lnsim",!0),we(Ae,jt,Ht,"⪉","\\lnapprox",!0),we(Ae,jt,Ht,"⊀","\\nprec",!0),we(Ae,jt,Ht,"⋠","\\npreceq",!0),we(Ae,jt,Ht,"⋨","\\precnsim",!0),we(Ae,jt,Ht,"⪹","\\precnapprox",!0),we(Ae,jt,Ht,"≁","\\nsim",!0),we(Ae,jt,Ht,"","\\@nshortmid"),we(Ae,jt,Ht,"∤","\\nmid",!0),we(Ae,jt,Ht,"⊬","\\nvdash",!0),we(Ae,jt,Ht,"⊭","\\nvDash",!0),we(Ae,jt,Ht,"⋪","\\ntriangleleft"),we(Ae,jt,Ht,"⋬","\\ntrianglelefteq",!0),we(Ae,jt,Ht,"⊊","\\subsetneq",!0),we(Ae,jt,Ht,"","\\@varsubsetneq"),we(Ae,jt,Ht,"⫋","\\subsetneqq",!0),we(Ae,jt,Ht,"","\\@varsubsetneqq"),we(Ae,jt,Ht,"≯","\\ngtr",!0),we(Ae,jt,Ht,"","\\@ngeqslant"),we(Ae,jt,Ht,"","\\@ngeqq"),we(Ae,jt,Ht,"⪈","\\gneq",!0),we(Ae,jt,Ht,"≩","\\gneqq",!0),we(Ae,jt,Ht,"","\\@gvertneqq"),we(Ae,jt,Ht,"⋧","\\gnsim",!0),we(Ae,jt,Ht,"⪊","\\gnapprox",!0),we(Ae,jt,Ht,"⊁","\\nsucc",!0),we(Ae,jt,Ht,"⋡","\\nsucceq",!0),we(Ae,jt,Ht,"⋩","\\succnsim",!0),we(Ae,jt,Ht,"⪺","\\succnapprox",!0),we(Ae,jt,Ht,"≆","\\ncong",!0),we(Ae,jt,Ht,"","\\@nshortparallel"),we(Ae,jt,Ht,"∦","\\nparallel",!0),we(Ae,jt,Ht,"⊯","\\nVDash",!0),we(Ae,jt,Ht,"⋫","\\ntriangleright"),we(Ae,jt,Ht,"⋭","\\ntrianglerighteq",!0),we(Ae,jt,Ht,"","\\@nsupseteqq"),we(Ae,jt,Ht,"⊋","\\supsetneq",!0),we(Ae,jt,Ht,"","\\@varsupsetneq"),we(Ae,jt,Ht,"⫌","\\supsetneqq",!0),we(Ae,jt,Ht,"","\\@varsupsetneqq"),we(Ae,jt,Ht,"⊮","\\nVdash",!0),we(Ae,jt,Ht,"⪵","\\precneqq",!0),we(Ae,jt,Ht,"⪶","\\succneqq",!0),we(Ae,jt,Ht,"","\\@nsubseteqq"),we(Ae,jt,ls,"⊴","\\unlhd"),we(Ae,jt,ls,"⊵","\\unrhd"),we(Ae,jt,Ht,"↚","\\nleftarrow",!0),we(Ae,jt,Ht,"↛","\\nrightarrow",!0),we(Ae,jt,Ht,"⇍","\\nLeftarrow",!0),we(Ae,jt,Ht,"⇏","\\nRightarrow",!0),we(Ae,jt,Ht,"↮","\\nleftrightarrow",!0),we(Ae,jt,Ht,"⇎","\\nLeftrightarrow",!0),we(Ae,jt,Ht,"△","\\vartriangle"),we(Ae,jt,bn,"ℏ","\\hslash"),we(Ae,jt,bn,"▽","\\triangledown"),we(Ae,jt,bn,"◊","\\lozenge"),we(Ae,jt,bn,"Ⓢ","\\circledS"),we(Ae,jt,bn,"®","\\circledR"),we(ti,jt,bn,"®","\\circledR"),we(Ae,jt,bn,"∡","\\measuredangle",!0),we(Ae,jt,bn,"∄","\\nexists"),we(Ae,jt,bn,"℧","\\mho"),we(Ae,jt,bn,"Ⅎ","\\Finv",!0),we(Ae,jt,bn,"⅁","\\Game",!0),we(Ae,jt,bn,"‵","\\backprime"),we(Ae,jt,bn,"▲","\\blacktriangle"),we(Ae,jt,bn,"▼","\\blacktriangledown"),we(Ae,jt,bn,"■","\\blacksquare"),we(Ae,jt,bn,"⧫","\\blacklozenge"),we(Ae,jt,bn,"★","\\bigstar"),we(Ae,jt,bn,"∢","\\sphericalangle",!0),we(Ae,jt,bn,"∁","\\complement",!0),we(Ae,jt,bn,"ð","\\eth",!0),we(ti,He,bn,"ð","ð"),we(Ae,jt,bn,"╱","\\diagup"),we(Ae,jt,bn,"╲","\\diagdown"),we(Ae,jt,bn,"□","\\square"),we(Ae,jt,bn,"□","\\Box"),we(Ae,jt,bn,"◊","\\Diamond"),we(Ae,jt,bn,"¥","\\yen",!0),we(ti,jt,bn,"¥","\\yen",!0),we(Ae,jt,bn,"✓","\\checkmark",!0),we(ti,jt,bn,"✓","\\checkmark"),we(Ae,jt,bn,"ℶ","\\beth",!0),we(Ae,jt,bn,"ℸ","\\daleth",!0),we(Ae,jt,bn,"ℷ","\\gimel",!0),we(Ae,jt,bn,"ϝ","\\digamma",!0),we(Ae,jt,bn,"ϰ","\\varkappa"),we(Ae,jt,vm,"┌","\\@ulcorner",!0),we(Ae,jt,Bp,"┐","\\@urcorner",!0),we(Ae,jt,vm,"└","\\@llcorner",!0),we(Ae,jt,Bp,"┘","\\@lrcorner",!0),we(Ae,jt,Ht,"≦","\\leqq",!0),we(Ae,jt,Ht,"⩽","\\leqslant",!0),we(Ae,jt,Ht,"⪕","\\eqslantless",!0),we(Ae,jt,Ht,"≲","\\lesssim",!0),we(Ae,jt,Ht,"⪅","\\lessapprox",!0),we(Ae,jt,Ht,"≊","\\approxeq",!0),we(Ae,jt,ls,"⋖","\\lessdot"),we(Ae,jt,Ht,"⋘","\\lll",!0),we(Ae,jt,Ht,"≶","\\lessgtr",!0),we(Ae,jt,Ht,"⋚","\\lesseqgtr",!0),we(Ae,jt,Ht,"⪋","\\lesseqqgtr",!0),we(Ae,jt,Ht,"≑","\\doteqdot"),we(Ae,jt,Ht,"≓","\\risingdotseq",!0),we(Ae,jt,Ht,"≒","\\fallingdotseq",!0),we(Ae,jt,Ht,"∽","\\backsim",!0),we(Ae,jt,Ht,"⋍","\\backsimeq",!0),we(Ae,jt,Ht,"⫅","\\subseteqq",!0),we(Ae,jt,Ht,"⋐","\\Subset",!0),we(Ae,jt,Ht,"⊏","\\sqsubset",!0),we(Ae,jt,Ht,"≼","\\preccurlyeq",!0),we(Ae,jt,Ht,"⋞","\\curlyeqprec",!0),we(Ae,jt,Ht,"≾","\\precsim",!0),we(Ae,jt,Ht,"⪷","\\precapprox",!0),we(Ae,jt,Ht,"⊲","\\vartriangleleft"),we(Ae,jt,Ht,"⊴","\\trianglelefteq"),we(Ae,jt,Ht,"⊨","\\vDash",!0),we(Ae,jt,Ht,"⊪","\\Vvdash",!0),we(Ae,jt,Ht,"⌣","\\smallsmile"),we(Ae,jt,Ht,"⌢","\\smallfrown"),we(Ae,jt,Ht,"≏","\\bumpeq",!0),we(Ae,jt,Ht,"≎","\\Bumpeq",!0),we(Ae,jt,Ht,"≧","\\geqq",!0),we(Ae,jt,Ht,"⩾","\\geqslant",!0),we(Ae,jt,Ht,"⪖","\\eqslantgtr",!0),we(Ae,jt,Ht,"≳","\\gtrsim",!0),we(Ae,jt,Ht,"⪆","\\gtrapprox",!0),we(Ae,jt,ls,"⋗","\\gtrdot"),we(Ae,jt,Ht,"⋙","\\ggg",!0),we(Ae,jt,Ht,"≷","\\gtrless",!0),we(Ae,jt,Ht,"⋛","\\gtreqless",!0),we(Ae,jt,Ht,"⪌","\\gtreqqless",!0),we(Ae,jt,Ht,"≖","\\eqcirc",!0),we(Ae,jt,Ht,"≗","\\circeq",!0),we(Ae,jt,Ht,"≜","\\triangleq",!0),we(Ae,jt,Ht,"∼","\\thicksim"),we(Ae,jt,Ht,"≈","\\thickapprox"),we(Ae,jt,Ht,"⫆","\\supseteqq",!0),we(Ae,jt,Ht,"⋑","\\Supset",!0),we(Ae,jt,Ht,"⊐","\\sqsupset",!0),we(Ae,jt,Ht,"≽","\\succcurlyeq",!0),we(Ae,jt,Ht,"⋟","\\curlyeqsucc",!0),we(Ae,jt,Ht,"≿","\\succsim",!0),we(Ae,jt,Ht,"⪸","\\succapprox",!0),we(Ae,jt,Ht,"⊳","\\vartriangleright"),we(Ae,jt,Ht,"⊵","\\trianglerighteq"),we(Ae,jt,Ht,"⊩","\\Vdash",!0),we(Ae,jt,Ht,"∣","\\shortmid"),we(Ae,jt,Ht,"∥","\\shortparallel"),we(Ae,jt,Ht,"≬","\\between",!0),we(Ae,jt,Ht,"⋔","\\pitchfork",!0),we(Ae,jt,Ht,"∝","\\varpropto"),we(Ae,jt,Ht,"◀","\\blacktriangleleft"),we(Ae,jt,Ht,"∴","\\therefore",!0),we(Ae,jt,Ht,"∍","\\backepsilon"),we(Ae,jt,Ht,"▶","\\blacktriangleright"),we(Ae,jt,Ht,"∵","\\because",!0),we(Ae,jt,Ht,"⋘","\\llless"),we(Ae,jt,Ht,"⋙","\\gggtr"),we(Ae,jt,ls,"⊲","\\lhd"),we(Ae,jt,ls,"⊳","\\rhd"),we(Ae,jt,Ht,"≂","\\eqsim",!0),we(Ae,He,Ht,"⋈","\\Join"),we(Ae,jt,Ht,"≑","\\Doteq",!0),we(Ae,jt,ls,"∔","\\dotplus",!0),we(Ae,jt,ls,"∖","\\smallsetminus"),we(Ae,jt,ls,"⋒","\\Cap",!0),we(Ae,jt,ls,"⋓","\\Cup",!0),we(Ae,jt,ls,"⩞","\\doublebarwedge",!0),we(Ae,jt,ls,"⊟","\\boxminus",!0),we(Ae,jt,ls,"⊞","\\boxplus",!0),we(Ae,jt,ls,"⋇","\\divideontimes",!0),we(Ae,jt,ls,"⋉","\\ltimes",!0),we(Ae,jt,ls,"⋊","\\rtimes",!0),we(Ae,jt,ls,"⋋","\\leftthreetimes",!0),we(Ae,jt,ls,"⋌","\\rightthreetimes",!0),we(Ae,jt,ls,"⋏","\\curlywedge",!0),we(Ae,jt,ls,"⋎","\\curlyvee",!0),we(Ae,jt,ls,"⊝","\\circleddash",!0),we(Ae,jt,ls,"⊛","\\circledast",!0),we(Ae,jt,ls,"⋅","\\centerdot"),we(Ae,jt,ls,"⊺","\\intercal",!0),we(Ae,jt,ls,"⋒","\\doublecap"),we(Ae,jt,ls,"⋓","\\doublecup"),we(Ae,jt,ls,"⊠","\\boxtimes",!0),we(Ae,jt,Ht,"⇢","\\dashrightarrow",!0),we(Ae,jt,Ht,"⇠","\\dashleftarrow",!0),we(Ae,jt,Ht,"⇇","\\leftleftarrows",!0),we(Ae,jt,Ht,"⇆","\\leftrightarrows",!0),we(Ae,jt,Ht,"⇚","\\Lleftarrow",!0),we(Ae,jt,Ht,"↞","\\twoheadleftarrow",!0),we(Ae,jt,Ht,"↢","\\leftarrowtail",!0),we(Ae,jt,Ht,"↫","\\looparrowleft",!0),we(Ae,jt,Ht,"⇋","\\leftrightharpoons",!0),we(Ae,jt,Ht,"↶","\\curvearrowleft",!0),we(Ae,jt,Ht,"↺","\\circlearrowleft",!0),we(Ae,jt,Ht,"↰","\\Lsh",!0),we(Ae,jt,Ht,"⇈","\\upuparrows",!0),we(Ae,jt,Ht,"↿","\\upharpoonleft",!0),we(Ae,jt,Ht,"⇃","\\downharpoonleft",!0),we(Ae,He,Ht,"⊶","\\origof",!0),we(Ae,He,Ht,"⊷","\\imageof",!0),we(Ae,jt,Ht,"⊸","\\multimap",!0),we(Ae,jt,Ht,"↭","\\leftrightsquigarrow",!0),we(Ae,jt,Ht,"⇉","\\rightrightarrows",!0),we(Ae,jt,Ht,"⇄","\\rightleftarrows",!0),we(Ae,jt,Ht,"↠","\\twoheadrightarrow",!0),we(Ae,jt,Ht,"↣","\\rightarrowtail",!0),we(Ae,jt,Ht,"↬","\\looparrowright",!0),we(Ae,jt,Ht,"↷","\\curvearrowright",!0),we(Ae,jt,Ht,"↻","\\circlearrowright",!0),we(Ae,jt,Ht,"↱","\\Rsh",!0),we(Ae,jt,Ht,"⇊","\\downdownarrows",!0),we(Ae,jt,Ht,"↾","\\upharpoonright",!0),we(Ae,jt,Ht,"⇂","\\downharpoonright",!0),we(Ae,jt,Ht,"⇝","\\rightsquigarrow",!0),we(Ae,jt,Ht,"⇝","\\leadsto"),we(Ae,jt,Ht,"⇛","\\Rrightarrow",!0),we(Ae,jt,Ht,"↾","\\restriction"),we(Ae,He,bn,"‘","`"),we(Ae,He,bn,"$","\\$"),we(ti,He,bn,"$","\\$"),we(ti,He,bn,"$","\\textdollar"),we(Ae,He,bn,"%","\\%"),we(ti,He,bn,"%","\\%"),we(Ae,He,bn,"_","\\_"),we(ti,He,bn,"_","\\_"),we(ti,He,bn,"_","\\textunderscore"),we(Ae,He,bn,"∠","\\angle",!0),we(Ae,He,bn,"∞","\\infty",!0),we(Ae,He,bn,"′","\\prime"),we(Ae,He,bn,"△","\\triangle"),we(Ae,He,bn,"Γ","\\Gamma",!0),we(Ae,He,bn,"Δ","\\Delta",!0),we(Ae,He,bn,"Θ","\\Theta",!0),we(Ae,He,bn,"Λ","\\Lambda",!0),we(Ae,He,bn,"Ξ","\\Xi",!0),we(Ae,He,bn,"Π","\\Pi",!0),we(Ae,He,bn,"Σ","\\Sigma",!0),we(Ae,He,bn,"Υ","\\Upsilon",!0),we(Ae,He,bn,"Φ","\\Phi",!0),we(Ae,He,bn,"Ψ","\\Psi",!0),we(Ae,He,bn,"Ω","\\Omega",!0),we(Ae,He,bn,"A","Α"),we(Ae,He,bn,"B","Β"),we(Ae,He,bn,"E","Ε"),we(Ae,He,bn,"Z","Ζ"),we(Ae,He,bn,"H","Η"),we(Ae,He,bn,"I","Ι"),we(Ae,He,bn,"K","Κ"),we(Ae,He,bn,"M","Μ"),we(Ae,He,bn,"N","Ν"),we(Ae,He,bn,"O","Ο"),we(Ae,He,bn,"P","Ρ"),we(Ae,He,bn,"T","Τ"),we(Ae,He,bn,"X","Χ"),we(Ae,He,bn,"¬","\\neg",!0),we(Ae,He,bn,"¬","\\lnot"),we(Ae,He,bn,"⊤","\\top"),we(Ae,He,bn,"⊥","\\bot"),we(Ae,He,bn,"∅","\\emptyset"),we(Ae,jt,bn,"∅","\\varnothing"),we(Ae,He,Sa,"α","\\alpha",!0),we(Ae,He,Sa,"β","\\beta",!0),we(Ae,He,Sa,"γ","\\gamma",!0),we(Ae,He,Sa,"δ","\\delta",!0),we(Ae,He,Sa,"ϵ","\\epsilon",!0),we(Ae,He,Sa,"ζ","\\zeta",!0),we(Ae,He,Sa,"η","\\eta",!0),we(Ae,He,Sa,"θ","\\theta",!0),we(Ae,He,Sa,"ι","\\iota",!0),we(Ae,He,Sa,"κ","\\kappa",!0),we(Ae,He,Sa,"λ","\\lambda",!0),we(Ae,He,Sa,"μ","\\mu",!0),we(Ae,He,Sa,"ν","\\nu",!0),we(Ae,He,Sa,"ξ","\\xi",!0),we(Ae,He,Sa,"ο","\\omicron",!0),we(Ae,He,Sa,"π","\\pi",!0),we(Ae,He,Sa,"ρ","\\rho",!0),we(Ae,He,Sa,"σ","\\sigma",!0),we(Ae,He,Sa,"τ","\\tau",!0),we(Ae,He,Sa,"υ","\\upsilon",!0),we(Ae,He,Sa,"ϕ","\\phi",!0),we(Ae,He,Sa,"χ","\\chi",!0),we(Ae,He,Sa,"ψ","\\psi",!0),we(Ae,He,Sa,"ω","\\omega",!0),we(Ae,He,Sa,"ε","\\varepsilon",!0),we(Ae,He,Sa,"ϑ","\\vartheta",!0),we(Ae,He,Sa,"ϖ","\\varpi",!0),we(Ae,He,Sa,"ϱ","\\varrho",!0),we(Ae,He,Sa,"ς","\\varsigma",!0),we(Ae,He,Sa,"φ","\\varphi",!0),we(Ae,He,ls,"∗","*",!0),we(Ae,He,ls,"+","+"),we(Ae,He,ls,"−","-",!0),we(Ae,He,ls,"⋅","\\cdot",!0),we(Ae,He,ls,"∘","\\circ",!0),we(Ae,He,ls,"÷","\\div",!0),we(Ae,He,ls,"±","\\pm",!0),we(Ae,He,ls,"×","\\times",!0),we(Ae,He,ls,"∩","\\cap",!0),we(Ae,He,ls,"∪","\\cup",!0),we(Ae,He,ls,"∖","\\setminus",!0),we(Ae,He,ls,"∧","\\land"),we(Ae,He,ls,"∨","\\lor"),we(Ae,He,ls,"∧","\\wedge",!0),we(Ae,He,ls,"∨","\\vee",!0),we(Ae,He,bn,"√","\\surd"),we(Ae,He,vm,"⟨","\\langle",!0),we(Ae,He,vm,"∣","\\lvert"),we(Ae,He,vm,"∥","\\lVert"),we(Ae,He,Bp,"?","?"),we(Ae,He,Bp,"!","!"),we(Ae,He,Bp,"⟩","\\rangle",!0),we(Ae,He,Bp,"∣","\\rvert"),we(Ae,He,Bp,"∥","\\rVert"),we(Ae,He,Ht,"=","="),we(Ae,He,Ht,":",":"),we(Ae,He,Ht,"≈","\\approx",!0),we(Ae,He,Ht,"≅","\\cong",!0),we(Ae,He,Ht,"≥","\\ge"),we(Ae,He,Ht,"≥","\\geq",!0),we(Ae,He,Ht,"←","\\gets"),we(Ae,He,Ht,">","\\gt",!0),we(Ae,He,Ht,"∈","\\in",!0),we(Ae,He,Ht,"","\\@not"),we(Ae,He,Ht,"⊂","\\subset",!0),we(Ae,He,Ht,"⊃","\\supset",!0),we(Ae,He,Ht,"⊆","\\subseteq",!0),we(Ae,He,Ht,"⊇","\\supseteq",!0),we(Ae,jt,Ht,"⊈","\\nsubseteq",!0),we(Ae,jt,Ht,"⊉","\\nsupseteq",!0),we(Ae,He,Ht,"⊨","\\models"),we(Ae,He,Ht,"←","\\leftarrow",!0),we(Ae,He,Ht,"≤","\\le"),we(Ae,He,Ht,"≤","\\leq",!0),we(Ae,He,Ht,"<","\\lt",!0),we(Ae,He,Ht,"→","\\rightarrow",!0),we(Ae,He,Ht,"→","\\to"),we(Ae,jt,Ht,"≱","\\ngeq",!0),we(Ae,jt,Ht,"≰","\\nleq",!0),we(Ae,He,N7," ","\\ "),we(Ae,He,N7," ","\\space"),we(Ae,He,N7," ","\\nobreakspace"),we(ti,He,N7," ","\\ "),we(ti,He,N7," "," "),we(ti,He,N7," ","\\space"),we(ti,He,N7," ","\\nobreakspace"),we(Ae,He,N7,null,"\\nobreak"),we(Ae,He,N7,null,"\\allowbreak"),we(Ae,He,mR,",",","),we(Ae,He,mR,";",";"),we(Ae,jt,ls,"⊼","\\barwedge",!0),we(Ae,jt,ls,"⊻","\\veebar",!0),we(Ae,He,ls,"⊙","\\odot",!0),we(Ae,He,ls,"⊕","\\oplus",!0),we(Ae,He,ls,"⊗","\\otimes",!0),we(Ae,He,bn,"∂","\\partial",!0),we(Ae,He,ls,"⊘","\\oslash",!0),we(Ae,jt,ls,"⊚","\\circledcirc",!0),we(Ae,jt,ls,"⊡","\\boxdot",!0),we(Ae,He,ls,"△","\\bigtriangleup"),we(Ae,He,ls,"▽","\\bigtriangledown"),we(Ae,He,ls,"†","\\dagger"),we(Ae,He,ls,"⋄","\\diamond"),we(Ae,He,ls,"⋆","\\star"),we(Ae,He,ls,"◃","\\triangleleft"),we(Ae,He,ls,"▹","\\triangleright"),we(Ae,He,vm,"{","\\{"),we(ti,He,bn,"{","\\{"),we(ti,He,bn,"{","\\textbraceleft"),we(Ae,He,Bp,"}","\\}"),we(ti,He,bn,"}","\\}"),we(ti,He,bn,"}","\\textbraceright"),we(Ae,He,vm,"{","\\lbrace"),we(Ae,He,Bp,"}","\\rbrace"),we(Ae,He,vm,"[","\\lbrack",!0),we(ti,He,bn,"[","\\lbrack",!0),we(Ae,He,Bp,"]","\\rbrack",!0),we(ti,He,bn,"]","\\rbrack",!0),we(Ae,He,vm,"(","\\lparen",!0),we(Ae,He,Bp,")","\\rparen",!0),we(ti,He,bn,"<","\\textless",!0),we(ti,He,bn,">","\\textgreater",!0),we(Ae,He,vm,"⌊","\\lfloor",!0),we(Ae,He,Bp,"⌋","\\rfloor",!0),we(Ae,He,vm,"⌈","\\lceil",!0),we(Ae,He,Bp,"⌉","\\rceil",!0),we(Ae,He,bn,"\\","\\backslash"),we(Ae,He,bn,"∣","|"),we(Ae,He,bn,"∣","\\vert"),we(ti,He,bn,"|","\\textbar",!0),we(Ae,He,bn,"∥","\\|"),we(Ae,He,bn,"∥","\\Vert"),we(ti,He,bn,"∥","\\textbardbl"),we(ti,He,bn,"~","\\textasciitilde"),we(ti,He,bn,"\\","\\textbackslash"),we(ti,He,bn,"^","\\textasciicircum"),we(Ae,He,Ht,"↑","\\uparrow",!0),we(Ae,He,Ht,"⇑","\\Uparrow",!0),we(Ae,He,Ht,"↓","\\downarrow",!0),we(Ae,He,Ht,"⇓","\\Downarrow",!0),we(Ae,He,Ht,"↕","\\updownarrow",!0),we(Ae,He,Ht,"⇕","\\Updownarrow",!0),we(Ae,He,N0,"∐","\\coprod"),we(Ae,He,N0,"⋁","\\bigvee"),we(Ae,He,N0,"⋀","\\bigwedge"),we(Ae,He,N0,"⨄","\\biguplus"),we(Ae,He,N0,"⋂","\\bigcap"),we(Ae,He,N0,"⋃","\\bigcup"),we(Ae,He,N0,"∫","\\int"),we(Ae,He,N0,"∫","\\intop"),we(Ae,He,N0,"∬","\\iint"),we(Ae,He,N0,"∭","\\iiint"),we(Ae,He,N0,"∏","\\prod"),we(Ae,He,N0,"∑","\\sum"),we(Ae,He,N0,"⨂","\\bigotimes"),we(Ae,He,N0,"⨁","\\bigoplus"),we(Ae,He,N0,"⨀","\\bigodot"),we(Ae,He,N0,"∮","\\oint"),we(Ae,He,N0,"∯","\\oiint"),we(Ae,He,N0,"∰","\\oiiint"),we(Ae,He,N0,"⨆","\\bigsqcup"),we(Ae,He,N0,"∫","\\smallint"),we(ti,He,$D,"…","\\textellipsis"),we(Ae,He,$D,"…","\\mathellipsis"),we(ti,He,$D,"…","\\ldots",!0),we(Ae,He,$D,"…","\\ldots",!0),we(Ae,He,$D,"⋯","\\@cdots",!0),we(Ae,He,$D,"⋱","\\ddots",!0),we(Ae,He,bn,"⋮","\\varvdots"),we(ti,He,bn,"⋮","\\varvdots"),we(Ae,He,wh,"ˊ","\\acute"),we(Ae,He,wh,"ˋ","\\grave"),we(Ae,He,wh,"¨","\\ddot"),we(Ae,He,wh,"~","\\tilde"),we(Ae,He,wh,"ˉ","\\bar"),we(Ae,He,wh,"˘","\\breve"),we(Ae,He,wh,"ˇ","\\check"),we(Ae,He,wh,"^","\\hat"),we(Ae,He,wh,"⃗","\\vec"),we(Ae,He,wh,"˙","\\dot"),we(Ae,He,wh,"˚","\\mathring"),we(Ae,He,Sa,"","\\@imath"),we(Ae,He,Sa,"","\\@jmath"),we(Ae,He,bn,"ı","ı"),we(Ae,He,bn,"ȷ","ȷ"),we(ti,He,bn,"ı","\\i",!0),we(ti,He,bn,"ȷ","\\j",!0),we(ti,He,bn,"ß","\\ss",!0),we(ti,He,bn,"æ","\\ae",!0),we(ti,He,bn,"œ","\\oe",!0),we(ti,He,bn,"ø","\\o",!0),we(ti,He,bn,"Æ","\\AE",!0),we(ti,He,bn,"Œ","\\OE",!0),we(ti,He,bn,"Ø","\\O",!0),we(ti,He,wh,"ˊ","\\'"),we(ti,He,wh,"ˋ","\\`"),we(ti,He,wh,"ˆ","\\^"),we(ti,He,wh,"˜","\\~"),we(ti,He,wh,"ˉ","\\="),we(ti,He,wh,"˘","\\u"),we(ti,He,wh,"˙","\\."),we(ti,He,wh,"¸","\\c"),we(ti,He,wh,"˚","\\r"),we(ti,He,wh,"ˇ","\\v"),we(ti,He,wh,"¨",'\\"'),we(ti,He,wh,"˝","\\H"),we(ti,He,wh,"◯","\\textcircled");var Cze={"--":!0,"---":!0,"``":!0,"''":!0};we(ti,He,bn,"–","--",!0),we(ti,He,bn,"–","\\textendash"),we(ti,He,bn,"—","---",!0),we(ti,He,bn,"—","\\textemdash"),we(ti,He,bn,"‘","`",!0),we(ti,He,bn,"‘","\\textquoteleft"),we(ti,He,bn,"’","'",!0),we(ti,He,bn,"’","\\textquoteright"),we(ti,He,bn,"“","``",!0),we(ti,He,bn,"“","\\textquotedblleft"),we(ti,He,bn,"”","''",!0),we(ti,He,bn,"”","\\textquotedblright"),we(Ae,He,bn,"°","\\degree",!0),we(ti,He,bn,"°","\\degree"),we(ti,He,bn,"°","\\textdegree",!0),we(Ae,He,bn,"£","\\pounds"),we(Ae,He,bn,"£","\\mathsterling",!0),we(ti,He,bn,"£","\\pounds"),we(ti,He,bn,"£","\\textsterling",!0),we(Ae,jt,bn,"✠","\\maltese"),we(ti,jt,bn,"✠","\\maltese");for(var Sze='0123456789/@."',wbe=0;wbe{var u=i.charCodeAt(0),d=i.charCodeAt(1),p=(u-55296)*1024+(d-56320)+65536,v=a==="math"?0:1;if(119808<=p&&p<120484){var b=Math.floor((p-119808)/26);return[mQ[b][2],mQ[b][v]]}else if(120782<=p&&p<=120831){var y=Math.floor((p-120782)/10);return[Mze[y][2],Mze[y][v]]}else{if(p===120485||p===120486)return[mQ[0][2],mQ[0][v]];if(1204860)return Rp(v,_,p,u,b.concat(A));if(E){var P,R;if(E==="boldsymbol"){var B=WHt(v,p,u,b,d);P=B.fontName,R=[B.fontClass]}else y?(P=Sbe[E].fontName,R=[E]):(P=yQ(E,u.fontWeight,u.fontShape),R=[E,u.fontWeight,u.fontShape]);if(vQ(v,P,p).metrics)return Rp(v,P,p,u,b.concat(R));if(Cze.hasOwnProperty(v)&&P.slice(0,10)==="Typewriter"){for(var j=[],W=0;W{if(C9(i.classes)!==C9(a.classes)||i.skew!==a.skew||i.maxFontSize!==a.maxFontSize||i.italic!==0&&i.hasClass("mathnormal"))return!1;if(i.classes.length===1){var u=i.classes[0];if(u==="mbin"||u==="mord")return!1}for(var d of Object.keys(i.style))if(i.style[d]!==a.style[d])return!1;for(var p of Object.keys(a.style))if(i.style[p]!==a.style[p])return!1;return!0},Dze=i=>{for(var a=0;au&&(u=b.height),b.depth>d&&(d=b.depth),b.maxFontSize>p&&(p=b.maxFontSize)}a.height=u,a.depth=d,a.maxFontSize=p},di=function(a,u,d,p){var v=new jD(a,u,d,p);return Cbe(v),v},A9=(i,a,u,d)=>new jD(i,a,u,d),zD=function(a,u,d){var p=di([a],[],u);return p.height=Math.max(d||u.fontMetrics().defaultRuleThickness,u.minRuleThickness),p.style.borderBottomWidth=Oi(p.height),p.maxFontSize=1,p},XHt=function(a,u,d,p){var v=new fQ(a,u,d,p);return Cbe(v),v},P7=function(a){var u=new RD(a);return Cbe(u),u},qD=function(a,u){return a instanceof RD?di([],[a],u):a},QHt=function(a){if(a.positionType==="individualShift"){for(var u=a.children,d=[u[0]],p=-u[0].shift-u[0].elem.depth,v=p,b=1;b{var u=di(["mspace"],[],a),d=Uh(i,a);return u.style.marginRight=Oi(d),u},yQ=function(a,u,d){var p="";switch(a){case"amsrm":p="AMS";break;case"textrm":p="Main";break;case"textsf":p="SansSerif";break;case"texttt":p="Typewriter";break;default:p=a}var v;return u==="textbf"&&d==="textit"?v="BoldItalic":u==="textbf"?v="Bold":u==="textit"?v="Italic":v="Regular",p+"-"+v},Sbe={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Oze={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Nze=function(a,u){var[d,p,v]=Oze[a],b=new S9(d),y=new O7([b],{width:Oi(p),height:Oi(v),style:"width:"+Oi(p),viewBox:"0 0 "+1e3*p+" "+1e3*v,preserveAspectRatio:"xMinYMin"}),E=A9(["overlay"],[y],u);return E.height=v,E.style.height=Oi(v),E.style.width=Oi(p),E},Vh={number:3,unit:"mu"},zC={number:4,unit:"mu"},B7={number:5,unit:"mu"},JHt={mord:{mop:Vh,mbin:zC,mrel:B7,minner:Vh},mop:{mord:Vh,mop:Vh,mrel:B7,minner:Vh},mbin:{mord:zC,mop:zC,mopen:zC,minner:zC},mrel:{mord:B7,mop:B7,mopen:B7,minner:B7},mopen:{},mclose:{mop:Vh,mbin:zC,mrel:B7,minner:Vh},mpunct:{mord:Vh,mop:Vh,mrel:B7,mopen:Vh,mclose:Vh,mpunct:Vh,minner:Vh},minner:{mord:Vh,mop:Vh,mbin:zC,mrel:B7,mopen:Vh,mpunct:Vh,minner:Vh}},ZHt={mord:{mop:Vh},mop:{mord:Vh,mop:Vh},mbin:{},mrel:{},mopen:{},mclose:{mop:Vh},mpunct:{},minner:{mop:Vh}},Pze={},xQ={},kQ={};function es(i){for(var{type:a,names:u,props:d,handler:p,htmlBuilder:v,mathmlBuilder:b}=i,y={type:a,numArgs:d.numArgs,argTypes:d.argTypes,allowedInArgument:!!d.allowedInArgument,allowedInText:!!d.allowedInText,allowedInMath:d.allowedInMath===void 0?!0:d.allowedInMath,numOptionalArgs:d.numOptionalArgs||0,infix:!!d.infix,primitive:!!d.primitive,handler:p},E=0;E{var ee=W.classes[0],ie=j.classes[0];ee==="mbin"&&tUt.has(ie)?W.classes[0]="mord":ie==="mbin"&&eUt.has(ee)&&(j.classes[0]="mord")},{node:P},R,B),_be(v,(j,W)=>{var ee,ie,oe=Lbe(W),be=Lbe(j),ge=oe&&be?j.hasClass("mtight")?(ee=ZHt[oe])==null?void 0:ee[be]:(ie=JHt[oe])==null?void 0:ie[be]:null;if(ge)return Ize(ge,_)},{node:P},R,B),v},_be=function(a,u,d,p,v){p&&a.push(p);for(var b=0;bR=>{a.splice(P+1,0,R),b++})(b)}p&&a.pop()},Bze=function(a){return a instanceof RD||a instanceof fQ||a instanceof jD&&a.hasClass("enclosing")?a:null},Abe=function(a,u){var d=Bze(a);if(d){var p=d.children;if(p.length){if(u==="right")return Abe(p[p.length-1],"right");if(u==="left")return Abe(p[0],"left")}}return a},Lbe=function(a,u){if(!a)return null;u&&(a=Abe(a,u));var d=a.classes[0];return rUt[d]||null},vR=function(a,u){var d=["nulldelimiter"].concat(a.baseSizingClasses());return di(u.concat(d))},Du=function(a,u,d){if(!a)return di();if(xQ[a.type]){var p=xQ[a.type](a,u);if(d&&u.size!==d.size){p=di(u.sizingClasses(d),[p],u);var v=u.sizeMultiplier/d.sizeMultiplier;p.height*=v,p.depth*=v}return p}else throw new ki("Got group of unknown type: '"+a.type+"'")};function EQ(i,a){var u=di(["base"],i,a),d=di(["strut"]);return d.style.height=Oi(u.height+u.depth),u.depth&&(d.style.verticalAlign=Oi(-u.depth)),u.children.unshift(d),u}function Mbe(i,a){var u=null;i.length===1&&i[0].type==="tag"&&(u=i[0].tag,i=i[0].body);var d=d1(i,a,"root"),p;d.length===2&&d[1].hasClass("tag")&&(p=d.pop());for(var v=[],b=[],y=0;y0&&(v.push(EQ(b,a)),b=[]),v.push(d[y]));b.length>0&&v.push(EQ(b,a));var _;u?(_=EQ(d1(u,a,!0),a),_.classes=["tag"],v.push(_)):p&&v.push(p);var A=di(["katex-html"],v);if(A.setAttribute("aria-hidden","true"),_){var P=_.children[0];P.style.height=Oi(A.height+A.depth),A.depth&&(P.style.verticalAlign=Oi(-A.depth))}return A}function Fze(i){return new RD(i)}class Si{constructor(a,u,d){this.type=a,this.attributes={},this.children=u||[],this.classes=d||[]}setAttribute(a,u){this.attributes[a]=u}getAttribute(a){return this.attributes[a]}toNode(){var a=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var u in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,u)&&a.setAttribute(u,this.attributes[u]);this.classes.length>0&&(a.className=C9(this.classes));for(var d=0;d0&&(a+=' class ="'+zg(C9(this.classes))+'"'),a+=">";for(var d=0;d",a}toText(){return this.children.map(a=>a.toText()).join("")}}class B0{constructor(a){this.text=a}toNode(){return document.createTextNode(this.text)}toMarkup(){return zg(this.toText())}toText(){return this.text}}class Rze{constructor(a){this.width=a,a>=.05555&&a<=.05556?this.character=" ":a>=.1666&&a<=.1667?this.character=" ":a>=.2222&&a<=.2223?this.character=" ":a>=.2777&&a<=.2778?this.character="  ":a>=-.05556&&a<=-.05555?this.character=" ⁣":a>=-.1667&&a<=-.1666?this.character=" ⁣":a>=-.2223&&a<=-.2222?this.character=" ⁣":a>=-.2778&&a<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var a=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return a.setAttribute("width",Oi(this.width)),a}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}}var iUt=new Set(["\\imath","\\jmath"]),sUt=new Set(["mrow","mtable"]),Vv=function(a,u,d){return vh[u][a]&&vh[u][a].replace&&a.charCodeAt(0)!==55349&&!(Cze.hasOwnProperty(a)&&d&&(d.fontFamily&&d.fontFamily.slice(4,6)==="tt"||d.font&&d.font.slice(4,6)==="tt"))&&(a=vh[u][a].replace),new B0(a)},Dbe=function(a){return a.length===1?a[0]:new Si("mrow",a)},Ibe=function(a,u){if(u.fontFamily==="texttt")return"monospace";if(u.fontFamily==="textsf")return u.fontShape==="textit"&&u.fontWeight==="textbf"?"sans-serif-bold-italic":u.fontShape==="textit"?"sans-serif-italic":u.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(u.fontShape==="textit"&&u.fontWeight==="textbf")return"bold-italic";if(u.fontShape==="textit")return"italic";if(u.fontWeight==="textbf")return"bold";var d=u.font;if(!d||d==="mathnormal")return null;var p=a.mode;if(d==="mathit")return"italic";if(d==="boldsymbol")return a.type==="textord"?"bold":"bold-italic";if(d==="mathbf")return"bold";if(d==="mathbb")return"double-struck";if(d==="mathsfit")return"sans-serif-italic";if(d==="mathfrak")return"fraktur";if(d==="mathscr"||d==="mathcal")return"script";if(d==="mathsf")return"sans-serif";if(d==="mathtt")return"monospace";var v=a.text;if(iUt.has(v))return null;if(vh[p][v]){var b=vh[p][v].replace;b&&(v=b)}var y=Sbe[d].fontName;return mbe(v,y,p)?Sbe[d].variant:null};function Obe(i){if(!i)return!1;if(i.type==="mi"&&i.children.length===1){var a=i.children[0];return a instanceof B0&&a.text==="."}else if(i.type==="mo"&&i.children.length===1&&i.getAttribute("separator")==="true"&&i.getAttribute("lspace")==="0em"&&i.getAttribute("rspace")==="0em"){var u=i.children[0];return u instanceof B0&&u.text===","}else return!1}var wm=function(a,u,d){if(a.length===1){var p=Al(a[0],u);return d&&p instanceof Si&&p.type==="mo"&&(p.setAttribute("lspace","0em"),p.setAttribute("rspace","0em")),[p]}for(var v=[],b,y=0;y=1&&(b.type==="mn"||Obe(b))){var _=E.children[0];_ instanceof Si&&_.type==="mn"&&(_.children=[...b.children,..._.children],v.pop())}else if(b.type==="mi"&&b.children.length===1){var A=b.children[0];if(A instanceof B0&&A.text==="̸"&&(E.type==="mo"||E.type==="mi"||E.type==="mn")){var P=E.children[0];P instanceof B0&&P.text.length>0&&(P.text=P.text.slice(0,1)+"̸"+P.text.slice(1),v.pop())}}}v.push(E),b=E}return v},L9=function(a,u,d){return Dbe(wm(a,u,d))},Al=function(a,u){if(!a)return new Si("mrow");if(kQ[a.type]){var d=kQ[a.type](a,u);return d}else throw new ki("Got group of unknown type: '"+a.type+"'")};function jze(i,a,u,d,p){var v=wm(i,u),b;v.length===1&&v[0]instanceof Si&&sUt.has(v[0].type)?b=v[0]:b=new Si("mrow",v);var y=new Si("annotation",[new B0(a)]);y.setAttribute("encoding","application/x-tex");var E=new Si("semantics",[b,y]),_=new Si("math",[E]);_.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),d&&_.setAttribute("display","block");var A=p?"katex":"katex-mathml";return di([A],[_])}var aUt=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],$ze=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],zze=function(a,u){return u.size<2?a:aUt[a-1][u.size-1]};class F7{constructor(a){this.style=a.style,this.color=a.color,this.size=a.size||F7.BASESIZE,this.textSize=a.textSize||this.size,this.phantom=!!a.phantom,this.font=a.font||"",this.fontFamily=a.fontFamily||"",this.fontWeight=a.fontWeight||"",this.fontShape=a.fontShape||"",this.sizeMultiplier=$ze[this.size-1],this.maxSize=a.maxSize,this.minRuleThickness=a.minRuleThickness,this._fontMetrics=void 0}extend(a){var u={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};return Object.assign(u,a),new F7(u)}havingStyle(a){return this.style===a?this:this.extend({style:a,size:zze(this.textSize,a)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(a){return this.size===a&&this.textSize===a?this:this.extend({style:this.style.text(),size:a,textSize:a,sizeMultiplier:$ze[a-1]})}havingBaseStyle(a){a=a||this.style.text();var u=zze(F7.BASESIZE,a);return this.size===u&&this.textSize===F7.BASESIZE&&this.style===a?this:this.extend({style:a,size:u})}havingBaseSizing(){var a;switch(this.style.id){case 4:case 5:a=3;break;case 6:case 7:a=1;break;default:a=6}return this.extend({style:this.style.text(),size:a})}withColor(a){return this.extend({color:a})}withPhantom(){return this.extend({phantom:!0})}withFont(a){return this.extend({font:a})}withTextFontFamily(a){return this.extend({fontFamily:a,font:""})}withTextFontWeight(a){return this.extend({fontWeight:a,font:""})}withTextFontShape(a){return this.extend({fontShape:a,font:""})}sizingClasses(a){return a.size!==this.size?["sizing","reset-size"+a.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==F7.BASESIZE?["sizing","reset-size"+this.size,"size"+F7.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=UHt(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}F7.BASESIZE=6;var qze=function(a){return new F7({style:a.displayMode?bo.DISPLAY:bo.TEXT,maxSize:a.maxSize,minRuleThickness:a.minRuleThickness})},Hze=function(a,u){if(u.displayMode){var d=["katex-display"];u.leqno&&d.push("leqno"),u.fleqn&&d.push("fleqn"),a=di(d,[a])}return a},oUt=function(a,u,d){var p=qze(d),v;if(d.output==="mathml")return jze(a,u,p,d.displayMode,!0);if(d.output==="html"){var b=Mbe(a,p);v=di(["katex"],[b])}else{var y=jze(a,u,p,d.displayMode,!1),E=Mbe(a,p);v=di(["katex"],[y,E])}return Hze(v,d)},cUt=function(a,u,d){var p=qze(d),v=Mbe(a,p),b=di(["katex"],[v]);return Hze(b,d)},uUt={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",underbracket:"⎵",overbracket:"⎴",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},CQ=function(a){var u=new Si("mo",[new B0(uUt[a.replace(/^\\/,"")])]);return u.setAttribute("stretchy","true"),u},lUt={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overbracket:[["leftbracketover","rightbracketover"],1.6,440],underbracket:[["leftbracketunder","rightbracketunder"],1.6,410],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},hUt=new Set(["widehat","widecheck","widetilde","utilde"]),SQ=function(a,u){function d(){var y=4e5,E=a.label.slice(1);if(hUt.has(E)){var _=a,A=_.base.type==="ordgroup"?_.base.body.length:1,P,R,B;if(A>5)E==="widehat"||E==="widecheck"?(P=420,y=2364,B=.42,R=E+"4"):(P=312,y=2340,B=.34,R="tilde4");else{var j=[1,1,2,2,3,3][A];E==="widehat"||E==="widecheck"?(y=[0,1062,2364,2364,2364][j],P=[0,239,300,360,420][j],B=[0,.24,.3,.3,.36,.42][j],R=E+j):(y=[0,600,1033,2339,2340][j],P=[0,260,286,306,312][j],B=[0,.26,.286,.3,.306,.34][j],R="tilde"+j)}var W=new S9(R),ee=new O7([W],{width:"100%",height:Oi(B),viewBox:"0 0 "+y+" "+P,preserveAspectRatio:"none"});return{span:A9([],[ee],u),minWidth:0,height:B}}else{var ie=[],oe=lUt[E],[be,ge,ae]=oe,ne=ae/1e3,se=be.length,de,X;if(se===1){var pe=oe[3];de=["hide-tail"],X=[pe]}else if(se===2)de=["halfarrow-left","halfarrow-right"],X=["xMinYMin","xMaxYMin"];else if(se===3)de=["brace-left","brace-center","brace-right"],X=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+se+" children.");for(var G=0;G0&&(p.style.minWidth=Oi(v)),p},fUt=function(a,u,d,p,v){var b,y=a.height+a.depth+d+p;if(/fbox|color|angl/.test(u)){if(b=di(["stretchy",u],[],v),u==="fbox"){var E=v.color&&v.getColor();E&&(b.style.borderColor=E)}}else{var _=[];/^[bx]cancel$/.test(u)&&_.push(new bbe({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(u)&&_.push(new bbe({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var A=new O7(_,{width:"100%",height:Oi(y)});b=A9([],[A],v)}return b.height=y,b.style.height=Oi(y),b};function Xo(i,a){if(!i||i.type!==a)throw new Error("Expected node of type "+a+", but got "+(i?"node of type "+i.type:String(i)));return i}function _Q(i){var a=AQ(i);if(!a)throw new Error("Expected node of symbol group type, but got "+(i?"node of type "+i.type:String(i)));return a}function AQ(i){return i&&(i.type==="atom"||GHt.hasOwnProperty(i.type))?i:null}var Uze=i=>{if(i instanceof mm)return i;if(HHt(i)&&i.children.length===1)return Uze(i.children[0])},Nbe=(i,a)=>{var u,d,p;i&&i.type==="supsub"?(d=Xo(i.base,"accent"),u=d.base,i.base=u,p=qHt(Du(i,a)),i.base=d):(d=Xo(i,"accent"),u=d.base);var v=Du(u,a.havingCrampedStyle()),b=d.isShifty&&D7(u),y=0;if(b){var E,_;y=(E=(_=Uze(v))==null?void 0:_.skew)!=null?E:0}var A=d.label==="\\c",P=A?v.height+v.depth:Math.min(v.height,a.fontMetrics().xHeight),R;if(d.isStretchy)R=SQ(d,a),R=Mu({positionType:"firstBaseline",children:[{type:"elem",elem:v},{type:"elem",elem:R,wrapperClasses:["svg-align"],wrapperStyle:y>0?{width:"calc(100% - "+Oi(2*y)+")",marginLeft:Oi(2*y)}:void 0}]});else{var B,j;d.label==="\\vec"?(B=Nze("vec",a),j=Oze.vec[1]):(B=wQ({type:"textord",mode:d.mode,text:d.label},a,"textord"),B=zHt(B),B.italic=0,j=B.width,A&&(P+=B.depth)),R=di(["accent-body"],[B]);var W=d.label==="\\textcircled";W&&(R.classes.push("accent-full"),P=v.height);var ee=y;W||(ee-=j/2),R.style.left=Oi(ee),d.label==="\\textcircled"&&(R.style.top=".2em"),R=Mu({positionType:"firstBaseline",children:[{type:"elem",elem:v},{type:"kern",size:-P},{type:"elem",elem:R}]})}var ie=di(["mord","accent"],[R],a);return p?(p.children[0]=ie,p.height=Math.max(ie.height,p.height),p.classes[0]="mord",p):ie},Vze=(i,a)=>{var u=i.isStretchy?CQ(i.label):new Si("mo",[Vv(i.label,i.mode)]),d=new Si("mover",[Al(i.base,a),u]);return d.setAttribute("accent","true"),d},dUt=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(i=>"\\"+i).join("|"));es({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(i,a)=>{var u=TQ(a[0]),d=!dUt.test(i.funcName),p=!d||i.funcName==="\\widehat"||i.funcName==="\\widetilde"||i.funcName==="\\widecheck";return{type:"accent",mode:i.parser.mode,label:i.funcName,isStretchy:d,isShifty:p,base:u}},htmlBuilder:Nbe,mathmlBuilder:Vze}),es({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(i,a)=>{var u=a[0],d=i.parser.mode;return d==="math"&&(i.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+i.funcName+" works only in text mode"),d="text"),{type:"accent",mode:d,label:i.funcName,isStretchy:!1,isShifty:!0,base:u}},htmlBuilder:Nbe,mathmlBuilder:Vze}),es({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(i,a)=>{var{parser:u,funcName:d}=i,p=a[0];return{type:"accentUnder",mode:u.mode,label:d,base:p}},htmlBuilder:(i,a)=>{var u=Du(i.base,a),d=SQ(i,a),p=i.label==="\\utilde"?.12:0,v=Mu({positionType:"top",positionData:u.height,children:[{type:"elem",elem:d,wrapperClasses:["svg-align"]},{type:"kern",size:p},{type:"elem",elem:u}]});return di(["mord","accentunder"],[v],a)},mathmlBuilder:(i,a)=>{var u=CQ(i.label),d=new Si("munder",[Al(i.base,a),u]);return d.setAttribute("accentunder","true"),d}});var LQ=i=>{var a=new Si("mpadded",i?[i]:[]);return a.setAttribute("width","+0.6em"),a.setAttribute("lspace","0.3em"),a};es({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(i,a,u){var{parser:d,funcName:p}=i;return{type:"xArrow",mode:d.mode,label:p,body:a[0],below:u[0]}},htmlBuilder(i,a){var u=a.style,d=a.havingStyle(u.sup()),p=qD(Du(i.body,d,a),a),v=i.label.slice(0,2)==="\\x"?"x":"cd";p.classes.push(v+"-arrow-pad");var b;i.below&&(d=a.havingStyle(u.sub()),b=qD(Du(i.below,d,a),a),b.classes.push(v+"-arrow-pad"));var y=SQ(i,a),E=-a.fontMetrics().axisHeight+.5*y.height,_=-a.fontMetrics().axisHeight-.5*y.height-.111;(p.depth>.25||i.label==="\\xleftequilibrium")&&(_-=p.depth);var A;if(b){var P=-a.fontMetrics().axisHeight+b.height+.5*y.height+.111;A=Mu({positionType:"individualShift",children:[{type:"elem",elem:p,shift:_},{type:"elem",elem:y,shift:E},{type:"elem",elem:b,shift:P}]})}else A=Mu({positionType:"individualShift",children:[{type:"elem",elem:p,shift:_},{type:"elem",elem:y,shift:E}]});return A.children[0].children[0].children[1].classes.push("svg-align"),di(["mrel","x-arrow"],[A],a)},mathmlBuilder(i,a){var u=CQ(i.label);u.setAttribute("minsize",i.label.charAt(0)==="x"?"1.75em":"3.0em");var d;if(i.body){var p=LQ(Al(i.body,a));if(i.below){var v=LQ(Al(i.below,a));d=new Si("munderover",[u,v,p])}else d=new Si("mover",[u,p])}else if(i.below){var b=LQ(Al(i.below,a));d=new Si("munder",[u,b])}else d=LQ(),d=new Si("mover",[u,d]);return d}});function Gze(i,a){var u=d1(i.body,a,!0);return di([i.mclass],u,a)}function Kze(i,a){var u,d=wm(i.body,a);return i.mclass==="minner"?u=new Si("mpadded",d):i.mclass==="mord"?i.isCharacterBox?(u=d[0],u.type="mi"):u=new Si("mi",d):(i.isCharacterBox?(u=d[0],u.type="mo"):u=new Si("mo",d),i.mclass==="mbin"?(u.attributes.lspace="0.22em",u.attributes.rspace="0.22em"):i.mclass==="mpunct"?(u.attributes.lspace="0em",u.attributes.rspace="0.17em"):i.mclass==="mopen"||i.mclass==="mclose"?(u.attributes.lspace="0em",u.attributes.rspace="0em"):i.mclass==="minner"&&(u.attributes.lspace="0.0556em",u.attributes.width="+0.1111em")),u}es({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(i,a){var{parser:u,funcName:d}=i,p=a[0];return{type:"mclass",mode:u.mode,mclass:"m"+d.slice(5),body:P0(p),isCharacterBox:D7(p)}},htmlBuilder:Gze,mathmlBuilder:Kze});var MQ=i=>{var a=i.type==="ordgroup"&&i.body.length?i.body[0]:i;return a.type==="atom"&&(a.family==="bin"||a.family==="rel")?"m"+a.family:"mord"};es({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(i,a){var{parser:u}=i;return{type:"mclass",mode:u.mode,mclass:MQ(a[0]),body:P0(a[1]),isCharacterBox:D7(a[1])}}}),es({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(i,a){var{parser:u,funcName:d}=i,p=a[1],v=a[0],b;d!=="\\stackrel"?b=MQ(p):b="mrel";var y={type:"op",mode:p.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:d!=="\\stackrel",body:P0(p)},E={type:"supsub",mode:v.mode,base:y,sup:d==="\\underset"?null:v,sub:d==="\\underset"?v:null};return{type:"mclass",mode:u.mode,mclass:b,body:[E],isCharacterBox:D7(E)}},htmlBuilder:Gze,mathmlBuilder:Kze}),es({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(i,a){var{parser:u}=i;return{type:"pmb",mode:u.mode,mclass:MQ(a[0]),body:P0(a[0])}},htmlBuilder(i,a){var u=d1(i.body,a,!0),d=di([i.mclass],u,a);return d.style.textShadow="0.02em 0.01em 0.04px",d},mathmlBuilder(i,a){var u=wm(i.body,a),d=new Si("mstyle",u);return d.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),d}});var gUt={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},Wze=()=>({type:"styling",body:[],mode:"math",style:"display"}),Yze=i=>i.type==="textord"&&i.text==="@",pUt=(i,a)=>(i.type==="mathord"||i.type==="atom")&&i.text===a;function bUt(i,a,u){var d=gUt[i];switch(d){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return u.callFunction(d,[a[0]],[a[1]]);case"\\uparrow":case"\\downarrow":{var p=u.callFunction("\\\\cdleft",[a[0]],[]),v={type:"atom",text:d,mode:"math",family:"rel"},b=u.callFunction("\\Big",[v],[]),y=u.callFunction("\\\\cdright",[a[1]],[]),E={type:"ordgroup",mode:"math",body:[p,b,y]};return u.callFunction("\\\\cdparent",[E],[])}case"\\\\cdlongequal":return u.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var _={type:"textord",text:"\\Vert",mode:"math"};return u.callFunction("\\Big",[_],[])}default:return{type:"textord",text:" ",mode:"math"}}}function mUt(i){var a=[];for(i.gullet.beginGroup(),i.gullet.macros.set("\\cr","\\\\\\relax"),i.gullet.beginGroup();;){a.push(i.parseExpression(!1,"\\\\")),i.gullet.endGroup(),i.gullet.beginGroup();var u=i.fetch().text;if(u==="&"||u==="\\\\")i.consume();else if(u==="\\end"){a[a.length-1].length===0&&a.pop();break}else throw new ki("Expected \\\\ or \\cr or \\end",i.nextToken)}for(var d=[],p=[d],v=0;vAV".includes(_))for(var P=0;P<2;P++){for(var R=!0,B=E+1;BAV=|." after @',b[E]);var j=bUt(_,A,i),W={type:"styling",body:[j],mode:"math",style:"display"};d.push(W),y=Wze()}v%2===0?d.push(y):d.shift(),d=[],p.push(d)}i.gullet.endGroup(),i.gullet.endGroup();var ee=new Array(p[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:p,arraystretch:1,addJot:!0,rowGaps:[null],cols:ee,colSeparationType:"CD",hLinesBeforeRow:new Array(p.length+1).fill([])}}es({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(i,a){var{parser:u,funcName:d}=i;return{type:"cdlabel",mode:u.mode,side:d.slice(4),label:a[0]}},htmlBuilder(i,a){var u=a.havingStyle(a.style.sup()),d=qD(Du(i.label,u,a),a);return d.classes.push("cd-label-"+i.side),d.style.bottom=Oi(.8-d.depth),d.height=0,d.depth=0,d},mathmlBuilder(i,a){var u=new Si("mrow",[Al(i.label,a)]);return u=new Si("mpadded",[u]),u.setAttribute("width","0"),i.side==="left"&&u.setAttribute("lspace","-1width"),u.setAttribute("voffset","0.7em"),u=new Si("mstyle",[u]),u.setAttribute("displaystyle","false"),u.setAttribute("scriptlevel","1"),u}}),es({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(i,a){var{parser:u}=i;return{type:"cdlabelparent",mode:u.mode,fragment:a[0]}},htmlBuilder(i,a){var u=qD(Du(i.fragment,a),a);return u.classes.push("cd-vert-arrow"),u},mathmlBuilder(i,a){return new Si("mrow",[Al(i.fragment,a)])}}),es({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(i,a){for(var{parser:u}=i,d=Xo(a[0],"ordgroup"),p=d.body,v="",b=0;b=1114111)throw new ki("\\@char with invalid code point "+v);return E<=65535?_=String.fromCharCode(E):(E-=65536,_=String.fromCharCode((E>>10)+55296,(E&1023)+56320)),{type:"textord",mode:u.mode,text:_}}});var Xze=(i,a)=>{var u=d1(i.body,a.withColor(i.color),!1);return P7(u)},Qze=(i,a)=>{var u=wm(i.body,a.withColor(i.color)),d=new Si("mstyle",u);return d.setAttribute("mathcolor",i.color),d};es({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(i,a){var{parser:u}=i,d=Xo(a[0],"color-token").color,p=a[1];return{type:"color",mode:u.mode,color:d,body:P0(p)}},htmlBuilder:Xze,mathmlBuilder:Qze}),es({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(i,a){var{parser:u,breakOnTokenText:d}=i,p=Xo(a[0],"color-token").color;u.gullet.macros.set("\\current@color",p);var v=u.parseExpression(!0,d);return{type:"color",mode:u.mode,color:p,body:v}},htmlBuilder:Xze,mathmlBuilder:Qze}),es({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(i,a,u){var{parser:d}=i,p=d.gullet.future().text==="["?d.parseSizeGroup(!0):null,v=!d.settings.displayMode||!d.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:d.mode,newLine:v,size:p&&Xo(p,"size").value}},htmlBuilder(i,a){var u=di(["mspace"],[],a);return i.newLine&&(u.classes.push("newline"),i.size&&(u.style.marginTop=Oi(Uh(i.size,a)))),u},mathmlBuilder(i,a){var u=new Si("mspace");return i.newLine&&(u.setAttribute("linebreak","newline"),i.size&&u.setAttribute("height",Oi(Uh(i.size,a)))),u}});var Pbe={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Jze=i=>{var a=i.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(a))throw new ki("Expected a control sequence",i);return a},vUt=i=>{var a=i.gullet.popToken();return a.text==="="&&(a=i.gullet.popToken(),a.text===" "&&(a=i.gullet.popToken())),a},Zze=(i,a,u,d)=>{var p=i.gullet.macros.get(u.text);p==null&&(u.noexpand=!0,p={tokens:[u],numArgs:0,unexpandable:!i.gullet.isExpandable(u.text)}),i.gullet.macros.set(a,p,d)};es({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(i){var{parser:a,funcName:u}=i;a.consumeSpaces();var d=a.fetch();if(Pbe[d.text])return(u==="\\global"||u==="\\\\globallong")&&(d.text=Pbe[d.text]),Xo(a.parseFunction(),"internal");throw new ki("Invalid token after macro prefix",d)}}),es({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(i){var{parser:a,funcName:u}=i,d=a.gullet.popToken(),p=d.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(p))throw new ki("Expected a control sequence",d);for(var v=0,b,y=[[]];a.gullet.future().text!=="{";)if(d=a.gullet.popToken(),d.text==="#"){if(a.gullet.future().text==="{"){b=a.gullet.future(),y[v].push("{");break}if(d=a.gullet.popToken(),!/^[1-9]$/.test(d.text))throw new ki('Invalid argument number "'+d.text+'"');if(parseInt(d.text)!==v+1)throw new ki('Argument number "'+d.text+'" out of order');v++,y.push([])}else{if(d.text==="EOF")throw new ki("Expected a macro definition");y[v].push(d.text)}var{tokens:E}=a.gullet.consumeArg();return b&&E.unshift(b),(u==="\\edef"||u==="\\xdef")&&(E=a.gullet.expandTokens(E),E.reverse()),a.gullet.macros.set(p,{tokens:E,numArgs:v,delimiters:y},u===Pbe[u]),{type:"internal",mode:a.mode}}}),es({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(i){var{parser:a,funcName:u}=i,d=Jze(a.gullet.popToken());a.gullet.consumeSpaces();var p=vUt(a);return Zze(a,d,p,u==="\\\\globallet"),{type:"internal",mode:a.mode}}}),es({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(i){var{parser:a,funcName:u}=i,d=Jze(a.gullet.popToken()),p=a.gullet.popToken(),v=a.gullet.popToken();return Zze(a,d,v,u==="\\\\globalfuture"),a.gullet.pushToken(v),a.gullet.pushToken(p),{type:"internal",mode:a.mode}}});var wR=function(a,u,d){var p=vh.math[a]&&vh.math[a].replace,v=mbe(p||a,u,d);if(!v)throw new Error("Unsupported symbol "+a+" and font size "+u+".");return v},Bbe=function(a,u,d,p){var v=d.havingBaseStyle(u),b=di(p.concat(v.sizingClasses(d)),[a],d),y=v.sizeMultiplier/d.sizeMultiplier;return b.height*=y,b.depth*=y,b.maxFontSize=v.sizeMultiplier,b},eqe=function(a,u,d){var p=u.havingBaseStyle(d),v=(1-u.sizeMultiplier/p.sizeMultiplier)*u.fontMetrics().axisHeight;a.classes.push("delimcenter"),a.style.top=Oi(v),a.height-=v,a.depth+=v},wUt=function(a,u,d,p,v,b){var y=Rp(a,"Main-Regular",v,p),E=Bbe(y,u,p,b);return d&&eqe(E,p,u),E},yUt=function(a,u,d,p){return Rp(a,"Size"+u+"-Regular",d,p)},tqe=function(a,u,d,p,v,b){var y=yUt(a,u,v,p),E=Bbe(di(["delimsizing","size"+u],[y],p),bo.TEXT,p,b);return d&&eqe(E,p,bo.TEXT),E},Fbe=function(a,u,d){var p;u==="Size1-Regular"?p="delim-size1":p="delim-size4";var v=di(["delimsizinginner",p],[di([],[Rp(a,u,d)])]);return{type:"elem",elem:v}},Rbe=function(a,u,d){var p=Y4["Size4-Regular"][a.charCodeAt(0)]?Y4["Size4-Regular"][a.charCodeAt(0)][4]:Y4["Size1-Regular"][a.charCodeAt(0)][4],v=new S9("inner",PHt(a,Math.round(1e3*u))),b=new O7([v],{width:Oi(p),height:Oi(u),style:"width:"+Oi(p),viewBox:"0 0 "+1e3*p+" "+Math.round(1e3*u),preserveAspectRatio:"xMinYMin"}),y=A9([],[b],d);return y.height=u,y.style.height=Oi(u),y.style.width=Oi(p),{type:"elem",elem:y}},jbe=.008,DQ={type:"kern",size:-1*jbe},xUt=new Set(["|","\\lvert","\\rvert","\\vert"]),kUt=new Set(["\\|","\\lVert","\\rVert","\\Vert"]),nqe=function(a,u,d,p,v,b){var y,E,_,A,P="",R=0;y=_=A=a,E=null;var B="Size1-Regular";a==="\\uparrow"?_=A="⏐":a==="\\Uparrow"?_=A="‖":a==="\\downarrow"?y=_="⏐":a==="\\Downarrow"?y=_="‖":a==="\\updownarrow"?(y="\\uparrow",_="⏐",A="\\downarrow"):a==="\\Updownarrow"?(y="\\Uparrow",_="‖",A="\\Downarrow"):xUt.has(a)?(_="∣",P="vert",R=333):kUt.has(a)?(_="∥",P="doublevert",R=556):a==="["||a==="\\lbrack"?(y="⎡",_="⎢",A="⎣",B="Size4-Regular",P="lbrack",R=667):a==="]"||a==="\\rbrack"?(y="⎤",_="⎥",A="⎦",B="Size4-Regular",P="rbrack",R=667):a==="\\lfloor"||a==="⌊"?(_=y="⎢",A="⎣",B="Size4-Regular",P="lfloor",R=667):a==="\\lceil"||a==="⌈"?(y="⎡",_=A="⎢",B="Size4-Regular",P="lceil",R=667):a==="\\rfloor"||a==="⌋"?(_=y="⎥",A="⎦",B="Size4-Regular",P="rfloor",R=667):a==="\\rceil"||a==="⌉"?(y="⎤",_=A="⎥",B="Size4-Regular",P="rceil",R=667):a==="("||a==="\\lparen"?(y="⎛",_="⎜",A="⎝",B="Size4-Regular",P="lparen",R=875):a===")"||a==="\\rparen"?(y="⎞",_="⎟",A="⎠",B="Size4-Regular",P="rparen",R=875):a==="\\{"||a==="\\lbrace"?(y="⎧",E="⎨",A="⎩",_="⎪",B="Size4-Regular"):a==="\\}"||a==="\\rbrace"?(y="⎫",E="⎬",A="⎭",_="⎪",B="Size4-Regular"):a==="\\lgroup"||a==="⟮"?(y="⎧",A="⎩",_="⎪",B="Size4-Regular"):a==="\\rgroup"||a==="⟯"?(y="⎫",A="⎭",_="⎪",B="Size4-Regular"):a==="\\lmoustache"||a==="⎰"?(y="⎧",A="⎭",_="⎪",B="Size4-Regular"):(a==="\\rmoustache"||a==="⎱")&&(y="⎫",A="⎩",_="⎪",B="Size4-Regular");var j=wR(y,B,v),W=j.height+j.depth,ee=wR(_,B,v),ie=ee.height+ee.depth,oe=wR(A,B,v),be=oe.height+oe.depth,ge=0,ae=1;if(E!==null){var ne=wR(E,B,v);ge=ne.height+ne.depth,ae=2}var se=W+be+ge,de=Math.max(0,Math.ceil((u-se)/(ae*ie))),X=se+de*ae*ie,pe=p.fontMetrics().axisHeight;d&&(pe*=p.sizeMultiplier);var G=X/2-pe,xe=[];if(P.length>0){var U=X-W-be,Be=Math.round(X*1e3),Pe=BHt(P,Math.round(U*1e3)),je=new S9(P,Pe),Ie=Oi(R/1e3),Se=Oi(Be/1e3),Ce=new O7([je],{width:Ie,height:Se,viewBox:"0 0 "+R+" "+Be}),ke=A9([],[Ce],p);ke.height=Be/1e3,ke.style.width=Ie,ke.style.height=Se,xe.push({type:"elem",elem:ke})}else{if(xe.push(Fbe(A,B,v)),xe.push(DQ),E===null){var Ke=X-W-be+2*jbe;xe.push(Rbe(_,Ke,p))}else{var zt=(X-W-be-ge)/2+2*jbe;xe.push(Rbe(_,zt,p)),xe.push(DQ),xe.push(Fbe(E,B,v)),xe.push(DQ),xe.push(Rbe(_,zt,p))}xe.push(DQ),xe.push(Fbe(y,B,v))}var Ne=p.havingBaseStyle(bo.TEXT),pn=Mu({positionType:"bottom",positionData:G,children:xe});return Bbe(di(["delimsizing","mult"],[pn],Ne),bo.TEXT,p,b)},$be=80,zbe=.08,qbe=function(a,u,d,p,v){var b=NHt(a,p,d),y=new S9(a,b),E=new O7([y],{width:"400em",height:Oi(u),viewBox:"0 0 400000 "+d,preserveAspectRatio:"xMinYMin slice"});return A9(["hide-tail"],[E],v)},TUt=function(a,u){var d=u.havingBaseSizing(),p=oqe("\\surd",a*d.sizeMultiplier,aqe,d),v=d.sizeMultiplier,b=Math.max(0,u.minRuleThickness-u.fontMetrics().sqrtRuleThickness),y,E=0,_=0,A=0,P;return p.type==="small"?(A=1e3+1e3*b+$be,a<1?v=1:a<1.4&&(v=.7),E=(1+b+zbe)/v,_=(1+b)/v,y=qbe("sqrtMain",E,A,b,u),y.style.minWidth="0.853em",P=.833/v):p.type==="large"?(A=(1e3+$be)*yR[p.size],_=(yR[p.size]+b)/v,E=(yR[p.size]+b+zbe)/v,y=qbe("sqrtSize"+p.size,E,A,b,u),y.style.minWidth="1.02em",P=1/v):(E=a+b+zbe,_=a+b,A=Math.floor(1e3*a+b)+$be,y=qbe("sqrtTall",E,A,b,u),y.style.minWidth="0.742em",P=1.056),y.height=_,y.style.height=Oi(E),{span:y,advanceWidth:P,ruleWidth:(u.fontMetrics().sqrtRuleThickness+b)*v}},rqe=new Set(["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"]),EUt=new Set(["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"]),iqe=new Set(["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"]),yR=[0,1.2,1.8,2.4,3],sqe=function(a,u,d,p,v){if(a==="<"||a==="\\lt"||a==="⟨"?a="\\langle":(a===">"||a==="\\gt"||a==="⟩")&&(a="\\rangle"),rqe.has(a)||iqe.has(a))return tqe(a,u,!1,d,p,v);if(EUt.has(a))return nqe(a,yR[u],!1,d,p,v);throw new ki("Illegal delimiter: '"+a+"'")},CUt=[{type:"small",style:bo.SCRIPTSCRIPT},{type:"small",style:bo.SCRIPT},{type:"small",style:bo.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],SUt=[{type:"small",style:bo.SCRIPTSCRIPT},{type:"small",style:bo.SCRIPT},{type:"small",style:bo.TEXT},{type:"stack"}],aqe=[{type:"small",style:bo.SCRIPTSCRIPT},{type:"small",style:bo.SCRIPT},{type:"small",style:bo.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],_Ut=function(a){if(a.type==="small")return"Main-Regular";if(a.type==="large")return"Size"+a.size+"-Regular";if(a.type==="stack")return"Size4-Regular";var u=a.type;throw new Error("Add support for delim type '"+u+"' here.")},oqe=function(a,u,d,p){for(var v=Math.min(2,3-p.style.size),b=v;bu)return y}return d[d.length-1]},Hbe=function(a,u,d,p,v,b){a==="<"||a==="\\lt"||a==="⟨"?a="\\langle":(a===">"||a==="\\gt"||a==="⟩")&&(a="\\rangle");var y;iqe.has(a)?y=CUt:rqe.has(a)?y=aqe:y=SUt;var E=oqe(a,u,y,p);return E.type==="small"?wUt(a,E.style,d,p,v,b):E.type==="large"?tqe(a,E.size,d,p,v,b):nqe(a,u,d,p,v,b)},Ube=function(a,u,d,p,v,b){var y=p.fontMetrics().axisHeight*p.sizeMultiplier,E=901,_=5/p.fontMetrics().ptPerEm,A=Math.max(u-y,d+y),P=Math.max(A/500*E,2*A-_);return Hbe(a,P,!0,p,v,b)},cqe={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},AUt=new Set(["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."]);function IQ(i,a){var u=AQ(i);if(u&&AUt.has(u.text))return u;throw u?new ki("Invalid delimiter '"+u.text+"' after '"+a.funcName+"'",i):new ki("Invalid delimiter type '"+i.type+"'",i)}es({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(i,a)=>{var u=IQ(a[0],i);return{type:"delimsizing",mode:i.parser.mode,size:cqe[i.funcName].size,mclass:cqe[i.funcName].mclass,delim:u.text}},htmlBuilder:(i,a)=>i.delim==="."?di([i.mclass]):sqe(i.delim,i.size,a,i.mode,[i.mclass]),mathmlBuilder:i=>{var a=[];i.delim!=="."&&a.push(Vv(i.delim,i.mode));var u=new Si("mo",a);i.mclass==="mopen"||i.mclass==="mclose"?u.setAttribute("fence","true"):u.setAttribute("fence","false"),u.setAttribute("stretchy","true");var d=Oi(yR[i.size]);return u.setAttribute("minsize",d),u.setAttribute("maxsize",d),u}});function uqe(i){if(!i.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}es({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(i,a)=>{var u=i.parser.gullet.macros.get("\\current@color");if(u&&typeof u!="string")throw new ki("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:i.parser.mode,delim:IQ(a[0],i).text,color:u}}}),es({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(i,a)=>{var u=IQ(a[0],i),d=i.parser;++d.leftrightDepth;var p=d.parseExpression(!1);--d.leftrightDepth,d.expect("\\right",!1);var v=Xo(d.parseFunction(),"leftright-right");return{type:"leftright",mode:d.mode,body:p,left:u.text,right:v.delim,rightColor:v.color}},htmlBuilder:(i,a)=>{uqe(i);for(var u=d1(i.body,a,!0,["mopen","mclose"]),d=0,p=0,v=!1,b=0;b{uqe(i);var u=wm(i.body,a);if(i.left!=="."){var d=new Si("mo",[Vv(i.left,i.mode)]);d.setAttribute("fence","true"),u.unshift(d)}if(i.right!=="."){var p=new Si("mo",[Vv(i.right,i.mode)]);p.setAttribute("fence","true"),i.rightColor&&p.setAttribute("mathcolor",i.rightColor),u.push(p)}return Dbe(u)}}),es({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(i,a)=>{var u=IQ(a[0],i);if(!i.parser.leftrightDepth)throw new ki("\\middle without preceding \\left",u);return{type:"middle",mode:i.parser.mode,delim:u.text}},htmlBuilder:(i,a)=>{var u;if(i.delim===".")u=vR(a,[]);else{u=sqe(i.delim,1,a,i.mode,[]);var d={delim:i.delim,options:a};u.isMiddle=d}return u},mathmlBuilder:(i,a)=>{var u=i.delim==="\\vert"||i.delim==="|"?Vv("|","text"):Vv(i.delim,i.mode),d=new Si("mo",[u]);return d.setAttribute("fence","true"),d.setAttribute("lspace","0.05em"),d.setAttribute("rspace","0.05em"),d}});var OQ=(i,a)=>{var u=qD(Du(i.body,a),a),d=i.label.slice(1),p=a.sizeMultiplier,v,b=0,y=D7(i.body);if(d==="sout")v=di(["stretchy","sout"]),v.height=a.fontMetrics().defaultRuleThickness/p,b=-.5*a.fontMetrics().xHeight;else if(d==="phase"){var E=Uh({number:.6,unit:"pt"},a),_=Uh({number:.35,unit:"ex"},a),A=a.havingBaseSizing();p=p/A.sizeMultiplier;var P=u.height+u.depth+E+_;u.style.paddingLeft=Oi(P/2+E);var R=Math.floor(1e3*P*p),B=IHt(R),j=new O7([new S9("phase",B)],{width:"400em",height:Oi(R/1e3),viewBox:"0 0 400000 "+R,preserveAspectRatio:"xMinYMin slice"});v=A9(["hide-tail"],[j],a),v.style.height=Oi(P),b=u.depth+E+_}else{/cancel/.test(d)?y||u.classes.push("cancel-pad"):d==="angl"?u.classes.push("anglpad"):u.classes.push("boxpad");var W=0,ee=0,ie=0;/box/.test(d)?(ie=Math.max(a.fontMetrics().fboxrule,a.minRuleThickness),W=a.fontMetrics().fboxsep+(d==="colorbox"?0:ie),ee=W):d==="angl"?(ie=Math.max(a.fontMetrics().defaultRuleThickness,a.minRuleThickness),W=4*ie,ee=Math.max(0,.25-u.depth)):(W=y?.2:0,ee=W),v=fUt(u,d,W,ee,a),/fbox|boxed|fcolorbox/.test(d)?(v.style.borderStyle="solid",v.style.borderWidth=Oi(ie)):d==="angl"&&ie!==.049&&(v.style.borderTopWidth=Oi(ie),v.style.borderRightWidth=Oi(ie)),b=u.depth+ee,i.backgroundColor&&(v.style.backgroundColor=i.backgroundColor,i.borderColor&&(v.style.borderColor=i.borderColor))}var oe;if(i.backgroundColor)oe=Mu({positionType:"individualShift",children:[{type:"elem",elem:v,shift:b},{type:"elem",elem:u,shift:0}]});else{var be=/cancel|phase/.test(d)?["svg-align"]:[];oe=Mu({positionType:"individualShift",children:[{type:"elem",elem:u,shift:0},{type:"elem",elem:v,shift:b,wrapperClasses:be}]})}return/cancel/.test(d)&&(oe.height=u.height,oe.depth=u.depth),/cancel/.test(d)&&!y?di(["mord","cancel-lap"],[oe],a):di(["mord"],[oe],a)},NQ=(i,a)=>{var u=0,d=new Si(i.label.includes("colorbox")?"mpadded":"menclose",[Al(i.body,a)]);switch(i.label){case"\\cancel":d.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":d.setAttribute("notation","downdiagonalstrike");break;case"\\phase":d.setAttribute("notation","phasorangle");break;case"\\sout":d.setAttribute("notation","horizontalstrike");break;case"\\fbox":d.setAttribute("notation","box");break;case"\\angl":d.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(u=a.fontMetrics().fboxsep*a.fontMetrics().ptPerEm,d.setAttribute("width","+"+2*u+"pt"),d.setAttribute("height","+"+2*u+"pt"),d.setAttribute("lspace",u+"pt"),d.setAttribute("voffset",u+"pt"),i.label==="\\fcolorbox"){var p=Math.max(a.fontMetrics().fboxrule,a.minRuleThickness);d.setAttribute("style","border: "+Oi(p)+" solid "+i.borderColor)}break;case"\\xcancel":d.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return i.backgroundColor&&d.setAttribute("mathbackground",i.backgroundColor),d};es({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(i,a,u){var{parser:d,funcName:p}=i,v=Xo(a[0],"color-token").color,b=a[1];return{type:"enclose",mode:d.mode,label:p,backgroundColor:v,body:b}},htmlBuilder:OQ,mathmlBuilder:NQ}),es({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(i,a,u){var{parser:d,funcName:p}=i,v=Xo(a[0],"color-token").color,b=Xo(a[1],"color-token").color,y=a[2];return{type:"enclose",mode:d.mode,label:p,backgroundColor:b,borderColor:v,body:y}},htmlBuilder:OQ,mathmlBuilder:NQ}),es({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(i,a){var{parser:u}=i;return{type:"enclose",mode:u.mode,label:"\\fbox",body:a[0]}}}),es({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\phase"],props:{numArgs:1},handler(i,a){var{parser:u,funcName:d}=i,p=a[0];return{type:"enclose",mode:u.mode,label:d,body:p}},htmlBuilder:OQ,mathmlBuilder:NQ}),es({type:"enclose",names:["\\sout"],props:{numArgs:1,allowedInText:!0},handler(i,a){var{parser:u,funcName:d}=i;u.mode==="math"&&u.settings.reportNonstrict("mathVsSout","LaTeX's \\sout works only in text mode");var p=a[0];return{type:"enclose",mode:u.mode,label:d,body:p}},htmlBuilder:OQ,mathmlBuilder:NQ}),es({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(i,a){var{parser:u}=i;return{type:"enclose",mode:u.mode,label:"\\angl",body:a[0]}}});var lqe={};function X4(i){for(var{type:a,names:u,props:d,handler:p,htmlBuilder:v,mathmlBuilder:b}=i,y={type:a,numArgs:d.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:p},E=0;E{var a=i.parser.settings;if(!a.displayMode)throw new ki("{"+i.envName+"} can be used only in display mode.")},LUt=new Set(["gather","gather*"]);function Vbe(i){if(!i.includes("ed"))return!i.includes("*")}function M9(i,a,u){var{hskipBeforeAndAfter:d,addJot:p,cols:v,arraystretch:b,colSeparationType:y,autoTag:E,singleRow:_,emptySingleRow:A,maxNumCols:P,leqno:R}=a;if(i.gullet.beginGroup(),_||i.gullet.macros.set("\\cr","\\\\\\relax"),!b){var B=i.gullet.expandMacroAsText("\\arraystretch");if(B==null)b=1;else if(b=parseFloat(B),!b||b<0)throw new ki("Invalid \\arraystretch: "+B)}i.gullet.beginGroup();var j=[],W=[j],ee=[],ie=[],oe=E!=null?[]:void 0;function be(){E&&i.gullet.macros.set("\\@eqnsw","1",!0)}function ge(){oe&&(i.gullet.macros.get("\\df@tag")?(oe.push(i.subparse([new ym("\\df@tag")])),i.gullet.macros.set("\\df@tag",void 0,!0)):oe.push(!!E&&i.gullet.macros.get("\\@eqnsw")==="1"))}for(be(),ie.push(fqe(i));;){var ae=i.parseExpression(!1,_?"\\end":"\\\\");i.gullet.endGroup(),i.gullet.beginGroup();var ne={type:"ordgroup",mode:i.mode,body:ae};u&&(ne={type:"styling",mode:i.mode,style:u,body:[ne]}),j.push(ne);var se=i.fetch().text;if(se==="&"){if(P&&j.length===P){if(_||y)throw new ki("Too many tab characters: &",i.nextToken);i.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}i.consume()}else if(se==="\\end"){ge(),j.length===1&&ne.type==="styling"&&ne.body.length===1&&ne.body[0].type==="ordgroup"&&ne.body[0].body.length===0&&(W.length>1||!A)&&W.pop(),ie.length0&&(be+=.25),_.push({pos:be,isDashed:gt[on]})}for(ge(b[0]),d=0;d0&&(G+=oe,segt))for(d=0;d=y)){var yt=void 0;if(p>0||a.hskipBeforeAndAfter){var Bt,Ze;yt=(Bt=(Ze=Ne)==null?void 0:Ze.pregap)!=null?Bt:R,yt!==0&&(Pe=di(["arraycolsep"],[]),Pe.style.width=Oi(yt),Be.push(Pe))}var Dt=[];for(d=0;d0){for(var Hs=zD("hline",u,A),mo=zD("hdashline",u,A),Tr=[{type:"elem",elem:ia,shift:0}];_.length>0;){var On=_.pop(),Rn=On.pos-xe;On.isDashed?Tr.push({type:"elem",elem:mo,shift:Rn}):Tr.push({type:"elem",elem:Hs,shift:Rn})}ia=Mu({positionType:"individualShift",children:Tr})}if(Ie.length===0)return di(["mord"],[ia],u);var zn=Mu({positionType:"individualShift",children:Ie}),Ct=di(["tag"],[zn],u);return P7([ia,Ct])},MUt={c:"center ",l:"left ",r:"right "},J4=function(a,u){for(var d=[],p=new Si("mtd",[],["mtr-glue"]),v=new Si("mtd",[],["mml-eqn-num"]),b=0;b0){var j=a.cols,W="",ee=!1,ie=0,oe=j.length;j[0].type==="separator"&&(R+="top ",ie=1),j[j.length-1].type==="separator"&&(R+="bottom ",oe-=1);for(var be=ie;be0?"left ":"",R+=X[X.length-1].length>0?"right ":"";for(var pe=1;pe0&&B&&(ee=1),d[j]={type:"align",align:W,pregap:ee,postgap:0}}return b.colSeparationType=B?"align":"alignat",b};X4({type:"array",names:["array","darray"],props:{numArgs:1},handler(i,a){var u=AQ(a[0]),d=u?[a[0]]:Xo(a[0],"ordgroup").body,p=d.map(function(b){var y=_Q(b),E=y.text;if("lcr".includes(E))return{type:"align",align:E};if(E==="|")return{type:"separator",separator:"|"};if(E===":")return{type:"separator",separator:":"};throw new ki("Unknown column alignment: "+E,b)}),v={cols:p,hskipBeforeAndAfter:!0,maxNumCols:p.length};return M9(i.parser,v,Gbe(i.envName))},htmlBuilder:Q4,mathmlBuilder:J4}),X4({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(i){var a={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[i.envName.replace("*","")],u="c",d={hskipBeforeAndAfter:!1,cols:[{type:"align",align:u}]};if(i.envName.charAt(i.envName.length-1)==="*"){var p=i.parser;if(p.consumeSpaces(),p.fetch().text==="["){if(p.consume(),p.consumeSpaces(),u=p.fetch().text,!"lcr".includes(u))throw new ki("Expected l or c or r",p.nextToken);p.consume(),p.consumeSpaces(),p.expect("]"),p.consume(),d.cols=[{type:"align",align:u}]}}var v=M9(i.parser,d,Gbe(i.envName)),b=Math.max(0,...v.body.map(y=>y.length));return v.cols=new Array(b).fill({type:"align",align:u}),a?{type:"leftright",mode:i.mode,body:[v],left:a[0],right:a[1],rightColor:void 0}:v},htmlBuilder:Q4,mathmlBuilder:J4}),X4({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(i){var a={arraystretch:.5},u=M9(i.parser,a,"script");return u.colSeparationType="small",u},htmlBuilder:Q4,mathmlBuilder:J4}),X4({type:"array",names:["subarray"],props:{numArgs:1},handler(i,a){var u=AQ(a[0]),d=u?[a[0]]:Xo(a[0],"ordgroup").body,p=d.map(function(y){var E=_Q(y),_=E.text;if("lc".includes(_))return{type:"align",align:_};throw new ki("Unknown column alignment: "+_,y)});if(p.length>1)throw new ki("{subarray} can contain only one column");var v={cols:p,hskipBeforeAndAfter:!1,arraystretch:.5},b=M9(i.parser,v,"script");if(b.body.length>0&&b.body[0].length>1)throw new ki("{subarray} can contain only one column");return b},htmlBuilder:Q4,mathmlBuilder:J4}),X4({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(i){var a={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},u=M9(i.parser,a,Gbe(i.envName));return{type:"leftright",mode:i.mode,body:[u],left:i.envName.includes("r")?".":"\\{",right:i.envName.includes("r")?"\\}":".",rightColor:void 0}},htmlBuilder:Q4,mathmlBuilder:J4}),X4({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:dqe,htmlBuilder:Q4,mathmlBuilder:J4}),X4({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(i){LUt.has(i.envName)&&PQ(i);var a={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Vbe(i.envName),emptySingleRow:!0,leqno:i.parser.settings.leqno};return M9(i.parser,a,"display")},htmlBuilder:Q4,mathmlBuilder:J4}),X4({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:dqe,htmlBuilder:Q4,mathmlBuilder:J4}),X4({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(i){PQ(i);var a={autoTag:Vbe(i.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:i.parser.settings.leqno};return M9(i.parser,a,"display")},htmlBuilder:Q4,mathmlBuilder:J4}),X4({type:"array",names:["CD"],props:{numArgs:0},handler(i){return PQ(i),mUt(i.parser)},htmlBuilder:Q4,mathmlBuilder:J4}),et("\\nonumber","\\gdef\\@eqnsw{0}"),et("\\notag","\\nonumber"),es({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(i,a){throw new ki(i.funcName+" valid only within array environment")}});var gqe=lqe;es({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(i,a){var{parser:u,funcName:d}=i,p=a[0];if(p.type!=="ordgroup")throw new ki("Invalid environment name",p);for(var v="",b=0;b{var u=i.font,d=a.withFont(u);return Du(i.body,d)},bqe=(i,a)=>{var u=i.font,d=a.withFont(u);return Al(i.body,d)},mqe={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};es({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(i,a)=>{var{parser:u,funcName:d}=i,p=TQ(a[0]),v=d;return v in mqe&&(v=mqe[v]),{type:"font",mode:u.mode,font:v.slice(1),body:p}},htmlBuilder:pqe,mathmlBuilder:bqe}),es({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(i,a)=>{var{parser:u}=i,d=a[0];return{type:"mclass",mode:u.mode,mclass:MQ(d),body:[{type:"font",mode:u.mode,font:"boldsymbol",body:d}],isCharacterBox:D7(d)}}}),es({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(i,a)=>{var{parser:u,funcName:d,breakOnTokenText:p}=i,{mode:v}=u,b=u.parseExpression(!0,p),y="math"+d.slice(1);return{type:"font",mode:v,font:y,body:{type:"ordgroup",mode:u.mode,body:b}}},htmlBuilder:pqe,mathmlBuilder:bqe});var DUt=(i,a)=>{var u=a.style,d=u.fracNum(),p=u.fracDen(),v;v=a.havingStyle(d);var b=Du(i.numer,v,a);if(i.continued){var y=8.5/a.fontMetrics().ptPerEm,E=3.5/a.fontMetrics().ptPerEm;b.height=b.height0?j=3*R:j=7*R,W=a.fontMetrics().denom1):(P>0?(B=a.fontMetrics().num2,j=R):(B=a.fontMetrics().num3,j=3*R),W=a.fontMetrics().denom2);var ee;if(A){var oe=a.fontMetrics().axisHeight;B-b.depth-(oe+.5*P){var u=new Si("mfrac",[Al(i.numer,a),Al(i.denom,a)]);if(!i.hasBarLine)u.setAttribute("linethickness","0px");else if(i.barSize){var d=Uh(i.barSize,a);u.setAttribute("linethickness",Oi(d))}if(i.leftDelim!=null||i.rightDelim!=null){var p=[];if(i.leftDelim!=null){var v=new Si("mo",[new B0(i.leftDelim.replace("\\",""))]);v.setAttribute("fence","true"),p.push(v)}if(p.push(u),i.rightDelim!=null){var b=new Si("mo",[new B0(i.rightDelim.replace("\\",""))]);b.setAttribute("fence","true"),p.push(b)}return Dbe(p)}return u},vqe=(i,a)=>{if(!a)return i;var u={type:"styling",mode:i.mode,style:a,body:[i]};return u};es({type:"genfrac",names:["\\cfrac","\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(i,a)=>{var{parser:u,funcName:d}=i,p=a[0],v=a[1],b,y=null,E=null;switch(d){case"\\cfrac":case"\\dfrac":case"\\frac":case"\\tfrac":b=!0;break;case"\\\\atopfrac":b=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":b=!1,y="(",E=")";break;case"\\\\bracefrac":b=!1,y="\\{",E="\\}";break;case"\\\\brackfrac":b=!1,y="[",E="]";break;default:throw new Error("Unrecognized genfrac command")}var _=d==="\\cfrac",A=null;return _||d.startsWith("\\d")?A="display":d.startsWith("\\t")&&(A="text"),vqe({type:"genfrac",mode:u.mode,numer:p,denom:v,continued:_,hasBarLine:b,leftDelim:y,rightDelim:E,barSize:null},A)},htmlBuilder:DUt,mathmlBuilder:IUt}),es({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(i){var{parser:a,funcName:u,token:d}=i,p;switch(u){case"\\over":p="\\frac";break;case"\\choose":p="\\binom";break;case"\\atop":p="\\\\atopfrac";break;case"\\brace":p="\\\\bracefrac";break;case"\\brack":p="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:a.mode,replaceWith:p,token:d}}});var wqe=["display","text","script","scriptscript"],yqe=function(a){var u=null;return a.length>0&&(u=a,u=u==="."?null:u),u};es({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(i,a){var{parser:u}=i,d=a[4],p=a[5],v=TQ(a[0]),b=v.type==="atom"&&v.family==="open"?yqe(v.text):null,y=TQ(a[1]),E=y.type==="atom"&&y.family==="close"?yqe(y.text):null,_=Xo(a[2],"size"),A,P=null;_.isBlank?A=!0:(P=_.value,A=P.number>0);var R=null,B=a[3];if(B.type==="ordgroup"){if(B.body.length>0){var j=Xo(B.body[0],"textord");R=wqe[Number(j.text)]}}else B=Xo(B,"textord"),R=wqe[Number(B.text)];return vqe({type:"genfrac",mode:u.mode,numer:d,denom:p,continued:!1,hasBarLine:A,barSize:P,leftDelim:b,rightDelim:E},R)}}),es({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(i,a){var{parser:u,funcName:d,token:p}=i;return{type:"infix",mode:u.mode,replaceWith:"\\\\abovefrac",size:Xo(a[0],"size").value,token:p}}}),es({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(i,a)=>{var{parser:u,funcName:d}=i,p=a[0],v=Xo(a[1],"infix").size;if(!v)throw new Error("\\\\abovefrac expected size, but got "+String(v));var b=a[2],y=v.number>0;return{type:"genfrac",mode:u.mode,numer:p,denom:b,continued:!1,hasBarLine:y,barSize:v,leftDelim:null,rightDelim:null}}});var xqe=(i,a)=>{var u=a.style,d,p;i.type==="supsub"?(d=i.sup?Du(i.sup,a.havingStyle(u.sup()),a):Du(i.sub,a.havingStyle(u.sub()),a),p=Xo(i.base,"horizBrace")):p=Xo(i,"horizBrace");var v=Du(p.base,a.havingBaseStyle(bo.DISPLAY)),b=SQ(p,a),y;if(p.isOver?(y=Mu({positionType:"firstBaseline",children:[{type:"elem",elem:v},{type:"kern",size:.1},{type:"elem",elem:b}]}),y.children[0].children[0].children[1].classes.push("svg-align")):(y=Mu({positionType:"bottom",positionData:v.depth+.1+b.height,children:[{type:"elem",elem:b},{type:"kern",size:.1},{type:"elem",elem:v}]}),y.children[0].children[0].children[0].classes.push("svg-align")),d){var E=di(["minner",p.isOver?"mover":"munder"],[y],a);p.isOver?y=Mu({positionType:"firstBaseline",children:[{type:"elem",elem:E},{type:"kern",size:.2},{type:"elem",elem:d}]}):y=Mu({positionType:"bottom",positionData:E.depth+.2+d.height+d.depth,children:[{type:"elem",elem:d},{type:"kern",size:.2},{type:"elem",elem:E}]})}return di(["minner",p.isOver?"mover":"munder"],[y],a)},OUt=(i,a)=>{var u=CQ(i.label);return new Si(i.isOver?"mover":"munder",[Al(i.base,a),u])};es({type:"horizBrace",names:["\\overbrace","\\underbrace","\\overbracket","\\underbracket"],props:{numArgs:1},handler(i,a){var{parser:u,funcName:d}=i;return{type:"horizBrace",mode:u.mode,label:d,isOver:d.includes("\\over"),base:a[0]}},htmlBuilder:xqe,mathmlBuilder:OUt}),es({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(i,a)=>{var{parser:u}=i,d=a[1],p=Xo(a[0],"url").url;return u.settings.isTrusted({command:"\\href",url:p})?{type:"href",mode:u.mode,href:p,body:P0(d)}:u.formatUnsupportedCmd("\\href")},htmlBuilder:(i,a)=>{var u=d1(i.body,a,!1);return XHt(i.href,[],u,a)},mathmlBuilder:(i,a)=>{var u=L9(i.body,a);return u instanceof Si||(u=new Si("mrow",[u])),u.setAttribute("href",i.href),u}}),es({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(i,a)=>{var{parser:u}=i,d=Xo(a[0],"url").url;if(!u.settings.isTrusted({command:"\\url",url:d}))return u.formatUnsupportedCmd("\\url");for(var p=[],v=0;v{var{parser:u,funcName:d,token:p}=i,v=Xo(a[0],"raw").string,b=a[1];u.settings.strict&&u.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var y,E={};switch(d){case"\\htmlClass":E.class=v,y={command:"\\htmlClass",class:v};break;case"\\htmlId":E.id=v,y={command:"\\htmlId",id:v};break;case"\\htmlStyle":E.style=v,y={command:"\\htmlStyle",style:v};break;case"\\htmlData":{for(var _=v.split(","),A=0;A<_.length;A++){var P=_[A],R=P.indexOf("=");if(R<0)throw new ki("\\htmlData key/value '"+P+"' missing equals sign");var B=P.slice(0,R),j=P.slice(R+1);E["data-"+B.trim()]=j}y={command:"\\htmlData",attributes:E};break}default:throw new Error("Unrecognized html command")}return u.settings.isTrusted(y)?{type:"html",mode:u.mode,attributes:E,body:P0(b)}:u.formatUnsupportedCmd(d)},htmlBuilder:(i,a)=>{var u=d1(i.body,a,!1),d=["enclosing"];i.attributes.class&&d.push(...i.attributes.class.trim().split(/\s+/));var p=di(d,u,a);for(var v in i.attributes)v!=="class"&&i.attributes.hasOwnProperty(v)&&p.setAttribute(v,i.attributes[v]);return p},mathmlBuilder:(i,a)=>L9(i.body,a)}),es({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInArgument:!0,allowedInText:!0},handler:(i,a)=>{var{parser:u}=i;return{type:"htmlmathml",mode:u.mode,html:P0(a[0]),mathml:P0(a[1])}},htmlBuilder:(i,a)=>{var u=d1(i.html,a,!1);return P7(u)},mathmlBuilder:(i,a)=>L9(i.mathml,a)});var Kbe=function(a){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(a))return{number:+a,unit:"bp"};var u=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(a);if(!u)throw new ki("Invalid size: '"+a+"' in \\includegraphics");var d={number:+(u[1]+u[2]),unit:u[3]};if(!wze(d))throw new ki("Invalid unit: '"+d.unit+"' in \\includegraphics.");return d};es({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(i,a,u)=>{var{parser:d}=i,p={number:0,unit:"em"},v={number:.9,unit:"em"},b={number:0,unit:"em"},y="";if(u[0])for(var E=Xo(u[0],"raw").string,_=E.split(","),A=0;A<_.length;A++){var P=_[A].split("=");if(P.length===2){var R=P[1].trim();switch(P[0].trim()){case"alt":y=R;break;case"width":p=Kbe(R);break;case"height":v=Kbe(R);break;case"totalheight":b=Kbe(R);break;default:throw new ki("Invalid key: '"+P[0]+"' in \\includegraphics.")}}}var B=Xo(a[0],"url").url;return y===""&&(y=B,y=y.replace(/^.*[\\/]/,""),y=y.substring(0,y.lastIndexOf("."))),d.settings.isTrusted({command:"\\includegraphics",url:B})?{type:"includegraphics",mode:d.mode,alt:y,width:p,height:v,totalheight:b,src:B}:d.formatUnsupportedCmd("\\includegraphics")},htmlBuilder:(i,a)=>{var u=Uh(i.height,a),d=0;i.totalheight.number>0&&(d=Uh(i.totalheight,a)-u);var p=0;i.width.number>0&&(p=Uh(i.width,a));var v={height:Oi(u+d)};p>0&&(v.width=Oi(p)),d>0&&(v.verticalAlign=Oi(-d));var b=new jHt(i.src,i.alt,v);return b.height=u,b.depth=d,b},mathmlBuilder:(i,a)=>{var u=new Si("mglyph",[]);u.setAttribute("alt",i.alt);var d=Uh(i.height,a),p=0;if(i.totalheight.number>0&&(p=Uh(i.totalheight,a)-d,u.setAttribute("valign",Oi(-p))),u.setAttribute("height",Oi(d+p)),i.width.number>0){var v=Uh(i.width,a);u.setAttribute("width",Oi(v))}return u.setAttribute("src",i.src),u}}),es({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(i,a){var{parser:u,funcName:d}=i,p=Xo(a[0],"size");if(u.settings.strict){var v=d[1]==="m",b=p.value.unit==="mu";v?(b||u.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+d+" supports only mu units, "+("not "+p.value.unit+" units")),u.mode!=="math"&&u.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+d+" works only in math mode")):b&&u.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+d+" doesn't support mu units")}return{type:"kern",mode:u.mode,dimension:p.value}},htmlBuilder(i,a){return Ize(i.dimension,a)},mathmlBuilder(i,a){var u=Uh(i.dimension,a);return new Rze(u)}}),es({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(i,a)=>{var{parser:u,funcName:d}=i,p=a[0];return{type:"lap",mode:u.mode,alignment:d.slice(5),body:p}},htmlBuilder:(i,a)=>{var u;i.alignment==="clap"?(u=di([],[Du(i.body,a)]),u=di(["inner"],[u],a)):u=di(["inner"],[Du(i.body,a)]);var d=di(["fix"],[]),p=di([i.alignment],[u,d],a),v=di(["strut"]);return v.style.height=Oi(p.height+p.depth),p.depth&&(v.style.verticalAlign=Oi(-p.depth)),p.children.unshift(v),p=di(["thinbox"],[p],a),di(["mord","vbox"],[p],a)},mathmlBuilder:(i,a)=>{var u=new Si("mpadded",[Al(i.body,a)]);if(i.alignment!=="rlap"){var d=i.alignment==="llap"?"-1":"-0.5";u.setAttribute("lspace",d+"width")}return u.setAttribute("width","0px"),u}}),es({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(i,a){var{funcName:u,parser:d}=i,p=d.mode;d.switchMode("math");var v=u==="\\("?"\\)":"$",b=d.parseExpression(!1,v);return d.expect(v),d.switchMode(p),{type:"styling",mode:d.mode,style:"text",body:b}}}),es({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(i,a){throw new ki("Mismatched "+i.funcName)}});var kqe=(i,a)=>{switch(a.style.size){case bo.DISPLAY.size:return i.display;case bo.TEXT.size:return i.text;case bo.SCRIPT.size:return i.script;case bo.SCRIPTSCRIPT.size:return i.scriptscript;default:return i.text}};es({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(i,a)=>{var{parser:u}=i;return{type:"mathchoice",mode:u.mode,display:P0(a[0]),text:P0(a[1]),script:P0(a[2]),scriptscript:P0(a[3])}},htmlBuilder:(i,a)=>{var u=kqe(i,a),d=d1(u,a,!1);return P7(d)},mathmlBuilder:(i,a)=>{var u=kqe(i,a);return L9(u,a)}});var Tqe=(i,a,u,d,p,v,b)=>{i=di([],[i]);var y=u&&D7(u),E,_;if(a){var A=Du(a,d.havingStyle(p.sup()),d);_={elem:A,kern:Math.max(d.fontMetrics().bigOpSpacing1,d.fontMetrics().bigOpSpacing3-A.depth)}}if(u){var P=Du(u,d.havingStyle(p.sub()),d);E={elem:P,kern:Math.max(d.fontMetrics().bigOpSpacing2,d.fontMetrics().bigOpSpacing4-P.height)}}var R;if(_&&E){var B=d.fontMetrics().bigOpSpacing5+E.elem.height+E.elem.depth+E.kern+i.depth+b;R=Mu({positionType:"bottom",positionData:B,children:[{type:"kern",size:d.fontMetrics().bigOpSpacing5},{type:"elem",elem:E.elem,marginLeft:Oi(-v)},{type:"kern",size:E.kern},{type:"elem",elem:i},{type:"kern",size:_.kern},{type:"elem",elem:_.elem,marginLeft:Oi(v)},{type:"kern",size:d.fontMetrics().bigOpSpacing5}]})}else if(E){var j=i.height-b;R=Mu({positionType:"top",positionData:j,children:[{type:"kern",size:d.fontMetrics().bigOpSpacing5},{type:"elem",elem:E.elem,marginLeft:Oi(-v)},{type:"kern",size:E.kern},{type:"elem",elem:i}]})}else if(_){var W=i.depth+b;R=Mu({positionType:"bottom",positionData:W,children:[{type:"elem",elem:i},{type:"kern",size:_.kern},{type:"elem",elem:_.elem,marginLeft:Oi(v)},{type:"kern",size:d.fontMetrics().bigOpSpacing5}]})}else return i;var ee=[R];if(E&&v!==0&&!y){var ie=di(["mspace"],[],d);ie.style.marginRight=Oi(v),ee.unshift(ie)}return di(["mop","op-limits"],ee,d)},Eqe=new Set(["\\smallint"]),HD=(i,a)=>{var u,d,p=!1,v;i.type==="supsub"?(u=i.sup,d=i.sub,v=Xo(i.base,"op"),p=!0):v=Xo(i,"op");var b=a.style,y=!1;b.size===bo.DISPLAY.size&&v.symbol&&!Eqe.has(v.name)&&(y=!0);var E;if(v.symbol){var _=y?"Size2-Regular":"Size1-Regular",A="";if((v.name==="\\oiint"||v.name==="\\oiiint")&&(A=v.name.slice(1),v.name=A==="oiint"?"\\iint":"\\iiint"),E=Rp(v.name,_,"math",a,["mop","op-symbol",y?"large-op":"small-op"]),A.length>0){var P=E.italic,R=Nze(A+"Size"+(y?"2":"1"),a);E=Mu({positionType:"individualShift",children:[{type:"elem",elem:E,shift:0},{type:"elem",elem:R,shift:y?.08:0}]}),v.name="\\"+A,E.classes.unshift("mop"),E.italic=P}}else if(v.body){var B=d1(v.body,a,!0);B.length===1&&B[0]instanceof mm?(E=B[0],E.classes[0]="mop"):E=di(["mop"],B,a)}else{for(var j=[],W=1;W{var u;if(i.symbol)u=new Si("mo",[Vv(i.name,i.mode)]),Eqe.has(i.name)&&u.setAttribute("largeop","false");else if(i.body)u=new Si("mo",wm(i.body,a));else{u=new Si("mi",[new B0(i.name.slice(1))]);var d=new Si("mo",[Vv("⁡","text")]);i.parentIsSupSub?u=new Si("mrow",[u,d]):u=Fze([u,d])}return u},NUt={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};es({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(i,a)=>{var{parser:u,funcName:d}=i,p=d;return p.length===1&&(p=NUt[p]),{type:"op",mode:u.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:p}},htmlBuilder:HD,mathmlBuilder:xR}),es({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(i,a)=>{var{parser:u}=i,d=a[0];return{type:"op",mode:u.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:P0(d)}},htmlBuilder:HD,mathmlBuilder:xR});var PUt={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};es({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(i){var{parser:a,funcName:u}=i;return{type:"op",mode:a.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:u}},htmlBuilder:HD,mathmlBuilder:xR}),es({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(i){var{parser:a,funcName:u}=i;return{type:"op",mode:a.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:u}},htmlBuilder:HD,mathmlBuilder:xR}),es({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0,allowedInArgument:!0},handler(i){var{parser:a,funcName:u}=i,d=u;return d.length===1&&(d=PUt[d]),{type:"op",mode:a.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:d}},htmlBuilder:HD,mathmlBuilder:xR});var Cqe=(i,a)=>{var u,d,p=!1,v;i.type==="supsub"?(u=i.sup,d=i.sub,v=Xo(i.base,"operatorname"),p=!0):v=Xo(i,"operatorname");var b;if(v.body.length>0){for(var y=v.body.map(P=>{var R="text"in P?P.text:void 0;return typeof R=="string"?{type:"textord",mode:P.mode,text:R}:P}),E=d1(y,a.withFont("mathrm"),!0),_=0;_{for(var u=wm(i.body,a.withFont("mathrm")),d=!0,p=0;pA.toText()).join("");u=[new B0(y)]}var E=new Si("mi",u);E.setAttribute("mathvariant","normal");var _=new Si("mo",[Vv("⁡","text")]);return i.parentIsSupSub?new Si("mrow",[E,_]):Fze([E,_])};es({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(i,a)=>{var{parser:u,funcName:d}=i,p=a[0];return{type:"operatorname",mode:u.mode,body:P0(p),alwaysHandleSupSub:d==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:Cqe,mathmlBuilder:BUt}),et("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@"),qC({type:"ordgroup",htmlBuilder(i,a){return i.semisimple?P7(d1(i.body,a,!1)):di(["mord"],d1(i.body,a,!0),a)},mathmlBuilder(i,a){return L9(i.body,a,!0)}}),es({type:"overline",names:["\\overline"],props:{numArgs:1},handler(i,a){var{parser:u}=i,d=a[0];return{type:"overline",mode:u.mode,body:d}},htmlBuilder(i,a){var u=Du(i.body,a.havingCrampedStyle()),d=zD("overline-line",a),p=a.fontMetrics().defaultRuleThickness,v=Mu({positionType:"firstBaseline",children:[{type:"elem",elem:u},{type:"kern",size:3*p},{type:"elem",elem:d},{type:"kern",size:p}]});return di(["mord","overline"],[v],a)},mathmlBuilder(i,a){var u=new Si("mo",[new B0("‾")]);u.setAttribute("stretchy","true");var d=new Si("mover",[Al(i.body,a),u]);return d.setAttribute("accent","true"),d}}),es({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(i,a)=>{var{parser:u}=i,d=a[0];return{type:"phantom",mode:u.mode,body:P0(d)}},htmlBuilder:(i,a)=>{var u=d1(i.body,a.withPhantom(),!1);return P7(u)},mathmlBuilder:(i,a)=>{var u=wm(i.body,a);return new Si("mphantom",u)}}),et("\\hphantom","\\smash{\\phantom{#1}}"),es({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(i,a)=>{var{parser:u}=i,d=a[0];return{type:"vphantom",mode:u.mode,body:d}},htmlBuilder:(i,a)=>{var u=di(["inner"],[Du(i.body,a.withPhantom())]),d=di(["fix"],[]);return di(["mord","rlap"],[u,d],a)},mathmlBuilder:(i,a)=>{var u=wm(P0(i.body),a),d=new Si("mphantom",u),p=new Si("mpadded",[d]);return p.setAttribute("width","0px"),p}}),es({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(i,a){var{parser:u}=i,d=Xo(a[0],"size").value,p=a[1];return{type:"raisebox",mode:u.mode,dy:d,body:p}},htmlBuilder(i,a){var u=Du(i.body,a),d=Uh(i.dy,a);return Mu({positionType:"shift",positionData:-d,children:[{type:"elem",elem:u}]})},mathmlBuilder(i,a){var u=new Si("mpadded",[Al(i.body,a)]),d=i.dy.number+i.dy.unit;return u.setAttribute("voffset",d),u}}),es({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(i){var{parser:a}=i;return{type:"internal",mode:a.mode}}}),es({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(i,a,u){var{parser:d}=i,p=u[0],v=Xo(a[0],"size"),b=Xo(a[1],"size");return{type:"rule",mode:d.mode,shift:p&&Xo(p,"size").value,width:v.value,height:b.value}},htmlBuilder(i,a){var u=di(["mord","rule"],[],a),d=Uh(i.width,a),p=Uh(i.height,a),v=i.shift?Uh(i.shift,a):0;return u.style.borderRightWidth=Oi(d),u.style.borderTopWidth=Oi(p),u.style.bottom=Oi(v),u.width=d,u.height=p+v,u.depth=-v,u.maxFontSize=p*1.125*a.sizeMultiplier,u},mathmlBuilder(i,a){var u=Uh(i.width,a),d=Uh(i.height,a),p=i.shift?Uh(i.shift,a):0,v=a.color&&a.getColor()||"black",b=new Si("mspace");b.setAttribute("mathbackground",v),b.setAttribute("width",Oi(u)),b.setAttribute("height",Oi(d));var y=new Si("mpadded",[b]);return p>=0?y.setAttribute("height",Oi(p)):(y.setAttribute("height",Oi(p)),y.setAttribute("depth",Oi(-p))),y.setAttribute("voffset",Oi(p)),y}});function Sqe(i,a,u){for(var d=d1(i,a,!1),p=a.sizeMultiplier/u.sizeMultiplier,v=0;v{var u=a.havingSize(i.size);return Sqe(i.body,u,a)};es({type:"sizing",names:_qe,props:{numArgs:0,allowedInText:!0},handler:(i,a)=>{var{breakOnTokenText:u,funcName:d,parser:p}=i,v=p.parseExpression(!1,u);return{type:"sizing",mode:p.mode,size:_qe.indexOf(d)+1,body:v}},htmlBuilder:FUt,mathmlBuilder:(i,a)=>{var u=a.havingSize(i.size),d=wm(i.body,u),p=new Si("mstyle",d);return p.setAttribute("mathsize",Oi(u.sizeMultiplier)),p}}),es({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(i,a,u)=>{var{parser:d}=i,p=!1,v=!1,b=u[0]&&Xo(u[0],"ordgroup");if(b)for(var y="",E=0;E{var u=di([],[Du(i.body,a)]);if(!i.smashHeight&&!i.smashDepth)return u;if(i.smashHeight&&(u.height=0),i.smashDepth&&(u.depth=0),i.smashHeight&&i.smashDepth)return di(["mord","smash"],[u],a);if(u.children)for(var d=0;d{var u=new Si("mpadded",[Al(i.body,a)]);return i.smashHeight&&u.setAttribute("height","0px"),i.smashDepth&&u.setAttribute("depth","0px"),u}}),es({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(i,a,u){var{parser:d}=i,p=u[0],v=a[0];return{type:"sqrt",mode:d.mode,body:v,index:p}},htmlBuilder(i,a){var u=Du(i.body,a.havingCrampedStyle());u.height===0&&(u.height=a.fontMetrics().xHeight),u=qD(u,a);var d=a.fontMetrics(),p=d.defaultRuleThickness,v=p;a.style.idu.height+u.depth+b&&(b=(b+P-u.height-u.depth)/2);var R=E.height-u.height-b-_;u.style.paddingLeft=Oi(A);var B=Mu({positionType:"firstBaseline",children:[{type:"elem",elem:u,wrapperClasses:["svg-align"]},{type:"kern",size:-(u.height+R)},{type:"elem",elem:E},{type:"kern",size:_}]});if(i.index){var j=a.havingStyle(bo.SCRIPTSCRIPT),W=Du(i.index,j,a),ee=.6*(B.height-B.depth),ie=Mu({positionType:"shift",positionData:-ee,children:[{type:"elem",elem:W}]}),oe=di(["root"],[ie]);return di(["mord","sqrt"],[oe,B],a)}else return di(["mord","sqrt"],[B],a)},mathmlBuilder(i,a){var{body:u,index:d}=i;return d?new Si("mroot",[Al(u,a),Al(d,a)]):new Si("msqrt",[Al(u,a)])}});var Aqe={display:bo.DISPLAY,text:bo.TEXT,script:bo.SCRIPT,scriptscript:bo.SCRIPTSCRIPT};es({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(i,a){var{breakOnTokenText:u,funcName:d,parser:p}=i,v=p.parseExpression(!0,u),b=d.slice(1,d.length-5);return{type:"styling",mode:p.mode,style:b,body:v}},htmlBuilder(i,a){var u=Aqe[i.style],d=a.havingStyle(u).withFont("");return Sqe(i.body,d,a)},mathmlBuilder(i,a){var u=Aqe[i.style],d=a.havingStyle(u),p=wm(i.body,d),v=new Si("mstyle",p),b={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},y=b[i.style];return v.setAttribute("scriptlevel",y[0]),v.setAttribute("displaystyle",y[1]),v}});var RUt=function(a,u){var d=a.base;if(d)if(d.type==="op"){var p=d.limits&&(u.style.size===bo.DISPLAY.size||d.alwaysHandleSupSub);return p?HD:null}else if(d.type==="operatorname"){var v=d.alwaysHandleSupSub&&(u.style.size===bo.DISPLAY.size||d.limits);return v?Cqe:null}else{if(d.type==="accent")return D7(d.base)?Nbe:null;if(d.type==="horizBrace"){var b=!a.sub;return b===d.isOver?xqe:null}else return null}else return null};qC({type:"supsub",htmlBuilder(i,a){var u=RUt(i,a);if(u)return u(i,a);var{base:d,sup:p,sub:v}=i,b=Du(d,a),y,E,_=a.fontMetrics(),A=0,P=0,R=d&&D7(d);if(p){var B=a.havingStyle(a.style.sup());y=Du(p,B,a),R||(A=b.height-B.fontMetrics().supDrop*B.sizeMultiplier/a.sizeMultiplier)}if(v){var j=a.havingStyle(a.style.sub());E=Du(v,j,a),R||(P=b.depth+j.fontMetrics().subDrop*j.sizeMultiplier/a.sizeMultiplier)}var W;a.style===bo.DISPLAY?W=_.sup1:a.style.cramped?W=_.sup3:W=_.sup2;var ee=a.sizeMultiplier,ie=Oi(.5/_.ptPerEm/ee),oe=null;if(E){var be=i.base&&i.base.type==="op"&&i.base.name&&(i.base.name==="\\oiint"||i.base.name==="\\oiiint");(b instanceof mm||be)&&(oe=Oi(-b.italic))}var ge;if(y&&E){A=Math.max(A,W,y.depth+.25*_.xHeight),P=Math.max(P,_.sub2);var ae=_.defaultRuleThickness,ne=4*ae;if(A-y.depth-(E.height-P)0&&(A+=se,P-=se)}var de=[{type:"elem",elem:E,shift:P,marginRight:ie,marginLeft:oe},{type:"elem",elem:y,shift:-A,marginRight:ie}];ge=Mu({positionType:"individualShift",children:de})}else if(E){P=Math.max(P,_.sub1,E.height-.8*_.xHeight);var X=[{type:"elem",elem:E,marginLeft:oe,marginRight:ie}];ge=Mu({positionType:"shift",positionData:P,children:X})}else if(y)A=Math.max(A,W,y.depth+.25*_.xHeight),ge=Mu({positionType:"shift",positionData:-A,children:[{type:"elem",elem:y,marginRight:ie}]});else throw new Error("supsub must have either sup or sub.");var pe=Lbe(b,"right")||"mord";return di([pe],[b,di(["msupsub"],[ge])],a)},mathmlBuilder(i,a){var u=!1,d,p;i.base&&i.base.type==="horizBrace"&&(p=!!i.sup,p===i.base.isOver&&(u=!0,d=i.base.isOver)),i.base&&(i.base.type==="op"||i.base.type==="operatorname")&&(i.base.parentIsSupSub=!0);var v=[Al(i.base,a)];i.sub&&v.push(Al(i.sub,a)),i.sup&&v.push(Al(i.sup,a));var b;if(u)b=d?"mover":"munder";else if(i.sub)if(i.sup){var _=i.base;_&&_.type==="op"&&_.limits&&a.style===bo.DISPLAY||_&&_.type==="operatorname"&&_.alwaysHandleSupSub&&(a.style===bo.DISPLAY||_.limits)?b="munderover":b="msubsup"}else{var E=i.base;E&&E.type==="op"&&E.limits&&(a.style===bo.DISPLAY||E.alwaysHandleSupSub)||E&&E.type==="operatorname"&&E.alwaysHandleSupSub&&(E.limits||a.style===bo.DISPLAY)?b="munder":b="msub"}else{var y=i.base;y&&y.type==="op"&&y.limits&&(a.style===bo.DISPLAY||y.alwaysHandleSupSub)||y&&y.type==="operatorname"&&y.alwaysHandleSupSub&&(y.limits||a.style===bo.DISPLAY)?b="mover":b="msup"}return new Si(b,v)}}),qC({type:"atom",htmlBuilder(i,a){return Ebe(i.text,i.mode,a,["m"+i.family])},mathmlBuilder(i,a){var u=new Si("mo",[Vv(i.text,i.mode)]);if(i.family==="bin"){var d=Ibe(i,a);d==="bold-italic"&&u.setAttribute("mathvariant",d)}else i.family==="punct"?u.setAttribute("separator","true"):(i.family==="open"||i.family==="close")&&u.setAttribute("stretchy","false");return u}});var Lqe={mi:"italic",mn:"normal",mtext:"normal"};qC({type:"mathord",htmlBuilder(i,a){return wQ(i,a,"mathord")},mathmlBuilder(i,a){var u=new Si("mi",[Vv(i.text,i.mode,a)]),d=Ibe(i,a)||"italic";return d!==Lqe[u.type]&&u.setAttribute("mathvariant",d),u}}),qC({type:"textord",htmlBuilder(i,a){return wQ(i,a,"textord")},mathmlBuilder(i,a){var u=Vv(i.text,i.mode,a),d=Ibe(i,a)||"normal",p;return i.mode==="text"?p=new Si("mtext",[u]):/[0-9]/.test(i.text)?p=new Si("mn",[u]):i.text==="\\prime"?p=new Si("mo",[u]):p=new Si("mi",[u]),d!==Lqe[p.type]&&p.setAttribute("mathvariant",d),p}});var Wbe={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Ybe={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};qC({type:"spacing",htmlBuilder(i,a){if(Ybe.hasOwnProperty(i.text)){var u=Ybe[i.text].className||"";if(i.mode==="text"){var d=wQ(i,a,"textord");return d.classes.push(u),d}else return di(["mspace",u],[Ebe(i.text,i.mode,a)],a)}else{if(Wbe.hasOwnProperty(i.text))return di(["mspace",Wbe[i.text]],[],a);throw new ki('Unknown type of space "'+i.text+'"')}},mathmlBuilder(i,a){var u;if(Ybe.hasOwnProperty(i.text))u=new Si("mtext",[new B0(" ")]);else{if(Wbe.hasOwnProperty(i.text))return new Si("mspace");throw new ki('Unknown type of space "'+i.text+'"')}return u}});var Mqe=()=>{var i=new Si("mtd",[]);return i.setAttribute("width","50%"),i};qC({type:"tag",mathmlBuilder(i,a){var u=new Si("mtable",[new Si("mtr",[Mqe(),new Si("mtd",[L9(i.body,a)]),Mqe(),new Si("mtd",[L9(i.tag,a)])])]);return u.setAttribute("width","100%"),u}});var Dqe={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},Iqe={"\\textbf":"textbf","\\textmd":"textmd"},jUt={"\\textit":"textit","\\textup":"textup"},Oqe=(i,a)=>{var u=i.font;if(u){if(Dqe[u])return a.withTextFontFamily(Dqe[u]);if(Iqe[u])return a.withTextFontWeight(Iqe[u]);if(u==="\\emph")return a.fontShape==="textit"?a.withTextFontShape("textup"):a.withTextFontShape("textit")}else return a;return a.withTextFontShape(jUt[u])};es({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(i,a){var{parser:u,funcName:d}=i,p=a[0];return{type:"text",mode:u.mode,body:P0(p),font:d}},htmlBuilder(i,a){var u=Oqe(i,a),d=d1(i.body,u,!0);return di(["mord","text"],d,u)},mathmlBuilder(i,a){var u=Oqe(i,a);return L9(i.body,u)}}),es({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(i,a){var{parser:u}=i;return{type:"underline",mode:u.mode,body:a[0]}},htmlBuilder(i,a){var u=Du(i.body,a),d=zD("underline-line",a),p=a.fontMetrics().defaultRuleThickness,v=Mu({positionType:"top",positionData:u.height,children:[{type:"kern",size:p},{type:"elem",elem:d},{type:"kern",size:3*p},{type:"elem",elem:u}]});return di(["mord","underline"],[v],a)},mathmlBuilder(i,a){var u=new Si("mo",[new B0("‾")]);u.setAttribute("stretchy","true");var d=new Si("munder",[Al(i.body,a),u]);return d.setAttribute("accentunder","true"),d}}),es({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(i,a){var{parser:u}=i;return{type:"vcenter",mode:u.mode,body:a[0]}},htmlBuilder(i,a){var u=Du(i.body,a),d=a.fontMetrics().axisHeight,p=.5*(u.height-d-(u.depth+d));return Mu({positionType:"shift",positionData:p,children:[{type:"elem",elem:u}]})},mathmlBuilder(i,a){var u=new Si("mpadded",[Al(i.body,a)],["vcenter"]);return new Si("mrow",[u])}}),es({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(i,a,u){throw new ki("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(i,a){for(var u=Nqe(i),d=[],p=a.havingStyle(a.style.text()),v=0;vi.body.replace(/ /g,i.star?"␣":" "),D9=Pze,Pqe=`[ \r + ]`,$Ut="\\\\[a-zA-Z@]+",zUt="\\\\[^\uD800-\uDFFF]",qUt="("+$Ut+")"+Pqe+"*",HUt=`\\\\( +|[ \r ]+ +?)[ \r ]*`,Xbe="[̀-ͯ]",UUt=new RegExp(Xbe+"+$"),VUt="("+Pqe+"+)|"+(HUt+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(Xbe+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(Xbe+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+qUt)+("|"+zUt+")");class Bqe{constructor(a,u){this.input=a,this.settings=u,this.tokenRegex=new RegExp(VUt,"g"),this.catcodes={"%":14,"~":13}}setCatcode(a,u){this.catcodes[a]=u}lex(){var a=this.input,u=this.tokenRegex.lastIndex;if(u===a.length)return new ym("EOF",new W2(this,u,u));var d=this.tokenRegex.exec(a);if(d===null||d.index!==u)throw new ki("Unexpected character: '"+a[u]+"'",new ym(a[u],new W2(this,u,u+1)));var p=d[6]||d[3]||(d[2]?"\\ ":" ");if(this.catcodes[p]===14){var v=a.indexOf(` +`,this.tokenRegex.lastIndex);return v===-1?(this.tokenRegex.lastIndex=a.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=v+1,this.lex()}return new ym(p,new W2(this,u,this.tokenRegex.lastIndex))}}class GUt{constructor(a,u){a===void 0&&(a={}),u===void 0&&(u={}),this.current=u,this.builtins=a,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new ki("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var a=this.undefStack.pop();for(var u in a)a.hasOwnProperty(u)&&(a[u]==null?delete this.current[u]:this.current[u]=a[u])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(a){return this.current.hasOwnProperty(a)||this.builtins.hasOwnProperty(a)}get(a){return this.current.hasOwnProperty(a)?this.current[a]:this.builtins[a]}set(a,u,d){if(d===void 0&&(d=!1),d){for(var p=0;p0&&(this.undefStack[this.undefStack.length-1][a]=u)}else{var v=this.undefStack[this.undefStack.length-1];v&&!v.hasOwnProperty(a)&&(v[a]=this.current[a])}u==null?delete this.current[a]:this.current[a]=u}}var KUt=hqe;et("\\noexpand",function(i){var a=i.popToken();return i.isExpandable(a.text)&&(a.noexpand=!0,a.treatAsRelax=!0),{tokens:[a],numArgs:0}}),et("\\expandafter",function(i){var a=i.popToken();return i.expandOnce(!0),{tokens:[a],numArgs:0}}),et("\\@firstoftwo",function(i){var a=i.consumeArgs(2);return{tokens:a[0],numArgs:0}}),et("\\@secondoftwo",function(i){var a=i.consumeArgs(2);return{tokens:a[1],numArgs:0}}),et("\\@ifnextchar",function(i){var a=i.consumeArgs(3);i.consumeSpaces();var u=i.future();return a[0].length===1&&a[0][0].text===u.text?{tokens:a[1],numArgs:0}:{tokens:a[2],numArgs:0}}),et("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),et("\\TextOrMath",function(i){var a=i.consumeArgs(2);return i.mode==="text"?{tokens:a[0],numArgs:0}:{tokens:a[1],numArgs:0}});var Fqe={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};et("\\char",function(i){var a=i.popToken(),u,d=0;if(a.text==="'")u=8,a=i.popToken();else if(a.text==='"')u=16,a=i.popToken();else if(a.text==="`")if(a=i.popToken(),a.text[0]==="\\")d=a.text.charCodeAt(1);else{if(a.text==="EOF")throw new ki("\\char` missing argument");d=a.text.charCodeAt(0)}else u=10;if(u){if(d=Fqe[a.text],d==null||d>=u)throw new ki("Invalid base-"+u+" digit "+a.text);for(var p;(p=Fqe[i.future().text])!=null&&p{var p=i.consumeArg().tokens;if(p.length!==1)throw new ki("\\newcommand's first argument must be a macro name");var v=p[0].text,b=i.isDefined(v);if(b&&!a)throw new ki("\\newcommand{"+v+"} attempting to redefine "+(v+"; use \\renewcommand"));if(!b&&!u)throw new ki("\\renewcommand{"+v+"} when command "+v+" does not yet exist; use \\newcommand");var y=0;if(p=i.consumeArg().tokens,p.length===1&&p[0].text==="["){for(var E="",_=i.expandNextToken();_.text!=="]"&&_.text!=="EOF";)E+=_.text,_=i.expandNextToken();if(!E.match(/^\s*[0-9]+\s*$/))throw new ki("Invalid number of arguments: "+E);y=parseInt(E),p=i.consumeArg().tokens}return b&&d||i.macros.set(v,{tokens:p,numArgs:y}),""};et("\\newcommand",i=>Qbe(i,!1,!0,!1)),et("\\renewcommand",i=>Qbe(i,!0,!1,!1)),et("\\providecommand",i=>Qbe(i,!0,!0,!0)),et("\\message",i=>{var a=i.consumeArgs(1)[0];return console.log(a.reverse().map(u=>u.text).join("")),""}),et("\\errmessage",i=>{var a=i.consumeArgs(1)[0];return console.error(a.reverse().map(u=>u.text).join("")),""}),et("\\show",i=>{var a=i.popToken(),u=a.text;return console.log(a,i.macros.get(u),D9[u],vh.math[u],vh.text[u]),""}),et("\\bgroup","{"),et("\\egroup","}"),et("~","\\nobreakspace"),et("\\lq","`"),et("\\rq","'"),et("\\aa","\\r a"),et("\\AA","\\r A"),et("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}"),et("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}"),et("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}"),et("ℬ","\\mathscr{B}"),et("ℰ","\\mathscr{E}"),et("ℱ","\\mathscr{F}"),et("ℋ","\\mathscr{H}"),et("ℐ","\\mathscr{I}"),et("ℒ","\\mathscr{L}"),et("ℳ","\\mathscr{M}"),et("ℛ","\\mathscr{R}"),et("ℭ","\\mathfrak{C}"),et("ℌ","\\mathfrak{H}"),et("ℨ","\\mathfrak{Z}"),et("\\Bbbk","\\Bbb{k}"),et("\\llap","\\mathllap{\\textrm{#1}}"),et("\\rlap","\\mathrlap{\\textrm{#1}}"),et("\\clap","\\mathclap{\\textrm{#1}}"),et("\\mathstrut","\\vphantom{(}"),et("\\underbar","\\underline{\\text{#1}}"),et("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}\\nobreak}{\\char"338}'),et("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}"),et("\\ne","\\neq"),et("≠","\\neq"),et("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}"),et("∉","\\notin"),et("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}"),et("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}"),et("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}"),et("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}"),et("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}"),et("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}"),et("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}"),et("⟂","\\perp"),et("‼","\\mathclose{!\\mkern-0.8mu!}"),et("∌","\\notni"),et("⌜","\\ulcorner"),et("⌝","\\urcorner"),et("⌞","\\llcorner"),et("⌟","\\lrcorner"),et("©","\\copyright"),et("®","\\textregistered"),et("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}'),et("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}'),et("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}'),et("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}'),et("\\vdots","{\\varvdots\\rule{0pt}{15pt}}"),et("⋮","\\vdots"),et("\\varGamma","\\mathit{\\Gamma}"),et("\\varDelta","\\mathit{\\Delta}"),et("\\varTheta","\\mathit{\\Theta}"),et("\\varLambda","\\mathit{\\Lambda}"),et("\\varXi","\\mathit{\\Xi}"),et("\\varPi","\\mathit{\\Pi}"),et("\\varSigma","\\mathit{\\Sigma}"),et("\\varUpsilon","\\mathit{\\Upsilon}"),et("\\varPhi","\\mathit{\\Phi}"),et("\\varPsi","\\mathit{\\Psi}"),et("\\varOmega","\\mathit{\\Omega}"),et("\\substack","\\begin{subarray}{c}#1\\end{subarray}"),et("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax"),et("\\boxed","\\fbox{$\\displaystyle{#1}$}"),et("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;"),et("\\implies","\\DOTSB\\;\\Longrightarrow\\;"),et("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;"),et("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}"),et("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");var Rqe={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"},WUt=new Set(["bin","rel"]);et("\\dots",function(i){var a="\\dotso",u=i.expandAfterFuture().text;return u in Rqe?a=Rqe[u]:(u.slice(0,4)==="\\not"||u in vh.math&&WUt.has(vh.math[u].group))&&(a="\\dotsb"),a});var Jbe={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};et("\\dotso",function(i){var a=i.future().text;return a in Jbe?"\\ldots\\,":"\\ldots"}),et("\\dotsc",function(i){var a=i.future().text;return a in Jbe&&a!==","?"\\ldots\\,":"\\ldots"}),et("\\cdots",function(i){var a=i.future().text;return a in Jbe?"\\@cdots\\,":"\\@cdots"}),et("\\dotsb","\\cdots"),et("\\dotsm","\\cdots"),et("\\dotsi","\\!\\cdots"),et("\\dotsx","\\ldots\\,"),et("\\DOTSI","\\relax"),et("\\DOTSB","\\relax"),et("\\DOTSX","\\relax"),et("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),et("\\,","\\tmspace+{3mu}{.1667em}"),et("\\thinspace","\\,"),et("\\>","\\mskip{4mu}"),et("\\:","\\tmspace+{4mu}{.2222em}"),et("\\medspace","\\:"),et("\\;","\\tmspace+{5mu}{.2777em}"),et("\\thickspace","\\;"),et("\\!","\\tmspace-{3mu}{.1667em}"),et("\\negthinspace","\\!"),et("\\negmedspace","\\tmspace-{4mu}{.2222em}"),et("\\negthickspace","\\tmspace-{5mu}{.277em}"),et("\\enspace","\\kern.5em "),et("\\enskip","\\hskip.5em\\relax"),et("\\quad","\\hskip1em\\relax"),et("\\qquad","\\hskip2em\\relax"),et("\\tag","\\@ifstar\\tag@literal\\tag@paren"),et("\\tag@paren","\\tag@literal{({#1})}"),et("\\tag@literal",i=>{if(i.macros.get("\\df@tag"))throw new ki("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"}),et("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),et("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),et("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),et("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),et("\\newline","\\\\\\relax"),et("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var jqe=Oi(Y4["Main-Regular"]["T".charCodeAt(0)][1]-.7*Y4["Main-Regular"]["A".charCodeAt(0)][1]);et("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+jqe+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}"),et("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+jqe+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}"),et("\\hspace","\\@ifstar\\@hspacer\\@hspace"),et("\\@hspace","\\hskip #1\\relax"),et("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),et("\\ordinarycolon",":"),et("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),et("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),et("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),et("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),et("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),et("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),et("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),et("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),et("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),et("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),et("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),et("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),et("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),et("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),et("∷","\\dblcolon"),et("∹","\\eqcolon"),et("≔","\\coloneqq"),et("≕","\\eqqcolon"),et("⩴","\\Coloneqq"),et("\\ratio","\\vcentcolon"),et("\\coloncolon","\\dblcolon"),et("\\colonequals","\\coloneqq"),et("\\coloncolonequals","\\Coloneqq"),et("\\equalscolon","\\eqqcolon"),et("\\equalscoloncolon","\\Eqqcolon"),et("\\colonminus","\\coloneq"),et("\\coloncolonminus","\\Coloneq"),et("\\minuscolon","\\eqcolon"),et("\\minuscoloncolon","\\Eqcolon"),et("\\coloncolonapprox","\\Colonapprox"),et("\\coloncolonsim","\\Colonsim"),et("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),et("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),et("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),et("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),et("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"),et("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),et("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),et("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),et("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),et("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),et("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),et("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),et("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),et("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}"),et("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}"),et("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}"),et("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}"),et("\\nleqq","\\html@mathml{\\@nleqq}{≰}"),et("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}"),et("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}"),et("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}"),et("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}"),et("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}"),et("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}"),et("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}"),et("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}"),et("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}"),et("\\imath","\\html@mathml{\\@imath}{ı}"),et("\\jmath","\\html@mathml{\\@jmath}{ȷ}"),et("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"),et("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"),et("⟦","\\llbracket"),et("⟧","\\rrbracket"),et("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"),et("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"),et("⦃","\\lBrace"),et("⦄","\\rBrace"),et("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"),et("⦵","\\minuso"),et("\\darr","\\downarrow"),et("\\dArr","\\Downarrow"),et("\\Darr","\\Downarrow"),et("\\lang","\\langle"),et("\\rang","\\rangle"),et("\\uarr","\\uparrow"),et("\\uArr","\\Uparrow"),et("\\Uarr","\\Uparrow"),et("\\N","\\mathbb{N}"),et("\\R","\\mathbb{R}"),et("\\Z","\\mathbb{Z}"),et("\\alef","\\aleph"),et("\\alefsym","\\aleph"),et("\\Alpha","\\mathrm{A}"),et("\\Beta","\\mathrm{B}"),et("\\bull","\\bullet"),et("\\Chi","\\mathrm{X}"),et("\\clubs","\\clubsuit"),et("\\cnums","\\mathbb{C}"),et("\\Complex","\\mathbb{C}"),et("\\Dagger","\\ddagger"),et("\\diamonds","\\diamondsuit"),et("\\empty","\\emptyset"),et("\\Epsilon","\\mathrm{E}"),et("\\Eta","\\mathrm{H}"),et("\\exist","\\exists"),et("\\harr","\\leftrightarrow"),et("\\hArr","\\Leftrightarrow"),et("\\Harr","\\Leftrightarrow"),et("\\hearts","\\heartsuit"),et("\\image","\\Im"),et("\\infin","\\infty"),et("\\Iota","\\mathrm{I}"),et("\\isin","\\in"),et("\\Kappa","\\mathrm{K}"),et("\\larr","\\leftarrow"),et("\\lArr","\\Leftarrow"),et("\\Larr","\\Leftarrow"),et("\\lrarr","\\leftrightarrow"),et("\\lrArr","\\Leftrightarrow"),et("\\Lrarr","\\Leftrightarrow"),et("\\Mu","\\mathrm{M}"),et("\\natnums","\\mathbb{N}"),et("\\Nu","\\mathrm{N}"),et("\\Omicron","\\mathrm{O}"),et("\\plusmn","\\pm"),et("\\rarr","\\rightarrow"),et("\\rArr","\\Rightarrow"),et("\\Rarr","\\Rightarrow"),et("\\real","\\Re"),et("\\reals","\\mathbb{R}"),et("\\Reals","\\mathbb{R}"),et("\\Rho","\\mathrm{P}"),et("\\sdot","\\cdot"),et("\\sect","\\S"),et("\\spades","\\spadesuit"),et("\\sub","\\subset"),et("\\sube","\\subseteq"),et("\\supe","\\supseteq"),et("\\Tau","\\mathrm{T}"),et("\\thetasym","\\vartheta"),et("\\weierp","\\wp"),et("\\Zeta","\\mathrm{Z}"),et("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),et("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),et("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),et("\\bra","\\mathinner{\\langle{#1}|}"),et("\\ket","\\mathinner{|{#1}\\rangle}"),et("\\braket","\\mathinner{\\langle{#1}\\rangle}"),et("\\Bra","\\left\\langle#1\\right|"),et("\\Ket","\\left|#1\\right\\rangle");var $qe=i=>a=>{var u=a.consumeArg().tokens,d=a.consumeArg().tokens,p=a.consumeArg().tokens,v=a.consumeArg().tokens,b=a.macros.get("|"),y=a.macros.get("\\|");a.macros.beginGroup();var E=P=>R=>{i&&(R.macros.set("|",b),p.length&&R.macros.set("\\|",y));var B=P;if(!P&&p.length){var j=R.future();j.text==="|"&&(R.popToken(),B=!0)}return{tokens:B?p:d,numArgs:0}};a.macros.set("|",E(!1)),p.length&&a.macros.set("\\|",E(!0));var _=a.consumeArg().tokens,A=a.expandTokens([...v,..._,...u]);return a.macros.endGroup(),{tokens:A.reverse(),numArgs:0}};et("\\bra@ket",$qe(!1)),et("\\bra@set",$qe(!0)),et("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),et("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),et("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),et("\\angln","{\\angl n}"),et("\\blue","\\textcolor{##6495ed}{#1}"),et("\\orange","\\textcolor{##ffa500}{#1}"),et("\\pink","\\textcolor{##ff00af}{#1}"),et("\\red","\\textcolor{##df0030}{#1}"),et("\\green","\\textcolor{##28ae7b}{#1}"),et("\\gray","\\textcolor{gray}{#1}"),et("\\purple","\\textcolor{##9d38bd}{#1}"),et("\\blueA","\\textcolor{##ccfaff}{#1}"),et("\\blueB","\\textcolor{##80f6ff}{#1}"),et("\\blueC","\\textcolor{##63d9ea}{#1}"),et("\\blueD","\\textcolor{##11accd}{#1}"),et("\\blueE","\\textcolor{##0c7f99}{#1}"),et("\\tealA","\\textcolor{##94fff5}{#1}"),et("\\tealB","\\textcolor{##26edd5}{#1}"),et("\\tealC","\\textcolor{##01d1c1}{#1}"),et("\\tealD","\\textcolor{##01a995}{#1}"),et("\\tealE","\\textcolor{##208170}{#1}"),et("\\greenA","\\textcolor{##b6ffb0}{#1}"),et("\\greenB","\\textcolor{##8af281}{#1}"),et("\\greenC","\\textcolor{##74cf70}{#1}"),et("\\greenD","\\textcolor{##1fab54}{#1}"),et("\\greenE","\\textcolor{##0d923f}{#1}"),et("\\goldA","\\textcolor{##ffd0a9}{#1}"),et("\\goldB","\\textcolor{##ffbb71}{#1}"),et("\\goldC","\\textcolor{##ff9c39}{#1}"),et("\\goldD","\\textcolor{##e07d10}{#1}"),et("\\goldE","\\textcolor{##a75a05}{#1}"),et("\\redA","\\textcolor{##fca9a9}{#1}"),et("\\redB","\\textcolor{##ff8482}{#1}"),et("\\redC","\\textcolor{##f9685d}{#1}"),et("\\redD","\\textcolor{##e84d39}{#1}"),et("\\redE","\\textcolor{##bc2612}{#1}"),et("\\maroonA","\\textcolor{##ffbde0}{#1}"),et("\\maroonB","\\textcolor{##ff92c6}{#1}"),et("\\maroonC","\\textcolor{##ed5fa6}{#1}"),et("\\maroonD","\\textcolor{##ca337c}{#1}"),et("\\maroonE","\\textcolor{##9e034e}{#1}"),et("\\purpleA","\\textcolor{##ddd7ff}{#1}"),et("\\purpleB","\\textcolor{##c6b9fc}{#1}"),et("\\purpleC","\\textcolor{##aa87ff}{#1}"),et("\\purpleD","\\textcolor{##7854ab}{#1}"),et("\\purpleE","\\textcolor{##543b78}{#1}"),et("\\mintA","\\textcolor{##f5f9e8}{#1}"),et("\\mintB","\\textcolor{##edf2df}{#1}"),et("\\mintC","\\textcolor{##e0e5cc}{#1}"),et("\\grayA","\\textcolor{##f6f7f7}{#1}"),et("\\grayB","\\textcolor{##f0f1f2}{#1}"),et("\\grayC","\\textcolor{##e3e5e6}{#1}"),et("\\grayD","\\textcolor{##d6d8da}{#1}"),et("\\grayE","\\textcolor{##babec2}{#1}"),et("\\grayF","\\textcolor{##888d93}{#1}"),et("\\grayG","\\textcolor{##626569}{#1}"),et("\\grayH","\\textcolor{##3b3e40}{#1}"),et("\\grayI","\\textcolor{##21242c}{#1}"),et("\\kaBlue","\\textcolor{##314453}{#1}"),et("\\kaGreen","\\textcolor{##71B307}{#1}");var zqe={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class YUt{constructor(a,u,d){this.settings=u,this.expansionCount=0,this.feed(a),this.macros=new GUt(KUt,u.macros),this.mode=d,this.stack=[]}feed(a){this.lexer=new Bqe(a,this.settings)}switchMode(a){this.mode=a}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(a){this.stack.push(a)}pushTokens(a){this.stack.push(...a)}scanArgument(a){var u,d,p;if(a){if(this.consumeSpaces(),this.future().text!=="[")return null;u=this.popToken(),{tokens:p,end:d}=this.consumeArg(["]"])}else({tokens:p,start:u,end:d}=this.consumeArg());return this.pushToken(new ym("EOF",d.loc)),this.pushTokens(p),new ym("",W2.range(u,d))}consumeSpaces(){for(;;){var a=this.future();if(a.text===" ")this.stack.pop();else break}}consumeArg(a){var u=[],d=a&&a.length>0;d||this.consumeSpaces();var p=this.future(),v,b=0,y=0;do{if(v=this.popToken(),u.push(v),v.text==="{")++b;else if(v.text==="}"){if(--b,b===-1)throw new ki("Extra }",v)}else if(v.text==="EOF")throw new ki("Unexpected end of input in a macro argument, expected '"+(a&&d?a[y]:"}")+"'",v);if(a&&d)if((b===0||b===1&&a[y]==="{")&&v.text===a[y]){if(++y,y===a.length){u.splice(-y,y);break}}else y=0}while(b!==0||d);return p.text==="{"&&u[u.length-1].text==="}"&&(u.pop(),u.shift()),u.reverse(),{tokens:u,start:p,end:v}}consumeArgs(a,u){if(u){if(u.length!==a+1)throw new ki("The length of delimiters doesn't match the number of args!");for(var d=u[0],p=0;pthis.settings.maxExpand)throw new ki("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(a){var u=this.popToken(),d=u.text,p=u.noexpand?null:this._getExpansion(d);if(p==null||a&&p.unexpandable){if(a&&p==null&&d[0]==="\\"&&!this.isDefined(d))throw new ki("Undefined control sequence: "+d);return this.pushToken(u),!1}this.countExpansion(1);var v=p.tokens,b=this.consumeArgs(p.numArgs,p.delimiters);if(p.numArgs){v=v.slice();for(var y=v.length-1;y>=0;--y){var E=v[y];if(E.text==="#"){if(y===0)throw new ki("Incomplete placeholder at end of macro body",E);if(E=v[--y],E.text==="#")v.splice(y+1,1);else if(/^[1-9]$/.test(E.text))v.splice(y,2,...b[+E.text-1]);else throw new ki("Not a valid argument number",E)}}}return this.pushTokens(v),v.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var a=this.stack.pop();return a.treatAsRelax&&(a.text="\\relax"),a}}expandMacro(a){return this.macros.has(a)?this.expandTokens([new ym(a)]):void 0}expandTokens(a){var u=[],d=this.stack.length;for(this.pushTokens(a);this.stack.length>d;)if(this.expandOnce(!0)===!1){var p=this.stack.pop();p.treatAsRelax&&(p.noexpand=!1,p.treatAsRelax=!1),u.push(p)}return this.countExpansion(u.length),u}expandMacroAsText(a){var u=this.expandMacro(a);return u&&u.map(d=>d.text).join("")}_getExpansion(a){var u=this.macros.get(a);if(u==null)return u;if(a.length===1){var d=this.lexer.catcodes[a];if(d!=null&&d!==13)return}var p=typeof u=="function"?u(this):u;if(typeof p=="string"){var v=0;if(p.includes("#"))for(var b=p.replace(/##/g,"");b.includes("#"+(v+1));)++v;for(var y=new Bqe(p,this.settings),E=[],_=y.lex();_.text!=="EOF";)E.push(_),_=y.lex();E.reverse();var A={tokens:E,numArgs:v};return A}return p}isDefined(a){return this.macros.has(a)||D9.hasOwnProperty(a)||vh.math.hasOwnProperty(a)||vh.text.hasOwnProperty(a)||zqe.hasOwnProperty(a)}isExpandable(a){var u=this.macros.get(a);return u!=null?typeof u=="string"||typeof u=="function"||!u.unexpandable:D9.hasOwnProperty(a)&&!D9[a].primitive}}var qqe=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,BQ=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),Zbe={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},Hqe={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};class FQ{constructor(a,u){this.mode="math",this.gullet=new YUt(a,u,this.mode),this.settings=u,this.leftrightDepth=0,this.nextToken=null}expect(a,u){if(u===void 0&&(u=!0),this.fetch().text!==a)throw new ki("Expected '"+a+"', got '"+this.fetch().text+"'",this.fetch());u&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(a){this.mode=a,this.gullet.switchMode(a)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var a=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),a}finally{this.gullet.endGroups()}}subparse(a){var u=this.nextToken;this.consume(),this.gullet.pushToken(new ym("}")),this.gullet.pushTokens(a);var d=this.parseExpression(!1);return this.expect("}"),this.nextToken=u,d}parseExpression(a,u){for(var d=[];;){this.mode==="math"&&this.consumeSpaces();var p=this.fetch();if(FQ.endOfExpression.has(p.text)||u&&p.text===u||a&&D9[p.text]&&D9[p.text].infix)break;var v=this.parseAtom(u);if(v){if(v.type==="internal")continue}else break;d.push(v)}return this.mode==="text"&&this.formLigatures(d),this.handleInfixNodes(d)}handleInfixNodes(a){for(var u=-1,d,p=0;p=128)this.settings.strict&&(mze(u.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+u[0]+'" used in math mode',a):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+u[0]+'"'+(" ("+u.charCodeAt(0)+")"),a)),b={type:"textord",mode:"text",loc:W2.range(a),text:u};else return null;if(this.consume(),v)for(var P=0;P"u"&&(Es.yylloc={});var Kd=Es.yylloc;on.push(Kd);var qp=Es.options&&Es.options.ranges;typeof Ou.yy.parseError=="function"?this.parseError=Ou.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ul(){var Kh;return Kh=Ct.pop()||Es.lex()||Us,typeof Kh!="number"&&(Kh instanceof Array&&(Ct=Kh,Kh=Ct.pop()),Kh=Rn.symbols_[Kh]||Kh),Kh}for(var Ac,Jc,Ya,Ba,ha={},$o,Lc,Fa,Ra;;){if(Jc=zn[zn.length-1],this.defaultActions[Jc]?Ya=this.defaultActions[Jc]:((Ac===null||typeof Ac>"u")&&(Ac=Ul()),Ya=dn[Jc]&&dn[Jc][Ac]),typeof Ya>"u"||!Ya.length||!Ya[0]){var ma="";Ra=[];for($o in dn[Jc])this.terminals_[$o]&&$o>No&&Ra.push("'"+this.terminals_[$o]+"'");Es.showPosition?ma="Parse error on line "+(Io+1)+`: +`+Es.showPosition()+` +Expecting `+Ra.join(", ")+", got '"+(this.terminals_[Ac]||Ac)+"'":ma="Parse error on line "+(Io+1)+": Unexpected "+(Ac==Us?"end of input":"'"+(this.terminals_[Ac]||Ac)+"'"),this.parseError(ma,{text:Es.match,token:this.terminals_[Ac]||Ac,line:Es.yylineno,loc:Kd,expected:Ra})}if(Ya[0]instanceof Array&&Ya.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Jc+", token: "+Ac);switch(Ya[0]){case 1:zn.push(Ac),gt.push(Es.yytext),on.push(Es.yylloc),zn.push(Ya[1]),Ac=null,Oo=Es.yyleng,Ln=Es.yytext,Io=Es.yylineno,Kd=Es.yylloc;break;case 2:if(Lc=this.productions_[Ya[1]][1],ha.$=gt[gt.length-Lc],ha._$={first_line:on[on.length-(Lc||1)].first_line,last_line:on[on.length-1].last_line,first_column:on[on.length-(Lc||1)].first_column,last_column:on[on.length-1].last_column},qp&&(ha._$.range=[on[on.length-(Lc||1)].range[0],on[on.length-1].range[1]]),Ba=this.performAction.apply(ha,[Ln,Oo,Io,Ou.yy,Ya[1],gt,on].concat(uo)),typeof Ba<"u")return Ba;Lc&&(zn=zn.slice(0,-1*Lc*2),gt=gt.slice(0,-1*Lc),on=on.slice(0,-1*Lc)),zn.push(this.productions_[Ya[1]][0]),gt.push(ha.$),on.push(ha._$),Fa=dn[zn[zn.length-2]][zn[zn.length-1]],zn.push(Fa);break;case 3:return!0}}return!0}},Hs=function(){var Tr={EOF:1,parseError:function(Rn,zn){if(this.yy.parser)this.yy.parser.parseError(Rn,zn);else throw new Error(Rn)},setInput:function(On,Rn){return this.yy=Rn||this.yy||{},this._input=On,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var On=this._input[0];this.yytext+=On,this.yyleng++,this.offset++,this.match+=On,this.matched+=On;var Rn=On.match(/(?:\r\n?|\n).*/g);return Rn?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),On},unput:function(On){var Rn=On.length,zn=On.split(/(?:\r\n?|\n)/g);this._input=On+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Rn),this.offset-=Rn;var Ct=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),zn.length-1&&(this.yylineno-=zn.length-1);var gt=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:zn?(zn.length===Ct.length?this.yylloc.first_column:0)+Ct[Ct.length-zn.length].length-zn[0].length:this.yylloc.first_column-Rn},this.options.ranges&&(this.yylloc.range=[gt[0],gt[0]+this.yyleng-Rn]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(On){this.unput(this.match.slice(On))},pastInput:function(){var On=this.matched.substr(0,this.matched.length-this.match.length);return(On.length>20?"...":"")+On.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var On=this.match;return On.length<20&&(On+=this._input.substr(0,20-On.length)),(On.substr(0,20)+(On.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var On=this.pastInput(),Rn=new Array(On.length+1).join("-");return On+this.upcomingInput()+` +`+Rn+"^"},test_match:function(On,Rn){var zn,Ct,gt;if(this.options.backtrack_lexer&&(gt={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&&(gt.yylloc.range=this.yylloc.range.slice(0))),Ct=On[0].match(/(?:\r\n?|\n).*/g),Ct&&(this.yylineno+=Ct.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ct?Ct[Ct.length-1].length-Ct[Ct.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+On[0].length},this.yytext+=On[0],this.match+=On[0],this.matches=On,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(On[0].length),this.matched+=On[0],zn=this.performAction.call(this,this.yy,this,Rn,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),zn)return zn;if(this._backtrack){for(var on in gt)this[on]=gt[on];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var On,Rn,zn,Ct;this._more||(this.yytext="",this.match="");for(var gt=this._currentRules(),on=0;onRn[0].length)){if(Rn=zn,Ct=on,this.options.backtrack_lexer){if(On=this.test_match(zn,gt[on]),On!==!1)return On;if(this._backtrack){Rn=!1;continue}else return!1}else if(!this.options.flex)break}return Rn?(On=this.test_match(Rn,gt[Ct]),On!==!1?On:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Rn=this.next();return Rn||this.lex()},begin:function(Rn){this.conditionStack.push(Rn)},popState:function(){var Rn=this.conditionStack.length-1;return Rn>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Rn){return Rn=this.conditionStack.length-1-Math.abs(Rn||0),Rn>=0?this.conditionStack[Rn]:"INITIAL"},pushState:function(Rn){this.begin(Rn)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Rn,zn,Ct,gt){switch(Ct){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:return this.begin("node"),39;case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:return this.begin("rel_u"),66;case 53:return this.begin("rel_u"),66;case 54:return this.begin("rel_d"),67;case 55:return this.begin("rel_d"),67;case 56:return this.begin("rel_l"),68;case 57:return this.begin("rel_l"),68;case 58:return this.begin("rel_r"),69;case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return Tr}();ia.lexer=Hs;function mo(){this.yy={}}return mo.prototype=ia,ia.Parser=mo,new mo}();jQ.parser=jQ;const JUt=jQ;let q3=[],I9=[""],jp="global",H3="",Z4=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],kR=[],nme="",rme=!1,$Q=4,zQ=2;var Xqe;const ZUt=function(){return Xqe},eVt=function(i){Xqe=bh(i,qt())},tVt=function(i,a,u,d,p,v,b,y,E){if(i==null||a===void 0||a===null||u===void 0||u===null||d===void 0||d===null)return;let _={};const A=kR.find(P=>P.from===a&&P.to===u);if(A?_=A:kR.push(_),_.type=i,_.from=a,_.to=u,_.label={text:d},p==null)_.techn={text:""};else if(typeof p=="object"){let[P,R]=Object.entries(p)[0];_[P]={text:R}}else _.techn={text:p};if(v==null)_.descr={text:""};else if(typeof v=="object"){let[P,R]=Object.entries(v)[0];_[P]={text:R}}else _.descr={text:v};if(typeof b=="object"){let[P,R]=Object.entries(b)[0];_[P]=R}else _.sprite=b;if(typeof y=="object"){let[P,R]=Object.entries(y)[0];_[P]=R}else _.tags=y;if(typeof E=="object"){let[P,R]=Object.entries(E)[0];_[P]=R}else _.link=E;_.wrap=O9()},nVt=function(i,a,u,d,p,v,b){if(a===null||u===null)return;let y={};const E=q3.find(_=>_.alias===a);if(E&&a===E.alias?y=E:(y.alias=a,q3.push(y)),u==null?y.label={text:""}:y.label={text:u},d==null)y.descr={text:""};else if(typeof d=="object"){let[_,A]=Object.entries(d)[0];y[_]={text:A}}else y.descr={text:d};if(typeof p=="object"){let[_,A]=Object.entries(p)[0];y[_]=A}else y.sprite=p;if(typeof v=="object"){let[_,A]=Object.entries(v)[0];y[_]=A}else y.tags=v;if(typeof b=="object"){let[_,A]=Object.entries(b)[0];y[_]=A}else y.link=b;y.typeC4Shape={text:i},y.parentBoundary=jp,y.wrap=O9()},rVt=function(i,a,u,d,p,v,b,y){if(a===null||u===null)return;let E={};const _=q3.find(A=>A.alias===a);if(_&&a===_.alias?E=_:(E.alias=a,q3.push(E)),u==null?E.label={text:""}:E.label={text:u},d==null)E.techn={text:""};else if(typeof d=="object"){let[A,P]=Object.entries(d)[0];E[A]={text:P}}else E.techn={text:d};if(p==null)E.descr={text:""};else if(typeof p=="object"){let[A,P]=Object.entries(p)[0];E[A]={text:P}}else E.descr={text:p};if(typeof v=="object"){let[A,P]=Object.entries(v)[0];E[A]=P}else E.sprite=v;if(typeof b=="object"){let[A,P]=Object.entries(b)[0];E[A]=P}else E.tags=b;if(typeof y=="object"){let[A,P]=Object.entries(y)[0];E[A]=P}else E.link=y;E.wrap=O9(),E.typeC4Shape={text:i},E.parentBoundary=jp},iVt=function(i,a,u,d,p,v,b,y){if(a===null||u===null)return;let E={};const _=q3.find(A=>A.alias===a);if(_&&a===_.alias?E=_:(E.alias=a,q3.push(E)),u==null?E.label={text:""}:E.label={text:u},d==null)E.techn={text:""};else if(typeof d=="object"){let[A,P]=Object.entries(d)[0];E[A]={text:P}}else E.techn={text:d};if(p==null)E.descr={text:""};else if(typeof p=="object"){let[A,P]=Object.entries(p)[0];E[A]={text:P}}else E.descr={text:p};if(typeof v=="object"){let[A,P]=Object.entries(v)[0];E[A]=P}else E.sprite=v;if(typeof b=="object"){let[A,P]=Object.entries(b)[0];E[A]=P}else E.tags=b;if(typeof y=="object"){let[A,P]=Object.entries(y)[0];E[A]=P}else E.link=y;E.wrap=O9(),E.typeC4Shape={text:i},E.parentBoundary=jp},sVt=function(i,a,u,d,p){if(i===null||a===null)return;let v={};const b=Z4.find(y=>y.alias===i);if(b&&i===b.alias?v=b:(v.alias=i,Z4.push(v)),a==null?v.label={text:""}:v.label={text:a},u==null)v.type={text:"system"};else if(typeof u=="object"){let[y,E]=Object.entries(u)[0];v[y]={text:E}}else v.type={text:u};if(typeof d=="object"){let[y,E]=Object.entries(d)[0];v[y]=E}else v.tags=d;if(typeof p=="object"){let[y,E]=Object.entries(p)[0];v[y]=E}else v.link=p;v.parentBoundary=jp,v.wrap=O9(),H3=jp,jp=i,I9.push(H3)},aVt=function(i,a,u,d,p){if(i===null||a===null)return;let v={};const b=Z4.find(y=>y.alias===i);if(b&&i===b.alias?v=b:(v.alias=i,Z4.push(v)),a==null?v.label={text:""}:v.label={text:a},u==null)v.type={text:"container"};else if(typeof u=="object"){let[y,E]=Object.entries(u)[0];v[y]={text:E}}else v.type={text:u};if(typeof d=="object"){let[y,E]=Object.entries(d)[0];v[y]=E}else v.tags=d;if(typeof p=="object"){let[y,E]=Object.entries(p)[0];v[y]=E}else v.link=p;v.parentBoundary=jp,v.wrap=O9(),H3=jp,jp=i,I9.push(H3)},oVt=function(i,a,u,d,p,v,b,y){if(a===null||u===null)return;let E={};const _=Z4.find(A=>A.alias===a);if(_&&a===_.alias?E=_:(E.alias=a,Z4.push(E)),u==null?E.label={text:""}:E.label={text:u},d==null)E.type={text:"node"};else if(typeof d=="object"){let[A,P]=Object.entries(d)[0];E[A]={text:P}}else E.type={text:d};if(p==null)E.descr={text:""};else if(typeof p=="object"){let[A,P]=Object.entries(p)[0];E[A]={text:P}}else E.descr={text:p};if(typeof b=="object"){let[A,P]=Object.entries(b)[0];E[A]=P}else E.tags=b;if(typeof y=="object"){let[A,P]=Object.entries(y)[0];E[A]=P}else E.link=y;E.nodeType=i,E.parentBoundary=jp,E.wrap=O9(),H3=jp,jp=a,I9.push(H3)},cVt=function(){jp=H3,I9.pop(),H3=I9.pop(),I9.push(H3)},uVt=function(i,a,u,d,p,v,b,y,E,_,A){let P=q3.find(R=>R.alias===a);if(!(P===void 0&&(P=Z4.find(R=>R.alias===a),P===void 0))){if(u!=null)if(typeof u=="object"){let[R,B]=Object.entries(u)[0];P[R]=B}else P.bgColor=u;if(d!=null)if(typeof d=="object"){let[R,B]=Object.entries(d)[0];P[R]=B}else P.fontColor=d;if(p!=null)if(typeof p=="object"){let[R,B]=Object.entries(p)[0];P[R]=B}else P.borderColor=p;if(v!=null)if(typeof v=="object"){let[R,B]=Object.entries(v)[0];P[R]=B}else P.shadowing=v;if(b!=null)if(typeof b=="object"){let[R,B]=Object.entries(b)[0];P[R]=B}else P.shape=b;if(y!=null)if(typeof y=="object"){let[R,B]=Object.entries(y)[0];P[R]=B}else P.sprite=y;if(E!=null)if(typeof E=="object"){let[R,B]=Object.entries(E)[0];P[R]=B}else P.techn=E;if(_!=null)if(typeof _=="object"){let[R,B]=Object.entries(_)[0];P[R]=B}else P.legendText=_;if(A!=null)if(typeof A=="object"){let[R,B]=Object.entries(A)[0];P[R]=B}else P.legendSprite=A}},lVt=function(i,a,u,d,p,v,b){const y=kR.find(E=>E.from===a&&E.to===u);if(y!==void 0){if(d!=null)if(typeof d=="object"){let[E,_]=Object.entries(d)[0];y[E]=_}else y.textColor=d;if(p!=null)if(typeof p=="object"){let[E,_]=Object.entries(p)[0];y[E]=_}else y.lineColor=p;if(v!=null)if(typeof v=="object"){let[E,_]=Object.entries(v)[0];y[E]=parseInt(_)}else y.offsetX=parseInt(v);if(b!=null)if(typeof b=="object"){let[E,_]=Object.entries(b)[0];y[E]=parseInt(_)}else y.offsetY=parseInt(b)}},hVt=function(i,a,u){let d=$Q,p=zQ;if(typeof a=="object"){const v=Object.values(a)[0];d=parseInt(v)}else d=parseInt(a);if(typeof u=="object"){const v=Object.values(u)[0];p=parseInt(v)}else p=parseInt(u);d>=1&&($Q=d),p>=1&&(zQ=p)},fVt=function(){return $Q},dVt=function(){return zQ},gVt=function(){return jp},pVt=function(){return H3},Qqe=function(i){return i==null?q3:q3.filter(a=>a.parentBoundary===i)},bVt=function(i){return q3.find(a=>a.alias===i)},mVt=function(i){return Object.keys(Qqe(i))},Jqe=function(i){return i==null?Z4:Z4.filter(a=>a.parentBoundary===i)},vVt=Jqe,wVt=function(){return kR},yVt=function(){return nme},xVt=function(i){rme=i},O9=function(){return rme},ime={addPersonOrSystem:nVt,addPersonOrSystemBoundary:sVt,addContainer:rVt,addContainerBoundary:aVt,addComponent:iVt,addDeploymentNode:oVt,popBoundaryParseStack:cVt,addRel:tVt,updateElStyle:uVt,updateRelStyle:lVt,updateLayoutConfig:hVt,autoWrap:O9,setWrap:xVt,getC4ShapeArray:Qqe,getC4Shape:bVt,getC4ShapeKeys:mVt,getBoundaries:Jqe,getBoundarys:vVt,getCurrentBoundaryParse:gVt,getParentBoundaryParse:pVt,getRels:wVt,getTitle:yVt,getC4Type:ZUt,getC4ShapeInRow:fVt,getC4BoundaryInRow:dVt,setAccTitle:jg,getAccTitle:Mp,getAccDescription:Ip,setAccDescription:Dp,getConfig:()=>qt().c4,clear:function(){q3=[],Z4=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],H3="",jp="global",I9=[""],kR=[],I9=[""],nme="",rme=!1,$Q=4,zQ=2},LINETYPE:{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},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:function(i){nme=bh(i,qt())},setC4Type:eVt},qQ=(i,a)=>{const u=i.append("rect");if(u.attr("x",a.x),u.attr("y",a.y),u.attr("fill",a.fill),u.attr("stroke",a.stroke),u.attr("width",a.width),u.attr("height",a.height),a.name&&u.attr("name",a.name),a.rx!==void 0&&u.attr("rx",a.rx),a.ry!==void 0&&u.attr("ry",a.ry),a.attrs!==void 0)for(const d in a.attrs)u.attr(d,a.attrs[d]);return a.class!==void 0&&u.attr("class",a.class),u},Zqe=(i,a)=>{const u={x:a.startx,y:a.starty,width:a.stopx-a.startx,height:a.stopy-a.starty,fill:a.fill,stroke:a.stroke,class:"rect"};qQ(i,u).lower()},kVt=(i,a)=>{const u=a.text.replace(bD," "),d=i.append("text");d.attr("x",a.x),d.attr("y",a.y),d.attr("class","legend"),d.style("text-anchor",a.anchor),a.class!==void 0&&d.attr("class",a.class);const p=d.append("tspan");return p.attr("x",a.x+a.textMargin*2),p.text(u),d},TVt=(i,a,u,d)=>{const p=i.append("image");p.attr("x",a),p.attr("y",u);const v=b9.sanitizeUrl(d);p.attr("xlink:href",v)},EVt=(i,a,u,d)=>{const p=i.append("use");p.attr("x",a),p.attr("y",u);const v=b9.sanitizeUrl(d);p.attr("xlink:href",`#${v}`)},HC=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),sme=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),ame=function(i,a){return qQ(i,a)},eHe=function(i,a,u,d,p,v){const b=i.append("image");b.attr("width",a),b.attr("height",u),b.attr("x",d),b.attr("y",p);let y=v.startsWith("data:image/png;base64")?v:b9.sanitizeUrl(v);b.attr("xlink:href",y)},CVt=(i,a,u)=>{const d=i.append("g");let p=0;for(let v of a){let b=v.textColor?v.textColor:"#444444",y=v.lineColor?v.lineColor:"#444444",E=v.offsetX?parseInt(v.offsetX):0,_=v.offsetY?parseInt(v.offsetY):0,A="";if(p===0){let R=d.append("line");R.attr("x1",v.startPoint.x),R.attr("y1",v.startPoint.y),R.attr("x2",v.endPoint.x),R.attr("y2",v.endPoint.y),R.attr("stroke-width","1"),R.attr("stroke",y),R.style("fill","none"),v.type!=="rel_b"&&R.attr("marker-end","url("+A+"#arrowhead)"),(v.type==="birel"||v.type==="rel_b")&&R.attr("marker-start","url("+A+"#arrowend)"),p=-1}else{let R=d.append("path");R.attr("fill","none").attr("stroke-width","1").attr("stroke",y).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",v.startPoint.x).replaceAll("starty",v.startPoint.y).replaceAll("controlx",v.startPoint.x+(v.endPoint.x-v.startPoint.x)/2-(v.endPoint.x-v.startPoint.x)/4).replaceAll("controly",v.startPoint.y+(v.endPoint.y-v.startPoint.y)/2).replaceAll("stopx",v.endPoint.x).replaceAll("stopy",v.endPoint.y)),v.type!=="rel_b"&&R.attr("marker-end","url("+A+"#arrowhead)"),(v.type==="birel"||v.type==="rel_b")&&R.attr("marker-start","url("+A+"#arrowend)")}let P=u.messageFont();R7(u)(v.label.text,d,Math.min(v.startPoint.x,v.endPoint.x)+Math.abs(v.endPoint.x-v.startPoint.x)/2+E,Math.min(v.startPoint.y,v.endPoint.y)+Math.abs(v.endPoint.y-v.startPoint.y)/2+_,v.label.width,v.label.height,{fill:b},P),v.techn&&v.techn.text!==""&&(P=u.messageFont(),R7(u)("["+v.techn.text+"]",d,Math.min(v.startPoint.x,v.endPoint.x)+Math.abs(v.endPoint.x-v.startPoint.x)/2+E,Math.min(v.startPoint.y,v.endPoint.y)+Math.abs(v.endPoint.y-v.startPoint.y)/2+u.messageFontSize+5+_,Math.max(v.label.width,v.techn.width),v.techn.height,{fill:b,"font-style":"italic"},P))}},SVt=function(i,a,u){const d=i.append("g");let p=a.bgColor?a.bgColor:"none",v=a.borderColor?a.borderColor:"#444444",b=a.fontColor?a.fontColor:"black",y={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};a.nodeType&&(y={"stroke-width":1});let E={x:a.x,y:a.y,fill:p,stroke:v,width:a.width,height:a.height,rx:2.5,ry:2.5,attrs:y};ame(d,E);let _=u.boundaryFont();_.fontWeight="bold",_.fontSize=_.fontSize+2,_.fontColor=b,R7(u)(a.label.text,d,a.x,a.y+a.label.Y,a.width,a.height,{fill:"#444444"},_),a.type&&a.type.text!==""&&(_=u.boundaryFont(),_.fontColor=b,R7(u)(a.type.text,d,a.x,a.y+a.type.Y,a.width,a.height,{fill:"#444444"},_)),a.descr&&a.descr.text!==""&&(_=u.boundaryFont(),_.fontSize=_.fontSize-2,_.fontColor=b,R7(u)(a.descr.text,d,a.x,a.y+a.descr.Y,a.width,a.height,{fill:"#444444"},_))},_Vt=function(i,a,u){var P;let d=a.bgColor?a.bgColor:u[a.typeC4Shape.text+"_bg_color"],p=a.borderColor?a.borderColor:u[a.typeC4Shape.text+"_border_color"],v=a.fontColor?a.fontColor:"#FFFFFF",b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(a.typeC4Shape.text){case"person":b="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":b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}const y=i.append("g");y.attr("class","person-man");const E=HC();switch(a.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":E.x=a.x,E.y=a.y,E.fill=d,E.width=a.width,E.height=a.height,E.stroke=p,E.rx=2.5,E.ry=2.5,E.attrs={"stroke-width":.5},ame(y,E);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":y.append("path").attr("fill",d).attr("stroke-width","0.5").attr("stroke",p).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",a.x).replaceAll("starty",a.y).replaceAll("half",a.width/2).replaceAll("height",a.height)),y.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",p).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",a.x).replaceAll("starty",a.y).replaceAll("half",a.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":y.append("path").attr("fill",d).attr("stroke-width","0.5").attr("stroke",p).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",a.x).replaceAll("starty",a.y).replaceAll("width",a.width).replaceAll("half",a.height/2)),y.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",p).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",a.x+a.width).replaceAll("starty",a.y).replaceAll("half",a.height/2));break}let _=BVt(u,a.typeC4Shape.text);switch(y.append("text").attr("fill",v).attr("font-family",_.fontFamily).attr("font-size",_.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",a.typeC4Shape.width).attr("x",a.x+a.width/2-a.typeC4Shape.width/2).attr("y",a.y+a.typeC4Shape.Y).text("<<"+a.typeC4Shape.text+">>"),a.typeC4Shape.text){case"person":case"external_person":eHe(y,48,48,a.x+a.width/2-24,a.y+a.image.Y,b);break}let A=u[a.typeC4Shape.text+"Font"]();return A.fontWeight="bold",A.fontSize=A.fontSize+2,A.fontColor=v,R7(u)(a.label.text,y,a.x,a.y+a.label.Y,a.width,a.height,{fill:v},A),A=u[a.typeC4Shape.text+"Font"](),A.fontColor=v,a.techn&&((P=a.techn)==null?void 0:P.text)!==""?R7(u)(a.techn.text,y,a.x,a.y+a.techn.Y,a.width,a.height,{fill:v,"font-style":"italic"},A):a.type&&a.type.text!==""&&R7(u)(a.type.text,y,a.x,a.y+a.type.Y,a.width,a.height,{fill:v,"font-style":"italic"},A),a.descr&&a.descr.text!==""&&(A=u.personFont(),A.fontColor=v,R7(u)(a.descr.text,y,a.x,a.y+a.descr.Y,a.width,a.height,{fill:v},A)),a.height},AVt=function(i){i.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")},LVt=function(i){i.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")},MVt=function(i){i.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")},DVt=function(i){i.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")},IVt=function(i){i.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")},OVt=function(i){i.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")},NVt=function(i){i.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)},PVt=function(i){const u=i.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);u.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"),u.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")},BVt=(i,a)=>({fontFamily:i[a+"FontFamily"],fontSize:i[a+"FontSize"],fontWeight:i[a+"FontWeight"]}),R7=function(){function i(p,v,b,y,E,_,A){const P=v.append("text").attr("x",b+E/2).attr("y",y+_/2+5).style("text-anchor","middle").text(p);d(P,A)}function a(p,v,b,y,E,_,A,P){const{fontSize:R,fontFamily:B,fontWeight:j}=P,W=p.split(oi.lineBreakRegex);for(let ee=0;ee=this.data.widthLimit||d>=this.data.widthLimit||this.nextData.cnt>tHe)&&(u=this.nextData.startx+a.margin+$s.nextLinePaddingX,p=this.nextData.stopy+a.margin*2,this.nextData.stopx=d=u+a.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=v=p+a.height,this.nextData.cnt=1),a.x=u,a.y=p,this.updateVal(this.data,"startx",u,Math.min),this.updateVal(this.data,"starty",p,Math.min),this.updateVal(this.data,"stopx",d,Math.max),this.updateVal(this.data,"stopy",v,Math.max),this.updateVal(this.nextData,"startx",u,Math.min),this.updateVal(this.nextData,"starty",p,Math.min),this.updateVal(this.nextData,"stopx",d,Math.max),this.updateVal(this.nextData,"stopy",v,Math.max)}init(a){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},cme(a.db.getConfig())}bumpLastMargin(a){this.data.stopx+=a,this.data.stopy+=a}}const cme=function(i){id($s,i),i.fontFamily&&($s.personFontFamily=$s.systemFontFamily=$s.messageFontFamily=i.fontFamily),i.fontSize&&($s.personFontSize=$s.systemFontSize=$s.messageFontSize=i.fontSize),i.fontWeight&&($s.personFontWeight=$s.systemFontWeight=$s.messageFontWeight=i.fontWeight)},TR=(i,a)=>({fontFamily:i[a+"FontFamily"],fontSize:i[a+"FontSize"],fontWeight:i[a+"FontWeight"]}),VQ=i=>({fontFamily:i.boundaryFontFamily,fontSize:i.boundaryFontSize,fontWeight:i.boundaryFontWeight}),FVt=i=>({fontFamily:i.messageFontFamily,fontSize:i.messageFontSize,fontWeight:i.messageFontWeight});function U3(i,a,u,d,p){if(!a[i].width)if(u)a[i].text=zje(a[i].text,p,d),a[i].textLines=a[i].text.split(oi.lineBreakRegex).length,a[i].width=p,a[i].height=F2e(a[i].text,d);else{let v=a[i].text.split(oi.lineBreakRegex);a[i].textLines=v.length;let b=0;a[i].height=0,a[i].width=0;for(const y of v)a[i].width=Math.max(G4(y,d),a[i].width),b=F2e(y,d),a[i].height=a[i].height+b}}const rHe=function(i,a,u){a.x=u.data.startx,a.y=u.data.starty,a.width=u.data.stopx-u.data.startx,a.height=u.data.stopy-u.data.starty,a.label.y=$s.c4ShapeMargin-35;let d=a.wrap&&$s.wrap,p=VQ($s);p.fontSize=p.fontSize+2,p.fontWeight="bold";let v=G4(a.label.text,p);U3("label",a,d,p,v),e5.drawBoundary(i,a,$s)},iHe=function(i,a,u,d){let p=0;for(const v of d){p=0;const b=u[v];let y=TR($s,b.typeC4Shape.text);switch(y.fontSize=y.fontSize-2,b.typeC4Shape.width=G4("«"+b.typeC4Shape.text+"»",y),b.typeC4Shape.height=y.fontSize+2,b.typeC4Shape.Y=$s.c4ShapePadding,p=b.typeC4Shape.Y+b.typeC4Shape.height-4,b.image={width:0,height:0,Y:0},b.typeC4Shape.text){case"person":case"external_person":b.image.width=48,b.image.height=48,b.image.Y=p,p=b.image.Y+b.image.height;break}b.sprite&&(b.image.width=48,b.image.height=48,b.image.Y=p,p=b.image.Y+b.image.height);let E=b.wrap&&$s.wrap,_=$s.width-$s.c4ShapePadding*2,A=TR($s,b.typeC4Shape.text);if(A.fontSize=A.fontSize+2,A.fontWeight="bold",U3("label",b,E,A,_),b.label.Y=p+8,p=b.label.Y+b.label.height,b.type&&b.type.text!==""){b.type.text="["+b.type.text+"]";let B=TR($s,b.typeC4Shape.text);U3("type",b,E,B,_),b.type.Y=p+5,p=b.type.Y+b.type.height}else if(b.techn&&b.techn.text!==""){b.techn.text="["+b.techn.text+"]";let B=TR($s,b.techn.text);U3("techn",b,E,B,_),b.techn.Y=p+5,p=b.techn.Y+b.techn.height}let P=p,R=b.label.width;if(b.descr&&b.descr.text!==""){let B=TR($s,b.typeC4Shape.text);U3("descr",b,E,B,_),b.descr.Y=p+20,p=b.descr.Y+b.descr.height,R=Math.max(b.label.width,b.descr.width),P=p-b.descr.textLines*5}R=R+$s.c4ShapePadding,b.width=Math.max(b.width||$s.width,R,$s.width),b.height=Math.max(b.height||$s.height,P,$s.height),b.margin=b.margin||$s.c4ShapeMargin,i.insert(b),e5.drawC4Shape(a,b,$s)}i.bumpLastMargin($s.c4ShapeMargin)};let Gv=class{constructor(a,u){this.x=a,this.y=u}},sHe=function(i,a){let u=i.x,d=i.y,p=a.x,v=a.y,b=u+i.width/2,y=d+i.height/2,E=Math.abs(u-p),_=Math.abs(d-v),A=_/E,P=i.height/i.width,R=null;return d==v&&up?R=new Gv(u,y):u==p&&dv&&(R=new Gv(b,d)),u>p&&d=A?R=new Gv(u,y+A*i.width/2):R=new Gv(b-E/_*i.height/2,d+i.height):u=A?R=new Gv(u+i.width,y+A*i.width/2):R=new Gv(b+E/_*i.height/2,d+i.height):uv?P>=A?R=new Gv(u+i.width,y-A*i.width/2):R=new Gv(b+i.height/2*E/_,d):u>p&&d>v&&(P>=A?R=new Gv(u,y-i.width/2*A):R=new Gv(b-i.height/2*E/_,d)),R},RVt=function(i,a){let u={x:0,y:0};u.x=a.x+a.width/2,u.y=a.y+a.height/2;let d=sHe(i,u);u.x=i.x+i.width/2,u.y=i.y+i.height/2;let p=sHe(a,u);return{startPoint:d,endPoint:p}};const jVt=function(i,a,u,d){let p=0;for(let v of a){p=p+1;let b=v.wrap&&$s.wrap,y=FVt($s);d.db.getC4Type()==="C4Dynamic"&&(v.label.text=p+": "+v.label.text);let _=G4(v.label.text,y);U3("label",v,b,y,_),v.techn&&v.techn.text!==""&&(_=G4(v.techn.text,y),U3("techn",v,b,y,_)),v.descr&&v.descr.text!==""&&(_=G4(v.descr.text,y),U3("descr",v,b,y,_));let A=u(v.from),P=u(v.to),R=RVt(A,P);v.startPoint=R.startPoint,v.endPoint=R.endPoint}e5.drawRels(i,a,$s)};function aHe(i,a,u,d,p){let v=new nHe(p);v.data.widthLimit=u.data.widthLimit/Math.min(ome,d.length);for(let[b,y]of d.entries()){let E=0;y.image={width:0,height:0,Y:0},y.sprite&&(y.image.width=48,y.image.height=48,y.image.Y=E,E=y.image.Y+y.image.height);let _=y.wrap&&$s.wrap,A=VQ($s);if(A.fontSize=A.fontSize+2,A.fontWeight="bold",U3("label",y,_,A,v.data.widthLimit),y.label.Y=E+8,E=y.label.Y+y.label.height,y.type&&y.type.text!==""){y.type.text="["+y.type.text+"]";let j=VQ($s);U3("type",y,_,j,v.data.widthLimit),y.type.Y=E+5,E=y.type.Y+y.type.height}if(y.descr&&y.descr.text!==""){let j=VQ($s);j.fontSize=j.fontSize-2,U3("descr",y,_,j,v.data.widthLimit),y.descr.Y=E+20,E=y.descr.Y+y.descr.height}if(b==0||b%ome===0){let j=u.data.startx+$s.diagramMarginX,W=u.data.stopy+$s.diagramMarginY+E;v.setData(j,j,W,W)}else{let j=v.data.stopx!==v.data.startx?v.data.stopx+$s.diagramMarginX:v.data.startx,W=v.data.starty;v.setData(j,j,W,W)}v.name=y.alias;let P=p.db.getC4ShapeArray(y.alias),R=p.db.getC4ShapeKeys(y.alias);R.length>0&&iHe(v,i,P,R),a=y.alias;let B=p.db.getBoundarys(a);B.length>0&&aHe(i,a,v,B,p),y.alias!=="global"&&rHe(i,y,v),u.data.stopy=Math.max(v.data.stopy+$s.c4ShapeMargin,u.data.stopy),u.data.stopx=Math.max(v.data.stopx+$s.c4ShapeMargin,u.data.stopx),HQ=Math.max(HQ,u.data.stopx),UQ=Math.max(UQ,u.data.stopy)}}const oHe={drawPersonOrSystemArray:iHe,drawBoundary:rHe,setConf:cme,draw:function(i,a,u,d){$s=qt().c4;const p=qt().securityLevel;let v;p==="sandbox"&&(v=Dr("#i"+a));const b=Dr(p==="sandbox"?v.nodes()[0].contentDocument.body:"body");let y=d.db;d.db.setWrap($s.wrap),tHe=y.getC4ShapeInRow(),ome=y.getC4BoundaryInRow(),Xe.debug(`C:${JSON.stringify($s,null,2)}`);const E=p==="sandbox"?b.select(`[id="${a}"]`):Dr(`[id="${a}"]`);e5.insertComputerIcon(E),e5.insertDatabaseIcon(E),e5.insertClockIcon(E);let _=new nHe(d);_.setData($s.diagramMarginX,$s.diagramMarginX,$s.diagramMarginY,$s.diagramMarginY),_.data.widthLimit=screen.availWidth,HQ=$s.diagramMarginX,UQ=$s.diagramMarginY;const A=d.db.getTitle();let P=d.db.getBoundarys("");aHe(E,"",_,P,d),e5.insertArrowHead(E),e5.insertArrowEnd(E),e5.insertArrowCrossHead(E),e5.insertArrowFilledHead(E),jVt(E,d.db.getRels(),d.db.getC4Shape,d),_.data.stopx=HQ,_.data.stopy=UQ;const R=_.data;let j=R.stopy-R.starty+2*$s.diagramMarginY;const ee=R.stopx-R.startx+2*$s.diagramMarginX;A&&E.append("text").text(A).attr("x",(R.stopx-R.startx)/2-4*$s.diagramMarginX).attr("y",R.starty+$s.diagramMarginY),Fg(E,j,ee,$s.useMaxWidth);const ie=A?60:0;E.attr("viewBox",R.startx-$s.diagramMarginX+" -"+($s.diagramMarginY+ie)+" "+ee+" "+(j+ie)),Xe.debug("models:",R)}},$Vt=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:JUt,db:ime,renderer:oHe,styles:i=>`.person { + stroke: ${i.personBorder}; + fill: ${i.personBkg}; + } +`,init:({c4:i,wrap:a})=>{oHe.setConf(i),ime.setWrap(a)}}},Symbol.toStringTag,{value:"Module"}));var ume=function(){var i=function(Qo,Hi,Ui,zs){for(Ui=Ui||{},zs=Qo.length;zs--;Ui[Qo[zs]]=Hi);return Ui},a=[1,4],u=[1,3],d=[1,5],p=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],v=[2,2],b=[1,13],y=[1,14],E=[1,15],_=[1,16],A=[1,23],P=[1,25],R=[1,26],B=[1,27],j=[1,49],W=[1,48],ee=[1,29],ie=[1,30],oe=[1,31],be=[1,32],ge=[1,33],ae=[1,44],ne=[1,46],se=[1,42],de=[1,47],X=[1,43],pe=[1,50],G=[1,45],xe=[1,51],U=[1,52],Be=[1,34],Pe=[1,35],je=[1,36],Ie=[1,37],Se=[1,57],Ce=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],ke=[1,61],Ke=[1,60],zt=[1,62],Ne=[8,9,11,73,75],pn=[1,88],Tt=[1,93],Et=[1,92],Wt=[1,89],un=[1,85],yt=[1,91],Bt=[1,87],Ze=[1,94],Dt=[1,90],kt=[1,95],Nn=[1,86],ht=[8,9,10,11,73,75],qr=[8,9,10,11,44,73,75],xt=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],Ri=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],wi=[42,58,86,99,102,103,106,108,111,112,113],ia=[1,121],Hs=[1,120],mo=[1,128],Tr=[1,142],On=[1,143],Rn=[1,144],zn=[1,145],Ct=[1,130],gt=[1,132],on=[1,136],dn=[1,137],Ln=[1,138],Io=[1,139],Oo=[1,140],No=[1,141],Us=[1,146],uo=[1,147],Es=[1,126],Ou=[1,127],_c=[1,134],Kd=[1,129],qp=[1,133],Ul=[1,131],Ac=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],Jc=[1,149],Ya=[8,9,11],Ba=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],ha=[1,169],$o=[1,165],Lc=[1,166],Fa=[1,170],Ra=[1,167],ma=[1,168],Kh=[75,113,116],Po=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],Hp=[10,103],Ug=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],od=[1,235],cd=[1,233],w1=[1,237],kh=[1,231],Wd=[1,232],Yd=[1,234],Xd=[1,236],Zf=[1,238],Up=[1,255],u5=[8,9,11,103],bs=[8,9,10,11,58,81,102,103,106,107,108,109],Vt={trace:function(){},yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:function(Hi,Ui,zs,gi,Bo,Ot,zu){var Gt=Ot.length-1;switch(Bo){case 2:this.$=[];break;case 3:(!Array.isArray(Ot[Gt])||Ot[Gt].length>0)&&Ot[Gt-1].push(Ot[Gt]),this.$=Ot[Gt-1];break;case 4:case 176:this.$=Ot[Gt];break;case 11:gi.setDirection("TB"),this.$="TB";break;case 12:gi.setDirection(Ot[Gt-1]),this.$=Ot[Gt-1];break;case 27:this.$=Ot[Gt-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=gi.addSubGraph(Ot[Gt-6],Ot[Gt-1],Ot[Gt-4]);break;case 34:this.$=gi.addSubGraph(Ot[Gt-3],Ot[Gt-1],Ot[Gt-3]);break;case 35:this.$=gi.addSubGraph(void 0,Ot[Gt-1],void 0);break;case 37:this.$=Ot[Gt].trim(),gi.setAccTitle(this.$);break;case 38:case 39:this.$=Ot[Gt].trim(),gi.setAccDescription(this.$);break;case 43:gi.addLink(Ot[Gt-2].stmt,Ot[Gt],Ot[Gt-1]),this.$={stmt:Ot[Gt],nodes:Ot[Gt].concat(Ot[Gt-2].nodes)};break;case 44:gi.addLink(Ot[Gt-3].stmt,Ot[Gt-1],Ot[Gt-2]),this.$={stmt:Ot[Gt-1],nodes:Ot[Gt-1].concat(Ot[Gt-3].nodes)};break;case 45:this.$={stmt:Ot[Gt-1],nodes:Ot[Gt-1]};break;case 46:this.$={stmt:Ot[Gt],nodes:Ot[Gt]};break;case 47:this.$=[Ot[Gt]];break;case 48:this.$=Ot[Gt-4].concat(Ot[Gt]);break;case 49:this.$=Ot[Gt];break;case 50:this.$=Ot[Gt-2],gi.setClass(Ot[Gt-2],Ot[Gt]);break;case 51:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"square");break;case 52:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"doublecircle");break;case 53:this.$=Ot[Gt-5],gi.addVertex(Ot[Gt-5],Ot[Gt-2],"circle");break;case 54:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"ellipse");break;case 55:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"stadium");break;case 56:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"subroutine");break;case 57:this.$=Ot[Gt-7],gi.addVertex(Ot[Gt-7],Ot[Gt-1],"rect",void 0,void 0,void 0,Object.fromEntries([[Ot[Gt-5],Ot[Gt-3]]]));break;case 58:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"cylinder");break;case 59:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"round");break;case 60:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"diamond");break;case 61:this.$=Ot[Gt-5],gi.addVertex(Ot[Gt-5],Ot[Gt-2],"hexagon");break;case 62:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"odd");break;case 63:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"trapezoid");break;case 64:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"inv_trapezoid");break;case 65:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"lean_right");break;case 66:this.$=Ot[Gt-3],gi.addVertex(Ot[Gt-3],Ot[Gt-1],"lean_left");break;case 67:this.$=Ot[Gt],gi.addVertex(Ot[Gt]);break;case 68:Ot[Gt-1].text=Ot[Gt],this.$=Ot[Gt-1];break;case 69:case 70:Ot[Gt-2].text=Ot[Gt-1],this.$=Ot[Gt-2];break;case 71:this.$=Ot[Gt];break;case 72:var Wh=gi.destructLink(Ot[Gt],Ot[Gt-2]);this.$={type:Wh.type,stroke:Wh.stroke,length:Wh.length,text:Ot[Gt-1]};break;case 73:this.$={text:Ot[Gt],type:"text"};break;case 74:this.$={text:Ot[Gt-1].text+""+Ot[Gt],type:Ot[Gt-1].type};break;case 75:this.$={text:Ot[Gt],type:"string"};break;case 76:this.$={text:Ot[Gt],type:"markdown"};break;case 77:var Wh=gi.destructLink(Ot[Gt]);this.$={type:Wh.type,stroke:Wh.stroke,length:Wh.length};break;case 78:this.$=Ot[Gt-1];break;case 79:this.$={text:Ot[Gt],type:"text"};break;case 80:this.$={text:Ot[Gt-1].text+""+Ot[Gt],type:Ot[Gt-1].type};break;case 81:this.$={text:Ot[Gt],type:"string"};break;case 82:case 97:this.$={text:Ot[Gt],type:"markdown"};break;case 94:this.$={text:Ot[Gt],type:"text"};break;case 95:this.$={text:Ot[Gt-1].text+""+Ot[Gt],type:Ot[Gt-1].type};break;case 96:this.$={text:Ot[Gt],type:"text"};break;case 98:this.$=Ot[Gt-4],gi.addClass(Ot[Gt-2],Ot[Gt]);break;case 99:this.$=Ot[Gt-4],gi.setClass(Ot[Gt-2],Ot[Gt]);break;case 100:case 108:this.$=Ot[Gt-1],gi.setClickEvent(Ot[Gt-1],Ot[Gt]);break;case 101:case 109:this.$=Ot[Gt-3],gi.setClickEvent(Ot[Gt-3],Ot[Gt-2]),gi.setTooltip(Ot[Gt-3],Ot[Gt]);break;case 102:this.$=Ot[Gt-2],gi.setClickEvent(Ot[Gt-2],Ot[Gt-1],Ot[Gt]);break;case 103:this.$=Ot[Gt-4],gi.setClickEvent(Ot[Gt-4],Ot[Gt-3],Ot[Gt-2]),gi.setTooltip(Ot[Gt-4],Ot[Gt]);break;case 104:this.$=Ot[Gt-2],gi.setLink(Ot[Gt-2],Ot[Gt]);break;case 105:this.$=Ot[Gt-4],gi.setLink(Ot[Gt-4],Ot[Gt-2]),gi.setTooltip(Ot[Gt-4],Ot[Gt]);break;case 106:this.$=Ot[Gt-4],gi.setLink(Ot[Gt-4],Ot[Gt-2],Ot[Gt]);break;case 107:this.$=Ot[Gt-6],gi.setLink(Ot[Gt-6],Ot[Gt-4],Ot[Gt]),gi.setTooltip(Ot[Gt-6],Ot[Gt-2]);break;case 110:this.$=Ot[Gt-1],gi.setLink(Ot[Gt-1],Ot[Gt]);break;case 111:this.$=Ot[Gt-3],gi.setLink(Ot[Gt-3],Ot[Gt-2]),gi.setTooltip(Ot[Gt-3],Ot[Gt]);break;case 112:this.$=Ot[Gt-3],gi.setLink(Ot[Gt-3],Ot[Gt-2],Ot[Gt]);break;case 113:this.$=Ot[Gt-5],gi.setLink(Ot[Gt-5],Ot[Gt-4],Ot[Gt]),gi.setTooltip(Ot[Gt-5],Ot[Gt-2]);break;case 114:this.$=Ot[Gt-4],gi.addVertex(Ot[Gt-2],void 0,void 0,Ot[Gt]);break;case 115:this.$=Ot[Gt-4],gi.updateLink([Ot[Gt-2]],Ot[Gt]);break;case 116:this.$=Ot[Gt-4],gi.updateLink(Ot[Gt-2],Ot[Gt]);break;case 117:this.$=Ot[Gt-8],gi.updateLinkInterpolate([Ot[Gt-6]],Ot[Gt-2]),gi.updateLink([Ot[Gt-6]],Ot[Gt]);break;case 118:this.$=Ot[Gt-8],gi.updateLinkInterpolate(Ot[Gt-6],Ot[Gt-2]),gi.updateLink(Ot[Gt-6],Ot[Gt]);break;case 119:this.$=Ot[Gt-6],gi.updateLinkInterpolate([Ot[Gt-4]],Ot[Gt]);break;case 120:this.$=Ot[Gt-6],gi.updateLinkInterpolate(Ot[Gt-4],Ot[Gt]);break;case 121:case 123:this.$=[Ot[Gt]];break;case 122:case 124:Ot[Gt-2].push(Ot[Gt]),this.$=Ot[Gt-2];break;case 126:this.$=Ot[Gt-1]+Ot[Gt];break;case 174:this.$=Ot[Gt];break;case 175:this.$=Ot[Gt-1]+""+Ot[Gt];break;case 177:this.$=Ot[Gt-1]+""+Ot[Gt];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"};break}},table:[{3:1,4:2,9:a,10:u,12:d},{1:[3]},i(p,v,{5:6}),{4:7,9:a,10:u,12:d},{4:8,9:a,10:u,12:d},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:b,9:y,10:E,11:_,20:17,22:18,23:19,24:20,25:21,26:22,27:A,33:24,34:P,36:R,38:B,40:28,41:38,42:j,43:39,45:40,58:W,81:ee,82:ie,83:oe,84:be,85:ge,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:41,111:G,112:xe,113:U,118:Be,119:Pe,120:je,121:Ie},i(p,[2,9]),i(p,[2,10]),i(p,[2,11]),{8:[1,54],9:[1,55],10:Se,15:53,18:56},i(Ce,[2,3]),i(Ce,[2,4]),i(Ce,[2,5]),i(Ce,[2,6]),i(Ce,[2,7]),i(Ce,[2,8]),{8:ke,9:Ke,11:zt,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:ke,9:Ke,11:zt,21:66},{8:ke,9:Ke,11:zt,21:67},{8:ke,9:Ke,11:zt,21:68},{8:ke,9:Ke,11:zt,21:69},{8:ke,9:Ke,11:zt,21:70},{8:ke,9:Ke,10:[1,71],11:zt,21:72},i(Ce,[2,36]),{35:[1,73]},{37:[1,74]},i(Ce,[2,39]),i(Ne,[2,46],{18:75,10:Se}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:pn,42:Tt,58:Et,77:[1,83],86:Wt,92:[1,80],94:[1,81],98:82,102:un,103:yt,106:Bt,108:Ze,111:Dt,112:kt,113:Nn,117:84},i(Ce,[2,178]),i(Ce,[2,179]),i(Ce,[2,180]),i(Ce,[2,181]),i(ht,[2,47]),i(ht,[2,49],{44:[1,96]}),i(qr,[2,67],{110:109,29:[1,97],42:j,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:W,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:ae,99:ne,102:se,103:de,106:X,108:pe,111:G,112:xe,113:U}),i(xt,[2,174]),i(xt,[2,135]),i(xt,[2,136]),i(xt,[2,137]),i(xt,[2,138]),i(xt,[2,139]),i(xt,[2,140]),i(xt,[2,141]),i(xt,[2,142]),i(xt,[2,143]),i(xt,[2,144]),i(xt,[2,145]),i(p,[2,12]),i(p,[2,18]),i(p,[2,19]),{9:[1,110]},i(Ri,[2,26],{18:111,10:Se}),i(Ce,[2,27]),{40:112,41:38,42:j,43:39,45:40,58:W,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:41,111:G,112:xe,113:U},i(Ce,[2,40]),i(Ce,[2,41]),i(Ce,[2,42]),i(wi,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:ia,116:Hs},i([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),i(Ce,[2,28]),i(Ce,[2,29]),i(Ce,[2,30]),i(Ce,[2,31]),i(Ce,[2,32]),{10:mo,12:Tr,14:On,27:Rn,28:122,32:zn,42:Ct,58:gt,73:on,77:[1,124],78:[1,125],80:135,81:dn,82:Ln,83:Io,84:Oo,85:No,86:Us,87:uo,88:123,102:Es,106:Ou,108:_c,111:Kd,112:qp,113:Ul},i(Ac,v,{5:148}),i(Ce,[2,37]),i(Ce,[2,38]),i(Ne,[2,45],{42:Jc}),{42:j,45:150,58:W,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:41,111:G,112:xe,113:U},{99:[1,151],100:152,102:[1,153]},{42:j,45:154,58:W,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:41,111:G,112:xe,113:U},{42:j,45:155,58:W,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:41,111:G,112:xe,113:U},i(Ya,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},i(Ya,[2,108],{117:160,10:[1,159],14:pn,42:Tt,58:Et,86:Wt,102:un,103:yt,106:Bt,108:Ze,111:Dt,112:kt,113:Nn}),i(Ya,[2,110],{10:[1,161]}),i(Ba,[2,176]),i(Ba,[2,163]),i(Ba,[2,164]),i(Ba,[2,165]),i(Ba,[2,166]),i(Ba,[2,167]),i(Ba,[2,168]),i(Ba,[2,169]),i(Ba,[2,170]),i(Ba,[2,171]),i(Ba,[2,172]),i(Ba,[2,173]),{42:j,45:162,58:W,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:41,111:G,112:xe,113:U},{30:163,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{30:171,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{30:173,48:[1,172],65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{30:174,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{30:175,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{30:176,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{106:[1,177]},{30:178,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{30:179,63:[1,180],65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{30:181,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{30:182,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{30:183,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},i(xt,[2,175]),i(p,[2,20]),i(Ri,[2,25]),i(Ne,[2,43],{18:184,10:Se}),i(wi,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{75:[1,188],76:189,113:ia,116:Hs},i(Kh,[2,73]),i(Kh,[2,75]),i(Kh,[2,76]),i(Kh,[2,161]),i(Kh,[2,162]),{8:ke,9:Ke,10:mo,11:zt,12:Tr,14:On,21:191,27:Rn,29:[1,190],32:zn,42:Ct,58:gt,73:on,80:135,81:dn,82:Ln,83:Io,84:Oo,85:No,86:Us,87:uo,88:192,102:Es,106:Ou,108:_c,111:Kd,112:qp,113:Ul},i(Po,[2,94]),i(Po,[2,96]),i(Po,[2,97]),i(Po,[2,150]),i(Po,[2,151]),i(Po,[2,152]),i(Po,[2,153]),i(Po,[2,154]),i(Po,[2,155]),i(Po,[2,156]),i(Po,[2,157]),i(Po,[2,158]),i(Po,[2,159]),i(Po,[2,160]),i(Po,[2,83]),i(Po,[2,84]),i(Po,[2,85]),i(Po,[2,86]),i(Po,[2,87]),i(Po,[2,88]),i(Po,[2,89]),i(Po,[2,90]),i(Po,[2,91]),i(Po,[2,92]),i(Po,[2,93]),{6:11,7:12,8:b,9:y,10:E,11:_,20:17,22:18,23:19,24:20,25:21,26:22,27:A,32:[1,193],33:24,34:P,36:R,38:B,40:28,41:38,42:j,43:39,45:40,58:W,81:ee,82:ie,83:oe,84:be,85:ge,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:41,111:G,112:xe,113:U,118:Be,119:Pe,120:je,121:Ie},{10:Se,18:194},{10:[1,195],42:j,58:W,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:109,111:G,112:xe,113:U},{10:[1,196]},{10:[1,197],103:[1,198]},i(Hp,[2,121]),{10:[1,199],42:j,58:W,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:109,111:G,112:xe,113:U},{10:[1,200],42:j,58:W,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:109,111:G,112:xe,113:U},{77:[1,201]},i(Ya,[2,102],{10:[1,202]}),i(Ya,[2,104],{10:[1,203]}),{77:[1,204]},i(Ba,[2,177]),{77:[1,205],95:[1,206]},i(ht,[2,50],{110:109,42:j,58:W,86:ae,99:ne,102:se,103:de,106:X,108:pe,111:G,112:xe,113:U}),{31:[1,207],65:ha,79:208,113:Fa,114:Ra,115:ma},i(Ug,[2,79]),i(Ug,[2,81]),i(Ug,[2,82]),i(Ug,[2,146]),i(Ug,[2,147]),i(Ug,[2,148]),i(Ug,[2,149]),{47:[1,209],65:ha,79:208,113:Fa,114:Ra,115:ma},{30:210,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{49:[1,211],65:ha,79:208,113:Fa,114:Ra,115:ma},{51:[1,212],65:ha,79:208,113:Fa,114:Ra,115:ma},{53:[1,213],65:ha,79:208,113:Fa,114:Ra,115:ma},{55:[1,214],65:ha,79:208,113:Fa,114:Ra,115:ma},{58:[1,215]},{62:[1,216],65:ha,79:208,113:Fa,114:Ra,115:ma},{64:[1,217],65:ha,79:208,113:Fa,114:Ra,115:ma},{30:218,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},{31:[1,219],65:ha,79:208,113:Fa,114:Ra,115:ma},{65:ha,67:[1,220],69:[1,221],79:208,113:Fa,114:Ra,115:ma},{65:ha,67:[1,223],69:[1,222],79:208,113:Fa,114:Ra,115:ma},i(Ne,[2,44],{42:Jc}),i(wi,[2,70]),i(wi,[2,69]),{60:[1,224],65:ha,79:208,113:Fa,114:Ra,115:ma},i(wi,[2,72]),i(Kh,[2,74]),{30:225,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},i(Ac,v,{5:226}),i(Po,[2,95]),i(Ce,[2,35]),{41:227,42:j,43:39,45:40,58:W,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:41,111:G,112:xe,113:U},{10:od,58:cd,81:w1,89:228,102:kh,104:229,105:230,106:Wd,107:Yd,108:Xd,109:Zf},{10:od,58:cd,81:w1,89:239,101:[1,240],102:kh,104:229,105:230,106:Wd,107:Yd,108:Xd,109:Zf},{10:od,58:cd,81:w1,89:241,101:[1,242],102:kh,104:229,105:230,106:Wd,107:Yd,108:Xd,109:Zf},{102:[1,243]},{10:od,58:cd,81:w1,89:244,102:kh,104:229,105:230,106:Wd,107:Yd,108:Xd,109:Zf},{42:j,45:245,58:W,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:41,111:G,112:xe,113:U},i(Ya,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},i(Ya,[2,109]),i(Ya,[2,111],{10:[1,249]}),i(Ya,[2,112]),i(qr,[2,51]),i(Ug,[2,80]),i(qr,[2,52]),{49:[1,250],65:ha,79:208,113:Fa,114:Ra,115:ma},i(qr,[2,59]),i(qr,[2,54]),i(qr,[2,55]),i(qr,[2,56]),{106:[1,251]},i(qr,[2,58]),i(qr,[2,60]),{64:[1,252],65:ha,79:208,113:Fa,114:Ra,115:ma},i(qr,[2,62]),i(qr,[2,63]),i(qr,[2,65]),i(qr,[2,64]),i(qr,[2,66]),i([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:ha,79:208,113:Fa,114:Ra,115:ma},{6:11,7:12,8:b,9:y,10:E,11:_,20:17,22:18,23:19,24:20,25:21,26:22,27:A,32:[1,254],33:24,34:P,36:R,38:B,40:28,41:38,42:j,43:39,45:40,58:W,81:ee,82:ie,83:oe,84:be,85:ge,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:41,111:G,112:xe,113:U,118:Be,119:Pe,120:je,121:Ie},i(ht,[2,48]),i(Ya,[2,114],{103:Up}),i(u5,[2,123],{105:256,10:od,58:cd,81:w1,102:kh,106:Wd,107:Yd,108:Xd,109:Zf}),i(bs,[2,125]),i(bs,[2,127]),i(bs,[2,128]),i(bs,[2,129]),i(bs,[2,130]),i(bs,[2,131]),i(bs,[2,132]),i(bs,[2,133]),i(bs,[2,134]),i(Ya,[2,115],{103:Up}),{10:[1,257]},i(Ya,[2,116],{103:Up}),{10:[1,258]},i(Hp,[2,122]),i(Ya,[2,98],{103:Up}),i(Ya,[2,99],{110:109,42:j,58:W,86:ae,99:ne,102:se,103:de,106:X,108:pe,111:G,112:xe,113:U}),i(Ya,[2,103]),i(Ya,[2,105],{10:[1,259]}),i(Ya,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:ke,9:Ke,11:zt,21:264},i(Ce,[2,34]),{10:od,58:cd,81:w1,102:kh,104:265,105:230,106:Wd,107:Yd,108:Xd,109:Zf},i(bs,[2,126]),{14:pn,42:Tt,58:Et,86:Wt,98:266,102:un,103:yt,106:Bt,108:Ze,111:Dt,112:kt,113:Nn,117:84},{14:pn,42:Tt,58:Et,86:Wt,98:267,102:un,103:yt,106:Bt,108:Ze,111:Dt,112:kt,113:Nn,117:84},{95:[1,268]},i(Ya,[2,113]),i(qr,[2,53]),{30:269,65:ha,77:$o,78:Lc,79:164,113:Fa,114:Ra,115:ma},i(qr,[2,61]),i(Ac,v,{5:270}),i(u5,[2,124],{105:256,10:od,58:cd,81:w1,102:kh,106:Wd,107:Yd,108:Xd,109:Zf}),i(Ya,[2,119],{117:160,10:[1,271],14:pn,42:Tt,58:Et,86:Wt,102:un,103:yt,106:Bt,108:Ze,111:Dt,112:kt,113:Nn}),i(Ya,[2,120],{117:160,10:[1,272],14:pn,42:Tt,58:Et,86:Wt,102:un,103:yt,106:Bt,108:Ze,111:Dt,112:kt,113:Nn}),i(Ya,[2,107]),{31:[1,273],65:ha,79:208,113:Fa,114:Ra,115:ma},{6:11,7:12,8:b,9:y,10:E,11:_,20:17,22:18,23:19,24:20,25:21,26:22,27:A,32:[1,274],33:24,34:P,36:R,38:B,40:28,41:38,42:j,43:39,45:40,58:W,81:ee,82:ie,83:oe,84:be,85:ge,86:ae,99:ne,102:se,103:de,106:X,108:pe,110:41,111:G,112:xe,113:U,118:Be,119:Pe,120:je,121:Ie},{10:od,58:cd,81:w1,89:275,102:kh,104:229,105:230,106:Wd,107:Yd,108:Xd,109:Zf},{10:od,58:cd,81:w1,89:276,102:kh,104:229,105:230,106:Wd,107:Yd,108:Xd,109:Zf},i(qr,[2,57]),i(Ce,[2,33]),i(Ya,[2,117],{103:Up}),i(Ya,[2,118],{103:Up})],defaultActions:{},parseError:function(Hi,Ui){if(Ui.recoverable)this.trace(Hi);else{var zs=new Error(Hi);throw zs.hash=Ui,zs}},parse:function(Hi){var Ui=this,zs=[0],gi=[],Bo=[null],Ot=[],zu=this.table,Gt="",Wh=0,Vp=0,J3=2,q9=1,l5=Ot.slice.call(arguments,1),Th=Object.create(this.lexer),Vg={yy:{}};for(var Em in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Em)&&(Vg.yy[Em]=this.yy[Em]);Th.setInput(Hi,Vg.yy),Vg.yy.lexer=Th,Vg.yy.parser=this,typeof Th.yylloc>"u"&&(Th.yylloc={});var H9=Th.yylloc;Ot.push(H9);var Cm=Th.options&&Th.options.ranges;typeof Vg.yy.parseError=="function"?this.parseError=Vg.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function h5(){var Gp;return Gp=gi.pop()||Th.lex()||q9,typeof Gp!="number"&&(Gp instanceof Array&&(gi=Gp,Gp=gi.pop()),Gp=Ui.symbols_[Gp]||Gp),Gp}for(var y1,ud,ld,U9,Qv={},X7,tb,Q7,f5;;){if(ud=zs[zs.length-1],this.defaultActions[ud]?ld=this.defaultActions[ud]:((y1===null||typeof y1>"u")&&(y1=h5()),ld=zu[ud]&&zu[ud][y1]),typeof ld>"u"||!ld.length||!ld[0]){var Z3="";f5=[];for(X7 in zu[ud])this.terminals_[X7]&&X7>J3&&f5.push("'"+this.terminals_[X7]+"'");Th.showPosition?Z3="Parse error on line "+(Wh+1)+`: +`+Th.showPosition()+` +Expecting `+f5.join(", ")+", got '"+(this.terminals_[y1]||y1)+"'":Z3="Parse error on line "+(Wh+1)+": Unexpected "+(y1==q9?"end of input":"'"+(this.terminals_[y1]||y1)+"'"),this.parseError(Z3,{text:Th.match,token:this.terminals_[y1]||y1,line:Th.yylineno,loc:H9,expected:f5})}if(ld[0]instanceof Array&&ld.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ud+", token: "+y1);switch(ld[0]){case 1:zs.push(y1),Bo.push(Th.yytext),Ot.push(Th.yylloc),zs.push(ld[1]),y1=null,Vp=Th.yyleng,Gt=Th.yytext,Wh=Th.yylineno,H9=Th.yylloc;break;case 2:if(tb=this.productions_[ld[1]][1],Qv.$=Bo[Bo.length-tb],Qv._$={first_line:Ot[Ot.length-(tb||1)].first_line,last_line:Ot[Ot.length-1].last_line,first_column:Ot[Ot.length-(tb||1)].first_column,last_column:Ot[Ot.length-1].last_column},Cm&&(Qv._$.range=[Ot[Ot.length-(tb||1)].range[0],Ot[Ot.length-1].range[1]]),U9=this.performAction.apply(Qv,[Gt,Vp,Wh,Vg.yy,ld[1],Bo,Ot].concat(l5)),typeof U9<"u")return U9;tb&&(zs=zs.slice(0,-1*tb*2),Bo=Bo.slice(0,-1*tb),Ot=Ot.slice(0,-1*tb)),zs.push(this.productions_[ld[1]][0]),Bo.push(Qv.$),Ot.push(Qv._$),Q7=zu[zs[zs.length-2]][zs[zs.length-1]],zs.push(Q7);break;case 3:return!0}}return!0}},jr=function(){var Qo={EOF:1,parseError:function(Ui,zs){if(this.yy.parser)this.yy.parser.parseError(Ui,zs);else throw new Error(Ui)},setInput:function(Hi,Ui){return this.yy=Ui||this.yy||{},this._input=Hi,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Hi=this._input[0];this.yytext+=Hi,this.yyleng++,this.offset++,this.match+=Hi,this.matched+=Hi;var Ui=Hi.match(/(?:\r\n?|\n).*/g);return Ui?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Hi},unput:function(Hi){var Ui=Hi.length,zs=Hi.split(/(?:\r\n?|\n)/g);this._input=Hi+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ui),this.offset-=Ui;var gi=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),zs.length-1&&(this.yylineno-=zs.length-1);var Bo=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:zs?(zs.length===gi.length?this.yylloc.first_column:0)+gi[gi.length-zs.length].length-zs[0].length:this.yylloc.first_column-Ui},this.options.ranges&&(this.yylloc.range=[Bo[0],Bo[0]+this.yyleng-Ui]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Hi){this.unput(this.match.slice(Hi))},pastInput:function(){var Hi=this.matched.substr(0,this.matched.length-this.match.length);return(Hi.length>20?"...":"")+Hi.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Hi=this.match;return Hi.length<20&&(Hi+=this._input.substr(0,20-Hi.length)),(Hi.substr(0,20)+(Hi.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Hi=this.pastInput(),Ui=new Array(Hi.length+1).join("-");return Hi+this.upcomingInput()+` +`+Ui+"^"},test_match:function(Hi,Ui){var zs,gi,Bo;if(this.options.backtrack_lexer&&(Bo={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&&(Bo.yylloc.range=this.yylloc.range.slice(0))),gi=Hi[0].match(/(?:\r\n?|\n).*/g),gi&&(this.yylineno+=gi.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:gi?gi[gi.length-1].length-gi[gi.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Hi[0].length},this.yytext+=Hi[0],this.match+=Hi[0],this.matches=Hi,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(Hi[0].length),this.matched+=Hi[0],zs=this.performAction.call(this,this.yy,this,Ui,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),zs)return zs;if(this._backtrack){for(var Ot in Bo)this[Ot]=Bo[Ot];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Hi,Ui,zs,gi;this._more||(this.yytext="",this.match="");for(var Bo=this._currentRules(),Ot=0;OtUi[0].length)){if(Ui=zs,gi=Ot,this.options.backtrack_lexer){if(Hi=this.test_match(zs,Bo[Ot]),Hi!==!1)return Hi;if(this._backtrack){Ui=!1;continue}else return!1}else if(!this.options.flex)break}return Ui?(Hi=this.test_match(Ui,Bo[gi]),Hi!==!1?Hi:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ui=this.next();return Ui||this.lex()},begin:function(Ui){this.conditionStack.push(Ui)},popState:function(){var Ui=this.conditionStack.length-1;return Ui>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ui){return Ui=this.conditionStack.length-1-Math.abs(Ui||0),Ui>=0?this.conditionStack[Ui]:"INITIAL"},pushState:function(Ui){this.begin(Ui)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Ui,zs,gi,Bo){switch(gi){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 8:this.popState();break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 11:this.popState();break;case 12:return 93;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("md_string");break;case 16:return"STR";case 17:this.popState();break;case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 27:this.popState();break;case 28:return 85;case 29:return Ui.lex.firstGraph()&&this.begin("dir"),12;case 30:return Ui.lex.firstGraph()&&this.begin("dir"),12;case 31:return Ui.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:return 95;case 35:return 95;case 36:return 95;case 37:return 95;case 38:return this.popState(),13;case 39:return this.popState(),14;case 40:return this.popState(),14;case 41:return this.popState(),14;case 42:return this.popState(),14;case 43:return this.popState(),14;case 44:return this.popState(),14;case 45:return this.popState(),14;case 46:return this.popState(),14;case 47:return this.popState(),14;case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:return 108;case 55:return 44;case 56:return 58;case 57:return 42;case 58:return 8;case 59:return 103;case 60:return 112;case 61:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:return 116;case 64:return this.popState(),75;case 65:return this.pushState("thickEdgeText"),73;case 66:return 116;case 67:return this.popState(),75;case 68:return this.pushState("dottedEdgeText"),73;case 69:return 116;case 70:return 75;case 71:return this.popState(),51;case 72:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 94:return 112;case 95:return 108;case 96:return 42;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 108:return"TEXT";case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};return Qo}();Vt.lexer=jr;function Ji(){this.yy={}}return Ji.prototype=Vt,Vt.Parser=Ji,new Ji}();ume.parser=ume;const lme=ume,zVt="flowchart-";let cHe=0,UD=qt(),ih={},V3=[],VD={},j7=[],GQ={},KQ={},WQ=0,hme=!0,Kv,YQ,XQ=[];const QQ=i=>oi.sanitizeText(i,UD),ER=function(i){const a=Object.keys(ih);for(const u of a)if(ih[u].id===i)return ih[u].domId;return i},uHe=function(i,a,u,d,p,v,b={}){let y,E=i;E!==void 0&&E.trim().length!==0&&(ih[E]===void 0&&(ih[E]={id:E,labelType:"text",domId:zVt+E+"-"+cHe,styles:[],classes:[]}),cHe++,a!==void 0?(UD=qt(),y=QQ(a.text.trim()),ih[E].labelType=a.type,y[0]==='"'&&y[y.length-1]==='"'&&(y=y.substring(1,y.length-1)),ih[E].text=y):ih[E].text===void 0&&(ih[E].text=i),u!==void 0&&(ih[E].type=u),d!=null&&d.forEach(function(_){ih[E].styles.push(_)}),p!=null&&p.forEach(function(_){ih[E].classes.push(_)}),v!==void 0&&(ih[E].dir=v),ih[E].props===void 0?ih[E].props=b:b!==void 0&&Object.assign(ih[E].props,b))},lHe=function(i,a,u){const v={start:i,end:a,type:void 0,text:"",labelType:"text"};Xe.info("abc78 Got edge...",v);const b=u.text;if(b!==void 0&&(v.text=QQ(b.text.trim()),v.text[0]==='"'&&v.text[v.text.length-1]==='"'&&(v.text=v.text.substring(1,v.text.length-1)),v.labelType=b.type),u!==void 0&&(v.type=u.type,v.stroke=u.stroke,v.length=u.length),(v==null?void 0:v.length)>10&&(v.length=10),V3.length<(UD.maxEdges??500))Xe.info("abc78 pushing edge..."),V3.push(v);else throw new Error(`Edge limit exceeded. ${V3.length} edges found, but the limit is ${UD.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)},hHe=function(i,a,u){Xe.info("addLink (abc78)",i,a,u);let d,p;for(d=0;d=V3.length)throw new Error(`The index ${u} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${V3.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);u==="default"?V3.defaultStyle=a:(So.isSubstringInArray("fill",a)===-1&&a.push("fill:none"),V3[u].style=a)})},gHe=function(i,a){i.split(",").forEach(function(u){VD[u]===void 0&&(VD[u]={id:u,styles:[],textStyles:[]}),a!=null&&a.forEach(function(d){if(d.match("color")){const p=d.replace("fill","bgFill").replace("color","fill");VD[u].textStyles.push(p)}VD[u].styles.push(d)})})},pHe=function(i){Kv=i,Kv.match(/.*/)&&(Kv="LR"),Kv.match(/.*v/)&&(Kv="TB"),Kv==="TD"&&(Kv="TB")},JQ=function(i,a){i.split(",").forEach(function(u){let d=u;ih[d]!==void 0&&ih[d].classes.push(a),GQ[d]!==void 0&&GQ[d].classes.push(a)})},qVt=function(i,a){i.split(",").forEach(function(u){a!==void 0&&(KQ[YQ==="gen-1"?ER(u):u]=QQ(a))})},HVt=function(i,a,u){let d=ER(i);if(qt().securityLevel!=="loose"||a===void 0)return;let p=[];if(typeof u=="string"){p=u.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let v=0;v")),p.classed("hover",!0)}).on("mouseout",function(){a.transition().duration(500).style("opacity",0),Dr(this).classed("hover",!1)})};XQ.push(EHe);const CHe=function(i="gen-1"){ih={},VD={},V3=[],XQ=[EHe],j7=[],GQ={},WQ=0,KQ={},hme=!0,YQ=i,UD=qt(),Rg()},SHe=i=>{YQ=i||"gen-2"},_He=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},AHe=function(i,a,u){let d=i.text.trim(),p=u.text;i===u&&u.text.match(/\s/)&&(d=void 0);function v(A){const P={boolean:{},number:{},string:{}},R=[];let B;return{nodeList:A.filter(function(W){const ee=typeof W;return W.stmt&&W.stmt==="dir"?(B=W.value,!1):W.trim()===""?!1:ee in P?P[ee].hasOwnProperty(W)?!1:P[ee][W]=!0:R.includes(W)?!1:R.push(W)}),dir:B}}let b=[];const{nodeList:y,dir:E}=v(b.concat.apply(b,a));if(b=y,YQ==="gen-1")for(let A=0;A2e3)return;if(LHe[CR]=a,j7[a].id===i)return{result:!0,count:0};let d=0,p=1;for(;d=0){const b=MHe(i,v);if(b.result)return{result:!0,count:p+b.count};p=p+b.count}d=d+1}return{result:!1,count:p}},DHe=function(i){return LHe[i]},IHe=function(){CR=-1,j7.length>0&&MHe("none",j7.length-1)},OHe=function(){return j7},NHe=()=>hme?(hme=!1,!0):!1,VVt=i=>{let a=i.trim(),u="arrow_open";switch(a[0]){case"<":u="arrow_point",a=a.slice(1);break;case"x":u="arrow_cross",a=a.slice(1);break;case"o":u="arrow_circle",a=a.slice(1);break}let d="normal";return a.includes("=")&&(d="thick"),a.includes(".")&&(d="dotted"),{type:u,stroke:d}},GVt=(i,a)=>{const u=a.length;let d=0;for(let p=0;p{const a=i.trim();let u=a.slice(0,-1),d="arrow_open";switch(a.slice(-1)){case"x":d="arrow_cross",a[0]==="x"&&(d="double_"+d,u=u.slice(1));break;case">":d="arrow_point",a[0]==="<"&&(d="double_"+d,u=u.slice(1));break;case"o":d="arrow_circle",a[0]==="o"&&(d="double_"+d,u=u.slice(1));break}let p="normal",v=u.length-1;u[0]==="="&&(p="thick"),u[0]==="~"&&(p="invisible");let b=GVt(".",u);return b&&(p="dotted",v=b),{type:d,stroke:p,length:v}},PHe=(i,a)=>{const u=KVt(i);let d;if(a){if(d=VVt(a),d.stroke!==u.stroke)return{type:"INVALID",stroke:"INVALID"};if(d.type==="arrow_open")d.type=u.type;else{if(d.type!==u.type)return{type:"INVALID",stroke:"INVALID"};d.type="double_"+d.type}return d.type==="double_arrow"&&(d.type="double_arrow_point"),d.length=u.length,d}return u},BHe=(i,a)=>{let u=!1;return i.forEach(d=>{d.nodes.indexOf(a)>=0&&(u=!0)}),u},FHe=(i,a)=>{const u=[];return i.nodes.forEach((d,p)=>{BHe(a,d)||u.push(i.nodes[p])}),{nodes:u}},RHe={firstGraph:NHe},UC={defaultConfig:()=>E$e.flowchart,setAccTitle:jg,getAccTitle:Mp,getAccDescription:Ip,setAccDescription:Dp,addVertex:uHe,lookUpDomId:ER,addLink:hHe,updateLinkInterpolate:fHe,updateLink:dHe,addClass:gHe,setDirection:pHe,setClass:JQ,setTooltip:qVt,getTooltip:mHe,setClickEvent:vHe,setLink:bHe,bindFunctions:wHe,getDirection:yHe,getVertices:xHe,getEdges:kHe,getClasses:THe,clear:CHe,setGen:SHe,defaultStyle:_He,addSubGraph:AHe,getDepthFirstPos:DHe,indexNodes:IHe,getSubGraphs:OHe,destructLink:PHe,lex:RHe,exists:BHe,makeUniq:FHe,setDiagramTitle:pm,getDiagramTitle:Op},WVt=Object.freeze(Object.defineProperty({__proto__:null,addClass:gHe,addLink:hHe,addSingleLink:lHe,addSubGraph:AHe,addVertex:uHe,bindFunctions:wHe,clear:CHe,default:UC,defaultStyle:_He,destructLink:PHe,firstGraph:NHe,getClasses:THe,getDepthFirstPos:DHe,getDirection:yHe,getEdges:kHe,getSubGraphs:OHe,getTooltip:mHe,getVertices:xHe,indexNodes:IHe,lex:RHe,lookUpDomId:ER,setClass:JQ,setClickEvent:vHe,setDirection:pHe,setGen:SHe,setLink:bHe,updateLink:dHe,updateLinkInterpolate:fHe},Symbol.toStringTag,{value:"Module"}));var YVt="[object Symbol]";function VC(i){return typeof i=="symbol"||V4(i)&&LC(i)==YVt}function GD(i,a){for(var u=-1,d=i==null?0:i.length,p=Array(d);++u-1}function xm(i){return y9(i)?Lje(i):P$e(i)}var dGt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,gGt=/^\w*$/;function fme(i,a){if(D0(i))return!1;var u=typeof i;return u=="number"||u=="symbol"||u=="boolean"||i==null||VC(i)?!0:gGt.test(i)||!dGt.test(i)||a!=null&&i in Object(a)}var pGt=500;function bGt(i){var a=yD(i,function(d){return u.size===pGt&&u.clear(),d}),u=a.cache;return a}var mGt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,vGt=/\\(\\)?/g,wGt=bGt(function(i){var a=[];return i.charCodeAt(0)===46&&a.push(""),i.replace(mGt,function(u,d,p,v){a.push(p?v.replace(vGt,"$1"):d||u)}),a});const yGt=wGt;function GHe(i){return i==null?"":zHe(i)}function eJ(i,a){return D0(i)?i:fme(i,a)?[i]:yGt(GHe(i))}var xGt=1/0;function SR(i){if(typeof i=="string"||VC(i))return i;var a=i+"";return a=="0"&&1/i==-xGt?"-0":a}function tJ(i,a){a=eJ(a,i);for(var u=0,d=a.length;i!=null&&u0&&u(y)?a>1?nJ(y,a-1,u,d,p):dme(p,y):d||(p[p.length]=y)}return p}function KD(i){var a=i==null?0:i.length;return a?nJ(i,1):[]}function EGt(i){return Oje(Ije(i,void 0,KD),i+"")}function CGt(i,a,u,d){var p=-1,v=i==null?0:i.length;for(d&&v&&(u=i[++p]);++py))return!1;var _=v.get(i),A=v.get(a);if(_&&A)return _==a&&A==i;var P=-1,R=!0,B=u&JKt?new AR:void 0;for(v.set(i,a),v.set(a,i);++P2?a[2]:void 0;for(p&&oR(a[0],a[1],p)&&(d=1);++u-1?p[v?a[b]:b]:void 0}}var zWt=Math.max;function qWt(i,a,u){var d=i==null?0:i.length;if(!d)return-1;var p=u==null?0:oGt(u);return p<0&&(p=zWt(d+p,0)),VHe(i,N9(a),p)}var HWt=$Wt(qWt);const xme=HWt;function wUe(i,a){var u=-1,d=y9(i)?Array(i.length):[];return iJ(i,function(p,v,b){d[++u]=a(p,v,b)}),d}function F0(i,a){var u=D0(i)?GD:wUe;return u(i,N9(a))}function UWt(i,a){return i==null?i:M2e(i,yme(a),OC)}function VWt(i,a){return i&&wme(i,yme(a))}function GWt(i,a){return i>a}var KWt=Object.prototype,WWt=KWt.hasOwnProperty;function YWt(i,a){return i!=null&&WWt.call(i,a)}function yUe(i,a){return i!=null&&pUe(i,a,YWt)}function XWt(i,a){return GD(a,function(u){return i[u]})}function z7(i){return i==null?[]:XWt(i,xm(i))}function Yf(i){return i===void 0}function xUe(i,a){return ia||v&&b&&E&&!y&&!_||d&&b&&E||!u&&E||!p)return 1;if(!d&&!v&&!_&&i=y)return E;var _=u[d];return E*(_=="desc"?-1:1)}}return i.index-a.index}function nYt(i,a,u){a.length?a=GD(a,function(v){return D0(v)?function(b){return tJ(b,v.length===1?v[0]:v)}:v}):a=[NC];var d=-1;a=GD(a,jX(N9));var p=wUe(i,function(v,b,y){var E=GD(a,function(_){return _(v)});return{criteria:E,index:++d,value:v}});return ZWt(p,function(v,b){return tYt(v,b,u)})}function rYt(i,a){return JWt(i,a,function(u,d){return bUe(i,d)})}var iYt=EGt(function(i,a){return i==null?{}:rYt(i,a)});const MR=iYt;var sYt=Math.ceil,aYt=Math.max;function oYt(i,a,u,d){for(var p=-1,v=aYt(sYt((a-i)/(u||1)),0),b=Array(v);v--;)b[d?v:++p]=i,i+=u;return b}function cYt(i){return function(a,u,d){return d&&typeof d!="number"&&oR(a,u,d)&&(u=d=void 0),a=ZQ(a),u===void 0?(u=a,a=0):u=ZQ(u),d=d===void 0?a1&&oR(i,a[0],a[1])?a=[]:u>2&&oR(a[0],a[1],a[2])&&(a=[a[0]]),nYt(i,nJ(a,1),[])});const IR=hYt;var fYt=1/0,dYt=LD&&1/bme(new LD([,-0]))[1]==fYt?function(i){return new LD(i)}:cGt;const gYt=dYt;var pYt=200;function bYt(i,a,u){var d=-1,p=fGt,v=i.length,b=!0,y=[],E=y;if(u)b=!1,p=RWt;else if(v>=pYt){var _=a?null:gYt(i);if(_)return bme(_);b=!1,p=oUe,E=new AR}else E=a?[]:y;e:for(;++d1?p.setNode(v,u):p.setNode(v)}),this}setNode(a,u){return Object.prototype.hasOwnProperty.call(this._nodes,a)?(arguments.length>1&&(this._nodes[a]=u),this):(this._nodes[a]=arguments.length>1?u:this._defaultNodeLabelFn(a),this._isCompound&&(this._parent[a]=WC,this._children[a]={},this._children[WC][a]=!0),this._in[a]={},this._preds[a]={},this._out[a]={},this._sucs[a]={},++this._nodeCount,this)}node(a){return this._nodes[a]}hasNode(a){return Object.prototype.hasOwnProperty.call(this._nodes,a)}removeNode(a){if(Object.prototype.hasOwnProperty.call(this._nodes,a)){var u=d=>this.removeEdge(this._edgeObjs[d]);delete this._nodes[a],this._isCompound&&(this._removeFromParentsChildList(a),delete this._parent[a],Ar(this.children(a),d=>{this.setParent(d)}),delete this._children[a]),Ar(xm(this._in[a]),u),delete this._in[a],delete this._preds[a],Ar(xm(this._out[a]),u),delete this._out[a],delete this._sucs[a],--this._nodeCount}return this}setParent(a,u){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(Yf(u))u=WC;else{u+="";for(var d=u;!Yf(d);d=this.parent(d))if(d===a)throw new Error("Setting "+u+" as parent of "+a+" would create a cycle");this.setNode(u)}return this.setNode(a),this._removeFromParentsChildList(a),this._parent[a]=u,this._children[u][a]=!0,this}_removeFromParentsChildList(a){delete this._children[this._parent[a]][a]}parent(a){if(this._isCompound){var u=this._parent[a];if(u!==WC)return u}}children(a){if(Yf(a)&&(a=WC),this._isCompound){var u=this._children[a];if(u)return xm(u)}else{if(a===WC)return this.nodes();if(this.hasNode(a))return[]}}predecessors(a){var u=this._preds[a];if(u)return xm(u)}successors(a){var u=this._sucs[a];if(u)return xm(u)}neighbors(a){var u=this.predecessors(a);if(u)return vYt(u,this.successors(a))}isLeaf(a){var u;return this.isDirected()?u=this.successors(a):u=this.neighbors(a),u.length===0}filterNodes(a){var u=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});u.setGraph(this.graph());var d=this;Ar(this._nodes,function(b,y){a(y)&&u.setNode(y,b)}),Ar(this._edgeObjs,function(b){u.hasNode(b.v)&&u.hasNode(b.w)&&u.setEdge(b,d.edge(b))});var p={};function v(b){var y=d.parent(b);return y===void 0||u.hasNode(y)?(p[b]=y,y):y in p?p[y]:v(y)}return this._isCompound&&Ar(u.nodes(),function(b){u.setParent(b,v(b))}),u}setDefaultEdgeLabel(a){return vD(a)||(a=ED(a)),this._defaultEdgeLabelFn=a,this}edgeCount(){return this._edgeCount}edges(){return z7(this._edgeObjs)}setPath(a,u){var d=this,p=arguments;return DR(a,function(v,b){return p.length>1?d.setEdge(v,b,u):d.setEdge(v,b),b}),this}setEdge(){var a,u,d,p,v=!1,b=arguments[0];typeof b=="object"&&b!==null&&"v"in b?(a=b.v,u=b.w,d=b.name,arguments.length===2&&(p=arguments[1],v=!0)):(a=b,u=arguments[1],d=arguments[3],arguments.length>2&&(p=arguments[2],v=!0)),a=""+a,u=""+u,Yf(d)||(d=""+d);var y=OR(this._isDirected,a,u,d);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,y))return v&&(this._edgeLabels[y]=p),this;if(!Yf(d)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(a),this.setNode(u),this._edgeLabels[y]=v?p:this._defaultEdgeLabelFn(a,u,d);var E=TYt(this._isDirected,a,u,d);return a=E.v,u=E.w,Object.freeze(E),this._edgeObjs[y]=E,TUe(this._preds[u],a),TUe(this._sucs[a],u),this._in[u][y]=E,this._out[a][y]=E,this._edgeCount++,this}edge(a,u,d){var p=arguments.length===1?Eme(this._isDirected,arguments[0]):OR(this._isDirected,a,u,d);return this._edgeLabels[p]}hasEdge(a,u,d){var p=arguments.length===1?Eme(this._isDirected,arguments[0]):OR(this._isDirected,a,u,d);return Object.prototype.hasOwnProperty.call(this._edgeLabels,p)}removeEdge(a,u,d){var p=arguments.length===1?Eme(this._isDirected,arguments[0]):OR(this._isDirected,a,u,d),v=this._edgeObjs[p];return v&&(a=v.v,u=v.w,delete this._edgeLabels[p],delete this._edgeObjs[p],EUe(this._preds[u],a),EUe(this._sucs[a],u),delete this._in[u][p],delete this._out[a][p],this._edgeCount--),this}inEdges(a,u){var d=this._in[a];if(d){var p=z7(d);return u?$7(p,function(v){return v.v===u}):p}}outEdges(a,u){var d=this._out[a];if(d){var p=z7(d);return u?$7(p,function(v){return v.w===u}):p}}nodeEdges(a,u){var d=this.inEdges(a,u);if(d)return d.concat(this.outEdges(a,u))}}R0.prototype._nodeCount=0,R0.prototype._edgeCount=0;function TUe(i,a){i[a]?i[a]++:i[a]=1}function EUe(i,a){--i[a]||delete i[a]}function OR(i,a,u,d){var p=""+a,v=""+u;if(!i&&p>v){var b=p;p=v,v=b}return p+kUe+v+kUe+(Yf(d)?kYt:d)}function TYt(i,a,u,d){var p=""+a,v=""+u;if(!i&&p>v){var b=p;p=v,v=b}var y={v:p,w:v};return d&&(y.name=d),y}function Eme(i,a){return OR(i,a.v,a.w,a.name)}class EYt{constructor(){var a={};a._next=a._prev=a,this._sentinel=a}dequeue(){var a=this._sentinel,u=a._prev;if(u!==a)return CUe(u),u}enqueue(a){var u=this._sentinel;a._prev&&a._next&&CUe(a),a._next=u._next,u._next._prev=a,u._next=a,a._prev=u}toString(){for(var a=[],u=this._sentinel,d=u._prev;d!==u;)a.push(JSON.stringify(d,CYt)),d=d._prev;return"["+a.join(", ")+"]"}}function CUe(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function CYt(i,a){if(i!=="_next"&&i!=="_prev")return a}var SYt=ED(1);function _Yt(i,a){if(i.nodeCount()<=1)return[];var u=LYt(i,a||SYt),d=AYt(u.graph,u.buckets,u.zeroIdx);return KD(F0(d,function(p){return i.outEdges(p.v,p.w)}))}function AYt(i,a,u){for(var d=[],p=a[a.length-1],v=a[0],b;i.nodeCount();){for(;b=v.dequeue();)Cme(i,a,u,b);for(;b=p.dequeue();)Cme(i,a,u,b);if(i.nodeCount()){for(var y=a.length-2;y>0;--y)if(b=a[y].dequeue(),b){d=d.concat(Cme(i,a,u,b,!0));break}}}return d}function Cme(i,a,u,d,p){var v=p?[]:void 0;return Ar(i.inEdges(d.v),function(b){var y=i.edge(b),E=i.node(b.v);p&&v.push({v:b.v,w:b.w}),E.out-=y,Sme(a,u,E)}),Ar(i.outEdges(d.v),function(b){var y=i.edge(b),E=b.w,_=i.node(E);_.in-=y,Sme(a,u,_)}),i.removeNode(d.v),v}function LYt(i,a){var u=new R0,d=0,p=0;Ar(i.nodes(),function(y){u.setNode(y,{v:y,in:0,out:0})}),Ar(i.edges(),function(y){var E=u.edge(y.v,y.w)||0,_=a(y),A=E+_;u.setEdge(y.v,y.w,A),p=Math.max(p,u.node(y.v).out+=_),d=Math.max(d,u.node(y.w).in+=_)});var v=KC(p+d+3).map(function(){return new EYt}),b=d+1;return Ar(u.nodes(),function(y){Sme(v,b,u.node(y))}),{graph:u,buckets:v,zeroIdx:b}}function Sme(i,a,u){u.out?u.in?i[u.out-u.in+a].enqueue(u):i[i.length-1].enqueue(u):i[0].enqueue(u)}function MYt(i){var a=i.graph().acyclicer==="greedy"?_Yt(i,u(i)):DYt(i);Ar(a,function(d){var p=i.edge(d);i.removeEdge(d),p.forwardName=d.name,p.reversed=!0,i.setEdge(d.w,d.v,p,oJ("rev"))});function u(d){return function(p){return d.edge(p).weight}}}function DYt(i){var a=[],u={},d={};function p(v){Object.prototype.hasOwnProperty.call(d,v)||(d[v]=!0,u[v]=!0,Ar(i.outEdges(v),function(b){Object.prototype.hasOwnProperty.call(u,b.w)?a.push(b):p(b.w)}),delete u[v])}return Ar(i.nodes(),p),a}function IYt(i){Ar(i.edges(),function(a){var u=i.edge(a);if(u.reversed){i.removeEdge(a);var d=u.forwardName;delete u.reversed,delete u.forwardName,i.setEdge(a.w,a.v,u,d)}})}function YD(i,a,u,d){var p;do p=oJ(d);while(i.hasNode(p));return u.dummy=a,i.setNode(p,u),p}function OYt(i){var a=new R0().setGraph(i.graph());return Ar(i.nodes(),function(u){a.setNode(u,i.node(u))}),Ar(i.edges(),function(u){var d=a.edge(u.v,u.w)||{weight:0,minlen:1},p=i.edge(u);a.setEdge(u.v,u.w,{weight:d.weight+p.weight,minlen:Math.max(d.minlen,p.minlen)})}),a}function SUe(i){var a=new R0({multigraph:i.isMultigraph()}).setGraph(i.graph());return Ar(i.nodes(),function(u){i.children(u).length||a.setNode(u,i.node(u))}),Ar(i.edges(),function(u){a.setEdge(u,i.edge(u))}),a}function _Ue(i,a){var u=i.x,d=i.y,p=a.x-u,v=a.y-d,b=i.width/2,y=i.height/2;if(!p&&!v)throw new Error("Not possible to find intersection inside of the rectangle");var E,_;return Math.abs(v)*b>Math.abs(p)*y?(v<0&&(y=-y),E=y*p/v,_=y):(p<0&&(b=-b),E=b,_=b*v/p),{x:u+E,y:d+_}}function cJ(i){var a=F0(KC(LUe(i)+1),function(){return[]});return Ar(i.nodes(),function(u){var d=i.node(u),p=d.rank;Yf(p)||(a[p][d.order]=u)}),a}function NYt(i){var a=LR(F0(i.nodes(),function(u){return i.node(u).rank}));Ar(i.nodes(),function(u){var d=i.node(u);yUe(d,"rank")&&(d.rank-=a)})}function PYt(i){var a=LR(F0(i.nodes(),function(v){return i.node(v).rank})),u=[];Ar(i.nodes(),function(v){var b=i.node(v).rank-a;u[b]||(u[b]=[]),u[b].push(v)});var d=0,p=i.graph().nodeRankFactor;Ar(u,function(v,b){Yf(v)&&b%p!==0?--d:d&&Ar(v,function(y){i.node(y).rank+=d})})}function AUe(i,a,u,d){var p={width:0,height:0};return arguments.length>=4&&(p.rank=u,p.order=d),YD(i,"border",p,a)}function LUe(i){return GC(F0(i.nodes(),function(a){var u=i.node(a).rank;if(!Yf(u))return u}))}function BYt(i,a){var u={lhs:[],rhs:[]};return Ar(i,function(d){a(d)?u.lhs.push(d):u.rhs.push(d)}),u}function FYt(i,a){var u=mUe();try{return a()}finally{console.log(i+" time: "+(mUe()-u)+"ms")}}function RYt(i,a){return a()}function jYt(i){function a(u){var d=i.children(u),p=i.node(u);if(d.length&&Ar(d,a),Object.prototype.hasOwnProperty.call(p,"minRank")){p.borderLeft=[],p.borderRight=[];for(var v=p.minRank,b=p.maxRank+1;vb.lim&&(y=b,E=!0);var _=$7(a.edges(),function(A){return E===zUe(i,i.node(A.v),y)&&E!==zUe(i,i.node(A.w),y)});return Tme(_,function(A){return NR(a,A)})}function $Ue(i,a,u,d){var p=u.v,v=u.w;i.removeEdge(p,v),i.setEdge(d.v,d.w,{}),Dme(i),Mme(i,a),eXt(i,a)}function eXt(i,a){var u=xme(i.nodes(),function(p){return!a.node(p).parent}),d=JYt(i,u);d=d.slice(1),Ar(d,function(p){var v=i.node(p).parent,b=a.edge(p,v),y=!1;b||(b=a.edge(v,p),y=!0),a.node(p).rank=a.node(v).rank+(y?b.minlen:-b.minlen)})}function tXt(i,a,u){return i.hasEdge(a,u)}function zUe(i,a,u){return u.low<=a.lim&&a.lim<=u.lim}function nXt(i){switch(i.graph().ranker){case"network-simplex":qUe(i);break;case"tight-tree":iXt(i);break;case"longest-path":rXt(i);break;default:qUe(i)}}var rXt=Lme;function iXt(i){Lme(i),OUe(i)}function qUe(i){YC(i)}function sXt(i){var a=YD(i,"root",{},"_root"),u=aXt(i),d=GC(z7(u))-1,p=2*d+1;i.graph().nestingRoot=a,Ar(i.edges(),function(b){i.edge(b).minlen*=p});var v=oXt(i)+1;Ar(i.children(),function(b){HUe(i,a,p,v,d,u,b)}),i.graph().nodeRankFactor=p}function HUe(i,a,u,d,p,v,b){var y=i.children(b);if(!y.length){b!==a&&i.setEdge(a,b,{weight:0,minlen:u});return}var E=AUe(i,"_bt"),_=AUe(i,"_bb"),A=i.node(b);i.setParent(E,b),A.borderTop=E,i.setParent(_,b),A.borderBottom=_,Ar(y,function(P){HUe(i,a,u,d,p,v,P);var R=i.node(P),B=R.borderTop?R.borderTop:P,j=R.borderBottom?R.borderBottom:P,W=R.borderTop?d:2*d,ee=B!==j?1:p-v[b]+1;i.setEdge(E,B,{weight:W,minlen:ee,nestingEdge:!0}),i.setEdge(j,_,{weight:W,minlen:ee,nestingEdge:!0})}),i.parent(b)||i.setEdge(a,E,{weight:0,minlen:p+v[b]})}function aXt(i){var a={};function u(d,p){var v=i.children(d);v&&v.length&&Ar(v,function(b){u(b,p+1)}),a[d]=p}return Ar(i.children(),function(d){u(d,1)}),a}function oXt(i){return DR(i.edges(),function(a,u){return a+i.edge(u).weight},0)}function cXt(i){var a=i.graph();i.removeNode(a.nestingRoot),delete a.nestingRoot,Ar(i.edges(),function(u){var d=i.edge(u);d.nestingEdge&&i.removeEdge(u)})}function uXt(i,a,u){var d={},p;Ar(u,function(v){for(var b=i.parent(v),y,E;b;){if(y=i.parent(b),y?(E=d[y],d[y]=b):(E=p,p=b),E&&E!==b){a.setEdge(E,b);return}b=y}})}function lXt(i,a,u){var d=hXt(i),p=new R0({compound:!0}).setGraph({root:d}).setDefaultNodeLabel(function(v){return i.node(v)});return Ar(i.nodes(),function(v){var b=i.node(v),y=i.parent(v);(b.rank===a||b.minRank<=a&&a<=b.maxRank)&&(p.setNode(v),p.setParent(v,y||d),Ar(i[u](v),function(E){var _=E.v===v?E.w:E.v,A=p.edge(_,v),P=Yf(A)?0:A.weight;p.setEdge(_,v,{weight:i.edge(E).weight+P})}),Object.prototype.hasOwnProperty.call(b,"minRank")&&p.setNode(v,{borderLeft:b.borderLeft[a],borderRight:b.borderRight[a]}))}),p}function hXt(i){for(var a;i.hasNode(a=oJ("_root")););return a}function fXt(i,a){for(var u=0,d=1;d0;)A%2&&(P+=y[A+1]),A=A-1>>1,y[A]+=_.weight;E+=_.weight*P})),E}function gXt(i){var a={},u=$7(i.nodes(),function(y){return!i.children(y).length}),d=GC(F0(u,function(y){return i.node(y).rank})),p=F0(KC(d+1),function(){return[]});function v(y){if(!yUe(a,y)){a[y]=!0;var E=i.node(y);p[E.rank].push(y),Ar(i.successors(y),v)}}var b=IR(u,function(y){return i.node(y).rank});return Ar(b,v),p}function pXt(i,a){return F0(a,function(u){var d=i.inEdges(u);if(d.length){var p=DR(d,function(v,b){var y=i.edge(b),E=i.node(b.v);return{sum:v.sum+y.weight*E.order,weight:v.weight+y.weight}},{sum:0,weight:0});return{v:u,barycenter:p.sum/p.weight,weight:p.weight}}else return{v:u}})}function bXt(i,a){var u={};Ar(i,function(p,v){var b=u[p.v]={indegree:0,in:[],out:[],vs:[p.v],i:v};Yf(p.barycenter)||(b.barycenter=p.barycenter,b.weight=p.weight)}),Ar(a.edges(),function(p){var v=u[p.v],b=u[p.w];!Yf(v)&&!Yf(b)&&(b.indegree++,v.out.push(u[p.w]))});var d=$7(u,function(p){return!p.indegree});return mXt(d)}function mXt(i){var a=[];function u(v){return function(b){b.merged||(Yf(b.barycenter)||Yf(v.barycenter)||b.barycenter>=v.barycenter)&&vXt(v,b)}}function d(v){return function(b){b.in.push(v),--b.indegree===0&&i.push(b)}}for(;i.length;){var p=i.pop();a.push(p),Ar(p.in.reverse(),u(p)),Ar(p.out,d(p))}return F0($7(a,function(v){return!v.merged}),function(v){return MR(v,["vs","i","barycenter","weight"])})}function vXt(i,a){var u=0,d=0;i.weight&&(u+=i.barycenter*i.weight,d+=i.weight),a.weight&&(u+=a.barycenter*a.weight,d+=a.weight),i.vs=a.vs.concat(i.vs),i.barycenter=u/d,i.weight=d,i.i=Math.min(a.i,i.i),a.merged=!0}function wXt(i,a){var u=BYt(i,function(A){return Object.prototype.hasOwnProperty.call(A,"barycenter")}),d=u.lhs,p=IR(u.rhs,function(A){return-A.i}),v=[],b=0,y=0,E=0;d.sort(yXt(!!a)),E=UUe(v,p,E),Ar(d,function(A){E+=A.vs.length,v.push(A.vs),b+=A.barycenter*A.weight,y+=A.weight,E=UUe(v,p,E)});var _={vs:KD(v)};return y&&(_.barycenter=b/y,_.weight=y),_}function UUe(i,a,u){for(var d;a.length&&(d=sJ(a)).i<=u;)a.pop(),i.push(d.vs),u++;return u}function yXt(i){return function(a,u){return a.barycenteru.barycenter?1:i?u.i-a.i:a.i-u.i}}function VUe(i,a,u,d){var p=i.children(a),v=i.node(a),b=v?v.borderLeft:void 0,y=v?v.borderRight:void 0,E={};b&&(p=$7(p,function(j){return j!==b&&j!==y}));var _=pXt(i,p);Ar(_,function(j){if(i.children(j.v).length){var W=VUe(i,j.v,u,d);E[j.v]=W,Object.prototype.hasOwnProperty.call(W,"barycenter")&&kXt(j,W)}});var A=bXt(_,u);xXt(A,E);var P=wXt(A,d);if(b&&(P.vs=KD([b,P.vs,y]),i.predecessors(b).length)){var R=i.node(i.predecessors(b)[0]),B=i.node(i.predecessors(y)[0]);Object.prototype.hasOwnProperty.call(P,"barycenter")||(P.barycenter=0,P.weight=0),P.barycenter=(P.barycenter*P.weight+R.order+B.order)/(P.weight+2),P.weight+=2}return P}function xXt(i,a){Ar(i,function(u){u.vs=KD(u.vs.map(function(d){return a[d]?a[d].vs:d}))})}function kXt(i,a){Yf(i.barycenter)?(i.barycenter=a.barycenter,i.weight=a.weight):(i.barycenter=(i.barycenter*i.weight+a.barycenter*a.weight)/(i.weight+a.weight),i.weight+=a.weight)}function TXt(i){var a=LUe(i),u=GUe(i,KC(1,a+1),"inEdges"),d=GUe(i,KC(a-1,-1,-1),"outEdges"),p=gXt(i);KUe(i,p);for(var v=Number.POSITIVE_INFINITY,b,y=0,E=0;E<4;++y,++E){EXt(y%2?u:d,y%4>=2),p=cJ(i);var _=fXt(i,p);_b||y>a[E].lim));for(_=E,E=d;(E=i.parent(E))!==_;)v.push(E);return{path:p.concat(v.reverse()),lca:_}}function _Xt(i){var a={},u=0;function d(p){var v=u;Ar(i.children(p),d),a[p]={low:v,lim:u++}}return Ar(i.children(),d),a}function AXt(i,a){var u={};function d(p,v){var b=0,y=0,E=p.length,_=sJ(v);return Ar(v,function(A,P){var R=MXt(i,A),B=R?i.node(R).order:E;(R||A===_)&&(Ar(v.slice(y,P+1),function(j){Ar(i.predecessors(j),function(W){var ee=i.node(W),ie=ee.order;(ie_)&&WUe(u,R,A)})})}function p(v,b){var y=-1,E,_=0;return Ar(b,function(A,P){if(i.node(A).dummy==="border"){var R=i.predecessors(A);R.length&&(E=i.node(R[0]).order,d(b,_,P,y,E),_=P,y=E)}d(b,_,b.length,E,v.length)}),b}return DR(a,p),u}function MXt(i,a){if(i.node(a).dummy)return xme(i.predecessors(a),function(u){return i.node(u).dummy})}function WUe(i,a,u){if(a>u){var d=a;a=u,u=d}Object.prototype.hasOwnProperty.call(i,a)||Object.defineProperty(i,a,{enumerable:!0,configurable:!0,value:{},writable:!0});var p=i[a];Object.defineProperty(p,u,{enumerable:!0,configurable:!0,value:!0,writable:!0})}function DXt(i,a,u){if(a>u){var d=a;a=u,u=d}return!!i[a]&&Object.prototype.hasOwnProperty.call(i[a],u)}function IXt(i,a,u,d){var p={},v={},b={};return Ar(a,function(y){Ar(y,function(E,_){p[E]=E,v[E]=E,b[E]=_})}),Ar(a,function(y){var E=-1;Ar(y,function(_){var A=d(_);if(A.length){A=IR(A,function(W){return b[W]});for(var P=(A.length-1)/2,R=Math.floor(P),B=Math.ceil(P);R<=B;++R){var j=A[R];v[_]===_&&E{var d=u(" buildLayoutGraph",()=>ZXt(i));u(" runLayout",()=>HXt(d,u)),u(" updateInputGraph",()=>UXt(i,d))})}function HXt(i,a){a(" makeSpaceForEdgeLabels",()=>eQt(i)),a(" removeSelfEdges",()=>uQt(i)),a(" acyclic",()=>MYt(i)),a(" nestingGraph.run",()=>sXt(i)),a(" rank",()=>nXt(SUe(i))),a(" injectEdgeLabelProxies",()=>tQt(i)),a(" removeEmptyRanks",()=>PYt(i)),a(" nestingGraph.cleanup",()=>cXt(i)),a(" normalizeRanks",()=>NYt(i)),a(" assignRankMinMax",()=>nQt(i)),a(" removeEdgeLabelProxies",()=>rQt(i)),a(" normalize.run",()=>UYt(i)),a(" parentDummyChains",()=>CXt(i)),a(" addBorderSegments",()=>jYt(i)),a(" order",()=>TXt(i)),a(" insertSelfEdges",()=>lQt(i)),a(" adjustCoordinateSystem",()=>$Yt(i)),a(" position",()=>zXt(i)),a(" positionSelfEdges",()=>hQt(i)),a(" removeBorderNodes",()=>cQt(i)),a(" normalize.undo",()=>GYt(i)),a(" fixupEdgeLabelCoords",()=>aQt(i)),a(" undoCoordinateSystem",()=>zYt(i)),a(" translateGraph",()=>iQt(i)),a(" assignNodeIntersects",()=>sQt(i)),a(" reversePoints",()=>oQt(i)),a(" acyclic.undo",()=>IYt(i))}function UXt(i,a){Ar(i.nodes(),function(u){var d=i.node(u),p=a.node(u);d&&(d.x=p.x,d.y=p.y,a.children(u).length&&(d.width=p.width,d.height=p.height))}),Ar(i.edges(),function(u){var d=i.edge(u),p=a.edge(u);d.points=p.points,Object.prototype.hasOwnProperty.call(p,"x")&&(d.x=p.x,d.y=p.y)}),i.graph().width=a.graph().width,i.graph().height=a.graph().height}var VXt=["nodesep","edgesep","ranksep","marginx","marginy"],GXt={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},KXt=["acyclicer","ranker","rankdir","align"],WXt=["width","height"],YXt={width:0,height:0},XXt=["minlen","weight","width","height","labeloffset"],QXt={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},JXt=["labelpos"];function ZXt(i){var a=new R0({multigraph:!0,compound:!0}),u=Ome(i.graph());return a.setGraph(UX({},GXt,Ime(u,VXt),MR(u,KXt))),Ar(i.nodes(),function(d){var p=Ome(i.node(d));a.setNode(d,WD(Ime(p,WXt),YXt)),a.setParent(d,i.parent(d))}),Ar(i.edges(),function(d){var p=Ome(i.edge(d));a.setEdge(d,UX({},QXt,Ime(p,XXt),MR(p,JXt)))}),a}function eQt(i){var a=i.graph();a.ranksep/=2,Ar(i.edges(),function(u){var d=i.edge(u);d.minlen*=2,d.labelpos.toLowerCase()!=="c"&&(a.rankdir==="TB"||a.rankdir==="BT"?d.width+=d.labeloffset:d.height+=d.labeloffset)})}function tQt(i){Ar(i.edges(),function(a){var u=i.edge(a);if(u.width&&u.height){var d=i.node(a.v),p=i.node(a.w),v={rank:(p.rank-d.rank)/2+d.rank,e:a};YD(i,"edge-proxy",v,"_ep")}})}function nQt(i){var a=0;Ar(i.nodes(),function(u){var d=i.node(u);d.borderTop&&(d.minRank=i.node(d.borderTop).rank,d.maxRank=i.node(d.borderBottom).rank,a=GC(a,d.maxRank))}),i.graph().maxRank=a}function rQt(i){Ar(i.nodes(),function(a){var u=i.node(a);u.dummy==="edge-proxy"&&(i.edge(u.e).labelRank=u.rank,i.removeNode(a))})}function iQt(i){var a=Number.POSITIVE_INFINITY,u=0,d=Number.POSITIVE_INFINITY,p=0,v=i.graph(),b=v.marginx||0,y=v.marginy||0;function E(_){var A=_.x,P=_.y,R=_.width,B=_.height;a=Math.min(a,A-R/2),u=Math.max(u,A+R/2),d=Math.min(d,P-B/2),p=Math.max(p,P+B/2)}Ar(i.nodes(),function(_){E(i.node(_))}),Ar(i.edges(),function(_){var A=i.edge(_);Object.prototype.hasOwnProperty.call(A,"x")&&E(A)}),a-=b,d-=y,Ar(i.nodes(),function(_){var A=i.node(_);A.x-=a,A.y-=d}),Ar(i.edges(),function(_){var A=i.edge(_);Ar(A.points,function(P){P.x-=a,P.y-=d}),Object.prototype.hasOwnProperty.call(A,"x")&&(A.x-=a),Object.prototype.hasOwnProperty.call(A,"y")&&(A.y-=d)}),v.width=u-a+b,v.height=p-d+y}function sQt(i){Ar(i.edges(),function(a){var u=i.edge(a),d=i.node(a.v),p=i.node(a.w),v,b;u.points?(v=u.points[0],b=u.points[u.points.length-1]):(u.points=[],v=p,b=d),u.points.unshift(_Ue(d,v)),u.points.push(_Ue(p,b))})}function aQt(i){Ar(i.edges(),function(a){var u=i.edge(a);if(Object.prototype.hasOwnProperty.call(u,"x"))switch((u.labelpos==="l"||u.labelpos==="r")&&(u.width-=u.labeloffset),u.labelpos){case"l":u.x-=u.width/2+u.labeloffset;break;case"r":u.x+=u.width/2+u.labeloffset;break}})}function oQt(i){Ar(i.edges(),function(a){var u=i.edge(a);u.reversed&&u.points.reverse()})}function cQt(i){Ar(i.nodes(),function(a){if(i.children(a).length){var u=i.node(a),d=i.node(u.borderTop),p=i.node(u.borderBottom),v=i.node(sJ(u.borderLeft)),b=i.node(sJ(u.borderRight));u.width=Math.abs(b.x-v.x),u.height=Math.abs(p.y-d.y),u.x=v.x+u.width/2,u.y=d.y+u.height/2}}),Ar(i.nodes(),function(a){i.node(a).dummy==="border"&&i.removeNode(a)})}function uQt(i){Ar(i.edges(),function(a){if(a.v===a.w){var u=i.node(a.v);u.selfEdges||(u.selfEdges=[]),u.selfEdges.push({e:a,label:i.edge(a)}),i.removeEdge(a)}})}function lQt(i){var a=cJ(i);Ar(a,function(u){var d=0;Ar(u,function(p,v){var b=i.node(p);b.order=v+d,Ar(b.selfEdges,function(y){YD(i,"selfedge",{width:y.label.width,height:y.label.height,rank:b.rank,order:v+ ++d,e:y.e,label:y.label},"_se")}),delete b.selfEdges})})}function hQt(i){Ar(i.nodes(),function(a){var u=i.node(a);if(u.dummy==="selfedge"){var d=i.node(u.e.v),p=d.x+d.width/2,v=d.y,b=u.x-p,y=d.height/2;i.setEdge(u.e,u.label),i.removeNode(a),u.label.points=[{x:p+2*b/3,y:v-y},{x:p+5*b/6,y:v-y},{x:p+b,y:v},{x:p+5*b/6,y:v+y},{x:p+2*b/3,y:v+y}],u.label.x=u.x,u.label.y=u.y}})}function Ime(i,a){return aJ(MR(i,a),Number)}function Ome(i){var a={};return Ar(i,function(u,d){a[d.toLowerCase()]=u}),a}function YUe(i,a){return!!i.children(a).length}function XUe(i){return Nme(i.v)+":"+Nme(i.w)+":"+Nme(i.name)}var fQt=/:/g;function Nme(i){return i?String(i).replace(fQt,"\\:"):""}function t5(i,a){a&&i.attr("style",a)}function QUe(i,a,u){a&&i.attr("class",a).attr("class",u+" "+i.attr("class"))}function G3(i,a){var u=a.graph();if(Sje(u)){var d=u.transition;if(vD(d))return d(i)}return i}var Pme={normal:gQt,vee:pQt,undirected:bQt};function dQt(i){Pme=i}function gQt(i,a,u,d){var p=i.append("marker").attr("id",a).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),v=p.append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");t5(v,u[d+"Style"]),u[d+"Class"]&&v.attr("class",u[d+"Class"])}function pQt(i,a,u,d){var p=i.append("marker").attr("id",a).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),v=p.append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");t5(v,u[d+"Style"]),u[d+"Class"]&&v.attr("class",u[d+"Class"])}function bQt(i,a,u,d){var p=i.append("marker").attr("id",a).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),v=p.append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");t5(v,u[d+"Style"]),u[d+"Class"]&&v.attr("class",u[d+"Class"])}function Bme(i,a){var u=i.append("foreignObject").attr("width","100000"),d=u.append("xhtml:div");d.attr("xmlns","http://www.w3.org/1999/xhtml");var p=a.label;switch(typeof p){case"function":d.insert(p);break;case"object":d.insert(function(){return p});break;default:d.html(p)}t5(d,a.labelStyle),d.style("display","inline-block"),d.style("white-space","nowrap");var v=d.node().getBoundingClientRect();return u.attr("width",v.width).attr("height",v.height),u}function mQt(i,a){var u=i;return u.node().appendChild(a.label),t5(u,a.labelStyle),u}function vQt(i,a){for(var u=i.append("text"),d=wQt(a.label).split(` +`),p=0;p0}function n5(i,a,u){var d=i.x,p=i.y,v=[],b=Number.POSITIVE_INFINITY,y=Number.POSITIVE_INFINITY;a.forEach(function(j){b=Math.min(b,j.x),y=Math.min(y,j.y)});for(var E=d-i.width/2-b,_=p-i.height/2-y,A=0;A1&&v.sort(function(j,W){var ee=j.x-u.x,ie=j.y-u.y,oe=Math.sqrt(ee*ee+ie*ie),be=W.x-u.x,ge=W.y-u.y,ae=Math.sqrt(be*be+ge*ge);return oeMath.abs(p)*y?(v<0&&(y=-y),E=v===0?0:y*p/v,_=y):(p<0&&(b=-b),E=b,_=p===0?0:b*v/p),{x:u+E,y:d+_}}var Hme={rect:PQt,ellipse:BQt,circle:FQt,diamond:RQt};function NQt(i){Hme=i}function PQt(i,a,u){var d=i.insert("rect",":first-child").attr("rx",u.rx).attr("ry",u.ry).attr("x",-a.width/2).attr("y",-a.height/2).attr("width",a.width).attr("height",a.height);return u.intersect=function(p){return qme(u,p)},d}function BQt(i,a,u){var d=a.width/2,p=a.height/2,v=i.insert("ellipse",":first-child").attr("x",-a.width/2).attr("y",-a.height/2).attr("rx",d).attr("ry",p);return u.intersect=function(b){return eVe(u,d,p,b)},v}function FQt(i,a,u){var d=Math.max(a.width,a.height)/2,p=i.insert("circle",":first-child").attr("x",-a.width/2).attr("y",-a.height/2).attr("r",d);return u.intersect=function(v){return IQt(u,d,v)},p}function RQt(i,a,u){var d=a.width*Math.SQRT2/2,p=a.height*Math.SQRT2/2,v=[{x:0,y:-p},{x:-d,y:0},{x:0,y:p},{x:d,y:0}],b=i.insert("polygon",":first-child").attr("points",v.map(function(y){return y.x+","+y.y}).join(" "));return u.intersect=function(y){return n5(u,v,y)},b}function jQt(){var i=function(a,u){qQt(u);var d=PR(a,"output"),p=PR(d,"clusters"),v=PR(d,"edgePaths"),b=jme(PR(d,"edgeLabels"),u),y=zme(PR(d,"nodes"),u,Hme);XD(u),DQt(y,u),MQt(b,u),$me(v,u,Pme);var E=Rme(p,u);LQt(E,u),HQt(u)};return i.createNodes=function(a){return arguments.length?(AQt(a),i):zme},i.createClusters=function(a){return arguments.length?(yQt(a),i):Rme},i.createEdgeLabels=function(a){return arguments.length?(xQt(a),i):jme},i.createEdgePaths=function(a){return arguments.length?(kQt(a),i):$me},i.shapes=function(a){return arguments.length?(NQt(a),i):Hme},i.arrows=function(a){return arguments.length?(dQt(a),i):Pme},i}var $Qt={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},zQt={arrowhead:"normal",curve:Sp};function qQt(i){i.nodes().forEach(a=>{const u=i.node(a);!Object.prototype.hasOwnProperty.call(u,"label")&&!i.children(a).length&&(u.label=a),Object.prototype.hasOwnProperty.call(u,"paddingX")&&WD(u,{paddingLeft:u.paddingX,paddingRight:u.paddingX}),Object.prototype.hasOwnProperty.call(u,"paddingY")&&WD(u,{paddingTop:u.paddingY,paddingBottom:u.paddingY}),Object.prototype.hasOwnProperty.call(u,"padding")&&WD(u,{paddingLeft:u.padding,paddingRight:u.padding,paddingTop:u.padding,paddingBottom:u.padding}),WD(u,$Qt),["paddingLeft","paddingRight","paddingTop","paddingBottom"].forEach(d=>{u[d]=Number(u[d])}),Object.prototype.hasOwnProperty.call(u,"width")&&(u._prevWidth=u.width),Object.prototype.hasOwnProperty.call(u,"height")&&(u._prevHeight=u.height)}),i.edges().forEach(function(a){var u=i.edge(a);Object.prototype.hasOwnProperty.call(u,"label")||(u.label=""),WD(u,zQt)})}function HQt(i){i.nodes().forEach(a=>{var u=i.node(a);Object.prototype.hasOwnProperty.call(u,"_prevWidth")?u.width=u._prevWidth:delete u.width,Object.prototype.hasOwnProperty.call(u,"_prevHeight")?u.height=u._prevHeight:delete u.height,delete u._prevWidth,delete u._prevHeight})}function PR(i,a){var u=i.select("g."+a);return u.empty()&&(u=i.append("g").attr("class",a)),u}function nVe(i,a,u){const d=a.width,p=a.height,v=(d+p)*.9,b=[{x:v/2,y:0},{x:v,y:-v/2},{x:v/2,y:-v},{x:0,y:-v/2}],y=q7(i,v,v,b);return u.intersect=function(E){return n5(u,b,E)},y}function rVe(i,a,u){const p=a.height,v=p/4,b=a.width+2*v,y=[{x:v,y:0},{x:b-v,y:0},{x:b,y:-p/2},{x:b-v,y:-p},{x:v,y:-p},{x:0,y:-p/2}],E=q7(i,b,p,y);return u.intersect=function(_){return n5(u,y,_)},E}function iVe(i,a,u){const d=a.width,p=a.height,v=[{x:-p/2,y:0},{x:d,y:0},{x:d,y:-p},{x:-p/2,y:-p},{x:0,y:-p/2}],b=q7(i,d,p,v);return u.intersect=function(y){return n5(u,v,y)},b}function sVe(i,a,u){const d=a.width,p=a.height,v=[{x:-2*p/6,y:0},{x:d-p/6,y:0},{x:d+2*p/6,y:-p},{x:p/6,y:-p}],b=q7(i,d,p,v);return u.intersect=function(y){return n5(u,v,y)},b}function aVe(i,a,u){const d=a.width,p=a.height,v=[{x:2*p/6,y:0},{x:d+p/6,y:0},{x:d-2*p/6,y:-p},{x:-p/6,y:-p}],b=q7(i,d,p,v);return u.intersect=function(y){return n5(u,v,y)},b}function oVe(i,a,u){const d=a.width,p=a.height,v=[{x:-2*p/6,y:0},{x:d+2*p/6,y:0},{x:d-p/6,y:-p},{x:p/6,y:-p}],b=q7(i,d,p,v);return u.intersect=function(y){return n5(u,v,y)},b}function cVe(i,a,u){const d=a.width,p=a.height,v=[{x:p/6,y:0},{x:d-p/6,y:0},{x:d+2*p/6,y:-p},{x:-2*p/6,y:-p}],b=q7(i,d,p,v);return u.intersect=function(y){return n5(u,v,y)},b}function uVe(i,a,u){const d=a.width,p=a.height,v=[{x:0,y:0},{x:d+p/2,y:0},{x:d,y:-p/2},{x:d+p/2,y:-p},{x:0,y:-p}],b=q7(i,d,p,v);return u.intersect=function(y){return n5(u,v,y)},b}function lVe(i,a,u){const d=a.height,p=a.width+d/4,v=i.insert("rect",":first-child").attr("rx",d/2).attr("ry",d/2).attr("x",-p/2).attr("y",-d/2).attr("width",p).attr("height",d);return u.intersect=function(b){return qme(u,b)},v}function hVe(i,a,u){const d=a.width,p=a.height,v=[{x:0,y:0},{x:d,y:0},{x:d,y:-p},{x:0,y:-p},{x:0,y:0},{x:-8,y:0},{x:d+8,y:0},{x:d+8,y:-p},{x:-8,y:-p},{x:-8,y:0}],b=q7(i,d,p,v);return u.intersect=function(y){return n5(u,v,y)},b}function fVe(i,a,u){const d=a.width,p=d/2,v=p/(2.5+d/50),b=a.height+v,y="M 0,"+v+" a "+p+","+v+" 0,0,0 "+d+" 0 a "+p+","+v+" 0,0,0 "+-d+" 0 l 0,"+b+" a "+p+","+v+" 0,0,0 "+d+" 0 l 0,"+-b,E=i.attr("label-offset-y",v).insert("path",":first-child").attr("d",y).attr("transform","translate("+-d/2+","+-(b/2+v)+")");return u.intersect=function(_){const A=qme(u,_),P=A.x-u.x;if(p!=0&&(Math.abs(P)u.height/2-v)){let R=v*v*(1-P*P/(p*p));R!=0&&(R=Math.sqrt(R)),R=v-R,_.y-u.y>0&&(R=-R),A.y+=R}return A},E}function UQt(i){i.shapes().question=nVe,i.shapes().hexagon=rVe,i.shapes().stadium=lVe,i.shapes().subroutine=hVe,i.shapes().cylinder=fVe,i.shapes().rect_left_inv_arrow=iVe,i.shapes().lean_right=sVe,i.shapes().lean_left=aVe,i.shapes().trapezoid=oVe,i.shapes().inv_trapezoid=cVe,i.shapes().rect_right_inv_arrow=uVe}function VQt(i){i({question:nVe}),i({hexagon:rVe}),i({stadium:lVe}),i({subroutine:hVe}),i({cylinder:fVe}),i({rect_left_inv_arrow:iVe}),i({lean_right:sVe}),i({lean_left:aVe}),i({trapezoid:oVe}),i({inv_trapezoid:cVe}),i({rect_right_inv_arrow:uVe})}function q7(i,a,u,d){return i.insert("polygon",":first-child").attr("points",d.map(function(p){return p.x+","+p.y}).join(" ")).attr("transform","translate("+-a/2+","+u/2+")")}const GQt={addToRender:UQt,addToRenderV2:VQt},dVe={},KQt=function(i){const a=Object.keys(i);for(const u of a)dVe[u]=i[u]},gVe=async function(i,a,u,d,p,v){const b=d?d.select(`[id="${u}"]`):Dr(`[id="${u}"]`),y=p||document,E=Object.keys(i);for(const _ of E){const A=i[_];let P="default";A.classes.length>0&&(P=A.classes.join(" "));const R=gm(A.styles);let B=A.text!==void 0?A.text:A.id,j;if(h1(qt().flowchart.htmlLabels)){const ie={label:await SC(B.replace(/fa[blrs]?:fa-[\w-]+/g,oe=>``),qt())};j=Bme(b,ie).node(),j.parentNode.removeChild(j)}else{const ie=y.createElementNS("http://www.w3.org/2000/svg","text");ie.setAttribute("style",R.labelStyle.replace("color:","fill:"));const oe=B.split(oi.lineBreakRegex);for(const be of oe){const ge=y.createElementNS("http://www.w3.org/2000/svg","tspan");ge.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),ge.setAttribute("dy","1em"),ge.setAttribute("x","1"),ge.textContent=be,ie.appendChild(ge)}j=ie}let W=0,ee="";switch(A.type){case"round":W=5,ee="rect";break;case"square":ee="rect";break;case"diamond":ee="question";break;case"hexagon":ee="hexagon";break;case"odd":ee="rect_left_inv_arrow";break;case"lean_right":ee="lean_right";break;case"lean_left":ee="lean_left";break;case"trapezoid":ee="trapezoid";break;case"inv_trapezoid":ee="inv_trapezoid";break;case"odd_right":ee="rect_left_inv_arrow";break;case"circle":ee="circle";break;case"ellipse":ee="ellipse";break;case"stadium":ee="stadium";break;case"subroutine":ee="subroutine";break;case"cylinder":ee="cylinder";break;case"group":ee="rect";break;default:ee="rect"}Xe.warn("Adding node",A.id,A.domId),a.setNode(v.db.lookUpDomId(A.id),{labelType:"svg",labelStyle:R.labelStyle,shape:ee,label:j,rx:W,ry:W,class:P,style:R.style,id:v.db.lookUpDomId(A.id)})}},pVe=async function(i,a,u){let d=0,p,v;if(i.defaultStyle!==void 0){const b=gm(i.defaultStyle);p=b.style,v=b.labelStyle}for(const b of i){d++;const y="L-"+b.start+"-"+b.end,E="LS-"+b.start,_="LE-"+b.end,A={};b.type==="arrow_open"?A.arrowhead="none":A.arrowhead="normal";let P="",R="";if(b.style!==void 0){const B=gm(b.style);P=B.style,R=B.labelStyle}else switch(b.stroke){case"normal":P="fill:none",p!==void 0&&(P=p),v!==void 0&&(R=v);break;case"dotted":P="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":P=" stroke-width: 3.5px;fill:none";break}A.style=P,A.labelStyle=R,b.interpolate!==void 0?A.curve=qv(b.interpolate,Sp):i.defaultInterpolate!==void 0?A.curve=qv(i.defaultInterpolate,Sp):A.curve=qv(dVe.curve,Sp),b.text===void 0?b.style!==void 0&&(A.arrowheadStyle="fill: #333"):(A.arrowheadStyle="fill: #333",A.labelpos="c",h1(qt().flowchart.htmlLabels)?(A.labelType="html",A.label=`${await SC(b.text.replace(/fa[blrs]?:fa-[\w-]+/g,B=>``),qt())}`):(A.labelType="text",A.label=b.text.replace(oi.lineBreakRegex,` +`),b.style===void 0&&(A.style=A.style||"stroke: #333; stroke-width: 1.5px;fill:none"),A.labelStyle=A.labelStyle.replace("color:","fill:"))),A.id=y,A.class=E+" "+_,A.minlen=b.length||1,a.setEdge(u.db.lookUpDomId(b.start),u.db.lookUpDomId(b.end),A,d)}},WQt={setConf:KQt,addVertices:gVe,addEdges:pVe,getClasses:function(i,a){return Xe.info("Extracting classes"),a.db.getClasses()},draw:async function(i,a,u,d){Xe.info("Drawing flowchart");const{securityLevel:p,flowchart:v}=qt();let b;p==="sandbox"&&(b=Dr("#i"+a));const y=Dr(p==="sandbox"?b.nodes()[0].contentDocument.body:"body"),E=p==="sandbox"?b.nodes()[0].contentDocument:document;let _=d.db.getDirection();_===void 0&&(_="TD");const A=v.nodeSpacing||50,P=v.rankSpacing||50,R=new R0({multigraph:!0,compound:!0}).setGraph({rankdir:_,nodesep:A,ranksep:P,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let B;const j=d.db.getSubGraphs();for(let ne=j.length-1;ne>=0;ne--)B=j[ne],d.db.addVertex(B.id,B.title,"group",void 0,B.classes);const W=d.db.getVertices();Xe.warn("Get vertices",W);const ee=d.db.getEdges();let ie=0;for(ie=j.length-1;ie>=0;ie--){B=j[ie],VBe("cluster").append("text");for(let ne=0;ne{a.forEach(p=>{JQt[p](i,u,d)})},JQt={extension:(i,a,u)=>{Xe.trace("Making markers for ",u),i.append("defs").append("marker").attr("id",u+"_"+a+"-extensionStart").attr("class","marker extension "+a).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"),i.append("defs").append("marker").attr("id",u+"_"+a+"-extensionEnd").attr("class","marker extension "+a).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")},composition:(i,a,u)=>{i.append("defs").append("marker").attr("id",u+"_"+a+"-compositionStart").attr("class","marker composition "+a).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"),i.append("defs").append("marker").attr("id",u+"_"+a+"-compositionEnd").attr("class","marker composition "+a).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:(i,a,u)=>{i.append("defs").append("marker").attr("id",u+"_"+a+"-aggregationStart").attr("class","marker aggregation "+a).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"),i.append("defs").append("marker").attr("id",u+"_"+a+"-aggregationEnd").attr("class","marker aggregation "+a).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")},dependency:(i,a,u)=>{i.append("defs").append("marker").attr("id",u+"_"+a+"-dependencyStart").attr("class","marker dependency "+a).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"),i.append("defs").append("marker").attr("id",u+"_"+a+"-dependencyEnd").attr("class","marker dependency "+a).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")},lollipop:(i,a,u)=>{i.append("defs").append("marker").attr("id",u+"_"+a+"-lollipopStart").attr("class","marker lollipop "+a).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),i.append("defs").append("marker").attr("id",u+"_"+a+"-lollipopEnd").attr("class","marker lollipop "+a).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)},point:(i,a,u)=>{i.append("marker").attr("id",u+"_"+a+"-pointEnd").attr("class","marker "+a).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"),i.append("marker").attr("id",u+"_"+a+"-pointStart").attr("class","marker "+a).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")},circle:(i,a,u)=>{i.append("marker").attr("id",u+"_"+a+"-circleEnd").attr("class","marker "+a).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"),i.append("marker").attr("id",u+"_"+a+"-circleStart").attr("class","marker "+a).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")},cross:(i,a,u)=>{i.append("marker").attr("id",u+"_"+a+"-crossEnd").attr("class","marker cross "+a).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"),i.append("marker").attr("id",u+"_"+a+"-crossStart").attr("class","marker cross "+a).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")},barb:(i,a,u)=>{i.append("defs").append("marker").attr("id",u+"_"+a+"-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")}},Ume=QQt;function ZQt(i,a){a&&i.attr("style",a)}function eJt(i,a){const u=Dr(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),d=u.append("xhtml:div"),p=i.label,v=i.isNode?"nodeLabel":"edgeLabel";return d.html(bh('"+p+"",a)),ZQt(d,i.labelStyle),d.style("display","inline-block"),d.style("white-space","nowrap"),d.attr("xmlns","http://www.w3.org/1999/xhtml"),u.node()}const Y2=(i,a,u,d)=>{let p=i||"";typeof p=="object"&&(p=p[0]);const v=qt();if(h1(v.flowchart.htmlLabels)){p=p.replace(/\\n|\n/g,"
"),Xe.debug("vertexText"+p);const b={isNode:d,label:uR(p).replace(/fa[blrs]?:fa-[\w-]+/g,E=>``),labelStyle:a.replace("fill:","color:")};return eJt(b,v)}else{const b=document.createElementNS("http://www.w3.org/2000/svg","text");b.setAttribute("style",a.replace("color:","fill:"));let y=[];typeof p=="string"?y=p.split(/\\n|\n|/gi):Array.isArray(p)?y=p:y=[];for(const E of y){const _=document.createElementNS("http://www.w3.org/2000/svg","tspan");_.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),_.setAttribute("dy","1em"),_.setAttribute("x","0"),u?_.setAttribute("class","title-row"):_.setAttribute("class","row"),_.textContent=E.trim(),b.appendChild(_)}return b}},tJt={};function nJt(i,a){const u=a||tJt,d=typeof u.includeImageAlt=="boolean"?u.includeImageAlt:!0,p=typeof u.includeHtml=="boolean"?u.includeHtml:!0;return bVe(i,d,p)}function bVe(i,a,u){if(rJt(i)){if("value"in i)return i.type==="html"&&!u?"":i.value;if(a&&"alt"in i&&i.alt)return i.alt;if("children"in i)return mVe(i.children,a,u)}return Array.isArray(i)?mVe(i,a,u):""}function mVe(i,a,u){const d=[];let p=-1;for(;++pp?0:p+a:a=a>p?p:a,u=u>0?u:0,d.length<1e4)b=Array.from(d),b.unshift(a,u),i.splice(...b);else for(u&&i.splice(a,u);v0?(r5(i,i.length,0,a),i):a}const vVe={}.hasOwnProperty;function iJt(i){const a={};let u=-1;for(;++ub))return;const se=a.events.length;let de=se,X,pe;for(;de--;)if(a.events[de][0]==="exit"&&a.events[de][1].type==="chunkFlow"){if(X){pe=a.events[de][1].end;break}X=!0}for(ie(d),ne=se;nebe;){const ae=u[ge];a.containerState=ae[1],ae[0].exit.call(a,i)}u.length=be}function oe(){p.write([null]),v=void 0,p=void 0,a.containerState._closeFlow=void 0}}function mJt(i,a,u){return Hl(i,i.attempt(this.parser.constructs.document,a,u),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function yVe(i){if(i===null||X2(i)||fJt(i))return 1;if(hJt(i))return 2}function Kme(i,a,u){const d=[];let p=-1;for(;++p1&&i[u][1].end.offset-i[u][1].start.offset>1?2:1;const P=Object.assign({},i[d][1].end),R=Object.assign({},i[u][1].start);xVe(P,-E),xVe(R,E),b={type:E>1?"strongSequence":"emphasisSequence",start:P,end:Object.assign({},i[d][1].end)},y={type:E>1?"strongSequence":"emphasisSequence",start:Object.assign({},i[u][1].start),end:R},v={type:E>1?"strongText":"emphasisText",start:Object.assign({},i[d][1].end),end:Object.assign({},i[u][1].start)},p={type:E>1?"strong":"emphasis",start:Object.assign({},b.start),end:Object.assign({},y.end)},i[d][1].end=Object.assign({},b.start),i[u][1].start=Object.assign({},y.end),_=[],i[d][1].end.offset-i[d][1].start.offset&&(_=Wv(_,[["enter",i[d][1],a],["exit",i[d][1],a]])),_=Wv(_,[["enter",p,a],["enter",b,a],["exit",b,a],["enter",v,a]]),_=Wv(_,Kme(a.parser.constructs.insideSpan.null,i.slice(d+1,u),a)),_=Wv(_,[["exit",v,a],["enter",y,a],["exit",y,a],["exit",p,a]]),i[u][1].end.offset-i[u][1].start.offset?(A=2,_=Wv(_,[["enter",i[u][1],a],["exit",i[u][1],a]])):A=0,r5(i,d-1,u-d+3,_),u=d+_.length-A-2;break}}for(u=-1;++u0&&Iu(ne)?Hl(i,oe,"linePrefix",v+1)(ne):oe(ne)}function oe(ne){return ne===null||ro(ne)?i.check(SVe,W,ge)(ne):(i.enter("codeFlowValue"),be(ne))}function be(ne){return ne===null||ro(ne)?(i.exit("codeFlowValue"),oe(ne)):(i.consume(ne),be)}function ge(ne){return i.exit("codeFenced"),a(ne)}function ae(ne,se,de){let X=0;return pe;function pe(Pe){return ne.enter("lineEnding"),ne.consume(Pe),ne.exit("lineEnding"),G}function G(Pe){return ne.enter("codeFencedFence"),Iu(Pe)?Hl(ne,xe,"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(Pe):xe(Pe)}function xe(Pe){return Pe===y?(ne.enter("codeFencedFenceSequence"),U(Pe)):de(Pe)}function U(Pe){return Pe===y?(X++,ne.consume(Pe),U):X>=b?(ne.exit("codeFencedFenceSequence"),Iu(Pe)?Hl(ne,Be,"whitespace")(Pe):Be(Pe)):de(Pe)}function Be(Pe){return Pe===null||ro(Pe)?(ne.exit("codeFencedFence"),se(Pe)):de(Pe)}}}function LJt(i,a,u){const d=this;return p;function p(b){return b===null?u(b):(i.enter("lineEnding"),i.consume(b),i.exit("lineEnding"),v)}function v(b){return d.parser.lazy[d.now().line]?u(b):a(b)}}const Xme={name:"codeIndented",tokenize:DJt},MJt={tokenize:IJt,partial:!0};function DJt(i,a,u){const d=this;return p;function p(_){return i.enter("codeIndented"),Hl(i,v,"linePrefix",4+1)(_)}function v(_){const A=d.events[d.events.length-1];return A&&A[1].type==="linePrefix"&&A[2].sliceSerialize(A[1],!0).length>=4?b(_):u(_)}function b(_){return _===null?E(_):ro(_)?i.attempt(MJt,b,E)(_):(i.enter("codeFlowValue"),y(_))}function y(_){return _===null||ro(_)?(i.exit("codeFlowValue"),b(_)):(i.consume(_),y)}function E(_){return i.exit("codeIndented"),a(_)}}function IJt(i,a,u){const d=this;return p;function p(b){return d.parser.lazy[d.now().line]?u(b):ro(b)?(i.enter("lineEnding"),i.consume(b),i.exit("lineEnding"),p):Hl(i,v,"linePrefix",4+1)(b)}function v(b){const y=d.events[d.events.length-1];return y&&y[1].type==="linePrefix"&&y[2].sliceSerialize(y[1],!0).length>=4?a(b):ro(b)?p(b):u(b)}}const OJt={name:"codeText",tokenize:BJt,resolve:NJt,previous:PJt};function NJt(i){let a=i.length-4,u=3,d,p;if((i[u][1].type==="lineEnding"||i[u][1].type==="space")&&(i[a][1].type==="lineEnding"||i[a][1].type==="space")){for(d=u;++d=4?a(b):i.interrupt(d.parser.constructs.flow,u,a)(b)}}function LVe(i,a,u,d,p,v,b,y,E){const _=E||Number.POSITIVE_INFINITY;let A=0;return P;function P(ie){return ie===60?(i.enter(d),i.enter(p),i.enter(v),i.consume(ie),i.exit(v),R):ie===null||ie===32||ie===41||Vme(ie)?u(ie):(i.enter(d),i.enter(b),i.enter(y),i.enter("chunkString",{contentType:"string"}),W(ie))}function R(ie){return ie===62?(i.enter(v),i.consume(ie),i.exit(v),i.exit(p),i.exit(d),a):(i.enter(y),i.enter("chunkString",{contentType:"string"}),B(ie))}function B(ie){return ie===62?(i.exit("chunkString"),i.exit(y),R(ie)):ie===null||ie===60||ro(ie)?u(ie):(i.consume(ie),ie===92?j:B)}function j(ie){return ie===60||ie===62||ie===92?(i.consume(ie),B):B(ie)}function W(ie){return!A&&(ie===null||ie===41||X2(ie))?(i.exit("chunkString"),i.exit(y),i.exit(b),i.exit(d),a(ie)):A<_&&ie===40?(i.consume(ie),A++,W):ie===41?(i.consume(ie),A--,W):ie===null||ie===32||ie===40||Vme(ie)?u(ie):(i.consume(ie),ie===92?ee:W)}function ee(ie){return ie===40||ie===41||ie===92?(i.consume(ie),W):W(ie)}}function MVe(i,a,u,d,p,v){const b=this;let y=0,E;return _;function _(B){return i.enter(d),i.enter(p),i.consume(B),i.exit(p),i.enter(v),A}function A(B){return y>999||B===null||B===91||B===93&&!E||B===94&&!y&&"_hiddenFootnoteSupport"in b.parser.constructs?u(B):B===93?(i.exit(v),i.enter(p),i.consume(B),i.exit(p),i.exit(d),a):ro(B)?(i.enter("lineEnding"),i.consume(B),i.exit("lineEnding"),A):(i.enter("chunkString",{contentType:"string"}),P(B))}function P(B){return B===null||B===91||B===93||ro(B)||y++>999?(i.exit("chunkString"),A(B)):(i.consume(B),E||(E=!Iu(B)),B===92?R:P)}function R(B){return B===91||B===92||B===93?(i.consume(B),y++,P):P(B)}}function DVe(i,a,u,d,p,v){let b;return y;function y(R){return R===34||R===39||R===40?(i.enter(d),i.enter(p),i.consume(R),i.exit(p),b=R===40?41:R,E):u(R)}function E(R){return R===b?(i.enter(p),i.consume(R),i.exit(p),i.exit(d),a):(i.enter(v),_(R))}function _(R){return R===b?(i.exit(v),E(b)):R===null?u(R):ro(R)?(i.enter("lineEnding"),i.consume(R),i.exit("lineEnding"),Hl(i,_,"linePrefix")):(i.enter("chunkString",{contentType:"string"}),A(R))}function A(R){return R===b||R===null||ro(R)?(i.exit("chunkString"),_(R)):(i.consume(R),R===92?P:A)}function P(R){return R===b||R===92?(i.consume(R),A):A(R)}}function BR(i,a){let u;return d;function d(p){return ro(p)?(i.enter("lineEnding"),i.consume(p),i.exit("lineEnding"),u=!0,d):Iu(p)?Hl(i,d,u?"linePrefix":"lineSuffix")(p):a(p)}}function QD(i){return i.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const HJt={name:"definition",tokenize:VJt},UJt={tokenize:GJt,partial:!0};function VJt(i,a,u){const d=this;let p;return v;function v(B){return i.enter("definition"),b(B)}function b(B){return MVe.call(d,i,y,u,"definitionLabel","definitionLabelMarker","definitionLabelString")(B)}function y(B){return p=QD(d.sliceSerialize(d.events[d.events.length-1][1]).slice(1,-1)),B===58?(i.enter("definitionMarker"),i.consume(B),i.exit("definitionMarker"),E):u(B)}function E(B){return X2(B)?BR(i,_)(B):_(B)}function _(B){return LVe(i,A,u,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(B)}function A(B){return i.attempt(UJt,P,P)(B)}function P(B){return Iu(B)?Hl(i,R,"whitespace")(B):R(B)}function R(B){return B===null||ro(B)?(i.exit("definition"),d.parser.defined.push(p),a(B)):u(B)}}function GJt(i,a,u){return d;function d(y){return X2(y)?BR(i,p)(y):u(y)}function p(y){return DVe(i,v,u,"definitionTitle","definitionTitleMarker","definitionTitleString")(y)}function v(y){return Iu(y)?Hl(i,b,"whitespace")(y):b(y)}function b(y){return y===null||ro(y)?a(y):u(y)}}const KJt={name:"hardBreakEscape",tokenize:WJt};function WJt(i,a,u){return d;function d(v){return i.enter("hardBreakEscape"),i.consume(v),p}function p(v){return ro(v)?(i.exit("hardBreakEscape"),a(v)):u(v)}}const YJt={name:"headingAtx",tokenize:QJt,resolve:XJt};function XJt(i,a){let u=i.length-2,d=3,p,v;return i[d][1].type==="whitespace"&&(d+=2),u-2>d&&i[u][1].type==="whitespace"&&(u-=2),i[u][1].type==="atxHeadingSequence"&&(d===u-1||u-4>d&&i[u-2][1].type==="whitespace")&&(u-=d+1===u?2:4),u>d&&(p={type:"atxHeadingText",start:i[d][1].start,end:i[u][1].end},v={type:"chunkText",start:i[d][1].start,end:i[u][1].end,contentType:"text"},r5(i,d,u-d+1,[["enter",p,a],["enter",v,a],["exit",v,a],["exit",p,a]])),i}function QJt(i,a,u){let d=0;return p;function p(A){return i.enter("atxHeading"),v(A)}function v(A){return i.enter("atxHeadingSequence"),b(A)}function b(A){return A===35&&d++<6?(i.consume(A),b):A===null||X2(A)?(i.exit("atxHeadingSequence"),y(A)):u(A)}function y(A){return A===35?(i.enter("atxHeadingSequence"),E(A)):A===null||ro(A)?(i.exit("atxHeading"),a(A)):Iu(A)?Hl(i,y,"whitespace")(A):(i.enter("atxHeadingText"),_(A))}function E(A){return A===35?(i.consume(A),E):(i.exit("atxHeadingSequence"),y(A))}function _(A){return A===null||A===35||X2(A)?(i.exit("atxHeadingText"),y(A)):(i.consume(A),_)}}const JJt=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],IVe=["pre","script","style","textarea"],ZJt={name:"htmlFlow",tokenize:rZt,resolveTo:nZt,concrete:!0},eZt={tokenize:sZt,partial:!0},tZt={tokenize:iZt,partial:!0};function nZt(i){let a=i.length;for(;a--&&!(i[a][0]==="enter"&&i[a][1].type==="htmlFlow"););return a>1&&i[a-2][1].type==="linePrefix"&&(i[a][1].start=i[a-2][1].start,i[a+1][1].start=i[a-2][1].start,i.splice(a-2,2)),i}function rZt(i,a,u){const d=this;let p,v,b,y,E;return _;function _(Ne){return A(Ne)}function A(Ne){return i.enter("htmlFlow"),i.enter("htmlFlowData"),i.consume(Ne),P}function P(Ne){return Ne===33?(i.consume(Ne),R):Ne===47?(i.consume(Ne),v=!0,W):Ne===63?(i.consume(Ne),p=3,d.interrupt?a:ke):i5(Ne)?(i.consume(Ne),b=String.fromCharCode(Ne),ee):u(Ne)}function R(Ne){return Ne===45?(i.consume(Ne),p=2,B):Ne===91?(i.consume(Ne),p=5,y=0,j):i5(Ne)?(i.consume(Ne),p=4,d.interrupt?a:ke):u(Ne)}function B(Ne){return Ne===45?(i.consume(Ne),d.interrupt?a:ke):u(Ne)}function j(Ne){const pn="CDATA[";return Ne===pn.charCodeAt(y++)?(i.consume(Ne),y===pn.length?d.interrupt?a:xe:j):u(Ne)}function W(Ne){return i5(Ne)?(i.consume(Ne),b=String.fromCharCode(Ne),ee):u(Ne)}function ee(Ne){if(Ne===null||Ne===47||Ne===62||X2(Ne)){const pn=Ne===47,Tt=b.toLowerCase();return!pn&&!v&&IVe.includes(Tt)?(p=1,d.interrupt?a(Ne):xe(Ne)):JJt.includes(b.toLowerCase())?(p=6,pn?(i.consume(Ne),ie):d.interrupt?a(Ne):xe(Ne)):(p=7,d.interrupt&&!d.parser.lazy[d.now().line]?u(Ne):v?oe(Ne):be(Ne))}return Ne===45||K3(Ne)?(i.consume(Ne),b+=String.fromCharCode(Ne),ee):u(Ne)}function ie(Ne){return Ne===62?(i.consume(Ne),d.interrupt?a:xe):u(Ne)}function oe(Ne){return Iu(Ne)?(i.consume(Ne),oe):pe(Ne)}function be(Ne){return Ne===47?(i.consume(Ne),pe):Ne===58||Ne===95||i5(Ne)?(i.consume(Ne),ge):Iu(Ne)?(i.consume(Ne),be):pe(Ne)}function ge(Ne){return Ne===45||Ne===46||Ne===58||Ne===95||K3(Ne)?(i.consume(Ne),ge):ae(Ne)}function ae(Ne){return Ne===61?(i.consume(Ne),ne):Iu(Ne)?(i.consume(Ne),ae):be(Ne)}function ne(Ne){return Ne===null||Ne===60||Ne===61||Ne===62||Ne===96?u(Ne):Ne===34||Ne===39?(i.consume(Ne),E=Ne,se):Iu(Ne)?(i.consume(Ne),ne):de(Ne)}function se(Ne){return Ne===E?(i.consume(Ne),E=null,X):Ne===null||ro(Ne)?u(Ne):(i.consume(Ne),se)}function de(Ne){return Ne===null||Ne===34||Ne===39||Ne===47||Ne===60||Ne===61||Ne===62||Ne===96||X2(Ne)?ae(Ne):(i.consume(Ne),de)}function X(Ne){return Ne===47||Ne===62||Iu(Ne)?be(Ne):u(Ne)}function pe(Ne){return Ne===62?(i.consume(Ne),G):u(Ne)}function G(Ne){return Ne===null||ro(Ne)?xe(Ne):Iu(Ne)?(i.consume(Ne),G):u(Ne)}function xe(Ne){return Ne===45&&p===2?(i.consume(Ne),je):Ne===60&&p===1?(i.consume(Ne),Ie):Ne===62&&p===4?(i.consume(Ne),Ke):Ne===63&&p===3?(i.consume(Ne),ke):Ne===93&&p===5?(i.consume(Ne),Ce):ro(Ne)&&(p===6||p===7)?(i.exit("htmlFlowData"),i.check(eZt,zt,U)(Ne)):Ne===null||ro(Ne)?(i.exit("htmlFlowData"),U(Ne)):(i.consume(Ne),xe)}function U(Ne){return i.check(tZt,Be,zt)(Ne)}function Be(Ne){return i.enter("lineEnding"),i.consume(Ne),i.exit("lineEnding"),Pe}function Pe(Ne){return Ne===null||ro(Ne)?U(Ne):(i.enter("htmlFlowData"),xe(Ne))}function je(Ne){return Ne===45?(i.consume(Ne),ke):xe(Ne)}function Ie(Ne){return Ne===47?(i.consume(Ne),b="",Se):xe(Ne)}function Se(Ne){if(Ne===62){const pn=b.toLowerCase();return IVe.includes(pn)?(i.consume(Ne),Ke):xe(Ne)}return i5(Ne)&&b.length<8?(i.consume(Ne),b+=String.fromCharCode(Ne),Se):xe(Ne)}function Ce(Ne){return Ne===93?(i.consume(Ne),ke):xe(Ne)}function ke(Ne){return Ne===62?(i.consume(Ne),Ke):Ne===45&&p===2?(i.consume(Ne),ke):xe(Ne)}function Ke(Ne){return Ne===null||ro(Ne)?(i.exit("htmlFlowData"),zt(Ne)):(i.consume(Ne),Ke)}function zt(Ne){return i.exit("htmlFlow"),a(Ne)}}function iZt(i,a,u){const d=this;return p;function p(b){return ro(b)?(i.enter("lineEnding"),i.consume(b),i.exit("lineEnding"),v):u(b)}function v(b){return d.parser.lazy[d.now().line]?u(b):a(b)}}function sZt(i,a,u){return d;function d(p){return i.enter("lineEnding"),i.consume(p),i.exit("lineEnding"),i.attempt(uJ,a,u)}}const aZt={name:"htmlText",tokenize:oZt};function oZt(i,a,u){const d=this;let p,v,b;return y;function y(ke){return i.enter("htmlText"),i.enter("htmlTextData"),i.consume(ke),E}function E(ke){return ke===33?(i.consume(ke),_):ke===47?(i.consume(ke),ae):ke===63?(i.consume(ke),be):i5(ke)?(i.consume(ke),de):u(ke)}function _(ke){return ke===45?(i.consume(ke),A):ke===91?(i.consume(ke),v=0,j):i5(ke)?(i.consume(ke),oe):u(ke)}function A(ke){return ke===45?(i.consume(ke),B):u(ke)}function P(ke){return ke===null?u(ke):ke===45?(i.consume(ke),R):ro(ke)?(b=P,Ie(ke)):(i.consume(ke),P)}function R(ke){return ke===45?(i.consume(ke),B):P(ke)}function B(ke){return ke===62?je(ke):ke===45?R(ke):P(ke)}function j(ke){const Ke="CDATA[";return ke===Ke.charCodeAt(v++)?(i.consume(ke),v===Ke.length?W:j):u(ke)}function W(ke){return ke===null?u(ke):ke===93?(i.consume(ke),ee):ro(ke)?(b=W,Ie(ke)):(i.consume(ke),W)}function ee(ke){return ke===93?(i.consume(ke),ie):W(ke)}function ie(ke){return ke===62?je(ke):ke===93?(i.consume(ke),ie):W(ke)}function oe(ke){return ke===null||ke===62?je(ke):ro(ke)?(b=oe,Ie(ke)):(i.consume(ke),oe)}function be(ke){return ke===null?u(ke):ke===63?(i.consume(ke),ge):ro(ke)?(b=be,Ie(ke)):(i.consume(ke),be)}function ge(ke){return ke===62?je(ke):be(ke)}function ae(ke){return i5(ke)?(i.consume(ke),ne):u(ke)}function ne(ke){return ke===45||K3(ke)?(i.consume(ke),ne):se(ke)}function se(ke){return ro(ke)?(b=se,Ie(ke)):Iu(ke)?(i.consume(ke),se):je(ke)}function de(ke){return ke===45||K3(ke)?(i.consume(ke),de):ke===47||ke===62||X2(ke)?X(ke):u(ke)}function X(ke){return ke===47?(i.consume(ke),je):ke===58||ke===95||i5(ke)?(i.consume(ke),pe):ro(ke)?(b=X,Ie(ke)):Iu(ke)?(i.consume(ke),X):je(ke)}function pe(ke){return ke===45||ke===46||ke===58||ke===95||K3(ke)?(i.consume(ke),pe):G(ke)}function G(ke){return ke===61?(i.consume(ke),xe):ro(ke)?(b=G,Ie(ke)):Iu(ke)?(i.consume(ke),G):X(ke)}function xe(ke){return ke===null||ke===60||ke===61||ke===62||ke===96?u(ke):ke===34||ke===39?(i.consume(ke),p=ke,U):ro(ke)?(b=xe,Ie(ke)):Iu(ke)?(i.consume(ke),xe):(i.consume(ke),Be)}function U(ke){return ke===p?(i.consume(ke),p=void 0,Pe):ke===null?u(ke):ro(ke)?(b=U,Ie(ke)):(i.consume(ke),U)}function Be(ke){return ke===null||ke===34||ke===39||ke===60||ke===61||ke===96?u(ke):ke===47||ke===62||X2(ke)?X(ke):(i.consume(ke),Be)}function Pe(ke){return ke===47||ke===62||X2(ke)?X(ke):u(ke)}function je(ke){return ke===62?(i.consume(ke),i.exit("htmlTextData"),i.exit("htmlText"),a):u(ke)}function Ie(ke){return i.exit("htmlTextData"),i.enter("lineEnding"),i.consume(ke),i.exit("lineEnding"),Se}function Se(ke){return Iu(ke)?Hl(i,Ce,"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(ke):Ce(ke)}function Ce(ke){return i.enter("htmlTextData"),b(ke)}}const Qme={name:"labelEnd",tokenize:dZt,resolveTo:fZt,resolveAll:hZt},cZt={tokenize:gZt},uZt={tokenize:pZt},lZt={tokenize:bZt};function hZt(i){let a=-1;for(;++a=3&&(_===null||ro(_))?(i.exit("thematicBreak"),a(_)):u(_)}function E(_){return _===p?(i.consume(_),d++,E):(i.exit("thematicBreakSequence"),Iu(_)?Hl(i,y,"whitespace")(_):y(_))}}const Q2={name:"list",tokenize:CZt,continuation:{tokenize:SZt},exit:AZt},TZt={tokenize:LZt,partial:!0},EZt={tokenize:_Zt,partial:!0};function CZt(i,a,u){const d=this,p=d.events[d.events.length-1];let v=p&&p[1].type==="linePrefix"?p[2].sliceSerialize(p[1],!0).length:0,b=0;return y;function y(B){const j=d.containerState.type||(B===42||B===43||B===45?"listUnordered":"listOrdered");if(j==="listUnordered"?!d.containerState.marker||B===d.containerState.marker:Gme(B)){if(d.containerState.type||(d.containerState.type=j,i.enter(j,{_container:!0})),j==="listUnordered")return i.enter("listItemPrefix"),B===42||B===45?i.check(lJ,u,_)(B):_(B);if(!d.interrupt||B===49)return i.enter("listItemPrefix"),i.enter("listItemValue"),E(B)}return u(B)}function E(B){return Gme(B)&&++b<10?(i.consume(B),E):(!d.interrupt||b<2)&&(d.containerState.marker?B===d.containerState.marker:B===41||B===46)?(i.exit("listItemValue"),_(B)):u(B)}function _(B){return i.enter("listItemMarker"),i.consume(B),i.exit("listItemMarker"),d.containerState.marker=d.containerState.marker||B,i.check(uJ,d.interrupt?u:A,i.attempt(TZt,R,P))}function A(B){return d.containerState.initialBlankLine=!0,v++,R(B)}function P(B){return Iu(B)?(i.enter("listItemPrefixWhitespace"),i.consume(B),i.exit("listItemPrefixWhitespace"),R):u(B)}function R(B){return d.containerState.size=v+d.sliceSerialize(i.exit("listItemPrefix"),!0).length,a(B)}}function SZt(i,a,u){const d=this;return d.containerState._closeFlow=void 0,i.check(uJ,p,v);function p(y){return d.containerState.furtherBlankLines=d.containerState.furtherBlankLines||d.containerState.initialBlankLine,Hl(i,a,"listItemIndent",d.containerState.size+1)(y)}function v(y){return d.containerState.furtherBlankLines||!Iu(y)?(d.containerState.furtherBlankLines=void 0,d.containerState.initialBlankLine=void 0,b(y)):(d.containerState.furtherBlankLines=void 0,d.containerState.initialBlankLine=void 0,i.attempt(EZt,a,b)(y))}function b(y){return d.containerState._closeFlow=!0,d.interrupt=void 0,Hl(i,i.attempt(Q2,a,u),"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(y)}}function _Zt(i,a,u){const d=this;return Hl(i,p,"listItemIndent",d.containerState.size+1);function p(v){const b=d.events[d.events.length-1];return b&&b[1].type==="listItemIndent"&&b[2].sliceSerialize(b[1],!0).length===d.containerState.size?a(v):u(v)}}function AZt(i){i.exit(this.containerState.type)}function LZt(i,a,u){const d=this;return Hl(i,p,"listItemPrefixWhitespace",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4+1);function p(v){const b=d.events[d.events.length-1];return!Iu(v)&&b&&b[1].type==="listItemPrefixWhitespace"?a(v):u(v)}}const OVe={name:"setextUnderline",tokenize:DZt,resolveTo:MZt};function MZt(i,a){let u=i.length,d,p,v;for(;u--;)if(i[u][0]==="enter"){if(i[u][1].type==="content"){d=u;break}i[u][1].type==="paragraph"&&(p=u)}else i[u][1].type==="content"&&i.splice(u,1),!v&&i[u][1].type==="definition"&&(v=u);const b={type:"setextHeading",start:Object.assign({},i[p][1].start),end:Object.assign({},i[i.length-1][1].end)};return i[p][1].type="setextHeadingText",v?(i.splice(p,0,["enter",b,a]),i.splice(v+1,0,["exit",i[d][1],a]),i[d][1].end=Object.assign({},i[v][1].end)):i[d][1]=b,i.push(["exit",b,a]),i}function DZt(i,a,u){const d=this;let p;return v;function v(_){let A=d.events.length,P;for(;A--;)if(d.events[A][1].type!=="lineEnding"&&d.events[A][1].type!=="linePrefix"&&d.events[A][1].type!=="content"){P=d.events[A][1].type==="paragraph";break}return!d.parser.lazy[d.now().line]&&(d.interrupt||P)?(i.enter("setextHeadingLine"),p=_,b(_)):u(_)}function b(_){return i.enter("setextHeadingLineSequence"),y(_)}function y(_){return _===p?(i.consume(_),y):(i.exit("setextHeadingLineSequence"),Iu(_)?Hl(i,E,"lineSuffix")(_):E(_))}function E(_){return _===null||ro(_)?(i.exit("setextHeadingLine"),a(_)):u(_)}}const IZt={tokenize:OZt};function OZt(i){const a=this,u=i.attempt(uJ,d,i.attempt(this.parser.constructs.flowInitial,p,Hl(i,i.attempt(this.parser.constructs.flow,p,i.attempt(RJt,p)),"linePrefix")));return u;function d(v){if(v===null){i.consume(v);return}return i.enter("lineEndingBlank"),i.consume(v),i.exit("lineEndingBlank"),a.currentConstruct=void 0,u}function p(v){if(v===null){i.consume(v);return}return i.enter("lineEnding"),i.consume(v),i.exit("lineEnding"),a.currentConstruct=void 0,u}}const NZt={resolveAll:PVe()},PZt=NVe("string"),BZt=NVe("text");function NVe(i){return{tokenize:a,resolveAll:PVe(i==="text"?FZt:void 0)};function a(u){const d=this,p=this.parser.constructs[i],v=u.attempt(p,b,y);return b;function b(A){return _(A)?v(A):y(A)}function y(A){if(A===null){u.consume(A);return}return u.enter("data"),u.consume(A),E}function E(A){return _(A)?(u.exit("data"),v(A)):(u.consume(A),E)}function _(A){if(A===null)return!0;const P=p[A];let R=-1;if(P)for(;++R-1){const y=b[0];typeof y=="string"?b[0]=y.slice(d):b.shift()}v>0&&b.push(i[p].slice(0,v))}return b}function $Zt(i,a){let u=-1;const d=[];let p;for(;++u13&&u<32||u>126&&u<160||u>55295&&u<57344||u>64975&&u<65008||(u&65535)===65535||(u&65535)===65534||u>1114111?"�":String.fromCharCode(u)}const VZt=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function GZt(i){return i.replace(VZt,KZt)}function KZt(i,a,u){if(a)return a;if(u.charCodeAt(0)===35){const p=u.charCodeAt(1),v=p===120||p===88;return FVe(u.slice(v?2:1),v?16:10)}return Yme(u)||i}function hJ(i){return!i||typeof i!="object"?"":"position"in i||"type"in i?RVe(i.position):"start"in i||"end"in i?RVe(i):"line"in i||"column"in i?Zme(i):""}function Zme(i){return jVe(i&&i.line)+":"+jVe(i&&i.column)}function RVe(i){return Zme(i&&i.start)+"-"+Zme(i&&i.end)}function jVe(i){return i&&typeof i=="number"?i:1}const $Ve={}.hasOwnProperty,zVe=function(i,a,u){return typeof a!="string"&&(u=a,a=void 0),WZt(u)(UZt(qZt(u).document().write(HZt()(i,a,!0))))};function WZt(i){const a={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:y(ia),autolinkProtocol:G,autolinkEmail:G,atxHeading:y(qr),blockQuote:y(Ze),characterEscape:G,characterReference:G,codeFenced:y(Dt),codeFencedFenceInfo:E,codeFencedFenceMeta:E,codeIndented:y(Dt,E),codeText:y(kt,E),codeTextData:G,data:G,codeFlowValue:G,definition:y(Nn),definitionDestinationString:E,definitionLabelString:E,definitionTitleString:E,emphasis:y(ht),hardBreakEscape:y(xt),hardBreakTrailing:y(xt),htmlFlow:y(Ri,E),htmlFlowData:G,htmlText:y(Ri,E),htmlTextData:G,image:y(wi),label:E,link:y(ia),listItem:y(mo),listItemValue:j,listOrdered:y(Hs,B),listUnordered:y(Hs),paragraph:y(Tr),reference:Tt,referenceString:E,resourceDestinationString:E,resourceTitleString:E,setextHeading:y(qr),strong:y(On),thematicBreak:y(zn)},exit:{atxHeading:A(),atxHeadingSequence:se,autolink:A(),autolinkEmail:Bt,autolinkProtocol:yt,blockQuote:A(),characterEscapeValue:xe,characterReferenceMarkerHexadecimal:Wt,characterReferenceMarkerNumeric:Wt,characterReferenceValue:un,codeFenced:A(oe),codeFencedFence:ie,codeFencedFenceInfo:W,codeFencedFenceMeta:ee,codeFlowValue:xe,codeIndented:A(be),codeText:A(Ie),codeTextData:xe,data:xe,definition:A(),definitionDestinationString:ne,definitionLabelString:ge,definitionTitleString:ae,emphasis:A(),hardBreakEscape:A(Be),hardBreakTrailing:A(Be),htmlFlow:A(Pe),htmlFlowData:xe,htmlText:A(je),htmlTextData:xe,image:A(Ce),label:Ke,labelText:ke,lineEnding:U,link:A(Se),listItem:A(),listOrdered:A(),listUnordered:A(),paragraph:A(),referenceString:Et,resourceDestinationString:zt,resourceTitleString:Ne,resource:pn,setextHeading:A(pe),setextHeadingLineSequence:X,setextHeadingText:de,strong:A(),thematicBreak:A()}};qVe(a,(i||{}).mdastExtensions||[]);const u={};return d;function d(Ct){let gt={type:"root",children:[]};const on={stack:[gt],tokenStack:[],config:a,enter:_,exit:P,buffer:E,resume:R,setData:v,getData:b},dn=[];let Ln=-1;for(;++Ln0){const Io=on.tokenStack[on.tokenStack.length-1];(Io[1]||HVe).call(on,void 0,Io[0])}for(gt.position={start:B9(Ct.length>0?Ct[0][1].start:{line:1,column:1,offset:0}),end:B9(Ct.length>0?Ct[Ct.length-2][1].end:{line:1,column:1,offset:0})},Ln=-1;++Ln{A!==0&&(p++,d.push([])),_.split(" ").forEach(P=>{P&&d[p].push({content:P,type:y})})}):(b.type==="strong"||b.type==="emphasis")&&b.children.forEach(E=>{v(E,b.type)})}return u.forEach(b=>{b.type==="paragraph"&&b.children.forEach(y=>{v(y)})}),d}function JZt(i){const{children:a}=zVe(i);function u(d){return d.type==="text"?d.value.replace(/\n/g,"
"):d.type==="strong"?`${d.children.map(u).join("")}`:d.type==="emphasis"?`${d.children.map(u).join("")}`:d.type==="paragraph"?`

${d.children.map(u).join("")}

`:`Unsupported markdown: ${d.type}`}return a.map(u).join("")}function ZZt(i){return Intl.Segmenter?[...new Intl.Segmenter().segment(i)].map(a=>a.segment):[...i]}function een(i,a){const u=ZZt(a.content);return UVe(i,[],u,a.type)}function UVe(i,a,u,d){if(u.length===0)return[{content:a.join(""),type:d},{content:"",type:d}];const[p,...v]=u,b=[...a,p];return i([{content:b.join(""),type:d}])?UVe(i,b,v,d):(a.length===0&&p&&(a.push(p),u.shift()),[{content:a.join(""),type:d},{content:u.join(""),type:d}])}function ten(i,a){if(i.some(({content:u})=>u.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return eve(i,a)}function eve(i,a,u=[],d=[]){if(i.length===0)return d.length>0&&u.push(d),u.length>0?u:[];let p="";i[0].content===" "&&(p=" ",i.shift());const v=i.shift()??{content:" ",type:"normal"},b=[...d];if(p!==""&&b.push({content:p,type:"normal"}),b.push(v),a(b))return eve(i,a,u,b);if(d.length>0)u.push(d),i.unshift(v);else if(v.content){const[y,E]=een(a,v);u.push([y]),E.content&&i.unshift(E)}return eve(i,a,u)}function nen(i,a){a&&i.attr("style",a)}function ren(i,a,u,d,p=!1){const v=i.append("foreignObject"),b=v.append("xhtml:div"),y=a.label,E=a.isNode?"nodeLabel":"edgeLabel";b.html(bh(` + "+y+"",mh())),nen(b,a.labelStyle),b.style("display","table-cell"),b.style("white-space","nowrap"),b.style("max-width",u+"px"),b.attr("xmlns","http://www.w3.org/1999/xhtml"),p&&b.attr("class","labelBkg");let _=b.node().getBoundingClientRect();return _.width===u&&(b.style("display","table"),b.style("white-space","break-spaces"),b.style("width",u+"px"),_=b.node().getBoundingClientRect()),v.style("width",_.width),v.style("height",_.height),v.node()}function tve(i,a,u){return i.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",a*u-.1+"em").attr("dy",u+"em")}function ien(i,a,u){const d=i.append("text"),p=tve(d,1,a);nve(p,u);const v=p.node().getComputedTextLength();return d.remove(),v}function sen(i,a,u){var b;const d=i.append("text"),p=tve(d,1,a);nve(p,[{content:u,type:"normal"}]);const v=(b=p.node())==null?void 0:b.getBoundingClientRect();return v&&d.remove(),v}function aen(i,a,u,d=!1){const v=a.append("g"),b=v.insert("rect").attr("class","background"),y=v.append("text").attr("y","-10.1");let E=0;for(const _ of u){const A=R=>ien(v,1.1,R)<=i,P=A(_)?[_]:ten(_,A);for(const R of P){const B=tve(y,E,1.1);nve(B,R),E++}}if(d){const _=y.node().getBBox(),A=2;return b.attr("x",-A).attr("y",-A).attr("width",_.width+2*A).attr("height",_.height+2*A),v.node()}else return y.node()}function nve(i,a){i.text(""),a.forEach((u,d)=>{const p=i.append("tspan").attr("font-style",u.type==="emphasis"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",u.type==="strong"?"bold":"normal");d===0?p.text(u.content):p.text(" "+u.content)})}const fJ=(i,a="",{style:u="",isTitle:d=!1,classes:p="",useHtmlLabels:v=!0,isNode:b=!0,width:y=200,addSvgBackground:E=!1}={})=>{if(Xe.info("createText",a,u,d,p,v,b,E),v){const _=JZt(a),A={isNode:b,label:uR(_).replace(/fa[blrs]?:fa-[\w-]+/g,R=>``),labelStyle:u.replace("fill:","color:")};return ren(i,A,y,p,E)}else{const _=QZt(a);return aen(y,i,_,E)}},g1=async(i,a,u,d)=>{let p;const v=a.useHtmlLabels||h1(qt().flowchart.htmlLabels);u?p=u:p="node default";const b=i.insert("g").attr("class",p).attr("id",a.domId||a.id),y=b.insert("g").attr("class","label").attr("style",a.labelStyle);let E;a.labelText===void 0?E="":E=typeof a.labelText=="string"?a.labelText:a.labelText[0];const _=y.node();let A;a.labelType==="markdown"?A=fJ(y,bh(uR(E),qt()),{useHtmlLabels:v,width:a.width||qt().flowchart.wrappingWidth,classes:"markdown-node-label"}):A=_.appendChild(Y2(bh(uR(E),qt()),a.labelStyle,!1,d));let P=A.getBBox();const R=a.padding/2;if(h1(qt().flowchart.htmlLabels)){const B=A.children[0],j=Dr(A),W=B.getElementsByTagName("img");if(W){const ee=E.replace(/]*>/g,"").trim()==="";await Promise.all([...W].map(ie=>new Promise(oe=>{function be(){if(ie.style.display="flex",ie.style.flexDirection="column",ee){const ge=qt().fontSize?qt().fontSize:window.getComputedStyle(document.body).fontSize,ae=5,ne=parseInt(ge,10)*ae+"px";ie.style.minWidth=ne,ie.style.maxWidth=ne}else ie.style.width="100%";oe(ie)}setTimeout(()=>{ie.complete&&be()}),ie.addEventListener("error",be),ie.addEventListener("load",be)})))}P=B.getBoundingClientRect(),j.attr("width",P.width),j.attr("height",P.height)}return v?y.attr("transform","translate("+-P.width/2+", "+-P.height/2+")"):y.attr("transform","translate(0, "+-P.height/2+")"),a.centerLabel&&y.attr("transform","translate("+-P.width/2+", "+-P.height/2+")"),y.insert("rect",":first-child"),{shapeSvg:b,bbox:P,halfPadding:R,label:y}},Gh=(i,a)=>{const u=a.node().getBBox();i.width=u.width,i.height=u.height};function s5(i,a,u,d){return i.insert("polygon",":first-child").attr("points",d.map(function(p){return p.x+","+p.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-a/2+","+u/2+")")}let _o={},W3={},VVe={};const oen=()=>{W3={},VVe={},_o={}},dJ=(i,a)=>(Xe.trace("In isDescendant",a," ",i," = ",W3[a].includes(i)),!!W3[a].includes(i)),cen=(i,a)=>(Xe.info("Descendants of ",a," is ",W3[a]),Xe.info("Edge is ",i),i.v===a||i.w===a?!1:W3[a]?W3[a].includes(i.v)||dJ(i.v,a)||dJ(i.w,a)||W3[a].includes(i.w):(Xe.debug("Tilt, ",a,",not in descendants"),!1)),GVe=(i,a,u,d)=>{Xe.warn("Copying children of ",i,"root",d,"data",a.node(i),d);const p=a.children(i)||[];i!==d&&p.push(i),Xe.warn("Copying (nodes) clusterId",i,"nodes",p),p.forEach(v=>{if(a.children(v).length>0)GVe(v,a,u,d);else{const b=a.node(v);Xe.info("cp ",v," to ",d," with parent ",i),u.setNode(v,b),d!==a.parent(v)&&(Xe.warn("Setting parent",v,a.parent(v)),u.setParent(v,a.parent(v))),i!==d&&v!==i?(Xe.debug("Setting parent",v,i),u.setParent(v,i)):(Xe.info("In copy ",i,"root",d,"data",a.node(i),d),Xe.debug("Not Setting parent for node=",v,"cluster!==rootId",i!==d,"node!==clusterId",v!==i));const y=a.edges(v);Xe.debug("Copying Edges",y),y.forEach(E=>{Xe.info("Edge",E);const _=a.edge(E.v,E.w,E.name);Xe.info("Edge data",_,d);try{cen(E,d)?(Xe.info("Copying as ",E.v,E.w,_,E.name),u.setEdge(E.v,E.w,_,E.name),Xe.info("newGraph edges ",u.edges(),u.edge(u.edges()[0]))):Xe.info("Skipping copy of edge ",E.v,"-->",E.w," rootId: ",d," clusterId:",i)}catch(A){Xe.error(A)}})}Xe.debug("Removing node",v),a.removeNode(v)})},KVe=(i,a)=>{const u=a.children(i);let d=[...u];for(const p of u)VVe[p]=i,d=[...d,...KVe(p,a)];return d},FR=(i,a)=>{Xe.trace("Searching",i);const u=a.children(i);if(Xe.trace("Searching children of id ",i,u),u.length<1)return Xe.trace("This is a valid node",i),i;for(const d of u){const p=FR(d,a);if(p)return Xe.trace("Found replacement for",i," => ",p),p}},gJ=i=>!_o[i]||!_o[i].externalConnections?i:_o[i]?_o[i].id:i,uen=(i,a)=>{if(!i||a>10){Xe.debug("Opting out, no graph ");return}else Xe.debug("Opting in, graph ");i.nodes().forEach(function(u){i.children(u).length>0&&(Xe.warn("Cluster identified",u," Replacement id in edges: ",FR(u,i)),W3[u]=KVe(u,i),_o[u]={id:FR(u,i),clusterData:i.node(u)})}),i.nodes().forEach(function(u){const d=i.children(u),p=i.edges();d.length>0?(Xe.debug("Cluster identified",u,W3),p.forEach(v=>{if(v.v!==u&&v.w!==u){const b=dJ(v.v,u),y=dJ(v.w,u);b^y&&(Xe.warn("Edge: ",v," leaves cluster ",u),Xe.warn("Descendants of XXX ",u,": ",W3[u]),_o[u].externalConnections=!0)}})):Xe.debug("Not a cluster ",u,W3)});for(let u of Object.keys(_o)){const d=_o[u].id,p=i.parent(d);p!==u&&_o[p]&&!_o[p].externalConnections&&(_o[u].id=p)}i.edges().forEach(function(u){const d=i.edge(u);Xe.warn("Edge "+u.v+" -> "+u.w+": "+JSON.stringify(u)),Xe.warn("Edge "+u.v+" -> "+u.w+": "+JSON.stringify(i.edge(u)));let p=u.v,v=u.w;if(Xe.warn("Fix XXX",_o,"ids:",u.v,u.w,"Translating: ",_o[u.v]," --- ",_o[u.w]),_o[u.v]&&_o[u.w]&&_o[u.v]===_o[u.w]){Xe.warn("Fixing and trixing link to self - removing XXX",u.v,u.w,u.name),Xe.warn("Fixing and trixing - removing XXX",u.v,u.w,u.name),p=gJ(u.v),v=gJ(u.w),i.removeEdge(u.v,u.w,u.name);const b=u.w+"---"+u.v;i.setNode(b,{domId:b,id:b,labelStyle:"",labelText:d.label,padding:0,shape:"labelRect",style:""});const y=structuredClone(d),E=structuredClone(d);y.label="",y.arrowTypeEnd="none",E.label="",y.fromCluster=u.v,E.toCluster=u.v,i.setEdge(p,b,y,u.name+"-cyclic-special"),i.setEdge(b,v,E,u.name+"-cyclic-special")}else if(_o[u.v]||_o[u.w]){if(Xe.warn("Fixing and trixing - removing XXX",u.v,u.w,u.name),p=gJ(u.v),v=gJ(u.w),i.removeEdge(u.v,u.w,u.name),p!==u.v){const b=i.parent(p);_o[b].externalConnections=!0,d.fromCluster=u.v}if(v!==u.w){const b=i.parent(v);_o[b].externalConnections=!0,d.toCluster=u.w}Xe.warn("Fix Replacing with XXX",p,v,u.name),i.setEdge(p,v,d,u.name)}}),Xe.warn("Adjusted Graph",H7(i)),WVe(i,0),Xe.trace(_o)},WVe=(i,a)=>{if(Xe.warn("extractor - ",a,H7(i),i.children("D")),a>10){Xe.error("Bailing out");return}let u=i.nodes(),d=!1;for(const p of u){const v=i.children(p);d=d||v.length>0}if(!d){Xe.debug("Done, no node has children",i.nodes());return}Xe.debug("Nodes = ",u,a);for(const p of u)if(Xe.debug("Extracting node",p,_o,_o[p]&&!_o[p].externalConnections,!i.parent(p),i.node(p),i.children("D")," Depth ",a),!_o[p])Xe.debug("Not a cluster",p,a);else if(!_o[p].externalConnections&&i.children(p)&&i.children(p).length>0){Xe.warn("Cluster without external connections, without a parent and with children",p,a);let b=i.graph().rankdir==="TB"?"LR":"TB";_o[p]&&_o[p].clusterData&&_o[p].clusterData.dir&&(b=_o[p].clusterData.dir,Xe.warn("Fixing dir",_o[p].clusterData.dir,b));const y=new R0({multigraph:!0,compound:!0}).setGraph({rankdir:b,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});Xe.warn("Old graph before copy",H7(i)),GVe(p,i,y,p),i.setNode(p,{clusterNode:!0,id:p,clusterData:_o[p].clusterData,labelText:_o[p].labelText,graph:y}),Xe.warn("New graph after copy node: (",p,")",H7(y)),Xe.debug("Old graph after copy",H7(i))}else Xe.warn("Cluster ** ",p," **not meeting the criteria !externalConnections:",!_o[p].externalConnections," no parent: ",!i.parent(p)," children ",i.children(p)&&i.children(p).length>0,i.children("D"),a),Xe.debug(_o);u=i.nodes(),Xe.warn("New list of nodes",u);for(const p of u){const v=i.node(p);Xe.warn(" Now next level",p,v),v.clusterNode&&WVe(v.graph,a+1)}},YVe=(i,a)=>{if(a.length===0)return[];let u=Object.assign(a);return a.forEach(d=>{const p=i.children(d),v=YVe(i,p);u=[...u,...v]}),u},len=i=>YVe(i,i.children());function hen(i,a){return i.intersect(a)}function XVe(i,a,u,d){var p=i.x,v=i.y,b=p-d.x,y=v-d.y,E=Math.sqrt(a*a*y*y+u*u*b*b),_=Math.abs(a*u*b/E);d.x0}function gen(i,a,u){var d=i.x,p=i.y,v=[],b=Number.POSITIVE_INFINITY,y=Number.POSITIVE_INFINITY;typeof a.forEach=="function"?a.forEach(function(j){b=Math.min(b,j.x),y=Math.min(y,j.y)}):(b=Math.min(b,a.x),y=Math.min(y,a.y));for(var E=d-i.width/2-b,_=p-i.height/2-y,A=0;A1&&v.sort(function(j,W){var ee=j.x-u.x,ie=j.y-u.y,oe=Math.sqrt(ee*ee+ie*ie),be=W.x-u.x,ge=W.y-u.y,ae=Math.sqrt(be*be+ge*ge);return oe{var u=i.x,d=i.y,p=a.x-u,v=a.y-d,b=i.width/2,y=i.height/2,E,_;return Math.abs(v)*b>Math.abs(p)*y?(v<0&&(y=-y),E=v===0?0:y*p/v,_=y):(p<0&&(b=-b),E=b,_=p===0?0:b*v/p),{x:u+E,y:d+_}},yh={node:hen,circle:fen,ellipse:XVe,polygon:gen,rect:RR},pen=async(i,a)=>{a.useHtmlLabels||qt().flowchart.htmlLabels||(a.centerLabel=!0);const{shapeSvg:d,bbox:p,halfPadding:v}=await g1(i,a,"node "+a.classes,!0);Xe.info("Classes = ",a.classes);const b=d.insert("rect",":first-child");return b.attr("rx",a.rx).attr("ry",a.ry).attr("x",-p.width/2-v).attr("y",-p.height/2-v).attr("width",p.width+a.padding).attr("height",p.height+a.padding),Gh(a,b),a.intersect=function(y){return yh.rect(a,y)},d},ben=i=>{const a=new Set;for(const u of i)switch(u){case"x":a.add("right"),a.add("left");break;case"y":a.add("up"),a.add("down");break;default:a.add(u);break}return a},men=(i,a,u)=>{const d=ben(i),p=2,v=a.height+2*u.padding,b=v/p,y=a.width+2*b+u.padding,E=u.padding/2;return d.has("right")&&d.has("left")&&d.has("up")&&d.has("down")?[{x:0,y:0},{x:b,y:0},{x:y/2,y:2*E},{x:y-b,y:0},{x:y,y:0},{x:y,y:-v/3},{x:y+2*E,y:-v/2},{x:y,y:-2*v/3},{x:y,y:-v},{x:y-b,y:-v},{x:y/2,y:-v-2*E},{x:b,y:-v},{x:0,y:-v},{x:0,y:-2*v/3},{x:-2*E,y:-v/2},{x:0,y:-v/3}]:d.has("right")&&d.has("left")&&d.has("up")?[{x:b,y:0},{x:y-b,y:0},{x:y,y:-v/2},{x:y-b,y:-v},{x:b,y:-v},{x:0,y:-v/2}]:d.has("right")&&d.has("left")&&d.has("down")?[{x:0,y:0},{x:b,y:-v},{x:y-b,y:-v},{x:y,y:0}]:d.has("right")&&d.has("up")&&d.has("down")?[{x:0,y:0},{x:y,y:-b},{x:y,y:-v+b},{x:0,y:-v}]:d.has("left")&&d.has("up")&&d.has("down")?[{x:y,y:0},{x:0,y:-b},{x:0,y:-v+b},{x:y,y:-v}]:d.has("right")&&d.has("left")?[{x:b,y:0},{x:b,y:-E},{x:y-b,y:-E},{x:y-b,y:0},{x:y,y:-v/2},{x:y-b,y:-v},{x:y-b,y:-v+E},{x:b,y:-v+E},{x:b,y:-v},{x:0,y:-v/2}]:d.has("up")&&d.has("down")?[{x:y/2,y:0},{x:0,y:-E},{x:b,y:-E},{x:b,y:-v+E},{x:0,y:-v+E},{x:y/2,y:-v},{x:y,y:-v+E},{x:y-b,y:-v+E},{x:y-b,y:-E},{x:y,y:-E}]:d.has("right")&&d.has("up")?[{x:0,y:0},{x:y,y:-b},{x:0,y:-v}]:d.has("right")&&d.has("down")?[{x:0,y:0},{x:y,y:0},{x:0,y:-v}]:d.has("left")&&d.has("up")?[{x:y,y:0},{x:0,y:-b},{x:y,y:-v}]:d.has("left")&&d.has("down")?[{x:y,y:0},{x:0,y:0},{x:y,y:-v}]:d.has("right")?[{x:b,y:-E},{x:b,y:-E},{x:y-b,y:-E},{x:y-b,y:0},{x:y,y:-v/2},{x:y-b,y:-v},{x:y-b,y:-v+E},{x:b,y:-v+E},{x:b,y:-v+E}]:d.has("left")?[{x:b,y:0},{x:b,y:-E},{x:y-b,y:-E},{x:y-b,y:-v+E},{x:b,y:-v+E},{x:b,y:-v},{x:0,y:-v/2}]:d.has("up")?[{x:b,y:-E},{x:b,y:-v+E},{x:0,y:-v+E},{x:y/2,y:-v},{x:y,y:-v+E},{x:y-b,y:-v+E},{x:y-b,y:-E}]:d.has("down")?[{x:y/2,y:0},{x:0,y:-E},{x:b,y:-E},{x:b,y:-v+E},{x:y-b,y:-v+E},{x:y-b,y:-E},{x:y,y:-E}]:[{x:0,y:0}]},JVe=i=>i?" "+i:"",km=(i,a)=>`${a||"node default"}${JVe(i.classes)} ${JVe(i.class)}`,ZVe=async(i,a)=>{const{shapeSvg:u,bbox:d}=await g1(i,a,km(a,void 0),!0),p=d.width+a.padding,v=d.height+a.padding,b=p+v,y=[{x:b/2,y:0},{x:b,y:-b/2},{x:b/2,y:-b},{x:0,y:-b/2}];Xe.info("Question main (Circle)");const E=s5(u,b,b,y);return E.attr("style",a.style),Gh(a,E),a.intersect=function(_){return Xe.warn("Intersect called"),yh.polygon(a,y,_)},u},ven=(i,a)=>{const u=i.insert("g").attr("class","node default").attr("id",a.domId||a.id),d=28,p=[{x:0,y:d/2},{x:d/2,y:0},{x:0,y:-d/2},{x:-d/2,y:0}];return u.insert("polygon",":first-child").attr("points",p.map(function(b){return b.x+","+b.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),a.width=28,a.height=28,a.intersect=function(b){return yh.circle(a,14,b)},u},wen=async(i,a)=>{const{shapeSvg:u,bbox:d}=await g1(i,a,km(a,void 0),!0),p=4,v=d.height+a.padding,b=v/p,y=d.width+2*b+a.padding,E=[{x:b,y:0},{x:y-b,y:0},{x:y,y:-v/2},{x:y-b,y:-v},{x:b,y:-v},{x:0,y:-v/2}],_=s5(u,y,v,E);return _.attr("style",a.style),Gh(a,_),a.intersect=function(A){return yh.polygon(a,E,A)},u},yen=async(i,a)=>{const{shapeSvg:u,bbox:d}=await g1(i,a,void 0,!0),p=2,v=d.height+2*a.padding,b=v/p,y=d.width+2*b+a.padding,E=men(a.directions,d,a),_=s5(u,y,v,E);return _.attr("style",a.style),Gh(a,_),a.intersect=function(A){return yh.polygon(a,E,A)},u},xen=async(i,a)=>{const{shapeSvg:u,bbox:d}=await g1(i,a,km(a,void 0),!0),p=d.width+a.padding,v=d.height+a.padding,b=[{x:-v/2,y:0},{x:p,y:0},{x:p,y:-v},{x:-v/2,y:-v},{x:0,y:-v/2}];return s5(u,p,v,b).attr("style",a.style),a.width=p+v,a.height=v,a.intersect=function(E){return yh.polygon(a,b,E)},u},ken=async(i,a)=>{const{shapeSvg:u,bbox:d}=await g1(i,a,km(a),!0),p=d.width+a.padding,v=d.height+a.padding,b=[{x:-2*v/6,y:0},{x:p-v/6,y:0},{x:p+2*v/6,y:-v},{x:v/6,y:-v}],y=s5(u,p,v,b);return y.attr("style",a.style),Gh(a,y),a.intersect=function(E){return yh.polygon(a,b,E)},u},Ten=async(i,a)=>{const{shapeSvg:u,bbox:d}=await g1(i,a,km(a,void 0),!0),p=d.width+a.padding,v=d.height+a.padding,b=[{x:2*v/6,y:0},{x:p+v/6,y:0},{x:p-2*v/6,y:-v},{x:-v/6,y:-v}],y=s5(u,p,v,b);return y.attr("style",a.style),Gh(a,y),a.intersect=function(E){return yh.polygon(a,b,E)},u},Een=async(i,a)=>{const{shapeSvg:u,bbox:d}=await g1(i,a,km(a,void 0),!0),p=d.width+a.padding,v=d.height+a.padding,b=[{x:-2*v/6,y:0},{x:p+2*v/6,y:0},{x:p-v/6,y:-v},{x:v/6,y:-v}],y=s5(u,p,v,b);return y.attr("style",a.style),Gh(a,y),a.intersect=function(E){return yh.polygon(a,b,E)},u},Cen=async(i,a)=>{const{shapeSvg:u,bbox:d}=await g1(i,a,km(a,void 0),!0),p=d.width+a.padding,v=d.height+a.padding,b=[{x:v/6,y:0},{x:p-v/6,y:0},{x:p+2*v/6,y:-v},{x:-2*v/6,y:-v}],y=s5(u,p,v,b);return y.attr("style",a.style),Gh(a,y),a.intersect=function(E){return yh.polygon(a,b,E)},u},Sen=async(i,a)=>{const{shapeSvg:u,bbox:d}=await g1(i,a,km(a,void 0),!0),p=d.width+a.padding,v=d.height+a.padding,b=[{x:0,y:0},{x:p+v/2,y:0},{x:p,y:-v/2},{x:p+v/2,y:-v},{x:0,y:-v}],y=s5(u,p,v,b);return y.attr("style",a.style),Gh(a,y),a.intersect=function(E){return yh.polygon(a,b,E)},u},_en=async(i,a)=>{const{shapeSvg:u,bbox:d}=await g1(i,a,km(a,void 0),!0),p=d.width+a.padding,v=p/2,b=v/(2.5+p/50),y=d.height+b+a.padding,E="M 0,"+b+" a "+v+","+b+" 0,0,0 "+p+" 0 a "+v+","+b+" 0,0,0 "+-p+" 0 l 0,"+y+" a "+v+","+b+" 0,0,0 "+p+" 0 l 0,"+-y,_=u.attr("label-offset-y",b).insert("path",":first-child").attr("style",a.style).attr("d",E).attr("transform","translate("+-p/2+","+-(y/2+b)+")");return Gh(a,_),a.intersect=function(A){const P=yh.rect(a,A),R=P.x-a.x;if(v!=0&&(Math.abs(R)a.height/2-b)){let B=b*b*(1-R*R/(v*v));B!=0&&(B=Math.sqrt(B)),B=b-B,A.y-a.y>0&&(B=-B),P.y+=B}return P},u},Aen=async(i,a)=>{const{shapeSvg:u,bbox:d,halfPadding:p}=await g1(i,a,"node "+a.classes+" "+a.class,!0),v=u.insert("rect",":first-child"),b=a.positioned?a.width:d.width+a.padding,y=a.positioned?a.height:d.height+a.padding,E=a.positioned?-b/2:-d.width/2-p,_=a.positioned?-y/2:-d.height/2-p;if(v.attr("class","basic label-container").attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("x",E).attr("y",_).attr("width",b).attr("height",y),a.props){const A=new Set(Object.keys(a.props));a.props.borders&&(rve(v,a.props.borders,b,y),A.delete("borders")),A.forEach(P=>{Xe.warn(`Unknown node property ${P}`)})}return Gh(a,v),a.intersect=function(A){return yh.rect(a,A)},u},Len=async(i,a)=>{const{shapeSvg:u,bbox:d,halfPadding:p}=await g1(i,a,"node "+a.classes,!0),v=u.insert("rect",":first-child"),b=a.positioned?a.width:d.width+a.padding,y=a.positioned?a.height:d.height+a.padding,E=a.positioned?-b/2:-d.width/2-p,_=a.positioned?-y/2:-d.height/2-p;if(v.attr("class","basic cluster composite label-container").attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("x",E).attr("y",_).attr("width",b).attr("height",y),a.props){const A=new Set(Object.keys(a.props));a.props.borders&&(rve(v,a.props.borders,b,y),A.delete("borders")),A.forEach(P=>{Xe.warn(`Unknown node property ${P}`)})}return Gh(a,v),a.intersect=function(A){return yh.rect(a,A)},u},Men=async(i,a)=>{const{shapeSvg:u}=await g1(i,a,"label",!0);Xe.trace("Classes = ",a.class);const d=u.insert("rect",":first-child"),p=0,v=0;if(d.attr("width",p).attr("height",v),u.attr("class","label edgeLabel"),a.props){const b=new Set(Object.keys(a.props));a.props.borders&&(rve(d,a.props.borders,p,v),b.delete("borders")),b.forEach(y=>{Xe.warn(`Unknown node property ${y}`)})}return Gh(a,d),a.intersect=function(b){return yh.rect(a,b)},u};function rve(i,a,u,d){const p=[],v=y=>{p.push(y,0)},b=y=>{p.push(0,y)};a.includes("t")?(Xe.debug("add top border"),v(u)):b(u),a.includes("r")?(Xe.debug("add right border"),v(d)):b(d),a.includes("b")?(Xe.debug("add bottom border"),v(u)):b(u),a.includes("l")?(Xe.debug("add left border"),v(d)):b(d),i.attr("stroke-dasharray",p.join(" "))}const Den=(i,a)=>{let u;a.classes?u="node "+a.classes:u="node default";const d=i.insert("g").attr("class",u).attr("id",a.domId||a.id),p=d.insert("rect",":first-child"),v=d.insert("line"),b=d.insert("g").attr("class","label"),y=a.labelText.flat?a.labelText.flat():a.labelText;let E="";typeof y=="object"?E=y[0]:E=y,Xe.info("Label text abc79",E,y,typeof y=="object");const _=b.node().appendChild(Y2(E,a.labelStyle,!0,!0));let A={width:0,height:0};if(h1(qt().flowchart.htmlLabels)){const W=_.children[0],ee=Dr(_);A=W.getBoundingClientRect(),ee.attr("width",A.width),ee.attr("height",A.height)}Xe.info("Text 2",y);const P=y.slice(1,y.length);let R=_.getBBox();const B=b.node().appendChild(Y2(P.join?P.join("
"):P,a.labelStyle,!0,!0));if(h1(qt().flowchart.htmlLabels)){const W=B.children[0],ee=Dr(B);A=W.getBoundingClientRect(),ee.attr("width",A.width),ee.attr("height",A.height)}const j=a.padding/2;return Dr(B).attr("transform","translate( "+(A.width>R.width?0:(R.width-A.width)/2)+", "+(R.height+j+5)+")"),Dr(_).attr("transform","translate( "+(A.width{const{shapeSvg:u,bbox:d}=await g1(i,a,km(a,void 0),!0),p=d.height+a.padding,v=d.width+p/4+a.padding,b=u.insert("rect",":first-child").attr("style",a.style).attr("rx",p/2).attr("ry",p/2).attr("x",-v/2).attr("y",-p/2).attr("width",v).attr("height",p);return Gh(a,b),a.intersect=function(y){return yh.rect(a,y)},u},Oen=async(i,a)=>{const{shapeSvg:u,bbox:d,halfPadding:p}=await g1(i,a,km(a,void 0),!0),v=u.insert("circle",":first-child");return v.attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("r",d.width/2+p).attr("width",d.width+a.padding).attr("height",d.height+a.padding),Xe.info("Circle main"),Gh(a,v),a.intersect=function(b){return Xe.info("Circle intersect",a,d.width/2+p,b),yh.circle(a,d.width/2+p,b)},u},Nen=async(i,a)=>{const{shapeSvg:u,bbox:d,halfPadding:p}=await g1(i,a,km(a,void 0),!0),v=5,b=u.insert("g",":first-child"),y=b.insert("circle"),E=b.insert("circle");return b.attr("class",a.class),y.attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("r",d.width/2+p+v).attr("width",d.width+a.padding+v*2).attr("height",d.height+a.padding+v*2),E.attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("r",d.width/2+p).attr("width",d.width+a.padding).attr("height",d.height+a.padding),Xe.info("DoubleCircle main"),Gh(a,y),a.intersect=function(_){return Xe.info("DoubleCircle intersect",a,d.width/2+p+v,_),yh.circle(a,d.width/2+p+v,_)},u},Pen=async(i,a)=>{const{shapeSvg:u,bbox:d}=await g1(i,a,km(a,void 0),!0),p=d.width+a.padding,v=d.height+a.padding,b=[{x:0,y:0},{x:p,y:0},{x:p,y:-v},{x:0,y:-v},{x:0,y:0},{x:-8,y:0},{x:p+8,y:0},{x:p+8,y:-v},{x:-8,y:-v},{x:-8,y:0}],y=s5(u,p,v,b);return y.attr("style",a.style),Gh(a,y),a.intersect=function(E){return yh.polygon(a,b,E)},u},Ben=(i,a)=>{const u=i.insert("g").attr("class","node default").attr("id",a.domId||a.id),d=u.insert("circle",":first-child");return d.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),Gh(a,d),a.intersect=function(p){return yh.circle(a,7,p)},u},eGe=(i,a,u)=>{const d=i.insert("g").attr("class","node default").attr("id",a.domId||a.id);let p=70,v=10;u==="LR"&&(p=10,v=70);const b=d.append("rect").attr("x",-1*p/2).attr("y",-1*v/2).attr("width",p).attr("height",v).attr("class","fork-join");return Gh(a,b),a.height=a.height+a.padding/2,a.width=a.width+a.padding/2,a.intersect=function(y){return yh.rect(a,y)},d},tGe={rhombus:ZVe,composite:Len,question:ZVe,rect:Aen,labelRect:Men,rectWithTitle:Den,choice:ven,circle:Oen,doublecircle:Nen,stadium:Ien,hexagon:wen,block_arrow:yen,rect_left_inv_arrow:xen,lean_right:ken,lean_left:Ten,trapezoid:Een,inv_trapezoid:Cen,rect_right_inv_arrow:Sen,cylinder:_en,start:Ben,end:(i,a)=>{const u=i.insert("g").attr("class","node default").attr("id",a.domId||a.id),d=u.insert("circle",":first-child"),p=u.insert("circle",":first-child");return p.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),d.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),Gh(a,p),a.intersect=function(v){return yh.circle(a,7,v)},u},note:pen,subroutine:Pen,fork:eGe,join:eGe,class_box:(i,a)=>{const u=a.padding/2,d=4,p=8;let v;a.classes?v="node "+a.classes:v="node default";const b=i.insert("g").attr("class",v).attr("id",a.domId||a.id),y=b.insert("rect",":first-child"),E=b.insert("line"),_=b.insert("line");let A=0,P=d;const R=b.insert("g").attr("class","label");let B=0;const j=a.classData.annotations&&a.classData.annotations[0],W=a.classData.annotations[0]?"«"+a.classData.annotations[0]+"»":"",ee=R.node().appendChild(Y2(W,a.labelStyle,!0,!0));let ie=ee.getBBox();if(h1(qt().flowchart.htmlLabels)){const de=ee.children[0],X=Dr(ee);ie=de.getBoundingClientRect(),X.attr("width",ie.width),X.attr("height",ie.height)}a.classData.annotations[0]&&(P+=ie.height+d,A+=ie.width);let oe=a.classData.label;a.classData.type!==void 0&&a.classData.type!==""&&(qt().flowchart.htmlLabels?oe+="<"+a.classData.type+">":oe+="<"+a.classData.type+">");const be=R.node().appendChild(Y2(oe,a.labelStyle,!0,!0));Dr(be).attr("class","classTitle");let ge=be.getBBox();if(h1(qt().flowchart.htmlLabels)){const de=be.children[0],X=Dr(be);ge=de.getBoundingClientRect(),X.attr("width",ge.width),X.attr("height",ge.height)}P+=ge.height+d,ge.width>A&&(A=ge.width);const ae=[];a.classData.members.forEach(de=>{const X=de.getDisplayDetails();let pe=X.displayText;qt().flowchart.htmlLabels&&(pe=pe.replace(//g,">"));const G=R.node().appendChild(Y2(pe,X.cssStyle?X.cssStyle:a.labelStyle,!0,!0));let xe=G.getBBox();if(h1(qt().flowchart.htmlLabels)){const U=G.children[0],Be=Dr(G);xe=U.getBoundingClientRect(),Be.attr("width",xe.width),Be.attr("height",xe.height)}xe.width>A&&(A=xe.width),P+=xe.height+d,ae.push(G)}),P+=p;const ne=[];if(a.classData.methods.forEach(de=>{const X=de.getDisplayDetails();let pe=X.displayText;qt().flowchart.htmlLabels&&(pe=pe.replace(//g,">"));const G=R.node().appendChild(Y2(pe,X.cssStyle?X.cssStyle:a.labelStyle,!0,!0));let xe=G.getBBox();if(h1(qt().flowchart.htmlLabels)){const U=G.children[0],Be=Dr(G);xe=U.getBoundingClientRect(),Be.attr("width",xe.width),Be.attr("height",xe.height)}xe.width>A&&(A=xe.width),P+=xe.height+d,ne.push(G)}),P+=p,j){let de=(A-ie.width)/2;Dr(ee).attr("transform","translate( "+(-1*A/2+de)+", "+-1*P/2+")"),B=ie.height+d}let se=(A-ge.width)/2;return Dr(be).attr("transform","translate( "+(-1*A/2+se)+", "+(-1*P/2+B)+")"),B+=ge.height+d,E.attr("class","divider").attr("x1",-A/2-u).attr("x2",A/2+u).attr("y1",-P/2-u+p+B).attr("y2",-P/2-u+p+B),B+=p,ae.forEach(de=>{Dr(de).attr("transform","translate( "+-A/2+", "+(-1*P/2+B+p/2)+")");const X=de==null?void 0:de.getBBox();B+=((X==null?void 0:X.height)??0)+d}),B+=p,_.attr("class","divider").attr("x1",-A/2-u).attr("x2",A/2+u).attr("y1",-P/2-u+p+B).attr("y2",-P/2-u+p+B),B+=p,ne.forEach(de=>{Dr(de).attr("transform","translate( "+-A/2+", "+(-1*P/2+B)+")");const X=de==null?void 0:de.getBBox();B+=((X==null?void 0:X.height)??0)+d}),y.attr("style",a.style).attr("class","outer title-state").attr("x",-A/2-u).attr("y",-(P/2)-u).attr("width",A+a.padding).attr("height",P+a.padding),Gh(a,y),a.intersect=function(de){return yh.rect(a,de)},b}};let JD={};const pJ=async(i,a,u)=>{let d,p;if(a.link){let v;qt().securityLevel==="sandbox"?v="_top":a.linkTarget&&(v=a.linkTarget||"_blank"),d=i.insert("svg:a").attr("xlink:href",a.link).attr("target",v),p=await tGe[a.shape](d,a,u)}else p=await tGe[a.shape](i,a,u),d=p;return a.tooltip&&p.attr("title",a.tooltip),a.class&&p.attr("class","node default "+a.class),d.attr("data-node","true"),d.attr("data-id",a.id),JD[a.id]=d,a.haveCallback&&JD[a.id].attr("class",JD[a.id].attr("class")+" clickable"),d},Fen=(i,a)=>{JD[a.id]=i},Ren=()=>{JD={}},ive=i=>{const a=JD[i.id];Xe.trace("Transforming node",i.diff,i,"translate("+(i.x-i.width/2-5)+", "+i.width/2+")");const u=8,d=i.diff||0;return i.clusterNode?a.attr("transform","translate("+(i.x+d-i.width/2)+", "+(i.y-i.height/2-u)+")"):a.attr("transform","translate("+i.x+", "+i.y+")"),d},bJ=({flowchart:i})=>{var p,v;const a=((p=i==null?void 0:i.subGraphTitleMargin)==null?void 0:p.top)??0,u=((v=i==null?void 0:i.subGraphTitleMargin)==null?void 0:v.bottom)??0,d=a+u;return{subGraphTitleTopMargin:a,subGraphTitleBottomMargin:u,subGraphTitleTotalMargin:d}},jen={rect:(i,a)=>{Xe.info("Creating subgraph rect for ",a.id,a);const u=qt(),d=i.insert("g").attr("class","cluster"+(a.class?" "+a.class:"")).attr("id",a.id),p=d.insert("rect",":first-child"),v=h1(u.flowchart.htmlLabels),b=d.insert("g").attr("class","cluster-label"),y=a.labelType==="markdown"?fJ(b,a.labelText,{style:a.labelStyle,useHtmlLabels:v}):b.node().appendChild(Y2(a.labelText,a.labelStyle,void 0,!0));let E=y.getBBox();if(h1(u.flowchart.htmlLabels)){const j=y.children[0],W=Dr(y);E=j.getBoundingClientRect(),W.attr("width",E.width),W.attr("height",E.height)}const _=0*a.padding,A=_/2,P=a.width<=E.width+_?E.width+_:a.width;a.width<=E.width+_?a.diff=(E.width-a.width)/2-a.padding/2:a.diff=-a.padding/2,Xe.trace("Data ",a,JSON.stringify(a)),p.attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("x",a.x-P/2).attr("y",a.y-a.height/2-A).attr("width",P).attr("height",a.height+_);const{subGraphTitleTopMargin:R}=bJ(u);v?b.attr("transform",`translate(${a.x-E.width/2}, ${a.y-a.height/2+R})`):b.attr("transform",`translate(${a.x}, ${a.y-a.height/2+R})`);const B=p.node().getBBox();return a.width=B.width,a.height=B.height,a.intersect=function(j){return RR(a,j)},d},roundedWithTitle:(i,a)=>{const u=qt(),d=i.insert("g").attr("class",a.classes).attr("id",a.id),p=d.insert("rect",":first-child"),v=d.insert("g").attr("class","cluster-label"),b=d.append("rect"),y=v.node().appendChild(Y2(a.labelText,a.labelStyle,void 0,!0));let E=y.getBBox();if(h1(u.flowchart.htmlLabels)){const j=y.children[0],W=Dr(y);E=j.getBoundingClientRect(),W.attr("width",E.width),W.attr("height",E.height)}E=y.getBBox();const _=0*a.padding,A=_/2,P=a.width<=E.width+a.padding?E.width+a.padding:a.width;a.width<=E.width+a.padding?a.diff=(E.width+a.padding*0-a.width)/2:a.diff=-a.padding/2,p.attr("class","outer").attr("x",a.x-P/2-A).attr("y",a.y-a.height/2-A).attr("width",P+_).attr("height",a.height+_),b.attr("class","inner").attr("x",a.x-P/2-A).attr("y",a.y-a.height/2-A+E.height-1).attr("width",P+_).attr("height",a.height+_-E.height-3);const{subGraphTitleTopMargin:R}=bJ(u);v.attr("transform",`translate(${a.x-E.width/2}, ${a.y-a.height/2-a.padding/3+(h1(u.flowchart.htmlLabels)?5:3)+R})`);const B=p.node().getBBox();return a.height=B.height,a.intersect=function(j){return RR(a,j)},d},noteGroup:(i,a)=>{const u=i.insert("g").attr("class","note-cluster").attr("id",a.id),d=u.insert("rect",":first-child"),p=0*a.padding,v=p/2;d.attr("rx",a.rx).attr("ry",a.ry).attr("x",a.x-a.width/2-v).attr("y",a.y-a.height/2-v).attr("width",a.width+p).attr("height",a.height+p).attr("fill","none");const b=d.node().getBBox();return a.width=b.width,a.height=b.height,a.intersect=function(y){return RR(a,y)},u},divider:(i,a)=>{const u=i.insert("g").attr("class",a.classes).attr("id",a.id),d=u.insert("rect",":first-child"),p=0*a.padding,v=p/2;d.attr("class","divider").attr("x",a.x-a.width/2-v).attr("y",a.y-a.height/2).attr("width",a.width+p).attr("height",a.height+p);const b=d.node().getBBox();return a.width=b.width,a.height=b.height,a.diff=-a.padding/2,a.intersect=function(y){return RR(a,y)},u}};let nGe={};const $en=(i,a)=>{Xe.trace("Inserting cluster");const u=a.shape||"rect";nGe[a.id]=jen[u](i,a)},zen=()=>{nGe={}},F9={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function mJ(i,a){if(i===void 0||a===void 0)return{angle:0,deltaX:0,deltaY:0};i=vJ(i),a=vJ(a);const[u,d]=[i.x,i.y],[p,v]=[a.x,a.y],b=p-u,y=v-d;return{angle:Math.atan(y/b),deltaX:b,deltaY:y}}const vJ=i=>Array.isArray(i)?{x:i[0],y:i[1]}:i,rGe=i=>({x:function(a,u,d){let p=0;if(u===0&&Object.hasOwn(F9,i.arrowTypeStart)){const{angle:v,deltaX:b}=mJ(d[0],d[1]);p=F9[i.arrowTypeStart]*Math.cos(v)*(b>=0?1:-1)}else if(u===d.length-1&&Object.hasOwn(F9,i.arrowTypeEnd)){const{angle:v,deltaX:b}=mJ(d[d.length-1],d[d.length-2]);p=F9[i.arrowTypeEnd]*Math.cos(v)*(b>=0?1:-1)}return vJ(a).x+p},y:function(a,u,d){let p=0;if(u===0&&Object.hasOwn(F9,i.arrowTypeStart)){const{angle:v,deltaY:b}=mJ(d[0],d[1]);p=F9[i.arrowTypeStart]*Math.abs(Math.sin(v))*(b>=0?1:-1)}else if(u===d.length-1&&Object.hasOwn(F9,i.arrowTypeEnd)){const{angle:v,deltaY:b}=mJ(d[d.length-1],d[d.length-2]);p=F9[i.arrowTypeEnd]*Math.abs(Math.sin(v))*(b>=0?1:-1)}return vJ(a).y+p}}),iGe=(i,a,u,d,p)=>{a.arrowTypeStart&&sGe(i,"start",a.arrowTypeStart,u,d,p),a.arrowTypeEnd&&sGe(i,"end",a.arrowTypeEnd,u,d,p)},qen={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},sGe=(i,a,u,d,p,v)=>{const b=qen[u];if(!b){Xe.warn(`Unknown arrow type: ${u}`);return}const y=a==="start"?"Start":"End";i.attr(`marker-${a}`,`url(${d}#${p}_${v}-${b}${y})`)};let wJ={},Vd={};const Hen=()=>{wJ={},Vd={}},sve=(i,a)=>{const u=h1(qt().flowchart.htmlLabels),d=a.labelType==="markdown"?fJ(i,a.label,{style:a.labelStyle,useHtmlLabels:u,addSvgBackground:!0}):Y2(a.label,a.labelStyle),p=i.insert("g").attr("class","edgeLabel"),v=p.insert("g").attr("class","label");v.node().appendChild(d);let b=d.getBBox();if(u){const E=d.children[0],_=Dr(d);b=E.getBoundingClientRect(),_.attr("width",b.width),_.attr("height",b.height)}v.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),wJ[a.id]=p,a.width=b.width,a.height=b.height;let y;if(a.startLabelLeft){const E=Y2(a.startLabelLeft,a.labelStyle),_=i.insert("g").attr("class","edgeTerminals"),A=_.insert("g").attr("class","inner");y=A.node().appendChild(E);const P=E.getBBox();A.attr("transform","translate("+-P.width/2+", "+-P.height/2+")"),Vd[a.id]||(Vd[a.id]={}),Vd[a.id].startLeft=_,yJ(y,a.startLabelLeft)}if(a.startLabelRight){const E=Y2(a.startLabelRight,a.labelStyle),_=i.insert("g").attr("class","edgeTerminals"),A=_.insert("g").attr("class","inner");y=_.node().appendChild(E),A.node().appendChild(E);const P=E.getBBox();A.attr("transform","translate("+-P.width/2+", "+-P.height/2+")"),Vd[a.id]||(Vd[a.id]={}),Vd[a.id].startRight=_,yJ(y,a.startLabelRight)}if(a.endLabelLeft){const E=Y2(a.endLabelLeft,a.labelStyle),_=i.insert("g").attr("class","edgeTerminals"),A=_.insert("g").attr("class","inner");y=A.node().appendChild(E);const P=E.getBBox();A.attr("transform","translate("+-P.width/2+", "+-P.height/2+")"),_.node().appendChild(E),Vd[a.id]||(Vd[a.id]={}),Vd[a.id].endLeft=_,yJ(y,a.endLabelLeft)}if(a.endLabelRight){const E=Y2(a.endLabelRight,a.labelStyle),_=i.insert("g").attr("class","edgeTerminals"),A=_.insert("g").attr("class","inner");y=A.node().appendChild(E);const P=E.getBBox();A.attr("transform","translate("+-P.width/2+", "+-P.height/2+")"),_.node().appendChild(E),Vd[a.id]||(Vd[a.id]={}),Vd[a.id].endRight=_,yJ(y,a.endLabelRight)}return d};function yJ(i,a){qt().flowchart.htmlLabels&&i&&(i.style.width=a.length*9+"px",i.style.height="12px")}const aGe=(i,a)=>{Xe.debug("Moving label abc88 ",i.id,i.label,wJ[i.id],a);let u=a.updatedPath?a.updatedPath:a.originalPath;const d=qt(),{subGraphTitleTotalMargin:p}=bJ(d);if(i.label){const v=wJ[i.id];let b=i.x,y=i.y;if(u){const E=So.calcLabelPosition(u);Xe.debug("Moving label "+i.label+" from (",b,",",y,") to (",E.x,",",E.y,") abc88"),a.updatedPath&&(b=E.x,y=E.y)}v.attr("transform",`translate(${b}, ${y+p/2})`)}if(i.startLabelLeft){const v=Vd[i.id].startLeft;let b=i.x,y=i.y;if(u){const E=So.calcTerminalLabelPosition(i.arrowTypeStart?10:0,"start_left",u);b=E.x,y=E.y}v.attr("transform",`translate(${b}, ${y})`)}if(i.startLabelRight){const v=Vd[i.id].startRight;let b=i.x,y=i.y;if(u){const E=So.calcTerminalLabelPosition(i.arrowTypeStart?10:0,"start_right",u);b=E.x,y=E.y}v.attr("transform",`translate(${b}, ${y})`)}if(i.endLabelLeft){const v=Vd[i.id].endLeft;let b=i.x,y=i.y;if(u){const E=So.calcTerminalLabelPosition(i.arrowTypeEnd?10:0,"end_left",u);b=E.x,y=E.y}v.attr("transform",`translate(${b}, ${y})`)}if(i.endLabelRight){const v=Vd[i.id].endRight;let b=i.x,y=i.y;if(u){const E=So.calcTerminalLabelPosition(i.arrowTypeEnd?10:0,"end_right",u);b=E.x,y=E.y}v.attr("transform",`translate(${b}, ${y})`)}},Uen=(i,a)=>{const u=i.x,d=i.y,p=Math.abs(a.x-u),v=Math.abs(a.y-d),b=i.width/2,y=i.height/2;return p>=b||v>=y},Ven=(i,a,u)=>{Xe.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(a)} + insidePoint : ${JSON.stringify(u)} + node : x:${i.x} y:${i.y} w:${i.width} h:${i.height}`);const d=i.x,p=i.y,v=Math.abs(d-u.x),b=i.width/2;let y=u.xMath.abs(d-a.x)*E){let P=u.y{Xe.debug("abc88 cutPathAtIntersect",i,a);let u=[],d=i[0],p=!1;return i.forEach(v=>{if(!Uen(a,v)&&!p){const b=Ven(a,d,v);let y=!1;u.forEach(E=>{y=y||E.x===b.x&&E.y===b.y}),u.some(E=>E.x===b.x&&E.y===b.y)||u.push(b),p=!0}else d=v,p||u.push(v)}),u},cGe=function(i,a,u,d,p,v,b){let y=u.points;Xe.debug("abc88 InsertEdge: edge=",u,"e=",a);let E=!1;const _=v.node(a.v);var A=v.node(a.w);A!=null&&A.intersect&&(_!=null&&_.intersect)&&(y=y.slice(1,u.points.length-1),y.unshift(_.intersect(y[0])),y.push(A.intersect(y[y.length-1]))),u.toCluster&&(Xe.debug("to cluster abc88",d[u.toCluster]),y=oGe(u.points,d[u.toCluster].node),E=!0),u.fromCluster&&(Xe.debug("from cluster abc88",d[u.fromCluster]),y=oGe(y.reverse(),d[u.fromCluster].node).reverse(),E=!0);const P=y.filter(ge=>!Number.isNaN(ge.y));let R=VF;u.curve&&(p==="graph"||p==="flowchart")&&(R=u.curve);const{x:B,y:j}=rGe(u),W=E7().x(B).y(j).curve(R);let ee;switch(u.thickness){case"normal":ee="edge-thickness-normal";break;case"thick":ee="edge-thickness-thick";break;case"invisible":ee="edge-thickness-thick";break;default:ee=""}switch(u.pattern){case"solid":ee+=" edge-pattern-solid";break;case"dotted":ee+=" edge-pattern-dotted";break;case"dashed":ee+=" edge-pattern-dashed";break}const ie=i.append("path").attr("d",W(P)).attr("id",u.id).attr("class"," "+ee+(u.classes?" "+u.classes:"")).attr("style",u.style);let oe="";(qt().flowchart.arrowMarkerAbsolute||qt().state.arrowMarkerAbsolute)&&(oe=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,oe=oe.replace(/\(/g,"\\("),oe=oe.replace(/\)/g,"\\)")),iGe(ie,u,oe,b,p);let be={};return E&&(be.updatedPath=y),be.originalPath=u.points,be},uGe=async(i,a,u,d,p,v)=>{Xe.info("Graph in recursive render: XXX",H7(a),p);const b=a.graph().rankdir;Xe.trace("Dir in recursive render - dir:",b);const y=i.insert("g").attr("class","root");a.nodes()?Xe.info("Recursive render XXX",a.nodes()):Xe.info("No nodes found for",a),a.edges().length>0&&Xe.trace("Recursive edges",a.edge(a.edges()[0]));const E=y.insert("g").attr("class","clusters"),_=y.insert("g").attr("class","edgePaths"),A=y.insert("g").attr("class","edgeLabels"),P=y.insert("g").attr("class","nodes");await Promise.all(a.nodes().map(async function(j){const W=a.node(j);if(p!==void 0){const ee=JSON.parse(JSON.stringify(p.clusterData));Xe.info("Setting data for cluster XXX (",j,") ",ee,p),a.setNode(p.id,ee),a.parent(j)||(Xe.trace("Setting parent",j,p.id),a.setParent(j,p.id,ee))}if(Xe.info("(Insert) Node XXX"+j+": "+JSON.stringify(a.node(j))),W&&W.clusterNode){Xe.info("Cluster identified",j,W.width,a.node(j));const ee=await uGe(P,W.graph,u,d,a.node(j),v),ie=ee.elem;Gh(W,ie),W.diff=ee.diff||0,Xe.info("Node bounds (abc123)",j,W,W.width,W.x,W.y),Fen(ie,W),Xe.warn("Recursive render complete ",ie,W)}else a.children(j).length>0?(Xe.info("Cluster - the non recursive path XXX",j,W.id,W,a),Xe.info(FR(W.id,a)),_o[W.id]={id:FR(W.id,a),node:W}):(Xe.info("Node - the non recursive path",j,W.id,W),await pJ(P,a.node(j),b))})),a.edges().forEach(function(j){const W=a.edge(j.v,j.w,j.name);Xe.info("Edge "+j.v+" -> "+j.w+": "+JSON.stringify(j)),Xe.info("Edge "+j.v+" -> "+j.w+": ",j," ",JSON.stringify(a.edge(j))),Xe.info("Fix",_o,"ids:",j.v,j.w,"Translating: ",_o[j.v],_o[j.w]),sve(A,W)}),a.edges().forEach(function(j){Xe.info("Edge "+j.v+" -> "+j.w+": "+JSON.stringify(j))}),Xe.info("#############################################"),Xe.info("### Layout ###"),Xe.info("#############################################"),Xe.info(a),XD(a),Xe.info("Graph after layout:",H7(a));let R=0;const{subGraphTitleTotalMargin:B}=bJ(v);return len(a).forEach(function(j){const W=a.node(j);Xe.info("Position "+j+": "+JSON.stringify(a.node(j))),Xe.info("Position "+j+": ("+W.x,","+W.y,") width: ",W.width," height: ",W.height),W&&W.clusterNode?(W.y+=B,ive(W)):a.children(j).length>0?(W.height+=B,$en(E,W),_o[W.id].node=W):(W.y+=B/2,ive(W))}),a.edges().forEach(function(j){const W=a.edge(j);Xe.info("Edge "+j.v+" -> "+j.w+": "+JSON.stringify(W),W),W.points.forEach(ie=>ie.y+=B/2);const ee=cGe(_,j,W,_o,u,a,d);aGe(W,ee)}),a.nodes().forEach(function(j){const W=a.node(j);Xe.info(j,W.type,W.diff),W.type==="group"&&(R=W.diff)}),{elem:y,diff:R}},ave=async(i,a,u,d,p)=>{Ume(i,u,d,p),Ren(),Hen(),zen(),oen(),Xe.warn("Graph at first:",JSON.stringify(H7(a))),uen(a),Xe.warn("Graph after:",JSON.stringify(H7(a)));const v=qt();await uGe(i,a,d,p,void 0,v)},lGe={},Gen=function(i){const a=Object.keys(i);for(const u of a)lGe[u]=i[u]},hGe=async function(i,a,u,d,p,v){const b=d.select(`[id="${u}"]`),y=Object.keys(i);for(const E of y){const _=i[E];let A="default";_.classes.length>0&&(A=_.classes.join(" ")),A=A+" flowchart-label";const P=gm(_.styles);let R=_.text!==void 0?_.text:_.id,B;if(Xe.info("vertex",_,_.labelType),_.labelType==="markdown")Xe.info("vertex",_,_.labelType);else if(h1(qt().flowchart.htmlLabels))B=Bme(b,{label:R}).node(),B.parentNode.removeChild(B);else{const ie=p.createElementNS("http://www.w3.org/2000/svg","text");ie.setAttribute("style",P.labelStyle.replace("color:","fill:"));const oe=R.split(oi.lineBreakRegex);for(const be of oe){const ge=p.createElementNS("http://www.w3.org/2000/svg","tspan");ge.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),ge.setAttribute("dy","1em"),ge.setAttribute("x","1"),ge.textContent=be,ie.appendChild(ge)}B=ie}let j=0,W="";switch(_.type){case"round":j=5,W="rect";break;case"square":W="rect";break;case"diamond":W="question";break;case"hexagon":W="hexagon";break;case"odd":W="rect_left_inv_arrow";break;case"lean_right":W="lean_right";break;case"lean_left":W="lean_left";break;case"trapezoid":W="trapezoid";break;case"inv_trapezoid":W="inv_trapezoid";break;case"odd_right":W="rect_left_inv_arrow";break;case"circle":W="circle";break;case"ellipse":W="ellipse";break;case"stadium":W="stadium";break;case"subroutine":W="subroutine";break;case"cylinder":W="cylinder";break;case"group":W="rect";break;case"doublecircle":W="doublecircle";break;default:W="rect"}const ee=await SC(R,qt());a.setNode(_.id,{labelStyle:P.labelStyle,shape:W,labelText:ee,labelType:_.labelType,rx:j,ry:j,class:A,style:P.style,id:_.id,link:_.link,linkTarget:_.linkTarget,tooltip:v.db.getTooltip(_.id)||"",domId:v.db.lookUpDomId(_.id),haveCallback:_.haveCallback,width:_.type==="group"?500:void 0,dir:_.dir,type:_.type,props:_.props,padding:qt().flowchart.padding}),Xe.info("setNode",{labelStyle:P.labelStyle,labelType:_.labelType,shape:W,labelText:ee,rx:j,ry:j,class:A,style:P.style,id:_.id,domId:v.db.lookUpDomId(_.id),width:_.type==="group"?500:void 0,type:_.type,dir:_.dir,props:_.props,padding:qt().flowchart.padding})}},fGe=async function(i,a,u){Xe.info("abc78 edges = ",i);let d=0,p={},v,b;if(i.defaultStyle!==void 0){const y=gm(i.defaultStyle);v=y.style,b=y.labelStyle}for(const y of i){d++;const E="L-"+y.start+"-"+y.end;p[E]===void 0?(p[E]=0,Xe.info("abc78 new entry",E,p[E])):(p[E]++,Xe.info("abc78 new entry",E,p[E]));let _=E+"-"+p[E];Xe.info("abc78 new link id to be used is",E,_,p[E]);const A="LS-"+y.start,P="LE-"+y.end,R={style:"",labelStyle:""};switch(R.minlen=y.length||1,y.type==="arrow_open"?R.arrowhead="none":R.arrowhead="normal",R.arrowTypeStart="arrow_open",R.arrowTypeEnd="arrow_open",y.type){case"double_arrow_cross":R.arrowTypeStart="arrow_cross";case"arrow_cross":R.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":R.arrowTypeStart="arrow_point";case"arrow_point":R.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":R.arrowTypeStart="arrow_circle";case"arrow_circle":R.arrowTypeEnd="arrow_circle";break}let B="",j="";switch(y.stroke){case"normal":B="fill:none;",v!==void 0&&(B=v),b!==void 0&&(j=b),R.thickness="normal",R.pattern="solid";break;case"dotted":R.thickness="normal",R.pattern="dotted",R.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":R.thickness="thick",R.pattern="solid",R.style="stroke-width: 3.5px;fill:none;";break;case"invisible":R.thickness="invisible",R.pattern="solid",R.style="stroke-width: 0;fill:none;";break}if(y.style!==void 0){const W=gm(y.style);B=W.style,j=W.labelStyle}R.style=R.style+=B,R.labelStyle=R.labelStyle+=j,y.interpolate!==void 0?R.curve=qv(y.interpolate,Sp):i.defaultInterpolate!==void 0?R.curve=qv(i.defaultInterpolate,Sp):R.curve=qv(lGe.curve,Sp),y.text===void 0?y.style!==void 0&&(R.arrowheadStyle="fill: #333"):(R.arrowheadStyle="fill: #333",R.labelpos="c"),R.labelType=y.labelType,R.label=await SC(y.text.replace(oi.lineBreakRegex,` +`),qt()),y.style===void 0&&(R.style=R.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),R.labelStyle=R.labelStyle.replace("color:","fill:"),R.id=_,R.classes="flowchart-link "+A+" "+P,a.setEdge(y.start,y.end,R,d)}},ove={setConf:Gen,addVertices:hGe,addEdges:fGe,getClasses:function(i,a){return a.db.getClasses()},draw:async function(i,a,u,d){Xe.info("Drawing flowchart");let p=d.db.getDirection();p===void 0&&(p="TD");const{securityLevel:v,flowchart:b}=qt(),y=b.nodeSpacing||50,E=b.rankSpacing||50;let _;v==="sandbox"&&(_=Dr("#i"+a));const A=Dr(v==="sandbox"?_.nodes()[0].contentDocument.body:"body"),P=v==="sandbox"?_.nodes()[0].contentDocument:document,R=new R0({multigraph:!0,compound:!0}).setGraph({rankdir:p,nodesep:y,ranksep:E,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let B;const j=d.db.getSubGraphs();Xe.info("Subgraphs - ",j);for(let ae=j.length-1;ae>=0;ae--)B=j[ae],Xe.info("Subgraph - ",B),d.db.addVertex(B.id,{text:B.title,type:B.labelType},"group",void 0,B.classes,B.dir);const W=d.db.getVertices(),ee=d.db.getEdges();Xe.info("Edges",ee);let ie=0;for(ie=j.length-1;ie>=0;ie--){B=j[ie],VBe("cluster").append("text");for(let ae=0;ae{const u=XRe,d=u(i,"r"),p=u(i,"g"),v=u(i,"b");return _C(d,p,v,a)},dGe=i=>`.label { + font-family: ${i.fontFamily}; + color: ${i.nodeTextColor||i.textColor}; + } + .cluster-label text { + fill: ${i.titleColor}; + } + .cluster-label span,p { + color: ${i.titleColor}; + } + + .label text,span,p { + fill: ${i.nodeTextColor||i.textColor}; + color: ${i.nodeTextColor||i.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${i.arrowheadColor}; + } + + .edgePath .path { + stroke: ${i.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${i.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${i.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${i.edgeLabelBackground}; + fill: ${i.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${Ken(i.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${i.clusterBkg}; + stroke: ${i.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${i.titleColor}; + } + + .cluster span,p { + color: ${i.titleColor}; + } + /* .cluster div { + color: ${i.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${i.fontFamily}; + font-size: 12px; + background: ${i.tertiaryColor}; + border: 1px solid ${i.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; + } +`,Wen=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:lme,db:UC,renderer:ove,styles:dGe,init:i=>{i.flowchart||(i.flowchart={}),i.flowchart.arrowMarkerAbsolute=i.arrowMarkerAbsolute,WQt.setConf(i.flowchart),UC.clear(),UC.setGen("gen-1")}}},Symbol.toStringTag,{value:"Module"})),Yen=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:lme,db:UC,renderer:ove,styles:dGe,init:i=>{i.flowchart||(i.flowchart={}),i.flowchart.arrowMarkerAbsolute=i.arrowMarkerAbsolute,c$t({flowchart:{arrowMarkerAbsolute:i.arrowMarkerAbsolute}}),ove.setConf(i.flowchart),UC.clear(),UC.setGen("gen-2")}}},Symbol.toStringTag,{value:"Module"}));var cve=function(){var i=function(de,X,pe,G){for(pe=pe||{},G=de.length;G--;pe[de[G]]=X);return pe},a=[6,8,10,20,22,24,26,27,28],u=[1,10],d=[1,11],p=[1,12],v=[1,13],b=[1,14],y=[1,15],E=[1,21],_=[1,22],A=[1,23],P=[1,24],R=[1,25],B=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],j=[1,34],W=[27,28,46,47],ee=[41,42,43,44,45],ie=[17,34],oe=[1,54],be=[1,53],ge=[17,34,36,38],ae={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:function(X,pe,G,xe,U,Be,Pe){var je=Be.length-1;switch(U){case 1:break;case 2:this.$=[];break;case 3:Be[je-1].push(Be[je]),this.$=Be[je-1];break;case 4:case 5:this.$=Be[je];break;case 6:case 7:this.$=[];break;case 8:xe.addEntity(Be[je-4]),xe.addEntity(Be[je-2]),xe.addRelationship(Be[je-4],Be[je],Be[je-2],Be[je-3]);break;case 9:xe.addEntity(Be[je-3]),xe.addAttributes(Be[je-3],Be[je-1]);break;case 10:xe.addEntity(Be[je-2]);break;case 11:xe.addEntity(Be[je]);break;case 12:xe.addEntity(Be[je-6],Be[je-4]),xe.addAttributes(Be[je-6],Be[je-1]);break;case 13:xe.addEntity(Be[je-5],Be[je-3]);break;case 14:xe.addEntity(Be[je-3],Be[je-1]);break;case 15:case 16:this.$=Be[je].trim(),xe.setAccTitle(this.$);break;case 17:case 18:this.$=Be[je].trim(),xe.setAccDescription(this.$);break;case 19:case 43:this.$=Be[je];break;case 20:case 41:case 42:this.$=Be[je].replace(/"/g,"");break;case 21:case 29:this.$=[Be[je]];break;case 22:Be[je].push(Be[je-1]),this.$=Be[je];break;case 23:this.$={attributeType:Be[je-1],attributeName:Be[je]};break;case 24:this.$={attributeType:Be[je-2],attributeName:Be[je-1],attributeKeyTypeList:Be[je]};break;case 25:this.$={attributeType:Be[je-2],attributeName:Be[je-1],attributeComment:Be[je]};break;case 26:this.$={attributeType:Be[je-3],attributeName:Be[je-2],attributeKeyTypeList:Be[je-1],attributeComment:Be[je]};break;case 27:case 28:case 31:this.$=Be[je];break;case 30:Be[je-2].push(Be[je]),this.$=Be[je-2];break;case 32:this.$=Be[je].replace(/"/g,"");break;case 33:this.$={cardA:Be[je],relType:Be[je-1],cardB:Be[je-2]};break;case 34:this.$=xe.Cardinality.ZERO_OR_ONE;break;case 35:this.$=xe.Cardinality.ZERO_OR_MORE;break;case 36:this.$=xe.Cardinality.ONE_OR_MORE;break;case 37:this.$=xe.Cardinality.ONLY_ONE;break;case 38:this.$=xe.Cardinality.MD_PARENT;break;case 39:this.$=xe.Identification.NON_IDENTIFYING;break;case 40:this.$=xe.Identification.IDENTIFYING;break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:u,22:d,24:p,26:v,27:b,28:y},i(a,[2,7],{1:[2,1]}),i(a,[2,3]),{9:16,11:9,20:u,22:d,24:p,26:v,27:b,28:y},i(a,[2,5]),i(a,[2,6]),i(a,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:E,42:_,43:A,44:P,45:R}),{21:[1,26]},{23:[1,27]},{25:[1,28]},i(a,[2,18]),i(B,[2,19]),i(B,[2,20]),i(a,[2,4]),{11:29,27:b,28:y},{16:30,17:[1,31],29:32,30:33,34:j},{11:35,27:b,28:y},{40:36,46:[1,37],47:[1,38]},i(W,[2,34]),i(W,[2,35]),i(W,[2,36]),i(W,[2,37]),i(W,[2,38]),i(a,[2,15]),i(a,[2,16]),i(a,[2,17]),{13:[1,39]},{17:[1,40]},i(a,[2,10]),{16:41,17:[2,21],29:32,30:33,34:j},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:E,42:_,43:A,44:P,45:R},i(ee,[2,39]),i(ee,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},i(a,[2,9]),{17:[2,22]},i(ie,[2,23],{32:50,33:51,35:52,37:oe,38:be}),i([17,34,37,38],[2,28]),i(a,[2,14],{15:[1,55]}),i([27,28],[2,33]),i(a,[2,8]),i(a,[2,41]),i(a,[2,42]),i(a,[2,43]),i(ie,[2,24],{33:56,36:[1,57],38:be}),i(ie,[2,25]),i(ge,[2,29]),i(ie,[2,32]),i(ge,[2,31]),{16:58,17:[1,59],29:32,30:33,34:j},i(ie,[2,26]),{35:60,37:oe},{17:[1,61]},i(a,[2,13]),i(ge,[2,30]),i(a,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:function(X,pe){if(pe.recoverable)this.trace(X);else{var G=new Error(X);throw G.hash=pe,G}},parse:function(X){var pe=this,G=[0],xe=[],U=[null],Be=[],Pe=this.table,je="",Ie=0,Se=0,Ce=2,ke=1,Ke=Be.slice.call(arguments,1),zt=Object.create(this.lexer),Ne={yy:{}};for(var pn in this.yy)Object.prototype.hasOwnProperty.call(this.yy,pn)&&(Ne.yy[pn]=this.yy[pn]);zt.setInput(X,Ne.yy),Ne.yy.lexer=zt,Ne.yy.parser=this,typeof zt.yylloc>"u"&&(zt.yylloc={});var Tt=zt.yylloc;Be.push(Tt);var Et=zt.options&&zt.options.ranges;typeof Ne.yy.parseError=="function"?this.parseError=Ne.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Wt(){var Ri;return Ri=xe.pop()||zt.lex()||ke,typeof Ri!="number"&&(Ri instanceof Array&&(xe=Ri,Ri=xe.pop()),Ri=pe.symbols_[Ri]||Ri),Ri}for(var un,yt,Bt,Ze,Dt={},kt,Nn,ht,qr;;){if(yt=G[G.length-1],this.defaultActions[yt]?Bt=this.defaultActions[yt]:((un===null||typeof un>"u")&&(un=Wt()),Bt=Pe[yt]&&Pe[yt][un]),typeof Bt>"u"||!Bt.length||!Bt[0]){var xt="";qr=[];for(kt in Pe[yt])this.terminals_[kt]&&kt>Ce&&qr.push("'"+this.terminals_[kt]+"'");zt.showPosition?xt="Parse error on line "+(Ie+1)+`: +`+zt.showPosition()+` +Expecting `+qr.join(", ")+", got '"+(this.terminals_[un]||un)+"'":xt="Parse error on line "+(Ie+1)+": Unexpected "+(un==ke?"end of input":"'"+(this.terminals_[un]||un)+"'"),this.parseError(xt,{text:zt.match,token:this.terminals_[un]||un,line:zt.yylineno,loc:Tt,expected:qr})}if(Bt[0]instanceof Array&&Bt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+yt+", token: "+un);switch(Bt[0]){case 1:G.push(un),U.push(zt.yytext),Be.push(zt.yylloc),G.push(Bt[1]),un=null,Se=zt.yyleng,je=zt.yytext,Ie=zt.yylineno,Tt=zt.yylloc;break;case 2:if(Nn=this.productions_[Bt[1]][1],Dt.$=U[U.length-Nn],Dt._$={first_line:Be[Be.length-(Nn||1)].first_line,last_line:Be[Be.length-1].last_line,first_column:Be[Be.length-(Nn||1)].first_column,last_column:Be[Be.length-1].last_column},Et&&(Dt._$.range=[Be[Be.length-(Nn||1)].range[0],Be[Be.length-1].range[1]]),Ze=this.performAction.apply(Dt,[je,Se,Ie,Ne.yy,Bt[1],U,Be].concat(Ke)),typeof Ze<"u")return Ze;Nn&&(G=G.slice(0,-1*Nn*2),U=U.slice(0,-1*Nn),Be=Be.slice(0,-1*Nn)),G.push(this.productions_[Bt[1]][0]),U.push(Dt.$),Be.push(Dt._$),ht=Pe[G[G.length-2]][G[G.length-1]],G.push(ht);break;case 3:return!0}}return!0}},ne=function(){var de={EOF:1,parseError:function(pe,G){if(this.yy.parser)this.yy.parser.parseError(pe,G);else throw new Error(pe)},setInput:function(X,pe){return this.yy=pe||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},input:function(){var X=this._input[0];this.yytext+=X,this.yyleng++,this.offset++,this.match+=X,this.matched+=X;var pe=X.match(/(?:\r\n?|\n).*/g);return pe?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),X},unput:function(X){var pe=X.length,G=X.split(/(?:\r\n?|\n)/g);this._input=X+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-pe),this.offset-=pe;var xe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),G.length-1&&(this.yylineno-=G.length-1);var U=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:G?(G.length===xe.length?this.yylloc.first_column:0)+xe[xe.length-G.length].length-G[0].length:this.yylloc.first_column-pe},this.options.ranges&&(this.yylloc.range=[U[0],U[0]+this.yyleng-pe]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(X){this.unput(this.match.slice(X))},pastInput:function(){var X=this.matched.substr(0,this.matched.length-this.match.length);return(X.length>20?"...":"")+X.substr(-20).replace(/\n/g,"")},upcomingInput: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,"")},showPosition:function(){var X=this.pastInput(),pe=new Array(X.length+1).join("-");return X+this.upcomingInput()+` +`+pe+"^"},test_match:function(X,pe){var G,xe,U;if(this.options.backtrack_lexer&&(U={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(U.yylloc.range=this.yylloc.range.slice(0))),xe=X[0].match(/(?:\r\n?|\n).*/g),xe&&(this.yylineno+=xe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:xe?xe[xe.length-1].length-xe[xe.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],G=this.performAction.call(this,this.yy,this,pe,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),G)return G;if(this._backtrack){for(var Be in U)this[Be]=U[Be];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var X,pe,G,xe;this._more||(this.yytext="",this.match="");for(var U=this._currentRules(),Be=0;Bepe[0].length)){if(pe=G,xe=Be,this.options.backtrack_lexer){if(X=this.test_match(G,U[Be]),X!==!1)return X;if(this._backtrack){pe=!1;continue}else return!1}else if(!this.options.flex)break}return pe?(X=this.test_match(pe,U[xe]),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})},lex:function(){var pe=this.next();return pe||this.lex()},begin:function(pe){this.conditionStack.push(pe)},popState:function(){var pe=this.conditionStack.length-1;return pe>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(pe){return pe=this.conditionStack.length-1-Math.abs(pe||0),pe>=0?this.conditionStack[pe]:"INITIAL"},pushState:function(pe){this.begin(pe)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(pe,G,xe,U){switch(xe){case 0:return this.begin("acc_title"),22;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),24;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 10;case 8:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;case 14:return 36;case 15:break;case 16:return 37;case 17:return 34;case 18:return 34;case 19:return 38;case 20:break;case 21:return this.popState(),17;case 22:return G.yytext[0];case 23:return 18;case 24:return 19;case 25:return 41;case 26:return 43;case 27:return 43;case 28:return 43;case 29:return 41;case 30:return 41;case 31:return 42;case 32:return 42;case 33:return 42;case 34:return 42;case 35:return 42;case 36:return 43;case 37:return 42;case 38:return 43;case 39:return 44;case 40:return 44;case 41:return 44;case 42:return 44;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 45;case 47:return 46;case 48:return 47;case 49:return 47;case 50:return 46;case 51:return 46;case 52:return 46;case 53:return 27;case 54:return G.yytext[0];case 55:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}};return de}();ae.lexer=ne;function se(){this.yy={}}return se.prototype=ae,ae.Parser=se,new se}();cve.parser=cve;const Xen=cve;let R9={},uve=[];const Qen={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},Jen={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},gGe=function(i,a=void 0){return R9[i]===void 0?(R9[i]={attributes:[],alias:a},Xe.info("Added new entity :",i)):R9[i]&&!R9[i].alias&&a&&(R9[i].alias=a,Xe.info(`Add alias '${a}' to entity '${i}'`)),R9[i]},Zen={Cardinality:Qen,Identification:Jen,getConfig:()=>qt().er,addEntity:gGe,addAttributes:function(i,a){let u=gGe(i),d;for(d=a.length-1;d>=0;d--)u.attributes.push(a[d]),Xe.debug("Added attribute ",a[d].attributeName)},getEntities:()=>R9,addRelationship:function(i,a,u,d){let p={entityA:i,roleA:a,entityB:u,relSpec:d};uve.push(p),Xe.debug("Added new relationship :",p)},getRelationships:()=>uve,clear:function(){R9={},uve=[],Rg()},setAccTitle:jg,getAccTitle:Mp,setAccDescription:Dp,getAccDescription:Ip,setDiagramTitle:pm,getDiagramTitle:Op},Y3={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},X3={ERMarkers:Y3,insertMarkers:function(i,a){let u;i.append("defs").append("marker").attr("id",Y3.MD_PARENT_START).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",Y3.MD_PARENT_END).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",Y3.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),i.append("defs").append("marker").attr("id",Y3.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),u=i.append("defs").append("marker").attr("id",Y3.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),u.append("circle").attr("stroke",a.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),u.append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M9,0 L9,18"),u=i.append("defs").append("marker").attr("id",Y3.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),u.append("circle").attr("stroke",a.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),u.append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M21,0 L21,18"),i.append("defs").append("marker").attr("id",Y3.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),i.append("defs").append("marker").attr("id",Y3.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),u=i.append("defs").append("marker").attr("id",Y3.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),u.append("circle").attr("stroke",a.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),u.append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),u=i.append("defs").append("marker").attr("id",Y3.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),u.append("circle").attr("stroke",a.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),u.append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")}},etn=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function ttn(i){return typeof i=="string"&&etn.test(i)}const Gd=[];for(let i=0;i<256;++i)Gd.push((i+256).toString(16).slice(1));function ntn(i,a=0){return Gd[i[a+0]]+Gd[i[a+1]]+Gd[i[a+2]]+Gd[i[a+3]]+"-"+Gd[i[a+4]]+Gd[i[a+5]]+"-"+Gd[i[a+6]]+Gd[i[a+7]]+"-"+Gd[i[a+8]]+Gd[i[a+9]]+"-"+Gd[i[a+10]]+Gd[i[a+11]]+Gd[i[a+12]]+Gd[i[a+13]]+Gd[i[a+14]]+Gd[i[a+15]]}function rtn(i){if(!ttn(i))throw TypeError("Invalid UUID");let a;const u=new Uint8Array(16);return u[0]=(a=parseInt(i.slice(0,8),16))>>>24,u[1]=a>>>16&255,u[2]=a>>>8&255,u[3]=a&255,u[4]=(a=parseInt(i.slice(9,13),16))>>>8,u[5]=a&255,u[6]=(a=parseInt(i.slice(14,18),16))>>>8,u[7]=a&255,u[8]=(a=parseInt(i.slice(19,23),16))>>>8,u[9]=a&255,u[10]=(a=parseInt(i.slice(24,36),16))/1099511627776&255,u[11]=a/4294967296&255,u[12]=a>>>24&255,u[13]=a>>>16&255,u[14]=a>>>8&255,u[15]=a&255,u}function itn(i){i=unescape(encodeURIComponent(i));const a=[];for(let u=0;u>>32-a}function utn(i){const a=[1518500249,1859775393,2400959708,3395469782],u=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof i=="string"){const b=unescape(encodeURIComponent(i));i=[];for(let y=0;y>>0;R=P,P=A,A=lve(_,30)>>>0,_=E,E=W}u[0]=u[0]+E>>>0,u[1]=u[1]+_>>>0,u[2]=u[2]+A>>>0,u[3]=u[3]+P>>>0,u[4]=u[4]+R>>>0}return[u[0]>>24&255,u[0]>>16&255,u[0]>>8&255,u[0]&255,u[1]>>24&255,u[1]>>16&255,u[1]>>8&255,u[1]&255,u[2]>>24&255,u[2]>>16&255,u[2]>>8&255,u[2]&255,u[3]>>24&255,u[3]>>16&255,u[3]>>8&255,u[3]&255,u[4]>>24&255,u[4]>>16&255,u[4]>>8&255,u[4]&255]}const ltn=otn("v5",80,utn),htn=/[^\dA-Za-z](\W)*/g;let p1={},jR=new Map;const ftn=function(i){const a=Object.keys(i);for(const u of a)p1[u]=i[u]},dtn=(i,a,u)=>{const d=p1.entityPadding/3,p=p1.entityPadding/3,v=p1.fontSize*.85,b=a.node().getBBox(),y=[];let E=!1,_=!1,A=0,P=0,R=0,B=0,j=b.height+d*2,W=1;u.forEach(be=>{be.attributeKeyTypeList!==void 0&&be.attributeKeyTypeList.length>0&&(E=!0),be.attributeComment!==void 0&&(_=!0)}),u.forEach(be=>{const ge=`${a.node().id}-attr-${W}`;let ae=0;const ne=JF(be.attributeType),se=i.append("text").classed("er entityLabel",!0).attr("id",`${ge}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",qt().fontFamily).style("font-size",v+"px").text(ne),de=i.append("text").classed("er entityLabel",!0).attr("id",`${ge}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",qt().fontFamily).style("font-size",v+"px").text(be.attributeName),X={};X.tn=se,X.nn=de;const pe=se.node().getBBox(),G=de.node().getBBox();if(A=Math.max(A,pe.width),P=Math.max(P,G.width),ae=Math.max(pe.height,G.height),E){const xe=be.attributeKeyTypeList!==void 0?be.attributeKeyTypeList.join(","):"",U=i.append("text").classed("er entityLabel",!0).attr("id",`${ge}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",qt().fontFamily).style("font-size",v+"px").text(xe);X.kn=U;const Be=U.node().getBBox();R=Math.max(R,Be.width),ae=Math.max(ae,Be.height)}if(_){const xe=i.append("text").classed("er entityLabel",!0).attr("id",`${ge}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",qt().fontFamily).style("font-size",v+"px").text(be.attributeComment||"");X.cn=xe;const U=xe.node().getBBox();B=Math.max(B,U.width),ae=Math.max(ae,U.height)}X.height=ae,y.push(X),j+=ae+d*2,W+=1});let ee=4;E&&(ee+=2),_&&(ee+=2);const ie=A+P+R+B,oe={width:Math.max(p1.minEntityWidth,Math.max(b.width+p1.entityPadding*2,ie+p*ee)),height:u.length>0?j:Math.max(p1.minEntityHeight,b.height+p1.entityPadding*2)};if(u.length>0){const be=Math.max(0,(oe.width-ie-p*ee)/(ee/2));a.attr("transform","translate("+oe.width/2+","+(d+b.height/2)+")");let ge=b.height+d*2,ae="attributeBoxOdd";y.forEach(ne=>{const se=ge+d+ne.height/2;ne.tn.attr("transform","translate("+p+","+se+")");const de=i.insert("rect","#"+ne.tn.node().id).classed(`er ${ae}`,!0).attr("x",0).attr("y",ge).attr("width",A+p*2+be).attr("height",ne.height+d*2),X=parseFloat(de.attr("x"))+parseFloat(de.attr("width"));ne.nn.attr("transform","translate("+(X+p)+","+se+")");const pe=i.insert("rect","#"+ne.nn.node().id).classed(`er ${ae}`,!0).attr("x",X).attr("y",ge).attr("width",P+p*2+be).attr("height",ne.height+d*2);let G=parseFloat(pe.attr("x"))+parseFloat(pe.attr("width"));if(E){ne.kn.attr("transform","translate("+(G+p)+","+se+")");const xe=i.insert("rect","#"+ne.kn.node().id).classed(`er ${ae}`,!0).attr("x",G).attr("y",ge).attr("width",R+p*2+be).attr("height",ne.height+d*2);G=parseFloat(xe.attr("x"))+parseFloat(xe.attr("width"))}_&&(ne.cn.attr("transform","translate("+(G+p)+","+se+")"),i.insert("rect","#"+ne.cn.node().id).classed(`er ${ae}`,"true").attr("x",G).attr("y",ge).attr("width",B+p*2+be).attr("height",ne.height+d*2)),ge+=ne.height+d*2,ae=ae==="attributeBoxOdd"?"attributeBoxEven":"attributeBoxOdd"})}else oe.height=Math.max(p1.minEntityHeight,j),a.attr("transform","translate("+oe.width/2+","+oe.height/2+")");return oe},gtn=function(i,a,u){const d=Object.keys(a);let p;return d.forEach(function(v){const b=ytn(v,"entity");jR.set(v,b);const y=i.append("g").attr("id",b);p=p===void 0?b:p;const E="text-"+b,_=y.append("text").classed("er entityLabel",!0).attr("id",E).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",qt().fontFamily).style("font-size",p1.fontSize+"px").text(a[v].alias??v),{width:A,height:P}=dtn(y,_,a[v].attributes),B=y.insert("rect","#"+E).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",A).attr("height",P).node().getBBox();u.setNode(b,{width:B.width,height:B.height,shape:"rect",id:b})}),p},ptn=function(i,a){a.nodes().forEach(function(u){u!==void 0&&a.node(u)!==void 0&&i.select("#"+u).attr("transform","translate("+(a.node(u).x-a.node(u).width/2)+","+(a.node(u).y-a.node(u).height/2)+" )")})},pGe=function(i){return(i.entityA+i.roleA+i.entityB).replace(/\s/g,"")},btn=function(i,a){return i.forEach(function(u){a.setEdge(jR.get(u.entityA),jR.get(u.entityB),{relationship:u},pGe(u))}),i};let bGe=0;const mtn=function(i,a,u,d,p){bGe++;const v=u.edge(jR.get(a.entityA),jR.get(a.entityB),pGe(a)),b=E7().x(function(j){return j.x}).y(function(j){return j.y}).curve(VF),y=i.insert("path","#"+d).classed("er relationshipLine",!0).attr("d",b(v.points)).style("stroke",p1.stroke).style("fill","none");a.relSpec.relType===p.db.Identification.NON_IDENTIFYING&&y.attr("stroke-dasharray","8,8");let E="";switch(p1.arrowMarkerAbsolute&&(E=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,E=E.replace(/\(/g,"\\("),E=E.replace(/\)/g,"\\)")),a.relSpec.cardA){case p.db.Cardinality.ZERO_OR_ONE:y.attr("marker-end","url("+E+"#"+X3.ERMarkers.ZERO_OR_ONE_END+")");break;case p.db.Cardinality.ZERO_OR_MORE:y.attr("marker-end","url("+E+"#"+X3.ERMarkers.ZERO_OR_MORE_END+")");break;case p.db.Cardinality.ONE_OR_MORE:y.attr("marker-end","url("+E+"#"+X3.ERMarkers.ONE_OR_MORE_END+")");break;case p.db.Cardinality.ONLY_ONE:y.attr("marker-end","url("+E+"#"+X3.ERMarkers.ONLY_ONE_END+")");break;case p.db.Cardinality.MD_PARENT:y.attr("marker-end","url("+E+"#"+X3.ERMarkers.MD_PARENT_END+")");break}switch(a.relSpec.cardB){case p.db.Cardinality.ZERO_OR_ONE:y.attr("marker-start","url("+E+"#"+X3.ERMarkers.ZERO_OR_ONE_START+")");break;case p.db.Cardinality.ZERO_OR_MORE:y.attr("marker-start","url("+E+"#"+X3.ERMarkers.ZERO_OR_MORE_START+")");break;case p.db.Cardinality.ONE_OR_MORE:y.attr("marker-start","url("+E+"#"+X3.ERMarkers.ONE_OR_MORE_START+")");break;case p.db.Cardinality.ONLY_ONE:y.attr("marker-start","url("+E+"#"+X3.ERMarkers.ONLY_ONE_START+")");break;case p.db.Cardinality.MD_PARENT:y.attr("marker-start","url("+E+"#"+X3.ERMarkers.MD_PARENT_START+")");break}const _=y.node().getTotalLength(),A=y.node().getPointAtLength(_*.5),P="rel"+bGe,B=i.append("text").classed("er relationshipLabel",!0).attr("id",P).attr("x",A.x).attr("y",A.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",qt().fontFamily).style("font-size",p1.fontSize+"px").text(a.roleA).node().getBBox();i.insert("rect","#"+P).classed("er relationshipLabelBox",!0).attr("x",A.x-B.width/2).attr("y",A.y-B.height/2).attr("width",B.width).attr("height",B.height)},vtn=function(i,a,u,d){p1=qt().er,Xe.info("Drawing ER diagram");const p=qt().securityLevel;let v;p==="sandbox"&&(v=Dr("#i"+a));const y=Dr(p==="sandbox"?v.nodes()[0].contentDocument.body:"body").select(`[id='${a}']`);X3.insertMarkers(y,p1);let E;E=new R0({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:p1.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});const _=gtn(y,d.db.getEntities(),E),A=btn(d.db.getRelationships(),E);XD(E),ptn(y,E),A.forEach(function(W){mtn(y,W,E,_,d)});const P=p1.diagramPadding;So.insertTitle(y,"entityTitleText",p1.titleTopMargin,d.db.getDiagramTitle());const R=y.node().getBBox(),B=R.width+P*2,j=R.height+P*2;Fg(y,j,B,p1.useMaxWidth),y.attr("viewBox",`${R.x-P} ${R.y-P} ${B} ${j}`)},wtn="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function ytn(i="",a=""){const u=i.replace(htn,"");return`${mGe(a)}${mGe(u)}${ltn(i,wtn)}`}function mGe(i=""){return i.length>0?`${i}-`:""}const xtn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Xen,db:Zen,renderer:{setConf:ftn,draw:vtn},styles:i=>` + .entityBox { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${i.attributeBackgroundColorOdd}; + stroke: ${i.nodeBorder}; + } + + .attributeBoxEven { + fill: ${i.attributeBackgroundColorEven}; + stroke: ${i.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${i.tertiaryColor}; + opacity: 0.7; + background-color: ${i.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${i.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; + } + +`}},Symbol.toStringTag,{value:"Module"}));var hve=function(){var i=function(ae,ne,se,de){for(se=se||{},de=ae.length;de--;se[ae[de]]=ne);return se},a=[1,3],u=[1,6],d=[1,4],p=[1,5],v=[2,5],b=[1,12],y=[5,7,13,19,21,23,24,26,28,31,37,40,47],E=[7,13,19,21,23,24,26,28,31,37,40],_=[7,12,13,19,21,23,24,26,28,31,37,40],A=[7,13,47],P=[1,42],R=[1,41],B=[7,13,29,32,35,38,47],j=[1,55],W=[1,56],ee=[1,57],ie=[7,13,32,35,42,47],oe={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,GG:5,document:6,EOF:7,":":8,DIR:9,options:10,body:11,OPT:12,NL:13,line:14,statement:15,commitStatement:16,mergeStatement:17,cherryPickStatement:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,section:24,branchStatement:25,CHECKOUT:26,ref:27,BRANCH:28,ORDER:29,NUM:30,CHERRY_PICK:31,COMMIT_ID:32,STR:33,PARENT_COMMIT:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,ID:46,";":47,$accept:0,$end:1},terminals_:{2:"error",5:"GG",7:"EOF",8:":",9:"DIR",12:"OPT",13:"NL",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"section",26:"CHECKOUT",28:"BRANCH",29:"ORDER",30:"NUM",31:"CHERRY_PICK",32:"COMMIT_ID",33:"STR",34:"PARENT_COMMIT",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",46:"ID",47:";"},productions_:[0,[3,2],[3,3],[3,4],[3,5],[6,0],[6,2],[10,2],[10,1],[11,0],[11,2],[14,2],[14,1],[15,1],[15,1],[15,1],[15,2],[15,2],[15,1],[15,1],[15,1],[15,2],[25,2],[25,4],[18,3],[18,5],[18,5],[18,7],[18,7],[18,5],[18,5],[18,5],[18,7],[18,7],[18,7],[18,7],[17,2],[17,4],[17,4],[17,4],[17,6],[17,6],[17,6],[17,6],[17,6],[17,6],[17,8],[17,8],[17,8],[17,8],[17,8],[17,8],[16,2],[16,3],[16,3],[16,5],[16,5],[16,3],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,3],[16,5],[16,5],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[41,0],[41,1],[39,1],[39,1],[39,1],[27,1],[27,1],[4,1],[4,1],[4,1]],performAction:function(ne,se,de,X,pe,G,xe){var U=G.length-1;switch(pe){case 2:return G[U];case 3:return G[U-1];case 4:return X.setDirection(G[U-3]),G[U-1];case 6:X.setOptions(G[U-1]),this.$=G[U];break;case 7:G[U-1]+=G[U],this.$=G[U-1];break;case 9:this.$=[];break;case 10:G[U-1].push(G[U]),this.$=G[U-1];break;case 11:this.$=G[U-1];break;case 16:this.$=G[U].trim(),X.setAccTitle(this.$);break;case 17:case 18:this.$=G[U].trim(),X.setAccDescription(this.$);break;case 19:X.addSection(G[U].substr(8)),this.$=G[U].substr(8);break;case 21:X.checkout(G[U]);break;case 22:X.branch(G[U]);break;case 23:X.branch(G[U-2],G[U]);break;case 24:X.cherryPick(G[U],"",void 0);break;case 25:X.cherryPick(G[U-2],"",void 0,G[U]);break;case 26:X.cherryPick(G[U-2],"",G[U]);break;case 27:X.cherryPick(G[U-4],"",G[U],G[U-2]);break;case 28:X.cherryPick(G[U-4],"",G[U-2],G[U]);break;case 29:X.cherryPick(G[U],"",G[U-2]);break;case 30:X.cherryPick(G[U],"","");break;case 31:X.cherryPick(G[U-2],"","");break;case 32:X.cherryPick(G[U-4],"","",G[U-2]);break;case 33:X.cherryPick(G[U-4],"","",G[U]);break;case 34:X.cherryPick(G[U-2],"",G[U-4],G[U]);break;case 35:X.cherryPick(G[U-2],"","",G[U]);break;case 36:X.merge(G[U],"","","");break;case 37:X.merge(G[U-2],G[U],"","");break;case 38:X.merge(G[U-2],"",G[U],"");break;case 39:X.merge(G[U-2],"","",G[U]);break;case 40:X.merge(G[U-4],G[U],"",G[U-2]);break;case 41:X.merge(G[U-4],"",G[U],G[U-2]);break;case 42:X.merge(G[U-4],"",G[U-2],G[U]);break;case 43:X.merge(G[U-4],G[U-2],G[U],"");break;case 44:X.merge(G[U-4],G[U-2],"",G[U]);break;case 45:X.merge(G[U-4],G[U],G[U-2],"");break;case 46:X.merge(G[U-6],G[U-4],G[U-2],G[U]);break;case 47:X.merge(G[U-6],G[U],G[U-4],G[U-2]);break;case 48:X.merge(G[U-6],G[U-4],G[U],G[U-2]);break;case 49:X.merge(G[U-6],G[U-2],G[U-4],G[U]);break;case 50:X.merge(G[U-6],G[U],G[U-2],G[U-4]);break;case 51:X.merge(G[U-6],G[U-2],G[U],G[U-4]);break;case 52:X.commit(G[U]);break;case 53:X.commit("","",X.commitType.NORMAL,G[U]);break;case 54:X.commit("","",G[U],"");break;case 55:X.commit("","",G[U],G[U-2]);break;case 56:X.commit("","",G[U-2],G[U]);break;case 57:X.commit("",G[U],X.commitType.NORMAL,"");break;case 58:X.commit("",G[U-2],X.commitType.NORMAL,G[U]);break;case 59:X.commit("",G[U],X.commitType.NORMAL,G[U-2]);break;case 60:X.commit("",G[U-2],G[U],"");break;case 61:X.commit("",G[U],G[U-2],"");break;case 62:X.commit("",G[U-4],G[U-2],G[U]);break;case 63:X.commit("",G[U-4],G[U],G[U-2]);break;case 64:X.commit("",G[U-2],G[U-4],G[U]);break;case 65:X.commit("",G[U],G[U-4],G[U-2]);break;case 66:X.commit("",G[U],G[U-2],G[U-4]);break;case 67:X.commit("",G[U-2],G[U],G[U-4]);break;case 68:X.commit(G[U],"",X.commitType.NORMAL,"");break;case 69:X.commit(G[U],"",X.commitType.NORMAL,G[U-2]);break;case 70:X.commit(G[U-2],"",X.commitType.NORMAL,G[U]);break;case 71:X.commit(G[U-2],"",G[U],"");break;case 72:X.commit(G[U],"",G[U-2],"");break;case 73:X.commit(G[U],G[U-2],X.commitType.NORMAL,"");break;case 74:X.commit(G[U-2],G[U],X.commitType.NORMAL,"");break;case 75:X.commit(G[U-4],"",G[U-2],G[U]);break;case 76:X.commit(G[U-4],"",G[U],G[U-2]);break;case 77:X.commit(G[U-2],"",G[U-4],G[U]);break;case 78:X.commit(G[U],"",G[U-4],G[U-2]);break;case 79:X.commit(G[U],"",G[U-2],G[U-4]);break;case 80:X.commit(G[U-2],"",G[U],G[U-4]);break;case 81:X.commit(G[U-4],G[U],G[U-2],"");break;case 82:X.commit(G[U-4],G[U-2],G[U],"");break;case 83:X.commit(G[U-2],G[U],G[U-4],"");break;case 84:X.commit(G[U],G[U-2],G[U-4],"");break;case 85:X.commit(G[U],G[U-4],G[U-2],"");break;case 86:X.commit(G[U-2],G[U-4],G[U],"");break;case 87:X.commit(G[U-4],G[U],X.commitType.NORMAL,G[U-2]);break;case 88:X.commit(G[U-4],G[U-2],X.commitType.NORMAL,G[U]);break;case 89:X.commit(G[U-2],G[U],X.commitType.NORMAL,G[U-4]);break;case 90:X.commit(G[U],G[U-2],X.commitType.NORMAL,G[U-4]);break;case 91:X.commit(G[U],G[U-4],X.commitType.NORMAL,G[U-2]);break;case 92:X.commit(G[U-2],G[U-4],X.commitType.NORMAL,G[U]);break;case 93:X.commit(G[U-6],G[U-4],G[U-2],G[U]);break;case 94:X.commit(G[U-6],G[U-4],G[U],G[U-2]);break;case 95:X.commit(G[U-6],G[U-2],G[U-4],G[U]);break;case 96:X.commit(G[U-6],G[U],G[U-4],G[U-2]);break;case 97:X.commit(G[U-6],G[U-2],G[U],G[U-4]);break;case 98:X.commit(G[U-6],G[U],G[U-2],G[U-4]);break;case 99:X.commit(G[U-4],G[U-6],G[U-2],G[U]);break;case 100:X.commit(G[U-4],G[U-6],G[U],G[U-2]);break;case 101:X.commit(G[U-2],G[U-6],G[U-4],G[U]);break;case 102:X.commit(G[U],G[U-6],G[U-4],G[U-2]);break;case 103:X.commit(G[U-2],G[U-6],G[U],G[U-4]);break;case 104:X.commit(G[U],G[U-6],G[U-2],G[U-4]);break;case 105:X.commit(G[U],G[U-4],G[U-2],G[U-6]);break;case 106:X.commit(G[U-2],G[U-4],G[U],G[U-6]);break;case 107:X.commit(G[U],G[U-2],G[U-4],G[U-6]);break;case 108:X.commit(G[U-2],G[U],G[U-4],G[U-6]);break;case 109:X.commit(G[U-4],G[U-2],G[U],G[U-6]);break;case 110:X.commit(G[U-4],G[U],G[U-2],G[U-6]);break;case 111:X.commit(G[U-2],G[U-4],G[U-6],G[U]);break;case 112:X.commit(G[U],G[U-4],G[U-6],G[U-2]);break;case 113:X.commit(G[U-2],G[U],G[U-6],G[U-4]);break;case 114:X.commit(G[U],G[U-2],G[U-6],G[U-4]);break;case 115:X.commit(G[U-4],G[U-2],G[U-6],G[U]);break;case 116:X.commit(G[U-4],G[U],G[U-6],G[U-2]);break;case 117:this.$="";break;case 118:this.$=G[U];break;case 119:this.$=X.commitType.NORMAL;break;case 120:this.$=X.commitType.REVERSE;break;case 121:this.$=X.commitType.HIGHLIGHT;break}},table:[{3:1,4:2,5:a,7:u,13:d,47:p},{1:[3]},{3:7,4:2,5:a,7:u,13:d,47:p},{6:8,7:v,8:[1,9],9:[1,10],10:11,13:b},i(y,[2,124]),i(y,[2,125]),i(y,[2,126]),{1:[2,1]},{7:[1,13]},{6:14,7:v,10:11,13:b},{8:[1,15]},i(E,[2,9],{11:16,12:[1,17]}),i(_,[2,8]),{1:[2,2]},{7:[1,18]},{6:19,7:v,10:11,13:b},{7:[2,6],13:[1,22],14:20,15:21,16:23,17:24,18:25,19:[1,26],21:[1,27],23:[1,28],24:[1,29],25:30,26:[1,31],28:[1,35],31:[1,34],37:[1,33],40:[1,32]},i(_,[2,7]),{1:[2,3]},{7:[1,36]},i(E,[2,10]),{4:37,7:u,13:d,47:p},i(E,[2,12]),i(A,[2,13]),i(A,[2,14]),i(A,[2,15]),{20:[1,38]},{22:[1,39]},i(A,[2,18]),i(A,[2,19]),i(A,[2,20]),{27:40,33:P,46:R},i(A,[2,117],{41:43,32:[1,46],33:[1,48],35:[1,44],38:[1,45],42:[1,47]}),{27:49,33:P,46:R},{32:[1,50],35:[1,51]},{27:52,33:P,46:R},{1:[2,4]},i(E,[2,11]),i(A,[2,16]),i(A,[2,17]),i(A,[2,21]),i(B,[2,122]),i(B,[2,123]),i(A,[2,52]),{33:[1,53]},{39:54,43:j,44:W,45:ee},{33:[1,58]},{33:[1,59]},i(A,[2,118]),i(A,[2,36],{32:[1,60],35:[1,62],38:[1,61]}),{33:[1,63]},{33:[1,64],36:[1,65]},i(A,[2,22],{29:[1,66]}),i(A,[2,53],{32:[1,68],38:[1,67],42:[1,69]}),i(A,[2,54],{32:[1,71],35:[1,70],42:[1,72]}),i(ie,[2,119]),i(ie,[2,120]),i(ie,[2,121]),i(A,[2,57],{35:[1,73],38:[1,74],42:[1,75]}),i(A,[2,68],{32:[1,78],35:[1,76],38:[1,77]}),{33:[1,79]},{39:80,43:j,44:W,45:ee},{33:[1,81]},i(A,[2,24],{34:[1,82],35:[1,83]}),{32:[1,84]},{32:[1,85]},{30:[1,86]},{39:87,43:j,44:W,45:ee},{33:[1,88]},{33:[1,89]},{33:[1,90]},{33:[1,91]},{33:[1,92]},{33:[1,93]},{39:94,43:j,44:W,45:ee},{33:[1,95]},{33:[1,96]},{39:97,43:j,44:W,45:ee},{33:[1,98]},i(A,[2,37],{35:[1,100],38:[1,99]}),i(A,[2,38],{32:[1,102],35:[1,101]}),i(A,[2,39],{32:[1,103],38:[1,104]}),{33:[1,105]},{33:[1,106],36:[1,107]},{33:[1,108]},{33:[1,109]},i(A,[2,23]),i(A,[2,55],{32:[1,110],42:[1,111]}),i(A,[2,59],{38:[1,112],42:[1,113]}),i(A,[2,69],{32:[1,115],38:[1,114]}),i(A,[2,56],{32:[1,116],42:[1,117]}),i(A,[2,61],{35:[1,118],42:[1,119]}),i(A,[2,72],{32:[1,121],35:[1,120]}),i(A,[2,58],{38:[1,122],42:[1,123]}),i(A,[2,60],{35:[1,124],42:[1,125]}),i(A,[2,73],{35:[1,127],38:[1,126]}),i(A,[2,70],{32:[1,129],38:[1,128]}),i(A,[2,71],{32:[1,131],35:[1,130]}),i(A,[2,74],{35:[1,133],38:[1,132]}),{39:134,43:j,44:W,45:ee},{33:[1,135]},{33:[1,136]},{33:[1,137]},{33:[1,138]},{39:139,43:j,44:W,45:ee},i(A,[2,25],{35:[1,140]}),i(A,[2,26],{34:[1,141]}),i(A,[2,31],{34:[1,142]}),i(A,[2,29],{34:[1,143]}),i(A,[2,30],{34:[1,144]}),{33:[1,145]},{33:[1,146]},{39:147,43:j,44:W,45:ee},{33:[1,148]},{39:149,43:j,44:W,45:ee},{33:[1,150]},{33:[1,151]},{33:[1,152]},{33:[1,153]},{33:[1,154]},{33:[1,155]},{33:[1,156]},{39:157,43:j,44:W,45:ee},{33:[1,158]},{33:[1,159]},{33:[1,160]},{39:161,43:j,44:W,45:ee},{33:[1,162]},{39:163,43:j,44:W,45:ee},{33:[1,164]},{33:[1,165]},{33:[1,166]},{39:167,43:j,44:W,45:ee},{33:[1,168]},i(A,[2,43],{35:[1,169]}),i(A,[2,44],{38:[1,170]}),i(A,[2,42],{32:[1,171]}),i(A,[2,45],{35:[1,172]}),i(A,[2,40],{38:[1,173]}),i(A,[2,41],{32:[1,174]}),{33:[1,175],36:[1,176]},{33:[1,177]},{33:[1,178]},{33:[1,179]},{33:[1,180]},i(A,[2,66],{42:[1,181]}),i(A,[2,79],{32:[1,182]}),i(A,[2,67],{42:[1,183]}),i(A,[2,90],{38:[1,184]}),i(A,[2,80],{32:[1,185]}),i(A,[2,89],{38:[1,186]}),i(A,[2,65],{42:[1,187]}),i(A,[2,78],{32:[1,188]}),i(A,[2,64],{42:[1,189]}),i(A,[2,84],{35:[1,190]}),i(A,[2,77],{32:[1,191]}),i(A,[2,83],{35:[1,192]}),i(A,[2,63],{42:[1,193]}),i(A,[2,91],{38:[1,194]}),i(A,[2,62],{42:[1,195]}),i(A,[2,85],{35:[1,196]}),i(A,[2,86],{35:[1,197]}),i(A,[2,92],{38:[1,198]}),i(A,[2,76],{32:[1,199]}),i(A,[2,87],{38:[1,200]}),i(A,[2,75],{32:[1,201]}),i(A,[2,81],{35:[1,202]}),i(A,[2,82],{35:[1,203]}),i(A,[2,88],{38:[1,204]}),{33:[1,205]},{39:206,43:j,44:W,45:ee},{33:[1,207]},{33:[1,208]},{39:209,43:j,44:W,45:ee},{33:[1,210]},i(A,[2,27]),i(A,[2,32]),i(A,[2,28]),i(A,[2,33]),i(A,[2,34]),i(A,[2,35]),{33:[1,211]},{33:[1,212]},{33:[1,213]},{39:214,43:j,44:W,45:ee},{33:[1,215]},{39:216,43:j,44:W,45:ee},{33:[1,217]},{33:[1,218]},{33:[1,219]},{33:[1,220]},{33:[1,221]},{33:[1,222]},{33:[1,223]},{39:224,43:j,44:W,45:ee},{33:[1,225]},{33:[1,226]},{33:[1,227]},{39:228,43:j,44:W,45:ee},{33:[1,229]},{39:230,43:j,44:W,45:ee},{33:[1,231]},{33:[1,232]},{33:[1,233]},{39:234,43:j,44:W,45:ee},i(A,[2,46]),i(A,[2,48]),i(A,[2,47]),i(A,[2,49]),i(A,[2,51]),i(A,[2,50]),i(A,[2,107]),i(A,[2,108]),i(A,[2,105]),i(A,[2,106]),i(A,[2,110]),i(A,[2,109]),i(A,[2,114]),i(A,[2,113]),i(A,[2,112]),i(A,[2,111]),i(A,[2,116]),i(A,[2,115]),i(A,[2,104]),i(A,[2,103]),i(A,[2,102]),i(A,[2,101]),i(A,[2,99]),i(A,[2,100]),i(A,[2,98]),i(A,[2,97]),i(A,[2,96]),i(A,[2,95]),i(A,[2,93]),i(A,[2,94])],defaultActions:{7:[2,1],13:[2,2],18:[2,3],36:[2,4]},parseError:function(ne,se){if(se.recoverable)this.trace(ne);else{var de=new Error(ne);throw de.hash=se,de}},parse:function(ne){var se=this,de=[0],X=[],pe=[null],G=[],xe=this.table,U="",Be=0,Pe=0,je=2,Ie=1,Se=G.slice.call(arguments,1),Ce=Object.create(this.lexer),ke={yy:{}};for(var Ke in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ke)&&(ke.yy[Ke]=this.yy[Ke]);Ce.setInput(ne,ke.yy),ke.yy.lexer=Ce,ke.yy.parser=this,typeof Ce.yylloc>"u"&&(Ce.yylloc={});var zt=Ce.yylloc;G.push(zt);var Ne=Ce.options&&Ce.options.ranges;typeof ke.yy.parseError=="function"?this.parseError=ke.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pn(){var ht;return ht=X.pop()||Ce.lex()||Ie,typeof ht!="number"&&(ht instanceof Array&&(X=ht,ht=X.pop()),ht=se.symbols_[ht]||ht),ht}for(var Tt,Et,Wt,un,yt={},Bt,Ze,Dt,kt;;){if(Et=de[de.length-1],this.defaultActions[Et]?Wt=this.defaultActions[Et]:((Tt===null||typeof Tt>"u")&&(Tt=pn()),Wt=xe[Et]&&xe[Et][Tt]),typeof Wt>"u"||!Wt.length||!Wt[0]){var Nn="";kt=[];for(Bt in xe[Et])this.terminals_[Bt]&&Bt>je&&kt.push("'"+this.terminals_[Bt]+"'");Ce.showPosition?Nn="Parse error on line "+(Be+1)+`: +`+Ce.showPosition()+` +Expecting `+kt.join(", ")+", got '"+(this.terminals_[Tt]||Tt)+"'":Nn="Parse error on line "+(Be+1)+": Unexpected "+(Tt==Ie?"end of input":"'"+(this.terminals_[Tt]||Tt)+"'"),this.parseError(Nn,{text:Ce.match,token:this.terminals_[Tt]||Tt,line:Ce.yylineno,loc:zt,expected:kt})}if(Wt[0]instanceof Array&&Wt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Et+", token: "+Tt);switch(Wt[0]){case 1:de.push(Tt),pe.push(Ce.yytext),G.push(Ce.yylloc),de.push(Wt[1]),Tt=null,Pe=Ce.yyleng,U=Ce.yytext,Be=Ce.yylineno,zt=Ce.yylloc;break;case 2:if(Ze=this.productions_[Wt[1]][1],yt.$=pe[pe.length-Ze],yt._$={first_line:G[G.length-(Ze||1)].first_line,last_line:G[G.length-1].last_line,first_column:G[G.length-(Ze||1)].first_column,last_column:G[G.length-1].last_column},Ne&&(yt._$.range=[G[G.length-(Ze||1)].range[0],G[G.length-1].range[1]]),un=this.performAction.apply(yt,[U,Pe,Be,ke.yy,Wt[1],pe,G].concat(Se)),typeof un<"u")return un;Ze&&(de=de.slice(0,-1*Ze*2),pe=pe.slice(0,-1*Ze),G=G.slice(0,-1*Ze)),de.push(this.productions_[Wt[1]][0]),pe.push(yt.$),G.push(yt._$),Dt=xe[de[de.length-2]][de[de.length-1]],de.push(Dt);break;case 3:return!0}}return!0}},be=function(){var ae={EOF:1,parseError:function(se,de){if(this.yy.parser)this.yy.parser.parseError(se,de);else throw new Error(se)},setInput:function(ne,se){return this.yy=se||this.yy||{},this._input=ne,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ne=this._input[0];this.yytext+=ne,this.yyleng++,this.offset++,this.match+=ne,this.matched+=ne;var se=ne.match(/(?:\r\n?|\n).*/g);return se?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ne},unput:function(ne){var se=ne.length,de=ne.split(/(?:\r\n?|\n)/g);this._input=ne+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-se),this.offset-=se;var X=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),de.length-1&&(this.yylineno-=de.length-1);var pe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:de?(de.length===X.length?this.yylloc.first_column:0)+X[X.length-de.length].length-de[0].length:this.yylloc.first_column-se},this.options.ranges&&(this.yylloc.range=[pe[0],pe[0]+this.yyleng-se]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ne){this.unput(this.match.slice(ne))},pastInput:function(){var ne=this.matched.substr(0,this.matched.length-this.match.length);return(ne.length>20?"...":"")+ne.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var ne=this.match;return ne.length<20&&(ne+=this._input.substr(0,20-ne.length)),(ne.substr(0,20)+(ne.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var ne=this.pastInput(),se=new Array(ne.length+1).join("-");return ne+this.upcomingInput()+` +`+se+"^"},test_match:function(ne,se){var de,X,pe;if(this.options.backtrack_lexer&&(pe={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&&(pe.yylloc.range=this.yylloc.range.slice(0))),X=ne[0].match(/(?:\r\n?|\n).*/g),X&&(this.yylineno+=X.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:X?X[X.length-1].length-X[X.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ne[0].length},this.yytext+=ne[0],this.match+=ne[0],this.matches=ne,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ne[0].length),this.matched+=ne[0],de=this.performAction.call(this,this.yy,this,se,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),de)return de;if(this._backtrack){for(var G in pe)this[G]=pe[G];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ne,se,de,X;this._more||(this.yytext="",this.match="");for(var pe=this._currentRules(),G=0;Gse[0].length)){if(se=de,X=G,this.options.backtrack_lexer){if(ne=this.test_match(de,pe[G]),ne!==!1)return ne;if(this._backtrack){se=!1;continue}else return!1}else if(!this.options.flex)break}return se?(ne=this.test_match(se,pe[X]),ne!==!1?ne:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var se=this.next();return se||this.lex()},begin:function(se){this.conditionStack.push(se)},popState:function(){var se=this.conditionStack.length-1;return se>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(se){return se=this.conditionStack.length-1-Math.abs(se||0),se>=0?this.conditionStack[se]:"INITIAL"},pushState:function(se){this.begin(se)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(se,de,X,pe){switch(X){case 0:return this.begin("acc_title"),19;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),21;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 13;case 8:break;case 9:break;case 10:return 5;case 11:return 40;case 12:return 32;case 13:return 38;case 14:return 42;case 15:return 43;case 16:return 44;case 17:return 45;case 18:return 35;case 19:return 28;case 20:return 29;case 21:return 37;case 22:return 31;case 23:return 34;case 24:return 26;case 25:return 9;case 26:return 9;case 27:return 8;case 28:return"CARET";case 29:this.begin("options");break;case 30:this.popState();break;case 31:return 12;case 32:return 36;case 33:this.begin("string");break;case 34:this.popState();break;case 35:return 33;case 36:return 30;case 37:return 46;case 38:return 7}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:parent:)/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:TB\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},options:{rules:[30,31],inclusive:!1},string:{rules:[34,35],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,32,33,36,37,38,39],inclusive:!0}}};return ae}();oe.lexer=be;function ge(){this.yy={}}return ge.prototype=oe,oe.Parser=ge,new ge}();hve.parser=hve;const ktn=hve;let xJ=qt().gitGraph.mainBranchName,Ttn=qt().gitGraph.mainBranchOrder,b1={},$p=null,$R={};$R[xJ]={name:xJ,order:Ttn};let j0={};j0[xJ]=$p;let sd=xJ,vGe="LR",XC=0;function fve(){return $je({length:7})}function Etn(i,a){const u=Object.create(null);return i.reduce((d,p)=>{const v=a(p);return u[v]||(u[v]=!0,d.push(p)),d},[])}const Ctn=function(i){vGe=i};let wGe={};const Stn=function(i){Xe.debug("options str",i),i=i&&i.trim(),i=i||"{}";try{wGe=JSON.parse(i)}catch(a){Xe.error("error while parsing gitGraph options",a.message)}},_tn=function(){return wGe},Atn=function(i,a,u,d){Xe.debug("Entering commit:",i,a,u,d),a=oi.sanitizeText(a,qt()),i=oi.sanitizeText(i,qt()),d=oi.sanitizeText(d,qt());const p={id:a||XC+"-"+fve(),message:i,seq:XC++,type:u||ZD.NORMAL,tag:d||"",parents:$p==null?[]:[$p.id],branch:sd};$p=p,b1[p.id]=p,j0[sd]=p.id,Xe.debug("in pushCommit "+p.id)},Ltn=function(i,a){if(i=oi.sanitizeText(i,qt()),j0[i]===void 0)j0[i]=$p!=null?$p.id:null,$R[i]={name:i,order:a?parseInt(a,10):null},yGe(i),Xe.debug("in createBranch");else{let u=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+i+'")');throw u.hash={text:"branch "+i,token:"branch "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+i+'"']},u}},Mtn=function(i,a,u,d){i=oi.sanitizeText(i,qt()),a=oi.sanitizeText(a,qt());const p=b1[j0[sd]],v=b1[j0[i]];if(sd===i){let y=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},y}else if(p===void 0||!p){let y=new Error('Incorrect usage of "merge". Current branch ('+sd+")has no commits");throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},y}else if(j0[i]===void 0){let y=new Error('Incorrect usage of "merge". Branch to be merged ('+i+") does not exist");throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+i]},y}else if(v===void 0||!v){let y=new Error('Incorrect usage of "merge". Branch to be merged ('+i+") has no commits");throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},y}else if(p===v){let y=new Error('Incorrect usage of "merge". Both branches have same head');throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},y}else if(a&&b1[a]!==void 0){let y=new Error('Incorrect usage of "merge". Commit with id:'+a+" already exists, use different custom Id");throw y.hash={text:"merge "+i+a+u+d,token:"merge "+i+a+u+d,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+i+" "+a+"_UNIQUE "+u+" "+d]},y}const b={id:a||XC+"-"+fve(),message:"merged branch "+i+" into "+sd,seq:XC++,parents:[$p==null?null:$p.id,j0[i]],branch:sd,type:ZD.MERGE,customType:u,customId:!!a,tag:d||""};$p=b,b1[b.id]=b,j0[sd]=b.id,Xe.debug(j0),Xe.debug("in mergeBranch")},Dtn=function(i,a,u,d){if(Xe.debug("Entering cherryPick:",i,a,u),i=oi.sanitizeText(i,qt()),a=oi.sanitizeText(a,qt()),u=oi.sanitizeText(u,qt()),d=oi.sanitizeText(d,qt()),!i||b1[i]===void 0){let b=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw b.hash={text:"cherryPick "+i+" "+a,token:"cherryPick "+i+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},b}let p=b1[i],v=p.branch;if(d&&!(Array.isArray(p.parents)&&p.parents.includes(d)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");if(p.type===ZD.MERGE&&!d)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!a||b1[a]===void 0){if(v===sd){let E=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw E.hash={text:"cherryPick "+i+" "+a,token:"cherryPick "+i+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},E}const b=b1[j0[sd]];if(b===void 0||!b){let E=new Error('Incorrect usage of "cherry-pick". Current branch ('+sd+")has no commits");throw E.hash={text:"cherryPick "+i+" "+a,token:"cherryPick "+i+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},E}const y={id:XC+"-"+fve(),message:"cherry-picked "+p+" into "+sd,seq:XC++,parents:[$p==null?null:$p.id,p.id],branch:sd,type:ZD.CHERRY_PICK,tag:u??`cherry-pick:${p.id}${p.type===ZD.MERGE?`|parent:${d}`:""}`};$p=y,b1[y.id]=y,j0[sd]=y.id,Xe.debug(j0),Xe.debug("in cherryPick")}},yGe=function(i){if(i=oi.sanitizeText(i,qt()),j0[i]===void 0){let a=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+i+'")');throw a.hash={text:"checkout "+i,token:"checkout "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+i+'"']},a}else{sd=i;const a=j0[sd];$p=b1[a]}};function xGe(i,a,u){const d=i.indexOf(a);d===-1?i.push(u):i.splice(d,1,u)}function kGe(i){const a=i.reduce((p,v)=>p.seq>v.seq?p:v,i[0]);let u="";i.forEach(function(p){p===a?u+=" *":u+=" |"});const d=[u,a.id,a.seq];for(let p in j0)j0[p]===a.id&&d.push(p);if(Xe.debug(d.join(" ")),a.parents&&a.parents.length==2){const p=b1[a.parents[0]];xGe(i,a,p),i.push(b1[a.parents[1]])}else{if(a.parents.length==0)return;{const p=b1[a.parents];xGe(i,a,p)}}i=Etn(i,p=>p.id),kGe(i)}const Itn=function(){Xe.debug(b1);const i=TGe()[0];kGe([i])},Otn=function(){b1={},$p=null;let i=qt().gitGraph.mainBranchName,a=qt().gitGraph.mainBranchOrder;j0={},j0[i]=null,$R={},$R[i]={name:i,order:a},sd=i,XC=0,Rg()},Ntn=function(){return Object.values($R).map((a,u)=>a.order!==null?a:{...a,order:parseFloat(`0.${u}`,10)}).sort((a,u)=>a.order-u.order).map(({name:a})=>({name:a}))},Ptn=function(){return j0},Btn=function(){return b1},TGe=function(){const i=Object.keys(b1).map(function(a){return b1[a]});return i.forEach(function(a){Xe.debug(a.id)}),i.sort((a,u)=>a.seq-u.seq),i},Ftn=function(){return sd},Rtn=function(){return vGe},jtn=function(){return $p},ZD={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},$tn={getConfig:()=>qt().gitGraph,setDirection:Ctn,setOptions:Stn,getOptions:_tn,commit:Atn,branch:Ltn,merge:Mtn,cherryPick:Dtn,checkout:yGe,prettyPrint:Itn,clear:Otn,getBranchesAsObjArray:Ntn,getBranches:Ptn,getCommits:Btn,getCommitsArray:TGe,getCurrentBranch:Ftn,getDirection:Rtn,getHead:jtn,setAccTitle:jg,getAccTitle:Mp,getAccDescription:Ip,setAccDescription:Dp,setDiagramTitle:pm,getDiagramTitle:Op,commitType:ZD};let zR={};const ad={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},QC=8;let J2={},U7={},kJ=[],qR=0,$0="LR";const ztn=()=>{J2={},U7={},zR={},qR=0,kJ=[],$0="LR"},EGe=i=>{const a=document.createElementNS("http://www.w3.org/2000/svg","text");let u=[];typeof i=="string"?u=i.split(/\\n|\n|/gi):Array.isArray(i)?u=i:u=[];for(const d of u){const p=document.createElementNS("http://www.w3.org/2000/svg","tspan");p.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),p.setAttribute("dy","1em"),p.setAttribute("x","0"),p.setAttribute("class","row"),p.textContent=d.trim(),a.appendChild(p)}return a},qtn=i=>{let a="",u=0;return i.forEach(d=>{const p=$0==="TB"?U7[d].y:U7[d].x;p>=u&&(a=d,u=p)}),a||void 0},CGe=(i,a,u)=>{const d=qt().gitGraph,p=i.append("g").attr("class","commit-bullets"),v=i.append("g").attr("class","commit-labels");let b=0;$0==="TB"&&(b=30);const E=Object.keys(a).sort((R,B)=>a[R].seq-a[B].seq),_=d.parallelCommits,A=10,P=40;E.forEach(R=>{const B=a[R];if(_)if(B.parents.length){const ie=qtn(B.parents);b=$0==="TB"?U7[ie].y+P:U7[ie].x+P}else b=0,$0==="TB"&&(b=30);const j=b+A,W=$0==="TB"?j:J2[B.branch].pos,ee=$0==="TB"?J2[B.branch].pos:j;if(u){let ie,oe=B.customType!==void 0&&B.customType!==""?B.customType:B.type;switch(oe){case ad.NORMAL:ie="commit-normal";break;case ad.REVERSE:ie="commit-reverse";break;case ad.HIGHLIGHT:ie="commit-highlight";break;case ad.MERGE:ie="commit-merge";break;case ad.CHERRY_PICK:ie="commit-cherry-pick";break;default:ie="commit-normal"}if(oe===ad.HIGHLIGHT){const be=p.append("rect");be.attr("x",ee-10),be.attr("y",W-10),be.attr("height",20),be.attr("width",20),be.attr("class",`commit ${B.id} commit-highlight${J2[B.branch].index%QC} ${ie}-outer`),p.append("rect").attr("x",ee-6).attr("y",W-6).attr("height",12).attr("width",12).attr("class",`commit ${B.id} commit${J2[B.branch].index%QC} ${ie}-inner`)}else if(oe===ad.CHERRY_PICK)p.append("circle").attr("cx",ee).attr("cy",W).attr("r",10).attr("class",`commit ${B.id} ${ie}`),p.append("circle").attr("cx",ee-3).attr("cy",W+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${B.id} ${ie}`),p.append("circle").attr("cx",ee+3).attr("cy",W+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${B.id} ${ie}`),p.append("line").attr("x1",ee+3).attr("y1",W+1).attr("x2",ee).attr("y2",W-5).attr("stroke","#fff").attr("class",`commit ${B.id} ${ie}`),p.append("line").attr("x1",ee-3).attr("y1",W+1).attr("x2",ee).attr("y2",W-5).attr("stroke","#fff").attr("class",`commit ${B.id} ${ie}`);else{const be=p.append("circle");if(be.attr("cx",ee),be.attr("cy",W),be.attr("r",B.type===ad.MERGE?9:10),be.attr("class",`commit ${B.id} commit${J2[B.branch].index%QC}`),oe===ad.MERGE){const ge=p.append("circle");ge.attr("cx",ee),ge.attr("cy",W),ge.attr("r",6),ge.attr("class",`commit ${ie} ${B.id} commit${J2[B.branch].index%QC}`)}oe===ad.REVERSE&&p.append("path").attr("d",`M ${ee-5},${W-5}L${ee+5},${W+5}M${ee-5},${W+5}L${ee+5},${W-5}`).attr("class",`commit ${ie} ${B.id} commit${J2[B.branch].index%QC}`)}}if($0==="TB"?U7[B.id]={x:ee,y:j}:U7[B.id]={x:j,y:W},u){if(B.type!==ad.CHERRY_PICK&&(B.customId&&B.type===ad.MERGE||B.type!==ad.MERGE)&&d.showCommitLabel){const be=v.append("g"),ge=be.insert("rect").attr("class","commit-label-bkg"),ae=be.append("text").attr("x",b).attr("y",W+25).attr("class","commit-label").text(B.id);let ne=ae.node().getBBox();if(ge.attr("x",j-ne.width/2-2).attr("y",W+13.5).attr("width",ne.width+2*2).attr("height",ne.height+2*2),$0==="TB"&&(ge.attr("x",ee-(ne.width+4*4+5)).attr("y",W-12),ae.attr("x",ee-(ne.width+4*4)).attr("y",W+ne.height-12)),$0!=="TB"&&ae.attr("x",j-ne.width/2),d.rotateCommitLabel)if($0==="TB")ae.attr("transform","rotate(-45, "+ee+", "+W+")"),ge.attr("transform","rotate(-45, "+ee+", "+W+")");else{let se=-7.5-(ne.width+10)/25*9.5,de=10+ne.width/25*8.5;be.attr("transform","translate("+se+", "+de+") rotate(-45, "+b+", "+W+")")}}if(B.tag){const be=v.insert("polygon"),ge=v.append("circle"),ae=v.append("text").attr("y",W-16).attr("class","tag-label").text(B.tag);let ne=ae.node().getBBox();ae.attr("x",j-ne.width/2);const se=ne.height/2,de=W-19.2;be.attr("class","tag-label-bkg").attr("points",` + ${b-ne.width/2-4/2},${de+2} + ${b-ne.width/2-4/2},${de-2} + ${j-ne.width/2-4},${de-se-2} + ${j+ne.width/2+4},${de-se-2} + ${j+ne.width/2+4},${de+se+2} + ${j-ne.width/2-4},${de+se+2}`),ge.attr("cx",b-ne.width/2+4/2).attr("cy",de).attr("r",1.5).attr("class","tag-hole"),$0==="TB"&&(be.attr("class","tag-label-bkg").attr("points",` + ${ee},${b+2} + ${ee},${b-2} + ${ee+A},${b-se-2} + ${ee+A+ne.width+4},${b-se-2} + ${ee+A+ne.width+4},${b+se+2} + ${ee+A},${b+se+2}`).attr("transform","translate(12,12) rotate(45, "+ee+","+b+")"),ge.attr("cx",ee+4/2).attr("cy",b).attr("transform","translate(12,12) rotate(45, "+ee+","+b+")"),ae.attr("x",ee+5).attr("y",b+3).attr("transform","translate(14,14) rotate(45, "+ee+","+b+")"))}}b+=P+A,b>qR&&(qR=b)})},Htn=(i,a,u,d,p)=>{const b=($0==="TB"?u.x_.branch===b,E=_=>_.seq>i.seq&&_.seqE(_)&&y(_))},HR=(i,a,u=0)=>{const d=i+Math.abs(i-a)/2;if(u>5)return d;if(kJ.every(b=>Math.abs(b-d)>=10))return kJ.push(d),d;const v=Math.abs(i-a);return HR(i,a-v/5,u+1)},Utn=(i,a,u,d)=>{const p=U7[a.id],v=U7[u.id],b=Htn(a,u,p,v,d);let y="",E="",_=0,A=0,P=J2[u.branch].index;u.type===ad.MERGE&&a.id!==u.parents[0]&&(P=J2[a.branch].index);let R;if(b){y="A 10 10, 0, 0, 0,",E="A 10 10, 0, 0, 1,",_=10,A=10;const B=p.yv.x&&(y="A 20 20, 0, 0, 0,",E="A 20 20, 0, 0, 1,",_=20,A=20,u.type===ad.MERGE&&a.id!==u.parents[0]?R=`M ${p.x} ${p.y} L ${p.x} ${v.y-_} ${E} ${p.x-A} ${v.y} L ${v.x} ${v.y}`:R=`M ${p.x} ${p.y} L ${v.x+_} ${p.y} ${y} ${v.x} ${p.y+A} L ${v.x} ${v.y}`),p.x===v.x&&(R=`M ${p.x} ${p.y} L ${v.x} ${v.y}`)):(p.yv.y&&(u.type===ad.MERGE&&a.id!==u.parents[0]?R=`M ${p.x} ${p.y} L ${v.x-_} ${p.y} ${y} ${v.x} ${p.y-A} L ${v.x} ${v.y}`:R=`M ${p.x} ${p.y} L ${p.x} ${v.y+_} ${E} ${p.x+A} ${v.y} L ${v.x} ${v.y}`),p.y===v.y&&(R=`M ${p.x} ${p.y} L ${v.x} ${v.y}`));i.append("path").attr("d",R).attr("class","arrow arrow"+P%QC)},Vtn=(i,a)=>{const u=i.append("g").attr("class","commit-arrows");Object.keys(a).forEach(d=>{const p=a[d];p.parents&&p.parents.length>0&&p.parents.forEach(v=>{Utn(u,a[v],p,a)})})},Gtn=(i,a)=>{const u=qt().gitGraph,d=i.append("g");a.forEach((p,v)=>{const b=v%QC,y=J2[p.name].pos,E=d.append("line");E.attr("x1",0),E.attr("y1",y),E.attr("x2",qR),E.attr("y2",y),E.attr("class","branch branch"+b),$0==="TB"&&(E.attr("y1",30),E.attr("x1",y),E.attr("y2",qR),E.attr("x2",y)),kJ.push(y);let _=p.name;const A=EGe(_),P=d.insert("rect"),B=d.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+b);B.node().appendChild(A);let j=A.getBBox();P.attr("class","branchLabelBkg label"+b).attr("rx",4).attr("ry",4).attr("x",-j.width-4-(u.rotateCommitLabel===!0?30:0)).attr("y",-j.height/2+8).attr("width",j.width+18).attr("height",j.height+4),B.attr("transform","translate("+(-j.width-14-(u.rotateCommitLabel===!0?30:0))+", "+(y-j.height/2-1)+")"),$0==="TB"&&(P.attr("x",y-j.width/2-10).attr("y",0),B.attr("transform","translate("+(y-j.width/2-5)+", 0)")),$0!=="TB"&&P.attr("transform","translate(-19, "+(y-j.height/2)+")")})},Ktn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:ktn,db:$tn,renderer:{draw:function(i,a,u,d){ztn();const p=qt(),v=p.gitGraph;Xe.debug("in gitgraph renderer",i+` +`,"id:",a,u),zR=d.db.getCommits();const b=d.db.getBranchesAsObjArray();$0=d.db.getDirection();const y=Dr(`[id="${a}"]`);let E=0;b.forEach((_,A)=>{const P=EGe(_.name),R=y.append("g"),B=R.insert("g").attr("class","branchLabel"),j=B.insert("g").attr("class","label branch-label");j.node().appendChild(P);let W=P.getBBox();J2[_.name]={pos:E,index:A},E+=50+(v.rotateCommitLabel?40:0)+($0==="TB"?W.width/2:0),j.remove(),B.remove(),R.remove()}),CGe(y,zR,!1),v.showBranches&&Gtn(y,b),Vtn(y,zR),CGe(y,zR,!0),So.insertTitle(y,"gitTitleText",v.titleTopMargin,d.db.getDiagramTitle()),C$e(void 0,y,v.diagramPadding,v.useMaxWidth??p.useMaxWidth)}},styles:i=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(a=>` + .branch-label${a} { fill: ${i["gitBranchLabel"+a]}; } + .commit${a} { stroke: ${i["git"+a]}; fill: ${i["git"+a]}; } + .commit-highlight${a} { stroke: ${i["gitInv"+a]}; fill: ${i["gitInv"+a]}; } + .label${a} { fill: ${i["git"+a]}; } + .arrow${a} { stroke: ${i["git"+a]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${i.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${i.commitLabelFontSize}; fill: ${i.commitLabelColor};} + .commit-label-bkg { font-size: ${i.commitLabelFontSize}; fill: ${i.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${i.tagLabelFontSize}; fill: ${i.tagLabelColor};} + .tag-label-bkg { fill: ${i.tagLabelBackground}; stroke: ${i.tagLabelBorder}; } + .tag-hole { fill: ${i.textColor}; } + + .commit-merge { + stroke: ${i.primaryColor}; + fill: ${i.primaryColor}; + } + .commit-reverse { + stroke: ${i.primaryColor}; + fill: ${i.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${i.primaryColor}; + fill: ${i.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; + } +`}},Symbol.toStringTag,{value:"Module"}));var dve=function(){var i=function(G,xe,U,Be){for(U=U||{},Be=G.length;Be--;U[G[Be]]=xe);return U},a=[6,8,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,32,33,35,37],u=[1,25],d=[1,26],p=[1,27],v=[1,28],b=[1,29],y=[1,30],E=[1,31],_=[1,9],A=[1,10],P=[1,11],R=[1,12],B=[1,13],j=[1,14],W=[1,15],ee=[1,16],ie=[1,18],oe=[1,19],be=[1,20],ge=[1,21],ae=[1,22],ne=[1,24],se=[1,32],de={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,dateFormat:19,inclusiveEndDates:20,topAxis:21,axisFormat:22,tickInterval:23,excludes:24,includes:25,todayMarker:26,title:27,acc_title:28,acc_title_value:29,acc_descr:30,acc_descr_value:31,acc_descr_multiline_value:32,section:33,clickStatement:34,taskTxt:35,taskData:36,click:37,callbackname:38,callbackargs:39,href:40,clickStatementDebug:41,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",19:"dateFormat",20:"inclusiveEndDates",21:"topAxis",22:"axisFormat",23:"tickInterval",24:"excludes",25:"includes",26:"todayMarker",27:"title",28:"acc_title",29:"acc_title_value",30:"acc_descr",31:"acc_descr_value",32:"acc_descr_multiline_value",33:"section",35:"taskTxt",36:"taskData",37:"click",38:"callbackname",39:"callbackargs",40:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[34,2],[34,3],[34,3],[34,4],[34,3],[34,4],[34,2],[41,2],[41,3],[41,3],[41,4],[41,3],[41,4],[41,2]],performAction:function(xe,U,Be,Pe,je,Ie,Se){var Ce=Ie.length-1;switch(je){case 1:return Ie[Ce-1];case 2:this.$=[];break;case 3:Ie[Ce-1].push(Ie[Ce]),this.$=Ie[Ce-1];break;case 4:case 5:this.$=Ie[Ce];break;case 6:case 7:this.$=[];break;case 8:Pe.setWeekday("monday");break;case 9:Pe.setWeekday("tuesday");break;case 10:Pe.setWeekday("wednesday");break;case 11:Pe.setWeekday("thursday");break;case 12:Pe.setWeekday("friday");break;case 13:Pe.setWeekday("saturday");break;case 14:Pe.setWeekday("sunday");break;case 15:Pe.setDateFormat(Ie[Ce].substr(11)),this.$=Ie[Ce].substr(11);break;case 16:Pe.enableInclusiveEndDates(),this.$=Ie[Ce].substr(18);break;case 17:Pe.TopAxis(),this.$=Ie[Ce].substr(8);break;case 18:Pe.setAxisFormat(Ie[Ce].substr(11)),this.$=Ie[Ce].substr(11);break;case 19:Pe.setTickInterval(Ie[Ce].substr(13)),this.$=Ie[Ce].substr(13);break;case 20:Pe.setExcludes(Ie[Ce].substr(9)),this.$=Ie[Ce].substr(9);break;case 21:Pe.setIncludes(Ie[Ce].substr(9)),this.$=Ie[Ce].substr(9);break;case 22:Pe.setTodayMarker(Ie[Ce].substr(12)),this.$=Ie[Ce].substr(12);break;case 24:Pe.setDiagramTitle(Ie[Ce].substr(6)),this.$=Ie[Ce].substr(6);break;case 25:this.$=Ie[Ce].trim(),Pe.setAccTitle(this.$);break;case 26:case 27:this.$=Ie[Ce].trim(),Pe.setAccDescription(this.$);break;case 28:Pe.addSection(Ie[Ce].substr(8)),this.$=Ie[Ce].substr(8);break;case 30:Pe.addTask(Ie[Ce-1],Ie[Ce]),this.$="task";break;case 31:this.$=Ie[Ce-1],Pe.setClickEvent(Ie[Ce-1],Ie[Ce],null);break;case 32:this.$=Ie[Ce-2],Pe.setClickEvent(Ie[Ce-2],Ie[Ce-1],Ie[Ce]);break;case 33:this.$=Ie[Ce-2],Pe.setClickEvent(Ie[Ce-2],Ie[Ce-1],null),Pe.setLink(Ie[Ce-2],Ie[Ce]);break;case 34:this.$=Ie[Ce-3],Pe.setClickEvent(Ie[Ce-3],Ie[Ce-2],Ie[Ce-1]),Pe.setLink(Ie[Ce-3],Ie[Ce]);break;case 35:this.$=Ie[Ce-2],Pe.setClickEvent(Ie[Ce-2],Ie[Ce],null),Pe.setLink(Ie[Ce-2],Ie[Ce-1]);break;case 36:this.$=Ie[Ce-3],Pe.setClickEvent(Ie[Ce-3],Ie[Ce-1],Ie[Ce]),Pe.setLink(Ie[Ce-3],Ie[Ce-2]);break;case 37:this.$=Ie[Ce-1],Pe.setLink(Ie[Ce-1],Ie[Ce]);break;case 38:case 44:this.$=Ie[Ce-1]+" "+Ie[Ce];break;case 39:case 40:case 42:this.$=Ie[Ce-2]+" "+Ie[Ce-1]+" "+Ie[Ce];break;case 41:case 43:this.$=Ie[Ce-3]+" "+Ie[Ce-2]+" "+Ie[Ce-1]+" "+Ie[Ce];break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:u,13:d,14:p,15:v,16:b,17:y,18:E,19:_,20:A,21:P,22:R,23:B,24:j,25:W,26:ee,27:ie,28:oe,30:be,32:ge,33:ae,34:23,35:ne,37:se},i(a,[2,7],{1:[2,1]}),i(a,[2,3]),{9:33,11:17,12:u,13:d,14:p,15:v,16:b,17:y,18:E,19:_,20:A,21:P,22:R,23:B,24:j,25:W,26:ee,27:ie,28:oe,30:be,32:ge,33:ae,34:23,35:ne,37:se},i(a,[2,5]),i(a,[2,6]),i(a,[2,15]),i(a,[2,16]),i(a,[2,17]),i(a,[2,18]),i(a,[2,19]),i(a,[2,20]),i(a,[2,21]),i(a,[2,22]),i(a,[2,23]),i(a,[2,24]),{29:[1,34]},{31:[1,35]},i(a,[2,27]),i(a,[2,28]),i(a,[2,29]),{36:[1,36]},i(a,[2,8]),i(a,[2,9]),i(a,[2,10]),i(a,[2,11]),i(a,[2,12]),i(a,[2,13]),i(a,[2,14]),{38:[1,37],40:[1,38]},i(a,[2,4]),i(a,[2,25]),i(a,[2,26]),i(a,[2,30]),i(a,[2,31],{39:[1,39],40:[1,40]}),i(a,[2,37],{38:[1,41]}),i(a,[2,32],{40:[1,42]}),i(a,[2,33]),i(a,[2,35],{39:[1,43]}),i(a,[2,34]),i(a,[2,36])],defaultActions:{},parseError:function(xe,U){if(U.recoverable)this.trace(xe);else{var Be=new Error(xe);throw Be.hash=U,Be}},parse:function(xe){var U=this,Be=[0],Pe=[],je=[null],Ie=[],Se=this.table,Ce="",ke=0,Ke=0,zt=2,Ne=1,pn=Ie.slice.call(arguments,1),Tt=Object.create(this.lexer),Et={yy:{}};for(var Wt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Wt)&&(Et.yy[Wt]=this.yy[Wt]);Tt.setInput(xe,Et.yy),Et.yy.lexer=Tt,Et.yy.parser=this,typeof Tt.yylloc>"u"&&(Tt.yylloc={});var un=Tt.yylloc;Ie.push(un);var yt=Tt.options&&Tt.options.ranges;typeof Et.yy.parseError=="function"?this.parseError=Et.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Bt(){var Hs;return Hs=Pe.pop()||Tt.lex()||Ne,typeof Hs!="number"&&(Hs instanceof Array&&(Pe=Hs,Hs=Pe.pop()),Hs=U.symbols_[Hs]||Hs),Hs}for(var Ze,Dt,kt,Nn,ht={},qr,xt,Ri,wi;;){if(Dt=Be[Be.length-1],this.defaultActions[Dt]?kt=this.defaultActions[Dt]:((Ze===null||typeof Ze>"u")&&(Ze=Bt()),kt=Se[Dt]&&Se[Dt][Ze]),typeof kt>"u"||!kt.length||!kt[0]){var ia="";wi=[];for(qr in Se[Dt])this.terminals_[qr]&&qr>zt&&wi.push("'"+this.terminals_[qr]+"'");Tt.showPosition?ia="Parse error on line "+(ke+1)+`: +`+Tt.showPosition()+` +Expecting `+wi.join(", ")+", got '"+(this.terminals_[Ze]||Ze)+"'":ia="Parse error on line "+(ke+1)+": Unexpected "+(Ze==Ne?"end of input":"'"+(this.terminals_[Ze]||Ze)+"'"),this.parseError(ia,{text:Tt.match,token:this.terminals_[Ze]||Ze,line:Tt.yylineno,loc:un,expected:wi})}if(kt[0]instanceof Array&&kt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Dt+", token: "+Ze);switch(kt[0]){case 1:Be.push(Ze),je.push(Tt.yytext),Ie.push(Tt.yylloc),Be.push(kt[1]),Ze=null,Ke=Tt.yyleng,Ce=Tt.yytext,ke=Tt.yylineno,un=Tt.yylloc;break;case 2:if(xt=this.productions_[kt[1]][1],ht.$=je[je.length-xt],ht._$={first_line:Ie[Ie.length-(xt||1)].first_line,last_line:Ie[Ie.length-1].last_line,first_column:Ie[Ie.length-(xt||1)].first_column,last_column:Ie[Ie.length-1].last_column},yt&&(ht._$.range=[Ie[Ie.length-(xt||1)].range[0],Ie[Ie.length-1].range[1]]),Nn=this.performAction.apply(ht,[Ce,Ke,ke,Et.yy,kt[1],je,Ie].concat(pn)),typeof Nn<"u")return Nn;xt&&(Be=Be.slice(0,-1*xt*2),je=je.slice(0,-1*xt),Ie=Ie.slice(0,-1*xt)),Be.push(this.productions_[kt[1]][0]),je.push(ht.$),Ie.push(ht._$),Ri=Se[Be[Be.length-2]][Be[Be.length-1]],Be.push(Ri);break;case 3:return!0}}return!0}},X=function(){var G={EOF:1,parseError:function(U,Be){if(this.yy.parser)this.yy.parser.parseError(U,Be);else throw new Error(U)},setInput:function(xe,U){return this.yy=U||this.yy||{},this._input=xe,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var xe=this._input[0];this.yytext+=xe,this.yyleng++,this.offset++,this.match+=xe,this.matched+=xe;var U=xe.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),xe},unput:function(xe){var U=xe.length,Be=xe.split(/(?:\r\n?|\n)/g);this._input=xe+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-U),this.offset-=U;var Pe=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),Be.length-1&&(this.yylineno-=Be.length-1);var je=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:Be?(Be.length===Pe.length?this.yylloc.first_column:0)+Pe[Pe.length-Be.length].length-Be[0].length:this.yylloc.first_column-U},this.options.ranges&&(this.yylloc.range=[je[0],je[0]+this.yyleng-U]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(xe){this.unput(this.match.slice(xe))},pastInput:function(){var xe=this.matched.substr(0,this.matched.length-this.match.length);return(xe.length>20?"...":"")+xe.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var xe=this.match;return xe.length<20&&(xe+=this._input.substr(0,20-xe.length)),(xe.substr(0,20)+(xe.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var xe=this.pastInput(),U=new Array(xe.length+1).join("-");return xe+this.upcomingInput()+` +`+U+"^"},test_match:function(xe,U){var Be,Pe,je;if(this.options.backtrack_lexer&&(je={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&&(je.yylloc.range=this.yylloc.range.slice(0))),Pe=xe[0].match(/(?:\r\n?|\n).*/g),Pe&&(this.yylineno+=Pe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Pe?Pe[Pe.length-1].length-Pe[Pe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+xe[0].length},this.yytext+=xe[0],this.match+=xe[0],this.matches=xe,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(xe[0].length),this.matched+=xe[0],Be=this.performAction.call(this,this.yy,this,U,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Be)return Be;if(this._backtrack){for(var Ie in je)this[Ie]=je[Ie];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var xe,U,Be,Pe;this._more||(this.yytext="",this.match="");for(var je=this._currentRules(),Ie=0;IeU[0].length)){if(U=Be,Pe=Ie,this.options.backtrack_lexer){if(xe=this.test_match(Be,je[Ie]),xe!==!1)return xe;if(this._backtrack){U=!1;continue}else return!1}else if(!this.options.flex)break}return U?(xe=this.test_match(U,je[Pe]),xe!==!1?xe:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var U=this.next();return U||this.lex()},begin:function(U){this.conditionStack.push(U)},popState:function(){var U=this.conditionStack.length-1;return U>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(U){return U=this.conditionStack.length-1-Math.abs(U||0),U>=0?this.conditionStack[U]:"INITIAL"},pushState:function(U){this.begin(U)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(U,Be,Pe,je){switch(Pe){case 0:return this.begin("open_directive"),"open_directive";case 1:return this.begin("acc_title"),28;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),30;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 40;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 38;case 21:this.popState();break;case 22:return 39;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 37;case 26:return 4;case 27:return 19;case 28:return 20;case 29:return 21;case 30:return 22;case 31:return 23;case 32:return 25;case 33:return 24;case 34:return 26;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return"date";case 43:return 27;case 44:return"accDescription";case 45:return 33;case 46:return 35;case 47:return 36;case 48:return":";case 49:return 6;case 50:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],inclusive:!0}}};return G}();de.lexer=X;function pe(){this.yy={}}return pe.prototype=de,de.Parser=pe,new pe}();dve.parser=dve;const Wtn=dve;var SGe={exports:{}};(function(i,a){(function(u,d){i.exports=d()})(Dg,function(){var u="day";return function(d,p,v){var b=function(_){return _.add(4-_.isoWeekday(),u)},y=p.prototype;y.isoWeekYear=function(){return b(this).year()},y.isoWeek=function(_){if(!this.$utils().u(_))return this.add(7*(_-this.isoWeek()),u);var A,P,R,B,j=b(this),W=(A=this.isoWeekYear(),P=this.$u,R=(P?v.utc:v)().year(A).startOf("year"),B=4-R.isoWeekday(),R.isoWeekday()>4&&(B+=7),R.add(B,u));return j.diff(W,"week")+1},y.isoWeekday=function(_){return this.$utils().u(_)?this.day()||7:this.day(this.day()%7?_:_-7)};var E=y.startOf;y.startOf=function(_,A){var P=this.$utils(),R=!!P.u(A)||A;return P.p(_)==="isoweek"?R?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):E.bind(this)(_,A)}}})})(SGe);var Ytn=SGe.exports;const Xtn=dC(Ytn);var _Ge={exports:{}};(function(i,a){(function(u,d){i.exports=d()})(Dg,function(){var u={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},d=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,p=/\d\d/,v=/\d\d?/,b=/\d*[^-_:/,()\s\d]+/,y={},E=function(W){return(W=+W)+(W>68?1900:2e3)},_=function(W){return function(ee){this[W]=+ee}},A=[/[+-]\d\d:?(\d\d)?|Z/,function(W){(this.zone||(this.zone={})).offset=function(ee){if(!ee||ee==="Z")return 0;var ie=ee.match(/([+-]|\d\d)/g),oe=60*ie[1]+(+ie[2]||0);return oe===0?0:ie[0]==="+"?-oe:oe}(W)}],P=function(W){var ee=y[W];return ee&&(ee.indexOf?ee:ee.s.concat(ee.f))},R=function(W,ee){var ie,oe=y.meridiem;if(oe){for(var be=1;be<=24;be+=1)if(W.indexOf(oe(be,0,ee))>-1){ie=be>12;break}}else ie=W===(ee?"pm":"PM");return ie},B={A:[b,function(W){this.afternoon=R(W,!1)}],a:[b,function(W){this.afternoon=R(W,!0)}],S:[/\d/,function(W){this.milliseconds=100*+W}],SS:[p,function(W){this.milliseconds=10*+W}],SSS:[/\d{3}/,function(W){this.milliseconds=+W}],s:[v,_("seconds")],ss:[v,_("seconds")],m:[v,_("minutes")],mm:[v,_("minutes")],H:[v,_("hours")],h:[v,_("hours")],HH:[v,_("hours")],hh:[v,_("hours")],D:[v,_("day")],DD:[p,_("day")],Do:[b,function(W){var ee=y.ordinal,ie=W.match(/\d+/);if(this.day=ie[0],ee)for(var oe=1;oe<=31;oe+=1)ee(oe).replace(/\[|\]/g,"")===W&&(this.day=oe)}],M:[v,_("month")],MM:[p,_("month")],MMM:[b,function(W){var ee=P("months"),ie=(P("monthsShort")||ee.map(function(oe){return oe.slice(0,3)})).indexOf(W)+1;if(ie<1)throw new Error;this.month=ie%12||ie}],MMMM:[b,function(W){var ee=P("months").indexOf(W)+1;if(ee<1)throw new Error;this.month=ee%12||ee}],Y:[/[+-]?\d+/,_("year")],YY:[p,function(W){this.year=E(W)}],YYYY:[/\d{4}/,_("year")],Z:A,ZZ:A};function j(W){var ee,ie;ee=W,ie=y&&y.formats;for(var oe=(W=ee.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(X,pe,G){var xe=G&&G.toUpperCase();return pe||ie[G]||u[G]||ie[xe].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(U,Be,Pe){return Be||Pe.slice(1)})})).match(d),be=oe.length,ge=0;ge-1)return new Date((Ie==="X"?1e3:1)*je);var Ce=j(Ie)(je),ke=Ce.year,Ke=Ce.month,zt=Ce.day,Ne=Ce.hours,pn=Ce.minutes,Tt=Ce.seconds,Et=Ce.milliseconds,Wt=Ce.zone,un=new Date,yt=zt||(ke||Ke?1:un.getDate()),Bt=ke||un.getFullYear(),Ze=0;ke&&!Ke||(Ze=Ke>0?Ke-1:un.getMonth());var Dt=Ne||0,kt=pn||0,Nn=Tt||0,ht=Et||0;return Wt?new Date(Date.UTC(Bt,Ze,yt,Dt,kt,Nn,ht+60*Wt.offset*1e3)):Se?new Date(Date.UTC(Bt,Ze,yt,Dt,kt,Nn,ht)):new Date(Bt,Ze,yt,Dt,kt,Nn,ht)}catch{return new Date("")}}(ae,de,ne),this.init(),xe&&xe!==!0&&(this.$L=this.locale(xe).$L),G&&ae!=this.format(de)&&(this.$d=new Date("")),y={}}else if(de instanceof Array)for(var U=de.length,Be=1;Be<=U;Be+=1){se[1]=de[Be-1];var Pe=ie.apply(this,se);if(Pe.isValid()){this.$d=Pe.$d,this.$L=Pe.$L,this.init();break}Be===U&&(this.$d=new Date(""))}else be.call(this,ge)}}})})(_Ge);var Qtn=_Ge.exports;const Jtn=dC(Qtn);var AGe={exports:{}};(function(i,a){(function(u,d){i.exports=d()})(Dg,function(){return function(u,d){var p=d.prototype,v=p.format;p.format=function(b){var y=this,E=this.$locale();if(!this.isValid())return v.bind(this)(b);var _=this.$utils(),A=(b||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(P){switch(P){case"Q":return Math.ceil((y.$M+1)/3);case"Do":return E.ordinal(y.$D);case"gggg":return y.weekYear();case"GGGG":return y.isoWeekYear();case"wo":return E.ordinal(y.week(),"W");case"w":case"ww":return _.s(y.week(),P==="w"?1:2,"0");case"W":case"WW":return _.s(y.isoWeek(),P==="W"?1:2,"0");case"k":case"kk":return _.s(String(y.$H===0?24:y.$H),P==="k"?1:2,"0");case"X":return Math.floor(y.$d.getTime()/1e3);case"x":return y.$d.getTime();case"z":return"["+y.offsetName()+"]";case"zzz":return"["+y.offsetName("long")+"]";default:return P}});return v.bind(this)(A)}}})})(AGe);var Ztn=AGe.exports;const enn=dC(Ztn);Ig.extend(Xtn),Ig.extend(Jtn),Ig.extend(enn);let a5="",gve="",pve,bve="",UR=[],VR=[],mve={},vve=[],TJ=[],eI="",wve="";const LGe=["active","done","crit","milestone"];let yve=[],GR=!1,xve=!1,kve="sunday",Tve=0;const tnn=function(){vve=[],TJ=[],eI="",yve=[],EJ=0,Cve=void 0,CJ=void 0,m1=[],a5="",gve="",wve="",pve=void 0,bve="",UR=[],VR=[],GR=!1,xve=!1,Tve=0,mve={},Rg(),kve="sunday"},nnn=function(i){gve=i},rnn=function(){return gve},inn=function(i){pve=i},snn=function(){return pve},ann=function(i){bve=i},onn=function(){return bve},cnn=function(i){a5=i},unn=function(){GR=!0},lnn=function(){return GR},hnn=function(){xve=!0},fnn=function(){return xve},dnn=function(i){wve=i},gnn=function(){return wve},pnn=function(){return a5},bnn=function(i){UR=i.toLowerCase().split(/[\s,]+/)},mnn=function(){return UR},vnn=function(i){VR=i.toLowerCase().split(/[\s,]+/)},wnn=function(){return VR},ynn=function(){return mve},xnn=function(i){eI=i,vve.push(i)},knn=function(){return vve},Tnn=function(){let i=PGe();const a=10;let u=0;for(;!i&&u=6&&u.includes("weekends")||u.includes(i.format("dddd").toLowerCase())?!0:u.includes(i.format(a.trim()))},Enn=function(i){kve=i},Cnn=function(){return kve},DGe=function(i,a,u,d){if(!u.length||i.manualEndTime)return;let p;i.startTime instanceof Date?p=Ig(i.startTime):p=Ig(i.startTime,a,!0),p=p.add(1,"d");let v;i.endTime instanceof Date?v=Ig(i.endTime):v=Ig(i.endTime,a,!0);const[b,y]=Snn(p,v,a,u,d);i.endTime=b.toDate(),i.renderEndTime=y},Snn=function(i,a,u,d,p){let v=!1,b=null;const y=a.add(1e4,"d");for(;i<=a;){if(v||(b=a.toDate()),v=MGe(i,u,d,p),v&&(a=a.add(1,"d"),a>y))throw new Error("Failed to find a valid date that was not excluded by `excludes` after 10,000 iterations.");i=i.add(1,"d")}return[a,b]},Eve=function(i,a,u){u=u.trim();const p=/^after\s+(?[\d\w- ]+)/.exec(u);if(p!==null){let b=null;for(const E of p.groups.ids.split(" ")){let _=JC(E);_!==void 0&&(!b||_.endTime>b.endTime)&&(b=_)}if(b)return b.endTime;const y=new Date;return y.setHours(0,0,0,0),y}let v=Ig(u,a.trim(),!0);if(v.isValid())return v.toDate();{Xe.debug("Invalid date:"+u),Xe.debug("With date format:"+a.trim());const b=new Date(u);if(b===void 0||isNaN(b.getTime())||b.getFullYear()<-1e4||b.getFullYear()>1e4)throw new Error("Invalid date:"+u);return b}},IGe=function(i){const a=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(i.trim());return a!==null?[Number.parseFloat(a[1]),a[2]]:[NaN,"ms"]},OGe=function(i,a,u,d=!1){u=u.trim();const v=/^until\s+(?[\d\w- ]+)/.exec(u);if(v!==null){let A=null;for(const R of v.groups.ids.split(" ")){let B=JC(R);B!==void 0&&(!A||B.startTime{window.open(u,"_self")}),mve[d]=u)}),BGe(i,"clickable")},BGe=function(i,a){i.split(",").forEach(function(u){let d=JC(u);d!==void 0&&d.classes.push(a)})},Inn=function(i,a,u){if(qt().securityLevel!=="loose"||a===void 0)return;let d=[];if(typeof u=="string"){d=u.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let v=0;v{So.runFunc(a,...d)})},FGe=function(i,a){yve.push(function(){const u=document.querySelector(`[id="${i}"]`);u!==null&&u.addEventListener("click",function(){a()})},function(){const u=document.querySelector(`[id="${i}-text"]`);u!==null&&u.addEventListener("click",function(){a()})})},Onn={getConfig:()=>qt().gantt,clear:tnn,setDateFormat:cnn,getDateFormat:pnn,enableInclusiveEndDates:unn,endDatesAreInclusive:lnn,enableTopAxis:hnn,topAxisEnabled:fnn,setAxisFormat:nnn,getAxisFormat:rnn,setTickInterval:inn,getTickInterval:snn,setTodayMarker:ann,getTodayMarker:onn,setAccTitle:jg,getAccTitle:Mp,setDiagramTitle:pm,getDiagramTitle:Op,setDisplayMode:dnn,getDisplayMode:gnn,setAccDescription:Dp,getAccDescription:Ip,addSection:xnn,getSections:knn,getTasks:Tnn,addTask:Lnn,findTaskById:JC,addTaskOrg:Mnn,setIncludes:bnn,getIncludes:mnn,setExcludes:vnn,getExcludes:wnn,setClickEvent:function(i,a,u){i.split(",").forEach(function(d){Inn(d,a,u)}),BGe(i,"clickable")},setLink:Dnn,getLinks:ynn,bindFunctions:function(i){yve.forEach(function(a){a(i)})},parseDuration:IGe,isInvalidDate:MGe,setWeekday:Enn,getWeekday:Cnn};function RGe(i,a,u){let d=!0;for(;d;)d=!1,u.forEach(function(p){const v="^\\s*"+p+"\\s*$",b=new RegExp(v);i[0].match(b)&&(a[p]=!0,i.shift(1),d=!0)})}const Nnn=function(){Xe.debug("Something is calling, setConf, remove the call")},jGe={monday:jF,tuesday:jFe,wednesday:$Fe,thursday:kC,friday:zFe,saturday:qFe,sunday:RF},Pnn=(i,a)=>{let u=[...i].map(()=>-1/0),d=[...i].sort((v,b)=>v.startTime-b.startTime||v.order-b.order),p=0;for(const v of d)for(let b=0;b=u[b]){u[b]=v.endTime,v.order=b+a,b>p&&(p=b);break}return p};let V7;const Bnn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Wtn,db:Onn,renderer:{setConf:Nnn,draw:function(i,a,u,d){const p=qt().gantt,v=qt().securityLevel;let b;v==="sandbox"&&(b=Dr("#i"+a));const y=Dr(v==="sandbox"?b.nodes()[0].contentDocument.body:"body"),E=v==="sandbox"?b.nodes()[0].contentDocument:document,_=E.getElementById(a);V7=_.parentElement.offsetWidth,V7===void 0&&(V7=1200),p.useWidth!==void 0&&(V7=p.useWidth);const A=d.db.getTasks();let P=[];for(const de of A)P.push(de.type);P=se(P);const R={};let B=2*p.topPadding;if(d.db.getDisplayMode()==="compact"||p.displayMode==="compact"){const de={};for(const pe of A)de[pe.section]===void 0?de[pe.section]=[pe]:de[pe.section].push(pe);let X=0;for(const pe of Object.keys(de)){const G=Pnn(de[pe],X)+1;X+=G,B+=G*(p.barHeight+p.barGap),R[pe]=G}}else{B+=A.length*(p.barHeight+p.barGap);for(const de of P)R[de]=A.filter(X=>X.type===de).length}_.setAttribute("viewBox","0 0 "+V7+" "+B);const j=y.select(`[id="${a}"]`),W=qNt().domain([ELt(A,function(de){return de.startTime}),TLt(A,function(de){return de.endTime})]).rangeRound([0,V7-p.leftPadding-p.rightPadding]);function ee(de,X){const pe=de.startTime,G=X.startTime;let xe=0;return pe>G?xe=1:peke.order))].map(ke=>de.find(Ke=>Ke.order===ke));j.append("g").selectAll("rect").data(je).enter().append("rect").attr("x",0).attr("y",function(ke,Ke){return Ke=ke.order,Ke*X+pe-2}).attr("width",function(){return Be-p.rightPadding/2}).attr("height",X).attr("class",function(ke){for(const[Ke,zt]of P.entries())if(ke.type===zt)return"section section"+Ke%p.numberSectionStyles;return"section section0"});const Ie=j.append("g").selectAll("rect").data(de).enter(),Se=d.db.getLinks();if(Ie.append("rect").attr("id",function(ke){return ke.id}).attr("rx",3).attr("ry",3).attr("x",function(ke){return ke.milestone?W(ke.startTime)+G+.5*(W(ke.endTime)-W(ke.startTime))-.5*xe:W(ke.startTime)+G}).attr("y",function(ke,Ke){return Ke=ke.order,Ke*X+pe}).attr("width",function(ke){return ke.milestone?xe:W(ke.renderEndTime||ke.endTime)-W(ke.startTime)}).attr("height",xe).attr("transform-origin",function(ke,Ke){return Ke=ke.order,(W(ke.startTime)+G+.5*(W(ke.endTime)-W(ke.startTime))).toString()+"px "+(Ke*X+pe+.5*xe).toString()+"px"}).attr("class",function(ke){const Ke="task";let zt="";ke.classes.length>0&&(zt=ke.classes.join(" "));let Ne=0;for(const[Tt,Et]of P.entries())ke.type===Et&&(Ne=Tt%p.numberSectionStyles);let pn="";return ke.active?ke.crit?pn+=" activeCrit":pn=" active":ke.done?ke.crit?pn=" doneCrit":pn=" done":ke.crit&&(pn+=" crit"),pn.length===0&&(pn=" task"),ke.milestone&&(pn=" milestone "+pn),pn+=Ne,pn+=" "+zt,Ke+pn}),Ie.append("text").attr("id",function(ke){return ke.id+"-text"}).text(function(ke){return ke.task}).attr("font-size",p.fontSize).attr("x",function(ke){let Ke=W(ke.startTime),zt=W(ke.renderEndTime||ke.endTime);ke.milestone&&(Ke+=.5*(W(ke.endTime)-W(ke.startTime))-.5*xe),ke.milestone&&(zt=Ke+xe);const Ne=this.getBBox().width;return Ne>zt-Ke?zt+Ne+1.5*p.leftPadding>Be?Ke+G-5:zt+G+5:(zt-Ke)/2+Ke+G}).attr("y",function(ke,Ke){return Ke=ke.order,Ke*X+p.barHeight/2+(p.fontSize/2-2)+pe}).attr("text-height",xe).attr("class",function(ke){const Ke=W(ke.startTime);let zt=W(ke.endTime);ke.milestone&&(zt=Ke+xe);const Ne=this.getBBox().width;let pn="";ke.classes.length>0&&(pn=ke.classes.join(" "));let Tt=0;for(const[Wt,un]of P.entries())ke.type===un&&(Tt=Wt%p.numberSectionStyles);let Et="";return ke.active&&(ke.crit?Et="activeCritText"+Tt:Et="activeText"+Tt),ke.done?ke.crit?Et=Et+" doneCritText"+Tt:Et=Et+" doneText"+Tt:ke.crit&&(Et=Et+" critText"+Tt),ke.milestone&&(Et+=" milestoneText"),Ne>zt-Ke?zt+Ne+1.5*p.leftPadding>Be?pn+" taskTextOutsideLeft taskTextOutside"+Tt+" "+Et:pn+" taskTextOutsideRight taskTextOutside"+Tt+" "+Et+" width-"+Ne:pn+" taskText taskText"+Tt+" "+Et+" width-"+Ne}),qt().securityLevel==="sandbox"){let ke;ke=Dr("#i"+a);const Ke=ke.nodes()[0].contentDocument;Ie.filter(function(zt){return Se[zt.id]!==void 0}).each(function(zt){var Ne=Ke.querySelector("#"+zt.id),pn=Ke.querySelector("#"+zt.id+"-text");const Tt=Ne.parentNode;var Et=Ke.createElement("a");Et.setAttribute("xlink:href",Se[zt.id]),Et.setAttribute("target","_top"),Tt.appendChild(Et),Et.appendChild(Ne),Et.appendChild(pn)})}}function be(de,X,pe,G,xe,U,Be,Pe){if(Be.length===0&&Pe.length===0)return;let je,Ie;for(const{startTime:Ne,endTime:pn}of U)(je===void 0||NeIe)&&(Ie=pn);if(!je||!Ie)return;if(Ig(Ie).diff(Ig(je),"year")>5){Xe.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}const Se=d.db.getDateFormat(),Ce=[];let ke=null,Ke=Ig(je);for(;Ke.valueOf()<=Ie;)d.db.isInvalidDate(Ke,Se,Be,Pe)?ke?ke.end=Ke:ke={start:Ke,end:Ke}:ke&&(Ce.push(ke),ke=null),Ke=Ke.add(1,"d");j.append("g").selectAll("rect").data(Ce).enter().append("rect").attr("id",function(Ne){return"exclude-"+Ne.start.format("YYYY-MM-DD")}).attr("x",function(Ne){return W(Ne.start)+pe}).attr("y",p.gridLineStartPadding).attr("width",function(Ne){const pn=Ne.end.add(1,"day");return W(pn)-W(Ne.start)}).attr("height",xe-X-p.gridLineStartPadding).attr("transform-origin",function(Ne,pn){return(W(Ne.start)+pe+.5*(W(Ne.end)-W(Ne.start))).toString()+"px "+(pn*de+.5*xe).toString()+"px"}).attr("class","exclude-range")}function ge(de,X,pe,G){let xe=OLt(W).tickSize(-G+X+p.gridLineStartPadding).tickFormat(fX(d.db.getAxisFormat()||p.axisFormat||"%Y-%m-%d"));const Be=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(d.db.getTickInterval()||p.tickInterval);if(Be!==null){const Pe=Be[1],je=Be[2],Ie=d.db.getWeekday()||p.weekday;switch(je){case"millisecond":xe.ticks(oD.every(Pe));break;case"second":xe.ticks(m9.every(Pe));break;case"minute":xe.ticks(BF.every(Pe));break;case"hour":xe.ticks(FF.every(Pe));break;case"day":xe.ticks(yC.every(Pe));break;case"week":xe.ticks(jGe[Ie].every(Pe));break;case"month":xe.ticks($F.every(Pe));break}}if(j.append("g").attr("class","grid").attr("transform","translate("+de+", "+(G-50)+")").call(xe).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),d.db.topAxisEnabled()||p.topAxis){let Pe=ILt(W).tickSize(-G+X+p.gridLineStartPadding).tickFormat(fX(d.db.getAxisFormat()||p.axisFormat||"%Y-%m-%d"));if(Be!==null){const je=Be[1],Ie=Be[2],Se=d.db.getWeekday()||p.weekday;switch(Ie){case"millisecond":Pe.ticks(oD.every(je));break;case"second":Pe.ticks(m9.every(je));break;case"minute":Pe.ticks(BF.every(je));break;case"hour":Pe.ticks(FF.every(je));break;case"day":Pe.ticks(yC.every(je));break;case"week":Pe.ticks(jGe[Se].every(je));break;case"month":Pe.ticks($F.every(je));break}}j.append("g").attr("class","grid").attr("transform","translate("+de+", "+X+")").call(Pe).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function ae(de,X){let pe=0;const G=Object.keys(R).map(xe=>[xe,R[xe]]);j.append("g").selectAll("text").data(G).enter().append(function(xe){const U=xe[0].split(oi.lineBreakRegex),Be=-(U.length-1)/2,Pe=E.createElementNS("http://www.w3.org/2000/svg","text");Pe.setAttribute("dy",Be+"em");for(const[je,Ie]of U.entries()){const Se=E.createElementNS("http://www.w3.org/2000/svg","tspan");Se.setAttribute("alignment-baseline","central"),Se.setAttribute("x","10"),je>0&&Se.setAttribute("dy","1em"),Se.textContent=Ie,Pe.appendChild(Se)}return Pe}).attr("x",10).attr("y",function(xe,U){if(U>0)for(let Be=0;Be` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${i.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${i.sectionBkgColor}; + } + + .section2 { + fill: ${i.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${i.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${i.titleColor}; + } + + .sectionTitle1 { + fill: ${i.titleColor}; + } + + .sectionTitle2 { + fill: ${i.titleColor}; + } + + .sectionTitle3 { + fill: ${i.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${i.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${i.fontFamily}; + fill: ${i.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${i.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${i.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${i.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${i.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${i.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${i.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${i.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${i.taskBkgColor}; + stroke: ${i.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${i.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${i.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${i.activeTaskBkgColor}; + stroke: ${i.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${i.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${i.doneTaskBorderColor}; + fill: ${i.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${i.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${i.critBorderColor}; + fill: ${i.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${i.critBorderColor}; + fill: ${i.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${i.critBorderColor}; + fill: ${i.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${i.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${i.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.titleColor||i.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`}},Symbol.toStringTag,{value:"Module"}));var Sve=function(){var i=function(v,b,y,E){for(y=y||{},E=v.length;E--;y[v[E]]=b);return y},a=[6,9,10],u={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(b,y,E,_,A,P,R){switch(P.length-1,A){case 1:return _;case 4:break;case 6:_.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},i(a,[2,3]),i(a,[2,4]),i(a,[2,5]),i(a,[2,6])],defaultActions:{4:[2,1]},parseError:function(b,y){if(y.recoverable)this.trace(b);else{var E=new Error(b);throw E.hash=y,E}},parse:function(b){var y=this,E=[0],_=[],A=[null],P=[],R=this.table,B="",j=0,W=0,ee=2,ie=1,oe=P.slice.call(arguments,1),be=Object.create(this.lexer),ge={yy:{}};for(var ae in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ae)&&(ge.yy[ae]=this.yy[ae]);be.setInput(b,ge.yy),ge.yy.lexer=be,ge.yy.parser=this,typeof be.yylloc>"u"&&(be.yylloc={});var ne=be.yylloc;P.push(ne);var se=be.options&&be.options.ranges;typeof ge.yy.parseError=="function"?this.parseError=ge.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function de(){var Ce;return Ce=_.pop()||be.lex()||ie,typeof Ce!="number"&&(Ce instanceof Array&&(_=Ce,Ce=_.pop()),Ce=y.symbols_[Ce]||Ce),Ce}for(var X,pe,G,xe,U={},Be,Pe,je,Ie;;){if(pe=E[E.length-1],this.defaultActions[pe]?G=this.defaultActions[pe]:((X===null||typeof X>"u")&&(X=de()),G=R[pe]&&R[pe][X]),typeof G>"u"||!G.length||!G[0]){var Se="";Ie=[];for(Be in R[pe])this.terminals_[Be]&&Be>ee&&Ie.push("'"+this.terminals_[Be]+"'");be.showPosition?Se="Parse error on line "+(j+1)+`: +`+be.showPosition()+` +Expecting `+Ie.join(", ")+", got '"+(this.terminals_[X]||X)+"'":Se="Parse error on line "+(j+1)+": Unexpected "+(X==ie?"end of input":"'"+(this.terminals_[X]||X)+"'"),this.parseError(Se,{text:be.match,token:this.terminals_[X]||X,line:be.yylineno,loc:ne,expected:Ie})}if(G[0]instanceof Array&&G.length>1)throw new Error("Parse Error: multiple actions possible at state: "+pe+", token: "+X);switch(G[0]){case 1:E.push(X),A.push(be.yytext),P.push(be.yylloc),E.push(G[1]),X=null,W=be.yyleng,B=be.yytext,j=be.yylineno,ne=be.yylloc;break;case 2:if(Pe=this.productions_[G[1]][1],U.$=A[A.length-Pe],U._$={first_line:P[P.length-(Pe||1)].first_line,last_line:P[P.length-1].last_line,first_column:P[P.length-(Pe||1)].first_column,last_column:P[P.length-1].last_column},se&&(U._$.range=[P[P.length-(Pe||1)].range[0],P[P.length-1].range[1]]),xe=this.performAction.apply(U,[B,W,j,ge.yy,G[1],A,P].concat(oe)),typeof xe<"u")return xe;Pe&&(E=E.slice(0,-1*Pe*2),A=A.slice(0,-1*Pe),P=P.slice(0,-1*Pe)),E.push(this.productions_[G[1]][0]),A.push(U.$),P.push(U._$),je=R[E[E.length-2]][E[E.length-1]],E.push(je);break;case 3:return!0}}return!0}},d=function(){var v={EOF:1,parseError:function(y,E){if(this.yy.parser)this.yy.parser.parseError(y,E);else throw new Error(y)},setInput:function(b,y){return this.yy=y||this.yy||{},this._input=b,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var b=this._input[0];this.yytext+=b,this.yyleng++,this.offset++,this.match+=b,this.matched+=b;var y=b.match(/(?:\r\n?|\n).*/g);return y?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),b},unput:function(b){var y=b.length,E=b.split(/(?:\r\n?|\n)/g);this._input=b+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-y),this.offset-=y;var _=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),E.length-1&&(this.yylineno-=E.length-1);var 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:E?(E.length===_.length?this.yylloc.first_column:0)+_[_.length-E.length].length-E[0].length:this.yylloc.first_column-y},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-y]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(b){this.unput(this.match.slice(b))},pastInput:function(){var b=this.matched.substr(0,this.matched.length-this.match.length);return(b.length>20?"...":"")+b.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var b=this.match;return b.length<20&&(b+=this._input.substr(0,20-b.length)),(b.substr(0,20)+(b.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var b=this.pastInput(),y=new Array(b.length+1).join("-");return b+this.upcomingInput()+` +`+y+"^"},test_match:function(b,y){var E,_,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))),_=b[0].match(/(?:\r\n?|\n).*/g),_&&(this.yylineno+=_.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:_?_[_.length-1].length-_[_.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,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(b[0].length),this.matched+=b[0],E=this.performAction.call(this,this.yy,this,y,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),E)return E;if(this._backtrack){for(var P in A)this[P]=A[P];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var b,y,E,_;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),P=0;Py[0].length)){if(y=E,_=P,this.options.backtrack_lexer){if(b=this.test_match(E,A[P]),b!==!1)return b;if(this._backtrack){y=!1;continue}else return!1}else if(!this.options.flex)break}return y?(b=this.test_match(y,A[_]),b!==!1?b:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var y=this.next();return y||this.lex()},begin:function(y){this.conditionStack.push(y)},popState:function(){var y=this.conditionStack.length-1;return y>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(y){return y=this.conditionStack.length-1-Math.abs(y||0),y>=0?this.conditionStack[y]:"INITIAL"},pushState:function(y){this.begin(y)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(y,E,_,A){switch(_){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};return v}();u.lexer=d;function p(){this.yy={}}return p.prototype=u,u.Parser=p,new p}();Sve.parser=Sve;const Fnn=Sve,$Ge={info:!1};let _ve=$Ge.info;const Rnn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Fnn,db:{clear:()=>{_ve=$Ge.info},setInfo:i=>{_ve=i},getInfo:()=>_ve},renderer:{draw:(i,a,u)=>{Xe.debug(`rendering info diagram +`+i);const d=dR(a);Fg(d,100,400,!0),d.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${u}`)}}}},Symbol.toStringTag,{value:"Module"}));var Ave=function(){var i=function(be,ge,ae,ne){for(ae=ae||{},ne=be.length;ne--;ae[be[ne]]=ge);return ae},a=[1,3],u=[1,4],d=[1,5],p=[1,6],v=[1,10,12,14,16,18,19,20,21,22],b=[2,4],y=[1,5,10,12,14,16,18,19,20,21,22],E=[20,21,22],_=[2,7],A=[1,12],P=[1,13],R=[1,14],B=[1,15],j=[1,16],W=[1,17],ee={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,PIE:5,document:6,showData:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,section:19,NEWLINE:20,";":21,EOF:22,$accept:0,$end:1},terminals_:{2:"error",5:"PIE",7:"showData",10:"txt",11:"value",12:"title",13:"title_value",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"section",20:"NEWLINE",21:";",22:"EOF"},productions_:[0,[3,2],[3,2],[3,3],[6,0],[6,2],[8,2],[9,0],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[4,1],[4,1],[4,1]],performAction:function(ge,ae,ne,se,de,X,pe){var G=X.length-1;switch(de){case 3:se.setShowData(!0);break;case 6:this.$=X[G-1];break;case 8:se.addSection(X[G-1],se.cleanupValue(X[G]));break;case 9:this.$=X[G].trim(),se.setDiagramTitle(this.$);break;case 10:this.$=X[G].trim(),se.setAccTitle(this.$);break;case 11:case 12:this.$=X[G].trim(),se.setAccDescription(this.$);break;case 13:se.addSection(X[G].substr(8)),this.$=X[G].substr(8);break}},table:[{3:1,4:2,5:a,20:u,21:d,22:p},{1:[3]},{3:7,4:2,5:a,20:u,21:d,22:p},i(v,b,{6:8,7:[1,9]}),i(y,[2,14]),i(y,[2,15]),i(y,[2,16]),{1:[2,1]},i(E,_,{8:10,9:11,1:[2,2],10:A,12:P,14:R,16:B,18:j,19:W}),i(v,b,{6:18}),i(v,[2,5]),{4:19,20:u,21:d,22:p},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},i(E,[2,12]),i(E,[2,13]),i(E,_,{8:10,9:11,1:[2,3],10:A,12:P,14:R,16:B,18:j,19:W}),i(v,[2,6]),i(E,[2,8]),i(E,[2,9]),i(E,[2,10]),i(E,[2,11])],defaultActions:{7:[2,1]},parseError:function(ge,ae){if(ae.recoverable)this.trace(ge);else{var ne=new Error(ge);throw ne.hash=ae,ne}},parse:function(ge){var ae=this,ne=[0],se=[],de=[null],X=[],pe=this.table,G="",xe=0,U=0,Be=2,Pe=1,je=X.slice.call(arguments,1),Ie=Object.create(this.lexer),Se={yy:{}};for(var Ce in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ce)&&(Se.yy[Ce]=this.yy[Ce]);Ie.setInput(ge,Se.yy),Se.yy.lexer=Ie,Se.yy.parser=this,typeof Ie.yylloc>"u"&&(Ie.yylloc={});var ke=Ie.yylloc;X.push(ke);var Ke=Ie.options&&Ie.options.ranges;typeof Se.yy.parseError=="function"?this.parseError=Se.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function zt(){var kt;return kt=se.pop()||Ie.lex()||Pe,typeof kt!="number"&&(kt instanceof Array&&(se=kt,kt=se.pop()),kt=ae.symbols_[kt]||kt),kt}for(var Ne,pn,Tt,Et,Wt={},un,yt,Bt,Ze;;){if(pn=ne[ne.length-1],this.defaultActions[pn]?Tt=this.defaultActions[pn]:((Ne===null||typeof Ne>"u")&&(Ne=zt()),Tt=pe[pn]&&pe[pn][Ne]),typeof Tt>"u"||!Tt.length||!Tt[0]){var Dt="";Ze=[];for(un in pe[pn])this.terminals_[un]&&un>Be&&Ze.push("'"+this.terminals_[un]+"'");Ie.showPosition?Dt="Parse error on line "+(xe+1)+`: +`+Ie.showPosition()+` +Expecting `+Ze.join(", ")+", got '"+(this.terminals_[Ne]||Ne)+"'":Dt="Parse error on line "+(xe+1)+": Unexpected "+(Ne==Pe?"end of input":"'"+(this.terminals_[Ne]||Ne)+"'"),this.parseError(Dt,{text:Ie.match,token:this.terminals_[Ne]||Ne,line:Ie.yylineno,loc:ke,expected:Ze})}if(Tt[0]instanceof Array&&Tt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+pn+", token: "+Ne);switch(Tt[0]){case 1:ne.push(Ne),de.push(Ie.yytext),X.push(Ie.yylloc),ne.push(Tt[1]),Ne=null,U=Ie.yyleng,G=Ie.yytext,xe=Ie.yylineno,ke=Ie.yylloc;break;case 2:if(yt=this.productions_[Tt[1]][1],Wt.$=de[de.length-yt],Wt._$={first_line:X[X.length-(yt||1)].first_line,last_line:X[X.length-1].last_line,first_column:X[X.length-(yt||1)].first_column,last_column:X[X.length-1].last_column},Ke&&(Wt._$.range=[X[X.length-(yt||1)].range[0],X[X.length-1].range[1]]),Et=this.performAction.apply(Wt,[G,U,xe,Se.yy,Tt[1],de,X].concat(je)),typeof Et<"u")return Et;yt&&(ne=ne.slice(0,-1*yt*2),de=de.slice(0,-1*yt),X=X.slice(0,-1*yt)),ne.push(this.productions_[Tt[1]][0]),de.push(Wt.$),X.push(Wt._$),Bt=pe[ne[ne.length-2]][ne[ne.length-1]],ne.push(Bt);break;case 3:return!0}}return!0}},ie=function(){var be={EOF:1,parseError:function(ae,ne){if(this.yy.parser)this.yy.parser.parseError(ae,ne);else throw new Error(ae)},setInput:function(ge,ae){return this.yy=ae||this.yy||{},this._input=ge,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ge=this._input[0];this.yytext+=ge,this.yyleng++,this.offset++,this.match+=ge,this.matched+=ge;var ae=ge.match(/(?:\r\n?|\n).*/g);return ae?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ge},unput:function(ge){var ae=ge.length,ne=ge.split(/(?:\r\n?|\n)/g);this._input=ge+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ae),this.offset-=ae;var se=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ne.length-1&&(this.yylineno-=ne.length-1);var de=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ne?(ne.length===se.length?this.yylloc.first_column:0)+se[se.length-ne.length].length-ne[0].length:this.yylloc.first_column-ae},this.options.ranges&&(this.yylloc.range=[de[0],de[0]+this.yyleng-ae]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ge){this.unput(this.match.slice(ge))},pastInput:function(){var ge=this.matched.substr(0,this.matched.length-this.match.length);return(ge.length>20?"...":"")+ge.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var ge=this.match;return ge.length<20&&(ge+=this._input.substr(0,20-ge.length)),(ge.substr(0,20)+(ge.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var ge=this.pastInput(),ae=new Array(ge.length+1).join("-");return ge+this.upcomingInput()+` +`+ae+"^"},test_match:function(ge,ae){var ne,se,de;if(this.options.backtrack_lexer&&(de={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(de.yylloc.range=this.yylloc.range.slice(0))),se=ge[0].match(/(?:\r\n?|\n).*/g),se&&(this.yylineno+=se.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:se?se[se.length-1].length-se[se.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ge[0].length},this.yytext+=ge[0],this.match+=ge[0],this.matches=ge,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(ge[0].length),this.matched+=ge[0],ne=this.performAction.call(this,this.yy,this,ae,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ne)return ne;if(this._backtrack){for(var X in de)this[X]=de[X];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ge,ae,ne,se;this._more||(this.yytext="",this.match="");for(var de=this._currentRules(),X=0;Xae[0].length)){if(ae=ne,se=X,this.options.backtrack_lexer){if(ge=this.test_match(ne,de[X]),ge!==!1)return ge;if(this._backtrack){ae=!1;continue}else return!1}else if(!this.options.flex)break}return ae?(ge=this.test_match(ae,de[se]),ge!==!1?ge:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ae=this.next();return ae||this.lex()},begin:function(ae){this.conditionStack.push(ae)},popState:function(){var ae=this.conditionStack.length-1;return ae>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ae){return ae=this.conditionStack.length-1-Math.abs(ae||0),ae>=0?this.conditionStack[ae]:"INITIAL"},pushState:function(ae){this.begin(ae)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(ae,ne,se,de){switch(se){case 0:break;case 1:break;case 2:return 20;case 3:break;case 4:break;case 5:return this.begin("title"),12;case 6:return this.popState(),"title_value";case 7:return this.begin("acc_title"),14;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),16;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 15:this.popState();break;case 16:return"txt";case 17:return 5;case 18:return 7;case 19:return"value";case 20:return 22}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[6],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,7,9,11,14,17,18,19,20],inclusive:!0}}};return be}();ee.lexer=ie;function oe(){this.yy={}}return oe.prototype=ee,ee.Parser=oe,new oe}();Ave.parser=Ave;const jnn=Ave,zGe=nh.pie,SJ={sections:{},showData:!1,config:zGe};let _J=SJ.sections,Lve=SJ.showData;const $nn=structuredClone(zGe),znn={getConfig:()=>structuredClone($nn),clear:()=>{_J=structuredClone(SJ.sections),Lve=SJ.showData,Rg()},setDiagramTitle:pm,getDiagramTitle:Op,setAccTitle:jg,getAccTitle:Mp,setAccDescription:Dp,getAccDescription:Ip,addSection:(i,a)=>{i=bh(i,qt()),_J[i]===void 0&&(_J[i]=a,Xe.debug(`added new section: ${i}, with value: ${a}`))},getSections:()=>_J,cleanupValue:i=>(i.substring(0,1)===":"&&(i=i.substring(1).trim()),Number(i.trim())),setShowData:i=>{Lve=i},getShowData:()=>Lve},qnn=i=>` + .pieCircle{ + stroke: ${i.pieStrokeColor}; + stroke-width : ${i.pieStrokeWidth}; + opacity : ${i.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${i.pieOuterStrokeColor}; + stroke-width: ${i.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${i.pieTitleTextSize}; + fill: ${i.pieTitleTextColor}; + font-family: ${i.fontFamily}; + } + .slice { + font-family: ${i.fontFamily}; + fill: ${i.pieSectionTextColor}; + font-size:${i.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${i.pieLegendTextColor}; + font-family: ${i.fontFamily}; + font-size: ${i.pieLegendTextSize}; + } +`,Hnn=i=>{const a=Object.entries(i).map(d=>({label:d[0],value:d[1]})).sort((d,p)=>p.value-d.value);return nPt().value(d=>d.value)(a)},Unn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:jnn,db:znn,renderer:{draw:(i,a,u,d)=>{Xe.debug(`rendering pie chart +`+i);const p=d.db,v=qt(),b=cR(p.getConfig(),v.pie),y=40,E=18,_=4,A=450,P=A,R=dR(a),B=R.append("g"),j=p.getSections();B.attr("transform","translate("+P/2+","+A/2+")");const{themeVariables:W}=v;let[ee]=PC(W.pieOuterStrokeWidth);ee??(ee=2);const ie=b.textPosition,oe=Math.min(P,A)/2-y,be=hD().innerRadius(0).outerRadius(oe),ge=hD().innerRadius(oe*ie).outerRadius(oe*ie);B.append("circle").attr("cx",0).attr("cy",0).attr("r",oe+ee/2).attr("class","pieOuterCircle");const ae=Hnn(j),ne=[W.pie1,W.pie2,W.pie3,W.pie4,W.pie5,W.pie6,W.pie7,W.pie8,W.pie9,W.pie10,W.pie11,W.pie12],se=PF(ne);B.selectAll("mySlices").data(ae).enter().append("path").attr("d",be).attr("fill",xe=>se(xe.data.label)).attr("class","pieCircle");let de=0;Object.keys(j).forEach(xe=>{de+=j[xe]}),B.selectAll("mySlices").data(ae).enter().append("text").text(xe=>(xe.data.value/de*100).toFixed(0)+"%").attr("transform",xe=>"translate("+ge.centroid(xe)+")").style("text-anchor","middle").attr("class","slice"),B.append("text").text(p.getDiagramTitle()).attr("x",0).attr("y",-(A-50)/2).attr("class","pieTitleText");const X=B.selectAll(".legend").data(se.domain()).enter().append("g").attr("class","legend").attr("transform",(xe,U)=>{const Be=E+_,Pe=Be*se.domain().length/2,je=12*E,Ie=U*Be-Pe;return"translate("+je+","+Ie+")"});X.append("rect").attr("width",E).attr("height",E).style("fill",se).style("stroke",se),X.data(ae).append("text").attr("x",E+_).attr("y",E-_).text(xe=>{const{label:U,value:Be}=xe.data;return p.getShowData()?`${U} [${Be}]`:U});const pe=Math.max(...X.selectAll("text").nodes().map(xe=>(xe==null?void 0:xe.getBoundingClientRect().width)??0)),G=P+y+E+_+pe;R.attr("viewBox",`0 0 ${G} ${A}`),Fg(R,A,G,b.useMaxWidth)}},styles:qnn}},Symbol.toStringTag,{value:"Module"}));var Mve=function(){var i=function(Tt,Et,Wt,un){for(Wt=Wt||{},un=Tt.length;un--;Wt[Tt[un]]=Et);return Wt},a=[1,3],u=[1,4],d=[1,5],p=[1,6],v=[1,7],b=[1,5,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],y=[1,5,6,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],E=[32,33,34],_=[2,7],A=[1,13],P=[1,17],R=[1,18],B=[1,19],j=[1,20],W=[1,21],ee=[1,22],ie=[1,23],oe=[1,24],be=[1,25],ge=[1,26],ae=[1,27],ne=[1,30],se=[1,31],de=[1,32],X=[1,33],pe=[1,34],G=[1,35],xe=[1,36],U=[1,37],Be=[1,38],Pe=[1,39],je=[1,40],Ie=[1,41],Se=[1,42],Ce=[1,57],ke=[1,58],Ke=[5,22,26,32,33,34,40,41,42,43,44,45,46,47,48,49,50,51],zt={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,QUADRANT:6,document:7,line:8,statement:9,axisDetails:10,quadrantDetails:11,points:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,text:21,point_start:22,point_x:23,point_y:24,"X-AXIS":25,"AXIS-TEXT-DELIMITER":26,"Y-AXIS":27,QUADRANT_1:28,QUADRANT_2:29,QUADRANT_3:30,QUADRANT_4:31,NEWLINE:32,SEMI:33,EOF:34,alphaNumToken:35,textNoTagsToken:36,STR:37,MD_STR:38,alphaNum:39,PUNCTUATION:40,AMP:41,NUM:42,ALPHA:43,COMMA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,UNDERSCORE:50,MINUS:51,$accept:0,$end:1},terminals_:{2:"error",5:"SPACE",6:"QUADRANT",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",22:"point_start",23:"point_x",24:"point_y",25:"X-AXIS",26:"AXIS-TEXT-DELIMITER",27:"Y-AXIS",28:"QUADRANT_1",29:"QUADRANT_2",30:"QUADRANT_3",31:"QUADRANT_4",32:"NEWLINE",33:"SEMI",34:"EOF",37:"STR",38:"MD_STR",40:"PUNCTUATION",41:"AMP",42:"NUM",43:"ALPHA",44:"COMMA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"UNDERSCORE",51:"MINUS"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[9,0],[9,2],[9,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,1],[9,1],[12,4],[10,4],[10,3],[10,2],[10,4],[10,3],[10,2],[11,2],[11,2],[11,2],[11,2],[4,1],[4,1],[4,1],[21,1],[21,2],[21,1],[21,1],[39,1],[39,2],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[36,1],[36,1],[36,1]],performAction:function(Et,Wt,un,yt,Bt,Ze,Dt){var kt=Ze.length-1;switch(Bt){case 12:this.$=Ze[kt].trim(),yt.setDiagramTitle(this.$);break;case 13:this.$=Ze[kt].trim(),yt.setAccTitle(this.$);break;case 14:case 15:this.$=Ze[kt].trim(),yt.setAccDescription(this.$);break;case 16:yt.addSection(Ze[kt].substr(8)),this.$=Ze[kt].substr(8);break;case 17:yt.addPoint(Ze[kt-3],Ze[kt-1],Ze[kt]);break;case 18:yt.setXAxisLeftText(Ze[kt-2]),yt.setXAxisRightText(Ze[kt]);break;case 19:Ze[kt-1].text+=" ⟶ ",yt.setXAxisLeftText(Ze[kt-1]);break;case 20:yt.setXAxisLeftText(Ze[kt]);break;case 21:yt.setYAxisBottomText(Ze[kt-2]),yt.setYAxisTopText(Ze[kt]);break;case 22:Ze[kt-1].text+=" ⟶ ",yt.setYAxisBottomText(Ze[kt-1]);break;case 23:yt.setYAxisBottomText(Ze[kt]);break;case 24:yt.setQuadrant1Text(Ze[kt]);break;case 25:yt.setQuadrant2Text(Ze[kt]);break;case 26:yt.setQuadrant3Text(Ze[kt]);break;case 27:yt.setQuadrant4Text(Ze[kt]);break;case 31:this.$={text:Ze[kt],type:"text"};break;case 32:this.$={text:Ze[kt-1].text+""+Ze[kt],type:Ze[kt-1].type};break;case 33:this.$={text:Ze[kt],type:"text"};break;case 34:this.$={text:Ze[kt],type:"markdown"};break;case 35:this.$=Ze[kt];break;case 36:this.$=Ze[kt-1]+""+Ze[kt];break}},table:[{3:1,4:2,5:a,6:u,32:d,33:p,34:v},{1:[3]},{3:8,4:2,5:a,6:u,32:d,33:p,34:v},{3:9,4:2,5:a,6:u,32:d,33:p,34:v},i(b,[2,4],{7:10}),i(y,[2,28]),i(y,[2,29]),i(y,[2,30]),{1:[2,1]},{1:[2,2]},i(E,_,{8:11,9:12,10:14,11:15,12:16,21:28,35:29,1:[2,3],5:A,13:P,15:R,17:B,19:j,20:W,25:ee,27:ie,28:oe,29:be,30:ge,31:ae,37:ne,38:se,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se}),i(b,[2,5]),{4:43,32:d,33:p,34:v},i(E,_,{10:14,11:15,12:16,21:28,35:29,9:44,5:A,13:P,15:R,17:B,19:j,20:W,25:ee,27:ie,28:oe,29:be,30:ge,31:ae,37:ne,38:se,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se}),i(E,[2,9]),i(E,[2,10]),i(E,[2,11]),{14:[1,45]},{16:[1,46]},{18:[1,47]},i(E,[2,15]),i(E,[2,16]),{21:48,35:29,37:ne,38:se,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se},{21:49,35:29,37:ne,38:se,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se},{21:50,35:29,37:ne,38:se,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se},{21:51,35:29,37:ne,38:se,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se},{21:52,35:29,37:ne,38:se,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se},{21:53,35:29,37:ne,38:se,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se},{5:Ce,22:[1,54],35:56,36:55,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se,51:ke},i(Ke,[2,31]),i(Ke,[2,33]),i(Ke,[2,34]),i(Ke,[2,37]),i(Ke,[2,38]),i(Ke,[2,39]),i(Ke,[2,40]),i(Ke,[2,41]),i(Ke,[2,42]),i(Ke,[2,43]),i(Ke,[2,44]),i(Ke,[2,45]),i(Ke,[2,46]),i(Ke,[2,47]),i(b,[2,6]),i(E,[2,8]),i(E,[2,12]),i(E,[2,13]),i(E,[2,14]),i(E,[2,20],{36:55,35:56,5:Ce,26:[1,59],40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se,51:ke}),i(E,[2,23],{36:55,35:56,5:Ce,26:[1,60],40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se,51:ke}),i(E,[2,24],{36:55,35:56,5:Ce,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se,51:ke}),i(E,[2,25],{36:55,35:56,5:Ce,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se,51:ke}),i(E,[2,26],{36:55,35:56,5:Ce,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se,51:ke}),i(E,[2,27],{36:55,35:56,5:Ce,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se,51:ke}),{23:[1,61]},i(Ke,[2,32]),i(Ke,[2,48]),i(Ke,[2,49]),i(Ke,[2,50]),i(E,[2,19],{35:29,21:62,37:ne,38:se,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se}),i(E,[2,22],{35:29,21:63,37:ne,38:se,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se}),{24:[1,64]},i(E,[2,18],{36:55,35:56,5:Ce,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se,51:ke}),i(E,[2,21],{36:55,35:56,5:Ce,40:de,41:X,42:pe,43:G,44:xe,45:U,46:Be,47:Pe,48:je,49:Ie,50:Se,51:ke}),i(E,[2,17])],defaultActions:{8:[2,1],9:[2,2]},parseError:function(Et,Wt){if(Wt.recoverable)this.trace(Et);else{var un=new Error(Et);throw un.hash=Wt,un}},parse:function(Et){var Wt=this,un=[0],yt=[],Bt=[null],Ze=[],Dt=this.table,kt="",Nn=0,ht=0,qr=2,xt=1,Ri=Ze.slice.call(arguments,1),wi=Object.create(this.lexer),ia={yy:{}};for(var Hs in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Hs)&&(ia.yy[Hs]=this.yy[Hs]);wi.setInput(Et,ia.yy),ia.yy.lexer=wi,ia.yy.parser=this,typeof wi.yylloc>"u"&&(wi.yylloc={});var mo=wi.yylloc;Ze.push(mo);var Tr=wi.options&&wi.options.ranges;typeof ia.yy.parseError=="function"?this.parseError=ia.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function On(){var Us;return Us=yt.pop()||wi.lex()||xt,typeof Us!="number"&&(Us instanceof Array&&(yt=Us,Us=yt.pop()),Us=Wt.symbols_[Us]||Us),Us}for(var Rn,zn,Ct,gt,on={},dn,Ln,Io,Oo;;){if(zn=un[un.length-1],this.defaultActions[zn]?Ct=this.defaultActions[zn]:((Rn===null||typeof Rn>"u")&&(Rn=On()),Ct=Dt[zn]&&Dt[zn][Rn]),typeof Ct>"u"||!Ct.length||!Ct[0]){var No="";Oo=[];for(dn in Dt[zn])this.terminals_[dn]&&dn>qr&&Oo.push("'"+this.terminals_[dn]+"'");wi.showPosition?No="Parse error on line "+(Nn+1)+`: +`+wi.showPosition()+` +Expecting `+Oo.join(", ")+", got '"+(this.terminals_[Rn]||Rn)+"'":No="Parse error on line "+(Nn+1)+": Unexpected "+(Rn==xt?"end of input":"'"+(this.terminals_[Rn]||Rn)+"'"),this.parseError(No,{text:wi.match,token:this.terminals_[Rn]||Rn,line:wi.yylineno,loc:mo,expected:Oo})}if(Ct[0]instanceof Array&&Ct.length>1)throw new Error("Parse Error: multiple actions possible at state: "+zn+", token: "+Rn);switch(Ct[0]){case 1:un.push(Rn),Bt.push(wi.yytext),Ze.push(wi.yylloc),un.push(Ct[1]),Rn=null,ht=wi.yyleng,kt=wi.yytext,Nn=wi.yylineno,mo=wi.yylloc;break;case 2:if(Ln=this.productions_[Ct[1]][1],on.$=Bt[Bt.length-Ln],on._$={first_line:Ze[Ze.length-(Ln||1)].first_line,last_line:Ze[Ze.length-1].last_line,first_column:Ze[Ze.length-(Ln||1)].first_column,last_column:Ze[Ze.length-1].last_column},Tr&&(on._$.range=[Ze[Ze.length-(Ln||1)].range[0],Ze[Ze.length-1].range[1]]),gt=this.performAction.apply(on,[kt,ht,Nn,ia.yy,Ct[1],Bt,Ze].concat(Ri)),typeof gt<"u")return gt;Ln&&(un=un.slice(0,-1*Ln*2),Bt=Bt.slice(0,-1*Ln),Ze=Ze.slice(0,-1*Ln)),un.push(this.productions_[Ct[1]][0]),Bt.push(on.$),Ze.push(on._$),Io=Dt[un[un.length-2]][un[un.length-1]],un.push(Io);break;case 3:return!0}}return!0}},Ne=function(){var Tt={EOF:1,parseError:function(Wt,un){if(this.yy.parser)this.yy.parser.parseError(Wt,un);else throw new Error(Wt)},setInput:function(Et,Wt){return this.yy=Wt||this.yy||{},this._input=Et,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Et=this._input[0];this.yytext+=Et,this.yyleng++,this.offset++,this.match+=Et,this.matched+=Et;var Wt=Et.match(/(?:\r\n?|\n).*/g);return Wt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Et},unput:function(Et){var Wt=Et.length,un=Et.split(/(?:\r\n?|\n)/g);this._input=Et+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Wt),this.offset-=Wt;var yt=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),un.length-1&&(this.yylineno-=un.length-1);var Bt=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:un?(un.length===yt.length?this.yylloc.first_column:0)+yt[yt.length-un.length].length-un[0].length:this.yylloc.first_column-Wt},this.options.ranges&&(this.yylloc.range=[Bt[0],Bt[0]+this.yyleng-Wt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Et){this.unput(this.match.slice(Et))},pastInput:function(){var Et=this.matched.substr(0,this.matched.length-this.match.length);return(Et.length>20?"...":"")+Et.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Et=this.match;return Et.length<20&&(Et+=this._input.substr(0,20-Et.length)),(Et.substr(0,20)+(Et.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Et=this.pastInput(),Wt=new Array(Et.length+1).join("-");return Et+this.upcomingInput()+` +`+Wt+"^"},test_match:function(Et,Wt){var un,yt,Bt;if(this.options.backtrack_lexer&&(Bt={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&&(Bt.yylloc.range=this.yylloc.range.slice(0))),yt=Et[0].match(/(?:\r\n?|\n).*/g),yt&&(this.yylineno+=yt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:yt?yt[yt.length-1].length-yt[yt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Et[0].length},this.yytext+=Et[0],this.match+=Et[0],this.matches=Et,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(Et[0].length),this.matched+=Et[0],un=this.performAction.call(this,this.yy,this,Wt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),un)return un;if(this._backtrack){for(var Ze in Bt)this[Ze]=Bt[Ze];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Et,Wt,un,yt;this._more||(this.yytext="",this.match="");for(var Bt=this._currentRules(),Ze=0;ZeWt[0].length)){if(Wt=un,yt=Ze,this.options.backtrack_lexer){if(Et=this.test_match(un,Bt[Ze]),Et!==!1)return Et;if(this._backtrack){Wt=!1;continue}else return!1}else if(!this.options.flex)break}return Wt?(Et=this.test_match(Wt,Bt[yt]),Et!==!1?Et:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Wt=this.next();return Wt||this.lex()},begin:function(Wt){this.conditionStack.push(Wt)},popState:function(){var Wt=this.conditionStack.length-1;return Wt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Wt){return Wt=this.conditionStack.length-1-Math.abs(Wt||0),Wt>=0?this.conditionStack[Wt]:"INITIAL"},pushState:function(Wt){this.begin(Wt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Wt,un,yt,Bt){switch(yt){case 0:break;case 1:break;case 2:return 32;case 3:break;case 4:return this.begin("title"),13;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),15;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),17;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 25;case 14:return 27;case 15:return 26;case 16:return 28;case 17:return 29;case 18:return 30;case 19:return 31;case 20:this.begin("md_string");break;case 21:return"MD_STR";case 22:this.popState();break;case 23:this.begin("string");break;case 24:this.popState();break;case 25:return"STR";case 26:return this.begin("point_start"),22;case 27:return this.begin("point_x"),23;case 28:this.popState();break;case 29:this.popState(),this.begin("point_y");break;case 30:return this.popState(),24;case 31:return 6;case 32:return 43;case 33:return"COLON";case 34:return 45;case 35:return 44;case 36:return 46;case 37:return 46;case 38:return 47;case 39:return 49;case 40:return 50;case 41:return 48;case 42:return 41;case 43:return 51;case 44:return 42;case 45:return 5;case 46:return 33;case 47:return 40;case 48:return 34}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{point_y:{rules:[30],inclusive:!1},point_x:{rules:[29],inclusive:!1},point_start:{rules:[27,28],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[21,22],inclusive:!1},string:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,23,26,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};return Tt}();zt.lexer=Ne;function pn(){this.yy={}}return pn.prototype=zt,zt.Parser=pn,new pn}();Mve.parser=Mve;const Vnn=Mve,zp=S2e();class Gnn{constructor(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){var a,u,d,p,v,b,y,E,_,A,P,R,B,j,W,ee,ie,oe;return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:((a=nh.quadrantChart)==null?void 0:a.chartWidth)||500,chartWidth:((u=nh.quadrantChart)==null?void 0:u.chartHeight)||500,titlePadding:((d=nh.quadrantChart)==null?void 0:d.titlePadding)||10,titleFontSize:((p=nh.quadrantChart)==null?void 0:p.titleFontSize)||20,quadrantPadding:((v=nh.quadrantChart)==null?void 0:v.quadrantPadding)||5,xAxisLabelPadding:((b=nh.quadrantChart)==null?void 0:b.xAxisLabelPadding)||5,yAxisLabelPadding:((y=nh.quadrantChart)==null?void 0:y.yAxisLabelPadding)||5,xAxisLabelFontSize:((E=nh.quadrantChart)==null?void 0:E.xAxisLabelFontSize)||16,yAxisLabelFontSize:((_=nh.quadrantChart)==null?void 0:_.yAxisLabelFontSize)||16,quadrantLabelFontSize:((A=nh.quadrantChart)==null?void 0:A.quadrantLabelFontSize)||16,quadrantTextTopPadding:((P=nh.quadrantChart)==null?void 0:P.quadrantTextTopPadding)||5,pointTextPadding:((R=nh.quadrantChart)==null?void 0:R.pointTextPadding)||5,pointLabelFontSize:((B=nh.quadrantChart)==null?void 0:B.pointLabelFontSize)||12,pointRadius:((j=nh.quadrantChart)==null?void 0:j.pointRadius)||5,xAxisPosition:((W=nh.quadrantChart)==null?void 0:W.xAxisPosition)||"top",yAxisPosition:((ee=nh.quadrantChart)==null?void 0:ee.yAxisPosition)||"left",quadrantInternalBorderStrokeWidth:((ie=nh.quadrantChart)==null?void 0:ie.quadrantInternalBorderStrokeWidth)||1,quadrantExternalBorderStrokeWidth:((oe=nh.quadrantChart)==null?void 0:oe.quadrantExternalBorderStrokeWidth)||2}}getDefaultThemeConfig(){return{quadrant1Fill:zp.quadrant1Fill,quadrant2Fill:zp.quadrant2Fill,quadrant3Fill:zp.quadrant3Fill,quadrant4Fill:zp.quadrant4Fill,quadrant1TextFill:zp.quadrant1TextFill,quadrant2TextFill:zp.quadrant2TextFill,quadrant3TextFill:zp.quadrant3TextFill,quadrant4TextFill:zp.quadrant4TextFill,quadrantPointFill:zp.quadrantPointFill,quadrantPointTextFill:zp.quadrantPointTextFill,quadrantXAxisTextFill:zp.quadrantXAxisTextFill,quadrantYAxisTextFill:zp.quadrantYAxisTextFill,quadrantTitleFill:zp.quadrantTitleFill,quadrantInternalBorderStrokeFill:zp.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:zp.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),Xe.info("clear called")}setData(a){this.data={...this.data,...a}}addPoints(a){this.data.points=[...a,...this.data.points]}setConfig(a){Xe.trace("setConfig called with: ",a),this.config={...this.config,...a}}setThemeConfig(a){Xe.trace("setThemeConfig called with: ",a),this.themeConfig={...this.themeConfig,...a}}calculateSpace(a,u,d,p){const v=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,b={top:a==="top"&&u?v:0,bottom:a==="bottom"&&u?v:0},y=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,E={left:this.config.yAxisPosition==="left"&&d?y:0,right:this.config.yAxisPosition==="right"&&d?y:0},_=this.config.titleFontSize+this.config.titlePadding*2,A={top:p?_:0},P=this.config.quadrantPadding+E.left,R=this.config.quadrantPadding+b.top+A.top,B=this.config.chartWidth-this.config.quadrantPadding*2-E.left-E.right,j=this.config.chartHeight-this.config.quadrantPadding*2-b.top-b.bottom-A.top,W=B/2,ee=j/2;return{xAxisSpace:b,yAxisSpace:E,titleSpace:A,quadrantSpace:{quadrantLeft:P,quadrantTop:R,quadrantWidth:B,quadrantHalfWidth:W,quadrantHeight:j,quadrantHalfHeight:ee}}}getAxisLabels(a,u,d,p){const{quadrantSpace:v,titleSpace:b}=p,{quadrantHalfHeight:y,quadrantHeight:E,quadrantLeft:_,quadrantHalfWidth:A,quadrantTop:P,quadrantWidth:R}=v,B=!!this.data.xAxisRightText,j=!!this.data.yAxisTopText,W=[];return this.data.xAxisLeftText&&u&&W.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:_+(B?A/2:0),y:a==="top"?this.config.xAxisLabelPadding+b.top:this.config.xAxisLabelPadding+P+E+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:B?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&u&&W.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:_+A+(B?A/2:0),y:a==="top"?this.config.xAxisLabelPadding+b.top:this.config.xAxisLabelPadding+P+E+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:B?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&d&&W.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+_+R+this.config.quadrantPadding,y:P+E-(j?y/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:j?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&d&&W.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+_+R+this.config.quadrantPadding,y:P+y-(j?y/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:j?"center":"left",horizontalPos:"top",rotation:-90}),W}getQuadrants(a){const{quadrantSpace:u}=a,{quadrantHalfHeight:d,quadrantLeft:p,quadrantHalfWidth:v,quadrantTop:b}=u,y=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:p+v,y:b,width:v,height:d,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:p,y:b,width:v,height:d,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:p,y:b+d,width:v,height:d,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:p+v,y:b+d,width:v,height:d,fill:this.themeConfig.quadrant4Fill}];for(const E of y)E.text.x=E.x+E.width/2,this.data.points.length===0?(E.text.y=E.y+E.height/2,E.text.horizontalPos="middle"):(E.text.y=E.y+this.config.quadrantTextTopPadding,E.text.horizontalPos="top");return y}getQuadrantPoints(a){const{quadrantSpace:u}=a,{quadrantHeight:d,quadrantLeft:p,quadrantTop:v,quadrantWidth:b}=u,y=aD().domain([0,1]).range([p,b+p]),E=aD().domain([0,1]).range([d+v,v]);return this.data.points.map(A=>({x:y(A.x),y:E(A.y),fill:this.themeConfig.quadrantPointFill,radius:this.config.pointRadius,text:{text:A.text,fill:this.themeConfig.quadrantPointTextFill,x:y(A.x),y:E(A.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0}}))}getBorders(a){const u=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:d}=a,{quadrantHalfHeight:p,quadrantHeight:v,quadrantLeft:b,quadrantHalfWidth:y,quadrantTop:E,quadrantWidth:_}=d;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:b-u,y1:E,x2:b+_+u,y2:E},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:b+_,y1:E+u,x2:b+_,y2:E+v-u},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:b-u,y1:E+v,x2:b+_+u,y2:E+v},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:b,y1:E+u,x2:b,y2:E+v-u},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:b+y,y1:E+u,x2:b+y,y2:E+v-u},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:b+u,y1:E+p,x2:b+_-u,y2:E+p}]}getTitle(a){if(a)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){const a=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),u=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),d=this.config.showTitle&&!!this.data.titleText,p=this.data.points.length>0?"bottom":this.config.xAxisPosition,v=this.calculateSpace(p,a,u,d);return{points:this.getQuadrantPoints(v),quadrants:this.getQuadrants(v),axisLabels:this.getAxisLabels(p,a,u,v),borderLines:this.getBorders(v),title:this.getTitle(d)}}}const Knn=qt();function G7(i){return bh(i.trim(),Knn)}const qg=new Gnn;function Wnn(i){qg.setData({quadrant1Text:G7(i.text)})}function Ynn(i){qg.setData({quadrant2Text:G7(i.text)})}function Xnn(i){qg.setData({quadrant3Text:G7(i.text)})}function Qnn(i){qg.setData({quadrant4Text:G7(i.text)})}function Jnn(i){qg.setData({xAxisLeftText:G7(i.text)})}function Znn(i){qg.setData({xAxisRightText:G7(i.text)})}function ern(i){qg.setData({yAxisTopText:G7(i.text)})}function trn(i){qg.setData({yAxisBottomText:G7(i.text)})}function nrn(i,a,u){qg.addPoints([{x:a,y:u,text:G7(i.text)}])}function rrn(i){qg.setConfig({chartWidth:i})}function irn(i){qg.setConfig({chartHeight:i})}function srn(){const i=qt(),{themeVariables:a,quadrantChart:u}=i;return u&&qg.setConfig(u),qg.setThemeConfig({quadrant1Fill:a.quadrant1Fill,quadrant2Fill:a.quadrant2Fill,quadrant3Fill:a.quadrant3Fill,quadrant4Fill:a.quadrant4Fill,quadrant1TextFill:a.quadrant1TextFill,quadrant2TextFill:a.quadrant2TextFill,quadrant3TextFill:a.quadrant3TextFill,quadrant4TextFill:a.quadrant4TextFill,quadrantPointFill:a.quadrantPointFill,quadrantPointTextFill:a.quadrantPointTextFill,quadrantXAxisTextFill:a.quadrantXAxisTextFill,quadrantYAxisTextFill:a.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:a.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:a.quadrantInternalBorderStrokeFill,quadrantTitleFill:a.quadrantTitleFill}),qg.setData({titleText:Op()}),qg.build()}const arn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Vnn,db:{setWidth:rrn,setHeight:irn,setQuadrant1Text:Wnn,setQuadrant2Text:Ynn,setQuadrant3Text:Xnn,setQuadrant4Text:Qnn,setXAxisLeftText:Jnn,setXAxisRightText:Znn,setYAxisTopText:ern,setYAxisBottomText:trn,addPoint:nrn,getQuadrantData:srn,clear:function(){qg.clear(),Rg()},setAccTitle:jg,getAccTitle:Mp,setDiagramTitle:pm,getDiagramTitle:Op,getAccDescription:Ip,setAccDescription:Dp},renderer:{draw:(i,a,u,d)=>{var de,X,pe;function p(G){return G==="top"?"hanging":"middle"}function v(G){return G==="left"?"start":"middle"}function b(G){return`translate(${G.x}, ${G.y}) rotate(${G.rotation||0})`}const y=qt();Xe.debug(`Rendering quadrant chart +`+i);const E=y.securityLevel;let _;E==="sandbox"&&(_=Dr("#i"+a));const P=Dr(E==="sandbox"?_.nodes()[0].contentDocument.body:"body").select(`[id="${a}"]`),R=P.append("g").attr("class","main"),B=((de=y.quadrantChart)==null?void 0:de.chartWidth)||500,j=((X=y.quadrantChart)==null?void 0:X.chartHeight)||500;Fg(P,j,B,((pe=y.quadrantChart)==null?void 0:pe.useMaxWidth)||!0),P.attr("viewBox","0 0 "+B+" "+j),d.db.setHeight(j),d.db.setWidth(B);const W=d.db.getQuadrantData(),ee=R.append("g").attr("class","quadrants"),ie=R.append("g").attr("class","border"),oe=R.append("g").attr("class","data-points"),be=R.append("g").attr("class","labels"),ge=R.append("g").attr("class","title");W.title&&ge.append("text").attr("x",0).attr("y",0).attr("fill",W.title.fill).attr("font-size",W.title.fontSize).attr("dominant-baseline",p(W.title.horizontalPos)).attr("text-anchor",v(W.title.verticalPos)).attr("transform",b(W.title)).text(W.title.text),W.borderLines&&ie.selectAll("line").data(W.borderLines).enter().append("line").attr("x1",G=>G.x1).attr("y1",G=>G.y1).attr("x2",G=>G.x2).attr("y2",G=>G.y2).style("stroke",G=>G.strokeFill).style("stroke-width",G=>G.strokeWidth);const ae=ee.selectAll("g.quadrant").data(W.quadrants).enter().append("g").attr("class","quadrant");ae.append("rect").attr("x",G=>G.x).attr("y",G=>G.y).attr("width",G=>G.width).attr("height",G=>G.height).attr("fill",G=>G.fill),ae.append("text").attr("x",0).attr("y",0).attr("fill",G=>G.text.fill).attr("font-size",G=>G.text.fontSize).attr("dominant-baseline",G=>p(G.text.horizontalPos)).attr("text-anchor",G=>v(G.text.verticalPos)).attr("transform",G=>b(G.text)).text(G=>G.text.text),be.selectAll("g.label").data(W.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(G=>G.text).attr("fill",G=>G.fill).attr("font-size",G=>G.fontSize).attr("dominant-baseline",G=>p(G.horizontalPos)).attr("text-anchor",G=>v(G.verticalPos)).attr("transform",G=>b(G));const se=oe.selectAll("g.data-point").data(W.points).enter().append("g").attr("class","data-point");se.append("circle").attr("cx",G=>G.x).attr("cy",G=>G.y).attr("r",G=>G.radius).attr("fill",G=>G.fill),se.append("text").attr("x",0).attr("y",0).text(G=>G.text.text).attr("fill",G=>G.text.fill).attr("font-size",G=>G.text.fontSize).attr("dominant-baseline",G=>p(G.text.horizontalPos)).attr("text-anchor",G=>v(G.text.verticalPos)).attr("transform",G=>b(G.text))}},styles:()=>""}},Symbol.toStringTag,{value:"Module"}));var Dve=function(){var i=function(Pe,je,Ie,Se){for(Ie=Ie||{},Se=Pe.length;Se--;Ie[Pe[Se]]=je);return Ie},a=[1,10,12,14,16,18,19,21,23],u=[2,6],d=[1,3],p=[1,5],v=[1,6],b=[1,7],y=[1,5,10,12,14,16,18,19,21,23,34,35,36],E=[1,25],_=[1,26],A=[1,28],P=[1,29],R=[1,30],B=[1,31],j=[1,32],W=[1,33],ee=[1,34],ie=[1,35],oe=[1,36],be=[1,37],ge=[1,43],ae=[1,42],ne=[1,47],se=[1,50],de=[1,10,12,14,16,18,19,21,23,34,35,36],X=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],pe=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],G=[1,64],xe={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:function(je,Ie,Se,Ce,ke,Ke,zt){var Ne=Ke.length-1;switch(ke){case 5:Ce.setOrientation(Ke[Ne]);break;case 9:Ce.setDiagramTitle(Ke[Ne].text.trim());break;case 12:Ce.setLineData({text:"",type:"text"},Ke[Ne]);break;case 13:Ce.setLineData(Ke[Ne-1],Ke[Ne]);break;case 14:Ce.setBarData({text:"",type:"text"},Ke[Ne]);break;case 15:Ce.setBarData(Ke[Ne-1],Ke[Ne]);break;case 16:this.$=Ke[Ne].trim(),Ce.setAccTitle(this.$);break;case 17:case 18:this.$=Ke[Ne].trim(),Ce.setAccDescription(this.$);break;case 19:this.$=Ke[Ne-1];break;case 20:this.$=[Number(Ke[Ne-2]),...Ke[Ne]];break;case 21:this.$=[Number(Ke[Ne])];break;case 22:Ce.setXAxisTitle(Ke[Ne]);break;case 23:Ce.setXAxisTitle(Ke[Ne-1]);break;case 24:Ce.setXAxisTitle({type:"text",text:""});break;case 25:Ce.setXAxisBand(Ke[Ne]);break;case 26:Ce.setXAxisRangeData(Number(Ke[Ne-2]),Number(Ke[Ne]));break;case 27:this.$=Ke[Ne-1];break;case 28:this.$=[Ke[Ne-2],...Ke[Ne]];break;case 29:this.$=[Ke[Ne]];break;case 30:Ce.setYAxisTitle(Ke[Ne]);break;case 31:Ce.setYAxisTitle(Ke[Ne-1]);break;case 32:Ce.setYAxisTitle({type:"text",text:""});break;case 33:Ce.setYAxisRangeData(Number(Ke[Ne-2]),Number(Ke[Ne]));break;case 37:this.$={text:Ke[Ne],type:"text"};break;case 38:this.$={text:Ke[Ne],type:"text"};break;case 39:this.$={text:Ke[Ne],type:"markdown"};break;case 40:this.$=Ke[Ne];break;case 41:this.$=Ke[Ne-1]+""+Ke[Ne];break}},table:[i(a,u,{3:1,4:2,7:4,5:d,34:p,35:v,36:b}),{1:[3]},i(a,u,{4:2,7:4,3:8,5:d,34:p,35:v,36:b}),i(a,u,{4:2,7:4,6:9,3:10,5:d,8:[1,11],34:p,35:v,36:b}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},i(y,[2,34]),i(y,[2,35]),i(y,[2,36]),{1:[2,1]},i(a,u,{4:2,7:4,3:21,5:d,34:p,35:v,36:b}),{1:[2,3]},i(y,[2,5]),i(a,[2,7],{4:22,34:p,35:v,36:b}),{11:23,37:24,38:E,39:_,40:27,41:A,42:P,43:R,44:B,45:j,46:W,47:ee,48:ie,49:oe,50:be},{11:39,13:38,24:ge,27:ae,29:40,30:41,37:24,38:E,39:_,40:27,41:A,42:P,43:R,44:B,45:j,46:W,47:ee,48:ie,49:oe,50:be},{11:45,15:44,27:ne,33:46,37:24,38:E,39:_,40:27,41:A,42:P,43:R,44:B,45:j,46:W,47:ee,48:ie,49:oe,50:be},{11:49,17:48,24:se,37:24,38:E,39:_,40:27,41:A,42:P,43:R,44:B,45:j,46:W,47:ee,48:ie,49:oe,50:be},{11:52,17:51,24:se,37:24,38:E,39:_,40:27,41:A,42:P,43:R,44:B,45:j,46:W,47:ee,48:ie,49:oe,50:be},{20:[1,53]},{22:[1,54]},i(de,[2,18]),{1:[2,2]},i(de,[2,8]),i(de,[2,9]),i(X,[2,37],{40:55,41:A,42:P,43:R,44:B,45:j,46:W,47:ee,48:ie,49:oe,50:be}),i(X,[2,38]),i(X,[2,39]),i(pe,[2,40]),i(pe,[2,42]),i(pe,[2,43]),i(pe,[2,44]),i(pe,[2,45]),i(pe,[2,46]),i(pe,[2,47]),i(pe,[2,48]),i(pe,[2,49]),i(pe,[2,50]),i(pe,[2,51]),i(de,[2,10]),i(de,[2,22],{30:41,29:56,24:ge,27:ae}),i(de,[2,24]),i(de,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:E,39:_,40:27,41:A,42:P,43:R,44:B,45:j,46:W,47:ee,48:ie,49:oe,50:be},i(de,[2,11]),i(de,[2,30],{33:60,27:ne}),i(de,[2,32]),{31:[1,61]},i(de,[2,12]),{17:62,24:se},{25:63,27:G},i(de,[2,14]),{17:65,24:se},i(de,[2,16]),i(de,[2,17]),i(pe,[2,41]),i(de,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},i(de,[2,31]),{27:[1,69]},i(de,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},i(de,[2,15]),i(de,[2,26]),i(de,[2,27]),{11:59,32:72,37:24,38:E,39:_,40:27,41:A,42:P,43:R,44:B,45:j,46:W,47:ee,48:ie,49:oe,50:be},i(de,[2,33]),i(de,[2,19]),{25:73,27:G},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:function(je,Ie){if(Ie.recoverable)this.trace(je);else{var Se=new Error(je);throw Se.hash=Ie,Se}},parse:function(je){var Ie=this,Se=[0],Ce=[],ke=[null],Ke=[],zt=this.table,Ne="",pn=0,Tt=0,Et=2,Wt=1,un=Ke.slice.call(arguments,1),yt=Object.create(this.lexer),Bt={yy:{}};for(var Ze in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ze)&&(Bt.yy[Ze]=this.yy[Ze]);yt.setInput(je,Bt.yy),Bt.yy.lexer=yt,Bt.yy.parser=this,typeof yt.yylloc>"u"&&(yt.yylloc={});var Dt=yt.yylloc;Ke.push(Dt);var kt=yt.options&&yt.options.ranges;typeof Bt.yy.parseError=="function"?this.parseError=Bt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Nn(){var Rn;return Rn=Ce.pop()||yt.lex()||Wt,typeof Rn!="number"&&(Rn instanceof Array&&(Ce=Rn,Rn=Ce.pop()),Rn=Ie.symbols_[Rn]||Rn),Rn}for(var ht,qr,xt,Ri,wi={},ia,Hs,mo,Tr;;){if(qr=Se[Se.length-1],this.defaultActions[qr]?xt=this.defaultActions[qr]:((ht===null||typeof ht>"u")&&(ht=Nn()),xt=zt[qr]&&zt[qr][ht]),typeof xt>"u"||!xt.length||!xt[0]){var On="";Tr=[];for(ia in zt[qr])this.terminals_[ia]&&ia>Et&&Tr.push("'"+this.terminals_[ia]+"'");yt.showPosition?On="Parse error on line "+(pn+1)+`: +`+yt.showPosition()+` +Expecting `+Tr.join(", ")+", got '"+(this.terminals_[ht]||ht)+"'":On="Parse error on line "+(pn+1)+": Unexpected "+(ht==Wt?"end of input":"'"+(this.terminals_[ht]||ht)+"'"),this.parseError(On,{text:yt.match,token:this.terminals_[ht]||ht,line:yt.yylineno,loc:Dt,expected:Tr})}if(xt[0]instanceof Array&&xt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+qr+", token: "+ht);switch(xt[0]){case 1:Se.push(ht),ke.push(yt.yytext),Ke.push(yt.yylloc),Se.push(xt[1]),ht=null,Tt=yt.yyleng,Ne=yt.yytext,pn=yt.yylineno,Dt=yt.yylloc;break;case 2:if(Hs=this.productions_[xt[1]][1],wi.$=ke[ke.length-Hs],wi._$={first_line:Ke[Ke.length-(Hs||1)].first_line,last_line:Ke[Ke.length-1].last_line,first_column:Ke[Ke.length-(Hs||1)].first_column,last_column:Ke[Ke.length-1].last_column},kt&&(wi._$.range=[Ke[Ke.length-(Hs||1)].range[0],Ke[Ke.length-1].range[1]]),Ri=this.performAction.apply(wi,[Ne,Tt,pn,Bt.yy,xt[1],ke,Ke].concat(un)),typeof Ri<"u")return Ri;Hs&&(Se=Se.slice(0,-1*Hs*2),ke=ke.slice(0,-1*Hs),Ke=Ke.slice(0,-1*Hs)),Se.push(this.productions_[xt[1]][0]),ke.push(wi.$),Ke.push(wi._$),mo=zt[Se[Se.length-2]][Se[Se.length-1]],Se.push(mo);break;case 3:return!0}}return!0}},U=function(){var Pe={EOF:1,parseError:function(Ie,Se){if(this.yy.parser)this.yy.parser.parseError(Ie,Se);else throw new Error(Ie)},setInput:function(je,Ie){return this.yy=Ie||this.yy||{},this._input=je,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var je=this._input[0];this.yytext+=je,this.yyleng++,this.offset++,this.match+=je,this.matched+=je;var Ie=je.match(/(?:\r\n?|\n).*/g);return Ie?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),je},unput:function(je){var Ie=je.length,Se=je.split(/(?:\r\n?|\n)/g);this._input=je+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ie),this.offset-=Ie;var Ce=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Se.length-1&&(this.yylineno-=Se.length-1);var ke=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:Se?(Se.length===Ce.length?this.yylloc.first_column:0)+Ce[Ce.length-Se.length].length-Se[0].length:this.yylloc.first_column-Ie},this.options.ranges&&(this.yylloc.range=[ke[0],ke[0]+this.yyleng-Ie]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(je){this.unput(this.match.slice(je))},pastInput:function(){var je=this.matched.substr(0,this.matched.length-this.match.length);return(je.length>20?"...":"")+je.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var je=this.match;return je.length<20&&(je+=this._input.substr(0,20-je.length)),(je.substr(0,20)+(je.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var je=this.pastInput(),Ie=new Array(je.length+1).join("-");return je+this.upcomingInput()+` +`+Ie+"^"},test_match:function(je,Ie){var Se,Ce,ke;if(this.options.backtrack_lexer&&(ke={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&&(ke.yylloc.range=this.yylloc.range.slice(0))),Ce=je[0].match(/(?:\r\n?|\n).*/g),Ce&&(this.yylineno+=Ce.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ce?Ce[Ce.length-1].length-Ce[Ce.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+je[0].length},this.yytext+=je[0],this.match+=je[0],this.matches=je,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(je[0].length),this.matched+=je[0],Se=this.performAction.call(this,this.yy,this,Ie,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Se)return Se;if(this._backtrack){for(var Ke in ke)this[Ke]=ke[Ke];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var je,Ie,Se,Ce;this._more||(this.yytext="",this.match="");for(var ke=this._currentRules(),Ke=0;KeIe[0].length)){if(Ie=Se,Ce=Ke,this.options.backtrack_lexer){if(je=this.test_match(Se,ke[Ke]),je!==!1)return je;if(this._backtrack){Ie=!1;continue}else return!1}else if(!this.options.flex)break}return Ie?(je=this.test_match(Ie,ke[Ce]),je!==!1?je:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ie=this.next();return Ie||this.lex()},begin:function(Ie){this.conditionStack.push(Ie)},popState:function(){var Ie=this.conditionStack.length-1;return Ie>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ie){return Ie=this.conditionStack.length-1-Math.abs(Ie||0),Ie>=0?this.conditionStack[Ie]:"INITIAL"},pushState:function(Ie){this.begin(Ie)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ie,Se,Ce,ke){switch(Ce){case 0:break;case 1:break;case 2:return this.popState(),34;case 3:return this.popState(),34;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";case 17:return this.pushState("axis_data"),"Y_AXIS";case 18:return this.pushState("axis_band_data"),24;case 19:return 31;case 20:return this.pushState("data"),16;case 21:return this.pushState("data"),18;case 22:return this.pushState("data_inner"),24;case 23:return 27;case 24:return this.popState(),26;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 43:break;case 44:return 35;case 45:return 36}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};return Pe}();xe.lexer=U;function Be(){this.yy={}}return Be.prototype=xe,xe.Parser=Be,new Be}();Dve.parser=Dve;const orn=Dve;function qGe(i){return i.type==="bar"}function HGe(i){return i.type==="band"}function KR(i){return i.type==="linear"}class UGe{constructor(a){this.parentGroup=a}getMaxDimension(a,u){if(!this.parentGroup)return{width:a.reduce((v,b)=>Math.max(b.length,v),0)*u,height:u};const d={width:0,height:0},p=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",u);for(const v of a){const b=sen(p,1,v),y=b?b.width:v.length*u,E=b?b.height:u;d.width=Math.max(d.width,y),d.height=Math.max(d.height,E)}return p.remove(),d}}const VGe=.7,GGe=.2;class KGe{constructor(a,u,d,p){this.axisConfig=a,this.title=u,this.textDimensionCalculator=d,this.axisThemeConfig=p,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}setRange(a){this.range=a,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=a[1]-a[0]:this.boundingRect.width=a[1]-a[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(a){this.axisPosition=a,this.setRange(this.range)}getTickDistance(){const a=this.getRange();return Math.abs(a[0]-a[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(a=>a.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){VGe*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(VGe*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(a){let u=a.height;if(this.axisConfig.showAxisLine&&u>this.axisConfig.axisLineWidth&&(u-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const d=this.getLabelDimension(),p=GGe*a.width;this.outerPadding=Math.min(d.width/2,p);const v=d.height+this.axisConfig.labelPadding*2;this.labelTextHeight=d.height,v<=u&&(u-=v,this.showLabel=!0)}if(this.axisConfig.showTick&&u>=this.axisConfig.tickLength&&(this.showTick=!0,u-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const d=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),p=d.height+this.axisConfig.titlePadding*2;this.titleTextHeight=d.height,p<=u&&(u-=p,this.showTitle=!0)}this.boundingRect.width=a.width,this.boundingRect.height=a.height-u}calculateSpaceIfDrawnVertical(a){let u=a.width;if(this.axisConfig.showAxisLine&&u>this.axisConfig.axisLineWidth&&(u-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const d=this.getLabelDimension(),p=GGe*a.height;this.outerPadding=Math.min(d.height/2,p);const v=d.width+this.axisConfig.labelPadding*2;v<=u&&(u-=v,this.showLabel=!0)}if(this.axisConfig.showTick&&u>=this.axisConfig.tickLength&&(this.showTick=!0,u-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const d=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),p=d.height+this.axisConfig.titlePadding*2;this.titleTextHeight=d.height,p<=u&&(u-=p,this.showTitle=!0)}this.boundingRect.width=a.width-u,this.boundingRect.height=a.height}calculateSpace(a){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(a):this.calculateSpaceIfDrawnHorizontally(a),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(a){this.boundingRect.x=a.x,this.boundingRect.y=a.y}getDrawableElementsForLeftAxis(){const a=[];if(this.showAxisLine){const u=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;a.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${u},${this.boundingRect.y} L ${u},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&a.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(u=>({text:u.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(u),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){const u=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);a.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(d=>({path:`M ${u},${this.getScaleValue(d)} L ${u-this.axisConfig.tickLength},${this.getScaleValue(d)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&a.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),a}getDrawableElementsForBottomAxis(){const a=[];if(this.showAxisLine){const u=this.boundingRect.y+this.axisConfig.axisLineWidth/2;a.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${u} L ${this.boundingRect.x+this.boundingRect.width},${u}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&a.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(u=>({text:u.toString(),x:this.getScaleValue(u),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const u=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);a.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(d=>({path:`M ${this.getScaleValue(d)},${u} L ${this.getScaleValue(d)},${u+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&a.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),a}getDrawableElementsForTopAxis(){const a=[];if(this.showAxisLine){const u=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;a.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${u} L ${this.boundingRect.x+this.boundingRect.width},${u}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&a.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(u=>({text:u.toString(),x:this.getScaleValue(u),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const u=this.boundingRect.y;a.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(d=>({path:`M ${this.getScaleValue(d)},${u+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(d)},${u+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&a.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),a}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}class crn extends KGe{constructor(a,u,d,p,v){super(a,p,v,u),this.categories=d,this.scale=n2e().domain(this.categories).range(this.getRange())}setRange(a){super.setRange(a)}recalculateScale(){this.scale=n2e().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),Xe.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(a){return this.scale(a)||this.getRange()[0]}}class urn extends KGe{constructor(a,u,d,p,v){super(a,p,v,u),this.domain=d,this.scale=aD().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const a=[...this.domain];this.axisPosition==="left"&&a.reverse(),this.scale=aD().domain(a).range(this.getRange())}getScaleValue(a){return this.scale(a)}}function WGe(i,a,u,d){const p=new UGe(d);return HGe(i)?new crn(a,u,i.categories,i.title,p):new urn(a,u,[i.min,i.max],i.title,p)}class lrn{constructor(a,u,d,p){this.textDimensionCalculator=a,this.chartConfig=u,this.chartData=d,this.chartThemeConfig=p,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}setBoundingBoxXY(a){this.boundingRect.x=a.x,this.boundingRect.y=a.y}calculateSpace(a){const u=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),d=Math.max(u.width,a.width),p=u.height+2*this.chartConfig.titlePadding;return u.width<=d&&u.height<=p&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=d,this.boundingRect.height=p,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const a=[];return this.showChartTitle&&a.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),a}}function hrn(i,a,u,d){const p=new UGe(d);return new lrn(p,i,a,u)}class frn{constructor(a,u,d,p,v){this.plotData=a,this.xAxis=u,this.yAxis=d,this.orientation=p,this.plotIndex=v}getDrawableElement(){const a=this.plotData.data.map(d=>[this.xAxis.getScaleValue(d[0]),this.yAxis.getScaleValue(d[1])]);let u;return this.orientation==="horizontal"?u=E7().y(d=>d[0]).x(d=>d[1])(a):u=E7().x(d=>d[0]).y(d=>d[1])(a),u?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:u,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}class drn{constructor(a,u,d,p,v,b){this.barData=a,this.boundingRect=u,this.xAxis=d,this.yAxis=p,this.orientation=v,this.plotIndex=b}getDrawableElement(){const a=this.barData.data.map(v=>[this.xAxis.getScaleValue(v[0]),this.yAxis.getScaleValue(v[1])]),u=.05,d=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-u),p=d/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:a.map(v=>({x:this.boundingRect.x,y:v[0]-p,height:d,width:v[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:a.map(v=>({x:v[0]-p,y:v[1],width:d,height:this.boundingRect.y+this.boundingRect.height-v[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}class grn{constructor(a,u,d){this.chartConfig=a,this.chartData=u,this.chartThemeConfig=d,this.boundingRect={x:0,y:0,width:0,height:0}}setAxes(a,u){this.xAxis=a,this.yAxis=u}setBoundingBoxXY(a){this.boundingRect.x=a.x,this.boundingRect.y=a.y}calculateSpace(a){return this.boundingRect.width=a.width,this.boundingRect.height=a.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");const a=[];for(const[u,d]of this.chartData.plots.entries())switch(d.type){case"line":{const p=new frn(d,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,u);a.push(...p.getDrawableElement())}break;case"bar":{const p=new drn(d,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,u);a.push(...p.getDrawableElement())}break}return a}}function prn(i,a,u){return new grn(i,a,u)}class brn{constructor(a,u,d,p){this.chartConfig=a,this.chartData=u,this.componentStore={title:hrn(a,u,d,p),plot:prn(a,u,d),xAxis:WGe(u.xAxis,a.xAxis,{titleColor:d.xAxisTitleColor,labelColor:d.xAxisLabelColor,tickColor:d.xAxisTickColor,axisLineColor:d.xAxisLineColor},p),yAxis:WGe(u.yAxis,a.yAxis,{titleColor:d.yAxisTitleColor,labelColor:d.yAxisLabelColor,tickColor:d.yAxisTickColor,axisLineColor:d.yAxisLineColor},p)}}calculateVerticalSpace(){let a=this.chartConfig.width,u=this.chartConfig.height,d=0,p=0,v=Math.floor(a*this.chartConfig.plotReservedSpacePercent/100),b=Math.floor(u*this.chartConfig.plotReservedSpacePercent/100),y=this.componentStore.plot.calculateSpace({width:v,height:b});a-=y.width,u-=y.height,y=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:u}),p=y.height,u-=y.height,this.componentStore.xAxis.setAxisPosition("bottom"),y=this.componentStore.xAxis.calculateSpace({width:a,height:u}),u-=y.height,this.componentStore.yAxis.setAxisPosition("left"),y=this.componentStore.yAxis.calculateSpace({width:a,height:u}),d=y.width,a-=y.width,a>0&&(v+=a,a=0),u>0&&(b+=u,u=0),this.componentStore.plot.calculateSpace({width:v,height:b}),this.componentStore.plot.setBoundingBoxXY({x:d,y:p}),this.componentStore.xAxis.setRange([d,d+v]),this.componentStore.xAxis.setBoundingBoxXY({x:d,y:p+b}),this.componentStore.yAxis.setRange([p,p+b]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:p}),this.chartData.plots.some(E=>qGe(E))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let a=this.chartConfig.width,u=this.chartConfig.height,d=0,p=0,v=0,b=Math.floor(a*this.chartConfig.plotReservedSpacePercent/100),y=Math.floor(u*this.chartConfig.plotReservedSpacePercent/100),E=this.componentStore.plot.calculateSpace({width:b,height:y});a-=E.width,u-=E.height,E=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:u}),d=E.height,u-=E.height,this.componentStore.xAxis.setAxisPosition("left"),E=this.componentStore.xAxis.calculateSpace({width:a,height:u}),a-=E.width,p=E.width,this.componentStore.yAxis.setAxisPosition("top"),E=this.componentStore.yAxis.calculateSpace({width:a,height:u}),u-=E.height,v=d+E.height,a>0&&(b+=a,a=0),u>0&&(y+=u,u=0),this.componentStore.plot.calculateSpace({width:b,height:y}),this.componentStore.plot.setBoundingBoxXY({x:p,y:v}),this.componentStore.yAxis.setRange([p,p+b]),this.componentStore.yAxis.setBoundingBoxXY({x:p,y:d}),this.componentStore.xAxis.setRange([v,v+y]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:v}),this.chartData.plots.some(_=>qGe(_))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const a=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const u of Object.values(this.componentStore))a.push(...u.getDrawableElements());return a}}class mrn{static build(a,u,d,p){return new brn(a,u,d,p).getDrawableElement()}}let WR=0,YGe,YR=QGe(),XR=XGe(),el=JGe(),Ive=XR.plotColorPalette.split(",").map(i=>i.trim()),AJ=!1,Ove=!1;function XGe(){const i=S2e(),a=mh();return cR(i.xyChart,a.themeVariables.xyChart)}function QGe(){const i=mh();return cR(nh.xyChart,i.xyChart)}function JGe(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function Nve(i){const a=mh();return bh(i.trim(),a)}function vrn(i){YGe=i}function wrn(i){i==="horizontal"?YR.chartOrientation="horizontal":YR.chartOrientation="vertical"}function yrn(i){el.xAxis.title=Nve(i.text)}function ZGe(i,a){el.xAxis={type:"linear",title:el.xAxis.title,min:i,max:a},AJ=!0}function xrn(i){el.xAxis={type:"band",title:el.xAxis.title,categories:i.map(a=>Nve(a.text))},AJ=!0}function krn(i){el.yAxis.title=Nve(i.text)}function Trn(i,a){el.yAxis={type:"linear",title:el.yAxis.title,min:i,max:a},Ove=!0}function Ern(i){const a=Math.min(...i),u=Math.max(...i),d=KR(el.yAxis)?el.yAxis.min:1/0,p=KR(el.yAxis)?el.yAxis.max:-1/0;el.yAxis={type:"linear",title:el.yAxis.title,min:Math.min(d,a),max:Math.max(p,u)}}function eKe(i){let a=[];if(i.length===0)return a;if(!AJ){const u=KR(el.xAxis)?el.xAxis.min:1/0,d=KR(el.xAxis)?el.xAxis.max:-1/0;ZGe(Math.min(u,1),Math.max(d,i.length))}if(Ove||Ern(i),HGe(el.xAxis)&&(a=el.xAxis.categories.map((u,d)=>[u,i[d]])),KR(el.xAxis)){const u=el.xAxis.min,d=el.xAxis.max,p=(d-u+1)/i.length,v=[];for(let b=u;b<=d;b+=p)v.push(`${b}`);a=v.map((b,y)=>[b,i[y]])}return a}function tKe(i){return Ive[i===0?0:i%Ive.length]}function Crn(i,a){const u=eKe(a);el.plots.push({type:"line",strokeFill:tKe(WR),strokeWidth:2,data:u}),WR++}function Srn(i,a){const u=eKe(a);el.plots.push({type:"bar",fill:tKe(WR),data:u}),WR++}function _rn(){if(el.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return el.title=Op(),mrn.build(YR,el,XR,YGe)}function Arn(){return XR}function Lrn(){return YR}const Mrn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:orn,db:{getDrawableElem:_rn,clear:function(){Rg(),WR=0,YR=QGe(),el=JGe(),XR=XGe(),Ive=XR.plotColorPalette.split(",").map(i=>i.trim()),AJ=!1,Ove=!1},setAccTitle:jg,getAccTitle:Mp,setDiagramTitle:pm,getDiagramTitle:Op,getAccDescription:Ip,setAccDescription:Dp,setOrientation:wrn,setXAxisTitle:yrn,setXAxisRangeData:ZGe,setXAxisBand:xrn,setYAxisTitle:krn,setYAxisRangeData:Trn,setLineData:Crn,setBarData:Srn,setTmpSVGG:vrn,getChartThemeConfig:Arn,getChartConfig:Lrn},renderer:{draw:(i,a,u,d)=>{const p=d.db,v=p.getChartThemeConfig(),b=p.getChartConfig();function y(ee){return ee==="top"?"text-before-edge":"middle"}function E(ee){return ee==="left"?"start":ee==="right"?"end":"middle"}function _(ee){return`translate(${ee.x}, ${ee.y}) rotate(${ee.rotation||0})`}Xe.debug(`Rendering xychart chart +`+i);const A=dR(a),P=A.append("g").attr("class","main"),R=P.append("rect").attr("width",b.width).attr("height",b.height).attr("class","background");Fg(A,b.height,b.width,!0),A.attr("viewBox",`0 0 ${b.width} ${b.height}`),R.attr("fill",v.backgroundColor),p.setTmpSVGG(A.append("g").attr("class","mermaid-tmp-group"));const B=p.getDrawableElem(),j={};function W(ee){let ie=P,oe="";for(const[be]of ee.entries()){let ge=P;be>0&&j[oe]&&(ge=j[oe]),oe+=ee[be],ie=j[oe],ie||(ie=j[oe]=ge.append("g").attr("class",ee[be]))}return ie}for(const ee of B){if(ee.data.length===0)continue;const ie=W(ee.groupTexts);switch(ee.type){case"rect":ie.selectAll("rect").data(ee.data).enter().append("rect").attr("x",oe=>oe.x).attr("y",oe=>oe.y).attr("width",oe=>oe.width).attr("height",oe=>oe.height).attr("fill",oe=>oe.fill).attr("stroke",oe=>oe.strokeFill).attr("stroke-width",oe=>oe.strokeWidth);break;case"text":ie.selectAll("text").data(ee.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",oe=>oe.fill).attr("font-size",oe=>oe.fontSize).attr("dominant-baseline",oe=>y(oe.verticalPos)).attr("text-anchor",oe=>E(oe.horizontalPos)).attr("transform",oe=>_(oe)).text(oe=>oe.text);break;case"path":ie.selectAll("path").data(ee.data).enter().append("path").attr("d",oe=>oe.path).attr("fill",oe=>oe.fill?oe.fill:"none").attr("stroke",oe=>oe.strokeFill).attr("stroke-width",oe=>oe.strokeWidth);break}}}}}},Symbol.toStringTag,{value:"Module"}));var Pve=function(){var i=function(Tt,Et,Wt,un){for(Wt=Wt||{},un=Tt.length;un--;Wt[Tt[un]]=Et);return Wt},a=[1,3],u=[1,4],d=[1,5],p=[1,6],v=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],b=[1,18],y=[2,7],E=[1,22],_=[1,23],A=[1,24],P=[1,25],R=[1,26],B=[1,27],j=[1,20],W=[1,28],ee=[1,29],ie=[62,63],oe=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],be=[1,47],ge=[1,48],ae=[1,49],ne=[1,50],se=[1,51],de=[1,52],X=[1,53],pe=[53,54],G=[1,64],xe=[1,60],U=[1,61],Be=[1,62],Pe=[1,63],je=[1,65],Ie=[1,69],Se=[1,70],Ce=[1,67],ke=[1,68],Ke=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],zt={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:function(Et,Wt,un,yt,Bt,Ze,Dt){var kt=Ze.length-1;switch(Bt){case 4:this.$=Ze[kt].trim(),yt.setAccTitle(this.$);break;case 5:case 6:this.$=Ze[kt].trim(),yt.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:yt.addRequirement(Ze[kt-3],Ze[kt-4]);break;case 14:yt.setNewReqId(Ze[kt-2]);break;case 15:yt.setNewReqText(Ze[kt-2]);break;case 16:yt.setNewReqRisk(Ze[kt-2]);break;case 17:yt.setNewReqVerifyMethod(Ze[kt-2]);break;case 20:this.$=yt.RequirementType.REQUIREMENT;break;case 21:this.$=yt.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=yt.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=yt.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=yt.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=yt.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=yt.RiskLevel.LOW_RISK;break;case 27:this.$=yt.RiskLevel.MED_RISK;break;case 28:this.$=yt.RiskLevel.HIGH_RISK;break;case 29:this.$=yt.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=yt.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=yt.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=yt.VerifyType.VERIFY_TEST;break;case 33:yt.addElement(Ze[kt-3]);break;case 34:yt.setNewElementType(Ze[kt-2]);break;case 35:yt.setNewElementDocRef(Ze[kt-2]);break;case 38:yt.addRelationship(Ze[kt-2],Ze[kt],Ze[kt-4]);break;case 39:yt.addRelationship(Ze[kt-2],Ze[kt-4],Ze[kt]);break;case 40:this.$=yt.Relationships.CONTAINS;break;case 41:this.$=yt.Relationships.COPIES;break;case 42:this.$=yt.Relationships.DERIVES;break;case 43:this.$=yt.Relationships.SATISFIES;break;case 44:this.$=yt.Relationships.VERIFIES;break;case 45:this.$=yt.Relationships.REFINES;break;case 46:this.$=yt.Relationships.TRACES;break}},table:[{3:1,4:2,6:a,9:u,11:d,13:p},{1:[3]},{3:8,4:2,5:[1,7],6:a,9:u,11:d,13:p},{5:[1,9]},{10:[1,10]},{12:[1,11]},i(v,[2,6]),{3:12,4:2,6:a,9:u,11:d,13:p},{1:[2,2]},{4:17,5:b,7:13,8:y,9:u,11:d,13:p,14:14,15:15,16:16,17:19,23:21,31:E,32:_,33:A,34:P,35:R,36:B,44:j,62:W,63:ee},i(v,[2,4]),i(v,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:b,7:31,8:y,9:u,11:d,13:p,14:14,15:15,16:16,17:19,23:21,31:E,32:_,33:A,34:P,35:R,36:B,44:j,62:W,63:ee},{4:17,5:b,7:32,8:y,9:u,11:d,13:p,14:14,15:15,16:16,17:19,23:21,31:E,32:_,33:A,34:P,35:R,36:B,44:j,62:W,63:ee},{4:17,5:b,7:33,8:y,9:u,11:d,13:p,14:14,15:15,16:16,17:19,23:21,31:E,32:_,33:A,34:P,35:R,36:B,44:j,62:W,63:ee},{4:17,5:b,7:34,8:y,9:u,11:d,13:p,14:14,15:15,16:16,17:19,23:21,31:E,32:_,33:A,34:P,35:R,36:B,44:j,62:W,63:ee},{4:17,5:b,7:35,8:y,9:u,11:d,13:p,14:14,15:15,16:16,17:19,23:21,31:E,32:_,33:A,34:P,35:R,36:B,44:j,62:W,63:ee},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},i(ie,[2,20]),i(ie,[2,21]),i(ie,[2,22]),i(ie,[2,23]),i(ie,[2,24]),i(ie,[2,25]),i(oe,[2,49]),i(oe,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:be,56:ge,57:ae,58:ne,59:se,60:de,61:X},{52:54,55:be,56:ge,57:ae,58:ne,59:se,60:de,61:X},{5:[1,55]},{5:[1,56]},{53:[1,57]},i(pe,[2,40]),i(pe,[2,41]),i(pe,[2,42]),i(pe,[2,43]),i(pe,[2,44]),i(pe,[2,45]),i(pe,[2,46]),{54:[1,58]},{5:G,20:59,21:xe,24:U,26:Be,28:Pe,30:je},{5:Ie,30:Se,46:66,47:Ce,49:ke},{23:71,62:W,63:ee},{23:72,62:W,63:ee},i(Ke,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:G,20:77,21:xe,24:U,26:Be,28:Pe,30:je},i(Ke,[2,19]),i(Ke,[2,33]),{22:[1,78]},{22:[1,79]},{5:Ie,30:Se,46:80,47:Ce,49:ke},i(Ke,[2,37]),i(Ke,[2,38]),i(Ke,[2,39]),{23:81,62:W,63:ee},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},i(Ke,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},i(Ke,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:G,20:106,21:xe,24:U,26:Be,28:Pe,30:je},{5:G,20:107,21:xe,24:U,26:Be,28:Pe,30:je},{5:G,20:108,21:xe,24:U,26:Be,28:Pe,30:je},{5:G,20:109,21:xe,24:U,26:Be,28:Pe,30:je},{5:Ie,30:Se,46:110,47:Ce,49:ke},{5:Ie,30:Se,46:111,47:Ce,49:ke},i(Ke,[2,14]),i(Ke,[2,15]),i(Ke,[2,16]),i(Ke,[2,17]),i(Ke,[2,34]),i(Ke,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:function(Et,Wt){if(Wt.recoverable)this.trace(Et);else{var un=new Error(Et);throw un.hash=Wt,un}},parse:function(Et){var Wt=this,un=[0],yt=[],Bt=[null],Ze=[],Dt=this.table,kt="",Nn=0,ht=0,qr=2,xt=1,Ri=Ze.slice.call(arguments,1),wi=Object.create(this.lexer),ia={yy:{}};for(var Hs in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Hs)&&(ia.yy[Hs]=this.yy[Hs]);wi.setInput(Et,ia.yy),ia.yy.lexer=wi,ia.yy.parser=this,typeof wi.yylloc>"u"&&(wi.yylloc={});var mo=wi.yylloc;Ze.push(mo);var Tr=wi.options&&wi.options.ranges;typeof ia.yy.parseError=="function"?this.parseError=ia.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function On(){var Us;return Us=yt.pop()||wi.lex()||xt,typeof Us!="number"&&(Us instanceof Array&&(yt=Us,Us=yt.pop()),Us=Wt.symbols_[Us]||Us),Us}for(var Rn,zn,Ct,gt,on={},dn,Ln,Io,Oo;;){if(zn=un[un.length-1],this.defaultActions[zn]?Ct=this.defaultActions[zn]:((Rn===null||typeof Rn>"u")&&(Rn=On()),Ct=Dt[zn]&&Dt[zn][Rn]),typeof Ct>"u"||!Ct.length||!Ct[0]){var No="";Oo=[];for(dn in Dt[zn])this.terminals_[dn]&&dn>qr&&Oo.push("'"+this.terminals_[dn]+"'");wi.showPosition?No="Parse error on line "+(Nn+1)+`: +`+wi.showPosition()+` +Expecting `+Oo.join(", ")+", got '"+(this.terminals_[Rn]||Rn)+"'":No="Parse error on line "+(Nn+1)+": Unexpected "+(Rn==xt?"end of input":"'"+(this.terminals_[Rn]||Rn)+"'"),this.parseError(No,{text:wi.match,token:this.terminals_[Rn]||Rn,line:wi.yylineno,loc:mo,expected:Oo})}if(Ct[0]instanceof Array&&Ct.length>1)throw new Error("Parse Error: multiple actions possible at state: "+zn+", token: "+Rn);switch(Ct[0]){case 1:un.push(Rn),Bt.push(wi.yytext),Ze.push(wi.yylloc),un.push(Ct[1]),Rn=null,ht=wi.yyleng,kt=wi.yytext,Nn=wi.yylineno,mo=wi.yylloc;break;case 2:if(Ln=this.productions_[Ct[1]][1],on.$=Bt[Bt.length-Ln],on._$={first_line:Ze[Ze.length-(Ln||1)].first_line,last_line:Ze[Ze.length-1].last_line,first_column:Ze[Ze.length-(Ln||1)].first_column,last_column:Ze[Ze.length-1].last_column},Tr&&(on._$.range=[Ze[Ze.length-(Ln||1)].range[0],Ze[Ze.length-1].range[1]]),gt=this.performAction.apply(on,[kt,ht,Nn,ia.yy,Ct[1],Bt,Ze].concat(Ri)),typeof gt<"u")return gt;Ln&&(un=un.slice(0,-1*Ln*2),Bt=Bt.slice(0,-1*Ln),Ze=Ze.slice(0,-1*Ln)),un.push(this.productions_[Ct[1]][0]),Bt.push(on.$),Ze.push(on._$),Io=Dt[un[un.length-2]][un[un.length-1]],un.push(Io);break;case 3:return!0}}return!0}},Ne=function(){var Tt={EOF:1,parseError:function(Wt,un){if(this.yy.parser)this.yy.parser.parseError(Wt,un);else throw new Error(Wt)},setInput:function(Et,Wt){return this.yy=Wt||this.yy||{},this._input=Et,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Et=this._input[0];this.yytext+=Et,this.yyleng++,this.offset++,this.match+=Et,this.matched+=Et;var Wt=Et.match(/(?:\r\n?|\n).*/g);return Wt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Et},unput:function(Et){var Wt=Et.length,un=Et.split(/(?:\r\n?|\n)/g);this._input=Et+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Wt),this.offset-=Wt;var yt=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),un.length-1&&(this.yylineno-=un.length-1);var Bt=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:un?(un.length===yt.length?this.yylloc.first_column:0)+yt[yt.length-un.length].length-un[0].length:this.yylloc.first_column-Wt},this.options.ranges&&(this.yylloc.range=[Bt[0],Bt[0]+this.yyleng-Wt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Et){this.unput(this.match.slice(Et))},pastInput:function(){var Et=this.matched.substr(0,this.matched.length-this.match.length);return(Et.length>20?"...":"")+Et.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Et=this.match;return Et.length<20&&(Et+=this._input.substr(0,20-Et.length)),(Et.substr(0,20)+(Et.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Et=this.pastInput(),Wt=new Array(Et.length+1).join("-");return Et+this.upcomingInput()+` +`+Wt+"^"},test_match:function(Et,Wt){var un,yt,Bt;if(this.options.backtrack_lexer&&(Bt={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&&(Bt.yylloc.range=this.yylloc.range.slice(0))),yt=Et[0].match(/(?:\r\n?|\n).*/g),yt&&(this.yylineno+=yt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:yt?yt[yt.length-1].length-yt[yt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Et[0].length},this.yytext+=Et[0],this.match+=Et[0],this.matches=Et,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(Et[0].length),this.matched+=Et[0],un=this.performAction.call(this,this.yy,this,Wt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),un)return un;if(this._backtrack){for(var Ze in Bt)this[Ze]=Bt[Ze];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Et,Wt,un,yt;this._more||(this.yytext="",this.match="");for(var Bt=this._currentRules(),Ze=0;ZeWt[0].length)){if(Wt=un,yt=Ze,this.options.backtrack_lexer){if(Et=this.test_match(un,Bt[Ze]),Et!==!1)return Et;if(this._backtrack){Wt=!1;continue}else return!1}else if(!this.options.flex)break}return Wt?(Et=this.test_match(Wt,Bt[yt]),Et!==!1?Et:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Wt=this.next();return Wt||this.lex()},begin:function(Wt){this.conditionStack.push(Wt)},popState:function(){var Wt=this.conditionStack.length-1;return Wt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Wt){return Wt=this.conditionStack.length-1-Math.abs(Wt||0),Wt>=0?this.conditionStack[Wt]:"INITIAL"},pushState:function(Wt){this.begin(Wt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Wt,un,yt,Bt){switch(yt){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return un.yytext=un.yytext.trim(),62}},rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};return Tt}();zt.lexer=Ne;function pn(){this.yy={}}return pn.prototype=zt,zt.Parser=pn,new pn}();Pve.parser=Pve;const Drn=Pve;let Bve=[],Z2={},QR={},j9={},JR={};const Irn={RequirementType:{REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},RiskLevel:{LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},VerifyType:{VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Relationships:{CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},getConfig:()=>qt().req,addRequirement:(i,a)=>(QR[i]===void 0&&(QR[i]={name:i,type:a,id:Z2.id,text:Z2.text,risk:Z2.risk,verifyMethod:Z2.verifyMethod}),Z2={},QR[i]),getRequirements:()=>QR,setNewReqId:i=>{Z2!==void 0&&(Z2.id=i)},setNewReqText:i=>{Z2!==void 0&&(Z2.text=i)},setNewReqRisk:i=>{Z2!==void 0&&(Z2.risk=i)},setNewReqVerifyMethod:i=>{Z2!==void 0&&(Z2.verifyMethod=i)},setAccTitle:jg,getAccTitle:Mp,setAccDescription:Dp,getAccDescription:Ip,addElement:i=>(JR[i]===void 0&&(JR[i]={name:i,type:j9.type,docRef:j9.docRef},Xe.info("Added new requirement: ",i)),j9={},JR[i]),getElements:()=>JR,setNewElementType:i=>{j9!==void 0&&(j9.type=i)},setNewElementDocRef:i=>{j9!==void 0&&(j9.docRef=i)},addRelationship:(i,a,u)=>{Bve.push({type:i,src:a,dst:u})},getRelationships:()=>Bve,clear:()=>{Bve=[],Z2={},QR={},j9={},JR={},Rg()}},Orn=i=>` + + marker { + fill: ${i.relationColor}; + stroke: ${i.relationColor}; + } + + marker.cross { + stroke: ${i.lineColor}; + } + + svg { + font-family: ${i.fontFamily}; + font-size: ${i.fontSize}; + } + + .reqBox { + fill: ${i.requirementBackground}; + fill-opacity: 1.0; + stroke: ${i.requirementBorderColor}; + stroke-width: ${i.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${i.requirementTextColor}; + } + .reqLabelBox { + fill: ${i.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${i.requirementBorderColor}; + stroke-width: ${i.requirementBorderSize}; + } + .relationshipLine { + stroke: ${i.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${i.relationLabelColor}; + } + +`,Fve={CONTAINS:"contains",ARROW:"arrow"},nKe={ReqMarkers:Fve,insertLineEndings:(i,a)=>{let u=i.append("defs").append("marker").attr("id",Fve.CONTAINS+"_line_ending").attr("refX",0).attr("refY",a.line_height/2).attr("markerWidth",a.line_height).attr("markerHeight",a.line_height).attr("orient","auto").append("g");u.append("circle").attr("cx",a.line_height/2).attr("cy",a.line_height/2).attr("r",a.line_height/2).attr("fill","none"),u.append("line").attr("x1",0).attr("x2",a.line_height).attr("y1",a.line_height/2).attr("y2",a.line_height/2).attr("stroke-width",1),u.append("line").attr("y1",0).attr("y2",a.line_height).attr("x1",a.line_height/2).attr("x2",a.line_height/2).attr("stroke-width",1),i.append("defs").append("marker").attr("id",Fve.ARROW+"_line_ending").attr("refX",a.line_height).attr("refY",.5*a.line_height).attr("markerWidth",a.line_height).attr("markerHeight",a.line_height).attr("orient","auto").append("path").attr("d",`M0,0 + L${a.line_height},${a.line_height/2} + M${a.line_height},${a.line_height/2} + L0,${a.line_height}`).attr("stroke-width",1)}};let Ef={},rKe=0;const iKe=(i,a)=>i.insert("rect","#"+a).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",Ef.rect_min_width+"px").attr("height",Ef.rect_min_height+"px"),sKe=(i,a,u)=>{let d=Ef.rect_min_width/2,p=i.append("text").attr("class","req reqLabel reqTitle").attr("id",a).attr("x",d).attr("y",Ef.rect_padding).attr("dominant-baseline","hanging"),v=0;u.forEach(_=>{v==0?p.append("tspan").attr("text-anchor","middle").attr("x",Ef.rect_min_width/2).attr("dy",0).text(_):p.append("tspan").attr("text-anchor","middle").attr("x",Ef.rect_min_width/2).attr("dy",Ef.line_height*.75).text(_),v++});let b=1.5*Ef.rect_padding,y=v*Ef.line_height*.75,E=b+y;return i.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",Ef.rect_min_width).attr("y1",E).attr("y2",E),{titleNode:p,y:E}},aKe=(i,a,u,d)=>{let p=i.append("text").attr("class","req reqLabel").attr("id",a).attr("x",Ef.rect_padding).attr("y",d).attr("dominant-baseline","hanging"),v=0;const b=30;let y=[];return u.forEach(E=>{let _=E.length;for(;_>b&&v<3;){let A=E.substring(0,b);E=E.substring(b,E.length),_=E.length,y[y.length]=A,v++}if(v==3){let A=y[y.length-1];y[y.length-1]=A.substring(0,A.length-4)+"..."}else y[y.length]=E;v=0}),y.forEach(E=>{p.append("tspan").attr("x",Ef.rect_padding).attr("dy",Ef.line_height).text(E)}),p},Nrn=(i,a,u,d)=>{const p=a.node().getTotalLength(),v=a.node().getPointAtLength(p*.5),b="rel"+rKe;rKe++;const E=i.append("text").attr("class","req relationshipLabel").attr("id",b).attr("x",v.x).attr("y",v.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(d).node().getBBox();i.insert("rect","#"+b).attr("class","req reqLabelBox").attr("x",v.x-E.width/2).attr("y",v.y-E.height/2).attr("width",E.width).attr("height",E.height).attr("fill","white").attr("fill-opacity","85%")},Prn=function(i,a,u,d,p){const v=u.edge(nI(a.src),nI(a.dst)),b=E7().x(function(E){return E.x}).y(function(E){return E.y}),y=i.insert("path","#"+d).attr("class","er relationshipLine").attr("d",b(v.points)).attr("fill","none");a.type==p.db.Relationships.CONTAINS?y.attr("marker-start","url("+oi.getUrl(Ef.arrowMarkerAbsolute)+"#"+a.type+"_line_ending)"):(y.attr("stroke-dasharray","10,7"),y.attr("marker-end","url("+oi.getUrl(Ef.arrowMarkerAbsolute)+"#"+nKe.ReqMarkers.ARROW+"_line_ending)")),Nrn(i,y,Ef,`<<${a.type}>>`)},Brn=(i,a,u)=>{Object.keys(i).forEach(d=>{let p=i[d];d=nI(d),Xe.info("Added new requirement: ",d);const v=u.append("g").attr("id",d),b="req-"+d,y=iKe(v,b);let E=sKe(v,d+"_title",[`<<${p.type}>>`,`${p.name}`]);aKe(v,d+"_body",[`Id: ${p.id}`,`Text: ${p.text}`,`Risk: ${p.risk}`,`Verification: ${p.verifyMethod}`],E.y);const _=y.node().getBBox();a.setNode(d,{width:_.width,height:_.height,shape:"rect",id:d})})},Frn=(i,a,u)=>{Object.keys(i).forEach(d=>{let p=i[d];const v=nI(d),b=u.append("g").attr("id",v),y="element-"+v,E=iKe(b,y);let _=sKe(b,y+"_title",["<>",`${d}`]);aKe(b,y+"_body",[`Type: ${p.type||"Not Specified"}`,`Doc Ref: ${p.docRef||"None"}`],_.y);const A=E.node().getBBox();a.setNode(v,{width:A.width,height:A.height,shape:"rect",id:v})})},Rrn=(i,a)=>(i.forEach(function(u){let d=nI(u.src),p=nI(u.dst);a.setEdge(d,p,{relationship:u})}),i),jrn=function(i,a){a.nodes().forEach(function(u){u!==void 0&&a.node(u)!==void 0&&(i.select("#"+u),i.select("#"+u).attr("transform","translate("+(a.node(u).x-a.node(u).width/2)+","+(a.node(u).y-a.node(u).height/2)+" )"))})},nI=i=>i.replace(/\s/g,"").replace(/\./g,"_"),$rn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Drn,db:Irn,renderer:{draw:(i,a,u,d)=>{Ef=qt().requirement;const p=Ef.securityLevel;let v;p==="sandbox"&&(v=Dr("#i"+a));const y=Dr(p==="sandbox"?v.nodes()[0].contentDocument.body:"body").select(`[id='${a}']`);nKe.insertLineEndings(y,Ef);const E=new R0({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:Ef.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let _=d.db.getRequirements(),A=d.db.getElements(),P=d.db.getRelationships();Brn(_,E,y),Frn(A,E,y),Rrn(P,E),XD(E),jrn(y,E),P.forEach(function(ee){Prn(y,ee,E,a,d)});const R=Ef.rect_padding,B=y.node().getBBox(),j=B.width+R*2,W=B.height+R*2;Fg(y,W,j,Ef.useMaxWidth),y.attr("viewBox",`${B.x-R} ${B.y-R} ${j} ${W}`)}},styles:Orn}},Symbol.toStringTag,{value:"Module"}));var Rve=function(){var i=function(yt,Bt,Ze,Dt){for(Ze=Ze||{},Dt=yt.length;Dt--;Ze[yt[Dt]]=Bt);return Ze},a=[1,2],u=[1,3],d=[1,4],p=[2,4],v=[1,9],b=[1,11],y=[1,13],E=[1,14],_=[1,16],A=[1,17],P=[1,18],R=[1,24],B=[1,25],j=[1,26],W=[1,27],ee=[1,28],ie=[1,29],oe=[1,30],be=[1,31],ge=[1,32],ae=[1,33],ne=[1,34],se=[1,35],de=[1,36],X=[1,37],pe=[1,38],G=[1,39],xe=[1,41],U=[1,42],Be=[1,43],Pe=[1,44],je=[1,45],Ie=[1,46],Se=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],Ce=[4,5,16,50,52,53],ke=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],Ke=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],zt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],Ne=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],pn=[68,69,70],Tt=[1,120],Et={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,DOTTED_ARROW:74,SOLID_CROSS:75,DOTTED_CROSS:76,SOLID_POINT:77,DOTTED_POINT:78,TXT:79,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"DOTTED_ARROW",75:"SOLID_CROSS",76:"DOTTED_CROSS",77:"SOLID_POINT",78:"DOTTED_POINT",79:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:function(Bt,Ze,Dt,kt,Nn,ht,qr){var xt=ht.length-1;switch(Nn){case 3:return kt.apply(ht[xt]),ht[xt];case 4:case 9:this.$=[];break;case 5:case 10:ht[xt-1].push(ht[xt]),this.$=ht[xt-1];break;case 6:case 7:case 11:case 12:this.$=ht[xt];break;case 8:case 13:this.$=[];break;case 15:ht[xt].type="createParticipant",this.$=ht[xt];break;case 16:ht[xt-1].unshift({type:"boxStart",boxData:kt.parseBoxData(ht[xt-2])}),ht[xt-1].push({type:"boxEnd",boxText:ht[xt-2]}),this.$=ht[xt-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(ht[xt-2]),sequenceIndexStep:Number(ht[xt-1]),sequenceVisible:!0,signalType:kt.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(ht[xt-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:kt.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:kt.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:kt.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:kt.LINETYPE.ACTIVE_START,actor:ht[xt-1]};break;case 23:this.$={type:"activeEnd",signalType:kt.LINETYPE.ACTIVE_END,actor:ht[xt-1]};break;case 29:kt.setDiagramTitle(ht[xt].substring(6)),this.$=ht[xt].substring(6);break;case 30:kt.setDiagramTitle(ht[xt].substring(7)),this.$=ht[xt].substring(7);break;case 31:this.$=ht[xt].trim(),kt.setAccTitle(this.$);break;case 32:case 33:this.$=ht[xt].trim(),kt.setAccDescription(this.$);break;case 34:ht[xt-1].unshift({type:"loopStart",loopText:kt.parseMessage(ht[xt-2]),signalType:kt.LINETYPE.LOOP_START}),ht[xt-1].push({type:"loopEnd",loopText:ht[xt-2],signalType:kt.LINETYPE.LOOP_END}),this.$=ht[xt-1];break;case 35:ht[xt-1].unshift({type:"rectStart",color:kt.parseMessage(ht[xt-2]),signalType:kt.LINETYPE.RECT_START}),ht[xt-1].push({type:"rectEnd",color:kt.parseMessage(ht[xt-2]),signalType:kt.LINETYPE.RECT_END}),this.$=ht[xt-1];break;case 36:ht[xt-1].unshift({type:"optStart",optText:kt.parseMessage(ht[xt-2]),signalType:kt.LINETYPE.OPT_START}),ht[xt-1].push({type:"optEnd",optText:kt.parseMessage(ht[xt-2]),signalType:kt.LINETYPE.OPT_END}),this.$=ht[xt-1];break;case 37:ht[xt-1].unshift({type:"altStart",altText:kt.parseMessage(ht[xt-2]),signalType:kt.LINETYPE.ALT_START}),ht[xt-1].push({type:"altEnd",signalType:kt.LINETYPE.ALT_END}),this.$=ht[xt-1];break;case 38:ht[xt-1].unshift({type:"parStart",parText:kt.parseMessage(ht[xt-2]),signalType:kt.LINETYPE.PAR_START}),ht[xt-1].push({type:"parEnd",signalType:kt.LINETYPE.PAR_END}),this.$=ht[xt-1];break;case 39:ht[xt-1].unshift({type:"parStart",parText:kt.parseMessage(ht[xt-2]),signalType:kt.LINETYPE.PAR_OVER_START}),ht[xt-1].push({type:"parEnd",signalType:kt.LINETYPE.PAR_END}),this.$=ht[xt-1];break;case 40:ht[xt-1].unshift({type:"criticalStart",criticalText:kt.parseMessage(ht[xt-2]),signalType:kt.LINETYPE.CRITICAL_START}),ht[xt-1].push({type:"criticalEnd",signalType:kt.LINETYPE.CRITICAL_END}),this.$=ht[xt-1];break;case 41:ht[xt-1].unshift({type:"breakStart",breakText:kt.parseMessage(ht[xt-2]),signalType:kt.LINETYPE.BREAK_START}),ht[xt-1].push({type:"breakEnd",optText:kt.parseMessage(ht[xt-2]),signalType:kt.LINETYPE.BREAK_END}),this.$=ht[xt-1];break;case 43:this.$=ht[xt-3].concat([{type:"option",optionText:kt.parseMessage(ht[xt-1]),signalType:kt.LINETYPE.CRITICAL_OPTION},ht[xt]]);break;case 45:this.$=ht[xt-3].concat([{type:"and",parText:kt.parseMessage(ht[xt-1]),signalType:kt.LINETYPE.PAR_AND},ht[xt]]);break;case 47:this.$=ht[xt-3].concat([{type:"else",altText:kt.parseMessage(ht[xt-1]),signalType:kt.LINETYPE.ALT_ELSE},ht[xt]]);break;case 48:ht[xt-3].draw="participant",ht[xt-3].type="addParticipant",ht[xt-3].description=kt.parseMessage(ht[xt-1]),this.$=ht[xt-3];break;case 49:ht[xt-1].draw="participant",ht[xt-1].type="addParticipant",this.$=ht[xt-1];break;case 50:ht[xt-3].draw="actor",ht[xt-3].type="addParticipant",ht[xt-3].description=kt.parseMessage(ht[xt-1]),this.$=ht[xt-3];break;case 51:ht[xt-1].draw="actor",ht[xt-1].type="addParticipant",this.$=ht[xt-1];break;case 52:ht[xt-1].type="destroyParticipant",this.$=ht[xt-1];break;case 53:this.$=[ht[xt-1],{type:"addNote",placement:ht[xt-2],actor:ht[xt-1].actor,text:ht[xt]}];break;case 54:ht[xt-2]=[].concat(ht[xt-1],ht[xt-1]).slice(0,2),ht[xt-2][0]=ht[xt-2][0].actor,ht[xt-2][1]=ht[xt-2][1].actor,this.$=[ht[xt-1],{type:"addNote",placement:kt.PLACEMENT.OVER,actor:ht[xt-2].slice(0,2),text:ht[xt]}];break;case 55:this.$=[ht[xt-1],{type:"addLinks",actor:ht[xt-1].actor,text:ht[xt]}];break;case 56:this.$=[ht[xt-1],{type:"addALink",actor:ht[xt-1].actor,text:ht[xt]}];break;case 57:this.$=[ht[xt-1],{type:"addProperties",actor:ht[xt-1].actor,text:ht[xt]}];break;case 58:this.$=[ht[xt-1],{type:"addDetails",actor:ht[xt-1].actor,text:ht[xt]}];break;case 61:this.$=[ht[xt-2],ht[xt]];break;case 62:this.$=ht[xt];break;case 63:this.$=kt.PLACEMENT.LEFTOF;break;case 64:this.$=kt.PLACEMENT.RIGHTOF;break;case 65:this.$=[ht[xt-4],ht[xt-1],{type:"addMessage",from:ht[xt-4].actor,to:ht[xt-1].actor,signalType:ht[xt-3],msg:ht[xt],activate:!0},{type:"activeStart",signalType:kt.LINETYPE.ACTIVE_START,actor:ht[xt-1]}];break;case 66:this.$=[ht[xt-4],ht[xt-1],{type:"addMessage",from:ht[xt-4].actor,to:ht[xt-1].actor,signalType:ht[xt-3],msg:ht[xt]},{type:"activeEnd",signalType:kt.LINETYPE.ACTIVE_END,actor:ht[xt-4]}];break;case 67:this.$=[ht[xt-3],ht[xt-1],{type:"addMessage",from:ht[xt-3].actor,to:ht[xt-1].actor,signalType:ht[xt-2],msg:ht[xt]}];break;case 68:this.$={type:"addParticipant",actor:ht[xt]};break;case 69:this.$=kt.LINETYPE.SOLID_OPEN;break;case 70:this.$=kt.LINETYPE.DOTTED_OPEN;break;case 71:this.$=kt.LINETYPE.SOLID;break;case 72:this.$=kt.LINETYPE.DOTTED;break;case 73:this.$=kt.LINETYPE.SOLID_CROSS;break;case 74:this.$=kt.LINETYPE.DOTTED_CROSS;break;case 75:this.$=kt.LINETYPE.SOLID_POINT;break;case 76:this.$=kt.LINETYPE.DOTTED_POINT;break;case 77:this.$=kt.parseMessage(ht[xt].trim().substring(1));break}},table:[{3:1,4:a,5:u,6:d},{1:[3]},{3:5,4:a,5:u,6:d},{3:6,4:a,5:u,6:d},i([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],p,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:v,5:b,8:8,9:10,12:12,13:y,14:E,17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:j,33:W,35:ee,36:ie,37:oe,38:be,39:ge,41:ae,43:ne,44:se,46:de,50:X,52:pe,53:G,54:xe,59:U,60:Be,61:Pe,62:je,70:Ie},i(Se,[2,5]),{9:47,12:12,13:y,14:E,17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:j,33:W,35:ee,36:ie,37:oe,38:be,39:ge,41:ae,43:ne,44:se,46:de,50:X,52:pe,53:G,54:xe,59:U,60:Be,61:Pe,62:je,70:Ie},i(Se,[2,7]),i(Se,[2,8]),i(Se,[2,14]),{12:48,50:X,52:pe,53:G},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:Ie},{22:55,70:Ie},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},i(Se,[2,29]),i(Se,[2,30]),{32:[1,61]},{34:[1,62]},i(Se,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:Ie},{22:72,70:Ie},{22:73,70:Ie},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82]},{55:83,57:[1,84],65:[1,85],66:[1,86]},{22:87,70:Ie},{22:88,70:Ie},{22:89,70:Ie},{22:90,70:Ie},i([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),i(Se,[2,6]),i(Se,[2,15]),i(Ce,[2,9],{10:91}),i(Se,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},i(Se,[2,21]),{5:[1,95]},{5:[1,96]},i(Se,[2,24]),i(Se,[2,25]),i(Se,[2,26]),i(Se,[2,27]),i(Se,[2,28]),i(Se,[2,31]),i(Se,[2,32]),i(ke,p,{7:97}),i(ke,p,{7:98}),i(ke,p,{7:99}),i(Ke,p,{40:100,7:101}),i(zt,p,{42:102,7:103}),i(zt,p,{7:103,42:104}),i(Ne,p,{45:105,7:106}),i(ke,p,{7:107}),{5:[1,109],51:[1,108]},{5:[1,111],51:[1,110]},{5:[1,112]},{22:115,68:[1,113],69:[1,114],70:Ie},i(pn,[2,69]),i(pn,[2,70]),i(pn,[2,71]),i(pn,[2,72]),i(pn,[2,73]),i(pn,[2,74]),i(pn,[2,75]),i(pn,[2,76]),{22:116,70:Ie},{22:118,58:117,70:Ie},{70:[2,63]},{70:[2,64]},{56:119,79:Tt},{56:121,79:Tt},{56:122,79:Tt},{56:123,79:Tt},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:X,52:pe,53:G},{5:[1,129]},i(Se,[2,19]),i(Se,[2,20]),i(Se,[2,22]),i(Se,[2,23]),{4:v,5:b,8:8,9:10,12:12,13:y,14:E,16:[1,130],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:j,33:W,35:ee,36:ie,37:oe,38:be,39:ge,41:ae,43:ne,44:se,46:de,50:X,52:pe,53:G,54:xe,59:U,60:Be,61:Pe,62:je,70:Ie},{4:v,5:b,8:8,9:10,12:12,13:y,14:E,16:[1,131],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:j,33:W,35:ee,36:ie,37:oe,38:be,39:ge,41:ae,43:ne,44:se,46:de,50:X,52:pe,53:G,54:xe,59:U,60:Be,61:Pe,62:je,70:Ie},{4:v,5:b,8:8,9:10,12:12,13:y,14:E,16:[1,132],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:j,33:W,35:ee,36:ie,37:oe,38:be,39:ge,41:ae,43:ne,44:se,46:de,50:X,52:pe,53:G,54:xe,59:U,60:Be,61:Pe,62:je,70:Ie},{16:[1,133]},{4:v,5:b,8:8,9:10,12:12,13:y,14:E,16:[2,46],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:j,33:W,35:ee,36:ie,37:oe,38:be,39:ge,41:ae,43:ne,44:se,46:de,49:[1,134],50:X,52:pe,53:G,54:xe,59:U,60:Be,61:Pe,62:je,70:Ie},{16:[1,135]},{4:v,5:b,8:8,9:10,12:12,13:y,14:E,16:[2,44],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:j,33:W,35:ee,36:ie,37:oe,38:be,39:ge,41:ae,43:ne,44:se,46:de,48:[1,136],50:X,52:pe,53:G,54:xe,59:U,60:Be,61:Pe,62:je,70:Ie},{16:[1,137]},{16:[1,138]},{4:v,5:b,8:8,9:10,12:12,13:y,14:E,16:[2,42],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:j,33:W,35:ee,36:ie,37:oe,38:be,39:ge,41:ae,43:ne,44:se,46:de,47:[1,139],50:X,52:pe,53:G,54:xe,59:U,60:Be,61:Pe,62:je,70:Ie},{4:v,5:b,8:8,9:10,12:12,13:y,14:E,16:[1,140],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:j,33:W,35:ee,36:ie,37:oe,38:be,39:ge,41:ae,43:ne,44:se,46:de,50:X,52:pe,53:G,54:xe,59:U,60:Be,61:Pe,62:je,70:Ie},{15:[1,141]},i(Se,[2,49]),{15:[1,142]},i(Se,[2,51]),i(Se,[2,52]),{22:143,70:Ie},{22:144,70:Ie},{56:145,79:Tt},{56:146,79:Tt},{56:147,79:Tt},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},i(Se,[2,16]),i(Ce,[2,10]),{12:149,50:X,52:pe,53:G},i(Ce,[2,12]),i(Ce,[2,13]),i(Se,[2,18]),i(Se,[2,34]),i(Se,[2,35]),i(Se,[2,36]),i(Se,[2,37]),{15:[1,150]},i(Se,[2,38]),{15:[1,151]},i(Se,[2,39]),i(Se,[2,40]),{15:[1,152]},i(Se,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:Tt},{56:156,79:Tt},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:Ie},i(Ce,[2,11]),i(Ke,p,{7:101,40:158}),i(zt,p,{7:103,42:159}),i(Ne,p,{7:106,45:160}),i(Se,[2,48]),i(Se,[2,50]),{5:[2,65]},{5:[2,66]},{79:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],85:[2,63],86:[2,64],119:[2,55],120:[2,77],121:[2,56],122:[2,57],123:[2,58],145:[2,67],146:[2,53],147:[2,54],155:[2,65],156:[2,66],157:[2,61],158:[2,47],159:[2,45],160:[2,43]},parseError:function(Bt,Ze){if(Ze.recoverable)this.trace(Bt);else{var Dt=new Error(Bt);throw Dt.hash=Ze,Dt}},parse:function(Bt){var Ze=this,Dt=[0],kt=[],Nn=[null],ht=[],qr=this.table,xt="",Ri=0,wi=0,ia=2,Hs=1,mo=ht.slice.call(arguments,1),Tr=Object.create(this.lexer),On={yy:{}};for(var Rn in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Rn)&&(On.yy[Rn]=this.yy[Rn]);Tr.setInput(Bt,On.yy),On.yy.lexer=Tr,On.yy.parser=this,typeof Tr.yylloc>"u"&&(Tr.yylloc={});var zn=Tr.yylloc;ht.push(zn);var Ct=Tr.options&&Tr.options.ranges;typeof On.yy.parseError=="function"?this.parseError=On.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function gt(){var _c;return _c=kt.pop()||Tr.lex()||Hs,typeof _c!="number"&&(_c instanceof Array&&(kt=_c,_c=kt.pop()),_c=Ze.symbols_[_c]||_c),_c}for(var on,dn,Ln,Io,Oo={},No,Us,uo,Es;;){if(dn=Dt[Dt.length-1],this.defaultActions[dn]?Ln=this.defaultActions[dn]:((on===null||typeof on>"u")&&(on=gt()),Ln=qr[dn]&&qr[dn][on]),typeof Ln>"u"||!Ln.length||!Ln[0]){var Ou="";Es=[];for(No in qr[dn])this.terminals_[No]&&No>ia&&Es.push("'"+this.terminals_[No]+"'");Tr.showPosition?Ou="Parse error on line "+(Ri+1)+`: +`+Tr.showPosition()+` +Expecting `+Es.join(", ")+", got '"+(this.terminals_[on]||on)+"'":Ou="Parse error on line "+(Ri+1)+": Unexpected "+(on==Hs?"end of input":"'"+(this.terminals_[on]||on)+"'"),this.parseError(Ou,{text:Tr.match,token:this.terminals_[on]||on,line:Tr.yylineno,loc:zn,expected:Es})}if(Ln[0]instanceof Array&&Ln.length>1)throw new Error("Parse Error: multiple actions possible at state: "+dn+", token: "+on);switch(Ln[0]){case 1:Dt.push(on),Nn.push(Tr.yytext),ht.push(Tr.yylloc),Dt.push(Ln[1]),on=null,wi=Tr.yyleng,xt=Tr.yytext,Ri=Tr.yylineno,zn=Tr.yylloc;break;case 2:if(Us=this.productions_[Ln[1]][1],Oo.$=Nn[Nn.length-Us],Oo._$={first_line:ht[ht.length-(Us||1)].first_line,last_line:ht[ht.length-1].last_line,first_column:ht[ht.length-(Us||1)].first_column,last_column:ht[ht.length-1].last_column},Ct&&(Oo._$.range=[ht[ht.length-(Us||1)].range[0],ht[ht.length-1].range[1]]),Io=this.performAction.apply(Oo,[xt,wi,Ri,On.yy,Ln[1],Nn,ht].concat(mo)),typeof Io<"u")return Io;Us&&(Dt=Dt.slice(0,-1*Us*2),Nn=Nn.slice(0,-1*Us),ht=ht.slice(0,-1*Us)),Dt.push(this.productions_[Ln[1]][0]),Nn.push(Oo.$),ht.push(Oo._$),uo=qr[Dt[Dt.length-2]][Dt[Dt.length-1]],Dt.push(uo);break;case 3:return!0}}return!0}},Wt=function(){var yt={EOF:1,parseError:function(Ze,Dt){if(this.yy.parser)this.yy.parser.parseError(Ze,Dt);else throw new Error(Ze)},setInput:function(Bt,Ze){return this.yy=Ze||this.yy||{},this._input=Bt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Bt=this._input[0];this.yytext+=Bt,this.yyleng++,this.offset++,this.match+=Bt,this.matched+=Bt;var Ze=Bt.match(/(?:\r\n?|\n).*/g);return Ze?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Bt},unput:function(Bt){var Ze=Bt.length,Dt=Bt.split(/(?:\r\n?|\n)/g);this._input=Bt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ze),this.offset-=Ze;var kt=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),Dt.length-1&&(this.yylineno-=Dt.length-1);var Nn=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:Dt?(Dt.length===kt.length?this.yylloc.first_column:0)+kt[kt.length-Dt.length].length-Dt[0].length:this.yylloc.first_column-Ze},this.options.ranges&&(this.yylloc.range=[Nn[0],Nn[0]+this.yyleng-Ze]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Bt){this.unput(this.match.slice(Bt))},pastInput:function(){var Bt=this.matched.substr(0,this.matched.length-this.match.length);return(Bt.length>20?"...":"")+Bt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Bt=this.match;return Bt.length<20&&(Bt+=this._input.substr(0,20-Bt.length)),(Bt.substr(0,20)+(Bt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Bt=this.pastInput(),Ze=new Array(Bt.length+1).join("-");return Bt+this.upcomingInput()+` +`+Ze+"^"},test_match:function(Bt,Ze){var Dt,kt,Nn;if(this.options.backtrack_lexer&&(Nn={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&&(Nn.yylloc.range=this.yylloc.range.slice(0))),kt=Bt[0].match(/(?:\r\n?|\n).*/g),kt&&(this.yylineno+=kt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:kt?kt[kt.length-1].length-kt[kt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Bt[0].length},this.yytext+=Bt[0],this.match+=Bt[0],this.matches=Bt,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(Bt[0].length),this.matched+=Bt[0],Dt=this.performAction.call(this,this.yy,this,Ze,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Dt)return Dt;if(this._backtrack){for(var ht in Nn)this[ht]=Nn[ht];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Bt,Ze,Dt,kt;this._more||(this.yytext="",this.match="");for(var Nn=this._currentRules(),ht=0;htZe[0].length)){if(Ze=Dt,kt=ht,this.options.backtrack_lexer){if(Bt=this.test_match(Dt,Nn[ht]),Bt!==!1)return Bt;if(this._backtrack){Ze=!1;continue}else return!1}else if(!this.options.flex)break}return Ze?(Bt=this.test_match(Ze,Nn[kt]),Bt!==!1?Bt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ze=this.next();return Ze||this.lex()},begin:function(Ze){this.conditionStack.push(Ze)},popState:function(){var Ze=this.conditionStack.length-1;return Ze>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ze){return Ze=this.conditionStack.length-1-Math.abs(Ze||0),Ze>=0?this.conditionStack[Ze]:"INITIAL"},pushState:function(Ze){this.begin(Ze)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ze,Dt,kt,Nn){switch(kt){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;case 8:return this.begin("ID"),50;case 9:return this.begin("ID"),52;case 10:return 13;case 11:return this.begin("ID"),53;case 12:return Dt.yytext=Dt.yytext.trim(),this.begin("ALIAS"),70;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;case 14:return this.popState(),this.popState(),5;case 15:return this.begin("LINE"),36;case 16:return this.begin("LINE"),37;case 17:return this.begin("LINE"),38;case 18:return this.begin("LINE"),39;case 19:return this.begin("LINE"),49;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),48;case 23:return this.begin("LINE"),44;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),46;case 26:return this.popState(),15;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;case 37:return this.begin("ID"),23;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;case 41:return this.popState(),"acc_title_value";case 42:return this.begin("acc_descr"),33;case 43:return this.popState(),"acc_descr_value";case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 51:return 5;case 52:return Dt.yytext=Dt.yytext.trim(),70;case 53:return 73;case 54:return 74;case 55:return 71;case 56:return 72;case 57:return 75;case 58:return 76;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 68;case 63:return 69;case 64:return 5;case 65:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65],inclusive:!0}}};return yt}();Et.lexer=Wt;function un(){this.yy={}}return un.prototype=Et,Et.Parser=un,new un}();Rve.parser=Rve;const zrn=Rve;class qrn{constructor(a){this.init=a,this.records=this.init()}reset(){this.records=this.init()}}const Is=new qrn(()=>({prevActor:void 0,actors:{},createdActors:{},destroyedActors:{},boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),Hrn=function(i){Is.records.boxes.push({name:i.text,wrap:i.wrap===void 0&&ZC()||!!i.wrap,fill:i.color,actorKeys:[]}),Is.records.currentBox=Is.records.boxes.slice(-1)[0]},jve=function(i,a,u,d){let p=Is.records.currentBox;const v=Is.records.actors[i];if(v){if(Is.records.currentBox&&v.box&&Is.records.currentBox!==v.box)throw new Error("A same participant should only be defined in one Box: "+v.name+" can't be in '"+v.box.name+"' and in '"+Is.records.currentBox.name+"' at the same time.");if(p=v.box?v.box:Is.records.currentBox,v.box=p,v&&a===v.name&&u==null)return}(u==null||u.text==null)&&(u={text:a,wrap:null,type:d}),(d==null||u.text==null)&&(u={text:a,wrap:null,type:d}),Is.records.actors[i]={box:p,name:a,description:u.text,wrap:u.wrap===void 0&&ZC()||!!u.wrap,prevActor:Is.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:d||"participant"},Is.records.prevActor&&Is.records.actors[Is.records.prevActor]&&(Is.records.actors[Is.records.prevActor].nextActor=i),Is.records.currentBox&&Is.records.currentBox.actorKeys.push(i),Is.records.prevActor=i},Urn=i=>{let a,u=0;for(a=0;a>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},b}return Is.records.messages.push({from:i,to:a,message:u.text,wrap:u.wrap===void 0&&ZC()||!!u.wrap,type:d,activate:p}),!0},Grn=function(){return Is.records.boxes.length>0},Krn=function(){return Is.records.boxes.some(i=>i.name)},Wrn=function(){return Is.records.messages},Yrn=function(){return Is.records.boxes},Xrn=function(){return Is.records.actors},Qrn=function(){return Is.records.createdActors},Jrn=function(){return Is.records.destroyedActors},ZR=function(i){return Is.records.actors[i]},Zrn=function(){return Object.keys(Is.records.actors)},ein=function(){Is.records.sequenceNumbersEnabled=!0},tin=function(){Is.records.sequenceNumbersEnabled=!1},nin=()=>Is.records.sequenceNumbersEnabled,rin=function(i){Is.records.wrapEnabled=i},ZC=()=>Is.records.wrapEnabled!==void 0?Is.records.wrapEnabled:qt().sequence.wrap,iin=function(){Is.reset(),Rg()},sin=function(i){const a=i.trim(),u={text:a.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:a.match(/^:?wrap:/)!==null?!0:a.match(/^:?nowrap:/)!==null?!1:void 0};return Xe.debug("parseMessage:",u),u},ain=function(i){const a=i.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let u=a!=null&&a[1]?a[1].trim():"transparent",d=a!=null&&a[2]?a[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",u)||(u="transparent",d=i.trim());else{const p=new Option().style;p.color=u,p.color!==u&&(u="transparent",d=i.trim())}return{color:u,text:d!==void 0?bh(d.replace(/^:?(?:no)?wrap:/,""),qt()):void 0,wrap:d!==void 0?d.match(/^:?wrap:/)!==null?!0:d.match(/^:?nowrap:/)!==null?!1:void 0:void 0}},ej={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32},oin={FILLED:0,OPEN:1},cin={LEFTOF:0,RIGHTOF:1,OVER:2},oKe=function(i,a,u){const d={actor:i,placement:a,message:u.text,wrap:u.wrap===void 0&&ZC()||!!u.wrap},p=[].concat(i,i);Is.records.notes.push(d),Is.records.messages.push({from:p[0],to:p[1],message:u.text,wrap:u.wrap===void 0&&ZC()||!!u.wrap,type:ej.NOTE,placement:a})},cKe=function(i,a){const u=ZR(i);try{let d=bh(a.text,qt());d=d.replace(/&/g,"&"),d=d.replace(/=/g,"=");const p=JSON.parse(d);$ve(u,p)}catch(d){Xe.error("error while parsing actor link text",d)}},uin=function(i,a){const u=ZR(i);try{const b={};let y=bh(a.text,qt());var d=y.indexOf("@");y=y.replace(/&/g,"&"),y=y.replace(/=/g,"=");var p=y.slice(0,d-1).trim(),v=y.slice(d+1).trim();b[p]=v,$ve(u,b)}catch(b){Xe.error("error while parsing actor link text",b)}};function $ve(i,a){if(i.links==null)i.links=a;else for(let u in a)i.links[u]=a[u]}const uKe=function(i,a){const u=ZR(i);try{let d=bh(a.text,qt());const p=JSON.parse(d);lKe(u,p)}catch(d){Xe.error("error while parsing actor properties text",d)}};function lKe(i,a){if(i.properties==null)i.properties=a;else for(let u in a)i.properties[u]=a[u]}function lin(){Is.records.currentBox=void 0}const hKe=function(i,a){const u=ZR(i),d=document.getElementById(a.text);try{const p=d.innerHTML,v=JSON.parse(p);v.properties&&lKe(u,v.properties),v.links&&$ve(u,v.links)}catch(p){Xe.error("error while parsing actor details text",p)}},hin=function(i,a){if(i!==void 0&&i.properties!==void 0)return i.properties[a]},fKe=function(i){if(Array.isArray(i))i.forEach(function(a){fKe(a)});else switch(i.type){case"sequenceIndex":Is.records.messages.push({from:void 0,to:void 0,message:{start:i.sequenceIndex,step:i.sequenceIndexStep,visible:i.sequenceVisible},wrap:!1,type:i.signalType});break;case"addParticipant":jve(i.actor,i.actor,i.description,i.draw);break;case"createParticipant":if(Is.records.actors[i.actor])throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");Is.records.lastCreated=i.actor,jve(i.actor,i.actor,i.description,i.draw),Is.records.createdActors[i.actor]=Is.records.messages.length;break;case"destroyParticipant":Is.records.lastDestroyed=i.actor,Is.records.destroyedActors[i.actor]=Is.records.messages.length;break;case"activeStart":Xf(i.actor,void 0,void 0,i.signalType);break;case"activeEnd":Xf(i.actor,void 0,void 0,i.signalType);break;case"addNote":oKe(i.actor,i.placement,i.text);break;case"addLinks":cKe(i.actor,i.text);break;case"addALink":uin(i.actor,i.text);break;case"addProperties":uKe(i.actor,i.text);break;case"addDetails":hKe(i.actor,i.text);break;case"addMessage":if(Is.records.lastCreated){if(i.to!==Is.records.lastCreated)throw new Error("The created participant "+Is.records.lastCreated+" does not have an associated creating message after its declaration. Please check the sequence diagram.");Is.records.lastCreated=void 0}else if(Is.records.lastDestroyed){if(i.to!==Is.records.lastDestroyed&&i.from!==Is.records.lastDestroyed)throw new Error("The destroyed participant "+Is.records.lastDestroyed+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");Is.records.lastDestroyed=void 0}Xf(i.from,i.to,i.msg,i.signalType,i.activate);break;case"boxStart":Hrn(i.boxData);break;case"boxEnd":lin();break;case"loopStart":Xf(void 0,void 0,i.loopText,i.signalType);break;case"loopEnd":Xf(void 0,void 0,void 0,i.signalType);break;case"rectStart":Xf(void 0,void 0,i.color,i.signalType);break;case"rectEnd":Xf(void 0,void 0,void 0,i.signalType);break;case"optStart":Xf(void 0,void 0,i.optText,i.signalType);break;case"optEnd":Xf(void 0,void 0,void 0,i.signalType);break;case"altStart":Xf(void 0,void 0,i.altText,i.signalType);break;case"else":Xf(void 0,void 0,i.altText,i.signalType);break;case"altEnd":Xf(void 0,void 0,void 0,i.signalType);break;case"setAccTitle":jg(i.text);break;case"parStart":Xf(void 0,void 0,i.parText,i.signalType);break;case"and":Xf(void 0,void 0,i.parText,i.signalType);break;case"parEnd":Xf(void 0,void 0,void 0,i.signalType);break;case"criticalStart":Xf(void 0,void 0,i.criticalText,i.signalType);break;case"option":Xf(void 0,void 0,i.optionText,i.signalType);break;case"criticalEnd":Xf(void 0,void 0,void 0,i.signalType);break;case"breakStart":Xf(void 0,void 0,i.breakText,i.signalType);break;case"breakEnd":Xf(void 0,void 0,void 0,i.signalType);break}},dKe={addActor:jve,addMessage:Vrn,addSignal:Xf,addLinks:cKe,addDetails:hKe,addProperties:uKe,autoWrap:ZC,setWrap:rin,enableSequenceNumbers:ein,disableSequenceNumbers:tin,showSequenceNumbers:nin,getMessages:Wrn,getActors:Xrn,getCreatedActors:Qrn,getDestroyedActors:Jrn,getActor:ZR,getActorKeys:Zrn,getActorProperty:hin,getAccTitle:Mp,getBoxes:Yrn,getDiagramTitle:Op,setDiagramTitle:pm,getConfig:()=>qt().sequence,clear:iin,parseMessage:sin,parseBoxData:ain,LINETYPE:ej,ARROWTYPE:oin,PLACEMENT:cin,addNote:oKe,setAccTitle:jg,apply:fKe,setAccDescription:Dp,getAccDescription:Ip,hasAtLeastOneBox:Grn,hasAtLeastOneBoxWithTitle:Krn},fin=i=>`.actor { + stroke: ${i.actorBorder}; + fill: ${i.actorBkg}; + } + + text.actor > tspan { + fill: ${i.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${i.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${i.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${i.signalColor}; + } + + #arrowhead path { + fill: ${i.signalColor}; + stroke: ${i.signalColor}; + } + + .sequenceNumber { + fill: ${i.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${i.signalColor}; + } + + #crosshead path { + fill: ${i.signalColor}; + stroke: ${i.signalColor}; + } + + .messageText { + fill: ${i.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${i.labelBoxBorderColor}; + fill: ${i.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${i.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${i.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${i.labelBoxBorderColor}; + fill: ${i.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${i.noteBorderColor}; + fill: ${i.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${i.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${i.activationBkgColor}; + stroke: ${i.activationBorderColor}; + } + + .activation1 { + fill: ${i.activationBkgColor}; + stroke: ${i.activationBorderColor}; + } + + .activation2 { + fill: ${i.activationBkgColor}; + stroke: ${i.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${i.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${i.actorBorder}; + fill: ${i.actorBkg}; + } + .actor-man circle, line { + stroke: ${i.actorBorder}; + fill: ${i.actorBkg}; + stroke-width: 2px; + } +`,eS=18*2,gKe="actor-top",pKe="actor-bottom",zve=function(i,a){return qQ(i,a)},din=function(i,a,u,d,p){if(a.links===void 0||a.links===null||Object.keys(a.links).length===0)return{height:0,width:0};const v=a.links,b=a.actorCnt,y=a.rectData;var E="none";p&&(E="block !important");const _=i.append("g");_.attr("id","actor"+b+"_popup"),_.attr("class","actorPopupMenu"),_.attr("display",E);var A="";y.class!==void 0&&(A=" "+y.class);let P=y.width>u?y.width:u;const R=_.append("rect");if(R.attr("class","actorPopupMenuPanel"+A),R.attr("x",y.x),R.attr("y",y.height),R.attr("fill",y.fill),R.attr("stroke",y.stroke),R.attr("width",P),R.attr("height",y.height),R.attr("rx",y.rx),R.attr("ry",y.ry),v!=null){var B=20;for(let ee in v){var j=_.append("a"),W=b9.sanitizeUrl(v[ee]);j.attr("xlink:href",W),j.attr("target","_blank"),Min(d)(ee,j,y.x+10,y.height+B,P,20,{class:"actor"},d),B+=30}}return R.attr("height",B),{height:y.height+B,width:P}},gin=function(i){return"var pu = document.getElementById('"+i+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},LJ=async function(i,a,u=null){let d=i.append("foreignObject");const p=await SC(a.text,mh()),b=d.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(p).node().getBoundingClientRect();if(d.attr("height",Math.round(b.height)).attr("width",Math.round(b.width)),a.class==="noteText"){const y=i.node().firstChild;y.setAttribute("height",b.height+2*a.textMargin);const E=y.getBBox();d.attr("x",Math.round(E.x+E.width/2-b.width/2)).attr("y",Math.round(E.y+E.height/2-b.height/2))}else if(u){let{startx:y,stopx:E,starty:_}=u;if(y>E){const A=y;y=E,E=A}d.attr("x",Math.round(y+Math.abs(y-E)/2-b.width/2)),a.class==="loopText"?d.attr("y",Math.round(_)):d.attr("y",Math.round(_-b.height))}return[d]},rI=function(i,a){let u=0,d=0;const p=a.text.split(oi.lineBreakRegex),[v,b]=PC(a.fontSize);let y=[],E=0,_=()=>a.y;if(a.valign!==void 0&&a.textMargin!==void 0&&a.textMargin>0)switch(a.valign){case"top":case"start":_=()=>Math.round(a.y+a.textMargin);break;case"middle":case"center":_=()=>Math.round(a.y+(u+d+a.textMargin)/2);break;case"bottom":case"end":_=()=>Math.round(a.y+(u+d+2*a.textMargin)-a.textMargin);break}if(a.anchor!==void 0&&a.textMargin!==void 0&&a.width!==void 0)switch(a.anchor){case"left":case"start":a.x=Math.round(a.x+a.textMargin),a.anchor="start",a.dominantBaseline="middle",a.alignmentBaseline="middle";break;case"middle":case"center":a.x=Math.round(a.x+a.width/2),a.anchor="middle",a.dominantBaseline="middle",a.alignmentBaseline="middle";break;case"right":case"end":a.x=Math.round(a.x+a.width-a.textMargin),a.anchor="end",a.dominantBaseline="middle",a.alignmentBaseline="middle";break}for(let[A,P]of p.entries()){a.textMargin!==void 0&&a.textMargin===0&&v!==void 0&&(E=A*v);const R=i.append("text");R.attr("x",a.x),R.attr("y",_()),a.anchor!==void 0&&R.attr("text-anchor",a.anchor).attr("dominant-baseline",a.dominantBaseline).attr("alignment-baseline",a.alignmentBaseline),a.fontFamily!==void 0&&R.style("font-family",a.fontFamily),b!==void 0&&R.style("font-size",b),a.fontWeight!==void 0&&R.style("font-weight",a.fontWeight),a.fill!==void 0&&R.attr("fill",a.fill),a.class!==void 0&&R.attr("class",a.class),a.dy!==void 0?R.attr("dy",a.dy):E!==0&&R.attr("dy",E);const B=P||Nje;if(a.tspan){const j=R.append("tspan");j.attr("x",a.x),a.fill!==void 0&&j.attr("fill",a.fill),j.text(B)}else R.text(B);a.valign!==void 0&&a.textMargin!==void 0&&a.textMargin>0&&(d+=(R._groups||R)[0][0].getBBox().height,u=d),y.push(R)}return y},bKe=function(i,a){function u(p,v,b,y,E){return p+","+v+" "+(p+b)+","+v+" "+(p+b)+","+(v+y-E)+" "+(p+b-E*1.2)+","+(v+y)+" "+p+","+(v+y)}const d=i.append("polygon");return d.attr("points",u(a.x,a.y,a.width,a.height,7)),d.attr("class","labelBox"),a.y=a.y+a.height/2,rI(i,a),d};let o5=-1;const mKe=(i,a,u,d)=>{i.select&&u.forEach(p=>{const v=a[p],b=i.select("#actor"+v.actorCnt);!d.mirrorActors&&v.stopy?b.attr("y2",v.stopy+v.height/2):d.mirrorActors&&b.attr("y2",v.stopy)})},pin=async function(i,a,u,d){const p=d?a.stopy:a.starty,v=a.x+a.width/2,b=p+5,y=i.append("g").lower();var E=y;d||(o5++,Object.keys(a.links||{}).length&&!u.forceMenus&&E.attr("onclick",gin(`actor${o5}_popup`)).attr("cursor","pointer"),E.append("line").attr("id","actor"+o5).attr("x1",v).attr("y1",b).attr("x2",v).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),E=y.append("g"),a.actorCnt=o5,a.links!=null&&E.attr("id","root-"+o5));const _=HC();var A="actor";a.properties!=null&&a.properties.class?A=a.properties.class:_.fill="#eaeaea",d?A+=` ${pKe}`:A+=` ${gKe}`,_.x=a.x,_.y=p,_.width=a.width,_.height=a.height,_.class=A,_.rx=3,_.ry=3,_.name=a.name;const P=zve(E,_);if(a.rectData=_,a.properties!=null&&a.properties.icon){const B=a.properties.icon.trim();B.charAt(0)==="@"?EVt(E,_.x+_.width-20,_.y+10,B.substr(1)):TVt(E,_.x+_.width-20,_.y+10,B)}await qve(u,$v(a.description))(a.description,E,_.x,_.y,_.width,_.height,{class:"actor"},u);let R=a.height;if(P.node){const B=P.node().getBBox();a.height=B.height,R=B.height}return R},bin=async function(i,a,u,d){const p=d?a.stopy:a.starty,v=a.x+a.width/2,b=p+80;i.lower(),d||(o5++,i.append("line").attr("id","actor"+o5).attr("x1",v).attr("y1",b).attr("x2",v).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),a.actorCnt=o5);const y=i.append("g");let E="actor-man";d?E+=` ${pKe}`:E+=` ${gKe}`,y.attr("class",E),y.attr("name",a.name);const _=HC();_.x=a.x,_.y=p,_.fill="#eaeaea",_.width=a.width,_.height=a.height,_.class="actor",_.rx=3,_.ry=3,y.append("line").attr("id","actor-man-torso"+o5).attr("x1",v).attr("y1",p+25).attr("x2",v).attr("y2",p+45),y.append("line").attr("id","actor-man-arms"+o5).attr("x1",v-eS/2).attr("y1",p+33).attr("x2",v+eS/2).attr("y2",p+33),y.append("line").attr("x1",v-eS/2).attr("y1",p+60).attr("x2",v).attr("y2",p+45),y.append("line").attr("x1",v).attr("y1",p+45).attr("x2",v+eS/2-2).attr("y2",p+60);const A=y.append("circle");A.attr("cx",a.x+a.width/2),A.attr("cy",p+10),A.attr("r",15),A.attr("width",a.width),A.attr("height",a.height);const P=y.node().getBBox();return a.height=P.height,await qve(u,$v(a.description))(a.description,y,_.x,_.y+35,_.width,_.height,{class:"actor"},u),a.height},min=async function(i,a,u,d){switch(a.type){case"actor":return await bin(i,a,u,d);case"participant":return await pin(i,a,u,d)}},vin=async function(i,a,u){const p=i.append("g");vKe(p,a),a.name&&await qve(u)(a.name,p,a.x,a.y+(a.textMaxHeight||0)/2,a.width,0,{class:"text"},u),p.lower()},win=function(i){return i.append("g")},yin=function(i,a,u,d,p){const v=HC(),b=a.anchored;v.x=a.startx,v.y=a.starty,v.class="activation"+p%3,v.width=a.stopx-a.startx,v.height=u-a.starty,zve(b,v)},xin=async function(i,a,u,d){const{boxMargin:p,boxTextMargin:v,labelBoxHeight:b,labelBoxWidth:y,messageFontFamily:E,messageFontSize:_,messageFontWeight:A}=d,P=i.append("g"),R=function(W,ee,ie,oe){return P.append("line").attr("x1",W).attr("y1",ee).attr("x2",ie).attr("y2",oe).attr("class","loopLine")};R(a.startx,a.starty,a.stopx,a.starty),R(a.stopx,a.starty,a.stopx,a.stopy),R(a.startx,a.stopy,a.stopx,a.stopy),R(a.startx,a.starty,a.startx,a.stopy),a.sections!==void 0&&a.sections.forEach(function(W){R(a.startx,W.y,a.stopx,W.y).style("stroke-dasharray","3, 3")});let B=sme();B.text=u,B.x=a.startx,B.y=a.starty,B.fontFamily=E,B.fontSize=_,B.fontWeight=A,B.anchor="middle",B.valign="middle",B.tspan=!1,B.width=y||50,B.height=b||20,B.textMargin=v,B.class="labelText",bKe(P,B),B=wKe(),B.text=a.title,B.x=a.startx+y/2+(a.stopx-a.startx)/2,B.y=a.starty+p+v,B.anchor="middle",B.valign="middle",B.textMargin=v,B.class="loopText",B.fontFamily=E,B.fontSize=_,B.fontWeight=A,B.wrap=!0;let j=$v(B.text)?await LJ(P,B,a):rI(P,B);if(a.sectionTitles!==void 0){for(const[W,ee]of Object.entries(a.sectionTitles))if(ee.message){B.text=ee.message,B.x=a.startx+(a.stopx-a.startx)/2,B.y=a.sections[W].y+p+v,B.class="loopText",B.anchor="middle",B.valign="middle",B.tspan=!1,B.fontFamily=E,B.fontSize=_,B.fontWeight=A,B.wrap=a.wrap,$v(B.text)?(a.starty=a.sections[W].y,await LJ(P,B,a)):rI(P,B);let ie=Math.round(j.map(oe=>(oe._groups||oe)[0][0].getBBox().height).reduce((oe,be)=>oe+be));a.sections[W].height+=ie-(p+v)}}return a.height=Math.round(a.stopy-a.starty),P},vKe=function(i,a){Zqe(i,a)},kin=function(i){i.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")},Tin=function(i){i.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")},Ein=function(i){i.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")},Cin=function(i){i.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},Sin=function(i){i.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},_in=function(i){i.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)},Ain=function(i){i.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},wKe=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},Lin=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},qve=function(){function i(v,b,y,E,_,A,P){const R=b.append("text").attr("x",y+_/2).attr("y",E+A/2+5).style("text-anchor","middle").text(v);p(R,P)}function a(v,b,y,E,_,A,P,R){const{actorFontSize:B,actorFontFamily:j,actorFontWeight:W}=R,[ee,ie]=PC(B),oe=v.split(oi.lineBreakRegex);for(let be=0;bei.height||0))+(this.loops.length===0?0:this.loops.map(i=>i.height||0).reduce((i,a)=>i+a))+(this.messages.length===0?0:this.messages.map(i=>i.height||0).reduce((i,a)=>i+a))+(this.notes.length===0?0:this.notes.map(i=>i.height||0).reduce((i,a)=>i+a))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(i){this.boxes.push(i)},addActor:function(i){this.actors.push(i)},addLoop:function(i){this.loops.push(i)},addMessage:function(i){this.messages.push(i)},addNote:function(i){this.notes.push(i)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,xKe(qt())},updateVal:function(i,a,u,d){i[a]===void 0?i[a]=u:i[a]=d(u,i[a])},updateBounds:function(i,a,u,d){const p=this;let v=0;function b(y){return function(_){v++;const A=p.sequenceItems.length-v+1;p.updateVal(_,"starty",a-A*Tn.boxMargin,Math.min),p.updateVal(_,"stopy",d+A*Tn.boxMargin,Math.max),p.updateVal(ni.data,"startx",i-A*Tn.boxMargin,Math.min),p.updateVal(ni.data,"stopx",u+A*Tn.boxMargin,Math.max),y!=="activation"&&(p.updateVal(_,"startx",i-A*Tn.boxMargin,Math.min),p.updateVal(_,"stopx",u+A*Tn.boxMargin,Math.max),p.updateVal(ni.data,"starty",a-A*Tn.boxMargin,Math.min),p.updateVal(ni.data,"stopy",d+A*Tn.boxMargin,Math.max))}}this.sequenceItems.forEach(b()),this.activations.forEach(b("activation"))},insert:function(i,a,u,d){const p=oi.getMin(i,u),v=oi.getMax(i,u),b=oi.getMin(a,d),y=oi.getMax(a,d);this.updateVal(ni.data,"startx",p,Math.min),this.updateVal(ni.data,"starty",b,Math.min),this.updateVal(ni.data,"stopx",v,Math.max),this.updateVal(ni.data,"stopy",y,Math.max),this.updateBounds(p,b,v,y)},newActivation:function(i,a,u){const d=u[i.from.actor],p=MJ(i.from.actor).length||0,v=d.x+d.width/2+(p-1)*Tn.activationWidth/2;this.activations.push({startx:v,starty:this.verticalPos+2,stopx:v+Tn.activationWidth,stopy:void 0,actor:i.from.actor,anchored:Qf.anchorElement(a)})},endActivation:function(i){const a=this.activations.map(function(u){return u.actor}).lastIndexOf(i.from.actor);return this.activations.splice(a,1)[0]},createLoop:function(i={message:void 0,wrap:!1,width:void 0},a){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:i.message,wrap:i.wrap,width:i.width,height:0,fill:a}},newLoop:function(i={message:void 0,wrap:!1,width:void 0},a){this.sequenceItems.push(this.createLoop(i,a))},endLoop:function(){return this.sequenceItems.pop()},isLoopOverlap:function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},addSectionToLoop:function(i){const a=this.sequenceItems.pop();a.sections=a.sections||[],a.sectionTitles=a.sectionTitles||[],a.sections.push({y:ni.getVerticalPos(),height:0}),a.sectionTitles.push(i),this.sequenceItems.push(a)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(i){this.verticalPos=this.verticalPos+i,this.data.stopy=oi.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},Din=async function(i,a){ni.bumpVerticalPos(Tn.boxMargin),a.height=Tn.boxMargin,a.starty=ni.getVerticalPos();const u=HC();u.x=a.startx,u.y=a.starty,u.width=a.width||Tn.width,u.class="note";const d=i.append("g"),p=Qf.drawRect(d,u),v=sme();v.x=a.startx,v.y=a.starty,v.width=u.width,v.dy="1em",v.text=a.message,v.class="noteText",v.fontFamily=Tn.noteFontFamily,v.fontSize=Tn.noteFontSize,v.fontWeight=Tn.noteFontWeight,v.anchor=Tn.noteAlign,v.textMargin=Tn.noteMargin,v.valign="center";const b=$v(v.text)?await LJ(d,v):rI(d,v),y=Math.round(b.map(E=>(E._groups||E)[0][0].getBBox().height).reduce((E,_)=>E+_));p.attr("height",y+2*Tn.noteMargin),a.height+=y+2*Tn.noteMargin,ni.bumpVerticalPos(y+2*Tn.noteMargin),a.stopy=a.starty+y+2*Tn.noteMargin,a.stopx=a.startx+u.width,ni.insert(a.startx,a.starty,a.stopx,a.stopy),ni.models.addNote(a)},tS=i=>({fontFamily:i.messageFontFamily,fontSize:i.messageFontSize,fontWeight:i.messageFontWeight}),iI=i=>({fontFamily:i.noteFontFamily,fontSize:i.noteFontSize,fontWeight:i.noteFontWeight}),Hve=i=>({fontFamily:i.actorFontFamily,fontSize:i.actorFontSize,fontWeight:i.actorFontWeight});async function Iin(i,a){ni.bumpVerticalPos(10);const{startx:u,stopx:d,message:p}=a,v=oi.splitBreaks(p).length,b=$v(p),y=b?await ZF(p,qt()):So.calculateTextDimensions(p,tS(Tn));if(!b){const P=y.height/v;a.height+=P,ni.bumpVerticalPos(P)}let E,_=y.height-10;const A=y.width;if(u===d){E=ni.getVerticalPos()+_,Tn.rightAngles||(_+=Tn.boxMargin,E=ni.getVerticalPos()+_),_+=30;const P=oi.getMax(A/2,Tn.width/2);ni.insert(u-P,ni.getVerticalPos()-10+_,d+P,ni.getVerticalPos()+30+_)}else _+=Tn.boxMargin,E=ni.getVerticalPos()+_,ni.insert(u,E-10,d,E);return ni.bumpVerticalPos(_),a.height+=_,a.stopy=a.starty+a.height,ni.insert(a.fromBounds,a.starty,a.toBounds,a.stopy),E}const Oin=async function(i,a,u,d){const{startx:p,stopx:v,starty:b,message:y,type:E,sequenceIndex:_,sequenceVisible:A}=a,P=So.calculateTextDimensions(y,tS(Tn)),R=sme();R.x=p,R.y=b+10,R.width=v-p,R.class="messageText",R.dy="1em",R.text=y,R.fontFamily=Tn.messageFontFamily,R.fontSize=Tn.messageFontSize,R.fontWeight=Tn.messageFontWeight,R.anchor=Tn.messageAlign,R.valign="center",R.textMargin=Tn.wrapPadding,R.tspan=!1,$v(R.text)?await LJ(i,R,{startx:p,stopx:v,starty:u}):rI(i,R);const B=P.width;let j;p===v?Tn.rightAngles?j=i.append("path").attr("d",`M ${p},${u} H ${p+oi.getMax(Tn.width/2,B/2)} V ${u+25} H ${p}`):j=i.append("path").attr("d","M "+p+","+u+" C "+(p+60)+","+(u-10)+" "+(p+60)+","+(u+30)+" "+p+","+(u+20)):(j=i.append("line"),j.attr("x1",p),j.attr("y1",u),j.attr("x2",v),j.attr("y2",u)),E===d.db.LINETYPE.DOTTED||E===d.db.LINETYPE.DOTTED_CROSS||E===d.db.LINETYPE.DOTTED_POINT||E===d.db.LINETYPE.DOTTED_OPEN?(j.style("stroke-dasharray","3, 3"),j.attr("class","messageLine1")):j.attr("class","messageLine0");let W="";Tn.arrowMarkerAbsolute&&(W=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,W=W.replace(/\(/g,"\\("),W=W.replace(/\)/g,"\\)")),j.attr("stroke-width",2),j.attr("stroke","none"),j.style("fill","none"),(E===d.db.LINETYPE.SOLID||E===d.db.LINETYPE.DOTTED)&&j.attr("marker-end","url("+W+"#arrowhead)"),(E===d.db.LINETYPE.SOLID_POINT||E===d.db.LINETYPE.DOTTED_POINT)&&j.attr("marker-end","url("+W+"#filled-head)"),(E===d.db.LINETYPE.SOLID_CROSS||E===d.db.LINETYPE.DOTTED_CROSS)&&j.attr("marker-end","url("+W+"#crosshead)"),(A||Tn.showSequenceNumbers)&&(j.attr("marker-start","url("+W+"#sequencenumber)"),i.append("text").attr("x",p).attr("y",u+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(_))},Nin=async function(i,a,u,d,p,v,b){let y=0,E=0,_,A=0;for(const P of d){const R=a[P],B=R.box;_&&_!=B&&(b||ni.models.addBox(_),E+=Tn.boxMargin+_.margin),B&&B!=_&&(b||(B.x=y+E,B.y=p),E+=B.margin),R.width=R.width||Tn.width,R.height=oi.getMax(R.height||Tn.height,Tn.height),R.margin=R.margin||Tn.actorMargin,A=oi.getMax(A,R.height),u[R.name]&&(E+=R.width/2),R.x=y+E,R.starty=ni.getVerticalPos(),ni.insert(R.x,p,R.x+R.width,R.height),y+=R.width+E,R.box&&(R.box.width=y+B.margin-R.box.x),E=R.margin,_=R.box,ni.models.addActor(R)}_&&!b&&ni.models.addBox(_),ni.bumpVerticalPos(A)},Uve=async function(i,a,u,d){if(d){let p=0;ni.bumpVerticalPos(Tn.boxMargin*2);for(const v of u){const b=a[v];b.stopy||(b.stopy=ni.getVerticalPos());const y=await Qf.drawActor(i,b,Tn,!0);p=oi.getMax(p,y)}ni.bumpVerticalPos(p+Tn.boxMargin)}else for(const p of u){const v=a[p];await Qf.drawActor(i,v,Tn,!1)}},yKe=function(i,a,u,d){let p=0,v=0;for(const b of u){const y=a[b],E=Rin(y),_=Qf.drawPopup(i,y,E,Tn,Tn.forceMenus,d);_.height>p&&(p=_.height),_.width+y.x>v&&(v=_.width+y.x)}return{maxHeight:p,maxWidth:v}},xKe=function(i){id(Tn,i),i.fontFamily&&(Tn.actorFontFamily=Tn.noteFontFamily=Tn.messageFontFamily=i.fontFamily),i.fontSize&&(Tn.actorFontSize=Tn.noteFontSize=Tn.messageFontSize=i.fontSize),i.fontWeight&&(Tn.actorFontWeight=Tn.noteFontWeight=Tn.messageFontWeight=i.fontWeight)},MJ=function(i){return ni.activations.filter(function(a){return a.actor===i})},kKe=function(i,a){const u=a[i],d=MJ(i),p=d.reduce(function(b,y){return oi.getMin(b,y.startx)},u.x+u.width/2-1),v=d.reduce(function(b,y){return oi.getMax(b,y.stopx)},u.x+u.width/2+1);return[p,v]};function c5(i,a,u,d,p){ni.bumpVerticalPos(u);let v=d;if(a.id&&a.message&&i[a.id]){const b=i[a.id].width,y=tS(Tn);a.message=So.wrapLabel(`[${a.message}]`,b-2*Tn.wrapPadding,y),a.width=b,a.wrap=!0;const E=So.calculateTextDimensions(a.message,y),_=oi.getMax(E.height,Tn.labelBoxHeight);v=d+_,Xe.debug(`${_} - ${a.message}`)}p(a),ni.bumpVerticalPos(v)}function Pin(i,a,u,d,p,v,b){function y(_,A){_.x{Se.add(Ce.from),Se.add(Ce.to)}),j=j.filter(Ce=>Se.has(Ce))}await Nin(_,A,P,j,0,W,!1);const ge=await qin(W,A,be,d);Qf.insertArrowHead(_),Qf.insertArrowCrossHead(_),Qf.insertArrowFilledHead(_),Qf.insertSequenceNumber(_);function ae(Se,Ce){const ke=ni.endActivation(Se);ke.starty+18>Ce&&(ke.starty=Ce-6,Ce+=12),Qf.drawActivation(_,ke,Ce,Tn,MJ(Se.from.actor).length),ni.insert(ke.startx,Ce-10,ke.stopx,Ce)}let ne=1,se=1;const de=[],X=[];let pe=0;for(const Se of W){let Ce,ke,Ke;switch(Se.type){case d.db.LINETYPE.NOTE:ni.resetVerticalPos(),ke=Se.noteModel,await Din(_,ke);break;case d.db.LINETYPE.ACTIVE_START:ni.newActivation(Se,_,A);break;case d.db.LINETYPE.ACTIVE_END:ae(Se,ni.getVerticalPos());break;case d.db.LINETYPE.LOOP_START:c5(ge,Se,Tn.boxMargin,Tn.boxMargin+Tn.boxTextMargin,zt=>ni.newLoop(zt));break;case d.db.LINETYPE.LOOP_END:Ce=ni.endLoop(),await Qf.drawLoop(_,Ce,"loop",Tn),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.RECT_START:c5(ge,Se,Tn.boxMargin,Tn.boxMargin,zt=>ni.newLoop(void 0,zt.message));break;case d.db.LINETYPE.RECT_END:Ce=ni.endLoop(),X.push(Ce),ni.models.addLoop(Ce),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos());break;case d.db.LINETYPE.OPT_START:c5(ge,Se,Tn.boxMargin,Tn.boxMargin+Tn.boxTextMargin,zt=>ni.newLoop(zt));break;case d.db.LINETYPE.OPT_END:Ce=ni.endLoop(),await Qf.drawLoop(_,Ce,"opt",Tn),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.ALT_START:c5(ge,Se,Tn.boxMargin,Tn.boxMargin+Tn.boxTextMargin,zt=>ni.newLoop(zt));break;case d.db.LINETYPE.ALT_ELSE:c5(ge,Se,Tn.boxMargin+Tn.boxTextMargin,Tn.boxMargin,zt=>ni.addSectionToLoop(zt));break;case d.db.LINETYPE.ALT_END:Ce=ni.endLoop(),await Qf.drawLoop(_,Ce,"alt",Tn),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.PAR_START:case d.db.LINETYPE.PAR_OVER_START:c5(ge,Se,Tn.boxMargin,Tn.boxMargin+Tn.boxTextMargin,zt=>ni.newLoop(zt)),ni.saveVerticalPos();break;case d.db.LINETYPE.PAR_AND:c5(ge,Se,Tn.boxMargin+Tn.boxTextMargin,Tn.boxMargin,zt=>ni.addSectionToLoop(zt));break;case d.db.LINETYPE.PAR_END:Ce=ni.endLoop(),await Qf.drawLoop(_,Ce,"par",Tn),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.AUTONUMBER:ne=Se.message.start||ne,se=Se.message.step||se,Se.message.visible?d.db.enableSequenceNumbers():d.db.disableSequenceNumbers();break;case d.db.LINETYPE.CRITICAL_START:c5(ge,Se,Tn.boxMargin,Tn.boxMargin+Tn.boxTextMargin,zt=>ni.newLoop(zt));break;case d.db.LINETYPE.CRITICAL_OPTION:c5(ge,Se,Tn.boxMargin+Tn.boxTextMargin,Tn.boxMargin,zt=>ni.addSectionToLoop(zt));break;case d.db.LINETYPE.CRITICAL_END:Ce=ni.endLoop(),await Qf.drawLoop(_,Ce,"critical",Tn),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.BREAK_START:c5(ge,Se,Tn.boxMargin,Tn.boxMargin+Tn.boxTextMargin,zt=>ni.newLoop(zt));break;case d.db.LINETYPE.BREAK_END:Ce=ni.endLoop(),await Qf.drawLoop(_,Ce,"break",Tn),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;default:try{Ke=Se.msgModel,Ke.starty=ni.getVerticalPos(),Ke.sequenceIndex=ne,Ke.sequenceVisible=d.db.showSequenceNumbers();const zt=await Iin(_,Ke);Pin(Se,Ke,zt,pe,A,P,R),de.push({messageModel:Ke,lineStartY:zt}),ni.models.addMessage(Ke)}catch(zt){Xe.error("error while drawing message",zt)}}[d.db.LINETYPE.SOLID_OPEN,d.db.LINETYPE.DOTTED_OPEN,d.db.LINETYPE.SOLID,d.db.LINETYPE.DOTTED,d.db.LINETYPE.SOLID_CROSS,d.db.LINETYPE.DOTTED_CROSS,d.db.LINETYPE.SOLID_POINT,d.db.LINETYPE.DOTTED_POINT].includes(Se.type)&&(ne=ne+se),pe++}Xe.debug("createdActors",P),Xe.debug("destroyedActors",R),await Uve(_,A,j,!1);for(const Se of de)await Oin(_,Se.messageModel,Se.lineStartY,d);Tn.mirrorActors&&await Uve(_,A,j,!0),X.forEach(Se=>Qf.drawBackgroundRect(_,Se)),mKe(_,A,j,Tn);for(const Se of ni.models.boxes)Se.height=ni.getVerticalPos()-Se.y,ni.insert(Se.x,Se.y,Se.x+Se.width,Se.height),Se.startx=Se.x,Se.starty=Se.y,Se.stopx=Se.startx+Se.width,Se.stopy=Se.starty+Se.height,Se.stroke="rgb(0,0,0, 0.5)",await Qf.drawBox(_,Se,Tn);ie&&ni.bumpVerticalPos(Tn.boxMargin);const G=yKe(_,A,j,E),{bounds:xe}=ni.getBounds();let U=xe.stopy-xe.starty;U{const b=tS(Tn);let y=v.actorKeys.reduce((A,P)=>A+=i[P].width+(i[P].margin||0),0);y-=2*Tn.boxTextMargin,v.wrap&&(v.name=So.wrapLabel(v.name,y-2*Tn.wrapPadding,b));const E=So.calculateTextDimensions(v.name,b);p=oi.getMax(E.height,p);const _=oi.getMax(y,E.width+2*Tn.wrapPadding);if(v.margin=Tn.boxTextMargin,y<_){const A=(_-y)/2;v.margin+=A}}),u.forEach(v=>v.textMaxHeight=p),oi.getMax(d,Tn.height)}const $in=async function(i,a,u){const d=a[i.from].x,p=a[i.to].x,v=i.wrap&&i.message;let b=$v(i.message)?await ZF(i.message,qt()):So.calculateTextDimensions(v?So.wrapLabel(i.message,Tn.width,iI(Tn)):i.message,iI(Tn));const y={width:v?Tn.width:oi.getMax(Tn.width,b.width+2*Tn.noteMargin),height:0,startx:a[i.from].x,stopx:0,starty:0,stopy:0,message:i.message};return i.placement===u.db.PLACEMENT.RIGHTOF?(y.width=v?oi.getMax(Tn.width,b.width):oi.getMax(a[i.from].width/2+a[i.to].width/2,b.width+2*Tn.noteMargin),y.startx=d+(a[i.from].width+Tn.actorMargin)/2):i.placement===u.db.PLACEMENT.LEFTOF?(y.width=v?oi.getMax(Tn.width,b.width+2*Tn.noteMargin):oi.getMax(a[i.from].width/2+a[i.to].width/2,b.width+2*Tn.noteMargin),y.startx=d-y.width+(a[i.from].width-Tn.actorMargin)/2):i.to===i.from?(b=So.calculateTextDimensions(v?So.wrapLabel(i.message,oi.getMax(Tn.width,a[i.from].width),iI(Tn)):i.message,iI(Tn)),y.width=v?oi.getMax(Tn.width,a[i.from].width):oi.getMax(a[i.from].width,Tn.width,b.width+2*Tn.noteMargin),y.startx=d+(a[i.from].width-y.width)/2):(y.width=Math.abs(d+a[i.from].width/2-(p+a[i.to].width/2))+Tn.actorMargin,y.startx=d2,P=W=>y?-W:W;i.from===i.to?_=E:(i.activate&&!A&&(_+=P(Tn.activationWidth/2-1)),[u.db.LINETYPE.SOLID_OPEN,u.db.LINETYPE.DOTTED_OPEN].includes(i.type)||(_+=P(3)));const R=[d,p,v,b],B=Math.abs(E-_);i.wrap&&i.message&&(i.message=So.wrapLabel(i.message,oi.getMax(B+2*Tn.wrapPadding,Tn.width),tS(Tn)));const j=So.calculateTextDimensions(i.message,tS(Tn));return{width:oi.getMax(i.wrap?0:j.width+2*Tn.wrapPadding,B+2*Tn.wrapPadding,Tn.width),height:0,startx:E,stopx:_,starty:0,stopy:0,message:i.message,type:i.type,wrap:i.wrap,fromBounds:Math.min.apply(null,R),toBounds:Math.max.apply(null,R)}},qin=async function(i,a,u,d){const p={},v=[];let b,y,E;for(const _ of i){switch(_.id=So.random({length:10}),_.type){case d.db.LINETYPE.LOOP_START:case d.db.LINETYPE.ALT_START:case d.db.LINETYPE.OPT_START:case d.db.LINETYPE.PAR_START:case d.db.LINETYPE.PAR_OVER_START:case d.db.LINETYPE.CRITICAL_START:case d.db.LINETYPE.BREAK_START:v.push({id:_.id,msg:_.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case d.db.LINETYPE.ALT_ELSE:case d.db.LINETYPE.PAR_AND:case d.db.LINETYPE.CRITICAL_OPTION:_.message&&(b=v.pop(),p[b.id]=b,p[_.id]=b,v.push(b));break;case d.db.LINETYPE.LOOP_END:case d.db.LINETYPE.ALT_END:case d.db.LINETYPE.OPT_END:case d.db.LINETYPE.PAR_END:case d.db.LINETYPE.CRITICAL_END:case d.db.LINETYPE.BREAK_END:b=v.pop(),p[b.id]=b;break;case d.db.LINETYPE.ACTIVE_START:{const P=a[_.from?_.from.actor:_.to.actor],R=MJ(_.from?_.from.actor:_.to.actor).length,B=P.x+P.width/2+(R-1)*Tn.activationWidth/2,j={startx:B,stopx:B+Tn.activationWidth,actor:_.from.actor,enabled:!0};ni.activations.push(j)}break;case d.db.LINETYPE.ACTIVE_END:{const P=ni.activations.map(R=>R.actor).lastIndexOf(_.from.actor);delete ni.activations.splice(P,1)[0]}break}_.placement!==void 0?(y=await $in(_,a,d),_.noteModel=y,v.forEach(P=>{b=P,b.from=oi.getMin(b.from,y.startx),b.to=oi.getMax(b.to,y.startx+y.width),b.width=oi.getMax(b.width,Math.abs(b.from-b.to))-Tn.labelBoxWidth})):(E=zin(_,a,d),_.msgModel=E,E.startx&&E.stopx&&v.length>0&&v.forEach(P=>{if(b=P,E.startx===E.stopx){const R=a[_.from],B=a[_.to];b.from=oi.getMin(R.x-E.width/2,R.x-R.width/2,b.from),b.to=oi.getMax(B.x+E.width/2,B.x+R.width/2,b.to),b.width=oi.getMax(b.width,Math.abs(b.to-b.from))-Tn.labelBoxWidth}else b.from=oi.getMin(E.startx,b.from),b.to=oi.getMax(E.stopx,b.to),b.width=oi.getMax(b.width,E.width)-Tn.labelBoxWidth}))}return ni.activations=[],Xe.debug("Loop type widths:",p),p},Hin=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:zrn,db:dKe,renderer:{bounds:ni,drawActors:Uve,drawActorsPopup:yKe,setConf:xKe,draw:Bin},styles:fin,init:({wrap:i})=>{dKe.setWrap(i)}}},Symbol.toStringTag,{value:"Module"}));var Vve=function(){var i=function(mo,Tr,On,Rn){for(On=On||{},Rn=mo.length;Rn--;On[mo[Rn]]=Tr);return On},a=[1,17],u=[1,18],d=[1,19],p=[1,39],v=[1,40],b=[1,25],y=[1,23],E=[1,24],_=[1,31],A=[1,32],P=[1,33],R=[1,34],B=[1,35],j=[1,36],W=[1,26],ee=[1,27],ie=[1,28],oe=[1,29],be=[1,43],ge=[1,30],ae=[1,42],ne=[1,44],se=[1,41],de=[1,45],X=[1,9],pe=[1,8,9],G=[1,56],xe=[1,57],U=[1,58],Be=[1,59],Pe=[1,60],je=[1,61],Ie=[1,62],Se=[1,8,9,39],Ce=[1,74],ke=[1,8,9,12,13,21,37,39,42,59,60,61,62,63,64,65,70,72],Ke=[1,8,9,12,13,19,21,37,39,42,46,59,60,61,62,63,64,65,70,72,74,80,95,97,98],zt=[13,74,80,95,97,98],Ne=[13,64,65,74,80,95,97,98],pn=[13,59,60,61,62,63,74,80,95,97,98],Tt=[1,93],Et=[1,110],Wt=[1,108],un=[1,102],yt=[1,103],Bt=[1,104],Ze=[1,105],Dt=[1,106],kt=[1,107],Nn=[1,109],ht=[1,8,9,37,39,42],qr=[1,8,9,21],xt=[1,8,9,78],Ri=[1,8,9,21,73,74,78,80,81,82,83,84,85],wi={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,styleStatement:27,cssClassStatement:28,noteStatement:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,namespaceIdentifier:36,STRUCT_START:37,classStatements:38,STRUCT_STOP:39,NAMESPACE:40,classIdentifier:41,STYLE_SEPARATOR:42,members:43,CLASS:44,ANNOTATION_START:45,ANNOTATION_END:46,MEMBER:47,SEPARATOR:48,relation:49,NOTE_FOR:50,noteText:51,NOTE:52,direction_tb:53,direction_bt:54,direction_rl:55,direction_lr:56,relationType:57,lineType:58,AGGREGATION:59,EXTENSION:60,COMPOSITION:61,DEPENDENCY:62,LOLLIPOP:63,LINE:64,DOTTED_LINE:65,CALLBACK:66,LINK:67,LINK_TARGET:68,CLICK:69,CALLBACK_NAME:70,CALLBACK_ARGS:71,HREF:72,STYLE:73,ALPHA:74,stylesOpt:75,CSSCLASS:76,style:77,COMMA:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,commentToken:86,textToken:87,graphCodeTokens:88,textNoTagsToken:89,TAGSTART:90,TAGEND:91,"==":92,"--":93,DEFAULT:94,MINUS:95,keywords:96,UNICODE_TEXT:97,BQUOTE_STR:98,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",37:"STRUCT_START",39:"STRUCT_STOP",40:"NAMESPACE",42:"STYLE_SEPARATOR",44:"CLASS",45:"ANNOTATION_START",46:"ANNOTATION_END",47:"MEMBER",48:"SEPARATOR",50:"NOTE_FOR",52:"NOTE",53:"direction_tb",54:"direction_bt",55:"direction_rl",56:"direction_lr",59:"AGGREGATION",60:"EXTENSION",61:"COMPOSITION",62:"DEPENDENCY",63:"LOLLIPOP",64:"LINE",65:"DOTTED_LINE",66:"CALLBACK",67:"LINK",68:"LINK_TARGET",69:"CLICK",70:"CALLBACK_NAME",71:"CALLBACK_ARGS",72:"HREF",73:"STYLE",74:"ALPHA",76:"CSSCLASS",78:"COMMA",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",88:"graphCodeTokens",90:"TAGSTART",91:"TAGEND",92:"==",93:"--",94:"DEFAULT",95:"MINUS",96:"keywords",97:"UNICODE_TEXT",98:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[36,2],[38,1],[38,2],[38,3],[23,1],[23,3],[23,4],[23,6],[41,2],[41,3],[25,4],[43,1],[43,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[29,3],[29,2],[30,1],[30,1],[30,1],[30,1],[49,3],[49,2],[49,2],[49,1],[57,1],[57,1],[57,1],[57,1],[57,1],[58,1],[58,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[28,3],[75,1],[75,3],[77,1],[77,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[86,1],[86,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[89,1],[89,1],[89,1],[89,1],[16,1],[16,1],[16,1],[16,1],[18,1],[51,1]],performAction:function(Tr,On,Rn,zn,Ct,gt,on){var dn=gt.length-1;switch(Ct){case 8:this.$=gt[dn-1];break;case 9:case 11:case 12:this.$=gt[dn];break;case 10:case 13:this.$=gt[dn-1]+gt[dn];break;case 14:case 15:this.$=gt[dn-1]+"~"+gt[dn]+"~";break;case 16:zn.addRelation(gt[dn]);break;case 17:gt[dn-1].title=zn.cleanupLabel(gt[dn]),zn.addRelation(gt[dn-1]);break;case 27:this.$=gt[dn].trim(),zn.setAccTitle(this.$);break;case 28:case 29:this.$=gt[dn].trim(),zn.setAccDescription(this.$);break;case 30:zn.addClassesToNamespace(gt[dn-3],gt[dn-1]);break;case 31:zn.addClassesToNamespace(gt[dn-4],gt[dn-1]);break;case 32:this.$=gt[dn],zn.addNamespace(gt[dn]);break;case 33:this.$=[gt[dn]];break;case 34:this.$=[gt[dn-1]];break;case 35:gt[dn].unshift(gt[dn-2]),this.$=gt[dn];break;case 37:zn.setCssClass(gt[dn-2],gt[dn]);break;case 38:zn.addMembers(gt[dn-3],gt[dn-1]);break;case 39:zn.setCssClass(gt[dn-5],gt[dn-3]),zn.addMembers(gt[dn-5],gt[dn-1]);break;case 40:this.$=gt[dn],zn.addClass(gt[dn]);break;case 41:this.$=gt[dn-1],zn.addClass(gt[dn-1]),zn.setClassLabel(gt[dn-1],gt[dn]);break;case 42:zn.addAnnotation(gt[dn],gt[dn-2]);break;case 43:this.$=[gt[dn]];break;case 44:gt[dn].push(gt[dn-1]),this.$=gt[dn];break;case 45:break;case 46:zn.addMember(gt[dn-1],zn.cleanupLabel(gt[dn]));break;case 47:break;case 48:break;case 49:this.$={id1:gt[dn-2],id2:gt[dn],relation:gt[dn-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:gt[dn-3],id2:gt[dn],relation:gt[dn-1],relationTitle1:gt[dn-2],relationTitle2:"none"};break;case 51:this.$={id1:gt[dn-3],id2:gt[dn],relation:gt[dn-2],relationTitle1:"none",relationTitle2:gt[dn-1]};break;case 52:this.$={id1:gt[dn-4],id2:gt[dn],relation:gt[dn-2],relationTitle1:gt[dn-3],relationTitle2:gt[dn-1]};break;case 53:zn.addNote(gt[dn],gt[dn-1]);break;case 54:zn.addNote(gt[dn]);break;case 55:zn.setDirection("TB");break;case 56:zn.setDirection("BT");break;case 57:zn.setDirection("RL");break;case 58:zn.setDirection("LR");break;case 59:this.$={type1:gt[dn-2],type2:gt[dn],lineType:gt[dn-1]};break;case 60:this.$={type1:"none",type2:gt[dn],lineType:gt[dn-1]};break;case 61:this.$={type1:gt[dn-1],type2:"none",lineType:gt[dn]};break;case 62:this.$={type1:"none",type2:"none",lineType:gt[dn]};break;case 63:this.$=zn.relationType.AGGREGATION;break;case 64:this.$=zn.relationType.EXTENSION;break;case 65:this.$=zn.relationType.COMPOSITION;break;case 66:this.$=zn.relationType.DEPENDENCY;break;case 67:this.$=zn.relationType.LOLLIPOP;break;case 68:this.$=zn.lineType.LINE;break;case 69:this.$=zn.lineType.DOTTED_LINE;break;case 70:case 76:this.$=gt[dn-2],zn.setClickEvent(gt[dn-1],gt[dn]);break;case 71:case 77:this.$=gt[dn-3],zn.setClickEvent(gt[dn-2],gt[dn-1]),zn.setTooltip(gt[dn-2],gt[dn]);break;case 72:this.$=gt[dn-2],zn.setLink(gt[dn-1],gt[dn]);break;case 73:this.$=gt[dn-3],zn.setLink(gt[dn-2],gt[dn-1],gt[dn]);break;case 74:this.$=gt[dn-3],zn.setLink(gt[dn-2],gt[dn-1]),zn.setTooltip(gt[dn-2],gt[dn]);break;case 75:this.$=gt[dn-4],zn.setLink(gt[dn-3],gt[dn-2],gt[dn]),zn.setTooltip(gt[dn-3],gt[dn-1]);break;case 78:this.$=gt[dn-3],zn.setClickEvent(gt[dn-2],gt[dn-1],gt[dn]);break;case 79:this.$=gt[dn-4],zn.setClickEvent(gt[dn-3],gt[dn-2],gt[dn-1]),zn.setTooltip(gt[dn-3],gt[dn]);break;case 80:this.$=gt[dn-3],zn.setLink(gt[dn-2],gt[dn]);break;case 81:this.$=gt[dn-4],zn.setLink(gt[dn-3],gt[dn-1],gt[dn]);break;case 82:this.$=gt[dn-4],zn.setLink(gt[dn-3],gt[dn-1]),zn.setTooltip(gt[dn-3],gt[dn]);break;case 83:this.$=gt[dn-5],zn.setLink(gt[dn-4],gt[dn-2],gt[dn]),zn.setTooltip(gt[dn-4],gt[dn-1]);break;case 84:this.$=gt[dn-2],zn.setCssStyle(gt[dn-1],gt[dn]);break;case 85:zn.setCssClass(gt[dn-1],gt[dn]);break;case 86:this.$=[gt[dn]];break;case 87:gt[dn-2].push(gt[dn]),this.$=gt[dn-2];break;case 89:this.$=gt[dn-1]+gt[dn];break}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:a,33:u,35:d,36:21,40:p,41:22,44:v,45:b,47:y,48:E,50:_,52:A,53:P,54:R,55:B,56:j,66:W,67:ee,69:ie,73:oe,74:be,76:ge,80:ae,95:ne,97:se,98:de},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},i(X,[2,5],{8:[1,46]}),{8:[1,47]},i(pe,[2,16],{21:[1,48]}),i(pe,[2,18]),i(pe,[2,19]),i(pe,[2,20]),i(pe,[2,21]),i(pe,[2,22]),i(pe,[2,23]),i(pe,[2,24]),i(pe,[2,25]),i(pe,[2,26]),{32:[1,49]},{34:[1,50]},i(pe,[2,29]),i(pe,[2,45],{49:51,57:54,58:55,13:[1,52],21:[1,53],59:G,60:xe,61:U,62:Be,63:Pe,64:je,65:Ie}),{37:[1,63]},i(Se,[2,36],{37:[1,65],42:[1,64]}),i(pe,[2,47]),i(pe,[2,48]),{16:66,74:be,80:ae,95:ne,97:se},{16:37,17:67,18:38,74:be,80:ae,95:ne,97:se,98:de},{16:37,17:68,18:38,74:be,80:ae,95:ne,97:se,98:de},{16:37,17:69,18:38,74:be,80:ae,95:ne,97:se,98:de},{74:[1,70]},{13:[1,71]},{16:37,17:72,18:38,74:be,80:ae,95:ne,97:se,98:de},{13:Ce,51:73},i(pe,[2,55]),i(pe,[2,56]),i(pe,[2,57]),i(pe,[2,58]),i(ke,[2,11],{16:37,18:38,17:75,19:[1,76],74:be,80:ae,95:ne,97:se,98:de}),i(ke,[2,12],{19:[1,77]}),{15:78,16:79,74:be,80:ae,95:ne,97:se},{16:37,17:80,18:38,74:be,80:ae,95:ne,97:se,98:de},i(Ke,[2,112]),i(Ke,[2,113]),i(Ke,[2,114]),i(Ke,[2,115]),i([1,8,9,12,13,19,21,37,39,42,59,60,61,62,63,64,65,70,72],[2,116]),i(X,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,17:20,36:21,41:22,16:37,18:38,5:81,31:a,33:u,35:d,40:p,44:v,45:b,47:y,48:E,50:_,52:A,53:P,54:R,55:B,56:j,66:W,67:ee,69:ie,73:oe,74:be,76:ge,80:ae,95:ne,97:se,98:de}),{5:82,10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:a,33:u,35:d,36:21,40:p,41:22,44:v,45:b,47:y,48:E,50:_,52:A,53:P,54:R,55:B,56:j,66:W,67:ee,69:ie,73:oe,74:be,76:ge,80:ae,95:ne,97:se,98:de},i(pe,[2,17]),i(pe,[2,27]),i(pe,[2,28]),{13:[1,84],16:37,17:83,18:38,74:be,80:ae,95:ne,97:se,98:de},{49:85,57:54,58:55,59:G,60:xe,61:U,62:Be,63:Pe,64:je,65:Ie},i(pe,[2,46]),{58:86,64:je,65:Ie},i(zt,[2,62],{57:87,59:G,60:xe,61:U,62:Be,63:Pe}),i(Ne,[2,63]),i(Ne,[2,64]),i(Ne,[2,65]),i(Ne,[2,66]),i(Ne,[2,67]),i(pn,[2,68]),i(pn,[2,69]),{8:[1,89],23:90,38:88,41:22,44:v},{16:91,74:be,80:ae,95:ne,97:se},{43:92,47:Tt},{46:[1,94]},{13:[1,95]},{13:[1,96]},{70:[1,97],72:[1,98]},{21:Et,73:Wt,74:un,75:99,77:100,79:101,80:yt,81:Bt,82:Ze,83:Dt,84:kt,85:Nn},{74:[1,111]},{13:Ce,51:112},i(pe,[2,54]),i(pe,[2,117]),i(ke,[2,13]),i(ke,[2,14]),i(ke,[2,15]),{37:[2,32]},{15:113,16:79,37:[2,9],74:be,80:ae,95:ne,97:se},i(ht,[2,40],{11:114,12:[1,115]}),i(X,[2,7]),{9:[1,116]},i(qr,[2,49]),{16:37,17:117,18:38,74:be,80:ae,95:ne,97:se,98:de},{13:[1,119],16:37,17:118,18:38,74:be,80:ae,95:ne,97:se,98:de},i(zt,[2,61],{57:120,59:G,60:xe,61:U,62:Be,63:Pe}),i(zt,[2,60]),{39:[1,121]},{23:90,38:122,41:22,44:v},{8:[1,123],39:[2,33]},i(Se,[2,37],{37:[1,124]}),{39:[1,125]},{39:[2,43],43:126,47:Tt},{16:37,17:127,18:38,74:be,80:ae,95:ne,97:se,98:de},i(pe,[2,70],{13:[1,128]}),i(pe,[2,72],{13:[1,130],68:[1,129]}),i(pe,[2,76],{13:[1,131],71:[1,132]}),{13:[1,133]},i(pe,[2,84],{78:[1,134]}),i(xt,[2,86],{79:135,21:Et,73:Wt,74:un,80:yt,81:Bt,82:Ze,83:Dt,84:kt,85:Nn}),i(Ri,[2,88]),i(Ri,[2,90]),i(Ri,[2,91]),i(Ri,[2,92]),i(Ri,[2,93]),i(Ri,[2,94]),i(Ri,[2,95]),i(Ri,[2,96]),i(Ri,[2,97]),i(Ri,[2,98]),i(pe,[2,85]),i(pe,[2,53]),{37:[2,10]},i(ht,[2,41]),{13:[1,136]},{1:[2,4]},i(qr,[2,51]),i(qr,[2,50]),{16:37,17:137,18:38,74:be,80:ae,95:ne,97:se,98:de},i(zt,[2,59]),i(pe,[2,30]),{39:[1,138]},{23:90,38:139,39:[2,34],41:22,44:v},{43:140,47:Tt},i(Se,[2,38]),{39:[2,44]},i(pe,[2,42]),i(pe,[2,71]),i(pe,[2,73]),i(pe,[2,74],{68:[1,141]}),i(pe,[2,77]),i(pe,[2,78],{13:[1,142]}),i(pe,[2,80],{13:[1,144],68:[1,143]}),{21:Et,73:Wt,74:un,77:145,79:101,80:yt,81:Bt,82:Ze,83:Dt,84:kt,85:Nn},i(Ri,[2,89]),{14:[1,146]},i(qr,[2,52]),i(pe,[2,31]),{39:[2,35]},{39:[1,147]},i(pe,[2,75]),i(pe,[2,79]),i(pe,[2,81]),i(pe,[2,82],{68:[1,148]}),i(xt,[2,87],{79:135,21:Et,73:Wt,74:un,80:yt,81:Bt,82:Ze,83:Dt,84:kt,85:Nn}),i(ht,[2,8]),i(Se,[2,39]),i(pe,[2,83])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],78:[2,32],113:[2,10],116:[2,4],126:[2,44],139:[2,35]},parseError:function(Tr,On){if(On.recoverable)this.trace(Tr);else{var Rn=new Error(Tr);throw Rn.hash=On,Rn}},parse:function(Tr){var On=this,Rn=[0],zn=[],Ct=[null],gt=[],on=this.table,dn="",Ln=0,Io=0,Oo=2,No=1,Us=gt.slice.call(arguments,1),uo=Object.create(this.lexer),Es={yy:{}};for(var Ou in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ou)&&(Es.yy[Ou]=this.yy[Ou]);uo.setInput(Tr,Es.yy),Es.yy.lexer=uo,Es.yy.parser=this,typeof uo.yylloc>"u"&&(uo.yylloc={});var _c=uo.yylloc;gt.push(_c);var Kd=uo.options&&uo.options.ranges;typeof Es.yy.parseError=="function"?this.parseError=Es.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function qp(){var ma;return ma=zn.pop()||uo.lex()||No,typeof ma!="number"&&(ma instanceof Array&&(zn=ma,ma=zn.pop()),ma=On.symbols_[ma]||ma),ma}for(var Ul,Ac,Jc,Ya,Ba={},ha,$o,Lc,Fa;;){if(Ac=Rn[Rn.length-1],this.defaultActions[Ac]?Jc=this.defaultActions[Ac]:((Ul===null||typeof Ul>"u")&&(Ul=qp()),Jc=on[Ac]&&on[Ac][Ul]),typeof Jc>"u"||!Jc.length||!Jc[0]){var Ra="";Fa=[];for(ha in on[Ac])this.terminals_[ha]&&ha>Oo&&Fa.push("'"+this.terminals_[ha]+"'");uo.showPosition?Ra="Parse error on line "+(Ln+1)+`: +`+uo.showPosition()+` +Expecting `+Fa.join(", ")+", got '"+(this.terminals_[Ul]||Ul)+"'":Ra="Parse error on line "+(Ln+1)+": Unexpected "+(Ul==No?"end of input":"'"+(this.terminals_[Ul]||Ul)+"'"),this.parseError(Ra,{text:uo.match,token:this.terminals_[Ul]||Ul,line:uo.yylineno,loc:_c,expected:Fa})}if(Jc[0]instanceof Array&&Jc.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ac+", token: "+Ul);switch(Jc[0]){case 1:Rn.push(Ul),Ct.push(uo.yytext),gt.push(uo.yylloc),Rn.push(Jc[1]),Ul=null,Io=uo.yyleng,dn=uo.yytext,Ln=uo.yylineno,_c=uo.yylloc;break;case 2:if($o=this.productions_[Jc[1]][1],Ba.$=Ct[Ct.length-$o],Ba._$={first_line:gt[gt.length-($o||1)].first_line,last_line:gt[gt.length-1].last_line,first_column:gt[gt.length-($o||1)].first_column,last_column:gt[gt.length-1].last_column},Kd&&(Ba._$.range=[gt[gt.length-($o||1)].range[0],gt[gt.length-1].range[1]]),Ya=this.performAction.apply(Ba,[dn,Io,Ln,Es.yy,Jc[1],Ct,gt].concat(Us)),typeof Ya<"u")return Ya;$o&&(Rn=Rn.slice(0,-1*$o*2),Ct=Ct.slice(0,-1*$o),gt=gt.slice(0,-1*$o)),Rn.push(this.productions_[Jc[1]][0]),Ct.push(Ba.$),gt.push(Ba._$),Lc=on[Rn[Rn.length-2]][Rn[Rn.length-1]],Rn.push(Lc);break;case 3:return!0}}return!0}},ia=function(){var mo={EOF:1,parseError:function(On,Rn){if(this.yy.parser)this.yy.parser.parseError(On,Rn);else throw new Error(On)},setInput:function(Tr,On){return this.yy=On||this.yy||{},this._input=Tr,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Tr=this._input[0];this.yytext+=Tr,this.yyleng++,this.offset++,this.match+=Tr,this.matched+=Tr;var On=Tr.match(/(?:\r\n?|\n).*/g);return On?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Tr},unput:function(Tr){var On=Tr.length,Rn=Tr.split(/(?:\r\n?|\n)/g);this._input=Tr+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-On),this.offset-=On;var zn=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),Rn.length-1&&(this.yylineno-=Rn.length-1);var Ct=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:Rn?(Rn.length===zn.length?this.yylloc.first_column:0)+zn[zn.length-Rn.length].length-Rn[0].length:this.yylloc.first_column-On},this.options.ranges&&(this.yylloc.range=[Ct[0],Ct[0]+this.yyleng-On]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Tr){this.unput(this.match.slice(Tr))},pastInput:function(){var Tr=this.matched.substr(0,this.matched.length-this.match.length);return(Tr.length>20?"...":"")+Tr.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Tr=this.match;return Tr.length<20&&(Tr+=this._input.substr(0,20-Tr.length)),(Tr.substr(0,20)+(Tr.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Tr=this.pastInput(),On=new Array(Tr.length+1).join("-");return Tr+this.upcomingInput()+` +`+On+"^"},test_match:function(Tr,On){var Rn,zn,Ct;if(this.options.backtrack_lexer&&(Ct={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&&(Ct.yylloc.range=this.yylloc.range.slice(0))),zn=Tr[0].match(/(?:\r\n?|\n).*/g),zn&&(this.yylineno+=zn.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:zn?zn[zn.length-1].length-zn[zn.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Tr[0].length},this.yytext+=Tr[0],this.match+=Tr[0],this.matches=Tr,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(Tr[0].length),this.matched+=Tr[0],Rn=this.performAction.call(this,this.yy,this,On,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Rn)return Rn;if(this._backtrack){for(var gt in Ct)this[gt]=Ct[gt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Tr,On,Rn,zn;this._more||(this.yytext="",this.match="");for(var Ct=this._currentRules(),gt=0;gtOn[0].length)){if(On=Rn,zn=gt,this.options.backtrack_lexer){if(Tr=this.test_match(Rn,Ct[gt]),Tr!==!1)return Tr;if(this._backtrack){On=!1;continue}else return!1}else if(!this.options.flex)break}return On?(Tr=this.test_match(On,Ct[zn]),Tr!==!1?Tr:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var On=this.next();return On||this.lex()},begin:function(On){this.conditionStack.push(On)},popState:function(){var On=this.conditionStack.length-1;return On>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(On){return On=this.conditionStack.length-1-Math.abs(On||0),On>=0?this.conditionStack[On]:"INITIAL"},pushState:function(On){this.begin(On)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(On,Rn,zn,Ct){switch(zn){case 0:return 53;case 1:return 54;case 2:return 55;case 3:return 56;case 4:break;case 5:break;case 6:return this.begin("acc_title"),31;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),33;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 70;case 22:this.popState();break;case 23:return 71;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 73;case 28:return this.begin("namespace"),40;case 29:return this.popState(),8;case 30:break;case 31:return this.begin("namespace-body"),37;case 32:return this.popState(),39;case 33:return"EOF_IN_STRUCT";case 34:return 8;case 35:break;case 36:return"EDGE_STATE";case 37:return this.begin("class"),44;case 38:return this.popState(),8;case 39:break;case 40:return this.popState(),this.popState(),39;case 41:return this.begin("class-body"),37;case 42:return this.popState(),39;case 43:return"EOF_IN_STRUCT";case 44:return"EDGE_STATE";case 45:return"OPEN_IN_STRUCT";case 46:break;case 47:return"MEMBER";case 48:return 76;case 49:return 66;case 50:return 67;case 51:return 69;case 52:return 50;case 53:return 52;case 54:return 45;case 55:return 46;case 56:return 72;case 57:this.popState();break;case 58:return"GENERICTYPE";case 59:this.begin("generic");break;case 60:this.popState();break;case 61:return"BQUOTE_STR";case 62:this.begin("bqstring");break;case 63:return 68;case 64:return 68;case 65:return 68;case 66:return 68;case 67:return 60;case 68:return 60;case 69:return 62;case 70:return 62;case 71:return 61;case 72:return 59;case 73:return 63;case 74:return 64;case 75:return 65;case 76:return 21;case 77:return 42;case 78:return 95;case 79:return"DOT";case 80:return"PLUS";case 81:return 81;case 82:return 78;case 83:return 84;case 84:return 84;case 85:return 85;case 86:return"EQUALS";case 87:return"EQUALS";case 88:return 74;case 89:return 12;case 90:return 14;case 91:return"PUNCTUATION";case 92:return 80;case 93:return 97;case 94:return 83;case 95:return 83;case 96:return 9}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,32,33,34,35,36,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},namespace:{rules:[26,28,29,30,31,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},"class-body":{rules:[26,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},class:{rules:[26,38,39,40,41,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr:{rules:[9,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_title:{rules:[7,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_args:{rules:[22,23,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_name:{rules:[19,20,21,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},href:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},struct:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},generic:{rules:[26,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},bqstring:{rules:[26,48,49,50,51,52,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},string:{rules:[24,25,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],inclusive:!0}}};return mo}();wi.lexer=ia;function Hs(){this.yy={}}return Hs.prototype=wi,wi.Parser=Hs,new Hs}();Vve.parser=Vve;const TKe=Vve,EKe=["#","+","~","-",""];class CKe{constructor(a,u){this.memberType=u,this.visibility="",this.classifier="";const d=bh(a,qt());this.parseMember(d)}getDisplayDetails(){let a=this.visibility+JF(this.id);this.memberType==="method"&&(a+=`(${JF(this.parameters.trim())})`,this.returnType&&(a+=" : "+JF(this.returnType))),a=a.trim();const u=this.parseClassifier();return{displayText:a,cssStyle:u}}parseMember(a){let u="";if(this.memberType==="method"){const d=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/,p=a.match(d);if(p){const v=p[1]?p[1].trim():"";if(EKe.includes(v)&&(this.visibility=v),this.id=p[2].trim(),this.parameters=p[3]?p[3].trim():"",u=p[4]?p[4].trim():"",this.returnType=p[5]?p[5].trim():"",u===""){const b=this.returnType.substring(this.returnType.length-1);b.match(/[$*]/)&&(u=b,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const d=a.length,p=a.substring(0,1),v=a.substring(d-1);EKe.includes(p)&&(this.visibility=p),v.match(/[$*]/)&&(u=v),this.id=a.substring(this.visibility===""?0:1,u===""?d:d-1)}this.classifier=u}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}const DJ="classId-";let Gve=[],xh={},IJ=[],SKe=0,$9={},Kve=0,tj=[];const nS=i=>oi.sanitizeText(i,qt()),rS=function(i){const a=oi.sanitizeText(i,qt());let u="",d=a;if(a.indexOf("~")>0){const p=a.split("~");d=nS(p[0]),u=nS(p[1])}return{className:d,type:u}},Uin=function(i,a){const u=oi.sanitizeText(i,qt());a&&(a=nS(a));const{className:d}=rS(u);xh[d].label=a},OJ=function(i){const a=oi.sanitizeText(i,qt()),{className:u,type:d}=rS(a);if(Object.hasOwn(xh,u))return;const p=oi.sanitizeText(u,qt());xh[p]={id:p,type:d,label:p,cssClasses:[],methods:[],members:[],annotations:[],styles:[],domId:DJ+p+"-"+SKe},SKe++},_Ke=function(i){const a=oi.sanitizeText(i,qt());if(a in xh)return xh[a].domId;throw new Error("Class not found: "+a)},Vin=function(){Gve=[],xh={},IJ=[],tj=[],tj.push(LKe),$9={},Kve=0,Rg()},Gin=function(i){return xh[i]},Kin=function(){return xh},Win=function(){return Gve},Yin=function(){return IJ},Xin=function(i){Xe.debug("Adding relation: "+JSON.stringify(i)),OJ(i.id1),OJ(i.id2),i.id1=rS(i.id1).className,i.id2=rS(i.id2).className,i.relationTitle1=oi.sanitizeText(i.relationTitle1.trim(),qt()),i.relationTitle2=oi.sanitizeText(i.relationTitle2.trim(),qt()),Gve.push(i)},Qin=function(i,a){const u=rS(i).className;xh[u].annotations.push(a)},AKe=function(i,a){OJ(i);const u=rS(i).className,d=xh[u];if(typeof a=="string"){const p=a.trim();p.startsWith("<<")&&p.endsWith(">>")?d.annotations.push(nS(p.substring(2,p.length-2))):p.indexOf(")")>0?d.methods.push(new CKe(p,"method")):p&&d.members.push(new CKe(p,"attribute"))}},Jin=function(i,a){Array.isArray(a)&&(a.reverse(),a.forEach(u=>AKe(i,u)))},Zin=function(i,a){const u={id:`note${IJ.length}`,class:a,text:i};IJ.push(u)},esn=function(i){return i.startsWith(":")&&(i=i.substring(1)),nS(i.trim())},Wve=function(i,a){i.split(",").forEach(function(u){let d=u;u[0].match(/\d/)&&(d=DJ+d),xh[d]!==void 0&&xh[d].cssClasses.push(a)})},tsn=function(i,a){i.split(",").forEach(function(u){a!==void 0&&(xh[u].tooltip=nS(a))})},nsn=function(i,a){return a?$9[a].classes[i].tooltip:xh[i].tooltip},rsn=function(i,a,u){const d=qt();i.split(",").forEach(function(p){let v=p;p[0].match(/\d/)&&(v=DJ+v),xh[v]!==void 0&&(xh[v].link=So.formatUrl(a,d),d.securityLevel==="sandbox"?xh[v].linkTarget="_top":typeof u=="string"?xh[v].linkTarget=nS(u):xh[v].linkTarget="_blank")}),Wve(i,"clickable")},isn=function(i,a,u){i.split(",").forEach(function(d){ssn(d,a,u),xh[d].haveCallback=!0}),Wve(i,"clickable")},ssn=function(i,a,u){const d=oi.sanitizeText(i,qt());if(qt().securityLevel!=="loose"||a===void 0)return;const v=d;if(xh[v]!==void 0){const b=_Ke(v);let y=[];if(typeof u=="string"){y=u.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let E=0;E")),p.classed("hover",!0)}).on("mouseout",function(){a.transition().duration(500).style("opacity",0),Dr(this).classed("hover",!1)})};tj.push(LKe);let MKe="TB";const NJ={setAccTitle:jg,getAccTitle:Mp,getAccDescription:Ip,setAccDescription:Dp,getConfig:()=>qt().class,addClass:OJ,bindFunctions:asn,clear:Vin,getClass:Gin,getClasses:Kin,getNotes:Yin,addAnnotation:Qin,addNote:Zin,getRelations:Win,addRelation:Xin,getDirection:()=>MKe,setDirection:i=>{MKe=i},addMember:AKe,addMembers:Jin,cleanupLabel:esn,lineType:osn,relationType:csn,setClickEvent:isn,setCssClass:Wve,setLink:rsn,getTooltip:nsn,setTooltip:tsn,lookUpDomId:_Ke,setDiagramTitle:pm,getDiagramTitle:Op,setClassLabel:Uin,addNamespace:function(i){$9[i]===void 0&&($9[i]={id:i,classes:{},children:{},domId:DJ+i+"-"+Kve},Kve++)},addClassesToNamespace:function(i,a){if($9[i]!==void 0)for(const u of a){const{className:d}=rS(u);xh[d].parent=i,$9[i].classes[d]=xh[d]}},getNamespace:function(i){return $9[i]},getNamespaces:function(){return $9},setCssStyle:function(i,a){const u=xh[i];if(!(!a||!u))for(const d of a)d.includes(",")?u.styles.push(...d.split(",")):u.styles.push(d)}},DKe=i=>`g.classGroup text { + fill: ${i.nodeBorder||i.classText}; + stroke: none; + font-family: ${i.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${i.classText}; +} +.edgeLabel .label rect { + fill: ${i.mainBkg}; +} +.label text { + fill: ${i.classText}; +} +.edgeLabel .label span { + background: ${i.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${i.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; +} + +g.classGroup line { + stroke: ${i.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${i.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${i.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${i.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${i.lineColor} !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${i.lineColor} !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${i.lineColor} !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${i.lineColor} !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${i.mainBkg} !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${i.mainBkg} !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; +} +`;let IKe=0;const usn=function(i,a,u,d,p){const v=function(oe){switch(oe){case p.db.relationType.AGGREGATION:return"aggregation";case p.db.relationType.EXTENSION:return"extension";case p.db.relationType.COMPOSITION:return"composition";case p.db.relationType.DEPENDENCY:return"dependency";case p.db.relationType.LOLLIPOP:return"lollipop"}};a.points=a.points.filter(oe=>!Number.isNaN(oe.y));const b=a.points,y=E7().x(function(oe){return oe.x}).y(function(oe){return oe.y}).curve(VF),E=i.append("path").attr("d",y(b)).attr("id","edge"+IKe).attr("class","relation");let _="";d.arrowMarkerAbsolute&&(_=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,_=_.replace(/\(/g,"\\("),_=_.replace(/\)/g,"\\)")),u.relation.lineType==1&&E.attr("class","relation dashed-line"),u.relation.lineType==10&&E.attr("class","relation dotted-line"),u.relation.type1!=="none"&&E.attr("marker-start","url("+_+"#"+v(u.relation.type1)+"Start)"),u.relation.type2!=="none"&&E.attr("marker-end","url("+_+"#"+v(u.relation.type2)+"End)");let A,P;const R=a.points.length;let B=So.calcLabelPosition(a.points);A=B.x,P=B.y;let j,W,ee,ie;if(R%2!==0&&R>1){let oe=So.calcCardinalityPosition(u.relation.type1!=="none",a.points,a.points[0]),be=So.calcCardinalityPosition(u.relation.type2!=="none",a.points,a.points[R-1]);Xe.debug("cardinality_1_point "+JSON.stringify(oe)),Xe.debug("cardinality_2_point "+JSON.stringify(be)),j=oe.x,W=oe.y,ee=be.x,ie=be.y}if(u.title!==void 0){const oe=i.append("g").attr("class","classLabel"),be=oe.append("text").attr("class","label").attr("x",A).attr("y",P).attr("fill","red").attr("text-anchor","middle").text(u.title);window.label=be;const ge=be.node().getBBox();oe.insert("rect",":first-child").attr("class","box").attr("x",ge.x-d.padding/2).attr("y",ge.y-d.padding/2).attr("width",ge.width+d.padding).attr("height",ge.height+d.padding)}Xe.info("Rendering relation "+JSON.stringify(u)),u.relationTitle1!==void 0&&u.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",j).attr("y",W).attr("fill","black").attr("font-size","6").text(u.relationTitle1),u.relationTitle2!==void 0&&u.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",ee).attr("y",ie).attr("fill","black").attr("font-size","6").text(u.relationTitle2),IKe++},lsn=function(i,a,u,d){Xe.debug("Rendering class ",a,u);const p=a.id,v={id:p,label:a.id,width:0,height:0},b=i.append("g").attr("id",d.db.lookUpDomId(p)).attr("class","classGroup");let y;a.link?y=b.append("svg:a").attr("xlink:href",a.link).attr("target",a.linkTarget).append("text").attr("y",u.textHeight+u.padding).attr("x",0):y=b.append("text").attr("y",u.textHeight+u.padding).attr("x",0);let E=!0;a.annotations.forEach(function(be){const ge=y.append("tspan").text("«"+be+"»");E||ge.attr("dy",u.textHeight),E=!1});let _=OKe(a);const A=y.append("tspan").text(_).attr("class","title");E||A.attr("dy",u.textHeight);const P=y.node().getBBox().height;let R,B,j;if(a.members.length>0){R=b.append("line").attr("x1",0).attr("y1",u.padding+P+u.dividerMargin/2).attr("y2",u.padding+P+u.dividerMargin/2);const be=b.append("text").attr("x",u.padding).attr("y",P+u.dividerMargin+u.textHeight).attr("fill","white").attr("class","classText");E=!0,a.members.forEach(function(ge){NKe(be,ge,E,u),E=!1}),B=be.node().getBBox()}if(a.methods.length>0){j=b.append("line").attr("x1",0).attr("y1",u.padding+P+u.dividerMargin+B.height).attr("y2",u.padding+P+u.dividerMargin+B.height);const be=b.append("text").attr("x",u.padding).attr("y",P+2*u.dividerMargin+B.height+u.textHeight).attr("fill","white").attr("class","classText");E=!0,a.methods.forEach(function(ge){NKe(be,ge,E,u),E=!1})}const W=b.node().getBBox();var ee=" ";a.cssClasses.length>0&&(ee=ee+a.cssClasses.join(" "));const oe=b.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",W.width+2*u.padding).attr("height",W.height+u.padding+.5*u.dividerMargin).attr("class",ee).node().getBBox().width;return y.node().childNodes.forEach(function(be){be.setAttribute("x",(oe-be.getBBox().width)/2)}),a.tooltip&&y.insert("title").text(a.tooltip),R&&R.attr("x2",oe),j&&j.attr("x2",oe),v.width=oe,v.height=W.height+u.padding+.5*u.dividerMargin,v},OKe=function(i){let a=i.id;return i.type&&(a+="<"+JF(i.type)+">"),a},hsn=function(i,a,u,d){Xe.debug("Rendering note ",a,u);const p=a.id,v={id:p,text:a.text,width:0,height:0},b=i.append("g").attr("id",p).attr("class","classGroup");let y=b.append("text").attr("y",u.textHeight+u.padding).attr("x",0);const E=JSON.parse(`"${a.text}"`).split(` +`);E.forEach(function(R){Xe.debug(`Adding line: ${R}`),y.append("tspan").text(R).attr("class","title").attr("dy",u.textHeight)});const _=b.node().getBBox(),P=b.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",_.width+2*u.padding).attr("height",_.height+E.length*u.textHeight+u.padding+.5*u.dividerMargin).node().getBBox().width;return y.node().childNodes.forEach(function(R){R.setAttribute("x",(P-R.getBBox().width)/2)}),v.width=P,v.height=_.height+E.length*u.textHeight+u.padding+.5*u.dividerMargin,v},NKe=function(i,a,u,d){const{displayText:p,cssStyle:v}=a.getDisplayDetails(),b=i.append("tspan").attr("x",d.padding).text(p);v!==""&&b.attr("style",a.cssStyle),u||b.attr("dy",d.textHeight)},Yve={getClassTitleString:OKe,drawClass:lsn,drawEdge:usn,drawNote:hsn};let PJ={};const BJ=20,nj=function(i){const a=Object.entries(PJ).find(u=>u[1].label===i);if(a)return a[0]},fsn=function(i){i.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),i.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},dsn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:TKe,db:NJ,renderer:{draw:function(i,a,u,d){const p=qt().class;PJ={},Xe.info("Rendering diagram "+i);const v=qt().securityLevel;let b;v==="sandbox"&&(b=Dr("#i"+a));const y=Dr(v==="sandbox"?b.nodes()[0].contentDocument.body:"body"),E=y.select(`[id='${a}']`);fsn(E);const _=new R0({multigraph:!0});_.setGraph({isMultiGraph:!0}),_.setDefaultEdgeLabel(function(){return{}});const A=d.db.getClasses(),P=Object.keys(A);for(const oe of P){const be=A[oe],ge=Yve.drawClass(E,be,p,d);PJ[ge.id]=ge,_.setNode(ge.id,ge),Xe.info("Org height: "+ge.height)}d.db.getRelations().forEach(function(oe){Xe.info("tjoho"+nj(oe.id1)+nj(oe.id2)+JSON.stringify(oe)),_.setEdge(nj(oe.id1),nj(oe.id2),{relation:oe},oe.title||"DEFAULT")}),d.db.getNotes().forEach(function(oe){Xe.debug(`Adding note: ${JSON.stringify(oe)}`);const be=Yve.drawNote(E,oe,p,d);PJ[be.id]=be,_.setNode(be.id,be),oe.class&&oe.class in A&&_.setEdge(oe.id,nj(oe.class),{relation:{id1:oe.id,id2:oe.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),XD(_),_.nodes().forEach(function(oe){oe!==void 0&&_.node(oe)!==void 0&&(Xe.debug("Node "+oe+": "+JSON.stringify(_.node(oe))),y.select("#"+(d.db.lookUpDomId(oe)||oe)).attr("transform","translate("+(_.node(oe).x-_.node(oe).width/2)+","+(_.node(oe).y-_.node(oe).height/2)+" )"))}),_.edges().forEach(function(oe){oe!==void 0&&_.edge(oe)!==void 0&&(Xe.debug("Edge "+oe.v+" -> "+oe.w+": "+JSON.stringify(_.edge(oe))),Yve.drawEdge(E,_.edge(oe),_.edge(oe).relation,p,d))});const j=E.node().getBBox(),W=j.width+BJ*2,ee=j.height+BJ*2;Fg(E,ee,W,p.useMaxWidth);const ie=`${j.x-BJ} ${j.y-BJ} ${W} ${ee}`;Xe.debug(`viewBox ${ie}`),E.attr("viewBox",ie)}},styles:DKe,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,NJ.clear()}}},Symbol.toStringTag,{value:"Module"})),Xve=i=>oi.sanitizeText(i,qt());let Qve={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const gsn=function(i,a,u,d){const p=Object.keys(i);Xe.info("keys:",p),Xe.info(i),p.forEach(function(v){var _,A;const b=i[v],E={shape:"rect",id:b.id,domId:b.domId,labelText:Xve(b.id),labelStyle:"",style:"fill: none; stroke: black",padding:((_=qt().flowchart)==null?void 0:_.padding)??((A=qt().class)==null?void 0:A.padding)};a.setNode(b.id,E),PKe(b.classes,a,u,d,b.id),Xe.info("setNode",E)})},PKe=function(i,a,u,d,p){const v=Object.keys(i);Xe.info("keys:",v),Xe.info(i),v.filter(b=>i[b].parent==p).forEach(function(b){var j,W;const y=i[b],E=y.cssClasses.join(" "),_=gm(y.styles),A=y.label??y.id,P=0,R="class_box",B={labelStyle:_.labelStyle,shape:R,labelText:Xve(A),classData:y,rx:P,ry:P,class:E,style:_.style,id:y.id,domId:y.domId,tooltip:d.db.getTooltip(y.id,p)||"",haveCallback:y.haveCallback,link:y.link,width:y.type==="group"?500:void 0,type:y.type,padding:((j=qt().flowchart)==null?void 0:j.padding)??((W=qt().class)==null?void 0:W.padding)};a.setNode(y.id,B),p&&a.setParent(y.id,p),Xe.info("setNode",B)})},psn=function(i,a,u,d){Xe.info(i),i.forEach(function(p,v){var W,ee;const b=p,y="",E={labelStyle:"",style:""},_=b.text,A=0,P="note",R={labelStyle:E.labelStyle,shape:P,labelText:Xve(_),noteData:b,rx:A,ry:A,class:y,style:E.style,id:b.id,domId:b.id,tooltip:"",type:"note",padding:((W=qt().flowchart)==null?void 0:W.padding)??((ee=qt().class)==null?void 0:ee.padding)};if(a.setNode(b.id,R),Xe.info("setNode",R),!b.class||!(b.class in d))return;const B=u+v,j={id:`edgeNote${B}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:qv(Qve.curve,Sp)};a.setEdge(b.id,b.class,j,B)})},bsn=function(i,a){const u=qt().flowchart;let d=0;i.forEach(function(p){var b;d++;const v={classes:"relation",pattern:p.relation.lineType==1?"dashed":"solid",id:`id_${p.id1}_${p.id2}_${d}`,arrowhead:p.type==="arrow_open"?"none":"normal",startLabelRight:p.relationTitle1==="none"?"":p.relationTitle1,endLabelLeft:p.relationTitle2==="none"?"":p.relationTitle2,arrowTypeStart:BKe(p.relation.type1),arrowTypeEnd:BKe(p.relation.type2),style:"fill:none",labelStyle:"",curve:qv(u==null?void 0:u.curve,Sp)};if(Xe.info(v,p),p.style!==void 0){const y=gm(p.style);v.style=y.style,v.labelStyle=y.labelStyle}p.text=p.title,p.text===void 0?p.style!==void 0&&(v.arrowheadStyle="fill: #333"):(v.arrowheadStyle="fill: #333",v.labelpos="c",((b=qt().flowchart)==null?void 0:b.htmlLabels)??qt().htmlLabels?(v.labelType="html",v.label=''+p.text+""):(v.labelType="text",v.label=p.text.replace(oi.lineBreakRegex,` +`),p.style===void 0&&(v.style=v.style||"stroke: #333; stroke-width: 1.5px;fill:none"),v.labelStyle=v.labelStyle.replace("color:","fill:"))),a.setEdge(p.id1,p.id2,v,d)})},msn=function(i){Qve={...Qve,...i}},vsn=async function(i,a,u,d){Xe.info("Drawing class - ",a);const p=qt().flowchart??qt().class,v=qt().securityLevel;Xe.info("config:",p);const b=(p==null?void 0:p.nodeSpacing)??50,y=(p==null?void 0:p.rankSpacing)??50,E=new R0({multigraph:!0,compound:!0}).setGraph({rankdir:d.db.getDirection(),nodesep:b,ranksep:y,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),_=d.db.getNamespaces(),A=d.db.getClasses(),P=d.db.getRelations(),R=d.db.getNotes();Xe.info(P),gsn(_,E,a,d),PKe(A,E,a,d),bsn(P,E),psn(R,E,P.length+1,A);let B;v==="sandbox"&&(B=Dr("#i"+a));const j=Dr(v==="sandbox"?B.nodes()[0].contentDocument.body:"body"),W=j.select(`[id="${a}"]`),ee=j.select("#"+a+" g");if(await ave(ee,E,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",a),So.insertTitle(W,"classTitleText",(p==null?void 0:p.titleTopMargin)??5,d.db.getDiagramTitle()),x9(E,W,p==null?void 0:p.diagramPadding,p==null?void 0:p.useMaxWidth),!(p!=null&&p.htmlLabels)){const ie=v==="sandbox"?B.nodes()[0].contentDocument:document,oe=ie.querySelectorAll('[id="'+a+'"] .edgeLabel .label');for(const be of oe){const ge=be.getBBox(),ae=ie.createElementNS("http://www.w3.org/2000/svg","rect");ae.setAttribute("rx",0),ae.setAttribute("ry",0),ae.setAttribute("width",ge.width),ae.setAttribute("height",ge.height),be.insertBefore(ae,be.firstChild)}}};function BKe(i){let a;switch(i){case 0:a="aggregation";break;case 1:a="extension";break;case 2:a="composition";break;case 3:a="dependency";break;case 4:a="lollipop";break;default:a="none"}return a}const wsn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:TKe,db:NJ,renderer:{setConf:msn,draw:vsn},styles:DKe,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,NJ.clear()}}},Symbol.toStringTag,{value:"Module"}));var Jve=function(){var i=function(Ie,Se,Ce,ke){for(Ce=Ce||{},ke=Ie.length;ke--;Ce[Ie[ke]]=Se);return Ce},a=[1,2],u=[1,3],d=[1,4],p=[2,4],v=[1,9],b=[1,11],y=[1,15],E=[1,16],_=[1,17],A=[1,18],P=[1,30],R=[1,19],B=[1,20],j=[1,21],W=[1,22],ee=[1,23],ie=[1,25],oe=[1,26],be=[1,27],ge=[1,28],ae=[1,29],ne=[1,32],se=[1,33],de=[1,34],X=[1,35],pe=[1,31],G=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],xe=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],U=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],Be={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"-->":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",13:"DESCR",14:"-->",15:"HIDE_EMPTY",16:"scale",17:"WIDTH",18:"COMPOSIT_STATE",19:"STRUCT_START",20:"STRUCT_STOP",21:"STATE_DESCR",22:"AS",23:"ID",24:"FORK",25:"JOIN",26:"CHOICE",27:"CONCURRENT",28:"note",30:"NOTE_TEXT",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"classDef",38:"CLASSDEF_ID",39:"CLASSDEF_STYLEOPTS",40:"DEFAULT",41:"class",42:"CLASSENTITY_IDS",43:"STYLECLASS",44:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(Se,Ce,ke,Ke,zt,Ne,pn){var Tt=Ne.length-1;switch(zt){case 3:return Ke.setRootDoc(Ne[Tt]),Ne[Tt];case 4:this.$=[];break;case 5:Ne[Tt]!="nl"&&(Ne[Tt-1].push(Ne[Tt]),this.$=Ne[Tt-1]);break;case 6:case 7:this.$=Ne[Tt];break;case 8:this.$="nl";break;case 11:this.$=Ne[Tt];break;case 12:const yt=Ne[Tt-1];yt.description=Ke.trimColon(Ne[Tt]),this.$=yt;break;case 13:this.$={stmt:"relation",state1:Ne[Tt-2],state2:Ne[Tt]};break;case 14:const Bt=Ke.trimColon(Ne[Tt]);this.$={stmt:"relation",state1:Ne[Tt-3],state2:Ne[Tt-1],description:Bt};break;case 18:this.$={stmt:"state",id:Ne[Tt-3],type:"default",description:"",doc:Ne[Tt-1]};break;case 19:var Et=Ne[Tt],Wt=Ne[Tt-2].trim();if(Ne[Tt].match(":")){var un=Ne[Tt].split(":");Et=un[0],Wt=[Wt,un[1]]}this.$={stmt:"state",id:Et,type:"default",description:Wt};break;case 20:this.$={stmt:"state",id:Ne[Tt-3],type:"default",description:Ne[Tt-5],doc:Ne[Tt-1]};break;case 21:this.$={stmt:"state",id:Ne[Tt],type:"fork"};break;case 22:this.$={stmt:"state",id:Ne[Tt],type:"join"};break;case 23:this.$={stmt:"state",id:Ne[Tt],type:"choice"};break;case 24:this.$={stmt:"state",id:Ke.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:Ne[Tt-1].trim(),note:{position:Ne[Tt-2].trim(),text:Ne[Tt].trim()}};break;case 28:this.$=Ne[Tt].trim(),Ke.setAccTitle(this.$);break;case 29:case 30:this.$=Ne[Tt].trim(),Ke.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:Ne[Tt-1].trim(),classes:Ne[Tt].trim()};break;case 33:this.$={stmt:"applyClass",id:Ne[Tt-1].trim(),styleClass:Ne[Tt].trim()};break;case 34:Ke.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:Ke.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:Ke.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:Ke.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:Ne[Tt].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:Ne[Tt-2].trim(),classes:[Ne[Tt].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:Ne[Tt-2].trim(),classes:[Ne[Tt].trim()],type:"default",description:""};break}},table:[{3:1,4:a,5:u,6:d},{1:[3]},{3:5,4:a,5:u,6:d},{3:6,4:a,5:u,6:d},i([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],p,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:v,5:b,8:8,9:10,10:12,11:13,12:14,15:y,16:E,18:_,21:A,23:P,24:R,25:B,26:j,27:W,28:ee,31:24,32:ie,34:oe,36:be,37:ge,41:ae,44:ne,45:se,46:de,47:X,50:pe},i(G,[2,5]),{9:36,10:12,11:13,12:14,15:y,16:E,18:_,21:A,23:P,24:R,25:B,26:j,27:W,28:ee,31:24,32:ie,34:oe,36:be,37:ge,41:ae,44:ne,45:se,46:de,47:X,50:pe},i(G,[2,7]),i(G,[2,8]),i(G,[2,9]),i(G,[2,10]),i(G,[2,11],{13:[1,37],14:[1,38]}),i(G,[2,15]),{17:[1,39]},i(G,[2,17],{19:[1,40]}),{22:[1,41]},i(G,[2,21]),i(G,[2,22]),i(G,[2,23]),i(G,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},i(G,[2,27]),{33:[1,46]},{35:[1,47]},i(G,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},i(xe,[2,40],{51:[1,51]}),i(xe,[2,41],{51:[1,52]}),i(G,[2,34]),i(G,[2,35]),i(G,[2,36]),i(G,[2,37]),i(G,[2,6]),i(G,[2,12]),{12:53,23:P,50:pe},i(G,[2,16]),i(U,p,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},i(G,[2,28]),i(G,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},i(G,[2,13],{13:[1,63]}),{4:v,5:b,8:8,9:10,10:12,11:13,12:14,15:y,16:E,18:_,20:[1,64],21:A,23:P,24:R,25:B,26:j,27:W,28:ee,31:24,32:ie,34:oe,36:be,37:ge,41:ae,44:ne,45:se,46:de,47:X,50:pe},i(G,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},i(G,[2,31]),i(G,[2,32]),i(G,[2,33]),i(xe,[2,42]),i(xe,[2,43]),i(G,[2,14]),i(G,[2,18]),i(U,p,{7:68}),i(G,[2,25]),i(G,[2,26]),{4:v,5:b,8:8,9:10,10:12,11:13,12:14,15:y,16:E,18:_,20:[1,69],21:A,23:P,24:R,25:B,26:j,27:W,28:ee,31:24,32:ie,34:oe,36:be,37:ge,41:ae,44:ne,45:se,46:de,47:X,50:pe},i(G,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(Se,Ce){if(Ce.recoverable)this.trace(Se);else{var ke=new Error(Se);throw ke.hash=Ce,ke}},parse:function(Se){var Ce=this,ke=[0],Ke=[],zt=[null],Ne=[],pn=this.table,Tt="",Et=0,Wt=0,un=2,yt=1,Bt=Ne.slice.call(arguments,1),Ze=Object.create(this.lexer),Dt={yy:{}};for(var kt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,kt)&&(Dt.yy[kt]=this.yy[kt]);Ze.setInput(Se,Dt.yy),Dt.yy.lexer=Ze,Dt.yy.parser=this,typeof Ze.yylloc>"u"&&(Ze.yylloc={});var Nn=Ze.yylloc;Ne.push(Nn);var ht=Ze.options&&Ze.options.ranges;typeof Dt.yy.parseError=="function"?this.parseError=Dt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function qr(){var Ct;return Ct=Ke.pop()||Ze.lex()||yt,typeof Ct!="number"&&(Ct instanceof Array&&(Ke=Ct,Ct=Ke.pop()),Ct=Ce.symbols_[Ct]||Ct),Ct}for(var xt,Ri,wi,ia,Hs={},mo,Tr,On,Rn;;){if(Ri=ke[ke.length-1],this.defaultActions[Ri]?wi=this.defaultActions[Ri]:((xt===null||typeof xt>"u")&&(xt=qr()),wi=pn[Ri]&&pn[Ri][xt]),typeof wi>"u"||!wi.length||!wi[0]){var zn="";Rn=[];for(mo in pn[Ri])this.terminals_[mo]&&mo>un&&Rn.push("'"+this.terminals_[mo]+"'");Ze.showPosition?zn="Parse error on line "+(Et+1)+`: +`+Ze.showPosition()+` +Expecting `+Rn.join(", ")+", got '"+(this.terminals_[xt]||xt)+"'":zn="Parse error on line "+(Et+1)+": Unexpected "+(xt==yt?"end of input":"'"+(this.terminals_[xt]||xt)+"'"),this.parseError(zn,{text:Ze.match,token:this.terminals_[xt]||xt,line:Ze.yylineno,loc:Nn,expected:Rn})}if(wi[0]instanceof Array&&wi.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ri+", token: "+xt);switch(wi[0]){case 1:ke.push(xt),zt.push(Ze.yytext),Ne.push(Ze.yylloc),ke.push(wi[1]),xt=null,Wt=Ze.yyleng,Tt=Ze.yytext,Et=Ze.yylineno,Nn=Ze.yylloc;break;case 2:if(Tr=this.productions_[wi[1]][1],Hs.$=zt[zt.length-Tr],Hs._$={first_line:Ne[Ne.length-(Tr||1)].first_line,last_line:Ne[Ne.length-1].last_line,first_column:Ne[Ne.length-(Tr||1)].first_column,last_column:Ne[Ne.length-1].last_column},ht&&(Hs._$.range=[Ne[Ne.length-(Tr||1)].range[0],Ne[Ne.length-1].range[1]]),ia=this.performAction.apply(Hs,[Tt,Wt,Et,Dt.yy,wi[1],zt,Ne].concat(Bt)),typeof ia<"u")return ia;Tr&&(ke=ke.slice(0,-1*Tr*2),zt=zt.slice(0,-1*Tr),Ne=Ne.slice(0,-1*Tr)),ke.push(this.productions_[wi[1]][0]),zt.push(Hs.$),Ne.push(Hs._$),On=pn[ke[ke.length-2]][ke[ke.length-1]],ke.push(On);break;case 3:return!0}}return!0}},Pe=function(){var Ie={EOF:1,parseError:function(Ce,ke){if(this.yy.parser)this.yy.parser.parseError(Ce,ke);else throw new Error(Ce)},setInput:function(Se,Ce){return this.yy=Ce||this.yy||{},this._input=Se,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Se=this._input[0];this.yytext+=Se,this.yyleng++,this.offset++,this.match+=Se,this.matched+=Se;var Ce=Se.match(/(?:\r\n?|\n).*/g);return Ce?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Se},unput:function(Se){var Ce=Se.length,ke=Se.split(/(?:\r\n?|\n)/g);this._input=Se+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ce),this.offset-=Ce;var Ke=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ke.length-1&&(this.yylineno-=ke.length-1);var zt=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:ke?(ke.length===Ke.length?this.yylloc.first_column:0)+Ke[Ke.length-ke.length].length-ke[0].length:this.yylloc.first_column-Ce},this.options.ranges&&(this.yylloc.range=[zt[0],zt[0]+this.yyleng-Ce]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Se){this.unput(this.match.slice(Se))},pastInput:function(){var Se=this.matched.substr(0,this.matched.length-this.match.length);return(Se.length>20?"...":"")+Se.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Se=this.match;return Se.length<20&&(Se+=this._input.substr(0,20-Se.length)),(Se.substr(0,20)+(Se.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Se=this.pastInput(),Ce=new Array(Se.length+1).join("-");return Se+this.upcomingInput()+` +`+Ce+"^"},test_match:function(Se,Ce){var ke,Ke,zt;if(this.options.backtrack_lexer&&(zt={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&&(zt.yylloc.range=this.yylloc.range.slice(0))),Ke=Se[0].match(/(?:\r\n?|\n).*/g),Ke&&(this.yylineno+=Ke.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ke?Ke[Ke.length-1].length-Ke[Ke.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Se[0].length},this.yytext+=Se[0],this.match+=Se[0],this.matches=Se,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(Se[0].length),this.matched+=Se[0],ke=this.performAction.call(this,this.yy,this,Ce,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ke)return ke;if(this._backtrack){for(var Ne in zt)this[Ne]=zt[Ne];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Se,Ce,ke,Ke;this._more||(this.yytext="",this.match="");for(var zt=this._currentRules(),Ne=0;NeCe[0].length)){if(Ce=ke,Ke=Ne,this.options.backtrack_lexer){if(Se=this.test_match(ke,zt[Ne]),Se!==!1)return Se;if(this._backtrack){Ce=!1;continue}else return!1}else if(!this.options.flex)break}return Ce?(Se=this.test_match(Ce,zt[Ke]),Se!==!1?Se:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ce=this.next();return Ce||this.lex()},begin:function(Ce){this.conditionStack.push(Ce)},popState:function(){var Ce=this.conditionStack.length-1;return Ce>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ce){return Ce=this.conditionStack.length-1-Math.abs(Ce||0),Ce>=0?this.conditionStack[Ce]:"INITIAL"},pushState:function(Ce){this.begin(Ce)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ce,ke,Ke,zt){switch(Ke){case 0:return 40;case 1:return 44;case 2:return 45;case 3:return 46;case 4:return 47;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),16;case 13:return 17;case 14:this.popState();break;case 15:return this.begin("acc_title"),32;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),34;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),37;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),38;case 25:return this.popState(),39;case 26:return this.pushState("CLASS"),41;case 27:return this.popState(),this.pushState("CLASS_STYLE"),42;case 28:return this.popState(),43;case 29:return this.pushState("SCALE"),16;case 30:return 17;case 31:this.popState();break;case 32:this.pushState("STATE");break;case 33:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),24;case 34:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),25;case 35:return this.popState(),ke.yytext=ke.yytext.slice(0,-10).trim(),26;case 36:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),24;case 37:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),25;case 38:return this.popState(),ke.yytext=ke.yytext.slice(0,-10).trim(),26;case 39:return 44;case 40:return 45;case 41:return 46;case 42:return 47;case 43:this.pushState("STATE_STRING");break;case 44:return this.pushState("STATE_ID"),"AS";case 45:return this.popState(),"ID";case 46:this.popState();break;case 47:return"STATE_DESCR";case 48:return 18;case 49:this.popState();break;case 50:return this.popState(),this.pushState("struct"),19;case 51:break;case 52:return this.popState(),20;case 53:break;case 54:return this.begin("NOTE"),28;case 55:return this.popState(),this.pushState("NOTE_ID"),52;case 56:return this.popState(),this.pushState("NOTE_ID"),53;case 57:this.popState(),this.pushState("FLOATING_NOTE");break;case 58:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 59:break;case 60:return"NOTE_TEXT";case 61:return this.popState(),"ID";case 62:return this.popState(),this.pushState("NOTE_TEXT"),23;case 63:return this.popState(),ke.yytext=ke.yytext.substr(2).trim(),30;case 64:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),30;case 65:return 6;case 66:return 6;case 67:return 15;case 68:return 50;case 69:return 23;case 70:return ke.yytext=ke.yytext.trim(),13;case 71:return 14;case 72:return 27;case 73:return 51;case 74:return 5;case 75:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,32,39,40,41,42,51,52,53,54,68,69,70,71,72],inclusive:!1},FLOATING_NOTE_ID:{rules:[61],inclusive:!1},FLOATING_NOTE:{rules:[58,59,60],inclusive:!1},NOTE_TEXT:{rules:[63,64],inclusive:!1},NOTE_ID:{rules:[62],inclusive:!1},NOTE:{rules:[55,56,57],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,30,31],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[45],inclusive:!1},STATE_STRING:{rules:[46,47],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,33,34,35,36,37,38,43,44,48,49,50],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,50,54,65,66,67,68,69,70,71,73,74,75],inclusive:!0}}};return Ie}();Be.lexer=Pe;function je(){this.yy={}}return je.prototype=Be,Be.Parser=je,new je}();Jve.parser=Jve;const FKe=Jve,ysn="LR",xsn="TB",FJ="state",Zve="relation",ksn="classDef",Tsn="applyClass",rj="default",RKe="divider",ewe="[*]",jKe="start",$Ke=ewe,zKe="end",qKe="color",HKe="fill",Esn="bgFill",Csn=",";function UKe(){return{}}let VKe=ysn,RJ=[],ij=UKe();const GKe=()=>({relations:[],states:{},documents:{}});let jJ={root:GKe()},Hg=jJ.root,sj=0,KKe=0;const Ssn={LINE:0,DOTTED_LINE:1},_sn={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},$J=i=>JSON.parse(JSON.stringify(i)),Asn=i=>{Xe.info("Setting root doc",i),RJ=i},Lsn=()=>RJ,zJ=(i,a,u)=>{if(a.stmt===Zve)zJ(i,a.state1,!0),zJ(i,a.state2,!1);else if(a.stmt===FJ&&(a.id==="[*]"?(a.id=u?i.id+"_start":i.id+"_end",a.start=u):a.id=a.id.trim()),a.doc){const d=[];let p=[],v;for(v=0;v0&&p.length>0){const b={stmt:FJ,id:jje(),type:"divider",doc:$J(p)};d.push($J(b)),a.doc=d}a.doc.forEach(b=>zJ(a,b,!0))}},Msn=()=>(zJ({id:"root"},{id:"root",doc:RJ},!0),{id:"root",doc:RJ}),Dsn=i=>{let a;i.doc?a=i.doc:a=i,Xe.info(a),WKe(!0),Xe.info("Extract",a),a.forEach(u=>{switch(u.stmt){case FJ:iS(u.id.trim(),u.type,u.doc,u.description,u.note,u.classes,u.styles,u.textStyles);break;case Zve:YKe(u.state1,u.state2,u.description);break;case ksn:XKe(u.id.trim(),u.classes);break;case Tsn:iwe(u.id.trim(),u.styleClass);break}})},iS=function(i,a=rj,u=null,d=null,p=null,v=null,b=null,y=null){const E=i==null?void 0:i.trim();Hg.states[E]===void 0?(Xe.info("Adding state ",E,d),Hg.states[E]={id:E,descriptions:[],type:a,doc:u,note:p,classes:[],styles:[],textStyles:[]}):(Hg.states[E].doc||(Hg.states[E].doc=u),Hg.states[E].type||(Hg.states[E].type=a)),d&&(Xe.info("Setting state description",E,d),typeof d=="string"&&rwe(E,d.trim()),typeof d=="object"&&d.forEach(_=>rwe(E,_.trim()))),p&&(Hg.states[E].note=p,Hg.states[E].note.text=oi.sanitizeText(Hg.states[E].note.text,qt())),v&&(Xe.info("Setting state classes",E,v),(typeof v=="string"?[v]:v).forEach(A=>iwe(E,A.trim()))),b&&(Xe.info("Setting state styles",E,b),(typeof b=="string"?[b]:b).forEach(A=>zsn(E,A.trim()))),y&&(Xe.info("Setting state styles",E,b),(typeof y=="string"?[y]:y).forEach(A=>qsn(E,A.trim())))},WKe=function(i){jJ={root:GKe()},Hg=jJ.root,sj=0,ij=UKe(),i||Rg()},aj=function(i){return Hg.states[i]},Isn=function(){return Hg.states},Osn=function(){Xe.info("Documents = ",jJ)},Nsn=function(){return Hg.relations};function twe(i=""){let a=i;return i===ewe&&(sj++,a=`${jKe}${sj}`),a}function nwe(i="",a=rj){return i===ewe?jKe:a}function Psn(i=""){let a=i;return i===$Ke&&(sj++,a=`${zKe}${sj}`),a}function Bsn(i="",a=rj){return i===$Ke?zKe:a}function Fsn(i,a,u){let d=twe(i.id.trim()),p=nwe(i.id.trim(),i.type),v=twe(a.id.trim()),b=nwe(a.id.trim(),a.type);iS(d,p,i.doc,i.description,i.note,i.classes,i.styles,i.textStyles),iS(v,b,a.doc,a.description,a.note,a.classes,a.styles,a.textStyles),Hg.relations.push({id1:d,id2:v,relationTitle:oi.sanitizeText(u,qt())})}const YKe=function(i,a,u){if(typeof i=="object")Fsn(i,a,u);else{const d=twe(i.trim()),p=nwe(i),v=Psn(a.trim()),b=Bsn(a);iS(d,p),iS(v,b),Hg.relations.push({id1:d,id2:v,title:oi.sanitizeText(u,qt())})}},rwe=function(i,a){const u=Hg.states[i],d=a.startsWith(":")?a.replace(":","").trim():a;u.descriptions.push(oi.sanitizeText(d,qt()))},Rsn=function(i){return i.substring(0,1)===":"?i.substr(2).trim():i.trim()},jsn=()=>(KKe++,"divider-id-"+KKe),XKe=function(i,a=""){ij[i]===void 0&&(ij[i]={id:i,styles:[],textStyles:[]});const u=ij[i];a!=null&&a.split(Csn).forEach(d=>{const p=d.replace(/([^;]*);/,"$1").trim();if(d.match(qKe)){const b=p.replace(HKe,Esn).replace(qKe,HKe);u.textStyles.push(b)}u.styles.push(p)})},$sn=function(){return ij},iwe=function(i,a){i.split(",").forEach(function(u){let d=aj(u);if(d===void 0){const p=u.trim();iS(p),d=aj(p)}d.classes.push(a)})},zsn=function(i,a){const u=aj(i);u!==void 0&&u.textStyles.push(a)},qsn=function(i,a){const u=aj(i);u!==void 0&&u.textStyles.push(a)},K7={getConfig:()=>qt().state,addState:iS,clear:WKe,getState:aj,getStates:Isn,getRelations:Nsn,getClasses:$sn,getDirection:()=>VKe,addRelation:YKe,getDividerId:jsn,setDirection:i=>{VKe=i},cleanupLabel:Rsn,lineType:Ssn,relationType:_sn,logDocuments:Osn,getRootDoc:Lsn,setRootDoc:Asn,getRootDocV2:Msn,extract:Dsn,trimColon:i=>i&&i[0]===":"?i.substr(1).trim():i.trim(),getAccTitle:Mp,setAccTitle:jg,getAccDescription:Ip,setAccDescription:Dp,addStyleClass:XKe,setCssClass:iwe,addDescription:rwe,setDiagramTitle:pm,getDiagramTitle:Op},QKe=i=>` +defs #statediagram-barbEnd { + fill: ${i.transitionColor}; + stroke: ${i.transitionColor}; + } +g.stateGroup text { + fill: ${i.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${i.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${i.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; +} + +g.stateGroup line { + stroke: ${i.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${i.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${i.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${i.noteBorderColor}; + fill: ${i.noteBkgColor}; + + text { + fill: ${i.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${i.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${i.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel .label text { + fill: ${i.transitionLabelColor||i.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${i.transitionLabelColor||i.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${i.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${i.specialStateColor}; + stroke: ${i.specialStateColor}; +} + +.node .fork-join { + fill: ${i.specialStateColor}; + stroke: ${i.specialStateColor}; +} + +.node circle.state-end { + fill: ${i.innerEndBackground}; + stroke: ${i.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${i.compositeBackground||i.background}; + // stroke: ${i.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${i.stateBkg||i.mainBkg}; + stroke: ${i.stateBorder||i.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${i.mainBkg}; + stroke: ${i.stateBorder||i.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${i.lineColor}; +} + +.statediagram-cluster rect { + fill: ${i.compositeTitleBackground}; + stroke: ${i.stateBorder||i.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${i.stateLabelColor}; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${i.stateBorder||i.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${i.compositeBackground||i.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${i.altBackground?i.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: ${i.altBackground?i.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${i.noteBkgColor}; + stroke: ${i.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${i.noteBkgColor}; + stroke: ${i.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${i.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${i.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${i.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${i.lineColor}; + stroke: ${i.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; +} +`,swe={},Hsn=(i,a)=>{swe[i]=a},Usn=i=>swe[i],JKe=()=>Object.keys(swe),Vsn={get:Usn,set:Hsn,keys:JKe,size:()=>JKe().length},Gsn=i=>i.append("circle").attr("class","start-state").attr("r",qt().state.sizeUnit).attr("cx",qt().state.padding+qt().state.sizeUnit).attr("cy",qt().state.padding+qt().state.sizeUnit),Ksn=i=>i.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",qt().state.textHeight).attr("class","divider").attr("x2",qt().state.textHeight*2).attr("y1",0).attr("y2",0),Wsn=(i,a)=>{const u=i.append("text").attr("x",2*qt().state.padding).attr("y",qt().state.textHeight+2*qt().state.padding).attr("font-size",qt().state.fontSize).attr("class","state-title").text(a.id),d=u.node().getBBox();return i.insert("rect",":first-child").attr("x",qt().state.padding).attr("y",qt().state.padding).attr("width",d.width+2*qt().state.padding).attr("height",d.height+2*qt().state.padding).attr("rx",qt().state.radius),u},Ysn=(i,a)=>{const u=function(R,B,j){const W=R.append("tspan").attr("x",2*qt().state.padding).text(B);j||W.attr("dy",qt().state.textHeight)},p=i.append("text").attr("x",2*qt().state.padding).attr("y",qt().state.textHeight+1.3*qt().state.padding).attr("font-size",qt().state.fontSize).attr("class","state-title").text(a.descriptions[0]).node().getBBox(),v=p.height,b=i.append("text").attr("x",qt().state.padding).attr("y",v+qt().state.padding*.4+qt().state.dividerMargin+qt().state.textHeight).attr("class","state-description");let y=!0,E=!0;a.descriptions.forEach(function(R){y||(u(b,R,E),E=!1),y=!1});const _=i.append("line").attr("x1",qt().state.padding).attr("y1",qt().state.padding+v+qt().state.dividerMargin/2).attr("y2",qt().state.padding+v+qt().state.dividerMargin/2).attr("class","descr-divider"),A=b.node().getBBox(),P=Math.max(A.width,p.width);return _.attr("x2",P+3*qt().state.padding),i.insert("rect",":first-child").attr("x",qt().state.padding).attr("y",qt().state.padding).attr("width",P+2*qt().state.padding).attr("height",A.height+v+2*qt().state.padding).attr("rx",qt().state.radius),i},Xsn=(i,a,u)=>{const d=qt().state.padding,p=2*qt().state.padding,v=i.node().getBBox(),b=v.width,y=v.x,E=i.append("text").attr("x",0).attr("y",qt().state.titleShift).attr("font-size",qt().state.fontSize).attr("class","state-title").text(a.id),A=E.node().getBBox().width+p;let P=Math.max(A,b);P===b&&(P=P+p);let R;const B=i.node().getBBox();a.doc,R=y-d,A>b&&(R=(b-P)/2+d),Math.abs(y-B.x)b&&(R=y-(A-b)/2);const j=1-qt().state.textHeight;return i.insert("rect",":first-child").attr("x",R).attr("y",j).attr("class",u?"alt-composit":"composit").attr("width",P).attr("height",B.height+qt().state.textHeight+qt().state.titleShift+1).attr("rx","0"),E.attr("x",R+d),A<=b&&E.attr("x",y+(P-p)/2-A/2+d),i.insert("rect",":first-child").attr("x",R).attr("y",qt().state.titleShift-qt().state.textHeight-qt().state.padding).attr("width",P).attr("height",qt().state.textHeight*3).attr("rx",qt().state.radius),i.insert("rect",":first-child").attr("x",R).attr("y",qt().state.titleShift-qt().state.textHeight-qt().state.padding).attr("width",P).attr("height",B.height+3+2*qt().state.textHeight).attr("rx",qt().state.radius),i},Qsn=i=>(i.append("circle").attr("class","end-state-outer").attr("r",qt().state.sizeUnit+qt().state.miniPadding).attr("cx",qt().state.padding+qt().state.sizeUnit+qt().state.miniPadding).attr("cy",qt().state.padding+qt().state.sizeUnit+qt().state.miniPadding),i.append("circle").attr("class","end-state-inner").attr("r",qt().state.sizeUnit).attr("cx",qt().state.padding+qt().state.sizeUnit+2).attr("cy",qt().state.padding+qt().state.sizeUnit+2)),Jsn=(i,a)=>{let u=qt().state.forkWidth,d=qt().state.forkHeight;if(a.parentId){let p=u;u=d,d=p}return i.append("rect").style("stroke","black").style("fill","black").attr("width",u).attr("height",d).attr("x",qt().state.padding).attr("y",qt().state.padding)},Zsn=(i,a,u,d)=>{let p=0;const v=d.append("text");v.style("text-anchor","start"),v.attr("class","noteText");let b=i.replace(/\r\n/g,"
");b=b.replace(/\n/g,"
");const y=b.split(oi.lineBreakRegex);let E=1.25*qt().state.noteMargin;for(const _ of y){const A=_.trim();if(A.length>0){const P=v.append("tspan");if(P.text(A),E===0){const R=P.node().getBBox();E+=R.height}p+=E,P.attr("x",a+qt().state.noteMargin),P.attr("y",u+p+1.25*qt().state.noteMargin)}}return{textWidth:v.node().getBBox().width,textHeight:p}},ean=(i,a)=>{a.attr("class","state-note");const u=a.append("rect").attr("x",0).attr("y",qt().state.padding),d=a.append("g"),{textWidth:p,textHeight:v}=Zsn(i,0,0,d);return u.attr("height",v+2*qt().state.noteMargin),u.attr("width",p+qt().state.noteMargin*2),u},ZKe=function(i,a){const u=a.id,d={id:u,label:a.id,width:0,height:0},p=i.append("g").attr("id",u).attr("class","stateGroup");a.type==="start"&&Gsn(p),a.type==="end"&&Qsn(p),(a.type==="fork"||a.type==="join")&&Jsn(p,a),a.type==="note"&&ean(a.note.text,p),a.type==="divider"&&Ksn(p),a.type==="default"&&a.descriptions.length===0&&Wsn(p,a),a.type==="default"&&a.descriptions.length>0&&Ysn(p,a);const v=p.node().getBBox();return d.width=v.width+2*qt().state.padding,d.height=v.height+2*qt().state.padding,Vsn.set(u,d),d};let eWe=0;const tan=function(i,a,u){const d=function(E){switch(E){case K7.relationType.AGGREGATION:return"aggregation";case K7.relationType.EXTENSION:return"extension";case K7.relationType.COMPOSITION:return"composition";case K7.relationType.DEPENDENCY:return"dependency"}};a.points=a.points.filter(E=>!Number.isNaN(E.y));const p=a.points,v=E7().x(function(E){return E.x}).y(function(E){return E.y}).curve(VF),b=i.append("path").attr("d",v(p)).attr("id","edge"+eWe).attr("class","transition");let y="";if(qt().state.arrowMarkerAbsolute&&(y=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,y=y.replace(/\(/g,"\\("),y=y.replace(/\)/g,"\\)")),b.attr("marker-end","url("+y+"#"+d(K7.relationType.DEPENDENCY)+"End)"),u.title!==void 0){const E=i.append("g").attr("class","stateLabel"),{x:_,y:A}=So.calcLabelPosition(a.points),P=oi.getRows(u.title);let R=0;const B=[];let j=0,W=0;for(let oe=0;oe<=P.length;oe++){const be=E.append("text").attr("text-anchor","middle").text(P[oe]).attr("x",_).attr("y",A+R),ge=be.node().getBBox();j=Math.max(j,ge.width),W=Math.min(W,ge.x),Xe.info(ge.x,_,A+R),R===0&&(R=be.node().getBBox().height,Xe.info("Title height",R,A)),B.push(be)}let ee=R*P.length;if(P.length>1){const oe=(P.length-1)*R*.5;B.forEach((be,ge)=>be.attr("y",A+ge*R-oe)),ee=R*P.length}const ie=E.node().getBBox();E.insert("rect",":first-child").attr("class","box").attr("x",_-j/2-qt().state.padding/2).attr("y",A-ee/2-qt().state.padding/2-3.5).attr("width",j+qt().state.padding).attr("height",ee+qt().state.padding),Xe.info(ie)}eWe++};let Tm;const awe={},nan=function(){},ran=function(i){i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},ian=function(i,a,u,d){Tm=qt().state;const p=qt().securityLevel;let v;p==="sandbox"&&(v=Dr("#i"+a));const b=Dr(p==="sandbox"?v.nodes()[0].contentDocument.body:"body"),y=p==="sandbox"?v.nodes()[0].contentDocument:document;Xe.debug("Rendering diagram "+i);const E=b.select(`[id='${a}']`);ran(E);const _=d.db.getRootDoc();tWe(_,E,void 0,!1,b,y,d);const A=Tm.padding,P=E.node().getBBox(),R=P.width+A*2,B=P.height+A*2,j=R*1.75;Fg(E,B,j,Tm.useMaxWidth),E.attr("viewBox",`${P.x-Tm.padding} ${P.y-Tm.padding} `+R+" "+B)},san=i=>i?i.length*Tm.fontSizeFactor:1,tWe=(i,a,u,d,p,v,b)=>{const y=new R0({compound:!0,multigraph:!0});let E,_=!0;for(E=0;E{const ge=be.parentElement;let ae=0,ne=0;ge&&(ge.parentElement&&(ae=ge.parentElement.getBBox().width),ne=parseInt(ge.getAttribute("data-x-shift"),10),Number.isNaN(ne)&&(ne=0)),be.setAttribute("x1",0-ne+8),be.setAttribute("x2",ae-ne-8)})):Xe.debug("No Node "+ie+": "+JSON.stringify(y.node(ie)))});let W=j.getBBox();y.edges().forEach(function(ie){ie!==void 0&&y.edge(ie)!==void 0&&(Xe.debug("Edge "+ie.v+" -> "+ie.w+": "+JSON.stringify(y.edge(ie))),tan(a,y.edge(ie),y.edge(ie).relation))}),W=j.getBBox();const ee={id:u||"root",label:u||"root",width:0,height:0};return ee.width=W.width+2*Tm.padding,ee.height=W.height+2*Tm.padding,Xe.debug("Doc rendered",ee,y),ee},aan=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:FKe,db:K7,renderer:{setConf:nan,draw:ian},styles:QKe,init:i=>{i.state||(i.state={}),i.state.arrowMarkerAbsolute=i.arrowMarkerAbsolute,K7.clear()}}},Symbol.toStringTag,{value:"Module"})),qJ="rect",owe="rectWithTitle",oan="start",can="end",uan="divider",lan="roundedWithTitle",han="note",fan="noteGroup",sI="statediagram",dan=`${sI}-state`,nWe="transition",gan="note",pan=`${nWe} note-edge`,ban=`${sI}-${gan}`,man=`${sI}-cluster`,van=`${sI}-cluster-alt`,rWe="parent",iWe="note",wan="state",cwe="----",yan=`${cwe}${iWe}`,sWe=`${cwe}${rWe}`,aWe="fill:none",oWe="fill: #333",cWe="c",uWe="text",lWe="normal";let HJ={},z9=0;const xan=function(i){const a=Object.keys(i);for(const u of a)i[u]},kan=function(i,a){return a.db.extract(a.db.getRootDocV2()),a.db.getClasses()};function Tan(i){return i==null?"":i.classes?i.classes.join(" "):""}function uwe(i="",a=0,u="",d=cwe){const p=u!==null&&u.length>0?`${d}${u}`:"";return`${wan}-${i}${p}-${a}`}const oj=(i,a,u,d,p,v)=>{const b=u.id,y=Tan(d[b]);if(b!=="root"){let E=qJ;u.start===!0&&(E=oan),u.start===!1&&(E=can),u.type!==rj&&(E=u.type),HJ[b]||(HJ[b]={id:b,shape:E,description:oi.sanitizeText(b,qt()),classes:`${y} ${dan}`});const _=HJ[b];u.description&&(Array.isArray(_.description)?(_.shape=owe,_.description.push(u.description)):_.description.length>0?(_.shape=owe,_.description===b?_.description=[u.description]:_.description=[_.description,u.description]):(_.shape=qJ,_.description=u.description),_.description=oi.sanitizeTextOrArray(_.description,qt())),_.description.length===1&&_.shape===owe&&(_.shape=qJ),!_.type&&u.doc&&(Xe.info("Setting cluster for ",b,lwe(u)),_.type="group",_.dir=lwe(u),_.shape=u.type===RKe?uan:lan,_.classes=_.classes+" "+man+" "+(v?van:""));const A={labelStyle:"",shape:_.shape,labelText:_.description,classes:_.classes,style:"",id:b,dir:_.dir,domId:uwe(b,z9),type:_.type,padding:15};if(A.centerLabel=!0,u.note){const P={labelStyle:"",shape:han,labelText:u.note.text,classes:ban,style:"",id:b+yan+"-"+z9,domId:uwe(b,z9,iWe),type:_.type,padding:15},R={labelStyle:"",shape:fan,labelText:u.note.text,classes:_.classes,style:"",id:b+sWe,domId:uwe(b,z9,rWe),type:"group",padding:0};z9++;const B=b+sWe;i.setNode(B,R),i.setNode(P.id,P),i.setNode(b,A),i.setParent(b,B),i.setParent(P.id,B);let j=b,W=P.id;u.note.position==="left of"&&(j=P.id,W=b),i.setEdge(j,W,{arrowhead:"none",arrowType:"",style:aWe,labelStyle:"",classes:pan,arrowheadStyle:oWe,labelpos:cWe,labelType:uWe,thickness:lWe})}else i.setNode(b,A)}a&&a.id!=="root"&&(Xe.trace("Setting node ",b," to be child of its parent ",a.id),i.setParent(b,a.id)),u.doc&&(Xe.trace("Adding nodes children "),Ean(i,u,u.doc,d,p,!v))},Ean=(i,a,u,d,p,v)=>{Xe.trace("items",u),u.forEach(b=>{switch(b.stmt){case FJ:oj(i,a,b,d,p,v);break;case rj:oj(i,a,b,d,p,v);break;case Zve:{oj(i,a,b.state1,d,p,v),oj(i,a,b.state2,d,p,v);const y={id:"edge"+z9,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:aWe,labelStyle:"",label:oi.sanitizeText(b.description,qt()),arrowheadStyle:oWe,labelpos:cWe,labelType:uWe,thickness:lWe,classes:nWe};i.setEdge(b.state1.id,b.state2.id,y,z9),z9++}break}})},lwe=(i,a=xsn)=>{let u=a;if(i.doc)for(let d=0;d{i.state||(i.state={}),i.state.arrowMarkerAbsolute=i.arrowMarkerAbsolute,K7.clear()}}},Symbol.toStringTag,{value:"Module"}));var hwe=function(){var i=function(P,R,B,j){for(B=B||{},j=P.length;j--;B[P[j]]=R);return B},a=[6,8,10,11,12,14,16,17,18],u=[1,9],d=[1,10],p=[1,11],v=[1,12],b=[1,13],y=[1,14],E={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:function(R,B,j,W,ee,ie,oe){var be=ie.length-1;switch(ee){case 1:return ie[be-1];case 2:this.$=[];break;case 3:ie[be-1].push(ie[be]),this.$=ie[be-1];break;case 4:case 5:this.$=ie[be];break;case 6:case 7:this.$=[];break;case 8:W.setDiagramTitle(ie[be].substr(6)),this.$=ie[be].substr(6);break;case 9:this.$=ie[be].trim(),W.setAccTitle(this.$);break;case 10:case 11:this.$=ie[be].trim(),W.setAccDescription(this.$);break;case 12:W.addSection(ie[be].substr(8)),this.$=ie[be].substr(8);break;case 13:W.addTask(ie[be-1],ie[be]),this.$="task";break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:u,12:d,14:p,16:v,17:b,18:y},i(a,[2,7],{1:[2,1]}),i(a,[2,3]),{9:15,11:u,12:d,14:p,16:v,17:b,18:y},i(a,[2,5]),i(a,[2,6]),i(a,[2,8]),{13:[1,16]},{15:[1,17]},i(a,[2,11]),i(a,[2,12]),{19:[1,18]},i(a,[2,4]),i(a,[2,9]),i(a,[2,10]),i(a,[2,13])],defaultActions:{},parseError:function(R,B){if(B.recoverable)this.trace(R);else{var j=new Error(R);throw j.hash=B,j}},parse:function(R){var B=this,j=[0],W=[],ee=[null],ie=[],oe=this.table,be="",ge=0,ae=0,ne=2,se=1,de=ie.slice.call(arguments,1),X=Object.create(this.lexer),pe={yy:{}};for(var G in this.yy)Object.prototype.hasOwnProperty.call(this.yy,G)&&(pe.yy[G]=this.yy[G]);X.setInput(R,pe.yy),pe.yy.lexer=X,pe.yy.parser=this,typeof X.yylloc>"u"&&(X.yylloc={});var xe=X.yylloc;ie.push(xe);var U=X.options&&X.options.ranges;typeof pe.yy.parseError=="function"?this.parseError=pe.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Be(){var Tt;return Tt=W.pop()||X.lex()||se,typeof Tt!="number"&&(Tt instanceof Array&&(W=Tt,Tt=W.pop()),Tt=B.symbols_[Tt]||Tt),Tt}for(var Pe,je,Ie,Se,Ce={},ke,Ke,zt,Ne;;){if(je=j[j.length-1],this.defaultActions[je]?Ie=this.defaultActions[je]:((Pe===null||typeof Pe>"u")&&(Pe=Be()),Ie=oe[je]&&oe[je][Pe]),typeof Ie>"u"||!Ie.length||!Ie[0]){var pn="";Ne=[];for(ke in oe[je])this.terminals_[ke]&&ke>ne&&Ne.push("'"+this.terminals_[ke]+"'");X.showPosition?pn="Parse error on line "+(ge+1)+`: +`+X.showPosition()+` +Expecting `+Ne.join(", ")+", got '"+(this.terminals_[Pe]||Pe)+"'":pn="Parse error on line "+(ge+1)+": Unexpected "+(Pe==se?"end of input":"'"+(this.terminals_[Pe]||Pe)+"'"),this.parseError(pn,{text:X.match,token:this.terminals_[Pe]||Pe,line:X.yylineno,loc:xe,expected:Ne})}if(Ie[0]instanceof Array&&Ie.length>1)throw new Error("Parse Error: multiple actions possible at state: "+je+", token: "+Pe);switch(Ie[0]){case 1:j.push(Pe),ee.push(X.yytext),ie.push(X.yylloc),j.push(Ie[1]),Pe=null,ae=X.yyleng,be=X.yytext,ge=X.yylineno,xe=X.yylloc;break;case 2:if(Ke=this.productions_[Ie[1]][1],Ce.$=ee[ee.length-Ke],Ce._$={first_line:ie[ie.length-(Ke||1)].first_line,last_line:ie[ie.length-1].last_line,first_column:ie[ie.length-(Ke||1)].first_column,last_column:ie[ie.length-1].last_column},U&&(Ce._$.range=[ie[ie.length-(Ke||1)].range[0],ie[ie.length-1].range[1]]),Se=this.performAction.apply(Ce,[be,ae,ge,pe.yy,Ie[1],ee,ie].concat(de)),typeof Se<"u")return Se;Ke&&(j=j.slice(0,-1*Ke*2),ee=ee.slice(0,-1*Ke),ie=ie.slice(0,-1*Ke)),j.push(this.productions_[Ie[1]][0]),ee.push(Ce.$),ie.push(Ce._$),zt=oe[j[j.length-2]][j[j.length-1]],j.push(zt);break;case 3:return!0}}return!0}},_=function(){var P={EOF:1,parseError:function(B,j){if(this.yy.parser)this.yy.parser.parseError(B,j);else throw new Error(B)},setInput:function(R,B){return this.yy=B||this.yy||{},this._input=R,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var R=this._input[0];this.yytext+=R,this.yyleng++,this.offset++,this.match+=R,this.matched+=R;var B=R.match(/(?:\r\n?|\n).*/g);return B?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),R},unput:function(R){var B=R.length,j=R.split(/(?:\r\n?|\n)/g);this._input=R+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-B),this.offset-=B;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),j.length-1&&(this.yylineno-=j.length-1);var ee=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:j?(j.length===W.length?this.yylloc.first_column:0)+W[W.length-j.length].length-j[0].length:this.yylloc.first_column-B},this.options.ranges&&(this.yylloc.range=[ee[0],ee[0]+this.yyleng-B]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(R){this.unput(this.match.slice(R))},pastInput:function(){var R=this.matched.substr(0,this.matched.length-this.match.length);return(R.length>20?"...":"")+R.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var R=this.match;return R.length<20&&(R+=this._input.substr(0,20-R.length)),(R.substr(0,20)+(R.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var R=this.pastInput(),B=new Array(R.length+1).join("-");return R+this.upcomingInput()+` +`+B+"^"},test_match:function(R,B){var j,W,ee;if(this.options.backtrack_lexer&&(ee={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ee.yylloc.range=this.yylloc.range.slice(0))),W=R[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+R[0].length},this.yytext+=R[0],this.match+=R[0],this.matches=R,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(R[0].length),this.matched+=R[0],j=this.performAction.call(this,this.yy,this,B,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),j)return j;if(this._backtrack){for(var ie in ee)this[ie]=ee[ie];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var R,B,j,W;this._more||(this.yytext="",this.match="");for(var ee=this._currentRules(),ie=0;ieB[0].length)){if(B=j,W=ie,this.options.backtrack_lexer){if(R=this.test_match(j,ee[ie]),R!==!1)return R;if(this._backtrack){B=!1;continue}else return!1}else if(!this.options.flex)break}return B?(R=this.test_match(B,ee[W]),R!==!1?R:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var B=this.next();return B||this.lex()},begin:function(B){this.conditionStack.push(B)},popState:function(){var B=this.conditionStack.length-1;return B>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(B){return B=this.conditionStack.length-1-Math.abs(B||0),B>=0?this.conditionStack[B]:"INITIAL"},pushState:function(B){this.begin(B)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(B,j,W,ee){switch(W){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return P}();E.lexer=_;function A(){this.yy={}}return A.prototype=E,E.Parser=A,new A}();hwe.parser=hwe;const San=hwe;let aI="";const fwe=[],cj=[],uj=[],_an=function(){fwe.length=0,cj.length=0,aI="",uj.length=0,Rg()},Aan=function(i){aI=i,fwe.push(i)},Lan=function(){return fwe},Man=function(){let i=hWe();const a=100;let u=0;for(;!i&&u{u.people&&i.push(...u.people)}),[...new Set(i)].sort()},Ian=function(i,a){const u=a.substr(1).split(":");let d=0,p=[];u.length===1?(d=Number(u[0]),p=[]):(d=Number(u[0]),p=u[1].split(","));const v=p.map(y=>y.trim()),b={section:aI,type:aI,people:v,task:i,score:d};uj.push(b)},Oan=function(i){const a={section:aI,type:aI,description:i,task:i,classes:[]};cj.push(a)},hWe=function(){const i=function(u){return uj[u].processed};let a=!0;for(const[u,d]of uj.entries())i(u),a=a&&d.processed;return a},fWe={getConfig:()=>qt().journey,clear:_an,setDiagramTitle:pm,getDiagramTitle:Op,setAccTitle:jg,getAccTitle:Mp,setAccDescription:Dp,getAccDescription:Ip,addSection:Aan,getSections:Lan,getTasks:Man,addTask:Ian,addTaskOrg:Oan,getActors:function(){return Dan()}},Nan=i=>`.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${i.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${i.textColor} + } + + .legend { + fill: ${i.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${i.textColor} + } + + .face { + ${i.faceColor?`fill: ${i.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${i.arrowheadColor}; + } + + .edgePath .path { + stroke: ${i.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${i.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${i.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${i.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${i.tertiaryColor}; + border: 1px solid ${i.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${i.fillType0?`fill: ${i.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${i.fillType0?`fill: ${i.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${i.fillType0?`fill: ${i.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${i.fillType0?`fill: ${i.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${i.fillType0?`fill: ${i.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${i.fillType0?`fill: ${i.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${i.fillType0?`fill: ${i.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${i.fillType0?`fill: ${i.fillType7}`:""}; + } + + .actor-0 { + ${i.actor0?`fill: ${i.actor0}`:""}; + } + .actor-1 { + ${i.actor1?`fill: ${i.actor1}`:""}; + } + .actor-2 { + ${i.actor2?`fill: ${i.actor2}`:""}; + } + .actor-3 { + ${i.actor3?`fill: ${i.actor3}`:""}; + } + .actor-4 { + ${i.actor4?`fill: ${i.actor4}`:""}; + } + .actor-5 { + ${i.actor5?`fill: ${i.actor5}`:""}; + } +`,dwe=function(i,a){return qQ(i,a)},Pan=function(i,a){const d=i.append("circle").attr("cx",a.cx).attr("cy",a.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),p=i.append("g");p.append("circle").attr("cx",a.cx-15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),p.append("circle").attr("cx",a.cx+15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function v(E){const _=hD().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);E.append("path").attr("class","mouth").attr("d",_).attr("transform","translate("+a.cx+","+(a.cy+2)+")")}function b(E){const _=hD().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);E.append("path").attr("class","mouth").attr("d",_).attr("transform","translate("+a.cx+","+(a.cy+7)+")")}function y(E){E.append("line").attr("class","mouth").attr("stroke",2).attr("x1",a.cx-5).attr("y1",a.cy+7).attr("x2",a.cx+5).attr("y2",a.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return a.score>3?v(p):a.score<3?b(p):y(p),d},dWe=function(i,a){const u=i.append("circle");return u.attr("cx",a.cx),u.attr("cy",a.cy),u.attr("class","actor-"+a.pos),u.attr("fill",a.fill),u.attr("stroke",a.stroke),u.attr("r",a.r),u.class!==void 0&&u.attr("class",u.class),a.title!==void 0&&u.append("title").text(a.title),u},gWe=function(i,a){return kVt(i,a)},Ban=function(i,a){function u(p,v,b,y,E){return p+","+v+" "+(p+b)+","+v+" "+(p+b)+","+(v+y-E)+" "+(p+b-E*1.2)+","+(v+y)+" "+p+","+(v+y)}const d=i.append("polygon");d.attr("points",u(a.x,a.y,50,20,7)),d.attr("class","labelBox"),a.y=a.y+a.labelMargin,a.x=a.x+.5*a.labelMargin,gWe(i,a)},Fan=function(i,a,u){const d=i.append("g"),p=HC();p.x=a.x,p.y=a.y,p.fill=a.fill,p.width=u.width*a.taskCount+u.diagramMarginX*(a.taskCount-1),p.height=u.height,p.class="journey-section section-type-"+a.num,p.rx=3,p.ry=3,dwe(d,p),bWe(u)(a.text,d,p.x,p.y,p.width,p.height,{class:"journey-section section-type-"+a.num},u,a.colour)};let pWe=-1;const Ran=function(i,a,u){const d=a.x+u.width/2,p=i.append("g");pWe++;const v=300+5*30;p.append("line").attr("id","task"+pWe).attr("x1",d).attr("y1",a.y).attr("x2",d).attr("y2",v).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Pan(p,{cx:d,cy:300+(5-a.score)*30,score:a.score});const b=HC();b.x=a.x,b.y=a.y,b.fill=a.fill,b.width=u.width,b.height=u.height,b.class="task task-type-"+a.num,b.rx=3,b.ry=3,dwe(p,b);let y=a.x+14;a.people.forEach(E=>{const _=a.actors[E].color,A={cx:y,cy:a.y,r:7,fill:_,stroke:"#000",title:E,pos:a.actors[E].position};dWe(p,A),y+=10}),bWe(u)(a.task,p,b.x,b.y,b.width,b.height,{class:"task"},u,a.colour)},jan=function(i,a){Zqe(i,a)},bWe=function(){function i(p,v,b,y,E,_,A,P){const R=v.append("text").attr("x",b+E/2).attr("y",y+_/2+5).style("font-color",P).style("text-anchor","middle").text(p);d(R,A)}function a(p,v,b,y,E,_,A,P,R){const{taskFontSize:B,taskFontFamily:j}=P,W=p.split(//gi);for(let ee=0;ee{const p=W7[d].color,v={cx:20,cy:u,r:7,fill:p,stroke:"#000",pos:W7[d].position};lj.drawCircle(i,v);const b={x:40,y:u+7,fill:"#666",text:d,textMargin:a.boxTextMargin|5};lj.drawText(i,b),u+=20})}const UJ=qt().journey,sS=UJ.leftMargin,qan=function(i,a,u,d){const p=qt().journey,v=qt().securityLevel;let b;v==="sandbox"&&(b=Dr("#i"+a));const y=Dr(v==="sandbox"?b.nodes()[0].contentDocument.body:"body");Yv.init();const E=y.select("#"+a);lj.initGraphics(E);const _=d.db.getTasks(),A=d.db.getDiagramTitle(),P=d.db.getActors();for(const ie in W7)delete W7[ie];let R=0;P.forEach(ie=>{W7[ie]={color:p.actorColours[R%p.actorColours.length],position:R},R++}),zan(E),Yv.insert(0,0,sS,Object.keys(W7).length*50),Han(E,_,0);const B=Yv.getBounds();A&&E.append("text").text(A).attr("x",sS).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const j=B.stopy-B.starty+2*p.diagramMarginY,W=sS+B.stopx+2*p.diagramMarginX;Fg(E,j,W,p.useMaxWidth),E.append("line").attr("x1",sS).attr("y1",p.height*4).attr("x2",W-sS-4).attr("y2",p.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const ee=A?70:0;E.attr("viewBox",`${B.startx} -25 ${W} ${j+ee}`),E.attr("preserveAspectRatio","xMinYMin meet"),E.attr("height",j+ee+25)},Yv={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(i,a,u,d){i[a]===void 0?i[a]=u:i[a]=d(u,i[a])},updateBounds:function(i,a,u,d){const p=qt().journey,v=this;let b=0;function y(E){return function(A){b++;const P=v.sequenceItems.length-b+1;v.updateVal(A,"starty",a-P*p.boxMargin,Math.min),v.updateVal(A,"stopy",d+P*p.boxMargin,Math.max),v.updateVal(Yv.data,"startx",i-P*p.boxMargin,Math.min),v.updateVal(Yv.data,"stopx",u+P*p.boxMargin,Math.max),E!=="activation"&&(v.updateVal(A,"startx",i-P*p.boxMargin,Math.min),v.updateVal(A,"stopx",u+P*p.boxMargin,Math.max),v.updateVal(Yv.data,"starty",a-P*p.boxMargin,Math.min),v.updateVal(Yv.data,"stopy",d+P*p.boxMargin,Math.max))}}this.sequenceItems.forEach(y())},insert:function(i,a,u,d){const p=Math.min(i,u),v=Math.max(i,u),b=Math.min(a,d),y=Math.max(a,d);this.updateVal(Yv.data,"startx",p,Math.min),this.updateVal(Yv.data,"starty",b,Math.min),this.updateVal(Yv.data,"stopx",v,Math.max),this.updateVal(Yv.data,"stopy",y,Math.max),this.updateBounds(p,b,v,y)},bumpVerticalPos:function(i){this.verticalPos=this.verticalPos+i,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},gwe=UJ.sectionFills,mWe=UJ.sectionColours,Han=function(i,a,u){const d=qt().journey;let p="";const v=d.height*2+d.diagramMarginY,b=u+v;let y=0,E="#CCC",_="black",A=0;for(const[P,R]of a.entries()){if(p!==R.section){E=gwe[y%gwe.length],A=y%gwe.length,_=mWe[y%mWe.length];let j=0;const W=R.section;for(let ie=P;ie(W7[W]&&(j[W]=W7[W]),j),{});R.x=P*d.taskMargin+P*d.width+sS,R.y=b,R.width=d.diagramMarginX,R.height=d.diagramMarginY,R.colour=_,R.fill=E,R.num=A,R.actors=B,lj.drawTask(i,R,d),Yv.insert(R.x,R.y,R.x+R.width+d.taskMargin,300+5*30)}},vWe={setConf:$an,draw:qan},Uan=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:San,db:fWe,renderer:vWe,styles:Nan,init:i=>{vWe.setConf(i.journey),fWe.clear()}}},Symbol.toStringTag,{value:"Module"})),Van=(i,a,u)=>{const{parentById:d}=u,p=new Set;let v=i;for(;v;){if(p.add(v),v===a)return v;v=d[v]}for(v=a;v;){if(p.has(v))return v;v=d[v]}return"root"};function VJ(i){throw new Error('Could not dynamically require "'+i+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var wWe={exports:{}};(function(i,a){(function(u){i.exports=u()})(function(){return function(){function u(d,p,v){function b(_,A){if(!p[_]){if(!d[_]){var P=typeof VJ=="function"&&VJ;if(!A&&P)return P(_,!0);if(y)return y(_,!0);var R=new Error("Cannot find module '"+_+"'");throw R.code="MODULE_NOT_FOUND",R}var B=p[_]={exports:{}};d[_][0].call(B.exports,function(j){var W=d[_][1][j];return b(W||j)},B,B.exports,u,d,p,v)}return p[_].exports}for(var y=typeof VJ=="function"&&VJ,E=0;E0&&arguments[0]!==void 0?arguments[0]:{},R=P.defaultLayoutOptions,B=R===void 0?{}:R,j=P.algorithms,W=j===void 0?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:j,ee=P.workerFactory,ie=P.workerUrl;if(b(this,_),this.defaultLayoutOptions=B,this.initialized=!1,typeof ie>"u"&&typeof ee>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var oe=ee;typeof ie<"u"&&typeof ee>"u"&&(oe=function(ae){return new Worker(ae)});var be=oe(ie);if(typeof be.postMessage!="function")throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new E(be),this.worker.postMessage({cmd:"register",algorithms:W}).then(function(ge){return A.initialized=!0}).catch(console.err)}return v(_,[{key:"layout",value:function(P){var R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},B=R.layoutOptions,j=B===void 0?this.defaultLayoutOptions:B,W=R.logging,ee=W===void 0?!1:W,ie=R.measureExecutionTime,oe=ie===void 0?!1:ie;return P?this.worker.postMessage({cmd:"layout",graph:P,layoutOptions:j,options:{logging:ee,measureExecutionTime:oe}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker.terminate()}}]),_}();p.default=y;var E=function(){function _(A){var P=this;if(b(this,_),A===void 0)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=A,this.worker.onmessage=function(R){setTimeout(function(){P.receive(P,R)},0)}}return v(_,[{key:"postMessage",value:function(P){var R=this.id||0;this.id=R+1,P.id=R;var B=this;return new Promise(function(j,W){B.resolvers[R]=function(ee,ie){ee?(B.convertGwtStyleError(ee),W(ee)):j(ie)},B.worker.postMessage(P)})}},{key:"receive",value:function(P,R){var B=R.data,j=P.resolvers[B.id];j&&(delete P.resolvers[B.id],B.error?j(B.error):j(null,B.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(P){if(P){var R=P.__java$exception;R&&(R.cause&&R.cause.backingJsObject&&(P.cause=R.cause.backingJsObject,this.convertGwtStyleError(P.cause)),delete P.__java$exception)}}}]),_}()},{}],2:[function(u,d,p){(function(v){(function(){var b;typeof window<"u"?b=window:typeof v<"u"?b=v:typeof self<"u"&&(b=self);var y;function E(){}function _(){}function A(){}function P(){}function R(){}function B(){}function j(){}function W(){}function ee(){}function ie(){}function oe(){}function be(){}function ge(){}function ae(){}function ne(){}function se(){}function de(){}function X(){}function pe(){}function G(){}function xe(){}function U(){}function Be(){}function Pe(){}function je(){}function Ie(){}function Se(){}function Ce(){}function ke(){}function Ke(){}function zt(){}function Ne(){}function pn(){}function Tt(){}function Et(){}function Wt(){}function un(){}function yt(){}function Bt(){}function Ze(){}function Dt(){}function kt(){}function Nn(){}function ht(){}function qr(){}function xt(){}function Ri(){}function wi(){}function ia(){}function Hs(){}function mo(){}function Tr(){}function On(){}function Rn(){}function zn(){}function Ct(){}function gt(){}function on(){}function dn(){}function Ln(){}function Io(){}function Oo(){}function No(){}function Us(){}function uo(){}function Es(){}function Ou(){}function _c(){}function Kd(){}function qp(){}function Ul(){}function Ac(){}function Jc(){}function Ya(){}function Ba(){}function ha(){}function $o(){}function Lc(){}function Fa(){}function Ra(){}function ma(){}function Kh(){}function Po(){}function Hp(){}function Ug(){}function od(){}function cd(){}function w1(){}function kh(){}function Wd(){}function Yd(){}function Xd(){}function Zf(){}function Up(){}function u5(){}function bs(){}function Vt(){}function jr(){}function Ji(){}function Qo(){}function Hi(){}function Ui(){}function zs(){}function gi(){}function Bo(){}function Ot(){}function zu(){}function Gt(){}function Wh(){}function Vp(){}function J3(){}function q9(){}function l5(){}function Th(){}function Vg(){}function Em(){}function H9(){}function Cm(){}function h5(){}function y1(){}function ud(){}function ld(){}function U9(){}function Qv(){}function X7(){}function tb(){}function Q7(){}function f5(){}function Z3(){}function Gp(){}function lI(){}function sh(){}function cS(){}function lu(){}function eZ(){}function Sm(){}function tZ(){}function gj(){}function nZ(){}function pj(){}function z0(){}function ey(){}function uS(){}function bj(){}function nb(){}function ty(){}function rZ(){}function _m(){}function iZ(){}function sZ(){}function J7(){}function lS(){}function mj(){}function V9(){}function aZ(){}function G9(){}function oZ(){}function cZ(){}function uZ(){}function lZ(){}function hZ(){}function fZ(){}function dZ(){}function gZ(){}function pZ(){}function bZ(){}function mZ(){}function hI(){}function vZ(){}function wZ(){}function hS(){}function vj(){}function Z7(){}function yZ(){}function xZ(){}function kZ(){}function TZ(){}function EZ(){}function fS(){}function fI(){}function wj(){}function d5(){}function g5(){}function CZ(){}function e0(){}function e8(){}function SZ(){}function K9(){}function Qd(){}function _Z(){}function AZ(){}function LZ(){}function yj(){}function MZ(){}function dS(){}function gS(){}function xj(){}function dI(){}function t8(){}function DZ(){}function kj(){}function Tj(){}function IZ(){}function OZ(){}function NZ(){}function PZ(){}function BZ(){}function FZ(){}function Jd(){}function Jv(){}function RZ(){}function pS(){}function bS(){}function jZ(){}function p5(){}function W9(){}function gI(){}function ny(){}function Y9(){}function $Z(){}function mS(){}function hd(){}function Ej(){}function pI(){}function X9(){}function bI(){}function Cj(){}function zZ(){}function mI(){}function qZ(){}function HZ(){}function Sj(){}function n8(){}function _j(){}function r8(){}function UZ(){}function vI(){}function VZ(){}function GZ(){}function KZ(){}function WZ(){}function Aj(){}function YZ(){}function XZ(){}function Lj(){}function QZ(){}function JZ(){}function ZZ(){}function eee(){}function Mj(){}function tee(){}function nee(){}function Dj(){}function Ij(){}function Oj(){}function ree(){}function iee(){}function Q9(){}function i8(){}function vS(){}function see(){}function wI(){}function wS(){}function yI(){}function Nj(){}function Pj(){}function aee(){}function oee(){}function cee(){}function Bj(){}function Fj(){}function uee(){}function lee(){}function hee(){}function fee(){}function dee(){}function Rj(){}function gee(){}function pee(){}function bee(){}function mee(){}function jj(){}function yS(){}function vee(){}function wee(){}function $j(){}function yee(){}function xee(){}function kee(){}function Tee(){}function Eee(){}function Cee(){}function zj(){}function See(){}function qj(){}function _ee(){}function Aee(){}function Lee(){}function xS(){}function Mee(){}function kS(){}function Dee(){}function Hj(){}function Uj(){}function Vj(){}function Gj(){}function Zv(){}function Kj(){}function Wj(){}function Yj(){}function Xj(){}function Iee(){}function s8(){}function xI(){}function b5(){}function Oee(){}function Nee(){}function TS(){}function Qj(){}function Pee(){}function Bee(){}function Fee(){}function Ree(){}function jee(){}function $ee(){}function zee(){}function qee(){}function Hee(){}function Uee(){}function ES(){}function Jj(){}function Vee(){}function Gee(){}function Kee(){}function Wee(){}function Yee(){}function Zj(){}function e$(){}function Xee(){}function t$(){}function n$(){}function Qee(){}function Jee(){}function Zee(){}function ete(){}function tte(){}function nte(){}function rte(){}function ite(){}function kI(){}function ste(){}function J9(){}function r$(){}function ate(){}function ote(){}function cte(){}function ute(){}function lte(){}function hte(){}function fte(){}function dte(){}function gte(){}function pte(){}function bte(){}function mte(){}function vte(){}function wte(){}function yte(){}function a8(){}function i$(){}function xte(){}function kte(){}function Tte(){}function s$(){}function Ete(){}function CS(){}function Cte(){}function Ste(){}function _te(){}function Ate(){}function Lte(){}function Mte(){}function Dte(){}function Ite(){}function Ote(){}function Nte(){}function o8(){}function Pte(){}function Bte(){}function Fte(){}function Rte(){}function jte(){}function $te(){}function zte(){}function qte(){}function SS(){}function Hte(){}function Ute(){}function Vte(){}function Gte(){}function Kte(){}function Wte(){}function Yte(){}function Xte(){}function c8(){}function a$(){}function Qte(){}function TI(){}function Jte(){}function Zte(){}function ene(){}function tne(){}function nne(){}function rne(){}function ine(){}function o$(){}function sne(){}function c$(){}function ane(){}function u$(){}function l$(){}function h$(){}function one(){}function cne(){}function f$(){}function une(){}function d$(){}function lne(){}function hne(){}function EI(){}function fne(){}function dne(){}function gne(){}function pne(){}function bne(){}function g$(){}function mne(){}function vne(){}function wne(){}function Owe(){}function yne(){}function xne(){}function kne(){}function Tne(){}function Ene(){}function Cne(){}function Sne(){}function _ne(){}function Ane(){}function Lne(){}function Mne(){}function Dne(){}function Ine(){}function One(){}function Nne(){}function Pne(){}function hu(){}function Bne(){}function _S(){}function $c(){}function Nu(){}function hs(){}function CI(){}function Fne(){}function Rne(){}function jne(){}function u8(){}function Am(){}function Z9(){}function $ne(){}function SI(){}function zne(){}function qne(){}function Hne(){}function p$(){}function Une(){}function Vne(){}function _I(){}function Gne(){}function ah(){}function dl(){}function b$(){}function Kne(){}function Wne(){}function ry(){}function m5(){}function iy(){}function Kp(){}function l8(){}function AI(){}function m$(){}function v$(){}function Yne(){}function x1(){}function w$(){}function sy(){}function ek(){}function LI(){}function h8(){}function rb(){}function y$(){}function x$(){}function k$(){}function Xne(){}function f8(){}function ay(){}function Wp(){}function ib(){}function v5(){}function tk(){}function AS(){}function MI(){}function Qne(){}function Jne(){}function T$(){}function E$(){}function Kt(){}function nk(){}function C$(){}function S$(){}function Zne(){}function rk(){}function ik(){}function _$(){}function ere(){}function tre(){}function nre(){}function rre(){}function ire(){}function sre(){}function DI(){}function are(){}function ore(){}function A$(){}function LS(){}function cre(){}function II(){}function sk(){}function ak(){}function ok(){}function L$(){}function ure(){}function M$(){}function D$(){}function lre(){}function MS(){}function sb(){}function I$(){}function O$(){}function DS(){}function hre(){}function w5(){}function N$(){}function OI(){}function Zc(){}function NI(){}function PI(){}function IS(){}function fre(){}function dre(){}function OS(){}function gre(){}function NS(){}function PS(){}function q0(){}function BI(){}function FI(){}function d8(){}function pre(){}function bre(){}function mre(){}function vre(){}function Zd(){}function BS(){}function g8(){}function k1(){}function P$(){}function B$(){}function F$(){}function R$(){}function j$(){}function $$(){}function H0(){}function tl(){}function wre(){}function yre(){}function xre(){}function nl(){}function FS(){}function z$(){}function q$(){}function p8(){}function kre(){}function ck(){}function Tre(){}function H$(){}function Ere(){}function Cre(){}function RS(){}function U$(){}function RI(){}function jS(){}function Sre(){}function _re(){}function jI(){}function $S(){}function T1(){}function uk(){}function Are(){}function lk(){}function $I(){}function Lm(){}function zS(){}function zI(){}function U0(){}function qS(){}function E1(){}function C1(){}function Lre(){}function Mre(){}function y5(){}function hk(){}function fk(){}function HS(){}function Dre(){}function Ire(){}function b8(){}function V$(){}function G$(){}function Ore(){}function K$(){}function Nre(){}function W$(){}function qI(){}function Pre(){}function US(){}function Bre(){}function Fre(){}function Rre(){}function jre(){}function $re(){}function Y$(){}function zre(){}function qre(){}function Hre(){}function X$(){}function Ure(){}function Vre(){}function VS(){}function Gre(){}function Kre(){}function Wre(){}function Yre(){}function Xre(){}function Qre(){}function Q$(){}function Jre(){}function J$(){}function Zre(){}function HI(){}function eie(){}function Z$(){}function tie(){}function ez(){}function nie(){}function tz(){}function nz(){}function rz(){}function UI(){}function x5(){}function GS(){}function S1(){}function iz(){}function dk(){}function VI(){}function sz(){}function Mm(){}function az(){}function KS(){c_()}function rie(){fO()}function oz(){yV()}function cz(){Hce()}function uz(){OA()}function WS(){g9e()}function YS(){p0()}function lz(){Exe()}function hz(){JN()}function m8(){dO()}function ew(){zO()}function gk(){qet()}function fz(){hx()}function iie(){blt()}function dz(){T7e()}function v8(){ict()}function GI(){E7e()}function gz(){Klt()}function sie(){rct()}function pz(){ST()}function XS(){Mft()}function QS(){Lft()}function KI(){Zct()}function aie(){Dft()}function oie(){Nb()}function cie(){oq()}function uie(){dTe()}function lie(){Nt()}function hie(){Ift()}function fie(){s0t()}function die(){sct()}function gie(){Mgt()}function pie(){act()}function bie(){Umt()}function mie(){V9e()}function vie(){sp()}function wie(){V1t()}function w8(){Vc()}function yie(){pct()}function pk(){lx()}function Cf(){_ke()}function xie(){Pb()}function bk(){Ake()}function JS(){z1()}function kie(){rP()}function Tie(){ple()}function Eie(){Eue()}function Sf(){Vit()}function Cie(){aU()}function Sie(){SV()}function bz(){bi()}function _ie(){qU()}function mz(){exe()}function vz(){Ece()}function wz(){WV()}function yz(){jke()}function t0(e){tr(e)}function xz(e){this.a=e}function ZS(e){this.a=e}function kz(e){this.a=e}function Tz(e){this.a=e}function Aie(e){this.a=e}function Lie(e){this.a=e}function Ez(e){this.a=e}function Mie(e){this.a=e}function Cz(e){this.a=e}function ab(e){this.a=e}function Die(e){this.a=e}function Iie(e){this.a=e}function WI(e){this.a=e}function Oie(e){this.a=e}function Nie(e){this.a=e}function mk(e){this.a=e}function ob(e){this.a=e}function Sz(e){this.a=e}function vk(e){this.a=e}function k5(e){this.a=e}function YI(e){this.a=e}function y8(e){this.a=e}function XI(e){this.b=e}function Gg(e){this.c=e}function Pie(e){this.a=e}function oy(e){this.a=e}function _z(e){this.a=e}function Az(e){this.a=e}function QI(e){this.a=e}function JI(e){this.a=e}function Lz(e){this.a=e}function x8(e){this.a=e}function wk(e){this.a=e}function Bie(e){this.a=e}function Mz(e){this.a=e}function Dz(e){this.a=e}function Iz(e){this.a=e}function Oz(e){this.a=e}function zc(e){this.a=e}function yk(e){this.a=e}function xk(e){this.a=e}function Yp(){this.a=[]}function Fie(e,t){e.a=t}function Rie(e,t){e.a=t}function jie(e,t){e.b=t}function $ie(e,t){e.b=t}function zie(e,t){e.b=t}function Nz(e,t){e.j=t}function Nwe(e,t){e.g=t}function Pz(e,t){e.i=t}function qie(e,t){e.c=t}function k8(e,t){e.c=t}function Pwe(e,t){e.d=t}function T8(e,t){e.d=t}function x(e,t){e.k=t}function m(e,t){e.c=t}function k(e,t){e.c=t}function S(e,t){e.a=t}function M(e,t){e.a=t}function O(e,t){e.f=t}function N(e,t){e.a=t}function $(e,t){e.b=t}function H(e,t){e.d=t}function q(e,t){e.i=t}function Y(e,t){e.o=t}function Z(e,t){e.r=t}function ce(e,t){e.a=t}function ve(e,t){e.b=t}function me(e,t){e.e=t}function Le(e,t){e.f=t}function _e(e,t){e.g=t}function Te(e,t){e.e=t}function Fe(e,t){e.f=t}function Re(e,t){e.f=t}function Ve(e,t){e.a=t}function ct(e,t){e.b=t}function st(e,t){e.n=t}function Ye(e,t){e.a=t}function vt(e,t){e.c=t}function Qe(e,t){e.c=t}function Lt(e,t){e.c=t}function Mt(e,t){e.a=t}function ut(e,t){e.a=t}function Yt(e,t){e.d=t}function St(e,t){e.d=t}function _n(e,t){e.e=t}function fn(e,t){e.e=t}function Xt(e,t){e.g=t}function Dn(e,t){e.f=t}function rr(e,t){e.j=t}function mr(e,t){e.a=t}function Pn(e,t){e.a=t}function gr(e,t){e.b=t}function kr(e){e.b=e.a}function Lr(e){e.c=e.d.d}function Er(e){this.a=e}function Ir(e){this.a=e}function Kn(e){this.a=e}function pr(e){this.a=e}function Cr(e){this.a=e}function Or(e){this.a=e}function _i(e){this.a=e}function xs(e){this.a=e}function va(e){this.a=e}function Di(e){this.a=e}function pi(e){this.a=e}function fs(e){this.a=e}function Fs(e){this.a=e}function ks(e){this.a=e}function Rs(e){this.b=e}function vo(e){this.b=e}function ja(e){this.b=e}function Ma(e){this.a=e}function Fo(e){this.a=e}function er(e){this.c=e}function K(e){this.c=e}function Qn(e){this.c=e}function xr(e){this.d=e}function ur(e){this.a=e}function Ut(e){this.a=e}function Vs(e){this.a=e}function vr(e){this.a=e}function Cs(e){this.a=e}function lo(e){this.a=e}function qc(e){this.a=e}function $a(e){this.a=e}function Mc(e){this.a=e}function wa(e){this.a=e}function wo(e){this.a=e}function oh(e){this.a=e}function Vl(e){this.a=e}function cb(e){this.a=e}function ub(e){this.a=e}function V0(e){this.a=e}function Xp(e){this.a=e}function fd(e){this.a=e}function tw(e){this.a=e}function cy(e){this.a=e}function E8(e){this.a=e}function T5(e){this.a=e}function C8(e){this.a=e}function e_(e){this.a=e}function E5(e){this.a=e}function eg(e){this.a=e}function _1(e){this.a=e}function tg(e){this.a=e}function nw(e){this.a=e}function Dm(e){this.a=e}function Bz(e){this.a=e}function Hie(e){this.a=e}function Uie(e){this.a=e}function t_(e){this.a=e}function Vie(e){this.a=e}function Gie(e){this.a=e}function C5(e){this.a=e}function Fz(e){this.a=e}function kk(e){this.a=e}function ZI(e){this.a=e}function n_(e){this.a=e}function Rz(e){this.a=e}function jz(e){this.a=e}function Kie(e){this.a=e}function Qp(e){this.a=e}function r_(e){this.a=e}function eO(e){this.a=e}function Im(e){this.a=e}function ng(e){this.e=e}function S5(e){this.a=e}function pYe(e){this.a=e}function S8(e){this.a=e}function Bwe(e){this.a=e}function bYe(e){this.a=e}function mYe(e){this.a=e}function vYe(e){this.a=e}function wYe(e){this.a=e}function yYe(e){this.a=e}function xYe(e){this.a=e}function kYe(e){this.a=e}function TYe(e){this.a=e}function EYe(e){this.a=e}function CYe(e){this.a=e}function SYe(e){this.a=e}function Fwe(e){this.a=e}function _Ye(e){this.a=e}function AYe(e){this.a=e}function LYe(e){this.a=e}function MYe(e){this.a=e}function DYe(e){this.a=e}function IYe(e){this.a=e}function OYe(e){this.a=e}function NYe(e){this.a=e}function PYe(e){this.a=e}function BYe(e){this.a=e}function FYe(e){this.a=e}function RYe(e){this.a=e}function jYe(e){this.a=e}function $Ye(e){this.a=e}function zYe(e){this.a=e}function qYe(e){this.a=e}function HYe(e){this.a=e}function UYe(e){this.a=e}function VYe(e){this.a=e}function GYe(e){this.a=e}function KYe(e){this.a=e}function WYe(e){this.a=e}function YYe(e){this.a=e}function XYe(e){this.a=e}function QYe(e){this.a=e}function JYe(e){this.a=e}function ZYe(e){this.a=e}function eXe(e){this.a=e}function tXe(e){this.a=e}function nXe(e){this.a=e}function rXe(e){this.a=e}function iXe(e){this.a=e}function sXe(e){this.a=e}function aXe(e){this.a=e}function oXe(e){this.a=e}function cXe(e){this.a=e}function uXe(e){this.a=e}function lXe(e){this.a=e}function hXe(e){this.c=e}function fXe(e){this.b=e}function dXe(e){this.a=e}function gXe(e){this.a=e}function pXe(e){this.a=e}function bXe(e){this.a=e}function mXe(e){this.a=e}function vXe(e){this.a=e}function wXe(e){this.a=e}function yXe(e){this.a=e}function xXe(e){this.a=e}function kXe(e){this.a=e}function TXe(e){this.a=e}function EXe(e){this.a=e}function CXe(e){this.a=e}function SXe(e){this.a=e}function _Xe(e){this.a=e}function AXe(e){this.a=e}function LXe(e){this.a=e}function MXe(e){this.a=e}function DXe(e){this.a=e}function IXe(e){this.a=e}function OXe(e){this.a=e}function NXe(e){this.a=e}function PXe(e){this.a=e}function BXe(e){this.a=e}function FXe(e){this.a=e}function RXe(e){this.a=e}function jXe(e){this.a=e}function Kg(e){this.a=e}function _5(e){this.a=e}function $Xe(e){this.a=e}function zXe(e){this.a=e}function qXe(e){this.a=e}function HXe(e){this.a=e}function UXe(e){this.a=e}function VXe(e){this.a=e}function GXe(e){this.a=e}function KXe(e){this.a=e}function WXe(e){this.a=e}function YXe(e){this.a=e}function XXe(e){this.a=e}function QXe(e){this.a=e}function JXe(e){this.a=e}function ZXe(e){this.a=e}function eQe(e){this.a=e}function tQe(e){this.a=e}function nQe(e){this.a=e}function rQe(e){this.a=e}function iQe(e){this.a=e}function sQe(e){this.a=e}function aQe(e){this.a=e}function oQe(e){this.a=e}function cQe(e){this.a=e}function uQe(e){this.a=e}function lQe(e){this.a=e}function hQe(e){this.a=e}function $z(e){this.a=e}function fQe(e){this.f=e}function dQe(e){this.a=e}function gQe(e){this.a=e}function pQe(e){this.a=e}function bQe(e){this.a=e}function mQe(e){this.a=e}function vQe(e){this.a=e}function wQe(e){this.a=e}function yQe(e){this.a=e}function xQe(e){this.a=e}function kQe(e){this.a=e}function TQe(e){this.a=e}function EQe(e){this.a=e}function CQe(e){this.a=e}function SQe(e){this.a=e}function _Qe(e){this.a=e}function AQe(e){this.a=e}function LQe(e){this.a=e}function MQe(e){this.a=e}function DQe(e){this.a=e}function IQe(e){this.a=e}function OQe(e){this.a=e}function NQe(e){this.a=e}function PQe(e){this.a=e}function BQe(e){this.a=e}function FQe(e){this.a=e}function RQe(e){this.a=e}function jQe(e){this.a=e}function $Qe(e){this.a=e}function Wie(e){this.a=e}function Rwe(e){this.a=e}function Ki(e){this.b=e}function zQe(e){this.a=e}function qQe(e){this.a=e}function HQe(e){this.a=e}function UQe(e){this.a=e}function VQe(e){this.a=e}function GQe(e){this.a=e}function KQe(e){this.a=e}function WQe(e){this.b=e}function YQe(e){this.a=e}function tO(e){this.a=e}function XQe(e){this.a=e}function QQe(e){this.a=e}function jwe(e){this.c=e}function zz(e){this.e=e}function qz(e){this.a=e}function Hz(e){this.a=e}function Yie(e){this.a=e}function JQe(e){this.d=e}function ZQe(e){this.a=e}function $we(e){this.a=e}function zwe(e){this.a=e}function rw(e){this.e=e}function Jcn(){this.a=0}function Nr(){Dl(this)}function mt(){uae(this)}function Xie(){Rat(this)}function eJe(){}function iw(){this.c=KPe}function tJe(e,t){e.b+=t}function Zcn(e,t){t.Wb(e)}function eun(e){return e.a}function tun(e){return e.a}function nun(e){return e.a}function run(e){return e.a}function iun(e){return e.a}function ue(e){return e.e}function sun(){return null}function aun(){return null}function oun(){S3e(),$In()}function cun(e){e.b.Of(e.e)}function nJe(e){e.b=new bse}function i_(e,t){e.b=t-e.b}function s_(e,t){e.a=t-e.a}function qn(e,t){e.push(t)}function rJe(e,t){e.sort(t)}function iJe(e,t){t.jd(e.a)}function uun(e,t){ga(t,e)}function lun(e,t,n){e.Yd(n,t)}function nO(e,t){e.e=t,t.b=e}function qwe(e){wd(),this.a=e}function sJe(e){wd(),this.a=e}function aJe(e){wd(),this.a=e}function Qie(e){Sw(),this.a=e}function oJe(e){Jk(),$0e.le(e)}function Hwe(){Hwe=U,new Nr}function Om(){Art.call(this)}function Uwe(){Art.call(this)}function Vwe(){Om.call(this)}function Jie(){Om.call(this)}function cJe(){Om.call(this)}function rO(){Om.call(this)}function gl(){Om.call(this)}function _8(){Om.call(this)}function Qr(){Om.call(this)}function Yh(){Om.call(this)}function uJe(){Om.call(this)}function Dc(){Om.call(this)}function lJe(){Om.call(this)}function hJe(){this.a=this}function Uz(){this.Bb|=256}function fJe(){this.b=new xnt}function uy(e,t){e.length=t}function Vz(e,t){wt(e.a,t)}function hun(e,t){b9e(e.c,t)}function fun(e,t){sa(e.b,t)}function dun(e,t){gV(e.a,t)}function gun(e,t){Qce(e.a,t)}function Tk(e,t){Bi(e.e,t)}function A8(e){MV(e.c,e.b)}function pun(e,t){e.kc().Nb(t)}function Gwe(e){this.a=o5n(e)}function Ys(){this.a=new Nr}function dJe(){this.a=new Nr}function Kwe(){this.a=new Net}function Gz(){this.a=new mt}function Zie(){this.a=new mt}function Wwe(){this.a=new mt}function _f(){this.a=new qp}function Nm(){this.a=new llt}function Ywe(){this.a=new Em}function Xwe(){this.a=new nct}function Qwe(){this.a=new git}function gJe(){this.a=new mt}function pJe(){this.a=new mt}function bJe(){this.a=new mt}function Jwe(){this.a=new mt}function mJe(){this.d=new mt}function vJe(){this.a=new kct}function wJe(){this.a=new Ys}function yJe(){this.a=new Nr}function xJe(){this.b=new Nr}function kJe(){this.b=new mt}function Zwe(){this.e=new mt}function TJe(){this.a=new oie}function EJe(){this.d=new mt}function CJe(){_ot.call(this)}function SJe(){_ot.call(this)}function _Je(){mt.call(this)}function e3e(){Vwe.call(this)}function t3e(){Gz.call(this)}function AJe(){Qq.call(this)}function LJe(){Jwe.call(this)}function a_(){eJe.call(this)}function ese(){a_.call(this)}function L8(){eJe.call(this)}function n3e(){L8.call(this)}function MJe(){a3e.call(this)}function DJe(){a3e.call(this)}function IJe(){a3e.call(this)}function OJe(){o3e.call(this)}function o_(){cre.call(this)}function r3e(){cre.call(this)}function pl(){os.call(this)}function NJe(){YJe.call(this)}function PJe(){YJe.call(this)}function BJe(){Nr.call(this)}function FJe(){Nr.call(this)}function RJe(){Nr.call(this)}function tse(){Pft.call(this)}function jJe(){Ys.call(this)}function $Je(){Uz.call(this)}function nse(){$ye.call(this)}function i3e(){Nr.call(this)}function rse(){$ye.call(this)}function ise(){Nr.call(this)}function zJe(){Nr.call(this)}function s3e(){w5.call(this)}function qJe(){s3e.call(this)}function HJe(){w5.call(this)}function UJe(){sz.call(this)}function a3e(){this.a=new Ys}function VJe(){this.a=new Nr}function GJe(){this.a=new mt}function o3e(){this.a=new Nr}function M8(){this.a=new os}function KJe(){this.j=new mt}function WJe(){this.a=new GZe}function YJe(){this.a=new hre}function c3e(){this.a=new hs}function c_(){c_=U,I0e=new _}function sse(){sse=U,O0e=new QJe}function ase(){ase=U,N0e=new XJe}function XJe(){mk.call(this,"")}function QJe(){mk.call(this,"")}function JJe(e){ift.call(this,e)}function ZJe(e){ift.call(this,e)}function u3e(e){Cz.call(this,e)}function l3e(e){ket.call(this,e)}function bun(e){ket.call(this,e)}function mun(e){l3e.call(this,e)}function vun(e){l3e.call(this,e)}function wun(e){l3e.call(this,e)}function eZe(e){Roe.call(this,e)}function tZe(e){Roe.call(this,e)}function nZe(e){Bit.call(this,e)}function rZe(e){O3e.call(this,e)}function u_(e){rq.call(this,e)}function h3e(e){rq.call(this,e)}function iZe(e){rq.call(this,e)}function f3e(e){z9n.call(this,e)}function d3e(e){f3e.call(this,e)}function Ic(e){rat.call(this,e)}function sZe(e){Ic.call(this,e)}function D8(){xk.call(this,{})}function aZe(){aZe=U,H6t=new G}function Kz(){Kz=U,F0e=new irt}function oZe(){oZe=U,u_e=new E}function g3e(){g3e=U,l_e=new ae}function Wz(){Wz=U,PL=new de}function ose(e){Pk(),this.a=e}function cse(e){z7e(),this.a=e}function sw(e){Gae(),this.f=e}function use(e){Gae(),this.f=e}function cZe(e){Uit(),this.a=e}function uZe(e){e.b=null,e.c=0}function yun(e,t){e.e=t,Ubt(e,t)}function xun(e,t){e.a=t,Akn(e)}function lse(e,t,n){e.a[t.g]=n}function kun(e,t,n){H8n(n,e,t)}function Tun(e,t){v0n(t.i,e.n)}function lZe(e,t){qyn(e).Cd(t)}function Eun(e,t){e.a.ec().Mc(t)}function hZe(e,t){return e.g-t.g}function Cun(e,t){return e*e/t}function Ft(e){return tr(e),e}function ze(e){return tr(e),e}function iO(e){return tr(e),e}function Sun(e){return new yk(e)}function _un(e){return new Ty(e)}function p3e(e){return tr(e),e}function Aun(e){return tr(e),e}function Yz(e){Ic.call(this,e)}function rc(e){Ic.call(this,e)}function fZe(e){Ic.call(this,e)}function hse(e){rat.call(this,e)}function Ek(e){Ic.call(this,e)}function Wn(e){Ic.call(this,e)}function ic(e){Ic.call(this,e)}function dZe(e){Ic.call(this,e)}function I8(e){Ic.call(this,e)}function Jp(e){Ic.call(this,e)}function Zp(e){Ic.call(this,e)}function O8(e){Ic.call(this,e)}function dd(e){Ic.call(this,e)}function fse(e){Ic.call(this,e)}function ri(e){Ic.call(this,e)}function Ll(e){tr(e),this.a=e}function b3e(e){return Zm(e),e}function l_(e){A5e(e,e.length)}function h_(e){return e.b==e.c}function ly(e){return!!e&&e.b}function Lun(e){return!!e&&e.k}function Mun(e){return!!e&&e.j}function Dun(e,t,n){e.c.Ef(t,n)}function gZe(e,t){e.be(t),t.ae(e)}function N8(e){wd(),this.a=Xr(e)}function dse(){this.a=Zr(Xr(To))}function pZe(){throw ue(new Qr)}function Iun(){throw ue(new Qr)}function m3e(){throw ue(new Qr)}function bZe(){throw ue(new Qr)}function Oun(){throw ue(new Qr)}function Nun(){throw ue(new Qr)}function Xz(){Xz=U,Jk()}function e2(){Or.call(this,"")}function f_(){Or.call(this,"")}function lb(){Or.call(this,"")}function A5(){Or.call(this,"")}function v3e(e){rc.call(this,e)}function w3e(e){rc.call(this,e)}function gd(e){Wn.call(this,e)}function Ck(e){ja.call(this,e)}function mZe(e){Ck.call(this,e)}function gse(e){Gq.call(this,e)}function pse(e){Jye.call(this,e,0)}function bse(){l6e.call(this,12,3)}function le(e,t){return Xot(e,t)}function Qz(e,t){return Zoe(e,t)}function Pun(e,t){return e.a-t.a}function Bun(e,t){return e.a-t.a}function Fun(e,t){return e.a-t.a}function Run(e,t){return t in e.a}function vZe(e){return e.a?e.b:0}function jun(e){return e.a?e.b:0}function $un(e,t,n){t.Cd(e.a[n])}function zun(e,t,n){t.Pe(e.a[n])}function qun(e,t){e.b=new xo(t)}function Hun(e,t){return e.b=t,e}function wZe(e,t){return e.c=t,e}function yZe(e,t){return e.f=t,e}function Uun(e,t){return e.g=t,e}function y3e(e,t){return e.a=t,e}function x3e(e,t){return e.f=t,e}function Vun(e,t){return e.k=t,e}function k3e(e,t){return e.a=t,e}function Gun(e,t){return e.e=t,e}function T3e(e,t){return e.e=t,e}function Kun(e,t){return e.f=t,e}function Wun(e,t){e.b=!0,e.d=t}function Yun(e,t){return e.b-t.b}function Xun(e,t){return e.g-t.g}function Qun(e,t){return e?0:t-1}function xZe(e,t){return e?0:t-1}function Jun(e,t){return e?t-1:0}function Zun(e,t){return e.s-t.s}function eln(e,t){return t.rg(e)}function aw(e,t){return e.b=t,e}function Jz(e,t){return e.a=t,e}function ow(e,t){return e.c=t,e}function cw(e,t){return e.d=t,e}function uw(e,t){return e.e=t,e}function E3e(e,t){return e.f=t,e}function d_(e,t){return e.a=t,e}function Sk(e,t){return e.b=t,e}function _k(e,t){return e.c=t,e}function Jt(e,t){return e.c=t,e}function yn(e,t){return e.b=t,e}function Zt(e,t){return e.d=t,e}function en(e,t){return e.e=t,e}function tln(e,t){return e.f=t,e}function tn(e,t){return e.g=t,e}function nn(e,t){return e.a=t,e}function rn(e,t){return e.i=t,e}function sn(e,t){return e.j=t,e}function nln(e,t){Nb(),Nc(t,e)}function rln(e,t,n){wgn(e.a,t,n)}function Zz(e){_ae.call(this,e)}function kZe(e){k5n.call(this,e)}function TZe(e){iot.call(this,e)}function C3e(e){iot.call(this,e)}function hb(e){Bw.call(this,e)}function EZe(e){boe.call(this,e)}function CZe(e){boe.call(this,e)}function SZe(){Nye.call(this,"")}function za(){this.a=0,this.b=0}function _Ze(){this.b=0,this.a=0}function AZe(e,t){e.b=0,Oy(e,t)}function LZe(e,t){return e.k=t,e}function iln(e,t){return e.j=t,e}function sln(e,t){e.c=t,e.b=!0}function MZe(){MZe=U,n7t=bxn()}function fb(){fb=U,Y_t=_8n()}function DZe(){DZe=U,La=jxn()}function S3e(){S3e=U,am=dT()}function Ak(){Ak=U,GPe=A8n()}function IZe(){IZe=U,OAt=L8n()}function _3e(){_3e=U,ru=Ckn()}function G0(e){return e.e&&e.e()}function OZe(e){return e.l|e.m<<22}function NZe(e,t){return e.c._b(t)}function PZe(e,t){return N1t(e.b,t)}function mse(e){return e?e.d:null}function aln(e){return e?e.g:null}function oln(e){return e?e.i:null}function Pm(e){return Xg(e),e.o}function L5(e,t){return e.a+=t,e}function vse(e,t){return e.a+=t,e}function t2(e,t){return e.a+=t,e}function lw(e,t){return e.a+=t,e}function A3e(e,t){for(;e.Bd(t););}function eq(e){this.a=new P8(e)}function BZe(){throw ue(new Qr)}function FZe(){throw ue(new Qr)}function RZe(){throw ue(new Qr)}function jZe(){throw ue(new Qr)}function $Ze(){throw ue(new Qr)}function zZe(){throw ue(new Qr)}function n2(e){this.a=new Yae(e)}function qZe(){this.a=new GA(zIe)}function HZe(){this.b=new GA(aIe)}function UZe(){this.a=new GA(hOe)}function VZe(){this.b=new GA(Lge)}function GZe(){this.b=new GA(Lge)}function tq(e){this.a=0,this.b=e}function L3e(e){kwt(),ZIn(this,e)}function Lk(e){return xb(e),e.a}function sO(e){return e.b!=e.d.c}function M3e(e,t){return e.d[t.p]}function KZe(e,t){return bSn(e,t)}function D3e(e,t,n){e.splice(t,n)}function M5(e,t){for(;e.Re(t););}function WZe(e){e.c?cmt(e):umt(e)}function YZe(){throw ue(new Qr)}function XZe(){throw ue(new Qr)}function QZe(){throw ue(new Qr)}function JZe(){throw ue(new Qr)}function ZZe(){throw ue(new Qr)}function eet(){throw ue(new Qr)}function tet(){throw ue(new Qr)}function net(){throw ue(new Qr)}function ret(){throw ue(new Qr)}function iet(){throw ue(new Qr)}function cln(){throw ue(new Dc)}function uln(){throw ue(new Dc)}function aO(e){this.a=new set(e)}function set(e){d3n(this,e,V9n())}function oO(e){return!e||Fat(e)}function cO(e){return nd[e]!=-1}function lln(){dK!=0&&(dK=0),gK=-1}function aet(){D0e==null&&(D0e=[])}function uO(e,t){U5.call(this,e,t)}function Mk(e,t){uO.call(this,e,t)}function oet(e,t){this.a=e,this.b=t}function cet(e,t){this.a=e,this.b=t}function uet(e,t){this.a=e,this.b=t}function het(e,t){this.a=e,this.b=t}function fet(e,t){this.a=e,this.b=t}function det(e,t){this.a=e,this.b=t}function get(e,t){this.a=e,this.b=t}function Dk(e,t){this.e=e,this.d=t}function I3e(e,t){this.b=e,this.c=t}function pet(e,t){this.b=e,this.a=t}function bet(e,t){this.b=e,this.a=t}function met(e,t){this.b=e,this.a=t}function vet(e,t){this.b=e,this.a=t}function wet(e,t){this.a=e,this.b=t}function wse(e,t){this.a=e,this.b=t}function yet(e,t){this.a=e,this.f=t}function hw(e,t){this.g=e,this.i=t}function Vr(e,t){this.f=e,this.g=t}function xet(e,t){this.b=e,this.c=t}function ket(e){qye(e.dc()),this.c=e}function hln(e,t){this.a=e,this.b=t}function Tet(e,t){this.a=e,this.b=t}function Eet(e){this.a=l(Xr(e),15)}function O3e(e){this.a=l(Xr(e),15)}function Cet(e){this.a=l(Xr(e),85)}function nq(e){this.b=l(Xr(e),85)}function rq(e){this.b=l(Xr(e),51)}function iq(){this.q=new b.Date}function yse(e,t){this.a=e,this.b=t}function _et(e,t){return Hu(e.b,t)}function lO(e,t){return e.b.Hc(t)}function Aet(e,t){return e.b.Ic(t)}function Let(e,t){return e.b.Qc(t)}function Met(e,t){return e.b.Hc(t)}function Det(e,t){return e.c.uc(t)}function Iet(e,t){return Fi(e.c,t)}function K0(e,t){return e.a._b(t)}function Oet(e,t){return e>t&&t0}function Sse(e,t){return su(e,t)<0}function Yet(e,t){return qae(e.a,t)}function Mln(e,t){Qot.call(this,e,t)}function $3e(e){ooe(),Bit.call(this,e)}function z3e(e,t){Ust(e,e.length,t)}function gO(e,t){vat(e,e.length,t)}function x_(e,t){return e.a.get(t)}function Xet(e,t){return Hu(e.e,t)}function q3e(e){return tr(e),!1}function H3e(e){this.a=l(Xr(e),229)}function dq(e){kn.call(this,e,21)}function gq(e,t){Vr.call(this,e,t)}function _se(e,t){Vr.call(this,e,t)}function Qet(e,t){this.b=e,this.a=t}function pq(e,t){this.d=e,this.e=t}function Jet(e,t){this.a=e,this.b=t}function Zet(e,t){this.a=e,this.b=t}function ett(e,t){this.a=e,this.b=t}function ttt(e,t){this.a=e,this.b=t}function F8(e,t){this.a=e,this.b=t}function ntt(e,t){this.b=e,this.a=t}function U3e(e,t){this.b=e,this.a=t}function V3e(e,t){Vr.call(this,e,t)}function G3e(e,t){Vr.call(this,e,t)}function D5(e,t){Vr.call(this,e,t)}function Ase(e,t){Vr.call(this,e,t)}function Lse(e,t){Vr.call(this,e,t)}function Mse(e,t){Vr.call(this,e,t)}function bq(e,t){Vr.call(this,e,t)}function K3e(e,t){this.b=e,this.a=t}function mq(e,t){Vr.call(this,e,t)}function W3e(e,t){this.b=e,this.a=t}function vq(e,t){Vr.call(this,e,t)}function rtt(e,t){this.b=e,this.a=t}function Y3e(e,t){Vr.call(this,e,t)}function Dse(e,t){Vr.call(this,e,t)}function pO(e,t){Vr.call(this,e,t)}function k_(e,t,n){e.splice(t,0,n)}function Dln(e,t,n){e.Mb(n)&&t.Cd(n)}function Iln(e,t,n){t.Pe(e.a.Ye(n))}function Oln(e,t,n){t.Dd(e.a.Ze(n))}function Nln(e,t,n){t.Cd(e.a.Kb(n))}function Pln(e,t){return ml(e.c,t)}function Bln(e,t){return ml(e.e,t)}function wq(e,t){Vr.call(this,e,t)}function yq(e,t){Vr.call(this,e,t)}function T_(e,t){Vr.call(this,e,t)}function X3e(e,t){Vr.call(this,e,t)}function Xs(e,t){Vr.call(this,e,t)}function xq(e,t){Vr.call(this,e,t)}function itt(e,t){this.a=e,this.b=t}function stt(e,t){this.a=e,this.b=t}function att(e,t){this.a=e,this.b=t}function ott(e,t){this.a=e,this.b=t}function ctt(e,t){this.a=e,this.b=t}function utt(e,t){this.a=e,this.b=t}function ltt(e,t){this.b=e,this.a=t}function htt(e,t){this.b=e,this.a=t}function Q3e(e,t){this.b=e,this.a=t}function Nk(e,t){this.c=e,this.d=t}function ftt(e,t){this.e=e,this.d=t}function dtt(e,t){this.a=e,this.b=t}function gtt(e,t){this.a=e,this.b=t}function ptt(e,t){this.a=e,this.b=t}function btt(e,t){this.b=e,this.a=t}function mtt(e,t){this.b=t,this.c=e}function kq(e,t){Vr.call(this,e,t)}function bO(e,t){Vr.call(this,e,t)}function Ise(e,t){Vr.call(this,e,t)}function J3e(e,t){Vr.call(this,e,t)}function E_(e,t){Vr.call(this,e,t)}function Ose(e,t){Vr.call(this,e,t)}function Nse(e,t){Vr.call(this,e,t)}function mO(e,t){Vr.call(this,e,t)}function Z3e(e,t){Vr.call(this,e,t)}function Pse(e,t){Vr.call(this,e,t)}function C_(e,t){Vr.call(this,e,t)}function eye(e,t){Vr.call(this,e,t)}function S_(e,t){Vr.call(this,e,t)}function __(e,t){Vr.call(this,e,t)}function fy(e,t){Vr.call(this,e,t)}function Bse(e,t){Vr.call(this,e,t)}function Fse(e,t){Vr.call(this,e,t)}function tye(e,t){Vr.call(this,e,t)}function vO(e,t){Vr.call(this,e,t)}function I5(e,t){Vr.call(this,e,t)}function Rse(e,t){Vr.call(this,e,t)}function Tq(e,t){Vr.call(this,e,t)}function wO(e,t){Vr.call(this,e,t)}function dy(e,t){Vr.call(this,e,t)}function Eq(e,t){Vr.call(this,e,t)}function nye(e,t){Vr.call(this,e,t)}function jse(e,t){Vr.call(this,e,t)}function $se(e,t){Vr.call(this,e,t)}function zse(e,t){Vr.call(this,e,t)}function qse(e,t){Vr.call(this,e,t)}function Hse(e,t){Vr.call(this,e,t)}function Use(e,t){Vr.call(this,e,t)}function Vse(e,t){Vr.call(this,e,t)}function vtt(e,t){this.b=e,this.a=t}function rye(e,t){Vr.call(this,e,t)}function wtt(e,t){this.a=e,this.b=t}function ytt(e,t){this.a=e,this.b=t}function xtt(e,t){this.a=e,this.b=t}function iye(e,t){Vr.call(this,e,t)}function sye(e,t){Vr.call(this,e,t)}function ktt(e,t){this.a=e,this.b=t}function Fln(e,t){return zk(),t!=e}function yO(e){return br(e.a),e.b}function Gse(e){return UTn(e,e.c),e}function Ttt(){return MZe(),new n7t}function Ett(){nH(),this.a=new k4e}function Ctt(){jV(),this.a=new Ys}function Stt(){Soe(),this.b=new Ys}function _tt(e,t){this.b=e,this.d=t}function Att(e,t){this.a=e,this.b=t}function Ltt(e,t){this.a=e,this.b=t}function Mtt(e,t){this.a=e,this.b=t}function Dtt(e,t){this.b=e,this.a=t}function aye(e,t){Vr.call(this,e,t)}function oye(e,t){Vr.call(this,e,t)}function Cq(e,t){Vr.call(this,e,t)}function gw(e,t){Vr.call(this,e,t)}function Kse(e,t){Vr.call(this,e,t)}function Sq(e,t){Vr.call(this,e,t)}function cye(e,t){Vr.call(this,e,t)}function uye(e,t){Vr.call(this,e,t)}function xO(e,t){Vr.call(this,e,t)}function lye(e,t){Vr.call(this,e,t)}function Wse(e,t){Vr.call(this,e,t)}function _q(e,t){Vr.call(this,e,t)}function Yse(e,t){Vr.call(this,e,t)}function Xse(e,t){Vr.call(this,e,t)}function Qse(e,t){Vr.call(this,e,t)}function Jse(e,t){Vr.call(this,e,t)}function hye(e,t){Vr.call(this,e,t)}function Zse(e,t){Vr.call(this,e,t)}function fye(e,t){Vr.call(this,e,t)}function kO(e,t){Vr.call(this,e,t)}function eae(e,t){Vr.call(this,e,t)}function dye(e,t){Vr.call(this,e,t)}function TO(e,t){Vr.call(this,e,t)}function gye(e,t){Vr.call(this,e,t)}function Itt(e,t){this.b=e,this.a=t}function Ott(e,t){this.b=e,this.a=t}function Ntt(e,t){this.b=e,this.a=t}function Ptt(e,t){this.b=e,this.a=t}function pye(e,t){this.a=e,this.b=t}function Btt(e,t){this.a=e,this.b=t}function Ftt(e,t){this.a=e,this.b=t}function lt(e,t){this.a=e,this.b=t}function A_(e,t){Vr.call(this,e,t)}function EO(e,t){Vr.call(this,e,t)}function R8(e,t){Vr.call(this,e,t)}function L_(e,t){Vr.call(this,e,t)}function CO(e,t){Vr.call(this,e,t)}function tae(e,t){Vr.call(this,e,t)}function Aq(e,t){Vr.call(this,e,t)}function M_(e,t){Vr.call(this,e,t)}function nae(e,t){Vr.call(this,e,t)}function Lq(e,t){Vr.call(this,e,t)}function O5(e,t){Vr.call(this,e,t)}function SO(e,t){Vr.call(this,e,t)}function D_(e,t){Vr.call(this,e,t)}function I_(e,t){Vr.call(this,e,t)}function _O(e,t){Vr.call(this,e,t)}function Mq(e,t){Vr.call(this,e,t)}function N5(e,t){Vr.call(this,e,t)}function rae(e,t){Vr.call(this,e,t)}function Rtt(e,t){Vr.call(this,e,t)}function Dq(e,t){Vr.call(this,e,t)}function jtt(e,t){this.a=e,this.b=t}function $tt(e,t){this.a=e,this.b=t}function ztt(e,t){this.a=e,this.b=t}function qtt(e,t){this.a=e,this.b=t}function Htt(e,t){this.a=e,this.b=t}function Utt(e,t){this.a=e,this.b=t}function fa(e,t){this.a=e,this.b=t}function Vtt(e,t){this.a=e,this.b=t}function Gtt(e,t){this.a=e,this.b=t}function Ktt(e,t){this.a=e,this.b=t}function Wtt(e,t){this.a=e,this.b=t}function Ytt(e,t){this.a=e,this.b=t}function Xtt(e,t){this.a=e,this.b=t}function Qtt(e,t){this.b=e,this.a=t}function Jtt(e,t){this.b=e,this.a=t}function Ztt(e,t){this.b=e,this.a=t}function ent(e,t){this.b=e,this.a=t}function tnt(e,t){this.a=e,this.b=t}function nnt(e,t){this.a=e,this.b=t}function Iq(e,t){Vr.call(this,e,t)}function rnt(e,t){this.a=e,this.b=t}function int(e,t){this.a=e,this.b=t}function j8(e,t){Vr.call(this,e,t)}function snt(e,t){this.f=e,this.c=t}function bye(e,t){return ml(e.g,t)}function Rln(e,t){return ml(t.b,e)}function ant(e,t){return oue(e.a,t)}function jln(e,t){return-e.b.af(t)}function $ln(e,t){e&&Ti(vF,e,t)}function mye(e,t){e.i=null,AU(e,t)}function zln(e,t,n){Qgt(t,Zue(e,n))}function qln(e,t,n){Qgt(t,Zue(e,n))}function Hln(e,t){mCn(e.a,l(t,58))}function ont(e,t){dwn(e.a,l(t,12))}function Oq(e,t){this.a=e,this.b=t}function cnt(e,t){this.a=e,this.b=t}function unt(e,t){this.a=e,this.b=t}function lnt(e,t){this.a=e,this.b=t}function hnt(e,t){this.a=e,this.b=t}function fnt(e,t){this.d=e,this.b=t}function dnt(e,t){this.e=e,this.a=t}function AO(e,t){this.b=e,this.c=t}function vye(e,t){this.i=e,this.g=t}function wye(e,t){this.d=e,this.e=t}function Uln(e,t){Awn(new ar(e),t)}function Nq(e){return VN(e.c,e.b)}function dc(e){return e?e.md():null}function qe(e){return e??null}function Da(e){return typeof e===Gle}function gy(e){return typeof e===Sx}function py(e){return typeof e===pTe}function pw(e,t){return su(e,t)==0}function Pq(e,t){return su(e,t)>=0}function O_(e,t){return su(e,t)!=0}function Bq(e,t){return V3n(e.Kc(),t)}function pb(e,t){return e.Rd().Xb(t)}function gnt(e){return Wl(e),e.d.gc()}function Fq(e){return V_(e==null),e}function N_(e,t){return e.a+=""+t,e}function Jo(e,t){return e.a+=""+t,e}function P_(e,t){return e.a+=""+t,e}function mu(e,t){return e.a+=""+t,e}function li(e,t){return e.a+=""+t,e}function yye(e,t){return e.a+=""+t,e}function Vln(e){return""+(tr(e),e)}function pnt(e){Dl(this),mA(this,e)}function bnt(){u6e(),p5e.call(this)}function mnt(e,t){y5e.call(this,e,t)}function vnt(e,t){y5e.call(this,e,t)}function Rq(e,t){y5e.call(this,e,t)}function yo(e,t){_s(e,t,e.c.b,e.c)}function P5(e,t){_s(e,t,e.a,e.a.a)}function xye(e){return Sn(e,0),null}function wnt(){this.b=0,this.a=!1}function ynt(){this.b=0,this.a=!1}function xnt(){this.b=new P8(Dy(12))}function knt(){knt=U,X7t=Kr(gue())}function Tnt(){Tnt=U,vxt=Kr(Obt())}function Ent(){Ent=U,zEt=Kr(f0t())}function kye(){kye=U,Hwe(),h_e=new Nr}function W0(e){return e.a=0,e.b=0,e}function Cnt(e,t){return e.a=t.g+1,e}function iae(e,t){yy.call(this,e,t)}function mn(e,t){ws.call(this,e,t)}function B5(e,t){vye.call(this,e,t)}function Snt(e,t){IO.call(this,e,t)}function sae(e,t){wT.call(this,e,t)}function yi(e,t){hq(),Ti(LY,e,t)}function _nt(e,t){e.q.setTime(Vm(t))}function Gln(e){b.clearTimeout(e)}function Kln(e){return Xr(e),new B_(e)}function Ant(e,t){return qe(e)===qe(t)}function Lnt(e,t){return e.a.a.a.cc(t)}function aae(e,t){return ef(e.a,0,t)}function Tye(e){return Xgn(l(e,74))}function $8(e){return da((tr(e),e))}function Wln(e){return da((tr(e),e))}function Mnt(e){return qu(e.l,e.m,e.h)}function Eye(e,t){return iu(e.a,t.a)}function Yln(e,t){return bat(e.a,t.a)}function Xln(e,t){return Xi(e.a,t.a)}function pd(e,t){return e.indexOf(t)}function Qln(e,t){return e.j[t.p]==2}function bw(e,t){return e==t?0:e?1:-1}function jq(e){return e<10?"0"+e:""+e}function xc(e){return typeof e===pTe}function Jln(e){return e==f3||e==l4}function Zln(e){return e==f3||e==u4}function Dnt(e,t){return iu(e.g,t.g)}function Cye(e){return bc(e.b.b,e,0)}function Int(){fH.call(this,0,0,0,0)}function bd(){vr.call(this,new u2)}function Sye(e,t){iT(e,0,e.length,t)}function ehn(e,t){return wt(e.a,t),t}function thn(e,t){return c0(),t.a+=e}function nhn(e,t){return c0(),t.a+=e}function rhn(e,t){return c0(),t.c+=e}function ihn(e,t){return wt(e.c,t),e}function _ye(e,t){return Dh(e.a,t),e}function Ont(e){this.a=Ttt(),this.b=e}function Nnt(e){this.a=Ttt(),this.b=e}function xo(e){this.a=e.a,this.b=e.b}function B_(e){this.a=e,KS.call(this)}function Pnt(e){this.a=e,KS.call(this)}function z8(){Zh.call(this,0,0,0,0)}function $q(e){return Dh(new Js,e)}function Bnt(e){return MH(l(e,123))}function ch(e){return e.vh()&&e.wh()}function F5(e){return e!=Z1&&e!=rm}function Yg(e){return e==hc||e==yc}function R5(e){return e==vf||e==Q1}function Fnt(e){return e==W6||e==K6}function shn(e,t){return iu(e.g,t.g)}function Rnt(e,t){return new wT(t,e)}function ahn(e,t){return new wT(t,e)}function Aye(e){return _dn(e.b.Kc(),e.a)}function oae(e,t){_T(e,t),fT(e,e.D)}function cae(e,t,n){yU(e,t),wU(e,n)}function j5(e,t,n){Rw(e,t),Fw(e,n)}function Xh(e,t,n){Vu(e,t),Gu(e,n)}function LO(e,t,n){cT(e,t),lT(e,n)}function MO(e,t,n){uT(e,t),hT(e,n)}function jnt(e,t,n){l4e.call(this,e,t,n)}function Lye(e){snt.call(this,e,!0)}function $nt(){gq.call(this,"Tail",3)}function znt(){gq.call(this,"Head",1)}function bb(e){Cd(),z3n.call(this,e)}function mw(e){fH.call(this,e,e,e,e)}function uae(e){e.c=We(ka,jn,1,0,5,1)}function Mye(e){return e.b&&Ale(e),e.a}function Dye(e){return e.b&&Ale(e),e.c}function ohn(e,t){G1||(e.b=t)}function chn(e,t){return e[e.length]=t}function uhn(e,t){return e[e.length]=t}function lhn(e,t){return Iy(t,M1(e))}function hhn(e,t){return Iy(t,M1(e))}function fhn(e,t){return CU(soe(e.d),t)}function dhn(e,t){return CU(soe(e.g),t)}function ghn(e,t){return CU(soe(e.j),t)}function qa(e,t){ws.call(this,e.b,t)}function phn(e,t){zr(fu(e.a),cct(t))}function bhn(e,t){zr(Kl(e.a),uct(t))}function mhn(e,t,n){Xh(n,n.i+e,n.j+t)}function qnt(e,t,n){Ss(e.c[t.g],t.g,n)}function vhn(e,t,n){l(e.c,71).Gi(t,n)}function lae(e,t,n){return Ss(e,t,n),n}function Hnt(e){Uu(e.Sf(),new Uie(e))}function $5(e){return e!=null?ts(e):0}function whn(e){return e==null?0:ts(e)}function F_(e){Ii(),rw.call(this,e)}function Unt(e){this.a=e,V4e.call(this,e)}function A1(){A1=U,b.Math.log(2)}function Qh(){Qh=U,Lg=(Ket(),tAt)}function Vnt(){Vnt=U,Ude=new MA(ipe)}function Jr(){Jr=U,new Gnt,new mt}function Gnt(){new Nr,new Nr,new Nr}function yhn(){throw ue(new Jp(_6t))}function xhn(){throw ue(new Jp(_6t))}function khn(){throw ue(new Jp(A6t))}function Thn(){throw ue(new Jp(A6t))}function hae(e){this.a=e,nq.call(this,e)}function fae(e){this.a=e,nq.call(this,e)}function Knt(e,t){Sw(),this.a=e,this.b=t}function Ehn(e,t){Xr(t),G5(e).Jc(new ie)}function Gs(e,t){Hae(e.c,e.c.length,t)}function Oc(e){return e.at?1:0}function Oye(e,t){return su(e,t)>0?e:t}function qu(e,t,n){return{l:e,m:t,h:n}}function Chn(e,t){e.a!=null&&ont(t,e.a)}function Shn(e){ho(e,null),Na(e,null)}function _hn(e,t,n){return Ti(e.g,n,t)}function z5(e,t,n){return nxe(t,n,e.c)}function Ahn(e,t,n){return Ti(e.k,n,t)}function Lhn(e,t,n){return gDn(e,t,n),n}function Mhn(e,t){return Sh(),t.n.b+=e}function Ynt(e){n6e.call(this),this.b=e}function Nye(e){x4e.call(this),this.a=e}function Xnt(){gq.call(this,"Range",2)}function zq(e){this.b=e,this.a=new mt}function Qnt(e){this.b=new Bo,this.a=e}function Jnt(e){e.a=new Tt,e.c=new Tt}function Znt(e){e.a=new Nr,e.d=new Nr}function ert(e){_oe(e,null),Aoe(e,null)}function trt(e,t){return bDn(e.a,t,null)}function Dhn(e,t){return Ti(e.a,t.a,t)}function Xa(e){return new lt(e.a,e.b)}function Pye(e){return new lt(e.c,e.d)}function Ihn(e){return new lt(e.c,e.d)}function R_(e,t){return AMn(e.c,e.b,t)}function De(e,t){return e!=null&&vue(e,t)}function dae(e,t){return xyn(e.Kc(),t)!=-1}function qq(e){return e.Ob()?e.Pb():null}function Ohn(e){this.b=(Cn(),new er(e))}function Bye(e){this.a=e,Nr.call(this)}function nrt(){IO.call(this,null,null)}function rrt(){Yq.call(this,null,null)}function irt(){Vr.call(this,"INSTANCE",0)}function srt(){Pxe(),this.a=new GA(IAe)}function art(e){return If(e,0,e.length)}function Nhn(e,t){return new Ert(e.Kc(),t)}function Fye(e,t){return e.a.Bc(t)!=null}function ort(e,t){$r(e),e.Gc(l(t,15))}function Phn(e,t,n){e.c.bd(t,l(n,136))}function Bhn(e,t,n){e.c.Ui(t,l(n,136))}function crt(e,t){e.c&&(i5e(t),Not(t))}function Fhn(e,t){e.q.setHours(t),QA(e,t)}function Rhn(e,t){yw(t,e.a.a.a,e.a.a.b)}function jhn(e,t,n,r){Ss(e.a[t.g],n.g,r)}function gae(e,t,n){return e.a[t.g][n.g]}function $hn(e,t){return e.e[t.c.p][t.p]}function zhn(e,t){return e.c[t.c.p][t.p]}function L1(e,t){return e.a[t.c.p][t.p]}function qhn(e,t){return e.j[t.p]=ZEn(t)}function pae(e,t){return e.a.Bc(t)!=null}function Hhn(e,t){return ze(Ge(t.a))<=e}function Uhn(e,t){return ze(Ge(t.a))>=e}function Vhn(e,t){return z6e(e.f,t.Pg())}function q8(e,t){return e.a*t.a+e.b*t.b}function Ghn(e,t){return e.a0?t/(e*e):t*100}function mfn(e,t){return e>0?t*t/e:t*t*100}function by(e,t){return l(B1(e.a,t),34)}function vfn(e,t){return Nb(),xn(e,t.e,t)}function wfn(e,t,n){return cq(),n.Mg(e,t)}function yfn(e){return sp(),e.e.a+e.f.a/2}function xfn(e,t,n){return sp(),n.e.a-e*t}function kfn(e){return sp(),e.e.b+e.f.b/2}function Tfn(e,t,n){return sp(),n.e.b-e*t}function Rrt(e){e.d=new Prt(e),e.e=new Nr}function jrt(){this.a=new Iw,this.b=new Iw}function $rt(e){this.c=e,this.a=1,this.b=1}function zrt(e){Ule(),nJe(this),this.Ff(e)}function Efn(e,t,n){aU(),e.pf(t)&&n.Cd(e)}function Cfn(e,t,n){return wt(t,J1t(e,n))}function yw(e,t,n){return e.a+=t,e.b+=n,e}function Sfn(e,t,n){return e.a*=t,e.b*=n,e}function t4e(e,t){return e.a=t.a,e.b=t.b,e}function Xq(e){return e.a=-e.a,e.b=-e.b,e}function q_(e,t,n){return e.a-=t,e.b-=n,e}function qrt(e){os.call(this),dA(this,e)}function Hrt(){Vr.call(this,"GROW_TREE",0)}function Urt(){Vr.call(this,"POLYOMINO",0)}function lh(e,t,n){yl.call(this,e,t,n,2)}function _fn(e,t,n){AA(fu(e.a),t,cct(n))}function Vrt(e,t){y_(),IO.call(this,e,t)}function n4e(e,t){r2(),Yq.call(this,e,t)}function Grt(e,t){r2(),n4e.call(this,e,t)}function Krt(e,t){r2(),Yq.call(this,e,t)}function Afn(e,t){return e.c.Fc(l(t,136))}function Lfn(e,t,n){AA(Kl(e.a),t,uct(n))}function Wrt(e){this.c=e,Vu(e,0),Gu(e,0)}function xae(e,t){Qh(),pH.call(this,e,t)}function Yrt(e,t){Qh(),xae.call(this,e,t)}function r4e(e,t){Qh(),xae.call(this,e,t)}function i4e(e,t){Qh(),pH.call(this,e,t)}function Xrt(e,t){Qh(),r4e.call(this,e,t)}function Qrt(e,t){Qh(),i4e.call(this,e,t)}function Jrt(e,t){Qh(),pH.call(this,e,t)}function Mfn(e,t,n){return t.zl(e.e,e.c,n)}function Dfn(e,t,n){return t.Al(e.e,e.c,n)}function s4e(e,t,n){return QV(vN(e,t),n)}function kae(e,t){return Lb(e.e,l(t,54))}function Ifn(e){return e==null?null:rIn(e)}function Ofn(e){return e==null?null:X9n(e)}function Nfn(e){return e==null?null:Tc(e)}function Pfn(e){return e==null?null:Tc(e)}function Pt(e){return V_(e==null||gy(e)),e}function Ge(e){return V_(e==null||py(e)),e}function Zr(e){return V_(e==null||Da(e)),e}function Xg(e){e.o==null&&AEn(e)}function a4e(e){if(!e)throw ue(new rO)}function Bfn(e){if(!e)throw ue(new Jie)}function br(e){if(!e)throw ue(new Dc)}function my(e){if(!e)throw ue(new gl)}function Zrt(e){if(!e)throw ue(new Yh)}function jk(){jk=U,yF=new NJe,new PJe}function V5(){V5=U,Q6=new Ki("root")}function o4e(){Pft.call(this),this.Bb|=Lo}function Ffn(e,t){this.d=e,Lr(this),this.b=t}function c4e(e,t){Yoe.call(this,e),this.a=t}function u4e(e,t){Yoe.call(this,e),this.a=t}function l4e(e,t,n){nU.call(this,e,t,n,null)}function eit(e,t,n){nU.call(this,e,t,n,null)}function PO(e,t){this.c=e,Dk.call(this,e,t)}function H_(e,t){this.a=e,PO.call(this,e,t)}function h4e(e){this.q=new b.Date(Vm(e))}function tit(e){return e>8?0:e+1}function nit(e,t){G1||wt(e.a,t)}function Rfn(e,t){return dO(),vT(t.d.i,e)}function jfn(e,t){return hx(),new Imt(t,e)}function $fn(e,t,n){return e.Ne(t,n)<=0?n:t}function zfn(e,t,n){return e.Ne(t,n)<=0?t:n}function qfn(e,t){return l(B1(e.b,t),143)}function Hfn(e,t){return l(B1(e.c,t),233)}function Tae(e){return l(Rt(e.a,e.b),294)}function rit(e){return new lt(e.c,e.d+e.a)}function iit(e){return tr(e),e?1231:1237}function sit(e){return Sh(),Fnt(l(e,203))}function vy(){vy=U,aAe=hn((gh(),Ov))}function Ufn(e,t){t.a?WTn(e,t):pae(e.a,t.b)}function BO(e,t,n){++e.j,e.tj(),Woe(e,t,n)}function ait(e,t,n){++e.j,e.qj(t,e.Zi(t,n))}function oit(e,t,n){var r;r=e.fd(t),r.Rb(n)}function f4e(e,t,n){return n=Nh(e,t,6,n),n}function d4e(e,t,n){return n=Nh(e,t,3,n),n}function g4e(e,t,n){return n=Nh(e,t,9,n),n}function vd(e,t){return ZO(t,RTe),e.f=t,e}function p4e(e,t){return(t&Ni)%e.d.length}function cit(e,t,n){return Wke(e.c,e.b,t,n)}function uit(e,t){this.c=e,Bw.call(this,t)}function lit(e,t){this.a=e,WQe.call(this,t)}function FO(e,t){this.a=e,WQe.call(this,t)}function ws(e,t){Ki.call(this,e),this.a=t}function b4e(e,t){jwe.call(this,e),this.a=t}function Eae(e,t){jwe.call(this,e),this.a=t}function Vfn(e){X8e.call(this,0,0),this.f=e}function hit(e,t,n){return e.a+=If(t,0,n),e}function RO(e){return!e.a&&(e.a=new pe),e.a}function m4e(e,t){var n;return n=e.e,e.e=t,n}function v4e(e,t){var n;return n=t,!!e.Fe(n)}function Gfn(e,t){return Hn(),e==t?0:e?1:-1}function wy(e,t){e.a.bd(e.b,t),++e.b,e.c=-1}function jO(e){e.b?jO(e.b):e.f.c.zc(e.e,e.d)}function fit(e){Dl(e.e),e.d.b=e.d,e.d.a=e.d}function Kfn(e,t,n){Bm(),Fie(e,t.Ve(e.a,n))}function w4e(e,t,n){return J8(e,l(t,22),n)}function o0(e,t){return Qz(new Array(t),e)}function Wfn(e){return Yr(vb(e,32))^Yr(e)}function Cae(e){return String.fromCharCode(e)}function Yfn(e){return e==null?null:e.message}function Xfn(e,t,n){return e.apply(t,n)}function Qfn(e,t){var n;n=e[Ehe],n.call(e,t)}function Jfn(e,t){var n;n=e[Ehe],n.call(e,t)}function Zfn(e,t){return dO(),!vT(t.d.i,e)}function y4e(e,t,n,r){fH.call(this,e,t,n,r)}function dit(){Qq.call(this),this.a=new za}function x4e(){this.n=new za,this.o=new za}function git(){this.b=new za,this.c=new mt}function pit(){this.a=new mt,this.b=new mt}function bit(){this.a=new Em,this.b=new fJe}function k4e(){this.b=new u2,this.a=new u2}function mit(){this.b=new Ys,this.a=new Ys}function vit(){this.b=new Nr,this.a=new Nr}function wit(){this.b=new HZe,this.a=new SS}function yit(){this.a=new cie,this.b=new qee}function xit(){this.a=new mt,this.d=new mt}function Qq(){this.n=new L8,this.i=new z8}function kit(e){this.a=(Mh(e,Jy),new Pu(e))}function Tit(e){this.a=(Mh(e,Jy),new Pu(e))}function e0n(e){return e<100?null:new hb(e)}function t0n(e,t){return e.n.a=(tr(t),t+10)}function n0n(e,t){return e.n.a=(tr(t),t+10)}function r0n(e,t){return t==e||zT(NV(t),e)}function Eit(e,t){return Ti(e.a,t,"")==null}function i0n(e,t){var n;return n=t.qi(e.a),n}function Pi(e,t){return e.a+=t.a,e.b+=t.b,e}function ya(e,t){return e.a-=t.a,e.b-=t.b,e}function s0n(e){return uy(e.j.c,0),e.a=-1,e}function T4e(e,t,n){return n=Nh(e,t,11,n),n}function a0n(e,t,n){n!=null&&SU(t,Lue(e,n))}function o0n(e,t,n){n!=null&&_U(t,Lue(e,n))}function V8(e,t,n,r){nt.call(this,e,t,n,r)}function E4e(e,t,n,r){nt.call(this,e,t,n,r)}function Cit(e,t,n,r){E4e.call(this,e,t,n,r)}function Sit(e,t,n,r){kH.call(this,e,t,n,r)}function Sae(e,t,n,r){kH.call(this,e,t,n,r)}function C4e(e,t,n,r){kH.call(this,e,t,n,r)}function _it(e,t,n,r){Sae.call(this,e,t,n,r)}function S4e(e,t,n,r){Sae.call(this,e,t,n,r)}function An(e,t,n,r){C4e.call(this,e,t,n,r)}function Ait(e,t,n,r){S4e.call(this,e,t,n,r)}function Lit(e,t,n,r){E5e.call(this,e,t,n,r)}function yy(e,t){rc.call(this,SL+e+gv+t)}function _4e(e,t){return e.jk().wi().ri(e,t)}function A4e(e,t){return e.jk().wi().ti(e,t)}function Mit(e,t){return tr(e),qe(e)===qe(t)}function wn(e,t){return tr(e),qe(e)===qe(t)}function c0n(e,t){return e.b.Bd(new Zet(e,t))}function u0n(e,t){return e.b.Bd(new ett(e,t))}function Dit(e,t){return e.b.Bd(new ttt(e,t))}function l0n(e,t){return e.e=l(e.d.Kb(t),159)}function L4e(e,t,n){return e.lastIndexOf(t,n)}function h0n(e,t,n){return Xi(e[t.a],e[n.a])}function f0n(e,t){return rt(t,(Nt(),IB),e)}function d0n(e,t){return iu(t.a.d.p,e.a.d.p)}function g0n(e,t){return iu(e.a.d.p,t.a.d.p)}function p0n(e,t){return Xi(e.c-e.s,t.c-t.s)}function b0n(e,t){return Xi(e.b.e.a,t.b.e.a)}function m0n(e,t){return Xi(e.c.e.a,t.c.e.a)}function Iit(e){return e.c?bc(e.c.a,e,0):-1}function G8(e){return e==Iv||e==_g||e==Au}function M4e(e,t){this.c=e,Zae.call(this,e,t)}function Oit(e,t,n){this.a=e,Jye.call(this,t,n)}function Nit(e){this.c=e,Rq.call(this,DP,0)}function Pit(e,t,n){this.c=t,this.b=n,this.a=e}function $O(e){zk(),this.d=e,this.a=new H5}function Bit(e){wd(),this.a=(Cn(),new Ck(e))}function v0n(e,t){Yg(e.f)?yEn(e,t):Qxn(e,t)}function Fit(e,t){Ddn.call(this,e,e.length,t)}function w0n(e,t){G1||t&&(e.d=t)}function Rit(e,t){return De(t,15)&&fmt(e.c,t)}function y0n(e,t,n){return l(e.c,71).Wk(t,n)}function Jq(e,t,n){return l(e.c,71).Xk(t,n)}function x0n(e,t,n){return Mfn(e,l(t,343),n)}function D4e(e,t,n){return Dfn(e,l(t,343),n)}function k0n(e,t,n){return spt(e,l(t,343),n)}function jit(e,t,n){return l9n(e,l(t,343),n)}function U_(e,t){return t==null?null:By(e.b,t)}function I4e(e){return py(e)?(tr(e),e):e.ue()}function Zq(e){return!isNaN(e)&&!isFinite(e)}function _ae(e){Jnt(this),Ch(this),Ga(this,e)}function Ml(e){uae(this),W4e(this.c,0,e.Pc())}function Jh(e,t,n){this.a=e,this.b=t,this.c=n}function $it(e,t,n){this.a=e,this.b=t,this.c=n}function zit(e,t,n){this.d=e,this.b=n,this.a=t}function qit(e){this.a=e,Wg(),tu(Date.now())}function Hit(e){fh(e.a),K6e(e.c,e.b),e.b=null}function Aae(){Aae=U,O_e=new Et,r7t=new Wt}function Uit(){Uit=U,aAt=We(ka,jn,1,0,5,1)}function Vit(){Vit=U,EAt=We(ka,jn,1,0,5,1)}function O4e(){O4e=U,CAt=We(ka,jn,1,0,5,1)}function wd(){wd=U,new qwe((Cn(),Cn(),Co))}function T0n(e){return sT(),Gr((Qlt(),a7t),e)}function E0n(e){return Nl(),Gr((zlt(),f7t),e)}function C0n(e){return aV(),Gr((Sut(),v7t),e)}function S0n(e){return dU(),Gr((_ut(),w7t),e)}function _0n(e){return qV(),Gr((S0t(),y7t),e)}function A0n(e){return e1(),Gr((jlt(),T7t),e)}function L0n(e){return Ol(),Gr((Rlt(),C7t),e)}function M0n(e){return al(),Gr(($lt(),_7t),e)}function D0n(e){return nG(),Gr((knt(),X7t),e)}function I0n(e){return qw(),Gr((Zlt(),J7t),e)}function O0n(e){return mx(),Gr((tht(),e8t),e)}function N0n(e){return PA(),Gr((eht(),r8t),e)}function P0n(e){return aq(),Gr((Jct(),i8t),e)}function B0n(e){return gU(),Gr((Aut(),x8t),e)}function F0n(e){return hA(),Gr((qlt(),K8t),e)}function R0n(e){return so(),Gr((Bht(),Q8t),e)}function j0n(e){return xT(),Gr((rht(),nxt),e)}function $0n(e){return tv(),Gr((nht(),cxt),e)}function N4e(e,t){if(!e)throw ue(new Wn(t))}function $k(e){if(!e)throw ue(new ic(bTe))}function Lae(e,t){if(e!=t)throw ue(new Yh)}function Git(e,t,n){this.a=e,this.b=t,this.c=n}function P4e(e,t,n){this.a=e,this.b=t,this.c=n}function Kit(e,t,n){this.a=e,this.b=t,this.c=n}function eH(e,t,n){this.b=e,this.a=t,this.c=n}function B4e(e,t,n){this.b=e,this.c=t,this.a=n}function F4e(e,t,n){this.a=e,this.b=t,this.c=n}function tH(e,t,n){this.e=t,this.b=e,this.d=n}function Wit(e,t,n){this.b=e,this.a=t,this.c=n}function z0n(e,t,n){return Bm(),e.a.Yd(t,n),t}function Mae(e){var t;return t=new Ul,t.e=e,t}function R4e(e){var t;return t=new mJe,t.b=e,t}function zO(){zO=U,IK=new LZ,OK=new yj}function nH(){nH=U,Txt=new $Z,kxt=new mS}function c0(){c0=U,Axt=new vee,Lxt=new wee}function q0n(e){return $w(),Gr((wlt(),jxt),e)}function H0n(e){return po(),Gr((Tnt(),vxt),e)}function U0n(e){return jU(),Gr((sht(),xxt),e)}function V0n(e){return R1(),Gr((iht(),Ixt),e)}function G0n(e){return zy(),Gr((Fht(),Nxt),e)}function K0n(e){return $V(),Gr((h0t(),$xt),e)}function W0n(e){return xx(),Gr((cft(),zxt),e)}function Y0n(e){return sU(),Gr((Put(),qxt),e)}function X0n(e){return gA(),Gr((mlt(),Hxt),e)}function Q0n(e){return kU(),Gr((vlt(),Uxt),e)}function J0n(e){return w2(),Gr((Rht(),Vxt),e)}function Z0n(e){return TN(),Gr((Dut(),Gxt),e)}function e1n(e){return HT(),Gr((hft(),Jxt),e)}function t1n(e){return Ho(),Gr((q0t(),Zxt),e)}function n1n(e){return yT(),Gr((xlt(),e9t),e)}function r1n(e){return ip(),Gr((klt(),n9t),e)}function i1n(e){return WH(),Gr((Mut(),r9t),e)}function s1n(e){return nP(),Gr((lft(),Qxt),e)}function a1n(e){return Jm(),Gr((ylt(),Wxt),e)}function o1n(e){return _V(),Gr((uft(),Yxt),e)}function c1n(e){return bN(),Gr((Iut(),Xxt),e)}function u1n(e){return lf(),Gr(($ht(),i9t),e)}function l1n(e){return E2(),Gr((T0t(),ATt),e)}function h1n(e){return EA(),Gr((Tlt(),LTt),e)}function f1n(e){return jy(),Gr((aht(),MTt),e)}function d1n(e){return NA(),Gr((jht(),DTt),e)}function g1n(e){return Nf(),Gr((H0t(),ITt),e)}function p1n(e){return Td(),Gr((oht(),OTt),e)}function b1n(e){return xN(),Gr((Out(),NTt),e)}function m1n(e){return qo(),Gr((Slt(),BTt),e)}function v1n(e){return BU(),Gr((Elt(),FTt),e)}function w1n(e){return xA(),Gr((Clt(),RTt),e)}function y1n(e){return AT(),Gr((_lt(),jTt),e)}function x1n(e){return xU(),Gr((Alt(),$Tt),e)}function k1n(e){return $U(),Gr((Llt(),zTt),e)}function T1n(e){return jw(),Gr((Flt(),rEt),e)}function E1n(e){return cA(),Gr((Nut(),cEt),e)}function C1n(e){return xd(),Gr((Rut(),pEt),e)}function S1n(e){return D1(),Gr((jut(),mEt),e)}function _1n(e){return Q0(),Gr(($ut(),IEt),e)}function A1n(e){return Ow(),Gr((zut(),jEt),e)}function L1n(e){return yx(),Gr((ght(),$Et),e)}function M1n(e){return YA(),Gr((Ent(),zEt),e)}function D1n(e){return kA(),Gr((Mlt(),qEt),e)}function I1n(e){return TA(),Gr((dht(),hCt),e)}function O1n(e){return VH(),Gr((But(),fCt),e)}function N1n(e){return LU(),Gr((Fut(),mCt),e)}function P1n(e){return TV(),Gr((zht(),wCt),e)}function B1n(e){return FN(),Gr((Dlt(),xCt),e)}function F1n(e){return oU(),Gr((qut(),yCt),e)}function R1n(e){return bV(),Gr((fht(),zCt),e)}function j1n(e){return PU(),Gr((Ilt(),qCt),e)}function $1n(e){return tV(),Gr((Olt(),HCt),e)}function z1n(e){return fV(),Gr((Nlt(),VCt),e)}function q1n(e){return YU(),Gr((Plt(),WCt),e)}function H1n(e){return ZH(),Gr((Hut(),pSt),e)}function U1n(e){return pT(),Gr((Lut(),mxt),e)}function V1n(e){return Jn(),Gr((fft(),fxt),e)}function G1n(e){return cU(),Gr((Blt(),bSt),e)}function K1n(e){return Sce(),Gr((Uut(),mSt),e)}function W1n(e){return VA(),Gr((qht(),wSt),e)}function Y1n(e){return uq(),Gr((aut(),xSt),e)}function X1n(e){return HN(),Gr((Ult(),ySt),e)}function Q1n(e){return lq(),Gr((out(),TSt),e)}function J1n(e){return hN(),Gr((Vut(),ESt),e)}function Z1n(e){return iP(),Gr((Hht(),CSt),e)}function edn(e){return m_(),Gr((cut(),zSt),e)}function tdn(e){return ON(),Gr((Gut(),qSt),e)}function ndn(e){return n1(),Gr((Vht(),WSt),e)}function rdn(e){return T2(),Gr((u0t(),XSt),e)}function idn(e){return lg(),Gr((dft(),QSt),e)}function sdn(e){return rv(),Gr((gft(),r_t),e)}function adn(e){return ea(),Gr((Uht(),k_t),e)}function odn(e){return F1(),Gr((Vlt(),T_t),e)}function cdn(e){return cp(),Gr((pht(),E_t),e)}function udn(e){return CV(),Gr((pft(),C_t),e)}function ldn(e){return op(),Gr((Hlt(),__t),e)}function hdn(e){return Ih(),Gr((bht(),L_t),e)}function fdn(e){return Vy(),Gr((C0t(),M_t),e)}function ddn(e){return r6(),Gr((Ght(),D_t),e)}function gdn(e){return Pa(),Gr((bft(),I_t),e)}function pdn(e){return Pl(),Gr((mft(),O_t),e)}function bdn(e){return _t(),Gr((Kht(),N_t),e)}function mdn(e){return gh(),Gr((mht(),j_t),e)}function vdn(e){return Xl(),Gr((E0t(),$_t),e)}function wdn(e){return gx(),Gr((Glt(),z_t),e)}function ydn(e,t){return tr(e),e+(tr(t),t)}function xdn(e){return Dae(),Gr((Kut(),q_t),e)}function kdn(e){return QU(),Gr((vht(),H_t),e)}function Tdn(e){return zU(),Gr((wht(),G_t),e)}function zk(){zk=U,iIe=(_t(),Zn),RW=sr}function Dae(){Dae=U,xPe=new Est,kPe=new uat}function Edn(e){return!e.e&&(e.e=new mt),e.e}function Iae(e,t){this.c=e,this.a=t,this.b=t-e}function Yit(e,t,n){this.a=e,this.b=t,this.c=n}function Oae(e,t,n){this.a=e,this.b=t,this.c=n}function j4e(e,t,n){this.a=e,this.b=t,this.c=n}function $4e(e,t,n){this.a=e,this.b=t,this.c=n}function Xit(e,t,n){this.a=e,this.b=t,this.c=n}function Qit(e,t,n){this.a=e,this.b=t,this.c=n}function s2(e,t,n){this.e=e,this.a=t,this.c=n}function Jit(e,t,n){Qh(),i6e.call(this,e,t,n)}function Nae(e,t,n){Qh(),z5e.call(this,e,t,n)}function z4e(e,t,n){Qh(),z5e.call(this,e,t,n)}function q4e(e,t,n){Qh(),z5e.call(this,e,t,n)}function Zit(e,t,n){Qh(),Nae.call(this,e,t,n)}function H4e(e,t,n){Qh(),Nae.call(this,e,t,n)}function est(e,t,n){Qh(),H4e.call(this,e,t,n)}function tst(e,t,n){Qh(),z4e.call(this,e,t,n)}function nst(e,t,n){Qh(),q4e.call(this,e,t,n)}function Pae(e){fH.call(this,e.d,e.c,e.a,e.b)}function U4e(e){fH.call(this,e.d,e.c,e.a,e.b)}function V4e(e){this.d=e,Lr(this),this.b=Tgn(e.d)}function Cdn(e){return VT(),Gr((l0t(),sAt),e)}function qO(e,t){return Xr(e),Xr(t),new cet(e,t)}function K8(e,t){return Xr(e),Xr(t),new pst(e,t)}function Sdn(e,t){return Xr(e),Xr(t),new bst(e,t)}function _dn(e,t){return Xr(e),Xr(t),new vet(e,t)}function Bae(e){return br(e.b!=0),sf(e,e.a.a)}function Adn(e){return br(e.b!=0),sf(e,e.c.b)}function Ldn(e){return!e.c&&(e.c=new Zd),e.c}function qk(e){var t;return t=new mt,ace(t,e),t}function Mdn(e){var t;return t=new Ys,ace(t,e),t}function rst(e){var t;return t=new Kwe,wce(t,e),t}function HO(e){var t;return t=new os,wce(t,e),t}function l(e,t){return V_(e==null||vue(e,t)),e}function Ddn(e,t,n){nat.call(this,t,n),this.a=e}function ist(e,t){this.c=e,this.b=t,this.a=!1}function sst(){this.a=";,;",this.b="",this.c=""}function ast(e,t,n){this.b=e,mnt.call(this,t,n)}function G4e(e,t,n){this.c=e,pq.call(this,t,n)}function K4e(e,t,n){Nk.call(this,e,t),this.b=n}function W4e(e,t,n){$9e(n,0,e,t,n.length,!1)}function ig(e,t,n,r,s){e.b=t,e.c=n,e.d=r,e.a=s}function Y4e(e,t,n,r,s){e.d=t,e.c=n,e.a=r,e.b=s}function Idn(e,t){t&&(e.b=t,e.a=(xb(t),t.a))}function UO(e,t){if(!e)throw ue(new Wn(t))}function W8(e,t){if(!e)throw ue(new ic(t))}function X4e(e,t){if(!e)throw ue(new fZe(t))}function Odn(e,t){return oq(),iu(e.d.p,t.d.p)}function Ndn(e,t){return sp(),Xi(e.e.b,t.e.b)}function Pdn(e,t){return sp(),Xi(e.e.a,t.e.a)}function Bdn(e,t){return iu(xst(e.d),xst(t.d))}function rH(e,t){return t&&_H(e,t.d)?t:null}function Fdn(e,t){return t==(_t(),Zn)?e.c:e.d}function Q4e(e){return Sb(Bgn(xc(e)?Mf(e):e))}function Rdn(e){return new lt(e.c+e.b,e.d+e.a)}function ost(e){return e!=null&&!rue(e,zM,qM)}function jdn(e,t){return(j1t(e)<<4|j1t(t))&ta}function cst(e,t,n,r,s){e.c=t,e.d=n,e.b=r,e.a=s}function J4e(e){var t,n;t=e.b,n=e.c,e.b=n,e.c=t}function Z4e(e){var t,n;n=e.d,t=e.a,e.d=t,e.a=n}function $dn(e,t){var n;return n=e.c,D7e(e,t),n}function e5e(e,t){return t<0?e.g=-1:e.g=t,e}function iH(e,t){return Wwn(e),e.a*=t,e.b*=t,e}function ust(e,t,n){rft.call(this,t,n),this.d=e}function VO(e,t,n){wye.call(this,e,t),this.c=n}function sH(e,t,n){wye.call(this,e,t),this.c=n}function t5e(e){O4e(),w5.call(this),this.ci(e)}function lst(){nT(),opn.call(this,(db(),Gf))}function hst(e){return Ii(),new sg(0,e)}function fst(){fst=U,wpe=(Cn(),new Ma(k0e))}function aH(){aH=U,new fxe((ase(),N0e),(sse(),O0e))}function dst(){dst=U,w_e=We(to,dt,17,256,0,1)}function gst(){this.b=ze(Ge(It((p0(),d1e))))}function Fae(e){this.b=e,this.a=Rm(this.b.a).Od()}function pst(e,t){this.b=e,this.a=t,KS.call(this)}function bst(e,t){this.a=e,this.b=t,KS.call(this)}function mst(e,t,n){this.a=e,B5.call(this,t,n)}function vst(e,t,n){this.a=e,B5.call(this,t,n)}function Hk(e,t,n){var r;r=new Ty(n),Z0(e,t,r)}function n5e(e,t,n){var r;return r=e[t],e[t]=n,r}function oH(e){var t;return t=e.slice(),Zoe(t,e)}function cH(e){var t;return t=e.n,e.a.b+t.d+t.a}function wst(e){var t;return t=e.n,e.e.b+t.d+t.a}function r5e(e){var t;return t=e.n,e.e.a+t.b+t.c}function i5e(e){e.a.b=e.b,e.b.a=e.a,e.a=e.b=null}function ci(e,t){return _s(e,t,e.c.b,e.c),!0}function zdn(e){return e.a?e.a:hoe(e)}function qdn(e){return nx(),hg(e)==ds(Ib(e))}function Hdn(e){return nx(),Ib(e)==ds(hg(e))}function xw(e,t){return jA(e,new Nk(t.a,t.b))}function Udn(e,t){return LH(),Sue(e,t),new zat(e,t)}function Vdn(e,t){return e.c=t)throw ue(new e3e)}function xy(e,t){return zN(e,(tr(t),new wo(t)))}function X8(e,t){return zN(e,(tr(t),new oh(t)))}function iat(e,t,n){return mOn(e,l(t,12),l(n,12))}function sat(e){return xl(),l(e,12).g.c.length!=0}function aat(e){return xl(),l(e,12).e.c.length!=0}function Lgn(e,t){return hx(),Xi(t.a.o.a,e.a.o.a)}function Mgn(e,t){t.Bb&nu&&!e.a.o&&(e.a.o=t)}function Dgn(e,t){t.Ug("General 'Rotator",1),VDn(e)}function Ign(e,t,n){t.qf(n,ze(Ge(or(e.b,n)))*e.a)}function oat(e,t,n){return d6(),bT(e,t)&&bT(e,n)}function Y_(e){return Pl(),!e.Hc(kp)&&!e.Hc(im)}function Ogn(e){return e.e?V6e(e.e):null}function X_(e){return xc(e)?""+e:hmt(e)}function T5e(e){var t;for(t=e;t.f;)t=t.f;return t}function Ngn(e,t,n){return Ss(t,0,u5e(t[0],n[0])),t}function a2(e,t,n,r){var s;s=e.i,s.i=t,s.a=n,s.b=r}function nt(e,t,n,r){Qs.call(this,e,t,n),this.b=r}function _a(e,t,n,r,s){Qoe.call(this,e,t,n,r,s,-1)}function Q_(e,t,n,r,s){dN.call(this,e,t,n,r,s,-1)}function kH(e,t,n,r){VO.call(this,e,t,n),this.b=r}function cat(e){snt.call(this,e,!1),this.a=!1}function uat(){Rtt.call(this,"LOOKAHEAD_LAYOUT",1)}function lat(e){this.b=e,H8.call(this,e),prt(this)}function hat(e){this.b=e,OO.call(this,e),brt(this)}function ky(e,t,n){this.a=e,V8.call(this,t,n,5,6)}function E5e(e,t,n,r){this.b=e,Qs.call(this,t,n,r)}function fat(e,t){this.b=e,Gg.call(this,e.b),this.a=t}function dat(e){this.a=Xdt(e.a),this.b=new Ml(e.b)}function C5e(e,t){Sw(),hln.call(this,e,VU(new Ll(t)))}function TH(e,t){return Ii(),new $5e(e,t,0)}function Xae(e,t){return Ii(),new $5e(6,e,t)}function Qa(e,t){for(tr(t);e.Ob();)t.Cd(e.Pb())}function Hu(e,t){return Da(t)?woe(e,t):!!zo(e.f,t)}function Qae(e,t){return t.Vh()?Lb(e.b,l(t,54)):t}function Pgn(e,t){return wn(e.substr(0,t.length),t)}function ag(e){return new lr(new Gye(e.a.length,e.a))}function EH(e){return new lt(e.c+e.b/2,e.d+e.a/2)}function Bgn(e){return qu(~e.l&Ql,~e.m&Ql,~e.h&pp)}function Jae(e){return typeof e===_P||typeof e===Kle}function Dl(e){e.f=new Ont(e),e.i=new Nnt(e),++e.g}function gat(e){if(!e)throw ue(new Dc);return e.d}function Q8(e){var t;return t=yA(e),br(t!=null),t}function Fgn(e){var t;return t=Z4n(e),br(t!=null),t}function Vk(e,t){var n;return n=e.a.gc(),$6e(t,n),n-t}function sa(e,t){var n;return n=e.a.zc(t,e),n==null}function KO(e,t){return e.a.zc(t,(Hn(),Ub))==null}function S5e(e){return new vn(null,qgn(e,e.length))}function _5e(e,t,n){return Pvt(e,l(t,42),l(n,176))}function J8(e,t,n){return f0(e.a,t),n5e(e.b,t.g,n)}function Rgn(e,t,n){Uk(n,e.a.c.length),nf(e.a,n,t)}function Ue(e,t,n,r){f1t(t,n,e.length),jgn(e,t,n,r)}function jgn(e,t,n,r){var s;for(s=t;s0?b.Math.log(e/t):-100}function bat(e,t){return su(e,t)<0?-1:su(e,t)>0?1:0}function WO(e,t){ort(e,De(t,160)?t:l(t,2036).Rl())}function D5e(e,t){if(e==null)throw ue(new I8(t))}function qgn(e,t){return Uwn(t,e.length),new Tst(e,t)}function I5e(e,t){return t?Ga(e,t):!1}function Hgn(){return Kz(),he(le(B6t,1),it,549,0,[F0e])}function Z_(e){return e.e==0?e:new $m(-e.e,e.d,e.a)}function Ugn(e,t){return Xi(e.c.c+e.c.b,t.c.c+t.c.b)}function YO(e,t){_s(e.d,t,e.b.b,e.b),++e.a,e.c=null}function mat(e,t){return e.c?mat(e.c,t):wt(e.b,t),e}function Vgn(e,t,n){var r;return r=My(e,t),Poe(e,t,n),r}function vat(e,t,n){var r;for(r=0;r=e.g}function Ss(e,t,n){return Bfn(n==null||DAn(e,n)),e[t]=n}function F5e(e,t){return Yn(t,e.length+1),e.substr(t)}function coe(e,t){for(tr(t);e.c=e?new N3e:g3n(e-1)}function Ja(e){return!e.a&&e.c?e.c.b:e.a}function q5e(e){return De(e,616)?e:new Fot(e)}function xb(e){e.c?xb(e.c):(Mb(e),e.d=!0)}function nA(e){e.c?e.c.$e():(e.d=!0,ICn(e))}function Rat(e){e.b=!1,e.c=!1,e.d=!1,e.a=!1}function jat(e){var t,n;return t=e.c.i.c,n=e.d.i.c,t==n}function lpn(e,t){var n;n=e.Ih(t),n>=0?e.ki(n):D9e(e,t)}function $at(e,t){e.c<0||e.b.b0;)e=e<<1|(e<0?1:0);return e}function Wat(e,t){var n;return n=new vu(e),qn(t.c,n),n}function Yat(e,t){e.u.Hc((Pl(),kp))&&pTn(e,t),Ovn(e,t)}function eu(e,t){return qe(e)===qe(t)||e!=null&&Fi(e,t)}function Zo(e,t){return qae(e.a,t)?e.b[l(t,22).g]:null}function Tpn(){return aq(),he(le(uAe,1),it,489,0,[a1e])}function Epn(){return uq(),he(le(FOe,1),it,490,0,[Mge])}function Cpn(){return lq(),he(le(kSt,1),it,558,0,[Dge])}function Spn(){return m_(),he(le(iNe,1),it,539,0,[XB])}function MH(e){return!e.n&&(e.n=new nt(nc,e,1,7)),e.n}function loe(e){return!e.c&&(e.c=new nt($l,e,9,9)),e.c}function G5e(e){return!e.c&&(e.c=new An(Sr,e,5,8)),e.c}function _pn(e){return!e.b&&(e.b=new An(Sr,e,4,7)),e.b}function XO(e){return e.j.c.length=0,W5e(e.c),s0n(e.a),e}function Xk(e){return e.e==CE&&fn(e,x6n(e.g,e.b)),e.e}function QO(e){return e.f==CE&&Dn(e,f8n(e.g,e.b)),e.f}function Ei(e,t,n,r){return v0t(e,t,n,!1),GU(e,r),e}function Xat(e,t){this.b=e,Zae.call(this,e,t),prt(this)}function Qat(e,t){this.b=e,M4e.call(this,e,t),brt(this)}function rA(e){this.d=e,this.a=this.d.b,this.b=this.d.c}function K5e(e,t){this.b=e,this.c=t,this.a=new B8(this.b)}function io(e,t){return Yn(t,e.length),e.charCodeAt(t)}function Apn(e,t){N8e(e,ze(ap(t,"x")),ze(ap(t,"y")))}function Lpn(e,t){N8e(e,ze(ap(t,"x")),ze(ap(t,"y")))}function ji(e,t){return Mb(e),new vn(e,new i7e(t,e.a))}function gc(e,t){return Mb(e),new vn(e,new H6e(t,e.a))}function Ey(e,t){return Mb(e),new c4e(e,new alt(t,e.a))}function DH(e,t){return Mb(e),new u4e(e,new olt(t,e.a))}function Mpn(e,t){return new xot(l(Xr(e),50),l(Xr(t),50))}function Dpn(e,t){return Xi(e.d.c+e.d.b/2,t.d.c+t.d.b/2)}function Jat(e,t,n){n.a?Gu(e,t.b-e.f/2):Vu(e,t.a-e.g/2)}function Ipn(e,t){return Xi(e.g.c+e.g.b/2,t.g.c+t.g.b/2)}function Opn(e,t){return F3e(),Xi((tr(e),e),(tr(t),t))}function Npn(e){return e!=null&&lO(MY,e.toLowerCase())}function W5e(e){var t;for(t=e.Kc();t.Ob();)t.Pb(),t.Qb()}function G5(e){var t;return t=e.b,!t&&(e.b=t=new Die(e)),t}function hoe(e){var t;return t=v3n(e),t||null}function Zat(e,t){var n,r;return n=e/t,r=da(n),n>r&&++r,r}function Ppn(e,t,n){var r;r=l(e.d.Kb(n),159),r&&r.Nb(t)}function Bpn(e,t,n){RLn(e.a,n),pyn(n),sEn(e.b,n),sMn(t,n)}function IH(e,t,n,r){this.a=e,this.c=t,this.b=n,this.d=r}function Y5e(e,t,n,r){this.c=e,this.b=t,this.a=n,this.d=r}function eot(e,t,n,r){this.c=e,this.b=t,this.d=n,this.a=r}function Zh(e,t,n,r){this.c=e,this.d=t,this.b=n,this.a=r}function tot(e,t,n,r){this.a=e,this.d=t,this.c=n,this.b=r}function foe(e,t,n,r){this.a=e,this.e=t,this.d=n,this.c=r}function not(e,t,n,r){this.a=e,this.c=t,this.d=n,this.b=r}function doe(e,t,n){this.a=kTe,this.d=e,this.b=t,this.c=n}function ex(e,t,n,r){Vr.call(this,e,t),this.a=n,this.b=r}function rot(e,t){this.d=(tr(e),e),this.a=16449,this.c=t}function iot(e){this.a=new mt,this.e=We(Ur,dt,53,e,0,2)}function Fpn(e){e.Ug("No crossing minimization",1),e.Vg()}function sot(){Ic.call(this,"There is no more element.")}function aot(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function oot(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function zm(e,t,n,r){this.e=e,this.a=t,this.c=n,this.d=r}function cot(e,t,n,r){this.a=e,this.c=t,this.d=n,this.b=r}function uot(e,t,n,r){Qh(),clt.call(this,t,n,r),this.a=e}function lot(e,t,n,r){Qh(),clt.call(this,t,n,r),this.a=e}function goe(e,t,n){var r,s;return r=cTe(e),s=t.ti(n,r),s}function Qg(e){var t,n;return n=(t=new iw,t),oT(n,e),n}function poe(e){var t,n;return n=(t=new iw,t),h9e(n,e),n}function Rpn(e,t){var n;return n=or(e.f,t),U7e(t,n),null}function hot(e){return!e.b&&(e.b=new nt(js,e,12,3)),e.b}function fot(e){return V_(e==null||Jae(e)&&e.Tm!==xe),e}function OH(e){return e.n&&(e.e!==d3t&&e.je(),e.j=null),e}function Qk(e){if(Wl(e.d),e.d.d!=e.c)throw ue(new Yh)}function X5e(e){return br(e.b0&&Ugt(this)}function dot(e,t){this.a=e,Ffn.call(this,e,l(e.d,15).fd(t))}function jpn(e,t){return Xi(vl(e)*hh(e),vl(t)*hh(t))}function $pn(e,t){return Xi(vl(e)*hh(e),vl(t)*hh(t))}function zpn(e){return Yw(e)&&Ft(Pt(at(e,(Nt(),kv))))}function qpn(e,t){return xn(e,l(Q(t,(Nt(),VE)),17),t)}function Hpn(e,t){return l(Q(e,(ft(),Yx)),15).Fc(t),t}function Q5e(e,t){return e.b=t.b,e.c=t.c,e.d=t.d,e.a=t.a,e}function got(e,t,n,r){this.b=e,this.c=r,Rq.call(this,t,n)}function Upn(e,t,n){e.i=0,e.e=0,t!=n&&Q0t(e,t,n)}function Vpn(e,t,n){e.i=0,e.e=0,t!=n&&J0t(e,t,n)}function Gpn(e,t,n){return b_(),w5n(l(or(e.e,t),529),n)}function tx(e){var t;return t=e.f,t||(e.f=new Dk(e,e.c))}function pot(e,t){return n6(e.j,t.s,t.c)+n6(t.e,e.s,e.c)}function bot(e,t){e.e&&!e.e.a&&(tJe(e.e,t),bot(e.e,t))}function mot(e,t){e.d&&!e.d.a&&(tJe(e.d,t),mot(e.d,t))}function Kpn(e,t){return-Xi(vl(e)*hh(e),vl(t)*hh(t))}function Wpn(e){return l(e.ld(),149).Pg()+":"+Tc(e.md())}function vot(){Wue(this,new wz),this.wb=(wb(),Un),Ak()}function wot(e){this.b=new mt,aa(this.b,this.b),this.a=e}function J5e(e,t){new os,this.a=new pl,this.b=e,this.c=t}function Mw(){Mw=U,D_e=new Ke,V0e=new Ke,I_e=new zt}function Cn(){Cn=U,Co=new je,yg=new Se,vK=new Ce}function Z5e(){Z5e=U,p7t=new uo,m7t=new g5e,b7t=new Es}function nx(){nx=U,SK=new mt,l1e=new Nr,u1e=new mt}function NH(e,t){if(e==null)throw ue(new I8(t));return e}function PH(e){return!e.a&&(e.a=new nt(Li,e,10,11)),e.a}function qi(e){return!e.q&&(e.q=new nt(Vf,e,11,10)),e.q}function tt(e){return!e.s&&(e.s=new nt(fl,e,21,17)),e.s}function Ypn(e){return Xr(e),agt(new lr(fr(e.a.Kc(),new j)))}function Xpn(e,t){return dh(e),dh(t),hZe(l(e,22),l(t,22))}function qm(e,t,n){var r,s;r=I4e(n),s=new yk(r),Z0(e,t,s)}function moe(e,t,n,r,s,o){dN.call(this,e,t,n,r,s,o?-2:-1)}function yot(e,t,n,r){wye.call(this,t,n),this.b=e,this.a=r}function xot(e,t){mun.call(this,new Yae(e)),this.a=e,this.b=t}function e6e(e){this.b=e,this.c=e,e.e=null,e.c=null,this.a=1}function Qpn(e){c0();var t;t=l(e.g,10),t.n.a=e.d.c+t.d.b}function Jk(){Jk=U;var e,t;t=!i6n(),e=new se,$0e=t?new ne:e}function voe(e){return Cn(),De(e,59)?new gse(e):new Gq(e)}function BH(e){return De(e,16)?new G_(l(e,16)):Mdn(e.Kc())}function Jpn(e){return new vrt(e,e.e.Rd().gc()*e.c.Rd().gc())}function Zpn(e){return new wrt(e,e.e.Rd().gc()*e.c.Rd().gc())}function t6e(e){return e&&e.hashCode?e.hashCode():ww(e)}function woe(e,t){return t==null?!!zo(e.f,null):pgn(e.i,t)}function e2n(e,t){var n;return n=Fye(e.a,t),n&&(t.d=null),n}function kot(e,t,n){return e.f?e.f.ef(t,n):!1}function JO(e,t,n,r){Ss(e.c[t.g],n.g,r),Ss(e.c[n.g],t.g,r)}function yoe(e,t,n,r){Ss(e.c[t.g],t.g,n),Ss(e.b[t.g],t.g,r)}function t2n(e,t,n){return ze(Ge(n.a))<=e&&ze(Ge(n.b))>=t}function Tot(e,t){this.g=e,this.d=he(le(kg,1),S2,10,0,[t])}function Eot(e){this.c=e,this.b=new n2(l(Xr(new Ou),50))}function Cot(e){this.c=e,this.b=new n2(l(Xr(new f5),50))}function Sot(e){this.b=e,this.a=new n2(l(Xr(new gi),50))}function _ot(){this.b=new Ys,this.d=new os,this.e=new t3e}function n6e(){this.c=new za,this.d=new za,this.e=new za}function Dw(){this.a=new pl,this.b=(Mh(3,Jy),new Pu(3))}function o2(e,t){this.e=e,this.a=ka,this.b=_mt(t),this.c=t}function FH(e){this.c=e.c,this.d=e.d,this.b=e.b,this.a=e.a}function Aot(e,t,n,r,s,o){this.a=e,fce.call(this,t,n,r,s,o)}function Lot(e,t,n,r,s,o){this.a=e,fce.call(this,t,n,r,s,o)}function kb(e,t,n,r,s,o,f){return new Foe(e.e,t,n,r,s,o,f)}function n2n(e,t,n){return n>=0&&wn(e.substr(n,t.length),t)}function Mot(e,t){return De(t,149)&&wn(e.b,l(t,149).Pg())}function r2n(e,t){return e.a?t.Gh().Kc():l(t.Gh(),71).Ii()}function Dot(e,t){var n;return n=e.b.Qc(t),Cut(n,e.b.gc()),n}function ZO(e,t){if(e==null)throw ue(new I8(t));return e}function pc(e){return e.u||(Gl(e),e.u=new lit(e,e)),e.u}function xoe(e){this.a=(Cn(),De(e,59)?new gse(e):new Gq(e))}function il(e){var t;return t=l(Gn(e,16),29),t||e.ii()}function RH(e,t){var n;return n=Pm(e.Rm),t==null?n:n+": "+t}function ef(e,t,n){return Va(t,n,e.length),e.substr(t,n-t)}function Iot(e,t){Qq.call(this),d7e(this),this.a=e,this.c=t}function i2n(e){e&&RH(e,e.ie())}function s2n(e){Xz(),b.setTimeout(function(){throw e},0)}function a2n(){return aV(),he(le($_e,1),it,436,0,[Z0e,j_e])}function o2n(){return dU(),he(le(q_e,1),it,435,0,[z_e,e1e])}function c2n(){return gU(),he(le(bAe,1),it,432,0,[h1e,_K])}function u2n(){return pT(),he(le(bxt,1),it,517,0,[xB,C1e])}function l2n(){return WH(),he(le(ZLe,1),it,429,0,[tde,JLe])}function h2n(){return TN(),he(le(FLe,1),it,428,0,[rW,BLe])}function f2n(){return sU(),he(le(LLe,1),it,431,0,[ALe,$1e])}function d2n(){return xN(),he(le(VDe,1),it,430,0,[Bde,Fde])}function g2n(){return cA(),he(le(oEt,1),it,531,0,[lM,uM])}function p2n(){return LU(),he(le(zIe,1),it,501,0,[KW,J6])}function b2n(){return xd(),he(le(gEt,1),it,523,0,[S3,O2])}function m2n(){return D1(),he(le(bEt,1),it,522,0,[_v,Y1])}function v2n(){return Q0(),he(le(DEt,1),it,528,0,[S4,Qb])}function w2n(){return bN(),he(le($Le,1),it,488,0,[jLe,sW])}function y2n(){return ZH(),he(le(MOe,1),it,491,0,[_ge,LOe])}function x2n(){return Sce(),he(le(BOe,1),it,492,0,[NOe,POe])}function k2n(){return VH(),he(le($Ie,1),it,433,0,[sge,jIe])}function T2n(){return oU(),he(le(HIe,1),it,434,0,[qIe,hge])}function E2n(){return Ow(),he(le(REt,1),it,465,0,[Jb,Y6])}function C2n(){return hN(),he(le(ROe,1),it,438,0,[Ige,iY])}function S2n(){return ON(),he(le(aNe,1),it,437,0,[aY,sNe])}function _2n(){return Dae(),he(le(xY,1),it,347,0,[xPe,kPe])}function jH(e,t,n,r){return n>=0?e.Uh(t,n,r):e.Ch(null,n,r)}function eN(e){return e.b.b==0?e.a.sf():Bae(e.b)}function A2n(e){if(e.p!=5)throw ue(new gl);return Yr(e.f)}function L2n(e){if(e.p!=5)throw ue(new gl);return Yr(e.k)}function r6e(e){return qe(e.a)===qe((Ece(),bpe))&&_Mn(e),e.a}function M2n(e,t){e.b=t,e.c>0&&e.b>0&&(e.g=dH(e.c,e.b,e.a))}function D2n(e,t){e.c=t,e.c>0&&e.b>0&&(e.g=dH(e.c,e.b,e.a))}function Oot(e,t){ce(this,new lt(e.a,e.b)),ve(this,HO(t))}function Iw(){vun.call(this,new P8(Dy(12))),qye(!0),this.a=2}function koe(e,t,n){Ii(),rw.call(this,e),this.b=t,this.a=n}function i6e(e,t,n){Qh(),zz.call(this,t),this.a=e,this.b=n}function Not(e){var t;t=e.c.d.b,e.b=t,e.a=e.c.d,t.a=e.c.d.b=e}function I2n(e){return e.b==0?null:(br(e.b!=0),sf(e,e.a.a))}function wu(e,t){return t==null?dc(zo(e.f,null)):x_(e.i,t)}function Pot(e,t,n,r,s){return new Xue(e,(sT(),Y0e),t,n,r,s)}function $H(e,t){return kut(t),n3n(e,We(Ur,fi,28,t,15,1),t)}function zH(e,t){return NH(e,"set1"),NH(t,"set2"),new Tet(e,t)}function O2n(e,t){var n=j0e[e.charCodeAt(0)];return n??e}function Bot(e,t){var n,r;return n=t,r=new yt,uwt(e,n,r),r.d}function Toe(e,t,n,r){var s;s=new dit,t.a[n.g]=s,J8(e.b,r,s)}function N2n(e,t){var n;return n=Zwn(e.f,t),Pi(Xq(n),e.f.d)}function tN(e){var t;l3n(e.a),Hnt(e.a),t=new t_(e.a),U8e(t)}function P2n(e,t){mmt(e,!0),Uu(e.e.Rf(),new B4e(e,!0,t))}function B2n(e,t){return nx(),e==ds(hg(t))||e==ds(Ib(t))}function F2n(e,t){return sp(),l(Q(t,(Vc(),$d)),17).a==e}function da(e){return Math.max(Math.min(e,Ni),-2147483648)|0}function Fot(e){this.a=l(Xr(e),277),this.b=(Cn(),new Yye(e))}function Rot(e,t,n){this.i=new mt,this.b=e,this.g=t,this.a=n}function s6e(e,t,n){this.a=new mt,this.e=e,this.f=t,this.c=n}function qH(e,t,n){this.c=new mt,this.e=e,this.f=t,this.b=n}function jot(e){Qq.call(this),d7e(this),this.a=e,this.c=!0}function R2n(e){function t(){}return t.prototype=e||{},new t}function j2n(e){if(e.Ae())return null;var t=e.n;return fK[t]}function nN(e){return e.Db>>16!=3?null:l(e.Cb,27)}function M1(e){return e.Db>>16!=9?null:l(e.Cb,27)}function $ot(e){return e.Db>>16!=6?null:l(e.Cb,74)}function Ow(){Ow=U,Jb=new oye(Dx,0),Y6=new oye(Ix,1)}function xd(){xd=U,S3=new iye(Ix,0),O2=new iye(Dx,1)}function D1(){D1=U,_v=new sye(Ohe,0),Y1=new sye("UP",1)}function zot(){zot=U,F6t=Kr((Kz(),he(le(B6t,1),it,549,0,[F0e])))}function qot(e){var t;return t=new eq(Dy(e.length)),r8e(t,e),t}function Hot(e,t){return e.b+=t.b,e.c+=t.c,e.d+=t.d,e.a+=t.a,e}function $2n(e,t){return L0t(e,t)?(Cft(e),!0):!1}function Jg(e,t){if(t==null)throw ue(new _8);return a6n(e,t)}function rN(e,t){var n;n=e.q.getHours(),e.q.setDate(t),QA(e,n)}function a6e(e,t,n){var r;r=e.Ih(t),r>=0?e.bi(r,n):ike(e,t,n)}function Uot(e,t){var n;return n=e.Ih(t),n>=0?e.Wh(n):nle(e,t)}function Vot(e,t){var n;for(Xr(t),n=e.a;n;n=n.c)t.Yd(n.g,n.i)}function Eoe(e,t,n){var r;r=Y0t(e,t,n),e.b=new DU(r.c.length)}function K5(e,t,n){HH(),e&&Ti(dpe,e,t),e&&Ti(vF,e,n)}function z2n(e,t){return nH(),Hn(),l(t.a,17).a0}function o6e(e){var t;return t=e.d,t=e.bj(e.f),zr(e,t),t.Ob()}function Got(e,t){var n;return n=new h5e(t),mpt(n,e),new Ml(n)}function U2n(e){if(e.p!=0)throw ue(new gl);return O_(e.f,0)}function V2n(e){if(e.p!=0)throw ue(new gl);return O_(e.k,0)}function Kot(e){return e.Db>>16!=7?null:l(e.Cb,241)}function Zk(e){return e.Db>>16!=6?null:l(e.Cb,241)}function Wot(e){return e.Db>>16!=7?null:l(e.Cb,167)}function ds(e){return e.Db>>16!=11?null:l(e.Cb,27)}function Cy(e){return e.Db>>16!=17?null:l(e.Cb,29)}function Yot(e){return e.Db>>16!=3?null:l(e.Cb,155)}function c6e(e){var t;return Mb(e),t=new Ys,ji(e,new E5(t))}function Xot(e,t){var n=e.a=e.a||[];return n[t]||(n[t]=e.ve(t))}function G2n(e,t){var n;n=e.q.getHours(),e.q.setMonth(t),QA(e,n)}function Qot(e,t){Uq(this),this.f=t,this.g=e,OH(this),this.je()}function Jot(e,t){this.a=e,this.c=Xa(this.a),this.b=new FH(t)}function Zot(e,t,n){this.a=t,this.c=e,this.b=(Xr(n),new Ml(n))}function ect(e,t,n){this.a=t,this.c=e,this.b=(Xr(n),new Ml(n))}function tct(e){this.a=e,this.b=We(iEt,dt,2043,e.e.length,0,2)}function nct(){this.a=new bd,this.e=new Ys,this.g=0,this.i=0}function HH(){HH=U,dpe=new Nr,vF=new Nr,$ln(t7t,new MS)}function rct(){rct=U,qTt=wl(new Js,(so(),wc),(po(),kB))}function u6e(){u6e=U,HTt=wl(new Js,(so(),wc),(po(),kB))}function ict(){ict=U,VTt=wl(new Js,(so(),wc),(po(),kB))}function sct(){sct=U,uEt=hi(new Js,(so(),wc),(po(),qL))}function Sh(){Sh=U,fEt=hi(new Js,(so(),wc),(po(),qL))}function act(){act=U,dEt=hi(new Js,(so(),wc),(po(),qL))}function Soe(){Soe=U,vEt=hi(new Js,(so(),wc),(po(),qL))}function iA(e,t,n,r,s,o){return new rp(e.e,t,e.Lj(),n,r,s,o)}function sc(e,t,n){return t==null?Ru(e.f,null,n):Hw(e.i,t,n)}function ho(e,t){e.c&&sl(e.c.g,e),e.c=t,e.c&&wt(e.c.g,e)}function Ha(e,t){e.c&&sl(e.c.a,e),e.c=t,e.c&&wt(e.c.a,e)}function Nc(e,t){e.i&&sl(e.i.j,e),e.i=t,e.i&&wt(e.i.j,e)}function Na(e,t){e.d&&sl(e.d.e,e),e.d=t,e.d&&wt(e.d.e,e)}function _oe(e,t){e.a&&sl(e.a.k,e),e.a=t,e.a&&wt(e.a.k,e)}function Aoe(e,t){e.b&&sl(e.b.f,e),e.b=t,e.b&&wt(e.b.f,e)}function oct(e,t){ipn(e,e.b,e.c),l(e.b.b,68),t&&l(t.b,68).b}function K2n(e,t){return Xi(l(e.c,65).c.e.b,l(t.c,65).c.e.b)}function W2n(e,t){return Xi(l(e.c,65).c.e.a,l(t.c,65).c.e.a)}function Y2n(e){return Uce(),Hn(),l(e.a,86).d.e!=0}function UH(e,t){De(e.Cb,184)&&(l(e.Cb,184).tb=null),Bu(e,t)}function Loe(e,t){De(e.Cb,90)&&Uy(Gl(l(e.Cb,90)),4),Bu(e,t)}function X2n(e,t){P8e(e,t),De(e.Cb,90)&&Uy(Gl(l(e.Cb,90)),2)}function Q2n(e,t){var n,r;n=t.c,r=n!=null,r&&Z8(e,new Ty(t.c))}function cct(e){var t,n;return n=(Ak(),t=new iw,t),oT(n,e),n}function uct(e){var t,n;return n=(Ak(),t=new iw,t),oT(n,e),n}function lct(e){for(var t;;)if(t=e.Pb(),!e.Ob())return t}function J2n(e,t,n){return wt(e.a,(LH(),Sue(t,n),new hw(t,n))),e}function yu(e,t){return Ro(),ice(t)?new uH(t,e):new AO(t,e)}function iN(e){return Cd(),su(e,0)>=0?Db(e):Z_(Db(f2(e)))}function Z2n(e){var t;return t=l(oH(e.b),9),new Jh(e.a,t,e.c)}function hct(e,t){var n;return n=l(By(tx(e.a),t),16),n?n.gc():0}function fct(e,t,n){var r;F1t(t,n,e.c.length),r=n-t,D3e(e.c,t,r)}function c2(e,t,n){F1t(t,n,e.gc()),this.c=e,this.a=t,this.b=n-t}function rx(e){this.c=new os,this.b=e.b,this.d=e.c,this.a=e.a}function Moe(e){this.a=b.Math.cos(e),this.b=b.Math.sin(e)}function Hm(e,t,n,r){this.c=e,this.d=r,_oe(this,t),Aoe(this,n)}function l6e(e,t){bun.call(this,new P8(Dy(e))),Mh(t,o3t),this.a=t}function dct(e,t,n){return new Xue(e,(sT(),W0e),null,!1,t,n)}function gct(e,t,n){return new Xue(e,(sT(),X0e),t,n,null,!1)}function ebn(){return Nl(),he(le(uc,1),it,108,0,[R_e,Cc,o4])}function tbn(){return al(),he(le(S7t,1),it,472,0,[s1,Gb,v0])}function nbn(){return Ol(),he(le(E7t,1),it,471,0,[Fd,Vb,m0])}function rbn(){return e1(),he(le(c4,1),it,237,0,[Wc,ju,Yc])}function ibn(){return hA(),he(le(DAe,1),it,391,0,[p1e,g1e,b1e])}function sbn(){return $w(),he(le(D1e,1),it,372,0,[g3,Kb,d3])}function abn(){return gA(),he(le(DLe,1),it,322,0,[UL,CB,MLe])}function obn(){return kU(),he(le(OLe,1),it,351,0,[ILe,nW,z1e])}function cbn(){return Jm(),he(le(Kxt,1),it,460,0,[U1e,jE,F6])}function ubn(){return yT(),he(le(ede,1),it,299,0,[J1e,Z1e,SB])}function lbn(){return ip(),he(le(t9t,1),it,311,0,[_B,j6,Gx])}function hbn(){return EA(),he(le(PDe,1),it,390,0,[Lde,NDe,OW])}function fbn(){return qo(),he(le(PTt,1),it,463,0,[aM,Fl,$u])}function dbn(){return BU(),he(le(WDe,1),it,387,0,[GDe,Rde,KDe])}function gbn(){return xA(),he(le(YDe,1),it,349,0,[$de,jde,RB])}function pbn(){return AT(),he(le(QDe,1),it,350,0,[zde,XDe,oM])}function bbn(){return xU(),he(le(eIe,1),it,352,0,[ZDe,qde,JDe])}function mbn(){return $U(),he(le(tIe,1),it,388,0,[Hde,JE,C4])}function vbn(){return jw(),he(le(nEt,1),it,464,0,[jB,cM,FW])}function I1(e){return Bc(he(le(Ca,1),dt,8,0,[e.i.n,e.n,e.a]))}function wbn(){return kA(),he(le(vIe,1),it,392,0,[mIe,Gde,zB])}function pct(){pct=U,dCt=wl(new Js,(yx(),fM),(YA(),cIe))}function VH(){VH=U,sge=new cye("DFS",0),jIe=new cye("BFS",1)}function bct(e,t,n){var r;r=new Cte,r.b=t,r.a=n,++t.b,wt(e.d,r)}function ybn(e,t,n){var r;r=new xo(n.d),Pi(r,e),N8e(t,r.a,r.b)}function xbn(e,t){urt(e,Yr(xa(Tw(t,24),aG)),Yr(xa(t,aG)))}function Sy(e,t){if(e<0||e>t)throw ue(new rc(DTe+e+ITe+t))}function Sn(e,t){if(e<0||e>=t)throw ue(new rc(DTe+e+ITe+t))}function Yn(e,t){if(e<0||e>=t)throw ue(new v3e(DTe+e+ITe+t))}function kn(e,t){this.b=(tr(e),e),this.a=t&Zy?t:t|64|_d}function h6e(e){var t;return Mb(e),t=(Mw(),Mw(),V0e),mU(e,t)}function kbn(e,t,n){var r;return r=eL(e,t,!1),r.b<=t&&r.a<=n}function Tbn(){return cU(),he(le(OOe,1),it,439,0,[Age,IOe,DOe])}function Ebn(){return YU(),he(le(gOe,1),it,394,0,[dOe,Tge,fOe])}function Cbn(){return tV(),he(le(hOe,1),it,445,0,[GB,QW,mge])}function Sbn(){return fV(),he(le(UCt,1),it,456,0,[vge,yge,wge])}function _bn(){return FN(),he(le(GIe,1),it,393,0,[WW,UIe,VIe])}function Abn(){return PU(),he(le(lOe,1),it,300,0,[bge,uOe,cOe])}function Lbn(){return op(),he(le(dPe,1),it,346,0,[gY,F2,IM])}function Mbn(){return HN(),he(le(Lge,1),it,444,0,[tY,nY,rY])}function Dbn(){return F1(),he(le(tPe,1),it,278,0,[iC,M4,sC])}function Ibn(){return gx(),he(le(yPe,1),it,280,0,[wPe,I4,yY])}function Nw(e){return Xr(e),De(e,16)?new Ml(l(e,16)):qk(e.Kc())}function f6e(e,t){return e&&e.equals?e.equals(t):qe(e)===qe(t)}function xa(e,t){return Sb(Egn(xc(e)?Mf(e):e,xc(t)?Mf(t):t))}function X0(e,t){return Sb(Cgn(xc(e)?Mf(e):e,xc(t)?Mf(t):t))}function Doe(e,t){return Sb(Sgn(xc(e)?Mf(e):e,xc(t)?Mf(t):t))}function Obn(e,t){var n;return n=(tr(e),e).g,a4e(!!n),tr(t),n(t)}function mct(e,t){var n,r;return r=Vk(e,t),n=e.a.fd(r),new xet(e,n)}function Nbn(e){return e.Db>>16!=6?null:l(sle(e),241)}function Pbn(e){if(e.p!=2)throw ue(new gl);return Yr(e.f)&ta}function Bbn(e){if(e.p!=2)throw ue(new gl);return Yr(e.k)&ta}function re(e){return br(e.ar?1:0}function xct(e,t){var n,r;return n=ece(t),r=n,l(or(e.c,r),17).a}function Ioe(e,t,n){var r;r=e.d[t.p],e.d[t.p]=e.d[n.p],e.d[n.p]=r}function Kbn(e,t,n){var r;e.n&&t&&n&&(r=new ore,wt(e.e,r))}function Ooe(e,t){if(sa(e.a,t),t.d)throw ue(new Ic(M3t));t.d=e}function p6e(e,t){this.a=new mt,this.d=new mt,this.f=e,this.c=t}function kct(){this.c=new srt,this.a=new hlt,this.b=new xJe,zet()}function Tct(){fx(),this.b=new Nr,this.a=new Nr,this.c=new mt}function Ect(e,t,n){this.d=e,this.j=t,this.e=n,this.o=-1,this.p=3}function Cct(e,t,n){this.d=e,this.k=t,this.f=n,this.o=-1,this.p=5}function Sct(e,t,n,r,s,o){p7e.call(this,e,t,n,r,s),o&&(this.o=-2)}function _ct(e,t,n,r,s,o){b7e.call(this,e,t,n,r,s),o&&(this.o=-2)}function Act(e,t,n,r,s,o){O6e.call(this,e,t,n,r,s),o&&(this.o=-2)}function Lct(e,t,n,r,s,o){w7e.call(this,e,t,n,r,s),o&&(this.o=-2)}function Mct(e,t,n,r,s,o){N6e.call(this,e,t,n,r,s),o&&(this.o=-2)}function Dct(e,t,n,r,s,o){m7e.call(this,e,t,n,r,s),o&&(this.o=-2)}function Ict(e,t,n,r,s,o){v7e.call(this,e,t,n,r,s),o&&(this.o=-2)}function Oct(e,t,n,r,s,o){P6e.call(this,e,t,n,r,s),o&&(this.o=-2)}function Nct(e,t,n,r){zz.call(this,n),this.b=e,this.c=t,this.d=r}function Pct(e,t){this.f=e,this.a=(nT(),OY),this.c=OY,this.b=t}function Bct(e,t){this.g=e,this.d=(nT(),NY),this.a=NY,this.b=t}function b6e(e,t){!e.c&&(e.c=new Ms(e,0)),XV(e.c,(Wi(),UM),t)}function Wbn(e,t){return MEn(e,t,De(t,102)&&(l(t,19).Bb&Lo)!=0)}function Ybn(e,t){return bat(tu(e.q.getTime()),tu(t.q.getTime()))}function Fct(e){return jae(e.e.Rd().gc()*e.c.Rd().gc(),16,new Lie(e))}function Xbn(e){return!!e.u&&fu(e.u.a).i!=0&&!(e.n&&kue(e.n))}function Qbn(e){return!!e.a&&Kl(e.a.a).i!=0&&!(e.b&&Tue(e.b))}function m6e(e,t){return t==0?!!e.o&&e.o.f!=0:bue(e,t)}function Jbn(e,t,n){var r;return r=l(e.Zb().xc(t),16),!!r&&r.Hc(n)}function Rct(e,t,n){var r;return r=l(e.Zb().xc(t),16),!!r&&r.Mc(n)}function jct(e,t){var n;return n=1-t,e.a[n]=MU(e.a[n],n),MU(e,t)}function $ct(e,t){var n,r;return r=xa(e,Uo),n=u0(t,32),X0(n,r)}function zct(e,t,n){var r;r=(Xr(e),new Ml(e)),e8n(new Zot(r,t,n))}function sN(e,t,n){var r;r=(Xr(e),new Ml(e)),t8n(new ect(r,t,n))}function Hc(e,t,n,r,s,o){return v0t(e,t,n,o),S8e(e,r),_8e(e,s),e}function qct(e,t,n,r){return e.a+=""+ef(t==null?cl:Tc(t),n,r),e}function Ua(e,t){this.a=e,xr.call(this,e),Sy(t,e.gc()),this.b=t}function Hct(e){this.a=We(ka,jn,1,Z7e(b.Math.max(8,e))<<1,5,1)}function aN(e){return l(j1(e,We(kg,S2,10,e.c.length,0,1)),199)}function kd(e){return l(j1(e,We(T1e,Xhe,18,e.c.length,0,1)),483)}function Uct(e){return e.a?e.e.length==0?e.a.a:e.a.a+(""+e.e):e.c}function sA(e){for(;e.d>0&&e.a[--e.d]==0;);e.a[e.d++]==0&&(e.e=0)}function Vct(e){return br(e.b.b!=e.d.a),e.c=e.b=e.b.b,--e.a,e.c.c}function Zbn(e,t,n){e.a=t,e.c=n,e.b.a.$b(),Ch(e.d),uy(e.e.a.c,0)}function Gct(e,t){var n;e.e=new c3e,n=Gy(t),Gs(n,e.c),amt(e,n,0)}function Zs(e,t,n,r){var s;s=new ek,s.a=t,s.b=n,s.c=r,ci(e.a,s)}function pt(e,t,n,r){var s;s=new ek,s.a=t,s.b=n,s.c=r,ci(e.b,s)}function Kct(e,t,n){if(e<0||tn)throw ue(new rc(fkn(e,t,n)))}function oN(e,t){if(e<0||e>=t)throw ue(new rc(Hkn(e,t)));return e}function emn(e){if(!("stack"in e))try{throw e}catch{}return e}function W5(e){return b_(),De(e.g,10)?l(e.g,10):null}function tmn(e){return G5(e).dc()?!1:(Ehn(e,new oe),!0)}function Vm(e){var t;return xc(e)?(t=e,t==-0?0:t):bwn(e)}function Wct(e,t){return De(t,44)?Aue(e.a,l(t,44)):!1}function Yct(e,t){return De(t,44)?Aue(e.a,l(t,44)):!1}function Xct(e,t){return De(t,44)?Aue(e.a,l(t,44)):!1}function v6e(e){var t;return xb(e),t=new Ne,M5(e.a,new T5(t)),t}function w6e(){var e,t,n;return t=(n=(e=new iw,e),n),wt(nBe,t),t}function GH(e){var t;return xb(e),t=new pn,M5(e.a,new C8(t)),t}function nmn(e,t){return e.a<=e.b?(t.Dd(e.a++),!0):!1}function Qct(e){xce.call(this,e,(sT(),K0e),null,!1,null,!1)}function Jct(){Jct=U,i8t=Kr((aq(),he(le(uAe,1),it,489,0,[a1e])))}function Zct(){Zct=U,rIe=Vat(bt(1),bt(4)),nIe=Vat(bt(1),bt(2))}function rmn(e,t){return new Oae(t,q_(Xa(t.e),e,e),(Hn(),!0))}function KH(e){return new Pu((Mh(e,Qle),pU(fo(fo(5,e),e/10|0))))}function imn(e){return jae(e.e.Rd().gc()*e.c.Rd().gc(),273,new Aie(e))}function eut(e){return l(j1(e,We(dxt,cyt,12,e.c.length,0,1)),2042)}function smn(e){return Sh(),!Ao(e)&&!(!Ao(e)&&e.c.i.c==e.d.i.c)}function amn(e,t){return lx(),l(Q(t,(Vc(),X6)),17).a>=e.gc()}function aA(e,t){qIn(t,e),J4e(e.d),J4e(l(Q(e,(Nt(),SW)),214))}function Noe(e,t){HIn(t,e),Z4e(e.d),Z4e(l(Q(e,(Nt(),SW)),214))}function omn(e,t,n){e.d&&sl(e.d.e,e),e.d=t,e.d&&kw(e.d.e,n,e)}function cmn(e,t,n){return n.f.c.length>0?_5e(e.a,t,n):_5e(e.b,t,n)}function umn(e,t,n){var r;r=S6n();try{return Xfn(e,t,n)}finally{tvn(r)}}function Pw(e,t){var n,r;return n=Jg(e,t),r=null,n&&(r=n.pe()),r}function oA(e,t){var n,r;return n=Jg(e,t),r=null,n&&(r=n.se()),r}function eT(e,t){var n,r;return n=My(e,t),r=null,n&&(r=n.se()),r}function Zg(e,t){var n,r;return n=Jg(e,t),r=null,n&&(r=v9e(n)),r}function lmn(e,t,n){var r;return r=BT(n),VV(e.g,r,t),VV(e.i,t,n),t}function y6e(e,t,n){this.d=new uXe(this),this.e=e,this.i=t,this.f=n}function tut(e,t,n,r){this.e=null,this.c=e,this.d=t,this.a=n,this.b=r}function nut(e,t,n,r){Znt(this),this.c=e,this.e=t,this.f=n,this.b=r}function x6e(e,t,n,r){this.d=e,this.n=t,this.g=n,this.o=r,this.p=-1}function rut(e,t,n,r){return De(n,59)?new Ort(e,t,n,r):new x5e(e,t,n,r)}function tT(e){return De(e,16)?l(e,16).dc():!e.Kc().Ob()}function iut(e){if(e.e.g!=e.b)throw ue(new Yh);return!!e.c&&e.d>0}function Pr(e){return br(e.b!=e.d.c),e.c=e.b,e.b=e.b.a,++e.a,e.c.c}function k6e(e,t){tr(t),Ss(e.a,e.c,t),e.c=e.c+1&e.a.length-1,Sgt(e)}function Tb(e,t){tr(t),e.b=e.b-1&e.a.length-1,Ss(e.a,e.b,t),Sgt(e)}function sut(e){var t;t=e.Gh(),this.a=De(t,71)?l(t,71).Ii():t.Kc()}function hmn(e){return new kn(Xwn(l(e.a.md(),16).gc(),e.a.ld()),16)}function aut(){aut=U,xSt=Kr((uq(),he(le(FOe,1),it,490,0,[Mge])))}function out(){out=U,TSt=Kr((lq(),he(le(kSt,1),it,558,0,[Dge])))}function cut(){cut=U,zSt=Kr((m_(),he(le(iNe,1),it,539,0,[XB])))}function fmn(){return tv(),he(le(PAe,1),it,389,0,[h4,NAe,x1e,k1e])}function dmn(){return sT(),he(le(wK,1),it,304,0,[K0e,W0e,Y0e,X0e])}function gmn(){return mx(),he(le(Z7t,1),it,332,0,[gB,dB,pB,bB])}function pmn(){return PA(),he(le(n8t,1),it,406,0,[mB,TK,EK,vB])}function bmn(){return qw(),he(le(Q7t,1),it,417,0,[fB,hB,i1e,s1e])}function mmn(){return xT(),he(le(txt,1),it,416,0,[f3,l4,u4,I6])}function vmn(){return R1(),he(le(Dxt,1),it,421,0,[Vx,IE,OE,M1e])}function wmn(){return jU(),he(le(yxt,1),it,371,0,[L1e,XK,QK,TB])}function ymn(){return jy(),he(le(Dde,1),it,203,0,[NW,Mde,W6,K6])}function xmn(){return Td(),he(le(UDe,1),it,284,0,[I2,HDe,Nde,Pde])}function kmn(e){var t;return e.j==(_t(),Mr)&&(t=W2t(e),ml(t,sr))}function Tmn(e,t){var n;n=t.a,ho(n,t.c.d),Na(n,t.d.d),Ny(n.a,e.n)}function T6e(e,t){var n;return n=l(B1(e.b,t),67),!n&&(n=new os),n}function sx(e){return b_(),De(e.g,154)?l(e.g,154):null}function Emn(e){e.a=null,e.e=null,uy(e.b.c,0),uy(e.f.c,0),e.c=null}function WH(){WH=U,tde=new tye(lE,0),JLe=new tye("TOP_LEFT",1)}function cA(){cA=U,lM=new rye("UPPER",0),uM=new rye("LOWER",1)}function Cmn(e,t){return q8(new lt(t.e.a+t.f.a/2,t.e.b+t.f.b/2),e)}function uut(e,t){return l(uh(xy(l($i(e.k,t),15).Oc(),N6)),113)}function lut(e,t){return l(uh(X8(l($i(e.k,t),15).Oc(),N6)),113)}function Smn(){return yx(),he(le(aIe,1),it,405,0,[zW,hM,fM,dM])}function _mn(){return TA(),he(le(RIe,1),it,353,0,[ige,GW,rge,nge])}function Amn(){return bV(),he(le(oOe,1),it,354,0,[pge,sOe,aOe,iOe])}function Lmn(){return gh(),he(le(FM,1),it,386,0,[fF,Ov,hF,D4])}function Mmn(){return Ih(),he(le(A_t,1),it,291,0,[cF,Cg,tm,oF])}function Dmn(){return cp(),he(le(ipe,1),it,223,0,[rpe,aF,aC,a9])}function Imn(){return QU(),he(le(SPe,1),it,320,0,[ope,TPe,CPe,EPe])}function Omn(){return zU(),he(le(V_t,1),it,415,0,[cpe,APe,_Pe,LPe])}function Nmn(e){return HH(),Hu(dpe,e)?l(or(dpe,e),341).Qg():null}function tf(e,t,n){return t<0?nle(e,n):l(n,69).wk().Bk(e,e.hi(),t)}function Pmn(e,t,n){var r;return r=BT(n),VV(e.j,r,t),Ti(e.k,t,n),t}function Bmn(e,t,n){var r;return r=BT(n),VV(e.d,r,t),Ti(e.e,t,n),t}function hut(e){var t,n;return t=(fb(),n=new II,n),e&&PV(t,e),t}function E6e(e){var t;return t=e.aj(e.i),e.i>0&&gu(e.g,0,t,0,e.i),t}function fut(e,t){var n;for(n=e.j.c.length;n>24}function Rmn(e){if(e.p!=1)throw ue(new gl);return Yr(e.k)<<24>>24}function jmn(e){if(e.p!=7)throw ue(new gl);return Yr(e.k)<<16>>16}function $mn(e){if(e.p!=7)throw ue(new gl);return Yr(e.f)<<16>>16}function Y5(e,t){return t.e==0||e.e==0?FL:(WT(),hle(e,t))}function put(e,t){return qe(t)===qe(e)?"(this Map)":t==null?cl:Tc(t)}function zmn(e,t,n){return Wae(Ge(dc(zo(e.f,t))),Ge(dc(zo(e.f,n))))}function qmn(e,t,n){var r;r=l(or(e.g,n),60),wt(e.a.c,new fa(t,r))}function but(e,t,n){e.i=0,e.e=0,t!=n&&(J0t(e,t,n),Q0t(e,t,n))}function Hmn(e,t,n,r,s){var o;o=UEn(s,n,r),wt(t,Bkn(s,o)),_9n(e,s,t)}function C6e(e,t,n,r,s){this.i=e,this.a=t,this.e=n,this.j=r,this.f=s}function mut(e,t){n6e.call(this),this.a=e,this.b=t,wt(this.a.b,this)}function vut(e){this.b=new Nr,this.c=new Nr,this.d=new Nr,this.a=e}function wut(e,t){var n;return n=new A5,e.Gd(n),n.a+="..",t.Hd(n),n.a}function yut(e,t){var n;for(n=t;n;)yw(e,n.i,n.j),n=ds(n);return e}function xut(e,t,n){var r;return r=BT(n),Ti(e.b,r,t),Ti(e.c,t,n),t}function ep(e){var t;for(t=0;e.Ob();)e.Pb(),t=fo(t,1);return pU(t)}function cg(e,t){Ro();var n;return n=l(e,69).vk(),H9n(n,t),n.xl(t)}function Umn(e,t,n){if(n){var r=n.oe();e.a[t]=r(n)}else delete e.a[t]}function S6e(e,t){var n;n=e.q.getHours(),e.q.setFullYear(t+Rb),QA(e,n)}function Vmn(e,t){return l(t==null?dc(zo(e.f,null)):x_(e.i,t),288)}function _6e(e,t){return e==(Jn(),Bs)&&t==Bs?4:e==Bs||t==Bs?8:32}function YH(e,t,n){return KV(e,t,n,De(t,102)&&(l(t,19).Bb&Lo)!=0)}function Gmn(e,t,n){return JT(e,t,n,De(t,102)&&(l(t,19).Bb&Lo)!=0)}function Kmn(e,t,n){return FEn(e,t,n,De(t,102)&&(l(t,19).Bb&Lo)!=0)}function A6e(e){e.b!=e.c&&(e.a=We(ka,jn,1,8,5,1),e.b=0,e.c=0)}function uA(e){return br(e.a=0&&e.a[n]===t[n];n--);return n<0}function XH(e){var t;return e?new h5e(e):(t=new bd,wce(t,e),t)}function evn(e,t){var n,r;r=!1;do n=z0t(e,t),r=r|n;while(n);return r}function tvn(e){e&&_wn((g3e(),l_e)),--dK,e&&gK!=-1&&(Gln(gK),gK=-1)}function QH(e){n9e(),urt(this,Yr(xa(Tw(e,24),aG)),Yr(xa(e,aG)))}function Sut(){Sut=U,v7t=Kr((aV(),he(le($_e,1),it,436,0,[Z0e,j_e])))}function _ut(){_ut=U,w7t=Kr((dU(),he(le(q_e,1),it,435,0,[z_e,e1e])))}function Aut(){Aut=U,x8t=Kr((gU(),he(le(bAe,1),it,432,0,[h1e,_K])))}function Lut(){Lut=U,mxt=Kr((pT(),he(le(bxt,1),it,517,0,[xB,C1e])))}function Mut(){Mut=U,r9t=Kr((WH(),he(le(ZLe,1),it,429,0,[tde,JLe])))}function Dut(){Dut=U,Gxt=Kr((TN(),he(le(FLe,1),it,428,0,[rW,BLe])))}function Iut(){Iut=U,Xxt=Kr((bN(),he(le($Le,1),it,488,0,[jLe,sW])))}function Out(){Out=U,NTt=Kr((xN(),he(le(VDe,1),it,430,0,[Bde,Fde])))}function Nut(){Nut=U,cEt=Kr((cA(),he(le(oEt,1),it,531,0,[lM,uM])))}function Put(){Put=U,qxt=Kr((sU(),he(le(LLe,1),it,431,0,[ALe,$1e])))}function But(){But=U,fCt=Kr((VH(),he(le($Ie,1),it,433,0,[sge,jIe])))}function Fut(){Fut=U,mCt=Kr((LU(),he(le(zIe,1),it,501,0,[KW,J6])))}function Rut(){Rut=U,pEt=Kr((xd(),he(le(gEt,1),it,523,0,[S3,O2])))}function jut(){jut=U,mEt=Kr((D1(),he(le(bEt,1),it,522,0,[_v,Y1])))}function $ut(){$ut=U,IEt=Kr((Q0(),he(le(DEt,1),it,528,0,[S4,Qb])))}function zut(){zut=U,jEt=Kr((Ow(),he(le(REt,1),it,465,0,[Jb,Y6])))}function qut(){qut=U,yCt=Kr((oU(),he(le(HIe,1),it,434,0,[qIe,hge])))}function Hut(){Hut=U,pSt=Kr((ZH(),he(le(MOe,1),it,491,0,[_ge,LOe])))}function Uut(){Uut=U,mSt=Kr((Sce(),he(le(BOe,1),it,492,0,[NOe,POe])))}function Vut(){Vut=U,ESt=Kr((hN(),he(le(ROe,1),it,438,0,[Ige,iY])))}function Gut(){Gut=U,qSt=Kr((ON(),he(le(aNe,1),it,437,0,[aY,sNe])))}function Kut(){Kut=U,q_t=Kr((Dae(),he(le(xY,1),it,347,0,[xPe,kPe])))}function nvn(){return ea(),he(le(MM,1),it,88,0,[J1,yc,hc,Q1,vf])}function rvn(){return _t(),he(le(Mo,1),ou,64,0,[jc,Xn,sr,Mr,Zn])}function ivn(e,t,n){return l(t==null?Ru(e.f,null,n):Hw(e.i,t,n),288)}function svn(e){return(e.k==(Jn(),Bs)||e.k==Ks)&&rs(e,(ft(),WL))}function joe(e){return e.c&&e.d?g6e(e.c)+"->"+g6e(e.d):"e_"+ww(e)}function Za(e,t){var n,r;for(tr(t),r=e.Kc();r.Ob();)n=r.Pb(),t.Cd(n)}function avn(e,t){var n;n=new D8,qm(n,"x",t.a),qm(n,"y",t.b),Z8(e,n)}function ovn(e,t){var n;n=new D8,qm(n,"x",t.a),qm(n,"y",t.b),Z8(e,n)}function Wut(e,t){var n;for(n=t;n;)yw(e,-n.i,-n.j),n=ds(n);return e}function M6e(e,t){var n,r;for(n=t,r=0;n>0;)r+=e.a[n],n-=n&-n;return r}function nf(e,t,n){var r;return r=(Sn(t,e.c.length),e.c[t]),e.c[t]=n,r}function D6e(e,t,n){e.a.c.length=0,IMn(e,t,n),e.a.c.length==0||aAn(e,t)}function cN(e){e.i=0,gO(e.b,null),gO(e.c,null),e.a=null,e.e=null,++e.g}function JH(){JH=U,G1=!0,c7t=!1,u7t=!1,h7t=!1,l7t=!1}function $oe(e){JH(),!G1&&(this.c=e,this.e=!0,this.a=new mt)}function Yut(e,t){this.c=0,this.b=t,vnt.call(this,e,17493),this.a=this.c}function Xut(e){Jwt(),nJe(this),this.a=new os,l8e(this,e),ci(this.a,e)}function Qut(){uae(this),this.b=new lt(gs,gs),this.a=new lt(oa,oa)}function ZH(){ZH=U,_ge=new hye(oEe,0),LOe=new hye("TARGET_WIDTH",1)}function X5(e,t){return(Mb(e),Lk(new vn(e,new i7e(t,e.a)))).Bd(qx)}function cvn(){return so(),he(le(IAe,1),it,367,0,[w0,xg,pu,Cu,wc])}function uvn(){return zy(),he(le(Oxt,1),it,375,0,[EB,eW,tW,ZK,JK])}function lvn(){return w2(),he(le(PLe,1),it,348,0,[q1e,NLe,H1e,RE,FE])}function hvn(){return NA(),he(le(FDe,1),it,323,0,[BDe,Ide,Ode,iM,sM])}function fvn(){return lf(),he(le(fMe,1),it,171,0,[DB,XL,Yb,QL,b4])}function dvn(){return TV(),he(le(vCt,1),it,368,0,[uge,age,lge,oge,cge])}function gvn(){return VA(),he(le(vSt,1),it,373,0,[Z6,t9,kM,xM,YB])}function pvn(){return iP(),he(le(qOe,1),it,324,0,[jOe,Oge,zOe,Nge,$Oe])}function bvn(){return n1(),he(le(Eg,1),it,170,0,[Bn,pa,zd,Av,P2])}function mvn(){return r6(),he(le(NM,1),it,256,0,[nm,uF,gPe,OM,pPe])}function vvn(e){return Xz(),function(){return umn(e,this,arguments)}}function Ao(e){return!e.c||!e.d?!1:!!e.c.i&&e.c.i==e.d.i}function I6e(e,t){return De(t,143)?wn(e.c,l(t,143).c):!1}function Gl(e){return e.t||(e.t=new GQe(e),AA(new cZe(e),0,e.t)),e.t}function Jut(e){this.b=e,ar.call(this,e),this.a=l(Gn(this.b.a,4),129)}function Zut(e){this.b=e,U8.call(this,e),this.a=l(Gn(this.b.a,4),129)}function l0(e,t,n,r,s){ult.call(this,t,r,s),this.c=e,this.b=n}function O6e(e,t,n,r,s){Ect.call(this,t,r,s),this.c=e,this.a=n}function N6e(e,t,n,r,s){Cct.call(this,t,r,s),this.c=e,this.a=n}function P6e(e,t,n,r,s){ult.call(this,t,r,s),this.c=e,this.a=n}function zoe(e,t){var n;return n=l(B1(e.d,t),23),n||l(B1(e.e,t),23)}function elt(e,t){var n,r;return n=t.ld(),r=e.Fe(n),!!r&&eu(r.e,t.md())}function tlt(e,t){var n;return n=t.ld(),new hw(n,e.e.pc(n,l(t.md(),16)))}function wvn(e,t){var n;return n=e.a.get(t),n??We(ka,jn,1,0,5,1)}function nlt(e){var t;return t=e.length,wn(ir.substr(ir.length-t,t),e)}function yr(e){if(Rr(e))return e.c=e.a,e.a.Pb();throw ue(new Dc)}function B6e(e,t){return t==0||e.e==0?e:t>0?Vbt(e,t):pdt(e,-t)}function ax(e,t){return t==0||e.e==0?e:t>0?pdt(e,t):Vbt(e,-t)}function F6e(e){Mln.call(this,e==null?cl:Tc(e),De(e,82)?l(e,82):null)}function rlt(e){var t;return e.c||(t=e.r,De(t,90)&&(e.c=l(t,29))),e.c}function qoe(e){var t;return t=new Dw,mc(t,e),rt(t,(Nt(),lc),null),t}function ilt(e){var t,n;return t=e.c.i,n=e.d.i,t.k==(Jn(),Ks)&&n.k==Ks}function Hoe(e){var t,n,r;return t=e&Ql,n=e>>22&Ql,r=e<0?pp:0,qu(t,n,r)}function yvn(e){var t,n,r,s;for(n=e,r=0,s=n.length;r=0?e.Lh(r,n,!0):Xw(e,t,n)}function kvn(e,t,n){return Xi(q8(RT(e),Xa(t.b)),q8(RT(e),Xa(n.b)))}function Tvn(e,t,n){return Xi(q8(RT(e),Xa(t.e)),q8(RT(e),Xa(n.e)))}function Evn(e,t){return b.Math.min(Eb(t.a,e.d.d.c),Eb(t.b,e.d.d.c))}function uN(e,t){e._i(e.i+1),j_(e,e.i,e.Zi(e.i,t)),e.Mi(e.i++,t),e.Ni()}function lA(e){var t,n;++e.j,t=e.g,n=e.i,e.g=null,e.i=0,e.Oi(n,t),e.Ni()}function slt(e,t,n){var r;r=new Bye(e.a),mA(r,e.a.a),Ru(r.f,t,n),e.a.a=r}function R6e(e,t,n,r){var s;for(s=0;st)throw ue(new rc(_9e(e,t,"index")));return e}function l2(e,t){var n;return n=(Sn(t,e.c.length),e.c[t]),D3e(e.c,t,1),n}function z6e(e,t){var n,r;return n=(tr(e),e),r=(tr(t),t),n==r?0:nt.p?-1:0}function dlt(e){var t;return e.a||(t=e.r,De(t,156)&&(e.a=l(t,156))),e.a}function Mvn(e,t,n){var r;return++e.e,--e.f,r=l(e.d[t].gd(n),136),r.md()}function Dvn(e){var t,n;return t=e.ld(),n=l(e.md(),16),qO(n.Nc(),new Mie(t))}function glt(e,t){return Hu(e.a,t)?(ox(e.a,t),!0):!1}function cx(e,t,n){return oN(t,e.e.Rd().gc()),oN(n,e.c.Rd().gc()),e.a[t][n]}function tU(e,t,n){this.a=e,this.b=t,this.c=n,wt(e.t,this),wt(t.i,this)}function nU(e,t,n,r){this.f=e,this.e=t,this.d=n,this.b=r,this.c=r?r.d:null}function lN(){this.b=new os,this.a=new os,this.b=new os,this.a=new os}function nT(){nT=U;var e,t;OY=(Ak(),t=new Uz,t),NY=(e=new tse,e)}function Ivn(e){var t;return Mb(e),t=new ast(e,e.a.e,e.a.d|4),new c4e(e,t)}function plt(e){var t;for(xb(e),t=0;e.a.Bd(new Ln);)t=fo(t,1);return t}function rU(e,t){return tr(t),e.c=0,"Initial capacity must not be negative")}function iU(){iU=U,TM=new Ki("org.eclipse.elk.labels.labelManager")}function blt(){blt=U,TLe=new ws("separateLayerConnections",(jU(),L1e))}function Q0(){Q0=U,S4=new aye("REGULAR",0),Qb=new aye("CRITICAL",1)}function hN(){hN=U,Ige=new dye("FIXED",0),iY=new dye("CENTER_NODE",1)}function sU(){sU=U,ALe=new J3e("QUADRATIC",0),$1e=new J3e("SCANLINE",1)}function mlt(){mlt=U,Hxt=Kr((gA(),he(le(DLe,1),it,322,0,[UL,CB,MLe])))}function vlt(){vlt=U,Uxt=Kr((kU(),he(le(OLe,1),it,351,0,[ILe,nW,z1e])))}function wlt(){wlt=U,jxt=Kr(($w(),he(le(D1e,1),it,372,0,[g3,Kb,d3])))}function ylt(){ylt=U,Wxt=Kr((Jm(),he(le(Kxt,1),it,460,0,[U1e,jE,F6])))}function xlt(){xlt=U,e9t=Kr((yT(),he(le(ede,1),it,299,0,[J1e,Z1e,SB])))}function klt(){klt=U,n9t=Kr((ip(),he(le(t9t,1),it,311,0,[_B,j6,Gx])))}function Tlt(){Tlt=U,LTt=Kr((EA(),he(le(PDe,1),it,390,0,[Lde,NDe,OW])))}function Elt(){Elt=U,FTt=Kr((BU(),he(le(WDe,1),it,387,0,[GDe,Rde,KDe])))}function Clt(){Clt=U,RTt=Kr((xA(),he(le(YDe,1),it,349,0,[$de,jde,RB])))}function Slt(){Slt=U,BTt=Kr((qo(),he(le(PTt,1),it,463,0,[aM,Fl,$u])))}function _lt(){_lt=U,jTt=Kr((AT(),he(le(QDe,1),it,350,0,[zde,XDe,oM])))}function Alt(){Alt=U,$Tt=Kr((xU(),he(le(eIe,1),it,352,0,[ZDe,qde,JDe])))}function Llt(){Llt=U,zTt=Kr(($U(),he(le(tIe,1),it,388,0,[Hde,JE,C4])))}function Mlt(){Mlt=U,qEt=Kr((kA(),he(le(vIe,1),it,392,0,[mIe,Gde,zB])))}function Dlt(){Dlt=U,xCt=Kr((FN(),he(le(GIe,1),it,393,0,[WW,UIe,VIe])))}function Ilt(){Ilt=U,qCt=Kr((PU(),he(le(lOe,1),it,300,0,[bge,uOe,cOe])))}function Olt(){Olt=U,HCt=Kr((tV(),he(le(hOe,1),it,445,0,[GB,QW,mge])))}function Nlt(){Nlt=U,VCt=Kr((fV(),he(le(UCt,1),it,456,0,[vge,yge,wge])))}function Plt(){Plt=U,WCt=Kr((YU(),he(le(gOe,1),it,394,0,[dOe,Tge,fOe])))}function Blt(){Blt=U,bSt=Kr((cU(),he(le(OOe,1),it,439,0,[Age,IOe,DOe])))}function Flt(){Flt=U,rEt=Kr((jw(),he(le(nEt,1),it,464,0,[jB,cM,FW])))}function Rlt(){Rlt=U,C7t=Kr((Ol(),he(le(E7t,1),it,471,0,[Fd,Vb,m0])))}function jlt(){jlt=U,T7t=Kr((e1(),he(le(c4,1),it,237,0,[Wc,ju,Yc])))}function $lt(){$lt=U,_7t=Kr((al(),he(le(S7t,1),it,472,0,[s1,Gb,v0])))}function zlt(){zlt=U,f7t=Kr((Nl(),he(le(uc,1),it,108,0,[R_e,Cc,o4])))}function qlt(){qlt=U,K8t=Kr((hA(),he(le(DAe,1),it,391,0,[p1e,g1e,b1e])))}function Hlt(){Hlt=U,__t=Kr((op(),he(le(dPe,1),it,346,0,[gY,F2,IM])))}function Ult(){Ult=U,ySt=Kr((HN(),he(le(Lge,1),it,444,0,[tY,nY,rY])))}function Vlt(){Vlt=U,T_t=Kr((F1(),he(le(tPe,1),it,278,0,[iC,M4,sC])))}function Glt(){Glt=U,z_t=Kr((gx(),he(le(yPe,1),it,280,0,[wPe,I4,yY])))}function P1(e,t){return!e.o&&(e.o=new yl((au(),Ag),R2,e,0)),oue(e.o,t)}function Ovn(e,t){var n;e.C&&(n=l(Zo(e.b,t),127).n,n.d=e.C.d,n.a=e.C.a)}function G6e(e){var t,n,r,s;s=e.d,t=e.a,n=e.b,r=e.c,e.d=n,e.a=r,e.b=s,e.c=t}function Nvn(e){return!e.g&&(e.g=new DS),!e.g.b&&(e.g.b=new qQe(e)),e.g.b}function fN(e){return!e.g&&(e.g=new DS),!e.g.c&&(e.g.c=new VQe(e)),e.g.c}function Pvn(e){return!e.g&&(e.g=new DS),!e.g.d&&(e.g.d=new HQe(e)),e.g.d}function Bvn(e){return!e.g&&(e.g=new DS),!e.g.a&&(e.g.a=new UQe(e)),e.g.a}function Fvn(e,t,n,r){return n&&(r=n.Rh(t,vs(n.Dh(),e.c.uk()),null,r)),r}function Rvn(e,t,n,r){return n&&(r=n.Th(t,vs(n.Dh(),e.c.uk()),null,r)),r}function Koe(e,t,n,r){var s;return s=We(Ur,fi,28,t+1,15,1),qAn(s,e,t,n,r),s}function We(e,t,n,r,s,o){var f;return f=mgt(s,r),s!=10&&he(le(e,o),t,n,s,f),f}function jvn(e,t,n){var r,s;for(s=new wT(t,e),r=0;rn||t=0?e.Lh(n,!0,!0):Xw(e,t,!0)}function nwn(e,t,n){var r;return r=Y0t(e,t,n),e.b=new DU(r.c.length),pke(e,r)}function rwn(e){if(e.b<=0)throw ue(new Dc);return--e.b,e.a-=e.c.c,bt(e.a)}function iwn(e){var t;if(!e.a)throw ue(new sot);return t=e.a,e.a=ds(e.a),t}function swn(e){for(;!e.a;)if(!Dit(e.c,new e_(e)))return!1;return!0}function ux(e){var t;return Xr(e),De(e,204)?(t=l(e,204),t):new y8(e)}function awn(e){aU(),l(e.of((bi(),L4)),181).Fc((Pl(),lF)),e.qf(epe,null)}function aU(){aU=U,VSt=new m$,KSt=new v$,GSt=Wyn((bi(),epe),VSt,em,KSt)}function oU(){oU=U,qIe=new lye("LEAF_NUMBER",0),hge=new lye("NODE_SIZE",1)}function Joe(e){e.a=We(Ur,fi,28,e.b+1,15,1),e.c=We(Ur,fi,28,e.b,15,1),e.d=0}function own(e,t){e.a.Ne(t.d,e.b)>0&&(wt(e.c,new K4e(t.c,t.d,e.d)),e.b=t.d)}function n7e(e,t){if(e.g==null||t>=e.i)throw ue(new iae(t,e.i));return e.g[t]}function Xlt(e,t,n){if(CT(e,n),n!=null&&!e.fk(n))throw ue(new Jie);return n}function Zoe(e,t){return kN(t)!=10&&he(dh(t),t.Sm,t.__elementTypeId$,kN(t),e),e}function iT(e,t,n,r){var s;r=(Mw(),r||D_e),s=e.slice(t,n),A9e(s,e,t,n,-t,r)}function rf(e,t,n,r,s){return t<0?Xw(e,n,r):l(n,69).wk().yk(e,e.hi(),t,r,s)}function cwn(e,t){return Xi(ze(Ge(Q(e,(ft(),m3)))),ze(Ge(Q(t,m3))))}function Qlt(){Qlt=U,a7t=Kr((sT(),he(le(wK,1),it,304,0,[K0e,W0e,Y0e,X0e])))}function sT(){sT=U,K0e=new gq("All",0),W0e=new znt,Y0e=new Xnt,X0e=new $nt}function Ol(){Ol=U,Fd=new Lse(Dx,0),Vb=new Lse(lE,1),m0=new Lse(Ix,2)}function Jlt(){Jlt=U,WV(),lBe=gs,WAt=oa,hBe=new va(gs),YAt=new va(oa)}function Zlt(){Zlt=U,J7t=Kr((qw(),he(le(Q7t,1),it,417,0,[fB,hB,i1e,s1e])))}function eht(){eht=U,r8t=Kr((PA(),he(le(n8t,1),it,406,0,[mB,TK,EK,vB])))}function tht(){tht=U,e8t=Kr((mx(),he(le(Z7t,1),it,332,0,[gB,dB,pB,bB])))}function nht(){nht=U,cxt=Kr((tv(),he(le(PAe,1),it,389,0,[h4,NAe,x1e,k1e])))}function rht(){rht=U,nxt=Kr((xT(),he(le(txt,1),it,416,0,[f3,l4,u4,I6])))}function iht(){iht=U,Ixt=Kr((R1(),he(le(Dxt,1),it,421,0,[Vx,IE,OE,M1e])))}function sht(){sht=U,xxt=Kr((jU(),he(le(yxt,1),it,371,0,[L1e,XK,QK,TB])))}function aht(){aht=U,MTt=Kr((jy(),he(le(Dde,1),it,203,0,[NW,Mde,W6,K6])))}function oht(){oht=U,OTt=Kr((Td(),he(le(UDe,1),it,284,0,[I2,HDe,Nde,Pde])))}function bN(){bN=U,jLe=new eye(Id,0),sW=new eye("IMPROVE_STRAIGHTNESS",1)}function cht(e,t){var n,r;return r=t/e.c.Rd().gc()|0,n=t%e.c.Rd().gc(),cx(e,r,n)}function uht(e){var t;if(e.nl())for(t=e.i-1;t>=0;--t)Oe(e,t);return E6e(e)}function r7e(e){var t,n;if(!e.b)return null;for(n=e.b;t=n.a[0];)n=t;return n}function lht(e){var t,n;if(!e.b)return null;for(n=e.b;t=n.a[1];)n=t;return n}function uwn(e){return De(e,180)?""+l(e,180).a:e==null?null:Tc(e)}function lwn(e){return De(e,180)?""+l(e,180).a:e==null?null:Tc(e)}function hht(e,t){if(t.a)throw ue(new Ic(M3t));sa(e.a,t),t.a=e,!e.j&&(e.j=t)}function i7e(e,t){Rq.call(this,t.zd(),t.yd()&-16449),tr(e),this.a=e,this.c=t}function hwn(e,t){return new Oae(t,yw(Xa(t.e),t.f.a+e,t.f.b+e),(Hn(),!1))}function fwn(e,t){return zk(),wt(e,new fa(t,bt(t.e.c.length+t.g.c.length)))}function dwn(e,t){return zk(),wt(e,new fa(t,bt(t.e.c.length+t.g.c.length)))}function fht(){fht=U,zCt=Kr((bV(),he(le(oOe,1),it,354,0,[pge,sOe,aOe,iOe])))}function dht(){dht=U,hCt=Kr((TA(),he(le(RIe,1),it,353,0,[ige,GW,rge,nge])))}function ght(){ght=U,$Et=Kr((yx(),he(le(aIe,1),it,405,0,[zW,hM,fM,dM])))}function pht(){pht=U,E_t=Kr((cp(),he(le(ipe,1),it,223,0,[rpe,aF,aC,a9])))}function bht(){bht=U,L_t=Kr((Ih(),he(le(A_t,1),it,291,0,[cF,Cg,tm,oF])))}function mht(){mht=U,j_t=Kr((gh(),he(le(FM,1),it,386,0,[fF,Ov,hF,D4])))}function vht(){vht=U,H_t=Kr((QU(),he(le(SPe,1),it,320,0,[ope,TPe,CPe,EPe])))}function wht(){wht=U,G_t=Kr((zU(),he(le(V_t,1),it,415,0,[cpe,APe,_Pe,LPe])))}function cU(){cU=U,Age=new Zse(Wyt,0),IOe=new Zse(SCe,1),DOe=new Zse(Id,2)}function Ly(e,t,n,r,s){return tr(e),tr(t),tr(n),tr(r),tr(s),new L5e(e,t,r)}function yht(e,t){var n;return n=l(ox(e.e,t),400),n?(i5e(n),n.e):null}function sl(e,t){var n;return n=bc(e,t,0),n==-1?!1:(l2(e,n),!0)}function xht(e,t,n){var r;return xb(e),r=new on,r.a=t,e.a.Nb(new ntt(r,n)),r.a}function gwn(e){var t;return xb(e),t=We(Oa,tc,28,0,15,1),M5(e.a,new E8(t)),t}function s7e(e){var t;if(!pce(e))throw ue(new Dc);return e.e=1,t=e.d,e.d=null,t}function f2(e){var t;return xc(e)&&(t=0-e,!isNaN(t))?t:Sb(TT(e))}function bc(e,t,n){for(;n=0?lV(e,n,!0,!0):Xw(e,t,!0)}function o7e(e){var t;return t=Km(Gn(e,32)),t==null&&(Ku(e),t=Km(Gn(e,32))),t}function c7e(e){var t;return e.Oh()||(t=wr(e.Dh())-e.ji(),e.$h().Mk(t)),e.zh()}function _ht(e,t){oAe=new Ot,t8t=t,jL=e,l(jL.b,68),Y6e(jL,oAe,null),qvt(jL)}function hA(){hA=U,p1e=new Dse("XY",0),g1e=new Dse("X",1),b1e=new Dse("Y",2)}function al(){al=U,s1=new Mse("TOP",0),Gb=new Mse(lE,1),v0=new Mse(jTe,2)}function ip(){ip=U,_B=new Fse(Id,0),j6=new Fse("TOP",1),Gx=new Fse(jTe,2)}function xN(){xN=U,Bde=new nye("INPUT_ORDER",0),Fde=new nye("PORT_DEGREE",1)}function aT(){aT=U,f_e=qu(Ql,Ql,524287),U6t=qu(0,0,NP),d_e=Hoe(1),Hoe(2),g_e=Hoe(0)}function ice(e){var t;return e.d!=e.r&&(t=Of(e),e.e=!!t&&t.lk()==U5t,e.d=t),e.e}function sce(e,t,n){var r;return r=e.g[t],j_(e,t,e.Zi(t,n)),e.Ri(t,n,r),e.Ni(),r}function fU(e,t){var n;return n=e.dd(t),n>=0?(e.gd(n),!0):!1}function ace(e,t){var n;for(Xr(e),Xr(t),n=!1;t.Ob();)n=n|e.Fc(t.Pb());return n}function B1(e,t){var n;return n=l(or(e.e,t),400),n?(crt(e,n),n.e):null}function Aht(e){var t,n;return t=e/60|0,n=e%60,n==0?""+t:""+t+":"+(""+n)}function My(e,t){var n=e.a[t],r=(Ice(),z0e)[typeof n];return r?r(n):m8e(typeof n)}function Pc(e,t){var n,r;return Mb(e),r=new H6e(t,e.a),n=new Nit(r),new vn(e,n)}function oce(e){var t;return t=e.b.c.length==0?null:Rt(e.b,0),t!=null&&mce(e,0),t}function vwn(e,t){var n,r,s;s=t.c.i,n=l(or(e.f,s),60),r=n.d.c-n.e.c,$7e(t.a,r,0)}function u7e(e,t){var n;for(++e.d,++e.c[t],n=t+1;n=0;)++t[0]}function wwn(e,t){Vu(e,t==null||Zq((tr(t),t))||isNaN((tr(t),t))?0:(tr(t),t))}function ywn(e,t){Gu(e,t==null||Zq((tr(t),t))||isNaN((tr(t),t))?0:(tr(t),t))}function xwn(e,t){Rw(e,t==null||Zq((tr(t),t))||isNaN((tr(t),t))?0:(tr(t),t))}function kwn(e,t){Fw(e,t==null||Zq((tr(t),t))||isNaN((tr(t),t))?0:(tr(t),t))}function Twn(e,t,n){return q8(new lt(n.e.a+n.f.a/2,n.e.b+n.f.b/2),e)==(tr(t),t)}function Ewn(e,t){return De(t,102)&&l(t,19).Bb&Lo?new sae(t,e):new wT(t,e)}function Cwn(e,t){return De(t,102)&&l(t,19).Bb&Lo?new sae(t,e):new wT(t,e)}function kN(e){return e.__elementTypeCategory$==null?10:e.__elementTypeCategory$}function Dht(e,t){return t==(Aae(),Aae(),r7t)?e.toLocaleLowerCase():e.toLowerCase()}function Iht(e){if(!e.e)throw ue(new Dc);return e.c=e.a=e.e,e.e=e.e.e,--e.d,e.a.f}function l7e(e){if(!e.c)throw ue(new Dc);return e.e=e.a=e.c,e.c=e.c.c,++e.d,e.a.f}function Oht(e){var t;for(++e.a,t=e.c.a.length;e.ae.a[r]&&(r=n);return r}function Nht(e){var t;return t=l(Q(e,(ft(),p3)),313),t?t.a==e:!1}function Pht(e){var t;return t=l(Q(e,(ft(),p3)),313),t?t.i==e:!1}function Bht(){Bht=U,Q8t=Kr((so(),he(le(IAe,1),it,367,0,[w0,xg,pu,Cu,wc])))}function Fht(){Fht=U,Nxt=Kr((zy(),he(le(Oxt,1),it,375,0,[EB,eW,tW,ZK,JK])))}function Rht(){Rht=U,Vxt=Kr((w2(),he(le(PLe,1),it,348,0,[q1e,NLe,H1e,RE,FE])))}function jht(){jht=U,DTt=Kr((NA(),he(le(FDe,1),it,323,0,[BDe,Ide,Ode,iM,sM])))}function $ht(){$ht=U,i9t=Kr((lf(),he(le(fMe,1),it,171,0,[DB,XL,Yb,QL,b4])))}function zht(){zht=U,wCt=Kr((TV(),he(le(vCt,1),it,368,0,[uge,age,lge,oge,cge])))}function qht(){qht=U,wSt=Kr((VA(),he(le(vSt,1),it,373,0,[Z6,t9,kM,xM,YB])))}function Hht(){Hht=U,CSt=Kr((iP(),he(le(qOe,1),it,324,0,[jOe,Oge,zOe,Nge,$Oe])))}function Uht(){Uht=U,k_t=Kr((ea(),he(le(MM,1),it,88,0,[J1,yc,hc,Q1,vf])))}function Vht(){Vht=U,WSt=Kr((n1(),he(le(Eg,1),it,170,0,[Bn,pa,zd,Av,P2])))}function Ght(){Ght=U,D_t=Kr((r6(),he(le(NM,1),it,256,0,[nm,uF,gPe,OM,pPe])))}function Kht(){Kht=U,N_t=Kr((_t(),he(le(Mo,1),ou,64,0,[jc,Xn,sr,Mr,Zn])))}function dU(){dU=U,z_e=new G3e("BY_SIZE",0),e1e=new G3e("BY_SIZE_AND_SHAPE",1)}function gU(){gU=U,h1e=new Y3e("EADES",0),_K=new Y3e("FRUCHTERMAN_REINGOLD",1)}function TN(){TN=U,rW=new Z3e("READING_DIRECTION",0),BLe=new Z3e("ROTATION",1)}function fA(){fA=U,sxt=new lI,axt=new eZ,rxt=new Sm,ixt=new lu,oxt=new tZ}function Wht(e){this.b=new mt,this.a=new mt,this.c=new mt,this.d=new mt,this.e=e}function Yht(e){this.g=e,this.f=new mt,this.a=b.Math.min(this.g.c.c,this.g.d.c)}function Xht(e,t,n){Qq.call(this),d7e(this),this.a=e,this.c=n,this.b=t.d,this.f=t.e}function Dwn(e,t,n){var r,s;for(s=new K(n);s.a=0&&t0?t-1:t,LZe(iln(yft(e5e(new M8,n),e.n),e.j),e.k)}function oc(e){var t,n;n=(t=new nse,t),zr((!e.q&&(e.q=new nt(Vf,e,11,10)),e.q),n)}function h7e(e){return(e.i&2?"interface ":e.i&1?"":"class ")+(Xg(e),e.o)}function pU(e){return su(e,Ni)>0?Ni:su(e,ao)<0?ao:Yr(e)}function Dy(e){return e<3?(Mh(e,h3t),e+1):e=-.01&&e.a<=H1&&(e.a=0),e.b>=-.01&&e.b<=H1&&(e.b=0),e}function Q5(e){d6();var t,n;for(n=LCe,t=0;tn&&(n=e[t]);return n}function eft(e,t){var n;if(n=pP(e.Dh(),t),!n)throw ue(new Wn(qb+t+e0e));return n}function Iy(e,t){var n;for(n=e;ds(n);)if(n=ds(n),n==t)return!0;return!1}function qwn(e,t){var n,r,s;for(r=t.a.ld(),n=l(t.a.md(),16).gc(),s=0;se||e>t)throw ue(new w3e("fromIndex: 0, toIndex: "+e+_Te+t))}function Bw(e){if(e<0)throw ue(new Wn("Illegal Capacity: "+e));this.g=this.aj(e)}function f7e(e,t){return A1(),h0(Fb),b.Math.abs(e-t)<=Fb||e==t||isNaN(e)&&isNaN(t)}function lce(e,t){var n,r,s,o;for(r=e.d,s=0,o=r.length;s0&&(e.a/=t,e.b/=t),e}function Ah(e){var t;return e.w?e.w:(t=Nbn(e),t&&!t.Vh()&&(e.w=t),t)}function oT(e,t){var n,r;r=e.a,n=R4n(e,t,null),r!=t&&!e.e&&(n=tE(e,t,n)),n&&n.oj()}function sft(e,t,n){var r,s;r=t;do s=ze(e.p[r.p])+n,e.p[r.p]=s,r=e.a[r.p];while(r!=t)}function aft(e,t,n){var r=function(){return e.apply(r,arguments)};return t.apply(r,n),r}function Ywn(e){var t;return e==null?null:(t=l(e,195),o9n(t,t.length))}function Oe(e,t){if(e.g==null||t>=e.i)throw ue(new iae(t,e.i));return e.Wi(t,e.g[t])}function Xwn(e,t){Cn();var n,r;for(r=new mt,n=0;n=14&&t<=16))),e}function Gr(e,t){var n;return tr(t),n=e[":"+t],UO(!!n,"Enum constant undefined: "+t),n}function Br(e,t,n,r,s,o){var f;return f=aoe(e,t),xft(n,f),f.i=s?8:0,f.f=r,f.e=s,f.g=o,f}function p7e(e,t,n,r,s){this.d=t,this.k=r,this.f=s,this.o=-1,this.p=1,this.c=e,this.a=n}function b7e(e,t,n,r,s){this.d=t,this.k=r,this.f=s,this.o=-1,this.p=2,this.c=e,this.a=n}function m7e(e,t,n,r,s){this.d=t,this.k=r,this.f=s,this.o=-1,this.p=6,this.c=e,this.a=n}function v7e(e,t,n,r,s){this.d=t,this.k=r,this.f=s,this.o=-1,this.p=7,this.c=e,this.a=n}function w7e(e,t,n,r,s){this.d=t,this.j=r,this.e=s,this.o=-1,this.p=4,this.c=e,this.a=n}function kft(e,t){var n,r,s,o;for(r=t,s=0,o=r.length;s=0))throw ue(new Wn("tolerance ("+e+") must be >= 0"));return e}function Eft(e,t){var n;return De(t,44)?e.c.Mc(t):(n=oue(e,t),nV(e,t),n)}function ec(e,t,n){return ev(e,t),Bu(e,n),d2(e,0),Oy(e,1),v2(e,!0),m2(e,!0),e}function CN(e,t){var n;if(n=e.gc(),t<0||t>n)throw ue(new yy(t,n));return new M4e(e,t)}function TU(e,t){e.b=b.Math.max(e.b,t.d),e.e+=t.r+(e.a.c.length==0?0:e.c),wt(e.a,t)}function Cft(e){my(e.c>=0),l6n(e.d,e.c)<0&&(e.a=e.a-1&e.d.a.length-1,e.b=e.d.c),e.c=-1}function EU(e){var t,n;for(n=e.c.Cc().Kc();n.Ob();)t=l(n.Pb(),16),t.$b();e.c.$b(),e.d=0}function a3n(e){var t,n,r,s;for(n=e.a,r=0,s=n.length;r=0}function S7e(e,t){e.r>0&&e.c0&&e.g!=0&&S7e(e.i,t/e.r*e.i.d))}function _7e(e,t){var n;n=e.c,e.c=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,1,n,e.c))}function dce(e,t){var n;n=e.c,e.c=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,4,n,e.c))}function gT(e,t){var n;n=e.k,e.k=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,2,n,e.k))}function gce(e,t){var n;n=e.D,e.D=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,2,n,e.D))}function SU(e,t){var n;n=e.f,e.f=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,8,n,e.f))}function _U(e,t){var n;n=e.i,e.i=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,7,n,e.i))}function A7e(e,t){var n;n=e.a,e.a=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,8,n,e.a))}function L7e(e,t){var n;n=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,0,n,e.b))}function M7e(e,t){var n;n=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,0,n,e.b))}function D7e(e,t){var n;n=e.c,e.c=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,1,n,e.c))}function I7e(e,t){var n;n=e.d,e.d=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,1,n,e.d))}function d3n(e,t,n){var r;e.b=t,e.a=n,r=(e.a&512)==512?new UJe:new sz,e.c=_Sn(r,e.b,e.a)}function Fft(e,t){return dp(e.e,t)?(Ro(),ice(t)?new uH(t,e):new AO(t,e)):new hnt(t,e)}function g3n(e){var t,n;return 0>e?new N3e:(t=e+1,n=new Yut(t,e),new u4e(null,n))}function p3n(e,t){Cn();var n;return n=new P8(1),Da(e)?sc(n,e,t):Ru(n.f,e,t),new er(n)}function b3n(e,t){var n,r;return n=e.c,r=t.e[e.p],r>0?l(Rt(n.a,r-1),10):null}function m3n(e,t){var n,r;return n=e.o+e.p,r=t.o+t.p,nt?(t<<=1,t>0?t:iL):t}function pce(e){switch(Hye(e.e!=3),e.e){case 2:return!1;case 0:return!0}return Svn(e)}function jft(e,t){var n;return De(t,8)?(n=l(t,8),e.a==n.a&&e.b==n.b):!1}function w3n(e,t){var n;n=new Ot,l(t.b,68),l(t.b,68),l(t.b,68),Uu(t.a,new $4e(e,n,t))}function $ft(e,t){var n,r;for(r=t.vc().Kc();r.Ob();)n=l(r.Pb(),44),eP(e,n.ld(),n.md())}function O7e(e,t){var n;n=e.d,e.d=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,11,n,e.d))}function AU(e,t){var n;n=e.j,e.j=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,13,n,e.j))}function N7e(e,t){var n;n=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,21,n,e.b))}function y3n(e,t){(JH(),G1?null:t.c).length==0&&nit(t,new Dt),sc(e.a,G1?null:t.c,t)}function x3n(e,t){t.Ug("Hierarchical port constraint processing",1),j6n(e),sOn(e),t.Vg()}function $w(){$w=U,g3=new Ise("START",0),Kb=new Ise("MIDDLE",1),d3=new Ise("END",2)}function LU(){LU=U,KW=new uye("P1_NODE_PLACEMENT",0),J6=new uye("P2_EDGE_ROUTING",1)}function Cb(){Cb=U,Ux=new Ki(JTe),MK=new Ki(tyt),zL=new Ki(nyt),wB=new Ki(ryt)}function zw(e){var t;return Lae(e.f.g,e.d),br(e.b),e.c=e.a,t=l(e.a.Pb(),44),e.b=K7e(e),t}function P7e(e){var t;return e.b==null?(r2(),r2(),xF):(t=e.ul()?e.tl():e.sl(),t)}function zft(e,t){var n;return n=t==null?-1:bc(e.b,t,0),n<0?!1:(mce(e,n),!0)}function f0(e,t){var n;return tr(t),n=t.g,e.b[n]?!1:(Ss(e.b,n,t),++e.c,!0)}function MU(e,t){var n,r;return n=1-t,r=e.a[n],e.a[n]=r.a[t],r.a[t]=e,e.b=!0,r.b=!1,r}function k3n(e,t){var n,r;for(r=t.Kc();r.Ob();)n=l(r.Pb(),272),e.b=!0,sa(e.e,n),n.b=e}function T3n(e,t){var n,r;return n=l(Q(e,(Nt(),k4)),8),r=l(Q(t,k4),8),Xi(n.b,r.b)}function bce(e,t,n){var r,s,o;return o=t>>5,s=t&31,r=xa(vb(e.n[n][o],Yr(u0(s,1))),3),r}function qft(e,t,n){var r,s,o;for(o=e.a.length-1,s=e.b,r=0;r0?1:0:(!e.c&&(e.c=iN(tu(e.f))),e.c).e}function Qft(e,t){t?e.B==null&&(e.B=e.D,e.D=null):e.B!=null&&(e.D=e.B,e.B=null)}function _3n(e,t){return xT(),e==f3&&t==l4||e==l4&&t==f3||e==I6&&t==u4||e==u4&&t==I6}function A3n(e,t){return xT(),e==f3&&t==u4||e==f3&&t==I6||e==l4&&t==I6||e==l4&&t==u4}function Jft(e,t){return A1(),h0(H1),b.Math.abs(0-t)<=H1||t==0||isNaN(0)&&isNaN(t)?0:e/t}function Zft(e,t){return ze(Ge(uh(zN(gc(new vn(null,new kn(e.c.b,16)),new iXe(e)),t))))}function j7e(e,t){return ze(Ge(uh(zN(gc(new vn(null,new kn(e.c.b,16)),new rXe(e)),t))))}function L3n(){return Ho(),he(le(Q1e,1),it,259,0,[oW,mf,GL,cW,qE,R6,KL,$E,zE,uW])}function M3n(){return Nf(),he(le(qDe,1),it,243,0,[PW,BB,FB,jDe,$De,RDe,zDe,BW,C3,E4])}function D3n(e,t){var n;t.Ug("General Compactor",1),n=B5n(l(at(e,(Pb(),dge)),393)),n.Cg(e)}function I3n(e,t){var n,r;return n=l(at(e,(Pb(),YW)),17),r=l(at(t,YW),17),iu(n.a,r.a)}function $7e(e,t,n){var r,s;for(s=Fr(e,0);s.b!=s.d.c;)r=l(Pr(s),8),r.a+=t,r.b+=n;return e}function pA(e,t,n){var r;for(r=e.b[n&e.f];r;r=r.b)if(n==r.a&&yd(t,r.g))return r;return null}function bA(e,t,n){var r;for(r=e.c[n&e.f];r;r=r.d)if(n==r.f&&yd(t,r.i))return r;return null}function O3n(e,t,n){var r,s,o;for(r=0,s=0;s>>31;r!=0&&(e[n]=r)}function xce(e,t,n,r,s,o){var f;this.c=e,f=new mt,wxe(e,f,t,e.b,n,r,s,o),this.a=new Ua(f,0)}function e0t(){this.c=new tq(0),this.b=new tq(ACe),this.d=new tq(zyt),this.a=new tq(Hhe)}function af(e,t,n,r,s,o,f){Vr.call(this,e,t),this.d=n,this.e=r,this.c=s,this.b=o,this.a=O1(f)}function Ns(e,t,n,r,s,o,f,g,w,T,C,L,F){return s2t(e,t,n,r,s,o,f,g,w,T,C,L,F),eue(e,!1),e}function N3n(e){return e.b.c.i.k==(Jn(),Ks)?l(Q(e.b.c.i,(ft(),zi)),12):e.b.c}function t0t(e){return e.b.d.i.k==(Jn(),Ks)?l(Q(e.b.d.i,(ft(),zi)),12):e.b.d}function P3n(e){var t;return t=GH(e),pw(t.a,0)?(sq(),sq(),i7t):(sq(),new Brt(t.b))}function kce(e){var t;return t=v6e(e),pw(t.a,0)?(hy(),hy(),G0e):(hy(),new wae(t.b))}function Tce(e){var t;return t=v6e(e),pw(t.a,0)?(hy(),hy(),G0e):(hy(),new wae(t.c))}function n0t(e){switch(e.g){case 2:return _t(),Zn;case 4:return _t(),sr;default:return e}}function r0t(e){switch(e.g){case 1:return _t(),Mr;case 3:return _t(),Xn;default:return e}}function i0t(e){switch(e.g){case 0:return new Une;case 1:return new Vne;default:return null}}function hx(){hx=U,A1e=new ws("edgelabelcenterednessanalysis.includelabel",(Hn(),Ub))}function z7e(){z7e=U,tEt=Ed(Cnt(hi(hi(new Js,(so(),pu),(po(),qK)),Cu,FK),wc),zK)}function s0t(){s0t=U,sEt=Ed(Cnt(hi(hi(new Js,(so(),pu),(po(),qK)),Cu,FK),wc),zK)}function Ece(){Ece=U,HM=new jJe,bpe=he(le(fl,1),A6,179,0,[]),SAt=he(le(Vf,1),KSe,62,0,[])}function pT(){pT=U,xB=new X3e("TO_INTERNAL_LTR",0),C1e=new X3e("TO_INPUT_DIRECTION",1)}function xl(){xl=U,zAe=new nb,jAe=new ty,$Ae=new rZ,RAe=new _m,qAe=new iZ,HAe=new sZ}function B3n(e,t){t.Ug(vyt,1),U8e(yln(new t_((p_(),new foe(e,!1,!1,new uS))))),t.Vg()}function F3n(e,t,n){n.Ug("DFS Treeifying phase",1),e6n(e,t),JCn(e,t),e.a=null,e.b=null,n.Vg()}function SN(e,t){return Hn(),Da(e)?z6e(e,Zr(t)):py(e)?Wae(e,Ge(t)):gy(e)?_gn(e,Pt(t)):e.Fd(t)}function mA(e,t){var n,r;for(tr(t),r=t.vc().Kc();r.Ob();)n=l(r.Pb(),44),e.zc(n.ld(),n.md())}function R3n(e,t,n){var r;for(r=n.Kc();r.Ob();)if(!YH(e,t,r.Pb()))return!1;return!0}function j3n(e,t,n,r,s){var o;return n&&(o=vs(t.Dh(),e.c),s=n.Rh(t,-1-(o==-1?r:o),null,s)),s}function $3n(e,t,n,r,s){var o;return n&&(o=vs(t.Dh(),e.c),s=n.Th(t,-1-(o==-1?r:o),null,s)),s}function a0t(e){var t;if(e.b==-2){if(e.e==0)t=-1;else for(t=0;e.a[t]==0;t++);e.b=t}return e.b}function z3n(e){if(tr(e),e.length==0)throw ue(new gd("Zero length BigInteger"));K_n(this,e)}function q7e(e){this.i=e.gc(),this.i>0&&(this.g=this.aj(this.i+(this.i/8|0)+1),e.Qc(this.g))}function o0t(e,t,n){this.g=e,this.d=t,this.e=n,this.a=new mt,Zkn(this),Cn(),Gs(this.a,null)}function H7e(e,t){t.q=e,e.d=b.Math.max(e.d,t.r),e.b+=t.d+(e.a.c.length==0?0:e.c),wt(e.a,t)}function bT(e,t){var n,r,s,o;return s=e.c,n=e.c+e.b,o=e.d,r=e.d+e.a,t.a>s&&t.ao&&t.bs?n=s:Yn(t,n+1),e.a=ef(e.a,0,t)+(""+r)+F5e(e.a,n)}function b0t(e,t){e.a=fo(e.a,1),e.c=b.Math.min(e.c,t),e.b=b.Math.max(e.b,t),e.d=fo(e.d,t)}function W3n(e,t){return t1||e.Ob())return++e.a,e.g=0,t=e.i,e.Ob(),t;throw ue(new Dc)}function y0t(e){switch(e.a.g){case 1:return new Ctt;case 3:return new Cgt;default:return new bie}}function V7e(e,t){switch(t){case 1:return!!e.n&&e.n.i!=0;case 2:return e.k!=null}return m6e(e,t)}function tu(e){return PP>22),s=e.h+t.h+(r>>22),qu(n&Ql,r&Ql,s&pp)}function A0t(e,t){var n,r,s;return n=e.l-t.l,r=e.m-t.m+(n>>22),s=e.h-t.h+(r>>22),qu(n&Ql,r&Ql,s&pp)}function pyn(e){var t,n;for(cIn(e),n=new K(e.d);n.ar)throw ue(new yy(t,r));return e.Si()&&(n=Got(e,n)),e.Ei(t,n)}function kT(e,t,n,r,s){var o,f;for(f=n;f<=s;f++)for(o=t;o<=r;o++)s6(e,o,f)||UV(e,o,f,!0,!1)}function Lyn(e){d6();var t,n,r;for(n=We(Ca,dt,8,2,0,1),r=0,t=0;t<2;t++)r+=.5,n[t]=k7n(r,e);return n}function TT(e){var t,n,r;return t=~e.l+1&Ql,n=~e.m+(t==0?1:0)&Ql,r=~e.h+(t==0&&n==0?1:0)&pp,qu(t,n,r)}function Z7e(e){var t;if(e<0)return ao;if(e==0)return 0;for(t=iL;!(t&e);t>>=1);return t}function Dce(e,t,n){return e>=128?!1:e<64?O_(xa(u0(1,e),n),0):O_(xa(u0(1,e-64),t),0)}function PN(e,t,n){return n==null?(!e.q&&(e.q=new Nr),ox(e.q,t)):(!e.q&&(e.q=new Nr),Ti(e.q,t,n)),e}function rt(e,t,n){return n==null?(!e.q&&(e.q=new Nr),ox(e.q,t)):(!e.q&&(e.q=new Nr),Ti(e.q,t,n)),e}function j0t(e){var t,n;return n=new eU,mc(n,e),rt(n,(Cb(),Ux),e),t=new Nr,iLn(e,n,t),IDn(e,n,t),n}function $0t(e){var t,n;return t=e.t-e.k[e.o.p]*e.d+e.j[e.o.p]>e.f,n=e.u+e.e[e.o.p]*e.d>e.f*e.s*e.d,t||n}function z0t(e,t){var n,r,s,o;for(n=!1,r=e.a[t].length,o=0;o=0,"Negative initial capacity"),UO(t>=0,"Non-positive load factor"),Dl(this)}function Dyn(e,t,n,r,s){var o,f;if(f=e.length,o=n.length,t<0||r<0||s<0||t+s>f||r+s>o)throw ue(new Vwe)}function r8e(e,t){Cn();var n,r,s,o,f;for(f=!1,r=t,s=0,o=r.length;s1||t>=0&&e.b<3)}function Nce(e){var t,n,r;t=~e.l+1&Ql,n=~e.m+(t==0?1:0)&Ql,r=~e.h+(t==0&&n==0?1:0)&pp,e.l=t,e.m=n,e.h=r}function a8e(e){Cn();var t,n,r;for(r=1,n=e.Kc();n.Ob();)t=n.Pb(),r=31*r+(t!=null?ts(t):0),r=r|0;return r}function Byn(e,t,n,r,s){var o;return o=Y9e(e,t),n&&Nce(o),s&&(e=L7n(e,t),r?Hb=TT(e):Hb=qu(e.l,e.m,e.h)),o}function Q0t(e,t,n){e.g=Jue(e,t,(_t(),sr),e.b),e.d=Jue(e,n,sr,e.b),!(e.g.c==0||e.d.c==0)&&Apt(e)}function J0t(e,t,n){e.g=Jue(e,t,(_t(),Zn),e.j),e.d=Jue(e,n,Zn,e.j),!(e.g.c==0||e.d.c==0)&&Apt(e)}function o8e(e,t){switch(t){case 7:return!!e.e&&e.e.i!=0;case 8:return!!e.d&&e.d.i!=0}return V8e(e,t)}function Fyn(e,t){switch(t.g){case 0:De(e.b,641)||(e.b=new p0t);break;case 1:De(e.b,642)||(e.b=new gst)}}function Z0t(e){switch(e.g){case 0:return new Kne;default:throw ue(new Wn(UG+(e.f!=null?e.f:""+e.g)))}}function e1t(e){switch(e.g){case 0:return new dl;default:throw ue(new Wn(UG+(e.f!=null?e.f:""+e.g)))}}function Ryn(e,t,n){return!Lk(ji(new vn(null,new kn(e.c,16)),new Vl(new $tt(t,n)))).Bd((Bm(),qx))}function t1t(e,t){return q8(RT(l(Q(t,(Vc(),_3)),88)),new lt(e.c.e.a-e.b.e.a,e.c.e.b-e.b.e.b))<=0}function jyn(e,t){for(;e.g==null&&!e.c?o6e(e):e.g==null||e.i!=0&&l(e.g[e.i-1],51).Ob();)Hln(t,IV(e))}function Zm(e){var t,n;for(n=new K(e.a.b);n.ar?1:0}function qyn(e){return wt(e.c,(fx(),USt)),f7e(e.a,ze(Ge(It((aue(),DW)))))?new rre:new uQe(e)}function Hyn(e){for(;!e.d||!e.d.Ob();)if(e.b&&!h_(e.b))e.d=l(Q8(e.b),51);else return null;return e.d}function u8e(e){switch(e.g){case 1:return zyt;default:case 2:return 0;case 3:return Hhe;case 4:return ACe}}function Uyn(){Ii();var e;return kpe||(e=lfn(Bb("M",!0)),e=gH(Bb("M",!1),e),kpe=e,kpe)}function zU(){zU=U,cpe=new Iq("ELK",0),APe=new Iq("JSON",1),_Pe=new Iq("DOT",2),LPe=new Iq("SVG",3)}function xA(){xA=U,$de=new zse("STACKED",0),jde=new zse("REVERSE_STACKED",1),RB=new zse("SEQUENCED",2)}function kA(){kA=U,mIe=new Kse(Id,0),Gde=new Kse("MIDDLE_TO_MIDDLE",1),zB=new Kse("AVOID_OVERLAP",2)}function ST(){ST=U,CLe=new UZ,SLe=new vI,Sxt=new _j,Cxt=new VZ,Ext=new r8,ELe=(tr(Ext),new ke)}function qU(){qU=U,fPe=new mw(15),S_t=new qa((bi(),B2),fPe),DM=r9,cPe=s_t,uPe=Mv,hPe=a7,lPe=A4}function Z5(e,t){var n,r,s,o,f;for(r=t,s=0,o=r.length;s=e.b.c.length||(h8e(e,2*t+1),n=2*t+2,n0&&(t.Cd(n),n.i&&G4n(n))}function f8e(e,t,n){var r;for(r=n-1;r>=0&&e[r]===t[r];r--);return r<0?0:Sse(xa(e[r],Uo),xa(t[r],Uo))?-1:1}function i1t(e,t,n){var r,s;this.g=e,this.c=t,this.a=this,this.d=this,s=Rft(n),r=We(R6t,IP,227,s,0,1),this.b=r}function jce(e,t,n,r,s){var o,f;for(f=n;f<=s;f++)for(o=t;o<=r;o++)if(s6(e,o,f))return!0;return!1}function Xyn(e,t){var n,r;for(r=e.Zb().Cc().Kc();r.Ob();)if(n=l(r.Pb(),16),n.Hc(t))return!0;return!1}function s1t(e,t,n){var r,s,o,f;for(tr(n),f=!1,o=e.fd(t),s=n.Kc();s.Ob();)r=s.Pb(),o.Rb(r),f=!0;return f}function $ce(e,t){var n,r;return r=l(Gn(e.a,4),129),n=We(gpe,m0e,424,t,0,1),r!=null&&gu(r,0,n,0,r.length),n}function a1t(e,t){var n;return n=new gle((e.f&256)!=0,e.i,e.a,e.d,(e.f&16)!=0,e.j,e.g,t),e.e!=null||(n.c=e),n}function Qyn(e,t){var n;return e===t?!0:De(t,85)?(n=l(t,85),p9e(Rm(e),n.vc())):!1}function o1t(e,t,n){var r,s;for(s=n.Kc();s.Ob();)if(r=l(s.Pb(),44),e.Be(t,r.md()))return!0;return!1}function c1t(e,t,n){return e.d[t.p][n.p]||(e7n(e,t,n),e.d[t.p][n.p]=!0,e.d[n.p][t.p]=!0),e.a[t.p][n.p]}function Jyn(e,t){var n;return!e||e==t||!rs(t,(ft(),b3))?!1:(n=l(Q(t,(ft(),b3)),10),n!=e)}function zce(e){switch(e.i){case 2:return!0;case 1:return!1;case-1:++e.c;default:return e.$l()}}function u1t(e){switch(e.i){case-2:return!0;case-1:return!1;case 1:--e.c;default:return e._l()}}function l1t(e){Qot.call(this,"The given string does not match the expected format for individual spacings.",e)}function Zyn(e,t){var n;t.Ug("Min Size Preprocessing",1),n=E9e(e),Vi(e,(fg(),vM),n.a),Vi(e,JW,n.b),t.Vg()}function e4n(e){var t,n,r;for(t=0,r=We(Ca,dt,8,e.b,0,1),n=Fr(e,0);n.b!=n.d.c;)r[t++]=l(Pr(n),8);return r}function qce(e,t,n){var r,s,o;for(r=new os,o=Fr(n,0);o.b!=o.d.c;)s=l(Pr(o),8),ci(r,new xo(s));s1t(e,t,r)}function t4n(e,t){var n;return n=fo(e,t),Sse(Doe(e,t),0)|Pq(Doe(e,n),0)?n:fo(DP,Doe(vb(n,63),1))}function n4n(e,t){var n,r;return n=l(e.d.Bc(t),16),n?(r=e.e.hc(),r.Gc(n),e.e.d-=n.gc(),n.$b(),r):null}function h1t(e){var t;if(t=e.a.c.length,t>0)return Uk(t-1,e.a.c.length),l2(e.a,t-1);throw ue(new uJe)}function f1t(e,t,n){if(e>t)throw ue(new Wn(oG+e+_3t+t));if(e<0||t>n)throw ue(new w3e(oG+e+MTe+t+_Te+n))}function _T(e,t){e.D==null&&e.B!=null&&(e.D=e.B,e.B=null),gce(e,t==null?null:(tr(t),t)),e.C&&e.hl(null)}function r4n(e,t){var n;n=It((aue(),DW))!=null&&t.Sg()!=null?ze(Ge(t.Sg()))/ze(Ge(It(DW))):1,Ti(e.b,t,n)}function d8e(e,t){var n,r;if(r=e.c[t],r!=0)for(e.c[t]=0,e.d-=r,n=t+1;nFG?e-n>FG:n-e>FG}function T1t(e,t){var n;for(n=0;ns&&(Zgt(t.q,s),r=n!=t.q.d)),r}function E1t(e,t){var n,r,s,o,f,g,w,T;return w=t.i,T=t.j,r=e.f,s=r.i,o=r.j,f=w-s,g=T-o,n=b.Math.sqrt(f*f+g*g),n}function w8e(e,t){var n,r;return r=rV(e),r||(n=(Ble(),hbt(t)),r=new JQe(n),zr(r.El(),e)),r}function jN(e,t){var n,r;return n=l(e.c.Bc(t),16),n?(r=e.hc(),r.Gc(n),e.d-=n.gc(),n.$b(),e.mc(r)):e.jc()}function g4n(e,t){var n,r;for(r=Yl(e.d,1)!=0,n=!0;n;)n=!1,n=t.c.mg(t.e,r),n=n|bP(e,t,r,!1),r=!r;F7e(e)}function C1t(e,t,n,r){var s,o;e.a=t,o=r?0:1,e.f=(s=new Rpt(e.c,e.a,n,o),new bmt(n,e.a,s,e.e,e.b,e.c==(jw(),cM)))}function UU(e){var t;return br(e.a!=e.b),t=e.d.a[e.a],Zrt(e.b==e.d.c&&t!=null),e.c=e.a,e.a=e.a+1&e.d.a.length-1,t}function S1t(e){var t;if(e.c!=0)return e.c;for(t=0;t=e.c.b:e.a<=e.c.b))throw ue(new Dc);return t=e.a,e.a+=e.c.c,++e.b,bt(t)}function Kce(e){var t;return t=new Nye(e.a),mc(t,e),rt(t,(ft(),zi),e),t.o.a=e.g,t.o.b=e.f,t.n.a=e.i,t.n.b=e.j,t}function Wce(e){return(_t(),ll).Hc(e.j)?ze(Ge(Q(e,(ft(),HE)))):Bc(he(le(Ca,1),dt,8,0,[e.i.n,e.n,e.a])).b}function b4n(e){var t;return t=$q(eEt),l(Q(e,(ft(),_u)),21).Hc((Ho(),qE))&&hi(t,(so(),pu),(po(),VK)),t}function m4n(e){var t,n,r,s;for(s=new Ys,r=new K(e);r.a=0?t:-t;r>0;)r%2==0?(n*=n,r=r/2|0):(s*=n,r-=1);return t<0?1/s:s}function k4n(e,t){var n,r,s;for(s=1,n=e,r=t>=0?t:-t;r>0;)r%2==0?(n*=n,r=r/2|0):(s*=n,r-=1);return t<0?1/s:s}function Lb(e,t){var n,r,s,o;return o=(s=e?rV(e):null,o2t((r=t,s&&s.Gl(),r))),o==t&&(n=rV(e),n&&n.Gl()),o}function _1t(e,t,n){var r,s;return s=e.f,e.f=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,0,s,t),n?n.nj(r):n=r),n}function A1t(e,t,n){var r,s;return s=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,3,s,t),n?n.nj(r):n=r),n}function x8e(e,t,n){var r,s;return s=e.a,e.a=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,1,s,t),n?n.nj(r):n=r),n}function L1t(e){var t,n;if(e!=null)for(n=0;n=r||t-129&&e<128?(dst(),t=e+128,n=w_e[t],!n&&(n=w_e[t]=new Er(e)),n):new Er(e)}function LT(e){var t,n;return e>-129&&e<128?(Mst(),t=e+128,n=T_e[t],!n&&(n=T_e[t]=new Kn(e)),n):new Kn(e)}function I1t(e,t){var n;e.a.c.length>0&&(n=l(Rt(e.a,e.a.c.length-1),579),l8e(n,t))||wt(e.a,new Xut(t))}function A4n(e){c0();var t,n;t=e.d.c-e.e.c,n=l(e.g,154),Uu(n.b,new VYe(t)),Uu(n.c,new GYe(t)),Za(n.i,new KYe(t))}function O1t(e){var t;return t=new lb,t.a+="VerticalSegment ",mu(t,e.e),t.a+=" ",li(t,zye(new dse,new K(e.k))),t.a}function Yce(e,t){var n,r,s;for(n=0,s=Fc(e,t).Kc();s.Ob();)r=l(s.Pb(),12),n+=Q(r,(ft(),Bl))!=null?1:0;return n}function n6(e,t,n){var r,s,o;for(r=0,o=Fr(e,0);o.b!=o.d.c&&(s=ze(Ge(Pr(o))),!(s>n));)s>=t&&++r;return r}function N1t(e,t){Xr(e);try{return e._b(t)}catch(n){if(n=ms(n),De(n,212)||De(n,169))return!1;throw ue(n)}}function T8e(e,t){Xr(e);try{return e.Hc(t)}catch(n){if(n=ms(n),De(n,212)||De(n,169))return!1;throw ue(n)}}function L4n(e,t){Xr(e);try{return e.Mc(t)}catch(n){if(n=ms(n),De(n,212)||De(n,169))return!1;throw ue(n)}}function By(e,t){Xr(e);try{return e.xc(t)}catch(n){if(n=ms(n),De(n,212)||De(n,169))return null;throw ue(n)}}function M4n(e,t){Xr(e);try{return e.Bc(t)}catch(n){if(n=ms(n),De(n,212)||De(n,169))return null;throw ue(n)}}function CA(e,t){switch(t.g){case 2:case 1:return Fc(e,t);case 3:case 4:return uf(Fc(e,t))}return Cn(),Cn(),Co}function SA(e){var t;return e.Db&64?d0(e):(t=new Af(d0(e)),t.a+=" (name: ",Jo(t,e.zb),t.a+=")",t.a)}function D4n(e){var t;return t=l(B1(e.c.c,""),233),t||(t=new rx(_k(Sk(new sy,""),"Other")),y2(e.c.c,"",t)),t}function E8e(e,t,n){var r,s;return s=e.sb,e.sb=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,4,s,t),n?n.nj(r):n=r),n}function C8e(e,t,n){var r,s;return s=e.r,e.r=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,8,s,e.r),n?n.nj(r):n=r),n}function I4n(e,t,n){var r,s;return r=new rp(e.e,4,13,(s=t.c,s||(En(),td)),null,x2(e,t),!1),n?n.nj(r):n=r,n}function O4n(e,t,n){var r,s;return r=new rp(e.e,3,13,null,(s=t.c,s||(En(),td)),x2(e,t),!1),n?n.nj(r):n=r,n}function b2(e,t){var n,r;return n=l(t,691),r=n.el(),!r&&n.fl(r=De(t,90)?new fnt(e,l(t,29)):new Pct(e,l(t,156))),r}function $N(e,t,n){var r;e._i(e.i+1),r=e.Zi(t,n),t!=e.i&&gu(e.g,t,e.g,t+1,e.i-t),Ss(e.g,t,r),++e.i,e.Mi(t,n),e.Ni()}function N4n(e,t){var n;return t.a&&(n=t.a.a.length,e.a?li(e.a,e.b):e.a=new Eh(e.d),qct(e.a,t.a,t.d.length,n)),e}function P4n(e,t){var n;e.c=t,e.a=$5n(t),e.a<54&&(e.f=(n=t.d>1?$ct(t.a[0],t.a[1]):$ct(t.a[0],0),Vm(t.e>0?n:f2(n))))}function zN(e,t){var n;return n=new on,e.a.Bd(n)?(Pk(),new ose(tr(xht(e,n.a,t)))):(xb(e),Pk(),Pk(),N_e)}function P1t(e,t){var n;e.c.length!=0&&(n=l(j1(e,We(kg,S2,10,e.c.length,0,1)),199),Sye(n,new K9),A2t(n,t))}function B1t(e,t){var n;e.c.length!=0&&(n=l(j1(e,We(kg,S2,10,e.c.length,0,1)),199),Sye(n,new Qd),A2t(n,t))}function Fi(e,t){return Da(e)?wn(e,t):py(e)?Mit(e,t):gy(e)?(tr(e),qe(e)===qe(t)):w5e(e)?e.Fb(t):f5e(e)?Ant(e,t):f6e(e,t)}function of(e,t,n){if(t<0)D9e(e,n);else{if(!n.rk())throw ue(new Wn(qb+n.xe()+TL));l(n,69).wk().Ek(e,e.hi(),t)}}function F1t(e,t,n){if(e<0||t>n)throw ue(new rc(oG+e+MTe+t+", size: "+n));if(e>t)throw ue(new Wn(oG+e+_3t+t))}function R1t(e){var t;return e.Db&64?d0(e):(t=new Af(d0(e)),t.a+=" (source: ",Jo(t,e.d),t.a+=")",t.a)}function j1t(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e>=48&&e<=57?e-48:0}function B4n(e){nG();var t,n,r,s;for(n=gue(),r=0,s=n.length;r=0?Db(e):Z_(Db(f2(e))))}function q1t(e,t,n,r,s,o){this.e=new mt,this.f=(qo(),aM),wt(this.e,e),this.d=t,this.a=n,this.b=r,this.f=s,this.c=o}function j4n(e,t,n){e.n=Fm(hm,[dt,yhe],[376,28],14,[n,da(b.Math.ceil(t/32))],2),e.o=t,e.p=n,e.j=t-1>>1,e.k=n-1>>1}function H1t(e){return e-=e>>1&1431655765,e=(e>>2&858993459)+(e&858993459),e=(e>>4)+e&252645135,e+=e>>8,e+=e>>16,e&63}function U1t(e,t){var n,r;for(r=new ar(e);r.e!=r.i.gc();)if(n=l(dr(r),142),qe(t)===qe(n))return!0;return!1}function $4n(e,t,n){var r,s,o;return o=(s=GT(e.b,t),s),o&&(r=l(QV(vN(e,o),""),29),r)?Z9e(e,r,t,n):null}function Xce(e,t,n){var r,s,o;return o=(s=GT(e.b,t),s),o&&(r=l(QV(vN(e,o),""),29),r)?eke(e,r,t,n):null}function z4n(e,t){var n;if(n=J5(e.i,t),n==null)throw ue(new dd("Node did not exist in input."));return U7e(t,n),null}function q4n(e,t){var n;if(n=pP(e,t),De(n,331))return l(n,35);throw ue(new Wn(qb+t+"' is not a valid attribute"))}function AA(e,t,n){var r;if(r=e.gc(),t>r)throw ue(new yy(t,r));if(e.Si()&&e.Hc(n))throw ue(new Wn(nB));e.Gi(t,n)}function H4n(e,t){t.Ug("Sort end labels",1),Os(ji(Pc(new vn(null,new kn(e.b,16)),new vj),new Z7),new yZ),t.Vg()}function ea(){ea=U,J1=new CO(uL,0),yc=new CO(Ix,1),hc=new CO(Dx,2),Q1=new CO(Ohe,3),vf=new CO("UP",4)}function HN(){HN=U,tY=new eae("P1_STRUCTURE",0),nY=new eae("P2_PROCESSING_ORDER",1),rY=new eae("P3_EXECUTION",2)}function V1t(){V1t=U,pCt=Ed(Ed(w_(Ed(Ed(w_(hi(new Js,(yx(),hM),(YA(),Vde)),fM),dIe),pIe),dM),uIe),bIe)}function U4n(e){switch(l(Q(e,(ft(),wv)),311).g){case 1:rt(e,wv,(ip(),Gx));break;case 2:rt(e,wv,(ip(),j6))}}function V4n(e){switch(e){case 0:return new IJe;case 1:return new MJe;case 2:return new DJe;default:throw ue(new rO)}}function G1t(e){switch(e.g){case 2:return yc;case 1:return hc;case 4:return Q1;case 3:return vf;default:return J1}}function L8e(e,t){switch(e.b.g){case 0:case 1:return t;case 2:case 3:return new Zh(t.d,0,t.a,t.b);default:return null}}function M8e(e){switch(e.g){case 1:return Zn;case 2:return Xn;case 3:return sr;case 4:return Mr;default:return jc}}function UN(e){switch(e.g){case 1:return Mr;case 2:return Zn;case 3:return Xn;case 4:return sr;default:return jc}}function KU(e){switch(e.g){case 1:return sr;case 2:return Mr;case 3:return Zn;case 4:return Xn;default:return jc}}function D8e(e,t,n,r){switch(t){case 1:return!e.n&&(e.n=new nt(nc,e,1,7)),e.n;case 2:return e.k}return Txe(e,t,n,r)}function LA(e,t,n){var r,s;return e.Pj()?(s=e.Qj(),r=rle(e,t,n),e.Jj(e.Ij(7,bt(n),r,t,s)),r):rle(e,t,n)}function Qce(e,t){var n,r,s;e.d==null?(++e.e,--e.f):(s=t.ld(),n=t.Bi(),r=(n&Ni)%e.d.length,Mvn(e,r,pbt(e,r,n,s)))}function MT(e,t){var n;n=(e.Bb&b0)!=0,t?e.Bb|=b0:e.Bb&=-1025,e.Db&4&&!(e.Db&1)&&Bi(e,new l0(e,1,10,n,t))}function DT(e,t){var n;n=(e.Bb&Zy)!=0,t?e.Bb|=Zy:e.Bb&=-4097,e.Db&4&&!(e.Db&1)&&Bi(e,new l0(e,1,12,n,t))}function IT(e,t){var n;n=(e.Bb&Cl)!=0,t?e.Bb|=Cl:e.Bb&=-8193,e.Db&4&&!(e.Db&1)&&Bi(e,new l0(e,1,15,n,t))}function OT(e,t){var n;n=(e.Bb&a4)!=0,t?e.Bb|=a4:e.Bb&=-2049,e.Db&4&&!(e.Db&1)&&Bi(e,new l0(e,1,11,n,t))}function G4n(e){var t;e.g&&(t=e.c.kg()?e.f:e.a,dke(t.a,e.o,!0),dke(t.a,e.o,!1),rt(e.o,(Nt(),Ds),(Pa(),Iv)))}function K4n(e){var t;if(!e.a)throw ue(new ic("Cannot offset an unassigned cut."));t=e.c-e.b,e.b+=t,mot(e,t),bot(e,t)}function W4n(e,t){var n;if(n=or(e.k,t),n==null)throw ue(new dd("Port did not exist in input."));return U7e(t,n),null}function Y4n(e){var t,n;for(n=fbt(Ah(e)).Kc();n.Ob();)if(t=Zr(n.Pb()),XA(e,t))return Xmn((Wet(),gAt),t);return null}function K1t(e){var t,n;for(n=e.p.a.ec().Kc();n.Ob();)if(t=l(n.Pb(),218),t.f&&e.b[t.c]<-1e-10)return t;return null}function X4n(e){var t,n;for(n=yb(new lb,91),t=!0;e.Ob();)t||(n.a+=To),t=!1,mu(n,e.Pb());return(n.a+="]",n).a}function Q4n(e){var t,n,r;for(t=new mt,r=new K(e.b);r.at?1:e==t?e==0?Xi(1/e,1/t):0:isNaN(e)?isNaN(t)?0:1:-1}function Z4n(e){var t;return t=e.a[e.c-1&e.a.length-1],t==null?null:(e.c=e.c-1&e.a.length-1,Ss(e.a,e.c,null),t)}function e5n(e){var t,n,r;for(r=0,n=e.length,t=0;t=1?yc:Q1):n}function i5n(e){switch(l(Q(e,(Nt(),yp)),223).g){case 1:return new Ree;case 3:return new Hee;default:return new Fee}}function Mb(e){if(e.c)Mb(e.c);else if(e.d)throw ue(new ic("Stream already terminated, can't be modified or used"))}function Hw(e,t,n){var r;return r=e.a.get(t),e.a.set(t,n===void 0?null:n),r===void 0?(++e.c,++e.b.g):++e.d,r}function s5n(e,t,n){var r,s;for(s=e.a.ec().Kc();s.Ob();)if(r=l(s.Pb(),10),DN(n,l(Rt(t,r.p),16)))return r;return null}function O8e(e,t,n){var r;return r=0,t&&(R5(e.a)?r+=t.f.a/2:r+=t.f.b/2),n&&(R5(e.a)?r+=n.f.a/2:r+=n.f.b/2),r}function a5n(e,t,n){var r;r=n,!r&&(r=e5e(new M8,0)),r.Ug(syt,2),Jdt(e.b,t,r.eh(1)),xMn(e,t,r.eh(1)),EIn(t,r.eh(1)),r.Vg()}function N8e(e,t,n){var r,s;return r=(fb(),s=new LS,s),yU(r,t),wU(r,n),e&&zr((!e.a&&(e.a=new Qs(qh,e,5)),e.a),r),r}function Zce(e){var t;return e.Db&64?d0(e):(t=new Af(d0(e)),t.a+=" (identifier: ",Jo(t,e.k),t.a+=")",t.a)}function eue(e,t){var n;n=(e.Bb&nu)!=0,t?e.Bb|=nu:e.Bb&=-32769,e.Db&4&&!(e.Db&1)&&Bi(e,new l0(e,1,18,n,t))}function P8e(e,t){var n;n=(e.Bb&nu)!=0,t?e.Bb|=nu:e.Bb&=-32769,e.Db&4&&!(e.Db&1)&&Bi(e,new l0(e,1,18,n,t))}function NT(e,t){var n;n=(e.Bb&_d)!=0,t?e.Bb|=_d:e.Bb&=-16385,e.Db&4&&!(e.Db&1)&&Bi(e,new l0(e,1,16,n,t))}function B8e(e,t){var n;n=(e.Bb&Lo)!=0,t?e.Bb|=Lo:e.Bb&=-65537,e.Db&4&&!(e.Db&1)&&Bi(e,new l0(e,1,20,n,t))}function F8e(e){var t;return t=We(xf,Ad,28,2,15,1),e-=Lo,t[0]=(e>>10)+BP&ta,t[1]=(e&1023)+56320&ta,If(t,0,t.length)}function o5n(e){var t;return t=qy(e),t>34028234663852886e22?gs:t<-34028234663852886e22?oa:t}function fo(e,t){var n;return xc(e)&&xc(t)&&(n=e+t,PP"+Um(t.c):"e_"+ts(t),e.b&&e.c?Um(e.b)+"->"+Um(e.c):"e_"+ts(e))}function l5n(e,t){return wn(t.b&&t.c?Um(t.b)+"->"+Um(t.c):"e_"+ts(t),e.b&&e.c?Um(e.b)+"->"+Um(e.c):"e_"+ts(e))}function Uw(e,t){return A1(),h0(Fb),b.Math.abs(e-t)<=Fb||e==t||isNaN(e)&&isNaN(t)?0:et?1:bw(isNaN(e),isNaN(t))}function cp(){cp=U,rpe=new Aq(uL,0),aF=new Aq("POLYLINE",1),aC=new Aq("ORTHOGONAL",2),a9=new Aq("SPLINES",3)}function YU(){YU=U,dOe=new Jse("ASPECT_RATIO_DRIVEN",0),Tge=new Jse("MAX_SCALE_DRIVEN",1),fOe=new Jse("AREA_DRIVEN",2)}function h5n(e,t,n){var r;try{Nyn(e,t,n)}catch(s){throw s=ms(s),De(s,606)?(r=s,ue(new F6e(r))):ue(s)}return t}function f5n(e){var t,n,r;for(n=0,r=e.length;nt&&r.Ne(e[o-1],e[o])>0;--o)f=e[o],Ss(e,o,e[o-1]),Ss(e,o-1,f)}function an(e,t){var n,r,s,o,f;if(n=t.f,y2(e.c.d,n,t),t.g!=null)for(s=t.g,o=0,f=s.length;ot){Vct(n);break}}YO(n,t)}function b5n(e,t){var n,r,s;r=W5(t),s=ze(Ge(Ry(r,(Nt(),y0)))),n=b.Math.max(0,s/2-.5),RA(t,n,1),wt(e,new ltt(t,n))}function m5n(e,t,n){var r;n.Ug("Straight Line Edge Routing",1),n.dh(t,RCe),r=l(at(t,(V5(),Q6)),27),Ovt(e,r),n.dh(t,$G)}function R8e(e,t){e.n.c.length==0&&wt(e.n,new qH(e.s,e.t,e.i)),wt(e.b,t),vxe(l(Rt(e.n,e.n.c.length-1),209),t),pvt(e,t)}function MA(e){var t;this.a=(t=l(e.e&&e.e(),9),new Jh(t,l(o0(t,t.length),9),0)),this.b=We(ka,jn,1,this.a.a.length,5,1)}function Tc(e){var t;return Array.isArray(e)&&e.Tm===xe?Pm(dh(e))+"@"+(t=ts(e)>>>0,t.toString(16)):e.toString()}function v5n(e,t){return e.h==NP&&e.m==0&&e.l==0?(t&&(Hb=qu(0,0,0)),Mnt((aT(),d_e))):(t&&(Hb=qu(e.l,e.m,e.h)),qu(0,0,0))}function w5n(e,t){switch(t.g){case 2:return e.b;case 1:return e.c;case 4:return e.d;case 3:return e.a;default:return!1}}function Q1t(e,t){switch(t.g){case 2:return e.b;case 1:return e.c;case 4:return e.d;case 3:return e.a;default:return!1}}function j8e(e,t,n,r){switch(t){case 3:return e.f;case 4:return e.g;case 5:return e.i;case 6:return e.j}return D8e(e,t,n,r)}function XU(e,t){if(t==e.d)return e.e;if(t==e.e)return e.d;throw ue(new Wn("Node "+t+" not part of edge "+e))}function y5n(e,t){var n;if(n=pP(e.Dh(),t),De(n,102))return l(n,19);throw ue(new Wn(qb+t+"' is not a valid reference"))}function cf(e,t,n,r){if(t<0)ike(e,n,r);else{if(!n.rk())throw ue(new Wn(qb+n.xe()+TL));l(n,69).wk().Ck(e,e.hi(),t,r)}}function Wl(e){var t;if(e.b){if(Wl(e.b),e.b.d!=e.c)throw ue(new Yh)}else e.d.dc()&&(t=l(e.f.c.xc(e.e),16),t&&(e.d=t))}function x5n(e){vy();var t,n,r,s;for(t=e.o.b,r=l(l($i(e.r,(_t(),Mr)),21),87).Kc();r.Ob();)n=l(r.Pb(),117),s=n.e,s.b+=t}function k5n(e){var t,n,r;for(this.a=new bd,r=new K(e);r.a=s)return t.c+n;return t.c+t.b.gc()}function E5n(e,t){jk();var n,r,s,o;for(r=uht(e),s=t,iT(r,0,r.length,s),n=0;n0&&(r+=s,++n);return n>1&&(r+=e.d*(n-1)),r}function S5n(e){var t,n,r,s,o;return o=r9e(e),n=oO(e.c),r=!n,r&&(s=new Yp,Z0(o,"knownLayouters",s),t=new jQe(s),Za(e.c,t)),o}function q8e(e){var t,n,r;for(r=new e2,r.a+="[",t=0,n=e.gc();t0&&(Yn(t-1,e.length),e.charCodeAt(t-1)==58)&&!rue(e,zM,qM))}function H8e(e,t){var n;return qe(e)===qe(t)?!0:De(t,92)?(n=l(t,92),e.e==n.e&&e.d==n.d&&Zmn(e,n.a)):!1}function px(e){switch(_t(),e.g){case 4:return Xn;case 1:return sr;case 3:return Mr;case 2:return Zn;default:return jc}}function M5n(e){var t,n;if(e.b)return e.b;for(n=G1?null:e.d;n;){if(t=G1?null:n.b,t)return t;n=G1?null:n.d}return Ok(),F_e}function U8e(e){var t,n,r;for(r=ze(Ge(e.a.of((bi(),hY)))),n=new K(e.a.Sf());n.a>5,t=e&31,r=We(Ur,fi,28,n+1,15,1),r[n]=1<3;)s*=10,--o;e=(e+(s>>1))/s|0}return r.i=e,!0}function vs(e,t){var n,r,s;if(n=(e.i==null&&Sd(e),e.i),r=t.Lj(),r!=-1){for(s=n.length;r=0;--r)for(t=n[r],s=0;s>1,this.k=t-1>>1}function V5n(e){aU(),l(e.of((bi(),em)),181).Hc((Xl(),vY))&&(l(e.of(L4),181).Fc((Pl(),o9)),l(e.of(em),181).Mc(vY))}function idt(e){var t,n;t=e.d==(xx(),NE),n=Kxe(e),t&&!n||!t&&n?rt(e.a,(Nt(),Rd),(lg(),JB)):rt(e.a,(Nt(),Rd),(lg(),QB))}function aue(){aue=U,cq(),DW=(Nt(),E3),_Tt=O1(he(le(jge,1),CCe,149,0,[NB,y0,V6,T3,T4,kde,WE,YE,Tde,nM,U6,Sv,G6]))}function G5n(e,t){var n;return n=l(kc(e,Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[(Nl(),Cc)]))),15),n.Qc(Cst(n.gc()))}function sdt(e,t){var n,r;if(r=new wa(e.a.ad(t,!0)),r.a.gc()<=1)throw ue(new _8);return n=r.a.ec().Kc(),n.Pb(),l(n.Pb(),40)}function K5n(e,t,n){var r,s;return r=ze(e.p[t.i.p])+ze(e.d[t.i.p])+t.n.b+t.a.b,s=ze(e.p[n.i.p])+ze(e.d[n.i.p])+n.n.b+n.a.b,s-r}function Q8e(e,t){var n;return e.i>0&&(t.lengthe.i&&Ss(t,e.i,null),t}function JU(e){var t;return e.Db&64?SA(e):(t=new Af(SA(e)),t.a+=" (instanceClassName: ",Jo(t,e.D),t.a+=")",t.a)}function ZU(e){var t,n,r,s;for(s=0,n=0,r=e.length;n0?(e._j(),r=t==null?0:ts(t),s=(r&Ni)%e.d.length,n=pbt(e,s,r,t),n!=-1):!1}function adt(e,t){var n,r;e.a=fo(e.a,1),e.c=b.Math.min(e.c,t),e.b=b.Math.max(e.b,t),e.d+=t,n=t-e.f,r=e.e+n,e.f=r-e.e-n,e.e=r}function J8e(e,t){switch(t){case 3:Fw(e,0);return;case 4:Rw(e,0);return;case 5:Vu(e,0);return;case 6:Gu(e,0);return}k8e(e,t)}function Vw(e,t){switch(t.g){case 1:return K8(e.j,(xl(),jAe));case 2:return K8(e.j,(xl(),zAe));default:return Cn(),Cn(),Co}}function Z8e(e){Sw();var t;switch(t=e.Pc(),t.length){case 0:return P0e;case 1:return new $ae(Xr(t[0]));default:return new xoe(f5n(t))}}function odt(e,t){e.Xj();try{e.d.bd(e.e++,t),e.f=e.d.j,e.g=-1}catch(n){throw n=ms(n),De(n,77)?ue(new Yh):ue(n)}}function cue(){cue=U,vpe=new PS,WPe=new q0,YPe=new BI,XPe=new FI,QPe=new d8,JPe=new pre,ZPe=new bre,eBe=new mre,tBe=new vre}function eV(e,t){kye();var n,r;return n=RO((Wz(),Wz(),PL)),r=null,t==n&&(r=l(wu(h_e,e),624)),r||(r=new Sat(e),t==n&&sc(h_e,e,r)),r}function cdt(e){jy();var t;return(e.q?e.q:(Cn(),Cn(),yg))._b((Nt(),x3))?t=l(Q(e,x3),203):t=l(Q(Ja(e),tM),203),t}function Ry(e,t){var n,r;return r=null,rs(e,(Nt(),LW))&&(n=l(Q(e,LW),96),n.pf(t)&&(r=n.of(t))),r==null&&(r=Q(Ja(e),t)),r}function udt(e,t){var n,r,s;return De(t,44)?(n=l(t,44),r=n.ld(),s=By(e.Rc(),r),yd(s,n.md())&&(s!=null||e.Rc()._b(r))):!1}function t1(e,t){var n,r,s;return e.f>0&&(e._j(),r=t==null?0:ts(t),s=(r&Ni)%e.d.length,n=R9e(e,s,r,t),n)?n.md():null}function Fu(e,t,n){var r,s,o;return e.Pj()?(r=e.i,o=e.Qj(),$N(e,r,t),s=e.Ij(3,null,t,r,o),n?n.nj(s):n=s):$N(e,e.i,t),n}function Y5n(e,t,n){var r,s;return r=new rp(e.e,4,10,(s=t.c,De(s,90)?l(s,29):(En(),Kf)),null,x2(e,t),!1),n?n.nj(r):n=r,n}function X5n(e,t,n){var r,s;return r=new rp(e.e,3,10,null,(s=t.c,De(s,90)?l(s,29):(En(),Kf)),x2(e,t),!1),n?n.nj(r):n=r,n}function ldt(e){vy();var t;return t=new xo(l(e.e.of((bi(),a7)),8)),e.B.Hc((Xl(),cC))&&(t.a<=0&&(t.a=20),t.b<=0&&(t.b=20)),t}function Db(e){Cd();var t,n;return n=Yr(e),t=Yr(vb(e,32)),t!=0?new vct(n,t):n>10||n<0?new tp(1,n):X6t[n]}function GN(e,t){var n;return xc(e)&&xc(t)&&(n=e%t,PP=0?o=o.a[1]:(s=o,o=o.a[0])}return s}function WN(e,t,n){var r,s,o;for(s=null,o=e.b;o;){if(r=e.a.Ne(t,o.d),n&&r==0)return o;r<=0?o=o.a[0]:(s=o,o=o.a[1])}return s}function n6n(e,t,n,r){var s,o,f;return s=!1,sDn(e.f,n,r)&&(E6n(e.f,e.a[t][n],e.a[t][r]),o=e.a[t],f=o[r],o[r]=o[n],o[n]=f,s=!0),s}function gdt(e,t,n){var r,s,o,f;for(s=l(or(e.b,n),183),r=0,f=new K(t.j);f.a>5,t&=31,s=e.d+n+(t==0?0:1),r=We(Ur,fi,28,s,15,1),e9n(r,e.a,n,t),o=new $m(e.e,s,r),sA(o),o}function r6n(e,t){var n,r,s;for(r=new lr(fr(qs(e).a.Kc(),new j));Rr(r);)if(n=l(yr(r),18),s=n.d.i,s.c==t)return!1;return!0}function nxe(e,t,n){var r,s,o,f,g;return f=e.k,g=t.k,r=n[f.g][g.g],s=Ge(Ry(e,r)),o=Ge(Ry(t,r)),b.Math.max((tr(s),s),(tr(o),o))}function i6n(){return Error.stackTraceLimit>0?(b.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function s6n(e,t){return A1(),A1(),h0(Fb),(b.Math.abs(e-t)<=Fb||e==t||isNaN(e)&&isNaN(t)?0:et?1:bw(isNaN(e),isNaN(t)))>0}function rxe(e,t){return A1(),A1(),h0(Fb),(b.Math.abs(e-t)<=Fb||e==t||isNaN(e)&&isNaN(t)?0:et?1:bw(isNaN(e),isNaN(t)))<0}function bdt(e,t){return A1(),A1(),h0(Fb),(b.Math.abs(e-t)<=Fb||e==t||isNaN(e)&&isNaN(t)?0:et?1:bw(isNaN(e),isNaN(t)))<=0}function lue(e,t){for(var n=0;!t[n]||t[n]=="";)n++;for(var r=t[n++];n0&&this.b>0&&(this.g=dH(this.c,this.b,this.a))}function a6n(e,t){var n=e.a,r;t=String(t),n.hasOwnProperty(t)&&(r=n[t]);var s=(Ice(),z0e)[typeof r],o=s?s(r):m8e(typeof r);return o}function BT(e){var t,n,r;if(r=null,t=Pd in e.a,n=!t,n)throw ue(new dd("Every element must have an id."));return r=kx(Jg(e,Pd)),r}function Gw(e){var t,n;for(n=qpt(e),t=null;e.c==2;)Mi(e),t||(t=(Ii(),Ii(),new F_(2)),sv(t,n),n=t),n.Jm(qpt(e));return n}function nV(e,t){var n,r,s;return e._j(),r=t==null?0:ts(t),s=(r&Ni)%e.d.length,n=R9e(e,s,r,t),n?(Eft(e,n),n.md()):null}function Tdt(e,t){return e.e>t.e?1:e.et.d?e.e:e.d=48&&e<48+b.Math.min(10,10)?e-48:e>=97&&e<97?e-97+10:e>=65&&e<65?e-65+10:-1}function o6n(e,t){if(t.c==e)return t.d;if(t.d==e)return t.c;throw ue(new Wn("Input edge is not connected to the input port."))}function c6n(e){if(iV(xE,e))return Hn(),AE;if(iV(Qfe,e))return Hn(),Ub;throw ue(new Wn("Expecting true or false"))}function axe(e){switch(typeof e){case Gle:return g2(e);case pTe:return $8(e);case Sx:return iit(e);default:return e==null?0:ww(e)}}function Ed(e,t){if(e.a<0)throw ue(new ic("Did not call before(...) or after(...) before calling add(...)."));return e4e(e,e.a,t),e}function oxe(e){return HH(),De(e,162)?l(or(vF,t7t),295).Rg(e):Hu(vF,dh(e))?l(or(vF,dh(e)),295).Rg(e):null}function Ku(e){var t,n;return e.Db&32||(n=(t=l(Gn(e,16),29),wr(t||e.ii())-wr(e.ii())),n!=0&&bx(e,32,We(ka,jn,1,n,5,1))),e}function bx(e,t,n){var r;e.Db&t?n==null?VTn(e,t):(r=Due(e,t),r==-1?e.Eb=n:Ss(Km(e.Eb),r,n)):n!=null&&gSn(e,t,n)}function u6n(e,t,n,r){var s,o;t.c.length!=0&&(s=iCn(n,r),o=sTn(t),Os(mU(new vn(null,new kn(o,1)),new o8),new tot(e,n,s,r)))}function l6n(e,t){var n,r,s,o;return r=e.a.length-1,n=t-e.b&r,o=e.c-t&r,s=e.c-e.b&r,Zrt(n=o?(c4n(e,t),-1):(o4n(e,t),1)}function rV(e){var t,n,r;if(r=e.Jh(),!r)for(t=0,n=e.Ph();n;n=n.Ph()){if(++t>xhe)return n.Qh();if(r=n.Jh(),r||n==e)break}return r}function Cdt(e,t){var n;return qe(t)===qe(e)?!0:!De(t,21)||(n=l(t,21),n.gc()!=e.gc())?!1:e.Ic(n)}function h6n(e,t){return e.et.e?1:e.ft.f?1:ts(e)-ts(t)}function iV(e,t){return tr(e),t==null?!1:wn(e,t)?!0:e.length==t.length&&wn(e.toLowerCase(),t.toLowerCase())}function lp(e){var t,n;return su(e,-129)>0&&su(e,128)<0?(Lst(),t=Yr(e)+128,n=y_e[t],!n&&(n=y_e[t]=new Ir(e)),n):new Ir(e)}function tv(){tv=U,h4=new yq(Id,0),NAe=new yq("INSIDE_PORT_SIDE_GROUPS",1),x1e=new yq("GROUP_MODEL_ORDER",2),k1e=new yq(iEe,3)}function f6n(e){var t;return e.b||sln(e,(t=i0n(e.e,e.a),!t||!wn(Qfe,t1((!t.b&&(t.b=new lh((En(),Do),Qc,t)),t.b),"qualified")))),e.c}function d6n(e,t){var n,r;for(n=(Yn(t,e.length),e.charCodeAt(t)),r=t+1;r2e3&&($6t=e,gK=b.setTimeout(lln,10))),dK++==0?(Swn((g3e(),l_e)),!0):!1}function _6n(e,t,n){var r;(c7t?(M5n(e),!0):u7t||h7t?(Ok(),!0):l7t&&(Ok(),!1))&&(r=new qit(t),r.b=n,P9n(e,r))}function fue(e,t){var n;n=!e.A.Hc((gh(),Ov))||e.q==(Pa(),Au),e.u.Hc((Pl(),kp))?n?bIn(e,t):ywt(e,t):e.u.Hc(im)&&(n?BDn(e,t):Pwt(e,t))}function Ddt(e){var t;qe(at(e,(bi(),i7)))===qe((op(),gY))&&(ds(e)?(t=l(at(ds(e),i7),346),Vi(e,i7,t)):Vi(e,i7,IM))}function A6n(e){var t,n;return rs(e.d.i,(Nt(),VE))?(t=l(Q(e.c.i,VE),17),n=l(Q(e.d.i,VE),17),iu(t.a,n.a)>0):!1}function Idt(e,t,n){return new Zh(b.Math.min(e.a,t.a)-n/2,b.Math.min(e.b,t.b)-n/2,b.Math.abs(e.a-t.a)+n,b.Math.abs(e.b-t.b)+n)}function Odt(e){var t;this.d=new mt,this.j=new za,this.g=new za,t=e.g.b,this.f=l(Q(Ja(t),(Nt(),Rh)),88),this.e=ze(Ge(cV(t,T4)))}function Ndt(e){this.d=new mt,this.e=new u2,this.c=We(Ur,fi,28,(_t(),he(le(Mo,1),ou,64,0,[jc,Xn,sr,Mr,Zn])).length,15,1),this.b=e}function lxe(e,t,n){var r;switch(r=n[e.g][t],e.g){case 1:case 3:return new lt(0,r);case 2:case 4:return new lt(r,0);default:return null}}function Pdt(e,t,n){var r,s;s=l(eN(t.f),205);try{s.rf(e,n),$at(t.f,s)}catch(o){throw o=ms(o),De(o,103)?(r=o,ue(r)):ue(o)}}function Bdt(e,t,n){var r,s,o,f,g,w;return r=null,g=tTe(dT(),t),o=null,g&&(s=null,w=Zke(g,n),f=null,w!=null&&(f=e.qf(g,w)),s=f,o=s),r=o,r}function due(e,t,n,r){var s;if(s=e.length,t>=s)return s;for(t=t>0?t:0;tr&&Ss(t,r,null),t}function Fdt(e,t){var n,r;for(r=e.a.length,t.lengthr&&Ss(t,r,null),t}function FT(e,t){var n,r;if(++e.j,t!=null&&(n=(r=e.a.Cb,De(r,99)?l(r,99).th():null),OTn(t,n))){bx(e.a,4,n);return}bx(e.a,4,l(t,129))}function L6n(e){var t;if(e==null)return null;if(t=NEn(ku(e,!0)),t==null)throw ue(new fse("Invalid hexBinary value: '"+e+"'"));return t}function sV(e,t,n){var r;t.a.length>0&&(wt(e.b,new ist(t.a,n)),r=t.a.length,0r&&(t.a+=art(We(xf,Ad,28,-r,15,1))))}function Rdt(e,t,n){var r,s,o;if(!n[t.d])for(n[t.d]=!0,s=new K(t6(t));s.a=e.b>>1)for(r=e.c,n=e.b;n>t;--n)r=r.b;else for(r=e.a.a,n=0;n=0?e.Wh(s):nle(e,r)):n<0?nle(e,r):l(r,69).wk().Bk(e,e.hi(),n)}function qdt(e){var t,n,r;for(r=(!e.o&&(e.o=new yl((au(),Ag),R2,e,0)),e.o),n=r.c.Kc();n.e!=n.i.gc();)t=l(n.Yj(),44),t.md();return fN(r)}function It(e){var t;if(De(e.a,4)){if(t=oxe(e.a),t==null)throw ue(new ic(l4t+e.b+"'. "+u4t+(Xg(wF),wF.k)+bSe));return t}else return e.a}function F6n(e,t){var n,r;if(e.j.length!=t.j.length)return!1;for(n=0,r=e.j.length;n=64&&t<128&&(s=X0(s,u0(1,t-64)));return s}function cV(e,t){var n,r;return r=null,rs(e,(bi(),i9))&&(n=l(Q(e,i9),96),n.pf(t)&&(r=n.of(t))),r==null&&Ja(e)&&(r=Q(Ja(e),t)),r}function R6n(e,t){var n;return n=l(Q(e,(Nt(),lc)),75),dae(t,uxt)?n?Ch(n):(n=new pl,rt(e,lc,n)):n&&rt(e,lc,null),n}function OA(){OA=U,gAe=(bi(),VNe),c1e=CNe,c8t=t7,dAe=B2,f8t=(yV(),G_e),h8t=U_e,d8t=W_e,l8t=H_e,u8t=(Hce(),lAe),o1e=s8t,fAe=a8t,CK=o8t}function uV(e){switch(F3e(),this.c=new mt,this.d=e,e.g){case 0:case 2:this.a=V5e(OAe),this.b=gs;break;case 3:case 1:this.a=OAe,this.b=oa}}function j6n(e){var t;G8(l(Q(e,(Nt(),Ds)),101))&&(t=e.b,M2t((Sn(0,t.c.length),l(t.c[0],30))),M2t(l(Rt(t,t.c.length-1),30)))}function $6n(e,t){t.Ug("Self-Loop post-processing",1),Os(ji(ji(Pc(new vn(null,new kn(e.b,16)),new JZ),new ZZ),new eee),new Mj),t.Vg()}function Hdt(e,t,n){var r,s;if(e.c)Vu(e.c,e.c.i+t),Gu(e.c,e.c.j+n);else for(s=new K(e.b);s.a=0&&(n.d=e.t);break;case 3:e.t>=0&&(n.a=e.t)}e.C&&(n.b=e.C.b,n.c=e.C.c)}function NA(){NA=U,BDe=new wO(SCe,0),Ide=new wO(efe,1),Ode=new wO("LINEAR_SEGMENTS",2),iM=new wO("BRANDES_KOEPF",3),sM=new wO(Ryt,4)}function PA(){PA=U,mB=new vq(uG,0),TK=new vq(Nhe,1),EK=new vq(Phe,2),vB=new vq(Bhe,3),mB.a=!1,TK.a=!0,EK.a=!1,vB.a=!0}function mx(){mx=U,gB=new mq(uG,0),dB=new mq(Nhe,1),pB=new mq(Phe,2),bB=new mq(Bhe,3),gB.a=!1,dB.a=!0,pB.a=!1,bB.a=!0}function vx(e,t,n,r){var s;return n>=0?e.Sh(t,n,r):(e.Ph()&&(r=(s=e.Fh(),s>=0?e.Ah(r):e.Ph().Th(e,-1-s,null,r))),e.Ch(t,n,r))}function hxe(e,t){switch(t){case 7:!e.e&&(e.e=new An(js,e,7,4)),$r(e.e);return;case 8:!e.d&&(e.d=new An(js,e,8,5)),$r(e.d);return}J8e(e,t)}function Vi(e,t,n){return n==null?(!e.o&&(e.o=new yl((au(),Ag),R2,e,0)),nV(e.o,t)):(!e.o&&(e.o=new yl((au(),Ag),R2,e,0)),eP(e.o,t,n)),e}function Kdt(e,t){Cn();var n,r,s,o;for(n=e,o=t,De(e,21)&&!De(t,21)&&(n=t,o=e),s=n.Kc();s.Ob();)if(r=s.Pb(),o.Hc(r))return!1;return!0}function V6n(e,t,n,r){if(t.an.b)return!0}return!1}function vue(e,t){return Da(e)?!!O6t[t]:e.Sm?!!e.Sm[t]:py(e)?!!I6t[t]:gy(e)?!!D6t[t]:!1}function G6n(e){var t;t=e.a;do t=l(yr(new lr(fr(Ea(t).a.Kc(),new j))),18).c.i,t.k==(Jn(),Aa)&&e.b.Fc(t);while(t.k==(Jn(),Aa));e.b=uf(e.b)}function Wdt(e,t){var n,r,s;for(s=e,r=new lr(fr(Ea(t).a.Kc(),new j));Rr(r);)n=l(yr(r),18),n.c.i.c&&(s=b.Math.max(s,n.c.i.c.p));return s}function K6n(e,t){var n,r,s;for(s=0,r=l(l($i(e.r,t),21),87).Kc();r.Ob();)n=l(r.Pb(),117),s+=n.d.d+n.b.Mf().b+n.d.a,r.Ob()&&(s+=e.w);return s}function W6n(e,t){var n,r,s;for(s=0,r=l(l($i(e.r,t),21),87).Kc();r.Ob();)n=l(r.Pb(),117),s+=n.d.b+n.b.Mf().a+n.d.c,r.Ob()&&(s+=e.w);return s}function Ydt(e){var t,n,r,s;if(r=0,s=Gy(e),s.c.length==0)return 1;for(n=new K(s);n.a=0?e.Lh(f,n,!0):Xw(e,o,n)):l(o,69).wk().yk(e,e.hi(),s,n,r)}function J6n(e,t,n,r){var s,o;o=t.pf((bi(),s7))?l(t.of(s7),21):e.j,s=B4n(o),s!=(nG(),r1e)&&(n&&!ixe(s)||b9e(PEn(e,s,r),t))}function Z6n(e){switch(e.g){case 1:return qw(),fB;case 3:return qw(),hB;case 2:return qw(),s1e;case 4:return qw(),i1e;default:return null}}function e7n(e,t,n){if(e.e)switch(e.b){case 1:Upn(e.c,t,n);break;case 0:Vpn(e.c,t,n)}else but(e.c,t,n);e.a[t.p][n.p]=e.c.i,e.a[n.p][t.p]=e.c.e}function Xdt(e){var t,n;if(e==null)return null;for(n=We(kg,dt,199,e.length,0,2),t=0;t=0)return s;if(e.ol()){for(r=0;r=s)throw ue(new yy(t,s));if(e.Si()&&(r=e.dd(n),r>=0&&r!=t))throw ue(new Wn(nB));return e.Xi(t,n)}function fxe(e,t){if(this.a=l(Xr(e),253),this.b=l(Xr(t),253),e.Ed(t)>0||e==(sse(),O0e)||t==(ase(),N0e))throw ue(new Wn("Invalid range: "+wut(e,t)))}function Qdt(e){var t,n;for(this.b=new mt,this.c=e,this.a=!1,n=new K(e.a);n.a0),(t&-t)==t)return da(t*Yl(e,31)*4656612873077393e-25);do n=Yl(e,31),r=n%t;while(n-r+(t-1)<0);return da(r)}function a7n(e,t,n){switch(n.g){case 1:e.a=t.a/2,e.b=0;break;case 2:e.a=t.a,e.b=t.b/2;break;case 3:e.a=t.a/2,e.b=t.b;break;case 4:e.a=0,e.b=t.b/2}}function YN(e,t,n,r){var s,o;for(s=t;s1&&(o=n7n(e,t)),o}function egt(e){var t;return t=ze(Ge(at(e,(bi(),sF))))*b.Math.sqrt((!e.a&&(e.a=new nt(Li,e,10,11)),e.a).i),new lt(t,t/ze(Ge(at(e,fY))))}function yue(e){var t;return e.f&&e.f.Vh()&&(t=l(e.f,54),e.f=l(Lb(e,t),84),e.f!=t&&e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,9,8,t,e.f))),e.f}function xue(e){var t;return e.i&&e.i.Vh()&&(t=l(e.i,54),e.i=l(Lb(e,t),84),e.i!=t&&e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,9,7,t,e.i))),e.i}function jo(e){var t;return e.b&&e.b.Db&64&&(t=e.b,e.b=l(Lb(e,t),19),e.b!=t&&e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,9,21,t,e.b))),e.b}function gV(e,t){var n,r,s;e.d==null?(++e.e,++e.f):(r=t.Bi(),LCn(e,e.f+1),s=(r&Ni)%e.d.length,n=e.d[s],!n&&(n=e.d[s]=e.dk()),n.Fc(t),++e.f)}function pxe(e,t,n){var r;return t.tk()?!1:t.Ik()!=-2?(r=t.ik(),r==null?n==null:Fi(r,n)):t.qk()==e.e.Dh()&&n==null}function pV(){var e;Mh(16,h3t),e=Rft(16),this.b=We(B0e,IP,303,e,0,1),this.c=We(B0e,IP,303,e,0,1),this.a=null,this.e=null,this.i=0,this.f=e-1,this.g=0}function hp(e){x4e.call(this),this.k=(Jn(),Bs),this.j=(Mh(6,Jy),new Pu(6)),this.b=(Mh(2,Jy),new Pu(2)),this.d=new ese,this.f=new n3e,this.a=e}function c7n(e){var t,n;e.c.length<=1||(t=imt(e,(_t(),Mr)),Vpt(e,l(t.a,17).a,l(t.b,17).a),n=imt(e,Zn),Vpt(e,l(n.a,17).a,l(n.b,17).a))}function u7n(e,t,n){var r,s;for(s=e.a.b,r=s.c.length;r102?-1:e<=57?e-48:e<65?-1:e<=70?e-65+10:e<97?-1:e-97+10}function Sue(e,t){if(e==null)throw ue(new I8("null key in entry: null="+t));if(t==null)throw ue(new I8("null value in entry: "+e+"=null"))}function f7n(e,t){for(var n,r;e.Ob();)if(!t.Ob()||(n=e.Pb(),r=t.Pb(),!(qe(n)===qe(r)||n!=null&&Fi(n,r))))return!1;return!t.Ob()}function rgt(e,t){var n;return n=he(le(Oa,1),tc,28,15,[Vce(e.a[0],t),Vce(e.a[1],t),Vce(e.a[2],t)]),e.d&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function igt(e,t){var n;return n=he(le(Oa,1),tc,28,15,[HU(e.a[0],t),HU(e.a[1],t),HU(e.a[2],t)]),e.d&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function mxe(e,t,n){G8(l(Q(t,(Nt(),Ds)),101))||(D6e(e,t,k2(t,n)),D6e(e,t,k2(t,(_t(),Mr))),D6e(e,t,k2(t,Xn)),Cn(),Gs(t.j,new cXe(e)))}function sgt(e){var t,n;for(e.c||DMn(e),n=new pl,t=new K(e.a),re(t);t.a0&&(Yn(0,t.length),t.charCodeAt(0)==43)?(Yn(1,t.length+1),t.substr(1)):t))}function S7n(e){var t;return e==null?null:new bb((t=ku(e,!0),t.length>0&&(Yn(0,t.length),t.charCodeAt(0)==43)?(Yn(1,t.length+1),t.substr(1)):t))}function wxe(e,t,n,r,s,o,f,g){var w,T;r&&(w=r.a[0],w&&wxe(e,t,n,w,s,o,f,g),Pue(e,n,r.d,s,o,f,g)&&t.Fc(r),T=r.a[1],T&&wxe(e,t,n,T,s,o,f,g))}function s6(e,t,n){try{return pw(bce(e,t,n),1)}catch(r){throw r=ms(r),De(r,333)?ue(new rc(Fhe+e.o+"*"+e.p+Rhe+t+To+n+jhe)):ue(r)}}function lgt(e,t,n){try{return pw(bce(e,t,n),0)}catch(r){throw r=ms(r),De(r,333)?ue(new rc(Fhe+e.o+"*"+e.p+Rhe+t+To+n+jhe)):ue(r)}}function hgt(e,t,n){try{return pw(bce(e,t,n),2)}catch(r){throw r=ms(r),De(r,333)?ue(new rc(Fhe+e.o+"*"+e.p+Rhe+t+To+n+jhe)):ue(r)}}function fgt(e,t){if(e.g==-1)throw ue(new gl);e.Xj();try{e.d.hd(e.g,t),e.f=e.d.j}catch(n){throw n=ms(n),De(n,77)?ue(new Yh):ue(n)}}function _7n(e){var t,n,r,s,o;for(r=new K(e.b);r.ao&&Ss(t,o,null),t}function A7n(e,t){var n,r;if(r=e.gc(),t==null){for(n=0;n0&&(w+=s),T[C]=f,f+=g*(w+r)}function ggt(e){var t,n,r;for(r=e.f,e.n=We(Oa,tc,28,r,15,1),e.d=We(Oa,tc,28,r,15,1),t=0;t0?e.c:0),++s;e.b=r,e.d=o}function wgt(e,t){var n;return n=he(le(Oa,1),tc,28,15,[gxe(e,(e1(),Wc),t),gxe(e,ju,t),gxe(e,Yc,t)]),e.f&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function B7n(e,t,n){var r;try{UV(e,t+e.j,n+e.k,!1,!0)}catch(s){throw s=ms(s),De(s,77)?(r=s,ue(new rc(r.g+hG+t+To+n+")."))):ue(s)}}function F7n(e,t,n){var r;try{UV(e,t+e.j,n+e.k,!0,!1)}catch(s){throw s=ms(s),De(s,77)?(r=s,ue(new rc(r.g+hG+t+To+n+")."))):ue(s)}}function ygt(e){var t;rs(e,(Nt(),y3))&&(t=l(Q(e,y3),21),t.Hc((Vy(),k0))?(t.Mc(k0),t.Fc(T0)):t.Hc(T0)&&(t.Mc(T0),t.Fc(k0)))}function xgt(e){var t;rs(e,(Nt(),y3))&&(t=l(Q(e,y3),21),t.Hc((Vy(),C0))?(t.Mc(C0),t.Fc(qf)):t.Hc(qf)&&(t.Mc(qf),t.Fc(C0)))}function Iue(e,t,n,r){var s,o,f,g;return e.a==null&&j9n(e,t),f=t.b.j.c.length,o=n.d.p,g=r.d.p,s=g-1,s<0&&(s=f-1),o<=s?e.a[s]-e.a[o]:e.a[f-1]-e.a[o]+e.a[s]}function R7n(e){var t,n;if(!e.b)for(e.b=KH(l(e.f,27).kh().i),n=new ar(l(e.f,27).kh());n.e!=n.i.gc();)t=l(dr(n),135),wt(e.b,new use(t));return e.b}function j7n(e){var t,n;if(!e.e)for(e.e=KH(loe(l(e.f,27)).i),n=new ar(loe(l(e.f,27)));n.e!=n.i.gc();)t=l(dr(n),123),wt(e.e,new fQe(t));return e.e}function kgt(e){var t,n;if(!e.a)for(e.a=KH(PH(l(e.f,27)).i),n=new ar(PH(l(e.f,27)));n.e!=n.i.gc();)t=l(dr(n),27),wt(e.a,new mae(e,t));return e.a}function Ww(e){var t;if(!e.C&&(e.D!=null||e.B!=null))if(t=SDn(e),t)e.hl(t);else try{e.hl(null)}catch(n){if(n=ms(n),!De(n,63))throw ue(n)}return e.C}function $7n(e){switch(e.q.g){case 5:Ggt(e,(_t(),Xn)),Ggt(e,Mr);break;case 4:Wvt(e,(_t(),Xn)),Wvt(e,Mr);break;default:Qpt(e,(_t(),Xn)),Qpt(e,Mr)}}function z7n(e){switch(e.q.g){case 5:Kgt(e,(_t(),sr)),Kgt(e,Zn);break;case 4:Yvt(e,(_t(),sr)),Yvt(e,Zn);break;default:Jpt(e,(_t(),sr)),Jpt(e,Zn)}}function a6(e,t){var n,r,s;for(s=new za,r=e.Kc();r.Ob();)n=l(r.Pb(),36),YT(n,s.a,0),s.a+=n.f.a+t,s.b=b.Math.max(s.b,n.f.b);return s.b>0&&(s.b+=t),s}function vV(e,t){var n,r,s;for(s=new za,r=e.Kc();r.Ob();)n=l(r.Pb(),36),YT(n,0,s.b),s.b+=n.f.b+t,s.a=b.Math.max(s.a,n.f.a);return s.a>0&&(s.a+=t),s}function Tgt(e){var t,n,r;for(r=Ni,n=new K(e.a);n.a>16==6?e.Cb.Th(e,5,c1,t):(r=jo(l(Mn((n=l(Gn(e,16),29),n||e.ii()),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function q7n(e){Jk();var t=e.e;if(t&&t.stack){var n=t.stack,r=t+` +`;return n.substring(0,r.length)==r&&(n=n.substring(r.length)),n.split(` +`)}return[]}function H7n(e){var t;return t=(_ft(),V6t),t[e>>>28]|t[e>>24&15]<<4|t[e>>20&15]<<8|t[e>>16&15]<<12|t[e>>12&15]<<16|t[e>>8&15]<<20|t[e>>4&15]<<24|t[e&15]<<28}function Sgt(e){var t,n,r;e.b==e.c&&(r=e.a.length,n=Z7e(b.Math.max(8,r))<<1,e.b!=0?(t=o0(e.a,n),qft(e,t,r),e.a=t,e.b=0):uy(e.a,n),e.c=r)}function U7n(e,t){var n;return n=e.b,n.pf((bi(),eh))?n.ag()==(_t(),Zn)?-n.Mf().a-ze(Ge(n.of(eh))):t+ze(Ge(n.of(eh))):n.ag()==(_t(),Zn)?-n.Mf().a:t}function QN(e){var t;return e.b.c.length!=0&&l(Rt(e.b,0),72).a?l(Rt(e.b,0),72).a:(t=hoe(e),t??""+(e.c?bc(e.c.a,e,0):-1))}function wV(e){var t;return e.f.c.length!=0&&l(Rt(e.f,0),72).a?l(Rt(e.f,0),72).a:(t=hoe(e),t??""+(e.i?bc(e.i.j,e,0):-1))}function V7n(e,t){var n,r;if(t<0||t>=e.gc())return null;for(n=t;n0?e.c:0),s=b.Math.max(s,t.d),++r;e.e=o,e.b=s}function K7n(e){var t,n;if(!e.b)for(e.b=KH(l(e.f,123).kh().i),n=new ar(l(e.f,123).kh());n.e!=n.i.gc();)t=l(dr(n),135),wt(e.b,new use(t));return e.b}function W7n(e,t){var n,r,s;if(t.dc())return jk(),jk(),yF;for(n=new uit(e,t.gc()),s=new ar(e);s.e!=s.i.gc();)r=dr(s),t.Hc(r)&&zr(n,r);return n}function Txe(e,t,n,r){return t==0?r?(!e.o&&(e.o=new yl((au(),Ag),R2,e,0)),e.o):(!e.o&&(e.o=new yl((au(),Ag),R2,e,0)),fN(e.o)):lV(e,t,n,r)}function Nue(e){var t,n;if(e.rb)for(t=0,n=e.rb.i;t>22),s+=r>>22,s<0)?!1:(e.l=n&Ql,e.m=r&Ql,e.h=s&pp,!0)}function Pue(e,t,n,r,s,o,f){var g,w;return!(t.Te()&&(w=e.a.Ne(n,r),w<0||!s&&w==0)||t.Ue()&&(g=e.a.Ne(n,o),g>0||!f&&g==0))}function J7n(e,t){ST();var n;if(n=e.j.g-t.j.g,n!=0)return 0;switch(e.j.g){case 2:return tue(t,SLe)-tue(e,SLe);case 4:return tue(e,CLe)-tue(t,CLe)}return 0}function Z7n(e){switch(e.g){case 0:return V1e;case 1:return G1e;case 2:return K1e;case 3:return W1e;case 4:return iW;case 5:return Y1e;default:return null}}function cc(e,t,n){var r,s;return r=(s=new rse,ev(s,t),Bu(s,n),zr((!e.c&&(e.c=new nt(L3,e,12,10)),e.c),s),s),d2(r,0),Oy(r,1),v2(r,!0),m2(r,!0),r}function wx(e,t){var n,r;if(t>=e.i)throw ue(new iae(t,e.i));return++e.j,n=e.g[t],r=e.i-t-1,r>0&&gu(e.g,t+1,e.g,t,r),Ss(e.g,--e.i,null),e.Qi(t,n),e.Ni(),n}function _gt(e,t){var n,r;return e.Db>>16==17?e.Cb.Th(e,21,Uf,t):(r=jo(l(Mn((n=l(Gn(e,16),29),n||e.ii()),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function e8n(e){var t,n,r,s;for(Cn(),Gs(e.c,e.a),s=new K(e.c);s.an.a.c.length))throw ue(new Wn("index must be >= 0 and <= layer node count"));e.c&&sl(e.c.a,e),e.c=n,n&&kw(n.a,t,e)}function Igt(e,t){var n,r,s;for(r=new lr(fr(up(e).a.Kc(),new j));Rr(r);)return n=l(yr(r),18),s=l(t.Kb(n),10),new ZS(Xr(s.n.b+s.o.b/2));return c_(),c_(),I0e}function Ogt(e,t){this.c=new Nr,this.a=e,this.b=t,this.d=l(Q(e,(ft(),q6)),312),qe(Q(e,(Nt(),lDe)))===qe((bN(),sW))?this.e=new SJe:this.e=new CJe}function FA(e,t){var n,r;return r=null,e.pf((bi(),i9))&&(n=l(e.of(i9),96),n.pf(t)&&(r=n.of(t))),r==null&&e.Tf()&&(r=e.Tf().of(t)),r==null&&(r=It(t)),r}function Bue(e,t){var n,r;n=e.fd(t);try{return r=n.Pb(),n.Qb(),r}catch(s){throw s=ms(s),De(s,112)?ue(new rc("Can't remove element "+t)):ue(s)}}function c8n(e,t){var n,r,s;if(r=new iq,s=new n8e(r.q.getFullYear()-Rb,r.q.getMonth(),r.q.getDate()),n=wLn(e,t,s),n==0||n0?t:0),++n;return new lt(r,s)}function Axe(e,t){var n,r;return e.Db>>16==6?e.Cb.Th(e,6,js,t):(r=jo(l(Mn((n=l(Gn(e,16),29),n||(au(),kY)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function Lxe(e,t){var n,r;return e.Db>>16==7?e.Cb.Th(e,1,pF,t):(r=jo(l(Mn((n=l(Gn(e,16),29),n||(au(),DPe)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function Mxe(e,t){var n,r;return e.Db>>16==9?e.Cb.Th(e,9,Li,t):(r=jo(l(Mn((n=l(Gn(e,16),29),n||(au(),OPe)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function Bgt(e,t){var n,r;return e.Db>>16==5?e.Cb.Th(e,9,DY,t):(r=jo(l(Mn((n=l(Gn(e,16),29),n||(En(),$2)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function Fgt(e,t){var n,r;return e.Db>>16==7?e.Cb.Th(e,6,c1,t):(r=jo(l(Mn((n=l(Gn(e,16),29),n||(En(),q2)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function Dxe(e,t){var n,r;return e.Db>>16==3?e.Cb.Th(e,0,mF,t):(r=jo(l(Mn((n=l(Gn(e,16),29),n||(En(),j2)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function Rgt(){this.a=new D$,this.g=new pV,this.j=new pV,this.b=new Nr,this.d=new pV,this.i=new pV,this.k=new Nr,this.c=new Nr,this.e=new Nr,this.f=new Nr}function h8n(e,t,n){var r,s,o;for(n<0&&(n=0),o=e.i,s=n;sxhe)return jT(e,r);if(r==e)return!0}}return!1}function d8n(e){switch(Wq(),e.q.g){case 5:y2t(e,(_t(),Xn)),y2t(e,Mr);break;case 4:xbt(e,(_t(),Xn)),xbt(e,Mr);break;default:Ewt(e,(_t(),Xn)),Ewt(e,Mr)}}function g8n(e){switch(Wq(),e.q.g){case 5:j2t(e,(_t(),sr)),j2t(e,Zn);break;case 4:Udt(e,(_t(),sr)),Udt(e,Zn);break;default:Cwt(e,(_t(),sr)),Cwt(e,Zn)}}function p8n(e){var t,n;t=l(Q(e,(p0(),M8t)),17),t?(n=t.a,n==0?rt(e,(Cb(),MK),new sue):rt(e,(Cb(),MK),new QH(n))):rt(e,(Cb(),MK),new QH(1))}function b8n(e,t){var n;switch(n=e.i,t.g){case 1:return-(e.n.b+e.o.b);case 2:return e.n.a-n.o.a;case 3:return e.n.b-n.o.b;case 4:return-(e.n.a+e.o.a)}return 0}function m8n(e,t){switch(e.g){case 0:return t==(lf(),Yb)?XK:QK;case 1:return t==(lf(),Yb)?XK:TB;case 2:return t==(lf(),Yb)?TB:QK;default:return TB}}function ZN(e,t){var n,r,s;for(sl(e.a,t),e.e-=t.r+(e.a.c.length==0?0:e.c),s=jCe,r=new K(e.a);r.a>16==3?e.Cb.Th(e,12,Li,t):(r=jo(l(Mn((n=l(Gn(e,16),29),n||(au(),MPe)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function Oxe(e,t){var n,r;return e.Db>>16==11?e.Cb.Th(e,10,Li,t):(r=jo(l(Mn((n=l(Gn(e,16),29),n||(au(),IPe)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function jgt(e,t){var n,r;return e.Db>>16==10?e.Cb.Th(e,11,Uf,t):(r=jo(l(Mn((n=l(Gn(e,16),29),n||(En(),z2)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function $gt(e,t){var n,r;return e.Db>>16==10?e.Cb.Th(e,12,Vf,t):(r=jo(l(Mn((n=l(Gn(e,16),29),n||(En(),F4)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function Of(e){var t;return!(e.Bb&1)&&e.r&&e.r.Vh()&&(t=l(e.r,54),e.r=l(Lb(e,t),142),e.r!=t&&e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,9,8,t,e.r))),e.r}function Fue(e,t,n){var r;return r=he(le(Oa,1),tc,28,15,[s9e(e,(e1(),Wc),t,n),s9e(e,ju,t,n),s9e(e,Yc,t,n)]),e.f&&(r[0]=b.Math.max(r[0],r[2]),r[2]=r[0]),r}function v8n(e,t){var n,r,s;if(s=q6n(e,t),s.c.length!=0)for(Gs(s,new bS),n=s.c.length,r=0;r>19,T=t.h>>19,w!=T?T-w:(s=e.h,g=t.h,s!=g?s-g:(r=e.m,f=t.m,r!=f?r-f:(n=e.l,o=t.l,n-o)))}function yV(){yV=U,Y_e=(qV(),t1e),W_e=new mn(OTe,Y_e),K_e=(dU(),e1e),G_e=new mn(NTe,K_e),V_e=(aV(),Z0e),U_e=new mn(PTe,V_e),H_e=new mn(BTe,(Hn(),!0))}function RA(e,t,n){var r,s;r=t*n,De(e.g,154)?(s=sx(e),s.f.d?s.f.a||(e.d.a+=r+H1):(e.d.d-=r+H1,e.d.a+=r+H1)):De(e.g,10)&&(e.d.d-=r,e.d.a+=2*r)}function zgt(e,t,n){var r,s,o,f,g;for(s=e[n.g],g=new K(t.d);g.a0?e.b:0),++n;t.b=r,t.e=s}function qgt(e){var t,n,r;if(r=e.b,Oet(e.i,r.length)){for(n=r.length*2,e.b=We(B0e,IP,303,n,0,1),e.c=We(B0e,IP,303,n,0,1),e.f=n-1,e.i=0,t=e.a;t;t=t.c)cP(e,t,t);++e.g}}function C8n(e,t,n,r){var s,o,f,g;for(s=0;sf&&(g=f/r),s>o&&(w=o/s),md(e,b.Math.min(g,w)),e}function _8n(){WV();var e,t;try{if(t=l(Uxe((db(),Gf),TE),2113),t)return t}catch(n){if(n=ms(n),De(n,103))e=n,O5e((Jr(),e));else throw ue(n)}return new ak}function A8n(){WV();var e,t;try{if(t=l(Uxe((db(),Gf),Ff),2040),t)return t}catch(n){if(n=ms(n),De(n,103))e=n,O5e((Jr(),e));else throw ue(n)}return new g8}function L8n(){Jlt();var e,t;try{if(t=l(Uxe((db(),Gf),bv),2122),t)return t}catch(n){if(n=ms(n),De(n,103))e=n,O5e((Jr(),e));else throw ue(n)}return new hk}function M8n(e,t,n){var r,s;return s=e.e,e.e=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,4,s,t),n?n.nj(r):n=r),s!=t&&(t?n=tE(e,OV(e,t),n):n=tE(e,e.a,n)),n}function Hgt(){iq.call(this),this.e=-1,this.a=!1,this.p=ao,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=ao}function D8n(e,t){var n,r,s;if(r=e.b.d.d,e.a||(r+=e.b.d.a),s=t.b.d.d,t.a||(s+=t.b.d.a),n=Xi(r,s),n==0){if(!e.a&&t.a)return-1;if(!t.a&&e.a)return 1}return n}function I8n(e,t){var n,r,s;if(r=e.b.b.d,e.a||(r+=e.b.b.a),s=t.b.b.d,t.a||(s+=t.b.b.a),n=Xi(r,s),n==0){if(!e.a&&t.a)return-1;if(!t.a&&e.a)return 1}return n}function O8n(e,t){var n,r,s;if(r=e.b.g.d,e.a||(r+=e.b.g.a),s=t.b.g.d,t.a||(s+=t.b.g.a),n=Xi(r,s),n==0){if(!e.a&&t.a)return-1;if(!t.a&&e.a)return 1}return n}function Pxe(){Pxe=U,W8t=wl(hi(hi(hi(new Js,(so(),Cu),(po(),hLe)),Cu,fLe),wc,dLe),wc,eLe),X8t=hi(hi(new Js,Cu,KAe),Cu,tLe),Y8t=wl(new Js,wc,rLe)}function N8n(e){var t,n,r,s,o;for(t=l(Q(e,(ft(),WL)),85),o=e.n,r=t.Cc().Kc();r.Ob();)n=l(r.Pb(),314),s=n.i,s.c+=o.a,s.d+=o.b,n.c?cmt(n):umt(n);rt(e,WL,null)}function P8n(e,t,n){var r,s;switch(s=e.b,r=s.d,t.g){case 1:return-r.d-n;case 2:return s.o.a+r.c+n;case 3:return s.o.b+r.a+n;case 4:return-r.b-n;default:return-1}}function B8n(e,t,n){var r,s;for(n.Ug("Interactive node placement",1),e.a=l(Q(t,(ft(),q6)),312),s=new K(t.b);s.a0&&(f=(o&Ni)%e.d.length,s=R9e(e,f,o,t),s)?(g=s.nd(n),g):(r=e.ck(o,t,n),e.c.Fc(r),null)}function Rxe(e,t){var n,r,s,o;switch(b2(e,t).Kl()){case 3:case 2:{for(n=p6(t),s=0,o=n.i;s=0;r--)if(wn(e[r].d,t)||wn(e[r].d,n)){e.length>=r+1&&e.splice(0,r+1);break}return e}function tP(e,t){var n;return xc(e)&&xc(t)&&(n=e/t,PP0&&(e.b+=2,e.a+=r):(e.b+=1,e.a+=b.Math.min(r,s))}function Xgt(e){var t;t=l(Q(l(hf(e.b,0),40),(Vc(),IIe)),107),rt(e,(Zi(),ZE),new lt(0,0)),zmt(new lN,e,t.b+t.c-ze(Ge(Q(e,Xde))),t.d+t.a-ze(Ge(Q(e,Qde))))}function Qgt(e,t){var n,r;if(r=!1,Da(t)&&(r=!0,Z8(e,new Ty(Zr(t)))),r||De(t,242)&&(r=!0,Z8(e,(n=I4e(l(t,242)),new yk(n)))),!r)throw ue(new hse(PSe))}function Z8n(e,t,n,r){var s,o,f;return s=new rp(e.e,1,10,(f=t.c,De(f,90)?l(f,29):(En(),Kf)),(o=n.c,De(o,90)?l(o,29):(En(),Kf)),x2(e,t),!1),r?r.nj(s):r=s,r}function zxe(e){var t,n;switch(l(Q(Ja(e),(Nt(),rDe)),429).g){case 0:return t=e.n,n=e.o,new lt(t.a+n.a/2,t.b+n.b/2);case 1:return new xo(e.n);default:return null}}function nP(){nP=U,aW=new S_(Id,0),qLe=new S_("LEFTUP",1),ULe=new S_("RIGHTUP",2),zLe=new S_("LEFTDOWN",3),HLe=new S_("RIGHTDOWN",4),X1e=new S_("BALANCED",5)}function exn(e,t,n){var r,s,o;if(r=Xi(e.a[t.p],e.a[n.p]),r==0){if(s=l(Q(t,(ft(),Yx)),15),o=l(Q(n,Yx),15),s.Hc(n))return-1;if(o.Hc(t))return 1}return r}function txn(e){switch(e.g){case 1:return new Ine;case 2:return new One;case 3:return new Dne;case 0:return null;default:throw ue(new Wn(Ffe+(e.f!=null?e.f:""+e.g)))}}function qxe(e,t,n){switch(t){case 1:!e.n&&(e.n=new nt(nc,e,1,7)),$r(e.n),!e.n&&(e.n=new nt(nc,e,1,7)),Ls(e.n,l(n,16));return;case 2:gT(e,Zr(n));return}c8e(e,t,n)}function Hxe(e,t,n){switch(t){case 3:Fw(e,ze(Ge(n)));return;case 4:Rw(e,ze(Ge(n)));return;case 5:Vu(e,ze(Ge(n)));return;case 6:Gu(e,ze(Ge(n)));return}qxe(e,t,n)}function xV(e,t,n){var r,s,o;o=(r=new rse,r),s=$1(o,t,null),s&&s.oj(),Bu(o,n),zr((!e.c&&(e.c=new nt(L3,e,12,10)),e.c),o),d2(o,0),Oy(o,1),v2(o,!0),m2(o,!0)}function Uxe(e,t){var n,r,s;return n=x_(e.i,t),De(n,241)?(s=l(n,241),s.zi()==null,s.wi()):De(n,507)?(r=l(n,2037),s=r.b,s):null}function nxn(e,t,n,r){var s,o;return Xr(t),Xr(n),o=l(U_(e.d,t),17),Eht(!!o,"Row %s not in %s",t,e.e),s=l(U_(e.b,n),17),Eht(!!s,"Column %s not in %s",n,e.c),P0t(e,o.a,s.a,r)}function Jgt(e,t,n,r,s,o,f){var g,w,T,C,L;if(C=s[o],T=o==f-1,g=T?r:0,L=mgt(g,C),r!=10&&he(le(e,f-o),t[o],n[o],g,L),!T)for(++o,w=0;w1||g==-1?(o=l(w,15),s.Wb(j5n(e,o))):s.Wb(kle(e,l(w,58)))))}function uxn(e,t,n,r){aet();var s=D0e;function o(){for(var f=0;f0)return!1;return!0}function fxn(e){var t,n,r,s,o;for(r=new Xm(new Cr(e.b).a);r.b;)n=zw(r),t=l(n.ld(),10),o=l(l(n.md(),42).a,10),s=l(l(n.md(),42).b,8),Pi(W0(t.n),Pi(Xa(o.n),s))}function dxn(e){switch(l(Q(e.b,(Nt(),XMe)),387).g){case 1:Os(gc(Pc(new vn(null,new kn(e.d,16)),new xI),new b5),new Oee);break;case 2:c_n(e);break;case 0:$kn(e)}}function gxn(e,t,n){var r,s,o;for(r=n,!r&&(r=new M8),r.Ug("Layout",e.a.c.length),o=new K(e.a);o.aOfe)return n;s>-1e-6&&++n}return n}function Gxe(e,t){var n;t!=e.b?(n=null,e.b&&(n=jH(e.b,e,-4,n)),t&&(n=vx(t,e,-4,n)),n=A1t(e,t,n),n&&n.oj()):e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,3,t,t))}function tpt(e,t){var n;t!=e.f?(n=null,e.f&&(n=jH(e.f,e,-1,n)),t&&(n=vx(t,e,-1,n)),n=_1t(e,t,n),n&&n.oj()):e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,0,t,t))}function vxn(e,t,n,r){var s,o,f,g;return ch(e.e)&&(s=t.Lk(),g=t.md(),o=n.md(),f=kb(e,1,s,g,o,s.Jk()?JT(e,s,o,De(s,102)&&(l(s,19).Bb&Lo)!=0):-1,!0),r?r.nj(f):r=f),r}function npt(e){var t,n,r;if(e==null)return null;if(n=l(e,15),n.dc())return"";for(r=new e2,t=n.Kc();t.Ob();)Jo(r,(Wi(),Zr(t.Pb()))),r.a+=" ";return aae(r,r.a.length-1)}function rpt(e){var t,n,r;if(e==null)return null;if(n=l(e,15),n.dc())return"";for(r=new e2,t=n.Kc();t.Ob();)Jo(r,(Wi(),Zr(t.Pb()))),r.a+=" ";return aae(r,r.a.length-1)}function wxn(e,t,n){var r,s;return r=e.c[t.c.p][t.p],s=e.c[n.c.p][n.p],r.a!=null&&s.a!=null?Wae(r.a,s.a):r.a!=null?-1:s.a!=null?1:0}function yxn(e,t,n){return n.Ug("Tree layout",1),XO(e.b),Y0(e.b,(yx(),zW),zW),Y0(e.b,hM,hM),Y0(e.b,fM,fM),Y0(e.b,dM,dM),e.a=EP(e.b,t),gxn(e,t,n.eh(1)),n.Vg(),t}function xxn(e,t){var n,r,s,o,f,g;if(t)for(o=t.a.length,n=new jm(o),g=(n.b-n.a)*n.c<0?(gb(),lm):new mb(n);g.Ob();)f=l(g.Pb(),17),s=eT(t,f.a),r=new kQe(e),Lpn(r.a,s)}function kxn(e,t){var n,r,s,o,f,g;if(t)for(o=t.a.length,n=new jm(o),g=(n.b-n.a)*n.c<0?(gb(),lm):new mb(n);g.Ob();)f=l(g.Pb(),17),s=eT(t,f.a),r=new dQe(e),Apn(r.a,s)}function Txn(e){var t;if(e!=null&&e.length>0&&io(e,e.length-1)==33)try{return t=hbt(ef(e,0,e.length-1)),t.e==null}catch(n){if(n=ms(n),!De(n,33))throw ue(n)}return!1}function Exn(e,t,n){var r,s,o;switch(r=Ja(t),s=WU(r),o=new du,Nc(o,t),n.g){case 1:ga(o,UN(px(s)));break;case 2:ga(o,px(s))}return rt(o,(Nt(),y4),Ge(Q(e,y4))),o}function Kxe(e){var t,n;return t=l(yr(new lr(fr(Ea(e.a).a.Kc(),new j))),18),n=l(yr(new lr(fr(qs(e.a).a.Kc(),new j))),18),Ft(Pt(Q(t,(ft(),W1))))||Ft(Pt(Q(n,W1)))}function zy(){zy=U,EB=new bO("ONE_SIDE",0),eW=new bO("TWO_SIDES_CORNER",1),tW=new bO("TWO_SIDES_OPPOSING",2),ZK=new bO("THREE_SIDES",3),JK=new bO("FOUR_SIDES",4)}function ipt(e,t){var n,r,s,o;for(o=new mt,s=0,r=t.Kc();r.Ob();){for(n=bt(l(r.Pb(),17).a+s);n.a=e.f)break;qn(o.c,n)}return o}function Cxn(e,t){var n,r,s,o,f;for(o=new K(t.a);o.a0&&Agt(this,this.c-1,(_t(),sr)),this.c0&&e[0].length>0&&(this.c=Ft(Pt(Q(Ja(e[0][0]),(ft(),sMe))))),this.a=We(JTt,dt,2117,e.length,0,2),this.b=We(ZTt,dt,2118,e.length,0,2),this.d=new k1t}function Mxn(e){return e.c.length==0?!1:(Sn(0,e.c.length),l(e.c[0],18)).c.i.k==(Jn(),Aa)?!0:X5(gc(new vn(null,new kn(e,16)),new cte),new ute)}function opt(e,t){var n,r,s,o,f,g,w;for(g=Gy(t),o=t.f,w=t.g,f=b.Math.sqrt(o*o+w*w),s=0,r=new K(g);r.a=0?(n=tP(e,sG),r=GN(e,sG)):(t=vb(e,1),n=tP(t,5e8),r=GN(t,5e8),r=fo(u0(r,1),xa(e,1))),X0(u0(r,32),xa(n,Uo))}function lpt(e,t,n){var r,s;switch(r=(br(t.b!=0),l(sf(t,t.a.a),8)),n.g){case 0:r.b=0;break;case 2:r.b=e.f;break;case 3:r.a=0;break;default:r.a=e.g}return s=Fr(t,0),YO(s,r),t}function hpt(e,t,n,r){var s,o,f,g,w;switch(w=e.b,o=t.d,f=o.j,g=lxe(f,w.d[f.g],n),s=Pi(Xa(o.n),o.a),o.j.g){case 1:case 3:g.a+=s.a;break;case 2:case 4:g.b+=s.b}_s(r,g,r.c.b,r.c)}function qxn(e,t,n){var r,s,o,f;for(f=bc(e.e,t,0),o=new Zwe,o.b=n,r=new Ua(e.e,f);r.b1;t>>=1)t&1&&(r=Y5(r,n)),n.d==1?n=Y5(n,n):n=new _dt(Kmt(n.a,n.d,We(Ur,fi,28,n.d<<1,15,1)));return r=Y5(r,n),r}function n9e(){n9e=U;var e,t,n,r;for(P_e=We(Oa,tc,28,25,15,1),B_e=We(Oa,tc,28,33,15,1),r=152587890625e-16,t=32;t>=0;t--)B_e[t]=r,r*=.5;for(n=1,e=24;e>=0;e--)P_e[e]=n,n*=.5}function Wxn(e){var t,n;if(Ft(Pt(at(e,(Nt(),w4))))){for(n=new lr(fr(fp(e).a.Kc(),new j));Rr(n);)if(t=l(yr(n),74),Yw(t)&&Ft(Pt(at(t,kv))))return!0}return!1}function fpt(e,t){var n,r,s;sa(e.f,t)&&(t.b=e,r=t.c,bc(e.j,r,0)!=-1||wt(e.j,r),s=t.d,bc(e.j,s,0)!=-1||wt(e.j,s),n=t.a.b,n.c.length!=0&&(!e.i&&(e.i=new Odt(e)),Z3n(e.i,n)))}function Yxn(e){var t,n,r,s,o;return n=e.c.d,r=n.j,s=e.d.d,o=s.j,r==o?n.p=0&&wn(e.substr(t,3),"GMT")||t>=0&&wn(e.substr(t,3),"UTC"))&&(n[0]=t+3),Pke(e,n,r)}function Qxn(e,t){var n,r,s,o,f;for(o=e.g.a,f=e.g.b,r=new K(e.d);r.an;o--)e[o]|=t[o-n-1]>>>f,e[o-1]=t[o-n-1]<0&&gu(e.g,t,e.g,t+r,g),f=n.Kc(),e.i+=r,s=0;s>4&15,o=e[r]&15,f[s++]=NPe[n],f[s++]=NPe[o];return If(f,0,f.length)}function ol(e){var t,n;return e>=Lo?(t=BP+(e-Lo>>10&1023)&ta,n=56320+(e-Lo&1023)&ta,String.fromCharCode(t)+(""+String.fromCharCode(n))):String.fromCharCode(e&ta)}function c9n(e,t){vy();var n,r,s,o;return s=l(l($i(e.r,t),21),87),s.gc()>=2?(r=l(s.Kc().Pb(),117),n=e.u.Hc((Pl(),BM)),o=e.u.Hc(o9),!r.a&&!n&&(s.gc()==2||o)):!1}function ppt(e,t,n,r,s){var o,f,g;for(o=emt(e,t,n,r,s),g=!1;!o;)DV(e,s,!0),g=!0,o=emt(e,t,n,r,s);g&&DV(e,s,!1),f=Mce(s),f.c.length!=0&&(e.d&&e.d.Gg(f),ppt(e,s,n,r,f))}function CV(){CV=U,spe=new M_(Id,0),iPe=new M_("DIRECTED",1),aPe=new M_("UNDIRECTED",2),nPe=new M_("ASSOCIATION",3),sPe=new M_("GENERALIZATION",4),rPe=new M_("DEPENDENCY",5)}function u9n(e,t){var n;if(!M1(e))throw ue(new ic(D4t));switch(n=M1(e),t.g){case 1:return-(e.j+e.f);case 2:return e.i-n.g;case 3:return e.j-n.f;case 4:return-(e.i+e.g)}return 0}function l9n(e,t,n){var r,s,o;return r=t.Lk(),o=t.md(),s=r.Jk()?kb(e,4,r,o,null,JT(e,r,o,De(r,102)&&(l(r,19).Bb&Lo)!=0),!0):kb(e,r.tk()?2:1,r,o,r.ik(),-1,!0),n?n.nj(s):n=s,n}function qT(e,t){var n,r;for(tr(t),r=e.b.c.length,wt(e.b,t);r>0;){if(n=r,r=(r-1)/2|0,e.a.Ne(Rt(e.b,r),t)<=0)return nf(e.b,n,t),!0;nf(e.b,n,Rt(e.b,r))}return nf(e.b,r,t),!0}function s9e(e,t,n,r){var s,o;if(s=0,n)s=HU(e.a[n.g][t.g],r);else for(o=0;o=g)}function bpt(e){switch(e.g){case 0:return new $ne;case 1:return new zne;default:throw ue(new Wn("No implementation is available for the width approximator "+(e.f!=null?e.f:""+e.g)))}}function a9e(e,t,n,r){var s;if(s=!1,Da(r)&&(s=!0,Hk(t,n,Zr(r))),s||gy(r)&&(s=!0,a9e(e,t,n,r)),s||De(r,242)&&(s=!0,qm(t,n,l(r,242))),!s)throw ue(new hse(PSe))}function f9n(e,t){var n,r,s;if(n=t.qi(e.a),n&&(s=t1((!n.b&&(n.b=new lh((En(),Do),Qc,n)),n.b),Bf),s!=null)){for(r=1;r<(kl(),iBe).length;++r)if(wn(iBe[r],s))return r}return 0}function d9n(e,t){var n,r,s;if(n=t.qi(e.a),n&&(s=t1((!n.b&&(n.b=new lh((En(),Do),Qc,n)),n.b),Bf),s!=null)){for(r=1;r<(kl(),sBe).length;++r)if(wn(sBe[r],s))return r}return 0}function mpt(e,t){var n,r,s,o;if(tr(t),o=e.a.gc(),o0?1:0;o.a[s]!=n;)o=o.a[s],s=e.a.Ne(n.d,o.d)>0?1:0;o.a[s]=r,r.b=n.b,r.a[0]=n.a[0],r.a[1]=n.a[1],n.a[0]=null,n.a[1]=null}function b9n(e){var t,n,r,s;for(t=new mt,n=We(th,vg,28,e.a.c.length,16,1),A5e(n,n.length),s=new K(e.a);s.a0&&Hmt((Sn(0,n.c.length),l(n.c[0],30)),e),n.c.length>1&&Hmt(l(Rt(n,n.c.length-1),30),e),t.Vg()}function v9n(e){Pl();var t,n;return t=is(kp,he(le(pY,1),it,279,0,[im])),!(AN(zH(t,e))>1||(n=is(BM,he(le(pY,1),it,279,0,[PM,o9])),AN(zH(n,e))>1))}function c9e(e,t){var n;n=wu((db(),Gf),e),De(n,507)?sc(Gf,e,new unt(this,t)):sc(Gf,e,this),Wue(this,t),t==(Ak(),GPe)?(this.wb=l(this,2038),l(t,2040)):this.wb=(wb(),Un)}function w9n(e){var t,n,r;if(e==null)return null;for(t=null,n=0;n<$M.length;++n)try{return Vet($M[n],e)}catch(s){if(s=ms(s),De(s,33))r=s,t=r;else throw ue(s)}throw ue(new uU(t))}function ypt(){ypt=U,Z6t=he(le($t,1),dt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),e7t=he(le($t,1),dt,2,6,["Jan","Feb","Mar","Apr",Ax,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])}function xpt(e){var t,n,r;t=wn(typeof t,Ahe)?null:new Io,t&&(Ok(),n=(r=900,r>=C2?"error":r>=900?"warn":r>=800?"info":"log"),Mat(n,e.a),e.b&&lke(t,n,e.b,"Exception: ",!0))}function Q(e,t){var n,r;return r=(!e.q&&(e.q=new Nr),or(e.q,t)),r??(n=t.Sg(),De(n,4)&&(n==null?(!e.q&&(e.q=new Nr),ox(e.q,t)):(!e.q&&(e.q=new Nr),Ti(e.q,t,n))),n)}function so(){so=U,w0=new pO("P1_CYCLE_BREAKING",0),xg=new pO("P2_LAYERING",1),pu=new pO("P3_NODE_ORDERING",2),Cu=new pO("P4_NODE_PLACEMENT",3),wc=new pO("P5_EDGE_ROUTING",4)}function y9n(e,t){fA();var n;if(e.c==t.c){if(e.b==t.b||_3n(e.b,t.b)){if(n=Jln(e.b)?1:-1,e.a&&!t.a)return n;if(!e.a&&t.a)return-n}return iu(e.b.g,t.b.g)}else return Xi(e.c,t.c)}function kpt(e,t){var n,r,s;if(l9e(e,t))return!0;for(r=new K(t);r.a=s||t<0)throw ue(new rc(h0e+t+gv+s));if(n>=s||n<0)throw ue(new rc(f0e+n+gv+s));return t!=n?r=(o=e.Cj(n),e.qj(t,o),o):r=e.xj(n),r}function Cpt(e){var t,n,r;if(r=e,e)for(t=0,n=e.Eh();n;n=n.Eh()){if(++t>xhe)return Cpt(n);if(r=n,n==e)throw ue(new ic("There is a cycle in the containment hierarchy of "+e))}return r}function Ob(e){var t,n,r;for(r=new Qm(To,"[","]"),n=e.Kc();n.Ob();)t=n.Pb(),np(r,qe(t)===qe(e)?"(this Collection)":t==null?cl:Tc(t));return r.a?r.e.length==0?r.a.a:r.a.a+(""+r.e):r.c}function l9e(e,t){var n,r;if(r=!1,t.gc()<2)return!1;for(n=0;n1&&(e.j.b+=e.e)):(e.j.a+=n.a,e.j.b=b.Math.max(e.j.b,n.b),e.d.c.length>1&&(e.j.a+=e.e))}function Nb(){Nb=U,Bxt=he(le(Mo,1),ou,64,0,[(_t(),Xn),sr,Mr]),Pxt=he(le(Mo,1),ou,64,0,[sr,Mr,Zn]),Fxt=he(le(Mo,1),ou,64,0,[Mr,Zn,Xn]),Rxt=he(le(Mo,1),ou,64,0,[Zn,Xn,sr])}function k9n(e,t,n,r){var s,o,f,g,w,T,C;if(f=e.c.d,g=e.d.d,f.j!=g.j)for(C=e.b,s=f.j,w=null;s!=g.j;)w=t==0?KU(s):M8e(s),o=lxe(s,C.d[s.g],n),T=lxe(w,C.d[w.g],n),ci(r,Pi(o,T)),s=w}function T9n(e,t,n,r){var s,o,f,g,w;return f=Lgt(e.a,t,n),g=l(f.a,17).a,o=l(f.b,17).a,r&&(w=l(Q(t,(ft(),Bl)),10),s=l(Q(n,Bl),10),w&&s&&(but(e.b,w,s),g+=e.b.i,o+=e.b.e)),g>o}function _pt(e){var t,n,r,s,o,f,g,w,T;for(this.a=Xdt(e),this.b=new mt,n=e,r=0,s=n.length;rTae(e.d).c?(e.i+=e.g.c,uue(e.d)):Tae(e.d).c>Tae(e.g).c?(e.e+=e.d.c,uue(e.g)):(e.i+=Rst(e.g),e.e+=Rst(e.d),uue(e.g),uue(e.d))}function _9n(e,t,n){var r,s,o,f;for(o=t.q,f=t.r,new Hm((Q0(),Qb),t,o,1),new Hm(Qb,o,f,1),s=new K(n);s.ag&&(w=g/r),s>o&&(T=o/s),f=b.Math.min(w,T),e.a+=f*(t.a-e.a),e.b+=f*(t.b-e.b)}function D9n(e,t,n,r,s){var o,f;for(f=!1,o=l(Rt(n.b,0),27);aLn(e,t,o,r,s)&&(f=!0,oxn(n,o),n.b.c.length!=0);)o=l(Rt(n.b,0),27);return n.b.c.length==0&&ZN(n.j,n),f&&mV(t.q),f}function I9n(e,t){d6();var n,r,s,o;if(t.b<2)return!1;for(o=Fr(t,0),n=l(Pr(o),8),r=n;o.b!=o.d.c;){if(s=l(Pr(o),8),lle(e,r,s))return!0;r=s}return!!lle(e,r,n)}function f9e(e,t,n,r){var s,o;return n==0?(!e.o&&(e.o=new yl((au(),Ag),R2,e,0)),Jq(e.o,t,r)):(o=l(Mn((s=l(Gn(e,16),29),s||e.ii()),n),69),o.wk().Ak(e,Ku(e),n-wr(e.ii()),t,r))}function Wue(e,t){var n;t!=e.sb?(n=null,e.sb&&(n=l(e.sb,54).Th(e,1,jM,n)),t&&(n=l(t,54).Rh(e,1,jM,n)),n=E8e(e,t,n),n&&n.oj()):e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,4,t,t))}function O9n(e,t){var n,r,s,o;if(t)s=ap(t,"x"),n=new wQe(e),cT(n.a,(tr(s),s)),o=ap(t,"y"),r=new yQe(e),lT(r.a,(tr(o),o));else throw ue(new dd("All edge sections need an end point."))}function N9n(e,t){var n,r,s,o;if(t)s=ap(t,"x"),n=new bQe(e),uT(n.a,(tr(s),s)),o=ap(t,"y"),r=new mQe(e),hT(r.a,(tr(o),o));else throw ue(new dd("All edge sections need a start point."))}function P9n(e,t){var n,r,s,o,f,g,w;for(r=r1t(e),o=0,g=r.length;o>22-t,s=e.h<>22-t):t<44?(n=0,r=e.l<>44-t):(n=0,r=0,s=e.l<e)throw ue(new Wn("k must be smaller than n"));return t==0||t==e?1:e==0?0:jxe(e)/(jxe(t)*jxe(e-t))}function d9e(e,t){var n,r,s,o;for(n=new Lye(e);n.g==null&&!n.c?o6e(n):n.g==null||n.i!=0&&l(n.g[n.i-1],51).Ob();)if(o=l(IV(n),58),De(o,167))for(r=l(o,167),s=0;s>4],t[n*2+1]=BY[o&15];return If(t,0,t.length)}function Q9n(e){LH();var t,n,r;switch(r=e.c.length,r){case 0:return N6t;case 1:return t=l(g2t(new K(e)),44),Udn(t.ld(),t.md());default:return n=l(j1(e,We(mv,rG,44,e.c.length,0,1)),173),new f3e(n)}}function J9n(e){var t,n,r,s,o,f;for(t=new H5,n=new H5,Tb(t,e),Tb(n,e);n.b!=n.c;)for(s=l(Q8(n),36),f=new K(s.a);f.a0&&vP(e,n,t),s):$Tn(e,t,n)}function Pb(){Pb=U,jCt=(bi(),r9),$Ct=Dv,PCt=Mv,BCt=a7,FCt=em,NCt=s7,JIe=rF,RCt=L4,fge=(_ke(),TCt),dge=ECt,eOe=ACt,gge=DCt,tOe=LCt,nOe=MCt,ZIe=CCt,YW=SCt,XW=_Ct,VB=ICt,rOe=OCt,QIe=kCt}function Ppt(e,t){var n,r,s,o,f;if(e.e<=t||kbn(e,e.g,t))return e.g;for(o=e.r,r=e.g,f=e.r,s=(o-r)/2+r;r+11&&(e.e.b+=e.a)):(e.e.a+=n.a,e.e.b=b.Math.max(e.e.b,n.b),e.d.c.length>1&&(e.e.a+=e.a))}function rkn(e){var t,n,r,s;switch(s=e.i,t=s.b,r=s.j,n=s.g,s.a.g){case 0:n.a=(e.g.b.o.a-r.a)/2;break;case 1:n.a=t.d.n.a+t.d.a.a;break;case 2:n.a=t.d.n.a+t.d.a.a-r.a;break;case 3:n.b=t.d.n.b+t.d.a.b}}function ikn(e,t,n){var r,s,o;for(s=new lr(fr(up(n).a.Kc(),new j));Rr(s);)r=l(yr(s),18),!Ao(r)&&!(!Ao(r)&&r.c.i.c==r.d.i.c)&&(o=Cbt(e,r,n,new _Je),o.c.length>1&&qn(t.c,o))}function Fpt(e,t,n,r,s){if(rr&&(e.a=r),e.bs&&(e.b=s),e}function skn(e){if(De(e,143))return BCn(l(e,143));if(De(e,233))return S5n(l(e,233));if(De(e,23))return F9n(l(e,23));throw ue(new Wn(BSe+Ob(new Ll(he(le(ka,1),jn,1,5,[e])))))}function akn(e,t,n,r,s){var o,f,g;for(o=!0,f=0;f>>s|n[f+r+1]<>>s,++f}return o}function m9e(e,t,n,r){var s,o,f;if(t.k==(Jn(),Aa)){for(o=new lr(fr(Ea(t).a.Kc(),new j));Rr(o);)if(s=l(yr(o),18),f=s.c.i.k,f==Aa&&e.c.a[s.c.i.c.p]==r&&e.c.a[t.c.p]==n)return!0}return!1}function okn(e,t){var n,r,s,o;return t&=63,n=e.h&pp,t<22?(o=n>>>t,s=e.m>>t|n<<22-t,r=e.l>>t|e.m<<22-t):t<44?(o=0,s=n>>>t-22,r=e.m>>t-22|e.h<<44-t):(o=0,s=0,r=n>>>t-44),qu(r&Ql,s&Ql,o&pp)}function Rpt(e,t,n,r){var s;this.b=r,this.e=e==(jw(),cM),s=t[n],this.d=Fm(th,[dt,vg],[183,28],16,[s.length,s.length],2),this.a=Fm(Ur,[dt,fi],[53,28],15,[s.length,s.length],2),this.c=new Jxe(t,n)}function ckn(e){var t,n,r;for(e.k=new l6e((_t(),he(le(Mo,1),ou,64,0,[jc,Xn,sr,Mr,Zn])).length,e.j.c.length),r=new K(e.j);r.a=n)return UT(e,t,r.p),!0;return!1}function u6(e,t,n,r){var s,o,f,g,w,T;for(f=n.length,o=0,s=-1,T=Dht((Yn(t,e.length+1),e.substr(t)),(Aae(),O_e)),g=0;go&&Pgn(T,Dht(n[g],O_e))&&(s=g,o=w);return s>=0&&(r[0]=t+o),s}function $pt(e){var t;return e.Db&64?Yue(e):(t=new Eh(CSe),!e.a||li(li((t.a+=' "',t),e.a),'"'),li(lw(li(lw(li(lw(li(lw((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function zpt(e,t,n){var r,s,o,f,g;for(g=Wu(e.e.Dh(),t),s=l(e.g,124),r=0,f=0;fn?_9e(e,n,"start index"):t<0||t>n?_9e(t,n,"end index"):WA("end index (%s) must not be less than start index (%s)",he(le(ka,1),jn,1,5,[bt(t),bt(e)]))}function Hpt(e,t){var n,r,s,o;for(r=0,s=e.length;r0&&Upt(e,o,n));t.p=0}function Qt(e){var t;this.c=new os,this.f=e.e,this.e=e.d,this.i=e.g,this.d=e.c,this.b=e.b,this.k=e.j,this.a=e.a,e.i?this.j=e.i:this.j=(t=l(G0(Eg),9),new Jh(t,l(o0(t,t.length),9),0)),this.g=e.f}function gkn(e){var t,n,r,s;for(t=yb(li(new Eh("Predicates."),"and"),40),n=!0,s=new xr(e);s.b0?g[f-1]:We(kg,S2,10,0,0,1),s=g[f],T=f=0?e.ki(s):D9e(e,r);else throw ue(new Wn(qb+r.xe()+TL));else throw ue(new Wn(q4t+t+H4t));else of(e,n,r)}function v9e(e){var t,n;if(n=null,t=!1,De(e,211)&&(t=!0,n=l(e,211).a),t||De(e,263)&&(t=!0,n=""+l(e,263).a),t||De(e,493)&&(t=!0,n=""+l(e,493).a),!t)throw ue(new hse(PSe));return n}function w9e(e,t,n){var r,s,o,f,g,w;for(w=Wu(e.e.Dh(),t),r=0,g=e.i,s=l(e.g,124),f=0;f=e.d.b.c.length&&(t=new vu(e.d),t.p=r.p-1,wt(e.d.b,t),n=new vu(e.d),n.p=r.p,wt(e.d.b,n)),Ha(r,l(Rt(e.d.b,r.p),30))}function k9e(e,t,n){var r,s,o;if(!e.b[t.g]){for(e.b[t.g]=!0,r=n,!r&&(r=new lN),ci(r.b,t),o=e.a[t.g].Kc();o.Ob();)s=l(o.Pb(),65),s.b!=t&&k9e(e,s.b,r),s.c!=t&&k9e(e,s.c,r),ci(r.a,s);return r}return null}function vkn(e){switch(e.g){case 0:case 1:case 2:return _t(),Xn;case 3:case 4:case 5:return _t(),Mr;case 6:case 7:case 8:return _t(),Zn;case 9:case 10:case 11:return _t(),sr;default:return _t(),jc}}function wkn(e,t){var n;return e.c.length==0?!1:(n=cdt((Sn(0,e.c.length),l(e.c[0],18)).c.i),Sh(),n==(jy(),W6)||n==K6?!0:X5(gc(new vn(null,new kn(e,16)),new lte),new SXe(t)))}function Zue(e,t){if(De(t,207))return dhn(e,l(t,27));if(De(t,193))return ghn(e,l(t,123));if(De(t,452))return fhn(e,l(t,166));throw ue(new Wn(BSe+Ob(new Ll(he(le(ka,1),jn,1,5,[t])))))}function Xpt(e,t,n){var r,s;if(this.f=e,r=l(or(e.b,t),260),s=r?r.a:0,$6e(n,s),n>=(s/2|0))for(this.e=r?r.c:null,this.d=s;n++0;)l7e(this);this.b=t,this.a=null}function ykn(e,t){var n,r;t.a?eSn(e,t):(n=l(kse(e.b,t.b),60),n&&n==e.a[t.b.f]&&n.a&&n.a!=t.b.a&&n.c.Fc(t.b),r=l(xse(e.b,t.b),60),r&&e.a[r.f]==t.b&&r.a&&r.a!=t.b.a&&t.b.c.Fc(r),pae(e.b,t.b))}function Qpt(e,t){var n,r;if(n=l(Zo(e.b,t),127),l(l($i(e.r,t),21),87).dc()){n.n.b=0,n.n.c=0;return}n.n.b=e.C.b,n.n.c=e.C.c,e.A.Hc((gh(),Ov))&&Tmt(e,t),r=W6n(e,t),fle(e,t)==(r6(),nm)&&(r+=2*e.w),n.a.a=r}function Jpt(e,t){var n,r;if(n=l(Zo(e.b,t),127),l(l($i(e.r,t),21),87).dc()){n.n.d=0,n.n.a=0;return}n.n.d=e.C.d,n.n.a=e.C.a,e.A.Hc((gh(),Ov))&&Emt(e,t),r=K6n(e,t),fle(e,t)==(r6(),nm)&&(r+=2*e.w),n.a.b=r}function xkn(e,t){var n,r,s,o;for(o=new mt,r=new K(t);r.ar&&(Yn(t-1,e.length),e.charCodeAt(t-1)<=32);)--t;return r>0||tn.a&&(r.Hc((rv(),EM))?s=(t.a-n.a)/2:r.Hc(CM)&&(s=t.a-n.a)),t.b>n.b&&(r.Hc((rv(),_M))?o=(t.b-n.b)/2:r.Hc(SM)&&(o=t.b-n.b)),o9e(e,s,o)}function s2t(e,t,n,r,s,o,f,g,w,T,C,L,F){De(e.Cb,90)&&Uy(Gl(l(e.Cb,90)),4),Bu(e,n),e.f=f,DT(e,g),OT(e,w),MT(e,T),IT(e,C),v2(e,L),NT(e,F),m2(e,!0),d2(e,s),e.Zk(o),ev(e,t),r!=null&&(e.i=null,AU(e,r))}function _9e(e,t,n){if(e<0)return WA(n3t,he(le(ka,1),jn,1,5,[n,bt(e)]));if(t<0)throw ue(new Wn(r3t+t));return WA("%s (%s) must not be greater than size (%s)",he(le(ka,1),jn,1,5,[n,bt(e),bt(t)]))}function A9e(e,t,n,r,s,o){var f,g,w,T;if(f=r-n,f<7){p5n(t,n,r,o);return}if(w=n+s,g=r+s,T=w+(g-w>>1),A9e(t,e,w,T,-s,o),A9e(t,e,T,g,-s,o),o.Ne(e[T-1],e[T])<=0){for(;n=0?e.bi(o,n):ike(e,s,n);else throw ue(new Wn(qb+s.xe()+TL));else throw ue(new Wn(q4t+t+H4t));else cf(e,r,s,n)}function a2t(e){var t,n;if(e.f){for(;e.n>0;){if(t=l(e.k.Xb(e.n-1),76),n=t.Lk(),De(n,102)&&l(n,19).Bb&nu&&(!e.e||n.pk()!=uC||n.Lj()!=0)&&t.md()!=null)return!0;--e.n}return!1}else return e.n>0}function o2t(e){var t,n,r,s;if(n=l(e,54)._h(),n)try{if(r=null,t=GT((db(),Gf),Gmt(_5n(n))),t&&(s=t.ai(),s&&(r=s.Fl(Aun(n.e)))),r&&r!=e)return o2t(r)}catch(o){if(o=ms(o),!De(o,63))throw ue(o)}return e}function Fkn(e,t,n){var r,s,o;n.Ug("Remove overlaps",1),n.dh(t,RCe),r=l(at(t,(V5(),Q6)),27),e.f=r,e.a=wue(l(at(t,(Pb(),VB)),300)),s=Ge(at(t,(bi(),Dv))),_e(e,(tr(s),s)),o=Gy(r),gwt(e,t,o,n),n.dh(t,$G)}function Rkn(e){var t,n,r;if(Ft(Pt(at(e,(bi(),tF))))){for(r=new mt,n=new lr(fr(fp(e).a.Kc(),new j));Rr(n);)t=l(yr(n),74),Yw(t)&&Ft(Pt(at(t,Kge)))&&qn(r.c,t);return r}else return Cn(),Cn(),Co}function c2t(e){if(!e)return aZe(),H6t;var t=e.valueOf?e.valueOf():e;if(t!==e){var n=z0e[typeof t];return n?n(t):m8e(typeof t)}else return e instanceof Array||e instanceof b.Array?new Oz(e):new xk(e)}function u2t(e,t,n){var r,s,o;switch(o=e.o,r=l(Zo(e.p,n),252),s=r.i,s.b=lP(r),s.a=uP(r),s.b=b.Math.max(s.b,o.a),s.b>o.a&&!t&&(s.b=o.a),s.c=-(s.b-o.a)/2,n.g){case 1:s.d=-s.a;break;case 3:s.d=o.b}Cle(r),Sle(r)}function l2t(e,t,n){var r,s,o;switch(o=e.o,r=l(Zo(e.p,n),252),s=r.i,s.b=lP(r),s.a=uP(r),s.a=b.Math.max(s.a,o.b),s.a>o.b&&!t&&(s.a=o.b),s.d=-(s.a-o.b)/2,n.g){case 4:s.c=-s.b;break;case 2:s.c=o.a}Cle(r),Sle(r)}function jkn(e,t){var n,r,s,o,f;if(!t.dc()){if(s=l(t.Xb(0),131),t.gc()==1){zbt(e,s,s,1,0,t);return}for(n=1;n0)try{s=Oh(t,ao,Ni)}catch(o){throw o=ms(o),De(o,130)?(r=o,ue(new uU(r))):ue(o)}return n=(!e.a&&(e.a=new Yie(e)),e.a),s=0?l(Oe(n,s),58):null}function Hkn(e,t){if(e<0)return WA(n3t,he(le(ka,1),jn,1,5,["index",bt(e)]));if(t<0)throw ue(new Wn(r3t+t));return WA("%s (%s) must be less than size (%s)",he(le(ka,1),jn,1,5,["index",bt(e),bt(t)]))}function Ukn(e){var t,n,r,s,o;if(e==null)return cl;for(o=new Qm(To,"[","]"),n=e,r=0,s=n.length;r=0?e.Lh(n,!0,!0):Xw(e,s,!0),160)),l(r,220).Zl(t);else throw ue(new Wn(qb+t.xe()+TL))}function I9e(e){var t,n;return e>-0x800000000000&&e<0x800000000000?e==0?0:(t=e<0,t&&(e=-e),n=da(b.Math.floor(b.Math.log(e)/.6931471805599453)),(!t||e!=b.Math.pow(2,n))&&++n,n):_0t(tu(e))}function sTn(e){var t,n,r,s,o,f,g;for(o=new bd,n=new K(e);n.a2&&g.e.b+g.j.b<=2&&(s=g,r=f),o.a.zc(s,o),s.q=r);return o}function aTn(e,t,n){n.Ug("Eades radial",1),n.dh(t,$G),e.d=l(at(t,(V5(),Q6)),27),e.c=ze(Ge(at(t,(Pb(),XW)))),e.e=wue(l(at(t,VB),300)),e.a=P5n(l(at(t,rOe),434)),e.b=txn(l(at(t,ZIe),354)),F8n(e),n.dh(t,$G)}function oTn(e,t){if(t.Ug("Target Width Setter",1),P1(e,(z1(),Sge)))Vi(e,(fg(),_4),Ge(at(e,Sge)));else throw ue(new Zp("A target width has to be set if the TargetWidthWidthApproximator should be used."));t.Vg()}function p2t(e,t){var n,r,s;return r=new hp(e),mc(r,t),rt(r,(ft(),dW),t),rt(r,(Nt(),Ds),(Pa(),Au)),rt(r,Rd,(lg(),cY)),x(r,(Jn(),Ks)),n=new du,Nc(n,r),ga(n,(_t(),Zn)),s=new du,Nc(s,r),ga(s,sr),r}function b2t(e){switch(e.g){case 0:return new cse((jw(),jB));case 1:return new hie;case 2:return new fie;default:throw ue(new Wn("No implementation is available for the crossing minimizer "+(e.f!=null?e.f:""+e.g)))}}function m2t(e,t){var n,r,s,o,f;for(e.c[t.p]=!0,wt(e.a,t),f=new K(t.j);f.a=o)f.$b();else for(s=f.Kc(),r=0;r0?m3e():f<0&&x2t(e,t,-f),!0):!1}function uP(e){var t,n,r,s,o,f,g;if(g=0,e.b==0){for(f=rgt(e,!0),t=0,r=f,s=0,o=r.length;s0&&(g+=n,++t);t>1&&(g+=e.c*(t-1))}else g=vZe(kce(Ey(ji(S5e(e.a),new Ya),new Ba)));return g>0?g+e.n.d+e.n.a:0}function lP(e){var t,n,r,s,o,f,g;if(g=0,e.b==0)g=vZe(kce(Ey(ji(S5e(e.a),new Ac),new Jc)));else{for(f=igt(e,!0),t=0,r=f,s=0,o=r.length;s0&&(g+=n,++t);t>1&&(g+=e.c*(t-1))}return g>0?g+e.n.b+e.n.c:0}function gTn(e){var t,n;if(e.c.length!=2)throw ue(new ic("Order only allowed for two paths."));t=(Sn(0,e.c.length),l(e.c[0],18)),n=(Sn(1,e.c.length),l(e.c[1],18)),t.d.i!=n.c.i&&(e.c.length=0,qn(e.c,n),qn(e.c,t))}function k2t(e,t,n){var r;for(j5(n,t.g,t.f),Xh(n,t.i,t.j),r=0;r<(!t.a&&(t.a=new nt(Li,t,10,11)),t.a).i;r++)k2t(e,l(Oe((!t.a&&(t.a=new nt(Li,t,10,11)),t.a),r),27),l(Oe((!n.a&&(n.a=new nt(Li,n,10,11)),n.a),r),27))}function pTn(e,t){var n,r,s,o;for(o=l(Zo(e.b,t),127),n=o.a,s=l(l($i(e.r,t),21),87).Kc();s.Ob();)r=l(s.Pb(),117),r.c&&(n.a=b.Math.max(n.a,r5e(r.c)));if(n.a>0)switch(t.g){case 2:o.n.c=e.s;break;case 4:o.n.b=e.s}}function bTn(e,t){var n,r,s;return n=l(Q(t,(p0(),Hx)),17).a-l(Q(e,Hx),17).a,n==0?(r=ya(Xa(l(Q(e,(Cb(),wB)),8)),l(Q(e,zL),8)),s=ya(Xa(l(Q(t,wB),8)),l(Q(t,zL),8)),Xi(r.a*r.b,s.a*s.b)):n}function mTn(e,t){var n,r,s;return n=l(Q(t,(Vc(),VW)),17).a-l(Q(e,VW),17).a,n==0?(r=ya(Xa(l(Q(e,(Zi(),qB)),8)),l(Q(e,ZE),8)),s=ya(Xa(l(Q(t,qB),8)),l(Q(t,ZE),8)),Xi(r.a*r.b,s.a*s.b)):n}function T2t(e){var t,n;return n=new lb,n.a+="e_",t=lyn(e),t!=null&&(n.a+=""+t),e.c&&e.d&&(li((n.a+=" ",n),wV(e.c)),li(mu((n.a+="[",n),e.c.i),"]"),li((n.a+=Yhe,n),wV(e.d)),li(mu((n.a+="[",n),e.d.i),"]")),n.a}function E2t(e){switch(e.g){case 0:return new yie;case 1:return new pk;case 2:return new wie;case 3:return new vie;default:throw ue(new Wn("No implementation is available for the layout phase "+(e.f!=null?e.f:""+e.g)))}}function P9e(e,t,n,r,s){var o;switch(o=0,s.g){case 1:o=b.Math.max(0,t.b+e.b-(n.b+r));break;case 3:o=b.Math.max(0,-e.b-r);break;case 2:o=b.Math.max(0,-e.a-r);break;case 4:o=b.Math.max(0,t.a+e.a-(n.a+r))}return o}function vTn(e,t,n){var r,s,o,f,g;if(n)for(s=n.a.length,r=new jm(s),g=(r.b-r.a)*r.c<0?(gb(),lm):new mb(r);g.Ob();)f=l(g.Pb(),17),o=eT(n,f.a),LSe in o.a||u0e in o.a?I_n(e,o,t):QIn(e,o,t),Xhn(l(or(e.b,BT(o)),74))}function B9e(e){var t,n;switch(e.b){case-1:return!0;case 0:return n=e.t,n>1||n==-1?(e.b=-1,!0):(t=Of(e),t&&(Ro(),t.lk()==U5t)?(e.b=-1,!0):(e.b=1,!1));default:case 1:return!1}}function F9e(e,t){var n,r,s,o;if(Mi(e),e.c!=0||e.a!=123)throw ue(new ri(si((Jr(),f5t))));if(o=t==112,r=e.d,n=Bk(e.i,125,r),n<0)throw ue(new ri(si((Jr(),d5t))));return s=ef(e.i,r,n),e.d=n+1,Wlt(s,o,(e.e&512)==512)}function C2t(e){var t,n,r,s,o,f,g;if(r=e.a.c.length,r>0)for(f=e.c.d,g=e.d.d,s=md(ya(new lt(g.a,g.b),f),1/(r+1)),o=new lt(f.a,f.b),n=new K(e.a);n.a=0&&r=0?e.Lh(n,!0,!0):Xw(e,s,!0),160)),l(r,220).Wl(t);throw ue(new Wn(qb+t.xe()+e0e))}function kTn(){j3e();var e;return AAt?l(GT((db(),Gf),Ff),2038):(yi(mv,new zI),mDn(),e=l(De(wu((db(),Gf),Ff),560)?wu(Gf,Ff):new qat,560),AAt=!0,vOn(e),COn(e),Ti((R3e(),VPe),e,new k1),sc(Gf,Ff,e),e)}function TTn(e,t){var n,r,s,o;e.j=-1,ch(e.e)?(n=e.i,o=e.i!=0,uN(e,t),r=new rp(e.e,3,e.c,null,t,n,o),s=t.zl(e.e,e.c,null),s=spt(e,t,s),s?(s.nj(r),s.oj()):Bi(e.e,r)):(uN(e,t),s=t.zl(e.e,e.c,null),s&&s.oj())}function LV(e,t){var n,r,s;if(s=0,r=t[0],r>=e.length)return-1;for(n=(Yn(r,e.length),e.charCodeAt(r));n>=48&&n<=57&&(s=s*10+(n-48),++r,!(r>=e.length));)n=(Yn(r,e.length),e.charCodeAt(r));return r>t[0]?t[0]=r:s=-1,s}function ETn(e){var t,n,r,s,o;return s=l(e.a,17).a,o=l(e.b,17).a,n=s,r=o,t=b.Math.max(b.Math.abs(s),b.Math.abs(o)),s<=0&&s==o?(n=0,r=o-1):s==-t&&o!=t?(n=o,r=s,o>=0&&++n):(n=-o,r=s),new fa(bt(n),bt(r))}function CTn(e,t,n,r){var s,o,f,g,w,T;for(s=0;s=0&&T>=0&&w=e.i)throw ue(new rc(h0e+t+gv+e.i));if(n>=e.i)throw ue(new rc(f0e+n+gv+e.i));return r=e.g[n],t!=n&&(t>16),t=r>>16&16,n=16-t,e=e>>t,r=e-256,t=r>>16&8,n+=t,e<<=t,r=e-Zy,t=r>>16&4,n+=t,e<<=t,r=e-_d,t=r>>16&2,n+=t,e<<=t,r=e>>14,t=r&~(r>>1),n+2-t)}function _Tn(e){nx();var t,n,r,s;for(SK=new mt,l1e=new Nr,u1e=new mt,t=(!e.a&&(e.a=new nt(Li,e,10,11)),e.a),mIn(t),s=new ar(t);s.e!=s.i.gc();)r=l(dr(s),27),bc(SK,r,0)==-1&&(n=new mt,wt(u1e,n),Ldt(r,n));return u1e}function ATn(e,t,n){var r,s,o,f;e.a=n.b.d,De(t,326)?(s=f6(l(t,74),!1,!1),o=sP(s),r=new n_(e),Za(o,r),xP(o,s),t.of((bi(),A3))!=null&&Za(l(t.of(A3),75),r)):(f=l(t,422),f.rh(f.nh()+e.a.a),f.sh(f.oh()+e.a.b))}function LTn(e,t){var n,r,s;for(s=new mt,r=Fr(t.a,0);r.b!=r.d.c;)n=l(Pr(r),65),n.c.g==e.g&&qe(Q(n.b,(Vc(),$d)))!==qe(Q(n.c,$d))&&!X5(new vn(null,new kn(s,16)),new RXe(n))&&qn(s.c,n);return Gs(s,new Ute),s}function _2t(e,t,n){var r,s,o,f;return De(t,153)&&De(n,153)?(o=l(t,153),f=l(n,153),e.a[o.a][f.a]+e.a[f.a][o.a]):De(t,250)&&De(n,250)&&(r=l(t,250),s=l(n,250),r.a==s.a)?l(Q(s.a,(p0(),Hx)),17).a:0}function A2t(e,t){var n,r,s,o,f,g,w,T;for(T=ze(Ge(Q(t,(Nt(),nM)))),w=e[0].n.a+e[0].o.a+e[0].d.c+T,g=1;g=0?n:(g=tA(ya(new lt(f.c+f.b/2,f.d+f.a/2),new lt(o.c+o.b/2,o.d+o.a/2))),-(evt(o,f)-1)*g)}function DTn(e,t,n){var r;Os(new vn(null,(!n.a&&(n.a=new nt(cs,n,6,6)),new kn(n.a,16))),new Htt(e,t)),Os(new vn(null,(!n.n&&(n.n=new nt(nc,n,1,7)),new kn(n.n,16))),new Utt(e,t)),r=l(at(n,(bi(),A3)),75),r&&$7e(r,e,t)}function Xw(e,t,n){var r,s,o;if(o=b6((kl(),no),e.Dh(),t),o)return Ro(),l(o,69).xk()||(o=ix(ac(no,o))),s=(r=e.Ih(o),l(r>=0?e.Lh(r,!0,!0):Xw(e,o,!0),160)),l(s,220).Sl(t,n);throw ue(new Wn(qb+t.xe()+e0e))}function R9e(e,t,n,r){var s,o,f,g,w;if(s=e.d[t],s){if(o=s.g,w=s.i,r!=null){for(g=0;g=n&&(r=t,T=(w.c+w.a)/2,f=T-n,w.c<=T-n&&(s=new Iae(w.c,f),kw(e,r++,s)),g=T+n,g<=w.a&&(o=new Iae(g,w.a),Sy(r,e.c.length),k_(e.c,r,o)))}function D2t(e,t,n){var r,s,o,f,g,w;if(!t.dc()){for(s=new os,w=t.Kc();w.Ob();)for(g=l(w.Pb(),40),Ti(e.a,bt(g.g),bt(n)),f=(r=Fr(new Kg(g).a.d,0),new _5(r));sO(f.a);)o=l(Pr(f.a),65).c,_s(s,o,s.c.b,s.c);D2t(e,s,n+1)}}function j9e(e){var t;if(!e.c&&e.g==null)e.d=e.bj(e.f),zr(e,e.d),t=e.d;else{if(e.g==null)return!0;if(e.i==0)return!1;t=l(e.g[e.i-1],51)}return t==e.b&&null.Vm>=null.Um()?(IV(e),j9e(e)):t.Ob()}function I2t(e){if(this.a=e,e.c.i.k==(Jn(),Ks))this.c=e.c,this.d=l(Q(e.c.i,(ft(),Xc)),64);else if(e.d.i.k==Ks)this.c=e.d,this.d=l(Q(e.d.i,(ft(),Xc)),64);else throw ue(new Wn("Edge "+e+" is not an external edge."))}function O2t(e,t){var n,r,s;s=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,3,s,e.b)),t?t!=e&&(Bu(e,t.zb),hce(e,t.d),n=(r=t.c,r??t.zb),dce(e,n==null||wn(n,t.zb)?null:n)):(Bu(e,null),hce(e,0),dce(e,null))}function N2t(e,t){var n;this.e=(Sw(),Xr(e),Sw(),Z8e(e)),this.c=(Xr(t),Z8e(t)),qye(this.e.Rd().dc()==this.c.Rd().dc()),this.d=Y1t(this.e),this.b=Y1t(this.c),n=Fm(ka,[dt,jn],[5,1],5,[this.e.Rd().gc(),this.c.Rd().gc()],2),this.a=n,a3n(this)}function P2t(e){!j0e&&(j0e=LIn());var t=e.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(n){return O2n(n)});return'"'+t+'"'}function $9e(e,t,n,r,s,o){var f,g,w,T,C;if(s!=0)for(qe(e)===qe(n)&&(e=e.slice(t,t+s),t=0),w=n,g=t,T=t+s;g=f)throw ue(new yy(t,f));return s=n[t],f==1?r=null:(r=We(gpe,m0e,424,f-1,0,1),gu(n,0,r,0,t),o=f-t-1,o>0&&gu(n,t+1,r,t,o)),FT(e,r),i2t(e,t,s),s}function F2t(e){var t,n;if(e.f){for(;e.n0?o=px(n):o=UN(px(n))),Vi(t,GE,o)}function RTn(e,t){var n;t.Ug("Partition preprocessing",1),n=l(kc(ji(Pc(ji(new vn(null,new kn(e.a,16)),new qZ),new HZ),new Sj),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[(Nl(),Cc)]))),15),Os(n.Oc(),new n8),t.Vg()}function jTn(e,t){var n,r,s,o,f;for(f=e.j,t.a!=t.b&&Gs(f,new TS),s=f.c.length/2|0,r=0;r0&&vP(e,n,t),o):r.a!=null?(vP(e,t,n),-1):s.a!=null?(vP(e,n,t),1):0}function zTn(e,t){var n,r,s,o,f;for(s=t.b.b,e.a=We(bf,e4,15,s,0,1),e.b=We(th,vg,28,s,16,1),f=Fr(t.b,0);f.b!=f.d.c;)o=l(Pr(f),40),e.a[o.g]=new os;for(r=Fr(t.a,0);r.b!=r.d.c;)n=l(Pr(r),65),e.a[n.b.g].Fc(n),e.a[n.c.g].Fc(n)}function z2t(e,t){var n,r,s,o;e.Pj()?(n=e.Ej(),o=e.Qj(),++e.j,e.qj(n,e.Zi(n,t)),r=e.Ij(3,null,t,n,o),e.Mj()?(s=e.Nj(t,null),s?(s.nj(r),s.oj()):e.Jj(r)):e.Jj(r)):(Dat(e,t),e.Mj()&&(s=e.Nj(t,null),s&&s.oj()))}function z9e(e,t,n){var r,s,o;e.Pj()?(o=e.Qj(),$N(e,t,n),r=e.Ij(3,null,n,t,o),e.Mj()?(s=e.Nj(n,null),e.Tj()&&(s=e.Uj(n,s)),s?(s.nj(r),s.oj()):e.Jj(r)):e.Jj(r)):($N(e,t,n),e.Mj()&&(s=e.Nj(n,null),s&&s.oj()))}function MV(e,t){var n,r,s,o,f;for(f=Wu(e.e.Dh(),t),s=new sb,n=l(e.g,124),o=e.i;--o>=0;)r=n[o],f.am(r.Lk())&&zr(s,r);!Bwt(e,s)&&ch(e.e)&&Tk(e,t.Jk()?kb(e,6,t,(Cn(),Co),null,-1,!1):kb(e,t.tk()?2:1,t,null,null,-1,!1))}function qTn(e,t){var n,r,s,o,f;return e.a==(HT(),VL)?!0:(o=t.a.c,n=t.a.c+t.a.b,!(t.j&&(r=t.A,f=r.c.c.a-r.o.a/2,s=o-(r.n.a+r.o.a),s>f)||t.q&&(r=t.C,f=r.c.c.a-r.o.a/2,s=r.n.a-n,s>f)))}function q2t(e){Soe();var t,n,r,s,o,f,g;for(n=new u2,s=new K(e.e.b);s.a1?e.e*=ze(e.a):e.f/=ze(e.a),l4n(e),b6n(e),d_n(e),rt(e.b,(OA(),CK),e.g)}function G2t(e,t,n){var r,s,o,f,g,w;for(r=0,w=n,t||(r=n*(e.c.length-1),w*=-1),o=new K(e);o.a=0?e.Ah(null):e.Ph().Th(e,-1-t,null,null)),e.Bh(l(s,54),n),r&&r.oj(),e.vh()&&e.wh()&&n>-1&&Bi(e,new _a(e,9,n,o,s)),s):o}function U9e(e,t){var n,r,s,o,f;for(o=e.b.Ce(t),r=(n=e.a.get(o),n??We(ka,jn,1,0,5,1)),f=0;f>5,s>=e.d)return e.e<0;if(n=e.a[s],t=1<<(t&31),e.e<0){if(r=a0t(e),s>16)),15).dd(o),g0&&(!(Yg(e.a.c)&&t.n.d)&&!(R5(e.a.c)&&t.n.b)&&(t.g.d+=b.Math.max(0,r/2-.5)),!(Yg(e.a.c)&&t.n.a)&&!(R5(e.a.c)&&t.n.c)&&(t.g.a-=r-1))}function tbt(e){var t,n,r,s,o;if(s=new mt,o=Xmt(e,s),t=l(Q(e,(ft(),Bl)),10),t)for(r=new K(t.j);r.a>t,o=e.m>>t|n<<22-t,s=e.l>>t|e.m<<22-t):t<44?(f=r?pp:0,o=n>>t-22,s=e.m>>t-22|n<<44-t):(f=r?pp:0,o=r?Ql:0,s=n>>t-44),qu(s&Ql,o&Ql,f&pp)}function ale(e){var t,n,r,s,o,f;for(this.c=new mt,this.d=e,r=gs,s=gs,t=oa,n=oa,f=Fr(e,0);f.b!=f.d.c;)o=l(Pr(f),8),r=b.Math.min(r,o.a),s=b.Math.min(s,o.b),t=b.Math.max(t,o.a),n=b.Math.max(n,o.b);this.a=new Zh(r,s,t-r,n-s)}function rbt(e,t){var n,r,s,o,f,g;for(o=new K(e.b);o.a0&&De(t,44)&&(e.a._j(),T=l(t,44),w=T.ld(),o=w==null?0:ts(w),f=p4e(e.a,o),n=e.a.d[f],n)){for(r=l(n.g,379),C=n.i,g=0;g=2)for(n=s.Kc(),t=Ge(n.Pb());n.Ob();)o=t,t=Ge(n.Pb()),r=b.Math.min(r,(tr(t),t-(tr(o),o)));return r}function lEn(e,t){var n,r,s;for(s=new mt,r=Fr(t.a,0);r.b!=r.d.c;)n=l(Pr(r),65),n.b.g==e.g&&!wn(n.b.c,RG)&&qe(Q(n.b,(Vc(),$d)))!==qe(Q(n.c,$d))&&!X5(new vn(null,new kn(s,16)),new jXe(n))&&qn(s.c,n);return Gs(s,new Wte),s}function hEn(e,t){var n,r,s;if(qe(t)===qe(Xr(e)))return!0;if(!De(t,15)||(r=l(t,15),s=e.gc(),s!=r.gc()))return!1;if(De(r,59)){for(n=0;n0&&(s=n),f=new K(e.f.e);f.a0?(t-=1,n-=1):r>=0&&s<0?(t+=1,n+=1):r>0&&s>=0?(t-=1,n+=1):(t+=1,n-=1),new fa(bt(t),bt(n))}function CEn(e,t){return e.ct.c?1:e.bt.b?1:e.a!=t.a?ts(e.a)-ts(t.a):e.d==(cA(),lM)&&t.d==uM?-1:e.d==uM&&t.d==lM?1:0}function lbt(e,t){var n,r,s,o,f;return o=t.a,o.c.i==t.b?f=o.d:f=o.c,o.c.i==t.b?r=o.c:r=o.d,s=K5n(e.a,f,r),s>0&&s0):s<0&&-s0):!1}function SEn(e,t,n,r){var s,o,f,g,w,T,C,L;for(s=(t-e.d)/e.c.c.length,o=0,e.a+=n,e.d=t,L=new K(e.c);L.a>24;return f}function AEn(e){if(e.ze()){var t=e.c;t.Ae()?e.o="["+t.n:t.ze()?e.o="["+t.xe():e.o="[L"+t.xe()+";",e.b=t.we()+"[]",e.k=t.ye()+"[]";return}var n=e.j,r=e.d;r=r.split("/"),e.o=lue(".",[n,lue("$",r)]),e.b=lue(".",[n,lue(".",r)]),e.k=r[r.length-1]}function LEn(e,t){var n,r,s,o,f;for(f=null,o=new K(e.e.a);o.a=0;t-=2)for(n=0;n<=t;n+=2)(e.b[n]>e.b[n+2]||e.b[n]===e.b[n+2]&&e.b[n+1]>e.b[n+3])&&(r=e.b[n+2],e.b[n+2]=e.b[n],e.b[n]=r,r=e.b[n+3],e.b[n+3]=e.b[n+1],e.b[n+1]=r);e.c=!0}}function IEn(e,t){var n,r,s,o,f,g,w,T,C;for(T=-1,C=0,f=e,g=0,w=f.length;g0&&++C;++T}return C}function d0(e){var t,n;return n=new Eh(Pm(e.Rm)),n.a+="@",li(n,(t=ts(e)>>>0,t.toString(16))),e.Vh()?(n.a+=" (eProxyURI: ",mu(n,e._h()),e.Kh()&&(n.a+=" eClass: ",mu(n,e.Kh())),n.a+=")"):e.Kh()&&(n.a+=" (eClass: ",mu(n,e.Kh()),n.a+=")"),n.a}function UA(e){var t,n,r,s;if(e.e)throw ue(new ic((Xg(J0e),Lhe+J0e.k+Mhe)));for(e.d==(ea(),J1)&&JV(e,hc),n=new K(e.a.a);n.a>24}return n}function PEn(e,t,n){var r,s,o;if(s=l(Zo(e.i,t),314),!s)if(s=new Xht(e.d,t,n),J8(e.i,t,s),ixe(t))jhn(e.a,t.c,t.b,s);else switch(o=vkn(t),r=l(Zo(e.p,o),252),o.g){case 1:case 3:s.j=!0,lse(r,t.b,s);break;case 4:case 2:s.k=!0,lse(r,t.c,s)}return s}function BEn(e,t){var n,r,s,o,f,g,w,T,C;for(w=rg(e.c-e.b&e.a.length-1),T=null,C=null,o=new rA(e);o.a!=o.b;)s=l(UU(o),10),n=(g=l(Q(s,(ft(),a1)),12),g?g.i:null),r=(f=l(Q(s,$f),12),f?f.i:null),(T!=n||C!=r)&&(K2t(w,t),T=n,C=r),qn(w.c,s);K2t(w,t)}function FEn(e,t,n,r){var s,o,f,g,w,T;if(g=new sb,w=Wu(e.e.Dh(),t),s=l(e.g,124),Ro(),l(t,69).xk())for(f=0;f=0)return s;for(o=1,g=new K(t.j);g.a=0)return s;for(o=1,g=new K(t.j);g.a0&&t.Ne((Sn(s-1,e.c.length),l(e.c[s-1],10)),o)>0;)nf(e,s,(Sn(s-1,e.c.length),l(e.c[s-1],10))),--s;Sn(s,e.c.length),e.c[s]=o}n.a=new Nr,n.b=new Nr}function REn(e,t,n){var r,s,o,f,g,w,T,C;for(C=(r=l(t.e&&t.e(),9),new Jh(r,l(o0(r,r.length),9),0)),w=Yy(n,"[\\[\\]\\s,]+"),o=w,f=0,g=o.length;f=0?(t||(t=new f_,r>0&&Jo(t,(Va(0,r,e.length),e.substr(0,r)))),t.a+="\\",Kk(t,n&ta)):t&&Kk(t,n&ta);return t?t.a:e}function $En(e){var t,n,r;for(n=new K(e.a.a.b);n.a0&&(!(Yg(e.a.c)&&t.n.d)&&!(R5(e.a.c)&&t.n.b)&&(t.g.d-=b.Math.max(0,r/2-.5)),!(Yg(e.a.c)&&t.n.a)&&!(R5(e.a.c)&&t.n.c)&&(t.g.a+=b.Math.max(0,r-1)))}function wbt(e,t,n){var r,s;if((e.c-e.b&e.a.length-1)==2)t==(_t(),Xn)||t==sr?(bU(l(yA(e),15),(Ih(),Cg)),bU(l(yA(e),15),tm)):(bU(l(yA(e),15),(Ih(),tm)),bU(l(yA(e),15),Cg));else for(s=new rA(e);s.a!=s.b;)r=l(UU(s),15),bU(r,n)}function zEn(e,t){var n,r,s,o,f,g,w;for(s=qk(new Rwe(e)),g=new Ua(s,s.c.length),o=qk(new Rwe(t)),w=new Ua(o,o.c.length),f=null;g.b>0&&w.b>0&&(n=(br(g.b>0),l(g.a.Xb(g.c=--g.b),27)),r=(br(w.b>0),l(w.a.Xb(w.c=--w.b),27)),n==r);)f=n;return f}function ybt(e,t,n){var r,s,o,f;xct(e,t)>xct(e,n)?(r=Fc(n,(_t(),sr)),e.d=r.dc()?0:Rae(l(r.Xb(0),12)),f=Fc(t,Zn),e.b=f.dc()?0:Rae(l(f.Xb(0),12))):(s=Fc(n,(_t(),Zn)),e.d=s.dc()?0:Rae(l(s.Xb(0),12)),o=Fc(t,sr),e.b=o.dc()?0:Rae(l(o.Xb(0),12)))}function xbt(e,t){var n,r,s,o;for(n=e.o.a,o=l(l($i(e.r,t),21),87).Kc();o.Ob();)s=l(o.Pb(),117),s.e.a=n*ze(Ge(s.b.of(kK))),s.e.b=(r=s.b,r.pf((bi(),eh))?r.ag()==(_t(),Xn)?-r.Mf().b-ze(Ge(r.of(eh))):ze(Ge(r.of(eh))):r.ag()==(_t(),Xn)?-r.Mf().b:0)}function qEn(e,t){var n,r,s,o;for(t.Ug("Self-Loop pre-processing",1),r=new K(e.a);r.ae.c));f++)s.a>=e.s&&(o<0&&(o=f),g=f);return w=(e.s+e.c)/2,o>=0&&(r=M_n(e,t,o,g),w=Aln((Sn(r,t.c.length),l(t.c[r],339))),PTn(t,r,n)),w}function Wr(e,t,n){var r,s,o,f,g,w,T;for(f=(o=new OI,o),I7e(f,(tr(t),t)),T=(!f.b&&(f.b=new lh((En(),Do),Qc,f)),f.b),w=1;w0&&SMn(this,s)}function tke(e,t,n,r,s,o){var f,g,w;if(!s[t.a]){for(s[t.a]=!0,f=r,!f&&(f=new eU),wt(f.e,t),w=o[t.a].Kc();w.Ob();)g=l(w.Pb(),290),!(g.d==n||g.c==n)&&(g.c!=t&&tke(e,g.c,t,f,s,o),g.d!=t&&tke(e,g.d,t,f,s,o),wt(f.c,g),aa(f.d,g.b));return f}return null}function VEn(e){var t,n,r,s,o,f,g;for(t=0,s=new K(e.e);s.a=2}function GEn(e,t,n,r,s){var o,f,g,w,T,C;for(o=e.c.d.j,f=l(hf(n,0),8),C=1;C1||(t=is(k0,he(le(Ko,1),it,95,0,[xp,T0])),AN(zH(t,e))>1)||(r=is(C0,he(le(Ko,1),it,95,0,[Sg,qf])),AN(zH(r,e))>1))}function nke(e,t,n){var r,s,o;for(o=new K(e.t);o.a0&&(r.b.n-=r.c,r.b.n<=0&&r.b.u>0&&ci(t,r.b));for(s=new K(e.i);s.a0&&(r.a.u-=r.c,r.a.u<=0&&r.a.n>0&&ci(n,r.a))}function IV(e){var t,n,r,s,o;if(e.g==null&&(e.d=e.bj(e.f),zr(e,e.d),e.c))return o=e.f,o;if(t=l(e.g[e.i-1],51),s=t.Pb(),e.e=t,n=e.bj(s),n.Ob())e.d=n,zr(e,n);else for(e.d=null;!t.Ob()&&(Ss(e.g,--e.i,null),e.i!=0);)r=l(e.g[e.i-1],51),t=r;return s}function WEn(e,t){var n,r,s,o,f,g;if(r=t,s=r.Lk(),dp(e.e,s)){if(s.Si()&&YH(e,s,r.md()))return!1}else for(g=Wu(e.e.Dh(),s),n=l(e.g,124),o=0;o1||n>1)return 2;return t+n==1?2:0}function Yl(e,t){var n,r,s,o,f,g;return o=e.a*Che+e.b*1502,g=e.b*Che+11,n=b.Math.floor(g*RP),o+=n,g-=n*STe,o%=STe,e.a=o,e.b=g,t<=24?b.Math.floor(e.a*P_e[t]):(s=e.a*(1<=2147483648&&(r-=4294967296),r)}function Sbt(e,t,n){var r,s,o,f,g,w,T;for(o=new mt,T=new os,f=new os,bLn(e,T,f,t),WMn(e,T,f,t,n),w=new K(e);w.ar.b.g&&qn(o.c,r);return o}function eCn(e,t,n){var r,s,o,f,g,w;for(g=e.c,f=(n.q?n.q:(Cn(),Cn(),yg)).vc().Kc();f.Ob();)o=l(f.Pb(),44),r=!Lk(ji(new vn(null,new kn(g,16)),new Vl(new Btt(t,o)))).Bd((Bm(),qx)),r&&(w=o.md(),De(w,4)&&(s=oxe(w),s!=null&&(w=s)),t.qf(l(o.ld(),149),w))}function tCn(e,t,n){var r,s;if(XO(e.b),Y0(e.b,(HN(),tY),(m_(),XB)),Y0(e.b,nY,t.g),Y0(e.b,rY,t.a),e.a=EP(e.b,t),n.Ug("Compaction by shrinking a tree",e.a.c.length),t.i.c.length>1)for(s=new K(e.a);s.a=0?e.Lh(r,!0,!0):Xw(e,o,!0),160)),l(s,220).Xl(t,n)}else throw ue(new Wn(qb+t.xe()+TL))}function OV(e,t){var n,r,s,o,f;if(t){for(o=De(e.Cb,90)||De(e.Cb,102),f=!o&&De(e.Cb,331),r=new ar((!t.a&&(t.a=new K_(t,Wo,t)),t.a));r.e!=r.i.gc();)if(n=l(dr(r),89),s=GV(n),o?De(s,90):f?De(s,156):s)return s;return o?(En(),Kf):(En(),td)}else return null}function nCn(e,t){var n,r,s,o;for(t.Ug("Resize child graph to fit parent.",1),r=new K(e.b);r.a=2*t&&wt(n,new Iae(f[r-1]+t,f[r]-t));return n}function sCn(e,t,n){var r,s,o,f,g,w,T,C;if(n)for(o=n.a.length,r=new jm(o),g=(r.b-r.a)*r.c<0?(gb(),lm):new mb(r);g.Ob();)f=l(g.Pb(),17),s=eT(n,f.a),s&&(w=Pmn(e,(T=(fb(),C=new r3e,C),t&&ske(T,t),T),s),gT(w,Zg(s,Pd)),EV(s,w),L9e(s,w),Oce(e,s,w))}function NV(e){var t,n,r,s,o,f;if(!e.j){if(f=new OS,t=HM,o=t.a.zc(e,t),o==null){for(r=new ar(pc(e));r.e!=r.i.gc();)n=l(dr(r),29),s=NV(n),Ls(f,s),zr(f,n);t.a.Bc(e)!=null}Py(f),e.j=new B5((l(Oe(tt((wb(),Un).o),11),19),f.i),f.g),Gl(e).b&=-33}return e.j}function aCn(e){var t,n,r,s;if(e==null)return null;if(r=ku(e,!0),s=cB.length,wn(r.substr(r.length-s,s),cB)){if(n=r.length,n==4){if(t=(Yn(0,r.length),r.charCodeAt(0)),t==43)return hBe;if(t==45)return YAt}else if(n==3)return hBe}return new Gwe(r)}function oCn(e){var t,n,r;return n=e.l,n&n-1||(r=e.m,r&r-1)||(t=e.h,t&t-1)||t==0&&r==0&&n==0?-1:t==0&&r==0&&n!=0?k7e(n):t==0&&r!=0&&n==0?k7e(r)+22:t!=0&&r==0&&n==0?k7e(t)+44:-1}function h6(e,t){var n,r,s,o,f;for(s=t.a&e.f,o=null,r=e.b[s];;r=r.b){if(r==t){o?o.b=t.b:e.b[s]=t.b;break}o=r}for(f=t.f&e.f,o=null,n=e.c[f];;n=n.d){if(n==t){o?o.d=t.d:e.c[f]=t.d;break}o=n}t.e?t.e.c=t.c:e.a=t.c,t.c?t.c.e=t.e:e.e=t.e,--e.i,++e.g}function cCn(e,t){var n;t.d?t.d.b=t.b:e.a=t.b,t.b?t.b.d=t.d:e.e=t.d,!t.e&&!t.c?(n=l(Lf(l(ox(e.b,t.a),260)),260),n.a=0,++e.c):(n=l(Lf(l(or(e.b,t.a),260)),260),--n.a,t.e?t.e.c=t.c:n.b=l(Lf(t.c),511),t.c?t.c.e=t.e:n.c=l(Lf(t.e),511)),--e.d}function uCn(e){var t,n,r,s,o,f,g,w,T,C;for(n=e.o,t=e.p,f=Ni,s=ao,g=Ni,o=ao,T=0;T0),o.a.Xb(o.c=--o.b),wy(o,s),br(o.b3&&ug(e,0,t-3))}function hCn(e){var t,n,r,s;return qe(Q(e,(Nt(),v4)))===qe((op(),F2))?!e.e&&qe(Q(e,IB))!==qe((yT(),SB)):(r=l(Q(e,dde),299),s=Ft(Pt(Q(e,gde)))||qe(Q(e,ZL))===qe((gA(),CB)),t=l(Q(e,UMe),17).a,n=e.a.c.length,!s&&r!=(yT(),SB)&&(t==0||t>n))}function fCn(e){var t,n;for(n=0;n0);n++);if(n>0&&n0);t++);return t>0&&n>16!=6&&t){if(jT(e,t))throw ue(new Wn(EL+H2t(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?Axe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=vx(t,e,6,r)),r=f4e(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,6,t,t))}function PV(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=3&&t){if(jT(e,t))throw ue(new Wn(EL+Mvt(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?Ixe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=vx(t,e,12,r)),r=d4e(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,3,t,t))}function ske(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=9&&t){if(jT(e,t))throw ue(new Wn(EL+Amt(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?Mxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=vx(t,e,9,r)),r=g4e(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,9,t,t))}function KT(e){var t,n,r,s,o;if(r=Of(e),o=e.j,o==null&&r)return e.Jk()?null:r.ik();if(De(r,156)){if(n=r.jk(),n&&(s=n.wi(),s!=e.i)){if(t=l(r,156),t.nk())try{e.g=s.ti(t,o)}catch(f){if(f=ms(f),De(f,82))e.g=null;else throw ue(f)}e.i=s}return e.g}return null}function Mbt(e){var t;return t=new mt,wt(t,new F8(new lt(e.c,e.d),new lt(e.c+e.b,e.d))),wt(t,new F8(new lt(e.c,e.d),new lt(e.c,e.d+e.a))),wt(t,new F8(new lt(e.c+e.b,e.d+e.a),new lt(e.c+e.b,e.d))),wt(t,new F8(new lt(e.c+e.b,e.d+e.a),new lt(e.c,e.d+e.a))),t}function dCn(e){var t,n,r;if(e==null)return cl;try{return Tc(e)}catch(s){if(s=ms(s),De(s,103))return t=s,r=Pm(dh(e))+"@"+(n=(Wg(),axe(e)>>>0),n.toString(16)),_6n(fyn(),(Ok(),"Exception during lenientFormat for "+r),t),"<"+r+" threw "+Pm(t.Rm)+">";throw ue(s)}}function gCn(e,t,n){var r,s,o;for(o=t.a.ec().Kc();o.Ob();)s=l(o.Pb(),74),r=l(or(e.b,s),272),!r&&(ds(hg(s))==ds(Ib(s))?tSn(e,s,n):hg(s)==ds(Ib(s))?or(e.c,s)==null&&or(e.b,Ib(s))!=null&&cwt(e,s,n,!1):or(e.d,s)==null&&or(e.b,hg(s))!=null&&cwt(e,s,n,!0))}function pCn(e,t){var n,r,s,o,f,g,w;for(s=e.Kc();s.Ob();)for(r=l(s.Pb(),10),g=new du,Nc(g,r),ga(g,(_t(),sr)),rt(g,(ft(),gW),(Hn(),!0)),f=t.Kc();f.Ob();)o=l(f.Pb(),10),w=new du,Nc(w,o),ga(w,Zn),rt(w,gW,!0),n=new Dw,rt(n,gW,!0),ho(n,g),Na(n,w)}function bCn(e,t,n,r){var s,o,f,g;s=gdt(e,t,n),o=gdt(e,n,t),f=l(or(e.c,t),118),g=l(or(e.c,n),118),s1)for(t=vw((n=new Nm,++e.b,n),e.d),g=Fr(o,0);g.b!=g.d.c;)f=l(Pr(g),125),g0(i0(r0(s0(n0(new _f,1),0),t),f))}function wCn(e,t,n){var r,s,o,f,g;for(n.Ug("Breaking Point Removing",1),e.a=l(Q(t,(Nt(),yp)),223),o=new K(t.b);o.a>16!=11&&t){if(jT(e,t))throw ue(new Wn(EL+Cke(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?Oxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=vx(t,e,10,r)),r=T4e(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,11,t,t))}function yCn(e){var t,n,r,s;for(r=new Xm(new Cr(e.b).a);r.b;)n=zw(r),s=l(n.ld(),12),t=l(n.md(),10),rt(t,(ft(),zi),s),rt(s,Bl,t),rt(s,LB,(Hn(),!0)),ga(s,l(Q(t,Xc),64)),Q(t,Xc),rt(s.i,(Nt(),Ds),(Pa(),oC)),l(Q(Ja(s.i),_u),21).Fc((Ho(),qE))}function xCn(e,t,n){var r,s,o,f,g,w;if(o=0,f=0,e.c)for(w=new K(e.d.i.j);w.ao.a?-1:s.aw){for(C=e.d,e.d=We(BPe,VSe,66,2*w+4,0,1),o=0;o=9223372036854776e3?(aT(),f_e):(s=!1,e<0&&(s=!0,e=-e),r=0,e>=ov&&(r=da(e/ov),e-=r*ov),n=0,e>=Mx&&(n=da(e/Mx),e-=n*Mx),t=da(e),o=qu(t,n,r),s&&Nce(o),o)}function ICn(e){var t,n,r,s,o;if(o=new mt,Uu(e.b,new tg(o)),e.b.c.length=0,o.c.length!=0){for(t=(Sn(0,o.c.length),l(o.c[0],82)),n=1,r=o.c.length;n=-t&&r==t?new fa(bt(n-1),bt(r)):new fa(bt(n),bt(r-1))}function Obt(){return po(),he(le(UOn,1),it,81,0,[ZAe,XAe,O6,S1e,vLe,RK,WK,d4,bLe,oLe,gLe,f4,mLe,iLe,wLe,UAe,qK,_1e,BK,VK,xLe,UK,VAe,pLe,kLe,GK,yLe,FK,tLe,fLe,hLe,YK,WAe,PK,$K,KAe,DE,uLe,sLe,dLe,qL,QAe,YAe,lLe,aLe,zK,KK,GAe,HK,cLe,jK,nLe,eLe,kB,NK,rLe,JAe])}function PCn(e,t,n){e.d=0,e.b=0,t.k==(Jn(),Su)&&n.k==Su&&l(Q(t,(ft(),zi)),10)==l(Q(n,zi),10)&&(ece(t).j==(_t(),Xn)?ybt(e,t,n):ybt(e,n,t)),t.k==Su&&n.k==Aa?ece(t).j==(_t(),Xn)?e.d=1:e.b=1:n.k==Su&&t.k==Aa&&(ece(n).j==(_t(),Xn)?e.b=1:e.d=1),w7n(e,t,n)}function BCn(e){var t,n,r,s,o,f,g,w,T,C,L;return L=r9e(e),t=e.a,w=t!=null,w&&Hk(L,"category",e.a),s=oO(new pr(e.d)),f=!s,f&&(T=new Yp,Z0(L,"knownOptions",T),n=new FQe(T),Za(new pr(e.d),n)),o=oO(e.g),g=!o,g&&(C=new Yp,Z0(L,"supportedFeatures",C),r=new RQe(C),Za(e.g,r)),L}function FCn(e){var t,n,r,s,o,f,g,w,T;for(r=!1,t=336,n=0,o=new kit(e.length),g=e,w=0,T=g.length;w>16!=7&&t){if(jT(e,t))throw ue(new Wn(EL+$pt(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?Lxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=l(t,54).Rh(e,1,pF,r)),r=b5e(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,7,t,t))}function Nbt(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=3&&t){if(jT(e,t))throw ue(new Wn(EL+R1t(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?Dxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=l(t,54).Rh(e,0,mF,r)),r=m5e(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,3,t,t))}function hle(e,t){WT();var n,r,s,o,f,g,w,T,C;return t.d>e.d&&(g=e,e=t,t=g),t.d<63?CSn(e,t):(f=(e.d&-2)<<4,T=B6e(e,f),C=B6e(t,f),r=Dle(e,ax(T,f)),s=Dle(t,ax(C,f)),w=hle(T,C),n=hle(r,s),o=hle(Dle(T,r),Dle(s,C)),o=Rle(Rle(o,w),n),o=ax(o,f),w=ax(w,f<<1),Rle(Rle(w,o),n))}function E2(){E2=U,Ade=new I5(Ryt,0),MDe=new I5("LONGEST_PATH",1),DDe=new I5("LONGEST_PATH_SOURCE",2),_de=new I5("COFFMAN_GRAHAM",3),LDe=new I5(efe,4),IDe=new I5("STRETCH_WIDTH",5),IW=new I5("MIN_WIDTH",6),XE=new I5("BF_MODEL_ORDER",7),QE=new I5("DF_MODEL_ORDER",8)}function jCn(e,t,n){var r,s,o,f,g;for(f=CA(e,n),g=We(kg,S2,10,t.length,0,1),r=0,o=f.Kc();o.Ob();)s=l(o.Pb(),12),Ft(Pt(Q(s,(ft(),LB))))&&(g[r++]=l(Q(s,Bl),10));if(r=0;o+=n?1:-1)f=f|t.c.lg(w,o,n,r&&!Ft(Pt(Q(t.j,(ft(),Wb))))&&!Ft(Pt(Q(t.j,(ft(),z6))))),f=f|t.q.ug(w,o,n),f=f|xmt(e,w[o],n,r);return sa(e.c,t),f}function RV(e,t,n){var r,s,o,f,g,w,T,C,L,F;for(C=eut(e.j),L=0,F=C.length;L1&&(e.a=!0),vgn(l(n.b,68),Pi(Xa(l(t.b,68).c),md(ya(Xa(l(n.b,68).a),l(t.b,68).a),s))),oct(e,t),Pbt(e,n)}function Bbt(e){var t,n,r,s,o,f,g;for(o=new K(e.a.a);o.a0&&o>0?f.p=t++:r>0?f.p=n++:o>0?f.p=s++:f.p=n++}Cn(),Gs(e.j,new X9)}function UCn(e){var t,n;n=null,t=l(Rt(e.g,0),18);do{if(n=t.d.i,rs(n,(ft(),$f)))return l(Q(n,$f),12).i;if(n.k!=(Jn(),Bs)&&Rr(new lr(fr(qs(n).a.Kc(),new j))))t=l(yr(new lr(fr(qs(n).a.Kc(),new j))),18);else if(n.k!=Bs)return null}while(n&&n.k!=(Jn(),Bs));return n}function VCn(e,t){var n,r,s,o,f,g,w,T,C;for(g=t.j,f=t.g,w=l(Rt(g,g.c.length-1),113),C=(Sn(0,g.c.length),l(g.c[0],113)),T=Iue(e,f,w,C),o=1;oT&&(w=n,C=s,T=r);t.a=C,t.c=w}function GCn(e,t,n){var r,s,o,f,g,w,T;for(T=new n2(new xXe(e)),f=he(le(dxt,1),cyt,12,0,[t,n]),g=0,w=f.length;gw-e.b&&gw-e.a&&g0?o.a?(g=o.b.Mf().a,n>g&&(s=(n-g)/2,o.d.b=s,o.d.c=s)):o.d.c=e.s+n:Y_(e.u)&&(r=i9e(o.b),r.c<0&&(o.d.b=-r.c),r.c+r.b>o.b.Mf().a&&(o.d.c=r.c+r.b-o.b.Mf().a))}function uSn(e,t){var n,r,s,o,f;f=new mt,n=t;do o=l(or(e.b,n),131),o.B=n.c,o.D=n.d,qn(f.c,o),n=l(or(e.k,n),18);while(n);return r=(Sn(0,f.c.length),l(f.c[0],131)),r.j=!0,r.A=l(r.d.a.ec().Kc().Pb(),18).c.i,s=l(Rt(f,f.c.length-1),131),s.q=!0,s.C=l(s.d.a.ec().Kc().Pb(),18).d.i,f}function lSn(e){var t,n;if(t=l(e.a,17).a,n=l(e.b,17).a,t>=0){if(t==n)return new fa(bt(-t-1),bt(-t-1));if(t==-n)return new fa(bt(-t),bt(n+1))}return b.Math.abs(t)>b.Math.abs(n)?t<0?new fa(bt(-t),bt(n)):new fa(bt(-t),bt(n+1)):new fa(bt(t+1),bt(n))}function hSn(e){var t,n;n=l(Q(e,(Nt(),Qu)),171),t=l(Q(e,(ft(),wv)),311),n==(lf(),Yb)?(rt(e,Qu,DB),rt(e,wv,(ip(),j6))):n==b4?(rt(e,Qu,DB),rt(e,wv,(ip(),Gx))):t==(ip(),j6)?(rt(e,Qu,Yb),rt(e,wv,_B)):t==Gx&&(rt(e,Qu,b4),rt(e,wv,_B))}function jV(){jV=U,$B=new Lte,SEt=hi(new Js,(so(),pu),(po(),BK)),LEt=wl(hi(new Js,pu,UK),wc,HK),MEt=Ed(Ed(w_(wl(hi(new Js,w0,WK),wc,KK),Cu),GK),YK),_Et=wl(hi(hi(hi(new Js,xg,RK),Cu,$K),Cu,DE),wc,jK),AEt=wl(hi(hi(new Js,Cu,DE),Cu,PK),wc,NK)}function KA(){KA=U,OEt=hi(wl(new Js,(so(),wc),(po(),nLe)),pu,BK),FEt=Ed(Ed(w_(wl(hi(new Js,w0,WK),wc,KK),Cu),GK),YK),NEt=wl(hi(hi(hi(new Js,xg,RK),Cu,$K),Cu,DE),wc,jK),BEt=hi(hi(new Js,pu,UK),wc,HK),PEt=wl(hi(hi(new Js,Cu,DE),Cu,PK),wc,NK)}function fSn(e,t,n,r,s){var o,f;(!Ao(t)&&t.c.i.c==t.d.i.c||!jft(Bc(he(le(Ca,1),dt,8,0,[s.i.n,s.n,s.a])),n))&&!Ao(t)&&(t.c==s?Fk(t.a,0,new xo(n)):ci(t.a,new xo(n)),r&&!K0(e.a,n)&&(f=l(Q(t,(Nt(),lc)),75),f||(f=new pl,rt(t,lc,f)),o=new xo(n),_s(f,o,f.c.b,f.c),sa(e.a,o)))}function jbt(e,t){var n,r,s,o;for(o=Yr(go(pg,og(Yr(go(t==null?0:ts(t),bg)),15))),n=o&e.b.length-1,s=null,r=e.b[n];r;s=r,r=r.a)if(r.d==o&&yd(r.i,t))return s?s.a=r.a:e.b[n]=r.a,gZe(l(Lf(r.c),604),l(Lf(r.f),604)),nO(l(Lf(r.b),227),l(Lf(r.e),227)),--e.f,++e.e,!0;return!1}function dSn(e){var t,n;for(n=new lr(fr(Ea(e).a.Kc(),new j));Rr(n);)if(t=l(yr(n),18),t.c.i.k!=(Jn(),uu))throw ue(new Zp(Zhe+QN(e)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function gSn(e,t,n){var r,s,o,f,g,w,T;if(s=H1t(e.Db&254),s==0)e.Eb=n;else{if(s==1)g=We(ka,jn,1,2,5,1),o=Due(e,t),o==0?(g[0]=n,g[1]=e.Eb):(g[0]=e.Eb,g[1]=n);else for(g=We(ka,jn,1,s+1,5,1),f=Km(e.Eb),r=2,w=0,T=0;r<=128;r<<=1)r==t?g[T++]=n:e.Db&r&&(g[T++]=f[w++]);e.Eb=g}e.Db|=t}function $bt(e,t,n){var r,s,o,f;for(this.b=new mt,s=0,r=0,f=new K(e);f.a0&&(o=l(Rt(this.b,0),176),s+=o.o,r+=o.p),s*=2,r*=2,t>1?s=da(b.Math.ceil(s*t)):r=da(b.Math.ceil(r/t)),this.a=new X8e(s,r)}function zbt(e,t,n,r,s,o){var f,g,w,T,C,L,F,z,V,J,te,fe;for(C=r,t.j&&t.o?(z=l(or(e.f,t.A),60),J=z.d.c+z.d.b,--C):J=t.a.c+t.a.b,L=s,n.q&&n.o?(z=l(or(e.f,n.C),60),T=z.d.c,++L):T=n.a.c,te=T-J,w=b.Math.max(2,L-C),g=te/w,V=J+g,F=C;F=0;f+=s?1:-1){for(g=t[f],w=r==(_t(),sr)?s?Fc(g,r):uf(Fc(g,r)):s?uf(Fc(g,r)):Fc(g,r),o&&(e.c[g.p]=w.gc()),L=w.Kc();L.Ob();)C=l(L.Pb(),12),e.d[C.p]=T++;aa(n,w)}}function Hbt(e,t,n){var r,s,o,f,g,w,T,C;for(o=ze(Ge(e.b.Kc().Pb())),T=ze(Ge(hyn(t.b))),r=md(Xa(e.a),T-n),s=md(Xa(t.a),n-o),C=Pi(r,s),md(C,1/(T-o)),this.a=C,this.b=new mt,g=!0,f=e.b.Kc(),f.Pb();f.Ob();)w=ze(Ge(f.Pb())),g&&w-n>Ofe&&(this.b.Fc(n),g=!1),this.b.Fc(w);g&&this.b.Fc(n)}function pSn(e){var t,n,r,s;if(O_n(e,e.n),e.d.c.length>0){for(l_(e.c);K9e(e,l(re(new K(e.e.a)),125))>5,t&=31,r>=e.d)return e.e<0?(Cd(),Y6t):(Cd(),FL);if(o=e.d-r,s=We(Ur,fi,28,o+1,15,1),akn(s,o,e.a,r,t),e.e<0){for(n=0;n0&&e.a[n]<<32-t){for(n=0;n=0?!1:(n=b6((kl(),no),s,t),n?(r=n.Ik(),(r>1||r==-1)&&Lw(ac(no,n))!=3):!0)):!1}function wSn(e,t,n,r){var s,o,f,g,w;return g=vc(l(Oe((!t.b&&(t.b=new An(Sr,t,4,7)),t.b),0),84)),w=vc(l(Oe((!t.c&&(t.c=new An(Sr,t,5,8)),t.c),0),84)),ds(g)==ds(w)||Iy(w,g)?null:(f=nN(t),f==n?r:(o=l(or(e.a,f),10),o&&(s=o.e,s)?s:null))}function ySn(e,t,n){var r,s,o,f,g;for(n.Ug("Longest path to source layering",1),e.a=t,g=e.a.a,e.b=We(Ur,fi,28,g.c.length,15,1),r=0,f=new K(g);f.a0&&(n[0]+=e.d,f-=n[0]),n[2]>0&&(n[2]+=e.d,f-=n[2]),o=b.Math.max(0,f),n[1]=b.Math.max(n[1],f),R6e(e,ju,s.c+r.b+n[0]-(n[1]-f)/2,n),t==ju&&(e.c.b=o,e.c.c=s.c+r.b+(o-f)/2)}function Zbt(){this.c=We(Oa,tc,28,(_t(),he(le(Mo,1),ou,64,0,[jc,Xn,sr,Mr,Zn])).length,15,1),this.b=We(Oa,tc,28,he(le(Mo,1),ou,64,0,[jc,Xn,sr,Mr,Zn]).length,15,1),this.a=We(Oa,tc,28,he(le(Mo,1),ou,64,0,[jc,Xn,sr,Mr,Zn]).length,15,1),z3e(this.c,gs),z3e(this.b,oa),z3e(this.a,oa)}function xu(e,t,n){var r,s,o,f;if(t<=n?(s=t,o=n):(s=n,o=t),r=0,e.b==null)e.b=We(Ur,fi,28,2,15,1),e.b[0]=s,e.b[1]=o,e.c=!0;else{if(r=e.b.length,e.b[r-1]+1==s){e.b[r-1]=o;return}f=We(Ur,fi,28,r+2,15,1),gu(e.b,0,f,0,r),e.b=f,e.b[r-1]>=s&&(e.c=!1,e.a=!1),e.b[r++]=s,e.b[r]=o,e.c||l6(e)}}function SSn(e,t,n){var r,s,o,f,g,w,T;for(T=t.d,e.a=new Pu(T.c.length),e.c=new Nr,g=new K(T);g.a=0?e.Lh(T,!1,!0):Xw(e,n,!1),61));e:for(o=L.Kc();o.Ob();){for(s=l(o.Pb(),58),C=0;C1;)Ky(s,s.i-1);return r}function tmt(e,t){var n,r,s,o,f,g,w;for(n=new H5,o=new K(e.b);o.ae.d[f.p]&&(n+=M6e(e.b,o),Tb(e.a,bt(o)));for(;!h_(e.a);)u7e(e.b,l(Q8(e.a),17).a)}return n}function ISn(e){var t,n,r,s,o,f,g,w,T;for(e.a=new k4e,T=0,s=0,r=new K(e.i.b);r.ag.d&&(C=g.d+g.a+T));n.c.d=C,t.a.zc(n,t),w=b.Math.max(w,n.c.d+n.c.a)}return w}function Ho(){Ho=U,oW=new fy("COMMENTS",0),mf=new fy("EXTERNAL_PORTS",1),GL=new fy("HYPEREDGES",2),cW=new fy("HYPERNODES",3),qE=new fy("NON_FREE_PORTS",4),R6=new fy("NORTH_SOUTH_PORTS",5),KL=new fy(Syt,6),$E=new fy("CENTER_LABELS",7),zE=new fy("END_LABELS",8),uW=new fy("PARTITIONS",9)}function NSn(e,t,n,r,s){return r<0?(r=u6(e,s,he(le($t,1),dt,2,6,[ehe,the,nhe,rhe,Ax,ihe,she,ahe,ohe,che,uhe,lhe]),t),r<0&&(r=u6(e,s,he(le($t,1),dt,2,6,["Jan","Feb","Mar","Apr",Ax,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),r<0?!1:(n.k=r,!0)):r>0?(n.k=r-1,!0):!1}function PSn(e,t,n,r,s){return r<0?(r=u6(e,s,he(le($t,1),dt,2,6,[ehe,the,nhe,rhe,Ax,ihe,she,ahe,ohe,che,uhe,lhe]),t),r<0&&(r=u6(e,s,he(le($t,1),dt,2,6,["Jan","Feb","Mar","Apr",Ax,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),r<0?!1:(n.k=r,!0)):r>0?(n.k=r-1,!0):!1}function BSn(e,t,n,r,s,o){var f,g,w,T;if(g=32,r<0){if(t[0]>=e.length||(g=io(e,t[0]),g!=43&&g!=45)||(++t[0],r=LV(e,t),r<0))return!1;g==45&&(r=-r)}return g==32&&t[0]-n==2&&s.b==2&&(w=new iq,T=w.q.getFullYear()-Rb+Rb-80,f=T%100,o.a=r==f,r+=(T/100|0)*100+(r=0?Db(e):Z_(Db(f2(e)))),RL[t]=Pq(u0(e,t),0)?Db(u0(e,t)):Z_(Db(f2(u0(e,t)))),e=go(e,5);for(;t=T&&(w=r);w&&(C=b.Math.max(C,w.a.o.a)),C>F&&(L=T,F=C)}return L}function qSn(e){var t,n,r,s,o,f,g;for(o=new n2(l(Xr(new Ug),50)),g=oa,n=new K(e.d);n.aJyt?Gs(w,e.b):r<=Jyt&&r>Zyt?Gs(w,e.d):r<=Zyt&&r>e4t?Gs(w,e.c):r<=e4t&&Gs(w,e.a),o=amt(e,w,o);return s}function omt(e,t,n,r){var s,o,f,g,w,T;for(s=(r.c+r.a)/2,Ch(t.j),ci(t.j,s),Ch(n.e),ci(n.e,s),T=new _Ze,g=new K(e.f);g.a1,g&&(r=new lt(s,n.b),ci(t.a,r)),dA(t.a,he(le(Ca,1),dt,8,0,[F,L]))}function bke(e,t,n){var r,s;for(t=48;n--)KM[n]=n-48<<24>>24;for(r=70;r>=65;r--)KM[r]=r-65+10<<24>>24;for(s=102;s>=97;s--)KM[s]=s-97+10<<24>>24;for(o=0;o<10;o++)BY[o]=48+o&ta;for(e=10;e<=15;e++)BY[e]=65+e-10&ta}function GSn(e,t){t.Ug("Process graph bounds",1),rt(e,(Zi(),Xde),yO(Tce(Ey(new vn(null,new kn(e.b,16)),new tne)))),rt(e,Qde,yO(Tce(Ey(new vn(null,new kn(e.b,16)),new nne)))),rt(e,xIe,yO(kce(Ey(new vn(null,new kn(e.b,16)),new rne)))),rt(e,kIe,yO(kce(Ey(new vn(null,new kn(e.b,16)),new ine)))),t.Vg()}function KSn(e){var t,n,r,s,o;s=l(Q(e,(Nt(),Ev)),21),o=l(Q(e,AW),21),n=new lt(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a),t=new xo(n),s.Hc((gh(),D4))&&(r=l(Q(e,UE),8),o.Hc((Xl(),cC))&&(r.a<=0&&(r.a=20),r.b<=0&&(r.b=20)),t.a=b.Math.max(n.a,r.a),t.b=b.Math.max(n.b,r.b)),Ft(Pt(Q(e,yde)))||TLn(e,n,t)}function WSn(e,t){var n,r,s,o;for(o=Fc(t,(_t(),Mr)).Kc();o.Ob();)r=l(o.Pb(),12),n=l(Q(r,(ft(),Bl)),10),n&&g0(i0(r0(s0(n0(new _f,0),.1),e.i[t.p].d),e.i[n.p].a));for(s=Fc(t,Xn).Kc();s.Ob();)r=l(s.Pb(),12),n=l(Q(r,(ft(),Bl)),10),n&&g0(i0(r0(s0(n0(new _f,0),.1),e.i[n.p].d),e.i[t.p].a))}function dle(e){var t,n,r,s,o,f;if(!e.c){if(f=new Zc,t=HM,o=t.a.zc(e,t),o==null){for(r=new ar(fu(e));r.e!=r.i.gc();)n=l(dr(r),89),s=GV(n),De(s,90)&&Ls(f,dle(l(s,29))),zr(f,n);t.a.Bc(e)!=null,t.a.gc()==0}H5n(f),Py(f),e.c=new B5((l(Oe(tt((wb(),Un).o),15),19),f.i),f.g),Gl(e).b&=-33}return e.c}function vke(e){var t;if(e.c!=10)throw ue(new ri(si((Jr(),QG))));switch(t=e.a,t){case 110:t=10;break;case 114:t=13;break;case 116:t=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw ue(new ri(si((Jr(),pf))))}return t}function hmt(e){var t,n,r,s,o;if(e.l==0&&e.m==0&&e.h==0)return"0";if(e.h==NP&&e.m==0&&e.l==0)return"-9223372036854775808";if(e.h>>19)return"-"+hmt(TT(e));for(n=e,r="";!(n.l==0&&n.m==0&&n.h==0);){if(s=Hoe(sG),n=Jke(n,s,!0),t=""+OZe(Hb),!(n.l==0&&n.m==0&&n.h==0))for(o=9-t.length;o>0;o--)t="0"+t;r=t+r}return r}function YSn(e){var t,n,r,s,o,f,g;for(t=!1,n=0,s=new K(e.d.b);s.a=e.a||!e9e(t,n))return-1;if(tT(l(r.Kb(t),20)))return 1;for(s=0,f=l(r.Kb(t),20).Kc();f.Ob();)if(o=l(f.Pb(),18),w=o.c.i==t?o.d.i:o.c.i,g=wke(e,w,n,r),g==-1||(s=b.Math.max(s,g),s>e.c-1))return-1;return s+1}function fmt(e,t){var n,r,s,o,f,g;if(qe(t)===qe(e))return!0;if(!De(t,15)||(r=l(t,15),g=e.gc(),r.gc()!=g))return!1;if(f=r.Kc(),e.Yi()){for(n=0;n0){if(e._j(),t!=null){for(o=0;o>24;case 97:case 98:case 99:case 100:case 101:case 102:return e-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return e-65+10<<24>>24;default:throw ue(new gd("Invalid hexadecimal"))}}function qV(){qV=U,rAe=new D5("SPIRAL",0),Z_e=new D5("LINE_BY_LINE",1),eAe=new D5("MANHATTAN",2),J_e=new D5("JITTER",3),t1e=new D5("QUADRANTS_LINE_BY_LINE",4),nAe=new D5("QUADRANTS_MANHATTAN",5),tAe=new D5("QUADRANTS_JITTER",6),Q_e=new D5("COMBINE_LINE_BY_LINE_MANHATTAN",7),X_e=new D5("COMBINE_JITTER_MANHATTAN",8)}function gmt(e,t,n,r){var s,o,f,g,w,T;for(w=Rue(e,n),T=Rue(t,n),s=!1;w&&T&&(r||G7n(w,T,n));)f=Rue(w,n),g=Rue(T,n),mN(t),mN(e),o=w.c,jle(w,!1),jle(T,!1),n?($y(t,T.p,o),t.p=T.p,$y(e,w.p+1,o),e.p=w.p):($y(e,w.p,o),e.p=w.p,$y(t,T.p+1,o),t.p=T.p),Ha(w,null),Ha(T,null),w=f,T=g,s=!0;return s}function pmt(e){switch(e.g){case 0:return new aie;case 1:return new QS;case 3:return new Het;case 4:return new tte;case 5:return new mit;case 6:return new KI;case 2:return new XS;case 7:return new dz;case 8:return new GI;default:throw ue(new Wn("No implementation is available for the layerer "+(e.f!=null?e.f:""+e.g)))}}function t_n(e,t,n,r){var s,o,f,g,w;for(s=!1,o=!1,g=new K(r.j);g.a=t.length)throw ue(new rc("Greedy SwitchDecider: Free layer not in graph."));this.c=t[e],this.e=new $O(r),vce(this.e,this.c,(_t(),Zn)),this.i=new $O(r),vce(this.i,this.c,sr),this.f=new Nst(this.c),this.a=!o&&s.i&&!s.s&&this.c[0].k==(Jn(),Ks),this.a&&pkn(this,e,t.length)}function mmt(e,t){var n,r,s,o,f,g;o=!e.B.Hc((Xl(),dF)),f=e.B.Hc(ape),e.a=new rdt(f,o,e.c),e.n&&Q5e(e.a.n,e.n),lse(e.g,(e1(),ju),e.a),t||(r=new IA(1,o,e.c),r.n.a=e.k,J8(e.p,(_t(),Xn),r),s=new IA(1,o,e.c),s.n.d=e.k,J8(e.p,Mr,s),g=new IA(0,o,e.c),g.n.c=e.k,J8(e.p,Zn,g),n=new IA(0,o,e.c),n.n.b=e.k,J8(e.p,sr,n))}function r_n(e){var t,n,r;switch(t=l(Q(e.d,(Nt(),yp)),223),t.g){case 2:n=VIn(e);break;case 3:n=(r=new mt,Os(ji(gc(Pc(Pc(new vn(null,new kn(e.d.b,16)),new _ee),new Aee),new Lee),new yS),new QYe(r)),r);break;default:throw ue(new ic("Compaction not supported for "+t+" edges."))}dMn(e,n),Za(new pr(e.g),new YYe(e))}function i_n(e,t){var n,r,s,o,f,g,w;if(t.Ug("Process directions",1),n=l(Q(e,(Vc(),_3)),88),n!=(ea(),Q1))for(s=Fr(e.b,0);s.b!=s.d.c;){switch(r=l(Pr(s),40),g=l(Q(r,(Zi(),HB)),17).a,w=l(Q(r,UB),17).a,n.g){case 4:w*=-1;break;case 1:o=g,g=w,w=o;break;case 2:f=g,g=-w,w=f}rt(r,HB,bt(g)),rt(r,UB,bt(w))}t.Vg()}function s_n(e,t){var n;return n=new Ui,t&&mc(n,l(or(e.a,pF),96)),De(t,422)&&mc(n,l(or(e.a,bF),96)),De(t,366)?(mc(n,l(or(e.a,nc),96)),n):(De(t,84)&&mc(n,l(or(e.a,Sr),96)),De(t,207)?(mc(n,l(or(e.a,Li),96)),n):De(t,193)?(mc(n,l(or(e.a,$l),96)),n):(De(t,326)&&mc(n,l(or(e.a,js),96)),n))}function a_n(e){var t,n,r,s,o,f,g,w;for(w=new Qut,g=new K(e.a);g.a0&&t=0)return!1;if(t.p=n.b,wt(n.e,t),s==(Jn(),Aa)||s==Su){for(f=new K(t.j);f.ae.d[g.p]&&(n+=M6e(e.b,o),Tb(e.a,bt(o)))):++f;for(n+=e.b.d*f;!h_(e.a);)u7e(e.b,l(Q8(e.a),17).a)}return n}function _mt(e){var t,n,r,s,o,f;return o=0,t=Of(e),t.kk()&&(o|=4),e.Bb&Cl&&(o|=2),De(e,102)?(n=l(e,19),s=jo(n),n.Bb&nu&&(o|=32),s&&(wr(Cy(s)),o|=8,f=s.t,(f>1||f==-1)&&(o|=16),s.Bb&nu&&(o|=64)),n.Bb&Lo&&(o|=a4),o|=b0):De(t,469)?o|=512:(r=t.kk(),r&&r.i&1&&(o|=256)),e.Bb&512&&(o|=128),o}function v_n(e,t){var n;return e.f==wpe?(n=Lw(ac((kl(),no),t)),e.e?n==4&&t!=(Tx(),l9)&&t!=(Tx(),u9)&&t!=(Tx(),ype)&&t!=(Tx(),xpe):n==2):e.d&&(e.d.Hc(t)||e.d.Hc(ix(ac((kl(),no),t)))||e.d.Hc(b6((kl(),no),e.b,t)))?!0:e.f&&ake((kl(),e.f),QO(ac(no,t)))?(n=Lw(ac(no,t)),e.e?n==4:n==2):!1}function w_n(e){var t,n,r,s,o,f,g,w,T,C,L,F,z;for(F=-1,z=0,T=e,C=0,L=T.length;C0&&++z;++F}return z}function y_n(e,t,n,r){var s,o,f,g,w,T,C,L;return f=l(at(n,(bi(),r9)),8),w=f.a,C=f.b+e,s=b.Math.atan2(C,w),s<0&&(s+=fv),s+=t,s>fv&&(s-=fv),g=l(at(r,r9),8),T=g.a,L=g.b+e,o=b.Math.atan2(L,T),o<0&&(o+=fv),o+=t,o>fv&&(o-=fv),A1(),h0(1e-10),b.Math.abs(s-o)<=1e-10||s==o||isNaN(s)&&isNaN(o)?0:so?1:bw(isNaN(s),isNaN(o))}function ble(e){var t,n,r,s,o,f,g;for(g=new Nr,r=new K(e.a.b);r.a=e.o)throw ue(new e3e);g=t>>5,f=t&31,o=u0(1,Yr(u0(f,1))),s?e.n[n][g]=X0(e.n[n][g],o):e.n[n][g]=xa(e.n[n][g],Q4e(o)),o=u0(o,1),r?e.n[n][g]=X0(e.n[n][g],o):e.n[n][g]=xa(e.n[n][g],Q4e(o))}catch(w){throw w=ms(w),De(w,333)?ue(new rc(Fhe+e.o+"*"+e.p+Rhe+t+To+n+jhe)):ue(w)}}function T_n(e,t,n,r){var s,o,f,g,w,T,C,L,F;for(F=new n2(new yXe(e)),g=he(le(kg,1),S2,10,0,[t,n]),w=0,T=g.length;w0&&(r=(!e.n&&(e.n=new nt(nc,e,1,7)),l(Oe(e.n,0),135)).a,!r||li(li((t.a+=' "',t),r),'"'))),li(lw(li(lw(li(lw(li(lw((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function Amt(e){var t,n,r;return e.Db&64?Yue(e):(t=new Eh(_Se),n=e.k,n?li(li((t.a+=' "',t),n),'"'):(!e.n&&(e.n=new nt(nc,e,1,7)),e.n.i>0&&(r=(!e.n&&(e.n=new nt(nc,e,1,7)),l(Oe(e.n,0),135)).a,!r||li(li((t.a+=' "',t),r),'"'))),li(lw(li(lw(li(lw(li(lw((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function S_n(e,t){var n,r,s,o,f;for(t==(xA(),jde)&&aP(l($i(e.a,(zy(),EB)),15)),s=l($i(e.a,(zy(),EB)),15).Kc();s.Ob();)switch(r=l(s.Pb(),105),n=l(Rt(r.j,0),113).d.j,o=new Ml(r.j),Gs(o,new Vj),t.g){case 2:Hue(e,o,n,($w(),Kb),1);break;case 1:case 0:f=fCn(o),Hue(e,new c2(o,0,f),n,($w(),Kb),0),Hue(e,new c2(o,f,o.c.length),n,Kb,1)}}function vle(e,t){var n,r,s,o,f,g,w;if(t==null||t.length==0)return null;if(s=l(wu(e.a,t),143),!s){for(r=(g=new pi(e.b).a.vc().Kc(),new fs(g));r.a.Ob();)if(n=(o=l(r.a.Pb(),44),l(o.md(),143)),f=n.c,w=t.length,wn(f.substr(f.length-w,w),t)&&(t.length==f.length||io(f,f.length-t.length-1)==46)){if(s)return null;s=n}s&&sc(e.a,t,s)}return s}function __n(e,t){var n,r,s,o;return n=new Yd,r=l(kc(gc(new vn(null,new kn(e.f,16)),n),Ly(new xt,new Ri,new Rn,new zn,he(le(uc,1),it,108,0,[(Nl(),o4),Cc]))),21),s=r.gc(),r=l(kc(gc(new vn(null,new kn(t.f,16)),n),Ly(new xt,new Ri,new Rn,new zn,he(le(uc,1),it,108,0,[o4,Cc]))),21),o=r.gc(),ss.p?(ga(o,Mr),o.d&&(g=o.o.b,t=o.a.b,o.a.b=g-t)):o.j==Mr&&s.p>e.p&&(ga(o,Xn),o.d&&(g=o.o.b,t=o.a.b,o.a.b=-(g-t)));break}return s}function mP(e,t,n,r,s){var o,f,g,w,T,C,L;if(!(De(t,207)||De(t,366)||De(t,193)))throw ue(new Wn("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));return f=e.a/2,w=t.i+r-f,C=t.j+s-f,T=w+t.g+e.a,L=C+t.f+e.a,o=new pl,ci(o,new lt(w,C)),ci(o,new lt(w,L)),ci(o,new lt(T,L)),ci(o,new lt(T,C)),g=new ale(o),mc(g,t),n&&Ti(e.b,t,g),g}function YT(e,t,n){var r,s,o,f,g,w,T,C,L,F;for(o=new lt(t,n),C=new K(e.a);C.a1,g&&(r=new lt(s,n.b),ci(t.a,r)),dA(t.a,he(le(Ca,1),dt,8,0,[F,L]))}function Nf(){Nf=U,PW=new dy(Id,0),BB=new dy("NIKOLOV",1),FB=new dy("NIKOLOV_PIXEL",2),jDe=new dy("NIKOLOV_IMPROVED",3),$De=new dy("NIKOLOV_IMPROVED_PIXEL",4),RDe=new dy("DUMMYNODE_PERCENTAGE",5),zDe=new dy("NODECOUNT_PERCENTAGE",6),BW=new dy("NO_BOUNDARY",7),C3=new dy("MODEL_ORDER_LEFT_TO_RIGHT",8),E4=new dy("MODEL_ORDER_RIGHT_TO_LEFT",9)}function F_n(e){var t,n,r,s,o;for(r=e.length,t=new f_,o=0;o=40,f&&RAn(e),KLn(e),pSn(e),n=K1t(e),r=0;n&&r0&&ci(e.f,o)):(e.c[f]-=T+1,e.c[f]<=0&&e.a[f]>0&&ci(e.e,o))))}function zmt(e,t,n,r){var s,o,f,g,w,T,C;for(w=new lt(n,r),ya(w,l(Q(t,(Zi(),ZE)),8)),C=Fr(t.b,0);C.b!=C.d.c;)T=l(Pr(C),40),Pi(T.e,w),ci(e.b,T);for(g=l(kc(c6e(new vn(null,new kn(t.a,16))),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[(Nl(),Cc)]))),15).Kc();g.Ob();){for(f=l(g.Pb(),65),o=Fr(f.a,0);o.b!=o.d.c;)s=l(Pr(o),8),s.a+=w.a,s.b+=w.b;ci(e.a,f)}}function Nke(e,t){var n,r,s,o;if(0<(De(e,16)?l(e,16).gc():ep(e.Kc()))){if(s=t,1=0&&wo*2?(C=new vU(L),T=vl(f)/hh(f),w=Hle(C,t,new L8,n,r,s,T),Pi(W0(C.e),w),L.c.length=0,o=0,qn(L.c,C),qn(L.c,f),o=vl(C)*hh(C)+vl(f)*hh(f)):(qn(L.c,f),o+=vl(f)*hh(f));return L}function Hmt(e,t){var n,r,s,o,f,g;if(g=l(Q(t,(Nt(),Ds)),101),g==(Pa(),_g)||g==Au)for(s=new lt(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a).b,f=new K(e.a);f.an?t:n;T<=L;++T)T==n?g=r++:(o=s[T],C=V.am(o.Lk()),T==t&&(w=T==L&&!C?r-1:r),C&&++r);return F=l(LA(e,t,n),76),g!=w&&Tk(e,new dN(e.e,7,f,bt(g),z.md(),w)),F}}else return l(rle(e,t,n),76);return l(LA(e,t,n),76)}function rAn(e,t){var n,r,s,o,f,g,w;for(t.Ug("Port order processing",1),w=l(Q(e,(Nt(),mDe)),430),r=new K(e.b);r.a=0&&(g=Q7n(e,f),!(g&&(T<22?w.l|=1<>>1,f.m=C>>>1|(L&1)<<21,f.l=F>>>1|(C&1)<<21,--T;return n&&Nce(w),o&&(r?(Hb=TT(e),s&&(Hb=A0t(Hb,(aT(),d_e)))):Hb=qu(e.l,e.m,e.h)),w}function aAn(e,t){var n,r,s,o,f,g,w,T,C,L;for(T=e.e[t.c.p][t.p]+1,w=t.c.a.c.length+1,g=new K(e.a);g.a0&&(Yn(0,e.length),e.charCodeAt(0)==45||(Yn(0,e.length),e.charCodeAt(0)==43))?1:0,r=f;rn)throw ue(new gd(n3+e+'"'));return g}function oAn(e){var t,n,r,s,o,f,g;for(f=new os,o=new K(e.a);o.a1)&&t==1&&l(e.a[e.b],10).k==(Jn(),uu)?Cx(l(e.a[e.b],10),(Ih(),Cg)):r&&(!n||(e.c-e.b&e.a.length-1)>1)&&t==1&&l(e.a[e.c-1&e.a.length-1],10).k==(Jn(),uu)?Cx(l(e.a[e.c-1&e.a.length-1],10),(Ih(),tm)):(e.c-e.b&e.a.length-1)==2?(Cx(l(yA(e),10),(Ih(),Cg)),Cx(l(yA(e),10),tm)):BEn(e,s),A6e(e)}function lAn(e,t,n){var r,s,o,f,g;for(o=0,s=new ar((!e.a&&(e.a=new nt(Li,e,10,11)),e.a));s.e!=s.i.gc();)r=l(dr(s),27),f="",(!r.n&&(r.n=new nt(nc,r,1,7)),r.n).i==0||(f=l(Oe((!r.n&&(r.n=new nt(nc,r,1,7)),r.n),0),135).a),g=new Pce(o++,t,f),mc(g,r),rt(g,(Zi(),pM),r),g.e.b=r.j+r.f/2,g.f.a=b.Math.max(r.g,1),g.e.a=r.i+r.g/2,g.f.b=b.Math.max(r.f,1),ci(t.b,g),Ru(n.f,r,g)}function hAn(e){var t,n,r,s,o;r=l(Q(e,(ft(),zi)),27),o=l(at(r,(Nt(),Ev)),181).Hc((gh(),Ov)),e.e||(s=l(Q(e,_u),21),t=new lt(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a),s.Hc((Ho(),mf))?(Vi(r,Ds,(Pa(),Au)),Zw(r,t.a,t.b,!1,!0)):Ft(Pt(at(r,yde)))||Zw(r,t.a,t.b,!0,!0)),o?Vi(r,Ev,hn(Ov)):Vi(r,Ev,(n=l(G0(FM),9),new Jh(n,l(o0(n,n.length),9),0)))}function Pke(e,t,n){var r,s,o,f;if(t[0]>=e.length)return n.o=0,!0;switch(io(e,t[0])){case 43:s=1;break;case 45:s=-1;break;default:return n.o=0,!0}if(++t[0],o=t[0],f=LV(e,t),f==0&&t[0]==o)return!1;if(t[0]g&&(g=s,C.c.length=0),s==g&&wt(C,new fa(n.c.i,n)));Cn(),Gs(C,e.c),kw(e.b,w.p,C)}}function pAn(e,t){var n,r,s,o,f,g,w,T,C;for(f=new K(t.b);f.ag&&(g=s,C.c.length=0),s==g&&wt(C,new fa(n.d.i,n)));Cn(),Gs(C,e.c),kw(e.f,w.p,C)}}function bAn(e,t){var n,r,s,o,f,g,w,T;if(T=Pt(Q(t,(Vc(),aCt))),T==null||(tr(T),T)){for(zTn(e,t),s=new mt,w=Fr(t.b,0);w.b!=w.d.c;)f=l(Pr(w),40),n=k9e(e,f,null),n&&(mc(n,t),qn(s.c,n));if(e.a=null,e.b=null,s.c.length>1)for(r=new K(s);r.a=0&&g!=n&&(o=new _a(e,1,g,f,null),r?r.nj(o):r=o),n>=0&&(o=new _a(e,1,n,g==n?f:null,t),r?r.nj(o):r=o)),r}function Gmt(e){var t,n,r;if(e.b==null){if(r=new e2,e.i!=null&&(Jo(r,e.i),r.a+=":"),e.f&256){for(e.f&256&&e.a!=null&&(Npn(e.i)||(r.a+="//"),Jo(r,e.a)),e.d!=null&&(r.a+="/",Jo(r,e.d)),e.f&16&&(r.a+="/"),t=0,n=e.j.length;tF?!1:(L=(w=eL(r,F,!1),w.a),C+g+L<=t.b&&(gN(n,o-n.s),n.c=!0,gN(r,o-n.s),XN(r,n.s,n.t+n.d+g),r.k=!0,H7e(n.q,r),z=!0,s&&(TU(t,r),r.j=t,e.c.length>f&&(ZN((Sn(f,e.c.length),l(e.c[f],186)),r),(Sn(f,e.c.length),l(e.c[f],186)).a.c.length==0&&l2(e,f)))),z)}function TAn(e,t){var n,r,s,o,f,g;if(t.Ug("Partition midprocessing",1),s=new Iw,Os(ji(new vn(null,new kn(e.a,16)),new Cj),new RYe(s)),s.d!=0){for(g=l(kc(h6e((o=s.i,new vn(null,(o||(s.i=new U5(s,s.c))).Nc()))),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[(Nl(),Cc)]))),15),r=g.Kc(),n=l(r.Pb(),17);r.Ob();)f=l(r.Pb(),17),pCn(l($i(s,n),21),l($i(s,f),21)),n=f;t.Vg()}}function Ymt(e,t,n){var r,s,o,f,g,w,T,C;if(t.p==0){for(t.p=1,f=n,f||(s=new mt,o=(r=l(G0(Mo),9),new Jh(r,l(o0(r,r.length),9),0)),f=new fa(s,o)),l(f.a,15).Fc(t),t.k==(Jn(),Ks)&&l(f.b,21).Fc(l(Q(t,(ft(),Xc)),64)),w=new K(t.j);w.a0){if(s=l(e.Ab.g,2033),t==null){for(o=0;on.s&&gf)return _t(),sr;break;case 4:case 3:if(C<0)return _t(),Xn;if(C+n>o)return _t(),Mr}return w=(T+g/2)/f,r=(C+n/2)/o,w+r<=1&&w-r<=0?(_t(),Zn):w+r>=1&&w-r>=0?(_t(),sr):r<.5?(_t(),Xn):(_t(),Mr)}function AAn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J;for(n=!1,C=ze(Ge(Q(t,(Nt(),E3)))),V=Fb*C,s=new K(t.b);s.aw+V&&(J=L.g+F.g,F.a=(F.g*F.a+L.g*L.a)/J,F.g=J,L.f=F,n=!0)),o=g,L=F;return n}function Zmt(e,t,n,r,s,o,f){var g,w,T,C,L,F;for(F=new z8,T=t.Kc();T.Ob();)for(g=l(T.Pb(),853),L=new K(g.Rf());L.a0?g.a?(T=g.b.Mf().b,s>T&&(e.v||g.c.d.c.length==1?(f=(s-T)/2,g.d.d=f,g.d.a=f):(n=l(Rt(g.c.d,0),187).Mf().b,r=(n-T)/2,g.d.d=b.Math.max(0,r),g.d.a=s-r-T))):g.d.a=e.t+s:Y_(e.u)&&(o=i9e(g.b),o.d<0&&(g.d.d=-o.d),o.d+o.a>g.b.Mf().b&&(g.d.a=o.d+o.a-g.b.Mf().b))}function p0(){p0=U,Hx=new qa((bi(),iF),bt(1)),LK=new qa(Dv,80),I8t=new qa(GNe,5),k8t=new qa(t7,fE),M8t=new qa(tpe,bt(1)),D8t=new qa(npe,(Hn(),!0)),yAe=new mw(50),A8t=new qa(B2,yAe),mAe=nF,xAe=AM,T8t=new qa(Vge,!1),wAe=rF,S8t=A4,_8t=em,C8t=Mv,E8t=s7,L8t=L4,vAe=(g9e(),p8t),d1e=w8t,AK=g8t,f1e=b8t,kAe=v8t,P8t=LM,B8t=dY,N8t=sF,O8t=fY,TAe=(gx(),I4),new qa(s9,TAe)}function DAn(e,t){var n;switch(kN(e)){case 6:return Da(t);case 7:return py(t);case 8:return gy(t);case 3:return Array.isArray(t)&&(n=kN(t),!(n>=14&&n<=16));case 11:return t!=null&&typeof t===Kle;case 12:return t!=null&&(typeof t===_P||typeof t==Kle);case 0:return vue(t,e.__elementTypeId$);case 2:return Jae(t)&&t.Tm!==xe;case 1:return Jae(t)&&t.Tm!==xe||vue(t,e.__elementTypeId$);default:return!0}}function evt(e,t){var n,r,s,o;return r=b.Math.min(b.Math.abs(e.c-(t.c+t.b)),b.Math.abs(e.c+e.b-t.c)),o=b.Math.min(b.Math.abs(e.d-(t.d+t.a)),b.Math.abs(e.d+e.a-t.d)),n=b.Math.abs(e.c+e.b/2-(t.c+t.b/2)),n>e.b/2+t.b/2||(s=b.Math.abs(e.d+e.a/2-(t.d+t.a/2)),s>e.a/2+t.a/2)?1:n==0&&s==0?0:n==0?o/s+1:s==0?r/n+1:b.Math.min(r/n,o/s)+1}function IAn(e,t){var n,r,s,o,f,g,w;for(o=0,g=0,w=0,s=new K(e.f.e);s.a0&&e.d!=(hA(),b1e)&&(g+=f*(r.d.a+e.a[t.a][r.a]*(t.d.a-r.d.a)/n)),n>0&&e.d!=(hA(),g1e)&&(w+=f*(r.d.b+e.a[t.a][r.a]*(t.d.b-r.d.b)/n)));switch(e.d.g){case 1:return new lt(g/o,t.d.b);case 2:return new lt(t.d.a,w/o);default:return new lt(g/o,w/o)}}function tvt(e){var t,n,r,s,o,f;for(n=(!e.a&&(e.a=new Qs(qh,e,5)),e.a).i+2,f=new Pu(n),wt(f,new lt(e.j,e.k)),Os(new vn(null,(!e.a&&(e.a=new Qs(qh,e,5)),new kn(e.a,16))),new lQe(f)),wt(f,new lt(e.b,e.c)),t=1;t0&&(NN(w,!1,(ea(),hc)),NN(w,!0,yc)),Uu(t.g,new ptt(e,n)),Ti(e.g,t,n)}function ivt(){ivt=U;var e;for(x_e=he(le(Ur,1),fi,28,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),q0e=We(Ur,fi,28,37,15,1),G6t=he(le(Ur,1),fi,28,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),k_e=We(hm,yhe,28,37,14,1),e=2;e<=36;e++)q0e[e]=da(b.Math.pow(e,x_e[e])),k_e[e]=tP(DP,q0e[e])}function OAn(e){var t;if((!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i!=1)throw ue(new Wn(I4t+(!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i));return t=new pl,IN(l(Oe((!e.b&&(e.b=new An(Sr,e,4,7)),e.b),0),84))&&Ga(t,Gwt(e,IN(l(Oe((!e.b&&(e.b=new An(Sr,e,4,7)),e.b),0),84)),!1)),IN(l(Oe((!e.c&&(e.c=new An(Sr,e,5,8)),e.c),0),84))&&Ga(t,Gwt(e,IN(l(Oe((!e.c&&(e.c=new An(Sr,e,5,8)),e.c),0),84)),!0)),t}function svt(e,t){var n,r,s,o,f;for(t.d?s=e.a.c==(xd(),S3)?Ea(t.b):qs(t.b):s=e.a.c==(xd(),O2)?Ea(t.b):qs(t.b),o=!1,r=new lr(fr(s.a.Kc(),new j));Rr(r);)if(n=l(yr(r),18),f=Ft(e.a.f[e.a.g[t.b.p].p]),!(!f&&!Ao(n)&&n.c.i.c==n.d.i.c)&&!(Ft(e.a.n[e.a.g[t.b.p].p])||Ft(e.a.n[e.a.g[t.b.p].p]))&&(o=!0,K0(e.b,e.a.g[O7n(n,t.b).p])))return t.c=!0,t.a=n,t;return t.c=o,t.a=null,t}function Fke(e,t,n){var r,s,o,f,g,w,T;if(r=n.gc(),r==0)return!1;if(e.Pj())if(w=e.Qj(),G8e(e,t,n),f=r==1?e.Ij(3,null,n.Kc().Pb(),t,w):e.Ij(5,null,n,t,w),e.Mj()){for(g=r<100?null:new hb(r),o=t+r,s=t;s0){for(f=0;f>16==-15&&e.Cb.Yh()&&nce(new Qoe(e.Cb,9,13,n,e.c,x2(Kl(l(e.Cb,62)),e))):De(e.Cb,90)&&e.Db>>16==-23&&e.Cb.Yh()&&(t=e.c,De(t,90)||(t=(En(),Kf)),De(n,90)||(n=(En(),Kf)),nce(new Qoe(e.Cb,9,10,n,t,x2(fu(l(e.Cb,29)),e)))))),e.c}function BAn(e,t,n){var r,s,o,f,g,w,T,C,L;for(n.Ug("Hyperedge merging",1),aEn(e,t),w=new Ua(t.b,0);w.b0,g=XU(t,o),Xye(n?g.b:g.g,t),t6(g).c.length==1&&_s(r,g,r.c.b,r.c),s=new fa(o,t),Tb(e.o,s),sl(e.e.a,o))}function fvt(e,t){var n,r,s,o,f,g,w;return r=b.Math.abs(EH(e.b).a-EH(t.b).a),g=b.Math.abs(EH(e.b).b-EH(t.b).b),s=0,w=0,n=1,f=1,r>e.b.b/2+t.b.b/2&&(s=b.Math.min(b.Math.abs(e.b.c-(t.b.c+t.b.b)),b.Math.abs(e.b.c+e.b.b-t.b.c)),n=1-s/r),g>e.b.a/2+t.b.a/2&&(w=b.Math.min(b.Math.abs(e.b.d-(t.b.d+t.b.a)),b.Math.abs(e.b.d+e.b.a-t.b.d)),f=1-w/g),o=b.Math.min(n,f),(1-o)*b.Math.sqrt(r*r+g*g)}function jAn(e){var t,n,r,s;for(qle(e,e.e,e.f,(Ow(),Jb),!0,e.c,e.i),qle(e,e.e,e.f,Jb,!1,e.c,e.i),qle(e,e.e,e.f,Y6,!0,e.c,e.i),qle(e,e.e,e.f,Y6,!1,e.c,e.i),PAn(e,e.c,e.e,e.f,e.i),r=new Ua(e.i,0);r.b=65;n--)nd[n]=n-65<<24>>24;for(r=122;r>=97;r--)nd[r]=r-97+26<<24>>24;for(s=57;s>=48;s--)nd[s]=s-48+52<<24>>24;for(nd[43]=62,nd[47]=63,o=0;o<=25;o++)H2[o]=65+o&ta;for(f=26,w=0;f<=51;++f,w++)H2[f]=97+w&ta;for(e=52,g=0;e<=61;++e,g++)H2[e]=48+g&ta;H2[62]=43,H2[63]=47}function dvt(e,t){var n,r,s,o,f,g;return s=R7e(e),g=R7e(t),s==g?e.e==t.e&&e.a<54&&t.a<54?e.ft.f?1:0:(r=e.e-t.e,n=(e.d>0?e.d:b.Math.floor((e.a-1)*y3t)+1)-(t.d>0?t.d:b.Math.floor((t.a-1)*y3t)+1),n>r+1?s:n0&&(f=Y5(f,Evt(r))),Tdt(o,f))):sT&&(F=0,z+=w+t,w=0),YT(f,F,z),n=b.Math.max(n,F+C.a),w=b.Math.max(w,C.b),F+=C.a+t;return new lt(n+t,z+w+t)}function zke(e,t){var n,r,s,o,f,g,w;if(!M1(e))throw ue(new ic(D4t));if(r=M1(e),o=r.g,s=r.f,o<=0&&s<=0)return _t(),jc;switch(g=e.i,w=e.j,t.g){case 2:case 1:if(g<0)return _t(),Zn;if(g+e.g>o)return _t(),sr;break;case 4:case 3:if(w<0)return _t(),Xn;if(w+e.f>s)return _t(),Mr}return f=(g+e.g/2)/o,n=(w+e.f/2)/s,f+n<=1&&f-n<=0?(_t(),Zn):f+n>=1&&f-n>=0?(_t(),sr):n<.5?(_t(),Xn):(_t(),Mr)}function qAn(e,t,n,r,s){var o,f;if(o=fo(xa(t[0],Uo),xa(r[0],Uo)),e[0]=Yr(o),o=Tw(o,32),n>=s){for(f=1;f0&&(s.b[f++]=0,s.b[f++]=o.b[0]-1),t=1;t0&&(H(w,w.d-s.d),s.c==(Q0(),Qb)&&N(w,w.a-s.d),w.d<=0&&w.i>0&&_s(t,w,t.c.b,t.c)));for(o=new K(e.f);o.a0&&(q(g,g.i-s.d),s.c==(Q0(),Qb)&&$(g,g.b-s.d),g.i<=0&&g.d>0&&_s(n,g,n.c.b,n.c)))}function VAn(e,t,n,r,s){var o,f,g,w,T,C,L,F,z;for(Cn(),Gs(e,new rk),f=HO(e),z=new mt,F=new mt,g=null,w=0;f.b!=0;)o=l(f.b==0?null:(br(f.b!=0),sf(f,f.a.a)),163),!g||vl(g)*hh(g)/21&&(w>vl(g)*hh(g)/2||f.b==0)&&(L=new vU(F),C=vl(g)/hh(g),T=Hle(L,t,new L8,n,r,s,C),Pi(W0(L.e),T),g=L,qn(z.c,L),w=0,F.c.length=0));return aa(z,F),z}function gu(e,t,n,r,s){Wg();var o,f,g,w,T,C,L;if(D5e(e,"src"),D5e(n,"dest"),L=dh(e),w=dh(n),X4e((L.i&4)!=0,"srcType is not an array"),X4e((w.i&4)!=0,"destType is not an array"),C=L.c,f=w.c,X4e(C.i&1?C==f:(f.i&1)==0,"Array types don't match"),Dyn(e,t,n,r,s),!(C.i&1)&&L!=w)if(T=Km(e),o=Km(n),qe(e)===qe(n)&&tr;)Ss(o,g,T[--t]);else for(g=r+s;r0),r.a.Xb(r.c=--r.b),L>F+w&&fh(r);for(f=new K(z);f.a0),r.a.Xb(r.c=--r.b)}}function KAn(){Ii();var e,t,n,r,s,o;if(Tpe)return Tpe;for(e=new _h(4),Xy(e,Bb(L0e,!0)),rL(e,Bb("M",!0)),rL(e,Bb("C",!0)),o=new _h(4),r=0;r<11;r++)xu(o,r,r);return t=new _h(4),Xy(t,Bb("M",!0)),xu(t,4448,4607),xu(t,65438,65439),s=new F_(2),sv(s,e),sv(s,YM),n=new F_(2),n.Jm(gH(o,Bb("L",!0))),n.Jm(t),n=new _y(3,n),n=new M5e(s,n),Tpe=n,Tpe}function Yy(e,t){var n,r,s,o,f,g,w,T;for(n=new RegExp(t,"g"),w=We($t,dt,2,0,6,1),r=0,T=e,o=null;;)if(g=n.exec(T),g==null||T==""){w[r]=T;break}else f=g.index,w[r]=(Va(0,f,T.length),T.substr(0,f)),T=ef(T,f+g[0].length,T.length),n.lastIndex=0,o==T&&(w[r]=(Va(0,1,T.length),T.substr(0,1)),T=(Yn(1,T.length+1),T.substr(1))),o=T,++r;if(e.length>0){for(s=w.length;s>0&&w[s-1]=="";)--s;s0&&(L-=r[0]+e.c,r[0]+=e.c),r[2]>0&&(L-=r[2]+e.c),r[1]=b.Math.max(r[1],L),vH(e.a[1],n.c+t.b+r[0]-(r[1]-L)/2,r[1]);for(o=e.a,g=0,T=o.length;g0?(e.n.c.length-1)*e.i:0,r=new K(e.n);r.a1)for(r=Fr(s,0);r.b!=r.d.c;)for(n=l(Pr(r),235),o=0,w=new K(n.e);w.a0&&(t[0]+=e.c,L-=t[0]),t[2]>0&&(L-=t[2]+e.c),t[1]=b.Math.max(t[1],L),wH(e.a[1],r.d+n.d+t[0]-(t[1]-L)/2,t[1]);else for(V=r.d+n.d,z=r.a-n.d-n.a,f=e.a,w=0,C=f.length;w0||Uw(s.b.d,e.b.d+e.b.a)==0&&r.b<0||Uw(s.b.d+s.b.a,e.b.d)==0&&r.b>0){g=0;break}}else g=b.Math.min(g,f2t(e,s,r));g=b.Math.min(g,mvt(e,o,g,r))}return g}function xP(e,t){var n,r,s,o,f,g,w;if(e.b<2)throw ue(new Wn("The vector chain must contain at least a source and a target point."));for(s=(br(e.b!=0),l(e.a.a.c,8)),MO(t,s.a,s.b),w=new H8((!t.a&&(t.a=new Qs(qh,t,5)),t.a)),f=Fr(e,1);f.a=0&&o!=n))throw ue(new Wn(nB));for(s=0,w=0;wze(L1(f.g,f.d[0]).a)?(br(w.b>0),w.a.Xb(w.c=--w.b),wy(w,f),s=!0):g.e&&g.e.gc()>0&&(o=(!g.e&&(g.e=new mt),g.e).Mc(t),T=(!g.e&&(g.e=new mt),g.e).Mc(n),(o||T)&&((!g.e&&(g.e=new mt),g.e).Fc(f),++f.c));s||qn(r.c,f)}function eLn(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe;return L=e.a.i+e.a.g/2,F=e.a.i+e.a.g/2,V=t.i+t.g/2,te=t.j+t.f/2,g=new lt(V,te),T=l(at(t,(bi(),r9)),8),T.a=T.a+L,T.b=T.b+F,o=(g.b-T.b)/(g.a-T.a),r=g.b-o*g.a,J=n.i+n.g/2,fe=n.j+n.f/2,w=new lt(J,fe),C=l(at(n,r9),8),C.a=C.a+L,C.b=C.b+F,f=(w.b-C.b)/(w.a-C.a),s=w.b-f*w.a,z=(r-s)/(f-o),T.a>>0,"0"+t.toString(16)),r="\\x"+ef(n,n.length-2,n.length)):e>=Lo?(n=(t=e>>>0,"0"+t.toString(16)),r="\\v"+ef(n,n.length-6,n.length)):r=""+String.fromCharCode(e&ta)}return r}function xvt(e){var t,n,r;if(F5(l(Q(e,(Nt(),Ds)),101)))for(n=new K(e.j);n.a=t.o&&n.f<=t.f||t.a*.5<=n.f&&t.a*1.5>=n.f){if(f=l(Rt(t.n,t.n.c.length-1),209),f.e+f.d+n.g+s<=r&&(o=l(Rt(t.n,t.n.c.length-1),209),o.f-e.f+n.f<=e.b||e.a.c.length==1))return R8e(t,n),!0;if(t.s+n.g<=r&&(t.t+t.d+n.f+s<=e.b||e.a.c.length==1))return wt(t.b,n),g=l(Rt(t.n,t.n.c.length-1),209),wt(t.n,new qH(t.s,g.f+g.a+t.i,t.i)),vxe(l(Rt(t.n,t.n.c.length-1),209),n),pvt(t,n),!0}return!1}function Tvt(e,t,n){var r,s,o,f;return e.Pj()?(s=null,o=e.Qj(),r=e.Ij(1,f=sce(e,t,n),n,t,o),e.Mj()&&!(e.Yi()&&f!=null?Fi(f,n):qe(f)===qe(n))?(f!=null&&(s=e.Oj(f,s)),s=e.Nj(n,s),e.Tj()&&(s=e.Wj(f,n,s)),s?(s.nj(r),s.oj()):e.Jj(r)):(e.Tj()&&(s=e.Wj(f,n,s)),s?(s.nj(r),s.oj()):e.Jj(r)),f):(f=sce(e,t,n),e.Mj()&&!(e.Yi()&&f!=null?Fi(f,n):qe(f)===qe(n))&&(s=null,f!=null&&(s=e.Oj(f,null)),s=e.Nj(n,s),s&&s.oj()),f)}function oLn(e,t){var n,r,s,o,f;if(t.Ug("Path-Like Graph Wrapping",1),e.b.c.length==0){t.Vg();return}if(s=new W9e(e),f=(s.i==null&&(s.i=j7e(s,new Zj)),ze(s.i)*s.f),n=f/(s.i==null&&(s.i=j7e(s,new Zj)),ze(s.i)),s.b>n){t.Vg();return}switch(l(Q(e,(Nt(),Cde)),351).g){case 2:o=new t$;break;case 0:o=new ES;break;default:o=new n$}if(r=o.og(e,s),!o.pg())switch(l(Q(e,MW),352).g){case 2:r=d2t(s,r);break;case 1:r=ipt(s,r)}rMn(e,s,r),t.Vg()}function QA(e,t){var n,r,s,o,f,g,w,T;t%=24,e.q.getHours()!=t&&(r=new b.Date(e.q.getTime()),r.setDate(r.getDate()+1),g=e.q.getTimezoneOffset()-r.getTimezoneOffset(),g>0&&(w=g/60|0,T=g%60,s=e.q.getDate(),n=e.q.getHours(),n+w>=24&&++s,o=new b.Date(e.q.getFullYear(),e.q.getMonth(),s,t+w,e.q.getMinutes()+T,e.q.getSeconds(),e.q.getMilliseconds()),e.q.setTime(o.getTime()))),f=e.q.getTime(),e.q.setTime(f+36e5),e.q.getHours()!=t&&e.q.setTime(f)}function cLn(e,t){var n,r,s,o;if(xbn(e.d,e.e),e.c.a.$b(),ze(Ge(Q(t.j,(Nt(),vW))))!=0||ze(Ge(Q(t.j,vW)))!=0)for(n=k6,qe(Q(t.j,Tg))!==qe((Td(),I2))&&rt(t.j,(ft(),Wb),(Hn(),!0)),o=l(Q(t.j,rM),17).a,s=0;ss&&++T,wt(f,(Sn(g+T,t.c.length),l(t.c[g+T],17))),w+=(Sn(g+T,t.c.length),l(t.c[g+T],17)).a-r,++n;n=te&&e.e[w.p]>V*e.b||Me>=n*te)&&(qn(F.c,g),g=new mt,Ga(f,o),o.a.$b(),T-=C,z=b.Math.max(z,T*e.b+J),T+=Me,Ee=Me,Me=0,C=0,J=0);return new fa(z,F)}function _le(e){var t,n,r,s,o,f,g;if(!e.d){if(g=new fre,t=HM,o=t.a.zc(e,t),o==null){for(r=new ar(pc(e));r.e!=r.i.gc();)n=l(dr(r),29),Ls(g,_le(n));t.a.Bc(e)!=null,t.a.gc()==0}for(f=g.i,s=(!e.q&&(e.q=new nt(Vf,e,11,10)),new ar(e.q));s.e!=s.i.gc();++f)l(dr(s),411);Ls(g,(!e.q&&(e.q=new nt(Vf,e,11,10)),e.q)),Py(g),e.d=new B5((l(Oe(tt((wb(),Un).o),9),19),g.i),g.g),e.e=l(g.g,688),e.e==null&&(e.e=SAt),Gl(e).b&=-17}return e.d}function JT(e,t,n,r){var s,o,f,g,w,T;if(T=Wu(e.e.Dh(),t),w=0,s=l(e.g,124),Ro(),l(t,69).xk()){for(f=0;f1||V==-1)if(L=l(J,71),F=l(C,71),L.dc())F.$b();else for(f=!!jo(t),o=0,g=e.a?L.Kc():L.Ii();g.Ob();)T=l(g.Pb(),58),s=l(B1(e,T),58),s?(f?(w=F.dd(s),w==-1?F.Gi(o,s):o!=w&&F.Ui(o,s)):F.Gi(o,s),++o):e.b&&!f&&(F.Gi(o,T),++o);else J==null?C.Wb(null):(s=B1(e,J),s==null?e.b&&!jo(t)&&C.Wb(J):C.Wb(s))}function dLn(e,t){var n,r,s,o,f,g,w,T;for(n=new AZ,s=new lr(fr(Ea(t).a.Kc(),new j));Rr(s);)if(r=l(yr(s),18),!Ao(r)&&(g=r.c.i,e9e(g,OK))){if(T=wke(e,g,OK,IK),T==-1)continue;n.b=b.Math.max(n.b,T),!n.a&&(n.a=new mt),wt(n.a,g)}for(f=new lr(fr(qs(t).a.Kc(),new j));Rr(f);)if(o=l(yr(f),18),!Ao(o)&&(w=o.d.i,e9e(w,IK))){if(T=wke(e,w,IK,OK),T==-1)continue;n.d=b.Math.max(n.d,T),!n.c&&(n.c=new mt),wt(n.c,w)}return n}function gLn(e,t,n,r){var s,o,f,g,w,T,C;if(n.d.i!=t.i){for(s=new hp(e),x(s,(Jn(),Aa)),rt(s,(ft(),zi),n),rt(s,(Nt(),Ds),(Pa(),Au)),qn(r.c,s),f=new du,Nc(f,s),ga(f,(_t(),Zn)),g=new du,Nc(g,s),ga(g,sr),C=n.d,Na(n,f),o=new Dw,mc(o,n),rt(o,lc,null),ho(o,g),Na(o,C),T=new Ua(n.b,0);T.b1e6)throw ue(new Yz("power of ten too big"));if(e<=Ni)return ax(fP(zx[1],t),t);for(r=fP(zx[1],Ni),s=r,n=tu(e-Ni),t=da(e%Ni);su(n,Ni)>0;)s=Y5(s,r),n=Df(n,Ni);for(s=Y5(s,fP(zx[1],t)),s=ax(s,Ni),n=tu(e-Ni);su(n,Ni)>0;)s=ax(s,Ni),n=Df(n,Ni);return s=ax(s,t),s}function Cvt(e){var t,n,r,s,o,f,g,w,T,C;for(w=new K(e.a);w.aT&&r>T)C=g,T=ze(t.p[g.p])+ze(t.d[g.p])+g.o.b+g.d.a;else{s=!1,n._g()&&n.bh("bk node placement breaks on "+g+" which should have been after "+C);break}if(!s)break}return n._g()&&n.bh(t+" is feasible: "+s),s}function Vke(e,t,n,r){var s,o,f,g,w,T,C,L,F;if(o=new hp(e),x(o,(Jn(),Su)),rt(o,(Nt(),Ds),(Pa(),Au)),s=0,t){for(f=new du,rt(f,(ft(),zi),t),rt(o,zi,t.i),ga(f,(_t(),Zn)),Nc(f,o),F=kd(t.e),T=F,C=0,L=T.length;C0){if(s<0&&C.a&&(s=w,o=T[0],r=0),s>=0){if(g=C.b,w==s&&(g-=r++,g==0))return 0;if(!Lwt(t,T,C,g,f)){w=s-1,T[0]=o;continue}}else if(s=-1,!Lwt(t,T,C,0,f))return 0}else{if(s=-1,io(C.c,0)==32){if(L=T[0],Mht(t,T),T[0]>L)continue}else if(n2n(t,C.c,T[0])){T[0]+=C.c.length;continue}return 0}return iIn(f,n)?T[0]:0}function yLn(e,t,n){var r,s,o,f,g,w,T,C,L,F;for(C=new xH(new Rz(n)),g=We(th,vg,28,e.f.e.c.length,16,1),A5e(g,g.length),n[t.a]=0,T=new K(e.f.e);T.a=0&&!s6(e,C,L);)--L;s[C]=L}for(z=0;z=0&&!s6(e,g,V);)--g;o[V]=g}for(w=0;wt[F]&&Fr[w]&&UV(e,w,F,!1,!0)}function Gke(e){var t,n,r,s,o,f,g,w;n=Ft(Pt(Q(e,(p0(),T8t)))),o=e.a.c.d,g=e.a.d.d,n?(f=md(ya(new lt(g.a,g.b),o),.5),w=md(Xa(e.e),.5),t=ya(Pi(new lt(o.a,o.b),f),w),t4e(e.d,t)):(s=ze(Ge(Q(e.a,I8t))),r=e.d,o.a>=g.a?o.b>=g.b?(r.a=g.a+(o.a-g.a)/2+s,r.b=g.b+(o.b-g.b)/2-s-e.e.b):(r.a=g.a+(o.a-g.a)/2+s,r.b=o.b+(g.b-o.b)/2+s):o.b>=g.b?(r.a=o.a+(g.a-o.a)/2+s,r.b=g.b+(o.b-g.b)/2+s):(r.a=o.a+(g.a-o.a)/2+s,r.b=o.b+(g.b-o.b)/2-s-e.e.b))}function ZA(e){var t,n,r,s,o,f,g,w;if(!e.f){if(w=new PI,g=new PI,t=HM,f=t.a.zc(e,t),f==null){for(o=new ar(pc(e));o.e!=o.i.gc();)s=l(dr(o),29),Ls(w,ZA(s));t.a.Bc(e)!=null,t.a.gc()==0}for(r=(!e.s&&(e.s=new nt(fl,e,21,17)),new ar(e.s));r.e!=r.i.gc();)n=l(dr(r),179),De(n,102)&&zr(g,l(n,19));Py(g),e.r=new mst(e,(l(Oe(tt((wb(),Un).o),6),19),g.i),g.g),Ls(w,e.r),Py(w),e.f=new B5((l(Oe(tt(Un.o),5),19),w.i),w.g),Gl(e).b&=-3}return e.f}function _vt(e){fw(e,new iv(uw(aw(cw(ow(new x1,lv),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new Wh))),pt(e,lv,zhe,It(gAe)),pt(e,lv,qhe,It(c1e)),pt(e,lv,Nx,It(c8t)),pt(e,lv,r3,It(dAe)),pt(e,lv,NTe,It(f8t)),pt(e,lv,PTe,It(h8t)),pt(e,lv,OTe,It(d8t)),pt(e,lv,BTe,It(l8t)),pt(e,lv,HTe,It(u8t)),pt(e,lv,UTe,It(o1e)),pt(e,lv,VTe,It(fAe)),pt(e,lv,GTe,It(CK))}function WV(){WV=U,NPe=he(le(xf,1),Ad,28,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]),nAt=new RegExp(`[ +\r\f]+`);try{$M=he(le(nNn,1),jn,2114,0,[new tO((kye(),eV("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",RO((Wz(),Wz(),PL))))),new tO(eV("yyyy-MM-dd'T'HH:mm:ss'.'SSS",RO(PL))),new tO(eV("yyyy-MM-dd'T'HH:mm:ss",RO(PL))),new tO(eV("yyyy-MM-dd'T'HH:mm",RO(PL))),new tO(eV("yyyy-MM-dd",RO(PL)))])}catch(e){if(e=ms(e),!De(e,82))throw ue(e)}}function kLn(e,t){var n,r,s,o;if(s=Yl(e.d,1)!=0,r=Ske(e,t),r==0&&Ft(Pt(Q(t.j,(ft(),Wb)))))return 0;!Ft(Pt(Q(t.j,(ft(),Wb))))&&!Ft(Pt(Q(t.j,z6)))||qe(Q(t.j,(Nt(),Tg)))===qe((Td(),I2))?t.c.mg(t.e,s):s=Ft(Pt(Q(t.j,Wb))),bP(e,t,s,!0),Ft(Pt(Q(t.j,z6)))&&rt(t.j,z6,(Hn(),!1)),Ft(Pt(Q(t.j,Wb)))&&(rt(t.j,Wb,(Hn(),!1)),rt(t.j,z6,!0)),n=Ske(e,t);do{if(F7e(e),n==0)return 0;s=!s,o=n,bP(e,t,s,!1),n=Ske(e,t)}while(o>n);return o}function Avt(e,t){var n,r,s,o;if(s=Yl(e.d,1)!=0,r=AV(e,t),r==0&&Ft(Pt(Q(t.j,(ft(),Wb)))))return 0;!Ft(Pt(Q(t.j,(ft(),Wb))))&&!Ft(Pt(Q(t.j,z6)))||qe(Q(t.j,(Nt(),Tg)))===qe((Td(),I2))?t.c.mg(t.e,s):s=Ft(Pt(Q(t.j,Wb))),bP(e,t,s,!0),Ft(Pt(Q(t.j,z6)))&&rt(t.j,z6,(Hn(),!1)),Ft(Pt(Q(t.j,Wb)))&&(rt(t.j,Wb,(Hn(),!1)),rt(t.j,z6,!0)),n=AV(e,t);do{if(F7e(e),n==0)return 0;s=!s,o=n,bP(e,t,s,!1),n=AV(e,t)}while(o>n);return o}function Kke(e,t,n,r){var s,o,f,g,w,T,C,L,F;return w=ya(new lt(n.a,n.b),e),T=w.a*t.b-w.b*t.a,C=t.a*r.b-t.b*r.a,L=(w.a*r.b-w.b*r.a)/C,F=T/C,C==0?T==0?(s=Pi(new lt(n.a,n.b),md(new lt(r.a,r.b),.5)),o=Eb(e,s),f=Eb(Pi(new lt(e.a,e.b),t),s),g=b.Math.sqrt(r.a*r.a+r.b*r.b)*.5,o=0&&L<=1&&F>=0&&F<=1?Pi(new lt(e.a,e.b),md(new lt(t.a,t.b),L)):null}function TLn(e,t,n){var r,s,o,f,g;if(r=l(Q(e,(Nt(),fde)),21),n.a>t.a&&(r.Hc((rv(),EM))?e.c.a+=(n.a-t.a)/2:r.Hc(CM)&&(e.c.a+=n.a-t.a)),n.b>t.b&&(r.Hc((rv(),_M))?e.c.b+=(n.b-t.b)/2:r.Hc(SM)&&(e.c.b+=n.b-t.b)),l(Q(e,(ft(),_u)),21).Hc((Ho(),mf))&&(n.a>t.a||n.b>t.b))for(g=new K(e.a);g.at.a&&(r.Hc((rv(),EM))?e.c.a+=(n.a-t.a)/2:r.Hc(CM)&&(e.c.a+=n.a-t.a)),n.b>t.b&&(r.Hc((rv(),_M))?e.c.b+=(n.b-t.b)/2:r.Hc(SM)&&(e.c.b+=n.b-t.b)),l(Q(e,(ft(),_u)),21).Hc((Ho(),mf))&&(n.a>t.a||n.b>t.b))for(f=new K(e.a);f.a0?e.i:0)>t&&w>0&&(o=0,f+=w+e.i,s=b.Math.max(s,F),r+=w+e.i,w=0,F=0,n&&(++L,wt(e.n,new qH(e.s,f,e.i))),g=0),F+=T.g+(g>0?e.i:0),w=b.Math.max(w,T.f),n&&vxe(l(Rt(e.n,L),209),T),o+=T.g+(g>0?e.i:0),++g;return s=b.Math.max(s,F),r+=w,n&&(e.r=s,e.d=r,kxe(e.j)),new Zh(e.s,e.t,s,r)}function Ale(e){var t,n,r,s,o,f,g,w,T,C,L,F;for(e.b=!1,L=gs,w=oa,F=gs,T=oa,r=e.e.a.ec().Kc();r.Ob();)for(n=l(r.Pb(),272),s=n.a,L=b.Math.min(L,s.c),w=b.Math.max(w,s.c+s.b),F=b.Math.min(F,s.d),T=b.Math.max(T,s.d+s.a),f=new K(n.c);f.ae.o.a&&(C=(w-e.o.a)/2,g.b=b.Math.max(g.b,C),g.c=b.Math.max(g.c,C))}}function _Ln(e){var t,n,r,s,o,f,g,w;for(o=new Tct,ihn(o,(fx(),HSt)),r=(s=yce(e,We($t,dt,2,0,6,1)),new xr(new Ll(new yse(e,s).b)));r.bg?1:-1:f8e(e.a,t.a,o),s==-1)L=-w,C=f==w?Voe(t.a,g,e.a,o):Koe(t.a,g,e.a,o);else if(L=f,f==w){if(s==0)return Cd(),FL;C=Voe(e.a,o,t.a,g)}else C=Koe(e.a,o,t.a,g);return T=new $m(L,C.length,C),sA(T),T}function ALn(e,t){var n,r,s,o;if(o=hvt(t),!t.c&&(t.c=new nt($l,t,9,9)),Os(new vn(null,(!t.c&&(t.c=new nt($l,t,9,9)),new kn(t.c,16))),new bYe(o)),s=l(Q(o,(ft(),_u)),21),yDn(t,s),s.Hc((Ho(),mf)))for(r=new ar((!t.c&&(t.c=new nt($l,t,9,9)),t.c));r.e!=r.i.gc();)n=l(dr(r),123),YDn(e,t,o,n);return l(at(t,(Nt(),Ev)),181).gc()!=0&&rmt(t,o),Ft(Pt(Q(o,gDe)))&&s.Fc(uW),rs(o,OB)&&lZe(new Y8e(ze(Ge(Q(o,OB)))),o),qe(at(t,v4))===qe((op(),F2))?wOn(e,t,o):rOn(e,t,o),o}function LLn(e){var t,n,r,s,o,f,g,w;for(s=new K(e.b);s.a0?ef(n.a,0,o-1):""):(Va(0,o-1,e.length),e.substr(0,o-1)):n?n.a:e}function MLn(e,t){var n,r,s,o,f,g,w;for(t.Ug("Sort By Input Model "+Q(e,(Nt(),Tg)),1),s=0,r=new K(e.b);r.a=e.b.length?(o[s++]=f.b[r++],o[s++]=f.b[r++]):r>=f.b.length?(o[s++]=e.b[n++],o[s++]=e.b[n++]):f.b[r]0?e.i:0)),++t;for(I8e(e.n,w),e.d=n,e.r=r,e.g=0,e.f=0,e.e=0,e.o=gs,e.p=gs,o=new K(e.b);o.a0&&(s=(!e.n&&(e.n=new nt(nc,e,1,7)),l(Oe(e.n,0),135)).a,!s||li(li((t.a+=' "',t),s),'"'))),n=(!e.b&&(e.b=new An(Sr,e,4,7)),!(e.b.i<=1&&(!e.c&&(e.c=new An(Sr,e,5,8)),e.c.i<=1))),n?t.a+=" [":t.a+=" ",li(t,zye(new dse,new ar(e.b))),n&&(t.a+="]"),t.a+=Yhe,n&&(t.a+="["),li(t,zye(new dse,new ar(e.c))),n&&(t.a+="]"),t.a)}function ILn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn;for(Je=e.c,ot=t.c,n=bc(Je.a,e,0),r=bc(ot.a,t,0),Me=l(Vw(e,(qo(),Fl)).Kc().Pb(),12),cn=l(Vw(e,$u).Kc().Pb(),12),$e=l(Vw(t,Fl).Kc().Pb(),12),Fn=l(Vw(t,$u).Kc().Pb(),12),fe=kd(Me.e),At=kd(cn.g),Ee=kd($e.e),ln=kd(Fn.g),$y(e,r,ot),f=Ee,C=0,V=f.length;CC?new Hm((Q0(),S4),n,t,T-C):T>0&&C>0&&(new Hm((Q0(),S4),t,n,0),new Hm(S4,n,t,0))),f)}function PLn(e,t,n){var r,s,o;for(e.a=new mt,o=Fr(t.b,0);o.b!=o.d.c;){for(s=l(Pr(o),40);l(Q(s,(Vc(),$d)),17).a>e.a.c.length-1;)wt(e.a,new fa(k6,LCe));r=l(Q(s,$d),17).a,n==(ea(),hc)||n==yc?(s.e.aze(Ge(l(Rt(e.a,r),42).b))&&ct(l(Rt(e.a,r),42),s.e.a+s.f.a)):(s.e.bze(Ge(l(Rt(e.a,r),42).b))&&ct(l(Rt(e.a,r),42),s.e.b+s.f.b))}}function Dvt(e,t,n,r){var s,o,f,g,w,T,C;if(o=WU(r),g=Ft(Pt(Q(r,(Nt(),cDe)))),(g||Ft(Pt(Q(e,TW))))&&!F5(l(Q(e,Ds),101)))s=px(o),w=Bke(e,n,n==(qo(),$u)?s:UN(s));else switch(w=new du,Nc(w,e),t?(C=w.n,C.a=t.a-e.n.a,C.b=t.b-e.n.b,Fpt(C,0,0,e.o.a,e.o.b),ga(w,Jmt(w,o))):(s=px(o),ga(w,n==(qo(),$u)?s:UN(s))),f=l(Q(r,(ft(),_u)),21),T=w.j,o.g){case 2:case 1:(T==(_t(),Xn)||T==Mr)&&f.Fc((Ho(),R6));break;case 4:case 3:(T==(_t(),sr)||T==Zn)&&f.Fc((Ho(),R6))}return w}function Ivt(e,t){var n,r,s,o,f,g;for(f=new Xm(new Cr(e.f.b).a);f.b;){if(o=zw(f),s=l(o.ld(),602),t==1){if(s.Af()!=(ea(),vf)&&s.Af()!=Q1)continue}else if(s.Af()!=(ea(),hc)&&s.Af()!=yc)continue;switch(r=l(l(o.md(),42).b,86),g=l(l(o.md(),42).a,194),n=g.c,s.Af().g){case 2:r.g.c=e.e.a,r.g.b=b.Math.max(1,r.g.b+n);break;case 1:r.g.c=r.g.c+n,r.g.b=b.Math.max(1,r.g.b-n);break;case 4:r.g.d=e.e.b,r.g.a=b.Math.max(1,r.g.a+n);break;case 3:r.g.d=r.g.d+n,r.g.a=b.Math.max(1,r.g.a-n)}}}function BLn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J;for(g=We(Ur,fi,28,t.b.c.length,15,1),T=We(E1e,it,273,t.b.c.length,0,1),w=We(kg,S2,10,t.b.c.length,0,1),L=e.a,F=0,z=L.length;F0&&w[r]&&(V=z5(e.b,w[r],s)),J=b.Math.max(J,s.c.c.b+V);for(o=new K(C.e);o.a1)throw ue(new Wn(oB));w||(o=cg(t,r.Kc().Pb()),f.Fc(o))}return J7e(e,w9e(e,t,n),f)}function XV(e,t,n){var r,s,o,f,g,w,T,C;if(dp(e.e,t))w=(Ro(),l(t,69).xk()?new uH(t,e):new AO(t,e)),MV(w.c,w.b),R_(w,l(n,16));else{for(C=Wu(e.e.Dh(),t),r=l(e.g,124),f=0;f"}w!=null&&(t.a+=""+w)}else e.e?(g=e.e.zb,g!=null&&(t.a+=""+g)):(t.a+="?",e.b?(t.a+=" super ",Ole(e.b,t)):e.f&&(t.a+=" extends ",Ole(e.f,t)))}function qLn(e){e.b=null,e.a=null,e.o=null,e.q=null,e.v=null,e.w=null,e.B=null,e.p=null,e.Q=null,e.R=null,e.S=null,e.T=null,e.U=null,e.V=null,e.W=null,e.bb=null,e.eb=null,e.ab=null,e.H=null,e.db=null,e.c=null,e.d=null,e.f=null,e.n=null,e.r=null,e.s=null,e.u=null,e.G=null,e.J=null,e.e=null,e.j=null,e.i=null,e.g=null,e.k=null,e.t=null,e.F=null,e.I=null,e.L=null,e.M=null,e.O=null,e.P=null,e.$=null,e.N=null,e.Z=null,e.cb=null,e.K=null,e.D=null,e.A=null,e.C=null,e._=null,e.fb=null,e.X=null,e.Y=null,e.gb=!1,e.hb=!1}function HLn(e){var t,n,r,s;if(r=Vle((!e.c&&(e.c=iN(tu(e.f))),e.c),0),e.e==0||e.a==0&&e.f!=-1&&e.e<0)return r;if(t=R7e(e)<0?1:0,n=e.e,s=(r.length+1+b.Math.abs(da(e.e)),new A5),t==1&&(s.a+="-"),e.e>0)if(n-=r.length-t,n>=0){for(s.a+="0.";n>vv.length;n-=vv.length)_st(s,vv);hit(s,vv,da(n)),li(s,(Yn(t,r.length+1),r.substr(t)))}else n=t-n,li(s,ef(r,t,da(n))),s.a+=".",li(s,F5e(r,da(n)));else{for(li(s,(Yn(t,r.length+1),r.substr(t)));n<-vv.length;n+=vv.length)_st(s,vv);hit(s,vv,da(-n))}return s.a}function Nle(e){var t,n,r,s,o,f,g,w,T;return!(e.k!=(Jn(),Bs)||e.j.c.length<=1||(o=l(Q(e,(Nt(),Ds)),101),o==(Pa(),Au))||(s=(jy(),(e.q?e.q:(Cn(),Cn(),yg))._b(x3)?r=l(Q(e,x3),203):r=l(Q(Ja(e),tM),203),r),s==NW)||!(s==W6||s==K6)&&(f=ze(Ge(Ry(e,nM))),t=l(Q(e,PB),140),!t&&(t=new y4e(f,f,f,f)),T=Fc(e,(_t(),Zn)),w=t.d+t.a+(T.gc()-1)*f,w>e.o.b||(n=Fc(e,sr),g=t.d+t.a+(n.gc()-1)*f,g>e.o.b)))}function ULn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te;t.Ug("Orthogonal edge routing",1),T=ze(Ge(Q(e,(Nt(),G6)))),n=ze(Ge(Q(e,U6))),r=ze(Ge(Q(e,Sv))),F=new roe(0,n),te=0,f=new Ua(e.b,0),g=null,C=null,w=null,L=null;do C=f.b0?(z=(V-1)*n,g&&(z+=r),C&&(z+=r),zt||Ft(Pt(at(w,(z1(),WB)))))&&(s=0,o+=C.b+n,qn(L.c,C),C=new p6e(o,n),r=new Bce(0,C.f,C,n),TU(C,r),s=0),r.b.c.length==0||!Ft(Pt(at(ds(w),(z1(),Cge))))&&(w.f>=r.o&&w.f<=r.f||r.a*.5<=w.f&&r.a*1.5>=w.f)?R8e(r,w):(f=new Bce(r.s+r.r+n,C.f,C,n),TU(C,f),R8e(f,w)),s=w.i+w.g;return qn(L.c,C),L}function tL(e){var t,n,r,s;if(!(e.b==null||e.b.length<=2)&&!e.a){for(t=0,s=0;s=e.b[s+1])s+=2;else if(n0)for(r=new Ml(l($i(e.a,o),21)),Cn(),Gs(r,new eO(t)),s=new Ua(o.b,0);s.b0&&r>=-6?r>=0?DO(o,n-da(e.e),String.fromCharCode(46)):(Cce(o,t-1,t-1,"0."),DO(o,t+1,If(vv,0,-da(r)-1))):(n-t>=1&&(DO(o,t,String.fromCharCode(46)),++n),DO(o,n,String.fromCharCode(69)),r>0&&DO(o,++n,String.fromCharCode(43)),DO(o,++n,""+X_(tu(r)))),e.g=o.a,e.g))}function eMn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At;r=ze(Ge(Q(t,(Nt(),hDe)))),Je=l(Q(t,rM),17).a,F=4,s=3,ot=20/Je,z=!1,w=0,f=Ni;do{for(o=w!=1,L=w!=0,At=0,te=e.a,Ee=0,$e=te.length;Ee<$e;++Ee)V=te[Ee],V.f=null,zDn(e,V,o,L,r),At+=b.Math.abs(V.a);do g=AAn(e,t);while(g);for(J=e.a,fe=0,Me=J.length;feJe)?(w=2,f=Ni):w==0?(w=1,f=At):(w=0,f=At)):(z=At>=f||f-At0?1:bw(isNaN(r),isNaN(0)))>=0^(h0(Nd),(b.Math.abs(g)<=Nd||g==0||isNaN(g)&&isNaN(0)?0:g<0?-1:g>0?1:bw(isNaN(g),isNaN(0)))>=0)?b.Math.max(g,r):(h0(Nd),(b.Math.abs(r)<=Nd||r==0||isNaN(r)&&isNaN(0)?0:r<0?-1:r>0?1:bw(isNaN(r),isNaN(0)))>0?b.Math.sqrt(g*g+r*r):-b.Math.sqrt(g*g+r*r))}function sv(e,t){var n,r,s,o,f,g;if(t){if(!e.a&&(e.a=new Gz),e.e==2){Vz(e.a,t);return}if(t.e==1){for(s=0;s=Lo?Jo(n,F8e(r)):Kk(n,r&ta),f=new koe(10,null,0),Rgn(e.a,f,g-1)):(n=(f.Mm().length+o,new f_),Jo(n,f.Mm())),t.e==0?(r=t.Km(),r>=Lo?Jo(n,F8e(r)):Kk(n,r&ta)):Jo(n,t.Mm()),l(f,530).b=n.a}}function rMn(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te;if(!n.dc()){for(g=0,F=0,r=n.Kc(),V=l(r.Pb(),17).a;g1&&(w=T.Hg(w,e.a,g));return w.c.length==1?l(Rt(w,w.c.length-1),238):w.c.length==2?GLn((Sn(0,w.c.length),l(w.c[0],238)),(Sn(1,w.c.length),l(w.c[1],238)),f,o):null}function oMn(e,t,n){var r,s,o,f,g,w,T;for(n.Ug("Find roots",1),e.a.c.length=0,s=Fr(t.b,0);s.b!=s.d.c;)r=l(Pr(s),40),r.b.b==0&&(rt(r,(Zi(),Zb),(Hn(),!0)),wt(e.a,r));switch(e.a.c.length){case 0:o=new Pce(0,t,"DUMMY_ROOT"),rt(o,(Zi(),Zb),(Hn(),!0)),rt(o,Wde,!0),ci(t.b,o);break;case 1:break;default:for(f=new Pce(0,t,RG),w=new K(e.a);w.a=b.Math.abs(r.b)?(r.b=0,o.d+o.a>f.d&&o.df.c&&o.c0){if(t=new vye(e.i,e.g),n=e.i,o=n<100?null:new hb(n),e.Tj())for(r=0;r0){for(g=e.g,T=e.i,lA(e),o=T<100?null:new hb(T),r=0;r>13|(e.m&15)<<9,s=e.m>>4&8191,o=e.m>>17|(e.h&255)<<5,f=(e.h&1048320)>>8,g=t.l&8191,w=t.l>>13|(t.m&15)<<9,T=t.m>>4&8191,C=t.m>>17|(t.h&255)<<5,L=(t.h&1048320)>>8,ln=n*g,cn=r*g,Fn=s*g,$n=o*g,cr=f*g,w!=0&&(cn+=n*w,Fn+=r*w,$n+=s*w,cr+=o*w),T!=0&&(Fn+=n*T,$n+=r*T,cr+=s*T),C!=0&&($n+=n*C,cr+=r*C),L!=0&&(cr+=n*L),z=ln&Ql,V=(cn&511)<<13,F=z+V,te=ln>>22,fe=cn>>9,Ee=(Fn&262143)<<4,Me=($n&31)<<17,J=te+fe+Ee+Me,Je=Fn>>18,ot=$n>>5,At=(cr&4095)<<8,$e=Je+ot+At,J+=F>>22,F&=Ql,$e+=J>>22,J&=Ql,$e&=pp,qu(F,J,$e)}function Hvt(e){var t,n,r,s,o,f,g;if(g=l(Rt(e.j,0),12),g.g.c.length!=0&&g.e.c.length!=0)throw ue(new ic("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(g.g.c.length!=0){for(o=gs,n=new K(g.g);n.a4)if(e.fk(t)){if(e.al()){if(s=l(t,54),r=s.Eh(),w=r==e.e&&(e.ml()?s.yh(s.Fh(),e.il())==e.jl():-1-s.Fh()==e.Lj()),e.nl()&&!w&&!r&&s.Jh()){for(o=0;o0&&Upt(e,g,L);for(s=new K(L);s.ae.d[f.p]&&(n+=M6e(e.b,o)*l(w.b,17).a,Tb(e.a,bt(o)));for(;!h_(e.a);)u7e(e.b,l(Q8(e.a),17).a)}return n}function fMn(e,t){var n,r,s,o,f,g,w,T,C,L;if(C=l(Q(e,(ft(),Xc)),64),r=l(Rt(e.j,0),12),C==(_t(),Xn)?ga(r,Mr):C==Mr&&ga(r,Xn),l(Q(t,(Nt(),Ev)),181).Hc((gh(),Ov))){if(w=ze(Ge(Q(e,WE))),T=ze(Ge(Q(e,YE))),f=ze(Ge(Q(e,T4))),g=l(Q(t,x4),21),g.Hc((Pl(),kp)))for(n=T,L=e.o.a/2-r.n.a,o=new K(r.f);o.a0&&(T=e.n.a/o);break;case 2:case 4:s=e.i.o.b,s>0&&(T=e.n.b/s)}rt(e,(ft(),m3),T)}if(w=e.o,f=e.a,r)f.a=r.a,f.b=r.b,e.d=!0;else if(t!=Z1&&t!=rm&&g!=jc)switch(g.g){case 1:f.a=w.a/2;break;case 2:f.a=w.a,f.b=w.b/2;break;case 3:f.a=w.a/2,f.b=w.b;break;case 4:f.b=w.b/2}else f.a=w.a/2,f.b=w.b/2}function nL(e){var t,n,r,s,o,f,g,w,T,C;if(e.Pj())if(C=e.Ej(),w=e.Qj(),C>0)if(t=new q7e(e.pj()),n=C,o=n<100?null:new hb(n),BO(e,n,t.g),s=n==1?e.Ij(4,Oe(t,0),null,0,w):e.Ij(6,t,null,-1,w),e.Mj()){for(r=new ar(t);r.e!=r.i.gc();)o=e.Oj(dr(r),o);o?(o.nj(s),o.oj()):e.Jj(s)}else o?(o.nj(s),o.oj()):e.Jj(s);else BO(e,e.Ej(),e.Fj()),e.Jj(e.Ij(6,(Cn(),Co),null,-1,w));else if(e.Mj())if(C=e.Ej(),C>0){for(g=e.Fj(),T=C,BO(e,C,g),o=T<100?null:new hb(T),r=0;r1&&vl(f)*hh(f)/2>g[0]){for(o=0;og[o];)++o;V=new c2(J,0,o+1),L=new vU(V),C=vl(f)/hh(f),w=Hle(L,t,new L8,n,r,s,C),Pi(W0(L.e),w),W8(qT(F,L),cE),z=new c2(J,o+1,J.c.length),Sxe(F,z),J.c.length=0,T=0,Ust(g,g.length,0)}else te=F.b.c.length==0?null:Rt(F.b,0),te!=null&&mce(F,0),T>0&&(g[T]=g[T-1]),g[T]+=vl(f)*hh(f),++T,qn(J.c,f);return J}function vMn(e,t){var n,r,s,o;n=t.b,o=new Ml(n.j),s=0,r=n.j,r.c.length=0,Ew(l(Ym(e.b,(_t(),Xn),($w(),g3)),15),n),s=YN(o,s,new Zv,r),Ew(l(Ym(e.b,Xn,Kb),15),n),s=YN(o,s,new Mee,r),Ew(l(Ym(e.b,Xn,d3),15),n),Ew(l(Ym(e.b,sr,g3),15),n),Ew(l(Ym(e.b,sr,Kb),15),n),s=YN(o,s,new Kj,r),Ew(l(Ym(e.b,sr,d3),15),n),Ew(l(Ym(e.b,Mr,g3),15),n),s=YN(o,s,new Wj,r),Ew(l(Ym(e.b,Mr,Kb),15),n),s=YN(o,s,new Yj,r),Ew(l(Ym(e.b,Mr,d3),15),n),Ew(l(Ym(e.b,Zn,g3),15),n),s=YN(o,s,new Hj,r),Ew(l(Ym(e.b,Zn,Kb),15),n),Ew(l(Ym(e.b,Zn,d3),15),n)}function wMn(e,t,n){var r,s,o,f,g,w,T,C,L,F,z;for(g=new K(t);g.a.5?fe-=f*2*(V-.5):V<.5&&(fe+=o*2*(.5-V)),s=g.d.b,fete.a-J-C&&(fe=te.a-J-C),g.n.a=t+fe}}function TMn(e){var t,n,r,s,o;if(r=l(Q(e,(Nt(),Qu)),171),r==(lf(),Yb)){for(n=new lr(fr(Ea(e).a.Kc(),new j));Rr(n);)if(t=l(yr(n),18),!ilt(t))throw ue(new Zp(Zhe+QN(e)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(r==b4){for(o=new lr(fr(qs(e).a.Kc(),new j));Rr(o);)if(s=l(yr(o),18),!ilt(s))throw ue(new Zp(Zhe+QN(e)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}}function EP(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V;if(e.e&&e.c.c>19&&(t=TT(t),w=!w),f=oCn(t),o=!1,s=!1,r=!1,e.h==NP&&e.m==0&&e.l==0)if(s=!0,o=!0,f==-1)e=Mnt((aT(),f_e)),r=!0,w=!w;else return g=Y9e(e,f),w&&Nce(g),n&&(Hb=qu(0,0,0)),g;else e.h>>19&&(o=!0,e=TT(e),r=!0,w=!w);return f!=-1?Byn(e,f,w,o,n):Nxe(e,t)<0?(n&&(o?Hb=TT(e):Hb=qu(e.l,e.m,e.h)),qu(0,0,0)):sAn(r?e:qu(e.l,e.m,e.h),t,w,o,s,n)}function Rle(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V;if(f=e.e,w=t.e,f==0)return t;if(w==0)return e;if(o=e.d,g=t.d,o+g==2)return n=xa(e.a[0],Uo),r=xa(t.a[0],Uo),f==w?(C=fo(n,r),V=Yr(C),z=Yr(vb(C,32)),z==0?new tp(f,V):new $m(f,2,he(le(Ur,1),fi,28,15,[V,z]))):(Cd(),Pq(f<0?Df(r,n):Df(n,r),0)?Db(f<0?Df(r,n):Df(n,r)):Z_(Db(f2(f<0?Df(r,n):Df(n,r)))));if(f==w)F=f,L=o>=g?Koe(e.a,o,t.a,g):Koe(t.a,g,e.a,o);else{if(s=o!=g?o>g?1:-1:f8e(e.a,t.a,o),s==0)return Cd(),FL;s==1?(F=f,L=Voe(e.a,o,t.a,g)):(F=w,L=Voe(t.a,g,e.a,o))}return T=new $m(F,L.length,L),sA(T),T}function CMn(e,t){var n,r,s,o,f,g,w;if(!(e.g>t.f||t.g>e.f)){for(n=0,r=0,f=e.w.a.ec().Kc();f.Ob();)s=l(f.Pb(),12),Gce(Bc(he(le(Ca,1),dt,8,0,[s.i.n,s.n,s.a])).b,t.g,t.f)&&++n;for(g=e.r.a.ec().Kc();g.Ob();)s=l(g.Pb(),12),Gce(Bc(he(le(Ca,1),dt,8,0,[s.i.n,s.n,s.a])).b,t.g,t.f)&&--n;for(w=t.w.a.ec().Kc();w.Ob();)s=l(w.Pb(),12),Gce(Bc(he(le(Ca,1),dt,8,0,[s.i.n,s.n,s.a])).b,e.g,e.f)&&++r;for(o=t.r.a.ec().Kc();o.Ob();)s=l(o.Pb(),12),Gce(Bc(he(le(Ca,1),dt,8,0,[s.i.n,s.n,s.a])).b,e.g,e.f)&&--r;n=0)return n;switch(Lw(ac(e,n))){case 2:{if(wn("",b2(e,n.qk()).xe())){if(w=QO(ac(e,n)),g=Xk(ac(e,n)),C=Z9e(e,t,w,g),C)return C;for(s=Lke(e,t),f=0,L=s.gc();f1)throw ue(new Wn(oB));for(C=Wu(e.e.Dh(),t),r=l(e.g,124),f=0;f1,T=new N1(F.b);Oc(T.a)||Oc(T.b);)w=l(Oc(T.a)?re(T.a):re(T.b),18),L=w.c==F?w.d:w.c,b.Math.abs(Bc(he(le(Ca,1),dt,8,0,[L.i.n,L.n,L.a])).b-f.b)>1&&fSn(e,w,f,o,F)}}function DMn(e){var t,n,r,s,o,f;if(s=new Ua(e.e,0),r=new Ua(e.a,0),e.d)for(n=0;nOfe;){for(o=t,f=0;b.Math.abs(t-o)0),s.a.Xb(s.c=--s.b),GAn(e,e.b-f,o,r,s),br(s.b0),r.a.Xb(r.c=--r.b)}if(!e.d)for(n=0;n0?(e.f[C.p]=z/(C.e.c.length+C.g.c.length),e.c=b.Math.min(e.c,e.f[C.p]),e.b=b.Math.max(e.b,e.f[C.p])):g&&(e.f[C.p]=z)}}function OMn(e){e.b=null,e.bb=null,e.fb=null,e.qb=null,e.a=null,e.c=null,e.d=null,e.e=null,e.f=null,e.n=null,e.M=null,e.L=null,e.Q=null,e.R=null,e.K=null,e.db=null,e.eb=null,e.g=null,e.i=null,e.j=null,e.k=null,e.gb=null,e.o=null,e.p=null,e.q=null,e.r=null,e.$=null,e.ib=null,e.S=null,e.T=null,e.t=null,e.s=null,e.u=null,e.v=null,e.w=null,e.B=null,e.A=null,e.C=null,e.D=null,e.F=null,e.G=null,e.H=null,e.I=null,e.J=null,e.P=null,e.Z=null,e.U=null,e.V=null,e.W=null,e.X=null,e.Y=null,e._=null,e.ab=null,e.cb=null,e.hb=null,e.nb=null,e.lb=null,e.mb=null,e.ob=null,e.pb=null,e.jb=null,e.kb=null,e.N=!1,e.O=!1}function NMn(e,t,n){var r,s,o,f;for(n.Ug("Graph transformation ("+e.a+")",1),f=Nw(t.a),o=new K(t.b);o.a=g.b.c)&&(g.b=t),(!g.c||t.c<=g.c.c)&&(g.d=g.c,g.c=t),(!g.e||t.d>=g.e.d)&&(g.e=t),(!g.f||t.d<=g.f.d)&&(g.f=t);return r=new uV((xT(),f3)),sN(e,axt,new Ll(he(le(yB,1),jn,382,0,[r]))),f=new uV(l4),sN(e,sxt,new Ll(he(le(yB,1),jn,382,0,[f]))),s=new uV(u4),sN(e,ixt,new Ll(he(le(yB,1),jn,382,0,[s]))),o=new uV(I6),sN(e,rxt,new Ll(he(le(yB,1),jn,382,0,[o]))),ule(r.c,f3),ule(s.c,u4),ule(o.c,I6),ule(f.c,l4),g.a.c.length=0,aa(g.a,r.c),aa(g.a,uf(s.c)),aa(g.a,o.c),aa(g.a,uf(f.c)),g}function FMn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V;for(t.Ug(i4t,1),z=ze(Ge(at(e,(fg(),_4)))),f=ze(Ge(at(e,(z1(),yM)))),g=l(at(e,wM),107),B7e((!e.a&&(e.a=new nt(Li,e,10,11)),e.a)),C=jvt((!e.a&&(e.a=new nt(Li,e,10,11)),e.a),z,f),!e.a&&(e.a=new nt(Li,e,10,11)),T=new K(C);T.a0&&(e.a=w+(z-1)*o,t.c.b+=e.a,t.f.b+=e.a)),V.a.gc()!=0&&(F=new roe(1,o),z=nTe(F,t,V,J,t.f.b+w-t.c.b),z>0&&(t.f.b+=w+(z-1)*o))}function Gvt(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e;for(C=ze(Ge(Q(e,(Nt(),T3)))),r=ze(Ge(Q(e,xDe))),F=new DI,rt(F,T3,C+r),T=t,fe=T.d,J=T.c.i,Ee=T.d.i,te=Cye(J.c),Me=Cye(Ee.c),s=new mt,L=te;L<=Me;L++)g=new hp(e),x(g,(Jn(),Aa)),rt(g,(ft(),zi),T),rt(g,Ds,(Pa(),Au)),rt(g,LW,F),z=l(Rt(e.b,L),30),L==te?$y(g,z.a.c.length-n,z):Ha(g,z),$e=ze(Ge(Q(T,M2))),$e<0&&($e=0,rt(T,M2,$e)),g.o.b=$e,V=b.Math.floor($e/2),f=new du,ga(f,(_t(),Zn)),Nc(f,g),f.n.b=V,w=new du,ga(w,sr),Nc(w,g),w.n.b=V,Na(T,f),o=new Dw,mc(o,T),rt(o,lc,null),ho(o,w),Na(o,fe),S8n(g,T,o),qn(s.c,o),T=o;return s}function jle(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me;for(w=l(k2(e,(_t(),Zn)).Kc().Pb(),12).e,z=l(k2(e,sr).Kc().Pb(),12).g,g=w.c.length,Me=I1(l(Rt(e.j,0),12));g-- >0;){for(J=(Sn(0,w.c.length),l(w.c[0],18)),s=(Sn(0,z.c.length),l(z.c[0],18)),Ee=s.d.e,o=bc(Ee,s,0),omn(J,s.d,o),ho(s,null),Na(s,null),V=J.a,t&&ci(V,new xo(Me)),r=Fr(s.a,0);r.b!=r.d.c;)n=l(Pr(r),8),ci(V,new xo(n));for(fe=J.b,F=new K(s.b);F.af)&&sa(e.b,l(te.b,18));++g}o=f}}}function Zke(e,t){var n;if(t==null||wn(t,cl)||t.length==0&&e.k!=(T2(),n9))return null;switch(e.k.g){case 1:return iV(t,xE)?(Hn(),AE):iV(t,Qfe)?(Hn(),Ub):null;case 2:try{return bt(Oh(t,ao,Ni))}catch(r){if(r=ms(r),De(r,130))return null;throw ue(r)}case 4:try{return qy(t)}catch(r){if(r=ms(r),De(r,130))return null;throw ue(r)}case 3:return t;case 5:return d1t(e),S2t(e,t);case 6:return d1t(e),REn(e,e.a,t);case 7:try{return n=YTn(e),n.cg(t),n}catch(r){if(r=ms(r),De(r,33))return null;throw ue(r)}default:throw ue(new ic("Invalid type set for this layout option."))}}function eTe(e){var t;switch(e.d){case 1:{if(e.Sj())return e.o!=-2;break}case 2:{if(e.Sj())return e.o==-2;break}case 3:case 5:case 4:case 6:case 7:return e.o>-2;default:return!1}switch(t=e.Rj(),e.p){case 0:return t!=null&&Ft(Pt(t))!=O_(e.k,0);case 1:return t!=null&&l(t,222).a!=Yr(e.k)<<24>>24;case 2:return t!=null&&l(t,180).a!=(Yr(e.k)&ta);case 6:return t!=null&&O_(l(t,168).a,e.k);case 5:return t!=null&&l(t,17).a!=Yr(e.k);case 7:return t!=null&&l(t,191).a!=Yr(e.k)<<16>>16;case 3:return t!=null&&ze(Ge(t))!=e.j;case 4:return t!=null&&l(t,161).a!=e.j;default:return t==null?e.n!=null:!Fi(t,e.n)}}function CP(e,t,n){var r,s,o,f;return e.ol()&&e.nl()&&(f=Qae(e,l(n,58)),qe(f)!==qe(n))?(e.xj(t),e.Dj(t,Xlt(e,t,f)),e.al()&&(o=(s=l(n,54),e.ml()?e.kl()?s.Th(e.b,jo(l(Mn(il(e.b),e.Lj()),19)).n,l(Mn(il(e.b),e.Lj()).Hk(),29).kk(),null):s.Th(e.b,vs(s.Dh(),jo(l(Mn(il(e.b),e.Lj()),19))),null,null):s.Th(e.b,-1-e.Lj(),null,null)),!l(f,54).Ph()&&(o=(r=l(f,54),e.ml()?e.kl()?r.Rh(e.b,jo(l(Mn(il(e.b),e.Lj()),19)).n,l(Mn(il(e.b),e.Lj()).Hk(),29).kk(),o):r.Rh(e.b,vs(r.Dh(),jo(l(Mn(il(e.b),e.Lj()),19))),null,o):r.Rh(e.b,-1-e.Lj(),null,o))),o&&o.oj()),ch(e.b)&&e.Jj(e.Ij(9,n,f,t,!1)),f):n}function Kvt(e){var t,n,r,s,o,f,g,w,T,C;for(r=new mt,f=new K(e.e.a);f.a0&&(f=b.Math.max(f,Jft(e.C.b+r.d.b,s))),C=r,L=s,F=o;e.C&&e.C.c>0&&(z=F+e.C.c,T&&(z+=C.d.c),f=b.Math.max(f,(A1(),h0(H1),b.Math.abs(L-1)<=H1||L==1||isNaN(L)&&isNaN(1)?0:z/(1-L)))),n.n.b=0,n.a.a=f}function Yvt(e,t){var n,r,s,o,f,g,w,T,C,L,F,z;if(n=l(Zo(e.b,t),127),w=l(l($i(e.r,t),21),87),w.dc()){n.n.d=0,n.n.a=0;return}for(T=e.u.Hc((Pl(),kp)),f=0,e.A.Hc((gh(),Ov))&&Emt(e,t),g=w.Kc(),C=null,F=0,L=0;g.Ob();)r=l(g.Pb(),117),o=ze(Ge(r.b.of((Wq(),kK)))),s=r.b.Mf().b,C?(z=L+C.d.a+e.w+r.d.d,f=b.Math.max(f,(A1(),h0(H1),b.Math.abs(F-o)<=H1||F==o||isNaN(F)&&isNaN(o)?0:z/(o-F)))):e.C&&e.C.d>0&&(f=b.Math.max(f,Jft(e.C.d+r.d.d,o))),C=r,F=o,L=s;e.C&&e.C.a>0&&(z=L+e.C.a,T&&(z+=C.d.a),f=b.Math.max(f,(A1(),h0(H1),b.Math.abs(F-1)<=H1||F==1||isNaN(F)&&isNaN(1)?0:z/(1-F)))),n.n.d=0,n.a.b=f}function $Mn(e,t,n,r,s,o,f,g){var w,T,C,L,F,z,V,J,te,fe;if(V=!1,T=oke(n.q,t.f+t.b-n.q.f),z=r.f>t.b&&g,fe=s-(n.q.e+T-f),L=(w=eL(r,fe,!1),w.a),z&&L>r.f)return!1;if(z){for(F=0,te=new K(t.d);te.a=(Sn(o,e.c.length),l(e.c[o],186)).e,!z&&L>t.b&&!C)?!1:((C||z||L<=t.b)&&(C&&L>t.b?(n.d=L,gN(n,Ppt(n,L))):(Zgt(n.q,T),n.c=!0),gN(r,s-(n.s+n.r)),XN(r,n.q.e+n.q.d,t.f),TU(t,r),e.c.length>o&&(ZN((Sn(o,e.c.length),l(e.c[o],186)),r),(Sn(o,e.c.length),l(e.c[o],186)).a.c.length==0&&l2(e,o)),V=!0),V)}function Xvt(e,t,n){var r,s,o,f,g,w;for(this.g=e,g=t.d.length,w=n.d.length,this.d=We(kg,S2,10,g+w,0,1),f=0;f0?lce(this,this.f/this.a):L1(t.g,t.d[0]).a!=null&&L1(n.g,n.d[0]).a!=null?lce(this,(ze(L1(t.g,t.d[0]).a)+ze(L1(n.g,n.d[0]).a))/2):L1(t.g,t.d[0]).a!=null?lce(this,L1(t.g,t.d[0]).a):L1(n.g,n.d[0]).a!=null&&lce(this,L1(n.g,n.d[0]).a)}function zMn(e,t){var n,r,s,o,f,g,w,T,C,L;for(e.a=new Lat(Tyn(MM)),r=new K(t.a);r.a=1&&(te-f>0&&L>=0?(w.n.a+=J,w.n.b+=o*f):te-f<0&&C>=0&&(w.n.a+=J*te,w.n.b+=o));e.o.a=t.a,e.o.b=t.b,rt(e,(Nt(),Ev),(gh(),r=l(G0(FM),9),new Jh(r,l(o0(r,r.length),9),0)))}function UMn(e,t,n,r,s,o){var f;if(!(t==null||!rue(t,qPe,HPe)))throw ue(new Wn("invalid scheme: "+t));if(!e&&!(n!=null&&pd(n,ol(35))==-1&&n.length>0&&(Yn(0,n.length),n.charCodeAt(0)!=47)))throw ue(new Wn("invalid opaquePart: "+n));if(e&&!(t!=null&&lO(MY,t.toLowerCase()))&&!(n==null||!rue(n,zM,qM)))throw ue(new Wn(I5t+n));if(e&&t!=null&&lO(MY,t.toLowerCase())&&!Txn(n))throw ue(new Wn(I5t+n));if(!L5n(r))throw ue(new Wn("invalid device: "+r));if(!d4n(s))throw f=s==null?"invalid segments: null":"invalid segment: "+u4n(s),ue(new Wn(f));if(!(o==null||pd(o,ol(35))==-1))throw ue(new Wn("invalid query: "+o))}function VMn(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe;if(n.Ug("Network simplex layering",1),e.b=t,fe=l(Q(t,(Nt(),rM)),17).a*4,te=e.b.a,te.c.length<1){n.Vg();return}for(o=H_n(e,te),J=null,s=Fr(o,0);s.b!=s.d.c;){for(r=l(Pr(s),15),g=fe*da(b.Math.sqrt(r.gc())),f=iAn(r),xle(y3e(Vun(x3e(Mae(f),g),J),!0),n.eh(1)),F=e.b.b,V=new K(f.a);V.a1)for(J=We(Ur,fi,28,e.b.b.c.length,15,1),L=0,T=new K(e.b.b);T.a0){sV(e,n,0),n.a+=String.fromCharCode(r),s=d6n(t,o),sV(e,n,s),o+=s-1;continue}r==39?o+10&&V.a<=0){w.c.length=0,qn(w.c,V);break}z=V.i-V.d,z>=g&&(z>g&&(w.c.length=0,g=z),qn(w.c,V))}w.c.length!=0&&(f=l(Rt(w,dV(s,w.c.length)),118),Me.a.Bc(f)!=null,f.g=C++,qke(f,t,n,r),w.c.length=0)}for(te=e.c.length+1,F=new K(e);F.aoa||t.o==_v&&C=g&&s<=w)g<=s&&o<=w?(n[C++]=s,n[C++]=o,r+=2):g<=s?(n[C++]=s,n[C++]=w,e.b[r]=w+1,f+=2):o<=w?(n[C++]=g,n[C++]=o,r+=2):(n[C++]=g,n[C++]=w,e.b[r]=w+1);else if(wFb)&&g<10);T3e(e.c,new X7),ewt(e),$gn(e.c),PMn(e.f)}function eDn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J;for(n=l(Q(e,(Nt(),Ds)),101),f=e.f,o=e.d,g=f.a+o.b+o.c,w=0-o.d-e.c.b,C=f.b+o.d+o.a-e.c.b,T=new mt,L=new mt,s=new K(t);s.a=2){for(w=Fr(n,0),f=l(Pr(w),8),g=l(Pr(w),8);g.a0&&NN(T,!0,(ea(),yc)),g.k==(Jn(),Ks)&&Rat(T),Ti(e.f,g,t)}}function rDn(e){var t,n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e;for(s=l(Q(e,(Zi(),pM)),27),T=Ni,C=Ni,g=ao,w=ao,Me=Fr(e.b,0);Me.b!=Me.d.c;)fe=l(Pr(Me),40),z=fe.e,V=fe.f,T=b.Math.min(T,z.a-V.a/2),C=b.Math.min(C,z.b-V.b/2),g=b.Math.max(g,z.a+V.a/2),w=b.Math.max(w,z.b+V.b/2);for(F=l(at(s,(Vc(),IIe)),107),Ee=Fr(e.b,0);Ee.b!=Ee.d.c;)fe=l(Pr(Ee),40),L=Q(fe,pM),De(L,207)&&(o=l(L,27),Xh(o,fe.e.a,fe.e.b),gP(o,fe));for(te=Fr(e.a,0);te.b!=te.d.c;)J=l(Pr(te),65),r=l(Q(J,pM),74),r&&(t=J.a,n=f6(r,!0,!0),xP(t,n));$e=g-T+(F.b+F.c),f=w-C+(F.d+F.a),Ft(Pt(at(s,(bi(),A4))))||Zw(s,$e,f,!1,!1),Vi(s,r7,$e-(F.b+F.c)),Vi(s,n7,f-(F.d+F.a))}function nwt(e,t){var n,r,s,o,f,g,w,T,C,L;for(w=!0,s=0,T=e.g[t.p],C=t.o.b+e.o,n=e.d[t.p][2],nf(e.b,T,bt(l(Rt(e.b,T),17).a-1+n)),nf(e.c,T,ze(Ge(Rt(e.c,T)))-C+n*e.f),++T,T>=e.j?(++e.j,wt(e.b,bt(1)),wt(e.c,C)):(r=e.d[t.p][1],nf(e.b,T,bt(l(Rt(e.b,T),17).a+1-r)),nf(e.c,T,ze(Ge(Rt(e.c,T)))+C-r*e.f)),(e.r==(Nf(),BB)&&(l(Rt(e.b,T),17).a>e.k||l(Rt(e.b,T-1),17).a>e.k)||e.r==FB&&(ze(Ge(Rt(e.c,T)))>e.n||ze(Ge(Rt(e.c,T-1)))>e.n))&&(w=!1),f=new lr(fr(Ea(t).a.Kc(),new j));Rr(f);)o=l(yr(f),18),g=o.c.i,e.g[g.p]==T&&(L=nwt(e,g),s=s+l(L.a,17).a,w=w&&Ft(Pt(L.b)));return e.g[t.p]=T,s=s+e.d[t.p][0],new fa(bt(s),(Hn(),!!w))}function rwt(e,t){var n,r,s,o,f;n=ze(Ge(Q(t,(Nt(),y0)))),n<2&&rt(t,y0,2),r=l(Q(t,Rh),88),r==(ea(),J1)&&rt(t,Rh,WU(t)),s=l(Q(t,yTt),17),s.a==0?rt(t,(ft(),Qx),new sue):rt(t,(ft(),Qx),new QH(s.a)),o=Pt(Q(t,eM)),o==null&&rt(t,eM,(Hn(),qe(Q(t,yp))===qe((cp(),aC)))),Os(new vn(null,new kn(t.a,16)),new Qp(e)),Os(Pc(new vn(null,new kn(t.b,16)),new h5),new r_(e)),f=new Qvt(t),rt(t,(ft(),q6),f),XO(e.a),Y0(e.a,(so(),w0),l(Q(t,xv),188)),Y0(e.a,xg,l(Q(t,Tv),188)),Y0(e.a,pu,l(Q(t,ZL),188)),Y0(e.a,Cu,l(Q(t,_W),188)),Y0(e.a,wc,ryn(l(Q(t,yp),223))),_ye(e.a,JIn(t)),rt(t,ode,EP(e.a,t))}function nTe(e,t,n,r,s){var o,f,g,w,T,C,L,F,z,V,J,te,fe;for(L=new Nr,f=new mt,n2t(e,n,e.d.Ag(),f,L),n2t(e,r,e.d.Bg(),f,L),e.b=.2*(J=obt(Pc(new vn(null,new kn(f,16)),new Rte)),te=obt(Pc(new vn(null,new kn(f,16)),new jte)),b.Math.min(J,te)),o=0,g=0;g=2&&(fe=Sbt(f,!0,F),!e.e&&(e.e=new PXe(e)),u6n(e.e,fe,f,e.b)),upt(f,F),uDn(f),z=-1,C=new K(f);C.ag)}function iwt(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee;for(T=gs,C=gs,g=oa,w=oa,F=new K(t.i);F.a-1){for(s=Fr(g,0);s.b!=s.d.c;)r=l(Pr(s),131),r.v=f;for(;g.b!=0;)for(r=l(Bue(g,0),131),n=new K(r.i);n.a-1){for(o=new K(g);o.a0)&&(Y(w,b.Math.min(w.o,s.o-1)),q(w,w.i-1),w.i==0&&qn(g.c,w))}}function awt(e,t,n,r,s){var o,f,g,w;return w=gs,f=!1,g=Kke(e,ya(new lt(t.a,t.b),e),Pi(new lt(n.a,n.b),s),ya(new lt(r.a,r.b),n)),o=!!g&&!(b.Math.abs(g.a-e.a)<=a3&&b.Math.abs(g.b-e.b)<=a3||b.Math.abs(g.a-t.a)<=a3&&b.Math.abs(g.b-t.b)<=a3),g=Kke(e,ya(new lt(t.a,t.b),e),n,s),g&&((b.Math.abs(g.a-e.a)<=a3&&b.Math.abs(g.b-e.b)<=a3)==(b.Math.abs(g.a-t.a)<=a3&&b.Math.abs(g.b-t.b)<=a3)||o?w=b.Math.min(w,tA(ya(g,n))):f=!0),g=Kke(e,ya(new lt(t.a,t.b),e),r,s),g&&(f||(b.Math.abs(g.a-e.a)<=a3&&b.Math.abs(g.b-e.b)<=a3)==(b.Math.abs(g.a-t.a)<=a3&&b.Math.abs(g.b-t.b)<=a3)||o)&&(w=b.Math.min(w,tA(ya(g,r)))),w}function owt(e){fw(e,new iv(Jz(uw(aw(cw(ow(new x1,jb),iyt),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new y1),Yu))),pt(e,jb,fL,It(AAe)),pt(e,jb,pG,(Hn(),!0)),pt(e,jb,T6,It(H8t)),pt(e,jb,Bx,It(U8t)),pt(e,jb,Px,It(V8t)),pt(e,jb,gE,It(q8t)),pt(e,jb,dL,It(MAe)),pt(e,jb,pE,It(G8t)),pt(e,jb,ZTe,It(_Ae)),pt(e,jb,tEe,It(CAe)),pt(e,jb,nEe,It(SAe)),pt(e,jb,rEe,It(LAe)),pt(e,jb,eEe,It(DK))}function lDn(e){var t,n,r,s,o,f,g,w;for(t=null,r=new K(e);r.a0&&n.c==0&&(!t&&(t=new mt),qn(t.c,n));if(t)for(;t.c.length!=0;){if(n=l(l2(t,0),239),n.b&&n.b.c.length>0){for(o=(!n.b&&(n.b=new mt),new K(n.b));o.abc(e,n,0))return new fa(s,n)}else if(ze(L1(s.g,s.d[0]).a)>ze(L1(n.g,n.d[0]).a))return new fa(s,n)}for(g=(!n.e&&(n.e=new mt),n.e).Kc();g.Ob();)f=l(g.Pb(),239),w=(!f.b&&(f.b=new mt),f.b),Sy(0,w.c.length),k_(w.c,0,n),f.c==w.c.length&&qn(t.c,f)}return null}function hDn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe;for(t.Ug("Interactive crossing minimization",1),f=0,o=new K(e.b);o.a0&&(n+=w.n.a+w.o.a/2,++L),V=new K(w.j);V.a0&&(n/=L),fe=We(Oa,tc,28,r.a.c.length,15,1),g=0,T=new K(r.a);T.a=g&&s<=w)g<=s&&o<=w?r+=2:g<=s?(e.b[r]=w+1,f+=2):o<=w?(n[C++]=s,n[C++]=g-1,r+=2):(n[C++]=s,n[C++]=g-1,e.b[r]=w+1,f+=2);else if(w2?(C=new mt,aa(C,new c2(fe,1,fe.b)),o=Wwt(C,Me+e.a),Ee=new ale(o),mc(Ee,t),qn(n.c,Ee)):r?Ee=l(or(e.b,hg(t)),272):Ee=l(or(e.b,Ib(t)),272),w=hg(t),r&&(w=Ib(t)),f=lkn(te,w),T=Me+e.a,f.a?(T+=b.Math.abs(te.b-L.b),J=new lt(L.a,(L.b+te.b)/2)):(T+=b.Math.abs(te.a-L.a),J=new lt((L.a+te.a)/2,L.b)),r?Ti(e.d,t,new yxe(Ee,f,J,T)):Ti(e.c,t,new yxe(Ee,f,J,T)),Ti(e.b,t,Ee),V=(!t.n&&(t.n=new nt(nc,t,1,7)),t.n),z=new ar(V);z.e!=z.i.gc();)F=l(dr(z),135),s=mP(e,F,!0,0,0),qn(n.c,s)}function fDn(e){var t,n,r,s,o,f,g;if(!e.A.dc()){if(e.A.Hc((gh(),fF))&&(l(Zo(e.b,(_t(),Xn)),127).k=!0,l(Zo(e.b,Mr),127).k=!0,t=e.q!=(Pa(),_g)&&e.q!=Au,Nz(l(Zo(e.b,sr),127),t),Nz(l(Zo(e.b,Zn),127),t),Nz(e.g,t),e.A.Hc(Ov)&&(l(Zo(e.b,Xn),127).j=!0,l(Zo(e.b,Mr),127).j=!0,l(Zo(e.b,sr),127).k=!0,l(Zo(e.b,Zn),127).k=!0,e.g.k=!0)),e.A.Hc(hF))for(e.a.j=!0,e.a.k=!0,e.g.j=!0,e.g.k=!0,g=e.B.Hc((Xl(),RM)),s=gue(),o=0,f=s.length;o0),l(C.a.Xb(C.c=--C.b),18));o!=r&&C.b>0;)e.a[o.p]=!0,e.a[r.p]=!0,o=(br(C.b>0),l(C.a.Xb(C.c=--C.b),18));C.b>0&&fh(C)}}function uwt(e,t,n){var r,s,o,f,g,w,T,C,L,F,z;if(!e.b)return!1;for(f=null,F=null,w=new Xoe(null,null),s=1,w.a[1]=e.b,L=w;L.a[s];)T=s,g=F,F=L,L=L.a[s],r=e.a.Ne(t,L.d),s=r<0?0:1,r==0&&(!n.c||eu(L.e,n.d))&&(f=L),!(L&&L.b)&&!ly(L.a[s])&&(ly(L.a[1-s])?F=F.a[T]=MU(L,s):ly(L.a[1-s])||(z=F.a[1-T],z&&(!ly(z.a[1-T])&&!ly(z.a[T])?(F.b=!1,z.b=!0,L.b=!0):(o=g.a[1]==F?1:0,ly(z.a[T])?g.a[o]=jct(F,T):ly(z.a[1-T])&&(g.a[o]=MU(F,T)),L.b=g.a[o].b=!0,g.a[o].a[0].b=!1,g.a[o].a[1].b=!1))));return f&&(n.b=!0,n.d=f.e,L!=f&&(C=new Xoe(L.d,L.e),p9n(e,w,f,C),F==f&&(F=C)),F.a[F.a[1]==L?1:0]=L.a[L.a[0]?0:1],--e.c),e.b=w.a[1],e.b&&(e.b.b=!1),n.b}function pDn(e){var t,n,r,s,o,f,g,w,T,C,L,F;for(s=new K(e.a.a.b);s.a0?s-=864e5:s+=864e5,w=new h4e(fo(tu(t.q.getTime()),s))),C=new A5,T=e.a.length,o=0;o=97&&r<=122||r>=65&&r<=90){for(f=o+1;f=T)throw ue(new Wn("Missing trailing '"));f+1=14&&C<=16))?t.a._b(r)?(n.a?li(n.a,n.b):n.a=new Eh(n.d),P_(n.a,"[...]")):(g=Km(r),T=new G_(t),np(n,hwt(g,T))):De(r,183)?np(n,Kkn(l(r,183))):De(r,195)?np(n,Ixn(l(r,195))):De(r,201)?np(n,q9n(l(r,201))):De(r,2111)?np(n,Oxn(l(r,2111))):De(r,53)?np(n,Gkn(l(r,53))):De(r,376)?np(n,lTn(l(r,376))):De(r,846)?np(n,Vkn(l(r,846))):De(r,109)&&np(n,Ukn(l(r,109))):np(n,r==null?cl:Tc(r));return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c}function eE(e,t){var n,r,s,o;o=e.F,t==null?(e.F=null,_T(e,null)):(e.F=(tr(t),t),r=pd(t,ol(60)),r!=-1?(s=(Va(0,r,t.length),t.substr(0,r)),pd(t,ol(46))==-1&&!wn(s,Sx)&&!wn(s,_L)&&!wn(s,ZG)&&!wn(s,AL)&&!wn(s,LL)&&!wn(s,ML)&&!wn(s,DL)&&!wn(s,IL)&&(s=V5t),n=Vq(t,ol(62)),n!=-1&&(s+=""+(Yn(n+1,t.length+1),t.substr(n+1))),_T(e,s)):(s=t,pd(t,ol(46))==-1&&(r=pd(t,ol(91)),r!=-1&&(s=(Va(0,r,t.length),t.substr(0,r))),!wn(s,Sx)&&!wn(s,_L)&&!wn(s,ZG)&&!wn(s,AL)&&!wn(s,LL)&&!wn(s,ML)&&!wn(s,DL)&&!wn(s,IL)?(s=V5t,r!=-1&&(s+=""+(Yn(r,t.length+1),t.substr(r)))):s=t),_T(e,s),s==t&&(e.F=e.D))),e.Db&4&&!(e.Db&1)&&Bi(e,new _a(e,1,5,o,t))}function fwt(e,t){var n,r,s,o,f,g,w,T,C,L;if(w=t.length-1,g=(Yn(w,t.length),t.charCodeAt(w)),g==93){if(f=pd(t,ol(91)),f>=0)return s=y5n(e,(Va(1,f,t.length),t.substr(1,f-1))),C=(Va(f+1,w,t.length),t.substr(f+1,w-(f+1))),GIn(e,C,s)}else{if(n=-1,m_e==null&&(m_e=new RegExp("\\d")),m_e.test(String.fromCharCode(g))&&(n=L4e(t,ol(46),w-1),n>=0)){r=l(Uoe(e,eft(e,(Va(1,n,t.length),t.substr(1,n-1))),!1),61),T=0;try{T=Oh((Yn(n+1,t.length+1),t.substr(n+1)),ao,Ni)}catch(F){throw F=ms(F),De(F,130)?(o=F,ue(new uU(o))):ue(F)}if(T>16==-10?n=l(e.Cb,292).Yk(t,n):e.Db>>16==-15&&(!t&&(t=(En(),td)),!T&&(T=(En(),td)),e.Cb.Yh()&&(w=new rp(e.Cb,1,13,T,t,x2(Kl(l(e.Cb,62)),e),!1),n?n.nj(w):n=w));else if(De(e.Cb,90))e.Db>>16==-23&&(De(t,90)||(t=(En(),Kf)),De(T,90)||(T=(En(),Kf)),e.Cb.Yh()&&(w=new rp(e.Cb,1,10,T,t,x2(fu(l(e.Cb,29)),e),!1),n?n.nj(w):n=w));else if(De(e.Cb,457))for(g=l(e.Cb,850),f=(!g.b&&(g.b=new qz(new ise)),g.b),o=(r=new Xm(new Cr(f.a).a),new Hz(r));o.a.b;)s=l(zw(o.a).ld(),89),n=tE(s,OV(s,g),n)}return n}function yDn(e,t){var n,r,s,o,f,g,w,T,C,L,F;for(f=Ft(Pt(at(e,(Nt(),w4)))),F=l(at(e,x4),21),w=!1,T=!1,L=new ar((!e.c&&(e.c=new nt($l,e,9,9)),e.c));L.e!=L.i.gc()&&(!w||!T);){for(o=l(dr(L),123),g=0,s=ag(Lh(he(le(Fh,1),jn,20,0,[(!o.d&&(o.d=new An(js,o,8,5)),o.d),(!o.e&&(o.e=new An(js,o,7,4)),o.e)])));Rr(s)&&(r=l(yr(s),74),C=f&&Yw(r)&&Ft(Pt(at(r,kv))),n=Uvt((!r.b&&(r.b=new An(Sr,r,4,7)),r.b),o)?e==ds(vc(l(Oe((!r.c&&(r.c=new An(Sr,r,5,8)),r.c),0),84))):e==ds(vc(l(Oe((!r.b&&(r.b=new An(Sr,r,4,7)),r.b),0),84))),!((C||n)&&(++g,g>1))););(g>0||F.Hc((Pl(),kp))&&(!o.n&&(o.n=new nt(nc,o,1,7)),o.n).i>0)&&(w=!0),g>1&&(T=!0)}w&&t.Fc((Ho(),mf)),T&&t.Fc((Ho(),GL))}function dwt(e){var t,n,r,s,o,f,g,w,T,C,L,F;if(F=l(at(e,(bi(),Mv)),21),F.dc())return null;if(g=0,f=0,F.Hc((gh(),fF))){for(C=l(at(e,AM),101),r=2,n=2,s=2,o=2,t=ds(e)?l(at(ds(e),Lv),88):l(at(e,Lv),88),T=new ar((!e.c&&(e.c=new nt($l,e,9,9)),e.c));T.e!=T.i.gc();)if(w=l(dr(T),123),L=l(at(w,o7),64),L==(_t(),jc)&&(L=zke(w,t),Vi(w,o7,L)),C==(Pa(),Au))switch(L.g){case 1:r=b.Math.max(r,w.i+w.g);break;case 2:n=b.Math.max(n,w.j+w.f);break;case 3:s=b.Math.max(s,w.i+w.g);break;case 4:o=b.Math.max(o,w.j+w.f)}else switch(L.g){case 1:r+=w.g+2;break;case 2:n+=w.f+2;break;case 3:s+=w.g+2;break;case 4:o+=w.f+2}g=b.Math.max(r,s),f=b.Math.max(n,o)}return Zw(e,g,f,!0,!0)}function $le(e,t,n,r,s){var o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e;for(Ee=l(kc(mU(ji(new vn(null,new kn(t.d,16)),new tXe(n)),new nXe(n)),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[(Nl(),Cc)]))),15),L=Ni,C=ao,w=new K(t.b.j);w.a0,T?T&&(F=fe.p,f?++F:--F,L=l(Rt(fe.c.a,F),10),r=F0t(L),z=!(lle(r,ot,n[0])||oat(r,ot,n[0]))):z=!0),V=!1,Je=t.D.i,Je&&Je.c&&g.e&&(C=f&&Je.p>0||!f&&Je.p=0){for(w=null,g=new Ua(C.a,T+1);g.bf?1:bw(isNaN(0),isNaN(f)))<0&&(h0(Nd),(b.Math.abs(f-1)<=Nd||f==1||isNaN(f)&&isNaN(1)?0:f<1?-1:f>1?1:bw(isNaN(f),isNaN(1)))<0)&&(h0(Nd),(b.Math.abs(0-g)<=Nd||g==0||isNaN(0)&&isNaN(g)?0:0g?1:bw(isNaN(0),isNaN(g)))<0)&&(h0(Nd),(b.Math.abs(g-1)<=Nd||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:bw(isNaN(g),isNaN(1)))<0)),o)}function SDn(e){var t,n,r,s;if(n=e.D!=null?e.D:e.B,t=pd(n,ol(91)),t!=-1){r=(Va(0,t,n.length),n.substr(0,t)),s=new e2;do s.a+="[";while((t=Bk(n,91,++t))!=-1);wn(r,Sx)?s.a+="Z":wn(r,_L)?s.a+="B":wn(r,ZG)?s.a+="C":wn(r,AL)?s.a+="D":wn(r,LL)?s.a+="F":wn(r,ML)?s.a+="I":wn(r,DL)?s.a+="J":wn(r,IL)?s.a+="S":(s.a+="L",s.a+=""+r,s.a+=";");try{return null}catch(o){if(o=ms(o),!De(o,63))throw ue(o)}}else if(pd(n,ol(46))==-1){if(wn(n,Sx))return th;if(wn(n,_L))return _l;if(wn(n,ZG))return xf;if(wn(n,AL))return Oa;if(wn(n,LL))return j4;if(wn(n,ML))return Ur;if(wn(n,DL))return hm;if(wn(n,IL))return d7}return null}function _Dn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At;for(e.e=t,g=_Tn(t),ot=new mt,r=new K(g);r.a=0&&J=T.c.c.length?C=_6e((Jn(),Bs),Aa):C=_6e((Jn(),Aa),Aa),C*=2,o=n.a.g,n.a.g=b.Math.max(o,o+(C-o)),f=n.b.g,n.b.g=b.Math.max(f,f+(C-f)),s=t}}function DDn(e){var t,n,r,s;for(Os(ji(new vn(null,new kn(e.a.b,16)),new $j),new yee),fxn(e),Os(ji(new vn(null,new kn(e.a.b,16)),new xee),new kee),e.c==(cp(),a9)&&(Os(ji(Pc(new vn(null,new kn(new pr(e.f),1)),new Tee),new Eee),new WYe(e)),Os(ji(gc(Pc(Pc(new vn(null,new kn(e.d.b,16)),new Cee),new zj),new See),new qj),new XYe(e))),s=new lt(gs,gs),t=new lt(oa,oa),r=new K(e.a.b);r.a0&&(t.a+=To),ZV(l(dr(g),167),t);for(t.a+=Yhe,w=new H8((!r.c&&(r.c=new An(Sr,r,5,8)),r.c));w.e!=w.i.gc();)w.e>0&&(t.a+=To),ZV(l(dr(w),167),t);t.a+=")"}}function IDn(e,t,n){var r,s,o,f,g,w,T,C;for(w=new ar((!e.a&&(e.a=new nt(Li,e,10,11)),e.a));w.e!=w.i.gc();)for(g=l(dr(w),27),s=new lr(fr(fp(g).a.Kc(),new j));Rr(s);){if(r=l(yr(s),74),!r.b&&(r.b=new An(Sr,r,4,7)),!(r.b.i<=1&&(!r.c&&(r.c=new An(Sr,r,5,8)),r.c.i<=1)))throw ue(new O8("Graph must not contain hyperedges."));if(!HA(r)&&g!=vc(l(Oe((!r.c&&(r.c=new An(Sr,r,5,8)),r.c),0),84)))for(T=new pit,mc(T,r),rt(T,(Cb(),Ux),r),qie(T,l(dc(zo(n.f,g)),153)),T8(T,l(or(n,vc(l(Oe((!r.c&&(r.c=new An(Sr,r,5,8)),r.c),0),84))),153)),wt(t.c,T),f=new ar((!r.n&&(r.n=new nt(nc,r,1,7)),r.n));f.e!=f.i.gc();)o=l(dr(f),135),C=new mut(T,o.a),mc(C,o),rt(C,Ux,o),C.e.a=b.Math.max(o.g,1),C.e.b=b.Math.max(o.f,1),Gke(C),wt(t.d,C)}}function ODn(e,t,n){var r,s,o,f,g,w,T,C,L,F;switch(n.Ug("Node promotion heuristic",1),e.i=t,e.r=l(Q(t,(Nt(),Xb)),243),e.r!=(Nf(),C3)&&e.r!=E4?aIn(e):ISn(e),C=l(Q(e.i,oDe),17).a,o=new hd,e.r.g){case 2:case 1:ZT(e,o);break;case 3:for(e.r=BW,ZT(e,o),w=0,g=new K(e.b);g.ae.k&&(e.r=BB,ZT(e,o));break;case 4:for(e.r=BW,ZT(e,o),T=0,s=new K(e.c);s.ae.n&&(e.r=FB,ZT(e,o));break;case 6:F=da(b.Math.ceil(e.g.length*C/100)),ZT(e,new BYe(F));break;case 5:L=da(b.Math.ceil(e.e*C/100)),ZT(e,new FYe(L));break;case 8:Qwt(e,!0);break;case 9:Qwt(e,!1);break;default:ZT(e,o)}e.r!=C3&&e.r!=E4?nSn(e,t):k_n(e,t),n.Vg()}function NDn(e){var t,n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me;for(L=e.b,C=new Ua(L,0),wy(C,new vu(e)),Ee=!1,f=1;C.b0&&(F.d+=C.n.d,F.d+=C.d),F.a>0&&(F.a+=C.n.a,F.a+=C.d),F.b>0&&(F.b+=C.n.b,F.b+=C.d),F.c>0&&(F.c+=C.n.c,F.c+=C.d),F}function pwt(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V;for(F=n.d,L=n.c,o=new lt(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),f=o.b,T=new K(e.a);T.a0&&(e.c[t.c.p][t.p].d+=Yl(e.i,24)*RP*.07000000029802322-.03500000014901161,e.c[t.c.p][t.p].a=e.c[t.c.p][t.p].d/e.c[t.c.p][t.p].b)}}function FDn(e){var t,n,r,s,o,f,g,w,T,C,L,F,z,V,J,te;for(V=new K(e);V.ar.d,r.d=b.Math.max(r.d,t),g&&n&&(r.d=b.Math.max(r.d,r.a),r.a=r.d+s);break;case 3:n=t>r.a,r.a=b.Math.max(r.a,t),g&&n&&(r.a=b.Math.max(r.a,r.d),r.d=r.a+s);break;case 2:n=t>r.c,r.c=b.Math.max(r.c,t),g&&n&&(r.c=b.Math.max(r.b,r.c),r.b=r.c+s);break;case 4:n=t>r.b,r.b=b.Math.max(r.b,t),g&&n&&(r.b=b.Math.max(r.b,r.c),r.c=r.b+s)}}}function mwt(e,t){var n,r,s,o,f,g,w,T,C;return T="",t.length==0?e.ne(kTe,Jle,-1,-1):(C=Hy(t),wn(C.substr(0,3),"at ")&&(C=(Yn(3,C.length+1),C.substr(3))),C=C.replace(/\[.*?\]/g,""),f=C.indexOf("("),f==-1?(f=C.indexOf("@"),f==-1?(T=C,C=""):(T=Hy((Yn(f+1,C.length+1),C.substr(f+1))),C=Hy((Va(0,f,C.length),C.substr(0,f))))):(n=C.indexOf(")",f),T=(Va(f+1,n,C.length),C.substr(f+1,n-(f+1))),C=Hy((Va(0,f,C.length),C.substr(0,f)))),f=pd(C,ol(46)),f!=-1&&(C=(Yn(f+1,C.length+1),C.substr(f+1))),(C.length==0||wn(C,"Anonymous function"))&&(C=Jle),g=Vq(T,ol(58)),s=L4e(T,ol(58),g-1),w=-1,r=-1,o=kTe,g!=-1&&s!=-1&&(o=(Va(0,s,T.length),T.substr(0,s)),w=Nrt((Va(s+1,g,T.length),T.substr(s+1,g-(s+1)))),r=Nrt((Yn(g+1,T.length+1),T.substr(g+1)))),e.ne(o,C,w,r))}function $Dn(e){var t,n,r,s,o,f,g,w,T,C,L;for(T=new K(e);T.a0||C.j==Zn&&C.e.c.length-C.g.c.length<0)){t=!1;break}for(s=new K(C.g);s.a=T&&Je>=te&&(F+=V.n.b+J.n.b+J.a.b-$e,++g));if(n)for(f=new K(Ee.e);f.a=T&&Je>=te&&(F+=V.n.b+J.n.b+J.a.b-$e,++g))}g>0&&(ot+=F/g,++z)}z>0?(t.a=s*ot/z,t.g=z):(t.a=0,t.g=0)}function qDn(e){var t,n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At;for(o=e.f.b,F=o.a,C=o.b,V=e.e.g,z=e.e.f,j5(e.e,o.a,o.b),ot=F/V,At=C/z,T=new ar(MH(e.e));T.e!=T.i.gc();)w=l(dr(T),135),Vu(w,w.i*ot),Gu(w,w.j*At);for(Ee=new ar(loe(e.e));Ee.e!=Ee.i.gc();)fe=l(dr(Ee),123),$e=fe.i,Je=fe.j,$e>0&&Vu(fe,$e*ot),Je>0&&Gu(fe,Je*At);for(vA(e.b,new Vg),t=new mt,g=new Xm(new Cr(e.c).a);g.b;)f=zw(g),r=l(f.ld(),74),n=l(f.md(),407).a,s=f6(r,!1,!1),L=lpt(hg(r),sP(s),n),xP(L,s),Me=Tpt(r),Me&&bc(t,Me,0)==-1&&(qn(t.c,Me),Jat(Me,(br(L.b!=0),l(L.a.a.c,8)),n));for(te=new Xm(new Cr(e.d).a);te.b;)J=zw(te),r=l(J.ld(),74),n=l(J.md(),407).a,s=f6(r,!1,!1),L=lpt(Ib(r),BN(sP(s)),n),L=BN(L),xP(L,s),Me=Ept(r),Me&&bc(t,Me,0)==-1&&(qn(t.c,Me),Jat(Me,(br(L.b!=0),l(L.c.b.c,8)),n))}function vwt(e,t,n,r){var s,o,f,g,w;return g=new sTe(t),OCn(g,r),s=!0,e&&e.pf((bi(),Lv))&&(o=l(e.of((bi(),Lv)),88),s=o==(ea(),J1)||o==hc||o==yc),mmt(g,!1),Uu(g.e.Rf(),new B4e(g,!1,s)),Toe(g,g.f,(e1(),Wc),(_t(),Xn)),Toe(g,g.f,Yc,Mr),Toe(g,g.g,Wc,Zn),Toe(g,g.g,Yc,sr),Gdt(g,Xn),Gdt(g,Mr),Yat(g,sr),Yat(g,Zn),vy(),f=g.A.Hc((gh(),D4))&&g.B.Hc((Xl(),gF))?ldt(g):null,f&&qun(g.a,f),jDn(g),$7n(g),z7n(g),fDn(g),$_n(g),d8n(g),fue(g,Xn),fue(g,Mr),m_n(g),$Ln(g),n&&(x5n(g),g8n(g),fue(g,sr),fue(g,Zn),w=g.B.Hc((Xl(),RM)),u2t(g,w,Xn),u2t(g,w,Mr),l2t(g,w,sr),l2t(g,w,Zn),Os(new vn(null,new kn(new pi(g.i),0)),new Lc),Os(ji(new vn(null,N5e(g.r).a.oc()),new Fa),new Ra),Axn(g),g.e.Pf(g.o),Os(new vn(null,N5e(g.r).a.oc()),new ma)),g.o}function HDn(e){var t,n,r,s,o,f,g,w,T,C,L,F,z,V,J;for(T=gs,r=new K(e.a.b);r.a1)for(z=new Xke(V,Me,r),Za(Me,new Att(e,z)),qn(f.c,z),L=Me.a.ec().Kc();L.Ob();)C=l(L.Pb(),42),sl(o,C.b);if(g.a.gc()>1)for(z=new Xke(V,g,r),Za(g,new Ltt(e,z)),qn(f.c,z),L=g.a.ec().Kc();L.Ob();)C=l(L.Pb(),42),sl(o,C.b)}}function KDn(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe;if(J=e.n,te=e.o,F=e.d,L=ze(Ge(Ry(e,(Nt(),xde)))),t){for(C=L*(t.gc()-1),z=0,w=t.Kc();w.Ob();)f=l(w.Pb(),10),C+=f.o.a,z=b.Math.max(z,f.o.b);for(fe=J.a-(C-te.a)/2,o=J.b-F.d+z,r=te.a/(t.gc()+1),s=r,g=t.Kc();g.Ob();)f=l(g.Pb(),10),f.n.a=fe,f.n.b=o-f.o.b,fe+=f.o.a+L,T=_bt(f),T.n.a=f.o.a/2-T.a.a,T.n.b=f.o.b,V=l(Q(f,(ft(),lW)),12),V.e.c.length+V.g.c.length==1&&(V.n.a=s-V.a.a,V.n.b=0,Nc(V,e)),s+=r}if(n){for(C=L*(n.gc()-1),z=0,w=n.Kc();w.Ob();)f=l(w.Pb(),10),C+=f.o.a,z=b.Math.max(z,f.o.b);for(fe=J.a-(C-te.a)/2,o=J.b+te.b+F.a-z,r=te.a/(n.gc()+1),s=r,g=n.Kc();g.Ob();)f=l(g.Pb(),10),f.n.a=fe,f.n.b=o,fe+=f.o.a+L,T=_bt(f),T.n.a=f.o.a/2-T.a.a,T.n.b=0,V=l(Q(f,(ft(),lW)),12),V.e.c.length+V.g.c.length==1&&(V.n.a=s-V.a.a,V.n.b=te.b,Nc(V,e)),s+=r}}function WDn(e,t){var n,r,s,o,f,g;if(l(Q(t,(ft(),_u)),21).Hc((Ho(),mf))){for(g=new K(t.a);g.a=0&&f0&&(l(Zo(e.b,t),127).a.b=n)}function ZDn(e,t,n,r){var s,o,f,g,w,T,C,L,F,z,V,J;if(F=ze(Ge(Q(e,(Nt(),WE)))),z=ze(Ge(Q(e,YE))),L=ze(Ge(Q(e,T4))),g=e.o,o=l(Rt(e.j,0),12),f=o.n,J=bkn(o,L),!!J){if(t.Hc((Pl(),kp)))switch(l(Q(e,(ft(),Xc)),64).g){case 1:J.c=(g.a-J.b)/2-f.a,J.d=z;break;case 3:J.c=(g.a-J.b)/2-f.a,J.d=-z-J.a;break;case 2:n&&o.e.c.length==0&&o.g.c.length==0?(C=r?J.a:l(Rt(o.f,0),72).o.b,J.d=(g.b-C)/2-f.b):J.d=g.b+z-f.b,J.c=-F-J.b;break;case 4:n&&o.e.c.length==0&&o.g.c.length==0?(C=r?J.a:l(Rt(o.f,0),72).o.b,J.d=(g.b-C)/2-f.b):J.d=g.b+z-f.b,J.c=F}else if(t.Hc(im))switch(l(Q(e,(ft(),Xc)),64).g){case 1:case 3:J.c=f.a+F;break;case 2:case 4:n&&!o.c?(C=r?J.a:l(Rt(o.f,0),72).o.b,J.d=(g.b-C)/2-f.b):J.d=f.b+z}for(s=J.d,T=new K(o.f);T.a=t.length)return{done:!0};var s=t[r++];return{value:[s,n.get(s)],done:!1}}}},XSn()||(e.prototype.createObject=function(){return{}},e.prototype.get=function(t){return this.obj[":"+t]},e.prototype.set=function(t,n){this.obj[":"+t]=n},e.prototype[Ehe]=function(t){delete this.obj[":"+t]},e.prototype.keys=function(){var t=[];for(var n in this.obj)n.charCodeAt(0)==58&&t.push(n.substring(1));return t}),e}function Zi(){Zi=U,pM=new Ki(JTe),new ws("DEPTH",bt(0)),Yde=new ws("FAN",bt(0)),yIe=new ws(Uyt,bt(0)),Zb=new ws("ROOT",(Hn(),!1)),Jde=new ws("LEFTNEIGHBOR",null),HEt=new ws("RIGHTNEIGHBOR",null),HW=new ws("LEFTSIBLING",null),Zde=new ws("RIGHTSIBLING",null),Wde=new ws("DUMMY",!1),new ws("LEVEL",bt(0)),TIe=new ws("REMOVABLE_EDGES",new os),HB=new ws("XCOOR",bt(0)),UB=new ws("YCOOR",bt(0)),UW=new ws("LEVELHEIGHT",0),o1=new ws("LEVELMIN",0),x0=new ws("LEVELMAX",0),Xde=new ws("GRAPH_XMIN",0),Qde=new ws("GRAPH_YMIN",0),xIe=new ws("GRAPH_XMAX",0),kIe=new ws("GRAPH_YMAX",0),wIe=new ws("COMPACT_LEVEL_ASCENSION",!1),Kde=new ws("COMPACT_CONSTRAINTS",new mt),gM=new ws("ID",""),bM=new ws("POSITION",bt(0)),N2=new ws("PRELIM",0),eC=new ws("MODIFIER",0),ZE=new Ki(nyt),qB=new Ki(ryt)}function rIn(e){$ke();var t,n,r,s,o,f,g,w,T,C,L,F,z,V,J,te;if(e==null)return null;if(L=e.length*8,L==0)return"";for(g=L%24,z=L/24|0,F=g!=0?z+1:z,o=null,o=We(xf,Ad,28,F*4,15,1),T=0,C=0,t=0,n=0,r=0,f=0,s=0,w=0;w>24,T=(t&3)<<24>>24,V=t&-128?(t>>2^192)<<24>>24:t>>2<<24>>24,J=n&-128?(n>>4^240)<<24>>24:n>>4<<24>>24,te=r&-128?(r>>6^252)<<24>>24:r>>6<<24>>24,o[f++]=H2[V],o[f++]=H2[J|T<<4],o[f++]=H2[C<<2|te],o[f++]=H2[r&63];return g==8?(t=e[s],T=(t&3)<<24>>24,V=t&-128?(t>>2^192)<<24>>24:t>>2<<24>>24,o[f++]=H2[V],o[f++]=H2[T<<4],o[f++]=61,o[f++]=61):g==16&&(t=e[s],n=e[s+1],C=(n&15)<<24>>24,T=(t&3)<<24>>24,V=t&-128?(t>>2^192)<<24>>24:t>>2<<24>>24,J=n&-128?(n>>4^240)<<24>>24:n>>4<<24>>24,o[f++]=H2[V],o[f++]=H2[J|T<<4],o[f++]=H2[C<<2],o[f++]=61),If(o,0,o.length)}function iIn(e,t){var n,r,s,o,f,g,w;if(e.e==0&&e.p>0&&(e.p=-(e.p-1)),e.p>ao&&S6e(t,e.p-Rb),f=t.q.getDate(),rN(t,1),e.k>=0&&G2n(t,e.k),e.c>=0?rN(t,e.c):e.k>=0?(w=new n8e(t.q.getFullYear()-Rb,t.q.getMonth(),35),r=35-w.q.getDate(),rN(t,b.Math.min(r,f))):rN(t,f),e.f<0&&(e.f=t.q.getHours()),e.b>0&&e.f<12&&(e.f+=12),Fhn(t,e.f==24&&e.g?0:e.f),e.j>=0&&Avn(t,e.j),e.n>=0&&$vn(t,e.n),e.i>=0&&_nt(t,fo(go(tP(tu(t.q.getTime()),C2),C2),e.i)),e.a&&(s=new iq,S6e(s,s.q.getFullYear()-Rb-80),Sse(tu(t.q.getTime()),tu(s.q.getTime()))&&S6e(t,s.q.getFullYear()-Rb+100)),e.d>=0){if(e.c==-1)n=(7+e.d-t.q.getDay())%7,n>3&&(n-=7),g=t.q.getMonth(),rN(t,t.q.getDate()+n),t.q.getMonth()!=g&&rN(t,t.q.getDate()+(n>0?-7:7));else if(t.q.getDay()!=e.d)return!1}return e.o>ao&&(o=t.q.getTimezoneOffset(),_nt(t,fo(tu(t.q.getTime()),(e.o-o)*60*C2))),!0}function Twt(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e;if(s=Q(t,(ft(),zi)),!!De(s,207)){for(V=l(s,27),J=t.e,F=new xo(t.c),o=t.d,F.a+=o.b,F.b+=o.d,$e=l(at(V,(Nt(),AW)),181),ml($e,(Xl(),bY))&&(z=l(at(V,fDe),107),Rie(z,o.a),Pwe(z,o.d),jie(z,o.b),k8(z,o.c)),n=new mt,C=new K(t.a);C.ar.c.length-1;)wt(r,new fa(k6,LCe));n=l(Q(s,$d),17).a,Yg(l(Q(e,_3),88))?(s.e.aze(Ge((Sn(n,r.c.length),l(r.c[n],42)).b))&&ct((Sn(n,r.c.length),l(r.c[n],42)),s.e.a+s.f.a)):(s.e.bze(Ge((Sn(n,r.c.length),l(r.c[n],42)).b))&&ct((Sn(n,r.c.length),l(r.c[n],42)),s.e.b+s.f.b))}for(o=Fr(e.b,0);o.b!=o.d.c;)s=l(Pr(o),40),n=l(Q(s,(Vc(),$d)),17).a,rt(s,(Zi(),o1),Ge((Sn(n,r.c.length),l(r.c[n],42)).a)),rt(s,x0,Ge((Sn(n,r.c.length),l(r.c[n],42)).b));t.Vg()}function aIn(e){var t,n,r,s,o,f,g,w,T,C,L,F,z,V,J;for(e.o=ze(Ge(Q(e.i,(Nt(),E3)))),e.f=ze(Ge(Q(e.i,Sv))),e.j=e.i.b.c.length,g=e.j-1,F=0,e.k=0,e.n=0,e.b=O1(We(to,dt,17,e.j,0,1)),e.c=O1(We(ra,dt,345,e.j,7,1)),f=new K(e.i.b);f.a0&&wt(e.q,C),wt(e.p,C);t-=r,z=w+t,T+=t*e.f,nf(e.b,g,bt(z)),nf(e.c,g,T),e.k=b.Math.max(e.k,z),e.n=b.Math.max(e.n,T),e.e+=t,t+=J}}function _t(){_t=U;var e;jc=new _O(uL,0),Xn=new _O(uG,1),sr=new _O(Nhe,2),Mr=new _O(Phe,3),Zn=new _O(Bhe,4),ed=(Cn(),new Ck((e=l(G0(Mo),9),new Jh(e,l(o0(e,e.length),9),0)))),S0=p2(is(Xn,he(le(Mo,1),ou,64,0,[]))),wf=p2(is(sr,he(le(Mo,1),ou,64,0,[]))),$h=p2(is(Mr,he(le(Mo,1),ou,64,0,[]))),Hf=p2(is(Zn,he(le(Mo,1),ou,64,0,[]))),ll=p2(is(Xn,he(le(Mo,1),ou,64,0,[Mr]))),Ju=p2(is(sr,he(le(Mo,1),ou,64,0,[Zn]))),_0=p2(is(Xn,he(le(Mo,1),ou,64,0,[Zn]))),Rl=p2(is(Xn,he(le(Mo,1),ou,64,0,[sr]))),zh=p2(is(Mr,he(le(Mo,1),ou,64,0,[Zn]))),yf=p2(is(sr,he(le(Mo,1),ou,64,0,[Mr]))),jl=p2(is(Xn,he(le(Mo,1),ou,64,0,[sr,Zn]))),ul=p2(is(sr,he(le(Mo,1),ou,64,0,[Mr,Zn]))),hl=p2(is(Xn,he(le(Mo,1),ou,64,0,[Mr,Zn]))),Sl=p2(is(Xn,he(le(Mo,1),ou,64,0,[sr,Mr]))),Lu=p2(is(Xn,he(le(Mo,1),ou,64,0,[sr,Mr,Zn])))}function oIn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At;for(t.Ug(Tyt,1),J=new mt,ot=new mt,T=new K(e.b);T.a0&&(Me-=z),Qke(f,Me),C=0,F=new K(f.a);F.a0),g.a.Xb(g.c=--g.b)),w=.4*r*C,!o&&g.b0&&(w=(Yn(0,t.length),t.charCodeAt(0)),w!=64)){if(w==37&&(L=t.lastIndexOf("%"),T=!1,L!=0&&(L==F-1||(T=(Yn(L+1,t.length),t.charCodeAt(L+1)==46))))){if(f=(Va(1,L,t.length),t.substr(1,L-1)),Me=wn("%",f)?null:cTe(f),r=0,T)try{r=Oh((Yn(L+2,t.length+1),t.substr(L+2)),ao,Ni)}catch($e){throw $e=ms($e),De($e,130)?(g=$e,ue(new uU(g))):ue($e)}for(te=P7e(e.Gh());te.Ob();)if(V=FU(te),De(V,519)&&(s=l(V,598),Ee=s.d,(Me==null?Ee==null:wn(Me,Ee))&&r--==0))return s;return null}if(C=t.lastIndexOf("."),z=C==-1?t:(Va(0,C,t.length),t.substr(0,C)),n=0,C!=-1)try{n=Oh((Yn(C+1,t.length+1),t.substr(C+1)),ao,Ni)}catch($e){if($e=ms($e),De($e,130))z=t;else throw ue($e)}for(z=wn("%",z)?null:cTe(z),J=P7e(e.Gh());J.Ob();)if(V=FU(J),De(V,197)&&(o=l(V,197),fe=o.xe(),(z==null?fe==null:wn(z,fe))&&n--==0))return o;return null}return fwt(e,t)}function pIn(e){var t,n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee;for(C=new Nr,w=new Iw,r=new K(e.a.a.b);r.at.d.c){if(z=e.c[t.a.d],te=e.c[L.a.d],z==te)continue;g0(i0(r0(s0(n0(new _f,1),100),z),te))}}}}}function bIn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot;if(F=l(l($i(e.r,t),21),87),t==(_t(),sr)||t==Zn){ywt(e,t);return}for(o=t==Xn?(qw(),hB):(qw(),fB),$e=t==Xn?(al(),s1):(al(),v0),n=l(Zo(e.b,t),127),r=n.i,s=r.c+Q5(he(le(Oa,1),tc,28,15,[n.n.b,e.C.b,e.k])),fe=r.c+r.b-Q5(he(le(Oa,1),tc,28,15,[n.n.c,e.C.c,e.k])),f=k3e(R4e(o),e.t),Ee=t==Xn?oa:gs,L=F.Kc();L.Ob();)T=l(L.Pb(),117),!(!T.c||T.c.d.c.length<=0)&&(te=T.b.Mf(),J=T.e,z=T.c,V=z.i,V.b=(w=z.n,z.e.a+w.b+w.c),V.a=(g=z.n,z.e.b+g.d+g.a),ZO($e,RTe),z.f=$e,J0(z,(Ol(),m0)),V.c=J.a-(V.b-te.a)/2,Je=b.Math.min(s,J.a),ot=b.Math.max(fe,J.a+te.a),V.cot&&(V.c=ot-V.b),wt(f.d,new Vae(V,L8e(f,V))),Ee=t==Xn?b.Math.max(Ee,J.b+T.b.Mf().b):b.Math.min(Ee,J.b));for(Ee+=t==Xn?e.t:-e.t,Me=W8e((f.e=Ee,f)),Me>0&&(l(Zo(e.b,t),127).a.b=Me),C=F.Kc();C.Ob();)T=l(C.Pb(),117),!(!T.c||T.c.d.c.length<=0)&&(V=T.c.i,V.c-=T.e.a,V.d-=T.e.b)}function mIn(e){var t,n,r,s,o,f,g,w,T,C,L,F,z;for(t=new Nr,w=new ar(e);w.e!=w.i.gc();){for(g=l(dr(w),27),n=new Ys,Ti(l1e,g,n),z=new Vp,s=l(kc(new vn(null,new Cw(new lr(fr(dP(g).a.Kc(),new j)))),Hst(z,Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[(Nl(),Cc)])))),85),Tft(n,l(s.xc((Hn(),!0)),16),new J3),r=l(kc(ji(l(s.xc(!1),15).Lc(),new q9),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[Cc]))),15),f=r.Kc();f.Ob();)o=l(f.Pb(),74),F=Tpt(o),F&&(T=l(dc(zo(t.f,F)),21),T||(T=Gbt(F),Ru(t.f,F,T)),Ga(n,T));for(s=l(kc(new vn(null,new Cw(new lr(fr(fp(g).a.Kc(),new j)))),Hst(z,Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[Cc])))),85),Tft(n,l(s.xc(!0),16),new l5),r=l(kc(ji(l(s.xc(!1),15).Lc(),new Th),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[Cc]))),15),L=r.Kc();L.Ob();)C=l(L.Pb(),74),F=Ept(C),F&&(T=l(dc(zo(t.f,F)),21),T||(T=Gbt(F),Ru(t.f,F,T)),Ga(n,T))}}function vIn(e,t){Mle();var n,r,s,o,f,g,w,T,C,L,F,z,V,J;if(w=su(e,0)<0,w&&(e=f2(e)),su(e,0)==0)switch(t){case 0:return"0";case 1:return oE;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return z=new lb,t<0?z.a+="0E+":z.a+="0E",z.a+=t==ao?"2147483648":""+-t,z.a}C=18,L=We(xf,Ad,28,C+1,15,1),n=C,J=e;do T=J,J=tP(J,10),L[--n]=Yr(fo(48,Df(T,go(J,10))))&ta;while(su(J,0)!=0);if(s=Df(Df(Df(C,n),t),1),t==0)return w&&(L[--n]=45),If(L,n,C-n);if(t>0&&su(s,-6)>=0){if(su(s,0)>=0){for(o=n+Yr(s),g=C-1;g>=o;g--)L[g+1]=L[g];return L[++o]=46,w&&(L[--n]=45),If(L,n,C-n+1)}for(f=2;Sse(f,fo(f2(s),1));f++)L[--n]=48;return L[--n]=46,L[--n]=48,w&&(L[--n]=45),If(L,n,C-n)}return V=n+1,r=C,F=new A5,w&&(F.a+="-"),r-V>=1?(yb(F,L[n]),F.a+=".",F.a+=If(L,n+1,C-n-1)):F.a+=If(L,n,C-n),F.a+="E",su(s,0)>0&&(F.a+="+"),F.a+=""+X_(s),F.a}function Zw(e,t,n,r,s){var o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot;if(te=new lt(e.g,e.f),J=E9e(e),J.a=b.Math.max(J.a,t),J.b=b.Math.max(J.b,n),ot=J.a/te.a,C=J.b/te.b,$e=J.a-te.a,w=J.b-te.b,r)for(f=ds(e)?l(at(ds(e),(bi(),Lv)),88):l(at(e,(bi(),Lv)),88),g=qe(at(e,(bi(),AM)))===qe((Pa(),Au)),Ee=new ar((!e.c&&(e.c=new nt($l,e,9,9)),e.c));Ee.e!=Ee.i.gc();)switch(fe=l(dr(Ee),123),Me=l(at(fe,o7),64),Me==(_t(),jc)&&(Me=zke(fe,f),Vi(fe,o7,Me)),Me.g){case 1:g||Vu(fe,fe.i*ot);break;case 2:Vu(fe,fe.i+$e),g||Gu(fe,fe.j*C);break;case 3:g||Vu(fe,fe.i*ot),Gu(fe,fe.j+w);break;case 4:g||Gu(fe,fe.j*C)}if(j5(e,J.a,J.b),s)for(F=new ar((!e.n&&(e.n=new nt(nc,e,1,7)),e.n));F.e!=F.i.gc();)L=l(dr(F),135),z=L.i+L.g/2,V=L.j+L.f/2,Je=z/te.a,T=V/te.b,Je+T>=1&&(Je-T>0&&V>=0?(Vu(L,L.i+$e),Gu(L,L.j+w*T)):Je-T<0&&z>=0&&(Vu(L,L.i+$e*Je),Gu(L,L.j+w)));return Vi(e,(bi(),Mv),(gh(),o=l(G0(FM),9),new Jh(o,l(o0(o,o.length),9),0))),new lt(ot,C)}function _wt(e){fw(e,new iv(Jz(uw(aw(cw(ow(new x1,df),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new hu),df))),pt(e,df,NG,It(jCt)),pt(e,df,t4,It($Ct)),pt(e,df,T6,It(PCt)),pt(e,df,Bx,It(BCt)),pt(e,df,Px,It(FCt)),pt(e,df,gE,It(NCt)),pt(e,df,dL,It(JIe)),pt(e,df,pE,It(RCt)),pt(e,df,jfe,It(fge)),pt(e,df,Rfe,It(dge)),pt(e,df,zG,It(eOe)),pt(e,df,$fe,It(gge)),pt(e,df,zfe,It(tOe)),pt(e,df,WCe,It(nOe)),pt(e,df,KCe,It(ZIe)),pt(e,df,HCe,It(YW)),pt(e,df,UCe,It(XW)),pt(e,df,VCe,It(VB)),pt(e,df,GCe,It(rOe)),pt(e,df,qCe,It(QIe))}function eG(e){var t,n,r,s,o,f,g,w,T,C,L;if(e==null)throw ue(new gd(cl));if(T=e,o=e.length,w=!1,o>0&&(t=(Yn(0,e.length),e.charCodeAt(0)),(t==45||t==43)&&(e=(Yn(1,e.length+1),e.substr(1)),--o,w=t==45)),o==0)throw ue(new gd(n3+T+'"'));for(;e.length>0&&(Yn(0,e.length),e.charCodeAt(0)==48);)e=(Yn(1,e.length+1),e.substr(1)),--o;if(o>(ivt(),G6t)[10])throw ue(new gd(n3+T+'"'));for(s=0;s0&&(L=-parseInt((Va(0,r,e.length),e.substr(0,r)),10),e=(Yn(r,e.length+1),e.substr(r)),o-=r,n=!1);o>=f;){if(r=parseInt((Va(0,f,e.length),e.substr(0,f)),10),e=(Yn(f,e.length+1),e.substr(f)),o-=f,n)n=!1;else{if(su(L,g)<0)throw ue(new gd(n3+T+'"'));L=go(L,C)}L=Df(L,r)}if(su(L,0)>0)throw ue(new gd(n3+T+'"'));if(!w&&(L=f2(L),su(L,0)<0))throw ue(new gd(n3+T+'"'));return L}function cTe(e){Ble();var t,n,r,s,o,f,g,w;if(e==null)return null;if(s=pd(e,ol(37)),s<0)return e;for(w=new Eh((Va(0,s,e.length),e.substr(0,s))),t=We(_l,_6,28,4,15,1),g=0,r=0,f=e.length;ss+2&&Dce((Yn(s+1,e.length),e.charCodeAt(s+1)),$Pe,zPe)&&Dce((Yn(s+2,e.length),e.charCodeAt(s+2)),$Pe,zPe))if(n=jdn((Yn(s+1,e.length),e.charCodeAt(s+1)),(Yn(s+2,e.length),e.charCodeAt(s+2))),s+=2,r>0?(n&192)==128?t[g++]=n<<24>>24:r=0:n>=128&&((n&224)==192?(t[g++]=n<<24>>24,r=2):(n&240)==224?(t[g++]=n<<24>>24,r=3):(n&248)==240&&(t[g++]=n<<24>>24,r=4)),r>0){if(g==r){switch(g){case 2:{yb(w,((t[0]&31)<<6|t[1]&63)&ta);break}case 3:{yb(w,((t[0]&15)<<12|(t[1]&63)<<6|t[2]&63)&ta);break}}g=0,r=0}}else{for(o=0;o=2){if((!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i==0)n=(fb(),s=new sk,s),zr((!e.a&&(e.a=new nt(cs,e,6,6)),e.a),n);else if((!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i>1)for(F=new H8((!e.a&&(e.a=new nt(cs,e,6,6)),e.a));F.e!=F.i.gc();)$A(F);xP(t,l(Oe((!e.a&&(e.a=new nt(cs,e,6,6)),e.a),0),166))}if(L)for(r=new ar((!e.a&&(e.a=new nt(cs,e,6,6)),e.a));r.e!=r.i.gc();)for(n=l(dr(r),166),T=new ar((!n.a&&(n.a=new Qs(qh,n,5)),n.a));T.e!=T.i.gc();)w=l(dr(T),377),g.a=b.Math.max(g.a,w.a),g.b=b.Math.max(g.b,w.b);for(f=new ar((!e.n&&(e.n=new nt(nc,e,1,7)),e.n));f.e!=f.i.gc();)o=l(dr(f),135),C=l(at(o,DM),8),C&&Xh(o,C.a,C.b),L&&(g.a=b.Math.max(g.a,o.i+o.g),g.b=b.Math.max(g.b,o.j+o.f));return g}function Lwt(e,t,n,r,s){var o,f,g;if(Mht(e,t),f=t[0],o=io(n.c,0),g=-1,s8e(n))if(r>0){if(f+r>e.length)return!1;g=LV((Va(0,f+r,e.length),e.substr(0,f+r)),t)}else g=LV(e,t);switch(o){case 71:return g=u6(e,f,he(le($t,1),dt,2,6,[g3t,p3t]),t),s.e=g,!0;case 77:return NSn(e,t,s,g,f);case 76:return PSn(e,t,s,g,f);case 69:return Skn(e,t,f,s);case 99:return _kn(e,t,f,s);case 97:return g=u6(e,f,he(le($t,1),dt,2,6,["AM","PM"]),t),s.b=g,!0;case 121:return BSn(e,t,f,g,n,s);case 100:return g<=0?!1:(s.c=g,!0);case 83:return g<0?!1:q5n(g,f,t[0],s);case 104:g==12&&(g=0);case 75:case 72:return g<0?!1:(s.f=g,s.g=!1,!0);case 107:return g<0?!1:(s.f=g,s.g=!0,!0);case 109:return g<0?!1:(s.j=g,!0);case 115:return g<0?!1:(s.n=g,!0);case 90:if(fln[w]&&(te=w),L=new K(e.a.b);L.a1;){if(s=_Cn(t),L=o.g,V=l(at(t,wM),107),J=ze(Ge(at(t,eY))),(!t.a&&(t.a=new nt(Li,t,10,11)),t.a).i>1&&ze(Ge(at(t,(fg(),kge))))!=gs&&(o.c+(V.b+V.c))/(o.b+(V.d+V.a))1&&ze(Ge(at(t,(fg(),xge))))!=gs&&(o.c+(V.b+V.c))/(o.b+(V.d+V.a))>J&&Vi(s,(fg(),_4),b.Math.max(ze(Ge(at(t,vM))),ze(Ge(at(s,_4)))-ze(Ge(at(t,xge))))),z=new pye(r,C),w=Ywt(z,s,F),T=w.g,T>=L&&T==T){for(f=0;f<(!s.a&&(s.a=new nt(Li,s,10,11)),s.a).i;f++)k2t(e,l(Oe((!s.a&&(s.a=new nt(Li,s,10,11)),s.a),f),27),l(Oe((!t.a&&(t.a=new nt(Li,t,10,11)),t.a),f),27));nft(t,z),D2n(o,w.c),M2n(o,w.b)}--g}Vi(t,(fg(),tC),o.b),Vi(t,e9,o.c),n.Vg()}function kIn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee;for(t.Ug("Interactive node layering",1),n=new mt,F=new K(e.a);F.a=g){br(Ee.b>0),Ee.a.Xb(Ee.c=--Ee.b);break}else te.a>w&&(r?(aa(r.b,te.b),r.a=b.Math.max(r.a,te.a),fh(Ee)):(wt(te.b,C),te.c=b.Math.min(te.c,w),te.a=b.Math.max(te.a,g),r=te));r||(r=new kJe,r.c=w,r.a=g,wy(Ee,r),wt(r.b,C))}for(f=e.b,T=0,fe=new K(n);fe.az&&(o&&(yo(ot,F),yo(ln,bt(T.b-1))),ai=n.b,ys+=F+t,F=0,C=b.Math.max(C,n.b+n.c+cr)),Vu(g,ai),Gu(g,ys),C=b.Math.max(C,ai+cr+n.c),F=b.Math.max(F,L),ai+=cr+t;if(C=b.Math.max(C,r),$n=ys+F+n.a,$nDd,cn=b.Math.abs(F.b-V.b)>Dd,(!n&&ln&&cn||n&&(ln||cn))&&ci(te.a,$e)),Ga(te.a,r),r.b==0?F=$e:F=(br(r.b!=0),l(r.c.b.c,8)),cyn(z,L,J),t0t(s)==At&&(Ja(At.i)!=s.a&&(J=new za,y9e(J,Ja(At.i),Ee)),rt(te,ude,J)),U9n(z,te,Ee),C.a.zc(z,C);ho(te,Je),Na(te,At)}for(T=C.a.ec().Kc();T.Ob();)w=l(T.Pb(),18),ho(w,null),Na(w,null);t.Vg()}function CIn(e,t){var n,r,s,o,f,g,w,T,C,L,F;for(s=l(Q(e,(Vc(),_3)),88),C=s==(ea(),hc)||s==yc?Q1:yc,n=l(kc(ji(new vn(null,new kn(e.b,16)),new TI),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[(Nl(),Cc)]))),15),w=l(kc(gc(n.Oc(),new HXe(t)),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[Cc]))),15),w.Gc(l(kc(gc(n.Oc(),new UXe(t)),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[Cc]))),16)),w.jd(new VXe(C)),F=new n2(new GXe(s)),r=new Nr,g=w.Kc();g.Ob();)f=l(g.Pb(),240),T=l(f.a,40),Ft(Pt(f.c))?(F.a.zc(T,(Hn(),Ub))==null,new wa(F.a.Zc(T,!1)).a.gc()>0&&Ti(r,T,l(new wa(F.a.Zc(T,!1)).a.Vc(),40)),new wa(F.a.ad(T,!0)).a.gc()>1&&Ti(r,sdt(F,T),T)):(new wa(F.a.Zc(T,!1)).a.gc()>0&&(o=l(new wa(F.a.Zc(T,!1)).a.Vc(),40),qe(o)===qe(dc(zo(r.f,T)))&&l(Q(T,(Zi(),Kde)),15).Fc(o)),new wa(F.a.ad(T,!0)).a.gc()>1&&(L=sdt(F,T),qe(dc(zo(r.f,L)))===qe(T)&&l(Q(L,(Zi(),Kde)),15).Fc(T)),F.a.Bc(T)!=null)}function Mwt(e){var t,n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e;if(e.gc()==1)return l(e.Xb(0),235);if(e.gc()<=0)return new eU;for(s=e.Kc();s.Ob();){for(n=l(s.Pb(),235),V=0,C=Ni,L=Ni,w=ao,T=ao,z=new K(n.e);z.ag&&(Me=0,$e+=f+fe,f=0),J_n(J,n,Me,$e),t=b.Math.max(t,Me+te.a),f=b.Math.max(f,te.b),Me+=te.a+fe;return J}function SIn(e){$ke();var t,n,r,s,o,f,g,w,T,C,L,F,z,V,J,te;if(e==null||(o=hU(e),V=e5n(o),V%4!=0))return null;if(J=V/4|0,J==0)return We(_l,_6,28,0,15,1);for(L=null,t=0,n=0,r=0,s=0,f=0,g=0,w=0,T=0,z=0,F=0,C=0,L=We(_l,_6,28,J*3,15,1);z>4)<<24>>24,L[F++]=((n&15)<<4|r>>2&15)<<24>>24,L[F++]=(r<<6|s)<<24>>24}return!cO(f=o[C++])||!cO(g=o[C++])?null:(t=nd[f],n=nd[g],w=o[C++],T=o[C++],nd[w]==-1||nd[T]==-1?w==61&&T==61?n&15?null:(te=We(_l,_6,28,z*3+1,15,1),gu(L,0,te,0,z*3),te[F]=(t<<2|n>>4)<<24>>24,te):w!=61&&T==61?(r=nd[w],r&3?null:(te=We(_l,_6,28,z*3+2,15,1),gu(L,0,te,0,z*3),te[F++]=(t<<2|n>>4)<<24>>24,te[F]=((n&15)<<4|r>>2&15)<<24>>24,te)):null:(r=nd[w],s=nd[T],L[F++]=(t<<2|n>>4)<<24>>24,L[F++]=((n&15)<<4|r>>2&15)<<24>>24,L[F++]=(r<<6|s)<<24>>24,L))}function _In(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je;for(t.Ug(Tyt,1),V=l(Q(e,(Nt(),yp)),223),s=new K(e.b);s.a=2){for(J=!0,F=new K(o.j),n=l(re(F),12),z=null;F.a0)if(r=L.gc(),T=da(b.Math.floor((r+1)/2))-1,s=da(b.Math.ceil((r+1)/2))-1,t.o==Y1)for(C=s;C>=T;C--)t.a[$e.p]==$e&&(J=l(L.Xb(C),42),V=l(J.a,10),!K0(n,J.b)&&z>e.b.e[V.p]&&(t.a[V.p]=$e,t.g[$e.p]=t.g[V.p],t.a[$e.p]=t.g[$e.p],t.f[t.g[$e.p].p]=(Hn(),!!(Ft(t.f[t.g[$e.p].p])&$e.k==(Jn(),Aa))),z=e.b.e[V.p]));else for(C=T;C<=s;C++)t.a[$e.p]==$e&&(fe=l(L.Xb(C),42),te=l(fe.a,10),!K0(n,fe.b)&&z0&&(s=l(Rt(te.c.a,ot-1),10),f=e.i[s.p],ln=b.Math.ceil(z5(e.n,s,te)),o=Je.a.e-te.d.d-(f.a.e+s.o.b+s.d.a)-ln),T=gs,ot0&&At.a.e.e-At.a.a-(At.b.e.e-At.b.a)<0,V=Me.a.e.e-Me.a.a-(Me.b.e.e-Me.b.a)<0&&At.a.e.e-At.a.a-(At.b.e.e-At.b.a)>0,z=Me.a.e.e+Me.b.aAt.b.e.e+At.a.a,$e=0,!J&&!V&&(F?o+L>0?$e=L:T-r>0&&($e=r):z&&(o+g>0?$e=g:T-Ee>0&&($e=Ee))),Je.a.e+=$e,Je.b&&(Je.d.e+=$e),!1))}function Iwt(e,t,n){var r,s,o,f,g,w,T,C,L,F;if(r=new Zh(t.Lf().a,t.Lf().b,t.Mf().a,t.Mf().b),s=new z8,e.c)for(f=new K(t.Rf());f.aT&&(r.a+=art(We(xf,Ad,28,-T,15,1))),r.a+="Is",pd(w,ol(32))>=0)for(s=0;s=r.o.b/2}else Ee=!L;Ee?(fe=l(Q(r,(ft(),Jx)),15),fe?F?o=fe:(s=l(Q(r,Kx),15),s?fe.gc()<=s.gc()?o=fe:o=s:(o=new mt,rt(r,Kx,o))):(o=new mt,rt(r,Jx,o))):(s=l(Q(r,(ft(),Kx)),15),s?L?o=s:(fe=l(Q(r,Jx),15),fe?s.gc()<=fe.gc()?o=s:o=fe:(o=new mt,rt(r,Jx,o))):(o=new mt,rt(r,Kx,o))),o.Fc(e),rt(e,(ft(),lW),n),t.d==n?(Na(t,null),n.e.c.length+n.g.c.length==0&&Nc(n,null),Vyn(n)):(ho(t,null),n.e.c.length+n.g.c.length==0&&Nc(n,null)),Ch(t.a)}function DIn(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn,$n,cr,ai,ys;for(n.Ug("MinWidth layering",1),z=t.b,At=t.a,ys=l(Q(t,(Nt(),sDe)),17).a,g=l(Q(t,aDe),17).a,e.b=ze(Ge(Q(t,y0))),e.d=gs,$e=new K(At);$e.a<$e.c.c.length;)Ee=l(re($e),10),Ee.k==(Jn(),Bs)&&(Fn=Ee.o.b,e.d=b.Math.min(e.d,Fn));for(e.d=b.Math.max(1,e.d),ln=At.c.length,e.c=We(Ur,fi,28,ln,15,1),e.f=We(Ur,fi,28,ln,15,1),e.e=We(Oa,tc,28,ln,15,1),T=0,e.a=0,Je=new K(At);Je.a0?(T=0,te&&(T+=g),T+=(cn-1)*f,Me&&(T+=g),ln&&Me&&(T=b.Math.max(T,QCn(Me,f,Ee,At))),T=e.a&&(r=dLn(e,Ee),C=b.Math.max(C,r.b),$e=b.Math.max($e,r.d),wt(g,new fa(Ee,r)));for(ln=new mt,T=0;T0),te.a.Xb(te.c=--te.b),cn=new vu(e.b),wy(te,cn),br(te.b0){for(F=C<100?null:new hb(C),T=new q7e(t),V=T.g,fe=We(Ur,fi,28,C,15,1),r=0,$e=new Bw(C),s=0;s=0;)if(z!=null?Fi(z,V[w]):qe(z)===qe(V[w])){fe.length<=r&&(te=fe,fe=We(Ur,fi,28,2*fe.length,15,1),gu(te,0,fe,0,r)),fe[r++]=s,zr($e,V[w]);break e}if(z=z,qe(z)===qe(g))break}}if(T=$e,V=$e.g,C=r,r>fe.length&&(te=fe,fe=We(Ur,fi,28,r,15,1),gu(te,0,fe,0,r)),r>0){for(Me=!0,o=0;o=0;)wx(e,fe[f]);if(r!=C){for(s=C;--s>=r;)wx(T,s);te=fe,fe=We(Ur,fi,28,r,15,1),gu(te,0,fe,0,r)}t=T}}}else for(t=W7n(e,t),s=e.i;--s>=0;)t.Hc(e.g[s])&&(wx(e,s),Me=!0);if(Me){if(fe!=null){for(n=t.gc(),L=n==1?iA(e,4,t.Kc().Pb(),null,fe[0],J):iA(e,6,t,fe,fe[0],J),F=n<100?null:new hb(n),s=t.Kc();s.Ob();)z=s.Pb(),F=D4e(e,l(z,76),F);F?(F.nj(L),F.oj()):Bi(e.e,L)}else{for(F=e0n(t.gc()),s=t.Kc();s.Ob();)z=s.Pb(),F=D4e(e,l(z,76),F);F&&F.oj()}return!0}else return!1}function NIn(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me;for(n=new Qdt(t),n.a||uAn(t),T=a_n(t),w=new Iw,te=new Zbt,J=new K(t.a);J.a0||n.o==Y1&&s=n}function BIn(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn,$n,cr;for(Me=t,Ee=new Iw,$e=new Iw,C=Pw(Me,MSe),r=new aot(e,n,Ee,$e),nkn(r.a,r.b,r.c,r.d,C),w=(At=Ee.i,At||(Ee.i=new U5(Ee,Ee.c))),cn=w.Kc();cn.Ob();)for(ln=l(cn.Pb(),166),s=l($i(Ee,ln),21),J=s.Kc();J.Ob();)if(V=J.Pb(),Je=l(J5(e.d,V),166),Je)g=(!ln.e&&(ln.e=new An(cs,ln,10,9)),ln.e),zr(g,Je);else throw f=Zg(Me,Pd),F=X4t+V+Q4t+f,z=F+EE,ue(new dd(z));for(T=(ot=$e.i,ot||($e.i=new U5($e,$e.c))),$n=T.Kc();$n.Ob();)for(Fn=l($n.Pb(),166),o=l($i($e,Fn),21),fe=o.Kc();fe.Ob();)if(te=fe.Pb(),Je=l(J5(e.d,te),166),Je)L=(!Fn.g&&(Fn.g=new An(cs,Fn,9,10)),Fn.g),zr(L,Je);else throw f=Zg(Me,Pd),F=X4t+te+Q4t+f,z=F+EE,ue(new dd(z));!n.b&&(n.b=new An(Sr,n,4,7)),n.b.i!=0&&(!n.c&&(n.c=new An(Sr,n,5,8)),n.c.i!=0)&&(!n.b&&(n.b=new An(Sr,n,4,7)),n.b.i<=1&&(!n.c&&(n.c=new An(Sr,n,5,8)),n.c.i<=1))&&(!n.a&&(n.a=new nt(cs,n,6,6)),n.a).i==1&&(cr=l(Oe((!n.a&&(n.a=new nt(cs,n,6,6)),n.a),0),166),!yue(cr)&&!xue(cr)&&(SU(cr,l(Oe((!n.b&&(n.b=new An(Sr,n,4,7)),n.b),0),84)),_U(cr,l(Oe((!n.c&&(n.c=new An(Sr,n,5,8)),n.c),0),84))))}function FIn(e){var t,n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn;for(Me=e.a,$e=0,Je=Me.length;$e0?(L=l(Rt(F.c.a,f-1),10),ln=z5(e.b,F,L),te=F.n.b-F.d.d-(L.n.b+L.o.b+L.d.a+ln)):te=F.n.b-F.d.d,T=b.Math.min(te,T),f1&&(f=b.Math.min(f,b.Math.abs(l(hf(g.a,1),8).b-C.b)))));else for(J=new K(t.j);J.as&&(o=F.a-s,f=Ni,r.c.length=0,s=F.a),F.a>=s&&(qn(r.c,g),g.a.b>1&&(f=b.Math.min(f,b.Math.abs(l(hf(g.a,g.a.b-2),8).b-F.b)))));if(r.c.length!=0&&o>t.o.a/2&&f>t.o.b/2){for(z=new du,Nc(z,t),ga(z,(_t(),Xn)),z.n.a=t.o.a/2,fe=new du,Nc(fe,t),ga(fe,Mr),fe.n.a=t.o.a/2,fe.n.b=t.o.b,w=new K(r);w.a=T.b?ho(g,fe):ho(g,z)):(T=l(Adn(g.a),8),te=g.a.b==0?I1(g.c):l(a0(g.a),8),te.b>=T.b?Na(g,fe):Na(g,z)),L=l(Q(g,(Nt(),lc)),75),L&&Fy(L,T,!0);t.n.a=s-t.o.a/2}}function jIn(e,t,n){var r,s,o,f,g,w,T,C,L,F;for(g=Fr(e.b,0);g.b!=g.d.c;)if(f=l(Pr(g),40),!wn(f.c,RG))for(T=lEn(f,e),t==(ea(),hc)||t==yc?Gs(T,new gne):Gs(T,new pne),w=T.c.length,r=0;r=0?z=px(g):z=UN(px(g)),e.qf(GE,z)),T=new za,F=!1,e.pf(k3)?(t4e(T,l(e.of(k3),8)),F=!0):Yhn(T,f.a/2,f.b/2),z.g){case 4:rt(C,Qu,(lf(),Yb)),rt(C,fW,(Jm(),F6)),C.o.b=f.b,J<0&&(C.o.a=-J),ga(L,(_t(),sr)),F||(T.a=f.a),T.a-=f.a;break;case 2:rt(C,Qu,(lf(),b4)),rt(C,fW,(Jm(),jE)),C.o.b=f.b,J<0&&(C.o.a=-J),ga(L,(_t(),Zn)),F||(T.a=0);break;case 1:rt(C,wv,(ip(),j6)),C.o.a=f.a,J<0&&(C.o.b=-J),ga(L,(_t(),Mr)),F||(T.b=f.b),T.b-=f.b;break;case 3:rt(C,wv,(ip(),Gx)),C.o.a=f.a,J<0&&(C.o.b=-J),ga(L,(_t(),Xn)),F||(T.b=0)}if(t4e(L.n,T),rt(C,k3,T),t==Iv||t==_g||t==Au){if(V=0,t==Iv&&e.pf(D2))switch(z.g){case 1:case 2:V=l(e.of(D2),17).a;break;case 3:case 4:V=-l(e.of(D2),17).a}else switch(z.g){case 4:case 2:V=o.b,t==_g&&(V/=s.b);break;case 1:case 3:V=o.a,t==_g&&(V/=s.a)}rt(C,m3,V)}return rt(C,Xc,z),C}function $In(){S3e();function e(r){var s=this;this.dispatch=function(o){var f=o.data;switch(f.cmd){case"algorithms":var g=K8e((Cn(),new ja(new pi(am.b))));r.postMessage({id:f.id,data:g});break;case"categories":var w=K8e((Cn(),new ja(new pi(am.c))));r.postMessage({id:f.id,data:w});break;case"options":var T=K8e((Cn(),new ja(new pi(am.d))));r.postMessage({id:f.id,data:T});break;case"register":HMn(f.algorithms),r.postMessage({id:f.id});break;case"layout":vLn(f.graph,f.layoutOptions||{},f.options||{}),r.postMessage({id:f.id,data:f.graph});break}},this.saveDispatch=function(o){try{s.dispatch(o)}catch(f){r.postMessage({id:o.data.id,error:f})}}}function t(r){var s=this;this.dispatcher=new e({postMessage:function(o){s.onmessage({data:o})}}),this.postMessage=function(o){setTimeout(function(){s.dispatcher.saveDispatch({data:o})},0)}}if(typeof document===Ahe&&typeof self!==Ahe){var n=new e(self);self.onmessage=n.saveDispatch}else typeof d!==Ahe&&d.exports&&(Object.defineProperty(p,"__esModule",{value:!0}),d.exports={default:t,Worker:t})}function Rwt(e,t,n){var r,s,o,f,g,w,T,C,L,F;for(C=new hp(n),mc(C,t),rt(C,(ft(),zi),t),C.o.a=t.g,C.o.b=t.f,C.n.a=t.i,C.n.b=t.j,wt(n.a,C),Ti(e.a,t,C),((!t.a&&(t.a=new nt(Li,t,10,11)),t.a).i!=0||Ft(Pt(at(t,(Nt(),w4)))))&&rt(C,tMe,(Hn(),!0)),T=l(Q(n,_u),21),L=l(Q(C,(Nt(),Ds)),101),L==(Pa(),rm)?rt(C,Ds,Z1):L!=Z1&&T.Fc((Ho(),qE)),F=0,r=l(Q(n,Rh),88),w=new ar((!t.c&&(t.c=new nt($l,t,9,9)),t.c));w.e!=w.i.gc();)g=l(dr(w),123),s=ds(t),(qe(at(s,Tg))!==qe((Td(),I2))||qe(at(s,xv))===qe((w2(),RE))||qe(at(s,xv))===qe((w2(),FE))||Ft(Pt(at(s,w3)))||qe(at(s,m4))!==qe((tv(),h4))||qe(at(s,Xb))===qe((Nf(),C3))||qe(at(s,Xb))===qe((Nf(),E4))||qe(at(s,Tv))===qe((E2(),XE))||qe(at(s,Tv))===qe((E2(),QE)))&&!Ft(Pt(at(t,wW)))&&Vi(g,Yi,bt(F++)),Ft(Pt(at(g,Cv)))||XDn(e,g,C,T,r,L);for(f=new ar((!t.n&&(t.n=new nt(nc,t,1,7)),t.n));f.e!=f.i.gc();)o=l(dr(f),135),!Ft(Pt(at(o,Cv)))&&o.a&&wt(C.b,Kce(o));return Ft(Pt(Q(C,JL)))&&T.Fc((Ho(),oW)),Ft(Pt(Q(C,TW)))&&(T.Fc((Ho(),cW)),T.Fc(GL),rt(C,Ds,Z1)),C}function Hle(e,t,n,r,s,o,f){var g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn,$n,cr,ai,ys;for(J=0,Fn=0,T=new K(e.b);T.aJ&&(o&&(yo(ot,z),yo(ln,bt(C.b-1)),wt(e.d,V),g.c.length=0),ai=n.b,ys+=z+t,z=0,L=b.Math.max(L,n.b+n.c+cr)),qn(g.c,w),Hdt(w,ai,ys),L=b.Math.max(L,ai+cr+n.c),z=b.Math.max(z,F),ai+=cr+t,V=w;if(aa(e.a,g),wt(e.d,l(Rt(g,g.c.length-1),163)),L=b.Math.max(L,r),$n=ys+z+n.a,$ns.d.d+s.d.a?C.f.d=!0:(C.f.d=!0,C.f.a=!0))),r.b!=r.d.c&&(t=n);C&&(o=l(or(e.f,f.d.i),60),t.bo.d.d+o.d.a?C.f.d=!0:(C.f.d=!0,C.f.a=!0))}for(g=new lr(fr(Ea(z).a.Kc(),new j));Rr(g);)f=l(yr(g),18),f.a.b!=0&&(t=l(a0(f.a),8),f.d.j==(_t(),Xn)&&(te=new JA(t,new lt(t.a,s.d.d),s,f),te.f.a=!0,te.a=f.d,qn(J.c,te)),f.d.j==Mr&&(te=new JA(t,new lt(t.a,s.d.d+s.d.a),s,f),te.f.d=!0,te.a=f.d,qn(J.c,te)))}return J}function GIn(e,t,n){var r,s,o,f,g,w,T,C,L,F;for(w=new mt,L=t.length,f=i8e(n),T=0;T=V&&(Ee>V&&(z.c.length=0,V=Ee),qn(z.c,f));z.c.length!=0&&(F=l(Rt(z,dV(t,z.c.length)),131),$n.a.Bc(F)!=null,F.s=J++,nke(F,cn,ot),z.c.length=0)}for($e=e.c.length+1,g=new K(e);g.aFn.s&&(fh(n),sl(Fn.i,r),r.c>0&&(r.a=Fn,wt(Fn.t,r),r.b=At,wt(At.i,r)))}function jwt(e,t,n,r,s){var o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn,$n;for(J=new Pu(t.b),$e=new Pu(t.b),F=new Pu(t.b),ln=new Pu(t.b),te=new Pu(t.b),At=Fr(t,0);At.b!=At.d.c;)for(Je=l(Pr(At),12),g=new K(Je.g);g.a0,fe=Je.g.c.length>0,T&&fe?qn(F.c,Je):T?qn(J.c,Je):fe&&qn($e.c,Je);for(V=new K(J);V.aEe.nh()-T.b&&(F=Ee.nh()-T.b),z>Ee.oh()-T.d&&(z=Ee.oh()-T.d),C0){for(Me=Fr(e.f,0);Me.b!=Me.d.c;)Ee=l(Pr(Me),10),Ee.p+=F-e.e;x9e(e),Ch(e.f),bke(e,r,z)}else{for(ci(e.f,z),z.p=r,e.e=b.Math.max(e.e,r),o=new lr(fr(Ea(z).a.Kc(),new j));Rr(o);)s=l(yr(o),18),!s.c.i.c&&s.c.i.k==(Jn(),uu)&&(ci(e.f,s.c.i),s.c.i.p=r-1);e.c=r}else x9e(e),Ch(e.f),r=0,Rr(new lr(fr(Ea(z).a.Kc(),new j)))?(F=0,F=Wdt(F,z),r=F+2,bke(e,r,z)):(ci(e.f,z),z.p=0,e.e=b.Math.max(e.e,0),e.b=l(Rt(e.d.b,0),30),e.c=0);for(e.f.b==0||x9e(e),e.d.a.c.length=0,fe=new mt,T=new K(e.d.b);T.a=48&&t<=57){for(r=t-48;s=48&&t<=57;)if(r=r*10+t-48,r<0)throw ue(new ri(si((Jr(),HSe))))}else throw ue(new ri(si((Jr(),T5t))));if(n=r,t==44){if(s>=e.j)throw ue(new ri(si((Jr(),C5t))));if((t=io(e.i,s++))>=48&&t<=57){for(n=t-48;s=48&&t<=57;)if(n=n*10+t-48,n<0)throw ue(new ri(si((Jr(),HSe))));if(r>n)throw ue(new ri(si((Jr(),S5t))))}else n=-1}if(t!=125)throw ue(new ri(si((Jr(),E5t))));e.bm(s)?(o=(Ii(),Ii(),new _y(9,o)),e.d=s+1):(o=(Ii(),Ii(),new _y(3,o)),e.d=s),o.Om(r),o.Nm(n),Mi(e)}}return o}function JIn(e){var t,n,r,s,o;switch(n=l(Q(e,(ft(),_u)),21),t=$q(W8t),s=l(Q(e,(Nt(),v4)),346),s==(op(),F2)&&Dh(t,Y8t),Ft(Pt(Q(e,vde)))?hi(t,(so(),w0),(po(),_1e)):hi(t,(so(),pu),(po(),_1e)),Q(e,(iU(),TM))!=null&&Dh(t,X8t),(Ft(Pt(Q(e,nDe)))||Ft(Pt(Q(e,JMe))))&&wl(t,(so(),wc),(po(),QAe)),l(Q(e,Rh),88).g){case 2:case 3:case 4:wl(hi(t,(so(),w0),(po(),ZAe)),wc,JAe)}switch(n.Hc((Ho(),oW))&&wl(hi(hi(t,(so(),w0),(po(),XAe)),Cu,WAe),wc,YAe),qe(Q(e,Xb))!==qe((Nf(),PW))&&hi(t,(so(),pu),(po(),gLe)),n.Hc(uW)&&(hi(t,(so(),w0),(po(),vLe)),hi(t,xg,bLe),hi(t,pu,mLe)),qe(Q(e,mW))!==qe((HT(),VL))&&qe(Q(e,yp))!==qe((cp(),aF))&&wl(t,(so(),wc),(po(),cLe)),Ft(Pt(Q(e,eDe)))&&hi(t,(so(),pu),(po(),oLe)),Ft(Pt(Q(e,gde)))&&hi(t,(so(),pu),(po(),wLe)),hCn(e)&&(qe(Q(e,v4))===qe(F2)?r=l(Q(e,IB),299):r=l(Q(e,dde),299),o=r==(yT(),J1e)?(po(),pLe):(po(),kLe),hi(t,(so(),Cu),o)),l(Q(e,ADe),388).g){case 1:hi(t,(so(),Cu),(po(),yLe));break;case 2:wl(hi(hi(t,(so(),pu),(po(),UAe)),Cu,VAe),wc,GAe)}return qe(Q(e,Tg))!==qe((Td(),I2))&&hi(t,(so(),pu),(po(),xLe)),t}function Hwt(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me;if(Hu(e.a,t)){if(K0(l(or(e.a,t),49),n))return 1}else Ti(e.a,t,new Ys);if(Hu(e.a,n)){if(K0(l(or(e.a,n),49),t))return-1}else Ti(e.a,n,new Ys);if(Hu(e.e,t)){if(K0(l(or(e.e,t),49),n))return-1}else Ti(e.e,t,new Ys);if(Hu(e.e,n)){if(K0(l(or(e.a,n),49),t))return 1}else Ti(e.e,n,new Ys);if(e.c==(Td(),Nde)||!rs(t,(ft(),Yi))||!rs(n,(ft(),Yi))){for(L=null,T=new K(t.j);T.af?XT(e,t,n):XT(e,n,t),sf?1:0}return r=l(Q(t,(ft(),Yi)),17).a,o=l(Q(n,Yi),17).a,r>o?XT(e,t,n):XT(e,n,t),ro?1:0}function e3(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te;if(n==null)return null;if(e.a!=t.jk())throw ue(new Wn(kE+t.xe()+c3));if(De(t,469)){if(te=HSn(l(t,685),n),!te)throw ue(new Wn(t0e+n+"' is not a valid enumerator of '"+t.xe()+"'"));return te}switch(b2((kl(),no),t).Nl()){case 2:{n=ku(n,!1);break}case 3:{n=ku(n,!0);break}}if(r=b2(no,t).Jl(),r)return r.jk().wi().ti(r,n);if(F=b2(no,t).Ll(),F){for(te=new mt,T=Rce(n),C=0,L=T.length;C1)for(V=new H8((!e.a&&(e.a=new nt(cs,e,6,6)),e.a));V.e!=V.i.gc();)$A(V);for(f=l(Oe((!e.a&&(e.a=new nt(cs,e,6,6)),e.a),0),166),te=ai,ai>Je+$e?te=Je+$e:aiot+J?fe=ot+J:ysJe-$e&&teot-J&&feai+cr?ln=ai+cr:Jeys+At?cn=ys+At:otai-cr&&lnys-At&&cnn&&(F=n-1),z=U2+Yl(t,24)*RP*L-L/2,z<0?z=1:z>r&&(z=r-1),s=(fb(),w=new LS,w),yU(s,F),wU(s,z),zr((!f.a&&(f.a=new Qs(qh,f,5)),f.a),s)}function Uwt(e){fw(e,new iv(uw(aw(cw(ow(new x1,Jl),"ELK Rectangle Packing"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."),new u8))),pt(e,Jl,Nx,1.3),pt(e,Jl,dE,(Hn(),!1)),pt(e,Jl,r3,kOe),pt(e,Jl,t4,15),pt(e,Jl,OG,It(oSt)),pt(e,Jl,T6,It(lSt)),pt(e,Jl,Bx,It(fSt)),pt(e,Jl,Px,It(dSt)),pt(e,Jl,gE,It(uSt)),pt(e,Jl,dL,It(Ege)),pt(e,Jl,pE,It(gSt)),pt(e,Jl,rSe,It(SOe)),pt(e,Jl,iSe,It(COe)),pt(e,Jl,nSe,It(Sge)),pt(e,Jl,tSe,It(_Oe)),pt(e,Jl,sSe,It(xOe)),pt(e,Jl,aSe,It(Cge)),pt(e,Jl,oSe,It(yOe)),pt(e,Jl,cSe,It(EOe)),pt(e,Jl,fL,It(wOe)),pt(e,Jl,PG,It(cSt)),pt(e,Jl,ZCe,It(KB)),pt(e,Jl,JCe,It(vOe)),pt(e,Jl,eSe,It(WB)),pt(e,Jl,QCe,It(TOe))}function Vle(e,t){Mle();var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn,$n,cr,ai;if(ln=e.e,V=e.d,s=e.a,ln==0)switch(t){case 0:return"0";case 1:return oE;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return ot=new lb,t<0?ot.a+="0E+":ot.a+="0E",ot.a+=-t,ot.a}if(Me=V*10+1+7,$e=We(xf,Ad,28,Me+1,15,1),n=Me,V==1)if(g=s[0],g<0){ai=xa(g,Uo);do J=ai,ai=tP(ai,10),$e[--n]=48+Yr(Df(J,go(ai,10)))&ta;while(su(ai,0)!=0)}else{ai=g;do J=ai,ai=ai/10|0,$e[--n]=48+(J-ai*10)&ta;while(ai!=0)}else{Fn=We(Ur,fi,28,V,15,1),cr=V,gu(s,0,Fn,0,cr);e:for(;;){for(At=0,T=cr-1;T>=0;T--)$n=fo(u0(At,32),xa(Fn[T],Uo)),fe=zxn($n),Fn[T]=Yr(fe),At=Yr(Tw(fe,32));Ee=Yr(At),te=n;do $e[--n]=48+Ee%10&ta;while((Ee=Ee/10|0)!=0&&n!=0);for(r=9-te+n,w=0;w0;w++)$e[--n]=48;for(L=cr-1;Fn[L]==0;L--)if(L==0)break e;cr=L+1}for(;$e[n]==48;)++n}if(z=ln<0,f=Me-n-t-1,t==0)return z&&($e[--n]=45),If($e,n,Me-n);if(t>0&&f>=-6){if(f>=0){for(C=n+f,F=Me-1;F>=C;F--)$e[F+1]=$e[F];return $e[++C]=46,z&&($e[--n]=45),If($e,n,Me-n+1)}for(L=2;L<-f+1;L++)$e[--n]=48;return $e[--n]=46,$e[--n]=48,z&&($e[--n]=45),If($e,n,Me-n)}return cn=n+1,o=Me,Je=new A5,z&&(Je.a+="-"),o-cn>=1?(yb(Je,$e[n]),Je.a+=".",Je.a+=If($e,n+1,Me-n-1)):Je.a+=If($e,n,Me-n),Je.a+="E",f>0&&(Je.a+="+"),Je.a+=""+f,Je.a}function Vwt(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot;switch(e.c=t,e.g=new Nr,n=(dw(),new sw(e.c)),r=new t_(n),U8e(r),Me=Zr(at(e.c,(rP(),GOe))),w=l(at(e.c,Bge),324),Je=l(at(e.c,Fge),437),f=l(at(e.c,HOe),490),$e=l(at(e.c,Pge),438),e.j=ze(Ge(at(e.c,ASt))),g=e.a,w.g){case 0:g=e.a;break;case 1:g=e.b;break;case 2:g=e.i;break;case 3:g=e.e;break;case 4:g=e.f;break;default:throw ue(new Wn(UG+(w.f!=null?w.f:""+w.g)))}if(e.d=new Rot(g,Je,f),rt(e.d,(mT(),$L),Pt(at(e.c,SSt))),e.d.c=Ft(Pt(at(e.c,UOe))),PH(e.c).i==0)return e.d;for(L=new ar(PH(e.c));L.e!=L.i.gc();){for(C=l(dr(L),27),z=C.g/2,F=C.f/2,ot=new lt(C.i+z,C.j+F);Hu(e.g,ot);)yw(ot,(b.Math.random()-.5)*Dd,(b.Math.random()-.5)*Dd);J=l(at(C,(bi(),rC)),140),te=new Jot(ot,new Zh(ot.a-z-e.j/2-J.b,ot.b-F-e.j/2-J.d,C.g+e.j+(J.b+J.c),C.f+e.j+(J.d+J.a))),wt(e.d.i,te),Ti(e.g,ot,new fa(te,C))}switch($e.g){case 0:if(Me==null)e.d.d=l(Rt(e.d.i,0),68);else for(Ee=new K(e.d.i);Ee.a0?cr+1:1);for(f=new K(ot.g);f.a0?cr+1:1)}e.c[T]==0?ci(e.e,J):e.a[T]==0&&ci(e.f,J),++T}for(V=-1,z=1,L=new mt,e.d=l(Q(t,(ft(),Qx)),234);Hh>0;){for(;e.e.b!=0;)ys=l(Bae(e.e),10),e.b[ys.p]=V--,Oke(e,ys),--Hh;for(;e.f.b!=0;)zl=l(Bae(e.f),10),e.b[zl.p]=z++,Oke(e,zl),--Hh;if(Hh>0){for(F=ao,Ee=new K(Me);Ee.a=F&&($e>F&&(L.c.length=0,F=$e),qn(L.c,J)));C=e.sg(L),e.b[C.p]=z++,Oke(e,C),--Hh}}for(ai=Me.c.length+1,T=0;Te.b[fc]&&(Jw(r,!0),rt(t,AB,(Hn(),!0)));e.a=null,e.c=null,e.b=null,Ch(e.f),Ch(e.e),n.Vg()}function Gwt(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot;for(Je=l(Oe((!e.a&&(e.a=new nt(cs,e,6,6)),e.a),0),166),C=new pl,$e=new Nr,ot=tvt(Je),Ru($e.f,Je,ot),F=new Nr,r=new os,V=ag(Lh(he(le(Fh,1),jn,20,0,[(!t.d&&(t.d=new An(js,t,8,5)),t.d),(!t.e&&(t.e=new An(js,t,7,4)),t.e)])));Rr(V);){if(z=l(yr(V),74),(!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i!=1)throw ue(new Wn(I4t+(!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i));z!=e&&(te=l(Oe((!z.a&&(z.a=new nt(cs,z,6,6)),z.a),0),166),_s(r,te,r.c.b,r.c),J=l(dc(zo($e.f,te)),13),J||(J=tvt(te),Ru($e.f,te,J)),L=n?ya(new xo(l(Rt(ot,ot.c.length-1),8)),l(Rt(J,J.c.length-1),8)):ya(new xo((Sn(0,ot.c.length),l(ot.c[0],8))),(Sn(0,J.c.length),l(J.c[0],8))),Ru(F.f,te,L))}if(r.b!=0)for(fe=l(Rt(ot,n?ot.c.length-1:0),8),T=1;T1&&_s(C,fe,C.c.b,C.c),uce(s)));fe=Ee}return C}function Kwt(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn;for(n.Ug(Kyt,1),Fn=l(kc(ji(new vn(null,new kn(t,16)),new xne),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[(Nl(),Cc)]))),15),C=l(kc(ji(new vn(null,new kn(t,16)),new WXe(t)),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[Cc]))),15),V=l(kc(ji(new vn(null,new kn(t,16)),new KXe(t)),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[Cc]))),15),J=We(qW,jG,40,t.gc(),0,1),f=0;f=0&&cn=0&&!J[z]){J[z]=s,C.gd(g),--g;break}if(z=cn-F,z=0&&!J[z]){J[z]=s,C.gd(g),--g;break}}for(V.jd(new kne),w=J.length-1;w>=0;w--)!J[w]&&!V.dc()&&(J[w]=l(V.Xb(0),40),V.gd(0));for(T=0;T=0;w--)ci(n,(Sn(w,f.c.length),l(f.c[w],8)));return n}function Ywt(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e;for(Me=ze(Ge(at(t,(fg(),_4)))),z=ze(Ge(at(t,vM))),F=ze(Ge(at(t,JW))),B7e((!t.a&&(t.a=new nt(Li,t,10,11)),t.a)),fe=jvt((!t.a&&(t.a=new nt(Li,t,10,11)),t.a),Me,e.b),te=0;teF&&ZN((Sn(F,t.c.length),l(t.c[F],186)),C),C=null;t.c.length>F&&(Sn(F,t.c.length),l(t.c[F],186)).a.c.length==0;)sl(t,(Sn(F,t.c.length),t.c[F]));if(!C){--f;continue}if(!Ft(Pt(l(Rt(C.b,0),27).of((z1(),WB))))&&kAn(t,V,o,C,te,n,F,r)){J=!0;continue}if(te){if(z=V.b,L=C.f,!Ft(Pt(l(Rt(C.b,0),27).of(WB)))&&$Mn(t,V,o,C,n,F,r,s)){if(J=!0,z=e.j){e.a=-1,e.c=1;return}if(t=io(e.i,e.d++),e.a=t,e.b==1){switch(t){case 92:if(r=10,e.d>=e.j)throw ue(new ri(si((Jr(),QG))));e.a=io(e.i,e.d++);break;case 45:(e.e&512)==512&&e.d=e.j||io(e.i,e.d)!=63)break;if(++e.d>=e.j)throw ue(new ri(si((Jr(),g0e))));switch(t=io(e.i,e.d++),t){case 58:r=13;break;case 61:r=14;break;case 33:r=15;break;case 91:r=19;break;case 62:r=18;break;case 60:if(e.d>=e.j)throw ue(new ri(si((Jr(),g0e))));if(t=io(e.i,e.d++),t==61)r=16;else if(t==33)r=17;else throw ue(new ri(si((Jr(),s5t))));break;case 35:for(;e.d=e.j)throw ue(new ri(si((Jr(),QG))));e.a=io(e.i,e.d++);break;default:r=0}e.c=r}function cOn(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te;if(n.Ug("Process compaction",1),!!Ft(Pt(Q(t,(Vc(),_Ie))))){for(s=l(Q(t,_3),88),z=ze(Ge(Q(t,tge))),PLn(e,t,s),CIn(t,z/2/2),V=t.b,Wm(V,new $Xe(s)),T=Fr(V,0);T.b!=T.d.c;)if(w=l(Pr(T),40),!Ft(Pt(Q(w,(Zi(),Zb))))){if(r=o_n(w,s),J=nLn(w,t),L=0,F=0,r)switch(te=r.e,s.g){case 2:L=te.a-z-w.f.a,J.e.a-z-w.f.aL&&(L=J.e.a+J.f.a+z),F=L+w.f.a;break;case 4:L=te.b-z-w.f.b,J.e.b-z-w.f.bL&&(L=J.e.b+J.f.b+z),F=L+w.f.b}else if(J)switch(s.g){case 2:L=J.e.a-z-w.f.a,F=L+w.f.a;break;case 1:L=J.e.a+J.f.a+z,F=L+w.f.a;break;case 4:L=J.e.b-z-w.f.b,F=L+w.f.b;break;case 3:L=J.e.b+J.f.b+z,F=L+w.f.b}qe(Q(t,ege))===qe((kA(),zB))?(o=L,f=F,g=ET(ji(new vn(null,new kn(e.a,16)),new Dtt(o,f))),g.a!=null?s==(ea(),hc)||s==yc?w.e.a=L:w.e.b=L:(s==(ea(),hc)||s==vf?g=ET(ji(oft(new vn(null,new kn(e.a,16))),new zXe(o))):g=ET(ji(oft(new vn(null,new kn(e.a,16))),new qXe(o))),g.a!=null&&(s==hc||s==yc?w.e.a=ze(Ge((br(g.a!=null),l(g.a,42)).a)):w.e.b=ze(Ge((br(g.a!=null),l(g.a,42)).a)))),g.a!=null&&(C=bc(e.a,(br(g.a!=null),g.a),0),C>0&&C!=l(Q(w,$d),17).a&&(rt(w,wIe,(Hn(),!0)),rt(w,$d,bt(C))))):s==(ea(),hc)||s==yc?w.e.a=L:w.e.b=L}n.Vg()}}function Xwt(e){var t,n,r,s,o,f,g,w,T;for(e.b=1,Mi(e),t=null,e.c==0&&e.a==94?(Mi(e),t=(Ii(),Ii(),new _h(4)),xu(t,0,SE),g=new _h(4)):g=(Ii(),Ii(),new _h(4)),s=!0;(T=e.c)!=1;){if(T==0&&e.a==93&&!s){t&&(rL(t,g),g=t);break}if(n=e.a,r=!1,T==10)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:Xy(g,QT(n)),r=!0;break;case 105:case 73:case 99:case 67:n=(Xy(g,QT(n)),-1),n<0&&(r=!0);break;case 112:case 80:if(w=F9e(e,n),!w)throw ue(new ri(si((Jr(),p0e))));Xy(g,w),r=!0;break;default:n=vke(e)}else if(T==24&&!s){if(t&&(rL(t,g),g=t),o=Xwt(e),rL(g,o),e.c!=0||e.a!=93)throw ue(new ri(si((Jr(),p5t))));break}if(Mi(e),!r){if(T==0){if(n==91)throw ue(new ri(si((Jr(),zSe))));if(n==93)throw ue(new ri(si((Jr(),qSe))));if(n==45&&!s&&e.a!=93)throw ue(new ri(si((Jr(),b0e))))}if(e.c!=0||e.a!=45||n==45&&s)xu(g,n,n);else{if(Mi(e),(T=e.c)==1)throw ue(new ri(si((Jr(),JG))));if(T==0&&e.a==93)xu(g,n,n),xu(g,45,45);else{if(T==0&&e.a==93||T==24)throw ue(new ri(si((Jr(),b0e))));if(f=e.a,T==0){if(f==91)throw ue(new ri(si((Jr(),zSe))));if(f==93)throw ue(new ri(si((Jr(),qSe))));if(f==45)throw ue(new ri(si((Jr(),b0e))))}else T==10&&(f=vke(e));if(Mi(e),n>f)throw ue(new ri(si((Jr(),v5t))));xu(g,n,f)}}}s=!1}if(e.c==1)throw ue(new ri(si((Jr(),JG))));return l6(g),tL(g),e.b=0,Mi(e),g}function uOn(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je;if(n.Ug("Coffman-Graham Layering",1),t.a.c.length==0){n.Vg();return}for(Je=l(Q(t,(Nt(),iDe)),17).a,w=0,f=0,F=new K(t.a);F.a=Je||!r6n(fe,r))&&(r=Wat(t,C)),Ha(fe,r),o=new lr(fr(Ea(fe).a.Kc(),new j));Rr(o);)s=l(yr(o),18),!e.a[s.p]&&(J=s.c.i,--e.e[J.p],e.e[J.p]==0&&W8(qT(z,J),cE));for(T=C.c.length-1;T>=0;--T)wt(t.b,(Sn(T,C.c.length),l(C.c[T],30)));t.a.c.length=0,n.Vg()}function Qwt(e,t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e;$e=!1;do for($e=!1,o=t?new pr(e.a.b).a.gc()-2:1;t?o>=0:ol(Q(te,Yi),17).a)&&(Me=!1);if(Me){for(w=t?o+1:o-1,g=T6e(e.a,bt(w)),f=!1,Ee=!0,r=!1,C=Fr(g,0);C.b!=C.d.c;)T=l(Pr(C),10),rs(T,Yi)?T.p!=L.p&&(f=f|(t?l(Q(T,Yi),17).al(Q(L,Yi),17).a),Ee=!1):!f&&Ee&&T.k==(Jn(),uu)&&(r=!0,t?F=l(yr(new lr(fr(Ea(T).a.Kc(),new j))),18).c.i:F=l(yr(new lr(fr(qs(T).a.Kc(),new j))),18).d.i,F==L&&(t?n=l(yr(new lr(fr(qs(T).a.Kc(),new j))),18).d.i:n=l(yr(new lr(fr(Ea(T).a.Kc(),new j))),18).c.i,(t?l(by(e.a,n),17).a-l(by(e.a,F),17).a:l(by(e.a,F),17).a-l(by(e.a,n),17).a)<=2&&(Ee=!1)));if(r&&Ee&&(t?n=l(yr(new lr(fr(qs(L).a.Kc(),new j))),18).d.i:n=l(yr(new lr(fr(Ea(L).a.Kc(),new j))),18).c.i,(t?l(by(e.a,n),17).a-l(by(e.a,L),17).a:l(by(e.a,L),17).a-l(by(e.a,n),17).a)<=2&&n.k==(Jn(),Bs)&&(Ee=!1)),f||Ee){for(J=Abt(e,L,t);J.a.gc()!=0;)V=l(J.a.ec().Kc().Pb(),10),J.a.Bc(V)!=null,Ga(J,Abt(e,V,t));--z,$e=!0}}}while($e)}function lOn(e){Wr(e.c,ui,he(le($t,1),dt,2,6,[oo,"http://www.w3.org/2001/XMLSchema#decimal"])),Wr(e.d,ui,he(le($t,1),dt,2,6,[oo,"http://www.w3.org/2001/XMLSchema#integer"])),Wr(e.e,ui,he(le($t,1),dt,2,6,[oo,"http://www.w3.org/2001/XMLSchema#boolean"])),Wr(e.f,ui,he(le($t,1),dt,2,6,[oo,"EBoolean",Ai,"EBoolean:Object"])),Wr(e.i,ui,he(le($t,1),dt,2,6,[oo,"http://www.w3.org/2001/XMLSchema#byte"])),Wr(e.g,ui,he(le($t,1),dt,2,6,[oo,"http://www.w3.org/2001/XMLSchema#hexBinary"])),Wr(e.j,ui,he(le($t,1),dt,2,6,[oo,"EByte",Ai,"EByte:Object"])),Wr(e.n,ui,he(le($t,1),dt,2,6,[oo,"EChar",Ai,"EChar:Object"])),Wr(e.t,ui,he(le($t,1),dt,2,6,[oo,"http://www.w3.org/2001/XMLSchema#double"])),Wr(e.u,ui,he(le($t,1),dt,2,6,[oo,"EDouble",Ai,"EDouble:Object"])),Wr(e.F,ui,he(le($t,1),dt,2,6,[oo,"http://www.w3.org/2001/XMLSchema#float"])),Wr(e.G,ui,he(le($t,1),dt,2,6,[oo,"EFloat",Ai,"EFloat:Object"])),Wr(e.I,ui,he(le($t,1),dt,2,6,[oo,"http://www.w3.org/2001/XMLSchema#int"])),Wr(e.J,ui,he(le($t,1),dt,2,6,[oo,"EInt",Ai,"EInt:Object"])),Wr(e.N,ui,he(le($t,1),dt,2,6,[oo,"http://www.w3.org/2001/XMLSchema#long"])),Wr(e.O,ui,he(le($t,1),dt,2,6,[oo,"ELong",Ai,"ELong:Object"])),Wr(e.Z,ui,he(le($t,1),dt,2,6,[oo,"http://www.w3.org/2001/XMLSchema#short"])),Wr(e.$,ui,he(le($t,1),dt,2,6,[oo,"EShort",Ai,"EShort:Object"])),Wr(e._,ui,he(le($t,1),dt,2,6,[oo,"http://www.w3.org/2001/XMLSchema#string"]))}function hOn(e,t,n,r,s,o,f){var g,w,T,C,L,F,z,V;return F=l(r.a,17).a,z=l(r.b,17).a,L=e.b,V=e.c,g=0,C=0,t==(ea(),hc)||t==yc?(C=yO(z1t(Ey(gc(new vn(null,new kn(n.b,16)),new Ene),new une))),L.e.b+L.f.b/2>C?(T=++z,g=ze(Ge(uh(xy(gc(new vn(null,new kn(n.b,16)),new Ntt(s,T)),new d$))))):(w=++F,g=ze(Ge(uh(X8(gc(new vn(null,new kn(n.b,16)),new Ptt(s,w)),new lne)))))):(C=yO(z1t(Ey(gc(new vn(null,new kn(n.b,16)),new dne),new f$))),L.e.a+L.f.a/2>C?(T=++z,g=ze(Ge(uh(xy(gc(new vn(null,new kn(n.b,16)),new Itt(s,T)),new hne))))):(w=++F,g=ze(Ge(uh(X8(gc(new vn(null,new kn(n.b,16)),new Ott(s,w)),new EI)))))),t==hc?(yo(e.a,new lt(ze(Ge(Q(L,(Zi(),o1))))-s,g)),yo(e.a,new lt(V.e.a+V.f.a+s+o,g)),yo(e.a,new lt(V.e.a+V.f.a+s+o,V.e.b+V.f.b/2)),yo(e.a,new lt(V.e.a+V.f.a,V.e.b+V.f.b/2))):t==yc?(yo(e.a,new lt(ze(Ge(Q(L,(Zi(),x0))))+s,L.e.b+L.f.b/2)),yo(e.a,new lt(L.e.a+L.f.a+s,g)),yo(e.a,new lt(V.e.a-s-o,g)),yo(e.a,new lt(V.e.a-s-o,V.e.b+V.f.b/2)),yo(e.a,new lt(V.e.a,V.e.b+V.f.b/2))):t==vf?(yo(e.a,new lt(g,ze(Ge(Q(L,(Zi(),o1))))-s)),yo(e.a,new lt(g,V.e.b+V.f.b+s+o)),yo(e.a,new lt(V.e.a+V.f.a/2,V.e.b+V.f.b+s+o)),yo(e.a,new lt(V.e.a+V.f.a/2,V.e.b+V.f.b+s))):(e.a.b==0||(l(a0(e.a),8).b=ze(Ge(Q(L,(Zi(),x0))))+s*l(f.b,17).a),yo(e.a,new lt(g,ze(Ge(Q(L,(Zi(),x0))))+s*l(f.b,17).a)),yo(e.a,new lt(g,V.e.b-s*l(f.a,17).a-o))),new fa(bt(F),bt(z))}function fOn(e){var t,n,r,s,o,f,g,w,T,C,L,F,z;if(f=!0,L=null,r=null,s=null,t=!1,z=hAt,T=null,o=null,g=0,w=due(e,g,qPe,HPe),w=0&&wn(e.substr(g,2),"//")?(g+=2,w=due(e,g,zM,qM),r=(Va(g,w,e.length),e.substr(g,w-g)),g=w):L!=null&&(g==e.length||(Yn(g,e.length),e.charCodeAt(g)!=47))&&(f=!1,w=Kye(e,ol(35),g),w==-1&&(w=e.length),r=(Va(g,w,e.length),e.substr(g,w-g)),g=w);if(!n&&g0&&io(C,C.length-1)==58&&(s=C,g=w)),gcle(o))&&(L=o);for(!L&&(L=(Sn(0,te.c.length),l(te.c[0],185))),J=new K(t.b);J.aL&&($n=0,cr+=C+At,C=0),zmt(Je,f,$n,cr),t=b.Math.max(t,$n+ot.a),C=b.Math.max(C,ot.b),$n+=ot.a+At;for($e=new Nr,n=new Nr,cn=new K(e);cn.a=-1900?1:0,n>=4?li(e,he(le($t,1),dt,2,6,[g3t,p3t])[g]):li(e,he(le($t,1),dt,2,6,["BC","AD"])[g]);break;case 121:I6n(e,n,r);break;case 77:Q_n(e,n,r);break;case 107:w=s.q.getHours(),w==0?ug(e,24,n):ug(e,w,n);break;case 83:lCn(e,n,s);break;case 69:C=r.q.getDay(),n==5?li(e,he(le($t,1),dt,2,6,["S","M","T","W","T","F","S"])[C]):n==4?li(e,he(le($t,1),dt,2,6,[hhe,fhe,dhe,ghe,phe,bhe,mhe])[C]):li(e,he(le($t,1),dt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[C]);break;case 97:s.q.getHours()>=12&&s.q.getHours()<24?li(e,he(le($t,1),dt,2,6,["AM","PM"])[1]):li(e,he(le($t,1),dt,2,6,["AM","PM"])[0]);break;case 104:L=s.q.getHours()%12,L==0?ug(e,12,n):ug(e,L,n);break;case 75:F=s.q.getHours()%12,ug(e,F,n);break;case 72:z=s.q.getHours(),ug(e,z,n);break;case 99:V=r.q.getDay(),n==5?li(e,he(le($t,1),dt,2,6,["S","M","T","W","T","F","S"])[V]):n==4?li(e,he(le($t,1),dt,2,6,[hhe,fhe,dhe,ghe,phe,bhe,mhe])[V]):n==3?li(e,he(le($t,1),dt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[V]):ug(e,V,1);break;case 76:J=r.q.getMonth(),n==5?li(e,he(le($t,1),dt,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[J]):n==4?li(e,he(le($t,1),dt,2,6,[ehe,the,nhe,rhe,Ax,ihe,she,ahe,ohe,che,uhe,lhe])[J]):n==3?li(e,he(le($t,1),dt,2,6,["Jan","Feb","Mar","Apr",Ax,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[J]):ug(e,J+1,n);break;case 81:te=r.q.getMonth()/3|0,n<4?li(e,he(le($t,1),dt,2,6,["Q1","Q2","Q3","Q4"])[te]):li(e,he(le($t,1),dt,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[te]);break;case 100:fe=r.q.getDate(),ug(e,fe,n);break;case 109:T=s.q.getMinutes(),ug(e,T,n);break;case 115:f=s.q.getSeconds(),ug(e,f,n);break;case 122:n<4?li(e,o.c[0]):li(e,o.c[1]);break;case 118:li(e,o.b);break;case 90:n<3?li(e,rTn(o)):n==3?li(e,cTn(o)):li(e,uTn(o.a));break;default:return!1}return!0}function fTe(e,t,n,r){var s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn,$n,cr,ai;if(Mmt(t),w=l(Oe((!t.b&&(t.b=new An(Sr,t,4,7)),t.b),0),84),C=l(Oe((!t.c&&(t.c=new An(Sr,t,5,8)),t.c),0),84),g=vc(w),T=vc(C),f=(!t.a&&(t.a=new nt(cs,t,6,6)),t.a).i==0?null:l(Oe((!t.a&&(t.a=new nt(cs,t,6,6)),t.a),0),166),At=l(or(e.a,g),10),$n=l(or(e.a,T),10),ln=null,cr=null,De(w,193)&&(ot=l(or(e.a,w),305),De(ot,12)?ln=l(ot,12):De(ot,10)&&(At=l(ot,10),ln=l(Rt(At.j,0),12))),De(C,193)&&(Fn=l(or(e.a,C),305),De(Fn,12)?cr=l(Fn,12):De(Fn,10)&&($n=l(Fn,10),cr=l(Rt($n.j,0),12))),!At||!$n)throw ue(new O8("The source or the target of edge "+t+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(J=new Dw,mc(J,t),rt(J,(ft(),zi),t),rt(J,(Nt(),lc),null),z=l(Q(r,_u),21),At==$n&&z.Fc((Ho(),KL)),ln||(Je=(qo(),$u),cn=null,f&&F5(l(Q(At,Ds),101))&&(cn=new lt(f.j,f.k),yut(cn,nN(t)),Wut(cn,n),Iy(T,g)&&(Je=Fl,Pi(cn,At.n))),ln=Dvt(At,cn,Je,r)),cr||(Je=(qo(),Fl),ai=null,f&&F5(l(Q($n,Ds),101))&&(ai=new lt(f.b,f.c),yut(ai,nN(t)),Wut(ai,n)),cr=Dvt($n,ai,Je,Ja($n))),ho(J,ln),Na(J,cr),(ln.e.c.length>1||ln.g.c.length>1||cr.e.c.length>1||cr.g.c.length>1)&&z.Fc((Ho(),GL)),F=new ar((!t.n&&(t.n=new nt(nc,t,1,7)),t.n));F.e!=F.i.gc();)if(L=l(dr(F),135),!Ft(Pt(at(L,Cv)))&&L.a)switch(te=Kce(L),wt(J.b,te),l(Q(te,jd),278).g){case 1:case 2:z.Fc((Ho(),zE));break;case 0:z.Fc((Ho(),$E)),rt(te,jd,(F1(),iC))}if(o=l(Q(r,ZL),322),fe=l(Q(r,_W),323),s=o==(gA(),CB)||fe==(NA(),Ide),f&&(!f.a&&(f.a=new Qs(qh,f,5)),f.a).i!=0&&s){for(Ee=sP(f),V=new pl,$e=Fr(Ee,0);$e.b!=$e.d.c;)Me=l(Pr($e),8),ci(V,new xo(Me));rt(J,aMe,V)}return J}function bOn(e,t,n,r){var s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn,$n,cr,ai,ys;for(cn=0,Fn=0,At=new Nr,Je=l(uh(xy(gc(new vn(null,new kn(e.b,16)),new fne),new wne)),17).a+1,ln=We(Ur,fi,28,Je,15,1),te=We(Ur,fi,28,Je,15,1),J=0;J1)for(g=cr+1;gT.b.e.b*(1-fe)+T.c.e.b*fe));V++);if(ot.gc()>0&&(ai=T.a.b==0?Xa(T.b.e):l(a0(T.a),8),Me=Pi(Xa(l(ot.Xb(ot.gc()-1),40).e),l(ot.Xb(ot.gc()-1),40).f),F=Pi(Xa(l(ot.Xb(0),40).e),l(ot.Xb(0),40).f),V>=ot.gc()-1&&ai.b>Me.b&&T.c.e.b>Me.b||V<=0&&ai.bT.b.e.a*(1-fe)+T.c.e.a*fe));V++);if(ot.gc()>0&&(ai=T.a.b==0?Xa(T.b.e):l(a0(T.a),8),Me=Pi(Xa(l(ot.Xb(ot.gc()-1),40).e),l(ot.Xb(ot.gc()-1),40).f),F=Pi(Xa(l(ot.Xb(0),40).e),l(ot.Xb(0),40).f),V>=ot.gc()-1&&ai.a>Me.a&&T.c.e.a>Me.a||V<=0&&ai.a=ze(Ge(Q(e,(Zi(),kIe))))&&++Fn):(z.f&&z.d.e.a<=ze(Ge(Q(e,(Zi(),Xde))))&&++cn,z.g&&z.c.e.a+z.c.f.a>=ze(Ge(Q(e,(Zi(),xIe))))&&++Fn)}else $e==0?N9e(T):$e<0&&(++ln[cr],++te[ys],$n=hOn(T,t,e,new fa(bt(cn),bt(Fn)),n,r,new fa(bt(te[ys]),bt(ln[cr]))),cn=l($n.a,17).a,Fn=l($n.b,17).a)}function mOn(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee;if(r=t,w=n,e.b&&r.j==(_t(),Zn)&&w.j==(_t(),Zn)&&(Ee=r,r=w,w=Ee),Hu(e.a,r)){if(K0(l(or(e.a,r),49),w))return 1}else Ti(e.a,r,new Ys);if(Hu(e.a,w)){if(K0(l(or(e.a,w),49),r))return-1}else Ti(e.a,w,new Ys);if(Hu(e.d,r)){if(K0(l(or(e.d,r),49),w))return-1}else Ti(e.d,r,new Ys);if(Hu(e.d,w)){if(K0(l(or(e.a,w),49),r))return 1}else Ti(e.d,w,new Ys);if(r.j!=w.j)return fe=shn(r.j,w.j),fe==-1?ff(e,w,r):ff(e,r,w),fe;if(r.e.c.length!=0&&w.e.c.length!=0){if(e.b&&(fe=p1t(r,w),fe!=0))return fe==-1?ff(e,w,r):fe==1&&ff(e,r,w),fe;if(o=l(Rt(r.e,0),18).c.i,C=l(Rt(w.e,0),18).c.i,o==C)return s=l(Q(l(Rt(r.e,0),18),(ft(),Yi)),17).a,T=l(Q(l(Rt(w.e,0),18),Yi),17).a,s>T?ff(e,r,w):ff(e,w,r),sT?1:0;for(V=e.c,J=0,te=V.length;JT?ff(e,r,w):ff(e,w,r),sT?1:0):e.b&&(fe=p1t(r,w),fe!=0)?(fe==-1?ff(e,w,r):fe==1&&ff(e,r,w),fe):(f=0,L=0,rs(l(Rt(r.g,0),18),Yi)&&(f=l(Q(l(Rt(r.g,0),18),Yi),17).a),rs(l(Rt(w.g,0),18),Yi)&&(L=l(Q(l(Rt(r.g,0),18),Yi),17).a),g&&g==F?Ft(Pt(Q(l(Rt(r.g,0),18),W1)))&&!Ft(Pt(Q(l(Rt(w.g,0),18),W1)))?(ff(e,r,w),1):!Ft(Pt(Q(l(Rt(r.g,0),18),W1)))&&Ft(Pt(Q(l(Rt(w.g,0),18),W1)))?(ff(e,w,r),-1):(f>L?ff(e,r,w):ff(e,w,r),fL?1:0):(e.f&&(e.f._b(g)&&(f=l(e.f.xc(g),17).a),e.f._b(F)&&(L=l(e.f.xc(F),17).a)),f>L?ff(e,r,w):ff(e,w,r),fL?1:0))):r.e.c.length!=0&&w.g.c.length!=0?(ff(e,r,w),1):r.g.c.length!=0&&w.e.c.length!=0?(ff(e,w,r),-1):rs(r,(ft(),Yi))&&rs(w,Yi)?(s=l(Q(r,Yi),17).a,T=l(Q(w,Yi),17).a,s>T?ff(e,r,w):ff(e,w,r),sT?1:0):(ff(e,w,r),-1)}function vOn(e){e.gb||(e.gb=!0,e.b=Uc(e,0),As(e.b,18),ss(e.b,19),e.a=Uc(e,1),As(e.a,1),ss(e.a,2),ss(e.a,3),ss(e.a,4),ss(e.a,5),e.o=Uc(e,2),As(e.o,8),As(e.o,9),ss(e.o,10),ss(e.o,11),ss(e.o,12),ss(e.o,13),ss(e.o,14),ss(e.o,15),ss(e.o,16),ss(e.o,17),ss(e.o,18),ss(e.o,19),ss(e.o,20),ss(e.o,21),ss(e.o,22),ss(e.o,23),oc(e.o),oc(e.o),oc(e.o),oc(e.o),oc(e.o),oc(e.o),oc(e.o),oc(e.o),oc(e.o),oc(e.o),e.p=Uc(e,3),As(e.p,2),As(e.p,3),As(e.p,4),As(e.p,5),ss(e.p,6),ss(e.p,7),oc(e.p),oc(e.p),e.q=Uc(e,4),As(e.q,8),e.v=Uc(e,5),ss(e.v,9),oc(e.v),oc(e.v),oc(e.v),e.w=Uc(e,6),As(e.w,2),As(e.w,3),As(e.w,4),ss(e.w,5),e.B=Uc(e,7),ss(e.B,1),oc(e.B),oc(e.B),oc(e.B),e.Q=Uc(e,8),ss(e.Q,0),oc(e.Q),e.R=Uc(e,9),As(e.R,1),e.S=Uc(e,10),oc(e.S),oc(e.S),oc(e.S),oc(e.S),oc(e.S),oc(e.S),oc(e.S),oc(e.S),oc(e.S),oc(e.S),oc(e.S),oc(e.S),oc(e.S),oc(e.S),oc(e.S),e.T=Uc(e,11),ss(e.T,10),ss(e.T,11),ss(e.T,12),ss(e.T,13),ss(e.T,14),oc(e.T),oc(e.T),e.U=Uc(e,12),As(e.U,2),As(e.U,3),ss(e.U,4),ss(e.U,5),ss(e.U,6),ss(e.U,7),oc(e.U),e.V=Uc(e,13),ss(e.V,10),e.W=Uc(e,14),As(e.W,18),As(e.W,19),As(e.W,20),ss(e.W,21),ss(e.W,22),ss(e.W,23),e.bb=Uc(e,15),As(e.bb,10),As(e.bb,11),As(e.bb,12),As(e.bb,13),As(e.bb,14),As(e.bb,15),As(e.bb,16),ss(e.bb,17),oc(e.bb),oc(e.bb),e.eb=Uc(e,16),As(e.eb,2),As(e.eb,3),As(e.eb,4),As(e.eb,5),As(e.eb,6),As(e.eb,7),ss(e.eb,8),ss(e.eb,9),e.ab=Uc(e,17),As(e.ab,0),As(e.ab,1),e.H=Uc(e,18),ss(e.H,0),ss(e.H,1),ss(e.H,2),ss(e.H,3),ss(e.H,4),ss(e.H,5),oc(e.H),e.db=Uc(e,19),ss(e.db,2),e.c=Ci(e,20),e.d=Ci(e,21),e.e=Ci(e,22),e.f=Ci(e,23),e.i=Ci(e,24),e.g=Ci(e,25),e.j=Ci(e,26),e.k=Ci(e,27),e.n=Ci(e,28),e.r=Ci(e,29),e.s=Ci(e,30),e.t=Ci(e,31),e.u=Ci(e,32),e.fb=Ci(e,33),e.A=Ci(e,34),e.C=Ci(e,35),e.D=Ci(e,36),e.F=Ci(e,37),e.G=Ci(e,38),e.I=Ci(e,39),e.J=Ci(e,40),e.L=Ci(e,41),e.M=Ci(e,42),e.N=Ci(e,43),e.O=Ci(e,44),e.P=Ci(e,45),e.X=Ci(e,46),e.Y=Ci(e,47),e.Z=Ci(e,48),e.$=Ci(e,49),e._=Ci(e,50),e.cb=Ci(e,51),e.K=Ci(e,52))}function wOn(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn,$n,cr;for(f=new os,ot=l(Q(n,(Nt(),Rh)),88),J=0,Ga(f,(!t.a&&(t.a=new nt(Li,t,10,11)),t.a));f.b!=0;)C=l(f.b==0?null:(br(f.b!=0),sf(f,f.a.a)),27),T=ds(C),(qe(at(T,Tg))!==qe((Td(),I2))||qe(at(T,xv))===qe((w2(),RE))||qe(at(T,xv))===qe((w2(),FE))||Ft(Pt(at(T,w3)))||qe(at(T,m4))!==qe((tv(),h4))||qe(at(T,Xb))===qe((Nf(),C3))||qe(at(T,Xb))===qe((Nf(),E4))||qe(at(T,Tv))===qe((E2(),XE))||qe(at(T,Tv))===qe((E2(),QE)))&&!Ft(Pt(at(C,wW)))&&Vi(C,(ft(),Yi),bt(J++)),fe=!Ft(Pt(at(C,Cv))),fe&&(F=(!C.a&&(C.a=new nt(Li,C,10,11)),C.a).i!=0,V=Wxn(C),z=qe(at(C,v4))===qe((op(),F2)),cr=!P1(C,(bi(),nC))||nlt(Zr(at(C,nC))),$e=null,cr&&z&&(F||V)&&($e=hvt(C),rt($e,Rh,ot),rs($e,OB)&&lZe(new Y8e(ze(Ge(Q($e,OB)))),$e),l(at(C,Ev),181).gc()!=0&&(L=$e,Os(new vn(null,(!C.c&&(C.c=new nt($l,C,9,9)),new kn(C.c,16))),new mYe(L)),rmt(C,$e))),At=n,ln=l(or(e.a,ds(C)),10),ln&&(At=ln.e),Me=Rwt(e,C,At),$e&&(Me.e=$e,$e.e=Me,Ga(f,(!C.a&&(C.a=new nt(Li,C,10,11)),C.a))));for(J=0,_s(f,t,f.c.b,f.c);f.b!=0;){for(o=l(f.b==0?null:(br(f.b!=0),sf(f,f.a.a)),27),w=new ar((!o.b&&(o.b=new nt(js,o,12,3)),o.b));w.e!=w.i.gc();)g=l(dr(w),74),Mmt(g),(qe(at(t,Tg))!==qe((Td(),I2))||qe(at(t,xv))===qe((w2(),RE))||qe(at(t,xv))===qe((w2(),FE))||Ft(Pt(at(t,w3)))||qe(at(t,m4))!==qe((tv(),h4))||qe(at(t,Xb))===qe((Nf(),C3))||qe(at(t,Xb))===qe((Nf(),E4))||qe(at(t,Tv))===qe((E2(),XE))||qe(at(t,Tv))===qe((E2(),QE)))&&Vi(g,(ft(),Yi),bt(J++)),Fn=vc(l(Oe((!g.b&&(g.b=new An(Sr,g,4,7)),g.b),0),84)),$n=vc(l(Oe((!g.c&&(g.c=new An(Sr,g,5,8)),g.c),0),84)),!(Ft(Pt(at(g,Cv)))||Ft(Pt(at(Fn,Cv)))||Ft(Pt(at($n,Cv))))&&(te=Yw(g)&&Ft(Pt(at(Fn,w4)))&&Ft(Pt(at(g,kv))),Je=o,te||Iy($n,Fn)?Je=Fn:Iy(Fn,$n)&&(Je=$n),At=n,ln=l(or(e.a,Je),10),ln&&(At=ln.e),Ee=fTe(e,g,Je,At),rt(Ee,(ft(),nMe),wSn(e,g,t,n)));if(z=qe(at(o,v4))===qe((op(),F2)),z)for(s=new ar((!o.a&&(o.a=new nt(Li,o,10,11)),o.a));s.e!=s.i.gc();)r=l(dr(s),27),cr=!P1(r,(bi(),nC))||nlt(Zr(at(r,nC))),cn=qe(at(r,v4))===qe(F2),cr&&cn&&_s(f,r,f.c.b,f.c)}}function ft(){ft=U;var e,t;zi=new Ki(JTe),nMe=new Ki("coordinateOrigin"),ode=new Ki("processors"),tMe=new ws("compoundNode",(Hn(),!1)),LB=new ws("insideConnections",!1),aMe=new Ki("originalBendpoints"),oMe=new Ki("originalDummyNodePosition"),cMe=new Ki("originalLabelEdge"),YL=new Ki("representedLabels"),WL=new Ki("endLabels"),Wx=new Ki("endLabel.origin"),Xx=new ws("labelSide",(Ih(),cF)),$6=new ws("maxEdgeThickness",0),W1=new ws("reversed",!1),Qx=new Ki(tyt),a1=new ws("longEdgeSource",null),$f=new ws("longEdgeTarget",null),p4=new ws("longEdgeHasLabelDummies",!1),MB=new ws("longEdgeBeforeLabelDummy",!1),fW=new ws("edgeConstraint",(Jm(),U1e)),b3=new Ki("inLayerLayoutUnit"),wv=new ws("inLayerConstraint",(ip(),_B)),Yx=new ws("inLayerSuccessorConstraint",new mt),sMe=new ws("inLayerSuccessorConstraintBetweenNonDummies",!1),Bl=new Ki("portDummy"),hW=new ws("crossingHint",bt(0)),_u=new ws("graphProperties",(t=l(G0(Q1e),9),new Jh(t,l(o0(t,t.length),9),0))),Xc=new ws("externalPortSide",(_t(),jc)),iMe=new ws("externalPortSize",new za),nde=new Ki("externalPortReplacedDummies"),dW=new Ki("externalPortReplacedDummy"),wp=new ws("externalPortConnections",(e=l(G0(Mo),9),new Jh(e,l(o0(e,e.length),9),0))),m3=new ws(G3t,0),eMe=new Ki("barycenterAssociates"),Jx=new Ki("TopSideComments"),Kx=new Ki("BottomSideComments"),lW=new Ki("CommentConnectionPort"),ide=new ws("inputCollect",!1),ade=new ws("outputCollect",!1),AB=new ws("cyclic",!1),rMe=new Ki("crossHierarchyMap"),ude=new Ki("targetOffset"),new ws("splineLabelSize",new za),q6=new Ki("spacings"),gW=new ws("partitionConstraint",!1),p3=new Ki("breakingPoint.info"),hMe=new Ki("splines.survivingEdge"),yv=new Ki("splines.route.start"),H6=new Ki("splines.edgeChain"),lMe=new Ki("originalPortConstraints"),v3=new Ki("selfLoopHolder"),HE=new Ki("splines.nsPortY"),Yi=new Ki("modelOrder"),sde=new Ki("longEdgeTargetNode"),Wb=new ws(_yt,!1),z6=new ws(_yt,!1),rde=new Ki("layerConstraints.hiddenNodes"),uMe=new Ki("layerConstraints.opposidePort"),cde=new Ki("targetNode.modelOrder")}function yOn(e,t,n,r){var s,o,f,g,w,T,C,L,F,z,V;for(L=Fr(e.b,0);L.b!=L.d.c;)if(C=l(Pr(L),40),!wn(C.c,RG))for(o=l(kc(new vn(null,new kn(LTn(C,e),16)),Il(new qr,new ht,new On,he(le(uc,1),it,108,0,[(Nl(),Cc)]))),15),t==(ea(),hc)||t==yc?o.jd(new bne):o.jd(new g$),V=o.gc(),s=0;s0&&(g=l(a0(l(o.Xb(s),65).a),8).a,F=C.e.a+C.f.a/2,w=l(a0(l(o.Xb(s),65).a),8).b,z=C.e.b+C.f.b/2,r>0&&b.Math.abs(w-z)/(b.Math.abs(g-F)/40)>50&&(z>w?yo(l(o.Xb(s),65).a,new lt(C.e.a+C.f.a+r/5.3,C.e.b+C.f.b*f-r/2)):yo(l(o.Xb(s),65).a,new lt(C.e.a+C.f.a+r/5.3,C.e.b+C.f.b*f+r/2)))),yo(l(o.Xb(s),65).a,new lt(C.e.a+C.f.a,C.e.b+C.f.b*f))):t==yc?(T=ze(Ge(Q(C,(Zi(),o1)))),C.e.a-r>T?yo(l(o.Xb(s),65).a,new lt(T-n,C.e.b+C.f.b*f)):l(o.Xb(s),65).a.b>0&&(g=l(a0(l(o.Xb(s),65).a),8).a,F=C.e.a+C.f.a/2,w=l(a0(l(o.Xb(s),65).a),8).b,z=C.e.b+C.f.b/2,r>0&&b.Math.abs(w-z)/(b.Math.abs(g-F)/40)>50&&(z>w?yo(l(o.Xb(s),65).a,new lt(C.e.a-r/5.3,C.e.b+C.f.b*f-r/2)):yo(l(o.Xb(s),65).a,new lt(C.e.a-r/5.3,C.e.b+C.f.b*f+r/2)))),yo(l(o.Xb(s),65).a,new lt(C.e.a,C.e.b+C.f.b*f))):t==vf?(T=ze(Ge(Q(C,(Zi(),x0)))),C.e.b+C.f.b+r0&&(g=l(a0(l(o.Xb(s),65).a),8).a,F=C.e.a+C.f.a/2,w=l(a0(l(o.Xb(s),65).a),8).b,z=C.e.b+C.f.b/2,r>0&&b.Math.abs(g-F)/(b.Math.abs(w-z)/40)>50&&(F>g?yo(l(o.Xb(s),65).a,new lt(C.e.a+C.f.a*f-r/2,C.e.b+r/5.3+C.f.b)):yo(l(o.Xb(s),65).a,new lt(C.e.a+C.f.a*f+r/2,C.e.b+r/5.3+C.f.b)))),yo(l(o.Xb(s),65).a,new lt(C.e.a+C.f.a*f,C.e.b+C.f.b))):(T=ze(Ge(Q(C,(Zi(),o1)))),t1t(l(o.Xb(s),65),e)?yo(l(o.Xb(s),65).a,new lt(C.e.a+C.f.a*f,l(a0(l(o.Xb(s),65).a),8).b)):C.e.b-r>T?yo(l(o.Xb(s),65).a,new lt(C.e.a+C.f.a*f,T-n)):l(o.Xb(s),65).a.b>0&&(g=l(a0(l(o.Xb(s),65).a),8).a,F=C.e.a+C.f.a/2,w=l(a0(l(o.Xb(s),65).a),8).b,z=C.e.b+C.f.b/2,r>0&&b.Math.abs(g-F)/(b.Math.abs(w-z)/40)>50&&(F>g?yo(l(o.Xb(s),65).a,new lt(C.e.a+C.f.a*f-r/2,C.e.b-r/5.3)):yo(l(o.Xb(s),65).a,new lt(C.e.a+C.f.a*f+r/2,C.e.b-r/5.3)))),yo(l(o.Xb(s),65).a,new lt(C.e.a+C.f.a*f,C.e.b)))}function bi(){bi=U;var e,t;nC=new Ki(f4t),c7=new Ki(d4t),vNe=(lg(),$ge),i_t=new mn(aCe,vNe),t7=new mn(Nx,null),s_t=new Ki(wSe),yNe=(rv(),is(Hge,he(le(Uge,1),it,298,0,[qge]))),ZB=new mn(OG,yNe),eF=new mn(JP,(Hn(),!1)),xNe=(ea(),J1),Lv=new mn(Afe,xNe),ENe=(cp(),rpe),TNe=new mn(QP,ENe),c_t=new mn(mSe,!1),_Ne=(op(),gY),i7=new mn(IG,_Ne),BNe=new mw(12),B2=new mn(r3,BNe),nF=new mn(fL,!1),Wge=new mn(PG,!1),rF=new mn(dL,!1),zNe=(Pa(),rm),AM=new mn(Whe,zNe),r9=new Ki(NG),iF=new Ki(qP),tpe=new Ki(gG),npe=new Ki(hL),ANe=new pl,A3=new mn(mCe,ANe),o_t=new mn(yCe,!1),u_t=new mn(xCe,!1),LNe=new a_,rC=new mn(TCe,LNe),lY=new mn(iCe,!1),d_t=new mn(g4t,1),r7=new Ki(p4t),n7=new Ki(b4t),LM=new mn(HP,!1),new mn(m4t,!0),bt(0),new mn(v4t,bt(100)),new mn(w4t,!1),bt(0),new mn(y4t,bt(4e3)),bt(0),new mn(x4t,bt(400)),new mn(k4t,!1),new mn(T4t,!1),new mn(E4t,!0),new mn(C4t,!1),wNe=(QU(),ope),a_t=new mn(vSe,wNe),g_t=new mn(KEe,10),p_t=new mn(WEe,10),VNe=new mn(zhe,20),b_t=new mn(YEe,10),GNe=new mn(Khe,2),KNe=new mn(_fe,10),WNe=new mn(XEe,0),hY=new mn(ZEe,5),YNe=new mn(QEe,1),XNe=new mn(JEe,1),Dv=new mn(t4,20),m_t=new mn(eCe,10),ZNe=new mn(tCe,10),i9=new Ki(nCe),JNe=new Int,QNe=new mn(ECe,JNe),h_t=new Ki(Mfe),FNe=!1,l_t=new mn(Lfe,FNe),DNe=new mw(5),MNe=new mn(uCe,DNe),INe=(Vy(),t=l(G0(Ko),9),new Jh(t,l(o0(t,t.length),9),0)),s7=new mn(gE,INe),jNe=(r6(),nm),RNe=new mn(fCe,jNe),Xge=new Ki(dCe),Qge=new Ki(gCe),Jge=new Ki(pCe),Yge=new Ki(bCe),ONe=(e=l(G0(FM),9),new Jh(e,l(o0(e,e.length),9),0)),Mv=new mn(T6,ONe),PNe=hn((Xl(),cC)),em=new mn(Px,PNe),NNe=new lt(0,0),a7=new mn(Bx,NNe),A4=new mn(dE,!1),kNe=(F1(),iC),Gge=new mn(vCe,kNe),Vge=new mn(pG,!1),bt(1),new mn(S4t,null),$Ne=new Ki(kCe),Zge=new Ki(wCe),UNe=(_t(),jc),o7=new mn(sCe,UNe),eh=new Ki(rCe),qNe=(Pl(),hn(im)),L4=new mn(pE,qNe),epe=new mn(lCe,!1),HNe=new mn(hCe,!0),dY=new mn(UP,1),ePe=new mn(ySe,null),sF=new mn(VP,150),fY=new mn(GP,1.414),s9=new mn(i3,null),v_t=new mn(xSe,1),tF=new mn(oCe,!1),Kge=new mn(cCe,!1),CNe=new mn(qhe,1),SNe=(CV(),spe),new mn(_4t,SNe),f_t=!0,y_t=(gx(),I4),x_t=I4,w_t=I4}function po(){po=U,ZAe=new Xs("DIRECTION_PREPROCESSOR",0),XAe=new Xs("COMMENT_PREPROCESSOR",1),O6=new Xs("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),S1e=new Xs("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),vLe=new Xs("PARTITION_PREPROCESSOR",4),RK=new Xs("LABEL_DUMMY_INSERTER",5),WK=new Xs("SELF_LOOP_PREPROCESSOR",6),d4=new Xs("LAYER_CONSTRAINT_PREPROCESSOR",7),bLe=new Xs("PARTITION_MIDPROCESSOR",8),oLe=new Xs("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),gLe=new Xs("NODE_PROMOTION",10),f4=new Xs("LAYER_CONSTRAINT_POSTPROCESSOR",11),mLe=new Xs("PARTITION_POSTPROCESSOR",12),iLe=new Xs("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),wLe=new Xs("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),UAe=new Xs("BREAKING_POINT_INSERTER",15),qK=new Xs("LONG_EDGE_SPLITTER",16),_1e=new Xs("PORT_SIDE_PROCESSOR",17),BK=new Xs("INVERTED_PORT_PROCESSOR",18),VK=new Xs("PORT_LIST_SORTER",19),xLe=new Xs("SORT_BY_INPUT_ORDER_OF_MODEL",20),UK=new Xs("NORTH_SOUTH_PORT_PREPROCESSOR",21),VAe=new Xs("BREAKING_POINT_PROCESSOR",22),pLe=new Xs(wyt,23),kLe=new Xs(yyt,24),GK=new Xs("SELF_LOOP_PORT_RESTORER",25),yLe=new Xs("SINGLE_EDGE_GRAPH_WRAPPER",26),FK=new Xs("IN_LAYER_CONSTRAINT_PROCESSOR",27),tLe=new Xs("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),fLe=new Xs("LABEL_AND_NODE_SIZE_PROCESSOR",29),hLe=new Xs("INNERMOST_NODE_MARGIN_CALCULATOR",30),YK=new Xs("SELF_LOOP_ROUTER",31),WAe=new Xs("COMMENT_NODE_MARGIN_CALCULATOR",32),PK=new Xs("END_LABEL_PREPROCESSOR",33),$K=new Xs("LABEL_DUMMY_SWITCHER",34),KAe=new Xs("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),DE=new Xs("LABEL_SIDE_SELECTOR",36),uLe=new Xs("HYPEREDGE_DUMMY_MERGER",37),sLe=new Xs("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),dLe=new Xs("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),qL=new Xs("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),QAe=new Xs("CONSTRAINTS_POSTPROCESSOR",41),YAe=new Xs("COMMENT_POSTPROCESSOR",42),lLe=new Xs("HYPERNODE_PROCESSOR",43),aLe=new Xs("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),zK=new Xs("LONG_EDGE_JOINER",45),KK=new Xs("SELF_LOOP_POSTPROCESSOR",46),GAe=new Xs("BREAKING_POINT_REMOVER",47),HK=new Xs("NORTH_SOUTH_PORT_POSTPROCESSOR",48),cLe=new Xs("HORIZONTAL_COMPACTOR",49),jK=new Xs("LABEL_DUMMY_REMOVER",50),nLe=new Xs("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),eLe=new Xs("END_LABEL_SORTER",52),kB=new Xs("REVERSED_EDGE_RESTORER",53),NK=new Xs("END_LABEL_POSTPROCESSOR",54),rLe=new Xs("HIERARCHICAL_NODE_RESIZER",55),JAe=new Xs("DIRECTION_POSTPROCESSOR",56)}function dTe(){dTe=U,kMe=(TN(),rW),O9t=new mn(cEe,kMe),V9t=new mn(uEe,(Hn(),!1)),AMe=(WH(),tde),X9t=new mn(wG,AMe),hkt=new mn(lEe,!1),fkt=new mn(hEe,!0),s9t=new mn(fEe,!1),BMe=(xN(),Bde),_kt=new mn(dEe,BMe),bt(1),Pkt=new mn(gEe,bt(7)),Bkt=new mn(pEe,!1),G9t=new mn(bEe,!1),xMe=(w2(),q1e),I9t=new mn(tfe,xMe),DMe=(E2(),Ade),lkt=new mn(XP,DMe),LMe=(lf(),DB),nkt=new mn(mEe,LMe),bt(-1),tkt=new mn(vEe,null),bt(-1),rkt=new mn(wEe,bt(-1)),bt(-1),ikt=new mn(nfe,bt(4)),bt(-1),akt=new mn(rfe,bt(2)),MMe=(Nf(),PW),ukt=new mn(ife,MMe),bt(0),ckt=new mn(sfe,bt(0)),Z9t=new mn(afe,bt(Ni)),yMe=(gA(),UL),D9t=new mn(bL,yMe),b9t=new mn(yEe,!1),T9t=new mn(ofe,.1),L9t=new mn(cfe,!1),C9t=new mn(xEe,null),S9t=new mn(kEe,null),bt(-1),_9t=new mn(TEe,null),bt(-1),A9t=new mn(EEe,bt(-1)),bt(0),m9t=new mn(CEe,bt(40)),wMe=(yT(),Z1e),x9t=new mn(ufe,wMe),vMe=SB,v9t=new mn(yG,vMe),PMe=(NA(),iM),Skt=new mn(E6,PMe),mkt=new Ki(xG),IMe=(bN(),sW),dkt=new mn(lfe,IMe),OMe=(nP(),aW),pkt=new mn(hfe,OMe),ykt=new mn(ffe,.3),kkt=new Ki(dfe),NMe=(jy(),NW),Tkt=new mn(gfe,NMe),CMe=(BU(),Rde),R9t=new mn(SEe,CMe),SMe=(xA(),$de),j9t=new mn(_Ee,SMe),_Me=(AT(),oM),$9t=new mn(kG,_Me),q9t=new mn(TG,.2),B9t=new mn(pfe,2),Dkt=new mn(AEe,null),Okt=new mn(LEe,10),Ikt=new mn(MEe,10),Nkt=new mn(DEe,20),bt(0),Akt=new mn(IEe,bt(0)),bt(0),Lkt=new mn(OEe,bt(0)),bt(0),Mkt=new mn(NEe,bt(0)),a9t=new mn(bfe,!1),gMe=(HT(),VL),c9t=new mn(PEe,gMe),dMe=(sU(),$1e),o9t=new mn(BEe,dMe),W9t=new mn(EG,!1),bt(0),K9t=new mn(mfe,bt(16)),bt(0),Y9t=new mn(vfe,bt(5)),jMe=($U(),Hde),nTt=new mn(bp,jMe),Fkt=new mn(CG,10),$kt=new mn(SG,1),RMe=(kU(),nW),Kkt=new mn(mL,RMe),Hkt=new Ki(wfe),FMe=bt(1),bt(0),Vkt=new mn(yfe,FMe),$Me=(xU(),qde),aTt=new mn(_G,$Me),rTt=new Ki(AG),Jkt=new mn(LG,!0),Xkt=new mn(MG,2),eTt=new mn(xfe,!0),EMe=(_V(),iW),P9t=new mn(FEe,EMe),TMe=(xx(),PE),N9t=new mn(REe,TMe),mMe=(Td(),I2),p9t=new mn(DG,mMe),g9t=new mn(jEe,!1),d9t=new mn($Ee,!1),pMe=(tv(),h4),u9t=new mn(kfe,pMe),bMe=(EA(),Lde),f9t=new mn(zEe,bMe),l9t=new mn(Tfe,0),h9t=new mn(Efe,0),J9t=H1e,Q9t=CB,skt=IW,okt=IW,ekt=_de,E9t=(op(),F2),M9t=UL,k9t=UL,w9t=UL,y9t=F2,vkt=sM,wkt=iM,gkt=iM,bkt=iM,xkt=Ode,Ckt=sM,Ekt=sM,z9t=(cp(),a9),H9t=a9,U9t=oM,F9t=aF,Rkt=JE,jkt=C4,zkt=JE,qkt=C4,Wkt=JE,Ykt=C4,Ukt=z1e,Gkt=nW,oTt=JE,cTt=C4,iTt=JE,sTt=C4,Zkt=C4,Qkt=C4,tTt=C4}function xOn(e,t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn,$n,cr,ai,ys,zl,fc,Hh,g7,U2,A0,L0,Pv,f9,fm,d9,qd,Mg,O3,g9,p7,Hd,Bv,Ep,cLt,TBe,N3,XM,Epe,p9,QM,$4,JM,Cpe,uLt;for(TBe=0,ai=t,fc=0,U2=ai.length;fc0&&(e.a[qd.p]=TBe++)}for(QM=0,ys=n,Hh=0,A0=ys.length;Hh0;){for(qd=(br(p7.b>0),l(p7.a.Xb(p7.c=--p7.b),12)),g9=0,g=new K(qd.e);g.a0&&(qd.j==(_t(),Xn)?(e.a[qd.p]=QM,++QM):(e.a[qd.p]=QM+L0+f9,++f9))}QM+=f9}for(O3=new Nr,V=new bd,cr=t,zl=0,g7=cr.length;zlT.b&&(T.b=Hd)):qd.i.c==cLt&&(HdT.c&&(T.c=Hd));for(iT(J,0,J.length,null),p9=We(Ur,fi,28,J.length,15,1),r=We(Ur,fi,28,QM+1,15,1),fe=0;fe0;)At%2>0&&(s+=Cpe[At+1]),At=(At-1)/2|0,++Cpe[At];for(cn=We(aEt,jn,374,J.length*2,0,1),$e=0;$e0&&eN(zl.f),at(fe,ePe)!=null&&(g=l(at(fe,ePe),347),O3=g.Tg(fe),j5(fe,b.Math.max(fe.g,O3.a),b.Math.max(fe.f,O3.b)));if(A0=l(at(t,B2),107),z=t.g-(A0.b+A0.c),F=t.f-(A0.d+A0.a),Hd.bh("Available Child Area: ("+z+"|"+F+")"),Vi(t,t7,z/F),Pdt(t,s,r.eh(g7)),l(at(t,s9),280)==yY&&(uTe(t),j5(t,A0.b+ze(Ge(at(t,r7)))+A0.c,A0.d+ze(Ge(at(t,n7)))+A0.a)),Hd.bh("Executed layout algorithm: "+Zr(at(t,nC))+" on node "+t.k),l(at(t,s9),280)==I4){if(z<0||F<0)throw ue(new Zp("The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. "+t.k));for(P1(t,r7)||P1(t,n7)||uTe(t),J=ze(Ge(at(t,r7))),V=ze(Ge(at(t,n7))),Hd.bh("Desired Child Area: ("+J+"|"+V+")"),Pv=z/J,f9=F/V,L0=b.Math.min(Pv,b.Math.min(f9,ze(Ge(at(t,v_t))))),Vi(t,dY,L0),Hd.bh(t.k+" -- Local Scale Factor (X|Y): ("+Pv+"|"+f9+")"),$e=l(at(t,ZB),21),o=0,f=0,L0'?":wn(s5t,e)?"'(?<' or '(? toIndex: ",MTe=", toIndex: ",DTe="Index: ",ITe=", Size: ",uE="org.eclipse.elk.alg.common",ii={50:1},A3t="org.eclipse.elk.alg.common.compaction",L3t="Scanline/EventHandler",mg="org.eclipse.elk.alg.common.compaction.oned",M3t="CNode belongs to another CGroup.",D3t="ISpacingsHandler/1",Lhe="The ",Mhe=" instance has been finished already.",I3t="The direction ",O3t=" is not supported by the CGraph instance.",N3t="OneDimensionalCompactor",P3t="OneDimensionalCompactor/lambda$0$Type",B3t="Quadruplet",F3t="ScanlineConstraintCalculator",R3t="ScanlineConstraintCalculator/ConstraintsScanlineHandler",j3t="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",$3t="ScanlineConstraintCalculator/Timestamp",z3t="ScanlineConstraintCalculator/lambda$0$Type",Ld={178:1,46:1},Dhe="org.eclipse.elk.alg.common.compaction.options",Rc="org.eclipse.elk.core.data",OTe="org.eclipse.elk.polyomino.traversalStrategy",NTe="org.eclipse.elk.polyomino.lowLevelSort",PTe="org.eclipse.elk.polyomino.highLevelSort",BTe="org.eclipse.elk.polyomino.fill",Pf={134:1},Ihe="polyomino",cL="org.eclipse.elk.alg.common.networksimplex",vg={183:1,3:1,4:1},q3t="org.eclipse.elk.alg.common.nodespacing",cv="org.eclipse.elk.alg.common.nodespacing.cellsystem",lE="CENTER",H3t={217:1,336:1},FTe={3:1,4:1,5:1,603:1},Dx="LEFT",Ix="RIGHT",RTe="Vertical alignment cannot be null",jTe="BOTTOM",cG="org.eclipse.elk.alg.common.nodespacing.internal",uL="UNDEFINED",H1=.01,jP="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",U3t="LabelPlacer/lambda$0$Type",V3t="LabelPlacer/lambda$1$Type",G3t="portRatioOrPosition",hE="org.eclipse.elk.alg.common.overlaps",Ohe="DOWN",Md="org.eclipse.elk.alg.common.polyomino",uG="NORTH",Nhe="EAST",Phe="SOUTH",Bhe="WEST",lG="org.eclipse.elk.alg.common.polyomino.structures",$Te="Direction",Fhe="Grid is only of size ",Rhe=". Requested point (",jhe=") is out of bounds.",hG=" Given center based coordinates were (",$P="org.eclipse.elk.graph.properties",K3t="IPropertyHolder",zTe={3:1,96:1,137:1},Ox="org.eclipse.elk.alg.common.spore",W3t="org.eclipse.elk.alg.common.utils",uv={205:1},y6="org.eclipse.elk.core",Y3t="Connected Components Compaction",X3t="org.eclipse.elk.alg.disco",fG="org.eclipse.elk.alg.disco.graph",$he="org.eclipse.elk.alg.disco.options",qTe="CompactionStrategy",HTe="org.eclipse.elk.disco.componentCompaction.strategy",UTe="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",VTe="org.eclipse.elk.disco.debug.discoGraph",GTe="org.eclipse.elk.disco.debug.discoPolys",Q3t="componentCompaction",lv="org.eclipse.elk.disco",zhe="org.eclipse.elk.spacing.componentComponent",qhe="org.eclipse.elk.edge.thickness",Nx="org.eclipse.elk.aspectRatio",r3="org.eclipse.elk.padding",x6="org.eclipse.elk.alg.disco.transform",Hhe=1.5707963267948966,k6=17976931348623157e292,e4={3:1,4:1,5:1,198:1},J3t={3:1,6:1,4:1,5:1,100:1,115:1},Uhe="org.eclipse.elk.alg.force",KTe="ComponentsProcessor",Z3t="ComponentsProcessor/1",WTe="ElkGraphImporter/lambda$0$Type",zP="org.eclipse.elk.alg.force.graph",eyt="Component Layout",YTe="org.eclipse.elk.alg.force.model",dG="org.eclipse.elk.force.model",XTe="org.eclipse.elk.force.iterations",QTe="org.eclipse.elk.force.repulsivePower",Vhe="org.eclipse.elk.force.temperature",Dd=.001,Ghe="org.eclipse.elk.force.repulsion",lL="org.eclipse.elk.alg.force.options",fE=1.600000023841858,Yu="org.eclipse.elk.force",qP="org.eclipse.elk.priority",t4="org.eclipse.elk.spacing.nodeNode",Khe="org.eclipse.elk.spacing.edgeLabel",gG="org.eclipse.elk.randomSeed",hL="org.eclipse.elk.separateConnectedComponents",fL="org.eclipse.elk.interactive",Whe="org.eclipse.elk.portConstraints",pG="org.eclipse.elk.edgeLabels.inline",dL="org.eclipse.elk.omitNodeMicroLayout",dE="org.eclipse.elk.nodeSize.fixedGraphSize",Px="org.eclipse.elk.nodeSize.options",T6="org.eclipse.elk.nodeSize.constraints",gE="org.eclipse.elk.nodeLabels.placement",pE="org.eclipse.elk.portLabels.placement",HP="org.eclipse.elk.topdownLayout",UP="org.eclipse.elk.topdown.scaleFactor",VP="org.eclipse.elk.topdown.hierarchicalNodeWidth",GP="org.eclipse.elk.topdown.hierarchicalNodeAspectRatio",i3="org.eclipse.elk.topdown.nodeType",JTe="origin",tyt="random",nyt="boundingBox.upLeft",ryt="boundingBox.lowRight",ZTe="org.eclipse.elk.stress.fixed",eEe="org.eclipse.elk.stress.desiredEdgeLength",tEe="org.eclipse.elk.stress.dimension",nEe="org.eclipse.elk.stress.epsilon",rEe="org.eclipse.elk.stress.iterationLimit",jb="org.eclipse.elk.stress",iyt="ELK Stress",Bx="org.eclipse.elk.nodeSize.minimum",bG="org.eclipse.elk.alg.force.stress",syt="Layered layout",Fx="org.eclipse.elk.alg.layered",KP="org.eclipse.elk.alg.layered.compaction.components",gL="org.eclipse.elk.alg.layered.compaction.oned",mG="org.eclipse.elk.alg.layered.compaction.oned.algs",hv="org.eclipse.elk.alg.layered.compaction.recthull",U1="org.eclipse.elk.alg.layered.components",Id="NONE",iEe="MODEL_ORDER",ou={3:1,6:1,4:1,9:1,5:1,126:1},ayt={3:1,6:1,4:1,5:1,150:1,100:1,115:1},vG="org.eclipse.elk.alg.layered.compound",ns={47:1},Tu="org.eclipse.elk.alg.layered.graph",Yhe=" -> ",oyt="Not supported by LGraph",sEe="Port side is undefined",Xhe={3:1,6:1,4:1,5:1,483:1,150:1,100:1,115:1},S2={3:1,6:1,4:1,5:1,150:1,199:1,210:1,100:1,115:1},cyt={3:1,6:1,4:1,5:1,150:1,2042:1,210:1,100:1,115:1},uyt=`([{"' \r +`,lyt=`)]}"' \r +`,hyt="The given string contains parts that cannot be parsed as numbers.",WP="org.eclipse.elk.core.math",fyt={3:1,4:1,140:1,214:1,423:1},dyt={3:1,4:1,107:1,214:1,423:1},_2="org.eclipse.elk.alg.layered.graph.transform",gyt="ElkGraphImporter",pyt="ElkGraphImporter/lambda$1$Type",byt="ElkGraphImporter/lambda$2$Type",myt="ElkGraphImporter/lambda$4$Type",nr="org.eclipse.elk.alg.layered.intermediate",vyt="Node margin calculation",wyt="ONE_SIDED_GREEDY_SWITCH",yyt="TWO_SIDED_GREEDY_SWITCH",Qhe="No implementation is available for the layout processor ",Jhe="IntermediateProcessorStrategy",Zhe="Node '",xyt="FIRST_SEPARATE",kyt="LAST_SEPARATE",Tyt="Odd port side processing",ua="org.eclipse.elk.alg.layered.intermediate.compaction",pL="org.eclipse.elk.alg.layered.intermediate.greedyswitch",wg="org.eclipse.elk.alg.layered.p3order.counting",YP={230:1},Rx="org.eclipse.elk.alg.layered.intermediate.loops",Bh="org.eclipse.elk.alg.layered.intermediate.loops.ordering",$b="org.eclipse.elk.alg.layered.intermediate.loops.routing",aEe="org.eclipse.elk.alg.layered.intermediate.preserveorder",Od="org.eclipse.elk.alg.layered.intermediate.wrapping",cu="org.eclipse.elk.alg.layered.options",efe="INTERACTIVE",oEe="GREEDY",Eyt="DEPTH_FIRST",Cyt="EDGE_LENGTH",Syt="SELF_LOOPS",_yt="firstTryWithInitialOrder",cEe="org.eclipse.elk.layered.directionCongruency",uEe="org.eclipse.elk.layered.feedbackEdges",wG="org.eclipse.elk.layered.interactiveReferencePoint",lEe="org.eclipse.elk.layered.mergeEdges",hEe="org.eclipse.elk.layered.mergeHierarchyEdges",fEe="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",dEe="org.eclipse.elk.layered.portSortingStrategy",gEe="org.eclipse.elk.layered.thoroughness",pEe="org.eclipse.elk.layered.unnecessaryBendpoints",bEe="org.eclipse.elk.layered.generatePositionAndLayerIds",tfe="org.eclipse.elk.layered.cycleBreaking.strategy",XP="org.eclipse.elk.layered.layering.strategy",mEe="org.eclipse.elk.layered.layering.layerConstraint",vEe="org.eclipse.elk.layered.layering.layerChoiceConstraint",wEe="org.eclipse.elk.layered.layering.layerId",nfe="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",rfe="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",ife="org.eclipse.elk.layered.layering.nodePromotion.strategy",sfe="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",afe="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",bL="org.eclipse.elk.layered.crossingMinimization.strategy",yEe="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",ofe="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",cfe="org.eclipse.elk.layered.crossingMinimization.semiInteractive",xEe="org.eclipse.elk.layered.crossingMinimization.inLayerPredOf",kEe="org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf",TEe="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",EEe="org.eclipse.elk.layered.crossingMinimization.positionId",CEe="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",ufe="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",yG="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",E6="org.eclipse.elk.layered.nodePlacement.strategy",xG="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",lfe="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",hfe="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",ffe="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",dfe="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",gfe="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",SEe="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",_Ee="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",kG="org.eclipse.elk.layered.edgeRouting.splines.mode",TG="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",pfe="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",AEe="org.eclipse.elk.layered.spacing.baseValue",LEe="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",MEe="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",DEe="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",IEe="org.eclipse.elk.layered.priority.direction",OEe="org.eclipse.elk.layered.priority.shortness",NEe="org.eclipse.elk.layered.priority.straightness",bfe="org.eclipse.elk.layered.compaction.connectedComponents",PEe="org.eclipse.elk.layered.compaction.postCompaction.strategy",BEe="org.eclipse.elk.layered.compaction.postCompaction.constraints",EG="org.eclipse.elk.layered.highDegreeNodes.treatment",mfe="org.eclipse.elk.layered.highDegreeNodes.threshold",vfe="org.eclipse.elk.layered.highDegreeNodes.treeHeight",bp="org.eclipse.elk.layered.wrapping.strategy",CG="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",SG="org.eclipse.elk.layered.wrapping.correctionFactor",mL="org.eclipse.elk.layered.wrapping.cutting.strategy",wfe="org.eclipse.elk.layered.wrapping.cutting.cuts",yfe="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",_G="org.eclipse.elk.layered.wrapping.validify.strategy",AG="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",LG="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",MG="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",xfe="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",FEe="org.eclipse.elk.layered.edgeLabels.sideSelection",REe="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",DG="org.eclipse.elk.layered.considerModelOrder.strategy",jEe="org.eclipse.elk.layered.considerModelOrder.portModelOrder",$Ee="org.eclipse.elk.layered.considerModelOrder.noModelOrder",kfe="org.eclipse.elk.layered.considerModelOrder.components",zEe="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",Tfe="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",Efe="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",Cfe="layering",Ayt="layering.minWidth",Lyt="layering.nodePromotion",bE="crossingMinimization",IG="org.eclipse.elk.hierarchyHandling",Myt="crossingMinimization.greedySwitch",Dyt="nodePlacement",Iyt="nodePlacement.bk",Oyt="edgeRouting",QP="org.eclipse.elk.edgeRouting",V1="spacing",qEe="priority",HEe="compaction",Nyt="compaction.postCompaction",Pyt="Specifies whether and how post-process compaction is applied.",UEe="highDegreeNodes",VEe="wrapping",Byt="wrapping.cutting",Fyt="wrapping.validify",GEe="wrapping.multiEdge",Sfe="edgeLabels",vL="considerModelOrder",KEe="org.eclipse.elk.spacing.commentComment",WEe="org.eclipse.elk.spacing.commentNode",YEe="org.eclipse.elk.spacing.edgeEdge",_fe="org.eclipse.elk.spacing.edgeNode",XEe="org.eclipse.elk.spacing.labelLabel",QEe="org.eclipse.elk.spacing.labelPortHorizontal",JEe="org.eclipse.elk.spacing.labelPortVertical",ZEe="org.eclipse.elk.spacing.labelNode",eCe="org.eclipse.elk.spacing.nodeSelfLoop",tCe="org.eclipse.elk.spacing.portPort",nCe="org.eclipse.elk.spacing.individual",rCe="org.eclipse.elk.port.borderOffset",iCe="org.eclipse.elk.noLayout",sCe="org.eclipse.elk.port.side",JP="org.eclipse.elk.debugMode",aCe="org.eclipse.elk.alignment",oCe="org.eclipse.elk.insideSelfLoops.activate",cCe="org.eclipse.elk.insideSelfLoops.yo",Afe="org.eclipse.elk.direction",uCe="org.eclipse.elk.nodeLabels.padding",lCe="org.eclipse.elk.portLabels.nextToPortIfPossible",hCe="org.eclipse.elk.portLabels.treatAsGroup",fCe="org.eclipse.elk.portAlignment.default",dCe="org.eclipse.elk.portAlignment.north",gCe="org.eclipse.elk.portAlignment.south",pCe="org.eclipse.elk.portAlignment.west",bCe="org.eclipse.elk.portAlignment.east",OG="org.eclipse.elk.contentAlignment",mCe="org.eclipse.elk.junctionPoints",vCe="org.eclipse.elk.edgeLabels.placement",wCe="org.eclipse.elk.port.index",yCe="org.eclipse.elk.commentBox",xCe="org.eclipse.elk.hypernode",kCe="org.eclipse.elk.port.anchor",Lfe="org.eclipse.elk.partitioning.activate",Mfe="org.eclipse.elk.partitioning.partition",NG="org.eclipse.elk.position",TCe="org.eclipse.elk.margins",ECe="org.eclipse.elk.spacing.portsSurrounding",PG="org.eclipse.elk.interactiveLayout",Kc="org.eclipse.elk.core.util",CCe={3:1,4:1,5:1,601:1},Ryt="NETWORK_SIMPLEX",SCe="SIMPLE",Vo={106:1,47:1},BG="org.eclipse.elk.alg.layered.p1cycles",mp="org.eclipse.elk.alg.layered.p2layers",_Ce={413:1,230:1},jyt={846:1,3:1,4:1},El="org.eclipse.elk.alg.layered.p3order",Go="org.eclipse.elk.alg.layered.p4nodes",$yt={3:1,4:1,5:1,854:1},Nd=1e-5,zb="org.eclipse.elk.alg.layered.p4nodes.bk",Dfe="org.eclipse.elk.alg.layered.p5edges",r1="org.eclipse.elk.alg.layered.p5edges.orthogonal",Ife="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",Ofe=1e-6,n4="org.eclipse.elk.alg.layered.p5edges.splines",Nfe=.09999999999999998,FG=1e-8,zyt=4.71238898038469,ACe=3.141592653589793,vp="org.eclipse.elk.alg.mrtree",Pfe=.10000000149011612,RG="SUPER_ROOT",wL="org.eclipse.elk.alg.mrtree.graph",LCe=-17976931348623157e292,Eu="org.eclipse.elk.alg.mrtree.intermediate",qyt="Processor compute fanout",jG={3:1,6:1,4:1,5:1,534:1,100:1,115:1},Hyt="Set neighbors in level",ZP="org.eclipse.elk.alg.mrtree.options",Uyt="DESCENDANTS",MCe="org.eclipse.elk.mrtree.compaction",DCe="org.eclipse.elk.mrtree.edgeEndTextureLength",ICe="org.eclipse.elk.mrtree.treeLevel",OCe="org.eclipse.elk.mrtree.positionConstraint",NCe="org.eclipse.elk.mrtree.weighting",PCe="org.eclipse.elk.mrtree.edgeRoutingMode",BCe="org.eclipse.elk.mrtree.searchOrder",Vyt="Position Constraint",Xu="org.eclipse.elk.mrtree",Gyt="org.eclipse.elk.tree",Kyt="Processor arrange level",mE="org.eclipse.elk.alg.mrtree.p2order",ph="org.eclipse.elk.alg.mrtree.p4route",FCe="org.eclipse.elk.alg.radial",fv=6.283185307179586,RCe="Before",jCe=5e-324,$G="After",$Ce="org.eclipse.elk.alg.radial.intermediate",Wyt="COMPACTION",Bfe="org.eclipse.elk.alg.radial.intermediate.compaction",Yyt={3:1,4:1,5:1,100:1},zCe="org.eclipse.elk.alg.radial.intermediate.optimization",Ffe="No implementation is available for the layout option ",yL="org.eclipse.elk.alg.radial.options",qCe="org.eclipse.elk.radial.centerOnRoot",HCe="org.eclipse.elk.radial.orderId",UCe="org.eclipse.elk.radial.radius",zG="org.eclipse.elk.radial.rotate",Rfe="org.eclipse.elk.radial.compactor",jfe="org.eclipse.elk.radial.compactionStepSize",VCe="org.eclipse.elk.radial.sorter",GCe="org.eclipse.elk.radial.wedgeCriteria",KCe="org.eclipse.elk.radial.optimizationCriteria",$fe="org.eclipse.elk.radial.rotation.targetAngle",zfe="org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace",WCe="org.eclipse.elk.radial.rotation.outgoingEdgeAngles",Xyt="Compaction",YCe="rotation",df="org.eclipse.elk.radial",Qyt="org.eclipse.elk.alg.radial.p1position.wedge",XCe="org.eclipse.elk.alg.radial.sorting",Jyt=5.497787143782138,Zyt=3.9269908169872414,e4t=2.356194490192345,t4t="org.eclipse.elk.alg.rectpacking",qG="org.eclipse.elk.alg.rectpacking.intermediate",qfe="org.eclipse.elk.alg.rectpacking.options",QCe="org.eclipse.elk.rectpacking.trybox",JCe="org.eclipse.elk.rectpacking.currentPosition",ZCe="org.eclipse.elk.rectpacking.desiredPosition",eSe="org.eclipse.elk.rectpacking.inNewRow",tSe="org.eclipse.elk.rectpacking.widthApproximation.strategy",nSe="org.eclipse.elk.rectpacking.widthApproximation.targetWidth",rSe="org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal",iSe="org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift",sSe="org.eclipse.elk.rectpacking.packing.strategy",aSe="org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation",oSe="org.eclipse.elk.rectpacking.packing.compaction.iterations",cSe="org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy",Hfe="widthApproximation",n4t="Compaction Strategy",r4t="packing.compaction",Jl="org.eclipse.elk.rectpacking",vE="org.eclipse.elk.alg.rectpacking.p1widthapproximation",HG="org.eclipse.elk.alg.rectpacking.p2packing",i4t="No Compaction",uSe="org.eclipse.elk.alg.rectpacking.p3whitespaceelimination",eB="org.eclipse.elk.alg.rectpacking.util",UG="No implementation available for ",r4="org.eclipse.elk.alg.spore",i4="org.eclipse.elk.alg.spore.options",s3="org.eclipse.elk.sporeCompaction",Ufe="org.eclipse.elk.underlyingLayoutAlgorithm",lSe="org.eclipse.elk.processingOrder.treeConstruction",hSe="org.eclipse.elk.processingOrder.spanningTreeCostFunction",Vfe="org.eclipse.elk.processingOrder.preferredRoot",Gfe="org.eclipse.elk.processingOrder.rootSelection",Kfe="org.eclipse.elk.structure.structureExtractionStrategy",fSe="org.eclipse.elk.compaction.compactionStrategy",dSe="org.eclipse.elk.compaction.orthogonal",gSe="org.eclipse.elk.overlapRemoval.maxIterations",pSe="org.eclipse.elk.overlapRemoval.runScanline",Wfe="processingOrder",s4t="overlapRemoval",wE="org.eclipse.elk.sporeOverlap",a4t="org.eclipse.elk.alg.spore.p1structure",Yfe="org.eclipse.elk.alg.spore.p2processingorder",Xfe="org.eclipse.elk.alg.spore.p3execution",o4t="Topdown Layout",c4t="Invalid index: ",yE="org.eclipse.elk.core.alg",C6={341:1},s4={295:1},u4t="Make sure its type is registered with the ",bSe=" utility class.",xE="true",Qfe="false",l4t="Couldn't clone property '",a3=.05,Zl="org.eclipse.elk.core.options",h4t=1.2999999523162842,o3="org.eclipse.elk.box",mSe="org.eclipse.elk.expandNodes",vSe="org.eclipse.elk.box.packingMode",f4t="org.eclipse.elk.algorithm",d4t="org.eclipse.elk.resolvedAlgorithm",wSe="org.eclipse.elk.bendPoints",SOn="org.eclipse.elk.labelManager",g4t="org.eclipse.elk.scaleFactor",p4t="org.eclipse.elk.childAreaWidth",b4t="org.eclipse.elk.childAreaHeight",m4t="org.eclipse.elk.animate",v4t="org.eclipse.elk.animTimeFactor",w4t="org.eclipse.elk.layoutAncestors",y4t="org.eclipse.elk.maxAnimTime",x4t="org.eclipse.elk.minAnimTime",k4t="org.eclipse.elk.progressBar",T4t="org.eclipse.elk.validateGraph",E4t="org.eclipse.elk.validateOptions",C4t="org.eclipse.elk.zoomToFit",_On="org.eclipse.elk.font.name",S4t="org.eclipse.elk.font.size",ySe="org.eclipse.elk.topdown.sizeApproximator",xSe="org.eclipse.elk.topdown.scaleCap",_4t="org.eclipse.elk.edge.type",A4t="partitioning",L4t="nodeLabels",VG="portAlignment",Jfe="nodeSize",Zfe="port",kSe="portLabels",tB="topdown",M4t="insideSelfLoops",xL="org.eclipse.elk.fixed",GG="org.eclipse.elk.random",TSe={3:1,34:1,22:1,347:1},D4t="port must have a parent node to calculate the port side",I4t="The edge needs to have exactly one edge section. Found: ",kL="org.eclipse.elk.core.util.adapters",gf="org.eclipse.emf.ecore",S6="org.eclipse.elk.graph",O4t="EMapPropertyHolder",N4t="ElkBendPoint",P4t="ElkGraphElement",B4t="ElkConnectableShape",ESe="ElkEdge",F4t="ElkEdgeSection",R4t="EModelElement",j4t="ENamedElement",CSe="ElkLabel",SSe="ElkNode",_Se="ElkPort",$4t={94:1,93:1},jx="org.eclipse.emf.common.notify.impl",qb="The feature '",TL="' is not a valid changeable feature",z4t="Expecting null",e0e="' is not a valid feature",q4t="The feature ID",H4t=" is not a valid feature ID",nu=32768,U4t={110:1,94:1,93:1,58:1,54:1,99:1},Vn="org.eclipse.emf.ecore.impl",dv="org.eclipse.elk.graph.impl",EL="Recursive containment not allowed for ",kE="The datatype '",c3="' is not a valid classifier",t0e="The value '",_6={195:1,3:1,4:1},n0e="The class '",TE="http://www.eclipse.org/elk/ElkGraph",ASe="property",CL="value",r0e="source",V4t="properties",G4t="identifier",i0e="height",s0e="width",a0e="parent",o0e="text",c0e="children",K4t="hierarchical",LSe="sources",u0e="targets",MSe="sections",KG="bendPoints",DSe="outgoingShape",ISe="incomingShape",OSe="outgoingSections",NSe="incomingSections",Eo="org.eclipse.emf.common.util",PSe="Severe implementation error in the Json to ElkGraph importer.",Pd="id",eo="org.eclipse.elk.graph.json",BSe="Unhandled parameter types: ",W4t="startPoint",Y4t="An edge must have at least one source and one target (edge id: '",EE="').",X4t="Referenced edge section does not exist: ",Q4t=" (edge id: '",FSe="target",J4t="sourcePoint",Z4t="targetPoint",WG="group",Ai="name",e5t="connectableShape cannot be null",t5t="edge cannot be null",l0e="Passed edge is not 'simple'.",YG="org.eclipse.elk.graph.util",nB="The 'no duplicates' constraint is violated",h0e="targetIndex=",gv=", size=",f0e="sourceIndex=",Bd={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1},d0e={3:1,4:1,20:1,31:1,56:1,16:1,51:1,15:1,59:1,70:1,66:1,61:1,596:1},XG="logging",n5t="measureExecutionTime",r5t="parser.parse.1",i5t="parser.parse.2",QG="parser.next.1",g0e="parser.next.2",s5t="parser.next.3",a5t="parser.next.4",pv="parser.factor.1",RSe="parser.factor.2",o5t="parser.factor.3",c5t="parser.factor.4",u5t="parser.factor.5",l5t="parser.factor.6",h5t="parser.atom.1",f5t="parser.atom.2",d5t="parser.atom.3",jSe="parser.atom.4",p0e="parser.atom.5",$Se="parser.cc.1",JG="parser.cc.2",g5t="parser.cc.3",p5t="parser.cc.5",zSe="parser.cc.6",qSe="parser.cc.7",b0e="parser.cc.8",b5t="parser.ope.1",m5t="parser.ope.2",v5t="parser.ope.3",A2="parser.descape.1",w5t="parser.descape.2",y5t="parser.descape.3",x5t="parser.descape.4",k5t="parser.descape.5",pf="parser.process.1",T5t="parser.quantifier.1",E5t="parser.quantifier.2",C5t="parser.quantifier.3",S5t="parser.quantifier.4",HSe="parser.quantifier.5",_5t="org.eclipse.emf.common.notify",USe={424:1,686:1},A5t={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1},rB={378:1,152:1},SL="index=",m0e={3:1,4:1,5:1,129:1},L5t={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,61:1},VSe={3:1,6:1,4:1,5:1,198:1},M5t={3:1,4:1,5:1,173:1,379:1},D5t=";/?:@&=+$,",I5t="invalid authority: ",O5t="EAnnotation",N5t="ETypedElement",P5t="EStructuralFeature",B5t="EAttribute",F5t="EClassifier",R5t="EEnumLiteral",j5t="EGenericType",$5t="EOperation",z5t="EParameter",q5t="EReference",H5t="ETypeParameter",us="org.eclipse.emf.ecore.util",v0e={79:1},GSe={3:1,20:1,16:1,15:1,61:1,597:1,79:1,71:1,97:1},U5t="org.eclipse.emf.ecore.util.FeatureMap$Entry",Cl=8192,a4=2048,_L="byte",ZG="char",AL="double",LL="float",ML="int",DL="long",IL="short",V5t="java.lang.Object",A6={3:1,4:1,5:1,254:1},KSe={3:1,4:1,5:1,688:1},G5t={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,71:1},Ec={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,71:1,97:1},iB="mixed",ui="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",Bf="kind",K5t={3:1,4:1,5:1,689:1},WSe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1,79:1,71:1,97:1},eK={20:1,31:1,56:1,16:1,15:1,61:1,71:1},tK={51:1,128:1,287:1},nK={76:1,343:1},rK="The value of type '",iK="' must be of type '",L6=1352,Ff="http://www.eclipse.org/emf/2002/Ecore",sK=-32768,u3="constraints",oo="baseType",W5t="getEStructuralFeature",Y5t="getFeatureID",OL="feature",X5t="getOperationID",YSe="operation",Q5t="defaultValue",J5t="eTypeParameters",Z5t="isInstance",e6t="getEEnumLiteral",t6t="eContainingClass",xi={57:1},n6t={3:1,4:1,5:1,124:1},r6t="org.eclipse.emf.ecore.resource",i6t={94:1,93:1,599:1,2034:1},w0e="org.eclipse.emf.ecore.resource.impl",XSe="unspecified",sB="simple",aK="attribute",s6t="attributeWildcard",oK="element",y0e="elementWildcard",i1="collapse",x0e="itemType",cK="namespace",aB="##targetNamespace",Rf="whiteSpace",QSe="wildcards",bv="http://www.eclipse.org/emf/2003/XMLType",k0e="##any",CE="uninitialized",oB="The multiplicity constraint is violated",uK="org.eclipse.emf.ecore.xml.type",a6t="ProcessingInstruction",o6t="SimpleAnyType",c6t="XMLTypeDocumentRoot",na="org.eclipse.emf.ecore.xml.type.impl",cB="INF",u6t="processing",l6t="ENTITIES_._base",JSe="minLength",ZSe="ENTITY",lK="NCName",h6t="IDREFS_._base",e_e="integer",T0e="token",E0e="pattern",f6t="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",t_e="\\i\\c*",d6t="[\\i-[:]][\\c-[:]]*",g6t="nonPositiveInteger",uB="maxInclusive",n_e="NMTOKEN",p6t="NMTOKENS_._base",r_e="nonNegativeInteger",lB="minInclusive",b6t="normalizedString",m6t="unsignedByte",v6t="unsignedInt",w6t="18446744073709551615",y6t="unsignedShort",x6t="processingInstruction",L2="org.eclipse.emf.ecore.xml.type.internal",SE=1114111,k6t="Internal Error: shorthands: \\u",NL="xml:isDigit",C0e="xml:isWord",S0e="xml:isSpace",_0e="xml:isNameChar",A0e="xml:isInitialNameChar",T6t="09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩",E6t="AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣",C6t="Private Use",L0e="ASSIGNED",M0e="\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯",i_e="UNASSIGNED",_E={3:1,122:1},S6t="org.eclipse.emf.ecore.xml.type.util",hK={3:1,4:1,5:1,381:1},s_e="org.eclipse.xtext.xbase.lib",_6t="Cannot add elements to a Range",A6t="Cannot set elements in a Range",L6t="Cannot remove elements from a Range",M6t="user.agent",h,fK,D0e;b.goog=b.goog||{},b.goog.global=b.goog.global||b,fK={},D(1,null,{},E),h.Fb=function(t){return Ant(this,t)},h.Gb=function(){return this.Rm},h.Hb=function(){return ww(this)},h.Ib=function(){var t;return Pm(dh(this))+"@"+(t=ts(this)>>>0,t.toString(16))},h.equals=function(e){return this.Fb(e)},h.hashCode=function(){return this.Hb()},h.toString=function(){return this.Ib()};var D6t,I6t,O6t;D(297,1,{297:1,2124:1},e8e),h.ve=function(t){var n;return n=new e8e,n.i=4,t>1?n.c=Xot(this,t-1):n.c=this,n},h.we=function(){return Xg(this),this.b},h.xe=function(){return Pm(this)},h.ye=function(){return Xg(this),this.k},h.ze=function(){return(this.i&4)!=0},h.Ae=function(){return(this.i&1)!=0},h.Ib=function(){return h7e(this)},h.i=0;var ka=I(Gc,"Object",1),a_e=I(Gc,"Class",297);D(2096,1,AP),I(LP,"Optional",2096),D(1191,2096,AP,_),h.Fb=function(t){return t===this},h.Hb=function(){return 2040732332},h.Ib=function(){return"Optional.absent()"},h.Jb=function(t){return Xr(t),c_(),I0e};var I0e;I(LP,"Absent",1191),D(636,1,{},dse),I(LP,"Joiner",636);var AOn=Ts(LP,"Predicate");D(589,1,{178:1,589:1,3:1,46:1},xz),h.Mb=function(t){return X0t(this,t)},h.Lb=function(t){return X0t(this,t)},h.Fb=function(t){var n;return De(t,589)?(n=l(t,589),Q9e(this.a,n.a)):!1},h.Hb=function(){return a8e(this.a)+306654252},h.Ib=function(){return gkn(this.a)},I(LP,"Predicates/AndPredicate",589),D(419,2096,{419:1,3:1},ZS),h.Fb=function(t){var n;return De(t,419)?(n=l(t,419),Fi(this.a,n.a)):!1},h.Hb=function(){return 1502476572+ts(this.a)},h.Ib=function(){return i3t+this.a+")"},h.Jb=function(t){return new ZS(NH(t.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},I(LP,"Present",419),D(204,1,nE),h.Nb=function(t){Qa(this,t)},h.Qb=function(){pZe()},I(gn,"UnmodifiableIterator",204),D(2076,204,rE),h.Qb=function(){pZe()},h.Rb=function(t){throw ue(new Qr)},h.Wb=function(t){throw ue(new Qr)},I(gn,"UnmodifiableListIterator",2076),D(399,2076,rE),h.Ob=function(){return this.c0},h.Pb=function(){if(this.c>=this.d)throw ue(new Dc);return this.Xb(this.c++)},h.Tb=function(){return this.c},h.Ub=function(){if(this.c<=0)throw ue(new Dc);return this.Xb(--this.c)},h.Vb=function(){return this.c-1},h.c=0,h.d=0,I(gn,"AbstractIndexedListIterator",399),D(713,204,nE),h.Ob=function(){return pce(this)},h.Pb=function(){return s7e(this)},h.e=1,I(gn,"AbstractIterator",713),D(2084,1,{229:1}),h.Zb=function(){var t;return t=this.f,t||(this.f=this.ac())},h.Fb=function(t){return Fce(this,t)},h.Hb=function(){return ts(this.Zb())},h.dc=function(){return this.gc()==0},h.ec=function(){return Y8(this)},h.Ib=function(){return Tc(this.Zb())},I(gn,"AbstractMultimap",2084),D(742,2084,av),h.$b=function(){EU(this)},h._b=function(t){return NZe(this,t)},h.ac=function(){return new Dk(this,this.c)},h.ic=function(t){return this.hc()},h.bc=function(){return new U5(this,this.c)},h.jc=function(){return this.mc(this.hc())},h.kc=function(){return new ZJe(this)},h.lc=function(){return Gue(this.c.vc().Nc(),new P,64,this.d)},h.cc=function(t){return $i(this,t)},h.fc=function(t){return jN(this,t)},h.gc=function(){return this.d},h.mc=function(t){return Cn(),new ja(t)},h.nc=function(){return new JJe(this)},h.oc=function(){return Gue(this.c.Cc().Nc(),new A,64,this.d)},h.pc=function(t,n){return new nU(this,t,n,null)},h.d=0,I(gn,"AbstractMapBasedMultimap",742),D(1696,742,av),h.hc=function(){return new Pu(this.a)},h.jc=function(){return Cn(),Cn(),Co},h.cc=function(t){return l($i(this,t),15)},h.fc=function(t){return l(jN(this,t),15)},h.Zb=function(){return tx(this)},h.Fb=function(t){return Fce(this,t)},h.qc=function(t){return l($i(this,t),15)},h.rc=function(t){return l(jN(this,t),15)},h.mc=function(t){return voe(l(t,15))},h.pc=function(t,n){return rut(this,t,l(n,15),null)},I(gn,"AbstractListMultimap",1696),D(748,1,Ia),h.Nb=function(t){Qa(this,t)},h.Ob=function(){return this.c.Ob()||this.e.Ob()},h.Pb=function(){var t;return this.e.Ob()||(t=l(this.c.Pb(),44),this.b=t.ld(),this.a=l(t.md(),16),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},h.Qb=function(){this.e.Qb(),l(Lf(this.a),16).dc()&&this.c.Qb(),--this.d.d},I(gn,"AbstractMapBasedMultimap/Itr",748),D(1129,748,Ia,JJe),h.sc=function(t,n){return n},I(gn,"AbstractMapBasedMultimap/1",1129),D(1130,1,{},A),h.Kb=function(t){return l(t,16).Nc()},I(gn,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1130),D(1131,748,Ia,ZJe),h.sc=function(t,n){return new hw(t,n)},I(gn,"AbstractMapBasedMultimap/2",1131);var o_e=Ts(_r,"Map");D(2065,1,t3),h.wc=function(t){vA(this,t)},h.yc=function(t,n,r){return nue(this,t,n,r)},h.$b=function(){this.vc().$b()},h.tc=function(t){return Aue(this,t)},h._b=function(t){return!!Yxe(this,t,!1)},h.uc=function(t){var n,r,s;for(r=this.vc().Kc();r.Ob();)if(n=l(r.Pb(),44),s=n.md(),qe(t)===qe(s)||t!=null&&Fi(t,s))return!0;return!1},h.Fb=function(t){var n,r,s;if(t===this)return!0;if(!De(t,85)||(s=l(t,85),this.gc()!=s.gc()))return!1;for(r=s.vc().Kc();r.Ob();)if(n=l(r.Pb(),44),!this.tc(n))return!1;return!0},h.xc=function(t){return dc(Yxe(this,t,!1))},h.Hb=function(){return X7e(this.vc())},h.dc=function(){return this.gc()==0},h.ec=function(){return new pr(this)},h.zc=function(t,n){throw ue(new Jp("Put not supported on this map"))},h.Ac=function(t){mA(this,t)},h.Bc=function(t){return dc(Yxe(this,t,!0))},h.gc=function(){return this.vc().gc()},h.Ib=function(){return cpt(this)},h.Cc=function(){return new pi(this)},I(_r,"AbstractMap",2065),D(2085,2065,t3),h.bc=function(){return new nq(this)},h.vc=function(){return Zst(this)},h.ec=function(){var t;return t=this.g,t||(this.g=this.bc())},h.Cc=function(){var t;return t=this.i,t||(this.i=new Cet(this))},I(gn,"Maps/ViewCachingAbstractMap",2085),D(402,2085,t3,Dk),h.xc=function(t){return Own(this,t)},h.Bc=function(t){return n4n(this,t)},h.$b=function(){this.d==this.e.c?this.e.$b():hH(new c5e(this))},h._b=function(t){return N1t(this.d,t)},h.Ec=function(){return new kz(this)},h.Dc=function(){return this.Ec()},h.Fb=function(t){return this===t||Fi(this.d,t)},h.Hb=function(){return ts(this.d)},h.ec=function(){return this.e.ec()},h.gc=function(){return this.d.gc()},h.Ib=function(){return Tc(this.d)},I(gn,"AbstractMapBasedMultimap/AsMap",402);var Fh=Ts(Gc,"Iterable");D(31,1,Qy),h.Jc=function(t){Za(this,t)},h.Lc=function(){return this.Oc()},h.Nc=function(){return new kn(this,0)},h.Oc=function(){return new vn(null,this.Nc())},h.Fc=function(t){throw ue(new Jp("Add not supported on this collection"))},h.Gc=function(t){return Ga(this,t)},h.$b=function(){W5e(this)},h.Hc=function(t){return Fy(this,t,!1)},h.Ic=function(t){return DN(this,t)},h.dc=function(){return this.gc()==0},h.Mc=function(t){return Fy(this,t,!0)},h.Pc=function(){return v5e(this)},h.Qc=function(t){return BA(this,t)},h.Ib=function(){return Ob(this)},I(_r,"AbstractCollection",31);var jf=Ts(_r,"Set");D(q1,31,Tl),h.Nc=function(){return new kn(this,1)},h.Fb=function(t){return Cdt(this,t)},h.Hb=function(){return X7e(this)},I(_r,"AbstractSet",q1),D(2068,q1,Tl),I(gn,"Sets/ImprovedAbstractSet",2068),D(2069,2068,Tl),h.$b=function(){this.Rc().$b()},h.Hc=function(t){return udt(this,t)},h.dc=function(){return this.Rc().dc()},h.Mc=function(t){var n;return this.Hc(t)&&De(t,44)?(n=l(t,44),this.Rc().ec().Mc(n.ld())):!1},h.gc=function(){return this.Rc().gc()},I(gn,"Maps/EntrySet",2069),D(1127,2069,Tl,kz),h.Hc=function(t){return T8e(this.a.d.vc(),t)},h.Kc=function(){return new c5e(this.a)},h.Rc=function(){return this.a},h.Mc=function(t){var n;return T8e(this.a.d.vc(),t)?(n=l(Lf(l(t,44)),44),xvn(this.a.e,n.ld()),!0):!1},h.Nc=function(){return qO(this.a.d.vc().Nc(),new Tz(this.a))},I(gn,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1127),D(1128,1,{},Tz),h.Kb=function(t){return tlt(this.a,l(t,44))},I(gn,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1128),D(746,1,Ia,c5e),h.Nb=function(t){Qa(this,t)},h.Pb=function(){var t;return t=l(this.b.Pb(),44),this.a=l(t.md(),16),tlt(this.c,t)},h.Ob=function(){return this.b.Ob()},h.Qb=function(){$k(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},I(gn,"AbstractMapBasedMultimap/AsMap/AsMapIterator",746),D(542,2068,Tl,nq),h.$b=function(){this.b.$b()},h.Hc=function(t){return this.b._b(t)},h.Jc=function(t){Xr(t),this.b.wc(new Az(t))},h.dc=function(){return this.b.dc()},h.Kc=function(){return new u_(this.b.vc().Kc())},h.Mc=function(t){return this.b._b(t)?(this.b.Bc(t),!0):!1},h.gc=function(){return this.b.gc()},I(gn,"Maps/KeySet",542),D(327,542,Tl,U5),h.$b=function(){var t;hH((t=this.b.vc().Kc(),new I3e(this,t)))},h.Ic=function(t){return this.b.ec().Ic(t)},h.Fb=function(t){return this===t||Fi(this.b.ec(),t)},h.Hb=function(){return ts(this.b.ec())},h.Kc=function(){var t;return t=this.b.vc().Kc(),new I3e(this,t)},h.Mc=function(t){var n,r;return r=0,n=l(this.b.Bc(t),16),n&&(r=n.gc(),n.$b(),this.a.d-=r),r>0},h.Nc=function(){return this.b.ec().Nc()},I(gn,"AbstractMapBasedMultimap/KeySet",327),D(747,1,Ia,I3e),h.Nb=function(t){Qa(this,t)},h.Ob=function(){return this.c.Ob()},h.Pb=function(){return this.a=l(this.c.Pb(),44),this.a.ld()},h.Qb=function(){var t;$k(!!this.a),t=l(this.a.md(),16),this.c.Qb(),this.b.a.d-=t.gc(),t.$b(),this.a=null},I(gn,"AbstractMapBasedMultimap/KeySet/1",747),D(503,402,{85:1,133:1},PO),h.bc=function(){return this.Sc()},h.ec=function(){return this.Uc()},h.Sc=function(){return new uO(this.c,this.Wc())},h.Tc=function(){return this.Wc().Tc()},h.Uc=function(){var t;return t=this.b,t||(this.b=this.Sc())},h.Vc=function(){return this.Wc().Vc()},h.Wc=function(){return l(this.d,133)},I(gn,"AbstractMapBasedMultimap/SortedAsMap",503),D(446,503,mTe,H_),h.bc=function(){return new Mk(this.a,l(l(this.d,133),139))},h.Sc=function(){return new Mk(this.a,l(l(this.d,133),139))},h.ec=function(){var t;return t=this.b,l(t||(this.b=new Mk(this.a,l(l(this.d,133),139))),277)},h.Uc=function(){var t;return t=this.b,l(t||(this.b=new Mk(this.a,l(l(this.d,133),139))),277)},h.Wc=function(){return l(l(this.d,133),139)},h.Xc=function(t){return l(l(this.d,133),139).Xc(t)},h.Yc=function(t){return l(l(this.d,133),139).Yc(t)},h.Zc=function(t,n){return new H_(this.a,l(l(this.d,133),139).Zc(t,n))},h.$c=function(t){return l(l(this.d,133),139).$c(t)},h._c=function(t){return l(l(this.d,133),139)._c(t)},h.ad=function(t,n){return new H_(this.a,l(l(this.d,133),139).ad(t,n))},I(gn,"AbstractMapBasedMultimap/NavigableAsMap",446),D(502,327,s3t,uO),h.Nc=function(){return this.b.ec().Nc()},I(gn,"AbstractMapBasedMultimap/SortedKeySet",502),D(401,502,vTe,Mk),I(gn,"AbstractMapBasedMultimap/NavigableKeySet",401),D(551,31,Qy,nU),h.Fc=function(t){var n,r;return Wl(this),r=this.d.dc(),n=this.d.Fc(t),n&&(++this.f.d,r&&jO(this)),n},h.Gc=function(t){var n,r,s;return t.dc()?!1:(s=(Wl(this),this.d.gc()),n=this.d.Gc(t),n&&(r=this.d.gc(),this.f.d+=r-s,s==0&&jO(this)),n)},h.$b=function(){var t;t=(Wl(this),this.d.gc()),t!=0&&(this.d.$b(),this.f.d-=t,mH(this))},h.Hc=function(t){return Wl(this),this.d.Hc(t)},h.Ic=function(t){return Wl(this),this.d.Ic(t)},h.Fb=function(t){return t===this?!0:(Wl(this),Fi(this.d,t))},h.Hb=function(){return Wl(this),ts(this.d)},h.Kc=function(){return Wl(this),new V4e(this)},h.Mc=function(t){var n;return Wl(this),n=this.d.Mc(t),n&&(--this.f.d,mH(this)),n},h.gc=function(){return gnt(this)},h.Nc=function(){return Wl(this),this.d.Nc()},h.Ib=function(){return Wl(this),Tc(this.d)},I(gn,"AbstractMapBasedMultimap/WrappedCollection",551);var bf=Ts(_r,"List");D(744,551,{20:1,31:1,16:1,15:1},x5e),h.jd=function(t){Wm(this,t)},h.Nc=function(){return Wl(this),this.d.Nc()},h.bd=function(t,n){var r;Wl(this),r=this.d.dc(),l(this.d,15).bd(t,n),++this.a.d,r&&jO(this)},h.cd=function(t,n){var r,s,o;return n.dc()?!1:(o=(Wl(this),this.d.gc()),r=l(this.d,15).cd(t,n),r&&(s=this.d.gc(),this.a.d+=s-o,o==0&&jO(this)),r)},h.Xb=function(t){return Wl(this),l(this.d,15).Xb(t)},h.dd=function(t){return Wl(this),l(this.d,15).dd(t)},h.ed=function(){return Wl(this),new Unt(this)},h.fd=function(t){return Wl(this),new dot(this,t)},h.gd=function(t){var n;return Wl(this),n=l(this.d,15).gd(t),--this.a.d,mH(this),n},h.hd=function(t,n){return Wl(this),l(this.d,15).hd(t,n)},h.kd=function(t,n){return Wl(this),rut(this.a,this.e,l(this.d,15).kd(t,n),this.b?this.b:this)},I(gn,"AbstractMapBasedMultimap/WrappedList",744),D(1126,744,{20:1,31:1,16:1,15:1,59:1},Ort),I(gn,"AbstractMapBasedMultimap/RandomAccessWrappedList",1126),D(628,1,Ia,V4e),h.Nb=function(t){Qa(this,t)},h.Ob=function(){return Qk(this),this.b.Ob()},h.Pb=function(){return Qk(this),this.b.Pb()},h.Qb=function(){mrt(this)},I(gn,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",628),D(745,628,dg,Unt,dot),h.Qb=function(){mrt(this)},h.Rb=function(t){var n;n=gnt(this.a)==0,(Qk(this),l(this.b,128)).Rb(t),++this.a.a.d,n&&jO(this.a)},h.Sb=function(){return(Qk(this),l(this.b,128)).Sb()},h.Tb=function(){return(Qk(this),l(this.b,128)).Tb()},h.Ub=function(){return(Qk(this),l(this.b,128)).Ub()},h.Vb=function(){return(Qk(this),l(this.b,128)).Vb()},h.Wb=function(t){(Qk(this),l(this.b,128)).Wb(t)},I(gn,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",745),D(743,551,s3t,l4e),h.Nc=function(){return Wl(this),this.d.Nc()},I(gn,"AbstractMapBasedMultimap/WrappedSortedSet",743),D(1125,743,vTe,jnt),I(gn,"AbstractMapBasedMultimap/WrappedNavigableSet",1125),D(1124,551,Tl,eit),h.Nc=function(){return Wl(this),this.d.Nc()},I(gn,"AbstractMapBasedMultimap/WrappedSet",1124),D(1133,1,{},P),h.Kb=function(t){return Dvn(l(t,44))},I(gn,"AbstractMapBasedMultimap/lambda$1$Type",1133),D(1132,1,{},Mie),h.Kb=function(t){return new hw(this.a,t)},I(gn,"AbstractMapBasedMultimap/lambda$2$Type",1132);var mv=Ts(_r,"Map/Entry");D(358,1,Wle),h.Fb=function(t){var n;return De(t,44)?(n=l(t,44),yd(this.ld(),n.ld())&&yd(this.md(),n.md())):!1},h.Hb=function(){var t,n;return t=this.ld(),n=this.md(),(t==null?0:ts(t))^(n==null?0:ts(n))},h.nd=function(t){throw ue(new Qr)},h.Ib=function(){return this.ld()+"="+this.md()},I(gn,a3t,358),D(2086,31,Qy),h.$b=function(){this.od().$b()},h.Hc=function(t){var n;return De(t,44)?(n=l(t,44),Jbn(this.od(),n.ld(),n.md())):!1},h.Mc=function(t){var n;return De(t,44)?(n=l(t,44),Rct(this.od(),n.ld(),n.md())):!1},h.gc=function(){return this.od().d},I(gn,"Multimaps/Entries",2086),D(749,2086,Qy,Cz),h.Kc=function(){return this.a.kc()},h.od=function(){return this.a},h.Nc=function(){return this.a.lc()},I(gn,"AbstractMultimap/Entries",749),D(750,749,Tl,u3e),h.Nc=function(){return this.a.lc()},h.Fb=function(t){return p9e(this,t)},h.Hb=function(){return Yft(this)},I(gn,"AbstractMultimap/EntrySet",750),D(751,31,Qy,ab),h.$b=function(){this.a.$b()},h.Hc=function(t){return Xyn(this.a,t)},h.Kc=function(){return this.a.nc()},h.gc=function(){return this.a.d},h.Nc=function(){return this.a.oc()},I(gn,"AbstractMultimap/Values",751),D(2087,31,{849:1,20:1,31:1,16:1}),h.Jc=function(t){Xr(t),G5(this).Jc(new Bie(t))},h.Nc=function(){var t;return t=G5(this).Nc(),Gue(t,new be,64|t.yd()&1296,this.a.d)},h.Fc=function(t){return m3e(),!0},h.Gc=function(t){return Xr(this),Xr(t),De(t,552)?tmn(l(t,849)):!t.dc()&&ace(this,t.Kc())},h.Hc=function(t){var n;return n=l(By(tx(this.a),t),16),(n?n.gc():0)>0},h.Fb=function(t){return TEn(this,t)},h.Hb=function(){return ts(G5(this))},h.dc=function(){return G5(this).dc()},h.Mc=function(t){return x2t(this,t,1)>0},h.Ib=function(){return Tc(G5(this))},I(gn,"AbstractMultiset",2087),D(2089,2068,Tl),h.$b=function(){EU(this.a.a)},h.Hc=function(t){var n,r;return De(t,504)?(r=l(t,425),l(r.a.md(),16).gc()<=0?!1:(n=hct(this.a,r.a.ld()),n==l(r.a.md(),16).gc())):!1},h.Mc=function(t){var n,r,s,o;return De(t,504)&&(r=l(t,425),n=r.a.ld(),s=l(r.a.md(),16).gc(),s!=0)?(o=this.a,dTn(o,n,s)):!1},I(gn,"Multisets/EntrySet",2089),D(1139,2089,Tl,Die),h.Kc=function(){return new iZe(Zst(tx(this.a.a)).Kc())},h.gc=function(){return tx(this.a.a).gc()},I(gn,"AbstractMultiset/EntrySet",1139),D(627,742,av),h.hc=function(){return this.pd()},h.jc=function(){return this.qd()},h.cc=function(t){return this.rd(t)},h.fc=function(t){return this.sd(t)},h.Zb=function(){var t;return t=this.f,t||(this.f=this.ac())},h.qd=function(){return Cn(),Cn(),vK},h.Fb=function(t){return Fce(this,t)},h.rd=function(t){return l($i(this,t),21)},h.sd=function(t){return l(jN(this,t),21)},h.mc=function(t){return Cn(),new Ck(l(t,21))},h.pc=function(t,n){return new eit(this,t,l(n,21))},I(gn,"AbstractSetMultimap",627),D(1723,627,av),h.hc=function(){return new n2(this.b)},h.pd=function(){return new n2(this.b)},h.jc=function(){return q5e(new n2(this.b))},h.qd=function(){return q5e(new n2(this.b))},h.cc=function(t){return l(l($i(this,t),21),87)},h.rd=function(t){return l(l($i(this,t),21),87)},h.fc=function(t){return l(l(jN(this,t),21),87)},h.sd=function(t){return l(l(jN(this,t),21),87)},h.mc=function(t){return De(t,277)?q5e(l(t,277)):(Cn(),new Yye(l(t,87)))},h.Zb=function(){var t;return t=this.f,t||(this.f=De(this.c,139)?new H_(this,l(this.c,139)):De(this.c,133)?new PO(this,l(this.c,133)):new Dk(this,this.c))},h.pc=function(t,n){return De(n,277)?new jnt(this,t,l(n,277)):new l4e(this,t,l(n,87))},I(gn,"AbstractSortedSetMultimap",1723),D(1724,1723,av),h.Zb=function(){var t;return t=this.f,l(l(t||(this.f=De(this.c,139)?new H_(this,l(this.c,139)):De(this.c,133)?new PO(this,l(this.c,133)):new Dk(this,this.c)),133),139)},h.ec=function(){var t;return t=this.i,l(l(t||(this.i=De(this.c,139)?new Mk(this,l(this.c,139)):De(this.c,133)?new uO(this,l(this.c,133)):new U5(this,this.c)),87),277)},h.bc=function(){return De(this.c,139)?new Mk(this,l(this.c,139)):De(this.c,133)?new uO(this,l(this.c,133)):new U5(this,this.c)},I(gn,"AbstractSortedKeySortedSetMultimap",1724),D(2109,1,{2046:1}),h.Fb=function(t){return W8n(this,t)},h.Hb=function(){var t;return X7e((t=this.g,t||(this.g=new WI(this))))},h.Ib=function(){var t;return cpt((t=this.f,t||(this.f=new Vye(this))))},I(gn,"AbstractTable",2109),D(679,q1,Tl,WI),h.$b=function(){bZe()},h.Hc=function(t){var n,r;return De(t,479)?(n=l(t,697),r=l(By(Tat(this.a),pb(n.c.e,n.b)),85),!!r&&T8e(r.vc(),new hw(pb(n.c.c,n.a),cx(n.c,n.b,n.a)))):!1},h.Kc=function(){return Jpn(this.a)},h.Mc=function(t){var n,r;return De(t,479)?(n=l(t,697),r=l(By(Tat(this.a),pb(n.c.e,n.b)),85),!!r&&L4n(r.vc(),new hw(pb(n.c.c,n.a),cx(n.c,n.b,n.a)))):!1},h.gc=function(){return Sst(this.a)},h.Nc=function(){return imn(this.a)},I(gn,"AbstractTable/CellSet",679),D(2025,31,Qy,Oie),h.$b=function(){bZe()},h.Hc=function(t){return $xn(this.a,t)},h.Kc=function(){return Zpn(this.a)},h.gc=function(){return Sst(this.a)},h.Nc=function(){return Fct(this.a)},I(gn,"AbstractTable/Values",2025),D(1697,1696,av),I(gn,"ArrayListMultimapGwtSerializationDependencies",1697),D(520,1697,av,bse,l6e),h.hc=function(){return new Pu(this.a)},h.a=0,I(gn,"ArrayListMultimap",520),D(678,2109,{678:1,2046:1,3:1},N2t),I(gn,"ArrayTable",678),D(2021,399,rE,vrt),h.Xb=function(t){return new t8e(this.a,t)},I(gn,"ArrayTable/1",2021),D(2022,1,{},Aie),h.td=function(t){return new t8e(this.a,t)},I(gn,"ArrayTable/1methodref$getCell$Type",2022),D(2110,1,{697:1}),h.Fb=function(t){var n;return t===this?!0:De(t,479)?(n=l(t,697),yd(pb(this.c.e,this.b),pb(n.c.e,n.b))&&yd(pb(this.c.c,this.a),pb(n.c.c,n.a))&&yd(cx(this.c,this.b,this.a),cx(n.c,n.b,n.a))):!1},h.Hb=function(){return RN(he(le(ka,1),jn,1,5,[pb(this.c.e,this.b),pb(this.c.c,this.a),cx(this.c,this.b,this.a)]))},h.Ib=function(){return"("+pb(this.c.e,this.b)+","+pb(this.c.c,this.a)+")="+cx(this.c,this.b,this.a)},I(gn,"Tables/AbstractCell",2110),D(479,2110,{479:1,697:1},t8e),h.a=0,h.b=0,h.d=0,I(gn,"ArrayTable/2",479),D(2024,1,{},Lie),h.td=function(t){return cht(this.a,t)},I(gn,"ArrayTable/2methodref$getValue$Type",2024),D(2023,399,rE,wrt),h.Xb=function(t){return cht(this.a,t)},I(gn,"ArrayTable/3",2023),D(2077,2065,t3),h.$b=function(){hH(this.kc())},h.vc=function(){return new _z(this)},h.lc=function(){return new rot(this.kc(),this.gc())},I(gn,"Maps/IteratorBasedAbstractMap",2077),D(842,2077,t3),h.$b=function(){throw ue(new Qr)},h._b=function(t){return PZe(this.c,t)},h.kc=function(){return new yrt(this,this.c.b.c.gc())},h.lc=function(){return jae(this.c.b.c.gc(),16,new Ez(this))},h.xc=function(t){var n;return n=l(U_(this.c,t),17),n?this.vd(n.a):null},h.dc=function(){return this.c.b.c.dc()},h.ec=function(){return Kae(this.c)},h.zc=function(t,n){var r;if(r=l(U_(this.c,t),17),!r)throw ue(new Wn(this.ud()+" "+t+" not in "+Kae(this.c)));return this.wd(r.a,n)},h.Bc=function(t){throw ue(new Qr)},h.gc=function(){return this.c.b.c.gc()},I(gn,"ArrayTable/ArrayMap",842),D(2020,1,{},Ez),h.td=function(t){return Cat(this.a,t)},I(gn,"ArrayTable/ArrayMap/0methodref$getEntry$Type",2020),D(2018,358,Wle,oet),h.ld=function(){return ffn(this.a,this.b)},h.md=function(){return this.a.vd(this.b)},h.nd=function(t){return this.a.wd(this.b,t)},h.b=0,I(gn,"ArrayTable/ArrayMap/1",2018),D(2019,399,rE,yrt),h.Xb=function(t){return Cat(this.a,t)},I(gn,"ArrayTable/ArrayMap/2",2019),D(2017,842,t3,fat),h.ud=function(){return"Column"},h.vd=function(t){return cx(this.b,this.a,t)},h.wd=function(t,n){return P0t(this.b,this.a,t,n)},h.a=0,I(gn,"ArrayTable/Row",2017),D(843,842,t3,Vye),h.vd=function(t){return new fat(this.a,t)},h.zc=function(t,n){return l(n,85),Oun()},h.wd=function(t,n){return l(n,85),Nun()},h.ud=function(){return"Row"},I(gn,"ArrayTable/RowMap",843),D(1157,1,Ph,cet),h.Ad=function(t){return(this.a.yd()&-262&t)!=0},h.yd=function(){return this.a.yd()&-262},h.zd=function(){return this.a.zd()},h.Nb=function(t){this.a.Nb(new het(t,this.b))},h.Bd=function(t){return this.a.Bd(new uet(t,this.b))},I(gn,"CollectSpliterators/1",1157),D(1158,1,hr,uet),h.Cd=function(t){this.a.Cd(this.b.Kb(t))},I(gn,"CollectSpliterators/1/lambda$0$Type",1158),D(1159,1,hr,het),h.Cd=function(t){this.a.Cd(this.b.Kb(t))},I(gn,"CollectSpliterators/1/lambda$1$Type",1159),D(1154,1,Ph,Pit),h.Ad=function(t){return((16464|this.b)&t)!=0},h.yd=function(){return 16464|this.b},h.zd=function(){return this.a.zd()},h.Nb=function(t){this.a.Qe(new det(t,this.c))},h.Bd=function(t){return this.a.Re(new fet(t,this.c))},h.b=0,I(gn,"CollectSpliterators/1WithCharacteristics",1154),D(1155,1,MP,fet),h.Dd=function(t){this.a.Cd(this.b.td(t))},I(gn,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1155),D(1156,1,MP,det),h.Dd=function(t){this.a.Cd(this.b.td(t))},I(gn,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1156),D(1150,1,Ph),h.Ad=function(t){return(this.a&t)!=0},h.yd=function(){return this.a},h.zd=function(){return this.e&&(this.b=Oye(this.b,this.e.zd())),Oye(this.b,0)},h.Nb=function(t){this.e&&(this.e.Nb(t),this.e=null),this.c.Nb(new get(this,t)),this.b=0},h.Bd=function(t){for(;;){if(this.e&&this.e.Bd(t))return O_(this.b,DP)&&(this.b=Df(this.b,1)),!0;if(this.e=null,!this.c.Bd(new Nie(this)))return!1}},h.a=0,h.b=0,I(gn,"CollectSpliterators/FlatMapSpliterator",1150),D(1152,1,hr,Nie),h.Cd=function(t){l0n(this.a,t)},I(gn,"CollectSpliterators/FlatMapSpliterator/lambda$0$Type",1152),D(1153,1,hr,get),h.Cd=function(t){Ppn(this.a,this.b,t)},I(gn,"CollectSpliterators/FlatMapSpliterator/lambda$1$Type",1153),D(1151,1150,Ph,tut),I(gn,"CollectSpliterators/FlatMapSpliteratorOfObject",1151),D(253,1,Yle),h.Fd=function(t){return this.Ed(l(t,253))},h.Ed=function(t){var n;return t==(ase(),N0e)?1:t==(sse(),O0e)?-1:(n=(aH(),SN(this.a,t.a)),n!=0?n:De(this,526)==De(t,526)?0:De(this,526)?1:-1)},h.Id=function(){return this.a},h.Fb=function(t){return xxe(this,t)},I(gn,"Cut",253),D(1823,253,Yle,QJe),h.Ed=function(t){return t==this?0:1},h.Gd=function(t){throw ue(new Uwe)},h.Hd=function(t){t.a+="+∞)"},h.Id=function(){throw ue(new ic(c3t))},h.Hb=function(){return Wg(),axe(this)},h.Jd=function(t){return!1},h.Ib=function(){return"+∞"};var O0e;I(gn,"Cut/AboveAll",1823),D(526,253,{253:1,526:1,3:1,34:1},Srt),h.Gd=function(t){mu((t.a+="(",t),this.a)},h.Hd=function(t){yb(mu(t,this.a),93)},h.Hb=function(){return~ts(this.a)},h.Jd=function(t){return aH(),SN(this.a,t)<0},h.Ib=function(){return"/"+this.a+"\\"},I(gn,"Cut/AboveValue",526),D(1822,253,Yle,XJe),h.Ed=function(t){return t==this?0:-1},h.Gd=function(t){t.a+="(-∞"},h.Hd=function(t){throw ue(new Uwe)},h.Id=function(){throw ue(new ic(c3t))},h.Hb=function(){return Wg(),axe(this)},h.Jd=function(t){return!0},h.Ib=function(){return"-∞"};var N0e;I(gn,"Cut/BelowAll",1822),D(1824,253,Yle,_rt),h.Gd=function(t){mu((t.a+="[",t),this.a)},h.Hd=function(t){yb(mu(t,this.a),41)},h.Hb=function(){return ts(this.a)},h.Jd=function(t){return aH(),SN(this.a,t)<=0},h.Ib=function(){return"\\"+this.a+"/"},I(gn,"Cut/BelowValue",1824),D(547,1,gg),h.Jc=function(t){Za(this,t)},h.Ib=function(){return X4n(l(NH(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},I(gn,"FluentIterable",547),D(442,547,gg,B_),h.Kc=function(){return new lr(fr(this.a.Kc(),new j))},I(gn,"FluentIterable/2",442),D(1059,547,gg,Pnt),h.Kc=function(){return ag(this)},I(gn,"FluentIterable/3",1059),D(724,399,rE,Gye),h.Xb=function(t){return this.a[t].Kc()},I(gn,"FluentIterable/3/1",724),D(2070,1,{}),h.Ib=function(){return Tc(this.Kd().b)},I(gn,"ForwardingObject",2070),D(2071,2070,u3t),h.Kd=function(){return this.Ld()},h.Jc=function(t){Za(this,t)},h.Lc=function(){return this.Oc()},h.Nc=function(){return new kn(this,0)},h.Oc=function(){return new vn(null,this.Nc())},h.Fc=function(t){return this.Ld(),FZe()},h.Gc=function(t){return this.Ld(),RZe()},h.$b=function(){this.Ld(),jZe()},h.Hc=function(t){return this.Ld().Hc(t)},h.Ic=function(t){return this.Ld().Ic(t)},h.dc=function(){return this.Ld().b.dc()},h.Kc=function(){return this.Ld().Kc()},h.Mc=function(t){return this.Ld(),$Ze()},h.gc=function(){return this.Ld().b.gc()},h.Pc=function(){return this.Ld().Pc()},h.Qc=function(t){return this.Ld().Qc(t)},I(gn,"ForwardingCollection",2071),D(2078,31,wTe),h.Kc=function(){return this.Od()},h.Fc=function(t){throw ue(new Qr)},h.Gc=function(t){throw ue(new Qr)},h.Md=function(){var t;return t=this.c,t||(this.c=this.Nd())},h.$b=function(){throw ue(new Qr)},h.Hc=function(t){return t!=null&&Fy(this,t,!1)},h.Nd=function(){switch(this.gc()){case 0:return Sw(),Sw(),P0e;case 1:return Sw(),new $ae(Xr(this.Od().Pb()));default:return new C5e(this,this.Pc())}},h.Mc=function(t){throw ue(new Qr)},I(gn,"ImmutableCollection",2078),D(727,2078,wTe,qwe),h.Kc=function(){return ux(this.a.Kc())},h.Hc=function(t){return t!=null&&this.a.Hc(t)},h.Ic=function(t){return this.a.Ic(t)},h.dc=function(){return this.a.dc()},h.Od=function(){return ux(this.a.Kc())},h.gc=function(){return this.a.gc()},h.Pc=function(){return this.a.Pc()},h.Qc=function(t){return this.a.Qc(t)},h.Ib=function(){return Tc(this.a)},I(gn,"ForwardingImmutableCollection",727),D(307,2078,iE),h.Kc=function(){return this.Od()},h.ed=function(){return this.Pd(0)},h.fd=function(t){return this.Pd(t)},h.jd=function(t){Wm(this,t)},h.Nc=function(){return new kn(this,16)},h.kd=function(t,n){return this.Qd(t,n)},h.bd=function(t,n){throw ue(new Qr)},h.cd=function(t,n){throw ue(new Qr)},h.Md=function(){return this},h.Fb=function(t){return hEn(this,t)},h.Hb=function(){return syn(this)},h.dd=function(t){return t==null?-1:A7n(this,t)},h.Od=function(){return this.Pd(0)},h.Pd=function(t){return vae(this,t)},h.gd=function(t){throw ue(new Qr)},h.hd=function(t,n){throw ue(new Qr)},h.Qd=function(t,n){var r;return VU((r=new Eet(this),new c2(r,t,n)))};var P0e;I(gn,"ImmutableList",307),D(2105,307,iE),h.Kc=function(){return ux(this.Rd().Kc())},h.kd=function(t,n){return VU(this.Rd().kd(t,n))},h.Hc=function(t){return t!=null&&this.Rd().Hc(t)},h.Ic=function(t){return this.Rd().Ic(t)},h.Fb=function(t){return Fi(this.Rd(),t)},h.Xb=function(t){return pb(this,t)},h.Hb=function(){return ts(this.Rd())},h.dd=function(t){return this.Rd().dd(t)},h.dc=function(){return this.Rd().dc()},h.Od=function(){return ux(this.Rd().Kc())},h.gc=function(){return this.Rd().gc()},h.Qd=function(t,n){return VU(this.Rd().kd(t,n))},h.Pc=function(){return this.Rd().Qc(We(ka,jn,1,this.Rd().gc(),5,1))},h.Qc=function(t){return this.Rd().Qc(t)},h.Ib=function(){return Tc(this.Rd())},I(gn,"ForwardingImmutableList",2105),D(729,1,sE),h.vc=function(){return Rm(this)},h.wc=function(t){vA(this,t)},h.ec=function(){return Kae(this)},h.yc=function(t,n,r){return nue(this,t,n,r)},h.Cc=function(){return this.Vd()},h.$b=function(){throw ue(new Qr)},h._b=function(t){return this.xc(t)!=null},h.uc=function(t){return this.Vd().Hc(t)},h.Td=function(){return new sJe(this)},h.Ud=function(){return new aJe(this)},h.Fb=function(t){return Qyn(this,t)},h.Hb=function(){return Rm(this).Hb()},h.dc=function(){return this.gc()==0},h.zc=function(t,n){return Iun()},h.Bc=function(t){throw ue(new Qr)},h.Ib=function(){return R9n(this)},h.Vd=function(){return this.e?this.e:this.e=this.Ud()},h.c=null,h.d=null,h.e=null;var N6t;I(gn,"ImmutableMap",729),D(730,729,sE),h._b=function(t){return PZe(this,t)},h.uc=function(t){return Det(this.b,t)},h.Sd=function(){return D1t(new Iie(this))},h.Td=function(){return D1t(Kat(this.b))},h.Ud=function(){return wd(),new qwe(Gat(this.b))},h.Fb=function(t){return Iet(this.b,t)},h.xc=function(t){return U_(this,t)},h.Hb=function(){return ts(this.b.c)},h.dc=function(){return this.b.c.dc()},h.gc=function(){return this.b.c.gc()},h.Ib=function(){return Tc(this.b.c)},I(gn,"ForwardingImmutableMap",730),D(2072,2071,Xle),h.Kd=function(){return this.Wd()},h.Ld=function(){return this.Wd()},h.Nc=function(){return new kn(this,1)},h.Fb=function(t){return t===this||this.Wd().Fb(t)},h.Hb=function(){return this.Wd().Hb()},I(gn,"ForwardingSet",2072),D(1085,2072,Xle,Iie),h.Kd=function(){return Yk(this.a.b)},h.Ld=function(){return Yk(this.a.b)},h.Hc=function(t){if(De(t,44)&&l(t,44).ld()==null)return!1;try{return Met(Yk(this.a.b),t)}catch(n){if(n=ms(n),De(n,212))return!1;throw ue(n)}},h.Wd=function(){return Yk(this.a.b)},h.Qc=function(t){var n;return n=Dot(Yk(this.a.b),t),Yk(this.a.b).b.gc()=0?"+":"")+(r/60|0),n=jq(b.Math.abs(r)%60),(ypt(),Z6t)[this.q.getDay()]+" "+e7t[this.q.getMonth()]+" "+jq(this.q.getDate())+" "+jq(this.q.getHours())+":"+jq(this.q.getMinutes())+":"+jq(this.q.getSeconds())+" GMT"+t+n+" "+this.q.getFullYear()};var pK=I(_r,"Date",206);D(2015,206,v3t,Hgt),h.a=!1,h.b=0,h.c=0,h.d=0,h.e=0,h.f=0,h.g=!1,h.i=0,h.j=0,h.k=0,h.n=0,h.o=0,h.p=0,I("com.google.gwt.i18n.shared.impl","DateRecord",2015),D(2064,1,{}),h.pe=function(){return null},h.qe=function(){return null},h.re=function(){return null},h.se=function(){return null},h.te=function(){return null},I(Lx,"JSONValue",2064),D(221,2064,{221:1},Yp,Oz),h.Fb=function(t){return De(t,221)?f6e(this.a,l(t,221).a):!1},h.oe=function(){return run},h.Hb=function(){return t6e(this.a)},h.pe=function(){return this},h.Ib=function(){var t,n,r;for(r=new Eh("["),n=0,t=this.a.length;n0&&(r.a+=","),mu(r,My(this,n));return r.a+="]",r.a},I(Lx,"JSONArray",221),D(493,2064,{493:1},zc),h.oe=function(){return iun},h.qe=function(){return this},h.Ib=function(){return Hn(),""+this.a},h.a=!1;var z6t,q6t;I(Lx,"JSONBoolean",493),D(997,63,gp,sZe),I(Lx,"JSONException",997),D(1036,2064,{},G),h.oe=function(){return sun},h.Ib=function(){return cl};var H6t;I(Lx,"JSONNull",1036),D(263,2064,{263:1},yk),h.Fb=function(t){return De(t,263)?this.a==l(t,263).a:!1},h.oe=function(){return tun},h.Hb=function(){return $8(this.a)},h.re=function(){return this},h.Ib=function(){return this.a+""},h.a=0,I(Lx,"JSONNumber",263),D(190,2064,{190:1},D8,xk),h.Fb=function(t){return De(t,190)?f6e(this.a,l(t,190).a):!1},h.oe=function(){return nun},h.Hb=function(){return t6e(this.a)},h.se=function(){return this},h.Ib=function(){var t,n,r,s,o,f,g;for(g=new Eh("{"),t=!0,f=yce(this,We($t,dt,2,0,6,1)),r=f,s=0,o=r.length;s=0?":"+this.c:"")+")"},h.c=0;var E_e=I(Gc,"StackTraceElement",319);O6t={3:1,484:1,34:1,2:1};var $t=I(Gc,yTe,2);D(111,427,{484:1},e2,f_,Af),I(Gc,"StringBuffer",111),D(104,427,{484:1},lb,A5,Eh),I(Gc,"StringBuilder",104),D(702,77,whe,v3e),I(Gc,"StringIndexOutOfBoundsException",702),D(2145,1,{});var K6t;D(48,63,{3:1,103:1,63:1,82:1,48:1},Qr,Jp),I(Gc,"UnsupportedOperationException",48),D(247,242,{3:1,34:1,242:1,247:1},qN,L3e),h.Fd=function(t){return dvt(this,l(t,247))},h.ue=function(){return qy(zvt(this))},h.Fb=function(t){var n;return this===t?!0:De(t,247)?(n=l(t,247),this.e==n.e&&dvt(this,n)==0):!1},h.Hb=function(){var t;return this.b!=0?this.b:this.a<54?(t=tu(this.f),this.b=Yr(xa(t,-1)),this.b=33*this.b+Yr(xa(Tw(t,32),-1)),this.b=17*this.b+da(this.e),this.b):(this.b=17*S1t(this.c)+da(this.e),this.b)},h.Ib=function(){return zvt(this)},h.a=0,h.b=0,h.d=0,h.e=0,h.f=0;var W6t,vv,C_e,S_e,__e,A_e,L_e,M_e,H0e=I("java.math","BigDecimal",247);D(92,242,{3:1,34:1,242:1,92:1},tp,vct,$m,_dt,bb),h.Fd=function(t){return Tdt(this,l(t,92))},h.ue=function(){return qy(Vle(this,0))},h.Fb=function(t){return H8e(this,t)},h.Hb=function(){return S1t(this)},h.Ib=function(){return Vle(this,0)},h.b=-2,h.c=0,h.d=0,h.e=0;var Y6t,bK,X6t,U0e,mK,FL,M6=I("java.math","BigInteger",92),Q6t,J6t,zx,RL;D(498,2065,t3),h.$b=function(){Dl(this)},h._b=function(t){return Hu(this,t)},h.uc=function(t){return o1t(this,t,this.i)||o1t(this,t,this.f)},h.vc=function(){return new Cr(this)},h.xc=function(t){return or(this,t)},h.zc=function(t,n){return Ti(this,t,n)},h.Bc=function(t){return ox(this,t)},h.gc=function(){return g_(this)},h.g=0,I(_r,"AbstractHashMap",498),D(267,q1,Tl,Cr),h.$b=function(){this.a.$b()},h.Hc=function(t){return Wct(this,t)},h.Kc=function(){return new Xm(this.a)},h.Mc=function(t){var n;return Wct(this,t)?(n=l(t,44).ld(),this.a.Bc(n),!0):!1},h.gc=function(){return this.a.gc()},I(_r,"AbstractHashMap/EntrySet",267),D(268,1,Ia,Xm),h.Nb=function(t){Qa(this,t)},h.Pb=function(){return zw(this)},h.Ob=function(){return this.b},h.Qb=function(){Tht(this)},h.b=!1,h.d=0,I(_r,"AbstractHashMap/EntrySetIterator",268),D(426,1,Ia,xr),h.Nb=function(t){Qa(this,t)},h.Ob=function(){return Ese(this)},h.Pb=function(){return X5e(this)},h.Qb=function(){fh(this)},h.b=0,h.c=-1,I(_r,"AbstractList/IteratorImpl",426),D(98,426,dg,Ua),h.Qb=function(){fh(this)},h.Rb=function(t){wy(this,t)},h.Sb=function(){return this.b>0},h.Tb=function(){return this.b},h.Ub=function(){return br(this.b>0),this.a.Xb(this.c=--this.b)},h.Vb=function(){return this.b-1},h.Wb=function(t){my(this.c!=-1),this.a.hd(this.c,t)},I(_r,"AbstractList/ListIteratorImpl",98),D(244,56,aE,c2),h.bd=function(t,n){Sy(t,this.b),this.c.bd(this.a+t,n),++this.b},h.Xb=function(t){return Sn(t,this.b),this.c.Xb(this.a+t)},h.gd=function(t){var n;return Sn(t,this.b),n=this.c.gd(this.a+t),--this.b,n},h.hd=function(t,n){return Sn(t,this.b),this.c.hd(this.a+t,n)},h.gc=function(){return this.b},h.a=0,h.b=0,I(_r,"AbstractList/SubList",244),D(266,q1,Tl,pr),h.$b=function(){this.a.$b()},h.Hc=function(t){return this.a._b(t)},h.Kc=function(){var t;return t=this.a.vc().Kc(),new Di(t)},h.Mc=function(t){return this.a._b(t)?(this.a.Bc(t),!0):!1},h.gc=function(){return this.a.gc()},I(_r,"AbstractMap/1",266),D(541,1,Ia,Di),h.Nb=function(t){Qa(this,t)},h.Ob=function(){return this.a.Ob()},h.Pb=function(){var t;return t=l(this.a.Pb(),44),t.ld()},h.Qb=function(){this.a.Qb()},I(_r,"AbstractMap/1/1",541),D(231,31,Qy,pi),h.$b=function(){this.a.$b()},h.Hc=function(t){return this.a.uc(t)},h.Kc=function(){var t;return t=this.a.vc().Kc(),new fs(t)},h.gc=function(){return this.a.gc()},I(_r,"AbstractMap/2",231),D(301,1,Ia,fs),h.Nb=function(t){Qa(this,t)},h.Ob=function(){return this.a.Ob()},h.Pb=function(){var t;return t=l(this.a.Pb(),44),t.md()},h.Qb=function(){this.a.Qb()},I(_r,"AbstractMap/2/1",301),D(494,1,{494:1,44:1}),h.Fb=function(t){var n;return De(t,44)?(n=l(t,44),eu(this.d,n.ld())&&eu(this.e,n.md())):!1},h.ld=function(){return this.d},h.md=function(){return this.e},h.Hb=function(){return $5(this.d)^$5(this.e)},h.nd=function(t){return m4e(this,t)},h.Ib=function(){return this.d+"="+this.e},I(_r,"AbstractMap/AbstractEntry",494),D(397,494,{494:1,397:1,44:1},pq),I(_r,"AbstractMap/SimpleEntry",397),D(2082,1,khe),h.Fb=function(t){var n;return De(t,44)?(n=l(t,44),eu(this.ld(),n.ld())&&eu(this.md(),n.md())):!1},h.Hb=function(){return $5(this.ld())^$5(this.md())},h.Ib=function(){return this.ld()+"="+this.md()},I(_r,a3t,2082),D(2090,2065,mTe),h.Xc=function(t){return mse(this.Ee(t))},h.tc=function(t){return elt(this,t)},h._b=function(t){return v4e(this,t)},h.vc=function(){return new Rs(this)},h.Tc=function(){return gat(this.Ge())},h.Yc=function(t){return mse(this.He(t))},h.xc=function(t){var n;return n=t,dc(this.Fe(n))},h.$c=function(t){return mse(this.Ie(t))},h.ec=function(){return new Fs(this)},h.Vc=function(){return gat(this.Je())},h._c=function(t){return mse(this.Ke(t))},I(_r,"AbstractNavigableMap",2090),D(629,q1,Tl,Rs),h.Hc=function(t){return De(t,44)&&elt(this.b,l(t,44))},h.Kc=function(){return this.b.De()},h.Mc=function(t){var n;return De(t,44)?(n=l(t,44),this.b.Le(n)):!1},h.gc=function(){return this.b.gc()},I(_r,"AbstractNavigableMap/EntrySet",629),D(1146,q1,vTe,Fs),h.Nc=function(){return new dq(this)},h.$b=function(){this.a.$b()},h.Hc=function(t){return v4e(this.a,t)},h.Kc=function(){var t;return t=this.a.vc().b.De(),new ks(t)},h.Mc=function(t){return v4e(this.a,t)?(this.a.Bc(t),!0):!1},h.gc=function(){return this.a.gc()},I(_r,"AbstractNavigableMap/NavigableKeySet",1146),D(1147,1,Ia,ks),h.Nb=function(t){Qa(this,t)},h.Ob=function(){return Ese(this.a.a)},h.Pb=function(){var t;return t=Frt(this.a),t.ld()},h.Qb=function(){Hit(this.a)},I(_r,"AbstractNavigableMap/NavigableKeySet/1",1147),D(2103,31,Qy),h.Fc=function(t){return W8(qT(this,t),cE),!0},h.Gc=function(t){return tr(t),UO(t!=this,"Can't add a queue to itself"),Ga(this,t)},h.$b=function(){for(;oce(this)!=null;);},I(_r,"AbstractQueue",2103),D(310,31,{4:1,20:1,31:1,16:1},H5,Hct),h.Fc=function(t){return k6e(this,t),!0},h.$b=function(){A6e(this)},h.Hc=function(t){return L0t(new rA(this),t)},h.dc=function(){return h_(this)},h.Kc=function(){return new rA(this)},h.Mc=function(t){return $2n(new rA(this),t)},h.gc=function(){return this.c-this.b&this.a.length-1},h.Nc=function(){return new kn(this,272)},h.Qc=function(t){var n;return n=this.c-this.b&this.a.length-1,t.lengthn&&Ss(t,n,null),t},h.b=0,h.c=0,I(_r,"ArrayDeque",310),D(459,1,Ia,rA),h.Nb=function(t){Qa(this,t)},h.Ob=function(){return this.a!=this.b},h.Pb=function(){return UU(this)},h.Qb=function(){Cft(this)},h.a=0,h.b=0,h.c=-1,I(_r,"ArrayDeque/IteratorImpl",459),D(13,56,x3t,mt,Pu,Ml),h.bd=function(t,n){kw(this,t,n)},h.Fc=function(t){return wt(this,t)},h.cd=function(t,n){return p8e(this,t,n)},h.Gc=function(t){return aa(this,t)},h.$b=function(){uy(this.c,0)},h.Hc=function(t){return bc(this,t,0)!=-1},h.Jc=function(t){Uu(this,t)},h.Xb=function(t){return Rt(this,t)},h.dd=function(t){return bc(this,t,0)},h.dc=function(){return this.c.length==0},h.Kc=function(){return new K(this)},h.gd=function(t){return l2(this,t)},h.Mc=function(t){return sl(this,t)},h.ce=function(t,n){fct(this,t,n)},h.hd=function(t,n){return nf(this,t,n)},h.gc=function(){return this.c.length},h.jd=function(t){Gs(this,t)},h.Pc=function(){return oH(this.c)},h.Qc=function(t){return j1(this,t)};var LOn=I(_r,"ArrayList",13);D(7,1,Ia,K),h.Nb=function(t){Qa(this,t)},h.Ob=function(){return Oc(this)},h.Pb=function(){return re(this)},h.Qb=function(){J_(this)},h.a=0,h.b=-1,I(_r,"ArrayList/1",7),D(2112,b.Function,{},Pe),h.Me=function(t,n){return Xi(t,n)},D(151,56,k3t,Ll),h.Hc=function(t){return Sft(this,t)!=-1},h.Jc=function(t){var n,r,s,o;for(tr(t),r=this.a,s=0,o=r.length;s0)throw ue(new Wn(ATe+t+" greater than "+this.e));return this.f.Te()?Pot(this.c,this.b,this.a,t,n):dct(this.c,t,n)},h.zc=function(t,n){if(!Pue(this.c,this.f,t,this.b,this.a,this.e,this.d))throw ue(new Wn(t+" outside the range "+this.b+" to "+this.e));return G0t(this.c,t,n)},h.Bc=function(t){var n;return n=t,Pue(this.c,this.f,n,this.b,this.a,this.e,this.d)?Bot(this.c,n):null},h.Le=function(t){return _H(this,t.ld())&&K6e(this.c,t)},h.gc=function(){var t,n,r;if(this.f.Te()?this.a?n=PT(this.c,this.b,!0):n=PT(this.c,this.b,!1):n=r7e(this.c),!(n&&_H(this,n.d)&&n))return 0;for(t=0,r=new xce(this.c,this.f,this.b,this.a,this.e,this.d);Ese(r.a);r.b=l(X5e(r.a),44))++t;return t},h.ad=function(t,n){if(this.f.Te()&&this.c.a.Ne(t,this.b)<0)throw ue(new Wn(ATe+t+C3t+this.b));return this.f.Ue()?Pot(this.c,t,n,this.e,this.d):gct(this.c,t,n)},h.a=!1,h.d=!1,I(_r,"TreeMap/SubMap",631),D(304,22,She,gq),h.Te=function(){return!1},h.Ue=function(){return!1};var K0e,W0e,Y0e,X0e,wK=Br(_r,"TreeMap/SubMapType",304,Hr,dmn,T0n);D(1143,304,She,znt),h.Ue=function(){return!0},Br(_r,"TreeMap/SubMapType/1",1143,wK,null,null),D(1144,304,She,Xnt),h.Te=function(){return!0},h.Ue=function(){return!0},Br(_r,"TreeMap/SubMapType/2",1144,wK,null,null),D(1145,304,She,$nt),h.Te=function(){return!0},Br(_r,"TreeMap/SubMapType/3",1145,wK,null,null);var a7t;D(157,q1,{3:1,20:1,31:1,16:1,277:1,21:1,87:1,157:1},Kwe,n2,wa),h.Nc=function(){return new dq(this)},h.Fc=function(t){return KO(this,t)},h.$b=function(){this.a.$b()},h.Hc=function(t){return this.a._b(t)},h.Kc=function(){return this.a.ec().Kc()},h.Mc=function(t){return pae(this,t)},h.gc=function(){return this.a.gc()};var POn=I(_r,"TreeSet",157);D(1082,1,{},wo),h.Ve=function(t,n){return $fn(this.a,t,n)},I(_he,"BinaryOperator/lambda$0$Type",1082),D(1083,1,{},oh),h.Ve=function(t,n){return zfn(this.a,t,n)},I(_he,"BinaryOperator/lambda$1$Type",1083),D(952,1,{},Bt),h.Kb=function(t){return t},I(_he,"Function/lambda$0$Type",952),D(395,1,ei,Vl),h.Mb=function(t){return!this.a.Mb(t)},I(_he,"Predicate/lambda$2$Type",395),D(581,1,{581:1});var o7t=I(oL,"Handler",581);D(2107,1,AP),h.xe=function(){return"DUMMY"},h.Ib=function(){return this.xe()};var F_e;I(oL,"Level",2107),D(1706,2107,AP,Ze),h.xe=function(){return"INFO"},I(oL,"Level/LevelInfo",1706),D(1843,1,{},dJe);var Q0e;I(oL,"LogManager",1843),D(1896,1,AP,qit),h.b=null,I(oL,"LogRecord",1896),D(525,1,{525:1},$oe),h.e=!1;var c7t=!1,u7t=!1,G1=!1,l7t=!1,h7t=!1;I(oL,"Logger",525),D(835,581,{581:1},Dt),I(oL,"SimpleConsoleLogHandler",835),D(108,22,{3:1,34:1,22:1,108:1},_se);var R_e,Cc,o4,uc=Br(ca,"Collector/Characteristics",108,Hr,ebn,E0n),f7t;D(758,1,{},L5e),I(ca,"CollectorImpl",758),D(1074,1,{},kt),h.Ve=function(t,n){return N4n(l(t,213),l(n,213))},I(ca,"Collectors/10methodref$merge$Type",1074),D(1075,1,{},Nn),h.Kb=function(t){return Uct(l(t,213))},I(ca,"Collectors/11methodref$toString$Type",1075),D(1076,1,{},cb),h.Kb=function(t){return Hn(),!!Tye(t)},I(ca,"Collectors/12methodref$test$Type",1076),D(144,1,{},ht),h.Yd=function(t,n){l(t,16).Fc(n)},I(ca,"Collectors/20methodref$add$Type",144),D(146,1,{},qr),h.Xe=function(){return new mt},I(ca,"Collectors/21methodref$ctor$Type",146),D(359,1,{},xt),h.Xe=function(){return new Ys},I(ca,"Collectors/23methodref$ctor$Type",359),D(360,1,{},Ri),h.Yd=function(t,n){sa(l(t,49),n)},I(ca,"Collectors/24methodref$add$Type",360),D(1069,1,{},wi),h.Ve=function(t,n){return Pet(l(t,15),l(n,16))},I(ca,"Collectors/4methodref$addAll$Type",1069),D(1073,1,{},ia),h.Yd=function(t,n){np(l(t,213),l(n,484))},I(ca,"Collectors/9methodref$add$Type",1073),D(1072,1,{},sst),h.Xe=function(){return new Qm(this.a,this.b,this.c)},I(ca,"Collectors/lambda$15$Type",1072),D(1077,1,{},Hs),h.Xe=function(){var t;return t=new u2,y2(t,(Hn(),!1),new mt),y2(t,!0,new mt),t},I(ca,"Collectors/lambda$22$Type",1077),D(1078,1,{},ub),h.Xe=function(){return he(le(ka,1),jn,1,5,[this.a])},I(ca,"Collectors/lambda$25$Type",1078),D(1079,1,{},V0),h.Yd=function(t,n){agn(this.a,Km(t))},I(ca,"Collectors/lambda$26$Type",1079),D(1080,1,{},Xp),h.Ve=function(t,n){return Ngn(this.a,Km(t),Km(n))},I(ca,"Collectors/lambda$27$Type",1080),D(1081,1,{},mo),h.Kb=function(t){return Km(t)[0]},I(ca,"Collectors/lambda$28$Type",1081),D(728,1,{},Tr),h.Ve=function(t,n){return u5e(t,n)},I(ca,"Collectors/lambda$4$Type",728),D(145,1,{},On),h.Ve=function(t,n){return pln(l(t,16),l(n,16))},I(ca,"Collectors/lambda$42$Type",145),D(361,1,{},Rn),h.Ve=function(t,n){return bln(l(t,49),l(n,49))},I(ca,"Collectors/lambda$50$Type",361),D(362,1,{},zn),h.Kb=function(t){return l(t,49)},I(ca,"Collectors/lambda$51$Type",362),D(1068,1,{},fd),h.Yd=function(t,n){$yn(this.a,l(t,85),n)},I(ca,"Collectors/lambda$7$Type",1068),D(1070,1,{},Ct),h.Ve=function(t,n){return byn(l(t,85),l(n,85),new wi)},I(ca,"Collectors/lambda$8$Type",1070),D(1071,1,{},tw),h.Kb=function(t){return d5n(this.a,l(t,85))},I(ca,"Collectors/lambda$9$Type",1071),D(550,1,{}),h.$e=function(){nA(this)},h.d=!1,I(ca,"TerminatableStream",550),D(827,550,LTe,c4e),h.$e=function(){nA(this)},I(ca,"DoubleStreamImpl",827),D(1847,736,Ph,ast),h.Re=function(t){return b7n(this,l(t,189))},h.a=null,I(ca,"DoubleStreamImpl/2",1847),D(1848,1,FP,cy),h.Pe=function(t){uhn(this.a,t)},I(ca,"DoubleStreamImpl/2/lambda$0$Type",1848),D(1845,1,FP,E8),h.Pe=function(t){chn(this.a,t)},I(ca,"DoubleStreamImpl/lambda$0$Type",1845),D(1846,1,FP,T5),h.Pe=function(t){adt(this.a,t)},I(ca,"DoubleStreamImpl/lambda$2$Type",1846),D(1397,735,Ph,Yut),h.Re=function(t){return nmn(this,l(t,202))},h.a=0,h.b=0,h.c=0,I(ca,"IntStream/5",1397),D(806,550,LTe,u4e),h.$e=function(){nA(this)},h._e=function(){return xb(this),this.a},I(ca,"IntStreamImpl",806),D(807,550,LTe,N3e),h.$e=function(){nA(this)},h._e=function(){return xb(this),Uye(),s7t},I(ca,"IntStreamImpl/Empty",807),D(1687,1,MP,C8),h.Dd=function(t){b0t(this.a,t)},I(ca,"IntStreamImpl/lambda$4$Type",1687);var BOn=Ts(ca,"Stream");D(26,550,{533:1,687:1,848:1},vn),h.$e=function(){nA(this)};var qx;I(ca,"StreamImpl",26),D(1102,500,Ph,Nit),h.Bd=function(t){for(;swn(this);){if(this.a.Bd(t))return!0;nA(this.b),this.b=null,this.a=null}return!1},I(ca,"StreamImpl/1",1102),D(1103,1,hr,e_),h.Cd=function(t){Idn(this.a,l(t,848))},I(ca,"StreamImpl/1/lambda$0$Type",1103),D(1104,1,ei,E5),h.Mb=function(t){return sa(this.a,t)},I(ca,"StreamImpl/1methodref$add$Type",1104),D(1105,500,Ph,got),h.Bd=function(t){var n;return this.a||(n=new mt,this.b.a.Nb(new eg(n)),Cn(),Gs(n,this.c),this.a=new kn(n,16)),Qht(this.a,t)},h.a=null,I(ca,"StreamImpl/5",1105),D(1106,1,hr,eg),h.Cd=function(t){wt(this.a,t)},I(ca,"StreamImpl/5/2methodref$add$Type",1106),D(737,500,Ph,i7e),h.Bd=function(t){for(this.b=!1;!this.b&&this.c.Bd(new Jet(this,t)););return this.b},h.b=!1,I(ca,"StreamImpl/FilterSpliterator",737),D(1096,1,hr,Jet),h.Cd=function(t){Agn(this.a,this.b,t)},I(ca,"StreamImpl/FilterSpliterator/lambda$0$Type",1096),D(1091,736,Ph,alt),h.Re=function(t){return c0n(this,l(t,189))},I(ca,"StreamImpl/MapToDoubleSpliterator",1091),D(1095,1,hr,Zet),h.Cd=function(t){Iln(this.a,this.b,t)},I(ca,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1095),D(1090,735,Ph,olt),h.Re=function(t){return u0n(this,l(t,202))},I(ca,"StreamImpl/MapToIntSpliterator",1090),D(1094,1,hr,ett),h.Cd=function(t){Oln(this.a,this.b,t)},I(ca,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1094),D(734,500,Ph,H6e),h.Bd=function(t){return Dit(this,t)},I(ca,"StreamImpl/MapToObjSpliterator",734),D(1093,1,hr,ttt),h.Cd=function(t){Nln(this.a,this.b,t)},I(ca,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1093),D(1092,500,Ph,Bft),h.Bd=function(t){for(;Cse(this.b,0);){if(!this.a.Bd(new gt))return!1;this.b=Df(this.b,1)}return this.a.Bd(t)},h.b=0,I(ca,"StreamImpl/SkipSpliterator",1092),D(1097,1,hr,gt),h.Cd=function(t){},I(ca,"StreamImpl/SkipSpliterator/lambda$0$Type",1097),D(626,1,hr,on),h.Cd=function(t){Fie(this,t)},I(ca,"StreamImpl/ValueConsumer",626),D(1098,1,hr,dn),h.Cd=function(t){Bm()},I(ca,"StreamImpl/lambda$0$Type",1098),D(1099,1,hr,Ln),h.Cd=function(t){Bm()},I(ca,"StreamImpl/lambda$1$Type",1099),D(1100,1,{},_1),h.Ve=function(t,n){return z0n(this.a,t,n)},I(ca,"StreamImpl/lambda$4$Type",1100),D(1101,1,hr,ntt),h.Cd=function(t){Kfn(this.b,this.a,t)},I(ca,"StreamImpl/lambda$5$Type",1101),D(1107,1,hr,tg),h.Cd=function(t){iyn(this.a,l(t,380))},I(ca,"TerminatableStream/lambda$0$Type",1107),D(2142,1,{}),D(2014,1,{},Io),I("javaemul.internal","ConsoleLogger",2014);var FOn=0;D(2134,1,{}),D(1830,1,hr,Oo),h.Cd=function(t){l(t,317)},I(uE,"BowyerWatsonTriangulation/lambda$0$Type",1830),D(1831,1,hr,Dm),h.Cd=function(t){Ga(this.a,l(t,317).e)},I(uE,"BowyerWatsonTriangulation/lambda$1$Type",1831),D(1832,1,hr,No),h.Cd=function(t){l(t,177)},I(uE,"BowyerWatsonTriangulation/lambda$2$Type",1832),D(1827,1,ii,Bz),h.Ne=function(t,n){return zmn(this.a,l(t,177),l(n,177))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(uE,"NaiveMinST/lambda$0$Type",1827),D(449,1,{},nw),I(uE,"NodeMicroLayout",449),D(177,1,{177:1},F8),h.Fb=function(t){var n;return De(t,177)?(n=l(t,177),eu(this.a,n.a)&&eu(this.b,n.b)||eu(this.a,n.b)&&eu(this.b,n.a)):!1},h.Hb=function(){return $5(this.a)+$5(this.b)};var ROn=I(uE,"TEdge",177);D(317,1,{317:1},Hke),h.Fb=function(t){var n;return De(t,317)?(n=l(t,317),lU(this,n.a)&&lU(this,n.b)&&lU(this,n.c)):!1},h.Hb=function(){return $5(this.a)+$5(this.b)+$5(this.c)},I(uE,"TTriangle",317),D(225,1,{225:1},zq),I(uE,"Tree",225),D(1218,1,{},Zot),I(A3t,"Scanline",1218);var d7t=Ts(A3t,L3t);D(1758,1,{},Wht),I(mg,"CGraph",1758),D(316,1,{316:1},nct),h.b=0,h.c=0,h.d=0,h.g=0,h.i=0,h.k=oa,I(mg,"CGroup",316),D(830,1,{},Xwe),I(mg,"CGroup/CGroupBuilder",830),D(60,1,{60:1},git),h.Ib=function(){var t;return this.j?Zr(this.j.Kb(this)):(Xg(yK),yK.o+"@"+(t=ww(this)>>>0,t.toString(16)))},h.f=0,h.i=oa;var yK=I(mg,"CNode",60);D(829,1,{},Qwe),I(mg,"CNode/CNodeBuilder",829);var g7t;D(1590,1,{},Us),h.ff=function(t,n){return 0},h.gf=function(t,n){return 0},I(mg,D3t,1590),D(1853,1,{},uo),h.cf=function(t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te;for(C=gs,s=new K(t.a.b);s.as.d.c||s.d.c==f.d.c&&s.d.b0?t+this.n.d+this.n.a:0},h.kf=function(){var t,n,r,s,o;if(o=0,this.e)this.b?o=this.b.a:this.a[1][1]&&(o=this.a[1][1].kf());else if(this.g)o=z8e(this,Fue(this,null,!0));else for(n=(e1(),he(le(c4,1),it,237,0,[Wc,ju,Yc])),r=0,s=n.length;r0?o+this.n.b+this.n.c:0},h.lf=function(){var t,n,r,s,o;if(this.g)for(t=Fue(this,null,!1),r=(e1(),he(le(c4,1),it,237,0,[Wc,ju,Yc])),s=0,o=r.length;s0&&(s[0]+=this.d,r-=s[0]),s[2]>0&&(s[2]+=this.d,r-=s[2]),this.c.a=b.Math.max(0,r),this.c.d=n.d+t.d+(this.c.a-r)/2,s[1]=b.Math.max(s[1],r),j6e(this,ju,n.d+t.d+s[0]-(s[1]-r)/2,s)},h.b=null,h.d=0,h.e=!1,h.f=!1,h.g=!1;var n1e=0,xK=0;I(cv,"GridContainerCell",1538),D(471,22,{3:1,34:1,22:1,471:1},Lse);var Vb,Fd,m0,E7t=Br(cv,"HorizontalLabelAlignment",471,Hr,nbn,L0n),C7t;D(314,217,{217:1,314:1},jot,Xht,Iot),h.jf=function(){return wst(this)},h.kf=function(){return r5e(this)},h.a=0,h.c=!1;var jOn=I(cv,"LabelCell",314);D(252,336,{217:1,336:1,252:1},IA),h.jf=function(){return uP(this)},h.kf=function(){return lP(this)},h.lf=function(){Cle(this)},h.mf=function(){Sle(this)},h.b=0,h.c=0,h.d=!1,I(cv,"StripContainerCell",252),D(1691,1,ei,Ac),h.Mb=function(t){return Lun(l(t,217))},I(cv,"StripContainerCell/lambda$0$Type",1691),D(1692,1,{},Jc),h.Ye=function(t){return l(t,217).kf()},I(cv,"StripContainerCell/lambda$1$Type",1692),D(1693,1,ei,Ya),h.Mb=function(t){return Mun(l(t,217))},I(cv,"StripContainerCell/lambda$2$Type",1693),D(1694,1,{},Ba),h.Ye=function(t){return l(t,217).jf()},I(cv,"StripContainerCell/lambda$3$Type",1694),D(472,22,{3:1,34:1,22:1,472:1},Mse);var v0,Gb,s1,S7t=Br(cv,"VerticalLabelAlignment",472,Hr,tbn,M0n),_7t;D(800,1,{},sTe),h.c=0,h.d=0,h.k=0,h.s=0,h.t=0,h.v=!1,h.w=0,h.D=!1,I(cG,"NodeContext",800),D(1536,1,ii,ha),h.Ne=function(t,n){return Dnt(l(t,64),l(n,64))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(cG,"NodeContext/0methodref$comparePortSides$Type",1536),D(1537,1,ii,$o),h.Ne=function(t,n){return s9n(l(t,117),l(n,117))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(cG,"NodeContext/1methodref$comparePortContexts$Type",1537),D(164,22,{3:1,34:1,22:1,164:1},af);var A7t,L7t,M7t,D7t,I7t,O7t,N7t,P7t,B7t,F7t,R7t,j7t,$7t,z7t,q7t,H7t,U7t,V7t,G7t,K7t,W7t,r1e,Y7t=Br(cG,"NodeLabelLocation",164,Hr,gue,D0n),X7t;D(117,1,{117:1},R2t),h.a=!1,I(cG,"PortContext",117),D(1541,1,hr,Lc),h.Cd=function(t){WZe(l(t,314))},I(jP,U3t,1541),D(1542,1,ei,Fa),h.Mb=function(t){return!!l(t,117).c},I(jP,V3t,1542),D(1543,1,hr,Ra),h.Cd=function(t){WZe(l(t,117).c)},I(jP,"LabelPlacer/lambda$2$Type",1543);var aAe;D(1540,1,hr,ma),h.Cd=function(t){vy(),cun(l(t,117))},I(jP,"NodeLabelAndSizeUtilities/lambda$0$Type",1540),D(801,1,hr,B4e),h.Cd=function(t){kln(this.b,this.c,this.a,l(t,187))},h.a=!1,h.c=!1,I(jP,"NodeLabelCellCreator/lambda$0$Type",801),D(1539,1,hr,Vie),h.Cd=function(t){hun(this.a,l(t,187))},I(jP,"PortContextCreator/lambda$0$Type",1539);var kK;D(1902,1,{},Kh),I(hE,"GreedyRectangleStripOverlapRemover",1902),D(1903,1,ii,Po),h.Ne=function(t,n){return efn(l(t,226),l(n,226))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(hE,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1903),D(1849,1,{},mJe),h.a=5,h.e=0,I(hE,"RectangleStripOverlapRemover",1849),D(1850,1,ii,Hp),h.Ne=function(t,n){return tfn(l(t,226),l(n,226))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(hE,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1850),D(1852,1,ii,Ug),h.Ne=function(t,n){return Ugn(l(t,226),l(n,226))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(hE,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1852),D(417,22,{3:1,34:1,22:1,417:1},bq);var hB,i1e,s1e,fB,Q7t=Br(hE,"RectangleStripOverlapRemover/OverlapRemovalDirection",417,Hr,bmn,I0n),J7t;D(226,1,{226:1},Vae),I(hE,"RectangleStripOverlapRemover/RectangleNode",226),D(1851,1,hr,Gie),h.Cd=function(t){D7n(this.a,l(t,226))},I(hE,"RectangleStripOverlapRemover/lambda$1$Type",1851),D(1323,1,ii,od),h.Ne=function(t,n){return QLn(l(t,176),l(n,176))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Md,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1323),D(1326,1,{},cd),h.Kb=function(t){return l(t,334).a},I(Md,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1326),D(1327,1,ei,w1),h.Mb=function(t){return l(t,332).a},I(Md,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1327),D(1328,1,ei,kh),h.Mb=function(t){return l(t,332).a},I(Md,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1328),D(1321,1,ii,Wd),h.Ne=function(t,n){return __n(l(t,176),l(n,176))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Md,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1321),D(1324,1,{},Yd),h.Kb=function(t){return l(t,334).a},I(Md,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1324),D(781,1,ii,Xd),h.Ne=function(t,n){return uyn(l(t,176),l(n,176))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Md,"PolyominoCompactor/MinNumOfExtensionsComparator",781),D(1319,1,ii,Zf),h.Ne=function(t,n){return m3n(l(t,330),l(n,330))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Md,"PolyominoCompactor/MinPerimeterComparator",1319),D(1320,1,ii,Up),h.Ne=function(t,n){return t7n(l(t,330),l(n,330))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Md,"PolyominoCompactor/MinPerimeterComparatorWithShape",1320),D(1322,1,ii,u5),h.Ne=function(t,n){return W_n(l(t,176),l(n,176))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Md,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1322),D(1325,1,{},bs),h.Kb=function(t){return l(t,334).a},I(Md,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1325),D(782,1,{},K3e),h.Ve=function(t,n){return cmn(this,l(t,42),l(n,176))},I(Md,"SuccessorCombination",782),D(649,1,{},Vt),h.Ve=function(t,n){var r;return ETn((r=l(t,42),l(n,176),r))},I(Md,"SuccessorJitter",649),D(648,1,{},jr),h.Ve=function(t,n){var r;return lSn((r=l(t,42),l(n,176),r))},I(Md,"SuccessorLineByLine",648),D(573,1,{},Ji),h.Ve=function(t,n){var r;return EEn((r=l(t,42),l(n,176),r))},I(Md,"SuccessorManhattan",573),D(1344,1,{},Qo),h.Ve=function(t,n){var r;return NCn((r=l(t,42),l(n,176),r))},I(Md,"SuccessorMaxNormWindingInMathPosSense",1344),D(409,1,{},C5),h.Ve=function(t,n){return _5e(this,t,n)},h.c=!1,h.d=!1,h.e=!1,h.f=!1,I(Md,"SuccessorQuadrantsGeneric",409),D(1345,1,{},Hi),h.Kb=function(t){return l(t,334).a},I(Md,"SuccessorQuadrantsGeneric/lambda$0$Type",1345),D(332,22,{3:1,34:1,22:1,332:1},mq),h.a=!1;var dB,gB,pB,bB,Z7t=Br(lG,$Te,332,Hr,gmn,O0n),e8t;D(1317,1,{}),h.Ib=function(){var t,n,r,s,o,f;for(r=" ",t=bt(0),o=0;o=0?"b"+t+"["+joe(this.a)+"]":"b["+joe(this.a)+"]"):"b_"+ww(this)},I(zP,"FBendpoint",250),D(290,137,{3:1,290:1,96:1,137:1},pit),h.Ib=function(){return joe(this)},I(zP,"FEdge",290),D(235,137,{3:1,235:1,96:1,137:1},eU);var zOn=I(zP,"FGraph",235);D(454,309,{3:1,454:1,309:1,96:1,137:1},mut),h.Ib=function(){return this.b==null||this.b.length==0?"l["+joe(this.a)+"]":"l_"+this.b},I(zP,"FLabel",454),D(153,309,{3:1,153:1,309:1,96:1,137:1},Ynt),h.Ib=function(){return g6e(this)},h.a=0,I(zP,"FNode",153),D(2100,1,{}),h.vf=function(t){Rke(this,t)},h.wf=function(){vgt(this)},h.d=0,I(YTe,"AbstractForceModel",2100),D(641,2100,{641:1},p0t),h.uf=function(t,n){var r,s,o,f,g;return Vvt(this.f,t,n),o=ya(Xa(n.d),t.d),g=b.Math.sqrt(o.a*o.a+o.b*o.b),s=b.Math.max(0,g-tA(t.e)/2-tA(n.e)/2),r=_2t(this.e,t,n),r>0?f=-zgn(s,this.c)*r:f=bfn(s,this.b)*l(Q(t,(p0(),Hx)),17).a,md(o,f/g),o},h.vf=function(t){Rke(this,t),this.a=l(Q(t,(p0(),AK)),17).a,this.c=ze(Ge(Q(t,LK))),this.b=ze(Ge(Q(t,f1e)))},h.xf=function(t){return t0&&(f-=Cun(s,this.a)*r),md(o,f*this.b/g),o},h.vf=function(t){var n,r,s,o,f,g,w;for(Rke(this,t),this.b=ze(Ge(Q(t,(p0(),d1e)))),this.c=this.b/l(Q(t,AK),17).a,s=t.e.c.length,f=0,o=0,w=new K(t.e);w.a0},h.a=0,h.b=0,h.c=0,I(YTe,"FruchtermanReingoldModel",642),D(860,1,Pf,WS),h.hf=function(t){an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,dG),""),"Force Model"),"Determines the model for force calculation."),pAe),(T2(),ps)),bAe),hn((n1(),Bn))))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,XTe),""),"Iterations"),"The number of iterations on the force model."),bt(300)),Sc),to),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,QTe),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),bt(0)),Sc),to),hn(zd)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,Vhe),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),Dd),co),ra),hn(Bn)))),Zs(t,Vhe,dG,y8t),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,Ghe),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),co),ra),hn(Bn)))),Zs(t,Ghe,dG,m8t),Owt((new YS,t))};var g8t,p8t,pAe,b8t,m8t,v8t,w8t,y8t;I(lL,"ForceMetaDataProvider",860),D(432,22,{3:1,34:1,22:1,432:1},Y3e);var h1e,_K,bAe=Br(lL,"ForceModelStrategy",432,Hr,c2n,B0n),x8t;D(C2,1,Pf,YS),h.hf=function(t){Owt(t)};var k8t,T8t,mAe,AK,vAe,E8t,C8t,S8t,_8t,wAe,A8t,yAe,xAe,L8t,Hx,M8t,f1e,kAe,D8t,I8t,LK,d1e,O8t,N8t,P8t,TAe,B8t;I(lL,"ForceOptions",C2),D(1001,1,{},ld),h.sf=function(){var t;return t=new Ywe,t},h.tf=function(t){},I(lL,"ForceOptions/ForceFactory",1001);var wB,zL,Ux,MK;D(861,1,Pf,lz),h.hf=function(t){an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,ZTe),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(Hn(),!1)),(T2(),Ta)),Ps),hn((n1(),pa))))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,eEe),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),co),ra),is(Bn,he(le(Eg,1),it,170,0,[zd]))))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,tEe),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),EAe),ps),DAe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,nEe),""),"Stress Epsilon"),"Termination criterion for the iterative process."),Dd),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,rEe),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),bt(Ni)),Sc),to),hn(Bn)))),owt((new hz,t))};var F8t,R8t,EAe,j8t,$8t,z8t;I(lL,"StressMetaDataProvider",861),D(1004,1,Pf,hz),h.hf=function(t){owt(t)};var DK,CAe,SAe,_Ae,AAe,LAe,q8t,H8t,U8t,V8t,MAe,G8t;I(lL,"StressOptions",1004),D(1005,1,{},y1),h.sf=function(){var t;return t=new bit,t},h.tf=function(t){},I(lL,"StressOptions/StressFactory",1005),D(1110,205,uv,bit),h.rf=function(t,n){var r,s,o,f,g;for(n.Ug(iyt,1),Ft(Pt(at(t,(JN(),AAe))))?Ft(Pt(at(t,MAe)))||tN((r=new nw((dw(),new sw(t))),r)):Ebt(new Ywe,t,n.eh(1)),o=j0t(t),s=bvt(this.a,o),g=s.Kc();g.Ob();)f=l(g.Pb(),235),!(f.e.c.length<=1)&&(WLn(this.b,f),wEn(this.b),Uu(f.d,new ud));o=Mwt(s),$wt(o),n.Vg()},I(bG,"StressLayoutProvider",1110),D(1111,1,hr,ud),h.Cd=function(t){Gke(l(t,454))},I(bG,"StressLayoutProvider/lambda$0$Type",1111),D(1002,1,{},fJe),h.c=0,h.e=0,h.g=0,I(bG,"StressMajorization",1002),D(391,22,{3:1,34:1,22:1,391:1},Dse);var g1e,p1e,b1e,DAe=Br(bG,"StressMajorization/Dimension",391,Hr,ibn,F0n),K8t;D(1003,1,ii,Rz),h.Ne=function(t,n){return h0n(this.a,l(t,153),l(n,153))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(bG,"StressMajorization/lambda$0$Type",1003),D(1192,1,{},kct),I(Fx,"ElkLayered",1192),D(1193,1,hr,jz),h.Cd=function(t){Wkn(this.a,l(t,36))},I(Fx,"ElkLayered/lambda$0$Type",1193),D(1194,1,hr,Kie),h.Cd=function(t){f0n(this.a,l(t,36))},I(Fx,"ElkLayered/lambda$1$Type",1194),D(1281,1,{},srt);var W8t,Y8t,X8t;I(Fx,"GraphConfigurator",1281),D(770,1,hr,Qp),h.Cd=function(t){Dpt(this.a,l(t,10))},I(Fx,"GraphConfigurator/lambda$0$Type",770),D(771,1,{},h5),h.Kb=function(t){return Pxe(),new vn(null,new kn(l(t,30).a,16))},I(Fx,"GraphConfigurator/lambda$1$Type",771),D(772,1,hr,r_),h.Cd=function(t){Dpt(this.a,l(t,10))},I(Fx,"GraphConfigurator/lambda$2$Type",772),D(1109,205,uv,vJe),h.rf=function(t,n){var r;r=ALn(new yJe,t),qe(at(t,(Nt(),v4)))===qe((op(),F2))?a5n(this.a,r,n):pEn(this.a,r,n),n.$g()||Twt(new m8,r)},I(Fx,"LayeredLayoutProvider",1109),D(367,22,{3:1,34:1,22:1,367:1},pO);var w0,xg,pu,Cu,wc,IAe=Br(Fx,"LayeredPhases",367,Hr,cvn,R0n),Q8t;D(1717,1,{},Oft),h.i=0;var J8t;I(KP,"ComponentsToCGraphTransformer",1717);var Z8t;D(1718,1,{},Cm),h.yf=function(t,n){return b.Math.min(t.a!=null?ze(t.a):t.c.i,n.a!=null?ze(n.a):n.c.i)},h.zf=function(t,n){return b.Math.min(t.a!=null?ze(t.a):t.c.i,n.a!=null?ze(n.a):n.c.i)},I(KP,"ComponentsToCGraphTransformer/1",1718),D(86,1,{86:1}),h.i=0,h.k=!0,h.o=oa;var m1e=I(gL,"CNode",86);D(470,86,{470:1,86:1},Zye,uxe),h.Ib=function(){return""},I(KP,"ComponentsToCGraphTransformer/CRectNode",470),D(1688,1,{},U9);var v1e,w1e;I(KP,"OneDimensionalComponentsCompaction",1688),D(1689,1,{},Qv),h.Kb=function(t){return Y2n(l(t,42))},h.Fb=function(t){return this===t},I(KP,"OneDimensionalComponentsCompaction/lambda$0$Type",1689),D(1690,1,{},X7),h.Kb=function(t){return c5n(l(t,42))},h.Fb=function(t){return this===t},I(KP,"OneDimensionalComponentsCompaction/lambda$1$Type",1690),D(1720,1,{},Lat),I(gL,"CGraph",1720),D(194,1,{194:1},hue),h.b=0,h.c=0,h.e=0,h.g=!0,h.i=oa,I(gL,"CGroup",194),D(1719,1,{},tb),h.yf=function(t,n){return b.Math.max(t.a!=null?ze(t.a):t.c.i,n.a!=null?ze(n.a):n.c.i)},h.zf=function(t,n){return b.Math.max(t.a!=null?ze(t.a):t.c.i,n.a!=null?ze(n.a):n.c.i)},I(gL,D3t,1719),D(1721,1,{},L2t),h.d=!1;var ext,y1e=I(gL,N3t,1721);D(1722,1,{},Q7),h.Kb=function(t){return B3e(),Hn(),l(l(t,42).a,86).d.e!=0},h.Fb=function(t){return this===t},I(gL,P3t,1722),D(833,1,{},l5e),h.a=!1,h.b=!1,h.c=!1,h.d=!1,I(gL,B3t,833),D(1898,1,{},Vst),I(mG,F3t,1898);var yB=Ts(hv,L3t);D(1899,1,{382:1},Cot),h.bf=function(t){TSn(this,l(t,476))},I(mG,R3t,1899),D(Rb,1,ii,f5),h.Ne=function(t,n){return Ipn(l(t,86),l(n,86))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(mG,j3t,Rb),D(476,1,{476:1},Q3e),h.a=!1,I(mG,$3t,476),D(1901,1,ii,Z3),h.Ne=function(t,n){return O8n(l(t,476),l(n,476))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(mG,z3t,1901),D(148,1,{148:1},Nk,K4e),h.Fb=function(t){var n;return t==null||qOn!=dh(t)?!1:(n=l(t,148),eu(this.c,n.c)&&eu(this.d,n.d))},h.Hb=function(){return RN(he(le(ka,1),jn,1,5,[this.c,this.d]))},h.Ib=function(){return"("+this.c+To+this.d+(this.a?"cx":"")+this.b+")"},h.a=!0,h.c=0,h.d=0;var qOn=I(hv,"Point",148);D(416,22,{3:1,34:1,22:1,416:1},wq);var f3,u4,I6,l4,txt=Br(hv,"Point/Quadrant",416,Hr,mmn,j0n),nxt;D(1708,1,{},bJe),h.b=null,h.c=null,h.d=null,h.e=null,h.f=null;var rxt,ixt,sxt,axt,oxt;I(hv,"RectilinearConvexHull",1708),D(583,1,{382:1},uV),h.bf=function(t){own(this,l(t,148))},h.b=0;var OAe;I(hv,"RectilinearConvexHull/MaximalElementsEventHandler",583),D(1710,1,ii,Gp),h.Ne=function(t,n){return Opn(Ge(t),Ge(n))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(hv,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1710),D(1709,1,{382:1},Yht),h.bf=function(t){RCn(this,l(t,148))},h.a=0,h.b=null,h.c=null,h.d=null,h.e=null,I(hv,"RectilinearConvexHull/RectangleEventHandler",1709),D(1711,1,ii,lI),h.Ne=function(t,n){return zbn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(hv,"RectilinearConvexHull/lambda$0$Type",1711),D(1712,1,ii,eZ),h.Ne=function(t,n){return qbn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(hv,"RectilinearConvexHull/lambda$1$Type",1712),D(1713,1,ii,Sm),h.Ne=function(t,n){return $bn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(hv,"RectilinearConvexHull/lambda$2$Type",1713),D(1714,1,ii,lu),h.Ne=function(t,n){return Hbn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(hv,"RectilinearConvexHull/lambda$3$Type",1714),D(1715,1,ii,tZ),h.Ne=function(t,n){return y9n(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(hv,"RectilinearConvexHull/lambda$4$Type",1715),D(1716,1,{},ect),I(hv,"Scanline",1716),D(2104,1,{}),I(U1,"AbstractGraphPlacer",2104),D(335,1,{335:1},zrt),h.Ff=function(t){return this.Gf(t)?(xn(this.b,l(Q(t,(ft(),wp)),21),t),!0):!1},h.Gf=function(t){var n,r,s,o;for(n=l(Q(t,(ft(),wp)),21),o=l($i(Qi,n),21),s=o.Kc();s.Ob();)if(r=l(s.Pb(),21),!l($i(this.b,r),15).dc())return!1;return!0};var Qi;I(U1,"ComponentGroup",335),D(779,2104,{},Jwe),h.Hf=function(t){var n,r;for(r=new K(this.a);r.ar&&(L=0,F+=w+s,w=0),T=f.c,YT(f,L+T.a,F+T.b),W0(T),o=b.Math.max(o,L+C.a),w=b.Math.max(w,C.b),L+=C.a+s;n.f.a=o,n.f.b=F+w},h.Jf=function(t,n){var r,s,o,f,g;if(qe(Q(n,(Nt(),m4)))===qe((tv(),h4))){for(s=t.Kc();s.Ob();){for(r=l(s.Pb(),36),g=0,f=new K(r.a);f.ar&&!l(Q(f,(ft(),wp)),21).Hc((_t(),Xn))||T&&l(Q(T,(ft(),wp)),21).Hc((_t(),sr))||l(Q(f,(ft(),wp)),21).Hc((_t(),Zn)))&&(z=F,V+=w+s,w=0),C=f.c,l(Q(f,(ft(),wp)),21).Hc((_t(),Xn))&&(z=o+s),YT(f,z+C.a,V+C.b),o=b.Math.max(o,z+L.a),l(Q(f,wp),21).Hc(Mr)&&(F=b.Math.max(F,z+L.a+s)),W0(C),w=b.Math.max(w,L.b),z+=L.a+s,T=f;n.f.a=o,n.f.b=V+w},h.Jf=function(t,n){},I(U1,"ModelOrderRowGraphPlacer",1313),D(1311,1,ii,pj),h.Ne=function(t,n){return ayn(l(t,36),l(n,36))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(U1,"SimpleRowGraphPlacer/1",1311);var uxt;D(1280,1,Ld,z0),h.Lb=function(t){var n;return n=l(Q(l(t,249).b,(Nt(),lc)),75),!!n&&n.b!=0},h.Fb=function(t){return this===t},h.Mb=function(t){var n;return n=l(Q(l(t,249).b,(Nt(),lc)),75),!!n&&n.b!=0},I(vG,"CompoundGraphPostprocessor/1",1280),D(1279,1,ns,xJe),h.Kf=function(t,n){Jdt(this,l(t,36),n)},I(vG,"CompoundGraphPreprocessor",1279),D(453,1,{453:1},q1t),h.c=!1,I(vG,"CompoundGraphPreprocessor/ExternalPort",453),D(249,1,{249:1},eH),h.Ib=function(){return yae(this.c)+":"+T2t(this.b)},I(vG,"CrossHierarchyEdge",249),D(777,1,ii,eO),h.Ne=function(t,n){return o8n(this,l(t,249),l(n,249))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(vG,"CrossHierarchyEdgeComparator",777),D(305,137,{3:1,305:1,96:1,137:1}),h.p=0,I(Tu,"LGraphElement",305),D(18,305,{3:1,18:1,305:1,96:1,137:1},Dw),h.Ib=function(){return T2t(this)};var T1e=I(Tu,"LEdge",18);D(36,305,{3:1,20:1,36:1,305:1,96:1,137:1},C7e),h.Jc=function(t){Za(this,t)},h.Kc=function(){return new K(this.b)},h.Ib=function(){return this.b.c.length==0?"G-unlayered"+Ob(this.a):this.a.c.length==0?"G-layered"+Ob(this.b):"G[layerless"+Ob(this.a)+", layers"+Ob(this.b)+"]"};var lxt=I(Tu,"LGraph",36),hxt;D(666,1,{}),h.Lf=function(){return this.e.n},h.of=function(t){return Q(this.e,t)},h.Mf=function(){return this.e.o},h.Nf=function(){return this.e.p},h.pf=function(t){return rs(this.e,t)},h.Of=function(t){this.e.n.a=t.a,this.e.n.b=t.b},h.Pf=function(t){this.e.o.a=t.a,this.e.o.b=t.b},h.Qf=function(t){this.e.p=t},I(Tu,"LGraphAdapters/AbstractLShapeAdapter",666),D(474,1,{853:1},Im),h.Rf=function(){var t,n;if(!this.b)for(this.b=rg(this.a.b.c.length),n=new K(this.a.b);n.a0&&w1t((Yn(n-1,t.length),t.charCodeAt(n-1)),lyt);)--n;if(f> ",t),wV(r)),li(mu((t.a+="[",t),r.i),"]")),t.a},h.c=!0,h.d=!1;var RAe,jAe,$Ae,zAe,qAe,HAe,dxt=I(Tu,"LPort",12);D(408,1,gg,S5),h.Jc=function(t){Za(this,t)},h.Kc=function(){var t;return t=new K(this.a.e),new pYe(t)},I(Tu,"LPort/1",408),D(1309,1,Ia,pYe),h.Nb=function(t){Qa(this,t)},h.Pb=function(){return l(re(this.a),18).c},h.Ob=function(){return Oc(this.a)},h.Qb=function(){J_(this.a)},I(Tu,"LPort/1/1",1309),D(369,1,gg,S8),h.Jc=function(t){Za(this,t)},h.Kc=function(){var t;return t=new K(this.a.g),new Bwe(t)},I(Tu,"LPort/2",369),D(776,1,Ia,Bwe),h.Nb=function(t){Qa(this,t)},h.Pb=function(){return l(re(this.a),18).d},h.Ob=function(){return Oc(this.a)},h.Qb=function(){J_(this.a)},I(Tu,"LPort/2/1",776),D(1302,1,gg,att),h.Jc=function(t){Za(this,t)},h.Kc=function(){return new N1(this)},I(Tu,"LPort/CombineIter",1302),D(208,1,Ia,N1),h.Nb=function(t){Qa(this,t)},h.Qb=function(){BZe()},h.Ob=function(){return z_(this)},h.Pb=function(){return Oc(this.a)?re(this.a):re(this.b)},I(Tu,"LPort/CombineIter/1",208),D(1303,1,Ld,nb),h.Lb=function(t){return sat(t)},h.Fb=function(t){return this===t},h.Mb=function(t){return xl(),l(t,12).g.c.length!=0},I(Tu,"LPort/lambda$0$Type",1303),D(1304,1,Ld,ty),h.Lb=function(t){return aat(t)},h.Fb=function(t){return this===t},h.Mb=function(t){return xl(),l(t,12).e.c.length!=0},I(Tu,"LPort/lambda$1$Type",1304),D(1305,1,Ld,rZ),h.Lb=function(t){return xl(),l(t,12).j==(_t(),Xn)},h.Fb=function(t){return this===t},h.Mb=function(t){return xl(),l(t,12).j==(_t(),Xn)},I(Tu,"LPort/lambda$2$Type",1305),D(1306,1,Ld,_m),h.Lb=function(t){return xl(),l(t,12).j==(_t(),sr)},h.Fb=function(t){return this===t},h.Mb=function(t){return xl(),l(t,12).j==(_t(),sr)},I(Tu,"LPort/lambda$3$Type",1306),D(1307,1,Ld,iZ),h.Lb=function(t){return xl(),l(t,12).j==(_t(),Mr)},h.Fb=function(t){return this===t},h.Mb=function(t){return xl(),l(t,12).j==(_t(),Mr)},I(Tu,"LPort/lambda$4$Type",1307),D(1308,1,Ld,sZ),h.Lb=function(t){return xl(),l(t,12).j==(_t(),Zn)},h.Fb=function(t){return this===t},h.Mb=function(t){return xl(),l(t,12).j==(_t(),Zn)},I(Tu,"LPort/lambda$5$Type",1308),D(30,305,{3:1,20:1,305:1,30:1,96:1,137:1},vu),h.Jc=function(t){Za(this,t)},h.Kc=function(){return new K(this.a)},h.Ib=function(){return"L_"+bc(this.b.b,this,0)+Ob(this.a)},I(Tu,"Layer",30),D(1330,1,{},yJe),I(_2,gyt,1330),D(1334,1,{},J7),h.Kb=function(t){return vc(l(t,84))},I(_2,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1334),D(1337,1,{},lS),h.Kb=function(t){return vc(l(t,84))},I(_2,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1337),D(1331,1,hr,bYe),h.Cd=function(t){$2t(this.a,l(t,123))},I(_2,WTe,1331),D(1332,1,hr,mYe),h.Cd=function(t){$2t(this.a,l(t,123))},I(_2,pyt,1332),D(1333,1,{},mj),h.Kb=function(t){return new vn(null,new kn(G5e(l(t,74)),16))},I(_2,byt,1333),D(1335,1,ei,vYe),h.Mb=function(t){return lhn(this.a,l(t,27))},I(_2,myt,1335),D(1336,1,{},V9),h.Kb=function(t){return new vn(null,new kn(_pn(l(t,74)),16))},I(_2,"ElkGraphImporter/lambda$5$Type",1336),D(1338,1,ei,wYe),h.Mb=function(t){return hhn(this.a,l(t,27))},I(_2,"ElkGraphImporter/lambda$7$Type",1338),D(1339,1,ei,aZ),h.Mb=function(t){return zpn(l(t,74))},I(_2,"ElkGraphImporter/lambda$8$Type",1339),D(1297,1,{},m8);var gxt;I(_2,"ElkGraphLayoutTransferrer",1297),D(1298,1,ei,yYe),h.Mb=function(t){return Zfn(this.a,l(t,18))},I(_2,"ElkGraphLayoutTransferrer/lambda$0$Type",1298),D(1299,1,hr,xYe),h.Cd=function(t){dO(),wt(this.a,l(t,18))},I(_2,"ElkGraphLayoutTransferrer/lambda$1$Type",1299),D(1300,1,ei,kYe),h.Mb=function(t){return Rfn(this.a,l(t,18))},I(_2,"ElkGraphLayoutTransferrer/lambda$2$Type",1300),D(1301,1,hr,TYe),h.Cd=function(t){dO(),wt(this.a,l(t,18))},I(_2,"ElkGraphLayoutTransferrer/lambda$3$Type",1301),D(819,1,{},k4e),I(nr,"BiLinkedHashMultiMap",819),D(1550,1,ns,G9),h.Kf=function(t,n){S3n(l(t,36),n)},I(nr,"CommentNodeMarginCalculator",1550),D(1551,1,{},oZ),h.Kb=function(t){return new vn(null,new kn(l(t,30).a,16))},I(nr,"CommentNodeMarginCalculator/lambda$0$Type",1551),D(1552,1,hr,cZ),h.Cd=function(t){SLn(l(t,10))},I(nr,"CommentNodeMarginCalculator/lambda$1$Type",1552),D(1553,1,ns,uZ),h.Kf=function(t,n){MSn(l(t,36),n)},I(nr,"CommentPostprocessor",1553),D(1554,1,ns,lZ),h.Kf=function(t,n){JDn(l(t,36),n)},I(nr,"CommentPreprocessor",1554),D(1555,1,ns,hZ),h.Kf=function(t,n){KCn(l(t,36),n)},I(nr,"ConstraintsPostprocessor",1555),D(1556,1,ns,fZ),h.Kf=function(t,n){eyn(l(t,36),n)},I(nr,"EdgeAndLayerConstraintEdgeReverser",1556),D(1557,1,ns,dZ),h.Kf=function(t,n){U5n(l(t,36),n)},I(nr,"EndLabelPostprocessor",1557),D(1558,1,{},gZ),h.Kb=function(t){return new vn(null,new kn(l(t,30).a,16))},I(nr,"EndLabelPostprocessor/lambda$0$Type",1558),D(1559,1,ei,pZ),h.Mb=function(t){return svn(l(t,10))},I(nr,"EndLabelPostprocessor/lambda$1$Type",1559),D(1560,1,hr,bZ),h.Cd=function(t){N8n(l(t,10))},I(nr,"EndLabelPostprocessor/lambda$2$Type",1560),D(1561,1,ns,mZ),h.Kf=function(t,n){kkn(l(t,36),n)},I(nr,"EndLabelPreprocessor",1561),D(1562,1,{},hI),h.Kb=function(t){return new vn(null,new kn(l(t,30).a,16))},I(nr,"EndLabelPreprocessor/lambda$0$Type",1562),D(1563,1,hr,Kit),h.Cd=function(t){Tln(this.a,this.b,this.c,l(t,10))},h.a=0,h.b=0,h.c=!1,I(nr,"EndLabelPreprocessor/lambda$1$Type",1563),D(1564,1,ei,vZ),h.Mb=function(t){return qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),sC))},I(nr,"EndLabelPreprocessor/lambda$2$Type",1564),D(1565,1,hr,EYe),h.Cd=function(t){ci(this.a,l(t,72))},I(nr,"EndLabelPreprocessor/lambda$3$Type",1565),D(1566,1,ei,wZ),h.Mb=function(t){return qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),M4))},I(nr,"EndLabelPreprocessor/lambda$4$Type",1566),D(1567,1,hr,CYe),h.Cd=function(t){ci(this.a,l(t,72))},I(nr,"EndLabelPreprocessor/lambda$5$Type",1567),D(1615,1,ns,rie),h.Kf=function(t,n){H4n(l(t,36),n)};var pxt;I(nr,"EndLabelSorter",1615),D(1616,1,ii,hS),h.Ne=function(t,n){return k6n(l(t,466),l(n,466))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(nr,"EndLabelSorter/1",1616),D(466,1,{466:1},wot),I(nr,"EndLabelSorter/LabelGroup",466),D(1617,1,{},vj),h.Kb=function(t){return fO(),new vn(null,new kn(l(t,30).a,16))},I(nr,"EndLabelSorter/lambda$0$Type",1617),D(1618,1,ei,Z7),h.Mb=function(t){return fO(),l(t,10).k==(Jn(),Bs)},I(nr,"EndLabelSorter/lambda$1$Type",1618),D(1619,1,hr,yZ),h.Cd=function(t){B9n(l(t,10))},I(nr,"EndLabelSorter/lambda$2$Type",1619),D(1620,1,ei,xZ),h.Mb=function(t){return fO(),qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),M4))},I(nr,"EndLabelSorter/lambda$3$Type",1620),D(1621,1,ei,kZ),h.Mb=function(t){return fO(),qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),sC))},I(nr,"EndLabelSorter/lambda$4$Type",1621),D(1568,1,ns,TZ),h.Kf=function(t,n){zLn(this,l(t,36))},h.b=0,h.c=0,I(nr,"FinalSplineBendpointsCalculator",1568),D(1569,1,{},EZ),h.Kb=function(t){return new vn(null,new kn(l(t,30).a,16))},I(nr,"FinalSplineBendpointsCalculator/lambda$0$Type",1569),D(1570,1,{},fS),h.Kb=function(t){return new vn(null,new Cw(new lr(fr(qs(l(t,10)).a.Kc(),new j))))},I(nr,"FinalSplineBendpointsCalculator/lambda$1$Type",1570),D(1571,1,ei,fI),h.Mb=function(t){return!Ao(l(t,18))},I(nr,"FinalSplineBendpointsCalculator/lambda$2$Type",1571),D(1572,1,ei,wj),h.Mb=function(t){return rs(l(t,18),(ft(),yv))},I(nr,"FinalSplineBendpointsCalculator/lambda$3$Type",1572),D(1573,1,hr,SYe),h.Cd=function(t){X_n(this.a,l(t,131))},I(nr,"FinalSplineBendpointsCalculator/lambda$4$Type",1573),D(1574,1,hr,d5),h.Cd=function(t){aP(l(t,18).a)},I(nr,"FinalSplineBendpointsCalculator/lambda$5$Type",1574),D(803,1,ns,Fwe),h.Kf=function(t,n){NMn(this,l(t,36),n)},I(nr,"GraphTransformer",803),D(517,22,{3:1,34:1,22:1,517:1},X3e);var C1e,xB,bxt=Br(nr,"GraphTransformer/Mode",517,Hr,u2n,U1n),mxt;D(1575,1,ns,g5),h.Kf=function(t,n){nCn(l(t,36),n)},I(nr,"HierarchicalNodeResizingProcessor",1575),D(1576,1,ns,CZ),h.Kf=function(t,n){x3n(l(t,36),n)},I(nr,"HierarchicalPortConstraintProcessor",1576),D(1577,1,ii,e0),h.Ne=function(t,n){return H6n(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(nr,"HierarchicalPortConstraintProcessor/NodeComparator",1577),D(1578,1,ns,e8),h.Kf=function(t,n){UAn(l(t,36),n)},I(nr,"HierarchicalPortDummySizeProcessor",1578),D(1579,1,ns,SZ),h.Kf=function(t,n){e_n(this,l(t,36),n)},h.a=0,I(nr,"HierarchicalPortOrthogonalEdgeRouter",1579),D(1580,1,ii,K9),h.Ne=function(t,n){return nfn(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(nr,"HierarchicalPortOrthogonalEdgeRouter/1",1580),D(1581,1,ii,Qd),h.Ne=function(t,n){return cwn(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(nr,"HierarchicalPortOrthogonalEdgeRouter/2",1581),D(1582,1,ns,_Z),h.Kf=function(t,n){m9n(l(t,36),n)},I(nr,"HierarchicalPortPositionProcessor",1582),D(1583,1,ns,ew),h.Kf=function(t,n){OIn(this,l(t,36))},h.a=0,h.c=0;var IK,OK;I(nr,"HighDegreeNodeLayeringProcessor",1583),D(580,1,{580:1},AZ),h.b=-1,h.d=-1,I(nr,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",580),D(1584,1,{},LZ),h.Kb=function(t){return zO(),Ea(l(t,10))},h.Fb=function(t){return this===t},I(nr,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1584),D(1585,1,{},yj),h.Kb=function(t){return zO(),qs(l(t,10))},h.Fb=function(t){return this===t},I(nr,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1585),D(1591,1,ns,MZ),h.Kf=function(t,n){BAn(this,l(t,36),n)},I(nr,"HyperedgeDummyMerger",1591),D(804,1,{},F4e),h.a=!1,h.b=!1,h.c=!1,I(nr,"HyperedgeDummyMerger/MergeState",804),D(1592,1,{},dS),h.Kb=function(t){return new vn(null,new kn(l(t,30).a,16))},I(nr,"HyperedgeDummyMerger/lambda$0$Type",1592),D(1593,1,{},gS),h.Kb=function(t){return new vn(null,new kn(l(t,10).j,16))},I(nr,"HyperedgeDummyMerger/lambda$1$Type",1593),D(1594,1,hr,xj),h.Cd=function(t){l(t,12).p=-1},I(nr,"HyperedgeDummyMerger/lambda$2$Type",1594),D(1595,1,ns,dI),h.Kf=function(t,n){NAn(l(t,36),n)},I(nr,"HypernodesProcessor",1595),D(1596,1,ns,t8),h.Kf=function(t,n){HAn(l(t,36),n)},I(nr,"InLayerConstraintProcessor",1596),D(1597,1,ns,DZ),h.Kf=function(t,n){B3n(l(t,36),n)},I(nr,"InnermostNodeMarginCalculator",1597),D(1598,1,ns,kj),h.Kf=function(t,n){WDn(this,l(t,36))},h.a=oa,h.b=oa,h.c=gs,h.d=gs;var HOn=I(nr,"InteractiveExternalPortPositioner",1598);D(1599,1,{},Tj),h.Kb=function(t){return l(t,18).d.i},h.Fb=function(t){return this===t},I(nr,"InteractiveExternalPortPositioner/lambda$0$Type",1599),D(1600,1,{},_Ye),h.Kb=function(t){return rfn(this.a,Ge(t))},h.Fb=function(t){return this===t},I(nr,"InteractiveExternalPortPositioner/lambda$1$Type",1600),D(1601,1,{},IZ),h.Kb=function(t){return l(t,18).c.i},h.Fb=function(t){return this===t},I(nr,"InteractiveExternalPortPositioner/lambda$2$Type",1601),D(1602,1,{},AYe),h.Kb=function(t){return ifn(this.a,Ge(t))},h.Fb=function(t){return this===t},I(nr,"InteractiveExternalPortPositioner/lambda$3$Type",1602),D(1603,1,{},LYe),h.Kb=function(t){return t0n(this.a,Ge(t))},h.Fb=function(t){return this===t},I(nr,"InteractiveExternalPortPositioner/lambda$4$Type",1603),D(1604,1,{},MYe),h.Kb=function(t){return n0n(this.a,Ge(t))},h.Fb=function(t){return this===t},I(nr,"InteractiveExternalPortPositioner/lambda$5$Type",1604),D(81,22,{3:1,34:1,22:1,81:1,196:1},Xs),h.dg=function(){switch(this.g){case 15:return new Jj;case 22:return new Vee;case 47:return new Wee;case 28:case 35:return new jZ;case 32:return new G9;case 42:return new uZ;case 1:return new lZ;case 41:return new hZ;case 56:return new Fwe((pT(),xB));case 0:return new Fwe((pT(),C1e));case 2:return new fZ;case 54:return new dZ;case 33:return new mZ;case 51:return new TZ;case 55:return new g5;case 13:return new CZ;case 38:return new e8;case 44:return new SZ;case 40:return new _Z;case 9:return new ew;case 49:return new Irt;case 37:return new MZ;case 43:return new dI;case 27:return new t8;case 30:return new DZ;case 3:return new kj;case 18:return new NZ;case 29:return new PZ;case 5:return new gk;case 50:return new OZ;case 34:return new fz;case 36:return new p5;case 52:return new rie;case 11:return new W9;case 7:return new iie;case 39:return new gI;case 45:return new ny;case 16:return new Y9;case 10:return new Ett;case 48:return new Ej;case 21:return new pI;case 23:return new cse((jw(),cM));case 8:return new bI;case 12:return new zZ;case 4:return new mI;case 19:return new pz;case 17:return new GZ;case 53:return new KZ;case 6:return new Dj;case 25:return new TJe;case 46:return new QZ;case 31:return new yit;case 14:return new see;case 26:return new Qee;case 20:return new Pj;case 24:return new cse((jw(),FW));default:throw ue(new Wn(Qhe+(this.f!=null?this.f:""+this.g)))}};var UAe,VAe,GAe,KAe,WAe,YAe,XAe,QAe,JAe,ZAe,O6,NK,PK,eLe,tLe,nLe,rLe,iLe,sLe,aLe,qL,oLe,cLe,uLe,lLe,hLe,S1e,BK,FK,fLe,RK,jK,$K,DE,f4,d4,dLe,zK,qK,gLe,HK,UK,pLe,bLe,mLe,vLe,VK,_1e,kB,GK,KK,WK,YK,wLe,yLe,xLe,kLe,UOn=Br(nr,Jhe,81,Hr,Obt,H0n),vxt;D(1605,1,ns,NZ),h.Kf=function(t,n){GDn(l(t,36),n)},I(nr,"InvertedPortProcessor",1605),D(1606,1,ns,PZ),h.Kf=function(t,n){q_n(l(t,36),n)},I(nr,"LabelAndNodeSizeProcessor",1606),D(1607,1,ei,BZ),h.Mb=function(t){return l(t,10).k==(Jn(),Bs)},I(nr,"LabelAndNodeSizeProcessor/lambda$0$Type",1607),D(1608,1,ei,FZ),h.Mb=function(t){return l(t,10).k==(Jn(),Ks)},I(nr,"LabelAndNodeSizeProcessor/lambda$1$Type",1608),D(1609,1,hr,Wit),h.Cd=function(t){Eln(this.b,this.a,this.c,l(t,10))},h.a=!1,h.c=!1,I(nr,"LabelAndNodeSizeProcessor/lambda$2$Type",1609),D(1610,1,ns,gk),h.Kf=function(t,n){vDn(l(t,36),n)};var wxt;I(nr,"LabelDummyInserter",1610),D(1611,1,Ld,Jd),h.Lb=function(t){return qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),iC))},h.Fb=function(t){return this===t},h.Mb=function(t){return qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),iC))},I(nr,"LabelDummyInserter/1",1611),D(1612,1,ns,OZ),h.Kf=function(t,n){aDn(l(t,36),n)},I(nr,"LabelDummyRemover",1612),D(1613,1,ei,Jv),h.Mb=function(t){return Ft(Pt(Q(l(t,72),(Nt(),pde))))},I(nr,"LabelDummyRemover/lambda$0$Type",1613),D(1378,1,ns,fz),h.Kf=function(t,n){JMn(this,l(t,36),n)},h.a=null;var A1e;I(nr,"LabelDummySwitcher",1378),D(293,1,{293:1},Imt),h.c=0,h.d=null,h.f=0,I(nr,"LabelDummySwitcher/LabelDummyInfo",293),D(1379,1,{},RZ),h.Kb=function(t){return hx(),new vn(null,new kn(l(t,30).a,16))},I(nr,"LabelDummySwitcher/lambda$0$Type",1379),D(1380,1,ei,pS),h.Mb=function(t){return hx(),l(t,10).k==(Jn(),uu)},I(nr,"LabelDummySwitcher/lambda$1$Type",1380),D(1381,1,{},DYe),h.Kb=function(t){return jfn(this.a,l(t,10))},I(nr,"LabelDummySwitcher/lambda$2$Type",1381),D(1382,1,hr,IYe),h.Cd=function(t){spn(this.a,l(t,293))},I(nr,"LabelDummySwitcher/lambda$3$Type",1382),D(1383,1,ii,bS),h.Ne=function(t,n){return Lgn(l(t,293),l(n,293))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(nr,"LabelDummySwitcher/lambda$4$Type",1383),D(802,1,ns,jZ),h.Kf=function(t,n){zvn(l(t,36),n)},I(nr,"LabelManagementProcessor",802),D(1614,1,ns,p5),h.Kf=function(t,n){vSn(l(t,36),n)},I(nr,"LabelSideSelector",1614),D(1622,1,ns,W9),h.Kf=function(t,n){sLn(l(t,36),n)},I(nr,"LayerConstraintPostprocessor",1622),D(1623,1,ns,iie),h.Kf=function(t,n){eEn(l(t,36),n)};var TLe;I(nr,"LayerConstraintPreprocessor",1623),D(371,22,{3:1,34:1,22:1,371:1},xq);var TB,XK,QK,L1e,yxt=Br(nr,"LayerConstraintPreprocessor/HiddenNodeConnections",371,Hr,wmn,U0n),xxt;D(1624,1,ns,gI),h.Kf=function(t,n){kMn(l(t,36),n)},I(nr,"LayerSizeAndGraphHeightCalculator",1624),D(1625,1,ns,ny),h.Kf=function(t,n){rCn(l(t,36),n)},I(nr,"LongEdgeJoiner",1625),D(1626,1,ns,Y9),h.Kf=function(t,n){JLn(l(t,36),n)},I(nr,"LongEdgeSplitter",1626),D(1627,1,ns,Ett),h.Kf=function(t,n){ODn(this,l(t,36),n)},h.e=0,h.f=0,h.j=0,h.k=0,h.n=0,h.o=0;var kxt,Txt;I(nr,"NodePromotion",1627),D(1628,1,ii,$Z),h.Ne=function(t,n){return Gyn(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(nr,"NodePromotion/1",1628),D(1629,1,ii,mS),h.Ne=function(t,n){return Kyn(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(nr,"NodePromotion/2",1629),D(1630,1,{},hd),h.Kb=function(t){return l(t,42),nH(),Hn(),!0},h.Fb=function(t){return this===t},I(nr,"NodePromotion/lambda$0$Type",1630),D(1631,1,{},BYe),h.Kb=function(t){return q2n(this.a,l(t,42))},h.Fb=function(t){return this===t},h.a=0,I(nr,"NodePromotion/lambda$1$Type",1631),D(1632,1,{},FYe),h.Kb=function(t){return z2n(this.a,l(t,42))},h.Fb=function(t){return this===t},h.a=0,I(nr,"NodePromotion/lambda$2$Type",1632),D(1633,1,ns,Ej),h.Kf=function(t,n){_In(l(t,36),n)},I(nr,"NorthSouthPortPostprocessor",1633),D(1634,1,ns,pI),h.Kf=function(t,n){oIn(l(t,36),n)},I(nr,"NorthSouthPortPreprocessor",1634),D(1635,1,ii,X9),h.Ne=function(t,n){return oyn(l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(nr,"NorthSouthPortPreprocessor/lambda$0$Type",1635),D(1636,1,ns,bI),h.Kf=function(t,n){TAn(l(t,36),n)},I(nr,"PartitionMidprocessor",1636),D(1637,1,ei,Cj),h.Mb=function(t){return rs(l(t,10),(Nt(),VE))},I(nr,"PartitionMidprocessor/lambda$0$Type",1637),D(1638,1,hr,RYe),h.Cd=function(t){qpn(this.a,l(t,10))},I(nr,"PartitionMidprocessor/lambda$1$Type",1638),D(1639,1,ns,zZ),h.Kf=function(t,n){ECn(l(t,36),n)},I(nr,"PartitionPostprocessor",1639),D(1640,1,ns,mI),h.Kf=function(t,n){RTn(l(t,36),n)},I(nr,"PartitionPreprocessor",1640),D(1641,1,ei,qZ),h.Mb=function(t){return rs(l(t,10),(Nt(),VE))},I(nr,"PartitionPreprocessor/lambda$0$Type",1641),D(1642,1,{},HZ),h.Kb=function(t){return new vn(null,new Cw(new lr(fr(qs(l(t,10)).a.Kc(),new j))))},I(nr,"PartitionPreprocessor/lambda$1$Type",1642),D(1643,1,ei,Sj),h.Mb=function(t){return A6n(l(t,18))},I(nr,"PartitionPreprocessor/lambda$2$Type",1643),D(1644,1,hr,n8),h.Cd=function(t){Eyn(l(t,18))},I(nr,"PartitionPreprocessor/lambda$3$Type",1644),D(1645,1,ns,pz),h.Kf=function(t,n){rAn(l(t,36),n)};var ELe,Ext,Cxt,Sxt,CLe,SLe;I(nr,"PortListSorter",1645),D(1648,1,ii,_j),h.Ne=function(t,n){return Tut(l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(nr,"PortListSorter/lambda$0$Type",1648),D(1650,1,ii,r8),h.Ne=function(t,n){return nvt(l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(nr,"PortListSorter/lambda$1$Type",1650),D(1646,1,{},UZ),h.Kb=function(t){return ST(),l(t,12).e},I(nr,"PortListSorter/lambda$2$Type",1646),D(1647,1,{},vI),h.Kb=function(t){return ST(),l(t,12).g},I(nr,"PortListSorter/lambda$3$Type",1647),D(1649,1,ii,VZ),h.Ne=function(t,n){return J7n(l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(nr,"PortListSorter/lambda$4$Type",1649),D(1651,1,ns,GZ),h.Kf=function(t,n){dEn(l(t,36),n)},I(nr,"PortSideProcessor",1651),D(1652,1,ns,KZ),h.Kf=function(t,n){g_n(l(t,36),n)},I(nr,"ReversedEdgeRestorer",1652),D(1657,1,ns,TJe),h.Kf=function(t,n){N7n(this,l(t,36),n)},I(nr,"SelfLoopPortRestorer",1657),D(1658,1,{},WZ),h.Kb=function(t){return new vn(null,new kn(l(t,30).a,16))},I(nr,"SelfLoopPortRestorer/lambda$0$Type",1658),D(1659,1,ei,Aj),h.Mb=function(t){return l(t,10).k==(Jn(),Bs)},I(nr,"SelfLoopPortRestorer/lambda$1$Type",1659),D(1660,1,ei,YZ),h.Mb=function(t){return rs(l(t,10),(ft(),v3))},I(nr,"SelfLoopPortRestorer/lambda$2$Type",1660),D(1661,1,{},XZ),h.Kb=function(t){return l(Q(l(t,10),(ft(),v3)),337)},I(nr,"SelfLoopPortRestorer/lambda$3$Type",1661),D(1662,1,hr,NYe),h.Cd=function(t){Y9n(this.a,l(t,337))},I(nr,"SelfLoopPortRestorer/lambda$4$Type",1662),D(805,1,hr,Lj),h.Cd=function(t){ckn(l(t,105))},I(nr,"SelfLoopPortRestorer/lambda$5$Type",805),D(1663,1,ns,QZ),h.Kf=function(t,n){$6n(l(t,36),n)},I(nr,"SelfLoopPostProcessor",1663),D(1664,1,{},JZ),h.Kb=function(t){return new vn(null,new kn(l(t,30).a,16))},I(nr,"SelfLoopPostProcessor/lambda$0$Type",1664),D(1665,1,ei,ZZ),h.Mb=function(t){return l(t,10).k==(Jn(),Bs)},I(nr,"SelfLoopPostProcessor/lambda$1$Type",1665),D(1666,1,ei,eee),h.Mb=function(t){return rs(l(t,10),(ft(),v3))},I(nr,"SelfLoopPostProcessor/lambda$2$Type",1666),D(1667,1,hr,Mj),h.Cd=function(t){Q8n(l(t,10))},I(nr,"SelfLoopPostProcessor/lambda$3$Type",1667),D(1668,1,{},tee),h.Kb=function(t){return new vn(null,new kn(l(t,105).f,1))},I(nr,"SelfLoopPostProcessor/lambda$4$Type",1668),D(1669,1,hr,OYe),h.Cd=function(t){Tmn(this.a,l(t,340))},I(nr,"SelfLoopPostProcessor/lambda$5$Type",1669),D(1670,1,ei,nee),h.Mb=function(t){return!!l(t,105).i},I(nr,"SelfLoopPostProcessor/lambda$6$Type",1670),D(1671,1,hr,PYe),h.Cd=function(t){Tun(this.a,l(t,105))},I(nr,"SelfLoopPostProcessor/lambda$7$Type",1671),D(1653,1,ns,Dj),h.Kf=function(t,n){qEn(l(t,36),n)},I(nr,"SelfLoopPreProcessor",1653),D(1654,1,{},Ij),h.Kb=function(t){return new vn(null,new kn(l(t,105).f,1))},I(nr,"SelfLoopPreProcessor/lambda$0$Type",1654),D(1655,1,{},Oj),h.Kb=function(t){return l(t,340).a},I(nr,"SelfLoopPreProcessor/lambda$1$Type",1655),D(1656,1,hr,ree),h.Cd=function(t){Shn(l(t,18))},I(nr,"SelfLoopPreProcessor/lambda$2$Type",1656),D(1672,1,ns,yit),h.Kf=function(t,n){M9n(this,l(t,36),n)},I(nr,"SelfLoopRouter",1672),D(1673,1,{},iee),h.Kb=function(t){return new vn(null,new kn(l(t,30).a,16))},I(nr,"SelfLoopRouter/lambda$0$Type",1673),D(1674,1,ei,Q9),h.Mb=function(t){return l(t,10).k==(Jn(),Bs)},I(nr,"SelfLoopRouter/lambda$1$Type",1674),D(1675,1,ei,i8),h.Mb=function(t){return rs(l(t,10),(ft(),v3))},I(nr,"SelfLoopRouter/lambda$2$Type",1675),D(1676,1,{},vS),h.Kb=function(t){return l(Q(l(t,10),(ft(),v3)),337)},I(nr,"SelfLoopRouter/lambda$3$Type",1676),D(1677,1,hr,itt),h.Cd=function(t){Bpn(this.a,this.b,l(t,337))},I(nr,"SelfLoopRouter/lambda$4$Type",1677),D(1678,1,ns,see),h.Kf=function(t,n){aSn(l(t,36),n)},I(nr,"SemiInteractiveCrossMinProcessor",1678),D(1679,1,ei,wI),h.Mb=function(t){return l(t,10).k==(Jn(),Bs)},I(nr,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1679),D(1680,1,ei,wS),h.Mb=function(t){return Fst(l(t,10))._b((Nt(),k4))},I(nr,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1680),D(1681,1,ii,yI),h.Ne=function(t,n){return T3n(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(nr,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1681),D(1682,1,{},Nj),h.Ve=function(t,n){return Hpn(l(t,10),l(n,10))},I(nr,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1682),D(1684,1,ns,Pj),h.Kf=function(t,n){MLn(l(t,36),n)},I(nr,"SortByInputModelProcessor",1684),D(1685,1,ei,aee),h.Mb=function(t){return l(t,12).g.c.length!=0},I(nr,"SortByInputModelProcessor/lambda$0$Type",1685),D(1686,1,hr,jYe),h.Cd=function(t){dkn(this.a,l(t,12))},I(nr,"SortByInputModelProcessor/lambda$1$Type",1686),D(1759,817,{},Kft),h.df=function(t){var n,r,s,o;switch(this.c=t,this.a.g){case 2:n=new mt,Os(ji(new vn(null,new kn(this.c.a.b,16)),new mee),new dtt(this,n)),oP(this,new cee),Uu(n,new Bj),n.c.length=0,Os(ji(new vn(null,new kn(this.c.a.b,16)),new Fj),new zYe(n)),oP(this,new uee),Uu(n,new lee),n.c.length=0,r=Wnt(Tce(Ey(new vn(null,new kn(this.c.a.b,16)),new qYe(this))),new hee),Os(new vn(null,new kn(this.c.a.a,16)),new ott(r,n)),oP(this,new dee),Uu(n,new Rj),n.c.length=0;break;case 3:s=new mt,oP(this,new oee),o=Wnt(Tce(Ey(new vn(null,new kn(this.c.a.b,16)),new $Ye(this))),new fee),Os(ji(new vn(null,new kn(this.c.a.b,16)),new gee),new utt(o,s)),oP(this,new pee),Uu(s,new bee),s.c.length=0;break;default:throw ue(new lJe)}},h.b=0,I(ua,"EdgeAwareScanlineConstraintCalculation",1759),D(1760,1,Ld,oee),h.Lb=function(t){return De(l(t,60).g,154)},h.Fb=function(t){return this===t},h.Mb=function(t){return De(l(t,60).g,154)},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1760),D(1761,1,{},$Ye),h.Ye=function(t){return Xkn(this.a,l(t,60))},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1761),D(1769,1,iG,stt),h.de=function(){RA(this.a,this.b,-1)},h.b=0,I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1769),D(1771,1,Ld,cee),h.Lb=function(t){return De(l(t,60).g,154)},h.Fb=function(t){return this===t},h.Mb=function(t){return De(l(t,60).g,154)},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1771),D(1772,1,hr,Bj),h.Cd=function(t){l(t,380).de()},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1772),D(1773,1,ei,Fj),h.Mb=function(t){return De(l(t,60).g,10)},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1773),D(1775,1,hr,zYe),h.Cd=function(t){b5n(this.a,l(t,60))},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1775),D(1774,1,iG,ltt),h.de=function(){RA(this.b,this.a,-1)},h.a=0,I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1774),D(1776,1,Ld,uee),h.Lb=function(t){return De(l(t,60).g,10)},h.Fb=function(t){return this===t},h.Mb=function(t){return De(l(t,60).g,10)},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1776),D(1777,1,hr,lee),h.Cd=function(t){l(t,380).de()},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1777),D(1778,1,{},qYe),h.Ye=function(t){return Qkn(this.a,l(t,60))},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1778),D(1779,1,{},hee),h.We=function(){return 0},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1779),D(1762,1,{},fee),h.We=function(){return 0},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1762),D(1781,1,hr,ott),h.Cd=function(t){xgn(this.a,this.b,l(t,316))},h.a=0,I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1781),D(1780,1,iG,ctt),h.de=function(){cbt(this.a,this.b,-1)},h.b=0,I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1780),D(1782,1,Ld,dee),h.Lb=function(t){return l(t,60),!0},h.Fb=function(t){return this===t},h.Mb=function(t){return l(t,60),!0},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1782),D(1783,1,hr,Rj),h.Cd=function(t){l(t,380).de()},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1783),D(1763,1,ei,gee),h.Mb=function(t){return De(l(t,60).g,10)},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1763),D(1765,1,hr,utt),h.Cd=function(t){kgn(this.a,this.b,l(t,60))},h.a=0,I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1765),D(1764,1,iG,htt),h.de=function(){RA(this.b,this.a,-1)},h.a=0,I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1764),D(1766,1,Ld,pee),h.Lb=function(t){return l(t,60),!0},h.Fb=function(t){return this===t},h.Mb=function(t){return l(t,60),!0},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1766),D(1767,1,hr,bee),h.Cd=function(t){l(t,380).de()},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1767),D(1768,1,ei,mee),h.Mb=function(t){return De(l(t,60).g,154)},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1768),D(1770,1,hr,dtt),h.Cd=function(t){$wn(this.a,this.b,l(t,60))},I(ua,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1770),D(1586,1,ns,Irt),h.Kf=function(t,n){iMn(this,l(t,36),n)};var _xt;I(ua,"HorizontalGraphCompactor",1586),D(1587,1,{},HYe),h.ff=function(t,n){var r,s,o;return a7e(t,n)||(r=W5(t),s=W5(n),r&&r.k==(Jn(),Ks)||s&&s.k==(Jn(),Ks))?0:(o=l(Q(this.a.a,(ft(),q6)),312),cfn(o,r?r.k:(Jn(),Aa),s?s.k:(Jn(),Aa)))},h.gf=function(t,n){var r,s,o;return a7e(t,n)?1:(r=W5(t),s=W5(n),o=l(Q(this.a.a,(ft(),q6)),312),Qye(o,r?r.k:(Jn(),Aa),s?s.k:(Jn(),Aa)))},I(ua,"HorizontalGraphCompactor/1",1587),D(1588,1,{},jj),h.ef=function(t,n){return b_(),t.a.i==0},I(ua,"HorizontalGraphCompactor/lambda$0$Type",1588),D(1589,1,{},UYe),h.ef=function(t,n){return Gpn(this.a,t,n)},I(ua,"HorizontalGraphCompactor/lambda$1$Type",1589),D(1730,1,{},kht);var Axt,Lxt;I(ua,"LGraphToCGraphTransformer",1730),D(1738,1,ei,yS),h.Mb=function(t){return t!=null},I(ua,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1738),D(1731,1,{},vee),h.Kb=function(t){return c0(),Tc(Q(l(l(t,60).g,10),(ft(),zi)))},I(ua,"LGraphToCGraphTransformer/lambda$0$Type",1731),D(1732,1,{},wee),h.Kb=function(t){return c0(),O1t(l(l(t,60).g,154))},I(ua,"LGraphToCGraphTransformer/lambda$1$Type",1732),D(1741,1,ei,$j),h.Mb=function(t){return c0(),De(l(t,60).g,10)},I(ua,"LGraphToCGraphTransformer/lambda$10$Type",1741),D(1742,1,hr,yee),h.Cd=function(t){Qpn(l(t,60))},I(ua,"LGraphToCGraphTransformer/lambda$11$Type",1742),D(1743,1,ei,xee),h.Mb=function(t){return c0(),De(l(t,60).g,154)},I(ua,"LGraphToCGraphTransformer/lambda$12$Type",1743),D(1747,1,hr,kee),h.Cd=function(t){A4n(l(t,60))},I(ua,"LGraphToCGraphTransformer/lambda$13$Type",1747),D(1744,1,hr,VYe),h.Cd=function(t){thn(this.a,l(t,8))},h.a=0,I(ua,"LGraphToCGraphTransformer/lambda$14$Type",1744),D(1745,1,hr,GYe),h.Cd=function(t){rhn(this.a,l(t,116))},h.a=0,I(ua,"LGraphToCGraphTransformer/lambda$15$Type",1745),D(1746,1,hr,KYe),h.Cd=function(t){nhn(this.a,l(t,8))},h.a=0,I(ua,"LGraphToCGraphTransformer/lambda$16$Type",1746),D(1748,1,{},Tee),h.Kb=function(t){return c0(),new vn(null,new Cw(new lr(fr(qs(l(t,10)).a.Kc(),new j))))},I(ua,"LGraphToCGraphTransformer/lambda$17$Type",1748),D(1749,1,ei,Eee),h.Mb=function(t){return c0(),Ao(l(t,18))},I(ua,"LGraphToCGraphTransformer/lambda$18$Type",1749),D(1750,1,hr,WYe),h.Cd=function(t){vwn(this.a,l(t,18))},I(ua,"LGraphToCGraphTransformer/lambda$19$Type",1750),D(1734,1,hr,YYe),h.Cd=function(t){Vbn(this.a,l(t,154))},I(ua,"LGraphToCGraphTransformer/lambda$2$Type",1734),D(1751,1,{},Cee),h.Kb=function(t){return c0(),new vn(null,new kn(l(t,30).a,16))},I(ua,"LGraphToCGraphTransformer/lambda$20$Type",1751),D(1752,1,{},zj),h.Kb=function(t){return c0(),new vn(null,new Cw(new lr(fr(qs(l(t,10)).a.Kc(),new j))))},I(ua,"LGraphToCGraphTransformer/lambda$21$Type",1752),D(1753,1,{},See),h.Kb=function(t){return c0(),l(Q(l(t,18),(ft(),yv)),15)},I(ua,"LGraphToCGraphTransformer/lambda$22$Type",1753),D(1754,1,ei,qj),h.Mb=function(t){return ufn(l(t,15))},I(ua,"LGraphToCGraphTransformer/lambda$23$Type",1754),D(1755,1,hr,XYe),h.Cd=function(t){jkn(this.a,l(t,15))},I(ua,"LGraphToCGraphTransformer/lambda$24$Type",1755),D(1733,1,hr,gtt),h.Cd=function(t){qmn(this.a,this.b,l(t,154))},I(ua,"LGraphToCGraphTransformer/lambda$3$Type",1733),D(1735,1,{},_ee),h.Kb=function(t){return c0(),new vn(null,new kn(l(t,30).a,16))},I(ua,"LGraphToCGraphTransformer/lambda$4$Type",1735),D(1736,1,{},Aee),h.Kb=function(t){return c0(),new vn(null,new Cw(new lr(fr(qs(l(t,10)).a.Kc(),new j))))},I(ua,"LGraphToCGraphTransformer/lambda$5$Type",1736),D(1737,1,{},Lee),h.Kb=function(t){return c0(),l(Q(l(t,18),(ft(),yv)),15)},I(ua,"LGraphToCGraphTransformer/lambda$6$Type",1737),D(1739,1,hr,QYe),h.Cd=function(t){Jkn(this.a,l(t,15))},I(ua,"LGraphToCGraphTransformer/lambda$8$Type",1739),D(1740,1,hr,ptt),h.Cd=function(t){_hn(this.a,this.b,l(t,154))},I(ua,"LGraphToCGraphTransformer/lambda$9$Type",1740),D(1729,1,{},xS),h.cf=function(t){var n,r,s,o,f;for(this.a=t,this.d=new Zie,this.c=We(sAe,jn,125,this.a.a.a.c.length,0,1),this.b=0,r=new K(this.a.a.a);r.a=te&&(wt(f,bt(L)),Me=b.Math.max(Me,$e[L-1]-F),w+=J,fe+=$e[L-1]-fe,F=$e[L-1],J=T[L]),J=b.Math.max(J,T[L]),++L;w+=J}V=b.Math.min(1/Me,1/n.b/w),V>s&&(s=V,r=f)}return r},h.pg=function(){return!1},I(Od,"MSDCutIndexHeuristic",816),D(1683,1,ns,Qee),h.Kf=function(t,n){oLn(l(t,36),n)},I(Od,"SingleEdgeGraphWrapper",1683),D(232,22,{3:1,34:1,22:1,232:1},E_);var P6,NE,PE,g4,HL,B6,BE=Br(cu,"CenterEdgeLabelPlacementStrategy",232,Hr,Gvn,W0n),zxt;D(431,22,{3:1,34:1,22:1,431:1},J3e);var ALe,$1e,LLe=Br(cu,"ConstraintCalculationStrategy",431,Hr,f2n,Y0n),qxt;D(322,22,{3:1,34:1,22:1,322:1,188:1,196:1},Ose),h.dg=function(){return b2t(this)},h.qg=function(){return b2t(this)};var CB,UL,MLe,DLe=Br(cu,"CrossingMinimizationStrategy",322,Hr,abn,X0n),Hxt;D(351,22,{3:1,34:1,22:1,351:1},Nse);var ILe,z1e,nW,OLe=Br(cu,"CuttingStrategy",351,Hr,obn,Q0n),Uxt;D(348,22,{3:1,34:1,22:1,348:1,188:1,196:1},mO),h.dg=function(){return abt(this)},h.qg=function(){return abt(this)};var NLe,q1e,FE,H1e,RE,PLe=Br(cu,"CycleBreakingStrategy",348,Hr,lvn,J0n),Vxt;D(428,22,{3:1,34:1,22:1,428:1},Z3e);var rW,BLe,FLe=Br(cu,"DirectionCongruency",428,Hr,h2n,Z0n),Gxt;D(460,22,{3:1,34:1,22:1,460:1},Pse);var jE,U1e,F6,Kxt=Br(cu,"EdgeConstraint",460,Hr,cbn,a1n),Wxt;D(283,22,{3:1,34:1,22:1,283:1},C_);var V1e,G1e,K1e,W1e,iW,Y1e,RLe=Br(cu,"EdgeLabelSideSelection",283,Hr,Hvn,o1n),Yxt;D(488,22,{3:1,34:1,22:1,488:1},eye);var sW,jLe,$Le=Br(cu,"EdgeStraighteningStrategy",488,Hr,w2n,c1n),Xxt;D(281,22,{3:1,34:1,22:1,281:1},S_);var X1e,zLe,qLe,aW,HLe,ULe,VLe=Br(cu,"FixedAlignment",281,Hr,Uvn,s1n),Qxt;D(282,22,{3:1,34:1,22:1,282:1},__);var GLe,KLe,WLe,YLe,VL,XLe,QLe=Br(cu,"GraphCompactionStrategy",282,Hr,Vvn,e1n),Jxt;D(259,22,{3:1,34:1,22:1,259:1},fy);var $E,oW,zE,mf,GL,cW,qE,R6,uW,KL,Q1e=Br(cu,"GraphProperties",259,Hr,L3n,t1n),Zxt;D(299,22,{3:1,34:1,22:1,299:1},Bse);var SB,J1e,Z1e,ede=Br(cu,"GreedySwitchType",299,Hr,ubn,n1n),e9t;D(311,22,{3:1,34:1,22:1,311:1},Fse);var Gx,_B,j6,t9t=Br(cu,"InLayerConstraint",311,Hr,lbn,r1n),n9t;D(429,22,{3:1,34:1,22:1,429:1},tye);var tde,JLe,ZLe=Br(cu,"InteractiveReferencePoint",429,Hr,l2n,i1n),r9t,eMe,Kx,p3,lW,tMe,nMe,hW,rMe,AB,fW,WL,Wx,wp,nde,dW,Xc,iMe,Wb,_u,rde,ide,LB,wv,b3,Yx,sMe,Xx,MB,p4,a1,$f,sde,$6,Yi,zi,aMe,oMe,cMe,uMe,lMe,ade,gW,Bl,m3,ode,Qx,YL,W1,z6,v3,q6,H6,HE,yv,hMe,cde,ude,Jx;D(171,22,{3:1,34:1,22:1,171:1},vO);var XL,Yb,QL,b4,DB,fMe=Br(cu,"LayerConstraint",171,Hr,fvn,u1n),i9t;D(859,1,Pf,uie),h.hf=function(t){an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,cEe),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),kMe),(T2(),ps)),FLe),hn((n1(),Bn))))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,uEe),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(Hn(),!1)),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,wG),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),AMe),ps),ZLe),hn(Bn)))),Zs(t,wG,tfe,J9t),Zs(t,wG,bL,Q9t),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,lEe),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,hEe),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),Ta),Ps),hn(Bn)))),an(t,new Qt(tln(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,fEe),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),Ta),Ps),hn(Av)),he(le($t,1),dt,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,dEe),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),BMe),ps),VDe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,gEe),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),bt(7)),Sc),to),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,pEe),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,bEe),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,tfe),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),xMe),ps),PLe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,XP),Cfe),"Node Layering Strategy"),"Strategy for node layering."),DMe),ps),ODe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,mEe),Cfe),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),LMe),ps),fMe),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,vEe),Cfe),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),Sc),to),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,wEe),Cfe),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),bt(-1)),Sc),to),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,nfe),Ayt),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),bt(4)),Sc),to),hn(Bn)))),Zs(t,nfe,XP,skt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,rfe),Ayt),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),bt(2)),Sc),to),hn(Bn)))),Zs(t,rfe,XP,okt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,ife),Lyt),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),MMe),ps),qDe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,sfe),Lyt),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),bt(0)),Sc),to),hn(Bn)))),Zs(t,sfe,ife,null),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,afe),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),bt(Ni)),Sc),to),hn(Bn)))),Zs(t,afe,XP,ekt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,bL),bE),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),yMe),ps),DLe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,yEe),bE),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,ofe),bE),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),co),ra),hn(Bn)))),Zs(t,ofe,IG,E9t),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,cfe),bE),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),Ta),Ps),hn(Bn)))),Zs(t,cfe,bL,M9t),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,xEe),bE),"In Layer Predecessor of"),"Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"),null),e7),$t),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,kEe),bE),"In Layer Successor of"),"Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"),null),e7),$t),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,TEe),bE),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),Sc),to),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,EEe),bE),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),bt(-1)),Sc),to),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,CEe),Myt),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),bt(40)),Sc),to),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,ufe),Myt),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),wMe),ps),ede),hn(Bn)))),Zs(t,ufe,bL,k9t),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,yG),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),vMe),ps),ede),hn(Bn)))),Zs(t,yG,bL,w9t),Zs(t,yG,IG,y9t),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,E6),Dyt),"Node Placement Strategy"),"Strategy for node placement."),PMe),ps),FDe),hn(Bn)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,xG),Dyt),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),Ta),Ps),hn(Bn)))),Zs(t,xG,E6,vkt),Zs(t,xG,E6,wkt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,lfe),Iyt),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),IMe),ps),$Le),hn(Bn)))),Zs(t,lfe,E6,gkt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,hfe),Iyt),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),OMe),ps),VLe),hn(Bn)))),Zs(t,hfe,E6,bkt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,ffe),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),co),ra),hn(Bn)))),Zs(t,ffe,E6,xkt),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,dfe),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),ps),Dde),hn(pa)))),Zs(t,dfe,E6,Ckt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,gfe),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),NMe),ps),Dde),hn(Bn)))),Zs(t,gfe,E6,Ekt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,SEe),Oyt),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),CMe),ps),WDe),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,_Ee),Oyt),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),SMe),ps),YDe),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,kG),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),_Me),ps),QDe),hn(Bn)))),Zs(t,kG,QP,z9t),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,TG),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),co),ra),hn(Bn)))),Zs(t,TG,QP,H9t),Zs(t,TG,kG,U9t),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,pfe),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),co),ra),hn(Bn)))),Zs(t,pfe,QP,F9t),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,AEe),V1),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,LEe),V1),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,MEe),V1),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,DEe),V1),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,IEe),qEe),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),bt(0)),Sc),to),hn(zd)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,OEe),qEe),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),bt(0)),Sc),to),hn(zd)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,NEe),qEe),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),bt(0)),Sc),to),hn(zd)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,bfe),HEe),Y3t),"Tries to further compact components (disconnected sub-graphs)."),!1),Ta),Ps),hn(Bn)))),Zs(t,bfe,hL,!0),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,PEe),Nyt),"Post Compaction Strategy"),Pyt),gMe),ps),QLe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,BEe),Nyt),"Post Compaction Constraint Calculation"),Pyt),dMe),ps),LLe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,EG),UEe),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,mfe),UEe),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),bt(16)),Sc),to),hn(Bn)))),Zs(t,mfe,EG,!0),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,vfe),UEe),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),bt(5)),Sc),to),hn(Bn)))),Zs(t,vfe,EG,!0),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,bp),VEe),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),jMe),ps),tIe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,CG),VEe),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),co),ra),hn(Bn)))),Zs(t,CG,bp,Rkt),Zs(t,CG,bp,jkt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,SG),VEe),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),co),ra),hn(Bn)))),Zs(t,SG,bp,zkt),Zs(t,SG,bp,qkt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,mL),Byt),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),RMe),ps),OLe),hn(Bn)))),Zs(t,mL,bp,Wkt),Zs(t,mL,bp,Ykt),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,wfe),Byt),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),X1),bf),hn(Bn)))),Zs(t,wfe,mL,Ukt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,yfe),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),FMe),Sc),to),hn(Bn)))),Zs(t,yfe,mL,Gkt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,_G),Fyt),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),$Me),ps),eIe),hn(Bn)))),Zs(t,_G,bp,oTt),Zs(t,_G,bp,cTt),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,AG),Fyt),"Valid Indices for Wrapping"),null),X1),bf),hn(Bn)))),Zs(t,AG,bp,iTt),Zs(t,AG,bp,sTt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,LG),GEe),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),Ta),Ps),hn(Bn)))),Zs(t,LG,bp,Zkt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,MG),GEe),"Distance Penalty When Improving Cuts"),null),2),co),ra),hn(Bn)))),Zs(t,MG,bp,Qkt),Zs(t,MG,LG,!0),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,xfe),GEe),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),Ta),Ps),hn(Bn)))),Zs(t,xfe,bp,tTt),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,FEe),Sfe),"Edge Label Side Selection"),"Method to decide on edge label sides."),EMe),ps),RLe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,REe),Sfe),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),TMe),ps),BE),is(Bn,he(le(Eg,1),it,170,0,[P2]))))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,DG),vL),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),mMe),ps),UDe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,jEe),vL),"Consider Port Order"),"If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,$Ee),vL),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),Ta),Ps),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,kfe),vL),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),pMe),ps),PAe),hn(Bn)))),Zs(t,kfe,hL,null),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,zEe),vL),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),bMe),ps),PDe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,Tfe),vL),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),co),ra),hn(Bn)))),Zs(t,Tfe,DG,null),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,Efe),vL),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),co),ra),hn(Bn)))),Zs(t,Efe,DG,null),e3t((new lie,t))};var s9t,a9t,o9t,dMe,c9t,gMe,u9t,pMe,l9t,h9t,f9t,bMe,d9t,g9t,p9t,mMe,b9t,m9t,v9t,vMe,w9t,y9t,x9t,wMe,k9t,T9t,E9t,C9t,S9t,_9t,A9t,L9t,M9t,D9t,yMe,I9t,xMe,O9t,kMe,N9t,TMe,P9t,EMe,B9t,F9t,R9t,CMe,j9t,SMe,$9t,_Me,z9t,q9t,H9t,U9t,V9t,G9t,K9t,W9t,Y9t,X9t,AMe,Q9t,J9t,Z9t,ekt,tkt,nkt,LMe,rkt,ikt,skt,akt,okt,ckt,ukt,MMe,lkt,DMe,hkt,fkt,dkt,IMe,gkt,pkt,OMe,bkt,mkt,vkt,wkt,ykt,xkt,kkt,Tkt,NMe,Ekt,Ckt,Skt,PMe,_kt,BMe,Akt,Lkt,Mkt,Dkt,Ikt,Okt,Nkt,Pkt,Bkt,Fkt,Rkt,jkt,$kt,zkt,qkt,Hkt,Ukt,Vkt,FMe,Gkt,Kkt,RMe,Wkt,Ykt,Xkt,Qkt,Jkt,Zkt,eTt,tTt,nTt,jMe,rTt,iTt,sTt,aTt,$Me,oTt,cTt;I(cu,"LayeredMetaDataProvider",859),D(998,1,Pf,lie),h.hf=function(t){e3t(t)};var Rd,lde,pW,JL,bW,zMe,mW,m4,vW,qMe,HMe,wW,hde,Tg,fde,w3,UMe,IB,dde,VMe,uTt,lTt,hTt,yW,gde,ZL,xv,fTt,Rh,GMe,KMe,xW,pde,jd,kW,yp,WMe,YMe,XMe,bde,mde,QMe,M2,vde,JMe,v4,ZMe,eDe,tDe,TW,w4,kv,nDe,rDe,lc,iDe,dTt,Qu,EW,sDe,aDe,oDe,Xb,Tv,CW,cDe,uDe,SW,y3,lDe,wde,eM,hDe,x3,tM,_W,Ev,yde,UE,AW,Cv,fDe,dDe,gDe,VE,pDe,gTt,pTt,bTt,mTt,k3,y4,Ds,D2,vTt,x4,bDe,GE,mDe,k4,wTt,KE,vDe,Zx,yTt,xTt,OB,xde,wDe,NB,y0,U6,V6,T3,Sv,LW,T4,kde,WE,YE,E3,G6,Tde,PB,nM,rM,kTt,TTt,ETt,yDe,CTt,Ede,xDe,kDe,TDe,EDe,Cde,CDe,SDe,_De,ADe,Sde,MW;I(cu,"LayeredOptions",998),D(999,1,{},Jee),h.sf=function(){var t;return t=new vJe,t},h.tf=function(t){},I(cu,"LayeredOptions/LayeredFactory",999),D(1391,1,{}),h.a=0;var STt;I(Kc,"ElkSpacings/AbstractSpacingsBuilder",1391),D(792,1391,{},Y8e);var DW,_Tt;I(cu,"LayeredSpacings/LayeredSpacingsBuilder",792),D(265,22,{3:1,34:1,22:1,265:1,188:1,196:1},I5),h.dg=function(){return pmt(this)},h.qg=function(){return pmt(this)};var XE,_de,QE,LDe,MDe,DDe,IW,Ade,IDe,ODe=Br(cu,"LayeringStrategy",265,Hr,s3n,l1n),ATt;D(390,22,{3:1,34:1,22:1,390:1},Rse);var Lde,NDe,OW,PDe=Br(cu,"LongEdgeOrderingStrategy",390,Hr,hbn,h1n),LTt;D(203,22,{3:1,34:1,22:1,203:1},Tq);var K6,W6,NW,Mde,Dde=Br(cu,"NodeFlexibility",203,Hr,ymn,f1n),MTt;D(323,22,{3:1,34:1,22:1,323:1,188:1,196:1},wO),h.dg=function(){return sbt(this)},h.qg=function(){return sbt(this)};var iM,Ide,Ode,sM,BDe,FDe=Br(cu,"NodePlacementStrategy",323,Hr,hvn,d1n),DTt;D(243,22,{3:1,34:1,22:1,243:1},dy);var RDe,C3,E4,BB,jDe,$De,FB,zDe,PW,BW,qDe=Br(cu,"NodePromotionStrategy",243,Hr,M3n,g1n),ITt;D(284,22,{3:1,34:1,22:1,284:1},Eq);var HDe,I2,Nde,Pde,UDe=Br(cu,"OrderingStrategy",284,Hr,xmn,p1n),OTt;D(430,22,{3:1,34:1,22:1,430:1},nye);var Bde,Fde,VDe=Br(cu,"PortSortingStrategy",430,Hr,d2n,b1n),NTt;D(463,22,{3:1,34:1,22:1,463:1},jse);var Fl,$u,aM,PTt=Br(cu,"PortType",463,Hr,fbn,m1n),BTt;D(387,22,{3:1,34:1,22:1,387:1},$se);var GDe,Rde,KDe,WDe=Br(cu,"SelfLoopDistributionStrategy",387,Hr,dbn,v1n),FTt;D(349,22,{3:1,34:1,22:1,349:1},zse);var jde,RB,$de,YDe=Br(cu,"SelfLoopOrderingStrategy",349,Hr,gbn,w1n),RTt;D(312,1,{312:1},Qvt),I(cu,"Spacings",312),D(350,22,{3:1,34:1,22:1,350:1},qse);var zde,XDe,oM,QDe=Br(cu,"SplineRoutingMode",350,Hr,pbn,y1n),jTt;D(352,22,{3:1,34:1,22:1,352:1},Hse);var qde,JDe,ZDe,eIe=Br(cu,"ValidifyStrategy",352,Hr,bbn,x1n),$Tt;D(388,22,{3:1,34:1,22:1,388:1},Use);var C4,Hde,JE,tIe=Br(cu,"WrappingStrategy",388,Hr,mbn,k1n),zTt;D(1398,1,Vo,sie),h.rg=function(t){return l(t,36),qTt},h.Kf=function(t,n){tMn(this,l(t,36),n)};var qTt;I(BG,"DepthFirstCycleBreaker",1398),D(793,1,Vo,p5e),h.rg=function(t){return l(t,36),HTt},h.Kf=function(t,n){iOn(this,l(t,36),n)},h.sg=function(t){return l(Rt(t,dV(this.d,t.c.length)),10)};var HTt;I(BG,"GreedyCycleBreaker",793),D(1401,793,Vo,bnt),h.sg=function(t){var n,r,s,o;for(o=null,n=Ni,s=new K(t);s.a1&&(Ft(Pt(Q(Ja((Sn(0,t.c.length),l(t.c[0],10))),(Nt(),w3))))?vbt(t,this.d,l(this,669)):(Cn(),Gs(t,this.d)),w0t(this.e,t))},h.lg=function(t,n,r,s){var o,f,g,w,T,C,L;for(n!=Bst(r,t.length)&&(f=t[n-(r?1:-1)],U6e(this.f,f,r?(qo(),$u):(qo(),Fl))),o=t[n][0],L=!s||o.k==(Jn(),Ks),C=O1(t[n]),this.vg(C,L,!1,r),g=0,T=new K(C);T.a"),t0?Eoe(this.a,t[n-1],t[n]):!r&&n1&&(Ft(Pt(Q(Ja((Sn(0,t.c.length),l(t.c[0],10))),(Nt(),w3))))?vbt(t,this.d,this):(Cn(),Gs(t,this.d)),Ft(Pt(Q(Ja((Sn(0,t.c.length),l(t.c[0],10))),w3)))||w0t(this.e,t))},I(El,"ModelOrderBarycenterHeuristic",669),D(1866,1,ii,mXe),h.Ne=function(t,n){return ekn(this.a,l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(El,"ModelOrderBarycenterHeuristic/lambda$0$Type",1866),D(1423,1,Vo,fie),h.rg=function(t){var n;return l(t,36),n=$q(sEt),hi(n,(so(),pu),(po(),VK)),n},h.Kf=function(t,n){Fpn((l(t,36),n))};var sEt;I(El,"NoCrossingMinimizer",1423),D(809,413,_Ce,C3e),h.tg=function(t,n,r){var s,o,f,g,w,T,C,L,F,z,V;switch(F=this.g,r.g){case 1:{for(o=0,f=0,L=new K(t.j);L.a1&&(o.j==(_t(),sr)?this.b[t]=!0:o.j==Zn&&t>0&&(this.b[t-1]=!0))},h.f=0,I(wg,"AllCrossingsCounter",1861),D(595,1,{},DU),h.b=0,h.d=0,I(wg,"BinaryIndexedTree",595),D(532,1,{},$O);var iIe,RW;I(wg,"CrossingsCounter",532),D(1950,1,ii,vXe),h.Ne=function(t,n){return ugn(this.a,l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(wg,"CrossingsCounter/lambda$0$Type",1950),D(1951,1,ii,wXe),h.Ne=function(t,n){return lgn(this.a,l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(wg,"CrossingsCounter/lambda$1$Type",1951),D(1952,1,ii,yXe),h.Ne=function(t,n){return hgn(this.a,l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(wg,"CrossingsCounter/lambda$2$Type",1952),D(1953,1,ii,xXe),h.Ne=function(t,n){return fgn(this.a,l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(wg,"CrossingsCounter/lambda$3$Type",1953),D(1954,1,hr,kXe),h.Cd=function(t){fwn(this.a,l(t,12))},I(wg,"CrossingsCounter/lambda$4$Type",1954),D(1955,1,ei,TXe),h.Mb=function(t){return Fln(this.a,l(t,12))},I(wg,"CrossingsCounter/lambda$5$Type",1955),D(1956,1,hr,EXe),h.Cd=function(t){ont(this,t)},I(wg,"CrossingsCounter/lambda$6$Type",1956),D(1957,1,hr,vtt),h.Cd=function(t){var n;zk(),Tb(this.b,(n=this.a,l(t,12),n))},I(wg,"CrossingsCounter/lambda$7$Type",1957),D(839,1,Ld,r$),h.Lb=function(t){return zk(),rs(l(t,12),(ft(),Bl))},h.Fb=function(t){return this===t},h.Mb=function(t){return zk(),rs(l(t,12),(ft(),Bl))},I(wg,"CrossingsCounter/lambda$8$Type",839),D(1949,1,{},CXe),I(wg,"HyperedgeCrossingsCounter",1949),D(478,1,{34:1,478:1},xit),h.Fd=function(t){return h6n(this,l(t,478))},h.b=0,h.c=0,h.e=0,h.f=0;var VOn=I(wg,"HyperedgeCrossingsCounter/Hyperedge",478);D(374,1,{34:1,374:1},IH),h.Fd=function(t){return CEn(this,l(t,374))},h.b=0,h.c=0;var aEt=I(wg,"HyperedgeCrossingsCounter/HyperedgeCorner",374);D(531,22,{3:1,34:1,22:1,531:1},rye);var uM,lM,oEt=Br(wg,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",531,Hr,g2n,E1n),cEt;D(1425,1,Vo,die),h.rg=function(t){return l(Q(l(t,36),(ft(),_u)),21).Hc((Ho(),mf))?uEt:null},h.Kf=function(t,n){B8n(this,l(t,36),n)};var uEt;I(Go,"InteractiveNodePlacer",1425),D(1426,1,Vo,gie),h.rg=function(t){return l(Q(l(t,36),(ft(),_u)),21).Hc((Ho(),mf))?lEt:null},h.Kf=function(t,n){y7n(this,l(t,36),n)};var lEt,jW,$W;I(Go,"LinearSegmentsNodePlacer",1426),D(261,1,{34:1,261:1},Zwe),h.Fd=function(t){return Yun(this,l(t,261))},h.Fb=function(t){var n;return De(t,261)?(n=l(t,261),this.b==n.b):!1},h.Hb=function(){return this.b},h.Ib=function(){return"ls"+Ob(this.e)},h.a=0,h.b=0,h.c=-1,h.d=-1,h.g=0;var hEt=I(Go,"LinearSegmentsNodePlacer/LinearSegment",261);D(1428,1,Vo,Gst),h.rg=function(t){return l(Q(l(t,36),(ft(),_u)),21).Hc((Ho(),mf))?fEt:null},h.Kf=function(t,n){YIn(this,l(t,36),n)},h.b=0,h.g=0;var fEt;I(Go,"NetworkSimplexPlacer",1428),D(1447,1,ii,ate),h.Ne=function(t,n){return iu(l(t,17).a,l(n,17).a)},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Go,"NetworkSimplexPlacer/0methodref$compare$Type",1447),D(1449,1,ii,ote),h.Ne=function(t,n){return iu(l(t,17).a,l(n,17).a)},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Go,"NetworkSimplexPlacer/1methodref$compare$Type",1449),D(655,1,{655:1},wtt);var GOn=I(Go,"NetworkSimplexPlacer/EdgeRep",655);D(412,1,{412:1},Y5e),h.b=!1;var KOn=I(Go,"NetworkSimplexPlacer/NodeRep",412);D(515,13,{3:1,4:1,20:1,31:1,56:1,13:1,16:1,15:1,59:1,515:1},_Je),I(Go,"NetworkSimplexPlacer/Path",515),D(1429,1,{},cte),h.Kb=function(t){return l(t,18).d.i.k},I(Go,"NetworkSimplexPlacer/Path/lambda$0$Type",1429),D(1430,1,ei,ute),h.Mb=function(t){return l(t,273)==(Jn(),Aa)},I(Go,"NetworkSimplexPlacer/Path/lambda$1$Type",1430),D(1431,1,{},lte),h.Kb=function(t){return l(t,18).d.i},I(Go,"NetworkSimplexPlacer/Path/lambda$2$Type",1431),D(1432,1,ei,SXe),h.Mb=function(t){return sit(cdt(l(t,10)))},I(Go,"NetworkSimplexPlacer/Path/lambda$3$Type",1432),D(1433,1,ei,hte),h.Mb=function(t){return Kdn(l(t,12))},I(Go,"NetworkSimplexPlacer/lambda$0$Type",1433),D(1434,1,hr,ytt),h.Cd=function(t){Ahn(this.a,this.b,l(t,12))},I(Go,"NetworkSimplexPlacer/lambda$1$Type",1434),D(1443,1,hr,_Xe),h.Cd=function(t){eTn(this.a,l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$10$Type",1443),D(1444,1,{},fte),h.Kb=function(t){return Sh(),new vn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$11$Type",1444),D(1445,1,hr,AXe),h.Cd=function(t){WSn(this.a,l(t,10))},I(Go,"NetworkSimplexPlacer/lambda$12$Type",1445),D(1446,1,{},dte),h.Kb=function(t){return Sh(),bt(l(t,125).e)},I(Go,"NetworkSimplexPlacer/lambda$13$Type",1446),D(1448,1,{},gte),h.Kb=function(t){return Sh(),bt(l(t,125).e)},I(Go,"NetworkSimplexPlacer/lambda$15$Type",1448),D(1450,1,ei,pte),h.Mb=function(t){return Sh(),l(t,412).c.k==(Jn(),Bs)},I(Go,"NetworkSimplexPlacer/lambda$17$Type",1450),D(1451,1,ei,bte),h.Mb=function(t){return Sh(),l(t,412).c.j.c.length>1},I(Go,"NetworkSimplexPlacer/lambda$18$Type",1451),D(1452,1,hr,eot),h.Cd=function(t){O5n(this.c,this.b,this.d,this.a,l(t,412))},h.c=0,h.d=0,I(Go,"NetworkSimplexPlacer/lambda$19$Type",1452),D(1435,1,{},mte),h.Kb=function(t){return Sh(),new vn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$2$Type",1435),D(1453,1,hr,LXe),h.Cd=function(t){Mhn(this.a,l(t,12))},h.a=0,I(Go,"NetworkSimplexPlacer/lambda$20$Type",1453),D(1454,1,{},vte),h.Kb=function(t){return Sh(),new vn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$21$Type",1454),D(1455,1,hr,MXe),h.Cd=function(t){qhn(this.a,l(t,10))},I(Go,"NetworkSimplexPlacer/lambda$22$Type",1455),D(1456,1,ei,wte),h.Mb=function(t){return sit(t)},I(Go,"NetworkSimplexPlacer/lambda$23$Type",1456),D(1457,1,{},yte),h.Kb=function(t){return Sh(),new vn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$24$Type",1457),D(1458,1,ei,DXe),h.Mb=function(t){return Qln(this.a,l(t,10))},I(Go,"NetworkSimplexPlacer/lambda$25$Type",1458),D(1459,1,hr,xtt),h.Cd=function(t){ikn(this.a,this.b,l(t,10))},I(Go,"NetworkSimplexPlacer/lambda$26$Type",1459),D(1460,1,ei,a8),h.Mb=function(t){return Sh(),!Ao(l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$27$Type",1460),D(1461,1,ei,i$),h.Mb=function(t){return Sh(),!Ao(l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$28$Type",1461),D(1462,1,{},IXe),h.Ve=function(t,n){return Lhn(this.a,l(t,30),l(n,30))},I(Go,"NetworkSimplexPlacer/lambda$29$Type",1462),D(1436,1,{},xte),h.Kb=function(t){return Sh(),new vn(null,new Cw(new lr(fr(qs(l(t,10)).a.Kc(),new j))))},I(Go,"NetworkSimplexPlacer/lambda$3$Type",1436),D(1437,1,ei,kte),h.Mb=function(t){return Sh(),smn(l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$4$Type",1437),D(1438,1,hr,OXe),h.Cd=function(t){rLn(this.a,l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$5$Type",1438),D(1439,1,{},Tte),h.Kb=function(t){return Sh(),new vn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$6$Type",1439),D(1440,1,ei,s$),h.Mb=function(t){return Sh(),l(t,10).k==(Jn(),Bs)},I(Go,"NetworkSimplexPlacer/lambda$7$Type",1440),D(1441,1,{},Ete),h.Kb=function(t){return Sh(),new vn(null,new Cw(new lr(fr(up(l(t,10)).a.Kc(),new j))))},I(Go,"NetworkSimplexPlacer/lambda$8$Type",1441),D(1442,1,ei,CS),h.Mb=function(t){return Sh(),Gdn(l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$9$Type",1442),D(1424,1,Vo,pie),h.rg=function(t){return l(Q(l(t,36),(ft(),_u)),21).Hc((Ho(),mf))?dEt:null},h.Kf=function(t,n){FLn(l(t,36),n)};var dEt;I(Go,"SimpleNodePlacer",1424),D(185,1,{185:1},g6),h.Ib=function(){var t;return t="",this.c==(xd(),S3)?t+=Ix:this.c==O2&&(t+=Dx),this.o==(D1(),_v)?t+=Ohe:this.o==Y1?t+="UP":t+="BALANCED",t},I(zb,"BKAlignedLayout",185),D(523,22,{3:1,34:1,22:1,523:1},iye);var O2,S3,gEt=Br(zb,"BKAlignedLayout/HDirection",523,Hr,b2n,C1n),pEt;D(522,22,{3:1,34:1,22:1,522:1},sye);var _v,Y1,bEt=Br(zb,"BKAlignedLayout/VDirection",522,Hr,m2n,S1n),mEt;D(1699,1,{},ktt),I(zb,"BKAligner",1699),D(1702,1,{},Ogt),I(zb,"BKCompactor",1702),D(663,1,{663:1},Cte),h.a=0,I(zb,"BKCompactor/ClassEdge",663),D(467,1,{467:1},EJe),h.a=null,h.b=0,I(zb,"BKCompactor/ClassNode",467),D(1427,1,Vo,Stt),h.rg=function(t){return l(Q(l(t,36),(ft(),_u)),21).Hc((Ho(),mf))?vEt:null},h.Kf=function(t,n){dOn(this,l(t,36),n)},h.d=!1;var vEt;I(zb,"BKNodePlacer",1427),D(1700,1,{},Ste),h.d=0,I(zb,"NeighborhoodInformation",1700),D(1701,1,ii,NXe),h.Ne=function(t,n){return zwn(this,l(t,42),l(n,42))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(zb,"NeighborhoodInformation/NeighborComparator",1701),D(823,1,{}),I(zb,"ThresholdStrategy",823),D(1825,823,{},CJe),h.wg=function(t,n,r){return this.a.o==(D1(),Y1)?gs:oa},h.xg=function(){},I(zb,"ThresholdStrategy/NullThresholdStrategy",1825),D(587,1,{587:1},_tt),h.c=!1,h.d=!1,I(zb,"ThresholdStrategy/Postprocessable",587),D(1826,823,{},SJe),h.wg=function(t,n,r){var s,o,f;return o=n==r,s=this.a.a[r.p]==n,o||s?(f=t,this.a.c==(xd(),S3)?(o&&(f=Ile(this,n,!0)),!isNaN(f)&&!isFinite(f)&&s&&(f=Ile(this,r,!1))):(o&&(f=Ile(this,n,!0)),!isNaN(f)&&!isFinite(f)&&s&&(f=Ile(this,r,!1))),f):t},h.xg=function(){for(var t,n,r,s,o;this.d.b!=0;)o=l(I2n(this.d),587),s=svt(this,o),s.a&&(t=s.a,r=Ft(this.a.f[this.a.g[o.b.p].p]),!(!r&&!Ao(t)&&t.c.i.c==t.d.i.c)&&(n=lbt(this,o),n||ehn(this.e,o)));for(;this.e.a.c.length!=0;)lbt(this,l(h1t(this.e),587))},I(zb,"ThresholdStrategy/SimpleThresholdStrategy",1826),D(645,1,{645:1,188:1,196:1},_te),h.dg=function(){return y0t(this)},h.qg=function(){return y0t(this)};var Ude;I(Dfe,"EdgeRouterFactory",645),D(1485,1,Vo,bie),h.rg=function(t){return ESn(l(t,36))},h.Kf=function(t,n){ULn(l(t,36),n)};var wEt,yEt,xEt,kEt,TEt,sIe,EEt,CEt;I(Dfe,"OrthogonalEdgeRouter",1485),D(1478,1,Vo,Ctt),h.rg=function(t){return G8n(l(t,36))},h.Kf=function(t,n){dIn(this,l(t,36),n)};var SEt,_Et,AEt,LEt,$B,MEt;I(Dfe,"PolylineEdgeRouter",1478),D(1479,1,Ld,Lte),h.Lb=function(t){return G7e(l(t,10))},h.Fb=function(t){return this===t},h.Mb=function(t){return G7e(l(t,10))},I(Dfe,"PolylineEdgeRouter/1",1479),D(1872,1,ei,Mte),h.Mb=function(t){return l(t,132).c==(Q0(),Qb)},I(r1,"HyperEdgeCycleDetector/lambda$0$Type",1872),D(1873,1,{},Dte),h.Ze=function(t){return l(t,132).d},I(r1,"HyperEdgeCycleDetector/lambda$1$Type",1873),D(1874,1,ei,Ite),h.Mb=function(t){return l(t,132).c==(Q0(),Qb)},I(r1,"HyperEdgeCycleDetector/lambda$2$Type",1874),D(1875,1,{},Ote),h.Ze=function(t){return l(t,132).d},I(r1,"HyperEdgeCycleDetector/lambda$3$Type",1875),D(1876,1,{},Nte),h.Ze=function(t){return l(t,132).d},I(r1,"HyperEdgeCycleDetector/lambda$4$Type",1876),D(1877,1,{},Ate),h.Ze=function(t){return l(t,132).d},I(r1,"HyperEdgeCycleDetector/lambda$5$Type",1877),D(118,1,{34:1,118:1},LN),h.Fd=function(t){return Xun(this,l(t,118))},h.Fb=function(t){var n;return De(t,118)?(n=l(t,118),this.g==n.g):!1},h.Hb=function(){return this.g},h.Ib=function(){var t,n,r,s;for(t=new Eh("{"),s=new K(this.n);s.a"+this.b+" ("+pfn(this.c)+")"},h.d=0,I(r1,"HyperEdgeSegmentDependency",132),D(528,22,{3:1,34:1,22:1,528:1},aye);var Qb,S4,DEt=Br(r1,"HyperEdgeSegmentDependency/DependencyType",528,Hr,v2n,_1n),IEt;D(1878,1,{},PXe),I(r1,"HyperEdgeSegmentSplitter",1878),D(1879,1,{},_Ze),h.a=0,h.b=0,I(r1,"HyperEdgeSegmentSplitter/AreaRating",1879),D(339,1,{339:1},Iae),h.a=0,h.b=0,h.c=0,I(r1,"HyperEdgeSegmentSplitter/FreeArea",339),D(1880,1,ii,o8),h.Ne=function(t,n){return p0n(l(t,118),l(n,118))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(r1,"HyperEdgeSegmentSplitter/lambda$0$Type",1880),D(1881,1,hr,tot),h.Cd=function(t){Hmn(this.a,this.d,this.c,this.b,l(t,118))},h.b=0,I(r1,"HyperEdgeSegmentSplitter/lambda$1$Type",1881),D(1882,1,{},Pte),h.Kb=function(t){return new vn(null,new kn(l(t,118).e,16))},I(r1,"HyperEdgeSegmentSplitter/lambda$2$Type",1882),D(1883,1,{},Bte),h.Kb=function(t){return new vn(null,new kn(l(t,118).j,16))},I(r1,"HyperEdgeSegmentSplitter/lambda$3$Type",1883),D(1884,1,{},Fte),h.Ye=function(t){return ze(Ge(t))},I(r1,"HyperEdgeSegmentSplitter/lambda$4$Type",1884),D(664,1,{},roe),h.a=0,h.b=0,h.c=0,I(r1,"OrthogonalRoutingGenerator",664),D(1703,1,{},Rte),h.Kb=function(t){return new vn(null,new kn(l(t,118).e,16))},I(r1,"OrthogonalRoutingGenerator/lambda$0$Type",1703),D(1704,1,{},jte),h.Kb=function(t){return new vn(null,new kn(l(t,118).j,16))},I(r1,"OrthogonalRoutingGenerator/lambda$1$Type",1704),D(670,1,{}),I(Ife,"BaseRoutingDirectionStrategy",670),D(1870,670,{},MJe),h.yg=function(t,n,r){var s,o,f,g,w,T,C,L,F,z,V,J,te;if(!(t.r&&!t.q))for(L=n+t.o*r,C=new K(t.n);C.aDd&&(f=L,o=t,s=new lt(F,f),ci(g.a,s),Qw(this,g,o,s,!1),z=t.r,z&&(V=ze(Ge(hf(z.e,0))),s=new lt(V,f),ci(g.a,s),Qw(this,g,o,s,!1),f=n+z.o*r,o=z,s=new lt(V,f),ci(g.a,s),Qw(this,g,o,s,!1)),s=new lt(te,f),ci(g.a,s),Qw(this,g,o,s,!1)))},h.zg=function(t){return t.i.n.a+t.n.a+t.a.a},h.Ag=function(){return _t(),Mr},h.Bg=function(){return _t(),Xn},I(Ife,"NorthToSouthRoutingStrategy",1870),D(1871,670,{},DJe),h.yg=function(t,n,r){var s,o,f,g,w,T,C,L,F,z,V,J,te;if(!(t.r&&!t.q))for(L=n-t.o*r,C=new K(t.n);C.aDd&&(f=L,o=t,s=new lt(F,f),ci(g.a,s),Qw(this,g,o,s,!1),z=t.r,z&&(V=ze(Ge(hf(z.e,0))),s=new lt(V,f),ci(g.a,s),Qw(this,g,o,s,!1),f=n-z.o*r,o=z,s=new lt(V,f),ci(g.a,s),Qw(this,g,o,s,!1)),s=new lt(te,f),ci(g.a,s),Qw(this,g,o,s,!1)))},h.zg=function(t){return t.i.n.a+t.n.a+t.a.a},h.Ag=function(){return _t(),Xn},h.Bg=function(){return _t(),Mr},I(Ife,"SouthToNorthRoutingStrategy",1871),D(1869,670,{},IJe),h.yg=function(t,n,r){var s,o,f,g,w,T,C,L,F,z,V,J,te;if(!(t.r&&!t.q))for(L=n+t.o*r,C=new K(t.n);C.aDd&&(f=L,o=t,s=new lt(f,F),ci(g.a,s),Qw(this,g,o,s,!0),z=t.r,z&&(V=ze(Ge(hf(z.e,0))),s=new lt(f,V),ci(g.a,s),Qw(this,g,o,s,!0),f=n+z.o*r,o=z,s=new lt(f,V),ci(g.a,s),Qw(this,g,o,s,!0)),s=new lt(f,te),ci(g.a,s),Qw(this,g,o,s,!0)))},h.zg=function(t){return t.i.n.b+t.n.b+t.a.b},h.Ag=function(){return _t(),sr},h.Bg=function(){return _t(),Zn},I(Ife,"WestToEastRoutingStrategy",1869),D(828,1,{},Uke),h.Ib=function(){return Ob(this.a)},h.b=0,h.c=!1,h.d=!1,h.f=0,I(n4,"NubSpline",828),D(418,1,{418:1},Hbt,Oot),I(n4,"NubSpline/PolarCP",418),D(1480,1,Vo,Cgt),h.rg=function(t){return Pxn(l(t,36))},h.Kf=function(t,n){IIn(this,l(t,36),n)};var OEt,NEt,PEt,BEt,FEt;I(n4,"SplineEdgeRouter",1480),D(274,1,{274:1},tU),h.Ib=function(){return this.a+" ->("+this.c+") "+this.b},h.c=0,I(n4,"SplineEdgeRouter/Dependency",274),D(465,22,{3:1,34:1,22:1,465:1},oye);var Jb,Y6,REt=Br(n4,"SplineEdgeRouter/SideToProcess",465,Hr,E2n,A1n),jEt;D(1481,1,ei,$te),h.Mb=function(t){return KA(),!l(t,131).o},I(n4,"SplineEdgeRouter/lambda$0$Type",1481),D(1482,1,{},zte),h.Ze=function(t){return KA(),l(t,131).v+1},I(n4,"SplineEdgeRouter/lambda$1$Type",1482),D(1483,1,hr,Att),h.Cd=function(t){Xdn(this.a,this.b,l(t,42))},I(n4,"SplineEdgeRouter/lambda$2$Type",1483),D(1484,1,hr,Ltt),h.Cd=function(t){Qdn(this.a,this.b,l(t,42))},I(n4,"SplineEdgeRouter/lambda$3$Type",1484),D(131,1,{34:1,131:1},r2t,Xke),h.Fd=function(t){return Zun(this,l(t,131))},h.b=0,h.e=!1,h.f=0,h.g=0,h.j=!1,h.k=!1,h.n=0,h.o=!1,h.p=!1,h.q=!1,h.s=0,h.u=0,h.v=0,h.F=0,I(n4,"SplineSegment",131),D(468,1,{468:1},qte),h.a=0,h.b=!1,h.c=!1,h.d=!1,h.e=!1,h.f=0,I(n4,"SplineSegment/EdgeInformation",468),D(1198,1,{},SS),I(vp,KTe,1198),D(1199,1,ii,Hte),h.Ne=function(t,n){return mTn(l(t,121),l(n,121))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(vp,Z3t,1199),D(1197,1,{},HZe),I(vp,"MrTree",1197),D(405,22,{3:1,34:1,22:1,405:1,188:1,196:1},Cq),h.dg=function(){return E2t(this)},h.qg=function(){return E2t(this)};var zW,hM,fM,dM,aIe=Br(vp,"TreeLayoutPhases",405,Hr,Smn,L1n),$Et;D(1112,205,uv,wit),h.rf=function(t,n){var r,s,o,f,g,w,T,C;for(Ft(Pt(at(t,(Vc(),DIe))))||tN((r=new nw((dw(),new sw(t))),r)),g=n.eh(Pfe),g.Ug("build tGraph",1),w=(T=new lN,mc(T,t),rt(T,(Zi(),pM),t),C=new Nr,lAn(t,T,C),LAn(t,T,C),T),g.Vg(),g=n.eh(Pfe),g.Ug("Split graph",1),f=bAn(this.a,w),g.Vg(),o=new K(f);o.a"+Um(this.c):"e_"+ts(this)},I(wL,"TEdge",65),D(121,137,{3:1,121:1,96:1,137:1},lN),h.Ib=function(){var t,n,r,s,o;for(o=null,s=Fr(this.b,0);s.b!=s.d.c;)r=l(Pr(s),40),o+=(r.c==null||r.c.length==0?"n_"+r.g:"n_"+r.c)+` +`;for(n=Fr(this.a,0);n.b!=n.d.c;)t=l(Pr(n),65),o+=(t.b&&t.c?Um(t.b)+"->"+Um(t.c):"e_"+ts(t))+` +`;return o};var WOn=I(wL,"TGraph",121);D(643,508,{3:1,508:1,643:1,96:1,137:1}),I(wL,"TShape",643),D(40,643,{3:1,508:1,40:1,643:1,96:1,137:1},Pce),h.Ib=function(){return Um(this)};var qW=I(wL,"TNode",40);D(236,1,gg,Kg),h.Jc=function(t){Za(this,t)},h.Kc=function(){var t;return t=Fr(this.a.d,0),new _5(t)},I(wL,"TNode/2",236),D(329,1,Ia,_5),h.Nb=function(t){Qa(this,t)},h.Pb=function(){return l(Pr(this.a),65).c},h.Ob=function(){return sO(this.a)},h.Qb=function(){uce(this.a)},I(wL,"TNode/2/1",329),D(1923,1,ns,Xte),h.Kf=function(t,n){cOn(this,l(t,121),n)},I(Eu,"CompactionProcessor",1923),D(1924,1,ii,$Xe),h.Ne=function(t,n){return Y3n(this.a,l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Eu,"CompactionProcessor/lambda$0$Type",1924),D(1925,1,ei,Dtt),h.Mb=function(t){return t2n(this.b,this.a,l(t,42))},h.a=0,h.b=0,I(Eu,"CompactionProcessor/lambda$1$Type",1925),D(1934,1,ii,c8),h.Ne=function(t,n){return Ggn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Eu,"CompactionProcessor/lambda$10$Type",1934),D(1935,1,ii,a$),h.Ne=function(t,n){return afn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Eu,"CompactionProcessor/lambda$11$Type",1935),D(1936,1,ii,Qte),h.Ne=function(t,n){return Kgn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Eu,"CompactionProcessor/lambda$12$Type",1936),D(1926,1,ei,zXe),h.Mb=function(t){return Hhn(this.a,l(t,42))},h.a=0,I(Eu,"CompactionProcessor/lambda$2$Type",1926),D(1927,1,ei,qXe),h.Mb=function(t){return Uhn(this.a,l(t,42))},h.a=0,I(Eu,"CompactionProcessor/lambda$3$Type",1927),D(1928,1,ei,TI),h.Mb=function(t){return l(t,40).c.indexOf(RG)==-1},I(Eu,"CompactionProcessor/lambda$4$Type",1928),D(1929,1,{},HXe),h.Kb=function(t){return rmn(this.a,l(t,40))},h.a=0,I(Eu,"CompactionProcessor/lambda$5$Type",1929),D(1930,1,{},UXe),h.Kb=function(t){return hwn(this.a,l(t,40))},h.a=0,I(Eu,"CompactionProcessor/lambda$6$Type",1930),D(1931,1,ii,VXe),h.Ne=function(t,n){return kvn(this.a,l(t,240),l(n,240))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Eu,"CompactionProcessor/lambda$7$Type",1931),D(1932,1,ii,GXe),h.Ne=function(t,n){return Tvn(this.a,l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Eu,"CompactionProcessor/lambda$8$Type",1932),D(1933,1,ii,Jte),h.Ne=function(t,n){return ofn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Eu,"CompactionProcessor/lambda$9$Type",1933),D(1921,1,ns,Zte),h.Kf=function(t,n){i_n(l(t,121),n)},I(Eu,"DirectionProcessor",1921),D(1913,1,ns,vit),h.Kf=function(t,n){_An(this,l(t,121),n)},I(Eu,"FanProcessor",1913),D(1937,1,ns,ene),h.Kf=function(t,n){GSn(l(t,121),n)},I(Eu,"GraphBoundsProcessor",1937),D(1938,1,{},tne),h.Ye=function(t){return l(t,40).e.a},I(Eu,"GraphBoundsProcessor/lambda$0$Type",1938),D(1939,1,{},nne),h.Ye=function(t){return l(t,40).e.b},I(Eu,"GraphBoundsProcessor/lambda$1$Type",1939),D(1940,1,{},rne),h.Ye=function(t){return Sln(l(t,40))},I(Eu,"GraphBoundsProcessor/lambda$2$Type",1940),D(1941,1,{},ine),h.Ye=function(t){return Cln(l(t,40))},I(Eu,"GraphBoundsProcessor/lambda$3$Type",1941),D(262,22,{3:1,34:1,22:1,262:1,196:1},gw),h.dg=function(){switch(this.g){case 0:return new GJe;case 1:return new vit;case 2:return new VJe;case 3:return new u$;case 4:return new sne;case 8:return new o$;case 5:return new Zte;case 6:return new h$;case 7:return new Xte;case 9:return new ene;case 10:return new one;default:throw ue(new Wn(Qhe+(this.f!=null?this.f:""+this.g)))}};var oIe,cIe,uIe,lIe,hIe,fIe,dIe,gIe,pIe,bIe,Vde,YOn=Br(Eu,Jhe,262,Hr,f0t,M1n),zEt;D(1920,1,ns,o$),h.Kf=function(t,n){sIn(l(t,121),n)},I(Eu,"LevelCoordinatesProcessor",1920),D(1918,1,ns,sne),h.Kf=function(t,n){SCn(this,l(t,121),n)},h.a=0,I(Eu,"LevelHeightProcessor",1918),D(1919,1,gg,c$),h.Jc=function(t){Za(this,t)},h.Kc=function(){return Cn(),Ik(),ME},I(Eu,"LevelHeightProcessor/1",1919),D(1914,1,ns,VJe),h.Kf=function(t,n){$Sn(this,l(t,121),n)},I(Eu,"LevelProcessor",1914),D(1915,1,ei,ane),h.Mb=function(t){return Ft(Pt(Q(l(t,40),(Zi(),Zb))))},I(Eu,"LevelProcessor/lambda$0$Type",1915),D(1916,1,ns,u$),h.Kf=function(t,n){Tkn(this,l(t,121),n)},h.a=0,I(Eu,"NeighborsProcessor",1916),D(1917,1,gg,l$),h.Jc=function(t){Za(this,t)},h.Kc=function(){return Cn(),Ik(),ME},I(Eu,"NeighborsProcessor/1",1917),D(1922,1,ns,h$),h.Kf=function(t,n){SAn(this,l(t,121),n)},h.a=0,I(Eu,"NodePositionProcessor",1922),D(1912,1,ns,GJe),h.Kf=function(t,n){oMn(this,l(t,121),n)},I(Eu,"RootProcessor",1912),D(1942,1,ns,one),h.Kf=function(t,n){r7n(l(t,121),n)},I(Eu,"Untreeifyer",1942),D(392,22,{3:1,34:1,22:1,392:1},Kse);var zB,Gde,mIe,vIe=Br(ZP,"EdgeRoutingMode",392,Hr,wbn,D1n),qEt,qB,ZE,Kde,wIe,yIe,Wde,Yde,xIe,Xde,kIe,Qde,gM,Jde,HW,UW,x0,o1,eC,pM,bM,N2,TIe,HEt,Zde,Zb,HB,UB;D(862,1,Pf,mie),h.hf=function(t){an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,MCe),""),Vyt),"Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level"),(Hn(),!1)),(T2(),Ta)),Ps),hn((n1(),Bn))))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,DCe),""),"Edge End Texture Length"),"Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing."),7),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,ICe),""),"Tree Level"),"The index for the tree level the node is in"),bt(0)),Sc),to),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,OCe),""),Vyt),"When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint"),bt(-1)),Sc),to),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,NCe),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),SIe),ps),RIe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,PCe),""),"Edge Routing Mode"),"Chooses an Edge Routing algorithm."),EIe),ps),vIe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,BCe),""),"Search Order"),"Which search order to use when computing a spanning tree."),CIe),ps),$Ie),hn(Bn)))),Nwt((new w8,t))};var UEt,VEt,GEt,EIe,KEt,WEt,CIe,YEt,XEt,SIe;I(ZP,"MrTreeMetaDataProvider",862),D(1006,1,Pf,w8),h.hf=function(t){Nwt(t)};var QEt,_Ie,AIe,_3,LIe,MIe,ege,JEt,ZEt,eCt,tCt,nCt,rCt,iCt,DIe,IIe,OIe,sCt,X6,VW,NIe,aCt,PIe,tge,oCt,cCt,uCt,BIe,lCt,$d,FIe;I(ZP,"MrTreeOptions",1006),D(1007,1,{},cne),h.sf=function(){var t;return t=new wit,t},h.tf=function(t){},I(ZP,"MrTreeOptions/MrtreeFactory",1007),D(353,22,{3:1,34:1,22:1,353:1},Sq);var nge,GW,rge,ige,RIe=Br(ZP,"OrderWeighting",353,Hr,_mn,I1n),hCt;D(433,22,{3:1,34:1,22:1,433:1},cye);var jIe,sge,$Ie=Br(ZP,"TreeifyingOrder",433,Hr,k2n,O1n),fCt;D(1486,1,Vo,yie),h.rg=function(t){return l(t,121),dCt},h.Kf=function(t,n){F3n(this,l(t,121),n)};var dCt;I("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1486),D(1487,1,Vo,pk),h.rg=function(t){return l(t,121),gCt},h.Kf=function(t,n){USn(this,l(t,121),n)};var gCt;I(mE,"NodeOrderer",1487),D(1494,1,{},Owe),h.td=function(t){return Cst(t)},I(mE,"NodeOrderer/0methodref$lambda$6$Type",1494),D(1488,1,ei,yne),h.Mb=function(t){return lx(),Ft(Pt(Q(l(t,40),(Zi(),Zb))))},I(mE,"NodeOrderer/lambda$0$Type",1488),D(1489,1,ei,xne),h.Mb=function(t){return lx(),l(Q(l(t,40),(Vc(),X6)),17).a<0},I(mE,"NodeOrderer/lambda$1$Type",1489),D(1490,1,ei,WXe),h.Mb=function(t){return f3n(this.a,l(t,40))},I(mE,"NodeOrderer/lambda$2$Type",1490),D(1491,1,ei,KXe),h.Mb=function(t){return amn(this.a,l(t,40))},I(mE,"NodeOrderer/lambda$3$Type",1491),D(1492,1,ii,kne),h.Ne=function(t,n){return Pwn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(mE,"NodeOrderer/lambda$4$Type",1492),D(1493,1,ei,Tne),h.Mb=function(t){return lx(),l(Q(l(t,40),(Zi(),Yde)),17).a!=0},I(mE,"NodeOrderer/lambda$5$Type",1493),D(1495,1,Vo,wie),h.rg=function(t){return l(t,121),pCt},h.Kf=function(t,n){Z_n(this,l(t,121),n)},h.b=0;var pCt;I("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1495),D(1496,1,Vo,vie),h.rg=function(t){return l(t,121),bCt},h.Kf=function(t,n){N_n(l(t,121),n)};var bCt,XOn=I(ph,"EdgeRouter",1496);D(1498,1,ii,wne),h.Ne=function(t,n){return iu(l(t,17).a,l(n,17).a)},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"EdgeRouter/0methodref$compare$Type",1498),D(1503,1,{},une),h.Ye=function(t){return ze(Ge(t))},I(ph,"EdgeRouter/1methodref$doubleValue$Type",1503),D(1505,1,ii,d$),h.Ne=function(t,n){return Xi(ze(Ge(t)),ze(Ge(n)))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"EdgeRouter/2methodref$compare$Type",1505),D(1507,1,ii,lne),h.Ne=function(t,n){return Xi(ze(Ge(t)),ze(Ge(n)))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"EdgeRouter/3methodref$compare$Type",1507),D(1509,1,{},f$),h.Ye=function(t){return ze(Ge(t))},I(ph,"EdgeRouter/4methodref$doubleValue$Type",1509),D(1511,1,ii,hne),h.Ne=function(t,n){return Xi(ze(Ge(t)),ze(Ge(n)))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"EdgeRouter/5methodref$compare$Type",1511),D(1513,1,ii,EI),h.Ne=function(t,n){return Xi(ze(Ge(t)),ze(Ge(n)))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"EdgeRouter/6methodref$compare$Type",1513),D(1497,1,{},fne),h.Kb=function(t){return sp(),l(Q(l(t,40),(Vc(),$d)),17)},I(ph,"EdgeRouter/lambda$0$Type",1497),D(1508,1,{},dne),h.Kb=function(t){return yfn(l(t,40))},I(ph,"EdgeRouter/lambda$11$Type",1508),D(1510,1,{},Itt),h.Kb=function(t){return Wdn(this.b,this.a,l(t,40))},h.a=0,h.b=0,I(ph,"EdgeRouter/lambda$13$Type",1510),D(1512,1,{},Ott),h.Kb=function(t){return xfn(this.b,this.a,l(t,40))},h.a=0,h.b=0,I(ph,"EdgeRouter/lambda$15$Type",1512),D(1514,1,ii,gne),h.Ne=function(t,n){return O6n(l(t,65),l(n,65))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"EdgeRouter/lambda$17$Type",1514),D(1515,1,ii,pne),h.Ne=function(t,n){return N6n(l(t,65),l(n,65))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"EdgeRouter/lambda$18$Type",1515),D(1516,1,ii,bne),h.Ne=function(t,n){return B6n(l(t,65),l(n,65))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"EdgeRouter/lambda$19$Type",1516),D(1499,1,ei,YXe),h.Mb=function(t){return F2n(this.a,l(t,40))},h.a=0,I(ph,"EdgeRouter/lambda$2$Type",1499),D(1517,1,ii,g$),h.Ne=function(t,n){return P6n(l(t,65),l(n,65))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"EdgeRouter/lambda$20$Type",1517),D(1500,1,ii,mne),h.Ne=function(t,n){return Ndn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"EdgeRouter/lambda$3$Type",1500),D(1501,1,ii,vne),h.Ne=function(t,n){return Pdn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"EdgeRouter/lambda$4$Type",1501),D(1502,1,{},Ene),h.Kb=function(t){return kfn(l(t,40))},I(ph,"EdgeRouter/lambda$5$Type",1502),D(1504,1,{},Ntt),h.Kb=function(t){return Ydn(this.b,this.a,l(t,40))},h.a=0,h.b=0,I(ph,"EdgeRouter/lambda$7$Type",1504),D(1506,1,{},Ptt),h.Kb=function(t){return Tfn(this.b,this.a,l(t,40))},h.a=0,h.b=0,I(ph,"EdgeRouter/lambda$9$Type",1506),D(675,1,{675:1},dgt),h.e=0,h.f=!1,h.g=!1,I(ph,"MultiLevelEdgeNodeNodeGap",675),D(1943,1,ii,Cne),h.Ne=function(t,n){return K2n(l(t,240),l(n,240))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"MultiLevelEdgeNodeNodeGap/lambda$0$Type",1943),D(1944,1,ii,Sne),h.Ne=function(t,n){return W2n(l(t,240),l(n,240))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(ph,"MultiLevelEdgeNodeNodeGap/lambda$1$Type",1944);var Q6;D(501,22,{3:1,34:1,22:1,501:1,188:1,196:1},uye),h.dg=function(){return Z1t(this)},h.qg=function(){return Z1t(this)};var KW,J6,zIe=Br(FCe,"RadialLayoutPhases",501,Hr,p2n,N1n),mCt;D(1113,205,uv,qZe),h.rf=function(t,n){var r,s,o,f,g,w;if(r=Rbt(this,t),n.Ug("Radial layout",r.c.length),Ft(Pt(at(t,(Pb(),JIe))))||tN((s=new nw((dw(),new sw(t))),s)),w=Rxn(t),Vi(t,(V5(),Q6),w),!w)throw ue(new Wn("The given graph is not a tree!"));for(o=ze(Ge(at(t,XW))),o==0&&(o=v2t(t)),Vi(t,XW,o),g=new K(Rbt(this,t));g.a=3)for(ot=l(Oe($e,0),27),At=l(Oe($e,1),27),f=0;f+2<$e.i;)if(Je=ot,ot=At,At=l(Oe($e,f+2),27),Je.f>=ot.f+At.f+L||At.f>=Je.f+ot.f+L){ln=!0;break}else++f;else ln=!0;if(!ln){for(z=$e.i,w=new ar($e);w.e!=w.i.gc();)g=l(dr(w),27),Vi(g,(bi(),iF),bt(z)),--z;gvt(t,new M8),n.Vg();return}for(r=(XO(this.a),Y0(this.a,(tV(),GB),l(at(t,_Oe),188)),Y0(this.a,QW,l(at(t,xOe),188)),Y0(this.a,mge,l(at(t,EOe),188)),_ye(this.a,(Fn=new Js,hi(Fn,GB,(fV(),yge)),hi(Fn,QW,wge),Ft(Pt(at(t,wOe)))&&hi(Fn,GB,vge),Fn)),EP(this.a,t)),C=1/r.c.length,J=new K(r);J.a0&&T1t((Yn(n-1,t.length),t.charCodeAt(n-1)),lyt);)--n;if(s>=n)throw ue(new Wn("The given string does not contain any numbers."));if(o=Yy((Va(s,n,t.length),t.substr(s,n-s)),`,|;|\r| +`),o.length!=2)throw ue(new Wn("Exactly two numbers are expected, "+o.length+" were found."));try{this.a=qy(Hy(o[0])),this.b=qy(Hy(o[1]))}catch(f){throw f=ms(f),De(f,130)?(r=f,ue(new Wn(hyt+r))):ue(f)}},h.Ib=function(){return"("+this.a+","+this.b+")"},h.a=0,h.b=0;var Ca=I(WP,"KVector",8);D(75,67,{3:1,4:1,20:1,31:1,56:1,16:1,67:1,15:1,75:1,423:1},pl,Zz,qrt),h.Pc=function(){return e4n(this)},h.cg=function(t){var n,r,s,o,f,g;s=Yy(t,`,|;|\\(|\\)|\\[|\\]|\\{|\\}| | | +`),Ch(this);try{for(r=0,f=0,o=0,g=0;r0&&(f%2==0?o=qy(s[r]):g=qy(s[r]),f>0&&f%2!=0&&ci(this,new lt(o,g)),++f),++r}catch(w){throw w=ms(w),De(w,130)?(n=w,ue(new Wn("The given string does not match the expected format for vectors."+n))):ue(w)}},h.Ib=function(){var t,n,r;for(t=new Eh("("),n=Fr(this,0);n.b!=n.d.c;)r=l(Pr(n),8),li(t,r.a+","+r.b),n.b!=n.d.c&&(t.a+="; ");return(t.a+=")",t).a};var lNe=I(WP,"KVectorChain",75);D(255,22,{3:1,34:1,22:1,255:1},A_);var $ge,oY,cY,QB,JB,uY,hNe=Br(Zl,"Alignment",255,Hr,Qvn,idn),QSt;D(991,1,Pf,Sie),h.hf=function(t){Qmt(t)};var fNe,zge,JSt,dNe,gNe,ZSt,pNe,e_t,t_t,bNe,mNe,n_t;I(Zl,"BoxLayouterOptions",991),D(992,1,{},nk),h.sf=function(){var t;return t=new Zne,t},h.tf=function(t){},I(Zl,"BoxLayouterOptions/BoxFactory",992),D(298,22,{3:1,34:1,22:1,298:1},L_);var EM,qge,CM,SM,_M,Hge,Uge=Br(Zl,"ContentAlignment",298,Hr,Jvn,sdn),r_t;D(699,1,Pf,bz),h.hf=function(t){an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,f4t),""),"Layout Algorithm"),"Select a specific layout algorithm."),(T2(),e7)),$t),hn((n1(),Bn))))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,d4t),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),X1),ZOn),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,aCe),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),vNe),ps),hNe),hn(pa)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,Nx),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,wSe),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),X1),lNe),hn(zd)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,OG),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),yNe),n9),Uge),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,JP),""),"Debug Mode"),"Whether additional debug information shall be generated."),(Hn(),!1)),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,Afe),""),$Te),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),xNe),ps),MM),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,QP),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),ENe),ps),ipe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,mSe),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,IG),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),_Ne),ps),dPe),is(Bn,he(le(Eg,1),it,170,0,[pa]))))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,r3),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),BNe),X1),FAe),is(Bn,he(le(Eg,1),it,170,0,[pa]))))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,fL),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,PG),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,dL),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,Whe),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),zNe),ps),bPe),hn(pa)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,NG),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),X1),Ca),is(pa,he(le(Eg,1),it,170,0,[Av,P2]))))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,qP),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),Sc),to),is(pa,he(le(Eg,1),it,170,0,[zd]))))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,gG),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),Sc),to),hn(Bn)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,hL),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,mCe),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),ANe),X1),lNe),hn(zd)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,yCe),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),Ta),Ps),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,xCe),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),Ta),Ps),hn(pa)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,SOn),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),X1),iNn),is(Bn,he(le(Eg,1),it,170,0,[P2]))))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,TCe),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),LNe),X1),BAe),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,iCe),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),Ta),Ps),is(pa,he(le(Eg,1),it,170,0,[zd,Av,P2]))))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,g4t),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),co),ra),hn(pa)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,p4t),""),"Child Area Width"),"The width of the area occupied by the laid out children of a node."),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,b4t),""),"Child Area Height"),"The height of the area occupied by the laid out children of a node."),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,HP),""),o4t),"Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"),!1),Ta),Ps),hn(Bn)))),Zs(t,HP,i3,null),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,m4t),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,v4t),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),bt(100)),Sc),to),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,w4t),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,y4t),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),bt(4e3)),Sc),to),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,x4t),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),bt(400)),Sc),to),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,k4t),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,T4t),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,E4t),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,C4t),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,vSe),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),wNe),ps),SPe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,KEe),V1),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,WEe),V1),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,zhe),V1),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,YEe),V1),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,Khe),V1),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,_fe),V1),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,XEe),V1),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,ZEe),V1),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,QEe),V1),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,JEe),V1),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,t4),V1),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,eCe),V1),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),co),ra),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,tCe),V1),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),co),ra),is(Bn,he(le(Eg,1),it,170,0,[pa]))))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,nCe),V1),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),X1),U_t),is(pa,he(le(Eg,1),it,170,0,[zd,Av,P2]))))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,ECe),V1),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),JNe),X1),BAe),hn(Bn)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,Mfe),A4t),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),Sc),to),is(Bn,he(le(Eg,1),it,170,0,[pa]))))),Zs(t,Mfe,Lfe,f_t),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,Lfe),A4t),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),FNe),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,uCe),L4t),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),DNe),X1),FAe),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,gE),L4t),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),INe),n9),Ko),is(pa,he(le(Eg,1),it,170,0,[P2]))))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,fCe),VG),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),jNe),ps),NM),hn(pa)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,dCe),VG),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),ps),NM),hn(pa)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,gCe),VG),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),ps),NM),hn(pa)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,pCe),VG),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),ps),NM),hn(pa)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,bCe),VG),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),ps),NM),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,T6),Jfe),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),ONe),n9),FM),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,Px),Jfe),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),PNe),n9),vPe),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,Bx),Jfe),"Node Size Minimum"),"The minimal size to which a node can be reduced."),NNe),X1),Ca),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,dE),Jfe),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),Ta),Ps),hn(Bn)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,vCe),Sfe),"Edge Label Placement"),"Gives a hint on where to put edge labels."),kNe),ps),tPe),hn(P2)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,pG),Sfe),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),Ta),Ps),hn(P2)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,_On),"font"),"Font Name"),"Font name used for a label."),e7),$t),hn(P2)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,S4t),"font"),"Font Size"),"Font size used for a label."),Sc),to),hn(P2)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,kCe),Zfe),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),X1),Ca),hn(Av)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,wCe),Zfe),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),Sc),to),hn(Av)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,sCe),Zfe),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),UNe),ps),Mo),hn(Av)))),an(t,new Qt(rn(nn(sn(Jt(tn(Zt(en(new Kt,rCe),Zfe),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),co),ra),hn(Av)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,pE),kSe),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),qNe),n9),pY),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,lCe),kSe),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),Ta),Ps),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,hCe),kSe),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),Ta),Ps),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,UP),tB),"Topdown Scale Factor"),"The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."),1),co),ra),hn(Bn)))),Zs(t,UP,i3,y_t),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,ySe),tB),"Topdown Size Approximator"),"The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size."),null),ps),xY),hn(pa)))),Zs(t,ySe,i3,x_t),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,VP),tB),"Topdown Hierarchical Node Width"),"The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),150),co),ra),is(Bn,he(le(Eg,1),it,170,0,[pa]))))),Zs(t,VP,i3,null),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,GP),tB),"Topdown Hierarchical Node Aspect Ratio"),"The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),1.414),co),ra),is(Bn,he(le(Eg,1),it,170,0,[pa]))))),Zs(t,GP,i3,null),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,i3),tB),"Topdown Node Type"),"The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes."),null),ps),yPe),hn(pa)))),Zs(t,i3,dE,null),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,xSe),tB),"Topdown Scale Cap"),"Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes."),1),co),ra),hn(Bn)))),Zs(t,xSe,i3,w_t),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,oCe),M4t),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),Ta),Ps),hn(pa)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,cCe),M4t),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),Ta),Ps),hn(zd)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,qhe),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),co),ra),hn(zd)))),an(t,new Qt(rn(nn(sn(yn(Jt(tn(Zt(en(new Kt,_4t),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),SNe),ps),oPe),hn(zd)))),v_(t,new rx(d_(_k(Sk(new sy,ir),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),v_(t,new rx(d_(_k(Sk(new sy,"org.eclipse.elk.orthogonal"),"Orthogonal"),`Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))),v_(t,new rx(d_(_k(Sk(new sy,Yu),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),v_(t,new rx(d_(_k(Sk(new sy,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),v_(t,new rx(d_(_k(Sk(new sy,Gyt),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),v_(t,new rx(d_(_k(Sk(new sy,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),v_(t,new rx(d_(_k(Sk(new sy,df),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),Bmt((new _ie,t)),Qmt((new Sie,t)),lmt((new mz,t))};var nC,i_t,vNe,t7,s_t,a_t,wNe,n7,r7,o_t,ZB,yNe,eF,Lv,xNe,Vge,Gge,kNe,TNe,ENe,CNe,SNe,c_t,i7,_Ne,u_t,tF,Kge,nF,Wge,A3,ANe,rC,LNe,MNe,DNe,s7,INe,Mv,ONe,A4,a7,NNe,em,PNe,lY,rF,B2,BNe,l_t,FNe,h_t,f_t,RNe,jNe,Yge,Xge,Qge,Jge,$Ne,eh,AM,zNe,Zge,epe,L4,qNe,HNe,o7,UNe,r9,iF,tpe,c7,d_t,npe,g_t,p_t,VNe,b_t,GNe,KNe,i9,WNe,hY,YNe,XNe,Dv,m_t,QNe,JNe,ZNe,fY,sF,LM,s9,v_t,w_t,dY,y_t,ePe,x_t;I(Zl,"CoreOptions",699),D(88,22,{3:1,34:1,22:1,88:1},CO);var Q1,hc,yc,J1,vf,MM=Br(Zl,$Te,88,Hr,nvn,adn),k_t;D(278,22,{3:1,34:1,22:1,278:1},tae);var iC,M4,sC,tPe=Br(Zl,"EdgeLabelPlacement",278,Hr,Dbn,odn),T_t;D(223,22,{3:1,34:1,22:1,223:1},Aq);var aC,aF,a9,rpe,ipe=Br(Zl,"EdgeRouting",223,Hr,Dmn,cdn),E_t;D(321,22,{3:1,34:1,22:1,321:1},M_);var nPe,rPe,iPe,sPe,spe,aPe,oPe=Br(Zl,"EdgeType",321,Hr,Xvn,udn),C_t;D(989,1,Pf,_ie),h.hf=function(t){Bmt(t)};var cPe,uPe,lPe,hPe,S_t,fPe,DM;I(Zl,"FixedLayouterOptions",989),D(990,1,{},C$),h.sf=function(){var t;return t=new sre,t},h.tf=function(t){},I(Zl,"FixedLayouterOptions/FixedFactory",990),D(346,22,{3:1,34:1,22:1,346:1},nae);var F2,gY,IM,dPe=Br(Zl,"HierarchyHandling",346,Hr,Lbn,ldn),__t;D(291,22,{3:1,34:1,22:1,291:1},Lq);var Cg,tm,oF,cF,A_t=Br(Zl,"LabelSide",291,Hr,Mmn,hdn),L_t;D(95,22,{3:1,34:1,22:1,95:1},O5);var xp,k0,zf,T0,jh,E0,qf,Sg,C0,Ko=Br(Zl,"NodeLabelPlacement",95,Hr,Qwn,fdn),M_t;D(256,22,{3:1,34:1,22:1,256:1},SO);var gPe,OM,nm,pPe,uF,NM=Br(Zl,"PortAlignment",256,Hr,mvn,ddn),D_t;D(101,22,{3:1,34:1,22:1,101:1},D_);var Iv,Au,_g,oC,Z1,rm,bPe=Br(Zl,"PortConstraints",101,Hr,Yvn,gdn),I_t;D(279,22,{3:1,34:1,22:1,279:1},I_);var PM,BM,kp,lF,im,o9,pY=Br(Zl,"PortLabelPlacement",279,Hr,Wvn,pdn),O_t;D(64,22,{3:1,34:1,22:1,64:1},_O);var sr,Xn,wf,yf,ul,Ju,ed,S0,Rl,Sl,Lu,jl,ll,hl,_0,$h,zh,Hf,Mr,jc,Zn,Mo=Br(Zl,"PortSide",64,Hr,rvn,bdn),N_t;D(993,1,Pf,mz),h.hf=function(t){lmt(t)};var P_t,B_t,mPe,F_t,R_t;I(Zl,"RandomLayouterOptions",993),D(994,1,{},S$),h.sf=function(){var t;return t=new nre,t},h.tf=function(t){},I(Zl,"RandomLayouterOptions/RandomFactory",994),D(386,22,{3:1,34:1,22:1,386:1},Mq);var D4,hF,fF,Ov,FM=Br(Zl,"SizeConstraint",386,Hr,Lmn,mdn),j_t;D(264,22,{3:1,34:1,22:1,264:1},N5);var dF,bY,cC,ape,gF,RM,mY,vY,wY,vPe=Br(Zl,"SizeOptions",264,Hr,u3n,vdn),$_t;D(280,22,{3:1,34:1,22:1,280:1},rae);var I4,wPe,yY,yPe=Br(Zl,"TopdownNodeTypes",280,Hr,Ibn,wdn),z_t;D(347,22,TSe);var xPe,kPe,xY=Br(Zl,"TopdownSizeApproximator",347,Hr,_2n,xdn);D(987,347,TSe,Est),h.Tg=function(t){return egt(t)},Br(Zl,"TopdownSizeApproximator/1",987,xY,null,null),D(988,347,TSe,uat),h.Tg=function(t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn,Fn;for(n=l(at(t,(bi(),c7)),143),At=(fb(),V=new o_,V),gP(At,t),ln=new Nr,f=new ar((!t.a&&(t.a=new nt(Li,t,10,11)),t.a));f.e!=f.i.gc();)s=l(dr(f),27),Me=(z=new o_,z),BV(Me,At),gP(Me,s),Fn=egt(s),j5(Me,b.Math.max(s.g,Fn.a),b.Math.max(s.f,Fn.b)),Ru(ln.f,s,Me);for(o=new ar((!t.a&&(t.a=new nt(Li,t,10,11)),t.a));o.e!=o.i.gc();)for(s=l(dr(o),27),L=new ar((!s.e&&(s.e=new An(js,s,7,4)),s.e));L.e!=L.i.gc();)C=l(dr(L),74),Je=l(dc(zo(ln.f,s)),27),ot=l(or(ln,Oe((!C.c&&(C.c=new An(Sr,C,5,8)),C.c),0)),27),$e=(F=new II,F),zr((!$e.b&&($e.b=new An(Sr,$e,4,7)),$e.b),Je),zr((!$e.c&&($e.c=new An(Sr,$e,5,8)),$e.c),ot),PV($e,ds(Je)),gP($e,C);te=l(eN(n.f),205);try{te.rf(At,new A$),$at(n.f,te)}catch($n){throw $n=ms($n),De($n,103)?(J=$n,ue(J)):ue($n)}return P1(At,r7)||P1(At,n7)||uTe(At),T=ze(Ge(at(At,r7))),w=ze(Ge(at(At,n7))),g=T/w,r=ze(Ge(at(At,sF)))*b.Math.sqrt((!At.a&&(At.a=new nt(Li,At,10,11)),At.a).i),cn=l(at(At,B2),107),Ee=cn.b+cn.c+1,fe=cn.d+cn.a+1,new lt(b.Math.max(Ee,r),b.Math.max(fe,r/g))},Br(Zl,"TopdownSizeApproximator/2",988,xY,null,null);var q_t;D(344,1,{871:1},M8),h.Ug=function(t,n){return dpt(this,t,n)},h.Vg=function(){Bpt(this)},h.Wg=function(){return this.q},h.Xg=function(){return this.f?voe(this.f):null},h.Yg=function(){return voe(this.a)},h.Zg=function(){return this.p},h.$g=function(){return!1},h._g=function(){return this.n},h.ah=function(){return this.p!=null&&!this.b},h.bh=function(t){var n;this.n&&(n=t,wt(this.f,n))},h.dh=function(t,n){var r,s;this.n&&t&&Kbn(this,(r=new xat,s=kle(r,t),ADn(r),s),(zU(),cpe))},h.eh=function(t){var n;return this.b?null:(n=Iwn(this,this.g),ci(this.a,n),n.i=this,this.d=t,n)},h.fh=function(t){t>0&&!this.b&&S7e(this,t)},h.b=!1,h.c=0,h.d=-1,h.e=null,h.f=null,h.g=-1,h.j=!1,h.k=!1,h.n=!1,h.o=0,h.q=0,h.r=0,I(Kc,"BasicProgressMonitor",344),D(717,205,uv,Zne),h.rf=function(t,n){gvt(t,n)},I(Kc,"BoxLayoutProvider",717),D(983,1,ii,oQe),h.Ne=function(t,n){return ACn(this,l(t,27),l(n,27))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},h.a=!1,I(Kc,"BoxLayoutProvider/1",983),D(163,1,{163:1},vU,Wrt),h.Ib=function(){return this.c?Cke(this.c):Ob(this.b)},I(Kc,"BoxLayoutProvider/Group",163),D(320,22,{3:1,34:1,22:1,320:1},Dq);var TPe,EPe,CPe,ope,SPe=Br(Kc,"BoxLayoutProvider/PackingMode",320,Hr,Imn,kdn),H_t;D(984,1,ii,rk),h.Ne=function(t,n){return Kpn(l(t,163),l(n,163))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Kc,"BoxLayoutProvider/lambda$0$Type",984),D(985,1,ii,ik),h.Ne=function(t,n){return jpn(l(t,163),l(n,163))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Kc,"BoxLayoutProvider/lambda$1$Type",985),D(986,1,ii,_$),h.Ne=function(t,n){return $pn(l(t,163),l(n,163))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(Kc,"BoxLayoutProvider/lambda$2$Type",986),D(1384,1,{845:1},ere),h.Mg=function(t,n){return cq(),!De(n,167)||KZe((fx(),l(t,167)),n)},I(Kc,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1384),D(1385,1,hr,cQe),h.Cd=function(t){r4n(this.a,l(t,149))},I(Kc,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1385),D(1386,1,hr,rre),h.Cd=function(t){l(t,96),cq()},I(Kc,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1386),D(1390,1,hr,uQe),h.Cd=function(t){C3n(this.a,l(t,96))},I(Kc,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1390),D(1388,1,ei,jtt),h.Mb=function(t){return Ryn(this.a,this.b,l(t,149))},I(Kc,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1388),D(1387,1,ei,$tt),h.Mb=function(t){return wfn(this.a,this.b,l(t,845))},I(Kc,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1387),D(1389,1,hr,ztt),h.Cd=function(t){Ign(this.a,this.b,l(t,149))},I(Kc,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1389),D(947,1,{},ire),h.Kb=function(t){return Bnt(t)},h.Fb=function(t){return this===t},I(Kc,"ElkUtil/lambda$0$Type",947),D(948,1,hr,qtt),h.Cd=function(t){DTn(this.a,this.b,l(t,74))},h.a=0,h.b=0,I(Kc,"ElkUtil/lambda$1$Type",948),D(949,1,hr,Htt),h.Cd=function(t){kun(this.a,this.b,l(t,166))},h.a=0,h.b=0,I(Kc,"ElkUtil/lambda$2$Type",949),D(950,1,hr,Utt),h.Cd=function(t){mhn(this.a,this.b,l(t,135))},h.a=0,h.b=0,I(Kc,"ElkUtil/lambda$3$Type",950),D(951,1,hr,lQe),h.Cd=function(t){Zdn(this.a,l(t,377))},I(Kc,"ElkUtil/lambda$4$Type",951),D(325,1,{34:1,325:1},Jcn),h.Fd=function(t){return Ghn(this,l(t,242))},h.Fb=function(t){var n;return De(t,325)?(n=l(t,325),this.a==n.a):!1},h.Hb=function(){return da(this.a)},h.Ib=function(){return this.a+" (exclusive)"},h.a=0,I(Kc,"ExclusiveBounds/ExclusiveLowerBound",325),D(1119,205,uv,sre),h.rf=function(t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee,Me,$e,Je,ot,At,ln,cn;for(n.Ug("Fixed Layout",1),f=l(at(t,(bi(),TNe)),223),F=0,z=0,Me=new ar((!t.a&&(t.a=new nt(Li,t,10,11)),t.a));Me.e!=Me.i.gc();){for(fe=l(dr(Me),27),cn=l(at(fe,(qU(),DM)),8),cn&&(Xh(fe,cn.a,cn.b),l(at(fe,uPe),181).Hc((gh(),D4))&&(V=l(at(fe,hPe),8),V.a>0&&V.b>0&&Zw(fe,V.a,V.b,!0,!0))),F=b.Math.max(F,fe.i+fe.g),z=b.Math.max(z,fe.j+fe.f),C=new ar((!fe.n&&(fe.n=new nt(nc,fe,1,7)),fe.n));C.e!=C.i.gc();)w=l(dr(C),135),cn=l(at(w,DM),8),cn&&Xh(w,cn.a,cn.b),F=b.Math.max(F,fe.i+w.i+w.g),z=b.Math.max(z,fe.j+w.j+w.f);for(ot=new ar((!fe.c&&(fe.c=new nt($l,fe,9,9)),fe.c));ot.e!=ot.i.gc();)for(Je=l(dr(ot),123),cn=l(at(Je,DM),8),cn&&Xh(Je,cn.a,cn.b),At=fe.i+Je.i,ln=fe.j+Je.j,F=b.Math.max(F,At+Je.g),z=b.Math.max(z,ln+Je.f),T=new ar((!Je.n&&(Je.n=new nt(nc,Je,1,7)),Je.n));T.e!=T.i.gc();)w=l(dr(T),135),cn=l(at(w,DM),8),cn&&Xh(w,cn.a,cn.b),F=b.Math.max(F,At+w.i+w.g),z=b.Math.max(z,ln+w.j+w.f);for(o=new lr(fr(fp(fe).a.Kc(),new j));Rr(o);)r=l(yr(o),74),L=Awt(r),F=b.Math.max(F,L.a),z=b.Math.max(z,L.b);for(s=new lr(fr(dP(fe).a.Kc(),new j));Rr(s);)r=l(yr(s),74),ds(hg(r))!=t&&(L=Awt(r),F=b.Math.max(F,L.a),z=b.Math.max(z,L.b))}if(f==(cp(),aC))for(Ee=new ar((!t.a&&(t.a=new nt(Li,t,10,11)),t.a));Ee.e!=Ee.i.gc();)for(fe=l(dr(Ee),27),s=new lr(fr(fp(fe).a.Kc(),new j));Rr(s);)r=l(yr(s),74),g=OAn(r),g.b==0?Vi(r,A3,null):Vi(r,A3,g);Ft(Pt(at(t,(qU(),lPe))))||($e=l(at(t,S_t),107),te=F+$e.b+$e.c,J=z+$e.d+$e.a,Zw(t,te,J,!0,!0)),n.Vg()},I(Kc,"FixedLayoutProvider",1119),D(385,137,{3:1,423:1,385:1,96:1,137:1},DI,Sht),h.cg=function(t){var n,r,s,o,f,g,w,T,C;if(t)try{for(T=Yy(t,";,;"),f=T,g=0,w=f.length;g>16&ta|n^s<<16},h.Kc=function(){return new hQe(this)},h.Ib=function(){return this.a==null&&this.b==null?"pair(null,null)":this.a==null?"pair(null,"+Tc(this.b)+")":this.b==null?"pair("+Tc(this.a)+",null)":"pair("+Tc(this.a)+","+Tc(this.b)+")"},I(Kc,"Pair",42),D(995,1,Ia,hQe),h.Nb=function(t){Qa(this,t)},h.Ob=function(){return!this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)},h.Pb=function(){if(!this.c&&!this.b&&this.a.a!=null)return this.b=!0,this.a.a;if(!this.c&&this.a.b!=null)return this.c=!0,this.a.b;throw ue(new Dc)},h.Qb=function(){throw this.c&&this.a.b!=null?this.a.b=null:this.b&&this.a.a!=null&&(this.a.a=null),ue(new gl)},h.b=!1,h.c=!1,I(Kc,"Pair/1",995),D(455,1,{455:1},not),h.Fb=function(t){return eu(this.a,l(t,455).a)&&eu(this.c,l(t,455).c)&&eu(this.d,l(t,455).d)&&eu(this.b,l(t,455).b)},h.Hb=function(){return RN(he(le(ka,1),jn,1,5,[this.a,this.c,this.d,this.b]))},h.Ib=function(){return"("+this.a+To+this.c+To+this.d+To+this.b+")"},I(Kc,"Quadruple",455),D(1108,205,uv,nre),h.rf=function(t,n){var r,s,o,f,g;if(n.Ug("Random Layout",1),(!t.a&&(t.a=new nt(Li,t,10,11)),t.a).i==0){n.Vg();return}f=l(at(t,(exe(),F_t)),17),f&&f.a!=0?o=new QH(f.a):o=new sue,r=iO(Ge(at(t,P_t))),g=iO(Ge(at(t,R_t))),s=l(at(t,B_t),107),QDn(t,o,r,g,s),n.Vg()},I(Kc,"RandomLayoutProvider",1108),D(240,1,{240:1},Oae),h.Fb=function(t){return eu(this.a,l(t,240).a)&&eu(this.b,l(t,240).b)&&eu(this.c,l(t,240).c)},h.Hb=function(){return RN(he(le(ka,1),jn,1,5,[this.a,this.b,this.c]))},h.Ib=function(){return"("+this.a+To+this.b+To+this.c+")"},I(Kc,"Triple",240);var K_t;D(562,1,{}),h.Lf=function(){return new lt(this.f.i,this.f.j)},h.of=function(t){return Mot(t,(bi(),eh))?at(this.f,W_t):at(this.f,t)},h.Mf=function(){return new lt(this.f.g,this.f.f)},h.Nf=function(){return this.g},h.pf=function(t){return P1(this.f,t)},h.Of=function(t){Vu(this.f,t.a),Gu(this.f,t.b)},h.Pf=function(t){Rw(this.f,t.a),Fw(this.f,t.b)},h.Qf=function(t){this.g=t},h.g=0;var W_t;I(kL,"ElkGraphAdapters/AbstractElkGraphElementAdapter",562),D(563,1,{853:1},$z),h.Rf=function(){var t,n;if(!this.b)for(this.b=KH(MH(this.a).i),n=new ar(MH(this.a));n.e!=n.i.gc();)t=l(dr(n),135),wt(this.b,new use(t));return this.b},h.b=null,I(kL,"ElkGraphAdapters/ElkEdgeAdapter",563),D(289,562,{},sw),h.Sf=function(){return kgt(this)},h.a=null,I(kL,"ElkGraphAdapters/ElkGraphAdapter",289),D(640,562,{187:1},use),I(kL,"ElkGraphAdapters/ElkLabelAdapter",640),D(639,562,{695:1},mae),h.Rf=function(){return R7n(this)},h.Vf=function(){var t;return t=l(at(this.f,(bi(),rC)),140),!t&&(t=new a_),t},h.Xf=function(){return j7n(this)},h.Zf=function(t){var n;n=new Pae(t),Vi(this.f,(bi(),rC),n)},h.$f=function(t){Vi(this.f,(bi(),B2),new U4e(t))},h.Tf=function(){return this.d},h.Uf=function(){var t,n;if(!this.a)for(this.a=new mt,n=new lr(fr(dP(l(this.f,27)).a.Kc(),new j));Rr(n);)t=l(yr(n),74),wt(this.a,new $z(t));return this.a},h.Wf=function(){var t,n;if(!this.c)for(this.c=new mt,n=new lr(fr(fp(l(this.f,27)).a.Kc(),new j));Rr(n);)t=l(yr(n),74),wt(this.c,new $z(t));return this.c},h.Yf=function(){return PH(l(this.f,27)).i!=0||Ft(Pt(l(this.f,27).of((bi(),tF))))},h._f=function(){mwn(this,(dw(),K_t))},h.a=null,h.b=null,h.c=null,h.d=null,h.e=null,I(kL,"ElkGraphAdapters/ElkNodeAdapter",639),D(1284,562,{852:1},fQe),h.Rf=function(){return K7n(this)},h.Uf=function(){var t,n;if(!this.a)for(this.a=rg(l(this.f,123).hh().i),n=new ar(l(this.f,123).hh());n.e!=n.i.gc();)t=l(dr(n),74),wt(this.a,new $z(t));return this.a},h.Wf=function(){var t,n;if(!this.c)for(this.c=rg(l(this.f,123).ih().i),n=new ar(l(this.f,123).ih());n.e!=n.i.gc();)t=l(dr(n),74),wt(this.c,new $z(t));return this.c},h.ag=function(){return l(l(this.f,123).of((bi(),o7)),64)},h.bg=function(){var t,n,r,s,o,f,g,w;for(s=M1(l(this.f,123)),r=new ar(l(this.f,123).ih());r.e!=r.i.gc();)for(t=l(dr(r),74),w=new ar((!t.c&&(t.c=new An(Sr,t,5,8)),t.c));w.e!=w.i.gc();){if(g=l(dr(w),84),Iy(vc(g),s))return!0;if(vc(g)==s&&Ft(Pt(at(t,(bi(),Kge)))))return!0}for(n=new ar(l(this.f,123).hh());n.e!=n.i.gc();)for(t=l(dr(n),74),f=new ar((!t.b&&(t.b=new An(Sr,t,4,7)),t.b));f.e!=f.i.gc();)if(o=l(dr(f),84),Iy(vc(o),s))return!0;return!1},h.a=null,h.b=null,h.c=null,I(kL,"ElkGraphAdapters/ElkPortAdapter",1284),D(1285,1,ii,tre),h.Ne=function(t,n){return C_n(l(t,123),l(n,123))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I(kL,"ElkGraphAdapters/PortComparator",1285);var sm=Ts(gf,"EObject"),uC=Ts(S6,O4t),qh=Ts(S6,N4t),pF=Ts(S6,P4t),bF=Ts(S6,"ElkShape"),Sr=Ts(S6,B4t),js=Ts(S6,ESe),cs=Ts(S6,F4t),mF=Ts(gf,R4t),jM=Ts(gf,"EFactory"),Y_t,upe=Ts(gf,j4t),c1=Ts(gf,"EPackage"),La,X_t,Q_t,MPe,kY,J_t,DPe,IPe,OPe,Ag,Z_t,eAt,nc=Ts(S6,CSe),Li=Ts(S6,SSe),$l=Ts(S6,_Se);D(93,1,$4t),h.th=function(){return this.uh(),null},h.uh=function(){return null},h.vh=function(){return this.uh(),!1},h.wh=function(){return!1},h.xh=function(t){Bi(this,t)},I(jx,"BasicNotifierImpl",93),D(99,93,U4t),h.Yh=function(){return ch(this)},h.yh=function(t,n){return t},h.zh=function(){throw ue(new Qr)},h.Ah=function(t){var n;return n=jo(l(Mn(this.Dh(),this.Fh()),19)),this.Ph().Th(this,n.n,n.f,t)},h.Bh=function(t,n){throw ue(new Qr)},h.Ch=function(t,n,r){return Nh(this,t,n,r)},h.Dh=function(){var t;return this.zh()&&(t=this.zh().Nk(),t)?t:this.ii()},h.Eh=function(){return sle(this)},h.Fh=function(){throw ue(new Qr)},h.Gh=function(){var t,n;return n=this.$h().Ok(),!n&&this.zh().Tk(n=(y_(),t=r6e(Sd(this.Dh())),t==null?mpe:new IO(this,t))),n},h.Hh=function(t,n){return t},h.Ih=function(t){var n;return n=t.pk(),n?t.Lj():vs(this.Dh(),t)},h.Jh=function(){var t;return t=this.zh(),t?t.Qk():null},h.Kh=function(){return this.zh()?this.zh().Nk():null},h.Lh=function(t,n,r){return lV(this,t,n,r)},h.Mh=function(t){return rT(this,t)},h.Nh=function(t,n){return Uoe(this,t,n)},h.Oh=function(){var t;return t=this.zh(),!!t&&t.Rk()},h.Ph=function(){throw ue(new Qr)},h.Qh=function(){return rV(this)},h.Rh=function(t,n,r,s){return vx(this,t,n,s)},h.Sh=function(t,n,r){var s;return s=l(Mn(this.Dh(),n),69),s.wk().zk(this,this.hi(),n-this.ji(),t,r)},h.Th=function(t,n,r,s){return jH(this,t,n,s)},h.Uh=function(t,n,r){var s;return s=l(Mn(this.Dh(),n),69),s.wk().Ak(this,this.hi(),n-this.ji(),t,r)},h.Vh=function(){return!!this.zh()&&!!this.zh().Pk()},h.Wh=function(t){return bue(this,t)},h.Xh=function(t){return Uot(this,t)},h.Zh=function(t){return fwt(this,t)},h.$h=function(){throw ue(new Qr)},h._h=function(){return this.zh()?this.zh().Pk():null},h.ai=function(){return rV(this)},h.bi=function(t,n){ele(this,t,n)},h.ci=function(t){this.$h().Sk(t)},h.di=function(t){this.$h().Vk(t)},h.ei=function(t){this.$h().Uk(t)},h.fi=function(t,n){var r,s,o,f;return f=this.Jh(),f&&t&&(n=ko(f.El(),this,n),f.Il(this)),s=this.Ph(),s&&(wle(this,this.Ph(),this.Fh()).Bb&Lo?(o=s.Qh(),o&&(t?!f&&o.Il(this):o.Hl(this))):(n=(r=this.Fh(),r>=0?this.Ah(n):this.Ph().Th(this,-1-r,null,n)),n=this.Ch(null,-1,n))),this.di(t),n},h.gi=function(t){var n,r,s,o,f,g,w,T;if(r=this.Dh(),f=vs(r,t),n=this.ji(),f>=n)return l(t,69).wk().Dk(this,this.hi(),f-n);if(f<=-1)if(g=b6((kl(),no),r,t),g){if(Ro(),l(g,69).xk()||(g=ix(ac(no,g))),o=(s=this.Ih(g),l(s>=0?this.Lh(s,!0,!0):Xw(this,g,!0),160)),T=g.Ik(),T>1||T==-1)return l(l(o,220).Sl(t,!1),79)}else throw ue(new Wn(qb+t.xe()+e0e));else if(t.Jk())return s=this.Ih(t),l(s>=0?this.Lh(s,!1,!0):Xw(this,t,!1),79);return w=new cnt(this,t),w},h.hi=function(){return c7e(this)},h.ii=function(){return(wb(),Un).S},h.ji=function(){return wr(this.ii())},h.ki=function(t){Que(this,t)},h.Ib=function(){return d0(this)},I(Vn,"BasicEObjectImpl",99);var tAt;D(119,99,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1}),h.li=function(t){var n;return n=o7e(this),n[t]},h.mi=function(t,n){var r;r=o7e(this),Ss(r,t,n)},h.ni=function(t){var n;n=o7e(this),Ss(n,t,null)},h.th=function(){return l(Gn(this,4),129)},h.uh=function(){throw ue(new Qr)},h.vh=function(){return(this.Db&4)!=0},h.zh=function(){throw ue(new Qr)},h.oi=function(t){bx(this,2,t)},h.Bh=function(t,n){this.Db=n<<16|this.Db&255,this.oi(t)},h.Dh=function(){return il(this)},h.Fh=function(){return this.Db>>16},h.Gh=function(){var t,n;return y_(),n=r6e(Sd((t=l(Gn(this,16),29),t||this.ii()))),n==null?mpe:new IO(this,n)},h.wh=function(){return(this.Db&1)==0},h.Jh=function(){return l(Gn(this,128),2034)},h.Kh=function(){return l(Gn(this,16),29)},h.Oh=function(){return(this.Db&32)!=0},h.Ph=function(){return l(Gn(this,2),54)},h.Vh=function(){return(this.Db&64)!=0},h.$h=function(){throw ue(new Qr)},h._h=function(){return l(Gn(this,64),288)},h.ci=function(t){bx(this,16,t)},h.di=function(t){bx(this,128,t)},h.ei=function(t){bx(this,64,t)},h.hi=function(){return Ku(this)},h.Db=0,I(Vn,"MinimalEObjectImpl",119),D(120,119,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.oi=function(t){this.Cb=t},h.Ph=function(){return this.Cb},I(Vn,"MinimalEObjectImpl/Container",120),D(2083,120,{110:1,342:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.Lh=function(t,n,r){return Txe(this,t,n,r)},h.Uh=function(t,n,r){return f9e(this,t,n,r)},h.Wh=function(t){return m6e(this,t)},h.bi=function(t,n){c8e(this,t,n)},h.ii=function(){return au(),eAt},h.ki=function(t){Q7e(this,t)},h.nf=function(){return qdt(this)},h.gh=function(){return!this.o&&(this.o=new yl((au(),Ag),R2,this,0)),this.o},h.of=function(t){return at(this,t)},h.pf=function(t){return P1(this,t)},h.qf=function(t,n){return Vi(this,t,n)},I(dv,"EMapPropertyHolderImpl",2083),D(572,120,{110:1,377:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},LS),h.Lh=function(t,n,r){switch(t){case 0:return this.a;case 1:return this.b}return lV(this,t,n,r)},h.Wh=function(t){switch(t){case 0:return this.a!=0;case 1:return this.b!=0}return bue(this,t)},h.bi=function(t,n){switch(t){case 0:yU(this,ze(Ge(n)));return;case 1:wU(this,ze(Ge(n)));return}ele(this,t,n)},h.ii=function(){return au(),X_t},h.ki=function(t){switch(t){case 0:yU(this,0);return;case 1:wU(this,0);return}Que(this,t)},h.Ib=function(){var t;return this.Db&64?d0(this):(t=new Af(d0(this)),t.a+=" (x: ",L5(t,this.a),t.a+=", y: ",L5(t,this.b),t.a+=")",t.a)},h.a=0,h.b=0,I(dv,"ElkBendPointImpl",572),D(739,2083,{110:1,342:1,167:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.Lh=function(t,n,r){return D8e(this,t,n,r)},h.Sh=function(t,n,r){return Uue(this,t,n,r)},h.Uh=function(t,n,r){return _ce(this,t,n,r)},h.Wh=function(t){return V7e(this,t)},h.bi=function(t,n){qxe(this,t,n)},h.ii=function(){return au(),J_t},h.ki=function(t){k8e(this,t)},h.jh=function(){return this.k},h.kh=function(){return MH(this)},h.Ib=function(){return Zce(this)},h.k=null,I(dv,"ElkGraphElementImpl",739),D(740,739,{110:1,342:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.Lh=function(t,n,r){return j8e(this,t,n,r)},h.Wh=function(t){return V8e(this,t)},h.bi=function(t,n){Hxe(this,t,n)},h.ii=function(){return au(),Z_t},h.ki=function(t){J8e(this,t)},h.lh=function(){return this.f},h.mh=function(){return this.g},h.nh=function(){return this.i},h.oh=function(){return this.j},h.ph=function(t,n){j5(this,t,n)},h.qh=function(t,n){Xh(this,t,n)},h.rh=function(t){Vu(this,t)},h.sh=function(t){Gu(this,t)},h.Ib=function(){return Yue(this)},h.f=0,h.g=0,h.i=0,h.j=0,I(dv,"ElkShapeImpl",740),D(741,740,{110:1,342:1,84:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.Lh=function(t,n,r){return bxe(this,t,n,r)},h.Sh=function(t,n,r){return Bxe(this,t,n,r)},h.Uh=function(t,n,r){return Fxe(this,t,n,r)},h.Wh=function(t){return o8e(this,t)},h.bi=function(t,n){X9e(this,t,n)},h.ii=function(){return au(),Q_t},h.ki=function(t){hxe(this,t)},h.hh=function(){return!this.d&&(this.d=new An(js,this,8,5)),this.d},h.ih=function(){return!this.e&&(this.e=new An(js,this,7,4)),this.e},I(dv,"ElkConnectableShapeImpl",741),D(326,739,{110:1,342:1,74:1,167:1,326:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},II),h.Ah=function(t){return Ixe(this,t)},h.Lh=function(t,n,r){switch(t){case 3:return nN(this);case 4:return!this.b&&(this.b=new An(Sr,this,4,7)),this.b;case 5:return!this.c&&(this.c=new An(Sr,this,5,8)),this.c;case 6:return!this.a&&(this.a=new nt(cs,this,6,6)),this.a;case 7:return Hn(),!this.b&&(this.b=new An(Sr,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new An(Sr,this,5,8)),this.c.i<=1));case 8:return Hn(),!!HA(this);case 9:return Hn(),!!Yw(this);case 10:return Hn(),!this.b&&(this.b=new An(Sr,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new An(Sr,this,5,8)),this.c.i!=0)}return D8e(this,t,n,r)},h.Sh=function(t,n,r){var s;switch(n){case 3:return this.Cb&&(r=(s=this.Db>>16,s>=0?Ixe(this,r):this.Cb.Th(this,-1-s,null,r))),d4e(this,l(t,27),r);case 4:return!this.b&&(this.b=new An(Sr,this,4,7)),Fu(this.b,t,r);case 5:return!this.c&&(this.c=new An(Sr,this,5,8)),Fu(this.c,t,r);case 6:return!this.a&&(this.a=new nt(cs,this,6,6)),Fu(this.a,t,r)}return Uue(this,t,n,r)},h.Uh=function(t,n,r){switch(n){case 3:return d4e(this,null,r);case 4:return!this.b&&(this.b=new An(Sr,this,4,7)),ko(this.b,t,r);case 5:return!this.c&&(this.c=new An(Sr,this,5,8)),ko(this.c,t,r);case 6:return!this.a&&(this.a=new nt(cs,this,6,6)),ko(this.a,t,r)}return _ce(this,t,n,r)},h.Wh=function(t){switch(t){case 3:return!!nN(this);case 4:return!!this.b&&this.b.i!=0;case 5:return!!this.c&&this.c.i!=0;case 6:return!!this.a&&this.a.i!=0;case 7:return!this.b&&(this.b=new An(Sr,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new An(Sr,this,5,8)),this.c.i<=1));case 8:return HA(this);case 9:return Yw(this);case 10:return!this.b&&(this.b=new An(Sr,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new An(Sr,this,5,8)),this.c.i!=0)}return V7e(this,t)},h.bi=function(t,n){switch(t){case 3:PV(this,l(n,27));return;case 4:!this.b&&(this.b=new An(Sr,this,4,7)),$r(this.b),!this.b&&(this.b=new An(Sr,this,4,7)),Ls(this.b,l(n,16));return;case 5:!this.c&&(this.c=new An(Sr,this,5,8)),$r(this.c),!this.c&&(this.c=new An(Sr,this,5,8)),Ls(this.c,l(n,16));return;case 6:!this.a&&(this.a=new nt(cs,this,6,6)),$r(this.a),!this.a&&(this.a=new nt(cs,this,6,6)),Ls(this.a,l(n,16));return}qxe(this,t,n)},h.ii=function(){return au(),MPe},h.ki=function(t){switch(t){case 3:PV(this,null);return;case 4:!this.b&&(this.b=new An(Sr,this,4,7)),$r(this.b);return;case 5:!this.c&&(this.c=new An(Sr,this,5,8)),$r(this.c);return;case 6:!this.a&&(this.a=new nt(cs,this,6,6)),$r(this.a);return}k8e(this,t)},h.Ib=function(){return Mvt(this)},I(dv,"ElkEdgeImpl",326),D(452,2083,{110:1,342:1,166:1,452:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},sk),h.Ah=function(t){return Axe(this,t)},h.Lh=function(t,n,r){switch(t){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return!this.a&&(this.a=new Qs(qh,this,5)),this.a;case 6:return $ot(this);case 7:return n?xue(this):this.i;case 8:return n?yue(this):this.f;case 9:return!this.g&&(this.g=new An(cs,this,9,10)),this.g;case 10:return!this.e&&(this.e=new An(cs,this,10,9)),this.e;case 11:return this.d}return Txe(this,t,n,r)},h.Sh=function(t,n,r){var s,o,f;switch(n){case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?Axe(this,r):this.Cb.Th(this,-1-o,null,r))),f4e(this,l(t,74),r);case 9:return!this.g&&(this.g=new An(cs,this,9,10)),Fu(this.g,t,r);case 10:return!this.e&&(this.e=new An(cs,this,10,9)),Fu(this.e,t,r)}return f=l(Mn((s=l(Gn(this,16),29),s||(au(),kY)),n),69),f.wk().zk(this,Ku(this),n-wr((au(),kY)),t,r)},h.Uh=function(t,n,r){switch(n){case 5:return!this.a&&(this.a=new Qs(qh,this,5)),ko(this.a,t,r);case 6:return f4e(this,null,r);case 9:return!this.g&&(this.g=new An(cs,this,9,10)),ko(this.g,t,r);case 10:return!this.e&&(this.e=new An(cs,this,10,9)),ko(this.e,t,r)}return f9e(this,t,n,r)},h.Wh=function(t){switch(t){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return!!this.a&&this.a.i!=0;case 6:return!!$ot(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&this.g.i!=0;case 10:return!!this.e&&this.e.i!=0;case 11:return this.d!=null}return m6e(this,t)},h.bi=function(t,n){switch(t){case 1:uT(this,ze(Ge(n)));return;case 2:hT(this,ze(Ge(n)));return;case 3:cT(this,ze(Ge(n)));return;case 4:lT(this,ze(Ge(n)));return;case 5:!this.a&&(this.a=new Qs(qh,this,5)),$r(this.a),!this.a&&(this.a=new Qs(qh,this,5)),Ls(this.a,l(n,16));return;case 6:Lbt(this,l(n,74));return;case 7:_U(this,l(n,84));return;case 8:SU(this,l(n,84));return;case 9:!this.g&&(this.g=new An(cs,this,9,10)),$r(this.g),!this.g&&(this.g=new An(cs,this,9,10)),Ls(this.g,l(n,16));return;case 10:!this.e&&(this.e=new An(cs,this,10,9)),$r(this.e),!this.e&&(this.e=new An(cs,this,10,9)),Ls(this.e,l(n,16));return;case 11:O7e(this,Zr(n));return}c8e(this,t,n)},h.ii=function(){return au(),kY},h.ki=function(t){switch(t){case 1:uT(this,0);return;case 2:hT(this,0);return;case 3:cT(this,0);return;case 4:lT(this,0);return;case 5:!this.a&&(this.a=new Qs(qh,this,5)),$r(this.a);return;case 6:Lbt(this,null);return;case 7:_U(this,null);return;case 8:SU(this,null);return;case 9:!this.g&&(this.g=new An(cs,this,9,10)),$r(this.g);return;case 10:!this.e&&(this.e=new An(cs,this,10,9)),$r(this.e);return;case 11:O7e(this,null);return}Q7e(this,t)},h.Ib=function(){return H2t(this)},h.b=0,h.c=0,h.d=null,h.j=0,h.k=0,I(dv,"ElkEdgeSectionImpl",452),D(158,120,{110:1,94:1,93:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),h.Lh=function(t,n,r){var s;return t==0?(!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab):rf(this,t-wr(this.ii()),Mn((s=l(Gn(this,16),29),s||this.ii()),t),n,r)},h.Sh=function(t,n,r){var s,o;return n==0?(!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Fu(this.Ab,t,r)):(o=l(Mn((s=l(Gn(this,16),29),s||this.ii()),n),69),o.wk().zk(this,Ku(this),n-wr(this.ii()),t,r))},h.Uh=function(t,n,r){var s,o;return n==0?(!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r)):(o=l(Mn((s=l(Gn(this,16),29),s||this.ii()),n),69),o.wk().Ak(this,Ku(this),n-wr(this.ii()),t,r))},h.Wh=function(t){var n;return t==0?!!this.Ab&&this.Ab.i!=0:tf(this,t-wr(this.ii()),Mn((n=l(Gn(this,16),29),n||this.ii()),t))},h.Zh=function(t){return oTe(this,t)},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return}cf(this,t-wr(this.ii()),Mn((r=l(Gn(this,16),29),r||this.ii()),t),n)},h.di=function(t){bx(this,128,t)},h.ii=function(){return En(),wAt},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return}of(this,t-wr(this.ii()),Mn((n=l(Gn(this,16),29),n||this.ii()),t))},h.pi=function(){this.Bb|=1},h.qi=function(t){return XA(this,t)},h.Bb=0,I(Vn,"EModelElementImpl",158),D(720,158,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},wz),h.ri=function(t,n){return swt(this,t,n)},h.si=function(t){var n,r,s,o,f;if(this.a!=Ah(t)||t.Bb&256)throw ue(new Wn(n0e+t.zb+c3));for(s=pc(t);fu(s.a).i!=0;){if(r=l(CP(s,0,(n=l(Oe(fu(s.a),0),89),f=n.c,De(f,90)?l(f,29):(En(),Kf))),29),Ww(r))return o=Ah(r).wi().si(r),l(o,54).ci(t),o;s=pc(r)}return(t.D!=null?t.D:t.B)=="java.util.Map$Entry"?new kst(t):new t5e(t)},h.ti=function(t,n){return e3(this,t,n)},h.Lh=function(t,n,r){var s;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.a}return rf(this,t-wr((En(),um)),Mn((s=l(Gn(this,16),29),s||um),t),n,r)},h.Sh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Fu(this.Ab,t,r);case 1:return this.a&&(r=l(this.a,54).Th(this,4,c1,r)),x8e(this,l(t,241),r)}return o=l(Mn((s=l(Gn(this,16),29),s||(En(),um)),n),69),o.wk().zk(this,Ku(this),n-wr((En(),um)),t,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r);case 1:return x8e(this,null,r)}return o=l(Mn((s=l(Gn(this,16),29),s||(En(),um)),n),69),o.wk().Ak(this,Ku(this),n-wr((En(),um)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return!!this.a}return tf(this,t-wr((En(),um)),Mn((n=l(Gn(this,16),29),n||um),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:Spt(this,l(n,241));return}cf(this,t-wr((En(),um)),Mn((r=l(Gn(this,16),29),r||um),t),n)},h.ii=function(){return En(),um},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:Spt(this,null);return}of(this,t-wr((En(),um)),Mn((n=l(Gn(this,16),29),n||um),t))};var $M,NPe,nAt;I(Vn,"EFactoryImpl",720),D(1037,720,{110:1,2113:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},ak),h.ri=function(t,n){switch(t.hk()){case 12:return l(n,149).Pg();case 13:return Tc(n);default:throw ue(new Wn(kE+t.xe()+c3))}},h.si=function(t){var n,r,s,o,f,g,w,T;switch(t.G==-1&&(t.G=(n=Ah(t),n?x2(n.vi(),t):-1)),t.G){case 4:return f=new ok,f;case 6:return g=new o_,g;case 7:return w=new r3e,w;case 8:return s=new II,s;case 9:return r=new LS,r;case 10:return o=new sk,o;case 11:return T=new L$,T;default:throw ue(new Wn(n0e+t.zb+c3))}},h.ti=function(t,n){switch(t.hk()){case 13:case 12:return null;default:throw ue(new Wn(kE+t.xe()+c3))}},I(dv,"ElkGraphFactoryImpl",1037),D(448,158,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),h.Gh=function(){var t,n;return n=(t=l(Gn(this,16),29),r6e(Sd(t||this.ii()))),n==null?(y_(),y_(),mpe):new Vrt(this,n)},h.Lh=function(t,n,r){var s;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.xe()}return rf(this,t-wr(this.ii()),Mn((s=l(Gn(this,16),29),s||this.ii()),t),n,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null}return tf(this,t-wr(this.ii()),Mn((n=l(Gn(this,16),29),n||this.ii()),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:this.ui(Zr(n));return}cf(this,t-wr(this.ii()),Mn((r=l(Gn(this,16),29),r||this.ii()),t),n)},h.ii=function(){return En(),yAt},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:this.ui(null);return}of(this,t-wr(this.ii()),Mn((n=l(Gn(this,16),29),n||this.ii()),t))},h.xe=function(){return this.zb},h.ui=function(t){Bu(this,t)},h.Ib=function(){return SA(this)},h.zb=null,I(Vn,"ENamedElementImpl",448),D(184,448,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},vot),h.Ah=function(t){return Fgt(this,t)},h.Lh=function(t,n,r){var s;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return!this.rb&&(this.rb=new ky(this,u1,this)),this.rb;case 6:return!this.vb&&(this.vb=new V8(c1,this,6,7)),this.vb;case 7:return n?this.Db>>16==7?l(this.Cb,241):null:Kot(this)}return rf(this,t-wr((En(),q2)),Mn((s=l(Gn(this,16),29),s||q2),t),n,r)},h.Sh=function(t,n,r){var s,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Fu(this.Ab,t,r);case 4:return this.sb&&(r=l(this.sb,54).Th(this,1,jM,r)),E8e(this,l(t,480),r);case 5:return!this.rb&&(this.rb=new ky(this,u1,this)),Fu(this.rb,t,r);case 6:return!this.vb&&(this.vb=new V8(c1,this,6,7)),Fu(this.vb,t,r);case 7:return this.Cb&&(r=(o=this.Db>>16,o>=0?Fgt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,7,r)}return f=l(Mn((s=l(Gn(this,16),29),s||(En(),q2)),n),69),f.wk().zk(this,Ku(this),n-wr((En(),q2)),t,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r);case 4:return E8e(this,null,r);case 5:return!this.rb&&(this.rb=new ky(this,u1,this)),ko(this.rb,t,r);case 6:return!this.vb&&(this.vb=new V8(c1,this,6,7)),ko(this.vb,t,r);case 7:return Nh(this,null,7,r)}return o=l(Mn((s=l(Gn(this,16),29),s||(En(),q2)),n),69),o.wk().Ak(this,Ku(this),n-wr((En(),q2)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return!!this.sb;case 5:return!!this.rb&&this.rb.i!=0;case 6:return!!this.vb&&this.vb.i!=0;case 7:return!!Kot(this)}return tf(this,t-wr((En(),q2)),Mn((n=l(Gn(this,16),29),n||q2),t))},h.Zh=function(t){var n;return n=$Cn(this,t),n||oTe(this,t)},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:Bu(this,Zr(n));return;case 2:OU(this,Zr(n));return;case 3:IU(this,Zr(n));return;case 4:Wue(this,l(n,480));return;case 5:!this.rb&&(this.rb=new ky(this,u1,this)),$r(this.rb),!this.rb&&(this.rb=new ky(this,u1,this)),Ls(this.rb,l(n,16));return;case 6:!this.vb&&(this.vb=new V8(c1,this,6,7)),$r(this.vb),!this.vb&&(this.vb=new V8(c1,this,6,7)),Ls(this.vb,l(n,16));return}cf(this,t-wr((En(),q2)),Mn((r=l(Gn(this,16),29),r||q2),t),n)},h.ei=function(t){var n,r;if(t&&this.rb)for(r=new ar(this.rb);r.e!=r.i.gc();)n=dr(r),De(n,364)&&(l(n,364).w=null);bx(this,64,t)},h.ii=function(){return En(),q2},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:Bu(this,null);return;case 2:OU(this,null);return;case 3:IU(this,null);return;case 4:Wue(this,null);return;case 5:!this.rb&&(this.rb=new ky(this,u1,this)),$r(this.rb);return;case 6:!this.vb&&(this.vb=new V8(c1,this,6,7)),$r(this.vb);return}of(this,t-wr((En(),q2)),Mn((n=l(Gn(this,16),29),n||q2),t))},h.pi=function(){Nue(this)},h.vi=function(){return!this.rb&&(this.rb=new ky(this,u1,this)),this.rb},h.wi=function(){return this.sb},h.xi=function(){return this.ub},h.yi=function(){return this.xb},h.zi=function(){return this.yb},h.Ai=function(t){this.ub=t},h.Ib=function(){var t;return this.Db&64?SA(this):(t=new Af(SA(this)),t.a+=" (nsURI: ",Jo(t,this.yb),t.a+=", nsPrefix: ",Jo(t,this.xb),t.a+=")",t.a)},h.xb=null,h.yb=null,I(Vn,"EPackageImpl",184),D(569,184,{110:1,2115:1,569:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},J2t),h.q=!1,h.r=!1;var rAt=!1;I(dv,"ElkGraphPackageImpl",569),D(366,740,{110:1,342:1,167:1,135:1,422:1,366:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},ok),h.Ah=function(t){return Lxe(this,t)},h.Lh=function(t,n,r){switch(t){case 7:return Wot(this);case 8:return this.a}return j8e(this,t,n,r)},h.Sh=function(t,n,r){var s;switch(n){case 7:return this.Cb&&(r=(s=this.Db>>16,s>=0?Lxe(this,r):this.Cb.Th(this,-1-s,null,r))),b5e(this,l(t,167),r)}return Uue(this,t,n,r)},h.Uh=function(t,n,r){return n==7?b5e(this,null,r):_ce(this,t,n,r)},h.Wh=function(t){switch(t){case 7:return!!Wot(this);case 8:return!wn("",this.a)}return V8e(this,t)},h.bi=function(t,n){switch(t){case 7:uke(this,l(n,167));return;case 8:A7e(this,Zr(n));return}Hxe(this,t,n)},h.ii=function(){return au(),DPe},h.ki=function(t){switch(t){case 7:uke(this,null);return;case 8:A7e(this,"");return}J8e(this,t)},h.Ib=function(){return $pt(this)},h.a="",I(dv,"ElkLabelImpl",366),D(207,741,{110:1,342:1,84:1,167:1,27:1,422:1,207:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},o_),h.Ah=function(t){return Oxe(this,t)},h.Lh=function(t,n,r){switch(t){case 9:return!this.c&&(this.c=new nt($l,this,9,9)),this.c;case 10:return!this.a&&(this.a=new nt(Li,this,10,11)),this.a;case 11:return ds(this);case 12:return!this.b&&(this.b=new nt(js,this,12,3)),this.b;case 13:return Hn(),!this.a&&(this.a=new nt(Li,this,10,11)),this.a.i>0}return bxe(this,t,n,r)},h.Sh=function(t,n,r){var s;switch(n){case 9:return!this.c&&(this.c=new nt($l,this,9,9)),Fu(this.c,t,r);case 10:return!this.a&&(this.a=new nt(Li,this,10,11)),Fu(this.a,t,r);case 11:return this.Cb&&(r=(s=this.Db>>16,s>=0?Oxe(this,r):this.Cb.Th(this,-1-s,null,r))),T4e(this,l(t,27),r);case 12:return!this.b&&(this.b=new nt(js,this,12,3)),Fu(this.b,t,r)}return Bxe(this,t,n,r)},h.Uh=function(t,n,r){switch(n){case 9:return!this.c&&(this.c=new nt($l,this,9,9)),ko(this.c,t,r);case 10:return!this.a&&(this.a=new nt(Li,this,10,11)),ko(this.a,t,r);case 11:return T4e(this,null,r);case 12:return!this.b&&(this.b=new nt(js,this,12,3)),ko(this.b,t,r)}return Fxe(this,t,n,r)},h.Wh=function(t){switch(t){case 9:return!!this.c&&this.c.i!=0;case 10:return!!this.a&&this.a.i!=0;case 11:return!!ds(this);case 12:return!!this.b&&this.b.i!=0;case 13:return!this.a&&(this.a=new nt(Li,this,10,11)),this.a.i>0}return o8e(this,t)},h.bi=function(t,n){switch(t){case 9:!this.c&&(this.c=new nt($l,this,9,9)),$r(this.c),!this.c&&(this.c=new nt($l,this,9,9)),Ls(this.c,l(n,16));return;case 10:!this.a&&(this.a=new nt(Li,this,10,11)),$r(this.a),!this.a&&(this.a=new nt(Li,this,10,11)),Ls(this.a,l(n,16));return;case 11:BV(this,l(n,27));return;case 12:!this.b&&(this.b=new nt(js,this,12,3)),$r(this.b),!this.b&&(this.b=new nt(js,this,12,3)),Ls(this.b,l(n,16));return}X9e(this,t,n)},h.ii=function(){return au(),IPe},h.ki=function(t){switch(t){case 9:!this.c&&(this.c=new nt($l,this,9,9)),$r(this.c);return;case 10:!this.a&&(this.a=new nt(Li,this,10,11)),$r(this.a);return;case 11:BV(this,null);return;case 12:!this.b&&(this.b=new nt(js,this,12,3)),$r(this.b);return}hxe(this,t)},h.Ib=function(){return Cke(this)},I(dv,"ElkNodeImpl",207),D(193,741,{110:1,342:1,84:1,167:1,123:1,422:1,193:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},r3e),h.Ah=function(t){return Mxe(this,t)},h.Lh=function(t,n,r){return t==9?M1(this):bxe(this,t,n,r)},h.Sh=function(t,n,r){var s;switch(n){case 9:return this.Cb&&(r=(s=this.Db>>16,s>=0?Mxe(this,r):this.Cb.Th(this,-1-s,null,r))),g4e(this,l(t,27),r)}return Bxe(this,t,n,r)},h.Uh=function(t,n,r){return n==9?g4e(this,null,r):Fxe(this,t,n,r)},h.Wh=function(t){return t==9?!!M1(this):o8e(this,t)},h.bi=function(t,n){switch(t){case 9:ske(this,l(n,27));return}X9e(this,t,n)},h.ii=function(){return au(),OPe},h.ki=function(t){switch(t){case 9:ske(this,null);return}hxe(this,t)},h.Ib=function(){return Amt(this)},I(dv,"ElkPortImpl",193);var iAt=Ts(Eo,"BasicEMap/Entry");D(1122,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,119:1,120:1},L$),h.Fb=function(t){return this===t},h.ld=function(){return this.b},h.Hb=function(){return ww(this)},h.Di=function(t){L7e(this,l(t,149))},h.Lh=function(t,n,r){switch(t){case 0:return this.b;case 1:return this.c}return lV(this,t,n,r)},h.Wh=function(t){switch(t){case 0:return!!this.b;case 1:return this.c!=null}return bue(this,t)},h.bi=function(t,n){switch(t){case 0:L7e(this,l(n,149));return;case 1:_7e(this,n);return}ele(this,t,n)},h.ii=function(){return au(),Ag},h.ki=function(t){switch(t){case 0:L7e(this,null);return;case 1:_7e(this,null);return}Que(this,t)},h.Bi=function(){var t;return this.a==-1&&(t=this.b,this.a=t?ts(t):0),this.a},h.md=function(){return this.c},h.Ci=function(t){this.a=t},h.nd=function(t){var n;return n=this.c,_7e(this,t),n},h.Ib=function(){var t;return this.Db&64?d0(this):(t=new lb,li(li(li(t,this.b?this.b.Pg():cl),Yhe),$_(this.c)),t.a)},h.a=-1,h.c=null;var R2=I(dv,"ElkPropertyToValueMapEntryImpl",1122);D(996,1,{},D$),I(eo,"JsonAdapter",996),D(216,63,gp,dd),I(eo,"JsonImportException",216),D(868,1,{},Rgt),I(eo,"JsonImporter",868),D(903,1,{},Vtt),I(eo,"JsonImporter/lambda$0$Type",903),D(904,1,{},Gtt),I(eo,"JsonImporter/lambda$1$Type",904),D(912,1,{},dQe),I(eo,"JsonImporter/lambda$10$Type",912),D(914,1,{},Ktt),I(eo,"JsonImporter/lambda$11$Type",914),D(915,1,{},Wtt),I(eo,"JsonImporter/lambda$12$Type",915),D(921,1,{},aot),I(eo,"JsonImporter/lambda$13$Type",921),D(920,1,{},oot),I(eo,"JsonImporter/lambda$14$Type",920),D(916,1,{},Ytt),I(eo,"JsonImporter/lambda$15$Type",916),D(917,1,{},Xtt),I(eo,"JsonImporter/lambda$16$Type",917),D(918,1,{},Qtt),I(eo,"JsonImporter/lambda$17$Type",918),D(919,1,{},Jtt),I(eo,"JsonImporter/lambda$18$Type",919),D(924,1,{},gQe),I(eo,"JsonImporter/lambda$19$Type",924),D(905,1,{},pQe),I(eo,"JsonImporter/lambda$2$Type",905),D(922,1,{},bQe),I(eo,"JsonImporter/lambda$20$Type",922),D(923,1,{},mQe),I(eo,"JsonImporter/lambda$21$Type",923),D(927,1,{},vQe),I(eo,"JsonImporter/lambda$22$Type",927),D(925,1,{},wQe),I(eo,"JsonImporter/lambda$23$Type",925),D(926,1,{},yQe),I(eo,"JsonImporter/lambda$24$Type",926),D(929,1,{},xQe),I(eo,"JsonImporter/lambda$25$Type",929),D(928,1,{},kQe),I(eo,"JsonImporter/lambda$26$Type",928),D(930,1,hr,Ztt),h.Cd=function(t){ewn(this.b,this.a,Zr(t))},I(eo,"JsonImporter/lambda$27$Type",930),D(931,1,hr,ent),h.Cd=function(t){twn(this.b,this.a,Zr(t))},I(eo,"JsonImporter/lambda$28$Type",931),D(932,1,{},tnt),I(eo,"JsonImporter/lambda$29$Type",932),D(908,1,{},TQe),I(eo,"JsonImporter/lambda$3$Type",908),D(933,1,{},nnt),I(eo,"JsonImporter/lambda$30$Type",933),D(934,1,{},EQe),I(eo,"JsonImporter/lambda$31$Type",934),D(935,1,{},CQe),I(eo,"JsonImporter/lambda$32$Type",935),D(936,1,{},SQe),I(eo,"JsonImporter/lambda$33$Type",936),D(937,1,{},_Qe),I(eo,"JsonImporter/lambda$34$Type",937),D(870,1,{},AQe),I(eo,"JsonImporter/lambda$35$Type",870),D(941,1,{},Xit),I(eo,"JsonImporter/lambda$36$Type",941),D(938,1,hr,LQe),h.Cd=function(t){avn(this.a,l(t,377))},I(eo,"JsonImporter/lambda$37$Type",938),D(939,1,hr,rnt),h.Cd=function(t){zln(this.a,this.b,l(t,166))},I(eo,"JsonImporter/lambda$38$Type",939),D(940,1,hr,int),h.Cd=function(t){qln(this.a,this.b,l(t,166))},I(eo,"JsonImporter/lambda$39$Type",940),D(906,1,{},MQe),I(eo,"JsonImporter/lambda$4$Type",906),D(942,1,hr,DQe),h.Cd=function(t){ovn(this.a,l(t,8))},I(eo,"JsonImporter/lambda$40$Type",942),D(907,1,{},IQe),I(eo,"JsonImporter/lambda$5$Type",907),D(911,1,{},OQe),I(eo,"JsonImporter/lambda$6$Type",911),D(909,1,{},NQe),I(eo,"JsonImporter/lambda$7$Type",909),D(910,1,{},PQe),I(eo,"JsonImporter/lambda$8$Type",910),D(913,1,{},BQe),I(eo,"JsonImporter/lambda$9$Type",913),D(961,1,hr,FQe),h.Cd=function(t){Z8(this.a,new Ty(Zr(t)))},I(eo,"JsonMetaDataConverter/lambda$0$Type",961),D(962,1,hr,RQe),h.Cd=function(t){Jgn(this.a,l(t,245))},I(eo,"JsonMetaDataConverter/lambda$1$Type",962),D(963,1,hr,jQe),h.Cd=function(t){Q2n(this.a,l(t,143))},I(eo,"JsonMetaDataConverter/lambda$2$Type",963),D(964,1,hr,$Qe),h.Cd=function(t){Zgn(this.a,l(t,170))},I(eo,"JsonMetaDataConverter/lambda$3$Type",964),D(245,22,{3:1,34:1,22:1,245:1},j8);var TY,EY,lpe,CY,SY,_Y,hpe,fpe,AY=Br($P,"GraphFeature",245,Hr,Bwn,Cdn),sAt;D(11,1,{34:1,149:1},Ki,ws,mn,qa),h.Fd=function(t){return Khn(this,l(t,149))},h.Fb=function(t){return Mot(this,t)},h.Sg=function(){return It(this)},h.Pg=function(){return this.b},h.Hb=function(){return g2(this.b)},h.Ib=function(){return this.b},I($P,"Property",11),D(671,1,ii,Wie),h.Ne=function(t,n){return r5n(this,l(t,96),l(n,96))},h.Fb=function(t){return this===t},h.Oe=function(){return new Ut(this)},I($P,"PropertyHolderComparator",671),D(709,1,Ia,Rwe),h.Nb=function(t){Qa(this,t)},h.Pb=function(){return iwn(this)},h.Qb=function(){BZe()},h.Ob=function(){return!!this.a},I(YG,"ElkGraphUtil/AncestorIterator",709);var PPe=Ts(Eo,"EList");D(70,56,{20:1,31:1,56:1,16:1,15:1,70:1,61:1}),h.bd=function(t,n){AA(this,t,n)},h.Fc=function(t){return zr(this,t)},h.cd=function(t,n){return J7e(this,t,n)},h.Gc=function(t){return Ls(this,t)},h.Ii=function(){return new U8(this)},h.Ji=function(){return new OO(this)},h.Ki=function(t){return CN(this,t)},h.Li=function(){return!0},h.Mi=function(t,n){},h.Ni=function(){},h.Oi=function(t,n){Woe(this,t,n)},h.Pi=function(t,n,r){},h.Qi=function(t,n){},h.Ri=function(t,n,r){},h.Fb=function(t){return fmt(this,t)},h.Hb=function(){return W7e(this)},h.Si=function(){return!1},h.Kc=function(){return new ar(this)},h.ed=function(){return new H8(this)},h.fd=function(t){var n;if(n=this.gc(),t<0||t>n)throw ue(new yy(t,n));return new Zae(this,t)},h.Ui=function(t,n){this.Ti(t,this.dd(n))},h.Mc=function(t){return fU(this,t)},h.Wi=function(t,n){return n},h.hd=function(t,n){return i6(this,t,n)},h.Ib=function(){return q8e(this)},h.Yi=function(){return!0},h.Zi=function(t,n){return CT(this,n)},I(Eo,"AbstractEList",70),D(66,70,Bd,sb,Bw,q7e),h.Ei=function(t,n){return Vue(this,t,n)},h.Fi=function(t){return ugt(this,t)},h.Gi=function(t,n){$N(this,t,n)},h.Hi=function(t){uN(this,t)},h.$i=function(t){return n7e(this,t)},h.$b=function(){lA(this)},h.Hc=function(t){return zT(this,t)},h.Xb=function(t){return Oe(this,t)},h._i=function(t){var n,r,s;++this.j,r=this.g==null?0:this.g.length,t>r&&(s=this.g,n=r+(r/2|0)+4,n=0?(this.gd(n),!0):!1},h.Xi=function(t,n){return this.Dj(t,this.Zi(t,n))},h.gc=function(){return this.Ej()},h.Pc=function(){return this.Fj()},h.Qc=function(t){return this.Gj(t)},h.Ib=function(){return this.Hj()},I(Eo,"DelegatingEList",2093),D(2094,2093,A5t),h.Ei=function(t,n){return Fke(this,t,n)},h.Fi=function(t){return this.Ei(this.Ej(),t)},h.Gi=function(t,n){Z2t(this,t,n)},h.Hi=function(t){z2t(this,t)},h.Li=function(){return!this.Mj()},h.$b=function(){nL(this)},h.Ij=function(t,n,r,s,o){return new Lot(this,t,n,r,s,o)},h.Jj=function(t){Bi(this.jj(),t)},h.Kj=function(){return null},h.Lj=function(){return-1},h.jj=function(){return null},h.Mj=function(){return!1},h.Nj=function(t,n){return n},h.Oj=function(t,n){return n},h.Pj=function(){return!1},h.Qj=function(){return!this.Aj()},h.Ti=function(t,n){var r,s;return this.Pj()?(s=this.Qj(),r=u9e(this,t,n),this.Jj(this.Ij(7,bt(n),r,t,s)),r):u9e(this,t,n)},h.gd=function(t){var n,r,s,o;return this.Pj()?(r=null,s=this.Qj(),n=this.Ij(4,o=lH(this,t),null,t,s),this.Mj()&&o?(r=this.Oj(o,r),r?(r.nj(n),r.oj()):this.Jj(n)):r?(r.nj(n),r.oj()):this.Jj(n),o):(o=lH(this,t),this.Mj()&&o&&(r=this.Oj(o,null),r&&r.oj()),o)},h.Xi=function(t,n){return avt(this,t,n)},I(jx,"DelegatingNotifyingListImpl",2094),D(152,1,rB),h.nj=function(t){return Wxe(this,t)},h.oj=function(){nce(this)},h.gj=function(){return this.d},h.Kj=function(){return null},h.Rj=function(){return null},h.hj=function(t){return-1},h.ij=function(){return Kbt(this)},h.jj=function(){return null},h.kj=function(){return gke(this)},h.lj=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},h.Sj=function(){return!1},h.mj=function(t){var n,r,s,o,f,g,w,T,C,L,F;switch(this.d){case 1:case 2:switch(o=t.gj(),o){case 1:case 2:if(f=t.jj(),qe(f)===qe(this.jj())&&this.hj(null)==t.hj(null))return this.g=t.ij(),t.gj()==1&&(this.d=1),!0}case 4:{switch(o=t.gj(),o){case 4:{if(f=t.jj(),qe(f)===qe(this.jj())&&this.hj(null)==t.hj(null))return C=eTe(this),T=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,g=t.lj(),this.d=6,F=new Bw(2),T<=g?(zr(F,this.n),zr(F,t.kj()),this.g=he(le(Ur,1),fi,28,15,[this.o=T,g+1])):(zr(F,t.kj()),zr(F,this.n),this.g=he(le(Ur,1),fi,28,15,[this.o=g,T])),this.n=F,C||(this.o=-2-this.o-1),!0;break}}break}case 6:{switch(o=t.gj(),o){case 4:{if(f=t.jj(),qe(f)===qe(this.jj())&&this.hj(null)==t.hj(null)){for(C=eTe(this),g=t.lj(),L=l(this.g,53),s=We(Ur,fi,28,L.length+1,15,1),n=0;n>>0,n.toString(16))),s.a+=" (eventType: ",this.d){case 1:{s.a+="SET";break}case 2:{s.a+="UNSET";break}case 3:{s.a+="ADD";break}case 5:{s.a+="ADD_MANY";break}case 4:{s.a+="REMOVE";break}case 6:{s.a+="REMOVE_MANY";break}case 7:{s.a+="MOVE";break}case 8:{s.a+="REMOVING_ADAPTER";break}case 9:{s.a+="RESOLVE";break}default:{vse(s,this.d);break}}if(Nmt(this)&&(s.a+=", touch: true"),s.a+=", position: ",vse(s,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),s.a+=", notifier: ",N_(s,this.jj()),s.a+=", feature: ",N_(s,this.Kj()),s.a+=", oldValue: ",N_(s,gke(this)),s.a+=", newValue: ",this.d==6&&De(this.g,53)){for(r=l(this.g,53),s.a+="[",t=0;t10?((!this.b||this.c.j!=this.a)&&(this.b=new G_(this),this.a=this.j),K0(this.b,t)):zT(this,t)},h.Yi=function(){return!0},h.a=0,I(Eo,"AbstractEList/1",966),D(302,77,whe,yy),I(Eo,"AbstractEList/BasicIndexOutOfBoundsException",302),D(37,1,Ia,ar),h.Nb=function(t){Qa(this,t)},h.Xj=function(){if(this.i.j!=this.f)throw ue(new Yh)},h.Yj=function(){return dr(this)},h.Ob=function(){return this.e!=this.i.gc()},h.Pb=function(){return this.Yj()},h.Qb=function(){$A(this)},h.e=0,h.f=0,h.g=-1,I(Eo,"AbstractEList/EIterator",37),D(286,37,dg,H8,Zae),h.Qb=function(){$A(this)},h.Rb=function(t){odt(this,t)},h.Zj=function(){var t;try{return t=this.d.Xb(--this.e),this.Xj(),this.g=this.e,t}catch(n){throw n=ms(n),De(n,77)?(this.Xj(),ue(new Dc)):ue(n)}},h.$j=function(t){fgt(this,t)},h.Sb=function(){return this.e!=0},h.Tb=function(){return this.e},h.Ub=function(){return this.Zj()},h.Vb=function(){return this.e-1},h.Wb=function(t){this.$j(t)},I(Eo,"AbstractEList/EListIterator",286),D(355,37,Ia,U8),h.Yj=function(){return mue(this)},h.Qb=function(){throw ue(new Qr)},I(Eo,"AbstractEList/NonResolvingEIterator",355),D(398,286,dg,OO,M4e),h.Rb=function(t){throw ue(new Qr)},h.Yj=function(){var t;try{return t=this.c.Vi(this.e),this.Xj(),this.g=this.e++,t}catch(n){throw n=ms(n),De(n,77)?(this.Xj(),ue(new Dc)):ue(n)}},h.Zj=function(){var t;try{return t=this.c.Vi(--this.e),this.Xj(),this.g=this.e,t}catch(n){throw n=ms(n),De(n,77)?(this.Xj(),ue(new Dc)):ue(n)}},h.Qb=function(){throw ue(new Qr)},h.Wb=function(t){throw ue(new Qr)},I(Eo,"AbstractEList/NonResolvingEListIterator",398),D(2080,70,L5t),h.Ei=function(t,n){var r,s,o,f,g,w,T,C,L,F,z;if(o=n.gc(),o!=0){for(C=l(Gn(this.a,4),129),L=C==null?0:C.length,z=L+o,s=$ce(this,z),F=L-t,F>0&&gu(C,t,s,t+o,F),T=n.Kc(),g=0;gr)throw ue(new yy(t,r));return new Qat(this,t)},h.$b=function(){var t,n;++this.j,t=l(Gn(this.a,4),129),n=t==null?0:t.length,FT(this,null),Woe(this,n,t)},h.Hc=function(t){var n,r,s,o,f;if(n=l(Gn(this.a,4),129),n!=null){if(t!=null){for(s=n,o=0,f=s.length;o=r)throw ue(new yy(t,r));return n[t]},h.dd=function(t){var n,r,s;if(n=l(Gn(this.a,4),129),n!=null){if(t!=null){for(r=0,s=n.length;rr)throw ue(new yy(t,r));return new Xat(this,t)},h.Ti=function(t,n){var r,s,o;if(r=mdt(this),o=r==null?0:r.length,t>=o)throw ue(new rc(h0e+t+gv+o));if(n>=o)throw ue(new rc(f0e+n+gv+o));return s=r[n],t!=n&&(t0&&gu(t,0,n,0,r),n},h.Qc=function(t){var n,r,s;return n=l(Gn(this.a,4),129),s=n==null?0:n.length,s>0&&(t.lengths&&Ss(t,s,null),t};var aAt;I(Eo,"ArrayDelegatingEList",2080),D(1051,37,Ia,Jut),h.Xj=function(){if(this.b.j!=this.f||qe(l(Gn(this.b.a,4),129))!==qe(this.a))throw ue(new Yh)},h.Qb=function(){$A(this),this.a=l(Gn(this.b.a,4),129)},I(Eo,"ArrayDelegatingEList/EIterator",1051),D(722,286,dg,lat,Xat),h.Xj=function(){if(this.b.j!=this.f||qe(l(Gn(this.b.a,4),129))!==qe(this.a))throw ue(new Yh)},h.$j=function(t){fgt(this,t),this.a=l(Gn(this.b.a,4),129)},h.Qb=function(){$A(this),this.a=l(Gn(this.b.a,4),129)},I(Eo,"ArrayDelegatingEList/EListIterator",722),D(1052,355,Ia,Zut),h.Xj=function(){if(this.b.j!=this.f||qe(l(Gn(this.b.a,4),129))!==qe(this.a))throw ue(new Yh)},I(Eo,"ArrayDelegatingEList/NonResolvingEIterator",1052),D(723,398,dg,hat,Qat),h.Xj=function(){if(this.b.j!=this.f||qe(l(Gn(this.b.a,4),129))!==qe(this.a))throw ue(new Yh)},I(Eo,"ArrayDelegatingEList/NonResolvingEListIterator",723),D(615,302,whe,iae),I(Eo,"BasicEList/BasicIndexOutOfBoundsException",615),D(710,66,Bd,vye),h.bd=function(t,n){throw ue(new Qr)},h.Fc=function(t){throw ue(new Qr)},h.cd=function(t,n){throw ue(new Qr)},h.Gc=function(t){throw ue(new Qr)},h.$b=function(){throw ue(new Qr)},h._i=function(t){throw ue(new Qr)},h.Kc=function(){return this.Ii()},h.ed=function(){return this.Ji()},h.fd=function(t){return this.Ki(t)},h.Ti=function(t,n){throw ue(new Qr)},h.Ui=function(t,n){throw ue(new Qr)},h.gd=function(t){throw ue(new Qr)},h.Mc=function(t){throw ue(new Qr)},h.hd=function(t,n){throw ue(new Qr)},I(Eo,"BasicEList/UnmodifiableEList",710),D(721,1,{3:1,20:1,16:1,15:1,61:1,597:1}),h.bd=function(t,n){Phn(this,t,l(n,44))},h.Fc=function(t){return Afn(this,l(t,44))},h.Jc=function(t){Za(this,t)},h.Xb=function(t){return l(Oe(this.c,t),136)},h.Ti=function(t,n){return l(this.c.Ti(t,n),44)},h.Ui=function(t,n){Bhn(this,t,l(n,44))},h.Lc=function(){return new vn(null,new kn(this,16))},h.gd=function(t){return l(this.c.gd(t),44)},h.hd=function(t,n){return Qgn(this,t,l(n,44))},h.jd=function(t){Wm(this,t)},h.Nc=function(){return new kn(this,16)},h.Oc=function(){return new vn(null,new kn(this,16))},h.cd=function(t,n){return this.c.cd(t,n)},h.Gc=function(t){return this.c.Gc(t)},h.$b=function(){this.c.$b()},h.Hc=function(t){return this.c.Hc(t)},h.Ic=function(t){return DN(this.c,t)},h._j=function(){var t,n,r;if(this.d==null){for(this.d=We(BPe,VSe,66,2*this.f+1,0,1),r=this.e,this.f=0,n=this.c.Kc();n.e!=n.i.gc();)t=l(n.Yj(),136),gV(this,t);this.e=r}},h.Fb=function(t){return Rit(this,t)},h.Hb=function(){return W7e(this.c)},h.dd=function(t){return this.c.dd(t)},h.ak=function(){this.c=new zQe(this)},h.dc=function(){return this.f==0},h.Kc=function(){return this.c.Kc()},h.ed=function(){return this.c.ed()},h.fd=function(t){return this.c.fd(t)},h.bk=function(){return fN(this)},h.ck=function(t,n,r){return new Qit(t,n,r)},h.dk=function(){return new O$},h.Mc=function(t){return Eft(this,t)},h.gc=function(){return this.f},h.kd=function(t,n){return new c2(this.c,t,n)},h.Pc=function(){return this.c.Pc()},h.Qc=function(t){return this.c.Qc(t)},h.Ib=function(){return q8e(this.c)},h.e=0,h.f=0,I(Eo,"BasicEMap",721),D(1046,66,Bd,zQe),h.Mi=function(t,n){dun(this,l(n,136))},h.Pi=function(t,n,r){var s;++(s=this,l(n,136),s).a.e},h.Qi=function(t,n){gun(this,l(n,136))},h.Ri=function(t,n,r){dfn(this,l(n,136),l(r,136))},h.Oi=function(t,n){m0t(this.a)},I(Eo,"BasicEMap/1",1046),D(1047,66,Bd,O$),h.aj=function(t){return We(tNn,M5t,621,t,0,1)},I(Eo,"BasicEMap/2",1047),D(1048,q1,Tl,qQe),h.$b=function(){this.a.c.$b()},h.Hc=function(t){return oue(this.a,t)},h.Kc=function(){return this.a.f==0?(jk(),yF.a):new EZe(this.a)},h.Mc=function(t){var n;return n=this.a.f,nV(this.a,t),this.a.f!=n},h.gc=function(){return this.a.f},I(Eo,"BasicEMap/3",1048),D(1049,31,Qy,HQe),h.$b=function(){this.a.c.$b()},h.Hc=function(t){return dmt(this.a,t)},h.Kc=function(){return this.a.f==0?(jk(),yF.a):new CZe(this.a)},h.gc=function(){return this.a.f},I(Eo,"BasicEMap/4",1049),D(1050,q1,Tl,UQe),h.$b=function(){this.a.c.$b()},h.Hc=function(t){var n,r,s,o,f,g,w,T,C;if(this.a.f>0&&De(t,44)&&(this.a._j(),T=l(t,44),w=T.ld(),o=w==null?0:ts(w),f=p4e(this.a,o),n=this.a.d[f],n)){for(r=l(n.g,379),C=n.i,g=0;g"+this.c},h.a=0;var tNn=I(Eo,"BasicEMap/EntryImpl",621);D(546,1,{},DS),I(Eo,"BasicEMap/View",546);var yF;D(783,1,{}),h.Fb=function(t){return Q9e((Cn(),Co),t)},h.Hb=function(){return a8e((Cn(),Co))},h.Ib=function(){return Ob((Cn(),Co))},I(Eo,"ECollections/BasicEmptyUnmodifiableEList",783),D(1348,1,dg,hre),h.Nb=function(t){Qa(this,t)},h.Rb=function(t){throw ue(new Qr)},h.Ob=function(){return!1},h.Sb=function(){return!1},h.Pb=function(){throw ue(new Dc)},h.Tb=function(){return 0},h.Ub=function(){throw ue(new Dc)},h.Vb=function(){return-1},h.Qb=function(){throw ue(new Qr)},h.Wb=function(t){throw ue(new Qr)},I(Eo,"ECollections/BasicEmptyUnmodifiableEList/1",1348),D(1346,783,{20:1,16:1,15:1,61:1},NJe),h.bd=function(t,n){YZe()},h.Fc=function(t){return XZe()},h.cd=function(t,n){return QZe()},h.Gc=function(t){return JZe()},h.$b=function(){ZZe()},h.Hc=function(t){return!1},h.Ic=function(t){return!1},h.Jc=function(t){Za(this,t)},h.Xb=function(t){return xye((Cn(),t)),null},h.dd=function(t){return-1},h.dc=function(){return!0},h.Kc=function(){return this.a},h.ed=function(){return this.a},h.fd=function(t){return this.a},h.Ti=function(t,n){return eet()},h.Ui=function(t,n){tet()},h.Lc=function(){return new vn(null,new kn(this,16))},h.gd=function(t){return net()},h.Mc=function(t){return ret()},h.hd=function(t,n){return iet()},h.gc=function(){return 0},h.jd=function(t){Wm(this,t)},h.Nc=function(){return new kn(this,16)},h.Oc=function(){return new vn(null,new kn(this,16))},h.kd=function(t,n){return Cn(),new c2(Co,t,n)},h.Pc=function(){return v5e((Cn(),Co))},h.Qc=function(t){return Cn(),BA(Co,t)},I(Eo,"ECollections/EmptyUnmodifiableEList",1346),D(1347,783,{20:1,16:1,15:1,61:1,597:1},PJe),h.bd=function(t,n){YZe()},h.Fc=function(t){return XZe()},h.cd=function(t,n){return QZe()},h.Gc=function(t){return JZe()},h.$b=function(){ZZe()},h.Hc=function(t){return!1},h.Ic=function(t){return!1},h.Jc=function(t){Za(this,t)},h.Xb=function(t){return xye((Cn(),t)),null},h.dd=function(t){return-1},h.dc=function(){return!0},h.Kc=function(){return this.a},h.ed=function(){return this.a},h.fd=function(t){return this.a},h.Ti=function(t,n){return eet()},h.Ui=function(t,n){tet()},h.Lc=function(){return new vn(null,new kn(this,16))},h.gd=function(t){return net()},h.Mc=function(t){return ret()},h.hd=function(t,n){return iet()},h.gc=function(){return 0},h.jd=function(t){Wm(this,t)},h.Nc=function(){return new kn(this,16)},h.Oc=function(){return new vn(null,new kn(this,16))},h.kd=function(t,n){return Cn(),new c2(Co,t,n)},h.Pc=function(){return v5e((Cn(),Co))},h.Qc=function(t){return Cn(),BA(Co,t)},h.bk=function(){return Cn(),Cn(),yg},I(Eo,"ECollections/EmptyUnmodifiableEMap",1347);var RPe=Ts(Eo,"Enumerator"),LY;D(288,1,{288:1},gle),h.Fb=function(t){var n;return this===t?!0:De(t,288)?(n=l(t,288),this.f==n.f&&dgn(this.i,n.i)&&zae(this.a,this.f&256?n.f&256?n.a:null:n.f&256?null:n.a)&&zae(this.d,n.d)&&zae(this.g,n.g)&&zae(this.e,n.e)&&F6n(this,n)):!1},h.Hb=function(){return this.f},h.Ib=function(){return Gmt(this)},h.f=0;var oAt=0,cAt=0,uAt=0,lAt=0,jPe=0,$Pe=0,zPe=0,qPe=0,HPe=0,hAt,zM=0,qM=0,fAt=0,dAt=0,MY,UPe;I(Eo,"URI",288),D(1121,45,w6,BJe),h.zc=function(t,n){return l(sc(this,Zr(t),l(n,288)),288)},I(Eo,"URI/URICache",1121),D(506,66,Bd,M$,bH),h.Si=function(){return!0},I(Eo,"UniqueEList",506),D(590,63,gp,uU),I(Eo,"WrappedException",590);var vi=Ts(gf,O5t),O4=Ts(gf,N5t),fl=Ts(gf,P5t),N4=Ts(gf,B5t),u1=Ts(gf,F5t),Uf=Ts(gf,"EClass"),ppe=Ts(gf,"EDataType"),gAt;D(1233,45,w6,FJe),h.xc=function(t){return Da(t)?wu(this,t):dc(zo(this.f,t))},I(gf,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1233);var DY=Ts(gf,"EEnum"),Tp=Ts(gf,R5t),Wo=Ts(gf,j5t),Vf=Ts(gf,$5t),Gf,L3=Ts(gf,z5t),P4=Ts(gf,q5t);D(1042,1,{},ure),h.Ib=function(){return"NIL"},I(gf,"EStructuralFeature/Internal/DynamicValueHolder/1",1042);var pAt;D(1041,45,w6,RJe),h.xc=function(t){return Da(t)?wu(this,t):dc(zo(this.f,t))},I(gf,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1041);var Zu=Ts(gf,H5t),c9=Ts(gf,"EValidator/PatternMatcher"),VPe,GPe,Un,j2,B4,om,bAt,mAt,vAt,cm,$2,um,M3,td,wAt,yAt,Kf,z2,xAt,q2,F4,u7,Do,kAt,TAt,D3,IY=Ts(us,"FeatureMap/Entry");D(545,1,{76:1},Oq),h.Lk=function(){return this.a},h.md=function(){return this.b},I(Vn,"BasicEObjectImpl/1",545),D(1040,1,v0e,cnt),h.Fk=function(t){return Uoe(this.a,this.b,t)},h.Qj=function(){return Uot(this.a,this.b)},h.Wb=function(t){a6e(this.a,this.b,t)},h.Gk=function(){lpn(this.a,this.b)},I(Vn,"BasicEObjectImpl/4",1040),D(2081,1,{114:1}),h.Mk=function(t){this.e=t==0?EAt:We(ka,jn,1,t,5,1)},h.li=function(t){return this.e[t]},h.mi=function(t,n){this.e[t]=n},h.ni=function(t){this.e[t]=null},h.Nk=function(){return this.c},h.Ok=function(){throw ue(new Qr)},h.Pk=function(){throw ue(new Qr)},h.Qk=function(){return this.d},h.Rk=function(){return this.e!=null},h.Sk=function(t){this.c=t},h.Tk=function(t){throw ue(new Qr)},h.Uk=function(t){throw ue(new Qr)},h.Vk=function(t){this.d=t};var EAt;I(Vn,"BasicEObjectImpl/EPropertiesHolderBaseImpl",2081),D(192,2081,{114:1},Sf),h.Ok=function(){return this.a},h.Pk=function(){return this.b},h.Tk=function(t){this.a=t},h.Uk=function(t){this.b=t},I(Vn,"BasicEObjectImpl/EPropertiesHolderImpl",192),D(516,99,U4t,w5),h.uh=function(){return this.f},h.zh=function(){return this.k},h.Bh=function(t,n){this.g=t,this.i=n},h.Dh=function(){return this.j&2?this.$h().Nk():this.ii()},h.Fh=function(){return this.i},h.wh=function(){return(this.j&1)!=0},h.Ph=function(){return this.g},h.Vh=function(){return(this.j&4)!=0},h.$h=function(){return!this.k&&(this.k=new Sf),this.k},h.ci=function(t){this.$h().Sk(t),t?this.j|=2:this.j&=-3},h.ei=function(t){this.$h().Uk(t),t?this.j|=4:this.j&=-5},h.ii=function(){return(wb(),Un).S},h.i=0,h.j=1,I(Vn,"EObjectImpl",516),D(798,516,{110:1,94:1,93:1,58:1,114:1,54:1,99:1},t5e),h.li=function(t){return this.e[t]},h.mi=function(t,n){this.e[t]=n},h.ni=function(t){this.e[t]=null},h.Dh=function(){return this.d},h.Ih=function(t){return vs(this.d,t)},h.Kh=function(){return this.d},h.Oh=function(){return this.e!=null},h.$h=function(){return!this.k&&(this.k=new N$),this.k},h.ci=function(t){this.d=t},h.hi=function(){var t;return this.e==null&&(t=wr(this.d),this.e=t==0?CAt:We(ka,jn,1,t,5,1)),this},h.ji=function(){return 0};var CAt;I(Vn,"DynamicEObjectImpl",798),D(1522,798,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1},kst),h.Fb=function(t){return this===t},h.Hb=function(){return ww(this)},h.ci=function(t){this.d=t,this.b=pP(t,"key"),this.c=pP(t,CL)},h.Bi=function(){var t;return this.a==-1&&(t=rce(this,this.b),this.a=t==null?0:ts(t)),this.a},h.ld=function(){return rce(this,this.b)},h.md=function(){return rce(this,this.c)},h.Ci=function(t){this.a=t},h.Di=function(t){a6e(this,this.b,t)},h.nd=function(t){var n;return n=rce(this,this.c),a6e(this,this.c,t),n},h.a=0,I(Vn,"DynamicEObjectImpl/BasicEMapEntry",1522),D(1523,1,{114:1},N$),h.Mk=function(t){throw ue(new Qr)},h.li=function(t){throw ue(new Qr)},h.mi=function(t,n){throw ue(new Qr)},h.ni=function(t){throw ue(new Qr)},h.Nk=function(){throw ue(new Qr)},h.Ok=function(){return this.a},h.Pk=function(){return this.b},h.Qk=function(){return this.c},h.Rk=function(){throw ue(new Qr)},h.Sk=function(t){throw ue(new Qr)},h.Tk=function(t){this.a=t},h.Uk=function(t){this.b=t},h.Vk=function(t){this.c=t},I(Vn,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1523),D(519,158,{110:1,94:1,93:1,598:1,155:1,58:1,114:1,54:1,99:1,519:1,158:1,119:1,120:1},OI),h.Ah=function(t){return Dxe(this,t)},h.Lh=function(t,n,r){var s;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.d;case 2:return r?(!this.b&&(this.b=new lh((En(),Do),Qc,this)),this.b):(!this.b&&(this.b=new lh((En(),Do),Qc,this)),fN(this.b));case 3:return Yot(this);case 4:return!this.a&&(this.a=new Qs(sm,this,4)),this.a;case 5:return!this.c&&(this.c=new q5(sm,this,5)),this.c}return rf(this,t-wr((En(),j2)),Mn((s=l(Gn(this,16),29),s||j2),t),n,r)},h.Sh=function(t,n,r){var s,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Fu(this.Ab,t,r);case 3:return this.Cb&&(r=(o=this.Db>>16,o>=0?Dxe(this,r):this.Cb.Th(this,-1-o,null,r))),m5e(this,l(t,155),r)}return f=l(Mn((s=l(Gn(this,16),29),s||(En(),j2)),n),69),f.wk().zk(this,Ku(this),n-wr((En(),j2)),t,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r);case 2:return!this.b&&(this.b=new lh((En(),Do),Qc,this)),Jq(this.b,t,r);case 3:return m5e(this,null,r);case 4:return!this.a&&(this.a=new Qs(sm,this,4)),ko(this.a,t,r)}return o=l(Mn((s=l(Gn(this,16),29),s||(En(),j2)),n),69),o.wk().Ak(this,Ku(this),n-wr((En(),j2)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return!!this.b&&this.b.f!=0;case 3:return!!Yot(this);case 4:return!!this.a&&this.a.i!=0;case 5:return!!this.c&&this.c.i!=0}return tf(this,t-wr((En(),j2)),Mn((n=l(Gn(this,16),29),n||j2),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:egn(this,Zr(n));return;case 2:!this.b&&(this.b=new lh((En(),Do),Qc,this)),NU(this.b,n);return;case 3:Nbt(this,l(n,155));return;case 4:!this.a&&(this.a=new Qs(sm,this,4)),$r(this.a),!this.a&&(this.a=new Qs(sm,this,4)),Ls(this.a,l(n,16));return;case 5:!this.c&&(this.c=new q5(sm,this,5)),$r(this.c),!this.c&&(this.c=new q5(sm,this,5)),Ls(this.c,l(n,16));return}cf(this,t-wr((En(),j2)),Mn((r=l(Gn(this,16),29),r||j2),t),n)},h.ii=function(){return En(),j2},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:I7e(this,null);return;case 2:!this.b&&(this.b=new lh((En(),Do),Qc,this)),this.b.c.$b();return;case 3:Nbt(this,null);return;case 4:!this.a&&(this.a=new Qs(sm,this,4)),$r(this.a);return;case 5:!this.c&&(this.c=new q5(sm,this,5)),$r(this.c);return}of(this,t-wr((En(),j2)),Mn((n=l(Gn(this,16),29),n||j2),t))},h.Ib=function(){return R1t(this)},h.d=null,I(Vn,"EAnnotationImpl",519),D(141,721,GSe,yl),h.Gi=function(t,n){vhn(this,t,l(n,44))},h.Wk=function(t,n){return y0n(this,l(t,44),n)},h.$i=function(t){return l(l(this.c,71).$i(t),136)},h.Ii=function(){return l(this.c,71).Ii()},h.Ji=function(){return l(this.c,71).Ji()},h.Ki=function(t){return l(this.c,71).Ki(t)},h.Xk=function(t,n){return Jq(this,t,n)},h.Fk=function(t){return l(this.c,79).Fk(t)},h.ak=function(){},h.Qj=function(){return l(this.c,79).Qj()},h.ck=function(t,n,r){var s;return s=l(Ah(this.b).wi().si(this.b),136),s.Ci(t),s.Di(n),s.nd(r),s},h.dk=function(){return new $we(this)},h.Wb=function(t){NU(this,t)},h.Gk=function(){l(this.c,79).Gk()},I(us,"EcoreEMap",141),D(165,141,GSe,lh),h._j=function(){var t,n,r,s,o,f;if(this.d==null){for(f=We(BPe,VSe,66,2*this.f+1,0,1),r=this.c.Kc();r.e!=r.i.gc();)n=l(r.Yj(),136),s=n.Bi(),o=(s&Ni)%f.length,t=f[o],!t&&(t=f[o]=new $we(this)),t.Fc(n);this.d=f}},I(Vn,"EAnnotationImpl/1",165),D(292,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,481:1,54:1,99:1,158:1,292:1,119:1,120:1}),h.Lh=function(t,n,r){var s,o;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return bt(this.s);case 5:return bt(this.t);case 6:return Hn(),!!this.Jk();case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q}return rf(this,t-wr(this.ii()),Mn((s=l(Gn(this,16),29),s||this.ii()),t),n,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r);case 9:return noe(this,r)}return o=l(Mn((s=l(Gn(this,16),29),s||this.ii()),n),69),o.wk().Ak(this,Ku(this),n-wr(this.ii()),t,r)},h.Wh=function(t){var n,r;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&_w(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&_w(this.q).i==0)}return tf(this,t-wr(this.ii()),Mn((n=l(Gn(this,16),29),n||this.ii()),t))},h.bi=function(t,n){var r,s;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:this.ui(Zr(n));return;case 2:m2(this,Ft(Pt(n)));return;case 3:v2(this,Ft(Pt(n)));return;case 4:d2(this,l(n,17).a);return;case 5:this.Zk(l(n,17).a);return;case 8:ev(this,l(n,142));return;case 9:s=$1(this,l(n,89),null),s&&s.oj();return}cf(this,t-wr(this.ii()),Mn((r=l(Gn(this,16),29),r||this.ii()),t),n)},h.ii=function(){return En(),TAt},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:this.ui(null);return;case 2:m2(this,!0);return;case 3:v2(this,!0);return;case 4:d2(this,0);return;case 5:this.Zk(1);return;case 8:ev(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return}of(this,t-wr(this.ii()),Mn((n=l(Gn(this,16),29),n||this.ii()),t))},h.pi=function(){Of(this),this.Bb|=1},h.Hk=function(){return Of(this)},h.Ik=function(){return this.t},h.Jk=function(){var t;return t=this.t,t>1||t==-1},h.Si=function(){return(this.Bb&512)!=0},h.Yk=function(t,n){return C8e(this,t,n)},h.Zk=function(t){Oy(this,t)},h.Ib=function(){return q9e(this)},h.s=0,h.t=1,I(Vn,"ETypedElementImpl",292),D(462,292,{110:1,94:1,93:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,462:1,292:1,119:1,120:1,692:1}),h.Ah=function(t){return _gt(this,t)},h.Lh=function(t,n,r){var s,o;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return bt(this.s);case 5:return bt(this.t);case 6:return Hn(),!!this.Jk();case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return Hn(),!!(this.Bb&b0);case 11:return Hn(),!!(this.Bb&a4);case 12:return Hn(),!!(this.Bb&Zy);case 13:return this.j;case 14:return KT(this);case 15:return Hn(),!!(this.Bb&Cl);case 16:return Hn(),!!(this.Bb&_d);case 17:return Cy(this)}return rf(this,t-wr(this.ii()),Mn((s=l(Gn(this,16),29),s||this.ii()),t),n,r)},h.Sh=function(t,n,r){var s,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Fu(this.Ab,t,r);case 17:return this.Cb&&(r=(o=this.Db>>16,o>=0?_gt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,17,r)}return f=l(Mn((s=l(Gn(this,16),29),s||this.ii()),n),69),f.wk().zk(this,Ku(this),n-wr(this.ii()),t,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r);case 9:return noe(this,r);case 17:return Nh(this,null,17,r)}return o=l(Mn((s=l(Gn(this,16),29),s||this.ii()),n),69),o.wk().Ak(this,Ku(this),n-wr(this.ii()),t,r)},h.Wh=function(t){var n,r;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&_w(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&_w(this.q).i==0);case 10:return(this.Bb&b0)==0;case 11:return(this.Bb&a4)!=0;case 12:return(this.Bb&Zy)!=0;case 13:return this.j!=null;case 14:return KT(this)!=null;case 15:return(this.Bb&Cl)!=0;case 16:return(this.Bb&_d)!=0;case 17:return!!Cy(this)}return tf(this,t-wr(this.ii()),Mn((n=l(Gn(this,16),29),n||this.ii()),t))},h.bi=function(t,n){var r,s;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:Loe(this,Zr(n));return;case 2:m2(this,Ft(Pt(n)));return;case 3:v2(this,Ft(Pt(n)));return;case 4:d2(this,l(n,17).a);return;case 5:this.Zk(l(n,17).a);return;case 8:ev(this,l(n,142));return;case 9:s=$1(this,l(n,89),null),s&&s.oj();return;case 10:MT(this,Ft(Pt(n)));return;case 11:OT(this,Ft(Pt(n)));return;case 12:DT(this,Ft(Pt(n)));return;case 13:mye(this,Zr(n));return;case 15:IT(this,Ft(Pt(n)));return;case 16:NT(this,Ft(Pt(n)));return}cf(this,t-wr(this.ii()),Mn((r=l(Gn(this,16),29),r||this.ii()),t),n)},h.ii=function(){return En(),kAt},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,90)&&Uy(Gl(l(this.Cb,90)),4),Bu(this,null);return;case 2:m2(this,!0);return;case 3:v2(this,!0);return;case 4:d2(this,0);return;case 5:this.Zk(1);return;case 8:ev(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return;case 10:MT(this,!0);return;case 11:OT(this,!1);return;case 12:DT(this,!1);return;case 13:this.i=null,AU(this,null);return;case 15:IT(this,!1);return;case 16:NT(this,!1);return}of(this,t-wr(this.ii()),Mn((n=l(Gn(this,16),29),n||this.ii()),t))},h.pi=function(){Xk(ac((kl(),no),this)),Of(this),this.Bb|=1},h.pk=function(){return this.f},h.ik=function(){return KT(this)},h.qk=function(){return Cy(this)},h.uk=function(){return null},h.$k=function(){return this.k},h.Lj=function(){return this.n},h.vk=function(){return kV(this)},h.wk=function(){var t,n,r,s,o,f,g,w,T;return this.p||(r=Cy(this),(r.i==null&&Sd(r),r.i).length,s=this.uk(),s&&wr(Cy(s)),o=Of(this),g=o.kk(),t=g?g.i&1?g==th?Ps:g==Ur?to:g==j4?LE:g==Oa?ra:g==hm?l3:g==d7?h3:g==_l?$x:BL:g:null,n=KT(this),w=o.ik(),g5n(this),this.Bb&_d&&((f=Rxe((kl(),no),r))&&f!=this||(f=ix(ac(no,this))))?this.p=new lnt(this,f):this.Jk()?this.al()?s?this.Bb&Cl?t?this.bl()?this.p=new zm(47,t,this,s):this.p=new zm(5,t,this,s):this.bl()?this.p=new Gm(46,this,s):this.p=new Gm(4,this,s):t?this.bl()?this.p=new zm(49,t,this,s):this.p=new zm(7,t,this,s):this.bl()?this.p=new Gm(48,this,s):this.p=new Gm(6,this,s):this.Bb&Cl?t?t==mv?this.p=new s2(50,iAt,this):this.bl()?this.p=new s2(43,t,this):this.p=new s2(1,t,this):this.bl()?this.p=new o2(42,this):this.p=new o2(0,this):t?t==mv?this.p=new s2(41,iAt,this):this.bl()?this.p=new s2(45,t,this):this.p=new s2(3,t,this):this.bl()?this.p=new o2(44,this):this.p=new o2(2,this):De(o,156)?t==IY?this.p=new o2(40,this):this.Bb&512?this.Bb&Cl?t?this.p=new s2(9,t,this):this.p=new o2(8,this):t?this.p=new s2(11,t,this):this.p=new o2(10,this):this.Bb&Cl?t?this.p=new s2(13,t,this):this.p=new o2(12,this):t?this.p=new s2(15,t,this):this.p=new o2(14,this):s?(T=s.t,T>1||T==-1?this.bl()?this.Bb&Cl?t?this.p=new zm(25,t,this,s):this.p=new Gm(24,this,s):t?this.p=new zm(27,t,this,s):this.p=new Gm(26,this,s):this.Bb&Cl?t?this.p=new zm(29,t,this,s):this.p=new Gm(28,this,s):t?this.p=new zm(31,t,this,s):this.p=new Gm(30,this,s):this.bl()?this.Bb&Cl?t?this.p=new zm(33,t,this,s):this.p=new Gm(32,this,s):t?this.p=new zm(35,t,this,s):this.p=new Gm(34,this,s):this.Bb&Cl?t?this.p=new zm(37,t,this,s):this.p=new Gm(36,this,s):t?this.p=new zm(39,t,this,s):this.p=new Gm(38,this,s)):this.bl()?this.Bb&Cl?t?this.p=new s2(17,t,this):this.p=new o2(16,this):t?this.p=new s2(19,t,this):this.p=new o2(18,this):this.Bb&Cl?t?this.p=new s2(21,t,this):this.p=new o2(20,this):t?this.p=new s2(23,t,this):this.p=new o2(22,this):this._k()?this.bl()?this.p=new Jit(l(o,29),this,s):this.p=new i6e(l(o,29),this,s):De(o,156)?t==IY?this.p=new o2(40,this):this.Bb&Cl?t?this.p=new Qst(n,w,this,(cue(),g==Ur?ZPe:g==th?WPe:g==hm?eBe:g==j4?JPe:g==Oa?QPe:g==d7?tBe:g==_l?YPe:g==xf?XPe:vpe)):this.p=new lot(l(o,156),n,w,this):t?this.p=new Xst(n,w,this,(cue(),g==Ur?ZPe:g==th?WPe:g==hm?eBe:g==j4?JPe:g==Oa?QPe:g==d7?tBe:g==_l?YPe:g==xf?XPe:vpe)):this.p=new uot(l(o,156),n,w,this):this.al()?s?this.Bb&Cl?this.bl()?this.p=new est(l(o,29),this,s):this.p=new H4e(l(o,29),this,s):this.bl()?this.p=new Zit(l(o,29),this,s):this.p=new Nae(l(o,29),this,s):this.Bb&Cl?this.bl()?this.p=new Xrt(l(o,29),this):this.p=new r4e(l(o,29),this):this.bl()?this.p=new Yrt(l(o,29),this):this.p=new xae(l(o,29),this):this.bl()?s?this.Bb&Cl?this.p=new tst(l(o,29),this,s):this.p=new z4e(l(o,29),this,s):this.Bb&Cl?this.p=new Qrt(l(o,29),this):this.p=new i4e(l(o,29),this):s?this.Bb&Cl?this.p=new nst(l(o,29),this,s):this.p=new q4e(l(o,29),this,s):this.Bb&Cl?this.p=new Jrt(l(o,29),this):this.p=new pH(l(o,29),this)),this.p},h.rk=function(){return(this.Bb&b0)!=0},h._k=function(){return!1},h.al=function(){return!1},h.sk=function(){return(this.Bb&_d)!=0},h.xk=function(){return ice(this)},h.bl=function(){return!1},h.tk=function(){return(this.Bb&Cl)!=0},h.cl=function(t){this.k=t},h.ui=function(t){Loe(this,t)},h.Ib=function(){return HV(this)},h.e=!1,h.n=0,I(Vn,"EStructuralFeatureImpl",462),D(331,462,{110:1,94:1,93:1,35:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,331:1,158:1,462:1,292:1,119:1,120:1,692:1},tse),h.Lh=function(t,n,r){var s,o;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return bt(this.s);case 5:return bt(this.t);case 6:return Hn(),!!B9e(this);case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return Hn(),!!(this.Bb&b0);case 11:return Hn(),!!(this.Bb&a4);case 12:return Hn(),!!(this.Bb&Zy);case 13:return this.j;case 14:return KT(this);case 15:return Hn(),!!(this.Bb&Cl);case 16:return Hn(),!!(this.Bb&_d);case 17:return Cy(this);case 18:return Hn(),!!(this.Bb&nu);case 19:return n?Ace(this):dlt(this)}return rf(this,t-wr((En(),B4)),Mn((s=l(Gn(this,16),29),s||B4),t),n,r)},h.Wh=function(t){var n,r;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return B9e(this);case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&_w(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&_w(this.q).i==0);case 10:return(this.Bb&b0)==0;case 11:return(this.Bb&a4)!=0;case 12:return(this.Bb&Zy)!=0;case 13:return this.j!=null;case 14:return KT(this)!=null;case 15:return(this.Bb&Cl)!=0;case 16:return(this.Bb&_d)!=0;case 17:return!!Cy(this);case 18:return(this.Bb&nu)!=0;case 19:return!!dlt(this)}return tf(this,t-wr((En(),B4)),Mn((n=l(Gn(this,16),29),n||B4),t))},h.bi=function(t,n){var r,s;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:Loe(this,Zr(n));return;case 2:m2(this,Ft(Pt(n)));return;case 3:v2(this,Ft(Pt(n)));return;case 4:d2(this,l(n,17).a);return;case 5:AZe(this,l(n,17).a);return;case 8:ev(this,l(n,142));return;case 9:s=$1(this,l(n,89),null),s&&s.oj();return;case 10:MT(this,Ft(Pt(n)));return;case 11:OT(this,Ft(Pt(n)));return;case 12:DT(this,Ft(Pt(n)));return;case 13:mye(this,Zr(n));return;case 15:IT(this,Ft(Pt(n)));return;case 16:NT(this,Ft(Pt(n)));return;case 18:eue(this,Ft(Pt(n)));return}cf(this,t-wr((En(),B4)),Mn((r=l(Gn(this,16),29),r||B4),t),n)},h.ii=function(){return En(),B4},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,90)&&Uy(Gl(l(this.Cb,90)),4),Bu(this,null);return;case 2:m2(this,!0);return;case 3:v2(this,!0);return;case 4:d2(this,0);return;case 5:this.b=0,Oy(this,1);return;case 8:ev(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return;case 10:MT(this,!0);return;case 11:OT(this,!1);return;case 12:DT(this,!1);return;case 13:this.i=null,AU(this,null);return;case 15:IT(this,!1);return;case 16:NT(this,!1);return;case 18:eue(this,!1);return}of(this,t-wr((En(),B4)),Mn((n=l(Gn(this,16),29),n||B4),t))},h.pi=function(){Ace(this),Xk(ac((kl(),no),this)),Of(this),this.Bb|=1},h.Jk=function(){return B9e(this)},h.Yk=function(t,n){return this.b=0,this.a=null,C8e(this,t,n)},h.Zk=function(t){AZe(this,t)},h.Ib=function(){var t;return this.Db&64?HV(this):(t=new Af(HV(this)),t.a+=" (iD: ",t2(t,(this.Bb&nu)!=0),t.a+=")",t.a)},h.b=0,I(Vn,"EAttributeImpl",331),D(364,448,{110:1,94:1,93:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,364:1,158:1,119:1,120:1,691:1}),h.dl=function(t){return t.Dh()==this},h.Ah=function(t){return Oue(this,t)},h.Bh=function(t,n){this.w=null,this.Db=n<<16|this.Db&255,this.Cb=t},h.Lh=function(t,n,r){var s;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return Ww(this);case 4:return this.ik();case 5:return this.F;case 6:return n?Ah(this):Zk(this);case 7:return!this.A&&(this.A=new bl(Zu,this,7)),this.A}return rf(this,t-wr(this.ii()),Mn((s=l(Gn(this,16),29),s||this.ii()),t),n,r)},h.Sh=function(t,n,r){var s,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Fu(this.Ab,t,r);case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?Oue(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,6,r)}return f=l(Mn((s=l(Gn(this,16),29),s||this.ii()),n),69),f.wk().zk(this,Ku(this),n-wr(this.ii()),t,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r);case 6:return Nh(this,null,6,r);case 7:return!this.A&&(this.A=new bl(Zu,this,7)),ko(this.A,t,r)}return o=l(Mn((s=l(Gn(this,16),29),s||this.ii()),n),69),o.wk().Ak(this,Ku(this),n-wr(this.ii()),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!Ww(this);case 4:return this.ik()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!Zk(this);case 7:return!!this.A&&this.A.i!=0}return tf(this,t-wr(this.ii()),Mn((n=l(Gn(this,16),29),n||this.ii()),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:UH(this,Zr(n));return;case 2:oae(this,Zr(n));return;case 5:eE(this,Zr(n));return;case 7:!this.A&&(this.A=new bl(Zu,this,7)),$r(this.A),!this.A&&(this.A=new bl(Zu,this,7)),Ls(this.A,l(n,16));return}cf(this,t-wr(this.ii()),Mn((r=l(Gn(this,16),29),r||this.ii()),t),n)},h.ii=function(){return En(),bAt},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,184)&&(l(this.Cb,184).tb=null),Bu(this,null);return;case 2:_T(this,null),fT(this,this.D);return;case 5:eE(this,null);return;case 7:!this.A&&(this.A=new bl(Zu,this,7)),$r(this.A);return}of(this,t-wr(this.ii()),Mn((n=l(Gn(this,16),29),n||this.ii()),t))},h.hk=function(){var t;return this.G==-1&&(this.G=(t=Ah(this),t?x2(t.vi(),this):-1)),this.G},h.ik=function(){return null},h.jk=function(){return Ah(this)},h.el=function(){return this.v},h.kk=function(){return Ww(this)},h.lk=function(){return this.D!=null?this.D:this.B},h.mk=function(){return this.F},h.fk=function(t){return Tle(this,t)},h.fl=function(t){this.v=t},h.gl=function(t){Qft(this,t)},h.hl=function(t){this.C=t},h.ui=function(t){UH(this,t)},h.Ib=function(){return JU(this)},h.C=null,h.D=null,h.G=-1,I(Vn,"EClassifierImpl",364),D(90,364,{110:1,94:1,93:1,29:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,90:1,364:1,158:1,482:1,119:1,120:1,691:1},vz),h.dl=function(t){return r0n(this,t.Dh())},h.Lh=function(t,n,r){var s;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return Ww(this);case 4:return null;case 5:return this.F;case 6:return n?Ah(this):Zk(this);case 7:return!this.A&&(this.A=new bl(Zu,this,7)),this.A;case 8:return Hn(),!!(this.Bb&256);case 9:return Hn(),!!(this.Bb&512);case 10:return pc(this);case 11:return!this.q&&(this.q=new nt(Vf,this,11,10)),this.q;case 12:return p6(this);case 13:return ZA(this);case 14:return ZA(this),this.r;case 15:return p6(this),this.k;case 16:return C9e(this);case 17:return _le(this);case 18:return Sd(this);case 19:return NV(this);case 20:return p6(this),this.o;case 21:return!this.s&&(this.s=new nt(fl,this,21,17)),this.s;case 22:return fu(this);case 23:return dle(this)}return rf(this,t-wr((En(),om)),Mn((s=l(Gn(this,16),29),s||om),t),n,r)},h.Sh=function(t,n,r){var s,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Fu(this.Ab,t,r);case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?Oue(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,6,r);case 11:return!this.q&&(this.q=new nt(Vf,this,11,10)),Fu(this.q,t,r);case 21:return!this.s&&(this.s=new nt(fl,this,21,17)),Fu(this.s,t,r)}return f=l(Mn((s=l(Gn(this,16),29),s||(En(),om)),n),69),f.wk().zk(this,Ku(this),n-wr((En(),om)),t,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r);case 6:return Nh(this,null,6,r);case 7:return!this.A&&(this.A=new bl(Zu,this,7)),ko(this.A,t,r);case 11:return!this.q&&(this.q=new nt(Vf,this,11,10)),ko(this.q,t,r);case 21:return!this.s&&(this.s=new nt(fl,this,21,17)),ko(this.s,t,r);case 22:return ko(fu(this),t,r)}return o=l(Mn((s=l(Gn(this,16),29),s||(En(),om)),n),69),o.wk().Ak(this,Ku(this),n-wr((En(),om)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!Ww(this);case 4:return!1;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!Zk(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)!=0;case 9:return(this.Bb&512)!=0;case 10:return!!this.u&&fu(this.u.a).i!=0&&!(this.n&&kue(this.n));case 11:return!!this.q&&this.q.i!=0;case 12:return p6(this).i!=0;case 13:return ZA(this).i!=0;case 14:return ZA(this),this.r.i!=0;case 15:return p6(this),this.k.i!=0;case 16:return C9e(this).i!=0;case 17:return _le(this).i!=0;case 18:return Sd(this).i!=0;case 19:return NV(this).i!=0;case 20:return p6(this),!!this.o;case 21:return!!this.s&&this.s.i!=0;case 22:return!!this.n&&kue(this.n);case 23:return dle(this).i!=0}return tf(this,t-wr((En(),om)),Mn((n=l(Gn(this,16),29),n||om),t))},h.Zh=function(t){var n;return n=this.i==null||this.q&&this.q.i!=0?null:pP(this,t),n||oTe(this,t)},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:UH(this,Zr(n));return;case 2:oae(this,Zr(n));return;case 5:eE(this,Zr(n));return;case 7:!this.A&&(this.A=new bl(Zu,this,7)),$r(this.A),!this.A&&(this.A=new bl(Zu,this,7)),Ls(this.A,l(n,16));return;case 8:S8e(this,Ft(Pt(n)));return;case 9:_8e(this,Ft(Pt(n)));return;case 10:nL(pc(this)),Ls(pc(this),l(n,16));return;case 11:!this.q&&(this.q=new nt(Vf,this,11,10)),$r(this.q),!this.q&&(this.q=new nt(Vf,this,11,10)),Ls(this.q,l(n,16));return;case 21:!this.s&&(this.s=new nt(fl,this,21,17)),$r(this.s),!this.s&&(this.s=new nt(fl,this,21,17)),Ls(this.s,l(n,16));return;case 22:$r(fu(this)),Ls(fu(this),l(n,16));return}cf(this,t-wr((En(),om)),Mn((r=l(Gn(this,16),29),r||om),t),n)},h.ii=function(){return En(),om},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,184)&&(l(this.Cb,184).tb=null),Bu(this,null);return;case 2:_T(this,null),fT(this,this.D);return;case 5:eE(this,null);return;case 7:!this.A&&(this.A=new bl(Zu,this,7)),$r(this.A);return;case 8:S8e(this,!1);return;case 9:_8e(this,!1);return;case 10:this.u&&nL(this.u);return;case 11:!this.q&&(this.q=new nt(Vf,this,11,10)),$r(this.q);return;case 21:!this.s&&(this.s=new nt(fl,this,21,17)),$r(this.s);return;case 22:this.n&&$r(this.n);return}of(this,t-wr((En(),om)),Mn((n=l(Gn(this,16),29),n||om),t))},h.pi=function(){var t,n;if(p6(this),ZA(this),C9e(this),_le(this),Sd(this),NV(this),dle(this),lA(Ldn(Gl(this))),this.s)for(t=0,n=this.s.i;t=0;--n)Oe(this,n);return Q8e(this,t)},h.Gk=function(){$r(this)},h.Zi=function(t,n){return wft(this,t,n)},I(us,"EcoreEList",632),D(505,632,Ec,VO),h.Li=function(){return!1},h.Lj=function(){return this.c},h.Mj=function(){return!1},h.ol=function(){return!0},h.Si=function(){return!0},h.Wi=function(t,n){return n},h.Yi=function(){return!1},h.c=0,I(us,"EObjectEList",505),D(83,505,Ec,Qs),h.Mj=function(){return!0},h.ml=function(){return!1},h.al=function(){return!0},I(us,"EObjectContainmentEList",83),D(555,83,Ec,Hq),h.Ni=function(){this.b=!0},h.Qj=function(){return this.b},h.Gk=function(){var t;$r(this),ch(this.e)?(t=this.b,this.b=!1,Bi(this.e,new l0(this.e,2,this.c,t,!1))):this.b=!1},h.b=!1,I(us,"EObjectContainmentEList/Unsettable",555),D(1161,555,Ec,Wst),h.Ti=function(t,n){var r,s;return r=l(LA(this,t,n),89),ch(this.e)&&Tk(this,new dN(this.a,7,(En(),mAt),bt(n),(s=r.c,De(s,90)?l(s,29):Kf),t)),r},h.Uj=function(t,n){return X5n(this,l(t,89),n)},h.Vj=function(t,n){return Y5n(this,l(t,89),n)},h.Wj=function(t,n,r){return Z8n(this,l(t,89),l(n,89),r)},h.Ij=function(t,n,r,s,o){switch(t){case 3:return iA(this,t,n,r,s,this.i>1);case 5:return iA(this,t,n,r,s,this.i-l(r,15).gc()>0);default:return new rp(this.e,t,this.c,n,r,s,!0)}},h.Tj=function(){return!0},h.Qj=function(){return kue(this)},h.Gk=function(){$r(this)},I(Vn,"EClassImpl/1",1161),D(1175,1174,USe),h.dj=function(t){var n,r,s,o,f,g,w;if(r=t.gj(),r!=8){if(s=D6n(t),s==0)switch(r){case 1:case 9:{w=t.kj(),w!=null&&(n=Gl(l(w,482)),!n.c&&(n.c=new Zd),fU(n.c,t.jj())),g=t.ij(),g!=null&&(o=l(g,482),o.Bb&1||(n=Gl(o),!n.c&&(n.c=new Zd),zr(n.c,l(t.jj(),29))));break}case 3:{g=t.ij(),g!=null&&(o=l(g,482),o.Bb&1||(n=Gl(o),!n.c&&(n.c=new Zd),zr(n.c,l(t.jj(),29))));break}case 5:{if(g=t.ij(),g!=null)for(f=l(g,16).Kc();f.Ob();)o=l(f.Pb(),482),o.Bb&1||(n=Gl(o),!n.c&&(n.c=new Zd),zr(n.c,l(t.jj(),29)));break}case 4:{w=t.kj(),w!=null&&(o=l(w,482),o.Bb&1||(n=Gl(o),!n.c&&(n.c=new Zd),fU(n.c,t.jj())));break}case 6:{if(w=t.kj(),w!=null)for(f=l(w,16).Kc();f.Ob();)o=l(f.Pb(),482),o.Bb&1||(n=Gl(o),!n.c&&(n.c=new Zd),fU(n.c,t.jj()));break}}this.ql(s)}},h.ql=function(t){ymt(this,t)},h.b=63,I(Vn,"ESuperAdapter",1175),D(1176,1175,USe,GQe),h.ql=function(t){Uy(this,t)},I(Vn,"EClassImpl/10",1176),D(1165,710,Ec),h.Ei=function(t,n){return Vue(this,t,n)},h.Fi=function(t){return ugt(this,t)},h.Gi=function(t,n){$N(this,t,n)},h.Hi=function(t){uN(this,t)},h.$i=function(t){return n7e(this,t)},h.Xi=function(t,n){return sce(this,t,n)},h.Wk=function(t,n){throw ue(new Qr)},h.Ii=function(){return new U8(this)},h.Ji=function(){return new OO(this)},h.Ki=function(t){return CN(this,t)},h.Xk=function(t,n){throw ue(new Qr)},h.Fk=function(t){return this},h.Qj=function(){return this.i!=0},h.Wb=function(t){throw ue(new Qr)},h.Gk=function(){throw ue(new Qr)},I(us,"EcoreEList/UnmodifiableEList",1165),D(328,1165,Ec,B5),h.Yi=function(){return!1},I(us,"EcoreEList/UnmodifiableEList/FastCompare",328),D(1168,328,Ec,U0t),h.dd=function(t){var n,r,s;if(De(t,179)&&(n=l(t,179),r=n.Lj(),r!=-1)){for(s=this.i;r4)if(this.fk(t)){if(this.al()){if(s=l(t,54),r=s.Eh(),w=r==this.b&&(this.ml()?s.yh(s.Fh(),l(Mn(il(this.b),this.Lj()).Hk(),29).kk())==jo(l(Mn(il(this.b),this.Lj()),19)).n:-1-s.Fh()==this.Lj()),this.nl()&&!w&&!r&&s.Jh()){for(o=0;o1||s==-1)):!1},h.ml=function(){var t,n,r;return n=Mn(il(this.b),this.Lj()),De(n,102)?(t=l(n,19),r=jo(t),!!r):!1},h.nl=function(){var t,n;return n=Mn(il(this.b),this.Lj()),De(n,102)?(t=l(n,19),(t.Bb&Lo)!=0):!1},h.dd=function(t){var n,r,s,o;if(s=this.zj(t),s>=0)return s;if(this.ol()){for(r=0,o=this.Ej();r=0;--t)CP(this,t,this.xj(t));return this.Fj()},h.Qc=function(t){var n;if(this.nl())for(n=this.Ej()-1;n>=0;--n)CP(this,n,this.xj(n));return this.Gj(t)},h.Gk=function(){nL(this)},h.Zi=function(t,n){return Xlt(this,t,n)},I(us,"DelegatingEcoreEList",756),D(1171,756,WSe,lit),h.qj=function(t,n){_fn(this,t,l(n,29))},h.rj=function(t){phn(this,l(t,29))},h.xj=function(t){var n,r;return n=l(Oe(fu(this.a),t),89),r=n.c,De(r,90)?l(r,29):(En(),Kf)},h.Cj=function(t){var n,r;return n=l(Ky(fu(this.a),t),89),r=n.c,De(r,90)?l(r,29):(En(),Kf)},h.Dj=function(t,n){return E7n(this,t,l(n,29))},h.Li=function(){return!1},h.Ij=function(t,n,r,s,o){return null},h.sj=function(){return new YQe(this)},h.tj=function(){$r(fu(this.a))},h.uj=function(t){return $1t(this,t)},h.vj=function(t){var n,r;for(r=t.Kc();r.Ob();)if(n=r.Pb(),!$1t(this,n))return!1;return!0},h.wj=function(t){var n,r,s;if(De(t,15)&&(s=l(t,15),s.gc()==fu(this.a).i)){for(n=s.Kc(),r=new ar(this);n.Ob();)if(qe(n.Pb())!==qe(dr(r)))return!1;return!0}return!1},h.yj=function(){var t,n,r,s,o;for(r=1,n=new ar(fu(this.a));n.e!=n.i.gc();)t=l(dr(n),89),s=(o=t.c,De(o,90)?l(o,29):(En(),Kf)),r=31*r+(s?ww(s):0);return r},h.zj=function(t){var n,r,s,o;for(s=0,r=new ar(fu(this.a));r.e!=r.i.gc();){if(n=l(dr(r),89),qe(t)===qe((o=n.c,De(o,90)?l(o,29):(En(),Kf))))return s;++s}return-1},h.Aj=function(){return fu(this.a).i==0},h.Bj=function(){return null},h.Ej=function(){return fu(this.a).i},h.Fj=function(){var t,n,r,s,o,f;for(f=fu(this.a).i,o=We(ka,jn,1,f,5,1),r=0,n=new ar(fu(this.a));n.e!=n.i.gc();)t=l(dr(n),89),o[r++]=(s=t.c,De(s,90)?l(s,29):(En(),Kf));return o},h.Gj=function(t){var n,r,s,o,f,g,w;for(w=fu(this.a).i,t.lengthw&&Ss(t,w,null),s=0,r=new ar(fu(this.a));r.e!=r.i.gc();)n=l(dr(r),89),f=(g=n.c,De(g,90)?l(g,29):(En(),Kf)),Ss(t,s++,f);return t},h.Hj=function(){var t,n,r,s,o;for(o=new e2,o.a+="[",t=fu(this.a),n=0,s=fu(this.a).i;n>16,o>=0?Oue(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,6,r);case 9:return!this.a&&(this.a=new nt(Tp,this,9,5)),Fu(this.a,t,r)}return f=l(Mn((s=l(Gn(this,16),29),s||(En(),cm)),n),69),f.wk().zk(this,Ku(this),n-wr((En(),cm)),t,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r);case 6:return Nh(this,null,6,r);case 7:return!this.A&&(this.A=new bl(Zu,this,7)),ko(this.A,t,r);case 9:return!this.a&&(this.a=new nt(Tp,this,9,5)),ko(this.a,t,r)}return o=l(Mn((s=l(Gn(this,16),29),s||(En(),cm)),n),69),o.wk().Ak(this,Ku(this),n-wr((En(),cm)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!Ww(this);case 4:return!!g8e(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!Zk(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)==0;case 9:return!!this.a&&this.a.i!=0}return tf(this,t-wr((En(),cm)),Mn((n=l(Gn(this,16),29),n||cm),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:UH(this,Zr(n));return;case 2:oae(this,Zr(n));return;case 5:eE(this,Zr(n));return;case 7:!this.A&&(this.A=new bl(Zu,this,7)),$r(this.A),!this.A&&(this.A=new bl(Zu,this,7)),Ls(this.A,l(n,16));return;case 8:GU(this,Ft(Pt(n)));return;case 9:!this.a&&(this.a=new nt(Tp,this,9,5)),$r(this.a),!this.a&&(this.a=new nt(Tp,this,9,5)),Ls(this.a,l(n,16));return}cf(this,t-wr((En(),cm)),Mn((r=l(Gn(this,16),29),r||cm),t),n)},h.ii=function(){return En(),cm},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,184)&&(l(this.Cb,184).tb=null),Bu(this,null);return;case 2:_T(this,null),fT(this,this.D);return;case 5:eE(this,null);return;case 7:!this.A&&(this.A=new bl(Zu,this,7)),$r(this.A);return;case 8:GU(this,!0);return;case 9:!this.a&&(this.a=new nt(Tp,this,9,5)),$r(this.a);return}of(this,t-wr((En(),cm)),Mn((n=l(Gn(this,16),29),n||cm),t))},h.pi=function(){var t,n;if(this.a)for(t=0,n=this.a.i;t>16==5?l(this.Cb,685):null}return rf(this,t-wr((En(),$2)),Mn((s=l(Gn(this,16),29),s||$2),t),n,r)},h.Sh=function(t,n,r){var s,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Fu(this.Ab,t,r);case 5:return this.Cb&&(r=(o=this.Db>>16,o>=0?Bgt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,5,r)}return f=l(Mn((s=l(Gn(this,16),29),s||(En(),$2)),n),69),f.wk().zk(this,Ku(this),n-wr((En(),$2)),t,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r);case 5:return Nh(this,null,5,r)}return o=l(Mn((s=l(Gn(this,16),29),s||(En(),$2)),n),69),o.wk().Ak(this,Ku(this),n-wr((En(),$2)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return!!this.b;case 4:return this.c!=null;case 5:return!!(this.Db>>16==5&&l(this.Cb,685))}return tf(this,t-wr((En(),$2)),Mn((n=l(Gn(this,16),29),n||$2),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:Bu(this,Zr(n));return;case 2:hce(this,l(n,17).a);return;case 3:O2t(this,l(n,2039));return;case 4:dce(this,Zr(n));return}cf(this,t-wr((En(),$2)),Mn((r=l(Gn(this,16),29),r||$2),t),n)},h.ii=function(){return En(),$2},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:Bu(this,null);return;case 2:hce(this,0);return;case 3:O2t(this,null);return;case 4:dce(this,null);return}of(this,t-wr((En(),$2)),Mn((n=l(Gn(this,16),29),n||$2),t))},h.Ib=function(){var t;return t=this.c,t??this.zb},h.b=null,h.c=null,h.d=0,I(Vn,"EEnumLiteralImpl",582);var nNn=Ts(Vn,"EFactoryImpl/InternalEDateTimeFormat");D(499,1,{2114:1},tO),I(Vn,"EFactoryImpl/1ClientInternalEDateTimeFormat",499),D(248,120,{110:1,94:1,93:1,89:1,58:1,114:1,54:1,99:1,248:1,119:1,120:1},iw),h.Ch=function(t,n,r){var s;return r=Nh(this,t,n,r),this.e&&De(t,179)&&(s=OV(this,this.e),s!=this.c&&(r=tE(this,s,r))),r},h.Lh=function(t,n,r){var s;switch(t){case 0:return this.f;case 1:return!this.d&&(this.d=new Qs(Wo,this,1)),this.d;case 2:return n?GV(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return n?Cue(this):this.a}return rf(this,t-wr((En(),M3)),Mn((s=l(Gn(this,16),29),s||M3),t),n,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return _1t(this,null,r);case 1:return!this.d&&(this.d=new Qs(Wo,this,1)),ko(this.d,t,r);case 3:return A1t(this,null,r)}return o=l(Mn((s=l(Gn(this,16),29),s||(En(),M3)),n),69),o.wk().Ak(this,Ku(this),n-wr((En(),M3)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.f;case 1:return!!this.d&&this.d.i!=0;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return tf(this,t-wr((En(),M3)),Mn((n=l(Gn(this,16),29),n||M3),t))},h.bi=function(t,n){var r;switch(t){case 0:tpt(this,l(n,89));return;case 1:!this.d&&(this.d=new Qs(Wo,this,1)),$r(this.d),!this.d&&(this.d=new Qs(Wo,this,1)),Ls(this.d,l(n,16));return;case 3:Gxe(this,l(n,89));return;case 4:h9e(this,l(n,850));return;case 5:oT(this,l(n,142));return}cf(this,t-wr((En(),M3)),Mn((r=l(Gn(this,16),29),r||M3),t),n)},h.ii=function(){return En(),M3},h.ki=function(t){var n;switch(t){case 0:tpt(this,null);return;case 1:!this.d&&(this.d=new Qs(Wo,this,1)),$r(this.d);return;case 3:Gxe(this,null);return;case 4:h9e(this,null);return;case 5:oT(this,null);return}of(this,t-wr((En(),M3)),Mn((n=l(Gn(this,16),29),n||M3),t))},h.Ib=function(){var t;return t=new Eh(d0(this)),t.a+=" (expression: ",Ole(this,t),t.a+=")",t.a};var KPe;I(Vn,"EGenericTypeImpl",248),D(2067,2062,eK),h.Gi=function(t,n){oit(this,t,n)},h.Wk=function(t,n){return oit(this,this.gc(),t),n},h.$i=function(t){return hf(this.pj(),t)},h.Ii=function(){return this.Ji()},h.pj=function(){return new ZQe(this)},h.Ji=function(){return this.Ki(0)},h.Ki=function(t){return this.pj().fd(t)},h.Xk=function(t,n){return Fy(this,t,!0),n},h.Ti=function(t,n){var r,s;return s=Bue(this,n),r=this.fd(t),r.Rb(s),s},h.Ui=function(t,n){var r;Fy(this,n,!0),r=this.fd(t),r.Rb(n)},I(us,"AbstractSequentialInternalEList",2067),D(496,2067,eK,IO),h.$i=function(t){return hf(this.pj(),t)},h.Ii=function(){return this.b==null?(r2(),r2(),xF):this.sl()},h.pj=function(){return new Snt(this.a,this.b)},h.Ji=function(){return this.b==null?(r2(),r2(),xF):this.sl()},h.Ki=function(t){var n,r;if(this.b==null){if(t<0||t>1)throw ue(new rc(SL+t+", size=0"));return r2(),r2(),xF}for(r=this.sl(),n=0;n0;)if(n=this.c[--this.d],(!this.e||n.pk()!=uC||n.Lj()!=0)&&(!this.vl()||this.b.Xh(n))){if(f=this.b.Nh(n,this.ul()),this.f=(Ro(),l(n,69).xk()),this.f||n.Jk()){if(this.ul()?(s=l(f,15),this.k=s):(s=l(f,71),this.k=this.j=s),De(this.k,59)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j.Ki(this.k.gc()):this.k.fd(this.k.gc()),this.p?Ypt(this,this.p):a2t(this))return o=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(t=l(o,76),t.Lk(),r=t.md(),this.i=r):(r=o,this.i=r),this.g=-3,!0}else if(f!=null)return this.k=null,this.p=null,r=f,this.i=r,this.g=-2,!0}return this.k=null,this.p=null,this.g=-1,!1}else return o=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(t=l(o,76),t.Lk(),r=t.md(),this.i=r):(r=o,this.i=r),this.g=-3,!0}},h.Pb=function(){return FU(this)},h.Tb=function(){return this.a},h.Ub=function(){var t;if(this.g<-1||this.Sb())return--this.a,this.g=0,t=this.i,this.Sb(),t;throw ue(new Dc)},h.Vb=function(){return this.a-1},h.Qb=function(){throw ue(new Qr)},h.ul=function(){return!1},h.Wb=function(t){throw ue(new Qr)},h.vl=function(){return!0},h.a=0,h.d=0,h.f=!1,h.g=0,h.n=0,h.o=0;var xF;I(us,"EContentsEList/FeatureIteratorImpl",287),D(711,287,tK,n4e),h.ul=function(){return!0},I(us,"EContentsEList/ResolvingFeatureIteratorImpl",711),D(1178,711,tK,Grt),h.vl=function(){return!1},I(Vn,"ENamedElementImpl/1/1",1178),D(1179,287,tK,Krt),h.vl=function(){return!1},I(Vn,"ENamedElementImpl/1/2",1179),D(39,152,rB,Ay,Boe,_a,Qoe,rp,l0,p7e,Sct,b7e,_ct,O6e,Act,w7e,Lct,N6e,Mct,m7e,Dct,Q_,dN,moe,v7e,Ict,P6e,Oct),h.Kj=function(){return J6e(this)},h.Rj=function(){var t;return t=J6e(this),t?t.ik():null},h.hj=function(t){return this.b==-1&&this.a&&(this.b=this.c.Hh(this.a.Lj(),this.a.pk())),this.c.yh(this.b,t)},h.jj=function(){return this.c},h.Sj=function(){var t;return t=J6e(this),t?t.tk():!1},h.b=-1,I(Vn,"ENotificationImpl",39),D(411,292,{110:1,94:1,93:1,155:1,197:1,58:1,62:1,114:1,481:1,54:1,99:1,158:1,411:1,292:1,119:1,120:1},nse),h.Ah=function(t){return jgt(this,t)},h.Lh=function(t,n,r){var s,o,f;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return bt(this.s);case 5:return bt(this.t);case 6:return Hn(),f=this.t,f>1||f==-1;case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?l(this.Cb,29):null;case 11:return!this.d&&(this.d=new bl(Zu,this,11)),this.d;case 12:return!this.c&&(this.c=new nt(L3,this,12,10)),this.c;case 13:return!this.a&&(this.a=new FO(this,this)),this.a;case 14:return Kl(this)}return rf(this,t-wr((En(),z2)),Mn((s=l(Gn(this,16),29),s||z2),t),n,r)},h.Sh=function(t,n,r){var s,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Fu(this.Ab,t,r);case 10:return this.Cb&&(r=(o=this.Db>>16,o>=0?jgt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,10,r);case 12:return!this.c&&(this.c=new nt(L3,this,12,10)),Fu(this.c,t,r)}return f=l(Mn((s=l(Gn(this,16),29),s||(En(),z2)),n),69),f.wk().zk(this,Ku(this),n-wr((En(),z2)),t,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r);case 9:return noe(this,r);case 10:return Nh(this,null,10,r);case 11:return!this.d&&(this.d=new bl(Zu,this,11)),ko(this.d,t,r);case 12:return!this.c&&(this.c=new nt(L3,this,12,10)),ko(this.c,t,r);case 14:return ko(Kl(this),t,r)}return o=l(Mn((s=l(Gn(this,16),29),s||(En(),z2)),n),69),o.wk().Ak(this,Ku(this),n-wr((En(),z2)),t,r)},h.Wh=function(t){var n,r,s;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return s=this.t,s>1||s==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&_w(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&_w(this.q).i==0);case 10:return!!(this.Db>>16==10&&l(this.Cb,29));case 11:return!!this.d&&this.d.i!=0;case 12:return!!this.c&&this.c.i!=0;case 13:return!!this.a&&Kl(this.a.a).i!=0&&!(this.b&&Tue(this.b));case 14:return!!this.b&&Tue(this.b)}return tf(this,t-wr((En(),z2)),Mn((n=l(Gn(this,16),29),n||z2),t))},h.bi=function(t,n){var r,s;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:Bu(this,Zr(n));return;case 2:m2(this,Ft(Pt(n)));return;case 3:v2(this,Ft(Pt(n)));return;case 4:d2(this,l(n,17).a);return;case 5:Oy(this,l(n,17).a);return;case 8:ev(this,l(n,142));return;case 9:s=$1(this,l(n,89),null),s&&s.oj();return;case 11:!this.d&&(this.d=new bl(Zu,this,11)),$r(this.d),!this.d&&(this.d=new bl(Zu,this,11)),Ls(this.d,l(n,16));return;case 12:!this.c&&(this.c=new nt(L3,this,12,10)),$r(this.c),!this.c&&(this.c=new nt(L3,this,12,10)),Ls(this.c,l(n,16));return;case 13:!this.a&&(this.a=new FO(this,this)),nL(this.a),!this.a&&(this.a=new FO(this,this)),Ls(this.a,l(n,16));return;case 14:$r(Kl(this)),Ls(Kl(this),l(n,16));return}cf(this,t-wr((En(),z2)),Mn((r=l(Gn(this,16),29),r||z2),t),n)},h.ii=function(){return En(),z2},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:Bu(this,null);return;case 2:m2(this,!0);return;case 3:v2(this,!0);return;case 4:d2(this,0);return;case 5:Oy(this,1);return;case 8:ev(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return;case 11:!this.d&&(this.d=new bl(Zu,this,11)),$r(this.d);return;case 12:!this.c&&(this.c=new nt(L3,this,12,10)),$r(this.c);return;case 13:this.a&&nL(this.a);return;case 14:this.b&&$r(this.b);return}of(this,t-wr((En(),z2)),Mn((n=l(Gn(this,16),29),n||z2),t))},h.pi=function(){var t,n;if(this.c)for(t=0,n=this.c.i;tw&&Ss(t,w,null),s=0,r=new ar(Kl(this.a));r.e!=r.i.gc();)n=l(dr(r),89),f=(g=n.c,g||(En(),td)),Ss(t,s++,f);return t},h.Hj=function(){var t,n,r,s,o;for(o=new e2,o.a+="[",t=Kl(this.a),n=0,s=Kl(this.a).i;n1);case 5:return iA(this,t,n,r,s,this.i-l(r,15).gc()>0);default:return new rp(this.e,t,this.c,n,r,s,!0)}},h.Tj=function(){return!0},h.Qj=function(){return Tue(this)},h.Gk=function(){$r(this)},I(Vn,"EOperationImpl/2",1377),D(507,1,{2037:1,507:1},unt),I(Vn,"EPackageImpl/1",507),D(14,83,Ec,nt),h.il=function(){return this.d},h.jl=function(){return this.b},h.ml=function(){return!0},h.b=0,I(us,"EObjectContainmentWithInverseEList",14),D(365,14,Ec,V8),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectContainmentWithInverseEList/Resolving",365),D(308,365,Ec,ky),h.Ni=function(){this.a.tb=null},I(Vn,"EPackageImpl/2",308),D(1278,1,{},gre),I(Vn,"EPackageImpl/3",1278),D(733,45,w6,i3e),h._b=function(t){return Da(t)?woe(this,t):!!zo(this.f,t)},I(Vn,"EPackageRegistryImpl",733),D(518,292,{110:1,94:1,93:1,155:1,197:1,58:1,2116:1,114:1,481:1,54:1,99:1,158:1,518:1,292:1,119:1,120:1},rse),h.Ah=function(t){return $gt(this,t)},h.Lh=function(t,n,r){var s,o,f;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return bt(this.s);case 5:return bt(this.t);case 6:return Hn(),f=this.t,f>1||f==-1;case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?l(this.Cb,62):null}return rf(this,t-wr((En(),F4)),Mn((s=l(Gn(this,16),29),s||F4),t),n,r)},h.Sh=function(t,n,r){var s,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Fu(this.Ab,t,r);case 10:return this.Cb&&(r=(o=this.Db>>16,o>=0?$gt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,10,r)}return f=l(Mn((s=l(Gn(this,16),29),s||(En(),F4)),n),69),f.wk().zk(this,Ku(this),n-wr((En(),F4)),t,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r);case 9:return noe(this,r);case 10:return Nh(this,null,10,r)}return o=l(Mn((s=l(Gn(this,16),29),s||(En(),F4)),n),69),o.wk().Ak(this,Ku(this),n-wr((En(),F4)),t,r)},h.Wh=function(t){var n,r,s;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return s=this.t,s>1||s==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&_w(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&_w(this.q).i==0);case 10:return!!(this.Db>>16==10&&l(this.Cb,62))}return tf(this,t-wr((En(),F4)),Mn((n=l(Gn(this,16),29),n||F4),t))},h.ii=function(){return En(),F4},I(Vn,"EParameterImpl",518),D(102,462,{110:1,94:1,93:1,155:1,197:1,58:1,19:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,102:1,462:1,292:1,119:1,120:1,692:1},o4e),h.Lh=function(t,n,r){var s,o,f,g;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return bt(this.s);case 5:return bt(this.t);case 6:return Hn(),g=this.t,g>1||g==-1;case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return Hn(),!!(this.Bb&b0);case 11:return Hn(),!!(this.Bb&a4);case 12:return Hn(),!!(this.Bb&Zy);case 13:return this.j;case 14:return KT(this);case 15:return Hn(),!!(this.Bb&Cl);case 16:return Hn(),!!(this.Bb&_d);case 17:return Cy(this);case 18:return Hn(),!!(this.Bb&nu);case 19:return Hn(),f=jo(this),!!(f&&f.Bb&nu);case 20:return Hn(),!!(this.Bb&Lo);case 21:return n?jo(this):this.b;case 22:return n?i8e(this):rlt(this);case 23:return!this.a&&(this.a=new q5(N4,this,23)),this.a}return rf(this,t-wr((En(),u7)),Mn((s=l(Gn(this,16),29),s||u7),t),n,r)},h.Wh=function(t){var n,r,s,o;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return o=this.t,o>1||o==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&_w(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&_w(this.q).i==0);case 10:return(this.Bb&b0)==0;case 11:return(this.Bb&a4)!=0;case 12:return(this.Bb&Zy)!=0;case 13:return this.j!=null;case 14:return KT(this)!=null;case 15:return(this.Bb&Cl)!=0;case 16:return(this.Bb&_d)!=0;case 17:return!!Cy(this);case 18:return(this.Bb&nu)!=0;case 19:return s=jo(this),!!s&&(s.Bb&nu)!=0;case 20:return(this.Bb&Lo)==0;case 21:return!!this.b;case 22:return!!rlt(this);case 23:return!!this.a&&this.a.i!=0}return tf(this,t-wr((En(),u7)),Mn((n=l(Gn(this,16),29),n||u7),t))},h.bi=function(t,n){var r,s;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:Loe(this,Zr(n));return;case 2:m2(this,Ft(Pt(n)));return;case 3:v2(this,Ft(Pt(n)));return;case 4:d2(this,l(n,17).a);return;case 5:Oy(this,l(n,17).a);return;case 8:ev(this,l(n,142));return;case 9:s=$1(this,l(n,89),null),s&&s.oj();return;case 10:MT(this,Ft(Pt(n)));return;case 11:OT(this,Ft(Pt(n)));return;case 12:DT(this,Ft(Pt(n)));return;case 13:mye(this,Zr(n));return;case 15:IT(this,Ft(Pt(n)));return;case 16:NT(this,Ft(Pt(n)));return;case 18:X2n(this,Ft(Pt(n)));return;case 20:B8e(this,Ft(Pt(n)));return;case 21:N7e(this,l(n,19));return;case 23:!this.a&&(this.a=new q5(N4,this,23)),$r(this.a),!this.a&&(this.a=new q5(N4,this,23)),Ls(this.a,l(n,16));return}cf(this,t-wr((En(),u7)),Mn((r=l(Gn(this,16),29),r||u7),t),n)},h.ii=function(){return En(),u7},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,90)&&Uy(Gl(l(this.Cb,90)),4),Bu(this,null);return;case 2:m2(this,!0);return;case 3:v2(this,!0);return;case 4:d2(this,0);return;case 5:Oy(this,1);return;case 8:ev(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return;case 10:MT(this,!0);return;case 11:OT(this,!1);return;case 12:DT(this,!1);return;case 13:this.i=null,AU(this,null);return;case 15:IT(this,!1);return;case 16:NT(this,!1);return;case 18:P8e(this,!1),De(this.Cb,90)&&Uy(Gl(l(this.Cb,90)),2);return;case 20:B8e(this,!0);return;case 21:N7e(this,null);return;case 23:!this.a&&(this.a=new q5(N4,this,23)),$r(this.a);return}of(this,t-wr((En(),u7)),Mn((n=l(Gn(this,16),29),n||u7),t))},h.pi=function(){i8e(this),Xk(ac((kl(),no),this)),Of(this),this.Bb|=1},h.uk=function(){return jo(this)},h._k=function(){var t;return t=jo(this),!!t&&(t.Bb&nu)!=0},h.al=function(){return(this.Bb&nu)!=0},h.bl=function(){return(this.Bb&Lo)!=0},h.Yk=function(t,n){return this.c=null,C8e(this,t,n)},h.Ib=function(){var t;return this.Db&64?HV(this):(t=new Af(HV(this)),t.a+=" (containment: ",t2(t,(this.Bb&nu)!=0),t.a+=", resolveProxies: ",t2(t,(this.Bb&Lo)!=0),t.a+=")",t.a)},I(Vn,"EReferenceImpl",102),D(561,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,561:1,119:1,120:1},NS),h.Fb=function(t){return this===t},h.ld=function(){return this.b},h.md=function(){return this.c},h.Hb=function(){return ww(this)},h.Di=function(t){tgn(this,Zr(t))},h.nd=function(t){return $dn(this,Zr(t))},h.Lh=function(t,n,r){var s;switch(t){case 0:return this.b;case 1:return this.c}return rf(this,t-wr((En(),Do)),Mn((s=l(Gn(this,16),29),s||Do),t),n,r)},h.Wh=function(t){var n;switch(t){case 0:return this.b!=null;case 1:return this.c!=null}return tf(this,t-wr((En(),Do)),Mn((n=l(Gn(this,16),29),n||Do),t))},h.bi=function(t,n){var r;switch(t){case 0:ngn(this,Zr(n));return;case 1:D7e(this,Zr(n));return}cf(this,t-wr((En(),Do)),Mn((r=l(Gn(this,16),29),r||Do),t),n)},h.ii=function(){return En(),Do},h.ki=function(t){var n;switch(t){case 0:M7e(this,null);return;case 1:D7e(this,null);return}of(this,t-wr((En(),Do)),Mn((n=l(Gn(this,16),29),n||Do),t))},h.Bi=function(){var t;return this.a==-1&&(t=this.b,this.a=t==null?0:g2(t)),this.a},h.Ci=function(t){this.a=t},h.Ib=function(){var t;return this.Db&64?d0(this):(t=new Af(d0(this)),t.a+=" (key: ",Jo(t,this.b),t.a+=", value: ",Jo(t,this.c),t.a+=")",t.a)},h.a=-1,h.b=null,h.c=null;var Qc=I(Vn,"EStringToStringMapEntryImpl",561),_At=Ts(us,"FeatureMap/Entry/Internal");D(576,1,nK),h.xl=function(t){return this.yl(l(t,54))},h.yl=function(t){return this.xl(t)},h.Fb=function(t){var n,r;return this===t?!0:De(t,76)?(n=l(t,76),n.Lk()==this.c?(r=this.md(),r==null?n.md()==null:Fi(r,n.md())):!1):!1},h.Lk=function(){return this.c},h.Hb=function(){var t;return t=this.md(),ts(this.c)^(t==null?0:ts(t))},h.Ib=function(){var t,n;return t=this.c,n=Ah(t.qk()).yi(),t.xe(),(n!=null&&n.length!=0?n+":"+t.xe():t.xe())+"="+this.md()},I(Vn,"EStructuralFeatureImpl/BasicFeatureMapEntry",576),D(791,576,nK,b4e),h.yl=function(t){return new b4e(this.c,t)},h.md=function(){return this.a},h.zl=function(t,n,r){return j3n(this,t,this.a,n,r)},h.Al=function(t,n,r){return $3n(this,t,this.a,n,r)},I(Vn,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",791),D(1350,1,{},lnt),h.yk=function(t,n,r,s,o){var f;return f=l(rT(t,this.b),220),f.Yl(this.a).Fk(s)},h.zk=function(t,n,r,s,o){var f;return f=l(rT(t,this.b),220),f.Pl(this.a,s,o)},h.Ak=function(t,n,r,s,o){var f;return f=l(rT(t,this.b),220),f.Ql(this.a,s,o)},h.Bk=function(t,n,r){var s;return s=l(rT(t,this.b),220),s.Yl(this.a).Qj()},h.Ck=function(t,n,r,s){var o;o=l(rT(t,this.b),220),o.Yl(this.a).Wb(s)},h.Dk=function(t,n,r){return l(rT(t,this.b),220).Yl(this.a)},h.Ek=function(t,n,r){var s;s=l(rT(t,this.b),220),s.Yl(this.a).Gk()},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1350),D(91,1,{},s2,zm,o2,Gm),h.yk=function(t,n,r,s,o){var f;if(f=n.li(r),f==null&&n.mi(r,f=tG(this,t)),!o)switch(this.e){case 50:case 41:return l(f,597).bk();case 40:return l(f,220).Vl()}return f},h.zk=function(t,n,r,s,o){var f,g;return g=n.li(r),g==null&&n.mi(r,g=tG(this,t)),f=l(g,71).Wk(s,o),f},h.Ak=function(t,n,r,s,o){var f;return f=n.li(r),f!=null&&(o=l(f,71).Xk(s,o)),o},h.Bk=function(t,n,r){var s;return s=n.li(r),s!=null&&l(s,79).Qj()},h.Ck=function(t,n,r,s){var o;o=l(n.li(r),79),!o&&n.mi(r,o=tG(this,t)),o.Wb(s)},h.Dk=function(t,n,r){var s,o;return o=n.li(r),o==null&&n.mi(r,o=tG(this,t)),De(o,79)?l(o,79):(s=l(n.li(r),15),new QQe(s))},h.Ek=function(t,n,r){var s;s=l(n.li(r),79),!s&&n.mi(r,s=tG(this,t)),s.Gk()},h.b=0,h.e=0,I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateMany",91),D(512,1,{}),h.zk=function(t,n,r,s,o){throw ue(new Qr)},h.Ak=function(t,n,r,s,o){throw ue(new Qr)},h.Dk=function(t,n,r){return new cot(this,t,n,r)};var Lg;I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingle",512),D(1367,1,v0e,cot),h.Fk=function(t){return this.a.yk(this.c,this.d,this.b,t,!0)},h.Qj=function(){return this.a.Bk(this.c,this.d,this.b)},h.Wb=function(t){this.a.Ck(this.c,this.d,this.b,t)},h.Gk=function(){this.a.Ek(this.c,this.d,this.b)},h.b=0,I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1367),D(784,512,{},i6e),h.yk=function(t,n,r,s,o){return wle(t,t.Ph(),t.Fh())==this.b?this.bl()&&s?sle(t):t.Ph():null},h.zk=function(t,n,r,s,o){var f,g;return t.Ph()&&(o=(f=t.Fh(),f>=0?t.Ah(o):t.Ph().Th(t,-1-f,null,o))),g=vs(t.Dh(),this.e),t.Ch(s,g,o)},h.Ak=function(t,n,r,s,o){var f;return f=vs(t.Dh(),this.e),t.Ch(null,f,o)},h.Bk=function(t,n,r){var s;return s=vs(t.Dh(),this.e),!!t.Ph()&&t.Fh()==s},h.Ck=function(t,n,r,s){var o,f,g,w,T;if(s!=null&&!Tle(this.a,s))throw ue(new Ek(rK+(De(s,58)?Vxe(l(s,58).Dh()):h7e(dh(s)))+iK+this.a+"'"));if(o=t.Ph(),g=vs(t.Dh(),this.e),qe(s)!==qe(o)||t.Fh()!=g&&s!=null){if(jT(t,l(s,58)))throw ue(new Wn(EL+t.Ib()));T=null,o&&(T=(f=t.Fh(),f>=0?t.Ah(T):t.Ph().Th(t,-1-f,null,T))),w=l(s,54),w&&(T=w.Rh(t,vs(w.Dh(),this.b),null,T)),T=t.Ch(w,g,T),T&&T.oj()}else t.vh()&&t.wh()&&Bi(t,new _a(t,1,g,s,s))},h.Ek=function(t,n,r){var s,o,f,g;s=t.Ph(),s?(g=(o=t.Fh(),o>=0?t.Ah(null):t.Ph().Th(t,-1-o,null,null)),f=vs(t.Dh(),this.e),g=t.Ch(null,f,g),g&&g.oj()):t.vh()&&t.wh()&&Bi(t,new Q_(t,1,this.e,null,null))},h.bl=function(){return!1},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",784),D(1351,784,{},Jit),h.bl=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1351),D(574,512,{}),h.yk=function(t,n,r,s,o){var f;return f=n.li(r),f==null?this.b:qe(f)===qe(Lg)?null:f},h.Bk=function(t,n,r){var s;return s=n.li(r),s!=null&&(qe(s)===qe(Lg)||!Fi(s,this.b))},h.Ck=function(t,n,r,s){var o,f;t.vh()&&t.wh()?(o=(f=n.li(r),f==null?this.b:qe(f)===qe(Lg)?null:f),s==null?this.c!=null?(n.mi(r,null),s=this.b):this.b!=null?n.mi(r,Lg):n.mi(r,null):(this.Bl(s),n.mi(r,s)),Bi(t,this.d.Cl(t,1,this.e,o,s))):s==null?this.c!=null?n.mi(r,null):this.b!=null?n.mi(r,Lg):n.mi(r,null):(this.Bl(s),n.mi(r,s))},h.Ek=function(t,n,r){var s,o;t.vh()&&t.wh()?(s=(o=n.li(r),o==null?this.b:qe(o)===qe(Lg)?null:o),n.ni(r),Bi(t,this.d.Cl(t,1,this.e,s,this.b))):n.ni(r)},h.Bl=function(t){throw ue(new cJe)},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",574),D(L6,1,{},PS),h.Cl=function(t,n,r,s,o){return new Q_(t,n,r,s,o)},h.Dl=function(t,n,r,s,o,f){return new moe(t,n,r,s,o,f)};var WPe,YPe,XPe,QPe,JPe,ZPe,eBe,vpe,tBe;I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",L6),D(1368,L6,{},q0),h.Cl=function(t,n,r,s,o){return new P6e(t,n,r,Ft(Pt(s)),Ft(Pt(o)))},h.Dl=function(t,n,r,s,o,f){return new Oct(t,n,r,Ft(Pt(s)),Ft(Pt(o)),f)},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1368),D(1369,L6,{},BI),h.Cl=function(t,n,r,s,o){return new p7e(t,n,r,l(s,222).a,l(o,222).a)},h.Dl=function(t,n,r,s,o,f){return new Sct(t,n,r,l(s,222).a,l(o,222).a,f)},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1369),D(1370,L6,{},FI),h.Cl=function(t,n,r,s,o){return new b7e(t,n,r,l(s,180).a,l(o,180).a)},h.Dl=function(t,n,r,s,o,f){return new _ct(t,n,r,l(s,180).a,l(o,180).a,f)},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1370),D(1371,L6,{},d8),h.Cl=function(t,n,r,s,o){return new O6e(t,n,r,ze(Ge(s)),ze(Ge(o)))},h.Dl=function(t,n,r,s,o,f){return new Act(t,n,r,ze(Ge(s)),ze(Ge(o)),f)},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1371),D(1372,L6,{},pre),h.Cl=function(t,n,r,s,o){return new w7e(t,n,r,l(s,161).a,l(o,161).a)},h.Dl=function(t,n,r,s,o,f){return new Lct(t,n,r,l(s,161).a,l(o,161).a,f)},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1372),D(1373,L6,{},bre),h.Cl=function(t,n,r,s,o){return new N6e(t,n,r,l(s,17).a,l(o,17).a)},h.Dl=function(t,n,r,s,o,f){return new Mct(t,n,r,l(s,17).a,l(o,17).a,f)},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1373),D(1374,L6,{},mre),h.Cl=function(t,n,r,s,o){return new m7e(t,n,r,l(s,168).a,l(o,168).a)},h.Dl=function(t,n,r,s,o,f){return new Dct(t,n,r,l(s,168).a,l(o,168).a,f)},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1374),D(1375,L6,{},vre),h.Cl=function(t,n,r,s,o){return new v7e(t,n,r,l(s,191).a,l(o,191).a)},h.Dl=function(t,n,r,s,o,f){return new Ict(t,n,r,l(s,191).a,l(o,191).a,f)},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1375),D(1353,574,{},uot),h.Bl=function(t){if(!this.a.fk(t))throw ue(new Ek(rK+dh(t)+iK+this.a+"'"))},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1353),D(1354,574,{},Xst),h.Bl=function(t){},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1354),D(785,574,{}),h.Bk=function(t,n,r){var s;return s=n.li(r),s!=null},h.Ck=function(t,n,r,s){var o,f;t.vh()&&t.wh()?(o=!0,f=n.li(r),f==null?(o=!1,f=this.b):qe(f)===qe(Lg)&&(f=null),s==null?this.c!=null?(n.mi(r,null),s=this.b):n.mi(r,Lg):(this.Bl(s),n.mi(r,s)),Bi(t,this.d.Dl(t,1,this.e,f,s,!o))):s==null?this.c!=null?n.mi(r,null):n.mi(r,Lg):(this.Bl(s),n.mi(r,s))},h.Ek=function(t,n,r){var s,o;t.vh()&&t.wh()?(s=!0,o=n.li(r),o==null?(s=!1,o=this.b):qe(o)===qe(Lg)&&(o=null),n.ni(r),Bi(t,this.d.Dl(t,2,this.e,o,this.b,s))):n.ni(r)},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",785),D(1355,785,{},lot),h.Bl=function(t){if(!this.a.fk(t))throw ue(new Ek(rK+dh(t)+iK+this.a+"'"))},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1355),D(1356,785,{},Qst),h.Bl=function(t){},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1356),D(410,512,{},pH),h.yk=function(t,n,r,s,o){var f,g,w,T,C;if(C=n.li(r),this.tk()&&qe(C)===qe(Lg))return null;if(this.bl()&&s&&C!=null){if(w=l(C,54),w.Vh()&&(T=Lb(t,w),w!=T)){if(!Tle(this.a,T))throw ue(new Ek(rK+dh(T)+iK+this.a+"'"));n.mi(r,C=T),this.al()&&(f=l(T,54),g=w.Th(t,this.b?vs(w.Dh(),this.b):-1-vs(t.Dh(),this.e),null,null),!f.Ph()&&(g=f.Rh(t,this.b?vs(f.Dh(),this.b):-1-vs(t.Dh(),this.e),null,g)),g&&g.oj()),t.vh()&&t.wh()&&Bi(t,new Q_(t,9,this.e,w,T))}return C}else return C},h.zk=function(t,n,r,s,o){var f,g;return g=n.li(r),qe(g)===qe(Lg)&&(g=null),n.mi(r,s),this.Mj()?qe(g)!==qe(s)&&g!=null&&(f=l(g,54),o=f.Th(t,vs(f.Dh(),this.b),null,o)):this.al()&&g!=null&&(o=l(g,54).Th(t,-1-vs(t.Dh(),this.e),null,o)),t.vh()&&t.wh()&&(!o&&(o=new hb(4)),o.nj(new Q_(t,1,this.e,g,s))),o},h.Ak=function(t,n,r,s,o){var f;return f=n.li(r),qe(f)===qe(Lg)&&(f=null),n.ni(r),t.vh()&&t.wh()&&(!o&&(o=new hb(4)),this.tk()?o.nj(new Q_(t,2,this.e,f,null)):o.nj(new Q_(t,1,this.e,f,null))),o},h.Bk=function(t,n,r){var s;return s=n.li(r),s!=null},h.Ck=function(t,n,r,s){var o,f,g,w,T;if(s!=null&&!Tle(this.a,s))throw ue(new Ek(rK+(De(s,58)?Vxe(l(s,58).Dh()):h7e(dh(s)))+iK+this.a+"'"));T=n.li(r),w=T!=null,this.tk()&&qe(T)===qe(Lg)&&(T=null),g=null,this.Mj()?qe(T)!==qe(s)&&(T!=null&&(o=l(T,54),g=o.Th(t,vs(o.Dh(),this.b),null,g)),s!=null&&(o=l(s,54),g=o.Rh(t,vs(o.Dh(),this.b),null,g))):this.al()&&qe(T)!==qe(s)&&(T!=null&&(g=l(T,54).Th(t,-1-vs(t.Dh(),this.e),null,g)),s!=null&&(g=l(s,54).Rh(t,-1-vs(t.Dh(),this.e),null,g))),s==null&&this.tk()?n.mi(r,Lg):n.mi(r,s),t.vh()&&t.wh()?(f=new moe(t,1,this.e,T,s,this.tk()&&!w),g?(g.nj(f),g.oj()):Bi(t,f)):g&&g.oj()},h.Ek=function(t,n,r){var s,o,f,g,w;w=n.li(r),g=w!=null,this.tk()&&qe(w)===qe(Lg)&&(w=null),f=null,w!=null&&(this.Mj()?(s=l(w,54),f=s.Th(t,vs(s.Dh(),this.b),null,f)):this.al()&&(f=l(w,54).Th(t,-1-vs(t.Dh(),this.e),null,f))),n.ni(r),t.vh()&&t.wh()?(o=new moe(t,this.tk()?2:1,this.e,w,null,g),f?(f.nj(o),f.oj()):Bi(t,o)):f&&f.oj()},h.Mj=function(){return!1},h.al=function(){return!1},h.bl=function(){return!1},h.tk=function(){return!1},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",410),D(575,410,{},xae),h.al=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",575),D(1359,575,{},Yrt),h.bl=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1359),D(787,575,{},r4e),h.tk=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",787),D(1361,787,{},Xrt),h.bl=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1361),D(650,575,{},Nae),h.Mj=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",650),D(1360,650,{},Zit),h.bl=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1360),D(788,650,{},H4e),h.tk=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",788),D(1362,788,{},est),h.bl=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1362),D(651,410,{},i4e),h.bl=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",651),D(1363,651,{},Qrt),h.tk=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1363),D(789,651,{},z4e),h.Mj=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",789),D(1364,789,{},tst),h.tk=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1364),D(1357,410,{},Jrt),h.tk=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1357),D(786,410,{},q4e),h.Mj=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",786),D(1358,786,{},nst),h.tk=function(){return!0},I(Vn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1358),D(790,576,nK,j5e),h.yl=function(t){return new j5e(this.a,this.c,t)},h.md=function(){return this.b},h.zl=function(t,n,r){return Fvn(this,t,this.b,r)},h.Al=function(t,n,r){return Rvn(this,t,this.b,r)},I(Vn,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",790),D(1365,1,v0e,QQe),h.Fk=function(t){return this.a},h.Qj=function(){return De(this.a,97)?l(this.a,97).Qj():!this.a.dc()},h.Wb=function(t){this.a.$b(),this.a.Gc(l(t,15))},h.Gk=function(){De(this.a,97)?l(this.a,97).Gk():this.a.$b()},I(Vn,"EStructuralFeatureImpl/SettingMany",1365),D(1366,576,nK,Eut),h.xl=function(t){return new Eae((Wi(),GM),this.b.ri(this.a,t))},h.md=function(){return null},h.zl=function(t,n,r){return r},h.Al=function(t,n,r){return r},I(Vn,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1366),D(652,576,nK,Eae),h.xl=function(t){return new Eae(this.c,t)},h.md=function(){return this.a},h.zl=function(t,n,r){return r},h.Al=function(t,n,r){return r},I(Vn,"EStructuralFeatureImpl/SimpleFeatureMapEntry",652),D(403,506,Bd,Zd),h.aj=function(t){return We(Uf,jn,29,t,0,1)},h.Yi=function(){return!1},I(Vn,"ESuperAdapter/1",403),D(457,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,850:1,54:1,99:1,158:1,457:1,119:1,120:1},BS),h.Lh=function(t,n,r){var s;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new K_(this,Wo,this)),this.a}return rf(this,t-wr((En(),D3)),Mn((s=l(Gn(this,16),29),s||D3),t),n,r)},h.Uh=function(t,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(vi,this,0,3)),ko(this.Ab,t,r);case 2:return!this.a&&(this.a=new K_(this,Wo,this)),ko(this.a,t,r)}return o=l(Mn((s=l(Gn(this,16),29),s||(En(),D3)),n),69),o.wk().Ak(this,Ku(this),n-wr((En(),D3)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return!!this.a&&this.a.i!=0}return tf(this,t-wr((En(),D3)),Mn((n=l(Gn(this,16),29),n||D3),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(vi,this,0,3)),Ls(this.Ab,l(n,16));return;case 1:Bu(this,Zr(n));return;case 2:!this.a&&(this.a=new K_(this,Wo,this)),$r(this.a),!this.a&&(this.a=new K_(this,Wo,this)),Ls(this.a,l(n,16));return}cf(this,t-wr((En(),D3)),Mn((r=l(Gn(this,16),29),r||D3),t),n)},h.ii=function(){return En(),D3},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(vi,this,0,3)),$r(this.Ab);return;case 1:Bu(this,null);return;case 2:!this.a&&(this.a=new K_(this,Wo,this)),$r(this.a);return}of(this,t-wr((En(),D3)),Mn((n=l(Gn(this,16),29),n||D3),t))},I(Vn,"ETypeParameterImpl",457),D(458,83,Ec,K_),h.Nj=function(t,n){return Jxn(this,l(t,89),n)},h.Oj=function(t,n){return Zxn(this,l(t,89),n)},I(Vn,"ETypeParameterImpl/1",458),D(647,45,w6,ise),h.ec=function(){return new qz(this)},I(Vn,"ETypeParameterImpl/2",647),D(570,q1,Tl,qz),h.Fc=function(t){return Eit(this,l(t,89))},h.Gc=function(t){var n,r,s;for(s=!1,r=t.Kc();r.Ob();)n=l(r.Pb(),89),Ti(this.a,n,"")==null&&(s=!0);return s},h.$b=function(){Dl(this.a)},h.Hc=function(t){return Hu(this.a,t)},h.Kc=function(){var t;return t=new Xm(new Cr(this.a).a),new Hz(t)},h.Mc=function(t){return glt(this,t)},h.gc=function(){return g_(this.a)},I(Vn,"ETypeParameterImpl/2/1",570),D(571,1,Ia,Hz),h.Nb=function(t){Qa(this,t)},h.Pb=function(){return l(zw(this.a).ld(),89)},h.Ob=function(){return this.a.b},h.Qb=function(){Tht(this.a)},I(Vn,"ETypeParameterImpl/2/1/1",571),D(1329,45,w6,zJe),h._b=function(t){return Da(t)?woe(this,t):!!zo(this.f,t)},h.xc=function(t){var n,r;return n=Da(t)?wu(this,t):dc(zo(this.f,t)),De(n,851)?(r=l(n,851),n=r.Kk(),Ti(this,l(t,241),n),n):n??(t==null?(Tse(),LAt):null)},I(Vn,"EValidatorRegistryImpl",1329),D(1349,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,2040:1,54:1,99:1,158:1,119:1,120:1},g8),h.ri=function(t,n){switch(t.hk()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return n==null?null:Tc(n);case 25:return Ywn(n);case 27:return uwn(n);case 28:return lwn(n);case 29:return n==null?null:trt($M[0],l(n,206));case 41:return n==null?"":Pm(l(n,297));case 42:return Tc(n);case 50:return Zr(n);default:throw ue(new Wn(kE+t.xe()+c3))}},h.si=function(t){var n,r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe;switch(t.G==-1&&(t.G=(z=Ah(t),z?x2(z.vi(),t):-1)),t.G){case 0:return r=new tse,r;case 1:return n=new OI,n;case 2:return s=new vz,s;case 4:return o=new Uz,o;case 5:return f=new $Je,f;case 6:return g=new hJe,g;case 7:return w=new wz,w;case 10:return C=new w5,C;case 11:return L=new nse,L;case 12:return F=new vot,F;case 13:return V=new rse,V;case 14:return J=new o4e,J;case 17:return te=new NS,te;case 18:return T=new iw,T;case 19:return fe=new BS,fe;default:throw ue(new Wn(n0e+t.zb+c3))}},h.ti=function(t,n){switch(t.hk()){case 20:return n==null?null:new L3e(n);case 21:return n==null?null:new bb(n);case 23:case 22:return n==null?null:c6n(n);case 26:case 24:return n==null?null:yN(Oh(n,-128,127)<<24>>24);case 25:return _En(n);case 27:return Y7n(n);case 28:return X7n(n);case 29:return w9n(n);case 32:case 31:return n==null?null:qy(n);case 38:case 37:return n==null?null:new Gwe(n);case 40:case 39:return n==null?null:bt(Oh(n,ao,Ni));case 41:return null;case 42:return n==null,null;case 44:case 43:return n==null?null:lp(eG(n));case 49:case 48:return n==null?null:LT(Oh(n,sK,32767)<<16>>16);case 50:return n;default:throw ue(new Wn(kE+t.xe()+c3))}},I(Vn,"EcoreFactoryImpl",1349),D(560,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,2038:1,54:1,99:1,158:1,184:1,560:1,119:1,120:1,690:1},qat),h.gb=!1,h.hb=!1;var nBe,AAt=!1;I(Vn,"EcorePackageImpl",560),D(1234,1,{851:1},k1),h.Kk=function(){return grt(),MAt},I(Vn,"EcorePackageImpl/1",1234),D(1243,1,xi,P$),h.fk=function(t){return De(t,155)},h.gk=function(t){return We(mF,jn,155,t,0,1)},I(Vn,"EcorePackageImpl/10",1243),D(1244,1,xi,B$),h.fk=function(t){return De(t,197)},h.gk=function(t){return We(upe,jn,197,t,0,1)},I(Vn,"EcorePackageImpl/11",1244),D(1245,1,xi,F$),h.fk=function(t){return De(t,58)},h.gk=function(t){return We(sm,jn,58,t,0,1)},I(Vn,"EcorePackageImpl/12",1245),D(1246,1,xi,R$),h.fk=function(t){return De(t,411)},h.gk=function(t){return We(Vf,KSe,62,t,0,1)},I(Vn,"EcorePackageImpl/13",1246),D(1247,1,xi,j$),h.fk=function(t){return De(t,241)},h.gk=function(t){return We(c1,jn,241,t,0,1)},I(Vn,"EcorePackageImpl/14",1247),D(1248,1,xi,$$),h.fk=function(t){return De(t,518)},h.gk=function(t){return We(L3,jn,2116,t,0,1)},I(Vn,"EcorePackageImpl/15",1248),D(1249,1,xi,H0),h.fk=function(t){return De(t,102)},h.gk=function(t){return We(P4,A6,19,t,0,1)},I(Vn,"EcorePackageImpl/16",1249),D(1250,1,xi,tl),h.fk=function(t){return De(t,179)},h.gk=function(t){return We(fl,A6,179,t,0,1)},I(Vn,"EcorePackageImpl/17",1250),D(1251,1,xi,wre),h.fk=function(t){return De(t,481)},h.gk=function(t){return We(O4,jn,481,t,0,1)},I(Vn,"EcorePackageImpl/18",1251),D(1252,1,xi,yre),h.fk=function(t){return De(t,561)},h.gk=function(t){return We(Qc,M5t,561,t,0,1)},I(Vn,"EcorePackageImpl/19",1252),D(1235,1,xi,xre),h.fk=function(t){return De(t,331)},h.gk=function(t){return We(N4,A6,35,t,0,1)},I(Vn,"EcorePackageImpl/2",1235),D(1253,1,xi,nl),h.fk=function(t){return De(t,248)},h.gk=function(t){return We(Wo,K5t,89,t,0,1)},I(Vn,"EcorePackageImpl/20",1253),D(1254,1,xi,FS),h.fk=function(t){return De(t,457)},h.gk=function(t){return We(Zu,jn,850,t,0,1)},I(Vn,"EcorePackageImpl/21",1254),D(1255,1,xi,z$),h.fk=function(t){return gy(t)},h.gk=function(t){return We(Ps,dt,485,t,8,1)},I(Vn,"EcorePackageImpl/22",1255),D(1256,1,xi,q$),h.fk=function(t){return De(t,195)},h.gk=function(t){return We(_l,dt,195,t,0,2)},I(Vn,"EcorePackageImpl/23",1256),D(1257,1,xi,p8),h.fk=function(t){return De(t,222)},h.gk=function(t){return We($x,dt,222,t,0,1)},I(Vn,"EcorePackageImpl/24",1257),D(1258,1,xi,kre),h.fk=function(t){return De(t,180)},h.gk=function(t){return We(BL,dt,180,t,0,1)},I(Vn,"EcorePackageImpl/25",1258),D(1259,1,xi,ck),h.fk=function(t){return De(t,206)},h.gk=function(t){return We(pK,dt,206,t,0,1)},I(Vn,"EcorePackageImpl/26",1259),D(1260,1,xi,Tre),h.fk=function(t){return!1},h.gk=function(t){return We(yBe,jn,2215,t,0,1)},I(Vn,"EcorePackageImpl/27",1260),D(1261,1,xi,H$),h.fk=function(t){return py(t)},h.gk=function(t){return We(ra,dt,345,t,7,1)},I(Vn,"EcorePackageImpl/28",1261),D(1262,1,xi,Ere),h.fk=function(t){return De(t,61)},h.gk=function(t){return We(PPe,e4,61,t,0,1)},I(Vn,"EcorePackageImpl/29",1262),D(1236,1,xi,Cre),h.fk=function(t){return De(t,519)},h.gk=function(t){return We(vi,{3:1,4:1,5:1,2033:1},598,t,0,1)},I(Vn,"EcorePackageImpl/3",1236),D(1263,1,xi,RS),h.fk=function(t){return De(t,582)},h.gk=function(t){return We(RPe,jn,2039,t,0,1)},I(Vn,"EcorePackageImpl/30",1263),D(1264,1,xi,U$),h.fk=function(t){return De(t,160)},h.gk=function(t){return We(oBe,e4,160,t,0,1)},I(Vn,"EcorePackageImpl/31",1264),D(1265,1,xi,RI),h.fk=function(t){return De(t,76)},h.gk=function(t){return We(IY,n6t,76,t,0,1)},I(Vn,"EcorePackageImpl/32",1265),D(1266,1,xi,jS),h.fk=function(t){return De(t,161)},h.gk=function(t){return We(LE,dt,161,t,0,1)},I(Vn,"EcorePackageImpl/33",1266),D(1267,1,xi,Sre),h.fk=function(t){return De(t,17)},h.gk=function(t){return We(to,dt,17,t,0,1)},I(Vn,"EcorePackageImpl/34",1267),D(1268,1,xi,_re),h.fk=function(t){return De(t,297)},h.gk=function(t){return We(a_e,jn,297,t,0,1)},I(Vn,"EcorePackageImpl/35",1268),D(1269,1,xi,jI),h.fk=function(t){return De(t,168)},h.gk=function(t){return We(l3,dt,168,t,0,1)},I(Vn,"EcorePackageImpl/36",1269),D(1270,1,xi,$S),h.fk=function(t){return De(t,85)},h.gk=function(t){return We(o_e,jn,85,t,0,1)},I(Vn,"EcorePackageImpl/37",1270),D(1271,1,xi,T1),h.fk=function(t){return De(t,599)},h.gk=function(t){return We(rBe,jn,599,t,0,1)},I(Vn,"EcorePackageImpl/38",1271),D(1272,1,xi,uk),h.fk=function(t){return!1},h.gk=function(t){return We(xBe,jn,2216,t,0,1)},I(Vn,"EcorePackageImpl/39",1272),D(1237,1,xi,Are),h.fk=function(t){return De(t,90)},h.gk=function(t){return We(Uf,jn,29,t,0,1)},I(Vn,"EcorePackageImpl/4",1237),D(1273,1,xi,lk),h.fk=function(t){return De(t,191)},h.gk=function(t){return We(h3,dt,191,t,0,1)},I(Vn,"EcorePackageImpl/40",1273),D(1274,1,xi,$I),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(Vn,"EcorePackageImpl/41",1274),D(1275,1,xi,Lm),h.fk=function(t){return De(t,596)},h.gk=function(t){return We(FPe,jn,596,t,0,1)},I(Vn,"EcorePackageImpl/42",1275),D(1276,1,xi,zS),h.fk=function(t){return!1},h.gk=function(t){return We(kBe,dt,2217,t,0,1)},I(Vn,"EcorePackageImpl/43",1276),D(1277,1,xi,zI),h.fk=function(t){return De(t,44)},h.gk=function(t){return We(mv,rG,44,t,0,1)},I(Vn,"EcorePackageImpl/44",1277),D(1238,1,xi,U0),h.fk=function(t){return De(t,142)},h.gk=function(t){return We(u1,jn,142,t,0,1)},I(Vn,"EcorePackageImpl/5",1238),D(1239,1,xi,qS),h.fk=function(t){return De(t,156)},h.gk=function(t){return We(ppe,jn,156,t,0,1)},I(Vn,"EcorePackageImpl/6",1239),D(1240,1,xi,E1),h.fk=function(t){return De(t,469)},h.gk=function(t){return We(DY,jn,685,t,0,1)},I(Vn,"EcorePackageImpl/7",1240),D(1241,1,xi,C1),h.fk=function(t){return De(t,582)},h.gk=function(t){return We(Tp,jn,694,t,0,1)},I(Vn,"EcorePackageImpl/8",1241),D(1242,1,xi,Lre),h.fk=function(t){return De(t,480)},h.gk=function(t){return We(jM,jn,480,t,0,1)},I(Vn,"EcorePackageImpl/9",1242),D(1038,2080,L5t,cZe),h.Mi=function(t,n){F4n(this,l(n,424))},h.Qi=function(t,n){i2t(this,t,l(n,424))},I(Vn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1038),D(1039,152,rB,Iat),h.jj=function(){return this.a.a},I(Vn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1039),D(1067,1066,{},Gnt),I("org.eclipse.emf.ecore.plugin","EcorePlugin",1067);var rBe=Ts(r6t,"Resource");D(799,1524,i6t),h.Hl=function(t){},h.Il=function(t){},h.El=function(){return!this.a&&(this.a=new Yie(this)),this.a},h.Fl=function(t){var n,r,s,o,f;if(s=t.length,s>0)if(Yn(0,t.length),t.charCodeAt(0)==47){for(f=new Pu(4),o=1,n=1;n0&&(t=(Va(0,r,t.length),t.substr(0,r))));return fTn(this,t)},h.Gl=function(){return this.c},h.Ib=function(){var t;return Pm(this.Rm)+"@"+(t=ts(this)>>>0,t.toString(16))+" uri='"+this.d+"'"},h.b=!1,I(w0e,"ResourceImpl",799),D(1525,799,i6t,JQe),I(w0e,"BinaryResourceImpl",1525),D(1190,708,d0e),h.bj=function(t){return De(t,58)?r2n(this,l(t,58)):De(t,599)?new ar(l(t,599).El()):qe(t)===qe(this.f)?l(t,16).Kc():(jk(),yF.a)},h.Ob=function(){return j9e(this)},h.a=!1,I(us,"EcoreUtil/ContentTreeIterator",1190),D(1526,1190,d0e,cat),h.bj=function(t){return qe(t)===qe(this.f)?l(t,15).Kc():new sut(l(t,58))},I(w0e,"ResourceImpl/5",1526),D(658,2092,G5t,Yie),h.Hc=function(t){return this.i<=4?zT(this,t):De(t,54)&&l(t,54).Jh()==this.a},h.Mi=function(t,n){t==this.i-1&&(this.a.b||(this.a.b=!0))},h.Oi=function(t,n){t==0?this.a.b||(this.a.b=!0):Woe(this,t,n)},h.Qi=function(t,n){},h.Ri=function(t,n,r){},h.Lj=function(){return 2},h.jj=function(){return this.a},h.Mj=function(){return!0},h.Nj=function(t,n){var r;return r=l(t,54),n=r.fi(this.a,n),n},h.Oj=function(t,n){var r;return r=l(t,54),r.fi(null,n)},h.Pj=function(){return!1},h.Si=function(){return!0},h.aj=function(t){return We(sm,jn,58,t,0,1)},h.Yi=function(){return!1},I(w0e,"ResourceImpl/ContentsEList",658),D(970,2062,aE,ZQe),h.fd=function(t){return this.a.Ki(t)},h.gc=function(){return this.a.gc()},I(us,"AbstractSequentialInternalEList/1",970);var iBe,sBe,no,aBe;D(634,1,{},lst);var OY,NY;I(us,"BasicExtendedMetaData",634),D(1181,1,{},fnt),h.Jl=function(){return null},h.Kl=function(){return this.a==-2&&Ye(this,f9n(this.d,this.b)),this.a},h.Ll=function(){return null},h.Ml=function(){return Cn(),Cn(),Co},h.xe=function(){return this.c==CE&&vt(this,Adt(this.d,this.b)),this.c},h.Nl=function(){return 0},h.a=-2,h.c=CE,I(us,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1181),D(1182,1,{},Pct),h.Jl=function(){return this.a==(nT(),OY)&&Mt(this,h_n(this.f,this.b)),this.a},h.Kl=function(){return 0},h.Ll=function(){return this.c==(nT(),OY)&&Qe(this,f_n(this.f,this.b)),this.c},h.Ml=function(){return!this.d&&Yt(this,XAn(this.f,this.b)),this.d},h.xe=function(){return this.e==CE&&_n(this,Adt(this.f,this.b)),this.e},h.Nl=function(){return this.g==-2&&Xt(this,Dxn(this.f,this.b)),this.g},h.e=CE,h.g=-2,I(us,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1182),D(1180,1,{},dnt),h.b=!1,h.c=!1,I(us,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1180),D(1183,1,{},Bct),h.c=-2,h.e=CE,h.f=CE,I(us,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1183),D(593,632,Ec,sH),h.Lj=function(){return this.c},h.ol=function(){return!1},h.Wi=function(t,n){return n},h.c=0,I(us,"EDataTypeEList",593);var oBe=Ts(us,"FeatureMap");D(78,593,{3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},Ms),h.bd=function(t,n){MCn(this,t,l(n,76))},h.Fc=function(t){return WEn(this,l(t,76))},h.Hi=function(t){epn(this,l(t,76))},h.Nj=function(t,n){return x0n(this,l(t,76),n)},h.Oj=function(t,n){return D4e(this,l(t,76),n)},h.Ti=function(t,n){return nAn(this,t,n)},h.Wi=function(t,n){return qMn(this,t,l(n,76))},h.hd=function(t,n){return mSn(this,t,l(n,76))},h.Uj=function(t,n){return k0n(this,l(t,76),n)},h.Vj=function(t,n){return jit(this,l(t,76),n)},h.Wj=function(t,n,r){return vxn(this,l(t,76),l(n,76),r)},h.Zi=function(t,n){return que(this,t,l(n,76))},h.Ol=function(t,n){return Mke(this,t,n)},h.cd=function(t,n){var r,s,o,f,g,w,T,C,L;for(C=new Bw(n.gc()),o=n.Kc();o.Ob();)if(s=l(o.Pb(),76),f=s.Lk(),dp(this.e,f))(!f.Si()||!YH(this,f,s.md())&&!zT(C,s))&&zr(C,s);else{for(L=Wu(this.e.Dh(),f),r=l(this.g,124),g=!0,w=0;w=0;)if(n=t[this.c],this.k.am(n.Lk()))return this.j=this.f?n:n.md(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},I(us,"BasicFeatureMap/FeatureEIterator",420),D(676,420,dg,sae),h.ul=function(){return!0},I(us,"BasicFeatureMap/ResolvingFeatureEIterator",676),D(968,496,eK,nrt),h.pj=function(){return this},I(us,"EContentsEList/1",968),D(969,496,eK,Snt),h.ul=function(){return!1},I(us,"EContentsEList/2",969),D(967,287,tK,rrt),h.wl=function(t){},h.Ob=function(){return!1},h.Sb=function(){return!1},I(us,"EContentsEList/FeatureIteratorImpl/1",967),D(840,593,Ec,Rye),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),ch(this.e)?(t=this.a,this.a=!1,Bi(this.e,new l0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EDataTypeEList/Unsettable",840),D(1958,593,Ec,lrt),h.Si=function(){return!0},I(us,"EDataTypeUniqueEList",1958),D(1959,840,Ec,hrt),h.Si=function(){return!0},I(us,"EDataTypeUniqueEList/Unsettable",1959),D(147,83,Ec,bl),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectContainmentEList/Resolving",147),D(1184,555,Ec,frt),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectContainmentEList/Unsettable/Resolving",1184),D(766,14,Ec,E4e),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),ch(this.e)?(t=this.a,this.a=!1,Bi(this.e,new l0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EObjectContainmentWithInverseEList/Unsettable",766),D(1222,766,Ec,Cit),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1222),D(757,505,Ec,jye),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),ch(this.e)?(t=this.a,this.a=!1,Bi(this.e,new l0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EObjectEList/Unsettable",757),D(338,505,Ec,q5),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectResolvingEList",338),D(1844,757,Ec,drt),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectResolvingEList/Unsettable",1844),D(1527,1,{},Mre);var LAt;I(us,"EObjectValidator",1527),D(559,505,Ec,kH),h.il=function(){return this.d},h.jl=function(){return this.b},h.Mj=function(){return!0},h.ml=function(){return!0},h.b=0,I(us,"EObjectWithInverseEList",559),D(1225,559,Ec,Sit),h.ll=function(){return!0},I(us,"EObjectWithInverseEList/ManyInverse",1225),D(635,559,Ec,Sae),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),ch(this.e)?(t=this.a,this.a=!1,Bi(this.e,new l0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EObjectWithInverseEList/Unsettable",635),D(1224,635,Ec,_it),h.ll=function(){return!0},I(us,"EObjectWithInverseEList/Unsettable/ManyInverse",1224),D(767,559,Ec,C4e),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectWithInverseResolvingEList",767),D(32,767,Ec,An),h.ll=function(){return!0},I(us,"EObjectWithInverseResolvingEList/ManyInverse",32),D(768,635,Ec,S4e),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectWithInverseResolvingEList/Unsettable",768),D(1223,768,Ec,Ait),h.ll=function(){return!0},I(us,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1223),D(1185,632,Ec),h.Li=function(){return(this.b&1792)==0},h.Ni=function(){this.b|=1},h.kl=function(){return(this.b&4)!=0},h.Mj=function(){return(this.b&40)!=0},h.ll=function(){return(this.b&16)!=0},h.ml=function(){return(this.b&8)!=0},h.nl=function(){return(this.b&a4)!=0},h.al=function(){return(this.b&32)!=0},h.ol=function(){return(this.b&b0)!=0},h.fk=function(t){return this.d?gut(this.d,t):this.Lk().Hk().fk(t)},h.Qj=function(){return this.b&2?(this.b&1)!=0:this.i!=0},h.Si=function(){return(this.b&128)!=0},h.Gk=function(){var t;$r(this),this.b&2&&(ch(this.e)?(t=(this.b&1)!=0,this.b&=-2,Tk(this,new l0(this.e,2,vs(this.e.Dh(),this.Lk()),t,!1))):this.b&=-2)},h.Yi=function(){return(this.b&1536)==0},h.b=0,I(us,"EcoreEList/Generic",1185),D(1186,1185,Ec,yot),h.Lk=function(){return this.a},I(us,"EcoreEList/Dynamic",1186),D(765,66,Bd,$we),h.aj=function(t){return EN(this.a.a,t)},I(us,"EcoreEMap/1",765),D(764,83,Ec,E5e),h.Mi=function(t,n){gV(this.b,l(n,136))},h.Oi=function(t,n){m0t(this.b)},h.Pi=function(t,n,r){var s;++(s=this.b,l(n,136),s).e},h.Qi=function(t,n){Qce(this.b,l(n,136))},h.Ri=function(t,n,r){Qce(this.b,l(r,136)),qe(r)===qe(n)&&l(r,136).Ci(whn(l(n,136).ld())),gV(this.b,l(n,136))},I(us,"EcoreEMap/DelegateEObjectContainmentEList",764),D(1220,141,GSe,Nft),I(us,"EcoreEMap/Unsettable",1220),D(1221,764,Ec,Lit),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),ch(this.e)?(t=this.a,this.a=!1,Bi(this.e,new l0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1221),D(1189,215,w6,xat),h.a=!1,h.b=!1,I(us,"EcoreUtil/Copier",1189),D(759,1,Ia,sut),h.Nb=function(t){Qa(this,t)},h.Ob=function(){return ddt(this)},h.Pb=function(){var t;return ddt(this),t=this.b,this.b=null,t},h.Qb=function(){this.a.Qb()},I(us,"EcoreUtil/ProperContentIterator",759),D(1528,1527,{},yz);var MAt;I(us,"EcoreValidator",1528);var DAt;Ts(us,"FeatureMapUtil/Validator"),D(1295,1,{2041:1},y5),h.am=function(t){return!0},I(us,"FeatureMapUtil/1",1295),D(773,1,{2041:1},aTe),h.am=function(t){var n;return this.c==t?!0:(n=Pt(or(this.a,t)),n==null?v_n(this,t)?(slt(this.a,t,(Hn(),AE)),!0):(slt(this.a,t,(Hn(),Ub)),!1):n==(Hn(),AE))},h.e=!1;var wpe;I(us,"FeatureMapUtil/BasicValidator",773),D(774,45,w6,Bye),I(us,"FeatureMapUtil/BasicValidator/Cache",774),D(509,56,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,71:1,97:1},AO),h.bd=function(t,n){Wbt(this.c,this.b,t,n)},h.Fc=function(t){return Mke(this.c,this.b,t)},h.cd=function(t,n){return jLn(this.c,this.b,t,n)},h.Gc=function(t){return R_(this,t)},h.Gi=function(t,n){Nwn(this.c,this.b,t,n)},h.Wk=function(t,n){return kke(this.c,this.b,t,n)},h.$i=function(t){return YV(this.c,this.b,t,!1)},h.Ii=function(){return Rnt(this.c,this.b)},h.Ji=function(){return ahn(this.c,this.b)},h.Ki=function(t){return jvn(this.c,this.b,t)},h.Xk=function(t,n){return cit(this,t,n)},h.$b=function(){A8(this)},h.Hc=function(t){return YH(this.c,this.b,t)},h.Ic=function(t){return R3n(this.c,this.b,t)},h.Xb=function(t){return YV(this.c,this.b,t,!0)},h.Fk=function(t){return this},h.dd=function(t){return Gmn(this.c,this.b,t)},h.dc=function(){return Nq(this)},h.Qj=function(){return!VN(this.c,this.b)},h.Kc=function(){return Ewn(this.c,this.b)},h.ed=function(){return Cwn(this.c,this.b)},h.fd=function(t){return n5n(this.c,this.b,t)},h.Ti=function(t,n){return uvt(this.c,this.b,t,n)},h.Ui=function(t,n){qvn(this.c,this.b,t,n)},h.gd=function(t){return zpt(this.c,this.b,t)},h.Mc=function(t){return z_n(this.c,this.b,t)},h.hd=function(t,n){return vvt(this.c,this.b,t,n)},h.Wb=function(t){MV(this.c,this.b),R_(this,l(t,15))},h.gc=function(){return t5n(this.c,this.b)},h.Pc=function(){return Wbn(this.c,this.b)},h.Qc=function(t){return Kmn(this.c,this.b,t)},h.Ib=function(){var t,n;for(n=new e2,n.a+="[",t=Rnt(this.c,this.b);zce(t);)Jo(n,$_(hV(t))),zce(t)&&(n.a+=To);return n.a+="]",n.a},h.Gk=function(){MV(this.c,this.b)},I(us,"FeatureMapUtil/FeatureEList",509),D(644,39,rB,Foe),h.hj=function(t){return _A(this,t)},h.mj=function(t){var n,r,s,o,f,g,w;switch(this.d){case 1:case 2:{if(f=t.jj(),qe(f)===qe(this.c)&&_A(this,null)==t.hj(null))return this.g=t.ij(),t.gj()==1&&(this.d=1),!0;break}case 3:{switch(o=t.gj(),o){case 3:{if(f=t.jj(),qe(f)===qe(this.c)&&_A(this,null)==t.hj(null))return this.d=5,n=new Bw(2),zr(n,this.g),zr(n,t.ij()),this.g=n,!0;break}}break}case 5:{switch(o=t.gj(),o){case 3:{if(f=t.jj(),qe(f)===qe(this.c)&&_A(this,null)==t.hj(null))return r=l(this.g,16),r.Fc(t.ij()),!0;break}}break}case 4:{switch(o=t.gj(),o){case 3:{if(f=t.jj(),qe(f)===qe(this.c)&&_A(this,null)==t.hj(null))return this.d=1,this.g=t.ij(),!0;break}case 4:{if(f=t.jj(),qe(f)===qe(this.c)&&_A(this,null)==t.hj(null))return this.d=6,w=new Bw(2),zr(w,this.n),zr(w,t.kj()),this.n=w,g=he(le(Ur,1),fi,28,15,[this.o,t.lj()]),this.g=g,!0;break}}break}case 6:{switch(o=t.gj(),o){case 4:{if(f=t.jj(),qe(f)===qe(this.c)&&_A(this,null)==t.hj(null))return r=l(this.n,16),r.Fc(t.kj()),g=l(this.g,53),s=We(Ur,fi,28,g.length+1,15,1),gu(g,0,s,0,g.length),s[g.length]=t.lj(),this.g=s,!0;break}}break}}return!1},I(us,"FeatureMapUtil/FeatureENotificationImpl",644),D(564,509,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},uH),h.Ol=function(t,n){return Mke(this.c,t,n)},h.Pl=function(t,n,r){return kke(this.c,t,n,r)},h.Ql=function(t,n,r){return Wke(this.c,t,n,r)},h.Rl=function(){return this},h.Sl=function(t,n){return TP(this.c,t,n)},h.Tl=function(t){return l(YV(this.c,this.b,t,!1),76).Lk()},h.Ul=function(t){return l(YV(this.c,this.b,t,!1),76).md()},h.Vl=function(){return this.a},h.Wl=function(t){return!VN(this.c,t)},h.Xl=function(t,n){XV(this.c,t,n)},h.Yl=function(t){return Fft(this.c,t)},h.Zl=function(t){pgt(this.c,t)},I(us,"FeatureMapUtil/FeatureFeatureMap",564),D(1294,1,v0e,hnt),h.Fk=function(t){return YV(this.b,this.a,-1,t)},h.Qj=function(){return!VN(this.b,this.a)},h.Wb=function(t){XV(this.b,this.a,t)},h.Gk=function(){MV(this.b,this.a)},I(us,"FeatureMapUtil/FeatureValue",1294);var u9,ype,xpe,l9,IAt,kF=Ts(uK,"AnyType");D(680,63,gp,fse),I(uK,"InvalidDatatypeValueException",680);var PY=Ts(uK,a6t),TF=Ts(uK,o6t),cBe=Ts(uK,c6t),OAt,ru,uBe,Nv,NAt,PAt,BAt,FAt,RAt,jAt,$At,zAt,qAt,HAt,UAt,l7,VAt,h7,UM,GAt,I3,EF,CF,KAt,VM,GM;D(844,516,{110:1,94:1,93:1,58:1,54:1,99:1,857:1},s3e),h.Lh=function(t,n,r){switch(t){case 0:return r?(!this.c&&(this.c=new Ms(this,0)),this.c):(!this.c&&(this.c=new Ms(this,0)),this.c.b);case 1:return r?(!this.c&&(this.c=new Ms(this,0)),l(yu(this.c,(Wi(),Nv)),160)):(!this.c&&(this.c=new Ms(this,0)),l(l(yu(this.c,(Wi(),Nv)),160),220)).Vl();case 2:return r?(!this.b&&(this.b=new Ms(this,2)),this.b):(!this.b&&(this.b=new Ms(this,2)),this.b.b)}return rf(this,t-wr(this.ii()),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),t),n,r)},h.Uh=function(t,n,r){var s;switch(n){case 0:return!this.c&&(this.c=new Ms(this,0)),wP(this.c,t,r);case 1:return(!this.c&&(this.c=new Ms(this,0)),l(l(yu(this.c,(Wi(),Nv)),160),71)).Xk(t,r);case 2:return!this.b&&(this.b=new Ms(this,2)),wP(this.b,t,r)}return s=l(Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),n),69),s.wk().Ak(this,c7e(this),n-wr(this.ii()),t,r)},h.Wh=function(t){switch(t){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new Ms(this,0)),l(yu(this.c,(Wi(),Nv)),160)).dc();case 2:return!!this.b&&this.b.i!=0}return tf(this,t-wr(this.ii()),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),t))},h.bi=function(t,n){switch(t){case 0:!this.c&&(this.c=new Ms(this,0)),WO(this.c,n);return;case 1:(!this.c&&(this.c=new Ms(this,0)),l(l(yu(this.c,(Wi(),Nv)),160),220)).Wb(n);return;case 2:!this.b&&(this.b=new Ms(this,2)),WO(this.b,n);return}cf(this,t-wr(this.ii()),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),t),n)},h.ii=function(){return Wi(),uBe},h.ki=function(t){switch(t){case 0:!this.c&&(this.c=new Ms(this,0)),$r(this.c);return;case 1:(!this.c&&(this.c=new Ms(this,0)),l(yu(this.c,(Wi(),Nv)),160)).$b();return;case 2:!this.b&&(this.b=new Ms(this,2)),$r(this.b);return}of(this,t-wr(this.ii()),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),t))},h.Ib=function(){var t;return this.j&4?d0(this):(t=new Af(d0(this)),t.a+=" (mixed: ",N_(t,this.c),t.a+=", anyAttribute: ",N_(t,this.b),t.a+=")",t.a)},I(na,"AnyTypeImpl",844),D(681,516,{110:1,94:1,93:1,58:1,54:1,99:1,2119:1,681:1},Nre),h.Lh=function(t,n,r){switch(t){case 0:return this.a;case 1:return this.b}return rf(this,t-wr((Wi(),l7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():l7,t),n,r)},h.Wh=function(t){switch(t){case 0:return this.a!=null;case 1:return this.b!=null}return tf(this,t-wr((Wi(),l7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():l7,t))},h.bi=function(t,n){switch(t){case 0:mr(this,Zr(n));return;case 1:gr(this,Zr(n));return}cf(this,t-wr((Wi(),l7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():l7,t),n)},h.ii=function(){return Wi(),l7},h.ki=function(t){switch(t){case 0:this.a=null;return;case 1:this.b=null;return}of(this,t-wr((Wi(),l7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():l7,t))},h.Ib=function(){var t;return this.j&4?d0(this):(t=new Af(d0(this)),t.a+=" (data: ",Jo(t,this.a),t.a+=", target: ",Jo(t,this.b),t.a+=")",t.a)},h.a=null,h.b=null,I(na,"ProcessingInstructionImpl",681),D(682,844,{110:1,94:1,93:1,58:1,54:1,99:1,857:1,2120:1,682:1},qJe),h.Lh=function(t,n,r){switch(t){case 0:return r?(!this.c&&(this.c=new Ms(this,0)),this.c):(!this.c&&(this.c=new Ms(this,0)),this.c.b);case 1:return r?(!this.c&&(this.c=new Ms(this,0)),l(yu(this.c,(Wi(),Nv)),160)):(!this.c&&(this.c=new Ms(this,0)),l(l(yu(this.c,(Wi(),Nv)),160),220)).Vl();case 2:return r?(!this.b&&(this.b=new Ms(this,2)),this.b):(!this.b&&(this.b=new Ms(this,2)),this.b.b);case 3:return!this.c&&(this.c=new Ms(this,0)),Zr(TP(this.c,(Wi(),UM),!0));case 4:return A4e(this.a,(!this.c&&(this.c=new Ms(this,0)),Zr(TP(this.c,(Wi(),UM),!0))));case 5:return this.a}return rf(this,t-wr((Wi(),h7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():h7,t),n,r)},h.Wh=function(t){switch(t){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new Ms(this,0)),l(yu(this.c,(Wi(),Nv)),160)).dc();case 2:return!!this.b&&this.b.i!=0;case 3:return!this.c&&(this.c=new Ms(this,0)),Zr(TP(this.c,(Wi(),UM),!0))!=null;case 4:return A4e(this.a,(!this.c&&(this.c=new Ms(this,0)),Zr(TP(this.c,(Wi(),UM),!0))))!=null;case 5:return!!this.a}return tf(this,t-wr((Wi(),h7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():h7,t))},h.bi=function(t,n){switch(t){case 0:!this.c&&(this.c=new Ms(this,0)),WO(this.c,n);return;case 1:(!this.c&&(this.c=new Ms(this,0)),l(l(yu(this.c,(Wi(),Nv)),160),220)).Wb(n);return;case 2:!this.b&&(this.b=new Ms(this,2)),WO(this.b,n);return;case 3:b6e(this,Zr(n));return;case 4:b6e(this,_4e(this.a,n));return;case 5:Pn(this,l(n,156));return}cf(this,t-wr((Wi(),h7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():h7,t),n)},h.ii=function(){return Wi(),h7},h.ki=function(t){switch(t){case 0:!this.c&&(this.c=new Ms(this,0)),$r(this.c);return;case 1:(!this.c&&(this.c=new Ms(this,0)),l(yu(this.c,(Wi(),Nv)),160)).$b();return;case 2:!this.b&&(this.b=new Ms(this,2)),$r(this.b);return;case 3:!this.c&&(this.c=new Ms(this,0)),XV(this.c,(Wi(),UM),null);return;case 4:b6e(this,_4e(this.a,null));return;case 5:this.a=null;return}of(this,t-wr((Wi(),h7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():h7,t))},I(na,"SimpleAnyTypeImpl",682),D(683,516,{110:1,94:1,93:1,58:1,54:1,99:1,2121:1,683:1},HJe),h.Lh=function(t,n,r){switch(t){case 0:return r?(!this.a&&(this.a=new Ms(this,0)),this.a):(!this.a&&(this.a=new Ms(this,0)),this.a.b);case 1:return r?(!this.b&&(this.b=new yl((En(),Do),Qc,this,1)),this.b):(!this.b&&(this.b=new yl((En(),Do),Qc,this,1)),fN(this.b));case 2:return r?(!this.c&&(this.c=new yl((En(),Do),Qc,this,2)),this.c):(!this.c&&(this.c=new yl((En(),Do),Qc,this,2)),fN(this.c));case 3:return!this.a&&(this.a=new Ms(this,0)),yu(this.a,(Wi(),EF));case 4:return!this.a&&(this.a=new Ms(this,0)),yu(this.a,(Wi(),CF));case 5:return!this.a&&(this.a=new Ms(this,0)),yu(this.a,(Wi(),VM));case 6:return!this.a&&(this.a=new Ms(this,0)),yu(this.a,(Wi(),GM))}return rf(this,t-wr((Wi(),I3)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():I3,t),n,r)},h.Uh=function(t,n,r){var s;switch(n){case 0:return!this.a&&(this.a=new Ms(this,0)),wP(this.a,t,r);case 1:return!this.b&&(this.b=new yl((En(),Do),Qc,this,1)),Jq(this.b,t,r);case 2:return!this.c&&(this.c=new yl((En(),Do),Qc,this,2)),Jq(this.c,t,r);case 5:return!this.a&&(this.a=new Ms(this,0)),cit(yu(this.a,(Wi(),VM)),t,r)}return s=l(Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():(Wi(),I3),n),69),s.wk().Ak(this,c7e(this),n-wr((Wi(),I3)),t,r)},h.Wh=function(t){switch(t){case 0:return!!this.a&&this.a.i!=0;case 1:return!!this.b&&this.b.f!=0;case 2:return!!this.c&&this.c.f!=0;case 3:return!this.a&&(this.a=new Ms(this,0)),!Nq(yu(this.a,(Wi(),EF)));case 4:return!this.a&&(this.a=new Ms(this,0)),!Nq(yu(this.a,(Wi(),CF)));case 5:return!this.a&&(this.a=new Ms(this,0)),!Nq(yu(this.a,(Wi(),VM)));case 6:return!this.a&&(this.a=new Ms(this,0)),!Nq(yu(this.a,(Wi(),GM)))}return tf(this,t-wr((Wi(),I3)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():I3,t))},h.bi=function(t,n){switch(t){case 0:!this.a&&(this.a=new Ms(this,0)),WO(this.a,n);return;case 1:!this.b&&(this.b=new yl((En(),Do),Qc,this,1)),NU(this.b,n);return;case 2:!this.c&&(this.c=new yl((En(),Do),Qc,this,2)),NU(this.c,n);return;case 3:!this.a&&(this.a=new Ms(this,0)),A8(yu(this.a,(Wi(),EF))),!this.a&&(this.a=new Ms(this,0)),R_(yu(this.a,EF),l(n,16));return;case 4:!this.a&&(this.a=new Ms(this,0)),A8(yu(this.a,(Wi(),CF))),!this.a&&(this.a=new Ms(this,0)),R_(yu(this.a,CF),l(n,16));return;case 5:!this.a&&(this.a=new Ms(this,0)),A8(yu(this.a,(Wi(),VM))),!this.a&&(this.a=new Ms(this,0)),R_(yu(this.a,VM),l(n,16));return;case 6:!this.a&&(this.a=new Ms(this,0)),A8(yu(this.a,(Wi(),GM))),!this.a&&(this.a=new Ms(this,0)),R_(yu(this.a,GM),l(n,16));return}cf(this,t-wr((Wi(),I3)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():I3,t),n)},h.ii=function(){return Wi(),I3},h.ki=function(t){switch(t){case 0:!this.a&&(this.a=new Ms(this,0)),$r(this.a);return;case 1:!this.b&&(this.b=new yl((En(),Do),Qc,this,1)),this.b.c.$b();return;case 2:!this.c&&(this.c=new yl((En(),Do),Qc,this,2)),this.c.c.$b();return;case 3:!this.a&&(this.a=new Ms(this,0)),A8(yu(this.a,(Wi(),EF)));return;case 4:!this.a&&(this.a=new Ms(this,0)),A8(yu(this.a,(Wi(),CF)));return;case 5:!this.a&&(this.a=new Ms(this,0)),A8(yu(this.a,(Wi(),VM)));return;case 6:!this.a&&(this.a=new Ms(this,0)),A8(yu(this.a,(Wi(),GM)));return}of(this,t-wr((Wi(),I3)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():I3,t))},h.Ib=function(){var t;return this.j&4?d0(this):(t=new Af(d0(this)),t.a+=" (mixed: ",N_(t,this.a),t.a+=")",t.a)},I(na,"XMLTypeDocumentRootImpl",683),D(2028,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1,2122:1},hk),h.ri=function(t,n){switch(t.hk()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return n==null?null:Tc(n);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return Zr(n);case 6:return Ifn(l(n,195));case 12:case 47:case 49:case 11:return swt(this,t,n);case 13:return n==null?null:HLn(l(n,247));case 15:case 14:return n==null?null:Wgn(ze(Ge(n)));case 17:return npt((Wi(),n));case 18:return npt(n);case 21:case 20:return n==null?null:Ygn(l(n,161).a);case 27:return Ofn(l(n,195));case 30:return bgt((Wi(),l(n,15)));case 31:return bgt(l(n,15));case 40:return Pfn((Wi(),n));case 42:return rpt((Wi(),n));case 43:return rpt(n);case 59:case 48:return Nfn((Wi(),n));default:throw ue(new Wn(kE+t.xe()+c3))}},h.si=function(t){var n,r,s,o,f;switch(t.G==-1&&(t.G=(r=Ah(t),r?x2(r.vi(),t):-1)),t.G){case 0:return n=new s3e,n;case 1:return s=new Nre,s;case 2:return o=new qJe,o;case 3:return f=new HJe,f;default:throw ue(new Wn(n0e+t.zb+c3))}},h.ti=function(t,n){var r,s,o,f,g,w,T,C,L,F,z,V,J,te,fe,Ee;switch(t.hk()){case 5:case 52:case 4:return n;case 6:return z6n(n);case 8:case 7:return n==null?null:_xn(n);case 9:return n==null?null:yN(Oh((s=ku(n,!0),s.length>0&&(Yn(0,s.length),s.charCodeAt(0)==43)?(Yn(1,s.length+1),s.substr(1)):s),-128,127)<<24>>24);case 10:return n==null?null:yN(Oh((o=ku(n,!0),o.length>0&&(Yn(0,o.length),o.charCodeAt(0)==43)?(Yn(1,o.length+1),o.substr(1)):o),-128,127)<<24>>24);case 11:return Zr(e3(this,(Wi(),BAt),n));case 12:return Zr(e3(this,(Wi(),FAt),n));case 13:return n==null?null:new L3e(ku(n,!0));case 15:case 14:return XEn(n);case 16:return Zr(e3(this,(Wi(),RAt),n));case 17:return vdt((Wi(),n));case 18:return vdt(n);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return ku(n,!0);case 21:case 20:return aCn(n);case 22:return Zr(e3(this,(Wi(),jAt),n));case 23:return Zr(e3(this,(Wi(),$At),n));case 24:return Zr(e3(this,(Wi(),zAt),n));case 25:return Zr(e3(this,(Wi(),qAt),n));case 26:return Zr(e3(this,(Wi(),HAt),n));case 27:return L6n(n);case 30:return wdt((Wi(),n));case 31:return wdt(n);case 32:return n==null?null:bt(Oh((L=ku(n,!0),L.length>0&&(Yn(0,L.length),L.charCodeAt(0)==43)?(Yn(1,L.length+1),L.substr(1)):L),ao,Ni));case 33:return n==null?null:new bb((F=ku(n,!0),F.length>0&&(Yn(0,F.length),F.charCodeAt(0)==43)?(Yn(1,F.length+1),F.substr(1)):F));case 34:return n==null?null:bt(Oh((z=ku(n,!0),z.length>0&&(Yn(0,z.length),z.charCodeAt(0)==43)?(Yn(1,z.length+1),z.substr(1)):z),ao,Ni));case 36:return n==null?null:lp(eG((V=ku(n,!0),V.length>0&&(Yn(0,V.length),V.charCodeAt(0)==43)?(Yn(1,V.length+1),V.substr(1)):V)));case 37:return n==null?null:lp(eG((J=ku(n,!0),J.length>0&&(Yn(0,J.length),J.charCodeAt(0)==43)?(Yn(1,J.length+1),J.substr(1)):J)));case 40:return S7n((Wi(),n));case 42:return ydt((Wi(),n));case 43:return ydt(n);case 44:return n==null?null:new bb((te=ku(n,!0),te.length>0&&(Yn(0,te.length),te.charCodeAt(0)==43)?(Yn(1,te.length+1),te.substr(1)):te));case 45:return n==null?null:new bb((fe=ku(n,!0),fe.length>0&&(Yn(0,fe.length),fe.charCodeAt(0)==43)?(Yn(1,fe.length+1),fe.substr(1)):fe));case 46:return ku(n,!1);case 47:return Zr(e3(this,(Wi(),UAt),n));case 59:case 48:return C7n((Wi(),n));case 49:return Zr(e3(this,(Wi(),VAt),n));case 50:return n==null?null:LT(Oh((Ee=ku(n,!0),Ee.length>0&&(Yn(0,Ee.length),Ee.charCodeAt(0)==43)?(Yn(1,Ee.length+1),Ee.substr(1)):Ee),sK,32767)<<16>>16);case 51:return n==null?null:LT(Oh((f=ku(n,!0),f.length>0&&(Yn(0,f.length),f.charCodeAt(0)==43)?(Yn(1,f.length+1),f.substr(1)):f),sK,32767)<<16>>16);case 53:return Zr(e3(this,(Wi(),GAt),n));case 55:return n==null?null:LT(Oh((g=ku(n,!0),g.length>0&&(Yn(0,g.length),g.charCodeAt(0)==43)?(Yn(1,g.length+1),g.substr(1)):g),sK,32767)<<16>>16);case 56:return n==null?null:LT(Oh((w=ku(n,!0),w.length>0&&(Yn(0,w.length),w.charCodeAt(0)==43)?(Yn(1,w.length+1),w.substr(1)):w),sK,32767)<<16>>16);case 57:return n==null?null:lp(eG((T=ku(n,!0),T.length>0&&(Yn(0,T.length),T.charCodeAt(0)==43)?(Yn(1,T.length+1),T.substr(1)):T)));case 58:return n==null?null:lp(eG((C=ku(n,!0),C.length>0&&(Yn(0,C.length),C.charCodeAt(0)==43)?(Yn(1,C.length+1),C.substr(1)):C)));case 60:return n==null?null:bt(Oh((r=ku(n,!0),r.length>0&&(Yn(0,r.length),r.charCodeAt(0)==43)?(Yn(1,r.length+1),r.substr(1)):r),ao,Ni));case 61:return n==null?null:bt(Oh(ku(n,!0),ao,Ni));default:throw ue(new Wn(kE+t.xe()+c3))}};var WAt,lBe,YAt,hBe;I(na,"XMLTypeFactoryImpl",2028),D(594,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1,2044:1,594:1},Hat),h.N=!1,h.O=!1;var XAt=!1;I(na,"XMLTypePackageImpl",594),D(1961,1,{851:1},fk),h.Kk=function(){return jke(),sLt},I(na,"XMLTypePackageImpl/1",1961),D(1970,1,xi,HS),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/10",1970),D(1971,1,xi,Dre),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/11",1971),D(1972,1,xi,Ire),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/12",1972),D(1973,1,xi,b8),h.fk=function(t){return py(t)},h.gk=function(t){return We(ra,dt,345,t,7,1)},I(na,"XMLTypePackageImpl/13",1973),D(1974,1,xi,V$),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/14",1974),D(1975,1,xi,G$),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(bf,e4,15,t,0,1)},I(na,"XMLTypePackageImpl/15",1975),D(1976,1,xi,Ore),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(bf,e4,15,t,0,1)},I(na,"XMLTypePackageImpl/16",1976),D(1977,1,xi,K$),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/17",1977),D(1978,1,xi,W$),h.fk=function(t){return De(t,161)},h.gk=function(t){return We(LE,dt,161,t,0,1)},I(na,"XMLTypePackageImpl/18",1978),D(1979,1,xi,qI),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/19",1979),D(1962,1,xi,Pre),h.fk=function(t){return De(t,857)},h.gk=function(t){return We(kF,jn,857,t,0,1)},I(na,"XMLTypePackageImpl/2",1962),D(1980,1,xi,US),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/20",1980),D(1981,1,xi,Bre),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/21",1981),D(1982,1,xi,Fre),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/22",1982),D(1983,1,xi,Rre),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/23",1983),D(1984,1,xi,jre),h.fk=function(t){return De(t,195)},h.gk=function(t){return We(_l,dt,195,t,0,2)},I(na,"XMLTypePackageImpl/24",1984),D(1985,1,xi,$re),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/25",1985),D(1986,1,xi,Y$),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/26",1986),D(1987,1,xi,zre),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(bf,e4,15,t,0,1)},I(na,"XMLTypePackageImpl/27",1987),D(1988,1,xi,qre),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(bf,e4,15,t,0,1)},I(na,"XMLTypePackageImpl/28",1988),D(1989,1,xi,Hre),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/29",1989),D(1963,1,xi,X$),h.fk=function(t){return De(t,681)},h.gk=function(t){return We(PY,jn,2119,t,0,1)},I(na,"XMLTypePackageImpl/3",1963),D(1990,1,xi,Ure),h.fk=function(t){return De(t,17)},h.gk=function(t){return We(to,dt,17,t,0,1)},I(na,"XMLTypePackageImpl/30",1990),D(1991,1,xi,Vre),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/31",1991),D(1992,1,xi,VS),h.fk=function(t){return De(t,168)},h.gk=function(t){return We(l3,dt,168,t,0,1)},I(na,"XMLTypePackageImpl/32",1992),D(1993,1,xi,Gre),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/33",1993),D(1994,1,xi,Kre),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/34",1994),D(1995,1,xi,Wre),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/35",1995),D(1996,1,xi,Yre),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/36",1996),D(1997,1,xi,Xre),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(bf,e4,15,t,0,1)},I(na,"XMLTypePackageImpl/37",1997),D(1998,1,xi,Qre),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(bf,e4,15,t,0,1)},I(na,"XMLTypePackageImpl/38",1998),D(1999,1,xi,Q$),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/39",1999),D(1964,1,xi,Jre),h.fk=function(t){return De(t,682)},h.gk=function(t){return We(TF,jn,2120,t,0,1)},I(na,"XMLTypePackageImpl/4",1964),D(2e3,1,xi,J$),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/40",2e3),D(2001,1,xi,Zre),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/41",2001),D(2002,1,xi,HI),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/42",2002),D(2003,1,xi,eie),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/43",2003),D(2004,1,xi,Z$),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/44",2004),D(2005,1,xi,tie),h.fk=function(t){return De(t,191)},h.gk=function(t){return We(h3,dt,191,t,0,1)},I(na,"XMLTypePackageImpl/45",2005),D(2006,1,xi,ez),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/46",2006),D(2007,1,xi,nie),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/47",2007),D(2008,1,xi,tz),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/48",2008),D(2009,1,xi,nz),h.fk=function(t){return De(t,191)},h.gk=function(t){return We(h3,dt,191,t,0,1)},I(na,"XMLTypePackageImpl/49",2009),D(1965,1,xi,rz),h.fk=function(t){return De(t,683)},h.gk=function(t){return We(cBe,jn,2121,t,0,1)},I(na,"XMLTypePackageImpl/5",1965),D(2010,1,xi,UI),h.fk=function(t){return De(t,168)},h.gk=function(t){return We(l3,dt,168,t,0,1)},I(na,"XMLTypePackageImpl/50",2010),D(2011,1,xi,x5),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/51",2011),D(2012,1,xi,GS),h.fk=function(t){return De(t,17)},h.gk=function(t){return We(to,dt,17,t,0,1)},I(na,"XMLTypePackageImpl/52",2012),D(1966,1,xi,S1),h.fk=function(t){return Da(t)},h.gk=function(t){return We($t,dt,2,t,6,1)},I(na,"XMLTypePackageImpl/6",1966),D(1967,1,xi,iz),h.fk=function(t){return De(t,195)},h.gk=function(t){return We(_l,dt,195,t,0,2)},I(na,"XMLTypePackageImpl/7",1967),D(1968,1,xi,dk),h.fk=function(t){return gy(t)},h.gk=function(t){return We(Ps,dt,485,t,8,1)},I(na,"XMLTypePackageImpl/8",1968),D(1969,1,xi,VI),h.fk=function(t){return De(t,222)},h.gk=function(t){return We($x,dt,222,t,0,1)},I(na,"XMLTypePackageImpl/9",1969);var nd,H2,KM,BY,ye;D(55,63,gp,ri),I(L2,"RegEx/ParseException",55),D(836,1,{},sz),h.bm=function(t){return tr*16)throw ue(new ri(si((Jr(),w5t))));r=r*16+o}while(!0);if(this.a!=125)throw ue(new ri(si((Jr(),y5t))));if(r>SE)throw ue(new ri(si((Jr(),x5t))));t=r}else{if(o=0,this.c!=0||(o=nv(this.a))<0)throw ue(new ri(si((Jr(),A2))));if(r=o,Mi(this),this.c!=0||(o=nv(this.a))<0)throw ue(new ri(si((Jr(),A2))));r=r*16+o,t=r}break;case 117:if(s=0,Mi(this),this.c!=0||(s=nv(this.a))<0)throw ue(new ri(si((Jr(),A2))));if(n=s,Mi(this),this.c!=0||(s=nv(this.a))<0)throw ue(new ri(si((Jr(),A2))));if(n=n*16+s,Mi(this),this.c!=0||(s=nv(this.a))<0)throw ue(new ri(si((Jr(),A2))));if(n=n*16+s,Mi(this),this.c!=0||(s=nv(this.a))<0)throw ue(new ri(si((Jr(),A2))));n=n*16+s,t=n;break;case 118:if(Mi(this),this.c!=0||(s=nv(this.a))<0)throw ue(new ri(si((Jr(),A2))));if(n=s,Mi(this),this.c!=0||(s=nv(this.a))<0)throw ue(new ri(si((Jr(),A2))));if(n=n*16+s,Mi(this),this.c!=0||(s=nv(this.a))<0)throw ue(new ri(si((Jr(),A2))));if(n=n*16+s,Mi(this),this.c!=0||(s=nv(this.a))<0)throw ue(new ri(si((Jr(),A2))));if(n=n*16+s,Mi(this),this.c!=0||(s=nv(this.a))<0)throw ue(new ri(si((Jr(),A2))));if(n=n*16+s,Mi(this),this.c!=0||(s=nv(this.a))<0)throw ue(new ri(si((Jr(),A2))));if(n=n*16+s,n>SE)throw ue(new ri(si((Jr(),"parser.descappe.4"))));t=n;break;case 65:case 90:case 122:throw ue(new ri(si((Jr(),k5t))))}return t},h.dm=function(t){var n,r;switch(t){case 100:r=(this.e&32)==32?Bb("Nd",!0):(Ii(),FY);break;case 68:r=(this.e&32)==32?Bb("Nd",!1):(Ii(),mBe);break;case 119:r=(this.e&32)==32?Bb("IsWord",!0):(Ii(),fC);break;case 87:r=(this.e&32)==32?Bb("IsWord",!1):(Ii(),wBe);break;case 115:r=(this.e&32)==32?Bb("IsSpace",!0):(Ii(),h9);break;case 83:r=(this.e&32)==32?Bb("IsSpace",!1):(Ii(),vBe);break;default:throw ue(new Ic((n=t,k6t+n.toString(16))))}return r},h.em=function(t){var n,r,s,o,f,g,w,T,C,L,F,z;for(this.b=1,Mi(this),n=null,this.c==0&&this.a==94?(Mi(this),t?L=(Ii(),Ii(),new _h(5)):(n=(Ii(),Ii(),new _h(4)),xu(n,0,SE),L=new _h(4))):L=(Ii(),Ii(),new _h(4)),o=!0;(z=this.c)!=1&&!(z==0&&this.a==93&&!o);){if(o=!1,r=this.a,s=!1,z==10)switch(r){case 100:case 68:case 119:case 87:case 115:case 83:Xy(L,this.dm(r)),s=!0;break;case 105:case 73:case 99:case 67:r=this.um(L,r),r<0&&(s=!0);break;case 112:case 80:if(F=F9e(this,r),!F)throw ue(new ri(si((Jr(),p0e))));Xy(L,F),s=!0;break;default:r=this.cm()}else if(z==20){if(g=Bk(this.i,58,this.d),g<0)throw ue(new ri(si((Jr(),$Se))));if(w=!0,io(this.i,this.d)==94&&(++this.d,w=!1),f=ef(this.i,this.d,g),T=Wlt(f,w,(this.e&512)==512),!T)throw ue(new ri(si((Jr(),g5t))));if(Xy(L,T),s=!0,g+1>=this.j||io(this.i,g+1)!=93)throw ue(new ri(si((Jr(),$Se))));this.d=g+2}if(Mi(this),!s)if(this.c!=0||this.a!=45)xu(L,r,r);else{if(Mi(this),(z=this.c)==1)throw ue(new ri(si((Jr(),JG))));z==0&&this.a==93?(xu(L,r,r),xu(L,45,45)):(C=this.a,z==10&&(C=this.cm()),Mi(this),xu(L,r,C))}(this.e&b0)==b0&&this.c==0&&this.a==44&&Mi(this)}if(this.c==1)throw ue(new ri(si((Jr(),JG))));return n&&(rL(n,L),L=n),l6(L),tL(L),this.b=0,Mi(this),L},h.fm=function(){var t,n,r,s;for(r=this.em(!1);(s=this.c)!=7;)if(t=this.a,s==0&&(t==45||t==38)||s==4){if(Mi(this),this.c!=9)throw ue(new ri(si((Jr(),b5t))));if(n=this.em(!1),s==4)Xy(r,n);else if(t==45)rL(r,n);else if(t==38)twt(r,n);else throw ue(new Ic("ASSERT"))}else throw ue(new ri(si((Jr(),m5t))));return Mi(this),r},h.gm=function(){var t,n;return t=this.a-48,n=(Ii(),Ii(),new koe(12,null,t)),!this.g&&(this.g=new Gz),Vz(this.g,new zwe(t)),Mi(this),n},h.hm=function(){return Mi(this),Ii(),ZAt},h.im=function(){return Mi(this),Ii(),JAt},h.jm=function(){throw ue(new ri(si((Jr(),pf))))},h.km=function(){throw ue(new ri(si((Jr(),pf))))},h.lm=function(){return Mi(this),Uyn()},h.mm=function(){return Mi(this),Ii(),tLt},h.nm=function(){return Mi(this),Ii(),rLt},h.om=function(){var t;if(this.d>=this.j||((t=io(this.i,this.d++))&65504)!=64)throw ue(new ri(si((Jr(),h5t))));return Mi(this),Ii(),Ii(),new sg(0,t-64)},h.pm=function(){return Mi(this),KAn()},h.qm=function(){return Mi(this),Ii(),iLt},h.rm=function(){var t;return t=(Ii(),Ii(),new sg(0,105)),Mi(this),t},h.sm=function(){return Mi(this),Ii(),nLt},h.tm=function(){return Mi(this),Ii(),eLt},h.um=function(t,n){return this.cm()},h.vm=function(){return Mi(this),Ii(),pBe},h.wm=function(){var t,n,r,s,o;if(this.d+1>=this.j)throw ue(new ri(si((Jr(),c5t))));if(s=-1,n=null,t=io(this.i,this.d),49<=t&&t<=57){if(s=t-48,!this.g&&(this.g=new Gz),Vz(this.g,new zwe(s)),++this.d,io(this.i,this.d)!=41)throw ue(new ri(si((Jr(),pv))));++this.d}else switch(t==63&&--this.d,Mi(this),n=lTe(this),n.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw ue(new ri(si((Jr(),pv))));break;default:throw ue(new ri(si((Jr(),u5t))))}if(Mi(this),o=Gw(this),r=null,o.e==2){if(o.Pm()!=2)throw ue(new ri(si((Jr(),l5t))));r=o.Lm(1),o=o.Lm(0)}if(this.c!=7)throw ue(new ri(si((Jr(),pv))));return Mi(this),Ii(),Ii(),new Lht(s,n,o,r)},h.xm=function(){return Mi(this),Ii(),bBe},h.ym=function(){var t;if(Mi(this),t=TH(24,Gw(this)),this.c!=7)throw ue(new ri(si((Jr(),pv))));return Mi(this),t},h.zm=function(){var t;if(Mi(this),t=TH(20,Gw(this)),this.c!=7)throw ue(new ri(si((Jr(),pv))));return Mi(this),t},h.Am=function(){var t;if(Mi(this),t=TH(22,Gw(this)),this.c!=7)throw ue(new ri(si((Jr(),pv))));return Mi(this),t},h.Bm=function(){var t,n,r,s,o;for(t=0,r=0,n=-1;this.d=this.j)throw ue(new ri(si((Jr(),RSe))));if(n==45){for(++this.d;this.d=this.j)throw ue(new ri(si((Jr(),RSe))))}if(n==58){if(++this.d,Mi(this),s=Eat(Gw(this),t,r),this.c!=7)throw ue(new ri(si((Jr(),pv))));Mi(this)}else if(n==41)++this.d,Mi(this),s=Eat(Gw(this),t,r);else throw ue(new ri(si((Jr(),o5t))));return s},h.Cm=function(){var t;if(Mi(this),t=TH(21,Gw(this)),this.c!=7)throw ue(new ri(si((Jr(),pv))));return Mi(this),t},h.Dm=function(){var t;if(Mi(this),t=TH(23,Gw(this)),this.c!=7)throw ue(new ri(si((Jr(),pv))));return Mi(this),t},h.Em=function(){var t,n;if(Mi(this),t=this.f++,n=Xae(Gw(this),t),this.c!=7)throw ue(new ri(si((Jr(),pv))));return Mi(this),n},h.Fm=function(){var t;if(Mi(this),t=Xae(Gw(this),0),this.c!=7)throw ue(new ri(si((Jr(),pv))));return Mi(this),t},h.Gm=function(t){return Mi(this),this.c==5?(Mi(this),gH(t,(Ii(),Ii(),new _y(9,t)))):gH(t,(Ii(),Ii(),new _y(3,t)))},h.Hm=function(t){var n;return Mi(this),n=(Ii(),Ii(),new F_(2)),this.c==5?(Mi(this),sv(n,YM),sv(n,t)):(sv(n,t),sv(n,YM)),n},h.Im=function(t){return Mi(this),this.c==5?(Mi(this),Ii(),Ii(),new _y(9,t)):(Ii(),Ii(),new _y(3,t))},h.a=0,h.b=0,h.c=0,h.d=0,h.e=0,h.f=1,h.g=null,h.j=0,I(L2,"RegEx/RegexParser",836),D(1947,836,{},UJe),h.bm=function(t){return!1},h.cm=function(){return vke(this)},h.dm=function(t){return QT(t)},h.em=function(t){return Xwt(this)},h.fm=function(){throw ue(new ri(si((Jr(),pf))))},h.gm=function(){throw ue(new ri(si((Jr(),pf))))},h.hm=function(){throw ue(new ri(si((Jr(),pf))))},h.im=function(){throw ue(new ri(si((Jr(),pf))))},h.jm=function(){return Mi(this),QT(67)},h.km=function(){return Mi(this),QT(73)},h.lm=function(){throw ue(new ri(si((Jr(),pf))))},h.mm=function(){throw ue(new ri(si((Jr(),pf))))},h.nm=function(){throw ue(new ri(si((Jr(),pf))))},h.om=function(){return Mi(this),QT(99)},h.pm=function(){throw ue(new ri(si((Jr(),pf))))},h.qm=function(){throw ue(new ri(si((Jr(),pf))))},h.rm=function(){return Mi(this),QT(105)},h.sm=function(){throw ue(new ri(si((Jr(),pf))))},h.tm=function(){throw ue(new ri(si((Jr(),pf))))},h.um=function(t,n){return Xy(t,QT(n)),-1},h.vm=function(){return Mi(this),Ii(),Ii(),new sg(0,94)},h.wm=function(){throw ue(new ri(si((Jr(),pf))))},h.xm=function(){return Mi(this),Ii(),Ii(),new sg(0,36)},h.ym=function(){throw ue(new ri(si((Jr(),pf))))},h.zm=function(){throw ue(new ri(si((Jr(),pf))))},h.Am=function(){throw ue(new ri(si((Jr(),pf))))},h.Bm=function(){throw ue(new ri(si((Jr(),pf))))},h.Cm=function(){throw ue(new ri(si((Jr(),pf))))},h.Dm=function(){throw ue(new ri(si((Jr(),pf))))},h.Em=function(){var t;if(Mi(this),t=Xae(Gw(this),0),this.c!=7)throw ue(new ri(si((Jr(),pv))));return Mi(this),t},h.Fm=function(){throw ue(new ri(si((Jr(),pf))))},h.Gm=function(t){return Mi(this),gH(t,(Ii(),Ii(),new _y(3,t)))},h.Hm=function(t){var n;return Mi(this),n=(Ii(),Ii(),new F_(2)),sv(n,t),sv(n,YM),n},h.Im=function(t){return Mi(this),Ii(),Ii(),new _y(3,t)};var f7=null,lC=null;I(L2,"RegEx/ParserForXMLSchema",1947),D(122,1,_E,rw),h.Jm=function(t){throw ue(new Ic("Not supported."))},h.Km=function(){return-1},h.Lm=function(t){return null},h.Mm=function(){return null},h.Nm=function(t){},h.Om=function(t){},h.Pm=function(){return 0},h.Ib=function(){return this.Qm(0)},h.Qm=function(t){return this.e==11?".":""},h.e=0;var fBe,hC,WM,QAt,dBe,R4=null,FY,kpe=null,gBe,YM,Tpe=null,pBe,bBe,mBe,vBe,wBe,JAt,h9,ZAt,eLt,tLt,nLt,fC,rLt,iLt,rNn=I(L2,"RegEx/Token",122);D(138,122,{3:1,138:1,122:1},_h),h.Qm=function(t){var n,r,s;if(this.e==4)if(this==gBe)r=".";else if(this==FY)r="\\d";else if(this==fC)r="\\w";else if(this==h9)r="\\s";else{for(s=new e2,s.a+="[",n=0;n0&&(s.a+=","),this.b[n]===this.b[n+1]?Jo(s,kP(this.b[n])):(Jo(s,kP(this.b[n])),s.a+="-",Jo(s,kP(this.b[n+1])));s.a+="]",r=s.a}else if(this==mBe)r="\\D";else if(this==wBe)r="\\W";else if(this==vBe)r="\\S";else{for(s=new e2,s.a+="[^",n=0;n0&&(s.a+=","),this.b[n]===this.b[n+1]?Jo(s,kP(this.b[n])):(Jo(s,kP(this.b[n])),s.a+="-",Jo(s,kP(this.b[n+1])));s.a+="]",r=s.a}return r},h.a=!1,h.c=!1,I(L2,"RegEx/RangeToken",138),D(592,1,{592:1},zwe),h.a=0,I(L2,"RegEx/RegexParser/ReferencePosition",592),D(591,1,{3:1,591:1},set),h.Fb=function(t){var n;return t==null||!De(t,591)?!1:(n=l(t,591),wn(this.b,n.b)&&this.a==n.a)},h.Hb=function(){return g2(this.b+"/"+hke(this.a))},h.Ib=function(){return this.c.Qm(this.a)},h.a=0,I(L2,"RegEx/RegularExpression",591),D(228,122,_E,sg),h.Km=function(){return this.a},h.Qm=function(t){var n,r,s;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:s="\\"+Cae(this.a&ta);break;case 12:s="\\f";break;case 10:s="\\n";break;case 13:s="\\r";break;case 9:s="\\t";break;case 27:s="\\e";break;default:this.a>=Lo?(r=(n=this.a>>>0,"0"+n.toString(16)),s="\\v"+ef(r,r.length-6,r.length)):s=""+Cae(this.a&ta)}break;case 8:this==pBe||this==bBe?s=""+Cae(this.a&ta):s="\\"+Cae(this.a&ta);break;default:s=null}return s},h.a=0,I(L2,"RegEx/Token/CharToken",228),D(318,122,_E,_y),h.Lm=function(t){return this.a},h.Nm=function(t){this.b=t},h.Om=function(t){this.c=t},h.Pm=function(){return 1},h.Qm=function(t){var n;if(this.e==3)if(this.c<0&&this.b<0)n=this.a.Qm(t)+"*";else if(this.c==this.b)n=this.a.Qm(t)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)n=this.a.Qm(t)+"{"+this.c+","+this.b+"}";else if(this.c>=0&&this.b<0)n=this.a.Qm(t)+"{"+this.c+",}";else throw ue(new Ic("Token#toString(): CLOSURE "+this.c+To+this.b));else if(this.c<0&&this.b<0)n=this.a.Qm(t)+"*?";else if(this.c==this.b)n=this.a.Qm(t)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)n=this.a.Qm(t)+"{"+this.c+","+this.b+"}?";else if(this.c>=0&&this.b<0)n=this.a.Qm(t)+"{"+this.c+",}?";else throw ue(new Ic("Token#toString(): NONGREEDYCLOSURE "+this.c+To+this.b));return n},h.b=0,h.c=0,I(L2,"RegEx/Token/ClosureToken",318),D(837,122,_E,M5e),h.Lm=function(t){return t==0?this.a:this.b},h.Pm=function(){return 2},h.Qm=function(t){var n;return this.b.e==3&&this.b.Lm(0)==this.a?n=this.a.Qm(t)+"+":this.b.e==9&&this.b.Lm(0)==this.a?n=this.a.Qm(t)+"+?":n=this.a.Qm(t)+(""+this.b.Qm(t)),n},I(L2,"RegEx/Token/ConcatToken",837),D(1945,122,_E,Lht),h.Lm=function(t){if(t==0)return this.d;if(t==1)return this.b;throw ue(new Ic("Internal Error: "+t))},h.Pm=function(){return this.b?2:1},h.Qm=function(t){var n;return this.c>0?n="(?("+this.c+")":this.a.e==8?n="(?("+this.a+")":n="(?"+this.a,this.b?n+=this.d+"|"+this.b+")":n+=this.d+")",n},h.c=0,I(L2,"RegEx/Token/ConditionToken",1945),D(1946,122,_E,wct),h.Lm=function(t){return this.b},h.Pm=function(){return 1},h.Qm=function(t){return"(?"+(this.a==0?"":hke(this.a))+(this.c==0?"":hke(this.c))+":"+this.b.Qm(t)+")"},h.a=0,h.c=0,I(L2,"RegEx/Token/ModifierToken",1946),D(838,122,_E,$5e),h.Lm=function(t){return this.a},h.Pm=function(){return 1},h.Qm=function(t){var n;switch(n=null,this.e){case 6:this.b==0?n="(?:"+this.a.Qm(t)+")":n="("+this.a.Qm(t)+")";break;case 20:n="(?="+this.a.Qm(t)+")";break;case 21:n="(?!"+this.a.Qm(t)+")";break;case 22:n="(?<="+this.a.Qm(t)+")";break;case 23:n="(?"+this.a.Qm(t)+")"}return n},h.b=0,I(L2,"RegEx/Token/ParenToken",838),D(530,122,{3:1,122:1,530:1},koe),h.Mm=function(){return this.b},h.Qm=function(t){return this.e==12?"\\"+this.a:jEn(this.b)},h.a=0,I(L2,"RegEx/Token/StringToken",530),D(477,122,_E,F_),h.Jm=function(t){sv(this,t)},h.Lm=function(t){return l(Aw(this.a,t),122)},h.Pm=function(){return this.a?this.a.a.c.length:0},h.Qm=function(t){var n,r,s,o,f;if(this.e==1){if(this.a.a.c.length==2)n=l(Aw(this.a,0),122),r=l(Aw(this.a,1),122),r.e==3&&r.Lm(0)==n?o=n.Qm(t)+"+":r.e==9&&r.Lm(0)==n?o=n.Qm(t)+"+?":o=n.Qm(t)+(""+r.Qm(t));else{for(f=new e2,s=0;s=this.c.b:this.a<=this.c.b},h.Sb=function(){return this.b>0},h.Tb=function(){return this.b},h.Vb=function(){return this.b-1},h.Qb=function(){throw ue(new Jp(L6t))},h.a=0,h.b=0,I(s_e,"ExclusiveRange/RangeIterator",258);var xf=Wk(ZG,"C"),Ur=Wk(ML,"I"),th=Wk(Sx,"Z"),hm=Wk(DL,"J"),_l=Wk(_L,"B"),Oa=Wk(AL,"D"),j4=Wk(LL,"F"),d7=Wk(IL,"S"),iNn=Ts("org.eclipse.elk.core.labels","ILabelManager"),yBe=Ts(Eo,"DiagnosticChain"),xBe=Ts(r6t,"ResourceSet"),kBe=I(Eo,"InvocationTargetException",null),aLt=(Xz(),vvn),oLt=oLt=uxn;h3n(oun),o3n("permProps",[[["locale","default"],[M6t,"gecko1_8"]],[["locale","default"],[M6t,"safari"]]]),oLt(null,"elk",null)}).call(this)}).call(this,typeof Dg<"u"?Dg:typeof self<"u"?self:typeof window<"u"?window:{})},{}],3:[function(u,d,p){function v(A,P){if(!(A instanceof P))throw new TypeError("Cannot call a class as a function")}function b(A,P){if(!A)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return P&&(typeof P=="object"||typeof P=="function")?P:A}function y(A,P){if(typeof P!="function"&&P!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof P);A.prototype=Object.create(P&&P.prototype,{constructor:{value:A,enumerable:!1,writable:!0,configurable:!0}}),P&&(Object.setPrototypeOf?Object.setPrototypeOf(A,P):A.__proto__=P)}var E=u("./elk-api.js").default,_=function(A){y(P,A);function P(){var R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};v(this,P);var B=Object.assign({},R),j=!1;try{u.resolve("web-worker"),j=!0}catch{}if(R.workerUrl)if(j){var W=u("web-worker");B.workerFactory=function(oe){return new W(oe)}}else console.warn(`Web worker requested but 'web-worker' package not installed. +Consider installing the package or pass your own 'workerFactory' to ELK's constructor. +... Falling back to non-web worker version.`);if(!B.workerFactory){var ee=u("./elk-worker.min.js"),ie=ee.Worker;B.workerFactory=function(oe){return new ie(oe)}}return b(this,(P.__proto__||Object.getPrototypeOf(P)).call(this,B))}return P}(E);Object.defineProperty(d.exports,"__esModule",{value:!0}),d.exports=_,_.default=_},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(u,d,p){d.exports=Worker},{}]},{},[3])(3)})})(wWe);var Gan=wWe.exports;const Kan=dC(Gan),yWe=new Kan;let Xv={};const Wan={};let Y7={};const Yan=async function(i,a,u,d,p,v,b){const E=u.select(`[id="${a}"]`).insert("g").attr("class","nodes"),_=Object.keys(i);return await Promise.all(_.map(async function(A){const P=i[A];let R="default";P.classes.length>0&&(R=P.classes.join(" ")),R=R+" flowchart-label";const B=gm(P.styles);let j=P.text!==void 0?P.text:P.id;const W={width:0,height:0},ee=[{id:P.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:P.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:P.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:P.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let ie=0,oe="",be={};switch(P.type){case"round":ie=5,oe="rect";break;case"square":oe="rect";break;case"diamond":oe="question",be={portConstraints:"FIXED_SIDE"};break;case"hexagon":oe="hexagon";break;case"odd":oe="rect_left_inv_arrow";break;case"lean_right":oe="lean_right";break;case"lean_left":oe="lean_left";break;case"trapezoid":oe="trapezoid";break;case"inv_trapezoid":oe="inv_trapezoid";break;case"odd_right":oe="rect_left_inv_arrow";break;case"circle":oe="circle";break;case"ellipse":oe="ellipse";break;case"stadium":oe="stadium";break;case"subroutine":oe="subroutine";break;case"cylinder":oe="cylinder";break;case"group":oe="rect";break;case"doublecircle":oe="doublecircle";break;default:oe="rect"}const ge={labelStyle:B.labelStyle,shape:oe,labelText:j,labelType:P.labelType,rx:ie,ry:ie,class:R,style:B.style,id:P.id,link:P.link,linkTarget:P.linkTarget,tooltip:p.db.getTooltip(P.id)||"",domId:p.db.lookUpDomId(P.id),haveCallback:P.haveCallback,width:P.type==="group"?500:void 0,dir:P.dir,type:P.type,props:P.props,padding:mh().flowchart.padding};let ae,ne;if(ge.type!=="group")ne=await pJ(E,ge,P.dir),ae=ne.node().getBBox();else{d.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:de,bbox:X}=await g1(E,ge,void 0,!0);W.width=X.width,W.wrappingWidth=mh().flowchart.wrappingWidth,W.height=X.height,W.labelNode=de.node(),ge.labelData=W}const se={id:P.id,ports:P.type==="diamond"?ee:[],layoutOptions:be,labelText:j,labelData:W,domId:p.db.lookUpDomId(P.id),width:ae==null?void 0:ae.width,height:ae==null?void 0:ae.height,type:P.type,el:ne,parent:v.parentById[P.id]};Y7[ge.id]=se})),b},xWe=(i,a,u)=>{const d={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return d.TD=d.TB,d[u][a][i]},kWe=(i,a,u)=>{if(Xe.info("getNextPort",{node:i,edgeDirection:a,graphDirection:u}),!Xv[i])switch(u){case"TB":case"TD":Xv[i]={inPosition:"north",outPosition:"south"};break;case"BT":Xv[i]={inPosition:"south",outPosition:"north"};break;case"RL":Xv[i]={inPosition:"east",outPosition:"west"};break;case"LR":Xv[i]={inPosition:"west",outPosition:"east"};break}const d=a==="in"?Xv[i].inPosition:Xv[i].outPosition;return a==="in"?Xv[i].inPosition=xWe(Xv[i].inPosition,a,u):Xv[i].outPosition=xWe(Xv[i].outPosition,a,u),d},Xan=(i,a)=>{let u=i.start,d=i.end;const p=u,v=d,b=Y7[u],y=Y7[d];return!b||!y?{source:u,target:d}:(b.type==="diamond"&&(u=`${u}-${kWe(u,"out",a)}`),y.type==="diamond"&&(d=`${d}-${kWe(d,"in",a)}`),{source:u,target:d,sourceId:p,targetId:v})},Qan=function(i,a,u,d){Xe.info("abc78 edges = ",i);const p=d.insert("g").attr("class","edgeLabels");let v={},b=a.db.getDirection(),y,E;if(i.defaultStyle!==void 0){const _=gm(i.defaultStyle);y=_.style,E=_.labelStyle}return i.forEach(function(_){const A="L-"+_.start+"-"+_.end;v[A]===void 0?(v[A]=0,Xe.info("abc78 new entry",A,v[A])):(v[A]++,Xe.info("abc78 new entry",A,v[A]));let P=A+"-"+v[A];Xe.info("abc78 new link id to be used is",A,P,v[A]);const R="LS-"+_.start,B="LE-"+_.end,j={style:"",labelStyle:""};switch(j.minlen=_.length||1,_.type==="arrow_open"?j.arrowhead="none":j.arrowhead="normal",j.arrowTypeStart="arrow_open",j.arrowTypeEnd="arrow_open",_.type){case"double_arrow_cross":j.arrowTypeStart="arrow_cross";case"arrow_cross":j.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":j.arrowTypeStart="arrow_point";case"arrow_point":j.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":j.arrowTypeStart="arrow_circle";case"arrow_circle":j.arrowTypeEnd="arrow_circle";break}let W="",ee="";switch(_.stroke){case"normal":W="fill:none;",y!==void 0&&(W=y),E!==void 0&&(ee=E),j.thickness="normal",j.pattern="solid";break;case"dotted":j.thickness="normal",j.pattern="dotted",j.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":j.thickness="thick",j.pattern="solid",j.style="stroke-width: 3.5px;fill:none;";break}if(_.style!==void 0){const ne=gm(_.style);W=ne.style,ee=ne.labelStyle}j.style=j.style+=W,j.labelStyle=j.labelStyle+=ee,_.interpolate!==void 0?j.curve=qv(_.interpolate,Sp):i.defaultInterpolate!==void 0?j.curve=qv(i.defaultInterpolate,Sp):j.curve=qv(Wan.curve,Sp),_.text===void 0?_.style!==void 0&&(j.arrowheadStyle="fill: #333"):(j.arrowheadStyle="fill: #333",j.labelpos="c"),j.labelType=_.labelType,j.label=_.text.replace(oi.lineBreakRegex,` +`),_.style===void 0&&(j.style=j.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),j.labelStyle=j.labelStyle.replace("color:","fill:"),j.id=P,j.classes="flowchart-link "+R+" "+B;const ie=sve(p,j),{source:oe,target:be,sourceId:ge,targetId:ae}=Xan(_,b);Xe.debug("abc78 source and target",oe,be),u.edges.push({id:"e"+_.start+_.end,sources:[oe],targets:[be],sourceId:ge,targetId:ae,labelEl:ie,labels:[{width:j.width,height:j.height,orgWidth:j.width,orgHeight:j.height,text:j.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:j})}),u},Jan=function(i,a,u,d,p){let v="";d&&(v=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,v=v.replace(/\(/g,"\\("),v=v.replace(/\)/g,"\\)")),iGe(i,a,v,p,u)},Zan=function(i,a){return Xe.info("Extracting classes"),a.db.getClasses()},eon=function(i){const a={parentById:{},childrenById:{}},u=i.getSubGraphs();return Xe.info("Subgraphs - ",u),u.forEach(function(d){d.nodes.forEach(function(p){a.parentById[p]=d.id,a.childrenById[d.id]===void 0&&(a.childrenById[d.id]=[]),a.childrenById[d.id].push(p)})}),u.forEach(function(d){d.id,a.parentById[d.id]!==void 0&&a.parentById[d.id]}),a},ton=function(i,a,u){const d=Van(i,a,u);if(d===void 0||d==="root")return{x:0,y:0};const p=Y7[d].offset;return{x:p.posX,y:p.posY}},non=function(i,a,u,d,p,v){const b=ton(a.sourceId,a.targetId,p),y=a.sections[0].startPoint,E=a.sections[0].endPoint,A=(a.sections[0].bendPoints?a.sections[0].bendPoints:[]).map(be=>[be.x+b.x,be.y+b.y]),P=[[y.x+b.x,y.y+b.y],...A,[E.x+b.x,E.y+b.y]],{x:R,y:B}=rGe(a.edgeData),j=E7().x(R).y(B).curve(Sp),W=i.insert("path").attr("d",j(P)).attr("class","path "+u.classes).attr("fill","none"),ee=i.insert("g").attr("class","edgeLabel"),ie=Dr(ee.node().appendChild(a.labelEl)),oe=ie.node().firstChild.getBoundingClientRect();ie.attr("width",oe.width),ie.attr("height",oe.height),ee.attr("transform",`translate(${a.labels[0].x+b.x}, ${a.labels[0].y+b.y})`),Jan(W,u,d.type,d.arrowMarkerAbsolute,v)},TWe=(i,a)=>{i.forEach(u=>{u.children||(u.children=[]);const d=a.childrenById[u.id];d&&d.forEach(p=>{u.children.push(Y7[p])}),TWe(u.children,a)})},ron=async function(i,a,u,d){var se;d.db.clear(),Y7={},Xv={},d.db.setGen("gen-2"),d.parser.parse(i);const p=Dr("body").append("div").attr("style","height:400px").attr("id","cy");let v={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(Xe.info("Drawing flowchart using v3 renderer",yWe),d.db.getDirection()){case"BT":v.layoutOptions["elk.direction"]="UP";break;case"TB":v.layoutOptions["elk.direction"]="DOWN";break;case"LR":v.layoutOptions["elk.direction"]="RIGHT";break;case"RL":v.layoutOptions["elk.direction"]="LEFT";break}const{securityLevel:y,flowchart:E}=mh();let _;y==="sandbox"&&(_=Dr("#i"+a));const A=Dr(y==="sandbox"?_.nodes()[0].contentDocument.body:"body"),P=y==="sandbox"?_.nodes()[0].contentDocument:document,R=A.select(`[id="${a}"]`);Ume(R,["point","circle","cross"],d.type,a);const j=d.db.getVertices();let W;const ee=d.db.getSubGraphs();Xe.info("Subgraphs - ",ee);for(let de=ee.length-1;de>=0;de--)W=ee[de],d.db.addVertex(W.id,{text:W.title,type:W.labelType},"group",void 0,W.classes,W.dir);const ie=R.insert("g").attr("class","subgraphs"),oe=eon(d.db);v=await Yan(j,a,A,P,d,oe,v);const be=R.insert("g").attr("class","edges edgePath"),ge=d.db.getEdges();v=Qan(ge,d,v,R),Object.keys(Y7).forEach(de=>{const X=Y7[de];X.parent||v.children.push(X),oe.childrenById[de]!==void 0&&(X.labels=[{text:X.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:X.labelData.width,height:X.labelData.height}],delete X.x,delete X.y,delete X.width,delete X.height)}),TWe(v.children,oe),Xe.info("after layout",JSON.stringify(v,null,2));const ne=await yWe.layout(v);EWe(0,0,ne.children,R,ie,d,0),Xe.info("after layout",ne),(se=ne.edges)==null||se.map(de=>{non(be,de,de.edgeData,d,oe,a)}),x9({},R,E.diagramPadding,E.useMaxWidth),p.remove()},EWe=(i,a,u,d,p,v,b)=>{u.forEach(function(y){if(y)if(Y7[y.id].offset={posX:y.x+i,posY:y.y+a,x:i,y:a,depth:b,width:y.width,height:y.height},y.type==="group"){const E=p.insert("g").attr("class","subgraph");E.insert("rect").attr("class","subgraph subgraph-lvl-"+b%5+" node").attr("x",y.x+i).attr("y",y.y+a).attr("width",y.width).attr("height",y.height);const _=E.insert("g").attr("class","label"),A=mh().flowchart.htmlLabels?y.labelData.width/2:0;_.attr("transform",`translate(${y.labels[0].x+i+y.x+A}, ${y.labels[0].y+a+y.y+3})`),_.node().appendChild(y.labelData.labelNode),Xe.info("Id (UGH)= ",y.type,y.labels)}else Xe.info("Id (UGH)= ",y.id),y.el.attr("transform",`translate(${y.x+i+y.width/2}, ${y.y+a+y.height/2})`)}),u.forEach(function(y){y&&y.type==="group"&&EWe(i+y.x,a+y.y,y.children,d,p,v,b+1)})},ion={getClasses:Zan,draw:ron},son=i=>{let a="";for(let u=0;u<5;u++)a+=` + .subgraph-lvl-${u} { + fill: ${i[`surface${u}`]}; + stroke: ${i[`surfacePeer${u}`]}; + } + `;return a},aon=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:WVt,renderer:ion,parser:lme,styles:i=>`.label { + font-family: ${i.fontFamily}; + color: ${i.nodeTextColor||i.textColor}; + } + .cluster-label text { + fill: ${i.titleColor}; + } + .cluster-label span { + color: ${i.titleColor}; + } + + .label text,span { + fill: ${i.nodeTextColor||i.textColor}; + color: ${i.nodeTextColor||i.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${i.arrowheadColor}; + } + + .edgePath .path { + stroke: ${i.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${i.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${i.edgeLabelBackground}; + rect { + opacity: 0.85; + background-color: ${i.edgeLabelBackground}; + fill: ${i.edgeLabelBackground}; + } + text-align: center; + } + + .cluster rect { + fill: ${i.clusterBkg}; + stroke: ${i.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${i.titleColor}; + } + + .cluster span { + color: ${i.titleColor}; + } + /* .cluster div { + color: ${i.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${i.fontFamily}; + font-size: 12px; + background: ${i.tertiaryColor}; + border: 1px solid ${i.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; + } + .subgraph { + stroke-width:2; + rx:3; + } + // .subgraph-lvl-1 { + // fill:#ccc; + // // stroke:black; + // } + + .flowchart-label text { + text-anchor: middle; + } + + ${son(i)} +`}},Symbol.toStringTag,{value:"Module"}));var pwe=function(){var i=function(R,B,j,W){for(j=j||{},W=R.length;W--;j[R[W]]=B);return j},a=[6,8,10,11,12,14,16,17,20,21],u=[1,9],d=[1,10],p=[1,11],v=[1,12],b=[1,13],y=[1,16],E=[1,17],_={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:function(B,j,W,ee,ie,oe,be){var ge=oe.length-1;switch(ie){case 1:return oe[ge-1];case 2:this.$=[];break;case 3:oe[ge-1].push(oe[ge]),this.$=oe[ge-1];break;case 4:case 5:this.$=oe[ge];break;case 6:case 7:this.$=[];break;case 8:ee.getCommonDb().setDiagramTitle(oe[ge].substr(6)),this.$=oe[ge].substr(6);break;case 9:this.$=oe[ge].trim(),ee.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=oe[ge].trim(),ee.getCommonDb().setAccDescription(this.$);break;case 12:ee.addSection(oe[ge].substr(8)),this.$=oe[ge].substr(8);break;case 15:ee.addTask(oe[ge],0,""),this.$=oe[ge];break;case 16:ee.addEvent(oe[ge].substr(2)),this.$=oe[ge];break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:u,12:d,14:p,16:v,17:b,18:14,19:15,20:y,21:E},i(a,[2,7],{1:[2,1]}),i(a,[2,3]),{9:18,11:u,12:d,14:p,16:v,17:b,18:14,19:15,20:y,21:E},i(a,[2,5]),i(a,[2,6]),i(a,[2,8]),{13:[1,19]},{15:[1,20]},i(a,[2,11]),i(a,[2,12]),i(a,[2,13]),i(a,[2,14]),i(a,[2,15]),i(a,[2,16]),i(a,[2,4]),i(a,[2,9]),i(a,[2,10])],defaultActions:{},parseError:function(B,j){if(j.recoverable)this.trace(B);else{var W=new Error(B);throw W.hash=j,W}},parse:function(B){var j=this,W=[0],ee=[],ie=[null],oe=[],be=this.table,ge="",ae=0,ne=0,se=2,de=1,X=oe.slice.call(arguments,1),pe=Object.create(this.lexer),G={yy:{}};for(var xe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,xe)&&(G.yy[xe]=this.yy[xe]);pe.setInput(B,G.yy),G.yy.lexer=pe,G.yy.parser=this,typeof pe.yylloc>"u"&&(pe.yylloc={});var U=pe.yylloc;oe.push(U);var Be=pe.options&&pe.options.ranges;typeof G.yy.parseError=="function"?this.parseError=G.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Pe(){var Et;return Et=ee.pop()||pe.lex()||de,typeof Et!="number"&&(Et instanceof Array&&(ee=Et,Et=ee.pop()),Et=j.symbols_[Et]||Et),Et}for(var je,Ie,Se,Ce,ke={},Ke,zt,Ne,pn;;){if(Ie=W[W.length-1],this.defaultActions[Ie]?Se=this.defaultActions[Ie]:((je===null||typeof je>"u")&&(je=Pe()),Se=be[Ie]&&be[Ie][je]),typeof Se>"u"||!Se.length||!Se[0]){var Tt="";pn=[];for(Ke in be[Ie])this.terminals_[Ke]&&Ke>se&&pn.push("'"+this.terminals_[Ke]+"'");pe.showPosition?Tt="Parse error on line "+(ae+1)+`: +`+pe.showPosition()+` +Expecting `+pn.join(", ")+", got '"+(this.terminals_[je]||je)+"'":Tt="Parse error on line "+(ae+1)+": Unexpected "+(je==de?"end of input":"'"+(this.terminals_[je]||je)+"'"),this.parseError(Tt,{text:pe.match,token:this.terminals_[je]||je,line:pe.yylineno,loc:U,expected:pn})}if(Se[0]instanceof Array&&Se.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ie+", token: "+je);switch(Se[0]){case 1:W.push(je),ie.push(pe.yytext),oe.push(pe.yylloc),W.push(Se[1]),je=null,ne=pe.yyleng,ge=pe.yytext,ae=pe.yylineno,U=pe.yylloc;break;case 2:if(zt=this.productions_[Se[1]][1],ke.$=ie[ie.length-zt],ke._$={first_line:oe[oe.length-(zt||1)].first_line,last_line:oe[oe.length-1].last_line,first_column:oe[oe.length-(zt||1)].first_column,last_column:oe[oe.length-1].last_column},Be&&(ke._$.range=[oe[oe.length-(zt||1)].range[0],oe[oe.length-1].range[1]]),Ce=this.performAction.apply(ke,[ge,ne,ae,G.yy,Se[1],ie,oe].concat(X)),typeof Ce<"u")return Ce;zt&&(W=W.slice(0,-1*zt*2),ie=ie.slice(0,-1*zt),oe=oe.slice(0,-1*zt)),W.push(this.productions_[Se[1]][0]),ie.push(ke.$),oe.push(ke._$),Ne=be[W[W.length-2]][W[W.length-1]],W.push(Ne);break;case 3:return!0}}return!0}},A=function(){var R={EOF:1,parseError:function(j,W){if(this.yy.parser)this.yy.parser.parseError(j,W);else throw new Error(j)},setInput:function(B,j){return this.yy=j||this.yy||{},this._input=B,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var B=this._input[0];this.yytext+=B,this.yyleng++,this.offset++,this.match+=B,this.matched+=B;var j=B.match(/(?:\r\n?|\n).*/g);return j?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),B},unput:function(B){var j=B.length,W=B.split(/(?:\r\n?|\n)/g);this._input=B+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-j),this.offset-=j;var ee=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),W.length-1&&(this.yylineno-=W.length-1);var ie=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:W?(W.length===ee.length?this.yylloc.first_column:0)+ee[ee.length-W.length].length-W[0].length:this.yylloc.first_column-j},this.options.ranges&&(this.yylloc.range=[ie[0],ie[0]+this.yyleng-j]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(B){this.unput(this.match.slice(B))},pastInput:function(){var B=this.matched.substr(0,this.matched.length-this.match.length);return(B.length>20?"...":"")+B.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var B=this.match;return B.length<20&&(B+=this._input.substr(0,20-B.length)),(B.substr(0,20)+(B.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var B=this.pastInput(),j=new Array(B.length+1).join("-");return B+this.upcomingInput()+` +`+j+"^"},test_match:function(B,j){var W,ee,ie;if(this.options.backtrack_lexer&&(ie={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&&(ie.yylloc.range=this.yylloc.range.slice(0))),ee=B[0].match(/(?:\r\n?|\n).*/g),ee&&(this.yylineno+=ee.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ee?ee[ee.length-1].length-ee[ee.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+B[0].length},this.yytext+=B[0],this.match+=B[0],this.matches=B,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(B[0].length),this.matched+=B[0],W=this.performAction.call(this,this.yy,this,j,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),W)return W;if(this._backtrack){for(var oe in ie)this[oe]=ie[oe];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var B,j,W,ee;this._more||(this.yytext="",this.match="");for(var ie=this._currentRules(),oe=0;oej[0].length)){if(j=W,ee=oe,this.options.backtrack_lexer){if(B=this.test_match(W,ie[oe]),B!==!1)return B;if(this._backtrack){j=!1;continue}else return!1}else if(!this.options.flex)break}return j?(B=this.test_match(j,ie[ee]),B!==!1?B:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var j=this.next();return j||this.lex()},begin:function(j){this.conditionStack.push(j)},popState:function(){var j=this.conditionStack.length-1;return j>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(j){return j=this.conditionStack.length-1-Math.abs(j||0),j>=0?this.conditionStack[j]:"INITIAL"},pushState:function(j){this.begin(j)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(j,W,ee,ie){switch(ee){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?::\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return R}();_.lexer=A;function P(){this.yy={}}return P.prototype=_,_.Parser=P,new P}();pwe.parser=pwe;const oon=pwe;let oI="",CWe=0;const bwe=[],GJ=[],cI=[],SWe=()=>T$e,_We=function(){bwe.length=0,GJ.length=0,oI="",cI.length=0,Rg()},AWe=function(i){oI=i,bwe.push(i)},LWe=function(){return bwe},MWe=function(){let i=NWe();const a=100;let u=0;for(;!i&&uu.id===CWe-1).events.push(i)},OWe=function(i){const a={section:oI,type:oI,description:i,task:i,classes:[]};GJ.push(a)},NWe=function(){const i=function(u){return cI[u].processed};let a=!0;for(const[u,d]of cI.entries())i(u),a=a&&d.processed;return a},con=Object.freeze(Object.defineProperty({__proto__:null,addEvent:IWe,addSection:AWe,addTask:DWe,addTaskOrg:OWe,clear:_We,default:{clear:_We,getCommonDb:SWe,addSection:AWe,getSections:LWe,getTasks:MWe,addTask:DWe,addTaskOrg:OWe,addEvent:IWe},getCommonDb:SWe,getSections:LWe,getTasks:MWe},Symbol.toStringTag,{value:"Module"})),uon=12,KJ=function(i,a){const u=i.append("rect");return u.attr("x",a.x),u.attr("y",a.y),u.attr("fill",a.fill),u.attr("stroke",a.stroke),u.attr("width",a.width),u.attr("height",a.height),u.attr("rx",a.rx),u.attr("ry",a.ry),a.class!==void 0&&u.attr("class",a.class),u},lon=function(i,a){const d=i.append("circle").attr("cx",a.cx).attr("cy",a.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),p=i.append("g");p.append("circle").attr("cx",a.cx-15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),p.append("circle").attr("cx",a.cx+15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function v(E){const _=hD().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);E.append("path").attr("class","mouth").attr("d",_).attr("transform","translate("+a.cx+","+(a.cy+2)+")")}function b(E){const _=hD().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);E.append("path").attr("class","mouth").attr("d",_).attr("transform","translate("+a.cx+","+(a.cy+7)+")")}function y(E){E.append("line").attr("class","mouth").attr("stroke",2).attr("x1",a.cx-5).attr("y1",a.cy+7).attr("x2",a.cx+5).attr("y2",a.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return a.score>3?v(p):a.score<3?b(p):y(p),d},hon=function(i,a){const u=i.append("circle");return u.attr("cx",a.cx),u.attr("cy",a.cy),u.attr("class","actor-"+a.pos),u.attr("fill",a.fill),u.attr("stroke",a.stroke),u.attr("r",a.r),u.class!==void 0&&u.attr("class",u.class),a.title!==void 0&&u.append("title").text(a.title),u},PWe=function(i,a){const u=a.text.replace(//gi," "),d=i.append("text");d.attr("x",a.x),d.attr("y",a.y),d.attr("class","legend"),d.style("text-anchor",a.anchor),a.class!==void 0&&d.attr("class",a.class);const p=d.append("tspan");return p.attr("x",a.x+a.textMargin*2),p.text(u),d},fon=function(i,a){function u(p,v,b,y,E){return p+","+v+" "+(p+b)+","+v+" "+(p+b)+","+(v+y-E)+" "+(p+b-E*1.2)+","+(v+y)+" "+p+","+(v+y)}const d=i.append("polygon");d.attr("points",u(a.x,a.y,50,20,7)),d.attr("class","labelBox"),a.y=a.y+a.labelMargin,a.x=a.x+.5*a.labelMargin,PWe(i,a)},don=function(i,a,u){const d=i.append("g"),p=mwe();p.x=a.x,p.y=a.y,p.fill=a.fill,p.width=u.width,p.height=u.height,p.class="journey-section section-type-"+a.num,p.rx=3,p.ry=3,KJ(d,p),FWe(u)(a.text,d,p.x,p.y,p.width,p.height,{class:"journey-section section-type-"+a.num},u,a.colour)};let BWe=-1;const gon=function(i,a,u){const d=a.x+u.width/2,p=i.append("g");BWe++;const v=300+5*30;p.append("line").attr("id","task"+BWe).attr("x1",d).attr("y1",a.y).attr("x2",d).attr("y2",v).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),lon(p,{cx:d,cy:300+(5-a.score)*30,score:a.score});const b=mwe();b.x=a.x,b.y=a.y,b.fill=a.fill,b.width=u.width,b.height=u.height,b.class="task task-type-"+a.num,b.rx=3,b.ry=3,KJ(p,b),a.x+14,FWe(u)(a.task,p,b.x,b.y,b.width,b.height,{class:"task"},u,a.colour)},pon=function(i,a){KJ(i,{x:a.startx,y:a.starty,width:a.stopx-a.startx,height:a.stopy-a.starty,fill:a.fill,class:"rect"}).lower()},bon=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},mwe=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},FWe=function(){function i(p,v,b,y,E,_,A,P){const R=v.append("text").attr("x",b+E/2).attr("y",y+_/2+5).style("font-color",P).style("text-anchor","middle").text(p);d(R,A)}function a(p,v,b,y,E,_,A,P,R){const{taskFontSize:B,taskFontFamily:j}=P,W=p.split(//gi);for(let ee=0;ee)/).reverse(),p,v=[],b=1.1,y=u.attr("y"),E=parseFloat(u.attr("dy")),_=u.text(null).append("tspan").attr("x",0).attr("y",y).attr("dy",E+"em");for(let A=0;Aa||p==="
")&&(v.pop(),_.text(v.join(" ").trim()),p==="
"?v=[""]:v=[p],_=u.append("tspan").attr("x",0).attr("y",y).attr("dy",b+"em").text(p))})}const von=function(i,a,u,d){const p=u%uon-1,v=i.append("g");a.section=p,v.attr("class",(a.class?a.class+" ":"")+"timeline-node "+("section-"+p));const b=v.append("g"),y=v.append("g"),_=y.append("text").text(a.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(RWe,a.width).node().getBBox(),A=d.fontSize&&d.fontSize.replace?d.fontSize.replace("px",""):d.fontSize;return a.height=_.height+A*1.1*.5+a.padding,a.height=Math.max(a.height,a.maxHeight),a.width=a.width+2*a.padding,y.attr("transform","translate("+a.width/2+", "+a.padding/2+")"),yon(b,a,p),a},won=function(i,a,u){const d=i.append("g"),v=d.append("text").text(a.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(RWe,a.width).node().getBBox(),b=u.fontSize&&u.fontSize.replace?u.fontSize.replace("px",""):u.fontSize;return d.remove(),v.height+b*1.1*.5+a.padding},yon=function(i,a,u){i.append("path").attr("id","node-"+a.id).attr("class","node-bkg node-"+a.type).attr("d",`M0 ${a.height-5} v${-a.height+2*5} q0,-5 5,-5 h${a.width-2*5} q5,0 5,5 v${a.height-5} H0 Z`),i.append("line").attr("class","node-line-"+u).attr("x1",0).attr("y1",a.height).attr("x2",a.width).attr("y2",a.height)},aS={drawRect:KJ,drawCircle:hon,drawSection:don,drawText:PWe,drawLabel:fon,drawTask:gon,drawBackgroundRect:pon,getTextObj:bon,getNoteRect:mwe,initGraphics:mon,drawNode:von,getVirtualNodeHeight:won},xon=function(i,a,u,d){var X,pe;const p=qt(),v=p.leftMargin??50;Xe.debug("timeline",d.db);const b=p.securityLevel;let y;b==="sandbox"&&(y=Dr("#i"+a));const _=Dr(b==="sandbox"?y.nodes()[0].contentDocument.body:"body").select("#"+a);_.append("g");const A=d.db.getTasks(),P=d.db.getCommonDb().getDiagramTitle();Xe.debug("task",A),aS.initGraphics(_);const R=d.db.getSections();Xe.debug("sections",R);let B=0,j=0,W=0,ee=0,ie=50+v,oe=50;ee=50;let be=0,ge=!0;R.forEach(function(G){const xe={number:be,descr:G,section:be,width:150,padding:20,maxHeight:B},U=aS.getVirtualNodeHeight(_,xe,p);Xe.debug("sectionHeight before draw",U),B=Math.max(B,U+20)});let ae=0,ne=0;Xe.debug("tasks.length",A.length);for(const[G,xe]of A.entries()){const U={number:G,descr:xe,section:xe.section,width:150,padding:20,maxHeight:j},Be=aS.getVirtualNodeHeight(_,U,p);Xe.debug("taskHeight before draw",Be),j=Math.max(j,Be+20),ae=Math.max(ae,xe.events.length);let Pe=0;for(let je=0;je0?R.forEach(G=>{const xe=A.filter(je=>je.section===G),U={number:be,descr:G,section:be,width:200*Math.max(xe.length,1)-50,padding:20,maxHeight:B};Xe.debug("sectionNode",U);const Be=_.append("g"),Pe=aS.drawNode(Be,U,be,p);Xe.debug("sectionNode output",Pe),Be.attr("transform",`translate(${ie}, ${ee})`),oe+=B+50,xe.length>0&&jWe(_,xe,be,ie,oe,j,p,ae,ne,B,!1),ie+=200*Math.max(xe.length,1),oe=ee,be++}):(ge=!1,jWe(_,A,be,ie,oe,j,p,ae,ne,B,!0));const se=_.node().getBBox();Xe.debug("bounds",se),P&&_.append("text").text(P).attr("x",se.width/2-v).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),W=ge?B+j+150:j+100,_.append("g").attr("class","lineWrapper").append("line").attr("x1",v).attr("y1",W).attr("x2",se.width+3*v).attr("y2",W).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),x9(void 0,_,((X=p.timeline)==null?void 0:X.padding)??50,((pe=p.timeline)==null?void 0:pe.useMaxWidth)??!1)},jWe=function(i,a,u,d,p,v,b,y,E,_,A){var P;for(const R of a){const B={descr:R.task,section:u,number:u,width:150,padding:20,maxHeight:v};Xe.debug("taskNode",B);const j=i.append("g").attr("class","taskWrapper"),ee=aS.drawNode(j,B,u,b).height;if(Xe.debug("taskHeight after draw",ee),j.attr("transform",`translate(${d}, ${p})`),v=Math.max(v,ee),R.events){const ie=i.append("g").attr("class","lineWrapper");let oe=v;p+=100,oe=oe+kon(i,R.events,u,d,p,b),p-=100,ie.append("line").attr("x1",d+190/2).attr("y1",p+v).attr("x2",d+190/2).attr("y2",p+v+(A?v:_)+E+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}d=d+200,A&&!((P=b.timeline)!=null&&P.disableMulticolor)&&u++}p=p-10},kon=function(i,a,u,d,p,v){let b=0;const y=p;p=p+100;for(const E of a){const _={descr:E,section:u,number:u,width:150,padding:20,maxHeight:50};Xe.debug("eventNode",_);const A=i.append("g").attr("class","eventWrapper"),R=aS.drawNode(A,_,u,v).height;b=b+R,A.attr("transform",`translate(${d}, ${p})`),p=p+10+R}return p=y,b},Ton={setConf:()=>{},draw:xon},Eon=i=>{let a="";for(let u=0;u` + .edge { + stroke-width: 3; + } + ${Eon(i)} + .section-root rect, .section-root path, .section-root circle { + fill: ${i.git0}; + } + .section-root text { + fill: ${i.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`}},Symbol.toStringTag,{value:"Module"}));var vwe=function(){var i=function(ge,ae,ne,se){for(ne=ne||{},se=ge.length;se--;ne[ge[se]]=ae);return ne},a=[1,4],u=[1,13],d=[1,12],p=[1,15],v=[1,16],b=[1,20],y=[1,19],E=[6,7,8],_=[1,26],A=[1,24],P=[1,25],R=[6,7,11],B=[1,6,13,15,16,19,22],j=[1,33],W=[1,34],ee=[1,6,7,11,13,15,16,19,22],ie={trace:function(){},yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:function(ae,ne,se,de,X,pe,G){var xe=pe.length-1;switch(X){case 6:case 7:return de;case 8:de.getLogger().trace("Stop NL ");break;case 9:de.getLogger().trace("Stop EOF ");break;case 11:de.getLogger().trace("Stop NL2 ");break;case 12:de.getLogger().trace("Stop EOF2 ");break;case 15:de.getLogger().info("Node: ",pe[xe].id),de.addNode(pe[xe-1].length,pe[xe].id,pe[xe].descr,pe[xe].type);break;case 16:de.getLogger().trace("Icon: ",pe[xe]),de.decorateNode({icon:pe[xe]});break;case 17:case 21:de.decorateNode({class:pe[xe]});break;case 18:de.getLogger().trace("SPACELIST");break;case 19:de.getLogger().trace("Node: ",pe[xe].id),de.addNode(0,pe[xe].id,pe[xe].descr,pe[xe].type);break;case 20:de.decorateNode({icon:pe[xe]});break;case 25:de.getLogger().trace("node found ..",pe[xe-2]),this.$={id:pe[xe-1],descr:pe[xe-1],type:de.getType(pe[xe-2],pe[xe])};break;case 26:this.$={id:pe[xe],descr:pe[xe],type:de.nodeType.DEFAULT};break;case 27:de.getLogger().trace("node found ..",pe[xe-3]),this.$={id:pe[xe-3],descr:pe[xe-1],type:de.getType(pe[xe-2],pe[xe])};break}},table:[{3:1,4:2,5:3,6:[1,5],8:a},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:a},{6:u,7:[1,10],9:9,12:11,13:d,14:14,15:p,16:v,17:17,18:18,19:b,22:y},i(E,[2,3]),{1:[2,2]},i(E,[2,4]),i(E,[2,5]),{1:[2,6],6:u,12:21,13:d,14:14,15:p,16:v,17:17,18:18,19:b,22:y},{6:u,9:22,12:11,13:d,14:14,15:p,16:v,17:17,18:18,19:b,22:y},{6:_,7:A,10:23,11:P},i(R,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:b,22:y}),i(R,[2,18]),i(R,[2,19]),i(R,[2,20]),i(R,[2,21]),i(R,[2,23]),i(R,[2,24]),i(R,[2,26],{19:[1,30]}),{20:[1,31]},{6:_,7:A,10:32,11:P},{1:[2,7],6:u,12:21,13:d,14:14,15:p,16:v,17:17,18:18,19:b,22:y},i(B,[2,14],{7:j,11:W}),i(ee,[2,8]),i(ee,[2,9]),i(ee,[2,10]),i(R,[2,15]),i(R,[2,16]),i(R,[2,17]),{20:[1,35]},{21:[1,36]},i(B,[2,13],{7:j,11:W}),i(ee,[2,11]),i(ee,[2,12]),{21:[1,37]},i(R,[2,25]),i(R,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(ae,ne){if(ne.recoverable)this.trace(ae);else{var se=new Error(ae);throw se.hash=ne,se}},parse:function(ae){var ne=this,se=[0],de=[],X=[null],pe=[],G=this.table,xe="",U=0,Be=0,Pe=2,je=1,Ie=pe.slice.call(arguments,1),Se=Object.create(this.lexer),Ce={yy:{}};for(var ke in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ke)&&(Ce.yy[ke]=this.yy[ke]);Se.setInput(ae,Ce.yy),Ce.yy.lexer=Se,Ce.yy.parser=this,typeof Se.yylloc>"u"&&(Se.yylloc={});var Ke=Se.yylloc;pe.push(Ke);var zt=Se.options&&Se.options.ranges;typeof Ce.yy.parseError=="function"?this.parseError=Ce.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ne(){var Nn;return Nn=de.pop()||Se.lex()||je,typeof Nn!="number"&&(Nn instanceof Array&&(de=Nn,Nn=de.pop()),Nn=ne.symbols_[Nn]||Nn),Nn}for(var pn,Tt,Et,Wt,un={},yt,Bt,Ze,Dt;;){if(Tt=se[se.length-1],this.defaultActions[Tt]?Et=this.defaultActions[Tt]:((pn===null||typeof pn>"u")&&(pn=Ne()),Et=G[Tt]&&G[Tt][pn]),typeof Et>"u"||!Et.length||!Et[0]){var kt="";Dt=[];for(yt in G[Tt])this.terminals_[yt]&&yt>Pe&&Dt.push("'"+this.terminals_[yt]+"'");Se.showPosition?kt="Parse error on line "+(U+1)+`: +`+Se.showPosition()+` +Expecting `+Dt.join(", ")+", got '"+(this.terminals_[pn]||pn)+"'":kt="Parse error on line "+(U+1)+": Unexpected "+(pn==je?"end of input":"'"+(this.terminals_[pn]||pn)+"'"),this.parseError(kt,{text:Se.match,token:this.terminals_[pn]||pn,line:Se.yylineno,loc:Ke,expected:Dt})}if(Et[0]instanceof Array&&Et.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Tt+", token: "+pn);switch(Et[0]){case 1:se.push(pn),X.push(Se.yytext),pe.push(Se.yylloc),se.push(Et[1]),pn=null,Be=Se.yyleng,xe=Se.yytext,U=Se.yylineno,Ke=Se.yylloc;break;case 2:if(Bt=this.productions_[Et[1]][1],un.$=X[X.length-Bt],un._$={first_line:pe[pe.length-(Bt||1)].first_line,last_line:pe[pe.length-1].last_line,first_column:pe[pe.length-(Bt||1)].first_column,last_column:pe[pe.length-1].last_column},zt&&(un._$.range=[pe[pe.length-(Bt||1)].range[0],pe[pe.length-1].range[1]]),Wt=this.performAction.apply(un,[xe,Be,U,Ce.yy,Et[1],X,pe].concat(Ie)),typeof Wt<"u")return Wt;Bt&&(se=se.slice(0,-1*Bt*2),X=X.slice(0,-1*Bt),pe=pe.slice(0,-1*Bt)),se.push(this.productions_[Et[1]][0]),X.push(un.$),pe.push(un._$),Ze=G[se[se.length-2]][se[se.length-1]],se.push(Ze);break;case 3:return!0}}return!0}},oe=function(){var ge={EOF:1,parseError:function(ne,se){if(this.yy.parser)this.yy.parser.parseError(ne,se);else throw new Error(ne)},setInput:function(ae,ne){return this.yy=ne||this.yy||{},this._input=ae,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ae=this._input[0];this.yytext+=ae,this.yyleng++,this.offset++,this.match+=ae,this.matched+=ae;var ne=ae.match(/(?:\r\n?|\n).*/g);return ne?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ae},unput:function(ae){var ne=ae.length,se=ae.split(/(?:\r\n?|\n)/g);this._input=ae+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ne),this.offset-=ne;var de=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),se.length-1&&(this.yylineno-=se.length-1);var X=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:se?(se.length===de.length?this.yylloc.first_column:0)+de[de.length-se.length].length-se[0].length:this.yylloc.first_column-ne},this.options.ranges&&(this.yylloc.range=[X[0],X[0]+this.yyleng-ne]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ae){this.unput(this.match.slice(ae))},pastInput:function(){var ae=this.matched.substr(0,this.matched.length-this.match.length);return(ae.length>20?"...":"")+ae.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var ae=this.match;return ae.length<20&&(ae+=this._input.substr(0,20-ae.length)),(ae.substr(0,20)+(ae.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var ae=this.pastInput(),ne=new Array(ae.length+1).join("-");return ae+this.upcomingInput()+` +`+ne+"^"},test_match:function(ae,ne){var se,de,X;if(this.options.backtrack_lexer&&(X={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(X.yylloc.range=this.yylloc.range.slice(0))),de=ae[0].match(/(?:\r\n?|\n).*/g),de&&(this.yylineno+=de.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:de?de[de.length-1].length-de[de.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ae[0].length},this.yytext+=ae[0],this.match+=ae[0],this.matches=ae,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ae[0].length),this.matched+=ae[0],se=this.performAction.call(this,this.yy,this,ne,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),se)return se;if(this._backtrack){for(var pe in X)this[pe]=X[pe];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ae,ne,se,de;this._more||(this.yytext="",this.match="");for(var X=this._currentRules(),pe=0;pene[0].length)){if(ne=se,de=pe,this.options.backtrack_lexer){if(ae=this.test_match(se,X[pe]),ae!==!1)return ae;if(this._backtrack){ne=!1;continue}else return!1}else if(!this.options.flex)break}return ne?(ae=this.test_match(ne,X[de]),ae!==!1?ae:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ne=this.next();return ne||this.lex()},begin:function(ne){this.conditionStack.push(ne)},popState:function(){var ne=this.conditionStack.length-1;return ne>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ne){return ne=this.conditionStack.length-1-Math.abs(ne||0),ne>=0?this.conditionStack[ne]:"INITIAL"},pushState:function(ne){this.begin(ne)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(ne,se,de,X){switch(de){case 0:return ne.getLogger().trace("Found comment",se.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:this.popState();break;case 5:ne.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return ne.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:ne.getLogger().trace("end icon"),this.popState();break;case 10:return ne.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return ne.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return ne.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return ne.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:return this.begin("NODE"),19;case 15:return this.begin("NODE"),19;case 16:return this.begin("NODE"),19;case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:ne.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return ne.getLogger().trace("description:",se.yytext),"NODE_DESCR";case 26:this.popState();break;case 27:return this.popState(),ne.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),ne.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),ne.getLogger().trace("node end ...",se.yytext),"NODE_DEND";case 30:return this.popState(),ne.getLogger().trace("node end (("),"NODE_DEND";case 31:return this.popState(),ne.getLogger().trace("node end (-"),"NODE_DEND";case 32:return this.popState(),ne.getLogger().trace("node end (-"),"NODE_DEND";case 33:return this.popState(),ne.getLogger().trace("node end (("),"NODE_DEND";case 34:return this.popState(),ne.getLogger().trace("node end (("),"NODE_DEND";case 35:return ne.getLogger().trace("Long description:",se.yytext),20;case 36:return ne.getLogger().trace("Long description:",se.yytext),20}},rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return ge}();ie.lexer=oe;function be(){this.yy={}}return be.prototype=ie,ie.Parser=be,new be}();vwe.parser=vwe;const Son=vwe;let Q3=[],$We=0,wwe={};const _on=()=>{Q3=[],$We=0,wwe={}},Aon=function(i){for(let a=Q3.length-1;a>=0;a--)if(Q3[a].levelQ3.length>0?Q3[0]:null,Mon=(i,a,u,d)=>{var E,_;Xe.info("addNode",i,a,u,d);const p=qt();let v=((E=p.mindmap)==null?void 0:E.padding)??nh.mindmap.padding;switch(d){case v1.ROUNDED_RECT:case v1.RECT:case v1.HEXAGON:v*=2}const b={id:$We++,nodeId:bh(a,p),level:i,descr:bh(u,p),type:d,children:[],width:((_=p.mindmap)==null?void 0:_.maxNodeWidth)??nh.mindmap.maxNodeWidth,padding:v},y=Aon(i);if(y)y.children.push(b),Q3.push(b);else if(Q3.length===0)Q3.push(b);else throw new Error('There can be only one root. No parent could be found for ("'+b.descr+'")')},v1={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Don={clear:_on,addNode:Mon,getMindmap:Lon,nodeType:v1,getType:(i,a)=>{switch(Xe.debug("In get type",i,a),i){case"[":return v1.RECT;case"(":return a===")"?v1.ROUNDED_RECT:v1.CLOUD;case"((":return v1.CIRCLE;case")":return v1.CLOUD;case"))":return v1.BANG;case"{{":return v1.HEXAGON;default:return v1.DEFAULT}},setElementForId:(i,a)=>{wwe[i]=a},decorateNode:i=>{if(!i)return;const a=qt(),u=Q3[Q3.length-1];i.icon&&(u.icon=bh(i.icon,a)),i.class&&(u.class=bh(i.class,a))},type2Str:i=>{switch(i){case v1.DEFAULT:return"no-border";case v1.RECT:return"rect";case v1.ROUNDED_RECT:return"rounded-rect";case v1.CIRCLE:return"circle";case v1.CLOUD:return"cloud";case v1.BANG:return"bang";case v1.HEXAGON:return"hexgon";default:return"no-border"}},getLogger:()=>Xe,getElementById:i=>wwe[i]};var zWe={exports:{}};(function(i,a){(function(u,d){i.exports=d()})(Dg,function(){function u(x){"@babel/helpers - typeof";return u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(m){return typeof m}:function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":typeof m},u(x)}function d(x,m){if(!(x instanceof m))throw new TypeError("Cannot call a class as a function")}function p(x,m){for(var k=0;kx.length)&&(m=x.length);for(var k=0,S=new Array(m);k"u"?null:window,j=B?B.navigator:null;B&&B.document;var W=u(""),ee=u({}),ie=u(function(){}),oe=typeof HTMLElement>"u"?"undefined":u(HTMLElement),be=function(m){return m&&m.instanceString&&ae(m.instanceString)?m.instanceString():null},ge=function(m){return m!=null&&u(m)==W},ae=function(m){return m!=null&&u(m)===ie},ne=function(m){return!xe(m)&&(Array.isArray?Array.isArray(m):m!=null&&m instanceof Array)},se=function(m){return m!=null&&u(m)===ee&&!ne(m)&&m.constructor===Object},de=function(m){return m!=null&&u(m)===ee},X=function(m){return m!=null&&u(m)===u(1)&&!isNaN(m)},pe=function(m){return X(m)&&Math.floor(m)===m},G=function(m){if(oe!=="undefined")return m!=null&&m instanceof HTMLElement},xe=function(m){return U(m)||Be(m)},U=function(m){return be(m)==="collection"&&m._private.single},Be=function(m){return be(m)==="collection"&&!m._private.single},Pe=function(m){return be(m)==="core"},je=function(m){return be(m)==="stylesheet"},Ie=function(m){return be(m)==="event"},Se=function(m){return m==null?!0:!!(m===""||m.match(/^\s+$/))},Ce=function(m){return typeof HTMLElement>"u"?!1:m instanceof HTMLElement},ke=function(m){return se(m)&&X(m.x1)&&X(m.x2)&&X(m.y1)&&X(m.y2)},Ke=function(m){return de(m)&&ae(m.then)},zt=function(){return j&&j.userAgent.match(/msie|trident|edge/i)},Ne=function(m,k){k||(k=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var O=[],N=0;Nk?1:0},qr=function(m,k){return-1*ht(m,k)},xt=Object.assign!=null?Object.assign.bind(Object):function(x){for(var m=arguments,k=1;k1&&(_e-=1),_e<1/6?me+(Le-me)*6*_e:_e<1/2?Le:_e<2/3?me+(Le-me)*(2/3-_e)*6:me}var Z=new RegExp("^"+Ze+"$").exec(m);if(Z){if(S=parseInt(Z[1]),S<0?S=(360- -1*S%360)%360:S>360&&(S=S%360),S/=360,M=parseFloat(Z[2]),M<0||M>100||(M=M/100,O=parseFloat(Z[3]),O<0||O>100)||(O=O/100,N=Z[4],N!==void 0&&(N=parseFloat(N),N<0||N>1)))return;if(M===0)$=H=q=Math.round(O*255);else{var ce=O<.5?O*(1+M):O+M-O*M,ve=2*O-ce;$=Math.round(255*Y(ve,ce,S+1/3)),H=Math.round(255*Y(ve,ce,S)),q=Math.round(255*Y(ve,ce,S-1/3))}k=[$,H,q,N]}return k},ia=function(m){var k,S=new RegExp("^"+yt+"$").exec(m);if(S){k=[];for(var M=[],O=1;O<=3;O++){var N=S[O];if(N[N.length-1]==="%"&&(M[O]=!0),N=parseFloat(N),M[O]&&(N=N/100*255),N<0||N>255)return;k.push(Math.floor(N))}var $=M[1]||M[2]||M[3],H=M[1]&&M[2]&&M[3];if($&&!H)return;var q=S[4];if(q!==void 0){if(q=parseFloat(q),q<0||q>1)return;k.push(q)}}return k},Hs=function(m){return Tr[m.toLowerCase()]},mo=function(m){return(ne(m)?m:null)||Hs(m)||Ri(m)||ia(m)||wi(m)},Tr={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]},On=function(m){for(var k=m.map,S=m.keys,M=S.length,O=0;O=m||Ye<0||Z&&vt>=O}function Te(){var st=uo();if(_e(st))return Fe(st);$=setTimeout(Te,Le(st))}function Fe(st){return $=void 0,ce&&S?ve(st):(S=M=void 0,N)}function Re(){$!==void 0&&clearTimeout($),q=0,S=H=M=$=void 0}function Ve(){return $===void 0?N:Fe(uo())}function ct(){var st=uo(),Ye=_e(st);if(S=arguments,M=this,H=st,Ye){if($===void 0)return me(H);if(Z)return clearTimeout($),$=setTimeout(Te,m),ve(H)}return $===void 0&&($=setTimeout(Te,m)),N}return ct.cancel=Re,ct.flush=Ve,ct}var Bo=gi,Ot=B?B.performance:null,zu=Ot&&Ot.now?function(){return Ot.now()}:function(){return Date.now()},Gt=function(){if(B){if(B.requestAnimationFrame)return function(x){B.requestAnimationFrame(x)};if(B.mozRequestAnimationFrame)return function(x){B.mozRequestAnimationFrame(x)};if(B.webkitRequestAnimationFrame)return function(x){B.webkitRequestAnimationFrame(x)};if(B.msRequestAnimationFrame)return function(x){B.msRequestAnimationFrame(x)}}return function(x){x&&setTimeout(function(){x(zu())},1e3/60)}}(),Wh=function(m){return Gt(m)},Vp=zu,J3=9261,q9=65599,l5=5381,Th=function(m){for(var k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:J3,S=k,M;M=m.next(),!M.done;)S=S*q9+M.value|0;return S},Vg=function(m){var k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:J3;return k*q9+m|0},Em=function(m){var k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:l5;return(k<<5)+k+m|0},H9=function(m,k){return m*2097152+k},Cm=function(m){return m[0]*2097152+m[1]},h5=function(m,k){return[Vg(m[0],k[0]),Em(m[1],k[1])]},y1=function(m,k){var S={value:0,done:!1},M=0,O=m.length,N={next:function(){return M=0&&!(m[M]===k&&(m.splice(M,1),S));M--);},uS=function(m){m.splice(0,m.length)},bj=function(m,k){for(var S=0;S"u"?"undefined":u(Set))!==iZ?Set:sZ,lS=function(m,k){var S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(m===void 0||k===void 0||!Pe(m)){sh("An element must have a core reference and parameters set");return}var M=k.group;if(M==null&&(k.data&&k.data.source!=null&&k.data.target!=null?M="edges":M="nodes"),M!=="nodes"&&M!=="edges"){sh("An element must be of type `nodes` or `edges`; you specified `"+M+"`");return}this.length=1,this[0]=this;var O=this._private={cy:m,single:!0,data:k.data||{},position:k.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:M,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!k.selected,selectable:k.selectable===void 0?!0:!!k.selectable,locked:!!k.locked,grabbed:!1,grabbable:k.grabbable===void 0?!0:!!k.grabbable,pannable:k.pannable===void 0?M==="edges":!!k.pannable,active:!1,classes:new J7,animation:{current:[],queue:[]},rscratch:{},scratch:k.scratch||{},edges:[],children:[],parent:k.parent&&k.parent.isNode()?k.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(O.position.x==null&&(O.position.x=0),O.position.y==null&&(O.position.y=0),k.renderedPosition){var N=k.renderedPosition,$=m.pan(),H=m.zoom();O.position={x:(N.x-$.x)/H,y:(N.y-$.y)/H}}var q=[];ne(k.classes)?q=k.classes:ge(k.classes)&&(q=k.classes.split(/\s+/));for(var Y=0,Z=q.length;YFe?1:0},Y=function(Te,Fe,Re,Ve,ct){var st;if(Re==null&&(Re=0),ct==null&&(ct=S),Re<0)throw new Error("lo must be non-negative");for(Ve==null&&(Ve=Te.length);ReLt;0<=Lt?Qe++:Qe--)vt.push(Qe);return vt}).apply(this).reverse(),Ye=[],Ve=0,ct=st.length;VeMt;0<=Mt?++vt:--vt)ut.push(N(Te,Re));return ut},Le=function(Te,Fe,Re,Ve){var ct,st,Ye;for(Ve==null&&(Ve=S),ct=Te[Re];Re>Fe;){if(Ye=Re-1>>1,st=Te[Ye],Ve(ct,st)<0){Te[Re]=st,Re=Ye;continue}break}return Te[Re]=ct},_e=function(Te,Fe,Re){var Ve,ct,st,Ye,vt;for(Re==null&&(Re=S),ct=Te.length,vt=Fe,st=Te[Fe],Ve=2*Fe+1;Ve0;){var st=Fe.pop(),Ye=_e(st),vt=st.id();if(ce[vt]=Ye,Ye!==1/0)for(var Qe=st.neighborhood().intersect(me),Lt=0;Lt0)for(Dn.unshift(Xt);Z[mr];){var Pn=Z[mr];Dn.unshift(Pn.edge),Dn.unshift(Pn.node),rr=Pn.node,mr=rr.id()}return $.spawn(Dn)}}}},uZ={kruskal:function(m){m=m||function(Re){return 1};for(var k=this.byGroup(),S=k.nodes,M=k.edges,O=S.length,N=new Array(O),$=S,H=function(Ve){for(var ct=0;ct0;){if(ct(),Ye++,Ve===Y){for(var vt=[],Qe=O,Lt=Y,Mt=Te[Lt];vt.unshift(Qe),Mt!=null&&vt.unshift(Mt),Qe=_e[Lt],Qe!=null;)Lt=Qe.id(),Mt=Te[Lt];return{found:!0,distance:Z[Ve],path:this.spawn(vt),steps:Ye}}ve[Ve]=!0;for(var ut=Re._private.edges,Yt=0;YtMt&&(me[Lt]=Mt,Fe[Lt]=Qe,Re[Lt]=ct),!O){var ut=Qe*Y+vt;!O&&me[ut]>Mt&&(me[ut]=Mt,Fe[ut]=vt,Re[ut]=ct)}}}for(var Yt=0;Yt1&&arguments[1]!==void 0?arguments[1]:N,vo=Re(ks),ja=[],Ma=vo;;){if(Ma==null)return k.spawn();var Fo=Fe(Ma),er=Fo.edge,K=Fo.pred;if(ja.unshift(Ma[0]),Ma.same(Rs)&&ja.length>0)break;er!=null&&ja.unshift(er),Ma=K}return H.spawn(ja)},st=0;st=0;Y--){var Z=q[Y],ce=Z[1],ve=Z[2];(k[ce]===$&&k[ve]===H||k[ce]===H&&k[ve]===$)&&q.splice(Y,1)}for(var me=0;meM;){var O=Math.floor(Math.random()*k.length);k=mZ(O,m,k),S--}return k},vZ={kargerStein:function(){var m=this,k=this.byGroup(),S=k.nodes,M=k.edges;M.unmergeBy(function(Dn){return Dn.isLoop()});var O=S.length,N=M.length,$=Math.ceil(Math.pow(Math.log(O)/Math.LN2,2)),H=Math.floor(O/bZ);if(O<2){sh("At least 2 nodes are required for Karger-Stein algorithm");return}for(var q=[],Y=0;Y1&&arguments[1]!==void 0?arguments[1]:0,S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:m.length,M=1/0,O=k;O1&&arguments[1]!==void 0?arguments[1]:0,S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:m.length,M=-1/0,O=k;O1&&arguments[1]!==void 0?arguments[1]:0,S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:m.length,M=0,O=0,N=k;N1&&arguments[1]!==void 0?arguments[1]:0,S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:m.length,M=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,O=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,N=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;M?m=m.slice(k,S):(S0&&m.splice(0,k));for(var $=0,H=m.length-1;H>=0;H--){var q=m[H];N?isFinite(q)||(m[H]=-1/0,$++):m.splice(H,1)}O&&m.sort(function(ce,ve){return ce-ve});var Y=m.length,Z=Math.floor(Y/2);return Y%2!==0?m[Z+1+$]:(m[Z-1+$]+m[Z+$])/2},EZ=function(m){return Math.PI*m/180},fS=function(m,k){return Math.atan2(k,m)-Math.PI/2},fI=Math.log2||function(x){return Math.log(x)/Math.log(2)},wj=function(m){return m>0?1:m<0?-1:0},d5=function(m,k){return Math.sqrt(g5(m,k))},g5=function(m,k){var S=k.x-m.x,M=k.y-m.y;return S*S+M*M},CZ=function(m){for(var k=m.length,S=0,M=0;M=m.x1&&m.y2>=m.y1)return{x1:m.x1,y1:m.y1,x2:m.x2,y2:m.y2,w:m.x2-m.x1,h:m.y2-m.y1};if(m.w!=null&&m.h!=null&&m.w>=0&&m.h>=0)return{x1:m.x1,y1:m.y1,x2:m.x1+m.w,y2:m.y1+m.h,w:m.w,h:m.h}}},_Z=function(m){return{x1:m.x1,x2:m.x2,w:m.w,y1:m.y1,y2:m.y2,h:m.h}},AZ=function(m){m.x1=1/0,m.y1=1/0,m.x2=-1/0,m.y2=-1/0,m.w=0,m.h=0},LZ=function(m,k,S){return{x1:m.x1+k,x2:m.x2+k,y1:m.y1+S,y2:m.y2+S,w:m.w,h:m.h}},yj=function(m,k){m.x1=Math.min(m.x1,k.x1),m.x2=Math.max(m.x2,k.x2),m.w=m.x2-m.x1,m.y1=Math.min(m.y1,k.y1),m.y2=Math.max(m.y2,k.y2),m.h=m.y2-m.y1},MZ=function(m,k,S){m.x1=Math.min(m.x1,k),m.x2=Math.max(m.x2,k),m.w=m.x2-m.x1,m.y1=Math.min(m.y1,S),m.y2=Math.max(m.y2,S),m.h=m.y2-m.y1},dS=function(m){var k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m.x1-=k,m.x2+=k,m.y1-=k,m.y2+=k,m.w=m.x2-m.x1,m.h=m.y2-m.y1,m},gS=function(m){var k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],S,M,O,N;if(k.length===1)S=M=O=N=k[0];else if(k.length===2)S=O=k[0],N=M=k[1];else if(k.length===4){var $=y(k,4);S=$[0],M=$[1],O=$[2],N=$[3]}return m.x1-=N,m.x2+=M,m.y1-=S,m.y2+=O,m.w=m.x2-m.x1,m.h=m.y2-m.y1,m},xj=function(m,k){m.x1=k.x1,m.y1=k.y1,m.x2=k.x2,m.y2=k.y2,m.w=m.x2-m.x1,m.h=m.y2-m.y1},dI=function(m,k){return!(m.x1>k.x2||k.x1>m.x2||m.x2k.y2||k.y1>m.y2)},t8=function(m,k,S){return m.x1<=k&&k<=m.x2&&m.y1<=S&&S<=m.y2},DZ=function(m,k){return t8(m,k.x,k.y)},kj=function(m,k){return t8(m,k.x1,k.y1)&&t8(m,k.x2,k.y2)},Tj=function(m,k,S,M,O,N,$){var H=X9(O,N),q=O/2,Y=N/2,Z;{var ce=S-q+H-$,ve=M-Y-$,me=S+q-H+$,Le=ve;if(Z=ny(m,k,S,M,ce,ve,me,Le,!1),Z.length>0)return Z}{var _e=S+q+$,Te=M-Y+H-$,Fe=_e,Re=M+Y-H+$;if(Z=ny(m,k,S,M,_e,Te,Fe,Re,!1),Z.length>0)return Z}{var Ve=S-q+H-$,ct=M+Y+$,st=S+q-H+$,Ye=ct;if(Z=ny(m,k,S,M,Ve,ct,st,Ye,!1),Z.length>0)return Z}{var vt=S-q-$,Qe=M-Y+H-$,Lt=vt,Mt=M+Y-H+$;if(Z=ny(m,k,S,M,vt,Qe,Lt,Mt,!1),Z.length>0)return Z}var ut;{var Yt=S-q+H,St=M-Y+H;if(ut=W9(m,k,S,M,Yt,St,H+$),ut.length>0&&ut[0]<=Yt&&ut[1]<=St)return[ut[0],ut[1]]}{var _n=S+q-H,fn=M-Y+H;if(ut=W9(m,k,S,M,_n,fn,H+$),ut.length>0&&ut[0]>=_n&&ut[1]<=fn)return[ut[0],ut[1]]}{var Xt=S+q-H,Dn=M+Y-H;if(ut=W9(m,k,S,M,Xt,Dn,H+$),ut.length>0&&ut[0]>=Xt&&ut[1]>=Dn)return[ut[0],ut[1]]}{var rr=S-q+H,mr=M+Y-H;if(ut=W9(m,k,S,M,rr,mr,H+$),ut.length>0&&ut[0]<=rr&&ut[1]>=mr)return[ut[0],ut[1]]}return[]},IZ=function(m,k,S,M,O,N,$){var H=$,q=Math.min(S,O),Y=Math.max(S,O),Z=Math.min(M,N),ce=Math.max(M,N);return q-H<=m&&m<=Y+H&&Z-H<=k&&k<=ce+H},OZ=function(m,k,S,M,O,N,$,H,q){var Y={x1:Math.min(S,$,O)-q,x2:Math.max(S,$,O)+q,y1:Math.min(M,H,N)-q,y2:Math.max(M,H,N)+q};return!(mY.x2||kY.y2)},NZ=function(m,k,S,M){S-=M;var O=k*k-4*m*S;if(O<0)return[];var N=Math.sqrt(O),$=2*m,H=(-k+N)/$,q=(-k-N)/$;return[H,q]},PZ=function(m,k,S,M,O){var N=1e-5;m===0&&(m=N),k/=m,S/=m,M/=m;var $,H,q,Y,Z,ce,ve,me;if(H=(3*S-k*k)/9,q=-(27*M)+k*(9*S-2*(k*k)),q/=54,$=H*H*H+q*q,O[1]=0,ve=k/3,$>0){Z=q+Math.sqrt($),Z=Z<0?-Math.pow(-Z,1/3):Math.pow(Z,1/3),ce=q-Math.sqrt($),ce=ce<0?-Math.pow(-ce,1/3):Math.pow(ce,1/3),O[0]=-ve+Z+ce,ve+=(Z+ce)/2,O[4]=O[2]=-ve,ve=Math.sqrt(3)*(-ce+Z)/2,O[3]=ve,O[5]=-ve;return}if(O[5]=O[3]=0,$===0){me=q<0?-Math.pow(-q,1/3):Math.pow(q,1/3),O[0]=-ve+2*me,O[4]=O[2]=-(me+ve);return}H=-H,Y=H*H*H,Y=Math.acos(q/Math.sqrt(Y)),me=2*Math.sqrt(H),O[0]=-ve+me*Math.cos(Y/3),O[2]=-ve+me*Math.cos((Y+2*Math.PI)/3),O[4]=-ve+me*Math.cos((Y+4*Math.PI)/3)},BZ=function(m,k,S,M,O,N,$,H){var q=1*S*S-4*S*O+2*S*$+4*O*O-4*O*$+$*$+M*M-4*M*N+2*M*H+4*N*N-4*N*H+H*H,Y=1*9*S*O-3*S*S-3*S*$-6*O*O+3*O*$+9*M*N-3*M*M-3*M*H-6*N*N+3*N*H,Z=1*3*S*S-6*S*O+S*$-S*m+2*O*O+2*O*m-$*m+3*M*M-6*M*N+M*H-M*k+2*N*N+2*N*k-H*k,ce=1*S*O-S*S+S*m-O*m+M*N-M*M+M*k-N*k,ve=[];PZ(q,Y,Z,ce,ve);for(var me=1e-7,Le=[],_e=0;_e<6;_e+=2)Math.abs(ve[_e+1])=0&&ve[_e]<=1&&Le.push(ve[_e]);Le.push(1),Le.push(0);for(var Te=-1,Fe,Re,Ve,ct=0;ct=0?Veq?(m-O)*(m-O)+(k-N)*(k-N):Y-ce},Jd=function(m,k,S){for(var M,O,N,$,H,q=0,Y=0;Y=m&&m>=N||M<=m&&m<=N)H=(m-M)/(N-M)*($-O)+O,H>k&&q++;else continue;return q%2!==0},Jv=function(m,k,S,M,O,N,$,H,q){var Y=new Array(S.length),Z;H[0]!=null?(Z=Math.atan(H[1]/H[0]),H[0]<0?Z=Z+Math.PI/2:Z=-Z-Math.PI/2):Z=H;for(var ce=Math.cos(-Z),ve=Math.sin(-Z),me=0;me0){var _e=bS(Y,-q);Le=pS(_e)}else Le=Y;return Jd(m,k,Le)},RZ=function(m,k,S,M,O,N,$){for(var H=new Array(S.length),q=N/2,Y=$/2,Z=bI(N,$),ce=Z*Z,ve=0;ve=0&&_e<=1&&Fe.push(_e),Te>=0&&Te<=1&&Fe.push(Te),Fe.length===0)return[];var Re=Fe[0]*H[0]+m,Ve=Fe[0]*H[1]+k;if(Fe.length>1){if(Fe[0]==Fe[1])return[Re,Ve];var ct=Fe[1]*H[0]+m,st=Fe[1]*H[1]+k;return[Re,Ve,ct,st]}else return[Re,Ve]},gI=function(m,k,S){return k<=m&&m<=S||S<=m&&m<=k?m:m<=k&&k<=S||S<=k&&k<=m?k:S},ny=function(m,k,S,M,O,N,$,H,q){var Y=m-O,Z=S-m,ce=$-O,ve=k-N,me=M-k,Le=H-N,_e=ce*ve-Le*Y,Te=Z*ve-me*Y,Fe=Le*Z-ce*me;if(Fe!==0){var Re=_e/Fe,Ve=Te/Fe,ct=.001,st=0-ct,Ye=1+ct;return st<=Re&&Re<=Ye&&st<=Ve&&Ve<=Ye?[m+Re*Z,k+Re*me]:q?[m+Re*Z,k+Re*me]:[]}else return _e===0||Te===0?gI(m,S,$)===$?[$,H]:gI(m,S,O)===O?[O,N]:gI(O,$,S)===S?[S,M]:[]:[]},Y9=function(m,k,S,M,O,N,$,H){var q=[],Y,Z=new Array(S.length),ce=!0;N==null&&(ce=!1);var ve;if(ce){for(var me=0;me0){var Le=bS(Z,-H);ve=pS(Le)}else ve=Z}else ve=S;for(var _e,Te,Fe,Re,Ve=0;Ve2){for(var fn=[q[0],q[1]],Xt=Math.pow(fn[0]-m,2)+Math.pow(fn[1]-k,2),Dn=1;DnY&&(Y=Ve)},get:function(Re){return q[Re]}},ce=0;ce<$.length;ce++){var ve=$[ce],me=ve.id();S?H[me]=ve.outgoers().nodes():H[me]=ve.openNeighborhood().nodes(),Z.set(me,0)}for(var Le=function(Re){for(var Ve=$[Re].id(),ct=[],st={},Ye={},vt={},Qe=new G9(function(Er,Ir){return vt[Er]-vt[Ir]}),Lt=0;Lt<$.length;Lt++){var Mt=$[Lt].id();st[Mt]=[],Ye[Mt]=0,vt[Mt]=1/0}for(Ye[Ve]=1,vt[Ve]=0,Qe.push(Ve);!Qe.empty();){var ut=Qe.pop();if(ct.push(ut),O)for(var Yt=0;Yt0?fn=_n.edgesTo(St)[0]:fn=St.edgesTo(_n)[0];var Xt=M(fn);St=St.id(),vt[St]>vt[ut]+Xt&&(vt[St]=vt[ut]+Xt,Qe.nodes.indexOf(St)<0?Qe.push(St):Qe.updateItem(St),Ye[St]=0,st[St]=[]),vt[St]==vt[ut]+Xt&&(Ye[St]=Ye[St]+Ye[ut],st[St].push(ut))}else for(var Dn=0;Dn0;){for(var gr=ct.pop(),kr=0;kr0&&$.push(S[H]);$.length!==0&&O.push(M.collection($))}return O},ZZ=function(m,k){for(var S=0;S5&&arguments[5]!==void 0?arguments[5]:nee,$=M,H,q,Y=0;Y=2?Q9(m,k,S,0,Oj,ree):Q9(m,k,S,0,Ij)},squaredEuclidean:function(m,k,S){return Q9(m,k,S,0,Oj)},manhattan:function(m,k,S){return Q9(m,k,S,0,Ij)},max:function(m,k,S){return Q9(m,k,S,-1/0,iee)}};i8["squared-euclidean"]=i8.squaredEuclidean,i8.squaredeuclidean=i8.squaredEuclidean;function vS(x,m,k,S,M,O){var N;return ae(x)?N=x:N=i8[x]||i8.euclidean,m===0&&ae(x)?N(M,O):N(m,k,S,M,O)}var see=z0({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),wI=function(m){return see(m)},wS=function(m,k,S,M,O){var N=O!=="kMedoids",$=N?function(Z){return S[Z]}:function(Z){return M[Z](S)},H=function(ce){return M[ce](k)},q=S,Y=k;return vS(m,M.length,$,H,q,Y)},yI=function(m,k,S){for(var M=S.length,O=new Array(M),N=new Array(M),$=new Array(k),H=null,q=0;qS)return!1}return!0},cee=function(m,k,S){for(var M=0;M$&&($=k[q][Y],H=Y);O[H].push(m[q])}for(var Z=0;Z=O.threshold||O.mode==="dendrogram"&&m.length===1)return!1;var me=k[N],Le=k[M[N]],_e;O.mode==="dendrogram"?_e={left:me,right:Le,key:me.key}:_e={value:me.value.concat(Le.value),key:me.key},m[me.index]=_e,m.splice(Le.index,1),k[me.key]=_e;for(var Te=0;TeS[Le.key][Fe.key]&&(H=S[Le.key][Fe.key])):O.linkage==="max"?(H=S[me.key][Fe.key],S[me.key][Fe.key]0&&M.push(O);return M},zj=function(m,k,S){for(var M=[],O=0;O$&&(N=q,$=k[O*m+q])}N>0&&M.push(N)}for(var Y=0;Yq&&(H=Y,q=Z)}S[O]=N[H]}return M=zj(m,k,S),M},qj=function(m){for(var k=this.cy(),S=this.nodes(),M=kee(m),O={},N=0;N=Mt?(ut=Mt,Mt=St,Yt=_n):St>ut&&(ut=St);for(var fn=0;fn<$;fn++)Z[Lt*$+fn]=(1-M.damping)*(q[Lt*$+fn]-Mt)+M.damping*Re[fn];Z[Lt*$+Yt]=(1-M.damping)*(q[Lt*$+Yt]-ut)+M.damping*Re[Yt]}for(var Xt=0;Xt<$;Xt++){for(var Dn=0,rr=0;rr<$;rr++)Re[rr]=ce[rr*$+Xt],Ve[rr]=Math.max(0,Z[rr*$+Xt]),Dn+=Ve[rr];Dn-=Ve[Xt],Ve[Xt]=Z[Xt*$+Xt],Dn+=Ve[Xt];for(var mr=0;mr<$;mr++)ce[mr*$+Xt]=(1-M.damping)*Math.min(0,Dn-Ve[mr])+M.damping*Re[mr];ce[Xt*$+Xt]=(1-M.damping)*(Dn-Ve[Xt])+M.damping*Re[Xt]}for(var Pn=0,gr=0;gr<$;gr++){var kr=ce[gr*$+gr]+Z[gr*$+gr]>0?1:0;Ye[Qe%M.minIterations*$+gr]=kr,Pn+=kr}if(Pn>0&&(Qe>=M.minIterations-1||Qe==M.maxIterations-1)){for(var Lr=0,Er=0;Er<$;Er++){ct[Er]=0;for(var Ir=0;Ir1||st>1)&&($=!0),Z[Re]=[],Fe.outgoers().forEach(function(vt){vt.isEdge()&&Z[Re].push(vt.id())})}else ce[Re]=[void 0,Fe.target().id()]}):N.forEach(function(Fe){var Re=Fe.id();if(Fe.isNode()){var Ve=Fe.degree(!0);Ve%2&&(H?q?$=!0:q=Re:H=Re),Z[Re]=[],Fe.connectedEdges().forEach(function(ct){return Z[Re].push(ct.id())})}else ce[Re]=[Fe.source().id(),Fe.target().id()]});var ve={found:!1,trail:void 0};if($)return ve;if(q&&H)if(O){if(Y&&q!=Y)return ve;Y=q}else{if(Y&&q!=Y&&H!=Y)return ve;Y||(Y=q)}else Y||(Y=N[0].id());var me=function(Re){for(var Ve=Re,ct=[Re],st,Ye,vt;Z[Ve].length;)st=Z[Ve].shift(),Ye=ce[st][0],vt=ce[st][1],Ve!=vt?(Z[vt]=Z[vt].filter(function(Qe){return Qe!=st}),Ve=vt):!O&&Ve!=Ye&&(Z[Ye]=Z[Ye].filter(function(Qe){return Qe!=st}),Ve=Ye),ct.unshift(st),ct.unshift(Ve);return ct},Le=[],_e=[];for(_e=me(Y);_e.length!=1;)Z[_e[0]].length==0?(Le.unshift(N.getElementById(_e.shift())),Le.unshift(N.getElementById(_e.shift()))):_e=me(_e.shift()).concat(_e);Le.unshift(N.getElementById(_e.shift()));for(var Te in Z)if(Z[Te].length)return ve;return ve.found=!0,ve.trail=this.spawn(Le,!0),ve}},xS=function(){var m=this,k={},S=0,M=0,O=[],N=[],$={},H=function(ce,ve){for(var me=N.length-1,Le=[],_e=m.spawn();N[me].x!=ce||N[me].y!=ve;)Le.push(N.pop().edge),me--;Le.push(N.pop().edge),Le.forEach(function(Te){var Fe=Te.connectedNodes().intersection(m);_e.merge(Te),Fe.forEach(function(Re){var Ve=Re.id(),ct=Re.connectedEdges().intersection(m);_e.merge(Re),k[Ve].cutVertex?_e.merge(ct.filter(function(st){return st.isLoop()})):_e.merge(ct)})}),O.push(_e)},q=function Z(ce,ve,me){ce===me&&(M+=1),k[ve]={id:S,low:S++,cutVertex:!1};var Le=m.getElementById(ve).connectedEdges().intersection(m);if(Le.size()===0)O.push(m.spawn(m.getElementById(ve)));else{var _e,Te,Fe,Re;Le.forEach(function(Ve){_e=Ve.source().id(),Te=Ve.target().id(),Fe=_e===ve?Te:_e,Fe!==me&&(Re=Ve.id(),$[Re]||($[Re]=!0,N.push({x:ve,y:Fe,edge:Ve})),Fe in k?k[ve].low=Math.min(k[ve].low,k[Fe].id):(Z(ce,Fe,ve),k[ve].low=Math.min(k[ve].low,k[Fe].low),k[ve].id<=k[Fe].low&&(k[ve].cutVertex=!0,H(ve,Fe))))})}};m.forEach(function(Z){if(Z.isNode()){var ce=Z.id();ce in k||(M=0,q(ce,ce),k[ce].cutVertex=M>1)}});var Y=Object.keys(k).filter(function(Z){return k[Z].cutVertex}).map(function(Z){return m.getElementById(Z)});return{cut:m.spawn(Y),components:O}},Mee={hopcroftTarjanBiconnected:xS,htbc:xS,htb:xS,hopcroftTarjanBiconnectedComponents:xS},kS=function(){var m=this,k={},S=0,M=[],O=[],N=m.spawn(m),$=function H(q){O.push(q),k[q]={index:S,low:S++,explored:!1};var Y=m.getElementById(q).connectedEdges().intersection(m);if(Y.forEach(function(Le){var _e=Le.target().id();_e!==q&&(_e in k||H(_e),k[_e].explored||(k[q].low=Math.min(k[q].low,k[_e].low)))}),k[q].index===k[q].low){for(var Z=m.spawn();;){var ce=O.pop();if(Z.merge(m.getElementById(ce)),k[ce].low=k[q].index,k[ce].explored=!0,ce===q)break}var ve=Z.edgesWith(Z),me=Z.merge(ve);M.push(me),N=N.difference(me)}};return m.forEach(function(H){if(H.isNode()){var q=H.id();q in k||$(q)}}),{cut:N,components:M}},Dee={tarjanStronglyConnected:kS,tsc:kS,tscc:kS,tarjanStronglyConnectedComponents:kS},Hj={};[V9,cZ,uZ,hZ,dZ,pZ,vZ,HZ,n8,r8,vI,tee,gee,yee,_ee,Lee,Mee,Dee].forEach(function(x){xt(Hj,x)});/*! +Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable +Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) +Licensed under The MIT License (http://opensource.org/licenses/MIT) +*/var Uj=0,Vj=1,Gj=2,Zv=function x(m){if(!(this instanceof x))return new x(m);this.id="Thenable/1.0.7",this.state=Uj,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof m=="function"&&m.call(this,this.fulfill.bind(this),this.reject.bind(this))};Zv.prototype={fulfill:function(m){return Kj(this,Vj,"fulfillValue",m)},reject:function(m){return Kj(this,Gj,"rejectReason",m)},then:function(m,k){var S=this,M=new Zv;return S.onFulfilled.push(Xj(m,M,"fulfill")),S.onRejected.push(Xj(k,M,"reject")),Wj(S),M.proxy}};var Kj=function(m,k,S,M){return m.state===Uj&&(m.state=k,m[S]=M,Wj(m)),m},Wj=function(m){m.state===Vj?Yj(m,"onFulfilled",m.fulfillValue):m.state===Gj&&Yj(m,"onRejected",m.rejectReason)},Yj=function(m,k,S){if(m[k].length!==0){var M=m[k];m[k]=[];var O=function(){for(var $=0;$0}},clearQueue:function(){return function(){var k=this,S=k.length!==void 0,M=S?k:[k],O=this._private.cy||this;if(!O.styleEnabled())return this;for(var N=0;N-1}var Ite=Dte;function Ote(x,m){var k=this.__data__,S=CS(k,x);return S<0?(++this.size,k.push([x,m])):k[S][1]=m,this}var Nte=Ote;function o8(x){var m=-1,k=x==null?0:x.length;for(this.clear();++m-1&&x%1==0&&x0&&this.spawn(M).updateStyle().emit("class"),k},addClass:function(m){return this.toggleClass(m,!0)},hasClass:function(m){var k=this[0];return k!=null&&k._private.classes.has(m)},toggleClass:function(m,k){ne(m)||(m=m.match(/\S+/g)||[]);for(var S=this,M=k===void 0,O=[],N=0,$=S.length;N<$;N++)for(var H=S[N],q=H._private.classes,Y=!1,Z=0;Z0&&this.spawn(O).updateStyle().emit("class"),S},removeClass:function(m){return this.toggleClass(m,!1)},flashClass:function(m,k){var S=this;if(k==null)k=250;else if(k===0)return S;return S.addClass(m),setTimeout(function(){S.removeClass(m)},k),S}};_S.className=_S.classNames=_S.classes;var $c={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:un,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};$c.variable="(?:[\\w-.]|(?:\\\\"+$c.metaChar+"))+",$c.className="(?:[\\w-]|(?:\\\\"+$c.metaChar+"))+",$c.value=$c.string+"|"+$c.number,$c.id=$c.variable,function(){var x,m,k;for(x=$c.comparatorOp.split("|"),k=0;k=0)&&m!=="="&&($c.comparatorOp+="|\\!"+m)}();var Nu=function(){return{checks:[]}},hs={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},CI=[{selector:":selected",matches:function(m){return m.selected()}},{selector:":unselected",matches:function(m){return!m.selected()}},{selector:":selectable",matches:function(m){return m.selectable()}},{selector:":unselectable",matches:function(m){return!m.selectable()}},{selector:":locked",matches:function(m){return m.locked()}},{selector:":unlocked",matches:function(m){return!m.locked()}},{selector:":visible",matches:function(m){return m.visible()}},{selector:":hidden",matches:function(m){return!m.visible()}},{selector:":transparent",matches:function(m){return m.transparent()}},{selector:":grabbed",matches:function(m){return m.grabbed()}},{selector:":free",matches:function(m){return!m.grabbed()}},{selector:":removed",matches:function(m){return m.removed()}},{selector:":inside",matches:function(m){return!m.removed()}},{selector:":grabbable",matches:function(m){return m.grabbable()}},{selector:":ungrabbable",matches:function(m){return!m.grabbable()}},{selector:":animated",matches:function(m){return m.animated()}},{selector:":unanimated",matches:function(m){return!m.animated()}},{selector:":parent",matches:function(m){return m.isParent()}},{selector:":childless",matches:function(m){return m.isChildless()}},{selector:":child",matches:function(m){return m.isChild()}},{selector:":orphan",matches:function(m){return m.isOrphan()}},{selector:":nonorphan",matches:function(m){return m.isChild()}},{selector:":compound",matches:function(m){return m.isNode()?m.isParent():m.source().isParent()||m.target().isParent()}},{selector:":loop",matches:function(m){return m.isLoop()}},{selector:":simple",matches:function(m){return m.isSimple()}},{selector:":active",matches:function(m){return m.active()}},{selector:":inactive",matches:function(m){return!m.active()}},{selector:":backgrounding",matches:function(m){return m.backgrounding()}},{selector:":nonbackgrounding",matches:function(m){return!m.backgrounding()}}].sort(function(x,m){return qr(x.selector,m.selector)}),Fne=function(){for(var x={},m,k=0;k0&&Y.edgeCount>0)return lu("The selector `"+m+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(Y.edgeCount>1)return lu("The selector `"+m+"` is invalid because it uses multiple edge selectors"),!1;Y.edgeCount===1&&lu("The selector `"+m+"` 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},qne=function(){if(this.toStringCache!=null)return this.toStringCache;for(var m=function(Y){return Y??""},k=function(Y){return ge(Y)?'"'+Y+'"':m(Y)},S=function(Y){return" "+Y+" "},M=function(Y,Z){var ce=Y.type,ve=Y.value;switch(ce){case hs.GROUP:{var me=m(ve);return me.substring(0,me.length-1)}case hs.DATA_COMPARE:{var Le=Y.field,_e=Y.operator;return"["+Le+S(m(_e))+k(ve)+"]"}case hs.DATA_BOOL:{var Te=Y.operator,Fe=Y.field;return"["+m(Te)+Fe+"]"}case hs.DATA_EXIST:{var Re=Y.field;return"["+Re+"]"}case hs.META_COMPARE:{var Ve=Y.operator,ct=Y.field;return"[["+ct+S(m(Ve))+k(ve)+"]]"}case hs.STATE:return ve;case hs.ID:return"#"+ve;case hs.CLASS:return"."+ve;case hs.PARENT:case hs.CHILD:return O(Y.parent,Z)+S(">")+O(Y.child,Z);case hs.ANCESTOR:case hs.DESCENDANT:return O(Y.ancestor,Z)+" "+O(Y.descendant,Z);case hs.COMPOUND_SPLIT:{var st=O(Y.left,Z),Ye=O(Y.subject,Z),vt=O(Y.right,Z);return st+(st.length>0?" ":"")+Ye+vt}case hs.TRUE:return""}},O=function(Y,Z){return Y.checks.reduce(function(ce,ve,me){return ce+(Z===Y&&me===0?"$":"")+M(ve,Z)},"")},N="",$=0;$1&&$=0&&(k=k.replace("!",""),Z=!0),k.indexOf("@")>=0&&(k=k.replace("@",""),Y=!0),(O||$||Y)&&(H=!O&&!N?"":""+m,q=""+S),Y&&(m=H=H.toLowerCase(),S=q=q.toLowerCase()),k){case"*=":M=H.indexOf(q)>=0;break;case"$=":M=H.indexOf(q,H.length-q.length)>=0;break;case"^=":M=H.indexOf(q)===0;break;case"=":M=m===S;break;case">":ce=!0,M=m>S;break;case">=":ce=!0,M=m>=S;break;case"<":ce=!0,M=m0;){var Y=M.shift();m(Y),O.add(Y.id()),$&&S(M,O,Y)}return x}function m$(x,m,k){if(k.isParent())for(var S=k._private.children,M=0;M1&&arguments[1]!==void 0?arguments[1]:!0;return AI(this,x,m,m$)};function v$(x,m,k){if(k.isChild()){var S=k._private.parent;m.has(S.id())||x.push(S)}}l8.forEachUp=function(x){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return AI(this,x,m,v$)};function Yne(x,m,k){v$(x,m,k),m$(x,m,k)}l8.forEachUpAndDown=function(x){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return AI(this,x,m,Yne)},l8.ancestors=l8.parents;var x1,w$;x1=w$={data:hu.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:hu.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:hu.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:hu.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:hu.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:hu.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var m=this[0];if(m)return m._private.data.id}},x1.attr=x1.data,x1.removeAttr=x1.removeData;var sy=w$,ek={};function LI(x){return function(m){var k=this;if(m===void 0&&(m=!0),k.length!==0)if(k.isNode()&&!k.removed()){for(var S=0,M=k[0],O=M._private.edges,N=0;Nm}),minIndegree:h8("indegree",function(x,m){return xm}),minOutdegree:h8("outdegree",function(x,m){return xm})}),xt(ek,{totalDegree:function(m){for(var k=0,S=this.nodes(),M=0;M0,ce=Z;Z&&(Y=Y[0]);var ve=ce?Y.position():{x:0,y:0};k!==void 0?q.position(m,k+ve[m]):O!==void 0&&q.position({x:O.x+ve.x,y:O.y+ve.y})}else{var me=S.position(),Le=$?S.parent():null,_e=Le&&Le.length>0,Te=_e;_e&&(Le=Le[0]);var Fe=Te?Le.position():{x:0,y:0};return O={x:me.x-Fe.x,y:me.y-Fe.y},m===void 0?O:O[m]}else if(!N)return;return this}},rb.modelPosition=rb.point=rb.position,rb.modelPositions=rb.points=rb.positions,rb.renderedPoint=rb.renderedPosition,rb.relativePoint=rb.relativePosition;var Xne=y$,f8,ay;f8=ay={},ay.renderedBoundingBox=function(x){var m=this.boundingBox(x),k=this.cy(),S=k.zoom(),M=k.pan(),O=m.x1*S+M.x,N=m.x2*S+M.x,$=m.y1*S+M.y,H=m.y2*S+M.y;return{x1:O,x2:N,y1:$,y2:H,w:N-O,h:H-$}},ay.dirtyCompoundBoundsCache=function(){var x=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,m=this.cy();return!m.styleEnabled()||!m.hasCompoundNodes()?this:(this.forEachUp(function(k){if(k.isParent()){var S=k._private;S.compoundBoundsClean=!1,S.bbCache=null,x||k.emitAndNotify("bounds")}}),this)},ay.updateCompoundBounds=function(){var x=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,m=this.cy();if(!m.styleEnabled()||!m.hasCompoundNodes())return this;if(!x&&m.batching())return this;function k(N){if(!N.isParent())return;var $=N._private,H=N.children(),q=N.pstyle("compound-sizing-wrt-labels").value==="include",Y={width:{val:N.pstyle("min-width").pfValue,left:N.pstyle("min-width-bias-left"),right:N.pstyle("min-width-bias-right")},height:{val:N.pstyle("min-height").pfValue,top:N.pstyle("min-height-bias-top"),bottom:N.pstyle("min-height-bias-bottom")}},Z=H.boundingBox({includeLabels:q,includeOverlays:!1,useCache:!1}),ce=$.position;(Z.w===0||Z.h===0)&&(Z={w:N.pstyle("width").pfValue,h:N.pstyle("height").pfValue},Z.x1=ce.x-Z.w/2,Z.x2=ce.x+Z.w/2,Z.y1=ce.y-Z.h/2,Z.y2=ce.y+Z.h/2);function ve(Qe,Lt,Mt){var ut=0,Yt=0,St=Lt+Mt;return Qe>0&&St>0&&(ut=Lt/St*Qe,Yt=Mt/St*Qe),{biasDiff:ut,biasComplementDiff:Yt}}function me(Qe,Lt,Mt,ut){if(Mt.units==="%")switch(ut){case"width":return Qe>0?Mt.pfValue*Qe:0;case"height":return Lt>0?Mt.pfValue*Lt:0;case"average":return Qe>0&&Lt>0?Mt.pfValue*(Qe+Lt)/2:0;case"min":return Qe>0&&Lt>0?Qe>Lt?Mt.pfValue*Lt:Mt.pfValue*Qe:0;case"max":return Qe>0&&Lt>0?Qe>Lt?Mt.pfValue*Qe:Mt.pfValue*Lt:0;default:return 0}else return Mt.units==="px"?Mt.pfValue:0}var Le=Y.width.left.value;Y.width.left.units==="px"&&Y.width.val>0&&(Le=Le*100/Y.width.val);var _e=Y.width.right.value;Y.width.right.units==="px"&&Y.width.val>0&&(_e=_e*100/Y.width.val);var Te=Y.height.top.value;Y.height.top.units==="px"&&Y.height.val>0&&(Te=Te*100/Y.height.val);var Fe=Y.height.bottom.value;Y.height.bottom.units==="px"&&Y.height.val>0&&(Fe=Fe*100/Y.height.val);var Re=ve(Y.width.val-Z.w,Le,_e),Ve=Re.biasDiff,ct=Re.biasComplementDiff,st=ve(Y.height.val-Z.h,Te,Fe),Ye=st.biasDiff,vt=st.biasComplementDiff;$.autoPadding=me(Z.w,Z.h,N.pstyle("padding"),N.pstyle("padding-relative-to").value),$.autoWidth=Math.max(Z.w,Y.width.val),ce.x=(-Ve+Z.x1+Z.x2+ct)/2,$.autoHeight=Math.max(Z.h,Y.height.val),ce.y=(-Ye+Z.y1+Z.y2+vt)/2}for(var S=0;Sm.x2?M:m.x2,m.y1=Sm.y2?O:m.y2,m.w=m.x2-m.x1,m.h=m.y2-m.y1)},v5=function(m,k){return k==null?m:ib(m,k.x1,k.y1,k.x2,k.y2)},tk=function(m,k,S){return nb(m,k,S)},AS=function(m,k,S){if(!k.cy().headless()){var M=k._private,O=M.rstyle,N=O.arrowWidth/2,$=k.pstyle(S+"-arrow-shape").value,H,q;if($!=="none"){S==="source"?(H=O.srcX,q=O.srcY):S==="target"?(H=O.tgtX,q=O.tgtY):(H=O.midX,q=O.midY);var Y=M.arrowBounds=M.arrowBounds||{},Z=Y[S]=Y[S]||{};Z.x1=H-N,Z.y1=q-N,Z.x2=H+N,Z.y2=q+N,Z.w=Z.x2-Z.x1,Z.h=Z.y2-Z.y1,dS(Z,1),ib(m,Z.x1,Z.y1,Z.x2,Z.y2)}}},MI=function(m,k,S){if(!k.cy().headless()){var M;S?M=S+"-":M="";var O=k._private,N=O.rstyle,$=k.pstyle(M+"label").strValue;if($){var H=k.pstyle("text-halign"),q=k.pstyle("text-valign"),Y=tk(N,"labelWidth",S),Z=tk(N,"labelHeight",S),ce=tk(N,"labelX",S),ve=tk(N,"labelY",S),me=k.pstyle(M+"text-margin-x").pfValue,Le=k.pstyle(M+"text-margin-y").pfValue,_e=k.isEdge(),Te=k.pstyle(M+"text-rotation"),Fe=k.pstyle("text-outline-width").pfValue,Re=k.pstyle("text-border-width").pfValue,Ve=Re/2,ct=k.pstyle("text-background-padding").pfValue,st=2,Ye=Z,vt=Y,Qe=vt/2,Lt=Ye/2,Mt,ut,Yt,St;if(_e)Mt=ce-Qe,ut=ce+Qe,Yt=ve-Lt,St=ve+Lt;else{switch(H.value){case"left":Mt=ce-vt,ut=ce;break;case"center":Mt=ce-Qe,ut=ce+Qe;break;case"right":Mt=ce,ut=ce+vt;break}switch(q.value){case"top":Yt=ve-Ye,St=ve;break;case"center":Yt=ve-Lt,St=ve+Lt;break;case"bottom":Yt=ve,St=ve+Ye;break}}Mt+=me-Math.max(Fe,Ve)-ct-st,ut+=me+Math.max(Fe,Ve)+ct+st,Yt+=Le-Math.max(Fe,Ve)-ct-st,St+=Le+Math.max(Fe,Ve)+ct+st;var _n=S||"main",fn=O.labelBounds,Xt=fn[_n]=fn[_n]||{};Xt.x1=Mt,Xt.y1=Yt,Xt.x2=ut,Xt.y2=St,Xt.w=ut-Mt,Xt.h=St-Yt;var Dn=_e&&Te.strValue==="autorotate",rr=Te.pfValue!=null&&Te.pfValue!==0;if(Dn||rr){var mr=Dn?tk(O.rstyle,"labelAngle",S):Te.pfValue,Pn=Math.cos(mr),gr=Math.sin(mr),kr=(Mt+ut)/2,Lr=(Yt+St)/2;if(!_e){switch(H.value){case"left":kr=ut;break;case"right":kr=Mt;break}switch(q.value){case"top":Lr=St;break;case"bottom":Lr=Yt;break}}var Er=function(va,Di){return va=va-kr,Di=Di-Lr,{x:va*Pn-Di*gr+kr,y:va*gr+Di*Pn+Lr}},Ir=Er(Mt,Yt),Kn=Er(Mt,St),pr=Er(ut,Yt),Cr=Er(ut,St);Mt=Math.min(Ir.x,Kn.x,pr.x,Cr.x),ut=Math.max(Ir.x,Kn.x,pr.x,Cr.x),Yt=Math.min(Ir.y,Kn.y,pr.y,Cr.y),St=Math.max(Ir.y,Kn.y,pr.y,Cr.y)}var Or=_n+"Rot",_i=fn[Or]=fn[Or]||{};_i.x1=Mt,_i.y1=Yt,_i.x2=ut,_i.y2=St,_i.w=ut-Mt,_i.h=St-Yt,ib(m,Mt,Yt,ut,St),ib(O.labelBounds.all,Mt,Yt,ut,St)}return m}},Qne=function(m,k){if(!k.cy().headless()){var S=k.pstyle("outline-opacity").value,M=k.pstyle("outline-width").value;if(S>0&&M>0){var O=k.pstyle("outline-offset").value,N=k.pstyle("shape").value,$=M+O,H=(m.w+$*2)/m.w,q=(m.h+$*2)/m.h,Y=0,Z=0;["diamond","pentagon","round-triangle"].includes(N)?(H=(m.w+$*2.4)/m.w,Z=-$/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(N)?H=(m.w+$*2.4)/m.w:N==="star"?(H=(m.w+$*2.8)/m.w,q=(m.h+$*2.6)/m.h,Z=-$/3.8):N==="triangle"?(H=(m.w+$*2.8)/m.w,q=(m.h+$*2.4)/m.h,Z=-$/1.4):N==="vee"&&(H=(m.w+$*4.4)/m.w,q=(m.h+$*3.8)/m.h,Z=-$*.5);var ce=m.h*q-m.h,ve=m.w*H-m.w;if(gS(m,[Math.ceil(ce/2),Math.ceil(ve/2)]),Y!=0||Z!==0){var me=LZ(m,Y,Z);yj(m,me)}}}},Jne=function(m,k){var S=m._private.cy,M=S.styleEnabled(),O=S.headless(),N=Qd(),$=m._private,H=m.isNode(),q=m.isEdge(),Y,Z,ce,ve,me,Le,_e=$.rstyle,Te=H&&M?m.pstyle("bounds-expansion").pfValue:[0],Fe=function(fs){return fs.pstyle("display").value!=="none"},Re=!M||Fe(m)&&(!q||Fe(m.source())&&Fe(m.target()));if(Re){var Ve=0,ct=0;M&&k.includeOverlays&&(Ve=m.pstyle("overlay-opacity").value,Ve!==0&&(ct=m.pstyle("overlay-padding").value));var st=0,Ye=0;M&&k.includeUnderlays&&(st=m.pstyle("underlay-opacity").value,st!==0&&(Ye=m.pstyle("underlay-padding").value));var vt=Math.max(ct,Ye),Qe=0,Lt=0;if(M&&(Qe=m.pstyle("width").pfValue,Lt=Qe/2),H&&k.includeNodes){var Mt=m.position();me=Mt.x,Le=Mt.y;var ut=m.outerWidth(),Yt=ut/2,St=m.outerHeight(),_n=St/2;Y=me-Yt,Z=me+Yt,ce=Le-_n,ve=Le+_n,ib(N,Y,ce,Z,ve),M&&k.includeOutlines&&Qne(N,m)}else if(q&&k.includeEdges)if(M&&!O){var fn=m.pstyle("curve-style").strValue;if(Y=Math.min(_e.srcX,_e.midX,_e.tgtX),Z=Math.max(_e.srcX,_e.midX,_e.tgtX),ce=Math.min(_e.srcY,_e.midY,_e.tgtY),ve=Math.max(_e.srcY,_e.midY,_e.tgtY),Y-=Lt,Z+=Lt,ce-=Lt,ve+=Lt,ib(N,Y,ce,Z,ve),fn==="haystack"){var Xt=_e.haystackPts;if(Xt&&Xt.length===2){if(Y=Xt[0].x,ce=Xt[0].y,Z=Xt[1].x,ve=Xt[1].y,Y>Z){var Dn=Y;Y=Z,Z=Dn}if(ce>ve){var rr=ce;ce=ve,ve=rr}ib(N,Y-Lt,ce-Lt,Z+Lt,ve+Lt)}}else if(fn==="bezier"||fn==="unbundled-bezier"||fn==="segments"||fn==="taxi"){var mr;switch(fn){case"bezier":case"unbundled-bezier":mr=_e.bezierPts;break;case"segments":case"taxi":mr=_e.linePts;break}if(mr!=null)for(var Pn=0;PnZ){var Kn=Y;Y=Z,Z=Kn}if(ce>ve){var pr=ce;ce=ve,ve=pr}Y-=Lt,Z+=Lt,ce-=Lt,ve+=Lt,ib(N,Y,ce,Z,ve)}if(M&&k.includeEdges&&q&&(AS(N,m,"mid-source"),AS(N,m,"mid-target"),AS(N,m,"source"),AS(N,m,"target")),M){var Cr=m.pstyle("ghost").value==="yes";if(Cr){var Or=m.pstyle("ghost-offset-x").pfValue,_i=m.pstyle("ghost-offset-y").pfValue;ib(N,N.x1+Or,N.y1+_i,N.x2+Or,N.y2+_i)}}var xs=$.bodyBounds=$.bodyBounds||{};xj(xs,N),gS(xs,Te),dS(xs,1),M&&(Y=N.x1,Z=N.x2,ce=N.y1,ve=N.y2,ib(N,Y-vt,ce-vt,Z+vt,ve+vt));var va=$.overlayBounds=$.overlayBounds||{};xj(va,N),gS(va,Te),dS(va,1);var Di=$.labelBounds=$.labelBounds||{};Di.all!=null?AZ(Di.all):Di.all=Qd(),M&&k.includeLabels&&(k.includeMainLabels&&MI(N,m,null),q&&(k.includeSourceLabels&&MI(N,m,"source"),k.includeTargetLabels&&MI(N,m,"target")))}return N.x1=Wp(N.x1),N.y1=Wp(N.y1),N.x2=Wp(N.x2),N.y2=Wp(N.y2),N.w=Wp(N.x2-N.x1),N.h=Wp(N.y2-N.y1),N.w>0&&N.h>0&&Re&&(gS(N,Te),dS(N,1)),N},T$=function(m){var k=0,S=function(N){return(N?1:0)<0&&arguments[0]!==void 0?arguments[0]:lre,m=arguments.length>1?arguments[1]:void 0,k=0;k=0;$--)N($);return this},sb.removeAllListeners=function(){return this.removeListener("*")},sb.emit=sb.trigger=function(x,m,k){var S=this.listeners,M=S.length;return this.emitting++,ne(m)||(m=[m]),DS(this,function(O,N){k!=null&&(S=[{event:N.event,type:N.type,namespace:N.namespace,callback:k}],M=S.length);for(var $=function(Y){var Z=S[Y];if(Z.type===N.type&&(!Z.namespace||Z.namespace===N.namespace||Z.namespace===ure)&&O.eventMatches(O.context,Z,N)){var ce=[N];m!=null&&bj(ce,m),O.beforeEmit(O.context,Z,N),Z.conf&&Z.conf.one&&(O.listeners=O.listeners.filter(function(Le){return Le!==Z}));var ve=O.callbackContext(O.context,Z,N),me=Z.callback.apply(ve,ce);O.afterEmit(O.context,Z,N),me===!1&&(N.stopPropagation(),N.preventDefault())}},H=0;H1&&!N){var $=this.length-1,H=this[$],q=H._private.data.id;this[$]=void 0,this[m]=H,O.set(q,{ele:H,index:m})}return this.length--,this},unmergeOne:function(m){m=m[0];var k=this._private,S=m._private.data.id,M=k.map,O=M.get(S);if(!O)return this;var N=O.index;return this.unmergeAt(N),this},unmerge:function(m){var k=this._private.cy;if(!m)return this;if(m&&ge(m)){var S=m;m=k.mutableElements().filter(S)}for(var M=0;M=0;k--){var S=this[k];m(S)&&this.unmergeAt(k)}return this},map:function(m,k){for(var S=[],M=this,O=0;OS&&(S=H,M=$)}return{value:S,ele:M}},min:function(m,k){for(var S=1/0,M,O=this,N=0;N=0&&O"u"?"undefined":u(Symbol))!=m&&u(Symbol.iterator)!=m;k&&(IS[Symbol.iterator]=function(){var S=this,M={value:void 0,done:!1},O=0,N=this.length;return b({next:function(){return O1&&arguments[1]!==void 0?arguments[1]:!0,S=this[0],M=S.cy();if(M.styleEnabled()&&S){this.cleanStyle();var O=S._private.style[m];return O??(k?M.style().getDefaultProperty(m):null)}},numericStyle:function(m){var k=this[0];if(k.cy().styleEnabled()&&k){var S=k.pstyle(m);return S.pfValue!==void 0?S.pfValue:S.value}},numericStyleUnits:function(m){var k=this[0];if(k.cy().styleEnabled()&&k)return k.pstyle(m).units},renderedStyle:function(m){var k=this.cy();if(!k.styleEnabled())return this;var S=this[0];if(S)return k.style().getRenderedStyle(S,m)},style:function(m,k){var S=this.cy();if(!S.styleEnabled())return this;var M=!1,O=S.style();if(se(m)){var N=m;O.applyBypass(this,N,M),this.emitAndNotify("style")}else if(ge(m))if(k===void 0){var $=this[0];return $?O.getStylePropertyValue($,m):void 0}else O.applyBypass(this,m,k,M),this.emitAndNotify("style");else if(m===void 0){var H=this[0];return H?O.getRawStyle(H):void 0}return this},removeStyle:function(m){var k=this.cy();if(!k.styleEnabled())return this;var S=!1,M=k.style(),O=this;if(m===void 0)for(var N=0;N0&&m.push(Y[0]),m.push($[0])}return this.spawn(m,!0).filter(x)},"neighborhood"),closedNeighborhood:function(m){return this.neighborhood().add(this).filter(m)},openNeighborhood:function(m){return this.neighborhood(m)}}),k1.neighbourhood=k1.neighborhood,k1.closedNeighbourhood=k1.closedNeighborhood,k1.openNeighbourhood=k1.openNeighborhood,xt(k1,{source:Kp(function(m){var k=this[0],S;return k&&(S=k._private.source||k.cy().collection()),S&&m?S.filter(m):S},"source"),target:Kp(function(m){var k=this[0],S;return k&&(S=k._private.target||k.cy().collection()),S&&m?S.filter(m):S},"target"),sources:R$({attr:"source"}),targets:R$({attr:"target"})});function R$(x){return function(k){for(var S=[],M=0;M0);return N},component:function(){var m=this[0];return m.cy().mutableElements().components(m)[0]}}),k1.componentsOf=k1.components;var H0=function(m,k){var S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,M=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(m===void 0){sh("A collection must have a reference to the core");return}var O=new _m,N=!1;if(!k)k=[];else if(k.length>0&&se(k[0])&&!U(k[0])){N=!0;for(var $=[],H=new J7,q=0,Y=k.length;q0&&arguments[0]!==void 0?arguments[0]:!0,m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,k=this,S=k.cy(),M=S._private,O=[],N=[],$,H=0,q=k.length;H0){for(var rr=$.length===k.length?k:new H0(S,$),mr=0;mr0&&arguments[0]!==void 0?arguments[0]:!0,m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,k=this,S=[],M={},O=k._private.cy;function N(St){for(var _n=St._private.edges,fn=0;fn<_n.length;fn++)H(_n[fn])}function $(St){for(var _n=St._private.children,fn=0;fn<_n.length;fn++)H(_n[fn])}function H(St){var _n=M[St.id()];m&&St.removed()||_n||(M[St.id()]=!0,St.isNode()?(S.push(St),N(St),$(St)):S.unshift(St))}for(var q=0,Y=k.length;q0&&(x?Mt.emitAndNotify("remove"):m&&Mt.emit("remove"));for(var ut=0;ut0?ut=St:Mt=St;while(Math.abs(Yt)>N&&++_n<$);return St}function ct(Lt){for(var Mt=0,ut=1,Yt=H-1;ut!==Yt&&ce[ut]<=Lt;++ut)Mt+=q;--ut;var St=(Lt-ce[ut])/(ce[ut+1]-ce[ut]),_n=Mt+St*q,fn=Te(_n,x,k);return fn>=O?Fe(Lt,_n):fn===0?_n:Ve(Lt,Mt,Mt+q)}var st=!1;function Ye(){st=!0,(x!==m||k!==S)&&Re()}var vt=function(Mt){return st||Ye(),x===m&&k===S?Mt:Mt===0?0:Mt===1?1:_e(ct(Mt),m,S)};vt.getControlPoints=function(){return[{x,y:m},{x:k,y:S}]};var Qe="generateBezier("+[x,m,k,S]+")";return vt.toString=function(){return Qe},vt}/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var xre=function(){function x(S){return-S.tension*S.x-S.friction*S.v}function m(S,M,O){var N={x:S.x+O.dx*M,v:S.v+O.dv*M,tension:S.tension,friction:S.friction};return{dx:N.v,dv:x(N)}}function k(S,M){var O={dx:S.v,dv:x(S)},N=m(S,M*.5,O),$=m(S,M*.5,N),H=m(S,M,$),q=1/6*(O.dx+2*(N.dx+$.dx)+H.dx),Y=1/6*(O.dv+2*(N.dv+$.dv)+H.dv);return S.x=S.x+q*M,S.v=S.v+Y*M,S}return function S(M,O,N){var $={x:-1,v:0,tension:null,friction:null},H=[0],q=0,Y=1/1e4,Z=16/1e3,ce,ve,me;for(M=parseFloat(M)||500,O=parseFloat(O)||20,N=N||null,$.tension=M,$.friction=O,ce=N!==null,ce?(q=S(M,O),ve=q/N*Z):ve=Z;me=k(me||$,ve),H.push(1+me.x),q+=16,Math.abs(me.x)>Y&&Math.abs(me.v)>Y;);return ce?function(Le){return H[Le*(H.length-1)|0]}:q}}(),nl=function(m,k,S,M){var O=yre(m,k,S,M);return function(N,$,H){return N+($-N)*O(H)}},FS={linear:function(m,k,S){return m+(k-m)*S},ease:nl(.25,.1,.25,1),"ease-in":nl(.42,0,1,1),"ease-out":nl(0,0,.58,1),"ease-in-out":nl(.42,0,.58,1),"ease-in-sine":nl(.47,0,.745,.715),"ease-out-sine":nl(.39,.575,.565,1),"ease-in-out-sine":nl(.445,.05,.55,.95),"ease-in-quad":nl(.55,.085,.68,.53),"ease-out-quad":nl(.25,.46,.45,.94),"ease-in-out-quad":nl(.455,.03,.515,.955),"ease-in-cubic":nl(.55,.055,.675,.19),"ease-out-cubic":nl(.215,.61,.355,1),"ease-in-out-cubic":nl(.645,.045,.355,1),"ease-in-quart":nl(.895,.03,.685,.22),"ease-out-quart":nl(.165,.84,.44,1),"ease-in-out-quart":nl(.77,0,.175,1),"ease-in-quint":nl(.755,.05,.855,.06),"ease-out-quint":nl(.23,1,.32,1),"ease-in-out-quint":nl(.86,0,.07,1),"ease-in-expo":nl(.95,.05,.795,.035),"ease-out-expo":nl(.19,1,.22,1),"ease-in-out-expo":nl(1,0,0,1),"ease-in-circ":nl(.6,.04,.98,.335),"ease-out-circ":nl(.075,.82,.165,1),"ease-in-out-circ":nl(.785,.135,.15,.86),spring:function(m,k,S){if(S===0)return FS.linear;var M=xre(m,k,S);return function(O,N,$){return O+(N-O)*M($)}},"cubic-bezier":nl};function z$(x,m,k,S,M){if(S===1||m===k)return k;var O=M(m,k,S);return x==null||((x.roundValue||x.color)&&(O=Math.round(O)),x.min!==void 0&&(O=Math.max(O,x.min)),x.max!==void 0&&(O=Math.min(O,x.max))),O}function q$(x,m){return x.pfValue!=null||x.value!=null?x.pfValue!=null&&(m==null||m.type.units!=="%")?x.pfValue:x.value:x}function p8(x,m,k,S,M){var O=M!=null?M.type:null;k<0?k=0:k>1&&(k=1);var N=q$(x,M),$=q$(m,M);if(X(N)&&X($))return z$(O,N,$,k,S);if(ne(N)&&ne($)){for(var H=[],q=0;q<$.length;q++){var Y=N[q],Z=$[q];if(Y!=null&&Z!=null){var ce=z$(O,Y,Z,k,S);H.push(ce)}else H.push(Z)}return H}}function kre(x,m,k,S){var M=!S,O=x._private,N=m._private,$=N.easing,H=N.startTime,q=S?x:x.cy(),Y=q.style();if(!N.easingImpl)if($==null)N.easingImpl=FS.linear;else{var Z;if(ge($)){var ce=Y.parse("transition-timing-function",$);Z=ce.value}else Z=$;var ve,me;ge(Z)?(ve=Z,me=[]):(ve=Z[1],me=Z.slice(2).map(function(rr){return+rr})),me.length>0?(ve==="spring"&&me.push(N.duration),N.easingImpl=FS[ve].apply(null,me)):N.easingImpl=FS[ve]}var Le=N.easingImpl,_e;if(N.duration===0?_e=1:_e=(k-H)/N.duration,N.applying&&(_e=N.progress),_e<0?_e=0:_e>1&&(_e=1),N.delay==null){var Te=N.startPosition,Fe=N.position;if(Fe&&M&&!x.locked()){var Re={};ck(Te.x,Fe.x)&&(Re.x=p8(Te.x,Fe.x,_e,Le)),ck(Te.y,Fe.y)&&(Re.y=p8(Te.y,Fe.y,_e,Le)),x.position(Re)}var Ve=N.startPan,ct=N.pan,st=O.pan,Ye=ct!=null&&S;Ye&&(ck(Ve.x,ct.x)&&(st.x=p8(Ve.x,ct.x,_e,Le)),ck(Ve.y,ct.y)&&(st.y=p8(Ve.y,ct.y,_e,Le)),x.emit("pan"));var vt=N.startZoom,Qe=N.zoom,Lt=Qe!=null&&S;Lt&&(ck(vt,Qe)&&(O.zoom=K9(O.minZoom,p8(vt,Qe,_e,Le),O.maxZoom)),x.emit("zoom")),(Ye||Lt)&&x.emit("viewport");var Mt=N.style;if(Mt&&Mt.length>0&&M){for(var ut=0;ut=0;Ye--){var vt=st[Ye];vt()}st.splice(0,st.length)},Fe=ve.length-1;Fe>=0;Fe--){var Re=ve[Fe],Ve=Re._private;if(Ve.stopped){ve.splice(Fe,1),Ve.hooked=!1,Ve.playing=!1,Ve.started=!1,Te(Ve.frames);continue}!Ve.playing&&!Ve.applying||(Ve.playing&&Ve.applying&&(Ve.applying=!1),Ve.started||Tre(Y,Re,x),kre(Y,Re,x,Z),Ve.applying&&(Ve.applying=!1),Te(Ve.frames),Ve.step!=null&&Ve.step(x),Re.completed()&&(ve.splice(Fe,1),Ve.hooked=!1,Ve.playing=!1,Ve.started=!1,Te(Ve.completes)),Le=!0)}return!Z&&ve.length===0&&me.length===0&&S.push(Y),Le}for(var O=!1,N=0;N0?m.notify("draw",k):m.notify("draw")),k.unmerge(S),m.emit("step")}var Ere={animate:hu.animate(),animation:hu.animation(),animated:hu.animated(),clearQueue:hu.clearQueue(),delay:hu.delay(),delayAnimation:hu.delayAnimation(),stop:hu.stop(),addToAnimationPool:function(m){var k=this;k.styleEnabled()&&k._private.aniEles.merge(m)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var m=this;if(m._private.animationsRunning=!0,!m.styleEnabled())return;function k(){m._private.animationsRunning&&Wh(function(O){H$(O,m),k()})}var S=m.renderer();S&&S.beforeRender?S.beforeRender(function(O,N){H$(N,m)},S.beforeRenderPriorities.animations):k()}},Cre={qualifierCompare:function(m,k){return m==null||k==null?m==null&&k==null:m.sameText(k)},eventMatches:function(m,k,S){var M=k.qualifier;return M!=null?m!==S.target&&U(S.target)&&M.matches(S.target):!0},addEventFields:function(m,k){k.cy=m,k.target=m},callbackContext:function(m,k,S){return k.qualifier!=null?S.target:m}},RS=function(m){return ge(m)?new ry(m):m},U$={createEmitter:function(){var m=this._private;return m.emitter||(m.emitter=new MS(Cre,this)),this},emitter:function(){return this._private.emitter},on:function(m,k,S){return this.emitter().on(m,RS(k),S),this},removeListener:function(m,k,S){return this.emitter().removeListener(m,RS(k),S),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(m,k,S){return this.emitter().one(m,RS(k),S),this},once:function(m,k,S){return this.emitter().one(m,RS(k),S),this},emit:function(m,k){return this.emitter().emit(m,k),this},emitAndNotify:function(m,k){return this.emit(m),this.notify(m,k),this}};hu.eventAliasesOn(U$);var RI={png:function(m){var k=this._private.renderer;return m=m||{},k.png(m)},jpg:function(m){var k=this._private.renderer;return m=m||{},m.bg=m.bg||"#fff",k.jpg(m)}};RI.jpeg=RI.jpg;var jS={layout:function(m){var k=this;if(m==null){sh("Layout options must be specified to make a layout");return}if(m.name==null){sh("A `name` must be specified to make a layout");return}var S=m.name,M=k.extension("layout",S);if(M==null){sh("No such layout `"+S+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var O;ge(m.eles)?O=k.$(m.eles):O=m.eles!=null?m.eles:k.$();var N=new M(xt({},m,{cy:k,eles:O}));return N}};jS.createLayout=jS.makeLayout=jS.layout;var Sre={notify:function(m,k){var S=this._private;if(this.batching()){S.batchNotifications=S.batchNotifications||{};var M=S.batchNotifications[m]=S.batchNotifications[m]||this.collection();k!=null&&M.merge(k);return}if(S.notificationsEnabled){var O=this.renderer();this.destroyed()||!O||O.notify(m,k)}},notifications:function(m){var k=this._private;return m===void 0?k.notificationsEnabled:(k.notificationsEnabled=!!m,this)},noNotifications:function(m){this.notifications(!1),m(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var m=this._private;return m.batchCount==null&&(m.batchCount=0),m.batchCount===0&&(m.batchStyleEles=this.collection(),m.batchNotifications={}),m.batchCount++,this},endBatch:function(){var m=this._private;if(m.batchCount===0)return this;if(m.batchCount--,m.batchCount===0){m.batchStyleEles.updateStyle();var k=this.renderer();Object.keys(m.batchNotifications).forEach(function(S){var M=m.batchNotifications[S];M.empty()?k.notify(S):k.notify(S,M)})}return this},batch:function(m){return this.startBatch(),m(),this.endBatch(),this},batchData:function(m){var k=this;return this.batch(function(){for(var S=Object.keys(m),M=0;M0;)k.removeChild(k.childNodes[0]);m._private.renderer=null,m.mutableElements().forEach(function(S){var M=S._private;M.rscratch={},M.rstyle={},M.animation.current=[],M.animation.queue=[]})},onRender:function(m){return this.on("render",m)},offRender:function(m){return this.off("render",m)}};jI.invalidateDimensions=jI.resize;var $S={collection:function(m,k){return ge(m)?this.$(m):xe(m)?m.collection():ne(m)?(k||(k={}),new H0(this,m,k.unique,k.removed)):new H0(this)},nodes:function(m){var k=this.$(function(S){return S.isNode()});return m?k.filter(m):k},edges:function(m){var k=this.$(function(S){return S.isEdge()});return m?k.filter(m):k},$:function(m){var k=this._private.elements;return m?k.filter(m):k.spawnSelf()},mutableElements:function(){return this._private.elements}};$S.elements=$S.filter=$S.$;var T1={},uk="t",Are="f";T1.apply=function(x){for(var m=this,k=m._private,S=k.cy,M=S.collection(),O=0;O0;if(ce||Z&&ve){var me=void 0;ce&&ve||ce?me=q.properties:ve&&(me=q.mappedProperties);for(var Le=0;Le1&&(Ve=1),$.color){var st=S.valueMin[0],Ye=S.valueMax[0],vt=S.valueMin[1],Qe=S.valueMax[1],Lt=S.valueMin[2],Mt=S.valueMax[2],ut=S.valueMin[3]==null?1:S.valueMin[3],Yt=S.valueMax[3]==null?1:S.valueMax[3],St=[Math.round(st+(Ye-st)*Ve),Math.round(vt+(Qe-vt)*Ve),Math.round(Lt+(Mt-Lt)*Ve),Math.round(ut+(Yt-ut)*Ve)];O={bypass:S.bypass,name:S.name,value:St,strValue:"rgb("+St[0]+", "+St[1]+", "+St[2]+")"}}else if($.number){var _n=S.valueMin+(S.valueMax-S.valueMin)*Ve;O=this.parse(S.name,_n,S.bypass,ce)}else return!1;if(!O)return Le(),!1;O.mapping=S,S=O;break}case N.data:{for(var fn=S.field.split("."),Xt=Z.data,Dn=0;Dn0&&O>0){for(var $={},H=!1,q=0;q0?x.delayAnimation(N).play().promise().then(Re):Re()}).then(function(){return x.animation({style:$,duration:O,easing:x.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){k.removeBypasses(x,M),x.emitAndNotify("style"),S.transitioning=!1})}else S.transitioning&&(this.removeBypasses(x,M),x.emitAndNotify("style"),S.transitioning=!1)},T1.checkTrigger=function(x,m,k,S,M,O){var N=this.properties[m],$=M(N);$!=null&&$(k,S)&&O(N)},T1.checkZOrderTrigger=function(x,m,k,S){var M=this;this.checkTrigger(x,m,k,S,function(O){return O.triggersZOrder},function(){M._private.cy.notify("zorder",x)})},T1.checkBoundsTrigger=function(x,m,k,S){this.checkTrigger(x,m,k,S,function(M){return M.triggersBounds},function(M){x.dirtyCompoundBoundsCache(),x.dirtyBoundingBoxCache(),M.triggersBoundsOfParallelBeziers&&m==="curve-style"&&(k==="bezier"||S==="bezier")&&x.parallelEdges().forEach(function(O){O.isBundledBezier()&&O.dirtyBoundingBoxCache()}),M.triggersBoundsOfConnectedEdges&&m==="display"&&(k==="none"||S==="none")&&x.connectedEdges().forEach(function(O){O.dirtyBoundingBoxCache()})})},T1.checkTriggers=function(x,m,k,S){x.dirtyStyleCache(),this.checkZOrderTrigger(x,m,k,S),this.checkBoundsTrigger(x,m,k,S)};var lk={};lk.applyBypass=function(x,m,k,S){var M=this,O=[],N=!0;if(m==="*"||m==="**"){if(k!==void 0)for(var $=0;$M.length?S=S.substr(M.length):S=""}function H(){O.length>N.length?O=O.substr(N.length):O=""}for(;;){var q=S.match(/^\s*$/);if(q)break;var Y=S.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!Y){lu("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+S);break}M=Y[0];var Z=Y[1];if(Z!=="core"){var ce=new ry(Z);if(ce.invalid){lu("Skipping parsing of block: Invalid selector found in string stylesheet: "+Z),$();continue}}var ve=Y[2],me=!1;O=ve;for(var Le=[];;){var _e=O.match(/^\s*$/);if(_e)break;var Te=O.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!Te){lu("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+ve),me=!0;break}N=Te[0];var Fe=Te[1],Re=Te[2],Ve=m.properties[Fe];if(!Ve){lu("Skipping property: Invalid property name in: "+N),H();continue}var ct=k.parse(Fe,Re);if(!ct){lu("Skipping property: Invalid property definition in: "+N),H();continue}Le.push({name:Fe,val:Re}),H()}if(me){$();break}k.selector(Z);for(var st=0;st=7&&m[0]==="d"&&(Y=new RegExp($.data.regex).exec(m))){if(k)return!1;var ce=$.data;return{name:x,value:Y,strValue:""+m,mapped:ce,field:Y[1],bypass:k}}else if(m.length>=10&&m[0]==="m"&&(Z=new RegExp($.mapData.regex).exec(m))){if(k||q.multiple)return!1;var ve=$.mapData;if(!(q.color||q.number))return!1;var me=this.parse(x,Z[4]);if(!me||me.mapped)return!1;var Le=this.parse(x,Z[5]);if(!Le||Le.mapped)return!1;if(me.pfValue===Le.pfValue||me.strValue===Le.strValue)return lu("`"+x+": "+m+"` is not a valid mapper because the output range is zero; converting to `"+x+": "+me.strValue+"`"),this.parse(x,me.strValue);if(q.color){var _e=me.value,Te=Le.value,Fe=_e[0]===Te[0]&&_e[1]===Te[1]&&_e[2]===Te[2]&&(_e[3]===Te[3]||(_e[3]==null||_e[3]===1)&&(Te[3]==null||Te[3]===1));if(Fe)return!1}return{name:x,value:Z,strValue:""+m,mapped:ve,field:Z[1],fieldMin:parseFloat(Z[2]),fieldMax:parseFloat(Z[3]),valueMin:me.value,valueMax:Le.value,bypass:k}}}if(q.multiple&&S!=="multiple"){var Re;if(H?Re=m.split(/\s+/):ne(m)?Re=m:Re=[m],q.evenMultiple&&Re.length%2!==0)return null;for(var Ve=[],ct=[],st=[],Ye="",vt=!1,Qe=0;Qe0?" ":"")+Lt.strValue}return q.validate&&!q.validate(Ve,ct)?null:q.singleEnum&&vt?Ve.length===1&&ge(Ve[0])?{name:x,value:Ve[0],strValue:Ve[0],bypass:k}:null:{name:x,value:Ve,pfValue:st,strValue:Ye,bypass:k,units:ct}}var Mt=function(){for(var Cr=0;Crq.max||q.strictMax&&m===q.max))return null;var fn={name:x,value:m,strValue:""+m+(ut||""),units:ut,bypass:k};return q.unitless||ut!=="px"&&ut!=="em"?fn.pfValue=m:fn.pfValue=ut==="px"||!ut?m:this.getEmSizeInPixels()*m,(ut==="ms"||ut==="s")&&(fn.pfValue=ut==="ms"?m:1e3*m),(ut==="deg"||ut==="rad")&&(fn.pfValue=ut==="rad"?m:EZ(m)),ut==="%"&&(fn.pfValue=m/100),fn}else if(q.propList){var Xt=[],Dn=""+m;if(Dn!=="none"){for(var rr=Dn.split(/\s*,\s*|\s+/),mr=0;mr0&&$>0&&!isNaN(S.w)&&!isNaN(S.h)&&S.w>0&&S.h>0){H=Math.min((N-2*k)/S.w,($-2*k)/S.h),H=H>this._private.maxZoom?this._private.maxZoom:H,H=H=S.minZoom&&(S.maxZoom=k),this},minZoom:function(m){return m===void 0?this._private.minZoom:this.zoomRange({min:m})},maxZoom:function(m){return m===void 0?this._private.maxZoom:this.zoomRange({max:m})},getZoomedViewport:function(m){var k=this._private,S=k.pan,M=k.zoom,O,N,$=!1;if(k.zoomingEnabled||($=!0),X(m)?N=m:se(m)&&(N=m.level,m.position!=null?O=hS(m.position,M,S):m.renderedPosition!=null&&(O=m.renderedPosition),O!=null&&!k.panningEnabled&&($=!0)),N=N>k.maxZoom?k.maxZoom:N,N=Nk.maxZoom||!k.zoomingEnabled?N=!0:(k.zoom=H,O.push("zoom"))}if(M&&(!N||!m.cancelOnFailedZoom)&&k.panningEnabled){var q=m.pan;X(q.x)&&(k.pan.x=q.x,$=!1),X(q.y)&&(k.pan.y=q.y,$=!1),$||O.push("pan")}return O.length>0&&(O.push("viewport"),this.emit(O.join(" ")),this.notify("viewport")),this},center:function(m){var k=this.getCenterPan(m);return k&&(this._private.pan=k,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(m,k){if(this._private.panningEnabled){if(ge(m)){var S=m;m=this.mutableElements().filter(S)}else xe(m)||(m=this.mutableElements());if(m.length!==0){var M=m.boundingBox(),O=this.width(),N=this.height();k=k===void 0?this._private.zoom:k;var $={x:(O-k*(M.x1+M.x2))/2,y:(N-k*(M.y1+M.y2))/2};return $}}},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 m=this._private,k=m.container,S=this;return m.sizeCache=m.sizeCache||(k?function(){var M=S.window().getComputedStyle(k),O=function($){return parseFloat(M.getPropertyValue($))};return{width:k.clientWidth-O("padding-left")-O("padding-right"),height:k.clientHeight-O("padding-top")-O("padding-bottom")}}():{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var m=this._private.pan,k=this._private.zoom,S=this.renderedExtent(),M={x1:(S.x1-m.x)/k,x2:(S.x2-m.x)/k,y1:(S.y1-m.y)/k,y2:(S.y2-m.y)/k};return M.w=M.x2-M.x1,M.h=M.y2-M.y1,M},renderedExtent:function(){var m=this.width(),k=this.height();return{x1:0,y1:0,x2:m,y2:k,w:m,h:k}},multiClickDebounceTime:function(m){if(m)this._private.multiClickDebounceTime=m;else return this._private.multiClickDebounceTime;return this}};y5.centre=y5.center,y5.autolockNodes=y5.autolock,y5.autoungrabifyNodes=y5.autoungrabify;var hk={data:hu.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:hu.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:hu.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:hu.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};hk.attr=hk.data,hk.removeAttr=hk.removeData;var fk=function(m){var k=this;m=xt({},m);var S=m.container;S&&!G(S)&&G(S[0])&&(S=S[0]);var M=S?S._cyreg:null;M=M||{},M&&M.cy&&(M.cy.destroy(),M={});var O=M.readies=M.readies||[];S&&(S._cyreg=M),M.cy=k;var N=B!==void 0&&S!==void 0&&!m.headless,$=m;$.layout=xt({name:N?"grid":"null"},$.layout),$.renderer=xt({name:N?"canvas":"null"},$.renderer);var H=function(me,Le,_e){return Le!==void 0?Le:_e!==void 0?_e:me},q=this._private={container:S,ready:!1,options:$,elements:new H0(this),listeners:[],aniEles:new H0(this),data:$.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:H(!0,$.zoomingEnabled),userZoomingEnabled:H(!0,$.userZoomingEnabled),panningEnabled:H(!0,$.panningEnabled),userPanningEnabled:H(!0,$.userPanningEnabled),boxSelectionEnabled:H(!0,$.boxSelectionEnabled),autolock:H(!1,$.autolock,$.autolockNodes),autoungrabify:H(!1,$.autoungrabify,$.autoungrabifyNodes),autounselectify:H(!1,$.autounselectify),styleEnabled:$.styleEnabled===void 0?N:$.styleEnabled,zoom:X($.zoom)?$.zoom:1,pan:{x:se($.pan)&&X($.pan.x)?$.pan.x:0,y:se($.pan)&&X($.pan.y)?$.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:H(250,$.multiClickDebounceTime)};this.createEmitter(),this.selectionType($.selectionType),this.zoomRange({min:$.minZoom,max:$.maxZoom});var Y=function(me,Le){var _e=me.some(Ke);if(_e)return s8.all(me).then(Le);Le(me)};q.styleEnabled&&k.setStyle([]);var Z=xt({},$,$.renderer);k.initRenderer(Z);var ce=function(me,Le,_e){k.notifications(!1);var Te=k.mutableElements();Te.length>0&&Te.remove(),me!=null&&(se(me)||ne(me))&&k.add(me),k.one("layoutready",function(Re){k.notifications(!0),k.emit(Re),k.one("load",Le),k.emitAndNotify("load")}).one("layoutstop",function(){k.one("done",_e),k.emit("done")});var Fe=xt({},k._private.options.layout);Fe.eles=k.elements(),k.layout(Fe).run()};Y([$.style,$.elements],function(ve){var me=ve[0],Le=ve[1];q.styleEnabled&&k.style().append(me),ce(Le,function(){k.startAnimationLoop(),q.ready=!0,ae($.ready)&&k.on("ready",$.ready);for(var _e=0;_e0,H=Qd(m.boundingBox?m.boundingBox:{x1:0,y1:0,w:k.width(),h:k.height()}),q;if(xe(m.roots))q=m.roots;else if(ne(m.roots)){for(var Y=[],Z=0;Z0;){var _n=St(),fn=Lt(_n,ut);if(fn)_n.outgoers().filter(function(Di){return Di.isNode()&&S.has(Di)}).forEach(Yt);else if(fn===null){lu("Detected double maximal shift for node `"+_n.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}Qe();var Xt=0;if(m.avoidOverlap)for(var Dn=0;Dn0&&Te[0].length<=3?Ma/2:0),K=2*Math.PI/Te[Fs].length*ks;return Fs===0&&Te[0].length===1&&(er=1),{x:_i.x+er*Math.cos(K),y:_i.y+er*Math.sin(K)}}else{var Fo={x:_i.x+(ks+1-(Rs+1)/2)*vo,y:(Fs+1)*ja};return Fo}};return S.nodes().layoutPositions(this,m,va),this};var Ore={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(m,k){return!0},ready:void 0,stop:void 0,transform:function(m,k){return k}};function K$(x){this.options=xt({},Ore,x)}K$.prototype.run=function(){var x=this.options,m=x,k=x.cy,S=m.eles,M=m.counterclockwise!==void 0?!m.counterclockwise:m.clockwise,O=S.nodes().not(":parent");m.sort&&(O=O.sort(m.sort));for(var N=Qd(m.boundingBox?m.boundingBox:{x1:0,y1:0,w:k.width(),h:k.height()}),$={x:N.x1+N.w/2,y:N.y1+N.h/2},H=m.sweep===void 0?2*Math.PI-2*Math.PI/O.length:m.sweep,q=H/Math.max(1,O.length-1),Y,Z=0,ce=0;ce1&&m.avoidOverlap){Z*=1.75;var Te=Math.cos(q)-Math.cos(0),Fe=Math.sin(q)-Math.sin(0),Re=Math.sqrt(Z*Z/(Te*Te+Fe*Fe));Y=Math.max(Re,Y)}var Ve=function(st,Ye){var vt=m.startAngle+Ye*q*(M?1:-1),Qe=Y*Math.cos(vt),Lt=Y*Math.sin(vt),Mt={x:$.x+Qe,y:$.y+Lt};return Mt};return S.nodes().layoutPositions(this,m,Ve),this};var Nre={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(m){return m.degree()},levelWidth:function(m){return m.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(m,k){return!0},ready:void 0,stop:void 0,transform:function(m,k){return k}};function W$(x){this.options=xt({},Nre,x)}W$.prototype.run=function(){for(var x=this.options,m=x,k=m.counterclockwise!==void 0?!m.counterclockwise:m.clockwise,S=x.cy,M=m.eles,O=M.nodes().not(":parent"),N=Qd(m.boundingBox?m.boundingBox:{x1:0,y1:0,w:S.width(),h:S.height()}),$={x:N.x1+N.w/2,y:N.y1+N.h/2},H=[],q=0,Y=0;Y0){var ct=Math.abs(Fe[0].value-Ve.value);ct>=_e&&(Fe=[],Te.push(Fe))}Fe.push(Ve)}var st=q+m.minNodeSpacing;if(!m.avoidOverlap){var Ye=Te.length>0&&Te[0].length>1,vt=Math.min(N.w,N.h)/2-st,Qe=vt/(Te.length+Ye?1:0);st=Math.min(st,Qe)}for(var Lt=0,Mt=0;Mt1&&m.avoidOverlap){var _n=Math.cos(St)-Math.cos(0),fn=Math.sin(St)-Math.sin(0),Xt=Math.sqrt(st*st/(_n*_n+fn*fn));Lt=Math.max(Xt,Lt)}ut.r=Lt,Lt+=st}if(m.equidistant){for(var Dn=0,rr=0,mr=0;mr=x.numIter||(qre(S,x),S.temperature=S.temperature*x.coolingFactor,S.temperature=x.animationThreshold&&O(),Wh(Z)}};Y()}else{for(;q;)q=N(H),H++;Q$(S,x),$()}return this},US.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},US.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Bre=function(m,k,S){for(var M=S.eles.edges(),O=S.eles.nodes(),N=Qd(S.boundingBox?S.boundingBox:{x1:0,y1:0,w:m.width(),h:m.height()}),$={isCompound:m.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:O.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:M.size(),temperature:S.initialTemp,clientWidth:N.w,clientHeight:N.h,boundingBox:N},H=S.eles.components(),q={},Y=0;Y0){$.graphSet.push(vt);for(var Y=0;YM.count?0:M.graph},Rre=function x(m,k,S,M){var O=M.graphSet[S];if(-10)var Z=M.nodeOverlap*Y,ce=Math.sqrt($*$+H*H),ve=Z*$/ce,me=Z*H/ce;else var Le=VS(m,$,H),_e=VS(k,-1*$,-1*H),Te=_e.x-Le.x,Fe=_e.y-Le.y,Re=Te*Te+Fe*Fe,ce=Math.sqrt(Re),Z=(m.nodeRepulsion+k.nodeRepulsion)/Re,ve=Z*Te/ce,me=Z*Fe/ce;m.isLocked||(m.offsetX-=ve,m.offsetY-=me),k.isLocked||(k.offsetX+=ve,k.offsetY+=me)}},Vre=function(m,k,S,M){if(S>0)var O=m.maxX-k.minX;else var O=k.maxX-m.minX;if(M>0)var N=m.maxY-k.minY;else var N=k.maxY-m.minY;return O>=0&&N>=0?Math.sqrt(O*O+N*N):0},VS=function(m,k,S){var M=m.positionX,O=m.positionY,N=m.height||1,$=m.width||1,H=S/k,q=N/$,Y={};return k===0&&0S?(Y.x=M,Y.y=O+N/2,Y):0k&&-1*q<=H&&H<=q?(Y.x=M-$/2,Y.y=O-$*S/2/k,Y):0=q)?(Y.x=M+N*k/2/S,Y.y=O+N/2,Y):(0>S&&(H<=-1*q||H>=q)&&(Y.x=M-N*k/2/S,Y.y=O-N/2),Y)},Gre=function(m,k){for(var S=0;SS){var _e=k.gravity*ve/Le,Te=k.gravity*me/Le;ce.offsetX+=_e,ce.offsetY+=Te}}}}},Wre=function(m,k){var S=[],M=0,O=-1;for(S.push.apply(S,m.graphSet[0]),O+=m.graphSet[0].length;M<=O;){var N=S[M++],$=m.idToIndex[N],H=m.layoutNodes[$],q=H.children;if(0S)var O={x:S*m/M,y:S*k/M};else var O={x:m,y:k};return O},Qre=function x(m,k){var S=m.parentId;if(S!=null){var M=k.layoutNodes[k.idToIndex[S]],O=!1;if((M.maxX==null||m.maxX+M.padRight>M.maxX)&&(M.maxX=m.maxX+M.padRight,O=!0),(M.minX==null||m.minX-M.padLeftM.maxY)&&(M.maxY=m.maxY+M.padBottom,O=!0),(M.minY==null||m.minY-M.padTopTe&&(me+=_e+k.componentSpacing,ve=0,Le=0,_e=0)}}},Jre={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(m){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(m,k){return!0},ready:void 0,stop:void 0,transform:function(m,k){return k}};function J$(x){this.options=xt({},Jre,x)}J$.prototype.run=function(){var x=this.options,m=x,k=x.cy,S=m.eles,M=S.nodes().not(":parent");m.sort&&(M=M.sort(m.sort));var O=Qd(m.boundingBox?m.boundingBox:{x1:0,y1:0,w:k.width(),h:k.height()});if(O.h===0||O.w===0)S.nodes().layoutPositions(this,m,function(kr){return{x:O.x1,y:O.y1}});else{var N=M.size(),$=Math.sqrt(N*O.h/O.w),H=Math.round($),q=Math.round(O.w/O.h*$),Y=function(Lr){if(Lr==null)return Math.min(H,q);var Er=Math.min(H,q);Er==H?H=Lr:q=Lr},Z=function(Lr){if(Lr==null)return Math.max(H,q);var Er=Math.max(H,q);Er==H?H=Lr:q=Lr},ce=m.rows,ve=m.cols!=null?m.cols:m.columns;if(ce!=null&&ve!=null)H=ce,q=ve;else if(ce!=null&&ve==null)H=ce,q=Math.ceil(N/H);else if(ce==null&&ve!=null)q=ve,H=Math.ceil(N/q);else if(q*H>N){var me=Y(),Le=Z();(me-1)*Le>=N?Y(me-1):(Le-1)*me>=N&&Z(Le-1)}else for(;q*H=N?Z(Te+1):Y(_e+1)}var Fe=O.w/q,Re=O.h/H;if(m.condense&&(Fe=0,Re=0),m.avoidOverlap)for(var Ve=0;Ve=q&&(_n=0,St++)},Xt={},Dn=0;Dn(_n=FZ(x,m,fn[Xt],fn[Xt+1],fn[Xt+2],fn[Xt+3])))return _e(Ye,_n),!0}else if(Qe.edgeType==="bezier"||Qe.edgeType==="multibezier"||Qe.edgeType==="self"||Qe.edgeType==="compound"){for(var fn=Qe.allpts,Xt=0;Xt+5(_n=BZ(x,m,fn[Xt],fn[Xt+1],fn[Xt+2],fn[Xt+3],fn[Xt+4],fn[Xt+5])))return _e(Ye,_n),!0}for(var Dn=Dn||vt.source,rr=rr||vt.target,mr=M.getArrowWidth(Lt,Mt),Pn=[{name:"source",x:Qe.arrowStartX,y:Qe.arrowStartY,angle:Qe.srcArrowAngle},{name:"target",x:Qe.arrowEndX,y:Qe.arrowEndY,angle:Qe.tgtArrowAngle},{name:"mid-source",x:Qe.midX,y:Qe.midY,angle:Qe.midsrcArrowAngle},{name:"mid-target",x:Qe.midX,y:Qe.midY,angle:Qe.midtgtArrowAngle}],Xt=0;Xt0&&(Te(Dn),Te(rr))}function Re(Ye,vt,Qe){return nb(Ye,vt,Qe)}function Ve(Ye,vt){var Qe=Ye._private,Lt=ce,Mt;vt?Mt=vt+"-":Mt="",Ye.boundingBox();var ut=Qe.labelBounds[vt||"main"],Yt=Ye.pstyle(Mt+"label").value,St=Ye.pstyle("text-events").strValue==="yes";if(!(!St||!Yt)){var _n=Re(Qe.rscratch,"labelX",vt),fn=Re(Qe.rscratch,"labelY",vt),Xt=Re(Qe.rscratch,"labelAngle",vt),Dn=Ye.pstyle(Mt+"text-margin-x").pfValue,rr=Ye.pstyle(Mt+"text-margin-y").pfValue,mr=ut.x1-Lt-Dn,Pn=ut.x2+Lt-Dn,gr=ut.y1-Lt-rr,kr=ut.y2+Lt-rr;if(Xt){var Lr=Math.cos(Xt),Er=Math.sin(Xt),Ir=function(va,Di){return va=va-_n,Di=Di-fn,{x:va*Lr-Di*Er+_n,y:va*Er+Di*Lr+fn}},Kn=Ir(mr,gr),pr=Ir(mr,kr),Cr=Ir(Pn,gr),Or=Ir(Pn,kr),_i=[Kn.x+Dn,Kn.y+rr,Cr.x+Dn,Cr.y+rr,Or.x+Dn,Or.y+rr,pr.x+Dn,pr.y+rr];if(Jd(x,m,_i))return _e(Ye),!0}else if(t8(ut,x,m))return _e(Ye),!0}}for(var ct=N.length-1;ct>=0;ct--){var st=N[ct];st.isNode()?Te(st)||Ve(st):Fe(st)||Ve(st)||Ve(st,"source")||Ve(st,"target")}return $},x5.getAllInBox=function(x,m,k,S){var M=this.getCachedZSortedEles().interactive,O=[],N=Math.min(x,k),$=Math.max(x,k),H=Math.min(m,S),q=Math.max(m,S);x=N,k=$,m=H,S=q;for(var Y=Qd({x1:x,y1:m,x2:k,y2:S}),Z=0;Z0?Math.max(vr-Cs,0):Math.min(vr+Cs,0)},Yt=ut(Lt,vt),St=ut(Mt,Qe),_n=!1;Fe===q?Te=Math.abs(Yt)>Math.abs(St)?M:S:Fe===H||Fe===$?(Te=S,_n=!0):(Fe===O||Fe===N)&&(Te=M,_n=!0);var fn=Te===S,Xt=fn?St:Yt,Dn=fn?Mt:Lt,rr=wj(Dn),mr=!1;!(_n&&(Ve||st))&&(Fe===$&&Dn<0||Fe===H&&Dn>0||Fe===O&&Dn>0||Fe===N&&Dn<0)&&(rr*=-1,Xt=rr*Math.abs(Xt),mr=!0);var Pn;if(Ve){var gr=ct<0?1+ct:ct;Pn=gr*Xt}else{var kr=ct<0?Xt:0;Pn=kr+ct*rr}var Lr=function(vr){return Math.abs(vr)=Math.abs(Xt)},Er=Lr(Pn),Ir=Lr(Math.abs(Xt)-Math.abs(Pn)),Kn=Er||Ir;if(Kn&&!mr)if(fn){var pr=Math.abs(Dn)<=ce/2,Cr=Math.abs(Lt)<=ve/2;if(pr){var Or=(Y.x1+Y.x2)/2,_i=Y.y1,xs=Y.y2;k.segpts=[Or,_i,Or,xs]}else if(Cr){var va=(Y.y1+Y.y2)/2,Di=Y.x1,pi=Y.x2;k.segpts=[Di,va,pi,va]}else k.segpts=[Y.x1,Y.y2]}else{var fs=Math.abs(Dn)<=Z/2,Fs=Math.abs(Mt)<=me/2;if(fs){var ks=(Y.y1+Y.y2)/2,Rs=Y.x1,vo=Y.x2;k.segpts=[Rs,ks,vo,ks]}else if(Fs){var ja=(Y.x1+Y.x2)/2,Ma=Y.y1,Fo=Y.y2;k.segpts=[ja,Ma,ja,Fo]}else k.segpts=[Y.x2,Y.y1]}else if(fn){var er=Y.y1+Pn+(_e?ce/2*rr:0),K=Y.x1,Qn=Y.x2;k.segpts=[K,er,Qn,er]}else{var xr=Y.x1+Pn+(_e?Z/2*rr:0),ur=Y.y1,Ut=Y.y2;k.segpts=[xr,ur,xr,Ut]}},S1.tryToCorrectInvalidPoints=function(x,m){var k=x._private.rscratch;if(k.edgeType==="bezier"){var S=m.srcPos,M=m.tgtPos,O=m.srcW,N=m.srcH,$=m.tgtW,H=m.tgtH,q=m.srcShape,Y=m.tgtShape,Z=!X(k.startX)||!X(k.startY),ce=!X(k.arrowStartX)||!X(k.arrowStartY),ve=!X(k.endX)||!X(k.endY),me=!X(k.arrowEndX)||!X(k.arrowEndY),Le=3,_e=this.getArrowWidth(x.pstyle("width").pfValue,x.pstyle("arrow-scale").value)*this.arrowShapeWidth,Te=Le*_e,Fe=d5({x:k.ctrlpts[0],y:k.ctrlpts[1]},{x:k.startX,y:k.startY}),Re=FeSt.poolIndex()){var _n=Yt;Yt=St,St=_n}var fn=Qe.srcPos=Yt.position(),Xt=Qe.tgtPos=St.position(),Dn=Qe.srcW=Yt.outerWidth(),rr=Qe.srcH=Yt.outerHeight(),mr=Qe.tgtW=St.outerWidth(),Pn=Qe.tgtH=St.outerHeight(),gr=Qe.srcShape=k.nodeShapes[m.getNodeShape(Yt)],kr=Qe.tgtShape=k.nodeShapes[m.getNodeShape(St)];Qe.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var Lr=0;Lr0){var pr=O,Cr=g5(pr,Z7(k)),Or=g5(pr,Z7(Kn)),_i=Cr;if(Or2){var xs=g5(pr,{x:Kn[2],y:Kn[3]});xs<_i&&(k=[Kn[2],Kn[3]])}}}var va=mS(k,Lt,m.arrowShapes[$].spacing(x)+q),Di=mS(k,Lt,m.arrowShapes[$].gap(x)+q);if(ce.endX=Di[0],ce.endY=Di[1],ce.arrowEndX=va[0],ce.arrowEndY=va[1],Ye==="inside-to-node")k=[O.x,O.y];else if(st.units)k=this.manualEndptToPx(S,st);else if(Ye==="outside-to-line")k=ce.srcIntn;else if(Ye==="outside-to-node"||Ye==="outside-to-node-or-label"?Yt=Mt:(Ye==="outside-to-line"||Ye==="outside-to-line-or-label")&&(Yt=[N.x,N.y]),k=m.nodeShapes[this.getNodeShape(S)].intersectLine(O.x,O.y,S.outerWidth(),S.outerHeight(),Yt[0],Yt[1],0),Ye==="outside-to-node-or-label"||Ye==="outside-to-line-or-label"){var pi=S._private.rscratch,fs=pi.labelWidth,Fs=pi.labelHeight,ks=pi.labelX,Rs=pi.labelY,vo=fs/2,ja=Fs/2,Ma=S.pstyle("text-valign").value;Ma==="top"?Rs-=ja:Ma==="bottom"&&(Rs+=ja);var Fo=S.pstyle("text-halign").value;Fo==="left"?ks-=vo:Fo==="right"&&(ks+=vo);var er=Y9(Yt[0],Yt[1],[ks-vo,Rs-ja,ks+vo,Rs-ja,ks+vo,Rs+ja,ks-vo,Rs+ja],O.x,O.y);if(er.length>0){var K=N,Qn=g5(K,Z7(k)),xr=g5(K,Z7(er)),ur=Qn;if(xr2){var Ut=g5(K,{x:er[2],y:er[3]});Ut=me||Ye){_e={cp:Ve,segment:st};break}}if(_e)break}var vt=_e.cp,Qe=_e.segment,Lt=(me-Te)/Qe.length,Mt=Qe.t1-Qe.t0,ut=ve?Qe.t0+Mt*Lt:Qe.t1-Mt*Lt;ut=K9(0,ut,1),m=e8(vt.p0,vt.p1,vt.p2,ut),ce=rie(vt.p0,vt.p1,vt.p2,ut);break}case"straight":case"segments":case"haystack":{for(var Yt=0,St,_n,fn,Xt,Dn=S.allpts.length,rr=0;rr+3=me));rr+=2);var mr=me-_n,Pn=mr/St;Pn=K9(0,Pn,1),m=SZ(fn,Xt,Pn),ce=KS(fn,Xt);break}}N("labelX",Z,m.x),N("labelY",Z,m.y),N("labelAutoAngle",Z,ce)}};q("source"),q("target"),this.applyLabelDimensions(x)}},Mm.applyLabelDimensions=function(x){this.applyPrefixedLabelDimensions(x),x.isEdge()&&(this.applyPrefixedLabelDimensions(x,"source"),this.applyPrefixedLabelDimensions(x,"target"))},Mm.applyPrefixedLabelDimensions=function(x,m){var k=x._private,S=this.getLabelText(x,m),M=this.calculateLabelDimensions(x,S),O=x.pstyle("line-height").pfValue,N=x.pstyle("text-wrap").strValue,$=nb(k.rscratch,"labelWrapCachedLines",m)||[],H=N!=="wrap"?1:Math.max($.length,1),q=M.height/H,Y=q*O,Z=M.width,ce=M.height+(H-1)*(O-1)*q;ty(k.rstyle,"labelWidth",m,Z),ty(k.rscratch,"labelWidth",m,Z),ty(k.rstyle,"labelHeight",m,ce),ty(k.rscratch,"labelHeight",m,ce),ty(k.rscratch,"labelLineHeight",m,Y)},Mm.getLabelText=function(x,m){var k=x._private,S=m?m+"-":"",M=x.pstyle(S+"label").strValue,O=x.pstyle("text-transform").value,N=function(mr,Pn){return Pn?(ty(k.rscratch,mr,m,Pn),Pn):nb(k.rscratch,mr,m)};if(!M)return"";O=="none"||(O=="uppercase"?M=M.toUpperCase():O=="lowercase"&&(M=M.toLowerCase()));var $=x.pstyle("text-wrap").value;if($==="wrap"){var H=N("labelKey");if(H!=null&&N("labelWrapKey")===H)return N("labelWrapCachedText");for(var q="​",Y=M.split(` +`),Z=x.pstyle("text-max-width").pfValue,ce=x.pstyle("text-overflow-wrap").value,ve=ce==="anywhere",me=[],Le=/[\s\u200b]+/,_e=ve?"":" ",Te=0;TeZ){for(var st=Fe.split(Le),Ye="",vt=0;vtYt)break;St+=M[Xt],Xt===M.length-1&&(fn=!0)}return fn||(St+=_n),St}return M},Mm.getLabelJustification=function(x){var m=x.pstyle("text-justification").strValue,k=x.pstyle("text-halign").strValue;if(m==="auto")if(x.isNode())switch(k){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return m},Mm.calculateLabelDimensions=function(x,m){var k=this,S=ud(m,x._private.labelDimsKey),M=k.labelDimCache||(k.labelDimCache=[]),O=M[S];if(O!=null)return O;var N=0,$=x.pstyle("font-style").strValue,H=x.pstyle("font-size").pfValue,q=x.pstyle("font-family").strValue,Y=x.pstyle("font-weight").strValue,Z=this.labelCalcCanvas,ce=this.labelCalcCanvasContext;if(!Z){Z=this.labelCalcCanvas=document.createElement("canvas"),ce=this.labelCalcCanvasContext=Z.getContext("2d");var ve=Z.style;ve.position="absolute",ve.left="-9999px",ve.top="-9999px",ve.zIndex="-1",ve.visibility="hidden",ve.pointerEvents="none"}ce.font="".concat($," ").concat(Y," ").concat(H,"px ").concat(q);for(var me=0,Le=0,_e=m.split(` +`),Te=0;Te<_e.length;Te++){var Fe=_e[Te],Re=ce.measureText(Fe),Ve=Math.ceil(Re.width),ct=H;me=Math.max(Ve,me),Le+=ct}return me+=N,Le+=N,M[S]={width:me,height:Le}},Mm.calculateLabelAngle=function(x,m){var k=x._private,S=k.rscratch,M=x.isEdge(),O=m?m+"-":"",N=x.pstyle(O+"text-rotation"),$=N.strValue;return $==="none"?0:M&&$==="autorotate"?S.labelAutoAngle:$==="autorotate"?0:N.pfValue},Mm.calculateLabelAngles=function(x){var m=this,k=x.isEdge(),S=x._private,M=S.rscratch;M.labelAngle=m.calculateLabelAngle(x),k&&(M.sourceLabelAngle=m.calculateLabelAngle(x,"source"),M.targetLabelAngle=m.calculateLabelAngle(x,"target"))};var oz={},cz=28,uz=!1;oz.getNodeShape=function(x){var m=this,k=x.pstyle("shape").value;if(k==="cutrectangle"&&(x.width()1&&arguments[1]!==void 0?arguments[1]:!0;if(m.merge(N),$)for(var H=0;H=x.desktopTapThreshold2}var tw=M(K);Vl&&(x.hoverData.tapholdCancelled=!0);var cy=function(){var Dm=x.hoverData.dragDelta=x.hoverData.dragDelta||[];Dm.length===0?(Dm.push(wo[0]),Dm.push(wo[1])):(Dm[0]+=wo[0],Dm[1]+=wo[1])};xr=!0,S($a,["mousemove","vmousemove","tapdrag"],K,{x:vr[0],y:vr[1]});var E8=function(){x.data.bgActivePosistion=void 0,x.hoverData.selecting||ur.emit({originalEvent:K,type:"boxstart",position:{x:vr[0],y:vr[1]}}),qc[4]=1,x.hoverData.selecting=!0,x.redrawHint("select",!0),x.redraw()};if(x.hoverData.which===3){if(Vl){var T5={originalEvent:K,type:"cxtdrag",position:{x:vr[0],y:vr[1]}};wa?wa.emit(T5):ur.emit(T5),x.hoverData.cxtDragged=!0,(!x.hoverData.cxtOver||$a!==x.hoverData.cxtOver)&&(x.hoverData.cxtOver&&x.hoverData.cxtOver.emit({originalEvent:K,type:"cxtdragout",position:{x:vr[0],y:vr[1]}}),x.hoverData.cxtOver=$a,$a&&$a.emit({originalEvent:K,type:"cxtdragover",position:{x:vr[0],y:vr[1]}}))}}else if(x.hoverData.dragging){if(xr=!0,ur.panningEnabled()&&ur.userPanningEnabled()){var C8;if(x.hoverData.justStartedPan){var e_=x.hoverData.mdownPos;C8={x:(vr[0]-e_[0])*Ut,y:(vr[1]-e_[1])*Ut},x.hoverData.justStartedPan=!1}else C8={x:wo[0]*Ut,y:wo[1]*Ut};ur.panBy(C8),ur.emit("dragpan"),x.hoverData.dragged=!0}vr=x.projectIntoViewport(K.clientX,K.clientY)}else if(qc[4]==1&&(wa==null||wa.pannable())){if(Vl){if(!x.hoverData.dragging&&ur.boxSelectionEnabled()&&(tw||!ur.panningEnabled()||!ur.userPanningEnabled()))E8();else if(!x.hoverData.selecting&&ur.panningEnabled()&&ur.userPanningEnabled()){var E5=O(wa,x.hoverData.downs);E5&&(x.hoverData.dragging=!0,x.hoverData.justStartedPan=!0,qc[4]=0,x.data.bgActivePosistion=Z7(Cs),x.redrawHint("select",!0),x.redraw())}wa&&wa.pannable()&&wa.active()&&wa.unactivate()}}else{if(wa&&wa.pannable()&&wa.active()&&wa.unactivate(),(!wa||!wa.grabbed())&&$a!=Mc&&(Mc&&S(Mc,["mouseout","tapdragout"],K,{x:vr[0],y:vr[1]}),$a&&S($a,["mouseover","tapdragover"],K,{x:vr[0],y:vr[1]}),x.hoverData.last=$a),wa)if(Vl){if(ur.boxSelectionEnabled()&&tw)wa&&wa.grabbed()&&(_e(oh),wa.emit("freeon"),oh.emit("free"),x.dragData.didDrag&&(wa.emit("dragfreeon"),oh.emit("dragfree"))),E8();else if(wa&&wa.grabbed()&&x.nodeIsDraggable(wa)){var eg=!x.dragData.didDrag;eg&&x.redrawHint("eles",!0),x.dragData.didDrag=!0,x.hoverData.draggingEles||me(oh,{inDragLayer:!0});var _1={x:0,y:0};if(X(wo[0])&&X(wo[1])&&(_1.x+=wo[0],_1.y+=wo[1],eg)){var tg=x.hoverData.dragDelta;tg&&X(tg[0])&&X(tg[1])&&(_1.x+=tg[0],_1.y+=tg[1])}x.hoverData.draggingEles=!0,oh.silentShift(_1).emit("position drag"),x.redrawHint("drag",!0),x.redraw()}}else cy();xr=!0}if(qc[2]=vr[0],qc[3]=vr[1],xr)return K.stopPropagation&&K.stopPropagation(),K.preventDefault&&K.preventDefault(),!1}},!1);var Lt,Mt,ut;x.registerBinding(m,"mouseup",function(K){var Qn=x.hoverData.capture;if(Qn){x.hoverData.capture=!1;var xr=x.cy,ur=x.projectIntoViewport(K.clientX,K.clientY),Ut=x.selection,Vs=x.findNearestElement(ur[0],ur[1],!0,!1),vr=x.dragData.possibleDragElements,Cs=x.hoverData.down,lo=M(K);if(x.data.bgActivePosistion&&(x.redrawHint("select",!0),x.redraw()),x.hoverData.tapholdCancelled=!0,x.data.bgActivePosistion=void 0,Cs&&Cs.unactivate(),x.hoverData.which===3){var qc={originalEvent:K,type:"cxttapend",position:{x:ur[0],y:ur[1]}};if(Cs?Cs.emit(qc):xr.emit(qc),!x.hoverData.cxtDragged){var $a={originalEvent:K,type:"cxttap",position:{x:ur[0],y:ur[1]}};Cs?Cs.emit($a):xr.emit($a)}x.hoverData.cxtDragged=!1,x.hoverData.which=null}else if(x.hoverData.which===1){if(S(Vs,["mouseup","tapend","vmouseup"],K,{x:ur[0],y:ur[1]}),!x.dragData.didDrag&&!x.hoverData.dragged&&!x.hoverData.selecting&&!x.hoverData.isOverThresholdDrag&&(S(Cs,["click","tap","vclick"],K,{x:ur[0],y:ur[1]}),Mt=!1,K.timeStamp-ut<=xr.multiClickDebounceTime()?(Lt&&clearTimeout(Lt),Mt=!0,ut=null,S(Cs,["dblclick","dbltap","vdblclick"],K,{x:ur[0],y:ur[1]})):(Lt=setTimeout(function(){Mt||S(Cs,["oneclick","onetap","voneclick"],K,{x:ur[0],y:ur[1]})},xr.multiClickDebounceTime()),ut=K.timeStamp)),Cs==null&&!x.dragData.didDrag&&!x.hoverData.selecting&&!x.hoverData.dragged&&!M(K)&&(xr.$(k).unselect(["tapunselect"]),vr.length>0&&x.redrawHint("eles",!0),x.dragData.possibleDragElements=vr=xr.collection()),Vs==Cs&&!x.dragData.didDrag&&!x.hoverData.selecting&&Vs!=null&&Vs._private.selectable&&(x.hoverData.dragging||(xr.selectionType()==="additive"||lo?Vs.selected()?Vs.unselect(["tapunselect"]):Vs.select(["tapselect"]):lo||(xr.$(k).unmerge(Vs).unselect(["tapunselect"]),Vs.select(["tapselect"]))),x.redrawHint("eles",!0)),x.hoverData.selecting){var Mc=xr.collection(x.getAllInBox(Ut[0],Ut[1],Ut[2],Ut[3]));x.redrawHint("select",!0),Mc.length>0&&x.redrawHint("eles",!0),xr.emit({type:"boxend",originalEvent:K,position:{x:ur[0],y:ur[1]}});var wa=function(Vl){return Vl.selectable()&&!Vl.selected()};xr.selectionType()==="additive"||lo||xr.$(k).unmerge(Mc).unselect(),Mc.emit("box").stdFilter(wa).select().emit("boxselect"),x.redraw()}if(x.hoverData.dragging&&(x.hoverData.dragging=!1,x.redrawHint("select",!0),x.redrawHint("eles",!0),x.redraw()),!Ut[4]){x.redrawHint("drag",!0),x.redrawHint("eles",!0);var wo=Cs&&Cs.grabbed();_e(vr),wo&&(Cs.emit("freeon"),vr.emit("free"),x.dragData.didDrag&&(Cs.emit("dragfreeon"),vr.emit("dragfree")))}}Ut[4]=0,x.hoverData.down=null,x.hoverData.cxtStarted=!1,x.hoverData.draggingEles=!1,x.hoverData.selecting=!1,x.hoverData.isOverThresholdDrag=!1,x.dragData.didDrag=!1,x.hoverData.dragged=!1,x.hoverData.dragDelta=[],x.hoverData.mdownPos=null,x.hoverData.mdownGPos=null}},!1);var Yt=function(K){if(!x.scrollingPage){var Qn=x.cy,xr=Qn.zoom(),ur=Qn.pan(),Ut=x.projectIntoViewport(K.clientX,K.clientY),Vs=[Ut[0]*xr+ur.x,Ut[1]*xr+ur.y];if(x.hoverData.draggingEles||x.hoverData.dragging||x.hoverData.cxtStarted||vt()){K.preventDefault();return}if(Qn.panningEnabled()&&Qn.userPanningEnabled()&&Qn.zoomingEnabled()&&Qn.userZoomingEnabled()){K.preventDefault(),x.data.wheelZooming=!0,clearTimeout(x.data.wheelTimeout),x.data.wheelTimeout=setTimeout(function(){x.data.wheelZooming=!1,x.redrawHint("eles",!0),x.redraw()},150);var vr;K.deltaY!=null?vr=K.deltaY/-250:K.wheelDeltaY!=null?vr=K.wheelDeltaY/1e3:vr=K.wheelDelta/1e3,vr=vr*x.wheelSensitivity;var Cs=K.deltaMode===1;Cs&&(vr*=33);var lo=Qn.zoom()*Math.pow(10,vr);K.type==="gesturechange"&&(lo=x.gestureStartZoom*K.scale),Qn.zoom({level:lo,renderedPosition:{x:Vs[0],y:Vs[1]}}),Qn.emit(K.type==="gesturechange"?"pinchzoom":"scrollzoom")}}};x.registerBinding(x.container,"wheel",Yt,!0),x.registerBinding(m,"scroll",function(K){x.scrollingPage=!0,clearTimeout(x.scrollingPageTimeout),x.scrollingPageTimeout=setTimeout(function(){x.scrollingPage=!1},250)},!0),x.registerBinding(x.container,"gesturestart",function(K){x.gestureStartZoom=x.cy.zoom(),x.hasTouchStarted||K.preventDefault()},!0),x.registerBinding(x.container,"gesturechange",function(er){x.hasTouchStarted||Yt(er)},!0),x.registerBinding(x.container,"mouseout",function(K){var Qn=x.projectIntoViewport(K.clientX,K.clientY);x.cy.emit({originalEvent:K,type:"mouseout",position:{x:Qn[0],y:Qn[1]}})},!1),x.registerBinding(x.container,"mouseover",function(K){var Qn=x.projectIntoViewport(K.clientX,K.clientY);x.cy.emit({originalEvent:K,type:"mouseover",position:{x:Qn[0],y:Qn[1]}})},!1);var St,_n,fn,Xt,Dn,rr,mr,Pn,gr,kr,Lr,Er,Ir,Kn=function(K,Qn,xr,ur){return Math.sqrt((xr-K)*(xr-K)+(ur-Qn)*(ur-Qn))},pr=function(K,Qn,xr,ur){return(xr-K)*(xr-K)+(ur-Qn)*(ur-Qn)},Cr;x.registerBinding(x.container,"touchstart",Cr=function(K){if(x.hasTouchStarted=!0,!!Qe(K)){Fe(),x.touchData.capture=!0,x.data.bgActivePosistion=void 0;var Qn=x.cy,xr=x.touchData.now,ur=x.touchData.earlier;if(K.touches[0]){var Ut=x.projectIntoViewport(K.touches[0].clientX,K.touches[0].clientY);xr[0]=Ut[0],xr[1]=Ut[1]}if(K.touches[1]){var Ut=x.projectIntoViewport(K.touches[1].clientX,K.touches[1].clientY);xr[2]=Ut[0],xr[3]=Ut[1]}if(K.touches[2]){var Ut=x.projectIntoViewport(K.touches[2].clientX,K.touches[2].clientY);xr[4]=Ut[0],xr[5]=Ut[1]}if(K.touches[1]){x.touchData.singleTouchMoved=!0,_e(x.dragData.touchDragEles);var Vs=x.findContainerClientCoords();gr=Vs[0],kr=Vs[1],Lr=Vs[2],Er=Vs[3],St=K.touches[0].clientX-gr,_n=K.touches[0].clientY-kr,fn=K.touches[1].clientX-gr,Xt=K.touches[1].clientY-kr,Ir=0<=St&&St<=Lr&&0<=fn&&fn<=Lr&&0<=_n&&_n<=Er&&0<=Xt&&Xt<=Er;var vr=Qn.pan(),Cs=Qn.zoom();Dn=Kn(St,_n,fn,Xt),rr=pr(St,_n,fn,Xt),mr=[(St+fn)/2,(_n+Xt)/2],Pn=[(mr[0]-vr.x)/Cs,(mr[1]-vr.y)/Cs];var lo=200,qc=lo*lo;if(rr=1){for(var ub=x.touchData.startPosition=[null,null,null,null,null,null],V0=0;V0=x.touchTapThreshold2}if(Qn&&x.touchData.cxt){K.preventDefault();var ub=K.touches[0].clientX-gr,V0=K.touches[0].clientY-kr,Xp=K.touches[1].clientX-gr,fd=K.touches[1].clientY-kr,tw=pr(ub,V0,Xp,fd),cy=tw/rr,E8=150,T5=E8*E8,C8=1.5,e_=C8*C8;if(cy>=e_||tw>=T5){x.touchData.cxt=!1,x.data.bgActivePosistion=void 0,x.redrawHint("select",!0);var E5={originalEvent:K,type:"cxttapend",position:{x:Ut[0],y:Ut[1]}};x.touchData.start?(x.touchData.start.unactivate().emit(E5),x.touchData.start=null):ur.emit(E5)}}if(Qn&&x.touchData.cxt){var E5={originalEvent:K,type:"cxtdrag",position:{x:Ut[0],y:Ut[1]}};x.data.bgActivePosistion=void 0,x.redrawHint("select",!0),x.touchData.start?x.touchData.start.emit(E5):ur.emit(E5),x.touchData.start&&(x.touchData.start._private.grabbed=!1),x.touchData.cxtDragged=!0;var eg=x.findNearestElement(Ut[0],Ut[1],!0,!0);(!x.touchData.cxtOver||eg!==x.touchData.cxtOver)&&(x.touchData.cxtOver&&x.touchData.cxtOver.emit({originalEvent:K,type:"cxtdragout",position:{x:Ut[0],y:Ut[1]}}),x.touchData.cxtOver=eg,eg&&eg.emit({originalEvent:K,type:"cxtdragover",position:{x:Ut[0],y:Ut[1]}}))}else if(Qn&&K.touches[2]&&ur.boxSelectionEnabled())K.preventDefault(),x.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,x.touchData.selecting||ur.emit({originalEvent:K,type:"boxstart",position:{x:Ut[0],y:Ut[1]}}),x.touchData.selecting=!0,x.touchData.didSelect=!0,xr[4]=1,!xr||xr.length===0||xr[0]===void 0?(xr[0]=(Ut[0]+Ut[2]+Ut[4])/3,xr[1]=(Ut[1]+Ut[3]+Ut[5])/3,xr[2]=(Ut[0]+Ut[2]+Ut[4])/3+1,xr[3]=(Ut[1]+Ut[3]+Ut[5])/3+1):(xr[2]=(Ut[0]+Ut[2]+Ut[4])/3,xr[3]=(Ut[1]+Ut[3]+Ut[5])/3),x.redrawHint("select",!0),x.redraw();else if(Qn&&K.touches[1]&&!x.touchData.didSelect&&ur.zoomingEnabled()&&ur.panningEnabled()&&ur.userZoomingEnabled()&&ur.userPanningEnabled()){K.preventDefault(),x.data.bgActivePosistion=void 0,x.redrawHint("select",!0);var _1=x.dragData.touchDragEles;if(_1){x.redrawHint("drag",!0);for(var tg=0;tg<_1.length;tg++){var nw=_1[tg]._private;nw.grabbed=!1,nw.rscratch.inDragLayer=!1}}var Dm=x.touchData.start,ub=K.touches[0].clientX-gr,V0=K.touches[0].clientY-kr,Xp=K.touches[1].clientX-gr,fd=K.touches[1].clientY-kr,Bz=Kn(ub,V0,Xp,fd),Hie=Bz/Dn;if(Ir){var Uie=ub-St,t_=V0-_n,Vie=Xp-fn,Gie=fd-Xt,C5=(Uie+Vie)/2,Fz=(t_+Gie)/2,kk=ur.zoom(),ZI=kk*Hie,n_=ur.pan(),Rz=Pn[0]*kk+n_.x,jz=Pn[1]*kk+n_.y,Kie={x:-ZI/kk*(Rz-n_.x-C5)+Rz,y:-ZI/kk*(jz-n_.y-Fz)+jz};if(Dm&&Dm.active()){var _1=x.dragData.touchDragEles;_e(_1),x.redrawHint("drag",!0),x.redrawHint("eles",!0),Dm.unactivate().emit("freeon"),_1.emit("free"),x.dragData.didDrag&&(Dm.emit("dragfreeon"),_1.emit("dragfree"))}ur.viewport({zoom:ZI,pan:Kie,cancelOnFailedZoom:!0}),ur.emit("pinchzoom"),Dn=Bz,St=ub,_n=V0,fn=Xp,Xt=fd,x.pinching=!0}if(K.touches[0]){var Cs=x.projectIntoViewport(K.touches[0].clientX,K.touches[0].clientY);Ut[0]=Cs[0],Ut[1]=Cs[1]}if(K.touches[1]){var Cs=x.projectIntoViewport(K.touches[1].clientX,K.touches[1].clientY);Ut[2]=Cs[0],Ut[3]=Cs[1]}if(K.touches[2]){var Cs=x.projectIntoViewport(K.touches[2].clientX,K.touches[2].clientY);Ut[4]=Cs[0],Ut[5]=Cs[1]}}else if(K.touches[0]&&!x.touchData.didSelect){var Qp=x.touchData.start,r_=x.touchData.last,eg;if(!x.hoverData.draggingEles&&!x.swipePanning&&(eg=x.findNearestElement(Ut[0],Ut[1],!0,!0)),Qn&&Qp!=null&&K.preventDefault(),Qn&&Qp!=null&&x.nodeIsDraggable(Qp))if(qc){var _1=x.dragData.touchDragEles,eO=!x.dragData.didDrag;eO&&me(_1,{inDragLayer:!0}),x.dragData.didDrag=!0;var Im={x:0,y:0};if(X($a[0])&&X($a[1])&&(Im.x+=$a[0],Im.y+=$a[1],eO)){x.redrawHint("eles",!0);var ng=x.touchData.dragDelta;ng&&X(ng[0])&&X(ng[1])&&(Im.x+=ng[0],Im.y+=ng[1])}x.hoverData.draggingEles=!0,_1.silentShift(Im).emit("position drag"),x.redrawHint("drag",!0),x.touchData.startPosition[0]==Vs[0]&&x.touchData.startPosition[1]==Vs[1]&&x.redrawHint("eles",!0),x.redraw()}else{var ng=x.touchData.dragDelta=x.touchData.dragDelta||[];ng.length===0?(ng.push($a[0]),ng.push($a[1])):(ng[0]+=$a[0],ng[1]+=$a[1])}if(S(Qp||eg,["touchmove","tapdrag","vmousemove"],K,{x:Ut[0],y:Ut[1]}),(!Qp||!Qp.grabbed())&&eg!=r_&&(r_&&r_.emit({originalEvent:K,type:"tapdragout",position:{x:Ut[0],y:Ut[1]}}),eg&&eg.emit({originalEvent:K,type:"tapdragover",position:{x:Ut[0],y:Ut[1]}})),x.touchData.last=eg,Qn)for(var tg=0;tg0&&!x.hoverData.draggingEles&&!x.swipePanning&&x.data.bgActivePosistion!=null&&(x.data.bgActivePosistion=void 0,x.redrawHint("select",!0),x.redraw())}},!1);var _i;x.registerBinding(m,"touchcancel",_i=function(K){var Qn=x.touchData.start;x.touchData.capture=!1,Qn&&Qn.unactivate()});var xs,va,Di,pi;if(x.registerBinding(m,"touchend",xs=function(K){var Qn=x.touchData.start,xr=x.touchData.capture;if(xr)K.touches.length===0&&(x.touchData.capture=!1),K.preventDefault();else return;var ur=x.selection;x.swipePanning=!1,x.hoverData.draggingEles=!1;var Ut=x.cy,Vs=Ut.zoom(),vr=x.touchData.now,Cs=x.touchData.earlier;if(K.touches[0]){var lo=x.projectIntoViewport(K.touches[0].clientX,K.touches[0].clientY);vr[0]=lo[0],vr[1]=lo[1]}if(K.touches[1]){var lo=x.projectIntoViewport(K.touches[1].clientX,K.touches[1].clientY);vr[2]=lo[0],vr[3]=lo[1]}if(K.touches[2]){var lo=x.projectIntoViewport(K.touches[2].clientX,K.touches[2].clientY);vr[4]=lo[0],vr[5]=lo[1]}Qn&&Qn.unactivate();var qc;if(x.touchData.cxt){if(qc={originalEvent:K,type:"cxttapend",position:{x:vr[0],y:vr[1]}},Qn?Qn.emit(qc):Ut.emit(qc),!x.touchData.cxtDragged){var $a={originalEvent:K,type:"cxttap",position:{x:vr[0],y:vr[1]}};Qn?Qn.emit($a):Ut.emit($a)}x.touchData.start&&(x.touchData.start._private.grabbed=!1),x.touchData.cxt=!1,x.touchData.start=null,x.redraw();return}if(!K.touches[2]&&Ut.boxSelectionEnabled()&&x.touchData.selecting){x.touchData.selecting=!1;var Mc=Ut.collection(x.getAllInBox(ur[0],ur[1],ur[2],ur[3]));ur[0]=void 0,ur[1]=void 0,ur[2]=void 0,ur[3]=void 0,ur[4]=0,x.redrawHint("select",!0),Ut.emit({type:"boxend",originalEvent:K,position:{x:vr[0],y:vr[1]}});var wa=function(T5){return T5.selectable()&&!T5.selected()};Mc.emit("box").stdFilter(wa).select().emit("boxselect"),Mc.nonempty()&&x.redrawHint("eles",!0),x.redraw()}if(Qn!=null&&Qn.unactivate(),K.touches[2])x.data.bgActivePosistion=void 0,x.redrawHint("select",!0);else if(!K.touches[1]){if(!K.touches[0]){if(!K.touches[0]){x.data.bgActivePosistion=void 0,x.redrawHint("select",!0);var wo=x.dragData.touchDragEles;if(Qn!=null){var oh=Qn._private.grabbed;_e(wo),x.redrawHint("drag",!0),x.redrawHint("eles",!0),oh&&(Qn.emit("freeon"),wo.emit("free"),x.dragData.didDrag&&(Qn.emit("dragfreeon"),wo.emit("dragfree"))),S(Qn,["touchend","tapend","vmouseup","tapdragout"],K,{x:vr[0],y:vr[1]}),Qn.unactivate(),x.touchData.start=null}else{var Vl=x.findNearestElement(vr[0],vr[1],!0,!0);S(Vl,["touchend","tapend","vmouseup","tapdragout"],K,{x:vr[0],y:vr[1]})}var cb=x.touchData.startPosition[0]-vr[0],ub=cb*cb,V0=x.touchData.startPosition[1]-vr[1],Xp=V0*V0,fd=ub+Xp,tw=fd*Vs*Vs;x.touchData.singleTouchMoved||(Qn||Ut.$(":selected").unselect(["tapunselect"]),S(Qn,["tap","vclick"],K,{x:vr[0],y:vr[1]}),va=!1,K.timeStamp-pi<=Ut.multiClickDebounceTime()?(Di&&clearTimeout(Di),va=!0,pi=null,S(Qn,["dbltap","vdblclick"],K,{x:vr[0],y:vr[1]})):(Di=setTimeout(function(){va||S(Qn,["onetap","voneclick"],K,{x:vr[0],y:vr[1]})},Ut.multiClickDebounceTime()),pi=K.timeStamp)),Qn!=null&&!x.dragData.didDrag&&Qn._private.selectable&&tw"u"){var fs=[],Fs=function(K){return{clientX:K.clientX,clientY:K.clientY,force:1,identifier:K.pointerId,pageX:K.pageX,pageY:K.pageY,radiusX:K.width/2,radiusY:K.height/2,screenX:K.screenX,screenY:K.screenY,target:K.target}},ks=function(K){return{event:K,touch:Fs(K)}},Rs=function(K){fs.push(ks(K))},vo=function(K){for(var Qn=0;Qn0)return Pn[0]}return null},ve=Object.keys(Z),me=0;me0?ce:Tj(O,N,m,k,S,M,$)},checkPoint:function(m,k,S,M,O,N,$){var H=X9(M,O),q=2*H;if(Jv(m,k,this.points,N,$,M,O-q,[0,-1],S)||Jv(m,k,this.points,N,$,M-q,O,[0,-1],S))return!0;var Y=M/2+2*S,Z=O/2+2*S,ce=[N-Y,$-Z,N-Y,$,N+Y,$,N+Y,$-Z];return!!(Jd(m,k,ce)||p5(m,k,q,q,N+M/2-H,$+O/2-H,S)||p5(m,k,q,q,N-M/2+H,$+O/2-H,S))}}},ew.registerNodeShapes=function(){var x=this.nodeShapes={},m=this;this.generateEllipse(),this.generatePolygon("triangle",hd(3,0)),this.generateRoundPolygon("round-triangle",hd(3,0)),this.generatePolygon("rectangle",hd(4,0)),x.square=x.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var k=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",k),this.generateRoundPolygon("round-diamond",k)}this.generatePolygon("pentagon",hd(5,0)),this.generateRoundPolygon("round-pentagon",hd(5,0)),this.generatePolygon("hexagon",hd(6,0)),this.generateRoundPolygon("round-hexagon",hd(6,0)),this.generatePolygon("heptagon",hd(7,0)),this.generateRoundPolygon("round-heptagon",hd(7,0)),this.generatePolygon("octagon",hd(8,0)),this.generateRoundPolygon("round-octagon",hd(8,0));var S=new Array(20);{var M=pI(5,0),O=pI(5,Math.PI/5),N=.5*(3-Math.sqrt(5));N*=1.57;for(var $=0;$=m.deqFastCost*Ve)break}else if(q){if(Fe>=m.deqCost*ve||Fe>=m.deqAvgCost*ce)break}else if(Re>=m.deqNoDrawCost*GI)break;var ct=m.deq(S,_e,Le);if(ct.length>0)for(var st=0;st0&&(m.onDeqd(S,me),!q&&m.shouldRedraw(S,me,_e,Le)&&O())},$=m.priority||lI;M.beforeRender(N,$(S))}}}},sie=function(){function x(m){var k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Z3;d(this,x),this.idsByKey=new _m,this.keyForId=new _m,this.cachesByLvl=new _m,this.lvls=[],this.getKey=m,this.doesEleInvalidateKey=k}return v(x,[{key:"getIdsFor",value:function(k){k==null&&sh("Can not get id list for null key");var S=this.idsByKey,M=this.idsByKey.get(k);return M||(M=new J7,S.set(k,M)),M}},{key:"addIdForKey",value:function(k,S){k!=null&&this.getIdsFor(k).add(S)}},{key:"deleteIdForKey",value:function(k,S){k!=null&&this.getIdsFor(k).delete(S)}},{key:"getNumberOfIdsForKey",value:function(k){return k==null?0:this.getIdsFor(k).size}},{key:"updateKeyMappingFor",value:function(k){var S=k.id(),M=this.keyForId.get(S),O=this.getKey(k);this.deleteIdForKey(M,S),this.addIdForKey(O,S),this.keyForId.set(S,O)}},{key:"deleteKeyMappingFor",value:function(k){var S=k.id(),M=this.keyForId.get(S);this.deleteIdForKey(M,S),this.keyForId.delete(S)}},{key:"keyHasChangedFor",value:function(k){var S=k.id(),M=this.keyForId.get(S),O=this.getKey(k);return M!==O}},{key:"isInvalid",value:function(k){return this.keyHasChangedFor(k)||this.doesEleInvalidateKey(k)}},{key:"getCachesAt",value:function(k){var S=this.cachesByLvl,M=this.lvls,O=S.get(k);return O||(O=new _m,S.set(k,O),M.push(k)),O}},{key:"getCache",value:function(k,S){return this.getCachesAt(S).get(k)}},{key:"get",value:function(k,S){var M=this.getKey(k),O=this.getCache(M,S);return O!=null&&this.updateKeyMappingFor(k),O}},{key:"getForCachedKey",value:function(k,S){var M=this.keyForId.get(k.id()),O=this.getCache(M,S);return O}},{key:"hasCache",value:function(k,S){return this.getCachesAt(S).has(k)}},{key:"has",value:function(k,S){var M=this.getKey(k);return this.hasCache(M,S)}},{key:"setCache",value:function(k,S,M){M.key=k,this.getCachesAt(S).set(k,M)}},{key:"set",value:function(k,S,M){var O=this.getKey(k);this.setCache(O,S,M),this.updateKeyMappingFor(k)}},{key:"deleteCache",value:function(k,S){this.getCachesAt(S).delete(k)}},{key:"delete",value:function(k,S){var M=this.getKey(k);this.deleteCache(M,S)}},{key:"invalidateKey",value:function(k){var S=this;this.lvls.forEach(function(M){return S.deleteCache(k,M)})}},{key:"invalidate",value:function(k){var S=k.id(),M=this.keyForId.get(S);this.deleteKeyMappingFor(k);var O=this.doesEleInvalidateKey(k);return O&&this.invalidateKey(M),O||this.getNumberOfIdsForKey(M)===0}}]),x}(),pz=25,XS=50,QS=-4,KI=3,aie=7.99,oie=8,cie=1024,uie=1024,lie=1024,hie=.2,fie=.8,die=10,gie=.15,pie=.1,bie=.9,mie=.9,vie=100,wie=1,w8={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},yie=z0({getKey:null,doesEleInvalidateKey:Z3,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:f5,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),pk=function(m,k){var S=this;S.renderer=m,S.onDequeues=[];var M=yie(k);xt(S,M),S.lookup=new sie(M.getKey,M.doesEleInvalidateKey),S.setupDequeueing()},Cf=pk.prototype;Cf.reasons=w8,Cf.getTextureQueue=function(x){var m=this;return m.eleImgCaches=m.eleImgCaches||{},m.eleImgCaches[x]=m.eleImgCaches[x]||[]},Cf.getRetiredTextureQueue=function(x){var m=this,k=m.eleImgCaches.retired=m.eleImgCaches.retired||{},S=k[x]=k[x]||[];return S},Cf.getElementQueue=function(){var x=this,m=x.eleCacheQueue=x.eleCacheQueue||new G9(function(k,S){return S.reqs-k.reqs});return m},Cf.getElementKeyToQueue=function(){var x=this,m=x.eleKeyToCacheQueue=x.eleKeyToCacheQueue||{};return m},Cf.getElement=function(x,m,k,S,M){var O=this,N=this.renderer,$=N.cy.zoom(),H=this.lookup;if(!m||m.w===0||m.h===0||isNaN(m.w)||isNaN(m.h)||!x.visible()||x.removed()||!O.allowEdgeTxrCaching&&x.isEdge()||!O.allowParentTxrCaching&&x.isParent())return null;if(S==null&&(S=Math.ceil(fI($*k))),S=aie||S>KI)return null;var q=Math.pow(2,S),Y=m.h*q,Z=m.w*q,ce=N.eleTextBiggerThanMin(x,q);if(!this.isVisible(x,ce))return null;var ve=H.get(x,S);if(ve&&ve.invalidated&&(ve.invalidated=!1,ve.texture.invalidatedWidth-=ve.width),ve)return ve;var me;if(Y<=pz?me=pz:Y<=XS?me=XS:me=Math.ceil(Y/XS)*XS,Y>lie||Z>uie)return null;var Le=O.getTextureQueue(me),_e=Le[Le.length-2],Te=function(){return O.recycleTexture(me,Z)||O.addTexture(me,Z)};_e||(_e=Le[Le.length-1]),_e||(_e=Te()),_e.width-_e.usedWidthS;Mt--)Qe=O.getElement(x,m,k,Mt,w8.downscale);Lt()}else return O.queueElement(x,st.level-1),st;else{var ut;if(!Re&&!Ve&&!ct)for(var Yt=S-1;Yt>=QS;Yt--){var St=H.get(x,Yt);if(St){ut=St;break}}if(Fe(ut))return O.queueElement(x,S),ut;_e.context.translate(_e.usedWidth,0),_e.context.scale(q,q),this.drawElement(_e.context,x,m,ce,!1),_e.context.scale(1/q,1/q),_e.context.translate(-_e.usedWidth,0)}return ve={x:_e.usedWidth,texture:_e,level:S,scale:q,width:Z,height:Y,scaledLabelShown:ce},_e.usedWidth+=Math.ceil(Z+oie),_e.eleCaches.push(ve),H.set(x,S,ve),O.checkTextureFullness(_e),ve},Cf.invalidateElements=function(x){for(var m=0;m=hie*x.width&&this.retireTexture(x)},Cf.checkTextureFullness=function(x){var m=this,k=m.getTextureQueue(x.height);x.usedWidth/x.width>fie&&x.fullnessChecks>=die?ey(k,x):x.fullnessChecks++},Cf.retireTexture=function(x){var m=this,k=x.height,S=m.getTextureQueue(k),M=this.lookup;ey(S,x),x.retired=!0;for(var O=x.eleCaches,N=0;N=m)return N.retired=!1,N.usedWidth=0,N.invalidatedWidth=0,N.fullnessChecks=0,uS(N.eleCaches),N.context.setTransform(1,0,0,1,0,0),N.context.clearRect(0,0,N.width,N.height),ey(M,N),S.push(N),N}},Cf.queueElement=function(x,m){var k=this,S=k.getElementQueue(),M=k.getElementKeyToQueue(),O=this.getKey(x),N=M[O];if(N)N.level=Math.max(N.level,m),N.eles.merge(x),N.reqs++,S.updateItem(N);else{var $={eles:x.spawn().merge(x),level:m,reqs:1,key:O};S.push($),M[O]=$}},Cf.dequeue=function(x){for(var m=this,k=m.getElementQueue(),S=m.getElementKeyToQueue(),M=[],O=m.lookup,N=0;N0;N++){var $=k.pop(),H=$.key,q=$.eles[0],Y=O.hasCache(q,$.level);if(S[H]=null,Y)continue;M.push($);var Z=m.getBoundingBox(q);m.getElement(q,Z,x,$.level,w8.dequeue)}return M},Cf.removeFromQueue=function(x){var m=this,k=m.getElementQueue(),S=m.getElementKeyToQueue(),M=this.getKey(x),O=S[M];O!=null&&(O.eles.length===1?(O.reqs=Q7,k.updateItem(O),k.pop(),S[M]=null):O.eles.unmerge(x))},Cf.onDequeue=function(x){this.onDequeues.push(x)},Cf.offDequeue=function(x){ey(this.onDequeues,x)},Cf.setupDequeueing=gz.setupDequeueing({deqRedrawThreshold:vie,deqCost:gie,deqAvgCost:pie,deqNoDrawCost:bie,deqFastCost:mie,deq:function(m,k,S){return m.dequeue(k,S)},onDeqd:function(m,k){for(var S=0;S=kie||k>JS)return null}S.validateLayersElesOrdering(k,x);var H=S.layersByLevel,q=Math.pow(2,k),Y=H[k]=H[k]||[],Z,ce=S.levelIsComplete(k,x),ve,me=function(){var Lt=function(_n){if(S.validateLayersElesOrdering(_n,x),S.levelIsComplete(_n,x))return ve=H[_n],!0},Mt=function(_n){if(!ve)for(var fn=k+_n;bk<=fn&&fn<=JS&&!Lt(fn);fn+=_n);};Mt(1),Mt(-1);for(var ut=Y.length-1;ut>=0;ut--){var Yt=Y[ut];Yt.invalid&&ey(Y,Yt)}};if(!ce)me();else return Y;var Le=function(){if(!Z){Z=Qd();for(var Lt=0;Ltvz)return null;var Yt=S.makeLayer(Z,k);if(Mt!=null){var St=Y.indexOf(Mt)+1;Y.splice(St,0,Yt)}else(Lt.insert===void 0||Lt.insert)&&Y.unshift(Yt);return Yt};if(S.skipping&&!$)return null;for(var Te=null,Fe=x.length/xie,Re=!$,Ve=0;Ve=Fe||!kj(Te.bb,ct.boundingBox()))&&(Te=_e({insert:!0,after:Te}),!Te))return null;ve||Re?S.queueLayer(Te,ct):S.drawEleInLayer(Te,ct,k,m),Te.eles.push(ct),Ye[k]=Te}return ve||(Re?null:Y)},t0.getEleLevelForLayerLevel=function(x,m){return x},t0.drawEleInLayer=function(x,m,k,S){var M=this,O=this.renderer,N=x.context,$=m.boundingBox();$.w===0||$.h===0||!m.visible()||(k=M.getEleLevelForLayerLevel(k,S),O.setImgSmoothing(N,!1),O.drawCachedElement(N,m,null,null,k,wz),O.setImgSmoothing(N,!0))},t0.levelIsComplete=function(x,m){var k=this,S=k.layersByLevel[x];if(!S||S.length===0)return!1;for(var M=0,O=0;O0||N.invalid)return!1;M+=N.eles.length}return M===m.length},t0.validateLayersElesOrdering=function(x,m){var k=this.layersByLevel[x];if(k)for(var S=0;S0){m=!0;break}}return m},t0.invalidateElements=function(x){var m=this;x.length!==0&&(m.lastInvalidationTime=Vp(),!(x.length===0||!m.haveLayers())&&m.updateElementsInLayers(x,function(S,M,O){m.invalidateLayer(S)}))},t0.invalidateLayer=function(x){if(this.lastInvalidationTime=Vp(),!x.invalid){var m=x.level,k=x.eles,S=this.layersByLevel[m];ey(S,x),x.elesQueue=[],x.invalid=!0,x.replacement&&(x.replacement.invalid=!0);for(var M=0;M3&&arguments[3]!==void 0?arguments[3]:!0,M=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,O=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,N=this,$=m._private.rscratch;if(!(O&&!m.visible())&&!($.badLine||$.allpts==null||isNaN($.allpts[0]))){var H;k&&(H=k,x.translate(-H.x1,-H.y1));var q=O?m.pstyle("opacity").value:1,Y=O?m.pstyle("line-opacity").value:1,Z=m.pstyle("curve-style").value,ce=m.pstyle("line-style").value,ve=m.pstyle("width").pfValue,me=m.pstyle("line-cap").value,Le=q*Y,_e=q*Y,Te=function(){var ut=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Le;Z==="straight-triangle"?(N.eleStrokeStyle(x,m,ut),N.drawEdgeTrianglePath(m,x,$.allpts)):(x.lineWidth=ve,x.lineCap=me,N.eleStrokeStyle(x,m,ut),N.drawEdgePath(m,x,$.allpts,ce),x.lineCap="butt")},Fe=function(){M&&N.drawEdgeOverlay(x,m)},Re=function(){M&&N.drawEdgeUnderlay(x,m)},Ve=function(){var ut=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_e;N.drawArrowheads(x,m,ut)},ct=function(){N.drawElementText(x,m,null,S)};x.lineJoin="round";var st=m.pstyle("ghost").value==="yes";if(st){var Ye=m.pstyle("ghost-offset-x").pfValue,vt=m.pstyle("ghost-offset-y").pfValue,Qe=m.pstyle("ghost-opacity").value,Lt=Le*Qe;x.translate(Ye,vt),Te(Lt),Ve(Lt),x.translate(-Ye,-vt)}Re(),Te(),Ve(),Fe(),ct(),k&&x.translate(H.x1,H.y1)}};var Sz=function(m){if(!["overlay","underlay"].includes(m))throw new Error("Invalid state");return function(k,S){if(S.visible()){var M=S.pstyle("".concat(m,"-opacity")).value;if(M!==0){var O=this,N=O.usePaths(),$=S._private.rscratch,H=S.pstyle("".concat(m,"-padding")).pfValue,q=2*H,Y=S.pstyle("".concat(m,"-color")).value;k.lineWidth=q,$.edgeType==="self"&&!N?k.lineCap="butt":k.lineCap="round",O.colorStrokeStyle(k,Y[0],Y[1],Y[2],M),O.drawEdgePath(S,k,$.allpts,"solid")}}}};ob.drawEdgeOverlay=Sz("overlay"),ob.drawEdgeUnderlay=Sz("underlay"),ob.drawEdgePath=function(x,m,k,S){var M=x._private.rscratch,O=m,N,$=!1,H=this.usePaths(),q=x.pstyle("line-dash-pattern").pfValue,Y=x.pstyle("line-dash-offset").pfValue;if(H){var Z=k.join("$"),ce=M.pathCacheKey&&M.pathCacheKey===Z;ce?(N=m=M.pathCache,$=!0):(N=m=new Path2D,M.pathCacheKey=Z,M.pathCache=N)}if(O.setLineDash)switch(S){case"dotted":O.setLineDash([1,1]);break;case"dashed":O.setLineDash(q),O.lineDashOffset=Y;break;case"solid":O.setLineDash([]);break}if(!$&&!M.badLine)switch(m.beginPath&&m.beginPath(),m.moveTo(k[0],k[1]),M.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var ve=2;ve+35&&arguments[5]!==void 0?arguments[5]:!0,N=this;if(S==null){if(O&&!N.eleTextBiggerThanMin(m))return}else if(S===!1)return;if(m.isNode()){var $=m.pstyle("label");if(!$||!$.value)return;var H=N.getLabelJustification(m);x.textAlign=H,x.textBaseline="bottom"}else{var q=m.element()._private.rscratch.badLine,Y=m.pstyle("label"),Z=m.pstyle("source-label"),ce=m.pstyle("target-label");if(q||(!Y||!Y.value)&&(!Z||!Z.value)&&(!ce||!ce.value))return;x.textAlign="center",x.textBaseline="bottom"}var ve=!k,me;k&&(me=k,x.translate(-me.x1,-me.y1)),M==null?(N.drawText(x,m,null,ve,O),m.isEdge()&&(N.drawText(x,m,"source",ve,O),N.drawText(x,m,"target",ve,O))):N.drawText(x,m,M,ve,O),k&&x.translate(me.x1,me.y1)},k5.getFontCache=function(x){var m;this.fontCaches=this.fontCaches||[];for(var k=0;k2&&arguments[2]!==void 0?arguments[2]:!0,S=m.pstyle("font-style").strValue,M=m.pstyle("font-size").pfValue+"px",O=m.pstyle("font-family").strValue,N=m.pstyle("font-weight").strValue,$=k?m.effectiveOpacity()*m.pstyle("text-opacity").value:1,H=m.pstyle("text-outline-opacity").value*$,q=m.pstyle("color").value,Y=m.pstyle("text-outline-color").value;x.font=S+" "+N+" "+M+" "+O,x.lineJoin="round",this.colorFillStyle(x,q[0],q[1],q[2],$),this.colorStrokeStyle(x,Y[0],Y[1],Y[2],H)};function YI(x,m,k,S,M){var O=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,N=arguments.length>6?arguments[6]:void 0;x.beginPath(),x.moveTo(m+O,k),x.lineTo(m+S-O,k),x.quadraticCurveTo(m+S,k,m+S,k+O),x.lineTo(m+S,k+M-O),x.quadraticCurveTo(m+S,k+M,m+S-O,k+M),x.lineTo(m+O,k+M),x.quadraticCurveTo(m,k+M,m,k+M-O),x.lineTo(m,k+O),x.quadraticCurveTo(m,k,m+O,k),x.closePath(),N?x.stroke():x.fill()}k5.getTextAngle=function(x,m){var k,S=x._private,M=S.rscratch,O=m?m+"-":"",N=x.pstyle(O+"text-rotation"),$=nb(M,"labelAngle",m);return N.strValue==="autorotate"?k=x.isEdge()?$:0:N.strValue==="none"?k=0:k=N.pfValue,k},k5.drawText=function(x,m,k){var S=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,M=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,O=m._private,N=O.rscratch,$=M?m.effectiveOpacity():1;if(!(M&&($===0||m.pstyle("text-opacity").value===0))){k==="main"&&(k=null);var H=nb(N,"labelX",k),q=nb(N,"labelY",k),Y,Z,ce=this.getLabelText(m,k);if(ce!=null&&ce!==""&&!isNaN(H)&&!isNaN(q)){this.setupTextStyle(x,m,M);var ve=k?k+"-":"",me=nb(N,"labelWidth",k),Le=nb(N,"labelHeight",k),_e=m.pstyle(ve+"text-margin-x").pfValue,Te=m.pstyle(ve+"text-margin-y").pfValue,Fe=m.isEdge(),Re=m.pstyle("text-halign").value,Ve=m.pstyle("text-valign").value;Fe&&(Re="center",Ve="center"),H+=_e,q+=Te;var ct;switch(S?ct=this.getTextAngle(m,k):ct=0,ct!==0&&(Y=H,Z=q,x.translate(Y,Z),x.rotate(ct),H=0,q=0),Ve){case"top":break;case"center":q+=Le/2;break;case"bottom":q+=Le;break}var st=m.pstyle("text-background-opacity").value,Ye=m.pstyle("text-border-opacity").value,vt=m.pstyle("text-border-width").pfValue,Qe=m.pstyle("text-background-padding").pfValue,Lt=m.pstyle("text-background-shape").strValue,Mt=Lt.indexOf("round")===0,ut=2;if(st>0||vt>0&&Ye>0){var Yt=H-Qe;switch(Re){case"left":Yt-=me;break;case"center":Yt-=me/2;break}var St=q-Le-Qe,_n=me+2*Qe,fn=Le+2*Qe;if(st>0){var Xt=x.fillStyle,Dn=m.pstyle("text-background-color").value;x.fillStyle="rgba("+Dn[0]+","+Dn[1]+","+Dn[2]+","+st*$+")",Mt?YI(x,Yt,St,_n,fn,ut):x.fillRect(Yt,St,_n,fn),x.fillStyle=Xt}if(vt>0&&Ye>0){var rr=x.strokeStyle,mr=x.lineWidth,Pn=m.pstyle("text-border-color").value,gr=m.pstyle("text-border-style").value;if(x.strokeStyle="rgba("+Pn[0]+","+Pn[1]+","+Pn[2]+","+Ye*$+")",x.lineWidth=vt,x.setLineDash)switch(gr){case"dotted":x.setLineDash([1,1]);break;case"dashed":x.setLineDash([4,2]);break;case"double":x.lineWidth=vt/4,x.setLineDash([]);break;case"solid":x.setLineDash([]);break}if(Mt?YI(x,Yt,St,_n,fn,ut,"stroke"):x.strokeRect(Yt,St,_n,fn),gr==="double"){var kr=vt/2;Mt?YI(x,Yt+kr,St+kr,_n-kr*2,fn-kr*2,ut,"stroke"):x.strokeRect(Yt+kr,St+kr,_n-kr*2,fn-kr*2)}x.setLineDash&&x.setLineDash([]),x.lineWidth=mr,x.strokeStyle=rr}}var Lr=2*m.pstyle("text-outline-width").pfValue;if(Lr>0&&(x.lineWidth=Lr),m.pstyle("text-wrap").value==="wrap"){var Er=nb(N,"labelWrapCachedLines",k),Ir=nb(N,"labelLineHeight",k),Kn=me/2,pr=this.getLabelJustification(m);switch(pr==="auto"||(Re==="left"?pr==="left"?H+=-me:pr==="center"&&(H+=-Kn):Re==="center"?pr==="left"?H+=-Kn:pr==="right"&&(H+=Kn):Re==="right"&&(pr==="center"?H+=Kn:pr==="right"&&(H+=me))),Ve){case"top":q-=(Er.length-1)*Ir;break;case"center":case"bottom":q-=(Er.length-1)*Ir;break}for(var Cr=0;Cr0&&x.strokeText(Er[Cr],H,q),x.fillText(Er[Cr],H,q),q+=Ir}else Lr>0&&x.strokeText(ce,H,q),x.fillText(ce,H,q);ct!==0&&(x.rotate(-ct),x.translate(-Y,-Z))}}};var y8={};y8.drawNode=function(x,m,k){var S=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,M=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,O=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,N=this,$,H,q=m._private,Y=q.rscratch,Z=m.position();if(!(!X(Z.x)||!X(Z.y))&&!(O&&!m.visible())){var ce=O?m.effectiveOpacity():1,ve=N.usePaths(),me,Le=!1,_e=m.padding();$=m.width()+2*_e,H=m.height()+2*_e;var Te;k&&(Te=k,x.translate(-Te.x1,-Te.y1));for(var Fe=m.pstyle("background-image"),Re=Fe.value,Ve=new Array(Re.length),ct=new Array(Re.length),st=0,Ye=0;Ye0&&arguments[0]!==void 0?arguments[0]:Yt;N.eleFillStyle(x,m,er)},kr=function(){var er=arguments.length>0&&arguments[0]!==void 0?arguments[0]:fn;N.colorStrokeStyle(x,St[0],St[1],St[2],er)},Lr=function(){var er=arguments.length>0&&arguments[0]!==void 0?arguments[0]:mr;N.colorStrokeStyle(x,Dn[0],Dn[1],Dn[2],er)},Er=function(er,K,Qn,xr){var ur=N.nodePathCache=N.nodePathCache||[],Ut=ld(Qn==="polygon"?Qn+","+xr.join(","):Qn,""+K,""+er),Vs=ur[Ut],vr,Cs=!1;return Vs!=null?(vr=Vs,Cs=!0,Y.pathCache=vr):(vr=new Path2D,ur[Ut]=Y.pathCache=vr),{path:vr,cacheHit:Cs}},Ir=m.pstyle("shape").strValue,Kn=m.pstyle("shape-polygon-points").pfValue;if(ve){x.translate(Z.x,Z.y);var pr=Er($,H,Ir,Kn);me=pr.path,Le=pr.cacheHit}var Cr=function(){if(!Le){var er=Z;ve&&(er={x:0,y:0}),N.nodeShapes[N.getNodeShape(m)].draw(me||x,er.x,er.y,$,H)}ve?x.fill(me):x.fill()},Or=function(){for(var er=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ce,K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,Qn=q.backgrounding,xr=0,ur=0;ur0&&arguments[0]!==void 0?arguments[0]:!1,K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ce;N.hasPie(m)&&(N.drawPie(x,m,K),er&&(ve||N.nodeShapes[N.getNodeShape(m)].draw(x,Z.x,Z.y,$,H)))},xs=function(){var er=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ce,K=(Mt>0?Mt:-Mt)*er,Qn=Mt>0?0:255;Mt!==0&&(N.colorFillStyle(x,Qn,Qn,Qn,K),ve?x.fill(me):x.fill())},va=function(){if(ut>0){if(x.lineWidth=ut,x.lineCap="butt",x.setLineDash)switch(_n){case"dotted":x.setLineDash([1,1]);break;case"dashed":x.setLineDash([4,2]);break;case"solid":case"double":x.setLineDash([]);break}if(ve?x.stroke(me):x.stroke(),_n==="double"){x.lineWidth=ut/3;var er=x.globalCompositeOperation;x.globalCompositeOperation="destination-out",ve?x.stroke(me):x.stroke(),x.globalCompositeOperation=er}x.setLineDash&&x.setLineDash([])}},Di=function(){if(Xt>0){if(x.lineWidth=Xt,x.lineCap="butt",x.setLineDash)switch(rr){case"dotted":x.setLineDash([1,1]);break;case"dashed":x.setLineDash([4,2]);break;case"solid":case"double":x.setLineDash([]);break}var er=Z;ve&&(er={x:0,y:0});var K=N.getNodeShape(m),Qn=($+ut+(Xt+Pn))/$,xr=(H+ut+(Xt+Pn))/H,ur=$*Qn,Ut=H*xr,Vs=N.nodeShapes[K].points,vr;if(ve){var Cs=Er(ur,Ut,K,Vs);vr=Cs.path}if(K==="ellipse")N.drawEllipsePath(vr||x,er.x,er.y,ur,Ut);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(K)){var lo=0,qc=0,$a=0;K==="round-diamond"?lo=(ut+Pn+Xt)*1.4:K==="round-heptagon"?(lo=(ut+Pn+Xt)*1.075,$a=-(ut/2+Pn+Xt)/35):K==="round-hexagon"?lo=(ut+Pn+Xt)*1.12:K==="round-pentagon"?(lo=(ut+Pn+Xt)*1.13,$a=-(ut/2+Pn+Xt)/15):K==="round-tag"?(lo=(ut+Pn+Xt)*1.12,qc=(ut/2+Xt+Pn)*.07):K==="round-triangle"&&(lo=(ut+Pn+Xt)*(Math.PI/2),$a=-(ut+Pn/2+Xt)/Math.PI),lo!==0&&(Qn=($+lo)/$,xr=(H+lo)/H),N.drawRoundPolygonPath(vr||x,er.x+qc,er.y+$a,$*Qn,H*xr,Vs)}else if(["roundrectangle","round-rectangle"].includes(K))N.drawRoundRectanglePath(vr||x,er.x,er.y,ur,Ut);else if(["cutrectangle","cut-rectangle"].includes(K))N.drawCutRectanglePath(vr||x,er.x,er.y,ur,Ut);else if(["bottomroundrectangle","bottom-round-rectangle"].includes(K))N.drawBottomRoundRectanglePath(vr||x,er.x,er.y,ur,Ut);else if(K==="barrel")N.drawBarrelPath(vr||x,er.x,er.y,ur,Ut);else if(K.startsWith("polygon")||["rhomboid","right-rhomboid","round-tag","tag","vee"].includes(K)){var Mc=(ut+Xt+Pn)/$;Vs=pS(bS(Vs,Mc)),N.drawPolygonPath(vr||x,er.x,er.y,$,H,Vs)}else{var wa=(ut+Xt+Pn)/$;Vs=pS(bS(Vs,-wa)),N.drawPolygonPath(vr||x,er.x,er.y,$,H,Vs)}if(ve?x.stroke(vr):x.stroke(),rr==="double"){x.lineWidth=ut/3;var wo=x.globalCompositeOperation;x.globalCompositeOperation="destination-out",ve?x.stroke(vr):x.stroke(),x.globalCompositeOperation=wo}x.setLineDash&&x.setLineDash([])}},pi=function(){M&&N.drawNodeOverlay(x,m,Z,$,H)},fs=function(){M&&N.drawNodeUnderlay(x,m,Z,$,H)},Fs=function(){N.drawElementText(x,m,null,S)},ks=m.pstyle("ghost").value==="yes";if(ks){var Rs=m.pstyle("ghost-offset-x").pfValue,vo=m.pstyle("ghost-offset-y").pfValue,ja=m.pstyle("ghost-opacity").value,Ma=ja*ce;x.translate(Rs,vo),Lr(),Di(),gr(ja*Yt),Cr(),Or(Ma,!0),kr(ja*fn),va(),_i(Mt!==0||ut!==0),Or(Ma,!1),xs(Ma),x.translate(-Rs,-vo)}ve&&x.translate(-Z.x,-Z.y),fs(),ve&&x.translate(Z.x,Z.y),Lr(),Di(),gr(),Cr(),Or(ce,!0),kr(),va(),_i(Mt!==0||ut!==0),Or(ce,!1),xs(),ve&&x.translate(-Z.x,-Z.y),Fs(),pi(),k&&x.translate(Te.x1,Te.y1)}};var XI=function(m){if(!["overlay","underlay"].includes(m))throw new Error("Invalid state");return function(k,S,M,O,N){var $=this;if(S.visible()){var H=S.pstyle("".concat(m,"-padding")).pfValue,q=S.pstyle("".concat(m,"-opacity")).value,Y=S.pstyle("".concat(m,"-color")).value,Z=S.pstyle("".concat(m,"-shape")).value;if(q>0){if(M=M||S.position(),O==null||N==null){var ce=S.padding();O=S.width()+2*ce,N=S.height()+2*ce}$.colorFillStyle(k,Y[0],Y[1],Y[2],q),$.nodeShapes[Z].draw(k,M.x,M.y,O+H*2,N+H*2),k.fill()}}}};y8.drawNodeOverlay=XI("overlay"),y8.drawNodeUnderlay=XI("underlay"),y8.hasPie=function(x){return x=x[0],x._private.hasPie},y8.drawPie=function(x,m,k,S){m=m[0],S=S||m.position();var M=m.cy().style(),O=m.pstyle("pie-size"),N=S.x,$=S.y,H=m.width(),q=m.height(),Y=Math.min(H,q)/2,Z=0,ce=this.usePaths();ce&&(N=0,$=0),O.units==="%"?Y=Y*O.pfValue:O.pfValue!==void 0&&(Y=O.pfValue/2);for(var ve=1;ve<=M.pieBackgroundN;ve++){var me=m.pstyle("pie-"+ve+"-background-size").value,Le=m.pstyle("pie-"+ve+"-background-color").value,_e=m.pstyle("pie-"+ve+"-background-opacity").value*k,Te=me/100;Te+Z>1&&(Te=1-Z);var Fe=1.5*Math.PI+2*Math.PI*Z,Re=2*Math.PI*Te,Ve=Fe+Re;me===0||Z>=1||Z+Te>1||(x.beginPath(),x.moveTo(N,$),x.arc(N,$,Y,Fe,Ve),x.closePath(),this.colorFillStyle(x,Le[0],Le[1],Le[2],_e),x.fill(),Z+=Te)}};var Gg={},Pie=100;Gg.getPixelRatio=function(){var x=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var m=x.backingStorePixelRatio||x.webkitBackingStorePixelRatio||x.mozBackingStorePixelRatio||x.msBackingStorePixelRatio||x.oBackingStorePixelRatio||x.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/m},Gg.paintCache=function(x){for(var m=this.paintCaches=this.paintCaches||[],k=!0,S,M=0;MN.minMbLowQualFrames&&(N.motionBlurPxRatio=N.mbPxRBlurry)),N.clearingMotionBlur&&(N.motionBlurPxRatio=1),N.textureDrawLastFrame&&!Z&&(Y[N.NODE]=!0,Y[N.SELECT_BOX]=!0);var Fe=H.style(),Re=H.zoom(),Ve=M!==void 0?M:Re,ct=H.pan(),st={x:ct.x,y:ct.y},Ye={zoom:Re,pan:{x:ct.x,y:ct.y}},vt=N.prevViewport,Qe=vt===void 0||Ye.zoom!==vt.zoom||Ye.pan.x!==vt.pan.x||Ye.pan.y!==vt.pan.y;!Qe&&!(Le&&!me)&&(N.motionBlurPxRatio=1),O&&(st=O),Ve*=$,st.x*=$,st.y*=$;var Lt=N.getCachedZSortedEles();function Mt(Di,pi,fs,Fs,ks){var Rs=Di.globalCompositeOperation;Di.globalCompositeOperation="destination-out",N.colorFillStyle(Di,255,255,255,N.motionBlurTransparency),Di.fillRect(pi,fs,Fs,ks),Di.globalCompositeOperation=Rs}function ut(Di,pi){var fs,Fs,ks,Rs;!N.clearingMotionBlur&&(Di===q.bufferContexts[N.MOTIONBLUR_BUFFER_NODE]||Di===q.bufferContexts[N.MOTIONBLUR_BUFFER_DRAG])?(fs={x:ct.x*ve,y:ct.y*ve},Fs=Re*ve,ks=N.canvasWidth*ve,Rs=N.canvasHeight*ve):(fs=st,Fs=Ve,ks=N.canvasWidth,Rs=N.canvasHeight),Di.setTransform(1,0,0,1,0,0),pi==="motionBlur"?Mt(Di,0,0,ks,Rs):!m&&(pi===void 0||pi)&&Di.clearRect(0,0,ks,Rs),k||(Di.translate(fs.x,fs.y),Di.scale(Fs,Fs)),O&&Di.translate(O.x,O.y),M&&Di.scale(M,M)}if(Z||(N.textureDrawLastFrame=!1),Z){if(N.textureDrawLastFrame=!0,!N.textureCache){N.textureCache={},N.textureCache.bb=H.mutableElements().boundingBox(),N.textureCache.texture=N.data.bufferCanvases[N.TEXTURE_BUFFER];var Yt=N.data.bufferContexts[N.TEXTURE_BUFFER];Yt.setTransform(1,0,0,1,0,0),Yt.clearRect(0,0,N.canvasWidth*N.textureMult,N.canvasHeight*N.textureMult),N.render({forcedContext:Yt,drawOnlyNodeLayer:!0,forcedPxRatio:$*N.textureMult});var Ye=N.textureCache.viewport={zoom:H.zoom(),pan:H.pan(),width:N.canvasWidth,height:N.canvasHeight};Ye.mpan={x:(0-Ye.pan.x)/Ye.zoom,y:(0-Ye.pan.y)/Ye.zoom}}Y[N.DRAG]=!1,Y[N.NODE]=!1;var St=q.contexts[N.NODE],_n=N.textureCache.texture,Ye=N.textureCache.viewport;St.setTransform(1,0,0,1,0,0),ce?Mt(St,0,0,Ye.width,Ye.height):St.clearRect(0,0,Ye.width,Ye.height);var fn=Fe.core("outside-texture-bg-color").value,Xt=Fe.core("outside-texture-bg-opacity").value;N.colorFillStyle(St,fn[0],fn[1],fn[2],Xt),St.fillRect(0,0,Ye.width,Ye.height);var Re=H.zoom();ut(St,!1),St.clearRect(Ye.mpan.x,Ye.mpan.y,Ye.width/Ye.zoom/$,Ye.height/Ye.zoom/$),St.drawImage(_n,Ye.mpan.x,Ye.mpan.y,Ye.width/Ye.zoom/$,Ye.height/Ye.zoom/$)}else N.textureOnViewport&&!m&&(N.textureCache=null);var Dn=H.extent(),rr=N.pinching||N.hoverData.dragging||N.swipePanning||N.data.wheelZooming||N.hoverData.draggingEles||N.cy.animated(),mr=N.hideEdgesOnViewport&&rr,Pn=[];if(Pn[N.NODE]=!Y[N.NODE]&&ce&&!N.clearedForMotionBlur[N.NODE]||N.clearingMotionBlur,Pn[N.NODE]&&(N.clearedForMotionBlur[N.NODE]=!0),Pn[N.DRAG]=!Y[N.DRAG]&&ce&&!N.clearedForMotionBlur[N.DRAG]||N.clearingMotionBlur,Pn[N.DRAG]&&(N.clearedForMotionBlur[N.DRAG]=!0),Y[N.NODE]||k||S||Pn[N.NODE]){var gr=ce&&!Pn[N.NODE]&&ve!==1,St=m||(gr?N.data.bufferContexts[N.MOTIONBLUR_BUFFER_NODE]:q.contexts[N.NODE]),kr=ce&&!gr?"motionBlur":void 0;ut(St,kr),mr?N.drawCachedNodes(St,Lt.nondrag,$,Dn):N.drawLayeredElements(St,Lt.nondrag,$,Dn),N.debug&&N.drawDebugPoints(St,Lt.nondrag),!k&&!ce&&(Y[N.NODE]=!1)}if(!S&&(Y[N.DRAG]||k||Pn[N.DRAG])){var gr=ce&&!Pn[N.DRAG]&&ve!==1,St=m||(gr?N.data.bufferContexts[N.MOTIONBLUR_BUFFER_DRAG]:q.contexts[N.DRAG]);ut(St,ce&&!gr?"motionBlur":void 0),mr?N.drawCachedNodes(St,Lt.drag,$,Dn):N.drawCachedElements(St,Lt.drag,$,Dn),N.debug&&N.drawDebugPoints(St,Lt.drag),!k&&!ce&&(Y[N.DRAG]=!1)}if(N.showFps||!S&&Y[N.SELECT_BOX]&&!k){var St=m||q.contexts[N.SELECT_BOX];if(ut(St),N.selection[4]==1&&(N.hoverData.selecting||N.touchData.selecting)){var Re=N.cy.zoom(),Lr=Fe.core("selection-box-border-width").value/Re;St.lineWidth=Lr,St.fillStyle="rgba("+Fe.core("selection-box-color").value[0]+","+Fe.core("selection-box-color").value[1]+","+Fe.core("selection-box-color").value[2]+","+Fe.core("selection-box-opacity").value+")",St.fillRect(N.selection[0],N.selection[1],N.selection[2]-N.selection[0],N.selection[3]-N.selection[1]),Lr>0&&(St.strokeStyle="rgba("+Fe.core("selection-box-border-color").value[0]+","+Fe.core("selection-box-border-color").value[1]+","+Fe.core("selection-box-border-color").value[2]+","+Fe.core("selection-box-opacity").value+")",St.strokeRect(N.selection[0],N.selection[1],N.selection[2]-N.selection[0],N.selection[3]-N.selection[1]))}if(q.bgActivePosistion&&!N.hoverData.selecting){var Re=N.cy.zoom(),Er=q.bgActivePosistion;St.fillStyle="rgba("+Fe.core("active-bg-color").value[0]+","+Fe.core("active-bg-color").value[1]+","+Fe.core("active-bg-color").value[2]+","+Fe.core("active-bg-opacity").value+")",St.beginPath(),St.arc(Er.x,Er.y,Fe.core("active-bg-size").pfValue/Re,0,2*Math.PI),St.fill()}var Ir=N.lastRedrawTime;if(N.showFps&&Ir){Ir=Math.round(Ir);var Kn=Math.round(1e3/Ir);St.setTransform(1,0,0,1,0,0),St.fillStyle="rgba(255, 0, 0, 0.75)",St.strokeStyle="rgba(255, 0, 0, 0.75)",St.lineWidth=1,St.fillText("1 frame = "+Ir+" ms = "+Kn+" fps",0,20);var pr=60;St.strokeRect(0,30,250,20),St.fillRect(0,30,250*Math.min(Kn/pr,1),20)}k||(Y[N.SELECT_BOX]=!1)}if(ce&&ve!==1){var Cr=q.contexts[N.NODE],Or=N.data.bufferCanvases[N.MOTIONBLUR_BUFFER_NODE],_i=q.contexts[N.DRAG],xs=N.data.bufferCanvases[N.MOTIONBLUR_BUFFER_DRAG],va=function(pi,fs,Fs){pi.setTransform(1,0,0,1,0,0),Fs||!Te?pi.clearRect(0,0,N.canvasWidth,N.canvasHeight):Mt(pi,0,0,N.canvasWidth,N.canvasHeight);var ks=ve;pi.drawImage(fs,0,0,N.canvasWidth*ks,N.canvasHeight*ks,0,0,N.canvasWidth,N.canvasHeight)};(Y[N.NODE]||Pn[N.NODE])&&(va(Cr,Or,Pn[N.NODE]),Y[N.NODE]=!1),(Y[N.DRAG]||Pn[N.DRAG])&&(va(_i,xs,Pn[N.DRAG]),Y[N.DRAG]=!1)}N.prevViewport=Ye,N.clearingMotionBlur&&(N.clearingMotionBlur=!1,N.motionBlurCleared=!0,N.motionBlur=!0),ce&&(N.motionBlurTimeout=setTimeout(function(){N.motionBlurTimeout=null,N.clearedForMotionBlur[N.NODE]=!1,N.clearedForMotionBlur[N.DRAG]=!1,N.motionBlur=!1,N.clearingMotionBlur=!Z,N.mbFrames=0,Y[N.NODE]=!0,Y[N.DRAG]=!0,N.redraw()},Pie)),m||H.emit("render")};var oy={};oy.drawPolygonPath=function(x,m,k,S,M,O){var N=S/2,$=M/2;x.beginPath&&x.beginPath(),x.moveTo(m+N*O[0],k+$*O[1]);for(var H=1;H0&&N>0){ve.clearRect(0,0,O,N),ve.globalCompositeOperation="source-over";var me=this.getCachedZSortedEles();if(x.full)ve.translate(-S.x1*q,-S.y1*q),ve.scale(q,q),this.drawElements(ve,me),ve.scale(1/q,1/q),ve.translate(S.x1*q,S.y1*q);else{var Le=m.pan(),_e={x:Le.x*q,y:Le.y*q};q*=m.zoom(),ve.translate(_e.x,_e.y),ve.scale(q,q),this.drawElements(ve,me),ve.scale(1/q,1/q),ve.translate(-_e.x,-_e.y)}x.bg&&(ve.globalCompositeOperation="destination-over",ve.fillStyle=x.bg,ve.rect(0,0,O,N),ve.fill())}return ce};function Bie(x,m){for(var k=atob(x),S=new ArrayBuffer(k.length),M=new Uint8Array(S),O=0;O"u"?"undefined":u(OffscreenCanvas))!=="undefined"?k=new OffscreenCanvas(x,m):(k=document.createElement("canvas"),k.width=x,k.height=m),k},[kz,ab,ob,vk,k5,y8,Gg,oy,wk,Iz].forEach(function(x){xt(zc,x)});var Yp=[{name:"null",impl:tz},{name:"base",impl:dz},{name:"canvas",impl:Oz}],Fie=[{type:"layout",extensions:nie},{type:"renderer",extensions:Yp}],Rie={},jie={};function $ie(x,m,k){var S=k,M=function(vt){lu("Can not register `"+m+"` for `"+x+"` since `"+vt+"` already exists in the prototype and can not be overridden")};if(x==="core"){if(fk.prototype[m])return M(m);fk.prototype[m]=k}else if(x==="collection"){if(H0.prototype[m])return M(m);H0.prototype[m]=k}else if(x==="layout"){for(var O=function(vt){this.options=vt,k.call(this,vt),se(this._private)||(this._private={}),this._private.cy=vt.cy,this._private.listeners=[],this.createEmitter()},N=O.prototype=Object.create(k.prototype),$=[],H=0;H<$.length;H++){var q=$[H];N[q]=N[q]||function(){return this}}N.start&&!N.run?N.run=function(){return this.start(),this}:!N.start&&N.run&&(N.start=function(){return this.run(),this});var Y=k.prototype.stop;N.stop=function(){var Ye=this.options;if(Ye&&Ye.animate){var vt=this.animations;if(vt)for(var Qe=0;Qej&&(this.rect.x-=(this.labelWidth-j)/2,this.setWidth(this.labelWidth)),this.labelHeight>W&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-W)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-W),this.setHeight(this.labelHeight))}}},P.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==b.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},P.prototype.transform=function(B){var j=this.rect.x;j>E.WORLD_BOUNDARY?j=E.WORLD_BOUNDARY:j<-E.WORLD_BOUNDARY&&(j=-E.WORLD_BOUNDARY);var W=this.rect.y;W>E.WORLD_BOUNDARY?W=E.WORLD_BOUNDARY:W<-E.WORLD_BOUNDARY&&(W=-E.WORLD_BOUNDARY);var ee=new A(j,W),ie=B.inverseTransformPoint(ee);this.setLocation(ie.x,ie.y)},P.prototype.getLeft=function(){return this.rect.x},P.prototype.getRight=function(){return this.rect.x+this.rect.width},P.prototype.getTop=function(){return this.rect.y},P.prototype.getBottom=function(){return this.rect.y+this.rect.height},P.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},u.exports=P},function(u,d,p){function v(b,y){b==null&&y==null?(this.x=0,this.y=0):(this.x=b,this.y=y)}v.prototype.getX=function(){return this.x},v.prototype.getY=function(){return this.y},v.prototype.setX=function(b){this.x=b},v.prototype.setY=function(b){this.y=b},v.prototype.getDifference=function(b){return new DimensionD(this.x-b.x,this.y-b.y)},v.prototype.getCopy=function(){return new v(this.x,this.y)},v.prototype.translate=function(b){return this.x+=b.width,this.y+=b.height,this},u.exports=v},function(u,d,p){var v=p(2),b=p(10),y=p(0),E=p(6),_=p(3),A=p(1),P=p(13),R=p(12),B=p(11);function j(ee,ie,oe){v.call(this,oe),this.estimatedSize=b.MIN_VALUE,this.margin=y.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=ee,ie!=null&&ie instanceof E?this.graphManager=ie:ie!=null&&ie instanceof Layout&&(this.graphManager=ie.graphManager)}j.prototype=Object.create(v.prototype);for(var W in v)j[W]=v[W];j.prototype.getNodes=function(){return this.nodes},j.prototype.getEdges=function(){return this.edges},j.prototype.getGraphManager=function(){return this.graphManager},j.prototype.getParent=function(){return this.parent},j.prototype.getLeft=function(){return this.left},j.prototype.getRight=function(){return this.right},j.prototype.getTop=function(){return this.top},j.prototype.getBottom=function(){return this.bottom},j.prototype.isConnected=function(){return this.isConnected},j.prototype.add=function(ee,ie,oe){if(ie==null&&oe==null){var be=ee;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(be)>-1)throw"Node already in graph!";return be.owner=this,this.getNodes().push(be),be}else{var ge=ee;if(!(this.getNodes().indexOf(ie)>-1&&this.getNodes().indexOf(oe)>-1))throw"Source or target not in graph!";if(!(ie.owner==oe.owner&&ie.owner==this))throw"Both owners must be this graph!";return ie.owner!=oe.owner?null:(ge.source=ie,ge.target=oe,ge.isInterGraph=!1,this.getEdges().push(ge),ie.edges.push(ge),oe!=ie&&oe.edges.push(ge),ge)}},j.prototype.remove=function(ee){var ie=ee;if(ee instanceof _){if(ie==null)throw"Node is null!";if(!(ie.owner!=null&&ie.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var oe=ie.edges.slice(),be,ge=oe.length,ae=0;ae-1&&de>-1))throw"Source and/or target doesn't know this edge!";be.source.edges.splice(se,1),be.target!=be.source&&be.target.edges.splice(de,1);var ne=be.source.owner.getEdges().indexOf(be);if(ne==-1)throw"Not in owner's edge list!";be.source.owner.getEdges().splice(ne,1)}},j.prototype.updateLeftTop=function(){for(var ee=b.MAX_VALUE,ie=b.MAX_VALUE,oe,be,ge,ae=this.getNodes(),ne=ae.length,se=0;seoe&&(ee=oe),ie>be&&(ie=be)}return ee==b.MAX_VALUE?null:(ae[0].getParent().paddingLeft!=null?ge=ae[0].getParent().paddingLeft:ge=this.margin,this.left=ie-ge,this.top=ee-ge,new R(this.left,this.top))},j.prototype.updateBounds=function(ee){for(var ie=b.MAX_VALUE,oe=-b.MAX_VALUE,be=b.MAX_VALUE,ge=-b.MAX_VALUE,ae,ne,se,de,X,pe=this.nodes,G=pe.length,xe=0;xeae&&(ie=ae),oese&&(be=se),geae&&(ie=ae),oese&&(be=se),ge=this.nodes.length){var G=0;oe.forEach(function(xe){xe.owner==ee&&G++}),G==this.nodes.length&&(this.isConnected=!0)}},u.exports=j},function(u,d,p){var v,b=p(1);function y(E){v=p(5),this.layout=E,this.graphs=[],this.edges=[]}y.prototype.addRoot=function(){var E=this.layout.newGraph(),_=this.layout.newNode(null),A=this.add(E,_);return this.setRootGraph(A),this.rootGraph},y.prototype.add=function(E,_,A,P,R){if(A==null&&P==null&&R==null){if(E==null)throw"Graph is null!";if(_==null)throw"Parent node is null!";if(this.graphs.indexOf(E)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(E),E.parent!=null)throw"Already has a parent!";if(_.child!=null)throw"Already has a child!";return E.parent=_,_.child=E,E}else{R=A,P=_,A=E;var B=P.getOwner(),j=R.getOwner();if(!(B!=null&&B.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(j!=null&&j.getGraphManager()==this))throw"Target not in this graph mgr!";if(B==j)return A.isInterGraph=!1,B.add(A,P,R);if(A.isInterGraph=!0,A.source=P,A.target=R,this.edges.indexOf(A)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(A),!(A.source!=null&&A.target!=null))throw"Edge source and/or target is null!";if(!(A.source.edges.indexOf(A)==-1&&A.target.edges.indexOf(A)==-1))throw"Edge already in source and/or target incidency list!";return A.source.edges.push(A),A.target.edges.push(A),A}},y.prototype.remove=function(E){if(E instanceof v){var _=E;if(_.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(_==this.rootGraph||_.parent!=null&&_.parent.graphManager==this))throw"Invalid parent node!";var A=[];A=A.concat(_.getEdges());for(var P,R=A.length,B=0;B=E.getRight()?_[0]+=Math.min(E.getX()-y.getX(),y.getRight()-E.getRight()):E.getX()<=y.getX()&&E.getRight()>=y.getRight()&&(_[0]+=Math.min(y.getX()-E.getX(),E.getRight()-y.getRight())),y.getY()<=E.getY()&&y.getBottom()>=E.getBottom()?_[1]+=Math.min(E.getY()-y.getY(),y.getBottom()-E.getBottom()):E.getY()<=y.getY()&&E.getBottom()>=y.getBottom()&&(_[1]+=Math.min(y.getY()-E.getY(),E.getBottom()-y.getBottom()));var R=Math.abs((E.getCenterY()-y.getCenterY())/(E.getCenterX()-y.getCenterX()));E.getCenterY()===y.getCenterY()&&E.getCenterX()===y.getCenterX()&&(R=1);var B=R*_[0],j=_[1]/R;_[0]B)return _[0]=A,_[1]=W,_[2]=R,_[3]=pe,!1;if(PR)return _[0]=j,_[1]=P,_[2]=de,_[3]=B,!1;if(AR?(_[0]=ie,_[1]=oe,Be=!0):(_[0]=ee,_[1]=W,Be=!0):je===Se&&(A>R?(_[0]=j,_[1]=W,Be=!0):(_[0]=be,_[1]=oe,Be=!0)),-Ie===Se?R>A?(_[2]=X,_[3]=pe,Pe=!0):(_[2]=de,_[3]=se,Pe=!0):Ie===Se&&(R>A?(_[2]=ne,_[3]=se,Pe=!0):(_[2]=G,_[3]=pe,Pe=!0)),Be&&Pe)return!1;if(A>R?P>B?(Ce=this.getCardinalDirection(je,Se,4),ke=this.getCardinalDirection(Ie,Se,2)):(Ce=this.getCardinalDirection(-je,Se,3),ke=this.getCardinalDirection(-Ie,Se,1)):P>B?(Ce=this.getCardinalDirection(-je,Se,1),ke=this.getCardinalDirection(-Ie,Se,3)):(Ce=this.getCardinalDirection(je,Se,2),ke=this.getCardinalDirection(Ie,Se,4)),!Be)switch(Ce){case 1:zt=W,Ke=A+-ae/Se,_[0]=Ke,_[1]=zt;break;case 2:Ke=be,zt=P+ge*Se,_[0]=Ke,_[1]=zt;break;case 3:zt=oe,Ke=A+ae/Se,_[0]=Ke,_[1]=zt;break;case 4:Ke=ie,zt=P+-ge*Se,_[0]=Ke,_[1]=zt;break}if(!Pe)switch(ke){case 1:pn=se,Ne=R+-U/Se,_[2]=Ne,_[3]=pn;break;case 2:Ne=G,pn=B+xe*Se,_[2]=Ne,_[3]=pn;break;case 3:pn=pe,Ne=R+U/Se,_[2]=Ne,_[3]=pn;break;case 4:Ne=X,pn=B+-xe*Se,_[2]=Ne,_[3]=pn;break}}return!1},b.getCardinalDirection=function(y,E,_){return y>E?_:1+_%4},b.getIntersection=function(y,E,_,A){if(A==null)return this.getIntersection2(y,E,_);var P=y.x,R=y.y,B=E.x,j=E.y,W=_.x,ee=_.y,ie=A.x,oe=A.y,be=void 0,ge=void 0,ae=void 0,ne=void 0,se=void 0,de=void 0,X=void 0,pe=void 0,G=void 0;return ae=j-R,se=P-B,X=B*R-P*j,ne=oe-ee,de=W-ie,pe=ie*ee-W*oe,G=ae*de-ne*se,G===0?null:(be=(se*pe-de*X)/G,ge=(ne*X-ae*pe)/G,new v(be,ge))},b.angleOfVector=function(y,E,_,A){var P=void 0;return y!==_?(P=Math.atan((A-E)/(_-y)),_0?1:b<0?-1:0},v.floor=function(b){return b<0?Math.ceil(b):Math.floor(b)},v.ceil=function(b){return b<0?Math.floor(b):Math.ceil(b)},u.exports=v},function(u,d,p){function v(){}v.MAX_VALUE=2147483647,v.MIN_VALUE=-2147483648,u.exports=v},function(u,d,p){var v=function(){function P(R,B){for(var j=0;j"u"?"undefined":v(y);return y==null||E!="object"&&E!="function"},u.exports=b},function(u,d,p){function v(W){if(Array.isArray(W)){for(var ee=0,ie=Array(W.length);ee0&ⅇ){for(ae.push(se[0]);ae.length>0&ⅇ){var de=ae[0];ae.splice(0,1),ge.add(de);for(var X=de.getEdges(),be=0;be-1&&se.splice(U,1)}ge=new Set,ne=new Map}}return W},j.prototype.createDummyNodesForBendpoints=function(W){for(var ee=[],ie=W.source,oe=this.graphManager.calcLowestCommonAncestor(W.source,W.target),be=0;be0){for(var oe=this.edgeToDummyNodes.get(ie),be=0;be=0&&ee.splice(pe,1);var G=ne.getNeighborsList();G.forEach(function(Be){if(ie.indexOf(Be)<0){var Pe=oe.get(Be),je=Pe-1;je==1&&de.push(Be),oe.set(Be,je)}})}ie=ie.concat(de),(ee.length==1||ee.length==2)&&(be=!0,ge=ee[0])}return ge},j.prototype.setGraphManager=function(W){this.graphManager=W},u.exports=j},function(u,d,p){function v(){}v.seed=1,v.x=0,v.nextDouble=function(){return v.x=Math.sin(v.seed++)*1e4,v.x-Math.floor(v.x)},u.exports=v},function(u,d,p){var v=p(4);function b(y,E){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}b.prototype.getWorldOrgX=function(){return this.lworldOrgX},b.prototype.setWorldOrgX=function(y){this.lworldOrgX=y},b.prototype.getWorldOrgY=function(){return this.lworldOrgY},b.prototype.setWorldOrgY=function(y){this.lworldOrgY=y},b.prototype.getWorldExtX=function(){return this.lworldExtX},b.prototype.setWorldExtX=function(y){this.lworldExtX=y},b.prototype.getWorldExtY=function(){return this.lworldExtY},b.prototype.setWorldExtY=function(y){this.lworldExtY=y},b.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},b.prototype.setDeviceOrgX=function(y){this.ldeviceOrgX=y},b.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},b.prototype.setDeviceOrgY=function(y){this.ldeviceOrgY=y},b.prototype.getDeviceExtX=function(){return this.ldeviceExtX},b.prototype.setDeviceExtX=function(y){this.ldeviceExtX=y},b.prototype.getDeviceExtY=function(){return this.ldeviceExtY},b.prototype.setDeviceExtY=function(y){this.ldeviceExtY=y},b.prototype.transformX=function(y){var E=0,_=this.lworldExtX;return _!=0&&(E=this.ldeviceOrgX+(y-this.lworldOrgX)*this.ldeviceExtX/_),E},b.prototype.transformY=function(y){var E=0,_=this.lworldExtY;return _!=0&&(E=this.ldeviceOrgY+(y-this.lworldOrgY)*this.ldeviceExtY/_),E},b.prototype.inverseTransformX=function(y){var E=0,_=this.ldeviceExtX;return _!=0&&(E=this.lworldOrgX+(y-this.ldeviceOrgX)*this.lworldExtX/_),E},b.prototype.inverseTransformY=function(y){var E=0,_=this.ldeviceExtY;return _!=0&&(E=this.lworldOrgY+(y-this.ldeviceOrgY)*this.lworldExtY/_),E},b.prototype.inverseTransformPoint=function(y){var E=new v(this.inverseTransformX(y.x),this.inverseTransformY(y.y));return E},u.exports=b},function(u,d,p){function v(B){if(Array.isArray(B)){for(var j=0,W=Array(B.length);jy.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*y.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(B-y.ADAPTATION_LOWER_NODE_LIMIT)/(y.ADAPTATION_UPPER_NODE_LIMIT-y.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-y.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=y.MAX_NODE_DISPLACEMENT_INCREMENTAL):(B>y.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(y.COOLING_ADAPTATION_FACTOR,1-(B-y.ADAPTATION_LOWER_NODE_LIMIT)/(y.ADAPTATION_UPPER_NODE_LIMIT-y.ADAPTATION_LOWER_NODE_LIMIT)*(1-y.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=y.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},P.prototype.calcSpringForces=function(){for(var B=this.getAllEdges(),j,W=0;W0&&arguments[0]!==void 0?arguments[0]:!0,j=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,W,ee,ie,oe,be=this.getAllNodes(),ge;if(this.useFRGridVariant)for(this.totalIterations%y.GRID_CALCULATION_CHECK_PERIOD==1&&B&&this.updateGrid(),ge=new Set,W=0;Wae||ge>ae)&&(B.gravitationForceX=-this.gravityConstant*ie,B.gravitationForceY=-this.gravityConstant*oe)):(ae=j.getEstimatedSize()*this.compoundGravityRangeFactor,(be>ae||ge>ae)&&(B.gravitationForceX=-this.gravityConstant*ie*this.compoundGravityConstant,B.gravitationForceY=-this.gravityConstant*oe*this.compoundGravityConstant))},P.prototype.isConverged=function(){var B,j=!1;return this.totalIterations>this.maxIterations/3&&(j=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),B=this.totalDisplacement=be.length||ae>=be[0].length)){for(var ne=0;neP}}]),_}();u.exports=E},function(u,d,p){var v=function(){function E(_,A){for(var P=0;P2&&arguments[2]!==void 0?arguments[2]:1,R=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,B=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;b(this,E),this.sequence1=_,this.sequence2=A,this.match_score=P,this.mismatch_penalty=R,this.gap_penalty=B,this.iMax=_.length+1,this.jMax=A.length+1,this.grid=new Array(this.iMax);for(var j=0;j=0;_--){var A=this.listeners[_];A.event===y&&A.callback===E&&this.listeners.splice(_,1)}},b.emit=function(y,E){for(var _=0;_A.coolingFactor*A.maxNodeDisplacement&&(this.displacementX=A.coolingFactor*A.maxNodeDisplacement*y.sign(this.displacementX)),Math.abs(this.displacementY)>A.coolingFactor*A.maxNodeDisplacement&&(this.displacementY=A.coolingFactor*A.maxNodeDisplacement*y.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),A.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},E.prototype.propogateDisplacementToChildren=function(A,P){for(var R=this.getChild().getNodes(),B,j=0;j0)this.positionNodesRadially(se);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var de=new Set(this.getAllNodes()),X=this.nodesWithGravity.filter(function(pe){return de.has(pe)});this.graphManager.setAllNodesToApplyGravitation(X),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},ae.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%R.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 se=new Set(this.getAllNodes()),de=this.nodesWithGravity.filter(function(G){return se.has(G)});this.graphManager.setAllNodesToApplyGravitation(de),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=R.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=R.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var X=!this.isTreeGrowing&&!this.isGrowthFinished,pe=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(X,pe),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},ae.prototype.getPositionsData=function(){for(var se=this.graphManager.getAllNodes(),de={},X=0;X1){var Be;for(Be=0;Bepe&&(pe=Math.floor(U.y)),xe=Math.floor(U.x+P.DEFAULT_COMPONENT_SEPERATION)}this.transform(new W(B.WORLD_CENTER_X-U.x/2,B.WORLD_CENTER_Y-U.y/2))},ae.radialLayout=function(se,de,X){var pe=Math.max(this.maxDiagonalInTree(se),P.DEFAULT_RADIAL_SEPARATION);ae.branchRadialLayout(de,null,0,359,0,pe);var G=be.calculateBounds(se),xe=new ge;xe.setDeviceOrgX(G.getMinX()),xe.setDeviceOrgY(G.getMinY()),xe.setWorldOrgX(X.x),xe.setWorldOrgY(X.y);for(var U=0;U1;){var pn=Ne[0];Ne.splice(0,1);var Tt=Se.indexOf(pn);Tt>=0&&Se.splice(Tt,1),Ke--,Ce--}de!=null?zt=(Se.indexOf(Ne[0])+1)%Ke:zt=0;for(var Et=Math.abs(pe-X)/Ce,Wt=zt;ke!=Ce;Wt=++Wt%Ke){var un=Se[Wt].getOtherEnd(se);if(un!=de){var yt=(X+ke*Et)%360,Bt=(yt+Et)%360;ae.branchRadialLayout(un,se,yt,Bt,G+xe,xe),ke++}}},ae.maxDiagonalInTree=function(se){for(var de=ie.MIN_VALUE,X=0;Xde&&(de=G)}return de},ae.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},ae.prototype.groupZeroDegreeMembers=function(){var se=this,de={};this.memberGroups={},this.idToDummyNode={};for(var X=[],pe=this.graphManager.getAllNodes(),G=0;G"u"&&(de[Be]=[]),de[Be]=de[Be].concat(xe)}Object.keys(de).forEach(function(Pe){if(de[Pe].length>1){var je="DummyCompound_"+Pe;se.memberGroups[je]=de[Pe];var Ie=de[Pe][0].getParent(),Se=new _(se.graphManager);Se.id=je,Se.paddingLeft=Ie.paddingLeft||0,Se.paddingRight=Ie.paddingRight||0,Se.paddingBottom=Ie.paddingBottom||0,Se.paddingTop=Ie.paddingTop||0,se.idToDummyNode[je]=Se;var Ce=se.getGraphManager().add(se.newGraph(),Se),ke=Ie.getChild();ke.add(Se);for(var Ke=0;Ke=0;se--){var de=this.compoundOrder[se],X=de.id,pe=de.paddingLeft,G=de.paddingTop;this.adjustLocations(this.tiledMemberPack[X],de.rect.x,de.rect.y,pe,G)}},ae.prototype.repopulateZeroDegreeMembers=function(){var se=this,de=this.tiledZeroDegreePack;Object.keys(de).forEach(function(X){var pe=se.idToDummyNode[X],G=pe.paddingLeft,xe=pe.paddingTop;se.adjustLocations(de[X],pe.rect.x,pe.rect.y,G,xe)})},ae.prototype.getToBeTiled=function(se){var de=se.id;if(this.toBeTiled[de]!=null)return this.toBeTiled[de];var X=se.getChild();if(X==null)return this.toBeTiled[de]=!1,!1;for(var pe=X.getNodes(),G=0;G0)return this.toBeTiled[de]=!1,!1;if(xe.getChild()==null){this.toBeTiled[xe.id]=!1;continue}if(!this.getToBeTiled(xe))return this.toBeTiled[de]=!1,!1}return this.toBeTiled[de]=!0,!0},ae.prototype.getNodeDegree=function(se){se.id;for(var de=se.getEdges(),X=0,pe=0;pePe&&(Pe=Ie.rect.height)}X+=Pe+se.verticalPadding}},ae.prototype.tileCompoundMembers=function(se,de){var X=this;this.tiledMemberPack=[],Object.keys(se).forEach(function(pe){var G=de[pe];X.tiledMemberPack[pe]=X.tileNodes(se[pe],G.paddingLeft+G.paddingRight),G.rect.width=X.tiledMemberPack[pe].width,G.rect.height=X.tiledMemberPack[pe].height})},ae.prototype.tileNodes=function(se,de){var X=P.TILING_PADDING_VERTICAL,pe=P.TILING_PADDING_HORIZONTAL,G={rows:[],rowWidth:[],rowHeight:[],width:0,height:de,verticalPadding:X,horizontalPadding:pe};se.sort(function(Be,Pe){return Be.rect.width*Be.rect.height>Pe.rect.width*Pe.rect.height?-1:Be.rect.width*Be.rect.height0&&(U+=se.horizontalPadding),se.rowWidth[X]=U,se.width0&&(Be+=se.verticalPadding);var Pe=0;Be>se.rowHeight[X]&&(Pe=se.rowHeight[X],se.rowHeight[X]=Be,Pe=se.rowHeight[X]-Pe),se.height+=Pe,se.rows[X].push(de)},ae.prototype.getShortestRowIndex=function(se){for(var de=-1,X=Number.MAX_VALUE,pe=0;peX&&(de=pe,X=se.rowWidth[pe]);return de},ae.prototype.canAddHorizontal=function(se,de,X){var pe=this.getShortestRowIndex(se);if(pe<0)return!0;var G=se.rowWidth[pe];if(G+se.horizontalPadding+de<=se.width)return!0;var xe=0;se.rowHeight[pe]0&&(xe=X+se.verticalPadding-se.rowHeight[pe]);var U;se.width-G>=de+se.horizontalPadding?U=(se.height+xe)/(G+de+se.horizontalPadding):U=(se.height+xe)/se.width,xe=X+se.verticalPadding;var Be;return se.widthxe&&de!=X){pe.splice(-1,1),se.rows[X].push(G),se.rowWidth[de]=se.rowWidth[de]-xe,se.rowWidth[X]=se.rowWidth[X]+xe,se.width=se.rowWidth[instance.getLongestRowIndex(se)];for(var U=Number.MIN_VALUE,Be=0;BeU&&(U=pe[Be].height);de>0&&(U+=se.verticalPadding);var Pe=se.rowHeight[de]+se.rowHeight[X];se.rowHeight[de]=U,se.rowHeight[X]0)for(var ke=G;ke<=xe;ke++)Ce[0]+=this.grid[ke][U-1].length+this.grid[ke][U].length-1;if(xe0)for(var ke=U;ke<=Be;ke++)Ce[3]+=this.grid[G-1][ke].length+this.grid[G][ke].length-1;for(var Ke=ie.MAX_VALUE,zt,Ne,pn=0;pn0){var Be;Be=ge.getGraphManager().add(ge.newGraph(),X),this.processChildrenList(Be,de,ge)}}},W.prototype.stop=function(){return this.stopped=!0,this};var ie=function(be){be("layout","cose-bilkent",W)};typeof cytoscape<"u"&&ie(cytoscape),d.exports=ie}])})})(HWe);var Pon=HWe.exports;const Bon=dC(Pon),Fon=12,Ron=function(i,a,u,d){a.append("path").attr("id","node-"+u.id).attr("class","node-bkg node-"+i.type2Str(u.type)).attr("d",`M0 ${u.height-5} v${-u.height+2*5} q0,-5 5,-5 h${u.width-2*5} q5,0 5,5 v${u.height-5} H0 Z`),a.append("line").attr("class","node-line-"+d).attr("x1",0).attr("y1",u.height).attr("x2",u.width).attr("y2",u.height)},jon=function(i,a,u){a.append("rect").attr("id","node-"+u.id).attr("class","node-bkg node-"+i.type2Str(u.type)).attr("height",u.height).attr("width",u.width)},$on=function(i,a,u){const d=u.width,p=u.height,v=.15*d,b=.25*d,y=.35*d,E=.2*d;a.append("path").attr("id","node-"+u.id).attr("class","node-bkg node-"+i.type2Str(u.type)).attr("d",`M0 0 a${v},${v} 0 0,1 ${d*.25},${-1*d*.1} + a${y},${y} 1 0,1 ${d*.4},${-1*d*.1} + a${b},${b} 1 0,1 ${d*.35},${1*d*.2} + + a${v},${v} 1 0,1 ${d*.15},${1*p*.35} + a${E},${E} 1 0,1 ${-1*d*.15},${1*p*.65} + + a${b},${v} 1 0,1 ${-1*d*.25},${d*.15} + a${y},${y} 1 0,1 ${-1*d*.5},0 + a${v},${v} 1 0,1 ${-1*d*.25},${-1*d*.15} + + a${v},${v} 1 0,1 ${-1*d*.1},${-1*p*.35} + a${E},${E} 1 0,1 ${d*.1},${-1*p*.65} + + H0 V0 Z`)},zon=function(i,a,u){const d=u.width,p=u.height,v=.15*d;a.append("path").attr("id","node-"+u.id).attr("class","node-bkg node-"+i.type2Str(u.type)).attr("d",`M0 0 a${v},${v} 1 0,0 ${d*.25},${-1*p*.1} + a${v},${v} 1 0,0 ${d*.25},0 + a${v},${v} 1 0,0 ${d*.25},0 + a${v},${v} 1 0,0 ${d*.25},${1*p*.1} + + a${v},${v} 1 0,0 ${d*.15},${1*p*.33} + a${v*.8},${v*.8} 1 0,0 0,${1*p*.34} + a${v},${v} 1 0,0 ${-1*d*.15},${1*p*.33} + + a${v},${v} 1 0,0 ${-1*d*.25},${p*.15} + a${v},${v} 1 0,0 ${-1*d*.25},0 + a${v},${v} 1 0,0 ${-1*d*.25},0 + a${v},${v} 1 0,0 ${-1*d*.25},${-1*p*.15} + + a${v},${v} 1 0,0 ${-1*d*.1},${-1*p*.33} + a${v*.8},${v*.8} 1 0,0 0,${-1*p*.34} + a${v},${v} 1 0,0 ${d*.1},${-1*p*.33} + + H0 V0 Z`)},qon=function(i,a,u){a.append("circle").attr("id","node-"+u.id).attr("class","node-bkg node-"+i.type2Str(u.type)).attr("r",u.width/2)};function Hon(i,a,u,d,p){return i.insert("polygon",":first-child").attr("points",d.map(function(v){return v.x+","+v.y}).join(" ")).attr("transform","translate("+(p.width-a)/2+", "+u+")")}const Uon=function(i,a,u){const d=u.height,v=d/4,b=u.width-u.padding+2*v,y=[{x:v,y:0},{x:b-v,y:0},{x:b,y:-d/2},{x:b-v,y:-d},{x:v,y:-d},{x:0,y:-d/2}];Hon(a,b,d,y,u)},Von=function(i,a,u){a.append("rect").attr("id","node-"+u.id).attr("class","node-bkg node-"+i.type2Str(u.type)).attr("height",u.height).attr("rx",u.padding).attr("ry",u.padding).attr("width",u.width)},Gon=function(i,a,u,d,p){const v=p.htmlLabels,b=d%(Fon-1),y=a.append("g");u.section=b;let E="section-"+b;b<0&&(E+=" section-root"),y.attr("class",(u.class?u.class+" ":"")+"mindmap-node "+E);const _=y.append("g"),A=y.append("g"),P=u.descr.replace(/()/g,` +`);fJ(A,P,{useHtmlLabels:v,width:u.width,classes:"mindmap-node-label"}),v||A.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");const R=A.node().getBBox(),[B]=PC(p.fontSize);if(u.height=R.height+B*1.1*.5+u.padding,u.width=R.width+2*u.padding,u.icon)if(u.type===i.nodeType.CIRCLE)u.height+=50,u.width+=50,y.append("foreignObject").attr("height","50px").attr("width",u.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+b+" "+u.icon),A.attr("transform","translate("+u.width/2+", "+(u.height/2-1.5*u.padding)+")");else{u.width+=50;const j=u.height;u.height=Math.max(j,60);const W=Math.abs(u.height-j);y.append("foreignObject").attr("width","60px").attr("height",u.height).attr("style","text-align: center;margin-top:"+W/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+b+" "+u.icon),A.attr("transform","translate("+(25+u.width/2)+", "+(W/2+u.padding/2)+")")}else if(v){const j=(u.width-R.width)/2,W=(u.height-R.height)/2;A.attr("transform","translate("+j+", "+W+")")}else{const j=u.width/2,W=u.padding/2;A.attr("transform","translate("+j+", "+W+")")}switch(u.type){case i.nodeType.DEFAULT:Ron(i,_,u,b);break;case i.nodeType.ROUNDED_RECT:Von(i,_,u);break;case i.nodeType.RECT:jon(i,_,u);break;case i.nodeType.CIRCLE:_.attr("transform","translate("+u.width/2+", "+ +u.height/2+")"),qon(i,_,u);break;case i.nodeType.CLOUD:$on(i,_,u);break;case i.nodeType.BANG:zon(i,_,u);break;case i.nodeType.HEXAGON:Uon(i,_,u);break}return i.setElementForId(u.id,y),u.height},Kon=function(i,a){const u=i.getElementById(a.id),d=a.x||0,p=a.y||0;u.attr("transform","translate("+d+","+p+")")};qWe.use(Bon);function GWe(i,a,u,d,p){Gon(i,a,u,d,p),u.children&&u.children.forEach((v,b)=>{GWe(i,a,v,d<0?b:d,p)})}function Won(i,a){a.edges().map((u,d)=>{const p=u.data();if(u[0]._private.bodyBounds){const v=u[0]._private.rscratch;Xe.trace("Edge: ",d,p),i.insert("path").attr("d",`M ${v.startX},${v.startY} L ${v.midX},${v.midY} L${v.endX},${v.endY} `).attr("class","edge section-edge-"+p.section+" edge-depth-"+p.depth)}})}function KWe(i,a,u,d){a.add({group:"nodes",data:{id:i.id.toString(),labelText:i.descr,height:i.height,width:i.width,level:d,nodeId:i.id,padding:i.padding,type:i.type},position:{x:i.x,y:i.y}}),i.children&&i.children.forEach(p=>{KWe(p,a,u,d+1),a.add({group:"edges",data:{id:`${i.id}_${p.id}`,source:i.id,target:p.id,depth:d,section:p.section}})})}function Yon(i,a){return new Promise(u=>{const d=Dr("body").append("div").attr("id","cy").attr("style","display:none"),p=qWe({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});d.remove(),KWe(i,p,a,0),p.nodes().forEach(function(v){v.layoutDimensions=()=>{const b=v.data();return{w:b.width,h:b.height}}}),p.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),p.ready(v=>{Xe.info("Ready",v),u(p)})})}function Xon(i,a){a.nodes().map((u,d)=>{const p=u.data();p.x=u.position().x,p.y=u.position().y,Kon(i,p);const v=i.getElementById(p.nodeId);Xe.info("Id:",d,"Position: (",u.position().x,", ",u.position().y,")",p),v.attr("transform",`translate(${u.position().x-p.width/2}, ${u.position().y-p.height/2})`),v.attr("attr",`apa-${d})`)})}const Qon={draw:async(i,a,u,d)=>{var P,R;Xe.debug(`Rendering mindmap diagram +`+i);const p=d.db,v=p.getMindmap();if(!v)return;const b=qt();b.htmlLabels=!1;const y=dR(a),E=y.append("g");E.attr("class","mindmap-edges");const _=y.append("g");_.attr("class","mindmap-nodes"),GWe(p,_,v,-1,b);const A=await Yon(v,b);Won(E,A),Xon(p,A),x9(void 0,y,((P=b.mindmap)==null?void 0:P.padding)??nh.mindmap.padding,((R=b.mindmap)==null?void 0:R.useMaxWidth)??nh.mindmap.useMaxWidth)}},Jon=i=>{let a="";for(let u=0;u` + .edge { + stroke-width: 3; + } + ${Jon(i)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${i.git0}; + } + .section-root text { + fill: ${i.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`}},Symbol.toStringTag,{value:"Module"}));var kwe=function(){var i=function(y,E,_,A){for(_=_||{},A=y.length;A--;_[y[A]]=E);return _},a=[1,9],u=[1,10],d=[1,5,10,12],p={trace:function(){},yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:function(E,_,A,P,R,B,j){var W=B.length-1;switch(R){case 7:const ee=P.findOrCreateNode(B[W-4].trim().replaceAll('""','"')),ie=P.findOrCreateNode(B[W-2].trim().replaceAll('""','"')),oe=parseFloat(B[W].trim());P.addLink(ee,ie,oe);break;case 8:case 9:case 11:this.$=B[W];break;case 10:this.$=B[W-1];break}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:a,20:u},{1:[2,6],7:11,10:[1,12]},i(u,[2,4],{9:13,5:[1,14]}),{12:[1,15]},i(d,[2,8]),i(d,[2,9]),{19:[1,16]},i(d,[2,11]),{1:[2,1]},{1:[2,5]},i(u,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:a,20:u},{15:18,16:7,17:8,18:a,20:u},{18:[1,19]},i(u,[2,3]),{12:[1,20]},i(d,[2,10]),{15:21,16:7,17:8,18:a,20:u},i([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(E,_){if(_.recoverable)this.trace(E);else{var A=new Error(E);throw A.hash=_,A}},parse:function(E){var _=this,A=[0],P=[],R=[null],B=[],j=this.table,W="",ee=0,ie=0,oe=2,be=1,ge=B.slice.call(arguments,1),ae=Object.create(this.lexer),ne={yy:{}};for(var se in this.yy)Object.prototype.hasOwnProperty.call(this.yy,se)&&(ne.yy[se]=this.yy[se]);ae.setInput(E,ne.yy),ne.yy.lexer=ae,ne.yy.parser=this,typeof ae.yylloc>"u"&&(ae.yylloc={});var de=ae.yylloc;B.push(de);var X=ae.options&&ae.options.ranges;typeof ne.yy.parseError=="function"?this.parseError=ne.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pe(){var Ke;return Ke=P.pop()||ae.lex()||be,typeof Ke!="number"&&(Ke instanceof Array&&(P=Ke,Ke=P.pop()),Ke=_.symbols_[Ke]||Ke),Ke}for(var G,xe,U,Be,Pe={},je,Ie,Se,Ce;;){if(xe=A[A.length-1],this.defaultActions[xe]?U=this.defaultActions[xe]:((G===null||typeof G>"u")&&(G=pe()),U=j[xe]&&j[xe][G]),typeof U>"u"||!U.length||!U[0]){var ke="";Ce=[];for(je in j[xe])this.terminals_[je]&&je>oe&&Ce.push("'"+this.terminals_[je]+"'");ae.showPosition?ke="Parse error on line "+(ee+1)+`: +`+ae.showPosition()+` +Expecting `+Ce.join(", ")+", got '"+(this.terminals_[G]||G)+"'":ke="Parse error on line "+(ee+1)+": Unexpected "+(G==be?"end of input":"'"+(this.terminals_[G]||G)+"'"),this.parseError(ke,{text:ae.match,token:this.terminals_[G]||G,line:ae.yylineno,loc:de,expected:Ce})}if(U[0]instanceof Array&&U.length>1)throw new Error("Parse Error: multiple actions possible at state: "+xe+", token: "+G);switch(U[0]){case 1:A.push(G),R.push(ae.yytext),B.push(ae.yylloc),A.push(U[1]),G=null,ie=ae.yyleng,W=ae.yytext,ee=ae.yylineno,de=ae.yylloc;break;case 2:if(Ie=this.productions_[U[1]][1],Pe.$=R[R.length-Ie],Pe._$={first_line:B[B.length-(Ie||1)].first_line,last_line:B[B.length-1].last_line,first_column:B[B.length-(Ie||1)].first_column,last_column:B[B.length-1].last_column},X&&(Pe._$.range=[B[B.length-(Ie||1)].range[0],B[B.length-1].range[1]]),Be=this.performAction.apply(Pe,[W,ie,ee,ne.yy,U[1],R,B].concat(ge)),typeof Be<"u")return Be;Ie&&(A=A.slice(0,-1*Ie*2),R=R.slice(0,-1*Ie),B=B.slice(0,-1*Ie)),A.push(this.productions_[U[1]][0]),R.push(Pe.$),B.push(Pe._$),Se=j[A[A.length-2]][A[A.length-1]],A.push(Se);break;case 3:return!0}}return!0}},v=function(){var y={EOF:1,parseError:function(_,A){if(this.yy.parser)this.yy.parser.parseError(_,A);else throw new Error(_)},setInput:function(E,_){return this.yy=_||this.yy||{},this._input=E,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var E=this._input[0];this.yytext+=E,this.yyleng++,this.offset++,this.match+=E,this.matched+=E;var _=E.match(/(?:\r\n?|\n).*/g);return _?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),E},unput:function(E){var _=E.length,A=E.split(/(?:\r\n?|\n)/g);this._input=E+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-_),this.offset-=_;var P=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),A.length-1&&(this.yylineno-=A.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:A?(A.length===P.length?this.yylloc.first_column:0)+P[P.length-A.length].length-A[0].length:this.yylloc.first_column-_},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-_]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(E){this.unput(this.match.slice(E))},pastInput:function(){var E=this.matched.substr(0,this.matched.length-this.match.length);return(E.length>20?"...":"")+E.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var E=this.match;return E.length<20&&(E+=this._input.substr(0,20-E.length)),(E.substr(0,20)+(E.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var E=this.pastInput(),_=new Array(E.length+1).join("-");return E+this.upcomingInput()+` +`+_+"^"},test_match:function(E,_){var A,P,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))),P=E[0].match(/(?:\r\n?|\n).*/g),P&&(this.yylineno+=P.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:P?P[P.length-1].length-P[P.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+E[0].length},this.yytext+=E[0],this.match+=E[0],this.matches=E,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(E[0].length),this.matched+=E[0],A=this.performAction.call(this,this.yy,this,_,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),A)return A;if(this._backtrack){for(var B in R)this[B]=R[B];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var E,_,A,P;this._more||(this.yytext="",this.match="");for(var R=this._currentRules(),B=0;B_[0].length)){if(_=A,P=B,this.options.backtrack_lexer){if(E=this.test_match(A,R[B]),E!==!1)return E;if(this._backtrack){_=!1;continue}else return!1}else if(!this.options.flex)break}return _?(E=this.test_match(_,R[P]),E!==!1?E:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var _=this.next();return _||this.lex()},begin:function(_){this.conditionStack.push(_)},popState:function(){var _=this.conditionStack.length-1;return _>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(_){return _=this.conditionStack.length-1-Math.abs(_||0),_>=0?this.conditionStack[_]:"INITIAL"},pushState:function(_){this.begin(_)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(_,A,P,R){switch(P){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return y}();p.lexer=v;function b(){this.yy={}}return b.prototype=p,p.Parser=b,new b}();kwe.parser=kwe;const WJ=kwe;let YJ=[],XJ=[],uI={};const ecn=()=>{YJ=[],XJ=[],uI={},Rg()};class tcn{constructor(a,u,d=0){this.source=a,this.target=u,this.value=d}}const ncn=(i,a,u)=>{YJ.push(new tcn(i,a,u))};class rcn{constructor(a){this.ID=a}}const icn={nodesMap:uI,getConfig:()=>qt().sankey,getNodes:()=>XJ,getLinks:()=>YJ,getGraph:()=>({nodes:XJ.map(i=>({id:i.ID})),links:YJ.map(i=>({source:i.source.ID,target:i.target.ID,value:i.value}))}),addLink:ncn,findOrCreateNode:i=>(i=oi.sanitizeText(i,qt()),uI[i]||(uI[i]=new rcn(i),XJ.push(uI[i])),uI[i]),getAccTitle:Mp,setAccTitle:jg,getAccDescription:Ip,setAccDescription:Dp,getDiagramTitle:Op,setDiagramTitle:pm,clear:ecn};function WWe(i,a){let u;if(a===void 0)for(const d of i)d!=null&&(u=d)&&(u=d);else{let d=-1;for(let p of i)(p=a(p,++d,i))!=null&&(u=p)&&(u=p)}return u}function YWe(i,a){let u;if(a===void 0)for(const d of i)d!=null&&(u>d||u===void 0&&d>=d)&&(u=d);else{let d=-1;for(let p of i)(p=a(p,++d,i))!=null&&(u>p||u===void 0&&p>=p)&&(u=p)}return u}function Twe(i,a){let u=0;if(a===void 0)for(let d of i)(d=+d)&&(u+=d);else{let d=-1;for(let p of i)(p=+a(p,++d,i))&&(u+=p)}return u}function scn(i){return i.target.depth}function acn(i){return i.depth}function ocn(i,a){return a-1-i.height}function XWe(i,a){return i.sourceLinks.length?i.depth:a-1}function ccn(i){return i.targetLinks.length?i.depth:i.sourceLinks.length?YWe(i.sourceLinks,scn)-1:0}function QJ(i){return function(){return i}}function QWe(i,a){return JJ(i.source,a.source)||i.index-a.index}function JWe(i,a){return JJ(i.target,a.target)||i.index-a.index}function JJ(i,a){return i.y0-a.y0}function Ewe(i){return i.value}function ucn(i){return i.index}function lcn(i){return i.nodes}function hcn(i){return i.links}function ZWe(i,a){const u=i.get(a);if(!u)throw new Error("missing: "+a);return u}function eYe({nodes:i}){for(const a of i){let u=a.y0,d=u;for(const p of a.sourceLinks)p.y0=u+p.width/2,u+=p.width;for(const p of a.targetLinks)p.y1=d+p.width/2,d+=p.width}}function fcn(){let i=0,a=0,u=1,d=1,p=24,v=8,b,y=ucn,E=XWe,_,A,P=lcn,R=hcn,B=6;function j(){const Pe={nodes:P.apply(null,arguments),links:R.apply(null,arguments)};return W(Pe),ee(Pe),ie(Pe),oe(Pe),ae(Pe),eYe(Pe),Pe}j.update=function(Pe){return eYe(Pe),Pe},j.nodeId=function(Pe){return arguments.length?(y=typeof Pe=="function"?Pe:QJ(Pe),j):y},j.nodeAlign=function(Pe){return arguments.length?(E=typeof Pe=="function"?Pe:QJ(Pe),j):E},j.nodeSort=function(Pe){return arguments.length?(_=Pe,j):_},j.nodeWidth=function(Pe){return arguments.length?(p=+Pe,j):p},j.nodePadding=function(Pe){return arguments.length?(v=b=+Pe,j):v},j.nodes=function(Pe){return arguments.length?(P=typeof Pe=="function"?Pe:QJ(Pe),j):P},j.links=function(Pe){return arguments.length?(R=typeof Pe=="function"?Pe:QJ(Pe),j):R},j.linkSort=function(Pe){return arguments.length?(A=Pe,j):A},j.size=function(Pe){return arguments.length?(i=a=0,u=+Pe[0],d=+Pe[1],j):[u-i,d-a]},j.extent=function(Pe){return arguments.length?(i=+Pe[0][0],u=+Pe[1][0],a=+Pe[0][1],d=+Pe[1][1],j):[[i,a],[u,d]]},j.iterations=function(Pe){return arguments.length?(B=+Pe,j):B};function W({nodes:Pe,links:je}){for(const[Se,Ce]of Pe.entries())Ce.index=Se,Ce.sourceLinks=[],Ce.targetLinks=[];const Ie=new Map(Pe.map((Se,Ce)=>[y(Se,Ce,Pe),Se]));for(const[Se,Ce]of je.entries()){Ce.index=Se;let{source:ke,target:Ke}=Ce;typeof ke!="object"&&(ke=Ce.source=ZWe(Ie,ke)),typeof Ke!="object"&&(Ke=Ce.target=ZWe(Ie,Ke)),ke.sourceLinks.push(Ce),Ke.targetLinks.push(Ce)}if(A!=null)for(const{sourceLinks:Se,targetLinks:Ce}of Pe)Se.sort(A),Ce.sort(A)}function ee({nodes:Pe}){for(const je of Pe)je.value=je.fixedValue===void 0?Math.max(Twe(je.sourceLinks,Ewe),Twe(je.targetLinks,Ewe)):je.fixedValue}function ie({nodes:Pe}){const je=Pe.length;let Ie=new Set(Pe),Se=new Set,Ce=0;for(;Ie.size;){for(const ke of Ie){ke.depth=Ce;for(const{target:Ke}of ke.sourceLinks)Se.add(Ke)}if(++Ce>je)throw new Error("circular link");Ie=Se,Se=new Set}}function oe({nodes:Pe}){const je=Pe.length;let Ie=new Set(Pe),Se=new Set,Ce=0;for(;Ie.size;){for(const ke of Ie){ke.height=Ce;for(const{source:Ke}of ke.targetLinks)Se.add(Ke)}if(++Ce>je)throw new Error("circular link");Ie=Se,Se=new Set}}function be({nodes:Pe}){const je=WWe(Pe,Ce=>Ce.depth)+1,Ie=(u-i-p)/(je-1),Se=new Array(je);for(const Ce of Pe){const ke=Math.max(0,Math.min(je-1,Math.floor(E.call(null,Ce,je))));Ce.layer=ke,Ce.x0=i+ke*Ie,Ce.x1=Ce.x0+p,Se[ke]?Se[ke].push(Ce):Se[ke]=[Ce]}if(_)for(const Ce of Se)Ce.sort(_);return Se}function ge(Pe){const je=YWe(Pe,Ie=>(d-a-(Ie.length-1)*b)/Twe(Ie,Ewe));for(const Ie of Pe){let Se=a;for(const Ce of Ie){Ce.y0=Se,Ce.y1=Se+Ce.value*je,Se=Ce.y1+b;for(const ke of Ce.sourceLinks)ke.width=ke.value*je}Se=(d-Se+b)/(Ie.length+1);for(let Ce=0;CeIe.length)-1)),ge(je);for(let Ie=0;Ie0))continue;let pn=(zt/Ne-Ke.y0)*je;Ke.y0+=pn,Ke.y1+=pn,G(Ke)}_===void 0&&ke.sort(JJ),de(ke,Ie)}}function se(Pe,je,Ie){for(let Se=Pe.length,Ce=Se-2;Ce>=0;--Ce){const ke=Pe[Ce];for(const Ke of ke){let zt=0,Ne=0;for(const{target:Tt,value:Et}of Ke.sourceLinks){let Wt=Et*(Tt.layer-Ke.layer);zt+=Be(Ke,Tt)*Wt,Ne+=Wt}if(!(Ne>0))continue;let pn=(zt/Ne-Ke.y0)*je;Ke.y0+=pn,Ke.y1+=pn,G(Ke)}_===void 0&&ke.sort(JJ),de(ke,Ie)}}function de(Pe,je){const Ie=Pe.length>>1,Se=Pe[Ie];pe(Pe,Se.y0-b,Ie-1,je),X(Pe,Se.y1+b,Ie+1,je),pe(Pe,d,Pe.length-1,je),X(Pe,a,0,je)}function X(Pe,je,Ie,Se){for(;Ie1e-6&&(Ce.y0+=ke,Ce.y1+=ke),je=Ce.y1+b}}function pe(Pe,je,Ie,Se){for(;Ie>=0;--Ie){const Ce=Pe[Ie],ke=(Ce.y1-je)*Se;ke>1e-6&&(Ce.y0-=ke,Ce.y1-=ke),je=Ce.y0-b}}function G({sourceLinks:Pe,targetLinks:je}){if(A===void 0){for(const{source:{sourceLinks:Ie}}of je)Ie.sort(JWe);for(const{target:{targetLinks:Ie}}of Pe)Ie.sort(QWe)}}function xe(Pe){if(A===void 0)for(const{sourceLinks:je,targetLinks:Ie}of Pe)je.sort(JWe),Ie.sort(QWe)}function U(Pe,je){let Ie=Pe.y0-(Pe.sourceLinks.length-1)*b/2;for(const{target:Se,width:Ce}of Pe.sourceLinks){if(Se===je)break;Ie+=Ce+b}for(const{source:Se,width:Ce}of je.targetLinks){if(Se===Pe)break;Ie-=Ce}return Ie}function Be(Pe,je){let Ie=je.y0-(je.targetLinks.length-1)*b/2;for(const{source:Se,width:Ce}of je.targetLinks){if(Se===Pe)break;Ie+=Ce+b}for(const{target:Se,width:Ce}of Pe.sourceLinks){if(Se===je)break;Ie-=Ce}return Ie}return j}var Cwe=Math.PI,Swe=2*Cwe,oS=1e-6,dcn=Swe-oS;function _we(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function tYe(){return new _we}_we.prototype=tYe.prototype={constructor:_we,moveTo:function(i,a){this._+="M"+(this._x0=this._x1=+i)+","+(this._y0=this._y1=+a)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(i,a){this._+="L"+(this._x1=+i)+","+(this._y1=+a)},quadraticCurveTo:function(i,a,u,d){this._+="Q"+ +i+","+ +a+","+(this._x1=+u)+","+(this._y1=+d)},bezierCurveTo:function(i,a,u,d,p,v){this._+="C"+ +i+","+ +a+","+ +u+","+ +d+","+(this._x1=+p)+","+(this._y1=+v)},arcTo:function(i,a,u,d,p){i=+i,a=+a,u=+u,d=+d,p=+p;var v=this._x1,b=this._y1,y=u-i,E=d-a,_=v-i,A=b-a,P=_*_+A*A;if(p<0)throw new Error("negative radius: "+p);if(this._x1===null)this._+="M"+(this._x1=i)+","+(this._y1=a);else if(P>oS)if(!(Math.abs(A*y-E*_)>oS)||!p)this._+="L"+(this._x1=i)+","+(this._y1=a);else{var R=u-v,B=d-b,j=y*y+E*E,W=R*R+B*B,ee=Math.sqrt(j),ie=Math.sqrt(P),oe=p*Math.tan((Cwe-Math.acos((j+P-W)/(2*ee*ie)))/2),be=oe/ie,ge=oe/ee;Math.abs(be-1)>oS&&(this._+="L"+(i+be*_)+","+(a+be*A)),this._+="A"+p+","+p+",0,0,"+ +(A*R>_*B)+","+(this._x1=i+ge*y)+","+(this._y1=a+ge*E)}},arc:function(i,a,u,d,p,v){i=+i,a=+a,u=+u,v=!!v;var b=u*Math.cos(d),y=u*Math.sin(d),E=i+b,_=a+y,A=1^v,P=v?d-p:p-d;if(u<0)throw new Error("negative radius: "+u);this._x1===null?this._+="M"+E+","+_:(Math.abs(this._x1-E)>oS||Math.abs(this._y1-_)>oS)&&(this._+="L"+E+","+_),u&&(P<0&&(P=P%Swe+Swe),P>dcn?this._+="A"+u+","+u+",0,1,"+A+","+(i-b)+","+(a-y)+"A"+u+","+u+",0,1,"+A+","+(this._x1=E)+","+(this._y1=_):P>oS&&(this._+="A"+u+","+u+",0,"+ +(P>=Cwe)+","+A+","+(this._x1=i+u*Math.cos(p))+","+(this._y1=a+u*Math.sin(p))))},rect:function(i,a,u,d){this._+="M"+(this._x0=this._x1=+i)+","+(this._y0=this._y1=+a)+"h"+ +u+"v"+ +d+"h"+-u+"Z"},toString:function(){return this._}};function nYe(i){return function(){return i}}function gcn(i){return i[0]}function pcn(i){return i[1]}var bcn=Array.prototype.slice;function mcn(i){return i.source}function vcn(i){return i.target}function wcn(i){var a=mcn,u=vcn,d=gcn,p=pcn,v=null;function b(){var y,E=bcn.call(arguments),_=a.apply(this,E),A=u.apply(this,E);if(v||(v=y=tYe()),i(v,+d.apply(this,(E[0]=_,E)),+p.apply(this,E),+d.apply(this,(E[0]=A,E)),+p.apply(this,E)),y)return v=null,y+""||null}return b.source=function(y){return arguments.length?(a=y,b):a},b.target=function(y){return arguments.length?(u=y,b):u},b.x=function(y){return arguments.length?(d=typeof y=="function"?y:nYe(+y),b):d},b.y=function(y){return arguments.length?(p=typeof y=="function"?y:nYe(+y),b):p},b.context=function(y){return arguments.length?(v=y??null,b):v},b}function ycn(i,a,u,d,p){i.moveTo(a,u),i.bezierCurveTo(a=(a+d)/2,u,a,p,d,p)}function xcn(){return wcn(ycn)}function kcn(i){return[i.source.x1,i.y0]}function Tcn(i){return[i.target.x0,i.y1]}function Ecn(){return xcn().source(kcn).target(Tcn)}const rYe=class EBe{static next(a){return new EBe(a+ ++EBe.count)}constructor(a){this.id=a,this.href=`#${a}`}toString(){return"url("+this.href+")"}};rYe.count=0;let iYe=rYe;const Ccn={left:acn,right:ocn,center:ccn,justify:XWe},Scn={draw:function(i,a,u,d){const{securityLevel:p,sankey:v}=qt(),b=E$e.sankey;let y;p==="sandbox"&&(y=Dr("#i"+a));const E=Dr(p==="sandbox"?y.nodes()[0].contentDocument.body:"body"),_=p==="sandbox"?E.select(`[id="${a}"]`):Dr(`[id="${a}"]`),A=(v==null?void 0:v.width)??b.width,P=(v==null?void 0:v.height)??b.width,R=(v==null?void 0:v.useMaxWidth)??b.useMaxWidth,B=(v==null?void 0:v.nodeAlignment)??b.nodeAlignment,j=(v==null?void 0:v.prefix)??b.prefix,W=(v==null?void 0:v.suffix)??b.suffix,ee=(v==null?void 0:v.showValues)??b.showValues,ie=d.db.getGraph(),oe=Ccn[B],be=10;fcn().nodeId(pe=>pe.id).nodeWidth(be).nodePadding(10+(ee?15:0)).nodeAlign(oe).extent([[0,0],[A,P]])(ie);const ae=PF(sRe);_.append("g").attr("class","nodes").selectAll(".node").data(ie.nodes).join("g").attr("class","node").attr("id",pe=>(pe.uid=iYe.next("node-")).id).attr("transform",function(pe){return"translate("+pe.x0+","+pe.y0+")"}).attr("x",pe=>pe.x0).attr("y",pe=>pe.y0).append("rect").attr("height",pe=>pe.y1-pe.y0).attr("width",pe=>pe.x1-pe.x0).attr("fill",pe=>ae(pe.id));const ne=({id:pe,value:G})=>ee?`${pe} +${j}${Math.round(G*100)/100}${W}`:pe;_.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(ie.nodes).join("text").attr("x",pe=>pe.x0(pe.y1+pe.y0)/2).attr("dy",`${ee?"0":"0.35"}em`).attr("text-anchor",pe=>pe.x0(G.uid=iYe.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",G=>G.source.x1).attr("x2",G=>G.target.x0);pe.append("stop").attr("offset","0%").attr("stop-color",G=>ae(G.source.id)),pe.append("stop").attr("offset","100%").attr("stop-color",G=>ae(G.target.id))}let X;switch(de){case"gradient":X=pe=>pe.uid;break;case"source":X=pe=>ae(pe.source.id);break;case"target":X=pe=>ae(pe.target.id);break;default:X=de}se.append("path").attr("d",Ecn()).attr("stroke",X).attr("stroke-width",pe=>Math.max(1,pe.width)),x9(void 0,_,0,R)}},_cn=i=>i.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),Acn=WJ.parse.bind(WJ);WJ.parse=i=>Acn(_cn(i));const Lcn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:WJ,db:icn,renderer:Scn}},Symbol.toStringTag,{value:"Module"}));var Awe=function(){var i=function(be,ge,ae,ne){for(ae=ae||{},ne=be.length;ne--;ae[be[ne]]=ge);return ae},a=[1,7],u=[1,13],d=[1,14],p=[1,15],v=[1,19],b=[1,16],y=[1,17],E=[1,18],_=[8,30],A=[8,21,28,29,30,31,32,40,44,47],P=[1,23],R=[1,24],B=[8,15,16,21,28,29,30,31,32,40,44,47],j=[8,15,16,21,27,28,29,30,31,32,40,44,47],W=[1,49],ee={trace:function(){},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:function(ge,ae,ne,se,de,X,pe){var G=X.length-1;switch(de){case 4:se.getLogger().debug("Rule: separator (NL) ");break;case 5:se.getLogger().debug("Rule: separator (Space) ");break;case 6:se.getLogger().debug("Rule: separator (EOF) ");break;case 7:se.getLogger().debug("Rule: hierarchy: ",X[G-1]),se.setHierarchy(X[G-1]);break;case 8:se.getLogger().debug("Stop NL ");break;case 9:se.getLogger().debug("Stop EOF ");break;case 10:se.getLogger().debug("Stop NL2 ");break;case 11:se.getLogger().debug("Stop EOF2 ");break;case 12:se.getLogger().debug("Rule: statement: ",X[G]),typeof X[G].length=="number"?this.$=X[G]:this.$=[X[G]];break;case 13:se.getLogger().debug("Rule: statement #2: ",X[G-1]),this.$=[X[G-1]].concat(X[G]);break;case 14:se.getLogger().debug("Rule: link: ",X[G],ge),this.$={edgeTypeStr:X[G],label:""};break;case 15:se.getLogger().debug("Rule: LABEL link: ",X[G-3],X[G-1],X[G]),this.$={edgeTypeStr:X[G],label:X[G-1]};break;case 18:const xe=parseInt(X[G]),U=se.generateId();this.$={id:U,type:"space",label:"",width:xe,children:[]};break;case 23:se.getLogger().debug("Rule: (nodeStatement link node) ",X[G-2],X[G-1],X[G]," typestr: ",X[G-1].edgeTypeStr);const Be=se.edgeStrToEdgeData(X[G-1].edgeTypeStr);this.$=[{id:X[G-2].id,label:X[G-2].label,type:X[G-2].type,directions:X[G-2].directions},{id:X[G-2].id+"-"+X[G].id,start:X[G-2].id,end:X[G].id,label:X[G-1].label,type:"edge",directions:X[G].directions,arrowTypeEnd:Be,arrowTypeStart:"arrow_open"},{id:X[G].id,label:X[G].label,type:se.typeStr2Type(X[G].typeStr),directions:X[G].directions}];break;case 24:se.getLogger().debug("Rule: nodeStatement (abc88 node size) ",X[G-1],X[G]),this.$={id:X[G-1].id,label:X[G-1].label,type:se.typeStr2Type(X[G-1].typeStr),directions:X[G-1].directions,widthInColumns:parseInt(X[G],10)};break;case 25:se.getLogger().debug("Rule: nodeStatement (node) ",X[G]),this.$={id:X[G].id,label:X[G].label,type:se.typeStr2Type(X[G].typeStr),directions:X[G].directions,widthInColumns:1};break;case 26:se.getLogger().debug("APA123",this?this:"na"),se.getLogger().debug("COLUMNS: ",X[G]),this.$={type:"column-setting",columns:X[G]==="auto"?-1:parseInt(X[G])};break;case 27:se.getLogger().debug("Rule: id-block statement : ",X[G-2],X[G-1]),se.generateId(),this.$={...X[G-2],type:"composite",children:X[G-1]};break;case 28:se.getLogger().debug("Rule: blockStatement : ",X[G-2],X[G-1],X[G]);const Pe=se.generateId();this.$={id:Pe,type:"composite",label:"",children:X[G-1]};break;case 29:se.getLogger().debug("Rule: node (NODE_ID separator): ",X[G]),this.$={id:X[G]};break;case 30:se.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",X[G-1],X[G]),this.$={id:X[G-1],label:X[G].label,typeStr:X[G].typeStr,directions:X[G].directions};break;case 31:se.getLogger().debug("Rule: dirList: ",X[G]),this.$=[X[G]];break;case 32:se.getLogger().debug("Rule: dirList: ",X[G-1],X[G]),this.$=[X[G-1]].concat(X[G]);break;case 33:se.getLogger().debug("Rule: nodeShapeNLabel: ",X[G-2],X[G-1],X[G]),this.$={typeStr:X[G-2]+X[G],label:X[G-1]};break;case 34:se.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",X[G-3],X[G-2]," #3:",X[G-1],X[G]),this.$={typeStr:X[G-3]+X[G],label:X[G-2],directions:X[G-1]};break;case 35:case 36:this.$={type:"classDef",id:X[G-1].trim(),css:X[G].trim()};break;case 37:this.$={type:"applyClass",id:X[G-1].trim(),styleClass:X[G].trim()};break;case 38:this.$={type:"applyStyles",id:X[G-1].trim(),stylesStr:X[G].trim()};break}},table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:u,29:d,31:p,32:v,40:b,44:y,47:E},{8:[1,20]},i(_,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:a,28:u,29:d,31:p,32:v,40:b,44:y,47:E}),i(A,[2,16],{14:22,15:P,16:R}),i(A,[2,17]),i(A,[2,18]),i(A,[2,19]),i(A,[2,20]),i(A,[2,21]),i(A,[2,22]),i(B,[2,25],{27:[1,25]}),i(A,[2,26]),{19:26,26:12,32:v},{11:27,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:u,29:d,31:p,32:v,40:b,44:y,47:E},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},i(j,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},i(_,[2,13]),{26:35,32:v},{32:[2,14]},{17:[1,36]},i(B,[2,24]),{11:37,13:4,14:22,15:P,16:R,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:u,29:d,31:p,32:v,40:b,44:y,47:E},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},i(j,[2,30]),{18:[1,43]},{18:[1,44]},i(B,[2,23]),{18:[1,45]},{30:[1,46]},i(A,[2,28]),i(A,[2,35]),i(A,[2,36]),i(A,[2,37]),i(A,[2,38]),{37:[1,47]},{34:48,35:W},{15:[1,50]},i(A,[2,27]),i(j,[2,33]),{39:[1,51]},{34:52,35:W,39:[2,31]},{32:[2,15]},i(j,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:function(ge,ae){if(ae.recoverable)this.trace(ge);else{var ne=new Error(ge);throw ne.hash=ae,ne}},parse:function(ge){var ae=this,ne=[0],se=[],de=[null],X=[],pe=this.table,G="",xe=0,U=0,Be=2,Pe=1,je=X.slice.call(arguments,1),Ie=Object.create(this.lexer),Se={yy:{}};for(var Ce in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ce)&&(Se.yy[Ce]=this.yy[Ce]);Ie.setInput(ge,Se.yy),Se.yy.lexer=Ie,Se.yy.parser=this,typeof Ie.yylloc>"u"&&(Ie.yylloc={});var ke=Ie.yylloc;X.push(ke);var Ke=Ie.options&&Ie.options.ranges;typeof Se.yy.parseError=="function"?this.parseError=Se.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function zt(){var kt;return kt=se.pop()||Ie.lex()||Pe,typeof kt!="number"&&(kt instanceof Array&&(se=kt,kt=se.pop()),kt=ae.symbols_[kt]||kt),kt}for(var Ne,pn,Tt,Et,Wt={},un,yt,Bt,Ze;;){if(pn=ne[ne.length-1],this.defaultActions[pn]?Tt=this.defaultActions[pn]:((Ne===null||typeof Ne>"u")&&(Ne=zt()),Tt=pe[pn]&&pe[pn][Ne]),typeof Tt>"u"||!Tt.length||!Tt[0]){var Dt="";Ze=[];for(un in pe[pn])this.terminals_[un]&&un>Be&&Ze.push("'"+this.terminals_[un]+"'");Ie.showPosition?Dt="Parse error on line "+(xe+1)+`: +`+Ie.showPosition()+` +Expecting `+Ze.join(", ")+", got '"+(this.terminals_[Ne]||Ne)+"'":Dt="Parse error on line "+(xe+1)+": Unexpected "+(Ne==Pe?"end of input":"'"+(this.terminals_[Ne]||Ne)+"'"),this.parseError(Dt,{text:Ie.match,token:this.terminals_[Ne]||Ne,line:Ie.yylineno,loc:ke,expected:Ze})}if(Tt[0]instanceof Array&&Tt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+pn+", token: "+Ne);switch(Tt[0]){case 1:ne.push(Ne),de.push(Ie.yytext),X.push(Ie.yylloc),ne.push(Tt[1]),Ne=null,U=Ie.yyleng,G=Ie.yytext,xe=Ie.yylineno,ke=Ie.yylloc;break;case 2:if(yt=this.productions_[Tt[1]][1],Wt.$=de[de.length-yt],Wt._$={first_line:X[X.length-(yt||1)].first_line,last_line:X[X.length-1].last_line,first_column:X[X.length-(yt||1)].first_column,last_column:X[X.length-1].last_column},Ke&&(Wt._$.range=[X[X.length-(yt||1)].range[0],X[X.length-1].range[1]]),Et=this.performAction.apply(Wt,[G,U,xe,Se.yy,Tt[1],de,X].concat(je)),typeof Et<"u")return Et;yt&&(ne=ne.slice(0,-1*yt*2),de=de.slice(0,-1*yt),X=X.slice(0,-1*yt)),ne.push(this.productions_[Tt[1]][0]),de.push(Wt.$),X.push(Wt._$),Bt=pe[ne[ne.length-2]][ne[ne.length-1]],ne.push(Bt);break;case 3:return!0}}return!0}},ie=function(){var be={EOF:1,parseError:function(ae,ne){if(this.yy.parser)this.yy.parser.parseError(ae,ne);else throw new Error(ae)},setInput:function(ge,ae){return this.yy=ae||this.yy||{},this._input=ge,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ge=this._input[0];this.yytext+=ge,this.yyleng++,this.offset++,this.match+=ge,this.matched+=ge;var ae=ge.match(/(?:\r\n?|\n).*/g);return ae?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ge},unput:function(ge){var ae=ge.length,ne=ge.split(/(?:\r\n?|\n)/g);this._input=ge+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ae),this.offset-=ae;var se=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ne.length-1&&(this.yylineno-=ne.length-1);var de=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ne?(ne.length===se.length?this.yylloc.first_column:0)+se[se.length-ne.length].length-ne[0].length:this.yylloc.first_column-ae},this.options.ranges&&(this.yylloc.range=[de[0],de[0]+this.yyleng-ae]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ge){this.unput(this.match.slice(ge))},pastInput:function(){var ge=this.matched.substr(0,this.matched.length-this.match.length);return(ge.length>20?"...":"")+ge.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var ge=this.match;return ge.length<20&&(ge+=this._input.substr(0,20-ge.length)),(ge.substr(0,20)+(ge.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var ge=this.pastInput(),ae=new Array(ge.length+1).join("-");return ge+this.upcomingInput()+` +`+ae+"^"},test_match:function(ge,ae){var ne,se,de;if(this.options.backtrack_lexer&&(de={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(de.yylloc.range=this.yylloc.range.slice(0))),se=ge[0].match(/(?:\r\n?|\n).*/g),se&&(this.yylineno+=se.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:se?se[se.length-1].length-se[se.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ge[0].length},this.yytext+=ge[0],this.match+=ge[0],this.matches=ge,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(ge[0].length),this.matched+=ge[0],ne=this.performAction.call(this,this.yy,this,ae,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ne)return ne;if(this._backtrack){for(var X in de)this[X]=de[X];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ge,ae,ne,se;this._more||(this.yytext="",this.match="");for(var de=this._currentRules(),X=0;Xae[0].length)){if(ae=ne,se=X,this.options.backtrack_lexer){if(ge=this.test_match(ne,de[X]),ge!==!1)return ge;if(this._backtrack){ae=!1;continue}else return!1}else if(!this.options.flex)break}return ae?(ge=this.test_match(ae,de[se]),ge!==!1?ge:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ae=this.next();return ae||this.lex()},begin:function(ae){this.conditionStack.push(ae)},popState:function(){var ae=this.conditionStack.length-1;return ae>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ae){return ae=this.conditionStack.length-1-Math.abs(ae||0),ae>=0?this.conditionStack[ae]:"INITIAL"},pushState:function(ae){this.begin(ae)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(ae,ne,se,de){switch(se){case 0:return 10;case 1:return ae.getLogger().debug("Found space-block"),31;case 2:return ae.getLogger().debug("Found nl-block"),31;case 3:return ae.getLogger().debug("Found space-block"),29;case 4:ae.getLogger().debug(".",ne.yytext);break;case 5:ae.getLogger().debug("_",ne.yytext);break;case 6:return 5;case 7:return ne.yytext=-1,28;case 8:return ne.yytext=ne.yytext.replace(/columns\s+/,""),ae.getLogger().debug("COLUMNS (LEX)",ne.yytext),28;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:ae.getLogger().debug("LEX: POPPING STR:",ne.yytext),this.popState();break;case 14:return ae.getLogger().debug("LEX: STR end:",ne.yytext),"STR";case 15:return ne.yytext=ne.yytext.replace(/space\:/,""),ae.getLogger().debug("SPACE NUM (LEX)",ne.yytext),21;case 16:return ne.yytext="1",ae.getLogger().debug("COLUMNS (LEX)",ne.yytext),21;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 22:return this.popState(),this.pushState("CLASSDEFID"),41;case 23:return this.popState(),42;case 24:return this.pushState("CLASS"),44;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;case 26:return this.popState(),46;case 27:return this.pushState("STYLE_STMNT"),47;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;case 29:return this.popState(),49;case 30:return this.pushState("acc_title"),"acc_title";case 31:return this.popState(),"acc_title_value";case 32:return this.pushState("acc_descr"),"acc_descr";case 33:return this.popState(),"acc_descr_value";case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 40:return this.popState(),ae.getLogger().debug("Lex: ))"),"NODE_DEND";case 41:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 43:return this.popState(),ae.getLogger().debug("Lex: (-"),"NODE_DEND";case 44:return this.popState(),ae.getLogger().debug("Lex: -)"),"NODE_DEND";case 45:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 46:return this.popState(),ae.getLogger().debug("Lex: ]]"),"NODE_DEND";case 47:return this.popState(),ae.getLogger().debug("Lex: ("),"NODE_DEND";case 48:return this.popState(),ae.getLogger().debug("Lex: ])"),"NODE_DEND";case 49:return this.popState(),ae.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),ae.getLogger().debug("Lex: /]"),"NODE_DEND";case 51:return this.popState(),ae.getLogger().debug("Lex: )]"),"NODE_DEND";case 52:return this.popState(),ae.getLogger().debug("Lex: )"),"NODE_DEND";case 53:return this.popState(),ae.getLogger().debug("Lex: ]>"),"NODE_DEND";case 54:return this.popState(),ae.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return ae.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return ae.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return ae.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return ae.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 60:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 61:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 62:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 63:return ae.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return ae.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 65:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 66:return this.pushState("NODE"),36;case 67:return this.pushState("NODE"),36;case 68:return this.pushState("NODE"),36;case 69:return this.pushState("NODE"),36;case 70:return this.pushState("NODE"),36;case 71:return this.pushState("NODE"),36;case 72:return this.pushState("NODE"),36;case 73:return ae.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),ae.getLogger().debug("LEX ARR START"),38;case 75:return ae.getLogger().debug("Lex: NODE_ID",ne.yytext),32;case 76:return ae.getLogger().debug("Lex: EOF",ne.yytext),8;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:ae.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:ae.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return ae.getLogger().debug("LEX: NODE_DESCR:",ne.yytext),"NODE_DESCR";case 84:ae.getLogger().debug("LEX POPPING"),this.popState();break;case 85:ae.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (right): dir:",ne.yytext),"DIR";case 87:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (left):",ne.yytext),"DIR";case 88:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (x):",ne.yytext),"DIR";case 89:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (y):",ne.yytext),"DIR";case 90:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (up):",ne.yytext),"DIR";case 91:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (down):",ne.yytext),"DIR";case 92:return ne.yytext="]>",ae.getLogger().debug("Lex (ARROW_DIR end):",ne.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return ae.getLogger().debug("Lex: LINK","#"+ne.yytext+"#"),15;case 94:return ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 95:return ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 96:return ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 97:return ae.getLogger().debug("Lex: START_LINK",ne.yytext),this.pushState("LLABEL"),16;case 98:return ae.getLogger().debug("Lex: START_LINK",ne.yytext),this.pushState("LLABEL"),16;case 99:return ae.getLogger().debug("Lex: START_LINK",ne.yytext),this.pushState("LLABEL"),16;case 100:this.pushState("md_string");break;case 101:return ae.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),ae.getLogger().debug("Lex: LINK","#"+ne.yytext+"#"),15;case 103:return this.popState(),ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 104:return this.popState(),ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 105:return ae.getLogger().debug("Lex: COLON",ne.yytext),ne.yytext=ne.yytext.slice(1),27}},rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return be}();ee.lexer=ie;function oe(){this.yy={}}return oe.prototype=ee,ee.Parser=oe,new oe}();Awe.parser=Awe;const Mcn=Awe;let eb={},Lwe=[],hj={};const sYe="color",aYe="fill",Dcn="bgFill",oYe=",",Icn=qt();let fj={};const Ocn=i=>oi.sanitizeText(i,Icn),Ncn=function(i,a=""){fj[i]===void 0&&(fj[i]={id:i,styles:[],textStyles:[]});const u=fj[i];a!=null&&a.split(oYe).forEach(d=>{const p=d.replace(/([^;]*);/,"$1").trim();if(d.match(sYe)){const b=p.replace(aYe,Dcn).replace(sYe,aYe);u.textStyles.push(b)}u.styles.push(p)})},Pcn=function(i,a=""){const u=eb[i];a!=null&&(u.styles=a.split(oYe))},Bcn=function(i,a){i.split(",").forEach(function(u){let d=eb[u];if(d===void 0){const p=u.trim();eb[p]={id:p,type:"na",children:[]},d=eb[p]}d.classes||(d.classes=[]),d.classes.push(a)})},cYe=(i,a)=>{const u=i.flat(),d=[];for(const p of u){if(p.label&&(p.label=Ocn(p.label)),p.type==="classDef"){Ncn(p.id,p.css);continue}if(p.type==="applyClass"){Bcn(p.id,(p==null?void 0:p.styleClass)||"");continue}if(p.type==="applyStyles"){p!=null&&p.stylesStr&&Pcn(p.id,p==null?void 0:p.stylesStr);continue}if(p.type==="column-setting")a.columns=p.columns||-1;else if(p.type==="edge")hj[p.id]?hj[p.id]++:hj[p.id]=1,p.id=hj[p.id]+"-"+p.id,Lwe.push(p);else{p.label||(p.type==="composite"?p.label="":p.label=p.id);const v=!eb[p.id];if(v?eb[p.id]=p:(p.type!=="na"&&(eb[p.id].type=p.type),p.label!==p.id&&(eb[p.id].label=p.label)),p.children&&cYe(p.children,p),p.type==="space"){const b=p.width||1;for(let y=0;y{Xe.debug("Clear called"),Rg(),dj={id:"root",type:"composite",children:[],columns:-1},eb={root:dj},Mwe=[],fj={},Lwe=[],hj={}};function Rcn(i){switch(Xe.debug("typeStr2Type",i),i){case"[]":return"square";case"()":return Xe.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function jcn(i){switch(Xe.debug("typeStr2Type",i),i){case"==":return"thick";default:return"normal"}}function $cn(i){switch(i.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}let uYe=0;const zcn={getConfig:()=>mh().block,typeStr2Type:Rcn,edgeTypeStr2Type:jcn,edgeStrToEdgeData:$cn,getLogger:()=>console,getBlocksFlat:()=>[...Object.values(eb)],getBlocks:()=>Mwe||[],getEdges:()=>Lwe,setHierarchy:i=>{dj.children=i,cYe(i,dj),Mwe=dj.children},getBlock:i=>eb[i],setBlock:i=>{eb[i.id]=i},getColumns:i=>{const a=eb[i];return a?a.columns?a.columns:a.children?a.children.length:-1:-1},getClasses:function(){return fj},clear:Fcn,generateId:()=>(uYe++,"id-"+Math.random().toString(36).substr(2,12)+"-"+uYe)},ZJ=(i,a)=>{const u=XRe,d=u(i,"r"),p=u(i,"g"),v=u(i,"b");return _C(d,p,v,a)},qcn=i=>`.label { + font-family: ${i.fontFamily}; + color: ${i.nodeTextColor||i.textColor}; + } + .cluster-label text { + fill: ${i.titleColor}; + } + .cluster-label span,p { + color: ${i.titleColor}; + } + + + + .label text,span,p { + fill: ${i.nodeTextColor||i.textColor}; + color: ${i.nodeTextColor||i.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${i.mainBkg}; + stroke: ${i.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: ${i.arrowheadColor}; + } + + .edgePath .path { + stroke: ${i.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${i.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${i.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${i.edgeLabelBackground}; + fill: ${i.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${ZJ(i.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${ZJ(i.mainBkg,.5)}; + fill: ${ZJ(i.clusterBkg,.5)}; + stroke: ${ZJ(i.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: ${i.titleColor}; + } + + .cluster span,p { + color: ${i.titleColor}; + } + /* .cluster div { + color: ${i.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${i.fontFamily}; + font-size: 12px; + background: ${i.tertiaryColor}; + border: 1px solid ${i.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; + } +`;function lYe(i,a,u=!1){var R,B,j;const d=i;let p="default";(((R=d==null?void 0:d.classes)==null?void 0:R.length)||0)>0&&(p=((d==null?void 0:d.classes)||[]).join(" ")),p=p+" flowchart-label";let v=0,b="",y;switch(d.type){case"round":v=5,b="rect";break;case"composite":v=0,b="composite",y=0;break;case"square":b="rect";break;case"diamond":b="question";break;case"hexagon":b="hexagon";break;case"block_arrow":b="block_arrow";break;case"odd":b="rect_left_inv_arrow";break;case"lean_right":b="lean_right";break;case"lean_left":b="lean_left";break;case"trapezoid":b="trapezoid";break;case"inv_trapezoid":b="inv_trapezoid";break;case"rect_left_inv_arrow":b="rect_left_inv_arrow";break;case"circle":b="circle";break;case"ellipse":b="ellipse";break;case"stadium":b="stadium";break;case"subroutine":b="subroutine";break;case"cylinder":b="cylinder";break;case"group":b="rect";break;case"doublecircle":b="doublecircle";break;default:b="rect"}const E=gm((d==null?void 0:d.styles)||[]),_=d.label,A=d.size||{width:0,height:0,x:0,y:0};return{labelStyle:E.labelStyle,shape:b,labelText:_,rx:v,ry:v,class:p,style:E.style,id:d.id,directions:d.directions,width:A.width,height:A.height,x:A.x,y:A.y,positioned:u,intersect:void 0,type:d.type,padding:y??(((j=(B=mh())==null?void 0:B.block)==null?void 0:j.padding)||0)}}async function Hcn(i,a,u){const d=lYe(a,u,!1);if(d.type==="group")return;const p=await pJ(i,d),v=p.node().getBBox(),b=u.getBlock(d.id);b.size={width:v.width,height:v.height,x:0,y:0,node:p},u.setBlock(b),p.remove()}async function Ucn(i,a,u){const d=lYe(a,u,!0);u.getBlock(d.id).type!=="space"&&(await pJ(i,d),a.intersect=d==null?void 0:d.intersect,ive(d))}async function Dwe(i,a,u,d){for(const p of a)await d(i,p,u),p.children&&await Dwe(i,p.children,u,d)}async function Vcn(i,a,u){await Dwe(i,a,u,Hcn)}async function Gcn(i,a,u){await Dwe(i,a,u,Ucn)}async function Kcn(i,a,u,d,p){const v=new R0({multigraph:!0,compound:!0});v.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const b of u)b.size&&v.setNode(b.id,{width:b.size.width,height:b.size.height,intersect:b.intersect});for(const b of a)if(b.start&&b.end){const y=d.getBlock(b.start),E=d.getBlock(b.end);if(y!=null&&y.size&&(E!=null&&E.size)){const _=y.size,A=E.size,P=[{x:_.x,y:_.y},{x:_.x+(A.x-_.x)/2,y:_.y+(A.y-_.y)/2},{x:A.x,y:A.y}];await cGe(i,{v:b.start,w:b.end,name:b.id},{...b,arrowTypeEnd:b.arrowTypeEnd,arrowTypeStart:b.arrowTypeStart,points:P,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",v,p),b.label&&(await sve(i,{...b,label:b.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:b.arrowTypeEnd,arrowTypeStart:b.arrowTypeStart,points:P,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),await aGe({...b,x:P[1].x,y:P[1].y},{originalPath:P}))}}}const Jf=((gYe=(dYe=qt())==null?void 0:dYe.block)==null?void 0:gYe.padding)||8;function Wcn(i,a){if(i===0||!Number.isInteger(i))throw new Error("Columns must be an integer !== 0.");if(a<0||!Number.isInteger(a))throw new Error("Position must be a non-negative integer."+a);if(i<0)return{px:a,py:0};if(i===1)return{px:0,py:a};const u=a%i,d=Math.floor(a/i);return{px:u,py:d}}const Ycn=i=>{let a=0,u=0;for(const d of i.children){const{width:p,height:v,x:b,y}=d.size||{width:0,height:0,x:0,y:0};Xe.debug("getMaxChildSize abc95 child:",d.id,"width:",p,"height:",v,"x:",b,"y:",y,d.type),d.type!=="space"&&(p>a&&(a=p/(i.widthInColumns||1)),v>u&&(u=v))}return{width:a,height:u}};function Iwe(i,a,u=0,d=0){var b,y,E,_,A,P,R,B,j,W,ee;Xe.debug("setBlockSizes abc95 (start)",i.id,(b=i==null?void 0:i.size)==null?void 0:b.x,"block width =",i==null?void 0:i.size,"sieblingWidth",u),(y=i==null?void 0:i.size)!=null&&y.width||(i.size={width:u,height:d,x:0,y:0});let p=0,v=0;if(((E=i.children)==null?void 0:E.length)>0){for(const de of i.children)Iwe(de,a);const ie=Ycn(i);p=ie.width,v=ie.height,Xe.debug("setBlockSizes abc95 maxWidth of",i.id,":s children is ",p,v);for(const de of i.children)de.size&&(Xe.debug(`abc95 Setting size of children of ${i.id} id=${de.id} ${p} ${v} ${de.size}`),de.size.width=p*(de.widthInColumns||1)+Jf*((de.widthInColumns||1)-1),de.size.height=v,de.size.x=0,de.size.y=0,Xe.debug(`abc95 updating size of ${i.id} children child:${de.id} maxWidth:${p} maxHeight:${v}`));for(const de of i.children)Iwe(de,a,p,v);const oe=i.columns||-1;let be=0;for(const de of i.children)be+=de.widthInColumns||1;let ge=i.children.length;oe>0&&oe0?Math.min(i.children.length,oe):i.children.length;if(de>0){const X=(ne-de*Jf-Jf)/de;Xe.debug("abc95 (growing to fit) width",i.id,ne,(R=i.size)==null?void 0:R.width,X);for(const pe of i.children)pe.size&&(pe.size.width=X)}}i.size={width:ne,height:se,x:0,y:0}}Xe.debug("setBlockSizes abc94 (done)",i.id,(B=i==null?void 0:i.size)==null?void 0:B.x,(j=i==null?void 0:i.size)==null?void 0:j.width,(W=i==null?void 0:i.size)==null?void 0:W.y,(ee=i==null?void 0:i.size)==null?void 0:ee.height)}function hYe(i,a){var d,p,v,b,y,E,_,A,P,R,B,j,W,ee,ie,oe,be;Xe.debug(`abc85 layout blocks (=>layoutBlocks) ${i.id} x: ${(d=i==null?void 0:i.size)==null?void 0:d.x} y: ${(p=i==null?void 0:i.size)==null?void 0:p.y} width: ${(v=i==null?void 0:i.size)==null?void 0:v.width}`);const u=i.columns||-1;if(Xe.debug("layoutBlocks columns abc95",i.id,"=>",u,i),i.children&&i.children.length>0){const ge=((y=(b=i==null?void 0:i.children[0])==null?void 0:b.size)==null?void 0:y.width)||0,ae=i.children.length*ge+(i.children.length-1)*Jf;Xe.debug("widthOfChildren 88",ae,"posX");let ne=0;Xe.debug("abc91 block?.size?.x",i.id,(E=i==null?void 0:i.size)==null?void 0:E.x);let se=(_=i==null?void 0:i.size)!=null&&_.x?((A=i==null?void 0:i.size)==null?void 0:A.x)+(-((P=i==null?void 0:i.size)==null?void 0:P.width)/2||0):-Jf,de=0;for(const X of i.children){const pe=i;if(!X.size)continue;const{width:G,height:xe}=X.size,{px:U,py:Be}=Wcn(u,ne);if(Be!=de&&(de=Be,se=(R=i==null?void 0:i.size)!=null&&R.x?((B=i==null?void 0:i.size)==null?void 0:B.x)+(-((j=i==null?void 0:i.size)==null?void 0:j.width)/2||0):-Jf,Xe.debug("New row in layout for block",i.id," and child ",X.id,de)),Xe.debug(`abc89 layout blocks (child) id: ${X.id} Pos: ${ne} (px, py) ${U},${Be} (${(W=pe==null?void 0:pe.size)==null?void 0:W.x},${(ee=pe==null?void 0:pe.size)==null?void 0:ee.y}) parent: ${pe.id} width: ${G}${Jf}`),pe.size){const Pe=G/2;X.size.x=se+Jf+Pe,Xe.debug(`abc91 layout blocks (calc) px, pyid:${X.id} startingPos=X${se} new startingPosX${X.size.x} ${Pe} padding=${Jf} width=${G} halfWidth=${Pe} => x:${X.size.x} y:${X.size.y} ${X.widthInColumns} (width * (child?.w || 1)) / 2 ${G*((X==null?void 0:X.widthInColumns)||1)/2}`),se=X.size.x+Pe,X.size.y=pe.size.y-pe.size.height/2+Be*(xe+Jf)+xe/2+Jf,Xe.debug(`abc88 layout blocks (calc) px, pyid:${X.id}startingPosX${se}${Jf}${Pe}=>x:${X.size.x}y:${X.size.y}${X.widthInColumns}(width * (child?.w || 1)) / 2${G*((X==null?void 0:X.widthInColumns)||1)/2}`)}X.children&&hYe(X),ne+=(X==null?void 0:X.widthInColumns)||1,Xe.debug("abc88 columnsPos",X,ne)}}Xe.debug(`layout blocks (<==layoutBlocks) ${i.id} x: ${(ie=i==null?void 0:i.size)==null?void 0:ie.x} y: ${(oe=i==null?void 0:i.size)==null?void 0:oe.y} width: ${(be=i==null?void 0:i.size)==null?void 0:be.width}`)}function fYe(i,{minX:a,minY:u,maxX:d,maxY:p}={minX:0,minY:0,maxX:0,maxY:0}){if(i.size&&i.id!=="root"){const{x:v,y:b,width:y,height:E}=i.size;v-y/2d&&(d=v+y/2),b+E/2>p&&(p=b+E/2)}if(i.children)for(const v of i.children)({minX:a,minY:u,maxX:d,maxY:p}=fYe(v,{minX:a,minY:u,maxX:d,maxY:p}));return{minX:a,minY:u,maxX:d,maxY:p}}function Xcn(i){const a=i.getBlock("root");if(!a)return;Iwe(a,i,0,0),hYe(a),Xe.debug("getBlocks",JSON.stringify(a,null,2));const{minX:u,minY:d,maxX:p,maxY:v}=fYe(a),b=v-d,y=p-u;return{x:u,y:d,width:y,height:b}}const Qcn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Mcn,db:zcn,renderer:{draw:async function(i,a,u,d){const{securityLevel:p,block:v}=mh(),b=d.db;let y;p==="sandbox"&&(y=Dr("#i"+a));const E=Dr(p==="sandbox"?y.nodes()[0].contentDocument.body:"body"),_=p==="sandbox"?E.select(`[id="${a}"]`):Dr(`[id="${a}"]`);Ume(_,["point","circle","cross"],d.type,a);const P=b.getBlocks(),R=b.getBlocksFlat(),B=b.getEdges(),j=_.insert("g").attr("class","block");await Vcn(j,P,b);const W=Xcn(b);if(await Gcn(j,P,b),await Kcn(j,B,R,b,a),W){const ee=W,ie=Math.max(1,Math.round(.125*(ee.width/ee.height))),oe=ee.height+ie+10,be=ee.width+10,{useMaxWidth:ge}=v;Fg(_,oe,be,!!ge),Xe.debug("Here Bounds",W,ee),_.attr("viewBox",`${ee.x-5} ${ee.y-5} ${ee.width+10} ${ee.height+10}`)}PF(sRe)},getClasses:function(i,a){return a.db.getClasses()}},styles:qcn}},Symbol.toStringTag,{value:"Module"}));return bm}); diff --git a/content/_index.md b/content/_index.md index 9dea0ac..a87f112 100644 --- a/content/_index.md +++ b/content/_index.md @@ -2,14 +2,14 @@ title: FuKun layout: hextra-home --- -{{< hextra/hero-subtitle >}} +{{< hextra-hero-subtitle >}} Fukun.Net -{{< /hextra/hero-subtitle >}} +{{< /hextra-hero-subtitle >}} -{{< hextra/hero-headline >}} +{{< hextra-hero-headline >}} 晴耕雨读 心灯不夜 -{{< /hextra/hero-headline >}} +{{< /hextra-hero-headline >}} -{{< hextra/hero-subtitle >}} +{{< hextra-hero-subtitle >}} 一周更新两次,让脑袋泡泡冰浴 -{{< /hextra/hero-subtitle >}} +{{< /hextra-hero-subtitle >}} diff --git a/content/about/_index.md b/content/about/_index.md index f09755f..387e010 100644 --- a/content/about/_index.md +++ b/content/about/_index.md @@ -1,23 +1,31 @@ --- --- -{{< hextra/hero-subtitle >}} +{{< hextra-hero-subtitle >}} Fukun.Net/about -{{< /hextra/hero-subtitle >}} +{{< /hextra-hero-subtitle >}} 我是傅堃。 -个人开发者,央企TL,新晋奶爸。当然大部分时间精力贡献给了体制内职业发展,IT运维智能化、营业计费系统建设、大规模IT资源池安全能力建设、企业身份账号权限治理,挺有意思的。 +央企TL,个人开发者,新晋奶爸。当然大部分时间精力还是贡献给了体制内的职业发展,干过IT运维智能化、营业计费系统建设、大规模IT资源池安全能力建设、企业身份账号权限治理,挺有意思的。 -这个站点与大家探讨的重点不是道与术,更多是去探索**自我**的存在。人其实很难承认被所谓靠努力成为的角色所定义,你我在本质上与小时候有多大区别呢。如果你也想在日常的繁杂中找一个属于自我的空间,挑战落地一些奇思妙想,或是研究一些稀奇古怪,这里的文章会给你启发。 +这个站点主要讨论的不是道与术,是本应凌驾于身份角色之上的**自我**。总觉得人其实很难承认自己被所谓靠自己努力成为的身份角色定义,从出生起人的单一身份很难未维持超过5年,情绪有所触动时与五岁时其实没多大区别。 -由于公司管理制度,我不在业余取酬,不回复商务合作邮件。 +如果你也想在日常的繁杂中找一个属于自我的空间,挑战落地一些奇思妙想,或是研究一些稀奇古怪,这里的文章会给你启发。 +由于公司管理制度,我不可以参与盈利项目,所以无法接洽商务合作。 + + +驾驶教练机拉杆起飞的那一刻/宇治城的小溪边被斜阳刺痛双眼的那一刻/在广汕国道上骑自行车听到路旁大爷大喊加油的那一刻/我清楚的感受到我是我自己 Hey, I'm FuKun. -Solo developer. IT Team-leader at a state-owned enterprise. New dad. Most of my time and energy goes to my career — AIOPS, CRM, IAM, Security,Identity governance. It's been genuinely interesting. +Solo developer. Ex-product manager. China state-owned enterprise manager. New dad. Most of my waking hours go to my career — I've done IT operations automation at scale, built billing systems handling massive transaction volumes, architected security for enormous resource pools, and untangled enterprise identity governance. It's been fun. -This site isn't only about methodology or technique. It's about exploring the **SOUL** that exists beneath all the roles. It's hard to admit how much we're defined by what we've fought to become — honestly, are you really that different from who you were as a kid? If you're also trying to carve out space for your own self amid the chaos, chasing down wild ideas or researching obscure things, the writing here might spark something. +This site isn't about methodology or technique. It's about the **self** that should sit above all the roles we play. I think people struggle to admit how much their identity gets defined by their roles — and yet, no identity you've held has lasted more than five years since birth. When emotions hit, you still react the same way you did at five. -Due to company policy, I don't take paid work on the side and don't reply to business collaboration emails. +If you're trying to carve out space for your own self amid the chaos — chasing down a wild idea, researching something obscure, building something that's just yours — the writing here might spark something. + +A note on logistics: due to company policy, I can't participate in for-profit projects, so I don't take on business collaborations. + +The moment when I pulled back the Cessena's stick. The moment setting sun stinged my eyes by a stream in Uji.The moment an old sir shouted "COME ON!" as I was crossing South-China by bike. Without question, that I was aware WHOIAM. diff --git a/content/blog/_index.md b/content/blog/_index.md index 3d16ff2..a020a33 100644 --- a/content/blog/_index.md +++ b/content/blog/_index.md @@ -1,6 +1,6 @@ --- linkTitle: FuKun.Net/Blog --- -{{< hextra/hero-subtitle >}} +{{< hextra-hero-subtitle >}} Fukun.Net/blog -{{< /hextra/hero-subtitle >}} +{{< /hextra-hero-subtitle >}} diff --git a/content/blog/ai-assistant-first-week.md b/content/blog/ai-assistant-first-week.md new file mode 100644 index 0000000..271df41 --- /dev/null +++ b/content/blog/ai-assistant-first-week.md @@ -0,0 +1,116 @@ +--- +title: "善假说" +date: 2026-05-16T01:30:00+08:00 +draft: false +poet: | + 君子生非异也, + 善假于物也。 + ——《荀子·劝学》 +description: "近以AI智能体为幕僚,五日亲历,颇有所得。录之以证荀子之言。" +tags: + - AI + - 效率 + - 杂文 +--- + +{{< figure src="/images/fusheng.jpg" caption="杜堇《伏生授经图》,明,大都会艺术博物馆藏" alt="杜堇《伏生授经图》" >}} + +荀子说,君子生非异也,善假于物也。我以前读完也就过了,没细想。 + +AI 这两年用得不少,ChatGPT、Claude、DeepSeek 都试过。问问题、写代码、润文字,确实方便。但模式始终是单向的——它等你问,你问它答,问完结束。 + +直到我用上一个能自己干活的智能体。它叫"爪子",跑在腾讯云一台轻量服务器上,4 核 4G,配置不高。搭起来很简单:在服务器上装了一个叫 OpenClaw 的智能体框架,绑好微信,配上 Todoist 和 Git 的 API 密钥,就能远程使唤了。这东西驻扎在服务器上,能直接执行 Shell 命令、读写文件、操作 Git 仓库、浏览网页。从有想法到跑起来,花了半晚上。 + +## 役物和任人 + +同样是 AI,心态不同,用法天差地别。 + +**役物**——问一句答一句,答错了你纠,纠完再问。你是指挥,还得盯着每一步。 + +**任人**——说清楚方向,交给它去做。做完验收就行,中间过程不必过问。 + +前者把你绑在操作台前,后者让你从执行中抽身。区别不在技术,在心法。 + +## 三件事 + +试了五天,挑三件说说。 + +### 博客 + +午间忽想建站,交代了一句。它 SSH 上服务器就开始干活。 + +```mermaid +flowchart TD + A[我:建个博客] --> B[SSH 登录服务器] + B --> C[安装 Hugo + Nginx] + C --> D[配置 HTTPS] + D --> E{测试通过?} + E -->|否| F[自修权限问题] + F --> D + E -->|是| G[回复就绪] +``` + +装 Hugo、配 Nginx、设 HTTPS、修 404 错误,全是它自己弄的。后来主题换了三次——PaperMod、terminal、Hextra——都是半夜一句话的事。第二天醒来网站已经跑在新主题上了。 + +### 资讯推送 + +每天早上想看国际新闻、科技动态和通信消息。我让它写了个定时脚本,每天 8:30 推送微信。 + +```mermaid +flowchart TD + A[Cron 8:30] --> B[拉取待办 + 新闻] + B --> C[编译简报] + C --> D[推送微信] + D --> E{成功?} + E -->|失败| F[自查超时] + F --> G[延长时限重发] + G --> D + E -->|成功| H[记入日志] +``` + +第三天推送没来。没等我问,它已经查了日志,发现 DeepSeek API 响应变慢导致超时,自动调长时限重发了。 + +### 工单管理 + +工作对话截图丢过去,说一句"入待办"。 + +```mermaid +flowchart TD + A[我:发聊天截图] --> B[读取并提取信息] + B --> C[创建 Todoist 任务] + C --> D[标优先级 + 截止日] + D --> E[回复确认] +``` + +读图、识人、提取待办、写入 Todoist、标优先级、定截止期。原来要折腾一分钟的事,现在十秒。 + +## 信任是试出来的 + +一开始不放心,只让它看看日志、查查状态。后来发现出错能自愈、操作有日志可查、半夜发消息也能秒回——慢慢就放手了。 + +**邮件过滤。** 信任更进一步,我给了它 IMAP 权限,让它每天扫收件箱。 + +```mermaid +flowchart TD + A[每日扫描收件箱] --> B{发给我但
没给下属?} + B -->|是| C[建文件夹存档] + C --> D[附件存 / 正文转 md] + D --> E[撰写摘要] + E --> F[关联已有文件信息] + F --> G[入待办跟进] + B -->|否| H[跳过] +``` + +筛出发给我但没抄送下属的邮件,拆附件、正文转 markdown、写摘要、关联已有资料,分类归档到我本地工作目录的 inbox。第二天上班打开文件夹,摘要和附件已经摆好了。 + +## 写在最后 + +有人问:这和 ChatGPT 有什么区别? + +我说:**ChatGPT 是字典,这是秘书。** 字典再全,不会替你写材料。秘书不一定比你懂行,但会替你跑腿。 + +需要什么投入?一台低配云服务器,一套 API 凭证,花半晚上搭环境。门槛不高。 + +回头看荀子那句话——"善假于物"。最好的工具不是功能最强的,而是能让你从琐事中脱身的。用到某个程度你会发现,真正费脑子的不是"怎么问 AI",而是"什么可以交给 AI"。 + +这念头一转,效率的瓶颈就从工具变成了自己的想象力。 diff --git a/content/blog/ai-productivity-observation.md b/content/blog/ai-productivity-observation.md new file mode 100644 index 0000000..ec22b46 --- /dev/null +++ b/content/blog/ai-productivity-observation.md @@ -0,0 +1,55 @@ +--- +title: "AI 生产力的唯一落点" +date: 2026-05-17T18:10:00+08:00 +draft: false +poet: | + We are stuck with technology when what we really want is just stuff that works. + — Douglas Adams, UK, 1952–2001 +description: "和炎明吃饭聊起 AI 实际应用,感叹一个事实:到今天为止,AI 真正有生产力的应用场景只有 coding 一项。" +tags: + - AI + - 思考 +--- + +晚上和炎明吃饭,聊到 AI 的实际应用。几杯酒下去,话题从宏大叙事落到日常体验。我俩有个共同感受: + +**AI 目前能有生产力的,只有 coding 这一项。** + +这是一个残酷但诚实的判断。 + +## 为什么只有 Coding + +仔细想想,Coding 和其他场景有什么本质不同? + +**第一,输出可验证。** 代码跑不跑得通,一运行就知道。结果客观、即时、无歧义。AI 写对了就是对了,错了就是错了,不存在"写得好不好"的主观拉扯。 + +**第二,反馈闭环极短。** 写一段代码 → 编译/运行 → 看到结果 → 修改,这个循环可以秒级完成。AI 和开发者之间形成了高频的"对话-验证-迭代"机制。 + +**第三,错误可容忍。** 代码写错了不会死人。你可以反复试错,直到跑通为止。这种低代价的试错环境,是 AI 学习和人类协作最舒服的区间。 + +**第四,人类判断力最低介入。** 代码的逻辑正确性由机器判定,不需要专家逐行审阅。非技术类任务(写文章、做设计、决策建议)都需要人的判断力做最终把关——这恰恰是最稀缺的。 + +## 其他场景为什么不行 + +- **写文章** → 需要人类判断风格、语气、事实准确度,改了半个小时不如自己写 +- **数据分析** → AI 能跑数,但"问对问题"才是关键,而这个恰恰是 AI 做不到的 +- **创意设计** → 生成一堆选项,人类从中选一个最不差的,本质是降本不是提效 +- **聊天陪伴** → 有情绪价值,但没有产出,不算生产力 + +这些场景的共同问题:**判断成本转移了,但没有消失。** 写文章的时候,AI 帮你省了打字的力气,但审稿的时间一点没少。效率提升只是把体力活变成了脑力活。 + +## Coding 也是例外,也是范式 + +但仔细想,**未来真正有生产力的 AI 场景,都会呈现出某种"可验证性"**——无论是否在写代码。 + +比如合同审查:如果有一套明确的合规规则,AI 可以逐条校验;比如医疗影像:如果有标注好的数据集,AI 可以辅助诊断。这些场景的共同特征都是:**输出可以被客观判定对错。** + +而那些依赖人类主观判断的领域——策略、审美、人情世故——AI 很难产出真正的生产力。不是技术问题,是评价标准的问题。 + +## 写在最后 + +和炎明的一顿饭,让我更清楚了一件事:**AI 不是万能工具,它是一把专门在"可验证"领域发力的扳手。** + +承认它的边界,比鼓吹它的全能,更有意义。 + +而当前这把扳手最趁手的活,就是 coding。这也是为什么从大厂到个人开发者,都在往这个方向猛押注——不是跟风,是因为这里真的能看到产出。 diff --git a/content/blog/prolog-pokemon.md b/content/blog/prolog-pokemon.md new file mode 100644 index 0000000..9aae449 --- /dev/null +++ b/content/blog/prolog-pokemon.md @@ -0,0 +1,532 @@ +--- +title: "用宝可梦解释 Prolog 基础" +date: 2026-05-18T13:30:00+08:00 +draft: false +description: "通过宝可梦对战系统理解逻辑编程语言 Prolog 的核心概念——事实、规则、查询,以及它为什么比 SQL 更灵活。" +tags: + - Prolog + - 宝可梦 + - 编程语言 + - 翻译 +--- + +# 用宝可梦解释 Prolog 基础 + +2026年1月5日 + +启发这篇文章的项目有点傻——我将要详细描述一个儿童电子游戏的机制——但正是这个特定问题最终让我真正理解了 Prolog,这是自从我读了 Bruce Tate 的《七周七语言》以来一直在追寻的顿悟。 + +这个练习教会了我很多关于我正在[更实用的领域](https://alexanderpetros.com/triptych/)尝试构建的接口类型。对于某些类型的关系,逻辑编程是我用过的最简洁、最具表现力的编程系统。 + +要理解为什么,让我们来聊聊宝可梦(Pokémon)。 + +## 宝可梦(Pokémon)基础 + +宝可梦是一个电子游戏系列/多媒体特许经营/生活方式品牌,设定在一个人类与各种色彩缤纷的动物角色共存的世界。 + +"Pokémon" 既是这个系列的名称,也是这些动物角色本身的统称,每个角色都有自己的物种名称。从 Bulbasaur(妙蛙种子,[#1](https://bulbapedia.bulbagarden.net/wiki/Bulbasaur_(Pok%C3%A9mon)))到 Pecharunt(桃歹郎,[#1025](https://bulbapedia.bulbagarden.net/wiki/Pecharunt_(game))),共有超过一千种不同的宝可梦物种。 + +受欢迎的宝可梦包括(从左到右):Pikachu(皮卡丘,[#25](https://bulbapedia.bulbagarden.net/wiki/Pikachu_(Pok%C3%A9mon)))、Archeops(始祖大鸟,[#567](https://bulbapedia.bulbagarden.net/wiki/Archeops_(Pok%C3%A9mon))) 和 Dipplin(裹蜜虫,[#1101](https://bulbapedia.bulbagarden.net/wiki/Dipplin_(Pok%C3%A9mon)))。 + +我很少在这个博客里放图片,能在这篇文章里放图让我非常兴奋。 + +现在有各种各样的宝可梦游戏,但主系列始终围绕着捕捉和对战。在对战中,你的六只宝可梦队伍与另一支队伍交锋。每只宝可梦配备四个招式,可以选择用来(通常)对对手造成伤害。你需要将对方所有宝可梦的 HP(体力值)减到零,同时防止对方先对你做同样的事。 + +每只宝可梦都有独特的特性影响对战表现。它们有一套基础能力值、大量可学的招式、若干特性和属性组合。你马上就会看到,这里庞大的组合数量正是试图用软件来追踪这些信息的动机。 + +Scizor(巨钳螳螂)是虫/钢属性,攻击力高但速度低(数据来自 [Smogon](https://www.smogon.com/dex/bw/pokemon/scizor/)) + +速度决定哪个招式先出手;攻击和特攻分别影响物理招式和特殊招式的伤害;防御和特防影响受到的伤害。 + +属性尤其重要。招式有属性,比如火或岩石,而宝可梦可以拥有最多两种属性。如果招式的属性对对方宝可梦效果绝佳(Super Effective),会造成双倍伤害;效果不佳(Not Very Effective)则只造成一半伤害。 + +用例子来说明会更直观一些。火属性的招式喷射火焰(Flamethrower)对草属性宝可梦造成 2 倍伤害,因为草弱火,但水属性的冲浪(Surf)对它们只造成 ½ 伤害,因为草抗水。 + +[Lunatone(月石)](https://bulbapedia.bulbagarden.net/wiki/Lunatone_(Pok%C3%A9mon))是岩石/超能力属性。岩石弱水,超能力对水中性,所以冲浪会造成 2 倍伤害。 + +属性修正可以叠加。[Scizor(巨钳螳螂)](https://bulbapedia.bulbagarden.net/wiki/Scizor_(Pok%C3%A9mon))是虫/钢属性,虫和钢都弱火,所以火属性招式对 Scizor 会造成 4 倍伤害。电弱水,但地面免疫电,所以如果你对水/地面的 [Swampert(巨沼怪)](https://bulbapedia.bulbagarden.net/wiki/Swampert_(Pok%C3%A9mon))使用电属性招式,伤害为零,因为 0×2 还是 0。 + +自然而然地,有一张图表来帮你记忆。 + +宝可梦属性相克表(来自 [Wikimedia](https://commons.wikimedia.org/wiki/File:Pokemon_Type_Chart.svg)) + +这些基本上就是我 8 岁时理解的宝可梦电子游戏机制。点击招式造成伤害,尽量选择属性相克有利的招式。这些游戏是为儿童设计的,表面上看并不难。 + +## Prolog 基础 + +在解释宝可梦机制底层有多复杂之前,我需要先解释一下逻辑编程的工作原理。宝可梦非常适合逻辑编程,因为宝可梦对战本质上是一个极其精密的规则引擎。 + +让我们先创建一个包含一堆事实的文件。 + +``` +pokemon(bulbasaur). +pokemon(ivysaur). +pokemon(venusaur). +pokemon(charmander). +pokemon(charmeleon). +pokemon(charizard). +pokemon(squirtle). +pokemon(wartortle). +pokemon(blastoise). +``` + +在 Prolog 中,我们声明"谓词"(predicates)。谓词定义关系:bulbasaur 是一只宝可梦,charmander 是一只宝可梦,以此类推。我们称这个谓词为 pokemon/1,因为谓词名称是 pokemon,它有一个参数。 + +这些事实被加载到一个叫做"顶层"(top-level)的交互式提示符中。你通过在提示符中输入语句来查询;Prolog 尝试找到使该语句成立的所有方式。当有多个可能的解时,顶层会显示第一个解,然后等待用户输入。你可以让它再显示一个解、显示所有解,或者完全停止。 + +在第一个例子中,我们输入 `pokemon(squirtle).` 并回车。顶层回复 true。[Squirtle(杰尼龟)](https://bulbapedia.bulbagarden.net/wiki/Squirtle_(Pok%C3%A9mon))确实是一只宝可梦。 + +``` +?- pokemon(squirtle). + true. +``` + +如果你想在家跟着做,查看[这个仓库](https://github.com/alexpetros/prologdex),里面有快速设置说明。 + +不是所有东西都是宝可梦。 + +``` +?- pokemon(alex). + false. +``` + +让我们用谓词 type/2 来加入宝可梦属性。 + +``` +type(bulbasaur, grass). +type(bulbasaur, poison). +type(ivysaur, grass). +type(ivysaur, poison). +type(venusaur, grass). +type(venusaur, poison). +type(charmander, fire). +type(charmeleon, fire). +type(charizard, fire). +type(charizard, flying). +type(squirtle, water). +type(wartortle, water). +type(blastoise, water). +``` + +实际数据集包含了宝可梦的不同形态,比如 Mega 进化,因为它们有不同的能力值和属性。这里为了清晰起见省略了这些。 + +回顾一下,有些宝可梦只有一种属性,而另有两种。对于后一种情况,用两个 type 事实来建模。[Bulbasaur(妙蛙种子)](https://bulbapedia.bulbagarden.net/wiki/Bulbasaur_(Pok%C3%A9mon))是草属性,同时 Bulbasaur 也是毒属性;两个都为真。这种范式类似于 SQL 数据库中的一对多关系。 + +交互式地,我们可以确认 Squirtle 是不是水属性。 + +``` +?- type(squirtle, water). + true. +``` + +我们能不能说 Squirtle 是草属性? + +``` +?- type(squirtle, grass). + false. +``` + +不能,因为 Squirtle 是水属性。 + +假设我们不知道 Squirtle 是什么属性。我们可以问! + +``` +?- type(squirtle, Type). + Type = water. +``` + +在 Prolog 中,以大写字母开头的名字是变量。Prolog 尝试将谓词与变量的所有可能匹配进行"合一"(unify)。不过这个特定谓词只有一种方式可以为真:Type 必须是 water,因为 Squirtle 的唯一属性就是水。 + +对于有两种属性的宝可梦,谓词会合一两次。 + +``` +?- type(venusaur, Type). + Type = grass +; Type = poison. +``` + +语义上,第三行的分号表示"或"。当 Type = grass 或 Type = poison 时,type(venusaur, Type) 为真。 + +任何参数都可以是变量,这意味着我们可以从任意方向提问。所有草属性有哪些?只需让第一个参数是变量,第二个参数设为 grass。 + +``` +?- type(Pokemon, grass). + Pokemon = bulbasaur +; Pokemon = ivysaur +; Pokemon = venusaur +; Pokemon = oddish +; Pokemon = gloom +; Pokemon = vileplume +; Pokemon = paras +; Pokemon = parasect +; Pokemon = bellsprout +; ... . +``` + +这个输出是我输入查询后,按了几次"n"得到前几个解,然后按回车退出的结果。我截断了,但提示符会愉快地列出全部 164 个。 + +逗号可以用来列出多个谓词——Prolog 会统一变量,使得所有谓词同时为真。列出所有水/冰属性只需问:哪些宝可梦同时与水和冰两种属性合一。 + +``` +?- type(Pokemon, water), type(Pokemon, ice). + Pokemon = dewgong +; Pokemon = cloyster +; Pokemon = lapras +; Pokemon = laprasgmax +; Pokemon = spheal +; Pokemon = sealeo +; Pokemon = walrein +; Pokemon = arctovish +; Pokemon = ironbundle +; false. +``` + +不要被解以"或 false"结尾这件事困扰。这是搜索算法工作方式的结果;求解器寻找更多解,然后失败了。我承认,我不完全理解为什么它有时候这样有时候不这样,但这是预期的行为。 + +尽管 Pokemon 是一个变量,在查询的上下文中,它的两个实例必须是相同的(就像代数一样)。查询只对 Pokemon 的值进行合一,使得这两个谓词都成立。例如,水/冰属性的 [Dewgong(白海狮)](https://bulbapedia.bulbagarden.net/wiki/Dewgong_(Pok%C3%A9mon))是一个解,因为我们的程序包含以下两个事实: + +``` +type(dewgong, water). +type(dewgong, ice). +``` + +因此,用 dewgong 替换 Pokemon 变量满足查询。相比之下,Squirtle 只是水属性:存在 pokemon(squirtle, water),但没有 pokemon(squirtle, ice)。查询要求两者都合一,所以 squirtle 不是 Pokemon 的可能取值。 + +宝可梦有很多数据可以玩。[Iron Bundle(铁包袱)](https://bulbapedia.bulbagarden.net/wiki/Iron_Bundle_(Pok%C3%A9mon))是一只很强力的水/冰属性宝可梦,特攻很高。到底有多高? + +``` +?- pokemon_spa(ironbundle, SpA). + SpA = 124. +``` + +特攻这么高,我们想利用强力的特殊招式。Iron Bundle 会哪些特殊招式? + +``` +?- learns(ironbundle, Move), move_category(Move, special). + Move = aircutter +; Move = blizzard +; Move = chillingwater +; Move = freezedry +; Move = hydropump +; Move = hyperbeam +; Move = icebeam +; Move = icywind +; Move = powdersnow +; Move = swift +; Move = terablast +; Move = waterpulse +; Move = whirlpool. +``` + +Freeze-Dry(冷冻干燥)是一个特别好的特殊招式。下面是一个查询,找出所有特攻大于 120、会 Freeze-Dry 的冰属性宝可梦。 + +``` +?- pokemon_spa(Pokemon, SpA), SpA #> 120, learns(Pokemon, freezedry), type(Pokemon, ice). + Pokemon = glaceon, SpA = 130 +; Pokemon = kyurem, SpA = 130 +; Pokemon = kyuremwhite, SpA = 170 +; Pokemon = ironbundle, SpA = 124 +; false. +``` + +在继续之前,最后一个概念:规则(Rules)。规则有头部(head)和主体(body),如果主体为真,则规则合一。 + +如果一个招式是物理招式或特殊招式,它就被认为是一个伤害招式。谓词 damaging_move/2 定义了所有造成直接伤害的招式。 + +``` +damaging_move(Move) :- + move_category(Move, physical) +; move_category(Move, special). +``` + +这将与任何造成直接伤害的招式合一。 + +``` +?- damaging_move(tackle). + true. +?- damaging_move(rest). + false. +``` + +## SQL 对比 + +到目前为止,我展示的内容在逻辑上并不复杂——只是关于各种事实的"与"和"或"语句。它本质上是一个被美化的查找表。不过,请花一点时间来体会一下,查询这个数据库比常见的替代方案(比如 SQL)要舒服多少。 + +对于到目前为止我们看到的事实,我可能会这样设置 SQL 表: + +```sql +-- 省略其他能力值以保持简洁 +CREATE TABLE pokemon (pokemon_name TEXT, special_attack INTEGER); +CREATE TABLE pokemon_types(pokemon_name TEXT, type TEXT); +CREATE TABLE pokemon_moves(pokemon_name TEXT, move TEXT, category TEXT); +``` + +把属性放在单独的表中而不是用 type_1 和 type_2 列,可能看起来有点刻意。这取决于具体用例,但由于哪个属性在前并不影响,你每次检查特定属性时都得查两个字段,我觉得这更容易出错。 + +然后像这样查询: + +```sql +SELECT DISTINCT pokemon, special_attack +FROM pokemon as p +WHERE + p.special_attack > 120 + AND EXISTS ( + SELECT 1 + FROM pokemon_moves as pm + WHERE p.pokemon_name = pm.pokemon_name AND move = 'freezedry' + ) + AND EXISTS ( + SELECT 1 + FROM pokemon_types as pt + WHERE p.pokemon_name = pt.pokemon_name AND type = 'ice' + ); +``` + +作为对比,再次给出等效的 Prolog 查询: + +``` +?- pokemon_spa(Pokemon, SpA), +SpA #> 120, +learns(Pokemon, freezedry), +type(Pokemon, ice). +``` + +我不是在黑 SQL——我很喜欢 SQL——但这是大多数人接触过的最好的声明式查询语言了。Prolog 版本如此简单和灵活,真是令人惊叹。如果我们继续添加更多条件,SQL 查询会变得难以管理,而 Prolog 查询仍然易于阅读和编辑(一旦你掌握了变量的用法)。 + +## 升级 + +基础讲完了,现在说说我正在做的项目的背景。 + +宝可梦对战拥有数量惊人的机制,它们以复杂且概率性的方式相互影响。这些游戏的部分吸引力在于徒劳地试图比对手更好地记住所有机制,利用这些信息来预测和智取对方的计划。这有点像一种很傻的扑克。 + +我尚未提及的一小部分游戏机制: + +- 某些招式有一定概率落空,不造成伤害。 +- 某些招式会提升或降低宝可梦的能力值。 +- 宝可梦可以携带具有各种效果的物品。 +- 伤害计算不是恒定的;招式的伤害在计算范围内呈正态分布。 +- 宝可梦可以被冰冻、灼伤、麻痹、中毒或陷入睡眠;这些都有各种负面效果。 +- 各种场地效果(如天气、场地、戏法空间)会改变招式伤害、出手顺序等。 +- 每只宝可梦都有一个特性,具有各种效果,例如:漂浮(Levitate)使你对地面招式免疫,降雨(Drizzle)在宝可梦上场时把天气变成下雨,强行(Sheer Force)禁用招式的副作用但将伤害乘以 1.3 倍。 +- 玩家在游戏前会(不可见地)为每只宝可梦分配努力值,以提升选定能力值。根据他们如何构建队伍,每只宝可梦可能比你预期的造成更多伤害或更能抗伤。 + +如果你想为这个游戏构建软件,挑战在于要在不疯掉的情况下对所有复杂性进行建模。Prolog 在这方面出奇地擅长,主要有两个原因: + +看看这个[伤害计算器](https://calc.pokemonshowdown.com/),你就明白我的意思了。 + +- 查询模型擅长描述临时组合。 +- 数据模型非常适合以一致的方式分层叠加规则。 + +听众中的逻辑学家大概会想让我指出,查询模型和数据模型实际上是完全相同的。 + +为了说明这一点,这里是我如何为我的宝可梦选秀联赛实现优先度招式的。 + +宝可梦选秀大致就是字面意思。宝可梦根据实力被赋予一个分值,每个玩家获得一定数量的分数,你们轮流选直到每个玩家花完所有分数。你的队伍最终会有大约 8-11 只宝可梦,每周你和联赛中的另一个人正面交锋。几年前,我的朋友兼 [WMI](https://wemakeinter.net/) 合作者 [Morry](https://wttdotm.com/) 邀请我加入他的联赛,从那以后我就迷上了这个赛制。 + +比赛是 6v6,所以对战的一大部分是为你对手可能带来的所有六只组合做好准备,并组合出你自己的六只来应对所有情况。 + +当然,你只能用你选到的宝可梦来组建队伍。我只是用我的名字做了谓词:alex/1。 + +``` +alex(meowscarada). +alex(weezinggalar). +alex(swampertmega). +alex(latios). +alex(volcarona). +alex(tornadus). +alex(politoed). +alex(archaludon). +alex(beartic). +alex(dusclops). +``` + +我可不自豪选了一个雨天队。这大概是我开始以来最糟糕的选秀;这种事偶尔会发生。 + +我的宝可梦里有哪些会 Freeze-Dry? + +``` +?- alex(Pokemon), learns(Pokemon, freezedry). + false. +``` + +一个都没有。唉。 + +非常重要的一类招式为优先度招式。之前我提到速度能力值决定哪只宝可梦先出手。这里有一些细微之处:使用最高优先度招式的宝可梦先出手,如果它们都选择了相同优先度的招式,那么速度更快的一方先出手。 + +大多数招式的优先度为零。 + +``` +?- move_priority(Move, P). + Move = '10000000voltthunderbolt', P = 0 +; Move = absorb, P = 0 +; Move = accelerock, P = 1 +; Move = acid, P = 0 +; Move = acidarmor, P = 0 +; Move = aciddownpour, P = 0 +; Move = acidspray, P = 0 +; Move = acrobatics, P = 0 +; Move = acupressure, P = 0 +; Move = aerialace, P = 0 +; Move = aeroblast, P = 0 +``` + +啊,但不是全部!Accelerock(冲岩)的优先度为 1。使用 Accelerock 的宝可梦会先于任何使用优先度 0(或更低)招式的宝可梦行动,即使后者有更高的速度能力值。 + +我定义了一个 learns_priority/3 谓词,它合一于一只宝可梦、它学会的优先度招式以及该招式的优先度。 + +``` +learns_priority(Pokemon, Move, P) :- + learns(Pokemon, Move), + move_priority(Move, P), + P #> 0. +``` + +一个简单的查询——"我的队伍学会了哪些优先度招式"——返回了大量答案。 + +``` +?- alex(Pokemon), learns_priority(Pokemon, Move, Priority). + Pokemon = meowscarada, Move = endure, Priority = 4 +; Pokemon = meowscarada, Move = helpinghand, Priority = 5 +; Pokemon = meowscarada, Move = protect, Priority = 4 +; Pokemon = meowscarada, Move = quickattack, Priority = 1 +; Pokemon = meowscarada, Move = allyswitch, Priority = 2 +; Pokemon = meowscarada, Move = suckerpunch, Priority = 1 +; Pokemon = weezinggalar, Move = endure, Priority = 4 +; Pokemon = weezinggalar, Move = protect, Priority = 4 +; Pokemon = swampertmega, Move = bide, Priority = 1 +; Pokemon = swampertmega, Move = endure, Priority = 4 +; Pokemon = swampertmega, Move = helpinghand, Priority = 5 +; Pokemon = swampertmega, Move = protect, Priority = 4 +; Pokemon = swampertmega, Move = wideguard, Priority = 3 +; Pokemon = latios, Move = allyswitch, Priority = 2 +; Pokemon = latios, Move = endure, Priority = 4 +; Pokemon = latios, Move = helpinghand, Priority = 5 +; Pokemon = latios, Move = magiccoat, Priority = 4 +; Pokemon = latios, Move = protect, Priority = 4 +; Pokemon = volcarona, Move = endure, Priority = 4 +; Pokemon = volcarona, Move = protect, Priority = 4 +; Pokemon = volcarona, Move = ragepowder, Priority = 2 +; Pokemon = tornadus, Move = endure, Priority = 4 +; Pokemon = tornadus, Move = protect, Priority = 4 +; Pokemon = politoed, Move = detect, Priority = 4 +; Pokemon = politoed, Move = endure, Priority = 4 +; Pokemon = politoed, Move = helpinghand, Priority = 5 +; Pokemon = politoed, Move = protect, Priority = 4 +; Pokemon = politoed, Move = bide, Priority = 1 +; Pokemon = archaludon, Move = endure, Priority = 4 +; Pokemon = archaludon, Move = protect, Priority = 4 +; Pokemon = beartic, Move = aquajet, Priority = 1 +; Pokemon = beartic, Move = bide, Priority = 1 +; Pokemon = beartic, Move = endure, Priority = 4 +; Pokemon = beartic, Move = protect, Priority = 4 +; Pokemon = dusclops, Move = allyswitch, Priority = 2 +; Pokemon = dusclops, Move = endure, Priority = 4 +; Pokemon = dusclops, Move = helpinghand, Priority = 5 +; Pokemon = dusclops, Move = protect, Priority = 4 +; Pokemon = dusclops, Move = shadowsneak, Priority = 1 +; Pokemon = dusclops, Move = snatch, Priority = 4 +; Pokemon = dusclops, Move = suckerpunch, Priority = 1 +; false. +``` + +虽然这在技术上是对的(最好的一种对),但大多数答案实际上没什么用。帮助手(Helping Hand)和交换场地(Ally Switch)优先度很高,但它们只在双打对战中有用,而我不是在玩那个模式。 + +为了解决这个问题,我定义了所有双打招式并将它们排除。我也会排除招式变圆(Bide),它在功能上没用。\\+/1 谓词的意思是"如果这个目标失败则为真",而 dif/2 表示"这两个项不同"。 + +``` +learns_priority(Mon, Move, Priority) :- + learns(Mon, Move), + \+ doubles_move(Move), + dif(Move, bide), + move_priority(Move, Priority), + Priority #> 0. + +doubles_move(helpinghand). +doubles_move(allyswitch). +doubles_move(ragepowder). +doubles_move(widesuard). +doubles_move(snatch). +doubles_move(magiccoat). +``` + +搞定!这个查询只返回我的队伍相关的优先度招式。 + +## 组队 + +在实践中重要的事情是组建一个实际的六人队伍。队伍由你选到的宝可梦构成,好的队伍是对称的:如果你的一只宝可梦弱于某种属性,你队伍里的其他宝可梦应该能够应对那种属性。 + +你可以非常自然地用 Prolog 规则来编程这类约束,然后迭代它们,混合搭配组合,直到找到一个感觉对的方案。 + +我是这样定义队伍的: + +``` +team_size([_,_,_,_,_,_]). +``` + +这只与恰好有六个元素的列表合一。在谓词里数到六有点烦人,但我把它当作一个练习数数的机会。 + +好的队伍需要平衡。这是一个定义平衡的谓词: + +```prolog +balanced_team(Team) :- + team_size(Team), + member(Pokemon1, Team), + member(Pokemon2, Team), + Pokemon1 \= Pokemon2, + type(Pokemon1, Type11), + type(Pokemon2, Type21), + weak_to(Type11, Type21). +``` + +等等,这不对。实际上 Prolog 对什么为真什么为假非常严格,所以让我更仔细地想想…… + +```prolog +balanced_team(Team) :- + team_size(Team), + % 对于队伍中的所有 Pokemon1 + findall(Type1, (member(P, Team), type(P, Type1)), Types1), + % 检查 P1 的每个属性弱点是否都有某个 P2 抵抗它 + forall( + (member(P1, Team), type(P1, T1), weak_to(T1, T2)), + (member(P2, Team), P1 \= P2, type(P2, T2)) + ). +``` + +好吧,我不会假装我是 Prolog 专家——这些代码大部分第一次都没跑通——但 Prolog 的美妙之处在于,一旦你把事实搞对了,逻辑往往就水到渠成了。 + +## Prolog 的特别之处 + +我在 Python、JavaScript、SQL 和各种函数式语言上花了很多时间,Prolog 确实感觉与众不同。 + +我最大的领悟是:**Prolog 迫使你思考什么是真的,而不是做什么。** 在命令式编程中,你大部分精力花在控制流上——数据如何移动、以什么顺序执行。在 Prolog 中,你只需陈述什么是真的,然后让求解器来处理剩下的事情。 + +对于宝可梦对战——本质上是一个有着数千条互动规则的巨大规则引擎——这简直是天启。不用写 if/else 链来检查属性相克,你只需声明属性表,让 Prolog 处理其余部分。 + +例如,要找出你的哪只宝可梦能够对水/地面属性的 Swampert 造成效果绝佳的伤害: + +``` +?- alex(P), learns(P, Move), move_type(Move, Type), super_effective(Type, water), super_effective(Type, ground). +``` + +这一个查询就把你的队伍名单、招式池数据、招式属性和属性相克表组合成了一个简洁的语句。用 Python 试试看。 + +## 最后的思考 + +这个项目始于一个玩笑——"如果我拿 Prolog 来做宝可梦组队会怎样"——但它教给我的逻辑编程知识比任何教科书都多。 + +如果你感兴趣,我强烈推荐: +1. 安装 SWI-Prolog 并玩玩 [prologdex](https://github.com/alexpetros/prologdex) 数据集 +2. 阅读 [Adventure in Prolog](http://www.amzi.com/AdventureInProlog/) 教程 +3. 尝试用 Prolog 对你熟悉的领域建模——它会彻底改变你对数据和关系的思考方式 + +祝你编码愉快,愿你的属性相克永远是效果绝佳。 + +--- + +--- + +> **译者注:** +> 原文作者:Alexander Petros +> 原文标题:Prolog Basics Explained with Pokémon +> 原文链接:https://unplannedobsolescence.com/blog/prolog-basics-pokemon/ +> 本文为中文翻译转载。 diff --git a/hugo.yaml b/hugo.yaml index 9c2a0d0..ad8c641 100644 --- a/hugo.yaml +++ b/hugo.yaml @@ -136,6 +136,10 @@ params: enable: true lineNumbers: false + # Mermaid 流程图(本地加载,避免 CDN 连接问题) + mermaid: + js: js/mermaid.min.js + # Open Graph / SEO 增强 opengraph: enable: true diff --git a/static/images/fusheng.jpg b/static/images/fusheng.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a305968527974b047f5cdd233b24885ada46e62c GIT binary patch literal 221010 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%0DoI`Gg7pLDIpI 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%0A$(Rcc9%1Wskx#*|Ns)eIUJMwcAi2lqSu z)NQIU+87A)xEq1>{$(#*`aUriE|RSIv+AX?(tB19V&HAX`njGSVU*jD^`gT*2OhFR z7f#PanJoxfG??mQr+_KJ^Qp^Nw@u!Xvz0d2k;@wpMQzGF1!>IbH@)Aa{ts~d^jRK1 zxc*-4%F7>4#FT{IN7AiLZnZ8yzAZ;o8Y~(uUOd`tO3&jKIEN~(Chfe%L4#EvS!oC* zS;H!0(|jx-XT?jS<_xNO)cf(%Zw~uTkRsG40R(giq^w)a+Sllz*)>^isjoWu{a3sf znK_deJNu!N%02cZFOn`J#n)p;G+qTBbWr9-+~K~@Qnnu_nL*TZ|8YElG0tWG3f6M# z*rH=NCs{B(7d9gM6tl+5|4nzvy>0 zBf8}~-%pc20Joo>>aFVf{|jz@*R}nI{nbx(7unF4f(LxY{GyuND?g*bD`F>%wtrVS zmCE=iV6rp54jKF(nIlgA+@1n-LsiS>!>PJjE|84PR^woUehSInCqaWuO`5mUY`y{r ziV28Wm_!OQOakmvy)(oh z;QTcPUKTj%4;+Eef_%x1@N~pbYP3aHk*4`yX247u^g9h)l-@dzvz8Ozd7FHaK6 z5CW3}NVbMB8-B&{NW5e0cj@TbeTqXWKedGCq0%%(z4+WEgNeHe&Cxx zI9C@H=mDadXLMA*AfxXN^d0YyKYq9umtTvAnt&4=;LtU8i<9J!e_KcnytNNZcPF|& z3IED4^4T{2A0QsD2vyT$O+~VgtJZ17?GiT5Gtc`c$hntm2kK|OOzm>t(xp~*`jI?r zazo&?_p=$nz>;~2?j8}NbXf_?PCvI@&5p~)M>U~3Yvgy>*GgmF{#!c z`#(H7b$D*d=kD+?_H?{P&leB4bB>KY#c8S>K1RyO@Q$F<1N+*Y`Su0y)VllR8H; z9tpLuw7I6*mCVIzP}*><#>M@KrakDzv^+XvhX4Rwt9Bt#FZu~o@Avvmm=e9h_c%*f z75OZNw8Xu(7S5gJe-_q?-vXTW$Ko1|BEu@ZY%2ua?+y`m^nNJ?1Ig7t2I~W&hYjA1 z;e)z96kgx!bC?g{yZdTFid~QEPHg(8HHrZ?>F|qh5OT6%^}=WX-E!LE=A7YFuN2!w za!Cwa;ECa`eqQHy_dRCh^+#O2vGX8f>Mdybg@D7C^X+f;Gdrwg7jXIuT_;94R_{Hv z77~HN5a%Knl~RBJ>`yL3B#ws7D4pN=-Tj}x!+}iyeD@zAbUXiehSWh$?izaR68|k^ zyFx(6TBH&I@OZjjU;c+F4_6y6e}$u@RQ3u?8xg6efwiL@e1Chcg7zLhp>5vsC>oXz zbjak=xd~g^jKT-F^G*4SR`s6YPt7esn>BrngD(o$9!xF1OLLZ7!F7E}okI|_tJ}oK zA{)l%+8R7%ja3Hp6GH1$sK5u9C>1Xi+%*2v$;U%jvoS@$6NfVq72G*v>y-1SH@v=E zT>DKt87*xNEbl;mM3BB`oj`WF#)PpV*iPWU&d&sH1+hahxFwXN+@Zdlinn6JbP7(v zNa7ul`$;t<^u}D0%U&hf6po*5jgCAS{N{%3p0edzn;JAI6XLIf4TMlrtUGTPlQh)R z*f$mHg@tsgnTlp;ubI&jPVZ%*Uq(f=|MTK2DDU*zl}W7`H=WO|O`=bdfzMAVBSRU(%50v6_ZCLI=qn_vf1z@AA||c(gpjWIdVQJ15Z3xx z;(P7(Q$s;1ugL2gd0m5%^W3ebfxR!{IE)tp5RW3ng>iaF2JU*pkfRQV91A z=Cnr1qZQfnm4i`xR`ra7T_qv7YVoKOY+hR<(kt48M9}ai+0U*_EPn&qYOTNZLy3G%s@{>{8Yc!WgqiY z^l6xV{Em`By1!lIFhI(b#q1M%EQ8n1)~VAn}7 zYA5PDd(r0MC)4=P=|xKtDWg2|(_f`^h~?1p5wucD@Jqq58IUvGq`Y5;wU_)5gAon2 z8>d&x``Fu)9_*;8vLq?xJ3pR+B6lqsThUCrmFu}+Pr(38uGz-u?gLLzt;3N#1zkTC zyOU=|zB~Fa{g_T(i$+v&RjGBKT{oKfFJUCg^ZA2GH8!4|4f{x-ID_NVZ&tH7J3`w8_iUPlZ?tcGSbooJg$e5U$2f`se zUZfBOu-$t!R-`wtFMn7z`Ch0^;ynU|DpmdTQ3Y1@DeTs3zAghEEkeH5dF(N9yr;)R z7DUmk-6NZ!+Tk1oh_N0)Ix2iI18|6BrkbI|Zdbo{DqsPRSFedPdf3^#w>KeARgnnR zPYsA~9A_gBrZ3Z0bpaxs?ESF<&6^{2+RStFQsO%84K{NyWjAZj1jzW96V#^Njj3AU zTWO0iMpP_SX+&tPHAlNrBu=Rf7ed~a)^2~tF=<~}z2qz#ksfJk{16BUJI}UK7n)|* z)h`&^MwZjoh7Yq=WsRYGLi!-B4iYgQRu zMBwGtx^ITKxTM}oO|drHIl0q*XLoz7@pfA-ABSFU1+*i~451u*k`6`(d$& z=Vc&VP4!|^!|xCNVsSgUB&n@Mr?=Bl{@509m&+D%N43v zC{=4BW?JcJwbSxla!N7e7!=Pbfi(nS0eCKF9|qNSS48b-WnMX*ks|?y=`?C@P1NDXZ^oqG0uv+t$}5i-rvh^}n#sYh_Hw;uNcTwP`yNj3iF z#xUQ8?YkVttRfyqzFf{0**2Lb+qj!JN=<`5`K$``l%=%aSYVP_q6)y?usSOojWxdA zkAh3zAE4XeN#8KnXEwfAy-mm+d7eAUn;q*7{yRu};USo8(rttI9pDL3pK0w7=u*rv zQOv#+Jvn8CGenMMEB=sIPk!_|ozCc6#cQONkebWfphml=F`Ay_t0i0Gz#|{cE^edPTOjP~@mrGFTBwqb<0XvlMM-FKe-{&sF7V_rPNn zNSe4xEVWaZuZ^A%$-9hZm08jgZyZ)meL9>s5Hr_kZ%pQ~X;#EdA$pG_{rz)7UK|(d zOo~5nqb6;1;LG`7?h&FQ8IpebLu6?8tKtfATzZYOpwtLX(=ORvUvQ|?g)s!3h+WST zPyOLcwSU&y05bFeJaOgOf?<5{f=6b}gGXH>i><6Q_nG|ADBpUgvGrEY?%SV^v_Qw8 z4Ww3f@<@{!a4;Ivr`%*i4VR#G7s-#jtSd-Mp>Xf!LF9MS2Y2g?HtB#?1n_~;DGCfi%rmp4X@<`H zLX7nXOmYec2wf@c47A>6==pW?@01C--4npcsAw9oyv*(?|B>1ead^m=R|F~v&`yGi zKb7!yFw#z-$mM9-+EAw|lq?8*^WpSh&Z)w$yJ#D&d^jw8WPY|ZYw&rJR5or+>1 zs}#204&;jfnJmO_2N@{Ngs8nYDE3f3SFsgQO%evVHX}}cXK=Y54$RX$vrmI+E{xl0wyN-&kx6LUp$@9A?uV(DMVj7asfmBJ zuUV{VP$LDaZ&$xQd{6p?c|*{UfoJ}M&ur{aR`mcg?YCjoqRqSq9~2=2_H{}Si+Xr~ zl(AZR5J%{gtI5Q@*fEE}#W9i4bZ#9)UEdRll0;95)f8d+rTSIme!9RomI(M^5CN1} zTiftAZRd*lj(`npMzPneR)5LdJsqY0JGQG>2jTBVdWNO2r@&T+Y6mDrGv(Ke$kCYU z%y<3rsB<2rR22@KU_AAh=)OySR~VxNjw$q1l)ez$U%zDd`YAZ=M3Gl_NArT{GU#z) zn^yOM{6bE1%9Z#$>m)Iny2{_VQq&_QH)Uq5ry=rD@r_@B{i!K_!XEQyU$lhbP`DfP zZCl_6^+A#5Q#_Dz?`^(>KiXK!0qd#~IYj2={%G-eAN0l}?vP8+k0 zC|PHBr8fDbc1d#U!;!7mk#(rrm$Bc%WbzkSM^}AXLy*Jn^$0GnSG)|2+1B+`U5EB_ z2qRVViz)gbbU7QlCu3pE5b5Iw%MHA#?Y&`Ok10>Dc9kcI2Z1ZQCwn_wr!bL_w&NZ4 zAxt`mcC>d9>4Y)R_=eMEs~cR;3%;-}6i9$IZy;SpZ}CBp6GQ1hkvLxt33Qrc7QU|B z8Yx{I`R@i%9wE9*3MKS6o8AJ&HZucMaRbHzO}4SjEfebSC&|My!)c%@G9Wy;l|2Ih z^i2W;kO2>8-EtjRi+tUxS6gUALgNwTqWSMBUbE{>aWMdf(;4Qu+-20i&Zt%BbeEJ? z&jEu43^MolAdsRlEO`tUFdSREP_>Hj_u<=u@p;$5c)lUJQTShh=&})0a^-xQ+GJH= zRFGF;;%@4Ct7Mt1DR5yg72epuZjMP&KAjq9yhD9Fp)T$_(>gv`mVSF4(uF!M?^^@4 z;SI*=5G`vmo?7Nj>_U$>Sq@R(!)7}ZxrS=5cRz@)pTIVI^)^rOR#(0V_Z9T5!+H=T zDf8`l>~f9Sy{?$7@14dQ;!=A&NXBTTG@J)4+~=hH*Ab`FpgV^FDjd6TA2)yq*d zgx#rOgA5`nsezKhXZOuY`_-YLt8B(~Wc81Q&|e52q+N{|Yi|W|;GLzL`z<-dS}v zFv+PEd-Q*`XeY1my){$9mJe?_9eTf`_?bR3%N0k_2*_cGc1``*o`Q*}uw$ z%mFkGc!2__RYgl9j;_Yjo@7w;T3Vj;tIZ+G{o(zT?%4!)tEj|kH(^RvB(q{AID;iCa4pfrjSPIFBAbPIT6| zRc@fwGT2R?aM{nELY2w%Y>FMfw1EyuCwxItI=={@Z_o@P2*xa|*h6X<*=Lj>}X0b8rXq6zv*#Obv39xmD zRS>H)9k9`&V1GL0_jrJ0(0Kc%HZ?8)VjJf{m zrS>upG6QV#XTU6WF5!i{- z(?0@mapKlmhG<&?rO2ATB+;cY73?ZY#%cU5@nRw1cd9T2bYNPxd#eJEa*>Ze#iCrWm%E}}tq5t98Er)zTSeXpViyO6}y~_QNJGNr{iVgOJ4yV%D zfKp|aQih2I&cs5P%b(A4O;5YbBa;IHh3QfQhrS5z;b!6lK_PYqe<6!Dsa1X*a+Wzs zc8*B)x3P4aOa}GE^KL#l0xWtGW_bsXH4U&n$>evzyu#|PAOUVPbcBMwwQhev6vKA~ z&r({bCoCqnJ#NVn%+~mVCM7Sg4^K`2O(|+$mS?wGbOds)*YZhd#z}~{WQ_JJ($sbssJ~CE3`_e0yK&Jp zi;pPl^M||~N<63!QBgGKR{1?=>GHg-h%1_q{-xmAaZbT%EX`pvGzc9R?vbE|iOT(L zJ%PiJNsnb_W{j+MoLlGnlwd5n#|Q6|#m6>5tdO1rS4NsL_W+*(Y=`OeU^B1KScQSH zwTHW;NkB&ZT6XObHMN)!kzmv+cW1YWBxNn2@zhEXE<3ivn56L(jRiC=*)XIBTyQ1a8bEmOW0?dVpOhn zDBF!`RRw<+H;t^iVTe^F_`!B1#xYEGsKx145TO3ExQ1tcUN+ZME@7YzXZ_`QcK)=# z4*&6!X@xjmy)->P3K~HK)=sveHNco~NPd{=4=QOgq>{R5(V?@|TX*xRt{|7-90VK8 zJcy%I^??m}$nm9wt7nVM$Sx+$tUL%7jw0tTcF3?#zB67;@utIh1P`%#62LO_;v_w1 zd4^0fPNvFY3#YzOrgV>#?oX&4mhBZD9wat^jSv@gdj!m)wp7_Y&x*I+i>(D~Ze6Zl zsJufwCLy!B=ay1Sb-L4cj!|pFb#Za(7@e2|xxZ1@{SkAquJ@;+@rl$o5@en|TOzq{ zGOjqm;elG_#K?zok$3iN?w`0;%bqWkKXUs+nW+6#{GVVt?{W6O!YN}<6N>=4mY9;V z=5aD+ldJ@wG|le+06dWUW(TDx;f8GLRQ`jqu0}g%!$N{U^jnH7ACg^*!+O3!z+KYB z?{B(q=$ABK{b*cA;**)tgMGH?a-Pj_Lqr(x)DM@Xx5bG8V=83=OF210IhaXZ+!~`8ul58q@BOtgt?mhW z3(CLwt6D$T>)Sq!5TV9S_&@jw!r*=0)I{lYcR?(@-!Koghn?bW5d{otz0+!Uc(No3 zD#O18FzzeZIFCCuy=+|&Z}2?ZkjrTb4l;i}*L&4>^~CG1?pOtI!r6bQu4OYUAw^-% z+0jrqJw=cubj!uQ-aC(W3R>SOHAR1JEPWL)sI5TcX$JI57|Qt}+1f)eViI%hhhB#V z0sH4GJb{tzwBaF$lCUxHMeZ>O z)fi_@Wkn1|wlm+5YWQD_<=C)ggp!D7B8>7Z_=o;l4h?`Gr=b`4G?35a=SU>-`TqwH zy75p~AiNmA960tV2=tQtqe0u=5+*khn0EASy+L?<_(Wf`)l|8Kw{@Iabo9|dOM;?r z(z4Mz9@y=}mOZ?3D8#vTFGH*}dX&1)Cn%WYw|^Ucvkc`;mp=?Z^jW zquXyT{Y>A!NsvwuW246>pzp)s=hMW7+_J>ZAc=`!)M(K6ddBWc*zst3MG=gUmmvxs_M z!4XYH+9eeI$048PqM)6@K~P#R*!(a$v=yL?8>%ME*`-kaB)AoEq^B^I4nwqr6JqA7 z1*pVMQ=aPY{byMPQI0asSdY>|yx(DbMUF9@@KJC-r%H8g<;Bywkwu@WrpQK9;eJY$ zK7PvU?;aT_l6(RpZdvTl!HZ;I>{P&Ka4fMUf^Oeg3)p@{1^d5v_IYmy)ijff%l&Lnv51<63y+Me) z5Zs&|pmcH93l5xDAlD%ASQQ9@0<@%uDjLaK-eC@1)B7YYXyAbK+gJ78l|(Fxyg%qV z)BY>mG;m40n)}($Bg*e7+>cjwfA3DK&)>cHLC0ZhKKIjR@wjb;n`Ic!D&ah~8*fnz zyR$-+8969Sq2o+2i+4zvl-giwl>#@FXn@TRLl&9a7MF@l1yf)brp}W{?I^KnPXGOu zwk>fWc;7xj zPw^yOE$dWO^*@6rY1SgzMJ5{VF?!x%tvY2S**)*2lm;WygRR0rQR%|ka|YQU!lADt zszZSYj5b$TN@%$YV*t2Xkr%9()*=%h=(9P4)XK9&oJa#3n(SYLa8wf}u#nUB96z+e zGX7`=S)BjiEoZQ~Oc?`bawq2-p*fx3!KPh%n0cBkqFa>7Z{$BxcBY|80Nk=_;KKog5 z6xiK|Wx@#}B)=nKM~wqaH9`7*kDMo_4~8yFUzSb!%`?sB&l3ZOn!Hx)JgaH|JpRj7 zG>CWvGGHPES-*;%(*ZS>9GWJ0!4z>cGHJ>W+V2#HHn&I@QIs!x#2xi9mL%8v&Q()` zK1m*G&9WKbBM5{-x0i?hzbINn2ze4Z5XOFSrV_%w1_So&K7P zb}KnF-R;0=7LFF8Z)zTeSy?yXD*u+wElt=rp^Q#7619UEe%DCbN`Yqc{x(F%r?&fd zZ67JjM{wu(L4#EypSL3_Uh@e)VuKQ8bp?^1POTHB;y{+aZDFSdZKZIJCnZ=6czFL^U6~&XKD3m z!&vb}DTHdfY1YkTSM?FQ@Zrv#3RNTJ!jcAn4r#10ZBjA2)>TrAWDu%;rHq_HMrVXN zEODtNK~#4j=net2Njl`(0G0BgeNn%fCh9!43YHfY1vkGJP~v5;6#mHMGI7roltg&6 ztn=mvx@)rHV2YJ#tzF1Skj+?ENTvpVDD{>6RFL%MGRo6PLVWvjDZ0D(FtUVVEDDB z^W4agH^bCA2~s=A*g(^YU3lI;p>PPRIg zdbrknOUquY&0f1TD6KfLBH6QE6qdyAX4R=}Pcx~T)6TRw%Qth23Tq&7aK^J@at}0- z*%TB@XABn{=67hKX+6DJ5#&|K!A{y)iYCwraknFa)kus{VX%-{YSFAVpt)n-Npe(9 z;>$E|VyyB396iW6A$2M75j-bf^xQd#v1yaA@Eawd%iqUT#?iBC%=1iQf7APL)q$)- z496ioD)D4mcxAO<>7<`6;g_4w=FDP`m(?iL@`%zk0D7P>AC{}BSQa&@K~-Wlqvjyw z)r!1PD?c%&AfX~@9zx9GB2|isLv<+%H4xP1it}Xhy(d!_iN|0^>Cx9L%{RA_$d>*_ zYbLHbvB=h>)v=Xdjkwz1xOv2pRjCDd;kkL{Kdb3y(kym+3rV4jwDxKwH)G3JraPu< zwV-RE?L`zI3645y>>-bF+m>+>OJH{ewU)h#xcd>G6Txb_$rPMR299VPGCJ>TA~axY z;OAZp8za&O^z=BkS*4;@&1&fS}%5h23+;N!&cF0LNu}Q9*~L^RYfQbLw0RU-PD?K zRdrql?mom7W|pk6(zQw)?Ona1ICkt73*$-+NUoxFtd z!#wGZ#?YsY#)geMe&wrDtA8^X5@e!N4Xo^qV&mJISN63c$HfKJo;WQ_v$+Fn4zzN1 zsmS=el{yeyk_L)d@mJ=FBNIU*N!e<-2^`FT@`Pl#6C&1mLp(+v?sp8!O0F2PxKfaP#cLxw=WlOqBtKrErO z0cSYv4bH0?7fCcQk5v$%N;0_z5k^+amH~=-m!lkKg~;Z_QBcOg5rFre#zQ3ySmel9 zok4R}r?)vAhT~L2Jf?+8fJIvwju5uP%Mj!-bIER=PZYOkSb=hws@Cb)%+bg^5ZtJ2 zV{OYe>rA(=Z804Y4rv?M^*2dq6eDISgRsd$kCM`mIj8r zajZ5~STQMHb1{Y+RMLdBmJwAQ0bo_Ny_L3joHR-xl8$3u%dDb@Te(XQLP1^#>jB-BCo?Lf)5eBZFp#XN zEl3hXlEsLWM-;W*R?Yj7TFB?Km+njK7VbM3mZyR%x)J+Ibt8pqP?%G|cmNYbr*TD1zPFLh^G<+kZ1+fsXlW_5`%(71LI!8w(Rubk#1gatAxy$vyx zX(Sj9dR5U=<^%`BWUFF}c@9=yVCoS&MS5OcYZPEuQlXkT9!9a%pfN%yfDM?wQl5Vr zweh*zG0u^gWT|ak3&7Gy#ubUmH-5a6tA*kdjQz+SAta2^#cm|BWHou~M^c2%R)ll7 zXcDbZ^G`I-JV_dAV=RMvf-VzUnsY4Cq;u}0xs}9r>SyjxoX204AghwJ%Ppm{Tbs!v ztS~G#LoX@m)*jkHBvQp3kuipid0|6lYTe4qEo^l>md!HJ3GWD@thpOF?)`b`T!$2H zSE}CSq=qY2mPf5T%^a26$;qizj(|!tDU8^50c@g>8C{P{0=A;d43on7$f{OQWg%HL z3CC1xfEGp?mCz^!7%>D5Dl7rTrPEnz7gn|%>tif6h)S2QP}E5$ie?q9HF>6*M6W)S z$7*>4+IXzrf=<9>LU}Hcsd!2ryF&vG=#H(oi?b@sSto?N?<6xvDn}${7egB$l>*8P zhM|wDT82j*G*H0>s@Q84gpwDMytxq>uDNTlnU=+=jP?!5YP9Vv=^NEaYgd*S>q>?G zpz6}iVYyeYTD_FarZgTU*EM^ytIf;Q)MOeTZ0w^TA3sqC7GXhR?V%v#+Q>QwM zC&ov;UgWl8trX93p@P)&L}ni5#e^og79)`iyr70OWoHGWV3Aa6FLdO}Z8drESENYd zt7V{;8qx_h4PNXM$Jwhjh|DW27NlgcWIPEqM^stwQ(DjCs?}@__~_B5l%T6sV&h&W zhq#Rd^2UPMX~|B^&oq%j>Zq{!DLg|Xm#fqm`MFp2*OJ_gcBDxgV|(%r?30L@PqCle z!zAnN9WmC8iDVV2N|8wM%drX7O%t6YDurn1iY%gnFtJ4}DH=%#OL08dj7W5sNzrcI zttGI!v^B9RX@hDCTo6D6Y2w*9`?%_oTxzhPWLu@)C>~j5vWnGg^O9EE$|Omv*kDtM zS(Uix3hgUq^46=-+%ngzG!^ZvOB_pb<&|qJsm|WTajCD~l15^&1=x~VG~g*-%-4?9 zM894t_{7Cp$iYgrg|lxQF-+Ghw3EGq#qwcqPZ(JwoJTYi`)efLy3Pyrh1!#HWn?O3@iEX3`%0be=GU^mM%1|r-ETA|D+J%WyIk1&wTX!hHd#@u% zi6HJgtnU>_Qp(?Op@LkKHw=Ajdn{IO!x0T7jF&!e(ytV<1i5yg?MGX(5g#RHC?2_n1SH5rvoXpk z3K!)zNF%0>P4tB<)S#X$to+02SQVj#KmpiUYybe%tOFVpC|Ns_XgEyHR^wQLIsI(>q_sSja3>Rlk^GD+oIk z&B2eyciKAC>Qs%E&HL9S>|yFjE&PO*@=`%wN6zM)a>MWI#LM54C6li;7}?~CM!RPj ziI!<6ii9;IcYN+r>#}s^XBTo4+RaZDe?Y9T8A_hjAT*D)rY%I#TCjuk%v^CulHaR-NR=+w zidd)X3FDmDw+Beqd2hY4(nl0YAcTIHtQHLRMuLN#mN+^? zry{F^ieq){B7yRNK{e4C1F;GY3y?A>D(O0ys)jX!kVZ`rO-%H|1YKkxG(h>BidEHA z6x5i+z00(ut}EJEODqyYVuaUw4>!_!KND*mjn^~sx z<+2_b1yxxsWN`Mf9wDkEIiJa$Mpo^S9ufsUl3bR;XjA=uiP~Bm1V|ob!P<22q-@gi0nsFqMSC$!Jxt$qIv|zQE zTub=_siPSwHPN_uBC}+BsI1A{o=7CE9C-pazC zUG5=^@t;S<4mC3KvQ|S|vdI*Zq|anSFS}~k`^;ypTD|#h$d+P@9e86JIPxYK>(uBz zla{wnV9OLr;py$ zyVwlGw;mx>vXD2g2h=m8auB`;69UOh%TlA#J-DQXxfuIW)zmd+mRX>RNTH0w9I{I2 zg-K`rW_cCP=^F^F+*mIV%19?n13I0RB$7^n(BIdrdA}}67eMHCQPKv)0gA?ZSgh<1 z8xVeEQ4-__jyFAQa=}eqi{G#|Gs1x0_&B!^Rw~R4aq;q3$Nk3HJNX1-&6j%f$T8t^ zUvlE$So?@J5lK`m#hYF4=z;-Y7ybc1PvqkueQQ7sAxM!~(aHJ}d0982r@;RFHvI{l zz^}xkG;2B%k*sUWz+xNbIU_rKLFKKLBSX-ZIIf=6p?Ad$*PjCb_B>9I50Gq0sRv?PdGCOi* zCtLgEq?Y7&qB#w({{Wz&@p#Mb%aF z8S5Bar3zINmPZv+336O?*Y4D@N#t!ftX723>DTzVM_vCTCMglRfFW?Dov>2w1&nBs}$Xvr%u ziRBNZz|yQ{7El9*EMk#ZI8e&vEb6B7-xxAT=?Xf4(HT7^LhCxjNSPemWmI~RGO`lE zhPob^b=>+jC4w}LQ111iSa``XDz6*@F&ut;#|p-wN*)|ELvbK_=s)6lV?T?39>m1= z7ovJmLurq34kDCp%=+QY+?gbQ;7JUi4~XYRBECNzR<=JKLM%oytPNgDNHDg(2Ibx>rW^Rj$$LQec^;HPd+ zf$=ZZpSPTM)F18sKEKV#0;)ps40x1J0m}%+ zj+vBlW7@-Q`esrHaU>nZV*H)2 z9j`aA`<@;@pZUE0yex|&C{P$Ha#c~FO1GC!;(wC>tP_tTqE7sQuF8@KKmZ0TU4UQ) zoG2}#c6@Ok9!0z}5}*}%*X=`VWDRkU}M@St<%ZY$W6XK=C4ZI>Rg9G z%StG&E;FUNqO_R12?{<)SjuBiHOoYM`z|>2`f+Z(Om%0g@r z;HY-mZjAV2#Rz3Z~I`!*4hO6Szy z+RH?OkmV^bu@z_{XF*vOyv+^Oj-|@7-By`w#=b1$nkSA6)mB7y_Yb;%J<>fZM$SS= zZ%b+?sY4TTSn1>HMGTQcT*Vcu7Y0gMviBB7f;=Vbx#WYfz+A^Y}wxn=;q`081d@ zVpX0B*K9=9(!<@aEL5yAOI|Y3734ieEm5ud-Cf$VGGF&O9{1|7wYzY|S>tJCX@!e6 z!b^S`WtEwwc^vYan+{K*sZdQBh6&z7qO;8+Hpx6eA>3GY8azP=oRxuL;ak}L9ys}R zfC3^gtW{ekg@`7jy#%1tTH47i$D9*8$kLLb#Jcye&#%?i6o0752^JQX=nM<9uKxff zjNP1!xMPvUrc5k1CzkB7=E6o(Z4r|$x8T-nr%B)EeKqBE?0UTLDW3b+p%44fnf*UpvhL(%fvpWd+uxmL< z_?ARY72-<>r5un6Vpx&^XNs=@TIMN`#S}3#Dzn5ptO7H?4o&-Ummvdj+Y-y95tpeK zFBA|3gd1jkbtfib1R|8I>8|57!S#3s$E>BUut)BdU zl$QShPS7)RlGO*B6+D3Qd3}_>veHWaUPs58Z#iOEJ8ir-Ghx=SE5{KhlCn0`lqyMG zf~=(Y@_)Yr?D;;ZkHs%E(&uOy3a1)(;*ooO#A0TrcZhjP>w?tV1YR3sx9+zKMQYfv z$wo=%M2c0Gw4^GRc!tQ8`-qb$2**M)Sn(jFdTD&uIRdXSGG39Z)X423hae07lGH%( zPiy02mX!K1wOP;*5x3>HrVB9?OK1d~gJ(Pk>&#_lT3Lr#(t39&hvNlP4nnN*J#${v zZxoF(#Ph86pOTo2W;PQ>+FF+t25&Q2I&T`6YvZx^+FZU(4+oA3A;%14QQvlw!dSZv zJ5tSdMzwYrCz@IUERD3tP`Wzk&H5T5_Zr2VmKG&=fSk!Ctdv!vjwLY?c}U8k`)GfHQOmyBh7A`|eI7F&RX&9hA)&yuKG-jRBd@+6lpd2h(!GL2GFeTN-==xlhS z6*~C~l_Z9{s!dWO2Xr)OQD*Jf7bRqHdy`qnS+g`UGD$N8RS>-QOy+4s-Rp7XsI6z3 z-4~9ngsENym0HxY%@NB%Rz;RrtQ2|ZNH*3YiK2=@bM}>IAh~3XR1&T=woePBI&bK( z1&B}&g?}*)ro!Sf*2f#wF`2}KMN=a(29i$Ked@;{tQy-xURzT%LNpRX?x*0g$32Ld ze77|s$OAs4HpG~OgdOZ@0m04c7Ry*tEO72;lZ3{7IKn+DC|SKdRX`~c6B!qRtQSxw z+%*wTVyj*KO`i*gitbLeDsL^DYhKKF%w#e>YW8kPFzmcm8f01Q*xarlvvo@J3?FuXY$aHOy8rCVLdy_+NLn~jMqLjs2`rZ~Af z4G&Wuru`B6XA@45hAOnCia0CNt}9i5(#1%Tn(@WL1&dL~U70wS5NA=D$Q#VKWLEUZl-u(o(<(%m)G zomUkLIcrklI$kKh(BLsw&MrA?)vY}gzpBd^hUP%5cI?`+(oSMxl!P)#TOgMO%XTVN zh?!$$5~Ms{ay}=>M1%%1N!vmdHroV9L2UvLr{SS5PGD`!)?-<4_)7*hmc(TiN>!#+ zeK#;Xs>urmLm6asDo7u4Rq0N=Qti}fC34V1Gu3yAgRxkQs8MzsW#w_ONFh_=xZJ~; zEjMsuN#c;^F5_uo^2=6huI9ct->G86 z5lK?2W@$5BmPfWLO1-$|F_9k~7 zVo584$`WYjm$-!^MM-9XT!PoRb##Ofgz21>EvyhsDh25@w`8d{thPX9Bype2gp-*n z(rISp0-6!9Bk?R;b&Swls+4P>85ja73V!-rtg+6stw14IB#s&1-Pd?hM{16-#Aej1 zC3W`GG*YlDC8!K@MHSbGv6p&D7Bd-Mg&LiXQ)CuKp29SxtjVhU6|9($Fkte*7T}3_ zDiCYh_j-MEcPw1B937UF(x&n}(qtvDBC_jB7%L9+?t)1nj6o5s5^B;#6GJR5Yb)aE zV=UUeldD3lD$`rBa$EJ|qgoh1mPzEELnVGFtT=8>IT55$>PS@RbJB(pTx}TnC#WkDpkEYu2uc}0H4281Gb<=1RD(pdn9|g+13@7{W+K1~Y5K-G6N?Ft zxdTKExueF&E2GAbD@w78ZF-bwk-fx~rj{61AN4L!D3Z9E=0d(q+-m6@GeH-2-Egv2 zwL(iT1Xc<%B=v3MZq9~ES0e~&WJJ)&=1D5YFuPNzGu6$2m+?I=UJFY{C3=+%o%j)E zR>}1RcwreTRTjjtsZ!ritkW>X<01DBLfkfPTDo;yL^pPm5 zJg~w}rG~U{!5Dcoept75dy22hdq||gO`%`(2=cu0U7AuBCCE6C#`0Kc)(X5DwN;iV z$`6hX+>C45la-It-dhnzTFcQvTp6rYfC$?3@!b-N@XYdeF3#^_Ph$**G7(~KT@qKv z*2qa1h261rWW(RRIbfm{zdhTvS0ifMX>L6^FC=W!&)by}IHa>tf*7)>A%1#Ly(ltC z1#&czV^z}?3_VI}Wp0HI?Wop*ShYw_02FAF-Y*KSRkYeTJeF3RQC5nfv3DU7zBd+? z>9biV(8k$}g{V?nSlksvm@JmEk2T5KNGRg5#?6-I?JQ3ayi#0!dE9wJXHASaYyP1$h&-L#FMOuTKpPdGU2| z)uhKXDSpkVC$Wa08Y~t+BrbJdQQgSqtm5FSn((fzYobzUm5dXqfDA7dP-6g=c_@%i zri-x@(kKzKO&E@dc}kL?=~4g%LdeCMiKJNDqPpGP*fZKOJeBTMiloru>f@6LFg4)H@c%VwWTiaSP4)1!NHng)xUfP_6 zcWbv{p3_MVXE_*rpIhcj^#1@)Sg(eL_0@ElDlz`|dh)z&Jw-*v<|3;CWENW&>c=?4 zrRnL_MiTV~Zn~~ps`4@}7ap}SjMpI@Yb}Y3l+AkUsqOosw5>ya^{XN(kwp}cVTC$Y zWv0+aJ-8A~Uq)gfY+p|#*Tt(IyF*YOn`h-ZSoI&8w-!z{WGLxY7Uj6QnkGaVK)p_b zAPiNj8ab?3Aet0`%o19i8ge%)`^XuZ%~;FN97eT+-mMDNi`u}EMbvhxD65CZB6O}1 z6w7VB8k#}?xU$I_t}H{3RgNdWG*ABk?EW07tAWNMWwMR6CQ#I~ z7)cbyE?qFHSrJ)GMr(|5P%*PC7^!h*g=lx}`gaQE8FIN7{a-TZoz_DY@8A(biLJV; z_8L1B^OB>@ZPvxOY-ENo+nS5A8y#KLF+$h#S36j2MzQfDfzbMe!zF=07~1GE^qU|B zAYmH-kY1=K9j-9FG9?f!`itD%;P@uneKqOb>fwZRZX{&ts=)+T7QlD0VhL(B^=k;T zL|WaF9&?n5i5J8L|Rkv19UuLX$bSQa~x&tkAOtK^!X zioa3cs17@$v2RzTFl^Z?7N-kW%i|)hY{zocQV_P;=A~}Eh~7&PR*K9KjC#|jmsrHH zW8$8>Q0VMKHIin@&0(icBbLI+9C25@QoVZBW=0Uz$QTOa-DOxIuGEzNn^w%A;p#g* zjMhzM%;d+k*mx;3NC}O}wz4CC^o>`5#>FuCS?eKV7D!5hJjk>F6deI0Rp#&jpal|$ zHZJ6j2E?{xXi_6FWc@y9Vx}R2R;RP#o;O2U35inYvGmH(?c@=we(=1TK zC6gpI(i;%JvK5-Oc&yTOigNV(0(LXprSHVQpyMpLm#Ok;FH~m~;%Yp$TdrpkCoryC z7{&4Zi%`ilv-f?{*qYonWihRpsJq6tx`O0VLy+n#%@zk9R*I-b(B!E{a=?cp1dLuN zEY55ek>|HqG|M!!;xNWuoROUL&?_2{K?h1ori#Y^FPb}G^FXYtDsM+uBKfp^%g>D zZ%tkc7|d0VeRbg#OqJBrk~mfx@xe)AfI`txhy5--n1-4eCa-2zn*O_p2>i0}vk2sH zf=SOHrA~oRITI@II!%(?Ndw8H%*5tW+8pauV}@aDsLf`HJw)%3eYWD~Eh;QwOQ0%B zfJ!N)a;bf`QIXsXpP0&_`3}=bCvd|g#lT|RRgfSf;-N`l$3TJQceV63c+z4j} zwB+b#9#0i3z*hZ-DJvA=kG^|iLm^UzS}M!WVO)=fgZC5$9+V-IQ3g3EcM9g3fyOqv zs`KP!%{*mS^J3Liq`CuE1=hROz2fnk8@;7f(kRVJ=8^zCa8Pc3CD?bq*C% z5>W6D@@C?{2^29rLr3N6ydpr-t*ppVEM&ZWIn*x1F=4R~#+eEy6fQV2E9ht|0$RMZ z_5T23a4&Ncfn!gFs@uu^_)E_iIhq;+AW0dbbq?+OV>l-{HPu!Yhe~x3jF8o^IayUW zkUNH);D8iuxt3H4d`QJ~K-pR&BMpo`FAqxyFJ-D@=_*hDy|y<&zmTn-0m0 zsfv5iQN*6cIzuM`AGs5ube(liSYj<LWCX*ZT_hF>V)6h%WVKl1k;5y48jKY>TF%4f{{SV=(^Aiu#boh$sj*^9NkgV! zy=IO=T%d}?RjO3Al&X|#Vl{no21{=g-PonZ2+>+j!~Q9XQ~1B}$&=<=@&5ovyK=78 zB|Pvr=F`+*rnG~R4P2<~zT@x^A6(l10ID%TOGPb^%%xGgZ5ubm!A=H4=RkNHJ3IdX zaoTD1Ws8k?A~?o}}|P;p64O zwy4mejYWC|hHW4YmDF_E-p>p8tbUvvx|!sjh*Hk_o25@#3PNgqT|^)Urj1}uO0p`k z{{UhFKwl_6J37%i0J8z|A0^Wb@eSlf1Ah`u^q}zoe2><^D#QLZ#D+cq9-T)Z?eX|= zF3+R!C&&P|kXRG)1AYi6L=AdLR3Sm7A(-(8kId0L`$aaVVfy8m*Ln?1=$4*Hb2aB?j$85fbAPR**-jH(NhF=G4Ieh{M8emiB z@%iy#?tGnxBnN>CK~g{j4&(SE;y`VlDmd?e0f94rDK+|F_RfBlu*YG;_;6l10>+X` z7v;g(m3Z^nV9bMCED2{-8y_G5Z7-1np+g|zT<8{1LEDZ;Y(~HXWlL-!2jW0xhFH^z z{{T4&*+pW1kpOJ*1n^O##Ep`NM4y+UlbFybM=dE*IWrP@E0H3qC=6Kq2>IwRPIWx$@XI^bi80xXO!qCt4599uCVLgTusnqaT-X>ca3@nO?&ylY$F)NU)VwN+>qgf*|$*lQ4 zj>OWbC56B2V1-~?GhJ}-MJ<_Os}7_@h2m*!PYr0ILot?FA%QtNsfV?hHzDP@$@v)Q#?UIWMz84xP$iRFDIgWn#m=X7rSb-K z@v&#yTCkMswF}bR)DByWc@~53PCUzr;da2^=)MOOj3?6putH)C5)2% z6td4+TT1fJA_}uL?N4%y$yzAkj+KOhzD}LQ_OnSPJEACJINV)~&sHu9#Gba8EFaBj~<4J zT0JD%$nMd?u5#Y0$W-YnGiT*xh0-=aBzI7Q43Di@gn*&Y@v5wn;E)VXhKRl%bXQ2_ zI;*JDC6{`wmq_B0D6zGFR>$0->-#K|Riql+CCV9`*qC3x(k&l1B?ZoD<@mX)XM)@6k0o*XvW*u=3r?#fYtNOC3q1u^d$+TUL!)Fw(0wLh~V&-CS&g&6Jwx z)r_5p+UiMG3X?68>3v;jR))9faZgIccY?Hx(wO2M_|imC>XWxH^Eq%5B~?hG!E^}W zLlK}A2DNA;m2#nhV(f3KK(HW;Jd+34G{AmSYmA>yR-hW#=n^Wbx(6xIqyyOOZ5+J_ zEIK1zd8gVKjB|UGGDqK!Lx&4dmw4rkkT7`{fFK`LALJ}m%9yhbPQt!PqQ_pTDoi29 zV`a09nvKk?xW#cxC7-y_RElbnOFDaN5+#1#PGzS(v(woD4gh5#j$7@9wUe)6y>*(+ zfm}xo*rI445)}|hZRSxK=3%#HSy5GCabM?S>OP^H6m6|o=o>dM)^m7^GT*g@Tk}<; zO|wF5WO&MkqhYgZ3bDUE0^q;`#pu~`(dXWhD3tsC26Gdrn~1$>>PRl6e` zZbz%^+pu1qH};KVJPjRudkG_}5hZ1_G~@{stfD|lJWj00#CH#`c)d#z$rw~nL$lVU zb_ED(D9eyWMsZA~*=779g=CRx8+w$8}MmWCfy=oM>ZYbpc#S9GsLR zviw0C3P{Z4xf963(WH{dvT2lRc-%%=Ln|kwqe8kcwQ9QB#x(iAhz@#nm69mTYGXPQ zMD+k6TtBK=osrh{p%hM=BS_*y_~OjCE~=&sZ!+cKv5&thh~iSsO|3_M?2({rFHSsk zbzquRA>o)*utc%avj)+AqM;gCUN-m@WZ|gC?SQfwfMr;ekW0oLBqxfoDa+M4f#|NF z!^D|9l(ZsgXo(UiqiH0lwhU4%cHL!+Gt-R(R-lQw&1IUqNfV-}nZ3HQv@pe9^~q(s z>{gXpz)xo4RF>S01W~Pt=8ia)W6C9#D(?)>A{LF<;q(5NHOvVk>!`xBMoA1%lX;~B zNeU>{DL2LbP(LpbN4U$GmZARg; z&y1HPN=wz_mer{8O=W9J@HLCrY%~oVa1$iR(Oa!0SSt$!C1gvgOIxs23kx1ul&|#? z7O&-K^*trn$QQkXry;1CR2EmMhwPTXyg zhq+S8EnR1(x=_|0#?m869&;neLo7XscVGQYG+7p70wS`;CX&@fCSQfS72mq{C zp_1i{UCN1C)U>N0dFx{ZwvNsi? zp3GA;hDf0iNsiQ!gC7gf#~--h(m0jmS(e-LJhT!d@lOo78sm893Uts_vZ_8+40Jd) zZiZM@hm+>{n7lCa^SJlPfIo!yDd79bJdW%Yed;B#5o*q{Y8VyVd_x1 zl3RZ2J0j7?&5jppsfLAH1p?WrB|mv}Y02)a*P663RFYZRS&!<~&(^C-TalSZva=Kx zv6&29uvNy=nw;=Rx9pZ#WU|#gx;XAgx!qdg*8*y~a(o}g>mv0$Odx+V*2%BfpgYkDy zW176UtVTB$&@Fn%YD77uNJuMQ0vaZQ5vc@GL{d1+^0-1Y6v*j%vGJYFlHh`>*4Ur~ z6pbQL7$3Hu29cyMDg{YPa0qBiFE6iL9-zAy&&pWiGAwYhE-HRG>)5h6Y>sCohRH$H7amJABkl;Hq-qM2EON*pX=JqZFky3abQ=u7VbNy zY21O<8`dmGl8!vTSLA8V&|b|L>%)VuJeW)bDH7ze*=c}F73--?PHZ%a#YKEwS5oF) zD;#c_5?KUlI>7&hIrgs=|W}Bmxsn(K-Cu$sFsU076?x4kl9aT1h~lF|kTx z8@3f>wetw35;6#PKwi zPL!)frpHN>rT+j^cAk24{pvO06pBH9F67>~VWW~t&tKuCOl@_TNbf6-ohl`_64<#6 zYeHy6%5?H6YQ(T*qe%o6-lw{ROB5imu}&vQU3kY7hB5&4HXhQUwr*tduNj?rS*x0i zjWLY5h#%?^F)rqa*32j;V;zPz!&;Uj zi1cDkT*@O^nvI5)6vY~iG>8VXC@W$`45%rzHiaSm9;359MzxqR@m$OtWH>s%wq$6g z_Yuo}L`6L0GQ3Ei1XeSsd7><_#BFMAGR0n<+cf6M2xV#2Ub69C;pT=I7$7jKBD40? zZ*pvc38rw^+qZ2_8!IJ8$=3;#$oI0awDnDuwSI}YNK0m)>aQX9i%3Ow>~V+%s?}0! z31;Kt!QiV$6?etQsOBN_r$6OG2?rE%8XLhw>XDO=O>c`Tk4xj}h zM$e5km&Sxvup?C^?^|iQ7QP40YRTt(`#6&E~BMK%$bjAQcNa8~{erv<9 z+bk7B#t#Bn7=gY-k1e(Xiueaj;jQ{JO9H1D$Rs+mNPsIIBrzXgIs>wFPx1Qm=rr9) zih)*1viP)8W-Rl|?T2&&$CEJum6uMTh-Cop`toM;aciEC>@vR0bqN{*mUhi}Cj38ue#b zf*B$lT0);Fz$69acDm8tzD^s#An(I^J5L{7AV+eur;zcpNA_H?1an_IBae+UXpNs9 zqt-LHSS3Ppcy*3qW!b$D<=p0r+uWQuo+JPpM5+5DkENr|V=P4@E>{#6V3t|qV1Wuq zS>zLO1cF?K0EH(&gSCc^b99o8y0kR|w~FnN^flvzkgWpolY19Z4%9C3@7ru}S>i-l z3}yujBY0q*c(foCQLq6;17z&^*z$Ii)L@1P0hmcF{Fzl0GVovuj|;V5kX8VZwLcAg zHLrIY%4CxzLA#PJoJ@e7i2ROH00`0g+UrD~TlB2?EInSxIZR9UqmaO4xm}E(zUnxy zcZgET!(~b3$btvoGR#;7S$kb0Uc!dh0N&m|PFIAfI^v=J^*Tk1HL8t*GD)vDy3taN z08u0=#xji2D|jo(l)Gp+C_?e%2gyM`PnPe8f#v3s#8im6Ms(Uf3XmH_1RLN6f|Wdh zAbR^AYYJS>s1Roc_jAW zYvYtoV`-HGMC7W+G1?(Zm^fvw%wtqn&I>q!YgyA%NE{ zhToq9<-V%vxNJo4n!+RY+#)7Mxa7?!JOF8T$pAWE;-P#1HhnkBX7G|EN^_X%?3*E{wv$zV`cIq=)no#4bKcKxCtLs?xU39*YGWXQ zlUHWwSDW(YJbXq-Wi1d{iPIh+kR5hMf#4DVU>FYolt630t{?-mRjRB^jQm0%fbxxo znn#rVxFyMA+6(+jl1_mdhaB!ULXiHaj%zVhZ`%{7D1rDE0G5-3jk6VAAoyeQC(&9x zPlA;G&Qlp^D%MAaIhs=uJd`q&jKqb$f|ny&DmTwYQeZ5jpK}`wSPR%--U-1Xhq}a( zAC^eQHV&DfFTE36)sdfb!3#B_le-GZx#R$$+Y+IrKN8$ZljBXl1ZWUBdIV^whCZZaR%Y2a@Q+`WHJetedvLSS zimiUZXSoTywV{N%xd{{)o#=b4Dj>4%V1MA{l$3|m-y@m@P zGRsE$2XV4l*&*V;DK{A9wjipFh66{J=Vs+&5yu7fnTroyOCEqj=#fEMKnj30P}Iy7 zRA$_9Vl*F zB};2%Kq$##A;g9Sw%nJI1%{hJOB1p~Fw=P6hQ9Y4R+RDBU;qFH*$^T z0MD;_4NP;d_WuCe?d*Slywcvs>_v9>_aCq6ERkf{KO-KPsZk+7tgKY2U3mwX0d!eM zfIeFK0S*-bLEw-gZw^^W@(0mkr1B+?kU<(Am`RlL!4x2P`(U#1Ux59!3cBJ52y~-s z#F9$$-^eaVW#P?>B9!Feep??Q<$wTy(WzwsmHMrkh_L9l%1C1Ggbb7n2VR7jg}e%ecf6LjXMzJu@I>?m1~Vh8tZ-JZnd1<*rA8 z1xWfkSWZtBFBsOzBq<7XPWB6U*)B96K=@EkA49$4d#6@W*@jL{rBF8eQV3_@zzzhm zo=VH$umt)Fpb5O~RcB+5wbz0#7sr1;pU>BgW&Z#o>nr9u4Dy7s<9eia{kV=!*}Kza zJJO(2VL1)L3j&25OCm_S*Q~|9JOYxBoc^Zk(*OQ5n3h-&KV(-Zyc!Q;FLuo zoq?fFos-K$&U5XjotBLdA}fuFh9XEOHVxHaV)*sn4O93C zHlid4JC9yV1Ov8g-}pRM8AZ9%hQ!rPn!_s8qO}4gn5yLwjO!(-G``vLc(Q^Jh# z8xcBxjBkkVwaL~=Qy+}9A`cUxf$dnPE=cRcnUkKQA~aH25kO`jdbJldBl5FIzn3Zk zn%1q3i2WzJ6w$a+0lhRBSkkFc`9w~72-pcAl&geoMG-?2IucG+MApW%>Mff@pUuPF zm%8y{rHL9o(Me;+S7@Dz$V8pTgt|(iAv6x7w4t<5t@tk6uCP;*;6xwm1yHb5M=K)2 zk{0(y#pR9LwG4VN)12Cx1MSSP?AA=j)fq-gQ!6C+mt#*WAjCY>ohO0_)PakfS%;?C2wk;PJClE-Tw zH)cM{t3zfJ5Oz;=>H(L!jAM+Hbhy#oEVbo8?KS7u zE7PXr5ko5UFnCH;nzXXysr4m_+18eL7X3RPTebr1a|_M4hmX!@>$qn zc-5oGM-h=sEV32F0BGle!i%KH2 z*rOsOh4zZm<7172msb$eS1Q%PmtT5M6_Li-za*5|7a|O?*zR|UluL2b_E<#dXG<(( zO)3YBBDd2&s`zW`_-eBbj1Pz|pNN%>8c58GBgsTC zBbQOsqQ+T@1F2{MWvP!A)fv^ghc8WK8}>LUi^U&jow^lZ$J&xsZ7Z`<7{K$u-LBwh zi3|#-u~-_m>{!OfJ$Nz|64Y3!9Kl{#sNKzCqm>}BJkbc^sU}vv+2V#pki$+}Fv9I! zhp2-~Eq<-Xs=;I|$(f>M5$-bPTzkVCA(VpqtNW5PfIx;n4$_5=PmZ_kdZ!;|(#aim zvS7U!6raE?i8WJ@Um8S(JQ94enoms&;&H8JIp&;SY53i@iboG@J^ z5ruO@DtKH$8Hi;0CuqqeidnQwTXB)76+4oEY!4Uh4xq|s@L2oa-Y?Wryp(gbr3C_I zakEQ9CQNgdnV!|E@>;JPqzDq+O)q*_(Hw47GdTz<1i_9m%@nsGi`{`{5fi-ho_u_; zSZFRmqj^xr9hgC{EU#9@h-MAZ6z*WNy-k96Y`~L22UJ3n)sRJQOSx+muUmOqBClr6 z$=z-0R^7U?cQ`XIJCQBekR)oR6);SwYd)32AC3AOTXbL(uZv->4y?Q&~FTMz-at7+_&dMel;P}e5WSBDMAR4*d$pB zti5$(P{{yql2*S3KuP>xHVGldpG`<%q=h7@1wj^8>cOHgMQMn&)V2E(Plm`q@Re!h zmPqW2Yb9ikWSX-wb|I}l3F|o(?8hmYN+npMTQiDzJK0cWjvh6laE{F!gg@<`d}M+- z5?(*}K^21^g>v$8LGtX<+=h5zZZgGR%cWHR z06le=RDN2mf`*alu8z5S&MPC)nVdyv^L20-Q+EB#ws!Vn-CH=Gt+Nc6+QtHh9 zdY??-sARgpS*4J(kE2p6_p*6h-7M|f(!GS1Dw1ZdQ+V@M=)+EHGtCvJnzh01o=F^n zTumskSs5zBLn`zqr9MJxapj?jMSHZ8CoS5@VJ4$0mvB{jU6S|AdVsskf<1us`R}bcq#*7(PA$XPv&nynXXNg~(aWCVqFudQUWFk^a?7ehCPuVpeA zoND0~-G{C1G8QAp-?>73g`T68tPwqGRdN{W4+~tSZq$_C2!zi%qelIlTsQJD$2L;L zO7WLiq_Gp2>p@1ES&pqFX+208^ai6KWo8PXmPahYIT5rF zMx87{A($4TtVXUkC3WU$84CJpU7a+_suNmBf$S2&f|UgnfEX|iSA^3uTH*(S(@7U8 z5IQ>w)|b>l|rB)*}2B?{8d0w zIHNHH@Q+2EXLhi7`D^2``J8-tDi~T4RIY9O>Q<^ftd=L1C6Yc&^HNJMJgY3ROw-wo zqnga}J$-wlj&gO$z?N{Bs_QACR6``kD>o)YwQ;UmmTY80hyf|OOrRL-M)R8{yJMC) z4LM{ATPB%m`V~l~F6sr1AS)g8jb}OHl>sTG%V`y5N{t}7U~Lr@jbErs3ap(xXC7K4 zg1m~sM1nSmOA^H)-pZhgNMn#Xh1(;duq-(b>(gsj9KjTlMipc>6sja=x~&7Ni4Sjw z5{y;B^2$h1-arPlI*OgS;;|f!EqP%HEV4D2WmW`D#R8tp45hhE9CA$KNLnRCZSE~>{*(mg;B>I4eS;EWEyoQ=EhRYJbE z^vPh$M1y0+0&oos6Lu=<&G8qg)MB=4MTV2JRbf(ntT8NckOVQ;3Ba&LS4iUKo8nv% z6RfJ@#%mKDRWe5IywWR@Pq&n9bsBoNRLA zjjS}X){7f@Xzar^TUREH>%}j(lDZZ}mU!AlCrg&)`JQG}iWp^4f)g^^lB!)M-(#s|^C0b%>LEwKT;;-JDAoo)qGXP6M zwG73vawVr@8)D@4-nGM!mlaWO*O260W;RN8qJlZ25yw^jD(MgM=lrIg#%rNE+Yi#+ zEkmnmV6R1x>e?LTO>8`2kl>Bqkf0e6U{CU-rT}~o;lMeldB9V>ZbS$^4z?(+?@QxQI?mNgW?VABH~5>O#n#>X$6&8q|&5B zB-W#kD;LHOH9Sm_^RRM~$f6!*e}|#vWMBkAn8h!Y&`RhnCK z*^WDPvKJ`Xtv$G0W1^KR)m%fK&{;G z)vaO#wM{uoH*d4pv0B$~JfXXRaOdUJI=?WIM6%fR0tqyoT3bpA)CLrrQo_gp4IFK9 z{L^|xAas$VV8%9K7;;q{YIiz8)Cnp>1!}gcCcx5Wz^-jSWK# z6;j;mIg~8#X`NnK^I_N?O}jDy*-{1FiEhjp1W%N(kqWA#Iu5D9g}>m`Lc z%r3M_t>MvGv%4I2&T984XY_qJRin^A2(uv+TESfoz+iz@WpiNGtVKym#S7&!0l_X+ z;KoTDZX_-b6IHn)hY_nu@*pX22s_4lHX0DinX(!=C3aaVVcdLqf>gC*{L3p6pfM^4 zBn~D>Yd;=>xuh!^_zp7C{fBB^P04h$`fCem9IDt-= z1Zlk1M{ZqXc&K#yNPx*4oCAKBAS#9?iZLo^2?)}bEIvq=)lpwJnm@&uMO&v(kglYw zJK-G~LZ$X(Nf>t@V2&hBWW=zhvWnJJ$IO&o&<@;VETFVwLtuc%#}lvy^caZb0#p!M zCNLXK*;fQ{Pzr&>l24XASH{N48Z?zo!FR~f9g6RS#`}!k<8B3`bpqN!iyd+s+k1T3 zzStX#o*}5$UO`>6IdIWAmN`Xy12lli9{a4gjTKLnX|4oD=T6%2VH(?RIda!0WOk8O zN|;~~OpEXh9ytkAQdL!$l|~`?{5Y9{D&NiEuw7z|HvteWwq)ZdRT@PhN}XsOhUMUT zcPA)W)7m^yK8li|_T-RQ=>XDzNjm^Co&Ny9Czn%U6nHu#{{UzwmWl4#mSc&8c8I24B-TDfg`H#N@KCBFj9>@HznhkC=r6LtUU5Y z-y^2_2TV1gv>*e^yrofLK^QV{V9<$Nt43KugSAhP2YtPN{97Q3$_p)`oEs%lk5^!; z^aAh2cj8(zpr2AeENKDUFaQh|EX38Ft8v^D#buJUnR#G|BA#(x4WqNrNYYT-k;fXJ zyD3yBlW||;3zd+mDoK#e$yPWF%xi{bS7xkX5->z8BUl`X8P~U_(Qpcd1IduqLk*ov z-;qpGERxL>X(xH6W^k&pqNCs4y*%0Ro9MYKEG#wgqt?j(hdl zr7tYAgpE{1H8|N+*d$CPk~o`Dp;;zHeejD=hb~aY?&La#6?iJklzCmMFtJ}PN;spN zypg?!TJ+*=yb?<|g;#JTY2|rPyft2XHJUW)`;G^+BQi6!Q8UP_KWSrB4%0J@o-uWuQ_o`j^23f^1-S z7_!3gTrJhg($6CI6xMo%`3KGkJ*-g}t#dXy$+4DUgFl;tz3pz-lEzX@l{HwMC6+rl z?1HdpXZGOpzkr3AtVm7y?(kq_;=O6A1jR+-37({n4u>#NL*+yoMM ztRm+`(u(|79?YkO>h>h8T3Be>sT|TDVKYU>;fY zuV}$GRa63S2>}$Yy=twpi(|zJ;hRupX-QC^TaXk6)zSbsre!*5*kZ^di23TdUT9;M z%+>4~$kDa2mW4pE6d&rIwVa2!6~gyhw>u+U?yFapvM!vHXYD~MqM0U1;jbKUW7{)j zk0-4RMoR+A)W*d2ByMefMXu~(NiD3wQp0?QL*jj{gJwEw-I4^7L`Xf%g>R$7$(8$( zO7ieABF>V=>|t3s2QDL~`fDM8xY9O8Y3kaMo>j3DS&q%MbnSL!TOdUoaYZ|;vN}xe zqmo4CRcTI9k)3R57(-w^6=O`dM()D`MS>YYB~lMIu8P1@5voO^W3ixGxU;E3s5-0* z1UOKvW*EAf`bi|&32CHK%es?Rigqzb;nrA>zqb`><%GsXs?u3$j0p?DQcEorF1mgi zhB*HK4}Kz4libFiivIu{BU$2!B$CI`cv$3};*FX((s@zjcv0mr7wv|3C66$x+_WA+ zCMw5nQi&g6yvpKMXtWv8Wshn@J8*EJfaLsG4y=ACf+hT2_|vl+#}EGiPP!#hBB4xV zblx;}e`qX4Q${u76@td0IGuo)Ut2KHssK_1YLqo@2^Pn3T8kaQCV>&pAXwue-SSlH zFQ|c4gGwx83N;*x1l;lK_Y^WLNLfFS0fEs3KliiX`Q``;0UWkju!#nTz;PpC!P6)Q zVa~h;@&P1yQWO9-O1w;{923Vt5ZtuP3TZ~c(HsZMM~?<#!)xgXp^i==N!bIL`Dl`) zk1T(XKYkb!qvUueC~M1Qwi-jA<(BoHX#1|Z$u3Z?1dvrJr0>j@B-`|Z9&jHPSklH)`=hU*8R^3VNajtfmOHGl2d~>`WRz=#OqGk6`q=s5rCvKV;eg`fuF<(7LlZ_; zOD?igmb$CSS&?Iozjdxyk~t-XHfQ{p3l>wLqncSGN%7rK2N3G4@ZITy#&WV9p$@9? zgbd+8kg|ZIR|YDQPduh%N$txFoYka8vDkQ-48|$aNrHBlly4x4K@=$@Z4$DdKhH4y zOp5nPVr6AfsF4g;l?rK1mB}hVP)4RB)ciOf!N5@9tg7nAru}&ipbwEsYJmpGZ6k`W2&M;tvKoI z++EqB*|0C+EJZf&S;x;c^EM@_ME0w~<|^!oJ-ID2DpwK2@rRyz{93`$_65lDUh1UC zl_i!K4Om|Mj~!{`ocp~;WvfXPFvPg(Vyz}B)@?netwt(?x>}{|jl2yb6*-#DCn`83wB%E$!9S$WUAw2&Dgso<&UT(hcA(#Rtch(29+yU`E#llE0@V!uaw2f z6u0U^CZ!FlG{>^V)u(>NiKnj&*84ABVmqxu1y!wC>=^;GGYsG2T*hG8oke?j3vt3h z0bd^zQjz7y`&u&9ij4_zP1rHdfu)!2_83d=$u9^IM`3D7yN;dFMc6c(z>fFWU zC{m8iG{w)_f@*n7GFXnt%RQMAIHZ~&t4U|HoZ3XOAK;ijFtebTs>aCft9B8cgGhRY zq#9S|V$4W7f}*Az@d?WqB=k#qf=H2`h*ne#u_!7)kc%X$fCbX^PI`axEZ8d<7&1P~ zw=H^e#+b^}g~(j3S1|=ig!5ex)2)$c5G>P)QyXfn>SE2Lm=&B?>N_`ktt>Im2#zT$ zWuSbV6(nVj(6Z6h$WW(ZwMy1#$hGcBktRYpVq}m=}GdA_$c-wVr+=#jKsYOi?4#nnj&qu)mcjwUDdS9Xob~d0>Vf zRPqfKdooq5mL=LO>|v6$_|BuADwXbwv?^GZCS0~YiCW2K!isqVVrp>Cu*oLBEe@i? zjFj+T2G@S;PX zO2(=f&>5{pVkP73t4%DnN=YgGz?{P=kr{w4f@y^4+$UGo>MH$RfwM5j;Hq55Wni~9 zJ2#FH+RinGr;)DmEqX01)aAWGg|@g?h5KQiL0|LWCD&0JY=y9 zRklNGK!8C6kWSg+zs1ZX_c8rVna^ZwL)G0VmhDx=(WBG%@ZCd|j)rEXs`nwem&fKQ z<11Lbjj4{w;rk*f#fcGY#Sul{{9?f_H#JoCUsKJHv0vKavV$Fir}{jPG6%{wA_kmg z?W8JWSgd6!QIb|J)qvv~TYryyI^$nm&!!a=h$Wy)m5?tMwoNe~j$T=4+Wwit65<&Dt2)BB++I zc^rM*Y%N01!b>I|Gpf0<2EY6Xyx-#_=8t<#`oPY@u8B{zu3y<75qeu><*d^;7%2 zymlpNX1ek-qq74vRkllMYt;^5f~;UK1=GsFmY!LqXO*7CmC8-pMY$DOZOkBz?p2cP zQ4*(=^Fc~Czcdw~j!SmMXrz%UK{SIw8P=OZb#$FX)esnN2Y_0)H$c`XV~eWvr%(cg z?ko&>rMvP@NZzeOu@h+GNFdUEfzMN>@0O?EUzX#pq);ioYGe%cl)gGBfLf1o3|%2D;DL+ zRQYMW6$_=AT1bl<$S88bik&xQKq8HkMyR@IeRl^?RuRYm?7@Q2ATZab<~hg!EfNnD z?lx>5PX7R~!b^72SE~(`mh@NRy-5dp)#L- z7qT?1*vwCF9R}UtT?&mxo%3(48BIddz4@!x_hT< zVzOB|96t;4yz#?oIU%tGvPB9!GS-n+So=ql5hBJT=E1myEY=m8(NK#I9l5fVp3W?_ zI(98R+@?iDb*tZ#4UU}S!N)z6XsKi+f{r3IW-;BlY_V-Gi1TYasAFl~B!p>~nQvNF zk<@D{bfZ$LDuh8w!JLDthF2%c%M478kVP!BFlc#5{Us4b>*=WhnA2)@EbQ8lEF(x! ze=-?ZB$9FNMQnaJNn+&eWeGQ6G_n>E?pbTZrB*oLStPM+BsJ1W))FEYy1OHC4%8CX zq-U!vbXOYY&Aen*YP5AHxb|_=VV5UfSMSS8q`6Aa6pp->V{+&k=Ax3sgxHta;p6T5 zY)O&{0!tH2sc!A0SWT;cFriQEz%?CsVN&Ku9ouu_T#POF#{Gcg2epQs9h=({Z`~pO3crpPhi1p zimv2^P!50?F&59H(k-8t>zY!*1#G2ui!hMZXm6#FV$74m1a^(D^cAc7T#~4gYO1ld zMs$+1BElY2u1z&`hONr>>d5hXrH)GTL>eifGs9-NWZ`DC>RY!YF46Oi;w-aADlWZ# zHtMJA?xwwNz7g{HxT~#d_c4^`zcnn4Y2JCK>RCgqIO^iOQ&pnr8pZBPd!r)H6@lX?=SnH59G zpoYDL*V6R$4nrN2zb$n?9ml(G= z(s)8 z>rTyFNrt7H3u1T?#h=JgWaH{w9d3YwKWNL1y@0utpDBUIQI{Qhl-KLc3c+@+eo4e{ zW|~L(8`HdLW5n~uFU>~3w=PF9Zfv$!-pg{-(md;8DJwK#S)q!W(@5cpj1=Km>cdJn zl^|GwD$+Z=jGvw;93-XYk!haWQmms(`hch`%oOQ!B#HwzldKwH<)V@$0vd%MNMA`r zP3V+$2*H^G0$4m@B70TTN|2l(SQ^nmS}E)Z6+?Sy?9Uu=xPI?-BL{0an{I4J`=Q3s zfj)g!j7ZI4nc7(bnO|NLcw;zzVAf8f8U~Xptm-h%I(l`;kQBwpD@WKZOiD z72*cRBBYQwoelU0(gFz?EEZQ#@&+y*Mg@srNl=~$-+(qp*$2n0l1^xx{KRCOi@NXM zW3~3-%A=%_w`wE|P^@+vV`I3w;z?Fzju(b03qtVmb`7HCH7=wiFyqJr!IyhQ&`_#F z2${-vz~s)*TqpwOVa>Ea8d4RzAEh3PLp_G;5^5i)wZ;1oP z$Zu=Ytn)K=*L=w2dy;ZHMc>STb_xEEljr(7R>H*(HG*n}_&FJ`ztHz8G6)~uy!grb zfw{*EoASoZAy8M8fGTowIV&@1Sw|p@0+l0M`F~sWoOTvy;*wqI6t1@1fXTs>pe7V@G2{ zkw8>vjy#Cp*ajJ*2{_nYgWAV#^bZVD+vBxa0E`Ue;P^eg_)6vGmzN^@4q3lt{2(fH zr^2rtcnzid@vk0(ODY|b@)062FWG&BZYsJRvEfRdCu_)_N0xvj>>^hZ1X&qdT=pl> zM%VH3IDihkpRd0M(59&F@$gxA1_<0tgOo!}y@9i!+t5B(9y;PlBv1v519R0?=hU3_uuha{#(}uO|5bmVLV*rp@7&uSj29-!+JQv=Ik>}3z`YBq;D$I&X zw!dOl1bi4MUI)Un5=i-M?|gg}B(12Jh-54@6s&RvkwJ6kl8>e@d%zURpm#bj^ada?fi9nJ1= zI7C@vA}Y$9;fy(nB9r~Zr}79Fks-FL{8>O{2zCVIEKN5coJm=cfidl#Fv>jgP(zjF zprb(YE3kQbk)||DFLXygE-XrZ;Zod~fKS$dAxH;`jd<{VF}aIqqj0ddCE(<^oHKaj zN#dbc{F{H!2Z+!BiB_gllY!f~Ae`5n`Okg$7E(~zA2F<*scYWxu%qq38xU*T%3dHs zHz+`GND;+J^qmrgG7drV8;qq?Y+IxeA~aZIZx_Di>UNBa`Ka zl?()foQt~hF=MtcN57nKmKWm40~dlosvn^n40)~`Zmp0z(bkzn2oxw??6SC0b)po5 z-~=R+Nh)+O2}&2z3bBC*c_Y&^SW??mV5rZ7fv}KBmfjI#GnKL{{RX- zXHFLFwUVtfbCcpWB2NXrisX{2?HU$OAn-yJh>z5=$w$$2Bm&?zf#k}{+*f36ytje@VZCd5^gTptqVb_D zLE9nG*p1i$pjXDj5x+h^h(4F<(weYFD7ARHtkBBu6VTB_0ucrR~JZC-l2Kd+isA>}^2bEs^JXc#(;J+8C8xACMXV0isWm0+Frnz#2LmxHGW_+w}4G z-~Kpn4TM~oQB;5!F?M0K{>j)H8vq@E2j7pauM83L2Sp0W#DWfnn_QG_QHHnRmOtLk zf%N7mj)7!6iiHZ{n{2PNC*lHzUk$RqK#z&^{;Xd(!-WjYT#`v6LA-11=#8EK0DPEu z->9HG_S+zBARV%k4MK&^H3G>y-3she&Klh6$#hg@&UZPV6?MX(d@8hWxNpM`wyCW4~_0M?weg*^XgW9)5qAJhSuDM>K&5 zc!4CaDxw%kCqgyiw1CEi*eyekQOS;JISyIji&$vo3JR$VPcbDN$hDGkXcwYbSsY`6 z>$on-OAlQ}PVQz*o7s7+q-cv;Yc*zqCWZ%=wnjNbbm2<@tr+XgVp_K+m`fNuXHs9q z=Q>Jy_VHM`u2-6@qakB>`t~2CauD0wB`l58V)gjK)Sjd=!A9MvtjJ!iSyEWX{{XA5 za~+(6DUZp*GuCZN^kcbKD{>ojGPY}p)(Wv?U$mtvsjg$QR8QNU?Kq zx=$XL^-+|9{-PEdwMJD{*%swwH0nXIuS=!5W#xKzqd;zMdHWeQR~s3hAwBhYa?>R z(%7w67?kFkbnj8x_qVX~)5%J4_2^8tEy+&fT8{j-ppMD6TFvA&(kjr$J4s+%ip;=d zD^oJlmh~snzlnOsr>+Xw%tbz<$9}U;)CASXTUCx*zv~)YRn$o>hfw#TuVz^!p4H@) z)~sk68wy-UQ{tf!SHS13q?aUlS{!_8ka3sbn0pT;d99{03#kZ;xKo9ehA7R-k=hh_ zsCi3t<@tzRPL@&}0evN$mVTC^;nkE7SSUIp1C1_LUT_3{VhPcKI>C*uvVlT{Ag$?O z%Iqn1>D4RTVShw2u>^Q0Sg{5|MWjMHS4kyFFtfNW|&iv?{5P zMo2Nb^K`D~XsQoyw#^(W0g0IMk)#tHg#lKU>D$@7f-76b=V>b?bxKz2OLAAMRv+7W zC4TLg5^Z>N&4CR>#{~IaggouLT*On36SDi&e3bDLaL5#tu>b`f|#WFmB^$$HIlP>zC_oSji^?@iRVck#1o-{t5=z4?<>a10pr;Z z8J0-in#>Jx9ZI6X)K)UR7IlCy0UcSz5(hi zdn=HFT;yt=oj>T!F3KCRG=3k_E00G!%RK9p!dk{oC&E>^T1fH~>^e%VaM#XFeX*5u^ynN#v1Wz_^`;dk%-Bf93{_f; z>yM7sM&(%YHei;%I!m`V2dt2#k%}=d8#k*M8cHc9!&vFk;hFA&t62akJZKUFC4j3U zuck{5whEzi0Y@sztGQ+XDI|a)T}72hv$?ob$70FKp^@Fhi&Tt#2w{yIfM$6hSma2# zI*#CHlY=ZiqBAvykF=`5vj?6-AO~z2dyGmRauQUmN;pQFCtf(lGarRY#+ z>C5&K9F-hjSaj8#9!01}Mulk%(AA$b*!wkXSF$IEEcp8nsw%84DG{Qzdb^7PF_u;RGZl=A-J2I9Xsi=vHl+oK;Go7CE3NzU!yMM$I`9>p+CN)H4rU0Dw=c|4 zg&eSj-E=HLnYD#0p#Wl7HkAr;G_e`+Nz2Uc7n$X?8BBEC#AwCdK&YBo!|HNVO6j&{ zP%l#10q$pcE7OVPVWoM=1{lv1^PW-RpGALcmVb{PA$WzN>t@^~KDsyf;P3OA*rHlB{{_^{m{P^9V8( zWRDSt70j9V>t!L1qa`Wgfu{E)+8wn?VsUhr<*)jMAE3IAuQDuJn&rC2cE)slzLd3B zys4vl(elPpHS@f;C<-it)GP|>3yGu(BZ26W zBWE(2(y_C=YC>LOK3tSuN0{ei5*UqW2**%T(4!M1@z@`ju=*qtT6I)%Hj@XOwOW=x z36jQK%+bfeUmBU2*+xRN6e^0<-u(Awip{&7w2n5ojxOA36{Ut}l1XJd22T8jn5}j^ zjb?Ib*1JZ%9NiMUq!A04`-<{S3``7iT&YszRR;^tV~a@Ox;Fv&OEF@;Z?7|TanZSV zqkzTcFZB(qazzX(hW`LkEv3WdCQ0J9(Bv_A_?oSI%~ly8k~!tGKdoMrb4g~uW3b{c zZQIa|YOG!-ItUcoU~II9e3nQ71jobHY?31D8l#YpnWE7odd-3ZXwV7YTqG-iKz3fH zvl167!5$30xe^06la23P)g{rydC+(79`W~npssO zt6pX#p_aZqVLU_08?kq2)(KQbNw56w$ z#npvuSH@ZQQ`n017~aGa-u*^sqFD{(Xzrrfl-;9R%0_oBOOqXa>%YlU?$vykP-ODAqWASI%N=u)HM3JTOQ|u`#C45Jb!4YYBu$yIQ{*dAwP81q;PKR@ zqe|0Fn#x(Rb*W==v(I+Ls}x$gBKcNBx+9^LHPUe{fnI|f$D6nh&qp`GFeHEYQ=>2 zbgbigYR*p&PKG+1}XDdHbHHM=3IB!c*q?RLx9S2~aSk}X1G8M8J%(hb>Fp}-q zqOlF)wEfgFWo=)My%wHnZOsiRjV>KfPjpP?hf zUY;JK#x_q01&Y}^RpPMly=J#=lv%4Z+NEe?wObjTv2qA8Z3DGvIqM#OKh$5AGdT{J z_SsII9Z_#3LdGko?_}AsGeJ)6nX-LdX4X<%wqFCA6dF{-OmG;iq_xuKIW5T4>&M)` z!}*S5nVL!F^kam-s=z=5F%xYX07|%uA=BxjBPy!9AY}|Z&pQM#K^!qO^3S8u1kH0u zx>wXAh{@dl0Hu0D#5Lf>&0gL^8%r3t+*H{Ni`cmx z%a*cBGg+~kD{?sUT~$v9HOb_3e0C~>Rj&{XJzCG6uZ4Kts`T}lcvQVcC}gtmB*z@m z!4P;V$zHLedOGt;zU!4)@sD>OUU~gI{6*3Du9?H<=VE1h*^B~bvXzoZyRr1nEn|kg z7;J`SNb$Get6g1^TM~}_rdOB<&f~K5k4)R^oc+INO6GGplF8<+)n|ay#$)T#f?6jP z@8_QbgT}!JOI4mIxO?nAN;vAPi6)+;g#`S^;eA$D5XKqwystCH7`~63$m4iIXEv`$Z&JcwE_z zDluBS7>)rmm!B(YDl*F+I~pdQ#If0)lokTsn;2|hi)O1{uWu7>{s!a2CMuiDQnS&! zXR2`dS}|RNDwxd0d`=e46{lJ4+{jyaspM+KPDed6B^;c~a~#*MW3w2Zp7*Vhxn>Mh za!Y`XCCB36w^hvesTyw0xp9TDk$Za;AvZ10Ze;3c;$~5uC6t)Ts5*jZlUP;YXB$!*cLUhZml2-=rjNTV;o=j zf}~u$5r8trfHpraHC>IhQ;w_DXbbUUM|DGJEs~>30Ixt$zZeEq41e>}1sWlOl1ljp z$o2BQ_f~aSm<4tKg1`cxj!YQrx1GpWQJz5k9~J6lZLB55_?d@>4_>^y!!ZDp8pitb zk_iR_aT!Lux0AobAAbR%=!Hl}#uP@lU040OX;#=sJVr)`zCVP%CsduyaEs z(4cE`RggfgFu@^(-UZ^1j8FvC?Sg-PEE)24rbt4-;Zb=$4lrcEBB8n zBV{{IL@E>|L2ypX08gD0q6h$;dV$i< z2e{hD93)m2wAWx2Ad3dOV|xT{2*?Kk{i~{Ck&JROm1Qc=v7&%6JkG-vCyN~oX?!=5 z#Y_?K?Z#E3MFCaFBau?SE?OXbN&f(IeGLt%!F!~LqwN_Tn_d7$cPgqHNjz}if1bi1 z1eOD2>i+;%{$9>yqQ6%Ykc$I=v5&|`bGrD`LkUAH;C7W&EXQXS~TdBFOBv zAEmFw6k2X*l`Tl|lnBMiRn3$BpZK&VSK*dK8P^QaI6EGg+0u5rfITZbXh;75P<$p) zLz-yY2TbtG9&0w?UJwB9>eUL~_`0pznA$>Qa>dk;8I%aNSbSD)QM-90Fxk=2;s>XT zJ4osYnaj9dDs({Fo?rJz^f-`71IZpeRdIe|{8@T#>>XQ64Dtgkqd$hsVo@YBtTCg@ zE^PTDHy+?Rmfi97XXV)FQG%r$4kXL?&IIR{_S^VnRZt;m?b_VjL8uvoJ)n9P01 zw8g+G+-dV1w=>JF%gfIW*_J6H@N5@Q2qb_slY$AW&8T^fT6Q8XVhK&{6saKs?_@WX zvOyT5*d7;^CKD+yDz7DC6geC=N`vzxaL`l#0JGqbH|VTo0phGAC74JLF(Yk*DALGE zmLTs(ObI#w`fp-6gz_Yc6vkRG9Ti;}cD#Tm!Cpf|4G%nt;!6EmjK($!iz5@vM9NE_ zFSE$09(Fu@Pa+r)eN+#D)GB}mtbP37wOR4Gwdv9MZpbIj<6%U0{^NultiXzh(z?49 zV6w1`^Kr}K!HCcUl7qy5FQ(t6;J0YSBm-q*GK4{>#~tYZ03t~U%t!a&jqy|I!omAz z_7ExucJjzrxo-i3o#-e4csz=)*d%7ijEp_I#LP;u?nnX_aG~R6Ct-ji`4wi^`X^oL zG2bS}euI7fqaJ;@kr+}9Rn-kvYZ$s8ziPWX1551e>oYh7n~IR8GaJaf2rI~w@?ybT zWQ~$_;W@9Q07zqXA~K4l4;DrYzaTaXu7E73N_FRuC)1f~OUcvQ&&^6Yv@H81vHCn% z=r+g2h)tb&9DOHdnVtp@43X(mT;nB>Je-%3fCnZFc66l=jRELctc;2z14MVLHM#A3 z*Bq->D>dNc_yqVF0`psO9JOKRLdGzpHk6cN7DgLQoiHb7XGAF*1d<-HJh_v=&P{{S;- z11bir0u6&-asm4aK5>374v4P=xiw$y!MqF)0NFUK@nwi%P&^HVKP@VT*-)c<*%}~{ z+dqCsFIa_MAaEM;G%nCN5;RA|Y_`wX(sm0pJRKBsq7IdTUAL=hHy~HPbGPmEyE*!|f8}rc58G}M5g_BV z1e5)QB%KW|f$)5QHNUardmfy}T7)Xqm{FIL(MjB)h+{S<+QV#acPnBR97r}2LgpJInw-AtN z(ml@*2(qiI%I-p`a!|Uetc&~724Yni4d4DptdL&m0Ru|z*u2~ES4G9@UMqF-G{2wj(P&iqgRq5ezoF z-PyuUVN-1_*qnlU_veM`nCaJPC|AYZl`q97w}NW2PMV@gUI^{HlXH$ZS>}~Um=p(Y zE22QX-a>N?c!hK>V@&`fTK#93uVz}VYc}_DLj$AhA$M*PV(c*eL9zn^BrIo6VDX@-jM!<3Uwawk)+1 zWSp7<7!(bVci4Qi1eUxpEr4W^3`L`iI2%AJ2kD`u5gJG`WgfLKH;#nV{&&Y%OWg{=mQ+3$GSvWWG>uQhaMnnmkvY*+Y`SWxi{X+86~eE zk~ZbN#jvfSg|_P%Lb@f6+hhX3ee7@5fTc;IdtbIi_#^A!ka(=j7y?Ga7IJ;JJB{xq zvwRq(UKL1^OHDdZ6Lx~2EP3gfbD9YmA52XRTF|UhOP3X+?AP6D&uV)RR3ZxnM3O+ORq5Og8KYV_tX&0Y)gx?v4;fNO z9c{~Dg?x=_X?mfFrIuK$N873+l0&kpvt8$$QxSmQRUtcK(xx@yj5Ox0J< zbq$-o^{>0pg1#RWjE#Rwnk;QNDO1LxM75?!r|t_L_4_Lnx9p^on-$Vzx?)O^O#?i1 zD#+9K;S;TBB#j!dvPlwER|Vb`a*f1FWBYz3OqWv8>FGvlS8Ec%ZaOsL%h8Q0Q^><$ zQn4C8xW!wqaz&QKSrt~zh5gFWM+B_R>2&N$i1im{Qqn>_Mq;YE19cSADd@V<7uZ`p zIOB{ta7rRFq;paQ2Ufio8n9vvc2&V#3I(q7Yw;##)M_5fRa&sYUbk)Kn#}1KiU`=U ztZpHeY1y5WDom0yDsq2c1-J~jJ5gAAy`Hb?X#}=A1Y{PZH|Rl5F7YNlH88T-f*R7S zl1Q@z5}9UMY3u~r>SVDk`z3mlC2HPF+5Vr5srs3%Xwr!y|V^B!!T2S6LP$S zB`L?IvOu9ql1PnxPQg`yg_zwPB1aX1!%~)_REq2CF_1U_hHpq)4Na{kMd><8F{!h3 z3NTQ>FekJ5Yf&2Qf~ypHOs5!a=O7hR^!h0TmLAg?r4}s9BJ!_|_ORM&w&jk~s;n`S zuURU1g}0E!NfbF6&|H1(jDKJ$fJ&| zCe#8^41y&JtR#vgVt9z;RUNPydBWTtx0u;aZ5P!!oarblPSW)JcwQm$ z$60}FTZZaeqXuetCz-#X{&xd$=I!ji!U6OV4E{E znJF={;pr@%=GRgC%{)-a4VY_Gw|e4Sk}BCrrG}Nc_$uq?Ok-s|b<;`FnT{{W%s z+_`RitxGseUPAUZ#uqTRag%p!WMsh0evT&}UY0WKwXE2WA&$9s4Q|z1duwTNcdA>* zPa0o}Q7s$P<#5V51zQy@!^k{LBV`PPtNhi}v1r`t$4TI_xAR|-Kj^&gRdhyMrTU{G zhR1ZmR7y4SH0fW+t`Z!ryrbl;<*^NQBBV1g_oT3r#_1rQNSe=~_~paLq3w#z}ty3y+wtmh&A&WNa6iE8!R`Vf)=e&Dy!du8qk@o zoMt}WN@Qs}H!n;_QD&`-ULPGwB&CLlG4#zga&h(Q)v_x!y4ET{it|>e*1)S{C(FEK zv0hz)@1x|>q5rbXjWS^FTA5rI$ zQyBGCp4^hrxQ|&`2v~ttl28q`Jb+5z32lr%Yb$;Xy^GZ*lONQW{H)86j`mvSUe+s} z%GnpsU6`cxuz~8O9Caw+!{KjF?&?Ky`_FVw@jX3?$D8&mOClyl)EPM_JhGaUt}JG~ zxhPkfLbV?zJ9Fisf?sQ5+zWOnV3x(HEWmMevnf7KdiL`6szp{R4KhplE%bmj#>*m zO_=>H#n~%QEOjEDHprgSSKysb{*jfG`Zj5FCS7+paCjih4VG1O4&twn;$QN>w;JG0{?mnUWk zL^ELeercATLn&HTj#|l=mMLeC2@H`l_aeQOMG)d$nxe5uAx4S-79~)TfFNPC*TnK6 zSwa9KBpvbD-iEC#l?2Ch&rswS1CXUJSz3=4aotCGvRObf64=1fwQ9a5`{SsZHRU($ z&u1-UMTz8&lx9BSrHgCfbWDPxDGihaZQ3gk0M5iATs#@CC50h$P8%-0zD%tl2{!SXo|NH zpgxHMz}AZi4Wx-7joxDy7w`a;cC5e@;Kz{-%V=AA-}n6sQ54Rx79j~xIT=%#2TRC} z@#V;%jX!zZsv>~e7gd_C1RlcivGc#sU%1B^?4TO)-s-Nq;<9|#7$y=nSXh{ul*kAn znY0Kls!rMD(v}i)0Y}KUFOQ;>dRlCOOBLO#&>H1nIteFkT4kmcLC{ip-ji`7?JBJ0 znn)&?Zkt9C&6Ze}7UHl{j07>Q>SqeiM?L|h{^&=S+xXtH-^pvPAVSTJI!1@rizC#}506~v` z)Ai{`9V$`B2#zDbEKs*86n^Bd$<|3{n_bzgNh?iaR+35Nk=&A>ZK8r{FH4W3Qk`oz zZQr<+=~JUhq)lSYn^$L@Vy9lUbdp)8u<^wdNXAD10!`n)jK@a|w`|25PhqRqf!s%C z%z+)AI<<_8EWBflSS&~ zD|WKod(=?T#9O(rZI(lk5<`^CdwsjH0eTj zy?6L~C)1eA`AU6RYb8WMB$r~dLmP#mOLtcCcpy(xpv)g4oR3tr@xust`Kt9t{Q%4G4D;E318V`=1Mvu7t-e1cMr z6Fszo6*3LzlC?gr>3dLH?Z~+m$YbP_9w&~VXzWQ@)`goAq?t;vvYP9cuN+h|(nTcr z#gdGW%KG0D=D+%HG03OG9zXt<>94NFDBf8)mX(CYX&xn!W*oXeK-CxuRH6h57dzoR zi1?o^&%eZ?aq(j#dQ0j$M-M2mNBD6JYa>L^ndRmbwaQ(U^~hW?Z7k_;$8q)UaxRh2 z+Pl(q>Em))oW5}2)_eF2HX^iH2`;8K=jn@iGV47IRvxsr>ql<>R~;>TN{`M=W?=+eV#Y&}rPJ_9D%y$G)b_D;PC<)8!5*bNl~|COrjpq+rCQflNA$fm znhcjyO1XQu)V0&?G|*NOX074xReSjyrCMQ<&2-I07q`b+<5hC_>o#oHnQPJEc~_RS za!Ds2hj0a6z>N|Sz!K&`%}5;f00EdP#uR#|&HQtpp&uvdx=@g;NrH&7Qavq_6W+dhv8kEW#QCnRpEFwmM{UQp6(%Q*3-kQd%LMQmS_(sJp z#GL|xBqlR%r&<0(n}n0<#N^v#@!Bi>sO90 z*^J9H#i5Y$j5l$ZuO^RVuOQ9Am*(2}4~bMPTAQ#+6tJ@%E)@R&*#}Bcqw7F&W%&kI z0oaY`l=6QY_@64l$2lzG#;CcOUU=LBFhr6Pz8R6De!-M*&U4_u4CYYAc{pM<(mYj}qL1u~sUo5ClI(_+P~$_>4Zh zL86%oEU})iO_%~Sy3mp~D%x0uJuC`>r;nZdOW~6II$;c@WQnyjaxE{Ys#j97b!c@g zx|gYXl!C#C9Vz@*)-<}0qPjydUl1w9Yp1A0@U^HXk_*_V7Y&kbKq|NyJbk@LsUG
w9NzlBbd- zV2~g=%XYefB<-}$6Tc2tDVU)EGjeWH24=jYsR)cKP02_{1jbL#p8jW#GC@$@0oQ}Q z0k4+xu|}NdG_f5qr!_jpbrW$U?y;LJ*U?r>WSanAA5ZvvvNt8lwA5s7TbF4mR4=IT z#LfT!P!3xaOOe`vB%Ze7A}$fI*^yQUA-t=Qg}8zWjziAN630X@rqbP_p;AeTZbGQ7 z3`o*Q7&3)!Cwk?+APyfAKpXVg7A_<&9&BBZO7G6pt04hCd0W^rk zhzJCSMm{Qe1YnF}4o{u2-}V=JQ|hLXV^!%Yb|U`xCnww+9lPArNa-C`GF1Nnv^RD4 z{sB*AXuFWQAR&&4W1>p1Az4*IusZ~O0?IZ{`Fd>gC$*9I#1w`=36QV~c$Pcl2@H85 z1(Y3yZyWT9<`f{6*&~oP*_F!_f1(vY1nhD00MfAXSP|BTCy**Ss0>(d=}y&o5(b>{ zA-*L}#xvDnTTc&?o39Kg;N!8VHElj*B{y7!Nz}S6grEM2)X68uRo$E*4EF3ZMWq zb~IO8WB2`eBQA{p>?zdpyX$olY_02B`=UN+J93I71}@jP|(S4-p*uRA{UnXe-jF&7G0=tlAZ z;E)Ls@?Dh!UP0r;Yd{n4LJfC6zS#HifAic%k+>(%W8n7(z~IejRg{8DFkNg8K!Lvp zO`<{a0P&zeKhQB0HO9e^{{R9A*B~{ohZ1xf$z29Mb@Lh;VH~C=WMuLeT#G5tQSu;= zTjUPFB(9tLAbM6y3cN>-MOcD>eV;18?18T%$qGmyritZwT+!(ju{VA(V}IJWzT6lc z?DwIH?eAp$yU^f@$6ZxVH3T~@#+(4BM6ub?B!HmokVh8#0iyQU@B}8EfL25Irtp4V zKm;F=ZH00GJLDzjZ|$}NA>uZ7v85%K?S{Dj0PON7!tc{nm8J=>G-S~7z%cSxU;+sT ziT;S>KKQEv*JihC@OH7e_Od%|dr;$upbz;T-LK#O00X|af04FCc@C3FG#}Yz^au*9 zg5Ep1r{u_-5S}siwIh5>#(rM4t{Lh;W`ZFr=rpn{XabaC2>7~aY!RRs=z7#=_p$GNcFK=bR#^WypLWainTumu1_5N>Q{#xZtmoyQ*E;m7{~>D-=nj!N49 z0PoFpkA3$b4%y;ER%()@W4SUcazor#emWh$vH?;;HxcBnlqmil0ZD^ImFA9FSpwJi zxFsC#kYEBo1ERy1(EtI%9Q%vZ6$xpJ)^#uo@#oY!w=i0NU2rl2p7yJyc~8pjBA(8I&D6H`4+M zB}v}YpZt!10#Pss0E@ui76`A<4E=Th@hthH-~vsNSQlP5?sNN$ma-7@DV{~%v<#z~ zDrvMh1?8eZ8vp`1Yz_JqHZm^j%ofXr>?^k=7Mhi6nMbjpJRv zCD(h9L#_1G64_fawea#ps(;k0Lg-A9qKG9&;;Y0r z2)Krjw5&P1vw*wPVP_3o&BS(N*!#y-!KMPNgy zJb{-)A&jX7NzmHzEArU;OeEaQJ%vE1ts@B(lH-vo#gl$^82o|Q@K@1QRmJ<8fYA0!|0GRVG#6-x64otV4O> zqvWP4#9^M5qP%;EN<|>qW^EZO%FVR{kp!_IZ$o<$YcGBxs;E>dw-$DZch6)h?jj=$ z+u%X?{DTq*K9LV&lc8Q>R7T+9GVAxCtRqpQu!leaqvweLkR3E?jT~?Kkb8f@01hCr zy9E9A?REhh*V?Y{il?YCIF6!#VDDw~bt&42rb> z(7#9BuHv;kwVG=0t=aGK+-9>EZBWcp=}w$?_Sn1>Rx_PvZ`sm~qWwo9Yb7okq znQzODt9p7k%I#W&R%|>H%P#N8Lz-czLddTia`TZSB�|g&h?`9e*F7SBWJ+Mr>|0 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 +
+ {{- with partial "custom/banner.html" . -}} + {{- . -}} + {{- else -}} +
+ {{- site.Params.banner.message | default "🎉 Welcome! This is a banner message." | .RenderString -}} +
+ {{- end -}} + +
+ +{{- end -}} diff --git a/themes/hextra/layouts/partials/breadcrumb.html b/themes/hextra/layouts/partials/breadcrumb.html new file mode 100644 index 0000000..1f4612e --- /dev/null +++ b/themes/hextra/layouts/partials/breadcrumb.html @@ -0,0 +1,17 @@ +{{- $page := .page -}} +{{- $enable := .enable -}} +{{- if (default $enable $page.Params.breadcrumbs) -}} +
+{{ end -}} diff --git a/themes/hextra/layouts/partials/components/analytics/analytics.html b/themes/hextra/layouts/partials/components/analytics/analytics.html new file mode 100644 index 0000000..6e56b52 --- /dev/null +++ b/themes/hextra/layouts/partials/components/analytics/analytics.html @@ -0,0 +1,24 @@ +{{- if hugo.IsProduction -}} + + +{{- if .Site.Config.Services.GoogleAnalytics.ID }} + + {{ partial "google-analytics.html" . -}} +{{- end }} + + +{{- if .Site.Params.analytics.umami -}} + {{ partial "components/analytics/umami.html" . }} +{{- end }} + + +{{- if .Site.Params.analytics.matomo -}} + {{ partial "components/analytics/matomo.html" . }} +{{- end }} + + +{{- if .Site.Params.analytics.goatCounter -}} + {{ partial "components/analytics/goat-counter.html" . }} +{{- end -}} + +{{- end }} diff --git a/themes/hextra/layouts/partials/components/analytics/goat-counter.html b/themes/hextra/layouts/partials/components/analytics/goat-counter.html new file mode 100644 index 0000000..3399bb0 --- /dev/null +++ b/themes/hextra/layouts/partials/components/analytics/goat-counter.html @@ -0,0 +1,17 @@ +{{- with .Site.Params.analytics.goatCounter -}} + {{- if not .code -}} + {{- errorf "Missing GoatCounter 'code' configuration. See https://imfing.github.io/hextra/versions/latest/docs/guide/configuration/#goatcounter-analytics" -}} + {{- end -}} + + +{{- end -}} \ No newline at end of file diff --git a/themes/hextra/layouts/partials/components/analytics/google-analytics.html b/themes/hextra/layouts/partials/components/analytics/google-analytics.html new file mode 100644 index 0000000..62e9d42 --- /dev/null +++ b/themes/hextra/layouts/partials/components/analytics/google-analytics.html @@ -0,0 +1,13 @@ +{{- with site.Config.Services.GoogleAnalytics.ID }} + + + +{{ end -}} diff --git a/themes/hextra/layouts/partials/components/analytics/matomo.html b/themes/hextra/layouts/partials/components/analytics/matomo.html new file mode 100644 index 0000000..02b81b5 --- /dev/null +++ b/themes/hextra/layouts/partials/components/analytics/matomo.html @@ -0,0 +1,31 @@ +{{- /* +Matomo Analytics. +https://developer.matomo.org/guides/tracking-javascript-guide +*/ -}} + +{{- with .Site.Params.analytics.matomo -}} + +{{- if not .serverURL }} + {{- errorf "Missing Matomo 'serverURL' configuration. See https://imfing.github.io/hextra/versions/latest/docs/guide/configuration/#matomo-analytics" -}} +{{- end -}} + +{{- if not .websiteID }} + {{- errorf "Missing Matomo 'websiteID' configuration. See https://imfing.github.io/hextra/versions/latest/docs/guide/configuration/#matomo-analytics" -}} +{{- end -}} + + + + + +{{- end -}} diff --git a/themes/hextra/layouts/partials/components/analytics/umami.html b/themes/hextra/layouts/partials/components/analytics/umami.html new file mode 100644 index 0000000..df073be --- /dev/null +++ b/themes/hextra/layouts/partials/components/analytics/umami.html @@ -0,0 +1,57 @@ +{{- /* +Umami Analytics +https://umami.is/docs/tracker-configuration +*/ -}} + +{{- with .Site.Params.analytics.umami -}} + +{{- if not .serverURL }} + {{- errorf "Missing Umami 'serverURL' configuration. See https://imfing.github.io/hextra/versions/latest/docs/guide/configuration/#umami-analytics" -}} +{{- end -}} + +{{- if not .websiteID }} + {{- errorf "Missing Umami 'websiteID' configuration. See https://imfing.github.io/hextra/versions/latest/docs/guide/configuration/#umami-analytics" -}} +{{- end -}} + +{{- $attributes := newScratch -}} + +{{- $attributes.SetInMap "umami" "src" (printf "%s/%s" .serverURL (.scriptName | default "script.js")) -}} +{{- $attributes.SetInMap "umami" "data-website-id" .websiteID -}} + +{{- if .hostURL -}} + {{- /* https://umami.is/docs/tracker-configuration#data-host-url */ -}} + {{- $attributes.SetInMap "umami" "data-host-url" .hostURL -}} +{{- end -}} + +{{- if .autoTrack -}} + {{- /* https://umami.is/docs/tracker-configuration#data-auto-track */ -}} + {{- $attributes.SetInMap "umami" "data-auto-track" .autoTrack -}} +{{- end -}} + +{{- if .tag -}} + {{- /* https://umami.is/docs/tracker-configuration#data-tag */ -}} + {{- $attributes.SetInMap "umami" "data-tag" .tag -}} +{{- end -}} + +{{- if .excludeSearch -}} + {{- /* https://umami.is/docs/tracker-configuration#data-exclude-search */ -}} + {{- $attributes.SetInMap "umami" "data-exclude-search" .excludeSearch -}} +{{- end -}} + +{{- if .excludeHash -}} + {{- /* https://umami.is/docs/tracker-configuration#data-exclude-hash */ -}} + {{- $attributes.SetInMap "umami" "data-exclude-hash" .excludeHash -}} +{{- end -}} + +{{- if .doNotTrack -}} + {{- /* https://umami.is/docs/tracker-configuration#data-do-not-track */ -}} + {{- $attributes.SetInMap "umami" "data-do-not-track" .doNotTrack -}} +{{- end -}} + +{{- if .domains -}} + {{- /* https://umami.is/docs/tracker-configuration#data-domains */ -}} + {{- $attributes.SetInMap "umami" "data-domains" .domains -}} +{{- end -}} + + +{{- end -}} diff --git a/themes/hextra/layouts/partials/components/blog-pager.html b/themes/hextra/layouts/partials/components/blog-pager.html new file mode 100644 index 0000000..1b6b130 --- /dev/null +++ b/themes/hextra/layouts/partials/components/blog-pager.html @@ -0,0 +1,39 @@ +{{/* + Blog pagination component for list pages (e.g., blog list, category list) + + Usage: {{ partial "components/blog-pager.html" $paginator }} + + Parameters: + - . (context): Hugo paginator object +*/}} + +{{- $paginator := . -}} +{{- $prevText := (T "previous") | default "Prev" -}} +{{- $nextText := (T "next") | default "Next" -}} +{{- $prevLabel := printf "%s %d/%d" $prevText (sub $paginator.PageNumber 1) $paginator.TotalPages -}} +{{- $nextLabel := printf "%s %d/%d" $nextText (add $paginator.PageNumber 1) $paginator.TotalPages -}} + +{{- if or $paginator.HasPrev $paginator.HasNext -}} + +{{- end -}} \ No newline at end of file diff --git a/themes/hextra/layouts/partials/components/codeblock-copy-button.html b/themes/hextra/layouts/partials/components/codeblock-copy-button.html new file mode 100644 index 0000000..78d0f0d --- /dev/null +++ b/themes/hextra/layouts/partials/components/codeblock-copy-button.html @@ -0,0 +1,17 @@ +{{/* TODO: remove filename variable */}} +{{- $filename := .filename | default "" -}} +{{- $display := site.Params.highlight.copy.display | default "hover" -}} +{{- $copyCode := (T "copyCode") | default "Copy code" -}} + + +
+ +
diff --git a/themes/hextra/layouts/partials/components/codeblock.html b/themes/hextra/layouts/partials/components/codeblock.html new file mode 100644 index 0000000..cdee81f --- /dev/null +++ b/themes/hextra/layouts/partials/components/codeblock.html @@ -0,0 +1,29 @@ +{{ $filename := .filename | default "" -}} +{{ $base_url := .base_url | default "" -}} +{{ $lang := .lang | default "" }} +{{ $content := .content }} +{{ $options := .options | default (dict) }} + +{{- if $filename -}} +
+ {{- if $base_url -}} + + {{- $base_url = strings.TrimSuffix "/" $base_url -}} + {{- $filename = strings.TrimPrefix "/" $filename -}} + {{- $file_url := urls.JoinPath $base_url $filename -}} + + + {{- $filename -}} + {{- partial "utils/icon" (dict "name" "external-link" "attributes" "height=1em") -}} + + {{- else -}} + {{- $filename -}} + {{- end -}} +
+{{- end -}} + +{{- if transform.CanHighlight $lang -}} +
{{- highlight $content $lang $options -}}
+{{- else -}} +
{{ $content }}
+{{- end -}} diff --git a/themes/hextra/layouts/partials/components/comments.html b/themes/hextra/layouts/partials/components/comments.html new file mode 100644 index 0000000..ac893a1 --- /dev/null +++ b/themes/hextra/layouts/partials/components/comments.html @@ -0,0 +1,11 @@ +{{- $enableComments := site.Params.comments.enable | default false -}} + +{{ if not (eq .Params.comments nil) }} + {{ $enableComments = .Params.comments }} +{{ end }} + +{{- if $enableComments -}} + {{- if eq site.Params.comments.type "giscus" -}} + {{ partial "components/giscus.html" . }} + {{- end -}} +{{- end -}} diff --git a/themes/hextra/layouts/partials/components/giscus.html b/themes/hextra/layouts/partials/components/giscus.html new file mode 100644 index 0000000..973e50b --- /dev/null +++ b/themes/hextra/layouts/partials/components/giscus.html @@ -0,0 +1,89 @@ +{{- $lang := site.Language.Lang | default `en` -}} +{{- if hasPrefix $lang "zh" -}} + {{- /* See: https://github.com/giscus/giscus/tree/main/locales */}} + {{- $lang = partial "utils/hugo-compat/language-locale.html" site.Language | default `zh-CN` -}} +{{- end -}} + +{{- with site.Params.comments.giscus -}} + + +
+{{- else -}} + {{ warnf "giscus is not configured" }} +{{- end -}} diff --git a/themes/hextra/layouts/partials/components/github-style-alert.html b/themes/hextra/layouts/partials/components/github-style-alert.html new file mode 100644 index 0000000..f03b261 --- /dev/null +++ b/themes/hextra/layouts/partials/components/github-style-alert.html @@ -0,0 +1,53 @@ +{{- $content := .content -}} +{{- $alertType := .alertType -}} +{{- $alertTitle := .alertTitle -}} + +{{- $styles := newScratch -}} +{{- $styles.Set "default" (dict + "icon" "light-bulb" + "style" "hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200" + ) +-}} +{{- $styles.Set "note" (dict + "icon" "information-circle" + "style" "hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200" + ) +-}} +{{- $styles.Set "tip" (dict + "icon" "light-bulb" + "style" "hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200" + ) +-}} +{{- $styles.Set "important" (dict + "icon" "information-circle" + "style" "hx:border-purple-200 hx:bg-purple-100 hx:text-purple-900 hx:dark:border-purple-200/30 hx:dark:bg-purple-900/30 hx:dark:text-purple-200" + ) +-}} +{{- $styles.Set "warning" (dict + "icon" "exclamation" + "style" "hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200" + ) +-}} +{{- $styles.Set "caution" (dict + "icon" "exclamation-circle" + "style" "hx:border-red-200 hx:bg-red-100 hx:text-red-900 hx:dark:border-red-200/30 hx:dark:bg-red-900/30 hx:dark:text-red-200" + ) +-}} + +{{- $style := or ($styles.Get $alertType) ($styles.Get "default") -}} +{{- $title := or $alertTitle (or (i18n $alertType) (title $alertType)) -}} + +
+

+ {{- with $style.icon -}} + {{- partial "utils/icon.html" (dict "name" . "attributes" `height=16px class="hx:inline-block hx:align-middle hx:mr-2"`) -}} + {{- end -}} + {{- $title -}} +

+ +
+
+ {{- $content -}} +
+
+
diff --git a/themes/hextra/layouts/partials/components/last-updated.html b/themes/hextra/layouts/partials/components/last-updated.html new file mode 100644 index 0000000..f900c0b --- /dev/null +++ b/themes/hextra/layouts/partials/components/last-updated.html @@ -0,0 +1,20 @@ +{{- $lastUpdated := (T "lastUpdated") | default "Last updated on" -}} +{{- $page := . -}} + +{{- if site.Params.displayUpdatedDate -}} + {{- with .Lastmod -}} + {{ $datetime := (time.Format "2006-01-02T15:04:05.000Z" .) }} +
+ {{ $lastUpdated }} + {{- if site.Params.displayUpdatedAuthor -}} + {{- with $page.GitInfo -}} + {{ print " • " .AuthorName | safeHTML }} + {{- end -}} + {{- end -}} +
+ {{- else -}} +
+ {{- end -}} +{{- else -}} +
+{{- end -}} diff --git a/themes/hextra/layouts/partials/components/page-context-menu.html b/themes/hextra/layouts/partials/components/page-context-menu.html new file mode 100644 index 0000000..3893d0e --- /dev/null +++ b/themes/hextra/layouts/partials/components/page-context-menu.html @@ -0,0 +1,90 @@ +{{- $enableGlobal := site.Params.page.contextMenu.enable | default false -}} +{{- $enablePage := .Params.contextMenu -}} +{{- $enable := cond (ne $enablePage nil) $enablePage $enableGlobal -}} +{{- $customLinks := site.Params.page.contextMenu.links | default slice -}} + +{{- if $enable -}} + {{- with .OutputFormats.Get "markdown" -}} + {{- $markdownURL := .Permalink -}} + {{- $pageURL := $.Permalink -}} + {{- $pageTitle := $.Title -}} +
+
+ + +
+ +
+ {{- end -}} +{{- end -}} diff --git a/themes/hextra/layouts/partials/components/pager.html b/themes/hextra/layouts/partials/components/pager.html new file mode 100644 index 0000000..1adc43a --- /dev/null +++ b/themes/hextra/layouts/partials/components/pager.html @@ -0,0 +1,53 @@ +{{/* Article navigation on the footer of the article */}} + +{{- $reversePagination := .Store.Get "reversePagination" | default false -}} + +{{- $prev := cond $reversePagination .PrevInSection .NextInSection -}} +{{- $next := cond $reversePagination .NextInSection .PrevInSection -}} + +{{- if eq .Params.prev false }} + {{- if $reversePagination }}{{ $next = false }}{{ else }}{{ $prev = false }}{{ end -}} +{{ else }} + {{- with .Params.prev -}} + {{- with $.Site.GetPage . -}} + {{- if $reversePagination }}{{ $next = . }}{{ else }}{{ $prev = . }}{{ end -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- if eq .Params.next false }} + {{- if $reversePagination }}{{ $prev = false }}{{ else }}{{ $next = false }}{{ end -}} +{{ else }} + {{- with .Params.next -}} + {{- with $.Site.GetPage . -}} + {{- if $reversePagination }}{{ $prev = . }}{{ else }}{{ $next = . }}{{ end -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- if or $prev $next -}} + +{{- end -}} diff --git a/themes/hextra/layouts/partials/custom/banner.html b/themes/hextra/layouts/partials/custom/banner.html new file mode 100644 index 0000000..e69de29 diff --git a/themes/hextra/layouts/partials/custom/footer.html b/themes/hextra/layouts/partials/custom/footer.html new file mode 100644 index 0000000..e69de29 diff --git a/themes/hextra/layouts/partials/custom/head-end.html b/themes/hextra/layouts/partials/custom/head-end.html new file mode 100644 index 0000000..e69de29 diff --git a/themes/hextra/layouts/partials/custom/navbar-title.html b/themes/hextra/layouts/partials/custom/navbar-title.html new file mode 100644 index 0000000..e69de29 diff --git a/themes/hextra/layouts/partials/favicons.html b/themes/hextra/layouts/partials/favicons.html new file mode 100644 index 0000000..78442d4 --- /dev/null +++ b/themes/hextra/layouts/partials/favicons.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/themes/hextra/layouts/partials/footer.html b/themes/hextra/layouts/partials/footer.html new file mode 100644 index 0000000..ddb270e --- /dev/null +++ b/themes/hextra/layouts/partials/footer.html @@ -0,0 +1,44 @@ +{{- $enableFooterSwitches := .Store.Get "enableFooterSwitches" | default false -}} +{{- $displayThemeToggle := site.Params.theme.displayToggle | default true -}} +{{- $footerSwitchesVisible := and $enableFooterSwitches (or (gt (len site.Languages) 1) $displayThemeToggle) -}} +{{- $copyrightSectionVisible := or (.Site.Params.footer.displayPoweredBy | default true) .Site.Params.footer.displayCopyright -}} + +{{- $copyright := (T "copyright") | default "© 2024 Hextra." -}} +{{- $poweredBy := (T "poweredBy") | default "Powered by Hextra" -}} + + +
+ {{- if $footerSwitchesVisible -}} + + {{- if or (gt (len site.Languages) 1) $displayThemeToggle -}} +
+ {{- end -}} + {{- end -}} + + {{- if $copyrightSectionVisible -}} + + {{- end -}} +
+ +{{- define "theme-credit" -}} + + + {{- . | markdownify -}} + {{- if strings.Contains . "Hextra" -}} + {{- partial "utils/icon.html" (dict "name" "hextra" "attributes" `height=1em class="hx:inline-block hx:ltr:ml-1 hx:rtl:mr-1 hx:align-[-2.5px]"`) -}} + {{- end -}} + + +{{- end -}} diff --git a/themes/hextra/layouts/partials/google-analytics.html b/themes/hextra/layouts/partials/google-analytics.html new file mode 100644 index 0000000..16ab488 --- /dev/null +++ b/themes/hextra/layouts/partials/google-analytics.html @@ -0,0 +1,2 @@ +{{- /* Only for compatibility. */ -}} +{{- partial "components/analytics/google-analytics.html" . -}} diff --git a/themes/hextra/layouts/partials/head.html b/themes/hextra/layouts/partials/head.html new file mode 100644 index 0000000..eb06bc5 --- /dev/null +++ b/themes/hextra/layouts/partials/head.html @@ -0,0 +1,81 @@ + + + + {{- $noindex := .Params.noindex | default false -}} + {{ if and (hugo.IsProduction) (not $noindex) -}} + + {{ else -}} + + {{ end -}} + {{ partialCached "favicons.html" . -}} + + {{- if .IsHome -}} + {{ .Site.Title -}} + {{ else -}} + {{ with .Title }}{{ . }} – {{ end -}} + {{ .Site.Title -}} + {{ end -}} + + + + {{- with .Params.canonical -}} + + {{- else -}} + + {{- end -}} + + {{- partial "opengraph.html" . -}} + {{- partial "schema.html" . -}} + {{- partial "twitter_cards.html" . -}} + + {{- $mainCss := resources.Get "css/compiled/main.css" -}} + {{- $customCss := resources.Get "css/custom.css" -}} + {{- $variablesCss := resources.Get "css/variables.css" | resources.ExecuteAsTemplate "css/variables.css" . -}} + + {{- /* Production build */ -}} + {{- if hugo.IsProduction }} + {{- $styles := slice $variablesCss $mainCss $customCss | resources.Concat "css/compiled/main.css" | minify | fingerprint }} + + + + {{- /* Theme development mode (non-production + theme environment) */ -}} + {{- else if eq hugo.Environment "theme" }} + {{- $devStyles := resources.Get "css/styles.css" | postCSS (dict "inlineImports" true) }} + + + + + {{- /* User local development */ -}} + {{- else }} + {{- $styles := resources.Get "css/compiled/main.css" -}} + + + + {{- end }} + + {{ partial "components/analytics/analytics.html" . }} + + {{- $scriptsHead := slice -}} + {{- range resources.Match "js/head/*.js" -}} + {{ $scriptsHead = $scriptsHead | append (resources.ExecuteAsTemplate .Name $ .) }} + {{- end -}} + + {{- $scripts := $scriptsHead | resources.Concat "js/main-head.js" -}} + + {{- if hugo.IsProduction -}} + {{- $scripts = $scripts | minify | fingerprint -}} + {{- end -}} + + + + {{ $noop := .WordCount -}} + {{- $engine := site.Params.math.engine | default "katex" -}} + {{ if and (.Page.Store.Get "hasMath") (eq $engine "katex") -}} + {{ partialCached "scripts/katex.html" . -}} + {{ else if and (.Page.Store.Get "hasMath") (eq $engine "mathjax") -}} + {{ partialCached "scripts/mathjax.html" . -}} + {{ end -}} + + {{ partial "utils/page-width-override.html" . }} + {{ partial "custom/head-end.html" . -}} + diff --git a/themes/hextra/layouts/partials/language-switch.html b/themes/hextra/layouts/partials/language-switch.html new file mode 100644 index 0000000..0cdb57b --- /dev/null +++ b/themes/hextra/layouts/partials/language-switch.html @@ -0,0 +1,58 @@ +{{- $page := .context -}} +{{- $iconName := .iconName | default "globe-alt" -}} +{{- $iconHeight := .iconHeight | default 12 -}} +{{- $location := .location -}} + +{{- $class := .class | default "hx:h-7 hx:px-2 hx:text-xs hx:text-gray-600 hx:transition-colors hx:dark:text-gray-400 hx:hover:bg-gray-100 hx:hover:text-gray-900 hx:dark:hover:bg-primary-100/5 hx:dark:hover:text-gray-50" -}} + +{{- $grow := .grow -}} +{{- $hideLabel := .hideLabel | default false -}} + +{{- $changeLanguage := (T "changeLanguage") | default "Change language" -}} +{{- $currentLanguageLang := site.Language.Lang -}} +{{- $currentLanguageLabel := partial "utils/hugo-compat/language-label.html" site.Language -}} + +{{- $isML := gt (len site.Languages) 1 -}}{{- if $isML -}} +
+ + +
+{{- end -}} diff --git a/themes/hextra/layouts/partials/navbar-link.html b/themes/hextra/layouts/partials/navbar-link.html new file mode 100644 index 0000000..0633471 --- /dev/null +++ b/themes/hextra/layouts/partials/navbar-link.html @@ -0,0 +1,88 @@ +{{- $currentPage := .currentPage -}} +{{- $link := .link -}} +{{- $item := .item -}} +{{- $icon := .icon -}} +{{- $external := .external -}} + +{{- $active := or ($currentPage.HasMenuCurrent "main" $item) ($currentPage.IsMenuCurrent "main" $item) -}} +{{- /* Additional check for section landing pages in multilingual sites (normalize trailing slashes) */ -}} +{{- if and (not $active) $link -}} + {{- $currentPath := strings.TrimSuffix "/" $currentPage.RelPermalink -}} + {{- $linkPath := strings.TrimSuffix "/" $link -}} + {{- if eq $currentPath $linkPath -}} + {{- $active = true -}} + {{- end -}} +{{- end -}} +{{- $activeClass := cond $active "hx:font-medium" "hx:text-gray-600 hx:hover:text-gray-800 hx:dark:text-gray-400 hx:dark:hover:text-gray-200" -}} + +{{- if $item.HasChildren -}} +{{- /* Dropdown menu for items with children */ -}} +
+ + +
+{{- else -}} +{{- /* Regular menu item without children */ -}} + + {{- if $icon -}} + + {{- partial "utils/icon" (dict "name" $icon "attributes" `height="1em" class="hx:inline-block"`) -}} + + {{- end -}} + + {{- or (T $item.Identifier) $item.Name | safeHTML -}} + + +{{- end -}} diff --git a/themes/hextra/layouts/partials/navbar-title.html b/themes/hextra/layouts/partials/navbar-title.html new file mode 100644 index 0000000..36a9b64 --- /dev/null +++ b/themes/hextra/layouts/partials/navbar-title.html @@ -0,0 +1,16 @@ +{{- $logoPath := .Site.Params.navbar.logo.path | default "images/logo.svg" -}} +{{- $logoLink := .Site.Params.navbar.logo.link | default .Site.Home.RelPermalink -}} +{{- $logoWidth := .Site.Params.navbar.logo.width | default "20" -}} +{{- $logoHeight := .Site.Params.navbar.logo.height | default "20" -}} +{{- $logoDarkPath := .Site.Params.navbar.logo.dark | default $logoPath -}} + + + {{- $displayTitle := (.Site.Params.navbar.displayTitle | default true) }} + {{- if (.Site.Params.navbar.displayLogo | default true) }} + {{ cond $displayTitle `Logo` .Site.Title }} + {{ cond $displayTitle `Dark Logo` .Site.Title }} + {{- end }} + {{- if $displayTitle }} + {{- .Site.Title -}} + {{- end }} + diff --git a/themes/hextra/layouts/partials/navbar.html b/themes/hextra/layouts/partials/navbar.html new file mode 100644 index 0000000..5745230 --- /dev/null +++ b/themes/hextra/layouts/partials/navbar.html @@ -0,0 +1,59 @@ +{{- $navWidth := "hx:max-w-[90rem]" -}} +{{- with .Site.Params.navbar.width -}} + {{ if eq . "normal" -}} + {{ $navWidth = "hx:max-w-screen-xl" -}} + {{ else if eq . "full" -}} + {{ $navWidth = "max-w-full" -}} + {{ end -}} +{{- end -}} + +{{- $page := . -}} +{{- $iconHeight := 24 -}} + +
+
+ + +
diff --git a/themes/hextra/layouts/partials/opengraph.html b/themes/hextra/layouts/partials/opengraph.html new file mode 100644 index 0000000..91b9d3f --- /dev/null +++ b/themes/hextra/layouts/partials/opengraph.html @@ -0,0 +1,96 @@ +{{/* Adapted from https://github.com/gohugoio/hugo/blob/v0.149.0/docs/layouts/_partials/opengraph/opengraph.html */}} + + + + + + +{{- with $.Params.images -}} + {{- range first 6 . }} + {{- with $.Resources.GetMatch . }} + + + {{- else }} + + {{- $image := . -}} + {{- if hasPrefix $image "/" -}} + {{- $image = relURL (strings.TrimPrefix "/" $image) -}} + {{- end -}} + + {{- end }} + {{- end }} +{{- else -}} + {{- with $.Site.Params.images }} + {{- $image := index . 0 -}} + {{- if hasPrefix $image "/" -}} + {{- $image = relURL (strings.TrimPrefix "/" $image) -}} + {{- end -}} + + {{- end }} +{{- end -}} + + +{{- if .IsPage }} +{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}} + +{{ with .PublishDate }} + +{{ end }} +{{ with .Lastmod }} + +{{ end }} +{{- end -}} + +{{- with .Params.audio }}{{ end }} +{{- with .Params.locale }} + +{{ end }} +{{- with .Site.Params.title }} + +{{ end }} +{{- with .Params.videos }} +{{- range . }} + +{{ end }} + +{{ end }} + +{{- /* If it is part of a series, link to related articles */}} +{{- $permalink := .Permalink }} +{{- $siteSeries := .Site.Taxonomies.series }} +{{ with .Params.series }} +{{- range $name := . }} +{{- $series := index $siteSeries ($name | urlize) }} +{{- range $page := first 6 $series.Pages }} +{{- if ne $page.Permalink $permalink }} + +{{ end }} +{{- end }} +{{ end }} + +{{ end }} + +{{- /* Facebook Page Admin ID for Domain Insights */}} +{{- with site.Params.social.facebook_admin }} + +{{ end }} diff --git a/themes/hextra/layouts/partials/scripts.html b/themes/hextra/layouts/partials/scripts.html new file mode 100644 index 0000000..abf6cd4 --- /dev/null +++ b/themes/hextra/layouts/partials/scripts.html @@ -0,0 +1,20 @@ +{{/* Core scripts (theme, menu, tabs, etc.) */}} +{{- partial "scripts/core.html" . -}} + +{{/* Search */}} +{{- partial "scripts/search.html" . -}} + +{{/* Mermaid */}} +{{- if (.Store.Get "hasMermaid") -}} + {{- partial "scripts/mermaid.html" . -}} +{{- end -}} + +{{/* Asciinema */}} +{{- if (.Store.Get "hasAsciinema") -}} + {{- partial "scripts/asciinema.html" . -}} +{{- end -}} + +{{/* Medium Zoom */}} +{{- if (.Store.Get "hasImageZoom") -}} + {{- partial "scripts/medium-zoom.html" . -}} +{{- end -}} diff --git a/themes/hextra/layouts/partials/scripts/asciinema.html b/themes/hextra/layouts/partials/scripts/asciinema.html new file mode 100644 index 0000000..e5ecccd --- /dev/null +++ b/themes/hextra/layouts/partials/scripts/asciinema.html @@ -0,0 +1,132 @@ +{{- /* Asciinema */ -}} + +{{- $asciinemaBase := "" -}} +{{- $useDefaultCdn := true -}} +{{- with site.Params.asciinema.base -}} + {{- $asciinemaBase = . -}} + {{- $useDefaultCdn = false -}} +{{- end -}} + +{{- $asciinemaJsAsset := "" -}} +{{- with site.Params.asciinema.js -}} + {{- $asciinemaJsAsset = . -}} +{{- end -}} + +{{- $asciinemaCssAsset := "" -}} +{{- with site.Params.asciinema.css -}} + {{- $asciinemaCssAsset = . -}} +{{- end -}} + +{{- /* If only js/css is set without base, use local asset loading */ -}} +{{- if and $useDefaultCdn (or (ne $asciinemaJsAsset "") (ne $asciinemaCssAsset "")) -}} + {{- $useDefaultCdn = false -}} +{{- end -}} + +{{- /* Set default CDN base if needed */ -}} +{{- if $useDefaultCdn -}} + {{- $asciinemaBase = "https://cdn.jsdelivr.net/npm/asciinema-player@latest/dist/bundle" -}} +{{- end -}} + +{{- $isRemoteBase := or (strings.HasPrefix $asciinemaBase "http://") (strings.HasPrefix $asciinemaBase "https://") -}} +{{- $minSuffix := cond hugo.IsProduction ".min" "" -}} + +{{- /* CSS retrieval: get raw CSS from either local asset or remote, then process */ -}} +{{- if $isRemoteBase -}} + {{- $cssPath := cond (ne $asciinemaCssAsset "") $asciinemaCssAsset "asciinema-player.css" -}} + {{- $asciinemaCssUrl := urls.JoinPath $asciinemaBase $cssPath -}} + {{- with resources.GetRemote $asciinemaCssUrl -}} + {{- with resources.Copy "css/asciinema-player.css" . -}} + {{- $asciinemaCss := . | fingerprint -}} + + {{- end -}} + {{- end -}} +{{- else if $asciinemaCssAsset -}} + {{- with resources.Get $asciinemaCssAsset -}} + {{- $asciinemaCss := . | fingerprint -}} + + {{- else -}} + {{- errorf "Asciinema css asset not found at %q" $asciinemaCssAsset -}} + {{- end -}} +{{- end -}} + +{{- /* JS retrieval: get raw JS from either local asset or remote, then process */ -}} +{{- if $isRemoteBase -}} + {{- $jsPath := cond (ne $asciinemaJsAsset "") $asciinemaJsAsset (printf "asciinema-player%s.js" $minSuffix) -}} + {{- $asciinemaJsUrl := urls.JoinPath $asciinemaBase $jsPath -}} + {{- with resources.GetRemote $asciinemaJsUrl -}} + {{- with resources.Copy (printf "js/asciinema-player%s.js" $minSuffix) . -}} + {{- $asciinemaJs := . | fingerprint -}} + + {{- end -}} + {{- end -}} +{{- else if $asciinemaJsAsset -}} + {{- with resources.Get $asciinemaJsAsset -}} + {{- $asciinemaJs := . | fingerprint -}} + + {{- else -}} + {{- errorf "Asciinema js asset not found at %q" $asciinemaJsAsset -}} + {{- end -}} +{{- end -}} + + diff --git a/themes/hextra/layouts/partials/scripts/core.html b/themes/hextra/layouts/partials/scripts/core.html new file mode 100644 index 0000000..c93c674 --- /dev/null +++ b/themes/hextra/layouts/partials/scripts/core.html @@ -0,0 +1,10 @@ +{{- $scriptsBody := slice }} +{{- range resources.Match "js/core/*.js" -}} + {{ $scriptsBody = $scriptsBody | append (resources.ExecuteAsTemplate .Name $ .) }} +{{- end -}} + +{{- $scripts := $scriptsBody | resources.Concat "js/main.js" -}} +{{- if hugo.IsProduction -}} + {{- $scripts = $scripts | minify | fingerprint -}} +{{- end -}} + diff --git a/themes/hextra/layouts/partials/scripts/katex.html b/themes/hextra/layouts/partials/scripts/katex.html new file mode 100644 index 0000000..1607914 --- /dev/null +++ b/themes/hextra/layouts/partials/scripts/katex.html @@ -0,0 +1,88 @@ +{{- /* KaTeX CSS loader + + Behavior (driven by site.params.math.katex): + - base (remote URL) + optional css: + - Construct remote CSS URL: "{{ base }}/{{ css | default "katex[.min].css" }}". + - Fetch via resources.GetRemote, rewrite font URLs to "{{ base }}/fonts/...". + - Build and fingerprint; emit . + - base (local path or not set) + css (asset path): + - Read CSS from Hugo assets via resources.Get; DO NOT rewrite font URLs. + - Build and fingerprint; emit . + - base (local path) only (no css): + - Link directly to "{{ base }}/katex[.min].css" (no processing). + - Nothing set: + - Default to CDN latest base; same as remote path above. + + Additional: + - assets: optional list to publish extra assets. CSS/JS get tags with integrity (JS loads async). +*/ -}} +{{- $noop := .WordCount -}} + +{{- $katexBase := "" -}} +{{- with site.Params.math.katex.base -}} + {{- $katexBase = . -}} +{{- else -}} + {{- if not site.Params.math.katex.css -}} + {{- $katexBase = "https://cdn.jsdelivr.net/npm/katex@latest/dist" -}} + {{- end -}} +{{- end -}} + +{{- $katexCssAsset := "" -}} +{{- with site.Params.math.katex.css -}} + {{- $katexCssAsset = . -}} +{{- end -}} + +{{- $s := newScratch -}} +{{- $isRemoteBase := or (strings.HasPrefix $katexBase "http://") (strings.HasPrefix $katexBase "https://") -}} + +{{- /* CSS retrieval consolidated: get raw CSS from either local asset or remote, then process once */ -}} +{{- $minSuffix := cond hugo.IsProduction ".min" "" -}} +{{- if $isRemoteBase -}} + {{- $cssPath := cond (ne $katexCssAsset "") $katexCssAsset (printf "katex%s.css" $minSuffix) -}} + {{- $katexCssUrl := urls.JoinPath $katexBase $cssPath -}} + {{- with resources.GetRemote $katexCssUrl -}} + {{- $s.Set "katexCssValue" .Content -}} + {{- end -}} +{{- else if $katexCssAsset -}} + {{- with resources.Get $katexCssAsset -}} + {{- $s.Set "katexCssValue" .Content -}} + {{- else -}} + {{- errorf "KaTeX css asset not found at %q" $katexCssAsset -}} + {{- end -}} +{{- end -}} + +{{- with $s.Get "katexCssValue" -}} + {{- $cssContent := . -}} + {{- if $isRemoteBase -}} + {{- $fontPattern := "url(fonts/" -}} + {{- $fontSub := printf "url(%s/" (urls.JoinPath $katexBase "fonts") -}} + {{- $cssContent = strings.Replace $cssContent $fontPattern $fontSub -}} + {{- end -}} + {{- with resources.FromString (printf "css/katex%s.css" $minSuffix) $cssContent -}} + {{- $css := . | fingerprint "sha512" -}} + + {{- end -}} +{{- else -}} + {{- if not $isRemoteBase -}} + {{- $cssPath := cond (ne $katexCssAsset "") $katexCssAsset (printf "katex%s.css" $minSuffix) -}} + + {{- end -}} +{{- end -}} + +{{- /* Optionally publish files (fonts, css, js, etc.) from assets and emit tags for css/js with integrity and crossorigin */ -}} +{{- with site.Params.math.katex.assets -}} + {{- range . -}} + {{- with resources.Get . -}} + {{- $name := .Name | lower -}} + {{- if strings.HasSuffix $name ".css" -}} + {{- $built := . | fingerprint "sha512" -}} + + {{- else if or (strings.HasSuffix $name ".js") (strings.HasSuffix $name ".mjs") -}} + {{- $built := . | fingerprint "sha512" -}} + + {{- else -}} + {{- .Publish -}} + {{- end -}} + {{- end -}} + {{- end -}} +{{- end -}} diff --git a/themes/hextra/layouts/partials/scripts/mathjax.html b/themes/hextra/layouts/partials/scripts/mathjax.html new file mode 100644 index 0000000..a05b543 --- /dev/null +++ b/themes/hextra/layouts/partials/scripts/mathjax.html @@ -0,0 +1,20 @@ +{{/* MathJax */}} +{{ $mathjaxJsUrl := "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js" -}} + + diff --git a/themes/hextra/layouts/partials/scripts/medium-zoom.html b/themes/hextra/layouts/partials/scripts/medium-zoom.html new file mode 100644 index 0000000..bf84a04 --- /dev/null +++ b/themes/hextra/layouts/partials/scripts/medium-zoom.html @@ -0,0 +1,82 @@ +{{- /* Medium Zoom */ -}} + +{{- $zoomBase := "" -}} +{{- $useDefaultCdn := true -}} +{{- with site.Params.imageZoom.base -}} + {{- $zoomBase = . -}} + {{- $useDefaultCdn = false -}} +{{- end -}} + +{{- $zoomJsAsset := "" -}} +{{- with site.Params.imageZoom.js -}} + {{- $zoomJsAsset = . -}} +{{- end -}} + +{{- /* If only js is set without base, use local asset loading */ -}} +{{- if and $useDefaultCdn (ne $zoomJsAsset "") -}} + {{- $useDefaultCdn = false -}} +{{- end -}} + +{{- /* Set default CDN base if needed */ -}} +{{- if $useDefaultCdn -}} + {{- $zoomBase = "https://cdn.jsdelivr.net/npm/medium-zoom@latest/dist" -}} +{{- end -}} + +{{- $isRemoteBase := or (strings.HasPrefix $zoomBase "http://") (strings.HasPrefix $zoomBase "https://") -}} +{{- $minSuffix := cond hugo.IsProduction ".min" "" -}} + +{{- /* JS retrieval: get raw JS from either local asset or remote, then process */ -}} +{{- if $isRemoteBase -}} + {{- $jsPath := cond (ne $zoomJsAsset "") $zoomJsAsset (printf "medium-zoom%s.js" $minSuffix) -}} + {{- $zoomJsUrl := urls.JoinPath $zoomBase $jsPath -}} + {{- with resources.GetRemote $zoomJsUrl -}} + {{- with resources.Copy (printf "js/medium-zoom%s.js" $minSuffix) . -}} + {{- $zoomJs := . | fingerprint -}} + + {{- end -}} + {{- end -}} + +{{- else if $zoomJsAsset -}} + {{- with resources.Get $zoomJsAsset -}} + {{- $zoomJs := . | fingerprint -}} + + {{- else -}} + {{- errorf "Medium Zoom js asset not found at %q" $zoomJsAsset -}} + {{- end -}} +{{- end -}} + + diff --git a/themes/hextra/layouts/partials/scripts/mermaid.html b/themes/hextra/layouts/partials/scripts/mermaid.html new file mode 100644 index 0000000..12b9e61 --- /dev/null +++ b/themes/hextra/layouts/partials/scripts/mermaid.html @@ -0,0 +1,76 @@ +{{- /* Mermaid */ -}} + +{{- $mermaidBase := "" -}} +{{- $useDefaultCdn := true -}} +{{- with site.Params.mermaid.base -}} + {{- $mermaidBase = . -}} + {{- $useDefaultCdn = false -}} +{{- end -}} + +{{- $mermaidJsAsset := "" -}} +{{- with site.Params.mermaid.js -}} + {{- $mermaidJsAsset = . -}} +{{- end -}} + +{{- /* If only js is set without base, use local asset loading */ -}} +{{- if and $useDefaultCdn (ne $mermaidJsAsset "") -}} + {{- $useDefaultCdn = false -}} +{{- end -}} + +{{- /* Set default CDN base if needed */ -}} +{{- if $useDefaultCdn -}} + {{- $mermaidBase = "https://cdn.jsdelivr.net/npm/mermaid@latest/dist" -}} +{{- end -}} + +{{- $isRemoteBase := or (strings.HasPrefix $mermaidBase "http://") (strings.HasPrefix $mermaidBase "https://") -}} +{{- $minSuffix := cond hugo.IsProduction ".min" "" -}} + +{{- /* JS retrieval: get raw JS from either local asset or remote, then process */ -}} +{{- if $isRemoteBase -}} + {{- $jsPath := cond (ne $mermaidJsAsset "") $mermaidJsAsset (printf "mermaid%s.js" $minSuffix) -}} + {{- $mermaidJsUrl := urls.JoinPath $mermaidBase $jsPath -}} + {{- with resources.GetRemote $mermaidJsUrl -}} + {{- with resources.Copy (printf "js/mermaid%s.js" $minSuffix) . -}} + {{- $mermaidJs := . | fingerprint -}} + + {{- end -}} + {{- end -}} + +{{- else if $mermaidJsAsset -}} + {{- with resources.Get $mermaidJsAsset -}} + {{- $mermaidJs := . | fingerprint -}} + + {{- else -}} + {{- errorf "Mermaid js asset not found at %q" $mermaidJsAsset -}} + {{- end -}} +{{- end -}} + + diff --git a/themes/hextra/layouts/partials/scripts/search.html b/themes/hextra/layouts/partials/scripts/search.html new file mode 100644 index 0000000..8ef564a --- /dev/null +++ b/themes/hextra/layouts/partials/scripts/search.html @@ -0,0 +1,60 @@ +{{/* Search */}} +{{- if (site.Params.search.enable | default true) -}} + {{- $searchType := site.Params.search.type | default "flexsearch" -}} + {{- if eq $searchType "flexsearch" -}} + {{- $jsSearchScript := printf "%s.search.js" .Language.Lang -}} + {{- $jsSearch := resources.Get "js/flexsearch.js" | resources.ExecuteAsTemplate $jsSearchScript . -}} + {{- if hugo.IsProduction -}} + {{- $jsSearch = $jsSearch | minify | fingerprint -}} + {{- end -}} + + {{- $flexSearchBase := "" -}} + {{- $useDefaultCdn := true -}} + {{- with site.Params.search.flexsearch.base -}} + {{- $flexSearchBase = . -}} + {{- $useDefaultCdn = false -}} + {{- end -}} + + {{- $flexSearchJsAsset := "" -}} + {{- with site.Params.search.flexsearch.js -}} + {{- $flexSearchJsAsset = . -}} + {{- end -}} + + {{- /* If only js is set without base, use local asset loading. */ -}} + {{- if and $useDefaultCdn (ne $flexSearchJsAsset "") -}} + {{- $useDefaultCdn = false -}} + {{- end -}} + + {{- $bundleSuffix := cond hugo.IsProduction ".min" ".debug" -}} + {{- if $useDefaultCdn -}} + {{- $flexSearchVersion := site.Params.search.flexsearch.version | default "0.8.143" -}} + {{- $flexSearchBase = printf "https://cdn.jsdelivr.net/npm/flexsearch@%s/dist" $flexSearchVersion -}} + {{- end -}} + + {{- $isRemoteBase := or (strings.HasPrefix $flexSearchBase "http://") (strings.HasPrefix $flexSearchBase "https://") -}} + {{- if $isRemoteBase -}} + {{- $jsPath := cond (ne $flexSearchJsAsset "") $flexSearchJsAsset (printf "flexsearch.bundle%s.js" $bundleSuffix) -}} + {{- $flexSearchJsUrl := urls.JoinPath $flexSearchBase $jsPath -}} + {{- with resources.GetRemote $flexSearchJsUrl -}} + {{- with resources.Copy "js/flexsearch.js" . -}} + {{- $flexSearchJs := . | fingerprint -}} + + {{- end -}} + {{- end -}} + + {{- else if $flexSearchJsAsset -}} + {{- with resources.Get $flexSearchJsAsset -}} + {{- $flexSearchJs := . | fingerprint -}} + + {{- else -}} + {{- errorf "FlexSearch js asset not found at %q" $flexSearchJsAsset -}} + {{- end -}} + {{- else if not $useDefaultCdn -}} + {{- errorf "FlexSearch local loading requires params.search.flexsearch.js when using non-remote base %q" $flexSearchBase -}} + {{- end -}} + + + {{- else -}} + {{- warnf `search type "%s" is not supported` $searchType -}} + {{- end -}} +{{- end -}} diff --git a/themes/hextra/layouts/partials/search.html b/themes/hextra/layouts/partials/search.html new file mode 100644 index 0000000..9e372e8 --- /dev/null +++ b/themes/hextra/layouts/partials/search.html @@ -0,0 +1,30 @@ +{{- $placeholder := (T "searchPlaceholder") | default "Search..." -}} + + +
+
+ + + CTRL K + +
+ +
+
    +
    +
    +
    diff --git a/themes/hextra/layouts/partials/shortcodes/badge.html b/themes/hextra/layouts/partials/shortcodes/badge.html new file mode 100644 index 0000000..035d91a --- /dev/null +++ b/themes/hextra/layouts/partials/shortcodes/badge.html @@ -0,0 +1,38 @@ +{{- $content := .content -}} +{{- $color := .color | default .type | default "" -}}{{- /* Compatibility with previous parameter. */ -}} +{{- $class := .class | default "" -}} +{{- $border := .border | default false -}} +{{- $icon := .icon | default "" -}} + +{{- /* Compatibility with previous names. */ -}} +{{- $mapping := (dict + "default" "gray" + "tip" "green" + "info" "blue" + "warning" "yellow" + "error" "red" + "important" "purple" + ) +-}} +{{- $color = index $mapping $color | default $color | default "gray" -}} + +{{- $styleClass := newScratch -}} +{{- $styleClass.Set "gray" "hx:text-gray-600 hx:bg-gray-100 hx:dark:bg-neutral-800 hx:dark:text-neutral-200 hx:border-gray-200 hx:dark:border-neutral-700" -}} +{{- $styleClass.Set "purple" "hx:border-purple-200 hx:bg-purple-100 hx:text-purple-900 hx:dark:border-purple-200/30 hx:dark:bg-purple-900/30 hx:dark:text-purple-200" -}} +{{- $styleClass.Set "indigo" "hx:border-indigo-200 hx:bg-indigo-100 hx:text-indigo-900 hx:dark:border-indigo-200/30 hx:dark:bg-indigo-900/30 hx:dark:text-indigo-200" -}} +{{- $styleClass.Set "blue" "hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200" -}} +{{- $styleClass.Set "green" "hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200" -}} +{{- $styleClass.Set "yellow" "hx:border-yellow-100 hx:bg-yellow-50 hx:text-yellow-900 hx:dark:border-yellow-200/30 hx:dark:bg-yellow-700/30 hx:dark:text-yellow-200" -}} +{{- $styleClass.Set "orange" "hx:border-orange-100 hx:bg-orange-50 hx:text-orange-800 hx:dark:border-orange-400/30 hx:dark:bg-orange-400/20 hx:dark:text-orange-300" -}} +{{- $styleClass.Set "amber" "hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200" -}} +{{- $styleClass.Set "red" "hx:border-red-200 hx:bg-red-100 hx:text-red-900 hx:dark:border-red-200/30 hx:dark:bg-red-900/30 hx:dark:text-red-200" -}} + +{{- $borderClass := cond (eq $border true) "hx:border" "" -}} +{{- $badgeClass := or ($styleClass.Get $color) ($styleClass.Get "gray") -}} +
    +
    + {{- with $icon -}}{{- partial "utils/icon" (dict "name" . "attributes" "height=12") -}}{{- end -}} + {{- $content -}} +
    +
    +{{- /* Strip trailing newline. */ -}} diff --git a/themes/hextra/layouts/partials/shortcodes/callout.html b/themes/hextra/layouts/partials/shortcodes/callout.html new file mode 100644 index 0000000..176fdfe --- /dev/null +++ b/themes/hextra/layouts/partials/shortcodes/callout.html @@ -0,0 +1,28 @@ +{{- $content := .content -}} +{{- $emoji := .emoji -}} +{{- $icon := .icon -}} + +{{- $defaultClass := "hx:border-orange-100 hx:bg-orange-50 hx:text-orange-800 hx:dark:border-orange-400/30 hx:dark:bg-orange-400/20 hx:dark:text-orange-300" -}} + +{{- $class := .class | default $defaultClass -}} + + +
    +
    + {{- with $emoji -}} +
    + {{- . -}} +
    + {{- else -}} + {{- with $icon -}} + {{ partial "utils/icon.html" (dict "name" . "attributes" `height=1.2em class="hx:inline-block hx:align-middle"`) -}} + {{- end -}} + {{- end -}} +
    + +
    +
    + {{- $content -}} +
    +
    +
    diff --git a/themes/hextra/layouts/partials/shortcodes/card.html b/themes/hextra/layouts/partials/shortcodes/card.html new file mode 100644 index 0000000..514d522 --- /dev/null +++ b/themes/hextra/layouts/partials/shortcodes/card.html @@ -0,0 +1,70 @@ +{{- $link := .link -}} +{{- $title := .title -}} +{{- $icon := .icon -}} +{{- $subtitle := .subtitle -}} +{{- $image := .image -}} +{{- $alt := .alt | default $title -}} +{{- $width := .width -}} +{{- $height := .height -}} +{{- $imageStyle := .imageStyle -}} +{{- $tag := .tag -}} +{{- $tagColor := .tagColor | default .tagType | default "" -}}{{- /* Compatibility with previous parameter. */ -}} +{{- $tagBorder := not (eq .tagBorder false) | default true }} +{{- $tagIcon := .tagIcon -}} + +{{ $linkClass := "hx:hover:border-gray-300 hx:bg-transparent hx:shadow-xs hx:dark:border-neutral-800 hx:hover:bg-slate-50 hx:hover:shadow-md hx:dark:hover:border-neutral-700 hx:dark:hover:bg-neutral-900" }} +{{- with $image -}} + {{ $linkClass = "hx:hover:border-gray-300 hx:bg-gray-100 hx:shadow-sm hx:dark:border-neutral-700 hx:dark:bg-neutral-800 hx:dark:text-gray-50 hx:hover:shadow-lg hx:dark:hover:border-neutral-500 hx:dark:hover:bg-neutral-700" }} +{{- end -}} + +{{- $external := strings.HasPrefix $link "http" -}} +{{- $href := cond (strings.HasPrefix $link "/") ($link | relURL) $link -}} + + + + {{- with $image -}} + {{ $alt }} + {{- end -}} + + {{- $padding := "hx:p-4" -}} + {{- with $subtitle -}} + {{- $padding = "hx:pt-4 hx:px-4" -}} + {{- end -}} + +
    + + {{- with $icon }}{{ partial "utils/icon.html" (dict "name" $icon) -}}{{- end -}} + {{- $title -}} + + {{- with $subtitle -}} +
    {{- $subtitle | markdownify -}}
    + {{- end -}} +
    + + {{- if $tag }} + {{- partial "shortcodes/badge.html" (dict + "content" $tag + "color" $tagColor + "class" "hextra-card-tag" + "border" $tagBorder + "icon" $tagIcon + ) + -}} + {{- end -}} +
    +{{- /* Strip trailing newline. */ -}} diff --git a/themes/hextra/layouts/partials/shortcodes/cards.html b/themes/hextra/layouts/partials/shortcodes/cards.html new file mode 100644 index 0000000..dfd808b --- /dev/null +++ b/themes/hextra/layouts/partials/shortcodes/cards.html @@ -0,0 +1,6 @@ +{{- $cols := .cols | default 3 -}} +{{- $content := .content -}} + +
    + {{- $content -}} +
    diff --git a/themes/hextra/layouts/partials/shortcodes/tabs.html b/themes/hextra/layouts/partials/shortcodes/tabs.html new file mode 100644 index 0000000..a4f31d8 --- /dev/null +++ b/themes/hextra/layouts/partials/shortcodes/tabs.html @@ -0,0 +1,48 @@ +{{- $tabsID := .id }} + +{{- /* +The `tabs` parameter is a list of dict with the following keys: + - `id`: (int) the ID of the tab (the Ordinal of the tab shortcode). + - `name`: (string) the name of the tab (the title). + - `icon`: (string) the icon of the tab. + - `content`: (string) the content of the tab. + - `selected`: (bool) whether the tab is selected. +*/ -}} +{{- $tabs := .tabs }} + +{{- if eq (len $tabs) 0 -}} + {{ errorf "tabs must have at least one tab" }} +{{- end -}} + +{{- $enableSync := .enableSync }} + +{{- /* Create group data for syncing and select the first tab if none is selected. */ -}} +{{- $selectedIndex := 0 -}} +{{ $dataTabGroup := slice -}} + +{{- range $i, $item := $tabs -}} + {{- $dataTabGroup = $dataTabGroup | append ($item.name) -}} + + {{- if $item.selected -}} + {{- $selectedIndex = $i -}} + {{- end -}} +{{- end -}} + +{{- /* Generate a unique ID for each tab group. */ -}} +{{- $globalID := printf "tabs-%02v" $tabsID -}} + +{{- /* Keep HTML on single lines to avoid `>` being parsed as blockquote when nested in steps (#876) */ -}} +
    +
    + {{- range $i, $item := $tabs -}} + + {{- end -}} +
    +
    +
    + {{- range $i, $item := $tabs -}} +
    + {{- $item.content | markdownify -}} +
    + {{- end -}} +
    diff --git a/themes/hextra/layouts/partials/sidebar.html b/themes/hextra/layouts/partials/sidebar.html new file mode 100644 index 0000000..3d6ea7c --- /dev/null +++ b/themes/hextra/layouts/partials/sidebar.html @@ -0,0 +1,326 @@ +{{- $context := .context -}} + +{{- $disableSidebar := .disableSidebar | default false -}} +{{- $displayPlaceholder := .displayPlaceholder | default false -}} + +{{- $navRoot := cond (eq site.Home.Type "docs") site.Home $context.FirstSection -}} +{{- $pageURL := $context.RelPermalink -}} + +{{- if .context.Params.sidebar.hide -}} + {{- $disableSidebar = true -}} + {{- $displayPlaceholder = false -}} +{{- end -}} + +{{- $sidebarClass := "hx:md:sticky" -}} +{{- if $disableSidebar -}} + {{- if $displayPlaceholder -}} + {{- $sidebarClass = "hx:md:hidden hx:xl:block" -}} + {{- else -}} + {{- $sidebarClass = "hx:md:hidden" -}} + {{- end -}} +{{- end -}} + + + +{{- define "sidebar-main" -}} + {{ template "sidebar-tree" (dict "context" .context "level" 0 "page" .page "pageURL" .pageURL "toc" (.toc | default false)) }} +{{- end -}} + +{{- define "sidebar-tree" -}} + {{- if ge .level 4 -}} + {{- return -}} + {{- end -}} + + {{- $context := .context -}} + {{- $page := .page }} + {{- $pageURL := .page.RelPermalink -}} + {{- $level := .level -}} + {{- $toc := .toc | default false -}} + {{- $useMainMenu := and (eq $level 0) $toc -}} + {{- $mainMenuEntries := slice -}} + + {{- $items := where (union .context.RegularPages .context.Sections) "Params.sidebar.exclude" "!=" true -}} + {{- if $useMainMenu -}} + {{- range $menuItem := site.Menus.main -}} + {{- $menuType := $menuItem.Params.type | default "" -}} + {{- $isIconOnly := and $menuItem.Params.icon (ne $menuType "link") -}} + {{- /* Keep only navigation links in the mobile sidebar. */ -}} + {{- if or (eq $menuType "search") (eq $menuType "theme-toggle") (eq $menuType "language-switch") $isIconOnly -}} + {{- continue -}} + {{- end -}} + + {{- $menuTitle := or (T $menuItem.Identifier) $menuItem.Name -}} + {{- /* Dropdown parents mirror navbar behavior: render a labeled group of child links. */ -}} + {{- if $menuItem.HasChildren -}} + {{- $childEntries := slice -}} + {{- range $childItem := $menuItem.Children -}} + {{- $childType := $childItem.Params.type | default "" -}} + {{- $childIsIconOnly := and $childItem.Params.icon (ne $childType "link") -}} + {{- if or (eq $childType "search") (eq $childType "theme-toggle") (eq $childType "language-switch") $childIsIconOnly -}} + {{- continue -}} + {{- end -}} + + {{- $childTitle := or (T $childItem.Identifier) $childItem.Name -}} + {{- $childPage := $childItem.Page -}} + {{- with $childItem.PageRef -}} + {{- with $page.Site.GetPage . -}} + {{- $childPage = . -}} + {{- end -}} + {{- end -}} + {{- with $childPage -}} + {{- if ne .Params.sidebar.exclude true -}} + {{- $childEntries = $childEntries | append (dict "title" $childTitle "link" .RelPermalink) -}} + {{- end -}} + {{- continue -}} + {{- end -}} + + {{- $childLink := $childItem.URL -}} + {{- with $childItem.PageRef -}} + {{- if hasPrefix . "/" -}} + {{- $childLink = relLangURL (strings.TrimPrefix "/" .) -}} + {{- end -}} + {{- end -}} + {{- if $childLink -}} + {{- $childEntries = $childEntries | append (dict "title" $childTitle "link" $childLink) -}} + {{- end -}} + {{- end -}} + + {{- if gt (len $childEntries) 0 -}} + {{- $mainMenuEntries = $mainMenuEntries | append (dict "type" "group" "title" $menuTitle "children" $childEntries) -}} + {{- end -}} + {{- continue -}} + {{- end -}} + + {{- /* Normalize page-backed entries so we keep nested tree behavior. */ -}} + {{- $menuPage := $menuItem.Page -}} + {{- with $menuItem.PageRef -}} + {{- with $page.Site.GetPage . -}} + {{- $menuPage = . -}} + {{- end -}} + {{- end -}} + {{- with $menuPage -}} + {{- if ne .Params.sidebar.exclude true -}} + {{- $mainMenuEntries = $mainMenuEntries | append (dict "type" "page" "item" . "title" $menuTitle) -}} + {{- end -}} + {{- continue -}} + {{- end -}} + + {{- $link := $menuItem.URL -}} + {{- with $menuItem.PageRef -}} + {{- if hasPrefix . "/" -}} + {{- $link = relLangURL (strings.TrimPrefix "/" .) -}} + {{- end -}} + {{- end -}} + {{- if $link -}} + {{- $mainMenuEntries = $mainMenuEntries | append (dict "type" "url" "link" $link "title" $menuTitle) -}} + {{- end -}} + {{- end -}} + {{- end -}} + + {{- $useMainMenuEntries := and $useMainMenu (gt (len $mainMenuEntries) 0) -}} + {{- $hasItems := or (gt (len $items) 0) $useMainMenuEntries -}} + + {{- if $hasItems -}} + {{- if eq $level 0 -}} + {{- if $useMainMenuEntries -}} + {{- /* Mixed list: page entries render trees; url entries render leaf links. */ -}} + {{- range $entry := $mainMenuEntries -}} + {{- if eq (index $entry "type") "page" -}} + {{- $item := index $entry "item" -}} + {{- if $item.Params.sidebar.separator -}} +
  • + {{ index $entry "title" }} +
  • + {{- else -}} + {{- $active := eq (strings.TrimSuffix "/" $pageURL) (strings.TrimSuffix "/" $item.RelPermalink) -}} + {{- $shouldOpen := or ($item.Params.sidebar.open) ($item.IsAncestor $page) $active | default true }} +
  • + {{- template "sidebar-item-link" dict "context" $item "active" $active "open" $shouldOpen "title" (index $entry "title") "link" $item.RelPermalink -}} + {{- if and $toc $active (ne $item.Params.toc false) -}} + {{- template "sidebar-toc" dict "page" $item -}} + {{- end -}} + {{- template "sidebar-tree" dict "context" $item "page" $page "pageURL" $pageURL "level" (add $level 1) "toc" $toc -}} +
  • + {{- end -}} + {{- else if eq (index $entry "type") "group" -}} +
  • +
    + + {{- index $entry "title" -}} + +
    +
    +
      + {{- range $child := index $entry "children" -}} + {{- $link := index $child "link" -}} + {{- $active := eq (strings.TrimSuffix "/" $pageURL) (strings.TrimSuffix "/" $link) -}} +
    • + {{- template "sidebar-item-link" dict "active" $active "open" false "title" (index $child "title") "link" $link -}} +
    • + {{- end -}} +
    +
    +
  • + {{- else -}} + {{- $link := index $entry "link" -}} + {{- $active := eq (strings.TrimSuffix "/" $pageURL) (strings.TrimSuffix "/" $link) -}} +
  • {{ template "sidebar-item-link" dict "active" $active "open" false "title" (index $entry "title") "link" $link }}
  • + {{- end -}} + {{- end -}} + {{- else -}} + {{- range $items.ByWeight }} + {{- if .Params.sidebar.separator -}} +
  • + {{ partial "utils/title" . }} +
  • + {{- else -}} + {{- $active := eq $pageURL .RelPermalink -}} + {{- $shouldOpen := or (.Params.sidebar.open) (.IsAncestor $page) $active | default true }} +
  • + {{- $linkTitle := partial "utils/title" . -}} + {{- template "sidebar-item-link" dict "context" . "active" $active "open" $shouldOpen "title" $linkTitle "link" .RelPermalink -}} + {{- if and $toc $active (ne .Params.toc false) -}} + {{- template "sidebar-toc" dict "page" . -}} + {{- end -}} + {{- template "sidebar-tree" dict "context" . "page" $page "pageURL" $pageURL "level" (add $level 1) "toc" $toc -}} +
  • + {{- end -}} + {{- end -}} + {{- end -}} + {{- else -}} +
    +
      + {{- range $items.ByWeight }} + {{- $active := eq $pageURL .RelPermalink -}} + {{- $shouldOpen := or (.Params.sidebar.open) (.IsAncestor $page) $active | default true }} + {{- $linkTitle := partial "utils/title" . -}} +
    • + {{- template "sidebar-item-link" dict "context" . "active" $active "open" $shouldOpen "title" $linkTitle "link" .RelPermalink -}} + {{- if and $toc $active (ne .Params.toc false) -}} + {{ template "sidebar-toc" dict "page" . }} + {{- end }} + {{ template "sidebar-tree" dict "context" . "page" $page "pageURL" $pageURL "level" (add $level 1) "toc" $toc }} +
    • + {{- end -}} +
    +
    + {{- end -}} + {{- end -}} +{{- end -}} + +{{- define "sidebar-toc" -}} + {{ $page := .page }} + {{ with $page.Fragments.Headings }} + + {{ end }} +{{- end -}} + +{{- define "sidebar-footer" -}} + {{- range site.Menus.sidebar -}} + {{- $name := or (T .Identifier) .Name -}} + {{ if eq .Params.type "separator" }} +
  • + {{ $name }} +
  • + {{ else }} + {{- $link := .URL -}} + {{- with .PageRef -}} + {{- if hasPrefix . "/" -}} + {{- $link = relLangURL (strings.TrimPrefix "/" .) -}} + {{- end -}} + {{- end -}} +
  • {{ template "sidebar-item-link" dict "active" false "open" false "title" $name "link" $link }}
  • + {{ end }} + {{- end -}} +{{- end -}} + +{{- define "sidebar-item-link" -}} + {{- $external := strings.HasPrefix .link "http" -}} + {{- $open := .open | default true -}} + {{- $hasChildren := false -}} + {{- $linkClass := "hx:flex hx:items-center hx:justify-between hx:gap-2 hx:grow hx:cursor-pointer hx:rounded-sm hx:px-2 hx:py-1.5 hx:text-sm hx:transition-colors [-webkit-tap-highlight-color:transparent] [-webkit-touch-callout:none] hx:hextra-focus-visible-inset" -}} + {{- with .context }}{{ if or .RegularPages .Sections }}{{ $hasChildren = true }}{{ end }}{{ end -}} + {{- if $hasChildren -}} + {{- $linkClass = printf "%s hx:ltr:pr-8 hx:rtl:pl-8" $linkClass -}} + {{- end -}} + {{- if .active -}} + {{- $linkClass = printf "%s hextra-sidebar-active-item hx:bg-primary-100 hx:font-semibold hx:text-primary-800 hx:contrast-more:border hx:contrast-more:border-primary-500 hx:dark:bg-primary-400/10 hx:dark:text-primary-600 hx:contrast-more:dark:border-primary-500" $linkClass -}} + {{- else -}} + {{- $linkClass = printf "%s hx:text-gray-500 hx:hover:bg-gray-100 hx:hover:text-gray-900 hx:contrast-more:border hx:contrast-more:border-transparent hx:contrast-more:text-gray-900 hx:contrast-more:hover:border-gray-900 hx:dark:text-neutral-400 hx:dark:hover:bg-primary-100/5 hx:dark:hover:text-gray-50 hx:contrast-more:dark:text-gray-50 hx:contrast-more:dark:hover:border-gray-50" $linkClass -}} + {{- end -}} +
    + + {{- .title -}} + + {{- if $hasChildren }} + + {{- end }} +
    +{{- end -}} + +{{- define "sidebar-collapsible-button" -}} + +{{- end -}} diff --git a/themes/hextra/layouts/partials/tags.html b/themes/hextra/layouts/partials/tags.html new file mode 100644 index 0000000..446fb9d --- /dev/null +++ b/themes/hextra/layouts/partials/tags.html @@ -0,0 +1,7 @@ +{{- $context := .context -}} + +{{- range $tag := $context.Params.tags -}} + {{- with $context.Site.GetPage (printf "/tags/%s" $tag) -}} + #{{ $tag }} + {{- end -}} +{{- end -}} diff --git a/themes/hextra/layouts/partials/theme-toggle.html b/themes/hextra/layouts/partials/theme-toggle.html new file mode 100644 index 0000000..e7b72ea --- /dev/null +++ b/themes/hextra/layouts/partials/theme-toggle.html @@ -0,0 +1,83 @@ +{{- $hideLabel := .hideLabel -}} +{{- $iconHeight := .iconHeight | default 12 -}} +{{- $class := .class | default "hx:h-7 hx:px-2 hx:text-xs hx:hover:bg-gray-100 hx:hover:text-gray-900 hx:dark:hover:bg-primary-100/5 hx:dark:hover:text-gray-50 hx:font-medium hx:text-gray-600 hx:transition-colors hx:dark:text-gray-400" -}} +{{- $location := .location | default "bottom" -}} + +{{- $changeTheme := (T "changeTheme") | default "Change theme" -}} +{{- $light := (T "light") | default "Light" -}} +{{- $dark := (T "dark") | default "Dark" -}} +{{- $system := (T "system") | default "System" -}} + +
    + + +
    diff --git a/themes/hextra/layouts/partials/toc.html b/themes/hextra/layouts/partials/toc.html new file mode 100644 index 0000000..8084b45 --- /dev/null +++ b/themes/hextra/layouts/partials/toc.html @@ -0,0 +1,91 @@ +{{/* Table of Contents */}} +{{/* TODO: toc bottom part should be able to hide */}} +{{- $toc := .Params.toc | default true -}} +{{- $onThisPage := (T "onThisPage") | default "On this page"}} +{{- $tags := (T "tags") | default "Tags"}} +{{- $editThisPage := (T "editThisPage") | default "Edit this page"}} +{{- $backToTop := (T "backToTop") | default "Scroll to top" -}} + + + +{{/* TOC subheadings component. This is a recursive component that renders a list of headings. */}} +{{- define "toc-subheading" -}} + {{- $headings := .headings -}} + {{- $level := .level -}} + {{- if ge $level 6 -}} + {{ return }} + {{- end -}} + + {{- $padding := (mul $level 4) -}} + {{- $class := cond (eq $level 0) "hx:font-medium" (printf "hx:ltr:pl-%d hx:rtl:pr-%d" $padding $padding) -}} + + {{- range $headings }} + {{- if .Title }} +
  • + + {{- .Title | safeHTML | plainify | htmlUnescape }} + +
  • + {{- end -}} + {{- with .Headings -}} + {{ template "toc-subheading" (dict "headings" . "level" (add $level 1)) }} + {{- end -}} + + {{- end -}} +{{- end -}} diff --git a/themes/hextra/layouts/partials/utils/extract-headings.html b/themes/hextra/layouts/partials/utils/extract-headings.html new file mode 100644 index 0000000..976d76e --- /dev/null +++ b/themes/hextra/layouts/partials/utils/extract-headings.html @@ -0,0 +1,31 @@ +{{- /* +Extracts all headings from a page and adds them to the scratchpad. + +The keys can be obtained from the scratchpad by using the "keys" key. +The titles can be obtained from the scratchpad by using the "titles" key. + +The scratchpad must be initialized with empty slices before calling this function for the keys "keys" and "titles" + +@param {any} target The element to extract headings from. +@param {any} scratch The scratchpad to add the keys and titles to. + +@example {{ partial "utils/extract-headings.html" (dict "target" $h1 "scratch" $s) }} +*/ -}} + +{{- range $heading := index .target.Headings -}} + {{- if and (eq $heading.Level 0) (not $heading.Title) -}} + {{- $.scratch.Add "keys" (slice $heading.Title) -}} + {{- else -}} + {{- $key := (printf "%s#%s" $heading.ID $heading.Title) -}} + {{- $.scratch.Add "keys" (slice $key) -}} + {{- end -}} + + {{- $title := (printf "%s" $heading.Level $heading.Title) | htmlUnescape -}} + {{- $.scratch.Add "titles" (slice $title) -}} + + {{- partial "utils/extract-headings.html" (dict + "target" $heading + "scratch" $.scratch + ) + }} +{{- end -}} diff --git a/themes/hextra/layouts/partials/utils/file-path.html b/themes/hextra/layouts/partials/utils/file-path.html new file mode 100644 index 0000000..1794551 --- /dev/null +++ b/themes/hextra/layouts/partials/utils/file-path.html @@ -0,0 +1,21 @@ +{{/* This utility is used to get the file path from absolute, relative path or URL. */}} + +{{- $path := .path -}} +{{- $page := .page -}} + +{{- $isLocal := not (urls.Parse $path).Scheme -}} +{{- $isPage := and (eq $page.Kind "page") (not $page.BundleType) -}} +{{- $startsWithSlash := hasPrefix $path "/" -}} +{{- $startsWithRelative := hasPrefix $path "../" -}} + +{{- if and $path $isLocal -}} + {{- if $startsWithSlash -}} + {{/* File under static directory */}} + {{- $path = (relURL (strings.TrimPrefix "/" $path)) -}} + {{- else if and $isPage (not $startsWithRelative) -}} + {{/* File is a sibling to the individual page file */}} + {{ $path = (printf "../%s" $path) }} + {{- end -}} +{{- end -}} + +{{- return $path -}} diff --git a/themes/hextra/layouts/partials/utils/format-date.html b/themes/hextra/layouts/partials/utils/format-date.html new file mode 100644 index 0000000..94cbdc4 --- /dev/null +++ b/themes/hextra/layouts/partials/utils/format-date.html @@ -0,0 +1,3 @@ +{{- with . -}} + {{- . | time.Format (site.Params.dateFormat | default ":date_long") -}} +{{- end -}} diff --git a/themes/hextra/layouts/partials/utils/fragments.html b/themes/hextra/layouts/partials/utils/fragments.html new file mode 100644 index 0000000..511a4dd --- /dev/null +++ b/themes/hextra/layouts/partials/utils/fragments.html @@ -0,0 +1,93 @@ +{{- /* + fragments.html - Split page content into searchable fragments + + This partial processes a Hugo page and splits its content into fragments based on headings, + creating a data structure suitable for search indexing. It supports different fragment types + and handles hierarchical heading structures (h1, h2). + + Parameters: + - .context (Page): The Hugo page to process + - .type (string): Fragment type - "content" (default), "heading", "title", or "summary" + + Returns: + - dict: Map of heading keys to content fragments + + Example: + Input page with content: + # Introduction + This is the intro text. + ## Setup + Setup instructions here. + # Configuration + Config details here. + + Output (type "content"): + { + "": "This is the intro text.", + "intro#Introduction": "This is the intro text. Setup instructions here.", + "setup#Setup": "Setup instructions here.", + "config#Configuration": "Config details here." + } + + Fragment types: + - "content": Splits page content by headings (default) + - "heading": Returns heading keys with empty content + - "title": Returns empty content (title handled elsewhere) + - "summary": Returns page summary only +*/ -}} + +{{- /* Extract page context and fragment type */ -}} +{{- $page := .context -}} +{{- $type := .type | default "content" -}} + +{{- /* Process all headings */ -}} +{{- $s := newScratch -}} +{{- $s.Set "keys" slice -}} +{{- $s.Set "titles" slice -}} + +{{- partial "utils/extract-headings.html" (dict "target" $page.Fragments "scratch" $s) -}} + +{{- $headingKeys := $s.Get "keys" -}} +{{- $headingTitles := $s.Get "titles" -}} + +{{- $content := $page.Content | htmlUnescape -}} +{{- $len := len $headingKeys -}} +{{- $data := dict -}} + +{{ if eq $type "content" }} + {{/* Include full content of the page */}} + {{ if eq $len 0 }} + {{ $data = $data | merge (dict "" ($page.Plain | htmlUnescape | strings.TrimSpace)) }} + {{ else }} + {{/* Split the raw content from bottom to top */}} + {{ range seq $len }} + {{ $i := sub $len . }} + {{ $headingKey := index $headingKeys $i }} + {{ $headingTitle := index $headingTitles $i }} + + {{ if eq $i 0 }} + {{ $data = $data | merge (dict $headingKey ($content | plainify | htmlUnescape | strings.TrimSpace)) }} + {{ else }} + {{ $parts := split $content (printf "%s" $headingTitle) }} + {{ $lastPart := index $parts (sub (len $parts) 1) }} + + {{ $data = $data | merge (dict $headingKey ($lastPart | plainify | htmlUnescape | strings.TrimSpace)) }} + {{ $content = strings.TrimSuffix $lastPart $content }} + {{ $content = strings.TrimSuffix (printf "%s" $headingTitle) $content }} + {{ end }} + {{ end }} + {{ end }} +{{ else if (eq $type "heading" ) }} + {{/* Put heading keys with empty content to the data object */}} + {{ $data = dict "" "" }} + {{ range $headingKeys }} + {{ $data = $data | merge (dict . "") }} + {{ end }} +{{ else if (eq $type "title") }} + {{/* Use empty data object since title is included in search-data.json */}} + {{ $data = $data | merge (dict "" "") }} +{{ else if (eq $type "summary" ) }} + {{ $data = $data | merge (dict "" ($page.Summary | plainify | htmlUnescape | strings.TrimSpace)) }} +{{ end }} + +{{ return $data }} diff --git a/themes/hextra/layouts/partials/utils/hugo-compat/language-direction.html b/themes/hextra/layouts/partials/utils/hugo-compat/language-direction.html new file mode 100644 index 0000000..24a65c2 --- /dev/null +++ b/themes/hextra/layouts/partials/utils/hugo-compat/language-direction.html @@ -0,0 +1,15 @@ +{{/* +Returns the language direction using the supported Hugo API for the running version. + +Hugo v0.158.0 deprecated Language.LanguageDirection in favor of Language.Direction. +Keep the fallback so Hextra can continue supporting Hugo >= 0.146.0. +*/}} +{{- $language := . -}} +{{- $direction := "" -}} +{{- if ge (hugo.Version) "0.158.0" -}} + {{- $direction = $language.Direction -}} +{{- else -}} + {{- $direction = $language.LanguageDirection -}} +{{- end -}} + +{{- return $direction -}} diff --git a/themes/hextra/layouts/partials/utils/hugo-compat/language-label.html b/themes/hextra/layouts/partials/utils/hugo-compat/language-label.html new file mode 100644 index 0000000..b6a58bb --- /dev/null +++ b/themes/hextra/layouts/partials/utils/hugo-compat/language-label.html @@ -0,0 +1,15 @@ +{{/* +Returns the language label using the supported Hugo API for the running version. + +Hugo v0.158.0 deprecated Language.LanguageName in favor of Language.Label. +Keep the fallback so Hextra can continue supporting Hugo >= 0.146.0. +*/}} +{{- $language := . -}} +{{- $label := "" -}} +{{- if ge (hugo.Version) "0.158.0" -}} + {{- $label = $language.Label -}} +{{- else -}} + {{- $label = $language.LanguageName -}} +{{- end -}} + +{{- return $label -}} diff --git a/themes/hextra/layouts/partials/utils/hugo-compat/language-locale.html b/themes/hextra/layouts/partials/utils/hugo-compat/language-locale.html new file mode 100644 index 0000000..1600218 --- /dev/null +++ b/themes/hextra/layouts/partials/utils/hugo-compat/language-locale.html @@ -0,0 +1,15 @@ +{{/* +Returns the language locale using the supported Hugo API for the running version. + +Hugo v0.158.0 deprecated Language.LanguageCode in favor of Language.Locale. +Keep the fallback so Hextra can continue supporting Hugo >= 0.146.0. +*/}} +{{- $language := . -}} +{{- $locale := "" -}} +{{- if ge (hugo.Version) "0.158.0" -}} + {{- $locale = $language.Locale -}} +{{- else -}} + {{- $locale = $language.LanguageCode -}} +{{- end -}} + +{{- return $locale -}} diff --git a/themes/hextra/layouts/partials/utils/hugo-compat/site-data.html b/themes/hextra/layouts/partials/utils/hugo-compat/site-data.html new file mode 100644 index 0000000..7ba0511 --- /dev/null +++ b/themes/hextra/layouts/partials/utils/hugo-compat/site-data.html @@ -0,0 +1,14 @@ +{{/* +Returns site data using the supported Hugo API for the running version. + +Hugo v0.156.0 deprecated site.Data / .Site.Data in favor of hugo.Data. +Keep the fallback so Hextra can continue supporting Hugo >= 0.146.0. +*/}} +{{- $siteData := dict -}} +{{- if ge (hugo.Version) "0.156.0" -}} + {{- $siteData = hugo.Data -}} +{{- else -}} + {{- $siteData = site.Data -}} +{{- end -}} + +{{- return $siteData -}} diff --git a/themes/hextra/layouts/partials/utils/hugo-compat/sites.html b/themes/hextra/layouts/partials/utils/hugo-compat/sites.html new file mode 100644 index 0000000..3f91c7b --- /dev/null +++ b/themes/hextra/layouts/partials/utils/hugo-compat/sites.html @@ -0,0 +1,14 @@ +{{/* +Returns all sites using the supported Hugo API for the running version. + +Hugo v0.156.0 deprecated site.Sites / page.Sites in favor of hugo.Sites. +Keep the fallback so Hextra can continue supporting Hugo >= 0.146.0. +*/}} +{{- $sites := slice -}} +{{- if ge (hugo.Version) "0.156.0" -}} + {{- $sites = hugo.Sites -}} +{{- else -}} + {{- $sites = site.Sites -}} +{{- end -}} + +{{- return $sites -}} diff --git a/themes/hextra/layouts/partials/utils/icon.html b/themes/hextra/layouts/partials/utils/icon.html new file mode 100644 index 0000000..979d117 --- /dev/null +++ b/themes/hextra/layouts/partials/utils/icon.html @@ -0,0 +1,15 @@ +{{/* Render raw svg icon from site data */}} +{{- $siteData := partial "utils/hugo-compat/site-data.html" . -}} +{{- $icon := index $siteData.icons .name -}} + +{{- if not $icon -}} + {{ errorf "icon %q not found" .name }} +{{- end -}} + +{{- $icon = $icon | safeHTML -}} + +{{- if .attributes -}} + {{- $icon = replaceRE " +:root { + --hextra-max-page-width: {{ $maxPageWidth }}; +} + +{{- end -}} diff --git a/themes/hextra/layouts/partials/utils/sort-pages.html b/themes/hextra/layouts/partials/utils/sort-pages.html new file mode 100644 index 0000000..4b8ee03 --- /dev/null +++ b/themes/hextra/layouts/partials/utils/sort-pages.html @@ -0,0 +1,32 @@ +{{- $page := .page -}} +{{- $by := .by | default "weight" -}} +{{- $order := .order | default "asc" -}} + +{{- $pages := slice }} + +{{- if eq $by "weight" }} + {{- $pages = $page.Pages.ByWeight }} +{{- else if eq $by "date" }} + {{- $pages = $page.Pages.ByDate }} +{{- else if eq $by "title" }} + {{- $pages = $page.Pages.ByTitle }} +{{- else if eq $by "expiryDate" }} + {{- $pages = $page.Pages.ByExpiryDate }} +{{- else if eq $by "publishDate" }} + {{- $pages = $page.Pages.ByPublishDate }} +{{- else if eq $by "lastmod" }} + {{- $pages = $page.Pages.ByLastmod }} +{{- else if eq $by "linkTitle" }} + {{- $pages = $page.Pages.ByLinkTitle }} +{{- else if eq $by "length" }} + {{- $pages = $page.Pages.ByLength }} +{{- else }} + {{- warnf "sort-pages: unknown sort field %q" $by -}} + {{- $pages = $page.Pages }} +{{ end -}} + +{{- if eq $order "desc" }} + {{- $pages = $pages.Reverse }} +{{- end -}} + +{{- return $pages -}} diff --git a/themes/hextra/layouts/partials/utils/template-url.html b/themes/hextra/layouts/partials/utils/template-url.html new file mode 100644 index 0000000..9de73fd --- /dev/null +++ b/themes/hextra/layouts/partials/utils/template-url.html @@ -0,0 +1,18 @@ +{{/* + This utility replaces placeholders in a URL template string. + + Usage: + {{ partial "utils/template-url.html" (dict "template" .url "values" (dict "url" $pageURL "title" $pageTitle "markdown_url" $markdownURL)) }} + + Placeholders use the format {key} and values are URL-encoded automatically. +*/}} +{{- $template := .template -}} +{{- $values := .values | default dict -}} + +{{- range $key, $value := $values -}} + {{- $placeholder := printf "{%s}" $key -}} + {{- $encoded := $value | urlquery -}} + {{- $template = replace $template $placeholder $encoded -}} +{{- end -}} + +{{- return $template -}} diff --git a/themes/hextra/layouts/partials/utils/title.html b/themes/hextra/layouts/partials/utils/title.html new file mode 100644 index 0000000..0ab0afa --- /dev/null +++ b/themes/hextra/layouts/partials/utils/title.html @@ -0,0 +1,19 @@ +{{/* + This utility is used to retrieve the title of a page or section. + If no title is set, it falls back to using the directory or file name. + + Based on https://github.com/thegeeklab/hugo-geekdoc/blob/v0.44.0/layouts/partials/utils/title.html +*/}} +{{- $title := "" }} + +{{ if .LinkTitle }} + {{ $title = .LinkTitle }} +{{ else if .Title }} + {{ $title = .Title }} +{{ else if and .IsSection .File }} + {{ $title = path.Base .File.Dir | humanize | title }} +{{ else if and .IsPage .File }} + {{ $title = .File.BaseFileName | humanize | title }} +{{ end }} + +{{ return $title -}} diff --git a/themes/hextra/layouts/shortcodes/asciinema.html b/themes/hextra/layouts/shortcodes/asciinema.html new file mode 100644 index 0000000..167ef97 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/asciinema.html @@ -0,0 +1,88 @@ +{{- /* Get parameters */ -}} +{{- $castFile := .Get "file" | default (.Get 0) -}} +{{- $theme := .Get "theme" | default "asciinema" -}} +{{- $speed := .Get "speed" | default 1 -}} +{{- $autoplay := .Get "autoplay" | default false -}} +{{- $loop := .Get "loop" | default false -}} +{{- $poster := .Get "poster" | default "" -}} +{{- $markers := .Get "markers" | default "" -}} + +{{- /* Handle file path: support local files, absolute paths, and remote URLs */ -}} +{{- $isLocal := not (urls.Parse $castFile).Scheme -}} +{{- $isPage := and (eq .Page.Kind "page") (not .Page.BundleType) -}} + +{{- if $isLocal -}} + {{- /* Local file handling */ -}} + {{- $found := false -}} + + {{- /* Try page resources first */ -}} + {{- if not $isPage -}} + {{- with .Page.Resources.Get $castFile -}} + {{- $castFile = .RelPermalink -}} + {{- $found = true -}} + {{- end -}} + {{- end -}} + + {{- /* Try global resources if not found in page resources */ -}} + {{- if not $found -}} + {{- with resources.Get $castFile -}} + {{- $castFile = .RelPermalink -}} + {{- $found = true -}} + {{- end -}} + {{- end -}} + + {{- /* Try static files if not found in resources */ -}} + {{- if not $found -}} + {{- if hasPrefix $castFile "/" -}} + {{- $castFile = relURL (strings.TrimPrefix "/" $castFile) -}} + {{- $found = true -}} + {{- else -}} + {{- /* For relative paths, assume they're in static directory */ -}} + {{- $castFile = relURL $castFile -}} + {{- $found = true -}} + {{- end -}} + {{- end -}} + + {{- /* If still not found, raise an error */ -}} + {{- if not $found -}} + {{- errorf "Asciinema cast file not found: %s. Please ensure the file exists in your assets, static/, or provide a valid remote URL." $castFile -}} + {{- end -}} +{{- end -}} + +{{- /* Build marker configuration */ -}} +{{- $markerConfig := "" -}} +{{- if $markers -}} + {{- $markerParts := slice -}} + {{- range (split $markers ",") -}} + {{- $item := trim . " " -}} + {{- $colonIndex := findRE ":" $item -}} + {{- if $colonIndex -}} + {{- /* Marker with label */ -}} + {{- $pair := split $item ":" -}} + {{- if ge (len $pair) 2 -}} + {{- $time := printf "%.1f" (float (trim (index $pair 0) " ")) -}} + {{- $label := trim (index $pair 1) " " -}} + {{- $markerParts = $markerParts | append (printf "[%s,\"%s\"]" $time $label) -}} + {{- end -}} + {{- else -}} + {{- /* Simple marker */ -}} + {{- $markerParts = $markerParts | append (printf "%.1f" (float $item)) -}} + {{- end -}} + {{- end -}} + {{- $markerConfig = printf "[%s]" (delimit $markerParts ",") -}} +{{- end -}} + +{{- /* Mark page as using asciinema */ -}} +{{- .Page.Store.Set "hasAsciinema" true -}} + +
    +
    \ No newline at end of file diff --git a/themes/hextra/layouts/shortcodes/badge.html b/themes/hextra/layouts/shortcodes/badge.html new file mode 100644 index 0000000..a8005c2 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/badge.html @@ -0,0 +1,54 @@ +{{- /* +A shortcode to create a badge. + +@param {string} content The content of the badge. +@param {string} color The color of the badge. +@param {string} class The class of the badge. +@param {string} link The link of the badge. +@param {string} icon The icon of the badge. + +or + +@param {string} 0 The content of the badge. + +@example {{< badge content="Badge" color="blue" >}} +@example {{< badge "Badge" >}} +*/ -}} + +{{- if .IsNamedParams -}} + {{- $content := .Get "content" -}} + {{- $color := .Get "color" | default (.Get "type") | default "" -}}{{- /* Compatibility with previous parameter. */ -}} + {{- $class := .Get "class" | default "" -}} + {{- $link := .Get "link" | default "" -}} + {{- $icon := .Get "icon" | default "" -}} + {{- $border := not (eq (.Get "border") false) | default true }} + + {{- if $link -}} + + {{- partial "shortcodes/badge.html" (dict + "content" $content + "color" $color + "class" $class + "border" $border + "icon" $icon + ) + -}} + + {{- else -}} + {{- partial "shortcodes/badge.html" (dict + "content" $content + "color" $color + "class" $class + "border" $border + "icon" $icon + ) + -}} + {{- end -}} +{{- else -}} + {{- $content := .Get 0 -}} + {{- partial "shortcodes/badge.html" (dict + "content" $content + "border" true + ) + -}} +{{- end -}} diff --git a/themes/hextra/layouts/shortcodes/callout.html b/themes/hextra/layouts/shortcodes/callout.html new file mode 100644 index 0000000..ba939a7 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/callout.html @@ -0,0 +1,57 @@ +{{- /* +A shortcode to create a callout. + +@param {string} type The type of the callout (default, info, warning, error, important). +@param {string} content The content of the callout. +@param {string} emoji The emoji of the callout. +@param {string} icon The icon of the callout (related to type or can be a custom icon). + +@example {{< callout type="info" >}}Content{{< /callout >}} +*/ -}} + +{{- $type := .Get "type" | default "default" -}} +{{- $emoji := .Get "emoji" -}} +{{- $icon := .Get "icon" -}} + +{{- $styles := newScratch -}} +{{- $styles.Set "default" (dict + "icon" "light-bulb" + "style" "hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200" + ) +-}} +{{- $styles.Set "info" (dict + "icon" "information-circle" + "style" "hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200" + ) +-}} +{{- $styles.Set "warning" (dict + "icon" "exclamation" + "style" "hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200" + ) +-}} +{{- $styles.Set "error" (dict + "icon" "ban" + "style" "hx:border-red-200 hx:bg-red-100 hx:text-red-900 hx:dark:border-red-200/30 hx:dark:bg-red-900/30 hx:dark:text-red-200" + ) +-}} +{{- $styles.Set "important" (dict + "icon" "exclamation-circle" + "style" "hx:border-purple-200 hx:bg-purple-100 hx:text-purple-900 hx:dark:border-purple-200/30 hx:dark:bg-purple-900/30 hx:dark:text-purple-200" + ) +-}} + +{{- $style := or ($styles.Get $type) ($styles.Get "default") -}} + +{{- if and (not $emoji) (not $icon) -}} + {{- $icon = $style.icon -}} +{{- end -}} + +{{- $content := .InnerDeindent | markdownify -}} + +{{- partial "shortcodes/callout.html" (dict + "content" $content + "emoji" $emoji + "icon" $icon + "class" $style.style + ) +-}} diff --git a/themes/hextra/layouts/shortcodes/card.html b/themes/hextra/layouts/shortcodes/card.html new file mode 100644 index 0000000..e3b47ce --- /dev/null +++ b/themes/hextra/layouts/shortcodes/card.html @@ -0,0 +1,72 @@ +{{- /* + A shortcode to create a card. + + @param {string} link The link to the card. + @param {string} title The title of the card. + @param {string} icon The icon of the card. + @param {string} subtitle The subtitle of the card. + @param {string} tag The tag of the card. + @param {string} tagColor The color of the tag. + @param {string} image The image of the card. + @param {string} alt The alt text for the image (defaults to title if not provided). + @param {string} method The method to process the image. + @param {string} options The options to process the image. + @param {string} imageStyle The style of the image. + + @example {{< card link="/" title="Image Card" +}} +*/ -}} +{{- $link := .Get "link" -}} +{{- $title := .Get "title" -}} +{{- $icon := .Get "icon" -}} +{{- $subtitle := .Get "subtitle" -}} +{{- $image := .Get "image" -}} +{{- $alt := .Get "alt" | default $title -}} +{{- $width := 0 -}} +{{- $height := 0 -}} +{{- $imageStyle := .Get "imageStyle" -}} +{{- $tag := .Get "tag" -}} +{{- $tagColor := .Get "tagColor" | default (.Get "tagType") | default "" -}}{{- /* Compatibility with previous parameter. */ -}} +{{- $tagBorder := not (eq (.Get "tagBorder") false) | default true }} +{{- $tagIcon := .Get "tagIcon" | default "" -}} + +{{/* Image processing options */}} +{{- $method := .Get "method" | default "Resize" | humanize -}} +{{- $options := .Get "options" | default "800x webp q80" -}} +{{- $process := .Get "process" | default (printf "%s %s" $method $options) -}} + +{{- if and $image (not (urls.Parse $image).Scheme) -}} + {{- with or (.Page.Resources.Get $image) (resources.Get $image) -}} + {{/* .Process does not work on svgs */}} + {{- if (not (eq .MediaType.SubType "svg")) -}} + {{/* Retrieve the $image resource from local or global resources */}} + {{- $processed := .Process $process -}} + {{- $width = $processed.Width -}} + {{- $height = $processed.Height -}} + {{- $image = $processed.RelPermalink -}} + {{- end -}} + {{ else }} + {{/* Otherwise, use relative link of the image */}} + {{- if hasPrefix $image "/" -}} + {{- $image = relURL (strings.TrimPrefix "/" $image) -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- partial "shortcodes/card" (dict + "page" .Page + "link" $link + "title" $title + "icon" $icon + "subtitle" $subtitle + "image" $image + "alt" $alt + "width" $width + "height" $height + "imageStyle" $imageStyle + "tag" $tag + "tagType" $tagColor + "tagBorder" $tagBorder + "tagIcon" $tagIcon + ) +-}} diff --git a/themes/hextra/layouts/shortcodes/cards.html b/themes/hextra/layouts/shortcodes/cards.html new file mode 100644 index 0000000..0b6667f --- /dev/null +++ b/themes/hextra/layouts/shortcodes/cards.html @@ -0,0 +1,11 @@ +{{- /* +A shortcode for creating cards. + +@param {string} cols The number of columns. + +@example {{< cards cols="3" >}}{{< /cards >}} +*/ -}} + +{{- $cols := .Get "cols" | default 3 -}} + +{{- partial "shortcodes/cards" (dict "cols" $cols "content" .Inner) -}} diff --git a/themes/hextra/layouts/shortcodes/details.html b/themes/hextra/layouts/shortcodes/details.html new file mode 100644 index 0000000..6835337 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/details.html @@ -0,0 +1,20 @@ +{{- /* +A built-in component to display a collapsible content. + +@param {string} title The title of the details. +@param {string} closed Whether the details are closed or not (default: false). + +@example {{% details title="Details" %}}Content{{% /details %}} +*/ -}} + +{{- $title := .Get "title" | default "" -}} +{{- $closed := eq (.Get "closed") "true" | default false -}} + +
    + + {{ $title | markdownify }} + +
    + {{ .InnerDeindent | $.Page.RenderString (dict "display" "block") }} +
    +
    diff --git a/themes/hextra/layouts/shortcodes/hextra-feature-card.html b/themes/hextra/layouts/shortcodes/hextra-feature-card.html new file mode 100644 index 0000000..fd8a648 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra-feature-card.html @@ -0,0 +1,51 @@ +{{- /* +A shortcode for displaying a feature card. + +@param {string} title The title of the card. +@param {string} subtitle The subtitle of the card. +@param {string} class The class of the card. +@param {string} image The image of the card. +@param {string} imageClass The class of the image. +@param {string} style The style of the card. +@param {string} icon The icon of the card. +@param {string} link The link of the card. + +@example {{< hextra/feature-card title="Feature Card" subtitle="This is a feature card." >}} +*/ -}} + +{{- $title := .Get "title" -}} +{{- $subtitle := .Get "subtitle" -}} +{{- $class := .Get "class" -}} +{{- $image := .Get "image" -}} +{{- $imageClass := .Get "imageClass" -}} +{{- $style := .Get "style" -}} +{{- $icon := .Get "icon" -}} +{{- $link := .Get "link" -}} + +{{- $external := hasPrefix $link "http" -}} +{{- $href := cond (strings.HasPrefix $link "/") ($link | relURL) $link -}} + +{{- if hasPrefix $image "/" -}} + {{- $image = relURL (strings.TrimPrefix "/" $image) -}} +{{- end -}} + + +
    +

    + {{ with $icon -}} + + {{- partial "utils/icon.html" (dict "name" . "attributes" "height=1.5rem") -}} + + {{ end -}} + {{ $title }} +

    +

    {{ $subtitle | markdownify }}

    +
    + {{- with $image -}} + {{ $title }} + {{- end -}} +
    diff --git a/themes/hextra/layouts/shortcodes/hextra-feature-grid.html b/themes/hextra/layouts/shortcodes/hextra-feature-grid.html new file mode 100644 index 0000000..aace898 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra-feature-grid.html @@ -0,0 +1,21 @@ +{{- /* +A shortcode for displaying a feature grid. + +@param {string} cols The number of columns. +@param {string} style The style of the grid. + +@example {{< hextra/feature-grid cols="3" >}}{{< /hextra/feature-grid >}} +*/ -}} + +{{- $cols := .Get "cols" | default 3 -}} +{{- $style := .Get "style" | default "" -}} + +{{- $css := printf "--hextra-feature-grid-cols: %v; %s" $cols $style -}} + + +
    + {{ .Inner }} +
    diff --git a/themes/hextra/layouts/shortcodes/hextra-hero-badge.html b/themes/hextra/layouts/shortcodes/hextra-hero-badge.html new file mode 100644 index 0000000..9fdcbbd --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra-hero-badge.html @@ -0,0 +1,24 @@ +{{- /* +A shortcode for rendering a badge with a link. + +@param {string} link The link of the badge. +@param {string} class The class of the badge. +@param {string} style The style of the badge. + +@example {{< hextra/hero-badge >}}{{< /hextra/hero-badge >}} +*/ -}} + +{{- $link := .Get "link" -}} +{{- $external := hasPrefix $link "http" -}} +{{- $href := cond (hasPrefix $link "/") ($link | relURL) $link -}} +{{- $class := .Get "class" }} +{{- $style := .Get "style" -}} + + + {{ .Inner | markdownify }} + diff --git a/themes/hextra/layouts/shortcodes/hextra-hero-button.html b/themes/hextra/layouts/shortcodes/hextra-hero-button.html new file mode 100644 index 0000000..0295c2a --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra-hero-button.html @@ -0,0 +1,25 @@ +{{- /* +A shortcode for rendering a button with a link. + +@param {string} link The link of the button. +@param {string} text The text of the button. +@param {string} style The style of the button. + +@example {{< hextra/hero-button text="Get Started" link="docs" >}} +*/ -}} + +{{- $link := .Get "link" -}} +{{- $text := .Get "text" -}} +{{- $style := .Get "style" -}} + +{{- $external := hasPrefix $link "http" -}} +{{- $href := cond (hasPrefix $link "/") ($link | relURL) $link -}} + + + {{- $text -}} + diff --git a/themes/hextra/layouts/shortcodes/hextra-hero-container.html b/themes/hextra/layouts/shortcodes/hextra-hero-container.html new file mode 100644 index 0000000..a7153d4 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra-hero-container.html @@ -0,0 +1,56 @@ +{{- /* +A simple hero container with an image on the left side. + +@param {string} class The class of the container. +@param {string} cols The number of columns (default: 2). +@param {string} image The image of the container. +@param {bool} imageCard Whether to display the image as a card (default: false). +@param {string} imageClass The class of the image. +@param {string} imageLink The link of the image. +@param {string} imageStyle The style of the image. +@param {string} imageTitle The title of the image. +@param {int} imageWidth The width of the image (default: 350). +@param {int} imageHeight The height of the image (default: 350). +@param {string} style The style of the container. + +@example {{< hextra/hero-container image="image.png" imageLink="https://example.com" imageTitle="Example Image" >}} +*/ -}} + +{{- $class := .Get "class" -}} +{{- $cols := .Get "cols" | default 2 -}} +{{- $image := .Get "image" -}} +{{- $imageCard := .Get "imageCard" | default false -}} +{{- $imageClass := .Get "imageClass" -}} +{{- $imageLink := .Get "imageLink" -}} +{{- $imageLinkExternal := hasPrefix $imageLink "http" -}} +{{- $imageStyle := .Get "imageStyle" -}} +{{- $imageTitle := .Get "imageTitle" -}} +{{- $imageWidth := .Get "imageWidth" | default 350 -}} +{{- $imageHeight := .Get "imageHeight" | default 350 -}} +{{- $style := .Get "style" -}} + +{{- $css := printf "--hextra-feature-grid-cols: %v; %s" $cols $style -}} +{{- $href := cond (hasPrefix $imageLink "/") ($imageLink | relURL) $imageLink -}} +{{- if hasPrefix $image "/" -}} + {{- $image = relURL (strings.TrimPrefix "/" $image) -}} +{{- end -}} + +
    +
    + {{ .Inner }} +
    + {{- with $image }} +
    + + + +
    + {{ end -}} +
    diff --git a/themes/hextra/layouts/shortcodes/hextra-hero-headline.html b/themes/hextra/layouts/shortcodes/hextra-hero-headline.html new file mode 100644 index 0000000..6dd313a --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra-hero-headline.html @@ -0,0 +1,16 @@ +{{- /* +A shortcode for displaying a hero headline. + +@param {string} style The style of the headline. + +@example {{< hextra/hero-headline >}}{{< /hextra/hero-headline >}} +*/ -}} + +{{- $style := .Get "style" -}} + +

    + {{ .Inner | markdownify }} +

    diff --git a/themes/hextra/layouts/shortcodes/hextra-hero-section.html b/themes/hextra/layouts/shortcodes/hextra-hero-section.html new file mode 100644 index 0000000..1e7131e --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra-hero-section.html @@ -0,0 +1,20 @@ +{{- /* +A simple hero section with a heading and optional style. + +@param {string} heading The heading level (default: h2). +@param {string} style The style of the heading. +@param {string} content The content of the heading. + +@example {{< hextra/hero-section heading="h3" >}}{{< /hextra/hero-section >}}> +*/ -}} + +{{- $style := .Get "style" -}} +{{- $heading := int (strings.TrimPrefix "h" (.Get "heading" | default "h2")) -}} +{{- $size := cond (ge $heading 4) "xl" (cond (eq $heading 3) "2xl" "4xl") -}} + + + {{ .Inner | markdownify }} + diff --git a/themes/hextra/layouts/shortcodes/hextra-hero-subtitle.html b/themes/hextra/layouts/shortcodes/hextra-hero-subtitle.html new file mode 100644 index 0000000..614c427 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra-hero-subtitle.html @@ -0,0 +1,16 @@ +{{- /* +A shortcode for displaying a hero subtitle. + +@param {string} style The style of the subtitle. + +@example {{< hextra/hero-subtitle >}}{{< /hextra/hero-subtitle >}} +*/ -}} + +{{- $style := .Get "style" -}} + +

    + {{ .Inner | markdownify }} +

    diff --git a/themes/hextra/layouts/shortcodes/icon.html b/themes/hextra/layouts/shortcodes/icon.html new file mode 100644 index 0000000..2dbe4b7 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/icon.html @@ -0,0 +1,28 @@ +{{- /* +Create an icon. + +@param {string} name The name of the icon. +@param {string} attributes The attributes of the icon. + +or + +@param {string} 0 The name of the icon. + +@example {{< icon name="github" >}} +@example {{< icon "github" >}} +*/ -}} + +{{- $name := .Get "name" | default (.Get 0) -}} +{{- $siteData := partial "utils/hugo-compat/site-data.html" . -}} +{{- $icon := index $siteData.icons $name -}} +{{- $attributes := .Get "attributes" | default "height=1em"}} + +{{- if not $icon -}} + {{ errorf "icon %q not found" $name }} +{{- end -}} + +{{- $icon = replaceRE " + {{- $icon | safeHTML -}} + diff --git a/themes/hextra/layouts/shortcodes/include.html b/themes/hextra/layouts/shortcodes/include.html new file mode 100644 index 0000000..8bdf440 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/include.html @@ -0,0 +1,22 @@ +{{- /* +https://github.com/gohugoio/gohugoioTheme/blob/master/layouts/shortcodes/include.html + +Renders the page using the RenderShortcode method on the Page object. + +You must call this shortcode using the {{% %}} notation. + +@param {string} (positional parameter 0) The path to the page, relative to the content directory. +@returns template.HTML + +@example {{% include "functions/_common/glob-patterns" %}} +*/}} + +{{- with .Get 0 }} + {{- with site.GetPage . }} + {{- .RenderShortcodes }} + {{- else }} + {{- errorf "The %q shortcode was unable to find %q. See %s" $.Name . $.Position }} + {{- end }} +{{- else }} + {{- errorf "The %q shortcode requires a positional parameter indicating the path of the file to include. See %s" .Name .Position }} +{{- end }} diff --git a/themes/hextra/layouts/shortcodes/jupyter.html b/themes/hextra/layouts/shortcodes/jupyter.html new file mode 100644 index 0000000..08ca593 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/jupyter.html @@ -0,0 +1,88 @@ +{{- /* +Render Jupyter Notebook + +@param {string} 0 The path of the Jupyter Notebook. + +@example {{% jupyter "notebook.ipynb" %}} +*/ -}} + +{{- $path := .Get 0 -}} +{{- $data := "" -}} +{{- $page := .Page -}} + +{{- $isLocal := not (urls.Parse $path).Scheme -}} +{{- $isPage := and (eq .Page.Kind "page") (not .Page.BundleType) -}} + +{{/* https://gohugo.io/functions/transform/unmarshal/ */}} +{{- if (not $isLocal) -}} + {{- with resources.GetRemote $path -}} + {{- with unmarshal .Content -}}{{- $data = . -}}{{- end -}} + {{- else -}} + {{- errorf "Remote resource not found: %s" $path -}} + {{- end -}} +{{- else if (not $isPage) -}} + {{- with .Page.Resources.Get $path -}} + {{- with unmarshal .Content -}}{{- $data = . -}}{{- end -}} + {{- else -}} + {{- errorf "Local resource not found: %s" $path -}} + {{- end -}} +{{- else -}} + {{- with resources.Get $path -}} + {{- with unmarshal .Content -}}{{- $data = . -}}{{- end -}} + {{- else -}} + {{- errorf "Local resource not found: %s" $path -}} + {{- end -}} +{{- end -}} + +{{- $language := index $data "metadata" "language_info" "name" | default "python" -}} + +{{- with index $data "cells" -}} + {{- range $cell := . -}} + {{- if eq (index $cell "cell_type") "code" -}} + {{- $source := index $cell "source" -}} + {{- $sourceContent := (cond (reflect.IsSlice $source) (delimit $source "") $source) -}} +{{- with ($sourceContent | strings.Chomp) -}} +{{ (printf "\n\n```%s\n%s\n```\n" $language .) | safeHTML -}} +{{- end -}} + +
    + {{- $outputs := index $cell "outputs" -}} + {{- with $outputs -}} +
    +
    + {{- range $output := . -}} + {{- if eq (index $output "output_type") "display_data" -}} + {{- $data := index $output "data" -}} + {{- $image := index $data "image/png" -}} + {{- if $image -}} + image + {{- end -}} + {{- else if eq (index $output "output_type") "stream" -}} + {{- $text := index $output "text" -}} + {{- $textContent := (cond (reflect.IsSlice $text) (delimit $text "") $text) -}} +
    {{- $textContent -}}
    + {{- else if eq (index $output "output_type") "execute_result" -}} + {{- $data := index $output "data" -}} + {{- $text := index $data "text/plain" -}} + {{- $textContent := (cond (reflect.IsSlice $text) (delimit $text "") $text) -}} +
    {{- $textContent -}}
    + {{- $html := index $data "text/html" -}} + {{- if $html -}} + {{- $htmlText := delimit $html "" -}} +
    + {{- $htmlText | safeHTML -}} +
    + {{- end -}} + {{- end -}} + {{- end -}} +
    +
    + {{- end -}} +
    + {{- else if eq (index $cell "cell_type") "markdown" -}} + {{- $source := index $cell "source" }} + {{- $sourceContent := (cond (reflect.IsSlice $source) (delimit $source "") $source) }} +{{ (printf "\n%s\n" $sourceContent) | safeHTML }} + {{- end -}} + {{- end -}} +{{- end -}} diff --git a/themes/hextra/layouts/shortcodes/pdf.html b/themes/hextra/layouts/shortcodes/pdf.html new file mode 100644 index 0000000..991d6eb --- /dev/null +++ b/themes/hextra/layouts/shortcodes/pdf.html @@ -0,0 +1,15 @@ +{{- /* +Shortcode to include a PDF file in a page. + +@param {string} 0 The path to the PDF file. + +@example {{< pdf "path/to/file.pdf" >}} +*/ -}} + +{{- $path := .Get 0 -}} +{{- $url := partial "utils/file-path" (dict "page" .Page "path" $path) -}} + + +
    + +
    diff --git a/themes/hextra/layouts/shortcodes/steps.html b/themes/hextra/layouts/shortcodes/steps.html new file mode 100644 index 0000000..1bccad1 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/steps.html @@ -0,0 +1,9 @@ +{{- /* +A shortcode for creating a step list. + +@example {{% steps %}}{{% /steps %}} +*/ -}} + +
    + {{- .Inner -}} +
    diff --git a/themes/hextra/layouts/shortcodes/tab.html b/themes/hextra/layouts/shortcodes/tab.html new file mode 100644 index 0000000..e57c460 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/tab.html @@ -0,0 +1,28 @@ +{{- /* +Create a tab. + +@param {string} name The name of the tab. +@param {string} icon The icon of the tab. +@param {string} selected Whether the tab is selected. + +@example {{< tab name="Foo" icon="document-text" selected=true >}}content{{< /tab >}} +*/ -}} + +{{- $name := .Get "name" | default (printf "Tab %d" .Ordinal) -}} + +{{- $icon := .Get "icon" -}} + +{{- $selected := .Get "selected" -}} +{{- if .Parent.Get "defaultIndex" -}} + {{- $selected = eq .Ordinal (int (.Parent.Get "defaultIndex")) -}} +{{- end -}} + +{{- $tabs := .Parent.Store.Get "tabs" | default slice -}} +{{ .Parent.Store.Set "tabs" ($tabs | append (dict + "id" .Ordinal + "name" $name + "icon" $icon + "content" .InnerDeindent + "selected" $selected + )) +-}} diff --git a/themes/hextra/layouts/shortcodes/tabs.html b/themes/hextra/layouts/shortcodes/tabs.html new file mode 100644 index 0000000..efdf5a6 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/tabs.html @@ -0,0 +1,39 @@ +{{- /* +Create a tabbed interface with the given items. + +@example {{< tabs >}}...{{< /tabs >}} +*/ -}} + +{{- /* Unused, but required for the shortcode to work. */ -}} +{{- .Inner -}} + +{{- /* Enable syncing of tabs across the page. */ -}} +{{- $enableSync := false -}} +{{- if or (eq .Page.Params.tabs.sync false) (eq .Page.Params.tabs.sync true) -}} + {{- $enableSync = .Page.Params.tabs.sync -}} +{{- else -}} + {{- $enableSync = site.Params.page.tabs.sync | default false -}} +{{- end -}} + +{{- $tabs := ($.Store.Get "tabs") | default slice -}} + +{{- /* Compatibility with previous parameter "items". */ -}} +{{- if .Get "defaultIndex" -}} + {{- warnf "The 'defaultIndex' parameter of the 'tabs' shortcode is deprecated. Please use 'selected' on 'tab' instead." -}} +{{- end -}} + +{{- if .Get "items" -}} + {{- warnf "The 'items' parameter of the 'tabs' shortcode is deprecated. Please use 'name' on 'tab' instead." -}} + + {{- $items := split (.Get "items") "," -}} + + {{- $temp := slice -}} + {{- range $i, $item := $items -}} + {{- $tab := index $tabs $i -}} + {{- $temp = $temp | append (merge $tab (dict "name" $item)) -}} + {{- end -}} + + {{- $tabs = $temp -}} +{{- end -}} + +{{- partial "shortcodes/tabs" (dict "tabs" $tabs "enableSync" $enableSync "id" .Ordinal) -}} diff --git a/themes/hextra/layouts/shortcodes/term.html b/themes/hextra/layouts/shortcodes/term.html new file mode 100644 index 0000000..8d437bb --- /dev/null +++ b/themes/hextra/layouts/shortcodes/term.html @@ -0,0 +1,33 @@ +{{- /* +Highlight a glossary term + +@param {string} entry Either the glossary abbreviation or the term. + +or + +@param {string} 0 Either the glossary abbreviation or the term. + +@example {{< term entry="MAC" >}} +@example {{< term "MAC" >}} +*/ -}} + +{{- $entry := .Get "entry" | default (.Get 0) -}} +{{- $entryLower := lower $entry -}} +{{- $match := dict -}} +{{- $siteData := partial "utils/hugo-compat/site-data.html" . -}} + + +{{- range (index $siteData .Site.Language.Lang "termbase") -}} + {{- if or (eq (lower .abbr) $entryLower) (eq (lower .term) $entryLower) -}} + {{- $match = . -}} + {{- break -}} + {{- end -}} +{{- end -}} + +{{- with $match }} + + {{- $entry -}} + +{{- else }} + {{- $entry -}} +{{- end }}
    + {{- range $page.Ancestors.Reverse }} + {{- if not .IsHome }} + + {{- partial "utils/icon.html" (dict "name" "chevron-right" "attributes" "class=\"hx:w-3.5 hx:shrink-0 hx:rtl:-rotate-180\"") -}} + {{ end -}} + {{ end -}} +
    + {{- partial "utils/title" $page -}} +
    +