From 39cca2d0622dd9b95ab05e4994a183aeac5d79da Mon Sep 17 00:00:00 2001 From: myrfy001 <11474381+myrfy001@users.noreply.github.com> Date: Wed, 15 Jul 2026 22:05:28 +0800 Subject: [PATCH 1/9] =?UTF-8?q?docs(metainfer):=20=E6=9B=B4=E6=96=B0=20sta?= =?UTF-8?q?r-history=20=E5=9B=BE=E8=A1=A8=20+=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AD=A6=E6=9C=AF=E7=A0=94=E7=A9=B6=E4=B8=8E=E8=B4=A1=E7=8C=AE?= =?UTF-8?q?=E7=AB=A0=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - star-history 改用 支持暗/亮主题自适应 - 新增 Academic Research/学术研究 章节,包含 arXiv 引用和 arxiv-paper 分支说明 - 新增 Contributing/如何贡献 章节,指向 CONTRIBUTING.md Co-Authored-By: deepseek-v4-pro --- README.md | 31 ++++++++++++++++++++++++++++--- README_CN.md | 28 +++++++++++++++++++++++++--- 2 files changed, 53 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ad196ff9..9e399022 100644 --- a/README.md +++ b/README.md @@ -30,9 +30,13 @@

- - Star History - + + + + + Star History Chart + +

--- @@ -96,5 +100,26 @@ python -m metainfer.server.app MIT +## Academic Research + +The initial ideas and experimental data of MetaInfer are publicly available +at https://arxiv.org/abs/2607.12875. The related code is on the `arxiv-paper` branch. + +Citation: + +``` +@misc{miao2026metainferknowledgellminference, + title={MetaInfer: A Knowledge Only LLM Inference Engine Generator SKILL Toolbox}, + author={Zhenwen Miao and Honglin Wang and Mingheng Mi}, + year={2026}, + eprint={2607.12875}, + archivePrefix={arXiv}, + primaryClass={cs.MA}, + url={https://arxiv.org/abs/2607.12875}, +} +``` + +## Contributing + See [CONTRIBUTING.md](CONTRIBUTING.md) for architecture details, design principles, and how to add new task types. diff --git a/README_CN.md b/README_CN.md index 55648cd0..0dc4d12c 100644 --- a/README_CN.md +++ b/README_CN.md @@ -30,9 +30,13 @@

- - Star History - + + + + + Star History Chart + +

--- @@ -96,4 +100,22 @@ python -m metainfer.server.app MIT +## 学术研究 + +MetaInfer的最初想法和实验数据已经公开在https://arxiv.org/abs/2607.12875,相关代码位于`arxiv-paper`分支。 + +引用信息: +``` +@misc{miao2026metainferknowledgellminference, + title={MetaInfer: A Knowledge Only LLM Inference Engine Generator SKILL Toolbox}, + author={Zhenwen Miao and Honglin Wang and Mingheng Mi}, + year={2026}, + eprint={2607.12875}, + archivePrefix={arXiv}, + primaryClass={cs.MA}, + url={https://arxiv.org/abs/2607.12875}, +} +``` + +## 如何贡献 架构细节、设计理念和新任务类型添加方法见 [CONTRIBUTING.md](CONTRIBUTING.md)。 From 1da9d3617e59371f6172fdd7efdb8d2c8399c663 Mon Sep 17 00:00:00 2001 From: myrfy001 <11474381+myrfy001@users.noreply.github.com> Date: Wed, 15 Jul 2026 23:52:22 +0800 Subject: [PATCH 2/9] =?UTF-8?q?fix(gen-infer-framework):=20E=5Fperf=5Ftest?= =?UTF-8?q?=20=E8=AF=8A=E6=96=AD=E6=8D=95=E8=8E=B7=20+=20planner=20?= =?UTF-8?q?=E4=B8=8A=E4=B8=8B=E6=96=87=E5=A2=9E=E5=BC=BA=20+=20implementer?= =?UTF-8?q?=20=E5=B9=B6=E8=A1=8C=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 扩展 DIAGNOSTIC_GLOBS 覆盖 E 阶段产物(perf_report.json, perf-server.*.log)和 retrospective.md,确保 planner 能看到 perf 失败的根因 - 新增 _render_e_failure() 给出结构化的 E 失败描述和诊断文件绝对路径 - _prev_logs_section() 自动发现 prev-iter 中的诊断文件,不再硬编码 C_test 文件名 - 新增 IMPLEMENT_PARALLEL_HINT 指导 implementer 用并行子 agent 同时写多个独立文件 - NOTEBOOKS_HINT 明确子 agent 禁令仅针对阅读(不针对写作) Co-Authored-By: deepseek-v4-pro --- .../orchestrator/pipeline.py | 41 ++++- .../orchestrator/plugin.py | 22 ++- .../orchestrator/prompts.py | 172 ++++++++++++++---- 3 files changed, 188 insertions(+), 47 deletions(-) diff --git a/metainfer/tasks/gen_infer_framework/orchestrator/pipeline.py b/metainfer/tasks/gen_infer_framework/orchestrator/pipeline.py index 3f7177e4..461f138e 100644 --- a/metainfer/tasks/gen_infer_framework/orchestrator/pipeline.py +++ b/metainfer/tasks/gen_infer_framework/orchestrator/pipeline.py @@ -882,7 +882,7 @@ def _do_perf_test_oracle( n=n, iter_dir=iter_dir, ctx=ctx, rec=rec, this_perf=None, e_ok=False, e_error=err, ) - return P.INFRA_FAIL, None, f"E (perf oracle) crashed: {err}" + return P.INFRA_FAIL, None, self._render_e_failure(n, err) # The oracle writes perf_report.json; reuse the existing parser. perf = self._read_perf_report(n, iter_dir) @@ -899,7 +899,7 @@ def _do_perf_test_oracle( # oracle that can't get numbers usually means the server # wouldn't boot or answer, which is the same class of problem # as a crashed C step. Don't burn a C-repair slot on it. - return P.INFRA_FAIL, perf, f"E (perf oracle): {e_error}" + return P.INFRA_FAIL, perf, self._render_e_failure(n, e_error) return P.OK, perf, None def _write_retrospective( @@ -1506,6 +1506,43 @@ def _render_oracle_failure(self, iter_num: int, result: Any) -> str: "(server stdout — startup banner, model load info)") return "\n".join(lines) + def _render_e_failure(self, iter_num: int, e_error: str) -> str: + """Compose a structured failure description for an E_perf_test failure. + + Mirrors :meth:`_render_oracle_failure` for the C step — surfaces the + error text AND explicit absolute pointers to the prev-iter diagnostic + files so the next iteration's planner can read the perf server logs + and retrospective before replanning. + + Without this, the planner sees only ``"perf oracle produced no usable + data"`` and replans blind, hitting the same E failure again. + """ + from metainfer.orchestrator.iteration import PREV_ITER_LOGS_SUBDIR + + next_logs = self._logs_dir_for(iter_num + 1) + snap = next_logs / PREV_ITER_LOGS_SUBDIR + + lines: List[str] = [] + lines.append(f"[iter {iter_num:03d} E_perf_test INFRA_FAIL] {e_error}") + lines.append("") + lines.append( + "Diagnostic files from this failed iteration will be copied into " + f"the next iteration's logs snapshot at `{snap}/`. READ them " + "before replanning — this is the second E failure in a row, so " + "the root cause is likely systematic, not a transient glitch:" + ) + lines.append(f" - {snap / 'retrospective.md'} " + "(reviewer's root cause analysis — READ THIS FIRST)") + lines.append(f" - {snap / 'perf_report.json'} " + "(perf sweep: per-concurrency throughput, error counts)") + lines.append(f" - {snap / 'perf-server.stderr.log'} " + "(serve.sh error output — OOM, port conflict, crash)") + lines.append(f" - {snap / 'perf-server.stdout.log'} " + "(serve.sh stdout — startup banner, model load info)") + lines.append(f" - {snap / 'server.stderr.log'} " + "(C-test server errors — if E failed, C may hold stale clues)") + return "\n".join(lines) + # ------------------------------------------------------------------ # # Agent runner (returns (ok, error, failure_mode)) # ------------------------------------------------------------------ # diff --git a/metainfer/tasks/gen_infer_framework/orchestrator/plugin.py b/metainfer/tasks/gen_infer_framework/orchestrator/plugin.py index 2797d1ce..d3a63f9b 100644 --- a/metainfer/tasks/gen_infer_framework/orchestrator/plugin.py +++ b/metainfer/tasks/gen_infer_framework/orchestrator/plugin.py @@ -5,18 +5,30 @@ # Diagnostic files copied forward from iteration N-1's logs dir into # iteration N's logs/prev-iter/ subdir at open time. Without this, the -# next agent has no visibility into WHY the previous C step failed — +# next agent has no visibility into WHY the previous step failed — # the failure_reason text alone is rarely enough to debug a server -# crash or a judge verdict. These names are gf-specific (oracle / -# judge / test logs); tasks with different diagnostic vocabularies -# declare their own globs. +# crash or a judge verdict. +# +# Covers BOTH C_test and E_perf_test artifacts. When E fails (perf +# oracle produced no usable data), the planner needs to see the perf +# server logs and the retrospective to understand WHY — otherwise it +# blindly replans and the next iteration hits the same E failure. DIAGNOSTIC_GLOBS = ( + # C_test (correctness oracle) "oracle-report.json", "server.stdout.log", "server.stderr.log", + "judge.*", + # E_perf_test (perf oracle) + "perf_report.json", + "perf-server.stdout.log", + "perf-server.stderr.log", + # Review analysis — the retrospective often contains better root + # cause analysis than the raw oracle output. + "retrospective.md", + # Agent prompts + generic diagnostics "*-test.log", "test.log", - "judge.*", "*.prompt.txt", ) diff --git a/metainfer/tasks/gen_infer_framework/orchestrator/prompts.py b/metainfer/tasks/gen_infer_framework/orchestrator/prompts.py index c6045341..57d97191 100644 --- a/metainfer/tasks/gen_infer_framework/orchestrator/prompts.py +++ b/metainfer/tasks/gen_infer_framework/orchestrator/prompts.py @@ -30,10 +30,11 @@ examples lives in the `notebooks/` directory. Read it EFFICIENTLY: -- Use the Read tool directly. Do NOT spawn sub-agents (no Agent / Task / - TaskOutput / Explore tool calls) — each sub-agent cold-starts a separate - `claude -p` process and burns 1-3 minutes of startup time per call, - which dominates your budget without producing better answers. +- Use the Read tool directly. Do NOT spawn sub-agents FOR READING (no Agent + / Task / TaskOutput / Explore tool calls to read files) — each sub-agent + cold-starts a separate `ccb` process and burns 1-3 minutes of startup + time per call. Reading a file yourself takes seconds; delegating it to a + sub-agent costs 100× more and adds zero value. - Start with `Glob notebooks/**/*.md` to see the layout, then Read only the files whose names match this iteration's task (typically 3-6 files). Do NOT read every notebook "to be complete". @@ -42,6 +43,35 @@ - Hard cap: at most ~8 Read calls to notebooks for planning, ~4 for implement / review / perf-plan.""" +IMPLEMENT_PARALLEL_HINT = """# Parallel implementation strategy (IMPLEMENTER ONLY) + +You will typically need to write **3+ independent source files** in one +iteration (e.g. `engine.py`, `scheduler.py`, `server.py`, `config.py`). +Writing them sequentially burns 20-40 minutes. Use parallel sub-agents +to write them simultaneously: + +1. **Read `plan.md` first.** Identify which files are independent (no + cross-file imports during initial writing). +2. **For each independent file, spawn ONE parallel Agent** that ONLY + writes that file. Each sub-agent prompt should include: + - The task requirements (frozen section above) + - The relevant excerpt from `plan.md` for THAT file + - The relevant notebook page(s) for that file's domain + - An explicit instruction: "Write exactly `` and nothing else" +3. **Spawn all writing agents in ONE message** so they run in parallel. + You can spawn up to 5 agents at once. +4. **After all agents finish**, read the files they wrote and: + - Fix import paths so cross-file references resolve + - Ensure consistent naming (class names, function signatures) across files + - Run `test.sh` to verify the whole system works together +5. **Do NOT delegate READING to sub-agents.** You read `plan.md`, the + notebooks, and any reference files yourself. Sub-agents only WRITE. + +Why this saves time: 5 files × 6 minutes each sequentially = 30 minutes. +5 files in parallel = ~8 minutes (longest single file) + 2 minutes of +glue work = ~10 minutes total. The sub-agent startup overhead (1-3 min +each) is well worth it for implementer workloads.""" + # Subdirectory (relative to iter_dir/.metainfer-logs/) where the previous # iteration's diagnostic files land via the copy-forward rule in @@ -424,10 +454,14 @@ def _prev_logs_section( """Render the 'previous iteration diagnostics' block. Only emitted when there IS a prev_failure (i.e. we're retrying after a - failed C step). When emitted, it tells the agent in no uncertain terms - to READ the actual log files before writing any code — the prev_failure - text is a summary, the real root cause is usually in server.stderr.log - or the per-case judge reasons inside oracle-report.json. + failed C or E step). When emitted, it tells the agent in no uncertain + terms to READ the actual log files before writing any code. + + The block auto-discovers which files exist in the prev-iter snapshot + rather than assuming C_test-specific filenames — E_perf_test failures + produce different artifacts (perf_report.json, perf-server.*.log), and + the retrospective.md often has better root cause analysis than either + oracle's raw output. ``prev_logs_dir`` is the ABSOLUTE path to the prev-iter snapshot directory (typically ``/.metainfer/logs///prev-iter/``). @@ -438,46 +472,102 @@ def _prev_logs_section( if not prev_failure: return "" if prev_logs_dir is None: - # No absolute path available — fall back to the legacy relative - # pointer. Should not happen in the new layout, but keeps the - # prompt useful if a caller forgets to pass the path. - snap = f".metainfer-logs/{PREV_ITER_LOGS_SUBDIR}" - p_oracle = f"{snap}/oracle-report.json" - p_stderr = f"{snap}/server.stderr.log" - p_stdout = f"{snap}/server.stdout.log" - p_judge = f"{snap}/judge.*.log" - loc_phrase = f"your working directory under `{snap}/`" + snap_str: str = f".metainfer-logs/{PREV_ITER_LOGS_SUBDIR}" + snap_path: Optional[Path] = None + loc_phrase = f"your working directory under `{snap_str}/`" + else: + snap_path = prev_logs_dir + snap_str = str(snap_path) + loc_phrase = f"`{snap_path}/`" + + # Build file pointers, separated by purpose. Reuse the same + # descriptions that _render_oracle_failure uses for C files, and + # add E-perf-specific entries. + file_entries: list[str] = [] + if snap_path is not None and snap_path.is_dir(): + existing = {p.name for p in snap_path.iterdir() if p.is_file()} else: - snap = prev_logs_dir - p_oracle = snap / "oracle-report.json" - p_stderr = snap / "server.stderr.log" - p_stdout = snap / "server.stdout.log" - p_judge = snap / "judge.*.log" - loc_phrase = f"`{snap}/`" + existing = set() + + # ---- C_test artifacts ---- + if "oracle-report.json" in existing: + p = f"{snap_str}/oracle-report.json" + file_entries.append( + f" - {p}\n" + " Full structured verdict: every test case's prompt, the server's actual\n" + " response, the judge's verdict + reason, http status, latency." + ) + if "server.stderr.log" in existing: + p = f"{snap_str}/server.stderr.log" + file_entries.append( + f" - {p}\n" + " The server's stderr capture — Python tracebacks, OOM messages, CUDA\n" + " errors, \"address already in use\", etc. For a crashed/hung server this\n" + " is almost always where the root cause lives." + ) + if "server.stdout.log" in existing: + p = f"{snap_str}/server.stdout.log" + file_entries.append( + f" - {p}\n" + " Server stdout — startup banner, model load progress, \"Uvicorn running\n" + " on ...\". Useful for confirming whether the server even started." + ) + + # ---- E_perf_test artifacts ---- + if "perf_report.json" in existing: + p = f"{snap_str}/perf_report.json" + file_entries.append( + f" - {p}\n" + " Structured perf sweep: per-concurrency throughput, latency percentiles,\n" + " error counts per concurrency level. When num_requests=0, the server was\n" + " not responding at all — check perf-server.stderr.log." + ) + if "perf-server.stderr.log" in existing: + p = f"{snap_str}/perf-server.stderr.log" + file_entries.append( + f" - {p}\n" + " Perf oracle server stderr — why the serve.sh under perf load failed.\n" + " OOM, CUDA errors, port conflicts, or request-handling crashes live here." + ) + if "perf-server.stdout.log" in existing: + p = f"{snap_str}/perf-server.stdout.log" + file_entries.append( + f" - {p}\n" + " Perf oracle server stdout — startup banner, model load progress, request\n" + " throughput. Confirms whether serve.sh booted successfully under perf load." + ) + + # ---- Review / analysis ---- + if "retrospective.md" in existing: + p = f"{snap_str}/retrospective.md" + file_entries.append( + f" - {p}\n" + " The previous iteration's retrospective. Written by a reviewer agent AFTER\n" + " seeing the full test results, it often contains the best root cause\n" + " analysis and concrete fix suggestions. READ THIS FIRST." + ) + + # Fallback: list everything in the snapshot. + if not file_entries: + if snap_path is not None and snap_path.is_dir(): + names = sorted(p.name for p in snap_path.iterdir() if p.is_file()) + if names: + file_entries = [f" - {snap_str}/{n}" for n in names] + + file_list = "\n".join(file_entries) + return f""" # Previous iteration's diagnostic logs (READ BEFORE CODING) -The previous C step failed. Its diagnostic artifacts have been copied into +The previous iteration failed. Its diagnostic artifacts have been copied into {loc_phrase}: - - {p_oracle} - Full structured verdict: every test case's prompt, the server's actual - response, the judge's verdict + reason, http status, latency. This is - the authoritative record of what went wrong. - - {p_stderr} - The server's stderr capture — Python tracebacks, OOM messages, CUDA - errors, "address already in use", etc. **For a crashed/hung server this - is almost always where the root cause lives.** - - {p_stdout} - Server stdout — startup banner, model load progress, "Uvicorn running - on ...". Useful for confirming whether the server even started. - - {p_judge} - The LLM-judge sub-agent's raw output per case (when judge_mode=llm). +{file_list} The `prev_failure` text above is a condensed summary. BEFORE writing any -code, open these files (especially `server.stderr.log` and the failing -cases' entries in `oracle-report.json`) and identify the concrete root -cause. Quote the relevant lines in your plan/commit message. +code, open these files (especially `server.stderr.log`, `perf-server.stderr.log`, +and `retrospective.md`) and identify the concrete root cause. Quote the +relevant lines in your plan/commit message. """ @@ -802,6 +892,8 @@ def implement_prompt( {_perf_plan_section(perf_plan)} {_review_feedback_section(review_feedback)} +{IMPLEMENT_PARALLEL_HINT} + # Deliverables 1. The code described in the plan, inside `{iter_dir}`. {_deliverables_for_task(task_type, iter_dir, req)} From 9312a614749f57383f0e033b9a811d03cdeda0de Mon Sep 17 00:00:00 2001 From: myrfy001 <11474381+myrfy001@users.noreply.github.com> Date: Thu, 16 Jul 2026 00:58:07 +0800 Subject: [PATCH 3/9] =?UTF-8?q?feat(metainfer):=20=E6=96=B0=E5=A2=9E=20fin?= =?UTF-8?q?d-low-hanging-kernel=20task=20=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 `find-low-hanging-kernel` 任务插件:输入 Chrome tracing + 模型目录 + 推理框架源码树, 自动生成可审计的执行流图(节点 = kernel 调用,含 source_ref/tensor shapes/stats/confidence), 并标记优化空间最大的低垂果实。插件完全位于 `metainfer/tasks/find_low_hanging_kernel/` 下, 复用 StateStore / AgentPool / SubAgentManager / TokenBudget 共享基础设施。 主要阶段(每阶段使用全新 Agent 实例,Step 1/2/3 均为多 agent 交叉验证): - P1 code_analysis: 3-agent 池(arch/quant/runtime tracer)+ 综合 agent - P2 tracing_analysis: 确定性 trace parser + 3-agent 池(stat/source/shape analyst) - P3 graph_build + graph_validate: 5-worker 持久 AgentPool,每轮 3 节点分组语义校验 + 确定性完整性检查,支持循环 fix;validation/round_NN/ 留存审计产物 - P4 visualize: 把 graph JSON 内联进 ELK+SVG HTML 模板,独立文件 + WebUI iframe 双形态 附带的其他改动: - 共享层:`metainfer/orchestrator/requirements.py`(统一 req_field 读取, 终结 requirements.json 嵌套/扁平多路径读取反模式);`server/liveness.py` - 其他 task 包(calc_value/opt_kernel/gen_infer_framework/gen_cpp_infer_framework) 切换到共享 requirements 读取层;CLAUDE.md 记录数据一致性权威源规约 测试:39 个新插件测试全绿;mock-based 端到端 + resume + integrity + pool 收敛均覆盖。 Co-Authored-By: glm-5.2 --- CLAUDE.md | 49 + metainfer/orchestrator/requirements.py | 99 + metainfer/orchestrator/state.py | 29 +- .../orchestrator/tests/test_requirements.py | 104 + .../orchestrator/tests/test_token_budget.py | 77 + metainfer/orchestrator/token_budget.py | 83 +- metainfer/server/app.py | 8 + metainfer/server/launcher.py | 59 +- metainfer/server/liveness.py | 187 + metainfer/server/state_reader.py | 24 +- metainfer/server/tests/test_liveness.py | 173 + metainfer/server/tests/test_state_reader.py | 18 +- .../calc_value/orchestrator/orchestrator.py | 50 +- .../example/orchestrator/orchestrator.py | 2 +- .../tasks/find_low_hanging_kernel/__init__.py | 13 + .../tasks/find_low_hanging_kernel/form.yaml | 49 + .../orchestrator/__init__.py | 28 + .../orchestrator/cli.py | 88 + .../orchestrator/graph_schema.py | 309 + .../orchestrator/graph_validator.py | 378 + .../orchestrator/iteration_record.py | 32 + .../orchestrator/orchestrator.py | 158 + .../orchestrator/phases.py | 208 + .../orchestrator/pipeline.py | 641 ++ .../orchestrator/plugin.py | 24 + .../orchestrator/prompts.py | 393 + .../orchestrator/trace_parser.py | 310 + .../orchestrator/visualizer.py | 88 + .../server/__init__.py | 1 + .../find_low_hanging_kernel/server/_qa.py | 79 + .../server/_state_readers.py | 82 + .../find_low_hanging_kernel/server/plugin.py | 28 + .../find_low_hanging_kernel/server/routes.py | 121 + .../static/flhk-detail.js | 260 + .../find_low_hanging_kernel/static/flhk.css | 55 + .../static/flow_graph_template.html | 370 + .../static/vendor/elk.bundled.js | 6589 +++++++++++++++++ .../find_low_hanging_kernel/tests/__init__.py | 1 + .../find_low_hanging_kernel/tests/_helpers.py | 128 + .../tests/test_form.py | 76 + .../tests/test_graph_schema.py | 109 + .../tests/test_graph_validator.py | 203 + .../tests/test_pipeline_phases.py | 224 + .../tests/test_trace_parser.py | 100 + .../tests/test_visualizer.py | 67 + .../orchestrator/orchestrator.py | 74 +- .../orchestrator/pipeline.py | 4 +- .../orchestrator/prompts.py | 39 +- .../orchestrator/orchestrator.py | 74 +- .../orchestrator/pipeline.py | 4 +- .../orchestrator/prompts.py | 39 +- .../opt_kernel/orchestrator/orchestrator.py | 13 +- .../tasks/opt_kernel/orchestrator/pipeline.py | 4 +- metainfer/tasks/sys_shell/server/routes.py | 3 +- metainfer/tasks/sys_shell/static/main.js | 1 + metainfer/tasks/sys_shell/static/styles.css | 9 + .../sys_shell/static/views/task-detail.js | 30 +- 57 files changed, 12239 insertions(+), 229 deletions(-) create mode 100644 metainfer/orchestrator/requirements.py create mode 100644 metainfer/orchestrator/tests/test_requirements.py create mode 100644 metainfer/server/liveness.py create mode 100644 metainfer/server/tests/test_liveness.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/__init__.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/form.yaml create mode 100644 metainfer/tasks/find_low_hanging_kernel/orchestrator/__init__.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/orchestrator/cli.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/orchestrator/graph_schema.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/orchestrator/graph_validator.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/orchestrator/iteration_record.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/orchestrator/orchestrator.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/orchestrator/phases.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/orchestrator/pipeline.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/orchestrator/plugin.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/orchestrator/prompts.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/orchestrator/trace_parser.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/orchestrator/visualizer.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/server/__init__.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/server/_qa.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/server/_state_readers.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/server/plugin.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/server/routes.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/static/flhk-detail.js create mode 100644 metainfer/tasks/find_low_hanging_kernel/static/flhk.css create mode 100644 metainfer/tasks/find_low_hanging_kernel/static/flow_graph_template.html create mode 100644 metainfer/tasks/find_low_hanging_kernel/static/vendor/elk.bundled.js create mode 100644 metainfer/tasks/find_low_hanging_kernel/tests/__init__.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/tests/_helpers.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/tests/test_form.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/tests/test_graph_schema.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/tests/test_graph_validator.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/tests/test_pipeline_phases.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/tests/test_trace_parser.py create mode 100644 metainfer/tasks/find_low_hanging_kernel/tests/test_visualizer.py diff --git a/CLAUDE.md b/CLAUDE.md index 5da80b22..0f43d614 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,6 +4,55 @@ - 文件系统即数据库;server 与 orchestrator 解耦,通过文件系统传递状态 - 多节点通过共享文件系统协同,每个节点只写自己的 `nodes//` +## 数据一致性:单一数据源(Single Source of Truth) + +**文件系统即数据库**这一选择的代价是:失去数据库内置的一致性约束。任何"同一份事实"被存到多个文件,都会在并发/重启/部分写入下漂移,最终表现为难以排查的功能 bug。下列原则**强制执行**: + +### 原则 + +1. **每份事实有且只有一个权威文件**(source of truth)。其他文件需要这份信息时,要么从权威源读取后派生(运行时计算),要么显式声明为"不可回读的历史快照"(写完只用于展示/审计,不再驱动逻辑)。 +2. **严禁双向同步**。如果 A 是权威、B 是缓存,B 只能由 A 单向派生;绝不存在"B 改了回写 A"或"A、B 互相更新"的路径。 +3. **冷重启路径必须重新走权威源**。任何在内存/进程里持有的状态(limit、pid、status)一旦进程退出就丢失;重启时只能从权威文件读,不能从 requirements.json / form 副本读"为了方便"。 +4. **新增字段时先问"谁是权威"**。不要图省事把值复制到第二个文件——短期的省事会变成长期的 bug 工厂。 +5. **历史快照必须标注**。某文件如果只是建任务时的表单记录(之后不再驱动运行时),必须在 schema 注释里写明:"historical record, runtime reads from "。 + +### 已确立的权威源(参考) + +| 数据 | 权威源 | 历史快照 / 派生 | +|---|---|---| +| 预算阈值 | `token_budget.json::config.max_cost_usd` | `requirements.json::token_budget_max_cost_usd`(建任务时表单值,运行时不再读) | +| 预算累计 | `token_budget.json::totals` | `timeline.jsonl` 的 `token_usage` 事件(展示用,从权威派生) | +| 运行时状态 | `run.json`(phase / iteration / **finished / final_status**) | `registry.json`(缓存,由 reconcile 从 run.json 派生) | +| 任务规格 | `requirements.json`(task_type / form / label / created_at) | `registry.json::type/label`(缓存);run.json 不再存 task_type | +| 进程存活 | OS 进程表(`/proc/`) | `orchestrator.pid` / `runtime.json::tasks..pid`(reconcile 时从进程表验证) | +| 进程退出时间 | `orchestrator.pid::finished_at`(进程级元数据) | `registry.json::finished_at`(**派生缓存**——每个写 orchestrator.pid 的地方必须同时 update_task 镜像,reconcile 也会重导) | + +### 已知反模式(**禁止**) + +- **双写**:同一字段被两个文件各持一份,且都被运行时读取 → 必然漂移。 + - 已修复的例子:`requirements.json::token_budget_max_cost_usd` 和 `token_budget.json::config.max_cost_usd` 曾经都被读,导致 WebUI 调整预算后冷重启失效(commit 待补)。 + - 已修复的例子:`task_type` 曾经同时存在 requirements.json / run.json / registry.json,已从 run.json 移除(orchestrator 加载时 load_run 过滤未知字段,兼容旧文件)。 + - 已修复的例子:`created_at` 曾经同时存在 registry.json / run.json,已从 run.json 移除(registry.json::created_at 是唯一权威源)。 +- **构造函数参数压过文件**:构造函数从 A 文件读值传入,`_load()` 看到"非 None"就跳过 B 文件——这等价于把 A 钉死为权威。正确做法是构造函数只传"env override",文件值由 `_load()` 单独决定。 +- **多 task 包复制同一份解析逻辑**:每个 task orchestrator 自己实现一遍 cascade → 修一个 bug 要改 N 处。共享逻辑下沉到 `metainfer/orchestrator/` 公共层。 +- **字段别名 + 多 reader 各写一份 fallback 链**:例如 requirements.json 曾经既支持扁平 `target_model` 又支持嵌套 `answers.target_model` / `form.target_model`,每个 reader 自己写 `req.get("x") or (req.get("answers") or {}).get("x")` —— 12+ 处复制,每处 null 处理略有不同。已加 `metainfer.orchestrator.requirements.req_field()` 统一读取,所有 task 包的读取都应走这个 helper。 + +### requirements.json 扁平化规约 + +WebUI 的 `create_task` 把表单 answers **扁平展开**到顶层(`{"task_id":..., "target_model":..., "max_iterations":"50", ...}`),没有 `answers` 或 `form` 子键。 + +- **写**:只写扁平。新代码不要在 requirements.json 里塞 `answers` / `form` 子字典。 +- **读**:用 `metainfer.orchestrator.requirements.req_field(req, key)` / `req_field_int` / `req_field_float`。helper 内部保留对历史嵌套形式的兼容(旧文件、test fixture),但 production 路径只走扁平。 +- **新加字段**:在 task 的 `form.yaml` 里声明 → WebUI 自动写入扁平顶层 → reader 用 `req_field` 读。不需要改 requirements.json 的 schema 文档。 + +### Code review 检查清单 + +提交前自问: +- [ ] 我新增/修改的字段,是否已经有别的文件存了?如果是,谁是权威? +- [ ] 我的代码读这个字段时,读的是权威源,还是某个缓存? +- [ ] 冷重启后,我的逻辑还能拿到正确值吗?(写一个测试覆盖 restart 场景) +- [ ] 我有没有把"派生量"当"权威量"写到磁盘?(派生量应每次计算,不持久化) + ## 运行时目录结构 每个 task 占用 **两个并列子树**,挂在 `$METAINFER_ROOT/nodes//` 下: diff --git a/metainfer/orchestrator/requirements.py b/metainfer/orchestrator/requirements.py new file mode 100644 index 00000000..8041553a --- /dev/null +++ b/metainfer/orchestrator/requirements.py @@ -0,0 +1,99 @@ +"""Helpers for reading ``requirements.json`` consistently across task +orchestrators. + +Single source of truth for the requirements.json schema +------------------------------------------------------- + +The WebUI's ``create_task`` endpoint writes a **flat** JSON object — the +form answers are spread to the top level alongside ``task_id`` / +``task_type`` / ``label`` / ``raw_request``: + + { + "task_id": "...", + "task_type": "...", + "label": "...", + "raw_request": "...", + "target_model": "...", ← was in form "answers" + "max_iterations": "50", ← was in form "answers" + ... + } + +There is NO ``answers`` or ``form`` sub-key. Some early code and test +fixtures wrote a nested ``{"form": {...}}`` or ``{"answers": {...}}`` +shape; that is legacy and not produced by the WebUI anymore. + +To avoid every orchestrator re-implementing the same "flat key first, +fall back to nested for legacy" logic (which drifts — see the +``token_budget`` cascade bug for how that pattern burns), all readers +should go through :func:`req_field`. +""" + +from __future__ import annotations + +from typing import Any, Dict, Optional + + +# Keys that the orchestrator framework itself writes — task code should +# treat these as opaque identity/metadata, not as part of the form. +RESERVED_KEYS = frozenset({"task_id", "task_type", "label", "raw_request"}) + + +def req_field( + req: Dict[str, Any], key: str, default: Any = None, +) -> Any: + """Read one field from ``requirements.json`` — single source of truth. + + Resolution order: + 1. Top-level flat key (canonical — what the WebUI writes). + 2. ``req["form"][key]`` (legacy nested form). + 3. ``req["answers"][key]`` (legacy nested answers). + 4. ``default``. + + The legacy nested fallbacks exist ONLY for backward compatibility + with old task files on disk / hand-written test fixtures. Production + WebUI output is flat, so resolution stops at step 1 in practice. + + Always use this helper instead of hand-writing + ``req.get("x") or (req.get("answers") or {}).get("x")`` — that + pattern got duplicated across 12+ call sites, each with subtly + different null-handling, and was the root cause of at least one + "limit silently lost" bug. Centralizing the read keeps the schema + honest. + """ + if not isinstance(req, dict): + return default + if key in req: + return req[key] + for ns in ("form", "answers"): + bucket = req.get(ns) + if isinstance(bucket, dict) and key in bucket: + return bucket[key] + return default + + +def req_field_int( + req: Dict[str, Any], key: str, default: Optional[int] = None, +) -> Optional[int]: + """Like :func:`req_field` but coerces to int. Returns ``default`` + on missing/unparseable values. Useful for fields like + ``max_iterations`` that the form may emit as a string.""" + v = req_field(req, key, None) + if v is None: + return default + try: + return int(v) + except (TypeError, ValueError): + return default + + +def req_field_float( + req: Dict[str, Any], key: str, default: Optional[float] = None, +) -> Optional[float]: + """Like :func:`req_field` but coerces to float.""" + v = req_field(req, key, None) + if v is None: + return default + try: + return float(v) + except (TypeError, ValueError): + return default diff --git a/metainfer/orchestrator/state.py b/metainfer/orchestrator/state.py index 879229a4..ce367189 100644 --- a/metainfer/orchestrator/state.py +++ b/metainfer/orchestrator/state.py @@ -20,7 +20,7 @@ import os import threading import time -from dataclasses import dataclass, field, asdict +from dataclasses import dataclass, field, asdict, fields from pathlib import Path from typing import Any, Dict, List, Optional, Union @@ -47,8 +47,6 @@ @dataclass class RunStatus: task_id: str - task_type: str - created_at: float current_iteration: int = 0 current_phase: Phase = "idle" last_update: float = 0.0 @@ -67,6 +65,14 @@ class RunStatus: last_transition_label: Optional[str] = None notes: List[str] = field(default_factory=list) + # ``task_type`` and ``created_at`` are deliberately NOT fields here. + # Authoritative sources: + # - task_type → requirements.json (immutable after task creation) + # - created_at → registry.json::created_at (task spawn time) + # Persisting either in run.json created stale-copy hazards (reset + # used to overwrite created_at, losing the original). See CLAUDE.md + # "数据一致性" section. + # --------------------------------------------------------------------------- # # Store @@ -118,17 +124,15 @@ def load_requirements(self) -> Dict[str, Any]: # Run status # ------------------------------------------------------------------ # - def init_run(self, task_id: str, task_type: str) -> RunStatus: + def init_run(self, task_id: str) -> RunStatus: rs = RunStatus( task_id=task_id, - task_type=task_type, - created_at=time.time(), last_update=time.time(), ) self._write_run(rs) return rs - def init_or_resume(self, task_id: str, task_type: str) -> tuple[RunStatus, bool]: + def init_or_resume(self, task_id: str) -> tuple[RunStatus, bool]: """Either initialize a fresh run.json or load the existing one. Returns ``(run_status, is_resume)``. ``is_resume`` is True iff a @@ -138,13 +142,20 @@ def init_or_resume(self, task_id: str, task_type: str) -> tuple[RunStatus, bool] with self._lock: if self.run_path.exists(): return self.load_run(), True - return self.init_run(task_id, task_type), False + return self.init_run(task_id), False def load_run(self) -> RunStatus: if not self.run_path.exists(): raise FileNotFoundError(f"no run.json at {self.run_path}") data = json.loads(self.run_path.read_text(encoding="utf-8")) - return RunStatus(**data) + # Filter to known fields so old run.json files (which used to + # persist task_type) load cleanly. Extra keys are silently + # dropped — single source of truth lives in requirements.json. + if not isinstance(data, dict): + raise ValueError(f"run.json at {self.run_path} is not a JSON object") + known = {f.name for f in fields(RunStatus)} + filtered = {k: v for k, v in data.items() if k in known} + return RunStatus(**filtered) def update_run(self, **kwargs: Any) -> RunStatus: with self._lock: diff --git a/metainfer/orchestrator/tests/test_requirements.py b/metainfer/orchestrator/tests/test_requirements.py new file mode 100644 index 00000000..c796bcd9 --- /dev/null +++ b/metainfer/orchestrator/tests/test_requirements.py @@ -0,0 +1,104 @@ +"""Tests for :mod:`metainfer.orchestrator.requirements`. + +The canonical requirements.json schema is flat (form answers spread to +top level). The nested ``form`` / ``answers`` sub-dicts are legacy +fallbacks for old task files on disk. These tests pin both paths so +future schema changes are intentional. +""" + +from __future__ import annotations + +from metainfer.orchestrator.requirements import ( + req_field, + req_field_float, + req_field_int, +) + + +def test_req_field_flat_canonical(): + """WebUI writes flat — that's the canonical form.""" + req = {"task_id": "t1", "target_model": "/data/m", "max_iterations": "50"} + assert req_field(req, "target_model") == "/data/m" + assert req_field(req, "max_iterations") == "50" + assert req_field(req, "task_id") == "t1" + + +def test_req_field_legacy_form_nested(): + """Old test fixtures / hand-edited files may use ``form: {...}``.""" + req = {"task_id": "t1", "form": {"target_model": "/legacy"}} + assert req_field(req, "target_model") == "/legacy" + + +def test_req_field_legacy_answers_nested(): + """Some early code wrote ``answers: {...}``.""" + req = {"task_id": "t1", "answers": {"target_model": "/legacy2"}} + assert req_field(req, "target_model") == "/legacy2" + + +def test_req_field_flat_beats_nested(): + """If both flat and nested exist (shouldn't happen, but if it does), + flat wins — flat is the canonical form.""" + req = { + "target_model": "/flat", + "form": {"target_model": "/nested-form"}, + "answers": {"target_model": "/nested-answers"}, + } + assert req_field(req, "target_model") == "/flat" + + +def test_req_field_default_on_missing(): + assert req_field({}, "nope") is None + assert req_field({}, "nope", default=42) == 42 + + +def test_req_field_handles_non_dict(): + """Defensive: a corrupted file shouldn't crash the helper.""" + assert req_field(None, "x", default="d") == "d" # type: ignore[arg-type] + assert req_field("not a dict", "x", default="d") == "d" # type: ignore[arg-type] + + +def test_req_field_int_coerces_string(): + """Form widgets often emit numbers as strings.""" + assert req_field_int({"max_iterations": "50"}, "max_iterations") == 50 + + +def test_req_field_int_default_on_garbage(): + assert req_field_int({"max_iterations": "unbounded"}, "max_iterations", default=10) == 10 + assert req_field_int({}, "max_iterations", default=10) == 10 + + +def test_req_field_float_coerces(): + assert req_field_float({"cost": "50.5"}, "cost") == 50.5 + assert req_field_float({}, "cost", default=1.0) == 1.0 + + +def _main() -> None: + tests = [ + ("test_req_field_flat_canonical", test_req_field_flat_canonical), + ("test_req_field_legacy_form_nested", test_req_field_legacy_form_nested), + ("test_req_field_legacy_answers_nested", test_req_field_legacy_answers_nested), + ("test_req_field_flat_beats_nested", test_req_field_flat_beats_nested), + ("test_req_field_default_on_missing", test_req_field_default_on_missing), + ("test_req_field_handles_non_dict", test_req_field_handles_non_dict), + ("test_req_field_int_coerces_string", test_req_field_int_coerces_string), + ("test_req_field_int_default_on_garbage", test_req_field_int_default_on_garbage), + ("test_req_field_float_coerces", test_req_field_float_coerces), + ] + failed = 0 + for name, fn in tests: + try: + fn() + print(f" PASS {name}") + except AssertionError as e: + failed += 1 + print(f" FAIL {name}: {e}") + except Exception as e: + failed += 1 + print(f" ERROR {name}: {type(e).__name__}: {e}") + print(f"\n{len(tests) - failed}/{len(tests)} passed") + if failed: + raise SystemExit(1) + + +if __name__ == "__main__": + _main() diff --git a/metainfer/orchestrator/tests/test_token_budget.py b/metainfer/orchestrator/tests/test_token_budget.py index 307398c8..bf5d66b8 100644 --- a/metainfer/orchestrator/tests/test_token_budget.py +++ b/metainfer/orchestrator/tests/test_token_budget.py @@ -20,6 +20,7 @@ BudgetSnapshot, TokenBudget, UsageRecord, + resolve_budget_limits, usage_from_result_event, ) @@ -226,6 +227,72 @@ def test_external_edit_is_hot_reloaded(): assert snap.exhausted +def test_resolve_budget_limits_runtime_file_overrides_seed(): + """Regression: WebUI raises the budget mid-task → orchestrator + restarts → the new (runtime) limit must win over the stale seed in + requirements.json. Before resolve_budget_limits existed, the + orchestrator read the seed and silently ignored the runtime file, + so user budget bumps were lost on restart.""" + with tempfile.TemporaryDirectory() as td: + # requirements.json has the original $50 seed from task creation + req = {"token_budget_max_cost_usd": 50} + # WebUI later bumped to $100 — runtime file is authoritative + (Path(td) / "token_budget.json").write_text(json.dumps({ + "schema_version": 1, + "config": {"max_cost_usd": 100.0, "max_cost_usd_hard": None}, + "totals": {"total_cost_usd": 50.28}, + })) + soft, hard = resolve_budget_limits(td, req) + assert soft == 100.0 + assert hard is None + + +def test_resolve_budget_limits_falls_back_to_seed_on_first_boot(): + """First boot: no token_budget.json yet → seed from requirements.json.""" + with tempfile.TemporaryDirectory() as td: + req = {"token_budget_max_cost_usd": 50} + soft, hard = resolve_budget_limits(td, req) + assert soft == 50.0 + assert hard is None + + +def test_resolve_budget_limits_env_var_wins(): + """Env var is the ops escape hatch — overrides both file + seed.""" + with tempfile.TemporaryDirectory() as td: + req = {"token_budget_max_cost_usd": 50} + (Path(td) / "token_budget.json").write_text(json.dumps({ + "config": {"max_cost_usd": 100.0}, + })) + old = os.environ.get("METAINFER_TOKEN_BUDGET_COST_USD") + os.environ["METAINFER_TOKEN_BUDGET_COST_USD"] = "200" + try: + soft, _ = resolve_budget_limits(td, req) + assert soft == 200.0 + finally: + if old is None: + del os.environ["METAINFER_TOKEN_BUDGET_COST_USD"] + else: + os.environ["METAINFER_TOKEN_BUDGET_COST_USD"] = old + + +def test_resolve_budget_limits_nested_token_budget_object(): + """requirements.json::token_budget.max_cost_usd (nested object form) + is honored on first boot too.""" + with tempfile.TemporaryDirectory() as td: + req = {"token_budget": {"max_cost_usd": 75.0, "max_cost_usd_hard": 90.0}} + soft, hard = resolve_budget_limits(td, req) + assert soft == 75.0 + assert hard == 90.0 + + +def test_resolve_budget_limits_disabled_when_nothing_set(): + """No env, no runtime file, no seed → (None, None) → budget disabled.""" + with tempfile.TemporaryDirectory() as td: + soft, hard = resolve_budget_limits(td, {}) + assert soft is None + assert hard is None + + def _main() -> None: tests = [ ("test_basic_accumulation", test_basic_accumulation), @@ -239,6 +306,16 @@ def _main() -> None: ("test_reset_clears_everything", test_reset_clears_everything), ("test_update_limit_unblocks", test_update_limit_unblocks), ("test_external_edit_is_hot_reloaded", test_external_edit_is_hot_reloaded), + ("test_resolve_budget_limits_runtime_file_overrides_seed", + test_resolve_budget_limits_runtime_file_overrides_seed), + ("test_resolve_budget_limits_falls_back_to_seed_on_first_boot", + test_resolve_budget_limits_falls_back_to_seed_on_first_boot), + ("test_resolve_budget_limits_env_var_wins", + test_resolve_budget_limits_env_var_wins), + ("test_resolve_budget_limits_nested_token_budget_object", + test_resolve_budget_limits_nested_token_budget_object), + ("test_resolve_budget_limits_disabled_when_nothing_set", + test_resolve_budget_limits_disabled_when_nothing_set), ] failed = 0 for name, fn in tests: diff --git a/metainfer/orchestrator/token_budget.py b/metainfer/orchestrator/token_budget.py index 757f379c..2b0b6be4 100644 --- a/metainfer/orchestrator/token_budget.py +++ b/metainfer/orchestrator/token_budget.py @@ -55,7 +55,7 @@ import time from dataclasses import asdict, dataclass, field from pathlib import Path -from typing import Any, Callable, Dict, List, Optional +from typing import Any, Callable, Dict, List, Optional, Tuple # --------------------------------------------------------------------------- # @@ -469,6 +469,87 @@ def reset(self) -> None: # --------------------------------------------------------------------------- # +def _read_runtime_config(state_dir: Path) -> Dict[str, Any]: + """Read ``token_budget.json::config`` if it exists. Returns ``{}`` on + any error so callers can treat the runtime file as optional.""" + path = Path(state_dir) / "token_budget.json" + if not path.exists(): + return {} + try: + data = json.loads(path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError): + return {} + if not isinstance(data, dict): + return {} + cfg = data.get("config") + if not isinstance(cfg, dict): + return {} + return cfg + + +def resolve_budget_limits( + state_dir: Path, + req: Dict[str, Any], +) -> Tuple[Optional[float], Optional[float]]: + """Resolve (soft, hard) cost limits for a task — single source of truth. + + Priority (first non-None wins): + + 1. ``METAINFER_TOKEN_BUDGET_COST_USD`` / ``..._HARD`` env var + (ops escape hatch — overrides everything). + 2. ``token_budget.json::config.max_cost_usd`` — the RUNTIME + authoritative file. The WebUI updates this when the user raises + the budget mid-task. **This is the source of truth.** + 3. ``requirements.json::token_budget.max_cost_usd`` (nested) or + ``requirements.json::token_budget_max_cost_usd`` (flat, what the + WebUI new-task form writes). Only consulted when the runtime + file does NOT yet have the field — i.e. first orchestrator boot + of a freshly-created task. After that, ``requirements.json`` is + a historical record of the form submission, not consulted. + + Returns ``(None, None)`` when no limit is configured anywhere — the + caller should pass that as "budget disabled". + + Rationale: before this helper existed, three orchestrators each had + their own copy of a cascade that put ``requirements.json`` ahead of + the runtime file. That made WebUI mid-task budget bumps silently + lost on the next orchestrator restart (the user raised 50 → 100, the + orchestrator came back, read 50 from requirements.json, aborted). + """ + tb_cfg = req.get("token_budget") + if not isinstance(tb_cfg, dict): + tb_cfg = {} + runtime_cfg = _read_runtime_config(state_dir) + + def _resolve(env_key: str, conf_key: str, flat_key: str) -> Optional[float]: + # 1. env var + env_v = os.environ.get(env_key) + if env_v: + try: + return float(env_v) + except ValueError: + pass + # 2. runtime file (token_budget.json::config) — authoritative + v = runtime_cfg.get(conf_key) + # 3. requirements.json seed (nested or flat) — only on first boot + if v is None: + v = tb_cfg.get(conf_key) + if v is None: + v = req.get(flat_key) + if v is None: + return None + try: + return float(v) + except (TypeError, ValueError): + return None + + soft = _resolve("METAINFER_TOKEN_BUDGET_COST_USD", + "max_cost_usd", "token_budget_max_cost_usd") + hard = _resolve("METAINFER_TOKEN_BUDGET_COST_USD_HARD", + "max_cost_usd_hard", "token_budget_max_cost_usd_hard") + return soft, hard + + def usage_from_result_event( event: Dict[str, Any], *, diff --git a/metainfer/server/app.py b/metainfer/server/app.py index 5959fb7a..bb1c2eb1 100644 --- a/metainfer/server/app.py +++ b/metainfer/server/app.py @@ -319,6 +319,14 @@ async def _on_shutdown(): except Exception: # noqa: BLE001 — never fail shutdown pass + # Background liveness probe — detects orchestrators that died + # mid-run while the WebUI was up (crash / OOM kill / agent killing + # its own parent). reconcile() only runs at startup, so without + # this the UI would freeze on a stale "running" snapshot until the + # next WebUI restart. See metainfer.server.liveness. + from . import liveness as _liveness + _liveness.attach(app, interval=10.0) + return app diff --git a/metainfer/server/launcher.py b/metainfer/server/launcher.py index c8c49e97..85c346ef 100644 --- a/metainfer/server/launcher.py +++ b/metainfer/server/launcher.py @@ -148,6 +148,34 @@ def json_loads_safe(s: str) -> Dict[str, Any]: return {} +def _update_run_stopped(run_path: Path, now: float) -> None: + """Update run.json to reflect that the task was stopped externally. + + Reads the current run.json (if any), sets ``finished=True``, + ``final_status="stopped"``, and bumps ``last_update``. Preserves all + other fields so the UI still shows the last phase / iteration. + """ + import json + try: + if run_path.exists(): + data = json.loads(run_path.read_text(encoding="utf-8")) + else: + data = {} + except (OSError, ValueError): + return + if not isinstance(data, dict): + return + data["finished"] = True + data["final_status"] = "stopped" + data["last_update"] = now + try: + tmp = run_path.with_suffix(".tmp") + tmp.write_text(json.dumps(data, indent=2), encoding="utf-8") + tmp.replace(run_path) + except OSError: + pass + + class LocalLauncher: """Spawns orchestrator subprocesses on THIS machine. The default launcher; what 99% of users will use. @@ -286,11 +314,14 @@ def kill(self, task_id: str, force: bool = False) -> bool: ok = _proc.kill_pid_validated(pid, sig=sig, expected_started_at=started_at) if not ok: # Orchestrator is already dead (crashed / SIGKILLed / OOM-killed) - # but its pid file + run.json still show "running". The user - # clicking Kill wants this task to STOP, so clean up the zombie - # state: stamp finished_at on the pid file and mark the task - # as not running in the registry. Without this the UI keeps - # showing the task as alive but the kill button does nothing. + # but its pid file + run.json still show "running". Clean up the + # zombie state so the UI flips from Kill→Restart. + self._reap_dead_pid_file(task_id, pid, started_at) + elif force: + # SIGKILL was delivered — the orchestrator cannot run its own + # cleanup handlers (SIGKILL is uncatchable), so we must update + # run.json and the pid file ourselves. Without this the UI + # stays frozen at the last phase forever. self._reap_dead_pid_file(task_id, pid, started_at) return ok @@ -304,11 +335,14 @@ def _reap_dead_pid_file( not-running. - Clear the live pid in the task registry so the list view's status pill flips. + - Update ``run.json`` with ``finished=True, final_status="stopped"`` + so the task detail view stops showing a stale phase. - Append a timeline marker so the audit trail explains why the task transitioned to stopped without a clean shutdown. """ import json - import time + + now = time.time() try: sd = _paths.task_dir(task_id) pf = sd / "orchestrator.pid" @@ -316,7 +350,7 @@ def _reap_dead_pid_file( d = _read_pid_file(task_id) d.setdefault("pid", pid) d.setdefault("started_at", started_at) - d["finished_at"] = time.time() + d["finished_at"] = now d["exit_hint"] = "reaped-by-kill-on-dead-pid" pf.write_text( json.dumps(d, indent=2), encoding="utf-8", @@ -326,14 +360,21 @@ def _reap_dead_pid_file( try: _tasks.update_task( task_id, pid=None, started_at=started_at, - finished_at=time.time(), + finished_at=now, ) except Exception: # noqa: BLE001 pass try: from . import state_reader as _sr + sd = _paths.task_dir(task_id) + # Update run.json so the frontend sees the task as finished. + # Only touch finished / final_status / last_update — preserve + # everything else (current_iteration, current_phase, etc.) so + # the user can still see where the task was when it stopped. + run_path = sd / "run.json" + _update_run_stopped(run_path, now) _sr.append_timeline_event( - _paths.task_dir(task_id), "kill_reaped_dead_pid", + sd, "kill_reaped_dead_pid", {"task_id": task_id, "dead_pid": pid, "started_at": started_at}, ) diff --git a/metainfer/server/liveness.py b/metainfer/server/liveness.py new file mode 100644 index 00000000..b5cb6972 --- /dev/null +++ b/metainfer/server/liveness.py @@ -0,0 +1,187 @@ +"""Background liveness checker for orchestrator processes. + +Problem +------- + +``reconcile()`` only runs at WebUI startup. If an orchestrator dies +mid-run while the WebUI is up (crash, OOM kill, agent SIGKILLing its +own parent process tree, etc.), nothing notices — ``agents.json`` is +frozen at the last snapshot, ``run.json`` still shows the dead phase, +and the user stares at a "running" pill with ``last_output_age_s`` +growing without bound. The next WebUI restart eventually picks it up, +but that can be hours away. + +Fix +--- + +A single asyncio background task scans the registry every +``interval`` seconds. For each task the registry considers "running" +(``pid is not None and finished_at is None``), it calls the existing +``launcher.status()`` validated-liveness check. If that returns +``running=False`` AND the pid file still claims the pid is alive +(i.e. orchestrator exited ungracefully), we invoke the existing +``launcher._reap_dead_pid_file`` — the same cleanup used by the +user-Kill path — to flip the UI to "stopped" and stamp an audit +event. + +The check is intentionally cheap (one file read + one ``stat`` per +task) so a 10-second cadence costs single-digit milliseconds even at +hundreds of tasks. +""" + +from __future__ import annotations + +import asyncio +import logging +from typing import TYPE_CHECKING, Optional + +from . import launcher as _launcher +from . import tasks as _tasks + +if TYPE_CHECKING: + from fastapi import FastAPI + +_log = logging.getLogger(__name__) + + +class LivenessChecker: + """Periodic background liveness probe. + + Construct once per WebUI process; ``start()`` spawns the loop, + ``stop()`` cancels it. Idempotent. + """ + + def __init__( + self, + interval: float = 10.0, + launcher: Optional[_launcher.Launcher] = None, + ) -> None: + self.interval = interval + # Use the default launcher if none supplied. The default + # resolves to LocalLauncher bound to this WebUI session's + # boot_id; that's what we want for the liveness check. + self._launcher = launcher or _launcher.get_default_launcher() + self._task: Optional[asyncio.Task] = None + + async def start(self) -> None: + if self._task is None or self._task.done(): + self._task = asyncio.create_task(self._run(), name="metainfer-liveness") + + async def stop(self) -> None: + if self._task is None: + return + self._task.cancel() + try: + await self._task + except asyncio.CancelledError: + pass + self._task = None + + async def _run(self) -> None: + """Loop forever, reaping dead orchestrators as we find them. + + Each iteration is bounded and swallows exceptions — a buggy + task entry or transient filesystem error must not kill the + watcher (or the WebUI loses liveness detection until restart). + """ + while True: + try: + await asyncio.sleep(self.interval) + # Run the synchronous scan in a worker so we never + # block the event loop on /proc reads under heavy load. + await asyncio.to_thread(self._scan_once) + except asyncio.CancelledError: + raise + except Exception: # noqa: BLE001 — watcher must survive + _log.exception("liveness scan iteration failed; will retry") + + def _scan_once(self) -> None: + """One pass: check every registry task that claims to be running. + + Visible for tests — call directly to avoid the asyncio sleep loop. + """ + try: + entries = _tasks.list_tasks() + except Exception: # noqa: BLE001 — registry read must not crash watcher + _log.exception("liveness: could not read task registry") + return + + for entry in entries: + # Skip tasks the registry already considers done. The pid + # check mirrors what `list_tasks` consumers use to render + # the running pill — if it's already None, the UI already + # shows stopped. + if entry.pid is None or entry.finished_at is not None: + continue + self._check_one(entry.id) + + def _check_one(self, task_id: str) -> None: + """Check one task. On detected death, invoke the existing reaper + so the cleanup path is identical to the user-Kill flow.""" + try: + st = self._launcher.status(task_id) + except Exception: # noqa: BLE001 — per-task error must not stop loop + _log.exception("liveness: status() failed for %s", task_id) + return + + if st.running: + return + + # ``exit_hint == "pid-dead"`` means the pid file claimed the + # process was alive but /proc says otherwise — orchestrator + # died ungracefully. Other hints (``no-pid-file``, + # ``pid-file-cleared``) are bookkeeping states we don't touch. + if st.exit_hint != "pid-dead": + return + + # Only reap if we had a real pid + started_at to validate + # against. Without started_at, we cannot tell PID reuse apart + # from a genuine death — too risky to fire cleanup. + if st.pid is None or st.started_at is None: + return + + _log.warning( + "liveness: orchestrator for %s died (pid=%s started_at=%s) — " + "reaping stale state", + task_id, st.pid, st.started_at, + ) + try: + # LocalLauncher._reap_dead_pid_file already does the full + # cleanup: stamps orchestrator.pid::finished_at, clears + # registry pid, updates run.json::finished/final_status, + # appends kill_reaped_dead_pid timeline event. Same code + # path as user-initiated Kill on a dead pid. + if isinstance(self._launcher, _launcher.LocalLauncher): + self._launcher._reap_dead_pid_file( + task_id, st.pid, st.started_at, + ) + else: + _log.warning( + "liveness: non-LocalLauncher (%s); cannot reap %s", + type(self._launcher).__name__, task_id, + ) + except Exception: # noqa: BLE001 — reaper is best-effort + _log.exception("liveness: reaper failed for %s", task_id) + + +def attach(app: "FastAPI", interval: float = 10.0) -> LivenessChecker: + """Wire a :class:`LivenessChecker` into ``app``'s startup/shutdown. + + Idempotent — stores the checker on ``app.state.liveness`` so + repeated calls return the same instance. + """ + if getattr(app.state, "liveness", None) is not None: + return app.state.liveness # type: ignore[no-any-return] + + checker = LivenessChecker(interval=interval) + + @app.on_event("startup") + async def _start_liveness() -> None: + await checker.start() + + @app.on_event("shutdown") + async def _stop_liveness() -> None: + await checker.stop() + + app.state.liveness = checker + return checker diff --git a/metainfer/server/state_reader.py b/metainfer/server/state_reader.py index 697b980c..b129c79b 100644 --- a/metainfer/server/state_reader.py +++ b/metainfer/server/state_reader.py @@ -38,9 +38,14 @@ def read_requirements(state_dir: Path) -> Optional[Dict[str, Any]]: def read_run(state_dir: Path) -> Dict[str, Any]: - """Return RunStatus dict, or a default 'idle' sentinel if missing.""" + """Return RunStatus dict, or a default 'idle' sentinel if missing. + + ``task_type`` is intentionally absent — its authoritative source is + ``requirements.json::task_type`` (read via :func:`read_requirements`), + not run.json. The frontend gets type from the registry entry. + """ default = { - "task_id": None, "task_type": None, "created_at": 0, + "task_id": None, "current_iteration": 0, "current_phase": "idle", "last_update": 0, "finished": False, "final_status": None, "last_outcome": None, "last_transition_label": None, "notes": [], @@ -48,7 +53,12 @@ def read_run(state_dir: Path) -> Dict[str, Any]: data = _load_json(state_dir / "run.json", None) if data is None: return default - # Merge with defaults so missing keys don't crash the frontend. + # Drop legacy fields if an old run.json still has them — single + # source of truth is requirements.json (task_type) and registry.json + # (created_at). Merge with defaults so missing keys don't crash the + # frontend. + for _legacy in ("task_type", "created_at"): + data.pop(_legacy, None) return {**default, **data} @@ -106,7 +116,7 @@ def append_timeline_event( def reset_state_dir( - state_dir: Path, workspace_dir: Path, task_id: str, task_type: str, + state_dir: Path, workspace_dir: Path, task_id: str, ) -> Dict[str, Any]: """Wipe everything in ``state_dir`` except ``requirements.json``, and wipe the entire ``workspace_dir``. @@ -119,6 +129,10 @@ def reset_state_dir( clean idle state immediately, and stamps a single ``task_reset`` timeline event so the reset itself is auditable. + ``task_type`` is intentionally NOT a parameter — it lives in + requirements.json (which is preserved across reset) and the registry + entry (which the caller already has). + Caller MUST ensure the orchestrator is not running — this function does not check. """ @@ -146,8 +160,6 @@ def reset_state_dir( now = time.time() fresh_run = { "task_id": task_id, - "task_type": task_type, - "created_at": now, "current_iteration": 0, "current_phase": "idle", "last_update": now, diff --git a/metainfer/server/tests/test_liveness.py b/metainfer/server/tests/test_liveness.py new file mode 100644 index 00000000..c2fbdb25 --- /dev/null +++ b/metainfer/server/tests/test_liveness.py @@ -0,0 +1,173 @@ +"""Tests for :mod:`metainfer.server.liveness`. + +Verifies that the periodic scan detects orchestrator processes that +died ungracefully mid-run and invokes the existing reaper so the UI +doesn't freeze on a stale "running" snapshot. +""" + +from __future__ import annotations + +import json +import time +from pathlib import Path +from unittest.mock import MagicMock + +import pytest + +from metainfer.server import liveness as _liveness +from metainfer.server import tasks as _tasks +from metainfer.server.launcher import ProcStatus + + +def _make_entry(tid, pid, finished_at=None): + """Minimal TaskEntry-like object for the liveness scan.""" + return MagicMock( + id=tid, pid=pid, finished_at=finished_at, + state_dir=f"/tmp/{tid}", workspace_dir=f"/tmp/{tid}-ws", + ) + + +def test_scan_skips_tasks_registry_considers_done(monkeypatch): + """A task with pid=None OR finished_at set is already considered + stopped by the registry — the scanner must not touch it.""" + entries = [ + _make_entry("alive", pid=123), + _make_entry("no-pid", pid=None), + _make_entry("finished", pid=123, finished_at=time.time()), + ] + monkeypatch.setattr(_tasks, "list_tasks", lambda: entries) + + launcher = MagicMock() + launcher.status = MagicMock() # should not be called + checker = _liveness.LivenessChecker(launcher=launcher) + checker._scan_once() + + # Only the "alive" entry should have triggered status() + assert launcher.status.call_count == 1 + assert launcher.status.call_args[0][0] == "alive" + + +def test_scan_ignores_alive_orchestrator(monkeypatch): + """A live orchestrator (status.running=True) is left alone.""" + monkeypatch.setattr(_tasks, "list_tasks", + lambda: [_make_entry("alive", pid=123)]) + launcher = MagicMock() + launcher.status.return_value = ProcStatus( + running=True, pid=123, started_at=1.0, + finished_at=None, exit_hint="pid-alive", + ) + # _reap_dead_pid_file must not be called for live processes + launcher._reap_dead_pid_file = MagicMock() + # But LocalLauncher check uses isinstance, so make it look like one + from metainfer.server.launcher import LocalLauncher + launcher.__class__ = LocalLauncher + + checker = _liveness.LivenessChecker(launcher=launcher) + checker._scan_once() + + launcher._reap_dead_pid_file.assert_not_called() + + +def test_scan_reaps_dead_orchestrator(monkeypatch): + """The bug scenario: orchestrator pid file claims running, /proc + says dead. Scanner must invoke the reaper so the UI flips to stopped.""" + monkeypatch.setattr(_tasks, "list_tasks", + lambda: [_make_entry("dead", pid=999)]) + launcher = MagicMock() + launcher.status.return_value = ProcStatus( + running=False, pid=999, started_at=1.0, + finished_at=None, exit_hint="pid-dead", + ) + from metainfer.server.launcher import LocalLauncher + launcher.__class__ = LocalLauncher + launcher._reap_dead_pid_file = MagicMock() + + checker = _liveness.LivenessChecker(launcher=launcher) + checker._scan_once() + + launcher._reap_dead_pid_file.assert_called_once_with("dead", 999, 1.0) + + +def test_scan_ignores_already_cleared_pid_file(monkeypatch): + """exit_hint 'no-pid-file' / 'pid-file-cleared' are bookkeeping + states — the orchestrator already wrote finished_at itself, so we + must not double-write a reap event.""" + monkeypatch.setattr(_tasks, "list_tasks", + lambda: [_make_entry("clean", pid=123)]) + launcher = MagicMock() + launcher.status.return_value = ProcStatus( + running=False, pid=None, started_at=None, + finished_at=1234.0, exit_hint="pid-file-cleared", + ) + from metainfer.server.launcher import LocalLauncher + launcher.__class__ = LocalLauncher + launcher._reap_dead_pid_file = MagicMock() + + checker = _liveness.LivenessChecker(launcher=launcher) + checker._scan_once() + + launcher._reap_dead_pid_file.assert_not_called() + + +def test_scan_skips_when_started_at_missing(monkeypatch): + """PID-reuse safety: without started_at we can't validate. Don't reap.""" + monkeypatch.setattr(_tasks, "list_tasks", + lambda: [_make_entry("risky", pid=123)]) + launcher = MagicMock() + launcher.status.return_value = ProcStatus( + running=False, pid=123, started_at=None, # ← missing + finished_at=None, exit_hint="pid-dead", + ) + from metainfer.server.launcher import LocalLauncher + launcher.__class__ = LocalLauncher + launcher._reap_dead_pid_file = MagicMock() + + checker = _liveness.LivenessChecker(launcher=launcher) + checker._scan_once() + + launcher._reap_dead_pid_file.assert_not_called() + + +def test_scan_survives_per_task_exception(monkeypatch): + """A buggy entry must not kill the watcher — other tasks still get checked.""" + entries = [_make_entry("bad", pid=1), _make_entry("good", pid=2)] + monkeypatch.setattr(_tasks, "list_tasks", lambda: entries) + + call_log = [] + + def fake_status(tid): + call_log.append(tid) + if tid == "bad": + raise RuntimeError("simulated registry corruption") + return ProcStatus( + running=False, pid=2, started_at=2.0, + finished_at=None, exit_hint="pid-dead", + ) + + launcher = MagicMock() + launcher.status = fake_status + from metainfer.server.launcher import LocalLauncher + launcher.__class__ = LocalLauncher + launcher._reap_dead_pid_file = MagicMock() + + checker = _liveness.LivenessChecker(launcher=launcher) + checker._scan_once() # must not raise + + # Both tasks were attempted + assert call_log == ["bad", "good"] + # "good" was reaped, "bad" was skipped (exception swallowed) + launcher._reap_dead_pid_file.assert_called_once_with("good", 2, 2.0) + + +def test_scan_survives_registry_read_failure(monkeypatch): + """If the registry itself can't be read, the scan logs and exits + cleanly — the next interval will retry.""" + def boom(): + raise RuntimeError("disk gone") + monkeypatch.setattr(_tasks, "list_tasks", boom) + + launcher = MagicMock() + checker = _liveness.LivenessChecker(launcher=launcher) + checker._scan_once() # must not raise + + launcher.status.assert_not_called() diff --git a/metainfer/server/tests/test_state_reader.py b/metainfer/server/tests/test_state_reader.py index fa6eef56..ab221b6d 100644 --- a/metainfer/server/tests/test_state_reader.py +++ b/metainfer/server/tests/test_state_reader.py @@ -45,14 +45,17 @@ def test_read_run_returns_defaults_when_missing(tmp_path): def test_read_run_merges_defaults_for_partial_file(tmp_path): """A run.json missing some keys should still produce a complete dict - so the frontend doesn't KeyError.""" + so the frontend doesn't KeyError. ``task_type`` is intentionally NOT + in run.json — it lives in requirements.json. If a stale run.json + still has it, read_run drops it (single source of truth).""" (tmp_path / "run.json").write_text( json.dumps({"task_id": "abc", "task_type": "calc-theoretical-value"}), encoding="utf-8", ) out = sr.read_run(tmp_path) assert out["task_id"] == "abc" - assert out["task_type"] == "calc-theoretical-value" + # task_type is dropped — not a run.json field anymore + assert "task_type" not in out # Defaults still present: assert "current_phase" in out and out["current_phase"] == "idle" @@ -134,7 +137,7 @@ def test_reset_preserves_requirements_json(tmp_path): (workspace_dir / "step3").mkdir() (state_dir / "timeline.jsonl").write_text("", encoding="utf-8") - summary = sr.reset_state_dir(state_dir, workspace_dir, "tid-1", "calc-theoretical-value") + summary = sr.reset_state_dir(state_dir, workspace_dir, "tid-1") # requirements.json survived. assert sr.read_requirements(state_dir) == req @@ -147,7 +150,8 @@ def test_reset_preserves_requirements_json(tmp_path): # Fresh run.json was written. run = sr.read_run(state_dir) assert run["task_id"] == "tid-1" - assert run["task_type"] == "calc-theoretical-value" + # task_type is NOT in run.json anymore — read from requirements.json. + assert "task_type" not in run assert run["current_iteration"] == 0 assert run["current_phase"] == "idle" assert run["finished"] is False @@ -165,7 +169,7 @@ def test_reset_stamps_task_reset_timeline_event(tmp_path): state_dir.mkdir() workspace_dir.mkdir() (state_dir / "requirements.json").write_text("{}", encoding="utf-8") - sr.reset_state_dir(state_dir, workspace_dir, "tid-2", "calc-theoretical-value") + sr.reset_state_dir(state_dir, workspace_dir, "tid-2") events = sr.read_timeline(state_dir) types = [e["type"] for e in events] assert "task_reset" in types @@ -180,7 +184,7 @@ def test_reset_creates_state_dir_if_missing(tmp_path): """reset should be idempotent even on a never-started task dir.""" sd = tmp_path / "doesnt_exist_yet" wd = tmp_path / "wd_doesnt_exist_yet" - sr.reset_state_dir(sd, wd, "tid-3", "calc-theoretical-value") + sr.reset_state_dir(sd, wd, "tid-3") assert (sd / "run.json").exists() assert (sd / "timeline.jsonl").exists() assert wd.exists() @@ -197,7 +201,7 @@ def test_reset_default_keeps_only_requirements_when_others_absent(tmp_path): json.dumps({"task_type": "calc-theoretical-value"}), encoding="utf-8", ) - summary = sr.reset_state_dir(state_dir, workspace_dir, "tid-4", "calc-theoretical-value") + summary = sr.reset_state_dir(state_dir, workspace_dir, "tid-4") assert summary["removed"] == [] # The file we kept is unchanged. assert sr.read_requirements(state_dir) == {"task_type": "calc-theoretical-value"} diff --git a/metainfer/tasks/calc_value/orchestrator/orchestrator.py b/metainfer/tasks/calc_value/orchestrator/orchestrator.py index a2892ffa..d50bd96b 100644 --- a/metainfer/tasks/calc_value/orchestrator/orchestrator.py +++ b/metainfer/tasks/calc_value/orchestrator/orchestrator.py @@ -30,7 +30,6 @@ from __future__ import annotations import json -import os from pathlib import Path from typing import Any, Dict, Optional @@ -43,7 +42,7 @@ write_pid_file, ) from metainfer.orchestrator.state import StateStore -from metainfer.orchestrator.token_budget import TokenBudget +from metainfer.orchestrator.token_budget import TokenBudget, resolve_budget_limits from . import phases as _phases from .pipeline import run_pipeline @@ -119,44 +118,15 @@ def _validate_inputs(req: Dict[str, Any]) -> Optional[str]: def _build_budget(state_dir: Path, req: Dict[str, Any]) -> Optional[TokenBudget]: - """Construct the per-task :class:`TokenBudget` from req + env. + """Construct the per-task :class:`TokenBudget`. - Resolution order for the soft cost limit (first match wins): - 1. ``METAINFER_TOKEN_BUDGET_COST_USD`` env var - 2. ``requirements.json::token_budget.max_cost_usd`` (nested object) - 3. ``requirements.json::token_budget_max_cost_usd`` (flat scalar — - what the WebUI new-task form writes) - 4. None — budget circuit breaker disabled - - Hard limit follows the same cascade with the ``_HARD`` suffix. + Limit resolution is delegated to :func:`token_budget.resolve_budget_limits` + so all task types share one source of truth: ``token_budget.json::config`` + wins over the ``requirements.json`` seed (which is only consulted on + first boot before the runtime file exists). See that helper's docstring + for the full cascade + the bug this prevents. """ - tb_cfg = req.get("token_budget") or {} - if not isinstance(tb_cfg, dict): - tb_cfg = {} - - def _resolve_float(env_key: str, conf_key: str, - flat_key: Optional[str] = None) -> Optional[float]: - env_v = os.environ.get(env_key) - if env_v: - try: - return float(env_v) - except ValueError: - pass - v = tb_cfg.get(conf_key) - if v is None and flat_key: - v = req.get(flat_key) - if v is None: - return None - try: - return float(v) - except (TypeError, ValueError): - return None - - soft = _resolve_float("METAINFER_TOKEN_BUDGET_COST_USD", "max_cost_usd", - flat_key="token_budget_max_cost_usd") - hard = _resolve_float("METAINFER_TOKEN_BUDGET_COST_USD_HARD", - "max_cost_usd_hard", - flat_key="token_budget_max_cost_usd_hard") + soft, hard = resolve_budget_limits(state_dir, req) if soft is None and hard is None: return None return TokenBudget( @@ -213,7 +183,7 @@ def run_with_requirements( if err: print(f"[calc-value] FATAL: {err}", flush=True) store = StateStore(state_dir) - rs, _ = store.init_or_resume(task_id, "calc-theoretical-value") + rs, _ = store.init_or_resume(task_id) store.update_run( current_phase=_phases.FINISHED, finished=True, @@ -235,7 +205,7 @@ def run_with_requirements( extra_add_dirs = [repo_root, workspace_dir, model_dir, framework_dir] store = StateStore(state_dir) - rs, is_resume = store.init_or_resume(task_id, "calc-theoretical-value") + rs, is_resume = store.init_or_resume(task_id) if not is_resume: store.update_run(current_phase=_phases.IDLE) store.append_timeline( diff --git a/metainfer/tasks/example/orchestrator/orchestrator.py b/metainfer/tasks/example/orchestrator/orchestrator.py index 86c5b1fe..9b1c3d24 100644 --- a/metainfer/tasks/example/orchestrator/orchestrator.py +++ b/metainfer/tasks/example/orchestrator/orchestrator.py @@ -58,7 +58,7 @@ def run_with_requirements( # from .pipeline import Pipeline # # store = StateStore(state_dir) - # run, is_resume = store.init_or_resume(task_id, task_type) + # run, is_resume = store.init_or_resume(task_id) # agent_manager = setup_orchestrator(state_dir, task_id, [workspace_dir]) # pipeline = Pipeline(store, agent_manager, paths, req) # try: diff --git a/metainfer/tasks/find_low_hanging_kernel/__init__.py b/metainfer/tasks/find_low_hanging_kernel/__init__.py new file mode 100644 index 00000000..35c55509 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/__init__.py @@ -0,0 +1,13 @@ +"""find-low-hanging-kernel task package. + +Given a Chrome tracing profile + a model directory + an inference framework +source tree, this task builds a human+machine-auditable execution-flow graph +of one inference pass and identifies which kernels have the most optimization +headroom. + +Importing this package registers both its TaskPlugin (orchestrator-side +dispatch) and its WebPlugin (web routes / detail view / QA). +""" + +from .orchestrator import plugin as _task_plugin # noqa: F401 — registers TaskPlugin +from .server import plugin as _web_plugin # noqa: F401 — registers WebPlugin diff --git a/metainfer/tasks/find_low_hanging_kernel/form.yaml b/metainfer/tasks/find_low_hanging_kernel/form.yaml new file mode 100644 index 00000000..757ef7ea --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/form.yaml @@ -0,0 +1,49 @@ +# Question bank for the `find-low-hanging-kernel` task type. +# This task takes a Chrome tracing profile + a model directory + an inference +# framework source tree and builds an auditable execution-flow graph that +# highlights the kernels with the most optimization headroom. + +- key: trace_file + question: "Path to the Chrome tracing file produced by the inference framework (.json or .json.gz). This is the raw profile — a deterministic parser extracts kernel stats; the analysis agents never read this file directly." + header: "Trace file" + required: true + form: file + +- key: model_dir + question: "Path to the model directory. Must contain config.json (architecture + quantization params) and the weight files (the parser reads weight names + dtypes + shapes from the index). READ-ONLY: this task will never modify model files." + header: "Model dir" + required: true + form: file + +- key: framework_source_dir + question: "Path to the inference framework source tree that produced the trace. Agents will read this to map kernel names to source locations. READ-ONLY: this task will never modify framework source." + header: "Framework src" + required: true + form: file + +- key: cli_args_and_env + question: "Framework CLI args + env vars at launch time (free-form text, e.g. `--tp 2 --enable-cuda-graph` + `VLLM_ATTENTION_BACKEND=FLASH_ATTN`). Critical for resolving which code path actually ran, TP-affected tensor shapes, and CUDA Graph capture." + header: "CLI + env" + required: false + form: textarea + default: "" + +- key: startup_log + question: "Path to the framework startup log file (optional). Helps the runtime-tracer agent confirm which kernels / paths were actually instantiated at launch." + header: "Startup log" + required: false + form: file + +- key: max_validator_rounds + question: "Maximum number of Step 3 graph-validation rounds before we accept the best-effort graph and proceed to visualization." + header: "Max rounds" + required: false + form: number + default: 5 + +- key: token_budget_max_cost_usd + question: "Token-cost budget cap in USD (optional). When the running total crosses this limit the task soft-aborts at the next phase boundary. Leave blank for unlimited." + header: "Cost cap" + required: false + form: number + default: "" diff --git a/metainfer/tasks/find_low_hanging_kernel/orchestrator/__init__.py b/metainfer/tasks/find_low_hanging_kernel/orchestrator/__init__.py new file mode 100644 index 00000000..158b8ca7 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/orchestrator/__init__.py @@ -0,0 +1,28 @@ +"""find-low-hanging-kernel orchestrator package. + +Pipeline shape:: + + P1_code_analysis → P2_tracing_analysis → P3_graph_build + │ + ▼ + P3_graph_validate ◄─┐ + │ │ + fix_applied │ │ + └────────────┘ + │ clean + ▼ + P4_visualize ──► done + +Steps 1 and 2 each fan out to 3 independent analysis agents (one per +"angle") and then a synthesizer cross-validates. Step 3 builds the flow +graph with a single agent, then a deterministic driver iterates: +integrity-check (pure Python) + 5-worker AgentPool semantic-check that +splits nodes into 3-groups. Step 4 is pure-render. +""" + +from metainfer.orchestrator.tasks import register +from .plugin import PLUGIN + +register(PLUGIN) + +__version__ = "0.1.0" diff --git a/metainfer/tasks/find_low_hanging_kernel/orchestrator/cli.py b/metainfer/tasks/find_low_hanging_kernel/orchestrator/cli.py new file mode 100644 index 00000000..a0eb0807 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/orchestrator/cli.py @@ -0,0 +1,88 @@ +"""CLI for the find-low-hanging-kernel orchestrator subprocess.""" + +from __future__ import annotations + +import argparse +import os +import sys +from pathlib import Path + +DEFAULT_CLAUDE_BIN = "ccb" +DEFAULT_PERMISSION_MODE = "bypassPermissions" +_VALID_PERMISSION_MODES = ("default", "acceptEdits", "plan", "bypassPermissions", "auto") +DEFAULT_EFFORT = "max" +_VALID_EFFORTS = ("low", "medium", "high", "max") + + +def _resolve_claude_bin(cli_value: str | None) -> str: + if cli_value: + return cli_value + return os.environ.get("METAINFER_CLAUDE_BIN", DEFAULT_CLAUDE_BIN) + + +def _resolve_permission_mode(cli_value: str | None) -> str: + if cli_value: + v = cli_value + else: + v = os.environ.get("METAINFER_PERMISSION_MODE", DEFAULT_PERMISSION_MODE) + if v not in _VALID_PERMISSION_MODES: + raise SystemExit( + f"invalid permission mode {v!r}; expected one of {', '.join(_VALID_PERMISSION_MODES)}" + ) + return v + + +def _resolve_effort(cli_value: str | None) -> str: + if cli_value: + v = cli_value + else: + v = os.environ.get("METAINFER_EFFORT", DEFAULT_EFFORT) + if v not in _VALID_EFFORTS: + raise SystemExit( + f"invalid effort {v!r}; expected one of {', '.join(_VALID_EFFORTS)}" + ) + return v + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser( + prog="metainfer-orchestrator", + description="MetaInfer find-low-hanging-kernel orchestrator (spawned by WebUI).", + ) + sub = parser.add_subparsers(dest="cmd", required=True) + + run_p = sub.add_parser("run", help="Run orchestrator on requirements.json") + run_p.add_argument("requirements", type=Path, help="Path to requirements.json") + run_p.add_argument("--state-dir", type=Path, default=None, + help="Metadata dir (run.json, timeline.jsonl, logs/, ...)") + run_p.add_argument("--workspace-dir", type=Path, default=None, + help="Generated-artifacts dir (memory/, flow_graph.*, ...)") + run_p.add_argument("--claude-bin", default=None, + help=f"Claude Code binary (default: env METAINFER_CLAUDE_BIN or {DEFAULT_CLAUDE_BIN!r})") + run_p.add_argument("--permission-mode", default=None, choices=_VALID_PERMISSION_MODES, + help=f"Claude Code permission mode (default: {DEFAULT_PERMISSION_MODE!r})") + run_p.add_argument("--model", default=None, help="Override model for sub-agents") + run_p.add_argument("--effort", default=None, choices=_VALID_EFFORTS, + help=f"Claude Code effort level (default: {DEFAULT_EFFORT!r})") + run_p.add_argument("--extra-claude-arg", action="append", default=[], + help="Extra arg(s) forwarded to claude -p") + + args = parser.parse_args(argv) + + if args.cmd == "run": + from .orchestrator import run_with_requirements + return run_with_requirements( + requirements_path=args.requirements, + state_dir=args.state_dir, + workspace_dir=args.workspace_dir, + claude_bin=_resolve_claude_bin(args.claude_bin), + permission_mode=_resolve_permission_mode(args.permission_mode), + model=args.model, + extra_claude_args=args.extra_claude_arg, + effort=_resolve_effort(args.effort), + ) + return 1 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/metainfer/tasks/find_low_hanging_kernel/orchestrator/graph_schema.py b/metainfer/tasks/find_low_hanging_kernel/orchestrator/graph_schema.py new file mode 100644 index 00000000..e25aee00 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/orchestrator/graph_schema.py @@ -0,0 +1,309 @@ +"""Graph schema + integrity validator (Step 3b-i). + +The flow-graph JSON schema is intentionally narrow so the deterministic +integrity check can verify it without LLM help. Semantic correctness (does +this node's role/operator/source_ref match reality?) is the job of the +5-worker pool in :mod:`graph_validator`. + +Schema +------ + +:: + + { + "schema_version": 1, + "metadata": { + "task_id": "...", + "model": "...", + "tp_size": 1, + "vars": {"B": "batch", "M": "seq_len", ...} + }, + "nodes": [ + { + "id": "n01", # required, unique + "role": "RMSNorm", # required, human-readable step purpose + "operator": "rms_norm_kernel", # required, kernel name from trace + "source_ref": { # required; may be null if unknown + "file": "layers.py", "line": 142, "symbol": "RMSNorm.forward" + }, + "inputs": [{"name":"x","dtype":"fp16","shape":["B","M","4096"]}], + "outputs": [{"name":"y","dtype":"fp16","shape":["B","M","4096"]}], + "stats": { # required; from trace_parsed.json + "count": 12, "mean_us": 34.2, "std_us": 1.1, + "total_us": 410.4, "p99_us": 36.0 + }, + "confidence": "high" # "high" | "medium" | "low" + }, ... + ], + "edges": [{"from": "n01", "to": "n02", "label": "y"}, ...] + } + +Special node roles: +- ``role == "entry"`` — graph source; no incoming edges required. +- ``role == "exit"`` — graph sink; no outgoing edges required. +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Any, Dict, List, Optional, Set, Tuple + + +SCHEMA_VERSION = 1 + +NODE_REQUIRED_FIELDS: Tuple[str, ...] = ("id", "role", "operator") +EDGE_REQUIRED_FIELDS: Tuple[str, ...] = ("from", "to") + +# Fields that may be present but must have the right type when they are. +NODE_TYPED_FIELDS: Dict[str, type] = { + "id": str, + "role": str, + "operator": str, + "confidence": str, + "inputs": list, + "outputs": list, + "stats": dict, + "source_ref": dict, +} + +_VALID_CONFIDENCE = {"high", "medium", "low", "unknown", ""} +_VALID_SPECIAL_ROLES = {"entry", "exit"} + + +@dataclass +class IntegrityReport: + """Result of :func:`check_integrity`.""" + + clean: bool + fixes_applied: List[Dict[str, Any]] = field(default_factory=list) + errors: List[str] = field(default_factory=list) + warnings: List[str] = field(default_factory=list) + + +def _is_str_or_int(v: Any) -> bool: + return isinstance(v, (str, int)) + + +def _validate_tensor(t: Any, *, path: str, problems: List[str]) -> None: + if not isinstance(t, dict): + problems.append(f"{path}: tensor must be an object, got {type(t).__name__}") + return + if "name" not in t or not isinstance(t["name"], str): + problems.append(f"{path}: tensor.name missing or not str") + if "dtype" not in t or not isinstance(t["dtype"], str): + problems.append(f"{path}: tensor.dtype missing or not str") + shape = t.get("shape") + if not isinstance(shape, list) or not all( + isinstance(s, (str, int)) for s in shape + ): + problems.append( + f"{path}: tensor.shape must be a list of str|int (variable dims are str)" + ) + + +def _coerce_str_int(v: Any) -> Any: + """Allow ints to masquerade as shape dims; leave strings as variables.""" + return v + + +def _check_shape_var_refs( + nodes: List[Dict[str, Any]], + declared_vars: Set[str], + problems: List[str], +) -> None: + """All string entries in tensor.shape must be either a declared variable + OR an arithmetic expression involving declared variables (e.g. ``"hidden_size/tp_size"``). + We only enforce that the *first identifier* of any compound expression is + a declared variable, to keep the check cheap and predictable.""" + import re + + ident_re = re.compile(r"[A-Za-z_][A-Za-z0-9_]*") + for node in nodes: + for side in ("inputs", "outputs"): + tensors = node.get(side) or [] + if not isinstance(tensors, list): + continue + for i, t in enumerate(tensors): + if not isinstance(t, dict): + continue + shape = t.get("shape") + if not isinstance(shape, list): + continue + for dim in shape: + if not isinstance(dim, str): + continue + idents = ident_re.findall(dim) + unknown = [tok for tok in idents if tok not in declared_vars] + if unknown: + problems.append( + f"node {node.get('id')!r} {side}[{i}].shape={dim!r} " + f"references undeclared variable(s): {unknown}" + ) + + +def _check_and_fix_integrity(graph: Dict[str, Any]) -> IntegrityReport: + """Pure-Python integrity check + safe auto-fixes. + + Auto-fixes applied (each logged in ``fixes_applied``): + - Drop edges whose endpoint isn't a known node id. + - Add an ``inputs``/``outputs``/``stats`` default if missing. + + Non-fixable problems (recorded in ``errors``): + - duplicate node ids + - missing required node fields + - malformed tensors + - undeclared shape variables + """ + fixes: List[Dict[str, Any]] = [] + errors: List[str] = [] + warnings: List[str] = [] + + if not isinstance(graph, dict): + return IntegrityReport(False, errors=["graph root must be an object"]) + if graph.get("schema_version") != SCHEMA_VERSION: + warnings.append( + f"schema_version is {graph.get('schema_version')!r}, expected {SCHEMA_VERSION}" + ) + + nodes = graph.get("nodes") + if not isinstance(nodes, list) or not nodes: + errors.append("graph.nodes missing or empty") + nodes = [] + edges = graph.get("edges") + if not isinstance(edges, list): + warnings.append("graph.edges missing or not a list — assuming []") + edges = [] + graph["edges"] = edges + + # 1. Node id uniqueness + required fields. + seen_ids: Set[str] = set() + for i, node in enumerate(nodes): + if not isinstance(node, dict): + errors.append(f"node[{i}] is not an object") + continue + for f_ in NODE_REQUIRED_FIELDS: + v = node.get(f_) + if v in (None, ""): + errors.append(f"node[{i}] missing required field {f_!r}") + nid = node.get("id") + if not isinstance(nid, str): + continue + if nid in seen_ids: + errors.append(f"duplicate node id {nid!r}") + seen_ids.add(nid) + + # Type check optional-but-present fields. + for fname, expected in NODE_TYPED_FIELDS.items(): + if fname in node and node[fname] is not None: + if not isinstance(node[fname], expected): + errors.append( + f"node {nid!r}.{fname} must be {expected.__name__}, " + f"got {type(node[fname]).__name__}" + ) + + # Confidence vocabulary. + conf = node.get("confidence") + if isinstance(conf, str) and conf and conf not in _VALID_CONFIDENCE: + warnings.append( + f"node {nid!r}.confidence={conf!r} not in {sorted(_VALID_CONFIDENCE)}" + ) + + # Auto-fix: default missing optional fields to empty containers so + # downstream code doesn't need to None-check. + for empty_field in ("inputs", "outputs"): + if node.get(empty_field) is None: + node[empty_field] = [] + fixes.append({ + "kind": "default_empty", + "node": nid, + "field": empty_field, + }) + if node.get("stats") is None: + node["stats"] = {} + fixes.append({"kind": "default_empty", "node": nid, "field": "stats"}) + if node.get("source_ref") is None: + node["source_ref"] = {} + fixes.append({ + "kind": "default_empty", "node": nid, "field": "source_ref", + }) + + # Validate tensors. + for side in ("inputs", "outputs"): + tensors = node.get(side) or [] + for j, t in enumerate(tensors): + _validate_tensor( + t, path=f"node {nid!r}.{side}[{j}]", problems=errors, + ) + + # 2. Edges — drop dangling ones. + pruned_edges: List[Dict[str, Any]] = [] + for i, e in enumerate(edges): + if not isinstance(e, dict): + errors.append(f"edge[{i}] is not an object") + continue + for f_ in EDGE_REQUIRED_FIELDS: + if e.get(f_) in (None, ""): + errors.append(f"edge[{i}] missing required field {f_!r}") + frm, to = e.get("from"), e.get("to") + if frm in seen_ids and to in seen_ids: + pruned_edges.append(e) + else: + missing = [] + if frm not in seen_ids: + missing.append(f"from={frm!r}") + if to not in seen_ids: + missing.append(f"to={to!r}") + fixes.append({ + "kind": "drop_dangling_edge", + "edge_index": i, + "missing": missing, + "edge": e, + }) + if len(pruned_edges) != len(edges): + graph["edges"] = pruned_edges + + # 3. Isolated-node check (entry/exit roles are exempt). + touched: Set[str] = set() + for e in pruned_edges: + touched.add(e.get("from")) + touched.add(e.get("to")) + for node in nodes: + nid = node.get("id") if isinstance(node, dict) else None + if not isinstance(nid, str): + continue + if node.get("role") in _VALID_SPECIAL_ROLES: + continue + if nid not in touched: + errors.append( + f"node {nid!r} is isolated (no edges). " + f"If it's a graph entry/exit, set role to 'entry' or 'exit'." + ) + + # 4. Shape-variable references. + metadata = graph.get("metadata") or {} + if not isinstance(metadata, dict): + metadata = {} + graph["metadata"] = metadata + declared = metadata.get("vars") or {} + if not isinstance(declared, dict): + warnings.append("metadata.vars is not a dict — treating as empty") + declared = {} + declared_set: Set[str] = set(declared.keys()) + # Numeric literals are also always valid shape dims, but we don't need to + # add them — only string dims are treated as variable references. + _check_shape_var_refs(nodes, declared_set, errors) + + clean = not errors + return IntegrityReport( + clean=clean, fixes_applied=fixes, errors=errors, warnings=warnings, + ) + + +def check_integrity(graph: Dict[str, Any]) -> IntegrityReport: + """Run :func:`_check_and_fix_integrity` and return the report. The graph + dict is mutated in-place to apply safe auto-fixes.""" + return _check_and_fix_integrity(graph) + + +def is_isolated_exempt(node: Dict[str, Any]) -> bool: + return node.get("role") in _VALID_SPECIAL_ROLES diff --git a/metainfer/tasks/find_low_hanging_kernel/orchestrator/graph_validator.py b/metainfer/tasks/find_low_hanging_kernel/orchestrator/graph_validator.py new file mode 100644 index 00000000..8360007b --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/orchestrator/graph_validator.py @@ -0,0 +1,378 @@ +"""Graph semantic validator (Step 3b-ii) — deterministic driver. + +For each round: +1. Run :func:`graph_schema.check_integrity` (auto-fixes). +2. Split nodes into consecutive 3-node groups (deterministic ordering by id). +3. Build a :class:`PoolTask` per group; prompt asks the agent to verify each + node's role/operator/source_ref/shapes/stats against the step-1/step-2 + memory + framework source. +4. Collect results, apply suggested patches, write per-group JSON to disk. +5. Round decision: 0 issues → CLEAN; otherwise NEEDS_FIX (loop). + +The 5 workers form a *persistent* pool (one ``AgentPool`` instance for the +whole round) — we do not spawn a fresh pool per group, per the spec. Token +accounting flows automatically through SubAgentManager → TokenBudget. +""" + +from __future__ import annotations + +import json +import re +from dataclasses import dataclass +from pathlib import Path +from typing import Any, Dict, List, Optional, Tuple + +from metainfer.orchestrator.agent_pool import AgentPool, PoolTask + +from .graph_schema import IntegrityReport, check_integrity + + +POOL_SIZE = 5 +GROUP_SIZE = 3 + + +@dataclass +class RoundResult: + round_num: int + integrity: IntegrityReport + group_result_paths: List[Path] + issue_count: int + outcome: str # "clean" | "needs_fix" | "failed" + notes: List[str] + + +def _split_into_groups(nodes: List[Dict[str, Any]]) -> List[List[Dict[str, Any]]]: + """Deterministic consecutive grouping by node position (NOT id-sorted) — + the builder already emits nodes in a meaningful order (forward-pass order + where possible), so preserving input order gives meaningful neighbors.""" + out: List[List[Dict[str, Any]]] = [] + for i in range(0, len(nodes), GROUP_SIZE): + out.append(nodes[i : i + GROUP_SIZE]) + return out + + +def _neighbor_context(nodes: List[Dict[str, Any]], graph: Dict[str, Any]) -> str: + """Return a compact description of how the group connects to the rest of + the graph, so the validator can reason about edge correctness.""" + ids = {n.get("id") for n in nodes} + edges = graph.get("edges") or [] + in_edges = [e for e in edges if e.get("to") in ids] + out_edges = [e for e in edges if e.get("from") in ids] + lines = ["Inbound edges:"] + for e in in_edges: + lines.append(f" {e.get('from')} -> {e.get('to')} (label={e.get('label','')!r})") + lines.append("Outbound edges:") + for e in out_edges: + lines.append(f" {e.get('from')} -> {e.get('to')} (label={e.get('label','')!r})") + return "\n".join(lines) + + +def _build_validator_prompt( + group: List[Dict[str, Any]], + graph: Dict[str, Any], + *, + step1_path: Path, + step2_path: Path, + framework_dir: Path, +) -> str: + import json as _json + + neighbors = _neighbor_context(group, graph) + nodes_json = _json.dumps(group, indent=2, ensure_ascii=False) + + return f"""You are a validation agent for an inference-framework execution-flow graph. + +# Your task +For each of the {len(group)} node(s) below, verify its declared fields against +the ground-truth evidence: + + 1. Read the Step 1 code-analysis memory at: `{step1_path}` + 2. Read the Step 2 tracing-analysis memory at: `{step2_path}` + 3. Cross-reference kernel names, source-file paths, line numbers, and tensor + shapes against the framework source at: `{framework_dir}` (READ-ONLY — do + not write to anything under that directory). + +For each node, check: + - role: Is the human-readable step description accurate? + - operator: Does this kernel name appear in the trace summary? Does it + match the source-level operator that should produce it? + - source_ref: Does the file:line:symbol actually exist in the framework + source? Is it the code path that ACTUALLY runs under the + user's CLI args + env vars? + - inputs/outputs: Are tensor shapes correct? Pay special attention to + tensor-parallel (TP) splits — a weight dim like + `hidden_size` may become `hidden_size/tp_size` on a single + rank. Shape variables (e.g. "B", "M") must be consistent + across the graph. + - stats: Do mean_us / count / total_us plausibly match the trace + summary for this kernel name? Note that one kernel name + may be invoked from multiple call sites with very different + shapes — flag when the stats look like a blend. + +# Output format +Emit a single JSON object mapping each node id to a verdict: + +```json +{{ + "": {{ + "ok": true|false, + "issues": ["... concise description of each problem ..."], + "suggested_patch": {{ + "role": "...", "operator": "...", + "source_ref": {{"file": "...", "line": 0, "symbol": "..."}}, + "inputs": [...], "outputs": [...], + "stats": {{...}}, "confidence": "..." + }} + }}, + ... +}} +``` + +Rules: +- Only populate `suggested_patch` fields you actually want to change. An empty + patch means "this node is OK as-is" (still set ok=true). +- Do NOT propose patches that change the node id or remove the node. +- Output ONLY the JSON object (no preamble, no markdown fences around the JSON + payload other than the one shown above if you need it for clarity). + +# Node group to validate +{nodes_json} + +# Neighbors (for edge correctness context) +{neighbors} +""" + + +def _extract_json_object(text: str) -> Optional[Dict[str, Any]]: + """Pull the first balanced {...} block out of an agent response.""" + if not text: + return None + start = text.find("{") + while start != -1: + depth = 0 + for i in range(start, len(text)): + c = text[i] + if c == "{": + depth += 1 + elif c == "}": + depth -= 1 + if depth == 0: + blob = text[start : i + 1] + try: + parsed = json.loads(blob) + if isinstance(parsed, dict): + return parsed + except json.JSONDecodeError: + pass + break + start = text.find("{", start + 1) + return None + + +def apply_patches(graph: Dict[str, Any], verdicts: Dict[str, Any]) -> Tuple[int, List[str]]: + """Apply non-destructive patches from the validator verdicts. + + Refuses to change node id or remove nodes. Returns (count_applied, notes).""" + applied = 0 + notes: List[str] = [] + nodes_by_id = {n.get("id"): n for n in (graph.get("nodes") or []) if isinstance(n, dict)} + + for nid, verdict in verdicts.items(): + if not isinstance(verdict, dict): + continue + patch = verdict.get("suggested_patch") + if not isinstance(patch, dict): + continue + target = nodes_by_id.get(nid) + if target is None: + notes.append(f"verdict references unknown node id {nid!r} — skipped") + continue + + # Never change id; refuse destructive ops. + if "id" in patch and patch["id"] != target.get("id"): + notes.append(f"node {nid!r}: refusing to change id — skipped") + continue + + for k, v in patch.items(): + if k == "id": + continue + # Light type guard. + if k in ("inputs", "outputs") and not isinstance(v, list): + notes.append(f"node {nid!r}.{k}: expected list — skipped") + continue + if k == "source_ref" and not isinstance(v, dict): + notes.append(f"node {nid!r}.source_ref: expected dict — skipped") + continue + if k == "stats" and not isinstance(v, dict): + notes.append(f"node {nid!r}.stats: expected dict — skipped") + continue + target[k] = v + applied += 1 + return applied, notes + + +def _count_issues(verdicts: Dict[str, Any]) -> int: + n = 0 + for v in verdicts.values(): + if isinstance(v, dict) and v.get("ok") is False: + n += 1 + return n + + +def run_validation_round( + *, + round_num: int, + graph: Dict[str, Any], + manager, # SubAgentManager | MockAgentManager + step1_path: Path, + step2_path: Path, + framework_dir: Path, + round_dir: Path, + pool_log_dir: Path, + timeout_s: int = 600, +) -> RoundResult: + """Execute one integrity + semantic validation round. + + The ``graph`` dict is mutated in-place (both by integrity auto-fixes and + by patch application). All artifacts land in ``round_dir``. + """ + round_dir.mkdir(parents=True, exist_ok=True) + pool_log_dir.mkdir(parents=True, exist_ok=True) + + # 1. Integrity check + auto-fix. + integrity = check_integrity(graph) + (round_dir / "integrity_fixes.json").write_text( + json.dumps( + { + "clean": integrity.clean, + "errors": integrity.errors, + "warnings": integrity.warnings, + "fixes_applied": integrity.fixes_applied, + }, + indent=2, + ), + encoding="utf-8", + ) + if not integrity.clean: + # Don't even run the pool — surface errors and let the caller decide. + return RoundResult( + round_num=round_num, + integrity=integrity, + group_result_paths=[], + issue_count=len(integrity.errors), + outcome="needs_fix", + notes=["integrity errors block semantic validation"], + ) + + nodes = graph.get("nodes") or [] + groups = _split_into_groups(nodes) + + # 2. Build pool tasks. + pool = AgentPool( + manager, + n_workers=POOL_SIZE, + log_dir=pool_log_dir, + role="node_validator", + name_prefix=f"validator_r{round_num}", + timeout_s=timeout_s, + stuck_timeout_s=max(60, timeout_s // 2), + max_retries=2, + ) + + tasks: List[PoolTask] = [] + for i, group in enumerate(groups): + prompt = _build_validator_prompt( + group, graph, + step1_path=step1_path, step2_path=step2_path, + framework_dir=framework_dir, + ) + workdir = round_dir / f"group_{i:02d}" + workdir.mkdir(parents=True, exist_ok=True) + ids_in_group = "_".join(str(n.get("id", "?")) for n in group) + safe_ids = re.sub(r"[^A-Za-z0-9_.-]", "_", ids_in_group)[:80] or f"g{i}" + tasks.append(PoolTask( + key=f"r{round_num}_g{i:02d}_{safe_ids}", + prompt=prompt, + workdir=workdir, + name=f"validator_r{round_num}_g{i:02d}", + )) + + # 3. Run the pool (in input order). + pool_results = pool.run(tasks) + + # 4. Persist + accumulate patches. + group_result_paths: List[Path] = [] + total_issues = 0 + merged_verdicts: Dict[str, Any] = {} + all_notes: List[str] = [] + + for pr, task in zip(pool_results, tasks): + out_path = round_dir / f"{task.workdir.name}.json" + verdicts = _extract_json_object(pr.final_text) or {} + applied, notes = apply_patches(graph, verdicts) + total_issues += _count_issues(verdicts) + payload = { + "group_key": pr.key, + "worker_id": pr.worker_id, + "success": pr.success, + "duration_s": pr.duration_s, + "error": pr.error, + "verdicts": verdicts, + "issues_in_group": _count_issues(verdicts), + "patches_applied": applied, + "patch_notes": notes, + "raw_final_text_head": (pr.final_text or "")[:500], + } + out_path.write_text(json.dumps(payload, indent=2), encoding="utf-8") + group_result_paths.append(out_path) + merged_verdicts.update(verdicts) + all_notes.extend(notes) + + outcome = "clean" if total_issues == 0 else "needs_fix" + return RoundResult( + round_num=round_num, + integrity=integrity, + group_result_paths=group_result_paths, + issue_count=total_issues, + outcome=outcome, + notes=all_notes, + ) + + +def run_validation_loop( + *, + graph: Dict[str, Any], + manager, + step1_path: Path, + step2_path: Path, + framework_dir: Path, + validation_root: Path, + logs_root: Path, + max_rounds: int = 5, + timeout_s: int = 600, +) -> Tuple[List[RoundResult], bool]: + """Iterate validation rounds until CLEAN or until ``max_rounds`` is hit. + + Returns ``(rounds, exhausted)``. ``exhausted=True`` means we hit the cap + and the caller should write a best-effort warning before visualization. + """ + rounds: List[RoundResult] = [] + for r in range(1, max_rounds + 1): + round_dir = validation_root / f"round_{r:02d}" + pool_log_dir = logs_root / f"validate_round_{r:02d}" / "pool" + result = run_validation_round( + round_num=r, + graph=graph, + manager=manager, + step1_path=step1_path, + step2_path=step2_path, + framework_dir=framework_dir, + round_dir=round_dir, + pool_log_dir=pool_log_dir, + timeout_s=timeout_s, + ) + rounds.append(result) + if result.outcome == "clean": + return rounds, False + + return rounds, True diff --git a/metainfer/tasks/find_low_hanging_kernel/orchestrator/iteration_record.py b/metainfer/tasks/find_low_hanging_kernel/orchestrator/iteration_record.py new file mode 100644 index 00000000..92673aa8 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/orchestrator/iteration_record.py @@ -0,0 +1,32 @@ +"""Iteration record schema for find-low-hanging-kernel. + +An "iteration" in this task is one graph-validation round (Step 3b). +Steps 1, 2, 3a (build), and 4 are single-shot and live inside iteration 1's +record before the first validation round opens iteration 2. +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Any, Dict, List, Optional + + +@dataclass +class IterationRecord: + iteration: int + goal: str = "" + started_at: float = 0.0 + ended_at: float = 0.0 + duration_s: float = 0.0 + status: str = "running" # "running" | "success" | "failed" + # The validation round number that this iteration represents (1-indexed). + # Round 0 == pre-validation build. + round: int = 0 + # Issues the integrity check found + fixed deterministically. + integrity_fixes: List[Dict[str, Any]] = field(default_factory=list) + # Issues the 5-worker pool reported (per-group, flattened). + semantic_issues: List[Dict[str, Any]] = field(default_factory=list) + # Outcome of the round: "clean" | "needs_fix" | "failed". + outcome: Optional[str] = None + artifacts: List[str] = field(default_factory=list) + interrupted: bool = False diff --git a/metainfer/tasks/find_low_hanging_kernel/orchestrator/orchestrator.py b/metainfer/tasks/find_low_hanging_kernel/orchestrator/orchestrator.py new file mode 100644 index 00000000..aeb37a6b --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/orchestrator/orchestrator.py @@ -0,0 +1,158 @@ +"""Bootstrap + entry point for the find-low-hanging-kernel orchestrator. + +Reads requirements.json, wires up StateStore + SubAgentManager + IterationWorkspace, +constructs the :class:`Pipeline` and runs it. Most of the heavy lifting lives in +``pipeline.py``; this module is the glue. +""" + +from __future__ import annotations + +import json +from pathlib import Path +from typing import Any, Dict, List, Optional + +from metainfer.orchestrator._bootstrap import ( + clear_pid_file, + install_subagent_shutdown_handlers, + make_subagent_manager, + set_process_name, + write_pid_file, +) +from metainfer.orchestrator.paths import repo_root as _repo_root +from metainfer.orchestrator.state import StateStore + +from .pipeline import OrchestratorConfig, Pipeline + + +def _task_subdirs(state_dir: Path, workspace_dir: Path) -> Dict[str, Path]: + state_dir.mkdir(parents=True, exist_ok=True) + workspace_dir.mkdir(parents=True, exist_ok=True) + + memory = workspace_dir / "memory" + validation = workspace_dir / "validation" + inputs_snapshot = workspace_dir / "inputs_snapshot" + for p in (memory, validation, inputs_snapshot): + p.mkdir(parents=True, exist_ok=True) + + logs = state_dir / "logs" + iterations_state = state_dir / "iterations" + for p in (logs, iterations_state): + p.mkdir(parents=True, exist_ok=True) + + return { + "state_dir": state_dir, + "workspace_dir": workspace_dir, + "memory_dir": memory, + "validation_dir": validation, + "inputs_snapshot_dir": inputs_snapshot, + "logs_root": logs, + "iterations_state": iterations_state, + "requirements": state_dir / "requirements.json", + "pid_file": state_dir / "orchestrator.pid", + "log_file": state_dir / "orchestrator.log", + "run_file": state_dir / "run.json", + "timeline_file": state_dir / "timeline.jsonl", + "agents_file": state_dir / "agents.json", + } + + +def _parse_max_validator_rounds(req: Dict[str, Any], default: int = 5) -> int: + raw = req.get("max_validator_rounds") + if raw is None: + raw = (req.get("form") or {}).get("max_validator_rounds") + if raw in (None, ""): + return default + try: + return max(1, int(raw)) + except (TypeError, ValueError): + return default + + +def run_with_requirements( + requirements_path: Path, + *, + state_dir: Optional[Path] = None, + workspace_dir: Optional[Path] = None, + claude_bin: str = "ccb", + model: Optional[str] = None, + permission_mode: str = "bypassPermissions", + extra_claude_args: Optional[List[str]] = None, + effort: str = "max", +) -> int: + if not requirements_path.exists(): + raise FileNotFoundError(f"requirements file not found: {requirements_path}") + + req: Dict[str, Any] = json.loads(requirements_path.read_text(encoding="utf-8")) + task_id = req.get("task_id", "task") + + set_process_name("metainfer-orch") + + if state_dir is None: + state_dir = Path.cwd() / "nodes" / "localhost" / ".metainfer" / "tasks" / task_id + if workspace_dir is None: + workspace_dir = Path.cwd() / "nodes" / "localhost" / "workspaces" / task_id + paths = _task_subdirs(state_dir, workspace_dir) + + target_req = paths["requirements"] + if requirements_path.resolve() != target_req.resolve(): + target_req.write_text( + requirements_path.read_text(encoding="utf-8"), encoding="utf-8" + ) + + write_pid_file(paths["pid_file"], task_id) + + repo_root = _repo_root() + logs_root = paths["logs_root"] + + store = StateStore(state_dir) + + # Resolve user-provided paths once; passed to every agent via add-dir. + form = req.get("form") or {} + user_paths: List[Path] = [] + for key in ("trace_file", "model_dir", "framework_source_dir", "startup_log"): + v = form.get(key) + if v: + user_paths.append(Path(v)) + + cfg = OrchestratorConfig( + workspace_dir=workspace_dir, + memory_dir=paths["memory_dir"], + validation_dir=paths["validation_dir"], + inputs_snapshot_dir=paths["inputs_snapshot_dir"], + repo_root=repo_root, + state_dir=state_dir, + logs_root=logs_root, + max_validator_rounds=_parse_max_validator_rounds(req, default=5), + claude_bin=claude_bin, + model=model, + permission_mode=permission_mode, + extra_claude_args=list(extra_claude_args or []), + effort=effort, + user_paths=user_paths, + ) + + manager = make_subagent_manager( + claude_bin=claude_bin, + model=model, + permission_mode=permission_mode, + effort=effort, + extra_add_dirs=[repo_root, logs_root, workspace_dir, *user_paths], + snapshot_file=paths["agents_file"], + ) + pipeline = Pipeline(req=req, store=store, cfg=cfg, manager=manager) + + print(f"[metainfer] task_id = {task_id}") + print(f"[metainfer] state dir = {state_dir}") + print(f"[metainfer] workspace dir = {workspace_dir}") + print(f"[metainfer] memory dir = {paths['memory_dir']}") + print(f"[metainfer] logs dir = {logs_root}") + print(f"[metainfer] user paths = {user_paths}") + + restore_signals = install_subagent_shutdown_handlers(manager, pid_file=paths["pid_file"]) + + try: + pipeline.run() + finally: + restore_signals() + clear_pid_file(paths["pid_file"]) + return 0 diff --git a/metainfer/tasks/find_low_hanging_kernel/orchestrator/phases.py b/metainfer/tasks/find_low_hanging_kernel/orchestrator/phases.py new file mode 100644 index 00000000..e9db87b1 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/orchestrator/phases.py @@ -0,0 +1,208 @@ +"""Phase / Outcome / Transition definitions for find-low-hanging-kernel. + +Five-phase linear pipeline with one self-loop at P3_graph_validate (when a +validation round applies fixes, the loop re-runs). Validation rounds are +also bounded by ``max_validator_rounds`` in the orchestrator config, so the +self-loop cannot spin forever. +""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import Any, Dict, List, Literal, Optional, Tuple + + +Phase = Literal[ + "idle", + "P1_code_analysis", + "P2_tracing_analysis", + "P3_graph_build", + "P3_graph_validate", + "P4_visualize", + "finished", +] + +Outcome = Literal[ + "ok", + "logic_fail", + "infra_fail", + "needs_fix", # graph validator found issues and applied patches + "clean", # graph validator found no issues + "aborted", +] + +OK = "ok" +LOGIC_FAIL = "logic_fail" +INFRA_FAIL = "infra_fail" +NEEDS_FIX = "needs_fix" +CLEAN = "clean" +ABORTED = "aborted" + +ALL_OUTCOMES: List[Outcome] = [OK, LOGIC_FAIL, INFRA_FAIL, NEEDS_FIX, CLEAN, ABORTED] + + +@dataclass(frozen=True) +class PhaseMeta: + id: Phase + label: str + description: str = "" + is_terminal: bool = False + + +@dataclass(frozen=True) +class Transition: + from_phase: Phase + on: Outcome + to_phase: Phase + label: str = "" + consume_iteration: bool = False + + +PHASES: List[PhaseMeta] = [ + PhaseMeta("idle", "idle", "not started"), + PhaseMeta("P1_code_analysis", "1: Code + quant analysis", + "3 independent agents trace architecture, quantization loading, " + "and runtime-resolved code paths; synthesizer cross-validates."), + PhaseMeta("P2_tracing_analysis", "2: Tracing analysis", + "Deterministic chrome-trace parser produces stats; 3 agents " + "cross-validate kernel↔source mapping and shape disambiguation."), + PhaseMeta("P3_graph_build", "3a: Build flow graph", + "Fresh agent reads step-1+2 memory and emits flow_graph.json."), + PhaseMeta("P3_graph_validate", "3b: Validate flow graph", + "Deterministic driver: integrity check + 5-worker pool validates " + "3-node groups against memory + framework source. Loops on fixes."), + PhaseMeta("P4_visualize", "4: Render visualization", + "Substitute validated graph into the ELK + SVG HTML template."), + PhaseMeta("finished", "finished", "run ended", is_terminal=True), +] + +PHASE_ORDER: List[Phase] = [ + "P1_code_analysis", + "P2_tracing_analysis", + "P3_graph_build", + "P3_graph_validate", + "P4_visualize", +] + +TRANSITIONS: Dict[Tuple[Phase, Outcome], Transition] = { + # Linear forward path. + ("P1_code_analysis", OK): Transition( + "P1_code_analysis", OK, "P2_tracing_analysis", label="ok"), + ("P2_tracing_analysis", OK): Transition( + "P2_tracing_analysis", OK, "P3_graph_build", label="ok"), + ("P3_graph_build", OK): Transition( + "P3_graph_build", OK, "P3_graph_validate", label="ok"), + + # Step 3 validation: loop on needs_fix, advance on clean. + ("P3_graph_validate", NEEDS_FIX): Transition( + "P3_graph_validate", NEEDS_FIX, "P3_graph_validate", + label="fix → revalidate", consume_iteration=True), + ("P3_graph_validate", CLEAN): Transition( + "P3_graph_validate", CLEAN, "P4_visualize", label="clean"), + + ("P4_visualize", OK): Transition( + "P4_visualize", OK, "finished", label="done"), + + # Retry-in-place on infra failures (deterministic re-run). + ("P1_code_analysis", INFRA_FAIL): Transition( + "P1_code_analysis", INFRA_FAIL, "P1_code_analysis", label="retry"), + ("P2_tracing_analysis", INFRA_FAIL): Transition( + "P2_tracing_analysis", INFRA_FAIL, "P2_tracing_analysis", label="retry"), + ("P3_graph_build", INFRA_FAIL): Transition( + "P3_graph_build", INFRA_FAIL, "P3_graph_build", label="retry"), + ("P3_graph_validate", INFRA_FAIL): Transition( + "P3_graph_validate", INFRA_FAIL, "P3_graph_validate", label="retry"), + ("P4_visualize", INFRA_FAIL): Transition( + "P4_visualize", INFRA_FAIL, "P4_visualize", label="retry"), + + # Logic failures: stop the run (we don't auto-retry analysis logic). + ("P1_code_analysis", LOGIC_FAIL): Transition( + "P1_code_analysis", LOGIC_FAIL, "finished", label="fail"), + ("P2_tracing_analysis", LOGIC_FAIL): Transition( + "P2_tracing_analysis", LOGIC_FAIL, "finished", label="fail"), + ("P3_graph_build", LOGIC_FAIL): Transition( + "P3_graph_build", LOGIC_FAIL, "finished", label="fail"), + ("P3_graph_validate", LOGIC_FAIL): Transition( + "P3_graph_validate", LOGIC_FAIL, "finished", label="fail"), +} + + +def next_transition(from_phase: Phase, outcome: Outcome) -> Optional[Transition]: + return TRANSITIONS.get((from_phase, outcome)) + + +def phase_label(p: Phase) -> str: + for m in PHASES: + if m.id == p: + return m.label + return str(p) + + +def phase_meta(p: Phase) -> Optional[PhaseMeta]: + for m in PHASES: + if m.id == p: + return m + return None + + +def is_terminal(p: Phase) -> bool: + m = phase_meta(p) + return bool(m and m.is_terminal) + + +def nodes_for_graph() -> List[Dict[str, str]]: + return [ + {"id": m.id, "label": m.label, "description": m.description} + for m in PHASES if m.id in PHASE_ORDER + ] + + +def edges_for_graph() -> List[Dict[str, str]]: + merged: Dict[Tuple[Phase, Phase], List[str]] = {} + for (frm, _outc), t in TRANSITIONS.items(): + merged.setdefault((frm, t.to_phase), []).append(t.label or _outc) + out: List[Dict[str, str]] = [] + for (frm, to), labels in merged.items(): + out.append({ + "from": frm, + "to": to, + "label": " / ".join(sorted(set(labels))), + }) + return out + + +def outcome_label(o: Outcome) -> str: + return { + OK: "ok", + LOGIC_FAIL: "logic fail", + INFRA_FAIL: "infra fail", + NEEDS_FIX: "needs fix", + CLEAN: "clean", + ABORTED: "aborted", + }.get(o, str(o)) + + +def graph_payload(current, last_outcome, last_label) -> Dict[str, Any]: + """Build the state-graph render payload for the WebUI.""" + nodes = nodes_for_graph() + edges = edges_for_graph() + active_edge = None + if last_label: + for e in edges: + if e["to"] == current and last_label in e["label"].split(" / "): + active_edge = {"from": e["from"], "to": e["to"], "label": last_label} + break + terminal_nodes = [ + {"id": m.id, "label": m.label, "description": m.description} + for m in PHASES if m.is_terminal + ] + outcome_legend = [{"id": o, "label": outcome_label(o)} for o in ALL_OUTCOMES] + return { + "current": current, + "nodes": nodes, + "edges": edges, + "active_edge": active_edge, + "last_outcome": last_outcome, + "terminal_nodes": terminal_nodes, + "outcome_legend": outcome_legend, + } diff --git a/metainfer/tasks/find_low_hanging_kernel/orchestrator/pipeline.py b/metainfer/tasks/find_low_hanging_kernel/orchestrator/pipeline.py new file mode 100644 index 00000000..501c0458 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/orchestrator/pipeline.py @@ -0,0 +1,641 @@ +"""Pipeline — find-low-hanging-kernel main control flow. + +Phase dispatch loop driven by :mod:`phases`. Each phase runs in its own +fresh-agent scope (cross-validation pools spawn new agents per phase per the +spec: "每一个大步骤,都使用一个全新的 Agent 实例"). + +Resume semantics: each phase checks for its output artifact on disk and +skips if present (idempotent re-runs). Validation rounds also short-circuit +when the graph is already clean. +""" + +from __future__ import annotations + +import json +import shutil +import time +from dataclasses import asdict, dataclass, field +from pathlib import Path +from typing import Any, Dict, List, Optional, Tuple + +from metainfer.orchestrator.agent_pool import AgentPool, PoolTask +from metainfer.orchestrator.state import StateStore +from metainfer.orchestrator.subagent_manager import AgentSpec, SubAgentManager + +from . import phases as P +from . import prompts as PP +from .graph_validator import run_validation_loop +from .iteration_record import IterationRecord +from .trace_parser import write_summary as write_trace_summary +from .visualizer import ( + render_from_files as render_flow_html, + write_graph_json as write_flow_graph_json, +) + + +# Per-phase agent timeout (seconds). Step 1/2 agents read code + traces; Step 3 +# builds a whole graph. Allow generous wall time. +S1_AGENT_TIMEOUT_S = 1800 +S1_SYNTH_TIMEOUT_S = 1200 +S2_AGENT_TIMEOUT_S = 1800 +S2_SYNTH_TIMEOUT_S = 1200 +S3_BUILD_TIMEOUT_S = 2400 +S3_VALIDATE_TIMEOUT_S = 600 +CROSS_VAL_POOL_SIZE = 3 + + +# --------------------------------------------------------------------------- # +# Config +# --------------------------------------------------------------------------- # + + +@dataclass +class OrchestratorConfig: + workspace_dir: Path + memory_dir: Path + validation_dir: Path + inputs_snapshot_dir: Path + repo_root: Path + state_dir: Path + logs_root: Path + max_validator_rounds: int = 5 + claude_bin: str = "ccb" + model: Optional[str] = None + permission_mode: str = "bypassPermissions" + extra_claude_args: List[str] = field(default_factory=list) + effort: str = "max" + user_paths: List[Path] = field(default_factory=list) + + +# --------------------------------------------------------------------------- # +# Helpers +# --------------------------------------------------------------------------- # + + +def _failure_outcome(mode: Optional[str]) -> P.Outcome: + return P.INFRA_FAIL if mode == "infra" else P.LOGIC_FAIL + + +def _read_prompt_out(agent_name: str, manager) -> Tuple[bool, Optional[str], Optional[str], Optional[str]]: + """Fetch the AgentResult for ``agent_name`` and return (success, error, + failure_mode, session_id).""" + result = manager.result(agent_name) + if result is None: + return False, "no result recorded", "infra", None + return result.success, result.error, result.failure_mode, result.session_id + + +def _write_prompt_file(logs_dir: Path, name: str, prompt: str) -> Path: + logs_dir.mkdir(parents=True, exist_ok=True) + p = logs_dir / f"{name}.prompt.txt" + p.write_text(prompt, encoding="utf-8") + return p + + +def _run_single_agent( + *, + manager, + name: str, + role: str, + workdir: Path, + logs_dir: Path, + prompt: str, + timeout: int, + cfg: OrchestratorConfig, + resume_session_id: Optional[str] = None, +) -> Tuple[bool, Optional[str], Optional[str], Optional[str]]: + """Launch a blocking SubAgentManager.launch turn.""" + workdir.mkdir(parents=True, exist_ok=True) + prompt_file = _write_prompt_file(logs_dir, name, prompt) + spec = AgentSpec( + name=name, + role=role, + prompt_file=prompt_file, + workdir=workdir, + log_dir=logs_dir, + timeout_s=timeout, + stuck_timeout_s=max(120, timeout // 3), + extra_args=list(cfg.extra_claude_args), + resume_session_id=resume_session_id, + ) + manager.launch(spec) + return _read_prompt_out(name, manager) + + +def _run_pool( + *, + manager, + tasks: List[PoolTask], + log_dir: Path, + role: str, + name_prefix: str, + timeout: int, +) -> List: + """Run an AgentPool batch. Returns results in input order.""" + pool = AgentPool( + manager, + n_workers=CROSS_VAL_POOL_SIZE, + log_dir=log_dir, + role=role, + name_prefix=name_prefix, + timeout_s=timeout, + stuck_timeout_s=max(60, timeout // 3), + max_retries=2, + ) + return pool.run(tasks) + + +# --------------------------------------------------------------------------- # +# Pipeline +# --------------------------------------------------------------------------- # + + +class Pipeline: + def __init__( + self, + req: Dict[str, Any], + store: StateStore, + cfg: OrchestratorConfig, + manager: Optional[SubAgentManager] = None, + ) -> None: + self.req = req + self.form: Dict[str, Any] = req.get("form") or {} + self.store = store + self.cfg = cfg + self.manager = manager or SubAgentManager( + claude_bin=cfg.claude_bin, + default_model=cfg.model, + permission_mode=cfg.permission_mode, + extra_add_dirs=[cfg.workspace_dir, *cfg.user_paths], + ) + self.task_id = req.get("task_id", "task") + self._stop = False + + # ------------------------------------------------------------------ # + # Public entry + # ------------------------------------------------------------------ # + + def run(self) -> None: + self.store.init_or_resume(task_id=self.task_id) + self.store.append_timeline("orchestrator_start", {"task_id": self.task_id}) + + # Build inputs snapshot first — cheap, makes the workspace self-contained. + self._snapshot_inputs() + + phase: P.Phase = self._resume_phase() + last_outcome: Optional[P.Outcome] = None + + try: + while not self._stop and not P.is_terminal(phase): + self._set_phase(phase) + outcome, failure = self._dispatch(phase) + last_outcome = outcome + self.store.append_timeline("transition", { + "from": phase, "outcome": outcome, "failure": failure, + }) + + t = P.next_transition(phase, outcome) + if t is None: + self._fail_run(f"no transition for ({phase}, {outcome})") + return + + self.store.update_run( + current_phase=t.to_phase, + last_outcome=outcome, + last_transition_label=t.label, + ) + phase = t.to_phase + + final_status = "success" if last_outcome in (P.OK, P.CLEAN) else "stopped" + self.store.update_run( + finished=True, + final_status=final_status, + current_phase="finished", + last_outcome=last_outcome, + ) + self.store.append_timeline("orchestrator_end", { + "task_id": self.task_id, "final_status": final_status, + }) + except KeyboardInterrupt: + self.store.append_timeline( + "orchestrator_abort", {"reason": "keyboard-interrupt"} + ) + self.store.update_run( + finished=True, final_status="aborted", current_phase="finished" + ) + finally: + try: + self.manager.shutdown() + except Exception: # noqa: BLE001 + pass + + # ------------------------------------------------------------------ # + # Resume + # ------------------------------------------------------------------ # + + def _resume_phase(self) -> P.Phase: + """Pick up at the first phase whose output is missing.""" + if (self.cfg.memory_dir / "step1_code_analysis.md").is_file(): + if (self.cfg.memory_dir / "step2_tracing_analysis.md").is_file(): + if (self.cfg.workspace_dir / "flow_graph.json").is_file(): + if (self.cfg.workspace_dir / "flow_graph.html").is_file(): + # Everything is done; mark terminal. + return "finished" + return "P4_visualize" + return "P3_graph_build" + return "P2_tracing_analysis" + return "P1_code_analysis" + + # ------------------------------------------------------------------ # + # Phase dispatcher + # ------------------------------------------------------------------ # + + def _dispatch( + self, phase: P.Phase, + ) -> Tuple[P.Outcome, Optional[str]]: + if phase == "P1_code_analysis": + return self._do_step1() + if phase == "P2_tracing_analysis": + return self._do_step2() + if phase == "P3_graph_build": + return self._do_step3_build() + if phase == "P3_graph_validate": + return self._do_step3_validate() + if phase == "P4_visualize": + return self._do_step4() + return P.LOGIC_FAIL, f"no handler for phase {phase!r}" + + # ------------------------------------------------------------------ # + # Step 1: code + quant + runtime analysis (3 agents + synthesis) + # ------------------------------------------------------------------ # + + def _do_step1(self) -> Tuple[P.Outcome, Optional[str]]: + logs_dir = self.cfg.logs_root / "step1" + workdir = self.cfg.memory_dir / "build" / "step1" + workdir.mkdir(parents=True, exist_ok=True) + + if (self.cfg.memory_dir / "step1_code_analysis.md").is_file(): + self.store.append_timeline("phase_skip", {"phase": "P1_code_analysis"}) + return P.OK, None + + roles = ["arch_tracer", "quant_tracer", "runtime_tracer"] + tasks: List[PoolTask] = [] + for role in roles: + agent_workdir = workdir / role + agent_workdir.mkdir(parents=True, exist_ok=True) + prompt = PP.step1_agent_prompt( + role=role, + form=self.form, + workdir=agent_workdir, + inputs_snapshot_dir=self.cfg.inputs_snapshot_dir, + ) + tasks.append(PoolTask( + key=f"s1_{role}", + prompt=prompt, + workdir=agent_workdir, + name=f"s1-{role}", + )) + + self.store.append_timeline("step1_pool_launch", { + "agents": [t.name for t in tasks], + "n_workers": CROSS_VAL_POOL_SIZE, + }) + pool_results = _run_pool( + manager=self.manager, + tasks=tasks, + log_dir=logs_dir / "pool", + role="step1_analyst", + name_prefix="s1", + timeout=S1_AGENT_TIMEOUT_S, + ) + + # Persist individual reports as agent_1.md / agent_2.md / agent_3.md + # (regardless of success — the synthesizer can still read partial work). + report_paths: Dict[str, Path] = {} + for i, (role, pr) in enumerate(zip(roles, pool_results), start=1): + out_path = self.cfg.memory_dir / f"step1_agent_{i}.md" + # Each agent was instructed to write report.md in its workdir. + src = workdir / role / "report.md" + if src.is_file(): + try: + out_path.write_text( + src.read_text(encoding="utf-8"), encoding="utf-8" + ) + except OSError: + pass + report_paths[role] = out_path + self.store.append_timeline("step1_agent_done", { + "role": role, "success": pr.success, "duration_s": pr.duration_s, + "error": pr.error, + }) + + # Synthesis (single fresh agent). + synth_workdir = workdir / "synthesizer" + synth_workdir.mkdir(parents=True, exist_ok=True) + out_memory = self.cfg.memory_dir / "step1_code_analysis.md" + synth_prompt = PP.step1_synthesis_prompt( + form=self.form, + reports=report_paths, + out_path=out_memory, + ) + ok, err, mode, _ = _run_single_agent( + manager=self.manager, + name="s1-synthesizer", + role="step1_synthesizer", + workdir=synth_workdir, + logs_dir=logs_dir, + prompt=synth_prompt, + timeout=S1_SYNTH_TIMEOUT_S, + cfg=self.cfg, + ) + if not ok: + return _failure_outcome(mode), f"S1 synthesis failed: {err}" + if not out_memory.is_file(): + return P.LOGIC_FAIL, "S1 synthesis produced no step1_code_analysis.md" + return P.OK, None + + # ------------------------------------------------------------------ # + # Step 2: tracing analysis (deterministic parse + 3 agents + synthesis) + # ------------------------------------------------------------------ # + + def _do_step2(self) -> Tuple[P.Outcome, Optional[str]]: + logs_dir = self.cfg.logs_root / "step2" + workdir = self.cfg.memory_dir / "build" / "step2" + workdir.mkdir(parents=True, exist_ok=True) + out_memory = self.cfg.memory_dir / "step2_tracing_analysis.md" + if out_memory.is_file(): + self.store.append_timeline("phase_skip", {"phase": "P2_tracing_analysis"}) + return P.OK, None + + # 2a. Deterministic parse. + trace_file = (self.form.get("trace_file") or "").strip() + if not trace_file: + return P.LOGIC_FAIL, "trace_file not provided" + trace_path = Path(trace_file) + if not trace_path.is_file(): + return P.LOGIC_FAIL, f"trace_file not found: {trace_path}" + parsed_path = self.cfg.workspace_dir / "trace_parsed.json" + try: + write_trace_summary(trace_path, parsed_path) + except Exception as exc: # noqa: BLE001 + return P.INFRA_FAIL, f"trace parse failed: {exc!r}" + self.store.append_timeline("step2_parse_done", { + "source": trace_path.name, + "output": str(parsed_path), + }) + + # 2b. Three cross-validation agents. + step1_memory = self.cfg.memory_dir / "step1_code_analysis.md" + roles = ["stat_analyst", "source_mapper", "tp_shape_analyst"] + tasks: List[PoolTask] = [] + for role in roles: + agent_workdir = workdir / role + agent_workdir.mkdir(parents=True, exist_ok=True) + prompt = PP.step2_agent_prompt( + role=role, + form=self.form, + workdir=agent_workdir, + trace_parsed_path=parsed_path, + step1_memory_path=step1_memory, + ) + tasks.append(PoolTask( + key=f"s2_{role}", + prompt=prompt, + workdir=agent_workdir, + name=f"s2-{role}", + )) + pool_results = _run_pool( + manager=self.manager, + tasks=tasks, + log_dir=logs_dir / "pool", + role="step2_analyst", + name_prefix="s2", + timeout=S2_AGENT_TIMEOUT_S, + ) + + report_paths: Dict[str, Path] = {} + for i, (role, pr) in enumerate(zip(roles, pool_results), start=1): + out_path = self.cfg.memory_dir / f"step2_agent_{i}.md" + src = workdir / role / "report.md" + if src.is_file(): + try: + out_path.write_text( + src.read_text(encoding="utf-8"), encoding="utf-8" + ) + except OSError: + pass + report_paths[role] = out_path + self.store.append_timeline("step2_agent_done", { + "role": role, "success": pr.success, "duration_s": pr.duration_s, + "error": pr.error, + }) + + # Synthesis. + synth_workdir = workdir / "synthesizer" + synth_workdir.mkdir(parents=True, exist_ok=True) + synth_prompt = PP.step2_synthesis_prompt( + form=self.form, + reports=report_paths, + out_path=out_memory, + ) + ok, err, mode, _ = _run_single_agent( + manager=self.manager, + name="s2-synthesizer", + role="step2_synthesizer", + workdir=synth_workdir, + logs_dir=logs_dir, + prompt=synth_prompt, + timeout=S2_SYNTH_TIMEOUT_S, + cfg=self.cfg, + ) + if not ok: + return _failure_outcome(mode), f"S2 synthesis failed: {err}" + if not out_memory.is_file(): + return P.LOGIC_FAIL, "S2 synthesis produced no step2_tracing_analysis.md" + return P.OK, None + + # ------------------------------------------------------------------ # + # Step 3a: graph build (single agent) + # ------------------------------------------------------------------ # + + def _do_step3_build(self) -> Tuple[P.Outcome, Optional[str]]: + logs_dir = self.cfg.logs_root / "step3_build" + workdir = self.cfg.workspace_dir / "build" / "step3" + workdir.mkdir(parents=True, exist_ok=True) + out_graph = self.cfg.workspace_dir / "flow_graph.json" + if out_graph.is_file(): + self.store.append_timeline("phase_skip", {"phase": "P3_graph_build"}) + return P.OK, None + + prompt = PP.step3_build_prompt( + form=self.form, + workdir=workdir, + step1_memory_path=self.cfg.memory_dir / "step1_code_analysis.md", + step2_memory_path=self.cfg.memory_dir / "step2_tracing_analysis.md", + out_graph_path=out_graph, + ) + ok, err, mode, _ = _run_single_agent( + manager=self.manager, + name="s3-builder", + role="graph_builder", + workdir=workdir, + logs_dir=logs_dir, + prompt=prompt, + timeout=S3_BUILD_TIMEOUT_S, + cfg=self.cfg, + ) + if not ok: + return _failure_outcome(mode), f"S3 build failed: {err}" + if not out_graph.is_file(): + return P.LOGIC_FAIL, "S3 build produced no flow_graph.json" + self.store.append_timeline("step3_build_done", {"graph": str(out_graph)}) + return P.OK, None + + # ------------------------------------------------------------------ # + # Step 3b: iterative validation (deterministic driver + 5-worker pool) + # ------------------------------------------------------------------ # + + def _do_step3_validate(self) -> Tuple[P.Outcome, Optional[str]]: + graph_path = self.cfg.workspace_dir / "flow_graph.json" + if not graph_path.is_file(): + return P.LOGIC_FAIL, "flow_graph.json missing — Step 3a must run first" + + try: + graph = json.loads(graph_path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError) as exc: + return P.LOGIC_FAIL, f"flow_graph.json unparseable: {exc!r}" + + rounds, exhausted = run_validation_loop( + graph=graph, + manager=self.manager, + step1_path=self.cfg.memory_dir / "step1_code_analysis.md", + step2_path=self.cfg.memory_dir / "step2_tracing_analysis.md", + framework_dir=Path(self.form.get("framework_source_dir") or "."), + validation_root=self.cfg.validation_dir, + logs_root=self.cfg.logs_root, + max_rounds=self.cfg.max_validator_rounds, + timeout_s=S3_VALIDATE_TIMEOUT_S, + ) + + # Persist the (possibly patched) graph back to disk. + write_flow_graph_json(graph, out_path=graph_path) + + # Record one iteration per round. + for r in rounds: + rec = IterationRecord( + iteration=r.round_num, + goal=f"validation round {r.round_num}", + started_at=time.time(), + ended_at=time.time(), + status="success" if r.outcome == "clean" else "needs_fix", + round=r.round_num, + integrity_fixes=r.integrity.fixes_applied, + semantic_issues=[ + {"round": r.round_num, "issue_count": r.issue_count} + ], + outcome=r.outcome, + artifacts=[str(p) for p in r.group_result_paths], + ) + self.store.write_iteration(r.round_num, asdict(rec)) + self.store.append_timeline("validate_round_done", { + "round": r.round_num, + "outcome": r.outcome, + "issue_count": r.issue_count, + "fixes": len(r.integrity.fixes_applied), + }) + + if exhausted: + # Best-effort: write a warning and proceed. + warnings_path = self.cfg.memory_dir / "validation_warnings.md" + warnings_path.write_text( + "# Validation warnings\n\n" + f"Reached the cap of {self.cfg.max_validator_rounds} validation " + "rounds without converging on a clean graph. The graph may " + "still contain minor issues; review the validation/round_* " + "directories for details.\n", + encoding="utf-8", + ) + self.store.append_timeline("validate_exhausted", { + "max_rounds": self.cfg.max_validator_rounds, + }) + return P.CLEAN, None + + return P.CLEAN, None + + # ------------------------------------------------------------------ # + # Step 4: visualization (deterministic) + # ------------------------------------------------------------------ # + + def _do_step4(self) -> Tuple[P.Outcome, Optional[str]]: + graph_path = self.cfg.workspace_dir / "flow_graph.json" + html_path = self.cfg.workspace_dir / "flow_graph.html" + if html_path.is_file(): + self.store.append_timeline("phase_skip", {"phase": "P4_visualize"}) + return P.OK, None + if not graph_path.is_file(): + return P.LOGIC_FAIL, "flow_graph.json missing — cannot render" + try: + render_flow_html( + graph_path=graph_path, + out_html_path=html_path, + ) + except Exception as exc: # noqa: BLE001 + return P.INFRA_FAIL, f"visualizer failed: {exc!r}" + self.store.append_timeline("visualize_done", {"html": str(html_path)}) + return P.OK, None + + # ------------------------------------------------------------------ # + # Helpers + # ------------------------------------------------------------------ # + + def _set_phase(self, phase: P.Phase) -> None: + self.store.update_run(current_phase=phase) + self.store.append_timeline("phase_start", {"phase": phase}) + + def _fail_run(self, reason: str) -> None: + self.store.update_run( + finished=True, final_status="stopped", + current_phase="finished", last_outcome=P.LOGIC_FAIL, + ) + self.store.append_timeline("orchestrator_fail", {"reason": reason}) + + def _snapshot_inputs(self) -> None: + """Copy small user-provided inputs into workspace/inputs_snapshot/ + so the workspace is self-contained for audit.""" + snapshot = self.cfg.inputs_snapshot_dir + snapshot.mkdir(parents=True, exist_ok=True) + + cli_env = (self.form.get("cli_args_and_env") or "").strip() + if cli_env: + (snapshot / "cli_args_and_env.txt").write_text(cli_env, encoding="utf-8") + + model_dir = Path(self.form.get("model_dir") or "") + if model_dir.is_dir(): + cfg_json = model_dir / "config.json" + if cfg_json.is_file(): + try: + shutil.copy2(cfg_json, snapshot / "config.json") + except OSError: + pass + # Best-effort weights index copy: try common names. + for idx_name in ( + "model.safetensors.index.json", + "pytorch_model.bin.index.json", + "model.npz.json", + ): + src_idx = model_dir / idx_name + if src_idx.is_file(): + try: + shutil.copy2(src_idx, snapshot / "weights_index.json") + except OSError: + pass + break + + startup_log = Path(self.form.get("startup_log") or "") + if startup_log.is_file(): + try: + shutil.copy2(startup_log, snapshot / "startup_log.txt") + except OSError: + pass + + self.store.append_timeline("inputs_snapshot_done", {"dir": str(snapshot)}) diff --git a/metainfer/tasks/find_low_hanging_kernel/orchestrator/plugin.py b/metainfer/tasks/find_low_hanging_kernel/orchestrator/plugin.py new file mode 100644 index 00000000..f687e11c --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/orchestrator/plugin.py @@ -0,0 +1,24 @@ +"""TaskPlugin descriptor for find-low-hanging-kernel. + +The launcher reads ``cli_module`` and runs:: + + python -m run --state-dir … --workspace-dir … +""" + +from metainfer.orchestrator.tasks.base import TaskPlugin + + +PLUGIN = TaskPlugin( + task_type="find-low-hanging-kernel", + cli_module="metainfer.tasks.find_low_hanging_kernel.orchestrator.cli", + phases_module="metainfer.tasks.find_low_hanging_kernel.orchestrator.phases", + # Per-iteration diagnostic files we want copied forward into the next + # round's prev-iter/ when Step 3 graph-validation loops. + diagnostic_globs=( + "*.md", + "flow_graph.json", + "*.prompt.txt", + "integrity_fixes.json", + "group_*.json", + ), +) diff --git a/metainfer/tasks/find_low_hanging_kernel/orchestrator/prompts.py b/metainfer/tasks/find_low_hanging_kernel/orchestrator/prompts.py new file mode 100644 index 00000000..0568db64 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/orchestrator/prompts.py @@ -0,0 +1,393 @@ +"""Prompt templates for find-low-hanging-kernel sub-agents. + +Every prompt that touches user-provided inputs (model dir, framework source, +trace file, startup log) starts with a READ-ONLY INPUTS block reminding the +agent never to modify those paths. +""" + +from __future__ import annotations + +import json +from pathlib import Path +from typing import Any, Dict, List, Optional + + +READONLY_BANNER = """# READ-ONLY INPUTS — DO NOT MODIFY +The following paths are user-provided inputs. You MUST NOT create, modify, +or delete any file under these paths. All writes you produce must land in +your assigned workdir. If you believe a file is wrong, note it in your +report — do not "fix" it. + +""" + + +def _readonly_block(form: Dict[str, Any]) -> str: + lines: List[str] = [] + for key, label in ( + ("model_dir", "Model directory"), + ("framework_source_dir", "Framework source tree"), + ("trace_file", "Chrome tracing file"), + ("startup_log", "Startup log"), + ): + v = (form.get(key) or "").strip() + if v: + lines.append(f"- {label}: {v}") + if not lines: + return "" + return READONLY_BANNER + "\n".join(lines) + "\n\n" + + +def _render_form_summary(form: Dict[str, Any]) -> str: + lines: List[str] = [] + for k, v in form.items(): + if v in (None, ""): + continue + lines.append(f"- {k}: {v}") + return "\n".join(lines) if lines else "(no form fields populated)" + + +# --------------------------------------------------------------------------- # +# Step 1 — three cross-validation agents +# --------------------------------------------------------------------------- # + + +_STEP1_ROLE_INSTRUCTIONS = { + "arch_tracer": ( + "You are the **architecture tracer**. Starting from config.json in the " + "model directory, identify the model architecture (e.g. Llama-style " + "decoder transformer, MoE variant, etc.). Then read the inference " + "framework source to locate every operator call site in the forward " + "pass — input embedding, attention, MLP/RMSNorm/LayerNorm, RoPE, " + "final logits, kv-cache operations, sampling. For each call site " + "capture file:line:symbol and the kernel name it ultimately invokes " + "(if you can tell from the framework's dispatch / autotuner)." + ), + "quant_tracer": ( + "You are the **quantization tracer**. Identify how the model is " + "quantized from config.json (quant_method, bits, group_size, " + "symmetric/asymmetric, etc.). Then locate the framework source code " + "that LOADS these quantized weights: the weight loader, the " + "dequantize / W8A16 / W4A16 kernel selection logic, the scales & " + "zeros tensors. Capture file:line:symbol for each. Flag any weight-" + "loading fallback paths that could activate if the primary path " + "isn't built." + ), + "runtime_tracer": ( + "You are the **runtime-resolution tracer**. Your job is to confirm " + "WHICH code paths actually executed at launch time, given the CLI " + "args + env vars + startup log. Hunt for fallback impls: framework " + "X often has CUDA / Triton / eager / fallback variants gated on " + "env vars or compile-time flags — record which variant ran, with " + "evidence from the startup log or env vars. Note explicitly any " + "case where the active config bypasses the 'main' implementation." + ), +} + + +def step1_agent_prompt( + *, + role: str, + form: Dict[str, Any], + workdir: Path, + inputs_snapshot_dir: Path, +) -> str: + instructions = _STEP1_ROLE_INSTRUCTIONS.get(role) + if instructions is None: + raise ValueError(f"unknown step-1 role {role!r}") + snapshot_hint = ( + f"- Inputs snapshot (copies of small user inputs): {inputs_snapshot_dir}\n" + if inputs_snapshot_dir else "" + ) + return f"""{_readonly_block(form)}# Your role +{instructions} + +# Inputs available to you +- Your workdir (write your report here as `report.md`): {workdir} +{snapshot_hint} +- Form fields provided at launch time: +{_render_form_summary(form)} + +# Output +Write your findings to `{workdir / "report.md"}`. Structure: + +## Findings +- (your role-specific findings, with file:line:symbol references where possible) + +## Evidence +- (quote the exact lines from the framework source or config.json that back + each finding; include file paths) + +## Confidence: (high | medium | low) +## Open questions / uncertainties +- (things you couldn't pin down — the synthesizer agent will weigh these) +""" + + +def step1_synthesis_prompt( + *, + form: Dict[str, Any], + reports: Dict[str, Path], + out_path: Path, +) -> str: + """Cross-validate the three independent reports into one memory file.""" + reports_block = "\n\n".join( + f"## Report from `{role}` ({path})\n" + f"(read this file from disk — do not paste it here)" + for role, path in reports.items() + ) + return f"""{_readonly_block(form)}# Your role +You are the **synthesizer** for Step 1. Three independent analysis agents each +produced a report on the inference framework + model you're investigating, +each from a different angle: architecture, quantization, and runtime-resolution. + +Read all three reports from disk and cross-validate them against each other and +against the framework source. Your job is to produce ONE consolidated, trusted +memory file that downstream steps (Step 2 source-mapping, Step 3 graph build, +Step 3 graph validation) will rely on. + +# Reports to read +{reports_block} + +# Required output +Write your synthesis to `{out_path}` with exactly these sections, in order: + +## Model architecture +(consolidated view; include hidden_size, num_layers, num_attention_heads, +num_kv_heads, intermediate_size, vocab_size, max_seq_len, etc. — anything +relevant to tensor shapes later) + +## Operator call sites +A markdown table with columns: `Step | Operator | Kernel name | Source location | Notes`. +One row per distinct operator call site in the forward pass. Source location +must be `file:line (symbol)`. + +## Quantization loading +How weights are loaded, dequantized, and dispatched. Include file:line refs. + +## Runtime-resolved code paths +Which implementation variants actually run under the user's CLI/env config. +Cite evidence (env var values, startup-log lines, framework feature flags). + +## Disagreements & confidence +Where the three agents disagreed. For each disagreement: which view did you +pick and why? Which findings are HIGH confidence vs MEDIUM vs LOW? + +## Open uncertainties +Unresolved questions to flag for downstream steps. +""" + + +# --------------------------------------------------------------------------- # +# Step 2 — deterministic parse + three cross-validation agents +# --------------------------------------------------------------------------- # + + +_STEP2_ROLE_INSTRUCTIONS = { + "stat_analyst": ( + "You are the **statistics analyst**. Working ONLY from " + "`trace_parsed.json`, rank the kernels by total time. Flag every " + "kernel with high std/mean (bimodal_suspect=true) — these are " + "candidates for 'one kernel name, multiple call sites with different " + "shapes'. For each flagged kernel, also note the histogram shape." + ), + "source_mapper": ( + "You are the **source mapper**. For each kernel name in the trace, " + "look up the corresponding source-level operator call sites in the " + "Step 1 memory file. When a kernel name appears at MULTIPLE call " + "sites, enumerate every one. When you cannot confidently map a " + "kernel name, say so explicitly rather than guessing." + ), + "tp_shape_analyst": ( + "You are the **TP / shape analyst**. For each kernel call site, " + "derive the ACTUAL tensor shapes that hit the GPU, given the CLI " + "args (especially TP rank + world size). Pay special attention to: " + "(a) weights that participate in TP sharding (column-parallel / " + "row-parallel), (b) batch and seq-len dims (these are dynamic — " + "use symbolic names like B, M). Flag any case where the same kernel " + "name is invoked at different shapes across call sites." + ), +} + + +def step2_agent_prompt( + *, + role: str, + form: Dict[str, Any], + workdir: Path, + trace_parsed_path: Path, + step1_memory_path: Path, +) -> str: + instructions = _STEP2_ROLE_INSTRUCTIONS.get(role) + if instructions is None: + raise ValueError(f"unknown step-2 role {role!r}") + return f"""{_readonly_block(form)}# Your role +{instructions} + +# Inputs available to you +- Your workdir (write your report here as `report.md`): {workdir} +- Deterministic trace parse output (READ THIS, not the raw trace): {trace_parsed_path} +- Step 1 consolidated memory: {step1_memory_path} +- Framework source dir (read-only): {form.get("framework_source_dir")!s} +- Model dir (read-only): {form.get("model_dir")!s} +- Form fields: +{_render_form_summary(form)} + +# Output +Write your findings to `{workdir / "report.md"}`. Be exhaustive about evidence +(file:line refs, exact numbers from trace_parsed.json). End with a +`## Confidence` section. +""" + + +def step2_synthesis_prompt( + *, + form: Dict[str, Any], + reports: Dict[str, Path], + out_path: Path, +) -> str: + reports_block = "\n\n".join( + f"## Report from `{role}` ({path})" + for role, path in reports.items() + ) + return f"""{_readonly_block(form)}# Your role +You are the **synthesizer** for Step 2. Three independent analysts examined +the trace_parsed.json from different angles: statistics, source mapping, and +TP-aware shape derivation. Cross-validate their reports against the trace +data and the Step 1 memory. + +# Reports to read +{reports_block} + +# Required output → write to `{out_path}` + +## Kernel statistics ranking +Markdown table sorted by total_us descending. Columns: +`Rank | Kernel name | Cat | Count | Mean us | Std us | Total us | P99 us | Bimodal?` + +## Source mapping table +Markdown table. Columns: +`Kernel name | Call site (file:line symbol) | Shape on this call site | Mean us at this call site` + +## Disambiguated multi-call-site kernels +For each kernel name that appears at >1 call site (or with >1 distinct shape), +list the call sites and the per-call-site stats. This is the critical output +that prevents Step 3 from conflating kernels of the same name. + +## CUDA graph + CPU-stack notes +What the trace_parsed.json flags say, and what that means for confidence in +per-call-site attribution. (CUDA Graph capture often collapses per-launch +attribution; CPU stack presence enables much better attribution.) + +## Open uncertainties +""" + + +# --------------------------------------------------------------------------- # +# Step 3a — graph build +# --------------------------------------------------------------------------- # + + +def step3_build_prompt( + *, + form: Dict[str, Any], + workdir: Path, + step1_memory_path: Path, + step2_memory_path: Path, + out_graph_path: Path, +) -> str: + return f"""{_readonly_block(form)}# Your role +You are the **execution-flow graph builder**. Read the Step 1 and Step 2 +memory files and emit a single JSON file representing the inference pass as a +directed acyclic graph of computational steps. This is conceptually what an +AI compiler does — but you're doing it by reading source + logs + trace. + +# Inputs available to you +- Your workdir: {workdir} +- Step 1 consolidated memory: {step1_memory_path} +- Step 2 consolidated memory: {step2_memory_path} +- Framework source dir (read-only): {form.get("framework_source_dir")!s} +- Model dir (read-only): {form.get("model_dir")!s} +- Form fields: +{_render_form_summary(form)} + +# Output → write to `{out_graph_path}` +A single JSON object with EXACTLY this shape (see schema below). Set +`schema_version: 1`. Use one node per distinct (operator, call_site, +shape_signature) — Step 2's disambiguation work tells you when the same kernel +name needs to be split into multiple nodes. + +```json +{{ + "schema_version": 1, + "metadata": {{ + "task_id": "...", + "model": "...", + "tp_size": , + "vars": {{"B": "batch", "M": "seq_len", "...": "..."}} + }}, + "nodes": [ + {{ + "id": "n01", + "role": "", + "operator": "", + "source_ref": {{"file": "", "line": , "symbol": ""}}, + "inputs": [{{"name": "x", "dtype": "fp16", "shape": ["B", "M", 4096]}}], + "outputs": [{{"name": "y", "dtype": "fp16", "shape": ["B", "M", 4096]}}], + "stats": {{ + "count": , "mean_us": , "std_us": , + "total_us": , "p99_us": + }}, + "confidence": "high" + }} + ], + "edges": [{{"from": "n01", "to": "n02", "label": "y"}}] +}} +``` + +# Rules (very important) +1. **Shape variables**: declare every dynamic dim in `metadata.vars` (keys are + short uppercase names like `B`, `M`, `H`, `D`; values are human descriptions). + Reference them consistently everywhere — never use a literal where a + variable is meant. +2. **TP sharding**: when a weight is TP-sharded, the per-rank shape becomes + e.g. `[out_features/tp_size, in_features]`. Reflect this in the node's + input/output tensors. +3. **Entry/exit nodes**: tag the first node of the forward pass with + `role: "entry"` and the last with `role: "exit"` so the integrity check + doesn't flag them as isolated. +4. **Disambiguated kernels**: if Step 2's "Disambiguated multi-call-site + kernels" section lists the same kernel name at multiple call sites with + different shapes, emit SEPARATE nodes (one per call site). +5. **Stats**: copy mean_us / count / std_us / total_us / p99_us verbatim from + the Step 2 source-mapping table for THIS call site. Don't blend across + call sites. +6. **Confidence**: set to `high` only when Step 1 + Step 2 + your source read + all agree. Use `medium` / `low` otherwise. +7. Output ONLY the JSON object — no commentary, no markdown fence. The next + step parses this file directly. +""" + + +# --------------------------------------------------------------------------- # +# Generic synthesis follow-up (re-uses step1/step2 prompts when needed) +# --------------------------------------------------------------------------- # + + +def failure_postmortem_prompt( + *, phase: str, error: str, out_path: Path +) -> str: + return f"""# Postmortem + +The find-low-hanging-kernel pipeline failed in phase `{phase}`. + +Write a concise postmortem to `{out_path}` covering: +- What the pipeline was doing when it failed +- The error message (cleaned up if it contains paths) +- One or two hypotheses for the root cause +- Suggested next steps for a re-run + +Error: +``` +{error[:2000]} +``` +""" diff --git a/metainfer/tasks/find_low_hanging_kernel/orchestrator/trace_parser.py b/metainfer/tasks/find_low_hanging_kernel/orchestrator/trace_parser.py new file mode 100644 index 00000000..0ccd7ded --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/orchestrator/trace_parser.py @@ -0,0 +1,310 @@ +"""Deterministic Chrome tracing parser (Step 2a). + +This module is the **only** code that reads the raw trace file. Analysis agents +read its output (`trace_parsed.json`) instead — per the task spec, agents must +not be fed the raw (potentially huge) trace. + +Supports: +- ``.json`` and ``.json.gz`` transparently +- Standard Chrome trace event format: ``{"traceEvents": [...]}`` or a bare list +- Complete events (``ph == "X"``) and begin/end event pairs (``B``/``E``) +- Per-``(name, cat)`` aggregation: count, mean, std, min, max, percentiles, + total, histogram, and the set of (pid, tid) pairs observed +- Flow events (``ph == f``/``s``/``t``) capture for CPU↔GPU correlation +- Heuristic detection of CUDA Graph capture and CPU-stack presence + +Output schema is documented in :func:`parse_trace`. +""" + +from __future__ import annotations + +import gzip +import json +import math +import statistics +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Dict, List, Optional, Tuple + + +# Fixed histogram buckets in microseconds (log10-spaced). Coarse on purpose: +# the goal is to let the analyst spot bimodal distributions, not to be a +# precise density estimator. +_HIST_EDGES_US: Tuple[float, ...] = ( + 0.0, 1.0, 2.0, 5.0, 10.0, 20.0, 50.0, 100.0, 200.0, 500.0, + 1_000.0, 2_000.0, 5_000.0, 10_000.0, 20_000.0, 50_000.0, + 100_000.0, math.inf, +) + +_HIST_LABELS: Tuple[str, ...] = ( + "<1us", "1-2us", "2-5us", "5-10us", "10-20us", "20-50us", + "50-100us", "100-200us", "200-500us", "0.5-1ms", "1-2ms", + "2-5ms", "5-10ms", "10-20ms", "20-50ms", "50-100ms", ">100ms", +) + +# Cats we treat as GPU/kernel work for the "GPU summary" block. +_GPU_CATS = {"kernel", "gpu", "cuda", "cuda_runtime", "cuda_meta", "runtime"} +# Cats that indicate CPU-side call-stack events. +_CPU_CATS = {"cpu", "python", "python.function", "C++", "ftrace"} +# Markers that hint at CUDA Graph capture vs replay. +_GRAPH_NAME_HINTS = ("cuda_graph", "cudagraph", "graph_replay", "graph capture") + + +@dataclass +class _Agg: + name: str + cat: str + durs: List[float] = field(default_factory=list) + pids: set = field(default_factory=set) + tids: set = field(default_factory=set) + args_examples: List[Dict[str, Any]] = field(default_factory=list) + + +def _open_trace(path: Path): + """Open .json or .json.gz transparently, returning a text stream.""" + p = Path(path) + if str(p).endswith(".gz"): + return gzip.open(p, "rt", encoding="utf-8") + return open(p, "r", encoding="utf-8") + + +def _load_events(path: Path) -> List[Dict[str, Any]]: + """Load trace events from a Chrome trace file. Accepts either a bare + list or ``{"traceEvents": [...], ...}``.""" + with _open_trace(path) as f: + raw = json.load(f) + if isinstance(raw, list): + return raw + if isinstance(raw, dict): + evts = raw.get("traceEvents") + if isinstance(evts, list): + return evts + raise ValueError( + f"unrecognized trace format in {path}: " + f"expected list or {{'traceEvents': [...]}}, got {type(raw).__name__}" + ) + + +def _bucketize(durs: List[float]) -> List[Dict[str, Any]]: + counts = [0] * (len(_HIST_EDGES_US) - 1) + for d in durs: + for i in range(len(_HIST_EDGES_US) - 1): + if _HIST_EDGES_US[i] <= d < _HIST_EDGES_US[i + 1]: + counts[i] += 1 + break + return [{"label": _HIST_LABELS[i], "count": counts[i]} for i in range(len(counts))] + + +def _percentile(sorted_durs: List[float], p: float) -> Optional[float]: + if not sorted_durs: + return None + if len(sorted_durs) == 1: + return sorted_durs[0] + k = (len(sorted_durs) - 1) * p + f = math.floor(k) + c = math.ceil(k) + if f == c: + return sorted_durs[int(k)] + d0 = sorted_durs[f] * (c - k) + d1 = sorted_durs[c] * (k - f) + return d0 + d1 + + +def _finalize_agg(agg: _Agg) -> Dict[str, Any]: + durs = agg.durs + n = len(durs) + if n == 0: + return {} + sorted_durs = sorted(durs) + total = sum(durs) + mean = total / n + std = statistics.pstdev(durs) if n > 1 else 0.0 + # Bimodal flag: high coefficient of variation OR a large max/min ratio + # (a single kernel name with very different per-call durations is a + # strong signal that one name is invoked from multiple call sites with + # different shapes — a key disambiguation target for Step 2). + cv = (std / mean) if mean > 0 else 0.0 + max_min_ratio = ( + (sorted_durs[-1] / sorted_durs[0]) + if sorted_durs[0] > 0 else 0.0 + ) + bimodal = (cv > 0.5) or (max_min_ratio > 3.0 and n >= 2) + return { + "name": agg.name, + "cat": agg.cat, + "count": n, + "total_us": round(total, 2), + "mean_us": round(mean, 2), + "std_us": round(std, 2), + "min_us": round(sorted_durs[0], 2), + "max_us": round(sorted_durs[-1], 2), + "p50_us": round(_percentile(sorted_durs, 0.50) or 0.0, 2), + "p95_us": round(_percentile(sorted_durs, 0.95) or 0.0, 2), + "p99_us": round(_percentile(sorted_durs, 0.99) or 0.0, 2), + "histogram": _bucketize(durs), + "pids": sorted(str(p) for p in agg.pids), + "tids": sorted(str(t) for t in agg.tids), + "args_examples": agg.args_examples[:3], + "bimodal_suspect": bimodal, + } + + +def _looks_like_cuda_graph(events: List[Dict[str, Any]]) -> bool: + """Heuristic: do we see events whose name or cat matches CUDA-graph + patterns? Triggers the "trace may undercount individual kernel launches + because they were captured" warning in the synthesis.""" + sample = events[:5000] if len(events) > 5000 else events + for e in sample: + cat = str(e.get("cat", "")).lower() + name = str(e.get("name", "")).lower() + if any(h in cat for h in _GRAPH_NAME_HINTS): + return True + if any(h in name for h in _GRAPH_NAME_HINTS): + return True + args = e.get("args") or {} + if isinstance(args, dict): + for k in args: + if any(h in str(k).lower() for h in _GRAPH_NAME_HINTS): + return True + return False + + +def _has_cpu_stack(events: List[Dict[str, Any]]) -> bool: + sample = events[:5000] if len(events) > 5000 else events + for e in sample: + cat = str(e.get("cat", "")).lower() + if cat in _CPU_CATEGORIES or cat in _CPU_CATS: + return True + return False + + +# Add a few more aliases seen in the wild (pytorch profiler, rocm). +_CPU_CATEGORIES = { + "cpu", "python", "python_function", "python.function", + "c++", "ftrace", "user_annotation", "function", +} + + +def parse_trace(path: Path) -> Dict[str, Any]: + """Parse a Chrome trace file and return the aggregated summary. + + Returns a dict with the following structure:: + + { + "source": str, # filename of the trace + "event_count": int, # total events seen + "has_cpu_stack": bool, # whether CPU-side stack was captured + "cuda_graph_detected": bool, # heuristic CUDA-graph marker + "cats_present": [str, ...], # distinct categories observed + "by_name_cat": [ # one entry per (name, cat) + {"name": ..., "cat": ..., "count": ..., "mean_us": ..., + "std_us": ..., "min_us": ..., "max_us": ..., + "p50_us": ..., "p95_us": ..., "p99_us": ..., + "total_us": ..., "histogram": [...], + "pids": [...], "tids": [...], "args_examples": [...], + "bimodal_suspect": bool}, + ... + ], + "flow_events": [ # CPU↔GPU correlation events + {"name": ..., "cat": ..., "ph": ..., "pid": ..., "tid": ..., "ts": ...}, + ... + ], + } + + Entries in ``by_name_cat`` are sorted by ``total_us`` descending so the + top entries are the biggest optimization targets. + """ + path = Path(path) + events = _load_events(path) + + # Aggregate per (name, cat). Begin/end events (B/E) need pairing by tid. + aggs: Dict[Tuple[str, str], _Agg] = {} + open_be: Dict[Tuple[Any, Any, str, str], float] = {} # (pid,tid,name,cat) -> ts + flow_events: List[Dict[str, Any]] = [] + cats_present: set = set() + + for e in events: + ph = e.get("ph") + name = e.get("name", "") + cat = e.get("cat", "") + if cat: + cats_present.add(str(cat)) + + # Flow events for correlation + if ph in ("f", "s", "t"): + flow_events.append({ + "name": str(name), "cat": str(cat), "ph": str(ph), + "pid": e.get("pid"), "tid": e.get("tid"), "ts": e.get("ts"), + }) + continue + + # Complete events with dur + if ph == "X": + dur_us = e.get("dur") + if dur_us is None or not isinstance(dur_us, (int, float)): + continue + if not name or not cat: + continue + key = (str(name), str(cat)) + agg = aggs.setdefault(key, _Agg(name=str(name), cat=str(cat))) + agg.durs.append(float(dur_us)) + if "pid" in e: + agg.pids.add(e.get("pid")) + if "tid" in e: + agg.tids.add(e.get("tid")) + args = e.get("args") + if isinstance(args, dict) and args and len(agg.args_examples) < 3: + agg.args_examples.append(args) + continue + + # Begin/end pairing + if ph == "B": + if "pid" in e and "tid" in e and "ts" in e: + be_key = (e.get("pid"), e.get("tid"), str(name), str(cat)) + open_be[be_key] = float(e.get("ts")) + elif ph == "E": + if "pid" in e and "tid" in e and "ts" in e: + be_key = (e.get("pid"), e.get("tid"), str(name), str(cat)) + start = open_be.pop(be_key, None) + if start is None: + continue + dur_us = float(e.get("ts")) - start + if dur_us < 0 or not name or not cat: + continue + key = (str(name), str(cat)) + agg = aggs.setdefault(key, _Agg(name=str(name), cat=str(cat))) + agg.durs.append(dur_us) + agg.pids.add(e.get("pid")) + agg.tids.add(e.get("tid")) + args = e.get("args") + if isinstance(args, dict) and args and len(agg.args_examples) < 3: + agg.args_examples.append(args) + + by_name_cat: List[Dict[str, Any]] = [] + for agg in aggs.values(): + if not agg.durs: + continue + finalized = _finalize_agg(agg) + if finalized: + by_name_cat.append(finalized) + by_name_cat.sort(key=lambda r: r.get("total_us", 0), reverse=True) + + return { + "source": path.name, + "event_count": len(events), + "has_cpu_stack": _has_cpu_stack(events), + "cuda_graph_detected": _looks_like_cuda_graph(events), + "cats_present": sorted(cats_present), + "by_name_cat": by_name_cat, + "flow_events": flow_events[:200], # cap; agents don't need millions + } + + +def write_summary(path: Path, out_path: Path) -> Dict[str, Any]: + """Parse ``path`` and write the summary to ``out_path``. Returns the + summary dict as well so callers can use it in-process.""" + summary = parse_trace(path) + out_path = Path(out_path) + out_path.parent.mkdir(parents=True, exist_ok=True) + out_path.write_text(json.dumps(summary, indent=2), encoding="utf-8") + return summary diff --git a/metainfer/tasks/find_low_hanging_kernel/orchestrator/visualizer.py b/metainfer/tasks/find_low_hanging_kernel/orchestrator/visualizer.py new file mode 100644 index 00000000..583cb799 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/orchestrator/visualizer.py @@ -0,0 +1,88 @@ +"""Deterministic visualizer (Step 4). + +Reads the validated ``flow_graph.json`` and substitutes it into the standalone +``flow_graph_template.html`` (which inlines ELK.js + the client-side renderer) +to produce a self-contained ``flow_graph.html`` that works via ``file://``. + +The template lives at ``static/flow_graph_template.html`` and contains the +literal placeholder ``/*__FLOW_GRAPH_JSON__*/`` where the graph JSON is +substituted. +""" + +from __future__ import annotations + +import json +from pathlib import Path +from typing import Any, Dict + + +PLACEHOLDER_GRAPH = "/*__FLOW_GRAPH_JSON__*/" +PLACEHOLDER_ELK = "/*__ELK_BUNDLE__*/" + + +def _static_dir() -> Path: + return Path(__file__).resolve().parent.parent / "static" + + +def render_html( + graph: Dict[str, Any], + *, + out_path: Path, + template_path: Path | None = None, + elk_bundle_path: Path | None = None, +) -> Path: + """Substitute ``graph`` + the ELK bundle into the template and write the + result to ``out_path``. The output is fully self-contained — it works via + ``file://``. Returns ``out_path``.""" + if template_path is None: + template_path = _static_dir() / "flow_graph_template.html" + if elk_bundle_path is None: + elk_bundle_path = _static_dir() / "vendor" / "elk.bundled.js" + template = template_path.read_text(encoding="utf-8") + if PLACEHOLDER_GRAPH not in template: + raise ValueError( + f"template {template_path} is missing the {PLACEHOLDER_GRAPH!r} placeholder" + ) + if PLACEHOLDER_ELK not in template: + raise ValueError( + f"template {template_path} is missing the {PLACEHOLDER_ELK!r} placeholder" + ) + + # Inline the ELK bundle as a JS blob. + elk_js = elk_bundle_path.read_text(encoding="utf-8") + html = template.replace(PLACEHOLDER_ELK, elk_js) + + graph_json = json.dumps(graph, indent=2, ensure_ascii=False) + # Embed as a JSON island that the renderer reads via document.getElementById. + replacement = ( + '" + ) + html = html.replace(PLACEHOLDER_GRAPH, replacement) + + out_path = Path(out_path) + out_path.parent.mkdir(parents=True, exist_ok=True) + out_path.write_text(html, encoding="utf-8") + return out_path + + +def render_from_files( + *, + graph_path: Path, + out_html_path: Path, + template_path: Path | None = None, +) -> Path: + """Convenience: read ``graph_path`` and render to ``out_html_path``.""" + graph = json.loads(Path(graph_path).read_text(encoding="utf-8")) + return render_html(graph, out_path=out_html_path, template_path=template_path) + + +def write_graph_json(graph: Dict[str, Any], *, out_path: Path) -> Path: + """Write the validated graph as flow_graph.json (auditable artifact).""" + out_path = Path(out_path) + out_path.parent.mkdir(parents=True, exist_ok=True) + out_path.write_text( + json.dumps(graph, indent=2, ensure_ascii=False), encoding="utf-8" + ) + return out_path diff --git a/metainfer/tasks/find_low_hanging_kernel/server/__init__.py b/metainfer/tasks/find_low_hanging_kernel/server/__init__.py new file mode 100644 index 00000000..ecad7807 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/server/__init__.py @@ -0,0 +1 @@ +"""WebPlugin package for find-low-hanging-kernel.""" diff --git a/metainfer/tasks/find_low_hanging_kernel/server/_qa.py b/metainfer/tasks/find_low_hanging_kernel/server/_qa.py new file mode 100644 index 00000000..af581e88 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/server/_qa.py @@ -0,0 +1,79 @@ +"""QA config for find-low-hanging-kernel. + +Targets are addressed by (step, agent) tuples so the analyst can review any +of the analysis agents that ran during Step 1 / Step 2, or any of the 5 +validation pool workers in Step 3. +""" + +from __future__ import annotations + +from pathlib import Path +from typing import Any, Dict, Optional + +from metainfer.server._helpers import find_events_file + +PLUGIN_TYPE = "find-low-hanging-kernel" + + +class FlhkQAConfig: + def resolve_target( + self, state_dir: Path, payload: Dict[str, Any], + ) -> Dict[str, Any]: + events_file_str = (payload.get("events_file") or "").strip() + if events_file_str: + return { + "events_file": Path(events_file_str), + "target_workdir": ( + Path(payload["target_workdir"]) + if payload.get("target_workdir") + else None + ), + "target_label": ( + payload.get("target_label") + or f"events_file={Path(events_file_str).name}" + ), + } + + step = payload.get("step") + agent = payload.get("agent") + if step is not None and agent is not None: + ef = _resolve_events_file(state_dir, str(step), str(agent)) + return { + "events_file": ef, + "target_workdir": None, + "target_label": f"step={step} agent={agent}", + } + + raise ValueError( + "payload must contain either events_file, or (step, agent)" + ) + + +def _resolve_events_file(state_dir: Path, step: str, agent: str) -> Path: + """Search a few common layouts for the agent's events.jsonl.""" + candidates = [ + state_dir / "logs" / step / agent, + state_dir / "logs" / step / "pool" / agent, + state_dir / step / agent, + ] + ef: Optional[Path] = find_events_file(candidates[0]) + if ef is not None: + return ef + # Fall back to globbing under the most likely root. + for root in candidates[1:]: + if root.exists(): + hits = sorted(root.rglob(f"{agent}.attempt*.events.jsonl")) + if hits: + return hits[0] + # Final fallback: glob the whole logs/ tree. + glob_root = state_dir / "logs" + if glob_root.exists(): + hits = sorted(glob_root.rglob(f"{agent}.attempt*.events.jsonl")) + if hits: + return hits[0] + raise FileNotFoundError( + f"no events.jsonl for agent {agent!r} (step={step!r}) under {state_dir}" + ) + + +CONFIG = FlhkQAConfig() diff --git a/metainfer/tasks/find_low_hanging_kernel/server/_state_readers.py b/metainfer/tasks/find_low_hanging_kernel/server/_state_readers.py new file mode 100644 index 00000000..5002b773 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/server/_state_readers.py @@ -0,0 +1,82 @@ +"""State-dir readers for find-low-hanging-kernel.""" + +from __future__ import annotations + +import json +from pathlib import Path +from typing import Any, Dict, List, Optional + +from ..orchestrator import phases as _phases + + +def _load_json(path: Path, default: Any) -> Any: + if not path.exists(): + return default + try: + return json.loads(path.read_text(encoding="utf-8")) + except (ValueError, OSError): + return default + + +def _read_run(state_dir: Path) -> Dict[str, Any]: + return _load_json(state_dir / "run.json", {}) or {} + + +def read_iterations(state_dir: Path) -> List[Dict[str, Any]]: + iters_dir = state_dir / "iterations" + if not iters_dir.exists(): + return [] + out: List[Dict[str, Any]] = [] + for p in sorted(iters_dir.glob("*.json")): + data = _load_json(p, None) + if data is not None: + out.append(data) + return out + + +def read_iteration(state_dir: Path, n: int) -> Optional[Dict[str, Any]]: + return _load_json(state_dir / "iterations" / f"{n:03d}.json", None) + + +def read_state_graph(state_dir: Path) -> Dict[str, Any]: + run = _read_run(state_dir) + current = run.get("current_phase", "idle") + last_outcome = run.get("last_outcome") + last_label = run.get("last_transition_label") + if hasattr(_phases, "graph_payload"): + return _phases.graph_payload(current, last_outcome, last_label) + return {"error": "phases module does not export graph_payload()"} + + +def read_flow_graph(workspace_dir: Path) -> Dict[str, Any]: + """Load the validated flow_graph.json, or return a stub.""" + fg = workspace_dir / "flow_graph.json" + data = _load_json(fg, None) + if data is None: + return {"ready": False, "reason": "flow_graph.json not written yet"} + return {"ready": True, "graph": data} + + +def read_trace_summary(workspace_dir: Path) -> Dict[str, Any]: + tp = workspace_dir / "trace_parsed.json" + data = _load_json(tp, None) + if data is None: + return {"ready": False} + return {"ready": True, "summary": data} + + +def read_memory_markdown(workspace_dir: Path, step: str) -> Dict[str, Any]: + """Read a memory/*.md file for in-browser audit. + + `step` is one of: step1_code_analysis, step2_tracing_analysis, + validation_warnings. + """ + safe_name = Path(step).name + p = workspace_dir / "memory" / f"{safe_name}.md" + if not p.is_file(): + return {"ready": False, "markdown": "", "path": str(p)} + try: + text = p.read_text(encoding="utf-8", errors="replace") + except OSError: + return {"ready": False, "markdown": "", "path": str(p)} + return {"ready": True, "markdown": text, "path": str(p)} diff --git a/metainfer/tasks/find_low_hanging_kernel/server/plugin.py b/metainfer/tasks/find_low_hanging_kernel/server/plugin.py new file mode 100644 index 00000000..7ef6c7a0 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/server/plugin.py @@ -0,0 +1,28 @@ +"""WebPlugin registration for find-low-hanging-kernel.""" + +from pathlib import Path + +from metainfer.server.registry import WebPlugin, register + +from ._qa import CONFIG as _QA_CONFIG +from .routes import build_router + +PLUGIN_TYPE = "find-low-hanging-kernel" + +plugin = WebPlugin( + type=PLUGIN_TYPE, + label="Find Low-Hanging Kernel", + description=( + "Analyze a Chrome trace + model directory + inference framework source " + "to build an auditable execution-flow graph and identify the kernels " + "with the most optimization headroom." + ), + detail_view_module="app/flhk-detail", + qa_config=_QA_CONFIG, + build_router=build_router, + frontend_dir=Path(__file__).resolve().parent.parent / "static", + importmap_entries={}, + extra_stylesheets=["flhk.css"], +) + +register(plugin) diff --git a/metainfer/tasks/find_low_hanging_kernel/server/routes.py b/metainfer/tasks/find_low_hanging_kernel/server/routes.py new file mode 100644 index 00000000..107cedf5 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/server/routes.py @@ -0,0 +1,121 @@ +"""FastAPI router for find-low-hanging-kernel. + +Endpoints (all relative to the shell mount ``/api/find-low-hanging-kernel/{task_id}``): + + GET /iterations — list iteration records + GET /iterations/{n} — single iteration record + GET /state-graph — phase state graph payload + GET /flow-graph — validated flow_graph.json + GET /trace-parsed — deterministic parser output + GET /memory/{step} — step memory markdown (step1_code_analysis, + step2_tracing_analysis, validation_warnings) + GET /visualization — standalone flow_graph.html (text/html) + GET /workspace-file/{name} — download flow_graph.html / flow_graph.json + /qa/* — generic QA routes +""" + +from __future__ import annotations + +from pathlib import Path +from typing import Any, Dict + +from fastapi import APIRouter, HTTPException +from fastapi.responses import FileResponse, HTMLResponse, PlainTextResponse + +from metainfer.server._helpers import ( + require_task_type, + state_dir_for, + task_or_404, + workspace_dir_for, +) +from metainfer.server.qa_routes import register_qa_routes + +from . import _state_readers + +PLUGIN_TYPE = "find-low-hanging-kernel" + +_MEM_ALLOWED_STEPS = { + "step1_code_analysis", + "step2_tracing_analysis", + "validation_warnings", +} + + +def build_router(plugin) -> APIRouter: + router = APIRouter() + + @router.get("/iterations") + def flhk_iterations(task_id: str) -> list: + entry = task_or_404(task_id) + require_task_type(entry, PLUGIN_TYPE) + return _state_readers.read_iterations(state_dir_for(entry)) + + @router.get("/iterations/{n}") + def flhk_iteration_detail(task_id: str, n: int) -> Dict[str, Any]: + entry = task_or_404(task_id) + require_task_type(entry, PLUGIN_TYPE) + rec = _state_readers.read_iteration(state_dir_for(entry), n) + if rec is None: + raise HTTPException(404, f"no iteration {n} for task {task_id}") + return rec + + @router.get("/state-graph") + def flhk_state_graph(task_id: str) -> Dict[str, Any]: + entry = task_or_404(task_id) + require_task_type(entry, PLUGIN_TYPE) + return _state_readers.read_state_graph(state_dir_for(entry)) + + @router.get("/flow-graph") + def flhk_flow_graph(task_id: str) -> Dict[str, Any]: + entry = task_or_404(task_id) + require_task_type(entry, PLUGIN_TYPE) + return _state_readers.read_flow_graph(workspace_dir_for(entry)) + + @router.get("/trace-parsed") + def flhk_trace_parsed(task_id: str) -> Dict[str, Any]: + entry = task_or_404(task_id) + require_task_type(entry, PLUGIN_TYPE) + return _state_readers.read_trace_summary(workspace_dir_for(entry)) + + @router.get("/memory/{step}") + def flhk_memory(task_id: str, step: str) -> Dict[str, Any]: + entry = task_or_404(task_id) + require_task_type(entry, PLUGIN_TYPE) + if step not in _MEM_ALLOWED_STEPS: + raise HTTPException( + 400, f"unknown step {step!r}; expected one of {sorted(_MEM_ALLOWED_STEPS)}" + ) + return _state_readers.read_memory_markdown(workspace_dir_for(entry), step) + + @router.get("/visualization", response_class=HTMLResponse) + def flhk_visualization(task_id: str): + entry = task_or_404(task_id) + require_task_type(entry, PLUGIN_TYPE) + html_path = workspace_dir_for(entry) / "flow_graph.html" + if not html_path.is_file(): + raise HTTPException(404, "visualization not ready yet (Step 4 not complete)") + return HTMLResponse(content=html_path.read_text(encoding="utf-8")) + + @router.get("/workspace-file/{name}") + def flhk_workspace_file(task_id: str, name: str): + entry = task_or_404(task_id) + require_task_type(entry, PLUGIN_TYPE) + # Only allow downloading the two canonical artifacts (defensive + # path-traversal guard — name is a single segment). + allowed = { + "flow_graph.html": "text/html", + "flow_graph.json": "application/json", + "trace_parsed.json": "application/json", + } + if name not in allowed: + raise HTTPException(400, f"unknown workspace file {name!r}") + p = workspace_dir_for(entry) / name + if not p.is_file(): + raise HTTPException(404, f"{name} not written yet") + return PlainTextResponse( + content=p.read_text(encoding="utf-8"), + media_type=allowed[name], + ) + + register_qa_routes(router, plugin, prefix="/qa") + return router diff --git a/metainfer/tasks/find_low_hanging_kernel/static/flhk-detail.js b/metainfer/tasks/find_low_hanging_kernel/static/flhk-detail.js new file mode 100644 index 00000000..8efbd59f --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/static/flhk-detail.js @@ -0,0 +1,260 @@ +// find-low-hanging-kernel task detail body. +// +// Tabs: +// - overview : phase state graph + iterations table + phase description +// - memory : step1_code_analysis / step2_tracing_analysis markdown +// - graph : iframe pointing at /visualization (self-contained ELK + SVG) +// - trace : summary of trace_parsed.json +// - runtime : agents panel + timeline (shell-shared) +// +// Shell passes {run, timeline, agents, loadState, lastErr} via the `data` prop. + +import { html } from "htm/preact"; +import { useCallback, useEffect, useState } from "preact/hooks"; +import { AgentsPanel } from "app/agents-panel"; +import { Timeline } from "app/timeline"; + +const PLUGIN_TYPE = "find-low-hanging-kernel"; + +const TABS = [ + { id: "overview", label: "概览" }, + { id: "memory", label: "记忆文件" }, + { id: "graph", label: "流程图" }, + { id: "trace", label: "Trace 解析" }, + { id: "runtime", label: "运行状态" }, +]; + +const withTimeout = (p, ms = 8000) => + Promise.race([ + p, + new Promise((_, rej) => setTimeout(() => rej(new Error("timeout")), ms)), + ]); + +async function getJson(url) { + const r = await fetch(url, { cache: "no-store" }); + if (!r.ok) throw new Error(`${url}: ${r.status}`); + return r.json(); +} + +function useRuntimeData(taskId) { + const [data, setData] = useState({ + iterations: [], stateGraph: null, flowGraph: null, trace: null, + }); + const refresh = useCallback(async () => { + if (!taskId) return; + const base = `/api/${PLUGIN_TYPE}/${encodeURIComponent(taskId)}`; + const [it, sg, fg, tp] = await Promise.all([ + withTimeout(getJson(`${base}/iterations`).catch((e) => { console.warn("iterations:", e); return []; })), + withTimeout(getJson(`${base}/state-graph`).catch(() => null)), + withTimeout(getJson(`${base}/flow-graph`).catch(() => null)), + withTimeout(getJson(`${base}/trace-parsed`).catch(() => null)), + ]); + setData({ + iterations: it || [], + stateGraph: sg, + flowGraph: fg, + trace: tp, + }); + }, [taskId]); + useEffect(() => { refresh(); }, [refresh]); + useEffect(() => { + if (!taskId) return; + const id = setInterval(refresh, 5000); + return () => clearInterval(id); + }, [taskId, refresh]); + return { ...data, refresh }; +} + +function useMemoryFile(taskId, step) { + const [md, setMd] = useState({ ready: false, markdown: "" }); + useEffect(() => { + if (!taskId || !step) return; + const base = `/api/${PLUGIN_TYPE}/${encodeURIComponent(taskId)}`; + getJson(`${base}/memory/${step}`) + .then(setMd) + .catch(() => setMd({ ready: false, markdown: "" })); + }, [taskId, step]); + return md; +} + +function PhaseGraph({ graph }) { + if (!graph) return html`
等待 state-graph 数据…
`; + const nodes = graph.nodes || []; + const edges = graph.edges || []; + const active = graph.active_edge || null; + const current = graph.current || "idle"; + // Render as a simple list with edges (the heavy graph view is on the + // "流程图" tab via ELK). Keep this tab lightweight. + return html` +
+
+ ${nodes.map((n) => html` + + ${n.label} + + `)} +
+
    + ${edges.map((e) => html` +
  • + ${e.from}${e.to} ${e.label} +
  • + `)} +
+
+ `; +} + +function IterationsTable({ iterations }) { + if (!iterations || !iterations.length) { + return html`
尚无校验轮次记录。
`; + } + return html` + + + + + + ${iterations.map((it) => html` + + + + + + + + `)} + +
RoundStatusOutcomeIntegrity fixesIssues
${it.round || it.iteration}${it.status}${it.outcome || "—"}${(it.integrity_fixes || []).length}${(it.semantic_issues || []).length}
+ `; +} + +function MemoryPanel({ taskId }) { + const [step, setStep] = useState("step1_code_analysis"); + const md = useMemoryFile(taskId, step); + return html` +
+
+ ${["step1_code_analysis", "step2_tracing_analysis", "validation_warnings"].map((s) => html` + + `)} +
+
${md.ready ? md.markdown : "(尚未生成)"}
+
+ `; +} + +function GraphPanel({ taskId, flowGraph }) { + if (!taskId) return null; + const src = `/api/${PLUGIN_TYPE}/${encodeURIComponent(taskId)}/visualization`; + const ready = flowGraph && flowGraph.ready; + return html` +
+
+ 在新窗口打开 + ${ready ? "图已生成" : "等待 Step 4 完成…"} +
+ ${ready + ? html`` + : html`
visualization 尚未就绪。
`} +
+ `; +} + +function TracePanel({ trace }) { + if (!trace || !trace.ready) { + return html`
等待 trace_parsed.json …
`; + } + const s = trace.summary || {}; + const rows = (s.by_name_cat || []).slice(0, 30); + return html` +
+
+ file: ${s.source || "?"} + events: ${s.event_count || 0} + CPU stack: ${s.has_cpu_stack ? "yes" : "no"} + CUDA Graph: ${s.cuda_graph_detected ? "detected" : "n/a"} +
+ + + + + + + + + + ${rows.map((r, i) => html` + + + + + + + + + + + `)} + +
KernelCatCountμ (us)σ (us)total (us)p99 (us)bimodal?
${r.name}${r.cat}${r.count}${r.mean_us}${r.std_us}${r.total_us}${r.p99_us}${r.bimodal_suspect ? "⚠" : ""}
+
+ `; +} + +export default function FlhkDetailView({ taskId, run, status, data }) { + const [activeTab, setActiveTab] = useState("overview"); + const phase = run?.current_phase || "idle"; + const { timeline, agents } = data; + const rt = useRuntimeData(taskId); + + return html` +
+ + +
+ ${activeTab === "overview" && html` +
+
+

当前阶段

+

${phase}

+ <${PhaseGraph} graph=${rt.stateGraph} /> +
+
+

校验轮次

+ <${IterationsTable} iterations=${rt.iterations} /> +
+
+ `} + + ${activeTab === "memory" && html`<${MemoryPanel} taskId=${taskId} />`} + + ${activeTab === "graph" && html`<${GraphPanel} taskId=${taskId} flowGraph=${rt.flowGraph} />`} + + ${activeTab === "trace" && html`<${TracePanel} trace=${rt.trace} />`} + + ${activeTab === "runtime" && html` +
+
+

Agents

+ <${AgentsPanel} agents=${agents} /> +
+
+

Timeline

+ <${Timeline} events=${timeline} /> +
+
+ `} +
+
+ `; +} diff --git a/metainfer/tasks/find_low_hanging_kernel/static/flhk.css b/metainfer/tasks/find_low_hanging_kernel/static/flhk.css new file mode 100644 index 00000000..aab0f5ec --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/static/flhk.css @@ -0,0 +1,55 @@ +/* find-low-hanging-kernel detail view styles. */ + +.flhk-detail { display: flex; flex-direction: column; gap: 12px; padding: 12px; } +.flhk-detail .task-tabs { display: flex; gap: 6px; border-bottom: 1px solid #e5e7eb; padding-bottom: 4px; } +.flhk-detail .task-tab { background: transparent; border: none; padding: 6px 12px; cursor: pointer; font: inherit; color: #6b7280; border-radius: 4px 4px 0 0; } +.flhk-detail .task-tab.active { background: #2563eb; color: #fff; } +.flhk-detail .task-tab-body { padding: 8px 0; } +.flhk-detail .panel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } +.flhk-detail .panel { background: #fff; border: 1px solid #e5e7eb; border-radius: 6px; padding: 12px; } +.flhk-detail .panel h3 { margin: 0 0 8px; font-size: 13px; font-weight: 600; color: #1f2937; } +.flhk-detail .muted { color: #6b7280; font-size: 12px; } + +.flhk-detail .phase-graph .phase-nodes { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; } +.flhk-detail .phase-pill { + display: inline-block; padding: 2px 8px; font-size: 11px; + background: #f3f4f6; color: #1f2937; border-radius: 12px; +} +.flhk-detail .phase-pill.active { background: #2563eb; color: #fff; } +.flhk-detail .phase-edges { list-style: none; padding: 0; margin: 0; font-size: 11px; } +.flhk-detail .phase-edges li.active { color: #2563eb; font-weight: 600; } +.flhk-detail .phase-edges code { font-family: ui-monospace, monospace; } + +.flhk-detail .iter-table { width: 100%; border-collapse: collapse; font-size: 12px; } +.flhk-detail .iter-table th, .flhk-detail .iter-table td { + text-align: left; padding: 4px 8px; border-bottom: 1px solid #f3f4f6; +} +.flhk-detail .iter-table th { font-weight: 600; color: #6b7280; background: #fafafa; } +.flhk-detail .iter-table code { font-family: ui-monospace, monospace; font-size: 11px; } + +.flhk-detail .memory-panel { display: flex; flex-direction: column; gap: 8px; } +.flhk-detail .memory-tabs { display: flex; gap: 6px; } +.flhk-detail .memory-tab { + background: #fff; border: 1px solid #e5e7eb; padding: 4px 10px; + border-radius: 4px; cursor: pointer; font: inherit; font-size: 12px; +} +.flhk-detail .memory-tab.active { background: #2563eb; color: #fff; border-color: #2563eb; } +.flhk-detail .memory-md { + background: #fff; border: 1px solid #e5e7eb; border-radius: 6px; + padding: 12px; font: 12px/1.5 ui-monospace, monospace; white-space: pre-wrap; + max-height: 60vh; overflow: auto; color: #1f2937; +} + +.flhk-detail .graph-panel { display: flex; flex-direction: column; gap: 8px; } +.flhk-detail .graph-toolbar { display: flex; gap: 12px; align-items: center; } +.flhk-detail .graph-toolbar a { color: #2563eb; text-decoration: none; font-size: 12px; } +.flhk-detail .graph-toolbar a:hover { text-decoration: underline; } +.flhk-detail .graph-iframe { + width: 100%; height: 70vh; border: 1px solid #e5e7eb; border-radius: 6px; + background: #fafafa; +} + +.flhk-detail .trace-panel .trace-meta { + display: flex; gap: 12px; font-size: 12px; color: #6b7280; + margin-bottom: 8px; padding: 4px 0; +} diff --git a/metainfer/tasks/find_low_hanging_kernel/static/flow_graph_template.html b/metainfer/tasks/find_low_hanging_kernel/static/flow_graph_template.html new file mode 100644 index 00000000..86b327e6 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/static/flow_graph_template.html @@ -0,0 +1,370 @@ + + + + + +find-low-hanging-kernel · execution-flow graph + + + +
+

find-low-hanging-kernel

+ execution-flow graph + + + + + +
+
+
+
entry node   exit node
+
total_us = sum across all calls in the trace
+
+ + + + + +/*__FLOW_GRAPH_JSON__*/ + + + + diff --git a/metainfer/tasks/find_low_hanging_kernel/static/vendor/elk.bundled.js b/metainfer/tasks/find_low_hanging_kernel/static/vendor/elk.bundled.js new file mode 100644 index 00000000..5519f1ba --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/static/vendor/elk.bundled.js @@ -0,0 +1,6589 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, + defaultLayoutOptions = _ref$defaultLayoutOpt === void 0 ? {} : _ref$defaultLayoutOpt, + _ref$algorithms = _ref.algorithms, + algorithms = _ref$algorithms === void 0 ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, + workerFactory = _ref.workerFactory, + workerUrl = _ref.workerUrl; + _classCallCheck(this, ELK); + this.defaultLayoutOptions = defaultLayoutOptions; + this.initialized = false; + + // check valid worker construction possible + if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { + throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); + } + var factory = workerFactory; + if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { + // use default Web Worker + factory = function factory(url) { + return new Worker(url); + }; + } + + // create the worker + var worker = factory(workerUrl); + if (typeof worker.postMessage !== 'function') { + throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); + } + + // wrap the worker to return promises + this.worker = new PromisedWorker(worker); + + // initially register algorithms + this.worker.postMessage({ + cmd: 'register', + algorithms: algorithms + }).then(function (r) { + return _this.initialized = true; + })["catch"](console.err); + } + return _createClass(ELK, [{ + key: "layout", + value: function layout(graph) { + var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref2$layoutOptions = _ref2.layoutOptions, + layoutOptions = _ref2$layoutOptions === void 0 ? this.defaultLayoutOptions : _ref2$layoutOptions, + _ref2$logging = _ref2.logging, + logging = _ref2$logging === void 0 ? false : _ref2$logging, + _ref2$measureExecutio = _ref2.measureExecutionTime, + measureExecutionTime = _ref2$measureExecutio === void 0 ? false : _ref2$measureExecutio; + if (!graph) { + return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); + } + return this.worker.postMessage({ + cmd: 'layout', + graph: graph, + layoutOptions: layoutOptions, + options: { + logging: logging, + measureExecutionTime: measureExecutionTime + } + }); + } + }, { + key: "knownLayoutAlgorithms", + value: function knownLayoutAlgorithms() { + return this.worker.postMessage({ + cmd: 'algorithms' + }); + } + }, { + key: "knownLayoutOptions", + value: function knownLayoutOptions() { + return this.worker.postMessage({ + cmd: 'options' + }); + } + }, { + key: "knownLayoutCategories", + value: function knownLayoutCategories() { + return this.worker.postMessage({ + cmd: 'categories' + }); + } + }, { + key: "terminateWorker", + value: function terminateWorker() { + if (this.worker) this.worker.terminate(); + } + }]); +}(); +var PromisedWorker = /*#__PURE__*/function () { + function PromisedWorker(worker) { + var _this2 = this; + _classCallCheck(this, PromisedWorker); + if (worker === undefined) { + throw new Error("Missing mandatory parameter 'worker'."); + } + this.resolvers = {}; + this.worker = worker; + this.worker.onmessage = function (answer) { + // why is this necessary? + setTimeout(function () { + _this2.receive(_this2, answer); + }, 0); + }; + } + return _createClass(PromisedWorker, [{ + key: "postMessage", + value: function postMessage(msg) { + var id = this.id || 0; + this.id = id + 1; + msg.id = id; + var self = this; + return new Promise(function (resolve, reject) { + // prepare the resolver + self.resolvers[id] = function (err, res) { + if (err) { + self.convertGwtStyleError(err); + reject(err); + } else { + resolve(res); + } + }; + // post the message + self.worker.postMessage(msg); + }); + } + }, { + key: "receive", + value: function receive(self, answer) { + var json = answer.data; + var resolver = self.resolvers[json.id]; + if (resolver) { + delete self.resolvers[json.id]; + if (json.error) { + resolver(json.error); + } else { + resolver(null, json.data); + } + } + } + }, { + key: "terminate", + value: function terminate() { + if (this.worker) { + this.worker.terminate(); + } + } + }, { + key: "convertGwtStyleError", + value: function convertGwtStyleError(err) { + if (!err) { + return; + } + // Somewhat flatten the way GWT stores nested exception(s) + var javaException = err['__java$exception']; + if (javaException) { + // Note that the property name of the nested exception is different + // in the non-minified ('cause') and the minified (not deterministic) version. + // Hence, the version below only works for the non-minified version. + // However, as the minified stack trace is not of much use anyway, one + // should switch the used version for debugging in such a case. + if (javaException.cause && javaException.cause.backingJsObject) { + err.cause = javaException.cause.backingJsObject; + this.convertGwtStyleError(err.cause); + } + delete err['__java$exception']; + } + } + }]); +}(); +},{}],2:[function(require,module,exports){ +(function (global){(function (){ +'use strict'; + +// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- +var $wnd; +if (typeof window !== 'undefined') + $wnd = window +else if (typeof global !== 'undefined') + $wnd = global // nodejs +else if (typeof self !== 'undefined') + $wnd = self // web worker + +var $moduleName, + $moduleBase; + +// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- +var g, i, o; + +// -------------- GENERATED CODE -------------- +function nb(){} +function xb(){} +function Fd(){} +function Fy(){} +function fh(){} +function fq(){} +function Hq(){} +function Dl(){} +function Ns(){} +function Rw(){} +function bx(){} +function jx(){} +function kx(){} +function Vz(){} +function eA(){} +function lA(){} +function UA(){} +function XA(){} +function XB(){} +function bB(){} +function rdb(){} +function ndb(){} +function vdb(){} +function pnb(){} +function Qnb(){} +function Ynb(){} +function hob(){} +function pob(){} +function sqb(){} +function Bqb(){} +function Gqb(){} +function Uqb(){} +function qsb(){} +function xub(){} +function Cub(){} +function Eub(){} +function cxb(){} +function Kyb(){} +function KAb(){} +function wAb(){} +function MAb(){} +function OAb(){} +function QAb(){} +function SAb(){} +function Szb(){} +function $zb(){} +function $Cb(){} +function VCb(){} +function YCb(){} +function WAb(){} +function aDb(){} +function wDb(){} +function VDb(){} +function ZDb(){} +function NEb(){} +function QEb(){} +function QIb(){} +function MIb(){} +function OIb(){} +function SIb(){} +function SFb(){} +function mFb(){} +function EFb(){} +function JFb(){} +function NFb(){} +function bHb(){} +function fJb(){} +function jJb(){} +function kKb(){} +function mKb(){} +function oKb(){} +function yKb(){} +function mLb(){} +function oLb(){} +function CLb(){} +function GLb(){} +function fMb(){} +function CMb(){} +function HMb(){} +function LMb(){} +function TMb(){} +function VMb(){} +function pNb(){} +function bPb(){} +function IPb(){} +function NPb(){} +function IQb(){} +function eRb(){} +function wRb(){} +function zRb(){} +function CRb(){} +function MRb(){} +function eSb(){} +function wSb(){} +function BSb(){} +function rTb(){} +function yTb(){} +function CTb(){} +function GTb(){} +function KTb(){} +function OTb(){} +function KUb(){} +function jVb(){} +function uVb(){} +function yVb(){} +function CVb(){} +function MVb(){} +function wXb(){} +function AXb(){} +function $Yb(){} +function UZb(){} +function ZZb(){} +function b$b(){} +function f$b(){} +function j$b(){} +function n$b(){} +function W$b(){} +function Y$b(){} +function Y_b(){} +function c_b(){} +function g_b(){} +function k_b(){} +function P_b(){} +function R_b(){} +function T_b(){} +function b0b(){} +function e0b(){} +function m0b(){} +function q0b(){} +function t0b(){} +function v0b(){} +function x0b(){} +function J0b(){} +function N0b(){} +function R0b(){} +function V0b(){} +function i1b(){} +function n1b(){} +function p1b(){} +function r1b(){} +function t1b(){} +function v1b(){} +function I1b(){} +function K1b(){} +function M1b(){} +function O1b(){} +function Q1b(){} +function U1b(){} +function F2b(){} +function N2b(){} +function Q2b(){} +function W2b(){} +function i3b(){} +function l3b(){} +function q3b(){} +function w3b(){} +function I3b(){} +function J3b(){} +function M3b(){} +function U3b(){} +function X3b(){} +function Z3b(){} +function _3b(){} +function _5b(){} +function d4b(){} +function g4b(){} +function j4b(){} +function o4b(){} +function u4b(){} +function A4b(){} +function f6b(){} +function h6b(){} +function j6b(){} +function u6b(){} +function B6b(){} +function D6b(){} +function f7b(){} +function h7b(){} +function n7b(){} +function s7b(){} +function G7b(){} +function O7b(){} +function k8b(){} +function n8b(){} +function r8b(){} +function N8b(){} +function S8b(){} +function W8b(){} +function i9b(){} +function q9b(){} +function t9b(){} +function z9b(){} +function C9b(){} +function H9b(){} +function N9b(){} +function Q9b(){} +function S9b(){} +function U9b(){} +function Y9b(){} +function rac(){} +function tac(){} +function vac(){} +function zac(){} +function Dac(){} +function Jac(){} +function Mac(){} +function Sac(){} +function Uac(){} +function Wac(){} +function Yac(){} +function abc(){} +function fbc(){} +function ibc(){} +function kbc(){} +function mbc(){} +function obc(){} +function qbc(){} +function ubc(){} +function Bbc(){} +function Dbc(){} +function Fbc(){} +function Hbc(){} +function Obc(){} +function Qbc(){} +function Sbc(){} +function Ubc(){} +function Zbc(){} +function bcc(){} +function dcc(){} +function fcc(){} +function jcc(){} +function mcc(){} +function scc(){} +function Gcc(){} +function Occ(){} +function Scc(){} +function Ucc(){} +function $cc(){} +function cdc(){} +function gdc(){} +function idc(){} +function odc(){} +function sdc(){} +function udc(){} +function Adc(){} +function Edc(){} +function Gdc(){} +function Wdc(){} +function Bec(){} +function Dec(){} +function Fec(){} +function Hec(){} +function Jec(){} +function Lec(){} +function Nec(){} +function Vec(){} +function Xec(){} +function bfc(){} +function dfc(){} +function ffc(){} +function hfc(){} +function lfc(){} +function nfc(){} +function vfc(){} +function xfc(){} +function zfc(){} +function Ifc(){} +function qhc(){} +function uhc(){} +function pic(){} +function ric(){} +function tic(){} +function vic(){} +function Bic(){} +function Fic(){} +function Hic(){} +function Jic(){} +function Lic(){} +function Nic(){} +function Pic(){} +function Pjc(){} +function kjc(){} +function mjc(){} +function ojc(){} +function qjc(){} +function ujc(){} +function yjc(){} +function Cjc(){} +function Tjc(){} +function hkc(){} +function nkc(){} +function Ekc(){} +function Ikc(){} +function Kkc(){} +function Wkc(){} +function elc(){} +function rlc(){} +function tlc(){} +function vlc(){} +function Plc(){} +function Rlc(){} +function Zlc(){} +function tmc(){} +function vmc(){} +function xmc(){} +function Cmc(){} +function Emc(){} +function Smc(){} +function Umc(){} +function Wmc(){} +function anc(){} +function dnc(){} +function inc(){} +function cyc(){} +function UBc(){} +function UFc(){} +function yCc(){} +function fDc(){} +function lDc(){} +function lHc(){} +function bHc(){} +function nHc(){} +function rHc(){} +function JHc(){} +function sEc(){} +function sLc(){} +function cLc(){} +function gLc(){} +function qLc(){} +function uLc(){} +function yLc(){} +function ELc(){} +function ILc(){} +function KLc(){} +function MLc(){} +function OLc(){} +function SLc(){} +function WLc(){} +function _Lc(){} +function AJc(){} +function bMc(){} +function hMc(){} +function jMc(){} +function nMc(){} +function pMc(){} +function tMc(){} +function vMc(){} +function xMc(){} +function zMc(){} +function mNc(){} +function DNc(){} +function bOc(){} +function LOc(){} +function TOc(){} +function VOc(){} +function XOc(){} +function ZOc(){} +function _Oc(){} +function bPc(){} +function YPc(){} +function cQc(){} +function eQc(){} +function gQc(){} +function rQc(){} +function tQc(){} +function FRc(){} +function HRc(){} +function VRc(){} +function cSc(){} +function eSc(){} +function QSc(){} +function TSc(){} +function WSc(){} +function eTc(){} +function kTc(){} +function oTc(){} +function MTc(){} +function eUc(){} +function iUc(){} +function mUc(){} +function uUc(){} +function IUc(){} +function NUc(){} +function VUc(){} +function ZUc(){} +function _Uc(){} +function bVc(){} +function dVc(){} +function yVc(){} +function CVc(){} +function EVc(){} +function LVc(){} +function PVc(){} +function RVc(){} +function WVc(){} +function aWc(){} +function HXc(){} +function HZc(){} +function tZc(){} +function xZc(){} +function zZc(){} +function DZc(){} +function JZc(){} +function NZc(){} +function RZc(){} +function TZc(){} +function ZZc(){} +function wYc(){} +function yYc(){} +function AYc(){} +function GYc(){} +function KYc(){} +function b$c(){} +function f$c(){} +function l$c(){} +function p$c(){} +function t$c(){} +function x$c(){} +function H$c(){} +function L$c(){} +function s_c(){} +function v_c(){} +function W_c(){} +function __c(){} +function c0c(){} +function e0c(){} +function g0c(){} +function k0c(){} +function o0c(){} +function y1c(){} +function Z1c(){} +function a2c(){} +function d2c(){} +function h2c(){} +function p2c(){} +function L2c(){} +function O2c(){} +function c3c(){} +function f3c(){} +function i3c(){} +function n3c(){} +function H4c(){} +function P4c(){} +function R4c(){} +function W4c(){} +function Z4c(){} +function a5c(){} +function x5c(){} +function D5c(){} +function W5c(){} +function $5c(){} +function $8c(){} +function d6c(){} +function x7c(){} +function E9c(){} +function bad(){} +function zad(){} +function Had(){} +function Zad(){} +function _ad(){} +function bbd(){} +function nbd(){} +function Fbd(){} +function Jbd(){} +function Qbd(){} +function mcd(){} +function ocd(){} +function Icd(){} +function Mcd(){} +function Ycd(){} +function pdd(){} +function qdd(){} +function sdd(){} +function udd(){} +function wdd(){} +function ydd(){} +function Add(){} +function Cdd(){} +function Edd(){} +function Gdd(){} +function Idd(){} +function Kdd(){} +function Mdd(){} +function Odd(){} +function Qdd(){} +function Sdd(){} +function Udd(){} +function Wdd(){} +function Ydd(){} +function $dd(){} +function aed(){} +function Aed(){} +function Sgd(){} +function vkd(){} +function Fmd(){} +function wod(){} +function Zod(){} +function bpd(){} +function fpd(){} +function jpd(){} +function npd(){} +function Ypd(){} +function oqd(){} +function qqd(){} +function wqd(){} +function Bqd(){} +function Mqd(){} +function nrd(){} +function fsd(){} +function fwd(){} +function ywd(){} +function Ywd(){} +function evd(){} +function Rxd(){} +function ozd(){} +function gAd(){} +function IAd(){} +function $Fd(){} +function DGd(){} +function LGd(){} +function hJd(){} +function hOd(){} +function AOd(){} +function dNd(){} +function MQd(){} +function ZQd(){} +function iSd(){} +function TSd(){} +function nTd(){} +function UYd(){} +function XYd(){} +function $Yd(){} +function gZd(){} +function tZd(){} +function wZd(){} +function d_d(){} +function J3d(){} +function t4d(){} +function _5d(){} +function c6d(){} +function f6d(){} +function i6d(){} +function l6d(){} +function o6d(){} +function r6d(){} +function u6d(){} +function x6d(){} +function V7d(){} +function Z7d(){} +function K8d(){} +function a9d(){} +function c9d(){} +function f9d(){} +function i9d(){} +function l9d(){} +function o9d(){} +function r9d(){} +function u9d(){} +function x9d(){} +function A9d(){} +function D9d(){} +function G9d(){} +function J9d(){} +function M9d(){} +function P9d(){} +function S9d(){} +function V9d(){} +function Y9d(){} +function _9d(){} +function cae(){} +function fae(){} +function iae(){} +function lae(){} +function oae(){} +function rae(){} +function uae(){} +function xae(){} +function Aae(){} +function Dae(){} +function Gae(){} +function Jae(){} +function Mae(){} +function Pae(){} +function Sae(){} +function Vae(){} +function Yae(){} +function _ae(){} +function cbe(){} +function fbe(){} +function ibe(){} +function lbe(){} +function obe(){} +function rbe(){} +function ube(){} +function Fge(){} +function pie(){} +function ple(){} +function Cle(){} +function Ele(){} +function Hle(){} +function Kle(){} +function Nle(){} +function Qle(){} +function Tle(){} +function Wle(){} +function Zle(){} +function wke(){} +function ame(){} +function dme(){} +function gme(){} +function jme(){} +function mme(){} +function pme(){} +function sme(){} +function vme(){} +function yme(){} +function Bme(){} +function Eme(){} +function Hme(){} +function Kme(){} +function Nme(){} +function Qme(){} +function Tme(){} +function Wme(){} +function Zme(){} +function ane(){} +function dne(){} +function gne(){} +function jne(){} +function mne(){} +function pne(){} +function sne(){} +function vne(){} +function yne(){} +function Bne(){} +function Ene(){} +function Hne(){} +function Kne(){} +function Nne(){} +function Qne(){} +function Tne(){} +function Wne(){} +function Zne(){} +function aoe(){} +function doe(){} +function goe(){} +function joe(){} +function moe(){} +function poe(){} +function soe(){} +function Roe(){} +function qse(){} +function Cse(){} +function _Xb(a){} +function H1d(a){} +function xl(){wb()} +function oOb(){nOb()} +function _Ob(){ZOb()} +function qPb(){pPb()} +function GPb(){EPb()} +function G3b(){A3b()} +function t_b(){n_b()} +function f1b(){$0b()} +function s6b(){o6b()} +function Y6b(){G6b()} +function Y7b(){R7b()} +function lac(){gac()} +function bic(){Mhc()} +function bDc(){XCc()} +function dCc(){bCc()} +function uCc(){sCc()} +function wBc(){sBc()} +function oBc(){kBc()} +function FBc(){CBc()} +function ZBc(){WBc()} +function ZJc(){WJc()} +function aEc(){WDc()} +function ayc(){$xc()} +function Ckc(){qkc()} +function uDc(){qDc()} +function CDc(){yDc()} +function NDc(){HDc()} +function dvc(){cvc()} +function fGc(){bGc()} +function hYc(){bYc()} +function pYc(){lYc()} +function TYc(){NYc()} +function dZc(){XYc()} +function YWc(){XWc()} +function Y8c(){W8c()} +function _Hc(){ZHc()} +function $0c(){Z0c()} +function nKc(){dKc()} +function EMc(){CMc()} +function qOc(){nOc()} +function FXc(){DXc()} +function F4c(){D4c()} +function a4c(){_3c()} +function w1c(){u1c()} +function s9c(){r9c()} +function C9c(){A9c()} +function hcd(){gcd()} +function hjd(){gjd()} +function Qgd(){Ogd()} +function tkd(){rkd()} +function Dmd(){Bmd()} +function Fxd(){xxd()} +function FWd(){jWd()} +function dSd(){RRd()} +function eie(){pse()} +function axb(a){KDb(a)} +function Yb(a){this.a=a} +function cc(a){this.a=a} +function bf(a){this.a=a} +function hf(a){this.a=a} +function hh(a){this.a=a} +function rh(a){this.a=a} +function zh(a){this.a=a} +function Vh(a){this.a=a} +function Bi(a){this.a=a} +function Ii(a){this.a=a} +function ij(a){this.a=a} +function oj(a){this.a=a} +function Jj(a){this.a=a} +function yj(a){this.c=a} +function yq(a){this.a=a} +function cq(a){this.a=a} +function rq(a){this.a=a} +function Aq(a){this.a=a} +function Pq(a){this.a=a} +function Rq(a){this.a=a} +function Rn(a){this.a=a} +function Gk(a){this.a=a} +function Ok(a){this.a=a} +function hm(a){this.a=a} +function gp(a){this.a=a} +function Fp(a){this.a=a} +function Fr(a){this.a=a} +function Fw(a){this.a=a} +function cw(a){this.a=a} +function mw(a){this.a=a} +function mu(a){this.a=a} +function Zv(a){this.a=a} +function Zw(a){this.a=a} +function Aw(a){this.a=a} +function Kw(a){this.a=a} +function Yw(a){this.a=a} +function dx(a){this.a=a} +function hy(a){this.a=a} +function Hy(a){this.a=a} +function FB(a){this.a=a} +function PB(a){this.a=a} +function _B(a){this.a=a} +function nC(a){this.a=a} +function xs(a){this.b=a} +function EB(){this.a=[]} +function XCb(a,b){a.a=b} +function dYb(a,b){a.a=b} +function eYb(a,b){a.b=b} +function fYb(a,b){a.c=b} +function ANb(a,b){a.c=b} +function BNb(a,b){a.d=b} +function gYb(a,b){a.d=b} +function IYb(a,b){a.k=b} +function qHb(a,b){a.j=b} +function pZb(a,b){a.c=b} +function Sgc(a,b){a.c=b} +function Rgc(a,b){a.a=b} +function IFc(a,b){a.a=b} +function JFc(a,b){a.f=b} +function hPc(a,b){a.a=b} +function iPc(a,b){a.b=b} +function jPc(a,b){a.d=b} +function kPc(a,b){a.i=b} +function lPc(a,b){a.o=b} +function mPc(a,b){a.r=b} +function UQc(a,b){a.a=b} +function VQc(a,b){a.b=b} +function M_c(a,b){a.e=b} +function N_c(a,b){a.f=b} +function O_c(a,b){a.g=b} +function F6c(a,b){a.e=b} +function G6c(a,b){a.f=b} +function T6c(a,b){a.f=b} +function $qd(a,b){a.a=b} +function _qd(a,b){a.b=b} +function zUd(a,b){a.n=b} +function Yce(a,b){a.a=b} +function Zce(a,b){a.c=b} +function gde(a,b){a.c=b} +function Cde(a,b){a.c=b} +function fde(a,b){a.a=b} +function Bde(a,b){a.a=b} +function hde(a,b){a.d=b} +function Dde(a,b){a.d=b} +function ide(a,b){a.e=b} +function Ede(a,b){a.e=b} +function jde(a,b){a.g=b} +function Fde(a,b){a.f=b} +function Gde(a,b){a.j=b} +function uke(a,b){a.a=b} +function Dke(a,b){a.a=b} +function vke(a,b){a.b=b} +function fgc(a){a.b=a.a} +function Jg(a){a.c=a.d.d} +function cgb(a){this.a=a} +function ckb(a){this.a=a} +function ikb(a){this.a=a} +function ieb(a){this.a=a} +function $eb(a){this.a=a} +function ydb(a){this.a=a} +function Zdb(a){this.a=a} +function mfb(a){this.a=a} +function Gfb(a){this.a=a} +function tjb(a){this.a=a} +function tob(a){this.a=a} +function nkb(a){this.a=a} +function skb(a){this.a=a} +function _kb(a){this.a=a} +function Wkb(a){this.b=a} +function Eob(a){this.b=a} +function Vob(a){this.b=a} +function Kjb(a){this.d=a} +function Kqb(a){this.a=a} +function bqb(a){this.a=a} +function gqb(a){this.a=a} +function glb(a){this.a=a} +function mrb(a){this.a=a} +function hsb(a){this.a=a} +function Atb(a){this.a=a} +function Apb(a){this.c=a} +function Hmb(a){this.c=a} +function Dvb(a){this.c=a} +function ewb(a){this.a=a} +function gwb(a){this.a=a} +function iwb(a){this.a=a} +function kwb(a){this.a=a} +function Ezb(a){this.a=a} +function Ozb(a){this.a=a} +function Qzb(a){this.a=a} +function Uzb(a){this.a=a} +function rBb(a){this.a=a} +function tBb(a){this.a=a} +function vBb(a){this.a=a} +function KBb(a){this.a=a} +function oCb(a){this.a=a} +function qCb(a){this.a=a} +function uCb(a){this.a=a} +function cDb(a){this.a=a} +function gDb(a){this.a=a} +function XDb(a){this.a=a} +function bEb(a){this.a=a} +function gEb(a){this.a=a} +function kFb(a){this.a=a} +function hHb(a){this.a=a} +function pHb(a){this.a=a} +function MKb(a){this.a=a} +function VLb(a){this.a=a} +function hMb(a){this.a=a} +function fQb(a){this.a=a} +function tQb(a){this.a=a} +function vQb(a){this.a=a} +function GQb(a){this.a=a} +function KQb(a){this.a=a} +function lWb(a){this.a=a} +function SWb(a){this.a=a} +function uZb(a){this.a=a} +function xZb(a){this.a=a} +function CZb(a){this.a=a} +function FZb(a){this.a=a} +function $$b(a){this.a=a} +function a_b(a){this.a=a} +function e_b(a){this.a=a} +function i_b(a){this.a=a} +function w_b(a){this.a=a} +function y_b(a){this.a=a} +function A_b(a){this.a=a} +function C_b(a){this.a=a} +function T0b(a){this.a=a} +function X0b(a){this.a=a} +function S1b(a){this.a=a} +function r2b(a){this.a=a} +function x4b(a){this.a=a} +function D4b(a){this.a=a} +function G4b(a){this.a=a} +function J4b(a){this.a=a} +function j7b(a){this.a=a} +function l7b(a){this.a=a} +function Z8b(a){this.a=a} +function a9b(a){this.a=a} +function E9b(a){this.a=a} +function W9b(a){this.a=a} +function $9b(a){this.a=a} +function $ac(a){this.a=a} +function sbc(a){this.a=a} +function wbc(a){this.a=a} +function ucc(a){this.a=a} +function Kcc(a){this.a=a} +function Wcc(a){this.a=a} +function edc(a){this.a=a} +function Tdc(a){this.a=a} +function Ydc(a){this.a=a} +function Pec(a){this.a=a} +function Rec(a){this.a=a} +function Tec(a){this.a=a} +function Zec(a){this.a=a} +function _ec(a){this.a=a} +function jfc(a){this.a=a} +function pfc(a){this.a=a} +function rfc(a){this.a=a} +function Bfc(a){this.a=a} +function xic(a){this.a=a} +function zic(a){this.a=a} +function sjc(a){this.a=a} +function Zkc(a){this.a=a} +function _kc(a){this.a=a} +function Ymc(a){this.a=a} +function $mc(a){this.a=a} +function jmc(a){this.b=a} +function OCc(a){this.a=a} +function SCc(a){this.a=a} +function RDc(a){this.a=a} +function OEc(a){this.a=a} +function kFc(a){this.a=a} +function GFc(a){this.a=a} +function iFc(a){this.c=a} +function jGc(a){this.a=a} +function NGc(a){this.a=a} +function PGc(a){this.a=a} +function RGc(a){this.a=a} +function UHc(a){this.a=a} +function bJc(a){this.a=a} +function fJc(a){this.a=a} +function jJc(a){this.a=a} +function nJc(a){this.a=a} +function rJc(a){this.a=a} +function tJc(a){this.a=a} +function wJc(a){this.a=a} +function FJc(a){this.a=a} +function wLc(a){this.a=a} +function CLc(a){this.a=a} +function GLc(a){this.a=a} +function ULc(a){this.a=a} +function YLc(a){this.a=a} +function dMc(a){this.a=a} +function lMc(a){this.a=a} +function rMc(a){this.a=a} +function INc(a){this.a=a} +function TPc(a){this.a=a} +function YSc(a){this.a=a} +function $Sc(a){this.a=a} +function cTc(a){this.a=a} +function iTc(a){this.a=a} +function zTc(a){this.a=a} +function CTc(a){this.a=a} +function $Tc(a){this.a=a} +function qUc(a){this.a=a} +function sUc(a){this.a=a} +function wUc(a){this.a=a} +function yUc(a){this.a=a} +function AUc(a){this.a=a} +function EUc(a){this.a=a} +function EYc(a){this.a=a} +function CYc(a){this.a=a} +function j$c(a){this.a=a} +function z7c(a){this.a=a} +function B7c(a){this.a=a} +function D7c(a){this.a=a} +function F7c(a){this.a=a} +function L7c(a){this.a=a} +function ead(a){this.a=a} +function qad(a){this.a=a} +function sad(a){this.a=a} +function Hbd(a){this.a=a} +function Lbd(a){this.a=a} +function qcd(a){this.a=a} +function Cod(a){this.a=a} +function lpd(a){this.a=a} +function ppd(a){this.a=a} +function fqd(a){this.a=a} +function grd(a){this.a=a} +function Frd(a){this.a=a} +function $rd(a){this.f=a} +function iCd(a){this.a=a} +function ACd(a){this.a=a} +function CCd(a){this.a=a} +function ECd(a){this.a=a} +function GCd(a){this.a=a} +function ICd(a){this.a=a} +function KCd(a){this.a=a} +function MCd(a){this.a=a} +function OCd(a){this.a=a} +function QCd(a){this.a=a} +function YCd(a){this.a=a} +function aDd(a){this.a=a} +function cDd(a){this.a=a} +function eDd(a){this.a=a} +function gDd(a){this.a=a} +function iDd(a){this.a=a} +function kDd(a){this.a=a} +function sDd(a){this.a=a} +function yDd(a){this.a=a} +function ADd(a){this.a=a} +function CDd(a){this.a=a} +function EDd(a){this.a=a} +function GDd(a){this.a=a} +function QDd(a){this.a=a} +function SDd(a){this.a=a} +function UDd(a){this.a=a} +function WDd(a){this.a=a} +function yEd(a){this.a=a} +function SEd(a){this.a=a} +function nEd(a){this.b=a} +function ZMd(a){this.a=a} +function fNd(a){this.a=a} +function lNd(a){this.a=a} +function rNd(a){this.a=a} +function JNd(a){this.a=a} +function uYd(a){this.a=a} +function cZd(a){this.a=a} +function OZd(a){this.b=a} +function a_d(a){this.a=a} +function a0d(a){this.a=a} +function j3d(a){this.a=a} +function G7d(a){this.a=a} +function n8d(a){this.a=a} +function v8d(a){this.a=a} +function J4d(a){this.c=a} +function r5d(a){this.e=a} +function cXb(a){this.e=a} +function Xbe(a){this.a=a} +function Qbe(a){this.d=a} +function kce(a){this.a=a} +function she(a){this.a=a} +function zre(a){this.a=a} +function Uqe(a){this.e=a} +function iqd(){this.a=0} +function imb(){Wlb(this)} +function Yrb(){hjb(this)} +function sFb(){rFb(this)} +function hYb(){_Xb(this)} +function q0d(){this.c=b0d} +function fmc(a,b){a.b+=b} +function She(a,b){b.Wb(a)} +function LB(a){return a.a} +function TB(a){return a.a} +function fC(a){return a.a} +function tC(a){return a.a} +function MC(a){return a.a} +function Icb(a){return a.e} +function $B(){return null} +function EC(){return null} +function Ey(a){throw Icb(a)} +function xy(a){this.a=Qb(a)} +function P_d(){this.a=this} +function pz(){ez.call(this)} +function SJb(a){a.b.Mf(a.e)} +function _Tb(a){a.b=new Pi} +function g2b(a,b){a.b=b-a.b} +function d2b(a,b){a.a=b-a.a} +function k2c(a,b){b.gd(a.a)} +function Vic(a,b){rZb(b,a)} +function nDb(a,b){a.push(b)} +function rDb(a,b){a.sort(b)} +function np(a,b,c){a.Wd(c,b)} +function Js(a,b){a.e=b;b.b=a} +function sdb(){OGd();QGd()} +function $z(a){Zz();Yz.je(a)} +function Bdb(){pz.call(this)} +function Fdb(){pz.call(this)} +function Jdb(){ez.call(this)} +function Oeb(){pz.call(this)} +function Oqb(){pz.call(this)} +function Xqb(){pz.call(this)} +function gfb(){pz.call(this)} +function jfb(){pz.call(this)} +function Ufb(){pz.call(this)} +function qhb(){pz.call(this)} +function Hub(){pz.call(this)} +function obd(){pz.call(this)} +function i_d(){this.Bb|=256} +function WPb(){this.b=new vt} +function nA(){nA=ndb;new Yrb} +function qDb(a,b){a.length=b} +function hxb(a,b){Ylb(a.a,b)} +function LKb(a,b){lIb(a.c,b)} +function MNc(a,b){bsb(a.b,b)} +function cXd(a,b){zsd(a.e,b)} +function WMd(a,b){WLd(a.a,b)} +function XMd(a,b){XLd(a.a,b)} +function Aie(a){_de(a.c,a.b)} +function sj(a,b){a.kc().Nb(b)} +function _eb(a){this.a=efb(a)} +function esb(){this.a=new Yrb} +function dAb(){this.a=new Yrb} +function kxb(){this.a=new imb} +function cGb(){this.a=new imb} +function hGb(){this.a=new imb} +function IGb(){this.a=new eGb} +function Bzb(){this.a=new hyb} +function zEb(){this.a=new vEb} +function GEb(){this.a=new AEb} +function ZFb(){this.a=new SFb} +function hNb(){this.a=new TMb} +function MQb(){this.a=new qQb} +function dTb(){this.a=new imb} +function dVb(){this.a=new imb} +function iUb(){this.a=new imb} +function RUb(){this.a=new imb} +function yLb(){this.d=new imb} +function ZUb(){this.a=new esb} +function S$b(){this.a=new Yrb} +function dWb(){this.b=new Yrb} +function oDc(){this.b=new imb} +function tKc(){this.e=new imb} +function Qac(){this.a=new bic} +function oNc(){this.d=new imb} +function oYb(){hYb.call(this)} +function sYb(){oYb.call(this)} +function aZb(){hYb.call(this)} +function dZb(){aZb.call(this)} +function Ddb(){Bdb.call(this)} +function Jxb(){kxb.call(this)} +function HHb(){rHb.call(this)} +function mUb(){iUb.call(this)} +function pLc(){imb.call(this)} +function QNc(){PNc.call(this)} +function XNc(){PNc.call(this)} +function yQc(){wQc.call(this)} +function DQc(){wQc.call(this)} +function IQc(){wQc.call(this)} +function nad(){jad.call(this)} +function Hzd(){fwd.call(this)} +function Wzd(){fwd.call(this)} +function jgd(){aub.call(this)} +function LOd(){wOd.call(this)} +function kPd(){wOd.call(this)} +function KQd(){Yrb.call(this)} +function TQd(){Yrb.call(this)} +function cRd(){Yrb.call(this)} +function kVd(){FUd.call(this)} +function g_d(){esb.call(this)} +function y_d(){i_d.call(this)} +function o2d(){bUd.call(this)} +function M3d(){Yrb.call(this)} +function P3d(){bUd.call(this)} +function j8d(){Yrb.call(this)} +function A8d(){Yrb.call(this)} +function mke(){iSd.call(this)} +function Fke(){mke.call(this)} +function Lke(){iSd.call(this)} +function Epe(){Roe.call(this)} +function wQc(){this.a=new esb} +function JVc(){this.a=new Yrb} +function ZVc(){this.a=new imb} +function ubd(){this.j=new imb} +function jad(){this.a=new Yrb} +function _nd(){this.a=new aub} +function wOd(){this.a=new AOd} +function l2c(){this.a=new p2c} +function X7c(){this.a=new W7c} +function wb(){wb=ndb;vb=new xb} +function Uk(){Uk=ndb;Tk=new Vk} +function il(){il=ndb;hl=new jl} +function jl(){Ok.call(this,'')} +function Vk(){Ok.call(this,'')} +function Dd(a){yd.call(this,a)} +function Hd(a){yd.call(this,a)} +function vh(a){rh.call(this,a)} +function Yh(a){Wc.call(this,a)} +function Oi(a){Wc.call(this,a)} +function ui(a){Yh.call(this,a)} +function Mp(a){Yh.call(this,a)} +function As(a){Yh.call(this,a)} +function Dp(a){Ro.call(this,a)} +function Kp(a){Ro.call(this,a)} +function Zp(a){ao.call(this,a)} +function wv(a){lv.call(this,a)} +function Tv(a){Kr.call(this,a)} +function Vv(a){Kr.call(this,a)} +function Tw(a){Kr.call(this,a)} +function qz(a){fz.call(this,a)} +function UB(a){qz.call(this,a)} +function mC(){nC.call(this,{})} +function Sub(a){Oub();this.a=a} +function Pxb(a){a.b=null;a.c=0} +function cz(a,b){a.e=b;_y(a,b)} +function mSb(a,b){a.a=b;oSb(a)} +function EIb(a,b,c){a.a[b.g]=c} +function Mpd(a,b,c){Upd(c,a,b)} +function gbc(a,b){Wgc(b.i,a.n)} +function hyc(a,b){iyc(a).Ad(b)} +function _Nb(a,b){return a*a/b} +function bs(a,b){return a.g-b.g} +function pw(a,b){a.a.ec().Kc(b)} +function BC(a){return new _B(a)} +function DC(a){return new GC(a)} +function sz(){sz=ndb;rz=new nb} +function Sz(){Sz=ndb;Rz=new Vz} +function SA(){SA=ndb;RA=new UA} +function ns(){ns=ndb;ms=new os} +function WB(){WB=ndb;VB=new XB} +function KGc(a){oGc();this.a=a} +function Krd(a){wrd();this.f=a} +function Ird(a){wrd();this.f=a} +function Abe(a){MKd();this.a=a} +function Adb(a){qz.call(this,a)} +function Cdb(a){qz.call(this,a)} +function Gdb(a){qz.call(this,a)} +function Hdb(a){fz.call(this,a)} +function Peb(a){qz.call(this,a)} +function hfb(a){qz.call(this,a)} +function kfb(a){qz.call(this,a)} +function Tfb(a){qz.call(this,a)} +function Vfb(a){qz.call(this,a)} +function rhb(a){qz.call(this,a)} +function tnb(a){KDb(a);this.a=a} +function Umb(a){Zmb(a,a.length)} +function ZRb(a){TRb(a);return a} +function Zxb(a){return !!a&&a.b} +function IIb(a){return !!a&&a.k} +function JIb(a){return !!a&&a.j} +function ulb(a){return a.b==a.c} +function Odb(a){return KDb(a),a} +function Reb(a){return KDb(a),a} +function Teb(a){return KDb(a),a} +function zgb(a){return KDb(a),a} +function Jgb(a){return KDb(a),a} +function JAd(a){qz.call(this,a)} +function pbd(a){qz.call(this,a)} +function qbd(a){qz.call(this,a)} +function Kje(a){qz.call(this,a)} +function Joe(a){qz.call(this,a)} +function pc(a){qc.call(this,a,0)} +function Pi(){Qi.call(this,12,3)} +function Gb(){this.a=OD(Qb(pte))} +function jc(){throw Icb(new qhb)} +function Fh(){throw Icb(new qhb)} +function Vi(){throw Icb(new qhb)} +function Vj(){throw Icb(new qhb)} +function Wj(){throw Icb(new qhb)} +function dn(){throw Icb(new qhb)} +function Iz(){Iz=ndb;!!(Zz(),Yz)} +function Xgb(){ydb.call(this,'')} +function Ygb(){ydb.call(this,'')} +function ihb(){ydb.call(this,'')} +function jhb(){ydb.call(this,'')} +function lhb(a){Cdb.call(this,a)} +function Edb(a){Cdb.call(this,a)} +function agb(a){hfb.call(this,a)} +function Qpb(a){Eob.call(this,a)} +function Xpb(a){Qpb.call(this,a)} +function nqb(a){$ob.call(this,a)} +function eVb(a,b,c){a.c.Cf(b,c)} +function Jwb(a,b,c){b.Ad(a.a[c])} +function Owb(a,b,c){b.Ne(a.a[c])} +function Ydb(a,b){return a.a-b.a} +function heb(a,b){return a.a-b.a} +function bgb(a,b){return a.a-b.a} +function sDb(a,b){return XC(a,b)} +function OC(a,b){return Eeb(a,b)} +function hC(b,a){return a in b.a} +function Zub(a){return a.a?a.b:0} +function gvb(a){return a.a?a.b:0} +function gFb(a,b){a.f=b;return a} +function eFb(a,b){a.b=b;return a} +function fFb(a,b){a.c=b;return a} +function hFb(a,b){a.g=b;return a} +function $Gb(a,b){a.a=b;return a} +function _Gb(a,b){a.f=b;return a} +function bSb(a,b){a.f=b;return a} +function aSb(a,b){a.e=b;return a} +function aHb(a,b){a.k=b;return a} +function wLb(a,b){a.a=b;return a} +function xLb(a,b){a.e=b;return a} +function WHb(a,b){a.b=new Zfd(b)} +function Ks(a,b){a._d(b);b.$d(a)} +function zec(a,b){aec();b.n.a+=a} +function cic(a,b){Mhc();qZb(b,a)} +function cIc(a){HEc.call(this,a)} +function vHc(a){HEc.call(this,a)} +function YXb(){ZXb.call(this,'')} +function WPc(){this.b=0;this.a=0} +function Jsb(){Jsb=ndb;Isb=Lsb()} +function Dcd(a,b){a.b=b;return a} +function Ccd(a,b){a.a=b;return a} +function Ecd(a,b){a.c=b;return a} +function Fcd(a,b){a.d=b;return a} +function Gcd(a,b){a.e=b;return a} +function Hcd(a,b){a.f=b;return a} +function Vcd(a,b){a.a=b;return a} +function Wcd(a,b){a.b=b;return a} +function Xcd(a,b){a.c=b;return a} +function sed(a,b){a.c=b;return a} +function red(a,b){a.b=b;return a} +function ted(a,b){a.d=b;return a} +function ued(a,b){a.e=b;return a} +function ved(a,b){a.f=b;return a} +function wed(a,b){a.g=b;return a} +function xed(a,b){a.a=b;return a} +function yed(a,b){a.i=b;return a} +function zed(a,b){a.j=b;return a} +function Dbd(a,b){return b.pg(a)} +function qKc(a,b){return a.b-b.b} +function ePc(a,b){return a.g-b.g} +function QRc(a,b){return a.s-b.s} +function ogc(a,b){return a?0:b-1} +function vGc(a,b){return a?0:b-1} +function uGc(a,b){return a?b-1:0} +function Xnd(a,b){a.k=b;return a} +function Ynd(a,b){a.j=b;return a} +function Wfd(){this.a=0;this.b=0} +function kgd(a){bub.call(this,a)} +function iJd(a){_Fd.call(this,a)} +function ENd(a){yNd.call(this,a)} +function GNd(a){yNd.call(this,a)} +function msd(){msd=ndb;lsd=hzd()} +function ksd(){ksd=ndb;jsd=Vxd()} +function OGd(){OGd=ndb;NGd=gdd()} +function hRd(){hRd=ndb;gRd=O8d()} +function Mje(){Mje=ndb;Lje=tle()} +function Oje(){Oje=ndb;Nje=Ale()} +function teb(a){return a.e&&a.e()} +function Oc(a,b){return a.c._b(b)} +function yn(a,b){return Nv(a.b,b)} +function Ew(a,b){return zw(a.a,b)} +function jVd(a,b){a.b=0;_Td(a,b)} +function tde(a,b){a.c=b;a.b=true} +function Rgb(a,b){a.a+=b;return a} +function Sgb(a,b){a.a+=b;return a} +function Vgb(a,b){a.a+=b;return a} +function _gb(a,b){a.a+=b;return a} +function ueb(a){seb(a);return a.o} +function Ihb(a){Ahb();Chb(this,a)} +function dtb(){throw Icb(new qhb)} +function xob(){throw Icb(new qhb)} +function yob(){throw Icb(new qhb)} +function zob(){throw Icb(new qhb)} +function Cob(){throw Icb(new qhb)} +function Uob(){throw Icb(new qhb)} +function fsb(a){this.a=new Zrb(a)} +function Dzb(a){this.a=new iyb(a)} +function mwb(a,b){while(a.Pe(b));} +function dwb(a,b){while(a.zd(b));} +function K7c(a,b,c){I7c(a.a,b,c)} +function oDb(a,b,c){a.splice(b,c)} +function J9b(a,b){return K9b(b,a)} +function WIc(a,b){return a.d[b.p]} +function hub(a){return a.b!=a.d.c} +function xD(a){return a.l|a.m<<22} +function Vd(a){return !a?null:a.d} +function Mv(a){return !a?null:a.g} +function Rv(a){return !a?null:a.i} +function Yad(a,b){return Vad(a,b)} +function eCb(a){_Ab(a);return a.a} +function nIb(a){a.c?mIb(a):oIb(a)} +function nSc(){this.b=new Cbd(IZ)} +function H7c(){this.b=new Cbd(L0)} +function W7c(){this.b=new Cbd(L0)} +function b_c(){this.a=new Cbd(t_)} +function H2c(){this.a=new Cbd(W_)} +function n_c(a){this.a=0;this.b=a} +function nOd(){throw Icb(new qhb)} +function mOd(){throw Icb(new qhb)} +function oOd(){throw Icb(new qhb)} +function pOd(){throw Icb(new qhb)} +function qOd(){throw Icb(new qhb)} +function rOd(){throw Icb(new qhb)} +function sOd(){throw Icb(new qhb)} +function tOd(){throw Icb(new qhb)} +function uOd(){throw Icb(new qhb)} +function vOd(){throw Icb(new qhb)} +function zse(){throw Icb(new Hub)} +function Ase(){throw Icb(new Hub)} +function mse(a){this.a=new Bre(a)} +function me(a,b){this.e=a;this.d=b} +function Ff(a,b){this.b=a;this.c=b} +function Wc(a){Lb(a.dc());this.c=a} +function cg(a,b){xf.call(this,a,b)} +function eg(a,b){cg.call(this,a,b)} +function Lj(a,b){this.a=a;this.b=b} +function fk(a,b){this.a=a;this.b=b} +function lk(a,b){this.a=a;this.b=b} +function nk(a,b){this.a=a;this.b=b} +function vk(a,b){this.a=a;this.b=b} +function xk(a,b){this.a=a;this.b=b} +function Ik(a,b){this.a=a;this.b=b} +function Yo(a,b){this.b=a;this.a=b} +function wp(a,b){this.b=a;this.a=b} +function ap(a,b){this.g=a;this.i=b} +function Mq(a,b){this.a=a;this.b=b} +function hr(a,b){this.b=a;this.a=b} +function mr(a,b){this.a=a;this.b=b} +function Ir(a,b){this.b=a;this.a=b} +function Kr(a){this.b=JD(Qb(a),50)} +function pf(a){this.b=JD(Qb(a),92)} +function es(a,b){this.f=a;this.g=b} +function ju(a,b){this.a=a;this.b=b} +function yu(a,b){this.a=a;this.f=b} +function gv(a){this.a=JD(Qb(a),16)} +function lv(a){this.a=JD(Qb(a),16)} +function xv(a,b){this.b=a;this.c=b} +function ew(a){this.a=JD(Qb(a),92)} +function wx(a,b){this.a=a;this.b=b} +function ay(a,b){this.a=a;this.b=b} +function st(a,b){return _ib(a.b,b)} +function Rp(a,b){return a>b&&b0} +function Tcb(a,b){return Lcb(a,b)<0} +function Zqb(a,b){return Grb(a.a,b)} +function Idb(a,b){gz.call(this,a,b)} +function Ix(a){Hx();An.call(this,a)} +function Jx(a){Hx();Ix.call(this,a)} +function Mx(a){Lx();ao.call(this,a)} +function Smb(a,b){Wmb(a,a.length,b)} +function Tmb(a,b){Ymb(a,a.length,b)} +function Psb(a,b){return a.a.get(b)} +function gtb(a,b){return _ib(a.e,b)} +function bxb(a){return KDb(a),false} +function Nsb(){Jsb();return new Isb} +function Yub(a){IDb(a.a);return a.b} +function xrb(a,b){this.b=a;this.a=b} +function Ekb(a,b){this.d=a;this.e=b} +function zCb(a,b){this.a=a;this.b=b} +function FCb(a,b){this.a=a;this.b=b} +function LCb(a,b){this.a=a;this.b=b} +function RCb(a,b){this.a=a;this.b=b} +function eDb(a,b){this.b=a;this.a=b} +function hEb(a,b){this.a=a;this.b=b} +function hzb(a,b){es.call(this,a,b)} +function DAb(a,b){es.call(this,a,b)} +function AHb(a,b){es.call(this,a,b)} +function fIb(a,b){es.call(this,a,b)} +function YIb(a,b){es.call(this,a,b)} +function PLb(a,b){es.call(this,a,b)} +function cwb(a){Wvb.call(this,a,21)} +function cNb(a,b){this.b=a;this.a=b} +function IFb(a,b){this.b=a;this.a=b} +function GMb(a,b){this.b=a;this.a=b} +function tOb(a,b){es.call(this,a,b)} +function aQb(a,b){es.call(this,a,b)} +function UQb(a,b){es.call(this,a,b)} +function ASb(a,b){this.b=a;this.a=b} +function FSb(a,b){this.c=a;this.d=b} +function RSb(a,b){es.call(this,a,b)} +function uUb(a,b){es.call(this,a,b)} +function pXb(a,b){this.e=a;this.d=b} +function VYb(a,b){es.call(this,a,b)} +function KZb(a,b){this.a=a;this.b=b} +function w2b(a,b){es.call(this,a,b)} +function R5b(a,b){es.call(this,a,b)} +function e8b(a,b){es.call(this,a,b)} +function lDb(a,b,c){a.splice(b,0,c)} +function gr(a,b,c){a.Mb(c)&&b.Ad(c)} +function BCb(a,b,c){b.Ne(a.a.We(c))} +function HCb(a,b,c){b.Bd(a.a.Xe(c))} +function NCb(a,b,c){b.Ad(a.a.Kb(c))} +function FRb(a,b){return Hrb(a.c,b)} +function sEb(a,b){return Hrb(a.e,b)} +function Wbc(a,b){this.a=a;this.b=b} +function Mcc(a,b){this.a=a;this.b=b} +function kdc(a,b){this.a=a;this.b=b} +function mdc(a,b){this.a=a;this.b=b} +function wdc(a,b){this.a=a;this.b=b} +function Idc(a,b){this.a=a;this.b=b} +function tfc(a,b){this.a=a;this.b=b} +function Dfc(a,b){this.a=a;this.b=b} +function Ycc(a,b){this.b=a;this.a=b} +function ydc(a,b){this.b=a;this.a=b} +function jkc(a,b){this.b=a;this.a=b} +function rgc(a,b){this.b=b;this.c=a} +function ehc(a,b){es.call(this,a,b)} +function Chc(a,b){es.call(this,a,b)} +function Cnc(a,b){es.call(this,a,b)} +function unc(a,b){es.call(this,a,b)} +function Nnc(a,b){es.call(this,a,b)} +function Ync(a,b){es.call(this,a,b)} +function kic(a,b){es.call(this,a,b)} +function kpc(a,b){es.call(this,a,b)} +function wpc(a,b){es.call(this,a,b)} +function woc(a,b){es.call(this,a,b)} +function moc(a,b){es.call(this,a,b)} +function Foc(a,b){es.call(this,a,b)} +function Soc(a,b){es.call(this,a,b)} +function $oc(a,b){es.call(this,a,b)} +function Mpc(a,b){es.call(this,a,b)} +function Vpc(a,b){es.call(this,a,b)} +function cqc(a,b){es.call(this,a,b)} +function lqc(a,b){es.call(this,a,b)} +function tqc(a,b){es.call(this,a,b)} +function Rrc(a,b){es.call(this,a,b)} +function Zrc(a,b){es.call(this,a,b)} +function Dyc(a,b){es.call(this,a,b)} +function Pyc(a,b){es.call(this,a,b)} +function $yc(a,b){es.call(this,a,b)} +function lzc(a,b){es.call(this,a,b)} +function Dzc(a,b){es.call(this,a,b)} +function Nzc(a,b){es.call(this,a,b)} +function Vzc(a,b){es.call(this,a,b)} +function cAc(a,b){es.call(this,a,b)} +function lAc(a,b){es.call(this,a,b)} +function uAc(a,b){es.call(this,a,b)} +function OAc(a,b){es.call(this,a,b)} +function XAc(a,b){es.call(this,a,b)} +function eBc(a,b){es.call(this,a,b)} +function YGc(a,b){es.call(this,a,b)} +function yJc(a,b){this.b=a;this.a=b} +function PJc(a,b){es.call(this,a,b)} +function kLc(a,b){this.a=a;this.b=b} +function ALc(a,b){this.a=a;this.b=b} +function fMc(a,b){this.a=a;this.b=b} +function TMc(a,b){es.call(this,a,b)} +function _Mc(a,b){es.call(this,a,b)} +function gNc(a,b){this.a=a;this.b=b} +function _Ic(a,b){zIc();return b!=a} +function RRb(a){SRb(a,a.c);return a} +function Pz(a){$wnd.clearTimeout(a)} +function CPc(a,b){es.call(this,a,b)} +function ARc(a,b){es.call(this,a,b)} +function JRc(a,b){this.a=a;this.b=b} +function LRc(a,b){this.a=a;this.b=b} +function TNc(a,b){this.b=a;this.d=b} +function aTc(a,b){this.a=a;this.b=b} +function cUc(a,b){this.b=a;this.a=b} +function uSc(a,b){es.call(this,a,b)} +function rVc(a,b){es.call(this,a,b)} +function gWc(a,b){es.call(this,a,b)} +function PXc(a,b){es.call(this,a,b)} +function XXc(a,b){es.call(this,a,b)} +function XZc(a,b){this.b=a;this.a=b} +function VZc(a,b){this.b=a;this.a=b} +function z$c(a,b){this.b=a;this.a=b} +function B$c(a,b){this.b=a;this.a=b} +function V$c(a,b){es.call(this,a,b)} +function D_c(a,b){es.call(this,a,b)} +function u0c(a,b){es.call(this,a,b)} +function E0c(a,b){es.call(this,a,b)} +function H1c(a,b){es.call(this,a,b)} +function R1c(a,b){es.call(this,a,b)} +function C2c(a,b){es.call(this,a,b)} +function X2c(a,b){es.call(this,a,b)} +function F3c(a,b){es.call(this,a,b)} +function h5c(a,b){es.call(this,a,b)} +function L5c(a,b){es.call(this,a,b)} +function k6c(a,b){es.call(this,a,b)} +function a7c(a,b){es.call(this,a,b)} +function Q7c(a,b){es.call(this,a,b)} +function u8c(a,b){es.call(this,a,b)} +function F8c(a,b){es.call(this,a,b)} +function V9c(a,b){es.call(this,a,b)} +function U5c(a,b){this.a=a;this.b=b} +function dbd(a,b){this.a=a;this.b=b} +function Nbd(a,b){this.a=a;this.b=b} +function I8b(){y8b();this.a=new M_b} +function HOc(){zOc();this.a=new esb} +function wNc(){qNc();this.b=new esb} +function QBc(){JBc();MBc.call(this)} +function nCc(){hCc();jCc.call(this)} +function pCc(){hCc();jCc.call(this)} +function Hed(a,b){es.call(this,a,b)} +function Ved(a,b){es.call(this,a,b)} +function xgd(a,b){es.call(this,a,b)} +function ahd(a,b){es.call(this,a,b)} +function sjd(a,b){es.call(this,a,b)} +function Cjd(a,b){es.call(this,a,b)} +function Ljd(a,b){es.call(this,a,b)} +function Vjd(a,b){es.call(this,a,b)} +function fkd(a,b){es.call(this,a,b)} +function Ckd(a,b){es.call(this,a,b)} +function Nkd(a,b){es.call(this,a,b)} +function ald(a,b){es.call(this,a,b)} +function mld(a,b){es.call(this,a,b)} +function Ald(a,b){es.call(this,a,b)} +function Mld(a,b){es.call(this,a,b)} +function Mmd(a,b){es.call(this,a,b)} +function qmd(a,b){es.call(this,a,b)} +function Wmd(a,b){es.call(this,a,b)} +function jnd(a,b){es.call(this,a,b)} +function snd(a,b){es.call(this,a,b)} +function Cnd(a,b){es.call(this,a,b)} +function Uod(a,b){es.call(this,a,b)} +function Yfd(a,b){this.a=a;this.b=b} +function rpd(a,b){this.a=a;this.b=b} +function tpd(a,b){this.a=a;this.b=b} +function vpd(a,b){this.a=a;this.b=b} +function _pd(a,b){this.a=a;this.b=b} +function bqd(a,b){this.a=a;this.b=b} +function dqd(a,b){this.a=a;this.b=b} +function ard(a,b){this.a=a;this.b=b} +function eCd(a,b){this.a=a;this.b=b} +function gCd(a,b){this.a=a;this.b=b} +function kCd(a,b){this.a=a;this.b=b} +function mCd(a,b){this.a=a;this.b=b} +function sCd(a,b){this.a=a;this.b=b} +function uCd(a,b){this.a=a;this.b=b} +function wCd(a,b){this.b=a;this.a=b} +function yCd(a,b){this.b=a;this.a=b} +function SCd(a,b){this.b=a;this.a=b} +function UCd(a,b){this.b=a;this.a=b} +function WCd(a,b){this.a=a;this.b=b} +function $Cd(a,b){this.a=a;this.b=b} +function qDd(a,b){this.a=a;this.b=b} +function uDd(a,b){this.a=a;this.b=b} +function wGd(a,b){this.f=a;this.c=b} +function BLd(a,b){this.i=a;this.g=b} +function Hqd(a,b){es.call(this,a,b)} +function fEd(a,b){es.call(this,a,b)} +function IRd(a,b){this.a=a;this.b=b} +function LRd(a,b){this.a=a;this.b=b} +function iXd(a,b){this.d=a;this.e=b} +function z3d(a,b){this.a=a;this.b=b} +function X4d(a,b){this.a=a;this.b=b} +function $ce(a,b){this.d=a;this.b=b} +function ude(a,b){this.e=a;this.a=b} +function wUd(a,b){a.i=null;xUd(a,b)} +function KGd(a,b){!!a&&ejb(EGd,a,b)} +function INd(a,b){return SLd(a.a,b)} +function ucd(a,b){return Hrb(a.g,b)} +function Xkc(a,b){return Hrb(b.b,a)} +function oad(a,b){return -a.b.$e(b)} +function Bie(a){return nee(a.c,a.b)} +function ate(a,b){ete(new fKd(a),b)} +function DBd(a,b,c){wAd(b,aBd(a,c))} +function EBd(a,b,c){wAd(b,aBd(a,c))} +function vJc(a,b){aJc(a.a,JD(b,12))} +function zje(a,b){this.a=a;this.b=b} +function Cie(a,b){this.b=a;this.c=b} +function Nm(a,b){return a.Pd().Xb(b)} +function Wq(a,b){return qr(a.Jc(),b)} +function Wd(a){return !a?null:a.kd()} +function XD(a){return a==null?null:a} +function SD(a){return typeof a===hte} +function TD(a){return typeof a===ite} +function VD(a){return typeof a===jte} +function Ocb(a,b){return Lcb(a,b)==0} +function Rcb(a,b){return Lcb(a,b)>=0} +function Xcb(a,b){return Lcb(a,b)!=0} +function ahb(a,b){return a.a+=''+b,a} +function Web(a){return ''+(KDb(a),a)} +function ig(a){gg(a);return a.d.gc()} +function Pnb(a){JDb(a,0);return null} +function ZD(a){SDb(a==null);return a} +function Tgb(a,b){a.a+=''+b;return a} +function Ugb(a,b){a.a+=''+b;return a} +function bhb(a,b){a.a+=''+b;return a} +function dhb(a,b){a.a+=''+b;return a} +function ehb(a,b){a.a+=''+b;return a} +function kB(a,b){a.q.setTime(cdb(b))} +function twb(a,b){owb.call(this,a,b)} +function xwb(a,b){owb.call(this,a,b)} +function Bwb(a,b){owb.call(this,a,b)} +function Stb(a,b){Ttb(a,b,a.c.b,a.c)} +function Rtb(a,b){Ttb(a,b,a.a,a.a.a)} +function JKc(a,b){return a.j[b.p]==2} +function Ybd(a,b){a.a=b.g+1;return a} +function Pfd(a){a.a=0;a.b=0;return a} +function $rb(a){hjb(this);Ld(this,a)} +function _ub(){this.b=0;this.a=false} +function hvb(){this.b=0;this.a=false} +function vt(){this.b=new Zrb(Jv(12))} +function RJb(){RJb=ndb;QJb=gs(PJb())} +function W5b(){W5b=ndb;V5b=gs(U5b())} +function wVc(){wVc=ndb;vVc=gs(uVc())} +function OA(){OA=ndb;nA();NA=new Yrb} +function Yq(a){return Qb(a),new Bl(a)} +function mb(a,b){return XD(a)===XD(b)} +function sB(a){return a<10?'0'+a:''+a} +function $C(a){return _C(a.l,a.m,a.h)} +function Scb(a){return typeof a===ite} +function xdb(a,b){return Ggb(a.a,0,b)} +function Ueb(a){return YD((KDb(a),a))} +function Veb(a){return YD((KDb(a),a))} +function Zeb(a,b){return Xeb(a.a,b.a)} +function lfb(a,b){return ofb(a.a,b.a)} +function Ffb(a,b){return Hfb(a.a,b.a)} +function xgb(a,b){return a.indexOf(b)} +function enb(a,b){bnb(a,0,a.length,b)} +function PPd(a,b){NPd();ejb(MPd,a,b)} +function pEd(a,b){oEd.call(this,a,b)} +function ALd(a,b){cKd.call(this,a,b)} +function LYd(a,b){BLd.call(this,a,b)} +function Ufe(a,b){O0d.call(this,a,b)} +function Qfe(a,b){Nfe.call(this,a,b)} +function Mtb(){hsb.call(this,new ltb)} +function pYb(){iYb.call(this,0,0,0,0)} +function r$b(a){return bmb(a.b.b,a,0)} +function eJb(a,b){return ofb(a.g,b.g)} +function PSb(a){return a==KSb||a==NSb} +function QSb(a){return a==KSb||a==LSb} +function Ilc(a,b){return ofb(a.g,b.g)} +function vec(a,b){aec();return b.a+=a} +function xec(a,b){aec();return b.a+=a} +function wec(a,b){aec();return b.c+=a} +function Qad(a,b){Ylb(a.c,b);return a} +function Ixb(a,b){Ylb(a.a,b);return b} +function vbd(a,b){Wbd(a.a,b);return a} +function ysb(a){this.a=Nsb();this.b=a} +function Ssb(a){this.a=Nsb();this.b=a} +function Zfd(a){this.a=a.a;this.b=a.b} +function Bl(a){this.a=a;xl.call(this)} +function Hl(a){this.a=a;xl.call(this)} +function Vsd(a){return a.sh()&&a.th()} +function zld(a){return a!=vld&&a!=wld} +function pjd(a){return a==kjd||a==ljd} +function qjd(a){return a==njd||a==jjd} +function Zyc(a){return a==Vyc||a==Uyc} +function bcd(a){return Wbd(new acd,a)} +function Xpd(a){return rvd(JD(a,125))} +function h3c(a,b){return Xeb(b.f,a.f)} +function Wde(a,b){return new Nfe(b,a)} +function Xde(a,b){return new Nfe(b,a)} +function Kvd(a,b,c){Mvd(a,b);Nvd(a,c)} +function bvd(a,b,c){cvd(a,b);dvd(a,c)} +function Ivd(a,b,c){Lvd(a,b);Jvd(a,c)} +function Nwd(a,b,c){Owd(a,b);Pwd(a,c)} +function Uwd(a,b,c){Vwd(a,b);Wwd(a,c)} +function GVd(a,b){wVd(a,b);xVd(a,a.D)} +function BGd(a){wGd.call(this,a,true)} +function zfd(){Afd.call(this,0,0,0,0)} +function mzb(){hzb.call(this,'Head',1)} +function rzb(){hzb.call(this,'Tail',3)} +function bh(a,b,c){_g.call(this,a,b,c)} +function bZb(a){iYb.call(this,a,a,a,a)} +function lib(a){Whb();mib.call(this,a)} +function dHb(a){_lb(a.Qf(),new hHb(a))} +function Kub(a){return a!=null?tb(a):0} +function T$b(a,b){return PEd(b,Tzd(a))} +function U$b(a,b){return PEd(b,Tzd(a))} +function mBb(a,b){return a[a.length]=b} +function pBb(a,b){return a[a.length]=b} +function OAd(a,b){return fp(wo(a.f),b)} +function PAd(a,b){return fp(wo(a.n),b)} +function QAd(a,b){return fp(wo(a.p),b)} +function cr(a){return ur(a.b.Jc(),a.a)} +function cMd(a){return a==null?0:tb(a)} +function Wlb(a){a.c=SC(aJ,rte,1,0,5,1)} +function GAc(a,b,c){VC(a.c[b.g],b.g,c)} +function xTd(a,b,c){JD(a.c,72).Ei(b,c)} +function Npd(a,b,c){Kvd(c,c.i+a,c.j+b)} +function qEd(a,b){oEd.call(this,a.b,b)} +function q$d(a,b){YEd(rWd(a.a),t$d(b))} +function z2d(a,b){YEd(m2d(a.a),C2d(b))} +function rAb(a,b){if(iAb){return}a.b=b} +function NKd(a,b,c){VC(a,b,c);return c} +function Fbe(){Fbe=ndb;new Gbe;new imb} +function Gbe(){new Yrb;new Yrb;new Yrb} +function yse(){throw Icb(new rhb(XJe))} +function Nse(){throw Icb(new rhb(XJe))} +function Bse(){throw Icb(new rhb(YJe))} +function Qse(){throw Icb(new rhb(YJe))} +function _Nc(){_Nc=ndb;$Nc=new crb(y2)} +function Sy(){Sy=ndb;$wnd.Math.log(2)} +function q5d(){q5d=ndb;p5d=(YQd(),XQd)} +function gse(a){Tqe();Uqe.call(this,a)} +function Sg(a){this.a=a;Mg.call(this,a)} +function Ap(a){this.a=a;pf.call(this,a)} +function Hp(a){this.a=a;pf.call(this,a)} +function gmb(a,b){dnb(a.c,a.c.length,b)} +function Emb(a){return a.ab?1:0} +function Rfb(a,b){return Lcb(a,b)>0?a:b} +function _C(a,b,c){return {l:a,m:b,h:c}} +function Qub(a,b){a.a!=null&&vJc(b,a.a)} +function zbc(a){xWb(a,null);yWb(a,null)} +function nec(a,b,c){return ejb(a.g,c,b)} +function Hh(a,b){Qb(b);Gh(a).Ic(new bx)} +function EQb(){AQb();this.a=new Cbd(AO)} +function oEb(a){this.b=a;this.a=new imb} +function vMb(a){this.b=new HMb;this.a=a} +function ZXb(a){WXb.call(this);this.a=a} +function MNb(a){uNb.call(this);this.b=a} +function ozb(){hzb.call(this,'Range',2)} +function Yy(a){a.j=SC(dJ,Ote,324,0,0,1)} +function Ptb(a){a.a=new xub;a.c=new xub} +function xlc(a){a.a=new Yrb;a.e=new Yrb} +function vfd(a){return new Yfd(a.c,a.d)} +function wfd(a){return new Yfd(a.c,a.d)} +function Ifd(a){return new Yfd(a.a,a.b)} +function iad(a,b){return ejb(a.a,b.a,b)} +function FKc(a,b,c){return ejb(a.k,c,b)} +function DAc(a,b,c){return BAc(b,c,a.c)} +function $Ad(a,b){return MD(bjb(a.i,b))} +function _Ad(a,b){return MD(bjb(a.j,b))} +function $_d(a,b){return pA(a.a,b,null)} +function yie(a,b){return Rde(a.c,a.b,b)} +function RD(a,b){return a!=null&&ID(a,b)} +function fXd(a,b){uJd(a);a.Fc(JD(b,16))} +function QLd(a,b,c){a.c._c(b,JD(c,136))} +function gMd(a,b,c){a.c.Si(b,JD(c,136))} +function LKc(a,b,c){MKc(a,b,c);return c} +function _Kc(a,b){zKc();return b.n.b+=a} +function Xq(a,b){return Ar(a.Jc(),b)!=-1} +function Iv(a,b){return new Xv(a.Jc(),b)} +function yr(a){return a.Ob()?a.Pb():null} +function Ogb(a){return Pgb(a,0,a.length)} +function uPc(a){vPc(a,null);wPc(a,null)} +function Sfe(){O0d.call(this,null,null)} +function Wfe(){n1d.call(this,null,null)} +function os(){es.call(this,'INSTANCE',0)} +function Dlb(){this.a=SC(aJ,rte,1,8,5,1)} +function xie(a){this.a=a;Yrb.call(this)} +function ao(a){this.a=(Fnb(),new Qpb(a))} +function Vp(a){this.b=(Fnb(),new Apb(a))} +function Oub(){Oub=ndb;Nub=new Sub(null)} +function Xwb(){Xwb=ndb;Xwb();Wwb=new cxb} +function Ylb(a,b){nDb(a.c,b);return true} +function jtb(a,b){if(a.c){wtb(b);vtb(b)}} +function gB(a,b){a.q.setHours(b);eB(a,b)} +function dsb(a,b){return a.a.Ac(b)!=null} +function Azb(a,b){return a.a.Ac(b)!=null} +function uFc(a,b){return a.a[b.c.p][b.p]} +function FEc(a,b){return a.e[b.c.p][b.p]} +function YEc(a,b){return a.c[b.c.p][b.p]} +function QHb(a,b,c){return a.a[b.g][c.g]} +function IKc(a,b){return a.j[b.p]=WKc(b)} +function Kfd(a,b){return a.a*b.a+a.b*b.b} +function hqd(a,b){return a.a=a} +function CEc(a,b,c){return c?b!=0:b!=a-1} +function Qvb(a,b,c){a.a=b^1502;a.b=c^Mve} +function Sfd(a,b,c){a.a=b;a.b=c;return a} +function Qfd(a,b){a.a*=b;a.b*=b;return a} +function OFd(a,b,c){VC(a.g,b,c);return c} +function VHb(a,b,c,d){VC(a.a[b.g],c.g,d)} +function VXd(a,b,c){NXd.call(this,a,b,c)} +function ZXd(a,b,c){VXd.call(this,a,b,c)} +function gge(a,b,c){VXd.call(this,a,b,c)} +function jge(a,b,c){ZXd.call(this,a,b,c)} +function tge(a,b,c){NXd.call(this,a,b,c)} +function xge(a,b,c){NXd.call(this,a,b,c)} +function cge(a,b,c){Ide.call(this,a,b,c)} +function $fe(a,b,c){Ide.call(this,a,b,c)} +function ege(a,b,c){$fe.call(this,a,b,c)} +function Age(a,b,c){tge.call(this,a,b,c)} +function Rse(a){this.c=a;this.a=this.c.a} +function fKd(a){this.i=a;this.f=this.i.j} +function xf(a,b){this.a=a;pf.call(this,b)} +function gj(a,b){this.a=a;pc.call(this,b)} +function qj(a,b){this.a=a;pc.call(this,b)} +function Pj(a,b){this.a=a;pc.call(this,b)} +function Xj(a){this.a=a;yj.call(this,a.d)} +function Kg(a){a.b.Qb();--a.d.f.d;hg(a.d)} +function oLd(a){a.a=JD(fud(a.b.a,4),129)} +function wLd(a){a.a=JD(fud(a.b.a,4),129)} +function QEd(a){Mub(a,CGe);wwd(a,KEd(a))} +function Eb(a,b){return Db(a,new ihb,b).a} +function xr(a){return hub(a.a)?wr(a):null} +function bl(a){Ok.call(this,JD(Qb(a),35))} +function rl(a){Ok.call(this,JD(Qb(a),35))} +function Lb(a){if(!a){throw Icb(new gfb)}} +function Ub(a){if(!a){throw Icb(new jfb)}} +function Dr(a,b){Qb(b);return new Pr(a,b)} +function iu(a,b){return new Fu(a.a,a.b,b)} +function iD(a){return a.l+a.m*gve+a.h*hve} +function wz(a){return a==null?null:a.name} +function ygb(a,b,c){return a.indexOf(b,c)} +function Agb(a,b){return a.lastIndexOf(b)} +function Ngb(a){return a==null?vte:qdb(a)} +function Ndb(){Ndb=ndb;Ldb=false;Mdb=true} +function die(){die=ndb;Ege();cie=new eie} +function bUd(){this.Bb|=256;this.Bb|=512} +function ez(){Yy(this);$y(this);this.he()} +function $ob(a){Eob.call(this,a);this.a=a} +function npb(a){Vob.call(this,a);this.a=a} +function oqb(a){Qpb.call(this,a);this.a=a} +function Zgb(a){ydb.call(this,(KDb(a),a))} +function khb(a){ydb.call(this,(KDb(a),a))} +function Ntb(a){hsb.call(this,new mtb(a))} +function Hyb(a){this.a=a;Wkb.call(this,a)} +function Jl(a,b){this.a=b;pc.call(this,a)} +function Wo(a,b){this.a=b;Ro.call(this,a)} +function up(a,b){this.a=a;Ro.call(this,b)} +function Pr(a,b){this.a=b;Kr.call(this,a)} +function Xv(a,b){this.a=b;Kr.call(this,a)} +function Czb(a){Bzb.call(this);xe(this,a)} +function Pub(a){IDb(a.a!=null);return a.a} +function wEb(a,b){Ylb(b.a,a.a);return a.a} +function CEb(a,b){Ylb(b.b,a.a);return a.a} +function GGb(a,b){Ylb(b.a,a.a);return a.a} +function hhb(a,b,c){wdb(a,b,b,c);return a} +function fGb(a,b){++a.b;return Ylb(a.a,b)} +function gGb(a,b){++a.b;return dmb(a.a,b)} +function nLb(a,b){return Xeb(a.c.d,b.c.d)} +function zLb(a,b){return Xeb(a.c.c,b.c.c)} +function k3b(a,b){return Xeb(a.n.a,b.n.a)} +function aUb(a,b){return JD(Qc(a.b,b),16)} +function p4b(a,b){return a.n.b=(KDb(b),b)} +function q4b(a,b){return a.n.b=(KDb(b),b)} +function Hrb(a,b){return !!b&&a.b[b.g]==b} +function NZb(a){return Emb(a.a)||Emb(a.b)} +function QTc(a,b){return Xeb(a.e.b,b.e.b)} +function YTc(a,b){return Xeb(a.e.a,b.e.a)} +function zAc(a,b,c){return AAc(a,b,c,a.b)} +function CAc(a,b,c){return AAc(a,b,c,a.c)} +function yec(a){aec();return !!a&&!a.dc()} +function Ndc(){Ldc();this.b=new Tdc(this)} +function VKb(){VKb=ndb;UKb=new oEd(Pwe,0)} +function oKd(a){this.d=a;fKd.call(this,a)} +function AKd(a){this.c=a;fKd.call(this,a)} +function DKd(a){this.c=a;oKd.call(this,a)} +function hRb(a,b){iRb.call(this,a,b,null)} +function Rub(a){return a.a!=null?a.a:null} +function ADb(a){return a.$H||(a.$H=++yDb)} +function k2b(a){var b;b=a.a;a.a=a.b;a.b=b} +function O0d(a,b){L0d();this.a=a;this.b=b} +function n1d(a,b){h1d();this.b=a;this.c=b} +function Ord(a,b){wrd();this.f=b;this.d=a} +function qc(a,b){Sb(b,a);this.c=a;this.b=b} +function xj(a,b){return cn(a.c).Kd().Xb(b)} +function rm(a,b){return new _p(a,a.gc(),b)} +function ts(a){ns();return ks((ws(),vs),a)} +function Xqe(a){++Sqe;return new Ire(3,a)} +function Xu(a){bk(a,jue);return new jmb(a)} +function bA(a){Zz();return parseInt(a)||-1} +function wgb(a,b,c){return ygb(a,Mgb(b),c)} +function _bd(a,b,c){JD(sbd(a,b),22).Ec(c)} +function YMd(a,b,c){XLd(a.a,c);WLd(a.a,b)} +function $t(a,b,c){var d;d=a.dd(b);d.Rb(c)} +function Ig(a,b,c,d){wg.call(this,a,b,c,d)} +function xtb(a){ytb.call(this,a,null,null)} +function avb(a){Xub();this.b=a;this.a=true} +function ivb(a){fvb();this.b=a;this.a=true} +function Glb(a){if(!a){throw Icb(new Oqb)}} +function BDb(a){if(!a){throw Icb(new gfb)}} +function FDb(a){if(!a){throw Icb(new Fdb)}} +function IDb(a){if(!a){throw Icb(new Hub)}} +function ODb(a){if(!a){throw Icb(new jfb)}} +function etb(a){a.d=new xtb(a);a.e=new Yrb} +function Utb(a){IDb(a.b!=0);return a.a.a.c} +function Vtb(a){IDb(a.b!=0);return a.c.b.c} +function Wgb(a,b){wdb(a,b,b+1,'');return a} +function bUb(a){$Tb();_Tb(this);this.Df(a)} +function ggc(a){this.c=a;this.a=1;this.b=1} +function hxd(a){RD(a,161)&&JD(a,161).mi()} +function zyb(a){return a.b=JD(Ijb(a.a),45)} +function G_b(a,b){return JD(htb(a.a,b),35)} +function mNb(a,b){return !!a.q&&_ib(a.q,b)} +function ZNb(a,b){return a>0?b/(a*a):b*100} +function eOb(a,b){return a>0?b*b/a:b*b*100} +function cs(a){return a.f!=null?a.f:''+a.g} +function ds(a){return a.f!=null?a.f:''+a.g} +function fZc(a){XYc();return a.e.a+a.f.a/2} +function pZc(a){XYc();return a.e.b+a.f.b/2} +function rZc(a,b,c){XYc();return c.e.b-a*b} +function hZc(a,b,c){XYc();return c.e.a-a*b} +function nyc(a,b,c){gyc();return c.Lg(a,b)} +function dic(a,b){Mhc();return Rc(a,b.e,b)} +function xbd(a,b,c){return Ylb(b,zbd(a,c))} +function kcd(a,b,c){gcd();a.nf(b)&&c.Ad(a)} +function Ffd(a,b,c){a.a+=b;a.b+=c;return a} +function Ufd(a,b,c){a.a-=b;a.b-=c;return a} +function Tfd(a,b){a.a=b.a;a.b=b.b;return a} +function Nfd(a){a.a=-a.a;a.b=-a.b;return a} +function Nod(a){this.c=a;Mvd(a,0);Nvd(a,0)} +function lgd(a){aub.call(this);egd(this,a)} +function k8c(){es.call(this,'GROW_TREE',0)} +function QTd(a,b,c){BTd.call(this,a,b,c,2)} +function D1d(a,b){h1d();B1d.call(this,a,b)} +function B1d(a,b){h1d();n1d.call(this,a,b)} +function F1d(a,b){h1d();n1d.call(this,a,b)} +function c1d(a,b){L0d();O0d.call(this,a,b)} +function X6d(a,b){q5d();L6d.call(this,a,b)} +function Z6d(a,b){q5d();X6d.call(this,a,b)} +function _6d(a,b){q5d();X6d.call(this,a,b)} +function b7d(a,b){q5d();_6d.call(this,a,b)} +function l7d(a,b){q5d();L6d.call(this,a,b)} +function n7d(a,b){q5d();l7d.call(this,a,b)} +function t7d(a,b){q5d();L6d.call(this,a,b)} +function RLd(a,b){return a.c.Ec(JD(b,136))} +function RAd(a,b){return JD(bjb(a.e,b),26)} +function SAd(a,b){return JD(bjb(a.e,b),26)} +function Uce(a,b,c){return rde(Nce(a,b),c)} +function jee(a,b,c){return b.xl(a.e,a.c,c)} +function lee(a,b,c){return b.yl(a.e,a.c,c)} +function yee(a,b){return ctd(a.e,JD(b,52))} +function p$d(a,b,c){XEd(rWd(a.a),b,t$d(c))} +function y2d(a,b,c){XEd(m2d(a.a),b,C2d(c))} +function sse(a,b){return (KDb(a),a)+Xdb(b)} +function ele(a){return a==null?null:qdb(a)} +function fle(a){return a==null?null:qdb(a)} +function ble(a){return a==null?null:Goe(a)} +function Zke(a){return a==null?null:zoe(a)} +function seb(a){if(a.o!=null){return}Ieb(a)} +function LD(a){SDb(a==null||SD(a));return a} +function MD(a){SDb(a==null||TD(a));return a} +function OD(a){SDb(a==null||VD(a));return a} +function rn(a,b){return ak(a,b),new ry(a,b)} +function Kf(a,b){this.c=a;me.call(this,a,b)} +function Sf(a,b){this.a=a;Kf.call(this,a,b)} +function Ng(a,b){this.d=a;Jg(this);this.b=b} +function b4d(){FUd.call(this);this.Bb|=tve} +function T_c(){this.a=new Np;this.b=new Np} +function oB(a){this.q=new $wnd.Date(cdb(a))} +function Q$c(){Q$c=ndb;P$c=new nEd('root')} +function jOd(){jOd=ndb;iOd=new LOd;new kPd} +function rKb(){rKb=ndb;qKb=Crb((Vmd(),Umd))} +function xMb(a,b){b.a?yMb(a,b):Azb(a.a,b.b)} +function nAb(a,b){if(iAb){return}Ylb(a.a,b)} +function v_b(a,b){n_b();return OXb(b.d.i,a)} +function Z6b(a,b){G6b();return new e7b(b,a)} +function Mzb(a,b,c){return a.Le(b,c)<=0?c:b} +function Nzb(a,b,c){return a.Le(b,c)<=0?b:c} +function $cd(a,b){return JD(htb(a.b,b),144)} +function bdd(a,b){return JD(htb(a.c,b),233)} +function _fc(a){return JD(amb(a.a,a.b),295)} +function sfd(a){return new Yfd(a.c,a.d+a.a)} +function Qdb(a){return (KDb(a),a)?1231:1237} +function $Lc(a){return zKc(),Zyc(JD(a,203))} +function ZAd(a,b){return JD(bjb(a.b,b),278)} +function aHd(a,b,c){++a.j;a.oj(b,a.Xi(b,c))} +function cHd(a,b,c){++a.j;a.rj();aFd(a,b,c)} +function _g(a,b,c){jg.call(this,a,b,c,null)} +function dh(a,b,c){jg.call(this,a,b,c,null)} +function kBb(a,b){bBb.call(this,a);this.a=b} +function EBb(a,b){bBb.call(this,a);this.a=b} +function oEd(a,b){nEd.call(this,a);this.a=b} +function S4d(a,b){J4d.call(this,a);this.a=b} +function Q7d(a,b){J4d.call(this,a);this.a=b} +function _Jd(a,b){this.c=a;_Fd.call(this,b)} +function u$d(a,b){this.a=a;OZd.call(this,b)} +function D2d(a,b){this.a=a;OZd.call(this,b)} +function pwd(a,b,c){c=Gsd(a,b,3,c);return c} +function Iwd(a,b,c){c=Gsd(a,b,6,c);return c} +function Rzd(a,b,c){c=Gsd(a,b,9,c);return c} +function sIb(a,b){Mub(b,Hwe);a.f=b;return a} +function dMd(a,b){return (b<e)%a.d.length} +function zie(a,b,c){return $de(a.c,a.b,b,c)} +function Jz(a,b,c){return a.apply(b,c);var d} +function z0d(a,b,c){var d;d=a.dd(b);d.Rb(c)} +function ghb(a,b,c){a.a+=Pgb(b,0,c);return a} +function TA(a){!a.a&&(a.a=new bB);return a.a} +function xkb(a,b){var c;c=a.e;a.e=b;return c} +function Jkb(a,b){var c;c=b;return !!a.De(c)} +function Rdb(a,b){Ndb();return a==b?0:a?1:-1} +function Pjb(a,b){a.a._c(a.b,b);++a.b;a.c=-1} +function Gsb(a,b){var c;c=a[Jve];c.call(a,b)} +function Hsb(a,b){var c;c=a[Jve];c.call(a,b)} +function jCb(a,b,c){NBb();XCb(a,b.Te(a.a,c))} +function arb(a,b,c){return _qb(a,JD(b,23),c)} +function kDb(a,b){return sDb(new Array(b),a)} +function Mfb(a){return ddb(_cb(a,32))^ddb(a)} +function PD(a){return String.fromCharCode(a)} +function vz(a){return a==null?null:a.message} +function vy(a){this.a=(Fnb(),new tob(Qb(a)))} +function bq(a){this.a=(bk(a,jue),new jmb(a))} +function iq(a){this.a=(bk(a,jue),new jmb(a))} +function DNb(){this.a=new imb;this.b=new imb} +function LPb(){this.a=new TMb;this.b=new WPb} +function M_b(){this.b=new ltb;this.a=new ltb} +function AEb(){this.b=new Wfd;this.c=new imb} +function WXb(){this.n=new Wfd;this.o=new Wfd} +function rHb(){this.n=new aZb;this.i=new zfd} +function oEc(){this.b=new esb;this.a=new esb} +function HJc(){this.a=new imb;this.d=new imb} +function Mbc(){this.a=new Ckc;this.b=new Wkc} +function BSc(){this.b=new nSc;this.a=new cSc} +function RUc(){this.b=new Yrb;this.a=new Yrb} +function tHb(){rHb.call(this);this.a=new Wfd} +function qYb(a,b,c,d){iYb.call(this,a,b,c,d)} +function r4b(a,b){return a.n.a=(KDb(b),b)+10} +function s4b(a,b){return a.n.a=(KDb(b),b)+10} +function u_b(a,b){n_b();return !OXb(b.d.i,a)} +function ftb(a){hjb(a.e);a.d.b=a.d;a.d.a=a.d} +function fg(a){a.b?fg(a.b):a.f.c.yc(a.e,a.d)} +function Wgc(a,b){pjd(a.f)?Xgc(a,b):Ygc(a,b)} +function jBd(a,b,c){c!=null&&Rwd(b,QBd(a,c))} +function kBd(a,b,c){c!=null&&Swd(b,QBd(a,c))} +function E3d(a,b,c,d){A3d.call(this,a,b,c,d)} +function mge(a,b,c,d){A3d.call(this,a,b,c,d)} +function qge(a,b,c,d){mge.call(this,a,b,c,d)} +function Lge(a,b,c,d){Gge.call(this,a,b,c,d)} +function Nge(a,b,c,d){Gge.call(this,a,b,c,d)} +function Rge(a,b,c,d){Nge.call(this,a,b,c,d)} +function Tge(a,b,c,d){Gge.call(this,a,b,c,d)} +function Wge(a,b,c,d){Tge.call(this,a,b,c,d)} +function Yge(a,b,c,d){Nge.call(this,a,b,c,d)} +function _ge(a,b,c,d){Yge.call(this,a,b,c,d)} +function Bhe(a,b,c,d){uhe.call(this,a,b,c,d)} +function cKd(a,b){Cdb.call(this,BHe+a+HGe+b)} +function BWd(a,b){return b==a||RFd(qWd(b),a)} +function Fhe(a,b){return a.hk().ti().oi(a,b)} +function Ghe(a,b){return a.hk().ti().qi(a,b)} +function zk(a,b){return a.e=JD(a.d.Kb(b),162)} +function l8d(a,b){return ejb(a.a,b,'')==null} +function Seb(a,b){return KDb(a),XD(a)===XD(b)} +function sgb(a,b){return KDb(a),XD(a)===XD(b)} +function Bgb(a,b,c){return a.lastIndexOf(b,c)} +function _p(a,b,c){this.a=a;qc.call(this,b,c)} +function mCb(a){this.c=a;Bwb.call(this,Tte,0)} +function pk(a,b,c){this.c=b;this.b=c;this.a=a} +function Gfd(a,b){a.a+=b.a;a.b+=b.b;return a} +function Vfd(a,b){a.a-=b.a;a.b-=b.b;return a} +function $bd(a){qDb(a.j.c,0);a.a=-1;return a} +function Fce(a,b){var c;c=b.ni(a.a);return c} +function yzd(a,b,c){c=Gsd(a,b,11,c);return c} +function XPb(a,b,c){return Xeb(a[b.a],a[c.a])} +function Njc(a,b){return ofb(a.a.d.p,b.a.d.p)} +function Ojc(a,b){return ofb(b.a.d.p,a.a.d.p)} +function VPc(a,b){return Xeb(a.c-a.s,b.c-b.s)} +function MSc(a,b){return Xeb(a.b.e.a,b.b.e.a)} +function OSc(a,b){return Xeb(a.c.e.a,b.c.e.a)} +function sQb(a,b){return oNb(b,($xc(),Evc),a)} +function CCb(a,b){return a.b.zd(new FCb(a,b))} +function ICb(a,b){return a.b.zd(new LCb(a,b))} +function OCb(a,b){return a.b.zd(new RCb(a,b))} +function _Ld(a,b){return RD(b,16)&&bFd(a.c,b)} +function zYb(a){return !a.c?-1:bmb(a.c.a,a,0)} +function vJd(a){return a<100?null:new iJd(a)} +function yld(a){return a==rld||a==tld||a==sld} +function yTd(a,b,c){return JD(a.c,72).Uk(b,c)} +function zTd(a,b,c){return JD(a.c,72).Vk(b,c)} +function kee(a,b,c){return jee(a,JD(b,344),c)} +function mee(a,b,c){return lee(a,JD(b,344),c)} +function Gee(a,b,c){return Fee(a,JD(b,344),c)} +function Iee(a,b,c){return Hee(a,JD(b,344),c)} +function zn(a,b){return b==null?null:Ov(a.b,b)} +function sAb(a,b){if(iAb){return}!!b&&(a.d=b)} +function Mb(a,b){if(!a){throw Icb(new hfb(b))}} +function Vb(a){if(!a){throw Icb(new kfb(tte))}} +function Xdb(a){return TD(a)?(KDb(a),a):a.se()} +function Yeb(a){return !isNaN(a)&&!isFinite(a)} +function bub(a){Ptb(this);_tb(this);xe(this,a)} +function kmb(a){Wlb(this);mDb(this.c,0,a.Nc())} +function ZIc(a){zIc();this.d=a;this.a=new Dlb} +function lub(a,b,c){this.d=a;this.b=c;this.a=b} +function Krb(a,b,c){this.a=a;this.b=b;this.c=c} +function $sb(a,b,c){this.a=a;this.b=b;this.c=c} +function EKd(a,b){this.c=a;pKd.call(this,a,b)} +function Pwb(a,b){Qwb.call(this,a,a.length,b)} +function HDb(a,b){if(a!=b){throw Icb(new Oqb)}} +function fAb(a){this.a=a;nhb();Pcb(Date.now())} +function Ayb(a){Jjb(a.a);ayb(a.c,a.b);a.b=null} +function Bub(){Bub=ndb;zub=new Cub;Aub=new Eub} +function cHb(a){var b;b=new bHb;b.e=a;return b} +function iCb(a,b,c){NBb();a.a.Wd(b,c);return b} +function FKb(a,b,c){this.b=a;this.c=b;this.a=c} +function BLb(a){var b;b=new yLb;b.b=a;return b} +function BHb(a){zHb();return ks((EHb(),DHb),a)} +function kzb(a){gzb();return ks((uzb(),tzb),a)} +function EAb(a){CAb();return ks((HAb(),GAb),a)} +function gIb(a){eIb();return ks((jIb(),iIb),a)} +function ZIb(a){XIb();return ks((aJb(),_Ib),a)} +function OJb(a){JJb();return ks((RJb(),QJb),a)} +function QLb(a){OLb();return ks((TLb(),SLb),a)} +function USb(a){OSb();return ks((XSb(),WSb),a)} +function uOb(a){sOb();return ks((xOb(),wOb),a)} +function bQb(a){_Pb();return ks((eQb(),dQb),a)} +function VQb(a){TQb();return ks((YQb(),XQb),a)} +function vUb(a){tUb();return ks((yUb(),xUb),a)} +function WYb(a){UYb();return ks((ZYb(),YYb),a)} +function x2b(a){v2b();return ks((A2b(),z2b),a)} +function rYb(a){iYb.call(this,a.d,a.c,a.a,a.b)} +function cZb(a){iYb.call(this,a.d,a.c,a.a,a.b)} +function T5b(a){Q5b();return ks((W5b(),V5b),a)} +function MKd(){MKd=ndb;LKd=SC(aJ,rte,1,0,5,1)} +function RRd(){RRd=ndb;QRd=SC(aJ,rte,1,0,5,1)} +function wSd(){wSd=ndb;vSd=SC(aJ,rte,1,0,5,1)} +function A3b(){A3b=ndb;y3b=new J3b;z3b=new M3b} +function y8b(){y8b=ndb;x8b=new N8b;w8b=new S8b} +function aec(){aec=ndb;$dc=new Dec;_dc=new Fec} +function lic(a){jic();return ks((oic(),nic),a)} +function fhc(a){dhc();return ks((ihc(),hhc),a)} +function Ehc(a){Bhc();return ks((Hhc(),Ghc),a)} +function gjc(a){ejc();return ks((jjc(),ijc),a)} +function vnc(a){tnc();return ks((ync(),xnc),a)} +function Dnc(a){Bnc();return ks((Gnc(),Fnc),a)} +function Qnc(a){Lnc();return ks((Tnc(),Snc),a)} +function Znc(a){Xnc();return ks((aoc(),_nc),a)} +function poc(a){koc();return ks((soc(),roc),a)} +function xoc(a){voc();return ks((Aoc(),zoc),a)} +function Goc(a){Eoc();return ks((Joc(),Ioc),a)} +function Toc(a){Qoc();return ks((Woc(),Voc),a)} +function _oc(a){Zoc();return ks((cpc(),bpc),a)} +function lpc(a){jpc();return ks((opc(),npc),a)} +function xpc(a){vpc();return ks((Apc(),zpc),a)} +function Npc(a){Lpc();return ks((Qpc(),Ppc),a)} +function Wpc(a){Upc();return ks((Zpc(),Ypc),a)} +function dqc(a){bqc();return ks((gqc(),fqc),a)} +function mqc(a){kqc();return ks((pqc(),oqc),a)} +function uqc(a){sqc();return ks((xqc(),wqc),a)} +function Src(a){Qrc();return ks((Vrc(),Urc),a)} +function $rc(a){Yrc();return ks((bsc(),asc),a)} +function Gyc(a){Byc();return ks((Jyc(),Iyc),a)} +function Qyc(a){Nyc();return ks((Tyc(),Syc),a)} +function azc(a){Yyc();return ks((dzc(),czc),a)} +function ozc(a){jzc();return ks((rzc(),qzc),a)} +function Ezc(a){Czc();return ks((Hzc(),Gzc),a)} +function Ozc(a){Mzc();return ks((Rzc(),Qzc),a)} +function Wzc(a){Uzc();return ks((Zzc(),Yzc),a)} +function dAc(a){bAc();return ks((gAc(),fAc),a)} +function mAc(a){kAc();return ks((pAc(),oAc),a)} +function vAc(a){tAc();return ks((yAc(),xAc),a)} +function PAc(a){NAc();return ks((SAc(),RAc),a)} +function YAc(a){WAc();return ks((_Ac(),$Ac),a)} +function fBc(a){dBc();return ks((iBc(),hBc),a)} +function f8b(a){c8b();return ks((i8b(),h8b),a)} +function ZGc(a){XGc();return ks((aHc(),_Gc),a)} +function Rmc(a,b){return (KDb(a),a)+(KDb(b),b)} +function QJc(a){OJc();return ks((TJc(),SJc),a)} +function UMc(a){SMc();return ks((XMc(),WMc),a)} +function aNc(a){$Mc();return ks((dNc(),cNc),a)} +function DPc(a){BPc();return ks((GPc(),FPc),a)} +function zIc(){zIc=ndb;xIc=(mmd(),lmd);yIc=Tld} +function BRc(a){zRc();return ks((ERc(),DRc),a)} +function xSc(a){sSc();return ks((ASc(),zSc),a)} +function tVc(a){qVc();return ks((wVc(),vVc),a)} +function hWc(a){fWc();return ks((kWc(),jWc),a)} +function QXc(a){OXc();return ks((TXc(),SXc),a)} +function YXc(a){WXc();return ks((_Xc(),$Xc),a)} +function Y$c(a){T$c();return ks((_$c(),$$c),a)} +function F_c(a){C_c();return ks((I_c(),H_c),a)} +function v0c(a){s0c();return ks((y0c(),x0c),a)} +function F0c(a){C0c();return ks((I0c(),H0c),a)} +function I1c(a){F1c();return ks((L1c(),K1c),a)} +function S1c(a){P1c();return ks((V1c(),U1c),a)} +function D2c(a){B2c();return ks((G2c(),F2c),a)} +function Z2c(a){W2c();return ks((a3c(),_2c),a)} +function G3c(a){E3c();return ks((J3c(),I3c),a)} +function BFc(a){!a.e&&(a.e=new imb);return a.e} +function eXb(a,b,c){this.e=b;this.b=a;this.d=c} +function jMb(a,b,c){this.a=a;this.b=b;this.c=c} +function P0b(a,b,c){this.a=a;this.b=b;this.c=c} +function W3b(a,b,c){this.a=a;this.b=b;this.c=c} +function O4c(a,b,c){this.a=a;this.b=b;this.c=c} +function zBc(a,b,c){this.a=a;this.c=b;this.b=c} +function iWb(a,b,c){this.b=a;this.a=b;this.c=c} +function l6b(a,b,c){this.b=a;this.a=b;this.c=c} +function XPc(a,b){this.c=a;this.a=b;this.b=b-a} +function n6c(a){i6c();return ks((q6c(),p6c),a)} +function n8c(a){j8c();return ks((q8c(),p8c),a)} +function v8c(a){t8c();return ks((y8c(),x8c),a)} +function G8c(a){E8c();return ks((J8c(),I8c),a)} +function e8c(a){_7c();return ks((h8c(),g8c),a)} +function b7c(a){_6c();return ks((e7c(),d7c),a)} +function R7c(a){P7c();return ks((U7c(),T7c),a)} +function k5c(a){f5c();return ks((n5c(),m5c),a)} +function O5c(a){J5c();return ks((R5c(),Q5c),a)} +function N9c(a){I9c();return ks((Q9c(),P9c),a)} +function Y9c(a){T9c();return ks((_9c(),$9c),a)} +function Ied(a){Ged();return ks((Led(),Ked),a)} +function Wed(a){Ued();return ks((Zed(),Yed),a)} +function Wjd(a){Ujd();return ks((Zjd(),Yjd),a)} +function tjd(a){ojd();return ks((wjd(),vjd),a)} +function Djd(a){Bjd();return ks((Gjd(),Fjd),a)} +function Mjd(a){Kjd();return ks((Pjd(),Ojd),a)} +function ygd(a){wgd();return ks((Bgd(),Agd),a)} +function bhd(a){_gd();return ks((ehd(),dhd),a)} +function cld(a){_kd();return ks((fld(),eld),a)} +function nld(a){lld();return ks((qld(),pld),a)} +function Bld(a){xld();return ks((Eld(),Dld),a)} +function Pld(a){Lld();return ks((Sld(),Rld),a)} +function Okd(a){Lkd();return ks((Rkd(),Qkd),a)} +function gkd(a){ekd();return ks((jkd(),ikd),a)} +function Dkd(a){Bkd();return ks((Gkd(),Fkd),a)} +function Dnd(a){Bnd();return ks((Pnd(),Ond),a)} +function knd(a){ind();return ks((nnd(),mnd),a)} +function tnd(a){rnd();return ks((wnd(),vnd),a)} +function smd(a){mmd();return ks((vmd(),umd),a)} +function Nmd(a){Lmd();return ks((Qmd(),Pmd),a)} +function Xmd(a){Vmd();return ks(($md(),Zmd),a)} +function Vod(a){Tod();return ks((Yod(),Xod),a)} +function Iqd(a){Gqd();return ks((Lqd(),Kqd),a)} +function gEd(a){eEd();return ks((jEd(),iEd),a)} +function I5d(a,b,c){q5d();A5d.call(this,a,b,c)} +function d7d(a,b,c){q5d();M6d.call(this,a,b,c)} +function f7d(a,b,c){q5d();d7d.call(this,a,b,c)} +function h7d(a,b,c){q5d();d7d.call(this,a,b,c)} +function j7d(a,b,c){q5d();h7d.call(this,a,b,c)} +function r7d(a,b,c){q5d();p7d.call(this,a,b,c)} +function p7d(a,b,c){q5d();M6d.call(this,a,b,c)} +function v7d(a,b,c){q5d();M6d.call(this,a,b,c)} +function x7d(a,b,c){q5d();v7d.call(this,a,b,c)} +function oDd(a,b,c){this.a=a;this.c=b;this.b=c} +function wDd(a,b,c){this.a=a;this.b=b;this.c=c} +function Cad(a,b,c){this.a=a;this.b=b;this.c=c} +function Kad(a,b,c){this.a=a;this.b=b;this.c=c} +function prd(a,b,c){this.a=a;this.b=b;this.c=c} +function ZNd(a,b,c){this.a=a;this.b=b;this.c=c} +function e5d(a,b,c){this.e=a;this.a=b;this.c=c} +function Mg(a){this.d=a;Jg(this);this.b=ed(a.d)} +function xx(a,b){wx.call(this,a,Mm(new tnb(b)))} +function ek(a,b){Qb(a);Qb(b);return new fk(a,b)} +function Zq(a,b){Qb(a);Qb(b);return new dr(a,b)} +function br(a,b){Qb(a);Qb(b);return new jr(a,b)} +function ur(a,b){Qb(a);Qb(b);return new Ir(a,b)} +function Ytb(a){IDb(a.b!=0);return $tb(a,a.a.a)} +function Ztb(a){IDb(a.b!=0);return $tb(a,a.c.b)} +function oYd(a){!a.c&&(a.c=new V7d);return a.c} +function Zu(a){var b;b=new aub;Vq(b,a);return b} +function Ux(a){var b;b=new Bzb;Vq(b,a);return b} +function Rx(a){var b;b=new esb;or(b,a);return b} +function Vu(a){var b;b=new imb;or(b,a);return b} +function JD(a,b){SDb(a==null||ID(a,b));return a} +function Qwb(a,b,c){Ewb.call(this,b,c);this.a=a} +function cB(a,b){this.c=a;this.b=b;this.a=false} +function UAb(){this.a=';,;';this.b='';this.c=''} +function oBb(a,b,c){this.b=a;twb.call(this,b,c)} +function ytb(a,b,c){this.c=a;Ekb.call(this,b,c)} +function GSb(a,b,c){FSb.call(this,a,b);this.b=c} +function mDb(a,b,c){jDb(c,0,a,b,c.length,false)} +function iSb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} +function cYb(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} +function lCb(a,b){if(b){a.b=b;a.a=(_Ab(b),b.a)}} +function CDb(a,b){if(!a){throw Icb(new hfb(b))}} +function PDb(a,b){if(!a){throw Icb(new kfb(b))}} +function GDb(a,b){if(!a){throw Icb(new Gdb(b))}} +function Dkc(a,b){qkc();return ofb(a.d.p,b.d.p)} +function nZc(a,b){XYc();return Xeb(a.e.b,b.e.b)} +function oZc(a,b){XYc();return Xeb(a.e.a,b.e.a)} +function Xic(a,b){return ofb(oZb(a.d),oZb(b.d))} +function Myb(a,b){return !!b&&Nyb(a,b.d)?b:null} +function Zfc(a,b){return b==(mmd(),lmd)?a.c:a.d} +function tfd(a){return new Yfd(a.c+a.b,a.d+a.a)} +function EQd(a){return a!=null&&!kQd(a,$Pd,_Pd)} +function BQd(a,b){return (HQd(a)<<4|HQd(b))&Bue} +function xfd(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} +function e2b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} +function h2b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} +function s4d(a,b){var c;c=a.c;r4d(a,b);return c} +function $nd(a,b){b<0?(a.g=-1):(a.g=b);return a} +function Rfd(a,b){Ofd(a);a.a*=b;a.b*=b;return a} +function NXd(a,b,c){iXd.call(this,a,b);this.c=c} +function Ide(a,b,c){iXd.call(this,a,b);this.c=c} +function xSd(a){wSd();iSd.call(this);this._h(a)} +function Wce(){pce();Xce.call(this,(WQd(),VQd))} +function Wqe(a){Tqe();++Sqe;return new Fre(0,a)} +function sie(){sie=ndb;rie=(Fnb(),new tob($Ie))} +function mx(){mx=ndb;new ox((il(),hl),(Uk(),Tk))} +function $Nb(){this.b=Reb(MD(mEd((ZOb(),TOb))))} +function Jq(a){this.b=a;this.a=bn(this.b.a).Md()} +function dr(a,b){this.b=a;this.a=b;xl.call(this)} +function jr(a,b){this.a=a;this.b=b;xl.call(this)} +function lZd(a,b,c){this.a=a;LYd.call(this,b,c)} +function qZd(a,b,c){this.a=a;LYd.call(this,b,c)} +function zAd(a,b,c){var d;d=new GC(c);kC(a,b,d)} +function pDb(a,b,c){var d;d=a[b];a[b]=c;return d} +function iDb(a){var b;b=a.slice();return XC(b,a)} +function sHb(a){var b;b=a.n;return a.a.b+b.d+b.a} +function pIb(a){var b;b=a.n;return a.e.b+b.d+b.a} +function qIb(a){var b;b=a.n;return a.e.a+b.b+b.c} +function wtb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} +function Qtb(a,b){Ttb(a,b,a.c.b,a.c);return true} +function XXb(a){if(a.a){return a.a}return qWb(a)} +function SDb(a){if(!a){throw Icb(new Peb(null))}} +function MUb(a,b){return LUb(a,new FSb(b.a,b.b))} +function uWb(a){return !vWb(a)&&a.c.i.c==a.d.i.c} +function egc(a,b){return a.c=b){throw Icb(new Ddb)}} +function hjb(a){a.f=new ysb(a);a.i=new Ssb(a);++a.g} +function tvb(a){this.b=new jmb(11);this.a=(zqb(),a)} +function iyb(a){this.b=null;this.a=(zqb(),!a?wqb:a)} +function owb(a,b){this.e=a;this.d=(b&64)!=0?b|Pte:b} +function Ewb(a,b){this.c=0;this.d=a;this.b=b|64|Pte} +function hIc(a){this.a=fIc(a.a);this.b=new kmb(a.b)} +function Hjc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} +function rKc(a){var b;b=a;while(b.f){b=b.f}return b} +function dmc(a){if(a.e){return imc(a.e)}return null} +function Nld(a){Lld();return !a.Gc(Hld)&&!a.Gc(Jld)} +function gfd(a,b,c){bfd();return ffd(a,b)&&ffd(a,c)} +function Alc(a,b,c){return Blc(a,JD(b,12),JD(c,12))} +function MZd(a,b){return b.Sh()?ctd(a.b,JD(b,52)):b} +function ufd(a){return new Yfd(a.c+a.b/2,a.d+a.a/2)} +function myc(a,b,c){b.of(c,Reb(MD(bjb(a.b,c)))*a.a)} +function n0c(a,b){b.Tg("General 'Rotator",1);m0c(a)} +function L1d(a,b,c,d,e){M1d.call(this,a,b,c,d,e,-1)} +function _1d(a,b,c,d,e){a2d.call(this,a,b,c,d,e,-1)} +function A3d(a,b,c,d){VXd.call(this,a,b,c);this.b=d} +function Gge(a,b,c,d){NXd.call(this,a,b,c);this.b=d} +function Vbe(a){wGd.call(this,a,false);this.a=false} +function Ind(){Cnd.call(this,'LOOKAHEAD_LAYOUT',1)} +function Mnd(){Cnd.call(this,'LAYOUT_NEXT_LEVEL',3)} +function pLd(a){this.b=a;oKd.call(this,a);oLd(this)} +function xLd(a){this.b=a;DKd.call(this,a);wLd(this)} +function Rj(a,b){this.b=a;yj.call(this,a.b);this.a=b} +function H3d(a,b,c){this.a=a;E3d.call(this,b,c,5,6)} +function uhe(a,b,c,d){this.b=a;VXd.call(this,b,c,d)} +function jib(a,b,c){Whb();this.e=a;this.d=b;this.a=c} +function ctb(a,b){KDb(b);while(a.Ob()){b.Ad(a.Pb())}} +function Zqe(a,b){Tqe();++Sqe;return new $re(a,b,0)} +function _qe(a,b){Tqe();++Sqe;return new $re(6,a,b)} +function Dgb(a,b){return sgb(a.substr(0,b.length),b)} +function _ib(a,b){return VD(b)?djb(a,b):!!vsb(a.f,b)} +function qD(a){return _C(~a.l&dve,~a.m&dve,~a.h&eve)} +function WD(a){return typeof a===gte||typeof a===kte} +function Gl(a){return new Yr(new Jl(a.a.length,a.a))} +function gnb(a){return new gCb(null,fnb(a,a.length))} +function Rkb(a){if(!a){throw Icb(new Hub)}return a.d} +function zlb(a){var b;b=vlb(a);IDb(b!=null);return b} +function Alb(a){var b;b=wlb(a);IDb(b!=null);return b} +function kv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} +function bsb(a,b){var c;c=a.a.yc(b,a);return c==null} +function vzb(a,b){return a.a.yc(b,(Ndb(),Ldb))==null} +function VNb(a,b){return a>0?$wnd.Math.log(a/b):-100} +function zmc(a,b){if(!b){return false}return xe(a,b)} +function _qb(a,b,c){Erb(a.a,b);return pDb(a.b,b.g,c)} +function jxb(a,b,c){pxb(c,a.a.c.length);fmb(a.a,c,b)} +function Rmb(a,b,c,d){DDb(b,c,a.length);Vmb(a,b,c,d)} +function Vmb(a,b,c,d){var e;for(e=b;e0?1:0} +function cib(a){return a.e==0?a:new jib(-a.e,a.d,a.a)} +function $ke(a){return a==ove?gJe:a==pve?'-INF':''+a} +function ale(a){return a==ove?gJe:a==pve?'-INF':''+a} +function fnb(a,b){return nwb(b,a.length),new Kwb(a,b)} +function ugb(a,b,c,d,e){while(b=a.g} +function HIc(a,b,c){var d;d=NIc(a,b,c);return GIc(a,d)} +function uDb(a,b){var c;c=console[a];c.call(console,b)} +function vAd(a,b){var c;c=a.a.length;BB(a,c);DB(a,c,b)} +function bHd(a,b){var c;++a.j;c=a.Cj();a.pj(a.Xi(c,b))} +function Cwb(a,b){KDb(b);while(a.c=a){return new HBb}return yBb(a-1)} +function Lub(a){if(a==null){throw Icb(new Ufb)}return a} +function KDb(a){if(a==null){throw Icb(new Ufb)}return a} +function hTd(a){!a.a&&(a.a=new VXd(z6,a,4));return a.a} +function h0d(a){!a.d&&(a.d=new VXd(w6,a,1));return a.d} +function vId(a){if(a.p!=3)throw Icb(new jfb);return a.e} +function wId(a){if(a.p!=4)throw Icb(new jfb);return a.e} +function yId(a){if(a.p!=6)throw Icb(new jfb);return a.f} +function EId(a){if(a.p!=3)throw Icb(new jfb);return a.j} +function FId(a){if(a.p!=4)throw Icb(new jfb);return a.j} +function HId(a){if(a.p!=6)throw Icb(new jfb);return a.k} +function acd(){ubd.call(this);qDb(this.j.c,0);this.a=-1} +function K9c(){es.call(this,'DELAUNAY_TRIANGULATION',0)} +function us(){ns();return WC(OC(IG,1),kue,537,0,[ms])} +function Wad(a,b,c){Pad();return c.Kg(a,JD(b.jd(),147))} +function hyd(a,b){YEd((!a.a&&(a.a=new D2d(a,a)),a.a),b)} +function zqd(a,b){a.c<0||a.b.b=0?a.hi(c):atd(a,b)} +function Ceb(a,b){var c;c=yeb('',a);c.n=b;c.i=1;return c} +function wde(a){a.c==-2&&Cde(a,tce(a.g,a.b));return a.c} +function Y7d(a){!a.b&&(a.b=new n8d(new j8d));return a.b} +function qx(a,b){mx();return new ox(new rl(a),new bl(b))} +function Qu(a){bk(a,mue);return Xy(Jcb(Jcb(5,a),a/10|0))} +function Hx(){Hx=ndb;Gx=new Jx(WC(OC(LK,1),$te,45,0,[]))} +function zle(){Myd.call(this,ZIe,(Mje(),Lje));vle(this)} +function Y8d(){Myd.call(this,uIe,(hRd(),gRd));S8d(this)} +function ry(a,b){Vp.call(this,Nnb(Qb(a),Qb(b)));this.a=b} +function Vs(a,b,c,d){ap.call(this,a,b);this.d=c;this.a=d} +function ep(a,b,c,d){ap.call(this,a,c);this.a=b;this.f=d} +function qLd(a,b){this.b=a;pKd.call(this,a,b);oLd(this)} +function yLd(a,b){this.b=a;EKd.call(this,a,b);wLd(this)} +function Rlb(a){this.d=a;this.a=this.d.b;this.b=this.d.c} +function rFb(a){a.b=false;a.c=false;a.d=false;a.a=false} +function wpb(a){!a.a&&(a.a=new Xpb(a.c.vc()));return a.a} +function ypb(a){!a.b&&(a.b=new Qpb(a.c.ec()));return a.b} +function zpb(a){!a.d&&(a.d=new Eob(a.c.Bc()));return a.d} +function xfb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a} +function GCc(a,b){var c;c=new s$b(a);nDb(b.c,c);return c} +function cMb(a,b){qMb(JD(b.b,68),a);_lb(b.a,new hMb(a))} +function fKb(a,b){a.u.Gc((Lld(),Hld))&&dKb(a,b);hKb(a,b)} +function Jub(a,b){return XD(a)===XD(b)||a!=null&&pb(a,b)} +function ejb(a,b,c){return VD(b)?fjb(a,b,c):wsb(a.f,b,c)} +function Mnb(a){Fnb();return !a?(zqb(),zqb(),yqb):a.Me()} +function f8c(){_7c();return WC(OC(P0,1),kue,477,0,[$7c])} +function o8c(){j8c();return WC(OC(Q0,1),kue,546,0,[i8c])} +function O9c(){I9c();return WC(OC(Y0,1),kue,527,0,[H9c])} +function $qb(a,b){return Grb(a.a,b)?a.b[JD(b,23).g]:null} +function Lgb(a){return String.fromCharCode.apply(null,a)} +function pgb(a,b){RDb(b,a.length);return a.charCodeAt(b)} +function ybd(a){a.j.c.length=0;ze(a.c);$bd(a.a);return a} +function yde(a){a.e==_Ie&&Ede(a,yce(a.g,a.b));return a.e} +function zde(a){a.f==_Ie&&Fde(a,zce(a.g,a.b));return a.f} +function swd(a){!a.b&&(a.b=new Wge(L3,a,4,7));return a.b} +function twd(a){!a.c&&(a.c=new Wge(L3,a,5,8));return a.c} +function Dzd(a){!a.c&&(a.c=new A3d(R3,a,9,9));return a.c} +function rvd(a){!a.n&&(a.n=new A3d(P3,a,1,7));return a.n} +function Gh(a){var b;b=a.b;!b&&(a.b=b=new Vh(a));return b} +function ze(a){var b;for(b=a.Jc();b.Ob();){b.Pb();b.Qb()}} +function Ak(a,b,c){var d;d=JD(a.d.Kb(c),162);!!d&&d.Nb(b)} +function My(a,b){return new Ky(JD(Qb(a),51),JD(Qb(b),51))} +function SBb(a,b){aBb(a);return new gCb(a,new xCb(b,a.a))} +function WBb(a,b){aBb(a);return new gCb(a,new PCb(b,a.a))} +function XBb(a,b){aBb(a);return new kBb(a,new DCb(b,a.a))} +function YBb(a,b){aBb(a);return new EBb(a,new JCb(b,a.a))} +function eBd(a,b){GEd(a,Reb(CAd(b,'x')),Reb(CAd(b,'y')))} +function rBd(a,b){GEd(a,Reb(CAd(b,'x')),Reb(CAd(b,'y')))} +function qTb(a,b){mTb();return Xeb((KDb(a),a),(KDb(b),b))} +function DFb(a,b){return Xeb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} +function vSb(a,b){return Xeb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} +function uQd(a){return a!=null&&Aob(cQd,a.toLowerCase())} +function tec(a){aec();var b;b=JD(a.g,9);b.n.a=a.d.c+b.d.b} +function qWb(a){var b;b=F_b(a);if(b){return b}return null} +function Eyd(a,b,c,d){Dyd(a,b,c,false);h_d(a,d);return a} +function Jbc(a,b,c){xkc(a.a,c);Mjc(c);Okc(a.b,c);fkc(b,c)} +function fjc(a,b,c,d){es.call(this,a,b);this.a=c;this.b=d} +function KJc(a,b,c,d){this.a=a;this.c=b;this.b=c;this.d=d} +function lLc(a,b,c,d){this.c=a;this.b=b;this.a=c;this.d=d} +function QLc(a,b,c,d){this.c=a;this.b=b;this.d=c;this.a=d} +function UWb(a,b,c,d){this.a=a;this.e=b;this.d=c;this.c=d} +function aQc(a,b,c,d){this.a=a;this.d=b;this.c=c;this.b=d} +function Afd(a,b,c,d){this.c=a;this.d=b;this.b=c;this.a=d} +function lgb(a,b,c){this.a=zue;this.d=a;this.b=b;this.c=c} +function jy(a,b){this.b=a;this.c=b;this.a=new Trb(this.b)} +function Yvb(a,b){this.d=(KDb(a),a);this.a=16449;this.c=b} +function nlc(a,b,c,d){mlc.call(this,a,c,d,false);this.f=b} +function utd(a,b,c){var d,e;d=mQd(a);e=b.qi(c,d);return e} +function syd(a){var b,c;c=(b=new q0d,b);j0d(c,a);return c} +function tyd(a){var b,c;c=(b=new q0d,b);n0d(c,a);return c} +function Bzd(a){!a.b&&(a.b=new A3d(N3,a,12,3));return a.b} +function HEc(a){this.a=new imb;this.e=SC(cE,Ote,54,a,0,2)} +function yNd(a){this.f=a;this.c=this.f.e;a.f>0&&xNd(this)} +function v5d(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function nDd(a,b,c,d){this.a=a;this.b=b;this.d=c;this.c=d} +function oCd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function qCd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function f5d(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} +function A6d(a,b,c,d){q5d();K5d.call(this,b,c,d);this.a=a} +function H6d(a,b,c,d){q5d();K5d.call(this,b,c,d);this.a=a} +function Tg(a,b){this.a=a;Ng.call(this,a,JD(a.d,16).dd(b))} +function yod(a,b){return Xeb(Hod(a)*God(a),Hod(b)*God(b))} +function zod(a,b){return Xeb(Hod(a)*God(a),Hod(b)*God(b))} +function nd(a){var b;return b=a.f,!b?(a.f=new me(a,a.c)):b} +function Fnb(){Fnb=ndb;Cnb=new Qnb;Dnb=new hob;Enb=new pob} +function zqb(){zqb=ndb;wqb=new Bqb;xqb=new Bqb;yqb=new Gqb} +function Lg(a){gg(a.d);if(a.d.d!=a.c){throw Icb(new Oqb)}} +function _tb(a){a.a.a=a.c;a.c.b=a.a;a.a.b=a.c.a=null;a.b=0} +function Ijb(a){IDb(a.b0)return Wu(a);return new imb} +function $y(a){if(a.n){a.e!==sue&&a.he();a.j=null}return a} +function bYb(a,b){a.b=b.b;a.c=b.c;a.d=b.d;a.a=b.a;return a} +function hq(a,b,c){Ylb(a.a,(ak(b,c),new ap(b,c)));return a} +function _bc(a,b){JD(lNb(a,(Krc(),Xqc)),16).Ec(b);return b} +function A9b(a,b){return Rc(a,JD(lNb(b,($xc(),Vwc)),15),b)} +function V$b(a){return vwd(a)&&Odb(LD(Pud(a,($xc(),kwc))))} +function Rdc(a,b,c){Ldc();return pFb(JD(bjb(a.e,b),516),c)} +function Tfc(a,b,c){a.i=0;a.e=0;if(b==c){return}Pfc(a,b,c)} +function Ufc(a,b,c){a.i=0;a.e=0;if(b==c){return}Qfc(a,b,c)} +function sCb(a,b,c,d){this.b=a;this.c=d;Bwb.call(this,b,c)} +function DFc(a,b){this.g=a;this.d=WC(OC(RP,1),nye,9,0,[b])} +function gmc(a,b){if(!!a.d&&!a.d.a){fmc(a.d,b);gmc(a.d,b)}} +function hmc(a,b){if(!!a.e&&!a.e.a){fmc(a.e,b);hmc(a.e,b)}} +function JPc(a,b){return pQc(a.j,b.s,b.c)+pQc(b.e,a.s,a.c)} +function xod(a,b){return -Xeb(Hod(a)*God(a),Hod(b)*God(b))} +function tqd(a){return JD(a.jd(),147).Og()+':'+qdb(a.kd())} +function Lyd(){Iyd(this,new Fxd);this.wb=(jRd(),iRd);hRd()} +function yHc(a){this.b=new JHc;this.a=a;$wnd.Math.random()} +function m1b(a){this.b=new imb;$lb(this.b,this.b);this.a=a} +function qTc(a,b){new aub;this.a=new jgd;this.b=a;this.c=b} +function Iub(){qz.call(this,'There is no more element.')} +function Oz(a){Iz();$wnd.setTimeout(function(){throw a},0)} +function $Hc(a){a.Tg('No crossing minimization',1);a.Ug()} +function Pbd(a,b){rb(a);rb(b);return bs(JD(a,23),JD(b,23))} +function xAd(a,b,c){var d,e;d=Xdb(c);e=new _B(d);kC(a,b,e)} +function b2d(a,b,c,d,e,f){a2d.call(this,a,b,c,d,e,f?-2:-1)} +function qhe(a,b,c,d){iXd.call(this,b,c);this.b=a;this.a=d} +function xu(a){this.b=a;this.c=a;a.e=null;a.c=null;this.a=1} +function Azd(a){!a.a&&(a.a=new A3d(Q3,a,10,11));return a.a} +function sWd(a){!a.q&&(a.q=new A3d(A6,a,11,10));return a.q} +function vWd(a){!a.s&&(a.s=new A3d(G6,a,21,17));return a.s} +function ND(a){SDb(a==null||WD(a)&&!(a.Rm===rdb));return a} +function Rb(a,b){if(a==null){throw Icb(new Vfb(b))}return a} +function Ky(a,b){ui.call(this,new iyb(a));this.a=a;this.b=b} +function djb(a,b){return b==null?!!vsb(a.f,null):Osb(a.i,b)} +function Qx(a){return RD(a,18)?new gsb(JD(a,18)):Rx(a.Jc())} +function Onb(a){Fnb();return RD(a,59)?new nqb(a):new $ob(a)} +function $q(a){Qb(a);return vr(new Yr(Dr(a.a.Jc(),new Dl)))} +function Ti(a){return new gj(a,a.e.Pd().gc()*a.c.Pd().gc())} +function dj(a){return new qj(a,a.e.Pd().gc()*a.c.Pd().gc())} +function Az(a){return !!a&&!!a.hashCode?a.hashCode():ADb(a)} +function udb(a){!a?vte:dz(a,a.ge());String.fromCharCode(10)} +function IRb(a,b){var c;c=dsb(a.a,b);c&&(b.d=null);return c} +function aFb(a,b,c){if(a.f){return a.f.cf(b,c)}return false} +function EAc(a,b,c,d){VC(a.c[b.g],c.g,d);VC(a.c[c.g],b.g,d)} +function HAc(a,b,c,d){VC(a.c[b.g],b.g,c);VC(a.b[b.g],b.g,d)} +function OTc(a,b,c){return Reb(MD(c.a))<=a&&Reb(MD(c.b))>=b} +function jCc(){this.d=new aub;this.b=new Yrb;this.c=new imb} +function PNc(){this.b=new esb;this.d=new aub;this.e=new Jxb} +function uNb(){this.c=new Wfd;this.d=new Wfd;this.e=new Wfd} +function BWb(){this.a=new jgd;this.b=(bk(3,jue),new jmb(3))} +function BFb(a){this.c=a;this.b=new Dzb(JD(Qb(new EFb),51))} +function tSb(a){this.c=a;this.b=new Dzb(JD(Qb(new wSb),51))} +function zMb(a){this.b=a;this.a=new Dzb(JD(Qb(new CMb),51))} +function g5d(a,b){this.e=a;this.a=aJ;this.b=nhe(b);this.c=b} +function Bfd(a){this.c=a.c;this.d=a.d;this.b=a.b;this.a=a.a} +function cJd(a,b,c,d,e,f){this.a=a;PId.call(this,b,c,d,e,f)} +function XJd(a,b,c,d,e,f){this.a=a;PId.call(this,b,c,d,e,f)} +function dee(a,b,c,d,e,f,g){return new jje(a.e,b,c,d,e,f,g)} +function Egb(a,b,c){return c>=0&&sgb(a.substr(c,b.length),b)} +function lEd(a,b){return RD(b,147)&&sgb(a.b,JD(b,147).Og())} +function Rbe(a,b){return a.a?b.Dh().Jc():JD(b.Dh(),72).Gi()} +function Vpb(a,b){var c;c=a.b.Oc(b);Wpb(c,a.b.gc());return c} +function Mub(a,b){if(a==null){throw Icb(new Vfb(b))}return a} +function xWd(a){if(!a.u){wWd(a);a.u=new u$d(a,a)}return a.u} +function bud(a){var b;b=JD(fud(a,16),29);return !b?a.fi():b} +function dz(a,b){var c;c=ueb(a.Pm);return b==null?c:c+': '+b} +function Ggb(a,b,c){QDb(b,c,a.length);return a.substr(b,c-b)} +function vIb(a,b){rHb.call(this);kIb(this);this.a=a;this.c=b} +function Knd(){Cnd.call(this,'FIXED_INTEGER_RATIO_BOXES',2)} +function Enc(){Bnc();return WC(OC(QV,1),kue,422,0,[znc,Anc])} +function yoc(){voc();return WC(OC(UV,1),kue,419,0,[toc,uoc])} +function apc(){Zoc();return WC(OC(XV,1),kue,476,0,[Yoc,Xoc])} +function vqc(){sqc();return WC(OC(cW,1),kue,420,0,[qqc,rqc])} +function _rc(){Yrc();return WC(OC(eW,1),kue,423,0,[Xrc,Wrc])} +function Xzc(){Uzc();return WC(OC(pW,1),kue,421,0,[Szc,Tzc])} +function RJc(){OJc();return WC(OC(NX,1),kue,518,0,[NJc,MJc])} +function bNc(){$Mc();return WC(OC(HY,1),kue,508,0,[YMc,ZMc])} +function VMc(){SMc();return WC(OC(GY,1),kue,509,0,[RMc,QMc])} +function EPc(){BPc();return WC(OC(cZ,1),kue,515,0,[APc,zPc])} +function CRc(){zRc();return WC(OC(xZ,1),kue,454,0,[xRc,yRc])} +function ZXc(){WXc();return WC(OC(L$,1),kue,425,0,[VXc,UXc])} +function Z$c(){T$c();return WC(OC(t_,1),kue,487,0,[R$c,S$c])} +function w0c(){s0c();return WC(OC(I_,1),kue,426,0,[q0c,r0c])} +function vOb(){sOb();return WC(OC(hO,1),kue,424,0,[qOb,rOb])} +function y2b(){v2b();return WC(OC(cR,1),kue,502,0,[u2b,t2b])} +function l5c(){f5c();return WC(OC(o0,1),kue,478,0,[d5c,e5c])} +function w8c(){t8c();return WC(OC(R0,1),kue,428,0,[s8c,r8c])} +function Z9c(){T9c();return WC(OC(Z0,1),kue,427,0,[S9c,R9c])} +function Ssd(a,b,c,d){return c>=0?a.Rh(b,c,d):a.zh(null,c,d)} +function yqd(a){if(a.b.b==0){return a.a.uf()}return Ytb(a.b)} +function xId(a){if(a.p!=5)throw Icb(new jfb);return ddb(a.f)} +function GId(a){if(a.p!=5)throw Icb(new jfb);return ddb(a.k)} +function NYd(a){XD(a.a)===XD((jWd(),iWd))&&OYd(a);return a.a} +function XQc(a,b){UQc(this,new Yfd(a.a,a.b));VQc(this,Zu(b))} +function Np(){Mp.call(this,new Zrb(Jv(12)));Lb(true);this.a=2} +function cse(a,b,c){Tqe();Uqe.call(this,a);this.b=b;this.a=c} +function A5d(a,b,c){q5d();r5d.call(this,b);this.a=a;this.b=c} +function Cz(a,b){var c=Bz[a.charCodeAt(0)];return c==null?a:c} +function Px(a,b){Rb(a,'set1');Rb(b,'set2');return new ay(a,b)} +function Mmb(a,b){EDb(b);return Omb(a,SC(cE,Pue,30,b,15,1),b)} +function R6c(a,b){a.b=b;a.c>0&&a.b>0&&(a.g=h7c(a.c,a.b,a.a))} +function S6c(a,b){a.c=b;a.c>0&&a.b>0&&(a.g=h7c(a.c,a.b,a.a))} +function vtb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} +function Xtb(a){return a.b==0?null:(IDb(a.b!=0),$tb(a,a.a.a))} +function cjb(a,b){return b==null?Wd(vsb(a.f,null)):Psb(a.i,b)} +function fyb(a,b,c,d,e){return new Oyb(a,(gzb(),ezb),b,c,d,e)} +function eKb(a,b,c,d){var e;e=new tHb;b.a[c.g]=e;_qb(a.b,d,e)} +function _xb(a,b){var c,d;c=b;d=new Kyb;byb(a,c,d);return d.d} +function rRb(a,b){var c;c=aRb(a.f,b);return Gfd(Nfd(c),a.f.d)} +function fEb(a){var b;eHb(a.a);dHb(a.a);b=new pHb(a.a);lHb(b)} +function BKb(a,b){AKb(a,true);_lb(a.e.Pf(),new FKb(a,true,b))} +function lZc(a,b){XYc();return JD(lNb(b,(DXc(),BXc)),15).a==a} +function YD(a){return Math.max(Math.min(a,lte),-2147483648)|0} +function tIb(a){rHb.call(this);kIb(this);this.a=a;this.c=true} +function Q6c(a,b,c){this.a=new imb;this.e=a;this.f=b;this.c=c} +function I6c(a,b,c){this.c=new imb;this.e=a;this.f=b;this.b=c} +function Z7c(a,b,c){this.i=new imb;this.b=a;this.g=b;this.a=c} +function ly(a){this.a=JD(Qb(a),277);this.b=(Fnb(),new oqb(a))} +function Zz(){Zz=ndb;var a,b;b=!dA();a=new lA;Yz=b?new eA:a} +function VEb(){VEb=ndb;SEb=new QEb;UEb=new vFb;TEb=new mFb} +function SMc(){SMc=ndb;RMc=new TMc(Gwe,0);QMc=new TMc(Fwe,1)} +function $Mc(){$Mc=ndb;YMc=new _Mc(Rwe,0);ZMc=new _Mc('UP',1)} +function zRc(){zRc=ndb;xRc=new ARc(Fwe,0);yRc=new ARc(Gwe,1)} +function JGd(a,b,c){GGd();!!a&&ejb(FGd,a,b);!!a&&ejb(EGd,a,c)} +function etd(a,b,c){var d;d=a.Fh(b);d>=0?a.$h(d,c):_sd(a,b,c)} +function to(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Wd(c.g,c.i)}} +function fB(a,b){var c;c=a.q.getHours();a.q.setDate(b);eB(a,c)} +function Sx(a){var b;b=new fsb(Jv(a.length));Gnb(b,a);return b} +function pdb(a){function b(){} +;b.prototype=a||{};return new b} +function xlb(a,b){if(rlb(a,b)){Qlb(a);return true}return false} +function iC(a,b){if(b==null){throw Icb(new Ufb)}return jC(a,b)} +function Geb(a){if(a.ye()){return null}var b=a.n;return ldb[b]} +function rwd(a){if(a.Db>>16!=3)return null;return JD(a.Cb,26)} +function Tzd(a){if(a.Db>>16!=9)return null;return JD(a.Cb,26)} +function Mwd(a){if(a.Db>>16!=6)return null;return JD(a.Cb,85)} +function Usd(a,b){var c;c=a.Fh(b);return c>=0?a.Th(c):$sd(a,b)} +function LIc(a,b,c){var d;d=MIc(a,b,c);a.b=new vIc(d.c.length)} +function fHc(a){this.a=a;this.b=SC(pX,Ote,2005,a.e.length,0,2)} +function vEb(){this.a=new Mtb;this.e=new esb;this.g=0;this.i=0} +function gz(a,b){Yy(this);this.f=b;this.g=a;$y(this);this.he()} +function aYb(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} +function uGd(a){var b;b=a.d;b=a._i(a.f);YEd(a,b);return b.Ob()} +function dFd(a,b){var c;c=new Otb(b);Te(c,a);return new kmb(c)} +function sId(a){if(a.p!=0)throw Icb(new jfb);return Xcb(a.f,0)} +function BId(a){if(a.p!=0)throw Icb(new jfb);return Xcb(a.k,0)} +function nyd(a){if(a.Db>>16!=7)return null;return JD(a.Cb,241)} +function kzd(a){if(a.Db>>16!=7)return null;return JD(a.Cb,174)} +function iTd(a){if(a.Db>>16!=3)return null;return JD(a.Cb,158)} +function vVd(a){if(a.Db>>16!=6)return null;return JD(a.Cb,241)} +function Czd(a){if(a.Db>>16!=11)return null;return JD(a.Cb,26)} +function sUd(a){if(a.Db>>16!=17)return null;return JD(a.Cb,29)} +function bXd(a,b,c,d,e,f){return new N1d(a.e,b,a.Jj(),c,d,e,f)} +function fjb(a,b,c){return b==null?wsb(a.f,null,c):Qsb(a.i,b,c)} +function x1b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} +function K8b(a,b){y8b();return Ndb(),JD(b.a,15).a0} +function RBb(a){var b;aBb(a);b=new esb;return SBb(a,new qCb(b))} +function Eeb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.te(b))} +function iB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);eB(a,c)} +function xWb(a,b){!!a.c&&dmb(a.c.g,a);a.c=b;!!a.c&&Ylb(a.c.g,a)} +function HYb(a,b){!!a.c&&dmb(a.c.a,a);a.c=b;!!a.c&&Ylb(a.c.a,a)} +function yWb(a,b){!!a.d&&dmb(a.d.e,a);a.d=b;!!a.d&&Ylb(a.d.e,a)} +function qZb(a,b){!!a.i&&dmb(a.i.j,a);a.i=b;!!a.i&&Ylb(a.i.j,a)} +function qEb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new kmb(c))} +function TTb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new kmb(c))} +function sMb(a,b){this.a=a;this.c=Ifd(this.a);this.b=new Bfd(b)} +function MDb(a,b){if(a<0||a>b){throw Icb(new Cdb(cwe+a+dwe+b))}} +function bCc(){bCc=ndb;aCc=Vbd(new acd,(TQb(),SQb),(Q5b(),H5b))} +function hCc(){hCc=ndb;gCc=Vbd(new acd,(TQb(),SQb),(Q5b(),H5b))} +function kBc(){kBc=ndb;jBc=Vbd(new acd,(TQb(),SQb),(Q5b(),H5b))} +function sBc(){sBc=ndb;rBc=Vbd(new acd,(TQb(),SQb),(Q5b(),H5b))} +function CBc(){CBc=ndb;BBc=Vbd(new acd,(TQb(),SQb),(Q5b(),H5b))} +function JBc(){JBc=ndb;IBc=Vbd(new acd,(TQb(),SQb),(Q5b(),H5b))} +function WJc(){WJc=ndb;VJc=Xbd(new acd,(TQb(),SQb),(Q5b(),f5b))} +function zKc(){zKc=ndb;yKc=Xbd(new acd,(TQb(),SQb),(Q5b(),f5b))} +function CMc(){CMc=ndb;BMc=Xbd(new acd,(TQb(),SQb),(Q5b(),f5b))} +function qNc(){qNc=ndb;pNc=Xbd(new acd,(TQb(),SQb),(Q5b(),f5b))} +function bYc(){bYc=ndb;aYc=Vbd(new acd,(sSc(),qSc),(qVc(),gVc))} +function ws(){ws=ndb;vs=gs((ns(),WC(OC(IG,1),kue,537,0,[ms])))} +function GGd(){GGd=ndb;FGd=new Yrb;EGd=new Yrb;KGd(qK,new LGd)} +function NDd(a,b){var c,d;c=b.c;d=c!=null;d&&vAd(a,new GC(b.c))} +function uad(a,b){vad(a,a.b,a.c);JD(a.b.b,68);!!b&&JD(b.b,68).b} +function JVd(a,b){RD(a.Cb,184)&&(JD(a.Cb,184).tb=null);Wxd(a,b)} +function AUd(a,b){RD(a.Cb,88)&&tYd(wWd(JD(a.Cb,88)),4);Wxd(a,b)} +function Z3d(a,b){$3d(a,b);RD(a.Cb,88)&&tYd(wWd(JD(a.Cb,88)),2)} +function F$c(a,b){return Xeb(JD(a.c,65).c.e.b,JD(b.c,65).c.e.b)} +function G$c(a,b){return Xeb(JD(a.c,65).c.e.a,JD(b.c,65).c.e.a)} +function pee(a,b){return lie(),uUd(b)?new mje(b,a):new Cie(b,a)} +function vPc(a,b){!!a.a&&dmb(a.a.k,a);a.a=b;!!a.a&&Ylb(a.a.k,a)} +function wPc(a,b){!!a.b&&dmb(a.b.f,a);a.b=b;!!a.b&&Ylb(a.b.f,a)} +function Yjb(a,b,c){NDb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} +function Ocd(a){this.c=new aub;this.b=a.b;this.d=a.c;this.a=a.a} +function Xfd(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} +function xPc(a,b,c,d){this.c=a;this.d=d;vPc(this,b);wPc(this,c)} +function Wvb(a,b){this.b=(KDb(a),a);this.a=(b&qve)==0?b|64|Pte:b} +function Rvb(a,b){Qvb(a,ddb(Kcb($cb(b,24),Pve)),ddb(Kcb(b,Pve)))} +function vib(a){Whb();return Lcb(a,0)>=0?qib(a):cib(qib(Wcb(a)))} +function FAb(){CAb();return WC(OC(HL,1),kue,130,0,[zAb,AAb,BAb])} +function Vxb(a,b,c){return new Oyb(a,(gzb(),dzb),null,false,b,c)} +function gyb(a,b,c){return new Oyb(a,(gzb(),fzb),b,c,null,false)} +function emb(a,b,c){var d;NDb(b,c,a.c.length);d=c-b;oDb(a.c,b,d)} +function Iw(a,b){var c;c=JD(Ov(nd(a.a),b),18);return !c?0:c.gc()} +function cCb(a){var b;aBb(a);b=(zqb(),zqb(),xqb);return dCb(a,b)} +function wr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} +function t$d(a){var b,c;c=(hRd(),b=new q0d,b);j0d(c,a);return c} +function C2d(a){var b,c;c=(hRd(),b=new q0d,b);j0d(c,a);return c} +function Odc(a){Ldc();if(RD(a.g,9)){return JD(a.g,9)}return null} +function mic(){jic();return WC(OC(HU,1),kue,368,0,[iic,hic,gic])} +function $nc(){Xnc();return WC(OC(SV,1),kue,350,0,[Unc,Wnc,Vnc])} +function Hoc(){Eoc();return WC(OC(VV,1),kue,449,0,[Coc,Boc,Doc])} +function Xpc(){Upc();return WC(OC(_V,1),kue,302,0,[Spc,Tpc,Rpc])} +function eqc(){bqc();return WC(OC(aW,1),kue,329,0,[aqc,_pc,$pc])} +function nqc(){kqc();return WC(OC(bW,1),kue,315,0,[iqc,jqc,hqc])} +function Ryc(){Nyc();return WC(OC(kW,1),kue,352,0,[Kyc,Lyc,Myc])} +function eAc(){bAc();return WC(OC(qW,1),kue,452,0,[aAc,$zc,_zc])} +function nAc(){kAc();return WC(OC(rW,1),kue,381,0,[hAc,iAc,jAc])} +function wAc(){tAc();return WC(OC(sW,1),kue,348,0,[sAc,qAc,rAc])} +function QAc(){NAc();return WC(OC(uW,1),kue,349,0,[KAc,LAc,MAc])} +function ZAc(){WAc();return WC(OC(vW,1),kue,351,0,[VAc,TAc,UAc])} +function gBc(){dBc();return WC(OC(wW,1),kue,382,0,[bBc,cBc,aBc])} +function cQb(){_Pb();return WC(OC(pO,1),kue,384,0,[ZPb,YPb,$Pb])} +function CHb(){zHb();return WC(OC(hN,1),kue,237,0,[wHb,xHb,yHb])} +function hIb(){eIb();return WC(OC(kN,1),kue,461,0,[cIb,bIb,dIb])} +function $Ib(){XIb();return WC(OC(rN,1),kue,462,0,[WIb,VIb,UIb])} +function iWc(){fWc();return WC(OC(G$,1),kue,385,0,[eWc,dWc,cWc])} +function G0c(){C0c();return WC(OC(J_,1),kue,386,0,[z0c,A0c,B0c])} +function H3c(){E3c();return WC(OC(d0,1),kue,387,0,[C3c,D3c,B3c])} +function T1c(){P1c();return WC(OC(O_,1),kue,303,0,[N1c,O1c,M1c])} +function E2c(){B2c();return WC(OC(W_,1),kue,436,0,[y2c,z2c,A2c])} +function o6c(){i6c();return WC(OC(w0,1),kue,430,0,[f6c,h6c,g6c])} +function S7c(){P7c();return WC(OC(L0,1),kue,435,0,[M7c,N7c,O7c])} +function P5c(){J5c();return WC(OC(r0,1),kue,429,0,[G5c,I5c,H5c])} +function Njd(){Kjd();return WC(OC(x2,1),kue,279,0,[Hjd,Ijd,Jjd])} +function Ekd(){Bkd();return WC(OC(C2,1),kue,347,0,[zkd,ykd,Akd])} +function Omd(){Lmd();return WC(OC(M2,1),kue,300,0,[Imd,Jmd,Kmd])} +function und(){rnd();return WC(OC(P2,1),kue,281,0,[pnd,ond,qnd])} +function lZb(a){return cgd(WC(OC(o2,1),Ote,8,0,[a.i.n,a.n,a.a]))} +function bNb(a,b,c){var d;d=new Zfd(c.d);Gfd(d,a);GEd(b,d.a,d.b)} +function nNc(a,b,c){var d;d=new mNc;d.b=b;d.a=c;++b.b;Ylb(a.d,d)} +function y6c(a,b,c){var d;d=z6c(a,b,false);return d.b<=b&&d.a<=c} +function uId(a){if(a.p!=2)throw Icb(new jfb);return ddb(a.f)&Bue} +function DId(a){if(a.p!=2)throw Icb(new jfb);return ddb(a.k)&Bue} +function JDb(a,b){if(a<0||a>=b){throw Icb(new Cdb(cwe+a+dwe+b))}} +function RDb(a,b){if(a<0||a>=b){throw Icb(new lhb(cwe+a+dwe+b))}} +function AVd(a){if(a.Db>>16!=6)return null;return JD(Hsd(a),241)} +function iv(a,b){var c,d;d=kv(a,b);c=a.a.dd(d);return new xv(a,c)} +function ls(a,b){var c;c=(KDb(a),a).g;BDb(!!c);KDb(b);return c(b)} +function vde(a){a.a==(pce(),oce)&&Bde(a,qce(a.g,a.b));return a.a} +function xde(a){a.d==(pce(),oce)&&Dde(a,uce(a.g,a.b));return a.d} +function Qi(a,b){Oi.call(this,new Zrb(Jv(a)));bk(b,Nte);this.a=b} +function Wre(a,b,c){Uqe.call(this,25);this.b=a;this.a=b;this.c=c} +function vre(a){Tqe();Uqe.call(this,a);this.c=false;this.a=false} +function iib(a,b){jib.call(this,1,2,WC(OC(cE,1),Pue,30,15,[a,b]))} +function Kcb(a,b){return Mcb(lD(Scb(a)?bdb(a):a,Scb(b)?bdb(b):b))} +function Ycb(a,b){return Mcb(rD(Scb(a)?bdb(a):a,Scb(b)?bdb(b):b))} +function fdb(a,b){return Mcb(zD(Scb(a)?bdb(a):a,Scb(b)?bdb(b):b))} +function brb(a,b){return Irb(a.a,b)?pDb(a.b,JD(b,23).g,null):null} +function Uu(a){Qb(a);return RD(a,18)?new kmb(JD(a,18)):Vu(a.Jc())} +function Ex(a){Dx();this.a=(Fnb(),RD(a,59)?new nqb(a):new $ob(a))} +function Frb(a){var b;b=JD(iDb(a.b),10);return new Krb(a.a,b,a.c)} +function nHb(a,b){var c;c=Reb(MD(a.a.mf((gjd(),Nid))));oHb(a,b,c)} +function fTb(a,b){bTb();return a.c==b.c?Xeb(b.d,a.d):Xeb(a.c,b.c)} +function gTb(a,b){bTb();return a.c==b.c?Xeb(a.d,b.d):Xeb(a.c,b.c)} +function iTb(a,b){bTb();return a.c==b.c?Xeb(a.d,b.d):Xeb(b.c,a.c)} +function hTb(a,b){bTb();return a.c==b.c?Xeb(b.d,a.d):Xeb(b.c,a.c)} +function oFb(a,b){a.b=a.b|b.b;a.c=a.c|b.c;a.d=a.d|b.d;a.a=a.a|b.a} +function Fmb(a){IDb(a.ad?1:0} +function Ggc(a,b){var c,d;c=Fgc(b);d=c;return JD(bjb(a.c,d),15).a} +function YIc(a,b,c){var d;d=a.d[b.p];a.d[b.p]=a.d[c.p];a.d[c.p]=d} +function Wnd(a,b,c){var d;if(a.n&&!!b&&!!c){d=new Bqd;Ylb(a.e,d)}} +function HRb(a,b){bsb(a.a,b);if(b.d){throw Icb(new qz(jwe))}b.d=a} +function o7c(a,b){this.a=new imb;this.d=new imb;this.f=a;this.c=b} +function Uad(){Pad();this.b=new Yrb;this.a=new Yrb;this.c=new imb} +function qQb(){this.c=new EQb;this.a=new hVb;this.b=new dWb;HVb()} +function MId(a,b,c){this.d=a;this.j=b;this.e=c;this.o=-1;this.p=3} +function NId(a,b,c){this.d=a;this.k=b;this.f=c;this.o=-1;this.p=5} +function Q1d(a,b,c,d,e,f){P1d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function S1d(a,b,c,d,e,f){R1d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function U1d(a,b,c,d,e,f){T1d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function W1d(a,b,c,d,e,f){V1d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function Y1d(a,b,c,d,e,f){X1d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function $1d(a,b,c,d,e,f){Z1d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function d2d(a,b,c,d,e,f){c2d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function f2d(a,b,c,d,e,f){e2d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function L5d(a,b,c,d){r5d.call(this,c);this.b=a;this.c=b;this.d=d} +function kde(a,b){this.f=a;this.a=(pce(),nce);this.c=nce;this.b=b} +function Hde(a,b){this.g=a;this.d=(pce(),oce);this.a=oce;this.b=b} +function Eke(a,b){!a.c&&(a.c=new See(a,0));Dee(a.c,(lke(),dke),b)} +function Mee(a,b){return Nee(a,b,RD(b,103)&&(JD(b,19).Bb&tve)!=0)} +function dB(a,b){return Hfb(Pcb(a.q.getTime()),Pcb(b.q.getTime()))} +function ej(a){return dk(a.e.Pd().gc()*a.c.Pd().gc(),16,new oj(a))} +function AWd(a){return !!a.u&&rWd(a.u.a).i!=0&&!(!!a.n&&bYd(a.n))} +function n2d(a){return !!a.a&&m2d(a.a.a).i!=0&&!(!!a.b&&m3d(a.b))} +function Lud(a,b){if(b==0){return !!a.o&&a.o.f!=0}return Tsd(a,b)} +function jub(a){IDb(a.b.b!=a.d.a);a.c=a.b=a.b.b;--a.a;return a.c.c} +function Yhb(a){while(a.d>0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} +function Mxb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} +function Qjb(a,b){this.a=a;Kjb.call(this,a);MDb(b,a.gc());this.b=b} +function Elb(a){this.a=SC(aJ,rte,1,tfb($wnd.Math.max(8,a))<<1,5,1)} +function Byb(a){Cyb.call(this,a,(gzb(),czb),null,false,null,false)} +function dyb(a,b){var c;c=1-b;a.a[c]=eyb(a.a[c],c);return eyb(a,b)} +function TDb(a,b){var c,d;d=Kcb(a,yve);c=Zcb(b,32);return Ycb(c,d)} +function Cc(a,b,c){var d;d=JD(a.Zb().xc(b),18);return !!d&&d.Gc(c)} +function Gc(a,b,c){var d;d=JD(a.Zb().xc(b),18);return !!d&&d.Kc(c)} +function rEb(a,b,c){var d;d=(Qb(a),new kmb(a));pEb(new qEb(d,b,c))} +function UTb(a,b,c){var d;d=(Qb(a),new kmb(a));STb(new TTb(d,b,c))} +function ONc(a,b,c){a.a=b;a.c=c;a.b.a.$b();_tb(a.d);qDb(a.e.a.c,0)} +function t2c(a,b){var c;a.e=new l2c;c=k_c(b);gmb(c,a.c);u2c(a,c,0)} +function UTc(a,b){return new prd(b,Ufd(Ifd(b.e),a,a),(Ndb(),true))} +function sYc(a,b){lYc();return JD(lNb(b,(DXc(),qXc)),15).a>=a.gc()} +function YKc(a){zKc();return !vWb(a)&&!(!vWb(a)&&a.c.i.c==a.d.i.c)} +function TXb(a){return JD(hmb(a,SC(CP,mye,17,a.c.length,0,1)),323)} +function m3c(a){lOd((!a.a&&(a.a=new A3d(Q3,a,10,11)),a.a),new i3c)} +function T8d(){var a,b,c;b=(c=(a=new q0d,a),c);Ylb(P8d,b);return b} +function Cyd(a,b,c,d,e,f){Dyd(a,b,c,f);CWd(a,d);DWd(a,e);return a} +function chb(a,b,c,d){a.a+=''+Ggb(b==null?vte:qdb(b),c,d);return a} +function Pb(a,b){if(a<0||a>=b){throw Icb(new Cdb(Ib(a,b)))}return a} +function Tb(a,b,c){if(a<0||bc){throw Icb(new Cdb(Kb(a,b,c)))}} +function idd(a,b,c,d){var e;e=new pdd;e.a=b;e.b=c;e.c=d;Qtb(a.b,e)} +function hdd(a,b,c,d){var e;e=new pdd;e.a=b;e.b=c;e.c=d;Qtb(a.a,e)} +function Mz(a,b,c){var d;d=Kz();try{return Jz(a,b,c)}finally{Nz(d)}} +function cdb(a){var b;if(Scb(a)){b=a;return b==-0.?0:b}return wD(a)} +function sjb(a,b){if(RD(b,45)){return Jd(a.a,JD(b,45))}return false} +function lrb(a,b){if(RD(b,45)){return Jd(a.a,JD(b,45))}return false} +function ztb(a,b){if(RD(b,45)){return Jd(a.a,JD(b,45))}return false} +function zBb(a,b){if(a.a<=a.b){b.Bd(a.a++);return true}return false} +function fx(a){if(Gh(a).dc()){return false}Hh(a,new jx);return true} +function fBb(a){var b;_Ab(a);b=new Uqb;mwb(a.a,new vBb(b));return b} +function CBb(a){var b;_Ab(a);b=new qsb;mwb(a.a,new KBb(b));return b} +function iz(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} +function Yu(a){return new jmb((bk(a,mue),Xy(Jcb(Jcb(5,a),a/10|0))))} +function VXb(a){return JD(hmb(a,SC(dQ,oye,12,a.c.length,0,1)),2004)} +function Ui(a){return dk(a.e.Pd().gc()*a.c.Pd().gc(),273,new ij(a))} +function h8c(){h8c=ndb;g8c=gs((_7c(),WC(OC(P0,1),kue,477,0,[$7c])))} +function q8c(){q8c=ndb;p8c=gs((j8c(),WC(OC(Q0,1),kue,546,0,[i8c])))} +function Q9c(){Q9c=ndb;P9c=gs((I9c(),WC(OC(Y0,1),kue,527,0,[H9c])))} +function HDc(){HDc=ndb;GDc=qx(zfb(1),zfb(4));FDc=qx(zfb(1),zfb(2))} +function WXc(){WXc=ndb;VXc=new XXc('DFS',0);UXc=new XXc('BFS',1)} +function sqc(){sqc=ndb;qqc=new tqc(Cwe,0);rqc=new tqc('TOP_LEFT',1)} +function ZEc(a,b,c){this.d=new kFc(this);this.e=a;this.i=b;this.f=c} +function OId(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} +function zWb(a,b,c){!!a.d&&dmb(a.d.e,a);a.d=b;!!a.d&&Xlb(a.d.e,c,a)} +function MBd(a,b,c){var d;d=BAd(c);xo(a.n,d,b);xo(a.o,b,c);return b} +function EAd(a,b){var c,d;c=BB(a,b);d=null;!!c&&(d=c.qe());return d} +function FAd(a,b){var c,d;c=iC(a,b);d=null;!!c&&(d=c.qe());return d} +function DAd(a,b){var c,d;c=iC(a,b);d=null;!!c&&(d=c.ne());return d} +function GAd(a,b){var c,d;c=iC(a,b);d=null;!!c&&(d=HAd(c));return d} +function Y1b(a,b){c2b(b,a);e2b(a.d);e2b(JD(lNb(a,($xc(),Ewc)),213))} +function Z1b(a,b){f2b(b,a);h2b(a.d);h2b(JD(lNb(a,($xc(),Ewc)),213))} +function olb(a,b){KDb(b);a.b=a.b-1&a.a.length-1;VC(a.a,a.b,b);tlb(a)} +function plb(a,b){KDb(b);VC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;tlb(a)} +function iub(a){IDb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} +function Qo(a){if(a.e.g!=a.b){throw Icb(new Oqb)}return !!a.c&&a.d>0} +function ar(a){if(RD(a,18)){return JD(a,18).dc()}return !a.Jc().Ob()} +function hx(a){return new Wvb(Knb(JD(a.a.kd(),18).gc(),a.a.jd()),16)} +function Zhe(a){var b;b=a.Dh();this.a=RD(b,72)?JD(b,72).Gi():b.Jc()} +function H_b(a,b){var c;c=JD(htb(a.b,b),66);!c&&(c=new aub);return c} +function ebc(a,b){var c;c=b.a;xWb(c,b.c.d);yWb(c,b.d.d);hgd(c.a,a.n)} +function Vc(a,b,c,d){return RD(c,59)?new Ig(a,b,c,d):new wg(a,b,c,d)} +function ghc(){dhc();return WC(OC(yU,1),kue,413,0,[_gc,ahc,bhc,chc])} +function RLb(){OLb();return WC(OC(HN,1),kue,409,0,[NLb,KLb,LLb,MLb])} +function VSb(){OSb();return WC(OC(TO,1),kue,408,0,[KSb,NSb,LSb,MSb])} +function lzb(){gzb();return WC(OC(rL,1),kue,309,0,[czb,dzb,ezb,fzb])} +function wUb(){tUb();return WC(OC(iP,1),kue,383,0,[sUb,qUb,pUb,rUb])} +function g8b(){c8b();return WC(OC(ZR,1),kue,367,0,[b8b,_7b,a8b,$7b])} +function Rnc(){Lnc();return WC(OC(RV,1),kue,301,0,[Inc,Jnc,Hnc,Knc])} +function bzc(){Yyc();return WC(OC(lW,1),kue,203,0,[Wyc,Xyc,Vyc,Uyc])} +function Pzc(){Mzc();return WC(OC(oW,1),kue,269,0,[Jzc,Izc,Kzc,Lzc])} +function $Gc(){XGc();return WC(OC(mX,1),kue,404,0,[TGc,VGc,WGc,UGc])} +function Uhc(a){var b;return a.j==(mmd(),jmd)&&(b=Vhc(a),Hrb(b,Tld))} +function ySc(){sSc();return WC(OC(IZ,1),kue,398,0,[oSc,pSc,qSc,rSc])} +function Akc(a,b){return JD(Pub(ZBb(JD(Qc(a.k,b),16).Mc(),pkc)),113)} +function Bkc(a,b){return JD(Pub($Bb(JD(Qc(a.k,b),16).Mc(),pkc)),113)} +function JSc(a,b){return Kfd(new Yfd(b.e.a+b.f.a/2,b.e.b+b.f.b/2),a)} +function $2c(){W2c();return WC(OC($_,1),kue,401,0,[V2c,S2c,U2c,T2c])} +function J1c(){F1c();return WC(OC(N_,1),kue,354,0,[E1c,C1c,D1c,B1c])} +function RXc(){OXc();return WC(OC(K$,1),kue,353,0,[NXc,LXc,MXc,KXc])} +function Ejd(){Bjd();return WC(OC(w2,1),kue,278,0,[yjd,xjd,zjd,Ajd])} +function Xjd(){Ujd();return WC(OC(y2,1),kue,222,0,[Tjd,Rjd,Qjd,Sjd])} +function Pkd(){Lkd();return WC(OC(E2,1),kue,292,0,[Kkd,Hkd,Ikd,Jkd])} +function End(){Bnd();return WC(OC(U2,1),kue,288,0,[xnd,And,ynd,znd])} +function Ymd(){Vmd();return WC(OC(N2,1),kue,380,0,[Tmd,Umd,Smd,Rmd])} +function Wod(){Tod();return WC(OC(Z2,1),kue,326,0,[Sod,Pod,Rod,Qod])} +function Jqd(){Gqd();return WC(OC(v3,1),kue,407,0,[Dqd,Eqd,Cqd,Fqd])} +function Jsd(a,b,c){return b<0?$sd(a,c):JD(c,69).uk().zk(a,a.ei(),b)} +function LBd(a,b,c){var d;d=BAd(c);xo(a.f,d,b);ejb(a.g,b,c);return b} +function NBd(a,b,c){var d;d=BAd(c);xo(a.p,d,b);ejb(a.q,b,c);return b} +function HEd(a){var b,c;b=(ksd(),c=new ywd,c);!!a&&wwd(b,a);return b} +function YFd(a){var b;b=a.$i(a.i);a.i>0&&ohb(a.g,0,b,0,a.i);return b} +function Pdc(a){Ldc();if(RD(a.g,156)){return JD(a.g,156)}return null} +function IGd(a){GGd();return _ib(FGd,a)?JD(bjb(FGd,a),342).Pg():null} +function CNc(a){a.a=null;a.e=null;qDb(a.b.c,0);qDb(a.f.c,0);a.c=null} +function rbd(a,b){var c;for(c=a.j.c.length;c>24} +function CId(a){if(a.p!=1)throw Icb(new jfb);return ddb(a.k)<<24>>24} +function IId(a){if(a.p!=7)throw Icb(new jfb);return ddb(a.k)<<16>>16} +function zId(a){if(a.p!=7)throw Icb(new jfb);return ddb(a.f)<<16>>16} +function bib(a,b){if(b.e==0||a.e==0){return Vhb}return Sib(),Tib(a,b)} +function Nd(a,b){return XD(b)===XD(a)?'(this Map)':b==null?vte:qdb(b)} +function aEb(a,b,c){return Qeb(MD(Wd(vsb(a.f,b))),MD(Wd(vsb(a.f,c))))} +function mec(a,b,c){var d;d=JD(bjb(a.g,c),60);Ylb(a.a.c,new ard(b,d))} +function vx(a,b){var c;c=new jhb;a.Ed(c);c.a+='..';b.Fd(c);return c.a} +function Br(a){var b;b=0;while(a.Ob()){a.Pb();b=Jcb(b,1)}return Xy(b)} +function NPc(a,b,c,d,e){var f;f=IPc(e,c,d);Ylb(b,nPc(e,f));RPc(a,e,b)} +function Rfc(a,b,c){a.i=0;a.e=0;if(b==c){return}Qfc(a,b,c);Pfc(a,b,c)} +function Kk(a,b,c,d){this.e=null;this.c=a;this.d=b;this.a=c;this.b=d} +function _lc(a,b,c,d,e){this.i=a;this.a=b;this.e=c;this.j=d;this.f=e} +function JNb(a,b){uNb.call(this);this.a=a;this.b=b;Ylb(this.a.b,this)} +function hib(a,b){Whb();jib.call(this,a,1,WC(OC(cE,1),Pue,30,15,[b]))} +function hee(a,b,c){return iee(a,b,c,RD(b,103)&&(JD(b,19).Bb&tve)!=0)} +function aee(a,b,c){return bee(a,b,c,RD(b,103)&&(JD(b,19).Bb&tve)!=0)} +function Oee(a,b,c){return Pee(a,b,c,RD(b,103)&&(JD(b,19).Bb&tve)!=0)} +function DKc(a,b){return a==(UYb(),RYb)&&b==RYb?4:a==RYb||b==RYb?8:32} +function IQd(a,b){return JD(b==null?Wd(vsb(a.f,null)):Psb(a.i,b),290)} +function Spd(a,b){var c;c=b;while(c){Ffd(a,c.i,c.j);c=Czd(c)}return a} +function rWd(a){if(!a.n){wWd(a);a.n=new fYd(a,w6,a);xWd(a)}return a.n} +function mie(a,b){lie();var c;c=JD(a,69).tk();I4d(c,b);return c.vl(b)} +function Srb(a){IDb(a.a'+LNb(a.d):'e_'+ADb(a)} +function SQd(a,b){var c;return c=b!=null?cjb(a,b):Wd(vsb(a.f,b)),ZD(c)} +function bRd(a,b){var c;return c=b!=null?cjb(a,b):Wd(vsb(a.f,b)),ZD(c)} +function Wpb(a,b){var c;for(c=0;c=0&&a.a[c]===b[c];c--);return c<0} +function mgc(a,b){var c,d;d=false;do{c=pgc(a,b);d=d|c}while(c);return d} +function OJc(){OJc=ndb;NJc=new PJc('UPPER',0);MJc=new PJc('LOWER',1)} +function Yrc(){Yrc=ndb;Xrc=new Zrc(cye,0);Wrc=new Zrc('ALTERNATING',1)} +function Bnd(){Bnd=ndb;xnd=new Gnd;And=new Ind;ynd=new Knd;znd=new Mnd} +function Gnc(){Gnc=ndb;Fnc=gs((Bnc(),WC(OC(QV,1),kue,422,0,[znc,Anc])))} +function Aoc(){Aoc=ndb;zoc=gs((voc(),WC(OC(UV,1),kue,419,0,[toc,uoc])))} +function cpc(){cpc=ndb;bpc=gs((Zoc(),WC(OC(XV,1),kue,476,0,[Yoc,Xoc])))} +function xqc(){xqc=ndb;wqc=gs((sqc(),WC(OC(cW,1),kue,420,0,[qqc,rqc])))} +function bsc(){bsc=ndb;asc=gs((Yrc(),WC(OC(eW,1),kue,423,0,[Xrc,Wrc])))} +function Zzc(){Zzc=ndb;Yzc=gs((Uzc(),WC(OC(pW,1),kue,421,0,[Szc,Tzc])))} +function TJc(){TJc=ndb;SJc=gs((OJc(),WC(OC(NX,1),kue,518,0,[NJc,MJc])))} +function dNc(){dNc=ndb;cNc=gs(($Mc(),WC(OC(HY,1),kue,508,0,[YMc,ZMc])))} +function XMc(){XMc=ndb;WMc=gs((SMc(),WC(OC(GY,1),kue,509,0,[RMc,QMc])))} +function GPc(){GPc=ndb;FPc=gs((BPc(),WC(OC(cZ,1),kue,515,0,[APc,zPc])))} +function ERc(){ERc=ndb;DRc=gs((zRc(),WC(OC(xZ,1),kue,454,0,[xRc,yRc])))} +function _Xc(){_Xc=ndb;$Xc=gs((WXc(),WC(OC(L$,1),kue,425,0,[VXc,UXc])))} +function _$c(){_$c=ndb;$$c=gs((T$c(),WC(OC(t_,1),kue,487,0,[R$c,S$c])))} +function y0c(){y0c=ndb;x0c=gs((s0c(),WC(OC(I_,1),kue,426,0,[q0c,r0c])))} +function n5c(){n5c=ndb;m5c=gs((f5c(),WC(OC(o0,1),kue,478,0,[d5c,e5c])))} +function y8c(){y8c=ndb;x8c=gs((t8c(),WC(OC(R0,1),kue,428,0,[s8c,r8c])))} +function _9c(){_9c=ndb;$9c=gs((T9c(),WC(OC(Z0,1),kue,427,0,[S9c,R9c])))} +function xOb(){xOb=ndb;wOb=gs((sOb(),WC(OC(hO,1),kue,424,0,[qOb,rOb])))} +function A2b(){A2b=ndb;z2b=gs((v2b(),WC(OC(cR,1),kue,502,0,[u2b,t2b])))} +function Tvb(a){Lvb();Qvb(this,ddb(Kcb($cb(a,24),Pve)),ddb(Kcb(a,Pve)))} +function r0b(a){return (a.k==(UYb(),RYb)||a.k==NYb)&&mNb(a,(Krc(),Jqc))} +function JQd(a,b,c){return JD(b==null?wsb(a.f,null,c):Qsb(a.i,b,c),290)} +function ujd(){ojd();return WC(OC(v2,1),kue,86,0,[mjd,ljd,kjd,jjd,njd])} +function tmd(){mmd();return WC(OC(J2,1),eye,64,0,[kmd,Uld,Tld,jmd,lmd])} +function Lz(b){Iz();return function(){return Mz(b,this,arguments);var a}} +function le(a,b){var c;c=b.jd();return new ap(c,a.e.pc(c,JD(b.kd(),18)))} +function Ikb(a,b){var c,d;c=b.jd();d=a.De(c);return !!d&&Jub(d.e,b.kd())} +function Efb(a,b){var c,d;KDb(b);for(d=a.Jc();d.Ob();){c=d.Pb();b.Ad(c)}} +function fmb(a,b,c){var d;d=(JDb(b,a.c.length),a.c[b]);a.c[b]=c;return d} +function tIc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} +function Tpd(a,b){var c;c=b;while(c){Ffd(a,-c.i,-c.j);c=Czd(c)}return a} +function usb(a,b){var c;c=a.a.get(b);return c==null?SC(aJ,rte,1,0,5,1):c} +function OBb(a,b){return (aBb(a),eCb(new gCb(a,new xCb(b,a.a)))).zd(MBb)} +function WQb(){TQb();return WC(OC(AO,1),kue,363,0,[OQb,PQb,QQb,RQb,SQb])} +function rVb(a){oVb();_Tb(this);this.a=new aub;pVb(this,a);Qtb(this.a,a)} +function NUb(){Wlb(this);this.b=new Yfd(ove,ove);this.a=new Yfd(pve,pve)} +function tAb(a){lAb();if(iAb){return}this.c=a;this.e=true;this.a=new imb} +function lAb(){lAb=ndb;iAb=true;gAb=false;hAb=false;kAb=false;jAb=false} +function f5c(){f5c=ndb;d5c=new h5c(Vye,0);e5c=new h5c('TARGET_WIDTH',1)} +function G_c(){C_c();return WC(OC(y_,1),kue,364,0,[A_c,x_c,B_c,y_c,z_c])} +function Fhc(){Bhc();return WC(OC(GU,1),kue,371,0,[xhc,zhc,Ahc,yhc,whc])} +function pzc(){jzc();return WC(OC(mW,1),kue,328,0,[izc,fzc,gzc,ezc,hzc])} +function Trc(){Qrc();return WC(OC(dW,1),kue,165,0,[Prc,Lrc,Mrc,Nrc,Orc])} +function c7c(){_6c();return WC(OC(A0,1),kue,369,0,[X6c,W6c,Z6c,Y6c,$6c])} +function H8c(){E8c();return WC(OC(S0,1),kue,330,0,[z8c,A8c,D8c,B8c,C8c])} +function Jed(){Ged();return WC(OC(g2,1),kue,160,0,[Eed,Ded,Bed,Fed,Ced])} +function old(){lld();return WC(OC(G2,1),kue,257,0,[ild,kld,gld,hld,jld])} +function cdd(a,b){var c;c=JD(htb(a.d,b),21);return c?c:JD(htb(a.e,b),21)} +function lLd(a){this.b=a;fKd.call(this,a);this.a=JD(fud(this.b.a,4),129)} +function uLd(a){this.b=a;AKd.call(this,a);this.a=JD(fud(this.b.a,4),129)} +function ABb(a,b){this.c=0;this.b=b;xwb.call(this,a,17493);this.a=this.c} +function O1d(a,b,c,d,e){QId.call(this,b,d,e);H1d(this);this.c=a;this.b=c} +function T1d(a,b,c,d,e){MId.call(this,b,d,e);H1d(this);this.c=a;this.a=c} +function X1d(a,b,c,d,e){NId.call(this,b,d,e);H1d(this);this.c=a;this.a=c} +function e2d(a,b,c,d,e){QId.call(this,b,d,e);H1d(this);this.c=a;this.a=c} +function zEc(a,b,c){a.a.c.length=0;DEc(a,b,c);a.a.c.length==0||wEc(a,b)} +function qo(a){a.i=0;Tmb(a.b,null);Tmb(a.c,null);a.a=null;a.e=null;++a.g} +function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} +function tcd(a,b){if(RD(b,144)){return sgb(a.c,JD(b,144).c)}return false} +function W3d(a){var b;if(!a.c){b=a.r;RD(b,88)&&(a.c=JD(b,29))}return a.c} +function wWd(a){if(!a.t){a.t=new uYd(a);XEd(new Abe(a),0,a.t)}return a.t} +function vWb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} +function eib(a,b){if(b==0||a.e==0){return a}return b>0?xib(a,b):Aib(a,-b)} +function fib(a,b){if(b==0||a.e==0){return a}return b>0?Aib(a,b):xib(a,-b)} +function Xr(a){if(Wr(a)){a.c=a.a;return a.a.Pb()}else{throw Icb(new Hub)}} +function rgb(a){var b;b=a.length;return sgb(sve.substr(sve.length-b,b),a)} +function U7b(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(UYb(),NYb)&&c.k==NYb} +function ZC(a){var b,c,d;b=a&dve;c=a>>22&dve;d=a<0?eve:0;return _C(b,c,d)} +function Tc(a,b){var c,d;c=JD(Pv(a.c,b),18);if(c){d=c.gc();c.$b();a.d-=d}} +function Nz(a){a&&Uz((Sz(),Rz));--Fz;if(a){if(Hz!=-1){Pz(Hz);Hz=-1}}} +function Kdb(a){Idb.call(this,a==null?vte:qdb(a),RD(a,80)?JD(a,80):null)} +function TVb(a){var b;b=new BWb;jNb(b,a);oNb(b,($xc(),nwc),null);return b} +function Osd(a,b,c){var d;return d=a.Fh(b),d>=0?a.Ih(d,c,true):Zsd(a,b,c)} +function WTc(a,b,c){return Xeb(Kfd(FSc(a),Ifd(b.b)),Kfd(FSc(a),Ifd(c.b)))} +function XTc(a,b,c){return Xeb(Kfd(FSc(a),Ifd(b.e)),Kfd(FSc(a),Ifd(c.e)))} +function r7c(a,b){return $wnd.Math.min(Jfd(b.a,a.d.d.c),Jfd(b.b,a.d.d.c))} +function wie(a,b,c){var d;d=new xie(a.a);Ld(d,a.a.a);wsb(d.f,b,c);a.a.a=d} +function OHb(a,b,c,d){var e;for(e=0;eb){throw Icb(new Cdb(Jb(a,b,'index')))}return a} +function Tqb(a){var b;b=a.e+a.f;if(isNaN(b)&&Yeb(a.d)){return a.d}return b} +function hB(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);eB(a,c)} +function qgb(a,b){var c,d;c=(KDb(a),a);d=(KDb(b),b);return c==d?0:cb.p){return -1}return 0} +function m8d(a,b){if(_ib(a.a,b)){gjb(a.a,b);return true}else{return false}} +function fd(a){var b,c;b=a.jd();c=JD(a.kd(),18);return ek(c.Lc(),new hh(b))} +function vTc(a){var b;b=a.b;if(b.b==0){return null}return JD(au(b,0),65).b} +function Dwb(a,b){KDb(b);if(a.c=0,'Initial capacity must not be negative')} +function _ed(){_ed=ndb;$ed=new nEd('org.eclipse.elk.labels.labelManager')} +function R7b(){R7b=ndb;Q7b=new oEd('separateLayerConnections',(c8b(),b8b))} +function BPc(){BPc=ndb;APc=new CPc('REGULAR',0);zPc=new CPc('CRITICAL',1)} +function t8c(){t8c=ndb;s8c=new u8c('FIXED',0);r8c=new u8c('CENTER_NODE',1)} +function Bnc(){Bnc=ndb;znc=new Cnc('QUADRATIC',0);Anc=new Cnc('SCANLINE',1)} +function aoc(){aoc=ndb;_nc=gs((Xnc(),WC(OC(SV,1),kue,350,0,[Unc,Wnc,Vnc])))} +function Joc(){Joc=ndb;Ioc=gs((Eoc(),WC(OC(VV,1),kue,449,0,[Coc,Boc,Doc])))} +function Zpc(){Zpc=ndb;Ypc=gs((Upc(),WC(OC(_V,1),kue,302,0,[Spc,Tpc,Rpc])))} +function gqc(){gqc=ndb;fqc=gs((bqc(),WC(OC(aW,1),kue,329,0,[aqc,_pc,$pc])))} +function pqc(){pqc=ndb;oqc=gs((kqc(),WC(OC(bW,1),kue,315,0,[iqc,jqc,hqc])))} +function oic(){oic=ndb;nic=gs((jic(),WC(OC(HU,1),kue,368,0,[iic,hic,gic])))} +function Tyc(){Tyc=ndb;Syc=gs((Nyc(),WC(OC(kW,1),kue,352,0,[Kyc,Lyc,Myc])))} +function gAc(){gAc=ndb;fAc=gs((bAc(),WC(OC(qW,1),kue,452,0,[aAc,$zc,_zc])))} +function pAc(){pAc=ndb;oAc=gs((kAc(),WC(OC(rW,1),kue,381,0,[hAc,iAc,jAc])))} +function yAc(){yAc=ndb;xAc=gs((tAc(),WC(OC(sW,1),kue,348,0,[sAc,qAc,rAc])))} +function SAc(){SAc=ndb;RAc=gs((NAc(),WC(OC(uW,1),kue,349,0,[KAc,LAc,MAc])))} +function _Ac(){_Ac=ndb;$Ac=gs((WAc(),WC(OC(vW,1),kue,351,0,[VAc,TAc,UAc])))} +function iBc(){iBc=ndb;hBc=gs((dBc(),WC(OC(wW,1),kue,382,0,[bBc,cBc,aBc])))} +function kWc(){kWc=ndb;jWc=gs((fWc(),WC(OC(G$,1),kue,385,0,[eWc,dWc,cWc])))} +function I0c(){I0c=ndb;H0c=gs((C0c(),WC(OC(J_,1),kue,386,0,[z0c,A0c,B0c])))} +function V1c(){V1c=ndb;U1c=gs((P1c(),WC(OC(O_,1),kue,303,0,[N1c,O1c,M1c])))} +function G2c(){G2c=ndb;F2c=gs((B2c(),WC(OC(W_,1),kue,436,0,[y2c,z2c,A2c])))} +function R5c(){R5c=ndb;Q5c=gs((J5c(),WC(OC(r0,1),kue,429,0,[G5c,I5c,H5c])))} +function q6c(){q6c=ndb;p6c=gs((i6c(),WC(OC(w0,1),kue,430,0,[f6c,h6c,g6c])))} +function U7c(){U7c=ndb;T7c=gs((P7c(),WC(OC(L0,1),kue,435,0,[M7c,N7c,O7c])))} +function J3c(){J3c=ndb;I3c=gs((E3c(),WC(OC(d0,1),kue,387,0,[C3c,D3c,B3c])))} +function eQb(){eQb=ndb;dQb=gs((_Pb(),WC(OC(pO,1),kue,384,0,[ZPb,YPb,$Pb])))} +function HAb(){HAb=ndb;GAb=gs((CAb(),WC(OC(HL,1),kue,130,0,[zAb,AAb,BAb])))} +function EHb(){EHb=ndb;DHb=gs((zHb(),WC(OC(hN,1),kue,237,0,[wHb,xHb,yHb])))} +function jIb(){jIb=ndb;iIb=gs((eIb(),WC(OC(kN,1),kue,461,0,[cIb,bIb,dIb])))} +function aJb(){aJb=ndb;_Ib=gs((XIb(),WC(OC(rN,1),kue,462,0,[WIb,VIb,UIb])))} +function Pjd(){Pjd=ndb;Ojd=gs((Kjd(),WC(OC(x2,1),kue,279,0,[Hjd,Ijd,Jjd])))} +function wnd(){wnd=ndb;vnd=gs((rnd(),WC(OC(P2,1),kue,281,0,[pnd,ond,qnd])))} +function Gkd(){Gkd=ndb;Fkd=gs((Bkd(),WC(OC(C2,1),kue,347,0,[zkd,ykd,Akd])))} +function Qmd(){Qmd=ndb;Pmd=gs((Lmd(),WC(OC(M2,1),kue,300,0,[Imd,Jmd,Kmd])))} +function Qud(a,b){return !a.o&&(a.o=new BTd((ysd(),vsd),c4,a,0)),SLd(a.o,b)} +function nMd(a){!a.g&&(a.g=new hOd);!a.g.d&&(a.g.d=new lNd(a));return a.g.d} +function eMd(a){!a.g&&(a.g=new hOd);!a.g.b&&(a.g.b=new fNd(a));return a.g.b} +function fMd(a){!a.g&&(a.g=new hOd);!a.g.c&&(a.g.c=new JNd(a));return a.g.c} +function $Ld(a){!a.g&&(a.g=new hOd);!a.g.a&&(a.g.a=new rNd(a));return a.g.a} +function z7d(a,b,c,d){!!c&&(d=c.Oh(b,zWd(c.Ah(),a.c.sk()),null,d));return d} +function A7d(a,b,c,d){!!c&&(d=c.Qh(b,zWd(c.Ah(),a.c.sk()),null,d));return d} +function Jib(a,b,c,d){var e;e=SC(cE,Pue,30,b+1,15,1);Kib(e,a,b,c,d);return e} +function SC(a,b,c,d,e,f){var g;g=TC(e,d);e!=10&&WC(OC(a,f),b,c,e,g);return g} +function Yde(a,b,c){var d,e;e=new Nfe(b,a);for(d=0;dc||b=0?a.Ih(c,true,true):Zsd(a,b,true)} +function x6c(a,b){var c,d,e;e=a.r;d=a.d;c=z6c(a,b,true);return c.b!=e||c.a!=d} +function nhc(a,b){gtb(a.e,b)||itb(a.e,b,new thc(b));return JD(htb(a.e,b),113)} +function yAb(a,b,c,d){KDb(a);KDb(b);KDb(c);KDb(d);return new IAb(a,b,new Szb)} +function Tce(a,b,c){var d,e;e=(d=L3d(a.b,b),d);return !e?null:rde(Nce(a,e),c)} +function sBd(a,b,c){var d,e,f;d=iC(a,c);e=null;!!d&&(e=HAd(d));f=e;OBd(b,c,f)} +function tBd(a,b,c){var d,e,f;d=iC(a,c);e=null;!!d&&(e=HAd(d));f=e;OBd(b,c,f)} +function BTd(a,b,c,d){this.$j();this.a=b;this.b=a;this.c=new uhe(this,b,c,d)} +function M1d(a,b,c,d,e,f){OId.call(this,b,d,e,f);H1d(this);this.c=a;this.b=c} +function a2d(a,b,c,d,e,f){OId.call(this,b,d,e,f);H1d(this);this.c=a;this.a=c} +function Elc(a,b,c,d,e){xlc(this);this.b=a;this.d=b;this.f=c;this.g=d;this.c=e} +function xCb(a,b){Bwb.call(this,b.xd(),b.wd()&-16449);KDb(a);this.a=a;this.c=b} +function nTb(a,b){if(a.a.Le(b.d,a.b)>0){Ylb(a.c,new GSb(b.c,b.d,a.d));a.b=b.d}} +function sIc(a){a.a=SC(cE,Pue,30,a.b+1,15,1);a.c=SC(cE,Pue,30,a.b,15,1);a.d=0} +function CIc(a,b,c){var d;d=MIc(a,b,c);a.b=new vIc(d.c.length);return EIc(a,d)} +function Pse(a){if(a.b<=0)throw Icb(new Hub);--a.b;a.a-=a.c.c;return zfb(a.a)} +function REd(a){var b;if(!a.a){throw Icb(new Iub)}b=a.a;a.a=Czd(a.a);return b} +function gXd(a){var b;if(a.ll()){for(b=a.i-1;b>=0;--b){SFd(a,b)}}return YFd(a)} +function Er(a){var b;Qb(a);if(RD(a,204)){b=JD(a,204);return b}return new Fr(a)} +function kCb(a){while(!a.a){if(!OCb(a.c,new oCb(a))){return false}}return true} +function PFd(a,b){if(a.g==null||b>=a.i)throw Icb(new ALd(b,a.i));return a.g[b]} +function NZd(a,b,c){iFd(a,c);if(c!=null&&!a.dk(c)){throw Icb(new Fdb)}return c} +function XC(a,b){PC(b)!=10&&WC(rb(b),b.Qm,b.__elementTypeId$,PC(b),a);return a} +function Zi(a,b){var c,d;d=b/a.c.Pd().gc()|0;c=b%a.c.Pd().gc();return Si(a,d,c)} +function bnb(a,b,c,d){var e;d=(zqb(),!d?wqb:d);e=a.slice(b,c);cnb(e,a,b,c,-b,d)} +function Isd(a,b,c,d,e){return b<0?Zsd(a,c,d):JD(c,69).uk().wk(a,a.ei(),b,d,e)} +function p3b(a,b){return Xeb(Reb(MD(lNb(a,(Krc(),qrc)))),Reb(MD(lNb(b,qrc))))} +function uzb(){uzb=ndb;tzb=gs((gzb(),WC(OC(rL,1),kue,309,0,[czb,dzb,ezb,fzb])))} +function gzb(){gzb=ndb;czb=new hzb('All',0);dzb=new mzb;ezb=new ozb;fzb=new rzb} +function eIb(){eIb=ndb;cIb=new fIb(Fwe,0);bIb=new fIb(Cwe,1);dIb=new fIb(Gwe,2)} +function Xke(){Xke=ndb;xxd();Uke=ove;Tke=pve;Wke=new $eb(ove);Vke=new $eb(pve)} +function gcd(){gcd=ndb;dcd=new mcd;fcd=new ocd;ecd=sn((gjd(),tid),dcd,$hd,fcd)} +function icd(a){gcd();JD(a.mf((gjd(),uid)),182).Ec((Lld(),Ild));a.of(tid,null)} +function F8d(a){if(RD(a,180)){return ''+JD(a,180).a}return a==null?null:qdb(a)} +function G8d(a){if(RD(a,180)){return ''+JD(a,180).a}return a==null?null:qdb(a)} +function Rxb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} +function Sxb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[1]){c=b}return c} +function smc(a){var b;for(b=a.p+1;b=0?Msd(a,c,true,true):Zsd(a,b,true)} +function Nrd(a,b){yld(JD(JD(a.f,26).mf((gjd(),qid)),102))&&lOd(Dzd(JD(a.f,26)),b)} +function xBd(a,b){Mvd(a,b==null||Yeb((KDb(b),b))||isNaN((KDb(b),b))?0:(KDb(b),b))} +function yBd(a,b){Nvd(a,b==null||Yeb((KDb(b),b))||isNaN((KDb(b),b))?0:(KDb(b),b))} +function zBd(a,b){Lvd(a,b==null||Yeb((KDb(b),b))||isNaN((KDb(b),b))?0:(KDb(b),b))} +function ABd(a,b){Jvd(a,b==null||Yeb((KDb(b),b))||isNaN((KDb(b),b))?0:(KDb(b),b))} +function rqd(a){(!this.q?(Fnb(),Fnb(),Dnb):this.q).zc(!a.q?(Fnb(),Fnb(),Dnb):a.q)} +function WFd(a,b,c){var d;d=a.g[b];OFd(a,b,a.Xi(b,c));a.Pi(b,c,d);a.Li();return d} +function fFd(a,b){var c;c=a.bd(b);if(c>=0){a.ed(c);return true}else{return false}} +function uUd(a){var b;if(a.d!=a.r){b=UTd(a);a.e=!!b&&b.jk()==XHe;a.d=b}return a.e} +function or(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Ec(b.Pb())}return c} +function htb(a,b){var c;c=JD(bjb(a.e,b),393);if(c){jtb(a,c);return c.e}return null} +function aB(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} +function UBb(a,b){var c,d;aBb(a);d=new PCb(b,a.a);c=new mCb(d);return new gCb(a,c)} +function BB(d,a){var b=d.a[a];var c=(zC(),yC)[typeof b];return c?c(b):FC(typeof b)} +function jec(a,b){var c,d,e;e=b.c.i;c=JD(bjb(a.f,e),60);d=c.d.c-c.e.c;ggd(b.a,d,0)} +function MA(a,b,c){var d,e;d=10;for(e=0;e=0){++b[0]}} +function Sre(a,b,c,d){Tqe();Uqe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d} +function N1d(a,b,c,d,e,f,g){PId.call(this,b,d,e,f,g);H1d(this);this.c=a;this.b=c} +function wTb(a){this.g=a;this.f=new imb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} +function bTb(){bTb=ndb;$Sb=new yTb;_Sb=new CTb;YSb=new GTb;ZSb=new KTb;aTb=new OTb} +function sOb(){sOb=ndb;qOb=new tOb('EADES',0);rOb=new tOb('FRUCHTERMAN_REINGOLD',1)} +function voc(){voc=ndb;toc=new woc('READING_DIRECTION',0);uoc=new woc('ROTATION',1)} +function Hhc(){Hhc=ndb;Ghc=gs((Bhc(),WC(OC(GU,1),kue,371,0,[xhc,zhc,Ahc,yhc,whc])))} +function rzc(){rzc=ndb;qzc=gs((jzc(),WC(OC(mW,1),kue,328,0,[izc,fzc,gzc,ezc,hzc])))} +function Vrc(){Vrc=ndb;Urc=gs((Qrc(),WC(OC(dW,1),kue,165,0,[Prc,Lrc,Mrc,Nrc,Orc])))} +function I_c(){I_c=ndb;H_c=gs((C_c(),WC(OC(y_,1),kue,364,0,[A_c,x_c,B_c,y_c,z_c])))} +function e7c(){e7c=ndb;d7c=gs((_6c(),WC(OC(A0,1),kue,369,0,[X6c,W6c,Z6c,Y6c,$6c])))} +function J8c(){J8c=ndb;I8c=gs((E8c(),WC(OC(S0,1),kue,330,0,[z8c,A8c,D8c,B8c,C8c])))} +function YQb(){YQb=ndb;XQb=gs((TQb(),WC(OC(AO,1),kue,363,0,[OQb,PQb,QQb,RQb,SQb])))} +function wjd(){wjd=ndb;vjd=gs((ojd(),WC(OC(v2,1),kue,86,0,[mjd,ljd,kjd,jjd,njd])))} +function Led(){Led=ndb;Ked=gs((Ged(),WC(OC(g2,1),kue,160,0,[Eed,Ded,Bed,Fed,Ced])))} +function qld(){qld=ndb;pld=gs((lld(),WC(OC(G2,1),kue,257,0,[ild,kld,gld,hld,jld])))} +function vmd(){vmd=ndb;umd=gs((mmd(),WC(OC(J2,1),eye,64,0,[kmd,Uld,Tld,jmd,lmd])))} +function amc(a){var b;b=JD(lNb(a,(Krc(),Aqc)),317);if(b){return b.a==a}return false} +function bmc(a){var b;b=JD(lNb(a,(Krc(),Aqc)),317);if(b){return b.i==a}return false} +function Vvb(a,b){KDb(b);Uvb(a);if(a.d.Ob()){b.Ad(a.d.Pb());return true}return false} +function Xy(a){if(Lcb(a,lte)>0){return lte}if(Lcb(a,rue)<0){return rue}return ddb(a)} +function Kfc(a,b){var c;c=Ty(a.e.c,b.e.c);if(c==0){return Xeb(a.e.d,b.e.d)}return c} +function Sad(a,b){var c;c=JD(bjb(a.a,b),150);if(!c){c=new pNb;ejb(a.a,b,c)}return c} +function kC(a,b,c){var d;if(b==null){throw Icb(new Ufb)}d=iC(a,b);lC(a,b,c);return d} +function Q6b(a,b){var c,d;d=b.c;for(c=d+1;c<=b.f;c++){a.a[c]>a.a[d]&&(d=c)}return d} +function HNc(a,b,c){var d;d=a.a.e[JD(b.a,9).p]-a.a.e[JD(c.a,9).p];return YD(Sfb(d))} +function L_b(a,b,c){var d,e;for(e=new Hmb(c);e.a0?b-1:b;return Xnd(Ynd(Znd($nd(new _nd,c),a.n),a.j),a.k)} +function Sde(a,b,c,d){var e;a.j=-1;qJd(a,eee(a,b,c),(lie(),e=JD(b,69).tk(),e.vl(d)))} +function RVb(a,b,c,d,e,f){var g;g=TVb(d);xWb(g,e);yWb(g,f);Rc(a.a,d,new iWb(g,b,c.f))} +function dCb(a,b){var c;aBb(a);c=new sCb(a,a.a.xd(),a.a.wd()|4,b);return new gCb(a,c)} +function je(a,b){var c,d;c=JD(Ov(a.d,b),18);if(!c){return null}d=b;return a.e.pc(d,c)} +function tWd(a,b){var c;c=(a.i==null&&pWd(a),a.i);return b>=0&&b=-0.01&&a.a<=Lwe&&(a.a=0);a.b>=-0.01&&a.b<=Lwe&&(a.b=0);return a} +function nfd(a){bfd();var b,c;c=xCe;for(b=0;bc&&(c=a[b])}return c} +function r6b(a){var b;b=Reb(MD(lNb(a,($xc(),bwc))));if(b<0){b=0;oNb(a,bwc,b)}return b} +function dXb(a,b){yld(JD(lNb(JD(a.e,9),($xc(),bxc)),102))&&(Fnb(),gmb(JD(a.e,9).j,b))} +function v7b(a,b){var c,d;for(d=a.Jc();d.Ob();){c=JD(d.Pb(),70);oNb(c,(Krc(),$qc),b)}} +function ax(a,b){var c,d,e;d=b.a.jd();c=JD(b.a.kd(),18).gc();for(e=0;ea||a>b){throw Icb(new Edb('fromIndex: 0, toIndex: '+a+Qve+b))}} +function v5c(a,b){Rud(a,(A3c(),w3c),b.f);Rud(a,t3c,b.e);Rud(a,v3c,b.d);Rud(a,s3c,b.c)} +function _lb(a,b){var c,d,e,f;KDb(b);for(d=a.c,e=0,f=d.length;e0){a.a/=b;a.b/=b}return a} +function NMc(a,b,c){var d,e;d=b;do{e=Reb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} +function zVd(a){var b;if(a.w){return a.w}else{b=AVd(a);!!b&&!b.Sh()&&(a.w=b);return b}} +function Uy(a,b){Sy();Wy(que);return $wnd.Math.abs(a-b)<=que||a==b||isNaN(a)&&isNaN(b)} +function E8d(a){var b;if(a==null){return null}else{b=JD(a,195);return zxd(b,b.length)}} +function SFd(a,b){if(a.g==null||b>=a.i)throw Icb(new ALd(b,a.i));return a.Ui(b,a.g[b])} +function zHb(){zHb=ndb;wHb=new AHb('BEGIN',0);xHb=new AHb(Cwe,1);yHb=new AHb('END',2)} +function Kjd(){Kjd=ndb;Hjd=new Ljd(Cwe,0);Ijd=new Ljd('HEAD',1);Jjd=new Ljd('TAIL',2)} +function lYc(){lYc=ndb;kYc=Ubd(Ubd(Ubd(Zbd(new acd,(sSc(),pSc)),(qVc(),pVc)),iVc),mVc)} +function XYc(){XYc=ndb;WYc=Ubd(Ubd(Ubd(Zbd(new acd,(sSc(),rSc)),(qVc(),kVc)),fVc),jVc)} +function uo(a,b){return Rv(Ao(a,b,ddb(Vcb(due,xfb(ddb(Vcb(b==null?0:tb(b),eue)),15)))))} +function HEb(a,b){return Sy(),Wy(que),$wnd.Math.abs(a-b)<=que||a==b||isNaN(a)&&isNaN(b)} +function j0d(a,b){var c,d;d=a.a;c=k0d(a,b,null);d!=b&&!a.e&&(c=m0d(a,b,c));!!c&&c.mj()} +function aRb(a,b){var c;c=Vfd(Ifd(JD(bjb(a.g,b),8)),vfd(JD(bjb(a.f,b),460).b));return c} +function odb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} +function KD(a){var b;SDb(a==null||Array.isArray(a)&&(b=PC(a),!(b>=14&&b<=16)));return a} +function kIb(a){a.b=(eIb(),bIb);a.f=(XIb(),VIb);a.d=(bk(2,jue),new jmb(2));a.e=new Wfd} +function Mod(a){this.b=(Qb(a),new kmb(a));this.a=new imb;this.d=new imb;this.e=new Wfd} +function bCb(a){aBb(a);PDb(true,'n may not be negative');return new gCb(a,new TCb(a.a))} +function Knb(a,b){Fnb();var c,d;d=new imb;for(c=0;c0){return JD(amb(c.a,d-1),9)}return null} +function Wy(a){if(!(a>=0)){throw Icb(new hfb('tolerance ('+a+') must be >= 0'))}return a} +function gdd(){if(!Zcd){Zcd=new fdd;edd(Zcd,WC(OC(E1,1),rte,148,0,[new hjd]))}return Zcd} +function WAc(){WAc=ndb;VAc=new XAc('NO',0);TAc=new XAc(Vye,1);UAc=new XAc('LOOK_BACK',2)} +function bAc(){bAc=ndb;aAc=new cAc(Kwe,0);$zc=new cAc('INPUT',1);_zc=new cAc('OUTPUT',2)} +function Xnc(){Xnc=ndb;Unc=new Ync('ARD',0);Wnc=new Ync('MSD',1);Vnc=new Ync('MANUAL',2)} +function qoc(){koc();return WC(OC(TV,1),kue,267,0,[eoc,coc,goc,hoc,foc,ioc,joc,doc,boc])} +function Hyc(){Byc();return WC(OC(jW,1),kue,268,0,[zyc,wyc,xyc,tyc,vyc,Ayc,yyc,syc,uyc])} +function lnd(){ind();return WC(OC(O2,1),kue,266,0,[bnd,dnd,and,end,fnd,hnd,gnd,cnd,_md])} +function hdb(){idb();var a=gdb;for(var b=0;bc)throw Icb(new cKd(b,c));return new EKd(a,b)} +function Nc(a){var b,c;for(c=a.c.Bc().Jc();c.Ob();){b=JD(c.Pb(),18);b.$b()}a.c.$b();a.d=0} +function Xi(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;d=0);if(ylb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} +function TCb(a){Bwb.call(this,a.yd(64)?Rfb(0,adb(a.xd(),1)):Tte,a.wd());this.b=1;this.a=a} +function FUd(){bUd.call(this);this.n=-1;this.g=null;this.i=null;this.j=null;this.Bb|=GHe} +function Ahe(a,b,c,d){this.$j();this.a=b;this.b=a;this.c=null;this.c=new Bhe(this,b,c,d)} +function PId(a,b,c,d,e){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1;e||(this.o=-2-d-1)} +function dRb(a){$Qb();this.g=new Yrb;this.f=new Yrb;this.b=new Yrb;this.c=new Np;this.i=a} +function EWb(){this.f=new Wfd;this.d=new dZb;this.c=new Wfd;this.a=new imb;this.b=new imb} +function eHb(a){var b,c;for(c=new Hmb(Hrd(a));c.a=0} +function sCc(){sCc=ndb;rCc=Xbd(Xbd(Xbd(new acd,(TQb(),OQb),(Q5b(),X4b)),PQb,u5b),QQb,t5b)} +function DCc(){DCc=ndb;CCc=Xbd(Xbd(Xbd(new acd,(TQb(),OQb),(Q5b(),X4b)),PQb,u5b),QQb,t5b)} +function XCc(){XCc=ndb;WCc=Xbd(Xbd(Xbd(new acd,(TQb(),OQb),(Q5b(),X4b)),PQb,u5b),QQb,t5b)} +function qDc(){qDc=ndb;pDc=Xbd(Xbd(Xbd(new acd,(TQb(),OQb),(Q5b(),X4b)),PQb,u5b),QQb,t5b)} +function yDc(){yDc=ndb;xDc=Xbd(Xbd(Xbd(new acd,(TQb(),OQb),(Q5b(),X4b)),PQb,u5b),QQb,t5b)} +function WDc(){WDc=ndb;VDc=Xbd(Xbd(Xbd(new acd,(TQb(),OQb),(Q5b(),X4b)),PQb,u5b),QQb,t5b)} +function bGc(){bGc=ndb;aGc=Vbd(Xbd(Xbd(new acd,(TQb(),QQb),(Q5b(),x5b)),RQb,n5b),SQb,w5b)} +function Dfb(){Dfb=ndb;Cfb=WC(OC(cE,1),Pue,30,15,[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15])} +function eAd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,0,c,a.b))} +function fAd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,1,c,a.c))} +function N_d(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,4,c,a.c))} +function r4d(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,1,c,a.c))} +function lTd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,1,c,a.d))} +function svd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,2,c,a.k))} +function HVd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,2,c,a.D))} +function Rwd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,8,c,a.f))} +function Swd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,7,c,a.i))} +function mzd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,8,c,a.a))} +function q4d(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,0,c,a.b))} +function Are(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new Epe:new Roe;a.c=Loe(d,a.b,a.a)} +function Eee(a,b){return oie(a.e,b)?(lie(),uUd(b)?new mje(b,a):new Cie(b,a)):new zje(b,a)} +function yBb(a){var b,c;if(0>a){return new HBb}b=a+1;c=new ABb(b,a);return new EBb(null,c)} +function Nnb(a,b){Fnb();var c;c=new Zrb(1);VD(a)?fjb(c,a,b):wsb(c.f,a,b);return new Apb(c)} +function Ead(a,b){var c;c=new LMb;JD(b.b,68);JD(b.b,68);JD(b.b,68);_lb(b.a,new Kad(a,c,b))} +function Lfd(a,b){var c;if(RD(b,8)){c=JD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} +function F_b(a){var b;b=lNb(a,(Krc(),hrc));if(RD(b,174)){return E_b(JD(b,174))}return null} +function Qp(a){var b;a=$wnd.Math.max(a,2);b=tfb(a);if(a>b){b<<=1;return b>0?b:iue}return b} +function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} +function N0d(a){var b;if(a.b==null){return h1d(),h1d(),g1d}b=a.sl()?a.rl():a.ql();return b} +function iMd(a,b){var c,d;for(d=b.vc().Jc();d.Ob();){c=JD(d.Pb(),45);hMd(a,c.jd(),c.kd())}} +function Qwd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,11,c,a.d))} +function xUd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,13,c,a.j))} +function _3d(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,21,c,a.b))} +function Vnd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Vnd(a.i,b/a.r*a.i.d)}} +function slb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d0?1:0}return (!a.c&&(a.c=vib(Pcb(a.f))),a.c).e} +function EVd(a,b){if(b){if(a.B==null){a.B=a.D;a.D=null}}else if(a.B!=null){a.D=a.B;a.B=null}} +function N_b(a,b){b.Tg(Bye,1);VBb(UBb(new gCb(null,new Wvb(a.b,16)),new R_b),new T_b);b.Ug()} +function Cyb(a,b,c,d,e,f){var g;this.c=a;g=new imb;Wxb(a,g,b,a.b,c,d,e,f);this.a=new Qjb(g,0)} +function Ayd(a,b,c,d,e,f,g,h,i,j,k,l,m){Hyd(a,b,c,d,e,f,g,h,i,j,k,l,m);iVd(a,false);return a} +function kdb(a,b){typeof window===gte&&typeof window['$gwt']===gte&&(window['$gwt'][a]=b)} +function zib(a,b,c){var d,e,f;d=0;for(e=0;e>>31}d!=0&&(a[c]=d)} +function gYc(a,b,c){c.Tg('DFS Treeifying phase',1);fYc(a,b);dYc(a,b);a.a=null;a.b=null;c.Ug()} +function V_c(a,b){var c;b.Tg('General Compactor',1);c=D0c(JD(Pud(a,(u1c(),c1c)),386));c.Bg(a)} +function n2c(a,b){var c,d;c=JD(Pud(a,(u1c(),j1c)),15);d=JD(Pud(b,j1c),15);return ofb(c.a,d.a)} +function ggd(a,b,c){var d,e;for(e=Wtb(a,0);e.b!=e.d.c;){d=JD(iub(e),8);d.a+=b;d.b+=c}return a} +function CBd(a,b,c,d){var e;e=new mC;xAd(e,'x',XAd(a,b,d.a));xAd(e,'y',YAd(a,b,d.b));vAd(c,e)} +function FBd(a,b,c,d){var e;e=new mC;xAd(e,'x',XAd(a,b,d.a));xAd(e,'y',YAd(a,b,d.b));vAd(c,e)} +function Fzc(){Czc();return WC(OC(nW,1),kue,243,0,[Azc,vzc,yzc,wzc,xzc,szc,zzc,Bzc,tzc,uzc])} +function Opc(){Lpc();return WC(OC($V,1),kue,261,0,[Cpc,Epc,Fpc,Gpc,Hpc,Ipc,Kpc,Bpc,Dpc,Jpc])} +function jWd(){jWd=ndb;gWd=new g_d;iWd=WC(OC(G6,1),fIe,179,0,[]);hWd=WC(OC(A6,1),gIe,62,0,[])} +function G6b(){G6b=ndb;F6b=new oEd('edgelabelcenterednessanalysis.includelabel',(Ndb(),Ldb))} +function Imc(a,b){return Reb(MD(Pub(aCb(WBb(new gCb(null,new Wvb(a.c.b,16)),new $mc(a)),b))))} +function Lmc(a,b){return Reb(MD(Pub(aCb(WBb(new gCb(null,new Wvb(a.c.b,16)),new Ymc(a)),b))))} +function tb(a){return VD(a)?vgb(a):TD(a)?Ueb(a):SD(a)?Qdb(a):QD(a)?a.Hb():UC(a)?ADb(a):Az(a)} +function _Jb(a,b){return Sy(),Wy(Lwe),$wnd.Math.abs(0-b)<=Lwe||0==b||isNaN(0)&&isNaN(b)?0:a/b} +function TSb(a,b){OSb();return a==KSb&&b==LSb||a==KSb&&b==MSb||a==NSb&&b==MSb||a==NSb&&b==LSb} +function SSb(a,b){OSb();return a==KSb&&b==NSb||a==NSb&&b==KSb||a==MSb&&b==LSb||a==LSb&&b==MSb} +function kZb(){kZb=ndb;hZb=new UZb;fZb=new ZZb;gZb=new b$b;eZb=new f$b;iZb=new j$b;jZb=new n$b} +function DBb(a){var b;b=CBb(a);if(Ocb(b.a,0)){return fvb(),fvb(),evb}return fvb(),new ivb(b.b)} +function gBb(a){var b;b=fBb(a);if(Ocb(b.a,0)){return Xub(),Xub(),Wub}return Xub(),new avb(b.b)} +function hBb(a){var b;b=fBb(a);if(Ocb(b.a,0)){return Xub(),Xub(),Wub}return Xub(),new avb(b.c)} +function gWb(a){if(a.b.c.i.k==(UYb(),NYb)){return JD(lNb(a.b.c.i,(Krc(),hrc)),12)}return a.b.c} +function hWb(a){if(a.b.d.i.k==(UYb(),NYb)){return JD(lNb(a.b.d.i,(Krc(),hrc)),12)}return a.b.d} +function W1b(a){switch(a.g){case 2:return mmd(),lmd;case 4:return mmd(),Tld;default:return a;}} +function X1b(a){switch(a.g){case 1:return mmd(),jmd;case 3:return mmd(),Uld;default:return a;}} +function Epd(a,b){var c;c=Jpd(a);return Dpd(new Yfd(c.c,c.d),new Yfd(c.b,c.a),a.Kf(),b,a.$f())} +function i4b(a,b){b.Tg(Bye,1);lHb(kHb(new pHb((JWb(),new UWb(a,false,false,new AXb)))));b.Ug()} +function oGc(){oGc=ndb;nGc=Ubd(Ybd(Xbd(Xbd(new acd,(TQb(),QQb),(Q5b(),x5b)),RQb,n5b),SQb),w5b)} +function ZHc(){ZHc=ndb;YHc=Ubd(Ybd(Xbd(Xbd(new acd,(TQb(),QQb),(Q5b(),x5b)),RQb,n5b),SQb),w5b)} +function cgc(a,b,c){this.g=a;this.d=b;this.e=c;this.a=new imb;agc(this);Fnb();gmb(this.a,null)} +function MJb(a,b,c,d,e,f,g){es.call(this,a,b);this.d=c;this.e=d;this.c=e;this.b=f;this.a=Wu(g)} +function aGd(a){this.i=a.gc();if(this.i>0){this.g=this.$i(this.i+(this.i/8|0)+1);a.Oc(this.g)}} +function Ld(a,b){var c,d;KDb(b);for(d=b.vc().Jc();d.Ob();){c=JD(d.Pb(),45);a.yc(c.jd(),c.kd())}} +function cee(a,b,c){var d;for(d=c.Jc();d.Ob();){if(!aee(a,b,d.Pb())){return false}}return true} +function Ao(a,b,c){var d;for(d=a.b[c&a.f];d;d=d.b){if(c==d.a&&Hb(b,d.g)){return d}}return null} +function Bo(a,b,c){var d;for(d=a.c[c&a.f];d;d=d.d){if(c==d.f&&Hb(b,d.i)){return d}}return null} +function qr(a,b){var c;Qb(b);while(a.Ob()){c=a.Pb();if(!KOc(JD(c,9))){return false}}return true} +function Q4d(a,b,c,d,e){var f;if(c){f=zWd(b.Ah(),a.c);e=c.Oh(b,-1-(f==-1?d:f),null,e)}return e} +function R4d(a,b,c,d,e){var f;if(c){f=zWd(b.Ah(),a.c);e=c.Qh(b,-1-(f==-1?d:f),null,e)}return e} +function _hb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} +function Thc(a){var b,c,d;return a.j==(mmd(),Uld)&&(b=Vhc(a),c=Hrb(b,Tld),d=Hrb(b,lmd),d||d&&c)} +function H6b(a){var b,c,d;d=0;for(c=new Hmb(a.b);c.ae&&b.af&&b.be?(c=e):RDb(b,c+1);a.a=Ggb(a.a,0,b)+(''+d)+Fgb(a.a,c)} +function Dyd(a,b,c,d){RD(a.Cb,184)&&(JD(a.Cb,184).tb=null);Wxd(a,c);!!b&&FVd(a,b);d&&a.el(true)} +function K6b(a,b){var c,d;for(d=new Hmb(b.b);d.a1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw Icb(new Hub)}} +function Vgc(a,b){var c,d;for(d=new Hmb(b);d.a>22);e=a.h+b.h+(d>>22);return _C(c&dve,d&dve,e&eve)} +function vD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return _C(c&dve,d&dve,e&eve)} +function h_c(a){var b,c,d,e;e=new imb;for(d=a.Jc();d.Ob();){c=JD(d.Pb(),26);b=k_c(c);$lb(e,b)}return e} +function M9b(a){var b;wWb(a,true);b=hue;mNb(a,($xc(),kxc))&&(b+=JD(lNb(a,kxc),15).a);oNb(a,kxc,zfb(b))} +function had(a,b,c){var d;hjb(a.a);_lb(c.i,new sad(a));d=new oEb(JD(bjb(a.a,b.b),68));gad(a,d,b);c.f=d} +function IEd(a){var b,c;c=(ksd(),b=new Ywd,b);!!a&&YEd((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a),c);return c} +function vQd(a,b){var c,d;d=0;if(a<64&&a<=b){b=b<64?b:63;for(c=a;c<=b;c++){d=Ycb(d,Zcb(1,c))}}return d} +function Ar(a,b){var c,d;Rb(b,'predicate');for(d=0;a.Ob();d++){c=a.Pb();if(b.Lb(c)){return d}}return -1} +function Nud(a,b){switch(b){case 0:!a.o&&(a.o=new BTd((ysd(),vsd),c4,a,0));a.o.c.$b();return;}htd(a,b)} +function Mkd(a){switch(a.g){case 1:return Ikd;case 2:return Hkd;case 3:return Jkd;default:return Kkd;}} +function Inb(a){Fnb();var b,c,d;d=0;for(c=a.Jc();c.Ob();){b=c.Pb();d=d+(b!=null?tb(b):0);d=d|0}return d} +function _A(a){var b;b=new XA;b.a=a;b.b=ZA(a);b.c=SC(hJ,Ote,2,2,6,1);b.c[0]=$A(a);b.c[1]=$A(a);return b} +function c8b(){c8b=ndb;b8b=new e8b(cye,0);_7b=new e8b(Hye,1);a8b=new e8b(Iye,2);$7b=new e8b('BOTH',3)} +function OSb(){OSb=ndb;KSb=new RSb('Q1',0);NSb=new RSb('Q4',1);LSb=new RSb('Q2',2);MSb=new RSb('Q3',3)} +function bqc(){bqc=ndb;aqc=new cqc('ONLY_WITHIN_GROUP',0);_pc=new cqc(dye,1);$pc=new cqc('ENFORCED',2)} +function Eoc(){Eoc=ndb;Coc=new Foc(cye,0);Boc=new Foc('INCOMING_ONLY',1);Doc=new Foc('OUTGOING_ONLY',2)} +function Pad(){Pad=ndb;new nEd('org.eclipse.elk.addLayoutConfig');Nad=new _ad;Mad=new bbd;Oad=new Zad} +function zC(){zC=ndb;yC={'boolean':AC,'number':BC,'string':DC,'object':CC,'function':CC,'undefined':EC}} +function Hzc(){Hzc=ndb;Gzc=gs((Czc(),WC(OC(nW,1),kue,243,0,[Azc,vzc,yzc,wzc,xzc,szc,zzc,Bzc,tzc,uzc])))} +function Qpc(){Qpc=ndb;Ppc=gs((Lpc(),WC(OC($V,1),kue,261,0,[Cpc,Epc,Fpc,Gpc,Hpc,Ipc,Kpc,Bpc,Dpc,Jpc])))} +function sn(a,b,c,d){return new Jx(WC(OC(LK,1),$te,45,0,[(ak(a,b),new ap(a,b)),(ak(c,d),new ap(c,d))]))} +function t7c(a,b){var c,d;c=JD(JD(bjb(a.g,b.a),49).a,68);d=JD(JD(bjb(a.g,b.b),49).a,68);return rMb(c,d)} +function ZEd(a,b,c){var d;d=a.gc();if(b>d)throw Icb(new cKd(b,d));a.Qi()&&(c=dFd(a,c));return a.Ci(b,c)} +function F1b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new Afd(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))} +function tMb(a,b){if(!a||!b||a==b){return false}return Ty(a.b.c,b.b.c+b.b.b)<0&&Ty(b.b.c,a.b.c+a.b.b)<0} +function xQd(a,b,c){if(a>=128)return false;return a<64?Xcb(Kcb(Zcb(1,a),c),0):Xcb(Kcb(Zcb(1,a-64),b),0)} +function qFb(a,b,c){switch(c.g){case 2:a.b=b;break;case 1:a.c=b;break;case 4:a.d=b;break;case 3:a.a=b;}} +function nNb(a,b,c){return c==null?(!a.q&&(a.q=new Yrb),gjb(a.q,b)):(!a.q&&(a.q=new Yrb),ejb(a.q,b,c)),a} +function oNb(a,b,c){c==null?(!a.q&&(a.q=new Yrb),gjb(a.q,b)):(!a.q&&(a.q=new Yrb),ejb(a.q,b,c));return a} +function $Mb(a){var b,c;c=new HNb;jNb(c,a);oNb(c,(iPb(),gPb),a);b=new Yrb;aNb(a,c,b);_Mb(a,c,b);return c} +function cfd(a){bfd();var b,c,d;c=SC(o2,Ote,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=jfd(d,a)}return c} +function pgc(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;fa.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} +function Y3d(a){var b;if(!a.c||(a.Bb&1)==0&&(a.c.Db&64)!=0){b=UTd(a);RD(b,88)&&(a.c=JD(b,29))}return a.c} +function tfb(a){var b;if(a<0){return rue}else if(a==0){return 0}else{for(b=iue;(b&a)==0;b>>=1);return b}} +function ZA(a){var b;if(a==0){return 'Etc/GMT'}if(a<0){a=-a;b='Etc/GMT-'}else{b='Etc/GMT+'}return b+aB(a)} +function gD(a){var b,c;c=ufb(a.h);if(c==32){b=ufb(a.m);return b==32?ufb(a.l)+32:b+20-10}else{return c-12}} +function fD(a){var b,c,d;b=~a.l+1&dve;c=~a.m+(b==0?1:0)&dve;d=~a.h+(b==0&&c==0?1:0)&eve;a.l=b;a.m=c;a.h=d} +function vlb(a){var b;b=a.a[a.b];if(b==null){return null}VC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} +function web(){++reb;this.o=null;this.k=null;this.j=null;this.d=null;this.b=null;this.n=null;this.a=null} +function nj(a,b){this.c=a;this.d=b;this.b=this.d/this.c.c.Pd().gc()|0;this.a=this.d%this.c.c.Pd().gc()} +function PYd(a,b){this.b=a;LYd.call(this,(JD(SFd(vWd((jRd(),iRd).o),10),19),b.i),b.g);this.a=(jWd(),iWd)} +function nB(a,b,c){this.q=new $wnd.Date;this.q.setFullYear(a+Oue,b,c);this.q.setHours(0,0,0,0);eB(this,0)} +function $xb(a,b,c){var d,e;d=new Jyb(b,c);e=new Kyb;a.b=Yxb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d} +function Gnb(a,b){Fnb();var c,d,e,f,g;g=false;for(d=b,e=0,f=d.length;eg||d+e>f){throw Icb(new Bdb)}} +function Igc(a,b,c){var d,e,f,g;g=wIc(b,c);f=0;for(e=g.Jc();e.Ob();){d=JD(e.Pb(),12);ejb(a.c,d,zfb(f++))}} +function $Rb(a){var b,c;for(c=new Hmb(a.a.b);c.a=0,'Negative initial capacity');CDb(b>=0,'Non-positive load factor');hjb(this)} +function Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3} +function dre(){Tqe();var a;if(Aqe)return Aqe;a=Xqe(fre('M',true));a=Yqe(fre('M',false),a);Aqe=a;return Aqe} +function a8c(a){switch(a.g){case 0:return new Had;default:throw Icb(new hfb(UDe+(a.f!=null?a.f:''+a.g)));}} +function J9c(a){switch(a.g){case 0:return new bad;default:throw Icb(new hfb(UDe+(a.f!=null?a.f:''+a.g)));}} +function Mud(a,b,c){switch(b){case 0:!a.o&&(a.o=new BTd((ysd(),vsd),c4,a,0));ATd(a.o,c);return;}dtd(a,b,c)} +function xTc(a,b,c){this.g=a;this.e=new Wfd;this.f=new Wfd;this.d=new aub;this.b=new aub;this.a=b;this.c=c} +function C6c(a,b,c,d){this.b=new imb;this.n=new imb;this.i=d;this.j=c;this.s=a;this.t=b;this.r=0;this.d=0} +function mlc(a,b,c,d){this.b=new Yrb;this.g=new Yrb;this.d=(Nyc(),Myc);this.c=a;this.e=b;this.d=c;this.a=d} +function iFd(a,b){if(!a.Ji()&&b==null){throw Icb(new hfb("The 'no null' constraint is violated"))}return b} +function XRc(a){switch(a.g){case 1:return qCe;default:case 2:return 0;case 3:return rCe;case 4:return sCe;}} +function iyc(a){Ylb(a.c,(Pad(),Nad));if(Uy(a.a,Reb(MD(mEd((qyc(),oyc)))))){return new npd}return new ppd(a)} +function Vr(a){while(!a.d||!a.d.Ob()){if(!!a.b&&!ulb(a.b)){a.d=JD(zlb(a.b),50)}else{return null}}return a.d} +function vgb(a){var b,c;b=0;for(c=0;cd?1:0} +function Qxb(a,b){var c,d,e;e=a.b;while(e){c=a.a.Le(b,e.d);if(c==0){return e}d=c<0?0:1;e=e.a[d]}return null} +function ow(a,b){var c;if(b===a){return true}if(RD(b,229)){c=JD(b,229);return pb(a.Zb(),c.Zb())}return false} +function pVb(a,b){if(qVb(a,b)){Rc(a.b,JD(lNb(b,(Krc(),Lqc)),22),b);Qtb(a.a,b);return true}else{return false}} +function M8b(a,b){if(mNb(a,(Krc(),grc))&&mNb(b,grc)){return JD(lNb(b,grc),15).a-JD(lNb(a,grc),15).a}return 0} +function R8b(a,b){if(mNb(a,(Krc(),grc))&&mNb(b,grc)){return JD(lNb(a,grc),15).a-JD(lNb(b,grc),15).a}return 0} +function pAb(a){if(iAb){return SC(AL,Xve,567,0,0,1)}return JD(hmb(a.a,SC(AL,Xve,567,a.a.c.length,0,1)),840)} +function rb(a){return VD(a)?hJ:TD(a)?LI:SD(a)?GI:QD(a)?a.Pm:UC(a)?a.Pm:a.Pm||Array.isArray(a)&&OC(ZH,1)||ZH} +function iyd(a,b,c){var d,e;e=(d=new o2d,d);Fyd(e,b,c);YEd((!a.q&&(a.q=new A3d(A6,a,11,10)),a.q),e);return e} +function Exd(a){var b,c,d,e;e=tdb(wxd,a);c=e.length;d=SC(hJ,Ote,2,c,6,1);for(b=0;b=a.b.c.length){return}nvb(a,2*b+1);c=2*b+2;c0){b.Ad(c);c.i&&EGc(c)}}} +function Lib(a,b,c){var d;for(d=c-1;d>=0&&a[d]===b[d];d--);return d<0?0:Tcb(Kcb(a[d],yve),Kcb(b[d],yve))?-1:1} +function RIc(a,b){var c;if(!a||a==b||!mNb(b,(Krc(),Wqc))){return false}c=JD(lNb(b,(Krc(),Wqc)),9);return c!=a} +function zfe(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.Yl()}}} +function kgc(a,b,c){if(!a.d[b.p][c.p]){jgc(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} +function _s(a,b,c){var d,e;this.g=a;this.c=b;this.a=this;this.d=this;e=Qp(c);d=SC(MG,fue,227,e,0,1);this.b=d} +function Dc(a,b){var c,d;for(d=a.Zb().Bc().Jc();d.Ob();){c=JD(d.Pb(),18);if(c.Gc(b)){return true}}return false} +function _t(a,b,c){var d,e,f,g;KDb(c);g=false;f=a.dd(b);for(e=c.Jc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} +function PKd(a,b){var c,d;d=JD(fud(a.a,4),129);c=SC(l5,CHe,415,b,0,1);d!=null&&ohb(d,0,c,0,d.length);return c} +function fQd(a,b){var c;c=new jQd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} +function Kv(a,b){var c;if(a===b){return true}else if(RD(b,92)){c=JD(b,92);return Nx(bn(a),c.vc())}return false} +function ajb(a,b,c){var d,e;for(e=c.Jc();e.Ob();){d=JD(e.Pb(),45);if(a.ze(b,d.kd())){return true}}return false} +function Gqd(){Gqd=ndb;Dqd=new Hqd('ELK',0);Eqd=new Hqd('JSON',1);Cqd=new Hqd('DOT',2);Fqd=new Hqd('SVG',3)} +function OXc(){OXc=ndb;NXc=new PXc(dye,0);LXc=new PXc(DCe,1);MXc=new PXc('FAN',2);KXc=new PXc('CONSTRAINT',3)} +function fWc(){fWc=ndb;eWc=new gWc(cye,0);dWc=new gWc('MIDDLE_TO_MIDDLE',1);cWc=new gWc('AVOID_OVERLAP',2)} +function C0c(){C0c=ndb;z0c=new E0c(cye,0);A0c=new E0c('RADIAL_COMPACTION',1);B0c=new E0c('WEDGE_COMPACTION',2)} +function tAc(){tAc=ndb;sAc=new uAc('STACKED',0);qAc=new uAc('REVERSE_STACKED',1);rAc=new uAc('SEQUENCED',2)} +function CAb(){CAb=ndb;zAb=new DAb('CONCURRENT',0);AAb=new DAb('IDENTITY_FINISH',1);BAb=new DAb('UNORDERED',2)} +function Bkd(){Bkd=ndb;zkd=new Ckd(iFe,0);ykd=new Ckd('INCLUDE_CHILDREN',1);Akd=new Ckd('SEPARATE_CHILDREN',2)} +function rkd(){rkd=ndb;pkd=new bZb(15);okd=new qEd((gjd(),cid),pkd);qkd=zid;kkd=jhd;lkd=Vhd;nkd=Yhd;mkd=Xhd} +function mRb(){mRb=ndb;kRb=Sx(WC(OC(v2,1),kue,86,0,[(ojd(),kjd),ljd]));lRb=Sx(WC(OC(v2,1),kue,86,0,[njd,jjd]))} +function igd(a){var b,c,d;b=0;d=SC(o2,Ote,8,a.b,0,1);c=Wtb(a,0);while(c.b!=c.d.c){d[b++]=JD(iub(c),8)}return d} +function fgd(a,b,c){var d,e,f;d=new aub;for(f=Wtb(c,0);f.b!=f.d.c;){e=JD(iub(f),8);Qtb(d,new Zfd(e))}_t(a,b,d)} +function jyc(a,b){var c;c=mEd((qyc(),oyc))!=null&&b.Rg()!=null?Reb(MD(b.Rg()))/Reb(MD(mEd(oyc))):1;ejb(a.b,b,c)} +function ke(a,b){var c,d;c=JD(a.d.Ac(b),18);if(!c){return null}d=a.e.hc();d.Fc(c);a.e.d-=c.gc();c.$b();return d} +function uIc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return pxb(b-1,a.a.c.length),cmb(a.a,b-1)}else{throw Icb(new Xqb)}} +function tbd(a,b,c){if(b<0){throw Icb(new Cdb(nEe+b))}if(bb){throw Icb(new hfb(_ve+a+awe+b))}if(a<0||b>c){throw Icb(new Edb(_ve+a+bwe+b+Qve+c))}} +function ced(a){if(!a.a||(a.a.i&8)==0){throw Icb(new kfb('Enumeration class expected for layout option '+a.f))}} +function ifb(a){gz.call(this,'The given string does not match the expected format for individual spacings.',a)} +function Afe(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.Zl()}}} +function $p(a){switch(a.c){case 0:return Lx(),Kx;case 1:return new xy(zr(new Trb(a)));default:return new Zp(a);}} +function _n(a){switch(a.gc()){case 0:return Lx(),Kx;case 1:return new xy(a.Jc().Pb());default:return new Mx(a);}} +function w_d(a){var b;b=(!a.a&&(a.a=new A3d(t6,a,9,5)),a.a);if(b.i!=0){return L_d(JD(SFd(b,0),684))}return null} +function Vy(a,b){var c;c=Jcb(a,b);if(Tcb(fdb(a,b),0)|Rcb(fdb(a,c),0)){return c}return Jcb(Tte,fdb(_cb(c,63),1))} +function Zlb(a,b,c){var d,e;MDb(b,a.c.length);d=c.Nc();e=d.length;if(e==0){return false}mDb(a.c,b,d);return true} +function Clb(a,b){var c,d;c=a.a.length-1;while(b!=a.b){d=b-1&c;VC(a.a,b,a.a[d]);b=d}VC(a.a,a.b,null);a.b=a.b+1&c} +function Blb(a,b){var c,d;c=a.a.length-1;a.c=a.c-1&c;while(b!=a.c){d=b+1&c;VC(a.a,b,a.a[d]);b=d}VC(a.a,a.c,null)} +function wVd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}HVd(a,b==null?null:(KDb(b),b));!!a.C&&a.fl(null)} +function dGb(a){if(a.c!=a.b.b||a.i!=a.g.b){qDb(a.a.c,0);$lb(a.a,a.b);$lb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} +function XFd(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.ie){N6c(b.q,e);d=c!=b.q.d}}return d} +function Y_c(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} +function wyd(a,b){var c,d;d=Qsd(a);if(!d){!fyd&&(fyd=new J3d);c=(eQd(),lQd(b));d=new Qbe(c);YEd(d.Cl(),a)}return d} +function Sc(a,b){var c,d;c=JD(a.c.Ac(b),18);if(!c){return a.jc()}d=a.hc();d.Fc(c);a.d-=c.gc();c.$b();return a.mc(d)} +function Ose(a){var b;if(!(a.c.c<0?a.a>=a.c.b:a.a<=a.c.b)){throw Icb(new Hub)}b=a.a;a.a+=a.c.c;++a.b;return zfb(b)} +function FQd(a){var b,c;if(a==null)return false;for(b=0,c=a.length;b=d||b=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function pfd(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function ctd(a,b){var c,d,e,f;f=(e=a?Qsd(a):null,Nhe((d=b,e?e.El():null,d)));if(f==b){c=Qsd(a);!!c&&c.El()}return f} +function yxd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new L1d(a,1,1,e,b);!c?(c=d):c.lj(d)}return c} +function c0d(a,b,c){var d,e;e=a.b;a.b=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new L1d(a,1,3,e,b);!c?(c=d):c.lj(d)}return c} +function e0d(a,b,c){var d,e;e=a.f;a.f=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new L1d(a,1,0,e,b);!c?(c=d):c.lj(d)}return c} +function ULd(a){var b,c,d,e;if(a!=null){for(c=0;c-129&&a<128){return kgb(),b=a+128,c=jgb[b],!c&&(c=jgb[b]=new cgb(a)),c}return new cgb(a)} +function zfb(a){var b,c;if(a>-129&&a<128){return Bfb(),b=a+128,c=Afb[b],!c&&(c=Afb[b]=new mfb(a)),c}return new mfb(a)} +function Uib(a,b,c,d,e){if(b==0||d==0){return}b==1?(e[d]=Wib(e,c,d,a[0])):d==1?(e[b]=Wib(e,a,b,c[0])):Vib(a,c,e,b,d)} +function _2b(a,b){var c;if(a.c.length==0){return}c=JD(hmb(a,SC(RP,nye,9,a.c.length,0,1)),199);enb(c,new l3b);Y2b(c,b)} +function f3b(a,b){var c;if(a.c.length==0){return}c=JD(hmb(a,SC(RP,nye,9,a.c.length,0,1)),199);enb(c,new q3b);Y2b(c,b)} +function lUb(a,b){var c;if(a.a.c.length>0){c=JD(amb(a.a,a.a.c.length-1),565);if(pVb(c,b)){return}}Ylb(a.a,new rVb(b))} +function uec(a){aec();var b,c;b=a.d.c-a.e.c;c=JD(a.g,156);_lb(c.b,new Pec(b));_lb(c.c,new Rec(b));Efb(c.i,new Tec(b))} +function Lfc(a){var b;b=new ihb;b.a+='VerticalSegment ';dhb(b,a.e);b.a+=' ';ehb(b,Eb(new Gb,new Hmb(a.k)));return b.a} +function Dhb(a,b){var c;a.c=b;a.a=wib(b);a.a<54&&(a.f=(c=b.d>1?TDb(b.a[0],b.a[1]):TDb(b.a[0],0),cdb(b.e>0?c:Wcb(c))))} +function Egc(a,b){var c,d,e;c=0;for(e=CYb(a,b).Jc();e.Ob();){d=JD(e.Pb(),12);c+=lNb(d,(Krc(),prc))!=null?1:0}return c} +function pQc(a,b,c){var d,e,f;d=0;for(f=Wtb(a,0);f.b!=f.d.c;){e=Reb(MD(iub(f)));if(e>c){break}else e>=b&&++d}return d} +function ndd(a){var b;b=JD(htb(a.c.c,''),233);if(!b){b=new Ocd(Xcd(Wcd(new Ycd,''),'Other'));itb(a.c.c,'',b)}return b} +function Xxd(a){var b;if((a.Db&64)!=0)return jtd(a);b=new Zgb(jtd(a));b.a+=' (name: ';Ugb(b,a.zb);b.a+=')';return b.a} +function oyd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new L1d(a,1,4,e,b);!c?(c=d):c.lj(d)}return c} +function MFd(a,b,c){var d;a.Zi(a.i+1);d=a.Xi(b,c);b!=a.i&&ohb(a.g,b,a.g,b+1,a.i-b);VC(a.g,b,d);++a.i;a.Ki(b,c);a.Li()} +function XTd(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new L1d(a,1,8,e,a.r);!c?(c=d):c.lj(d)}return c} +function n3d(a,b,c){var d,e;d=new N1d(a.e,3,13,null,(e=b.c,e?e:(HRd(),uRd)),dXd(a,b),false);!c?(c=d):c.lj(d);return c} +function o3d(a,b,c){var d,e;d=new N1d(a.e,4,13,(e=b.c,e?e:(HRd(),uRd)),null,dXd(a,b),false);!c?(c=d):c.lj(d);return c} +function xbe(a,b){var c,d,e,f;b.cj(a.a);f=JD(fud(a.a,8),1997);if(f!=null){for(c=f,d=0,e=c.length;d>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} +function Ohe(a){return !a?null:(a.i&1)!=0?a==Fcb?GI:a==cE?UI:a==bE?QI:a==aE?LI:a==dE?XI:a==Ecb?cJ:a==$D?HI:II:a} +function pb(a,b){return VD(a)?sgb(a,b):TD(a)?Seb(a,b):SD(a)?(KDb(a),XD(a)===XD(b)):QD(a)?a.Fb(b):UC(a)?mb(a,b):zz(a,b)} +function Khb(a){var b;Lcb(a,0)<0&&(a=Mcb(qD(Scb(a)?bdb(a):a)));return b=ddb(_cb(a,32)),64-(b!=0?ufb(b):ufb(ddb(a))+32)} +function aCb(a,b){var c;c=new YCb;if(!a.a.zd(c)){_Ab(a);return Oub(),Oub(),Nub}return Oub(),new Sub(KDb(_Bb(a,c.a,b)))} +function wIc(a,b){switch(b.g){case 2:case 1:return CYb(a,b);case 3:case 4:return $u(CYb(a,b));}return Fnb(),Fnb(),Cnb} +function Lxb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new khb(a.d)):ehb(a.a,a.b);chb(a.a,b.a,b.d.length,c)}return a} +function NJb(a){JJb();var b,c,d,e;for(c=PJb(),d=0,e=c.length;dc){throw Icb(new Cdb(_ve+a+bwe+b+', size: '+c))}if(a>b){throw Icb(new hfb(_ve+a+awe+b))}} +function Lsd(a,b,c){if(b<0){atd(a,c)}else{if(!c.pk()){throw Icb(new hfb(EFe+c.ve()+FFe))}JD(c,69).uk().Ck(a,a.ei(),b)}} +function WRc(a,b,c){if($wnd.Math.abs(b-a)pCe?a-c>pCe:c-a>pCe} +function lvd(a,b,c,d){switch(b){case 1:return !a.n&&(a.n=new A3d(P3,a,1,7)),a.n;case 2:return a.k;}return Jud(a,b,c,d)} +function mTd(a){var b;if((a.Db&64)!=0)return jtd(a);b=new Zgb(jtd(a));b.a+=' (source: ';Ugb(b,a.d);b.a+=')';return b.a} +function ZTd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new O1d(a,1,2,c,b))} +function CWd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new O1d(a,1,8,c,b))} +function DWd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new O1d(a,1,9,c,b))} +function $Td(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new O1d(a,1,3,c,b))} +function h_d(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new O1d(a,1,8,c,b))} +function k0d(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new L1d(a,1,5,e,a.a);!c?(c=d):qId(c,d)}return c} +function ije(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.nk();a.b=!c?zWd(a.c.Ah(),a.a):a.c.Eh(a.a.Jj(),c)}return a.c.vh(a.b,b)} +function r$d(a,b){var c,d;for(d=new fKd(a);d.e!=d.i.gc();){c=JD(dKd(d),29);if(XD(b)===XD(c)){return true}}return false} +function HQd(a){if(a>=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} +function I2b(a){var b,c;b=a.k;if(b==(UYb(),NYb)){c=JD(lNb(a,(Krc(),Oqc)),64);return c==(mmd(),Uld)||c==jmd}return false} +function eBb(a){var b;b=fBb(a);if(Ocb(b.a,0)){return Xub(),Xub(),Wub}return Xub(),new avb(Qcb(b.a,0)?Tqb(b)/cdb(b.a):0)} +function Fsd(a,b){var c;c=uWd(a,b);if(RD(c,335)){return JD(c,38)}throw Icb(new hfb(EFe+b+"' is not a valid attribute"))} +function XEd(a,b,c){var d;d=a.gc();if(b>d)throw Icb(new cKd(b,d));if(a.Qi()&&a.Gc(c)){throw Icb(new hfb(FGe))}a.Ei(b,c)} +function A2d(a,b){var c,d;for(d=new fKd(a);d.e!=d.i.gc();){c=JD(dKd(d),143);if(XD(b)===XD(c)){return true}}return false} +function Gce(a,b,c){var d,e,f;f=(e=L3d(a.b,b),e);if(f){d=JD(rde(Nce(a,f),''),29);if(d){return Pce(a,d,b,c)}}return null} +function Jce(a,b,c){var d,e,f;f=(e=L3d(a.b,b),e);if(f){d=JD(rde(Nce(a,f),''),29);if(d){return Qce(a,d,b,c)}}return null} +function Boe(a){var b,c,d;d=0;c=a.length;for(b=0;b=0?qib(a):cib(qib(Wcb(a)))))} +function fWb(a,b,c,d,e,f){this.e=new imb;this.f=(bAc(),aAc);Ylb(this.e,a);this.d=b;this.a=c;this.b=d;this.f=e;this.c=f} +function Xeb(a,b){if(ab){return 1}if(a==b){return a==0?Xeb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} +function wlb(a){var b;b=a.a[a.c-1&a.a.length-1];if(b==null){return null}a.c=a.c-1&a.a.length-1;VC(a.a,a.c,null);return b} +function SGb(a){var b,c;for(c=a.p.a.ec().Jc();c.Ob();){b=JD(c.Pb(),217);if(b.f&&a.b[b.c]<-1.0E-10){return b}}return null} +function PUb(a){var b,c,d;b=new imb;for(d=new Hmb(a.b);d.a=1?ljd:jjd}return c} +function Hhe(a){var b,c;for(c=Ihe(zVd(a)).Jc();c.Ob();){b=OD(c.Pb());if(ixd(a,b)){return SQd((RQd(),QQd),b)}}return null} +function MDc(a,b,c){var d,e;for(e=a.a.ec().Jc();e.Ob();){d=JD(e.Pb(),9);if(Ae(c,JD(amb(b,d.p),18))){return d}}return null} +function ree(a,b,c){var d,e;e=RD(b,103)&&(JD(b,19).Bb&tve)!=0?new Qfe(b,a):new Nfe(b,a);for(d=0;d>10)+uve&Bue;b[1]=(a&1023)+56320&Bue;return Pgb(b,0,b.length)} +function a4d(a,b){var c;c=(a.Bb&tve)!=0;b?(a.Bb|=tve):(a.Bb&=-65537);(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new O1d(a,1,20,c,b))} +function yUd(a,b){var c;c=(a.Bb&Pte)!=0;b?(a.Bb|=Pte):(a.Bb&=-16385);(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new O1d(a,1,16,c,b))} +function iVd(a,b){var c;c=(a.Bb&KFe)!=0;b?(a.Bb|=KFe):(a.Bb&=-32769);(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new O1d(a,1,18,c,b))} +function $3d(a,b){var c;c=(a.Bb&KFe)!=0;b?(a.Bb|=KFe):(a.Bb&=-32769);(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new O1d(a,1,18,c,b))} +function CYb(a,b){var c;a.i||uYb(a);c=JD($qb(a.g,b),49);return !c?(Fnb(),Fnb(),Cnb):new Yjb(a.j,JD(c.a,15).a,JD(c.b,15).a)} +function xEd(a,b,c){var d,e;d=JD(b.mf(a.a),35);e=JD(c.mf(a.a),35);return d!=null&&e!=null?Sdb(d,e):d!=null?-1:e!=null?1:0} +function GEd(a,b,c){var d,e;d=(ksd(),e=new evd,e);cvd(d,b);dvd(d,c);!!a&&YEd((!a.a&&(a.a=new VXd(K3,a,5)),a.a),d);return d} +function QYc(a,b,c){var d;d=0;!!b&&(qjd(a.a)?(d+=b.f.a/2):(d+=b.f.b/2));!!c&&(qjd(a.a)?(d+=c.f.a/2):(d+=c.f.b/2));return d} +function Qsb(a,b,c){var d;d=a.a.get(b);a.a.set(b,c===undefined?null:c);if(d===undefined){++a.c;++a.b.g}else{++a.d}return d} +function tvd(a){var b;if((a.Db&64)!=0)return jtd(a);b=new Zgb(jtd(a));b.a+=' (identifier: ';Ugb(b,a.k);b.a+=')';return b.a} +function Mm(a){var b;switch(a.gc()){case 0:return Dx(),Cx;case 1:return new vy(Qb(a.Xb(0)));default:b=a;return new Ex(b);}} +function Lbc(a){switch(JD(lNb(a,($xc(),Wvc)),222).g){case 1:return new nkc;case 3:return new elc;default:return new hkc;}} +function efb(a){var b;b=Udb(a);if(b>3.4028234663852886E38){return ove}else if(b<-3.4028234663852886E38){return pve}return b} +function Jcb(a,b){var c;if(Scb(a)&&Scb(b)){c=a+b;if(jveb){jub(c);break}}gub(c,b)} +function mdd(a,b){var c,d,e,f,g;c=b.f;itb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.Le(a[f-1],a[f])>0;--f){g=a[f];VC(a,f,a[f-1]);VC(a,f-1,g)}}} +function Ksd(a,b,c,d){if(b<0){_sd(a,c,d)}else{if(!c.pk()){throw Icb(new hfb(EFe+c.ve()+FFe))}JD(c,69).uk().Ak(a,a.ei(),b,d)}} +function btd(a,b){var c;c=uWd(a.Ah(),b);if(RD(c,103)){return JD(c,19)}throw Icb(new hfb(EFe+b+"' is not a valid reference"))} +function RFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw Icb(new hfb('Node '+b+' not part of edge '+a))}} +function Evd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return lvd(a,b,c,d)} +function phc(a){if(a.k!=(UYb(),RYb)){return false}return OBb(new gCb(null,new Xvb(new Yr(Dr(BYb(a).a.Jc(),new Dl)))),new qhc)} +function Qrc(){Qrc=ndb;Prc=new Rrc(cye,0);Lrc=new Rrc('FIRST',1);Mrc=new Rrc(Hye,2);Nrc=new Rrc('LAST',3);Orc=new Rrc(Iye,4)} +function Lnc(){Lnc=ndb;Inc=new Nnc('LAYER_SWEEP',0);Jnc=new Nnc('MEDIAN_LAYER_SWEEP',1);Hnc=new Nnc(Uye,2);Knc=new Nnc(cye,3)} +function E3c(){E3c=ndb;C3c=new F3c('ASPECT_RATIO_DRIVEN',0);D3c=new F3c('MAX_SCALE_DRIVEN',1);B3c=new F3c('AREA_DRIVEN',2)} +function Tod(){Tod=ndb;Sod=new Uod(WBe,0);Pod=new Uod('GROUP_DEC',1);Rod=new Uod('GROUP_MIXED',2);Qod=new Uod('GROUP_INC',3)} +function LSc(a,b){return sgb(!!b.b&&!!b.c?wTc(b.b)+'->'+wTc(b.c):'e_'+tb(b),!!a.b&&!!a.c?wTc(a.b)+'->'+wTc(a.c):'e_'+tb(a))} +function NSc(a,b){return sgb(!!b.b&&!!b.c?wTc(b.b)+'->'+wTc(b.c):'e_'+tb(b),!!a.b&&!!a.c?wTc(a.b)+'->'+wTc(a.c):'e_'+tb(a))} +function Ty(a,b){Sy();return Wy(que),$wnd.Math.abs(a-b)<=que||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Rdb(isNaN(a),isNaN(b))} +function ryc(a){qyc();this.c=Wu(WC(OC(j1,1),rte,829,0,[fyc]));this.b=new Yrb;this.a=a;ejb(this.b,oyc,1);_lb(pyc,new lpd(this))} +function crb(a){var b;this.a=(b=JD(a.e&&a.e(),10),new Krb(b,JD(kDb(b,b.length),10),0));this.b=SC(aJ,rte,1,this.a.a.length,5,1)} +function qdb(a){var b;if(Array.isArray(a)&&a.Rm===rdb){return ueb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} +function DQd(a){var b;if(a==null)return true;b=a.length;return b>0&&(RDb(b-1,a.length),a.charCodeAt(b-1)==58)&&!kQd(a,$Pd,_Pd)} +function kQd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()} +function lOd(a,b){jOd();var c,d,e,f;d=gXd(a);e=b;bnb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} +function hFd(a){var b,c,d;d=new Xgb;d.a+='[';for(b=0,c=a.gc();b=0;--d){b=c[d];for(e=0;e>5;b=a&31;d=SC(cE,Pue,30,c+1,15,1);d[c]=1<0){if(b.lengtha.i&&VC(b,a.i,null);return b} +function KVd(a){var b;if((a.Db&64)!=0)return Xxd(a);b=new Zgb(Xxd(a));b.a+=' (instanceClassName: ';Ugb(b,a.D);b.a+=')';return b.a} +function wQd(a){var b,c,d,e;e=0;for(c=0,d=a.length;c0){a.Zj();d=b==null?0:tb(b);e=(d<e)%a.d.length;c=ZLd(a,e,d,b);return c!=-1}else{return false}} +function sJd(a,b,c){var d,e,f;if(a.Nj()){d=a.i;f=a.Oj();MFd(a,d,b);e=a.Gj(3,null,b,d,f);!c?(c=e):c.lj(e)}else{MFd(a,a.i,b)}return c} +function aMd(a,b){var c,d,e;if(a.f>0){a.Zj();d=b==null?0:tb(b);e=(d<e)%a.d.length;c=YLd(a,e,d,b);if(c){return c.kd()}}return null} +function cYd(a,b,c){var d,e;d=new N1d(a.e,3,10,null,(e=b.c,RD(e,88)?JD(e,29):(HRd(),xRd)),dXd(a,b),false);!c?(c=d):c.lj(d);return c} +function dYd(a,b,c){var d,e;d=new N1d(a.e,4,10,(e=b.c,RD(e,88)?JD(e,29):(HRd(),xRd)),null,dXd(a,b),false);!c?(c=d):c.lj(d);return c} +function Xe(a,b){var c,d,e;if(RD(b,45)){c=JD(b,45);d=c.jd();e=Ov(a.Pc(),d);return Hb(e,c.kd())&&(e!=null||a.Pc()._b(d))}return false} +function Hvd(a,b){switch(b){case 3:Jvd(a,0);return;case 4:Lvd(a,0);return;case 5:Mvd(a,0);return;case 6:Nvd(a,0);return;}qvd(a,b)} +function DYb(a,b){switch(b.g){case 1:return Zq(a.j,(kZb(),fZb));case 2:return Zq(a.j,(kZb(),hZb));default:return Fnb(),Fnb(),Cnb;}} +function qib(a){Whb();var b,c;c=ddb(a);b=ddb(_cb(a,32));if(b!=0){return new iib(c,b)}if(c>10||c<0){return new hib(1,c)}return Shb[c]} +function _yc(a){Yyc();var b;(!a.q?(Fnb(),Fnb(),Dnb):a.q)._b(($xc(),Kwc))?(b=JD(lNb(a,Kwc),203)):(b=JD(lNb(xYb(a),Lwc),203));return b} +function GA(a,b,c,d){var e,f;f=c-b;if(f<3){while(f<3){a*=10;++f}}else{e=1;while(f>3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} +function YHb(a,b,c){MHb();HHb.call(this);this.a=QC(gN,[Ote,Ewe],[592,216],0,[LHb,KHb],2);this.c=new zfd;this.g=a;this.f=b;this.d=c} +function lIc(a){this.e=SC(cE,Pue,30,a.length,15,1);this.c=SC(Fcb,zwe,30,a.length,16,1);this.b=SC(Fcb,zwe,30,a.length,16,1);this.f=0} +function eEc(a){var b,c;a.j=SC(aE,vve,30,a.p.c.length,15,1);for(c=new Hmb(a.p);c.a>5;b&=31;e=a.d+c+(b==0?0:1);d=SC(cE,Pue,30,e,15,1);yib(d,a.a,c,b);f=new jib(a.e,e,d);Yhb(f);return f} +function Txb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.Le(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} +function Uxb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.Le(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} +function Leb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;c0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} +function c7b(a){var b;b=a.a;do{b=JD(Xr(new Yr(Dr(BYb(b).a.Jc(),new Dl))),17).d.i;b.k==(UYb(),PYb)&&Ylb(a.e,b)}while(b.k==(UYb(),PYb))} +function ECc(a,b){var c,d,e;for(d=new Yr(Dr(BYb(a).a.Jc(),new Dl));Wr(d);){c=JD(Xr(d),17);e=c.d.i;if(e.c==b){return false}}return true} +function Rkc(a,b,c){var d,e,f,g;e=JD(bjb(a.b,c),171);d=0;for(g=new Hmb(b.j);g.ab?1:Rdb(isNaN(a),isNaN(b)))>0} +function KEb(a,b){return Sy(),Sy(),Wy(que),($wnd.Math.abs(a-b)<=que||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Rdb(isNaN(a),isNaN(b)))<0} +function JEb(a,b){return Sy(),Sy(),Wy(que),($wnd.Math.abs(a-b)<=que||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Rdb(isNaN(a),isNaN(b)))<=0} +function LJb(a){switch(a.g){case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:return true;default:return false;}} +function V6c(a,b,c,d,e,f){this.a=a;this.c=b;this.b=c;this.f=d;this.d=e;this.e=f;this.c>0&&this.b>0&&(this.g=h7c(this.c,this.b,this.a))} +function jC(f,a){var b=f.a;var c;a=String(a);b.hasOwnProperty(a)&&(c=b[a]);var d=(zC(),yC)[typeof c];var e=d?d(c):FC(typeof c);return e} +function BAd(a){var b,c,d;d=null;b=oGe in a.a;c=!b;if(c){throw Icb(new JAd('Every element must have an id.'))}d=AAd(iC(a,oGe));return d} +function Ooe(a){var b,c;c=Poe(a);b=null;while(a.c==2){Koe(a);if(!b){b=(Tqe(),Tqe(),++Sqe,new gse(2));fse(b,c);c=b}c.Hm(Poe(a))}return c} +function lMd(a,b){var c,d,e;a.Zj();d=b==null?0:tb(b);e=(d<e)%a.d.length;c=YLd(a,e,d,b);if(c){jMd(a,c);return c.kd()}else{return null}} +function Pgb(a,b,c){var d,e,f,g;f=b+c;QDb(b,f,a.length);g='';for(e=b;eb.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} +function ZDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw Icb(new hfb('Input edge is not connected to the input port.'))} +function Ubd(a,b){if(a.a<0){throw Icb(new kfb('Did not call before(...) or after(...) before calling add(...).'))}_bd(a,a.a,b);return a} +function HGd(a){GGd();if(RD(a,166)){return JD(bjb(EGd,qK),296).Qg(a)}if(_ib(EGd,rb(a))){return JD(bjb(EGd,rb(a)),296).Qg(a)}return null} +function dud(a){var b,c;if((a.Db&32)==0){c=(b=JD(fud(a,16),29),yWd(!b?a.fi():b)-yWd(a.fi()));c!=0&&hud(a,32,SC(aJ,rte,1,c,5,1))}return a} +function hud(a,b,c){var d;if((a.Db&b)!=0){if(c==null){gud(a,b)}else{d=eud(a,b);d==-1?(a.Eb=c):VC(KD(a.Eb),d,c)}}else c!=null&&aud(a,b,c)} +function PPc(a,b,c,d){var e,f;if(b.c.length==0){return}e=LPc(c,d);f=KPc(b);VBb(dCb(new gCb(null,new Wvb(f,1)),new YPc),new aQc(a,c,e,d))} +function ylb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;Glb(c=f){Blb(a,b);return -1}else{Clb(a,b);return 1}} +function tA(a,b){var c,d;c=(RDb(b,a.length),a.charCodeAt(b));d=b+1;while(db.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} +function Se(a,b){var c;if(XD(b)===XD(a)){return true}if(!RD(b,22)){return false}c=JD(b,22);if(c.gc()!=a.gc()){return false}return a.Hc(c)} +function tgb(a,b){KDb(a);if(b==null){return false}if(sgb(a,b)){return true}return a.length==b.length&&sgb(a.toLowerCase(),b.toLowerCase())} +function Ofb(a){var b,c;if(Lcb(a,-129)>0&&Lcb(a,128)<0){return Qfb(),b=ddb(a)+128,c=Pfb[b],!c&&(c=Pfb[b]=new Gfb(a)),c}return new Gfb(a)} +function tUb(){tUb=ndb;sUb=new uUb(cye,0);qUb=new uUb('INSIDE_PORT_SIDE_GROUPS',1);pUb=new uUb('GROUP_MODEL_ORDER',2);rUb=new uUb(dye,3)} +function Qsd(a){var b,c,d;d=a.Gh();if(!d){b=0;for(c=a.Mh();c;c=c.Mh()){if(++b>wve){return c.Nh()}d=c.Gh();if(!!d||c==a){break}}}return d} +function sde(a){var b;a.b||tde(a,(b=Fce(a.e,a.a),!b||!sgb(uEe,aMd((!b.b&&(b.b=new QTd((HRd(),DRd),K7,b)),b.b),'qualified'))));return a.c} +function jhc(a){var b,c;for(c=new Hmb(a.a.b);c.a2000){Gz=a;Hz=$wnd.setTimeout(Qz,10)}}if(Fz++==0){Tz((Sz(),Rz));return true}return false} +function qAb(a,b,c){var d;(gAb?(oAb(a),true):hAb?(Xzb(),true):kAb?(Xzb(),true):jAb&&(Xzb(),false))&&(d=new fAb(b),d.b=c,mAb(a,d),undefined)} +function QKb(a,b){var c;c=!a.A.Gc((Vmd(),Umd))||a.q==(xld(),sld);a.u.Gc((Lld(),Hld))?c?OKb(a,b):SKb(a,b):a.u.Gc(Jld)&&(c?PKb(a,b):TKb(a,b))} +function Ngc(a,b,c){var d,e;XIc(a.e,b,c,(mmd(),lmd));XIc(a.i,b,c,Tld);if(a.a){e=JD(lNb(b,(Krc(),hrc)),12);d=JD(lNb(c,hrc),12);YIc(a.g,e,d)}} +function hbd(a){var b;if(XD(Pud(a,(gjd(),Chd)))===XD((Bkd(),zkd))){if(!Czd(a)){Rud(a,Chd,Akd)}else{b=JD(Pud(Czd(a),Chd),347);Rud(a,Chd,b)}}} +function HUb(a,b,c){return new Afd($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} +function $gc(a){var b;this.d=new imb;this.j=new Wfd;this.g=new Wfd;b=a.g.b;this.f=JD(lNb(xYb(b),($xc(),Pvc)),86);this.e=Reb(MD(LXb(b,zxc)))} +function ohc(a){this.d=new imb;this.e=new ltb;this.c=SC(cE,Pue,30,(mmd(),WC(OC(J2,1),eye,64,0,[kmd,Uld,Tld,jmd,lmd])).length,15,1);this.b=a} +function ckc(a,b,c){var d;d=c[a.g][b];switch(a.g){case 1:case 3:return new Yfd(0,d);case 2:case 4:return new Yfd(d,0);default:return null;}} +function TAd(a,b){var c;c=uo(a.o,b);if(c==null){throw Icb(new JAd('Node did not exist in input.'))}JBd(a,b);IBd(a,b);TBd(a,b,c);return null} +function snb(a,b){var c,d;d=a.a.length;b.lengthd&&VC(b,d,null);return b} +function hmb(a,b){var c,d;d=a.c.length;b.lengthd&&VC(b,d,null);return b} +function qQd(a,b,c,d){var e;e=a.length;if(b>=e)return e;for(b=b>0?b:0;b0){Ylb(a.b,new cB(b.a,c));d=b.a.length;0d&&(b.a+=Ogb(SC(_D,Aue,30,-d,15,1)))}} +function _Fb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new Hmb(dGb(b));e.a=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=0?a.Th(e):$sd(a,d)):c<0?$sd(a,d):JD(d,69).uk().zk(a,a.ei(),c)} +function Oud(a){var b,c,d;d=(!a.o&&(a.o=new BTd((ysd(),vsd),c4,a,0)),a.o);for(c=d.c.Jc();c.e!=c.i.gc();){b=JD(c.Wj(),45);b.kd()}return fMd(d)} +function mEd(a){var b;if(RD(a.a,4)){b=HGd(a.a);if(b==null){throw Icb(new kfb(vEe+a.b+"'. "+rEe+(seb(j5),j5.k)+sEe))}return b}else{return a.a}} +function gle(a){var b;if(a==null)return null;b=yoe(lse(a,true));if(b==null){throw Icb(new Kje("Invalid base64Binary value: '"+a+"'"))}return b} +function dKd(b){var c;try{c=b.i.Xb(b.e);b.Vj();b.g=b.e++;return c}catch(a){a=Hcb(a);if(RD(a,99)){b.Vj();throw Icb(new Hub)}else throw Icb(a)}} +function zKd(b){var c;try{c=b.c.Ti(b.e);b.Vj();b.g=b.e++;return c}catch(a){a=Hcb(a);if(RD(a,99)){b.Vj();throw Icb(new Hub)}else throw Icb(a)}} +function tQd(a){var b,c,d,e;e=0;for(c=0,d=a.length;c=64&&b<128&&(e=Ycb(e,Zcb(1,b-64)))}return e} +function LXb(a,b){var c,d;d=null;if(mNb(a,(gjd(),Lid))){c=JD(lNb(a,Lid),105);c.nf(b)&&(d=c.mf(b))}d==null&&!!xYb(a)&&(d=lNb(xYb(a),b));return d} +function JVb(a,b){var c;c=JD(lNb(a,($xc(),nwc)),78);if(Xq(b,GVb)){if(!c){c=new jgd;oNb(a,nwc,c)}else{_tb(c)}}else !!c&&oNb(a,nwc,null);return c} +function T6b(a,b){var c,d,e;e=new jmb(b.gc());for(d=b.Jc();d.Ob();){c=JD(d.Pb(),294);c.c==c.f?I6b(a,c,c.c):J6b(a,c)||(nDb(e.c,c),true)}return e} +function aLb(a,b){var c,d,e;c=a.o;for(e=JD(JD(Qc(a.r,b),22),83).Jc();e.Ob();){d=JD(e.Pb(),115);d.e.a=WKb(d,c.a);d.e.b=c.b*Reb(MD(d.b.mf(UKb)))}} +function P2b(a,b){var c,d,e,f;e=a.k;c=Reb(MD(lNb(a,(Krc(),qrc))));f=b.k;d=Reb(MD(lNb(b,qrc)));return f!=(UYb(),NYb)?-1:e!=NYb?1:c==d?0:cc.b){return true}}}return false} +function JYb(a){var b;b=new ihb;b.a+='n';a.k!=(UYb(),RYb)&&ehb(ehb((b.a+='(',b),ds(a.k).toLowerCase()),')');ehb((b.a+='_',b),wYb(a));return b.a} +function jzc(){jzc=ndb;izc=new lzc(WBe,0);fzc=new lzc(Uye,1);gzc=new lzc('LINEAR_SEGMENTS',2);ezc=new lzc('BRANDES_KOEPF',3);hzc=new lzc(VBe,4)} +function Rsd(a,b,c,d){var e;if(c>=0){return a.Ph(b,c,d)}else{!!a.Mh()&&(d=(e=a.Ch(),e>=0?a.xh(d):a.Mh().Qh(a,-1-e,null,d)));return a.zh(b,c,d)}} +function ewd(a,b){switch(b){case 7:!a.e&&(a.e=new Wge(N3,a,7,4));uJd(a.e);return;case 8:!a.d&&(a.d=new Wge(N3,a,8,5));uJd(a.d);return;}Hvd(a,b)} +function Rud(a,b,c){c==null?(!a.o&&(a.o=new BTd((ysd(),vsd),c4,a,0)),lMd(a.o,b)):(!a.o&&(a.o=new BTd((ysd(),vsd),c4,a,0)),hMd(a.o,b,c));return a} +function au(b,c){var d;d=b.dd(c);try{return d.Pb()}catch(a){a=Hcb(a);if(RD(a,112)){throw Icb(new Cdb("Can't get element "+c))}else throw Icb(a)}} +function gKb(a,b){var c;c=JD($qb(a.b,b),127).n;switch(b.g){case 1:a.t>=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} +function b7b(a){var b;b=a.a;do{b=JD(Xr(new Yr(Dr(yYb(b).a.Jc(),new Dl))),17).c.i;b.k==(UYb(),PYb)&&a.b.Ec(b)}while(b.k==(UYb(),PYb));a.b=$u(a.b)} +function ZCc(a,b){var c,d,e;e=a;for(d=new Yr(Dr(yYb(b).a.Jc(),new Dl));Wr(d);){c=JD(Xr(d),17);!!c.c.i.c&&(e=$wnd.Math.max(e,c.c.i.c.p))}return e} +function iLb(a,b){var c,d,e;e=0;d=JD(JD(Qc(a.r,b),22),83).Jc();while(d.Ob()){c=JD(d.Pb(),115);e+=c.d.d+c.b.Kf().b+c.d.a;d.Ob()&&(e+=a.w)}return e} +function aKb(a,b){var c,d,e;e=0;d=JD(JD(Qc(a.r,b),22),83).Jc();while(d.Ob()){c=JD(d.Pb(),115);e+=c.d.b+c.b.Kf().a+c.d.c;d.Ob()&&(e+=a.w)}return e} +function i_c(a){var b,c,d,e;d=0;e=k_c(a);if(e.c.length==0){return 1}else{for(c=new Hmb(e);c.a=0?a.Ih(g,c,true):Zsd(a,f,c)):JD(f,69).uk().wk(a,a.ei(),e,c,d)} +function CKb(a,b,c,d){var e,f;f=b.nf((gjd(),Thd))?JD(b.mf(Thd),22):a.j;e=NJb(f);if(e==(JJb(),IJb)){return}if(c&&!LJb(e)){return}lIb(EKb(a,e,d),b)} +function ID(a,b){if(VD(a)){return !!HD[b]}else if(a.Qm){return !!a.Qm[b]}else if(TD(a)){return !!GD[b]}else if(SD(a)){return !!FD[b]}return false} +function E0b(a){switch(a.g){case 1:return OLb(),NLb;case 3:return OLb(),KLb;case 2:return OLb(),MLb;case 4:return OLb(),LLb;default:return null;}} +function jgc(a,b,c){if(a.e){switch(a.b){case 1:Tfc(a.c,b,c);break;case 0:Ufc(a.c,b,c);}}else{Rfc(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} +function fIc(a){var b,c;if(a==null){return null}c=SC(RP,Ote,199,a.length,0,2);for(b=0;bf?1:0}return 0} +function Yyc(){Yyc=ndb;Wyc=new $yc(cye,0);Xyc=new $yc('PORT_POSITION',1);Vyc=new $yc('NODE_SIZE_WHERE_SPACE_PERMITS',2);Uyc=new $yc('NODE_SIZE',3)} +function _Vc(a,b){var c,d,e;b.Tg('Untreeify',1);c=JD(lNb(a,(MWc(),GWc)),16);for(e=c.Jc();e.Ob();){d=JD(e.Pb(),65);Qtb(d.b.d,d);Qtb(d.c.b,d)}b.Ug()} +function wgd(){wgd=ndb;qgd=new xgd('AUTOMATIC',0);tgd=new xgd(Fwe,1);ugd=new xgd(Gwe,2);vgd=new xgd('TOP',3);rgd=new xgd(Iwe,4);sgd=new xgd(Cwe,5)} +function gFd(a,b,c){var d,e;e=a.gc();if(b>=e)throw Icb(new cKd(b,e));if(a.Qi()){d=a.bd(c);if(d>=0&&d!=b){throw Icb(new hfb(FGe))}}return a.Vi(b,c)} +function dXd(a,b){var c,d,e;e=TFd(a,b);if(e>=0)return e;if(a.ml()){for(d=0;d0||a==(Uk(),Tk)||b==(il(),hl)){throw Icb(new hfb('Invalid range: '+vx(a,b)))}} +function Wib(a,b,c,d){Sib();var e,f;e=0;for(f=0;f0);if((b&-b)==b){return YD(b*Ovb(a,31)*4.6566128730773926E-10)}do{c=Ovb(a,31);d=c%b}while(c-d+(b-1)<0);return YD(d)} +function $Fb(a,b){var c,d,e;c=GGb(new IGb,a);for(e=new Hmb(b);e.a1&&(f=$Fb(a,b));return f} +function iEc(a){var b,c,d;b=0;for(d=new Hmb(a.c.a);d.a102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} +function ak(a,b){if(a==null){throw Icb(new Vfb('null key in entry: null='+b))}else if(b==null){throw Icb(new Vfb('null value in entry: '+a+'=null'))}} +function CIb(a,b){var c;c=WC(OC(aE,1),vve,30,15,[IHb(a.a[0],b),IHb(a.a[1],b),IHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function DIb(a,b){var c;c=WC(OC(aE,1),vve,30,15,[JHb(a.a[0],b),JHb(a.a[1],b),JHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function AEc(a,b,c){if(!yld(JD(lNb(b,($xc(),bxc)),102))){zEc(a,b,FYb(b,c));zEc(a,b,FYb(b,(mmd(),jmd)));zEc(a,b,FYb(b,Uld));Fnb();gmb(b.j,new OEc(a))}} +function OQc(a){var b,c;a.c||RQc(a);c=new jgd;b=new Hmb(a.a);Fmb(b);while(b.a0&&(RDb(0,b.length),b.charCodeAt(0)==43)?(RDb(1,b.length+1),b.substr(1)):b))} +function ole(a){var b;return a==null?null:new lib((b=lse(a,true),b.length>0&&(RDb(0,b.length),b.charCodeAt(0)==43)?(RDb(1,b.length+1),b.substr(1)):b))} +function Wxb(a,b,c,d,e,f,g,h){var i,j;if(!d){return}i=d.a[0];!!i&&Wxb(a,b,c,i,e,f,g,h);Xxb(a,c,d.d,e,f,g,h)&&b.Ec(d);j=d.a[1];!!j&&Wxb(a,b,c,j,e,f,g,h)} +function De(a,b){var c,d,e,f;f=a.gc();b.lengthf&&VC(b,f,null);return b} +function Tu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}} +function Llc(a){var b;for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} +function THb(a,b){var c;c=WC(OC(aE,1),vve,30,15,[SHb(a,(zHb(),wHb),b),SHb(a,xHb,b),SHb(a,yHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function a2b(a){var b;if(!mNb(a,($xc(),Fwc))){return}b=JD(lNb(a,Fwc),22);if(b.Gc((_kd(),Tkd))){b.Kc(Tkd);b.Ec(Vkd)}else if(b.Gc(Vkd)){b.Kc(Vkd);b.Ec(Tkd)}} +function b2b(a){var b;if(!mNb(a,($xc(),Fwc))){return}b=JD(lNb(a,Fwc),22);if(b.Gc((_kd(),$kd))){b.Kc($kd);b.Ec(Ykd)}else if(b.Gc(Ykd)){b.Kc(Ykd);b.Ec($kd)}} +function skc(a,b,c,d){var e,f,g,h;a.a==null&&vkc(a,b);g=b.b.j.c.length;f=c.d.p;h=d.d.p;e=h-1;e<0&&(e=g-1);return f<=e?a.a[e]-a.a[f]:a.a[g-1]-a.a[f]+a.a[e]} +function Mlc(a){var b;for(b=0;b0&&(e.b+=b);return e} +function hUb(a,b){var c,d,e;e=new Wfd;for(d=a.Jc();d.Ob();){c=JD(d.Pb(),37);XTb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} +function jIc(a,b){var c,d;if(b.length==0){return 0}c=HIc(a.a,b[0],(mmd(),lmd));c+=HIc(a.a,b[b.length-1],Tld);for(d=0;d>16==6){return a.Cb.Qh(a,5,B6,b)}return d=X3d(JD(tWd((c=JD(fud(a,16),29),!c?a.fi():c),a.Db>>16),19)),a.Cb.Qh(a,d.n,d.f,b)} +function cA(a){Zz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} +function wfb(a){var b;b=(Dfb(),Cfb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} +function tlb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=tfb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=kDb(a.a,c);slb(a,b,d);a.a=b;a.b=0}else{qDb(a.a,c)}a.c=d} +function WKb(a,b){var c;c=a.b;return c.nf((gjd(),pid))?c.$f()==(mmd(),lmd)?-c.Kf().a-Reb(MD(c.mf(pid))):b+Reb(MD(c.mf(pid))):c.$f()==(mmd(),lmd)?-c.Kf().a:b} +function wYb(a){var b;if(a.b.c.length!=0&&!!JD(amb(a.b,0),70).a){return JD(amb(a.b,0),70).a}b=qWb(a);if(b!=null){return b}return ''+(!a.c?-1:bmb(a.c.a,a,0))} +function nZb(a){var b;if(a.f.c.length!=0&&!!JD(amb(a.f,0),70).a){return JD(amb(a.f,0),70).a}b=qWb(a);if(b!=null){return b}return ''+(!a.i?-1:bmb(a.i.j,a,0))} +function hec(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} +function Zrd(a){var b,c;if(!a.b){a.b=Yu(JD(a.f,125).jh().i);for(c=new fKd(JD(a.f,125).jh());c.e!=c.i.gc();){b=JD(dKd(c),157);Ylb(a.b,new Krd(b))}}return a.b} +function cFd(a,b){var c,d,e;if(b.dc()){return jOd(),jOd(),iOd}else{c=new _Jd(a,b.gc());for(e=new fKd(a);e.e!=e.i.gc();){d=dKd(e);b.Gc(d)&&YEd(c,d)}return c}} +function Jud(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new BTd((ysd(),vsd),c4,a,0)),a.o):(!a.o&&(a.o=new BTd((ysd(),vsd),c4,a,0)),fMd(a.o))}return Msd(a,b,c,d)} +function yyd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&dve;a.m=d&dve;a.h=e&eve;return true} +function Xxb(a,b,c,d,e,f,g){var h,i;if(b.Re()&&(i=a.a.Le(c,d),i<0||!e&&i==0)){return false}if(b.Se()&&(h=a.a.Le(c,f),h>0||!g&&h==0)){return false}return true} +function nac(a,b){gac();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return qac(b,fac)-qac(a,fac);case 4:return qac(a,eac)-qac(b,eac);}return 0} +function Roc(a){switch(a.g){case 0:return Koc;case 1:return Loc;case 2:return Moc;case 3:return Noc;case 4:return Ooc;case 5:return Poc;default:return null;}} +function jyd(a,b,c){var d,e;d=(e=new P3d,WTd(e,b),Wxd(e,c),YEd((!a.c&&(a.c=new A3d(C6,a,12,10)),a.c),e),e);YTd(d,0);_Td(d,1);$Td(d,true);ZTd(d,true);return d} +function VFd(a,b){var c,d;if(b>=a.i)throw Icb(new ALd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&ohb(a.g,b+1,a.g,b,d);VC(a.g,--a.i,null);a.Oi(b,c);a.Li();return c} +function qUd(a,b){var c,d;if(a.Db>>16==17){return a.Cb.Qh(a,21,p6,b)}return d=X3d(JD(tWd((c=JD(fud(a,16),29),!c?a.fi():c),a.Db>>16),19)),a.Cb.Qh(a,d.n,d.f,b)} +function pEb(a){var b,c,d,e;Fnb();gmb(a.c,a.a);for(e=new Hmb(a.c);e.ac.a.c.length)){throw Icb(new hfb('index must be >= 0 and <= layer node count'))}!!a.c&&dmb(a.c.a,a);a.c=c;!!c&&Xlb(c.a,b,a)} +function lNc(a,b){this.c=new Yrb;this.a=a;this.b=b;this.d=JD(lNb(a,(Krc(),yrc)),316);XD(lNb(a,($xc(),Gwc)))===XD((Zoc(),Xoc))?(this.e=new XNc):(this.e=new QNc)} +function nod(a,b){var c,d,e,f;f=0;for(d=new Hmb(a);d.a0?b:0);++c}return new Yfd(d,e)} +function y$b(a,b){var c,d;a.b=0;a.d=new Jxb;for(d=new Hmb(b.a);d.a>16==6){return a.Cb.Qh(a,6,N3,b)}return d=X3d(JD(tWd((c=JD(fud(a,16),29),!c?(ysd(),qsd):c),a.Db>>16),19)),a.Cb.Qh(a,d.n,d.f,b)} +function jzd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.Qh(a,1,O3,b)}return d=X3d(JD(tWd((c=JD(fud(a,16),29),!c?(ysd(),ssd):c),a.Db>>16),19)),a.Cb.Qh(a,d.n,d.f,b)} +function Szd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.Qh(a,9,Q3,b)}return d=X3d(JD(tWd((c=JD(fud(a,16),29),!c?(ysd(),usd):c),a.Db>>16),19)),a.Cb.Qh(a,d.n,d.f,b)} +function K_d(a,b){var c,d;if(a.Db>>16==5){return a.Cb.Qh(a,9,u6,b)}return d=X3d(JD(tWd((c=JD(fud(a,16),29),!c?(HRd(),rRd):c),a.Db>>16),19)),a.Cb.Qh(a,d.n,d.f,b)} +function xyd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.Qh(a,6,B6,b)}return d=X3d(JD(tWd((c=JD(fud(a,16),29),!c?(HRd(),ARd):c),a.Db>>16),19)),a.Cb.Qh(a,d.n,d.f,b)} +function gTd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.Qh(a,0,x6,b)}return d=X3d(JD(tWd((c=JD(fud(a,16),29),!c?(HRd(),kRd):c),a.Db>>16),19)),a.Cb.Qh(a,d.n,d.f,b)} +function qwd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.Qh(a,12,Q3,b)}return d=X3d(JD(tWd((c=JD(fud(a,16),29),!c?(ysd(),psd):c),a.Db>>16),19)),a.Cb.Qh(a,d.n,d.f,b)} +function kOd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;ewve){return Mhe(a,d)}if(d==a){return true}}}return false} +function $Kb(a){VKb();switch(a.q.g){case 5:XKb(a,(mmd(),Uld));XKb(a,jmd);break;case 4:YKb(a,(mmd(),Uld));YKb(a,jmd);break;default:ZKb(a,(mmd(),Uld));ZKb(a,jmd);}} +function cLb(a){VKb();switch(a.q.g){case 5:_Kb(a,(mmd(),Tld));_Kb(a,lmd);break;case 4:aLb(a,(mmd(),Tld));aLb(a,lmd);break;default:bLb(a,(mmd(),Tld));bLb(a,lmd);}} +function fNb(a){var b,c;b=JD(lNb(a,(ZOb(),NOb)),15);if(b){c=b.a;c==0?oNb(a,(iPb(),hPb),new Svb):oNb(a,(iPb(),hPb),new Tvb(c))}else{oNb(a,(iPb(),hPb),new Tvb(1))}} +function CXb(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} +function d8b(a,b){switch(a.g){case 0:return b==(Qrc(),Mrc)?_7b:a8b;case 1:return b==(Qrc(),Mrc)?_7b:$7b;case 2:return b==(Qrc(),Mrc)?$7b:a8b;default:return $7b;}} +function m7c(a,b){var c,d,e;dmb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=eCe;for(d=new Hmb(a.a);d.a>16==11){return a.Cb.Qh(a,10,Q3,b)}return d=X3d(JD(tWd((c=JD(fud(a,16),29),!c?(ysd(),tsd):c),a.Db>>16),19)),a.Cb.Qh(a,d.n,d.f,b)} +function l2d(a,b){var c,d;if(a.Db>>16==10){return a.Cb.Qh(a,11,p6,b)}return d=X3d(JD(tWd((c=JD(fud(a,16),29),!c?(HRd(),yRd):c),a.Db>>16),19)),a.Cb.Qh(a,d.n,d.f,b)} +function O3d(a,b){var c,d;if(a.Db>>16==10){return a.Cb.Qh(a,12,A6,b)}return d=X3d(JD(tWd((c=JD(fud(a,16),29),!c?(HRd(),BRd):c),a.Db>>16),19)),a.Cb.Qh(a,d.n,d.f,b)} +function oBd(a,b){var c,d,e,f,g;if(b){e=b.a.length;c=new vse(e);for(g=(c.b-c.a)*c.c<0?(use(),tse):new Rse(c);g.Ob();){f=JD(g.Pb(),15);d=EAd(b,f.a);!!d&&XBd(a,d)}}} +function _8d(){R8d();var a,b;V8d((jRd(),iRd));U8d(iRd);yyd(iRd);b0d=(HRd(),uRd);for(b=new Hmb(P8d);b.a>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} +function dkc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new Hmb(b.d);h.a0?a.b:0);++c}b.b=d;b.e=e} +function zo(a){var b,c,d;d=a.b;if(Rp(a.i,d.length)){c=d.length*2;a.b=SC(QF,fue,308,c,0,1);a.c=SC(QF,fue,308,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){vo(a,b,b)}++a.g}} +function LUb(a,b){a.b.a=$wnd.Math.min(a.b.a,b.c);a.b.b=$wnd.Math.min(a.b.b,b.d);a.a.a=$wnd.Math.max(a.a.a,b.c);a.a.b=$wnd.Math.max(a.a.b,b.d);return nDb(a.c,b),true} +function Hmc(a,b,c){var d;d=b.c.i;if(d.k==(UYb(),PYb)){oNb(a,(Krc(),brc),JD(lNb(d,brc),12));oNb(a,crc,JD(lNb(d,crc),12))}else{oNb(a,(Krc(),brc),b.c);oNb(a,crc,c.d)}} +function efd(a,b,c){bfd();var d,e,f,g,h,i;g=b/2;f=c/2;d=$wnd.Math.abs(a.a);e=$wnd.Math.abs(a.b);h=1;i=1;d>g&&(h=g/d);e>f&&(i=f/e);Qfd(a,$wnd.Math.min(h,i));return a} +function Vxd(){xxd();var b,c;try{c=JD(K3d((WQd(),VQd),UFe),2075);if(c){return c}}catch(a){a=Hcb(a);if(RD(a,101)){b=a;WGd((Fbe(),b))}else throw Icb(a)}return new Rxd} +function O8d(){xxd();var b,c;try{c=JD(K3d((WQd(),VQd),uIe),2002);if(c){return c}}catch(a){a=Hcb(a);if(RD(a,101)){b=a;WGd((Fbe(),b))}else throw Icb(a)}return new K8d} +function tle(){Xke();var b,c;try{c=JD(K3d((WQd(),VQd),ZIe),2084);if(c){return c}}catch(a){a=Hcb(a);if(RD(a,101)){b=a;WGd((Fbe(),b))}else throw Icb(a)}return new ple} +function d0d(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new L1d(a,1,4,e,b);!c?(c=d):c.lj(d)}e!=b&&(b?(c=m0d(a,i0d(a,b),c)):(c=m0d(a,a.a,c)));return c} +function vB(){mB.call(this);this.e=-1;this.a=false;this.p=rue;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=rue} +function xFb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Xeb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function wMb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Xeb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function qSb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Xeb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function AQb(){AQb=ndb;xQb=Vbd(Xbd(Xbd(Xbd(new acd,(TQb(),RQb),(Q5b(),k5b)),RQb,o5b),SQb,v5b),SQb,$4b);zQb=Xbd(Xbd(new acd,RQb,Q4b),RQb,_4b);yQb=Vbd(new acd,SQb,b5b)} +function p0b(a){var b,c,d,e,f;b=JD(lNb(a,(Krc(),Jqc)),92);f=a.n;for(d=b.Bc().Jc();d.Ob();){c=JD(d.Pb(),318);e=c.i;e.c+=f.a;e.d+=f.b;c.c?mIb(c):oIb(c)}oNb(a,Jqc,null)} +function $jc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} +function WEc(a,b){var c,d;for(d=new Hmb(b);d.a0){g=(f<e)%a.d.length;e=YLd(a,g,f,b);if(e){h=e.ld(c);return h}}d=a.ak(f,b,c);a.c.Ec(d);return null} +function Rce(a,b){var c,d,e,f;switch(Mce(a,b).Il()){case 3:case 2:{c=kWd(b);for(e=0,f=c.i;e=0;d--){if(sgb(a[d].d,b)||sgb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} +function Ncb(a,b){var c;if(Scb(a)&&Scb(b)){c=a/b;if(jve0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} +function wAd(a,b){var c,d;d=false;if(VD(b)){d=true;vAd(a,new GC(OD(b)))}if(!d){if(RD(b,242)){d=true;vAd(a,(c=Xdb(JD(b,242)),new _B(c)))}}if(!d){throw Icb(new Hdb(nGe))}} +function eYd(a,b,c,d){var e,f,g;e=new N1d(a.e,1,10,(g=b.c,RD(g,88)?JD(g,29):(HRd(),xRd)),(f=c.c,RD(f,88)?JD(f,29):(HRd(),xRd)),dXd(a,b),false);!d?(d=e):d.lj(e);return d} +function AYb(a){var b,c;switch(JD(lNb(xYb(a),($xc(),mwc)),420).g){case 0:b=a.n;c=a.o;return new Yfd(b.a+c.a/2,b.b+c.b/2);case 1:return new Zfd(a.n);default:return null;}} +function jpc(){jpc=ndb;gpc=new kpc(cye,0);fpc=new kpc('LEFTUP',1);ipc=new kpc('RIGHTUP',2);epc=new kpc('LEFTDOWN',3);hpc=new kpc('RIGHTDOWN',4);dpc=new kpc('BALANCED',5)} +function iGc(a,b,c){var d,e,f;d=Xeb(a.a[b.p],a.a[c.p]);if(d==0){e=JD(lNb(b,(Krc(),Xqc)),16);f=JD(lNb(c,Xqc),16);if(e.Gc(c)){return -1}else if(f.Gc(b)){return 1}}return d} +function G1c(a){switch(a.g){case 1:return new e0c;case 2:return new g0c;case 3:return new c0c;case 0:return null;default:throw Icb(new hfb($Ce+(a.f!=null?a.f:''+a.g)));}} +function pvd(a,b,c){switch(b){case 1:!a.n&&(a.n=new A3d(P3,a,1,7));uJd(a.n);!a.n&&(a.n=new A3d(P3,a,1,7));$Ed(a.n,JD(c,18));return;case 2:svd(a,OD(c));return;}Mud(a,b,c)} +function Gvd(a,b,c){switch(b){case 3:Jvd(a,Reb(MD(c)));return;case 4:Lvd(a,Reb(MD(c)));return;case 5:Mvd(a,Reb(MD(c)));return;case 6:Nvd(a,Reb(MD(c)));return;}pvd(a,b,c)} +function kyd(a,b,c){var d,e,f;f=(d=new P3d,d);e=VTd(f,b,null);!!e&&e.mj();Wxd(f,c);YEd((!a.c&&(a.c=new A3d(C6,a,12,10)),a.c),f);YTd(f,0);_Td(f,1);$Td(f,true);ZTd(f,true)} +function K3d(a,b){var c,d,e;c=Psb(a.i,b);if(RD(c,241)){e=JD(c,241);e.wi()==null&&undefined;return e.ti()}else if(RD(c,493)){d=JD(c,1999);e=d.b;return e}else{return null}} +function $i(a,b,c,d){var e,f;Qb(b);Qb(c);f=JD(zn(a.d,b),15);Ob(!!f,'Row %s not in %s',b,a.e);e=JD(zn(a.b,c),15);Ob(!!e,'Column %s not in %s',c,a.c);return aj(a,f.a,e.a,d)} +function Cy(b){var c,d,e,f,g,h;d=null;for(f=b,g=0,h=f.length;g1||h==-1){f=JD(i,16);e.Wb(Qhe(a,f))}else{e.Wb(Phe(a,JD(i,57)))}}}} +function jdb(b,c,d,e){idb();var f=gdb;$moduleName=c;$moduleBase=d;Gcb=e;function g(){for(var a=0;a0){return false}}return true} +function Ric(a){switch(JD(lNb(a.b,($xc(),Zvc)),381).g){case 1:VBb(WBb(UBb(new gCb(null,new Wvb(a.d,16)),new kjc),new mjc),new ojc);break;case 2:Tic(a);break;case 0:Sic(a);}} +function mSc(a,b,c){var d,e,f;d=c;!d&&(d=new _nd);d.Tg('Layout',a.a.c.length);for(f=new Hmb(a.a);f.amCe){return c}else e>-1.0E-6&&++c}return c} +function XAd(a,b,c){if(RD(b,271)){return KAd(a,JD(b,85),c)}else if(RD(b,276)){return LAd(a,JD(b,276),c)}else{throw Icb(new hfb(qGe+Ee(new tnb(WC(OC(aJ,1),rte,1,5,[b,c])))))}} +function YAd(a,b,c){if(RD(b,271)){return MAd(a,JD(b,85),c)}else if(RD(b,276)){return NAd(a,JD(b,276),c)}else{throw Icb(new hfb(qGe+Ee(new tnb(WC(OC(aJ,1),rte,1,5,[b,c])))))}} +function l0d(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=Ssd(a.b,a,-4,c));!!b&&(c=Rsd(b,a,-4,c));c=c0d(a,b,c);!!c&&c.mj()}else (a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,3,b,b))} +function o0d(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=Ssd(a.f,a,-1,c));!!b&&(c=Rsd(b,a,-1,c));c=e0d(a,b,c);!!c&&c.mj()}else (a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,0,b,b))} +function Jee(a,b,c,d){var e,f,g,h;if(Vsd(a.e)){e=b.Jk();h=b.kd();f=c.kd();g=dee(a,1,e,h,f,e.Hk()?iee(a,e,f,RD(e,103)&&(JD(e,19).Bb&tve)!=0):-1,true);d?d.lj(g):(d=g)}return d} +function _ke(a){var b,c,d;if(a==null)return null;c=JD(a,16);if(c.dc())return '';d=new Xgb;for(b=c.Jc();b.Ob();){Ugb(d,(lke(),OD(b.Pb())));d.a+=' '}return xdb(d,d.a.length-1)} +function dle(a){var b,c,d;if(a==null)return null;c=JD(a,16);if(c.dc())return '';d=new Xgb;for(b=c.Jc();b.Ob();){Ugb(d,(lke(),OD(b.Pb())));d.a+=' '}return xdb(d,d.a.length-1)} +function nEc(a,b){var c,d,e,f,g;for(f=new Hmb(b.a);f.a0&&pgb(b,b.length-1)==33){try{c=lQd(Ggb(b,0,b.length-1));return c.e==null}catch(a){a=Hcb(a);if(!RD(a,32))throw Icb(a)}}return false} +function VVb(a,b,c){var d,e,f;d=xYb(b);e=JXb(d);f=new sZb;qZb(f,b);switch(c.g){case 1:rZb(f,omd(rmd(e)));break;case 2:rZb(f,rmd(e));}oNb(f,($xc(),axc),MD(lNb(a,axc)));return f} +function S6b(a){var b,c;b=JD(Xr(new Yr(Dr(yYb(a.a).a.Jc(),new Dl))),17);c=JD(Xr(new Yr(Dr(BYb(a.a).a.Jc(),new Dl))),17);return Odb(LD(lNb(b,(Krc(),vrc))))||Odb(LD(lNb(c,vrc)))} +function Bhc(){Bhc=ndb;xhc=new Chc('ONE_SIDE',0);zhc=new Chc('TWO_SIDES_CORNER',1);Ahc=new Chc('TWO_SIDES_OPPOSING',2);yhc=new Chc('THREE_SIDES',3);whc=new Chc('FOUR_SIDES',4)} +function knc(a,b){var c,d,e,f;f=new imb;e=0;d=b.Jc();while(d.Ob()){c=zfb(JD(d.Pb(),15).a+e);while(c.a=a.f){break}nDb(f.c,c)}return f} +function BKc(a){var b,c;for(c=new Hmb(a.e.b);c.a0&&Wfc(this,this.c-1,(mmd(),Tld));this.c0&&a[0].length>0&&(this.c=Odb(LD(lNb(xYb(a[0][0]),(Krc(),Yqc)))));this.a=SC(_W,Ote,2079,a.length,0,2);this.b=SC(cX,Ote,2080,a.length,0,2);this.d=new Bs} +function nLc(a){if(a.c.length==0){return false}if((JDb(0,a.c.length),JD(a.c[0],17)).c.i.k==(UYb(),PYb)){return true}return OBb(WBb(new gCb(null,new Wvb(a,16)),new qLc),new sLc)} +function c2c(a,b){var c,d,e,f,g,h,i;h=k_c(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new Hmb(h);d.a=0){c=Ncb(a,ive);d=Ucb(a,ive)}else{b=_cb(a,1);c=Ncb(b,500000000);d=Ucb(b,500000000);d=Jcb(Zcb(d,1),Kcb(a,1))}return Ycb(Zcb(d,32),Kcb(c,yve))} +function T4c(a,b,c,d){var e,f,g,h,i;e=null;f=0;for(h=new Hmb(b);h.a1;b>>=1){(b&1)!=0&&(d=bib(d,c));c.d==1?(c=bib(c,c)):(c=new kib($ib(c.a,c.d,SC(cE,Pue,30,c.d<<1,15,1))))}d=bib(d,c);return d} +function Lvb(){Lvb=ndb;var a,b,c,d;Ivb=SC(aE,vve,30,25,15,1);Jvb=SC(aE,vve,30,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){Jvb[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){Ivb[a]=c;c*=0.5}} +function H$b(a){var b,c;if(Odb(LD(Pud(a,($xc(),jwc))))){for(c=new Yr(Dr(DEd(a).a.Jc(),new Dl));Wr(c);){b=JD(Xr(c),85);if(vwd(b)){if(Odb(LD(Pud(b,kwc)))){return true}}}}return false} +function n9b(a){var b,c,d,e;b=new aub;c=new aub;for(e=Wtb(a,0);e.b!=e.d.c;){d=JD(iub(e),12);d.e.c.length==0?(Ttb(c,d,c.c.b,c.c),true):(Ttb(b,d,b.c.b,b.c),true)}$u(b).Fc(c);return b} +function Pgc(a,b){var c,d,e;if(bsb(a.f,b)){b.b=a;d=b.c;bmb(a.j,d,0)!=-1||Ylb(a.j,d);e=b.d;bmb(a.j,e,0)!=-1||Ylb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new $gc(a));Vgc(a.i,c)}}} +function _jc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&sgb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return BA(a,c,d)}if(b>=0&&sgb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return BA(a,c,d)}return BA(a,c,d)} +function Ygc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new Hmb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<0&&ohb(a.g,b,a.g,b+d,h);g=c.Jc();a.i+=d;for(e=0;e>4&15;f=a[d]&15;g[e++]=vxd[c];g[e++]=vxd[f]}return Pgb(g,0,g.length)}} +function Mgb(a){var b,c;if(a>=tve){b=uve+(a-tve>>10&1023)&Bue;c=56320+(a-tve&1023)&Bue;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&Bue)}} +function uKb(a,b){rKb();var c,d,e,f;e=JD(JD(Qc(a.r,b),22),83);if(e.gc()>=2){d=JD(e.Jc().Pb(),115);c=a.u.Gc((Lld(),Gld));f=a.u.Gc(Kld);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} +function R_c(a,b,c,d,e){var f,g,h;f=S_c(a,b,c,d,e);h=false;while(!f){J_c(a,e,true);h=true;f=S_c(a,b,c,d,e)}h&&J_c(a,e,false);g=h_c(e);if(g.c.length!=0){!!a.d&&a.d.Fg(g);R_c(a,e,c,d,g)}} +function W2c(){W2c=ndb;V2c=new X2c('NODE_SIZE_REORDERER',0);S2c=new X2c('INTERACTIVE_NODE_REORDERER',1);U2c=new X2c('MIN_SIZE_PRE_PROCESSOR',2);T2c=new X2c('MIN_SIZE_POST_PROCESSOR',3)} +function ekd(){ekd=ndb;ckd=new fkd(cye,0);akd=new fkd('DIRECTED',1);dkd=new fkd('UNDIRECTED',2);$jd=new fkd('ASSOCIATION',3);bkd=new fkd('GENERALIZATION',4);_jd=new fkd('DEPENDENCY',5)} +function Apd(a,b){var c;if(!Tzd(a)){throw Icb(new kfb(mFe))}c=Tzd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} +function Hee(a,b,c){var d,e,f;d=b.Jk();f=b.kd();e=d.Hk()?dee(a,4,d,f,null,iee(a,d,f,RD(d,103)&&(JD(d,19).Bb&tve)!=0),true):dee(a,d.rk()?2:1,d,f,d.gk(),-1,true);c?c.lj(e):(c=e);return c} +function pvb(a,b){var c,d;KDb(b);d=a.b.c.length;Ylb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.Le(amb(a.b,d),b)<=0){fmb(a.b,c,b);return true}fmb(a.b,c,amb(a.b,d))}fmb(a.b,d,b);return true} +function UHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} +function g5c(a){switch(a.g){case 0:return new W4c;case 1:return new a5c;default:throw Icb(new hfb('No implementation is available for the width approximator '+(a.f!=null?a.f:''+a.g)));}} +function yAd(a,b,c,d){var e;e=false;if(VD(d)){e=true;zAd(b,c,OD(d))}if(!e){if(SD(d)){e=true;yAd(a,b,c,d)}}if(!e){if(RD(d,242)){e=true;xAd(b,c,JD(d,242))}}if(!e){throw Icb(new Hdb(nGe))}} +function sce(a,b){var c,d,e;c=b.ni(a.a);if(c){e=aMd((!c.b&&(c.b=new QTd((HRd(),DRd),K7,c)),c.b),lIe);if(e!=null){for(d=1;d<(jie(),fie).length;++d){if(sgb(fie[d],e)){return d}}}}return 0} +function tce(a,b){var c,d,e;c=b.ni(a.a);if(c){e=aMd((!c.b&&(c.b=new QTd((HRd(),DRd),K7,c)),c.b),lIe);if(e!=null){for(d=1;d<(jie(),gie).length;++d){if(sgb(gie[d],e)){return d}}}}return 0} +function Te(a,b){var c,d,e,f;KDb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.Le(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} +function aGb(a){var b,c,d,e;b=new imb;c=SC(Fcb,zwe,30,a.a.c.length,16,1);Zmb(c,c.length);for(e=new Hmb(a.a);e.a0&&u3b((JDb(0,c.c.length),JD(c.c[0],25)),a);c.c.length>1&&u3b(JD(amb(c,c.c.length-1),25),a);b.Ug()} +function Old(a){Lld();var b,c;b=Drb(Hld,WC(OC(I2,1),kue,280,0,[Jld]));if(_x(Px(b,a))>1){return false}c=Drb(Gld,WC(OC(I2,1),kue,280,0,[Fld,Kld]));if(_x(Px(c,a))>1){return false}return true} +function Myd(a,b){var c;c=cjb((WQd(),VQd),a);RD(c,493)?fjb(VQd,a,new z3d(this,b)):fjb(VQd,a,this);Iyd(this,b);if(b==(hRd(),gRd)){this.wb=JD(this,2000);JD(b,2002)}else{this.wb=(jRd(),iRd)}} +function J8d(b){var c,d,e;if(b==null){return null}c=null;for(d=0;df} +function $_c(a,b){var c,d,e;if(L_c(a,b)){return true}for(d=new Hmb(b);d.a=e||b<0)throw Icb(new Cdb(GGe+b+HGe+e));if(c>=e||c<0)throw Icb(new Cdb(IGe+c+HGe+e));b!=c?(d=(f=a.Aj(c),a.oj(b,f),f)):(d=a.vj(c));return d} +function Jhe(a){var b,c,d;d=a;if(a){b=0;for(c=a.Bh();c;c=c.Bh()){if(++b>wve){return Jhe(c)}d=c;if(c==a){throw Icb(new kfb('There is a cycle in the containment hierarchy of '+a))}}}return d} +function Ee(a){var b,c,d;d=new Nxb(pte,'[',']');for(c=a.Jc();c.Ob();){b=c.Pb();Kxb(d,XD(b)===XD(a)?'(this Collection)':b==null?vte:qdb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function L_c(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;c1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} +function Mhc(){Mhc=ndb;Jhc=WC(OC(J2,1),eye,64,0,[(mmd(),Uld),Tld,jmd]);Ihc=WC(OC(J2,1),eye,64,0,[Tld,jmd,lmd]);Khc=WC(OC(J2,1),eye,64,0,[jmd,lmd,Uld]);Lhc=WC(OC(J2,1),eye,64,0,[lmd,Uld,Tld])} +function iIc(a){var b,c,d,e,f,g,h,i,j;this.a=fIc(a);this.b=new imb;for(c=a,d=0,e=c.length;d_fc(a.d).c){a.i+=a.g.c;bgc(a.d)}else if(_fc(a.d).c>_fc(a.g).c){a.e+=a.d.c;bgc(a.g)}else{a.i+=$fc(a.g);a.e+=$fc(a.d);bgc(a.g);bgc(a.d)}}} +function RPc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new xPc((BPc(),zPc),b,f,1);new xPc(zPc,f,g,1);for(e=new Hmb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} +function o5c(a,b,c,d,e){var f,g;g=false;f=JD(amb(c.b,0),26);while(B5c(a,b,f,d,e)){g=true;A6c(c,f);if(c.b.c.length==0){break}f=JD(amb(c.b,0),26)}c.b.c.length==0&&m7c(c.j,c);g&&P6c(b.q);return g} +function Kud(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new BTd((ysd(),vsd),c4,a,0)),zTd(a.o,b,d)}return f=JD(tWd((e=JD(fud(a,16),29),!e?a.fi():e),c),69),f.uk().yk(a,dud(a),c-yWd(a.fi()),b,d)} +function Iyd(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=JD(a.sb,52).Qh(a,1,v6,c));!!b&&(c=JD(b,52).Oh(a,1,v6,c));c=oyd(a,b,c);!!c&&c.mj()}else (a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,4,b,b))} +function pBd(a,b){var c,d,e,f;if(b){e=CAd(b,'x');c=new KCd(a);Owd(c.a,(KDb(e),e));f=CAd(b,'y');d=new MCd(a);Pwd(d.a,(KDb(f),f))}else{throw Icb(new JAd('All edge sections need an end point.'))}} +function nBd(a,b){var c,d,e,f;if(b){e=CAd(b,'x');c=new ECd(a);Vwd(c.a,(KDb(e),e));f=CAd(b,'y');d=new GCd(a);Wwd(d.a,(KDb(f),f))}else{throw Icb(new JAd('All edge sections need a start point.'))}} +function mAb(a,b){var c,d,e,f,g,h,i;for(d=pAb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<=hue?'error':d>=900?'warn':d>=800?'info':'log');uDb(c,a.a);!!a.b&&vDb(b,c,a.b,'Exception: ',true)} +function oRb(a,b){var c,d,e,f,g;e=b==1?lRb:kRb;for(d=e.a.ec().Jc();d.Ob();){c=JD(d.Pb(),86);for(g=JD(Qc(a.f.c,c),22).Jc();g.Ob();){f=JD(g.Pb(),49);Ylb(a.b.b,JD(f.b,82));Ylb(a.b.a,JD(f.b,82).d)}}} +function Yjc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=ckc(g,i.d[g.g],c);e=Gfd(Ifd(f.n),f.a);switch(f.j.g){case 3:case 1:h.a+=e.a;break;case 2:h.b+=e.b;break;case 4:h.b+=e.b;}Ttb(d,h,d.c.b,d.c)} +function vkc(a,b){var c,d,e,f;f=b.b.j;a.a=SC(cE,Pue,30,f.c.length,15,1);e=0;for(d=0;da){throw Icb(new hfb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:ifd(a)/(ifd(b)*ifd(a-b))} +function zpd(a,b){var c,d,e,f;c=new BGd(a);while(c.g==null&&!c.c?uGd(c):c.g==null||c.i!=0&&JD(c.g[c.i-1],50).Ob()){f=JD(vGd(c),57);if(RD(f,174)){d=JD(f,174);for(e=0;e>4];b[c*2+1]=Doe[f&15]}return Pgb(b,0,b.length)} +function nn(a){var b,c,d;d=a.c.length;switch(d){case 0:return Hx(),Gx;case 1:b=JD(zr(new Hmb(a)),45);return rn(b.jd(),b.kd());default:c=JD(hmb(a,SC(LK,$te,45,a.c.length,0,1)),175);return new Ix(c);}} +function FYb(a,b){switch(b.g){case 1:return Zq(a.j,(kZb(),gZb));case 2:return Zq(a.j,(kZb(),eZb));case 3:return Zq(a.j,(kZb(),iZb));case 4:return Zq(a.j,(kZb(),jZb));default:return Fnb(),Fnb(),Cnb;}} +function Yfc(a,b){var c,d,e;c=Zfc(b,a.e);d=JD(bjb(a.g.f,c),15).a;e=a.a.c.length-1;if(a.a.c.length!=0&&JD(amb(a.a,e),295).c==d){++JD(amb(a.a,e),295).a;++JD(amb(a.a,e),295).b}else{Ylb(a.a,new ggc(d))}} +function u1c(){u1c=ndb;l1c=(gjd(),zid);s1c=Qid;e1c=Vhd;f1c=Yhd;g1c=$hd;d1c=Thd;h1c=bid;k1c=uid;b1c=(Z0c(),K0c);c1c=L0c;n1c=R0c;q1c=U0c;o1c=S0c;p1c=T0c;i1c=N0c;j1c=P0c;m1c=Q0c;r1c=V0c;t1c=X0c;a1c=J0c} +function w6c(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(y6c(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} +function Ljc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} +function KKc(a,b,c){var d,e,f;for(e=new Yr(Dr(vYb(c).a.Jc(),new Dl));Wr(e);){d=JD(Xr(e),17);if(!(!vWb(d)&&!(!vWb(d)&&d.c.i.c==d.d.i.c))){continue}f=CKc(a,d,c,new pLc);f.c.length>1&&(nDb(b.c,f),true)}} +function Hfd(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} +function PDd(a){if(RD(a,144)){return IDd(JD(a,144))}else if(RD(a,233)){return JDd(JD(a,233))}else if(RD(a,21)){return KDd(JD(a,21))}else{throw Icb(new hfb(qGe+Ee(new tnb(WC(OC(aJ,1),rte,1,5,[a])))))}} +function Bib(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f} +function tNc(a,b,c,d){var e,f,g;if(b.k==(UYb(),PYb)){for(f=new Yr(Dr(yYb(b).a.Jc(),new Dl));Wr(f);){e=JD(Xr(f),17);g=e.c.i.k;if(g==PYb&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} +function uD(a,b){var c,d,e,f;b&=63;c=a.h&eve;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return _C(d&dve,e&dve,f&eve)} +function lgc(a,b,c,d){var e;this.b=d;this.e=a==(XGc(),VGc);e=b[c];this.d=QC(Fcb,[Ote,zwe],[171,30],16,[e.length,e.length],2);this.a=QC(cE,[Ote,Pue],[54,30],15,[e.length,e.length],2);this.c=new Xfc(b,c)} +function Qgc(a){var b,c,d;a.k=new Qi((mmd(),WC(OC(J2,1),eye,64,0,[kmd,Uld,Tld,jmd,lmd])).length,a.j.c.length);for(d=new Hmb(a.j);d.a=c){I6b(a,b,d.p);return true}}return false} +function wA(a,b,c,d){var e,f,g,h,i,j;g=c.length;f=0;e=-1;j=Igb((RDb(b,a.length+1),a.substr(b)),(Bub(),zub));for(h=0;hf&&Dgb(j,Igb(c[h],zub))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} +function Mgc(a,b,c){var d,e,f,g,h,i,j,k;f=a.d.p;h=f.e;i=f.r;a.g=new ZIc(i);g=a.d.o.c.p;d=g>0?h[g-1]:SC(RP,nye,9,0,0,1);e=h[g];j=gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',WC(OC(aJ,1),rte,1,5,[zfb(b),zfb(a)]))} +function Xz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&XBc(a,f,c))}}b.p=0} +function Wb(a){var b,c,d,e;b=$gb(ehb(new khb('Predicates.'),'and'),40);c=true;for(e=new Kjb(a);e.b=0?a.hi(e):atd(a,d)}else{throw Icb(new hfb(EFe+d.ve()+FFe))}}else{Lsd(a,c,d)}} +function HAd(a){var b,c;c=null;b=false;if(RD(a,210)){b=true;c=JD(a,210).a}if(!b){if(RD(a,265)){b=true;c=''+JD(a,265).a}}if(!b){if(RD(a,479)){b=true;c=''+JD(a,479).a}}if(!b){throw Icb(new Hdb(nGe))}return c} +function eee(a,b,c){var d,e,f,g,h,i;i=nie(a.e.Ah(),b);d=0;h=a.i;e=JD(a.g,122);for(g=0;g=a.d.b.c.length){b=new s$b(a.d);b.p=d.p-1;Ylb(a.d.b,b);c=new s$b(a.d);c.p=d.p;Ylb(a.d.b,c)}HYb(d,JD(amb(a.d.b,d.p),25))}} +function NKc(a){var b,c,d,e;c=new aub;xe(c,a.o);d=new Jxb;while(c.b!=0){b=JD(c.b==0?null:(IDb(c.b!=0),$tb(c,c.a.a)),500);e=EKc(a,b,true);e&&Ylb(d.a,b)}while(d.a.c.length!=0){b=JD(Hxb(d),500);EKc(a,b,false)}} +function ied(a){var b;this.c=new aub;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=JD(teb(g2),10),new Krb(b,JD(kDb(b,b.length),10),0))):(this.j=a.i);this.g=a.f} +function Ued(){Ued=ndb;Ted=new Ved(Kwe,0);Med=new Ved('BOOLEAN',1);Qed=new Ved('INT',2);Sed=new Ved('STRING',3);Ned=new Ved('DOUBLE',4);Oed=new Ved('ENUM',5);Ped=new Ved('ENUMSET',6);Red=new Ved('OBJECT',7)} +function yfd(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){Cu(this)}}this.b=b;this.a=null} +function yFb(a,b){var c,d;b.a?zFb(a,b):(c=JD(zzb(a.b,b.b),60),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Ec(b.b),d=JD(yzb(a.b,b.b),60),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Ec(d),Azb(a.b,b.b),undefined)} +function YJb(a,b){var c,d;c=JD($qb(a.b,b),127);if(JD(JD(Qc(a.r,b),22),83).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Gc((Vmd(),Umd))&&bKb(a,b);d=aKb(a,b);bJb(a,b)==(lld(),ild)&&(d+=2*a.w);c.a.a=d} +function fLb(a,b){var c,d;c=JD($qb(a.b,b),127);if(JD(JD(Qc(a.r,b),22),83).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Gc((Vmd(),Umd))&&jLb(a,b);d=iLb(a,b);bJb(a,b)==(lld(),ild)&&(d+=2*a.w);c.a.b=d} +function uMb(a,b){var c,d,e,f;f=new imb;for(d=new Hmb(b);d.ad&&(RDb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||bc.a&&(d.Gc((_gd(),Vgd))?(e=(b.a-c.a)/2):d.Gc(Xgd)&&(e=b.a-c.a));b.b>c.b&&(d.Gc((_gd(),Zgd))?(f=(b.b-c.b)/2):d.Gc(Ygd)&&(f=b.b-c.b));Vpd(a,e,f)} +function Hyd(a,b,c,d,e,f,g,h,i,j,k,l,m){RD(a.Cb,88)&&tYd(wWd(JD(a.Cb,88)),4);Wxd(a,c);a.f=g;BUd(a,h);DUd(a,i);vUd(a,j);CUd(a,k);$Td(a,l);yUd(a,m);ZTd(a,true);YTd(a,e);a.Xk(f);WTd(a,b);d!=null&&(a.i=null,xUd(a,d))} +function Jb(a,b,c){if(a<0){return hc(qte,WC(OC(aJ,1),rte,1,5,[c,zfb(a)]))}else if(b<0){throw Icb(new hfb(ste+b))}else{return hc('%s (%s) must not be greater than size (%s)',WC(OC(aJ,1),rte,1,5,[c,zfb(a),zfb(b)]))}} +function cnb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){_mb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);cnb(b,a,i,j,-e,f);cnb(b,a,j,h,-e,f);if(f.Le(a[j-1],a[j])<=0){while(c=0?a.$h(f,c):_sd(a,e,c)}else{throw Icb(new hfb(EFe+e.ve()+FFe))}}else{Ksd(a,d,e,c)}} +function l1d(a){var b,c;if(a.f){while(a.n>0){b=JD(a.k.Xb(a.n-1),75);c=b.Jk();if(RD(c,103)&&(JD(c,19).Bb&KFe)!=0&&(!a.e||c.nk()!=J3||c.Jj()!=0)&&b.kd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} +function Nhe(b){var c,d,e,f;d=JD(b,52).Yh();if(d){try{e=null;c=L3d((WQd(),VQd),hQd(iQd(d)));if(c){f=c.Zh();!!f&&(e=f.Dl(Jgb(d.e)))}if(!!e&&e!=b){return Nhe(e)}}catch(a){a=Hcb(a);if(!RD(a,63))throw Icb(a)}}return b} +function j0c(a,b,c){var d,e,f;c.Tg('Remove overlaps',1);c.bh(b,TCe);d=JD(Pud(b,(Q$c(),P$c)),26);a.f=d;a.a=Q1c(JD(Pud(b,(u1c(),r1c)),303));e=MD(Pud(b,(gjd(),Qid)));O_c(a,(KDb(e),e));f=k_c(d);i0c(a,b,f,c);c.bh(b,UCe)} +function jbd(a){var b,c,d;if(Odb(LD(Pud(a,(gjd(),Fhd))))){d=new imb;for(c=new Yr(Dr(DEd(a).a.Jc(),new Dl));Wr(c);){b=JD(Xr(c),85);vwd(b)&&Odb(LD(Pud(b,Ghd)))&&(nDb(d.c,b),true)}return d}else{return Fnb(),Fnb(),Cnb}} +function CC(a){if(!a){return WB(),VB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=yC[typeof b];return c?c(b):FC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new FB(a)}else{return new nC(a)}} +function iKb(a,b,c){var d,e,f;f=a.o;d=JD($qb(a.p,c),253);e=d.i;e.b=zIb(d);e.a=yIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}AIb(d);BIb(d)} +function jKb(a,b,c){var d,e,f;f=a.o;d=JD($qb(a.p,c),253);e=d.i;e.b=zIb(d);e.a=yIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}AIb(d);BIb(d)} +function ycc(a,b){var c,d,e;if(RD(b.g,9)&&JD(b.g,9).k==(UYb(),NYb)){return ove}e=Pdc(b);if(e){return $wnd.Math.max(0,a.b/2-0.5)}c=Odc(b);if(c){d=Reb(MD(JAc(c,($xc(),Dxc))));return $wnd.Math.max(0,d/2-0.5)}return ove} +function Acc(a,b){var c,d,e;if(RD(b.g,9)&&JD(b.g,9).k==(UYb(),NYb)){return ove}e=Pdc(b);if(e){return $wnd.Math.max(0,a.b/2-0.5)}c=Odc(b);if(c){d=Reb(MD(JAc(c,($xc(),Dxc))));return $wnd.Math.max(0,d/2-0.5)}return ove} +function cec(a,b){var c,d,e,f,g;if(b.dc()){return}e=JD(b.Xb(0),132);if(b.gc()==1){bec(a,e,e,1,0,b);return}c=1;while(c0){try{f=Vdb(c,rue,lte)}catch(a){a=Hcb(a);if(RD(a,131)){e=a;throw Icb(new PQd(e))}else throw Icb(a)}}d=(!b.a&&(b.a=new Xbe(b)),b.a);return f=0?JD(SFd(d,f),57):null} +function Ib(a,b){if(a<0){return hc(qte,WC(OC(aJ,1),rte,1,5,['index',zfb(a)]))}else if(b<0){throw Icb(new hfb(ste+b))}else{return hc('%s (%s) must be less than size (%s)',WC(OC(aJ,1),rte,1,5,['index',zfb(a),zfb(b)]))}} +function jnb(a){var b,c,d,e,f;if(a==null){return vte}f=new Nxb(pte,'[',']');for(c=a,d=0,e=c.length;d=0?a.Ih(c,true,true):Zsd(a,e,true),163));JD(d,219).Xl(b)}else{throw Icb(new hfb(EFe+b.ve()+FFe))}} +function Jhb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=YD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return Khb(Pcb(a))} +function KPc(a){var b,c,d,e,f,g,h;f=new Mtb;for(c=new Hmb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.yc(e,f);e.q=d}return f} +function X1c(a,b,c){c.Tg('Eades radial',1);c.bh(b,UCe);a.d=JD(Pud(b,(Q$c(),P$c)),26);a.c=Reb(MD(Pud(b,(u1c(),m1c))));a.e=Q1c(JD(Pud(b,r1c),303));a.a=t0c(JD(Pud(b,t1c),426));a.b=G1c(JD(Pud(b,i1c),354));Y1c(a);c.bh(b,UCe)} +function _4c(a,b){b.Tg('Target Width Setter',1);if(Qud(a,(D4c(),C4c))){Rud(a,(A3c(),z3c),MD(Pud(a,C4c)))}else{throw Icb(new pbd('A target width has to be set if the TargetWidthWidthApproximator should be used.'))}b.Ug()} +function H2b(a,b){var c,d,e;d=new KYb(a);jNb(d,b);oNb(d,(Krc(),Nqc),b);oNb(d,($xc(),bxc),(xld(),sld));oNb(d,fvc,(wgd(),sgd));IYb(d,(UYb(),NYb));c=new sZb;qZb(c,d);rZb(c,(mmd(),lmd));e=new sZb;qZb(e,d);rZb(e,Tld);return d} +function YDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ylb(a.a,b);for(g=new Hmb(b.j);g.a=f){g.$b()}else{e=g.Jc();for(d=0;d0?Fh():g<0&&Jw(a,b,-g);return true}else{return false}} +function yIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=CIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Zub(gBb(XBb(SBb(gnb(a.a),new QIb),new SIb)))}return h>0?h+a.n.d+a.n.a:0} +function zIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Zub(gBb(XBb(SBb(gnb(a.a),new MIb),new OIb)))}else{g=DIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} +function oLc(a){var b,c;if(a.c.length!=2){throw Icb(new kfb('Order only allowed for two paths.'))}b=(JDb(0,a.c.length),JD(a.c[0],17));c=(JDb(1,a.c.length),JD(a.c[1],17));if(b.d.i!=c.c.i){a.c.length=0;nDb(a.c,c);nDb(a.c,b)}} +function u5c(a,b,c){var d;Ivd(c,b.g,b.f);Kvd(c,b.i,b.j);for(d=0;d<(!b.a&&(b.a=new A3d(Q3,b,10,11)),b.a).i;d++){u5c(a,JD(SFd((!b.a&&(b.a=new A3d(Q3,b,10,11)),b.a),d),26),JD(SFd((!c.a&&(c.a=new A3d(Q3,c,10,11)),c.a),d),26))}} +function dKb(a,b){var c,d,e,f;f=JD($qb(a.b,b),127);c=f.a;for(e=JD(JD(Qc(a.r,b),22),83).Jc();e.Ob();){d=JD(e.Pb(),115);!!d.c&&(c.a=$wnd.Math.max(c.a,qIb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} +function UMb(a,b){var c,d,e;c=JD(lNb(b,(ZOb(),MOb)),15).a-JD(lNb(a,MOb),15).a;if(c==0){d=Vfd(Ifd(JD(lNb(a,(iPb(),ePb)),8)),JD(lNb(a,fPb),8));e=Vfd(Ifd(JD(lNb(b,ePb),8)),JD(lNb(b,fPb),8));return Xeb(d.a*d.b,e.a*e.b)}return c} +function dSc(a,b){var c,d,e;c=JD(lNb(b,(DXc(),rXc)),15).a-JD(lNb(a,rXc),15).a;if(c==0){d=Vfd(Ifd(JD(lNb(a,(MWc(),lWc)),8)),JD(lNb(a,mWc),8));e=Vfd(Ifd(JD(lNb(b,lWc),8)),JD(lNb(b,mWc),8));return Xeb(d.a*d.b,e.a*e.b)}return c} +function AWb(a){var b,c;c=new ihb;c.a+='e_';b=rWb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){ehb((c.a+=' ',c),nZb(a.c));ehb(dhb((c.a+='[',c),a.c.i),']');ehb((c.a+=jye,c),nZb(a.d));ehb(dhb((c.a+='[',c),a.d.i),']')}return c.a} +function tSc(a){switch(a.g){case 0:return new hYc;case 1:return new pYc;case 2:return new TYc;case 3:return new dZc;default:throw Icb(new hfb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} +function Dpd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} +function dBd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new vse(e);for(h=(d.b-d.a)*d.c<0?(use(),tse):new Rse(d);h.Ob();){g=JD(h.Pb(),15);f=EAd(c,g.a);eGe in f.a||fGe in f.a?VBd(a,f,b):_Bd(a,f,b);QEd(JD(bjb(a.c,BAd(f)),85))}}} +function hVd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=UTd(a);if(!!b&&(lie(),b.jk()==XHe)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} +function Qoe(a,b){var c,d,e,f;Koe(a);if(a.c!=0||a.a!=123)throw Icb(new Joe(VGd((Fbe(),$Ge))));f=b==112;d=a.d;c=wgb(a.i,125,d);if(c<0)throw Icb(new Joe(VGd((Fbe(),_Ge))));e=Ggb(a.i,d,c);a.d=c+1;return gre(e,f,(a.e&512)==512)} +function KDc(a){var b,c,d,e,f,g,h;h=Xu(a.c.length);for(e=new Hmb(a);e.a=0&&f=0?a.Ih(c,true,true):Zsd(a,e,true),163));return JD(d,219).Ul(b)}else{throw Icb(new hfb(EFe+b.ve()+HFe))}} +function Z8d(){R8d();var a;if(Q8d)return JD(L3d((WQd(),VQd),uIe),2000);PPd(LK,new fbe);$8d();a=JD(RD(cjb((WQd(),VQd),uIe),548)?cjb(VQd,uIe):new Y8d,548);Q8d=true;W8d(a);X8d(a);ejb((fRd(),eRd),a,new a9d);fjb(VQd,uIe,a);return a} +function Tde(a,b){var c,d,e,f;a.j=-1;if(Vsd(a.e)){c=a.i;f=a.i!=0;NFd(a,b);d=new N1d(a.e,3,a.c,null,b,c,f);e=b.xl(a.e,a.c,null);e=Fee(a,b,e);if(!e){zsd(a.e,d)}else{e.lj(d);e.mj()}}else{NFd(a,b);e=b.xl(a.e,a.c,null);!!e&&e.mj()}} +function zA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(RDb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(RDb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} +function FOc(a,b,c){var d,e,f,g,h;g=a.c;h=a.d;f=cgd(WC(OC(o2,1),Ote,8,0,[g.i.n,g.n,g.a])).b;e=(f+cgd(WC(OC(o2,1),Ote,8,0,[h.i.n,h.n,h.a])).b)/2;d=null;g.j==(mmd(),Tld)?(d=new Yfd(b+g.i.c.c.a+c,e)):(d=new Yfd(b-c,e));$t(a.a,0,d)} +function vwd(a){var b,c,d,e;b=null;for(d=Gl(yl(WC(OC(VI,1),rte,20,0,[(!a.b&&(a.b=new Wge(L3,a,4,7)),a.b),(!a.c&&(a.c=new Wge(L3,a,5,8)),a.c)])));Wr(d);){c=JD(Xr(d),84);e=EEd(c);if(!b){b=e}else if(b!=e){return false}}return true} +function UFd(a,b,c){var d;++a.j;if(b>=a.i)throw Icb(new Cdb(GGe+b+HGe+a.i));if(c>=a.i)throw Icb(new Cdb(IGe+c+HGe+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-qve;b=d>>16&4;c+=b;a<<=b;d=a-Pte;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} +function DSc(a,b){var c,d,e;e=new imb;for(d=Wtb(b.a,0);d.b!=d.d.c;){c=JD(iub(d),65);c.c.g==a.g&&XD(lNb(c.b,(DXc(),BXc)))!==XD(lNb(c.c,BXc))&&!OBb(new gCb(null,new Wvb(e,16)),new cTc(c))&&(nDb(e.c,c),true)}gmb(e,new eTc);return e} +function GNb(a,b,c){var d,e,f,g;if(RD(b,155)&&RD(c,155)){f=JD(b,155);g=JD(c,155);return a.a[f.a][g.a]+a.a[g.a][f.a]}else if(RD(b,251)&&RD(c,251)){d=JD(b,251);e=JD(c,251);if(d.a==e.a){return JD(lNb(e.a,(ZOb(),MOb)),15).a}}return 0} +function Y2b(a,b){var c,d,e,f,g,h,i,j;j=Reb(MD(lNb(b,($xc(),Hxc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=Mfd(Vfd(new Yfd(g.c+g.b/2,g.d+g.a/2),new Yfd(f.c+f.b/2,f.d+f.a/2)));return -(NMb(f,g)-1)*h} +function Lpd(a,b,c){var d;VBb(new gCb(null,(!c.a&&(c.a=new A3d(M3,c,6,6)),new Wvb(c.a,16))),new bqd(a,b));VBb(new gCb(null,(!c.n&&(c.n=new A3d(P3,c,1,7)),new Wvb(c.n,16))),new dqd(a,b));d=JD(Pud(c,(gjd(),Nhd)),78);!!d&&ggd(d,a,b)} +function Zsd(a,b,c){var d,e,f;f=Cce((jie(),hie),a.Ah(),b);if(f){lie();JD(f,69).vk()||(f=xde(Oce(hie,f)));e=(d=a.Fh(f),JD(d>=0?a.Ih(d,true,true):Zsd(a,f,true),163));return JD(e,219).Ql(b,c)}else{throw Icb(new hfb(EFe+b.ve()+HFe))}} +function YLd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new XPc(i.c,g);Xlb(a,d++,e)}h=j+c;if(h<=i.a){f=new XPc(h,i.a);MDb(d,a.c.length);lDb(a.c,d,f)}}} +function IVc(a,b,c){var d,e,f,g,h,i;if(!b.dc()){e=new aub;for(i=b.Jc();i.Ob();){h=JD(i.Pb(),40);ejb(a.a,zfb(h.g),zfb(c));for(g=(d=Wtb((new zTc(h)).a.d,0),new CTc(d));hub(g.a);){f=JD(iub(g.a),65).c;Ttb(e,f,e.c.b,e.c)}}IVc(a,e,c+1)}} +function Sbe(a){var b;if(!a.c&&a.g==null){a.d=a._i(a.f);YEd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=JD(a.g[a.i-1],50)}}if(b==a.b&&null.Tm>=null.Sm()){vGd(a);return Sbe(a)}else{return b.Ob()}} +function UUb(a){this.a=a;if(a.c.i.k==(UYb(),NYb)){this.c=a.c;this.d=JD(lNb(a.c.i,(Krc(),Oqc)),64)}else if(a.d.i.k==NYb){this.c=a.d;this.d=JD(lNb(a.d.i,(Krc(),Oqc)),64)}else{throw Icb(new hfb('Edge '+a+' is not an external edge.'))}} +function M_d(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,3,e,a.b));if(!b){Wxd(a,null);O_d(a,0);N_d(a,null)}else if(b!=a){Wxd(a,b.zb);O_d(a,b.d);c=(d=b.c,d==null?b.zb:d);N_d(a,c==null||sgb(c,b.zb)?null:c)}} +function Dz(b){var c=(!Bz&&(Bz=Ez()),Bz);var d=b.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(a){return Cz(a,c)});return '"'+d+'"'} +function jDb(a,b,c,d,e,f){var g,h,i,j,k;if(e==0){return}if(XD(a)===XD(c)){a=a.slice(b,b+e);b=0}i=c;for(h=b,j=b+e;h=g)throw Icb(new cKd(b,g));e=c[b];if(g==1){d=null}else{d=SC(l5,CHe,415,g-1,0,1);ohb(c,0,d,0,b);f=g-b-1;f>0&&ohb(c,b+1,d,b,f)}zbe(a,d);ybe(a,b,e);return e} +function j1d(a){var b,c;if(a.f){while(a.n0){g=a.c.d;h=a.d.d;e=Qfd(Vfd(new Yfd(h.a,h.b),g),1/(d+1));f=new Yfd(g.a,g.b);for(c=new Hmb(a.a);c.a0?(f=rmd(c)):(f=omd(rmd(c)))}Rud(b,gxc,f)} +function y7b(a,b){var c,d;if(a.c.length!=0){if(a.c.length==2){x7b((JDb(0,a.c.length),JD(a.c[0],9)),(Lkd(),Hkd));x7b((JDb(1,a.c.length),JD(a.c[1],9)),Ikd)}else{for(d=new Hmb(a);d.a0&&QHc(a,c,b);return f}else if(d.a!=null){QHc(a,b,c);return -1}else if(e.a!=null){QHc(a,c,b);return 1}return 0} +function xNc(a){qNc();var b,c,d,e,f,g,h;c=new ltb;for(e=new Hmb(a.e.b);e.a=0;){d=c[f];g.$l(d.Jk())&&YEd(e,d)}!yJd(a,e)&&Vsd(a.e)&&cXd(a,b.Hk()?dee(a,6,b,(Fnb(),Cnb),null,-1,false):dee(a,b.rk()?2:1,b,null,null,-1,false))} +function H1b(a,b){var c,d,e,f,g;if(a.a==(vpc(),tpc)){return true}f=b.a.c;c=b.a.c+b.a.b;if(b.j){d=b.A;g=d.c.c.a-d.o.a/2;e=f-(d.n.a+d.o.a);if(e>g){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} +function V2b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new Hmb(a);f.a=0?a.xh(null):a.Mh().Qh(a,-1-b,null,null));a.yh(JD(e,52),c);!!d&&d.mj();a.sh()&&a.th()&&c>-1&&zsd(a,new L1d(a,9,c,f,e));return e}}}return f} +function xsb(a,b){var c,d,e,f,g;f=a.b.Ae(b);d=(c=a.a.get(f),c==null?SC(aJ,rte,1,0,5,1):c);for(g=0;g>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=_hb(a);if(e>16)),16).bd(f);if(h0){!(pjd(a.a.c)&&b.n.d)&&!(qjd(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(pjd(a.a.c)&&b.n.a)&&!(qjd(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} +function $5b(a,b,c){var d,e,f,g,h,i;f=JD(amb(b.e,0),17).c;d=f.i;e=d.k;i=JD(amb(c.g,0),17).d;g=i.i;h=g.k;e==(UYb(),PYb)?oNb(a,(Krc(),brc),JD(lNb(d,brc),12)):oNb(a,(Krc(),brc),f);h==PYb?oNb(a,(Krc(),crc),JD(lNb(g,crc),12)):oNb(a,(Krc(),crc),i)} +function B7b(a,b){var c,d,e,f,g,h;for(f=new Hmb(a.b);f.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?eve:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?eve:0;f=d?dve:0;e=c>>b-44}return _C(e&dve,f&dve,g&eve)} +function qNd(a,b){var c,d,e,f,g,h,i,j,k;if(a.a.f>0&&RD(b,45)){a.a.Zj();j=JD(b,45);i=j.jd();f=i==null?0:tb(i);g=dMd(a.a,f);c=a.a.d[g];if(c){d=JD(c.g,374);k=c.i;for(h=0;h=2){c=e.Jc();b=MD(c.Pb());while(c.Ob()){f=b;b=MD(c.Pb());d=$wnd.Math.min(d,(KDb(b),b)-(KDb(f),f))}}return d} +function ESc(a,b){var c,d,e;e=new imb;for(d=Wtb(b.a,0);d.b!=d.d.c;){c=JD(iub(d),65);c.b.g==a.g&&!sgb(c.b.c,vCe)&&XD(lNb(c.b,(DXc(),BXc)))!==XD(lNb(c.c,BXc))&&!OBb(new gCb(null,new Wvb(e,16)),new iTc(c))&&(nDb(e.c,c),true)}gmb(e,new kTc);return e} +function Ru(a,b){var c,d,e;if(XD(b)===XD(Qb(a))){return true}if(!RD(b,16)){return false}d=JD(b,16);e=a.gc();if(e!=d.gc()){return false}if(RD(d,59)){for(c=0;c0&&(e=c);for(g=new Hmb(a.f.e);g.a0?(e+=b):(e+=1)}return e} +function YBd(a,b){var c,d,e,f,g,h,i,j,k,l;j=a;i=FAd(j,'individualSpacings');if(i){d=Qud(b,(gjd(),Lid));g=!d;if(g){e=new qqd;Rud(b,Lid,e)}h=JD(Pud(b,Lid),379);l=i;f=null;!!l&&(f=(k=gC(l,SC(hJ,Ote,2,0,6,1)),new uC(l,k)));if(f){c=new UCd(l,h);Efb(f,c)}}} +function aCd(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=null;l=a;k=null;if(xGe in l.a||yGe in l.a||hGe in l.a){j=null;m=IEd(b);g=FAd(l,xGe);c=new YCd(m);vBd(c.a,g);h=FAd(l,yGe);d=new ADd(m);GBd(d.a,h);f=DAd(l,hGe);e=new GDd(m);j=(HBd(e.a,f),f);k=j}i=k;return i} +function gx(a,b){var c,d,e;if(b===a){return true}if(RD(b,540)){e=JD(b,833);if(a.a.d!=e.a.d||Gh(a).gc()!=Gh(e).gc()){return false}for(d=Gh(e).Jc();d.Ob();){c=JD(d.Pb(),416);if(Iw(a,c.a.jd())!=JD(c.a.kd(),18).gc()){return false}}return true}return false} +function w$b(a,b){var c,d,e,f;for(f=new Hmb(b.a);f.ab.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(OJc(),NJc)&&b.d==MJc){return -1}else if(a.d==MJc&&b.d==NJc){return 1}return 0} +function MMc(a){var b,c,d,e,f,g,h,i;e=ove;d=pve;for(c=new Hmb(a.e.b);c.a0&&e0}else if(e<0&&-e0}return false} +function E6c(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new Hmb(a.c);l.a>24}return g} +function Ieb(a){if(a.xe()){var b=a.c;b.ye()?(a.o='['+b.n):!b.xe()?(a.o='[L'+b.ve()+';'):(a.o='['+b.ve());a.b=b.ue()+'[]';a.k=b.we()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=Leb('.',[c,Leb('$',d)]);a.b=Leb('.',[c,Leb('.',d)]);a.k=d[d.length-1]} +function JGb(a,b){var c,d,e,f,g;g=null;for(f=new Hmb(a.e.a);f.a0&&hlc(b,(JDb(d-1,a.c.length),JD(a.c[d-1],9)),e)>0){fmb(a,d,(JDb(d-1,a.c.length),JD(a.c[d-1],9)));--d}JDb(d,a.c.length);a.c[d]=e}b.b=new Yrb;b.g=new Yrb} +function SHc(a,b,c){var d,e,f;for(d=1;d0&&b.Le((JDb(e-1,a.c.length),JD(a.c[e-1],9)),f)>0){fmb(a,e,(JDb(e-1,a.c.length),JD(a.c[e-1],9)));--e}JDb(e,a.c.length);a.c[e]=f}c.a=new Yrb;c.b=new Yrb} +function J_c(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(f=b.Jc();f.Ob();){e=JD(f.Pb(),26);k=e.i+e.g/2;m=e.j+e.f/2;i=a.f;g=i.i+i.g/2;h=i.j+i.f/2;j=k-g;l=m-h;d=$wnd.Math.sqrt(j*j+l*l);j*=a.e/d;l*=a.e/d;if(c){k-=j;m-=l}else{k+=j;m+=l}Mvd(e,k-e.g/2);Nvd(e,m-e.f/2)}} +function tre(a){var b,c,d;if(a.c)return;if(a.b==null)return;for(b=a.b.length-4;b>=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} +function jtd(a){var b,c;c=new khb(ueb(a.Pm));c.a+='@';ehb(c,(b=tb(a)>>>0,b.toString(16)));if(a.Sh()){c.a+=' (eProxyURI: ';dhb(c,a.Yh());if(a.Hh()){c.a+=' eClass: ';dhb(c,a.Hh())}c.a+=')'}else if(a.Hh()){c.a+=' (eClass: ';dhb(c,a.Hh());c.a+=')'}return c.a} +function $Eb(a){var b,c,d,e;if(a.e){throw Icb(new kfb((seb(PM),lwe+PM.k+mwe)))}a.d==(ojd(),mjd)&&ZEb(a,kjd);for(c=new Hmb(a.a.a);c.a>24}return c} +function EKb(a,b,c){var d,e,f;e=JD($qb(a.i,b),318);if(!e){e=new uIb(a.d,b,c);_qb(a.i,b,e);if(LJb(b)){VHb(a.a,b.c,b.b,e)}else{f=KJb(b);d=JD($qb(a.p,f),253);switch(f.g){case 1:case 3:e.j=true;EIb(d,b.b,e);break;case 4:case 2:e.k=true;EIb(d,b.c,e);}}}return e} +function Pee(a,b,c,d){var e,f,g,h,i,j;h=new $Fd;i=nie(a.e.Ah(),b);e=JD(a.g,122);lie();if(JD(b,69).vk()){for(g=0;g=0){return e}else{f=1;for(h=new Hmb(b.j);h.a=0){return e}else{f=1;for(h=new Hmb(b.j);h.a=0){if(!b){b=new Ygb;d>0&&Ugb(b,(QDb(0,d,a.length),a.substr(0,d)))}b.a+='\\';Qgb(b,c&Bue)}else !!b&&Qgb(b,c&Bue)}return b?b.a:a} +function lSb(a){var b,c,d;for(c=new Hmb(a.a.a.b);c.a0){!(pjd(a.a.c)&&b.n.d)&&!(qjd(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(pjd(a.a.c)&&b.n.a)&&!(qjd(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} +function F7b(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(mmd(),Uld)||b==Tld){v7b(JD(vlb(a),16),(Lkd(),Hkd));v7b(JD(vlb(a),16),Ikd)}else{v7b(JD(vlb(a),16),(Lkd(),Ikd));v7b(JD(vlb(a),16),Hkd)}}else{for(e=new Rlb(a);e.a!=e.b;){d=JD(Plb(e),16);v7b(d,c)}}} +function sGc(a,b,c){var d,e,f,g,h,i,j,k,l;k=-1;l=0;for(h=b,i=0,j=h.length;i0&&++l}}++k}return l} +function LEd(a,b){var c,d,e,f,g,h,i;e=Vu(new SEd(a));h=new Qjb(e,e.c.length);f=Vu(new SEd(b));i=new Qjb(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(IDb(h.b>0),JD(h.a.Xb(h.c=--h.b),26));d=(IDb(i.b>0),JD(i.a.Xb(i.c=--i.b),26));if(c==d){g=c}else{break}}return g} +function Abc(a,b){var c,d,e,f;b.Tg('Self-Loop pre-processing',1);for(d=new Hmb(a.a);d.aGgc(a,c)){d=CYb(c,(mmd(),Tld));a.d=d.dc()?0:mZb(JD(d.Xb(0),12));g=CYb(b,lmd);a.b=g.dc()?0:mZb(JD(g.Xb(0),12))}else{e=CYb(c,(mmd(),lmd));a.d=e.dc()?0:mZb(JD(e.Xb(0),12));f=CYb(b,Tld);a.b=f.dc()?0:mZb(JD(f.Xb(0),12))}} +function Pmc(a){var b,c,d,e,f,g,h,i;b=true;e=null;f=null;j:for(i=new Hmb(a.a);i.aa.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=HPc(a,b,f,h);i=UPc((JDb(d,b.c.length),JD(b.c[d],340)));SPc(b,d,c)}return i} +function gyd(a,b,c){var d,e,f,g,h,i,j;g=(f=new nTd,f);lTd(g,(KDb(b),b));j=(!g.b&&(g.b=new QTd((HRd(),DRd),K7,g)),g.b);for(i=1;i=2} +function dlc(a,b,c,d,e){var f,g,h,i,j,k;f=a.c.d.j;g=JD(au(c,0),8);for(k=1;k1){return false}b=Drb(Tkd,WC(OC(F2,1),kue,96,0,[Skd,Vkd]));if(_x(Px(b,a))>1){return false}d=Drb($kd,WC(OC(F2,1),kue,96,0,[Zkd,Ykd]));if(_x(Px(d,a))>1){return false}return true} +function BOc(a){var b,c,d,e,f,g,h;b=0;for(d=new Hmb(a.a);d.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Qtb(b,d.b)}}for(e=new Hmb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Qtb(c,d.a)}}} +function vGd(a){var b,c,d,e,f;if(a.g==null){a.d=a._i(a.f);YEd(a,a.d);if(a.c){f=a.f;return f}}b=JD(a.g[a.i-1],50);e=b.Pb();a.e=b;c=a._i(e);if(c.Ob()){a.d=c;YEd(a,c)}else{a.d=null;while(!b.Ob()){VC(a.g,--a.i,null);if(a.i==0){break}d=JD(a.g[a.i-1],50);b=d}}return e} +function Pde(a,b){var c,d,e,f,g,h;d=b;e=d.Jk();if(oie(a.e,e)){if(e.Qi()&&aee(a,e,d.kd())){return false}}else{h=nie(a.e.Ah(),e);c=JD(a.g,122);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} +function Ovb(a,b){var c,d,e,f,g,h;f=a.a*Mve+a.b*1502;h=a.b*Mve+11;c=$wnd.Math.floor(h*Nve);f+=c;h-=c*Ove;f%=Ove;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*Ivb[b])}else{e=a.a*(1<=2147483648&&(d-=4294967296);return d}} +function QOc(a,b,c){var d,e,f,g,h,i,j;f=new imb;j=new aub;g=new aub;ROc(a,j,g,b);POc(a,j,g,b,c);for(i=new Hmb(a);i.ad.b.g&&(nDb(f.c,d),true)}}return f} +function Rad(a,b,c){var d,e,f,g,h,i;h=a.c;for(g=(!c.q?(Fnb(),Fnb(),Dnb):c.q).vc().Jc();g.Ob();){f=JD(g.Pb(),45);d=!eCb(SBb(new gCb(null,new Wvb(h,16)),new Uzb(new dbd(b,f)))).zd((NBb(),MBb));if(d){i=f.kd();if(RD(i,4)){e=HGd(i);e!=null&&(i=e)}b.of(JD(f.jd(),147),i)}}} +function C2b(a,b){var c,d,e,f;b.Tg('Resize child graph to fit parent.',1);for(d=new Hmb(a.b);d.a1){for(e=new Hmb(a.a);e.a=0?a.Ih(d,true,true):Zsd(a,f,true),163));JD(e,219).Vl(b,c)}else{throw Icb(new hfb(EFe+b.ve()+FFe))}} +function KAd(a,b,c){var d,e,f,g,h,i;i=ZAd(a,JD(bjb(a.e,b),26));h=null;if(i){switch(i.g){case 3:d=$Ad(a,rwd(b));h=(KDb(c),c)+(KDb(d),d);break;case 2:e=$Ad(a,rwd(b));g=(KDb(c),c)+(KDb(e),e);f=$Ad(a,JD(bjb(a.e,b),26));h=g-(KDb(f),f);break;default:h=c;}}else{h=c}return h} +function MAd(a,b,c){var d,e,f,g,h,i;i=ZAd(a,JD(bjb(a.e,b),26));h=null;if(i){switch(i.g){case 3:d=_Ad(a,rwd(b));h=(KDb(c),c)+(KDb(d),d);break;case 2:e=_Ad(a,rwd(b));g=(KDb(c),c)+(KDb(e),e);f=_Ad(a,JD(bjb(a.e,b),26));h=g-(KDb(f),f);break;default:h=c;}}else{h=c}return h} +function i0d(a,b){var c,d,e,f,g;if(!b){return null}else{f=RD(a.Cb,88)||RD(a.Cb,103);g=!f&&RD(a.Cb,335);for(d=new fKd((!b.a&&(b.a=new g8d(b,w6,b)),b.a));d.e!=d.i.gc();){c=JD(dKd(d),87);e=g0d(c);if(f?RD(e,88):g?RD(e,159):!!e){return e}}return f?(HRd(),xRd):(HRd(),uRd)}} +function LPc(a,b){var c,d,e,f,g;c=new imb;e=UBb(new gCb(null,new Wvb(a,16)),new cQc);f=UBb(new gCb(null,new Wvb(a,16)),new eQc);g=jBb(iBb(XBb(Dy(WC(OC(sM,1),rte,832,0,[e,f])),new gQc)));for(d=1;d=2*b&&Ylb(c,new XPc(g[d-1]+b,g[d]-b))}return c} +function wBd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new vse(f);for(h=(d.b-d.a)*d.c<0?(use(),tse):new Rse(d);h.Ob();){g=JD(h.Pb(),15);e=EAd(c,g.a);!!e&&(i=null,j=NBd(a,(k=(ksd(),l=new Wzd,l),!!b&&Uzd(k,b),k),e),svd(j,GAd(e,oGe)),bCd(e,j),cCd(e,j),ZBd(a,e,j))}}} +function qWd(a){var b,c,d,e,f,g;if(!a.j){g=new d_d;b=gWd;f=b.a.yc(a,b);if(f==null){for(d=new fKd(xWd(a));d.e!=d.i.gc();){c=JD(dKd(d),29);e=qWd(c);$Ed(g,e);YEd(g,c)}b.a.Ac(a)!=null}XFd(g);a.j=new LYd((JD(SFd(vWd((jRd(),iRd).o),11),19),g.i),g.g);wWd(a).b&=-33}return a.j} +function jle(a){var b,c,d,e;if(a==null){return null}else{d=lse(a,true);e=gJe.length;if(sgb(d.substr(d.length-e,e),gJe)){c=d.length;if(c==4){b=(RDb(0,d.length),d.charCodeAt(0));if(b==43){return Wke}else if(b==45){return Vke}}else if(c==3){return Wke}}return new _eb(d)}} +function hD(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return vfb(c)}if(b==0&&d!=0&&c==0){return vfb(d)+22}if(b!=0&&d==0&&c==0){return vfb(b)+44}return -1} +function so(a,b){var c,d,e,f,g;e=b.a&a.f;f=null;for(d=a.b[e];true;d=d.b){if(d==b){!f?(a.b[e]=b.b):(f.b=b.b);break}f=d}g=b.f&a.f;f=null;for(c=a.c[g];true;c=c.d){if(c==b){!f?(a.c[g]=b.d):(f.d=b.d);break}f=c}!b.e?(a.a=b.c):(b.e.c=b.c);!b.c?(a.e=b.e):(b.c.e=b.e);--a.i;++a.g} +function ut(a,b){var c;b.d?(b.d.b=b.b):(a.a=b.b);b.b?(b.b.d=b.d):(a.e=b.d);if(!b.e&&!b.c){c=JD(Lub(JD(gjb(a.b,b.a),262)),262);c.a=0;++a.c}else{c=JD(Lub(JD(bjb(a.b,b.a),262)),262);--c.a;!b.e?(c.b=JD(Lub(b.c),497)):(b.e.c=b.c);!b.c?(c.c=JD(Lub(b.e),497)):(b.c.e=b.e)}--a.d} +function eTb(a,b){var c,d,e,f;f=new Qjb(a,0);c=(IDb(f.b0);f.a.Xb(f.c=--f.b);Pjb(f,e);IDb(f.b3&&MA(a,0,b-3)}} +function FQb(a){var b,c,d,e;if(XD(lNb(a,($xc(),ewc)))===XD((Bkd(),ykd))){return !a.e&&XD(lNb(a,Evc))!==XD((Upc(),Rpc))}d=JD(lNb(a,Fvc),302);e=Odb(LD(lNb(a,Lvc)))||XD(lNb(a,Mvc))===XD((Lnc(),Hnc));b=JD(lNb(a,Dvc),15).a;c=a.a.c.length;return !e&&d!=(Upc(),Rpc)&&(b==0||b>c)} +function x9b(a,b){var c,d,e,f,g,h,i;for(e=a.Jc();e.Ob();){d=JD(e.Pb(),9);h=new sZb;qZb(h,d);rZb(h,(mmd(),Tld));oNb(h,(Krc(),orc),(Ndb(),true));for(g=b.Jc();g.Ob();){f=JD(g.Pb(),9);i=new sZb;qZb(i,f);rZb(i,lmd);oNb(i,orc,true);c=new BWb;oNb(c,orc,true);xWb(c,h);yWb(c,i)}}} +function Rhc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(Mhe(a,b))throw Icb(new hfb(OFe+Xwd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Jwd(a,d):a.Cb.Qh(a,-1-c,null,d)));!!b&&(d=Rsd(b,a,6,d));d=Iwd(a,b,d);!!d&&d.mj()}else (a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,6,b,b))} +function wwd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(Mhe(a,b))throw Icb(new hfb(OFe+xwd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?qwd(a,d):a.Cb.Qh(a,-1-c,null,d)));!!b&&(d=Rsd(b,a,12,d));d=pwd(a,b,d);!!d&&d.mj()}else (a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,3,b,b))} +function Uzd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(Mhe(a,b))throw Icb(new hfb(OFe+Vzd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Szd(a,d):a.Cb.Qh(a,-1-c,null,d)));!!b&&(d=Rsd(b,a,9,d));d=Rzd(a,b,d);!!d&&d.mj()}else (a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,9,b,b))} +function rUd(b){var c,d,e,f,g;e=UTd(b);g=b.j;if(g==null&&!!e){return b.Hk()?null:e.gk()}else if(RD(e,159)){d=e.hk();if(d){f=d.ti();if(f!=b.i){c=JD(e,159);if(c.lk()){try{b.g=f.qi(c,g)}catch(a){a=Hcb(a);if(RD(a,80)){b.g=null}else throw Icb(a)}}b.i=f}}return b.g}return null} +function MMb(a){var b;b=new imb;Ylb(b,new hEb(new Yfd(a.c,a.d),new Yfd(a.c+a.b,a.d)));Ylb(b,new hEb(new Yfd(a.c,a.d),new Yfd(a.c,a.d+a.a)));Ylb(b,new hEb(new Yfd(a.c+a.b,a.d+a.a),new Yfd(a.c+a.b,a.d)));Ylb(b,new hEb(new Yfd(a.c+a.b,a.d+a.a),new Yfd(a.c,a.d+a.a)));return b} +function Jjc(a){var b,c,d,e;d=a.a.d.j;e=a.c.d.j;for(c=new Hmb(a.i.d);c.a>>0,d.toString(16));qAb(uAb(),(Xzb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+ueb(c.Pm)+'>'}else throw Icb(a)}} +function Dy(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new bq(a.length);for(h=a,i=0,j=h.length;i1){b=GGb((c=new IGb,++a.b,c),a.d);for(h=Wtb(f,0);h.b!=h.d.c;){g=JD(iub(h),124);UFb(XFb(WFb(YFb(VFb(new ZFb,1),0),b),g))}}} +function Fzd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(Mhe(a,b))throw Icb(new hfb(OFe+Gzd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?zzd(a,d):a.Cb.Qh(a,-1-c,null,d)));!!b&&(d=Rsd(b,a,10,d));d=yzd(a,b,d);!!d&&d.mj()}else (a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,11,b,b))} +function D1b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new Hmb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=SC(L5,EHe,67,2*i+4,0,1);for(f=0;f=9223372036854775807){return ED(),AD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=hve){d=YD(a/hve);a-=d*hve}c=0;if(a>=gve){c=YD(a/gve);a-=c*gve}b=YD(a);f=_C(b,c,d);e&&fD(f);return f} +function $Ab(a){var b,c,d,e,f;f=new imb;_lb(a.b,new gDb(f));a.b.c.length=0;if(f.c.length!=0){b=(JDb(0,f.c.length),JD(f.c[0],80));for(c=1,d=f.c.length;c>16!=7&&!!b){if(Mhe(a,b))throw Icb(new hfb(OFe+nzd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?jzd(a,d):a.Cb.Qh(a,-1-c,null,d)));!!b&&(d=JD(b,52).Oh(a,1,O3,d));d=izd(a,b,d);!!d&&d.mj()}else (a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,7,b,b))} +function jTd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(Mhe(a,b))throw Icb(new hfb(OFe+mTd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?gTd(a,d):a.Cb.Qh(a,-1-c,null,d)));!!b&&(d=JD(b,52).Oh(a,0,x6,d));d=fTd(a,b,d);!!d&&d.mj()}else (a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,3,b,b))} +function Tib(a,b){Sib();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Xib(a,b)}g=(a.d&-2)<<4;j=fib(a,g);k=fib(b,g);d=Nib(a,eib(j,g));e=Nib(b,eib(k,g));i=Tib(j,k);c=Tib(d,e);f=Tib(Nib(j,d),Nib(e,k));f=Iib(Iib(f,i),c);f=eib(f,g);i=eib(i,g<<1);return Iib(Iib(i,f),c)} +function Byc(){Byc=ndb;zyc=new Dyc(VBe,0);wyc=new Dyc('LONGEST_PATH',1);xyc=new Dyc('LONGEST_PATH_SOURCE',2);tyc=new Dyc('COFFMAN_GRAHAM',3);vyc=new Dyc(Uye,4);Ayc=new Dyc('STRETCH_WIDTH',5);yyc=new Dyc('MIN_WIDTH',6);syc=new Dyc('BF_MODEL_ORDER',7);uyc=new Dyc('DF_MODEL_ORDER',8)} +function zyd(a,b){var c,d,e,f,g,h;if(!a.tb){f=(!a.rb&&(a.rb=new H3d(a,q6,a)),a.rb);h=new Zrb(f.i);for(e=new fKd(f);e.e!=e.i.gc();){d=JD(dKd(e),143);g=d.ve();c=JD(g==null?wsb(h.f,null,d):Qsb(h.i,g,d),143);!!c&&(g==null?wsb(h.f,null,c):Qsb(h.i,g,c))}a.tb=h}return JD(cjb(a.tb,b),143)} +function uWd(a,b){var c,d,e,f,g;(a.i==null&&pWd(a),a.i).length;if(!a.p){g=new Zrb((3*a.g.i/2|0)+1);for(e=new AKd(a.g);e.e!=e.i.gc();){d=JD(zKd(e),179);f=d.ve();c=JD(f==null?wsb(g.f,null,d):Qsb(g.i,f,d),179);!!c&&(f==null?wsb(g.f,null,c):Qsb(g.i,f,c))}a.p=g}return JD(cjb(a.p,b),179)} +function vDb(a,b,c,d,e){var f,g,h,i,j;tDb(d+dz(c,c.ge()),e);uDb(b,xDb(c));f=c.f;!!f&&vDb(a,b,f,'Caused by: ',false);for(h=(c.k==null&&(c.k=SC(iJ,Ote,80,0,0,1)),c.k),i=0,j=h.length;i=0;f+=c?1:-1){g=g|b.c.jg(i,f,c,d&&!Odb(LD(lNb(b.j,(Krc(),Qqc))))&&!Odb(LD(lNb(b.j,(Krc(),wrc)))));g=g|b.q.tg(i,f,c);g=g|HGc(a,i[f],c,d)}bsb(a.c,b);return g} +function l0b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=VXb(a.j),l=0,m=k.length;l1&&(a.a=true);pMb(JD(c.b,68),Gfd(Ifd(JD(b.b,68).c),Qfd(Vfd(Ifd(JD(c.b,68).a),JD(b.b,68).a),e)));uad(a,b);wad(a,c)}} +function URb(a){var b,c,d,e,f,g,h;for(f=new Hmb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}Fnb();gmb(a.j,new t9b)} +function ncc(a){var b,c;c=null;b=JD(amb(a.g,0),17);do{c=b.d.i;if(mNb(c,(Krc(),crc))){return JD(lNb(c,crc),12).i}if(c.k!=(UYb(),RYb)&&Wr(new Yr(Dr(BYb(c).a.Jc(),new Dl)))){b=JD(Xr(new Yr(Dr(BYb(c).a.Jc(),new Dl))),17)}else if(c.k!=RYb){return null}}while(!!c&&c.k!=(UYb(),RYb));return c} +function wkc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=JD(amb(h,h.c.length-1),113);k=(JDb(0,h.c.length),JD(h.c[0],113));j=skc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} +function glc(a,b,c,d){var e,f;e=XD(lNb(c,($xc(),tvc)))===XD((bqc(),$pc));f=JD(lNb(c,svc),16);if(mNb(a,(Krc(),grc))){if(e){if(f.Gc(lNb(a,vvc))&&f.Gc(lNb(b,vvc))){return d*JD(lNb(a,vvc),15).a+JD(lNb(a,grc),15).a}}else{return JD(lNb(a,grc),15).a}}else{return -1}return JD(lNb(a,grc),15).a} +function BIc(a,b,c){var d,e,f,g,h,i,j;j=new Dzb(new nJc(a));for(g=WC(OC(dQ,1),oye,12,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&hc.p){return 1}return 0}else return f.Ob()?1:-1} +function C5c(a,b){var c,d,e,f,g,h;b.Tg(RDe,1);e=JD(Pud(a,(D4c(),t4c)),104);f=(!a.a&&(a.a=new A3d(Q3,a,10,11)),a.a);g=f7c(f);h=$wnd.Math.max(g.a,Reb(MD(Pud(a,(A3c(),x3c))))-(e.b+e.c));d=$wnd.Math.max(g.b,Reb(MD(Pud(a,u3c)))-(e.d+e.a));c=d-g.b;Rud(a,p3c,c);Rud(a,r3c,h);Rud(a,q3c,d+c);b.Ug()} +function MEd(a){var b,c;if((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a).i==0){return IEd(a)}else{b=JD(SFd((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a),0),170);uJd((!b.a&&(b.a=new VXd(K3,b,5)),b.a));Vwd(b,0);Wwd(b,0);Owd(b,0);Pwd(b,0);c=(!a.a&&(a.a=new A3d(M3,a,6,6)),a.a);while(c.i>1){xJd(c,c.i-1)}return b}} +function nie(a,b){lie();var c,d,e,f;if(!b){return kie}else if(b==(lke(),ike)||(b==Sje||b==Qje||b==Rje)&&a!=Pje){return new uie(a,b)}else{d=JD(b,682);c=d.Yk();if(!c){yde(Oce((jie(),hie),b));c=d.Yk()}f=(!c.i&&(c.i=new Yrb),c.i);e=JD(Wd(vsb(f.f,a)),2003);!e&&ejb(f,a,e=new uie(a,b));return e}} +function zFb(a,b){var c,d;d=vzb(a.b,b.b);if(!d){throw Icb(new kfb('Invalid hitboxes for scanline constraint calculation.'))}(tFb(b.b,JD(xzb(a.b,b.b),60))||tFb(b.b,JD(wzb(a.b,b.b),60)))&&(nhb(),String.fromCharCode(10));a.a[b.b.f]=JD(zzb(a.b,b.b),60);c=JD(yzb(a.b,b.b),60);!!c&&(a.a[c.f]=b.b)} +function e9b(a,b){var c,d,e,f,g,h,i,j,k;i=JD(lNb(a,(Krc(),hrc)),12);j=cgd(WC(OC(o2,1),Ote,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=TXb(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.Kf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(Nld(a.u)){d=Jpd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.Kf().a&&(f.d.c=d.c+d.b-f.b.Kf().a)}}} +function lRc(a,b){var c,d,e,f,g;g=new imb;c=b;do{f=JD(bjb(a.b,c),132);f.B=c.c;f.D=c.d;nDb(g.c,f);c=JD(bjb(a.k,c),17)}while(c);d=(JDb(0,g.c.length),JD(g.c[0],132));d.j=true;d.A=JD(d.d.a.ec().Jc().Pb(),17).c.i;e=JD(amb(g,g.c.length-1),132);e.q=true;e.C=JD(e.d.a.ec().Jc().Pb(),17).d.i;return g} +function n2b(a){var b,c;c=JD(lNb(a,($xc(),qwc)),165);b=JD(lNb(a,(Krc(),Vqc)),315);if(c==(Qrc(),Mrc)){oNb(a,qwc,Prc);oNb(a,Vqc,(kqc(),jqc))}else if(c==Orc){oNb(a,qwc,Prc);oNb(a,Vqc,(kqc(),hqc))}else if(b==(kqc(),jqc)){oNb(a,qwc,Mrc);oNb(a,Vqc,iqc)}else if(b==hqc){oNb(a,qwc,Orc);oNb(a,Vqc,iqc)}} +function zOc(){zOc=ndb;xOc=new LOc;tOc=Xbd(new acd,(TQb(),QQb),(Q5b(),m5b));wOc=Vbd(Xbd(new acd,QQb,A5b),SQb,z5b);yOc=Ubd(Ubd(Zbd(Vbd(Xbd(new acd,OQb,K5b),SQb,J5b),RQb),I5b),L5b);uOc=Vbd(Xbd(Xbd(Xbd(new acd,PQb,p5b),RQb,r5b),RQb,s5b),SQb,q5b);vOc=Vbd(Xbd(Xbd(new acd,RQb,s5b),RQb,Z4b),SQb,Y4b)} +function bRc(){bRc=ndb;YQc=Xbd(Vbd(new acd,(TQb(),SQb),(Q5b(),a5b)),QQb,m5b);aRc=Ubd(Ubd(Zbd(Vbd(Xbd(new acd,OQb,K5b),SQb,J5b),RQb),I5b),L5b);ZQc=Vbd(Xbd(Xbd(Xbd(new acd,PQb,p5b),RQb,r5b),RQb,s5b),SQb,q5b);_Qc=Xbd(Xbd(new acd,QQb,A5b),SQb,z5b);$Qc=Vbd(Xbd(Xbd(new acd,RQb,s5b),RQb,Z4b),SQb,Y4b)} +function AOc(a,b,c,d,e){var f,g;if((!vWb(b)&&b.c.i.c==b.d.i.c||!Lfd(cgd(WC(OC(o2,1),Ote,8,0,[e.i.n,e.n,e.a])),c))&&!vWb(b)){b.c==e?$t(b.a,0,new Zfd(c)):Qtb(b.a,new Zfd(c));if(d&&!csb(a.a,c)){g=JD(lNb(b,($xc(),nwc)),78);if(!g){g=new jgd;oNb(b,nwc,g)}f=new Zfd(c);Ttb(g,f,g.c.b,g.c);bsb(a.a,f)}}} +function $s(a,b){var c,d,e,f;f=ddb(Vcb(due,xfb(ddb(Vcb(b==null?0:tb(b),eue)),15)));c=f&a.b.length-1;e=null;for(d=a.b[c];d;e=d,d=d.a){if(d.d==f&&Hb(d.i,b)){!e?(a.b[c]=d.a):(e.a=d.a);Ks(JD(Lub(d.c),593),JD(Lub(d.f),593));Js(JD(Lub(d.b),227),JD(Lub(d.e),227));--a.f;++a.e;return true}}return false} +function M7b(a){var b,c;for(c=new Yr(Dr(yYb(a).a.Jc(),new Dl));Wr(c);){b=JD(Xr(c),17);if(b.c.i.k!=(UYb(),OYb)){throw Icb(new pbd(Gye+wYb(a)+"' 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 mmc(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b?new vmc:new xmc;f=false;do{f=false;j=b?$u(a.b):a.b;for(i=j.Jc();i.Ob();){h=JD(i.Pb(),25);m=Uu(h.a);b||$u(m);for(l=new Hmb(m);l.a=0;g+=e?1:-1){h=b[g];i=d==(mmd(),Tld)?e?CYb(h,d):$u(CYb(h,d)):e?$u(CYb(h,d)):CYb(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Jc();l.Ob();){k=JD(l.Pb(),12);a.d[k.p]=j++}$lb(c,i)}} +function WQc(a,b,c){var d,e,f,g,h,i,j,k;f=Reb(MD(a.b.Jc().Pb()));j=Reb(MD(_q(b.b)));d=Qfd(Ifd(a.a),j-c);e=Qfd(Ifd(b.a),c-f);k=Gfd(d,e);Qfd(k,1/(j-f));this.a=k;this.b=new imb;h=true;g=a.b.Jc();g.Pb();while(g.Ob()){i=Reb(MD(g.Pb()));if(h&&i-c>mCe){this.b.Ec(c);h=false}this.b.Ec(i)}h&&this.b.Ec(c)} +function OGb(a){var b,c,d,e;RGb(a,a.n);if(a.d.c.length>0){Umb(a.c);while(ZGb(a,JD(Fmb(new Hmb(a.e.a)),124))>5;b&=31;if(d>=a.d){return a.e<0?(Whb(),Qhb):(Whb(),Vhb)}f=a.d-d;e=SC(cE,Pue,30,f+1,15,1);Bib(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=Cce((jie(),hie),e,b);if(!c){return true}else{d=c.Gk();return (d>1||d==-1)&&wde(Oce(hie,c))!=3}}}}else{return false}} +function Xjc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;i=a.c.d;j=a.d.d;if(i.j==j.j){return}n=a.b;k=null;h=null;g=jhc(a);if(g&&!!n.i){k=a.b.i.i;h=n.i.j}e=i.j;l=null;while(e!=j.j){l=b==0?pmd(e):nmd(e);f=ckc(e,n.d[e.g],c);m=ckc(l,n.d[l.g],c);g&&!!k&&!!h&&(e==k?Zjc(f,k,h):l==k&&Zjc(m,k,h));Qtb(d,Gfd(f,m));e=l}} +function GGc(a,b,c){var d,e,f,g,h,i;d=uGc(c,a.length);g=a[d];f=vGc(c,g.length);if(g[f].k!=(UYb(),NYb)){return}i=b.j;for(e=0;e0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);OHb(a,xHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==xHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} +function cVb(){this.c=SC(aE,vve,30,(mmd(),WC(OC(J2,1),eye,64,0,[kmd,Uld,Tld,jmd,lmd])).length,15,1);this.b=SC(aE,vve,30,WC(OC(J2,1),eye,64,0,[kmd,Uld,Tld,jmd,lmd]).length,15,1);this.a=SC(aE,vve,30,WC(OC(J2,1),eye,64,0,[kmd,Uld,Tld,jmd,lmd]).length,15,1);Smb(this.c,ove);Smb(this.b,pve);Smb(this.a,pve)} +function ekc(a,b,c,d){var e,f,g,h,i;i=b.i;h=c[i.g][a.d[i.g]];e=false;for(g=new Hmb(b.d);g.a=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||tre(a)}} +function Skc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new jmb(j.c.length);a.c=new Yrb;for(h=new Hmb(j);h.a=0?a.Ih(j,false,true):Zsd(a,c,false),61));n:for(f=l.Jc();f.Ob();){e=JD(f.Pb(),57);for(k=0;ka.d[g.p]){c+=tIc(a.b,f);olb(a.a,zfb(f))}}while(!ulb(a.a)){rIc(a.b,JD(zlb(a.a),15).a)}}return c} +function fbd(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new A3d(Q3,b,10,11)),b.a).i;for(e=new fKd((!b.a&&(b.a=new A3d(Q3,b,10,11)),b.a));e.e!=e.i.gc();){d=JD(dKd(e),26);(!d.a&&(d.a=new A3d(Q3,d,10,11)),d.a).i==0||(f+=fbd(a,d,false))}if(c){g=Czd(b);while(g){f+=(!g.a&&(g.a=new A3d(Q3,g,10,11)),g.a).i;g=Czd(g)}}return f} +function xJd(a,b){var c,d,e,f;if(a.Nj()){d=null;e=a.Oj();a.Rj()&&(d=a.Tj(a.Yi(b),null));c=a.Gj(4,f=VFd(a,b),null,b,e);if(a.Kj()&&f!=null){d=a.Mj(f,d);if(!d){a.Hj(c)}else{d.lj(c);d.mj()}}else{if(!d){a.Hj(c)}else{d.lj(c);d.mj()}}return f}else{f=VFd(a,b);if(a.Kj()&&f!=null){d=a.Mj(f,null);!!d&&d.mj()}return f}} +function lLb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new esb;i=0;for(d=new Hmb(a.d);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.yc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} +function L7b(a,b,c){var d,e,f,g,h,i;for(g=JD(lNb(a,(Krc(),Sqc)),16).Jc();g.Ob();){f=JD(g.Pb(),9);switch(JD(lNb(f,($xc(),qwc)),165).g){case 2:HYb(f,b);break;case 4:HYb(f,c);}for(e=new Yr(Dr(vYb(f).a.Jc(),new Dl));Wr(e);){d=JD(Xr(e),17);if(!!d.c&&!!d.d){continue}h=!d.d;i=JD(lNb(d,lrc),12);h?yWb(d,i):xWb(d,i)}}} +function Lpc(){Lpc=ndb;Cpc=new Mpc('COMMENTS',0);Epc=new Mpc('EXTERNAL_PORTS',1);Fpc=new Mpc('HYPEREDGES',2);Gpc=new Mpc('HYPERNODES',3);Hpc=new Mpc('NON_FREE_PORTS',4);Ipc=new Mpc('NORTH_SOUTH_PORTS',5);Kpc=new Mpc(Yye,6);Bpc=new Mpc('CENTER_LABELS',7);Dpc=new Mpc('END_LABELS',8);Jpc=new Mpc('PARTITIONS',9)} +function HA(a,b,c,d,e){if(d<0){d=wA(a,e,WC(OC(hJ,1),Ote,2,6,[Cue,Due,Eue,Fue,Gue,Hue,Iue,Jue,Kue,Lue,Mue,Nue]),b);d<0&&(d=wA(a,e,WC(OC(hJ,1),Ote,2,6,['Jan','Feb','Mar','Apr',Gue,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function JA(a,b,c,d,e){if(d<0){d=wA(a,e,WC(OC(hJ,1),Ote,2,6,[Cue,Due,Eue,Fue,Gue,Hue,Iue,Jue,Kue,Lue,Mue,Nue]),b);d<0&&(d=wA(a,e,WC(OC(hJ,1),Ote,2,6,['Jan','Feb','Mar','Apr',Gue,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function LA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=pgb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=zA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new mB;j=i.q.getFullYear()-Oue+Oue-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=0?qib(a):cib(qib(Wcb(a))));Rib[b]=Rcb(Zcb(a,b),0)?qib(Zcb(a,b)):cib(qib(Wcb(Zcb(a,b))));a=Vcb(a,5)}for(;b=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} +function sLb(a){var b,c,d,e,f,g,h;f=new Dzb(JD(Qb(new GLb),51));h=pve;for(c=new Hmb(a.d);c.asDe?gmb(i,a.b):d<=sDe&&d>tDe?gmb(i,a.d):d<=tDe&&d>uDe?gmb(i,a.c):d<=uDe&&gmb(i,a.a);f=u2c(a,i,f)}return e} +function OPc(a,b,c,d){var e,f,g,h,i,j;e=(d.c+d.a)/2;_tb(b.j);Qtb(b.j,e);_tb(c.e);Qtb(c.e,e);j=new WPc;for(h=new Hmb(a.f);h.a1;if(h){d=new Yfd(e,c.b);Qtb(b.a,d)}egd(b.a,WC(OC(o2,1),Ote,8,0,[m,l]))} +function YCc(a,b,c){var d,e;if(b=48;c--){Coe[c]=c-48<<24>>24}for(d=70;d>=65;d--){Coe[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){Coe[e]=e-97+10<<24>>24}for(f=0;f<10;f++)Doe[f]=48+f&Bue;for(a=10;a<=15;a++)Doe[a]=65+a-10&Bue} +function UUc(a,b){b.Tg('Process graph bounds',1);oNb(a,(MWc(),tWc),Yub(hBb(XBb(new gCb(null,new Wvb(a.b,16)),new ZUc))));oNb(a,vWc,Yub(hBb(XBb(new gCb(null,new Wvb(a.b,16)),new _Uc))));oNb(a,sWc,Yub(gBb(XBb(new gCb(null,new Wvb(a.b,16)),new bVc))));oNb(a,uWc,Yub(gBb(XBb(new gCb(null,new Wvb(a.b,16)),new dVc))));b.Ug()} +function oQb(a){var b,c,d,e,f;e=JD(lNb(a,($xc(),Nwc)),22);f=JD(lNb(a,Qwc),22);c=new Yfd(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);b=new Zfd(c);if(e.Gc((Vmd(),Rmd))){d=JD(lNb(a,Pwc),8);if(f.Gc((ind(),bnd))){d.a<=0&&(d.a=20);d.b<=0&&(d.b=20)}b.a=$wnd.Math.max(c.a,d.a);b.b=$wnd.Math.max(c.b,d.b)}Odb(LD(lNb(a,Owc)))||pQb(a,c,b)} +function iec(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new Hmb(a.d.b);e.a>19!=0){return '-'+yD(pD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=ZC(ive);c=aD(c,e,true);b=''+xD(YC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} +function Ksb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} +function DUb(a,b,c){var d,e,f,g,h,i,j,k,l;d=c.c;e=c.d;h=lZb(b.c);i=lZb(b.d);if(d==b.c){h=EUb(a,h,e);i=FUb(b.d)}else{h=FUb(b.c);i=EUb(a,i,e)}j=new kgd(b.a);Ttb(j,h,j.a,j.a.a);Ttb(j,i,j.c.b,j.c);g=b.c==d;l=new dVb;for(f=0;f=a.a){return -1}if(!C3b(b,c)){return -1}if(ar(JD(d.Kb(b),20))){return 1}e=0;for(g=JD(d.Kb(b),20).Jc();g.Ob();){f=JD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=D3b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} +function D4c(){D4c=ndb;c4c=new qEd((gjd(),ihd),1.3);l4c=new qEd(Xhd,(Ndb(),false));u4c=new bZb(15);t4c=new qEd(cid,u4c);w4c=new qEd(Qid,15);d4c=phd;k4c=Vhd;m4c=Yhd;n4c=$hd;j4c=Thd;o4c=bid;v4c=uid;A4c=(_3c(),W3c);z4c=V3c;C4c=$3c;B4c=Y3c;s4c=Q3c;r4c=P3c;q4c=O3c;y4c=T3c;g4c=Hhd;h4c=Ihd;f4c=L3c;e4c=K3c;i4c=M3c;x4c=S3c;p4c=N3c} +function bFd(a,b){var c,d,e,f,g,h;if(XD(b)===XD(a)){return true}if(!RD(b,16)){return false}d=JD(b,16);h=a.gc();if(d.gc()!=h){return false}g=d.Jc();if(a.Wi()){for(c=0;c0){a.Zj();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw Icb(new agb('Invalid hexadecimal'))}}} +function kmc(a,b,c,d){var e,f,g,h,i,j;i=pmc(a,c);j=pmc(b,c);e=false;while(!!i&&!!j){if(d||nmc(i,j,c)){g=pmc(i,c);h=pmc(j,c);smc(b);smc(a);f=i.c;o8b(i,false);o8b(j,false);if(c){GYb(b,j.p,f);b.p=j.p;GYb(a,i.p+1,f);a.p=i.p}else{GYb(a,i.p,f);a.p=i.p;GYb(b,j.p+1,f);b.p=j.p}HYb(i,null);HYb(j,null);i=g;j=h;e=true}else{break}}return e} +function Cyc(a){switch(a.g){case 0:return new aEc;case 1:return new uDc;case 3:return new LCc;case 4:return new lDc;case 5:return new oEc;case 6:return new NDc;case 2:return new CDc;case 7:return new uCc;case 8:return new bDc;default:throw Icb(new hfb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} +function yEc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new Hmb(d.j);h.a=b.length){throw Icb(new Cdb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new ZIc(d);NIc(this.e,this.c,(mmd(),lmd));this.i=new ZIc(d);NIc(this.i,this.c,Tld);this.f=new Jgc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(UYb(),NYb);this.a&&Mgc(this,a,b.length)} +function AKb(a,b){var c,d,e,f,g,h;f=!a.B.Gc((ind(),_md));g=a.B.Gc(cnd);a.a=new YHb(g,f,a.c);!!a.n&&bYb(a.a.n,a.n);EIb(a.g,(zHb(),xHb),a.a);if(!b){d=new FIb(1,f,a.c);d.n.a=a.k;_qb(a.p,(mmd(),Uld),d);e=new FIb(1,f,a.c);e.n.d=a.k;_qb(a.p,jmd,e);h=new FIb(0,f,a.c);h.n.c=a.k;_qb(a.p,lmd,h);c=new FIb(0,f,a.c);c.n.b=a.k;_qb(a.p,Tld,c)}} +function pec(a){var b,c,d;b=JD(lNb(a.d,($xc(),Wvc)),222);switch(b.g){case 2:c=gec(a);break;case 3:c=(d=new imb,VBb(SBb(WBb(UBb(UBb(new gCb(null,new Wvb(a.d.b,16)),new vfc),new xfc),new zfc),new Bec),new Bfc(d)),d);break;default:throw Icb(new kfb('Compaction not supported for '+b+' edges.'));}oec(a,c);Efb(new ckb(a.g),new _ec(a))} +function MUc(a,b){var c,d,e,f,g,h,i;b.Tg('Process directions',1);c=JD(lNb(a,(DXc(),bXc)),86);if(c!=(ojd(),jjd)){for(e=Wtb(a.b,0);e.b!=e.d.c;){d=JD(iub(e),40);h=JD(lNb(d,(MWc(),KWc)),15).a;i=JD(lNb(d,LWc),15).a;switch(c.g){case 4:i*=-1;break;case 1:f=h;h=i;i=f;break;case 2:g=h;h=-i;i=g;}oNb(d,KWc,zfb(h));oNb(d,LWc,zfb(i))}}b.Ug()} +function BUb(a){var b,c,d,e,f,g,h,i;i=new NUb;for(h=new Hmb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Ylb(c.e,b)}if(e==(UYb(),PYb)||e==SYb){for(g=new Hmb(b.j);g.aa.d[h.p]){c+=tIc(a.b,f);olb(a.a,zfb(f))}}else{++g}}c+=a.b.d*g;while(!ulb(a.a)){rIc(a.b,JD(zlb(a.a),15).a)}}return c} +function nhe(a){var b,c,d,e,f,g;f=0;b=UTd(a);!!b.ik()&&(f|=4);(a.Bb&YHe)!=0&&(f|=2);if(RD(a,103)){c=JD(a,19);e=X3d(c);(c.Bb&KFe)!=0&&(f|=32);if(e){yWd(sUd(e));f|=8;g=e.t;(g>1||g==-1)&&(f|=16);(e.Bb&KFe)!=0&&(f|=64)}(c.Bb&tve)!=0&&(f|=Mte);f|=GHe}else{if(RD(b,459)){f|=512}else{d=b.ik();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} +function tie(a,b){var c;if(a.f==rie){c=wde(Oce((jie(),hie),b));return a.e?c==4&&b!=(Jje(),Hje)&&b!=(Jje(),Eje)&&b!=(Jje(),Fje)&&b!=(Jje(),Gje):c==2}if(!!a.d&&(a.d.Gc(b)||a.d.Gc(xde(Oce((jie(),hie),b)))||a.d.Gc(Cce((jie(),hie),a.b,b)))){return true}if(a.f){if(Vce((jie(),a.f),zde(Oce(hie,b)))){c=wde(Oce(hie,b));return a.e?c==4:c==2}}return false} +function H8b(a,b){var c,d,e,f,g,h,i,j;f=new imb;b.b.c.length=0;c=JD(PBb(cCb(new gCb(null,new Wvb(new ckb(a.a.b),1))),yAb(new QAb,new OAb,new WAb,WC(OC(HL,1),kue,130,0,[(CAb(),AAb)]))),16);for(e=c.Jc();e.Ob();){d=JD(e.Pb(),15);g=H_b(a.a,d);if(g.b!=0){h=new s$b(b);nDb(f.c,h);h.p=d.a;for(j=Wtb(g,0);j.b!=j.d.c;){i=JD(iub(j),9);HYb(i,h)}}}$lb(b.b,f)} +function dFb(a){var b,c,d,e,f,g,h;h=new Yrb;for(d=new Hmb(a.a.b);d.aSCe&&(e-=SCe);h=JD(Pud(d,zid),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=SCe);f+=b;f>SCe&&(f-=SCe);return Sy(),Wy(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Rdb(isNaN(e),isNaN(f))} +function SYc(a,b,c,d){var e,f,g;if(b){f=Reb(MD(lNb(b,(MWc(),FWc))))+d;g=c+Reb(MD(lNb(b,zWc)))/2;oNb(b,KWc,zfb(ddb(Pcb($wnd.Math.round(f)))));oNb(b,LWc,zfb(ddb(Pcb($wnd.Math.round(g)))));b.d.b==0||SYc(a,JD(yr((e=Wtb((new zTc(b)).a.d,0),new CTc(e))),40),c+Reb(MD(lNb(b,zWc)))+a.b,d+Reb(MD(lNb(b,CWc))));lNb(b,IWc)!=null&&SYc(a,JD(lNb(b,IWc),40),c,d)}} +function esd(a,b){var c,d,e,f;f=JD(Pud(a,(gjd(),xid)),64).g-JD(Pud(b,xid),64).g;if(f!=0){return f}c=JD(Pud(a,sid),15);d=JD(Pud(b,sid),15);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}switch(JD(Pud(a,xid),64).g){case 1:return Xeb(a.i,b.i);case 2:return Xeb(a.j,b.j);case 3:return Xeb(b.i,a.i);case 4:return Xeb(b.j,a.j);default:throw Icb(new kfb(lye));}} +function Gzd(a){var b,c,d;if((a.Db&64)!=0)return Ovd(a);b=new khb(AFe);c=a.k;if(!c){!a.n&&(a.n=new A3d(P3,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new A3d(P3,a,1,7)),JD(SFd(a.n,0),157)).a;!d||ehb(ehb((b.a+=' "',b),d),'"')}}else{ehb(ehb((b.a+=' "',b),c),'"')}ehb(_gb(ehb(_gb(ehb(_gb(ehb(_gb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function Vzd(a){var b,c,d;if((a.Db&64)!=0)return Ovd(a);b=new khb(BFe);c=a.k;if(!c){!a.n&&(a.n=new A3d(P3,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new A3d(P3,a,1,7)),JD(SFd(a.n,0),157)).a;!d||ehb(ehb((b.a+=' "',b),d),'"')}}else{ehb(ehb((b.a+=' "',b),c),'"')}ehb(_gb(ehb(_gb(ehb(_gb(ehb(_gb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function tGc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;n=-1;o=0;for(k=b,l=0,m=k.length;l0&&++o}}}++n}return o} +function Xhc(a,b){var c,d,e,f,g;b==(tAc(),qAc)&&Lnb(JD(Qc(a.a,(Bhc(),xhc)),16));for(e=JD(Qc(a.a,(Bhc(),xhc)),16).Jc();e.Ob();){d=JD(e.Pb(),107);c=JD(amb(d.j,0),113).d.j;f=new kmb(d.j);gmb(f,new Bic);switch(b.g){case 2:Phc(a,f,c,(jic(),hic),1);break;case 1:case 0:g=Rhc(f);Phc(a,new Yjb(f,0,g),c,(jic(),hic),0);Phc(a,new Yjb(f,g,f.c.length),c,hic,1);}}} +function eIc(a){var b,c,d,e,f,g,h;e=JD(lNb(a,(Krc(),Wqc)),9);d=a.j;c=(JDb(0,d.c.length),JD(d.c[0],12));for(g=new Hmb(e.j);g.ae.p){rZb(f,jmd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==jmd&&e.p>a.p){rZb(f,Uld);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} +function _cd(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=JD(cjb(a.a,b),144);if(!e){for(d=(h=(new nkb(a.b)).a.vc().Jc(),new skb(h));d.a.Ob();){c=(f=JD(d.a.Pb(),45),JD(f.kd(),144));g=c.c;i=b.length;if(sgb(g.substr(g.length-i,i),b)&&(b.length==g.length||pgb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&fjb(a.a,b,e)}return e} +function XTb(a,b,c){var d,e,f,g,h,i,j,k,l,m;f=new Yfd(b,c);for(k=new Hmb(a.a);k.a1;if(h){d=new Yfd(e,c.b);Qtb(b.a,d)}egd(b.a,WC(OC(o2,1),Ote,8,0,[m,l]))} +function Czc(){Czc=ndb;Azc=new Dzc(cye,0);vzc=new Dzc('NIKOLOV',1);yzc=new Dzc('NIKOLOV_PIXEL',2);wzc=new Dzc('NIKOLOV_IMPROVED',3);xzc=new Dzc('NIKOLOV_IMPROVED_PIXEL',4);szc=new Dzc('DUMMYNODE_PERCENTAGE',5);zzc=new Dzc('NODECOUNT_PERCENTAGE',6);Bzc=new Dzc('NO_BOUNDARY',7);tzc=new Dzc('MODEL_ORDER_LEFT_TO_RIGHT',8);uzc=new Dzc('MODEL_ORDER_RIGHT_TO_LEFT',9)} +function IBd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;k=null;m=bBd(a,b);d=null;h=JD(Pud(b,(gjd(),Lhd)),300);h?(d=h):(d=(Lmd(),Imd));n=d;if(n==(Lmd(),Imd)){e=null;j=JD(bjb(a.r,m),300);j?(e=j):(e=Jmd);n=e}ejb(a.r,b,n);f=null;i=JD(Pud(b,Jhd),278);i?(f=i):(f=(Bjd(),yjd));l=f;if(l==(Bjd(),yjd)){g=null;c=JD(bjb(a.b,m),278);c?(g=c):(g=xjd);l=g}k=JD(ejb(a.b,b,l),278);return k} +function sqe(a){var b,c,d,e,f;d=a.length;b=new Ygb;f=0;while(f=40;g&&YGb(a);PGb(a);OGb(a);c=SGb(a);d=0;while(!!c&&d0&&Qtb(a.g,f)}else{a.d[g]-=j+1;a.d[g]<=0&&a.a[g]>0&&Qtb(a.f,f)}}}}} +function _Rc(a,b,c,d){var e,f,g,h,i,j,k;i=new Yfd(c,d);Vfd(i,JD(lNb(b,(MWc(),mWc)),8));for(k=Wtb(b.b,0);k.b!=k.d.c;){j=JD(iub(k),40);Gfd(j.e,i);Qtb(a.b,j)}for(h=JD(PBb(RBb(new gCb(null,new Wvb(b.a,16))),yAb(new QAb,new OAb,new WAb,WC(OC(HL,1),kue,130,0,[(CAb(),AAb)]))),16).Jc();h.Ob();){g=JD(h.Pb(),65);for(f=Wtb(g.a,0);f.b!=f.d.c;){e=JD(iub(f),8);e.a+=i.a;e.b+=i.b}Qtb(a.a,g)}} +function GSc(a,b){var c,d,e,f;if(0<(RD(a,18)?JD(a,18).gc():Br(a.Jc()))){e=b;if(1=0&&i1)&&b==1&&JD(a.a[a.b],9).k==(UYb(),OYb)){x7b(JD(a.a[a.b],9),(Lkd(),Hkd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&JD(a.a[a.c-1&a.a.length-1],9).k==(UYb(),OYb)){x7b(JD(a.a[a.c-1&a.a.length-1],9),(Lkd(),Ikd))}else if((a.c-a.b&a.a.length-1)==2){x7b(JD(vlb(a),9),(Lkd(),Hkd));x7b(JD(vlb(a),9),Ikd)}else{u7b(a,e)}qlb(a)} +function $Dc(a){var b,c,d,e,f,g,h,i;i=new Yrb;b=new cGb;for(g=a.Jc();g.Ob();){e=JD(g.Pb(),9);h=GGb(HGb(new IGb,e),b);wsb(i.f,e,h)}for(f=a.Jc();f.Ob();){e=JD(f.Pb(),9);for(d=new Yr(Dr(BYb(e).a.Jc(),new Dl));Wr(d);){c=JD(Xr(d),17);if(vWb(c)){continue}UFb(XFb(WFb(VFb(YFb(new ZFb,$wnd.Math.max(1,JD(lNb(c,($xc(),lxc)),15).a)),1),JD(bjb(i,c.c.i),124)),JD(bjb(i,c.d.i),124)))}}return b} +function BEc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;GEc(a,b,c);f=b[c];n=d?(mmd(),lmd):(mmd(),Tld);if(CEc(b.length,c,d)){e=b[d?c-1:c+1];xEc(a,e,d?(bAc(),_zc):(bAc(),$zc));for(i=f,k=0,m=i.length;kf*2){k=new Mod(l);j=Hod(g)/God(g);i=vod(k,b,new aZb,c,d,e,j);Gfd(Pfd(k.e),i);l.c.length=0;f=0;nDb(l.c,k);nDb(l.c,g);f=Hod(k)*God(k)+Hod(g)*God(g)}else{nDb(l.c,g);f+=Hod(g)*God(g)}}return l} +function iac(a,b){var c,d,e,f,g,h,i;b.Tg('Port order processing',1);i=JD(lNb(a,($xc(),hxc)),421);for(d=new Hmb(a.b);d.ac?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.$l(f.Jk());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=JD(wJd(a,b,c),75);h!=i&&cXd(a,new a2d(a.e,7,g,zfb(h),n.kd(),i));return m}}}else{return JD(UFd(a,b,c),75)}return JD(wJd(a,b,c),75)} +function rGc(a,b){var c,d,e,f,g,h,i,j,k,l;l=0;f=new Dlb;olb(f,b);while(f.b!=f.c){i=JD(zlb(f),218);j=0;k=JD(lNb(b.j,($xc(),Avc)),269);JD(lNb(b.j,tvc),329);g=Reb(MD(lNb(b.j,nvc)));h=Reb(MD(lNb(b.j,ovc)));if(k!=(Mzc(),Jzc)){j+=g*sGc(b.j,i.e,k);j+=h*tGc(b.j,i.e)}l+=jIc(i.d,i.e)+j;for(e=new Hmb(i.b);e.a=0){h=jD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&fD(i);if(f){if(d){YC=pD(a);e&&(YC=vD(YC,(ED(),CD)))}else{YC=_C(a.l,a.m,a.h)}}return i} +function wEc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new Hmb(a.a);h.a0&&(RDb(0,a.length),a.charCodeAt(0)==45||(RDb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw Icb(new agb(nve+a+'"'))}return h} +function Nkc(a){var b,c,d,e,f,g,h;g=new aub;for(f=new Hmb(a.a);f.a=a.length){c.o=0;return true}switch(pgb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=zA(a,b);if(g==0&&b[0]==f){return false}if(b[0]h){h=e;k.c.length=0}e==h&&Ylb(k,new ard(c.c.i,c))}Fnb();gmb(k,a.c);Xlb(a.b,i.p,k)}}} +function GNc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new Hmb(b.b);g.ah){h=e;k.c.length=0}e==h&&Ylb(k,new ard(c.d.i,c))}Fnb();gmb(k,a.c);Xlb(a.f,i.p,k)}}} +function L$b(a){var b,c,d,e,f,g,h;f=Tzd(a);for(e=new fKd((!a.e&&(a.e=new Wge(N3,a,7,4)),a.e));e.e!=e.i.gc();){d=JD(dKd(e),85);h=EEd(JD(SFd((!d.c&&(d.c=new Wge(L3,d,5,8)),d.c),0),84));if(!PEd(h,f)){return true}}for(c=new fKd((!a.d&&(a.d=new Wge(N3,a,8,5)),a.d));c.e!=c.i.gc();){b=JD(dKd(c),85);g=EEd(JD(SFd((!b.b&&(b.b=new Wge(L3,b,4,7)),b.b),0),84));if(!PEd(g,f)){return true}}return false} +function r_b(a){var b,c,d,e,f;d=JD(lNb(a,(Krc(),hrc)),26);f=JD(Pud(d,($xc(),Nwc)),182).Gc((Vmd(),Umd));if(!a.e){e=JD(lNb(a,Rqc),22);b=new Yfd(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Gc((Lpc(),Epc))){Rud(d,bxc,(xld(),sld));Rpd(d,b.a,b.b,false,true)}else{Odb(LD(Pud(d,Owc)))||Rpd(d,b.a,b.b,true,true)}}f?Rud(d,Nwc,Crb(Umd)):Rud(d,Nwc,(c=JD(teb(N2),10),new Krb(c,JD(kDb(c,c.length),10),0)))} +function bSc(a,b){var c,d,e,f,g,h,i,j;j=LD(lNb(b,(DXc(),tXc)));if(j==null||(KDb(j),j)){$Rc(a,b);e=new imb;for(i=Wtb(b.b,0);i.b!=i.d.c;){g=JD(iub(i),40);c=ZRc(a,g,null);if(c){jNb(c,b);nDb(e.c,c)}}a.a=null;a.b=null;if(e.c.length>1){for(d=new Hmb(e);d.a=0&&h!=c){f=new L1d(a,1,h,g,null);!d?(d=f):d.lj(f)}if(c>=0){f=new L1d(a,1,c,h==c?g:null,b);!d?(d=f):d.lj(f)}}return d} +function hQd(a){var b,c,d;if(a.b==null){d=new Xgb;if(a.i!=null){Ugb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){uQd(a.i)||(d.a+='//',d);Ugb(d,a.a)}if(a.d!=null){d.a+='/';Ugb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=z6c(d,m,false),i.a);if(k+h+l<=b.b){x6c(c,f-c.s);c.c=true;x6c(d,f-c.s);B6c(d,c.s,c.t+c.d+h);d.k=true;J6c(c.q,d);n=true;if(e){j7c(b,d);d.j=b;if(a.c.length>g){m7c((JDb(g,a.c.length),JD(a.c[g],186)),d);(JDb(g,a.c.length),JD(a.c[g],186)).a.c.length==0&&cmb(a,g)}}}return n} +function y9b(a,b){var c,d,e,f,g,h;b.Tg('Partition midprocessing',1);e=new Np;VBb(SBb(new gCb(null,new Wvb(a.a,16)),new C9b),new E9b(e));if(e.d==0){return}h=JD(PBb(cCb((f=e.i,new gCb(null,(!f?(e.i=new xf(e,e.c)):f).Lc()))),yAb(new QAb,new OAb,new WAb,WC(OC(HL,1),kue,130,0,[(CAb(),AAb)]))),16);d=h.Jc();c=JD(d.Pb(),15);while(d.Ob()){g=JD(d.Pb(),15);x9b(JD(Qc(e,c),22),JD(Qc(e,g),22));c=g}b.Ug()} +function ixd(a,b){var c,d,e,f,g;if(a.Ab){if(a.Ab){g=a.Ab.i;if(g>0){e=JD(a.Ab.g,1995);if(b==null){for(f=0;fc.s&&hi+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} +function QUc(a,b,c){var d,e,f,g,h,i,j,k;c.Tg(zCe,1);hjb(a.b);hjb(a.a);h=null;f=Wtb(b.b,0);while(!h&&f.b!=f.d.c){j=JD(iub(f),40);Odb(LD(lNb(j,(MWc(),JWc))))&&(h=j)}i=new aub;Ttb(i,h,i.c.b,i.c);PUc(a,i);for(k=Wtb(b.b,0);k.b!=k.d.c;){j=JD(iub(k),40);g=OD(lNb(j,(MWc(),wWc)));e=cjb(a.b,g)!=null?JD(cjb(a.b,g),15).a:0;oNb(j,rWc,zfb(e));d=1+(cjb(a.a,g)!=null?JD(cjb(a.a,g),15).a:0);oNb(j,pWc,zfb(d))}c.Ug()} +function Pgd(a){kdd(a,new vcd(Gcd(Dcd(Fcd(Ecd(new Icd,zEe),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new Sgd)));idd(a,zEe,vxe,Lgd);idd(a,zEe,qxe,15);idd(a,zEe,pxe,zfb(0));idd(a,zEe,AEe,mEd(Fgd));idd(a,zEe,Cxe,mEd(Hgd));idd(a,zEe,Bxe,mEd(Jgd));idd(a,zEe,sxe,yEe);idd(a,zEe,wxe,mEd(Ggd));idd(a,zEe,Vxe,mEd(Igd));idd(a,zEe,BEe,mEd(Dgd));idd(a,zEe,FBe,mEd(Egd))} +function DXb(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return mmd(),kmd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return mmd(),lmd}else if(j+h>g){return mmd(),Tld}break;case 4:case 3:if(k<0){return mmd(),Uld}else if(k+c>f){return mmd(),jmd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(mmd(),lmd):i+d>=1&&i-d>=0?(mmd(),Tld):d<0.5?(mmd(),Uld):(mmd(),jmd)} +function mHb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new zfd;for(j=b.Jc();j.Ob();){h=JD(j.Pb(),837);for(l=new Hmb(h.Pf());l.a0){if(h.a){j=h.b.Kf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=JD(amb(h.c.d,0),187).Kf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(Nld(a.u)){f=Jpd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.Kf().b&&(h.d.a=f.d+f.a-h.b.Kf().b)}}} +function ZOb(){ZOb=ndb;MOb=new qEd((gjd(),Aid),zfb(1));SOb=new qEd(Qid,80);ROb=new qEd(Jid,5);yOb=new qEd(ihd,nxe);NOb=new qEd(Bid,zfb(1));QOb=new qEd(Eid,(Ndb(),true));JOb=new bZb(50);IOb=new qEd(cid,JOb);AOb=Hhd;KOb=qid;zOb=new qEd(uhd,false);HOb=bid;FOb=Xhd;GOb=$hd;EOb=Vhd;DOb=Thd;LOb=uid;COb=(nOb(),gOb);TOb=lOb;BOb=fOb;OOb=iOb;POb=kOb;WOb=Xid;YOb=_id;VOb=Wid;UOb=Vid;XOb=(rnd(),ond);new qEd(Yid,XOb)} +function NC(a,b){var c;switch(PC(a)){case 6:return VD(b);case 7:return TD(b);case 8:return SD(b);case 3:return Array.isArray(b)&&(c=PC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===kte;case 12:return b!=null&&(typeof b===gte||typeof b==kte);case 0:return ID(b,a.__elementTypeId$);case 2:return WD(b)&&!(b.Rm===rdb);case 1:return WD(b)&&!(b.Rm===rdb)||ID(b,a.__elementTypeId$);default:return true;}} +function IKb(a){var b,c,d,e;d=a.o;rKb();if(a.A.dc()||pb(a.A,qKb)){e=d.a}else{a.D?(e=$wnd.Math.max(d.a,zIb(a.f))):(e=zIb(a.f));if(a.A.Gc((Vmd(),Smd))&&!a.B.Gc((ind(),end))){e=$wnd.Math.max(e,zIb(JD($qb(a.p,(mmd(),Uld)),253)));e=$wnd.Math.max(e,zIb(JD($qb(a.p,jmd),253)))}b=tKb(a);!!b&&(e=$wnd.Math.max(e,b.a))}Odb(LD(a.e.Rf().mf((gjd(),Xhd))))?(d.a=$wnd.Math.max(d.a,e)):(d.a=e);c=a.f.i;c.c=0;c.b=e;AIb(a.f)} +function NMb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} +function PPb(a,b){var c,d,e,f,g,h,i;f=0;h=0;i=0;for(e=new Hmb(a.f.e);e.a0&&a.d!=(_Pb(),$Pb)&&(h+=g*(d.d.a+a.a[b.a][d.a]*(b.d.a-d.d.a)/c));c>0&&a.d!=(_Pb(),YPb)&&(i+=g*(d.d.b+a.a[b.a][d.a]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new Yfd(h/f,b.d.b);case 2:return new Yfd(b.d.a,i/f);default:return new Yfd(h/f,i/f);}} +function Kpd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new VXd(K3,a,5)),a.a).i+2;g=new jmb(c);Ylb(g,new Yfd(a.j,a.k));VBb(new gCb(null,(!a.a&&(a.a=new VXd(K3,a,5)),new Wvb(a.a,16))),new fqd(g));Ylb(g,new Yfd(a.b,a.c));b=1;while(b0){qFb(i,false,(ojd(),kjd));qFb(i,true,ljd)}_lb(b.g,new Dfc(a,c));ejb(a.g,b,c)} +function _3c(){_3c=ndb;S3c=new pEd(yDe,(Ndb(),false));zfb(-1);K3c=new pEd(zDe,zfb(-1));zfb(-1);L3c=new pEd(ADe,zfb(-1));M3c=new pEd(BDe,false);N3c=new pEd(CDe,false);Z3c=(f5c(),d5c);Y3c=new pEd(DDe,Z3c);$3c=new pEd(EDe,-1);X3c=(E3c(),D3c);W3c=new pEd(FDe,X3c);V3c=new pEd(GDe,true);R3c=(J5c(),G5c);Q3c=new pEd(HDe,R3c);P3c=new pEd(IDe,false);zfb(1);O3c=new pEd(JDe,zfb(1));U3c=(i6c(),g6c);T3c=new pEd(KDe,U3c)} +function _fb(){_fb=ndb;var a;Xfb=WC(OC(cE,1),Pue,30,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]);Yfb=SC(cE,Pue,30,37,15,1);Zfb=WC(OC(cE,1),Pue,30,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]);$fb=SC(dE,rve,30,37,14,1);for(a=2;a<=36;a++){Yfb[a]=YD($wnd.Math.pow(a,Xfb[a]));$fb[a]=Ncb(Tte,Yfb[a])}} +function Gpd(a){var b;if((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a).i!=1){throw Icb(new hfb(nFe+(!a.a&&(a.a=new A3d(M3,a,6,6)),a.a).i))}b=new jgd;!!FEd(JD(SFd((!a.b&&(a.b=new Wge(L3,a,4,7)),a.b),0),84))&&xe(b,Hpd(a,FEd(JD(SFd((!a.b&&(a.b=new Wge(L3,a,4,7)),a.b),0),84)),false));!!FEd(JD(SFd((!a.c&&(a.c=new Wge(L3,a,5,8)),a.c),0),84))&&xe(b,Hpd(a,FEd(JD(SFd((!a.c&&(a.c=new Wge(L3,a,5,8)),a.c),0),84)),true));return b} +function VNc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(SMc(),RMc)?yYb(b.b):BYb(b.b)):(e=a.a.c==(SMc(),QMc)?yYb(b.b):BYb(b.b));f=false;for(d=new Yr(Dr(e.a.Jc(),new Dl));Wr(d);){c=JD(Xr(d),17);g=Odb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!vWb(c)&&c.c.i.c==c.d.i.c){continue}if(Odb(a.a.n[a.a.g[b.b.p].p])||Odb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(csb(a.b,a.a.g[NNc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} +function SHd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.Nj()){i=a.Oj();_Gd(a,b,c);g=d==1?a.Gj(3,null,c.Jc().Pb(),b,i):a.Gj(5,null,c,b,i);if(a.Kj()){h=d<100?null:new iJd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.Vh()&&rId(new M1d(a.Cb,9,13,c,a.c,dXd(m2d(JD(a.Cb,62)),a)))}else if(RD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.Vh()){b=a.c;RD(b,88)||(b=(HRd(),xRd));RD(c,88)||(c=(HRd(),xRd));rId(new M1d(a.Cb,9,10,c,b,dXd(rWd(JD(a.Cb,29)),a)))}}}}return a.c} +function SYd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=TYd(a,b);c=TYd(a,c);d=f0d(b);if(d){k=f0d(c);if(k!=d){if(!k){return false}else{i=d.kk();o=k.kk();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new VXd(w6,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new VXd(w6,c,1)),c.d);if(f==m.i){for(j=0;j0;h=RFb(b,f);c?gGb(h.b,b):gGb(h.g,b);dGb(h).c.length==1&&(Ttb(d,h,d.c.b,d.c),true);e=new ard(f,b);olb(a.o,e);dmb(a.e.a,f)}} +function rMb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(ufd(a.b).a-ufd(b.b).a);h=$wnd.Math.abs(ufd(a.b).b-ufd(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} +function fRc(a){var b,c,d,e;hRc(a,a.e,a.f,(zRc(),xRc),true,a.c,a.i);hRc(a,a.e,a.f,xRc,false,a.c,a.i);hRc(a,a.e,a.f,yRc,true,a.c,a.i);hRc(a,a.e,a.f,yRc,false,a.c,a.i);gRc(a,a.c,a.e,a.f,a.i);d=new Qjb(a.i,0);while(d.b=65;c--){voe[c]=c-65<<24>>24}for(d=122;d>=97;d--){voe[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){voe[e]=e-48+52<<24>>24}voe[43]=62;voe[47]=63;for(f=0;f<=25;f++)woe[f]=65+f&Bue;for(g=26,i=0;g<=51;++g,i++)woe[g]=97+i&Bue;for(a=52,h=0;a<=61;++a,h++)woe[a]=48+h&Bue;woe[62]=43;woe[63]=47} +function Bhb(a,b){var c,d,e,f,g,h;e=Ehb(a);h=Ehb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*xve)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*xve)+1);if(c>d+1){return e}else if(c0&&(g=bib(g,Zib(d)));return Xhb(f,g)}}else return ej){m=0;n+=i+b;i=0}XTb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new Yfd(c+b,n+i+b)} +function Bpd(a,b){var c,d,e,f,g,h,i;if(!Tzd(a)){throw Icb(new kfb(mFe))}d=Tzd(a);f=d.g;e=d.f;if(f<=0&&e<=0){return mmd(),kmd}h=a.i;i=a.j;switch(b.g){case 2:case 1:if(h<0){return mmd(),lmd}else if(h+a.g>f){return mmd(),Tld}break;case 4:case 3:if(i<0){return mmd(),Uld}else if(i+a.f>e){return mmd(),jmd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(mmd(),lmd):g+c>=1&&g-c>=0?(mmd(),Tld):c<0.5?(mmd(),Uld):(mmd(),jmd)} +function Kib(a,b,c,d,e){var f,g;f=Jcb(Kcb(b[0],yve),Kcb(d[0],yve));a[0]=ddb(f);f=$cb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){jPc(i,i.d-e.d);e.c==(BPc(),zPc)&&hPc(i,i.a-e.d);i.d<=0&&i.i>0&&(Ttb(b,i,b.c.b,b.c),true)}}}for(f=new Hmb(a.f);f.a0){kPc(h,h.i-e.d);e.c==(BPc(),zPc)&&iPc(h,h.b-e.d);h.i<=0&&h.d>0&&(Ttb(c,h,c.c.b,c.c),true)}}}} +function qod(a,b,c,d,e){var f,g,h,i,j,k,l,m,n;Fnb();gmb(a,new Zod);g=Zu(a);n=new imb;m=new imb;h=null;i=0;while(g.b!=0){f=JD(g.b==0?null:(IDb(g.b!=0),$tb(g,g.a.a)),167);if(!h||Hod(h)*God(h)/21&&(i>Hod(h)*God(h)/2||g.b==0)){l=new Mod(m);k=Hod(h)/God(h);j=vod(l,b,new aZb,c,d,e,k);Gfd(Pfd(l.e),j);h=l;nDb(n.c,l);i=0;m.c.length=0}}}$lb(n,m);return n} +function ohb(a,b,c,d,e){nhb();var f,g,h,i,j,k,l;LDb(a,'src');LDb(c,'dest');l=rb(a);i=rb(c);GDb((l.i&4)!=0,'srcType is not an array');GDb((i.i&4)!=0,'destType is not an array');k=l.c;g=i.c;GDb((k.i&1)!=0?k==g:(g.i&1)==0,"Array types don't match");phb(a,b,c,d,e);if((k.i&1)==0&&l!=i){j=KD(a);f=KD(c);if(XD(a)===XD(c)&&bd;){VC(f,h,j[--b])}}else{for(h=d+e;d0);d.a.Xb(d.c=--d.b);l>m+i&&Jjb(d)}for(g=new Hmb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} +function ere(){Tqe();var a,b,c,d,e,f;if(Dqe)return Dqe;a=(++Sqe,new vre(4));sre(a,fre(QJe,true));ure(a,fre('M',true));ure(a,fre('C',true));f=(++Sqe,new vre(4));for(d=0;d<11;d++){pre(f,d,d)}b=(++Sqe,new vre(4));sre(b,fre('M',true));pre(b,4448,4607);pre(b,65438,65439);e=(++Sqe,new gse(2));fse(e,a);fse(e,Cqe);c=(++Sqe,new gse(2));c.Hm(Yqe(f,fre('L',true)));c.Hm(b);c=(++Sqe,new Ire(3,c));c=(++Sqe,new Ore(e,c));Dqe=c;return Dqe} +function Cgb(a,b){var c,d,e,f,g,h,i,j;c=new RegExp(b,'g');i=SC(hJ,Ote,2,0,6,1);d=0;j=a;f=null;while(true){h=c.exec(j);if(h==null||j==''){i[d]=j;break}else{g=h.index;i[d]=(QDb(0,g,j.length),j.substr(0,g));j=Ggb(j,g+h[0].length,j.length);c.lastIndex=0;if(f==j){i[d]=(QDb(0,1,j.length),j.substr(0,1));j=(RDb(1,j.length+1),j.substr(1))}f=j;++d}}if(a.length>0){e=i.length;while(e>0&&i[e-1]==''){--e}ek&&(k=i);ij&&(j=k);n=($wnd.Math.log(j)-$wnd.Math.log(1))/b;f=$wnd.Math.exp(n);e=f;for(g=0;g0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);FHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new Hmb(a.n);d.a1){for(d=Wtb(e,0);d.b!=d.d.c;){c=JD(iub(d),235);f=0;for(i=new Hmb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);GHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=JD(amb(b.n,b.n.c.length-1),208);if(g.e+g.d+c.g+e<=d&&(f=JD(amb(b.n,b.n.c.length-1),208),f.f-a.f+c.f<=a.b||a.a.c.length==1)){r6c(b,c);return true}else if(b.s+c.g<=d&&b.t+b.d+c.f+e<=a.f+a.b){Ylb(b.b,c);h=JD(amb(b.n,b.n.c.length-1),208);Ylb(b.n,new I6c(b.s,h.f+h.a+b.i,b.i));D6c(JD(amb(b.n,b.n.c.length-1),208),c);t6c(b,c);return true}}return false} +function bee(a,b,c,d){var e,f,g,h,i;i=nie(a.e.Ah(),b);e=JD(a.g,122);lie();if(JD(b,69).vk()){for(g=0;g0||Ty(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Ty(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,oMb(a,e,d))}h=$wnd.Math.min(h,eMb(a,f,h,d))}return h} +function ypd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw Icb(new hfb('The vector chain must contain at least a source and a target point.'))}e=(IDb(a.b!=0),JD(a.a.a.c,8));Uwd(b,e.a,e.b);i=new oKd((!b.a&&(b.a=new VXd(K3,b,5)),b.a));g=Wtb(a,1);while(g.a=0&&f!=c){throw Icb(new hfb(FGe))}}e=0;for(i=0;iReb(uFc(g.g,g.d[0]).a)){IDb(i.b>0);i.a.Xb(i.c=--i.b);Pjb(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new imb),h.e).Kc(b);j=(!h.e&&(h.e=new imb),h.e).Kc(c);if(f||j){(!h.e&&(h.e=new imb),h.e).Ec(g);++g.c}}}e||(nDb(d.c,g),true)} +function b0c(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;l=a.a.i+a.a.g/2;m=a.a.i+a.a.g/2;o=b.i+b.g/2;q=b.j+b.f/2;h=new Yfd(o,q);j=JD(Pud(b,(gjd(),zid)),8);j.a=j.a+l;j.b=j.b+m;f=(h.b-j.b)/(h.a-j.a);d=h.b-f*h.a;p=c.i+c.g/2;r=c.j+c.f/2;i=new Yfd(p,r);k=JD(Pud(c,zid),8);k.a=k.a+l;k.b=k.b+m;g=(i.b-k.b)/(i.a-k.a);e=i.b-g*i.a;n=(d-e)/(g-f);if(j.a>>0,'0'+b.toString(16));d='\\x'+Ggb(c,c.length-2,c.length)}else if(a>=tve){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+Ggb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&Bue);}return d} +function z7b(a,b){var c,d,e,f,g,h,i,j,k;for(f=new Hmb(a.b);f.ac){b.Ug();return}switch(JD(lNb(a,($xc(),Txc)),350).g){case 2:f=new anc;break;case 0:f=new Rlc;break;default:f=new dnc;}d=f.mg(a,e);if(!f.ng()){switch(JD(lNb(a,Zxc),351).g){case 2:d=mnc(e,d);break;case 1:d=knc(e,d);}}gnc(a,e,d);b.Ug()} +function eB(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} +function pGc(a,b){var c,d,e,f;Rvb(a.d,a.e);a.c.a.$b();if(Reb(MD(lNb(b.j,($xc(),nvc))))!=0||Reb(MD(lNb(b.j,nvc)))!=0){c=dCe;XD(lNb(b.j,Avc))!==XD((Mzc(),Jzc))&&oNb(b.j,(Krc(),Qqc),(Ndb(),true));f=JD(lNb(b.j,Ixc),15).a;for(e=0;ee&&++j;Ylb(g,(JDb(h+j,b.c.length),JD(b.c[h+j],15)));i+=(JDb(h+j,b.c.length),JD(b.c[h+j],15)).a-d;++c;while(c=q&&a.e[i.p]>o*a.b||t>=c*q){nDb(m.c,h);h=new imb;xe(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new ard(n,m)} +function nWd(a){var b,c,d,e,f,g,h;if(!a.d){h=new tZd;b=gWd;f=b.a.yc(a,b);if(f==null){for(d=new fKd(xWd(a));d.e!=d.i.gc();){c=JD(dKd(d),29);$Ed(h,nWd(c))}b.a.Ac(a)!=null;b.a.gc()==0&&undefined}g=h.i;for(e=(!a.q&&(a.q=new A3d(A6,a,11,10)),new fKd(a.q));e.e!=e.i.gc();++g){JD(dKd(e),403)}$Ed(h,(!a.q&&(a.q=new A3d(A6,a,11,10)),a.q));XFd(h);a.d=new LYd((JD(SFd(vWd((jRd(),iRd).o),9),19),h.i),h.g);a.e=JD(h.g,678);a.e==null&&(a.e=hWd);wWd(a).b&=-17}return a.d} +function iee(a,b,c,d){var e,f,g,h,i,j;j=nie(a.e.Ah(),b);i=0;e=JD(a.g,122);lie();if(JD(b,69).vk()){for(g=0;g1||o==-1){l=JD(p,72);m=JD(k,72);if(l.dc()){m.$b()}else{g=!!X3d(b);f=0;for(h=a.a?l.Jc():l.Gi();h.Ob();){j=JD(h.Pb(),57);e=JD(htb(a,j),57);if(!e){if(a.b&&!g){m.Ei(f,j);++f}}else{if(g){i=m.bd(e);i==-1?m.Ei(f,e):f!=i&&m.Si(f,e)}else{m.Ei(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=htb(a,p);e==null?a.b&&!X3d(b)&&k.Wb(p):k.Wb(e)}}}}} +function B3b(a,b){var c,d,e,f,g,h,i,j;c=new I3b;for(e=new Yr(Dr(yYb(b).a.Jc(),new Dl));Wr(e);){d=JD(Xr(e),17);if(vWb(d)){continue}h=d.c.i;if(C3b(h,z3b)){j=D3b(a,h,z3b,y3b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new imb);Ylb(c.a,h)}}for(g=new Yr(Dr(BYb(b).a.Jc(),new Dl));Wr(g);){f=JD(Xr(g),17);if(vWb(f)){continue}i=f.d.i;if(C3b(i,y3b)){j=D3b(a,i,y3b,z3b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new imb);Ylb(c.c,i)}}return c} +function Y5b(a,b,c,d){var e,f,g,h,i,j,k;if(c.d.i==b.i){return}e=new KYb(a);IYb(e,(UYb(),PYb));oNb(e,(Krc(),hrc),c);oNb(e,($xc(),bxc),(xld(),sld));nDb(d.c,e);g=new sZb;qZb(g,e);rZb(g,(mmd(),lmd));h=new sZb;qZb(h,e);rZb(h,Tld);k=c.d;yWb(c,g);f=new BWb;jNb(f,c);oNb(f,nwc,null);xWb(f,h);yWb(f,k);j=new Qjb(c.b,0);while(j.b1000000){throw Icb(new Adb('power of ten too big'))}if(a<=lte){return eib(dib(Qib[1],b),b)}d=dib(Qib[1],lte);e=d;c=Pcb(a-lte);b=YD(a%lte);while(Lcb(c,lte)>0){e=bib(e,d);c=adb(c,lte)}e=bib(e,dib(Qib[1],b));e=eib(e,lte);c=Pcb(a-lte);while(Lcb(c,lte)>0){e=eib(e,lte);c=adb(c,lte)}e=eib(e,b);return e} +function $2b(a){var b,c,d,e,f,g,h,i,j,k;for(i=new Hmb(a.a);i.aj&&d>j){k=h;j=Reb(b.p[h.p])+Reb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.$g()&&c.ah('bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.$g()&&c.ah(b+' is feasible: '+e);return e} +function k9b(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new KYb(a);IYb(f,(UYb(),SYb));oNb(f,($xc(),bxc),(xld(),sld));e=0;if(b){g=new sZb;oNb(g,(Krc(),hrc),b);oNb(f,hrc,b.i);rZb(g,(mmd(),lmd));qZb(g,f);m=TXb(b.e);for(j=m,k=0,l=j.length;k0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!EA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!EA(b,j,k,0,g)){return 0}}}else{e=-1;if(pgb(k.c,0)==32){l=j[0];CA(b,j);if(j[0]>l){continue}}else if(Egb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!uB(g,c)){return 0}return j[0]} +function RPb(a,b,c){var d,e,f,g,h,i,j,k,l,m;k=new tvb(new fQb(c));h=SC(Fcb,zwe,30,a.f.e.c.length,16,1);Zmb(h,h.length);c[b.a]=0;for(j=new Hmb(a.f.e);j.a=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} +function oWd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new $Yd;h=new $Yd;b=gWd;g=b.a.yc(a,b);if(g==null){for(f=new fKd(xWd(a));f.e!=f.i.gc();){e=JD(dKd(f),29);$Ed(i,oWd(e))}b.a.Ac(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new A3d(G6,a,21,17)),new fKd(a.s));d.e!=d.i.gc();){c=JD(dKd(d),179);RD(c,103)&&YEd(h,JD(c,19))}XFd(h);a.r=new qZd(a,(JD(SFd(vWd((jRd(),iRd).o),6),19),h.i),h.g);$Ed(i,a.r);XFd(i);a.f=new LYd((JD(SFd(vWd(iRd.o),5),19),i.i),i.g);wWd(a).b&=-3}return a.f} +function xxd(){xxd=ndb;vxd=WC(OC(_D,1),Aue,30,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]);wxd=new RegExp('[ \t\n\r\f]+');try{uxd=WC(OC(p7,1),rte,2076,0,[new a0d((OA(),QA("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",TA((SA(),SA(),RA))))),new a0d(QA("yyyy-MM-dd'T'HH:mm:ss'.'SSS",TA((null,RA)))),new a0d(QA("yyyy-MM-dd'T'HH:mm:ss",TA((null,RA)))),new a0d(QA("yyyy-MM-dd'T'HH:mm",TA((null,RA)))),new a0d(QA('yyyy-MM-dd',TA((null,RA))))])}catch(a){a=Hcb(a);if(!RD(a,80))throw Icb(a)}} +function Ijc(a){var b,c,d,e,f,g,h;c=null;h=null;d=JD(lNb(a.b,($xc(),$vc)),348);if(d==(tAc(),rAc)){c=new imb;h=new imb}for(g=new Hmb(a.d);g.ac);return f} +function AGc(a,b){var c,d,e,f;e=Ovb(a.d,1)!=0;d=qGc(a,b);if(d==0&&Odb(LD(lNb(b.j,(Krc(),Qqc))))){return 0}!Odb(LD(lNb(b.j,(Krc(),Qqc))))&&!Odb(LD(lNb(b.j,wrc)))||XD(lNb(b.j,($xc(),Avc)))===XD((Mzc(),Jzc))?b.c.kg(b.e,e):(e=Odb(LD(lNb(b.j,Qqc))));IGc(a,b,e,true);Odb(LD(lNb(b.j,wrc)))&&oNb(b.j,wrc,(Ndb(),false));if(Odb(LD(lNb(b.j,Qqc)))){oNb(b.j,Qqc,(Ndb(),false));oNb(b.j,wrc,true)}c=qGc(a,b);do{DGc(a);if(c==0){return 0}e=!e;f=c;IGc(a,b,e,false);c=qGc(a,b)}while(f>c);return f} +function pQb(a,b,c){var d,e,f,g,h;d=JD(lNb(a,($xc(),Bvc)),22);c.a>b.a&&(d.Gc((_gd(),Vgd))?(a.c.a+=(c.a-b.a)/2):d.Gc(Xgd)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Gc((_gd(),Zgd))?(a.c.b+=(c.b-b.b)/2):d.Gc(Ygd)&&(a.c.b+=c.b-b.b));if(JD(lNb(a,(Krc(),Rqc)),22).Gc((Lpc(),Epc))&&(c.a>b.a||c.b>b.b)){for(h=new Hmb(a.a);h.ab.a&&(d.Gc((_gd(),Vgd))?(a.c.a+=(c.a-b.a)/2):d.Gc(Xgd)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Gc((_gd(),Zgd))?(a.c.b+=(c.b-b.b)/2):d.Gc(Ygd)&&(a.c.b+=c.b-b.b));if(JD(lNb(a,(Krc(),Rqc)),22).Gc((Lpc(),Epc))&&(c.a>b.a||c.b>b.b)){for(g=new Hmb(a.a);g.a=0&&l<=1&&m>=0&&m<=1?Gfd(new Yfd(a.a,a.b),Qfd(new Yfd(b.a,b.b),l)):null}} +function z6c(a,b,c){var d,e,f,g,h,i,j,k,l,m;f=0;g=a.t;e=0;d=0;i=0;m=0;l=0;if(c){a.n.c.length=0;Ylb(a.n,new I6c(a.s,a.t,a.i))}h=0;for(k=new Hmb(a.b);k.a0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ylb(a.n,new I6c(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&D6c(JD(amb(a.n,l),208),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;l7c(a.j)}return new Afd(a.s,a.t,e,d)} +function M$b(a){var b,c,d;c=XD(Pud(a,($xc(),Nvc)))===XD((koc(),hoc))||XD(Pud(a,Nvc))===XD(boc)||XD(Pud(a,Nvc))===XD(doc)||XD(Pud(a,Nvc))===XD(foc)||XD(Pud(a,Nvc))===XD(ioc)||XD(Pud(a,Nvc))===XD(joc);d=XD(Pud(a,wwc))===XD((Byc(),syc))||XD(Pud(a,wwc))===XD(uyc)||XD(Pud(a,vwc))===XD((Czc(),tzc))||XD(Pud(a,vwc))===XD((Czc(),uzc));b=XD(Pud(a,Avc))!==XD((Mzc(),Jzc))||Odb(LD(Pud(a,Cvc)))||XD(Pud(a,mvc))!==XD((tUb(),sUb))||Reb(MD(Pud(a,nvc)))!=0||Reb(MD(Pud(a,ovc)))!=0;return c||d||b} +function kWd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new cZd(a);b=new gZd;c=gWd;h=c.a.yc(a,c);if(h==null){for(g=new fKd(xWd(a));g.e!=g.i.gc();){f=JD(dKd(g),29);$Ed(i,kWd(f))}c.a.Ac(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new A3d(G6,a,21,17)),new fKd(a.s));e.e!=e.i.gc();){d=JD(dKd(e),179);RD(d,335)&&YEd(b,JD(d,38))}XFd(b);a.k=new lZd(a,(JD(SFd(vWd((jRd(),iRd).o),7),19),b.i),b.g);$Ed(i,a.k);XFd(i);a.a=new LYd((JD(SFd(vWd(iRd.o),4),19),i.i),i.g);wWd(a).b&=-2}return a.a} +function O_b(a){var b,c,d,e,f,g,h,i,j,k,l,m;h=a.d;l=JD(lNb(a,(Krc(),Irc)),16);b=JD(lNb(a,zqc),16);if(!l&&!b){return}f=Reb(MD(JAc(a,($xc(),qxc))));g=Reb(MD(JAc(a,rxc)));m=0;if(l){j=0;for(e=l.Jc();e.Ob();){d=JD(e.Pb(),9);j=$wnd.Math.max(j,d.o.b);m+=d.o.a}m+=f*(l.gc()-1);h.d+=j+g}c=0;if(b){j=0;for(e=b.Jc();e.Ob();){d=JD(e.Pb(),9);j=$wnd.Math.max(j,d.o.b);c+=d.o.a}c+=f*(b.gc()-1);h.a+=j+g}i=$wnd.Math.max(m,c);if(i>a.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} +function $de(a,b,c,d){var e,f,g,h,i,j,k;k=nie(a.e.Ah(),b);e=0;f=JD(a.g,122);i=null;lie();if(JD(b,69).vk()){for(h=0;hh?1:-1:Lib(a.a,b.a,f);if(e==-1){l=-i;k=g==i?Oib(b.a,h,a.a,f):Jib(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Whb(),Vhb}k=Oib(a.a,f,b.a,h)}else{k=Jib(a.a,f,b.a,h)}}j=new jib(l,k.length,k);Yhb(j);return j} +function J$b(a,b){var c,d,e,f;f=E$b(b);!b.c&&(b.c=new A3d(R3,b,9,9));VBb(new gCb(null,(!b.c&&(b.c=new A3d(R3,b,9,9)),new Wvb(b.c,16))),new $$b(f));e=JD(lNb(f,(Krc(),Rqc)),22);D$b(b,e);if(e.Gc((Lpc(),Epc))){for(d=new fKd((!b.c&&(b.c=new A3d(R3,b,9,9)),b.c));d.e!=d.i.gc();){c=JD(dKd(d),125);O$b(a,b,f,c)}}JD(Pud(b,($xc(),Nwc)),182).gc()!=0&&A$b(b,f);Odb(LD(lNb(f,Uwc)))&&e.Ec(Jpc);mNb(f,pxc)&&hyc(new ryc(Reb(MD(lNb(f,pxc)))),f);XD(Pud(b,ewc))===XD((Bkd(),ykd))?K$b(a,b,f):I$b(a,b,f);return f} +function lse(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=SC(_D,Aue,30,f,15,1);QDb(0,f,a.length);QDb(0,f,i.length);ugb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?Ggb(c.a,0,f-1):''}}else{return !c?a:c.a}} +function PHc(a,b,c){var d,e,f;if(mNb(b,($xc(),qwc))&&(XD(lNb(b,qwc))===XD((Qrc(),Mrc))||XD(lNb(b,qwc))===XD(Orc))||mNb(c,qwc)&&(XD(lNb(c,qwc))===XD((Qrc(),Mrc))||XD(lNb(c,qwc))===XD(Orc))){return 0}d=xYb(b);e=OHc(a,b,c);if(e!=0){return e}if(mNb(b,(Krc(),grc))&&mNb(c,grc)){f=ofb(glc(b,c,d,JD(lNb(d,frc),15).a),glc(c,b,d,JD(lNb(d,frc),15).a));XD(lNb(d,tvc))===XD((bqc(),aqc))&&XD(lNb(b,vvc))!==XD(lNb(c,vvc))&&(f=0);if(f<0){QHc(a,b,c);return f}else if(f>0){QHc(a,c,b);return f}}return NHc(a,b,c)} +function g2c(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(d=new Yr(Dr(DEd(b).a.Jc(),new Dl));Wr(d);){c=JD(Xr(d),85);if(!RD(SFd((!c.b&&(c.b=new Wge(L3,c,4,7)),c.b),0),193)){i=EEd(JD(SFd((!c.c&&(c.c=new Wge(L3,c,5,8)),c.c),0),84));if(!uwd(c)){g=b.i+b.g/2;h=b.j+b.f/2;k=i.i+i.g/2;l=i.j+i.f/2;m=new Wfd;m.a=k-g;m.b=l-h;f=new Yfd(m.a,m.b);efd(f,b.g,b.f);m.a-=f.a;m.b-=f.b;g=k-m.a;h=l-m.b;j=new Yfd(m.a,m.b);efd(j,i.g,i.f);m.a-=j.a;m.b-=j.b;k=g+m.a;l=h+m.b;e=MEd(c);Vwd(e,g);Wwd(e,h);Owd(e,k);Pwd(e,l);g2c(a,i)}}}} +function sre(a,b){var c,d,e,f,g;g=JD(b,137);tre(a);tre(g);if(g.b==null)return;a.c=true;if(a.b==null){a.b=SC(cE,Pue,30,g.b.length,15,1);ohb(g.b,0,a.b,0,g.b.length);return}f=SC(cE,Pue,30,a.b.length+g.b.length,15,1);for(c=0,d=0,e=0;c=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Be(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=ove;a.p=ove;for(f=new Hmb(a.b);f.a0){e=(!a.n&&(a.n=new A3d(P3,a,1,7)),JD(SFd(a.n,0),157)).a;!e||ehb(ehb((b.a+=' "',b),e),'"')}}else{ehb(ehb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new Wge(L3,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new Wge(L3,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);ehb(b,Eb(new Gb,new fKd(a.b)));c&&(b.a+=']',b);b.a+=jye;c&&(b.a+='[',b);ehb(b,Eb(new Gb,new fKd(a.c)));c&&(b.a+=']',b);return b.a} +function X6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=bmb(v.a,a,0);d=bmb(w.a,b,0);t=JD(DYb(a,(bAc(),$zc)).Jc().Pb(),12);C=JD(DYb(a,_zc).Jc().Pb(),12);u=JD(DYb(b,$zc).Jc().Pb(),12);D=JD(DYb(b,_zc).Jc().Pb(),12);r=TXb(t.e);A=TXb(C.g);s=TXb(u.e);B=TXb(D.g);GYb(a,d,w);for(g=s,k=0,o=g.length;k0&&!!i[d]&&(o=DAc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new Hmb(k.e);f.ak){new xPc((BPc(),APc),c,b,j-k)}else if(j>0&&k>0){new xPc((BPc(),APc),b,c,0);new xPc(APc,c,b,0)}}return g} +function LTc(a,b,c){var d,e,f;a.a=new imb;for(f=Wtb(b.b,0);f.b!=f.d.c;){e=JD(iub(f),40);while(JD(lNb(e,(DXc(),BXc)),15).a>a.a.c.length-1){Ylb(a.a,new ard(dCe,xCe))}d=JD(lNb(e,BXc),15).a;if(c==(ojd(),kjd)||c==ljd){e.e.aReb(MD(JD(amb(a.a,d),49).b))&&_qd(JD(amb(a.a,d),49),e.e.a+e.f.a)}else{e.e.bReb(MD(JD(amb(a.a,d),49).b))&&_qd(JD(amb(a.a,d),49),e.e.b+e.f.b)}}} +function HXb(a,b,c,d){var e,f,g,h,i,j,k;f=JXb(d);h=Odb(LD(lNb(d,($xc(),Cwc))));if((h||Odb(LD(lNb(a,iwc))))&&!zld(JD(lNb(a,bxc),102))){e=rmd(f);i=RXb(a,c,c==(bAc(),_zc)?e:omd(e))}else{i=new sZb;qZb(i,a);if(b){k=i.n;k.a=b.a-a.n.a;k.b=b.b-a.n.b;Hfd(k,0,0,a.o.a,a.o.b);rZb(i,DXb(i,f))}else{e=rmd(f);rZb(i,c==(bAc(),_zc)?e:omd(e))}g=JD(lNb(d,(Krc(),Rqc)),22);j=i.j;switch(f.g){case 2:case 1:(j==(mmd(),Uld)||j==jmd)&&g.Ec((Lpc(),Ipc));break;case 4:case 3:(j==(mmd(),Tld)||j==lmd)&&g.Ec((Lpc(),Ipc));}}return i} +function uRb(a,b){var c,d,e,f,g,h;for(g=new Cjb((new tjb(a.f.b)).a);g.b;){f=Ajb(g);e=JD(f.jd(),591);if(b==1){if(e.yf()!=(ojd(),njd)&&e.yf()!=jjd){continue}}else{if(e.yf()!=(ojd(),kjd)&&e.yf()!=ljd){continue}}d=JD(JD(f.kd(),49).b,82);h=JD(JD(f.kd(),49).a,194);c=h.c;switch(e.yf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} +function DMc(a,b){var c,d,e,f,g,h,i,j,k,l;b.Tg('Simple node placement',1);l=JD(lNb(a,(Krc(),yrc)),316);h=0;for(f=new Hmb(a.b);f.a1){throw Icb(new hfb(aJe))}if(!i){f=mie(b,d.Jc().Pb());g.Ec(f)}}return ZEd(a,eee(a,b,c),g)} +function Dee(a,b,c){var d,e,f,g,h,i,j,k;if(oie(a.e,b)){i=(lie(),JD(b,69).vk()?new mje(b,a):new Cie(b,a));_de(i.c,i.b);yie(i,JD(c,18))}else{k=nie(a.e.Ah(),b);d=JD(a.g,122);for(g=0;g'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';p0d(a.b,b)}else{if(a.f){b.a+=' extends ';p0d(a.f,b)}}}} +function S8d(a){a.b=null;a.a=null;a.o=null;a.q=null;a.v=null;a.w=null;a.B=null;a.p=null;a.Q=null;a.R=null;a.S=null;a.T=null;a.U=null;a.V=null;a.W=null;a.bb=null;a.eb=null;a.ab=null;a.H=null;a.db=null;a.c=null;a.d=null;a.f=null;a.n=null;a.r=null;a.s=null;a.u=null;a.G=null;a.J=null;a.e=null;a.j=null;a.i=null;a.g=null;a.k=null;a.t=null;a.F=null;a.I=null;a.L=null;a.M=null;a.O=null;a.P=null;a.$=null;a.N=null;a.Z=null;a.cb=null;a.K=null;a.D=null;a.A=null;a.C=null;a._=null;a.fb=null;a.X=null;a.Y=null;a.gb=false;a.hb=false} +function Fhb(a){var b,c,d,e;d=Hib((!a.c&&(a.c=vib(Pcb(a.f))),a.c),0);if(a.e==0||a.a==0&&a.f!=-1&&a.e<0){return d}b=Ehb(a)<0?1:0;c=a.e;e=(d.length+1+$wnd.Math.abs(YD(a.e)),new jhb);b==1&&(e.a+='-',e);if(a.e>0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>thb.length;c-=thb.length){fhb(e,thb)}ghb(e,thb,YD(c));ehb(e,(RDb(b,d.length+1),d.substr(b)))}else{c=b-c;ehb(e,Ggb(d,b,YD(c)));e.a+='.';ehb(e,Fgb(d,YD(c)))}}else{ehb(e,(RDb(b,d.length+1),d.substr(b)));for(;c<-thb.length;c+=thb.length){fhb(e,thb)}ghb(e,thb,YD(-c))}return e.a} +function XKc(a){var b,c,d,e,f,g,h,i,j;if(a.k!=(UYb(),RYb)){return false}if(a.j.c.length<=1){return false}f=JD(lNb(a,($xc(),bxc)),102);if(f==(xld(),sld)){return false}e=(Yyc(),(!a.q?(Fnb(),Fnb(),Dnb):a.q)._b(Kwc)?(d=JD(lNb(a,Kwc),203)):(d=JD(lNb(xYb(a),Lwc),203)),d);if(e==Wyc){return false}if(!(e==Vyc||e==Uyc)){g=Reb(MD(JAc(a,Hxc)));b=JD(lNb(a,Gxc),140);!b&&(b=new qYb(g,g,g,g));j=CYb(a,(mmd(),lmd));i=b.d+b.a+(j.gc()-1)*g;if(i>a.o.b){return false}c=CYb(a,Tld);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} +function pOc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;b.Tg('Orthogonal edge routing',1);j=Reb(MD(lNb(a,($xc(),Exc))));c=Reb(MD(lNb(a,uxc)));d=Reb(MD(lNb(a,xxc)));m=new nQc(0,c);q=0;g=new Qjb(a.b,0);h=null;k=null;i=null;l=null;do{k=g.b0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n0}else{h=JD(lNb(a.c.i,Vwc),15).a;f=JD(PBb(SBb(b.Mc(),new $9b(h)),yAb(new QAb,new OAb,new WAb,WC(OC(HL,1),kue,130,0,[(CAb(),AAb)]))),16);g=new aub;k=new esb;Qtb(g,a.c.i);bsb(k,a.c.i);while(g.b!=0){c=JD(g.b==0?null:(IDb(g.b!=0),$tb(g,g.a.a)),9);if(f.Gc(c)){return true}for(e=new Yr(Dr(BYb(c).a.Jc(),new Dl));Wr(e);){d=JD(Xr(e),17);i=d.d.i;if(!k.a._b(i)){k.a.yc(i,k);Ttb(g,i,g.c.b,g.c)}}}return false}} +function A5c(a,b,c){var d,e,f,g,h,i,j,k,l;l=new imb;k=new o7c(0,c);f=0;j7c(k,new C6c(0,0,k,c));e=0;for(j=new fKd(a);j.e!=j.i.gc();){i=JD(dKd(j),26);d=JD(amb(k.a,k.a.c.length-1),173);h=e+i.g+(JD(amb(k.a,0),173).b.c.length==0?0:c);if(h>b||Odb(LD(Pud(i,(D4c(),i4c))))){e=0;f+=k.b+c;nDb(l.c,k);k=new o7c(f,c);d=new C6c(0,k.f,k,c);j7c(k,d);e=0}if(d.b.c.length==0||!Odb(LD(Pud(Czd(i),(D4c(),r4c))))&&(i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f)){r6c(d,i)}else{g=new C6c(d.s+d.r+c,k.f,k,c);j7c(k,g);r6c(g,i)}e=i.i+i.g}nDb(l.c,k);return l} +function qre(a){var b,c,d,e;if(a.b==null||a.b.length<=2)return;if(a.a)return;b=0;e=0;while(e=a.b[e+1]){e+=2}else if(c0){d=new kmb(JD(Qc(a.a,f),22));Fnb();gmb(d,new lWb(b));e=new Qjb(f.b,0);while(e.b0&&d>=-6){if(d>=0){hhb(f,c-YD(a.e),String.fromCharCode(46))}else{wdb(f,b-1,b-1,'0.');hhb(f,b+1,Pgb(thb,0,-YD(d)-1))}}else{if(c-b>=1){hhb(f,b,String.fromCharCode(46));++c}hhb(f,c,String.fromCharCode(69));d>0&&hhb(f,++c,String.fromCharCode(43));hhb(f,++c,''+edb(Pcb(d)))}a.g=f.a;return a.g} +function eKc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;d=Reb(MD(lNb(b,($xc(),Jwc))));v=JD(lNb(b,Ixc),15).a;m=4;e=3;w=20/v;n=false;i=0;g=lte;do{f=i!=1;l=i!=0;A=0;for(q=a.a,s=0,u=q.length;sv)){i=2;g=lte}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A=tve?Ugb(c,oqe(d)):Qgb(c,d&Bue);g=(++Sqe,new cse(10,null,0));jxb(a.a,g,h-1)}else{c=(g.Km().length+f,new Ygb);Ugb(c,g.Km())}if(b.e==0){d=b.Im();d>=tve?Ugb(c,oqe(d)):Qgb(c,d&Bue)}else{Ugb(c,b.Km())}JD(g,517).b=c.a} +function gnc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Jc();o=JD(d.Pb(),15).a;while(h0?1:Rdb(isNaN(d),isNaN(0)))>=0^(null,Wy(hCe),($wnd.Math.abs(h)<=hCe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Rdb(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}Wy(hCe);if(($wnd.Math.abs(d)<=hCe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Rdb(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} +function HKb(a){var b,c,d,e;e=a.o;rKb();if(a.A.dc()||pb(a.A,qKb)){b=e.b}else{a.D?(b=$wnd.Math.max(e.b,yIb(a.f))):(b=yIb(a.f));if(a.A.Gc((Vmd(),Smd))&&!a.B.Gc((ind(),end))){b=$wnd.Math.max(b,yIb(JD($qb(a.p,(mmd(),Tld)),253)));b=$wnd.Math.max(b,yIb(JD($qb(a.p,lmd),253)))}c=tKb(a);!!c&&(b=$wnd.Math.max(b,c.b));if(a.A.Gc(Tmd)){if(a.q==(xld(),tld)||a.q==sld){b=$wnd.Math.max(b,sHb(JD($qb(a.b,(mmd(),Tld)),127)));b=$wnd.Math.max(b,sHb(JD($qb(a.b,lmd),127)))}}}Odb(LD(a.e.Rf().mf((gjd(),Xhd))))?(e.b=$wnd.Math.max(e.b,b)):(e.b=b);d=a.f.i;d.d=0;d.a=b;BIb(a.f)} +function N4c(a,b,c,d,e,f,g,h){var i,j,k,l;i=Wu(WC(OC(B0,1),rte,238,0,[b,c,d,e]));l=null;switch(a.b.g){case 1:l=Wu(WC(OC(k0,1),rte,523,0,[new Z4c,new P4c,new R4c]));break;case 0:l=Wu(WC(OC(k0,1),rte,523,0,[new R4c,new P4c,new Z4c]));break;case 2:l=Wu(WC(OC(k0,1),rte,523,0,[new P4c,new Z4c,new R4c]));}for(k=new Hmb(l);k.a1&&(i=j.Gg(i,a.a,h))}if(i.c.length==1){return JD(amb(i,i.c.length-1),238)}if(i.c.length==2){return M4c((JDb(0,i.c.length),JD(i.c[0],238)),(JDb(1,i.c.length),JD(i.c[1],238)),g,f)}return null} +function SGd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;e=new nC(a);f=new dCd;d=(qo(f.n),qo(f.p),hjb(f.c),qo(f.f),qo(f.o),hjb(f.q),hjb(f.d),hjb(f.g),hjb(f.k),hjb(f.e),hjb(f.i),hjb(f.j),hjb(f.r),hjb(f.b),m=$Bd(f,e,null),XBd(f,e),m);if(b){i=new nC(b);g=TGd(i);zpd(d,WC(OC(r3,1),rte,524,0,[g]))}l=false;k=false;if(c){i=new nC(c);LGe in i.a&&(l=iC(i,LGe).oe().a);MGe in i.a&&(k=iC(i,MGe).oe().a)}j=Xnd(Znd(new _nd,l),k);kbd(new nbd,d,j);LGe in e.a&&kC(e,LGe,null);if(l||k){h=new mC;PGd(j,h,l,k);kC(e,LGe,h)}n=new iDd(f);dte(new BGd(d),n);o=new kDd(f);dte(new BGd(d),o)} +function YVc(a,b,c){var d,e,f,g,h,i,j;c.Tg('Find roots',1);a.a.c.length=0;for(e=Wtb(b.b,0);e.b!=e.d.c;){d=JD(iub(e),40);if(d.b.b==0){oNb(d,(MWc(),JWc),(Ndb(),true));Ylb(a.a,d)}}switch(a.a.c.length){case 0:f=new xTc(0,b,'DUMMY_ROOT');oNb(f,(MWc(),JWc),(Ndb(),true));oNb(f,qWc,true);Qtb(b.b,f);break;case 1:break;default:g=new xTc(0,b,vCe);for(i=new Hmb(a.a);i.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new BLd(a.i,a.g);c=a.i;f=c<100?null:new iJd(c);if(a.Rj()){for(d=0;d0){h=a.g;j=a.i;QFd(a);f=j<100?null:new iJd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&dve;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=dve;u+=p>>22;p&=dve;u&=eve;return _C(m,p,u)} +function l4b(a){var b,c,d,e,f,g,h;h=JD(amb(a.j,0),12);if(h.g.c.length!=0&&h.e.c.length!=0){throw Icb(new kfb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=ove;for(c=new Hmb(h.g);c.a0&&XBc(a,h,l)}for(e=new Hmb(l);e.a4){if(a.dk(b)){if(a.$k()){e=JD(b,52);d=e.Bh();i=d==a.e&&(a.kl()?e.vh(e.Ch(),a.gl())==a.hl():-1-e.Ch()==a.Jj());if(a.ll()&&!i&&!d&&!!e.Gh()){for(f=0;fa.d[g.p]){c+=tIc(a.b,f)*JD(i.b,15).a;olb(a.a,zfb(f))}}while(!ulb(a.a)){rIc(a.b,JD(zlb(a.a),15).a)}}return c} +function cCc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;b.Tg($Be,1);n=new imb;k=$wnd.Math.max(a.a.c.length,JD(lNb(a,(Krc(),frc)),15).a);c=k*JD(lNb(a,Bqc),15).a;h=XD(lNb(a,($xc(),pvc)))===XD((bqc(),$pc));for(p=new Hmb(a.a);p.a0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}oNb(a,(Krc(),qrc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=vld&&b!=wld&&h!=kmd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} +function XHd(a){var b,c,d,e,f,g,h,i,j,k;if(a.Nj()){k=a.Cj();i=a.Oj();if(k>0){b=new aGd(a.nj());c=k;f=c<100?null:new iJd(c);cHd(a,c,b.g);e=c==1?a.Gj(4,SFd(b,0),null,0,i):a.Gj(6,b,null,-1,i);if(a.Kj()){for(d=new fKd(b);d.e!=d.i.gc();){f=a.Mj(dKd(d),f)}if(!f){a.Hj(e)}else{f.lj(e);f.mj()}}else{if(!f){a.Hj(e)}else{f.lj(e);f.mj()}}}else{cHd(a,a.Cj(),a.Dj());a.Hj(a.Gj(6,(Fnb(),Cnb),null,-1,i))}}else if(a.Kj()){k=a.Cj();if(k>0){h=a.Dj();j=k;cHd(a,k,h);f=j<100?null:new iJd(j);for(d=0;d1&&Hod(g)*God(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Yjb(p,0,f+1);l=new Mod(o);k=Hod(g)/God(g);i=vod(l,b,new aZb,c,d,e,k);Gfd(Pfd(l.e),i);PDb(pvb(m,l),Bve);n=new Yjb(p,f+1,p.c.length);mvb(m,n);p.c.length=0;j=0;Wmb(h,h.length,0)}else{q=m.b.c.length==0?null:amb(m.b,0);q!=null&&svb(m,0);j>0&&(h[j]=h[j-1]);h[j]+=Hod(g)*God(g);++j;nDb(p.c,g)}}return p} +function _hc(a,b){var c,d,e,f;c=b.b;f=new kmb(c.j);e=0;d=c.j;d.c.length=0;Nhc(JD(Yi(a.b,(mmd(),Uld),(jic(),iic)),16),c);e=Ohc(f,e,new Hic,d);Nhc(JD(Yi(a.b,Uld,hic),16),c);e=Ohc(f,e,new Jic,d);Nhc(JD(Yi(a.b,Uld,gic),16),c);Nhc(JD(Yi(a.b,Tld,iic),16),c);Nhc(JD(Yi(a.b,Tld,hic),16),c);e=Ohc(f,e,new Lic,d);Nhc(JD(Yi(a.b,Tld,gic),16),c);Nhc(JD(Yi(a.b,jmd,iic),16),c);e=Ohc(f,e,new Nic,d);Nhc(JD(Yi(a.b,jmd,hic),16),c);e=Ohc(f,e,new Pic,d);Nhc(JD(Yi(a.b,jmd,gic),16),c);Nhc(JD(Yi(a.b,lmd,iic),16),c);e=Ohc(f,e,new tic,d);Nhc(JD(Yi(a.b,lmd,hic),16),c);Nhc(JD(Yi(a.b,lmd,gic),16),c)} +function j8b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;b.Tg('Layer size calculation',1);k=ove;j=pve;e=false;for(h=new Hmb(a.b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} +function S7b(a){var b,c,d,e,f;d=JD(lNb(a,($xc(),qwc)),165);if(d==(Qrc(),Mrc)){for(c=new Yr(Dr(yYb(a).a.Jc(),new Dl));Wr(c);){b=JD(Xr(c),17);if(!U7b(b)){throw Icb(new pbd(Gye+wYb(a)+"' 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(d==Orc){for(f=new Yr(Dr(BYb(a).a.Jc(),new Dl));Wr(f);){e=JD(Xr(f),17);if(!U7b(e)){throw Icb(new pbd(Gye+wYb(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} +function wbd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.c>19!=0){b=pD(b);i=!i}g=hD(b);f=false;e=false;d=false;if(a.h==fve&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=$C((ED(),AD));d=true;i=!i}else{h=tD(a,g);i&&fD(h);c&&(YC=_C(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=pD(a);d=true;i=!i}if(g!=-1){return cD(a,g,i,f,c)}if(mD(a,b)<0){c&&(f?(YC=pD(a)):(YC=_C(a.l,a.m,a.h)));return _C(0,0,0)}return dD(d?a:_C(a.l,a.m,a.h),b,i,f,e,c)} +function Iib(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=Kcb(a.a[0],yve);d=Kcb(b.a[0],yve);if(g==i){k=Jcb(c,d);o=ddb(k);n=ddb(_cb(k,32));return n==0?new hib(g,o):new jib(g,2,WC(OC(cE,1),Pue,30,15,[o,n]))}return Whb(),Rcb(g<0?adb(d,c):adb(c,d),0)?qib(g<0?adb(d,c):adb(c,d)):cib(qib(Wcb(g<0?adb(d,c):adb(c,d))))}else if(g==i){m=g;l=f>=h?Jib(a.a,f,b.a,h):Jib(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:Lib(a.a,b.a,f);if(e==0){return Whb(),Vhb}if(e==1){m=g;l=Oib(a.a,f,b.a,h)}else{m=i;l=Oib(b.a,h,a.a,f)}}j=new jib(m,l.length,l);Yhb(j);return j} +function eRc(a,b){var c,d,e,f,g,h,i;if(a.g>b.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Jc();g.Ob();){e=JD(g.Pb(),12);WRc(cgd(WC(OC(o2,1),Ote,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Jc();h.Ob();){e=JD(h.Pb(),12);WRc(cgd(WC(OC(o2,1),Ote,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Jc();i.Ob();){e=JD(i.Pb(),12);WRc(cgd(WC(OC(o2,1),Ote,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Jc();f.Ob();){e=JD(f.Pb(),12);WRc(cgd(WC(OC(o2,1),Ote,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){return c}switch(wde(Oce(a,c))){case 2:{if(sgb('',Mce(a,c.ok()).ve())){i=zde(Oce(a,c));h=yde(Oce(a,c));k=Pce(a,b,i,h);if(k){return k}e=Dce(a,b);for(g=0,l=e.gc();g1){throw Icb(new hfb(aJe))}k=nie(a.e.Ah(),b);d=JD(a.g,122);for(g=0;g1;for(j=new OZb(m.b);Emb(j.a)||Emb(j.b);){i=JD(Emb(j.a)?Fmb(j.a):Fmb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(cgd(WC(OC(o2,1),Ote,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&AOc(a,i,g,f,m)}}} +function RQc(a){var b,c,d,e,f,g;e=new Qjb(a.e,0);d=new Qjb(a.a,0);if(a.d){for(c=0;cmCe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);QQc(a,a.b-g,f,d,e);IDb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} +function vle(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} +function i2b(a,b,c){var d,e,f,g;c.Tg('Graph transformation ('+a.a+')',1);g=Uu(b.a);for(f=new Hmb(b.b);f.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new oTb((OSb(),KSb));UTb(a,_Sb,new tnb(WC(OC(cP,1),rte,377,0,[d])));g=new oTb(NSb);UTb(a,$Sb,new tnb(WC(OC(cP,1),rte,377,0,[g])));e=new oTb(LSb);UTb(a,ZSb,new tnb(WC(OC(cP,1),rte,377,0,[e])));f=new oTb(MSb);UTb(a,YSb,new tnb(WC(OC(cP,1),rte,377,0,[f])));eTb(d.c,KSb);eTb(e.c,LSb);eTb(f.c,MSb);eTb(g.c,NSb);h.a.c.length=0;$lb(h.a,d.c);$lb(h.a,$u(e.c));$lb(h.a,f.c);$lb(h.a,$u(g.c));return h} +function V5c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;b.Tg(RDe,1);n=Reb(MD(Pud(a,(A3c(),z3c))));g=Reb(MD(Pud(a,(D4c(),w4c))));h=JD(Pud(a,t4c),104);i7c((!a.a&&(a.a=new A3d(Q3,a,10,11)),a.a));k=A5c((!a.a&&(a.a=new A3d(Q3,a,10,11)),a.a),n,g);!a.a&&(a.a=new A3d(Q3,a,10,11));for(j=new Hmb(k);j.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new nQc(1,f);n=mQc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} +function Gmc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Reb(MD(lNb(a,($xc(),wxc))));d=Reb(MD(lNb(a,Pxc)));m=new qqd;oNb(m,wxc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=r$b(p.c);t=r$b(s.c);e=new imb;for(l=q;l<=t;l++){h=new KYb(a);IYb(h,(UYb(),PYb));oNb(h,(Krc(),hrc),j);oNb(h,bxc,(xld(),sld));oNb(h,yxc,m);n=JD(amb(a.b,l),25);l==q?GYb(h,n.a.c.length-c,n):HYb(h,n);u=Reb(MD(lNb(j,bwc)));if(u<0){u=0;oNb(j,bwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new sZb;rZb(g,(mmd(),lmd));qZb(g,h);g.n.b=o;i=new sZb;rZb(i,Tld);qZb(i,h);i.n.b=o;yWb(j,g);f=new BWb;jNb(f,j);oNb(f,nwc,null);xWb(f,i);yWb(f,r);Hmc(h,j,f);nDb(e.c,f);j=f}return e} +function uNc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=SC(cE,Pue,30,p,15,1);l=0;for(k=new Hmb(b.b);k.ag)&&bsb(a.b,JD(q.b,17))}}++h}f=g}}}} +function o8b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=JD(FYb(a,(mmd(),lmd)).Jc().Pb(),12).e;n=JD(FYb(a,Tld).Jc().Pb(),12).g;h=i.c.length;t=lZb(JD(amb(a.j,0),12));while(h-->0){p=(JDb(0,i.c.length),JD(i.c[0],17));e=(JDb(0,n.c.length),JD(n.c[0],17));s=e.d.e;f=bmb(s,e,0);zWb(p,e.d,f);xWb(e,null);yWb(e,null);o=p.a;b&&Qtb(o,new Zfd(t));for(d=Wtb(e.a,0);d.b!=d.d.c;){c=JD(iub(d),8);Qtb(o,new Zfd(c))}r=p.b;for(m=new Hmb(e.b);m.a-2}default:{return false}}b=a.Pj();switch(a.p){case 0:return b!=null&&Odb(LD(b))!=Xcb(a.k,0);case 1:return b!=null&&JD(b,221).a!=ddb(a.k)<<24>>24;case 2:return b!=null&&JD(b,180).a!=(ddb(a.k)&Bue);case 6:return b!=null&&Xcb(JD(b,190).a,a.k);case 5:return b!=null&&JD(b,15).a!=ddb(a.k);case 7:return b!=null&&JD(b,191).a!=ddb(a.k)<<16>>16;case 3:return b!=null&&Reb(MD(b))!=a.j;case 4:return b!=null&&JD(b,164).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} +function LZd(a,b,c){var d,e,f,g;if(a.ml()&&a.ll()){g=MZd(a,JD(c,57));if(XD(g)!==XD(c)){a.vj(b);a.Bj(b,NZd(a,b,g));if(a.$k()){f=(e=JD(c,52),a.kl()?a.il()?e.Qh(a.b,X3d(JD(tWd(bud(a.b),a.Jj()),19)).n,JD(tWd(bud(a.b),a.Jj()).Fk(),29).ik(),null):e.Qh(a.b,zWd(e.Ah(),X3d(JD(tWd(bud(a.b),a.Jj()),19))),null,null):e.Qh(a.b,-1-a.Jj(),null,null));!JD(g,52).Mh()&&(f=(d=JD(g,52),a.kl()?a.il()?d.Oh(a.b,X3d(JD(tWd(bud(a.b),a.Jj()),19)).n,JD(tWd(bud(a.b),a.Jj()).Fk(),29).ik(),f):d.Oh(a.b,zWd(d.Ah(),X3d(JD(tWd(bud(a.b),a.Jj()),19))),null,f):d.Oh(a.b,-1-a.Jj(),null,f)));!!f&&f.mj()}Vsd(a.b)&&a.Hj(a.Gj(9,c,g,b,false));return g}}return c} +function KGb(a){var b,c,d,e,f,g,h,i,j,k;d=new imb;for(g=new Hmb(a.e.a);g.a0&&(g=$wnd.Math.max(g,_Jb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Sy(),Wy(Lwe),$wnd.Math.abs(l-e)<=Lwe||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Sy(),Wy(Lwe),$wnd.Math.abs(l-1)<=Lwe||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} +function eLb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=JD($qb(a.b,b),127);i=JD(JD(Qc(a.r,b),22),83);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Gc((Lld(),Hld));g=0;a.A.Gc((Vmd(),Umd))&&jLb(a,b);h=i.Jc();k=null;m=0;l=0;while(h.Ob()){d=JD(h.Pb(),115);f=Reb(MD(d.b.mf((VKb(),UKb))));e=d.b.Kf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,_Jb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Sy(),Wy(Lwe),$wnd.Math.abs(m-f)<=Lwe||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Sy(),Wy(Lwe),$wnd.Math.abs(m-1)<=Lwe||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} +function EFc(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=SC(RP,nye,9,h+i,0,1);for(g=0;g0?CFc(this,this.f/this.a):uFc(b.g,b.d[0]).a!=null&&uFc(c.g,c.d[0]).a!=null?CFc(this,(Reb(uFc(b.g,b.d[0]).a)+Reb(uFc(c.g,c.d[0]).a))/2):uFc(b.g,b.d[0]).a!=null?CFc(this,uFc(b.g,b.d[0]).a):uFc(c.g,c.d[0]).a!=null&&CFc(this,uFc(c.g,c.d[0]).a)} +function r5c(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r;o=false;j=M6c(c.q,b.f+b.b-c.q.f);n=d.f>b.b&&h;r=e-(c.q.e+j-g);l=(i=z6c(d,r,false),i.a);if(n&&l>d.f){return false}if(n){m=0;for(q=new Hmb(b.d);q.a=(JDb(f,a.c.length),JD(a.c[f],186)).e;if(!n&&l>b.b&&!k){return false}if(k||n||l<=b.b){if(k&&l>b.b){c.d=l;x6c(c,w6c(c,l))}else{N6c(c.q,j);c.c=true}x6c(d,e-(c.s+c.r));B6c(d,c.q.e+c.q.d,b.f);j7c(b,d);if(a.c.length>f){m7c((JDb(f,a.c.length),JD(a.c[f],186)),d);(JDb(f,a.c.length),JD(a.c[f],186)).a.c.length==0&&cmb(a,f)}o=true}return o} +function cRb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new GRb(Brb(v2));for(d=new Hmb(b.a);d.a0&&(RDb(0,c.length),c.charCodeAt(0)!=47))){throw Icb(new hfb('invalid opaquePart: '+c))}if(a&&!(b!=null&&Aob(cQd,b.toLowerCase()))&&!(c==null||!kQd(c,$Pd,_Pd))){throw Icb(new hfb(IHe+c))}if(a&&b!=null&&Aob(cQd,b.toLowerCase())&&!CQd(c)){throw Icb(new hfb(IHe+c))}if(!DQd(d)){throw Icb(new hfb('invalid device: '+d))}if(!FQd(e)){g=e==null?'invalid segments: null':'invalid segment: '+rQd(e);throw Icb(new hfb(g))}if(!(f==null||xgb(f,Mgb(35))==-1)){throw Icb(new hfb('invalid query: '+f))}} +function SXb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;m=new Zfd(a.o);r=b.a/m.a;h=b.b/m.b;p=b.a-m.a;f=b.b-m.b;if(c){e=XD(lNb(a,($xc(),bxc)))===XD((xld(),sld));for(o=new Hmb(a.j);o.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;oNb(a,($xc(),Nwc),(Vmd(),d=JD(teb(N2),10),new Krb(d,JD(kDb(d,d.length),10),0)))} +function _Dc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;c.Tg('Network simplex layering',1);a.b=b;r=JD(lNb(b,($xc(),Ixc)),15).a*4;q=a.b.a;if(q.c.length<1){c.Ug();return}f=XDc(a,q);p=null;for(e=Wtb(f,0);e.b!=e.d.c;){d=JD(iub(e),16);h=r*YD($wnd.Math.sqrt(d.gc()));g=$Dc(d);NGb($Gb(aHb(_Gb(cHb(g),h),p),true),c.dh(1));m=a.b.b;for(o=new Hmb(g.a);o.a1){p=SC(cE,Pue,30,a.b.b.c.length,15,1);l=0;for(j=new Hmb(a.b.b);j.a0){oA(a,c,0);c.a+=String.fromCharCode(d);e=tA(b,f);oA(a,c,e);f+=e-1;continue}if(d==39){if(f+10&&o.a<=0){i.c.length=0;nDb(i.c,o);break}n=o.i-o.d;if(n>=h){if(n>h){i.c.length=0;h=n}nDb(i.c,o)}}if(i.c.length!=0){g=JD(amb(i,Nvb(e,i.c.length)),116);t.a.Ac(g)!=null;g.g=k++;SOc(g,b,c,d);i.c.length=0}}q=a.c.length+1;for(m=new Hmb(a);m.apve||b.o==YMc&&k=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(ique)&&h<10);aSb(a.c,new CRb);pRb(a);YRb(a.c);_Qb(a.f)} +function dGc(a,b){var c,d,e,f,g,h,i,j,k,l,m;switch(a.k.g){case 1:d=JD(lNb(a,(Krc(),hrc)),17);c=JD(lNb(d,irc),78);!c?(c=new jgd):Odb(LD(lNb(d,vrc)))&&(c=ngd(c));j=JD(lNb(a,brc),12);if(j){k=cgd(WC(OC(o2,1),Ote,8,0,[j.i.n,j.n,j.a]));if(b<=k.a){return k.b}Ttb(c,k,c.a,c.a.a)}l=JD(lNb(a,crc),12);if(l){m=cgd(WC(OC(o2,1),Ote,8,0,[l.i.n,l.n,l.a]));if(m.a<=b){return m.b}Ttb(c,m,c.c.b,c.c)}if(c.b>=2){i=Wtb(c,0);g=JD(iub(i),8);h=JD(iub(i),8);while(h.a0&&qFb(j,true,(ojd(),ljd));h.k==(UYb(),NYb)&&rFb(j);ejb(a.f,h,b)}}} +function p7c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;j=ove;k=ove;h=pve;i=pve;for(m=new Hmb(b.i);m.a=a.j){++a.j;Ylb(a.b,zfb(1));Ylb(a.c,k)}else{d=a.d[b.p][1];fmb(a.b,j,zfb(JD(amb(a.b,j),15).a+1-d));fmb(a.c,j,Reb(MD(amb(a.c,j)))+k-d*a.f)}(a.r==(Czc(),vzc)&&(JD(amb(a.b,j),15).a>a.k||JD(amb(a.b,j-1),15).a>a.k)||a.r==yzc&&(Reb(MD(amb(a.c,j)))>a.n||Reb(MD(amb(a.c,j-1)))>a.n))&&(i=false);for(g=new Yr(Dr(yYb(b).a.Jc(),new Dl));Wr(g);){f=JD(Xr(g),17);h=f.c.i;if(a.g[h.p]==j){l=D8b(a,h);e=e+JD(l.a,15).a;i=i&&Odb(LD(l.b))}}a.g[b.p]=j;e=e+a.d[b.p][0];return new ard(zfb(e),(Ndb(),i?true:false))} +function Kgc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(m=a.c[b],n=a.c[c],(o=JD(lNb(m,(Krc(),Xqc)),16),!!o&&o.gc()!=0&&o.Gc(n))||(p=m.k!=(UYb(),PYb)&&n.k!=PYb,q=JD(lNb(m,Wqc),9),r=JD(lNb(n,Wqc),9),s=q!=r,t=!!q&&q!=m||!!r&&r!=n,u=Lgc(m,(mmd(),Uld)),v=Lgc(n,jmd),t=t|(Lgc(m,jmd)||Lgc(n,Uld)),w=t&&s||u||v,p&&w)||m.k==(UYb(),SYb)&&n.k==RYb||n.k==(UYb(),SYb)&&m.k==RYb){return false}k=a.c[b];f=a.c[c];e=FIc(a.e,k,f,(mmd(),lmd));i=FIc(a.i,k,f,Tld);Bgc(a.f,k,f);j=kgc(a.b,k,f)+JD(e.a,15).a+JD(i.a,15).a+a.f.d;h=kgc(a.b,f,k)+JD(e.b,15).a+JD(i.b,15).a+a.f.b;if(a.a){l=JD(lNb(k,hrc),12);g=JD(lNb(f,hrc),12);d=DIc(a.g,l,g);j+=JD(d.a,15).a;h+=JD(d.b,15).a}return j>h} +function DQb(a,b){var c,d,e,f,g;c=Reb(MD(lNb(b,($xc(),txc))));c<2&&oNb(b,txc,2);d=JD(lNb(b,Pvc),86);d==(ojd(),mjd)&&oNb(b,Pvc,JXb(b));e=JD(lNb(b,nxc),15);e.a==0?oNb(b,(Krc(),trc),new Svb):oNb(b,(Krc(),trc),new Tvb(e.a));f=LD(lNb(b,Iwc));f==null&&oNb(b,Iwc,(Ndb(),XD(lNb(b,Wvc))===XD((Ujd(),Qjd))?true:false));VBb(new gCb(null,new Wvb(b.a,16)),new GQb(a));VBb(UBb(new gCb(null,new Wvb(b.b,16)),new IQb),new KQb(a));g=new IAc(b);oNb(b,(Krc(),yrc),g);ybd(a.a);Bbd(a.a,(TQb(),OQb),JD(lNb(b,Nvc),188));Bbd(a.a,PQb,JD(lNb(b,wwc),188));Bbd(a.a,QQb,JD(lNb(b,Mvc),188));Bbd(a.a,RQb,JD(lNb(b,Mwc),188));Bbd(a.a,SQb,eOc(JD(lNb(b,Wvc),222)));vbd(a.a,CQb(b));oNb(b,rrc,wbd(a.a,b))} +function mQc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Yrb;g=new imb;kQc(a,c,a.d.zg(),g,l);kQc(a,d,a.d.Ag(),g,l);a.b=0.2*(p=lQc(UBb(new gCb(null,new Wvb(g,16)),new rQc)),q=lQc(UBb(new gCb(null,new Wvb(g,16)),new tQc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=QOc(g,true,m),!a.e&&(a.e=new TPc(a)),PPc(a.e,r,g,a.b),undefined);oQc(g,m);qQc(g);n=-1;for(k=new Hmb(g);k.a0){c+=i.n.a+i.o.a/2;++l}for(o=new Hmb(i.j);o.a0&&(c/=l);r=SC(aE,vve,30,d.a.c.length,15,1);h=0;for(j=new Hmb(d.a);j.a-1){for(e=Wtb(h,0);e.b!=e.d.c;){d=JD(iub(e),132);d.v=g}while(h.b!=0){d=JD(bu(h,0),132);for(c=new Hmb(d.i);c.a-1){for(f=new Hmb(h);f.a0){continue}lPc(i,$wnd.Math.min(i.o,e.o-1));kPc(i,i.i-1);i.i==0&&(nDb(h.c,i),true)}}}} +function rfd(a,b,c,d,e){var f,g,h,i;i=ove;g=false;h=mfd(a,Vfd(new Yfd(b.a,b.b),a),Gfd(new Yfd(c.a,c.b),e),Vfd(new Yfd(d.a,d.b),c));f=!!h&&!($wnd.Math.abs(h.a-a.a)<=wEe&&$wnd.Math.abs(h.b-a.b)<=wEe||$wnd.Math.abs(h.a-b.a)<=wEe&&$wnd.Math.abs(h.b-b.b)<=wEe);h=mfd(a,Vfd(new Yfd(b.a,b.b),a),c,e);!!h&&(($wnd.Math.abs(h.a-a.a)<=wEe&&$wnd.Math.abs(h.b-a.b)<=wEe)==($wnd.Math.abs(h.a-b.a)<=wEe&&$wnd.Math.abs(h.b-b.b)<=wEe)||f?(i=$wnd.Math.min(i,Mfd(Vfd(h,c)))):(g=true));h=mfd(a,Vfd(new Yfd(b.a,b.b),a),d,e);!!h&&(g||($wnd.Math.abs(h.a-a.a)<=wEe&&$wnd.Math.abs(h.b-a.b)<=wEe)==($wnd.Math.abs(h.a-b.a)<=wEe&&$wnd.Math.abs(h.b-b.b)<=wEe)||f)&&(i=$wnd.Math.min(i,Mfd(Vfd(h,d))));return i} +function FPb(a){kdd(a,new vcd(Ccd(Gcd(Dcd(Fcd(Ecd(new Icd,Txe),Uxe),"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 IPb),oxe)));idd(a,Txe,wxe,mEd(wPb));idd(a,Txe,yxe,(Ndb(),true));idd(a,Txe,Cxe,mEd(zPb));idd(a,Txe,Vxe,mEd(APb));idd(a,Txe,Bxe,mEd(BPb));idd(a,Txe,Dxe,mEd(yPb));idd(a,Txe,zxe,mEd(CPb));idd(a,Txe,Exe,mEd(DPb));idd(a,Txe,Oxe,mEd(vPb));idd(a,Txe,Qxe,mEd(tPb));idd(a,Txe,Rxe,mEd(uPb));idd(a,Txe,Sxe,mEd(xPb));idd(a,Txe,Pxe,mEd(sPb))} +function pFc(a){var b,c,d,e,f,g,h,i;b=null;for(d=new Hmb(a);d.a0&&c.c==0){!b&&(b=new imb);nDb(b.c,c)}}if(b){while(b.c.length!=0){c=JD(cmb(b,0),239);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new imb),new Hmb(c.b));f.abmb(a,c,0)){return new ard(e,c)}}else if(Reb(uFc(e.g,e.d[0]).a)>Reb(uFc(c.g,c.d[0]).a)){return new ard(e,c)}}}for(h=(!c.e&&(c.e=new imb),c.e).Jc();h.Ob();){g=JD(h.Pb(),239);i=(!g.b&&(g.b=new imb),g.b);MDb(0,i.c.length);lDb(i.c,0,c);g.c==i.c.length&&(nDb(b.c,g),true)}}}return null} +function ure(a,b){var c,d,e,f,g,h,i,j,k;if(b.e==5){rre(a,b);return}j=b;if(j.b==null||a.b==null)return;tre(a);qre(a);tre(j);qre(j);c=SC(cE,Pue,30,a.b.length+j.b.length,15,1);k=0;d=0;g=0;while(d=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i0),JD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(IDb(k.b>0),JD(k.a.Xb(k.c=--k.b),17))}k.b>0&&Jjb(k)}}}}} +function UEc(a,b,c){var d,e,f,g,h,i,j,k,l,m;if(c){d=-1;k=new Qjb(b,0);while(k.b0?(e-=86400000):(e+=86400000);i=new oB(Jcb(Pcb(b.q.getTime()),e))}k=new jhb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw Icb(new hfb("Missing trailing '"))}g+1=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new khb(c.d)):ehb(c.a,c.b);bhb(c.a,'[...]')}else{h=KD(d);j=new gsb(b);Kxb(c,Pmb(h,j))}}else RD(d,171)?Kxb(c,onb(JD(d,171))):RD(d,195)?Kxb(c,hnb(JD(d,195))):RD(d,201)?Kxb(c,inb(JD(d,201))):RD(d,2073)?Kxb(c,nnb(JD(d,2073))):RD(d,54)?Kxb(c,lnb(JD(d,54))):RD(d,584)?Kxb(c,mnb(JD(d,584))):RD(d,830)?Kxb(c,knb(JD(d,830))):RD(d,108)&&Kxb(c,jnb(JD(d,108)))}else{Kxb(c,d==null?vte:qdb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} +function IVd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;wVd(a,null)}else{a.F=(KDb(b),b);d=xgb(b,Mgb(60));if(d!=-1){e=(QDb(0,d,b.length),b.substr(0,d));xgb(b,Mgb(46))==-1&&!sgb(e,hte)&&!sgb(e,ZHe)&&!sgb(e,$He)&&!sgb(e,_He)&&!sgb(e,aIe)&&!sgb(e,bIe)&&!sgb(e,cIe)&&!sgb(e,dIe)&&(e=eIe);c=Agb(b,Mgb(62));c!=-1&&(e+=''+(RDb(c+1,b.length+1),b.substr(c+1)));wVd(a,e)}else{e=b;if(xgb(b,Mgb(46))==-1){d=xgb(b,Mgb(91));d!=-1&&(e=(QDb(0,d,b.length),b.substr(0,d)));if(!sgb(e,hte)&&!sgb(e,ZHe)&&!sgb(e,$He)&&!sgb(e,_He)&&!sgb(e,aIe)&&!sgb(e,bIe)&&!sgb(e,cIe)&&!sgb(e,dIe)){e=eIe;d!=-1&&(e+=''+(RDb(d,b.length+1),b.substr(d)))}else{e=b}}wVd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&zsd(a,new L1d(a,1,5,f,b))} +function gVb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;a.c=a.e;o=LD(lNb(b,($xc(),oxc)));n=o==null||(KDb(o),o);f=JD(lNb(b,(Krc(),Rqc)),22).Gc((Lpc(),Epc));e=JD(lNb(b,bxc),102);c=!(e==(xld(),rld)||e==tld||e==sld);if(n&&(c||!f)){for(l=new Hmb(b.a);l.a=0){f=btd(b,(QDb(1,h,c.length),c.substr(1,h-1)));l=(QDb(h+1,j,c.length),c.substr(h+1,j-(h+1)));return Wsd(b,l,f)}}else{d=-1;geb==null&&(geb=new RegExp('\\d'));if(geb.test(String.fromCharCode(i))){d=Bgb(c,Mgb(46),j-1);if(d>=0){e=JD(Osd(b,gtd(b,(QDb(1,d,c.length),c.substr(1,d-1))),false),61);k=0;try{k=Vdb((RDb(d+1,c.length+1),c.substr(d+1)),rue,lte)}catch(a){a=Hcb(a);if(RD(a,131)){g=a;throw Icb(new PQd(g))}else throw Icb(a)}if(k>16==-10){c=JD(a.Cb,293).Wk(b,c)}else if(a.Db>>16==-15){!b&&(b=(HRd(),uRd));!j&&(j=(HRd(),uRd));if(a.Cb.Vh()){i=new N1d(a.Cb,1,13,j,b,dXd(m2d(JD(a.Cb,62)),a),false);!c?(c=i):c.lj(i)}}}else if(RD(a.Cb,88)){if(a.Db>>16==-23){RD(b,88)||(b=(HRd(),xRd));RD(j,88)||(j=(HRd(),xRd));if(a.Cb.Vh()){i=new N1d(a.Cb,1,10,j,b,dXd(rWd(JD(a.Cb,29)),a),false);!c?(c=i):c.lj(i)}}}else if(RD(a.Cb,446)){h=JD(a.Cb,834);g=(!h.b&&(h.b=new n8d(new j8d)),h.b);for(f=(d=new Cjb((new tjb(g.a)).a),new v8d(d));f.a.b;){e=JD(Ajb(f.a).jd(),87);c=m0d(e,i0d(e,h),c)}}}return c} +function D$b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Odb(LD(Pud(a,($xc(),jwc))));m=JD(Pud(a,exc),22);i=false;j=false;l=new fKd((!a.c&&(a.c=new A3d(R3,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=JD(dKd(l),125);h=0;for(e=Gl(yl(WC(OC(VI,1),rte,20,0,[(!f.d&&(f.d=new Wge(N3,f,8,5)),f.d),(!f.e&&(f.e=new Wge(N3,f,7,4)),f.e)])));Wr(e);){d=JD(Xr(e),85);k=g&&vwd(d)&&Odb(LD(Pud(d,kwc)));c=aXd((!d.b&&(d.b=new Wge(L3,d,4,7)),d.b),f)?a==Czd(EEd(JD(SFd((!d.c&&(d.c=new Wge(L3,d,5,8)),d.c),0),84))):a==Czd(EEd(JD(SFd((!d.b&&(d.b=new Wge(L3,d,4,7)),d.b),0),84)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Gc((Lld(),Hld))&&(!f.n&&(f.n=new A3d(P3,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Ec((Lpc(),Epc));j&&b.Ec((Lpc(),Fpc))} +function Qpd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=JD(Pud(a,(gjd(),Vhd)),22);if(m.dc()){return null}h=0;g=0;if(m.Gc((Vmd(),Tmd))){k=JD(Pud(a,qid),102);d=2;c=2;e=2;f=2;b=!Czd(a)?JD(Pud(a,shd),86):JD(Pud(Czd(a),shd),86);for(j=new fKd((!a.c&&(a.c=new A3d(R3,a,9,9)),a.c));j.e!=j.i.gc();){i=JD(dKd(j),125);l=JD(Pud(i,xid),64);if(l==(mmd(),kmd)){l=Bpd(i,b);Rud(i,xid,l)}if(k==(xld(),sld)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Rpd(a,h,g,true,true)} +function SKc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;e=null;for(d=new Hmb(b.a);d.a1){e=a.e.b;Qtb(a.e,i);for(h=i.a.ec().Jc();h.Ob();){g=JD(h.Pb(),9);ejb(a.c,g,zfb(e))}}}} +function IUb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;f=new UUb(b);l=DUb(a,b,f);n=$wnd.Math.max(Reb(MD(lNb(b,($xc(),bwc)))),1);for(k=new Hmb(l.a);k.a=0){i=null;h=new Qjb(k.a,j+1);while(h.b0;if(j){if(j){m=r.p;g?++m:--m;l=JD(amb(r.c.a,m),9);d=F1b(l);n=!(kfd(d,w,c[0])||gfd(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p=0&&pg?1:Rdb(isNaN(0),isNaN(g)))<0&&(null,Wy(hCe),($wnd.Math.abs(g-1)<=hCe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Rdb(isNaN(g),isNaN(1)))<0)&&(null,Wy(hCe),($wnd.Math.abs(0-h)<=hCe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Rdb(isNaN(0),isNaN(h)))<0)&&(null,Wy(hCe),($wnd.Math.abs(h-1)<=hCe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Rdb(isNaN(h),isNaN(1)))<0));return f} +function OKc(a){var b,c,d,e,f,g,h,i,j,k,l;a.j=SC(cE,Pue,30,a.g,15,1);a.o=new imb;VBb(UBb(new gCb(null,new Wvb(a.e.b,16)),new WLc),new YLc(a));a.a=SC(Fcb,zwe,30,a.b,16,1);aCb(new gCb(null,new Wvb(a.e.b,16)),new lMc(a));d=(l=new imb,VBb(SBb(UBb(new gCb(null,new Wvb(a.e.b,16)),new bMc),new dMc(a)),new fMc(a,l)),l);for(i=new Hmb(d);i.a=j.c.c.length?(k=DKc((UYb(),RYb),PYb)):(k=DKc((UYb(),PYb),PYb));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} +function ZEb(a,b){var c;if(a.e){throw Icb(new kfb((seb(PM),lwe+PM.k+mwe)))}if(!sEb(a.a,b)){throw Icb(new qz(nwe+b+owe))}if(b==a.d){return a}c=a.d;a.d=b;switch(c.g){case 0:switch(b.g){case 2:WEb(a);break;case 1:cFb(a);WEb(a);break;case 4:iFb(a);WEb(a);break;case 3:iFb(a);cFb(a);WEb(a);}break;case 2:switch(b.g){case 1:cFb(a);dFb(a);break;case 4:iFb(a);WEb(a);break;case 3:iFb(a);cFb(a);WEb(a);}break;case 1:switch(b.g){case 2:cFb(a);dFb(a);break;case 4:cFb(a);iFb(a);WEb(a);break;case 3:cFb(a);iFb(a);cFb(a);WEb(a);}break;case 4:switch(b.g){case 2:iFb(a);WEb(a);break;case 1:iFb(a);cFb(a);WEb(a);break;case 3:cFb(a);dFb(a);}break;case 3:switch(b.g){case 2:cFb(a);iFb(a);WEb(a);break;case 1:cFb(a);iFb(a);cFb(a);WEb(a);break;case 4:cFb(a);dFb(a);}}return a} +function WRb(a,b){var c;if(a.d){throw Icb(new kfb((seb(MO),lwe+MO.k+mwe)))}if(!FRb(a.a,b)){throw Icb(new qz(nwe+b+owe))}if(b==a.c){return a}c=a.c;a.c=b;switch(c.g){case 0:switch(b.g){case 2:TRb(a);break;case 1:$Rb(a);TRb(a);break;case 4:cSb(a);TRb(a);break;case 3:cSb(a);$Rb(a);TRb(a);}break;case 2:switch(b.g){case 1:$Rb(a);_Rb(a);break;case 4:cSb(a);TRb(a);break;case 3:cSb(a);$Rb(a);TRb(a);}break;case 1:switch(b.g){case 2:$Rb(a);_Rb(a);break;case 4:$Rb(a);cSb(a);TRb(a);break;case 3:$Rb(a);cSb(a);$Rb(a);TRb(a);}break;case 4:switch(b.g){case 2:cSb(a);TRb(a);break;case 1:cSb(a);$Rb(a);TRb(a);break;case 3:$Rb(a);_Rb(a);}break;case 3:switch(b.g){case 2:$Rb(a);cSb(a);TRb(a);break;case 1:$Rb(a);cSb(a);$Rb(a);TRb(a);break;case 4:$Rb(a);_Rb(a);}}return a} +function qmc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;l=a.b;k=new Qjb(l,0);Pjb(k,new s$b(a));s=false;g=1;while(k.b0&&(b.a+=pte,b);Ppd(JD(dKd(h),174),b)}b.a+=jye;i=new oKd((!d.c&&(d.c=new Wge(L3,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=pte,b);Ppd(JD(dKd(i),174),b)}b.a+=')'}}} +function _Mb(a,b,c){var d,e,f,g,h,i,j,k;for(i=new fKd((!a.a&&(a.a=new A3d(Q3,a,10,11)),a.a));i.e!=i.i.gc();){h=JD(dKd(i),26);for(e=new Yr(Dr(DEd(h).a.Jc(),new Dl));Wr(e);){d=JD(Xr(e),85);!d.b&&(d.b=new Wge(L3,d,4,7));if(!(d.b.i<=1&&(!d.c&&(d.c=new Wge(L3,d,5,8)),d.c.i<=1))){throw Icb(new qbd('Graph must not contain hyperedges.'))}if(!uwd(d)&&h!=EEd(JD(SFd((!d.c&&(d.c=new Wge(L3,d,5,8)),d.c),0),84))){j=new DNb;jNb(j,d);oNb(j,(iPb(),gPb),d);ANb(j,JD(Wd(vsb(c.f,h)),155));BNb(j,JD(bjb(c,EEd(JD(SFd((!d.c&&(d.c=new Wge(L3,d,5,8)),d.c),0),84))),155));Ylb(b.c,j);for(g=new fKd((!d.n&&(d.n=new A3d(P3,d,1,7)),d.n));g.e!=g.i.gc();){f=JD(dKd(g),157);k=new JNb(j,f.a);jNb(k,f);oNb(k,gPb,f);k.e.a=$wnd.Math.max(f.g,1);k.e.b=$wnd.Math.max(f.f,1);INb(k);Ylb(b.d,k)}}}}} +function C8b(a,b,c){var d,e,f,g,h,i,j,k,l,m;c.Tg('Node promotion heuristic',1);a.i=b;a.r=JD(lNb(b,($xc(),vwc)),243);a.r!=(Czc(),tzc)&&a.r!=uzc?A8b(a):B8b(a);k=JD(lNb(a.i,uwc),15).a;f=new W8b;switch(a.r.g){case 2:case 1:F8b(a,f);break;case 3:a.r=Bzc;F8b(a,f);i=0;for(h=new Hmb(a.b);h.aa.k){a.r=vzc;F8b(a,f)}break;case 4:a.r=Bzc;F8b(a,f);j=0;for(e=new Hmb(a.c);e.aa.n){a.r=yzc;F8b(a,f)}break;case 6:m=YD($wnd.Math.ceil(a.g.length*k/100));F8b(a,new Z8b(m));break;case 5:l=YD($wnd.Math.ceil(a.e*k/100));F8b(a,new a9b(l));break;case 8:z8b(a,true);break;case 9:z8b(a,false);break;default:F8b(a,f);}a.r!=tzc&&a.r!=uzc?G8b(a,b):H8b(a,b);c.Ug()} +function fHb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;l=new cJb(a);BKb(l,!(b==(ojd(),njd)||b==jjd));k=l.a;m=new aZb;for(e=(zHb(),WC(OC(hN,1),kue,237,0,[wHb,xHb,yHb])),g=0,i=e.length;g0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} +function a3b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new Yfd(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new Hmb(a.a);j.a0){a.c[b.c.p][b.p].d+=Ovb(a.i,24)*Nve*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} +function j2b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new Hmb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} +function hA(a,b){var c,d,e,f,g,h,i,j,k;j='';if(b.length==0){return a.le(zue,xue,-1,-1)}k=Kgb(b);sgb(k.substr(0,3),'at ')&&(k=(RDb(3,k.length+1),k.substr(3)));k=k.replace(/\[.*?\]/g,'');g=k.indexOf('(');if(g==-1){g=k.indexOf('@');if(g==-1){j=k;k=''}else{j=Kgb((RDb(g+1,k.length+1),k.substr(g+1)));k=Kgb((QDb(0,g,k.length),k.substr(0,g)))}}else{c=k.indexOf(')',g);j=(QDb(g+1,c,k.length),k.substr(g+1,c-(g+1)));k=Kgb((QDb(0,g,k.length),k.substr(0,g)))}g=xgb(k,Mgb(46));g!=-1&&(k=(RDb(g+1,k.length+1),k.substr(g+1)));(k.length==0||sgb(k,'Anonymous function'))&&(k=xue);h=Agb(j,Mgb(58));e=Bgb(j,Mgb(58),h-1);i=-1;d=-1;f=zue;if(h!=-1&&e!=-1){f=(QDb(0,e,j.length),j.substr(0,e));i=bA((QDb(e+1,h,j.length),j.substr(e+1,h-(e+1))));d=bA((RDb(h+1,j.length+1),j.substr(h+1)))}return a.le(f,k,i,d)} +function i0b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new Hmb(a);j.a0||k.j==lmd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new Hmb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new Hmb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} +function gHb(a,b,c,d){var e,f,g,h,i;h=new cJb(b);KKb(h,d);e=true;if(!!a&&a.nf((gjd(),shd))){f=JD(a.mf((gjd(),shd)),86);e=f==(ojd(),mjd)||f==kjd||f==ljd}AKb(h,false);_lb(h.e.Pf(),new FKb(h,false,e));eKb(h,h.f,(zHb(),wHb),(mmd(),Uld));eKb(h,h.f,yHb,jmd);eKb(h,h.g,wHb,lmd);eKb(h,h.g,yHb,Tld);gKb(h,Uld);gKb(h,jmd);fKb(h,Tld);fKb(h,lmd);rKb();g=h.A.Gc((Vmd(),Rmd))&&h.B.Gc((ind(),dnd))?sKb(h):null;!!g&&WHb(h.a,g);xKb(h);ZJb(h);gLb(h);UJb(h);IKb(h);$Kb(h);QKb(h,Uld);QKb(h,jmd);VJb(h);HKb(h);if(!c){return h.o}vKb(h);cLb(h);QKb(h,Tld);QKb(h,lmd);i=h.B.Gc((ind(),end));iKb(h,i,Uld);iKb(h,i,jmd);jKb(h,i,Tld);jKb(h,i,lmd);VBb(new gCb(null,new Wvb(new nkb(h.i),0)),new kKb);VBb(SBb(new gCb(null,ii(h.r).a.oc()),new mKb),new oKb);wKb(h);h.e.Nf(h.o);VBb(new gCb(null,ii(h.r).a.oc()),new yKb);return h.o} +function kSb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=ove;for(d=new Hmb(a.a.b);d.a1){n=new TRc(o,t,d);Efb(t,new JRc(a,n));nDb(g.c,n);for(l=t.a.ec().Jc();l.Ob();){k=JD(l.Pb(),49);dmb(f,k.b)}}if(h.a.gc()>1){n=new TRc(o,h,d);Efb(h,new LRc(a,n));nDb(g.c,n);for(l=h.a.ec().Jc();l.Ob();){k=JD(l.Pb(),49);dmb(f,k.b)}}}} +function n4b(a,b){var c,d,e,f,g,h;if(!JD(lNb(b,(Krc(),Rqc)),22).Gc((Lpc(),Epc))){return}for(h=new Hmb(b.a);h.a=0&&g0&&(JD($qb(a.b,b),127).a.b=c)} +function I$b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;n=0;d=new esb;for(f=new fKd((!b.a&&(b.a=new A3d(Q3,b,10,11)),b.a));f.e!=f.i.gc();){e=JD(dKd(f),26);if(!Odb(LD(Pud(e,($xc(),Rwc))))){l=Czd(e);if(M$b(l)&&!Odb(LD(Pud(e,yvc)))){Rud(e,(Krc(),grc),zfb(n));++n;Qud(e,wvc)&&bsb(d,JD(Pud(e,wvc),15))}Q$b(a,e,c)}}oNb(c,(Krc(),frc),zfb(n));oNb(c,Bqc,zfb(d.a.gc()));n=0;for(k=new fKd((!b.b&&(b.b=new A3d(N3,b,12,3)),b.b));k.e!=k.i.gc();){i=JD(dKd(k),85);if(M$b(b)){Rud(i,grc,zfb(n));++n}q=NEd(i);r=OEd(i);m=Odb(LD(Pud(q,($xc(),jwc))));p=!Odb(LD(Pud(i,Rwc)));o=m&&vwd(i)&&Odb(LD(Pud(i,kwc)));g=Czd(q)==b&&Czd(q)==Czd(r);h=(Czd(q)==b&&r==b)^(Czd(r)==b&&q==b);p&&!o&&(h||g)&&N$b(a,i,b,c)}if(Czd(b)){for(j=new fKd(Bzd(Czd(b)));j.e!=j.i.gc();){i=JD(dKd(j),85);q=NEd(i);if(q==b&&vwd(i)){o=Odb(LD(Pud(q,($xc(),jwc))))&&Odb(LD(Pud(i,kwc)));o&&N$b(a,i,b,c)}}}} +function c3b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new imb;for(o=new Hmb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!Ksb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[Jve]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} +function MWc(){MWc=ndb;DWc=new nEd(Kxe);new nEd(Lxe);new oEd('DEPTH',zfb(0));rWc=new oEd('FAN',zfb(0));pWc=new oEd(DCe,zfb(0));JWc=new oEd('ROOT',(Ndb(),false));xWc=new oEd('LEFTNEIGHBOR',null);HWc=new oEd('RIGHTNEIGHBOR',null);yWc=new oEd('LEFTSIBLING',null);IWc=new oEd('RIGHTSIBLING',null);qWc=new oEd('DUMMY',false);new oEd('LEVEL',zfb(0));GWc=new oEd('REMOVABLE_EDGES',new aub);KWc=new oEd('XCOOR',zfb(0));LWc=new oEd('YCOOR',zfb(0));zWc=new oEd('LEVELHEIGHT',0);BWc=new oEd('LEVELMIN',0);AWc=new oEd('LEVELMAX',0);tWc=new oEd('GRAPH_XMIN',0);vWc=new oEd('GRAPH_YMIN',0);sWc=new oEd('GRAPH_XMAX',0);uWc=new oEd('GRAPH_YMAX',0);oWc=new oEd('COMPACT_LEVEL_ASCENSION',false);nWc=new oEd('COMPACT_CONSTRAINTS',new imb);wWc=new oEd('ID','');EWc=new oEd('POSITION',zfb(0));FWc=new oEd('PRELIM',0);CWc=new oEd('MODIFIER',0);mWc=new nEd(Mxe);lWc=new nEd(Nxe)} +function zoe(a){xoe();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=SC(_D,Aue,30,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=woe[o];f[g++]=woe[p|j<<4];f[g++]=woe[k<<2|q];f[g++]=woe[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=woe[o];f[g++]=woe[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=woe[o];f[g++]=woe[p|j<<4];f[g++]=woe[k<<2];f[g++]=61}return Pgb(f,0,f.length)} +function uB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>rue&&lB(b,a.p-Oue);g=b.q.getDate();fB(b,1);a.k>=0&&iB(b,a.k);if(a.c>=0){fB(b,a.c)}else if(a.k>=0){i=new nB(b.q.getFullYear()-Oue,b.q.getMonth(),35);d=35-i.q.getDate();fB(b,$wnd.Math.min(d,g))}else{fB(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);gB(b,a.f==24&&a.g?0:a.f);a.j>=0&&hB(b,a.j);a.n>=0&&jB(b,a.n);a.i>=0&&kB(b,Jcb(Vcb(Ncb(Pcb(b.q.getTime()),hue),hue),a.i));if(a.a){e=new mB;lB(e,e.q.getFullYear()-Oue-80);Tcb(Pcb(b.q.getTime()),Pcb(e.q.getTime()))&&lB(b,e.q.getFullYear()-Oue+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();fB(b,b.q.getDate()+c);b.q.getMonth()!=h&&fB(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>rue){f=b.q.getTimezoneOffset();kB(b,Jcb(Pcb(b.q.getTime()),(a.o-f)*60*hue))}return true} +function p_b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=lNb(b,(Krc(),hrc));if(!RD(e,206)){return}o=JD(e,26);p=b.e;m=new Zfd(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=JD(Pud(o,($xc(),Qwc)),182);if(Hrb(u,(ind(),and))){n=JD(Pud(o,Swc),104);dYb(n,f.a);gYb(n,f.d);eYb(n,f.b);fYb(n,f.c)}c=new imb;for(k=new Hmb(b.a);k.ad.c.length-1){Ylb(d,new ard(dCe,xCe))}c=JD(lNb(e,BXc),15).a;if(pjd(JD(lNb(a,bXc),86))){e.e.aReb(MD((JDb(c,d.c.length),JD(d.c[c],49)).b))&&_qd((JDb(c,d.c.length),JD(d.c[c],49)),e.e.a+e.f.a)}else{e.e.bReb(MD((JDb(c,d.c.length),JD(d.c[c],49)).b))&&_qd((JDb(c,d.c.length),JD(d.c[c],49)),e.e.b+e.f.b)}}for(f=Wtb(a.b,0);f.b!=f.d.c;){e=JD(iub(f),40);c=JD(lNb(e,(DXc(),BXc)),15).a;oNb(e,(MWc(),BWc),MD((JDb(c,d.c.length),JD(d.c[c],49)).a));oNb(e,AWc,MD((JDb(c,d.c.length),JD(d.c[c],49)).b))}b.Ug()} +function A8b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;a.o=Reb(MD(lNb(a.i,($xc(),Dxc))));a.f=Reb(MD(lNb(a.i,xxc)));a.j=a.i.b.c.length;h=a.j-1;m=0;a.k=0;a.n=0;a.b=Wu(SC(UI,Ote,15,a.j,0,1));a.c=Wu(SC(LI,Ote,346,a.j,7,1));for(g=new Hmb(a.i.b);g.a0&&Ylb(a.q,k);Ylb(a.p,k)}b-=d;n=i+b;j+=b*a.f;fmb(a.b,h,zfb(n));fmb(a.c,h,j);a.k=$wnd.Math.max(a.k,n);a.n=$wnd.Math.max(a.n,j);a.e+=b;b+=p}} +function PUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new aub;h=null;o=null;d=YD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Wtb(b,0);t.b!=t.d.c;){r=JD(iub(t),40);if(XD(o)!==XD(lNb(r,(MWc(),wWc)))){o=OD(lNb(r,wWc));i=0}o!=null?(h=o+SUc(i++,d)):(h=SUc(i++,d));oNb(r,wWc,h);for(q=(e=Wtb((new zTc(r)).a.d,0),new CTc(e));hub(q.a);){p=JD(iub(q.a),65).c;Ttb(n,p,n.c.b,n.c);oNb(p,wWc,h)}}m=new Yrb;for(g=0;g0&&(t-=n);QXb(g,t);k=0;for(m=new Hmb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.b0){j=(RDb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(RDb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=(QDb(1,m,c.length),c.substr(1,m-1));u=sgb('%',h)?null:mQd(h);e=0;if(k){try{e=Vdb((RDb(m+2,c.length+1),c.substr(m+2)),rue,lte)}catch(a){a=Hcb(a);if(RD(a,131)){i=a;throw Icb(new PQd(i))}else throw Icb(a)}}for(r=N0d(b.Dh());r.Ob();){p=i1d(r);if(RD(p,504)){f=JD(p,587);t=f.d;if((u==null?t==null:sgb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:(QDb(0,l,c.length),c.substr(0,l));d=0;if(l!=-1){try{d=Vdb((RDb(l+1,c.length+1),c.substr(l+1)),rue,lte)}catch(a){a=Hcb(a);if(RD(a,131)){o=c}else throw Icb(a)}}o=sgb('%',o)?null:mQd(o);for(q=N0d(b.Dh());q.Ob();){p=i1d(q);if(RD(p,197)){g=JD(p,197);s=g.ve();if((o==null?s==null:sgb(o,s))&&d--==0){return g}}}return null}}return Ysd(b,c)} +function Gfc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;k=new Yrb;i=new Np;for(d=new Hmb(a.a.a.b);d.ab.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}UFb(XFb(WFb(YFb(VFb(new ZFb,1),100),n),q))}}}}}}} +function OKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;m=JD(JD(Qc(a.r,b),22),83);if(b==(mmd(),Tld)||b==lmd){SKb(a,b);return}f=b==Uld?(OLb(),KLb):(OLb(),NLb);u=b==Uld?(XIb(),WIb):(XIb(),UIb);c=JD($qb(a.b,b),127);d=c.i;e=d.c+nfd(WC(OC(aE,1),vve,30,15,[c.n.b,a.C.b,a.k]));r=d.c+d.b-nfd(WC(OC(aE,1),vve,30,15,[c.n.c,a.C.c,a.k]));g=wLb(BLb(f),a.t);s=b==Uld?pve:ove;for(l=m.Jc();l.Ob();){j=JD(l.Pb(),115);if(!j.c||j.c.d.c.length<=0){continue}q=j.b.Kf();p=j.e;n=j.c;o=n.i;o.b=(i=n.n,n.e.a+i.b+i.c);o.a=(h=n.n,n.e.b+h.d+h.a);Mub(u,Hwe);n.f=u;rIb(n,(eIb(),dIb));o.c=p.a-(o.b-q.a)/2;v=$wnd.Math.min(e,p.a);w=$wnd.Math.max(r,p.a+q.a);o.cw&&(o.c=w-o.b);Ylb(g.d,new ULb(o,uLb(g,o)));s=b==Uld?$wnd.Math.max(s,p.b+j.b.Kf().b):$wnd.Math.min(s,p.b)}s+=b==Uld?a.t:-a.t;t=vLb((g.e=s,g));t>0&&(JD($qb(a.b,b),127).a.b=t);for(k=m.Jc();k.Ob();){j=JD(k.Pb(),115);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} +function Gib(a,b){Eib();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=Lcb(a,0)<0;i&&(a=Wcb(a));if(Lcb(a,0)==0){switch(b){case 0:return '0';case 1:return zve;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:n=new ihb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==rue?'2147483648':''+-b;return n.a;}}k=18;l=SC(_D,Aue,30,k+1,15,1);c=k;p=a;do{j=p;p=Ncb(p,10);l[--c]=ddb(Jcb(48,adb(j,Vcb(p,10))))&Bue}while(Lcb(p,0)!=0);e=adb(adb(adb(k,c),b),1);if(b==0){i&&(l[--c]=45);return Pgb(l,c,k-c)}if(b>0&&Lcb(e,-6)>=0){if(Lcb(e,0)>=0){f=c+ddb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return Pgb(l,c,k-c+1)}for(g=2;Tcb(g,Jcb(Wcb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return Pgb(l,c,k-c)}o=c+1;d=k;m=new jhb;i&&(m.a+='-',m);if(d-o>=1){$gb(m,l[c]);m.a+='.';m.a+=Pgb(l,c+1,k-c-1)}else{m.a+=Pgb(l,c,k-c)}m.a+='E';Lcb(e,0)>0&&(m.a+='+',m);m.a+=''+edb(e);return m.a} +function v1c(a){kdd(a,new vcd(Ccd(Gcd(Dcd(Fcd(Ecd(new Icd,pDe),'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 y1c),pDe)));idd(a,pDe,PBe,mEd(l1c));idd(a,pDe,qxe,mEd(s1c));idd(a,pDe,Cxe,mEd(e1c));idd(a,pDe,Vxe,mEd(f1c));idd(a,pDe,Bxe,mEd(g1c));idd(a,pDe,Dxe,mEd(d1c));idd(a,pDe,zxe,mEd(h1c));idd(a,pDe,Exe,mEd(k1c));idd(a,pDe,gDe,mEd(b1c));idd(a,pDe,fDe,mEd(c1c));idd(a,pDe,eDe,mEd(n1c));idd(a,pDe,kDe,mEd(q1c));idd(a,pDe,lDe,mEd(o1c));idd(a,pDe,mDe,mEd(p1c));idd(a,pDe,jDe,mEd(i1c));idd(a,pDe,cDe,mEd(j1c));idd(a,pDe,dDe,mEd(m1c));idd(a,pDe,hDe,mEd(r1c));idd(a,pDe,iDe,mEd(t1c));idd(a,pDe,bDe,mEd(a1c))} +function Rpd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;q=new Yfd(a.g,a.f);p=Ipd(a);p.a=$wnd.Math.max(p.a,b);p.b=$wnd.Math.max(p.b,c);w=p.a/q.a;k=p.b/q.b;u=p.a-q.a;i=p.b-q.b;if(d){g=!Czd(a)?JD(Pud(a,(gjd(),shd)),86):JD(Pud(Czd(a),(gjd(),shd)),86);h=XD(Pud(a,(gjd(),qid)))===XD((xld(),sld));for(s=new fKd((!a.c&&(a.c=new A3d(R3,a,9,9)),a.c));s.e!=s.i.gc();){r=JD(dKd(s),125);t=JD(Pud(r,xid),64);if(t==(mmd(),kmd)){t=Bpd(r,g);Rud(r,xid,t)}switch(t.g){case 1:h||Mvd(r,r.i*w);break;case 2:Mvd(r,r.i+u);h||Nvd(r,r.j*k);break;case 3:h||Mvd(r,r.i*w);Nvd(r,r.j+i);break;case 4:h||Nvd(r,r.j*k);}}}Ivd(a,p.a,p.b);if(e){for(m=new fKd((!a.n&&(a.n=new A3d(P3,a,1,7)),a.n));m.e!=m.i.gc();){l=JD(dKd(m),157);n=l.i+l.g/2;o=l.j+l.f/2;v=n/q.a;j=o/q.b;if(v+j>=1){if(v-j>0&&o>=0){Mvd(l,l.i+u);Nvd(l,l.j+i*j)}else if(v-j<0&&n>=0){Mvd(l,l.i+u*v);Nvd(l,l.j+i)}}}}Rud(a,(gjd(),Vhd),(Vmd(),f=JD(teb(N2),10),new Krb(f,JD(kDb(f,f.length),10),0)));return new Yfd(w,k)} +function Wdb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw Icb(new agb(vte))}j=a;f=a.length;i=false;if(f>0){b=(RDb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=(RDb(1,a.length+1),a.substr(1));--f;i=b==45}}if(f==0){throw Icb(new agb(nve+j+'"'))}while(a.length>0&&(RDb(0,a.length),a.charCodeAt(0)==48)){a=(RDb(1,a.length+1),a.substr(1));--f}if(f>(_fb(),Zfb)[10]){throw Icb(new agb(nve+j+'"'))}for(e=0;e0){l=-parseInt((QDb(0,d,a.length),a.substr(0,d)),10);a=(RDb(d,a.length+1),a.substr(d));f-=d;c=false}while(f>=g){d=parseInt((QDb(0,g,a.length),a.substr(0,g)),10);a=(RDb(g,a.length+1),a.substr(g));f-=g;if(c){c=false}else{if(Lcb(l,h)<0){throw Icb(new agb(nve+j+'"'))}l=Vcb(l,k)}l=adb(l,d)}if(Lcb(l,0)>0){throw Icb(new agb(nve+j+'"'))}if(!i){l=Wcb(l);if(Lcb(l,0)<0){throw Icb(new agb(nve+j+'"'))}}return l} +function mQd(a){eQd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=xgb(a,Mgb(37));if(e<0){return a}else{i=new khb((QDb(0,e,a.length),a.substr(0,e)));b=SC($D,SFe,30,4,15,1);h=0;d=0;for(g=a.length;ee+2&&xQd((RDb(e+1,a.length),a.charCodeAt(e+1)),VPd,WPd)&&xQd((RDb(e+2,a.length),a.charCodeAt(e+2)),VPd,WPd)){c=BQd((RDb(e+1,a.length),a.charCodeAt(e+1)),(RDb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{$gb(i,((b[0]&31)<<6|b[1]&63)&Bue);break}case 3:{$gb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&Bue);break}}h=0;d=0}}else{for(f=0;f=2){if((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a).i==0){c=(ksd(),e=new Ywd,e);YEd((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a).i>1){m=new oKd((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a));while(m.e!=m.i.gc()){eKd(m)}}ypd(b,JD(SFd((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a),0),170))}if(l){for(d=new fKd((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a));d.e!=d.i.gc();){c=JD(dKd(d),170);for(j=new fKd((!c.a&&(c.a=new VXd(K3,c,5)),c.a));j.e!=j.i.gc();){i=JD(dKd(j),372);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new fKd((!a.n&&(a.n=new A3d(P3,a,1,7)),a.n));g.e!=g.i.gc();){f=JD(dKd(g),157);k=JD(Pud(f,qkd),8);!!k&&Kvd(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} +function EA(a,b,c,d,e){var f,g,h;CA(a,b);g=b[0];f=pgb(c.c,0);h=-1;if(vA(c)){if(d>0){if(g+d>a.length){return false}h=zA((QDb(0,g+d,a.length),a.substr(0,g+d)),b)}else{h=zA(a,b)}}switch(f){case 71:h=wA(a,g,WC(OC(hJ,1),Ote,2,6,[Que,Rue]),b);e.e=h;return true;case 77:return HA(a,b,e,h,g);case 76:return JA(a,b,e,h,g);case 69:return FA(a,b,g,e);case 99:return IA(a,b,g,e);case 97:h=wA(a,g,WC(OC(hJ,1),Ote,2,6,['AM','PM']),b);e.b=h;return true;case 121:return LA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return GA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gB[i]&&(q=i);for(l=new Hmb(a.a.b);l.a=h){IDb(s.b>0);s.a.Xb(s.c=--s.b);break}else if(q.a>i){if(!d){Ylb(q.b,k);q.c=$wnd.Math.min(q.c,i);q.a=$wnd.Math.max(q.a,h);d=q}else{$lb(d.b,q.b);d.a=$wnd.Math.max(d.a,q.a);Jjb(s)}}}if(!d){d=new oDc;d.c=i;d.a=h;Pjb(s,d);Ylb(d.b,k)}}g=a.b;j=0;for(r=new Hmb(c);r.a1){e=t5c(b);l=f.g;o=JD(Pud(b,t4c),104);p=Reb(MD(Pud(b,c4c)));(!b.a&&(b.a=new A3d(Q3,b,10,11)),b.a).i>1&&Reb(MD(Pud(b,(A3c(),w3c))))!=ove&&(f.c+(o.b+o.c))/(f.b+(o.d+o.a))1&&Reb(MD(Pud(b,(A3c(),v3c))))!=ove&&(f.c+(o.b+o.c))/(f.b+(o.d+o.a))>p&&Rud(e,(A3c(),z3c),$wnd.Math.max(Reb(MD(Pud(b,x3c))),Reb(MD(Pud(e,z3c)))-Reb(MD(Pud(b,v3c)))));n=new U5c(d,k);i=T5c(n,e,m);j=i.g;if(j>=l&&j==j){for(g=0;g<(!e.a&&(e.a=new A3d(Q3,e,10,11)),e.a).i;g++){u5c(a,JD(SFd((!e.a&&(e.a=new A3d(Q3,e,10,11)),e.a),g),26),JD(SFd((!b.a&&(b.a=new A3d(Q3,b,10,11)),b.a),g),26))}v5c(b,n);S6c(f,i.c);R6c(f,i.b)}--h}Rud(b,(A3c(),q3c),f.b);Rud(b,r3c,f.c);c.Ug()} +function IVb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;b.Tg('Compound graph postprocessor',1);c=Odb(LD(lNb(a,($xc(),Oxc))));h=JD(lNb(a,(Krc(),Gqc)),229);k=new esb;for(r=h.ec().Jc();r.Ob();){q=JD(r.Pb(),17);g=new kmb(h.cc(q));Fnb();gmb(g,new lWb(a));v=gWb((JDb(0,g.c.length),JD(g.c[0],250)));A=hWb(JD(amb(g,g.c.length-1),250));t=v.i;OXb(A.i,t)?(s=t.e):(s=xYb(t));l=JVb(q,g);_tb(q.a);m=null;for(f=new Hmb(g);f.ajxe;C=$wnd.Math.abs(m.b-o.b)>jxe;(!c&&B&&C||c&&(B||C))&&Qtb(q.a,u)}xe(q.a,d);d.b==0?(m=u):(m=(IDb(d.b!=0),JD(d.c.b.c,8)));KVb(n,l,p);if(hWb(e)==A){if(xYb(A.i)!=e.a){p=new Wfd;FXb(p,xYb(A.i),s)}oNb(q,Erc,p)}LVb(n,q,s);k.a.yc(n,k)}xWb(q,v);yWb(q,A)}for(j=k.a.ec().Jc();j.Ob();){i=JD(j.Pb(),17);xWb(i,null);yWb(i,null)}b.Ug()} +function HTc(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=JD(lNb(a,(DXc(),bXc)),86);k=e==(ojd(),kjd)||e==ljd?jjd:ljd;c=JD(PBb(SBb(new gCb(null,new Wvb(a.b,16)),new uUc),yAb(new QAb,new OAb,new WAb,WC(OC(HL,1),kue,130,0,[(CAb(),AAb)]))),16);i=JD(PBb(WBb(c.Mc(),new wUc(b)),yAb(new QAb,new OAb,new WAb,WC(OC(HL,1),kue,130,0,[AAb]))),16);i.Fc(JD(PBb(WBb(c.Mc(),new yUc(b)),yAb(new QAb,new OAb,new WAb,WC(OC(HL,1),kue,130,0,[AAb]))),18));i.gd(new AUc(k));m=new Dzb(new EUc(e));d=new Yrb;for(h=i.Jc();h.Ob();){g=JD(h.Pb(),240);j=JD(g.a,40);if(Odb(LD(g.c))){m.a.yc(j,(Ndb(),Ldb))==null;(new Ezb(m.a.Xc(j,false))).a.gc()>0&&ejb(d,j,JD((new Ezb(m.a.Xc(j,false))).a.Tc(),40));(new Ezb(m.a.$c(j,true))).a.gc()>1&&ejb(d,JTc(m,j),j)}else{if((new Ezb(m.a.Xc(j,false))).a.gc()>0){f=JD((new Ezb(m.a.Xc(j,false))).a.Tc(),40);XD(f)===XD(Wd(vsb(d.f,j)))&&JD(lNb(j,(MWc(),nWc)),16).Ec(f)}if((new Ezb(m.a.$c(j,true))).a.gc()>1){l=JTc(m,j);XD(Wd(vsb(d.f,l)))===XD(j)&&JD(lNb(l,(MWc(),nWc)),16).Ec(j)}m.a.Ac(j)!=null}}} +function RMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return JD(a.Xb(0),235)}else if(a.gc()<=0){return new HNb}for(e=a.Jc();e.Ob();){c=JD(e.Pb(),235);o=0;k=lte;l=lte;i=rue;j=rue;for(n=new Hmb(c.e);n.ah){t=0;u+=g+r;g=0}QMb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} +function yoe(a){xoe();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=Hgb(a);o=Boe(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return SC($D,SFe,30,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=SC($D,SFe,30,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!Aoe(g=f[k++])||!Aoe(h=f[k++])){return null}b=voe[g];c=voe[h];i=f[k++];j=f[k++];if(voe[i]==-1||voe[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=SC($D,SFe,30,n*3+1,15,1);ohb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=voe[i];if((d&3)!=0)return null;q=SC($D,SFe,30,n*3+2,15,1);ohb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=voe[i];e=voe[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} +function d9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;b.Tg(Jye,1);o=JD(lNb(a,($xc(),Wvc)),222);for(e=new Hmb(a.b);e.a=2){p=true;m=new Hmb(f.j);c=JD(Fmb(m),12);n=null;while(m.a0){d=l.gc();j=YD($wnd.Math.floor((d+1)/2))-1;e=YD($wnd.Math.ceil((d+1)/2))-1;if(b.o==ZMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=JD(l.Xb(k),49);o=JD(p.a,9);if(!csb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Ndb(),Odb(b.f[b.g[u.p].p])&u.k==(UYb(),PYb)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=JD(l.Xb(k),49);q=JD(r.a,9);if(!csb(c,r.b)&&n0){e=JD(amb(q.c.a,w-1),9);g=a.i[e.p];B=$wnd.Math.ceil(DAc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=ove;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} +function oHb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new Afd(b.Jf().a,b.Jf().b,b.Kf().a,b.Kf().b);e=new zfd;if(a.c){for(g=new Hmb(b.Pf());g.a0&&HYb(n,(JDb(c,b.c.length),JD(b.c[c],25)));f=0;m=true;r=$u(Uu(yYb(n)));for(i=r.Jc();i.Ob();){h=JD(i.Pb(),17);m=false;l=h;for(j=0;j(JDb(j,b.c.length),JD(b.c[j],25)).a.c.length?HYb(e,(JDb(j,b.c.length),JD(b.c[j],25))):GYb(e,d+f,(JDb(j,b.c.length),JD(b.c[j],25)));l=v8b(l,e)}c>0&&(f+=1)}if(m){for(j=0;j(JDb(j,b.c.length),JD(b.c[j],25)).a.c.length?HYb(e,(JDb(j,b.c.length),JD(b.c[j],25))):GYb(e,d+f,(JDb(j,b.c.length),JD(b.c[j],25)))}c>0&&(f+=1)}g=false;for(p=new Yr(Dr(BYb(n).a.Jc(),new Dl));Wr(p);){o=JD(Xr(p),17);l=o;for(k=c+1;k(JDb(j,b.c.length),JD(b.c[j],25)).a.c.length?HYb(q,(JDb(j,b.c.length),JD(b.c[j],25))):GYb(q,d+1,(JDb(j,b.c.length),JD(b.c[j],25)))}}g&&(f+=1);g=true}return f>0?f-1:0} +function fre(a,b){Tqe();var c,d,e,f,g,h,i,j,k,l,m,n,o;if(ijb(uqe)==0){l=SC(ycb,Ote,121,wqe.length,0,1);for(g=0;gj&&(d.a+=Ogb(SC(_D,Aue,30,-j,15,1)));d.a+='Is';if(xgb(i,Mgb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=JD(lNb(d,(Krc(),Irc)),16);if(!r){f=new imb;oNb(d,Irc,f)}else if(m){f=r}else{e=JD(lNb(d,zqc),16);if(!e){f=new imb;oNb(d,zqc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=JD(lNb(d,(Krc(),zqc)),16);if(!e){f=new imb;oNb(d,zqc,f)}else if(l){f=e}else{r=JD(lNb(d,Irc),16);if(!r){f=new imb;oNb(d,Irc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Ec(a);oNb(a,(Krc(),Cqc),c);if(b.d==c){yWb(b,null);c.e.c.length+c.g.c.length==0&&qZb(c,null);a0b(c)}else{xWb(b,null);c.e.c.length+c.g.c.length==0&&qZb(c,null)}_tb(b.a)} +function LDc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;c.Tg('MinWidth layering',1);n=b.b;A=b.a;I=JD(lNb(b,($xc(),swc)),15).a;h=JD(lNb(b,twc),15).a;a.b=Reb(MD(lNb(b,txc)));a.d=ove;for(u=new Hmb(A);u.an){if(f){Stb(w,m);Stb(B,zfb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}Mvd(h,H);Nvd(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(F0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,dRc(t,g,s,A)));if(j=a.a){d=B3b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ylb(h,new ard(s,d))}}B=new imb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new s$b(a.b),Pjb(q,C),IDb(q.b0){m=k<100?null:new iJd(k);j=new aGd(b);o=j.g;r=SC(cE,Pue,30,k,15,1);d=0;u=new _Fd(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):XD(n)===XD(o[i])){if(r.length<=d){q=r;r=SC(cE,Pue,30,2*r.length,15,1);ohb(q,0,r,0,d)}r[d++]=e;YEd(u,o[i]);break v}}n=n;if(XD(n)===XD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=SC(cE,Pue,30,d,15,1);ohb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){VFd(a,r[g])}if(d!=k){for(e=k;--e>=d;){VFd(j,e)}q=r;r=SC(cE,Pue,30,d,15,1);ohb(q,0,r,0,d)}b=j}}}else{b=cFd(a,b);for(e=a.i;--e>=0;){if(b.Gc(a.g[e])){VFd(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?bXd(a,4,b.Jc().Pb(),null,r[0],p):bXd(a,6,b,r,r[0],p);m=c<100?null:new iJd(c);for(e=b.Jc();e.Ob();){n=e.Pb();m=mee(a,JD(n,75),m)}if(!m){zsd(a.e,l)}else{m.lj(l);m.mj()}}else{m=vJd(b.gc());for(e=b.Jc();e.Ob();){n=e.Pb();m=mee(a,JD(n,75),m)}!!m&&m.mj()}return true}else{return false}} +function JUb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new QUb(b);c.a||CUb(b);j=BUb(b);i=new Np;q=new cVb;for(p=new Hmb(b.a);p.a0||c.o==ZMc&&e=c} +function kKc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;for(t=a.a,u=0,v=t.length;u0){l=JD(amb(m.c.a,g-1),9);B=DAc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(g1&&(g=$wnd.Math.min(g,$wnd.Math.abs(JD(au(h.a,1),8).b-k.b)))}}}}}else{for(p=new Hmb(b.j);p.ae){f=m.a-e;g=lte;d.c.length=0;e=m.a}if(m.a>=e){nDb(d.c,h);h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(JD(au(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new sZb;qZb(n,b);rZb(n,(mmd(),Uld));n.n.a=b.o.a/2;r=new sZb;qZb(r,b);rZb(r,jmd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new Hmb(d);i.a=j.b?xWb(h,r):xWb(h,n)}else{j=JD(Ztb(h.a),8);q=h.a.b==0?lZb(h.c):JD(Vtb(h.a),8);q.b>=j.b?yWb(h,r):yWb(h,n)}l=JD(lNb(h,($xc(),nwc)),78);!!l&&ye(l,j,true)}b.n.a=e-b.o.a/2}} +function $Yc(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(h=Wtb(a.b,0);h.b!=h.d.c;){g=JD(iub(h),40);if(sgb(g.c,vCe)){continue}j=ESc(g,a);b==(ojd(),kjd)||b==ljd?gmb(j,new ZZc):gmb(j,new b$c);i=j.c.length;for(d=0;d=0?(n=rmd(h)):(n=omd(rmd(h)));a.of(gxc,n)}j=new Wfd;m=false;if(a.nf(_wc)){Tfd(j,JD(a.mf(_wc),8));m=true}else{Sfd(j,g.a/2,g.b/2)}switch(n.g){case 4:oNb(k,qwc,(Qrc(),Mrc));oNb(k,Iqc,(Eoc(),Doc));k.o.b=g.b;p<0&&(k.o.a=-p);rZb(l,(mmd(),Tld));m||(j.a=g.a);j.a-=g.a;break;case 2:oNb(k,qwc,(Qrc(),Orc));oNb(k,Iqc,(Eoc(),Boc));k.o.b=g.b;p<0&&(k.o.a=-p);rZb(l,(mmd(),lmd));m||(j.a=0);break;case 1:oNb(k,Vqc,(kqc(),jqc));k.o.a=g.a;p<0&&(k.o.b=-p);rZb(l,(mmd(),jmd));m||(j.b=g.b);j.b-=g.b;break;case 3:oNb(k,Vqc,(kqc(),hqc));k.o.a=g.a;p<0&&(k.o.b=-p);rZb(l,(mmd(),Uld));m||(j.b=0);}Tfd(l.n,j);oNb(k,_wc,j);if(b==rld||b==tld||b==sld){o=0;if(b==rld&&a.nf(cxc)){switch(n.g){case 1:case 2:o=JD(a.mf(cxc),15).a;break;case 3:case 4:o=-JD(a.mf(cxc),15).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==tld&&(o/=e.b);break;case 1:case 3:o=f.a;b==tld&&(o/=e.a);}}oNb(k,qrc,o)}oNb(k,Oqc,n);return k} +function QGd(){OGd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=RGd((Fnb(),new Eob(new nkb(NGd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=RGd((Fnb(),new Eob(new nkb(NGd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=RGd((Fnb(),new Eob(new nkb(NGd.d))));f.postMessage({id:b.id,data:e});break;case 'register':UGd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':SGd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} +function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} +if(typeof document===Yve&&typeof self!==Yve){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==Yve&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} +function vod(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new Hmb(a.b);j.ap){if(f){Stb(w,n);Stb(B,zfb(k.b-1));Ylb(a.d,o);h.c.length=0}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}nDb(h.c,i);Kod(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}$lb(a.a,h);Ylb(a.d,JD(amb(h,h.c.length-1),167));l=$wnd.Math.max(l,d);F=I+n+c.a;if(Fe.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=JD(bjb(a.f,g.d.i),60);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Yr(Dr(yYb(n).a.Jc(),new Dl));Wr(h);){g=JD(Xr(h),17);if(g.a.b!=0){b=JD(Vtb(g.a),8);if(g.d.j==(mmd(),Uld)){q=new Mfc(b,new Yfd(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;nDb(p.c,q)}if(g.d.j==jmd){q=new Mfc(b,new Yfd(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;nDb(p.c,q)}}}}}return p} +function Wsd(a,b,c){var d,e,f,g,h,i,j,k,l,m;i=new imb;l=b.length;g=Y3d(c);for(j=0;j=o){if(s>o){n.c.length=0;o=s}nDb(n.c,g)}}if(n.c.length!=0){m=JD(amb(n,Nvb(b,n.c.length)),132);F.a.Ac(m)!=null;m.s=p++;uRc(m,C,w);n.c.length=0}}u=a.c.length+1;for(h=new Hmb(a);h.aD.s){Jjb(c);dmb(D.i,d);if(d.c>0){d.a=D;Ylb(D.t,d);d.b=A;Ylb(A.i,d)}}}}} +function l9b(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new jmb(b.b);u=new jmb(b.b);m=new jmb(b.b);B=new jmb(b.b);q=new jmb(b.b);for(A=Wtb(b,0);A.b!=A.d.c;){v=JD(iub(A),12);for(h=new Hmb(v.g);h.a0;r=v.g.c.length>0;j&&r?(nDb(m.c,v),true):j?(nDb(p.c,v),true):r&&(nDb(u.c,v),true)}for(o=new Hmb(p);o.as.mh()-j.b&&(m=s.mh()-j.b);n>s.nh()-j.d&&(n=s.nh()-j.d);k0){for(t=Wtb(a.f,0);t.b!=t.d.c;){s=JD(iub(t),9);s.p+=m-a.e}_Cc(a);_tb(a.f);YCc(a,d,n)}else{Qtb(a.f,n);n.p=d;a.e=$wnd.Math.max(a.e,d);for(f=new Yr(Dr(yYb(n).a.Jc(),new Dl));Wr(f);){e=JD(Xr(f),17);if(!e.c.i.c&&e.c.i.k==(UYb(),OYb)){Qtb(a.f,e.c.i);e.c.i.p=d-1}}a.c=d}}}else{_Cc(a);_tb(a.f);d=0;if(Wr(new Yr(Dr(yYb(n).a.Jc(),new Dl)))){m=0;m=ZCc(m,n);d=m+2;YCc(a,d,n)}else{Qtb(a.f,n);n.p=0;a.e=$wnd.Math.max(a.e,0);a.b=JD(amb(a.d.b,0),25);a.c=0}}}}a.f.b==0||_Cc(a);a.d.a.c.length=0;r=new imb;for(j=new Hmb(a.d.b);j.a=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw Icb(new Joe(VGd((Fbe(),wHe))))}}else{throw Icb(new Joe(VGd((Fbe(),sHe))))}c=d;if(b==44){if(e>=a.j){throw Icb(new Joe(VGd((Fbe(),uHe))))}else if((b=pgb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw Icb(new Joe(VGd((Fbe(),wHe))))}if(d>c)throw Icb(new Joe(VGd((Fbe(),vHe))))}else{c=-1}}if(b!=125)throw Icb(new Joe(VGd((Fbe(),tHe))));if(a._l(e)){f=(Tqe(),Tqe(),++Sqe,new Ire(9,f));a.d=e+1}else{f=(Tqe(),Tqe(),++Sqe,new Ire(3,f));a.d=e}f.Mm(d);f.Lm(c);Koe(a)}}return f} +function Nlc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;e=1;n=new imb;for(d=0;d=JD(amb(a.b,d),25).a.c.length/4){continue}}if(JD(amb(a.b,d),25).a.c.length>b){u=new imb;Ylb(u,JD(amb(a.b,d),25));for(g=0;g1){o=new oKd((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a));while(o.e!=o.i.gc()){eKd(o)}}g=JD(SFd((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a),0),170);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Ovb(b,24)*Nve*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(ksd(),i=new evd,i);cvd(e,m);dvd(e,n);YEd((!g.a&&(g.a=new VXd(K3,g,5)),g.a),e)}} +function Hib(a,b){Eib();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return zve;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:w=new ihb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=SC(_D,Aue,30,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=Kcb(h,yve);do{p=H;H=Ncb(H,10);u[--c]=48+ddb(adb(p,Vcb(H,10)))&Bue}while(Lcb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&Bue}while(H!=0)}}else{D=SC(cE,Pue,30,o,15,1);G=o;ohb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=Jcb(Zcb(A,32),Kcb(D[j],yve));r=Fib(F);D[j]=ddb(r);A=ddb($cb(r,32))}s=ddb(A);q=c;do{u[--c]=48+s%10&Bue}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return Pgb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return Pgb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return Pgb(u,c,t-c)}C=c+1;f=t;v=new jhb;n&&(v.a+='-',v);if(f-C>=1){$gb(v,u[c]);v.a+='.';v.a+=Pgb(u,c+1,t-c-1)}else{v.a+=Pgb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} +function q7c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Yrb;c=(urd(),new Ird(a.c));d=new pHb(c);lHb(d);t=OD(Pud(a.c,(W8c(),P8c)));i=JD(Pud(a.c,R8c),330);v=JD(Pud(a.c,S8c),427);g=JD(Pud(a.c,K8c),477);u=JD(Pud(a.c,Q8c),428);a.j=Reb(MD(Pud(a.c,T8c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw Icb(new hfb(UDe+(i.f!=null?i.f:''+i.g)));}a.d=new Z7c(h,v,g);oNb(a.d,(nMb(),lMb),LD(Pud(a.c,M8c)));a.d.c=Odb(LD(Pud(a.c,L8c)));if(Azd(a.c).i==0){return a.d}for(l=new fKd(Azd(a.c));l.e!=l.i.gc();){k=JD(dKd(l),26);n=k.g/2;m=k.f/2;w=new Yfd(k.i+n,k.j+m);while(_ib(a.g,w)){Ffd(w,($wnd.Math.random()-0.5)*jxe,($wnd.Math.random()-0.5)*jxe)}p=JD(Pud(k,(gjd(),Phd)),140);q=new sMb(w,new Afd(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ylb(a.d.i,q);ejb(a.g,w,new ard(q,k))}switch(u.g){case 0:if(t==null){a.d.d=JD(amb(a.d.i,0),68)}else{for(s=new Hmb(a.d.i);s.a0?G+1:1}for(g=new Hmb(w.g);g.a0?G+1:1}}a.d[j]==0?Qtb(a.f,p):a.a[j]==0&&Qtb(a.g,p);++j}o=-1;n=1;l=new imb;a.e=JD(lNb(b,(Krc(),trc)),234);while(L>0){while(a.f.b!=0){I=JD(Ytb(a.f),9);a.c[I.p]=o--;LBc(a,I);--L}while(a.g.b!=0){J=JD(Ytb(a.g),9);a.c[J.p]=n++;LBc(a,J);--L}if(L>0){m=rue;for(s=new Hmb(t);s.a=m){if(u>m){l.c.length=0;m=u}nDb(l.c,p)}}}k=a.qg(l);a.c[k.p]=n++;LBc(a,k);--L}}H=t.c.length+1;for(j=0;ja.c[K]){wWb(d,true);oNb(b,Hqc,(Ndb(),true))}}}}a.a=null;a.d=null;a.c=null;_tb(a.g);_tb(a.f);c.Ug()} +function Hpd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;v=JD(SFd((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a),0),170);k=new jgd;u=new Yrb;w=Kpd(v);wsb(u.f,v,w);m=new Yrb;d=new aub;for(o=Gl(yl(WC(OC(VI,1),rte,20,0,[(!b.d&&(b.d=new Wge(N3,b,8,5)),b.d),(!b.e&&(b.e=new Wge(N3,b,7,4)),b.e)])));Wr(o);){n=JD(Xr(o),85);if((!a.a&&(a.a=new A3d(M3,a,6,6)),a.a).i!=1){throw Icb(new hfb(nFe+(!a.a&&(a.a=new A3d(M3,a,6,6)),a.a).i))}if(n!=a){q=JD(SFd((!n.a&&(n.a=new A3d(M3,n,6,6)),n.a),0),170);Ttb(d,q,d.c.b,d.c);p=JD(Wd(vsb(u.f,q)),13);if(!p){p=Kpd(q);wsb(u.f,q,p)}l=c?Vfd(new Zfd(JD(amb(w,w.c.length-1),8)),JD(amb(p,p.c.length-1),8)):Vfd(new Zfd((JDb(0,w.c.length),JD(w.c[0],8))),(JDb(0,p.c.length),JD(p.c[0],8)));wsb(m.f,q,l)}}if(d.b!=0){r=JD(amb(w,c?w.c.length-1:0),8);for(j=1;j1&&(Ttb(k,r,k.c.b,k.c),true);kub(e)}}}r=s}}return k} +function mYc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;c.Tg(OCe,1);D=JD(PBb(SBb(new gCb(null,new Wvb(b,16)),new AYc),yAb(new QAb,new OAb,new WAb,WC(OC(HL,1),kue,130,0,[(CAb(),AAb)]))),16);k=JD(PBb(SBb(new gCb(null,new Wvb(b,16)),new CYc(b)),yAb(new QAb,new OAb,new WAb,WC(OC(HL,1),kue,130,0,[AAb]))),16);o=JD(PBb(SBb(new gCb(null,new Wvb(b,16)),new EYc(b)),yAb(new QAb,new OAb,new WAb,WC(OC(HL,1),kue,130,0,[AAb]))),16);p=SC($Z,ACe,40,b.gc(),0,1);for(g=0;g=0&&C=0&&!p[n]){p[n]=e;k.ed(h);--h;break}n=C-m;if(n=0&&!p[n]){p[n]=e;k.ed(h);--h;break}}}o.gd(new GYc);for(i=p.length-1;i>=0;i--){if(!p[i]&&!o.dc()){p[i]=JD(o.Xb(0),40);o.ed(0)}}for(j=0;jm&&m7c((JDb(m,b.c.length),JD(b.c[m],186)),k);k=null;while(b.c.length>m&&(JDb(m,b.c.length),JD(b.c[m],186)).a.c.length==0){dmb(b,(JDb(m,b.c.length),b.c[m]))}}if(!k){--g;continue}if(!Odb(LD(JD(amb(k.b,0),26).mf((D4c(),i4c))))&&q5c(b,o,f,k,q,c,m,d)){p=true;continue}if(q){n=o.b;l=k.f;if(!Odb(LD(JD(amb(k.b,0),26).mf(i4c)))&&r5c(b,o,f,k,c,m,d,e)){p=true;if(n=a.j){a.a=-1;a.c=1;return}b=pgb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw Icb(new Joe(VGd((Fbe(),PGe))));a.a=pgb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(pgb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw Icb(new Joe(VGd((Fbe(),QGe))));b=pgb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw Icb(new Joe(VGd((Fbe(),QGe))));b=pgb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw Icb(new Joe(VGd((Fbe(),RGe))));break;case 35:while(a.d=a.j)throw Icb(new Joe(VGd((Fbe(),PGe))));a.a=pgb(a.i,a.d++);break;default:d=0;}a.c=d} +function KTc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;c.Tg('Process compaction',1);if(!Odb(LD(lNb(b,(DXc(),_Wc))))){return}e=JD(lNb(b,bXc),86);n=Reb(MD(lNb(b,vXc)));LTc(a,b,e);HTc(b,n/2/2);o=b.b;yub(o,new $Tc(e));for(j=Wtb(o,0);j.b!=j.d.c;){i=JD(iub(j),40);if(!Odb(LD(lNb(i,(MWc(),JWc))))){d=ITc(i,e);p=HSc(i,b);l=0;m=0;if(d){q=d.e;switch(e.g){case 2:l=q.a-n-i.f.a;p.e.a-n-i.f.al&&(l=p.e.a+p.f.a+n);m=l+i.f.a;break;case 4:l=q.b-n-i.f.b;p.e.b-n-i.f.bl&&(l=p.e.b+p.f.b+n);m=l+i.f.b;}}else if(p){switch(e.g){case 2:l=p.e.a-n-i.f.a;m=l+i.f.a;break;case 1:l=p.e.a+p.f.a+n;m=l+i.f.a;break;case 4:l=p.e.b-n-i.f.b;m=l+i.f.b;break;case 3:l=p.e.b+p.f.b+n;m=l+i.f.b;}}if(XD(lNb(b,eXc))===XD((fWc(),cWc))){f=l;g=m;h=TBb(SBb(new gCb(null,new Wvb(a.a,16)),new cUc(f,g)));if(h.a!=null){e==(ojd(),kjd)||e==ljd?(i.e.a=l):(i.e.b=l)}else{e==(ojd(),kjd)||e==njd?(h=TBb(SBb(bCb(new gCb(null,new Wvb(a.a,16))),new qUc(f)))):(h=TBb(SBb(bCb(new gCb(null,new Wvb(a.a,16))),new sUc(f))));h.a!=null&&(e==kjd||e==ljd?(i.e.a=Reb(MD((IDb(h.a!=null),JD(h.a,49)).a))):(i.e.b=Reb(MD((IDb(h.a!=null),JD(h.a,49)).a))))}if(h.a!=null){k=bmb(a.a,(IDb(h.a!=null),h.a),0);if(k>0&&k!=JD(lNb(i,BXc),15).a){oNb(i,oWc,(Ndb(),true));oNb(i,BXc,zfb(k))}}}else{e==(ojd(),kjd)||e==ljd?(i.e.a=l):(i.e.b=l)}}}c.Ug()} +function JCc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;c.Tg('Coffman-Graham Layering',1);if(b.a.c.length==0){c.Ug();return}v=JD(lNb(b,($xc(),owc)),15).a;i=0;g=0;for(m=new Hmb(b.a);m.a=v||!ECc(r,d))&&(d=GCc(b,k));HYb(r,d);for(f=new Yr(Dr(yYb(r).a.Jc(),new Dl));Wr(f);){e=JD(Xr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(PDb(pvb(n,p),Bve),true)}}for(j=k.c.length-1;j>=0;--j){Ylb(b.b,(JDb(j,k.c.length),JD(k.c[j],25)))}b.a.c.length=0;c.Ug()} +function Dpe(a){var b,c,d,e,f,g,h,i,j;a.b=1;Koe(a);b=null;if(a.c==0&&a.a==94){Koe(a);b=(Tqe(),Tqe(),++Sqe,new vre(4));pre(b,0,GJe);h=(null,++Sqe,new vre(4))}else{h=(Tqe(),Tqe(),++Sqe,new vre(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){ure(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:sre(h,Cpe(c));d=true;break;case 105:case 73:case 99:case 67:c=(sre(h,Cpe(c)),-1);c<0&&(d=true);break;case 112:case 80:i=Qoe(a,c);if(!i)throw Icb(new Joe(VGd((Fbe(),bHe))));sre(h,i);d=true;break;default:c=Bpe(a);}}else if(j==24&&!e){if(b){ure(b,h);h=b}f=Dpe(a);ure(h,f);if(a.c!=0||a.a!=93)throw Icb(new Joe(VGd((Fbe(),fHe))));break}Koe(a);if(!d){if(j==0){if(c==91)throw Icb(new Joe(VGd((Fbe(),gHe))));if(c==93)throw Icb(new Joe(VGd((Fbe(),hHe))));if(c==45&&!e&&a.a!=93)throw Icb(new Joe(VGd((Fbe(),iHe))))}if(a.c!=0||a.a!=45||c==45&&e){pre(h,c,c)}else{Koe(a);if((j=a.c)==1)throw Icb(new Joe(VGd((Fbe(),dHe))));if(j==0&&a.a==93){pre(h,c,c);pre(h,45,45)}else if(j==0&&a.a==93||j==24){throw Icb(new Joe(VGd((Fbe(),iHe))))}else{g=a.a;if(j==0){if(g==91)throw Icb(new Joe(VGd((Fbe(),gHe))));if(g==93)throw Icb(new Joe(VGd((Fbe(),hHe))));if(g==45)throw Icb(new Joe(VGd((Fbe(),iHe))))}else j==10&&(g=Bpe(a));Koe(a);if(c>g)throw Icb(new Joe(VGd((Fbe(),lHe))));pre(h,c,g)}}}e=false}if(a.c==1)throw Icb(new Joe(VGd((Fbe(),dHe))));tre(h);qre(h);a.b=0;Koe(a);return h} +function z8b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;u=false;do{u=false;for(f=b?(new ckb(a.a.b)).a.gc()-2:1;b?f>=0:f<(new ckb(a.a.b)).a.gc();f+=b?-1:1){e=H_b(a.a,zfb(f));for(n=0;nJD(lNb(q,grc),15).a)&&(t=false)}if(!t){continue}i=b?f+1:f-1;h=H_b(a.a,zfb(i));g=false;s=true;d=false;for(k=Wtb(h,0);k.b!=k.d.c;){j=JD(iub(k),9);if(mNb(j,grc)){if(j.p!=l.p){g=g|(b?JD(lNb(j,grc),15).aJD(lNb(l,grc),15).a);s=false}}else if(!g&&s){if(j.k==(UYb(),OYb)){d=true;b?(m=JD(Xr(new Yr(Dr(yYb(j).a.Jc(),new Dl))),17).c.i):(m=JD(Xr(new Yr(Dr(BYb(j).a.Jc(),new Dl))),17).d.i);if(m==l){b?(c=JD(Xr(new Yr(Dr(BYb(j).a.Jc(),new Dl))),17).d.i):(c=JD(Xr(new Yr(Dr(yYb(j).a.Jc(),new Dl))),17).c.i);(b?JD(G_b(a.a,c),15).a-JD(G_b(a.a,m),15).a:JD(G_b(a.a,m),15).a-JD(G_b(a.a,c),15).a)<=2&&(s=false)}}}}if(d&&s){b?(c=JD(Xr(new Yr(Dr(BYb(l).a.Jc(),new Dl))),17).d.i):(c=JD(Xr(new Yr(Dr(yYb(l).a.Jc(),new Dl))),17).c.i);(b?JD(G_b(a.a,c),15).a-JD(G_b(a.a,l),15).a:JD(G_b(a.a,l),15).a-JD(G_b(a.a,c),15).a)<=2&&c.k==(UYb(),RYb)&&(s=false)}if(g||s){p=E8b(a,l,b);while(p.a.gc()!=0){o=JD(p.a.ec().Jc().Pb(),9);p.a.Ac(o)!=null;xe(p,E8b(a,o,b))}--n;u=true}}}}while(u)} +function V8d(a){gyd(a.c,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'http://www.w3.org/2001/XMLSchema#decimal']));gyd(a.d,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'http://www.w3.org/2001/XMLSchema#integer']));gyd(a.e,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'http://www.w3.org/2001/XMLSchema#boolean']));gyd(a.f,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'EBoolean',AGe,'EBoolean:Object']));gyd(a.i,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'http://www.w3.org/2001/XMLSchema#byte']));gyd(a.g,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'http://www.w3.org/2001/XMLSchema#hexBinary']));gyd(a.j,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'EByte',AGe,'EByte:Object']));gyd(a.n,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'EChar',AGe,'EChar:Object']));gyd(a.t,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'http://www.w3.org/2001/XMLSchema#double']));gyd(a.u,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'EDouble',AGe,'EDouble:Object']));gyd(a.F,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'http://www.w3.org/2001/XMLSchema#float']));gyd(a.G,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'EFloat',AGe,'EFloat:Object']));gyd(a.I,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'http://www.w3.org/2001/XMLSchema#int']));gyd(a.J,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'EInt',AGe,'EInt:Object']));gyd(a.N,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'http://www.w3.org/2001/XMLSchema#long']));gyd(a.O,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'ELong',AGe,'ELong:Object']));gyd(a.Z,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'http://www.w3.org/2001/XMLSchema#short']));gyd(a.$,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'EShort',AGe,'EShort:Object']));gyd(a._,kIe,WC(OC(hJ,1),Ote,2,6,[xIe,'http://www.w3.org/2001/XMLSchema#string']))} +function $xc(){$xc=ndb;qxc=(gjd(),Fid);rxc=Gid;sxc=Hid;txc=Iid;vxc=Jid;wxc=Kid;zxc=Mid;Bxc=Oid;Cxc=Pid;Axc=Nid;Dxc=Qid;Fxc=Rid;Hxc=Uid;yxc=Lid;pxc=(cvc(),uuc);uxc=vuc;xxc=wuc;Exc=xuc;jxc=new qEd(Aid,zfb(0));kxc=ruc;lxc=suc;mxc=tuc;Xxc=Vuc;Pxc=Auc;Qxc=Duc;Txc=Luc;Rxc=Guc;Sxc=Iuc;Zxc=$uc;Yxc=Xuc;Vxc=Ruc;Uxc=Puc;Wxc=Tuc;Awc=Vtc;ywc=Qtc;xwc=Otc;zwc=Stc;Kwc=iuc;Lwc=juc;_vc=ktc;awc=ntc;Lxc=Xid;Nxc=_id;Kxc=Wid;Jxc=Vid;Mxc=(rnd(),ond);new qEd(Yid,Mxc);Twc=new bZb(12);Swc=new qEd(cid,Twc);Xvc=(Ujd(),Qjd);Wvc=new qEd(xhd,Xvc);axc=new qEd(pid,0);nxc=new qEd(Bid,zfb(1));hvc=new qEd(ihd,nxe);Rwc=aid;bxc=qid;gxc=xid;Ovc=rhd;fvc=ghd;ewc=Chd;oxc=new qEd(Eid,(Ndb(),true));jwc=Fhd;kwc=Ghd;Nwc=Vhd;Qwc=$hd;Owc=Xhd;Rvc=(ojd(),mjd);Pvc=new qEd(shd,Rvc);Fwc=Thd;Ewc=Rhd;exc=uid;dxc=tid;fxc=wid;Wwc=(lld(),kld);new qEd(iid,Wwc);Ywc=lid;Zwc=mid;$wc=nid;Xwc=kid;Oxc=zuc;wwc=Mtc;vwc=Ktc;Ixc=yuc;qwc=Ctc;Nvc=Ysc;Mvc=Wsc;Cvc=Fsc;Dvc=Gsc;Fvc=Lsc;Evc=Hsc;Lvc=Usc;Cwc=Xtc;Dwc=Ytc;mwc=vtc;Mwc=nuc;Hwc=auc;cwc=qtc;Jwc=guc;Zvc=gtc;$vc=itc;Bvc=phd;Gwc=Ztc;lvc=gsc;kvc=esc;jvc=dsc;gwc=ttc;fwc=stc;hwc=utc;Pwc=Yhd;nwc=Nhd;bwc=zhd;Uvc=vhd;Tvc=uhd;Gvc=Osc;cxc=sid;ivc=ohd;iwc=Ehd;_wc=oid;Uwc=eid;Vwc=gid;swc=Ftc;twc=Htc;ixc=zid;gvc=csc;uwc=Jtc;Vvc=ctc;Svc=atc;Bwc=Phd;owc=ztc;Iwc=duc;Gxc=Sid;Qvc=$sc;hxc=puc;Yvc=etc;Hvc=Qsc;Ivc=Rsc;pwc=Btc;Jvc=Ssc;lwc=Ihd;rwc=Etc;Kvc=Tsc;Avc=Dsc;xvc=zsc;nvc=ksc;ovc=lsc;yvc=Bsc;mvc=isc;zvc=Csc;wvc=ysc;vvc=xsc;uvc=wsc;pvc=msc;tvc=usc;svc=ssc;qvc=osc;rvc=qsc;dwc=rtc} +function YYc(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o;m=JD(d.a,15).a;n=JD(d.b,15).a;l=a.b;o=a.c;h=0;k=0;if(b==(ojd(),kjd)||b==ljd){k=Yub(eBb(XBb(WBb(new gCb(null,new Wvb(c.b,16)),new x$c),new xZc)));if(l.e.b+l.f.b/2>k){j=++n;h=Reb(MD(Pub(ZBb(WBb(new gCb(null,new Wvb(c.b,16)),new z$c(e,j)),new zZc))))}else{i=++m;h=Reb(MD(Pub($Bb(WBb(new gCb(null,new Wvb(c.b,16)),new B$c(e,i)),new DZc))))}}else{k=Yub(eBb(XBb(WBb(new gCb(null,new Wvb(c.b,16)),new TZc),new HZc)));if(l.e.a+l.f.a/2>k){j=++n;h=Reb(MD(Pub(ZBb(WBb(new gCb(null,new Wvb(c.b,16)),new VZc(e,j)),new JZc))))}else{i=++m;h=Reb(MD(Pub($Bb(WBb(new gCb(null,new Wvb(c.b,16)),new XZc(e,i)),new NZc))))}}if(b==kjd){Stb(a.a,new Yfd(Reb(MD(lNb(l,(MWc(),BWc))))-e,h));Stb(a.a,new Yfd(o.e.a+o.f.a+e+f,h));Stb(a.a,new Yfd(o.e.a+o.f.a+e+f,o.e.b+o.f.b/2));Stb(a.a,new Yfd(o.e.a+o.f.a,o.e.b+o.f.b/2))}else if(b==ljd){Stb(a.a,new Yfd(Reb(MD(lNb(l,(MWc(),AWc))))+e,l.e.b+l.f.b/2));Stb(a.a,new Yfd(l.e.a+l.f.a+e,h));Stb(a.a,new Yfd(o.e.a-e-f,h));Stb(a.a,new Yfd(o.e.a-e-f,o.e.b+o.f.b/2));Stb(a.a,new Yfd(o.e.a,o.e.b+o.f.b/2))}else if(b==njd){Stb(a.a,new Yfd(h,Reb(MD(lNb(l,(MWc(),BWc))))-e));Stb(a.a,new Yfd(h,o.e.b+o.f.b+e+f));Stb(a.a,new Yfd(o.e.a+o.f.a/2,o.e.b+o.f.b+e+f));Stb(a.a,new Yfd(o.e.a+o.f.a/2,o.e.b+o.f.b+e))}else{a.a.b==0||(JD(Vtb(a.a),8).b=Reb(MD(lNb(l,(MWc(),AWc))))+e*JD(g.b,15).a);Stb(a.a,new Yfd(h,Reb(MD(lNb(l,(MWc(),AWc))))+e*JD(g.b,15).a));Stb(a.a,new Yfd(h,o.e.b-e*JD(g.a,15).a-f))}return new ard(zfb(m),zfb(n))} +function yQd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=ZPd;j=null;f=null;h=0;i=qQd(a,h,XPd,YPd);if(i=0&&sgb(a.substr(h,'//'.length),'//')){h+=2;i=qQd(a,h,$Pd,_Pd);d=(QDb(h,i,a.length),a.substr(h,i-h));h=i}else if(l!=null&&(h==a.length||(RDb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ygb(a,Mgb(35),h);i==-1&&(i=a.length);d=(QDb(h,i,a.length),a.substr(h,i-h));h=i}if(!c&&h0&&pgb(k,k.length-1)==58){e=k;h=i}}if(hg){klc(a,b,c);return 1}else{klc(a,c,b);return -1}}for(s=a.f,t=0,u=s.length;t0?klc(a,b,c):klc(a,c,b);return d}if(!mNb(b,(Krc(),grc))||!mNb(c,grc)){f=ilc(a,b);h=ilc(a,c);if(f>h){klc(a,b,c);return 1}else{klc(a,c,b);return -1}}}if(!m&&!o){d=jlc(a,b,c);if(d!=0){d>0?klc(a,b,c):klc(a,c,b);return d}}}if(mNb(b,(Krc(),grc))&&mNb(c,grc)){f=glc(b,c,a.c,JD(lNb(a.c,frc),15).a);h=glc(c,b,a.c,JD(lNb(a.c,frc),15).a);if(f>h){klc(a,b,c);return 1}else{klc(a,c,b);return -1}}else{klc(a,c,b);return -1}} +function oVb(){oVb=ndb;$Tb();nVb=new Np;Rc(nVb,(mmd(),$ld),Zld);Rc(nVb,imd,Zld);Rc(nVb,_ld,Zld);Rc(nVb,fmd,Zld);Rc(nVb,emd,Zld);Rc(nVb,cmd,Zld);Rc(nVb,fmd,$ld);Rc(nVb,Zld,Vld);Rc(nVb,$ld,Vld);Rc(nVb,imd,Vld);Rc(nVb,_ld,Vld);Rc(nVb,dmd,Vld);Rc(nVb,fmd,Vld);Rc(nVb,emd,Vld);Rc(nVb,cmd,Vld);Rc(nVb,Yld,Vld);Rc(nVb,Zld,gmd);Rc(nVb,$ld,gmd);Rc(nVb,Vld,gmd);Rc(nVb,imd,gmd);Rc(nVb,_ld,gmd);Rc(nVb,dmd,gmd);Rc(nVb,fmd,gmd);Rc(nVb,Yld,gmd);Rc(nVb,hmd,gmd);Rc(nVb,emd,gmd);Rc(nVb,amd,gmd);Rc(nVb,cmd,gmd);Rc(nVb,$ld,imd);Rc(nVb,_ld,imd);Rc(nVb,fmd,imd);Rc(nVb,cmd,imd);Rc(nVb,$ld,_ld);Rc(nVb,imd,_ld);Rc(nVb,fmd,_ld);Rc(nVb,_ld,_ld);Rc(nVb,emd,_ld);Rc(nVb,Zld,Wld);Rc(nVb,$ld,Wld);Rc(nVb,Vld,Wld);Rc(nVb,gmd,Wld);Rc(nVb,imd,Wld);Rc(nVb,_ld,Wld);Rc(nVb,dmd,Wld);Rc(nVb,fmd,Wld);Rc(nVb,hmd,Wld);Rc(nVb,Yld,Wld);Rc(nVb,cmd,Wld);Rc(nVb,emd,Wld);Rc(nVb,bmd,Wld);Rc(nVb,Zld,hmd);Rc(nVb,$ld,hmd);Rc(nVb,Vld,hmd);Rc(nVb,imd,hmd);Rc(nVb,_ld,hmd);Rc(nVb,dmd,hmd);Rc(nVb,fmd,hmd);Rc(nVb,Yld,hmd);Rc(nVb,cmd,hmd);Rc(nVb,amd,hmd);Rc(nVb,bmd,hmd);Rc(nVb,$ld,Yld);Rc(nVb,imd,Yld);Rc(nVb,_ld,Yld);Rc(nVb,fmd,Yld);Rc(nVb,hmd,Yld);Rc(nVb,cmd,Yld);Rc(nVb,emd,Yld);Rc(nVb,Zld,Xld);Rc(nVb,$ld,Xld);Rc(nVb,Vld,Xld);Rc(nVb,imd,Xld);Rc(nVb,_ld,Xld);Rc(nVb,dmd,Xld);Rc(nVb,fmd,Xld);Rc(nVb,Yld,Xld);Rc(nVb,cmd,Xld);Rc(nVb,$ld,emd);Rc(nVb,Vld,emd);Rc(nVb,gmd,emd);Rc(nVb,_ld,emd);Rc(nVb,Zld,amd);Rc(nVb,$ld,amd);Rc(nVb,gmd,amd);Rc(nVb,imd,amd);Rc(nVb,_ld,amd);Rc(nVb,dmd,amd);Rc(nVb,fmd,amd);Rc(nVb,fmd,bmd);Rc(nVb,_ld,bmd);Rc(nVb,Yld,Zld);Rc(nVb,Yld,imd);Rc(nVb,Yld,Vld);Rc(nVb,dmd,Zld);Rc(nVb,dmd,$ld);Rc(nVb,dmd,gmd)} +function vNc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;c.Tg('Brandes & Koepf node placement',1);a.a=b;a.c=ENc(b);d=JD(lNb(b,($xc(),Hwc)),282);n=Odb(LD(lNb(b,Iwc)));a.d=d==(jpc(),gpc)&&!n||d==dpc;uNc(a,b);v=null;w=null;r=null;s=null;q=(bk(4,jue),new jmb(4));switch(JD(lNb(b,Hwc),282).g){case 3:r=new OMc(b,a.c.d,($Mc(),YMc),(SMc(),QMc));nDb(q.c,r);break;case 1:s=new OMc(b,a.c.d,($Mc(),ZMc),(SMc(),QMc));nDb(q.c,s);break;case 4:v=new OMc(b,a.c.d,($Mc(),YMc),(SMc(),RMc));nDb(q.c,v);break;case 2:w=new OMc(b,a.c.d,($Mc(),ZMc),(SMc(),RMc));nDb(q.c,w);break;default:r=new OMc(b,a.c.d,($Mc(),YMc),(SMc(),QMc));s=new OMc(b,a.c.d,ZMc,QMc);v=new OMc(b,a.c.d,YMc,RMc);w=new OMc(b,a.c.d,ZMc,RMc);nDb(q.c,v);nDb(q.c,w);nDb(q.c,r);nDb(q.c,s);}e=new gNc(b,a.c);for(h=new Hmb(q);h.aMMc(f))&&(l=f)}}!l&&(l=(JDb(0,q.c.length),JD(q.c[0],185)));for(p=new Hmb(b.b);p.a0){klc(a,c,b);return 1}else{klc(a,b,c);return -1}}else if(k&&t){klc(a,c,b);return 1}else if(l&&s){klc(a,b,c);return -1}else if(l&&t){return 0}}else{for(C=new Hmb(j.j);C.al){F=0;G+=k+A;k=0}_Rc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Yrb;c=new Yrb;for(C=new Hmb(a);C.a=-1900?1:0;c>=4?ehb(a,WC(OC(hJ,1),Ote,2,6,[Que,Rue])[h]):ehb(a,WC(OC(hJ,1),Ote,2,6,['BC','AD'])[h]);break;case 121:sA(a,c,d);break;case 77:rA(a,c,d);break;case 107:i=e.q.getHours();i==0?MA(a,24,c):MA(a,i,c);break;case 83:qA(a,c,e);break;case 69:k=d.q.getDay();c==5?ehb(a,WC(OC(hJ,1),Ote,2,6,['S','M','T','W','T','F','S'])[k]):c==4?ehb(a,WC(OC(hJ,1),Ote,2,6,[Sue,Tue,Uue,Vue,Wue,Xue,Yue])[k]):ehb(a,WC(OC(hJ,1),Ote,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?ehb(a,WC(OC(hJ,1),Ote,2,6,['AM','PM'])[1]):ehb(a,WC(OC(hJ,1),Ote,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?MA(a,12,c):MA(a,l,c);break;case 75:m=e.q.getHours()%12;MA(a,m,c);break;case 72:n=e.q.getHours();MA(a,n,c);break;case 99:o=d.q.getDay();c==5?ehb(a,WC(OC(hJ,1),Ote,2,6,['S','M','T','W','T','F','S'])[o]):c==4?ehb(a,WC(OC(hJ,1),Ote,2,6,[Sue,Tue,Uue,Vue,Wue,Xue,Yue])[o]):c==3?ehb(a,WC(OC(hJ,1),Ote,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):MA(a,o,1);break;case 76:p=d.q.getMonth();c==5?ehb(a,WC(OC(hJ,1),Ote,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?ehb(a,WC(OC(hJ,1),Ote,2,6,[Cue,Due,Eue,Fue,Gue,Hue,Iue,Jue,Kue,Lue,Mue,Nue])[p]):c==3?ehb(a,WC(OC(hJ,1),Ote,2,6,['Jan','Feb','Mar','Apr',Gue,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):MA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?ehb(a,WC(OC(hJ,1),Ote,2,6,['Q1','Q2','Q3','Q4'])[q]):ehb(a,WC(OC(hJ,1),Ote,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();MA(a,r,c);break;case 109:j=e.q.getMinutes();MA(a,j,c);break;case 115:g=e.q.getSeconds();MA(a,g,c);break;case 122:c<4?ehb(a,f.c[0]):ehb(a,f.c[1]);break;case 118:ehb(a,f.b);break;case 90:c<3?ehb(a,WA(f)):c==3?ehb(a,VA(f)):ehb(a,YA(f.a));break;default:return false;}return true} +function N$b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;C$b(b);i=JD(SFd((!b.b&&(b.b=new Wge(L3,b,4,7)),b.b),0),84);k=JD(SFd((!b.c&&(b.c=new Wge(L3,b,5,8)),b.c),0),84);h=EEd(i);j=EEd(k);g=(!b.a&&(b.a=new A3d(M3,b,6,6)),b.a).i==0?null:JD(SFd((!b.a&&(b.a=new A3d(M3,b,6,6)),b.a),0),170);A=JD(bjb(a.a,h),9);F=JD(bjb(a.a,j),9);B=null;G=null;if(RD(i,193)){w=JD(bjb(a.a,i),246);if(RD(w,12)){B=JD(w,12)}else if(RD(w,9)){A=JD(w,9);B=JD(amb(A.j,0),12)}}if(RD(k,193)){D=JD(bjb(a.a,k),246);if(RD(D,12)){G=JD(D,12)}else if(RD(D,9)){F=JD(D,9);G=JD(amb(F.j,0),12)}}if(!A||!F){throw Icb(new qbd('The source or the target of edge '+b+' 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.'))}p=new BWb;jNb(p,b);oNb(p,(Krc(),hrc),b);oNb(p,($xc(),nwc),null);n=JD(lNb(d,Rqc),22);A==F&&n.Ec((Lpc(),Kpc));if(!B){v=(bAc(),_zc);C=null;if(!!g&&zld(JD(lNb(A,bxc),102))){C=new Yfd(g.j,g.k);Spd(C,rwd(b));Tpd(C,c);if(PEd(j,h)){v=$zc;Gfd(C,A.n)}}B=HXb(A,C,v,d)}if(!G){v=(bAc(),$zc);H=null;if(!!g&&zld(JD(lNb(F,bxc),102))){H=new Yfd(g.b,g.c);Spd(H,rwd(b));Tpd(H,c)}G=HXb(F,H,v,xYb(F))}xWb(p,B);yWb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Ec((Lpc(),Fpc));for(m=new fKd((!b.n&&(b.n=new A3d(P3,b,1,7)),b.n));m.e!=m.i.gc();){l=JD(dKd(m),157);if(!Odb(LD(Pud(l,Rwc)))&&!!l.a){q=P$b(l);Ylb(p.b,q);switch(JD(lNb(q,Uvc),279).g){case 1:case 2:n.Ec((Lpc(),Dpc));break;case 0:n.Ec((Lpc(),Bpc));oNb(q,Uvc,(Kjd(),Hjd));}}}f=JD(lNb(d,Mvc),301);r=JD(lNb(d,Mwc),328);e=f==(Lnc(),Hnc)||r==(jzc(),fzc);if(!!g&&(!g.a&&(g.a=new VXd(K3,g,5)),g.a).i!=0&&e){s=Fpd(g);o=new jgd;for(u=Wtb(s,0);u.b!=u.d.c;){t=JD(iub(u),8);Qtb(o,new Zfd(t))}oNb(p,irc,o)}return p} +function _Yc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;C=0;D=0;A=new Yrb;v=JD(Pub(ZBb(WBb(new gCb(null,new Wvb(a.b,16)),new RZc),new tZc)),15).a+1;B=SC(cE,Pue,30,v,15,1);q=SC(cE,Pue,30,v,15,1);for(p=0;p1){for(h=G+1;hj.b.e.b*(1-r)+j.c.e.b*r){break}}if(w.gc()>0){H=j.a.b==0?Ifd(j.b.e):JD(Vtb(j.a),8);t=Gfd(Ifd(JD(w.Xb(w.gc()-1),40).e),JD(w.Xb(w.gc()-1),40).f);m=Gfd(Ifd(JD(w.Xb(0),40).e),JD(w.Xb(0),40).f);if(o>=w.gc()-1&&H.b>t.b&&j.c.e.b>t.b){continue}if(o<=0&&H.bj.b.e.a*(1-r)+j.c.e.a*r){break}}if(w.gc()>0){H=j.a.b==0?Ifd(j.b.e):JD(Vtb(j.a),8);t=Gfd(Ifd(JD(w.Xb(w.gc()-1),40).e),JD(w.Xb(w.gc()-1),40).f);m=Gfd(Ifd(JD(w.Xb(0),40).e),JD(w.Xb(0),40).f);if(o>=w.gc()-1&&H.a>t.a&&j.c.e.a>t.a){continue}if(o<=0&&H.a=Reb(MD(lNb(a,(MWc(),uWc))))&&++D}else{n.f&&n.d.e.a<=Reb(MD(lNb(a,(MWc(),tWc))))&&++C;n.g&&n.c.e.a+n.c.f.a>=Reb(MD(lNb(a,(MWc(),sWc))))&&++D}}}else if(u==0){bZc(j)}else if(u<0){++B[G];++q[I];F=YYc(j,b,a,new ard(zfb(C),zfb(D)),c,d,new ard(zfb(q[I]),zfb(B[G])));C=JD(F.a,15).a;D=JD(F.b,15).a}}} +function W8d(a){if(a.gb)return;a.gb=true;a.b=qyd(a,0);pyd(a.b,18);vyd(a.b,19);a.a=qyd(a,1);pyd(a.a,1);vyd(a.a,2);vyd(a.a,3);vyd(a.a,4);vyd(a.a,5);a.o=qyd(a,2);pyd(a.o,8);pyd(a.o,9);vyd(a.o,10);vyd(a.o,11);vyd(a.o,12);vyd(a.o,13);vyd(a.o,14);vyd(a.o,15);vyd(a.o,16);vyd(a.o,17);vyd(a.o,18);vyd(a.o,19);vyd(a.o,20);vyd(a.o,21);vyd(a.o,22);vyd(a.o,23);uyd(a.o);uyd(a.o);uyd(a.o);uyd(a.o);uyd(a.o);uyd(a.o);uyd(a.o);uyd(a.o);uyd(a.o);uyd(a.o);a.p=qyd(a,3);pyd(a.p,2);pyd(a.p,3);pyd(a.p,4);pyd(a.p,5);vyd(a.p,6);vyd(a.p,7);uyd(a.p);uyd(a.p);a.q=qyd(a,4);pyd(a.q,8);a.v=qyd(a,5);vyd(a.v,9);uyd(a.v);uyd(a.v);uyd(a.v);a.w=qyd(a,6);pyd(a.w,2);pyd(a.w,3);pyd(a.w,4);vyd(a.w,5);a.B=qyd(a,7);vyd(a.B,1);uyd(a.B);uyd(a.B);uyd(a.B);a.Q=qyd(a,8);vyd(a.Q,0);uyd(a.Q);a.R=qyd(a,9);pyd(a.R,1);a.S=qyd(a,10);uyd(a.S);uyd(a.S);uyd(a.S);uyd(a.S);uyd(a.S);uyd(a.S);uyd(a.S);uyd(a.S);uyd(a.S);uyd(a.S);uyd(a.S);uyd(a.S);uyd(a.S);uyd(a.S);uyd(a.S);a.T=qyd(a,11);vyd(a.T,10);vyd(a.T,11);vyd(a.T,12);vyd(a.T,13);vyd(a.T,14);uyd(a.T);uyd(a.T);a.U=qyd(a,12);pyd(a.U,2);pyd(a.U,3);vyd(a.U,4);vyd(a.U,5);vyd(a.U,6);vyd(a.U,7);uyd(a.U);a.V=qyd(a,13);vyd(a.V,10);a.W=qyd(a,14);pyd(a.W,18);pyd(a.W,19);pyd(a.W,20);vyd(a.W,21);vyd(a.W,22);vyd(a.W,23);a.bb=qyd(a,15);pyd(a.bb,10);pyd(a.bb,11);pyd(a.bb,12);pyd(a.bb,13);pyd(a.bb,14);pyd(a.bb,15);pyd(a.bb,16);vyd(a.bb,17);uyd(a.bb);uyd(a.bb);a.eb=qyd(a,16);pyd(a.eb,2);pyd(a.eb,3);pyd(a.eb,4);pyd(a.eb,5);pyd(a.eb,6);pyd(a.eb,7);vyd(a.eb,8);vyd(a.eb,9);a.ab=qyd(a,17);pyd(a.ab,0);pyd(a.ab,1);a.H=qyd(a,18);vyd(a.H,0);vyd(a.H,1);vyd(a.H,2);vyd(a.H,3);vyd(a.H,4);vyd(a.H,5);uyd(a.H);a.db=qyd(a,19);vyd(a.db,2);a.c=ryd(a,20);a.d=ryd(a,21);a.e=ryd(a,22);a.f=ryd(a,23);a.i=ryd(a,24);a.g=ryd(a,25);a.j=ryd(a,26);a.k=ryd(a,27);a.n=ryd(a,28);a.r=ryd(a,29);a.s=ryd(a,30);a.t=ryd(a,31);a.u=ryd(a,32);a.fb=ryd(a,33);a.A=ryd(a,34);a.C=ryd(a,35);a.D=ryd(a,36);a.F=ryd(a,37);a.G=ryd(a,38);a.I=ryd(a,39);a.J=ryd(a,40);a.L=ryd(a,41);a.M=ryd(a,42);a.N=ryd(a,43);a.O=ryd(a,44);a.P=ryd(a,45);a.X=ryd(a,46);a.Y=ryd(a,47);a.Z=ryd(a,48);a.$=ryd(a,49);a._=ryd(a,50);a.cb=ryd(a,51);a.K=ryd(a,52)} +function ZYc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;for(l=Wtb(a.b,0);l.b!=l.d.c;){k=JD(iub(l),40);if(sgb(k.c,vCe)){continue}f=JD(PBb(new gCb(null,new Wvb(DSc(k,a),16)),yAb(new QAb,new OAb,new WAb,WC(OC(HL,1),kue,130,0,[(CAb(),AAb)]))),16);b==(ojd(),kjd)||b==ljd?f.gd(new f$c):f.gd(new l$c);o=f.gc();for(e=0;e0){h=JD(Vtb(JD(f.Xb(e),65).a),8).a;m=k.e.a+k.f.a/2;i=JD(Vtb(JD(f.Xb(e),65).a),8).b;n=k.e.b+k.f.b/2;d>0&&$wnd.Math.abs(i-n)/($wnd.Math.abs(h-m)/40)>50&&(n>i?Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a+k.f.a+d/5.3,k.e.b+k.f.b*g-d/2)):Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a+k.f.a+d/5.3,k.e.b+k.f.b*g+d/2)))}Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a+k.f.a,k.e.b+k.f.b*g))}else if(b==ljd){j=Reb(MD(lNb(k,(MWc(),BWc))));if(k.e.a-d>j){Stb(JD(f.Xb(e),65).a,new Yfd(j-c,k.e.b+k.f.b*g))}else if(JD(f.Xb(e),65).a.b>0){h=JD(Vtb(JD(f.Xb(e),65).a),8).a;m=k.e.a+k.f.a/2;i=JD(Vtb(JD(f.Xb(e),65).a),8).b;n=k.e.b+k.f.b/2;d>0&&$wnd.Math.abs(i-n)/($wnd.Math.abs(h-m)/40)>50&&(n>i?Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a-d/5.3,k.e.b+k.f.b*g-d/2)):Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a-d/5.3,k.e.b+k.f.b*g+d/2)))}Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a,k.e.b+k.f.b*g))}else if(b==njd){j=Reb(MD(lNb(k,(MWc(),AWc))));if(k.e.b+k.f.b+d0){h=JD(Vtb(JD(f.Xb(e),65).a),8).a;m=k.e.a+k.f.a/2;i=JD(Vtb(JD(f.Xb(e),65).a),8).b;n=k.e.b+k.f.b/2;d>0&&$wnd.Math.abs(h-m)/($wnd.Math.abs(i-n)/40)>50&&(m>h?Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a+k.f.a*g-d/2,k.e.b+d/5.3+k.f.b)):Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a+k.f.a*g+d/2,k.e.b+d/5.3+k.f.b)))}Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a+k.f.a*g,k.e.b+k.f.b))}else{j=Reb(MD(lNb(k,(MWc(),BWc))));if(ISc(JD(f.Xb(e),65),a)){Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a+k.f.a*g,JD(Vtb(JD(f.Xb(e),65).a),8).b))}else if(k.e.b-d>j){Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a+k.f.a*g,j-c))}else if(JD(f.Xb(e),65).a.b>0){h=JD(Vtb(JD(f.Xb(e),65).a),8).a;m=k.e.a+k.f.a/2;i=JD(Vtb(JD(f.Xb(e),65).a),8).b;n=k.e.b+k.f.b/2;d>0&&$wnd.Math.abs(h-m)/($wnd.Math.abs(i-n)/40)>50&&(m>h?Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a+k.f.a*g-d/2,k.e.b-d/5.3)):Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a+k.f.a*g+d/2,k.e.b-d/5.3)))}Stb(JD(f.Xb(e),65).a,new Yfd(k.e.a+k.f.a*g,k.e.b))}}}} +function Blc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;g=b;m=c;if(_ib(a.a,g)){if(csb(JD(bjb(a.a,g),47),m)){return 1}}else{ejb(a.a,g,new esb)}if(_ib(a.a,m)){if(csb(JD(bjb(a.a,m),47),g)){return -1}}else{ejb(a.a,m,new esb)}if(_ib(a.e,g)){if(csb(JD(bjb(a.e,g),47),m)){return -1}}else{ejb(a.e,g,new esb)}if(_ib(a.e,m)){if(csb(JD(bjb(a.a,m),47),g)){return 1}}else{ejb(a.e,m,new esb)}if(g.j!=m.j){v=Ilc(g.j,m.j);v>0?Clc(a,g,m,1):Clc(a,m,g,1);return v}w=1;if(g.e.c.length!=0&&m.e.c.length!=0){(g.j==(mmd(),lmd)&&m.j==lmd||g.j==Uld&&m.j==Uld||g.j==jmd&&m.j==jmd)&&(w=-w);k=JD(amb(g.e,0),17).c;q=JD(amb(m.e,0),17).c;i=k.i;o=q.i;if(i==o){for(t=new Hmb(i.j);t.a0){Clc(a,g,m,w);return w}else{Clc(a,m,g,w);return -w}}}d=zlc(JD(PBb(gnb(a.d),yAb(new QAb,new OAb,new WAb,WC(OC(HL,1),kue,130,0,[(CAb(),AAb)]))),20),i,o);if(d!=0){if(d>0){Clc(a,g,m,w);return w}else{Clc(a,m,g,w);return -w}}if(a.c){v=ylc(a,g,m);if(v!=0){if(v>0){Clc(a,g,m,w);return w}else{Clc(a,m,g,w);return -w}}}}if(g.g.c.length!=0&&m.g.c.length!=0){(g.j==(mmd(),lmd)&&m.j==lmd||g.j==jmd&&m.j==jmd)&&(w=-w);l=JD(lNb(g,(Krc(),drc)),9);r=JD(lNb(m,drc),9);if(a.f==(Mzc(),Lzc)&&!!l&&!!r&&mNb(l,grc)&&mNb(r,grc)){h=glc(l,r,a.b,JD(lNb(a.b,frc),15).a);n=glc(r,l,a.b,JD(lNb(a.b,frc),15).a);if(h>n){Clc(a,g,m,w);return w}else{Clc(a,m,g,w);return -w}}if(a.c){v=ylc(a,g,m);if(v!=0){if(v>0){Clc(a,g,m,w);return w}else{Clc(a,m,g,w);return -w}}}j=0;p=0;mNb(JD(amb(g.g,0),17),grc)&&(j=glc(JD(amb(g.g,0),246),JD(amb(m.g,0),246),a.b,g.g.c.length+g.e.c.length));mNb(JD(amb(m.g,0),17),grc)&&(p=glc(JD(amb(m.g,0),246),JD(amb(g.g,0),246),a.b,m.g.c.length+m.e.c.length));if(!!l&&l==r){if(j>p){Clc(a,g,m,w);return w}else{Clc(a,m,g,w);return -w}}if(a.g){a.g._b(l)&&(j=JD(a.g.xc(l),15).a);a.g._b(r)&&(p=JD(a.g.xc(r),15).a)}if(j>p){Clc(a,g,m,w);return w}else{Clc(a,m,g,w);return -w}}if(g.e.c.length!=0&&m.g.c.length!=0){Clc(a,g,m,w);return 1}else if(g.g.c.length!=0&&m.e.c.length!=0){Clc(a,m,g,w);return -1}else if(mNb(g,(Krc(),grc))&&mNb(m,grc)){f=g.i.j.c.length;h=glc(g,m,a.b,f);n=glc(m,g,a.b,f);(g.j==(mmd(),lmd)&&m.j==lmd||g.j==jmd&&m.j==jmd)&&(w=-w);if(h>n){Clc(a,g,m,w);return w}else{Clc(a,m,g,w);return -w}}else{Clc(a,m,g,w);return -w}} +function Krc(){Krc=ndb;var a,b;hrc=new nEd(Kxe);Eqc=new nEd('coordinateOrigin');rrc=new nEd('processors');Dqc=new oEd('compoundNode',(Ndb(),false));Uqc=new oEd('insideConnections',false);irc=new nEd('originalBendpoints');jrc=new nEd('originalDummyNodePosition');krc=new nEd('originalLabelEdge');urc=new nEd('representedLabels');Jqc=new nEd('endLabels');Kqc=new nEd('endLabel.origin');$qc=new oEd('labelSide',(Lkd(),Kkd));erc=new oEd('maxEdgeThickness',0);vrc=new oEd('reversed',false);trc=new nEd(Lxe);brc=new oEd('longEdgeSource',null);crc=new oEd('longEdgeTarget',null);arc=new oEd('longEdgeHasLabelDummies',false);_qc=new oEd('longEdgeBeforeLabelDummy',false);Iqc=new oEd('edgeConstraint',(Eoc(),Coc));Wqc=new nEd('inLayerLayoutUnit');Vqc=new oEd('inLayerConstraint',(kqc(),iqc));Xqc=new oEd('inLayerSuccessorConstraint',new imb);Yqc=new oEd('inLayerSuccessorConstraintBetweenNonDummies',false);prc=new nEd('portDummy');Fqc=new oEd('crossingHint',zfb(0));Rqc=new oEd('graphProperties',(b=JD(teb($V),10),new Krb(b,JD(kDb(b,b.length),10),0)));Oqc=new oEd('externalPortSide',(mmd(),kmd));Pqc=new oEd('externalPortSize',new Wfd);Mqc=new nEd('externalPortReplacedDummies');Nqc=new nEd('externalPortReplacedDummy');Lqc=new oEd('externalPortConnections',(a=JD(teb(J2),10),new Krb(a,JD(kDb(a,a.length),10),0)));qrc=new oEd(Pwe,0);yqc=new nEd('barycenterAssociates');Irc=new nEd('TopSideComments');zqc=new nEd('BottomSideComments');Cqc=new nEd('CommentConnectionPort');Tqc=new oEd('inputCollect',false);nrc=new oEd('outputCollect',false);Hqc=new oEd('cyclic',false);Gqc=new nEd('crossHierarchyMap');Erc=new nEd('targetOffset');new oEd('splineLabelSize',new Wfd);yrc=new nEd('spacings');orc=new oEd('partitionConstraint',false);Aqc=new nEd('breakingPoint.info');Crc=new nEd('splines.survivingEdge');Brc=new nEd('splines.route.start');zrc=new nEd('splines.edgeChain');mrc=new nEd('originalPortConstraints');xrc=new nEd('selfLoopHolder');Arc=new nEd('splines.nsPortY');grc=new nEd('modelOrder');frc=new nEd('modelOrder.maximum');Bqc=new nEd('modelOrderGroups.cb.number');drc=new nEd('longEdgeTargetNode');Qqc=new oEd(Zye,false);wrc=new oEd(Zye,false);Sqc=new nEd('layerConstraints.hiddenNodes');lrc=new nEd('layerConstraints.opposidePort');Drc=new nEd('targetNode.modelOrder');Grc=new oEd('tarjan.lowlink',zfb(lte));Frc=new oEd('tarjan.id',zfb(-1));Hrc=new oEd('tarjan.onstack',false);Zqc=new oEd('partOfCycle',false);Jrc=new nEd('medianHeuristic.weight')} +function gjd(){gjd=ndb;var a,b;fhd=new nEd(CEe);Cid=new nEd(DEe);hhd=(wgd(),qgd);ghd=new pEd(tBe,hhd);new iqd;ihd=new pEd(sxe,null);jhd=new nEd(EEe);qhd=(_gd(),Drb($gd,WC(OC(t2,1),kue,299,0,[Wgd])));phd=new pEd(FBe,qhd);rhd=new pEd(sBe,(Ndb(),false));thd=(ojd(),mjd);shd=new pEd(wBe,thd);yhd=(Ujd(),Tjd);xhd=new pEd(PAe,yhd);Bhd=new pEd(AEe,false);Dhd=(Bkd(),zkd);Chd=new pEd(KAe,Dhd);did=new bZb(12);cid=new pEd(vxe,did);Hhd=new pEd(wxe,false);Ihd=new pEd(SBe,false);bid=new pEd(zxe,false);rid=(xld(),wld);qid=new pEd(xxe,rid);zid=new nEd(PBe);Aid=new nEd(pxe);Bid=new nEd(txe);Eid=new nEd(uxe);Ohd=new jgd;Nhd=new pEd(GBe,Ohd);ohd=new pEd(KBe,false);Ehd=new pEd(LBe,false);new nEd(FEe);new pEd(GEe,0);Qhd=new oYb;Phd=new pEd(QBe,Qhd);aid=new pEd(qBe,false);new iqd;Did=new pEd(HEe,1);nhd=new nEd(IEe);mhd=new nEd(JEe);Xid=new pEd(Fxe,false);new pEd(KEe,true);zfb(0);new pEd(LEe,zfb(100));new pEd(MEe,false);zfb(0);new pEd(NEe,zfb(4000));zfb(0);new pEd(OEe,zfb(400));new pEd(PEe,false);new pEd(QEe,false);new pEd(REe,true);new pEd(SEe,false);lhd=(Tod(),Sod);khd=new pEd(BEe,lhd);Mhd=(Lmd(),Imd);Lhd=new pEd(TEe,Mhd);Khd=(Bjd(),yjd);Jhd=new pEd(UEe,Khd);Fid=new pEd(dBe,10);Gid=new pEd(eBe,10);Hid=new pEd(fBe,20);Iid=new pEd(gBe,10);Jid=new pEd(rxe,2);Kid=new pEd(hBe,10);Mid=new pEd(iBe,0);Nid=new pEd(lBe,5);Oid=new pEd(jBe,1);Pid=new pEd(kBe,1);Qid=new pEd(qxe,20);Rid=new pEd(mBe,10);Uid=new pEd(nBe,10);Lid=new nEd(oBe);Tid=new pYb;Sid=new pEd(RBe,Tid);gid=new nEd(OBe);fid=false;eid=new pEd(NBe,fid);Shd=new bZb(5);Rhd=new pEd(xBe,Shd);Uhd=(_kd(),b=JD(teb(F2),10),new Krb(b,JD(kDb(b,b.length),10),0));Thd=new pEd(Dxe,Uhd);jid=(lld(),ild);iid=new pEd(ABe,jid);lid=new nEd(BBe);mid=new nEd(CBe);nid=new nEd(DBe);kid=new nEd(EBe);Whd=(a=JD(teb(N2),10),new Krb(a,JD(kDb(a,a.length),10),0));Vhd=new pEd(Cxe,Whd);_hd=Crb((ind(),bnd));$hd=new pEd(Bxe,_hd);Zhd=new Yfd(0,0);Yhd=new pEd(Vxe,Zhd);Xhd=new pEd(Axe,false);whd=(Kjd(),Hjd);vhd=new pEd(IBe,whd);uhd=new pEd(yxe,false);new nEd(VEe);zfb(1);new pEd(WEe,null);oid=new nEd(MBe);sid=new nEd(JBe);yid=(mmd(),kmd);xid=new pEd(rBe,yid);pid=new nEd(pBe);vid=(Lld(),Crb(Jld));uid=new pEd(Exe,vid);tid=new pEd(yBe,false);wid=new pEd(zBe,true);zfb(1);djd=new pEd(XEe,zfb(3));zfb(1);fjd=new pEd(YEe,zfb(4));new iqd;_id=new pEd(Gxe,1);bjd=new pEd(ZEe,null);Wid=new pEd(Hxe,150);Vid=new pEd(Ixe,1.414);Yid=new pEd(Jxe,null);Zid=new pEd($Ee,1);Fhd=new pEd(uBe,false);Ghd=new pEd(vBe,false);zhd=new pEd(HBe,1);Ahd=(ekd(),ckd);new pEd(_Ee,Ahd);hid=true;ejd=(Bnd(),ynd);ajd=(rnd(),ond);cjd=ond;$id=ond} +function Q5b(){Q5b=ndb;W4b=new R5b('DIRECTION_PREPROCESSOR',0);T4b=new R5b('COMMENT_PREPROCESSOR',1);X4b=new R5b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);l5b=new R5b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);E5b=new R5b('PARTITION_PREPROCESSOR',4);p5b=new R5b('LABEL_DUMMY_INSERTER',5);K5b=new R5b('SELF_LOOP_PREPROCESSOR',6);u5b=new R5b('LAYER_CONSTRAINT_PREPROCESSOR',7);C5b=new R5b('PARTITION_MIDPROCESSOR',8);g5b=new R5b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);y5b=new R5b('NODE_PROMOTION',10);t5b=new R5b('LAYER_CONSTRAINT_POSTPROCESSOR',11);D5b=new R5b('PARTITION_POSTPROCESSOR',12);c5b=new R5b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);M5b=new R5b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);N4b=new R5b('BREAKING_POINT_INSERTER',15);x5b=new R5b('LONG_EDGE_SPLITTER',16);G5b=new R5b('PORT_SIDE_PROCESSOR',17);m5b=new R5b('INVERTED_PORT_PROCESSOR',18);F5b=new R5b('PORT_LIST_SORTER',19);O5b=new R5b('SORT_BY_INPUT_ORDER_OF_MODEL',20);A5b=new R5b('NORTH_SOUTH_PORT_PREPROCESSOR',21);O4b=new R5b('BREAKING_POINT_PROCESSOR',22);B5b=new R5b(Cye,23);P5b=new R5b(Dye,24);I5b=new R5b('SELF_LOOP_PORT_RESTORER',25);M4b=new R5b('ALTERNATING_LAYER_UNZIPPER',26);N5b=new R5b('SINGLE_EDGE_GRAPH_WRAPPER',27);n5b=new R5b('IN_LAYER_CONSTRAINT_PROCESSOR',28);_4b=new R5b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',29);o5b=new R5b('LABEL_AND_NODE_SIZE_PROCESSOR',30);k5b=new R5b('INNERMOST_NODE_MARGIN_CALCULATOR',31);L5b=new R5b('SELF_LOOP_ROUTER',32);R4b=new R5b('COMMENT_NODE_MARGIN_CALCULATOR',33);Z4b=new R5b('END_LABEL_PREPROCESSOR',34);r5b=new R5b('LABEL_DUMMY_SWITCHER',35);Q4b=new R5b('CENTER_LABEL_MANAGEMENT_PROCESSOR',36);s5b=new R5b('LABEL_SIDE_SELECTOR',37);i5b=new R5b('HYPEREDGE_DUMMY_MERGER',38);d5b=new R5b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',39);v5b=new R5b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',40);f5b=new R5b('HIERARCHICAL_PORT_POSITION_PROCESSOR',41);U4b=new R5b('CONSTRAINTS_POSTPROCESSOR',42);S4b=new R5b('COMMENT_POSTPROCESSOR',43);j5b=new R5b('HYPERNODE_PROCESSOR',44);e5b=new R5b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',45);w5b=new R5b('LONG_EDGE_JOINER',46);J5b=new R5b('SELF_LOOP_POSTPROCESSOR',47);P4b=new R5b('BREAKING_POINT_REMOVER',48);z5b=new R5b('NORTH_SOUTH_PORT_POSTPROCESSOR',49);h5b=new R5b('HORIZONTAL_COMPACTOR',50);q5b=new R5b('LABEL_DUMMY_REMOVER',51);a5b=new R5b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',52);$4b=new R5b('END_LABEL_SORTER',53);H5b=new R5b('REVERSED_EDGE_RESTORER',54);Y4b=new R5b('END_LABEL_POSTPROCESSOR',55);b5b=new R5b('HIERARCHICAL_NODE_RESIZER',56);V4b=new R5b('DIRECTION_POSTPROCESSOR',57)} +function EJc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(IDb(Y.b>0),JD(Y.a.Xb(Y.c=--Y.b),12));X=0;for(h=new Hmb(U.e);h.a0){if(U.j==(mmd(),Uld)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Yrb;o=new Mtb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}bnb(p,0,p.length,null);gb=SC(cE,Pue,30,p.length,15,1);d=SC(cE,Pue,30,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=SC(OX,rte,370,p.length*2,0,1);for(u=0;u0&&(yqd(J.f),false)){if(JD(Pud(r,Yid),281)==ond){throw Icb(new pbd('Topdown Layout Providers should only be used on parallel nodes.'))}ZD(yqd(J.f));null.Sm();Ivd(r,$wnd.Math.max(r.g,null.Tm),$wnd.Math.max(r.f,null.Tm))}else if(Pud(r,bjd)!=null&&(!r.a&&(r.a=new A3d(Q3,r,10,11)),!!r.a)&&(!r.a&&(r.a=new A3d(Q3,r,10,11)),r.a).i>0){h=JD(Pud(r,bjd),521);X=h.Sg(r);Ivd(r,$wnd.Math.max(r.g,X.a+P.b+P.c),$wnd.Math.max(r.f,X.b+P.d+P.a))}else{if((!r.a&&(r.a=new A3d(Q3,r,10,11)),r.a).i!=0){X=new Yfd(Reb(MD(Pud(r,Wid))),Reb(MD(Pud(r,Wid)))/Reb(MD(Pud(r,Vid))));Ivd(r,$wnd.Math.max(r.g,X.a+P.b+P.c),$wnd.Math.max(r.f,X.b+P.d+P.a))}}}}O=JD(Pud(b,cid),104);n=b.g-(O.b+O.c);m=b.f-(O.d+O.a);$.ah('Available Child Area: ('+n+'|'+m+')');Rud(b,ihd,n/m);ibd(b,e,d.dh(M));if(JD(Pud(b,Yid),281)==qnd){Cpd(b);Ivd(b,O.b+Reb(MD(Pud(b,nhd)))+O.c,O.d+Reb(MD(Pud(b,mhd)))+O.a)}$.ah('Executed layout algorithm: '+OD(Pud(b,fhd))+' on node '+b.k);if(JD(Pud(b,Yid),281)==ond){if(n<0||m<0){throw Icb(new pbd('The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. '+b.k))}Qud(b,nhd)||Qud(b,mhd)||Cpd(b);p=Reb(MD(Pud(b,nhd)));o=Reb(MD(Pud(b,mhd)));$.ah('Desired Child Area: ('+p+'|'+o+')');R=n/p;S=m/o;Q=$wnd.Math.min(R,$wnd.Math.min(S,Reb(MD(Pud(b,Zid)))));Rud(b,_id,Q);$.ah(b.k+' -- Local Scale Factor (X|Y): ('+R+'|'+S+')');u=JD(Pud(b,phd),22);f=0;g=0;Q'?":sgb(RGe,a)?"'(?<' or '(? toIndex: ',bwe=', toIndex: ',cwe='Index: ',dwe=', Size: ',ewe='org.eclipse.elk.alg.common',fwe={51:1},gwe='org.eclipse.elk.alg.common.compaction',hwe='Scanline/EventHandler',iwe='org.eclipse.elk.alg.common.compaction.oned',jwe='CNode belongs to another CGroup.',kwe='ISpacingsHandler/1',lwe='The ',mwe=' instance has been finished already.',nwe='The direction ',owe=' is not supported by the CGraph instance.',pwe='OneDimensionalCompactor',qwe='OneDimensionalCompactor/lambda$0$Type',rwe='Quadruplet',swe='ScanlineConstraintCalculator',twe='ScanlineConstraintCalculator/ConstraintsScanlineHandler',uwe='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',vwe='ScanlineConstraintCalculator/Timestamp',wwe='ScanlineConstraintCalculator/lambda$0$Type',xwe={178:1,48:1},ywe='org.eclipse.elk.alg.common.networksimplex',zwe={171:1,3:1,4:1},Awe='org.eclipse.elk.alg.common.nodespacing',Bwe='org.eclipse.elk.alg.common.nodespacing.cellsystem',Cwe='CENTER',Dwe={216:1,337:1},Ewe={3:1,4:1,5:1,592:1},Fwe='LEFT',Gwe='RIGHT',Hwe='Vertical alignment cannot be null',Iwe='BOTTOM',Jwe='org.eclipse.elk.alg.common.nodespacing.internal',Kwe='UNDEFINED',Lwe=0.01,Mwe='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',Nwe='LabelPlacer/lambda$0$Type',Owe='LabelPlacer/lambda$1$Type',Pwe='portRatioOrPosition',Qwe='org.eclipse.elk.alg.common.overlaps',Rwe='DOWN',Swe='org.eclipse.elk.alg.common.spore',Twe={3:1,4:1,5:1,198:1},Uwe={3:1,6:1,4:1,5:1,90:1,110:1},Vwe='org.eclipse.elk.alg.force',Wwe='ComponentsProcessor',Xwe='ComponentsProcessor/1',Ywe='ElkGraphImporter/lambda$0$Type',Zwe={214:1},$we='org.eclipse.elk.core',_we='org.eclipse.elk.graph.properties',axe='IPropertyHolder',bxe='org.eclipse.elk.alg.force.graph',cxe='Component Layout',dxe='org.eclipse.elk.alg.force.model',exe='org.eclipse.elk.core.data',fxe='org.eclipse.elk.force.model',gxe='org.eclipse.elk.force.iterations',hxe='org.eclipse.elk.force.repulsivePower',ixe='org.eclipse.elk.force.temperature',jxe=0.001,kxe='org.eclipse.elk.force.repulsion',lxe={148:1},mxe='org.eclipse.elk.alg.force.options',nxe=1.600000023841858,oxe='org.eclipse.elk.force',pxe='org.eclipse.elk.priority',qxe='org.eclipse.elk.spacing.nodeNode',rxe='org.eclipse.elk.spacing.edgeLabel',sxe='org.eclipse.elk.aspectRatio',txe='org.eclipse.elk.randomSeed',uxe='org.eclipse.elk.separateConnectedComponents',vxe='org.eclipse.elk.padding',wxe='org.eclipse.elk.interactive',xxe='org.eclipse.elk.portConstraints',yxe='org.eclipse.elk.edgeLabels.inline',zxe='org.eclipse.elk.omitNodeMicroLayout',Axe='org.eclipse.elk.nodeSize.fixedGraphSize',Bxe='org.eclipse.elk.nodeSize.options',Cxe='org.eclipse.elk.nodeSize.constraints',Dxe='org.eclipse.elk.nodeLabels.placement',Exe='org.eclipse.elk.portLabels.placement',Fxe='org.eclipse.elk.topdownLayout',Gxe='org.eclipse.elk.topdown.scaleFactor',Hxe='org.eclipse.elk.topdown.hierarchicalNodeWidth',Ixe='org.eclipse.elk.topdown.hierarchicalNodeAspectRatio',Jxe='org.eclipse.elk.topdown.nodeType',Kxe='origin',Lxe='random',Mxe='boundingBox.upLeft',Nxe='boundingBox.lowRight',Oxe='org.eclipse.elk.stress.fixed',Pxe='org.eclipse.elk.stress.desiredEdgeLength',Qxe='org.eclipse.elk.stress.dimension',Rxe='org.eclipse.elk.stress.epsilon',Sxe='org.eclipse.elk.stress.iterationLimit',Txe='org.eclipse.elk.stress',Uxe='ELK Stress',Vxe='org.eclipse.elk.nodeSize.minimum',Wxe='org.eclipse.elk.alg.force.stress',Xxe='Layered layout',Yxe='org.eclipse.elk.alg.layered',Zxe='org.eclipse.elk.alg.layered.compaction.components',$xe='org.eclipse.elk.alg.layered.compaction.oned',_xe='org.eclipse.elk.alg.layered.compaction.oned.algs',aye='org.eclipse.elk.alg.layered.compaction.recthull',bye='org.eclipse.elk.alg.layered.components',cye='NONE',dye='MODEL_ORDER',eye={3:1,6:1,4:1,10:1,5:1,126:1},fye={3:1,6:1,4:1,5:1,135:1,90:1,110:1},gye='org.eclipse.elk.alg.layered.compound',hye={43:1},iye='org.eclipse.elk.alg.layered.graph',jye=' -> ',kye='Not supported by LGraph',lye='Port side is undefined',mye={3:1,6:1,4:1,5:1,323:1,135:1,90:1,110:1},nye={3:1,6:1,4:1,5:1,135:1,199:1,209:1,90:1,110:1},oye={3:1,6:1,4:1,5:1,135:1,2004:1,209:1,90:1,110:1},pye='([{"\' \t\r\n',qye=')]}"\' \t\r\n',rye='The given string contains parts that cannot be parsed as numbers.',sye='org.eclipse.elk.core.math',tye={3:1,4:1,140:1,213:1,414:1},uye={3:1,4:1,104:1,213:1,414:1},vye='org.eclipse.elk.alg.layered.graph.transform',wye='ElkGraphImporter',xye='ElkGraphImporter/lambda$1$Type',yye='ElkGraphImporter/lambda$2$Type',zye='ElkGraphImporter/lambda$4$Type',Aye='org.eclipse.elk.alg.layered.intermediate',Bye='Node margin calculation',Cye='ONE_SIDED_GREEDY_SWITCH',Dye='TWO_SIDED_GREEDY_SWITCH',Eye='No implementation is available for the layout processor ',Fye='IntermediateProcessorStrategy',Gye="Node '",Hye='FIRST_SEPARATE',Iye='LAST_SEPARATE',Jye='Odd port side processing',Kye='org.eclipse.elk.alg.layered.intermediate.compaction',Lye='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Mye='org.eclipse.elk.alg.layered.p3order.counting',Nye={220:1},Oye='org.eclipse.elk.alg.layered.intermediate.loops',Pye='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Qye='org.eclipse.elk.alg.layered.intermediate.loops.routing',Rye='org.eclipse.elk.alg.layered.intermediate.preserveorder',Sye='org.eclipse.elk.alg.layered.intermediate.wrapping',Tye='org.eclipse.elk.alg.layered.options',Uye='INTERACTIVE',Vye='GREEDY',Wye='DEPTH_FIRST',Xye='EDGE_LENGTH',Yye='SELF_LOOPS',Zye='firstTryWithInitialOrder',$ye='org.eclipse.elk.layered.directionCongruency',_ye='org.eclipse.elk.layered.feedbackEdges',aze='org.eclipse.elk.layered.interactiveReferencePoint',bze='org.eclipse.elk.layered.mergeEdges',cze='org.eclipse.elk.layered.mergeHierarchyEdges',dze='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',eze='org.eclipse.elk.layered.portSortingStrategy',fze='org.eclipse.elk.layered.thoroughness',gze='org.eclipse.elk.layered.unnecessaryBendpoints',hze='org.eclipse.elk.layered.generatePositionAndLayerIds',ize='org.eclipse.elk.layered.cycleBreaking.strategy',jze='org.eclipse.elk.layered.layering.strategy',kze='org.eclipse.elk.layered.layering.layerConstraint',lze='org.eclipse.elk.layered.layering.layerChoiceConstraint',mze='org.eclipse.elk.layered.layering.layerId',nze='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',oze='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',pze='org.eclipse.elk.layered.layering.nodePromotion.strategy',qze='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',rze='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',sze='org.eclipse.elk.layered.crossingMinimization.strategy',tze='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',uze='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',vze='org.eclipse.elk.layered.crossingMinimization.semiInteractive',wze='org.eclipse.elk.layered.crossingMinimization.inLayerPredOf',xze='org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf',yze='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',zze='org.eclipse.elk.layered.crossingMinimization.positionId',Aze='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',Bze='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',Cze='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',Dze='org.eclipse.elk.layered.nodePlacement.strategy',Eze='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Fze='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Gze='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Hze='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Ize='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Jze='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Kze='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Lze='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Mze='org.eclipse.elk.layered.edgeRouting.splines.mode',Nze='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Oze='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Pze='org.eclipse.elk.layered.spacing.baseValue',Qze='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Rze='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Sze='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Tze='org.eclipse.elk.layered.priority.direction',Uze='org.eclipse.elk.layered.priority.shortness',Vze='org.eclipse.elk.layered.priority.straightness',Wze='org.eclipse.elk.layered.compaction.connectedComponents',Xze='org.eclipse.elk.layered.compaction.postCompaction.strategy',Yze='org.eclipse.elk.layered.compaction.postCompaction.constraints',Zze='org.eclipse.elk.layered.highDegreeNodes.treatment',$ze='org.eclipse.elk.layered.highDegreeNodes.threshold',_ze='org.eclipse.elk.layered.highDegreeNodes.treeHeight',aAe='org.eclipse.elk.layered.wrapping.strategy',bAe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',cAe='org.eclipse.elk.layered.wrapping.correctionFactor',dAe='org.eclipse.elk.layered.wrapping.cutting.strategy',eAe='org.eclipse.elk.layered.wrapping.cutting.cuts',fAe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',gAe='org.eclipse.elk.layered.wrapping.validify.strategy',hAe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',iAe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',jAe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',kAe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',lAe='org.eclipse.elk.layered.layerUnzipping.strategy',mAe='org.eclipse.elk.layered.layerUnzipping.minimizeEdgeLength',nAe='org.eclipse.elk.layered.layerUnzipping.layerSplit',oAe='org.eclipse.elk.layered.layerUnzipping.resetOnLongEdges',pAe='org.eclipse.elk.layered.edgeLabels.sideSelection',qAe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',rAe='org.eclipse.elk.layered.considerModelOrder.strategy',sAe='org.eclipse.elk.layered.considerModelOrder.portModelOrder',tAe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',uAe='org.eclipse.elk.layered.considerModelOrder.components',vAe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',wAe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',xAe='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',yAe='org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cycleBreakingId',zAe='org.eclipse.elk.layered.considerModelOrder.groupModelOrder.crossingMinimizationId',AAe='org.eclipse.elk.layered.considerModelOrder.groupModelOrder.componentGroupId',BAe='org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cbGroupOrderStrategy',CAe='org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cbPreferredSourceId',DAe='org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cbPreferredTargetId',EAe='org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cmGroupOrderStrategy',FAe='org.eclipse.elk.layered.considerModelOrder.groupModelOrder.cmEnforcedGroupOrders',GAe='layering',HAe='layering.minWidth',IAe='layering.nodePromotion',JAe='crossingMinimization',KAe='org.eclipse.elk.hierarchyHandling',LAe='crossingMinimization.greedySwitch',MAe='nodePlacement',NAe='nodePlacement.bk',OAe='edgeRouting',PAe='org.eclipse.elk.edgeRouting',QAe='spacing',RAe='priority',SAe='compaction',TAe='compaction.postCompaction',UAe='Specifies whether and how post-process compaction is applied.',VAe='highDegreeNodes',WAe='wrapping',XAe='wrapping.cutting',YAe='wrapping.validify',ZAe='wrapping.multiEdge',$Ae='layerUnzipping',_Ae='edgeLabels',aBe='considerModelOrder',bBe='considerModelOrder.groupModelOrder',cBe='Group ID of the Node Type',dBe='org.eclipse.elk.spacing.commentComment',eBe='org.eclipse.elk.spacing.commentNode',fBe='org.eclipse.elk.spacing.componentComponent',gBe='org.eclipse.elk.spacing.edgeEdge',hBe='org.eclipse.elk.spacing.edgeNode',iBe='org.eclipse.elk.spacing.labelLabel',jBe='org.eclipse.elk.spacing.labelPortHorizontal',kBe='org.eclipse.elk.spacing.labelPortVertical',lBe='org.eclipse.elk.spacing.labelNode',mBe='org.eclipse.elk.spacing.nodeSelfLoop',nBe='org.eclipse.elk.spacing.portPort',oBe='org.eclipse.elk.spacing.individual',pBe='org.eclipse.elk.port.borderOffset',qBe='org.eclipse.elk.noLayout',rBe='org.eclipse.elk.port.side',sBe='org.eclipse.elk.debugMode',tBe='org.eclipse.elk.alignment',uBe='org.eclipse.elk.insideSelfLoops.activate',vBe='org.eclipse.elk.insideSelfLoops.yo',wBe='org.eclipse.elk.direction',xBe='org.eclipse.elk.nodeLabels.padding',yBe='org.eclipse.elk.portLabels.nextToPortIfPossible',zBe='org.eclipse.elk.portLabels.treatAsGroup',ABe='org.eclipse.elk.portAlignment.default',BBe='org.eclipse.elk.portAlignment.north',CBe='org.eclipse.elk.portAlignment.south',DBe='org.eclipse.elk.portAlignment.west',EBe='org.eclipse.elk.portAlignment.east',FBe='org.eclipse.elk.contentAlignment',GBe='org.eclipse.elk.junctionPoints',HBe='org.eclipse.elk.edge.thickness',IBe='org.eclipse.elk.edgeLabels.placement',JBe='org.eclipse.elk.port.index',KBe='org.eclipse.elk.commentBox',LBe='org.eclipse.elk.hypernode',MBe='org.eclipse.elk.port.anchor',NBe='org.eclipse.elk.partitioning.activate',OBe='org.eclipse.elk.partitioning.partition',PBe='org.eclipse.elk.position',QBe='org.eclipse.elk.margins',RBe='org.eclipse.elk.spacing.portsSurrounding',SBe='org.eclipse.elk.interactiveLayout',TBe='org.eclipse.elk.core.util',UBe={3:1,4:1,5:1,590:1},VBe='NETWORK_SIMPLEX',WBe='SIMPLE',XBe={95:1,43:1},YBe='org.eclipse.elk.alg.layered.p1cycles',ZBe='Depth-first cycle removal',$Be='Model order cycle breaking',_Be='org.eclipse.elk.alg.layered.p2layers',aCe={406:1,220:1},bCe={830:1,3:1,4:1},cCe='org.eclipse.elk.alg.layered.p3order',dCe=1.7976931348623157E308,eCe=4.9E-324,fCe='org.eclipse.elk.alg.layered.p4nodes',gCe={3:1,4:1,5:1,838:1},hCe=1.0E-5,iCe='org.eclipse.elk.alg.layered.p4nodes.bk',jCe='org.eclipse.elk.alg.layered.p5edges',kCe='org.eclipse.elk.alg.layered.p5edges.orthogonal',lCe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',mCe=1.0E-6,nCe='org.eclipse.elk.alg.layered.p5edges.splines',oCe=0.09999999999999998,pCe=1.0E-8,qCe=4.71238898038469,rCe=1.5707963267948966,sCe=3.141592653589793,tCe='org.eclipse.elk.alg.mrtree',uCe=0.10000000149011612,vCe='SUPER_ROOT',wCe='org.eclipse.elk.alg.mrtree.graph',xCe=-1.7976931348623157E308,yCe='org.eclipse.elk.alg.mrtree.intermediate',zCe='Processor compute fanout',ACe={3:1,6:1,4:1,5:1,522:1,90:1,110:1},BCe='Set neighbors in level',CCe='org.eclipse.elk.alg.mrtree.options',DCe='DESCENDANTS',ECe='org.eclipse.elk.mrtree.compaction',FCe='org.eclipse.elk.mrtree.edgeEndTextureLength',GCe='org.eclipse.elk.mrtree.treeLevel',HCe='org.eclipse.elk.mrtree.positionConstraint',ICe='org.eclipse.elk.mrtree.weighting',JCe='org.eclipse.elk.mrtree.edgeRoutingMode',KCe='org.eclipse.elk.mrtree.searchOrder',LCe='Position Constraint',MCe='org.eclipse.elk.mrtree',NCe='org.eclipse.elk.tree',OCe='Processor arrange level',PCe='org.eclipse.elk.alg.mrtree.p2order',QCe='org.eclipse.elk.alg.mrtree.p4route',RCe='org.eclipse.elk.alg.radial',SCe=6.283185307179586,TCe='Before',UCe='After',VCe='org.eclipse.elk.alg.radial.intermediate',WCe='COMPACTION',XCe='org.eclipse.elk.alg.radial.intermediate.compaction',YCe={3:1,4:1,5:1,90:1},ZCe='org.eclipse.elk.alg.radial.intermediate.optimization',$Ce='No implementation is available for the layout option ',_Ce='org.eclipse.elk.alg.radial.options',aDe='CompactionStrategy',bDe='org.eclipse.elk.radial.centerOnRoot',cDe='org.eclipse.elk.radial.orderId',dDe='org.eclipse.elk.radial.radius',eDe='org.eclipse.elk.radial.rotate',fDe='org.eclipse.elk.radial.compactor',gDe='org.eclipse.elk.radial.compactionStepSize',hDe='org.eclipse.elk.radial.sorter',iDe='org.eclipse.elk.radial.wedgeCriteria',jDe='org.eclipse.elk.radial.optimizationCriteria',kDe='org.eclipse.elk.radial.rotation.targetAngle',lDe='org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace',mDe='org.eclipse.elk.radial.rotation.outgoingEdgeAngles',nDe='Compaction',oDe='rotation',pDe='org.eclipse.elk.radial',qDe='org.eclipse.elk.alg.radial.p1position.wedge',rDe='org.eclipse.elk.alg.radial.sorting',sDe=5.497787143782138,tDe=3.9269908169872414,uDe=2.356194490192345,vDe='org.eclipse.elk.alg.rectpacking',wDe='org.eclipse.elk.alg.rectpacking.intermediate',xDe='org.eclipse.elk.alg.rectpacking.options',yDe='org.eclipse.elk.rectpacking.trybox',zDe='org.eclipse.elk.rectpacking.currentPosition',ADe='org.eclipse.elk.rectpacking.desiredPosition',BDe='org.eclipse.elk.rectpacking.inNewRow',CDe='org.eclipse.elk.rectpacking.orderBySize',DDe='org.eclipse.elk.rectpacking.widthApproximation.strategy',EDe='org.eclipse.elk.rectpacking.widthApproximation.targetWidth',FDe='org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal',GDe='org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift',HDe='org.eclipse.elk.rectpacking.packing.strategy',IDe='org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation',JDe='org.eclipse.elk.rectpacking.packing.compaction.iterations',KDe='org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy',LDe='widthApproximation',MDe='Compaction Strategy',NDe='packing.compaction',ODe='org.eclipse.elk.rectpacking',PDe='org.eclipse.elk.alg.rectpacking.p1widthapproximation',QDe='org.eclipse.elk.alg.rectpacking.p2packing',RDe='No Compaction',SDe='org.eclipse.elk.alg.rectpacking.p3whitespaceelimination',TDe='org.eclipse.elk.alg.rectpacking.util',UDe='No implementation available for ',VDe='org.eclipse.elk.alg.spore',WDe='org.eclipse.elk.alg.spore.options',XDe='org.eclipse.elk.sporeCompaction',YDe='org.eclipse.elk.underlyingLayoutAlgorithm',ZDe='org.eclipse.elk.processingOrder.treeConstruction',$De='org.eclipse.elk.processingOrder.spanningTreeCostFunction',_De='org.eclipse.elk.processingOrder.preferredRoot',aEe='org.eclipse.elk.processingOrder.rootSelection',bEe='org.eclipse.elk.structure.structureExtractionStrategy',cEe='org.eclipse.elk.compaction.compactionStrategy',dEe='org.eclipse.elk.compaction.orthogonal',eEe='org.eclipse.elk.overlapRemoval.maxIterations',fEe='org.eclipse.elk.overlapRemoval.runScanline',gEe='processingOrder',hEe='overlapRemoval',iEe='org.eclipse.elk.sporeOverlap',jEe='org.eclipse.elk.alg.spore.p1structure',kEe='org.eclipse.elk.alg.spore.p2processingorder',lEe='org.eclipse.elk.alg.spore.p3execution',mEe='Topdown Layout',nEe='Invalid index: ',oEe='org.eclipse.elk.core.alg',pEe={342:1},qEe={296:1},rEe='Make sure its type is registered with the ',sEe=' utility class.',tEe='true',uEe='false',vEe="Couldn't clone property '",wEe=0.05,xEe='org.eclipse.elk.core.options',yEe=1.2999999523162842,zEe='org.eclipse.elk.box',AEe='org.eclipse.elk.expandNodes',BEe='org.eclipse.elk.box.packingMode',CEe='org.eclipse.elk.algorithm',DEe='org.eclipse.elk.resolvedAlgorithm',EEe='org.eclipse.elk.bendPoints',FEe='org.eclipse.elk.labelManager',GEe='org.eclipse.elk.softwrappingFuzziness',HEe='org.eclipse.elk.scaleFactor',IEe='org.eclipse.elk.childAreaWidth',JEe='org.eclipse.elk.childAreaHeight',KEe='org.eclipse.elk.animate',LEe='org.eclipse.elk.animTimeFactor',MEe='org.eclipse.elk.layoutAncestors',NEe='org.eclipse.elk.maxAnimTime',OEe='org.eclipse.elk.minAnimTime',PEe='org.eclipse.elk.progressBar',QEe='org.eclipse.elk.validateGraph',REe='org.eclipse.elk.validateOptions',SEe='org.eclipse.elk.zoomToFit',TEe='org.eclipse.elk.json.shapeCoords',UEe='org.eclipse.elk.json.edgeCoords',VEe='org.eclipse.elk.font.name',WEe='org.eclipse.elk.font.size',XEe='org.eclipse.elk.topdown.sizeCategories',YEe='org.eclipse.elk.topdown.sizeCategoriesHierarchicalNodeWeight',ZEe='org.eclipse.elk.topdown.sizeApproximator',$Ee='org.eclipse.elk.topdown.scaleCap',_Ee='org.eclipse.elk.edge.type',aFe='partitioning',bFe='nodeLabels',cFe='portAlignment',dFe='nodeSize',eFe='port',fFe='portLabels',gFe='topdown',hFe='insideSelfLoops',iFe='INHERIT',jFe='org.eclipse.elk.fixed',kFe='org.eclipse.elk.random',lFe={3:1,35:1,23:1,521:1,288:1},mFe='port must have a parent node to calculate the port side',nFe='The edge needs to have exactly one edge section. Found: ',oFe='org.eclipse.elk.core.util.adapters',pFe='org.eclipse.emf.ecore',qFe='org.eclipse.elk.graph',rFe='EMapPropertyHolder',sFe='ElkBendPoint',tFe='ElkGraphElement',uFe='ElkConnectableShape',vFe='ElkEdge',wFe='ElkEdgeSection',xFe='EModelElement',yFe='ENamedElement',zFe='ElkLabel',AFe='ElkNode',BFe='ElkPort',CFe={94:1,93:1},DFe='org.eclipse.emf.common.notify.impl',EFe="The feature '",FFe="' is not a valid changeable feature",GFe='Expecting null',HFe="' is not a valid feature",IFe='The feature ID',JFe=' is not a valid feature ID',KFe=32768,LFe={109:1,94:1,93:1,57:1,52:1,100:1},MFe='org.eclipse.emf.ecore.impl',NFe='org.eclipse.elk.graph.impl',OFe='Recursive containment not allowed for ',PFe="The datatype '",QFe="' is not a valid classifier",RFe="The value '",SFe={195:1,3:1,4:1},TFe="The class '",UFe='http://www.eclipse.org/elk/ElkGraph',VFe='property',WFe='value',XFe='source',YFe='properties',ZFe='identifier',$Fe='height',_Fe='width',aGe='parent',bGe='text',cGe='children',dGe='hierarchical',eGe='sources',fGe='targets',gGe='sections',hGe='bendPoints',iGe='outgoingShape',jGe='incomingShape',kGe='outgoingSections',lGe='incomingSections',mGe='org.eclipse.emf.common.util',nGe='Severe implementation error in the Json to ElkGraph importer.',oGe='id',pGe='org.eclipse.elk.graph.json',qGe='Unhandled parameter types: ',rGe='startPoint',sGe="An edge must have at least one source and one target (edge id: '",tGe="').",uGe='Referenced edge section does not exist: ',vGe=" (edge id: '",wGe='target',xGe='sourcePoint',yGe='targetPoint',zGe='group',AGe='name',BGe='connectableShape cannot be null',CGe='edge cannot be null',DGe="Passed edge is not 'simple'.",EGe='org.eclipse.elk.graph.util',FGe="The 'no duplicates' constraint is violated",GGe='targetIndex=',HGe=', size=',IGe='sourceIndex=',JGe={3:1,4:1,20:1,31:1,56:1,18:1,16:1,59:1,71:1,67:1,61:1},KGe={3:1,4:1,20:1,31:1,56:1,18:1,50:1,16:1,59:1,71:1,67:1,61:1,585:1},LGe='logging',MGe='measureExecutionTime',NGe='parser.parse.1',OGe='parser.parse.2',PGe='parser.next.1',QGe='parser.next.2',RGe='parser.next.3',SGe='parser.next.4',TGe='parser.factor.1',UGe='parser.factor.2',VGe='parser.factor.3',WGe='parser.factor.4',XGe='parser.factor.5',YGe='parser.factor.6',ZGe='parser.atom.1',$Ge='parser.atom.2',_Ge='parser.atom.3',aHe='parser.atom.4',bHe='parser.atom.5',cHe='parser.cc.1',dHe='parser.cc.2',eHe='parser.cc.3',fHe='parser.cc.5',gHe='parser.cc.6',hHe='parser.cc.7',iHe='parser.cc.8',jHe='parser.ope.1',kHe='parser.ope.2',lHe='parser.ope.3',mHe='parser.descape.1',nHe='parser.descape.2',oHe='parser.descape.3',pHe='parser.descape.4',qHe='parser.descape.5',rHe='parser.process.1',sHe='parser.quantifier.1',tHe='parser.quantifier.2',uHe='parser.quantifier.3',vHe='parser.quantifier.4',wHe='parser.quantifier.5',xHe='org.eclipse.emf.common.notify',yHe={415:1,676:1},zHe={3:1,4:1,20:1,31:1,56:1,18:1,16:1,71:1,61:1},AHe={373:1,151:1},BHe='index=',CHe={3:1,4:1,5:1,129:1},DHe={3:1,4:1,20:1,31:1,56:1,18:1,16:1,59:1,71:1,61:1},EHe={3:1,6:1,4:1,5:1,198:1},FHe={3:1,4:1,5:1,175:1,374:1},GHe=1024,HHe=';/?:@&=+$,',IHe='invalid authority: ',JHe='EAnnotation',KHe='ETypedElement',LHe='EStructuralFeature',MHe='EAttribute',NHe='EClassifier',OHe='EEnumLiteral',PHe='EGenericType',QHe='EOperation',RHe='EParameter',SHe='EReference',THe='ETypeParameter',UHe='org.eclipse.emf.ecore.util',VHe={77:1},WHe={3:1,20:1,18:1,16:1,61:1,586:1,77:1,72:1,98:1},XHe='org.eclipse.emf.ecore.util.FeatureMap$Entry',YHe=8192,ZHe='byte',$He='char',_He='double',aIe='float',bIe='int',cIe='long',dIe='short',eIe='java.lang.Object',fIe={3:1,4:1,5:1,255:1},gIe={3:1,4:1,5:1,678:1},hIe={3:1,4:1,20:1,31:1,56:1,18:1,16:1,59:1,71:1,67:1,61:1,72:1},iIe={3:1,4:1,20:1,31:1,56:1,18:1,16:1,59:1,71:1,67:1,61:1,77:1,72:1,98:1},jIe='mixed',kIe='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',lIe='kind',mIe={3:1,4:1,5:1,679:1},nIe={3:1,4:1,20:1,31:1,56:1,18:1,16:1,71:1,61:1,77:1,72:1,98:1},oIe={20:1,31:1,56:1,18:1,16:1,61:1,72:1},pIe={50:1,128:1,287:1},qIe={75:1,344:1},rIe="The value of type '",sIe="' must be of type '",tIe=1306,uIe='http://www.eclipse.org/emf/2002/Ecore',vIe=-32768,wIe='constraints',xIe='baseType',yIe='getEStructuralFeature',zIe='getFeatureID',AIe='feature',BIe='getOperationID',CIe='operation',DIe='defaultValue',EIe='eTypeParameters',FIe='isInstance',GIe='getEEnumLiteral',HIe='eContainingClass',IIe={58:1},JIe={3:1,4:1,5:1,122:1},KIe='org.eclipse.emf.ecore.resource',LIe={94:1,93:1,588:1,1996:1},MIe='org.eclipse.emf.ecore.resource.impl',NIe='unspecified',OIe='simple',PIe='attribute',QIe='attributeWildcard',RIe='element',SIe='elementWildcard',TIe='collapse',UIe='itemType',VIe='namespace',WIe='##targetNamespace',XIe='whiteSpace',YIe='wildcards',ZIe='http://www.eclipse.org/emf/2003/XMLType',$Ie='##any',_Ie='uninitialized',aJe='The multiplicity constraint is violated',bJe='org.eclipse.emf.ecore.xml.type',cJe='ProcessingInstruction',dJe='SimpleAnyType',eJe='XMLTypeDocumentRoot',fJe='org.eclipse.emf.ecore.xml.type.impl',gJe='INF',hJe='processing',iJe='ENTITIES_._base',jJe='minLength',kJe='ENTITY',lJe='NCName',mJe='IDREFS_._base',nJe='integer',oJe='token',pJe='pattern',qJe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',rJe='\\i\\c*',sJe='[\\i-[:]][\\c-[:]]*',tJe='nonPositiveInteger',uJe='maxInclusive',vJe='NMTOKEN',wJe='NMTOKENS_._base',xJe='nonNegativeInteger',yJe='minInclusive',zJe='normalizedString',AJe='unsignedByte',BJe='unsignedInt',CJe='18446744073709551615',DJe='unsignedShort',EJe='processingInstruction',FJe='org.eclipse.emf.ecore.xml.type.internal',GJe=1114111,HJe='Internal Error: shorthands: \\u',IJe='xml:isDigit',JJe='xml:isWord',KJe='xml:isSpace',LJe='xml:isNameChar',MJe='xml:isInitialNameChar',NJe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',OJe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',PJe='Private Use',QJe='ASSIGNED',RJe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',SJe='UNASSIGNED',TJe={3:1,121:1},UJe='org.eclipse.emf.ecore.xml.type.util',VJe={3:1,4:1,5:1,376:1},WJe='org.eclipse.xtext.xbase.lib',XJe='Cannot add elements to a Range',YJe='Cannot set elements in a Range',ZJe='Cannot remove elements from a Range',$Je='user.agent';var _,ldb,gdb,Gcb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;ldb={};mdb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.Pm};_.Hb=function sb(){return ADb(this)};_.Ib=function ub(){var a;return ueb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var FD,GD,HD;mdb(298,1,{298:1,2086:1},web);_.te=function xeb(a){var b;b=new web;b.i=4;a>1?(b.c=Eeb(this,a-1)):(b.c=this);return b};_.ue=function Deb(){seb(this);return this.b};_.ve=function Feb(){return ueb(this)};_.we=function Heb(){return seb(this),this.k};_.xe=function Jeb(){return (this.i&4)!=0};_.ye=function Keb(){return (this.i&1)!=0};_.Ib=function Neb(){return veb(this)};_.i=0;var reb=1;var aJ=zeb(mte,'Object',1);var KI=zeb(mte,'Class',298);mdb(2058,1,nte);var gE=zeb(ote,'Optional',2058);mdb(1160,2058,nte,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var eE=zeb(ote,'Absent',1160);mdb(627,1,{},Gb);var fE=zeb(ote,'Joiner',627);var hE=Beb(ote,'Predicate');mdb(577,1,{178:1,577:1,3:1,48:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(RD(a,577)){b=JD(a,577);return It(this.a,b.a)}return false};_.Hb=function _b(){return Jnb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var iE=zeb(ote,'Predicates/AndPredicate',577);mdb(411,2058,{411:1,3:1},cc);_.Fb=function dc(a){var b;if(RD(a,411)){b=JD(a,411);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return ute+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var jE=zeb(ote,'Present',411);mdb(204,1,wte);_.Nb=function kc(a){ctb(this,a)};_.Qb=function lc(){jc()};var WH=zeb(xte,'UnmodifiableIterator',204);mdb(2038,204,yte);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw Icb(new qhb)};_.Wb=function oc(a){throw Icb(new qhb)};var XH=zeb(xte,'UnmodifiableListIterator',2038);mdb(392,2038,yte);_.Ob=function rc(){return this.b0};_.Pb=function tc(){if(this.b>=this.c){throw Icb(new Hub)}return this.Xb(this.b++)};_.Tb=function uc(){return this.b};_.Ub=function vc(){if(this.b<=0){throw Icb(new Hub)}return this.Xb(--this.b)};_.Vb=function wc(){return this.b-1};_.b=0;_.c=0;var kE=zeb(xte,'AbstractIndexedListIterator',392);mdb(702,204,wte);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var lE=zeb(xte,'AbstractIterator',702);mdb(2046,1,{229:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return ow(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return qdb(this.Zb())};var QE=zeb(xte,'AbstractMultimap',2046);mdb(730,2046,zte);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new me(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new xf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return ck(this.c.vc().Lc(),new fh,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return Fnb(),new Eob(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return ck(this.c.Bc().Lc(),new Fd,64,this.d)};_.pc=function md(a,b){return new jg(this,a,b,null)};_.d=0;var LE=zeb(xte,'AbstractMapBasedMultimap',730);mdb(1661,730,zte);_.hc=function pd(){return new jmb(this.a)};_.jc=function qd(){return Fnb(),Fnb(),Cnb};_.cc=function sd(a){return JD(Qc(this,a),16)};_.fc=function ud(a){return JD(Sc(this,a),16)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return ow(this,a)};_.qc=function td(a){return JD(Qc(this,a),16)};_.rc=function vd(a){return JD(Sc(this,a),16)};_.mc=function wd(a){return Onb(JD(a,16))};_.pc=function xd(a,b){return Vc(this,a,JD(b,16),null)};var mE=zeb(xte,'AbstractListMultimap',1661);mdb(736,1,Ate);_.Nb=function zd(a){ctb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=JD(this.c.Pb(),45);this.b=a.jd();this.a=JD(a.kd(),18);this.e=this.a.Jc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();JD(Lub(this.a),18).dc()&&this.c.Qb();--this.d.d};var uE=zeb(xte,'AbstractMapBasedMultimap/Itr',736);mdb(1098,736,Ate,Dd);_.sc=function Ed(a,b){return b};var nE=zeb(xte,'AbstractMapBasedMultimap/1',1098);mdb(1099,1,{},Fd);_.Kb=function Gd(a){return JD(a,18).Lc()};var oE=zeb(xte,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1099);mdb(1100,736,Ate,Hd);_.sc=function Id(a,b){return new ap(a,b)};var pE=zeb(xte,'AbstractMapBasedMultimap/2',1100);var MK=Beb(Bte,'Map');mdb(2027,1,Cte);_.wc=function Td(a){Gub(this,a)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Jc();c.Ob();){b=JD(c.Pb(),45);d=b.kd();if(XD(a)===XD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!RD(a,92)){return false}d=JD(a,92);if(this.gc()!=d.gc()){return false}for(c=d.vc().Jc();c.Ob();){b=JD(c.Pb(),45);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return Inb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new ckb(this)};_.yc=function $d(a,b){throw Icb(new rhb('Put not supported on this map'))};_.zc=function _d(a){Ld(this,a)};_.Ac=function ae(a){return Wd(Kd(this,a,true))};_.gc=function be(){return this.vc().gc()};_.Ib=function ce(){return Md(this)};_.Bc=function de(){return new nkb(this)};var BJ=zeb(Bte,'AbstractMap',2027);mdb(2047,2027,Cte);_.bc=function fe(){return new pf(this)};_.vc=function ge(){return ee(this)};_.ec=function he(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Bc=function ie(){var a;a=this.i;return !a?(this.i=new ew(this)):a};var mH=zeb(xte,'Maps/ViewCachingAbstractMap',2047);mdb(395,2047,Cte,me);_.xc=function re(a){return je(this,a)};_.Ac=function ue(a){return ke(this,a)};_.$b=function ne(){this.d==this.e.c?this.e.$b():rr(new kf(this))};_._b=function oe(a){return Nv(this.d,a)};_.Dc=function pe(){return new bf(this)};_.Cc=function(){return this.Dc()};_.Fb=function qe(a){return this===a||pb(this.d,a)};_.Hb=function se(){return tb(this.d)};_.ec=function te(){return this.e.ec()};_.gc=function ve(){return this.d.gc()};_.Ib=function we(){return qdb(this.d)};var tE=zeb(xte,'AbstractMapBasedMultimap/AsMap',395);var VI=Beb(mte,'Iterable');mdb(31,1,Dte);_.Ic=function Ke(a){Efb(this,a)};_.Lc=function Ne(){return new Wvb(this,0)};_.Mc=function Oe(){return new gCb(null,this.Lc())};_.Ec=function Fe(a){throw Icb(new rhb('Add not supported on this collection'))};_.Fc=function Ge(a){return xe(this,a)};_.$b=function He(){ze(this)};_.Gc=function Ie(a){return ye(this,a,false)};_.Hc=function Je(a){return Ae(this,a)};_.dc=function Le(){return this.gc()==0};_.Kc=function Me(a){return ye(this,a,true)};_.Nc=function Pe(){return Ce(this)};_.Oc=function Qe(a){return De(this,a)};_.Ib=function Re(){return Ee(this)};var mJ=zeb(Bte,'AbstractCollection',31);var UK=Beb(Bte,'Set');mdb(Ete,31,Fte);_.Lc=function We(){return new Wvb(this,1)};_.Fb=function Ue(a){return Se(this,a)};_.Hb=function Ve(){return Inb(this)};var IJ=zeb(Bte,'AbstractSet',Ete);mdb(2030,Ete,Fte);var LH=zeb(xte,'Sets/ImprovedAbstractSet',2030);mdb(2031,2030,Fte);_.$b=function Ye(){this.Pc().$b()};_.Gc=function Ze(a){return Xe(this,a)};_.dc=function $e(){return this.Pc().dc()};_.Kc=function _e(a){var b;if(this.Gc(a)&&RD(a,45)){b=JD(a,45);return this.Pc().ec().Kc(b.jd())}return false};_.gc=function af(){return this.Pc().gc()};var fH=zeb(xte,'Maps/EntrySet',2031);mdb(1096,2031,Fte,bf);_.Gc=function cf(a){return Lk(this.a.d.vc(),a)};_.Jc=function df(){return new kf(this.a)};_.Pc=function ef(){return this.a};_.Kc=function ff(a){var b;if(!Lk(this.a.d.vc(),a)){return false}b=JD(Lub(JD(a,45)),45);Tc(this.a.e,b.jd());return true};_.Lc=function gf(){return ek(this.a.d.vc().Lc(),new hf(this.a))};var rE=zeb(xte,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1096);mdb(1097,1,{},hf);_.Kb=function jf(a){return le(this.a,JD(a,45))};var qE=zeb(xte,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1097);mdb(734,1,Ate,kf);_.Nb=function lf(a){ctb(this,a)};_.Pb=function nf(){var a;return a=JD(this.b.Pb(),45),this.a=JD(a.kd(),18),le(this.c,a)};_.Ob=function mf(){return this.b.Ob()};_.Qb=function of(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var sE=zeb(xte,'AbstractMapBasedMultimap/AsMap/AsMapIterator',734);mdb(530,2030,Fte,pf);_.$b=function qf(){this.b.$b()};_.Gc=function rf(a){return this.b._b(a)};_.Ic=function sf(a){Qb(a);this.b.wc(new cw(a))};_.dc=function tf(){return this.b.dc()};_.Jc=function uf(){return new Tv(this.b.vc().Jc())};_.Kc=function vf(a){if(this.b._b(a)){this.b.Ac(a);return true}return false};_.gc=function wf(){return this.b.gc()};var jH=zeb(xte,'Maps/KeySet',530);mdb(332,530,Fte,xf);_.$b=function yf(){var a;rr((a=this.b.vc().Jc(),new Ff(this,a)))};_.Hc=function zf(a){return this.b.ec().Hc(a)};_.Fb=function Af(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Bf(){return tb(this.b.ec())};_.Jc=function Cf(){var a;return a=this.b.vc().Jc(),new Ff(this,a)};_.Kc=function Df(a){var b,c;c=0;b=JD(this.b.Ac(a),18);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Lc=function Ef(){return this.b.ec().Lc()};var wE=zeb(xte,'AbstractMapBasedMultimap/KeySet',332);mdb(735,1,Ate,Ff);_.Nb=function Gf(a){ctb(this,a)};_.Ob=function Hf(){return this.c.Ob()};_.Pb=function If(){this.a=JD(this.c.Pb(),45);return this.a.jd()};_.Qb=function Jf(){var a;Vb(!!this.a);a=JD(this.a.kd(),18);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var vE=zeb(xte,'AbstractMapBasedMultimap/KeySet/1',735);mdb(489,395,{92:1,134:1},Kf);_.bc=function Lf(){return this.Qc()};_.ec=function Of(){return this.Sc()};_.Qc=function Mf(){return new cg(this.c,this.Uc())};_.Rc=function Nf(){return this.Uc().Rc()};_.Sc=function Pf(){var a;return a=this.b,!a?(this.b=this.Qc()):a};_.Tc=function Qf(){return this.Uc().Tc()};_.Uc=function Rf(){return JD(this.d,134)};var AE=zeb(xte,'AbstractMapBasedMultimap/SortedAsMap',489);mdb(437,489,Gte,Sf);_.bc=function Uf(){return new eg(this.a,JD(JD(this.d,134),138))};_.Qc=function Vf(){return new eg(this.a,JD(JD(this.d,134),138))};_.ec=function Zf(){var a;return a=this.b,JD(!a?(this.b=new eg(this.a,JD(JD(this.d,134),138))):a,277)};_.Sc=function $f(){var a;return a=this.b,JD(!a?(this.b=new eg(this.a,JD(JD(this.d,134),138))):a,277)};_.Uc=function ag(){return JD(JD(this.d,134),138)};_.Vc=function Tf(a){return JD(JD(this.d,134),138).Vc(a)};_.Wc=function Wf(a){return JD(JD(this.d,134),138).Wc(a)};_.Xc=function Xf(a,b){return new Sf(this.a,JD(JD(this.d,134),138).Xc(a,b))};_.Yc=function Yf(a){return JD(JD(this.d,134),138).Yc(a)};_.Zc=function _f(a){return JD(JD(this.d,134),138).Zc(a)};_.$c=function bg(a,b){return new Sf(this.a,JD(JD(this.d,134),138).$c(a,b))};var xE=zeb(xte,'AbstractMapBasedMultimap/NavigableAsMap',437);mdb(488,332,Hte,cg);_.Lc=function dg(){return this.b.ec().Lc()};var BE=zeb(xte,'AbstractMapBasedMultimap/SortedKeySet',488);mdb(394,488,Ite,eg);var yE=zeb(xte,'AbstractMapBasedMultimap/NavigableKeySet',394);mdb(539,31,Dte,jg);_.Ec=function kg(a){var b,c;gg(this);c=this.d.dc();b=this.d.Ec(a);if(b){++this.f.d;c&&fg(this)}return b};_.Fc=function lg(a){var b,c,d;if(a.dc()){return false}d=(gg(this),this.d.gc());b=this.d.Fc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&fg(this)}return b};_.$b=function mg(){var a;a=(gg(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;hg(this)};_.Gc=function ng(a){gg(this);return this.d.Gc(a)};_.Hc=function og(a){gg(this);return this.d.Hc(a)};_.Fb=function pg(a){if(a===this){return true}gg(this);return pb(this.d,a)};_.Hb=function qg(){gg(this);return tb(this.d)};_.Jc=function rg(){gg(this);return new Mg(this)};_.Kc=function sg(a){var b;gg(this);b=this.d.Kc(a);if(b){--this.f.d;hg(this)}return b};_.gc=function tg(){return ig(this)};_.Lc=function ug(){return gg(this),this.d.Lc()};_.Ib=function vg(){gg(this);return qdb(this.d)};var DE=zeb(xte,'AbstractMapBasedMultimap/WrappedCollection',539);var HK=Beb(Bte,'List');mdb(732,539,{20:1,31:1,18:1,16:1},wg);_.gd=function Fg(a){yub(this,a)};_.Lc=function Gg(){return gg(this),this.d.Lc()};_._c=function xg(a,b){var c;gg(this);c=this.d.dc();JD(this.d,16)._c(a,b);++this.a.d;c&&fg(this)};_.ad=function yg(a,b){var c,d,e;if(b.dc()){return false}e=(gg(this),this.d.gc());c=JD(this.d,16).ad(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&fg(this)}return c};_.Xb=function zg(a){gg(this);return JD(this.d,16).Xb(a)};_.bd=function Ag(a){gg(this);return JD(this.d,16).bd(a)};_.cd=function Bg(){gg(this);return new Sg(this)};_.dd=function Cg(a){gg(this);return new Tg(this,a)};_.ed=function Dg(a){var b;gg(this);b=JD(this.d,16).ed(a);--this.a.d;hg(this);return b};_.fd=function Eg(a,b){gg(this);return JD(this.d,16).fd(a,b)};_.hd=function Hg(a,b){gg(this);return Vc(this.a,this.e,JD(this.d,16).hd(a,b),!this.b?this:this.b)};var FE=zeb(xte,'AbstractMapBasedMultimap/WrappedList',732);mdb(1095,732,{20:1,31:1,18:1,16:1,59:1},Ig);var zE=zeb(xte,'AbstractMapBasedMultimap/RandomAccessWrappedList',1095);mdb(619,1,Ate,Mg);_.Nb=function Og(a){ctb(this,a)};_.Ob=function Pg(){Lg(this);return this.b.Ob()};_.Pb=function Qg(){Lg(this);return this.b.Pb()};_.Qb=function Rg(){Kg(this)};var CE=zeb(xte,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',619);mdb(733,619,Jte,Sg,Tg);_.Qb=function Zg(){Kg(this)};_.Rb=function Ug(a){var b;b=ig(this.a)==0;(Lg(this),JD(this.b,128)).Rb(a);++this.a.a.d;b&&fg(this.a)};_.Sb=function Vg(){return (Lg(this),JD(this.b,128)).Sb()};_.Tb=function Wg(){return (Lg(this),JD(this.b,128)).Tb()};_.Ub=function Xg(){return (Lg(this),JD(this.b,128)).Ub()};_.Vb=function Yg(){return (Lg(this),JD(this.b,128)).Vb()};_.Wb=function $g(a){(Lg(this),JD(this.b,128)).Wb(a)};var EE=zeb(xte,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',733);mdb(731,539,Hte,_g);_.Lc=function ah(){return gg(this),this.d.Lc()};var IE=zeb(xte,'AbstractMapBasedMultimap/WrappedSortedSet',731);mdb(1094,731,Ite,bh);var GE=zeb(xte,'AbstractMapBasedMultimap/WrappedNavigableSet',1094);mdb(1093,539,Fte,dh);_.Lc=function eh(){return gg(this),this.d.Lc()};var HE=zeb(xte,'AbstractMapBasedMultimap/WrappedSet',1093);mdb(1102,1,{},fh);_.Kb=function gh(a){return fd(JD(a,45))};var JE=zeb(xte,'AbstractMapBasedMultimap/lambda$1$Type',1102);mdb(1101,1,{},hh);_.Kb=function ih(a){return new ap(this.a,a)};var KE=zeb(xte,'AbstractMapBasedMultimap/lambda$2$Type',1101);var LK=Beb(Bte,'Map/Entry');mdb(358,1,Kte);_.Fb=function jh(a){var b;if(RD(a,45)){b=JD(a,45);return Hb(this.jd(),b.jd())&&Hb(this.kd(),b.kd())}return false};_.Hb=function kh(){var a,b;a=this.jd();b=this.kd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ld=function lh(a){throw Icb(new qhb)};_.Ib=function mh(){return this.jd()+'='+this.kd()};var ME=zeb(xte,Lte,358);mdb(Mte,31,Dte);_.$b=function nh(){this.md().$b()};_.Gc=function oh(a){var b;if(RD(a,45)){b=JD(a,45);return Cc(this.md(),b.jd(),b.kd())}return false};_.Kc=function ph(a){var b;if(RD(a,45)){b=JD(a,45);return Gc(this.md(),b.jd(),b.kd())}return false};_.gc=function qh(){return this.md().d};var qH=zeb(xte,'Multimaps/Entries',Mte);mdb(737,Mte,Dte,rh);_.Jc=function sh(){return this.a.kc()};_.md=function th(){return this.a};_.Lc=function uh(){return this.a.lc()};var NE=zeb(xte,'AbstractMultimap/Entries',737);mdb(738,737,Fte,vh);_.Lc=function yh(){return this.a.lc()};_.Fb=function wh(a){return Nx(this,a)};_.Hb=function xh(){return Ox(this)};var OE=zeb(xte,'AbstractMultimap/EntrySet',738);mdb(739,31,Dte,zh);_.$b=function Ah(){this.a.$b()};_.Gc=function Bh(a){return Dc(this.a,a)};_.Jc=function Ch(){return this.a.nc()};_.gc=function Dh(){return this.a.d};_.Lc=function Eh(){return this.a.oc()};var PE=zeb(xte,'AbstractMultimap/Values',739);mdb(2049,31,{833:1,20:1,31:1,18:1});_.Ic=function Mh(a){Qb(a);Gh(this).Ic(new dx(a))};_.Lc=function Qh(){var a;return a=Gh(this).Lc(),ck(a,new kx,64|a.wd()&1296,this.a.d)};_.Ec=function Ih(a){Fh();return true};_.Fc=function Jh(a){return Qb(this),Qb(a),RD(a,540)?fx(JD(a,833)):!a.dc()&&or(this,a.Jc())};_.Gc=function Kh(a){var b;return b=JD(Ov(nd(this.a),a),18),(!b?0:b.gc())>0};_.Fb=function Lh(a){return gx(this,a)};_.Hb=function Nh(){return tb(Gh(this))};_.dc=function Oh(){return Gh(this).dc()};_.Kc=function Ph(a){return Jw(this,a,1)>0};_.Ib=function Rh(){return qdb(Gh(this))};var SE=zeb(xte,'AbstractMultiset',2049);mdb(2051,2030,Fte);_.$b=function Sh(){Nc(this.a.a)};_.Gc=function Th(a){var b,c;if(RD(a,490)){c=JD(a,416);if(JD(c.a.kd(),18).gc()<=0){return false}b=Iw(this.a,c.a.jd());return b==JD(c.a.kd(),18).gc()}return false};_.Kc=function Uh(a){var b,c,d,e;if(RD(a,490)){c=JD(a,416);b=c.a.jd();d=JD(c.a.kd(),18).gc();if(d!=0){e=this.a;return ix(e,b,d)}}return false};var AH=zeb(xte,'Multisets/EntrySet',2051);mdb(1108,2051,Fte,Vh);_.Jc=function Wh(){return new Tw(ee(nd(this.a.a)).Jc())};_.gc=function Xh(){return nd(this.a.a).gc()};var RE=zeb(xte,'AbstractMultiset/EntrySet',1108);mdb(618,730,zte);_.hc=function $h(){return this.nd()};_.jc=function _h(){return this.od()};_.cc=function ci(a){return this.pd(a)};_.fc=function ei(a){return this.qd(a)};_.Zb=function Zh(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.od=function ai(){return Fnb(),Fnb(),Enb};_.Fb=function bi(a){return ow(this,a)};_.pd=function di(a){return JD(Qc(this,a),22)};_.qd=function fi(a){return JD(Sc(this,a),22)};_.mc=function gi(a){return Fnb(),new Qpb(JD(a,22))};_.pc=function hi(a,b){return new dh(this,a,JD(b,22))};var TE=zeb(xte,'AbstractSetMultimap',618);mdb(1689,618,zte);_.hc=function ki(){return new Dzb(this.b)};_.nd=function li(){return new Dzb(this.b)};_.jc=function mi(){return Vx(new Dzb(this.b))};_.od=function ni(){return Vx(new Dzb(this.b))};_.cc=function oi(a){return JD(JD(Qc(this,a),22),83)};_.pd=function pi(a){return JD(JD(Qc(this,a),22),83)};_.fc=function qi(a){return JD(JD(Sc(this,a),22),83)};_.qd=function ri(a){return JD(JD(Sc(this,a),22),83)};_.mc=function si(a){return RD(a,277)?Vx(JD(a,277)):(Fnb(),new oqb(JD(a,83)))};_.Zb=function ji(){var a;return a=this.f,!a?(this.f=RD(this.c,138)?new Sf(this,JD(this.c,138)):RD(this.c,134)?new Kf(this,JD(this.c,134)):new me(this,this.c)):a};_.pc=function ti(a,b){return RD(b,277)?new bh(this,a,JD(b,277)):new _g(this,a,JD(b,83))};var VE=zeb(xte,'AbstractSortedSetMultimap',1689);mdb(1690,1689,zte);_.Zb=function vi(){var a;return a=this.f,JD(JD(!a?(this.f=RD(this.c,138)?new Sf(this,JD(this.c,138)):RD(this.c,134)?new Kf(this,JD(this.c,134)):new me(this,this.c)):a,134),138)};_.ec=function xi(){var a;return a=this.i,JD(JD(!a?(this.i=RD(this.c,138)?new eg(this,JD(this.c,138)):RD(this.c,134)?new cg(this,JD(this.c,134)):new xf(this,this.c)):a,83),277)};_.bc=function wi(){return RD(this.c,138)?new eg(this,JD(this.c,138)):RD(this.c,134)?new cg(this,JD(this.c,134)):new xf(this,this.c)};var UE=zeb(xte,'AbstractSortedKeySortedSetMultimap',1690);mdb(2071,1,{2008:1});_.Fb=function yi(a){return Jy(this,a)};_.Hb=function zi(){var a;return Inb((a=this.g,!a?(this.g=new Bi(this)):a))};_.Ib=function Ai(){var a;return Md((a=this.f,!a?(this.f=new Xj(this)):a))};var YE=zeb(xte,'AbstractTable',2071);mdb(669,Ete,Fte,Bi);_.$b=function Ci(){Vi()};_.Gc=function Di(a){var b,c;if(RD(a,468)){b=JD(a,687);c=JD(Ov(_i(this.a),Nm(b.c.e,b.b)),92);return !!c&&Lk(c.vc(),new ap(Nm(b.c.c,b.a),Si(b.c,b.b,b.a)))}return false};_.Jc=function Ei(){return Ti(this.a)};_.Kc=function Fi(a){var b,c;if(RD(a,468)){b=JD(a,687);c=JD(Ov(_i(this.a),Nm(b.c.e,b.b)),92);return !!c&&Mk(c.vc(),new ap(Nm(b.c.c,b.a),Si(b.c,b.b,b.a)))}return false};_.gc=function Gi(){return bj(this.a)};_.Lc=function Hi(){return Ui(this.a)};var WE=zeb(xte,'AbstractTable/CellSet',669);mdb(1987,31,Dte,Ii);_.$b=function Ji(){Vi()};_.Gc=function Ki(a){return Wi(this.a,a)};_.Jc=function Li(){return dj(this.a)};_.gc=function Mi(){return bj(this.a)};_.Lc=function Ni(){return ej(this.a)};var XE=zeb(xte,'AbstractTable/Values',1987);mdb(1662,1661,zte);var ZE=zeb(xte,'ArrayListMultimapGwtSerializationDependencies',1662);mdb(506,1662,zte,Pi,Qi);_.hc=function Ri(){return new jmb(this.a)};_.a=0;var $E=zeb(xte,'ArrayListMultimap',506);mdb(668,2071,{668:1,2008:1,3:1},fj);var kF=zeb(xte,'ArrayTable',668);mdb(1983,392,yte,gj);_.Xb=function hj(a){return new nj(this.a,a)};var _E=zeb(xte,'ArrayTable/1',1983);mdb(1984,1,{},ij);_.rd=function jj(a){return new nj(this.a,a)};var aF=zeb(xte,'ArrayTable/1methodref$getCell$Type',1984);mdb(2072,1,{687:1});_.Fb=function kj(a){var b;if(a===this){return true}if(RD(a,468)){b=JD(a,687);return Hb(Nm(this.c.e,this.b),Nm(b.c.e,b.b))&&Hb(Nm(this.c.c,this.a),Nm(b.c.c,b.a))&&Hb(Si(this.c,this.b,this.a),Si(b.c,b.b,b.a))}return false};_.Hb=function lj(){return $mb(WC(OC(aJ,1),rte,1,5,[Nm(this.c.e,this.b),Nm(this.c.c,this.a),Si(this.c,this.b,this.a)]))};_.Ib=function mj(){return '('+Nm(this.c.e,this.b)+','+Nm(this.c.c,this.a)+')='+Si(this.c,this.b,this.a)};var TH=zeb(xte,'Tables/AbstractCell',2072);mdb(468,2072,{468:1,687:1},nj);_.a=0;_.b=0;_.d=0;var bF=zeb(xte,'ArrayTable/2',468);mdb(1986,1,{},oj);_.rd=function pj(a){return Zi(this.a,a)};var cF=zeb(xte,'ArrayTable/2methodref$getValue$Type',1986);mdb(1985,392,yte,qj);_.Xb=function rj(a){return Zi(this.a,a)};var dF=zeb(xte,'ArrayTable/3',1985);mdb(2039,2027,Cte);_.$b=function tj(){rr(this.kc())};_.vc=function uj(){return new Zv(this)};_.lc=function vj(){return new Yvb(this.kc(),this.gc())};var hH=zeb(xte,'Maps/IteratorBasedAbstractMap',2039);mdb(826,2039,Cte);_.$b=function zj(){throw Icb(new qhb)};_._b=function Aj(a){return yn(this.c,a)};_.kc=function Bj(){return new Pj(this,this.c.b.c.gc())};_.lc=function Cj(){return dk(this.c.b.c.gc(),16,new Jj(this))};_.xc=function Dj(a){var b;b=JD(zn(this.c,a),15);return !b?null:this.td(b.a)};_.dc=function Ej(){return this.c.b.c.dc()};_.ec=function Fj(){return cn(this.c)};_.yc=function Gj(a,b){var c;c=JD(zn(this.c,a),15);if(!c){throw Icb(new hfb(this.sd()+' '+a+' not in '+cn(this.c)))}return this.ud(c.a,b)};_.Ac=function Hj(a){throw Icb(new qhb)};_.gc=function Ij(){return this.c.b.c.gc()};var hF=zeb(xte,'ArrayTable/ArrayMap',826);mdb(1982,1,{},Jj);_.rd=function Kj(a){return wj(this.a,a)};var eF=zeb(xte,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1982);mdb(1980,358,Kte,Lj);_.jd=function Mj(){return xj(this.a,this.b)};_.kd=function Nj(){return this.a.td(this.b)};_.ld=function Oj(a){return this.a.ud(this.b,a)};_.b=0;var fF=zeb(xte,'ArrayTable/ArrayMap/1',1980);mdb(1981,392,yte,Pj);_.Xb=function Qj(a){return wj(this.a,a)};var gF=zeb(xte,'ArrayTable/ArrayMap/2',1981);mdb(1979,826,Cte,Rj);_.sd=function Sj(){return 'Column'};_.td=function Tj(a){return Si(this.b,this.a,a)};_.ud=function Uj(a,b){return aj(this.b,this.a,a,b)};_.a=0;var jF=zeb(xte,'ArrayTable/Row',1979);mdb(827,826,Cte,Xj);_.td=function Zj(a){return new Rj(this.a,a)};_.yc=function $j(a,b){return JD(b,92),Vj()};_.ud=function _j(a,b){return JD(b,92),Wj()};_.sd=function Yj(){return 'Row'};var iF=zeb(xte,'ArrayTable/RowMap',827);mdb(1126,1,Qte,fk);_.yd=function jk(a){return (this.a.wd()&-262&a)!=0};_.wd=function gk(){return this.a.wd()&-262};_.xd=function hk(){return this.a.xd()};_.Nb=function ik(a){this.a.Nb(new nk(a,this.b))};_.zd=function kk(a){return this.a.zd(new lk(a,this.b))};var qF=zeb(xte,'CollectSpliterators/1',1126);mdb(1127,1,Rte,lk);_.Ad=function mk(a){this.a.Ad(this.b.Kb(a))};var lF=zeb(xte,'CollectSpliterators/1/lambda$0$Type',1127);mdb(1128,1,Rte,nk);_.Ad=function ok(a){this.a.Ad(this.b.Kb(a))};var mF=zeb(xte,'CollectSpliterators/1/lambda$1$Type',1128);mdb(1123,1,Qte,pk);_.yd=function tk(a){return ((16464|this.b)&a)!=0};_.wd=function qk(){return 16464|this.b};_.xd=function rk(){return this.a.xd()};_.Nb=function sk(a){this.a.Oe(new xk(a,this.c))};_.zd=function uk(a){return this.a.Pe(new vk(a,this.c))};_.b=0;var pF=zeb(xte,'CollectSpliterators/1WithCharacteristics',1123);mdb(1124,1,Ste,vk);_.Bd=function wk(a){this.a.Ad(this.b.rd(a))};var nF=zeb(xte,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1124);mdb(1125,1,Ste,xk);_.Bd=function yk(a){this.a.Ad(this.b.rd(a))};var oF=zeb(xte,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1125);mdb(1119,1,Qte);_.yd=function Ek(a){return (this.a&a)!=0};_.wd=function Bk(){return this.a};_.xd=function Ck(){!!this.e&&(this.b=Rfb(this.b,this.e.xd()));return Rfb(this.b,0)};_.Nb=function Dk(a){if(this.e){this.e.Nb(a);this.e=null}this.c.Nb(new Ik(this,a));this.b=0};_.zd=function Fk(a){while(true){if(!!this.e&&this.e.zd(a)){Xcb(this.b,Tte)&&(this.b=adb(this.b,1));return true}else{this.e=null}if(!this.c.zd(new Gk(this))){return false}}};_.a=0;_.b=0;var uF=zeb(xte,'CollectSpliterators/FlatMapSpliterator',1119);mdb(1121,1,Rte,Gk);_.Ad=function Hk(a){zk(this.a,a)};var rF=zeb(xte,'CollectSpliterators/FlatMapSpliterator/lambda$0$Type',1121);mdb(1122,1,Rte,Ik);_.Ad=function Jk(a){Ak(this.a,this.b,a)};var sF=zeb(xte,'CollectSpliterators/FlatMapSpliterator/lambda$1$Type',1122);mdb(1120,1119,Qte,Kk);var tF=zeb(xte,'CollectSpliterators/FlatMapSpliteratorOfObject',1120);mdb(254,1,Ute);_.Dd=function Qk(a){return this.Cd(JD(a,254))};_.Cd=function Pk(a){var b;if(a==(il(),hl)){return 1}if(a==(Uk(),Tk)){return -1}b=(mx(),Sdb(this.a,a.a));if(b!=0){return b}return Ndb(),RD(this,513)==RD(a,513)?0:RD(this,513)?1:-1};_.Gd=function Rk(){return this.a};_.Fb=function Sk(a){return Nk(this,a)};var zF=zeb(xte,'Cut',254);mdb(1793,254,Ute,Vk);_.Cd=function Wk(a){return a==this?0:1};_.Ed=function Xk(a){throw Icb(new Jdb)};_.Fd=function Yk(a){a.a+='+\u221E)'};_.Gd=function Zk(){throw Icb(new kfb(Vte))};_.Hb=function $k(){return nhb(),zDb(this)};_.Hd=function _k(a){return false};_.Ib=function al(){return '+\u221E'};var Tk;var vF=zeb(xte,'Cut/AboveAll',1793);mdb(513,254,{254:1,513:1,3:1,35:1},bl);_.Ed=function cl(a){dhb((a.a+='(',a),this.a)};_.Fd=function dl(a){$gb(dhb(a,this.a),93)};_.Hb=function el(){return ~tb(this.a)};_.Hd=function fl(a){return mx(),Sdb(this.a,a)<0};_.Ib=function gl(){return '/'+this.a+'\\'};var wF=zeb(xte,'Cut/AboveValue',513);mdb(1792,254,Ute,jl);_.Cd=function kl(a){return a==this?0:-1};_.Ed=function ll(a){a.a+='(-\u221E'};_.Fd=function ml(a){throw Icb(new Jdb)};_.Gd=function nl(){throw Icb(new kfb(Vte))};_.Hb=function ol(){return nhb(),zDb(this)};_.Hd=function pl(a){return true};_.Ib=function ql(){return '-\u221E'};var hl;var xF=zeb(xte,'Cut/BelowAll',1792);mdb(1794,254,Ute,rl);_.Ed=function sl(a){dhb((a.a+='[',a),this.a)};_.Fd=function tl(a){$gb(dhb(a,this.a),41)};_.Hb=function ul(){return tb(this.a)};_.Hd=function vl(a){return mx(),Sdb(this.a,a)<=0};_.Ib=function wl(){return '\\'+this.a+'/'};var yF=zeb(xte,'Cut/BelowValue',1794);mdb(535,1,Wte);_.Ic=function zl(a){Efb(this,a)};_.Ib=function Al(){return Cr(JD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Jc())};var EF=zeb(xte,'FluentIterable',535);mdb(433,535,Wte,Bl);_.Jc=function Cl(){return new Yr(Dr(this.a.Jc(),new Dl))};var BF=zeb(xte,'FluentIterable/2',433);mdb(36,1,{},Dl);_.Kb=function El(a){return JD(a,20).Jc()};_.Fb=function Fl(a){return this===a};var AF=zeb(xte,'FluentIterable/2/0methodref$iterator$Type',36);mdb(1040,535,Wte,Hl);_.Jc=function Il(){return Gl(this)};var DF=zeb(xte,'FluentIterable/3',1040);mdb(714,392,yte,Jl);_.Xb=function Kl(a){return this.a[a].Jc()};var CF=zeb(xte,'FluentIterable/3/1',714);mdb(2032,1,{});_.Ib=function Ll(){return qdb(this.Id().b)};var LF=zeb(xte,'ForwardingObject',2032);mdb(2033,2032,Xte);_.Id=function Rl(){return this.Jd()};_.Ic=function Sl(a){Efb(this,a)};_.Lc=function Xl(){return new Wvb(this,0)};_.Mc=function Yl(){return new gCb(null,this.Lc())};_.Ec=function Ml(a){return this.Jd(),xob()};_.Fc=function Nl(a){return this.Jd(),yob()};_.$b=function Ol(){this.Jd(),zob()};_.Gc=function Pl(a){return this.Jd().Gc(a)};_.Hc=function Ql(a){return this.Jd().Hc(a)};_.dc=function Tl(){return this.Jd().b.dc()};_.Jc=function Ul(){return this.Jd().Jc()};_.Kc=function Vl(a){return this.Jd(),Cob()};_.gc=function Wl(){return this.Jd().b.gc()};_.Nc=function Zl(){return this.Jd().Nc()};_.Oc=function $l(a){return this.Jd().Oc(a)};var FF=zeb(xte,'ForwardingCollection',2033);mdb(2040,31,Yte);_.Jc=function fm(){return this.Md()};_.Ec=function _l(a){throw Icb(new qhb)};_.Fc=function am(a){throw Icb(new qhb)};_.Kd=function bm(){var a;a=this.c;return !a?(this.c=this.Ld()):a};_.$b=function cm(){throw Icb(new qhb)};_.Gc=function dm(a){return a!=null&&ye(this,a,false)};_.Ld=function em(){switch(this.gc()){case 0:return Dx(),Cx;case 1:return new vy(Qb(this.Md().Pb()));default:return new xx(this,this.Nc());}};_.Kc=function gm(a){throw Icb(new qhb)};var eG=zeb(xte,'ImmutableCollection',2040);mdb(1259,2040,Yte,hm);_.Jc=function mm(){return Er(new Vob(this.a.b.Jc()))};_.Gc=function im(a){return a!=null&&Aob(this.a,a)};_.Hc=function jm(a){return Bob(this.a,a)};_.dc=function km(){return this.a.b.dc()};_.Md=function lm(){return Er(new Vob(this.a.b.Jc()))};_.gc=function nm(){return this.a.b.gc()};_.Nc=function om(){return this.a.b.Nc()};_.Oc=function pm(a){return Dob(this.a,a)};_.Ib=function qm(){return qdb(this.a.b)};var GF=zeb(xte,'ForwardingImmutableCollection',1259);mdb(311,2040,Zte);_.Jc=function Bm(){return this.Md()};_.cd=function Cm(){return this.Nd(0)};_.dd=function Em(a){return this.Nd(a)};_.gd=function Im(a){yub(this,a)};_.Lc=function Jm(){return new Wvb(this,16)};_.hd=function Lm(a,b){return this.Od(a,b)};_._c=function tm(a,b){throw Icb(new qhb)};_.ad=function um(a,b){throw Icb(new qhb)};_.Kd=function vm(){return this};_.Fb=function xm(a){return Ru(this,a)};_.Hb=function ym(){return Su(this)};_.bd=function zm(a){return a==null?-1:Tu(this,a)};_.Md=function Am(){return this.Nd(0)};_.Nd=function Dm(a){return rm(this,a)};_.ed=function Gm(a){throw Icb(new qhb)};_.fd=function Hm(a,b){throw Icb(new qhb)};_.Od=function Km(a,b){var c;return Mm((c=new gv(this),new Yjb(c,a,b)))};var jG=zeb(xte,'ImmutableList',311);mdb(2067,311,Zte);_.Jc=function Wm(){return Er(this.Pd().Jc())};_.hd=function Zm(a,b){return Mm(this.Pd().hd(a,b))};_.Gc=function Om(a){return a!=null&&this.Pd().Gc(a)};_.Hc=function Pm(a){return this.Pd().Hc(a)};_.Fb=function Qm(a){return pb(this.Pd(),a)};_.Xb=function Rm(a){return Nm(this,a)};_.Hb=function Sm(){return tb(this.Pd())};_.bd=function Tm(a){return this.Pd().bd(a)};_.dc=function Um(){return this.Pd().dc()};_.Md=function Vm(){return Er(this.Pd().Jc())};_.gc=function Xm(){return this.Pd().gc()};_.Od=function Ym(a,b){return Mm(this.Pd().hd(a,b))};_.Nc=function $m(){return this.Pd().Oc(SC(aJ,rte,1,this.Pd().gc(),5,1))};_.Oc=function _m(a){return this.Pd().Oc(a)};_.Ib=function an(){return qdb(this.Pd())};var HF=zeb(xte,'ForwardingImmutableList',2067);mdb(717,1,_te);_.vc=function kn(){return bn(this)};_.wc=function mn(a){Gub(this,a)};_.ec=function qn(){return cn(this)};_.Bc=function xn(){return this.Td()};_.$b=function en(){throw Icb(new qhb)};_._b=function fn(a){return this.xc(a)!=null};_.uc=function gn(a){return this.Td().Gc(a)};_.Rd=function hn(){return new rq(this)};_.Sd=function jn(){return new Aq(this)};_.Fb=function ln(a){return Kv(this,a)};_.Hb=function on(){return bn(this).Hb()};_.dc=function pn(){return this.gc()==0};_.yc=function tn(a,b){return dn()};_.Ac=function un(a){throw Icb(new qhb)};_.Ib=function vn(){return Qv(this)};_.Td=function wn(){if(this.e){return this.e}return this.e=this.Sd()};_.c=null;_.d=null;_.e=null;var tG=zeb(xte,'ImmutableMap',717);mdb(718,717,_te);_._b=function Bn(a){return yn(this,a)};_.uc=function Cn(a){return vpb(this.b,a)};_.Qd=function Dn(){return _n(new Rn(this))};_.Rd=function En(){return _n(ypb(this.b))};_.Sd=function Fn(){return new hm(zpb(this.b))};_.Fb=function Gn(a){return xpb(this.b,a)};_.xc=function Hn(a){return zn(this,a)};_.Hb=function In(){return tb(this.b.c)};_.dc=function Jn(){return this.b.c.dc()};_.gc=function Kn(){return this.b.c.gc()};_.Ib=function Ln(){return qdb(this.b.c)};var JF=zeb(xte,'ForwardingImmutableMap',718);mdb(2034,2033,aue);_.Id=function Mn(){return this.Ud()};_.Jd=function Nn(){return this.Ud()};_.Lc=function Qn(){return new Wvb(this,1)};_.Fb=function On(a){return a===this||this.Ud().Fb(a)};_.Hb=function Pn(){return this.Ud().Hb()};var MF=zeb(xte,'ForwardingSet',2034);mdb(1055,2034,aue,Rn);_.Id=function Tn(){return wpb(this.a.b)};_.Jd=function Un(){return wpb(this.a.b)};_.Gc=function Sn(b){if(RD(b,45)&&JD(b,45).jd()==null){return false}try{return Upb(wpb(this.a.b),b)}catch(a){a=Hcb(a);if(RD(a,211)){return false}else throw Icb(a)}};_.Ud=function Vn(){return wpb(this.a.b)};_.Oc=function Wn(a){var b,c;b=Vpb(wpb(this.a.b),a);if(wpb(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=sB($wnd.Math.abs(c)%60);return (Rqb(),Pqb)[this.q.getDay()]+' '+Qqb[this.q.getMonth()]+' '+sB(this.q.getDate())+' '+sB(this.q.getHours())+':'+sB(this.q.getMinutes())+':'+sB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var hK=zeb(Bte,'Date',205);mdb(1977,205,bve,vB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var oI=zeb('com.google.gwt.i18n.shared.impl','DateRecord',1977);mdb(2026,1,{});_.ne=function wB(){return null};_.oe=function xB(){return null};_.pe=function yB(){return null};_.qe=function zB(){return null};_.re=function AB(){return null};var xI=zeb(cve,'JSONValue',2026);mdb(139,2026,{139:1},EB,FB);_.Fb=function GB(a){if(!RD(a,139)){return false}return zz(this.a,JD(a,139).a)};_.me=function HB(){return LB};_.Hb=function IB(){return Az(this.a)};_.ne=function JB(){return this};_.Ib=function KB(){var a,b,c;c=new khb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);dhb(c,BB(this,b))}c.a+=']';return c.a};var pI=zeb(cve,'JSONArray',139);mdb(479,2026,{479:1},PB);_.me=function QB(){return TB};_.oe=function RB(){return this};_.Ib=function SB(){return Ndb(),''+this.a};_.a=false;var MB,NB;var qI=zeb(cve,'JSONBoolean',479);mdb(981,63,tue,UB);var rI=zeb(cve,'JSONException',981);mdb(1017,2026,{},XB);_.me=function YB(){return $B};_.Ib=function ZB(){return vte};var VB;var sI=zeb(cve,'JSONNull',1017);mdb(265,2026,{265:1},_B);_.Fb=function aC(a){if(!RD(a,265)){return false}return this.a==JD(a,265).a};_.me=function bC(){return fC};_.Hb=function cC(){return Ueb(this.a)};_.pe=function dC(){return this};_.Ib=function eC(){return this.a+''};_.a=0;var tI=zeb(cve,'JSONNumber',265);mdb(149,2026,{149:1},mC,nC);_.Fb=function oC(a){if(!RD(a,149)){return false}return zz(this.a,JD(a,149).a)};_.me=function pC(){return tC};_.Hb=function qC(){return Az(this.a)};_.qe=function rC(){return this};_.Ib=function sC(){var a,b,c,d,e,f,g;g=new khb('{');a=true;f=gC(this,SC(hJ,Ote,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var dJ=zeb(mte,'StackTraceElement',324);HD={3:1,472:1,35:1,2:1};var hJ=zeb(mte,vue,2);mdb(111,418,{472:1},Xgb,Ygb,Zgb);var eJ=zeb(mte,'StringBuffer',111);mdb(106,418,{472:1},ihb,jhb,khb);var fJ=zeb(mte,'StringBuilder',106);mdb(691,99,lve,lhb);var gJ=zeb(mte,'StringIndexOutOfBoundsException',691);mdb(2107,1,{});var mhb;mdb(46,63,{3:1,101:1,63:1,80:1,46:1},qhb,rhb);var jJ=zeb(mte,'UnsupportedOperationException',46);mdb(247,242,{3:1,35:1,242:1,247:1},Hhb,Ihb);_.Dd=function Lhb(a){return Bhb(this,JD(a,247))};_.se=function Mhb(){return Udb(Ghb(this))};_.Fb=function Nhb(a){var b;if(this===a){return true}if(RD(a,247)){b=JD(a,247);return this.e==b.e&&Bhb(this,b)==0}return false};_.Hb=function Ohb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Pcb(this.f);this.b=ddb(Kcb(a,-1));this.b=33*this.b+ddb(Kcb($cb(a,32),-1));this.b=17*this.b+YD(this.e);return this.b}this.b=17*aib(this.c)+YD(this.e);return this.b};_.Ib=function Phb(){return Ghb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var shb,thb,uhb,vhb,whb,xhb,yhb,zhb;var kJ=zeb('java.math','BigDecimal',247);mdb(91,242,{3:1,35:1,242:1,91:1},hib,iib,jib,kib,lib);_.Dd=function nib(a){return Xhb(this,JD(a,91))};_.se=function oib(){return Udb(Hib(this,0))};_.Fb=function pib(a){return Zhb(this,a)};_.Hb=function sib(){return aib(this)};_.Ib=function uib(){return Hib(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Qhb,Rhb,Shb,Thb,Uhb,Vhb;var lJ=zeb('java.math','BigInteger',91);var Cib,Dib;var Qib,Rib;mdb(484,2027,Cte);_.$b=function kjb(){hjb(this)};_._b=function ljb(a){return _ib(this,a)};_.uc=function mjb(a){return ajb(this,a,this.i)||ajb(this,a,this.f)};_.vc=function njb(){return new tjb(this)};_.xc=function ojb(a){return bjb(this,a)};_.yc=function pjb(a,b){return ejb(this,a,b)};_.Ac=function qjb(a){return gjb(this,a)};_.gc=function rjb(){return ijb(this)};_.g=0;var pJ=zeb(Bte,'AbstractHashMap',484);mdb(306,Ete,Fte,tjb);_.$b=function ujb(){this.a.$b()};_.Gc=function vjb(a){return sjb(this,a)};_.Jc=function wjb(){return new Cjb(this.a)};_.Kc=function xjb(a){var b;if(sjb(this,a)){b=JD(a,45).jd();this.a.Ac(b);return true}return false};_.gc=function yjb(){return this.a.gc()};var oJ=zeb(Bte,'AbstractHashMap/EntrySet',306);mdb(307,1,Ate,Cjb);_.Nb=function Djb(a){ctb(this,a)};_.Pb=function Fjb(){return Ajb(this)};_.Ob=function Ejb(){return this.b};_.Qb=function Gjb(){Bjb(this)};_.b=false;_.d=0;var nJ=zeb(Bte,'AbstractHashMap/EntrySetIterator',307);mdb(417,1,Ate,Kjb);_.Nb=function Ljb(a){ctb(this,a)};_.Ob=function Mjb(){return Hjb(this)};_.Pb=function Njb(){return Ijb(this)};_.Qb=function Ojb(){Jjb(this)};_.b=0;_.c=-1;var qJ=zeb(Bte,'AbstractList/IteratorImpl',417);mdb(97,417,Jte,Qjb);_.Qb=function Wjb(){Jjb(this)};_.Rb=function Rjb(a){Pjb(this,a)};_.Sb=function Sjb(){return this.b>0};_.Tb=function Tjb(){return this.b};_.Ub=function Ujb(){return IDb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Vjb(){return this.b-1};_.Wb=function Xjb(a){ODb(this.c!=-1);this.a.fd(this.c,a)};var rJ=zeb(Bte,'AbstractList/ListIteratorImpl',97);mdb(258,56,lue,Yjb);_._c=function Zjb(a,b){MDb(a,this.b);this.c._c(this.a+a,b);++this.b};_.Xb=function $jb(a){JDb(a,this.b);return this.c.Xb(this.a+a)};_.ed=function _jb(a){var b;JDb(a,this.b);b=this.c.ed(this.a+a);--this.b;return b};_.fd=function akb(a,b){JDb(a,this.b);return this.c.fd(this.a+a,b)};_.gc=function bkb(){return this.b};_.a=0;_.b=0;var sJ=zeb(Bte,'AbstractList/SubList',258);mdb(232,Ete,Fte,ckb);_.$b=function dkb(){this.a.$b()};_.Gc=function ekb(a){return this.a._b(a)};_.Jc=function fkb(){var a;return a=this.a.vc().Jc(),new ikb(a)};_.Kc=function gkb(a){if(this.a._b(a)){this.a.Ac(a);return true}return false};_.gc=function hkb(){return this.a.gc()};var vJ=zeb(Bte,'AbstractMap/1',232);mdb(529,1,Ate,ikb);_.Nb=function jkb(a){ctb(this,a)};_.Ob=function kkb(){return this.a.Ob()};_.Pb=function lkb(){var a;return a=JD(this.a.Pb(),45),a.jd()};_.Qb=function mkb(){this.a.Qb()};var uJ=zeb(Bte,'AbstractMap/1/1',529);mdb(230,31,Dte,nkb);_.$b=function okb(){this.a.$b()};_.Gc=function pkb(a){return this.a.uc(a)};_.Jc=function qkb(){var a;return a=this.a.vc().Jc(),new skb(a)};_.gc=function rkb(){return this.a.gc()};var xJ=zeb(Bte,'AbstractMap/2',230);mdb(304,1,Ate,skb);_.Nb=function tkb(a){ctb(this,a)};_.Ob=function ukb(){return this.a.Ob()};_.Pb=function vkb(){var a;return a=JD(this.a.Pb(),45),a.kd()};_.Qb=function wkb(){this.a.Qb()};var wJ=zeb(Bte,'AbstractMap/2/1',304);mdb(480,1,{480:1,45:1});_.Fb=function ykb(a){var b;if(!RD(a,45)){return false}b=JD(a,45);return Jub(this.d,b.jd())&&Jub(this.e,b.kd())};_.jd=function zkb(){return this.d};_.kd=function Akb(){return this.e};_.Hb=function Bkb(){return Kub(this.d)^Kub(this.e)};_.ld=function Ckb(a){return xkb(this,a)};_.Ib=function Dkb(){return this.d+'='+this.e};var yJ=zeb(Bte,'AbstractMap/AbstractEntry',480);mdb(390,480,{480:1,390:1,45:1},Ekb);var zJ=zeb(Bte,'AbstractMap/SimpleEntry',390);mdb(2044,1,Ave);_.Fb=function Fkb(a){var b;if(!RD(a,45)){return false}b=JD(a,45);return Jub(this.jd(),b.jd())&&Jub(this.kd(),b.kd())};_.Hb=function Gkb(){return Kub(this.jd())^Kub(this.kd())};_.Ib=function Hkb(){return this.jd()+'='+this.kd()};var AJ=zeb(Bte,Lte,2044);mdb(2052,2027,Gte);_.Vc=function Kkb(a){return Vd(this.Ce(a))};_.tc=function Lkb(a){return Ikb(this,a)};_._b=function Mkb(a){return Jkb(this,a)};_.vc=function Nkb(){return new Wkb(this)};_.Rc=function Okb(){return Rkb(this.Ee())};_.Wc=function Pkb(a){return Vd(this.Fe(a))};_.xc=function Qkb(a){var b;b=a;return Wd(this.De(b))};_.Yc=function Skb(a){return Vd(this.Ge(a))};_.ec=function Tkb(){return new _kb(this)};_.Tc=function Ukb(){return Rkb(this.He())};_.Zc=function Vkb(a){return Vd(this.Ie(a))};var FJ=zeb(Bte,'AbstractNavigableMap',2052);mdb(620,Ete,Fte,Wkb);_.Gc=function Xkb(a){return RD(a,45)&&Ikb(this.b,JD(a,45))};_.Jc=function Ykb(){return this.b.Be()};_.Kc=function Zkb(a){var b;if(RD(a,45)){b=JD(a,45);return this.b.Je(b)}return false};_.gc=function $kb(){return this.b.gc()};var CJ=zeb(Bte,'AbstractNavigableMap/EntrySet',620);mdb(1115,Ete,Ite,_kb);_.Lc=function flb(){return new cwb(this)};_.$b=function alb(){this.a.$b()};_.Gc=function blb(a){return Jkb(this.a,a)};_.Jc=function clb(){var a;a=this.a.vc().b.Be();return new glb(a)};_.Kc=function dlb(a){if(Jkb(this.a,a)){this.a.Ac(a);return true}return false};_.gc=function elb(){return this.a.gc()};var EJ=zeb(Bte,'AbstractNavigableMap/NavigableKeySet',1115);mdb(1116,1,Ate,glb);_.Nb=function hlb(a){ctb(this,a)};_.Ob=function ilb(){return Hjb(this.a.a)};_.Pb=function jlb(){var a;a=zyb(this.a);return a.jd()};_.Qb=function klb(){Ayb(this.a)};var DJ=zeb(Bte,'AbstractNavigableMap/NavigableKeySet/1',1116);mdb(2065,31,Dte);_.Ec=function llb(a){return PDb(pvb(this,a),Bve),true};_.Fc=function mlb(a){KDb(a);CDb(a!=this,"Can't add a queue to itself");return xe(this,a)};_.$b=function nlb(){while(qvb(this)!=null);};var GJ=zeb(Bte,'AbstractQueue',2065);mdb(314,31,{4:1,20:1,31:1,18:1},Dlb,Elb);_.Ec=function Flb(a){return plb(this,a),true};_.$b=function Hlb(){qlb(this)};_.Gc=function Ilb(a){return rlb(new Rlb(this),a)};_.dc=function Jlb(){return ulb(this)};_.Jc=function Klb(){return new Rlb(this)};_.Kc=function Llb(a){return xlb(new Rlb(this),a)};_.gc=function Mlb(){return this.c-this.b&this.a.length-1};_.Lc=function Nlb(){return new Wvb(this,272)};_.Oc=function Olb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&VC(a,b,null);return a};_.b=0;_.c=0;var KJ=zeb(Bte,'ArrayDeque',314);mdb(448,1,Ate,Rlb);_.Nb=function Slb(a){ctb(this,a)};_.Ob=function Tlb(){return this.a!=this.b};_.Pb=function Ulb(){return Plb(this)};_.Qb=function Vlb(){Qlb(this)};_.a=0;_.b=0;_.c=-1;var JJ=zeb(Bte,'ArrayDeque/IteratorImpl',448);mdb(13,56,Cve,imb,jmb,kmb);_._c=function lmb(a,b){Xlb(this,a,b)};_.Ec=function mmb(a){return Ylb(this,a)};_.ad=function nmb(a,b){return Zlb(this,a,b)};_.Fc=function omb(a){return $lb(this,a)};_.$b=function pmb(){qDb(this.c,0)};_.Gc=function qmb(a){return bmb(this,a,0)!=-1};_.Ic=function rmb(a){_lb(this,a)};_.Xb=function smb(a){return amb(this,a)};_.bd=function tmb(a){return bmb(this,a,0)};_.dc=function umb(){return this.c.length==0};_.Jc=function vmb(){return new Hmb(this)};_.ed=function wmb(a){return cmb(this,a)};_.Kc=function xmb(a){return dmb(this,a)};_.ae=function ymb(a,b){emb(this,a,b)};_.fd=function zmb(a,b){return fmb(this,a,b)};_.gc=function Amb(){return this.c.length};_.gd=function Bmb(a){gmb(this,a)};_.Nc=function Cmb(){return iDb(this.c)};_.Oc=function Dmb(a){return hmb(this,a)};var MJ=zeb(Bte,'ArrayList',13);mdb(7,1,Ate,Hmb);_.Nb=function Imb(a){ctb(this,a)};_.Ob=function Jmb(){return Emb(this)};_.Pb=function Kmb(){return Fmb(this)};_.Qb=function Lmb(){Gmb(this)};_.a=0;_.b=-1;var LJ=zeb(Bte,'ArrayList/1',7);mdb(2074,$wnd.Function,{},pnb);_.Ke=function qnb(a,b){return Xeb(a,b)};mdb(123,56,Dve,tnb);_.Gc=function unb(a){return Jt(this,a)!=-1};_.Ic=function vnb(a){var b,c,d,e;KDb(a);for(c=this.a,d=0,e=c.length;d0){throw Icb(new hfb(Sve+a+' greater than '+this.e))}return this.f.Re()?fyb(this.c,this.b,this.a,a,b):Vxb(this.c,a,b)};_.yc=function Zyb(a,b){if(!Xxb(this.c,this.f,a,this.b,this.a,this.e,this.d)){throw Icb(new hfb(a+' outside the range '+this.b+' to '+this.e))}return $xb(this.c,a,b)};_.Ac=function $yb(a){var b;b=a;if(!Xxb(this.c,this.f,b,this.b,this.a,this.e,this.d)){return null}return _xb(this.c,b)};_.Je=function _yb(a){return Nyb(this,a.jd())&&ayb(this.c,a)};_.gc=function azb(){var a,b,c;this.f.Re()?this.a?(b=Txb(this.c,this.b,true)):(b=Txb(this.c,this.b,false)):(b=Rxb(this.c));if(!(!!b&&Nyb(this,b.d)?b:null)){return 0}a=0;for(c=new Cyb(this.c,this.f,this.b,this.a,this.e,this.d);Hjb(c.a);c.b=JD(Ijb(c.a),45)){++a}return a};_.$c=function bzb(a,b){if(this.f.Re()&&this.c.a.Le(a,this.b)<0){throw Icb(new hfb(Sve+a+Tve+this.b))}return this.f.Se()?fyb(this.c,a,b,this.e,this.d):gyb(this.c,a,b)};_.a=false;_.d=false;var sL=zeb(Bte,'TreeMap/SubMap',622);mdb(309,23,Uve,hzb);_.Re=function izb(){return false};_.Se=function jzb(){return false};var czb,dzb,ezb,fzb;var rL=Aeb(Bte,'TreeMap/SubMapType',309,MI,lzb,kzb);mdb(1112,309,Uve,mzb);_.Se=function nzb(){return true};var oL=Aeb(Bte,'TreeMap/SubMapType/1',1112,rL,null,null);mdb(1113,309,Uve,ozb);_.Re=function pzb(){return true};_.Se=function qzb(){return true};var pL=Aeb(Bte,'TreeMap/SubMapType/2',1113,rL,null,null);mdb(1114,309,Uve,rzb);_.Re=function szb(){return true};var qL=Aeb(Bte,'TreeMap/SubMapType/3',1114,rL,null,null);var tzb;mdb(141,Ete,{3:1,20:1,31:1,18:1,277:1,22:1,83:1,141:1},Bzb,Czb,Dzb,Ezb);_.Lc=function Lzb(){return new cwb(this)};_.Ec=function Fzb(a){return vzb(this,a)};_.$b=function Gzb(){this.a.$b()};_.Gc=function Hzb(a){return this.a._b(a)};_.Jc=function Izb(){return this.a.ec().Jc()};_.Kc=function Jzb(a){return Azb(this,a)};_.gc=function Kzb(){return this.a.gc()};var uL=zeb(Bte,'TreeSet',141);mdb(1052,1,{},Ozb);_.Te=function Pzb(a,b){return Mzb(this.a,a,b)};var wL=zeb(Vve,'BinaryOperator/lambda$0$Type',1052);mdb(1053,1,{},Qzb);_.Te=function Rzb(a,b){return Nzb(this.a,a,b)};var xL=zeb(Vve,'BinaryOperator/lambda$1$Type',1053);mdb(935,1,{},Szb);_.Kb=function Tzb(a){return a};var yL=zeb(Vve,'Function/lambda$0$Type',935);mdb(388,1,oue,Uzb);_.Mb=function Vzb(a){return !this.a.Mb(a)};var zL=zeb(Vve,'Predicate/lambda$2$Type',388);mdb(567,1,{567:1});var AL=zeb(Wve,'Handler',567);mdb(2069,1,nte);_.ve=function Yzb(){return 'DUMMY'};_.Ib=function Zzb(){return this.ve()};var Wzb;var CL=zeb(Wve,'Level',2069);mdb(1672,2069,nte,$zb);_.ve=function _zb(){return 'INFO'};var BL=zeb(Wve,'Level/LevelInfo',1672);mdb(1824,1,{},dAb);var aAb;var DL=zeb(Wve,'LogManager',1824);mdb(1866,1,nte,fAb);_.b=null;var EL=zeb(Wve,'LogRecord',1866);mdb(511,1,{511:1},tAb);_.e=false;var gAb=false,hAb=false,iAb=false,jAb=false,kAb=false;var FL=zeb(Wve,'Logger',511);mdb(819,567,{567:1},wAb);var GL=zeb(Wve,'SimpleConsoleLogHandler',819);mdb(130,23,{3:1,35:1,23:1,130:1},DAb);var zAb,AAb,BAb;var HL=Aeb(Zve,'Collector/Characteristics',130,MI,FAb,EAb);var GAb;mdb(746,1,{},IAb);var IL=zeb(Zve,'CollectorImpl',746);mdb(1050,1,{},KAb);_.Te=function LAb(a,b){return Lxb(JD(a,212),JD(b,212))};var JL=zeb(Zve,'Collectors/10methodref$merge$Type',1050);mdb(1051,1,{},MAb);_.Kb=function NAb(a){return Mxb(JD(a,212))};var KL=zeb(Zve,'Collectors/11methodref$toString$Type',1051);mdb(152,1,{},OAb);_.Wd=function PAb(a,b){JD(a,18).Ec(b)};var LL=zeb(Zve,'Collectors/20methodref$add$Type',152);mdb(154,1,{},QAb);_.Ve=function RAb(){return new imb};var ML=zeb(Zve,'Collectors/21methodref$ctor$Type',154);mdb(1049,1,{},SAb);_.Wd=function TAb(a,b){Kxb(JD(a,212),JD(b,472))};var NL=zeb(Zve,'Collectors/9methodref$add$Type',1049);mdb(1048,1,{},UAb);_.Ve=function VAb(){return new Nxb(this.a,this.b,this.c)};var OL=zeb(Zve,'Collectors/lambda$15$Type',1048);mdb(153,1,{},WAb);_.Te=function XAb(a,b){return JAb(JD(a,18),JD(b,18))};var PL=zeb(Zve,'Collectors/lambda$45$Type',153);mdb(538,1,{});_.Ye=function cBb(){YAb(this)};_.d=false;var vM=zeb(Zve,'TerminatableStream',538);mdb(768,538,$ve,kBb);_.Ye=function lBb(){YAb(this)};var UL=zeb(Zve,'DoubleStreamImpl',768);mdb(1297,724,Qte,oBb);_.Pe=function qBb(a){return nBb(this,JD(a,189))};_.a=null;var RL=zeb(Zve,'DoubleStreamImpl/2',1297);mdb(1298,1,Gve,rBb);_.Ne=function sBb(a){pBb(this.a,a)};var QL=zeb(Zve,'DoubleStreamImpl/2/lambda$0$Type',1298);mdb(1295,1,Gve,tBb);_.Ne=function uBb(a){mBb(this.a,a)};var SL=zeb(Zve,'DoubleStreamImpl/lambda$0$Type',1295);mdb(1296,1,Gve,vBb);_.Ne=function wBb(a){Sqb(this.a,a)};var TL=zeb(Zve,'DoubleStreamImpl/lambda$2$Type',1296);mdb(1351,723,Qte,ABb);_.Pe=function BBb(a){return zBb(this,JD(a,202))};_.a=0;_.b=0;_.c=0;var VL=zeb(Zve,'IntStream/5',1351);mdb(793,538,$ve,EBb);_.Ye=function FBb(){YAb(this)};_.Ze=function GBb(){return _Ab(this),this.a};var YL=zeb(Zve,'IntStreamImpl',793);mdb(794,538,$ve,HBb);_.Ye=function IBb(){YAb(this)};_.Ze=function JBb(){return _Ab(this),Xwb(),Wwb};var WL=zeb(Zve,'IntStreamImpl/Empty',794);mdb(1651,1,Ste,KBb);_.Bd=function LBb(a){psb(this.a,a)};var XL=zeb(Zve,'IntStreamImpl/lambda$4$Type',1651);var sM=Beb(Zve,'Stream');mdb(28,538,{520:1,677:1,832:1},gCb);_.Ye=function hCb(){YAb(this)};var MBb;var rM=zeb(Zve,'StreamImpl',28);mdb(1072,486,Qte,mCb);_.zd=function nCb(a){while(kCb(this)){if(this.a.zd(a)){return true}else{YAb(this.b);this.b=null;this.a=null}}return false};var $L=zeb(Zve,'StreamImpl/1',1072);mdb(1073,1,Rte,oCb);_.Ad=function pCb(a){lCb(this.a,JD(a,832))};var ZL=zeb(Zve,'StreamImpl/1/lambda$0$Type',1073);mdb(1074,1,oue,qCb);_.Mb=function rCb(a){return bsb(this.a,a)};var _L=zeb(Zve,'StreamImpl/1methodref$add$Type',1074);mdb(1075,486,Qte,sCb);_.zd=function tCb(a){var b;if(!this.a){b=new imb;this.b.a.Nb(new uCb(b));Fnb();gmb(b,this.c);this.a=new Wvb(b,16)}return Vvb(this.a,a)};_.a=null;var bM=zeb(Zve,'StreamImpl/5',1075);mdb(1076,1,Rte,uCb);_.Ad=function vCb(a){Ylb(this.a,a)};var aM=zeb(Zve,'StreamImpl/5/2methodref$add$Type',1076);mdb(725,486,Qte,xCb);_.zd=function yCb(a){this.b=false;while(!this.b&&this.c.zd(new zCb(this,a)));return this.b};_.b=false;var dM=zeb(Zve,'StreamImpl/FilterSpliterator',725);mdb(1066,1,Rte,zCb);_.Ad=function ACb(a){wCb(this.a,this.b,a)};var cM=zeb(Zve,'StreamImpl/FilterSpliterator/lambda$0$Type',1066);mdb(1061,724,Qte,DCb);_.Pe=function ECb(a){return CCb(this,JD(a,189))};var fM=zeb(Zve,'StreamImpl/MapToDoubleSpliterator',1061);mdb(1065,1,Rte,FCb);_.Ad=function GCb(a){BCb(this.a,this.b,a)};var eM=zeb(Zve,'StreamImpl/MapToDoubleSpliterator/lambda$0$Type',1065);mdb(1060,723,Qte,JCb);_.Pe=function KCb(a){return ICb(this,JD(a,202))};var hM=zeb(Zve,'StreamImpl/MapToIntSpliterator',1060);mdb(1064,1,Rte,LCb);_.Ad=function MCb(a){HCb(this.a,this.b,a)};var gM=zeb(Zve,'StreamImpl/MapToIntSpliterator/lambda$0$Type',1064);mdb(722,486,Qte,PCb);_.zd=function QCb(a){return OCb(this,a)};var jM=zeb(Zve,'StreamImpl/MapToObjSpliterator',722);mdb(1063,1,Rte,RCb);_.Ad=function SCb(a){NCb(this.a,this.b,a)};var iM=zeb(Zve,'StreamImpl/MapToObjSpliterator/lambda$0$Type',1063);mdb(1062,486,Qte,TCb);_.zd=function UCb(a){while(Qcb(this.b,0)){if(!this.a.zd(new VCb)){return false}this.b=adb(this.b,1)}return this.a.zd(a)};_.b=0;var lM=zeb(Zve,'StreamImpl/SkipSpliterator',1062);mdb(1067,1,Rte,VCb);_.Ad=function WCb(a){};var kM=zeb(Zve,'StreamImpl/SkipSpliterator/lambda$0$Type',1067);mdb(617,1,Rte,YCb);_.Ad=function ZCb(a){XCb(this,a)};var mM=zeb(Zve,'StreamImpl/ValueConsumer',617);mdb(1068,1,Rte,$Cb);_.Ad=function _Cb(a){NBb()};var nM=zeb(Zve,'StreamImpl/lambda$0$Type',1068);mdb(1069,1,Rte,aDb);_.Ad=function bDb(a){NBb()};var oM=zeb(Zve,'StreamImpl/lambda$1$Type',1069);mdb(1070,1,{},cDb);_.Te=function dDb(a,b){return iCb(this.a,a,b)};var pM=zeb(Zve,'StreamImpl/lambda$4$Type',1070);mdb(1071,1,Rte,eDb);_.Ad=function fDb(a){jCb(this.b,this.a,a)};var qM=zeb(Zve,'StreamImpl/lambda$5$Type',1071);mdb(1077,1,Rte,gDb);_.Ad=function hDb(a){dBb(this.a,JD(a,375))};var uM=zeb(Zve,'TerminatableStream/lambda$0$Type',1077);mdb(2104,1,{});mdb(1976,1,{},wDb);var wM=zeb('javaemul.internal','ConsoleLogger',1976);var yDb=0;mdb(2096,1,{});mdb(1800,1,Rte,VDb);_.Ad=function WDb(a){JD(a,321)};var xM=zeb(ewe,'BowyerWatsonTriangulation/lambda$0$Type',1800);mdb(1801,1,Rte,XDb);_.Ad=function YDb(a){xe(this.a,JD(a,321).e)};var yM=zeb(ewe,'BowyerWatsonTriangulation/lambda$1$Type',1801);mdb(1802,1,Rte,ZDb);_.Ad=function $Db(a){JD(a,177)};var zM=zeb(ewe,'BowyerWatsonTriangulation/lambda$2$Type',1802);mdb(1797,1,fwe,bEb);_.Le=function cEb(a,b){return aEb(this.a,JD(a,177),JD(b,177))};_.Fb=function dEb(a){return this===a};_.Me=function eEb(){return new Kqb(this)};var AM=zeb(ewe,'NaiveMinST/lambda$0$Type',1797);mdb(440,1,{},gEb);var BM=zeb(ewe,'NodeMicroLayout',440);mdb(177,1,{177:1},hEb);_.Fb=function iEb(a){var b;if(RD(a,177)){b=JD(a,177);return Jub(this.a,b.a)&&Jub(this.b,b.b)||Jub(this.a,b.b)&&Jub(this.b,b.a)}else{return false}};_.Hb=function jEb(){return Kub(this.a)+Kub(this.b)};var CM=zeb(ewe,'TEdge',177);mdb(321,1,{321:1},lEb);_.Fb=function mEb(a){var b;if(RD(a,321)){b=JD(a,321);return kEb(this,b.a)&&kEb(this,b.b)&&kEb(this,b.c)}else{return false}};_.Hb=function nEb(){return Kub(this.a)+Kub(this.b)+Kub(this.c)};var DM=zeb(ewe,'TTriangle',321);mdb(225,1,{225:1},oEb);var EM=zeb(ewe,'Tree',225);mdb(1183,1,{},qEb);var GM=zeb(gwe,'Scanline',1183);var FM=Beb(gwe,hwe);mdb(1728,1,{},tEb);var HM=zeb(iwe,'CGraph',1728);mdb(320,1,{320:1},vEb);_.b=0;_.c=0;_.d=0;_.g=0;_.i=0;_.k=pve;var JM=zeb(iwe,'CGroup',320);mdb(814,1,{},zEb);var IM=zeb(iwe,'CGroup/CGroupBuilder',814);mdb(60,1,{60:1},AEb);_.Ib=function BEb(){var a;if(this.j){return OD(this.j.Kb(this))}return seb(LM),LM.o+'@'+(a=ADb(this)>>>0,a.toString(16))};_.f=0;_.i=pve;var LM=zeb(iwe,'CNode',60);mdb(813,1,{},GEb);var KM=zeb(iwe,'CNode/CNodeBuilder',813);var LEb;mdb(1551,1,{},NEb);_.df=function OEb(a,b){return 0};_.ef=function PEb(a,b){return 0};var MM=zeb(iwe,kwe,1551);mdb(1830,1,{},QEb);_.af=function REb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=ove;for(d=new Hmb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.gf=function $Hb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].gf())}else if(this.g){e=XHb(this,RHb(this,null,true))}else{for(b=(zHb(),WC(OC(hN,1),kue,237,0,[wHb,xHb,yHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.hf=function _Hb(){var a,b,c,d,e;if(this.g){a=RHb(this,null,false);for(c=(zHb(),WC(OC(hN,1),kue,237,0,[wHb,xHb,yHb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);NHb(this,xHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var KHb=0,LHb=0;var jN=zeb(Bwe,'GridContainerCell',1499);mdb(461,23,{3:1,35:1,23:1,461:1},fIb);var bIb,cIb,dIb;var kN=Aeb(Bwe,'HorizontalLabelAlignment',461,MI,hIb,gIb);var iIb;mdb(318,216,{216:1,318:1},tIb,uIb,vIb);_.ff=function wIb(){return pIb(this)};_.gf=function xIb(){return qIb(this)};_.a=0;_.c=false;var lN=zeb(Bwe,'LabelCell',318);mdb(253,337,{216:1,337:1,253:1},FIb);_.ff=function GIb(){return yIb(this)};_.gf=function HIb(){return zIb(this)};_.hf=function KIb(){AIb(this)};_.jf=function LIb(){BIb(this)};_.b=0;_.c=0;_.d=false;var qN=zeb(Bwe,'StripContainerCell',253);mdb(1655,1,oue,MIb);_.Mb=function NIb(a){return IIb(JD(a,216))};var mN=zeb(Bwe,'StripContainerCell/lambda$0$Type',1655);mdb(1656,1,{},OIb);_.We=function PIb(a){return JD(a,216).gf()};var nN=zeb(Bwe,'StripContainerCell/lambda$1$Type',1656);mdb(1657,1,oue,QIb);_.Mb=function RIb(a){return JIb(JD(a,216))};var oN=zeb(Bwe,'StripContainerCell/lambda$2$Type',1657);mdb(1658,1,{},SIb);_.We=function TIb(a){return JD(a,216).ff()};var pN=zeb(Bwe,'StripContainerCell/lambda$3$Type',1658);mdb(462,23,{3:1,35:1,23:1,462:1},YIb);var UIb,VIb,WIb;var rN=Aeb(Bwe,'VerticalLabelAlignment',462,MI,$Ib,ZIb);var _Ib;mdb(787,1,{},cJb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;_.F=false;var uN=zeb(Jwe,'NodeContext',787);mdb(1497,1,fwe,fJb);_.Le=function gJb(a,b){return eJb(JD(a,64),JD(b,64))};_.Fb=function hJb(a){return this===a};_.Me=function iJb(){return new Kqb(this)};var sN=zeb(Jwe,'NodeContext/0methodref$comparePortSides$Type',1497);mdb(1498,1,fwe,jJb);_.Le=function kJb(a,b){return dJb(JD(a,115),JD(b,115))};_.Fb=function lJb(a){return this===a};_.Me=function mJb(){return new Kqb(this)};var tN=zeb(Jwe,'NodeContext/1methodref$comparePortContexts$Type',1498);mdb(168,23,{3:1,35:1,23:1,168:1},MJb);var nJb,oJb,pJb,qJb,rJb,sJb,tJb,uJb,vJb,wJb,xJb,yJb,zJb,AJb,BJb,CJb,DJb,EJb,FJb,GJb,HJb,IJb;var vN=Aeb(Jwe,'NodeLabelLocation',168,MI,PJb,OJb);var QJb;mdb(115,1,{115:1},TJb);_.a=false;var wN=zeb(Jwe,'PortContext',115);mdb(1502,1,Rte,kKb);_.Ad=function lKb(a){nIb(JD(a,318))};var xN=zeb(Mwe,Nwe,1502);mdb(1503,1,oue,mKb);_.Mb=function nKb(a){return !!JD(a,115).c};var yN=zeb(Mwe,Owe,1503);mdb(1504,1,Rte,oKb);_.Ad=function pKb(a){nIb(JD(a,115).c)};var zN=zeb(Mwe,'LabelPlacer/lambda$2$Type',1504);var qKb;mdb(1501,1,Rte,yKb);_.Ad=function zKb(a){rKb();SJb(JD(a,115))};var AN=zeb(Mwe,'NodeLabelAndSizeUtilities/lambda$0$Type',1501);mdb(788,1,Rte,FKb);_.Ad=function GKb(a){DKb(this.b,this.c,this.a,JD(a,187))};_.a=false;_.c=false;var BN=zeb(Mwe,'NodeLabelCellCreator/lambda$0$Type',788);mdb(1500,1,Rte,MKb);_.Ad=function NKb(a){LKb(this.a,JD(a,187))};var CN=zeb(Mwe,'PortContextCreator/lambda$0$Type',1500);var UKb;mdb(1872,1,{},mLb);var EN=zeb(Qwe,'GreedyRectangleStripOverlapRemover',1872);mdb(1873,1,fwe,oLb);_.Le=function pLb(a,b){return nLb(JD(a,226),JD(b,226))};_.Fb=function qLb(a){return this===a};_.Me=function rLb(){return new Kqb(this)};var DN=zeb(Qwe,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1873);mdb(1826,1,{},yLb);_.a=5;_.e=0;var KN=zeb(Qwe,'RectangleStripOverlapRemover',1826);mdb(1827,1,fwe,CLb);_.Le=function DLb(a,b){return zLb(JD(a,226),JD(b,226))};_.Fb=function ELb(a){return this===a};_.Me=function FLb(){return new Kqb(this)};var FN=zeb(Qwe,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1827);mdb(1829,1,fwe,GLb);_.Le=function HLb(a,b){return ALb(JD(a,226),JD(b,226))};_.Fb=function ILb(a){return this===a};_.Me=function JLb(){return new Kqb(this)};var GN=zeb(Qwe,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1829);mdb(409,23,{3:1,35:1,23:1,409:1},PLb);var KLb,LLb,MLb,NLb;var HN=Aeb(Qwe,'RectangleStripOverlapRemover/OverlapRemovalDirection',409,MI,RLb,QLb);var SLb;mdb(226,1,{226:1},ULb);var IN=zeb(Qwe,'RectangleStripOverlapRemover/RectangleNode',226);mdb(1828,1,Rte,VLb);_.Ad=function WLb(a){tLb(this.a,JD(a,226))};var JN=zeb(Qwe,'RectangleStripOverlapRemover/lambda$1$Type',1828);var XLb=false,YLb,ZLb;mdb(1798,1,Rte,fMb);_.Ad=function gMb(a){_Lb(JD(a,225))};var LN=zeb(Swe,'DepthFirstCompaction/0methodref$compactTree$Type',1798);mdb(810,1,Rte,hMb);_.Ad=function iMb(a){cMb(this.a,JD(a,225))};var MN=zeb(Swe,'DepthFirstCompaction/lambda$1$Type',810);mdb(1799,1,Rte,jMb);_.Ad=function kMb(a){dMb(this.a,this.b,this.c,JD(a,225))};var NN=zeb(Swe,'DepthFirstCompaction/lambda$2$Type',1799);var lMb,mMb;mdb(68,1,{68:1},sMb);var ON=zeb(Swe,'Node',68);mdb(1179,1,{},vMb);var TN=zeb(Swe,'ScanlineOverlapCheck',1179);mdb(1180,1,{683:1},zMb);_._e=function AMb(a){xMb(this,JD(a,442))};var QN=zeb(Swe,'ScanlineOverlapCheck/OverlapsScanlineHandler',1180);mdb(1181,1,fwe,CMb);_.Le=function DMb(a,b){return BMb(JD(a,68),JD(b,68))};_.Fb=function EMb(a){return this===a};_.Me=function FMb(){return new Kqb(this)};var PN=zeb(Swe,'ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type',1181);mdb(442,1,{442:1},GMb);_.a=false;var RN=zeb(Swe,'ScanlineOverlapCheck/Timestamp',442);mdb(1182,1,fwe,HMb);_.Le=function IMb(a,b){return wMb(JD(a,442),JD(b,442))};_.Fb=function JMb(a){return this===a};_.Me=function KMb(){return new Kqb(this)};var SN=zeb(Swe,'ScanlineOverlapCheck/lambda$0$Type',1182);mdb(545,1,{},LMb);var UN=zeb('org.eclipse.elk.alg.common.utils','SVGImage',545);mdb(748,1,{},TMb);var WN=zeb(Vwe,Wwe,748);mdb(1164,1,fwe,VMb);_.Le=function WMb(a,b){return UMb(JD(a,235),JD(b,235))};_.Fb=function XMb(a){return this===a};_.Me=function YMb(){return new Kqb(this)};var VN=zeb(Vwe,Xwe,1164);mdb(1165,1,Rte,cNb);_.Ad=function dNb(a){bNb(this.b,this.a,JD(a,251))};var XN=zeb(Vwe,Ywe,1165);mdb(214,1,Zwe);var i1=zeb($we,'AbstractLayoutProvider',214);mdb(726,214,Zwe,hNb);_.kf=function iNb(a,b){eNb(this,a,b)};var YN=zeb(Vwe,'ForceLayoutProvider',726);var a5=Beb(_we,axe);mdb(150,1,{3:1,105:1,150:1},pNb);_.of=function tNb(a,b){return nNb(this,a,b)};_.lf=function qNb(){return kNb(this)};_.mf=function rNb(a){return lNb(this,a)};_.nf=function sNb(a){return mNb(this,a)};var c5=zeb(_we,'MapPropertyHolder',150);mdb(313,150,{3:1,313:1,105:1,150:1});var cO=zeb(bxe,'FParticle',313);mdb(251,313,{3:1,251:1,313:1,105:1,150:1},vNb);_.Ib=function wNb(){var a;if(this.a){a=bmb(this.a.a,this,0);return a>=0?'b'+a+'['+CNb(this.a)+']':'b['+CNb(this.a)+']'}return 'b_'+ADb(this)};var ZN=zeb(bxe,'FBendpoint',251);mdb(291,150,{3:1,291:1,105:1,150:1},DNb);_.Ib=function ENb(){return CNb(this)};var $N=zeb(bxe,'FEdge',291);mdb(235,150,{3:1,235:1,105:1,150:1},HNb);var _N=zeb(bxe,'FGraph',235);mdb(445,313,{3:1,445:1,313:1,105:1,150:1},JNb);_.Ib=function KNb(){return this.b==null||this.b.length==0?'l['+CNb(this.a)+']':'l_'+this.b};var aO=zeb(bxe,'FLabel',445);mdb(155,313,{3:1,155:1,313:1,105:1,150:1},MNb);_.Ib=function NNb(){return LNb(this)};_.a=0;var bO=zeb(bxe,'FNode',155);mdb(2062,1,{});_.qf=function SNb(a){ONb(this,a)};_.rf=function TNb(){PNb(this)};_.d=0;var dO=zeb(dxe,'AbstractForceModel',2062);mdb(631,2062,{631:1},UNb);_.pf=function WNb(a,b){var c,d,e,f,g;RNb(this.f,a,b);e=Vfd(Ifd(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-Mfd(a.e)/2-Mfd(b.e)/2);c=GNb(this.e,a,b);c>0?(f=-VNb(d,this.c)*c):(f=ZNb(d,this.b)*JD(lNb(a,(ZOb(),MOb)),15).a);Qfd(e,f/g);return e};_.qf=function XNb(a){ONb(this,a);this.a=JD(lNb(a,(ZOb(),BOb)),15).a;this.c=Reb(MD(lNb(a,SOb)));this.b=Reb(MD(lNb(a,OOb)))};_.sf=function YNb(a){return a0&&(f-=_Nb(d,this.a)*c);Qfd(e,f*this.b/g);return e};_.qf=function bOb(a){var b,c,d,e,f,g,h;ONb(this,a);this.b=Reb(MD(lNb(a,(ZOb(),TOb))));this.c=this.b/JD(lNb(a,BOb),15).a;d=a.e.c.length;f=0;e=0;for(h=new Hmb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var fO=zeb(dxe,'FruchtermanReingoldModel',632);var E1=Beb(exe,'ILayoutMetaDataProvider');mdb(844,1,lxe,oOb);_.tf=function pOb(a){mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,fxe),''),'Force Model'),'Determines the model for force calculation.'),hOb),(Ued(),Oed)),hO),Crb((Ged(),Eed)))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,gxe),''),'Iterations'),'The number of iterations on the force model.'),zfb(300)),Qed),UI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,hxe),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),zfb(0)),Qed),UI),Crb(Bed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,ixe),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),jxe),Ned),LI),Crb(Eed))));hdd(a,ixe,fxe,mOb);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,kxe),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),Ned),LI),Crb(Eed))));hdd(a,kxe,fxe,jOb);$Ob((new _Ob,a))};var fOb,gOb,hOb,iOb,jOb,kOb,lOb,mOb;var gO=zeb(mxe,'ForceMetaDataProvider',844);mdb(424,23,{3:1,35:1,23:1,424:1},tOb);var qOb,rOb;var hO=Aeb(mxe,'ForceModelStrategy',424,MI,vOb,uOb);var wOb;mdb(984,1,lxe,_Ob);_.tf=function aPb(a){$Ob(a)};var yOb,zOb,AOb,BOb,COb,DOb,EOb,FOb,GOb,HOb,IOb,JOb,KOb,LOb,MOb,NOb,OOb,POb,QOb,ROb,SOb,TOb,UOb,VOb,WOb,XOb,YOb;var jO=zeb(mxe,'ForceOptions',984);mdb(985,1,{},bPb);_.uf=function cPb(){var a;return a=new hNb,a};_.vf=function dPb(a){};var iO=zeb(mxe,'ForceOptions/ForceFactory',985);var ePb,fPb,gPb,hPb;mdb(845,1,lxe,qPb);_.tf=function rPb(a){mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Oxe),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Ndb(),false)),(Ued(),Med)),GI),Crb((Ged(),Ded)))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Pxe),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),Ned),LI),Drb(Eed,WC(OC(g2,1),kue,160,0,[Bed])))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Qxe),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),lPb),Oed),pO),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Rxe),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),jxe),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Sxe),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),zfb(lte)),Qed),UI),Crb(Eed))));FPb((new GPb,a))};var jPb,kPb,lPb,mPb,nPb,oPb;var kO=zeb(mxe,'StressMetaDataProvider',845);mdb(988,1,lxe,GPb);_.tf=function HPb(a){FPb(a)};var sPb,tPb,uPb,vPb,wPb,xPb,yPb,zPb,APb,BPb,CPb,DPb;var mO=zeb(mxe,'StressOptions',988);mdb(989,1,{},IPb);_.uf=function JPb(){var a;return a=new LPb,a};_.vf=function KPb(a){};var lO=zeb(mxe,'StressOptions/StressFactory',989);mdb(1080,214,Zwe,LPb);_.kf=function MPb(a,b){var c,d,e,f,g;b.Tg(Uxe,1);Odb(LD(Pud(a,(EPb(),wPb))))?Odb(LD(Pud(a,CPb)))||fEb((c=new gEb((urd(),new Ird(a))),c)):eNb(new hNb,a,b.dh(1));e=$Mb(a);d=SMb(this.a,e);for(g=d.Jc();g.Ob();){f=JD(g.Pb(),235);if(f.e.c.length<=1){continue}VPb(this.b,f);TPb(this.b);_lb(f.d,new NPb)}e=RMb(d);ZMb(e);b.Ug()};var oO=zeb(Wxe,'StressLayoutProvider',1080);mdb(1081,1,Rte,NPb);_.Ad=function OPb(a){INb(JD(a,445))};var nO=zeb(Wxe,'StressLayoutProvider/lambda$0$Type',1081);mdb(986,1,{},WPb);_.c=0;_.e=0;_.g=0;var rO=zeb(Wxe,'StressMajorization',986);mdb(384,23,{3:1,35:1,23:1,384:1},aQb);var YPb,ZPb,$Pb;var pO=Aeb(Wxe,'StressMajorization/Dimension',384,MI,cQb,bQb);var dQb;mdb(987,1,fwe,fQb);_.Le=function gQb(a,b){return XPb(this.a,JD(a,155),JD(b,155))};_.Fb=function hQb(a){return this===a};_.Me=function iQb(){return new Kqb(this)};var qO=zeb(Wxe,'StressMajorization/lambda$0$Type',987);mdb(1161,1,{},qQb);var uO=zeb(Yxe,'ElkLayered',1161);mdb(1162,1,Rte,tQb);_.Ad=function uQb(a){rQb(this.a,JD(a,37))};var sO=zeb(Yxe,'ElkLayered/lambda$0$Type',1162);mdb(1163,1,Rte,vQb);_.Ad=function wQb(a){sQb(this.a,JD(a,37))};var tO=zeb(Yxe,'ElkLayered/lambda$1$Type',1163);mdb(1246,1,{},EQb);var xQb,yQb,zQb;var yO=zeb(Yxe,'GraphConfigurator',1246);mdb(757,1,Rte,GQb);_.Ad=function HQb(a){BQb(this.a,JD(a,9))};var vO=zeb(Yxe,'GraphConfigurator/lambda$0$Type',757);mdb(758,1,{},IQb);_.Kb=function JQb(a){return AQb(),new gCb(null,new Wvb(JD(a,25).a,16))};var wO=zeb(Yxe,'GraphConfigurator/lambda$1$Type',758);mdb(759,1,Rte,KQb);_.Ad=function LQb(a){BQb(this.a,JD(a,9))};var xO=zeb(Yxe,'GraphConfigurator/lambda$2$Type',759);mdb(1079,214,Zwe,MQb);_.kf=function NQb(a,b){var c;c=J$b(new S$b,a);XD(Pud(a,($xc(),ewc)))===XD((Bkd(),ykd))?kQb(this.a,c,b):lQb(this.a,c,b);b.Zg()||p_b(new t_b,c)};var zO=zeb(Yxe,'LayeredLayoutProvider',1079);mdb(363,23,{3:1,35:1,23:1,363:1},UQb);var OQb,PQb,QQb,RQb,SQb;var AO=Aeb(Yxe,'LayeredPhases',363,MI,WQb,VQb);var XQb;mdb(1683,1,{},dRb);_.i=0;var ZQb;var DO=zeb(Zxe,'ComponentsToCGraphTransformer',1683);var KRb;mdb(1684,1,{},eRb);_.wf=function fRb(a,b){return $wnd.Math.min(a.a!=null?Reb(a.a):a.c.i,b.a!=null?Reb(b.a):b.c.i)};_.xf=function gRb(a,b){return $wnd.Math.min(a.a!=null?Reb(a.a):a.c.i,b.a!=null?Reb(b.a):b.c.i)};var BO=zeb(Zxe,'ComponentsToCGraphTransformer/1',1684);mdb(82,1,{82:1});_.i=0;_.k=true;_.o=pve;var JO=zeb($xe,'CNode',82);mdb(460,82,{460:1,82:1},hRb,iRb);_.Ib=function jRb(){return ''};var CO=zeb(Zxe,'ComponentsToCGraphTransformer/CRectNode',460);mdb(1652,1,{},wRb);var kRb,lRb;var GO=zeb(Zxe,'OneDimensionalComponentsCompaction',1652);mdb(1653,1,{},zRb);_.Kb=function ARb(a){return xRb(JD(a,49))};_.Fb=function BRb(a){return this===a};var EO=zeb(Zxe,'OneDimensionalComponentsCompaction/lambda$0$Type',1653);mdb(1654,1,{},CRb);_.Kb=function DRb(a){return yRb(JD(a,49))};_.Fb=function ERb(a){return this===a};var FO=zeb(Zxe,'OneDimensionalComponentsCompaction/lambda$1$Type',1654);mdb(1686,1,{},GRb);var HO=zeb($xe,'CGraph',1686);mdb(194,1,{194:1},JRb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=pve;var IO=zeb($xe,'CGroup',194);mdb(1685,1,{},MRb);_.wf=function NRb(a,b){return $wnd.Math.max(a.a!=null?Reb(a.a):a.c.i,b.a!=null?Reb(b.a):b.c.i)};_.xf=function ORb(a,b){return $wnd.Math.max(a.a!=null?Reb(a.a):a.c.i,b.a!=null?Reb(b.a):b.c.i)};var KO=zeb($xe,kwe,1685);mdb(1687,1,{},dSb);_.d=false;var PRb;var MO=zeb($xe,pwe,1687);mdb(1688,1,{},eSb);_.Kb=function fSb(a){return QRb(),Ndb(),JD(JD(a,49).a,82).d.e!=0?true:false};_.Fb=function gSb(a){return this===a};var LO=zeb($xe,qwe,1688);mdb(817,1,{},jSb);_.a=false;_.b=false;_.c=false;_.d=false;var NO=zeb($xe,rwe,817);mdb(1868,1,{},pSb);var SO=zeb(_xe,swe,1868);var cP=Beb(aye,hwe);mdb(1869,1,{377:1},tSb);_._e=function uSb(a){rSb(this,JD(a,465))};var PO=zeb(_xe,twe,1869);mdb(1870,1,fwe,wSb);_.Le=function xSb(a,b){return vSb(JD(a,82),JD(b,82))};_.Fb=function ySb(a){return this===a};_.Me=function zSb(){return new Kqb(this)};var OO=zeb(_xe,uwe,1870);mdb(465,1,{465:1},ASb);_.a=false;var QO=zeb(_xe,vwe,465);mdb(1871,1,fwe,BSb);_.Le=function CSb(a,b){return qSb(JD(a,465),JD(b,465))};_.Fb=function DSb(a){return this===a};_.Me=function ESb(){return new Kqb(this)};var RO=zeb(_xe,wwe,1871);mdb(146,1,{146:1},FSb,GSb);_.Fb=function HSb(a){var b;if(a==null){return false}if(UO!=rb(a)){return false}b=JD(a,146);return Jub(this.c,b.c)&&Jub(this.d,b.d)};_.Hb=function ISb(){return $mb(WC(OC(aJ,1),rte,1,5,[this.c,this.d]))};_.Ib=function JSb(){return '('+this.c+pte+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var UO=zeb(aye,'Point',146);mdb(408,23,{3:1,35:1,23:1,408:1},RSb);var KSb,LSb,MSb,NSb;var TO=Aeb(aye,'Point/Quadrant',408,MI,VSb,USb);var WSb;mdb(1674,1,{},dTb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var YSb,ZSb,$Sb,_Sb,aTb;var bP=zeb(aye,'RectilinearConvexHull',1674);mdb(569,1,{377:1},oTb);_._e=function pTb(a){nTb(this,JD(a,146))};_.b=0;var lTb;var WO=zeb(aye,'RectilinearConvexHull/MaximalElementsEventHandler',569);mdb(1676,1,fwe,rTb);_.Le=function sTb(a,b){return qTb(MD(a),MD(b))};_.Fb=function tTb(a){return this===a};_.Me=function uTb(){return new Kqb(this)};var VO=zeb(aye,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1676);mdb(1675,1,{377:1},wTb);_._e=function xTb(a){vTb(this,JD(a,146))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var XO=zeb(aye,'RectilinearConvexHull/RectangleEventHandler',1675);mdb(1677,1,fwe,yTb);_.Le=function zTb(a,b){return fTb(JD(a,146),JD(b,146))};_.Fb=function ATb(a){return this===a};_.Me=function BTb(){return new Kqb(this)};var YO=zeb(aye,'RectilinearConvexHull/lambda$0$Type',1677);mdb(1678,1,fwe,CTb);_.Le=function DTb(a,b){return gTb(JD(a,146),JD(b,146))};_.Fb=function ETb(a){return this===a};_.Me=function FTb(){return new Kqb(this)};var ZO=zeb(aye,'RectilinearConvexHull/lambda$1$Type',1678);mdb(1679,1,fwe,GTb);_.Le=function HTb(a,b){return hTb(JD(a,146),JD(b,146))};_.Fb=function ITb(a){return this===a};_.Me=function JTb(){return new Kqb(this)};var $O=zeb(aye,'RectilinearConvexHull/lambda$2$Type',1679);mdb(1680,1,fwe,KTb);_.Le=function LTb(a,b){return iTb(JD(a,146),JD(b,146))};_.Fb=function MTb(a){return this===a};_.Me=function NTb(){return new Kqb(this)};var _O=zeb(aye,'RectilinearConvexHull/lambda$3$Type',1680);mdb(1681,1,fwe,OTb);_.Le=function PTb(a,b){return jTb(JD(a,146),JD(b,146))};_.Fb=function QTb(a){return this===a};_.Me=function RTb(){return new Kqb(this)};var aP=zeb(aye,'RectilinearConvexHull/lambda$4$Type',1681);mdb(1682,1,{},TTb);var dP=zeb(aye,'Scanline',1682);mdb(2066,1,{});var eP=zeb(bye,'AbstractGraphPlacer',2066);mdb(336,1,{336:1},bUb);_.Df=function cUb(a){if(this.Ef(a)){Rc(this.b,JD(lNb(a,(Krc(),Lqc)),22),a);return true}else{return false}};_.Ef=function dUb(a){var b,c,d,e;b=JD(lNb(a,(Krc(),Lqc)),22);e=JD(Qc(ZTb,b),22);for(d=e.Jc();d.Ob();){c=JD(d.Pb(),22);if(!JD(Qc(this.b,c),16).dc()){return false}}return true};var ZTb;var hP=zeb(bye,'ComponentGroup',336);mdb(766,2066,{},iUb);_.Ff=function jUb(a){var b,c;for(c=new Hmb(this.a);c.ac){k=0;l+=h+d;h=0}i=f.c;XTb(f,k+i.a,l+i.b);Pfd(i);e=$wnd.Math.max(e,k+j.a);h=$wnd.Math.max(h,j.b);k+=j.a+d}b.f.a=e;b.f.b=l+h};_.Hf=function xVb(a,b){var c,d,e,f,g;if(XD(lNb(b,($xc(),mvc)))===XD((tUb(),sUb))){for(d=a.Jc();d.Ob();){c=JD(d.Pb(),37);g=0;for(f=new Hmb(c.a);f.ac&&!JD(lNb(f,(Krc(),Lqc)),22).Gc((mmd(),Uld))||!!i&&JD(lNb(i,(Krc(),Lqc)),22).Gc((mmd(),Tld))||JD(lNb(f,(Krc(),Lqc)),22).Gc((mmd(),lmd))){m=l;n+=h+d;h=0}j=f.c;JD(lNb(f,(Krc(),Lqc)),22).Gc((mmd(),Uld))&&(m=e+d);XTb(f,m+j.a,n+j.b);e=$wnd.Math.max(e,m+k.a);JD(lNb(f,Lqc),22).Gc(jmd)&&(l=$wnd.Math.max(l,m+k.a+d));Pfd(j);h=$wnd.Math.max(h,k.b);m+=k.a+d;i=f}b.f.a=e;b.f.b=n+h};_.Hf=function AVb(a,b){};var uP=zeb(bye,'ModelOrderRowGraphPlacer',1277);mdb(1275,1,fwe,CVb);_.Le=function DVb(a,b){return BVb(JD(a,37),JD(b,37))};_.Fb=function EVb(a){return this===a};_.Me=function FVb(){return new Kqb(this)};var vP=zeb(bye,'SimpleRowGraphPlacer/1',1275);var GVb;mdb(1245,1,xwe,MVb);_.Lb=function NVb(a){var b;return b=JD(lNb(JD(a,250).b,($xc(),nwc)),78),!!b&&b.b!=0};_.Fb=function OVb(a){return this===a};_.Mb=function PVb(a){var b;return b=JD(lNb(JD(a,250).b,($xc(),nwc)),78),!!b&&b.b!=0};var xP=zeb(gye,'CompoundGraphPostprocessor/1',1245);mdb(1244,1,hye,dWb);_.If=function eWb(a,b){ZVb(this,JD(a,37),b)};var zP=zeb(gye,'CompoundGraphPreprocessor',1244);mdb(444,1,{444:1},fWb);_.c=false;var yP=zeb(gye,'CompoundGraphPreprocessor/ExternalPort',444);mdb(250,1,{250:1},iWb);_.Ib=function jWb(){return ds(this.c)+':'+AWb(this.b)};var BP=zeb(gye,'CrossHierarchyEdge',250);mdb(764,1,fwe,lWb);_.Le=function mWb(a,b){return kWb(this,JD(a,250),JD(b,250))};_.Fb=function nWb(a){return this===a};_.Me=function pWb(){return new Kqb(this)};var AP=zeb(gye,'CrossHierarchyEdgeComparator',764);mdb(246,150,{3:1,246:1,105:1,150:1});_.p=0;var LP=zeb(iye,'LGraphElement',246);mdb(17,246,{3:1,17:1,246:1,105:1,150:1},BWb);_.Ib=function CWb(){return AWb(this)};var CP=zeb(iye,'LEdge',17);mdb(37,246,{3:1,20:1,37:1,246:1,105:1,150:1},EWb);_.Ic=function FWb(a){Efb(this,a)};_.Jc=function GWb(){return new Hmb(this.b)};_.Ib=function HWb(){if(this.b.c.length==0){return 'G-unlayered'+Ee(this.a)}else if(this.a.c.length==0){return 'G-layered'+Ee(this.b)}return 'G[layerless'+Ee(this.a)+', layers'+Ee(this.b)+']'};var MP=zeb(iye,'LGraph',37);var IWb;mdb(655,1,{});_.Jf=function KWb(){return this.e.n};_.mf=function LWb(a){return lNb(this.e,a)};_.Kf=function MWb(){return this.e.o};_.Lf=function NWb(){return this.e.p};_.nf=function OWb(a){return mNb(this.e,a)};_.Mf=function PWb(a){this.e.n.a=a.a;this.e.n.b=a.b};_.Nf=function QWb(a){this.e.o.a=a.a;this.e.o.b=a.b};_.Of=function RWb(a){this.e.p=a};var DP=zeb(iye,'LGraphAdapters/AbstractLShapeAdapter',655);mdb(464,1,{837:1},SWb);_.Pf=function TWb(){var a,b;if(!this.b){this.b=Xu(this.a.b.c.length);for(b=new Hmb(this.a.b);b.a0&&lYb((RDb(c-1,b.length),b.charCodeAt(c-1)),qye)){--c}if(g> ',a),nZb(c));ehb(dhb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var eZb,fZb,gZb,hZb,iZb,jZb;var dQ=zeb(iye,'LPort',12);mdb(399,1,Wte,uZb);_.Ic=function vZb(a){Efb(this,a)};_.Jc=function wZb(){var a;a=new Hmb(this.a.e);return new xZb(a)};var UP=zeb(iye,'LPort/1',399);mdb(1273,1,Ate,xZb);_.Nb=function yZb(a){ctb(this,a)};_.Pb=function AZb(){return JD(Fmb(this.a),17).c};_.Ob=function zZb(){return Emb(this.a)};_.Qb=function BZb(){Gmb(this.a)};var TP=zeb(iye,'LPort/1/1',1273);mdb(365,1,Wte,CZb);_.Ic=function DZb(a){Efb(this,a)};_.Jc=function EZb(){var a;return a=new Hmb(this.a.g),new FZb(a)};var WP=zeb(iye,'LPort/2',365);mdb(763,1,Ate,FZb);_.Nb=function GZb(a){ctb(this,a)};_.Pb=function IZb(){return JD(Fmb(this.a),17).d};_.Ob=function HZb(){return Emb(this.a)};_.Qb=function JZb(){Gmb(this.a)};var VP=zeb(iye,'LPort/2/1',763);mdb(1266,1,Wte,KZb);_.Ic=function LZb(a){Efb(this,a)};_.Jc=function MZb(){return new OZb(this)};var YP=zeb(iye,'LPort/CombineIter',1266);mdb(207,1,Ate,OZb);_.Nb=function PZb(a){ctb(this,a)};_.Qb=function SZb(){dtb()};_.Ob=function QZb(){return NZb(this)};_.Pb=function RZb(){return Emb(this.a)?Fmb(this.a):Fmb(this.b)};var XP=zeb(iye,'LPort/CombineIter/1',207);mdb(1267,1,xwe,UZb);_.Lb=function VZb(a){return TZb(a)};_.Fb=function WZb(a){return this===a};_.Mb=function XZb(a){return kZb(),JD(a,12).g.c.length!=0};var ZP=zeb(iye,'LPort/lambda$0$Type',1267);mdb(1268,1,xwe,ZZb);_.Lb=function $Zb(a){return YZb(a)};_.Fb=function _Zb(a){return this===a};_.Mb=function a$b(a){return kZb(),JD(a,12).e.c.length!=0};var $P=zeb(iye,'LPort/lambda$1$Type',1268);mdb(1269,1,xwe,b$b);_.Lb=function c$b(a){return kZb(),JD(a,12).j==(mmd(),Uld)};_.Fb=function d$b(a){return this===a};_.Mb=function e$b(a){return kZb(),JD(a,12).j==(mmd(),Uld)};var _P=zeb(iye,'LPort/lambda$2$Type',1269);mdb(1270,1,xwe,f$b);_.Lb=function g$b(a){return kZb(),JD(a,12).j==(mmd(),Tld)};_.Fb=function h$b(a){return this===a};_.Mb=function i$b(a){return kZb(),JD(a,12).j==(mmd(),Tld)};var aQ=zeb(iye,'LPort/lambda$3$Type',1270);mdb(1271,1,xwe,j$b);_.Lb=function k$b(a){return kZb(),JD(a,12).j==(mmd(),jmd)};_.Fb=function l$b(a){return this===a};_.Mb=function m$b(a){return kZb(),JD(a,12).j==(mmd(),jmd)};var bQ=zeb(iye,'LPort/lambda$4$Type',1271);mdb(1272,1,xwe,n$b);_.Lb=function o$b(a){return kZb(),JD(a,12).j==(mmd(),lmd)};_.Fb=function p$b(a){return this===a};_.Mb=function q$b(a){return kZb(),JD(a,12).j==(mmd(),lmd)};var cQ=zeb(iye,'LPort/lambda$5$Type',1272);mdb(25,246,{3:1,20:1,246:1,25:1,105:1,150:1},s$b);_.Ic=function t$b(a){Efb(this,a)};_.Jc=function u$b(){return new Hmb(this.a)};_.Ib=function v$b(){return 'L_'+bmb(this.b.b,this,0)+Ee(this.a)};var fQ=zeb(iye,'Layer',25);mdb(1659,1,{},z$b);_.b=0;var gQ=zeb(iye,'Tarjan',1659);mdb(1282,1,{},S$b);var qQ=zeb(vye,wye,1282);mdb(1286,1,{},W$b);_.Kb=function X$b(a){return EEd(JD(a,84))};var hQ=zeb(vye,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1286);mdb(1289,1,{},Y$b);_.Kb=function Z$b(a){return EEd(JD(a,84))};var iQ=zeb(vye,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1289);mdb(1283,1,Rte,$$b);_.Ad=function _$b(a){F$b(this.a,JD(a,125))};var jQ=zeb(vye,Ywe,1283);mdb(1284,1,Rte,a_b);_.Ad=function b_b(a){F$b(this.a,JD(a,125))};var kQ=zeb(vye,xye,1284);mdb(1285,1,{},c_b);_.Kb=function d_b(a){return new gCb(null,new Wvb(twd(JD(a,85)),16))};var lQ=zeb(vye,yye,1285);mdb(1287,1,oue,e_b);_.Mb=function f_b(a){return T$b(this.a,JD(a,26))};var mQ=zeb(vye,zye,1287);mdb(1288,1,{},g_b);_.Kb=function h_b(a){return new gCb(null,new Wvb(swd(JD(a,85)),16))};var nQ=zeb(vye,'ElkGraphImporter/lambda$5$Type',1288);mdb(1290,1,oue,i_b);_.Mb=function j_b(a){return U$b(this.a,JD(a,26))};var oQ=zeb(vye,'ElkGraphImporter/lambda$7$Type',1290);mdb(1291,1,oue,k_b);_.Mb=function l_b(a){return V$b(JD(a,85))};var pQ=zeb(vye,'ElkGraphImporter/lambda$8$Type',1291);mdb(1261,1,{},t_b);var m_b;var vQ=zeb(vye,'ElkGraphLayoutTransferrer',1261);mdb(1262,1,oue,w_b);_.Mb=function x_b(a){return u_b(this.a,JD(a,17))};var rQ=zeb(vye,'ElkGraphLayoutTransferrer/lambda$0$Type',1262);mdb(1263,1,Rte,y_b);_.Ad=function z_b(a){n_b();Ylb(this.a,JD(a,17))};var sQ=zeb(vye,'ElkGraphLayoutTransferrer/lambda$1$Type',1263);mdb(1264,1,oue,A_b);_.Mb=function B_b(a){return v_b(this.a,JD(a,17))};var tQ=zeb(vye,'ElkGraphLayoutTransferrer/lambda$2$Type',1264);mdb(1265,1,Rte,C_b);_.Ad=function D_b(a){n_b();Ylb(this.a,JD(a,17))};var uQ=zeb(vye,'ElkGraphLayoutTransferrer/lambda$3$Type',1265);mdb(806,1,{},M_b);var wQ=zeb(Aye,'BiLinkedHashMultiMap',806);mdb(1511,1,hye,P_b);_.If=function Q_b(a,b){N_b(JD(a,37),b)};var zQ=zeb(Aye,'CommentNodeMarginCalculator',1511);mdb(1512,1,{},R_b);_.Kb=function S_b(a){return new gCb(null,new Wvb(JD(a,25).a,16))};var xQ=zeb(Aye,'CommentNodeMarginCalculator/lambda$0$Type',1512);mdb(1513,1,Rte,T_b);_.Ad=function U_b(a){O_b(JD(a,9))};var yQ=zeb(Aye,'CommentNodeMarginCalculator/lambda$1$Type',1513);mdb(1514,1,hye,Y_b);_.If=function Z_b(a,b){W_b(JD(a,37),b)};var AQ=zeb(Aye,'CommentPostprocessor',1514);mdb(1515,1,hye,b0b);_.If=function c0b(a,b){$_b(JD(a,37),b)};var BQ=zeb(Aye,'CommentPreprocessor',1515);mdb(1516,1,hye,e0b);_.If=function f0b(a,b){d0b(JD(a,37),b)};var CQ=zeb(Aye,'ConstraintsPostprocessor',1516);mdb(1517,1,hye,m0b);_.If=function n0b(a,b){k0b(JD(a,37),b)};var DQ=zeb(Aye,'EdgeAndLayerConstraintEdgeReverser',1517);mdb(1518,1,hye,q0b);_.If=function s0b(a,b){o0b(JD(a,37),b)};var HQ=zeb(Aye,'EndLabelPostprocessor',1518);mdb(1519,1,{},t0b);_.Kb=function u0b(a){return new gCb(null,new Wvb(JD(a,25).a,16))};var EQ=zeb(Aye,'EndLabelPostprocessor/lambda$0$Type',1519);mdb(1520,1,oue,v0b);_.Mb=function w0b(a){return r0b(JD(a,9))};var FQ=zeb(Aye,'EndLabelPostprocessor/lambda$1$Type',1520);mdb(1521,1,Rte,x0b);_.Ad=function y0b(a){p0b(JD(a,9))};var GQ=zeb(Aye,'EndLabelPostprocessor/lambda$2$Type',1521);mdb(1522,1,hye,J0b);_.If=function M0b(a,b){F0b(JD(a,37),b)};var OQ=zeb(Aye,'EndLabelPreprocessor',1522);mdb(1523,1,{},N0b);_.Kb=function O0b(a){return new gCb(null,new Wvb(JD(a,25).a,16))};var IQ=zeb(Aye,'EndLabelPreprocessor/lambda$0$Type',1523);mdb(1524,1,Rte,P0b);_.Ad=function Q0b(a){B0b(this.a,this.b,this.c,JD(a,9))};_.a=0;_.b=0;_.c=false;var JQ=zeb(Aye,'EndLabelPreprocessor/lambda$1$Type',1524);mdb(1525,1,oue,R0b);_.Mb=function S0b(a){return XD(lNb(JD(a,70),($xc(),Uvc)))===XD((Kjd(),Jjd))};var KQ=zeb(Aye,'EndLabelPreprocessor/lambda$2$Type',1525);mdb(1526,1,Rte,T0b);_.Ad=function U0b(a){Qtb(this.a,JD(a,70))};var LQ=zeb(Aye,'EndLabelPreprocessor/lambda$3$Type',1526);mdb(1527,1,oue,V0b);_.Mb=function W0b(a){return XD(lNb(JD(a,70),($xc(),Uvc)))===XD((Kjd(),Ijd))};var MQ=zeb(Aye,'EndLabelPreprocessor/lambda$4$Type',1527);mdb(1528,1,Rte,X0b);_.Ad=function Y0b(a){Qtb(this.a,JD(a,70))};var NQ=zeb(Aye,'EndLabelPreprocessor/lambda$5$Type',1528);mdb(1576,1,hye,f1b);_.If=function g1b(a,b){c1b(JD(a,37),b)};var Z0b;var WQ=zeb(Aye,'EndLabelSorter',1576);mdb(1577,1,fwe,i1b);_.Le=function j1b(a,b){return h1b(JD(a,455),JD(b,455))};_.Fb=function k1b(a){return this===a};_.Me=function l1b(){return new Kqb(this)};var PQ=zeb(Aye,'EndLabelSorter/1',1577);mdb(455,1,{455:1},m1b);var QQ=zeb(Aye,'EndLabelSorter/LabelGroup',455);mdb(1578,1,{},n1b);_.Kb=function o1b(a){return $0b(),new gCb(null,new Wvb(JD(a,25).a,16))};var RQ=zeb(Aye,'EndLabelSorter/lambda$0$Type',1578);mdb(1579,1,oue,p1b);_.Mb=function q1b(a){return $0b(),JD(a,9).k==(UYb(),RYb)};var SQ=zeb(Aye,'EndLabelSorter/lambda$1$Type',1579);mdb(1580,1,Rte,r1b);_.Ad=function s1b(a){d1b(JD(a,9))};var TQ=zeb(Aye,'EndLabelSorter/lambda$2$Type',1580);mdb(1581,1,oue,t1b);_.Mb=function u1b(a){return $0b(),XD(lNb(JD(a,70),($xc(),Uvc)))===XD((Kjd(),Ijd))};var UQ=zeb(Aye,'EndLabelSorter/lambda$3$Type',1581);mdb(1582,1,oue,v1b);_.Mb=function w1b(a){return $0b(),XD(lNb(JD(a,70),($xc(),Uvc)))===XD((Kjd(),Jjd))};var VQ=zeb(Aye,'EndLabelSorter/lambda$4$Type',1582);mdb(1529,1,hye,I1b);_.If=function J1b(a,b){G1b(this,JD(a,37))};_.b=0;_.c=0;var bR=zeb(Aye,'FinalSplineBendpointsCalculator',1529);mdb(1530,1,{},K1b);_.Kb=function L1b(a){return new gCb(null,new Wvb(JD(a,25).a,16))};var XQ=zeb(Aye,'FinalSplineBendpointsCalculator/lambda$0$Type',1530);mdb(1531,1,{},M1b);_.Kb=function N1b(a){return new gCb(null,new Xvb(new Yr(Dr(BYb(JD(a,9)).a.Jc(),new Dl))))};var YQ=zeb(Aye,'FinalSplineBendpointsCalculator/lambda$1$Type',1531);mdb(1532,1,oue,O1b);_.Mb=function P1b(a){return !vWb(JD(a,17))};var ZQ=zeb(Aye,'FinalSplineBendpointsCalculator/lambda$2$Type',1532);mdb(1533,1,oue,Q1b);_.Mb=function R1b(a){return mNb(JD(a,17),(Krc(),Brc))};var $Q=zeb(Aye,'FinalSplineBendpointsCalculator/lambda$3$Type',1533);mdb(1534,1,Rte,S1b);_.Ad=function T1b(a){z1b(this.a,JD(a,132))};var _Q=zeb(Aye,'FinalSplineBendpointsCalculator/lambda$4$Type',1534);mdb(1535,1,Rte,U1b);_.Ad=function V1b(a){Lnb(JD(a,17).a)};var aR=zeb(Aye,'FinalSplineBendpointsCalculator/lambda$5$Type',1535);mdb(790,1,hye,r2b);_.If=function s2b(a,b){i2b(this,JD(a,37),b)};var dR=zeb(Aye,'GraphTransformer',790);mdb(502,23,{3:1,35:1,23:1,502:1},w2b);var t2b,u2b;var cR=Aeb(Aye,'GraphTransformer/Mode',502,MI,y2b,x2b);var z2b;mdb(1536,1,hye,F2b);_.If=function G2b(a,b){C2b(JD(a,37),b)};var eR=zeb(Aye,'HierarchicalNodeResizingProcessor',1536);mdb(1537,1,hye,N2b);_.If=function O2b(a,b){J2b(JD(a,37),b)};var gR=zeb(Aye,'HierarchicalPortConstraintProcessor',1537);mdb(1538,1,fwe,Q2b);_.Le=function R2b(a,b){return P2b(JD(a,9),JD(b,9))};_.Fb=function S2b(a){return this===a};_.Me=function T2b(){return new Kqb(this)};var fR=zeb(Aye,'HierarchicalPortConstraintProcessor/NodeComparator',1538);mdb(1539,1,hye,W2b);_.If=function X2b(a,b){U2b(JD(a,37),b)};var hR=zeb(Aye,'HierarchicalPortDummySizeProcessor',1539);mdb(1540,1,hye,i3b);_.If=function j3b(a,b){b3b(this,JD(a,37),b)};_.a=0;var kR=zeb(Aye,'HierarchicalPortOrthogonalEdgeRouter',1540);mdb(1541,1,fwe,l3b);_.Le=function m3b(a,b){return k3b(JD(a,9),JD(b,9))};_.Fb=function n3b(a){return this===a};_.Me=function o3b(){return new Kqb(this)};var iR=zeb(Aye,'HierarchicalPortOrthogonalEdgeRouter/1',1541);mdb(1542,1,fwe,q3b);_.Le=function r3b(a,b){return p3b(JD(a,9),JD(b,9))};_.Fb=function s3b(a){return this===a};_.Me=function t3b(){return new Kqb(this)};var jR=zeb(Aye,'HierarchicalPortOrthogonalEdgeRouter/2',1542);mdb(1543,1,hye,w3b);_.If=function x3b(a,b){v3b(JD(a,37),b)};var lR=zeb(Aye,'HierarchicalPortPositionProcessor',1543);mdb(1544,1,hye,G3b);_.If=function H3b(a,b){F3b(this,JD(a,37))};_.a=0;_.c=0;var y3b,z3b;var pR=zeb(Aye,'HighDegreeNodeLayeringProcessor',1544);mdb(566,1,{566:1},I3b);_.b=-1;_.d=-1;var mR=zeb(Aye,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',566);mdb(1545,1,{},J3b);_.Kb=function K3b(a){return A3b(),yYb(JD(a,9))};_.Fb=function L3b(a){return this===a};var nR=zeb(Aye,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1545);mdb(1546,1,{},M3b);_.Kb=function N3b(a){return A3b(),BYb(JD(a,9))};_.Fb=function O3b(a){return this===a};var oR=zeb(Aye,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1546);mdb(1552,1,hye,U3b);_.If=function V3b(a,b){T3b(this,JD(a,37),b)};var uR=zeb(Aye,'HyperedgeDummyMerger',1552);mdb(791,1,{},W3b);_.a=false;_.b=false;_.c=false;var qR=zeb(Aye,'HyperedgeDummyMerger/MergeState',791);mdb(1553,1,{},X3b);_.Kb=function Y3b(a){return new gCb(null,new Wvb(JD(a,25).a,16))};var rR=zeb(Aye,'HyperedgeDummyMerger/lambda$0$Type',1553);mdb(1554,1,{},Z3b);_.Kb=function $3b(a){return new gCb(null,new Wvb(JD(a,9).j,16))};var sR=zeb(Aye,'HyperedgeDummyMerger/lambda$1$Type',1554);mdb(1555,1,Rte,_3b);_.Ad=function a4b(a){JD(a,12).p=-1};var tR=zeb(Aye,'HyperedgeDummyMerger/lambda$2$Type',1555);mdb(1556,1,hye,d4b);_.If=function e4b(a,b){c4b(JD(a,37),b)};var vR=zeb(Aye,'HypernodesProcessor',1556);mdb(1557,1,hye,g4b);_.If=function h4b(a,b){f4b(JD(a,37),b)};var wR=zeb(Aye,'InLayerConstraintProcessor',1557);mdb(1558,1,hye,j4b);_.If=function k4b(a,b){i4b(JD(a,37),b)};var xR=zeb(Aye,'InnermostNodeMarginCalculator',1558);mdb(1559,1,hye,o4b);_.If=function t4b(a,b){n4b(this,JD(a,37))};_.a=pve;_.b=pve;_.c=ove;_.d=ove;var ER=zeb(Aye,'InteractiveExternalPortPositioner',1559);mdb(1560,1,{},u4b);_.Kb=function v4b(a){return JD(a,17).d.i};_.Fb=function w4b(a){return this===a};var yR=zeb(Aye,'InteractiveExternalPortPositioner/lambda$0$Type',1560);mdb(1561,1,{},x4b);_.Kb=function y4b(a){return p4b(this.a,MD(a))};_.Fb=function z4b(a){return this===a};var zR=zeb(Aye,'InteractiveExternalPortPositioner/lambda$1$Type',1561);mdb(1562,1,{},A4b);_.Kb=function B4b(a){return JD(a,17).c.i};_.Fb=function C4b(a){return this===a};var AR=zeb(Aye,'InteractiveExternalPortPositioner/lambda$2$Type',1562);mdb(1563,1,{},D4b);_.Kb=function E4b(a){return q4b(this.a,MD(a))};_.Fb=function F4b(a){return this===a};var BR=zeb(Aye,'InteractiveExternalPortPositioner/lambda$3$Type',1563);mdb(1564,1,{},G4b);_.Kb=function H4b(a){return r4b(this.a,MD(a))};_.Fb=function I4b(a){return this===a};var CR=zeb(Aye,'InteractiveExternalPortPositioner/lambda$4$Type',1564);mdb(1565,1,{},J4b);_.Kb=function K4b(a){return s4b(this.a,MD(a))};_.Fb=function L4b(a){return this===a};var DR=zeb(Aye,'InteractiveExternalPortPositioner/lambda$5$Type',1565);mdb(79,23,{3:1,35:1,23:1,79:1,196:1},R5b);_.bg=function S5b(){switch(this.g){case 15:return new Zlc;case 22:return new tmc;case 48:return new Cmc;case 29:case 36:return new s7b;case 33:return new P_b;case 43:return new Y_b;case 1:return new b0b;case 42:return new e0b;case 57:return new r2b((v2b(),u2b));case 0:return new r2b((v2b(),t2b));case 2:return new m0b;case 55:return new q0b;case 34:return new J0b;case 52:return new I1b;case 56:return new F2b;case 13:return new N2b;case 39:return new W2b;case 45:return new i3b;case 41:return new w3b;case 9:return new G3b;case 50:return new Ndc;case 38:return new U3b;case 44:return new d4b;case 28:return new g4b;case 31:return new j4b;case 3:return new o4b;case 18:return new _5b;case 30:return new f6b;case 5:return new s6b;case 51:return new B6b;case 35:return new Y6b;case 37:return new G7b;case 53:return new f1b;case 11:return new O7b;case 7:return new Y7b;case 40:return new k8b;case 46:return new n8b;case 16:return new r8b;case 10:return new I8b;case 49:return new i9b;case 21:return new q9b;case 23:return new KGc((XGc(),VGc));case 8:return new z9b;case 12:return new H9b;case 4:return new N9b;case 19:return new lac;case 17:return new Jac;case 54:return new Mac;case 6:return new Bbc;case 25:return new Qac;case 26:return new Plc;case 47:return new fbc;case 32:return new Mbc;case 14:return new Zbc;case 27:return new inc;case 20:return new mcc;case 24:return new KGc((XGc(),WGc));default:throw Icb(new hfb(Eye+(this.f!=null?this.f:''+this.g)));}};var M4b,N4b,O4b,P4b,Q4b,R4b,S4b,T4b,U4b,V4b,W4b,X4b,Y4b,Z4b,$4b,_4b,a5b,b5b,c5b,d5b,e5b,f5b,g5b,h5b,i5b,j5b,k5b,l5b,m5b,n5b,o5b,p5b,q5b,r5b,s5b,t5b,u5b,v5b,w5b,x5b,y5b,z5b,A5b,B5b,C5b,D5b,E5b,F5b,G5b,H5b,I5b,J5b,K5b,L5b,M5b,N5b,O5b,P5b;var FR=Aeb(Aye,Fye,79,MI,U5b,T5b);var V5b;mdb(1566,1,hye,_5b);_.If=function a6b(a,b){Z5b(JD(a,37),b)};var GR=zeb(Aye,'InvertedPortProcessor',1566);mdb(1567,1,hye,f6b);_.If=function g6b(a,b){e6b(JD(a,37),b)};var KR=zeb(Aye,'LabelAndNodeSizeProcessor',1567);mdb(1568,1,oue,h6b);_.Mb=function i6b(a){return JD(a,9).k==(UYb(),RYb)};var HR=zeb(Aye,'LabelAndNodeSizeProcessor/lambda$0$Type',1568);mdb(1569,1,oue,j6b);_.Mb=function k6b(a){return JD(a,9).k==(UYb(),NYb)};var IR=zeb(Aye,'LabelAndNodeSizeProcessor/lambda$1$Type',1569);mdb(1570,1,Rte,l6b);_.Ad=function m6b(a){c6b(this.b,this.a,this.c,JD(a,9))};_.a=false;_.c=false;var JR=zeb(Aye,'LabelAndNodeSizeProcessor/lambda$2$Type',1570);mdb(1571,1,hye,s6b);_.If=function t6b(a,b){q6b(JD(a,37),b)};var n6b;var MR=zeb(Aye,'LabelDummyInserter',1571);mdb(1572,1,xwe,u6b);_.Lb=function v6b(a){return XD(lNb(JD(a,70),($xc(),Uvc)))===XD((Kjd(),Hjd))};_.Fb=function w6b(a){return this===a};_.Mb=function x6b(a){return XD(lNb(JD(a,70),($xc(),Uvc)))===XD((Kjd(),Hjd))};var LR=zeb(Aye,'LabelDummyInserter/1',1572);mdb(1573,1,hye,B6b);_.If=function C6b(a,b){A6b(JD(a,37),b)};var OR=zeb(Aye,'LabelDummyRemover',1573);mdb(1574,1,oue,D6b);_.Mb=function E6b(a){return Odb(LD(lNb(JD(a,70),($xc(),Tvc))))};var NR=zeb(Aye,'LabelDummyRemover/lambda$0$Type',1574);mdb(1332,1,hye,Y6b);_.If=function a7b(a,b){U6b(this,JD(a,37),b)};_.a=null;var F6b;var VR=zeb(Aye,'LabelDummySwitcher',1332);mdb(294,1,{294:1},e7b);_.c=0;_.d=null;_.f=0;var PR=zeb(Aye,'LabelDummySwitcher/LabelDummyInfo',294);mdb(1333,1,{},f7b);_.Kb=function g7b(a){return G6b(),new gCb(null,new Wvb(JD(a,25).a,16))};var QR=zeb(Aye,'LabelDummySwitcher/lambda$0$Type',1333);mdb(1334,1,oue,h7b);_.Mb=function i7b(a){return G6b(),JD(a,9).k==(UYb(),OYb)};var RR=zeb(Aye,'LabelDummySwitcher/lambda$1$Type',1334);mdb(1335,1,{},j7b);_.Kb=function k7b(a){return Z6b(this.a,JD(a,9))};var SR=zeb(Aye,'LabelDummySwitcher/lambda$2$Type',1335);mdb(1336,1,Rte,l7b);_.Ad=function m7b(a){$6b(this.a,JD(a,294))};var TR=zeb(Aye,'LabelDummySwitcher/lambda$3$Type',1336);mdb(1337,1,fwe,n7b);_.Le=function o7b(a,b){return _6b(JD(a,294),JD(b,294))};_.Fb=function p7b(a){return this===a};_.Me=function q7b(){return new Kqb(this)};var UR=zeb(Aye,'LabelDummySwitcher/lambda$4$Type',1337);mdb(789,1,hye,s7b);_.If=function t7b(a,b){r7b(JD(a,37),b)};var WR=zeb(Aye,'LabelManagementProcessor',789);mdb(1575,1,hye,G7b);_.If=function H7b(a,b){A7b(JD(a,37),b)};var XR=zeb(Aye,'LabelSideSelector',1575);mdb(1583,1,hye,O7b);_.If=function P7b(a,b){K7b(JD(a,37),b)};var YR=zeb(Aye,'LayerConstraintPostprocessor',1583);mdb(1584,1,hye,Y7b);_.If=function Z7b(a,b){W7b(JD(a,37),b)};var Q7b;var $R=zeb(Aye,'LayerConstraintPreprocessor',1584);mdb(367,23,{3:1,35:1,23:1,367:1},e8b);var $7b,_7b,a8b,b8b;var ZR=Aeb(Aye,'LayerConstraintPreprocessor/HiddenNodeConnections',367,MI,g8b,f8b);var h8b;mdb(1585,1,hye,k8b);_.If=function l8b(a,b){j8b(JD(a,37),b)};var _R=zeb(Aye,'LayerSizeAndGraphHeightCalculator',1585);mdb(1586,1,hye,n8b);_.If=function p8b(a,b){m8b(JD(a,37),b)};var aS=zeb(Aye,'LongEdgeJoiner',1586);mdb(1587,1,hye,r8b);_.If=function t8b(a,b){q8b(JD(a,37),b)};var bS=zeb(Aye,'LongEdgeSplitter',1587);mdb(1588,1,hye,I8b);_.If=function L8b(a,b){C8b(this,JD(a,37),b)};_.e=0;_.f=0;_.j=0;_.k=0;_.n=0;_.o=0;var w8b,x8b;var hS=zeb(Aye,'NodePromotion',1588);mdb(1589,1,fwe,N8b);_.Le=function O8b(a,b){return M8b(JD(a,9),JD(b,9))};_.Fb=function P8b(a){return this===a};_.Me=function Q8b(){return new Kqb(this)};var cS=zeb(Aye,'NodePromotion/1',1589);mdb(1590,1,fwe,S8b);_.Le=function T8b(a,b){return R8b(JD(a,9),JD(b,9))};_.Fb=function U8b(a){return this===a};_.Me=function V8b(){return new Kqb(this)};var dS=zeb(Aye,'NodePromotion/2',1590);mdb(1591,1,{},W8b);_.Kb=function X8b(a){return JD(a,49),y8b(),Ndb(),true};_.Fb=function Y8b(a){return this===a};var eS=zeb(Aye,'NodePromotion/lambda$0$Type',1591);mdb(1592,1,{},Z8b);_.Kb=function $8b(a){return J8b(this.a,JD(a,49))};_.Fb=function _8b(a){return this===a};_.a=0;var fS=zeb(Aye,'NodePromotion/lambda$1$Type',1592);mdb(1593,1,{},a9b);_.Kb=function b9b(a){return K8b(this.a,JD(a,49))};_.Fb=function c9b(a){return this===a};_.a=0;var gS=zeb(Aye,'NodePromotion/lambda$2$Type',1593);mdb(1594,1,hye,i9b);_.If=function j9b(a,b){d9b(JD(a,37),b)};var iS=zeb(Aye,'NorthSouthPortPostprocessor',1594);mdb(1595,1,hye,q9b);_.If=function s9b(a,b){o9b(JD(a,37),b)};var kS=zeb(Aye,'NorthSouthPortPreprocessor',1595);mdb(1596,1,fwe,t9b);_.Le=function u9b(a,b){return r9b(JD(a,12),JD(b,12))};_.Fb=function v9b(a){return this===a};_.Me=function w9b(){return new Kqb(this)};var jS=zeb(Aye,'NorthSouthPortPreprocessor/lambda$0$Type',1596);mdb(1597,1,hye,z9b);_.If=function B9b(a,b){y9b(JD(a,37),b)};var nS=zeb(Aye,'PartitionMidprocessor',1597);mdb(1598,1,oue,C9b);_.Mb=function D9b(a){return mNb(JD(a,9),($xc(),Vwc))};var lS=zeb(Aye,'PartitionMidprocessor/lambda$0$Type',1598);mdb(1599,1,Rte,E9b);_.Ad=function F9b(a){A9b(this.a,JD(a,9))};var mS=zeb(Aye,'PartitionMidprocessor/lambda$1$Type',1599);mdb(1600,1,hye,H9b);_.If=function I9b(a,b){G9b(JD(a,37),b)};var oS=zeb(Aye,'PartitionPostprocessor',1600);mdb(1601,1,hye,N9b);_.If=function P9b(a,b){L9b(JD(a,37),b)};var vS=zeb(Aye,'PartitionPreprocessor',1601);mdb(1602,1,oue,Q9b);_.Mb=function R9b(a){return mNb(JD(a,9),($xc(),Vwc))};var pS=zeb(Aye,'PartitionPreprocessor/lambda$0$Type',1602);mdb(1603,1,oue,S9b);_.Mb=function T9b(a){return mNb(JD(a,9),($xc(),Vwc))};var qS=zeb(Aye,'PartitionPreprocessor/lambda$1$Type',1603);mdb(1604,1,{},U9b);_.Kb=function V9b(a){return new gCb(null,new Xvb(new Yr(Dr(BYb(JD(a,9)).a.Jc(),new Dl))))};var rS=zeb(Aye,'PartitionPreprocessor/lambda$2$Type',1604);mdb(1605,1,oue,W9b);_.Mb=function X9b(a){return J9b(this.a,JD(a,17))};var sS=zeb(Aye,'PartitionPreprocessor/lambda$3$Type',1605);mdb(1606,1,Rte,Y9b);_.Ad=function Z9b(a){M9b(JD(a,17))};var tS=zeb(Aye,'PartitionPreprocessor/lambda$4$Type',1606);mdb(1607,1,oue,$9b);_.Mb=function _9b(a){return O9b(this.a,JD(a,9))};_.a=0;var uS=zeb(Aye,'PartitionPreprocessor/lambda$5$Type',1607);mdb(1608,1,hye,lac);_.If=function pac(a,b){iac(JD(a,37),b)};var aac,bac,cac,dac,eac,fac;var BS=zeb(Aye,'PortListSorter',1608);mdb(1609,1,{},rac);_.Kb=function sac(a){return gac(),JD(a,12).e};var wS=zeb(Aye,'PortListSorter/lambda$0$Type',1609);mdb(1610,1,{},tac);_.Kb=function uac(a){return gac(),JD(a,12).g};var xS=zeb(Aye,'PortListSorter/lambda$1$Type',1610);mdb(1611,1,fwe,vac);_.Le=function wac(a,b){return mac(JD(a,12),JD(b,12))};_.Fb=function xac(a){return this===a};_.Me=function yac(){return new Kqb(this)};var yS=zeb(Aye,'PortListSorter/lambda$2$Type',1611);mdb(1612,1,fwe,zac);_.Le=function Aac(a,b){return nac(JD(a,12),JD(b,12))};_.Fb=function Bac(a){return this===a};_.Me=function Cac(){return new Kqb(this)};var zS=zeb(Aye,'PortListSorter/lambda$3$Type',1612);mdb(1613,1,fwe,Dac);_.Le=function Eac(a,b){return oac(JD(a,12),JD(b,12))};_.Fb=function Fac(a){return this===a};_.Me=function Gac(){return new Kqb(this)};var AS=zeb(Aye,'PortListSorter/lambda$4$Type',1613);mdb(1614,1,hye,Jac);_.If=function Kac(a,b){Hac(JD(a,37),b)};var CS=zeb(Aye,'PortSideProcessor',1614);mdb(1615,1,hye,Mac);_.If=function Nac(a,b){Lac(JD(a,37),b)};var DS=zeb(Aye,'ReversedEdgeRestorer',1615);mdb(1620,1,hye,Qac);_.If=function Rac(a,b){Oac(this,JD(a,37),b)};var KS=zeb(Aye,'SelfLoopPortRestorer',1620);mdb(1621,1,{},Sac);_.Kb=function Tac(a){return new gCb(null,new Wvb(JD(a,25).a,16))};var ES=zeb(Aye,'SelfLoopPortRestorer/lambda$0$Type',1621);mdb(1622,1,oue,Uac);_.Mb=function Vac(a){return JD(a,9).k==(UYb(),RYb)};var FS=zeb(Aye,'SelfLoopPortRestorer/lambda$1$Type',1622);mdb(1623,1,oue,Wac);_.Mb=function Xac(a){return mNb(JD(a,9),(Krc(),xrc))};var GS=zeb(Aye,'SelfLoopPortRestorer/lambda$2$Type',1623);mdb(1624,1,{},Yac);_.Kb=function Zac(a){return JD(lNb(JD(a,9),(Krc(),xrc)),338)};var HS=zeb(Aye,'SelfLoopPortRestorer/lambda$3$Type',1624);mdb(1625,1,Rte,$ac);_.Ad=function _ac(a){Pac(this.a,JD(a,338))};var IS=zeb(Aye,'SelfLoopPortRestorer/lambda$4$Type',1625);mdb(792,1,Rte,abc);_.Ad=function bbc(a){Qgc(JD(a,107))};var JS=zeb(Aye,'SelfLoopPortRestorer/lambda$5$Type',792);mdb(1627,1,hye,fbc);_.If=function hbc(a,b){cbc(JD(a,37),b)};var TS=zeb(Aye,'SelfLoopPostProcessor',1627);mdb(1628,1,{},ibc);_.Kb=function jbc(a){return new gCb(null,new Wvb(JD(a,25).a,16))};var LS=zeb(Aye,'SelfLoopPostProcessor/lambda$0$Type',1628);mdb(1629,1,oue,kbc);_.Mb=function lbc(a){return JD(a,9).k==(UYb(),RYb)};var MS=zeb(Aye,'SelfLoopPostProcessor/lambda$1$Type',1629);mdb(1630,1,oue,mbc);_.Mb=function nbc(a){return mNb(JD(a,9),(Krc(),xrc))};var NS=zeb(Aye,'SelfLoopPostProcessor/lambda$2$Type',1630);mdb(1631,1,Rte,obc);_.Ad=function pbc(a){dbc(JD(a,9))};var OS=zeb(Aye,'SelfLoopPostProcessor/lambda$3$Type',1631);mdb(1632,1,{},qbc);_.Kb=function rbc(a){return new gCb(null,new Wvb(JD(a,107).f,1))};var PS=zeb(Aye,'SelfLoopPostProcessor/lambda$4$Type',1632);mdb(1633,1,Rte,sbc);_.Ad=function tbc(a){ebc(this.a,JD(a,341))};var QS=zeb(Aye,'SelfLoopPostProcessor/lambda$5$Type',1633);mdb(1634,1,oue,ubc);_.Mb=function vbc(a){return !!JD(a,107).i};var RS=zeb(Aye,'SelfLoopPostProcessor/lambda$6$Type',1634);mdb(1635,1,Rte,wbc);_.Ad=function xbc(a){gbc(this.a,JD(a,107))};var SS=zeb(Aye,'SelfLoopPostProcessor/lambda$7$Type',1635);mdb(1616,1,hye,Bbc);_.If=function Cbc(a,b){Abc(JD(a,37),b)};var XS=zeb(Aye,'SelfLoopPreProcessor',1616);mdb(1617,1,{},Dbc);_.Kb=function Ebc(a){return new gCb(null,new Wvb(JD(a,107).f,1))};var US=zeb(Aye,'SelfLoopPreProcessor/lambda$0$Type',1617);mdb(1618,1,{},Fbc);_.Kb=function Gbc(a){return JD(a,341).a};var VS=zeb(Aye,'SelfLoopPreProcessor/lambda$1$Type',1618);mdb(1619,1,Rte,Hbc);_.Ad=function Ibc(a){zbc(JD(a,17))};var WS=zeb(Aye,'SelfLoopPreProcessor/lambda$2$Type',1619);mdb(1636,1,hye,Mbc);_.If=function Nbc(a,b){Kbc(this,JD(a,37),b)};var bT=zeb(Aye,'SelfLoopRouter',1636);mdb(1637,1,{},Obc);_.Kb=function Pbc(a){return new gCb(null,new Wvb(JD(a,25).a,16))};var YS=zeb(Aye,'SelfLoopRouter/lambda$0$Type',1637);mdb(1638,1,oue,Qbc);_.Mb=function Rbc(a){return JD(a,9).k==(UYb(),RYb)};var ZS=zeb(Aye,'SelfLoopRouter/lambda$1$Type',1638);mdb(1639,1,oue,Sbc);_.Mb=function Tbc(a){return mNb(JD(a,9),(Krc(),xrc))};var $S=zeb(Aye,'SelfLoopRouter/lambda$2$Type',1639);mdb(1640,1,{},Ubc);_.Kb=function Vbc(a){return JD(lNb(JD(a,9),(Krc(),xrc)),338)};var _S=zeb(Aye,'SelfLoopRouter/lambda$3$Type',1640);mdb(1641,1,Rte,Wbc);_.Ad=function Xbc(a){Jbc(this.a,this.b,JD(a,338))};var aT=zeb(Aye,'SelfLoopRouter/lambda$4$Type',1641);mdb(1642,1,hye,Zbc);_.If=function acc(a,b){Ybc(JD(a,37),b)};var gT=zeb(Aye,'SemiInteractiveCrossMinProcessor',1642);mdb(1643,1,oue,bcc);_.Mb=function ccc(a){return JD(a,9).k==(UYb(),RYb)};var cT=zeb(Aye,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1643);mdb(1644,1,oue,dcc);_.Mb=function ecc(a){return kNb(JD(a,9))._b(($xc(),ixc))};var dT=zeb(Aye,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1644);mdb(1645,1,fwe,fcc);_.Le=function gcc(a,b){return $bc(JD(a,9),JD(b,9))};_.Fb=function hcc(a){return this===a};_.Me=function icc(){return new Kqb(this)};var eT=zeb(Aye,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1645);mdb(1646,1,{},jcc);_.Te=function kcc(a,b){return _bc(JD(a,9),JD(b,9))};var fT=zeb(Aye,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1646);mdb(1648,1,hye,mcc);_.If=function rcc(a,b){lcc(JD(a,37),b)};var jT=zeb(Aye,'SortByInputModelProcessor',1648);mdb(1649,1,oue,scc);_.Mb=function tcc(a){return JD(a,12).g.c.length!=0};var hT=zeb(Aye,'SortByInputModelProcessor/lambda$0$Type',1649);mdb(1650,1,Rte,ucc);_.Ad=function vcc(a){pcc(this.a,JD(a,12))};var iT=zeb(Aye,'SortByInputModelProcessor/lambda$1$Type',1650);mdb(1729,804,{},Ecc);_.bf=function Fcc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new imb;VBb(SBb(new gCb(null,new Wvb(this.c.a.b,16)),new Gdc),new Idc(this,b));uFb(this,new Occ);_lb(b,new Scc);b.c.length=0;VBb(SBb(new gCb(null,new Wvb(this.c.a.b,16)),new Ucc),new Wcc(b));uFb(this,new $cc);_lb(b,new cdc);b.c.length=0;c=$ub(hBb(XBb(new gCb(null,new Wvb(this.c.a.b,16)),new edc(this))),new gdc);VBb(new gCb(null,new Wvb(this.c.a.a,16)),new kdc(c,b));uFb(this,new odc);_lb(b,new sdc);b.c.length=0;break;case 3:d=new imb;uFb(this,new Gcc);e=$ub(hBb(XBb(new gCb(null,new Wvb(this.c.a.b,16)),new Kcc(this))),new idc);VBb(SBb(new gCb(null,new Wvb(this.c.a.b,16)),new udc),new wdc(e,d));uFb(this,new Adc);_lb(d,new Edc);d.c.length=0;break;default:throw Icb(new obd);}};_.b=0;var IT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation',1729);mdb(1730,1,xwe,Gcc);_.Lb=function Hcc(a){return RD(JD(a,60).g,156)};_.Fb=function Icc(a){return this===a};_.Mb=function Jcc(a){return RD(JD(a,60).g,156)};var kT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1730);mdb(1731,1,{},Kcc);_.We=function Lcc(a){return ycc(this.a,JD(a,60))};var lT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1731);mdb(1739,1,pue,Mcc);_.be=function Ncc(){xcc(this.a,this.b,-1)};_.b=0;var mT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1739);mdb(1741,1,xwe,Occ);_.Lb=function Pcc(a){return RD(JD(a,60).g,156)};_.Fb=function Qcc(a){return this===a};_.Mb=function Rcc(a){return RD(JD(a,60).g,156)};var nT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1741);mdb(1742,1,Rte,Scc);_.Ad=function Tcc(a){JD(a,375).be()};var oT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1742);mdb(1743,1,oue,Ucc);_.Mb=function Vcc(a){return RD(JD(a,60).g,9)};var pT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1743);mdb(1745,1,Rte,Wcc);_.Ad=function Xcc(a){zcc(this.a,JD(a,60))};var qT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1745);mdb(1744,1,pue,Ycc);_.be=function Zcc(){xcc(this.b,this.a,-1)};_.a=0;var rT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1744);mdb(1746,1,xwe,$cc);_.Lb=function _cc(a){return RD(JD(a,60).g,9)};_.Fb=function adc(a){return this===a};_.Mb=function bdc(a){return RD(JD(a,60).g,9)};var sT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1746);mdb(1747,1,Rte,cdc);_.Ad=function ddc(a){JD(a,375).be()};var tT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1747);mdb(1748,1,{},edc);_.We=function fdc(a){return Acc(this.a,JD(a,60))};var uT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1748);mdb(1749,1,{},gdc);_.Ue=function hdc(){return 0};var vT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1749);mdb(1732,1,{},idc);_.Ue=function jdc(){return 0};var wT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1732);mdb(1751,1,Rte,kdc);_.Ad=function ldc(a){Bcc(this.a,this.b,JD(a,320))};_.a=0;var xT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1751);mdb(1750,1,pue,mdc);_.be=function ndc(){wcc(this.a,this.b,-1)};_.b=0;var yT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1750);mdb(1752,1,xwe,odc);_.Lb=function pdc(a){return JD(a,60),true};_.Fb=function qdc(a){return this===a};_.Mb=function rdc(a){return JD(a,60),true};var zT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1752);mdb(1753,1,Rte,sdc);_.Ad=function tdc(a){JD(a,375).be()};var AT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1753);mdb(1733,1,oue,udc);_.Mb=function vdc(a){return RD(JD(a,60).g,9)};var BT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1733);mdb(1735,1,Rte,wdc);_.Ad=function xdc(a){Ccc(this.a,this.b,JD(a,60))};_.a=0;var CT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1735);mdb(1734,1,pue,ydc);_.be=function zdc(){xcc(this.b,this.a,-1)};_.a=0;var DT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1734);mdb(1736,1,xwe,Adc);_.Lb=function Bdc(a){return JD(a,60),true};_.Fb=function Cdc(a){return this===a};_.Mb=function Ddc(a){return JD(a,60),true};var ET=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1736);mdb(1737,1,Rte,Edc);_.Ad=function Fdc(a){JD(a,375).be()};var FT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1737);mdb(1738,1,oue,Gdc);_.Mb=function Hdc(a){return RD(JD(a,60).g,156)};var GT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1738);mdb(1740,1,Rte,Idc);_.Ad=function Jdc(a){Dcc(this.a,this.b,JD(a,60))};var HT=zeb(Kye,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1740);mdb(1547,1,hye,Ndc);_.If=function Sdc(a,b){Mdc(this,JD(a,37),b)};var Kdc;var MT=zeb(Kye,'HorizontalGraphCompactor',1547);mdb(1548,1,{},Tdc);_.df=function Udc(a,b){var c,d,e;if(Qdc(a,b)){return 0}c=Odc(a);d=Odc(b);if(!!c&&c.k==(UYb(),NYb)||!!d&&d.k==(UYb(),NYb)){return 0}e=JD(lNb(this.a.a,(Krc(),yrc)),316);return zAc(e,c?c.k:(UYb(),PYb),d?d.k:(UYb(),PYb))};_.ef=function Vdc(a,b){var c,d,e;if(Qdc(a,b)){return 1}c=Odc(a);d=Odc(b);e=JD(lNb(this.a.a,(Krc(),yrc)),316);return CAc(e,c?c.k:(UYb(),PYb),d?d.k:(UYb(),PYb))};var JT=zeb(Kye,'HorizontalGraphCompactor/1',1548);mdb(1549,1,{},Wdc);_.cf=function Xdc(a,b){return Ldc(),a.a.i==0};var KT=zeb(Kye,'HorizontalGraphCompactor/lambda$0$Type',1549);mdb(1550,1,{},Ydc);_.cf=function Zdc(a,b){return Rdc(this.a,a,b)};var LT=zeb(Kye,'HorizontalGraphCompactor/lambda$1$Type',1550);mdb(1696,1,{},sec);var $dc,_dc;var oU=zeb(Kye,'LGraphToCGraphTransformer',1696);mdb(1704,1,oue,Bec);_.Mb=function Cec(a){return a!=null};var NT=zeb(Kye,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1704);mdb(1697,1,{},Dec);_.Kb=function Eec(a){return aec(),qdb(lNb(JD(JD(a,60).g,9),(Krc(),hrc)))};var OT=zeb(Kye,'LGraphToCGraphTransformer/lambda$0$Type',1697);mdb(1698,1,{},Fec);_.Kb=function Gec(a){return aec(),Lfc(JD(JD(a,60).g,156))};var PT=zeb(Kye,'LGraphToCGraphTransformer/lambda$1$Type',1698);mdb(1707,1,oue,Hec);_.Mb=function Iec(a){return aec(),RD(JD(a,60).g,9)};var QT=zeb(Kye,'LGraphToCGraphTransformer/lambda$10$Type',1707);mdb(1708,1,Rte,Jec);_.Ad=function Kec(a){tec(JD(a,60))};var RT=zeb(Kye,'LGraphToCGraphTransformer/lambda$11$Type',1708);mdb(1709,1,oue,Lec);_.Mb=function Mec(a){return aec(),RD(JD(a,60).g,156)};var ST=zeb(Kye,'LGraphToCGraphTransformer/lambda$12$Type',1709);mdb(1713,1,Rte,Nec);_.Ad=function Oec(a){uec(JD(a,60))};var TT=zeb(Kye,'LGraphToCGraphTransformer/lambda$13$Type',1713);mdb(1710,1,Rte,Pec);_.Ad=function Qec(a){vec(this.a,JD(a,8))};_.a=0;var UT=zeb(Kye,'LGraphToCGraphTransformer/lambda$14$Type',1710);mdb(1711,1,Rte,Rec);_.Ad=function Sec(a){wec(this.a,JD(a,119))};_.a=0;var VT=zeb(Kye,'LGraphToCGraphTransformer/lambda$15$Type',1711);mdb(1712,1,Rte,Tec);_.Ad=function Uec(a){xec(this.a,JD(a,8))};_.a=0;var WT=zeb(Kye,'LGraphToCGraphTransformer/lambda$16$Type',1712);mdb(1714,1,{},Vec);_.Kb=function Wec(a){return aec(),new gCb(null,new Xvb(new Yr(Dr(BYb(JD(a,9)).a.Jc(),new Dl))))};var XT=zeb(Kye,'LGraphToCGraphTransformer/lambda$17$Type',1714);mdb(1715,1,oue,Xec);_.Mb=function Yec(a){return aec(),vWb(JD(a,17))};var YT=zeb(Kye,'LGraphToCGraphTransformer/lambda$18$Type',1715);mdb(1716,1,Rte,Zec);_.Ad=function $ec(a){jec(this.a,JD(a,17))};var ZT=zeb(Kye,'LGraphToCGraphTransformer/lambda$19$Type',1716);mdb(1700,1,Rte,_ec);_.Ad=function afc(a){kec(this.a,JD(a,156))};var $T=zeb(Kye,'LGraphToCGraphTransformer/lambda$2$Type',1700);mdb(1717,1,{},bfc);_.Kb=function cfc(a){return aec(),new gCb(null,new Wvb(JD(a,25).a,16))};var _T=zeb(Kye,'LGraphToCGraphTransformer/lambda$20$Type',1717);mdb(1718,1,{},dfc);_.Kb=function efc(a){return aec(),new gCb(null,new Xvb(new Yr(Dr(BYb(JD(a,9)).a.Jc(),new Dl))))};var aU=zeb(Kye,'LGraphToCGraphTransformer/lambda$21$Type',1718);mdb(1719,1,{},ffc);_.Kb=function gfc(a){return aec(),JD(lNb(JD(a,17),(Krc(),Brc)),16)};var bU=zeb(Kye,'LGraphToCGraphTransformer/lambda$22$Type',1719);mdb(1720,1,oue,hfc);_.Mb=function ifc(a){return yec(JD(a,16))};var cU=zeb(Kye,'LGraphToCGraphTransformer/lambda$23$Type',1720);mdb(1721,1,Rte,jfc);_.Ad=function kfc(a){cec(this.a,JD(a,16))};var dU=zeb(Kye,'LGraphToCGraphTransformer/lambda$24$Type',1721);mdb(1722,1,{},lfc);_.Kb=function mfc(a){return aec(),new gCb(null,new Xvb(new Yr(Dr(BYb(JD(a,9)).a.Jc(),new Dl))))};var eU=zeb(Kye,'LGraphToCGraphTransformer/lambda$25$Type',1722);mdb(1723,1,oue,nfc);_.Mb=function ofc(a){return aec(),vWb(JD(a,17))};var fU=zeb(Kye,'LGraphToCGraphTransformer/lambda$26$Type',1723);mdb(1725,1,Rte,pfc);_.Ad=function qfc(a){lec(this.a,JD(a,17))};var gU=zeb(Kye,'LGraphToCGraphTransformer/lambda$27$Type',1725);mdb(1724,1,Rte,rfc);_.Ad=function sfc(a){zec(this.a,JD(a,70))};_.a=0;var hU=zeb(Kye,'LGraphToCGraphTransformer/lambda$28$Type',1724);mdb(1699,1,Rte,tfc);_.Ad=function ufc(a){mec(this.a,this.b,JD(a,156))};var iU=zeb(Kye,'LGraphToCGraphTransformer/lambda$3$Type',1699);mdb(1701,1,{},vfc);_.Kb=function wfc(a){return aec(),new gCb(null,new Wvb(JD(a,25).a,16))};var jU=zeb(Kye,'LGraphToCGraphTransformer/lambda$4$Type',1701);mdb(1702,1,{},xfc);_.Kb=function yfc(a){return aec(),new gCb(null,new Xvb(new Yr(Dr(BYb(JD(a,9)).a.Jc(),new Dl))))};var kU=zeb(Kye,'LGraphToCGraphTransformer/lambda$5$Type',1702);mdb(1703,1,{},zfc);_.Kb=function Afc(a){return aec(),JD(lNb(JD(a,17),(Krc(),Brc)),16)};var lU=zeb(Kye,'LGraphToCGraphTransformer/lambda$6$Type',1703);mdb(1705,1,Rte,Bfc);_.Ad=function Cfc(a){Aec(this.a,JD(a,16))};var mU=zeb(Kye,'LGraphToCGraphTransformer/lambda$8$Type',1705);mdb(1706,1,Rte,Dfc);_.Ad=function Efc(a){nec(this.a,this.b,JD(a,156))};var nU=zeb(Kye,'LGraphToCGraphTransformer/lambda$9$Type',1706);mdb(1695,1,{},Ifc);_.af=function Jfc(a){var b,c,d,e,f;this.a=a;this.d=new cGb;this.c=SC(bN,rte,124,this.a.a.a.c.length,0,1);this.b=0;for(c=new Hmb(this.a.a.a);c.a=p){Ylb(f,zfb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.ng=function fnc(){return false};var NV=zeb(Sye,'MSDCutIndexHeuristic',803);mdb(1647,1,hye,inc);_.If=function jnc(a,b){hnc(JD(a,37),b)};var OV=zeb(Sye,'SingleEdgeGraphWrapper',1647);mdb(231,23,{3:1,35:1,23:1,231:1},unc);var nnc,onc,pnc,qnc,rnc,snc;var PV=Aeb(Tye,'CenterEdgeLabelPlacementStrategy',231,MI,wnc,vnc);var xnc;mdb(422,23,{3:1,35:1,23:1,422:1},Cnc);var znc,Anc;var QV=Aeb(Tye,'ConstraintCalculationStrategy',422,MI,Enc,Dnc);var Fnc;mdb(301,23,{3:1,35:1,23:1,301:1,188:1,196:1},Nnc);_.bg=function Pnc(){return Mnc(this)};_.og=function Onc(){return Mnc(this)};var Hnc,Inc,Jnc,Knc;var RV=Aeb(Tye,'CrossingMinimizationStrategy',301,MI,Rnc,Qnc);var Snc;mdb(350,23,{3:1,35:1,23:1,350:1},Ync);var Unc,Vnc,Wnc;var SV=Aeb(Tye,'CuttingStrategy',350,MI,$nc,Znc);var _nc;mdb(267,23,{3:1,35:1,23:1,267:1,188:1,196:1},moc);_.bg=function ooc(){return loc(this)};_.og=function noc(){return loc(this)};var boc,coc,doc,eoc,foc,goc,hoc,ioc,joc;var TV=Aeb(Tye,'CycleBreakingStrategy',267,MI,qoc,poc);var roc;mdb(419,23,{3:1,35:1,23:1,419:1},woc);var toc,uoc;var UV=Aeb(Tye,'DirectionCongruency',419,MI,yoc,xoc);var zoc;mdb(449,23,{3:1,35:1,23:1,449:1},Foc);var Boc,Coc,Doc;var VV=Aeb(Tye,'EdgeConstraint',449,MI,Hoc,Goc);var Ioc;mdb(284,23,{3:1,35:1,23:1,284:1},Soc);var Koc,Loc,Moc,Noc,Ooc,Poc;var WV=Aeb(Tye,'EdgeLabelSideSelection',284,MI,Uoc,Toc);var Voc;mdb(476,23,{3:1,35:1,23:1,476:1},$oc);var Xoc,Yoc;var XV=Aeb(Tye,'EdgeStraighteningStrategy',476,MI,apc,_oc);var bpc;mdb(282,23,{3:1,35:1,23:1,282:1},kpc);var dpc,epc,fpc,gpc,hpc,ipc;var YV=Aeb(Tye,'FixedAlignment',282,MI,mpc,lpc);var npc;mdb(283,23,{3:1,35:1,23:1,283:1},wpc);var ppc,qpc,rpc,spc,tpc,upc;var ZV=Aeb(Tye,'GraphCompactionStrategy',283,MI,ypc,xpc);var zpc;mdb(261,23,{3:1,35:1,23:1,261:1},Mpc);var Bpc,Cpc,Dpc,Epc,Fpc,Gpc,Hpc,Ipc,Jpc,Kpc;var $V=Aeb(Tye,'GraphProperties',261,MI,Opc,Npc);var Ppc;mdb(302,23,{3:1,35:1,23:1,302:1},Vpc);var Rpc,Spc,Tpc;var _V=Aeb(Tye,'GreedySwitchType',302,MI,Xpc,Wpc);var Ypc;mdb(329,23,{3:1,35:1,23:1,329:1},cqc);var $pc,_pc,aqc;var aW=Aeb(Tye,'GroupOrderStrategy',329,MI,eqc,dqc);var fqc;mdb(315,23,{3:1,35:1,23:1,315:1},lqc);var hqc,iqc,jqc;var bW=Aeb(Tye,'InLayerConstraint',315,MI,nqc,mqc);var oqc;mdb(420,23,{3:1,35:1,23:1,420:1},tqc);var qqc,rqc;var cW=Aeb(Tye,'InteractiveReferencePoint',420,MI,vqc,uqc);var wqc;var yqc,zqc,Aqc,Bqc,Cqc,Dqc,Eqc,Fqc,Gqc,Hqc,Iqc,Jqc,Kqc,Lqc,Mqc,Nqc,Oqc,Pqc,Qqc,Rqc,Sqc,Tqc,Uqc,Vqc,Wqc,Xqc,Yqc,Zqc,$qc,_qc,arc,brc,crc,drc,erc,frc,grc,hrc,irc,jrc,krc,lrc,mrc,nrc,orc,prc,qrc,rrc,trc,urc,vrc,wrc,xrc,yrc,zrc,Arc,Brc,Crc,Drc,Erc,Frc,Grc,Hrc,Irc,Jrc;mdb(165,23,{3:1,35:1,23:1,165:1},Rrc);var Lrc,Mrc,Nrc,Orc,Prc;var dW=Aeb(Tye,'LayerConstraint',165,MI,Trc,Src);var Urc;mdb(423,23,{3:1,35:1,23:1,423:1},Zrc);var Wrc,Xrc;var eW=Aeb(Tye,'LayerUnzippingStrategy',423,MI,_rc,$rc);var asc;mdb(843,1,lxe,dvc);_.tf=function evc(a){mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,$ye),''),'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.'),_sc),(Ued(),Oed)),UV),Crb((Ged(),Eed)))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,_ye),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Ndb(),false)),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,aze),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),wtc),Oed),cW),Crb(Eed))));hdd(a,aze,ize,ytc);hdd(a,aze,sze,xtc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,bze),''),'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.'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,cze),''),'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.'),true),Med),GI),Crb(Eed))));mdd(a,new ied(ved(yed(xed(zed(red(sed(wed(ted(ued(new Aed,dze),''),'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."),false),Med),GI),Crb(Fed)),WC(OC(hJ,1),Ote,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,eze),''),'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."),quc),Oed),pW),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,fze),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),zfb(7)),Qed),UI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,gze),''),'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.'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,hze),''),'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.'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,ize),'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).'),Zsc),Oed),TV),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,jze),GAe),'Node Layering Strategy'),'Strategy for node layering.'),Ntc),Oed),jW),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,kze),GAe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Dtc),Oed),dW),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,lze),GAe),'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),Qed),UI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,mze),GAe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),zfb(-1)),Qed),UI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,nze),HAe),'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."),zfb(4)),Qed),UI),Crb(Eed))));hdd(a,nze,jze,Gtc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,oze),HAe),'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."),zfb(2)),Qed),UI),Crb(Eed))));hdd(a,oze,jze,Itc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,pze),IAe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),Ltc),Oed),nW),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,qze),IAe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),zfb(0)),Qed),UI),Crb(Eed))));hdd(a,qze,pze,null);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,rze),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),zfb(lte)),Qed),UI),Crb(Eed))));hdd(a,rze,jze,Atc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,sze),JAe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),Xsc),Oed),RV),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,tze),JAe),'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.'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,uze),JAe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),Ned),LI),Crb(Eed))));hdd(a,uze,KAe,Psc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,vze),JAe),'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."),false),Med),GI),Crb(Eed))));hdd(a,vze,sze,Vsc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,wze),JAe),'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),Sed),hJ),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,xze),JAe),'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),Sed),hJ),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,yze),JAe),'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),Qed),UI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,zze),JAe),'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.'),zfb(-1)),Qed),UI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Aze),LAe),'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."),zfb(40)),Qed),UI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Bze),LAe),'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."),Msc),Oed),_V),Crb(Eed))));hdd(a,Bze,sze,Nsc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Cze),'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."),Isc),Oed),_V),Crb(Eed))));hdd(a,Cze,sze,Jsc);hdd(a,Cze,KAe,Ksc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Dze),MAe),'Node Placement Strategy'),'Strategy for node placement.'),ouc),Oed),mW),Crb(Eed))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,Eze),MAe),'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."),Med),GI),Crb(Eed))));hdd(a,Eze,Dze,euc);hdd(a,Eze,Dze,fuc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Fze),NAe),'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."),$tc),Oed),XV),Crb(Eed))));hdd(a,Fze,Dze,_tc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Gze),NAe),'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.'),buc),Oed),YV),Crb(Eed))));hdd(a,Gze,Dze,cuc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Hze),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),Ned),LI),Crb(Eed))));hdd(a,Hze,Dze,huc);mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,Ize),'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."),Oed),lW),Crb(Ded))));hdd(a,Ize,Dze,muc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Jze),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),kuc),Oed),lW),Crb(Eed))));hdd(a,Jze,Dze,luc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Kze),OAe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),htc),Oed),rW),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Lze),OAe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),jtc),Oed),sW),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Mze),'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.'),ltc),Oed),uW),Crb(Eed))));hdd(a,Mze,PAe,mtc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Nze),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),Ned),LI),Crb(Eed))));hdd(a,Nze,PAe,otc);hdd(a,Nze,Mze,ptc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Oze),'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),Ned),LI),Crb(Eed))));hdd(a,Oze,PAe,ftc);mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,Pze),QAe),'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."),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Qze),QAe),'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),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Rze),QAe),'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),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Sze),QAe),'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),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Tze),RAe),'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.'),zfb(0)),Qed),UI),Crb(Bed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Uze),RAe),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),zfb(0)),Qed),UI),Crb(Bed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Vze),RAe),'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.'),zfb(0)),Qed),UI),Crb(Bed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Wze),SAe),'Connected Components Compaction'),'Tries to further compact components (disconnected sub-graphs).'),false),Med),GI),Crb(Eed))));hdd(a,Wze,uxe,true);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Xze),TAe),'Post Compaction Strategy'),UAe),hsc),Oed),ZV),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Yze),TAe),'Post Compaction Constraint Calculation'),UAe),fsc),Oed),QV),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Zze),VAe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,$ze),VAe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),zfb(16)),Qed),UI),Crb(Eed))));hdd(a,$ze,Zze,true);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,_ze),VAe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),zfb(5)),Qed),UI),Crb(Eed))));hdd(a,_ze,Zze,true);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,aAe),WAe),'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'."),Wuc),Oed),wW),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,bAe),WAe),'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),Ned),LI),Crb(Eed))));hdd(a,bAe,aAe,Buc);hdd(a,bAe,aAe,Cuc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,cAe),WAe),'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),Ned),LI),Crb(Eed))));hdd(a,cAe,aAe,Euc);hdd(a,cAe,aAe,Fuc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,dAe),XAe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Muc),Oed),SV),Crb(Eed))));hdd(a,dAe,aAe,Nuc);hdd(a,dAe,aAe,Ouc);mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,eAe),XAe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Red),HK),Crb(Eed))));hdd(a,eAe,dAe,Huc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,fAe),'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.'),Juc),Qed),UI),Crb(Eed))));hdd(a,fAe,dAe,Kuc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,gAe),YAe),'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.'),_uc),Oed),vW),Crb(Eed))));hdd(a,gAe,aAe,avc);hdd(a,gAe,aAe,bvc);mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,hAe),YAe),'Valid Indices for Wrapping'),null),Red),HK),Crb(Eed))));hdd(a,hAe,aAe,Yuc);hdd(a,hAe,aAe,Zuc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,iAe),ZAe),'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.'),true),Med),GI),Crb(Eed))));hdd(a,iAe,aAe,Suc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,jAe),ZAe),'Distance Penalty When Improving Cuts'),null),2),Ned),LI),Crb(Eed))));hdd(a,jAe,aAe,Quc);hdd(a,jAe,iAe,true);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,kAe),ZAe),'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.'),true),Med),GI),Crb(Eed))));hdd(a,kAe,aAe,Uuc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,lAe),$Ae),'Layer Unzipping Strategy'),"The strategy to use for unzipping a layer into multiple sublayers while maintaining the existing ordering of nodes and edges after crossing minimization. The default value is 'NONE'."),Wtc),Oed),eW),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,mAe),$Ae),'Minimize Edge Length Heuristic'),'Use a heuristic to decide whether or not to actually perform the layer split with the goal of minimizing the total edge length. This option only works when layerSplit is set to 2. The property can be set to the nodes in a layer, which then applies the property for the layer. If any node sets the value to true, then the value is set to true for the entire layer.'),false),Med),GI),Crb(Ded))));hdd(a,mAe,nAe,Rtc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,nAe),$Ae),'Unzipping Layer Split'),'Defines the number of sublayers to split a layer into. The property can be set to the nodes in a layer, which then applies the property for the layer. If multiple nodes set the value to different values, then the lowest value is chosen.'),Ptc),Qed),UI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,oAe),$Ae),'Reset Alternation on Long Edges'),'If set to true, nodes will always be placed in the first sublayer after a long edge when using the ALTERNATING strategy. Otherwise long edge dummies are treated the same as regular nodes. The default value is true. The property can be set to the nodes in a layer, which then applies the property for the layer. If any node sets the value to false, then the value is set to false for the entire layer.'),Ttc),Med),GI),Crb(Ded))));hdd(a,oAe,lAe,Utc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,pAe),_Ae),'Edge Label Side Selection'),'Method to decide on edge label sides.'),dtc),Oed),WV),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,qAe),_Ae),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),btc),Oed),PV),Drb(Eed,WC(OC(g2,1),kue,160,0,[Ced])))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,rAe),aBe),'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.'),Esc),Oed),oW),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,sAe),aBe),'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.'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,tAe),aBe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),Med),GI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,uAe),aBe),'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.'),jsc),Oed),iP),Crb(Eed))));hdd(a,uAe,uxe,null);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,vAe),aBe),'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.'),Asc),Oed),kW),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,wAe),aBe),'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),Ned),LI),Crb(Eed))));hdd(a,wAe,rAe,null);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,xAe),aBe),'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),Ned),LI),Crb(Eed))));hdd(a,xAe,rAe,null);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,yAe),bBe),cBe),'Used to define partial ordering groups during cycle breaking. A lower group id means that the group is sorted before other groups. A group model order of 0 is the default group.'),zfb(0)),Qed),UI),Crb(Ded))));hdd(a,yAe,tAe,false);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,zAe),bBe),cBe),'Used to define partial ordering groups during crossing minimization. A lower group id means that the group is sorted before other groups. A group model order of 0 is the default group.'),zfb(0)),Qed),UI),Drb(Ded,WC(OC(g2,1),kue,160,0,[Bed,Fed])))));hdd(a,zAe,tAe,false);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,AAe),bBe),cBe),'Used to define partial ordering groups during component packing. A lower group id means that the group is sorted before other groups. A group model order of 0 is the default group.'),zfb(0)),Qed),UI),Drb(Ded,WC(OC(g2,1),kue,160,0,[Bed,Fed])))));hdd(a,AAe,tAe,false);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,BAe),bBe),'Cycle Breaking Group Ordering Strategy'),'Determines how to count ordering violations during cycle breaking. NONE: They do not count. ENFORCED: A group with a higher model order is before a node with a smaller. MODEL_ORDER: The model order counts instead of the model order group id ordering.'),nsc),Oed),aW),Crb(Eed))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,CAe),bBe),'Cycle Breaking Preferred Source Id'),'The model order group id for which should be preferred as a source if possible.'),Qed),UI),Crb(Eed))));hdd(a,CAe,ize,psc);mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,DAe),bBe),'Cycle Breaking Preferred Target Id'),'The model order group id for which should be preferred as a target if possible.'),Qed),UI),Crb(Eed))));hdd(a,DAe,ize,rsc);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,EAe),bBe),'Crossing Minimization Group Ordering Strategy'),'Determines how to count ordering violations during crossing minimization. NONE: They do not count. ENFORCED: A group with a lower id is before a group with a higher id. MODEL_ORDER: The model order counts instead of the model order group id ordering.'),vsc),Oed),aW),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,FAe),bBe),'Crossing Minimization Enforced Group Orders'),'Holds all group ids which are enforcing their order during crossing minimization strategies. E.g. if only groups 2 and -1 (default) enforce their ordering. Other groups e.g. the group of timer nodes can be ordered arbitrarily if it helps and the mentioned groups may not change their order.'),tsc),Red),HK),Crb(Eed))));_xc((new ayc,a))};var csc,dsc,esc,fsc,gsc,hsc,isc,jsc,ksc,lsc,msc,nsc,osc,psc,qsc,rsc,ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc,wtc,xtc,ytc,ztc,Atc,Btc,Ctc,Dtc,Etc,Ftc,Gtc,Htc,Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc;var fW=zeb(Tye,'LayeredMetaDataProvider',843);mdb(982,1,lxe,ayc);_.tf=function byc(a){_xc(a)};var fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc,jwc,kwc,lwc,mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc;var hW=zeb(Tye,'LayeredOptions',982);mdb(983,1,{},cyc);_.uf=function dyc(){var a;return a=new MQb,a};_.vf=function eyc(a){};var gW=zeb(Tye,'LayeredOptions/LayeredFactory',983);mdb(1345,1,{});_.a=0;var fyc;var j3=zeb(TBe,'ElkSpacings/AbstractSpacingsBuilder',1345);mdb(778,1345,{},ryc);var oyc,pyc;var iW=zeb(Tye,'LayeredSpacings/LayeredSpacingsBuilder',778);mdb(268,23,{3:1,35:1,23:1,268:1,188:1,196:1},Dyc);_.bg=function Fyc(){return Cyc(this)};_.og=function Eyc(){return Cyc(this)};var syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc;var jW=Aeb(Tye,'LayeringStrategy',268,MI,Hyc,Gyc);var Iyc;mdb(352,23,{3:1,35:1,23:1,352:1},Pyc);var Kyc,Lyc,Myc;var kW=Aeb(Tye,'LongEdgeOrderingStrategy',352,MI,Ryc,Qyc);var Syc;mdb(203,23,{3:1,35:1,23:1,203:1},$yc);var Uyc,Vyc,Wyc,Xyc;var lW=Aeb(Tye,'NodeFlexibility',203,MI,bzc,azc);var czc;mdb(328,23,{3:1,35:1,23:1,328:1,188:1,196:1},lzc);_.bg=function nzc(){return kzc(this)};_.og=function mzc(){return kzc(this)};var ezc,fzc,gzc,hzc,izc;var mW=Aeb(Tye,'NodePlacementStrategy',328,MI,pzc,ozc);var qzc;mdb(243,23,{3:1,35:1,23:1,243:1},Dzc);var szc,tzc,uzc,vzc,wzc,xzc,yzc,zzc,Azc,Bzc;var nW=Aeb(Tye,'NodePromotionStrategy',243,MI,Fzc,Ezc);var Gzc;mdb(269,23,{3:1,35:1,23:1,269:1},Nzc);var Izc,Jzc,Kzc,Lzc;var oW=Aeb(Tye,'OrderingStrategy',269,MI,Pzc,Ozc);var Qzc;mdb(421,23,{3:1,35:1,23:1,421:1},Vzc);var Szc,Tzc;var pW=Aeb(Tye,'PortSortingStrategy',421,MI,Xzc,Wzc);var Yzc;mdb(452,23,{3:1,35:1,23:1,452:1},cAc);var $zc,_zc,aAc;var qW=Aeb(Tye,'PortType',452,MI,eAc,dAc);var fAc;mdb(381,23,{3:1,35:1,23:1,381:1},lAc);var hAc,iAc,jAc;var rW=Aeb(Tye,'SelfLoopDistributionStrategy',381,MI,nAc,mAc);var oAc;mdb(348,23,{3:1,35:1,23:1,348:1},uAc);var qAc,rAc,sAc;var sW=Aeb(Tye,'SelfLoopOrderingStrategy',348,MI,wAc,vAc);var xAc;mdb(316,1,{316:1},IAc);var tW=zeb(Tye,'Spacings',316);mdb(349,23,{3:1,35:1,23:1,349:1},OAc);var KAc,LAc,MAc;var uW=Aeb(Tye,'SplineRoutingMode',349,MI,QAc,PAc);var RAc;mdb(351,23,{3:1,35:1,23:1,351:1},XAc);var TAc,UAc,VAc;var vW=Aeb(Tye,'ValidifyStrategy',351,MI,ZAc,YAc);var $Ac;mdb(382,23,{3:1,35:1,23:1,382:1},eBc);var aBc,bBc,cBc;var wW=Aeb(Tye,'WrappingStrategy',382,MI,gBc,fBc);var hBc;mdb(1361,1,XBe,oBc);_.pg=function pBc(a){return JD(a,37),jBc};_.If=function qBc(a,b){nBc(this,JD(a,37),b)};var jBc;var xW=zeb(YBe,'BFSNodeOrderCycleBreaker',1361);mdb(1359,1,XBe,wBc);_.pg=function xBc(a){return JD(a,37),rBc};_.If=function yBc(a,b){vBc(this,JD(a,37),b)};var rBc;var zW=zeb(YBe,'DFSNodeOrderCycleBreaker',1359);mdb(1360,1,Rte,zBc);_.Ad=function ABc(a){uBc(this.a,this.c,this.b,JD(a,17))};_.b=false;var yW=zeb(YBe,'DFSNodeOrderCycleBreaker/lambda$0$Type',1360);mdb(1353,1,XBe,FBc);_.pg=function GBc(a){return JD(a,37),BBc};_.If=function HBc(a,b){EBc(this,JD(a,37),b)};var BBc;var AW=zeb(YBe,'DepthFirstCycleBreaker',1353);mdb(779,1,XBe,MBc);_.pg=function OBc(a){return JD(a,37),IBc};_.If=function PBc(a,b){KBc(this,JD(a,37),b)};_.qg=function NBc(a){return JD(amb(a,Nvb(this.e,a.c.length)),9)};var IBc;var BW=zeb(YBe,'GreedyCycleBreaker',779);mdb(1356,779,XBe,QBc);_.qg=function RBc(a){var b,c,d,e,f,g,h,i,j;j=null;d=lte;i=$wnd.Math.max(this.b.a.c.length,JD(lNb(this.b,(Krc(),frc)),15).a);b=i*JD(lNb(this.b,Bqc),15).a;e=new UBc;c=XD(lNb(this.b,($xc(),pvc)))===XD((bqc(),$pc));for(h=new Hmb(a);h.af){d=f;j=g}}}if(!j){return JD(amb(a,Nvb(this.e,a.c.length)),9)}return j};var CW=zeb(YBe,'GreedyModelOrderCycleBreaker',1356);mdb(505,1,{},UBc);_.a=0;_.b=0;var DW=zeb(YBe,'GroupModelOrderCalculator',505);mdb(1354,1,XBe,ZBc);_.pg=function $Bc(a){return JD(a,37),VBc};_.If=function _Bc(a,b){YBc(this,JD(a,37),b)};var VBc;var EW=zeb(YBe,'InteractiveCycleBreaker',1354);mdb(1355,1,XBe,dCc);_.pg=function eCc(a){return JD(a,37),aCc};_.If=function fCc(a,b){cCc(JD(a,37),b)};var aCc;var FW=zeb(YBe,'ModelOrderCycleBreaker',1355);mdb(780,1,XBe);_.pg=function lCc(a){return JD(a,37),gCc};_.If=function mCc(a,b){iCc(this,JD(a,37),b)};_.rg=function kCc(a,b){var c,d,e,f,g,h,i,j,k,l;for(g=0;gj){i=m;l=j}if(kBr(new Yr(Dr(BYb(h).a.Jc(),new Dl)))){for(e=new Yr(Dr(yYb(i).a.Jc(),new Dl));Wr(e);){d=JD(Xr(e),17);JD(au(this.d,g),22).Gc(d.c.i)&&Ylb(this.c,d)}}else{for(e=new Yr(Dr(BYb(h).a.Jc(),new Dl));Wr(e);){d=JD(Xr(e),17);JD(au(this.d,g),22).Gc(d.d.i)&&Ylb(this.c,d)}}}}};var HW=zeb(YBe,'SCCNodeTypeCycleBreaker',1358);mdb(1357,780,XBe,pCc);_.rg=function qCc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;for(g=0;gj){i=m;l=j}if(kBr(new Yr(Dr(BYb(h).a.Jc(),new Dl)))){for(e=new Yr(Dr(yYb(i).a.Jc(),new Dl));Wr(e);){d=JD(Xr(e),17);JD(au(this.d,g),22).Gc(d.c.i)&&Ylb(this.c,d)}}else{for(e=new Yr(Dr(BYb(h).a.Jc(),new Dl));Wr(e);){d=JD(Xr(e),17);JD(au(this.d,g),22).Gc(d.d.i)&&Ylb(this.c,d)}}}};var IW=zeb(YBe,'SCConnectivity',1357);mdb(1373,1,XBe,uCc);_.pg=function vCc(a){return JD(a,37),rCc};_.If=function xCc(a,b){tCc(this,JD(a,37),b)};var rCc;var KW=zeb(_Be,'BreadthFirstModelOrderLayerer',1373);mdb(1374,1,fwe,yCc);_.Le=function zCc(a,b){return wCc(JD(a,9),JD(b,9))};_.Fb=function ACc(a){return this===a};_.Me=function BCc(){return new Kqb(this)};var JW=zeb(_Be,'BreadthFirstModelOrderLayerer/lambda$0$Type',1374);mdb(1364,1,XBe,LCc);_.pg=function MCc(a){return JD(a,37),CCc};_.If=function NCc(a,b){JCc(this,JD(a,37),b)};var CCc;var NW=zeb(_Be,'CoffmanGrahamLayerer',1364);mdb(1365,1,fwe,OCc);_.Le=function PCc(a,b){return FCc(this.a,JD(a,9),JD(b,9))};_.Fb=function QCc(a){return this===a};_.Me=function RCc(){return new Kqb(this)};var LW=zeb(_Be,'CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type',1365);mdb(1366,1,fwe,SCc);_.Le=function TCc(a,b){return ICc(this.a,JD(a,9),JD(b,9))};_.Fb=function UCc(a){return this===a};_.Me=function VCc(){return new Kqb(this)};var MW=zeb(_Be,'CoffmanGrahamLayerer/lambda$1$Type',1366);mdb(1375,1,XBe,bDc);_.pg=function cDc(a){return JD(a,37),WCc};_.If=function eDc(a,b){aDc(this,JD(a,37),b)};_.c=0;_.e=0;var WCc;var PW=zeb(_Be,'DepthFirstModelOrderLayerer',1375);mdb(1376,1,fwe,fDc);_.Le=function gDc(a,b){return dDc(JD(a,9),JD(b,9))};_.Fb=function hDc(a){return this===a};_.Me=function iDc(){return new Kqb(this)};var OW=zeb(_Be,'DepthFirstModelOrderLayerer/lambda$0$Type',1376);mdb(1367,1,XBe,lDc);_.pg=function mDc(a){return JD(a,37),Xbd(Xbd(Xbd(new acd,(TQb(),OQb),(Q5b(),l5b)),PQb,u5b),QQb,t5b)};_.If=function nDc(a,b){kDc(JD(a,37),b)};var RW=zeb(_Be,'InteractiveLayerer',1367);mdb(564,1,{564:1},oDc);_.a=0;_.c=0;var QW=zeb(_Be,'InteractiveLayerer/LayerSpan',564);mdb(1363,1,XBe,uDc);_.pg=function vDc(a){return JD(a,37),pDc};_.If=function wDc(a,b){rDc(this,JD(a,37),b)};var pDc;var SW=zeb(_Be,'LongestPathLayerer',1363);mdb(1372,1,XBe,CDc);_.pg=function DDc(a){return JD(a,37),xDc};_.If=function EDc(a,b){zDc(this,JD(a,37),b)};var xDc;var TW=zeb(_Be,'LongestPathSourceLayerer',1372);mdb(1370,1,XBe,NDc);_.pg=function ODc(a){return JD(a,37),Xbd(Xbd(Xbd(new acd,(TQb(),OQb),(Q5b(),X4b)),PQb,u5b),QQb,t5b)};_.If=function PDc(a,b){LDc(this,JD(a,37),b)};_.a=0;_.b=0;_.d=0;var FDc,GDc;var VW=zeb(_Be,'MinWidthLayerer',1370);mdb(1371,1,fwe,RDc);_.Le=function SDc(a,b){return QDc(this,JD(a,9),JD(b,9))};_.Fb=function TDc(a){return this===a};_.Me=function UDc(){return new Kqb(this)};var UW=zeb(_Be,'MinWidthLayerer/MinOutgoingEdgesComparator',1371);mdb(1362,1,XBe,aEc);_.pg=function bEc(a){return JD(a,37),VDc};_.If=function cEc(a,b){_Dc(this,JD(a,37),b)};var VDc;var WW=zeb(_Be,'NetworkSimplexLayerer',1362);mdb(1368,1,XBe,oEc);_.pg=function pEc(a){return JD(a,37),Xbd(Xbd(Xbd(new acd,(TQb(),OQb),(Q5b(),X4b)),PQb,u5b),QQb,t5b)};_.If=function qEc(a,b){lEc(this,JD(a,37),b)};_.d=0;_.f=0;_.g=0;_.i=0;_.s=0;_.t=0;_.u=0;var YW=zeb(_Be,'StretchWidthLayerer',1368);mdb(1369,1,fwe,sEc);_.Le=function tEc(a,b){return rEc(JD(a,9),JD(b,9))};_.Fb=function uEc(a){return this===a};_.Me=function vEc(){return new Kqb(this)};var XW=zeb(_Be,'StretchWidthLayerer/1',1369);mdb(406,1,aCe);_.eg=function KEc(a,b,c,d,e,f){};_.tg=function IEc(a,b,c){return BEc(this,a,b,c)};_.dg=function JEc(){this.g=SC(bE,bCe,30,this.d,15,1);this.f=SC(bE,bCe,30,this.d,15,1)};_.fg=function LEc(a,b){this.e[a]=SC(cE,Pue,30,b[a].length,15,1)};_.gg=function MEc(a,b,c){var d;d=c[a][b];d.p=b;this.e[a][b]=b};_.hg=function NEc(a,b,c,d){JD(amb(d[a][b].j,c),12).p=this.d++};_.b=0;_.c=0;_.d=0;var $W=zeb(cCe,'AbstractBarycenterPortDistributor',406);mdb(1663,1,fwe,OEc);_.Le=function PEc(a,b){return EEc(this.a,JD(a,12),JD(b,12))};_.Fb=function QEc(a){return this===a};_.Me=function REc(){return new Kqb(this)};var ZW=zeb(cCe,'AbstractBarycenterPortDistributor/lambda$0$Type',1663);mdb(816,1,Nye,ZEc);_.eg=function aFc(a,b,c,d,e,f){};_.gg=function cFc(a,b,c){};_.hg=function dFc(a,b,c,d){};_.cg=function $Ec(){return false};_.dg=function _Ec(){this.c=this.e.a;this.g=this.f.g};_.fg=function bFc(a,b){b[a][0].c.p=a};_.ig=function eFc(){return false};_.ug=function fFc(a,b,c,d){if(c){WEc(this,a)}else{TEc(this,a,d);UEc(this,a,b)}if(a.c.length>1){Odb(LD(lNb(xYb((JDb(0,a.c.length),JD(a.c[0],9))),($xc(),Cvc))))?SHc(a,this.d,JD(this,660)):(Fnb(),gmb(a,this.d));sFc(this.e,a)}};_.jg=function gFc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=XEc(c,a.length)){f=a[b-(c?1:-1)];xEc(this.f,f,c?(bAc(),_zc):(bAc(),$zc))}e=a[b][0];k=!d||e.k==(UYb(),NYb);j=Wu(a[b]);this.ug(j,k,false,c);g=0;for(i=new Hmb(j);i.a');a0?(LIc(this.a,a[b-1],a[b]),undefined):!c&&b1){Odb(LD(lNb(xYb((JDb(0,a.c.length),JD(a.c[0],9))),($xc(),Cvc))))?SHc(a,this.d,this):(Fnb(),gmb(a,this.d));Odb(LD(lNb(xYb((JDb(0,a.c.length),JD(a.c[0],9))),Cvc)))||sFc(this.e,a)}};var xX=zeb(cCe,'ModelOrderBarycenterHeuristic',660);mdb(1843,1,fwe,UHc);_.Le=function VHc(a,b){return PHc(this.a,JD(a,9),JD(b,9))};_.Fb=function WHc(a){return this===a};_.Me=function XHc(){return new Kqb(this)};var wX=zeb(cCe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1843);mdb(1383,1,XBe,_Hc);_.pg=function aIc(a){var b;return JD(a,37),b=bcd(YHc),Xbd(b,(TQb(),QQb),(Q5b(),F5b)),b};_.If=function bIc(a,b){$Hc((JD(a,37),b))};var YHc;var yX=zeb(cCe,'NoCrossingMinimizer',1383);mdb(796,406,aCe,cIc);_.sg=function dIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new Hmb(a.j);k.a1&&(e.j==(mmd(),Tld)?(this.b[a]=true):e.j==lmd&&a>0&&(this.b[a-1]=true))};_.f=0;var BX=zeb(Mye,'AllCrossingsCounter',1838);mdb(583,1,{},vIc);_.b=0;_.d=0;var CX=zeb(Mye,'BinaryIndexedTree',583);mdb(519,1,{},ZIc);var xIc,yIc;var MX=zeb(Mye,'CrossingsCounter',519);mdb(1912,1,fwe,bJc);_.Le=function cJc(a,b){return SIc(this.a,JD(a,12),JD(b,12))};_.Fb=function dJc(a){return this===a};_.Me=function eJc(){return new Kqb(this)};var DX=zeb(Mye,'CrossingsCounter/lambda$0$Type',1912);mdb(1913,1,fwe,fJc);_.Le=function gJc(a,b){return TIc(this.a,JD(a,12),JD(b,12))};_.Fb=function hJc(a){return this===a};_.Me=function iJc(){return new Kqb(this)};var EX=zeb(Mye,'CrossingsCounter/lambda$1$Type',1913);mdb(1914,1,fwe,jJc);_.Le=function kJc(a,b){return UIc(this.a,JD(a,12),JD(b,12))};_.Fb=function lJc(a){return this===a};_.Me=function mJc(){return new Kqb(this)};var FX=zeb(Mye,'CrossingsCounter/lambda$2$Type',1914);mdb(1915,1,fwe,nJc);_.Le=function oJc(a,b){return VIc(this.a,JD(a,12),JD(b,12))};_.Fb=function pJc(a){return this===a};_.Me=function qJc(){return new Kqb(this)};var GX=zeb(Mye,'CrossingsCounter/lambda$3$Type',1915);mdb(1916,1,Rte,rJc);_.Ad=function sJc(a){$Ic(this.a,JD(a,12))};var HX=zeb(Mye,'CrossingsCounter/lambda$4$Type',1916);mdb(1917,1,oue,tJc);_.Mb=function uJc(a){return _Ic(this.a,JD(a,12))};var IX=zeb(Mye,'CrossingsCounter/lambda$5$Type',1917);mdb(1918,1,Rte,wJc);_.Ad=function xJc(a){vJc(this,a)};var JX=zeb(Mye,'CrossingsCounter/lambda$6$Type',1918);mdb(1919,1,Rte,yJc);_.Ad=function zJc(a){var b;zIc();olb(this.b,(b=this.a,JD(a,12),b))};var KX=zeb(Mye,'CrossingsCounter/lambda$7$Type',1919);mdb(823,1,xwe,AJc);_.Lb=function BJc(a){return zIc(),mNb(JD(a,12),(Krc(),prc))};_.Fb=function CJc(a){return this===a};_.Mb=function DJc(a){return zIc(),mNb(JD(a,12),(Krc(),prc))};var LX=zeb(Mye,'CrossingsCounter/lambda$8$Type',823);mdb(1911,1,{},FJc);var QX=zeb(Mye,'HyperedgeCrossingsCounter',1911);mdb(467,1,{35:1,467:1},HJc);_.Dd=function IJc(a){return GJc(this,JD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var PX=zeb(Mye,'HyperedgeCrossingsCounter/Hyperedge',467);mdb(370,1,{35:1,370:1},KJc);_.Dd=function LJc(a){return JJc(this,JD(a,370))};_.b=0;_.c=0;var OX=zeb(Mye,'HyperedgeCrossingsCounter/HyperedgeCorner',370);mdb(518,23,{3:1,35:1,23:1,518:1},PJc);var MJc,NJc;var NX=Aeb(Mye,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',518,MI,RJc,QJc);var SJc;mdb(1385,1,XBe,ZJc);_.pg=function $Jc(a){return JD(lNb(JD(a,37),(Krc(),Rqc)),22).Gc((Lpc(),Epc))?VJc:null};_.If=function _Jc(a,b){YJc(this,JD(a,37),b)};var VJc;var SX=zeb(fCe,'InteractiveNodePlacer',1385);mdb(1386,1,XBe,nKc);_.pg=function oKc(a){return JD(lNb(JD(a,37),(Krc(),Rqc)),22).Gc((Lpc(),Epc))?aKc:null};_.If=function pKc(a,b){lKc(this,JD(a,37),b)};var aKc,bKc,cKc;var UX=zeb(fCe,'LinearSegmentsNodePlacer',1386);mdb(263,1,{35:1,263:1},tKc);_.Dd=function uKc(a){return qKc(this,JD(a,263))};_.Fb=function vKc(a){var b;if(RD(a,263)){b=JD(a,263);return this.b==b.b}return false};_.Hb=function wKc(){return this.b};_.Ib=function xKc(){return 'ls'+Ee(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var TX=zeb(fCe,'LinearSegmentsNodePlacer/LinearSegment',263);mdb(1388,1,XBe,UKc);_.pg=function VKc(a){return JD(lNb(JD(a,37),(Krc(),Rqc)),22).Gc((Lpc(),Epc))?yKc:null};_.If=function bLc(a,b){QKc(this,JD(a,37),b)};_.b=0;_.g=0;var yKc;var EY=zeb(fCe,'NetworkSimplexPlacer',1388);mdb(1407,1,fwe,cLc);_.Le=function dLc(a,b){return ofb(JD(a,15).a,JD(b,15).a)};_.Fb=function eLc(a){return this===a};_.Me=function fLc(){return new Kqb(this)};var VX=zeb(fCe,'NetworkSimplexPlacer/0methodref$compare$Type',1407);mdb(1409,1,fwe,gLc);_.Le=function hLc(a,b){return ofb(JD(a,15).a,JD(b,15).a)};_.Fb=function iLc(a){return this===a};_.Me=function jLc(){return new Kqb(this)};var WX=zeb(fCe,'NetworkSimplexPlacer/1methodref$compare$Type',1409);mdb(644,1,{644:1},kLc);var XX=zeb(fCe,'NetworkSimplexPlacer/EdgeRep',644);mdb(405,1,{405:1},lLc);_.b=false;var YX=zeb(fCe,'NetworkSimplexPlacer/NodeRep',405);mdb(500,13,{3:1,4:1,20:1,31:1,56:1,13:1,18:1,16:1,59:1,500:1},pLc);var bY=zeb(fCe,'NetworkSimplexPlacer/Path',500);mdb(1389,1,{},qLc);_.Kb=function rLc(a){return JD(a,17).d.i.k};var ZX=zeb(fCe,'NetworkSimplexPlacer/Path/lambda$0$Type',1389);mdb(1390,1,oue,sLc);_.Mb=function tLc(a){return JD(a,249)==(UYb(),PYb)};var $X=zeb(fCe,'NetworkSimplexPlacer/Path/lambda$1$Type',1390);mdb(1391,1,{},uLc);_.Kb=function vLc(a){return JD(a,17).d.i};var _X=zeb(fCe,'NetworkSimplexPlacer/Path/lambda$2$Type',1391);mdb(1392,1,oue,wLc);_.Mb=function xLc(a){return $Lc(_yc(JD(a,9)))};var aY=zeb(fCe,'NetworkSimplexPlacer/Path/lambda$3$Type',1392);mdb(1393,1,oue,yLc);_.Mb=function zLc(a){return ZKc(JD(a,12))};var cY=zeb(fCe,'NetworkSimplexPlacer/lambda$0$Type',1393);mdb(1394,1,Rte,ALc);_.Ad=function BLc(a){FKc(this.a,this.b,JD(a,12))};var dY=zeb(fCe,'NetworkSimplexPlacer/lambda$1$Type',1394);mdb(1403,1,Rte,CLc);_.Ad=function DLc(a){GKc(this.a,JD(a,17))};var eY=zeb(fCe,'NetworkSimplexPlacer/lambda$10$Type',1403);mdb(1404,1,{},ELc);_.Kb=function FLc(a){return zKc(),new gCb(null,new Wvb(JD(a,25).a,16))};var fY=zeb(fCe,'NetworkSimplexPlacer/lambda$11$Type',1404);mdb(1405,1,Rte,GLc);_.Ad=function HLc(a){HKc(this.a,JD(a,9))};var gY=zeb(fCe,'NetworkSimplexPlacer/lambda$12$Type',1405);mdb(1406,1,{},ILc);_.Kb=function JLc(a){return zKc(),zfb(JD(a,124).e)};var hY=zeb(fCe,'NetworkSimplexPlacer/lambda$13$Type',1406);mdb(1408,1,{},KLc);_.Kb=function LLc(a){return zKc(),zfb(JD(a,124).e)};var iY=zeb(fCe,'NetworkSimplexPlacer/lambda$15$Type',1408);mdb(1410,1,oue,MLc);_.Mb=function NLc(a){return zKc(),JD(a,405).c.k==(UYb(),RYb)};var jY=zeb(fCe,'NetworkSimplexPlacer/lambda$17$Type',1410);mdb(1411,1,oue,OLc);_.Mb=function PLc(a){return zKc(),JD(a,405).c.j.c.length>1};var kY=zeb(fCe,'NetworkSimplexPlacer/lambda$18$Type',1411);mdb(1412,1,Rte,QLc);_.Ad=function RLc(a){$Kc(this.c,this.b,this.d,this.a,JD(a,405))};_.c=0;_.d=0;var lY=zeb(fCe,'NetworkSimplexPlacer/lambda$19$Type',1412);mdb(1395,1,{},SLc);_.Kb=function TLc(a){return zKc(),new gCb(null,new Wvb(JD(a,25).a,16))};var mY=zeb(fCe,'NetworkSimplexPlacer/lambda$2$Type',1395);mdb(1413,1,Rte,ULc);_.Ad=function VLc(a){_Kc(this.a,JD(a,12))};_.a=0;var nY=zeb(fCe,'NetworkSimplexPlacer/lambda$20$Type',1413);mdb(1414,1,{},WLc);_.Kb=function XLc(a){return zKc(),new gCb(null,new Wvb(JD(a,25).a,16))};var oY=zeb(fCe,'NetworkSimplexPlacer/lambda$21$Type',1414);mdb(1415,1,Rte,YLc);_.Ad=function ZLc(a){IKc(this.a,JD(a,9))};var pY=zeb(fCe,'NetworkSimplexPlacer/lambda$22$Type',1415);mdb(1416,1,oue,_Lc);_.Mb=function aMc(a){return $Lc(a)};var qY=zeb(fCe,'NetworkSimplexPlacer/lambda$23$Type',1416);mdb(1417,1,{},bMc);_.Kb=function cMc(a){return zKc(),new gCb(null,new Wvb(JD(a,25).a,16))};var rY=zeb(fCe,'NetworkSimplexPlacer/lambda$24$Type',1417);mdb(1418,1,oue,dMc);_.Mb=function eMc(a){return JKc(this.a,JD(a,9))};var sY=zeb(fCe,'NetworkSimplexPlacer/lambda$25$Type',1418);mdb(1419,1,Rte,fMc);_.Ad=function gMc(a){KKc(this.a,this.b,JD(a,9))};var tY=zeb(fCe,'NetworkSimplexPlacer/lambda$26$Type',1419);mdb(1420,1,oue,hMc);_.Mb=function iMc(a){return zKc(),!vWb(JD(a,17))};var uY=zeb(fCe,'NetworkSimplexPlacer/lambda$27$Type',1420);mdb(1421,1,oue,jMc);_.Mb=function kMc(a){return zKc(),!vWb(JD(a,17))};var vY=zeb(fCe,'NetworkSimplexPlacer/lambda$28$Type',1421);mdb(1422,1,{},lMc);_.Te=function mMc(a,b){return LKc(this.a,JD(a,25),JD(b,25))};var wY=zeb(fCe,'NetworkSimplexPlacer/lambda$29$Type',1422);mdb(1396,1,{},nMc);_.Kb=function oMc(a){return zKc(),new gCb(null,new Xvb(new Yr(Dr(BYb(JD(a,9)).a.Jc(),new Dl))))};var xY=zeb(fCe,'NetworkSimplexPlacer/lambda$3$Type',1396);mdb(1397,1,oue,pMc);_.Mb=function qMc(a){return zKc(),YKc(JD(a,17))};var yY=zeb(fCe,'NetworkSimplexPlacer/lambda$4$Type',1397);mdb(1398,1,Rte,rMc);_.Ad=function sMc(a){RKc(this.a,JD(a,17))};var zY=zeb(fCe,'NetworkSimplexPlacer/lambda$5$Type',1398);mdb(1399,1,{},tMc);_.Kb=function uMc(a){return zKc(),new gCb(null,new Wvb(JD(a,25).a,16))};var AY=zeb(fCe,'NetworkSimplexPlacer/lambda$6$Type',1399);mdb(1400,1,oue,vMc);_.Mb=function wMc(a){return zKc(),JD(a,9).k==(UYb(),RYb)};var BY=zeb(fCe,'NetworkSimplexPlacer/lambda$7$Type',1400);mdb(1401,1,{},xMc);_.Kb=function yMc(a){return zKc(),new gCb(null,new Xvb(new Yr(Dr(vYb(JD(a,9)).a.Jc(),new Dl))))};var CY=zeb(fCe,'NetworkSimplexPlacer/lambda$8$Type',1401);mdb(1402,1,oue,zMc);_.Mb=function AMc(a){return zKc(),uWb(JD(a,17))};var DY=zeb(fCe,'NetworkSimplexPlacer/lambda$9$Type',1402);mdb(1384,1,XBe,EMc);_.pg=function FMc(a){return JD(lNb(JD(a,37),(Krc(),Rqc)),22).Gc((Lpc(),Epc))?BMc:null};_.If=function GMc(a,b){DMc(JD(a,37),b)};var BMc;var FY=zeb(fCe,'SimpleNodePlacer',1384);mdb(185,1,{185:1},OMc);_.Ib=function PMc(){var a;a='';this.c==(SMc(),RMc)?(a+=Gwe):this.c==QMc&&(a+=Fwe);this.o==($Mc(),YMc)?(a+=Rwe):this.o==ZMc?(a+='UP'):(a+='BALANCED');return a};var IY=zeb(iCe,'BKAlignedLayout',185);mdb(509,23,{3:1,35:1,23:1,509:1},TMc);var QMc,RMc;var GY=Aeb(iCe,'BKAlignedLayout/HDirection',509,MI,VMc,UMc);var WMc;mdb(508,23,{3:1,35:1,23:1,508:1},_Mc);var YMc,ZMc;var HY=Aeb(iCe,'BKAlignedLayout/VDirection',508,MI,bNc,aNc);var cNc;mdb(1664,1,{},gNc);var JY=zeb(iCe,'BKAligner',1664);mdb(1667,1,{},lNc);var MY=zeb(iCe,'BKCompactor',1667);mdb(652,1,{652:1},mNc);_.a=0;var KY=zeb(iCe,'BKCompactor/ClassEdge',652);mdb(456,1,{456:1},oNc);_.a=null;_.b=0;var LY=zeb(iCe,'BKCompactor/ClassNode',456);mdb(1387,1,XBe,wNc);_.pg=function ANc(a){return JD(lNb(JD(a,37),(Krc(),Rqc)),22).Gc((Lpc(),Epc))?pNc:null};_.If=function BNc(a,b){vNc(this,JD(a,37),b)};_.d=false;var pNc;var NY=zeb(iCe,'BKNodePlacer',1387);mdb(1665,1,{},DNc);_.d=0;var PY=zeb(iCe,'NeighborhoodInformation',1665);mdb(1666,1,fwe,INc);_.Le=function JNc(a,b){return HNc(this,JD(a,49),JD(b,49))};_.Fb=function KNc(a){return this===a};_.Me=function LNc(){return new Kqb(this)};var OY=zeb(iCe,'NeighborhoodInformation/NeighborComparator',1666);mdb(809,1,{});var TY=zeb(iCe,'ThresholdStrategy',809);mdb(1795,809,{},QNc);_.vg=function RNc(a,b,c){return this.a.o==($Mc(),ZMc)?ove:pve};_.wg=function SNc(){};var QY=zeb(iCe,'ThresholdStrategy/NullThresholdStrategy',1795);mdb(576,1,{576:1},TNc);_.c=false;_.d=false;var RY=zeb(iCe,'ThresholdStrategy/Postprocessable',576);mdb(1796,809,{},XNc);_.vg=function YNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(SMc(),RMc)){e&&(f=UNc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=UNc(this,c,false))}else{e&&(f=UNc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=UNc(this,c,false))}return f};_.wg=function ZNc(){var a,b,c,d,e;while(this.d.b!=0){e=JD(Xtb(this.d),576);d=VNc(this,e);if(!d.a){continue}a=d.a;c=Odb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!vWb(a)&&a.c.i.c==a.d.i.c){continue}b=WNc(this,e);b||Ixb(this.e,e)}while(this.e.a.c.length!=0){WNc(this,JD(Hxb(this.e),576))}};var SY=zeb(iCe,'ThresholdStrategy/SimpleThresholdStrategy',1796);mdb(635,1,{635:1,188:1,196:1},bOc);_.bg=function dOc(){return aOc(this)};_.og=function cOc(){return aOc(this)};var $Nc;var UY=zeb(jCe,'EdgeRouterFactory',635);mdb(1445,1,XBe,qOc);_.pg=function rOc(a){return oOc(JD(a,37))};_.If=function sOc(a,b){pOc(JD(a,37),b)};var fOc,gOc,hOc,iOc,jOc,kOc,lOc,mOc;var VY=zeb(jCe,'OrthogonalEdgeRouter',1445);mdb(1438,1,XBe,HOc);_.pg=function IOc(a){return COc(JD(a,37))};_.If=function JOc(a,b){EOc(this,JD(a,37),b)};var tOc,uOc,vOc,wOc,xOc,yOc;var XY=zeb(jCe,'PolylineEdgeRouter',1438);mdb(1439,1,xwe,LOc);_.Lb=function MOc(a){return KOc(JD(a,9))};_.Fb=function NOc(a){return this===a};_.Mb=function OOc(a){return KOc(JD(a,9))};var WY=zeb(jCe,'PolylineEdgeRouter/1',1439);mdb(1851,1,oue,TOc);_.Mb=function UOc(a){return JD(a,133).c==(BPc(),zPc)};var YY=zeb(kCe,'HyperEdgeCycleDetector/lambda$0$Type',1851);mdb(1852,1,{},VOc);_.Xe=function WOc(a){return JD(a,133).d};var ZY=zeb(kCe,'HyperEdgeCycleDetector/lambda$1$Type',1852);mdb(1853,1,oue,XOc);_.Mb=function YOc(a){return JD(a,133).c==(BPc(),zPc)};var $Y=zeb(kCe,'HyperEdgeCycleDetector/lambda$2$Type',1853);mdb(1854,1,{},ZOc);_.Xe=function $Oc(a){return JD(a,133).d};var _Y=zeb(kCe,'HyperEdgeCycleDetector/lambda$3$Type',1854);mdb(1855,1,{},_Oc);_.Xe=function aPc(a){return JD(a,133).d};var aZ=zeb(kCe,'HyperEdgeCycleDetector/lambda$4$Type',1855);mdb(1856,1,{},bPc);_.Xe=function cPc(a){return JD(a,133).d};var bZ=zeb(kCe,'HyperEdgeCycleDetector/lambda$5$Type',1856);mdb(116,1,{35:1,116:1},oPc);_.Dd=function pPc(a){return ePc(this,JD(a,116))};_.Fb=function qPc(a){var b;if(RD(a,116)){b=JD(a,116);return this.g==b.g}return false};_.Hb=function rPc(){return this.g};_.Ib=function tPc(){var a,b,c,d;a=new khb('{');d=new Hmb(this.n);while(d.a'+this.b+' ('+cs(this.c)+')'};_.d=0;var dZ=zeb(kCe,'HyperEdgeSegmentDependency',133);mdb(515,23,{3:1,35:1,23:1,515:1},CPc);var zPc,APc;var cZ=Aeb(kCe,'HyperEdgeSegmentDependency/DependencyType',515,MI,EPc,DPc);var FPc;mdb(1857,1,{},TPc);var lZ=zeb(kCe,'HyperEdgeSegmentSplitter',1857);mdb(1858,1,{},WPc);_.a=0;_.b=0;var eZ=zeb(kCe,'HyperEdgeSegmentSplitter/AreaRating',1858);mdb(340,1,{340:1},XPc);_.a=0;_.b=0;_.c=0;var fZ=zeb(kCe,'HyperEdgeSegmentSplitter/FreeArea',340);mdb(1859,1,fwe,YPc);_.Le=function ZPc(a,b){return VPc(JD(a,116),JD(b,116))};_.Fb=function $Pc(a){return this===a};_.Me=function _Pc(){return new Kqb(this)};var gZ=zeb(kCe,'HyperEdgeSegmentSplitter/lambda$0$Type',1859);mdb(1860,1,Rte,aQc);_.Ad=function bQc(a){NPc(this.a,this.d,this.c,this.b,JD(a,116))};_.b=0;var hZ=zeb(kCe,'HyperEdgeSegmentSplitter/lambda$1$Type',1860);mdb(1861,1,{},cQc);_.Kb=function dQc(a){return new gCb(null,new Wvb(JD(a,116).e,16))};var iZ=zeb(kCe,'HyperEdgeSegmentSplitter/lambda$2$Type',1861);mdb(1862,1,{},eQc);_.Kb=function fQc(a){return new gCb(null,new Wvb(JD(a,116).j,16))};var jZ=zeb(kCe,'HyperEdgeSegmentSplitter/lambda$3$Type',1862);mdb(1863,1,{},gQc);_.We=function hQc(a){return Reb(MD(a))};var kZ=zeb(kCe,'HyperEdgeSegmentSplitter/lambda$4$Type',1863);mdb(653,1,{},nQc);_.a=0;_.b=0;_.c=0;var pZ=zeb(kCe,'OrthogonalRoutingGenerator',653);mdb(1668,1,{},rQc);_.Kb=function sQc(a){return new gCb(null,new Wvb(JD(a,116).e,16))};var nZ=zeb(kCe,'OrthogonalRoutingGenerator/lambda$0$Type',1668);mdb(1669,1,{},tQc);_.Kb=function uQc(a){return new gCb(null,new Wvb(JD(a,116).j,16))};var oZ=zeb(kCe,'OrthogonalRoutingGenerator/lambda$1$Type',1669);mdb(661,1,{});var qZ=zeb(lCe,'BaseRoutingDirectionStrategy',661);mdb(1849,661,{},yQc);_.xg=function zQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new Hmb(a.n);j.ajxe){f=k;e=a;d=new Yfd(l,f);Qtb(g.a,d);vQc(this,g,e,d,false);m=a.r;if(m){n=Reb(MD(au(m.e,0)));d=new Yfd(n,f);Qtb(g.a,d);vQc(this,g,e,d,false);f=b+m.o*c;e=m;d=new Yfd(n,f);Qtb(g.a,d);vQc(this,g,e,d,false)}d=new Yfd(p,f);Qtb(g.a,d);vQc(this,g,e,d,false)}}}}};_.yg=function AQc(a){return a.i.n.a+a.n.a+a.a.a};_.zg=function BQc(){return mmd(),jmd};_.Ag=function CQc(){return mmd(),Uld};var rZ=zeb(lCe,'NorthToSouthRoutingStrategy',1849);mdb(1850,661,{},DQc);_.xg=function EQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new Hmb(a.n);j.ajxe){f=k;e=a;d=new Yfd(l,f);Qtb(g.a,d);vQc(this,g,e,d,false);m=a.r;if(m){n=Reb(MD(au(m.e,0)));d=new Yfd(n,f);Qtb(g.a,d);vQc(this,g,e,d,false);f=b-m.o*c;e=m;d=new Yfd(n,f);Qtb(g.a,d);vQc(this,g,e,d,false)}d=new Yfd(p,f);Qtb(g.a,d);vQc(this,g,e,d,false)}}}}};_.yg=function FQc(a){return a.i.n.a+a.n.a+a.a.a};_.zg=function GQc(){return mmd(),Uld};_.Ag=function HQc(){return mmd(),jmd};var sZ=zeb(lCe,'SouthToNorthRoutingStrategy',1850);mdb(1848,661,{},IQc);_.xg=function JQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new Hmb(a.n);j.ajxe){f=k;e=a;d=new Yfd(f,l);Qtb(g.a,d);vQc(this,g,e,d,true);m=a.r;if(m){n=Reb(MD(au(m.e,0)));d=new Yfd(f,n);Qtb(g.a,d);vQc(this,g,e,d,true);f=b+m.o*c;e=m;d=new Yfd(f,n);Qtb(g.a,d);vQc(this,g,e,d,true)}d=new Yfd(f,p);Qtb(g.a,d);vQc(this,g,e,d,true)}}}}};_.yg=function KQc(a){return a.i.n.b+a.n.b+a.a.b};_.zg=function LQc(){return mmd(),Tld};_.Ag=function MQc(){return mmd(),lmd};var tZ=zeb(lCe,'WestToEastRoutingStrategy',1848);mdb(812,1,{},SQc);_.Ib=function TQc(){return Ee(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var vZ=zeb(nCe,'NubSpline',812);mdb(410,1,{410:1},WQc,XQc);var uZ=zeb(nCe,'NubSpline/PolarCP',410);mdb(1440,1,XBe,pRc);_.pg=function rRc(a){return kRc(JD(a,37))};_.If=function sRc(a,b){oRc(this,JD(a,37),b)};var YQc,ZQc,$Qc,_Qc,aRc;var CZ=zeb(nCe,'SplineEdgeRouter',1440);mdb(273,1,{273:1},vRc);_.Ib=function wRc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var wZ=zeb(nCe,'SplineEdgeRouter/Dependency',273);mdb(454,23,{3:1,35:1,23:1,454:1},ARc);var xRc,yRc;var xZ=Aeb(nCe,'SplineEdgeRouter/SideToProcess',454,MI,CRc,BRc);var DRc;mdb(1441,1,oue,FRc);_.Mb=function GRc(a){return bRc(),!JD(a,132).o};var yZ=zeb(nCe,'SplineEdgeRouter/lambda$0$Type',1441);mdb(1442,1,{},HRc);_.Xe=function IRc(a){return bRc(),JD(a,132).v+1};var zZ=zeb(nCe,'SplineEdgeRouter/lambda$1$Type',1442);mdb(1443,1,Rte,JRc);_.Ad=function KRc(a){mRc(this.a,this.b,JD(a,49))};var AZ=zeb(nCe,'SplineEdgeRouter/lambda$2$Type',1443);mdb(1444,1,Rte,LRc);_.Ad=function MRc(a){nRc(this.a,this.b,JD(a,49))};var BZ=zeb(nCe,'SplineEdgeRouter/lambda$3$Type',1444);mdb(132,1,{35:1,132:1},SRc,TRc);_.Dd=function URc(a){return QRc(this,JD(a,132))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var EZ=zeb(nCe,'SplineSegment',132);mdb(457,1,{457:1},VRc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var DZ=zeb(nCe,'SplineSegment/EdgeInformation',457);mdb(1167,1,{},cSc);var GZ=zeb(tCe,Wwe,1167);mdb(1168,1,fwe,eSc);_.Le=function fSc(a,b){return dSc(JD(a,120),JD(b,120))};_.Fb=function gSc(a){return this===a};_.Me=function hSc(){return new Kqb(this)};var FZ=zeb(tCe,Xwe,1168);mdb(1166,1,{},nSc);var HZ=zeb(tCe,'MrTree',1166);mdb(398,23,{3:1,35:1,23:1,398:1,188:1,196:1},uSc);_.bg=function wSc(){return tSc(this)};_.og=function vSc(){return tSc(this)};var oSc,pSc,qSc,rSc;var IZ=Aeb(tCe,'TreeLayoutPhases',398,MI,ySc,xSc);var zSc;mdb(1082,214,Zwe,BSc);_.kf=function CSc(a,b){var c,d,e,f,g,h,i,j;Odb(LD(Pud(a,(DXc(),mXc))))||fEb((c=new gEb((urd(),new Ird(a))),c));g=b.dh(uCe);g.Tg('build tGraph',1);h=(i=new sTc,jNb(i,a),oNb(i,(MWc(),DWc),a),j=new Yrb,kSc(a,i,j),jSc(a,i,j),i);g.Ug();g=b.dh(uCe);g.Tg('Split graph',1);f=bSc(this.a,h);g.Ug();for(e=new Hmb(f);e.a'+wTc(this.c):'e_'+tb(this)};var VZ=zeb(wCe,'TEdge',65);mdb(120,150,{3:1,120:1,105:1,150:1},sTc);_.Ib=function tTc(){var a,b,c,d,e;e=null;for(d=Wtb(this.b,0);d.b!=d.d.c;){c=JD(iub(d),40);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Wtb(this.a,0);b.b!=b.d.c;){a=JD(iub(b),65);e+=(!!a.b&&!!a.c?wTc(a.b)+'->'+wTc(a.c):'e_'+tb(a))+'\n'}return e};var XZ=zeb(wCe,'TGraph',120);mdb(633,494,{3:1,494:1,633:1,105:1,150:1});var _Z=zeb(wCe,'TShape',633);mdb(40,633,{3:1,494:1,40:1,633:1,105:1,150:1},xTc);_.Ib=function yTc(){return wTc(this)};var $Z=zeb(wCe,'TNode',40);mdb(236,1,Wte,zTc);_.Ic=function ATc(a){Efb(this,a)};_.Jc=function BTc(){var a;return a=Wtb(this.a.d,0),new CTc(a)};var ZZ=zeb(wCe,'TNode/2',236);mdb(334,1,Ate,CTc);_.Nb=function DTc(a){ctb(this,a)};_.Pb=function FTc(){return JD(iub(this.a),65).c};_.Ob=function ETc(){return hub(this.a)};_.Qb=function GTc(){kub(this.a)};var YZ=zeb(wCe,'TNode/2/1',334);mdb(1893,1,hye,MTc);_.If=function ZTc(a,b){KTc(this,JD(a,120),b)};var n$=zeb(yCe,'CompactionProcessor',1893);mdb(1894,1,fwe,$Tc);_.Le=function _Tc(a,b){return NTc(this.a,JD(a,40),JD(b,40))};_.Fb=function aUc(a){return this===a};_.Me=function bUc(){return new Kqb(this)};var a$=zeb(yCe,'CompactionProcessor/lambda$0$Type',1894);mdb(1895,1,oue,cUc);_.Mb=function dUc(a){return OTc(this.b,this.a,JD(a,49))};_.a=0;_.b=0;var b$=zeb(yCe,'CompactionProcessor/lambda$1$Type',1895);mdb(1904,1,fwe,eUc);_.Le=function fUc(a,b){return PTc(JD(a,40),JD(b,40))};_.Fb=function gUc(a){return this===a};_.Me=function hUc(){return new Kqb(this)};var c$=zeb(yCe,'CompactionProcessor/lambda$10$Type',1904);mdb(1905,1,fwe,iUc);_.Le=function jUc(a,b){return QTc(JD(a,40),JD(b,40))};_.Fb=function kUc(a){return this===a};_.Me=function lUc(){return new Kqb(this)};var d$=zeb(yCe,'CompactionProcessor/lambda$11$Type',1905);mdb(1906,1,fwe,mUc);_.Le=function nUc(a,b){return RTc(JD(a,40),JD(b,40))};_.Fb=function oUc(a){return this===a};_.Me=function pUc(){return new Kqb(this)};var e$=zeb(yCe,'CompactionProcessor/lambda$12$Type',1906);mdb(1896,1,oue,qUc);_.Mb=function rUc(a){return STc(this.a,JD(a,49))};_.a=0;var f$=zeb(yCe,'CompactionProcessor/lambda$2$Type',1896);mdb(1897,1,oue,sUc);_.Mb=function tUc(a){return TTc(this.a,JD(a,49))};_.a=0;var g$=zeb(yCe,'CompactionProcessor/lambda$3$Type',1897);mdb(1898,1,oue,uUc);_.Mb=function vUc(a){return JD(a,40).c.indexOf(vCe)==-1};var h$=zeb(yCe,'CompactionProcessor/lambda$4$Type',1898);mdb(1899,1,{},wUc);_.Kb=function xUc(a){return UTc(this.a,JD(a,40))};_.a=0;var i$=zeb(yCe,'CompactionProcessor/lambda$5$Type',1899);mdb(Oue,1,{},yUc);_.Kb=function zUc(a){return VTc(this.a,JD(a,40))};_.a=0;var j$=zeb(yCe,'CompactionProcessor/lambda$6$Type',Oue);mdb(1901,1,fwe,AUc);_.Le=function BUc(a,b){return WTc(this.a,JD(a,240),JD(b,240))};_.Fb=function CUc(a){return this===a};_.Me=function DUc(){return new Kqb(this)};var k$=zeb(yCe,'CompactionProcessor/lambda$7$Type',1901);mdb(1902,1,fwe,EUc);_.Le=function FUc(a,b){return XTc(this.a,JD(a,40),JD(b,40))};_.Fb=function GUc(a){return this===a};_.Me=function HUc(){return new Kqb(this)};var l$=zeb(yCe,'CompactionProcessor/lambda$8$Type',1902);mdb(1903,1,fwe,IUc);_.Le=function JUc(a,b){return YTc(JD(a,40),JD(b,40))};_.Fb=function KUc(a){return this===a};_.Me=function LUc(){return new Kqb(this)};var m$=zeb(yCe,'CompactionProcessor/lambda$9$Type',1903);mdb(1891,1,hye,NUc);_.If=function OUc(a,b){MUc(JD(a,120),b)};var o$=zeb(yCe,'DirectionProcessor',1891);mdb(1883,1,hye,RUc);_.If=function TUc(a,b){QUc(this,JD(a,120),b)};var p$=zeb(yCe,'FanProcessor',1883);mdb(1251,1,hye,VUc);_.If=function YUc(a,b){UUc(JD(a,120),b)};var u$=zeb(yCe,'GraphBoundsProcessor',1251);mdb(1252,1,{},ZUc);_.We=function $Uc(a){return JD(a,40).e.a};var q$=zeb(yCe,'GraphBoundsProcessor/lambda$0$Type',1252);mdb(1253,1,{},_Uc);_.We=function aVc(a){return JD(a,40).e.b};var r$=zeb(yCe,'GraphBoundsProcessor/lambda$1$Type',1253);mdb(1254,1,{},bVc);_.We=function cVc(a){return WUc(JD(a,40))};var s$=zeb(yCe,'GraphBoundsProcessor/lambda$2$Type',1254);mdb(1255,1,{},dVc);_.We=function eVc(a){return XUc(JD(a,40))};var t$=zeb(yCe,'GraphBoundsProcessor/lambda$3$Type',1255);mdb(264,23,{3:1,35:1,23:1,264:1,196:1},rVc);_.bg=function sVc(){switch(this.g){case 0:return new ZVc;case 1:return new RUc;case 2:return new JVc;case 3:return new PVc;case 4:return new CVc;case 8:return new yVc;case 5:return new NUc;case 6:return new WVc;case 7:return new MTc;case 9:return new VUc;case 10:return new aWc;default:throw Icb(new hfb(Eye+(this.f!=null?this.f:''+this.g)));}};var fVc,gVc,hVc,iVc,jVc,kVc,lVc,mVc,nVc,oVc,pVc;var v$=Aeb(yCe,Fye,264,MI,uVc,tVc);var vVc;mdb(1890,1,hye,yVc);_.If=function zVc(a,b){xVc(JD(a,120),b)};var w$=zeb(yCe,'LevelCoordinatesProcessor',1890);mdb(1888,1,hye,CVc);_.If=function DVc(a,b){AVc(this,JD(a,120),b)};_.a=0;var y$=zeb(yCe,'LevelHeightProcessor',1888);mdb(1889,1,Wte,EVc);_.Ic=function FVc(a){Efb(this,a)};_.Jc=function GVc(){return Fnb(),Xnb(),Wnb};var x$=zeb(yCe,'LevelHeightProcessor/1',1889);mdb(1884,1,hye,JVc);_.If=function KVc(a,b){HVc(this,JD(a,120),b)};var A$=zeb(yCe,'LevelProcessor',1884);mdb(1885,1,oue,LVc);_.Mb=function MVc(a){return Odb(LD(lNb(JD(a,40),(MWc(),JWc))))};var z$=zeb(yCe,'LevelProcessor/lambda$0$Type',1885);mdb(1886,1,hye,PVc);_.If=function QVc(a,b){NVc(this,JD(a,120),b)};_.a=0;var C$=zeb(yCe,'NeighborsProcessor',1886);mdb(1887,1,Wte,RVc);_.Ic=function SVc(a){Efb(this,a)};_.Jc=function TVc(){return Fnb(),Xnb(),Wnb};var B$=zeb(yCe,'NeighborsProcessor/1',1887);mdb(1892,1,hye,WVc);_.If=function XVc(a,b){UVc(this,JD(a,120),b)};_.a=0;var D$=zeb(yCe,'NodePositionProcessor',1892);mdb(1882,1,hye,ZVc);_.If=function $Vc(a,b){YVc(this,JD(a,120),b)};var E$=zeb(yCe,'RootProcessor',1882);mdb(1907,1,hye,aWc);_.If=function bWc(a,b){_Vc(JD(a,120),b)};var F$=zeb(yCe,'Untreeifyer',1907);mdb(385,23,{3:1,35:1,23:1,385:1},gWc);var cWc,dWc,eWc;var G$=Aeb(CCe,'EdgeRoutingMode',385,MI,iWc,hWc);var jWc;var lWc,mWc,nWc,oWc,pWc,qWc,rWc,sWc,tWc,uWc,vWc,wWc,xWc,yWc,zWc,AWc,BWc,CWc,DWc,EWc,FWc,GWc,HWc,IWc,JWc,KWc,LWc;mdb(846,1,lxe,YWc);_.tf=function ZWc(a){mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,ECe),''),LCe),'Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level'),(Ndb(),false)),(Ued(),Med)),GI),Crb((Ged(),Eed)))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,FCe),''),'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),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,GCe),''),'Tree Level'),'The index for the tree level the node is in'),zfb(0)),Qed),UI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,HCe),''),LCe),'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'),zfb(-1)),Qed),UI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,ICe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),WWc),Oed),K$),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,JCe),''),'Edge Routing Mode'),'Chooses an Edge Routing algorithm.'),QWc),Oed),G$),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,KCe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),TWc),Oed),L$),Crb(Eed))));EXc((new FXc,a))};var NWc,OWc,PWc,QWc,RWc,SWc,TWc,UWc,VWc,WWc;var H$=zeb(CCe,'MrTreeMetaDataProvider',846);mdb(990,1,lxe,FXc);_.tf=function GXc(a){EXc(a)};var $Wc,_Wc,aXc,bXc,cXc,dXc,eXc,fXc,gXc,hXc,iXc,jXc,kXc,lXc,mXc,nXc,oXc,pXc,qXc,rXc,sXc,tXc,uXc,vXc,wXc,xXc,yXc,zXc,AXc,BXc,CXc;var J$=zeb(CCe,'MrTreeOptions',990);mdb(991,1,{},HXc);_.uf=function IXc(){var a;return a=new BSc,a};_.vf=function JXc(a){};var I$=zeb(CCe,'MrTreeOptions/MrtreeFactory',991);mdb(353,23,{3:1,35:1,23:1,353:1},PXc);var KXc,LXc,MXc,NXc;var K$=Aeb(CCe,'OrderWeighting',353,MI,RXc,QXc);var SXc;mdb(425,23,{3:1,35:1,23:1,425:1},XXc);var UXc,VXc;var L$=Aeb(CCe,'TreeifyingOrder',425,MI,ZXc,YXc);var $Xc;mdb(1446,1,XBe,hYc);_.pg=function iYc(a){return JD(a,120),aYc};_.If=function jYc(a,b){gYc(this,JD(a,120),b)};var aYc;var M$=zeb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1446);mdb(1447,1,XBe,pYc);_.pg=function qYc(a){return JD(a,120),kYc};_.If=function uYc(a,b){oYc(this,JD(a,120),b)};var kYc;var U$=zeb(PCe,'NodeOrderer',1447);mdb(1454,1,{},wYc);_.rd=function xYc(a){return vYc(a)};var N$=zeb(PCe,'NodeOrderer/0methodref$lambda$6$Type',1454);mdb(1448,1,oue,yYc);_.Mb=function zYc(a){return lYc(),Odb(LD(lNb(JD(a,40),(MWc(),JWc))))};var O$=zeb(PCe,'NodeOrderer/lambda$0$Type',1448);mdb(1449,1,oue,AYc);_.Mb=function BYc(a){return lYc(),JD(lNb(JD(a,40),(DXc(),qXc)),15).a<0};var P$=zeb(PCe,'NodeOrderer/lambda$1$Type',1449);mdb(1450,1,oue,CYc);_.Mb=function DYc(a){return rYc(this.a,JD(a,40))};var Q$=zeb(PCe,'NodeOrderer/lambda$2$Type',1450);mdb(1451,1,oue,EYc);_.Mb=function FYc(a){return sYc(this.a,JD(a,40))};var R$=zeb(PCe,'NodeOrderer/lambda$3$Type',1451);mdb(1452,1,fwe,GYc);_.Le=function HYc(a,b){return tYc(JD(a,40),JD(b,40))};_.Fb=function IYc(a){return this===a};_.Me=function JYc(){return new Kqb(this)};var S$=zeb(PCe,'NodeOrderer/lambda$4$Type',1452);mdb(1453,1,oue,KYc);_.Mb=function LYc(a){return lYc(),JD(lNb(JD(a,40),(MWc(),rWc)),15).a!=0};var T$=zeb(PCe,'NodeOrderer/lambda$5$Type',1453);mdb(1455,1,XBe,TYc);_.pg=function UYc(a){return JD(a,120),MYc};_.If=function VYc(a,b){RYc(this,JD(a,120),b)};_.b=0;var MYc;var V$=zeb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1455);mdb(1456,1,XBe,dZc);_.pg=function eZc(a){return JD(a,120),WYc};_.If=function sZc(a,b){cZc(JD(a,120),b)};var WYc;var p_=zeb(QCe,'EdgeRouter',1456);mdb(1458,1,fwe,tZc);_.Le=function uZc(a,b){return ofb(JD(a,15).a,JD(b,15).a)};_.Fb=function vZc(a){return this===a};_.Me=function wZc(){return new Kqb(this)};var W$=zeb(QCe,'EdgeRouter/0methodref$compare$Type',1458);mdb(1463,1,{},xZc);_.We=function yZc(a){return Reb(MD(a))};var X$=zeb(QCe,'EdgeRouter/1methodref$doubleValue$Type',1463);mdb(1465,1,fwe,zZc);_.Le=function AZc(a,b){return Xeb(Reb(MD(a)),Reb(MD(b)))};_.Fb=function BZc(a){return this===a};_.Me=function CZc(){return new Kqb(this)};var Y$=zeb(QCe,'EdgeRouter/2methodref$compare$Type',1465);mdb(1467,1,fwe,DZc);_.Le=function EZc(a,b){return Xeb(Reb(MD(a)),Reb(MD(b)))};_.Fb=function FZc(a){return this===a};_.Me=function GZc(){return new Kqb(this)};var Z$=zeb(QCe,'EdgeRouter/3methodref$compare$Type',1467);mdb(1469,1,{},HZc);_.We=function IZc(a){return Reb(MD(a))};var $$=zeb(QCe,'EdgeRouter/4methodref$doubleValue$Type',1469);mdb(1471,1,fwe,JZc);_.Le=function KZc(a,b){return Xeb(Reb(MD(a)),Reb(MD(b)))};_.Fb=function LZc(a){return this===a};_.Me=function MZc(){return new Kqb(this)};var _$=zeb(QCe,'EdgeRouter/5methodref$compare$Type',1471);mdb(1473,1,fwe,NZc);_.Le=function OZc(a,b){return Xeb(Reb(MD(a)),Reb(MD(b)))};_.Fb=function PZc(a){return this===a};_.Me=function QZc(){return new Kqb(this)};var a_=zeb(QCe,'EdgeRouter/6methodref$compare$Type',1473);mdb(1457,1,{},RZc);_.Kb=function SZc(a){return XYc(),JD(lNb(JD(a,40),(DXc(),BXc)),15)};var b_=zeb(QCe,'EdgeRouter/lambda$0$Type',1457);mdb(1468,1,{},TZc);_.Kb=function UZc(a){return fZc(JD(a,40))};var c_=zeb(QCe,'EdgeRouter/lambda$11$Type',1468);mdb(1470,1,{},VZc);_.Kb=function WZc(a){return gZc(this.b,this.a,JD(a,40))};_.a=0;_.b=0;var d_=zeb(QCe,'EdgeRouter/lambda$13$Type',1470);mdb(1472,1,{},XZc);_.Kb=function YZc(a){return hZc(this.b,this.a,JD(a,40))};_.a=0;_.b=0;var e_=zeb(QCe,'EdgeRouter/lambda$15$Type',1472);mdb(1474,1,fwe,ZZc);_.Le=function $Zc(a,b){return iZc(JD(a,65),JD(b,65))};_.Fb=function _Zc(a){return this===a};_.Me=function a$c(){return new Kqb(this)};var f_=zeb(QCe,'EdgeRouter/lambda$17$Type',1474);mdb(1475,1,fwe,b$c);_.Le=function c$c(a,b){return jZc(JD(a,65),JD(b,65))};_.Fb=function d$c(a){return this===a};_.Me=function e$c(){return new Kqb(this)};var g_=zeb(QCe,'EdgeRouter/lambda$18$Type',1475);mdb(1476,1,fwe,f$c);_.Le=function g$c(a,b){return kZc(JD(a,65),JD(b,65))};_.Fb=function h$c(a){return this===a};_.Me=function i$c(){return new Kqb(this)};var h_=zeb(QCe,'EdgeRouter/lambda$19$Type',1476);mdb(1459,1,oue,j$c);_.Mb=function k$c(a){return lZc(this.a,JD(a,40))};_.a=0;var i_=zeb(QCe,'EdgeRouter/lambda$2$Type',1459);mdb(1477,1,fwe,l$c);_.Le=function m$c(a,b){return mZc(JD(a,65),JD(b,65))};_.Fb=function n$c(a){return this===a};_.Me=function o$c(){return new Kqb(this)};var j_=zeb(QCe,'EdgeRouter/lambda$20$Type',1477);mdb(1460,1,fwe,p$c);_.Le=function q$c(a,b){return nZc(JD(a,40),JD(b,40))};_.Fb=function r$c(a){return this===a};_.Me=function s$c(){return new Kqb(this)};var k_=zeb(QCe,'EdgeRouter/lambda$3$Type',1460);mdb(1461,1,fwe,t$c);_.Le=function u$c(a,b){return oZc(JD(a,40),JD(b,40))};_.Fb=function v$c(a){return this===a};_.Me=function w$c(){return new Kqb(this)};var l_=zeb(QCe,'EdgeRouter/lambda$4$Type',1461);mdb(1462,1,{},x$c);_.Kb=function y$c(a){return pZc(JD(a,40))};var m_=zeb(QCe,'EdgeRouter/lambda$5$Type',1462);mdb(1464,1,{},z$c);_.Kb=function A$c(a){return qZc(this.b,this.a,JD(a,40))};_.a=0;_.b=0;var n_=zeb(QCe,'EdgeRouter/lambda$7$Type',1464);mdb(1466,1,{},B$c);_.Kb=function C$c(a){return rZc(this.b,this.a,JD(a,40))};_.a=0;_.b=0;var o_=zeb(QCe,'EdgeRouter/lambda$9$Type',1466);mdb(662,1,{662:1},E$c);_.e=0;_.f=false;_.g=false;var s_=zeb(QCe,'MultiLevelEdgeNodeNodeGap',662);mdb(1864,1,fwe,H$c);_.Le=function I$c(a,b){return F$c(JD(a,240),JD(b,240))};_.Fb=function J$c(a){return this===a};_.Me=function K$c(){return new Kqb(this)};var q_=zeb(QCe,'MultiLevelEdgeNodeNodeGap/lambda$0$Type',1864);mdb(1865,1,fwe,L$c);_.Le=function M$c(a,b){return G$c(JD(a,240),JD(b,240))};_.Fb=function N$c(a){return this===a};_.Me=function O$c(){return new Kqb(this)};var r_=zeb(QCe,'MultiLevelEdgeNodeNodeGap/lambda$1$Type',1865);var P$c;mdb(487,23,{3:1,35:1,23:1,487:1,188:1,196:1},V$c);_.bg=function X$c(){return U$c(this)};_.og=function W$c(){return U$c(this)};var R$c,S$c;var t_=Aeb(RCe,'RadialLayoutPhases',487,MI,Z$c,Y$c);var $$c;mdb(1083,214,Zwe,b_c);_.kf=function c_c(a,b){var c,d,e,f,g,h;c=a_c(this,a);b.Tg('Radial layout',c.c.length);Odb(LD(Pud(a,(u1c(),h1c))))||fEb((d=new gEb((urd(),new Ird(a))),d));h=e_c(a);Rud(a,(Q$c(),P$c),h);if(!h){throw Icb(new hfb('The given graph is not a tree!'))}e=Reb(MD(Pud(a,m1c)));e==0&&(e=d_c(a));Rud(a,m1c,e);for(g=new Hmb(a_c(this,a));g.a=3){v=JD(SFd(t,0),26);w=JD(SFd(t,1),26);f=0;while(f+2=v.f+w.f+k||w.f>=u.f+v.f+k){B=true;break}else{++f}}}else{B=true}if(!B){m=t.i;for(h=new fKd(t);h.e!=h.i.gc();){g=JD(dKd(h),26);Rud(g,(gjd(),Aid),zfb(m));--m}pod(a,new _nd);b.Ug();return}c=(ybd(this.a),Bbd(this.a,(B2c(),y2c),JD(Pud(a,B4c),188)),Bbd(this.a,z2c,JD(Pud(a,s4c),188)),Bbd(this.a,A2c,JD(Pud(a,y4c),188)),vbd(this.a,(D=new acd,Xbd(D,y2c,(W2c(),U2c)),Xbd(D,z2c,T2c),Odb(LD(Pud(a,p4c)))&&Xbd(D,y2c,V2c),Odb(LD(Pud(a,g4c)))&&Xbd(D,y2c,S2c),D)),wbd(this.a,a));j=1/c.c.length;A=0;for(o=new Hmb(c);o.a0&&agd((RDb(c-1,b.length),b.charCodeAt(c-1)),qye)){--c}if(e>=c){throw Icb(new hfb('The given string does not contain any numbers.'))}f=Cgb((QDb(e,c,b.length),b.substr(e,c-e)),',|;|\r|\n');if(f.length!=2){throw Icb(new hfb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Udb(Kgb(f[0]));this.b=Udb(Kgb(f[1]))}catch(a){a=Hcb(a);if(RD(a,131)){d=a;throw Icb(new hfb(rye+d))}else throw Icb(a)}};_.Ib=function dgd(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var o2=zeb(sye,'KVector',8);mdb(78,66,{3:1,4:1,20:1,31:1,56:1,18:1,66:1,16:1,78:1,414:1},jgd,kgd,lgd);_.Nc=function ogd(){return igd(this)};_.ag=function mgd(b){var c,d,e,f,g,h;e=Cgb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');_tb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Udb(e[d])):(h=Udb(e[d]));g>0&&g%2!=0&&Qtb(this,new Yfd(f,h));++g}++d}}catch(a){a=Hcb(a);if(RD(a,131)){c=a;throw Icb(new hfb('The given string does not match the expected format for vectors.'+c))}else throw Icb(a)}};_.Ib=function pgd(){var a,b,c;a=new khb('(');b=Wtb(this,0);while(b.b!=b.d.c){c=JD(iub(b),8);ehb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var n2=zeb(sye,'KVectorChain',78);mdb(256,23,{3:1,35:1,23:1,256:1},xgd);var qgd,rgd,sgd,tgd,ugd,vgd;var q2=Aeb(xEe,'Alignment',256,MI,zgd,ygd);var Agd;mdb(975,1,lxe,Qgd);_.tf=function Rgd(a){Pgd(a)};var Cgd,Dgd,Egd,Fgd,Ggd,Hgd,Igd,Jgd,Kgd,Lgd,Mgd,Ngd;var s2=zeb(xEe,'BoxLayouterOptions',975);mdb(976,1,{},Sgd);_.uf=function Tgd(){var a;return a=new wod,a};_.vf=function Ugd(a){};var r2=zeb(xEe,'BoxLayouterOptions/BoxFactory',976);mdb(299,23,{3:1,35:1,23:1,299:1},ahd);var Vgd,Wgd,Xgd,Ygd,Zgd,$gd;var t2=Aeb(xEe,'ContentAlignment',299,MI,chd,bhd);var dhd;mdb(689,1,lxe,hjd);_.tf=function ijd(a){mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,CEe),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(Ued(),Sed)),hJ),Crb((Ged(),Eed)))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,DEe),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Red),G1),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,tBe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),hhd),Oed),q2),Crb(Ded))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,sxe),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,EEe),''),'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."),Red),n2),Crb(Bed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,FBe),''),'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.'),qhd),Ped),t2),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,sBe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Ndb(),false)),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,wBe),''),'Direction'),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),thd),Oed),v2),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,PAe),''),'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.'),yhd),Oed),y2),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,AEe),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,KAe),''),'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`."),Dhd),Oed),C2),Drb(Eed,WC(OC(g2,1),kue,160,0,[Ded])))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,vxe),''),'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."),did),Red),l2),Drb(Eed,WC(OC(g2,1),kue,160,0,[Ded])))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,wxe),''),'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.'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,SBe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,zxe),''),'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."),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,xxe),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),rid),Oed),H2),Crb(Ded))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,PBe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Red),o2),Drb(Ded,WC(OC(g2,1),kue,160,0,[Fed,Ced])))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,pxe),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),Qed),UI),Drb(Ded,WC(OC(g2,1),kue,160,0,[Bed])))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,txe),''),'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).'),Qed),UI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,uxe),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,GBe),''),'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.'),Ohd),Red),n2),Crb(Bed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,KBe),''),'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.'),false),Med),GI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,LBe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),Med),GI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,FEe),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),Red),j2),Drb(Eed,WC(OC(g2,1),kue,160,0,[Ced])))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,GEe),''),'Softwrapping Fuzziness'),'Determines the amount of fuzziness to be used when performing softwrapping on labels. The value expresses the percent of overhang that is permitted for each line. If the next line would take up less space than this threshold, it is appended to the current line instead of being placed in a new line.'),0),Ned),LI),Crb(Ced))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,QBe),''),'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."),Qhd),Red),k2),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,qBe),''),'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."),false),Med),GI),Drb(Ded,WC(OC(g2,1),kue,160,0,[Bed,Fed,Ced])))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,HEe),''),'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),Ned),LI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,IEe),''),'Child Area Width'),'The width of the area occupied by the laid out children of a node.'),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,JEe),''),'Child Area Height'),'The height of the area occupied by the laid out children of a node.'),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Fxe),''),mEe),"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'"),false),Med),GI),Crb(Eed))));hdd(a,Fxe,Jxe,null);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,KEe),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,LEe),''),'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'."),zfb(100)),Qed),UI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,MEe),''),'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.'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,NEe),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),zfb(4000)),Qed),UI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,OEe),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),zfb(400)),Qed),UI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,PEe),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,QEe),''),'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.'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,REe),''),'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.'),true),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,SEe),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,BEe),'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.'),lhd),Oed),Z2),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,TEe),'json'),'Shape Coords'),'For layouts transferred into JSON graphs, specify the coordinate system to be used for nodes, ports, and labels of nodes and ports.'),Mhd),Oed),M2),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,UEe),'json'),'Edge Coords'),'For layouts transferred into JSON graphs, specify the coordinate system to be used for edge route points and edge labels.'),Khd),Oed),w2),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,dBe),QAe),'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),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,eBe),QAe),'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),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,fBe),QAe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,gBe),QAe),'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),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,rxe),QAe),'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),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,hBe),QAe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,iBe),QAe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,lBe),QAe),'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),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,jBe),QAe),'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),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,kBe),QAe),'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),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,qxe),QAe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,mBe),QAe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),Ned),LI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,nBe),QAe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),Ned),LI),Drb(Eed,WC(OC(g2,1),kue,160,0,[Ded])))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,oBe),QAe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Red),t3),Drb(Ded,WC(OC(g2,1),kue,160,0,[Bed,Fed,Ced])))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,RBe),QAe),'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.'),Tid),Red),k2),Crb(Eed))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,OBe),aFe),'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).'),Qed),UI),Drb(Eed,WC(OC(g2,1),kue,160,0,[Ded])))));hdd(a,OBe,NBe,hid);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,NBe),aFe),'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.'),fid),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,xBe),bFe),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),Shd),Red),l2),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Dxe),bFe),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),Uhd),Ped),F2),Drb(Ded,WC(OC(g2,1),kue,160,0,[Ced])))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,ABe),cFe),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),jid),Oed),G2),Crb(Ded))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,BBe),cFe),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),Oed),G2),Crb(Ded))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,CBe),cFe),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),Oed),G2),Crb(Ded))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,DBe),cFe),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),Oed),G2),Crb(Ded))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,EBe),cFe),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),Oed),G2),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Cxe),dFe),'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."),Whd),Ped),N2),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Bxe),dFe),'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.'),_hd),Ped),O2),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Vxe),dFe),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),Zhd),Red),o2),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Axe),dFe),'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."),false),Med),GI),Crb(Eed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,IBe),_Ae),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),whd),Oed),x2),Crb(Ced))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,yxe),_Ae),'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."),false),Med),GI),Crb(Ced))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,VEe),'font'),'Font Name'),'Font name used for a label.'),Sed),hJ),Crb(Ced))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,WEe),'font'),'Font Size'),'Font size used for a label.'),Qed),UI),Crb(Ced))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,MBe),eFe),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Red),o2),Crb(Fed))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,JBe),eFe),'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."),Qed),UI),Crb(Fed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,rBe),eFe),'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."),yid),Oed),J2),Crb(Fed))));mdd(a,new ied(yed(xed(zed(sed(wed(ted(ued(new Aed,pBe),eFe),'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."),Ned),LI),Crb(Fed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Exe),fFe),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),vid),Ped),I2),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,yBe),fFe),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),Med),GI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,zBe),fFe),'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.'),true),Med),GI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,XEe),gFe),'Number of size categories'),'Defines the number of categories to use for the FIXED_INTEGER_RATIO_BOXES size approximator.'),zfb(3)),Qed),UI),Crb(Eed))));hdd(a,XEe,ZEe,ejd);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,YEe),gFe),'Weight of a node containing children for determining the graph size'),'When determining the graph size for the size categorisation, this value determines how many times a node containing children is weighted more than a simple node. For example setting this value to four would result in a graph containing a simple node and a hierarchical node to be counted as having a size of five.'),zfb(4)),Qed),UI),Crb(Eed))));hdd(a,YEe,XEe,null);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Gxe),gFe),'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),Ned),LI),Crb(Eed))));hdd(a,Gxe,Jxe,ajd);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,ZEe),gFe),'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),Red),D2),Crb(Ded))));hdd(a,ZEe,Jxe,cjd);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Hxe),gFe),'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),Ned),LI),Drb(Eed,WC(OC(g2,1),kue,160,0,[Ded])))));hdd(a,Hxe,Jxe,null);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Ixe),gFe),'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),Ned),LI),Drb(Eed,WC(OC(g2,1),kue,160,0,[Ded])))));hdd(a,Ixe,Jxe,null);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,Jxe),gFe),'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),Oed),P2),Crb(Ded))));hdd(a,Jxe,Axe,null);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,$Ee),gFe),'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),Ned),LI),Crb(Eed))));hdd(a,$Ee,Jxe,$id);mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,uBe),hFe),'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."),false),Med),GI),Crb(Ded))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,vBe),hFe),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),Med),GI),Crb(Bed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,HBe),'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),Ned),LI),Crb(Bed))));mdd(a,new ied(yed(xed(zed(red(sed(wed(ted(ued(new Aed,_Ee),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),Ahd),Oed),z2),Crb(Bed))));ldd(a,new Ocd(Vcd(Xcd(Wcd(new Ycd,sve),'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.')));ldd(a,new Ocd(Vcd(Xcd(Wcd(new Ycd,'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.')));ldd(a,new Ocd(Vcd(Xcd(Wcd(new Ycd,oxe),'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.')));ldd(a,new Ocd(Vcd(Xcd(Wcd(new Ycd,'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.')));ldd(a,new Ocd(Vcd(Xcd(Wcd(new Ycd,NCe),'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.')));ldd(a,new Ocd(Vcd(Xcd(Wcd(new Ycd,'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.')));ldd(a,new Ocd(Vcd(Xcd(Wcd(new Ycd,pDe),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));skd((new tkd,a));Pgd((new Qgd,a));Cmd((new Dmd,a))};var fhd,ghd,hhd,ihd,jhd,khd,lhd,mhd,nhd,ohd,phd,qhd,rhd,shd,thd,uhd,vhd,whd,xhd,yhd,zhd,Ahd,Bhd,Chd,Dhd,Ehd,Fhd,Ghd,Hhd,Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd,Thd,Uhd,Vhd,Whd,Xhd,Yhd,Zhd,$hd,_hd,aid,bid,cid,did,eid,fid,gid,hid,iid,jid,kid,lid,mid,nid,oid,pid,qid,rid,sid,tid,uid,vid,wid,xid,yid,zid,Aid,Bid,Cid,Did,Eid,Fid,Gid,Hid,Iid,Jid,Kid,Lid,Mid,Nid,Oid,Pid,Qid,Rid,Sid,Tid,Uid,Vid,Wid,Xid,Yid,Zid,$id,_id,ajd,bjd,cjd,djd,ejd,fjd;var u2=zeb(xEe,'CoreOptions',689);mdb(86,23,{3:1,35:1,23:1,86:1},sjd);var jjd,kjd,ljd,mjd,njd;var v2=Aeb(xEe,'Direction',86,MI,ujd,tjd);var vjd;mdb(278,23,{3:1,35:1,23:1,278:1},Cjd);var xjd,yjd,zjd,Ajd;var w2=Aeb(xEe,'EdgeCoords',278,MI,Ejd,Djd);var Fjd;mdb(279,23,{3:1,35:1,23:1,279:1},Ljd);var Hjd,Ijd,Jjd;var x2=Aeb(xEe,'EdgeLabelPlacement',279,MI,Njd,Mjd);var Ojd;mdb(222,23,{3:1,35:1,23:1,222:1},Vjd);var Qjd,Rjd,Sjd,Tjd;var y2=Aeb(xEe,'EdgeRouting',222,MI,Xjd,Wjd);var Yjd;mdb(327,23,{3:1,35:1,23:1,327:1},fkd);var $jd,_jd,akd,bkd,ckd,dkd;var z2=Aeb(xEe,'EdgeType',327,MI,hkd,gkd);var ikd;mdb(973,1,lxe,tkd);_.tf=function ukd(a){skd(a)};var kkd,lkd,mkd,nkd,okd,pkd,qkd;var B2=zeb(xEe,'FixedLayouterOptions',973);mdb(974,1,{},vkd);_.uf=function wkd(){var a;return a=new oqd,a};_.vf=function xkd(a){};var A2=zeb(xEe,'FixedLayouterOptions/FixedFactory',974);mdb(347,23,{3:1,35:1,23:1,347:1},Ckd);var ykd,zkd,Akd;var C2=Aeb(xEe,'HierarchyHandling',347,MI,Ekd,Dkd);var Fkd;var D2=Beb(xEe,'ITopdownSizeApproximator');mdb(292,23,{3:1,35:1,23:1,292:1},Nkd);var Hkd,Ikd,Jkd,Kkd;var E2=Aeb(xEe,'LabelSide',292,MI,Pkd,Okd);var Qkd;mdb(96,23,{3:1,35:1,23:1,96:1},ald);var Skd,Tkd,Ukd,Vkd,Wkd,Xkd,Ykd,Zkd,$kd;var F2=Aeb(xEe,'NodeLabelPlacement',96,MI,dld,cld);var eld;mdb(257,23,{3:1,35:1,23:1,257:1},mld);var gld,hld,ild,jld,kld;var G2=Aeb(xEe,'PortAlignment',257,MI,old,nld);var pld;mdb(102,23,{3:1,35:1,23:1,102:1},Ald);var rld,sld,tld,uld,vld,wld;var H2=Aeb(xEe,'PortConstraints',102,MI,Cld,Bld);var Dld;mdb(280,23,{3:1,35:1,23:1,280:1},Mld);var Fld,Gld,Hld,Ild,Jld,Kld;var I2=Aeb(xEe,'PortLabelPlacement',280,MI,Qld,Pld);var Rld;mdb(64,23,{3:1,35:1,23:1,64:1},qmd);var Tld,Uld,Vld,Wld,Xld,Yld,Zld,$ld,_ld,amd,bmd,cmd,dmd,emd,fmd,gmd,hmd,imd,jmd,kmd,lmd;var J2=Aeb(xEe,'PortSide',64,MI,tmd,smd);var umd;mdb(977,1,lxe,Dmd);_.tf=function Emd(a){Cmd(a)};var wmd,xmd,ymd,zmd,Amd;var L2=zeb(xEe,'RandomLayouterOptions',977);mdb(978,1,{},Fmd);_.uf=function Gmd(){var a;return a=new nrd,a};_.vf=function Hmd(a){};var K2=zeb(xEe,'RandomLayouterOptions/RandomFactory',978);mdb(300,23,{3:1,35:1,23:1,300:1},Mmd);var Imd,Jmd,Kmd;var M2=Aeb(xEe,'ShapeCoords',300,MI,Omd,Nmd);var Pmd;mdb(380,23,{3:1,35:1,23:1,380:1},Wmd);var Rmd,Smd,Tmd,Umd;var N2=Aeb(xEe,'SizeConstraint',380,MI,Ymd,Xmd);var Zmd;mdb(266,23,{3:1,35:1,23:1,266:1},jnd);var _md,and,bnd,cnd,dnd,end,fnd,gnd,hnd;var O2=Aeb(xEe,'SizeOptions',266,MI,lnd,knd);var mnd;mdb(281,23,{3:1,35:1,23:1,281:1},snd);var ond,pnd,qnd;var P2=Aeb(xEe,'TopdownNodeTypes',281,MI,und,tnd);var vnd;mdb(288,23,lFe);var xnd,ynd,znd,And;var U2=Aeb(xEe,'TopdownSizeApproximator',288,MI,End,Dnd);mdb(969,288,lFe,Gnd);_.Sg=function Hnd(a){return Fnd(a)};var Q2=Aeb(xEe,'TopdownSizeApproximator/1',969,U2,null,null);mdb(970,288,lFe,Ind);_.Sg=function Jnd(b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;c=JD(Pud(b,(gjd(),Cid)),144);A=(ksd(),o=new Hzd,o);Iud(A,b);B=new Yrb;for(g=new fKd((!b.a&&(b.a=new A3d(Q3,b,10,11)),b.a));g.e!=g.i.gc();){e=JD(dKd(g),26);t=(n=new Hzd,n);Fzd(t,A);Iud(t,e);D=Fnd(e);Ivd(t,$wnd.Math.max(e.g,D.a),$wnd.Math.max(e.f,D.b));wsb(B.f,e,t)}for(f=new fKd((!b.a&&(b.a=new A3d(Q3,b,10,11)),b.a));f.e!=f.i.gc();){e=JD(dKd(f),26);for(l=new fKd((!e.e&&(e.e=new Wge(N3,e,7,4)),e.e));l.e!=l.i.gc();){k=JD(dKd(l),85);v=JD(Wd(vsb(B.f,e)),26);w=JD(bjb(B,SFd((!k.c&&(k.c=new Wge(L3,k,5,8)),k.c),0)),26);u=(m=new ywd,m);YEd((!u.b&&(u.b=new Wge(L3,u,4,7)),u.b),v);YEd((!u.c&&(u.c=new Wge(L3,u,5,8)),u.c),w);wwd(u,Czd(v));Iud(u,k)}}q=JD(yqd(c.f),214);try{q.kf(A,new Mqd);zqd(c.f,q)}catch(a){a=Hcb(a);if(RD(a,101)){p=a;throw Icb(p)}else throw Icb(a)}Qud(A,nhd)||Qud(A,mhd)||Cpd(A);j=Reb(MD(Pud(A,nhd)));i=Reb(MD(Pud(A,mhd)));h=j/i;d=Reb(MD(Pud(A,Wid)))*$wnd.Math.sqrt((!A.a&&(A.a=new A3d(Q3,A,10,11)),A.a).i);C=JD(Pud(A,cid),104);s=C.b+C.c+1;r=C.d+C.a+1;return new Yfd($wnd.Math.max(s,d),$wnd.Math.max(r,d/h))};var R2=Aeb(xEe,'TopdownSizeApproximator/2',970,U2,null,null);mdb(971,288,lFe,Knd);_.Sg=function Lnd(a){var b,c,d,e,f,g;c=Reb(MD(Pud(a,(gjd(),Wid))));b=c/Reb(MD(Pud(a,Vid)));d=Rnd(a);f=JD(Pud(a,cid),104);e=Reb(MD(mEd(Qid)));!!Czd(a)&&(e=Reb(MD(Pud(Czd(a),Qid))));g=Qfd(new Yfd(c,b),d);return Gfd(g,new Yfd(-(f.b+f.c)-e,-(f.d+f.a)-e))};var S2=Aeb(xEe,'TopdownSizeApproximator/3',971,U2,null,null);mdb(972,288,lFe,Mnd);_.Sg=function Nnd(b){var c,d,e,f,g,h,i,j,k,l;for(h=new fKd((!b.a&&(b.a=new A3d(Q3,b,10,11)),b.a));h.e!=h.i.gc();){g=JD(dKd(h),26);if(Pud(g,(gjd(),bjd))!=null&&(!g.a&&(g.a=new A3d(Q3,g,10,11)),!!g.a)&&(!g.a&&(g.a=new A3d(Q3,g,10,11)),g.a).i>0){d=JD(Pud(g,bjd),521);l=d.Sg(g);k=JD(Pud(g,cid),104);Ivd(g,$wnd.Math.max(g.g,l.a+k.b+k.c),$wnd.Math.max(g.f,l.b+k.d+k.a))}else{(!g.a&&(g.a=new A3d(Q3,g,10,11)),g.a).i!=0&&Ivd(g,Reb(MD(Pud(g,Wid))),Reb(MD(Pud(g,Wid)))/Reb(MD(Pud(g,Vid))))}}c=JD(Pud(b,(gjd(),Cid)),144);j=JD(yqd(c.f),214);try{j.kf(b,new Mqd);zqd(c.f,j)}catch(a){a=Hcb(a);if(RD(a,101)){i=a;throw Icb(i)}else throw Icb(a)}Rud(b,fhd,jFe);Lcd(b);Cpd(b);f=Reb(MD(Pud(b,nhd)));e=Reb(MD(Pud(b,mhd)));return new Yfd(f,e)};var T2=Aeb(xEe,'TopdownSizeApproximator/4',972,U2,null,null);var Ond;mdb(345,1,{852:1},_nd);_.Tg=function aod(a,b){return Snd(this,a,b)};_.Ug=function bod(){Und(this)};_.Vg=function cod(){return this.q};_.Wg=function dod(){return !this.f?null:Onb(this.f)};_.Xg=function eod(){return Onb(this.a)};_.Yg=function fod(){return this.p};_.Zg=function god(){return false};_.$g=function hod(){return this.n};_._g=function iod(){return this.p!=null&&!this.b};_.ah=function jod(a){var b;if(this.n){b=a;Ylb(this.f,b)}};_.bh=function kod(a,b){var c,d;this.n&&!!a&&Wnd(this,(c=new Xhe,d=Phe(c,a),Whe(c),d),(Gqd(),Dqd))};_.dh=function lod(a){var b;if(this.b){return null}else{b=Tnd(this,this.g);Qtb(this.a,b);b.i=this;this.d=a;return b}};_.eh=function mod(a){a>0&&!this.b&&Vnd(this,a)};_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var W2=zeb(TBe,'BasicProgressMonitor',345);mdb(706,214,Zwe,wod);_.kf=function Aod(a,b){pod(a,b)};var b3=zeb(TBe,'BoxLayoutProvider',706);mdb(965,1,fwe,Cod);_.Le=function Dod(a,b){return Bod(this,JD(a,26),JD(b,26))};_.Fb=function Eod(a){return this===a};_.Me=function Fod(){return new Kqb(this)};_.a=false;var X2=zeb(TBe,'BoxLayoutProvider/1',965);mdb(167,1,{167:1},Mod,Nod);_.Ib=function Ood(){return this.c?Gzd(this.c):Ee(this.b)};var Y2=zeb(TBe,'BoxLayoutProvider/Group',167);mdb(326,23,{3:1,35:1,23:1,326:1},Uod);var Pod,Qod,Rod,Sod;var Z2=Aeb(TBe,'BoxLayoutProvider/PackingMode',326,MI,Wod,Vod);var Xod;mdb(966,1,fwe,Zod);_.Le=function $od(a,b){return xod(JD(a,167),JD(b,167))};_.Fb=function _od(a){return this===a};_.Me=function apd(){return new Kqb(this)};var $2=zeb(TBe,'BoxLayoutProvider/lambda$0$Type',966);mdb(967,1,fwe,bpd);_.Le=function cpd(a,b){return yod(JD(a,167),JD(b,167))};_.Fb=function dpd(a){return this===a};_.Me=function epd(){return new Kqb(this)};var _2=zeb(TBe,'BoxLayoutProvider/lambda$1$Type',967);mdb(968,1,fwe,fpd);_.Le=function gpd(a,b){return zod(JD(a,167),JD(b,167))};_.Fb=function hpd(a){return this===a};_.Me=function ipd(){return new Kqb(this)};var a3=zeb(TBe,'BoxLayoutProvider/lambda$2$Type',968);mdb(1338,1,{829:1},jpd);_.Lg=function kpd(a,b){return gyc(),!RD(b,174)||Yad((Pad(),Oad,JD(a,174)),b)};var c3=zeb(TBe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1338);mdb(1339,1,Rte,lpd);_.Ad=function mpd(a){jyc(this.a,JD(a,147))};var d3=zeb(TBe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1339);mdb(1340,1,Rte,npd);_.Ad=function opd(a){JD(a,105);gyc()};var e3=zeb(TBe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1340);mdb(1344,1,Rte,ppd);_.Ad=function qpd(a){kyc(this.a,JD(a,105))};var f3=zeb(TBe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1344);mdb(1342,1,oue,rpd);_.Mb=function spd(a){return lyc(this.a,this.b,JD(a,147))};var g3=zeb(TBe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1342);mdb(1341,1,oue,tpd);_.Mb=function upd(a){return nyc(this.a,this.b,JD(a,829))};var h3=zeb(TBe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1341);mdb(1343,1,Rte,vpd);_.Ad=function wpd(a){myc(this.a,this.b,JD(a,147))};var i3=zeb(TBe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1343);mdb(930,1,{},Ypd);_.Kb=function Zpd(a){return Xpd(a)};_.Fb=function $pd(a){return this===a};var k3=zeb(TBe,'ElkUtil/lambda$0$Type',930);mdb(931,1,Rte,_pd);_.Ad=function aqd(a){Lpd(this.a,this.b,JD(a,85))};_.a=0;_.b=0;var l3=zeb(TBe,'ElkUtil/lambda$1$Type',931);mdb(932,1,Rte,bqd);_.Ad=function cqd(a){Mpd(this.a,this.b,JD(a,170))};_.a=0;_.b=0;var m3=zeb(TBe,'ElkUtil/lambda$2$Type',932);mdb(933,1,Rte,dqd);_.Ad=function eqd(a){Npd(this.a,this.b,JD(a,157))};_.a=0;_.b=0;var n3=zeb(TBe,'ElkUtil/lambda$3$Type',933);mdb(934,1,Rte,fqd);_.Ad=function gqd(a){Opd(this.a,JD(a,372))};var o3=zeb(TBe,'ElkUtil/lambda$4$Type',934);mdb(331,1,{35:1,331:1},iqd);_.Dd=function jqd(a){return hqd(this,JD(a,242))};_.Fb=function kqd(a){var b;if(RD(a,331)){b=JD(a,331);return this.a==b.a}return false};_.Hb=function lqd(){return YD(this.a)};_.Ib=function mqd(){return this.a+' (exclusive)'};_.a=0;var p3=zeb(TBe,'ExclusiveBounds/ExclusiveLowerBound',331);mdb(1088,214,Zwe,oqd);_.kf=function pqd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;b.Tg('Fixed Layout',1);f=JD(Pud(a,(gjd(),xhd)),222);l=0;m=0;for(s=new fKd((!a.a&&(a.a=new A3d(Q3,a,10,11)),a.a));s.e!=s.i.gc();){q=JD(dKd(s),26);B=JD(Pud(q,(rkd(),qkd)),8);if(B){Kvd(q,B.a,B.b);if(JD(Pud(q,lkd),182).Gc((Vmd(),Rmd))){n=JD(Pud(q,nkd),8);n.a>0&&n.b>0&&Rpd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new fKd((!q.n&&(q.n=new A3d(P3,q,1,7)),q.n));j.e!=j.i.gc();){h=JD(dKd(j),157);B=JD(Pud(h,qkd),8);!!B&&Kvd(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new fKd((!q.c&&(q.c=new A3d(R3,q,9,9)),q.c));v.e!=v.i.gc();){u=JD(dKd(v),125);B=JD(Pud(u,qkd),8);!!B&&Kvd(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new fKd((!u.n&&(u.n=new A3d(P3,u,1,7)),u.n));i.e!=i.i.gc();){h=JD(dKd(i),157);B=JD(Pud(h,qkd),8);!!B&&Kvd(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Yr(Dr(DEd(q).a.Jc(),new Dl));Wr(e);){c=JD(Xr(e),85);k=nqd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Yr(Dr(CEd(q).a.Jc(),new Dl));Wr(d);){c=JD(Xr(d),85);if(Czd(NEd(c))!=a){k=nqd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Ujd(),Qjd)){for(r=new fKd((!a.a&&(a.a=new A3d(Q3,a,10,11)),a.a));r.e!=r.i.gc();){q=JD(dKd(r),26);for(d=new Yr(Dr(DEd(q).a.Jc(),new Dl));Wr(d);){c=JD(Xr(d),85);g=Gpd(c);g.b==0?Rud(c,Nhd,null):Rud(c,Nhd,g)}}}if(!Odb(LD(Pud(a,(rkd(),mkd))))){t=JD(Pud(a,okd),104);p=l+t.b+t.c;o=m+t.d+t.a;Rpd(a,p,o,true,true)}b.Ug()};var q3=zeb(TBe,'FixedLayoutProvider',1088);mdb(379,150,{3:1,414:1,379:1,105:1,150:1},qqd,rqd);_.ag=function uqd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=Cgb(b,';,;');for(g=j,h=0,i=g.length;h>16&Bue|b^d<<16};_.Jc=function erd(){return new grd(this)};_.Ib=function frd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+qdb(this.b)+')':this.b==null?'pair('+qdb(this.a)+',null)':'pair('+qdb(this.a)+','+qdb(this.b)+')'};var z3=zeb(TBe,'Pair',49);mdb(979,1,Ate,grd);_.Nb=function hrd(a){ctb(this,a)};_.Ob=function ird(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function jrd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw Icb(new Hub)};_.Qb=function krd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw Icb(new jfb)};_.b=false;_.c=false;var y3=zeb(TBe,'Pair/1',979);mdb(1078,214,Zwe,nrd);_.kf=function ord(a,b){var c,d,e,f,g;b.Tg('Random Layout',1);if((!a.a&&(a.a=new A3d(Q3,a,10,11)),a.a).i==0){b.Ug();return}f=JD(Pud(a,(Bmd(),zmd)),15);!!f&&f.a!=0?(e=new Tvb(f.a)):(e=new Svb);c=Teb(MD(Pud(a,wmd)));g=Teb(MD(Pud(a,Amd)));d=JD(Pud(a,xmd),104);mrd(a,e,c,g,d);b.Ug()};var A3=zeb(TBe,'RandomLayoutProvider',1078);mdb(240,1,{240:1},prd);_.Fb=function qrd(a){return Jub(this.a,JD(a,240).a)&&Jub(this.b,JD(a,240).b)&&Jub(this.c,JD(a,240).c)};_.Hb=function rrd(){return $mb(WC(OC(aJ,1),rte,1,5,[this.a,this.b,this.c]))};_.Ib=function srd(){return '('+this.a+pte+this.b+pte+this.c+')'};var B3=zeb(TBe,'Triple',240);var trd;mdb(550,1,{});_.Jf=function xrd(){return new Yfd(this.f.i,this.f.j)};_.mf=function yrd(a){if(lEd(a,(gjd(),pid))){return Pud(this.f,vrd)}return Pud(this.f,a)};_.Kf=function zrd(){return new Yfd(this.f.g,this.f.f)};_.Lf=function Ard(){return this.g};_.nf=function Brd(a){return Qud(this.f,a)};_.Mf=function Crd(a){Mvd(this.f,a.a);Nvd(this.f,a.b)};_.Nf=function Drd(a){Lvd(this.f,a.a);Jvd(this.f,a.b)};_.Of=function Erd(a){this.g=a};_.g=0;var vrd;var C3=zeb(oFe,'ElkGraphAdapters/AbstractElkGraphElementAdapter',550);mdb(552,1,{837:1},Frd);_.Pf=function Grd(){var a,b;if(!this.b){this.b=Yu(rvd(this.a).i);for(b=new fKd(rvd(this.a));b.e!=b.i.gc();){a=JD(dKd(b),157);Ylb(this.b,new Krd(a))}}return this.b};_.b=null;var D3=zeb(oFe,'ElkGraphAdapters/ElkEdgeAdapter',552);mdb(260,550,{},Ird);_.Qf=function Jrd(){return Hrd(this)};_.a=null;var E3=zeb(oFe,'ElkGraphAdapters/ElkGraphAdapter',260);mdb(630,550,{187:1},Krd);var F3=zeb(oFe,'ElkGraphAdapters/ElkLabelAdapter',630);mdb(551,550,{685:1},Ord);_.Pf=function Rrd(){return Lrd(this)};_.Tf=function Srd(){var a;return a=JD(Pud(this.f,(gjd(),Phd)),140),!a&&(a=new oYb),a};_.Vf=function Urd(){return Mrd(this)};_.Xf=function Wrd(a){var b;b=new rYb(a);Rud(this.f,(gjd(),Phd),b)};_.Yf=function Xrd(a){Rud(this.f,(gjd(),cid),new cZb(a))};_.Rf=function Prd(){return this.d};_.Sf=function Qrd(){var a,b;if(!this.a){this.a=new imb;for(b=new Yr(Dr(CEd(JD(this.f,26)).a.Jc(),new Dl));Wr(b);){a=JD(Xr(b),85);Ylb(this.a,new Frd(a))}}return this.a};_.Uf=function Trd(){var a,b;if(!this.c){this.c=new imb;for(b=new Yr(Dr(DEd(JD(this.f,26)).a.Jc(),new Dl));Wr(b);){a=JD(Xr(b),85);Ylb(this.c,new Frd(a))}}return this.c};_.Wf=function Vrd(){return Azd(JD(this.f,26)).i!=0||Odb(LD(JD(this.f,26).mf((gjd(),Fhd))))};_.Zf=function Yrd(){Nrd(this,(urd(),trd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var G3=zeb(oFe,'ElkGraphAdapters/ElkNodeAdapter',551);mdb(1249,550,{836:1},$rd);_.Pf=function asd(){return Zrd(this)};_.Sf=function _rd(){var a,b;if(!this.a){this.a=Xu(JD(this.f,125).gh().i);for(b=new fKd(JD(this.f,125).gh());b.e!=b.i.gc();){a=JD(dKd(b),85);Ylb(this.a,new Frd(a))}}return this.a};_.Uf=function bsd(){var a,b;if(!this.c){this.c=Xu(JD(this.f,125).hh().i);for(b=new fKd(JD(this.f,125).hh());b.e!=b.i.gc();){a=JD(dKd(b),85);Ylb(this.c,new Frd(a))}}return this.c};_.$f=function csd(){return JD(JD(this.f,125).mf((gjd(),xid)),64)};_._f=function dsd(){var a,b,c,d,e,f,g,h;d=Tzd(JD(this.f,125));for(c=new fKd(JD(this.f,125).hh());c.e!=c.i.gc();){a=JD(dKd(c),85);for(h=new fKd((!a.c&&(a.c=new Wge(L3,a,5,8)),a.c));h.e!=h.i.gc();){g=JD(dKd(h),84);if(PEd(EEd(g),d)){return true}else if(EEd(g)==d&&Odb(LD(Pud(a,(gjd(),Ghd))))){return true}}}for(b=new fKd(JD(this.f,125).gh());b.e!=b.i.gc();){a=JD(dKd(b),85);for(f=new fKd((!a.b&&(a.b=new Wge(L3,a,4,7)),a.b));f.e!=f.i.gc();){e=JD(dKd(f),84);if(PEd(EEd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var H3=zeb(oFe,'ElkGraphAdapters/ElkPortAdapter',1249);mdb(1250,1,fwe,fsd);_.Le=function gsd(a,b){return esd(JD(a,125),JD(b,125))};_.Fb=function hsd(a){return this===a};_.Me=function isd(){return new Kqb(this)};var I3=zeb(oFe,'ElkGraphAdapters/PortComparator',1250);var z6=Beb(pFe,'EObject');var J3=Beb(qFe,rFe);var K3=Beb(qFe,sFe);var O3=Beb(qFe,tFe);var S3=Beb(qFe,'ElkShape');var L3=Beb(qFe,uFe);var N3=Beb(qFe,vFe);var M3=Beb(qFe,wFe);var x6=Beb(pFe,xFe);var v6=Beb(pFe,'EFactory');var jsd;var y6=Beb(pFe,yFe);var B6=Beb(pFe,'EPackage');var lsd;var nsd,osd,psd,qsd,rsd,ssd,tsd,usd,vsd,wsd,xsd;var P3=Beb(qFe,zFe);var Q3=Beb(qFe,AFe);var R3=Beb(qFe,BFe);mdb(93,1,CFe);_.qh=function Asd(){this.rh();return null};_.rh=function Bsd(){return null};_.sh=function Csd(){return this.rh(),false};_.th=function Dsd(){return false};_.uh=function Esd(a){zsd(this,a)};var o5=zeb(DFe,'BasicNotifierImpl',93);mdb(100,93,LFe);_.Vh=function Mtd(){return Vsd(this)};_.vh=function ktd(a,b){return a};_.wh=function ltd(){throw Icb(new qhb)};_.xh=function mtd(a){var b;return b=X3d(JD(tWd(this.Ah(),this.Ch()),19)),this.Mh().Qh(this,b.n,b.f,a)};_.yh=function ntd(a,b){throw Icb(new qhb)};_.zh=function otd(a,b,c){return Gsd(this,a,b,c)};_.Ah=function ptd(){var a;if(this.wh()){a=this.wh().Lk();if(a){return a}}return this.fi()};_.Bh=function qtd(){return Hsd(this)};_.Ch=function rtd(){throw Icb(new qhb)};_.Dh=function ttd(){var a,b;b=this.Xh().Mk();!b&&this.wh().Rk(b=(L0d(),a=NYd(pWd(this.Ah())),a==null?K0d:new O0d(this,a)));return b};_.Eh=function vtd(a,b){return a};_.Fh=function wtd(a){var b;b=a.nk();return !b?zWd(this.Ah(),a):a.Jj()};_.Gh=function xtd(){var a;a=this.wh();return !a?null:a.Ok()};_.Hh=function ytd(){return !this.wh()?null:this.wh().Lk()};_.Ih=function ztd(a,b,c){return Msd(this,a,b,c)};_.Jh=function Atd(a){return Nsd(this,a)};_.Kh=function Btd(a,b){return Osd(this,a,b)};_.Lh=function Ctd(){var a;a=this.wh();return !!a&&a.Pk()};_.Mh=function Dtd(){throw Icb(new qhb)};_.Nh=function Etd(){return Qsd(this)};_.Oh=function Ftd(a,b,c,d){return Rsd(this,a,b,d)};_.Ph=function Gtd(a,b,c){var d;return d=JD(tWd(this.Ah(),b),69),d.uk().xk(this,this.ei(),b-this.gi(),a,c)};_.Qh=function Htd(a,b,c,d){return Ssd(this,a,b,d)};_.Rh=function Itd(a,b,c){var d;return d=JD(tWd(this.Ah(),b),69),d.uk().yk(this,this.ei(),b-this.gi(),a,c)};_.Sh=function Jtd(){return !!this.wh()&&!!this.wh().Nk()};_.Th=function Ktd(a){return Tsd(this,a)};_.Uh=function Ltd(a){return Usd(this,a)};_.Wh=function Ntd(a){return Ysd(this,a)};_.Xh=function Otd(){throw Icb(new qhb)};_.Yh=function Ptd(){return !this.wh()?null:this.wh().Nk()};_.Zh=function Qtd(){return Qsd(this)};_.$h=function Rtd(a,b){dtd(this,a,b)};_._h=function Std(a){this.Xh().Qk(a)};_.ai=function Ttd(a){this.Xh().Tk(a)};_.bi=function Utd(a){this.Xh().Sk(a)};_.ci=function Vtd(a,b){var c,d,e,f;f=this.Gh();if(!!f&&!!a){b=tJd(f.Cl(),this,b);f.Gl(this)}d=this.Mh();if(d){if((std(this,this.Mh(),this.Ch()).Bb&tve)!=0){e=d.Nh();!!e&&(!a?e.Fl(this):!f&&e.Gl(this))}else{b=(c=this.Ch(),c>=0?this.xh(b):this.Mh().Qh(this,-1-c,null,b));b=this.zh(null,-1,b)}}this.ai(a);return b};_.di=function Wtd(a){var b,c,d,e,f,g,h,i;c=this.Ah();f=zWd(c,a);b=this.gi();if(f>=b){return JD(a,69).uk().Bk(this,this.ei(),f-b)}else if(f<=-1){g=Cce((jie(),hie),c,a);if(g){lie();JD(g,69).vk()||(g=xde(Oce(hie,g)));e=(d=this.Fh(g),JD(d>=0?this.Ih(d,true,true):Zsd(this,g,true),163));i=g.Gk();if(i>1||i==-1){return JD(JD(e,219).Ql(a,false),77)}}else{throw Icb(new hfb(EFe+a.ve()+HFe))}}else if(a.Hk()){return d=this.Fh(a),JD(d>=0?this.Ih(d,false,true):Zsd(this,a,false),77)}h=new LRd(this,a);return h};_.ei=function Xtd(){return ftd(this)};_.fi=function Ytd(){return (jRd(),iRd).S};_.gi=function Ztd(){return yWd(this.fi())};_.hi=function $td(a){htd(this,a)};_.Ib=function _td(){return jtd(this)};var O6=zeb(MFe,'BasicEObjectImpl',100);var XQd;mdb(117,100,{109:1,94:1,93:1,57:1,114:1,52:1,100:1,117:1});_.ii=function iud(a){var b;b=cud(this);return b[a]};_.ji=function jud(a,b){var c;c=cud(this);VC(c,a,b)};_.ki=function kud(a){var b;b=cud(this);VC(b,a,null)};_.qh=function lud(){return JD(fud(this,4),129)};_.rh=function mud(){throw Icb(new qhb)};_.sh=function nud(){return (this.Db&4)!=0};_.wh=function oud(){throw Icb(new qhb)};_.li=function pud(a){hud(this,2,a)};_.yh=function qud(a,b){this.Db=b<<16|this.Db&255;this.li(a)};_.Ah=function rud(){return bud(this)};_.Ch=function sud(){return this.Db>>16};_.Dh=function tud(){var a,b;return L0d(),b=NYd(pWd((a=JD(fud(this,16),29),!a?this.fi():a))),b==null?(null,K0d):new O0d(this,b)};_.th=function uud(){return (this.Db&1)==0};_.Gh=function vud(){return JD(fud(this,128),1996)};_.Hh=function wud(){return JD(fud(this,16),29)};_.Lh=function xud(){return (this.Db&32)!=0};_.Mh=function yud(){return JD(fud(this,2),52)};_.Sh=function zud(){return (this.Db&64)!=0};_.Xh=function Aud(){throw Icb(new qhb)};_.Yh=function Bud(){return JD(fud(this,64),290)};_._h=function Cud(a){hud(this,16,a)};_.ai=function Dud(a){hud(this,128,a)};_.bi=function Eud(a){hud(this,64,a)};_.ei=function Fud(){return dud(this)};_.Db=0;var F9=zeb(MFe,'MinimalEObjectImpl',117);mdb(118,117,{109:1,94:1,93:1,57:1,114:1,52:1,100:1,117:1,118:1});_.li=function Gud(a){this.Cb=a};_.Mh=function Hud(){return this.Cb};var E9=zeb(MFe,'MinimalEObjectImpl/Container',118);mdb(2045,118,{109:1,343:1,105:1,94:1,93:1,57:1,114:1,52:1,100:1,117:1,118:1});_.Ih=function Sud(a,b,c){return Jud(this,a,b,c)};_.Rh=function Tud(a,b,c){return Kud(this,a,b,c)};_.Th=function Uud(a){return Lud(this,a)};_.$h=function Vud(a,b){Mud(this,a,b)};_.fi=function Wud(){return ysd(),xsd};_.hi=function Xud(a){Nud(this,a)};_.lf=function Yud(){return Oud(this)};_.fh=function Zud(){return !this.o&&(this.o=new BTd((ysd(),vsd),c4,this,0)),this.o};_.mf=function $ud(a){return Pud(this,a)};_.nf=function _ud(a){return Qud(this,a)};_.of=function avd(a,b){return Rud(this,a,b)};var T3=zeb(NFe,'EMapPropertyHolderImpl',2045);mdb(559,118,{109:1,372:1,94:1,93:1,57:1,114:1,52:1,100:1,117:1,118:1},evd);_.Ih=function fvd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return Msd(this,a,b,c)};_.Th=function gvd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return Tsd(this,a)};_.$h=function hvd(a,b){switch(a){case 0:cvd(this,Reb(MD(b)));return;case 1:dvd(this,Reb(MD(b)));return;}dtd(this,a,b)};_.fi=function ivd(){return ysd(),nsd};_.hi=function jvd(a){switch(a){case 0:cvd(this,0);return;case 1:dvd(this,0);return;}htd(this,a)};_.Ib=function kvd(){var a;if((this.Db&64)!=0)return jtd(this);a=new Zgb(jtd(this));a.a+=' (x: ';Rgb(a,this.a);a.a+=', y: ';Rgb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var U3=zeb(NFe,'ElkBendPointImpl',559);mdb(727,2045,{109:1,343:1,174:1,105:1,94:1,93:1,57:1,114:1,52:1,100:1,117:1,118:1});_.Ih=function uvd(a,b,c){return lvd(this,a,b,c)};_.Ph=function vvd(a,b,c){return mvd(this,a,b,c)};_.Rh=function wvd(a,b,c){return nvd(this,a,b,c)};_.Th=function xvd(a){return ovd(this,a)};_.$h=function yvd(a,b){pvd(this,a,b)};_.fi=function zvd(){return ysd(),rsd};_.hi=function Avd(a){qvd(this,a)};_.ih=function Bvd(){return this.k};_.jh=function Cvd(){return rvd(this)};_.Ib=function Dvd(){return tvd(this)};_.k=null;var Y3=zeb(NFe,'ElkGraphElementImpl',727);mdb(728,727,{109:1,343:1,174:1,276:1,105:1,94:1,93:1,57:1,114:1,52:1,100:1,117:1,118:1});_.Ih=function Pvd(a,b,c){return Evd(this,a,b,c)};_.Th=function Qvd(a){return Fvd(this,a)};_.$h=function Rvd(a,b){Gvd(this,a,b)};_.fi=function Svd(){return ysd(),wsd};_.hi=function Tvd(a){Hvd(this,a)};_.kh=function Uvd(){return this.f};_.lh=function Vvd(){return this.g};_.mh=function Wvd(){return this.i};_.nh=function Xvd(){return this.j};_.oh=function Yvd(a,b){Ivd(this,a,b)};_.ph=function Zvd(a,b){Kvd(this,a,b)};_.Ib=function $vd(){return Ovd(this)};_.f=0;_.g=0;_.i=0;_.j=0;var d4=zeb(NFe,'ElkShapeImpl',728);mdb(729,728,{109:1,343:1,84:1,174:1,276:1,105:1,94:1,93:1,57:1,114:1,52:1,100:1,117:1,118:1});_.Ih=function gwd(a,b,c){return _vd(this,a,b,c)};_.Ph=function hwd(a,b,c){return awd(this,a,b,c)};_.Rh=function iwd(a,b,c){return bwd(this,a,b,c)};_.Th=function jwd(a){return cwd(this,a)};_.$h=function kwd(a,b){dwd(this,a,b)};_.fi=function lwd(){return ysd(),osd};_.hi=function mwd(a){ewd(this,a)};_.gh=function nwd(){return !this.d&&(this.d=new Wge(N3,this,8,5)),this.d};_.hh=function owd(){return !this.e&&(this.e=new Wge(N3,this,7,4)),this.e};var V3=zeb(NFe,'ElkConnectableShapeImpl',729);mdb(271,727,{109:1,343:1,85:1,174:1,271:1,105:1,94:1,93:1,57:1,114:1,52:1,100:1,117:1,118:1},ywd);_.xh=function zwd(a){return qwd(this,a)};_.Ih=function Awd(a,b,c){switch(a){case 3:return rwd(this);case 4:return !this.b&&(this.b=new Wge(L3,this,4,7)),this.b;case 5:return !this.c&&(this.c=new Wge(L3,this,5,8)),this.c;case 6:return !this.a&&(this.a=new A3d(M3,this,6,6)),this.a;case 7:return Ndb(),!this.b&&(this.b=new Wge(L3,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new Wge(L3,this,5,8)),this.c.i<=1)?false:true;case 8:return Ndb(),uwd(this)?true:false;case 9:return Ndb(),vwd(this)?true:false;case 10:return Ndb(),!this.b&&(this.b=new Wge(L3,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Wge(L3,this,5,8)),this.c.i!=0)?true:false;}return lvd(this,a,b,c)};_.Ph=function Bwd(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?qwd(this,c):this.Cb.Qh(this,-1-d,null,c)));return pwd(this,JD(a,26),c);case 4:return !this.b&&(this.b=new Wge(L3,this,4,7)),sJd(this.b,a,c);case 5:return !this.c&&(this.c=new Wge(L3,this,5,8)),sJd(this.c,a,c);case 6:return !this.a&&(this.a=new A3d(M3,this,6,6)),sJd(this.a,a,c);}return mvd(this,a,b,c)};_.Rh=function Cwd(a,b,c){switch(b){case 3:return pwd(this,null,c);case 4:return !this.b&&(this.b=new Wge(L3,this,4,7)),tJd(this.b,a,c);case 5:return !this.c&&(this.c=new Wge(L3,this,5,8)),tJd(this.c,a,c);case 6:return !this.a&&(this.a=new A3d(M3,this,6,6)),tJd(this.a,a,c);}return nvd(this,a,b,c)};_.Th=function Dwd(a){switch(a){case 3:return !!rwd(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 Wge(L3,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Wge(L3,this,5,8)),this.c.i<=1));case 8:return uwd(this);case 9:return vwd(this);case 10:return !this.b&&(this.b=new Wge(L3,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Wge(L3,this,5,8)),this.c.i!=0);}return ovd(this,a)};_.$h=function Ewd(a,b){switch(a){case 3:wwd(this,JD(b,26));return;case 4:!this.b&&(this.b=new Wge(L3,this,4,7));uJd(this.b);!this.b&&(this.b=new Wge(L3,this,4,7));$Ed(this.b,JD(b,18));return;case 5:!this.c&&(this.c=new Wge(L3,this,5,8));uJd(this.c);!this.c&&(this.c=new Wge(L3,this,5,8));$Ed(this.c,JD(b,18));return;case 6:!this.a&&(this.a=new A3d(M3,this,6,6));uJd(this.a);!this.a&&(this.a=new A3d(M3,this,6,6));$Ed(this.a,JD(b,18));return;}pvd(this,a,b)};_.fi=function Fwd(){return ysd(),psd};_.hi=function Gwd(a){switch(a){case 3:wwd(this,null);return;case 4:!this.b&&(this.b=new Wge(L3,this,4,7));uJd(this.b);return;case 5:!this.c&&(this.c=new Wge(L3,this,5,8));uJd(this.c);return;case 6:!this.a&&(this.a=new A3d(M3,this,6,6));uJd(this.a);return;}qvd(this,a)};_.Ib=function Hwd(){return xwd(this)};var W3=zeb(NFe,'ElkEdgeImpl',271);mdb(443,2045,{109:1,343:1,170:1,443:1,105:1,94:1,93:1,57:1,114:1,52:1,100:1,117:1,118:1},Ywd);_.xh=function Zwd(a){return Jwd(this,a)};_.Ih=function $wd(a,b,c){switch(a){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 VXd(K3,this,5)),this.a;case 6:return Mwd(this);case 7:if(b)return Lwd(this);return this.i;case 8:if(b)return Kwd(this);return this.f;case 9:return !this.g&&(this.g=new Wge(M3,this,9,10)),this.g;case 10:return !this.e&&(this.e=new Wge(M3,this,10,9)),this.e;case 11:return this.d;}return Jud(this,a,b,c)};_.Ph=function _wd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Jwd(this,c):this.Cb.Qh(this,-1-e,null,c)));return Iwd(this,JD(a,85),c);case 9:return !this.g&&(this.g=new Wge(M3,this,9,10)),sJd(this.g,a,c);case 10:return !this.e&&(this.e=new Wge(M3,this,10,9)),sJd(this.e,a,c);}return f=JD(tWd((d=JD(fud(this,16),29),!d?(ysd(),qsd):d),b),69),f.uk().xk(this,dud(this),b-yWd((ysd(),qsd)),a,c)};_.Rh=function axd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new VXd(K3,this,5)),tJd(this.a,a,c);case 6:return Iwd(this,null,c);case 9:return !this.g&&(this.g=new Wge(M3,this,9,10)),tJd(this.g,a,c);case 10:return !this.e&&(this.e=new Wge(M3,this,10,9)),tJd(this.e,a,c);}return Kud(this,a,b,c)};_.Th=function bxd(a){switch(a){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 !!Mwd(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 Lud(this,a)};_.$h=function cxd(a,b){switch(a){case 1:Vwd(this,Reb(MD(b)));return;case 2:Wwd(this,Reb(MD(b)));return;case 3:Owd(this,Reb(MD(b)));return;case 4:Pwd(this,Reb(MD(b)));return;case 5:!this.a&&(this.a=new VXd(K3,this,5));uJd(this.a);!this.a&&(this.a=new VXd(K3,this,5));$Ed(this.a,JD(b,18));return;case 6:Twd(this,JD(b,85));return;case 7:Swd(this,JD(b,84));return;case 8:Rwd(this,JD(b,84));return;case 9:!this.g&&(this.g=new Wge(M3,this,9,10));uJd(this.g);!this.g&&(this.g=new Wge(M3,this,9,10));$Ed(this.g,JD(b,18));return;case 10:!this.e&&(this.e=new Wge(M3,this,10,9));uJd(this.e);!this.e&&(this.e=new Wge(M3,this,10,9));$Ed(this.e,JD(b,18));return;case 11:Qwd(this,OD(b));return;}Mud(this,a,b)};_.fi=function dxd(){return ysd(),qsd};_.hi=function exd(a){switch(a){case 1:Vwd(this,0);return;case 2:Wwd(this,0);return;case 3:Owd(this,0);return;case 4:Pwd(this,0);return;case 5:!this.a&&(this.a=new VXd(K3,this,5));uJd(this.a);return;case 6:Twd(this,null);return;case 7:Swd(this,null);return;case 8:Rwd(this,null);return;case 9:!this.g&&(this.g=new Wge(M3,this,9,10));uJd(this.g);return;case 10:!this.e&&(this.e=new Wge(M3,this,10,9));uJd(this.e);return;case 11:Qwd(this,null);return;}Nud(this,a)};_.Ib=function fxd(){return Xwd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var X3=zeb(NFe,'ElkEdgeSectionImpl',443);mdb(161,118,{109:1,94:1,93:1,158:1,57:1,114:1,52:1,100:1,161:1,117:1,118:1});_.Ih=function jxd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab}return Isd(this,a-yWd(this.fi()),tWd((d=JD(fud(this,16),29),!d?this.fi():d),a),b,c)};_.Ph=function kxd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),sJd(this.Ab,a,c)}return e=JD(tWd((d=JD(fud(this,16),29),!d?this.fi():d),b),69),e.uk().xk(this,dud(this),b-yWd(this.fi()),a,c)};_.Rh=function lxd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c)}return e=JD(tWd((d=JD(fud(this,16),29),!d?this.fi():d),b),69),e.uk().yk(this,dud(this),b-yWd(this.fi()),a,c)};_.Th=function mxd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return Jsd(this,a-yWd(this.fi()),tWd((b=JD(fud(this,16),29),!b?this.fi():b),a))};_.Wh=function nxd(a){return gxd(this,a)};_.$h=function oxd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;}Ksd(this,a-yWd(this.fi()),tWd((c=JD(fud(this,16),29),!c?this.fi():c),a),b)};_.ai=function pxd(a){hud(this,128,a)};_.fi=function qxd(){return HRd(),vRd};_.hi=function rxd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;}Lsd(this,a-yWd(this.fi()),tWd((b=JD(fud(this,16),29),!b?this.fi():b),a))};_.mi=function sxd(){this.Bb|=1};_.ni=function txd(a){return ixd(this,a)};_.Bb=0;var s7=zeb(MFe,'EModelElementImpl',161);mdb(710,161,{109:1,94:1,93:1,469:1,158:1,57:1,114:1,52:1,100:1,161:1,117:1,118:1},Fxd);_.oi=function Gxd(a,b){return Axd(this,a,b)};_.pi=function Hxd(a){var b,c,d,e,f;if(this.a!=zVd(a)||(a.Bb&256)!=0){throw Icb(new hfb(TFe+a.zb+QFe))}for(d=xWd(a);rWd(d.a).i!=0;){c=JD(LZd(d,0,(b=JD(SFd(rWd(d.a),0),87),f=b.c,RD(f,88)?JD(f,29):(HRd(),xRd))),29);if(BVd(c)){e=zVd(c).ti().pi(c);JD(e,52)._h(a);return e}d=xWd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new JSd(a):new xSd(a)};_.qi=function Ixd(a,b){return Bxd(this,a,b)};_.Ih=function Jxd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab;case 1:return this.a;}return Isd(this,a-yWd((HRd(),sRd)),tWd((d=JD(fud(this,16),29),!d?sRd:d),a),b,c)};_.Ph=function Kxd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),sJd(this.Ab,a,c);case 1:!!this.a&&(c=JD(this.a,52).Qh(this,4,B6,c));return yxd(this,JD(a,241),c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),sRd):d),b),69),e.uk().xk(this,dud(this),b-yWd((HRd(),sRd)),a,c)};_.Rh=function Lxd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c);case 1:return yxd(this,null,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),sRd):d),b),69),e.uk().yk(this,dud(this),b-yWd((HRd(),sRd)),a,c)};_.Th=function Mxd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return Jsd(this,a-yWd((HRd(),sRd)),tWd((b=JD(fud(this,16),29),!b?sRd:b),a))};_.$h=function Nxd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:Dxd(this,JD(b,241));return;}Ksd(this,a-yWd((HRd(),sRd)),tWd((c=JD(fud(this,16),29),!c?sRd:c),a),b)};_.fi=function Oxd(){return HRd(),sRd};_.hi=function Pxd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:Dxd(this,null);return;}Lsd(this,a-yWd((HRd(),sRd)),tWd((b=JD(fud(this,16),29),!b?sRd:b),a))};var uxd,vxd,wxd;var q7=zeb(MFe,'EFactoryImpl',710);mdb(1018,710,{109:1,2075:1,94:1,93:1,469:1,158:1,57:1,114:1,52:1,100:1,161:1,117:1,118:1},Rxd);_.oi=function Sxd(a,b){switch(a.fk()){case 12:return JD(b,147).Og();case 13:return qdb(b);default:throw Icb(new hfb(PFe+a.ve()+QFe));}};_.pi=function Txd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=zVd(a),b?dXd(b.si(),a):-1)),a.G){case 4:return f=new ozd,f;case 6:return g=new Hzd,g;case 7:return h=new Wzd,h;case 8:return d=new ywd,d;case 9:return c=new evd,c;case 10:return e=new Ywd,e;case 11:return i=new gAd,i;default:throw Icb(new hfb(TFe+a.zb+QFe));}};_.qi=function Uxd(a,b){switch(a.fk()){case 13:case 12:return null;default:throw Icb(new hfb(PFe+a.ve()+QFe));}};var Z3=zeb(NFe,'ElkGraphFactoryImpl',1018);mdb(439,161,{109:1,94:1,93:1,158:1,197:1,57:1,114:1,52:1,100:1,161:1,117:1,118:1});_.Dh=function Yxd(){var a,b;b=(a=JD(fud(this,16),29),NYd(pWd(!a?this.fi():a)));return b==null?(L0d(),L0d(),K0d):new c1d(this,b)};_.Ih=function Zxd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab;case 1:return this.ve();}return Isd(this,a-yWd(this.fi()),tWd((d=JD(fud(this,16),29),!d?this.fi():d),a),b,c)};_.Th=function $xd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return Jsd(this,a-yWd(this.fi()),tWd((b=JD(fud(this,16),29),!b?this.fi():b),a))};_.$h=function _xd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:this.ri(OD(b));return;}Ksd(this,a-yWd(this.fi()),tWd((c=JD(fud(this,16),29),!c?this.fi():c),a),b)};_.fi=function ayd(){return HRd(),wRd};_.hi=function byd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:this.ri(null);return;}Lsd(this,a-yWd(this.fi()),tWd((b=JD(fud(this,16),29),!b?this.fi():b),a))};_.ve=function cyd(){return this.zb};_.ri=function dyd(a){Wxd(this,a)};_.Ib=function eyd(){return Xxd(this)};_.zb=null;var w7=zeb(MFe,'ENamedElementImpl',439);mdb(184,439,{109:1,94:1,93:1,158:1,197:1,57:1,241:1,114:1,52:1,100:1,161:1,184:1,117:1,118:1,680:1},Lyd);_.xh=function Nyd(a){return xyd(this,a)};_.Ih=function Oyd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,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 H3d(this,q6,this)),this.rb;case 6:return !this.vb&&(this.vb=new E3d(B6,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?JD(this.Cb,241):null;return nyd(this);}return Isd(this,a-yWd((HRd(),ARd)),tWd((d=JD(fud(this,16),29),!d?ARd:d),a),b,c)};_.Ph=function Pyd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),sJd(this.Ab,a,c);case 4:!!this.sb&&(c=JD(this.sb,52).Qh(this,1,v6,c));return oyd(this,JD(a,469),c);case 5:return !this.rb&&(this.rb=new H3d(this,q6,this)),sJd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new E3d(B6,this,6,7)),sJd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?xyd(this,c):this.Cb.Qh(this,-1-e,null,c)));return Gsd(this,a,7,c);}return f=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),ARd):d),b),69),f.uk().xk(this,dud(this),b-yWd((HRd(),ARd)),a,c)};_.Rh=function Qyd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c);case 4:return oyd(this,null,c);case 5:return !this.rb&&(this.rb=new H3d(this,q6,this)),tJd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new E3d(B6,this,6,7)),tJd(this.vb,a,c);case 7:return Gsd(this,null,7,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),ARd):d),b),69),e.uk().yk(this,dud(this),b-yWd((HRd(),ARd)),a,c)};_.Th=function Ryd(a){var b;switch(a){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 !!nyd(this);}return Jsd(this,a-yWd((HRd(),ARd)),tWd((b=JD(fud(this,16),29),!b?ARd:b),a))};_.Wh=function Syd(a){var b;b=zyd(this,a);return b?b:gxd(this,a)};_.$h=function Tyd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:Wxd(this,OD(b));return;case 2:Kyd(this,OD(b));return;case 3:Jyd(this,OD(b));return;case 4:Iyd(this,JD(b,469));return;case 5:!this.rb&&(this.rb=new H3d(this,q6,this));uJd(this.rb);!this.rb&&(this.rb=new H3d(this,q6,this));$Ed(this.rb,JD(b,18));return;case 6:!this.vb&&(this.vb=new E3d(B6,this,6,7));uJd(this.vb);!this.vb&&(this.vb=new E3d(B6,this,6,7));$Ed(this.vb,JD(b,18));return;}Ksd(this,a-yWd((HRd(),ARd)),tWd((c=JD(fud(this,16),29),!c?ARd:c),a),b)};_.bi=function Uyd(a){var b,c;if(!!a&&!!this.rb){for(c=new fKd(this.rb);c.e!=c.i.gc();){b=dKd(c);RD(b,360)&&(JD(b,360).w=null)}}hud(this,64,a)};_.fi=function Vyd(){return HRd(),ARd};_.hi=function Wyd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:Wxd(this,null);return;case 2:Kyd(this,null);return;case 3:Jyd(this,null);return;case 4:Iyd(this,null);return;case 5:!this.rb&&(this.rb=new H3d(this,q6,this));uJd(this.rb);return;case 6:!this.vb&&(this.vb=new E3d(B6,this,6,7));uJd(this.vb);return;}Lsd(this,a-yWd((HRd(),ARd)),tWd((b=JD(fud(this,16),29),!b?ARd:b),a))};_.mi=function Xyd(){yyd(this)};_.si=function Yyd(){return !this.rb&&(this.rb=new H3d(this,q6,this)),this.rb};_.ti=function Zyd(){return this.sb};_.ui=function $yd(){return this.ub};_.vi=function _yd(){return this.xb};_.wi=function azd(){return this.yb};_.xi=function bzd(a){this.ub=a};_.Ib=function czd(){var a;if((this.Db&64)!=0)return Xxd(this);a=new Zgb(Xxd(this));a.a+=' (nsURI: ';Ugb(a,this.yb);a.a+=', nsPrefix: ';Ugb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var fyd;var G7=zeb(MFe,'EPackageImpl',184);mdb(556,184,{109:1,2077:1,556:1,94:1,93:1,158:1,197:1,57:1,241:1,114:1,52:1,100:1,161:1,184:1,117:1,118:1,680:1},gzd);_.q=false;_.r=false;var dzd=false;var $3=zeb(NFe,'ElkGraphPackageImpl',556);mdb(362,728,{109:1,343:1,174:1,157:1,276:1,362:1,105:1,94:1,93:1,57:1,114:1,52:1,100:1,117:1,118:1},ozd);_.xh=function pzd(a){return jzd(this,a)};_.Ih=function qzd(a,b,c){switch(a){case 7:return kzd(this);case 8:return this.a;}return Evd(this,a,b,c)};_.Ph=function rzd(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?jzd(this,c):this.Cb.Qh(this,-1-d,null,c)));return izd(this,JD(a,174),c);}return mvd(this,a,b,c)};_.Rh=function szd(a,b,c){if(b==7){return izd(this,null,c)}return nvd(this,a,b,c)};_.Th=function tzd(a){switch(a){case 7:return !!kzd(this);case 8:return !sgb('',this.a);}return Fvd(this,a)};_.$h=function uzd(a,b){switch(a){case 7:lzd(this,JD(b,174));return;case 8:mzd(this,OD(b));return;}Gvd(this,a,b)};_.fi=function vzd(){return ysd(),ssd};_.hi=function wzd(a){switch(a){case 7:lzd(this,null);return;case 8:mzd(this,'');return;}Hvd(this,a)};_.Ib=function xzd(){return nzd(this)};_.a='';var _3=zeb(NFe,'ElkLabelImpl',362);mdb(206,729,{109:1,343:1,84:1,174:1,26:1,276:1,206:1,105:1,94:1,93:1,57:1,114:1,52:1,100:1,117:1,118:1},Hzd);_.xh=function Izd(a){return zzd(this,a)};_.Ih=function Jzd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new A3d(R3,this,9,9)),this.c;case 10:return !this.a&&(this.a=new A3d(Q3,this,10,11)),this.a;case 11:return Czd(this);case 12:return !this.b&&(this.b=new A3d(N3,this,12,3)),this.b;case 13:return Ndb(),!this.a&&(this.a=new A3d(Q3,this,10,11)),this.a.i>0?true:false;}return _vd(this,a,b,c)};_.Ph=function Kzd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new A3d(R3,this,9,9)),sJd(this.c,a,c);case 10:return !this.a&&(this.a=new A3d(Q3,this,10,11)),sJd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?zzd(this,c):this.Cb.Qh(this,-1-d,null,c)));return yzd(this,JD(a,26),c);case 12:return !this.b&&(this.b=new A3d(N3,this,12,3)),sJd(this.b,a,c);}return awd(this,a,b,c)};_.Rh=function Lzd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new A3d(R3,this,9,9)),tJd(this.c,a,c);case 10:return !this.a&&(this.a=new A3d(Q3,this,10,11)),tJd(this.a,a,c);case 11:return yzd(this,null,c);case 12:return !this.b&&(this.b=new A3d(N3,this,12,3)),tJd(this.b,a,c);}return bwd(this,a,b,c)};_.Th=function Mzd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Czd(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new A3d(Q3,this,10,11)),this.a.i>0;}return cwd(this,a)};_.$h=function Nzd(a,b){switch(a){case 9:!this.c&&(this.c=new A3d(R3,this,9,9));uJd(this.c);!this.c&&(this.c=new A3d(R3,this,9,9));$Ed(this.c,JD(b,18));return;case 10:!this.a&&(this.a=new A3d(Q3,this,10,11));uJd(this.a);!this.a&&(this.a=new A3d(Q3,this,10,11));$Ed(this.a,JD(b,18));return;case 11:Fzd(this,JD(b,26));return;case 12:!this.b&&(this.b=new A3d(N3,this,12,3));uJd(this.b);!this.b&&(this.b=new A3d(N3,this,12,3));$Ed(this.b,JD(b,18));return;}dwd(this,a,b)};_.fi=function Ozd(){return ysd(),tsd};_.hi=function Pzd(a){switch(a){case 9:!this.c&&(this.c=new A3d(R3,this,9,9));uJd(this.c);return;case 10:!this.a&&(this.a=new A3d(Q3,this,10,11));uJd(this.a);return;case 11:Fzd(this,null);return;case 12:!this.b&&(this.b=new A3d(N3,this,12,3));uJd(this.b);return;}ewd(this,a)};_.Ib=function Qzd(){return Gzd(this)};var a4=zeb(NFe,'ElkNodeImpl',206);mdb(193,729,{109:1,343:1,84:1,174:1,125:1,276:1,193:1,105:1,94:1,93:1,57:1,114:1,52:1,100:1,117:1,118:1},Wzd);_.xh=function Xzd(a){return Szd(this,a)};_.Ih=function Yzd(a,b,c){if(a==9){return Tzd(this)}return _vd(this,a,b,c)};_.Ph=function Zzd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Szd(this,c):this.Cb.Qh(this,-1-d,null,c)));return Rzd(this,JD(a,26),c);}return awd(this,a,b,c)};_.Rh=function $zd(a,b,c){if(b==9){return Rzd(this,null,c)}return bwd(this,a,b,c)};_.Th=function _zd(a){if(a==9){return !!Tzd(this)}return cwd(this,a)};_.$h=function aAd(a,b){switch(a){case 9:Uzd(this,JD(b,26));return;}dwd(this,a,b)};_.fi=function bAd(){return ysd(),usd};_.hi=function cAd(a){switch(a){case 9:Uzd(this,null);return;}ewd(this,a)};_.Ib=function dAd(){return Vzd(this)};var b4=zeb(NFe,'ElkPortImpl',193);var W5=Beb(mGe,'BasicEMap/Entry');mdb(1091,118,{109:1,45:1,94:1,93:1,136:1,57:1,114:1,52:1,100:1,117:1,118:1},gAd);_.Fb=function mAd(a){return this===a};_.jd=function oAd(){return this.b};_.Hb=function qAd(){return ADb(this)};_.Ai=function sAd(a){eAd(this,JD(a,147))};_.Ih=function hAd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return Msd(this,a,b,c)};_.Th=function iAd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return Tsd(this,a)};_.$h=function jAd(a,b){switch(a){case 0:eAd(this,JD(b,147));return;case 1:fAd(this,b);return;}dtd(this,a,b)};_.fi=function kAd(){return ysd(),vsd};_.hi=function lAd(a){switch(a){case 0:eAd(this,null);return;case 1:fAd(this,null);return;}htd(this,a)};_.yi=function nAd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.kd=function pAd(){return this.c};_.zi=function rAd(a){this.a=a};_.ld=function tAd(a){var b;b=this.c;fAd(this,a);return b};_.Ib=function uAd(){var a;if((this.Db&64)!=0)return jtd(this);a=new ihb;ehb(ehb(ehb(a,this.b?this.b.Og():vte),jye),Ngb(this.c));return a.a};_.a=-1;_.c=null;var c4=zeb(NFe,'ElkPropertyToValueMapEntryImpl',1091);mdb(980,1,{},IAd);var e4=zeb(pGe,'JsonAdapter',980);mdb(215,63,tue,JAd);var f4=zeb(pGe,'JsonImportException',215);mdb(850,1,{},dCd);var W4=zeb(pGe,'JsonImporter',850);mdb(884,1,{},eCd);_.Bi=function fCd(a){cBd(this.a,this.b,JD(a,139))};var g4=zeb(pGe,'JsonImporter/lambda$0$Type',884);mdb(885,1,{},gCd);_.Bi=function hCd(a){dBd(this.a,this.b,JD(a,139))};var h4=zeb(pGe,'JsonImporter/lambda$1$Type',885);mdb(893,1,{},iCd);_.Bi=function jCd(a){eBd(this.a,JD(a,149))};var i4=zeb(pGe,'JsonImporter/lambda$10$Type',893);mdb(895,1,{},kCd);_.Bi=function lCd(a){fBd(this.a,this.b,JD(a,139))};var j4=zeb(pGe,'JsonImporter/lambda$11$Type',895);mdb(896,1,{},mCd);_.Bi=function nCd(a){gBd(this.a,this.b,JD(a,139))};var k4=zeb(pGe,'JsonImporter/lambda$12$Type',896);mdb(902,1,{},oCd);_.Bi=function pCd(a){hBd(this.a,this.b,this.c,this.d,JD(a,139))};var l4=zeb(pGe,'JsonImporter/lambda$13$Type',902);mdb(901,1,{},qCd);_.Bi=function rCd(a){iBd(this.a,this.b,this.c,this.d,JD(a,149))};var m4=zeb(pGe,'JsonImporter/lambda$14$Type',901);mdb(897,1,{},sCd);_.Bi=function tCd(a){jBd(this.a,this.b,OD(a))};var n4=zeb(pGe,'JsonImporter/lambda$15$Type',897);mdb(898,1,{},uCd);_.Bi=function vCd(a){kBd(this.a,this.b,OD(a))};var o4=zeb(pGe,'JsonImporter/lambda$16$Type',898);mdb(899,1,{},wCd);_.Bi=function xCd(a){lBd(this.b,this.a,JD(a,139))};var p4=zeb(pGe,'JsonImporter/lambda$17$Type',899);mdb(900,1,{},yCd);_.Bi=function zCd(a){mBd(this.b,this.a,JD(a,139))};var q4=zeb(pGe,'JsonImporter/lambda$18$Type',900);mdb(905,1,{},ACd);_.Bi=function BCd(a){nBd(this.a,JD(a,149))};var r4=zeb(pGe,'JsonImporter/lambda$19$Type',905);mdb(886,1,{},CCd);_.Bi=function DCd(a){oBd(this.a,JD(a,139))};var s4=zeb(pGe,'JsonImporter/lambda$2$Type',886);mdb(903,1,{},ECd);_.Bi=function FCd(a){Vwd(this.a,Reb(MD(a)))};var t4=zeb(pGe,'JsonImporter/lambda$20$Type',903);mdb(904,1,{},GCd);_.Bi=function HCd(a){Wwd(this.a,Reb(MD(a)))};var u4=zeb(pGe,'JsonImporter/lambda$21$Type',904);mdb(908,1,{},ICd);_.Bi=function JCd(a){pBd(this.a,JD(a,149))};var v4=zeb(pGe,'JsonImporter/lambda$22$Type',908);mdb(906,1,{},KCd);_.Bi=function LCd(a){Owd(this.a,Reb(MD(a)))};var w4=zeb(pGe,'JsonImporter/lambda$23$Type',906);mdb(907,1,{},MCd);_.Bi=function NCd(a){Pwd(this.a,Reb(MD(a)))};var x4=zeb(pGe,'JsonImporter/lambda$24$Type',907);mdb(910,1,{},OCd);_.Bi=function PCd(a){qBd(this.a,JD(a,139))};var y4=zeb(pGe,'JsonImporter/lambda$25$Type',910);mdb(909,1,{},QCd);_.Bi=function RCd(a){rBd(this.a,JD(a,149))};var z4=zeb(pGe,'JsonImporter/lambda$26$Type',909);mdb(911,1,Rte,SCd);_.Ad=function TCd(a){sBd(this.b,this.a,OD(a))};var A4=zeb(pGe,'JsonImporter/lambda$27$Type',911);mdb(912,1,Rte,UCd);_.Ad=function VCd(a){tBd(this.b,this.a,OD(a))};var B4=zeb(pGe,'JsonImporter/lambda$28$Type',912);mdb(913,1,{},WCd);_.Bi=function XCd(a){uBd(this.a,this.b,JD(a,139))};var C4=zeb(pGe,'JsonImporter/lambda$29$Type',913);mdb(889,1,{},YCd);_.Bi=function ZCd(a){vBd(this.a,JD(a,149))};var D4=zeb(pGe,'JsonImporter/lambda$3$Type',889);mdb(914,1,{},$Cd);_.Bi=function _Cd(a){wBd(this.a,this.b,JD(a,139))};var E4=zeb(pGe,'JsonImporter/lambda$30$Type',914);mdb(915,1,{},aDd);_.Bi=function bDd(a){xBd(this.a,MD(a))};var F4=zeb(pGe,'JsonImporter/lambda$31$Type',915);mdb(916,1,{},cDd);_.Bi=function dDd(a){yBd(this.a,MD(a))};var G4=zeb(pGe,'JsonImporter/lambda$32$Type',916);mdb(917,1,{},eDd);_.Bi=function fDd(a){zBd(this.a,MD(a))};var H4=zeb(pGe,'JsonImporter/lambda$33$Type',917);mdb(918,1,{},gDd);_.Bi=function hDd(a){ABd(this.a,MD(a))};var I4=zeb(pGe,'JsonImporter/lambda$34$Type',918);mdb(919,1,{},iDd);_.Bi=function jDd(a){RBd(this.a,JD(a,57))};var J4=zeb(pGe,'JsonImporter/lambda$35$Type',919);mdb(920,1,{},kDd);_.Bi=function lDd(a){SBd(this.a,JD(a,57))};var K4=zeb(pGe,'JsonImporter/lambda$36$Type',920);mdb(924,1,{},nDd);var L4=zeb(pGe,'JsonImporter/lambda$37$Type',924);mdb(921,1,Rte,oDd);_.Ad=function pDd(a){CBd(this.a,this.c,this.b,JD(a,372))};var M4=zeb(pGe,'JsonImporter/lambda$38$Type',921);mdb(922,1,Rte,qDd);_.Ad=function rDd(a){DBd(this.a,this.b,JD(a,170))};var N4=zeb(pGe,'JsonImporter/lambda$39$Type',922);mdb(887,1,{},sDd);_.Bi=function tDd(a){Vwd(this.a,Reb(MD(a)))};var O4=zeb(pGe,'JsonImporter/lambda$4$Type',887);mdb(923,1,Rte,uDd);_.Ad=function vDd(a){EBd(this.a,this.b,JD(a,170))};var P4=zeb(pGe,'JsonImporter/lambda$40$Type',923);mdb(925,1,Rte,wDd);_.Ad=function xDd(a){FBd(this.a,this.b,this.c,JD(a,8))};var Q4=zeb(pGe,'JsonImporter/lambda$41$Type',925);mdb(888,1,{},yDd);_.Bi=function zDd(a){Wwd(this.a,Reb(MD(a)))};var R4=zeb(pGe,'JsonImporter/lambda$5$Type',888);mdb(892,1,{},ADd);_.Bi=function BDd(a){GBd(this.a,JD(a,149))};var S4=zeb(pGe,'JsonImporter/lambda$6$Type',892);mdb(890,1,{},CDd);_.Bi=function DDd(a){Owd(this.a,Reb(MD(a)))};var T4=zeb(pGe,'JsonImporter/lambda$7$Type',890);mdb(891,1,{},EDd);_.Bi=function FDd(a){Pwd(this.a,Reb(MD(a)))};var U4=zeb(pGe,'JsonImporter/lambda$8$Type',891);mdb(894,1,{},GDd);_.Bi=function HDd(a){HBd(this.a,JD(a,139))};var V4=zeb(pGe,'JsonImporter/lambda$9$Type',894);mdb(944,1,Rte,QDd);_.Ad=function RDd(a){vAd(this.a,new GC(OD(a)))};var X4=zeb(pGe,'JsonMetaDataConverter/lambda$0$Type',944);mdb(945,1,Rte,SDd);_.Ad=function TDd(a){MDd(this.a,JD(a,244))};var Y4=zeb(pGe,'JsonMetaDataConverter/lambda$1$Type',945);mdb(946,1,Rte,UDd);_.Ad=function VDd(a){NDd(this.a,JD(a,144))};var Z4=zeb(pGe,'JsonMetaDataConverter/lambda$2$Type',946);mdb(947,1,Rte,WDd);_.Ad=function XDd(a){ODd(this.a,JD(a,160))};var $4=zeb(pGe,'JsonMetaDataConverter/lambda$3$Type',947);mdb(244,23,{3:1,35:1,23:1,244:1},fEd);var YDd,ZDd,$Dd,_Dd,aEd,bEd,cEd,dEd;var _4=Aeb(_we,'GraphFeature',244,MI,hEd,gEd);var iEd;mdb(11,1,{35:1,147:1},nEd,oEd,pEd,qEd);_.Dd=function rEd(a){return kEd(this,JD(a,147))};_.Fb=function sEd(a){return lEd(this,a)};_.Rg=function tEd(){return mEd(this)};_.Og=function uEd(){return this.b};_.Hb=function vEd(){return vgb(this.b)};_.Ib=function wEd(){return this.b};var e5=zeb(_we,'Property',11);mdb(657,1,fwe,yEd);_.Le=function zEd(a,b){return xEd(this,JD(a,105),JD(b,105))};_.Fb=function AEd(a){return this===a};_.Me=function BEd(){return new Kqb(this)};var d5=zeb(_we,'PropertyHolderComparator',657);mdb(698,1,Ate,SEd);_.Nb=function TEd(a){ctb(this,a)};_.Pb=function VEd(){return REd(this)};_.Qb=function WEd(){dtb()};_.Ob=function UEd(){return !!this.a};var f5=zeb(EGe,'ElkGraphUtil/AncestorIterator',698);var e6=Beb(mGe,'EList');mdb(71,56,{20:1,31:1,56:1,18:1,16:1,71:1,61:1});_._c=function jFd(a,b){XEd(this,a,b)};_.Ec=function kFd(a){return YEd(this,a)};_.ad=function lFd(a,b){return ZEd(this,a,b)};_.Fc=function mFd(a){return $Ed(this,a)};_.Gi=function nFd(){return new AKd(this)};_.Hi=function oFd(){return new DKd(this)};_.Ii=function pFd(a){return _Ed(this,a)};_.Ji=function qFd(){return true};_.Ki=function rFd(a,b){};_.Li=function sFd(){};_.Mi=function tFd(a,b){aFd(this,a,b)};_.Ni=function uFd(a,b,c){};_.Oi=function vFd(a,b){};_.Pi=function wFd(a,b,c){};_.Fb=function xFd(a){return bFd(this,a)};_.Hb=function yFd(){return eFd(this)};_.Qi=function zFd(){return false};_.Jc=function AFd(){return new fKd(this)};_.cd=function BFd(){return new oKd(this)};_.dd=function CFd(a){var b;b=this.gc();if(a<0||a>b)throw Icb(new cKd(a,b));return new pKd(this,a)};_.Si=function DFd(a,b){this.Ri(a,this.bd(b))};_.Kc=function EFd(a){return fFd(this,a)};_.Ui=function FFd(a,b){return b};_.fd=function GFd(a,b){return gFd(this,a,b)};_.Ib=function HFd(){return hFd(this)};_.Wi=function IFd(){return true};_.Xi=function JFd(a,b){return iFd(this,b)};var C5=zeb(mGe,'AbstractEList',71);mdb(67,71,JGe,$Fd,_Fd,aGd);_.Ci=function bGd(a,b){return KFd(this,a,b)};_.Di=function cGd(a){return LFd(this,a)};_.Ei=function dGd(a,b){MFd(this,a,b)};_.Fi=function eGd(a){NFd(this,a)};_.Yi=function fGd(a){return PFd(this,a)};_.$b=function gGd(){QFd(this)};_.Gc=function hGd(a){return RFd(this,a)};_.Xb=function iGd(a){return SFd(this,a)};_.Zi=function jGd(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.ed(b);return true}else{return false}};_.Vi=function NHd(a,b){return this.Bj(a,this.Xi(a,b))};_.gc=function OHd(){return this.Cj()};_.Nc=function PHd(){return this.Dj()};_.Oc=function QHd(a){return this.Ej(a)};_.Ib=function RHd(){return this.Fj()};var Z5=zeb(mGe,'DelegatingEList',2055);mdb(2056,2055,zHe);_.Ci=function ZHd(a,b){return SHd(this,a,b)};_.Di=function $Hd(a){return this.Ci(this.Cj(),a)};_.Ei=function _Hd(a,b){THd(this,a,b)};_.Fi=function aId(a){UHd(this,a)};_.Ji=function bId(){return !this.Kj()};_.$b=function cId(){XHd(this)};_.Gj=function dId(a,b,c,d,e){return new cJd(this,a,b,c,d,e)};_.Hj=function eId(a){zsd(this.hj(),a)};_.Ij=function fId(){return null};_.Jj=function gId(){return -1};_.hj=function hId(){return null};_.Kj=function iId(){return false};_.Lj=function jId(a,b){return b};_.Mj=function kId(a,b){return b};_.Nj=function lId(){return false};_.Oj=function mId(){return !this.yj()};_.Ri=function nId(a,b){var c,d;if(this.Nj()){d=this.Oj();c=dHd(this,a,b);this.Hj(this.Gj(7,zfb(b),c,a,d));return c}else{return dHd(this,a,b)}};_.ed=function oId(a){var b,c,d,e;if(this.Nj()){c=null;d=this.Oj();b=this.Gj(4,e=eHd(this,a),null,a,d);if(this.Kj()&&!!e){c=this.Mj(e,c);if(!c){this.Hj(b)}else{c.lj(b);c.mj()}}else{if(!c){this.Hj(b)}else{c.lj(b);c.mj()}}return e}else{e=eHd(this,a);if(this.Kj()&&!!e){c=this.Mj(e,null);!!c&&c.mj()}return e}};_.Vi=function pId(a,b){return YHd(this,a,b)};var q5=zeb(DFe,'DelegatingNotifyingListImpl',2056);mdb(151,1,AHe);_.lj=function RId(a){return qId(this,a)};_.mj=function SId(){rId(this)};_.ej=function TId(){return this.d};_.Ij=function UId(){return null};_.Pj=function VId(){return null};_.fj=function WId(a){return -1};_.gj=function XId(){return AId(this)};_.hj=function YId(){return null};_.ij=function ZId(){return JId(this)};_.jj=function $Id(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.Qj=function _Id(){return false};_.kj=function aJd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.ej();switch(e){case 1:case 2:{f=a.hj();if(XD(f)===XD(this.hj())&&this.fj(null)==a.fj(null)){this.g=a.gj();a.ej()==1&&(this.d=1);return true}}}}case 4:{e=a.ej();switch(e){case 4:{f=a.hj();if(XD(f)===XD(this.hj())&&this.fj(null)==a.fj(null)){j=LId(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.jj();this.d=6;l=new _Fd(2);if(i<=g){YEd(l,this.n);YEd(l,a.ij());this.g=WC(OC(cE,1),Pue,30,15,[this.o=i,g+1])}else{YEd(l,a.ij());YEd(l,this.n);this.g=WC(OC(cE,1),Pue,30,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.ej();switch(e){case 4:{f=a.hj();if(XD(f)===XD(this.hj())&&this.fj(null)==a.fj(null)){j=LId(this);g=a.jj();k=JD(this.g,54);d=SC(cE,Pue,30,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Sgb(d,this.d);break}}KId(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Sgb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Tgb(d,this.hj());d.a+=', feature: ';Tgb(d,this.Ij());d.a+=', oldValue: ';Tgb(d,JId(this));d.a+=', newValue: ';if(this.d==6&&RD(this.g,54)){c=JD(this.g,54);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new gsb(this);this.a=this.j}return csb(this.b,a)}else{return RFd(this,a)}};_.Wi=function bKd(){return true};_.a=0;var w5=zeb(mGe,'AbstractEList/1',949);mdb(305,99,lve,cKd);var x5=zeb(mGe,'AbstractEList/BasicIndexOutOfBoundsException',305);mdb(42,1,Ate,fKd);_.Nb=function iKd(a){ctb(this,a)};_.Vj=function gKd(){if(this.i.j!=this.f){throw Icb(new Oqb)}};_.Wj=function hKd(){return dKd(this)};_.Ob=function jKd(){return this.e!=this.i.gc()};_.Pb=function kKd(){return this.Wj()};_.Qb=function lKd(){eKd(this)};_.e=0;_.f=0;_.g=-1;var y5=zeb(mGe,'AbstractEList/EIterator',42);mdb(286,42,Jte,oKd,pKd);_.Qb=function xKd(){eKd(this)};_.Rb=function qKd(a){mKd(this,a)};_.Xj=function rKd(){var b;try{b=this.d.Xb(--this.e);this.Vj();this.g=this.e;return b}catch(a){a=Hcb(a);if(RD(a,99)){this.Vj();throw Icb(new Hub)}else throw Icb(a)}};_.Yj=function sKd(a){nKd(this,a)};_.Sb=function tKd(){return this.e!=0};_.Tb=function uKd(){return this.e};_.Ub=function vKd(){return this.Xj()};_.Vb=function wKd(){return this.e-1};_.Wb=function yKd(a){this.Yj(a)};var z5=zeb(mGe,'AbstractEList/EListIterator',286);mdb(355,42,Ate,AKd);_.Wj=function BKd(){return zKd(this)};_.Qb=function CKd(){throw Icb(new qhb)};var A5=zeb(mGe,'AbstractEList/NonResolvingEIterator',355);mdb(391,286,Jte,DKd,EKd);_.Rb=function FKd(a){throw Icb(new qhb)};_.Wj=function GKd(){var b;try{b=this.c.Ti(this.e);this.Vj();this.g=this.e++;return b}catch(a){a=Hcb(a);if(RD(a,99)){this.Vj();throw Icb(new Hub)}else throw Icb(a)}};_.Xj=function HKd(){var b;try{b=this.c.Ti(--this.e);this.Vj();this.g=this.e;return b}catch(a){a=Hcb(a);if(RD(a,99)){this.Vj();throw Icb(new Hub)}else throw Icb(a)}};_.Qb=function IKd(){throw Icb(new qhb)};_.Wb=function JKd(a){throw Icb(new qhb)};var B5=zeb(mGe,'AbstractEList/NonResolvingEListIterator',391);mdb(2042,71,DHe);_.Ci=function RKd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=JD(fud(this.a,4),129);k=j==null?0:j.length;m=k+e;d=PKd(this,m);l=k-a;l>0&&ohb(j,a,d,a+e,l);i=b.Jc();for(g=0;gc)throw Icb(new cKd(a,c));return new yLd(this,a)};_.$b=function YKd(){var a,b;++this.j;a=JD(fud(this.a,4),129);b=a==null?0:a.length;zbe(this,null);aFd(this,b,a)};_.Gc=function ZKd(a){var b,c,d,e,f;b=JD(fud(this.a,4),129);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw Icb(new cKd(a,c));return b[a]};_.bd=function _Kd(a){var b,c,d;b=JD(fud(this.a,4),129);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw Icb(new cKd(a,c));return new qLd(this,a)};_.Ri=function eLd(a,b){var c,d,e;c=OKd(this);e=c==null?0:c.length;if(a>=e)throw Icb(new Cdb(GGe+a+HGe+e));if(b>=e)throw Icb(new Cdb(IGe+b+HGe+e));d=c[b];if(a!=b){a0&&ohb(a,0,b,0,c);return b};_.Oc=function kLd(a){var b,c,d;b=JD(fud(this.a,4),129);d=b==null?0:b.length;if(d>0){if(a.lengthd&&VC(a,d,null);return a};var LKd;var I5=zeb(mGe,'ArrayDelegatingEList',2042);mdb(1032,42,Ate,lLd);_.Vj=function mLd(){if(this.b.j!=this.f||XD(JD(fud(this.b.a,4),129))!==XD(this.a)){throw Icb(new Oqb)}};_.Qb=function nLd(){eKd(this);this.a=JD(fud(this.b.a,4),129)};var E5=zeb(mGe,'ArrayDelegatingEList/EIterator',1032);mdb(712,286,Jte,pLd,qLd);_.Vj=function rLd(){if(this.b.j!=this.f||XD(JD(fud(this.b.a,4),129))!==XD(this.a)){throw Icb(new Oqb)}};_.Yj=function sLd(a){nKd(this,a);this.a=JD(fud(this.b.a,4),129)};_.Qb=function tLd(){eKd(this);this.a=JD(fud(this.b.a,4),129)};var F5=zeb(mGe,'ArrayDelegatingEList/EListIterator',712);mdb(1033,355,Ate,uLd);_.Vj=function vLd(){if(this.b.j!=this.f||XD(JD(fud(this.b.a,4),129))!==XD(this.a)){throw Icb(new Oqb)}};var G5=zeb(mGe,'ArrayDelegatingEList/NonResolvingEIterator',1033);mdb(713,391,Jte,xLd,yLd);_.Vj=function zLd(){if(this.b.j!=this.f||XD(JD(fud(this.b.a,4),129))!==XD(this.a)){throw Icb(new Oqb)}};var H5=zeb(mGe,'ArrayDelegatingEList/NonResolvingEListIterator',713);mdb(605,305,lve,ALd);var J5=zeb(mGe,'BasicEList/BasicIndexOutOfBoundsException',605);mdb(699,67,JGe,BLd);_._c=function CLd(a,b){throw Icb(new qhb)};_.Ec=function DLd(a){throw Icb(new qhb)};_.ad=function ELd(a,b){throw Icb(new qhb)};_.Fc=function FLd(a){throw Icb(new qhb)};_.$b=function GLd(){throw Icb(new qhb)};_.Zi=function HLd(a){throw Icb(new qhb)};_.Jc=function ILd(){return this.Gi()};_.cd=function JLd(){return this.Hi()};_.dd=function KLd(a){return this.Ii(a)};_.Ri=function LLd(a,b){throw Icb(new qhb)};_.Si=function MLd(a,b){throw Icb(new qhb)};_.ed=function NLd(a){throw Icb(new qhb)};_.Kc=function OLd(a){throw Icb(new qhb)};_.fd=function PLd(a,b){throw Icb(new qhb)};var K5=zeb(mGe,'BasicEList/UnmodifiableEList',699);mdb(711,1,{3:1,20:1,18:1,16:1,61:1,586:1});_._c=function oMd(a,b){QLd(this,a,JD(b,45))};_.Ec=function pMd(a){return RLd(this,JD(a,45))};_.Ic=function xMd(a){Efb(this,a)};_.Xb=function yMd(a){return JD(SFd(this.c,a),136)};_.Ri=function HMd(a,b){return JD(this.c.Ri(a,b),45)};_.Si=function IMd(a,b){gMd(this,a,JD(b,45))};_.ed=function LMd(a){return JD(this.c.ed(a),45)};_.fd=function NMd(a,b){return mMd(this,a,JD(b,45))};_.gd=function PMd(a){yub(this,a)};_.Lc=function QMd(){return new Wvb(this,16)};_.Mc=function RMd(){return new gCb(null,new Wvb(this,16))};_.ad=function qMd(a,b){return this.c.ad(a,b)};_.Fc=function rMd(a){return this.c.Fc(a)};_.$b=function sMd(){this.c.$b()};_.Gc=function tMd(a){return this.c.Gc(a)};_.Hc=function uMd(a){return Ae(this.c,a)};_.Zj=function vMd(){var a,b,c;if(this.d==null){this.d=SC(L5,EHe,67,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Jc();b.e!=b.i.gc();){a=JD(b.Wj(),136);WLd(this,a)}this.e=c}};_.Fb=function wMd(a){return _Ld(this,a)};_.Hb=function zMd(){return eFd(this.c)};_.bd=function AMd(a){return this.c.bd(a)};_.$j=function BMd(){this.c=new ZMd(this)};_.dc=function CMd(){return this.f==0};_.Jc=function DMd(){return this.c.Jc()};_.cd=function EMd(){return this.c.cd()};_.dd=function FMd(a){return this.c.dd(a)};_._j=function GMd(){return fMd(this)};_.ak=function JMd(a,b,c){return new ZNd(a,b,c)};_.bk=function KMd(){return new dNd};_.Kc=function MMd(a){return jMd(this,a)};_.gc=function OMd(){return this.f};_.hd=function SMd(a,b){return new Yjb(this.c,a,b)};_.Nc=function TMd(){return this.c.Nc()};_.Oc=function UMd(a){return this.c.Oc(a)};_.Ib=function VMd(){return hFd(this.c)};_.e=0;_.f=0;var Y5=zeb(mGe,'BasicEMap',711);mdb(1027,67,JGe,ZMd);_.Ki=function $Md(a,b){WMd(this,JD(b,136))};_.Ni=function aNd(a,b,c){var d;++(d=this,JD(b,136),d).a.e};_.Oi=function bNd(a,b){XMd(this,JD(b,136))};_.Pi=function cNd(a,b,c){YMd(this,JD(b,136),JD(c,136))};_.Mi=function _Md(a,b){VLd(this.a)};var M5=zeb(mGe,'BasicEMap/1',1027);mdb(1028,67,JGe,dNd);_.$i=function eNd(a){return SC(V5,FHe,611,a,0,1)};var N5=zeb(mGe,'BasicEMap/2',1028);mdb(1029,Ete,Fte,fNd);_.$b=function gNd(){this.a.c.$b()};_.Gc=function hNd(a){return SLd(this.a,a)};_.Jc=function iNd(){return this.a.f==0?(jOd(),iOd.a):new ENd(this.a)};_.Kc=function jNd(a){var b;b=this.a.f;lMd(this.a,a);return this.a.f!=b};_.gc=function kNd(){return this.a.f};var O5=zeb(mGe,'BasicEMap/3',1029);mdb(1030,31,Dte,lNd);_.$b=function mNd(){this.a.c.$b()};_.Gc=function nNd(a){return TLd(this.a,a)};_.Jc=function oNd(){return this.a.f==0?(jOd(),iOd.a):new GNd(this.a)};_.gc=function pNd(){return this.a.f};var P5=zeb(mGe,'BasicEMap/4',1030);mdb(1031,Ete,Fte,rNd);_.$b=function sNd(){this.a.c.$b()};_.Gc=function tNd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&RD(a,45)){this.a.Zj();i=JD(a,45);h=i.jd();e=h==null?0:tb(h);f=dMd(this.a,e);b=this.a.d[f];if(b){c=JD(b.g,374);j=b.i;for(g=0;g'+this.c};_.a=0;var V5=zeb(mGe,'BasicEMap/EntryImpl',611);mdb(534,1,{},hOd);var X5=zeb(mGe,'BasicEMap/View',534);var iOd;mdb(769,1,{});_.Fb=function xOd(a){return It((Fnb(),Cnb),a)};_.Hb=function yOd(){return Jnb((Fnb(),Cnb))};_.Ib=function zOd(){return Ee((Fnb(),Cnb))};var b6=zeb(mGe,'ECollections/BasicEmptyUnmodifiableEList',769);mdb(1302,1,Jte,AOd);_.Nb=function COd(a){ctb(this,a)};_.Rb=function BOd(a){throw Icb(new qhb)};_.Ob=function DOd(){return false};_.Sb=function EOd(){return false};_.Pb=function FOd(){throw Icb(new Hub)};_.Tb=function GOd(){return 0};_.Ub=function HOd(){throw Icb(new Hub)};_.Vb=function IOd(){return -1};_.Qb=function JOd(){throw Icb(new qhb)};_.Wb=function KOd(a){throw Icb(new qhb)};var a6=zeb(mGe,'ECollections/BasicEmptyUnmodifiableEList/1',1302);mdb(1300,769,{20:1,18:1,16:1,61:1},LOd);_._c=function MOd(a,b){mOd()};_.Ec=function NOd(a){return nOd()};_.ad=function OOd(a,b){return oOd()};_.Fc=function POd(a){return pOd()};_.$b=function QOd(){qOd()};_.Gc=function ROd(a){return false};_.Hc=function SOd(a){return false};_.Ic=function TOd(a){Efb(this,a)};_.Xb=function UOd(a){return Pnb((Fnb(),Cnb,a)),null};_.bd=function VOd(a){return -1};_.dc=function WOd(){return true};_.Jc=function XOd(){return this.a};_.cd=function YOd(){return this.a};_.dd=function ZOd(a){return this.a};_.Ri=function $Od(a,b){return rOd()};_.Si=function _Od(a,b){sOd()};_.ed=function aPd(a){return tOd()};_.Kc=function bPd(a){return uOd()};_.fd=function cPd(a,b){return vOd()};_.gc=function dPd(){return 0};_.gd=function ePd(a){yub(this,a)};_.Lc=function fPd(){return new Wvb(this,16)};_.Mc=function gPd(){return new gCb(null,new Wvb(this,16))};_.hd=function hPd(a,b){return Fnb(),new Yjb(Cnb,a,b)};_.Nc=function iPd(){return Ce((Fnb(),Cnb))};_.Oc=function jPd(a){return Fnb(),De(Cnb,a)};var c6=zeb(mGe,'ECollections/EmptyUnmodifiableEList',1300);mdb(1301,769,{20:1,18:1,16:1,61:1,586:1},kPd);_._c=function lPd(a,b){mOd()};_.Ec=function mPd(a){return nOd()};_.ad=function nPd(a,b){return oOd()};_.Fc=function oPd(a){return pOd()};_.$b=function pPd(){qOd()};_.Gc=function qPd(a){return false};_.Hc=function rPd(a){return false};_.Ic=function sPd(a){Efb(this,a)};_.Xb=function tPd(a){return Pnb((Fnb(),Cnb,a)),null};_.bd=function uPd(a){return -1};_.dc=function vPd(){return true};_.Jc=function wPd(){return this.a};_.cd=function xPd(){return this.a};_.dd=function yPd(a){return this.a};_.Ri=function APd(a,b){return rOd()};_.Si=function BPd(a,b){sOd()};_.ed=function CPd(a){return tOd()};_.Kc=function DPd(a){return uOd()};_.fd=function EPd(a,b){return vOd()};_.gc=function FPd(){return 0};_.gd=function GPd(a){yub(this,a)};_.Lc=function HPd(){return new Wvb(this,16)};_.Mc=function IPd(){return new gCb(null,new Wvb(this,16))};_.hd=function JPd(a,b){return Fnb(),new Yjb(Cnb,a,b)};_.Nc=function KPd(){return Ce((Fnb(),Cnb))};_.Oc=function LPd(a){return Fnb(),De(Cnb,a)};_._j=function zPd(){return Fnb(),Fnb(),Dnb};var d6=zeb(mGe,'ECollections/EmptyUnmodifiableEMap',1301);var f6=Beb(mGe,'Enumerator');var MPd;mdb(290,1,{290:1},jQd);_.Fb=function nQd(a){var b;if(this===a)return true;if(!RD(a,290))return false;b=JD(a,290);return this.f==b.f&&pQd(this.i,b.i)&&oQd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&oQd(this.d,b.d)&&oQd(this.g,b.g)&&oQd(this.e,b.e)&&gQd(this,b)};_.Hb=function sQd(){return this.f};_.Ib=function AQd(){return hQd(this)};_.f=0;var QPd=0,RPd=0,SPd=0,TPd=0,UPd=0,VPd=0,WPd=0,XPd=0,YPd=0,ZPd,$Pd=0,_Pd=0,aQd=0,bQd=0,cQd,dQd;var k6=zeb(mGe,'URI',290);mdb(1090,44,Hve,KQd);_.yc=function LQd(a,b){return JD(fjb(this,OD(a),JD(b,290)),290)};var j6=zeb(mGe,'URI/URICache',1090);mdb(492,67,JGe,MQd,NQd);_.Qi=function OQd(){return true};var l6=zeb(mGe,'UniqueEList',492);mdb(578,63,tue,PQd);var m6=zeb(mGe,'WrappedException',578);var n6=Beb(pFe,JHe);var I6=Beb(pFe,KHe);var G6=Beb(pFe,LHe);var o6=Beb(pFe,MHe);var q6=Beb(pFe,NHe);var p6=Beb(pFe,'EClass');var s6=Beb(pFe,'EDataType');var QQd;mdb(1198,44,Hve,TQd);_.xc=function UQd(a){return VD(a)?cjb(this,a):Wd(vsb(this.f,a))};var r6=zeb(pFe,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1198);var u6=Beb(pFe,'EEnum');var t6=Beb(pFe,OHe);var w6=Beb(pFe,PHe);var A6=Beb(pFe,QHe);var VQd;var C6=Beb(pFe,RHe);var D6=Beb(pFe,SHe);mdb(1023,1,{},ZQd);_.Ib=function $Qd(){return 'NIL'};var E6=zeb(pFe,'EStructuralFeature/Internal/DynamicValueHolder/1',1023);var _Qd;mdb(1022,44,Hve,cRd);_.xc=function dRd(a){return VD(a)?cjb(this,a):Wd(vsb(this.f,a))};var F6=zeb(pFe,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1022);var H6=Beb(pFe,THe);var J6=Beb(pFe,'EValidator/PatternMatcher');var eRd;var gRd;var iRd;var kRd,lRd,mRd,nRd,oRd,pRd,qRd,rRd,sRd,tRd,uRd,vRd,wRd,xRd,yRd,zRd,ARd,BRd,CRd,DRd,ERd,FRd,GRd;var Rab=Beb(UHe,'FeatureMap/Entry');mdb(533,1,{75:1},IRd);_.Jk=function JRd(){return this.a};_.kd=function KRd(){return this.b};var K6=zeb(MFe,'BasicEObjectImpl/1',533);mdb(1021,1,VHe,LRd);_.Dk=function MRd(a){return Osd(this.a,this.b,a)};_.Oj=function NRd(){return Usd(this.a,this.b)};_.Wb=function ORd(a){etd(this.a,this.b,a)};_.Ek=function PRd(){itd(this.a,this.b)};var L6=zeb(MFe,'BasicEObjectImpl/4',1021);mdb(2043,1,{114:1});_.Kk=function SRd(a){this.e=a==0?QRd:SC(aJ,rte,1,a,5,1)};_.ii=function TRd(a){return this.e[a]};_.ji=function URd(a,b){this.e[a]=b};_.ki=function VRd(a){this.e[a]=null};_.Lk=function WRd(){return this.c};_.Mk=function XRd(){throw Icb(new qhb)};_.Nk=function YRd(){throw Icb(new qhb)};_.Ok=function ZRd(){return this.d};_.Pk=function $Rd(){return this.e!=null};_.Qk=function _Rd(a){this.c=a};_.Rk=function aSd(a){throw Icb(new qhb)};_.Sk=function bSd(a){throw Icb(new qhb)};_.Tk=function cSd(a){this.d=a};var QRd;var M6=zeb(MFe,'BasicEObjectImpl/EPropertiesHolderBaseImpl',2043);mdb(192,2043,{114:1},dSd);_.Mk=function eSd(){return this.a};_.Nk=function fSd(){return this.b};_.Rk=function gSd(a){this.a=a};_.Sk=function hSd(a){this.b=a};var N6=zeb(MFe,'BasicEObjectImpl/EPropertiesHolderImpl',192);mdb(501,100,LFe,iSd);_.rh=function jSd(){return this.f};_.wh=function kSd(){return this.k};_.yh=function lSd(a,b){this.g=a;this.i=b};_.Ah=function mSd(){return (this.j&2)==0?this.fi():this.Xh().Lk()};_.Ch=function nSd(){return this.i};_.th=function oSd(){return (this.j&1)!=0};_.Mh=function pSd(){return this.g};_.Sh=function qSd(){return (this.j&4)!=0};_.Xh=function rSd(){return !this.k&&(this.k=new dSd),this.k};_._h=function sSd(a){this.Xh().Qk(a);a?(this.j|=2):(this.j&=-3)};_.bi=function tSd(a){this.Xh().Sk(a);a?(this.j|=4):(this.j&=-5)};_.fi=function uSd(){return (jRd(),iRd).S};_.i=0;_.j=1;var y7=zeb(MFe,'EObjectImpl',501);mdb(785,501,{109:1,94:1,93:1,57:1,114:1,52:1,100:1},xSd);_.ii=function ySd(a){return this.e[a]};_.ji=function zSd(a,b){this.e[a]=b};_.ki=function ASd(a){this.e[a]=null};_.Ah=function BSd(){return this.d};_.Fh=function CSd(a){return zWd(this.d,a)};_.Hh=function DSd(){return this.d};_.Lh=function ESd(){return this.e!=null};_.Xh=function FSd(){!this.k&&(this.k=new TSd);return this.k};_._h=function GSd(a){this.d=a};_.ei=function HSd(){var a;if(this.e==null){a=yWd(this.d);this.e=a==0?vSd:SC(aJ,rte,1,a,5,1)}return this};_.gi=function ISd(){return 0};var vSd;var R6=zeb(MFe,'DynamicEObjectImpl',785);mdb(1483,785,{109:1,45:1,94:1,93:1,136:1,57:1,114:1,52:1,100:1},JSd);_.Fb=function LSd(a){return this===a};_.Hb=function PSd(){return ADb(this)};_._h=function KSd(a){this.d=a;this.b=uWd(a,'key');this.c=uWd(a,WFe)};_.yi=function MSd(){var a;if(this.a==-1){a=Psd(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.jd=function NSd(){return Psd(this,this.b)};_.kd=function OSd(){return Psd(this,this.c)};_.zi=function QSd(a){this.a=a};_.Ai=function RSd(a){etd(this,this.b,a)};_.ld=function SSd(a){var b;b=Psd(this,this.c);etd(this,this.c,a);return b};_.a=0;var P6=zeb(MFe,'DynamicEObjectImpl/BasicEMapEntry',1483);mdb(1484,1,{114:1},TSd);_.Kk=function USd(a){throw Icb(new qhb)};_.ii=function VSd(a){throw Icb(new qhb)};_.ji=function WSd(a,b){throw Icb(new qhb)};_.ki=function XSd(a){throw Icb(new qhb)};_.Lk=function YSd(){throw Icb(new qhb)};_.Mk=function ZSd(){return this.a};_.Nk=function $Sd(){return this.b};_.Ok=function _Sd(){return this.c};_.Pk=function aTd(){throw Icb(new qhb)};_.Qk=function bTd(a){throw Icb(new qhb)};_.Rk=function cTd(a){this.a=a};_.Sk=function dTd(a){this.b=a};_.Tk=function eTd(a){this.c=a};var Q6=zeb(MFe,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1484);mdb(504,161,{109:1,94:1,93:1,587:1,158:1,57:1,114:1,52:1,100:1,504:1,161:1,117:1,118:1},nTd);_.xh=function oTd(a){return gTd(this,a)};_.Ih=function pTd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new QTd((HRd(),DRd),K7,this)),this.b):(!this.b&&(this.b=new QTd((HRd(),DRd),K7,this)),fMd(this.b));case 3:return iTd(this);case 4:return !this.a&&(this.a=new VXd(z6,this,4)),this.a;case 5:return !this.c&&(this.c=new xge(z6,this,5)),this.c;}return Isd(this,a-yWd((HRd(),kRd)),tWd((d=JD(fud(this,16),29),!d?kRd:d),a),b,c)};_.Ph=function qTd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),sJd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?gTd(this,c):this.Cb.Qh(this,-1-e,null,c)));return fTd(this,JD(a,158),c);}return f=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),kRd):d),b),69),f.uk().xk(this,dud(this),b-yWd((HRd(),kRd)),a,c)};_.Rh=function rTd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c);case 2:return !this.b&&(this.b=new QTd((HRd(),DRd),K7,this)),zTd(this.b,a,c);case 3:return fTd(this,null,c);case 4:return !this.a&&(this.a=new VXd(z6,this,4)),tJd(this.a,a,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),kRd):d),b),69),e.uk().yk(this,dud(this),b-yWd((HRd(),kRd)),a,c)};_.Th=function sTd(a){var b;switch(a){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 !!iTd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return Jsd(this,a-yWd((HRd(),kRd)),tWd((b=JD(fud(this,16),29),!b?kRd:b),a))};_.$h=function tTd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:kTd(this,OD(b));return;case 2:!this.b&&(this.b=new QTd((HRd(),DRd),K7,this));ATd(this.b,b);return;case 3:jTd(this,JD(b,158));return;case 4:!this.a&&(this.a=new VXd(z6,this,4));uJd(this.a);!this.a&&(this.a=new VXd(z6,this,4));$Ed(this.a,JD(b,18));return;case 5:!this.c&&(this.c=new xge(z6,this,5));uJd(this.c);!this.c&&(this.c=new xge(z6,this,5));$Ed(this.c,JD(b,18));return;}Ksd(this,a-yWd((HRd(),kRd)),tWd((c=JD(fud(this,16),29),!c?kRd:c),a),b)};_.fi=function uTd(){return HRd(),kRd};_.hi=function vTd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:lTd(this,null);return;case 2:!this.b&&(this.b=new QTd((HRd(),DRd),K7,this));this.b.c.$b();return;case 3:jTd(this,null);return;case 4:!this.a&&(this.a=new VXd(z6,this,4));uJd(this.a);return;case 5:!this.c&&(this.c=new xge(z6,this,5));uJd(this.c);return;}Lsd(this,a-yWd((HRd(),kRd)),tWd((b=JD(fud(this,16),29),!b?kRd:b),a))};_.Ib=function wTd(){return mTd(this)};_.d=null;var T6=zeb(MFe,'EAnnotationImpl',504);mdb(142,711,WHe,BTd);_.Ei=function CTd(a,b){xTd(this,a,JD(b,45))};_.Uk=function DTd(a,b){return yTd(this,JD(a,45),b)};_.Yi=function ETd(a){return JD(JD(this.c,72).Yi(a),136)};_.Gi=function FTd(){return JD(this.c,72).Gi()};_.Hi=function GTd(){return JD(this.c,72).Hi()};_.Ii=function HTd(a){return JD(this.c,72).Ii(a)};_.Vk=function ITd(a,b){return zTd(this,a,b)};_.Dk=function JTd(a){return JD(this.c,77).Dk(a)};_.$j=function KTd(){};_.Oj=function LTd(){return JD(this.c,77).Oj()};_.ak=function MTd(a,b,c){var d;d=JD(zVd(this.b).ti().pi(this.b),136);d.zi(a);d.Ai(b);d.ld(c);return d};_.bk=function NTd(){return new she(this)};_.Wb=function OTd(a){ATd(this,a)};_.Ek=function PTd(){JD(this.c,77).Ek()};var Lab=zeb(UHe,'EcoreEMap',142);mdb(169,142,WHe,QTd);_.Zj=function RTd(){var a,b,c,d,e,f;if(this.d==null){f=SC(L5,EHe,67,2*this.f+1,0,1);for(c=this.c.Jc();c.e!=c.i.gc();){b=JD(c.Wj(),136);d=b.yi();e=(d<e)%f.length;a=f[e];!a&&(a=f[e]=new she(this));a.Ec(b)}this.d=f}};var S6=zeb(MFe,'EAnnotationImpl/1',169);mdb(293,439,{109:1,94:1,93:1,158:1,197:1,57:1,114:1,470:1,52:1,100:1,161:1,293:1,117:1,118:1});_.Ih=function cUd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Ndb(),(this.Bb&256)!=0?true:false;case 3:return Ndb(),(this.Bb&512)!=0?true:false;case 4:return zfb(this.s);case 5:return zfb(this.t);case 6:return Ndb(),this.Hk()?true:false;case 7:return Ndb(),e=this.s,e>=1?true:false;case 8:if(b)return UTd(this);return this.r;case 9:return this.q;}return Isd(this,a-yWd(this.fi()),tWd((d=JD(fud(this,16),29),!d?this.fi():d),a),b,c)};_.Rh=function dUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c);case 9:return TTd(this,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?this.fi():d),b),69),e.uk().yk(this,dud(this),b-yWd(this.fi()),a,c)};_.Th=function eUd(a){var b,c;switch(a){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.Hk();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&h0d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&h0d(this.q).i==0);}return Jsd(this,a-yWd(this.fi()),tWd((b=JD(fud(this,16),29),!b?this.fi():b),a))};_.$h=function fUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:this.ri(OD(b));return;case 2:ZTd(this,Odb(LD(b)));return;case 3:$Td(this,Odb(LD(b)));return;case 4:YTd(this,JD(b,15).a);return;case 5:this.Xk(JD(b,15).a);return;case 8:WTd(this,JD(b,143));return;case 9:d=VTd(this,JD(b,87),null);!!d&&d.mj();return;}Ksd(this,a-yWd(this.fi()),tWd((c=JD(fud(this,16),29),!c?this.fi():c),a),b)};_.fi=function gUd(){return HRd(),FRd};_.hi=function hUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:this.ri(null);return;case 2:ZTd(this,true);return;case 3:$Td(this,true);return;case 4:YTd(this,0);return;case 5:this.Xk(1);return;case 8:WTd(this,null);return;case 9:c=VTd(this,null,null);!!c&&c.mj();return;}Lsd(this,a-yWd(this.fi()),tWd((b=JD(fud(this,16),29),!b?this.fi():b),a))};_.mi=function iUd(){UTd(this);this.Bb|=1};_.Fk=function jUd(){return UTd(this)};_.Gk=function kUd(){return this.t};_.Hk=function lUd(){var a;return a=this.t,a>1||a==-1};_.Qi=function mUd(){return (this.Bb&512)!=0};_.Wk=function nUd(a,b){return XTd(this,a,b)};_.Xk=function oUd(a){_Td(this,a)};_.Ib=function pUd(){return aUd(this)};_.s=0;_.t=1;var I8=zeb(MFe,'ETypedElementImpl',293);mdb(451,293,{109:1,94:1,93:1,158:1,197:1,57:1,179:1,69:1,114:1,470:1,52:1,100:1,161:1,451:1,293:1,117:1,118:1,682:1});_.xh=function GUd(a){return qUd(this,a)};_.Ih=function HUd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Ndb(),(this.Bb&256)!=0?true:false;case 3:return Ndb(),(this.Bb&512)!=0?true:false;case 4:return zfb(this.s);case 5:return zfb(this.t);case 6:return Ndb(),this.Hk()?true:false;case 7:return Ndb(),e=this.s,e>=1?true:false;case 8:if(b)return UTd(this);return this.r;case 9:return this.q;case 10:return Ndb(),(this.Bb&GHe)!=0?true:false;case 11:return Ndb(),(this.Bb&Mte)!=0?true:false;case 12:return Ndb(),(this.Bb&qve)!=0?true:false;case 13:return this.j;case 14:return rUd(this);case 15:return Ndb(),(this.Bb&YHe)!=0?true:false;case 16:return Ndb(),(this.Bb&Pte)!=0?true:false;case 17:return sUd(this);}return Isd(this,a-yWd(this.fi()),tWd((d=JD(fud(this,16),29),!d?this.fi():d),a),b,c)};_.Ph=function IUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),sJd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.Qh(this,-1-e,null,c)));return Gsd(this,a,17,c);}return f=JD(tWd((d=JD(fud(this,16),29),!d?this.fi():d),b),69),f.uk().xk(this,dud(this),b-yWd(this.fi()),a,c)};_.Rh=function JUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c);case 9:return TTd(this,c);case 17:return Gsd(this,null,17,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?this.fi():d),b),69),e.uk().yk(this,dud(this),b-yWd(this.fi()),a,c)};_.Th=function KUd(a){var b,c;switch(a){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.Hk();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&h0d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&h0d(this.q).i==0);case 10:return (this.Bb&GHe)==0;case 11:return (this.Bb&Mte)!=0;case 12:return (this.Bb&qve)!=0;case 13:return this.j!=null;case 14:return rUd(this)!=null;case 15:return (this.Bb&YHe)!=0;case 16:return (this.Bb&Pte)!=0;case 17:return !!sUd(this);}return Jsd(this,a-yWd(this.fi()),tWd((b=JD(fud(this,16),29),!b?this.fi():b),a))};_.$h=function LUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:AUd(this,OD(b));return;case 2:ZTd(this,Odb(LD(b)));return;case 3:$Td(this,Odb(LD(b)));return;case 4:YTd(this,JD(b,15).a);return;case 5:this.Xk(JD(b,15).a);return;case 8:WTd(this,JD(b,143));return;case 9:d=VTd(this,JD(b,87),null);!!d&&d.mj();return;case 10:vUd(this,Odb(LD(b)));return;case 11:DUd(this,Odb(LD(b)));return;case 12:BUd(this,Odb(LD(b)));return;case 13:wUd(this,OD(b));return;case 15:CUd(this,Odb(LD(b)));return;case 16:yUd(this,Odb(LD(b)));return;}Ksd(this,a-yWd(this.fi()),tWd((c=JD(fud(this,16),29),!c?this.fi():c),a),b)};_.fi=function MUd(){return HRd(),ERd};_.hi=function NUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:RD(this.Cb,88)&&tYd(wWd(JD(this.Cb,88)),4);Wxd(this,null);return;case 2:ZTd(this,true);return;case 3:$Td(this,true);return;case 4:YTd(this,0);return;case 5:this.Xk(1);return;case 8:WTd(this,null);return;case 9:c=VTd(this,null,null);!!c&&c.mj();return;case 10:vUd(this,true);return;case 11:DUd(this,false);return;case 12:BUd(this,false);return;case 13:this.i=null;xUd(this,null);return;case 15:CUd(this,false);return;case 16:yUd(this,false);return;}Lsd(this,a-yWd(this.fi()),tWd((b=JD(fud(this,16),29),!b?this.fi():b),a))};_.mi=function OUd(){yde(Oce((jie(),hie),this));UTd(this);this.Bb|=1};_.nk=function PUd(){return this.f};_.gk=function QUd(){return rUd(this)};_.ok=function RUd(){return sUd(this)};_.sk=function SUd(){return null};_.Yk=function TUd(){return this.k};_.Jj=function UUd(){return this.n};_.tk=function VUd(){return tUd(this)};_.uk=function WUd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=sUd(this);(c.i==null&&pWd(c),c.i).length;d=this.sk();!!d&&yWd(sUd(d));e=UTd(this);g=e.ik();a=!g?null:(g.i&1)!=0?g==Fcb?GI:g==cE?UI:g==bE?QI:g==aE?LI:g==dE?XI:g==Ecb?cJ:g==$D?HI:II:g;b=rUd(this);h=e.gk();Khe(this);(this.Bb&Pte)!=0&&(!!(f=Rce((jie(),hie),c))&&f!=this||!!(f=xde(Oce(hie,this))))?(this.p=new X4d(this,f)):this.Hk()?this.$k()?!d?(this.Bb&YHe)!=0?!a?this._k()?(this.p=new g5d(42,this)):(this.p=new g5d(0,this)):a==LK?(this.p=new e5d(50,W5,this)):this._k()?(this.p=new e5d(43,a,this)):(this.p=new e5d(1,a,this)):!a?this._k()?(this.p=new g5d(44,this)):(this.p=new g5d(2,this)):a==LK?(this.p=new e5d(41,W5,this)):this._k()?(this.p=new e5d(45,a,this)):(this.p=new e5d(3,a,this)):(this.Bb&YHe)!=0?!a?this._k()?(this.p=new h5d(46,this,d)):(this.p=new h5d(4,this,d)):this._k()?(this.p=new f5d(47,a,this,d)):(this.p=new f5d(5,a,this,d)):!a?this._k()?(this.p=new h5d(48,this,d)):(this.p=new h5d(6,this,d)):this._k()?(this.p=new f5d(49,a,this,d)):(this.p=new f5d(7,a,this,d)):RD(e,159)?a==Rab?(this.p=new g5d(40,this)):(this.Bb&512)!=0?(this.Bb&YHe)!=0?!a?(this.p=new g5d(8,this)):(this.p=new e5d(9,a,this)):!a?(this.p=new g5d(10,this)):(this.p=new e5d(11,a,this)):(this.Bb&YHe)!=0?!a?(this.p=new g5d(12,this)):(this.p=new e5d(13,a,this)):!a?(this.p=new g5d(14,this)):(this.p=new e5d(15,a,this)):!d?this._k()?(this.Bb&YHe)!=0?!a?(this.p=new g5d(16,this)):(this.p=new e5d(17,a,this)):!a?(this.p=new g5d(18,this)):(this.p=new e5d(19,a,this)):(this.Bb&YHe)!=0?!a?(this.p=new g5d(20,this)):(this.p=new e5d(21,a,this)):!a?(this.p=new g5d(22,this)):(this.p=new e5d(23,a,this)):(i=d.t,i>1||i==-1?this._k()?(this.Bb&YHe)!=0?!a?(this.p=new h5d(24,this,d)):(this.p=new f5d(25,a,this,d)):!a?(this.p=new h5d(26,this,d)):(this.p=new f5d(27,a,this,d)):(this.Bb&YHe)!=0?!a?(this.p=new h5d(28,this,d)):(this.p=new f5d(29,a,this,d)):!a?(this.p=new h5d(30,this,d)):(this.p=new f5d(31,a,this,d)):this._k()?(this.Bb&YHe)!=0?!a?(this.p=new h5d(32,this,d)):(this.p=new f5d(33,a,this,d)):!a?(this.p=new h5d(34,this,d)):(this.p=new f5d(35,a,this,d)):(this.Bb&YHe)!=0?!a?(this.p=new h5d(36,this,d)):(this.p=new f5d(37,a,this,d)):!a?(this.p=new h5d(38,this,d)):(this.p=new f5d(39,a,this,d))):this.Zk()?this._k()?(this.p=new I5d(JD(e,29),this,d)):(this.p=new A5d(JD(e,29),this,d)):RD(e,159)?a==Rab?(this.p=new g5d(40,this)):(this.Bb&YHe)!=0?!a?(this.p=new H6d(JD(e,159),b,h,this)):(this.p=new J6d(b,h,this,($5d(),g==cE?W5d:g==Fcb?R5d:g==dE?X5d:g==bE?V5d:g==aE?U5d:g==Ecb?Z5d:g==$D?S5d:g==_D?T5d:Y5d))):!a?(this.p=new A6d(JD(e,159),b,h,this)):(this.p=new C6d(b,h,this,($5d(),g==cE?W5d:g==Fcb?R5d:g==dE?X5d:g==bE?V5d:g==aE?U5d:g==Ecb?Z5d:g==$D?S5d:g==_D?T5d:Y5d))):this.$k()?!d?(this.Bb&YHe)!=0?this._k()?(this.p=new b7d(JD(e,29),this)):(this.p=new _6d(JD(e,29),this)):this._k()?(this.p=new Z6d(JD(e,29),this)):(this.p=new X6d(JD(e,29),this)):(this.Bb&YHe)!=0?this._k()?(this.p=new j7d(JD(e,29),this,d)):(this.p=new h7d(JD(e,29),this,d)):this._k()?(this.p=new f7d(JD(e,29),this,d)):(this.p=new d7d(JD(e,29),this,d)):this._k()?!d?(this.Bb&YHe)!=0?(this.p=new n7d(JD(e,29),this)):(this.p=new l7d(JD(e,29),this)):(this.Bb&YHe)!=0?(this.p=new r7d(JD(e,29),this,d)):(this.p=new p7d(JD(e,29),this,d)):!d?(this.Bb&YHe)!=0?(this.p=new t7d(JD(e,29),this)):(this.p=new L6d(JD(e,29),this)):(this.Bb&YHe)!=0?(this.p=new x7d(JD(e,29),this,d)):(this.p=new v7d(JD(e,29),this,d))}return this.p};_.pk=function XUd(){return (this.Bb&GHe)!=0};_.Zk=function YUd(){return false};_.$k=function ZUd(){return false};_.qk=function $Ud(){return (this.Bb&Pte)!=0};_.vk=function _Ud(){return uUd(this)};_._k=function aVd(){return false};_.rk=function bVd(){return (this.Bb&YHe)!=0};_.al=function cVd(a){this.k=a};_.ri=function dVd(a){AUd(this,a)};_.Ib=function eVd(){return EUd(this)};_.e=false;_.n=0;var A8=zeb(MFe,'EStructuralFeatureImpl',451);mdb(335,451,{109:1,94:1,93:1,38:1,158:1,197:1,57:1,179:1,69:1,114:1,470:1,52:1,100:1,335:1,161:1,451:1,293:1,117:1,118:1,682:1},kVd);_.Ih=function lVd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Ndb(),(this.Bb&256)!=0?true:false;case 3:return Ndb(),(this.Bb&512)!=0?true:false;case 4:return zfb(this.s);case 5:return zfb(this.t);case 6:return Ndb(),hVd(this)?true:false;case 7:return Ndb(),e=this.s,e>=1?true:false;case 8:if(b)return UTd(this);return this.r;case 9:return this.q;case 10:return Ndb(),(this.Bb&GHe)!=0?true:false;case 11:return Ndb(),(this.Bb&Mte)!=0?true:false;case 12:return Ndb(),(this.Bb&qve)!=0?true:false;case 13:return this.j;case 14:return rUd(this);case 15:return Ndb(),(this.Bb&YHe)!=0?true:false;case 16:return Ndb(),(this.Bb&Pte)!=0?true:false;case 17:return sUd(this);case 18:return Ndb(),(this.Bb&KFe)!=0?true:false;case 19:if(b)return gVd(this);return fVd(this);}return Isd(this,a-yWd((HRd(),lRd)),tWd((d=JD(fud(this,16),29),!d?lRd:d),a),b,c)};_.Th=function mVd(a){var b,c;switch(a){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 hVd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&h0d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&h0d(this.q).i==0);case 10:return (this.Bb&GHe)==0;case 11:return (this.Bb&Mte)!=0;case 12:return (this.Bb&qve)!=0;case 13:return this.j!=null;case 14:return rUd(this)!=null;case 15:return (this.Bb&YHe)!=0;case 16:return (this.Bb&Pte)!=0;case 17:return !!sUd(this);case 18:return (this.Bb&KFe)!=0;case 19:return !!fVd(this);}return Jsd(this,a-yWd((HRd(),lRd)),tWd((b=JD(fud(this,16),29),!b?lRd:b),a))};_.$h=function nVd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:AUd(this,OD(b));return;case 2:ZTd(this,Odb(LD(b)));return;case 3:$Td(this,Odb(LD(b)));return;case 4:YTd(this,JD(b,15).a);return;case 5:jVd(this,JD(b,15).a);return;case 8:WTd(this,JD(b,143));return;case 9:d=VTd(this,JD(b,87),null);!!d&&d.mj();return;case 10:vUd(this,Odb(LD(b)));return;case 11:DUd(this,Odb(LD(b)));return;case 12:BUd(this,Odb(LD(b)));return;case 13:wUd(this,OD(b));return;case 15:CUd(this,Odb(LD(b)));return;case 16:yUd(this,Odb(LD(b)));return;case 18:iVd(this,Odb(LD(b)));return;}Ksd(this,a-yWd((HRd(),lRd)),tWd((c=JD(fud(this,16),29),!c?lRd:c),a),b)};_.fi=function oVd(){return HRd(),lRd};_.hi=function pVd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:RD(this.Cb,88)&&tYd(wWd(JD(this.Cb,88)),4);Wxd(this,null);return;case 2:ZTd(this,true);return;case 3:$Td(this,true);return;case 4:YTd(this,0);return;case 5:this.b=0;_Td(this,1);return;case 8:WTd(this,null);return;case 9:c=VTd(this,null,null);!!c&&c.mj();return;case 10:vUd(this,true);return;case 11:DUd(this,false);return;case 12:BUd(this,false);return;case 13:this.i=null;xUd(this,null);return;case 15:CUd(this,false);return;case 16:yUd(this,false);return;case 18:iVd(this,false);return;}Lsd(this,a-yWd((HRd(),lRd)),tWd((b=JD(fud(this,16),29),!b?lRd:b),a))};_.mi=function qVd(){gVd(this);yde(Oce((jie(),hie),this));UTd(this);this.Bb|=1};_.Hk=function rVd(){return hVd(this)};_.Wk=function sVd(a,b){this.b=0;this.a=null;return XTd(this,a,b)};_.Xk=function tVd(a){jVd(this,a)};_.Ib=function uVd(){var a;if((this.Db&64)!=0)return EUd(this);a=new Zgb(EUd(this));a.a+=' (iD: ';Vgb(a,(this.Bb&KFe)!=0);a.a+=')';return a.a};_.b=0;var U6=zeb(MFe,'EAttributeImpl',335);mdb(360,439,{109:1,94:1,93:1,143:1,158:1,197:1,57:1,114:1,52:1,100:1,360:1,161:1,117:1,118:1,681:1});_.bl=function LVd(a){return a.Ah()==this};_.xh=function MVd(a){return yVd(this,a)};_.yh=function NVd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_.Ih=function OVd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return BVd(this);case 4:return this.gk();case 5:return this.F;case 6:if(b)return zVd(this);return vVd(this);case 7:return !this.A&&(this.A=new gge(H6,this,7)),this.A;}return Isd(this,a-yWd(this.fi()),tWd((d=JD(fud(this,16),29),!d?this.fi():d),a),b,c)};_.Ph=function PVd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),sJd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?yVd(this,c):this.Cb.Qh(this,-1-e,null,c)));return Gsd(this,a,6,c);}return f=JD(tWd((d=JD(fud(this,16),29),!d?this.fi():d),b),69),f.uk().xk(this,dud(this),b-yWd(this.fi()),a,c)};_.Rh=function QVd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c);case 6:return Gsd(this,null,6,c);case 7:return !this.A&&(this.A=new gge(H6,this,7)),tJd(this.A,a,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?this.fi():d),b),69),e.uk().yk(this,dud(this),b-yWd(this.fi()),a,c)};_.Th=function RVd(a){var b;switch(a){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 !!BVd(this);case 4:return this.gk()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!vVd(this);case 7:return !!this.A&&this.A.i!=0;}return Jsd(this,a-yWd(this.fi()),tWd((b=JD(fud(this,16),29),!b?this.fi():b),a))};_.$h=function SVd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:JVd(this,OD(b));return;case 2:GVd(this,OD(b));return;case 5:IVd(this,OD(b));return;case 7:!this.A&&(this.A=new gge(H6,this,7));uJd(this.A);!this.A&&(this.A=new gge(H6,this,7));$Ed(this.A,JD(b,18));return;}Ksd(this,a-yWd(this.fi()),tWd((c=JD(fud(this,16),29),!c?this.fi():c),a),b)};_.fi=function TVd(){return HRd(),nRd};_.hi=function UVd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:RD(this.Cb,184)&&(JD(this.Cb,184).tb=null);Wxd(this,null);return;case 2:wVd(this,null);xVd(this,this.D);return;case 5:IVd(this,null);return;case 7:!this.A&&(this.A=new gge(H6,this,7));uJd(this.A);return;}Lsd(this,a-yWd(this.fi()),tWd((b=JD(fud(this,16),29),!b?this.fi():b),a))};_.fk=function VVd(){var a;return this.G==-1&&(this.G=(a=zVd(this),a?dXd(a.si(),this):-1)),this.G};_.gk=function WVd(){return null};_.hk=function XVd(){return zVd(this)};_.cl=function YVd(){return this.v};_.ik=function ZVd(){return BVd(this)};_.jk=function $Vd(){return this.D!=null?this.D:this.B};_.kk=function _Vd(){return this.F};_.dk=function aWd(a){return DVd(this,a)};_.dl=function bWd(a){this.v=a};_.el=function cWd(a){EVd(this,a)};_.fl=function dWd(a){this.C=a};_.ri=function eWd(a){JVd(this,a)};_.Ib=function fWd(){return KVd(this)};_.C=null;_.D=null;_.G=-1;var k7=zeb(MFe,'EClassifierImpl',360);mdb(88,360,{109:1,94:1,93:1,29:1,143:1,158:1,197:1,57:1,114:1,52:1,100:1,88:1,360:1,161:1,471:1,117:1,118:1,681:1},FWd);_.bl=function GWd(a){return BWd(this,a.Ah())};_.Ih=function HWd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return BVd(this);case 4:return null;case 5:return this.F;case 6:if(b)return zVd(this);return vVd(this);case 7:return !this.A&&(this.A=new gge(H6,this,7)),this.A;case 8:return Ndb(),(this.Bb&256)!=0?true:false;case 9:return Ndb(),(this.Bb&512)!=0?true:false;case 10:return xWd(this);case 11:return !this.q&&(this.q=new A3d(A6,this,11,10)),this.q;case 12:return kWd(this);case 13:return oWd(this);case 14:return oWd(this),this.r;case 15:return kWd(this),this.k;case 16:return lWd(this);case 17:return nWd(this);case 18:return pWd(this);case 19:return qWd(this);case 20:return kWd(this),this.o;case 21:return !this.s&&(this.s=new A3d(G6,this,21,17)),this.s;case 22:return rWd(this);case 23:return mWd(this);}return Isd(this,a-yWd((HRd(),mRd)),tWd((d=JD(fud(this,16),29),!d?mRd:d),a),b,c)};_.Ph=function IWd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),sJd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?yVd(this,c):this.Cb.Qh(this,-1-e,null,c)));return Gsd(this,a,6,c);case 11:return !this.q&&(this.q=new A3d(A6,this,11,10)),sJd(this.q,a,c);case 21:return !this.s&&(this.s=new A3d(G6,this,21,17)),sJd(this.s,a,c);}return f=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),mRd):d),b),69),f.uk().xk(this,dud(this),b-yWd((HRd(),mRd)),a,c)};_.Rh=function JWd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c);case 6:return Gsd(this,null,6,c);case 7:return !this.A&&(this.A=new gge(H6,this,7)),tJd(this.A,a,c);case 11:return !this.q&&(this.q=new A3d(A6,this,11,10)),tJd(this.q,a,c);case 21:return !this.s&&(this.s=new A3d(G6,this,21,17)),tJd(this.s,a,c);case 22:return tJd(rWd(this),a,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),mRd):d),b),69),e.uk().yk(this,dud(this),b-yWd((HRd(),mRd)),a,c)};_.Th=function KWd(a){var b;switch(a){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 !!BVd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!vVd(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&&rWd(this.u.a).i!=0&&!(!!this.n&&bYd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return kWd(this).i!=0;case 13:return oWd(this).i!=0;case 14:return oWd(this),this.r.i!=0;case 15:return kWd(this),this.k.i!=0;case 16:return lWd(this).i!=0;case 17:return nWd(this).i!=0;case 18:return pWd(this).i!=0;case 19:return qWd(this).i!=0;case 20:return kWd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&bYd(this.n);case 23:return mWd(this).i!=0;}return Jsd(this,a-yWd((HRd(),mRd)),tWd((b=JD(fud(this,16),29),!b?mRd:b),a))};_.Wh=function LWd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:uWd(this,a);return b?b:gxd(this,a)};_.$h=function MWd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:JVd(this,OD(b));return;case 2:GVd(this,OD(b));return;case 5:IVd(this,OD(b));return;case 7:!this.A&&(this.A=new gge(H6,this,7));uJd(this.A);!this.A&&(this.A=new gge(H6,this,7));$Ed(this.A,JD(b,18));return;case 8:CWd(this,Odb(LD(b)));return;case 9:DWd(this,Odb(LD(b)));return;case 10:XHd(xWd(this));$Ed(xWd(this),JD(b,18));return;case 11:!this.q&&(this.q=new A3d(A6,this,11,10));uJd(this.q);!this.q&&(this.q=new A3d(A6,this,11,10));$Ed(this.q,JD(b,18));return;case 21:!this.s&&(this.s=new A3d(G6,this,21,17));uJd(this.s);!this.s&&(this.s=new A3d(G6,this,21,17));$Ed(this.s,JD(b,18));return;case 22:uJd(rWd(this));$Ed(rWd(this),JD(b,18));return;}Ksd(this,a-yWd((HRd(),mRd)),tWd((c=JD(fud(this,16),29),!c?mRd:c),a),b)};_.fi=function NWd(){return HRd(),mRd};_.hi=function OWd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:RD(this.Cb,184)&&(JD(this.Cb,184).tb=null);Wxd(this,null);return;case 2:wVd(this,null);xVd(this,this.D);return;case 5:IVd(this,null);return;case 7:!this.A&&(this.A=new gge(H6,this,7));uJd(this.A);return;case 8:CWd(this,false);return;case 9:DWd(this,false);return;case 10:!!this.u&&XHd(this.u);return;case 11:!this.q&&(this.q=new A3d(A6,this,11,10));uJd(this.q);return;case 21:!this.s&&(this.s=new A3d(G6,this,21,17));uJd(this.s);return;case 22:!!this.n&&uJd(this.n);return;}Lsd(this,a-yWd((HRd(),mRd)),tWd((b=JD(fud(this,16),29),!b?mRd:b),a))};_.mi=function PWd(){var a,b;kWd(this);oWd(this);lWd(this);nWd(this);pWd(this);qWd(this);mWd(this);QFd(oYd(wWd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){SFd(this,b)}}return ZFd(this,a)};_.Ek=function LXd(){uJd(this)};_.Xi=function MXd(a,b){return hXd(this,a,b)};var Gab=zeb(UHe,'EcoreEList',623);mdb(491,623,iIe,NXd);_.Ji=function OXd(){return false};_.Jj=function PXd(){return this.c};_.Kj=function QXd(){return false};_.ml=function RXd(){return true};_.Qi=function SXd(){return true};_.Ui=function TXd(a,b){return b};_.Wi=function UXd(){return false};_.c=0;var qab=zeb(UHe,'EObjectEList',491);mdb(81,491,iIe,VXd);_.Kj=function WXd(){return true};_.kl=function XXd(){return false};_.$k=function YXd(){return true};var kab=zeb(UHe,'EObjectContainmentEList',81);mdb(543,81,iIe,ZXd);_.Li=function $Xd(){this.b=true};_.Oj=function _Xd(){return this.b};_.Ek=function aYd(){var a;uJd(this);if(Vsd(this.e)){a=this.b;this.b=false;zsd(this.e,new O1d(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var jab=zeb(UHe,'EObjectContainmentEList/Unsettable',543);mdb(1130,543,iIe,fYd);_.Ri=function jYd(a,b){var c,d;return c=JD(wJd(this,a,b),87),Vsd(this.e)&&cXd(this,new a2d(this.a,7,(HRd(),oRd),zfb(b),(d=c.c,RD(d,88)?JD(d,29):xRd),a)),c};_.Sj=function kYd(a,b){return cYd(this,JD(a,87),b)};_.Tj=function lYd(a,b){return dYd(this,JD(a,87),b)};_.Uj=function mYd(a,b,c){return eYd(this,JD(a,87),JD(b,87),c)};_.Gj=function gYd(a,b,c,d,e){switch(a){case 3:{return bXd(this,a,b,c,d,this.i>1)}case 5:{return bXd(this,a,b,c,d,this.i-JD(c,16).gc()>0)}default:{return new N1d(this.e,a,this.c,b,c,d,true)}}};_.Rj=function hYd(){return true};_.Oj=function iYd(){return bYd(this)};_.Ek=function nYd(){uJd(this)};var $6=zeb(MFe,'EClassImpl/1',1130);mdb(1144,1143,yHe);_.bj=function rYd(a){var b,c,d,e,f,g,h;c=a.ej();if(c!=8){d=qYd(a);if(d==0){switch(c){case 1:case 9:{h=a.ij();if(h!=null){b=wWd(JD(h,471));!b.c&&(b.c=new V7d);fFd(b.c,a.hj())}g=a.gj();if(g!=null){e=JD(g,471);if((e.Bb&1)==0){b=wWd(e);!b.c&&(b.c=new V7d);YEd(b.c,JD(a.hj(),29))}}break}case 3:{g=a.gj();if(g!=null){e=JD(g,471);if((e.Bb&1)==0){b=wWd(e);!b.c&&(b.c=new V7d);YEd(b.c,JD(a.hj(),29))}}break}case 5:{g=a.gj();if(g!=null){for(f=JD(g,18).Jc();f.Ob();){e=JD(f.Pb(),471);if((e.Bb&1)==0){b=wWd(e);!b.c&&(b.c=new V7d);YEd(b.c,JD(a.hj(),29))}}}break}case 4:{h=a.ij();if(h!=null){e=JD(h,471);if((e.Bb&1)==0){b=wWd(e);!b.c&&(b.c=new V7d);fFd(b.c,a.hj())}}break}case 6:{h=a.ij();if(h!=null){for(f=JD(h,18).Jc();f.Ob();){e=JD(f.Pb(),471);if((e.Bb&1)==0){b=wWd(e);!b.c&&(b.c=new V7d);fFd(b.c,a.hj())}}}break}}}this.ol(d)}};_.ol=function sYd(a){pYd(this,a)};_.b=63;var C8=zeb(MFe,'ESuperAdapter',1144);mdb(1145,1144,yHe,uYd);_.ol=function vYd(a){tYd(this,a)};var V6=zeb(MFe,'EClassImpl/10',1145);mdb(1134,699,iIe);_.Ci=function wYd(a,b){return KFd(this,a,b)};_.Di=function xYd(a){return LFd(this,a)};_.Ei=function yYd(a,b){MFd(this,a,b)};_.Fi=function zYd(a){NFd(this,a)};_.Yi=function BYd(a){return PFd(this,a)};_.Vi=function JYd(a,b){return WFd(this,a,b)};_.Uk=function AYd(a,b){throw Icb(new qhb)};_.Gi=function CYd(){return new AKd(this)};_.Hi=function DYd(){return new DKd(this)};_.Ii=function EYd(a){return _Ed(this,a)};_.Vk=function FYd(a,b){throw Icb(new qhb)};_.Dk=function GYd(a){return this};_.Oj=function HYd(){return this.i!=0};_.Wb=function IYd(a){throw Icb(new qhb)};_.Ek=function KYd(){throw Icb(new qhb)};var Fab=zeb(UHe,'EcoreEList/UnmodifiableEList',1134);mdb(333,1134,iIe,LYd);_.Wi=function MYd(){return false};var Eab=zeb(UHe,'EcoreEList/UnmodifiableEList/FastCompare',333);mdb(1137,333,iIe,PYd);_.bd=function QYd(a){var b,c,d;if(RD(a,179)){b=JD(a,179);c=b.Jj();if(c!=-1){for(d=this.i;c4){if(this.dk(a)){if(this.$k()){d=JD(a,52);c=d.Bh();h=c==this.b&&(this.kl()?d.vh(d.Ch(),JD(tWd(bud(this.b),this.Jj()).Fk(),29).ik())==X3d(JD(tWd(bud(this.b),this.Jj()),19)).n:-1-d.Ch()==this.Jj());if(this.ll()&&!h&&!c&&!!d.Gh()){for(e=0;e1||d==-1)}else{return false}};_.kl=function $Zd(){var a,b,c;b=tWd(bud(this.b),this.Jj());if(RD(b,103)){a=JD(b,19);c=X3d(a);return !!c}else{return false}};_.ll=function _Zd(){var a,b;b=tWd(bud(this.b),this.Jj());if(RD(b,103)){a=JD(b,19);return (a.Bb&tve)!=0}else{return false}};_.bd=function a$d(a){var b,c,d,e;d=this.xj(a);if(d>=0)return d;if(this.ml()){for(c=0,e=this.Cj();c=0;--a){LZd(this,a,this.vj(a))}}return this.Dj()};_.Oc=function m$d(a){var b;if(this.ll()){for(b=this.Cj()-1;b>=0;--b){LZd(this,b,this.vj(b))}}return this.Ej(a)};_.Ek=function n$d(){XHd(this)};_.Xi=function o$d(a,b){return NZd(this,a,b)};var X9=zeb(UHe,'DelegatingEcoreEList',744);mdb(1140,744,nIe,u$d);_.oj=function x$d(a,b){p$d(this,a,JD(b,29))};_.pj=function y$d(a){q$d(this,JD(a,29))};_.vj=function E$d(a){var b,c;return b=JD(SFd(rWd(this.a),a),87),c=b.c,RD(c,88)?JD(c,29):(HRd(),xRd)};_.Aj=function J$d(a){var b,c;return b=JD(xJd(rWd(this.a),a),87),c=b.c,RD(c,88)?JD(c,29):(HRd(),xRd)};_.Bj=function K$d(a,b){return s$d(this,a,JD(b,29))};_.Ji=function v$d(){return false};_.Gj=function w$d(a,b,c,d,e){return null};_.qj=function z$d(){return new a_d(this)};_.rj=function A$d(){uJd(rWd(this.a))};_.sj=function B$d(a){return r$d(this,a)};_.tj=function C$d(a){var b,c;for(c=a.Jc();c.Ob();){b=c.Pb();if(!r$d(this,b)){return false}}return true};_.uj=function D$d(a){var b,c,d;if(RD(a,16)){d=JD(a,16);if(d.gc()==rWd(this.a).i){for(b=d.Jc(),c=new fKd(this);b.Ob();){if(XD(b.Pb())!==XD(dKd(c))){return false}}return true}}return false};_.wj=function F$d(){var a,b,c,d,e;c=1;for(b=new fKd(rWd(this.a));b.e!=b.i.gc();){a=JD(dKd(b),87);d=(e=a.c,RD(e,88)?JD(e,29):(HRd(),xRd));c=31*c+(!d?0:ADb(d))}return c};_.xj=function G$d(a){var b,c,d,e;d=0;for(c=new fKd(rWd(this.a));c.e!=c.i.gc();){b=JD(dKd(c),87);if(XD(a)===XD((e=b.c,RD(e,88)?JD(e,29):(HRd(),xRd)))){return d}++d}return -1};_.yj=function H$d(){return rWd(this.a).i==0};_.zj=function I$d(){return null};_.Cj=function L$d(){return rWd(this.a).i};_.Dj=function M$d(){var a,b,c,d,e,f;f=rWd(this.a).i;e=SC(aJ,rte,1,f,5,1);c=0;for(b=new fKd(rWd(this.a));b.e!=b.i.gc();){a=JD(dKd(b),87);e[c++]=(d=a.c,RD(d,88)?JD(d,29):(HRd(),xRd))}return e};_.Ej=function N$d(a){var b,c,d,e,f,g,h;h=rWd(this.a).i;if(a.lengthh&&VC(a,h,null);d=0;for(c=new fKd(rWd(this.a));c.e!=c.i.gc();){b=JD(dKd(c),87);f=(g=b.c,RD(g,88)?JD(g,29):(HRd(),xRd));VC(a,d++,f)}return a};_.Fj=function O$d(){var a,b,c,d,e;e=new Xgb;e.a+='[';a=rWd(this.a);for(b=0,d=rWd(this.a).i;b>16,e>=0?yVd(this,c):this.Cb.Qh(this,-1-e,null,c)));return Gsd(this,a,6,c);case 9:return !this.a&&(this.a=new A3d(t6,this,9,5)),sJd(this.a,a,c);}return f=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),qRd):d),b),69),f.uk().xk(this,dud(this),b-yWd((HRd(),qRd)),a,c)};_.Rh=function B_d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c);case 6:return Gsd(this,null,6,c);case 7:return !this.A&&(this.A=new gge(H6,this,7)),tJd(this.A,a,c);case 9:return !this.a&&(this.a=new A3d(t6,this,9,5)),tJd(this.a,a,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),qRd):d),b),69),e.uk().yk(this,dud(this),b-yWd((HRd(),qRd)),a,c)};_.Th=function C_d(a){var b;switch(a){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 !!BVd(this);case 4:return !!w_d(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!vVd(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 Jsd(this,a-yWd((HRd(),qRd)),tWd((b=JD(fud(this,16),29),!b?qRd:b),a))};_.$h=function D_d(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:JVd(this,OD(b));return;case 2:GVd(this,OD(b));return;case 5:IVd(this,OD(b));return;case 7:!this.A&&(this.A=new gge(H6,this,7));uJd(this.A);!this.A&&(this.A=new gge(H6,this,7));$Ed(this.A,JD(b,18));return;case 8:h_d(this,Odb(LD(b)));return;case 9:!this.a&&(this.a=new A3d(t6,this,9,5));uJd(this.a);!this.a&&(this.a=new A3d(t6,this,9,5));$Ed(this.a,JD(b,18));return;}Ksd(this,a-yWd((HRd(),qRd)),tWd((c=JD(fud(this,16),29),!c?qRd:c),a),b)};_.fi=function E_d(){return HRd(),qRd};_.hi=function F_d(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:RD(this.Cb,184)&&(JD(this.Cb,184).tb=null);Wxd(this,null);return;case 2:wVd(this,null);xVd(this,this.D);return;case 5:IVd(this,null);return;case 7:!this.A&&(this.A=new gge(H6,this,7));uJd(this.A);return;case 8:h_d(this,true);return;case 9:!this.a&&(this.a=new A3d(t6,this,9,5));uJd(this.a);return;}Lsd(this,a-yWd((HRd(),qRd)),tWd((b=JD(fud(this,16),29),!b?qRd:b),a))};_.mi=function G_d(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?JD(this.Cb,675):null;}return Isd(this,a-yWd((HRd(),rRd)),tWd((d=JD(fud(this,16),29),!d?rRd:d),a),b,c)};_.Ph=function S_d(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),sJd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?K_d(this,c):this.Cb.Qh(this,-1-e,null,c)));return Gsd(this,a,5,c);}return f=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),rRd):d),b),69),f.uk().xk(this,dud(this),b-yWd((HRd(),rRd)),a,c)};_.Rh=function T_d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c);case 5:return Gsd(this,null,5,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),rRd):d),b),69),e.uk().yk(this,dud(this),b-yWd((HRd(),rRd)),a,c)};_.Th=function U_d(a){var b;switch(a){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?JD(this.Cb,675):null);}return Jsd(this,a-yWd((HRd(),rRd)),tWd((b=JD(fud(this,16),29),!b?rRd:b),a))};_.$h=function V_d(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:Wxd(this,OD(b));return;case 2:O_d(this,JD(b,15).a);return;case 3:M_d(this,JD(b,2001));return;case 4:N_d(this,OD(b));return;}Ksd(this,a-yWd((HRd(),rRd)),tWd((c=JD(fud(this,16),29),!c?rRd:c),a),b)};_.fi=function W_d(){return HRd(),rRd};_.hi=function X_d(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:Wxd(this,null);return;case 2:O_d(this,0);return;case 3:M_d(this,null);return;case 4:N_d(this,null);return;}Lsd(this,a-yWd((HRd(),rRd)),tWd((b=JD(fud(this,16),29),!b?rRd:b),a))};_.Ib=function Z_d(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var n7=zeb(MFe,'EEnumLiteralImpl',568);var p7=Beb(MFe,'EFactoryImpl/InternalEDateTimeFormat');mdb(485,1,{2076:1},a0d);var o7=zeb(MFe,'EFactoryImpl/1ClientInternalEDateTimeFormat',485);mdb(248,118,{109:1,94:1,93:1,87:1,57:1,114:1,52:1,100:1,248:1,117:1,118:1},q0d);_.zh=function r0d(a,b,c){var d;c=Gsd(this,a,b,c);if(!!this.e&&RD(a,179)){d=i0d(this,this.e);d!=this.c&&(c=m0d(this,d,c))}return c};_.Ih=function s0d(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new VXd(w6,this,1)),this.d;case 2:if(b)return g0d(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return f0d(this);return this.a;}return Isd(this,a-yWd((HRd(),tRd)),tWd((d=JD(fud(this,16),29),!d?tRd:d),a),b,c)};_.Rh=function t0d(a,b,c){var d,e;switch(b){case 0:return e0d(this,null,c);case 1:return !this.d&&(this.d=new VXd(w6,this,1)),tJd(this.d,a,c);case 3:return c0d(this,null,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),tRd):d),b),69),e.uk().yk(this,dud(this),b-yWd((HRd(),tRd)),a,c)};_.Th=function u0d(a){var b;switch(a){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 Jsd(this,a-yWd((HRd(),tRd)),tWd((b=JD(fud(this,16),29),!b?tRd:b),a))};_.$h=function v0d(a,b){var c;switch(a){case 0:o0d(this,JD(b,87));return;case 1:!this.d&&(this.d=new VXd(w6,this,1));uJd(this.d);!this.d&&(this.d=new VXd(w6,this,1));$Ed(this.d,JD(b,18));return;case 3:l0d(this,JD(b,87));return;case 4:n0d(this,JD(b,834));return;case 5:j0d(this,JD(b,143));return;}Ksd(this,a-yWd((HRd(),tRd)),tWd((c=JD(fud(this,16),29),!c?tRd:c),a),b)};_.fi=function w0d(){return HRd(),tRd};_.hi=function x0d(a){var b;switch(a){case 0:o0d(this,null);return;case 1:!this.d&&(this.d=new VXd(w6,this,1));uJd(this.d);return;case 3:l0d(this,null);return;case 4:n0d(this,null);return;case 5:j0d(this,null);return;}Lsd(this,a-yWd((HRd(),tRd)),tWd((b=JD(fud(this,16),29),!b?tRd:b),a))};_.Ib=function y0d(){var a;a=new khb(jtd(this));a.a+=' (expression: ';p0d(this,a);a.a+=')';return a.a};var b0d;var r7=zeb(MFe,'EGenericTypeImpl',248);mdb(2029,2024,oIe);_.Ei=function A0d(a,b){z0d(this,a,b)};_.Uk=function B0d(a,b){z0d(this,this.gc(),a);return b};_.Yi=function C0d(a){return au(this.nj(),a)};_.Gi=function D0d(){return this.Hi()};_.nj=function E0d(){return new kce(this)};_.Hi=function F0d(){return this.Ii(0)};_.Ii=function G0d(a){return this.nj().dd(a)};_.Vk=function H0d(a,b){ye(this,a,true);return b};_.Ri=function I0d(a,b){var c,d;d=bu(this,b);c=this.dd(a);c.Rb(d);return d};_.Si=function J0d(a,b){var c;ye(this,b,true);c=this.dd(a);c.Rb(b)};var O9=zeb(UHe,'AbstractSequentialInternalEList',2029);mdb(482,2029,oIe,O0d);_.Yi=function P0d(a){return au(this.nj(),a)};_.Gi=function Q0d(){if(this.b==null){return h1d(),h1d(),g1d}return this.ql()};_.nj=function R0d(){return new Ufe(this.a,this.b)};_.Hi=function S0d(){if(this.b==null){return h1d(),h1d(),g1d}return this.ql()};_.Ii=function T0d(a){var b,c;if(this.b==null){if(a<0||a>1){throw Icb(new Cdb(BHe+a+', size=0'))}return h1d(),h1d(),g1d}c=this.ql();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.nk()!=J3||b.Jj()!=0)&&(!this.tl()||this.b.Uh(b))){f=this.b.Kh(b,this.sl());this.f=(lie(),JD(b,69).vk());if(this.f||b.Hk()){if(this.sl()){d=JD(f,16);this.k=d}else{d=JD(f,72);this.k=this.j=d}if(RD(this.k,59)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.dd(this.k.gc()):this.j.Ii(this.k.gc())}if(!this.p?l1d(this):m1d(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.Yi(--this.n):this.p.Ub();if(this.f){a=JD(e,75);a.Jk();c=a.kd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.Yi(--this.n):this.p.Ub();if(this.f){a=JD(e,75);a.Jk();c=a.kd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function t1d(){return i1d(this)};_.Tb=function u1d(){return this.a};_.Ub=function v1d(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw Icb(new Hub)}};_.Vb=function w1d(){return this.a-1};_.Qb=function x1d(){throw Icb(new qhb)};_.sl=function y1d(){return false};_.Wb=function z1d(a){throw Icb(new qhb)};_.tl=function A1d(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var g1d;var aab=zeb(UHe,'EContentsEList/FeatureIteratorImpl',287);mdb(700,287,pIe,B1d);_.sl=function C1d(){return true};var bab=zeb(UHe,'EContentsEList/ResolvingFeatureIteratorImpl',700);mdb(1147,700,pIe,D1d);_.tl=function E1d(){return false};var t7=zeb(MFe,'ENamedElementImpl/1/1',1147);mdb(1148,287,pIe,F1d);_.tl=function G1d(){return false};var u7=zeb(MFe,'ENamedElementImpl/1/2',1148);mdb(39,151,AHe,J1d,K1d,L1d,M1d,N1d,O1d,P1d,Q1d,R1d,S1d,T1d,U1d,V1d,W1d,X1d,Y1d,Z1d,$1d,_1d,a2d,b2d,c2d,d2d,e2d,f2d);_.Ij=function g2d(){return I1d(this)};_.Pj=function h2d(){var a;a=I1d(this);if(a){return a.gk()}return null};_.fj=function i2d(a){this.b==-1&&!!this.a&&(this.b=this.c.Eh(this.a.Jj(),this.a.nk()));return this.c.vh(this.b,a)};_.hj=function j2d(){return this.c};_.Qj=function k2d(){var a;a=I1d(this);if(a){return a.rk()}return false};_.b=-1;var x7=zeb(MFe,'ENotificationImpl',39);mdb(403,293,{109:1,94:1,93:1,158:1,197:1,57:1,62:1,114:1,470:1,52:1,100:1,161:1,403:1,293:1,117:1,118:1},o2d);_.xh=function p2d(a){return l2d(this,a)};_.Ih=function q2d(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Ndb(),(this.Bb&256)!=0?true:false;case 3:return Ndb(),(this.Bb&512)!=0?true:false;case 4:return zfb(this.s);case 5:return zfb(this.t);case 6:return Ndb(),f=this.t,f>1||f==-1?true:false;case 7:return Ndb(),e=this.s,e>=1?true:false;case 8:if(b)return UTd(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?JD(this.Cb,29):null;case 11:return !this.d&&(this.d=new gge(H6,this,11)),this.d;case 12:return !this.c&&(this.c=new A3d(C6,this,12,10)),this.c;case 13:return !this.a&&(this.a=new D2d(this,this)),this.a;case 14:return m2d(this);}return Isd(this,a-yWd((HRd(),yRd)),tWd((d=JD(fud(this,16),29),!d?yRd:d),a),b,c)};_.Ph=function r2d(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),sJd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?l2d(this,c):this.Cb.Qh(this,-1-e,null,c)));return Gsd(this,a,10,c);case 12:return !this.c&&(this.c=new A3d(C6,this,12,10)),sJd(this.c,a,c);}return f=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),yRd):d),b),69),f.uk().xk(this,dud(this),b-yWd((HRd(),yRd)),a,c)};_.Rh=function s2d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c);case 9:return TTd(this,c);case 10:return Gsd(this,null,10,c);case 11:return !this.d&&(this.d=new gge(H6,this,11)),tJd(this.d,a,c);case 12:return !this.c&&(this.c=new A3d(C6,this,12,10)),tJd(this.c,a,c);case 14:return tJd(m2d(this),a,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),yRd):d),b),69),e.uk().yk(this,dud(this),b-yWd((HRd(),yRd)),a,c)};_.Th=function t2d(a){var b,c,d;switch(a){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 d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&h0d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&h0d(this.q).i==0);case 10:return !!(this.Db>>16==10?JD(this.Cb,29):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&m2d(this.a.a).i!=0&&!(!!this.b&&m3d(this.b));case 14:return !!this.b&&m3d(this.b);}return Jsd(this,a-yWd((HRd(),yRd)),tWd((b=JD(fud(this,16),29),!b?yRd:b),a))};_.$h=function u2d(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:Wxd(this,OD(b));return;case 2:ZTd(this,Odb(LD(b)));return;case 3:$Td(this,Odb(LD(b)));return;case 4:YTd(this,JD(b,15).a);return;case 5:_Td(this,JD(b,15).a);return;case 8:WTd(this,JD(b,143));return;case 9:d=VTd(this,JD(b,87),null);!!d&&d.mj();return;case 11:!this.d&&(this.d=new gge(H6,this,11));uJd(this.d);!this.d&&(this.d=new gge(H6,this,11));$Ed(this.d,JD(b,18));return;case 12:!this.c&&(this.c=new A3d(C6,this,12,10));uJd(this.c);!this.c&&(this.c=new A3d(C6,this,12,10));$Ed(this.c,JD(b,18));return;case 13:!this.a&&(this.a=new D2d(this,this));XHd(this.a);!this.a&&(this.a=new D2d(this,this));$Ed(this.a,JD(b,18));return;case 14:uJd(m2d(this));$Ed(m2d(this),JD(b,18));return;}Ksd(this,a-yWd((HRd(),yRd)),tWd((c=JD(fud(this,16),29),!c?yRd:c),a),b)};_.fi=function v2d(){return HRd(),yRd};_.hi=function w2d(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:Wxd(this,null);return;case 2:ZTd(this,true);return;case 3:$Td(this,true);return;case 4:YTd(this,0);return;case 5:_Td(this,1);return;case 8:WTd(this,null);return;case 9:c=VTd(this,null,null);!!c&&c.mj();return;case 11:!this.d&&(this.d=new gge(H6,this,11));uJd(this.d);return;case 12:!this.c&&(this.c=new A3d(C6,this,12,10));uJd(this.c);return;case 13:!!this.a&&XHd(this.a);return;case 14:!!this.b&&uJd(this.b);return;}Lsd(this,a-yWd((HRd(),yRd)),tWd((b=JD(fud(this,16),29),!b?yRd:b),a))};_.mi=function x2d(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&VC(a,h,null);d=0;for(c=new fKd(m2d(this.a));c.e!=c.i.gc();){b=JD(dKd(c),87);f=(g=b.c,g?g:(HRd(),uRd));VC(a,d++,f)}return a};_.Fj=function X2d(){var a,b,c,d,e;e=new Xgb;e.a+='[';a=m2d(this.a);for(b=0,d=m2d(this.a).i;b1)}case 5:{return bXd(this,a,b,c,d,this.i-JD(c,16).gc()>0)}default:{return new N1d(this.e,a,this.c,b,c,d,true)}}};_.Rj=function s3d(){return true};_.Oj=function t3d(){return m3d(this)};_.Ek=function y3d(){uJd(this)};var B7=zeb(MFe,'EOperationImpl/2',1331);mdb(493,1,{1999:1,493:1},z3d);var D7=zeb(MFe,'EPackageImpl/1',493);mdb(14,81,iIe,A3d);_.gl=function B3d(){return this.d};_.hl=function C3d(){return this.b};_.kl=function D3d(){return true};_.b=0;var oab=zeb(UHe,'EObjectContainmentWithInverseEList',14);mdb(361,14,iIe,E3d);_.ll=function F3d(){return true};_.Ui=function G3d(a,b){return eXd(this,a,JD(b,57))};var lab=zeb(UHe,'EObjectContainmentWithInverseEList/Resolving',361);mdb(312,361,iIe,H3d);_.Li=function I3d(){this.a.tb=null};var E7=zeb(MFe,'EPackageImpl/2',312);mdb(1243,1,{},J3d);var F7=zeb(MFe,'EPackageImpl/3',1243);mdb(721,44,Hve,M3d);_._b=function N3d(a){return VD(a)?djb(this,a):!!vsb(this.f,a)};var H7=zeb(MFe,'EPackageRegistryImpl',721);mdb(503,293,{109:1,94:1,93:1,158:1,197:1,57:1,2078:1,114:1,470:1,52:1,100:1,161:1,503:1,293:1,117:1,118:1},P3d);_.xh=function Q3d(a){return O3d(this,a)};_.Ih=function R3d(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Ndb(),(this.Bb&256)!=0?true:false;case 3:return Ndb(),(this.Bb&512)!=0?true:false;case 4:return zfb(this.s);case 5:return zfb(this.t);case 6:return Ndb(),f=this.t,f>1||f==-1?true:false;case 7:return Ndb(),e=this.s,e>=1?true:false;case 8:if(b)return UTd(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?JD(this.Cb,62):null;}return Isd(this,a-yWd((HRd(),BRd)),tWd((d=JD(fud(this,16),29),!d?BRd:d),a),b,c)};_.Ph=function S3d(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),sJd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?O3d(this,c):this.Cb.Qh(this,-1-e,null,c)));return Gsd(this,a,10,c);}return f=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),BRd):d),b),69),f.uk().xk(this,dud(this),b-yWd((HRd(),BRd)),a,c)};_.Rh=function T3d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c);case 9:return TTd(this,c);case 10:return Gsd(this,null,10,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),BRd):d),b),69),e.uk().yk(this,dud(this),b-yWd((HRd(),BRd)),a,c)};_.Th=function U3d(a){var b,c,d;switch(a){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 d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&h0d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&h0d(this.q).i==0);case 10:return !!(this.Db>>16==10?JD(this.Cb,62):null);}return Jsd(this,a-yWd((HRd(),BRd)),tWd((b=JD(fud(this,16),29),!b?BRd:b),a))};_.fi=function V3d(){return HRd(),BRd};var I7=zeb(MFe,'EParameterImpl',503);mdb(103,451,{109:1,94:1,93:1,158:1,197:1,57:1,19:1,179:1,69:1,114:1,470:1,52:1,100:1,161:1,103:1,451:1,293:1,117:1,118:1,682:1},b4d);_.Ih=function c4d(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Ndb(),(this.Bb&256)!=0?true:false;case 3:return Ndb(),(this.Bb&512)!=0?true:false;case 4:return zfb(this.s);case 5:return zfb(this.t);case 6:return Ndb(),g=this.t,g>1||g==-1?true:false;case 7:return Ndb(),e=this.s,e>=1?true:false;case 8:if(b)return UTd(this);return this.r;case 9:return this.q;case 10:return Ndb(),(this.Bb&GHe)!=0?true:false;case 11:return Ndb(),(this.Bb&Mte)!=0?true:false;case 12:return Ndb(),(this.Bb&qve)!=0?true:false;case 13:return this.j;case 14:return rUd(this);case 15:return Ndb(),(this.Bb&YHe)!=0?true:false;case 16:return Ndb(),(this.Bb&Pte)!=0?true:false;case 17:return sUd(this);case 18:return Ndb(),(this.Bb&KFe)!=0?true:false;case 19:return Ndb(),f=X3d(this),!!f&&(f.Bb&KFe)!=0?true:false;case 20:return Ndb(),(this.Bb&tve)!=0?true:false;case 21:if(b)return X3d(this);return this.b;case 22:if(b)return Y3d(this);return W3d(this);case 23:return !this.a&&(this.a=new xge(o6,this,23)),this.a;}return Isd(this,a-yWd((HRd(),CRd)),tWd((d=JD(fud(this,16),29),!d?CRd:d),a),b,c)};_.Th=function d4d(a){var b,c,d,e;switch(a){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 e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&h0d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&h0d(this.q).i==0);case 10:return (this.Bb&GHe)==0;case 11:return (this.Bb&Mte)!=0;case 12:return (this.Bb&qve)!=0;case 13:return this.j!=null;case 14:return rUd(this)!=null;case 15:return (this.Bb&YHe)!=0;case 16:return (this.Bb&Pte)!=0;case 17:return !!sUd(this);case 18:return (this.Bb&KFe)!=0;case 19:return d=X3d(this),!!d&&(d.Bb&KFe)!=0;case 20:return (this.Bb&tve)==0;case 21:return !!this.b;case 22:return !!W3d(this);case 23:return !!this.a&&this.a.i!=0;}return Jsd(this,a-yWd((HRd(),CRd)),tWd((b=JD(fud(this,16),29),!b?CRd:b),a))};_.$h=function e4d(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:AUd(this,OD(b));return;case 2:ZTd(this,Odb(LD(b)));return;case 3:$Td(this,Odb(LD(b)));return;case 4:YTd(this,JD(b,15).a);return;case 5:_Td(this,JD(b,15).a);return;case 8:WTd(this,JD(b,143));return;case 9:d=VTd(this,JD(b,87),null);!!d&&d.mj();return;case 10:vUd(this,Odb(LD(b)));return;case 11:DUd(this,Odb(LD(b)));return;case 12:BUd(this,Odb(LD(b)));return;case 13:wUd(this,OD(b));return;case 15:CUd(this,Odb(LD(b)));return;case 16:yUd(this,Odb(LD(b)));return;case 18:Z3d(this,Odb(LD(b)));return;case 20:a4d(this,Odb(LD(b)));return;case 21:_3d(this,JD(b,19));return;case 23:!this.a&&(this.a=new xge(o6,this,23));uJd(this.a);!this.a&&(this.a=new xge(o6,this,23));$Ed(this.a,JD(b,18));return;}Ksd(this,a-yWd((HRd(),CRd)),tWd((c=JD(fud(this,16),29),!c?CRd:c),a),b)};_.fi=function f4d(){return HRd(),CRd};_.hi=function g4d(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:RD(this.Cb,88)&&tYd(wWd(JD(this.Cb,88)),4);Wxd(this,null);return;case 2:ZTd(this,true);return;case 3:$Td(this,true);return;case 4:YTd(this,0);return;case 5:_Td(this,1);return;case 8:WTd(this,null);return;case 9:c=VTd(this,null,null);!!c&&c.mj();return;case 10:vUd(this,true);return;case 11:DUd(this,false);return;case 12:BUd(this,false);return;case 13:this.i=null;xUd(this,null);return;case 15:CUd(this,false);return;case 16:yUd(this,false);return;case 18:$3d(this,false);RD(this.Cb,88)&&tYd(wWd(JD(this.Cb,88)),2);return;case 20:a4d(this,true);return;case 21:_3d(this,null);return;case 23:!this.a&&(this.a=new xge(o6,this,23));uJd(this.a);return;}Lsd(this,a-yWd((HRd(),CRd)),tWd((b=JD(fud(this,16),29),!b?CRd:b),a))};_.mi=function h4d(){Y3d(this);yde(Oce((jie(),hie),this));UTd(this);this.Bb|=1};_.sk=function i4d(){return X3d(this)};_.Zk=function j4d(){var a;return a=X3d(this),!!a&&(a.Bb&KFe)!=0};_.$k=function k4d(){return (this.Bb&KFe)!=0};_._k=function l4d(){return (this.Bb&tve)!=0};_.Wk=function m4d(a,b){this.c=null;return XTd(this,a,b)};_.Ib=function n4d(){var a;if((this.Db&64)!=0)return EUd(this);a=new Zgb(EUd(this));a.a+=' (containment: ';Vgb(a,(this.Bb&KFe)!=0);a.a+=', resolveProxies: ';Vgb(a,(this.Bb&tve)!=0);a.a+=')';return a.a};var J7=zeb(MFe,'EReferenceImpl',103);mdb(549,118,{109:1,45:1,94:1,93:1,136:1,57:1,114:1,52:1,100:1,549:1,117:1,118:1},t4d);_.Fb=function z4d(a){return this===a};_.jd=function B4d(){return this.b};_.kd=function C4d(){return this.c};_.Hb=function D4d(){return ADb(this)};_.Ai=function F4d(a){o4d(this,OD(a))};_.ld=function G4d(a){return s4d(this,OD(a))};_.Ih=function u4d(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return Isd(this,a-yWd((HRd(),DRd)),tWd((d=JD(fud(this,16),29),!d?DRd:d),a),b,c)};_.Th=function v4d(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return Jsd(this,a-yWd((HRd(),DRd)),tWd((b=JD(fud(this,16),29),!b?DRd:b),a))};_.$h=function w4d(a,b){var c;switch(a){case 0:p4d(this,OD(b));return;case 1:r4d(this,OD(b));return;}Ksd(this,a-yWd((HRd(),DRd)),tWd((c=JD(fud(this,16),29),!c?DRd:c),a),b)};_.fi=function x4d(){return HRd(),DRd};_.hi=function y4d(a){var b;switch(a){case 0:q4d(this,null);return;case 1:r4d(this,null);return;}Lsd(this,a-yWd((HRd(),DRd)),tWd((b=JD(fud(this,16),29),!b?DRd:b),a))};_.yi=function A4d(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:vgb(a)}return this.a};_.zi=function E4d(a){this.a=a};_.Ib=function H4d(){var a;if((this.Db&64)!=0)return jtd(this);a=new Zgb(jtd(this));a.a+=' (key: ';Ugb(a,this.b);a.a+=', value: ';Ugb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var K7=zeb(MFe,'EStringToStringMapEntryImpl',549);var Qab=Beb(UHe,'FeatureMap/Entry/Internal');mdb(562,1,qIe);_.vl=function K4d(a){return this.wl(JD(a,52))};_.wl=function L4d(a){return this.vl(a)};_.Fb=function M4d(a){var b,c;if(this===a){return true}else if(RD(a,75)){b=JD(a,75);if(b.Jk()==this.c){c=this.kd();return c==null?b.kd()==null:pb(c,b.kd())}else{return false}}else{return false}};_.Jk=function N4d(){return this.c};_.Hb=function O4d(){var a;a=this.kd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function P4d(){var a,b;a=this.c;b=zVd(a.ok()).vi();a.ve();return (b!=null&&b.length!=0?b+':'+a.ve():a.ve())+'='+this.kd()};var L7=zeb(MFe,'EStructuralFeatureImpl/BasicFeatureMapEntry',562);mdb(777,562,qIe,S4d);_.wl=function T4d(a){return new S4d(this.c,a)};_.kd=function U4d(){return this.a};_.xl=function V4d(a,b,c){return Q4d(this,a,this.a,b,c)};_.yl=function W4d(a,b,c){return R4d(this,a,this.a,b,c)};var M7=zeb(MFe,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',777);mdb(1304,1,{},X4d);_.wk=function Y4d(a,b,c,d,e){var f;f=JD(Nsd(a,this.b),219);return f.Wl(this.a).Dk(d)};_.xk=function Z4d(a,b,c,d,e){var f;f=JD(Nsd(a,this.b),219);return f.Nl(this.a,d,e)};_.yk=function $4d(a,b,c,d,e){var f;f=JD(Nsd(a,this.b),219);return f.Ol(this.a,d,e)};_.zk=function _4d(a,b,c){var d;d=JD(Nsd(a,this.b),219);return d.Wl(this.a).Oj()};_.Ak=function a5d(a,b,c,d){var e;e=JD(Nsd(a,this.b),219);e.Wl(this.a).Wb(d)};_.Bk=function b5d(a,b,c){return JD(Nsd(a,this.b),219).Wl(this.a)};_.Ck=function c5d(a,b,c){var d;d=JD(Nsd(a,this.b),219);d.Wl(this.a).Ek()};var N7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1304);mdb(89,1,{},e5d,f5d,g5d,h5d);_.wk=function i5d(a,b,c,d,e){var f;f=b.ii(c);f==null&&b.ji(c,f=d5d(this,a));if(!e){switch(this.e){case 50:case 41:return JD(f,586)._j();case 40:return JD(f,219).Tl();}}return f};_.xk=function j5d(a,b,c,d,e){var f,g;g=b.ii(c);g==null&&b.ji(c,g=d5d(this,a));f=JD(g,72).Uk(d,e);return f};_.yk=function k5d(a,b,c,d,e){var f;f=b.ii(c);f!=null&&(e=JD(f,72).Vk(d,e));return e};_.zk=function l5d(a,b,c){var d;d=b.ii(c);return d!=null&&JD(d,77).Oj()};_.Ak=function m5d(a,b,c,d){var e;e=JD(b.ii(c),77);!e&&b.ji(c,e=d5d(this,a));e.Wb(d)};_.Bk=function n5d(a,b,c){var d,e;e=b.ii(c);e==null&&b.ji(c,e=d5d(this,a));if(RD(e,77)){return JD(e,77)}else{d=JD(b.ii(c),16);return new G7d(d)}};_.Ck=function o5d(a,b,c){var d;d=JD(b.ii(c),77);!d&&b.ji(c,d=d5d(this,a));d.Ek()};_.b=0;_.e=0;var O7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);mdb(498,1,{});_.xk=function s5d(a,b,c,d,e){throw Icb(new qhb)};_.yk=function t5d(a,b,c,d,e){throw Icb(new qhb)};_.Bk=function u5d(a,b,c){return new v5d(this,a,b,c)};var p5d;var v8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingle',498);mdb(1321,1,VHe,v5d);_.Dk=function w5d(a){return this.a.wk(this.c,this.d,this.b,a,true)};_.Oj=function x5d(){return this.a.zk(this.c,this.d,this.b)};_.Wb=function y5d(a){this.a.Ak(this.c,this.d,this.b,a)};_.Ek=function z5d(){this.a.Ck(this.c,this.d,this.b)};_.b=0;var P7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1321);mdb(770,498,{},A5d);_.wk=function B5d(a,b,c,d,e){return std(a,a.Mh(),a.Ch())==this.b?this._k()&&d?Hsd(a):a.Mh():null};_.xk=function C5d(a,b,c,d,e){var f,g;!!a.Mh()&&(e=(f=a.Ch(),f>=0?a.xh(e):a.Mh().Qh(a,-1-f,null,e)));g=zWd(a.Ah(),this.e);return a.zh(d,g,e)};_.yk=function D5d(a,b,c,d,e){var f;f=zWd(a.Ah(),this.e);return a.zh(null,f,e)};_.zk=function E5d(a,b,c){var d;d=zWd(a.Ah(),this.e);return !!a.Mh()&&a.Ch()==d};_.Ak=function F5d(a,b,c,d){var e,f,g,h,i;if(d!=null&&!DVd(this.a,d)){throw Icb(new Peb(rIe+(RD(d,57)?EWd(JD(d,57).Ah()):veb(rb(d)))+sIe+this.a+"'"))}e=a.Mh();g=zWd(a.Ah(),this.e);if(XD(d)!==XD(e)||a.Ch()!=g&&d!=null){if(Mhe(a,JD(d,57)))throw Icb(new hfb(OFe+a.Ib()));i=null;!!e&&(i=(f=a.Ch(),f>=0?a.xh(i):a.Mh().Qh(a,-1-f,null,i)));h=JD(d,52);!!h&&(i=h.Oh(a,zWd(h.Ah(),this.b),null,i));i=a.zh(h,g,i);!!i&&i.mj()}else{a.sh()&&a.th()&&zsd(a,new L1d(a,1,g,d,d))}};_.Ck=function G5d(a,b,c){var d,e,f,g;d=a.Mh();if(d){g=(e=a.Ch(),e>=0?a.xh(null):a.Mh().Qh(a,-1-e,null,null));f=zWd(a.Ah(),this.e);g=a.zh(null,f,g);!!g&&g.mj()}else{a.sh()&&a.th()&&zsd(a,new _1d(a,1,this.e,null,null))}};_._k=function H5d(){return false};var R7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',770);mdb(1305,770,{},I5d);_._k=function J5d(){return true};var Q7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1305);mdb(560,498,{});_.wk=function M5d(a,b,c,d,e){var f;return f=b.ii(c),f==null?this.b:XD(f)===XD(p5d)?null:f};_.zk=function N5d(a,b,c){var d;d=b.ii(c);return d!=null&&(XD(d)===XD(p5d)||!pb(d,this.b))};_.Ak=function O5d(a,b,c,d){var e,f;if(a.sh()&&a.th()){e=(f=b.ii(c),f==null?this.b:XD(f)===XD(p5d)?null:f);if(d==null){if(this.c!=null){b.ji(c,null);d=this.b}else this.b!=null?b.ji(c,p5d):b.ji(c,null)}else{this.zl(d);b.ji(c,d)}zsd(a,this.d.Al(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.ji(c,null):this.b!=null?b.ji(c,p5d):b.ji(c,null)}else{this.zl(d);b.ji(c,d)}}};_.Ck=function P5d(a,b,c){var d,e;if(a.sh()&&a.th()){d=(e=b.ii(c),e==null?this.b:XD(e)===XD(p5d)?null:e);b.ki(c);zsd(a,this.d.Al(a,1,this.e,d,this.b))}else{b.ki(c)}};_.zl=function Q5d(a){throw Icb(new Oeb)};var e8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',560);mdb(tIe,1,{},_5d);_.Al=function a6d(a,b,c,d,e){return new _1d(a,b,c,d,e)};_.Bl=function b6d(a,b,c,d,e,f){return new b2d(a,b,c,d,e,f)};var R5d,S5d,T5d,U5d,V5d,W5d,X5d,Y5d,Z5d;var $7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',tIe);mdb(1322,tIe,{},c6d);_.Al=function d6d(a,b,c,d,e){return new e2d(a,b,c,Odb(LD(d)),Odb(LD(e)))};_.Bl=function e6d(a,b,c,d,e,f){return new f2d(a,b,c,Odb(LD(d)),Odb(LD(e)),f)};var S7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1322);mdb(1323,tIe,{},f6d);_.Al=function g6d(a,b,c,d,e){return new P1d(a,b,c,JD(d,221).a,JD(e,221).a)};_.Bl=function h6d(a,b,c,d,e,f){return new Q1d(a,b,c,JD(d,221).a,JD(e,221).a,f)};var T7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1323);mdb(1324,tIe,{},i6d);_.Al=function j6d(a,b,c,d,e){return new R1d(a,b,c,JD(d,180).a,JD(e,180).a)};_.Bl=function k6d(a,b,c,d,e,f){return new S1d(a,b,c,JD(d,180).a,JD(e,180).a,f)};var U7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1324);mdb(1325,tIe,{},l6d);_.Al=function m6d(a,b,c,d,e){return new T1d(a,b,c,Reb(MD(d)),Reb(MD(e)))};_.Bl=function n6d(a,b,c,d,e,f){return new U1d(a,b,c,Reb(MD(d)),Reb(MD(e)),f)};var V7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1325);mdb(1326,tIe,{},o6d);_.Al=function p6d(a,b,c,d,e){return new V1d(a,b,c,JD(d,164).a,JD(e,164).a)};_.Bl=function q6d(a,b,c,d,e,f){return new W1d(a,b,c,JD(d,164).a,JD(e,164).a,f)};var W7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1326);mdb(1327,tIe,{},r6d);_.Al=function s6d(a,b,c,d,e){return new X1d(a,b,c,JD(d,15).a,JD(e,15).a)};_.Bl=function t6d(a,b,c,d,e,f){return new Y1d(a,b,c,JD(d,15).a,JD(e,15).a,f)};var X7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1327);mdb(1328,tIe,{},u6d);_.Al=function v6d(a,b,c,d,e){return new Z1d(a,b,c,JD(d,190).a,JD(e,190).a)};_.Bl=function w6d(a,b,c,d,e,f){return new $1d(a,b,c,JD(d,190).a,JD(e,190).a,f)};var Y7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1328);mdb(1329,tIe,{},x6d);_.Al=function y6d(a,b,c,d,e){return new c2d(a,b,c,JD(d,191).a,JD(e,191).a)};_.Bl=function z6d(a,b,c,d,e,f){return new d2d(a,b,c,JD(d,191).a,JD(e,191).a,f)};var Z7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1329);mdb(1307,560,{},A6d);_.zl=function B6d(a){if(!this.a.dk(a)){throw Icb(new Peb(rIe+rb(a)+sIe+this.a+"'"))}};var _7=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1307);mdb(1308,560,{},C6d);_.zl=function D6d(a){};var a8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1308);mdb(771,560,{});_.zk=function E6d(a,b,c){var d;d=b.ii(c);return d!=null};_.Ak=function F6d(a,b,c,d){var e,f;if(a.sh()&&a.th()){e=true;f=b.ii(c);if(f==null){e=false;f=this.b}else XD(f)===XD(p5d)&&(f=null);if(d==null){if(this.c!=null){b.ji(c,null);d=this.b}else{b.ji(c,p5d)}}else{this.zl(d);b.ji(c,d)}zsd(a,this.d.Bl(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.ji(c,null):b.ji(c,p5d)}else{this.zl(d);b.ji(c,d)}}};_.Ck=function G6d(a,b,c){var d,e;if(a.sh()&&a.th()){d=true;e=b.ii(c);if(e==null){d=false;e=this.b}else XD(e)===XD(p5d)&&(e=null);b.ki(c);zsd(a,this.d.Bl(a,2,this.e,e,this.b,d))}else{b.ki(c)}};var d8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',771);mdb(1309,771,{},H6d);_.zl=function I6d(a){if(!this.a.dk(a)){throw Icb(new Peb(rIe+rb(a)+sIe+this.a+"'"))}};var b8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1309);mdb(1310,771,{},J6d);_.zl=function K6d(a){};var c8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1310);mdb(402,498,{},L6d);_.wk=function N6d(a,b,c,d,e){var f,g,h,i,j;j=b.ii(c);if(this.rk()&&XD(j)===XD(p5d)){return null}else if(this._k()&&d&&j!=null){h=JD(j,52);if(h.Sh()){i=ctd(a,h);if(h!=i){if(!DVd(this.a,i)){throw Icb(new Peb(rIe+rb(i)+sIe+this.a+"'"))}b.ji(c,j=i);if(this.$k()){f=JD(i,52);g=h.Qh(a,!this.b?-1-zWd(a.Ah(),this.e):zWd(h.Ah(),this.b),null,null);!f.Mh()&&(g=f.Oh(a,!this.b?-1-zWd(a.Ah(),this.e):zWd(f.Ah(),this.b),null,g));!!g&&g.mj()}a.sh()&&a.th()&&zsd(a,new _1d(a,9,this.e,h,i))}}return j}else{return j}};_.xk=function O6d(a,b,c,d,e){var f,g;g=b.ii(c);XD(g)===XD(p5d)&&(g=null);b.ji(c,d);if(this.Kj()){if(XD(g)!==XD(d)&&g!=null){f=JD(g,52);e=f.Qh(a,zWd(f.Ah(),this.b),null,e)}}else this.$k()&&g!=null&&(e=JD(g,52).Qh(a,-1-zWd(a.Ah(),this.e),null,e));if(a.sh()&&a.th()){!e&&(e=new iJd(4));e.lj(new _1d(a,1,this.e,g,d))}return e};_.yk=function P6d(a,b,c,d,e){var f;f=b.ii(c);XD(f)===XD(p5d)&&(f=null);b.ki(c);if(a.sh()&&a.th()){!e&&(e=new iJd(4));this.rk()?e.lj(new _1d(a,2,this.e,f,null)):e.lj(new _1d(a,1,this.e,f,null))}return e};_.zk=function Q6d(a,b,c){var d;d=b.ii(c);return d!=null};_.Ak=function R6d(a,b,c,d){var e,f,g,h,i;if(d!=null&&!DVd(this.a,d)){throw Icb(new Peb(rIe+(RD(d,57)?EWd(JD(d,57).Ah()):veb(rb(d)))+sIe+this.a+"'"))}i=b.ii(c);h=i!=null;this.rk()&&XD(i)===XD(p5d)&&(i=null);g=null;if(this.Kj()){if(XD(i)!==XD(d)){if(i!=null){e=JD(i,52);g=e.Qh(a,zWd(e.Ah(),this.b),null,g)}if(d!=null){e=JD(d,52);g=e.Oh(a,zWd(e.Ah(),this.b),null,g)}}}else if(this.$k()){if(XD(i)!==XD(d)){i!=null&&(g=JD(i,52).Qh(a,-1-zWd(a.Ah(),this.e),null,g));d!=null&&(g=JD(d,52).Oh(a,-1-zWd(a.Ah(),this.e),null,g))}}d==null&&this.rk()?b.ji(c,p5d):b.ji(c,d);if(a.sh()&&a.th()){f=new b2d(a,1,this.e,i,d,this.rk()&&!h);if(!g){zsd(a,f)}else{g.lj(f);g.mj()}}else !!g&&g.mj()};_.Ck=function S6d(a,b,c){var d,e,f,g,h;h=b.ii(c);g=h!=null;this.rk()&&XD(h)===XD(p5d)&&(h=null);f=null;if(h!=null){if(this.Kj()){d=JD(h,52);f=d.Qh(a,zWd(d.Ah(),this.b),null,f)}else this.$k()&&(f=JD(h,52).Qh(a,-1-zWd(a.Ah(),this.e),null,f))}b.ki(c);if(a.sh()&&a.th()){e=new b2d(a,this.rk()?2:1,this.e,h,null,g);if(!f){zsd(a,e)}else{f.lj(e);f.mj()}}else !!f&&f.mj()};_.Kj=function T6d(){return false};_.$k=function U6d(){return false};_._k=function V6d(){return false};_.rk=function W6d(){return false};var u8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',402);mdb(561,402,{},X6d);_.$k=function Y6d(){return true};var m8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',561);mdb(1313,561,{},Z6d);_._k=function $6d(){return true};var f8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1313);mdb(773,561,{},_6d);_.rk=function a7d(){return true};var h8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',773);mdb(1315,773,{},b7d);_._k=function c7d(){return true};var g8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1315);mdb(638,561,{},d7d);_.Kj=function e7d(){return true};var l8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',638);mdb(1314,638,{},f7d);_._k=function g7d(){return true};var i8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1314);mdb(774,638,{},h7d);_.rk=function i7d(){return true};var k8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',774);mdb(1316,774,{},j7d);_._k=function k7d(){return true};var j8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1316);mdb(639,402,{},l7d);_._k=function m7d(){return true};var q8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',639);mdb(1317,639,{},n7d);_.rk=function o7d(){return true};var n8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1317);mdb(775,639,{},p7d);_.Kj=function q7d(){return true};var p8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',775);mdb(1318,775,{},r7d);_.rk=function s7d(){return true};var o8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1318);mdb(1311,402,{},t7d);_.rk=function u7d(){return true};var r8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1311);mdb(772,402,{},v7d);_.Kj=function w7d(){return true};var t8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',772);mdb(1312,772,{},x7d);_.rk=function y7d(){return true};var s8=zeb(MFe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1312);mdb(776,562,qIe,B7d);_.wl=function C7d(a){return new B7d(this.a,this.c,a)};_.kd=function D7d(){return this.b};_.xl=function E7d(a,b,c){return z7d(this,a,this.b,c)};_.yl=function F7d(a,b,c){return A7d(this,a,this.b,c)};var w8=zeb(MFe,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',776);mdb(1319,1,VHe,G7d);_.Dk=function H7d(a){return this.a};_.Oj=function I7d(){return RD(this.a,98)?JD(this.a,98).Oj():!this.a.dc()};_.Wb=function J7d(a){this.a.$b();this.a.Fc(JD(a,16))};_.Ek=function K7d(){RD(this.a,98)?JD(this.a,98).Ek():this.a.$b()};var x8=zeb(MFe,'EStructuralFeatureImpl/SettingMany',1319);mdb(1320,562,qIe,L7d);_.vl=function M7d(a){return new Q7d((lke(),kke),this.b.oi(this.a,a))};_.kd=function N7d(){return null};_.xl=function O7d(a,b,c){return c};_.yl=function P7d(a,b,c){return c};var y8=zeb(MFe,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1320);mdb(640,562,qIe,Q7d);_.vl=function R7d(a){return new Q7d(this.c,a)};_.kd=function S7d(){return this.a};_.xl=function T7d(a,b,c){return c};_.yl=function U7d(a,b,c){return c};var z8=zeb(MFe,'EStructuralFeatureImpl/SimpleFeatureMapEntry',640);mdb(396,492,JGe,V7d);_.$i=function W7d(a){return SC(p6,rte,29,a,0,1)};_.Wi=function X7d(){return false};var B8=zeb(MFe,'ESuperAdapter/1',396);mdb(446,439,{109:1,94:1,93:1,158:1,197:1,57:1,114:1,834:1,52:1,100:1,161:1,446:1,117:1,118:1},Z7d);_.Ih=function $7d(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new g8d(this,w6,this)),this.a;}return Isd(this,a-yWd((HRd(),GRd)),tWd((d=JD(fud(this,16),29),!d?GRd:d),a),b,c)};_.Rh=function _7d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new A3d(n6,this,0,3)),tJd(this.Ab,a,c);case 2:return !this.a&&(this.a=new g8d(this,w6,this)),tJd(this.a,a,c);}return e=JD(tWd((d=JD(fud(this,16),29),!d?(HRd(),GRd):d),b),69),e.uk().yk(this,dud(this),b-yWd((HRd(),GRd)),a,c)};_.Th=function a8d(a){var b;switch(a){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 Jsd(this,a-yWd((HRd(),GRd)),tWd((b=JD(fud(this,16),29),!b?GRd:b),a))};_.$h=function b8d(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);!this.Ab&&(this.Ab=new A3d(n6,this,0,3));$Ed(this.Ab,JD(b,18));return;case 1:Wxd(this,OD(b));return;case 2:!this.a&&(this.a=new g8d(this,w6,this));uJd(this.a);!this.a&&(this.a=new g8d(this,w6,this));$Ed(this.a,JD(b,18));return;}Ksd(this,a-yWd((HRd(),GRd)),tWd((c=JD(fud(this,16),29),!c?GRd:c),a),b)};_.fi=function c8d(){return HRd(),GRd};_.hi=function d8d(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new A3d(n6,this,0,3));uJd(this.Ab);return;case 1:Wxd(this,null);return;case 2:!this.a&&(this.a=new g8d(this,w6,this));uJd(this.a);return;}Lsd(this,a-yWd((HRd(),GRd)),tWd((b=JD(fud(this,16),29),!b?GRd:b),a))};var H8=zeb(MFe,'ETypeParameterImpl',446);mdb(447,81,iIe,g8d);_.Lj=function h8d(a,b){return e8d(this,JD(a,87),b)};_.Mj=function i8d(a,b){return f8d(this,JD(a,87),b)};var D8=zeb(MFe,'ETypeParameterImpl/1',447);mdb(637,44,Hve,j8d);_.ec=function k8d(){return new n8d(this)};var G8=zeb(MFe,'ETypeParameterImpl/2',637);mdb(557,Ete,Fte,n8d);_.Ec=function o8d(a){return l8d(this,JD(a,87))};_.Fc=function p8d(a){var b,c,d;d=false;for(c=a.Jc();c.Ob();){b=JD(c.Pb(),87);ejb(this.a,b,'')==null&&(d=true)}return d};_.$b=function q8d(){hjb(this.a)};_.Gc=function r8d(a){return _ib(this.a,a)};_.Jc=function s8d(){var a;return a=new Cjb((new tjb(this.a)).a),new v8d(a)};_.Kc=function t8d(a){return m8d(this,a)};_.gc=function u8d(){return ijb(this.a)};var F8=zeb(MFe,'ETypeParameterImpl/2/1',557);mdb(558,1,Ate,v8d);_.Nb=function w8d(a){ctb(this,a)};_.Pb=function y8d(){return JD(Ajb(this.a).jd(),87)};_.Ob=function x8d(){return this.a.b};_.Qb=function z8d(){Bjb(this.a)};var E8=zeb(MFe,'ETypeParameterImpl/2/1/1',558);mdb(1281,44,Hve,A8d);_._b=function B8d(a){return VD(a)?djb(this,a):!!vsb(this.f,a)};_.xc=function C8d(a){var b,c;b=VD(a)?cjb(this,a):Wd(vsb(this.f,a));if(RD(b,835)){c=JD(b,835);b=c.Ik();ejb(this,JD(a,241),b);return b}else return b!=null?b:a==null?(Ege(),Dge):null};var J8=zeb(MFe,'EValidatorRegistryImpl',1281);mdb(1303,710,{109:1,94:1,93:1,469:1,158:1,57:1,114:1,2002:1,52:1,100:1,161:1,117:1,118:1},K8d);_.oi=function L8d(a,b){switch(a.fk()){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 b==null?null:qdb(b);case 25:return E8d(b);case 27:return F8d(b);case 28:return G8d(b);case 29:return b==null?null:$_d(uxd[0],JD(b,205));case 41:return b==null?'':ueb(JD(b,298));case 42:return qdb(b);case 50:return OD(b);default:throw Icb(new hfb(PFe+a.ve()+QFe));}};_.pi=function M8d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=zVd(a),m?dXd(m.si(),a):-1)),a.G){case 0:return c=new kVd,c;case 1:return b=new nTd,b;case 2:return d=new FWd,d;case 4:return e=new i_d,e;case 5:return f=new y_d,f;case 6:return g=new P_d,g;case 7:return h=new Fxd,h;case 10:return j=new iSd,j;case 11:return k=new o2d,k;case 12:return l=new Lyd,l;case 13:return n=new P3d,n;case 14:return o=new b4d,o;case 17:return p=new t4d,p;case 18:return i=new q0d,i;case 19:return q=new Z7d,q;default:throw Icb(new hfb(TFe+a.zb+QFe));}};_.qi=function N8d(a,b){switch(a.fk()){case 20:return b==null?null:new Ihb(b);case 21:return b==null?null:new lib(b);case 23:case 22:return b==null?null:D8d(b);case 26:case 24:return b==null?null:feb(Vdb(b,-128,127)<<24>>24);case 25:return Cxd(b);case 27:return H8d(b);case 28:return I8d(b);case 29:return J8d(b);case 32:case 31:return b==null?null:Udb(b);case 38:case 37:return b==null?null:new _eb(b);case 40:case 39:return b==null?null:zfb(Vdb(b,rue,lte));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Ofb(Wdb(b));case 49:case 48:return b==null?null:igb(Vdb(b,vIe,32767)<<16>>16);case 50:return b;default:throw Icb(new hfb(PFe+a.ve()+QFe));}};var K8=zeb(MFe,'EcoreFactoryImpl',1303);mdb(548,184,{109:1,94:1,93:1,158:1,197:1,57:1,241:1,114:1,2000:1,52:1,100:1,161:1,184:1,548:1,117:1,118:1,680:1},Y8d);_.gb=false;_.hb=false;var P8d,Q8d=false;var B9=zeb(MFe,'EcorePackageImpl',548);mdb(1199,1,{835:1},a9d);_.Ik=function b9d(){return die(),cie};var V8=zeb(MFe,'EcorePackageImpl/1',1199);mdb(1208,1,IIe,c9d);_.dk=function d9d(a){return RD(a,158)};_.ek=function e9d(a){return SC(x6,rte,158,a,0,1)};var L8=zeb(MFe,'EcorePackageImpl/10',1208);mdb(1209,1,IIe,f9d);_.dk=function g9d(a){return RD(a,197)};_.ek=function h9d(a){return SC(y6,rte,197,a,0,1)};var M8=zeb(MFe,'EcorePackageImpl/11',1209);mdb(1210,1,IIe,i9d);_.dk=function j9d(a){return RD(a,57)};_.ek=function k9d(a){return SC(z6,rte,57,a,0,1)};var N8=zeb(MFe,'EcorePackageImpl/12',1210);mdb(1211,1,IIe,l9d);_.dk=function m9d(a){return RD(a,403)};_.ek=function n9d(a){return SC(A6,gIe,62,a,0,1)};var O8=zeb(MFe,'EcorePackageImpl/13',1211);mdb(1212,1,IIe,o9d);_.dk=function p9d(a){return RD(a,241)};_.ek=function q9d(a){return SC(B6,rte,241,a,0,1)};var P8=zeb(MFe,'EcorePackageImpl/14',1212);mdb(1213,1,IIe,r9d);_.dk=function s9d(a){return RD(a,503)};_.ek=function t9d(a){return SC(C6,rte,2078,a,0,1)};var Q8=zeb(MFe,'EcorePackageImpl/15',1213);mdb(1214,1,IIe,u9d);_.dk=function v9d(a){return RD(a,103)};_.ek=function w9d(a){return SC(D6,fIe,19,a,0,1)};var R8=zeb(MFe,'EcorePackageImpl/16',1214);mdb(1215,1,IIe,x9d);_.dk=function y9d(a){return RD(a,179)};_.ek=function z9d(a){return SC(G6,fIe,179,a,0,1)};var S8=zeb(MFe,'EcorePackageImpl/17',1215);mdb(1216,1,IIe,A9d);_.dk=function B9d(a){return RD(a,470)};_.ek=function C9d(a){return SC(I6,rte,470,a,0,1)};var T8=zeb(MFe,'EcorePackageImpl/18',1216);mdb(1217,1,IIe,D9d);_.dk=function E9d(a){return RD(a,549)};_.ek=function F9d(a){return SC(K7,FHe,549,a,0,1)};var U8=zeb(MFe,'EcorePackageImpl/19',1217);mdb(1200,1,IIe,G9d);_.dk=function H9d(a){return RD(a,335)};_.ek=function I9d(a){return SC(o6,fIe,38,a,0,1)};var e9=zeb(MFe,'EcorePackageImpl/2',1200);mdb(1218,1,IIe,J9d);_.dk=function K9d(a){return RD(a,248)};_.ek=function L9d(a){return SC(w6,mIe,87,a,0,1)};var W8=zeb(MFe,'EcorePackageImpl/20',1218);mdb(1219,1,IIe,M9d);_.dk=function N9d(a){return RD(a,446)};_.ek=function O9d(a){return SC(H6,rte,834,a,0,1)};var X8=zeb(MFe,'EcorePackageImpl/21',1219);mdb(1220,1,IIe,P9d);_.dk=function Q9d(a){return SD(a)};_.ek=function R9d(a){return SC(GI,Ote,473,a,8,1)};var Y8=zeb(MFe,'EcorePackageImpl/22',1220);mdb(1221,1,IIe,S9d);_.dk=function T9d(a){return RD(a,195)};_.ek=function U9d(a){return SC($D,Ote,195,a,0,2)};var Z8=zeb(MFe,'EcorePackageImpl/23',1221);mdb(1222,1,IIe,V9d);_.dk=function W9d(a){return RD(a,221)};_.ek=function X9d(a){return SC(HI,Ote,221,a,0,1)};var $8=zeb(MFe,'EcorePackageImpl/24',1222);mdb(1223,1,IIe,Y9d);_.dk=function Z9d(a){return RD(a,180)};_.ek=function $9d(a){return SC(II,Ote,180,a,0,1)};var _8=zeb(MFe,'EcorePackageImpl/25',1223);mdb(1224,1,IIe,_9d);_.dk=function aae(a){return RD(a,205)};_.ek=function bae(a){return SC(hK,Ote,205,a,0,1)};var a9=zeb(MFe,'EcorePackageImpl/26',1224);mdb(1225,1,IIe,cae);_.dk=function dae(a){return false};_.ek=function eae(a){return SC(_5,rte,2174,a,0,1)};var b9=zeb(MFe,'EcorePackageImpl/27',1225);mdb(1226,1,IIe,fae);_.dk=function gae(a){return TD(a)};_.ek=function hae(a){return SC(LI,Ote,346,a,7,1)};var c9=zeb(MFe,'EcorePackageImpl/28',1226);mdb(1227,1,IIe,iae);_.dk=function jae(a){return RD(a,61)};_.ek=function kae(a){return SC(e6,Twe,61,a,0,1)};var d9=zeb(MFe,'EcorePackageImpl/29',1227);mdb(1201,1,IIe,lae);_.dk=function mae(a){return RD(a,504)};_.ek=function nae(a){return SC(n6,{3:1,4:1,5:1,1995:1},587,a,0,1)};var p9=zeb(MFe,'EcorePackageImpl/3',1201);mdb(1228,1,IIe,oae);_.dk=function pae(a){return RD(a,568)};_.ek=function qae(a){return SC(f6,rte,2001,a,0,1)};var f9=zeb(MFe,'EcorePackageImpl/30',1228);mdb(1229,1,IIe,rae);_.dk=function sae(a){return RD(a,163)};_.ek=function tae(a){return SC(_ab,Twe,163,a,0,1)};var g9=zeb(MFe,'EcorePackageImpl/31',1229);mdb(1230,1,IIe,uae);_.dk=function vae(a){return RD(a,75)};_.ek=function wae(a){return SC(Rab,JIe,75,a,0,1)};var h9=zeb(MFe,'EcorePackageImpl/32',1230);mdb(1231,1,IIe,xae);_.dk=function yae(a){return RD(a,164)};_.ek=function zae(a){return SC(QI,Ote,164,a,0,1)};var i9=zeb(MFe,'EcorePackageImpl/33',1231);mdb(1232,1,IIe,Aae);_.dk=function Bae(a){return RD(a,15)};_.ek=function Cae(a){return SC(UI,Ote,15,a,0,1)};var j9=zeb(MFe,'EcorePackageImpl/34',1232);mdb(1233,1,IIe,Dae);_.dk=function Eae(a){return RD(a,298)};_.ek=function Fae(a){return SC(KI,rte,298,a,0,1)};var k9=zeb(MFe,'EcorePackageImpl/35',1233);mdb(1234,1,IIe,Gae);_.dk=function Hae(a){return RD(a,190)};_.ek=function Iae(a){return SC(XI,Ote,190,a,0,1)};var l9=zeb(MFe,'EcorePackageImpl/36',1234);mdb(1235,1,IIe,Jae);_.dk=function Kae(a){return RD(a,92)};_.ek=function Lae(a){return SC(MK,rte,92,a,0,1)};var m9=zeb(MFe,'EcorePackageImpl/37',1235);mdb(1236,1,IIe,Mae);_.dk=function Nae(a){return RD(a,588)};_.ek=function Oae(a){return SC(I9,rte,588,a,0,1)};var n9=zeb(MFe,'EcorePackageImpl/38',1236);mdb(1237,1,IIe,Pae);_.dk=function Qae(a){return false};_.ek=function Rae(a){return SC(H9,rte,2175,a,0,1)};var o9=zeb(MFe,'EcorePackageImpl/39',1237);mdb(1202,1,IIe,Sae);_.dk=function Tae(a){return RD(a,88)};_.ek=function Uae(a){return SC(p6,rte,29,a,0,1)};var v9=zeb(MFe,'EcorePackageImpl/4',1202);mdb(1238,1,IIe,Vae);_.dk=function Wae(a){return RD(a,191)};_.ek=function Xae(a){return SC(cJ,Ote,191,a,0,1)};var q9=zeb(MFe,'EcorePackageImpl/40',1238);mdb(1239,1,IIe,Yae);_.dk=function Zae(a){return VD(a)};_.ek=function $ae(a){return SC(hJ,Ote,2,a,6,1)};var r9=zeb(MFe,'EcorePackageImpl/41',1239);mdb(1240,1,IIe,_ae);_.dk=function abe(a){return RD(a,585)};_.ek=function bbe(a){return SC(i6,rte,585,a,0,1)};var s9=zeb(MFe,'EcorePackageImpl/42',1240);mdb(1241,1,IIe,cbe);_.dk=function dbe(a){return false};_.ek=function ebe(a){return SC(g6,Ote,2176,a,0,1)};var t9=zeb(MFe,'EcorePackageImpl/43',1241);mdb(1242,1,IIe,fbe);_.dk=function gbe(a){return RD(a,45)};_.ek=function hbe(a){return SC(LK,$te,45,a,0,1)};var u9=zeb(MFe,'EcorePackageImpl/44',1242);mdb(1203,1,IIe,ibe);_.dk=function jbe(a){return RD(a,143)};_.ek=function kbe(a){return SC(q6,rte,143,a,0,1)};var w9=zeb(MFe,'EcorePackageImpl/5',1203);mdb(1204,1,IIe,lbe);_.dk=function mbe(a){return RD(a,159)};_.ek=function nbe(a){return SC(s6,rte,159,a,0,1)};var x9=zeb(MFe,'EcorePackageImpl/6',1204);mdb(1205,1,IIe,obe);_.dk=function pbe(a){return RD(a,459)};_.ek=function qbe(a){return SC(u6,rte,675,a,0,1)};var y9=zeb(MFe,'EcorePackageImpl/7',1205);mdb(1206,1,IIe,rbe);_.dk=function sbe(a){return RD(a,568)};_.ek=function tbe(a){return SC(t6,rte,684,a,0,1)};var z9=zeb(MFe,'EcorePackageImpl/8',1206);mdb(1207,1,IIe,ube);_.dk=function vbe(a){return RD(a,469)};_.ek=function wbe(a){return SC(v6,rte,469,a,0,1)};var A9=zeb(MFe,'EcorePackageImpl/9',1207);mdb(1019,2042,DHe,Abe);_.Ki=function Bbe(a,b){xbe(this,JD(b,415))};_.Oi=function Cbe(a,b){ybe(this,a,JD(b,415))};var D9=zeb(MFe,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1019);mdb(1020,151,AHe,Dbe);_.hj=function Ebe(){return this.a.a};var C9=zeb(MFe,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1020);mdb(1047,1046,{},Gbe);var G9=zeb('org.eclipse.emf.ecore.plugin','EcorePlugin',1047);var I9=Beb(KIe,'Resource');mdb(786,1485,LIe);_.Fl=function Kbe(a){};_.Gl=function Lbe(a){};_.Cl=function Mbe(){return !this.a&&(this.a=new Xbe(this)),this.a};_.Dl=function Nbe(a){var b,c,d,e,f;d=a.length;if(d>0){RDb(0,a.length);if(a.charCodeAt(0)==47){f=new jmb(4);e=1;for(b=1;b0&&(a=(QDb(0,c,a.length),a.substr(0,c)))}}}return Ibe(this,a)};_.El=function Obe(){return this.c};_.Ib=function Pbe(){var a;return ueb(this.Pm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var M9=zeb(MIe,'ResourceImpl',786);mdb(1486,786,LIe,Qbe);var J9=zeb(MIe,'BinaryResourceImpl',1486);mdb(1159,697,KGe);_._i=function Tbe(a){return RD(a,57)?Rbe(this,JD(a,57)):RD(a,588)?new fKd(JD(a,588).Cl()):XD(a)===XD(this.f)?JD(a,18).Jc():(jOd(),iOd.a)};_.Ob=function Ube(){return Sbe(this)};_.a=false;var Mab=zeb(UHe,'EcoreUtil/ContentTreeIterator',1159);mdb(1487,1159,KGe,Vbe);_._i=function Wbe(a){return XD(a)===XD(this.f)?JD(a,16).Jc():new Zhe(JD(a,57))};var K9=zeb(MIe,'ResourceImpl/5',1487);mdb(647,2054,hIe,Xbe);_.Gc=function Ybe(a){return this.i<=4?RFd(this,a):RD(a,52)&&JD(a,52).Gh()==this.a};_.Ki=function Zbe(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.Mi=function $be(a,b){a==0?this.a.b||(this.a.b=true,null):aFd(this,a,b)};_.Oi=function _be(a,b){};_.Pi=function ace(a,b,c){};_.Jj=function bce(){return 2};_.hj=function cce(){return this.a};_.Kj=function dce(){return true};_.Lj=function ece(a,b){var c;c=JD(a,52);b=c.ci(this.a,b);return b};_.Mj=function fce(a,b){var c;c=JD(a,52);return c.ci(null,b)};_.Nj=function gce(){return false};_.Qi=function hce(){return true};_.$i=function ice(a){return SC(z6,rte,57,a,0,1)};_.Wi=function jce(){return false};var L9=zeb(MIe,'ResourceImpl/ContentsEList',647);mdb(953,2024,lue,kce);_.dd=function lce(a){return this.a.Ii(a)};_.gc=function mce(){return this.a.gc()};var N9=zeb(UHe,'AbstractSequentialInternalEList/1',953);var fie,gie,hie,iie;mdb(625,1,{},Wce);var nce,oce;var T9=zeb(UHe,'BasicExtendedMetaData',625);mdb(1150,1,{},$ce);_.Hl=function _ce(){return null};_.Il=function ade(){this.a==-2&&Yce(this,sce(this.d,this.b));return this.a};_.Jl=function bde(){return null};_.Kl=function cde(){return Fnb(),Fnb(),Cnb};_.ve=function dde(){this.c==_Ie&&Zce(this,xce(this.d,this.b));return this.c};_.Ll=function ede(){return 0};_.a=-2;_.c=_Ie;var P9=zeb(UHe,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1150);mdb(1151,1,{},kde);_.Hl=function lde(){this.a==(pce(),nce)&&fde(this,rce(this.f,this.b));return this.a};_.Il=function mde(){return 0};_.Jl=function nde(){this.c==(pce(),nce)&&gde(this,vce(this.f,this.b));return this.c};_.Kl=function ode(){!this.d&&hde(this,wce(this.f,this.b));return this.d};_.ve=function pde(){this.e==_Ie&&ide(this,xce(this.f,this.b));return this.e};_.Ll=function qde(){this.g==-2&&jde(this,Ace(this.f,this.b));return this.g};_.e=_Ie;_.g=-2;var Q9=zeb(UHe,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1151);mdb(1149,1,{},ude);_.b=false;_.c=false;var R9=zeb(UHe,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1149);mdb(1152,1,{},Hde);_.c=-2;_.e=_Ie;_.f=_Ie;var S9=zeb(UHe,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1152);mdb(581,623,iIe,Ide);_.Jj=function Jde(){return this.c};_.ml=function Kde(){return false};_.Ui=function Lde(a,b){return b};_.c=0;var eab=zeb(UHe,'EDataTypeEList',581);var _ab=Beb(UHe,'FeatureMap');mdb(76,581,{3:1,4:1,20:1,31:1,56:1,18:1,16:1,59:1,71:1,67:1,61:1,77:1,163:1,219:1,1998:1,72:1,98:1},See);_._c=function Tee(a,b){Mde(this,a,JD(b,75))};_.Ec=function Uee(a){return Pde(this,JD(a,75))};_.Fi=function Zee(a){Ude(this,JD(a,75))};_.Lj=function ife(a,b){return kee(this,JD(a,75),b)};_.Mj=function jfe(a,b){return mee(this,JD(a,75),b)};_.Ri=function lfe(a,b){return see(this,a,b)};_.Ui=function nfe(a,b){return xee(this,a,JD(b,75))};_.fd=function pfe(a,b){return Aee(this,a,JD(b,75))};_.Sj=function tfe(a,b){return Gee(this,JD(a,75),b)};_.Tj=function ufe(a,b){return Iee(this,JD(a,75),b)};_.Uj=function vfe(a,b,c){return Jee(this,JD(a,75),JD(b,75),c)};_.Xi=function xfe(a,b){return Ree(this,a,JD(b,75))};_.Ml=function Vee(a,b){return Ode(this,a,b)};_.ad=function Wee(a,b){var c,d,e,f,g,h,i,j,k;j=new _Fd(b.gc());for(e=b.Jc();e.Ob();){d=JD(e.Pb(),75);f=d.Jk();if(oie(this.e,f)){(!f.Qi()||!aee(this,f,d.kd())&&!RFd(j,d))&&YEd(j,d)}else{k=nie(this.e.Ah(),f);c=JD(this.g,122);g=true;for(h=0;h=0){b=a[this.c];if(this.k.$l(b.Jk())){this.j=this.f?b:b.kd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var U9=zeb(UHe,'BasicFeatureMap/FeatureEIterator',412);mdb(666,412,Jte,Qfe);_.sl=function Rfe(){return true};var V9=zeb(UHe,'BasicFeatureMap/ResolvingFeatureEIterator',666);mdb(951,482,oIe,Sfe);_.nj=function Tfe(){return this};var Z9=zeb(UHe,'EContentsEList/1',951);mdb(952,482,oIe,Ufe);_.sl=function Vfe(){return false};var $9=zeb(UHe,'EContentsEList/2',952);mdb(950,287,pIe,Wfe);_.ul=function Xfe(a){};_.Ob=function Yfe(){return false};_.Sb=function Zfe(){return false};var _9=zeb(UHe,'EContentsEList/FeatureIteratorImpl/1',950);mdb(824,581,iIe,$fe);_.Li=function _fe(){this.a=true};_.Oj=function age(){return this.a};_.Ek=function bge(){var a;uJd(this);if(Vsd(this.e)){a=this.a;this.a=false;zsd(this.e,new O1d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var dab=zeb(UHe,'EDataTypeEList/Unsettable',824);mdb(1920,581,iIe,cge);_.Qi=function dge(){return true};var gab=zeb(UHe,'EDataTypeUniqueEList',1920);mdb(1921,824,iIe,ege);_.Qi=function fge(){return true};var fab=zeb(UHe,'EDataTypeUniqueEList/Unsettable',1921);mdb(145,81,iIe,gge);_.ll=function hge(){return true};_.Ui=function ige(a,b){return eXd(this,a,JD(b,57))};var hab=zeb(UHe,'EObjectContainmentEList/Resolving',145);mdb(1153,543,iIe,jge);_.ll=function kge(){return true};_.Ui=function lge(a,b){return eXd(this,a,JD(b,57))};var iab=zeb(UHe,'EObjectContainmentEList/Unsettable/Resolving',1153);mdb(753,14,iIe,mge);_.Li=function nge(){this.a=true};_.Oj=function oge(){return this.a};_.Ek=function pge(){var a;uJd(this);if(Vsd(this.e)){a=this.a;this.a=false;zsd(this.e,new O1d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var nab=zeb(UHe,'EObjectContainmentWithInverseEList/Unsettable',753);mdb(1187,753,iIe,qge);_.ll=function rge(){return true};_.Ui=function sge(a,b){return eXd(this,a,JD(b,57))};var mab=zeb(UHe,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1187);mdb(745,491,iIe,tge);_.Li=function uge(){this.a=true};_.Oj=function vge(){return this.a};_.Ek=function wge(){var a;uJd(this);if(Vsd(this.e)){a=this.a;this.a=false;zsd(this.e,new O1d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var pab=zeb(UHe,'EObjectEList/Unsettable',745);mdb(339,491,iIe,xge);_.ll=function yge(){return true};_.Ui=function zge(a,b){return eXd(this,a,JD(b,57))};var sab=zeb(UHe,'EObjectResolvingEList',339);mdb(1825,745,iIe,Age);_.ll=function Bge(){return true};_.Ui=function Cge(a,b){return eXd(this,a,JD(b,57))};var rab=zeb(UHe,'EObjectResolvingEList/Unsettable',1825);mdb(1488,1,{},Fge);var Dge;var tab=zeb(UHe,'EObjectValidator',1488);mdb(547,491,iIe,Gge);_.gl=function Hge(){return this.d};_.hl=function Ige(){return this.b};_.Kj=function Jge(){return true};_.kl=function Kge(){return true};_.b=0;var xab=zeb(UHe,'EObjectWithInverseEList',547);mdb(1190,547,iIe,Lge);_.jl=function Mge(){return true};var uab=zeb(UHe,'EObjectWithInverseEList/ManyInverse',1190);mdb(626,547,iIe,Nge);_.Li=function Oge(){this.a=true};_.Oj=function Pge(){return this.a};_.Ek=function Qge(){var a;uJd(this);if(Vsd(this.e)){a=this.a;this.a=false;zsd(this.e,new O1d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var wab=zeb(UHe,'EObjectWithInverseEList/Unsettable',626);mdb(1189,626,iIe,Rge);_.jl=function Sge(){return true};var vab=zeb(UHe,'EObjectWithInverseEList/Unsettable/ManyInverse',1189);mdb(754,547,iIe,Tge);_.ll=function Uge(){return true};_.Ui=function Vge(a,b){return eXd(this,a,JD(b,57))};var Bab=zeb(UHe,'EObjectWithInverseResolvingEList',754);mdb(33,754,iIe,Wge);_.jl=function Xge(){return true};var yab=zeb(UHe,'EObjectWithInverseResolvingEList/ManyInverse',33);mdb(755,626,iIe,Yge);_.ll=function Zge(){return true};_.Ui=function $ge(a,b){return eXd(this,a,JD(b,57))};var Aab=zeb(UHe,'EObjectWithInverseResolvingEList/Unsettable',755);mdb(1188,755,iIe,_ge);_.jl=function ahe(){return true};var zab=zeb(UHe,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1188);mdb(1154,623,iIe);_.Ji=function bhe(){return (this.b&1792)==0};_.Li=function che(){this.b|=1};_.il=function dhe(){return (this.b&4)!=0};_.Kj=function ehe(){return (this.b&40)!=0};_.jl=function fhe(){return (this.b&16)!=0};_.kl=function ghe(){return (this.b&8)!=0};_.ll=function hhe(){return (this.b&Mte)!=0};_.$k=function ihe(){return (this.b&32)!=0};_.ml=function jhe(){return (this.b&GHe)!=0};_.dk=function khe(a){return !this.d?this.Jk().Fk().dk(a):OPd(this.d,a)};_.Oj=function lhe(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.Qi=function mhe(){return (this.b&128)!=0};_.Ek=function ohe(){var a;uJd(this);if((this.b&2)!=0){if(Vsd(this.e)){a=(this.b&1)!=0;this.b&=-2;cXd(this,new O1d(this.e,2,zWd(this.e.Ah(),this.Jk()),a,false))}else{this.b&=-2}}};_.Wi=function phe(){return (this.b&1536)==0};_.b=0;var Dab=zeb(UHe,'EcoreEList/Generic',1154);mdb(1155,1154,iIe,qhe);_.Jk=function rhe(){return this.a};var Cab=zeb(UHe,'EcoreEList/Dynamic',1155);mdb(752,67,JGe,she);_.$i=function the(a){return KKd(this.a.a,a)};var Hab=zeb(UHe,'EcoreEMap/1',752);mdb(751,81,iIe,uhe);_.Ki=function vhe(a,b){WLd(this.b,JD(b,136))};_.Mi=function whe(a,b){VLd(this.b)};_.Ni=function xhe(a,b,c){var d;++(d=this.b,JD(b,136),d).e};_.Oi=function yhe(a,b){XLd(this.b,JD(b,136))};_.Pi=function zhe(a,b,c){XLd(this.b,JD(c,136));XD(c)===XD(b)&&JD(c,136).zi(cMd(JD(b,136).jd()));WLd(this.b,JD(b,136))};var Iab=zeb(UHe,'EcoreEMap/DelegateEObjectContainmentEList',751);mdb(1185,142,WHe,Ahe);var Kab=zeb(UHe,'EcoreEMap/Unsettable',1185);mdb(1186,751,iIe,Bhe);_.Li=function Che(){this.a=true};_.Oj=function Dhe(){return this.a};_.Ek=function Ehe(){var a;uJd(this);if(Vsd(this.e)){a=this.a;this.a=false;zsd(this.e,new O1d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var Jab=zeb(UHe,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1186);mdb(1158,223,Hve,Xhe);_.a=false;_.b=false;var Nab=zeb(UHe,'EcoreUtil/Copier',1158);mdb(747,1,Ate,Zhe);_.Nb=function $he(a){ctb(this,a)};_.Ob=function _he(){return Yhe(this)};_.Pb=function aie(){var a;Yhe(this);a=this.b;this.b=null;return a};_.Qb=function bie(){this.a.Qb()};var Oab=zeb(UHe,'EcoreUtil/ProperContentIterator',747);mdb(1489,1488,{},eie);var cie;var Pab=zeb(UHe,'EcoreValidator',1489);var kie;var $ab=Beb(UHe,'FeatureMapUtil/Validator');mdb(1258,1,{2003:1},pie);_.$l=function qie(a){return true};var Sab=zeb(UHe,'FeatureMapUtil/1',1258);mdb(760,1,{2003:1},uie);_.$l=function vie(a){var b;if(this.c==a)return true;b=LD(bjb(this.a,a));if(b==null){if(tie(this,a)){wie(this.a,a,(Ndb(),Mdb));return true}else{wie(this.a,a,(Ndb(),Ldb));return false}}else{return b==(Ndb(),Mdb)}};_.e=false;var rie;var Vab=zeb(UHe,'FeatureMapUtil/BasicValidator',760);mdb(761,44,Hve,xie);var Uab=zeb(UHe,'FeatureMapUtil/BasicValidator/Cache',761);mdb(495,56,{20:1,31:1,56:1,18:1,16:1,61:1,77:1,72:1,98:1},Cie);_._c=function Die(a,b){Nde(this.c,this.b,a,b)};_.Ec=function Eie(a){return Ode(this.c,this.b,a)};_.ad=function Fie(a,b){return Qde(this.c,this.b,a,b)};_.Fc=function Gie(a){return yie(this,a)};_.Ei=function Hie(a,b){Sde(this.c,this.b,a,b)};_.Uk=function Iie(a,b){return Vde(this.c,this.b,a,b)};_.Yi=function Jie(a){return fee(this.c,this.b,a,false)};_.Gi=function Kie(){return Wde(this.c,this.b)};_.Hi=function Lie(){return Xde(this.c,this.b)};_.Ii=function Mie(a){return Yde(this.c,this.b,a)};_.Vk=function Nie(a,b){return zie(this,a,b)};_.$b=function Oie(){Aie(this)};_.Gc=function Pie(a){return aee(this.c,this.b,a)};_.Hc=function Qie(a){return cee(this.c,this.b,a)};_.Xb=function Rie(a){return fee(this.c,this.b,a,true)};_.Dk=function Sie(a){return this};_.bd=function Tie(a){return hee(this.c,this.b,a)};_.dc=function Uie(){return Bie(this)};_.Oj=function Vie(){return !nee(this.c,this.b)};_.Jc=function Wie(){return oee(this.c,this.b)};_.cd=function Xie(){return qee(this.c,this.b)};_.dd=function Yie(a){return ree(this.c,this.b,a)};_.Ri=function Zie(a,b){return tee(this.c,this.b,a,b)};_.Si=function $ie(a,b){uee(this.c,this.b,a,b)};_.ed=function _ie(a){return vee(this.c,this.b,a)};_.Kc=function aje(a){return wee(this.c,this.b,a)};_.fd=function bje(a,b){return Cee(this.c,this.b,a,b)};_.Wb=function cje(a){_de(this.c,this.b);yie(this,JD(a,16))};_.gc=function dje(){return Lee(this.c,this.b)};_.Nc=function eje(){return Mee(this.c,this.b)};_.Oc=function fje(a){return Oee(this.c,this.b,a)};_.Ib=function gje(){var a,b;b=new Xgb;b.a+='[';for(a=Wde(this.c,this.b);zfe(a);){Ugb(b,Ngb(Bfe(a)));zfe(a)&&(b.a+=pte,b)}b.a+=']';return b.a};_.Ek=function hje(){_de(this.c,this.b)};var Wab=zeb(UHe,'FeatureMapUtil/FeatureEList',495);mdb(634,39,AHe,jje);_.fj=function kje(a){return ije(this,a)};_.kj=function lje(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.hj();if(XD(f)===XD(this.c)&&ije(this,null)==a.fj(null)){this.g=a.gj();a.ej()==1&&(this.d=1);return true}break}case 3:{e=a.ej();switch(e){case 3:{f=a.hj();if(XD(f)===XD(this.c)&&ije(this,null)==a.fj(null)){this.d=5;b=new _Fd(2);YEd(b,this.g);YEd(b,a.gj());this.g=b;return true}break}}break}case 5:{e=a.ej();switch(e){case 3:{f=a.hj();if(XD(f)===XD(this.c)&&ije(this,null)==a.fj(null)){c=JD(this.g,18);c.Ec(a.gj());return true}break}}break}case 4:{e=a.ej();switch(e){case 3:{f=a.hj();if(XD(f)===XD(this.c)&&ije(this,null)==a.fj(null)){this.d=1;this.g=a.gj();return true}break}case 4:{f=a.hj();if(XD(f)===XD(this.c)&&ije(this,null)==a.fj(null)){this.d=6;h=new _Fd(2);YEd(h,this.n);YEd(h,a.ij());this.n=h;g=WC(OC(cE,1),Pue,30,15,[this.o,a.jj()]);this.g=g;return true}break}}break}case 6:{e=a.ej();switch(e){case 4:{f=a.hj();if(XD(f)===XD(this.c)&&ije(this,null)==a.fj(null)){c=JD(this.n,18);c.Ec(a.ij());g=JD(this.g,54);d=SC(cE,Pue,30,g.length+1,15,1);ohb(g,0,d,0,g.length);d[g.length]=a.jj();this.g=d;return true}break}}break}}return false};var Xab=zeb(UHe,'FeatureMapUtil/FeatureENotificationImpl',634);mdb(553,495,{20:1,31:1,56:1,18:1,16:1,61:1,77:1,163:1,219:1,1998:1,72:1,98:1},mje);_.Ml=function nje(a,b){return Ode(this.c,a,b)};_.Nl=function oje(a,b,c){return Vde(this.c,a,b,c)};_.Ol=function pje(a,b,c){return $de(this.c,a,b,c)};_.Pl=function qje(){return this};_.Ql=function rje(a,b){return gee(this.c,a,b)};_.Rl=function sje(a){return JD(fee(this.c,this.b,a,false),75).Jk()};_.Sl=function tje(a){return JD(fee(this.c,this.b,a,false),75).kd()};_.Tl=function uje(){return this.a};_.Ul=function vje(a){return !nee(this.c,a)};_.Vl=function wje(a,b){Dee(this.c,a,b)};_.Wl=function xje(a){return Eee(this.c,a)};_.Xl=function yje(a){Qee(this.c,a)};var Yab=zeb(UHe,'FeatureMapUtil/FeatureFeatureMap',553);mdb(1257,1,VHe,zje);_.Dk=function Aje(a){return fee(this.b,this.a,-1,a)};_.Oj=function Bje(){return !nee(this.b,this.a)};_.Wb=function Cje(a){Dee(this.b,this.a,a)};_.Ek=function Dje(){_de(this.b,this.a)};var Zab=zeb(UHe,'FeatureMapUtil/FeatureValue',1257);var Eje,Fje,Gje,Hje,Ije;var bbb=Beb(bJe,'AnyType');mdb(670,63,tue,Kje);var cbb=zeb(bJe,'InvalidDatatypeValueException',670);var dbb=Beb(bJe,cJe);var ebb=Beb(bJe,dJe);var fbb=Beb(bJe,eJe);var Lje;var Nje;var Pje,Qje,Rje,Sje,Tje,Uje,Vje,Wje,Xje,Yje,Zje,$je,_je,ake,bke,cke,dke,eke,fke,gke,hke,ike,jke,kke;mdb(828,501,{109:1,94:1,93:1,57:1,52:1,100:1,841:1},mke);_.Ih=function nke(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new See(this,0)),this.c;return !this.c&&(this.c=new See(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new See(this,0)),JD(pee(this.c,(lke(),Qje)),163);return (!this.c&&(this.c=new See(this,0)),JD(JD(pee(this.c,(lke(),Qje)),163),219)).Tl();case 2:if(c)return !this.b&&(this.b=new See(this,2)),this.b;return !this.b&&(this.b=new See(this,2)),this.b.b;}return Isd(this,a-yWd(this.fi()),tWd((this.j&2)==0?this.fi():(!this.k&&(this.k=new dSd),this.k).Lk(),a),b,c)};_.Rh=function oke(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new See(this,0)),Zde(this.c,a,c);case 1:return (!this.c&&(this.c=new See(this,0)),JD(JD(pee(this.c,(lke(),Qje)),163),72)).Vk(a,c);case 2:return !this.b&&(this.b=new See(this,2)),Zde(this.b,a,c);}return d=JD(tWd((this.j&2)==0?this.fi():(!this.k&&(this.k=new dSd),this.k).Lk(),b),69),d.uk().yk(this,ftd(this),b-yWd(this.fi()),a,c)};_.Th=function pke(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new See(this,0)),JD(pee(this.c,(lke(),Qje)),163)).dc();case 2:return !!this.b&&this.b.i!=0;}return Jsd(this,a-yWd(this.fi()),tWd((this.j&2)==0?this.fi():(!this.k&&(this.k=new dSd),this.k).Lk(),a))};_.$h=function qke(a,b){switch(a){case 0:!this.c&&(this.c=new See(this,0));Bee(this.c,b);return;case 1:(!this.c&&(this.c=new See(this,0)),JD(JD(pee(this.c,(lke(),Qje)),163),219)).Wb(b);return;case 2:!this.b&&(this.b=new See(this,2));Bee(this.b,b);return;}Ksd(this,a-yWd(this.fi()),tWd((this.j&2)==0?this.fi():(!this.k&&(this.k=new dSd),this.k).Lk(),a),b)};_.fi=function rke(){return lke(),Pje};_.hi=function ske(a){switch(a){case 0:!this.c&&(this.c=new See(this,0));uJd(this.c);return;case 1:(!this.c&&(this.c=new See(this,0)),JD(pee(this.c,(lke(),Qje)),163)).$b();return;case 2:!this.b&&(this.b=new See(this,2));uJd(this.b);return;}Lsd(this,a-yWd(this.fi()),tWd((this.j&2)==0?this.fi():(!this.k&&(this.k=new dSd),this.k).Lk(),a))};_.Ib=function tke(){var a;if((this.j&4)!=0)return jtd(this);a=new Zgb(jtd(this));a.a+=' (mixed: ';Tgb(a,this.c);a.a+=', anyAttribute: ';Tgb(a,this.b);a.a+=')';return a.a};var gbb=zeb(fJe,'AnyTypeImpl',828);mdb(671,501,{109:1,94:1,93:1,57:1,52:1,100:1,2081:1,671:1},wke);_.Ih=function xke(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return Isd(this,a-yWd((lke(),ake)),tWd((this.j&2)==0?ake:(!this.k&&(this.k=new dSd),this.k).Lk(),a),b,c)};_.Th=function yke(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return Jsd(this,a-yWd((lke(),ake)),tWd((this.j&2)==0?ake:(!this.k&&(this.k=new dSd),this.k).Lk(),a))};_.$h=function zke(a,b){switch(a){case 0:uke(this,OD(b));return;case 1:vke(this,OD(b));return;}Ksd(this,a-yWd((lke(),ake)),tWd((this.j&2)==0?ake:(!this.k&&(this.k=new dSd),this.k).Lk(),a),b)};_.fi=function Ake(){return lke(),ake};_.hi=function Bke(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}Lsd(this,a-yWd((lke(),ake)),tWd((this.j&2)==0?ake:(!this.k&&(this.k=new dSd),this.k).Lk(),a))};_.Ib=function Cke(){var a;if((this.j&4)!=0)return jtd(this);a=new Zgb(jtd(this));a.a+=' (data: ';Ugb(a,this.a);a.a+=', target: ';Ugb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var hbb=zeb(fJe,'ProcessingInstructionImpl',671);mdb(672,828,{109:1,94:1,93:1,57:1,52:1,100:1,841:1,2082:1,672:1},Fke);_.Ih=function Gke(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new See(this,0)),this.c;return !this.c&&(this.c=new See(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new See(this,0)),JD(pee(this.c,(lke(),Qje)),163);return (!this.c&&(this.c=new See(this,0)),JD(JD(pee(this.c,(lke(),Qje)),163),219)).Tl();case 2:if(c)return !this.b&&(this.b=new See(this,2)),this.b;return !this.b&&(this.b=new See(this,2)),this.b.b;case 3:return !this.c&&(this.c=new See(this,0)),OD(gee(this.c,(lke(),dke),true));case 4:return Ghe(this.a,(!this.c&&(this.c=new See(this,0)),OD(gee(this.c,(lke(),dke),true))));case 5:return this.a;}return Isd(this,a-yWd((lke(),cke)),tWd((this.j&2)==0?cke:(!this.k&&(this.k=new dSd),this.k).Lk(),a),b,c)};_.Th=function Hke(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new See(this,0)),JD(pee(this.c,(lke(),Qje)),163)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new See(this,0)),OD(gee(this.c,(lke(),dke),true))!=null;case 4:return Ghe(this.a,(!this.c&&(this.c=new See(this,0)),OD(gee(this.c,(lke(),dke),true))))!=null;case 5:return !!this.a;}return Jsd(this,a-yWd((lke(),cke)),tWd((this.j&2)==0?cke:(!this.k&&(this.k=new dSd),this.k).Lk(),a))};_.$h=function Ike(a,b){switch(a){case 0:!this.c&&(this.c=new See(this,0));Bee(this.c,b);return;case 1:(!this.c&&(this.c=new See(this,0)),JD(JD(pee(this.c,(lke(),Qje)),163),219)).Wb(b);return;case 2:!this.b&&(this.b=new See(this,2));Bee(this.b,b);return;case 3:Eke(this,OD(b));return;case 4:Eke(this,Fhe(this.a,b));return;case 5:Dke(this,JD(b,159));return;}Ksd(this,a-yWd((lke(),cke)),tWd((this.j&2)==0?cke:(!this.k&&(this.k=new dSd),this.k).Lk(),a),b)};_.fi=function Jke(){return lke(),cke};_.hi=function Kke(a){switch(a){case 0:!this.c&&(this.c=new See(this,0));uJd(this.c);return;case 1:(!this.c&&(this.c=new See(this,0)),JD(pee(this.c,(lke(),Qje)),163)).$b();return;case 2:!this.b&&(this.b=new See(this,2));uJd(this.b);return;case 3:!this.c&&(this.c=new See(this,0));Dee(this.c,(lke(),dke),null);return;case 4:Eke(this,Fhe(this.a,null));return;case 5:this.a=null;return;}Lsd(this,a-yWd((lke(),cke)),tWd((this.j&2)==0?cke:(!this.k&&(this.k=new dSd),this.k).Lk(),a))};var ibb=zeb(fJe,'SimpleAnyTypeImpl',672);mdb(673,501,{109:1,94:1,93:1,57:1,52:1,100:1,2083:1,673:1},Lke);_.Ih=function Mke(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new See(this,0)),this.a;return !this.a&&(this.a=new See(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new BTd((HRd(),DRd),K7,this,1)),this.b):(!this.b&&(this.b=new BTd((HRd(),DRd),K7,this,1)),fMd(this.b));case 2:return c?(!this.c&&(this.c=new BTd((HRd(),DRd),K7,this,2)),this.c):(!this.c&&(this.c=new BTd((HRd(),DRd),K7,this,2)),fMd(this.c));case 3:return !this.a&&(this.a=new See(this,0)),pee(this.a,(lke(),gke));case 4:return !this.a&&(this.a=new See(this,0)),pee(this.a,(lke(),hke));case 5:return !this.a&&(this.a=new See(this,0)),pee(this.a,(lke(),jke));case 6:return !this.a&&(this.a=new See(this,0)),pee(this.a,(lke(),kke));}return Isd(this,a-yWd((lke(),fke)),tWd((this.j&2)==0?fke:(!this.k&&(this.k=new dSd),this.k).Lk(),a),b,c)};_.Rh=function Nke(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new See(this,0)),Zde(this.a,a,c);case 1:return !this.b&&(this.b=new BTd((HRd(),DRd),K7,this,1)),zTd(this.b,a,c);case 2:return !this.c&&(this.c=new BTd((HRd(),DRd),K7,this,2)),zTd(this.c,a,c);case 5:return !this.a&&(this.a=new See(this,0)),zie(pee(this.a,(lke(),jke)),a,c);}return d=JD(tWd((this.j&2)==0?(lke(),fke):(!this.k&&(this.k=new dSd),this.k).Lk(),b),69),d.uk().yk(this,ftd(this),b-yWd((lke(),fke)),a,c)};_.Th=function Oke(a){switch(a){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 See(this,0)),!Bie(pee(this.a,(lke(),gke)));case 4:return !this.a&&(this.a=new See(this,0)),!Bie(pee(this.a,(lke(),hke)));case 5:return !this.a&&(this.a=new See(this,0)),!Bie(pee(this.a,(lke(),jke)));case 6:return !this.a&&(this.a=new See(this,0)),!Bie(pee(this.a,(lke(),kke)));}return Jsd(this,a-yWd((lke(),fke)),tWd((this.j&2)==0?fke:(!this.k&&(this.k=new dSd),this.k).Lk(),a))};_.$h=function Pke(a,b){switch(a){case 0:!this.a&&(this.a=new See(this,0));Bee(this.a,b);return;case 1:!this.b&&(this.b=new BTd((HRd(),DRd),K7,this,1));ATd(this.b,b);return;case 2:!this.c&&(this.c=new BTd((HRd(),DRd),K7,this,2));ATd(this.c,b);return;case 3:!this.a&&(this.a=new See(this,0));Aie(pee(this.a,(lke(),gke)));!this.a&&(this.a=new See(this,0));yie(pee(this.a,gke),JD(b,18));return;case 4:!this.a&&(this.a=new See(this,0));Aie(pee(this.a,(lke(),hke)));!this.a&&(this.a=new See(this,0));yie(pee(this.a,hke),JD(b,18));return;case 5:!this.a&&(this.a=new See(this,0));Aie(pee(this.a,(lke(),jke)));!this.a&&(this.a=new See(this,0));yie(pee(this.a,jke),JD(b,18));return;case 6:!this.a&&(this.a=new See(this,0));Aie(pee(this.a,(lke(),kke)));!this.a&&(this.a=new See(this,0));yie(pee(this.a,kke),JD(b,18));return;}Ksd(this,a-yWd((lke(),fke)),tWd((this.j&2)==0?fke:(!this.k&&(this.k=new dSd),this.k).Lk(),a),b)};_.fi=function Qke(){return lke(),fke};_.hi=function Rke(a){switch(a){case 0:!this.a&&(this.a=new See(this,0));uJd(this.a);return;case 1:!this.b&&(this.b=new BTd((HRd(),DRd),K7,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new BTd((HRd(),DRd),K7,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new See(this,0));Aie(pee(this.a,(lke(),gke)));return;case 4:!this.a&&(this.a=new See(this,0));Aie(pee(this.a,(lke(),hke)));return;case 5:!this.a&&(this.a=new See(this,0));Aie(pee(this.a,(lke(),jke)));return;case 6:!this.a&&(this.a=new See(this,0));Aie(pee(this.a,(lke(),kke)));return;}Lsd(this,a-yWd((lke(),fke)),tWd((this.j&2)==0?fke:(!this.k&&(this.k=new dSd),this.k).Lk(),a))};_.Ib=function Ske(){var a;if((this.j&4)!=0)return jtd(this);a=new Zgb(jtd(this));a.a+=' (mixed: ';Tgb(a,this.a);a.a+=')';return a.a};var jbb=zeb(fJe,'XMLTypeDocumentRootImpl',673);mdb(1990,710,{109:1,94:1,93:1,469:1,158:1,57:1,114:1,52:1,100:1,161:1,117:1,118:1,2084:1},ple);_.oi=function qle(a,b){switch(a.fk()){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 b==null?null:qdb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return OD(b);case 6:return Zke(JD(b,195));case 12:case 47:case 49:case 11:return Axd(this,a,b);case 13:return b==null?null:Fhb(JD(b,247));case 15:case 14:return b==null?null:$ke(Reb(MD(b)));case 17:return _ke((lke(),b));case 18:return _ke(b);case 21:case 20:return b==null?null:ale(JD(b,164).a);case 27:return ble(JD(b,195));case 30:return cle((lke(),JD(b,16)));case 31:return cle(JD(b,16));case 40:return fle((lke(),b));case 42:return dle((lke(),b));case 43:return dle(b);case 59:case 48:return ele((lke(),b));default:throw Icb(new hfb(PFe+a.ve()+QFe));}};_.pi=function rle(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=zVd(a),c?dXd(c.si(),a):-1)),a.G){case 0:return b=new mke,b;case 1:return d=new wke,d;case 2:return e=new Fke,e;case 3:return f=new Lke,f;default:throw Icb(new hfb(TFe+a.zb+QFe));}};_.qi=function sle(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.fk()){case 5:case 52:case 4:return b;case 6:return gle(b);case 8:case 7:return b==null?null:Yke(b);case 9:return b==null?null:feb(Vdb((d=lse(b,true),d.length>0&&(RDb(0,d.length),d.charCodeAt(0)==43)?(RDb(1,d.length+1),d.substr(1)):d),-128,127)<<24>>24);case 10:return b==null?null:feb(Vdb((e=lse(b,true),e.length>0&&(RDb(0,e.length),e.charCodeAt(0)==43)?(RDb(1,e.length+1),e.substr(1)):e),-128,127)<<24>>24);case 11:return OD(Bxd(this,(lke(),Tje),b));case 12:return OD(Bxd(this,(lke(),Uje),b));case 13:return b==null?null:new Ihb(lse(b,true));case 15:case 14:return hle(b);case 16:return OD(Bxd(this,(lke(),Vje),b));case 17:return ile((lke(),b));case 18:return ile(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return lse(b,true);case 21:case 20:return jle(b);case 22:return OD(Bxd(this,(lke(),Wje),b));case 23:return OD(Bxd(this,(lke(),Xje),b));case 24:return OD(Bxd(this,(lke(),Yje),b));case 25:return OD(Bxd(this,(lke(),Zje),b));case 26:return OD(Bxd(this,(lke(),$je),b));case 27:return kle(b);case 30:return lle((lke(),b));case 31:return lle(b);case 32:return b==null?null:zfb(Vdb((k=lse(b,true),k.length>0&&(RDb(0,k.length),k.charCodeAt(0)==43)?(RDb(1,k.length+1),k.substr(1)):k),rue,lte));case 33:return b==null?null:new lib((l=lse(b,true),l.length>0&&(RDb(0,l.length),l.charCodeAt(0)==43)?(RDb(1,l.length+1),l.substr(1)):l));case 34:return b==null?null:zfb(Vdb((m=lse(b,true),m.length>0&&(RDb(0,m.length),m.charCodeAt(0)==43)?(RDb(1,m.length+1),m.substr(1)):m),rue,lte));case 36:return b==null?null:Ofb(Wdb((n=lse(b,true),n.length>0&&(RDb(0,n.length),n.charCodeAt(0)==43)?(RDb(1,n.length+1),n.substr(1)):n)));case 37:return b==null?null:Ofb(Wdb((o=lse(b,true),o.length>0&&(RDb(0,o.length),o.charCodeAt(0)==43)?(RDb(1,o.length+1),o.substr(1)):o)));case 40:return ole((lke(),b));case 42:return mle((lke(),b));case 43:return mle(b);case 44:return b==null?null:new lib((p=lse(b,true),p.length>0&&(RDb(0,p.length),p.charCodeAt(0)==43)?(RDb(1,p.length+1),p.substr(1)):p));case 45:return b==null?null:new lib((q=lse(b,true),q.length>0&&(RDb(0,q.length),q.charCodeAt(0)==43)?(RDb(1,q.length+1),q.substr(1)):q));case 46:return lse(b,false);case 47:return OD(Bxd(this,(lke(),_je),b));case 59:case 48:return nle((lke(),b));case 49:return OD(Bxd(this,(lke(),bke),b));case 50:return b==null?null:igb(Vdb((r=lse(b,true),r.length>0&&(RDb(0,r.length),r.charCodeAt(0)==43)?(RDb(1,r.length+1),r.substr(1)):r),vIe,32767)<<16>>16);case 51:return b==null?null:igb(Vdb((f=lse(b,true),f.length>0&&(RDb(0,f.length),f.charCodeAt(0)==43)?(RDb(1,f.length+1),f.substr(1)):f),vIe,32767)<<16>>16);case 53:return OD(Bxd(this,(lke(),eke),b));case 55:return b==null?null:igb(Vdb((g=lse(b,true),g.length>0&&(RDb(0,g.length),g.charCodeAt(0)==43)?(RDb(1,g.length+1),g.substr(1)):g),vIe,32767)<<16>>16);case 56:return b==null?null:igb(Vdb((h=lse(b,true),h.length>0&&(RDb(0,h.length),h.charCodeAt(0)==43)?(RDb(1,h.length+1),h.substr(1)):h),vIe,32767)<<16>>16);case 57:return b==null?null:Ofb(Wdb((i=lse(b,true),i.length>0&&(RDb(0,i.length),i.charCodeAt(0)==43)?(RDb(1,i.length+1),i.substr(1)):i)));case 58:return b==null?null:Ofb(Wdb((j=lse(b,true),j.length>0&&(RDb(0,j.length),j.charCodeAt(0)==43)?(RDb(1,j.length+1),j.substr(1)):j)));case 60:return b==null?null:zfb(Vdb((c=lse(b,true),c.length>0&&(RDb(0,c.length),c.charCodeAt(0)==43)?(RDb(1,c.length+1),c.substr(1)):c),rue,lte));case 61:return b==null?null:zfb(Vdb(lse(b,true),rue,lte));default:throw Icb(new hfb(PFe+a.ve()+QFe));}};var Tke,Uke,Vke,Wke;var kbb=zeb(fJe,'XMLTypeFactoryImpl',1990);mdb(582,184,{109:1,94:1,93:1,158:1,197:1,57:1,241:1,114:1,52:1,100:1,161:1,184:1,117:1,118:1,680:1,2006:1,582:1},zle);_.N=false;_.O=false;var ule=false;var jcb=zeb(fJe,'XMLTypePackageImpl',582);mdb(1923,1,{835:1},Cle);_.Ik=function Dle(){return pse(),ose};var vbb=zeb(fJe,'XMLTypePackageImpl/1',1923);mdb(1932,1,IIe,Ele);_.dk=function Fle(a){return VD(a)};_.ek=function Gle(a){return SC(hJ,Ote,2,a,6,1)};var lbb=zeb(fJe,'XMLTypePackageImpl/10',1932);mdb(1933,1,IIe,Hle);_.dk=function Ile(a){return VD(a)};_.ek=function Jle(a){return SC(hJ,Ote,2,a,6,1)};var mbb=zeb(fJe,'XMLTypePackageImpl/11',1933);mdb(1934,1,IIe,Kle);_.dk=function Lle(a){return VD(a)};_.ek=function Mle(a){return SC(hJ,Ote,2,a,6,1)};var nbb=zeb(fJe,'XMLTypePackageImpl/12',1934);mdb(1935,1,IIe,Nle);_.dk=function Ole(a){return TD(a)};_.ek=function Ple(a){return SC(LI,Ote,346,a,7,1)};var obb=zeb(fJe,'XMLTypePackageImpl/13',1935);mdb(1936,1,IIe,Qle);_.dk=function Rle(a){return VD(a)};_.ek=function Sle(a){return SC(hJ,Ote,2,a,6,1)};var pbb=zeb(fJe,'XMLTypePackageImpl/14',1936);mdb(1937,1,IIe,Tle);_.dk=function Ule(a){return RD(a,16)};_.ek=function Vle(a){return SC(HK,Twe,16,a,0,1)};var qbb=zeb(fJe,'XMLTypePackageImpl/15',1937);mdb(1938,1,IIe,Wle);_.dk=function Xle(a){return RD(a,16)};_.ek=function Yle(a){return SC(HK,Twe,16,a,0,1)};var rbb=zeb(fJe,'XMLTypePackageImpl/16',1938);mdb(1939,1,IIe,Zle);_.dk=function $le(a){return VD(a)};_.ek=function _le(a){return SC(hJ,Ote,2,a,6,1)};var sbb=zeb(fJe,'XMLTypePackageImpl/17',1939);mdb(1940,1,IIe,ame);_.dk=function bme(a){return RD(a,164)};_.ek=function cme(a){return SC(QI,Ote,164,a,0,1)};var tbb=zeb(fJe,'XMLTypePackageImpl/18',1940);mdb(1941,1,IIe,dme);_.dk=function eme(a){return VD(a)};_.ek=function fme(a){return SC(hJ,Ote,2,a,6,1)};var ubb=zeb(fJe,'XMLTypePackageImpl/19',1941);mdb(1924,1,IIe,gme);_.dk=function hme(a){return RD(a,841)};_.ek=function ime(a){return SC(bbb,rte,841,a,0,1)};var Gbb=zeb(fJe,'XMLTypePackageImpl/2',1924);mdb(1942,1,IIe,jme);_.dk=function kme(a){return VD(a)};_.ek=function lme(a){return SC(hJ,Ote,2,a,6,1)};var wbb=zeb(fJe,'XMLTypePackageImpl/20',1942);mdb(1943,1,IIe,mme);_.dk=function nme(a){return VD(a)};_.ek=function ome(a){return SC(hJ,Ote,2,a,6,1)};var xbb=zeb(fJe,'XMLTypePackageImpl/21',1943);mdb(1944,1,IIe,pme);_.dk=function qme(a){return VD(a)};_.ek=function rme(a){return SC(hJ,Ote,2,a,6,1)};var ybb=zeb(fJe,'XMLTypePackageImpl/22',1944);mdb(1945,1,IIe,sme);_.dk=function tme(a){return VD(a)};_.ek=function ume(a){return SC(hJ,Ote,2,a,6,1)};var zbb=zeb(fJe,'XMLTypePackageImpl/23',1945);mdb(1946,1,IIe,vme);_.dk=function wme(a){return RD(a,195)};_.ek=function xme(a){return SC($D,Ote,195,a,0,2)};var Abb=zeb(fJe,'XMLTypePackageImpl/24',1946);mdb(1947,1,IIe,yme);_.dk=function zme(a){return VD(a)};_.ek=function Ame(a){return SC(hJ,Ote,2,a,6,1)};var Bbb=zeb(fJe,'XMLTypePackageImpl/25',1947);mdb(1948,1,IIe,Bme);_.dk=function Cme(a){return VD(a)};_.ek=function Dme(a){return SC(hJ,Ote,2,a,6,1)};var Cbb=zeb(fJe,'XMLTypePackageImpl/26',1948);mdb(1949,1,IIe,Eme);_.dk=function Fme(a){return RD(a,16)};_.ek=function Gme(a){return SC(HK,Twe,16,a,0,1)};var Dbb=zeb(fJe,'XMLTypePackageImpl/27',1949);mdb(1950,1,IIe,Hme);_.dk=function Ime(a){return RD(a,16)};_.ek=function Jme(a){return SC(HK,Twe,16,a,0,1)};var Ebb=zeb(fJe,'XMLTypePackageImpl/28',1950);mdb(1951,1,IIe,Kme);_.dk=function Lme(a){return VD(a)};_.ek=function Mme(a){return SC(hJ,Ote,2,a,6,1)};var Fbb=zeb(fJe,'XMLTypePackageImpl/29',1951);mdb(1925,1,IIe,Nme);_.dk=function Ome(a){return RD(a,671)};_.ek=function Pme(a){return SC(dbb,rte,2081,a,0,1)};var Rbb=zeb(fJe,'XMLTypePackageImpl/3',1925);mdb(1952,1,IIe,Qme);_.dk=function Rme(a){return RD(a,15)};_.ek=function Sme(a){return SC(UI,Ote,15,a,0,1)};var Hbb=zeb(fJe,'XMLTypePackageImpl/30',1952);mdb(1953,1,IIe,Tme);_.dk=function Ume(a){return VD(a)};_.ek=function Vme(a){return SC(hJ,Ote,2,a,6,1)};var Ibb=zeb(fJe,'XMLTypePackageImpl/31',1953);mdb(1954,1,IIe,Wme);_.dk=function Xme(a){return RD(a,190)};_.ek=function Yme(a){return SC(XI,Ote,190,a,0,1)};var Jbb=zeb(fJe,'XMLTypePackageImpl/32',1954);mdb(1955,1,IIe,Zme);_.dk=function $me(a){return VD(a)};_.ek=function _me(a){return SC(hJ,Ote,2,a,6,1)};var Kbb=zeb(fJe,'XMLTypePackageImpl/33',1955);mdb(1956,1,IIe,ane);_.dk=function bne(a){return VD(a)};_.ek=function cne(a){return SC(hJ,Ote,2,a,6,1)};var Lbb=zeb(fJe,'XMLTypePackageImpl/34',1956);mdb(1957,1,IIe,dne);_.dk=function ene(a){return VD(a)};_.ek=function fne(a){return SC(hJ,Ote,2,a,6,1)};var Mbb=zeb(fJe,'XMLTypePackageImpl/35',1957);mdb(1958,1,IIe,gne);_.dk=function hne(a){return VD(a)};_.ek=function ine(a){return SC(hJ,Ote,2,a,6,1)};var Nbb=zeb(fJe,'XMLTypePackageImpl/36',1958);mdb(1959,1,IIe,jne);_.dk=function kne(a){return RD(a,16)};_.ek=function lne(a){return SC(HK,Twe,16,a,0,1)};var Obb=zeb(fJe,'XMLTypePackageImpl/37',1959);mdb(1960,1,IIe,mne);_.dk=function nne(a){return RD(a,16)};_.ek=function one(a){return SC(HK,Twe,16,a,0,1)};var Pbb=zeb(fJe,'XMLTypePackageImpl/38',1960);mdb(1961,1,IIe,pne);_.dk=function qne(a){return VD(a)};_.ek=function rne(a){return SC(hJ,Ote,2,a,6,1)};var Qbb=zeb(fJe,'XMLTypePackageImpl/39',1961);mdb(1926,1,IIe,sne);_.dk=function tne(a){return RD(a,672)};_.ek=function une(a){return SC(ebb,rte,2082,a,0,1)};var acb=zeb(fJe,'XMLTypePackageImpl/4',1926);mdb(1962,1,IIe,vne);_.dk=function wne(a){return VD(a)};_.ek=function xne(a){return SC(hJ,Ote,2,a,6,1)};var Sbb=zeb(fJe,'XMLTypePackageImpl/40',1962);mdb(1963,1,IIe,yne);_.dk=function zne(a){return VD(a)};_.ek=function Ane(a){return SC(hJ,Ote,2,a,6,1)};var Tbb=zeb(fJe,'XMLTypePackageImpl/41',1963);mdb(1964,1,IIe,Bne);_.dk=function Cne(a){return VD(a)};_.ek=function Dne(a){return SC(hJ,Ote,2,a,6,1)};var Ubb=zeb(fJe,'XMLTypePackageImpl/42',1964);mdb(1965,1,IIe,Ene);_.dk=function Fne(a){return VD(a)};_.ek=function Gne(a){return SC(hJ,Ote,2,a,6,1)};var Vbb=zeb(fJe,'XMLTypePackageImpl/43',1965);mdb(1966,1,IIe,Hne);_.dk=function Ine(a){return VD(a)};_.ek=function Jne(a){return SC(hJ,Ote,2,a,6,1)};var Wbb=zeb(fJe,'XMLTypePackageImpl/44',1966);mdb(1967,1,IIe,Kne);_.dk=function Lne(a){return RD(a,191)};_.ek=function Mne(a){return SC(cJ,Ote,191,a,0,1)};var Xbb=zeb(fJe,'XMLTypePackageImpl/45',1967);mdb(1968,1,IIe,Nne);_.dk=function One(a){return VD(a)};_.ek=function Pne(a){return SC(hJ,Ote,2,a,6,1)};var Ybb=zeb(fJe,'XMLTypePackageImpl/46',1968);mdb(1969,1,IIe,Qne);_.dk=function Rne(a){return VD(a)};_.ek=function Sne(a){return SC(hJ,Ote,2,a,6,1)};var Zbb=zeb(fJe,'XMLTypePackageImpl/47',1969);mdb(1970,1,IIe,Tne);_.dk=function Une(a){return VD(a)};_.ek=function Vne(a){return SC(hJ,Ote,2,a,6,1)};var $bb=zeb(fJe,'XMLTypePackageImpl/48',1970);mdb(1971,1,IIe,Wne);_.dk=function Xne(a){return RD(a,191)};_.ek=function Yne(a){return SC(cJ,Ote,191,a,0,1)};var _bb=zeb(fJe,'XMLTypePackageImpl/49',1971);mdb(1927,1,IIe,Zne);_.dk=function $ne(a){return RD(a,673)};_.ek=function _ne(a){return SC(fbb,rte,2083,a,0,1)};var ecb=zeb(fJe,'XMLTypePackageImpl/5',1927);mdb(1972,1,IIe,aoe);_.dk=function boe(a){return RD(a,190)};_.ek=function coe(a){return SC(XI,Ote,190,a,0,1)};var bcb=zeb(fJe,'XMLTypePackageImpl/50',1972);mdb(1973,1,IIe,doe);_.dk=function eoe(a){return VD(a)};_.ek=function foe(a){return SC(hJ,Ote,2,a,6,1)};var ccb=zeb(fJe,'XMLTypePackageImpl/51',1973);mdb(1974,1,IIe,goe);_.dk=function hoe(a){return RD(a,15)};_.ek=function ioe(a){return SC(UI,Ote,15,a,0,1)};var dcb=zeb(fJe,'XMLTypePackageImpl/52',1974);mdb(1928,1,IIe,joe);_.dk=function koe(a){return VD(a)};_.ek=function loe(a){return SC(hJ,Ote,2,a,6,1)};var fcb=zeb(fJe,'XMLTypePackageImpl/6',1928);mdb(1929,1,IIe,moe);_.dk=function noe(a){return RD(a,195)};_.ek=function ooe(a){return SC($D,Ote,195,a,0,2)};var gcb=zeb(fJe,'XMLTypePackageImpl/7',1929);mdb(1930,1,IIe,poe);_.dk=function qoe(a){return SD(a)};_.ek=function roe(a){return SC(GI,Ote,473,a,8,1)};var hcb=zeb(fJe,'XMLTypePackageImpl/8',1930);mdb(1931,1,IIe,soe);_.dk=function toe(a){return RD(a,221)};_.ek=function uoe(a){return SC(HI,Ote,221,a,0,1)};var icb=zeb(fJe,'XMLTypePackageImpl/9',1931);var voe,woe;var Coe,Doe;var Hoe;mdb(53,63,tue,Joe);var kcb=zeb(FJe,'RegEx/ParseException',53);mdb(820,1,{},Roe);_._l=function Soe(a){return ac*16)throw Icb(new Joe(VGd((Fbe(),nHe))));c=c*16+e}while(true);if(this.a!=125)throw Icb(new Joe(VGd((Fbe(),oHe))));if(c>GJe)throw Icb(new Joe(VGd((Fbe(),pHe))));a=c}else{e=0;if(this.c!=0||(e=Voe(this.a))<0)throw Icb(new Joe(VGd((Fbe(),mHe))));c=e;Koe(this);if(this.c!=0||(e=Voe(this.a))<0)throw Icb(new Joe(VGd((Fbe(),mHe))));c=c*16+e;a=c}break;case 117:d=0;Koe(this);if(this.c!=0||(d=Voe(this.a))<0)throw Icb(new Joe(VGd((Fbe(),mHe))));b=d;Koe(this);if(this.c!=0||(d=Voe(this.a))<0)throw Icb(new Joe(VGd((Fbe(),mHe))));b=b*16+d;Koe(this);if(this.c!=0||(d=Voe(this.a))<0)throw Icb(new Joe(VGd((Fbe(),mHe))));b=b*16+d;Koe(this);if(this.c!=0||(d=Voe(this.a))<0)throw Icb(new Joe(VGd((Fbe(),mHe))));b=b*16+d;a=b;break;case 118:Koe(this);if(this.c!=0||(d=Voe(this.a))<0)throw Icb(new Joe(VGd((Fbe(),mHe))));b=d;Koe(this);if(this.c!=0||(d=Voe(this.a))<0)throw Icb(new Joe(VGd((Fbe(),mHe))));b=b*16+d;Koe(this);if(this.c!=0||(d=Voe(this.a))<0)throw Icb(new Joe(VGd((Fbe(),mHe))));b=b*16+d;Koe(this);if(this.c!=0||(d=Voe(this.a))<0)throw Icb(new Joe(VGd((Fbe(),mHe))));b=b*16+d;Koe(this);if(this.c!=0||(d=Voe(this.a))<0)throw Icb(new Joe(VGd((Fbe(),mHe))));b=b*16+d;Koe(this);if(this.c!=0||(d=Voe(this.a))<0)throw Icb(new Joe(VGd((Fbe(),mHe))));b=b*16+d;if(b>GJe)throw Icb(new Joe(VGd((Fbe(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw Icb(new Joe(VGd((Fbe(),qHe))));}return a};_.bm=function Uoe(a){var b,c;switch(a){case 100:c=(this.e&32)==32?fre('Nd',true):(Tqe(),zqe);break;case 68:c=(this.e&32)==32?fre('Nd',false):(Tqe(),Gqe);break;case 119:c=(this.e&32)==32?fre('IsWord',true):(Tqe(),Pqe);break;case 87:c=(this.e&32)==32?fre('IsWord',false):(Tqe(),Iqe);break;case 115:c=(this.e&32)==32?fre('IsSpace',true):(Tqe(),Kqe);break;case 83:c=(this.e&32)==32?fre('IsSpace',false):(Tqe(),Hqe);break;default:throw Icb(new qz((b=a,HJe+b.toString(16))));}return c};_.cm=function Woe(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;Koe(this);b=null;if(this.c==0&&this.a==94){Koe(this);if(a){k=(Tqe(),Tqe(),++Sqe,new vre(5))}else{b=(Tqe(),Tqe(),++Sqe,new vre(4));pre(b,0,GJe);k=(null,++Sqe,new vre(4))}}else{k=(Tqe(),Tqe(),++Sqe,new vre(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:sre(k,this.bm(c));d=true;break;case 105:case 73:case 99:case 67:c=this.sm(k,c);c<0&&(d=true);break;case 112:case 80:l=Qoe(this,c);if(!l)throw Icb(new Joe(VGd((Fbe(),bHe))));sre(k,l);d=true;break;default:c=this.am();}}else if(m==20){g=wgb(this.i,58,this.d);if(g<0)throw Icb(new Joe(VGd((Fbe(),cHe))));h=true;if(pgb(this.i,this.d)==94){++this.d;h=false}f=Ggb(this.i,this.d,g);i=gre(f,h,(this.e&512)==512);if(!i)throw Icb(new Joe(VGd((Fbe(),eHe))));sre(k,i);d=true;if(g+1>=this.j||pgb(this.i,g+1)!=93)throw Icb(new Joe(VGd((Fbe(),cHe))));this.d=g+2}Koe(this);if(!d){if(this.c!=0||this.a!=45){pre(k,c,c)}else{Koe(this);if((m=this.c)==1)throw Icb(new Joe(VGd((Fbe(),dHe))));if(m==0&&this.a==93){pre(k,c,c);pre(k,45,45)}else{j=this.a;m==10&&(j=this.am());Koe(this);pre(k,c,j)}}}(this.e&GHe)==GHe&&this.c==0&&this.a==44&&Koe(this)}if(this.c==1)throw Icb(new Joe(VGd((Fbe(),dHe))));if(b){ure(b,k);k=b}tre(k);qre(k);this.b=0;Koe(this);return k};_.dm=function Xoe(){var a,b,c,d;c=this.cm(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){Koe(this);if(this.c!=9)throw Icb(new Joe(VGd((Fbe(),jHe))));b=this.cm(false);if(d==4)sre(c,b);else if(a==45)ure(c,b);else if(a==38)rre(c,b);else throw Icb(new qz('ASSERT'))}else{throw Icb(new Joe(VGd((Fbe(),kHe))))}}Koe(this);return c};_.em=function Yoe(){var a,b;a=this.a-48;b=(Tqe(),Tqe(),++Sqe,new cse(12,null,a));!this.g&&(this.g=new kxb);hxb(this.g,new zre(a));Koe(this);return b};_.fm=function Zoe(){Koe(this);return Tqe(),Lqe};_.gm=function $oe(){Koe(this);return Tqe(),Jqe};_.hm=function _oe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.im=function ape(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.jm=function bpe(){Koe(this);return dre()};_.km=function cpe(){Koe(this);return Tqe(),Nqe};_.lm=function dpe(){Koe(this);return Tqe(),Qqe};_.mm=function epe(){var a;if(this.d>=this.j||((a=pgb(this.i,this.d++))&65504)!=64)throw Icb(new Joe(VGd((Fbe(),ZGe))));Koe(this);return Tqe(),Tqe(),++Sqe,new Fre(0,a-64)};_.nm=function fpe(){Koe(this);return ere()};_.om=function gpe(){Koe(this);return Tqe(),Rqe};_.pm=function hpe(){var a;a=(Tqe(),Tqe(),++Sqe,new Fre(0,105));Koe(this);return a};_.qm=function ipe(){Koe(this);return Tqe(),Oqe};_.rm=function jpe(){Koe(this);return Tqe(),Mqe};_.sm=function kpe(a,b){return this.am()};_.tm=function lpe(){Koe(this);return Tqe(),Eqe};_.um=function mpe(){var a,b,c,d,e;if(this.d+1>=this.j)throw Icb(new Joe(VGd((Fbe(),WGe))));d=-1;b=null;a=pgb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new kxb);hxb(this.g,new zre(d));++this.d;if(pgb(this.i,this.d)!=41)throw Icb(new Joe(VGd((Fbe(),TGe))));++this.d}else{a==63&&--this.d;Koe(this);b=Noe(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw Icb(new Joe(VGd((Fbe(),TGe))));break;default:throw Icb(new Joe(VGd((Fbe(),XGe))));}}Koe(this);e=Ooe(this);c=null;if(e.e==2){if(e.Nm()!=2)throw Icb(new Joe(VGd((Fbe(),YGe))));c=e.Jm(1);e=e.Jm(0)}if(this.c!=7)throw Icb(new Joe(VGd((Fbe(),TGe))));Koe(this);return Tqe(),Tqe(),++Sqe,new Sre(d,b,e,c)};_.vm=function npe(){Koe(this);return Tqe(),Fqe};_.wm=function ope(){var a;Koe(this);a=Zqe(24,Ooe(this));if(this.c!=7)throw Icb(new Joe(VGd((Fbe(),TGe))));Koe(this);return a};_.xm=function ppe(){var a;Koe(this);a=Zqe(20,Ooe(this));if(this.c!=7)throw Icb(new Joe(VGd((Fbe(),TGe))));Koe(this);return a};_.ym=function qpe(){var a;Koe(this);a=Zqe(22,Ooe(this));if(this.c!=7)throw Icb(new Joe(VGd((Fbe(),TGe))));Koe(this);return a};_.zm=function rpe(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw Icb(new Joe(VGd((Fbe(),UGe))));if(b==45){++this.d;while(this.d=this.j)throw Icb(new Joe(VGd((Fbe(),UGe))))}if(b==58){++this.d;Koe(this);d=$qe(Ooe(this),a,c);if(this.c!=7)throw Icb(new Joe(VGd((Fbe(),TGe))));Koe(this)}else if(b==41){++this.d;Koe(this);d=$qe(Ooe(this),a,c)}else throw Icb(new Joe(VGd((Fbe(),VGe))));return d};_.Am=function spe(){var a;Koe(this);a=Zqe(21,Ooe(this));if(this.c!=7)throw Icb(new Joe(VGd((Fbe(),TGe))));Koe(this);return a};_.Bm=function tpe(){var a;Koe(this);a=Zqe(23,Ooe(this));if(this.c!=7)throw Icb(new Joe(VGd((Fbe(),TGe))));Koe(this);return a};_.Cm=function upe(){var a,b;Koe(this);a=this.f++;b=_qe(Ooe(this),a);if(this.c!=7)throw Icb(new Joe(VGd((Fbe(),TGe))));Koe(this);return b};_.Dm=function vpe(){var a;Koe(this);a=_qe(Ooe(this),0);if(this.c!=7)throw Icb(new Joe(VGd((Fbe(),TGe))));Koe(this);return a};_.Em=function wpe(a){Koe(this);if(this.c==5){Koe(this);return Yqe(a,(Tqe(),Tqe(),++Sqe,new Ire(9,a)))}else return Yqe(a,(Tqe(),Tqe(),++Sqe,new Ire(3,a)))};_.Fm=function xpe(a){var b;Koe(this);b=(Tqe(),Tqe(),++Sqe,new gse(2));if(this.c==5){Koe(this);fse(b,(null,Cqe));fse(b,a)}else{fse(b,a);fse(b,(null,Cqe))}return b};_.Gm=function ype(a){Koe(this);if(this.c==5){Koe(this);return Tqe(),Tqe(),++Sqe,new Ire(9,a)}else return Tqe(),Tqe(),++Sqe,new Ire(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var ocb=zeb(FJe,'RegEx/RegexParser',820);mdb(1910,820,{},Epe);_._l=function Fpe(a){return false};_.am=function Gpe(){return Bpe(this)};_.bm=function Ipe(a){return Cpe(a)};_.cm=function Jpe(a){return Dpe(this)};_.dm=function Kpe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.em=function Lpe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.fm=function Mpe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.gm=function Npe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.hm=function Ope(){Koe(this);return Cpe(67)};_.im=function Ppe(){Koe(this);return Cpe(73)};_.jm=function Qpe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.km=function Rpe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.lm=function Spe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.mm=function Tpe(){Koe(this);return Cpe(99)};_.nm=function Upe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.om=function Vpe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.pm=function Wpe(){Koe(this);return Cpe(105)};_.qm=function Xpe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.rm=function Ype(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.sm=function Zpe(a,b){return sre(a,Cpe(b)),-1};_.tm=function $pe(){Koe(this);return Tqe(),Tqe(),++Sqe,new Fre(0,94)};_.um=function _pe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.vm=function aqe(){Koe(this);return Tqe(),Tqe(),++Sqe,new Fre(0,36)};_.wm=function bqe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.xm=function cqe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.ym=function dqe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.zm=function eqe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.Am=function fqe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.Bm=function gqe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.Cm=function hqe(){var a;Koe(this);a=_qe(Ooe(this),0);if(this.c!=7)throw Icb(new Joe(VGd((Fbe(),TGe))));Koe(this);return a};_.Dm=function iqe(){throw Icb(new Joe(VGd((Fbe(),rHe))))};_.Em=function jqe(a){Koe(this);return Yqe(a,(Tqe(),Tqe(),++Sqe,new Ire(3,a)))};_.Fm=function kqe(a){var b;Koe(this);b=(Tqe(),Tqe(),++Sqe,new gse(2));fse(b,a);fse(b,(null,Cqe));return b};_.Gm=function lqe(a){Koe(this);return Tqe(),Tqe(),++Sqe,new Ire(3,a)};var zpe=null,Ape=null;var lcb=zeb(FJe,'RegEx/ParserForXMLSchema',1910);mdb(121,1,TJe,Uqe);_.Hm=function Vqe(a){throw Icb(new qz('Not supported.'))};_.Im=function bre(){return -1};_.Jm=function cre(a){return null};_.Km=function hre(){return null};_.Lm=function kre(a){};_.Mm=function lre(a){};_.Nm=function mre(){return 0};_.Ib=function nre(){return this.Om(0)};_.Om=function ore(a){return this.e==11?'.':''};_.e=0;var tqe,uqe,vqe,wqe,xqe,yqe=null,zqe,Aqe=null,Bqe,Cqe,Dqe=null,Eqe,Fqe,Gqe,Hqe,Iqe,Jqe,Kqe,Lqe,Mqe,Nqe,Oqe,Pqe,Qqe,Rqe,Sqe=0;var ycb=zeb(FJe,'RegEx/Token',121);mdb(137,121,{3:1,137:1,121:1},vre);_.Om=function yre(a){var b,c,d;if(this.e==4){if(this==Bqe)c='.';else if(this==zqe)c='\\d';else if(this==Pqe)c='\\w';else if(this==Kqe)c='\\s';else{d=new Xgb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Ugb(d,xre(this.b[b]))}else{Ugb(d,xre(this.b[b]));d.a+='-';Ugb(d,xre(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==Gqe)c='\\D';else if(this==Iqe)c='\\W';else if(this==Hqe)c='\\S';else{d=new Xgb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Ugb(d,xre(this.b[b]))}else{Ugb(d,xre(this.b[b]));d.a+='-';Ugb(d,xre(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var mcb=zeb(FJe,'RegEx/RangeToken',137);mdb(580,1,{580:1},zre);_.a=0;var ncb=zeb(FJe,'RegEx/RegexParser/ReferencePosition',580);mdb(579,1,{3:1,579:1},Bre);_.Fb=function Cre(a){var b;if(a==null)return false;if(!RD(a,579))return false;b=JD(a,579);return sgb(this.b,b.b)&&this.a==b.a};_.Hb=function Dre(){return vgb(this.b+'/'+nqe(this.a))};_.Ib=function Ere(){return this.c.Om(this.a)};_.a=0;var pcb=zeb(FJe,'RegEx/RegularExpression',579);mdb(228,121,TJe,Fre);_.Im=function Gre(){return this.a};_.Om=function Hre(a){var b,c,d;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:d='\\'+PD(this.a&Bue);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=tve){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+Ggb(c,c.length-6,c.length)}else d=''+PD(this.a&Bue);}break;case 8:this==Eqe||this==Fqe?(d=''+PD(this.a&Bue)):(d='\\'+PD(this.a&Bue));break;default:d=null;}return d};_.a=0;var qcb=zeb(FJe,'RegEx/Token/CharToken',228);mdb(322,121,TJe,Ire);_.Jm=function Jre(a){return this.a};_.Lm=function Kre(a){this.b=a};_.Mm=function Lre(a){this.c=a};_.Nm=function Mre(){return 1};_.Om=function Nre(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.Om(a)+'*'}else if(this.c==this.b){b=this.a.Om(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.Om(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.Om(a)+'{'+this.c+',}'}else throw Icb(new qz('Token#toString(): CLOSURE '+this.c+pte+this.b))}else{if(this.c<0&&this.b<0){b=this.a.Om(a)+'*?'}else if(this.c==this.b){b=this.a.Om(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.Om(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.Om(a)+'{'+this.c+',}?'}else throw Icb(new qz('Token#toString(): NONGREEDYCLOSURE '+this.c+pte+this.b))}return b};_.b=0;_.c=0;var rcb=zeb(FJe,'RegEx/Token/ClosureToken',322);mdb(821,121,TJe,Ore);_.Jm=function Pre(a){return a==0?this.a:this.b};_.Nm=function Qre(){return 2};_.Om=function Rre(a){var b;this.b.e==3&&this.b.Jm(0)==this.a?(b=this.a.Om(a)+'+'):this.b.e==9&&this.b.Jm(0)==this.a?(b=this.a.Om(a)+'+?'):(b=this.a.Om(a)+(''+this.b.Om(a)));return b};var scb=zeb(FJe,'RegEx/Token/ConcatToken',821);mdb(1908,121,TJe,Sre);_.Jm=function Tre(a){if(a==0)return this.d;if(a==1)return this.b;throw Icb(new qz('Internal Error: '+a))};_.Nm=function Ure(){return !this.b?1:2};_.Om=function Vre(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var tcb=zeb(FJe,'RegEx/Token/ConditionToken',1908);mdb(1909,121,TJe,Wre);_.Jm=function Xre(a){return this.b};_.Nm=function Yre(){return 1};_.Om=function Zre(a){return '(?'+(this.a==0?'':nqe(this.a))+(this.c==0?'':nqe(this.c))+':'+this.b.Om(a)+')'};_.a=0;_.c=0;var ucb=zeb(FJe,'RegEx/Token/ModifierToken',1909);mdb(822,121,TJe,$re);_.Jm=function _re(a){return this.a};_.Nm=function ase(){return 1};_.Om=function bse(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.Om(a)+')'):(b='('+this.a.Om(a)+')');break;case 20:b='(?='+this.a.Om(a)+')';break;case 21:b='(?!'+this.a.Om(a)+')';break;case 22:b='(?<='+this.a.Om(a)+')';break;case 23:b='(?'+this.a.Om(a)+')';}return b};_.b=0;var vcb=zeb(FJe,'RegEx/Token/ParenToken',822);mdb(517,121,{3:1,121:1,517:1},cse);_.Km=function dse(){return this.b};_.Om=function ese(a){return this.e==12?'\\'+this.a:rqe(this.b)};_.a=0;var wcb=zeb(FJe,'RegEx/Token/StringToken',517);mdb(466,121,TJe,gse);_.Hm=function hse(a){fse(this,a)};_.Jm=function ise(a){return JD(ixb(this.a,a),121)};_.Nm=function jse(){return !this.a?0:this.a.a.c.length};_.Om=function kse(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=JD(ixb(this.a,0),121);c=JD(ixb(this.a,1),121);c.e==3&&c.Jm(0)==b?(e=b.Om(a)+'+'):c.e==9&&c.Jm(0)==b?(e=b.Om(a)+'+?'):(e=b.Om(a)+(''+c.Om(a)))}else{f=new Xgb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function Vse(){return this.b>0};_.Tb=function Xse(){return this.b};_.Vb=function Zse(){return this.b-1};_.Qb=function $se(){throw Icb(new rhb(ZJe))};_.a=0;_.b=0;var Ccb=zeb(WJe,'ExclusiveRange/RangeIterator',259);var _D=Ceb($He,'C');var cE=Ceb(bIe,'I');var Fcb=Ceb(hte,'Z');var dE=Ceb(cIe,'J');var $D=Ceb(ZHe,'B');var aE=Ceb(_He,'D');var bE=Ceb(aIe,'F');var Ecb=Ceb(dIe,'S');var j2=Beb('org.eclipse.elk.core.labels','ILabelManager');var _5=Beb(mGe,'DiagnosticChain');var H9=Beb(KIe,'ResourceSet');var g6=zeb(mGe,'InvocationTargetException',null);var fte=(Iz(),Lz);var gwtOnLoad=gwtOnLoad=jdb;hdb(sdb);kdb('permProps',[[['locale','default'],[$Je,'gecko1_8']],[['locale','default'],[$Je,'safari']]]); +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); + +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],3:[function(require,module,exports){ +"use strict"; + +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } +function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } +/******************************************************************************* + * Copyright (c) 2021 Kiel University and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = require('./elk-api.js')["default"]; +var ELKNode = /*#__PURE__*/function (_ELK) { + function ELKNode() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + _classCallCheck(this, ELKNode); + var optionsClone = Object.assign({}, options); + var workerThreadsExist = false; + try { + require.resolve('web-worker'); + workerThreadsExist = true; + } catch (e) {} + + // user requested a worker + if (options.workerUrl) { + if (workerThreadsExist) { + var Worker = require('web-worker'); + optionsClone.workerFactory = function (url) { + return new Worker(url); + }; + } else { + console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version."); + } + } + + // unless no other workerFactory is registered, use the fake worker + if (!optionsClone.workerFactory) { + var _require = require('./elk-worker.min.js'), + _Worker = _require.Worker; + optionsClone.workerFactory = function (url) { + return new _Worker(url); + }; + } + return _callSuper(this, ELKNode, [optionsClone]); + } + _inherits(ELKNode, _ELK); + return _createClass(ELKNode); +}(ELK); +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports = ELKNode; +ELKNode["default"] = ELKNode; +},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(require,module,exports){ +'use strict'; + +// src/browser/index.js +var browser_default = typeof Worker < "u" ? Worker : void 0; + +module.exports = browser_default; + +},{}]},{},[3])(3) +}); diff --git a/metainfer/tasks/find_low_hanging_kernel/tests/__init__.py b/metainfer/tasks/find_low_hanging_kernel/tests/__init__.py new file mode 100644 index 00000000..7627ff64 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/tests/__init__.py @@ -0,0 +1 @@ +"""Tests for find-low-hanging-kernel.""" diff --git a/metainfer/tasks/find_low_hanging_kernel/tests/_helpers.py b/metainfer/tasks/find_low_hanging_kernel/tests/_helpers.py new file mode 100644 index 00000000..72c7df5a --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/tests/_helpers.py @@ -0,0 +1,128 @@ +"""Test helpers for find-low-hanging-kernel.""" + +from __future__ import annotations + +import gzip +import json +from pathlib import Path +from typing import Any, Dict, Iterable, List, Optional + + +def make_requirements( + task_id: str = "flhk-1", + *, + form: Optional[Dict[str, Any]] = None, +) -> Dict[str, Any]: + base_form = { + "trace_file": "/tmp/fake/trace.json", + "model_dir": "/tmp/fake/model", + "framework_source_dir": "/tmp/fake/framework", + "cli_args_and_env": "", + "startup_log": "", + "max_validator_rounds": 5, + } + if form: + base_form.update(form) + return { + "task_id": task_id, + "task_type": "find-low-hanging-kernel", + "created_at": 0.0, + "form": base_form, + } + + +def make_event( + name: str, cat: str, ts: int, dur: int, pid: int = 0, tid: int = 0, + ph: str = "X", args: Optional[Dict[str, Any]] = None, +) -> Dict[str, Any]: + e = {"name": name, "cat": cat, "ph": ph, "ts": ts, "pid": pid, "tid": tid} + if ph == "X": + e["dur"] = dur + if args is not None: + e["args"] = args + return e + + +def write_trace( + path: Path, events: Iterable[Dict[str, Any]], *, gzipped: bool = False +) -> Path: + """Write a chrome-trace shaped JSON file (with ``traceEvents`` wrapper). + Pass ``gzipped=True`` to write a .json.gz instead.""" + payload = {"traceEvents": list(events)} + path.parent.mkdir(parents=True, exist_ok=True) + text = json.dumps(payload) + if gzipped: + with gzip.open(path, "wt", encoding="utf-8") as f: + f.write(text) + else: + path.write_text(text, encoding="utf-8") + return path + + +def make_small_trace_events() -> List[Dict[str, Any]]: + """A small, realistic-ish trace with three kernel cats, a CPU event, and + a flow event. Returns ~10 events.""" + return [ + # Two GPU kernels with the SAME name but different durs → bimodal. + make_event("rms_norm_kernel", "kernel", ts=100, dur=20, pid=0, tid=1), + make_event("rms_norm_kernel", "kernel", ts=200, dur=80, pid=0, tid=1), + make_event("rms_norm_kernel", "kernel", ts=300, dur=22, pid=0, tid=1), + # One CUDA runtime call. + make_event("cudaLaunchKernel", "cuda_runtime", ts=150, dur=5, pid=0, tid=2), + # CPU-side stack event (so has_cpu_stack should be True). + make_event("RMSNorm.forward", "cpu", ts=99, dur=2, pid=0, tid=3), + # Flow event for correlation. + {"name": "M2F", "cat": "__metadata", "ph": "f", "ts": 105, "pid": 0, "tid": 1, "id": 1}, + # A B/E pair that exercises pairing logic. + {"name": "gemm_kernel", "cat": "kernel", "ph": "B", "ts": 400, "pid": 0, "tid": 1}, + {"name": "gemm_kernel", "cat": "kernel", "ph": "E", "ts": 460, "pid": 0, "tid": 1}, + ] + + +def make_minimal_valid_graph() -> Dict[str, Any]: + """A graph that passes the integrity check.""" + return { + "schema_version": 1, + "metadata": { + "task_id": "t1", + "model": "TestModel", + "tp_size": 1, + "vars": {"B": "batch", "M": "seq_len"}, + }, + "nodes": [ + { + "id": "n01", + "role": "entry", + "operator": "embedding_kernel", + "source_ref": {"file": "embed.py", "line": 10, "symbol": "Embed.forward"}, + "inputs": [{"name": "ids", "dtype": "int32", "shape": ["B", "M"]}], + "outputs": [{"name": "x", "dtype": "fp16", "shape": ["B", "M", 4096]}], + "stats": {"count": 4, "mean_us": 5.0, "std_us": 1.0, "total_us": 20.0, "p99_us": 6.0}, + "confidence": "high", + }, + { + "id": "n02", + "role": "RMSNorm", + "operator": "rms_norm_kernel", + "source_ref": {"file": "norm.py", "line": 30, "symbol": "RMSNorm.forward"}, + "inputs": [{"name": "x", "dtype": "fp16", "shape": ["B", "M", 4096]}], + "outputs": [{"name": "y", "dtype": "fp16", "shape": ["B", "M", 4096]}], + "stats": {"count": 12, "mean_us": 30.0, "std_us": 5.0, "total_us": 360.0, "p99_us": 40.0}, + "confidence": "high", + }, + { + "id": "n03", + "role": "exit", + "operator": "logits_kernel", + "source_ref": {"file": "head.py", "line": 50, "symbol": "Head.forward"}, + "inputs": [{"name": "h", "dtype": "fp16", "shape": ["B", "M", 4096]}], + "outputs": [{"name": "logits", "dtype": "fp16", "shape": ["B", "M", 32000]}], + "stats": {"count": 2, "mean_us": 50.0, "std_us": 3.0, "total_us": 100.0, "p99_us": 52.0}, + "confidence": "medium", + }, + ], + "edges": [ + {"from": "n01", "to": "n02", "label": "x"}, + {"from": "n02", "to": "n03", "label": "h"}, + ], + } diff --git a/metainfer/tasks/find_low_hanging_kernel/tests/test_form.py b/metainfer/tasks/find_low_hanging_kernel/tests/test_form.py new file mode 100644 index 00000000..e1b6cff4 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/tests/test_form.py @@ -0,0 +1,76 @@ +"""Tests for form.yaml + plugin registration.""" + +from __future__ import annotations + +from pathlib import Path + +import yaml + +from metainfer.orchestrator.tasks import all_tasks, get_task +from metainfer.server.forms import load_form_schema, validate_submission +from metainfer.server.registry import all_plugins, get + + +PLUGIN_TYPE = "find-low-hanging-kernel" + + +def test_plugin_registered(): + types = [p.task_type for p in all_tasks()] + assert PLUGIN_TYPE in types + + +def test_web_plugin_registered(): + types = [p.type for p in all_plugins()] + assert PLUGIN_TYPE in types + plugin = get(PLUGIN_TYPE) + assert plugin.label + assert plugin.detail_view_module == "app/flhk-detail" + assert plugin.build_router is not None + + +def test_task_plugin_descriptor_fields(): + p = get_task(PLUGIN_TYPE) + assert p.cli_module.endswith(".cli") + assert p.phases_module.endswith(".phases") + assert isinstance(p.diagnostic_globs, tuple) + + +def test_form_yaml_exists_and_loads(): + schema = load_form_schema(PLUGIN_TYPE) + assert schema is not None + keys = {f["key"] for f in schema["fields"]} + assert { + "trace_file", "model_dir", "framework_source_dir", + "cli_args_and_env", "startup_log", "max_validator_rounds", + "token_budget_max_cost_usd", + } <= keys + + +def test_form_required_fields_marked(): + schema = load_form_schema(PLUGIN_TYPE) + required = {f["key"] for f in schema["fields"] if f["required"]} + assert {"trace_file", "model_dir", "framework_source_dir"} <= required + + +def test_validate_submission_rejects_missing_required(): + result = validate_submission(PLUGIN_TYPE, {}) + assert result["ok"] is False + for k in ("trace_file", "model_dir", "framework_source_dir"): + assert k in result["errors"] + + +def test_validate_submission_accepts_full_form(): + schema = load_form_schema(PLUGIN_TYPE) + answers = {f["key"]: "x" for f in schema["fields"] if f["required"]} + answers["max_validator_rounds"] = 5 + answers["cli_args_and_env"] = "" + result = validate_submission(PLUGIN_TYPE, answers) + assert result["ok"] is True, result["errors"] + + +def test_form_yaml_is_valid_yaml(): + # Sanity: form.yaml must parse. + p = Path(__file__).resolve().parent.parent / "form.yaml" + data = yaml.safe_load(p.read_text(encoding="utf-8")) + assert isinstance(data, list) + assert len(data) >= 5 diff --git a/metainfer/tasks/find_low_hanging_kernel/tests/test_graph_schema.py b/metainfer/tasks/find_low_hanging_kernel/tests/test_graph_schema.py new file mode 100644 index 00000000..5d0f6594 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/tests/test_graph_schema.py @@ -0,0 +1,109 @@ +"""Unit tests for graph_schema integrity validator.""" + +from __future__ import annotations + +import copy + +from metainfer.tasks.find_low_hanging_kernel.orchestrator.graph_schema import ( + SCHEMA_VERSION, + check_integrity, +) +from metainfer.tasks.find_low_hanging_kernel.tests._helpers import ( + make_minimal_valid_graph, +) + + +def test_valid_graph_is_clean(): + graph = copy.deepcopy(make_minimal_valid_graph()) + report = check_integrity(graph) + assert report.clean, f"errors: {report.errors}" + assert report.errors == [] + + +def test_dangling_edge_is_dropped(): + graph = copy.deepcopy(make_minimal_valid_graph()) + graph["edges"].append({"from": "n01", "to": "nGHOST", "label": "x"}) + report = check_integrity(graph) + assert report.clean is True # auto-fixed + # The dangling edge was pruned. + assert all(e["to"] != "nGHOST" for e in graph["edges"]) + # The fix is logged. + assert any( + f["kind"] == "drop_dangling_edge" for f in report.fixes_applied + ) + + +def test_duplicate_node_id_fails(): + graph = copy.deepcopy(make_minimal_valid_graph()) + bad = copy.deepcopy(graph["nodes"][1]) + graph["nodes"].append(bad) + report = check_integrity(graph) + assert not report.clean + assert any("duplicate node id" in e for e in report.errors) + + +def test_missing_required_field_fails(): + graph = copy.deepcopy(make_minimal_valid_graph()) + del graph["nodes"][0]["operator"] + report = check_integrity(graph) + assert not report.clean + assert any("missing required field 'operator'" in e for e in report.errors) + + +def test_isolated_non_entry_exit_fails(): + graph = copy.deepcopy(make_minimal_valid_graph()) + graph["nodes"].append({ + "id": "nLONER", "role": "Mystery", "operator": "mystery_kernel", + "inputs": [], "outputs": [], "stats": {}, "source_ref": {}, + }) + report = check_integrity(graph) + assert not report.clean + assert any("isolated" in e for e in report.errors) + + +def test_entry_role_exempt_from_isolated_check(): + graph = copy.deepcopy(make_minimal_valid_graph()) + # Remove the entry/exit edges so n01 has no outgoing connection, + # but it IS tagged entry → should still be clean. + # (make_minimal_valid_graph already has n01→n02 edge; this is just a sanity + # check that the entry role doesn't accidentally trigger the isolated rule.) + report = check_integrity(graph) + assert report.clean + + +def test_undeclared_shape_var_fails(): + graph = copy.deepcopy(make_minimal_valid_graph()) + graph["nodes"][0]["inputs"].append({ + "name": "extra", "dtype": "fp16", "shape": ["UNDECLARED"], + }) + report = check_integrity(graph) + assert not report.clean + assert any("undeclared variable" in e for e in report.errors) + + +def test_schema_version_mismatch_warns(): + graph = copy.deepcopy(make_minimal_valid_graph()) + graph["schema_version"] = 999 + report = check_integrity(graph) + assert report.clean # warnings don't break + assert any("schema_version" in w for w in report.warnings) + + +def test_default_empty_fixes_applied(): + graph = copy.deepcopy(make_minimal_valid_graph()) + del graph["nodes"][0]["inputs"] + del graph["nodes"][0]["outputs"] + del graph["nodes"][0]["stats"] + del graph["nodes"][0]["source_ref"] + report = check_integrity(graph) + assert report.clean + kinds = {f["kind"] for f in report.fixes_applied} + assert "default_empty" in kinds + # Defaults were actually written. + assert graph["nodes"][0]["inputs"] == [] + assert graph["nodes"][0]["outputs"] == [] + assert graph["nodes"][0]["stats"] == {} + + +def test_schema_version_constant(): + assert SCHEMA_VERSION == 1 diff --git a/metainfer/tasks/find_low_hanging_kernel/tests/test_graph_validator.py b/metainfer/tasks/find_low_hanging_kernel/tests/test_graph_validator.py new file mode 100644 index 00000000..6c40c3c7 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/tests/test_graph_validator.py @@ -0,0 +1,203 @@ +"""Tests for graph_validator pool + loop driver. + +Uses MockAgentManager so we can drive validation rounds without spawning +real Claude Code subprocesses. +""" + +from __future__ import annotations + +import copy +import json +import re +from pathlib import Path +from typing import Any, Dict + +from metainfer.testing.mock_agent import MockAgentManager + +from metainfer.tasks.find_low_hanging_kernel.orchestrator import graph_validator +from metainfer.tasks.find_low_hanging_kernel.orchestrator.graph_schema import ( + check_integrity, +) +from metainfer.tasks.find_low_hanging_kernel.tests._helpers import ( + make_minimal_valid_graph, +) + + +def _stub_step_files(tmp_path: Path) -> Path: + """Lay out a fake step1.md + step2.md + framework dir.""" + mem = tmp_path / "memory" + mem.mkdir() + (mem / "step1_code_analysis.md").write_text("# step1 stub\n", encoding="utf-8") + (mem / "step2_tracing_analysis.md").write_text("# step2 stub\n", encoding="utf-8") + fw = tmp_path / "framework" + fw.mkdir() + (fw / "norm.py").write_text("# stub framework file\n", encoding="utf-8") + return fw + + +def test_split_into_groups_preserves_order(): + nodes = [{"id": f"n{i:02d}"} for i in range(7)] + groups = graph_validator._split_into_groups(nodes) + assert len(groups) == 3 + assert [g[0]["id"] for g in groups] == ["n00", "n03", "n06"] + assert [len(g) for g in groups] == [3, 3, 1] + + +def test_extract_json_object_handles_fenced_block(): + text = '''Here is my verdict: + +```json +{"n01": {"ok": true}} +``` + +Done.''' + parsed = graph_validator._extract_json_object(text) + assert parsed == {"n01": {"ok": True}} + + +def test_extract_json_object_returns_none_on_garbage(): + assert graph_validator._extract_json_object("no json here") is None + + +def test_apply_patches_skips_id_changes(): + graph = copy.deepcopy(make_minimal_valid_graph()) + verdicts = { + "n01": {"ok": False, "suggested_patch": {"id": "nEVIL", "role": "renamed"}}, + } + applied, notes = graph_validator.apply_patches(graph, verdicts) + assert applied == 0 + assert any("refusing to change id" in n for n in notes) + # Original id preserved. + assert graph["nodes"][0]["id"] == "n01" + + +def test_apply_patches_applies_safe_fields(): + graph = copy.deepcopy(make_minimal_valid_graph()) + verdicts = { + "n02": { + "ok": False, + "suggested_patch": { + "role": "BetterRMSNorm", + "confidence": "high", + "source_ref": {"file": "norm.py", "line": 99, "symbol": "Better.forward"}, + }, + }, + } + applied, _ = graph_validator.apply_patches(graph, verdicts) + assert applied == 3 + n02 = graph["nodes"][1] + assert n02["role"] == "BetterRMSNorm" + assert n02["confidence"] == "high" + assert n02["source_ref"]["line"] == 99 + + +def test_validation_loop_converges_in_two_rounds(tmp_path: Path): + """Round 1: every worker reports 1 issue → needs_fix. Round 2: clean.""" + fw_dir = _stub_step_files(tmp_path) + step1 = tmp_path / "memory" / "step1_code_analysis.md" + step2 = tmp_path / "memory" / "step2_tracing_analysis.md" + validation_root = tmp_path / "validation" + logs_root = tmp_path / "logs" + + def response_fn(spec) -> str: + # spec.name like "validator_r1_g00_" — detect round number. + m = re.match(r"validator_r(\d+)_g", spec.name) + round_num = int(m.group(1)) if m else 1 + # Extract the node ids from the prompt to emit verdicts per node. + # The prompt contains a JSON block with the node group; we just emit + # a verdict for "n01" / "n02" / "n03" — any id works since the validator + # only requires the JSON shape. + if round_num == 1: + return json.dumps({ + "n01": {"ok": True}, + "n02": {"ok": False, "issues": ["wrong shape"], "suggested_patch": {"confidence": "low"}}, + "n03": {"ok": True}, + }) + return json.dumps({ + "n01": {"ok": True}, + "n02": {"ok": True}, + "n03": {"ok": True}, + }) + + manager = MockAgentManager(response_fn=response_fn) + graph = copy.deepcopy(make_minimal_valid_graph()) + + rounds, exhausted = graph_validator.run_validation_loop( + graph=graph, + manager=manager, + step1_path=step1, + step2_path=step2, + framework_dir=fw_dir, + validation_root=validation_root, + logs_root=logs_root, + max_rounds=5, + timeout_s=30, + ) + + assert len(rounds) == 2 + assert rounds[0].outcome == "needs_fix" + assert rounds[1].outcome == "clean" + assert exhausted is False + # Round directories were written. + assert (validation_root / "round_01" / "integrity_fixes.json").is_file() + group_outputs = list((validation_root / "round_01").glob("group_*.json")) + assert group_outputs + + +def test_validation_loop_exhausts_at_cap(tmp_path: Path): + fw_dir = _stub_step_files(tmp_path) + step1 = tmp_path / "memory" / "step1_code_analysis.md" + step2 = tmp_path / "memory" / "step2_tracing_analysis.md" + + def always_issues(spec) -> str: + return json.dumps({ + "n02": {"ok": False, "issues": ["perpetually wrong"], + "suggested_patch": {"confidence": "low"}} + }) + + manager = MockAgentManager(response_fn=always_issues) + graph = copy.deepcopy(make_minimal_valid_graph()) + rounds, exhausted = graph_validator.run_validation_loop( + graph=graph, + manager=manager, + step1_path=step1, + step2_path=step2, + framework_dir=fw_dir, + validation_root=tmp_path / "validation", + logs_root=tmp_path / "logs", + max_rounds=3, + timeout_s=30, + ) + assert len(rounds) == 3 + assert exhausted is True + # All rounds reported needs_fix. + assert all(r.outcome == "needs_fix" for r in rounds) + + +def test_integrity_errors_short_circuit_pool(tmp_path: Path): + """If integrity check fails, we skip the pool entirely.""" + fw_dir = _stub_step_files(tmp_path) + step1 = tmp_path / "memory" / "step1_code_analysis.md" + step2 = tmp_path / "memory" / "step2_tracing_analysis.md" + + manager = MockAgentManager(response_fn=lambda spec: '{"n01": {"ok": true}}') + # Duplicate node id → integrity error. + graph = copy.deepcopy(make_minimal_valid_graph()) + graph["nodes"].append(copy.deepcopy(graph["nodes"][1])) + + result = graph_validator.run_validation_round( + round_num=1, + graph=graph, + manager=manager, + step1_path=step1, + step2_path=step2, + framework_dir=fw_dir, + round_dir=tmp_path / "round_01", + pool_log_dir=tmp_path / "pool_logs", + timeout_s=30, + ) + assert result.outcome == "needs_fix" + assert result.group_result_paths == [] # pool was skipped + assert any("duplicate" in e for e in result.integrity.errors) + # Manager never launched any agents. + assert manager.launched_specs == [] diff --git a/metainfer/tasks/find_low_hanging_kernel/tests/test_pipeline_phases.py b/metainfer/tasks/find_low_hanging_kernel/tests/test_pipeline_phases.py new file mode 100644 index 00000000..295fd9b3 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/tests/test_pipeline_phases.py @@ -0,0 +1,224 @@ +"""End-to-end pipeline test using MockAgentManager. + +Drives a full Pipeline.run() with mocked sub-agents that write canned +artifacts to disk (memory files + flow_graph.json). Asserts the pipeline +transitions all the way to P4_visualize and produces the expected outputs. +""" + +from __future__ import annotations + +import json +import re +from pathlib import Path +from typing import Any, Dict + +from metainfer.orchestrator.state import StateStore +from metainfer.testing.mock_agent import MockAgentManager + +from metainfer.tasks.find_low_hanging_kernel.orchestrator.pipeline import ( + OrchestratorConfig, + Pipeline, +) +from metainfer.tasks.find_low_hanging_kernel.tests._helpers import ( + make_minimal_valid_graph, + make_requirements, + make_small_trace_events, + write_trace, +) + + +def _mock_response_fn_factory(tmp_path: Path): + """Build a MockAgentManager response_fn that writes the right canned + artifacts based on the agent's role.""" + + def response_fn(spec) -> str: + role = getattr(spec, "role", "") + wd = Path(spec.workdir) + + if role in ("step1_analyst", "step2_analyst"): + # Cross-validation pool worker — write report.md into the workdir. + (wd / "report.md").write_text( + f"# Report from {spec.name}\n\nstub findings\n", encoding="utf-8" + ) + return f"report written by {spec.name}" + + if role == "step1_synthesizer": + # Synthesizer is supposed to write step1_code_analysis.md to the + # path called out in the prompt. Extract that path from the prompt + # text (the prompt file lives at workdir/{name}.prompt.txt). + return "ok" + + if role == "step2_synthesizer": + return "ok" + + if role == "graph_builder": + return "ok" + + if role == "node_validator": + # Validator pool worker: always return clean. + return json.dumps({"n01": {"ok": True}, "n02": {"ok": True}, "n03": {"ok": True}}) + + return "ok" + + return response_fn + + +def _patch_synthesizers_to_write_outputs(tmp_path: Path, manager): + """The synthesizer prompts tell the agent to write to specific paths. + Since the mock doesn't parse prompts, we monkey-patch `manager.launch` + to intercept synthesizer / builder specs and write the canned output.""" + + real_launch = manager.launch + + def patched_launch(spec): + # Read the prompt to find target output paths. + prompt_path = Path(spec.prompt_file) + prompt_text = prompt_path.read_text(encoding="utf-8") if prompt_path.is_file() else "" + + role = getattr(spec, "role", "") + wd = Path(spec.workdir) + + if role == "step1_synthesizer": + # The synthesizer is instructed to write to step1_code_analysis.md + # under workspace_dir/memory/. We can derive it from workdir: + # workdir = memory/build/step1/synthesizer → memory is 3 levels up. + memory_dir = wd.parent.parent.parent + target = memory_dir / "step1_code_analysis.md" + target.write_text("# Step 1 (mock)\n\nstub\n", encoding="utf-8") + elif role == "step2_synthesizer": + memory_dir = wd.parent.parent.parent + target = memory_dir / "step2_tracing_analysis.md" + target.write_text("# Step 2 (mock)\n\nstub\n", encoding="utf-8") + elif role == "graph_builder": + # Builder writes to workspace/flow_graph.json (prompt contains the + # full path). + m = re.search(r"write to `([^`]+flow_graph\.json)`", prompt_text) + if m: + target = Path(m.group(1)) + else: + target = wd.parent.parent.parent.parent / "flow_graph.json" + target.parent.mkdir(parents=True, exist_ok=True) + target.write_text( + json.dumps(make_minimal_valid_graph()), encoding="utf-8" + ) + return real_launch(spec) + + manager.launch = patched_launch + + +def test_pipeline_runs_end_to_end(tmp_path: Path): + # --- Lay out inputs --- + trace_path = tmp_path / "inputs" / "trace.json" + write_trace(trace_path, make_small_trace_events()) + model_dir = tmp_path / "model" + model_dir.mkdir() + (model_dir / "config.json").write_text( + json.dumps({"arch": "stub"}), encoding="utf-8" + ) + fw_dir = tmp_path / "framework" + fw_dir.mkdir() + (fw_dir / "norm.py").write_text("# stub\n", encoding="utf-8") + + state_dir = tmp_path / "state" + workspace_dir = tmp_path / "workspace" + memory_dir = workspace_dir / "memory" + validation_dir = workspace_dir / "validation" + inputs_snapshot_dir = workspace_dir / "inputs_snapshot" + logs_root = state_dir / "logs" + for p in (state_dir, workspace_dir, memory_dir, validation_dir, inputs_snapshot_dir, logs_root): + p.mkdir(parents=True, exist_ok=True) + + # --- Build request + config --- + req = make_requirements(form={ + "trace_file": str(trace_path), + "model_dir": str(model_dir), + "framework_source_dir": str(fw_dir), + "startup_log": "", + "cli_args_and_env": "--tp 1", + "max_validator_rounds": 3, + }) + cfg = OrchestratorConfig( + workspace_dir=workspace_dir, + memory_dir=memory_dir, + validation_dir=validation_dir, + inputs_snapshot_dir=inputs_snapshot_dir, + repo_root=tmp_path, + state_dir=state_dir, + logs_root=logs_root, + max_validator_rounds=3, + user_paths=[trace_path, model_dir, fw_dir], + ) + + manager = MockAgentManager(response_fn=_mock_response_fn_factory(tmp_path)) + _patch_synthesizers_to_write_outputs(tmp_path, manager) + + store = StateStore(state_dir) + pipeline = Pipeline(req=req, store=store, cfg=cfg, manager=manager) + pipeline.run() + + # --- Assertions --- + run = json.loads((state_dir / "run.json").read_text(encoding="utf-8")) + assert run["finished"] is True + assert run["final_status"] == "success", run + assert run["current_phase"] == "finished" + + # All four major artifacts exist. + assert (memory_dir / "step1_code_analysis.md").is_file() + assert (memory_dir / "step2_tracing_analysis.md").is_file() + assert (workspace_dir / "flow_graph.json").is_file() + assert (workspace_dir / "flow_graph.html").is_file() + assert (workspace_dir / "trace_parsed.json").is_file() + + # At least one validation round record. + iters = list((state_dir / "iterations").glob("*.json")) + assert iters + + # The rendered HTML embeds our graph. + html = (workspace_dir / "flow_graph.html").read_text(encoding="utf-8") + assert "rms_norm_kernel" in html + assert "ELK" in html + + +def test_pipeline_resume_skips_completed_phases(tmp_path: Path): + """Re-running a pipeline whose outputs already exist should be a no-op + that immediately transitions to finished.""" + state_dir = tmp_path / "state" + workspace_dir = tmp_path / "workspace" + memory_dir = workspace_dir / "memory" + validation_dir = workspace_dir / "validation" + inputs_snapshot_dir = workspace_dir / "inputs_snapshot" + logs_root = state_dir / "logs" + for p in (state_dir, workspace_dir, memory_dir, validation_dir, inputs_snapshot_dir, logs_root): + p.mkdir(parents=True, exist_ok=True) + + # Pre-populate all the outputs. + (memory_dir / "step1_code_analysis.md").write_text("# stub", encoding="utf-8") + (memory_dir / "step2_tracing_analysis.md").write_text("# stub", encoding="utf-8") + (workspace_dir / "flow_graph.json").write_text( + json.dumps(make_minimal_valid_graph()), encoding="utf-8" + ) + # Render the HTML so _resume_phase returns "finished". + from metainfer.tasks.find_low_hanging_kernel.orchestrator.visualizer import ( + render_html, + ) + render_html( + make_minimal_valid_graph(), + out_path=workspace_dir / "flow_graph.html", + ) + + req = make_requirements() + cfg = OrchestratorConfig( + workspace_dir=workspace_dir, memory_dir=memory_dir, + validation_dir=validation_dir, inputs_snapshot_dir=inputs_snapshot_dir, + repo_root=tmp_path, state_dir=state_dir, logs_root=logs_root, + ) + manager = MockAgentManager(response_fn=lambda spec: "ok") + store = StateStore(state_dir) + pipeline = Pipeline(req=req, store=store, cfg=cfg, manager=manager) + pipeline.run() + + run = json.loads((state_dir / "run.json").read_text(encoding="utf-8")) + assert run["finished"] is True + # No agents should have been launched for analysis — only the no-op path. + # (shutdown + initial init_or_resume don't launch anything.) + assert manager.launched_specs == [] diff --git a/metainfer/tasks/find_low_hanging_kernel/tests/test_trace_parser.py b/metainfer/tasks/find_low_hanging_kernel/tests/test_trace_parser.py new file mode 100644 index 00000000..acbc9d5c --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/tests/test_trace_parser.py @@ -0,0 +1,100 @@ +"""Unit tests for trace_parser.""" + +from __future__ import annotations + +import json +from pathlib import Path + +from metainfer.tasks.find_low_hanging_kernel.orchestrator import trace_parser +from metainfer.tasks.find_low_hanging_kernel.tests._helpers import ( + make_event, + make_small_trace_events, + write_trace, +) + + +def test_parse_plain_json(tmp_path: Path): + p = tmp_path / "trace.json" + write_trace(p, make_small_trace_events()) + summary = trace_parser.parse_trace(p) + + assert summary["source"] == "trace.json" + assert summary["event_count"] == 8 + assert summary["has_cpu_stack"] is True + assert summary["cuda_graph_detected"] is False + assert "__metadata" in summary["cats_present"] + assert "kernel" in summary["cats_present"] + + # rms_norm_kernel aggregated the 3 X-events (bimodal). + rms = next( + r for r in summary["by_name_cat"] + if r["name"] == "rms_norm_kernel" and r["cat"] == "kernel" + ) + assert rms["count"] == 3 + assert rms["total_us"] == 122.0 # 20 + 80 + 22 + assert rms["bimodal_suspect"] is True + + # gemm_kernel was a B/E pair spanning ts=400..460 → dur=60. + gemm = next( + r for r in summary["by_name_cat"] + if r["name"] == "gemm_kernel" and r["cat"] == "kernel" + ) + assert gemm["count"] == 1 + assert gemm["total_us"] == 60.0 + + +def test_parse_gzipped(tmp_path: Path): + p = tmp_path / "trace.json.gz" + write_trace(p, make_small_trace_events(), gzipped=True) + summary = trace_parser.parse_trace(p) + assert summary["event_count"] == 8 + + +def test_write_summary_roundtrip(tmp_path: Path): + src = tmp_path / "in.json" + write_trace(src, make_small_trace_events()) + out = tmp_path / "out" / "trace_parsed.json" + summary = trace_parser.write_summary(src, out) + assert out.is_file() + on_disk = json.loads(out.read_text(encoding="utf-8")) + assert on_disk["event_count"] == summary["event_count"] + + +def test_by_name_cat_sorted_by_total(tmp_path: Path): + events = [ + make_event("a", "kernel", ts=0, dur=10), + make_event("b", "kernel", ts=0, dur=1000), + make_event("c", "kernel", ts=0, dur=100), + ] + p = tmp_path / "t.json" + write_trace(p, events) + summary = trace_parser.parse_trace(p) + totals = [r["total_us"] for r in summary["by_name_cat"]] + assert totals == sorted(totals, reverse=True) + + +def test_cuda_graph_detection(tmp_path: Path): + events = [ + make_event("normal_kernel", "kernel", ts=0, dur=10), + {"name": "cuda_graph_capture", "cat": "cuda_runtime", "ph": "X", "ts": 0, "dur": 1, "pid": 0, "tid": 0}, + ] + p = tmp_path / "t.json" + write_trace(p, events) + summary = trace_parser.parse_trace(p) + assert summary["cuda_graph_detected"] is True + + +def test_no_cpu_stack_when_absent(tmp_path: Path): + events = [make_event("a", "kernel", ts=0, dur=10)] + p = tmp_path / "t.json" + write_trace(p, events) + summary = trace_parser.parse_trace(p) + assert summary["has_cpu_stack"] is False + + +def test_accepts_bare_list(tmp_path: Path): + """Some trace emitters skip the ``traceEvents`` wrapper.""" + p = tmp_path / "bare.json" + p.write_text(json.dumps(make_small_trace_events()), encoding="utf-8") + summary = trace_parser.parse_trace(p) + assert summary["event_count"] == 8 diff --git a/metainfer/tasks/find_low_hanging_kernel/tests/test_visualizer.py b/metainfer/tasks/find_low_hanging_kernel/tests/test_visualizer.py new file mode 100644 index 00000000..7921e307 --- /dev/null +++ b/metainfer/tasks/find_low_hanging_kernel/tests/test_visualizer.py @@ -0,0 +1,67 @@ +"""Tests for the visualizer.""" + +from __future__ import annotations + +import json +from pathlib import Path + +from metainfer.tasks.find_low_hanging_kernel.orchestrator import visualizer +from metainfer.tasks.find_low_hanging_kernel.tests._helpers import ( + make_minimal_valid_graph, +) + + +def test_render_html_writes_self_contained_file(tmp_path: Path): + graph = make_minimal_valid_graph() + out = tmp_path / "flow_graph.html" + result = visualizer.render_html(graph, out_path=out) + assert result == out + assert out.is_file() + text = out.read_text(encoding="utf-8") + + # The embedded JSON data block is present. + assert 'id="flow-graph-data"' in text + # ELK bundle was inlined (look for the ELK global constructor pattern). + assert "ELK" in text + # All three node roles appear in the embedded JSON. + assert "embedding_kernel" in text + assert "rms_norm_kernel" in text + assert "logits_kernel" in text + # Embedded JSON parses. + start = text.find('", start) + blob = text[start + len('" + ) + # Insert right after or , before any agent-written + #