diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000..37ab76b --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,112 @@ +# Contributing to Helenite + +[中文版本 / Chinese Version](./CONTRIBUTING_zh.md) + +Thank you for your interest in contributing to Helenite! 🎉 + +## 🚀 Development Environment Setup + +```bash +# Clone the repository +git clone https://github.com/your-username/helenite.git +cd helenite + +# Install dependencies +npm install + +# Start development server +npm run dev + +# Run tests +npm test # Unit tests +npm run test:e2e # End-to-end tests +npm run typecheck # Type checking +npm run lint # Code quality check +npm run build # Build verification +``` + +## 📋 Code Quality Standards + +### ✅ Required Checks for PR Approval +- **Type checking**: `npm run typecheck` must pass +- **Build verification**: `npm run build` must succeed +- **Tests**: All unit tests and E2E tests must pass +- **Code quality**: Must not introduce new ESLint errors + +### ⚠️ Code Quality Warnings +- The project currently has 269 ESLint warnings (mainly `any` types) +- These warnings **will not block PR merging**, but new code should avoid introducing more +- We plan to systematically address these `any` types during the API refactoring phase + +### 🎯 Coding Standards +- Use TypeScript strict mode +- Avoid `any` types, prefer specific type definitions +- Prefix unused variables with `_` (e.g., `_unused`) +- Follow React Hooks best practices +- Maintain code consistency and readability + +## 🧪 Testing Requirements + +### Unit Tests +- New features must include unit tests +- Utility functions and service layers need complete coverage +- Use Vitest + React Testing Library + +### E2E Tests +- Critical user flows need E2E coverage +- Use Playwright with multi-browser support +- Current test pass rate: **50/50 (100%)** + +### Responsive Testing +UI changes must be tested on: +- 📱 Mobile (< 768px) +- 📟 Tablet (768px - 1024px) +- 🖥️ Desktop (> 1024px) + +## 🔄 Refactoring Roadmap + +The project is undergoing **Phase 2: API Interface Layer Refactoring**: + +### 🎯 Refactoring Goals +- Unified API interface design +- Support multiple data sources (Obsidian metadata.json / pure file system) +- Complete type definitions, eliminate `any` types +- Improve code quality and maintainability + +### 📅 Refactoring Priority +1. **File Tree API** → Graph API → Search API → Tag API +2. During refactoring, we'll systematically resolve current `any` type warnings +3. Welcome to participate in interface design discussions + +## 📝 PR Submission Process + +1. **Fork the project** and create a feature branch +2. **Develop locally** and ensure all checks pass +3. **Submit PR** using the provided PR template +4. **CI checks** will run automatically to ensure code quality +5. **Code review** and merge after approval + +## 🤝 Community Guidelines + +- Maintain friendly and professional communication +- Respect different viewpoints and suggestions +- Prioritize user experience and code quality +- Welcome newcomers with patient guidance + +## 📚 Project Resources + +- **Architecture Documentation**: [CLAUDE.md](../CLAUDE.md) +- **Issue Tracking**: [GitHub Issues](https://github.com/your-username/helenite/issues) +- **Discussions**: [GitHub Discussions](https://github.com/your-username/helenite/discussions) +- **Test Reports**: CI checks in PRs + +## 🌐 Multi-language Support + +We welcome contributions in multiple languages: +- **English** (Primary) +- **Chinese (Simplified)** - 简体中文 +- **Japanese** - 日本語 (Community contributions welcome) + +--- + +Happy Coding! 🚀 \ No newline at end of file diff --git a/.github/CONTRIBUTING_zh.md b/.github/CONTRIBUTING_zh.md new file mode 100644 index 0000000..8f7ffb3 --- /dev/null +++ b/.github/CONTRIBUTING_zh.md @@ -0,0 +1,112 @@ +# 为 Helenite 项目贡献代码 + +[English Version / 英文版本](./CONTRIBUTING.md) + +感谢您对 Helenite 项目的贡献!🎉 + +## 🚀 开发环境设置 + +```bash +# 克隆仓库 +git clone https://github.com/your-username/helenite.git +cd helenite + +# 安装依赖 +npm install + +# 启动开发服务器 +npm run dev + +# 运行测试 +npm test # 单元测试 +npm run test:e2e # E2E 测试 +npm run typecheck # 类型检查 +npm run lint # 代码质量检查 +npm run build # 构建验证 +``` + +## 📋 代码质量标准 + +### ✅ PR 必须通过的检查 +- **类型检查**: `npm run typecheck` 必须通过 +- **构建验证**: `npm run build` 必须成功 +- **测试**: 所有单元测试和 E2E 测试必须通过 +- **代码质量**: 不能引入新的 ESLint 错误 + +### ⚠️ 代码质量警告 +- 项目当前有 269 个 ESLint 警告(主要是 `any` 类型) +- 这些警告**不会阻止 PR 合并**,但新代码应该避免引入更多 +- 我们计划在 API 重构阶段系统性解决这些 `any` 类型 + +### 🎯 编码规范 +- 使用 TypeScript 严格模式 +- 避免使用 `any` 类型,优先使用具体类型定义 +- 未使用的变量以 `_` 开头 (如 `_unused`) +- 遵循 React Hooks 最佳实践 +- 保持代码一致性和可读性 + +## 🧪 测试要求 + +### 单元测试 +- 新功能必须包含单元测试 +- 工具函数和服务层需要完整覆盖 +- 使用 Vitest + React Testing Library + +### E2E 测试 +- 关键用户流程需要 E2E 覆盖 +- 使用 Playwright,支持多浏览器 +- 当前测试通过率:**50/50 (100%)** + +### 响应式测试 +UI 变更需要在以下设备上测试: +- 📱 移动端 (< 768px) +- 📟 平板端 (768px - 1024px) +- 🖥️ 桌面端 (> 1024px) + +## 🔄 重构规划 + +项目正在进行 **Phase 2: API 接口层重构**: + +### 🎯 重构目标 +- 统一 API 接口设计 +- 支持多种数据源(Obsidian metadata.json / 纯文件系统) +- 完善类型定义,消除 `any` 类型 +- 提升代码质量和可维护性 + +### 📅 重构优先级 +1. **文件树 API** → 图谱 API → 搜索 API → 标签 API +2. 重构时会系统性解决当前的 `any` 类型警告 +3. 欢迎参与接口设计讨论 + +## 📝 提交 PR 流程 + +1. **Fork 项目** 并创建功能分支 +2. **本地开发** 并确保所有检查通过 +3. **提交 PR** 使用提供的 PR 模板 +4. **CI 检查** 会自动运行,确保代码质量 +5. **代码审查** 通过后即可合并 + +## 🤝 社区准则 + +- 保持友善和专业的沟通 +- 尊重不同的观点和建议 +- 优先考虑用户体验和代码质量 +- 欢迎新手贡献者,提供耐心指导 + +## 📚 项目资源 + +- **架构文档**: [CLAUDE.md](../CLAUDE.md) +- **问题跟踪**: [GitHub Issues](https://github.com/your-username/helenite/issues) +- **讨论交流**: [GitHub Discussions](https://github.com/your-username/helenite/discussions) +- **测试报告**: PR 中的 CI 检查 + +## 🌐 多语言支持 + +我们欢迎多种语言的贡献: +- **英文** (主要) +- **简体中文** +- **日语** - 日本語 (欢迎社区贡献) + +--- + +编程愉快! 🚀 \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..089dee2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,52 @@ +--- +name: Bug Report / Bug 报告 +about: Create a report to help us improve / 创建报告帮助我们改进 +title: '[Bug] ' +labels: ['bug'] +assignees: '' +--- + +**Describe the bug / 描述错误** +A clear and concise description of what the bug is. +清晰简洁地描述遇到的错误。 + +**To Reproduce / 重现步骤** +Steps to reproduce the behavior: +重现该行为的步骤: + +1. Go to '...' / 访问 '...' +2. Click on '....' / 点击 '....' +3. Scroll down to '....' / 滚动到 '....' +4. See error / 看到错误 + +**Expected behavior / 预期行为** +A clear and concise description of what you expected to happen. +清晰简洁地描述您期望发生的情况。 + +**Screenshots / 截图** +If applicable, add screenshots to help explain your problem. +如适用,添加截图来帮助解释您的问题。 + +**Environment / 环境信息:** +- OS: [e.g. iOS, Windows, macOS, Linux] +- Browser: [e.g. chrome, safari, firefox] +- Browser Version: [e.g. 22] +- Device: [e.g. iPhone 12, Desktop] +- Screen Size: [e.g. 1920x1080, Mobile] + +**Vault Information / 库信息 (if applicable / 如适用):** +- Vault Size: [e.g. 100 files, 1GB] +- Has metadata.json: [Yes/No] +- Obsidian Version: [e.g. 1.4.16] + +**Additional context / 附加上下文** +Add any other context about the problem here. +在此添加有关问题的任何其他上下文。 + +**Console Errors / 控制台错误** +If you see any errors in the browser console, please paste them here. +如果您在浏览器控制台中看到任何错误,请在此处粘贴。 + +``` +Paste console errors here / 在此粘贴控制台错误 +``` \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..4e37d77 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,40 @@ +--- +name: Feature Request / 功能请求 +about: Suggest an idea for this project / 为该项目提出想法 +title: '[Feature] ' +labels: ['enhancement'] +assignees: '' +--- + +**Is your feature request related to a problem? Please describe. / 您的功能请求是否与问题相关?请描述。** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] +清晰简洁地描述问题是什么。例如:我总是对 [...] 感到困扰 + +**Describe the solution you'd like / 描述您想要的解决方案** +A clear and concise description of what you want to happen. +清晰简洁地描述您希望发生的情况。 + +**Describe alternatives you've considered / 描述您考虑过的替代方案** +A clear and concise description of any alternative solutions or features you've considered. +清晰简洁地描述您考虑过的任何替代解决方案或功能。 + +**Use Case / 使用场景** +Describe when and how this feature would be used. +描述何时以及如何使用此功能。 + +**Priority / 优先级** +- [ ] High / 高 (Critical for workflow / 工作流程关键) +- [ ] Medium / 中 (Nice to have / 很好有) +- [ ] Low / 低 (Future enhancement / 未来增强) + +**Implementation Ideas / 实现想法 (Optional / 可选)** +If you have ideas about how this could be implemented, please share them. +如果您对如何实现有想法,请分享。 + +**Additional context / 附加上下文** +Add any other context or screenshots about the feature request here. +在此添加有关功能请求的任何其他上下文或屏幕截图。 + +**Related Features / 相关功能** +Are there any existing features this would integrate with? +是否有任何现有功能与此集成? \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 0000000..ee5c50b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,38 @@ +--- +name: Question / 问题咨询 +about: Ask a question about usage or setup / 询问使用或设置问题 +title: '[Question] ' +labels: ['question'] +assignees: '' +--- + +**What would you like to know? / 您想了解什么?** +A clear and concise description of your question. +清晰简洁地描述您的问题。 + +**Context / 上下文** +Please provide context about what you're trying to achieve. +请提供您想要实现的目标的上下文。 + +**What have you tried? / 您尝试了什么?** +Describe any attempts you've made to solve this yourself. +描述您为自己解决此问题所做的任何尝试。 + +**Environment / 环境信息 (if applicable / 如适用):** +- OS: [e.g. iOS, Windows, macOS, Linux] +- Browser: [e.g. chrome, safari, firefox] +- Node.js Version: [e.g. 18.17.0] +- Helenite Version: [e.g. main branch, v1.0.0] + +**Screenshots or Code / 截图或代码** +If applicable, add screenshots or code snippets. +如适用,添加屏幕截图或代码片段。 + +``` +Code or configuration here +代码或配置内容 +``` + +**Additional Information / 附加信息** +Any other information that might be helpful. +任何其他可能有用的信息。 \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..f5cc0a4 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,55 @@ +# Pull Request + +[中文版本 / Chinese Version](./pull_request_template_zh.md) + +## 📝 Description + + +## 📋 Type of Change + +- [ ] 🐛 Bug fix (non-breaking change that fixes an issue) +- [ ] ✨ New feature (non-breaking change that adds functionality) +- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] 📚 Documentation update +- [ ] 🔧 Code refactoring (no functional changes) +- [ ] 🧪 Test updates +- [ ] 🚀 Performance improvement + +## 🧪 Testing + +- [ ] Unit tests pass (`npm test`) +- [ ] E2E tests pass (`npm run test:e2e`) +- [ ] Manual testing completed +- [ ] Type checking passes (`npm run typecheck`) + +## 📊 Code Quality + +- [ ] ESLint passes without new errors (`npm run lint`) +- [ ] Build succeeds (`npm run build`) +- [ ] No new TypeScript errors + +## 📱 Responsive Testing + +- [ ] Desktop (1200px+) +- [ ] Tablet (768px-1024px) +- [ ] Mobile (< 768px) + +## ⚠️ Breaking Changes + +None + +## 📸 Screenshots + + +## 🔗 Related Issues + + +## ✅ Checklist +- [ ] I have tested my changes thoroughly +- [ ] I have updated documentation if needed +- [ ] My code follows the project's style guidelines +- [ ] I have added tests for new functionality +- [ ] All existing tests still pass + +## 📚 Additional Notes + \ No newline at end of file diff --git a/.github/pull_request_template_zh.md b/.github/pull_request_template_zh.md new file mode 100644 index 0000000..5ee35d9 --- /dev/null +++ b/.github/pull_request_template_zh.md @@ -0,0 +1,55 @@ +# Pull Request / 合并请求 + +[English Version / 英文版本](./pull_request_template.md) + +## 📝 描述 / Description + + +## 📋 变更类型 / Type of Change + +- [ ] 🐛 Bug 修复 (不破坏现有功能的问题修复) +- [ ] ✨ 新功能 (不破坏现有功能的新功能) +- [ ] 💥 破坏性变更 (修复或功能可能导致现有功能无法正常工作) +- [ ] 📚 文档更新 +- [ ] 🔧 代码重构 (无功能性变更) +- [ ] 🧪 测试更新 +- [ ] 🚀 性能改进 + +## 🧪 测试 / Testing + +- [ ] 单元测试通过 (`npm test`) +- [ ] E2E 测试通过 (`npm run test:e2e`) +- [ ] 手动测试完成 +- [ ] 类型检查通过 (`npm run typecheck`) + +## 📊 代码质量 / Code Quality + +- [ ] ESLint 检查通过,无新错误 (`npm run lint`) +- [ ] 构建成功 (`npm run build`) +- [ ] 无新的 TypeScript 错误 + +## 📱 响应式测试 / Responsive Testing + +- [ ] 桌面端 (1200px+) +- [ ] 平板端 (768px-1024px) +- [ ] 移动端 (< 768px) + +## ⚠️ 破坏性变更 / Breaking Changes + +无 / None + +## 📸 截图 / Screenshots + + +## 🔗 相关问题 / Related Issues + + +## ✅ 检查清单 / Checklist +- [ ] 我已经彻底测试了我的更改 +- [ ] 我已经更新了必要的文档 +- [ ] 我的代码遵循项目的样式指南 +- [ ] 我已经为新功能添加了测试 +- [ ] 所有现有测试仍然通过 + +## 📚 附加说明 / Additional Notes + \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1844f52 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,139 @@ +name: CI/CD Pipeline + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main, develop ] + +jobs: + quality-check: + name: 'Quality Check' + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Type check + run: npm run typecheck + + - name: Format check + run: npm run format:check + + - name: Lint check + run: npm run lint + continue-on-error: false + + - name: Unit tests + run: npm run test:unit + + - name: Integration tests + run: | + # 后台启动 Vite 开发服务器用于集成测试 + npm run dev & + DEV_PID=$! + + # 等待服务器启动 + timeout 30 bash -c 'until curl -s http://localhost:5173 > /dev/null; do sleep 1; done' + + # 运行集成测试 + npm run test:integration + + # 停止开发服务器 + kill $DEV_PID || true + + - name: Build verification + run: npm run build + + e2e-test: + name: 'E2E Tests' + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Install Playwright browsers + run: npx playwright install --with-deps + + - name: Run E2E tests + run: npm run test:e2e + + - name: Upload test results + uses: actions/upload-artifact@v4 + if: failure() + with: + name: playwright-report + path: playwright-report/ + + lint-regression: + name: 'Lint Regression Check' + runs-on: ubuntu-latest + if: github.event_name == 'pull_request' + + steps: + - name: Checkout base branch + uses: actions/checkout@v4 + with: + ref: ${{ github.base_ref }} + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Get baseline lint count + run: | + npm run lint 2>&1 | grep -o '[0-9]\+ problems' | head -1 | grep -o '[0-9]\+' > /tmp/baseline-lint-count.txt || echo "0" > /tmp/baseline-lint-count.txt + echo "Baseline lint issues: $(cat /tmp/baseline-lint-count.txt)" + + - name: Checkout PR branch + uses: actions/checkout@v4 + + - name: Install dependencies for PR + run: npm ci + + - name: Get PR lint count + run: | + npm run lint 2>&1 | grep -o '[0-9]\+ problems' | head -1 | grep -o '[0-9]\+' > /tmp/pr-lint-count.txt || echo "0" > /tmp/pr-lint-count.txt + echo "PR lint issues: $(cat /tmp/pr-lint-count.txt)" + + - name: Compare lint counts + run: | + baseline=$(cat /tmp/baseline-lint-count.txt) + pr_count=$(cat /tmp/pr-lint-count.txt) + echo "Baseline: $baseline, PR: $pr_count" + + if [ "$pr_count" -gt "$baseline" ]; then + echo "❌ PR introduces new lint issues: $pr_count > $baseline" + echo "Please fix the new lint issues before merging." + exit 1 + elif [ "$pr_count" -lt "$baseline" ]; then + echo "✅ PR reduces lint issues: $pr_count < $baseline" + echo "Great job improving code quality! 🎉" + else + echo "✅ PR maintains current lint level: $pr_count = $baseline" + fi \ No newline at end of file diff --git a/.gitignore b/.gitignore index f5967dd..004117d 100644 --- a/.gitignore +++ b/.gitignore @@ -23,7 +23,7 @@ dist-ssr *.sln *.sw? CLAUDE.md -public/vault +public/vault/Publish Caddyfile @@ -34,4 +34,7 @@ docker-compose.override.yaml docker-compose.override.yml # Local temp directories -tmp/ \ No newline at end of file +tmp/ + +playwright-report/ +test-results/ \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..4ee4933 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,56 @@ +# Only format core development files: src/, e2e/, and root config files +# Exclude everything else by default + +# Build outputs +dist/ +build/ +out/ + +# Dependencies +node_modules/ + +# Public assets and vault files +public/ + +# Deprecated code +deprecated/ + +# Documentation (not critical for formatting) +docs/ +README*.md +CHANGELOG*.md +CONTRIBUTING*.md + +# GitHub templates and workflows (not critical for formatting) +.github/ + +# Generated files +*.min.js +*.min.css + +# Package files +package-lock.json +yarn.lock +pnpm-lock.yaml + +# Logs +*.log + +# Coverage reports +coverage/ + +# Test reports +playwright-report/ +test-results/ + +# Environment files +.env* + +# Editor and IDE files +.vscode/ +.idea/ +.claude/ + +# OS files +.DS_Store +Thumbs.db \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..29b9d1f --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "semi": true, + "trailingComma": "es5", + "singleQuote": true, + "printWidth": 100, + "tabWidth": 2, + "useTabs": false +} diff --git a/deprecated/src/App.tsx b/deprecated/src/App.tsx new file mode 100644 index 0000000..ad4c70e --- /dev/null +++ b/deprecated/src/App.tsx @@ -0,0 +1,23 @@ +import React, { Suspense } from 'react'; +import { MantineProvider } from '@mantine/core'; +import { Notifications } from '@mantine/notifications'; +import { AppLayout } from './components/Layout/AppLayout'; +import { useHashRouter } from './hooks/useHashRouter'; +import { useSEO } from './hooks/useSEO'; + +function App() { + // 初始化路由系统 + useHashRouter(); + + // 初始化 SEO 优化 + useSEO(); + + return ( + + + + + ); +} + +export default App; \ No newline at end of file diff --git a/src/apis/config.ts b/deprecated/src/apis/config.ts similarity index 97% rename from src/apis/config.ts rename to deprecated/src/apis/config.ts index 1479713..18712d5 100644 --- a/src/apis/config.ts +++ b/deprecated/src/apis/config.ts @@ -31,12 +31,12 @@ export const API_CONFIG = { TAG_MODE: 'mock' as APIMode, // 未实现:回退到 mock }; -import { VAULT_ROOT } from '../config/env'; +import { VAULT_PATH } from '../config/vaultConfig'; /** * Vault 基础 URL */ -export const VAULT_BASE_URL = VAULT_ROOT; +export const VAULT_BASE_URL = VAULT_PATH; /** * 创建文件树 API 实例 diff --git a/src/apis/hooks/index.ts b/deprecated/src/apis/hooks/index.ts similarity index 100% rename from src/apis/hooks/index.ts rename to deprecated/src/apis/hooks/index.ts diff --git a/src/apis/hooks/useSearchAPI.ts b/deprecated/src/apis/hooks/useSearchAPI.ts similarity index 96% rename from src/apis/hooks/useSearchAPI.ts rename to deprecated/src/apis/hooks/useSearchAPI.ts index 4ba8de9..9bad7e6 100644 --- a/src/apis/hooks/useSearchAPI.ts +++ b/deprecated/src/apis/hooks/useSearchAPI.ts @@ -1,7 +1,7 @@ import { useCallback, useMemo } from 'react'; import type { ISearchAPI } from '../interfaces/ISearchAPI'; import { LocalSearchAPI } from '../implementations/local/LocalSearchAPI'; -import { VAULT_PATH } from '../../config/env'; +import { VAULT_PATH } from '../../config/vaultConfig'; /** * 搜索 API Hook diff --git a/src/apis/hooks/useTagAPI.ts b/deprecated/src/apis/hooks/useTagAPI.ts similarity index 96% rename from src/apis/hooks/useTagAPI.ts rename to deprecated/src/apis/hooks/useTagAPI.ts index 9fb6bba..f18420e 100644 --- a/src/apis/hooks/useTagAPI.ts +++ b/deprecated/src/apis/hooks/useTagAPI.ts @@ -1,7 +1,7 @@ import { useCallback, useMemo } from 'react'; import type { ITagAPI } from '../interfaces/ITagAPI'; import { LocalTagAPI } from '../implementations/local/LocalTagAPI'; -import { VAULT_PATH } from '../../config/env'; +import { VAULT_PATH } from '../../config/vaultConfig'; /** * 标签 API Hook diff --git a/src/apis/implementations/index.ts b/deprecated/src/apis/implementations/index.ts similarity index 100% rename from src/apis/implementations/index.ts rename to deprecated/src/apis/implementations/index.ts diff --git a/src/apis/implementations/local/LocalFileAPI.ts b/deprecated/src/apis/implementations/local/LocalFileAPI.ts similarity index 95% rename from src/apis/implementations/local/LocalFileAPI.ts rename to deprecated/src/apis/implementations/local/LocalFileAPI.ts index 36465fb..e2e6357 100644 --- a/src/apis/implementations/local/LocalFileAPI.ts +++ b/deprecated/src/apis/implementations/local/LocalFileAPI.ts @@ -1,6 +1,6 @@ import type { IFileAPI, TOCItem, LinkData } from '../../interfaces/IFileAPI'; import type { FileMetadata } from '../../interfaces/IFileTreeAPI'; -import { VAULT_PATH } from '../../../config/env'; +import { VAULT_PATH, getMetadataUrl } from '../../../config/vaultConfig'; import { fetchVault } from '../../../utils/fetchWithAuth'; /** @@ -9,8 +9,10 @@ import { fetchVault } from '../../../utils/fetchWithAuth'; */ export class LocalFileAPI implements IFileAPI { // baseUrl 参数保留用于接口兼容性,但现在使用 VAULT_PATH - constructor(_baseUrl: string = '/vault') { + constructor(baseUrl: string = '/vaults/Demo') { // 使用 VAULT_PATH 而不是 baseUrl + // TODO: 将来可能使用 baseUrl 参数实现多 vault 支持 + console.log(`LocalFileAPI initialized with baseUrl: ${baseUrl}, using VAULT_PATH: ${VAULT_PATH}`); } /** @@ -49,7 +51,7 @@ export class LocalFileAPI implements IFileAPI { console.log(`📊 Loading metadata for: ${path}`); // 加载 metadata.json - const response = await fetchVault(`${VAULT_PATH}/metadata.json`); + const response = await fetchVault(getMetadataUrl()); if (!response.ok) { throw new Error(`Failed to fetch metadata: ${response.status}`); } @@ -199,7 +201,7 @@ export class LocalFileAPI implements IFileAPI { const response = await fetchVault(fullPath, { method: 'HEAD' }); return response.ok; - } catch (error) { + } catch { return false; } } diff --git a/src/apis/implementations/local/LocalFileTreeAPI.ts b/deprecated/src/apis/implementations/local/LocalFileTreeAPI.ts similarity index 95% rename from src/apis/implementations/local/LocalFileTreeAPI.ts rename to deprecated/src/apis/implementations/local/LocalFileTreeAPI.ts index 1eb487e..4d6958c 100644 --- a/src/apis/implementations/local/LocalFileTreeAPI.ts +++ b/deprecated/src/apis/implementations/local/LocalFileTreeAPI.ts @@ -1,6 +1,6 @@ import type { IFileTreeAPI, FileTree, FileMetadata, FolderStats } from '../../interfaces'; -import { getVaultConfig, isFolderExcluded, isFileExcluded, isPathInExcludedFolder } from '../../../config/vaultConfig'; -import { VAULT_PATH } from '../../../config/env'; +import { getVaultConfig, isFolderExcluded, isFileExcluded, isPathInExcludedFolder, getMetadataUrl } from '../../../config/vaultConfig'; +import { VAULT_PATH } from '../../../config/vaultConfig'; import { fetchVault } from '../../../utils/fetchWithAuth'; /** @@ -9,8 +9,9 @@ import { fetchVault } from '../../../utils/fetchWithAuth'; */ export class LocalFileTreeAPI implements IFileTreeAPI { // baseUrl 参数保留用于接口兼容性,但现在使用 VAULT_PATH - constructor(_baseUrl: string = '/vault') { + constructor(baseUrl: string = '/vaults/Demo') { // 使用 VAULT_PATH 而不是 baseUrl + console.log(`LocalFileTreeAPI initialized with baseUrl: ${baseUrl}, using VAULT_PATH: ${VAULT_PATH}`); } /** @@ -65,7 +66,7 @@ export class LocalFileTreeAPI implements IFileTreeAPI { * 获取 metadata.json 数据 */ private async getMetadata(): Promise { - const response = await fetchVault(`${VAULT_PATH}/metadata.json`); + const response = await fetchVault(getMetadataUrl()); if (!response.ok) { throw new Error(`Failed to fetch metadata: ${response.status}`); } diff --git a/src/apis/implementations/local/LocalGraphAPI.ts b/deprecated/src/apis/implementations/local/LocalGraphAPI.ts similarity index 95% rename from src/apis/implementations/local/LocalGraphAPI.ts rename to deprecated/src/apis/implementations/local/LocalGraphAPI.ts index 86634eb..9451a62 100644 --- a/src/apis/implementations/local/LocalGraphAPI.ts +++ b/deprecated/src/apis/implementations/local/LocalGraphAPI.ts @@ -1,6 +1,6 @@ import type { IGraphAPI, GraphData, GraphNode, GraphEdge, GraphStats } from '../../interfaces/IGraphAPI'; import type { FileMetadata } from '../../interfaces/IFileTreeAPI'; -import { VAULT_PATH } from '../../../config/env'; +import { VAULT_PATH, getMetadataUrl } from '../../../config/vaultConfig'; import { fetchVault } from '../../../utils/fetchWithAuth'; /** @@ -10,8 +10,9 @@ import { fetchVault } from '../../../utils/fetchWithAuth'; */ export class LocalGraphAPI implements IGraphAPI { // baseUrl 参数保留用于接口兼容性,但现在使用 VAULT_PATH - constructor(_baseUrl: string = '/vault') { + constructor(baseUrl: string = '/vaults/Demo') { // 使用 VAULT_PATH 而不是 baseUrl + console.log(`LocalGraphAPI initialized with baseUrl: ${baseUrl}, using VAULT_PATH: ${VAULT_PATH}`); } /** @@ -90,6 +91,11 @@ export class LocalGraphAPI implements IGraphAPI { // Process outbound links (当前文件引用的其他文件) if (node.links && node.links.length > 0) { for (const link of node.links) { + // 检查 relativePath 是否存在 + if (!link.relativePath) { + continue; + } + // 过滤掉 Attachments 目录下的文件链接 if (link.relativePath.includes('Attachments/')) { continue; @@ -130,6 +136,11 @@ export class LocalGraphAPI implements IGraphAPI { // Process backlinks (引用当前文件的其他文件) if (node.backlinks && node.backlinks.length > 0) { for (const backlink of node.backlinks) { + // 检查 relativePath 是否存在 + if (!backlink.relativePath) { + continue; + } + // 过滤掉 Attachments 目录下的文件链接 if (backlink.relativePath.includes('Attachments/')) { continue; @@ -342,7 +353,7 @@ export class LocalGraphAPI implements IGraphAPI { * 获取 metadata.json 数据 */ private async getMetadata(): Promise { - const response = await fetchVault(`${VAULT_PATH}/metadata.json`); + const response = await fetchVault(getMetadataUrl()); if (!response.ok) { throw new Error(`Failed to fetch metadata: ${response.status}`); } diff --git a/src/apis/implementations/local/LocalSearchAPI.ts b/deprecated/src/apis/implementations/local/LocalSearchAPI.ts similarity index 98% rename from src/apis/implementations/local/LocalSearchAPI.ts rename to deprecated/src/apis/implementations/local/LocalSearchAPI.ts index 61118ab..69cf17a 100644 --- a/src/apis/implementations/local/LocalSearchAPI.ts +++ b/deprecated/src/apis/implementations/local/LocalSearchAPI.ts @@ -1,5 +1,5 @@ import type { ISearchAPI, SearchResult, SearchMatch } from '../../interfaces/ISearchAPI'; -import { getVaultConfig, isPathInExcludedFolder, isFileExcluded } from '../../../config/vaultConfig'; +import { getVaultConfig, isPathInExcludedFolder, isFileExcluded, getMetadataUrl } from '../../../config/vaultConfig'; import { fetchVault } from '../../../utils/fetchWithAuth'; /** @@ -29,7 +29,7 @@ export class LocalSearchAPI implements ISearchAPI { } try { - const response = await fetchVault(`${this.baseUrl}/metadata.json`); + const response = await fetchVault(getMetadataUrl()); if (!response.ok) { console.warn('metadata.json not found, falling back to file system search'); return []; diff --git a/src/apis/implementations/local/LocalTagAPI.ts b/deprecated/src/apis/implementations/local/LocalTagAPI.ts similarity index 97% rename from src/apis/implementations/local/LocalTagAPI.ts rename to deprecated/src/apis/implementations/local/LocalTagAPI.ts index 80bd6a6..d5ea785 100644 --- a/src/apis/implementations/local/LocalTagAPI.ts +++ b/deprecated/src/apis/implementations/local/LocalTagAPI.ts @@ -1,5 +1,6 @@ import type { ITagAPI, TagData } from '../../interfaces/ITagAPI'; import { fetchVault } from '../../../utils/fetchWithAuth'; +import { getMetadataUrl } from '../../../config/vaultConfig'; /** * 本地标签 API 实现 @@ -24,7 +25,7 @@ export class LocalTagAPI implements ITagAPI { } try { - const response = await fetchVault(`${this.baseUrl}/metadata.json`); + const response = await fetchVault(getMetadataUrl()); if (!response.ok) { console.warn('metadata.json not found, no tags available'); return []; diff --git a/src/apis/implementations/local/index.ts b/deprecated/src/apis/implementations/local/index.ts similarity index 100% rename from src/apis/implementations/local/index.ts rename to deprecated/src/apis/implementations/local/index.ts diff --git a/src/apis/implementations/mock/MockFileAPI.ts b/deprecated/src/apis/implementations/mock/MockFileAPI.ts similarity index 97% rename from src/apis/implementations/mock/MockFileAPI.ts rename to deprecated/src/apis/implementations/mock/MockFileAPI.ts index fb573ba..e15db49 100644 --- a/src/apis/implementations/mock/MockFileAPI.ts +++ b/deprecated/src/apis/implementations/mock/MockFileAPI.ts @@ -1,6 +1,6 @@ import type { IFileAPI, TOCItem, LinkData } from '../../interfaces/IFileAPI'; import type { FileMetadata } from '../../interfaces/IFileTreeAPI'; -import { VAULT_PATH } from '../../../config/env'; +import { VAULT_PATH } from '../../../config/vaultConfig'; /** * Mock 文件 API 实现 @@ -8,8 +8,9 @@ import { VAULT_PATH } from '../../../config/env'; */ export class MockFileAPI implements IFileAPI { // baseUrl 参数保留用于接口兼容性,但现在使用 VAULT_PATH - constructor(_baseUrl: string = '/vault') { + constructor(baseUrl: string = '/vaults/Demo') { // 使用 VAULT_PATH 而不是 baseUrl + console.log(`MockFileAPI initialized with baseUrl: ${baseUrl}, using VAULT_PATH: ${VAULT_PATH}`); } /** diff --git a/src/apis/implementations/mock/MockFileTreeAPI.ts b/deprecated/src/apis/implementations/mock/MockFileTreeAPI.ts similarity index 100% rename from src/apis/implementations/mock/MockFileTreeAPI.ts rename to deprecated/src/apis/implementations/mock/MockFileTreeAPI.ts diff --git a/src/apis/implementations/mock/index.ts b/deprecated/src/apis/implementations/mock/index.ts similarity index 100% rename from src/apis/implementations/mock/index.ts rename to deprecated/src/apis/implementations/mock/index.ts diff --git a/src/apis/index.ts b/deprecated/src/apis/index.ts similarity index 100% rename from src/apis/index.ts rename to deprecated/src/apis/index.ts diff --git a/src/apis/interfaces/IFileAPI.ts b/deprecated/src/apis/interfaces/IFileAPI.ts similarity index 100% rename from src/apis/interfaces/IFileAPI.ts rename to deprecated/src/apis/interfaces/IFileAPI.ts diff --git a/src/apis/interfaces/IFileTreeAPI.ts b/deprecated/src/apis/interfaces/IFileTreeAPI.ts similarity index 91% rename from src/apis/interfaces/IFileTreeAPI.ts rename to deprecated/src/apis/interfaces/IFileTreeAPI.ts index b4901c8..4ab9855 100644 --- a/src/apis/interfaces/IFileTreeAPI.ts +++ b/deprecated/src/apis/interfaces/IFileTreeAPI.ts @@ -25,7 +25,8 @@ export interface HeadingData { export interface LinkData { link: string; - relativePath: string; + relativePath?: string; // 可选,某些链接可能没有路径信息 + displayText?: string; // 可选,链接的显示文本 } /** diff --git a/src/apis/interfaces/IGraphAPI.ts b/deprecated/src/apis/interfaces/IGraphAPI.ts similarity index 100% rename from src/apis/interfaces/IGraphAPI.ts rename to deprecated/src/apis/interfaces/IGraphAPI.ts diff --git a/src/apis/interfaces/ISearchAPI.ts b/deprecated/src/apis/interfaces/ISearchAPI.ts similarity index 100% rename from src/apis/interfaces/ISearchAPI.ts rename to deprecated/src/apis/interfaces/ISearchAPI.ts diff --git a/src/apis/interfaces/ITagAPI.ts b/deprecated/src/apis/interfaces/ITagAPI.ts similarity index 100% rename from src/apis/interfaces/ITagAPI.ts rename to deprecated/src/apis/interfaces/ITagAPI.ts diff --git a/src/apis/interfaces/index.ts b/deprecated/src/apis/interfaces/index.ts similarity index 100% rename from src/apis/interfaces/index.ts rename to deprecated/src/apis/interfaces/index.ts diff --git a/src/services/trackingDataService.ts b/deprecated/src/apis/trackingDataService.ts similarity index 100% rename from src/services/trackingDataService.ts rename to deprecated/src/apis/trackingDataService.ts diff --git a/deprecated/src/components/FileExplorer/FileExplorer.tsx b/deprecated/src/components/FileExplorer/FileExplorer.tsx new file mode 100644 index 0000000..c368385 --- /dev/null +++ b/deprecated/src/components/FileExplorer/FileExplorer.tsx @@ -0,0 +1,303 @@ +import { useEffect, useState, useMemo } from 'react'; +import { IconSearch, IconX, IconFile, IconHash } from '@tabler/icons-react'; +import { useVaultStore } from '../../stores/vaultStore'; +import { VAULT_PATH, getMetadataUrl } from '../../config/vaultConfig'; +import { fetchVault } from '../../utils/fetchWithAuth'; +import { useUIStore } from '../../stores/uiStore'; +import { navigateToFile } from '../../utils/routeUtils'; +import { useFileTreeAPI } from '../../hooks/useAPIs'; +import { useSearch } from '../../apis/hooks/useSearchAPI'; +import { ModernFileTree } from './ModernFileTree'; +import type { FileTree } from '../../apis/interfaces/IFileTreeAPI'; +import type { SearchResult } from '../../apis/interfaces/ISearchAPI'; + + +export function FileExplorer() { + const { files, activeFile, setFiles, setMetadata, setLoading, setError } = useVaultStore(); + const fileTreeAPI = useFileTreeAPI(); + const { search } = useSearch(); + const [initialized, setInitialized] = useState(false); + const [searchQuery, setSearchQuery] = useState(''); + const [searchResults, setSearchResults] = useState([]); + const [isSearching, setIsSearching] = useState(false); + + useEffect(() => { + if (!initialized) { + loadFiles(); + setInitialized(true); + } + }, [initialized]); + + const loadFiles = async () => { + try { + setLoading(true); + setError(null); + + // 使用真实的 FileTreeAPI 加载文件树 + const fileStructure = await fileTreeAPI.getFileTree(); + setFiles(fileStructure); + + // 同时加载并存储 metadata 到 vaultStore + const metadataArray = await loadMetadata(); + if (metadataArray) { + const metadataMap = buildMetadataMap(metadataArray); + setMetadata(metadataMap); + console.log('Loaded metadata for tags:', Object.keys(metadataMap).length, 'files'); + } + + } catch (error) { + console.error('Failed to load files:', error); + setError(error instanceof Error ? error.message : '加载文件失败'); + } finally { + setLoading(false); + } + }; + + // 加载 metadata.json + const loadMetadata = async () => { + try { + const response = await fetchVault(getMetadataUrl()); + if (!response.ok) { + console.warn('Metadata file not found'); + return null; + } + return await response.json(); + } catch (error) { + console.warn('Failed to load metadata:', error); + return null; + } + }; + + // 将 metadata 数组转换为 path -> FileMetadata 的映射 + const buildMetadataMap = (metadataArray: any[]) => { + const metadataMap: Record = {}; + + metadataArray.forEach(item => { + if (item.relativePath) { + const normalizedPath = `/${item.relativePath}`; + metadataMap[normalizedPath] = { + title: item.fileName, + tags: item.tags || [], + aliases: item.aliases || [], + frontmatter: item.frontmatter || {}, + headings: item.headings || [], + links: item.links || [], + backlinks: item.backlinks || [] + }; + } + }); + + return metadataMap; + }; + + // 实时搜索(防抖) + useEffect(() => { + if (!searchQuery.trim()) { + setSearchResults([]); + setIsSearching(false); + return; + } + + const timeoutId = setTimeout(async () => { + setIsSearching(true); + try { + const results = await search(searchQuery); + setSearchResults(results); + } catch (error) { + console.error('Search failed:', error); + setSearchResults([]); + } finally { + setIsSearching(false); + } + }, 300); // 300ms 防抖 + + return () => clearTimeout(timeoutId); + }, [searchQuery, search]); + + const handleFileSelect = async (path: string) => { + // 使用路由导航到文件 + navigateToFile(path); + console.log('Selected file:', path); + + // 在手机端点击文件后收回抽屉 - 使用正确的 setMobileDropdownOpen + const { isMobile, setMobileDropdownOpen } = useUIStore.getState(); + if (isMobile) { + setMobileDropdownOpen(false); + } + }; + + const handleSearchResultClick = (filePath: string) => { + navigateToFile(filePath); + + // 在手机端点击搜索结果后收回抽屉 - 使用正确的 setMobileDropdownOpen + const { isMobile, setMobileDropdownOpen } = useUIStore.getState(); + if (isMobile) { + setMobileDropdownOpen(false); + } + }; + + // 过滤文件树 + const filteredFiles = useMemo(() => { + if (!searchQuery.trim()) return files; + + const filterTree = (items: FileTree[]): FileTree[] => { + return items.reduce((acc: FileTree[], item) => { + const matchesSearch = item.name.toLowerCase().includes(searchQuery.toLowerCase()); + + if (item.type === 'folder' && item.children) { + const filteredChildren = filterTree(item.children); + if (filteredChildren.length > 0 || matchesSearch) { + acc.push({ + ...item, + children: filteredChildren + }); + } + } else if (item.type === 'file' && matchesSearch) { + acc.push(item); + } + + return acc; + }, []); + }; + + return filterTree(files); + }, [files, searchQuery]); + + const clearSearch = () => { + setSearchQuery(''); + }; + + const isTagSearch = searchQuery.startsWith('#'); + + return ( +
+
+ {/* 搜索输入框 */} +
+
+ setSearchQuery(e.target.value)} + className="w-full px-3 py-2 text-sm bg-[var(--background-secondary)] border border-[var(--background-modifier-border)] rounded focus:outline-none focus:border-[var(--interactive-accent)] text-[var(--text-normal)] placeholder-[var(--text-muted)] h-8" + /> +
+ + {/* 清除按钮 */} + {searchQuery && ( + + )} + + {/* 搜索状态指示 */} +
+ {isSearching ? ( +
+ ) : ( + + )} +
+
+
+ +
+ {searchQuery.trim() ? ( + /* 搜索模式 */ + isSearching ? ( +
+
+
+ Searching... +
+
+ ) : searchResults.length > 0 ? ( +
+
+ {searchResults.length} result{searchResults.length !== 1 ? 's' : ''} + {isTagSearch ? ' for tag' : ''} "{searchQuery}" +
+ {searchResults.map((result, index) => ( +
+ {/* File Header */} +
handleSearchResultClick(result.filePath)} + > +
+ {isTagSearch ? ( + + ) : ( + + )} + + {result.fileName} + + + {result.matchCount} match{result.matchCount !== 1 ? 'es' : ''} + +
+
+ {result.filePath} +
+
+ + {/* Matches */} +
+ {result.matches.slice(0, 5).map((match, matchIndex) => ( +
handleSearchResultClick(result.filePath)} + > +
+ {match.lineNumber && `Line ${match.lineNumber}`} +
+
+
+ ))} + {result.matches.length > 5 && ( +
+ +{result.matches.length - 5} more matches +
+ )} +
+
+ ))} +
+ ) : ( +
+ No results found for "{searchQuery}" +
+ ) + ) : ( + /* 文件树模式 */ +
+ {files.length === 0 ? ( +
+ Loading files... +
+ ) : ( + + )} +
+ )} +
+
+ ); +} \ No newline at end of file diff --git a/src/components/FileExplorer/ModernFileTree.tsx b/deprecated/src/components/FileExplorer/ModernFileTree.tsx similarity index 98% rename from src/components/FileExplorer/ModernFileTree.tsx rename to deprecated/src/components/FileExplorer/ModernFileTree.tsx index c0bd6ce..604558a 100644 --- a/src/components/FileExplorer/ModernFileTree.tsx +++ b/deprecated/src/components/FileExplorer/ModernFileTree.tsx @@ -168,7 +168,7 @@ export function ModernFileTree({ files: propFiles, activeFile, onFileSelect }: M } return ( -
+
{files.map((file) => ( { + source: D3Node | string; + target: D3Node | string; +} + +export function GlobalGraph() { + const graphAPI = useGraphAPI(); + const svgRef = useRef(null); + const [graphData, setGraphData] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + // 加载全局图谱数据 + useEffect(() => { + const loadGlobalGraphData = async () => { + try { + setLoading(true); + setError(null); + const data = await graphAPI.getGlobalGraph(); + console.log('📊 Loaded global graph data:', data); + setGraphData(data); + } catch (err) { + console.error('❌ Failed to load global graph data:', err); + setError('无法加载全局图谱数据'); + } finally { + setLoading(false); + } + }; + + loadGlobalGraphData(); + }, [graphAPI]); + + // 渲染 D3 力导向图 + useEffect(() => { + if (!graphData || !svgRef.current) return; + + const svg = d3.select(svgRef.current); + let container: d3.Selection = svg.select('.graph-container'); + + // 清除之前的内容 + svg.selectAll('*').remove(); + + // 重新创建容器并添加缩放和平移功能 + container = svg.append('g').attr('class', 'graph-container'); + + const zoom = d3.zoom() + .scaleExtent([0.1, 4]) + .on('zoom', (event) => { + container.attr('transform', event.transform); + }); + + svg.call(zoom); + + const width = 800; + const height = 600; + + // 准备数据 + const nodes: D3Node[] = graphData.nodes.map(node => ({ ...node })); + const links: D3Link[] = graphData.edges.map(edge => ({ + ...edge, + source: edge.from, + target: edge.to + })); + + // 创建力仿真 + const simulation = d3.forceSimulation(nodes) + .force('link', d3.forceLink(links).id((d: any) => d.id).distance(100).strength(0.6)) + .force('charge', d3.forceManyBody().strength(-300)) + .force('center', d3.forceCenter(width / 2, height / 2)) + .force('collision', d3.forceCollide().radius((d: any) => { + if (d.type === 'tag') return 15; + return 20; + })); + + // 创建连线 + const link = container.append('g') + .attr('class', 'links') + .selectAll('line') + .data(links) + .enter().append('line') + .attr('stroke', 'var(--text-muted)') + .attr('stroke-opacity', 0.6) + .attr('stroke-width', 1) + .attr('stroke-dasharray', (d: any) => { + // 检查连线的两端是否有标签节点 + const sourceNode = nodes.find(n => n.id === d.source.id || n.id === d.source); + const targetNode = nodes.find(n => n.id === d.target.id || n.id === d.target); + + // 如果有一端是标签节点,使用虚线 + if (sourceNode?.type === 'tag' || targetNode?.type === 'tag') { + return '5,5'; // 虚线样式 + } + return 'none'; // 实线 + }); + + // 创建节点组 + const node = container.append('g') + .attr('class', 'nodes') + .selectAll('g') + .data(nodes) + .enter().append('g') + .attr('class', 'node') + .style('cursor', 'pointer'); + + // 添加节点圆圈 + node.append('circle') + .attr('r', (d: D3Node) => { + if (d.type === 'tag') return 8; + // 根据连接数调整大小 + const connectionCount = d.size || 1; + return Math.min(20, Math.max(8, connectionCount * 3)); + }) + .attr('fill', (d: D3Node) => { + if (d.type === 'tag') return '#dc2626'; + return 'var(--interactive-accent)'; + }) + .attr('stroke', 'var(--background-primary)') + .attr('stroke-width', 2) + .on('click', function(event: MouseEvent, d: D3Node) { + // 阻止事件冒泡 + event.stopPropagation(); + + // 只有文件节点(非标签节点)才能跳转 + if (d.type !== 'tag' && d.path) { + console.log(`📊 Navigating to file from global graph: ${d.path}`); + navigateToFile(d.path); + } + }); + + // 添加节点标签 + node.append('text') + .text((d: D3Node) => { + // 截断过长的标签 + const label = d.label; + return label.length > 15 ? label.substring(0, 12) + '...' : label; + }) + .attr('font-size', '10px') + .attr('fill', 'var(--text-normal)') + .attr('text-anchor', 'middle') + .attr('dy', '.35em') + .attr('pointer-events', 'none'); + + // 添加悬停提示 + node.append('title') + .text((d: D3Node) => `${d.title || d.label}${d.size ? ` (${d.size} connections)` : ''}`); + + // 添加拖拽功能到节点组(不会干扰圆圈的点击事件) + node.call(d3.drag() + .on('start', dragstarted) + .on('drag', dragged) + .on('end', dragended)); + + // 更新位置 + simulation.on('tick', () => { + // 添加边界约束,确保所有节点都在视口内 + nodes.forEach(d => { + const radius = d.type === 'tag' ? 15 : 25; // 节点半径 + d.x = Math.max(radius, Math.min(width - radius, d.x!)); + d.y = Math.max(radius, Math.min(height - radius, d.y!)); + }); + + link + .attr('x1', (d: any) => d.source.x) + .attr('y1', (d: any) => d.source.y) + .attr('x2', (d: any) => d.target.x) + .attr('y2', (d: any) => d.target.y); + + node + .attr('transform', (d: D3Node) => `translate(${d.x},${d.y})`); + }); + + // 拖拽功能 + function dragstarted(event: d3.D3DragEvent) { + if (!event.active) simulation.alphaTarget(0.3).restart(); + event.subject.fx = event.subject.x; + event.subject.fy = event.subject.y; + } + + function dragged(event: d3.D3DragEvent) { + event.subject.fx = event.x; + event.subject.fy = event.y; + } + + function dragended(event: d3.D3DragEvent) { + if (!event.active) simulation.alphaTarget(0); + event.subject.fx = null; + event.subject.fy = null; + } + + // 清理函数 + return () => { + simulation.stop(); + }; + }, [graphData]); + + if (loading) { + return ( +
+
+
+ Global Graph +
+
加载中...
+
+
+ ); + } + + if (error) { + return ( +
+
+
+ Global Graph +
+
{error}
+
+
+ ); + } + + if (!graphData || graphData.nodes.length === 0) { + return ( +
+
+
+ Global Graph +
+
🕸️
+
没有找到任何图谱数据
+
+
+ ); + } + + return ( +
+
+ Global Graph +
+ +
+ {graphData.nodes.length} 个节点, {graphData.edges.length} 条连接 +
+ +
+ + + +
+
+ ); +} \ No newline at end of file diff --git a/deprecated/src/components/Graph/LocalGraph.tsx b/deprecated/src/components/Graph/LocalGraph.tsx new file mode 100644 index 0000000..37db166 --- /dev/null +++ b/deprecated/src/components/Graph/LocalGraph.tsx @@ -0,0 +1,416 @@ + +import { useEffect, useRef, useState } from 'react'; +import * as d3 from 'd3'; +import { useGraphAPI } from '../../hooks/useAPIs'; +import { useVaultStore } from '../../stores/vaultStore'; +import { navigateToFile } from '../../utils/routeUtils'; +import type { GraphData, GraphNode, GraphEdge } from '../../apis/interfaces/IGraphAPI'; + +interface D3Node extends GraphNode { + x?: number; + y?: number; + fx?: number | null; + fy?: number | null; + path?: string; // 添加缺失的 path 属性 +} + +interface D3Link extends Omit { + source: D3Node | string; + target: D3Node | string; +} + +export function LocalGraph() { + const graphAPI = useGraphAPI(); + const svgRef = useRef(null); + const [graphData, setGraphData] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const { activeFile } = useVaultStore(); + + // 加载当前文件的本地图谱数据 + useEffect(() => { + const loadLocalGraphData = async () => { + if (!activeFile) { + setGraphData(null); + setLoading(false); + return; + } + + try { + setLoading(true); + setError(null); + const data = await graphAPI.getLocalGraph(activeFile); + console.log('📊 Loaded local graph data for', activeFile, ':', data); + setGraphData(data); + } catch (err) { + console.error('❌ Failed to load local graph data:', err); + setError('无法加载本地图谱数据'); + } finally { + setLoading(false); + } + }; + + loadLocalGraphData(); + }, [graphAPI, activeFile]); + + // 渲染 D3 力导向图 + useEffect(() => { + if (!graphData || !svgRef.current) return; + + const svg = d3.select(svgRef.current); + let container: d3.Selection = svg.select('.graph-container'); + + // 清除之前的内容 + svg.selectAll('*').remove(); + + // 重新创建容器并添加缩放和平移功能 + container = svg.append('g').attr('class', 'graph-container'); + + const zoom = d3.zoom() + .scaleExtent([0.1, 4]) + .on('zoom', (event) => { + container.attr('transform', event.transform); + }); + + svg.call(zoom); + + const width = 400; + const height = 300; + + // 准备数据 + const nodes: D3Node[] = graphData.nodes.map(node => ({ ...node })); + const links: D3Link[] = graphData.edges.map(edge => ({ + ...edge, + source: edge.from, + target: edge.to + })); + + // 找到当前文件对应的节点(应该是中心节点) + const currentFileNode = activeFile ? nodes.find(node => { + // 解码 activeFile 以便与节点 title 进行匹配 + const decodedActiveFile = decodeURIComponent(activeFile); + const decodedFileName = decodedActiveFile.replace('.md', ''); + + // 去除前导斜杠进行匹配 + const normalizedDecodedFileName = decodedFileName.startsWith('/') ? decodedFileName.slice(1) : decodedFileName; + const normalizedActiveFile = activeFile.startsWith('/') ? activeFile.slice(1) : activeFile; + + console.log('🔍 Looking for current file node:', { + activeFile, + decodedActiveFile, + decodedFileName, + normalizedDecodedFileName, + nodeTitle: node.title, + match: node.title === normalizedDecodedFileName || node.title === decodedFileName || node.title === decodedActiveFile + }); + + return node.title === normalizedDecodedFileName || // 主要匹配逻辑 + node.title === decodedFileName || + node.title === decodedActiveFile || + node.title === normalizedActiveFile.replace('.md', '') || + node.title === activeFile.replace('.md', '') || + node.title === activeFile; + }) : null; + + // 如果有当前文件节点,将其固定在中心 + if (currentFileNode) { + currentFileNode.fx = width / 2; + currentFileNode.fy = height / 2; + } + + // 创建力仿真 - 根据节点数量调整参数 + const nodeCount = nodes.length; + const linkDistance = nodeCount <= 3 ? 200 : 80; // 节点少时增加距离 + const chargeStrength = nodeCount <= 3 ? -1200 : -400; // 节点少时增加排斥力 + + const simulation = d3.forceSimulation(nodes) + .force('link', d3.forceLink(links).id((d: any) => d.id).distance(linkDistance).strength(0.6)) + .force('charge', d3.forceManyBody().strength(chargeStrength)) + .force('center', d3.forceCenter(width / 2, height / 2)) + .force('collision', d3.forceCollide().radius((d: any) => { + if (d.type === 'tag') return 20; // 增加碰撞半径 + if (currentFileNode && d.id === currentFileNode.id) return 40; // 当前节点更大的碰撞半径 + return 25; // 其他节点也增加碰撞半径 + })); + + // 创建连线 + const link = container.append('g') + .attr('class', 'links') + .selectAll('line') + .data(links) + .enter().append('line') + .attr('stroke', 'var(--text-muted)') + .attr('stroke-opacity', 0.6) + .attr('stroke-width', 1) + .attr('stroke-dasharray', (d: any) => { + // 检查连线的两端是否有标签节点 + const sourceNode = nodes.find(n => n.id === d.source.id || n.id === d.source); + const targetNode = nodes.find(n => n.id === d.target.id || n.id === d.target); + + // 如果有一端是标签节点,使用虚线 + if (sourceNode?.type === 'tag' || targetNode?.type === 'tag') { + return '5,5'; // 虚线样式 + } + return 'none'; // 实线 + }); + + // 创建节点组 + const node = container.append('g') + .attr('class', 'nodes') + .selectAll('g') + .data(nodes) + .enter().append('g') + .attr('class', 'node') + .style('cursor', 'pointer'); + + // 添加节点圆圈 + node.append('circle') + .attr('r', (d: D3Node) => { + if (d.type === 'tag') return 8; + // 当前文件节点更大 + if (currentFileNode && d.id === currentFileNode.id) return 15; + return 12; + }) + .attr('fill', (d: D3Node) => { + if (d.type === 'tag') return '#dc2626'; + + // 当前文件节点 - 使用蓝色(红绿色盲友好) + if (currentFileNode && d.id === currentFileNode.id) { + return '#2563eb'; // 蓝色 + } + + // 区分引用和被引用的节点 + if (currentFileNode) { + // 检查是否是当前文件引用的节点(outbound) + const isOutboundRef = graphData.edges.some(edge => + edge.from === currentFileNode.id && edge.to === d.id + ); + + // 检查是否是引用当前文件的节点(inbound) + const isInboundRef = graphData.edges.some(edge => + edge.from === d.id && edge.to === currentFileNode.id + ); + + if (isOutboundRef) { + return '#f59e0b'; // 橙色 - 当前文件引用的其他文件 + } else if (isInboundRef) { + return '#8b5cf6'; // 紫色 - 引用当前文件的其他文件 + } + } + + return 'var(--interactive-accent)'; + }) + .on('click', function(event: MouseEvent, d: D3Node) { + // 阻止事件冒泡 + event.stopPropagation(); + + // 只有文件节点(非标签节点)才能跳转,且不是当前文件 + if (d.type !== 'tag' && d.path && (!currentFileNode || d.id !== currentFileNode.id)) { + console.log(`📊 Navigating to file from local graph: ${d.path}`); + navigateToFile(d.path); + } + }); + + // 添加节点标签 + node.append('text') + .text((d: D3Node) => d.label) + .attr('font-size', '10px') + .attr('fill', 'var(--text-normal)') + .attr('text-anchor', 'middle') + .attr('dy', '.35em') + .attr('pointer-events', 'none'); + + // 添加悬停提示 + node.append('title') + .text((d: D3Node) => d.title || d.label); + + // 添加拖拽功能到节点组(不会干扰圆圈的点击事件) + node.call(d3.drag() + .on('start', dragstarted) + .on('drag', dragged) + .on('end', dragended)); + + // 更新位置 + simulation.on('tick', () => { + // 添加边界约束,确保所有节点都在视口内 + nodes.forEach(d => { + const radius = d.type === 'tag' ? 15 : (currentFileNode && d.id === currentFileNode.id ? 25 : 20); // 节点半径 + d.x = Math.max(radius, Math.min(width - radius, d.x!)); + d.y = Math.max(radius, Math.min(height - radius, d.y!)); + }); + + link + .attr('x1', (d: any) => d.source.x) + .attr('y1', (d: any) => d.source.y) + .attr('x2', (d: any) => d.target.x) + .attr('y2', (d: any) => d.target.y); + + node + .attr('transform', (d: D3Node) => `translate(${d.x},${d.y})`); + }); + + // 拖拽功能 + function dragstarted(event: d3.D3DragEvent) { + if (!event.active) simulation.alphaTarget(0.3).restart(); + // 如果是当前文件节点,不允许拖拽离开中心 + if (currentFileNode && event.subject.id === currentFileNode.id) { + return; + } + event.subject.fx = event.subject.x; + event.subject.fy = event.subject.y; + } + + function dragged(event: d3.D3DragEvent) { + // 如果是当前文件节点,保持在中心 + if (currentFileNode && event.subject.id === currentFileNode.id) { + event.subject.fx = width / 2; + event.subject.fy = height / 2; + return; + } + event.subject.fx = event.x; + event.subject.fy = event.y; + } + + function dragended(event: d3.D3DragEvent) { + if (!event.active) simulation.alphaTarget(0); + // 如果是当前文件节点,保持固定在中心 + if (currentFileNode && event.subject.id === currentFileNode.id) { + event.subject.fx = width / 2; + event.subject.fy = height / 2; + return; + } + event.subject.fx = null; + event.subject.fy = null; + } + + // 清理函数 + return () => { + simulation.stop(); + }; + }, [graphData]); + + if (loading) { + return ( +
+
+ Local Graph +
+
+
加载中...
+
+
+ ); + } + + if (error) { + return ( +
+
+ Local Graph +
+
+
{error}
+
+
+ ); + } + + if (!activeFile) { + return ( +
+
+ Local Graph +
+
+
+
📄
+
选择一个文件查看本地图谱
+
+
+
+ ); + } + + return ( +
+
+ 直接关系图 +
+ + {graphData && ( +
+ {/*
{graphData.nodes.length} 个节点, {graphData.edges.length} 条连接
*/} +
+ {/*
图例:
*/} +
+
+
+ 当前文件 +
+
+
+ 引用文件 +
+
+
+ 被引用文件 +
+
+
+ 标签 +
+
+
+
+ )} + +
+ + + +
+
+ ); +} \ No newline at end of file diff --git a/deprecated/src/components/Layout/AppLayout.tsx b/deprecated/src/components/Layout/AppLayout.tsx new file mode 100644 index 0000000..e12e3f7 --- /dev/null +++ b/deprecated/src/components/Layout/AppLayout.tsx @@ -0,0 +1,189 @@ +import { useEffect, useRef } from 'react'; +import { useUIStore } from '../../stores/uiStore'; +import { LeftSidebar } from './LeftSidebar'; +import { MainContent } from './MainContent'; +import { RightSidebar } from './RightSidebar'; +import { StatusBar } from './StatusBar'; +import { ResizeHandle } from './ResizeHandle'; +import { MobileDrawer } from './MobileDrawer'; +import { LeftRibbon } from './LeftRibbon'; +import { UnifiedMobileDrawer } from './UnifiedMobileDrawer'; + +export function AppLayout() { + const { + leftSidebarOpen, + rightSidebarOpen, + leftSidebarWidth, + rightSidebarWidth, + isMobile, + isTablet, + mobileLeftDrawerOpen, + mobileRightDrawerOpen, + activeRightPanel, + setIsMobile, + setIsTablet, + setLeftSidebarWidth, + setRightSidebarWidth, + setMobileLeftDrawerOpen, + setMobileRightDrawerOpen, + theme + } = useUIStore(); + + const leftSidebarRef = useRef(null); + const rightSidebarRef = useRef(null); + + // Handle responsive behavior with minimal debouncing + useEffect(() => { + let timeoutId: NodeJS.Timeout; + + const handleResize = () => { + clearTimeout(timeoutId); + timeoutId = setTimeout(() => { + const width = window.innerWidth; + const newIsMobile = width < 768; + const newIsTablet = width >= 768 && width < 1024; + + // Only update if values actually changed to prevent unnecessary re-renders + if (newIsMobile !== isMobile) setIsMobile(newIsMobile); + if (newIsTablet !== isTablet) { + // When switching from tablet to desktop, keep the same sidebar width (300px) + if (isTablet && !newIsTablet && !newIsMobile) { + setLeftSidebarWidth(300); + } + setIsTablet(newIsTablet); + } + }, 20); // 20ms debounce - responsive but not too frequent + }; + + handleResize(); + window.addEventListener('resize', handleResize); + return () => { + window.removeEventListener('resize', handleResize); + clearTimeout(timeoutId); + }; + }, [isMobile, isTablet, setIsMobile, setIsTablet, setLeftSidebarWidth]); + + // Apply theme + useEffect(() => { + document.documentElement.setAttribute('data-theme', theme); + }, [theme]); + + // Flex layout doesn't need template calculation anymore + + return ( +
+ + {/* Main workspace - Flex layout */} +
+
+ {/* Left Ribbon - show on desktop and tablet only */} + {!isMobile && ( +
+ +
+ )} + + {/* Left Sidebar - show on desktop and tablet when open */} +
+ {leftSidebarOpen && !isMobile && ( + + )} +
+ + {/* Left Resize handle for desktop - between left sidebar and main content */} + {leftSidebarOpen && !isMobile && !isTablet && ( + + )} + + {/* Main Content */} +
+ +
+ + {/* Right Resize handle for desktop - between main content and right sidebar */} + {rightSidebarOpen && !isMobile && !isTablet && ( + + )} + + {/* Right Sidebar - only show on desktop (not tablet or mobile) */} +
+ {rightSidebarOpen && !isMobile && !isTablet && ( + + )} +
+
+
+ + {/* Status Bar - Desktop and Tablet only */} + {/* 移动端模拟正常显示,真机不显示 */} + {!isMobile && } + + {/* Mobile Drawers */} + {isMobile && ( + <> + {/* Legacy drawers for compatibility */} + setMobileLeftDrawerOpen(false)} + side="left" + title="Files" + > + + + + setMobileRightDrawerOpen(false)} + side="right" + title={ + activeRightPanel === 'outline' ? 'Outline' : + activeRightPanel === 'graph' ? 'Graph' : 'Tags' + } + > + + + + {/* New unified mobile drawer */} + + + )} + +
+ ); +} \ No newline at end of file diff --git a/src/components/Layout/CustomScrollbar.tsx b/deprecated/src/components/Layout/CustomScrollbar.tsx similarity index 100% rename from src/components/Layout/CustomScrollbar.tsx rename to deprecated/src/components/Layout/CustomScrollbar.tsx diff --git a/deprecated/src/components/Layout/LeftRibbon.tsx b/deprecated/src/components/Layout/LeftRibbon.tsx new file mode 100644 index 0000000..f5de74e --- /dev/null +++ b/deprecated/src/components/Layout/LeftRibbon.tsx @@ -0,0 +1,234 @@ +import { IconFiles, IconNetwork, IconDice, IconHome, IconSettings, IconMoon, IconSun } from '@tabler/icons-react'; +import { ActionIcon, Tooltip } from '@mantine/core'; +import { useUIStore } from '../../stores/uiStore'; +import { useVaultStore } from '../../stores/vaultStore'; +import { getVaultConfig } from '../../config/vaultConfig'; +import { navigateToFile, navigateToGlobalGraph, getCurrentRoute } from '../../utils/routeUtils'; +import { useState, useCallback, useEffect } from 'react'; +import type { FileTree } from '../../apis/interfaces'; + +export function LeftRibbon() { + const { + toggleLeftSidebar, + leftSidebarOpen, + mainContentView, + setMainContentView, + theme, + setTheme + } = useUIStore(); + const { activeFile, files } = useVaultStore(); + + const [lastClickedButton, setLastClickedButton] = useState('files'); // 默认 files 按钮激活 + + // Initialize theme attribute on component mount and when theme changes + useEffect(() => { + document.body.setAttribute('data-theme', theme); + }, [theme]); + + // 监听 URL 变化,同步按钮状态(用于直接访问 URL 的情况) + useEffect(() => { + const handleRouteChange = () => { + const route = getCurrentRoute(); + console.log('🔄 Route changed:', route); + // 只处理图谱路由的特殊情况 + if (route.type === 'global-graph') { + console.log('🔄 Setting graph button active'); + setLastClickedButton('graph'); + } + // 其他路由保持用户的点击状态不变 + }; + + // 初始化时执行一次 + handleRouteChange(); + + // 监听 hash 变化(用于处理直接在地址栏输入 URL 的情况) + window.addEventListener('hashchange', handleRouteChange); + + return () => { + window.removeEventListener('hashchange', handleRouteChange); + }; + }, []); + + // 监听 mainContentView 变化,当通过其他方式切换到 globalGraph 时也要同步按钮状态 + useEffect(() => { + if (mainContentView === 'globalGraph') { + setLastClickedButton('graph'); + } + }, [mainContentView]); + + const toggleTheme = useCallback(() => { + const newTheme = theme === 'light' ? 'dark' : 'light'; + setTheme(newTheme); + + // Apply theme to body + document.body.setAttribute('data-theme', newTheme); + + // Trigger theme change event for other components + document.dispatchEvent(new CustomEvent('obsidian-theme-changed', { + detail: { theme: newTheme } + })); + }, [theme, setTheme]); + + // 从文件树中收集所有 markdown 文件 + const collectMarkdownFiles = (fileNodes: FileTree[]): string[] => { + const mdFiles: string[] = []; + + const traverse = (nodes: FileTree[]) => { + for (const node of nodes) { + if (node.type === 'file' && node.path.endsWith('.md')) { + mdFiles.push(node.path); + } + if (node.children) { + traverse(node.children); + } + } + }; + + traverse(fileNodes); + return mdFiles; + }; + + // 随机打开一篇文章 + const openRandomNote = () => { + const allMarkdownFiles = collectMarkdownFiles(files); + + if (allMarkdownFiles.length === 0) { + console.warn('No markdown files found in vault'); + return; + } + + // 排除当前文件,避免重复选择 + const availableFiles = allMarkdownFiles.filter(file => file !== activeFile); + const filesToChooseFrom = availableFiles.length > 0 ? availableFiles : allMarkdownFiles; + + // 随机选择一个文件 + const randomIndex = Math.floor(Math.random() * filesToChooseFrom.length); + const randomFile = filesToChooseFrom[randomIndex]; + + console.log(`🎲 Opening random note: ${randomFile}`); + navigateToFile(randomFile); + // setMainContentView('file'); // 这个在 onClick 中处理 + }; + + const ribbonItems = [ + { + id: 'home', + icon: IconHome, + label: 'Home', + onClick: () => { + // Navigate to configured index file with URL update + const config = getVaultConfig(); + navigateToFile(config.indexFile); + setMainContentView('file'); + setLastClickedButton('home'); + } + }, + { + id: 'files', + icon: IconFiles, + label: 'File Explorer', + onClick: () => { + // 切换到文件视图并打开文件浏览器 + setMainContentView('file'); + if (!leftSidebarOpen) { + toggleLeftSidebar(); + } + setLastClickedButton('files'); + } + }, + { + id: 'graph', + icon: IconNetwork, + label: 'Graph View', + onClick: () => { + console.log('🔄 Graph button clicked, switching to globalGraph view'); + // Always go to graph view when clicked + setMainContentView('globalGraph'); + navigateToGlobalGraph(); + setLastClickedButton('graph'); + } + }, + { + id: 'random', + icon: IconDice, + label: 'Random Note', + onClick: () => { + openRandomNote(); + setMainContentView('file'); + setLastClickedButton('random'); + } + } + ]; + + return ( +
+ {/* Logo/Brand - 小尺寸 */} +
+ Obsidian Logo +
+ + {/* Ribbon Items */} +
+ {ribbonItems.map((item) => { + const Icon = item.icon; + + // 简单逻辑:只有最后点击的按钮是激活的 + const isActive = item.id === lastClickedButton; + + return ( + + + + + + ); + })} +
+ + {/* Spacer */} +
+ + {/* Bottom items */} +
+ + + {theme === 'dark' ? : } + + + + + + + + +
+
+ ); +} \ No newline at end of file diff --git a/deprecated/src/components/Layout/LeftSidebar.tsx b/deprecated/src/components/Layout/LeftSidebar.tsx new file mode 100644 index 0000000..0669f90 --- /dev/null +++ b/deprecated/src/components/Layout/LeftSidebar.tsx @@ -0,0 +1,94 @@ +import { IconFiles, IconList, IconNetwork, IconTags } from '@tabler/icons-react'; +import { Button } from '@mantine/core'; +import { useUIStore } from '../../stores/uiStore'; +import { FileExplorer } from '../FileExplorer/FileExplorer'; +import { TOC } from '../MarkdownViewer/TOC'; +import { LocalGraph } from '../Graph/LocalGraph'; +import { TagsPanel } from '../MarkdownViewer/TagsPanel'; + +export function LeftSidebar() { + const { activeMobileTab, setActiveMobileTab, activeLeftPanel, setActiveLeftPanel, isMobile, isTablet } = useUIStore(); + + // 桌面端显示 Files + Tags 切换 + if (!isMobile && !isTablet) { + return ( +
+ {/* Desktop Tab Headers */} +
+ + + + +
+ + {/* Desktop Content */} +
+ {activeLeftPanel === 'files' && } + {activeLeftPanel === 'tags' && } +
+
+ ); + } + + // 平板端显示标签切换 + const tabs = [ + { id: 'files' as const, label: 'Files', icon: IconFiles, component: FileExplorer }, + { id: 'outline' as const, label: 'Outline', icon: IconList, component: TOC }, + { id: 'graph' as const, label: 'Graph', icon: IconNetwork, component: LocalGraph }, + { id: 'tags' as const, label: 'Tags', icon: IconTags, component: TagsPanel }, + ]; + + const ActiveComponent = tabs.find(tab => tab.id === activeMobileTab)?.component || FileExplorer; + + return ( +
+ {/* Tab Bar - 只在平板端显示 */} +
+ + {tabs.map((tab) => ( + + ))} + +
+ + {/* Content */} +
+ +
+
+ ); +} \ No newline at end of file diff --git a/deprecated/src/components/Layout/MainContent.tsx b/deprecated/src/components/Layout/MainContent.tsx new file mode 100644 index 0000000..9a27dac --- /dev/null +++ b/deprecated/src/components/Layout/MainContent.tsx @@ -0,0 +1,43 @@ +import { useUIStore } from '../../stores/uiStore'; +import { useVaultStore } from '../../stores/vaultStore'; +import { MarkdownViewer } from '../MarkdownViewer/MarkdownViewer'; +import { GlobalGraph } from '../Graph/GlobalGraph'; +import { ViewHeader } from './ViewHeader'; +import { useScrollPositionPersistence } from '../../hooks/useScrollPositionPersistence'; + +export function MainContent() { + const { mainContentView } = useUIStore(); + const { activeFile } = useVaultStore(); + + // Use scroll position persistence hook + const scrollContainerRef = useScrollPositionPersistence(activeFile); + + return ( +
+ {/* Header - use sticky positioning within the main content area */} +
+ +
+ + {/* Content */} +
+ {mainContentView === 'globalGraph' ? ( + + ) : ( + <> + {activeFile ? ( + + ) : ( +
+
+

Welcome to Helenite

+

Select a file from the sidebar to get started

+
+
+ )} + + )} +
+
+ ); +} \ No newline at end of file diff --git a/src/components/Layout/MobileDrawer.tsx b/deprecated/src/components/Layout/MobileDrawer.tsx similarity index 98% rename from src/components/Layout/MobileDrawer.tsx rename to deprecated/src/components/Layout/MobileDrawer.tsx index 48c1cb8..ad5ca19 100644 --- a/src/components/Layout/MobileDrawer.tsx +++ b/deprecated/src/components/Layout/MobileDrawer.tsx @@ -51,6 +51,7 @@ export function MobileDrawer({ isOpen, onClose, side, children, title }: MobileD {/* Drawer */}
(null); + const contentRef = useRef(null); + const [isVisible, setIsVisible] = useState(false); + const [isAnimating, setIsAnimating] = useState(false); + + // 主题切换 + const toggleTheme = useCallback(() => { + const newTheme = theme === 'light' ? 'dark' : 'light'; + setTheme(newTheme); + document.body.setAttribute('data-theme', newTheme); + document.dispatchEvent(new CustomEvent('obsidian-theme-changed', { + detail: { theme: newTheme } + })); + }, [theme, setTheme]); + + // 收集所有 markdown 文件 + const collectMarkdownFiles = (fileNodes: FileTree[]): string[] => { + const mdFiles: string[] = []; + const traverse = (nodes: FileTree[]) => { + for (const node of nodes) { + if (node.type === 'file' && node.path.endsWith('.md')) { + mdFiles.push(node.path); + } + if (node.children) { + traverse(node.children); + } + } + }; + traverse(fileNodes); + return mdFiles; + }; + + // 随机打开一篇文章 + const openRandomNote = useCallback(() => { + const allMarkdownFiles = collectMarkdownFiles(files); + if (allMarkdownFiles.length === 0) { + console.warn('No markdown files found in vault'); + return; + } + const availableFiles = allMarkdownFiles.filter(file => file !== activeFile); + const filesToChooseFrom = availableFiles.length > 0 ? availableFiles : allMarkdownFiles; + const randomIndex = Math.floor(Math.random() * filesToChooseFrom.length); + const randomFile = filesToChooseFrom[randomIndex]; + console.log(`🎲 Opening random note: ${randomFile}`); + navigateToFile(randomFile); + setMainContentView('file'); + setMobileDropdownOpen(false); // 关闭下拉菜单 + }, [files, activeFile, setMainContentView, setMobileDropdownOpen]); + + // 打开主页 + const goHome = useCallback(() => { + const config = getVaultConfig(); + navigateToFile(config.indexFile); + setMainContentView('file'); + setMobileDropdownOpen(false); + }, [setMainContentView, setMobileDropdownOpen]); + + // 打开全局图谱 + const openGlobalGraph = useCallback(() => { + setMainContentView('globalGraph'); + navigateToGlobalGraph(); + setMobileDropdownOpen(false); + }, [setMainContentView, setMobileDropdownOpen]); + + // Handle visibility and animation states + useEffect(() => { + if (mobileDropdownOpen) { + setIsVisible(true); + // Prevent background scrolling but allow dropdown content to scroll + // Hide scrollbars completely + document.body.style.overflow = 'hidden'; + document.documentElement.style.overflow = 'hidden'; + document.body.style.paddingRight = '0px'; // Prevent layout shift + + // Hide scrollbar on main content container if it exists + const mainContentElement = document.querySelector('.markdown-viewer') || + document.querySelector('[data-markdown-container]') || + document.querySelector('.flex-1.overflow-auto'); + if (mainContentElement) { + (mainContentElement as HTMLElement).style.overflow = 'hidden'; + } + + // Prevent touch scrolling on background but allow it inside dropdown + const preventBackgroundTouch = (e: TouchEvent) => { + const target = e.target as Element; + const dropdownContent = contentRef.current; + + // Allow touch events inside dropdown content + if (dropdownContent && dropdownContent.contains(target)) { + return; // Allow normal touch behavior inside dropdown + } + + // Prevent touch events on background + e.preventDefault(); + }; + + document.addEventListener('touchmove', preventBackgroundTouch, { passive: false }); + + // Use requestAnimationFrame for more reliable rendering timing + requestAnimationFrame(() => { + requestAnimationFrame(() => { + setIsAnimating(true); + }); + }); + + return () => { + document.removeEventListener('touchmove', preventBackgroundTouch); + }; + } else { + setIsAnimating(false); + // Restore scrolling when dropdown is closed + document.body.style.overflow = ''; + document.documentElement.style.overflow = ''; + document.body.style.paddingRight = ''; + + // Restore scrollbar on main content container + const mainContentElement = document.querySelector('.markdown-viewer') || + document.querySelector('[data-markdown-container]') || + document.querySelector('.flex-1.overflow-auto'); + if (mainContentElement) { + (mainContentElement as HTMLElement).style.overflow = ''; + } + // Use transitionend event instead of setTimeout for more reliable cleanup + const cleanup = setTimeout(() => setIsVisible(false), 250); // Slightly longer timeout + return () => clearTimeout(cleanup); + } + }, [mobileDropdownOpen]); + + // Handle click outside to close + useEffect(() => { + if (!mobileDropdownOpen) return; + + const handleClickOutside = (event: MouseEvent) => { + // Check if click is outside the dropdown content and not on the toggle button + const target = event.target as Element; + const isToggleButton = target.closest('[data-mobile-dropdown-toggle]'); + + if (contentRef.current && !contentRef.current.contains(target) && !isToggleButton) { + setMobileDropdownOpen(false); + } + }; + + // Add event listener to document to catch all clicks + document.addEventListener('mousedown', handleClickOutside); + + return () => { + document.removeEventListener('mousedown', handleClickOutside); + }; + }, [mobileDropdownOpen, setMobileDropdownOpen]); + + // Cleanup on unmount + useEffect(() => { + return () => { + document.body.style.overflow = ''; + document.documentElement.style.overflow = ''; + }; + }, []); + + if (!isVisible) return null; + + const tabs = [ + { id: 'files' as const, label: 'Files', icon: IconFiles, component: FileExplorer }, + { id: 'outline' as const, label: 'Outline', icon: IconList, component: TOC }, + { id: 'graph' as const, label: 'Graph', icon: IconNetwork, component: LocalGraph }, + { id: 'tags' as const, label: 'Tags', icon: IconTags, component: TagsPanel }, + ]; + + const ActiveComponent = tabs.find(tab => tab.id === activeMobileTab)?.component || FileExplorer; + + return ( +
+ {/* Dropdown Content */} +
e.stopPropagation()} + style={{ + maxHeight: isAnimating ? '60vh' : '0', + opacity: isAnimating ? 1 : 0, + transition: 'max-height 0.2s ease-out, opacity 0.2s ease-out', + overflow: 'hidden', + width: '100%', + zIndex: 1000000 // Even higher z-index for content + }} + > + {/* Function Buttons Row */} +
+
+ {/* Home */} + + + + + {/* Global Graph */} + + + + + {/* Random Note */} + + + + + {/* Theme Toggle */} + + {theme === 'dark' ? : } + + + {/* Settings */} + + + +
+
+ + {/* Tab Bar */} +
+ + {tabs.map((tab) => ( + + ))} + +
+ + {/* Content */} +
+ +
+
+ + {/* CSS Animation */} + +
+ ); +} \ No newline at end of file diff --git a/deprecated/src/components/Layout/ResizeHandle.tsx b/deprecated/src/components/Layout/ResizeHandle.tsx new file mode 100644 index 0000000..988b119 --- /dev/null +++ b/deprecated/src/components/Layout/ResizeHandle.tsx @@ -0,0 +1,83 @@ +import { useCallback, useEffect, useState } from 'react'; + +interface ResizeHandleProps { + direction: 'left' | 'right'; + onResize: (width: number) => void; + minWidth?: number; + maxWidth?: number; + sidebarRef: React.RefObject; +} + +export function ResizeHandle({ + direction, + onResize, + minWidth = 200, + maxWidth = 600, + sidebarRef +}: ResizeHandleProps) { + const [isResizing, setIsResizing] = useState(false); + const [isHovered, setIsHovered] = useState(false); + + const startResizing = useCallback((mouseDownEvent: React.MouseEvent) => { + mouseDownEvent.preventDefault(); + setIsResizing(true); + }, []); + + const stopResizing = useCallback(() => { + setIsResizing(false); + }, []); + + const resize = useCallback( + (mouseMoveEvent: MouseEvent) => { + if (isResizing && sidebarRef.current) { + const rect = sidebarRef.current.getBoundingClientRect(); + let newWidth: number; + + if (direction === 'left') { + // For left sidebar: calculate from mouse position to real-time left edge + newWidth = mouseMoveEvent.clientX - rect.left; + } else { + // For right sidebar: width = real-time right edge - mouseX + newWidth = rect.right - mouseMoveEvent.clientX; + } + + // Constrain within bounds + const constrainedWidth = Math.max(minWidth, Math.min(maxWidth, newWidth)); + + // Update immediately + onResize(constrainedWidth); + } + }, + [isResizing, direction, minWidth, maxWidth, onResize, sidebarRef] + ); + + useEffect(() => { + window.addEventListener('mousemove', resize); + window.addEventListener('mouseup', stopResizing); + return () => { + window.removeEventListener('mousemove', resize); + window.removeEventListener('mouseup', stopResizing); + }; + }, [resize, stopResizing]); + + return ( +
setIsHovered(true)} + onMouseLeave={() => setIsHovered(false)} + > +
+ ); +} \ No newline at end of file diff --git a/deprecated/src/components/Layout/RightSidebar.tsx b/deprecated/src/components/Layout/RightSidebar.tsx new file mode 100644 index 0000000..84ad2b6 --- /dev/null +++ b/deprecated/src/components/Layout/RightSidebar.tsx @@ -0,0 +1,43 @@ +import { IconList, IconGitFork } from '@tabler/icons-react'; +import { Button } from '@mantine/core'; +import { useUIStore } from '../../stores/uiStore'; +import { TOC } from '../MarkdownViewer/TOC'; +import { LocalGraph } from '../Graph/LocalGraph'; + +export function RightSidebar() { + const { activeRightPanel, setActiveRightPanel } = useUIStore(); + + return ( +
+ {/* Tab Headers */} +
+ + + + +
+ + {/* Tab Content */} +
+ {activeRightPanel === 'outline' && } + {activeRightPanel === 'graph' && } +
+
+ ); +} \ No newline at end of file diff --git a/deprecated/src/components/Layout/StatusBar.tsx b/deprecated/src/components/Layout/StatusBar.tsx new file mode 100644 index 0000000..657b3db --- /dev/null +++ b/deprecated/src/components/Layout/StatusBar.tsx @@ -0,0 +1,129 @@ +import { useEffect, useState } from 'react'; +import { useVaultStore } from '../../stores/vaultStore'; +import { useGraphAPI, useFileAPI } from '../../hooks/useAPIs'; +import { useUIStore } from '../../stores/uiStore'; + +export function StatusBar() { + const { activeFile } = useVaultStore(); + const { isMobile } = useUIStore(); + const graphAPI = useGraphAPI(); + const fileAPI = useFileAPI(); + const [backlinksCount, setBacklinksCount] = useState(0); + const [wordCount, setWordCount] = useState(0); + const [charCount, setCharCount] = useState(0); + + // 计算当前文件的 backlinks 数量 + useEffect(() => { + const calculateBacklinks = async () => { + if (!activeFile) { + setBacklinksCount(0); + return; + } + + try { + const localGraph = await graphAPI.getLocalGraph(activeFile); + + // 找到当前文件节点 + const decodedActiveFile = decodeURIComponent(activeFile); + const normalizedPath = decodedActiveFile.replace('.md', ''); + const fileName = normalizedPath.split('/').pop() || normalizedPath; + + const currentFileNode = localGraph.nodes.find(node => { + const normalizedDecodedFileName = normalizedPath.startsWith('/') ? normalizedPath.slice(1) : normalizedPath; + return node.title === normalizedDecodedFileName || + node.title === normalizedPath || + node.title === fileName || + node.label === fileName; + }); + + if (currentFileNode) { + // 计算指向当前文件的边数量(被引用数) + const inboundLinks = localGraph.edges.filter(edge => + edge.to === currentFileNode.id && + // 排除标签连接,只计算文件连接 + localGraph.nodes.find(n => n.id === edge.from)?.type !== 'tag' + ); + + setBacklinksCount(inboundLinks.length); + } else { + setBacklinksCount(0); + } + } catch (error) { + console.error('Failed to calculate backlinks:', error); + setBacklinksCount(0); + } + }; + + calculateBacklinks(); + }, [activeFile, graphAPI]); + + // 计算当前文件的单词数和字符数 + useEffect(() => { + const calculateWordAndCharCount = async () => { + if (!activeFile) { + setWordCount(0); + setCharCount(0); + return; + } + + try { + // 获取文件原始内容 + const decodedPath = decodeURIComponent(activeFile); + const content = await fileAPI.getFileContent(decodedPath); + + // 计算字符数(复刻 PHP strlen() 逻辑) + const characters = content.length; + setCharCount(characters); + + // 计算单词数(复刻 PHP str_word_count() 逻辑) + // 移除 Markdown 语法,只计算实际内容的单词 + const cleanContent = content + // 移除 frontmatter + .replace(/^---\s*[\s\S]*?\s*---/, '') + // 移除代码块 + .replace(/```[\s\S]*?```/g, '') + // 移除行内代码 + .replace(/`[^`]*`/g, '') + // 移除链接但保留链接文本: [text](url) -> text + .replace(/\[([^\]]*)\]\([^)]*\)/g, '$1') + // 移除图片: ![alt](url) -> alt + .replace(/!\[([^\]]*)\]\([^)]*\)/g, '$1') + // 移除 Markdown 标记 + .replace(/[#*_~`]/g, '') + // 移除多余空白 + .replace(/\s+/g, ' ') + .trim(); + + // 统计单词(支持中英文混合) + if (cleanContent) { + // 匹配单词:英文单词 + 中文字符 + const words = cleanContent.match(/[\u4e00-\u9fff]|[a-zA-Z]+/g) || []; + setWordCount(words.length); + } else { + setWordCount(0); + } + + } catch (error) { + console.error('Failed to calculate word/char count:', error); + setWordCount(0); + setCharCount(0); + } + }; + + calculateWordAndCharCount(); + }, [activeFile, fileAPI]); + + // 有 bug,在浏览器模拟移动端正常显示状态栏,但在手机真机上不显示 + return ( +
+
+ {backlinksCount} backlinks +
+ +
+ {wordCount} words + {charCount} characters +
+
+ ); +} \ No newline at end of file diff --git a/src/components/Layout/UnifiedMobileDrawer.tsx b/deprecated/src/components/Layout/UnifiedMobileDrawer.tsx similarity index 95% rename from src/components/Layout/UnifiedMobileDrawer.tsx rename to deprecated/src/components/Layout/UnifiedMobileDrawer.tsx index d87baf8..9bd857a 100644 --- a/src/components/Layout/UnifiedMobileDrawer.tsx +++ b/deprecated/src/components/Layout/UnifiedMobileDrawer.tsx @@ -26,7 +26,7 @@ export function UnifiedMobileDrawer() { const ActiveComponent = tabs.find(tab => tab.id === activeMobileTab)?.component || FileExplorer; return ( -
setMobileDrawerOpen(false)}> +
setMobileDrawerOpen(false)}> {/* Drawer */}
+
+ {/* Left actions */} +
+ {/* Desktop sidebar toggle */} + {!isMobile && ( + + + + )} + + {/* Mobile dropdown toggle */} + {isMobile && ( + setMobileDropdownOpen(!mobileDropdownOpen)} + variant={mobileDropdownOpen ? 'light' : 'subtle'} + color="gray" + size="sm" + > + + + )} +
+ + {/* File title */} +
+
+ {activeFile ? decodeURIComponent(activeFile).replace(/^\//, '').replace(/\.md$/, '') : 'Welcome'} +
+
+ + {/* Right actions */} +
+ + {!isMobile && !isTablet && ( + + + + )} +
+
+ + {/* Mobile dropdown menu */} + {isMobile && } +
+ ); +} \ No newline at end of file diff --git a/src/components/MarkdownViewer/CusdisComments.css b/deprecated/src/components/MarkdownViewer/CusdisComments.css similarity index 100% rename from src/components/MarkdownViewer/CusdisComments.css rename to deprecated/src/components/MarkdownViewer/CusdisComments.css diff --git a/src/components/MarkdownViewer/CusdisComments.tsx b/deprecated/src/components/MarkdownViewer/CusdisComments.tsx similarity index 100% rename from src/components/MarkdownViewer/CusdisComments.tsx rename to deprecated/src/components/MarkdownViewer/CusdisComments.tsx diff --git a/src/components/MarkdownViewer/MarkdownViewer.css b/deprecated/src/components/MarkdownViewer/MarkdownViewer.css similarity index 99% rename from src/components/MarkdownViewer/MarkdownViewer.css rename to deprecated/src/components/MarkdownViewer/MarkdownViewer.css index f26928f..5249ac4 100644 --- a/src/components/MarkdownViewer/MarkdownViewer.css +++ b/deprecated/src/components/MarkdownViewer/MarkdownViewer.css @@ -276,6 +276,7 @@ border-color: var(--background-modifier-border-hover, rgba(0, 0, 0, 0.2)); color: var(--tag-color-hover, var(--text-normal)); text-decoration: none; + cursor: default; /* Prevent pointer cursor */ } /* Highlights ==text== - Obsidian-style highlighting */ diff --git a/src/components/MarkdownViewer/MarkdownViewer.tsx b/deprecated/src/components/MarkdownViewer/MarkdownViewer.tsx similarity index 98% rename from src/components/MarkdownViewer/MarkdownViewer.tsx rename to deprecated/src/components/MarkdownViewer/MarkdownViewer.tsx index 3de26fd..3838108 100644 --- a/src/components/MarkdownViewer/MarkdownViewer.tsx +++ b/deprecated/src/components/MarkdownViewer/MarkdownViewer.tsx @@ -1,8 +1,8 @@ import { useEffect, useState, useRef } from 'react'; import { useVaultStore } from '../../stores/vaultStore'; import { useUIStore } from '../../stores/uiStore'; -import { markdownProcessor } from '../../services/markdownProcessor'; -import { MetaTagService } from '../../services/metaTagService'; +import { markdownProcessor } from '../../utils/markdownProcessor'; +import { MetaTagService } from '../../utils/metaTagService'; import { useFileAPI } from '../../hooks/useAPIs'; import { useTags } from '../../apis/hooks/useTagAPI'; import { MermaidDiagram } from './MermaidDiagram'; @@ -457,7 +457,7 @@ export function MarkdownViewer() { } return ( -
+
{/* File name as document title */} {activeFile && (

@@ -501,7 +501,7 @@ export function MarkdownViewer() { // Fallback for no rendered content return ( -
+
{/* File name as document title */} {activeFile && (

diff --git a/src/components/MarkdownViewer/MermaidDiagram.tsx b/deprecated/src/components/MarkdownViewer/MermaidDiagram.tsx similarity index 100% rename from src/components/MarkdownViewer/MermaidDiagram.tsx rename to deprecated/src/components/MarkdownViewer/MermaidDiagram.tsx diff --git a/src/components/MarkdownViewer/TOC.tsx b/deprecated/src/components/MarkdownViewer/TOC.tsx similarity index 95% rename from src/components/MarkdownViewer/TOC.tsx rename to deprecated/src/components/MarkdownViewer/TOC.tsx index 8126cae..0dcc045 100644 --- a/src/components/MarkdownViewer/TOC.tsx +++ b/deprecated/src/components/MarkdownViewer/TOC.tsx @@ -240,24 +240,27 @@ export function TOC() { if (!currentDocumentMetadata?.headings?.length) { return ( -
-
+
+
Table of Contents
-
- No headings found in this document +
+
+ No headings found in this document +
); } return ( -
-
+
+
Table of Contents
-
- {currentDocumentMetadata.headings.map((heading, index) => { +
+
+ {currentDocumentMetadata.headings.map((heading, index) => { const indent = (heading.level - 1) * 12; // 12px per level for cleaner look const isActive = activeHeadingId === heading.id; @@ -297,7 +300,8 @@ export function TOC() {
); - })} + })} +
); diff --git a/src/components/MarkdownViewer/TagsPanel.tsx b/deprecated/src/components/MarkdownViewer/TagsPanel.tsx similarity index 100% rename from src/components/MarkdownViewer/TagsPanel.tsx rename to deprecated/src/components/MarkdownViewer/TagsPanel.tsx diff --git a/src/components/MarkdownViewer/TrackMap.tsx b/deprecated/src/components/MarkdownViewer/TrackMap.tsx similarity index 96% rename from src/components/MarkdownViewer/TrackMap.tsx rename to deprecated/src/components/MarkdownViewer/TrackMap.tsx index 1c8bc1d..6c3fe0b 100644 --- a/src/components/MarkdownViewer/TrackMap.tsx +++ b/deprecated/src/components/MarkdownViewer/TrackMap.tsx @@ -2,7 +2,7 @@ import { useEffect, useState, useRef } from 'react'; import { MapContainer, TileLayer, Polyline, Marker, Popup, useMapEvents } from 'react-leaflet'; import gpxParser from 'gpx-parser-builder'; import L from 'leaflet'; -import { VAULT_PATH } from '../../config/env'; +import { VAULT_PATH } from '../../config/vaultConfig'; import { fetchVault } from '../../utils/fetchWithAuth'; import 'leaflet/dist/leaflet.css'; @@ -44,10 +44,10 @@ L.Icon.Default.mergeOptions({ const createCustomIcon = (color: string, type: 'start' | 'end' | 'waypoint' | 'photo') => { const iconHtml = `
+ content.includes('creator="YAMAP') || + content.includes('YAMAP') || content.includes('yamap.com'), formats: { gpx: ['trk > trkseg > trkpt'] }, candidateKeywords: ['YAMAP', 'yamap.com', 'creator="YAMAP'] }, - + // Garmin - GPS设备厂商 garmin: { - detect: (content: string) => - content.includes('Garmin') || + detect: (content: string) => + content.includes('Garmin') || content.includes('garmin') || content.includes('GPSBabel'), formats: { @@ -93,23 +93,23 @@ const VENDOR_PATTERNS = { }, candidateKeywords: ['Garmin', 'garmin', 'GPSBabel'] }, - + // 2bulu (两步路) - 中国户外应用 '2bulu': { - detect: (content: string) => - content.includes('2bulu') || + detect: (content: string) => + content.includes('2bulu') || content.includes('二步路') || content.includes('TbuluKmlVersion'), formats: { - kml: ['gx:Track > gx:coord', 'LineString > coordinates'], + kml: ['gx:Track > gx:coord', 'LineString > coordinates'], gpx: ['trk > trkseg > trkpt'] }, candidateKeywords: ['2bulu', '二步路', 'TbuluKmlVersion', 'TwoStepsFromHell'] }, - - // foooooot - 户外运动应用 + + // foooooot - 户外运动应用 foooooot: { - detect: (content: string) => + detect: (content: string) => content.includes('foooooot') || content.includes('foooooot.com'), formats: { @@ -118,12 +118,12 @@ const VENDOR_PATTERNS = { }, candidateKeywords: ['foooooot', 'foooooot.com', 'six-foot.lvye.cn'] }, - + // Example/示例数据 example: { - detect: (content: string) => - content.includes('creator="Example"') || - content.includes('陆羽古道') || + detect: (content: string) => + content.includes('creator="Example"') || + content.includes('陆羽古道') || content.includes('示例'), formats: { gpx: ['trk > trkseg > trkpt'] @@ -135,21 +135,21 @@ const VENDOR_PATTERNS = { // 检测提供商 (改进版 - 支持候选关键词匹配) const detectProvider = (content: string): string => { const detectionResults: Array<{vendor: string, score: number, keywords: string[]}> = []; - + for (const [vendor, config] of Object.entries(VENDOR_PATTERNS)) { // 主要检测逻辑 if (config.detect(content)) { // 计算匹配度分数 - 基于候选关键词匹配数量 let score = 1; // 基础分数 const matchedKeywords: string[] = []; - + config.candidateKeywords.forEach(keyword => { if (content.includes(keyword)) { score += 1; matchedKeywords.push(keyword); } }); - + detectionResults.push({ vendor, score, @@ -157,7 +157,7 @@ const detectProvider = (content: string): string => { }); } } - + // 如果有多个匹配,选择得分最高的 if (detectionResults.length > 0) { detectionResults.sort((a, b) => b.score - a.score); @@ -165,7 +165,7 @@ const detectProvider = (content: string): string => { console.log(`Provider detection: ${bestMatch.vendor} (score: ${bestMatch.score}, keywords: [${bestMatch.keywords.join(', ')}])`); return bestMatch.vendor; } - + return 'unknown'; }; @@ -184,13 +184,13 @@ const getTrackColor = (provider?: string) => { // 获取地图实例的组件 function MapInstanceCapture({ onMapReady }: { onMapReady: (map: any) => void }) { const map = useMapEvents({}); - + useEffect(() => { if (map) { onMapReady(map); } }, [map, onMapReady]); - + return null; } @@ -237,7 +237,7 @@ export function TrackMap({ code, isFile = false, fileType, className = '' }: Tra // 处理文件路径 let filePath = code; console.log('🔍 Original file path from code:', filePath); - + // 处理不同格式的文件路径 if (filePath.startsWith('@Publish/')) { // @Publish/ 格式:移除 @Publish 前缀,使用 VAULT_PATH @@ -281,7 +281,7 @@ export function TrackMap({ code, isFile = false, fileType, className = '' }: Tra // 优先使用 fileType 参数进行格式检测(来自 obsidianLinksPlugin 的文件类型信息) let isKML: boolean, isGPX: boolean; - + if (isFile && fileType) { // 如果有明确的文件类型信息,优先使用 isGPX = fileType.toLowerCase() === 'gpx'; @@ -293,7 +293,7 @@ export function TrackMap({ code, isFile = false, fileType, className = '' }: Tra isGPX = content.includes(' + + + 使用微信扫描下方二维码访问并分享 + + +
+ {loading ? ( +
+ 生成中... +
+ ) : qrCodeDataURL ? ( + 分享二维码 + ) : ( +
+ 生成失败 +
+ )} +
+ + + {title} + + + + + +
+ + ); +} \ No newline at end of file diff --git a/deprecated/src/components/Share/ShareButton.tsx b/deprecated/src/components/Share/ShareButton.tsx new file mode 100644 index 0000000..815c313 --- /dev/null +++ b/deprecated/src/components/Share/ShareButton.tsx @@ -0,0 +1,207 @@ +import { useState } from 'react'; +import { ActionIcon, Menu, Tooltip, Text } from '@mantine/core'; +import { IconLink, IconBrandTwitter, IconBrandWechat, IconCopy, IconCheck } from '@tabler/icons-react'; +import { notifications } from '@mantine/notifications'; +import { QRCodeModal } from './QRCodeModal'; + +export interface ShareButtonProps { + size?: 'sm' | 'md' | 'lg'; + variant?: 'subtle' | 'light' | 'filled'; +} + +export function ShareButton({ size = 'sm', variant = 'subtle' }: ShareButtonProps) { + const [copied, setCopied] = useState(false); + const [qrModalOpened, setQrModalOpened] = useState(false); + + const currentUrl = window.location.href; + const pageTitle = document.title; + + // URL处理策略:根据不同平台需求 + const getDecodedUrl = () => { + try { + return decodeURIComponent(currentUrl); + } catch (error) { + console.warn('Failed to decode URL:', error); + return currentUrl; + } + }; + + const decodedUrl = getDecodedUrl(); // 解码版本(用于原生分享、微信) + const encodedUrl = currentUrl; // 编码版本(用于Twitter、调试对比) + + // 复制链接功能 - 使用解码版本显示中文字符 + const handleCopyLink = async () => { + try { + await navigator.clipboard.writeText(decodedUrl); + setCopied(true); + notifications.show({ + title: '复制成功', + message: '链接已复制到剪贴板', + color: 'green', + icon: , + }); + + // 2秒后重置图标 + setTimeout(() => setCopied(false), 2000); + } catch { + // 降级到传统方法 + const textarea = document.createElement('textarea'); + textarea.value = decodedUrl; + document.body.appendChild(textarea); + textarea.select(); + document.execCommand('copy'); + document.body.removeChild(textarea); + + setCopied(true); + notifications.show({ + title: '复制成功', + message: '链接已复制到剪贴板', + color: 'green', + icon: , + }); + setTimeout(() => setCopied(false), 2000); + } + }; + + // 分享到Twitter/X - 使用编码版本确保URL完整性 + const handleShareToTwitter = () => { + const twitterUrl = `https://twitter.com/intent/tweet?text=${encodeURIComponent(pageTitle)}&url=${encodeURIComponent(encodedUrl)}`; + console.log('Twitter分享URL:', twitterUrl); + console.log('使用编码URL:', encodedUrl); + window.open(twitterUrl, '_blank', 'width=550,height=420'); + }; + + // 原生系统分享功能 - 使用解码版本显示中文字符 + const handleNativeShare = async () => { + if (navigator.share) { + try { + // 调试:显示分享数据 + notifications.show({ + title: '🔍 调试信息', + message: `准备分享: ${decodedUrl}`, + color: 'blue', + autoClose: 3000, + }); + + await navigator.share({ + title: pageTitle, + text: `查看这篇文章:${pageTitle}`, + url: decodedUrl, + }); + + notifications.show({ + title: '分享成功', + message: '内容已通过系统分享', + color: 'green', + icon: , + }); + } catch (error) { + // 用户取消分享或其他错误 + const errorMsg = error instanceof Error ? error.message : '未知错误'; + notifications.show({ + title: '🐛 分享失败', + message: `错误: ${errorMsg}`, + color: 'red', + autoClose: 5000, + }); + + if (error instanceof Error && error.name !== 'AbortError') { + console.warn('Native share failed:', error); + // 降级到复制链接 + handleCopyLink(); + } + } + } else { + notifications.show({ + title: '🔍 调试信息', + message: '不支持原生分享,降级到复制', + color: 'yellow', + autoClose: 3000, + }); + // 不支持原生分享,降级到复制链接 + handleCopyLink(); + } + }; + + + // 分享到微信(移动端检测) + const handleShareToWechat = () => { + const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); + const isWechat = /MicroMessenger/i.test(navigator.userAgent); + const hasNativeShare = 'share' in navigator; + + if (isWechat) { + // 在微信内直接提示 + notifications.show({ + title: '分享提示', + message: '点击右上角"..."按钮分享给朋友或朋友圈', + color: 'blue', + icon: , + autoClose: 5000, + }); + } else if (isMobile && hasNativeShare) { + // 移动端支持原生分享:尝试原生分享 + handleNativeShare(); + } else { + // 桌面端:显示二维码 + setQrModalOpened(true); + } + }; + + return ( + <> + + + + + + + + + + + 分享到 + + + } + onClick={handleCopyLink} + rightSection={copied ? : null} + > + + {copied ? '已复制' : '复制链接'} + + + + } + onClick={handleShareToTwitter} + > + 分享到 X (Twitter) + + + } + onClick={handleShareToWechat} + color="green" + > + 分享到微信 + + + + + + {/* 二维码分享模态框 */} + setQrModalOpened(false)} + url={decodedUrl} + title={pageTitle} + /> + + ); +} \ No newline at end of file diff --git a/src/components/Share/index.ts b/deprecated/src/components/Share/index.ts similarity index 100% rename from src/components/Share/index.ts rename to deprecated/src/components/Share/index.ts diff --git a/deprecated/src/config/vaultConfig.ts b/deprecated/src/config/vaultConfig.ts new file mode 100644 index 0000000..e02d76d --- /dev/null +++ b/deprecated/src/config/vaultConfig.ts @@ -0,0 +1,192 @@ +/** + * Vault 配置文件 + * 控制文件树显示、搜索范围等行为 + * 统一管理所有路径和环境配置 + */ + +// 环境变量和路径配置 +// 现已支持多 vault 结构:/vaults/Demo, /vaults/Publish 等 +export const VAULTS_ROOT = import.meta.env.VITE_VAULTS_ROOT || '/vaults'; +export const VAULT_SUBDIR = import.meta.env.VITE_VAULT_SUBDIR || 'Demo'; +export const VAULT_PATH = `${VAULTS_ROOT}/${VAULT_SUBDIR}`; + +// 内部使用的 Obsidian 插件路径 +const METADATA_PLUGINS_PATH = `${VAULT_PATH}/.obsidian/plugins/metadata-extractor`; + +export interface VaultConfig { + /** 基础URL配置 */ + baseUrl: string; + + /** Vaults 根目录 */ + vaultsRoot: string; + + /** 默认主页文件 */ + indexFile: string; + + /** 需要过滤的文件夹列表(不显示在文件树中,也不参与搜索) */ + excludedFolders: string[]; + + /** 需要过滤的文件扩展名 */ + excludedExtensions: string[]; + + /** 搜索配置 */ + search: { + /** 搜索防抖延迟(毫秒) */ + debounceMs: number; + /** 最大搜索结果数 */ + maxResults: number; + /** 每个文件最大显示匹配数 */ + maxMatchesPerFile: number; + }; +} + +/** + * 默认配置 + * 复刻 PHP 版本的过滤逻辑,参考 helper.php isValidFolder() 函数 + */ +export const defaultVaultConfig: VaultConfig = { + baseUrl: VAULT_PATH, + vaultsRoot: VAULTS_ROOT, + + // 默认主页文件 + indexFile: 'Welcome.md', + + // 默认过滤的文件夹 + excludedFolders: [ + 'Attachments', // 附件文件夹(用户请求) + '.obsidian', // Obsidian 配置文件夹 + '.git', // Git 仓库文件夹 + '.vscode', // VSCode 配置文件夹 + 'node_modules' // Node.js 依赖 + ], + + // 默认过滤的文件扩展名 + excludedExtensions: [ + '.DS_Store', // macOS 系统文件 + '.gitignore', // Git 忽略文件 + 'desktop.ini', // Windows 桌面配置 + 'Thumbs.db' // Windows 缩略图文件 + ], + + // 搜索配置 + search: { + debounceMs: 300, + maxResults: 100, + maxMatchesPerFile: 5 + } +}; + +/** + * 获取当前配置 + * 后续可以从环境变量、本地存储等地方加载用户自定义配置 + */ +export const getVaultConfig = (): VaultConfig => { + // TODO: 支持从环境变量或本地存储加载用户配置 + // const userConfig = localStorage.getItem('vaultConfig'); + // if (userConfig) { + // return { ...defaultVaultConfig, ...JSON.parse(userConfig) }; + // } + + return defaultVaultConfig; +}; + +/** + * 检查文件夹是否应该被过滤 + */ +export const isFolderExcluded = (folderName: string, config: VaultConfig = getVaultConfig()): boolean => { + return config.excludedFolders.includes(folderName); +}; + +/** + * 检查文件是否应该被过滤 + */ +export const isFileExcluded = (fileName: string, config: VaultConfig = getVaultConfig()): boolean => { + return config.excludedExtensions.some(ext => fileName.endsWith(ext)); +}; + +/** + * 检查路径是否在被排除的文件夹中 + */ +export const isPathInExcludedFolder = (filePath: string, config: VaultConfig = getVaultConfig()): boolean => { + return config.excludedFolders.some(excludedFolder => + filePath.includes(`/${excludedFolder}/`) || filePath.startsWith(`${excludedFolder}/`) + ); +}; + +/** + * 路径辅助函数 (从 env.ts 迁移) + */ +export function getVaultFilePath(relativePath: string): string { + const cleanPath = relativePath.startsWith('/') ? relativePath.slice(1) : relativePath; + return `${VAULT_PATH}/${cleanPath}`; +} + +/** + * 主要文件访问函数 (对外暴露) + */ +export function getMetadataUrl(): string { + return `${METADATA_PLUGINS_PATH}/metadata.json`; +} + +export function getTagsUrl(): string { + return `${METADATA_PLUGINS_PATH}/tags.json`; +} + + +/** + * 多 vault 支持,之后应该是直接读出来的,不是 hardcode,可以配置 excludeVault + * 当前可用:Demo, Publish + */ +export const AVAILABLE_VAULTS = ['Demo', 'Publish'] as const; +export type VaultId = typeof AVAILABLE_VAULTS[number]; + +/** + * Vault 配置接口 - 统一的 vault 操作接口 + */ +export interface VaultPaths { + readonly id: string; + readonly path: string; + getFilePath(relativePath: string): string; + getMetadataUrl(): string; + getTagsUrl(): string; +} + +/** + * 创建 Vault 配置实例 + */ +export function createVaultConfig(vaultId: string): VaultPaths { + const vaultPath = `${VAULTS_ROOT}/${vaultId}`; + const pluginsPath = `${vaultPath}/.obsidian/plugins/metadata-extractor`; + + return { + id: vaultId, + path: vaultPath, + getFilePath: (relativePath: string) => { + const cleanPath = relativePath.startsWith('/') ? relativePath.slice(1) : relativePath; + return `${vaultPath}/${cleanPath}`; + }, + getMetadataUrl: () => `${pluginsPath}/metadata.json`, + getTagsUrl: () => `${pluginsPath}/tags.json`, + }; +} + +/** + * 当前默认 vault 配置 (向后兼容) + */ +export const vaultConfig = createVaultConfig(VAULT_SUBDIR); + +/** + * 多 vault 管理器接口 + */ +export interface MultiVaultManager { + currentVault: VaultId; + availableVaults: readonly VaultId[]; + getCurrentConfig(): VaultPaths; + getConfig(vaultId: VaultId): VaultPaths; + switchVault(vaultId: VaultId): void; +} + +/** + * 便捷函数:获取指定 vault 的配置 (兼容旧 API) + */ +export const getVaultPaths = createVaultConfig; \ No newline at end of file diff --git a/src/hooks/useAPIs.ts b/deprecated/src/hooks/useAPIs.ts similarity index 100% rename from src/hooks/useAPIs.ts rename to deprecated/src/hooks/useAPIs.ts diff --git a/deprecated/src/hooks/useHashRouter.ts b/deprecated/src/hooks/useHashRouter.ts new file mode 100644 index 0000000..643a816 --- /dev/null +++ b/deprecated/src/hooks/useHashRouter.ts @@ -0,0 +1,121 @@ +import { useEffect, useCallback } from 'react'; +import { useVaultStore } from '../stores/vaultStore'; +import { useUIStore } from '../stores/uiStore'; +import { getCurrentRoute, navigateToFile, navigateToWelcome, navigateToGlobalGraph, type ParsedRoute } from '../utils/routeUtils'; + +/** + * Hash 路由管理 Hook + * 监听 URL hash 变化并更新应用状态 + */ +export function useHashRouter() { + const { setActiveFile } = useVaultStore(); + const { setMainContentView } = useUIStore(); + + // 处理路由变化 + const handleRouteChange = useCallback((route: ParsedRoute) => { + console.log('📍 Route change:', route); + if (route.type === 'welcome') { + setActiveFile(null); + setMainContentView('file'); + } else if (route.type === 'global-graph') { + setMainContentView('globalGraph'); + } else if (route.type === 'file' && route.filePath) { + console.log('📍 Setting activeFile to:', route.filePath); + setActiveFile(route.filePath, route.anchor); + setMainContentView('file'); + + // 如果有锚点,延迟滚动到对应位置 + if (route.anchor) { + // Increase delay to ensure content is loaded and avoid conflicts with TOC clicks + setTimeout(() => { + const element = document.getElementById(route.anchor!); + if (element) { + // Check if this is a programmatic navigation from TOC (not a hash change) + // If element is already in view, skip the scroll to avoid conflicts + const elementRect = element.getBoundingClientRect(); + const viewportHeight = window.innerHeight; + const isInView = elementRect.top >= 0 && elementRect.top < viewportHeight * 0.3; + + if (isInView) { + console.log('🔗 Hash router: Element already in view, skipping scroll'); + return; + } + + // Find the correct scroll container (the one with actual scrollable content) + const findScrollableContainer = () => { + const containers = document.querySelectorAll('.flex-1.overflow-auto') as NodeListOf; + for (const container of containers) { + if (container.scrollHeight > container.clientHeight) { + return container; + } + } + return null; + }; + + const mainContentDiv = findScrollableContainer(); + const scrollOffset = 10; // Small offset, headings have their own margin-top: 2rem (32px) + + if (!mainContentDiv) { + // Fallback to window scroll - use getBoundingClientRect for accuracy + const elementRect = element.getBoundingClientRect(); + const currentScrollY = window.scrollY || window.pageYOffset; + const elementTop = elementRect.top + currentScrollY; + window.scrollTo({ + top: elementTop - scrollOffset, + behavior: 'smooth' + }); + } else { + // Calculate position relative to the scroll container + const containerRect = mainContentDiv.getBoundingClientRect(); + const elementRect = element.getBoundingClientRect(); + const currentScrollTop = mainContentDiv.scrollTop; + + // Calculate the element's position relative to the scroll container + const elementRelativeTop = elementRect.top - containerRect.top + currentScrollTop; + const scrollTop = elementRelativeTop - scrollOffset; + + mainContentDiv.scrollTo({ + top: scrollTop, + behavior: 'smooth' + }); + } + } + }, 200); // Increased delay to avoid conflicts with TOC + } + } + }, [setActiveFile, setMainContentView]); + + // 监听 hash 变化 + useEffect(() => { + const handleHashChange = () => { + const route = getCurrentRoute(); + handleRouteChange(route); + }; + + // 初始化路由 + handleHashChange(); + + // 监听 hash 变化事件 + window.addEventListener('hashchange', handleHashChange); + + return () => { + window.removeEventListener('hashchange', handleHashChange); + }; + }, [setActiveFile, setMainContentView, handleRouteChange]); + + return { + getCurrentRoute, + navigateToFile: (filePath: string, anchor?: string) => { + // Import at top of file instead of dynamic require + navigateToFile(filePath, anchor); + }, + navigateToWelcome: () => { + // Import at top of file instead of dynamic require + navigateToWelcome(); + }, + navigateToGlobalGraph: () => { + // Import at top of file instead of dynamic require + navigateToGlobalGraph(); + } + }; +} \ No newline at end of file diff --git a/deprecated/src/hooks/useSEO.ts b/deprecated/src/hooks/useSEO.ts new file mode 100644 index 0000000..5cb0500 --- /dev/null +++ b/deprecated/src/hooks/useSEO.ts @@ -0,0 +1,95 @@ +import { useEffect } from 'react'; +import { useVaultStore } from '../stores/vaultStore'; + +/** + * SEO 优化 Hook + * 根据当前文件动态更新页面 meta 信息 + */ +export function useSEO() { + const { activeFile, currentDocumentMetadata } = useVaultStore(); + + useEffect(() => { + if (activeFile) { + // 从文件路径提取文件名,先解码中文 + const decodedPath = decodeURIComponent(activeFile); + const fileName = decodedPath.split('/').pop()?.replace('.md', '') || 'Document'; + + // 生成页面标题 + const pageTitle = `${fileName} - Helenite`; + document.title = pageTitle; + + // 生成描述 + let description = `View ${fileName} in Helenite vault viewer`; + + // 如果有标题,使用第一个标题作为描述 + if (currentDocumentMetadata?.headings?.length) { + const firstHeading = currentDocumentMetadata.headings[0]; + description = `${firstHeading.text} - ${fileName}`; + } + + // 如果有标签,添加到描述中 + if (currentDocumentMetadata?.tags?.length) { + const tags = currentDocumentMetadata.tags.join(', '); + description += ` | Tags: ${tags}`; + } + + // 更新 meta 描述 + let metaDescription = document.querySelector('meta[name="description"]'); + if (!metaDescription) { + metaDescription = document.createElement('meta'); + metaDescription.setAttribute('name', 'description'); + document.head.appendChild(metaDescription); + } + metaDescription.setAttribute('content', description); + + // 更新 Open Graph 标签 + let ogTitle = document.querySelector('meta[property="og:title"]'); + if (!ogTitle) { + ogTitle = document.createElement('meta'); + ogTitle.setAttribute('property', 'og:title'); + document.head.appendChild(ogTitle); + } + ogTitle.setAttribute('content', pageTitle); + + let ogDescription = document.querySelector('meta[property="og:description"]'); + if (!ogDescription) { + ogDescription = document.createElement('meta'); + ogDescription.setAttribute('property', 'og:description'); + document.head.appendChild(ogDescription); + } + ogDescription.setAttribute('content', description); + + // 更新 canonical URL + let canonical = document.querySelector('link[rel="canonical"]'); + if (!canonical) { + canonical = document.createElement('link'); + canonical.setAttribute('rel', 'canonical'); + document.head.appendChild(canonical); + } + const canonicalUrl = `${window.location.origin}${window.location.pathname}#${activeFile}`; + canonical.setAttribute('href', canonicalUrl); + + } else { + // 默认首页 SEO + document.title = 'Helenite - Modern Obsidian Vault Viewer'; + + let metaDescription = document.querySelector('meta[name="description"]'); + if (!metaDescription) { + metaDescription = document.createElement('meta'); + metaDescription.setAttribute('name', 'description'); + document.head.appendChild(metaDescription); + } + metaDescription.setAttribute('content', 'A modern, web-based viewer for Obsidian vaults. Browse your notes with beautiful typography and interactive features.'); + + const ogTitle = document.querySelector('meta[property="og:title"]'); + if (ogTitle) { + ogTitle.setAttribute('content', 'Helenite - Modern Obsidian Vault Viewer'); + } + + const canonical = document.querySelector('link[rel="canonical"]'); + if (canonical) { + canonical.setAttribute('href', `${window.location.origin}${window.location.pathname}#/welcome`); + } + } + }, [activeFile, currentDocumentMetadata]); +} \ No newline at end of file diff --git a/src/hooks/useScrollPositionPersistence.ts b/deprecated/src/hooks/useScrollPositionPersistence.ts similarity index 100% rename from src/hooks/useScrollPositionPersistence.ts rename to deprecated/src/hooks/useScrollPositionPersistence.ts diff --git a/deprecated/src/stores/uiStore.ts b/deprecated/src/stores/uiStore.ts new file mode 100644 index 0000000..bc2d4a7 --- /dev/null +++ b/deprecated/src/stores/uiStore.ts @@ -0,0 +1,163 @@ +import { create } from 'zustand'; + +// 主题持久化辅助函数 +const getStoredTheme = (): 'light' | 'dark' => { + if (typeof window === 'undefined') return 'light'; + + const stored = localStorage.getItem('perlite-theme'); + if (stored === 'light' || stored === 'dark') { + return stored; + } + + // 如果没有存储的主题,检查系统偏好 + if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { + return 'dark'; + } + + return 'light'; +}; + +const setStoredTheme = (theme: 'light' | 'dark') => { + if (typeof window !== 'undefined') { + localStorage.setItem('perlite-theme', theme); + } +}; + +interface UIState { + // Sidebar states + leftSidebarOpen: boolean; + rightSidebarOpen: boolean; + leftSidebarWidth: number; + rightSidebarWidth: number; + + // Active panels + activeLeftPanel: 'files' | 'tags'; + activeRightPanel: 'outline' | 'graph'; + + // Main content view + mainContentView: 'file' | 'globalGraph'; + + // Theme + theme: 'light' | 'dark'; + + // Responsive states + isMobile: boolean; + isTablet: boolean; + + // Mobile drawer states + mobileLeftDrawerOpen: boolean; + mobileRightDrawerOpen: boolean; + + // New unified mobile drawer + mobileDrawerOpen: boolean; + activeMobileTab: 'files' | 'outline' | 'graph' | 'tags'; + + // Mobile dropdown menu from ViewHeader + mobileDropdownOpen: boolean; + + // Actions + toggleLeftSidebar: () => void; + toggleRightSidebar: () => void; + setLeftSidebarWidth: (width: number) => void; + setRightSidebarWidth: (width: number) => void; + setActiveLeftPanel: (panel: 'files' | 'tags') => void; + setActiveRightPanel: (panel: 'outline' | 'graph') => void; + setMainContentView: (view: 'file' | 'globalGraph') => void; + setTheme: (theme: 'light' | 'dark') => void; + setIsMobile: (isMobile: boolean) => void; + setIsTablet: (isTablet: boolean) => void; + + // Mobile drawer actions + setMobileLeftDrawerOpen: (open: boolean) => void; + setMobileRightDrawerOpen: (open: boolean) => void; + + // New unified mobile drawer actions + setMobileDrawerOpen: (open: boolean) => void; + setActiveMobileTab: (tab: 'files' | 'outline' | 'graph' | 'tags') => void; + + // Mobile dropdown actions + setMobileDropdownOpen: (open: boolean) => void; +} + +export const useUIStore = create((set) => ({ + // Initial state - open sidebars on desktop and tablet, close on mobile + leftSidebarOpen: typeof window !== 'undefined' ? window.innerWidth >= 768 : true, + rightSidebarOpen: typeof window !== 'undefined' ? window.innerWidth >= 1024 : true, + leftSidebarWidth: 300, // 统一使用 300px,与平板模式保持一致 + rightSidebarWidth: 280, // 减少到 280px,足够放置 TOC 和图谱 + activeLeftPanel: 'files', + activeRightPanel: 'outline', + mainContentView: 'file', + theme: getStoredTheme(), + isMobile: typeof window !== 'undefined' ? window.innerWidth < 768 : false, + isTablet: typeof window !== 'undefined' ? window.innerWidth >= 768 && window.innerWidth < 1024 : false, + + // Mobile drawer states + mobileLeftDrawerOpen: false, + mobileRightDrawerOpen: false, + + // New unified mobile drawer + mobileDrawerOpen: false, + activeMobileTab: 'files', + + // Mobile dropdown menu + mobileDropdownOpen: false, + + // Actions + toggleLeftSidebar: () => set((state) => ({ + leftSidebarOpen: !state.leftSidebarOpen + })), + toggleRightSidebar: () => set((state) => ({ + rightSidebarOpen: !state.rightSidebarOpen + })), + setLeftSidebarWidth: (width) => { + // Constrain width between 200px and 600px for desktop dragging + const constrainedWidth = Math.max(200, Math.min(600, width)); + set({ leftSidebarWidth: constrainedWidth }); + }, + setRightSidebarWidth: (width) => { + // Constrain width between 200px and 600px for desktop dragging + const constrainedWidth = Math.max(200, Math.min(600, width)); + set({ rightSidebarWidth: constrainedWidth }); + }, + setActiveLeftPanel: (panel) => set({ activeLeftPanel: panel }), + setActiveRightPanel: (panel) => set({ activeRightPanel: panel }), + setMainContentView: (view) => set({ mainContentView: view }), + setTheme: (theme) => { + setStoredTheme(theme); + set({ theme }); + }, + setIsMobile: (isMobile) => set((state) => { + // 当切换到移动端时,关闭抽屉 + if (isMobile && !state.isMobile) { + return { + isMobile, + mobileLeftDrawerOpen: false, + mobileRightDrawerOpen: false + }; + } + return { isMobile }; + }), + setIsTablet: (isTablet) => set((state) => { + // 切换到平板模式时,确保左侧栏宽度合理 + if (isTablet && !state.isTablet && state.leftSidebarWidth > 300) { + return { + isTablet, + // 如果当前宽度太大,调整为平板模式的300px + leftSidebarWidth: 300 + }; + } + return { isTablet }; + }), + + // Mobile drawer actions + setMobileLeftDrawerOpen: (open) => set({ mobileLeftDrawerOpen: open }), + setMobileRightDrawerOpen: (open) => set({ mobileRightDrawerOpen: open }), + + // New unified mobile drawer actions + setMobileDrawerOpen: (open) => set({ mobileDrawerOpen: open }), + setActiveMobileTab: (tab) => set({ activeMobileTab: tab }), + + // Mobile dropdown actions + setMobileDropdownOpen: (open) => set({ mobileDropdownOpen: open }), +})); \ No newline at end of file diff --git a/deprecated/src/stores/vaultStore.ts b/deprecated/src/stores/vaultStore.ts new file mode 100644 index 0000000..c53fc76 --- /dev/null +++ b/deprecated/src/stores/vaultStore.ts @@ -0,0 +1,82 @@ +import { create } from 'zustand'; +import type { + FileTree, + FileMetadata, + SearchResult, + GraphNode, + GraphEdge +} from '../apis/interfaces'; + +interface VaultState { + // File system state + files: FileTree[]; + activeFile: string | null; + activeAnchor: string | null; + metadata: Record; + + // Current document metadata (from markdown processor) + currentDocumentMetadata: { + headings: Array<{ level: number; text: string; id: string }>; + links: Array<{ href: string; text: string }>; + tags: string[]; + } | null; + + // Search state + searchQuery: string; + searchResults: SearchResult[]; + isSearching: boolean; + + // Graph data + graphNodes: GraphNode[]; + graphEdges: GraphEdge[]; + + // Loading states + isLoading: boolean; + error: string | null; + + // Actions + setActiveFile: (path: string | null, anchor?: string | null) => void; + setActiveAnchor: (anchor: string | null) => void; + setFiles: (files: FileTree[]) => void; + setMetadata: (metadata: Record) => void; + setCurrentDocumentMetadata: (metadata: { + headings: Array<{ level: number; text: string; id: string }>; + links: Array<{ href: string; text: string }>; + tags: string[]; + } | null) => void; + setSearchQuery: (query: string) => void; + setSearchResults: (results: SearchResult[]) => void; + setSearching: (searching: boolean) => void; + setGraphData: (nodes: GraphNode[], edges: GraphEdge[]) => void; + setLoading: (loading: boolean) => void; + setError: (error: string | null) => void; +} + +export const useVaultStore = create((set) => ({ + // Initial state + files: [], + activeFile: null, + activeAnchor: null, + metadata: {}, + currentDocumentMetadata: null, + searchQuery: '', + searchResults: [], + isSearching: false, + graphNodes: [], + graphEdges: [], + isLoading: false, + error: null, + + // Actions + setActiveFile: (path, anchor) => set({ activeFile: path, activeAnchor: anchor || null }), + setActiveAnchor: (anchor) => set({ activeAnchor: anchor }), + setFiles: (files) => set({ files }), + setMetadata: (metadata) => set({ metadata }), + setCurrentDocumentMetadata: (metadata) => set({ currentDocumentMetadata: metadata }), + setSearchQuery: (query) => set({ searchQuery: query }), + setSearchResults: (results) => set({ searchResults: results }), + setSearching: (searching) => set({ isSearching: searching }), + setGraphData: (nodes, edges) => set({ graphNodes: nodes, graphEdges: edges }), + setLoading: (loading) => set({ isLoading: loading }), + setError: (error) => set({ error }), +})); \ No newline at end of file diff --git a/deprecated/src/test/unit/config/vaultConfig.test.ts b/deprecated/src/test/unit/config/vaultConfig.test.ts new file mode 100644 index 0000000..021f081 --- /dev/null +++ b/deprecated/src/test/unit/config/vaultConfig.test.ts @@ -0,0 +1,91 @@ +import { describe, it, expect, beforeEach, vi } from 'vitest'; +import { + getVaultConfig, + isFolderExcluded, + isFileExcluded, + isPathInExcludedFolder +} from '../../../config/vaultConfig'; + +describe('vaultConfig', () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + describe('getVaultConfig', () => { + it('should return default configuration', () => { + const config = getVaultConfig(); + + expect(config.baseUrl).toBe('/vaults/Demo'); + expect(config.indexFile).toBe('Welcome.md'); + expect(config.excludedFolders).toContain('.obsidian'); + expect(config.excludedFolders).toContain('Attachments'); + expect(config.search.debounceMs).toBe(300); + }); + + it('should have reasonable search configuration', () => { + const config = getVaultConfig(); + + expect(config.search.maxResults).toBeGreaterThan(0); + expect(config.search.maxMatchesPerFile).toBeGreaterThan(0); + expect(config.search.debounceMs).toBeGreaterThan(0); + }); + }); + + describe('isFolderExcluded', () => { + it('should exclude .obsidian folder', () => { + expect(isFolderExcluded('.obsidian')).toBe(true); + }); + + it('should exclude Attachments folder', () => { + expect(isFolderExcluded('Attachments')).toBe(true); + }); + + it('should not exclude regular folders', () => { + expect(isFolderExcluded('Notes')).toBe(false); + expect(isFolderExcluded('Projects')).toBe(false); + }); + + it('should exclude system folders', () => { + expect(isFolderExcluded('.git')).toBe(true); + expect(isFolderExcluded('node_modules')).toBe(true); + expect(isFolderExcluded('.vscode')).toBe(true); + }); + }); + + describe('isFileExcluded', () => { + it('should exclude system files', () => { + expect(isFileExcluded('.DS_Store')).toBe(true); + expect(isFileExcluded('desktop.ini')).toBe(true); + expect(isFileExcluded('.gitignore')).toBe(true); + expect(isFileExcluded('Thumbs.db')).toBe(true); // 修复:确保 Thumbs.db 被正确排除 + }); + + it('should not exclude markdown files', () => { + expect(isFileExcluded('document.md')).toBe(false); + expect(isFileExcluded('README.md')).toBe(false); + }); + + it('should not exclude regular files', () => { + expect(isFileExcluded('image.png')).toBe(false); + expect(isFileExcluded('data.json')).toBe(false); + }); + }); + + describe('isPathInExcludedFolder', () => { + it('should detect paths in excluded folders', () => { + expect(isPathInExcludedFolder('.obsidian/config.json')).toBe(true); + expect(isPathInExcludedFolder('Attachments/image.png')).toBe(true); + expect(isPathInExcludedFolder('folder/Attachments/file.md')).toBe(true); + }); + + it('should not exclude paths in allowed folders', () => { + expect(isPathInExcludedFolder('Notes/document.md')).toBe(false); + expect(isPathInExcludedFolder('Projects/work/file.md')).toBe(false); + }); + + it('should handle nested excluded folders', () => { + expect(isPathInExcludedFolder('.git/config')).toBe(true); + expect(isPathInExcludedFolder('project/.git/hooks/pre-commit')).toBe(true); + }); + }); +}); \ No newline at end of file diff --git a/deprecated/src/test/unit/stores/uiStore.test.ts b/deprecated/src/test/unit/stores/uiStore.test.ts new file mode 100644 index 0000000..d2736fe --- /dev/null +++ b/deprecated/src/test/unit/stores/uiStore.test.ts @@ -0,0 +1,155 @@ +import { describe, it, expect, beforeEach } from 'vitest'; +import { useUIStore } from '../../../stores/uiStore'; + +describe('uiStore', () => { + beforeEach(() => { + // Reset store state before each test + useUIStore.setState({ + leftSidebarOpen: true, + rightSidebarOpen: true, + leftSidebarWidth: 300, + rightSidebarWidth: 280, + activeLeftPanel: 'files', + activeRightPanel: 'outline', + mainContentView: 'file', + theme: 'light', + isMobile: false, + isTablet: false, + mobileLeftDrawerOpen: false, + mobileRightDrawerOpen: false, + mobileDrawerOpen: false, + activeMobileTab: 'files', + mobileDropdownOpen: false, + }); + }); + + describe('initial state', () => { + it('should have correct default values', () => { + const state = useUIStore.getState(); + + expect(state.activeLeftPanel).toBe('files'); + expect(state.activeRightPanel).toBe('outline'); + expect(state.mainContentView).toBe('file'); + expect(state.theme).toBe('light'); + expect(state.leftSidebarWidth).toBe(300); + expect(state.rightSidebarWidth).toBe(280); + }); + }); + + describe('sidebar actions', () => { + it('should toggle left sidebar', () => { + const { toggleLeftSidebar } = useUIStore.getState(); + + expect(useUIStore.getState().leftSidebarOpen).toBe(true); + toggleLeftSidebar(); + expect(useUIStore.getState().leftSidebarOpen).toBe(false); + toggleLeftSidebar(); + expect(useUIStore.getState().leftSidebarOpen).toBe(true); + }); + + it('should toggle right sidebar', () => { + const { toggleRightSidebar } = useUIStore.getState(); + + expect(useUIStore.getState().rightSidebarOpen).toBe(true); + toggleRightSidebar(); + expect(useUIStore.getState().rightSidebarOpen).toBe(false); + }); + + it('should constrain sidebar width', () => { + const { setLeftSidebarWidth } = useUIStore.getState(); + + // Test minimum constraint + setLeftSidebarWidth(100); + expect(useUIStore.getState().leftSidebarWidth).toBe(200); + + // Test maximum constraint + setLeftSidebarWidth(700); + expect(useUIStore.getState().leftSidebarWidth).toBe(600); + + // Test valid value + setLeftSidebarWidth(400); + expect(useUIStore.getState().leftSidebarWidth).toBe(400); + }); + }); + + describe('panel switching', () => { + it('should switch active left panel', () => { + const { setActiveLeftPanel } = useUIStore.getState(); + + setActiveLeftPanel('tags'); + expect(useUIStore.getState().activeLeftPanel).toBe('tags'); + + setActiveLeftPanel('files'); + expect(useUIStore.getState().activeLeftPanel).toBe('files'); + }); + + it('should switch active right panel', () => { + const { setActiveRightPanel } = useUIStore.getState(); + + setActiveRightPanel('graph'); + expect(useUIStore.getState().activeRightPanel).toBe('graph'); + + setActiveRightPanel('outline'); + expect(useUIStore.getState().activeRightPanel).toBe('outline'); + }); + }); + + describe('theme management', () => { + it('should switch theme', () => { + const { setTheme } = useUIStore.getState(); + + setTheme('dark'); + expect(useUIStore.getState().theme).toBe('dark'); + + setTheme('light'); + expect(useUIStore.getState().theme).toBe('light'); + }); + }); + + describe('responsive behavior', () => { + it('should handle mobile state changes', () => { + const { setIsMobile } = useUIStore.getState(); + + // Switch to mobile should close drawers + useUIStore.setState({ + mobileLeftDrawerOpen: true, + mobileRightDrawerOpen: true + }); + + setIsMobile(true); + const state = useUIStore.getState(); + + expect(state.isMobile).toBe(true); + expect(state.mobileLeftDrawerOpen).toBe(false); + expect(state.mobileRightDrawerOpen).toBe(false); + }); + + it('should handle tablet state changes', () => { + const { setIsTablet } = useUIStore.getState(); + + // Set a wide sidebar width first + useUIStore.setState({ leftSidebarWidth: 500 }); + + setIsTablet(true); + const state = useUIStore.getState(); + + expect(state.isTablet).toBe(true); + expect(state.leftSidebarWidth).toBe(300); // Should be adjusted to tablet width + }); + }); + + describe('mobile drawer management', () => { + it('should manage unified mobile drawer', () => { + const { setMobileDrawerOpen, setActiveMobileTab } = useUIStore.getState(); + + setMobileDrawerOpen(true); + expect(useUIStore.getState().mobileDrawerOpen).toBe(true); + + setActiveMobileTab('outline'); + expect(useUIStore.getState().activeMobileTab).toBe('outline'); + + setMobileDrawerOpen(false); + expect(useUIStore.getState().mobileDrawerOpen).toBe(false); + }); + }); +}); \ No newline at end of file diff --git a/deprecated/src/test/unit/utils/frontMatterParser.test.ts b/deprecated/src/test/unit/utils/frontMatterParser.test.ts new file mode 100644 index 0000000..47c2d7e --- /dev/null +++ b/deprecated/src/test/unit/utils/frontMatterParser.test.ts @@ -0,0 +1,61 @@ +import { describe, it, expect } from 'vitest'; +import { parseFrontMatter } from '../../../utils/frontMatterParser'; + +describe('frontMatterParser', () => { + describe('parseFrontMatter', () => { + it('should extract YAML front matter', () => { + const content = `--- +title: Test Document +tags: [test, demo] +created: 2024-01-01 +--- + +# Test Content +This is the actual content.`; + + const result = parseFrontMatter(content); + expect(result.frontMatter).toEqual({ + title: 'Test Document', + tags: '[test, demo]', // The parser seems to keep array format as string + created: '2024-01-01' + }); + expect(result.content).toBe(`# Test Content +This is the actual content.`); + }); + + it('should handle content without front matter', () => { + const content = `# Regular Markdown +This has no front matter.`; + + const result = parseFrontMatter(content); + expect(result.frontMatter).toEqual({}); + expect(result.content).toBe(content); + }); + + it('should handle malformed front matter', () => { + const content = `--- +invalid yaml: [unclosed +--- + +# Content`; + + const result = parseFrontMatter(content); + // The parser actually parses this as valid YAML (key-value pair) + expect(result.frontMatter).toEqual({ + 'invalid yaml': '[unclosed' + }); + expect(result.content).toBe(`# Content`); + }); + + it('should handle empty front matter', () => { + const content = `--- +--- + +# Content`; + + const result = parseFrontMatter(content); + expect(result.frontMatter).toEqual({}); + expect(result.content).toBe(content); // Returns original content when front matter is empty + }); + }); +}); \ No newline at end of file diff --git a/deprecated/src/test/unit/utils/obsidianLinkUtils.test.ts b/deprecated/src/test/unit/utils/obsidianLinkUtils.test.ts new file mode 100644 index 0000000..2f470ce --- /dev/null +++ b/deprecated/src/test/unit/utils/obsidianLinkUtils.test.ts @@ -0,0 +1,240 @@ +import { describe, it, expect } from 'vitest'; +import { + parseObsidianLink, + resolveFilePath, + createFileIndex, + findFilePath +} from '../../../utils/obsidianLinkUtils'; + +describe('obsidianLinkUtils', () => { + describe('parseObsidianLink', () => { + it('should identify and parse obsidian links', () => { + expect(parseObsidianLink('[[Document Name]]')).toBeTruthy(); + expect(parseObsidianLink('[[Folder/Document]]')).toBeTruthy(); + expect(parseObsidianLink('[[Document|Display Text]]')).toBeTruthy(); + expect(parseObsidianLink('![[image.png]]')).toBeTruthy(); + }); + + it('should reject non-obsidian links', () => { + expect(parseObsidianLink('[Regular Link](url)')).toBeNull(); + expect(parseObsidianLink('regular text')).toBeNull(); + expect(parseObsidianLink('[incomplete')).toBeNull(); + }); + + it('should parse simple document links', () => { + const result = parseObsidianLink('[[Document Name]]'); + expect(result).toEqual({ + type: 'file', + filePath: 'Document Name', + displayText: undefined, + isRelativePath: false + }); + }); + + it('should parse links with display text', () => { + const result = parseObsidianLink('[[Document Name|Custom Display]]'); + expect(result).toEqual({ + type: 'file', + filePath: 'Document Name', + displayText: 'Custom Display', + isRelativePath: false + }); + }); + + it('should parse image embeds', () => { + const result = parseObsidianLink('![[image.png]]'); + expect(result).toEqual({ + type: 'image', + filePath: 'image.png', + displayText: undefined, + isRelativePath: false + }); + }); + + it('should parse folder paths', () => { + const result = parseObsidianLink('[[Folder/Document]]'); + expect(result).toEqual({ + type: 'file', + filePath: 'Folder/Document', + displayText: undefined, + isRelativePath: false + }); + }); + + it('should handle relative paths', () => { + const result = parseObsidianLink('![[../../Attachments/image.png]]'); + expect(result?.type).toBe('image'); + expect(result?.filePath).toBe('../../Attachments/image.png'); + expect(result?.isRelativePath).toBe(true); + }); + + it('should handle invalid links', () => { + expect(parseObsidianLink('[invalid]')).toBeNull(); + expect(parseObsidianLink('')).toBeNull(); + + // Empty [[]] is actually parsed as a valid file link with empty path + const emptyResult = parseObsidianLink('[[]]'); + expect(emptyResult?.filePath).toBe(''); + }); + }); + + describe('resolveFilePath', () => { + const mockVaultFiles = [ + { path: '/Welcome.md', name: 'Welcome.md' }, + { path: '/Projects/project1.md', name: 'project1.md' }, + { path: '/Attachments/image.png', name: 'image.png' }, + { path: '/FolderA/SubFolder/document.md', name: 'document.md' } + ]; + + it('should resolve relative paths correctly', () => { + const result = resolveFilePath('../Attachments/image.png', '/Projects', mockVaultFiles); + expect(result).toBe('/Attachments/image.png'); + }); + + it('should handle absolute paths', () => { + const result = resolveFilePath('/Projects/project1.md', '/current', mockVaultFiles); + expect(result).toBe('/Projects/project1.md'); + + const result2 = resolveFilePath('Projects/project1.md', '/current', mockVaultFiles); + expect(result2).toBe('/Projects/project1.md'); + }); + + it('should find files by name with exact match', () => { + const result = resolveFilePath('Welcome', '/current', mockVaultFiles); + expect(result).toBe('/Welcome.md'); + }); + + it('should find files by full filename', () => { + const result = resolveFilePath('image.png', '/current', mockVaultFiles); + expect(result).toBe('/Attachments/image.png'); + }); + + it('should perform case-insensitive matching', () => { + const result = resolveFilePath('WELCOME', '/current', mockVaultFiles); + expect(result).toBe('/Welcome.md'); + }); + + it('should perform partial matching as fallback', () => { + const result = resolveFilePath('doc', '/current', mockVaultFiles); + expect(result).toBe('/FolderA/SubFolder/document.md'); + }); + + it('should return null for non-existent files', () => { + const result = resolveFilePath('nonexistent', '/current', mockVaultFiles); + expect(result).toBeNull(); + }); + }); + + describe('createFileIndex', () => { + const mockFiles = [ + { path: '/Welcome.md', type: 'file' }, + { path: '/Projects/project1.md', type: 'file' }, + { path: '/Attachments/image.png', type: 'file' }, + { path: '/FolderA/SubFolder/document.md', type: 'file' }, + { path: '/tracks/route.gpx', type: 'file' }, + { path: '/SomeFolder', type: 'folder' } + ]; + + it('should create comprehensive file index', () => { + const index = createFileIndex(mockFiles); + + // Should index by full filename + expect(index.get('welcome.md')).toBe('/Welcome.md'); + expect(index.get('image.png')).toBe('/Attachments/image.png'); + + // Should index by name without extension for supported types + expect(index.get('welcome')).toBe('/Welcome.md'); + expect(index.get('route')).toBe('/tracks/route.gpx'); + + // Should index by full path + expect(index.get('/projects/project1.md')).toBe('/Projects/project1.md'); + + // Should index by relative path + expect(index.get('projects/project1.md')).toBe('/Projects/project1.md'); + + // Should not index folders + expect(index.get('somefolder')).toBeUndefined(); + + // Should handle Attachments folder specially + expect(index.get('attachments/image.png')).toBe('/Attachments/image.png'); + }); + + it('should handle empty file list', () => { + const index = createFileIndex([]); + expect(index.size).toBe(0); + }); + + it('should handle files without extensions', () => { + const filesNoExt = [ + { path: '/README', type: 'file' } + ]; + const index = createFileIndex(filesNoExt); + expect(index.get('readme')).toBe('/README'); + }); + }); + + describe('findFilePath', () => { + const mockIndex = new Map([ + ['welcome.md', '/Welcome.md'], + ['welcome', '/Welcome.md'], + ['project1.md', '/Projects/project1.md'], + ['project1', '/Projects/project1.md'], + ['projects/project1.md', '/Projects/project1.md'], + ['/projects/project1.md', '/Projects/project1.md'], + ['image.png', '/Attachments/image.png'], + ['attachments/image.png', '/Attachments/image.png'], + ['夏之北海道.md', '/Publish/Trips/Plans/夏之北海道.md'], + ['夏之北海道', '/Publish/Trips/Plans/夏之北海道.md'] + ]); + + it('should find exact matches', () => { + const result = findFilePath('Welcome', mockIndex); + expect(result).toBe('/Welcome.md'); + }); + + it('should find with .md extension added', () => { + const result = findFilePath('project1', mockIndex); + expect(result).toBe('/Projects/project1.md'); + }); + + it('should find by removing extension', () => { + const result = findFilePath('project1.md', mockIndex); + expect(result).toBe('/Projects/project1.md'); + }); + + it('should extract filename from path', () => { + const result = findFilePath('Plans/夏之北海道', mockIndex); + expect(result).toBe('/Publish/Trips/Plans/夏之北海道.md'); + }); + + it('should handle relative paths with currentFileDir', () => { + const result = findFilePath('../Attachments/image.png', mockIndex, '/Projects'); + expect(result).toBe('/Attachments/image.png'); + }); + + it('should perform fuzzy matching', () => { + // Add a complex entry for fuzzy matching + mockIndex.set('publish/trips/plans/夏之北海道.md', '/Publish/Trips/Plans/夏之北海道.md'); + + const result = findFilePath('trips/plans/夏之北海道', mockIndex); + expect(result).toBe('/Publish/Trips/Plans/夏之北海道.md'); + }); + + it('should return null for non-existent files', () => { + const result = findFilePath('nonexistent-file', mockIndex); + expect(result).toBeNull(); + }); + + it('should handle empty linkPath', () => { + // Empty string matches the first entry that has '' as key, so let's test with actual null case + expect(findFilePath(' ', mockIndex)).toBeNull(); // Whitespace should return null + }); + + it('should handle relative paths that resolve to non-existent files', () => { + // This relative path resolves to an absolute path but doesn't exist in the mockIndex + const result = findFilePath('../nonexistent-folder/file.md', mockIndex, '/Projects'); + // The function returns the resolved path even if it's not in the index for relative paths + expect(result).toBe('/nonexistent-folder/file.md'); + }); + }); +}); \ No newline at end of file diff --git a/deprecated/src/types/gpx-parser-builder.d.ts b/deprecated/src/types/gpx-parser-builder.d.ts new file mode 100644 index 0000000..7b69431 --- /dev/null +++ b/deprecated/src/types/gpx-parser-builder.d.ts @@ -0,0 +1,48 @@ +declare module 'gpx-parser-builder' { + export interface GPXTrackPoint { + lat: number; + lng: number; + ele?: number; + time?: string; + } + + export interface GPXTrack { + name?: string; + desc?: string; + segments: GPXTrackPoint[][]; + } + + export interface GPXWaypoint { + lat: number; + lng: number; + name?: string; + desc?: string; + ele?: number; + } + + export interface GPXData { + tracks: GPXTrack[]; + waypoints: GPXWaypoint[]; + routes: any[]; + trk?: GPXTrack[]; // Alternative property name + metadata?: { + name?: string; + desc?: string; + time?: string; + }; + } + + interface GPXParser { + parseGpx(gpxString: string): GPXData; + default?: GPXParser; + } + + const GPX: GPXParser & { + parse(gpxString: string): GPXData; + parseGpx(gpxString: string): GPXData; + createGPX(tracks: GPXTrack[], waypoints?: GPXWaypoint[], options?: any): string; + default: GPXParser; + }; + + export default GPX; +} \ No newline at end of file diff --git a/src/types/vault.ts b/deprecated/src/types/vault.ts similarity index 100% rename from src/types/vault.ts rename to deprecated/src/types/vault.ts diff --git a/src/utils/fetchWithAuth.ts b/deprecated/src/utils/fetchWithAuth.ts similarity index 100% rename from src/utils/fetchWithAuth.ts rename to deprecated/src/utils/fetchWithAuth.ts diff --git a/src/utils/frontMatterParser.ts b/deprecated/src/utils/frontMatterParser.ts similarity index 93% rename from src/utils/frontMatterParser.ts rename to deprecated/src/utils/frontMatterParser.ts index b2833fa..22c2a16 100644 --- a/src/utils/frontMatterParser.ts +++ b/deprecated/src/utils/frontMatterParser.ts @@ -34,14 +34,6 @@ export function parseFrontMatter(rawContent: string): ParsedContent { // 简单的 YAML 解析(支持基本格式) const frontMatter = parseSimpleYaml(yamlContent); - console.log('🔍 Front Matter 解析结果:', { - file: 'Welcome.md', - frontMatter, - detectedKeys: Object.keys(frontMatter), - uuid: frontMatter.uuid, - tags: frontMatter.tags - }); - return { frontMatter, content: markdownContent diff --git a/src/utils/mantineThemeBridge.ts b/deprecated/src/utils/mantineThemeBridge.ts similarity index 100% rename from src/utils/mantineThemeBridge.ts rename to deprecated/src/utils/mantineThemeBridge.ts diff --git a/src/services/markdownProcessor.ts b/deprecated/src/utils/markdownProcessor.ts similarity index 94% rename from src/services/markdownProcessor.ts rename to deprecated/src/utils/markdownProcessor.ts index 03ee0ab..b7ba798 100644 --- a/src/services/markdownProcessor.ts +++ b/deprecated/src/utils/markdownProcessor.ts @@ -1,14 +1,14 @@ /** * Unified Markdown Processing Pipeline - * + * * This service handles markdown parsing and rendering using the unified ecosystem * with support for Obsidian-specific syntax extensions. */ import { unified } from 'unified'; import remarkParse from 'remark-parse'; -import { VAULT_PATH } from '../config/env'; -import { fetchVault } from '../utils/fetchWithAuth'; +import { VAULT_PATH } from '../config/vaultConfig'; +import { fetchVault } from './fetchWithAuth'; import remarkGfm from 'remark-gfm'; import remarkMath from 'remark-math'; import remarkRehype from 'remark-rehype'; @@ -18,7 +18,7 @@ import rehypeSlug from 'rehype-slug'; import rehypeStringify from 'rehype-stringify'; import { obsidianLinksPlugin } from './plugins/obsidianLinksPlugin'; import { externalLinksPlugin } from './plugins/externalLinksPlugin'; -import { parseFrontMatter, type FrontMatterData } from '../utils/frontMatterParser'; +import { parseFrontMatter, type FrontMatterData } from './frontMatterParser'; import { visit } from 'unist-util-visit'; import type { Root as MdastRoot, Node as MdastNode } from 'mdast'; import type { Root as HastRoot, Element as HastElement } from 'hast'; @@ -39,7 +39,7 @@ function wrapTablesPlugin() { }, children: [node] }; - + // Replace table with wrapped table parent.children[index] = wrapper; } @@ -86,24 +86,24 @@ function remarkObsidianTags() { return (tree: MdastRoot) => { visit(tree, 'text', (node, index, parent) => { if (!parent || typeof index !== 'number') return; - + const value = node.value; - const tagRegex = /(^|[\s::,,])(#[\w\-\/]+)/g; - + const tagRegex = /(^|[\s::,,])(#[\w\-/]+)/g; + if (!tagRegex.test(value)) return; - - + + const parts: Array<{ type: 'text' | 'tag'; value: string }> = []; let lastIndex = 0; let match; - + tagRegex.lastIndex = 0; // Reset regex - + while ((match = tagRegex.exec(value)) !== null) { const fullMatch = match[0]; const prefix = match[1]; const tag = match[2]; - + // Add text before the tag (including prefix) if (match.index > lastIndex) { parts.push({ @@ -116,15 +116,15 @@ function remarkObsidianTags() { value: prefix }); } - + parts.push({ type: 'tag', value: tag }); - + lastIndex = match.index + fullMatch.length; } - + // Add remaining text if (lastIndex < value.length) { parts.push({ @@ -132,7 +132,7 @@ function remarkObsidianTags() { value: value.slice(lastIndex) }); } - + // Replace the text node with processed parts if (parts.length > 1) { const newNodes: MdastNode[] = parts.map(part => { @@ -153,7 +153,7 @@ function remarkObsidianTags() { }; } }); - + (parent.children as any[]).splice(index, 1, ...newNodes); } }); @@ -167,18 +167,18 @@ function remarkObsidianHighlights() { return (tree: MdastRoot) => { visit(tree, 'text', (node, index, parent) => { if (!parent || typeof index !== 'number') return; - + const value = node.value; const highlightRegex = /==([^=]+)==/g; - + if (!highlightRegex.test(value)) return; - + const parts: Array<{ type: 'text' | 'highlight'; value: string }> = []; let lastIndex = 0; let match; - + highlightRegex.lastIndex = 0; // Reset regex - + while ((match = highlightRegex.exec(value)) !== null) { // Add text before the highlight if (match.index > lastIndex) { @@ -187,15 +187,15 @@ function remarkObsidianHighlights() { value: value.slice(lastIndex, match.index) }); } - + parts.push({ type: 'highlight', value: match[1] }); - + lastIndex = match.index + match[0].length; } - + // Add remaining text if (lastIndex < value.length) { parts.push({ @@ -203,7 +203,7 @@ function remarkObsidianHighlights() { value: value.slice(lastIndex) }); } - + // Replace the text node with processed parts if (parts.length > 1) { const newNodes: MdastNode[] = parts.map(part => { @@ -221,7 +221,7 @@ function remarkObsidianHighlights() { }; } }); - + (parent.children as any[]).splice(index, 1, ...newNodes); } }); @@ -236,24 +236,24 @@ function remarkObsidianCallouts() { visit(tree, 'blockquote', (node) => { const firstChild = node.children[0]; if (!firstChild || firstChild.type !== 'paragraph') return; - + const firstText = firstChild.children[0]; if (!firstText || firstText.type !== 'text') return; - + // Check for callout syntax: [!type] title (handle multiline content) const fullText = firstText.value; - const calloutRegex = /^\[!([\w\-]+)\]\s*(.*?)$/s; // 's' flag for multiline + const calloutRegex = /^\[!([\w-]+)\]\s*(.*?)$/s; // 's' flag for multiline const match = fullText.match(calloutRegex); - + if (!match) return; - + const calloutType = match[1].toLowerCase(); const calloutTitle = match[2].split('\n')[0].trim() || calloutType.charAt(0).toUpperCase() + calloutType.slice(1); - + // Extract content after the title line const titleLine = `[!${match[1]}] ${calloutTitle}`; const contentText = fullText.replace(titleLine, '').trim(); - + // Transform blockquote to callout div (node as any).type = 'element'; node.data = { @@ -263,7 +263,7 @@ function remarkObsidianCallouts() { 'data-callout': calloutType } }; - + // Create callout structure const titleElement = { type: 'element' as any, @@ -275,10 +275,10 @@ function remarkObsidianCallouts() { }, children: [{ type: 'text', value: calloutTitle }] }; - + // Create content - preserve all children after first paragraph for multi-paragraph callouts const contentChildren = []; - + // Add remaining content from first paragraph if any if (contentText) { contentChildren.push({ @@ -286,12 +286,12 @@ function remarkObsidianCallouts() { children: [{ type: 'text', value: contentText }] }); } - + // Add all remaining child elements (preserving lists, etc.) for (let i = 1; i < node.children.length; i++) { contentChildren.push(node.children[i]); } - + const contentElement = { type: 'element' as any, data: { @@ -302,7 +302,7 @@ function remarkObsidianCallouts() { }, children: contentChildren }; - + node.children = [titleElement, contentElement]; }); }; @@ -314,22 +314,22 @@ function remarkObsidianCallouts() { function extractMermaidDiagrams(markdown: string) { const mermaidDiagrams: Array<{ id: string; code: string; placeholder: string }> = []; let diagramId = 0; - + // Replace mermaid code blocks with placeholders and extract the code const processedMarkdown = markdown.replace(/```mermaid\n([\s\S]*?)\n```/g, (_, code) => { const id = `mermaid-diagram-${diagramId++}`; // Use a text-based placeholder that won't be stripped by HTML sanitizer const placeholder = `MERMAID_PLACEHOLDER_${id}`; - + mermaidDiagrams.push({ id, code: code.trim(), placeholder }); - + return placeholder; }); - + return { processedMarkdown, mermaidDiagrams }; } @@ -339,70 +339,70 @@ function extractMermaidDiagrams(markdown: string) { function extractTrackMaps(markdown: string) { const trackMaps: Array<{ id: string; code: string; placeholder: string; isFile?: boolean; fileType?: string }> = []; let mapId = 0; - + // Replace track code blocks with placeholders and extract the code let processedMarkdown = markdown; - + // Handle direct GPX content: ```gpx\n...\n``` processedMarkdown = processedMarkdown.replace(/```gpx\n([\s\S]*?)\n```/g, (_, code) => { const id = `track-map-${mapId++}`; const placeholder = `TRACK_PLACEHOLDER_${id}`; - + trackMaps.push({ id, code: code.trim(), placeholder, isFile: false }); - + return placeholder; }); - + // Handle GPX file references: ```gpx:@Publish/Attachments/file.gpx``` processedMarkdown = processedMarkdown.replace(/```gpx:(.+?)```/g, (_, filePath) => { const id = `track-map-${mapId++}`; const placeholder = `TRACK_PLACEHOLDER_${id}`; - + trackMaps.push({ id, code: filePath.trim(), // Store file path in code field placeholder, isFile: true }); - + return placeholder; }); - + // Handle KML file references: ```kml:@Publish/Attachments/file.kml``` processedMarkdown = processedMarkdown.replace(/```kml:(.+?)```/g, (_, filePath) => { const id = `track-map-${mapId++}`; const placeholder = `TRACK_PLACEHOLDER_${id}`; - + trackMaps.push({ id, code: filePath.trim(), // Store file path in code field placeholder, isFile: true }); - + return placeholder; }); - + // Handle direct KML content: ```kml\n...\n``` processedMarkdown = processedMarkdown.replace(/```kml\n([\s\S]*?)\n```/g, (_, code) => { const id = `track-map-${mapId++}`; const placeholder = `TRACK_PLACEHOLDER_${id}`; - + trackMaps.push({ id, code: code.trim(), placeholder, isFile: false }); - + return placeholder; }); - + return { processedMarkdown, trackMaps }; } @@ -412,25 +412,25 @@ function extractTrackMaps(markdown: string) { function extractTrackMapsFromHTML(html: string) { const trackMaps: Array<{ id: string; code: string; placeholder: string; isFile?: boolean; fileType?: string }> = []; let mapId = 0; - + let processedHtml = html; - + // Check if HTML contains track-embed elements // const trackEmbedRegex = /
]*>/g; - + // Handle track embeds generated by obsidianLinksPlugin:
processedHtml = processedHtml.replace( /
<\/div>/g, (_, trackType, trackUrl) => { const id = `track-map-${mapId++}`; const placeholder = `TRACK_PLACEHOLDER_${id}`; - + // Extract file path from URL (remove baseUrl prefix) let filePath = trackUrl; if (trackUrl.startsWith(VAULT_PATH)) { filePath = trackUrl.replace(VAULT_PATH, ''); } - + trackMaps.push({ id, code: filePath, // Store file path in code field @@ -438,11 +438,11 @@ function extractTrackMapsFromHTML(html: string) { isFile: true, fileType: trackType // 🔧 保存文件类型信息 }); - + return placeholder; } ); - + return { processedMarkdown: processedHtml, trackMaps }; } @@ -451,65 +451,65 @@ function extractTrackMapsFromHTML(html: string) { */ export class MarkdownProcessor { private processor: any; - + constructor(options: MarkdownProcessingOptions = DEFAULT_OPTIONS) { this.processor = unified() .use(remarkParse) .use(remarkGfm); - + // Add Obsidian-specific plugins if (options.enableObsidianLinks) { this.processor.use(obsidianLinksPlugin()); } - + if (options.enableObsidianTags) { this.processor.use(remarkObsidianTags); } - + if (options.enableHighlights) { this.processor.use(remarkObsidianHighlights); } - + if (options.enableCallouts) { this.processor.use(remarkObsidianCallouts); } - + // Add math support if (options.enableMath) { this.processor.use(remarkMath); } - + // Convert to HTML - allow dangerous HTML to preserve custom elements this.processor.use(remarkRehype, { allowDangerousHtml: true }); - + // Add heading IDs but disable autolinks to prevent clickable titles // TOC functionality does not depend on rehypeAutolinkHeadings since it uses document.getElementById() this.processor.use(rehypeSlug); // Commented out to fix issue where all headings become clickable links // this.processor.use(rehypeAutolinkHeadings, { behavior: 'wrap' }); - + // Add HTML plugins if (options.enableMath) { this.processor.use(rehypeKatex); } - + // Wrap tables in responsive containers this.processor.use(wrapTablesPlugin); - + // Transform frontmatter tags into styled badges (will be added dynamically) - + // Handle external links (add target="_blank") this.processor.use(externalLinksPlugin); - + // Mermaid diagrams are now handled in extractMermaidDiagrams function - + if (options.enableCodeHighlight) { this.processor.use(rehypeHighlight); } - + this.processor.use(rehypeStringify, { allowDangerousHtml: true }); } - + /** * Process markdown string to HTML */ @@ -517,12 +517,12 @@ export class MarkdownProcessor { const result = await this.processor.process(markdown); return String(result); } - + /** * Process markdown and extract metadata */ async processWithMetadata( - markdown: string, + markdown: string, currentFilePath?: string ): Promise<{ html: string; @@ -537,11 +537,11 @@ export class MarkdownProcessor { }> { // Parse front matter and remove it from content (tags now handled by LocalTagAPI) const { frontMatter, content } = parseFrontMatter(markdown); - + // Extract Mermaid diagrams and track maps from content without front matter const { processedMarkdown: markdownAfterMermaid, mermaidDiagrams } = extractMermaidDiagrams(content); const { processedMarkdown, trackMaps: initialTrackMaps } = extractTrackMaps(markdownAfterMermaid); - + // Load metadata.json for intelligent link resolution let metadataArray: any[] = []; try { @@ -552,12 +552,12 @@ export class MarkdownProcessor { } catch (error) { console.warn('Failed to load metadata.json, using fallback path resolution:', error); } - + // Create a simplified processor that doesn't require file index const processorWithContext = unified() .use(remarkParse) .use(remarkGfm) - .use(obsidianLinksPlugin({ + .use(obsidianLinksPlugin({ baseUrl: VAULT_PATH, currentFilePath, metadata: metadataArray @@ -575,7 +575,7 @@ export class MarkdownProcessor { .use(externalLinksPlugin) // Handle external links .use(rehypeHighlight) .use(rehypeStringify, { allowDangerousHtml: true }); - + // Then process the markdown with diagrams replaced by placeholders const ast = processorWithContext.parse(processedMarkdown); const metadata = { @@ -583,24 +583,24 @@ export class MarkdownProcessor { links: [] as Array<{ href: string; text: string }>, tags: [] as string[] }; - + // Extract metadata from AST and add IDs to headings const usedIds = new Set(); let headingIndex = 0; - + visit(ast, (node: any) => { if (node.type === 'heading') { const text = node.children .filter((child: any) => child.type === 'text') .map((child: any) => child.value) .join(''); - + // Generate a more robust ID that preserves unicode characters - let baseId = text.toLowerCase() + const baseId = text.toLowerCase() .replace(/\s+/g, '-') - .replace(/[^\w\u4e00-\u9fff\-]/g, '') // Keep Chinese characters + .replace(/[^\w\u4e00-\u9fff-]/g, '') // Keep Chinese characters .replace(/^-+|-+$/g, ''); // Remove leading/trailing dashes - + // Ensure ID is unique by adding a suffix if needed let id = baseId; let counter = 1; @@ -608,15 +608,15 @@ export class MarkdownProcessor { id = `${baseId}-${counter}`; counter++; } - + // If ID is empty (e.g. all special characters), use fallback if (!id) { id = `heading-${headingIndex}`; } - + usedIds.add(id); headingIndex++; - + // Add ID to the heading node for HTML rendering if (!node.data) { node.data = {}; @@ -625,42 +625,42 @@ export class MarkdownProcessor { node.data.hProperties = {}; } node.data.hProperties.id = id; - + metadata.headings.push({ level: node.depth, text, id }); } - + if (node.type === 'link') { const text = node.children .filter((child: any) => child.type === 'text') .map((child: any) => child.value) .join(''); - + metadata.links.push({ href: node.url, text }); - + // Check if it's a tag link if (node.url.startsWith('#tag:')) { metadata.tags.push(node.url.replace('#tag:', '')); } } }); - + // Second pass: generate HTML from the modified AST (which now has IDs) const transformedAst = await processorWithContext.run(ast); const initialHtml = processorWithContext.stringify(transformedAst); - + // Third pass: extract additional track maps from the generated HTML (to handle obsidianLinksPlugin embeds) const { processedMarkdown: finalHtml, trackMaps: additionalTrackMaps } = extractTrackMapsFromHTML(initialHtml); - + // Combine initial track maps (from markdown) with additional ones (from HTML embeds) const allTrackMaps = [...initialTrackMaps, ...additionalTrackMaps]; - + return { html: finalHtml, metadata, frontMatter, mermaidDiagrams, trackMaps: allTrackMaps }; } } diff --git a/deprecated/src/utils/metaTagService.ts b/deprecated/src/utils/metaTagService.ts new file mode 100644 index 0000000..8714f51 --- /dev/null +++ b/deprecated/src/utils/metaTagService.ts @@ -0,0 +1,172 @@ +/** + * 动态Meta标签管理服务 + * 用于根据当前文章内容更新页面的meta标签,支持微信、Twitter等平台的分享 + */ + +export interface MetaTagsData { + title: string; + description: string; + image?: string; + url?: string; + } + + export class MetaTagService { + /** + * 更新页面的meta标签 + */ + static updateMetaTags(data: MetaTagsData): void { + const { title, description, image, url } = data; + + // 更新页面标题 + document.title = title; + this.updateMetaElement('page-title', 'textContent', title); + + // 更新描述 + this.updateMetaElement('meta-description', 'content', description); + + // 更新Open Graph标签 + this.updateMetaElement('og-title', 'content', title); + this.updateMetaElement('og-description', 'content', description); + + if (image) { + this.updateMetaElement('og-image', 'content', image); + } + + if (url) { + this.updateMetaElement('og-url', 'content', url); + } + + // 更新Twitter Card标签 + this.updateMetaElement('twitter-title', 'content', title); + this.updateMetaElement('twitter-description', 'content', description); + + if (image) { + this.updateMetaElement('twitter-image', 'content', image); + } + } + + /** + * 根据Markdown文件内容生成meta标签数据 + */ + static generateMetaFromContent(fileName: string, content: string): MetaTagsData { + // 提取文件标题(移除.md后缀) + const title = fileName.replace(/\.md$/, '').replace(/_/g, ' '); + + // 提取描述(取前200个字符的纯文本) + const description = this.extractDescription(content); + + // 获取当前URL,确保是完整的HTTPS URL + const url = this.getCanonicalUrl(); + + // 提取第一张图片作为分享图(如果有的话) + const image = this.extractFirstImage(content) || this.generateDefaultShareImage(title); + + return { + title: `${title} - Helenite`, + description, + url, + image + }; + } + + /** + * 从Markdown内容中提取描述文本 + */ + private static extractDescription(content: string): string { + // 移除YAML前言 + const withoutFrontmatter = content.replace(/^---[\s\S]*?---\n/, ''); + + // 移除Markdown语法 + const plainText = withoutFrontmatter + .replace(/#{1,6}\s+/g, '') // 移除标题标记 + .replace(/\*\*([^*]+)\*\*/g, '$1') // 移除粗体 + .replace(/\*([^*]+)\*/g, '$1') // 移除斜体 + .replace(/`([^`]+)`/g, '$1') // 移除行内代码 + .replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') // 移除链接,保留文本 + .replace(/\n+/g, ' ') // 将换行替换为空格 + .trim(); + + // 截取前200个字符 + const maxLength = 200; + if (plainText.length <= maxLength) { + return plainText || 'Modern Obsidian Vault Viewer - 现代化的 Obsidian 知识库浏览器'; + } + + return plainText.substring(0, maxLength).replace(/\s+\S*$/, '') + '...'; + } + + /** + * 更新指定的meta元素 + */ + private static updateMetaElement(id: string, attribute: string, value: string): void { + const element = document.getElementById(id); + if (element) { + if (attribute === 'textContent') { + element.textContent = value; + } else { + element.setAttribute(attribute, value); + } + } + } + + /** + * 从Markdown内容中提取第一张图片 + */ + private static extractFirstImage(content: string): string | null { + // 匹配Markdown图片语法: ![alt](url) + const imageRegex = /!\[.*?\]\((.*?)\)/; + const match = content.match(imageRegex); + + if (match && match[1]) { + const imageUrl = match[1]; + // 如果是相对路径,转换为绝对路径 + if (imageUrl.startsWith('http')) { + return imageUrl; + } else if (imageUrl.startsWith('/')) { + return `${window.location.origin}${imageUrl}`; + } else { + // 相对于当前页面的路径 + const currentPath = window.location.pathname; + const basePath = currentPath.substring(0, currentPath.lastIndexOf('/')); + return `${window.location.origin}${basePath}/${imageUrl}`; + } + } + + return null; + } + + /** + * 获取规范化的分享URL + */ + private static getCanonicalUrl(): string { + // 确保URL是完整的HTTPS格式,微信抓取需要 + const currentUrl = window.location.href; + + // 如果是localhost或IP地址,可能需要替换为实际域名 + if (currentUrl.includes('localhost') || currentUrl.includes('127.0.0.1') || /^\d+\.\d+\.\d+\.\d+/.test(currentUrl)) { + console.warn('检测到本地URL,微信可能无法抓取。建议使用HTTPS域名。'); + } + + return currentUrl; + } + + /** + * 生成默认分享图片(可以是动态生成的或固定的logo) + */ + private static generateDefaultShareImage(_title: string): string { + // 可以返回一个动态生成的图片URL,或者默认logo + // 这里先返回一个默认图片 + return `${window.location.origin}/vite.svg`; + } + + /** + * 重置meta标签为默认值 + */ + static resetToDefaults(): void { + this.updateMetaTags({ + title: 'Helenite', + description: 'Modern Obsidian Vault Viewer - 现代化的 Obsidian 知识库浏览器', + url: window.location.origin + }); + } + } \ No newline at end of file diff --git a/src/utils/obsidianLinkUtils.ts b/deprecated/src/utils/obsidianLinkUtils.ts similarity index 88% rename from src/utils/obsidianLinkUtils.ts rename to deprecated/src/utils/obsidianLinkUtils.ts index 2d7d37a..a515786 100644 --- a/src/utils/obsidianLinkUtils.ts +++ b/deprecated/src/utils/obsidianLinkUtils.ts @@ -157,13 +157,11 @@ export function findFilePath( fileIndex: Map, currentFileDir?: string ): string | null { - console.log(`🔍 findFilePath: searching for "${linkPath}" in index with ${fileIndex.size} entries`); // 处理相对路径 if (currentFileDir && (linkPath.startsWith('../') || linkPath.startsWith('./'))) { try { const resolvedPath = new URL(linkPath, `file://${currentFileDir}/`).pathname; - console.log(`🔍 Resolved relative path "${linkPath}" to "${resolvedPath}"`); return resolvedPath; } catch { return null; @@ -173,14 +171,12 @@ export function findFilePath( // 1. 直接查找 const directMatch = fileIndex.get(linkPath.toLowerCase()); if (directMatch) { - console.log(`✅ Direct match found: "${linkPath}" → "${directMatch}"`); return directMatch; } // 2. 添加 .md 扩展名再查找 const withMdExt = fileIndex.get(`${linkPath.toLowerCase()}.md`); if (withMdExt) { - console.log(`✅ Match with .md extension: "${linkPath}.md" → "${withMdExt}"`); return withMdExt; } @@ -188,7 +184,6 @@ export function findFilePath( const withoutExt = linkPath.replace(/\.(md|txt)$/, '').toLowerCase(); const withoutExtMatch = fileIndex.get(withoutExt); if (withoutExtMatch) { - console.log(`✅ Match without extension: "${withoutExt}" → "${withoutExtMatch}"`); return withoutExtMatch; } @@ -197,14 +192,12 @@ export function findFilePath( if (fileName && fileName !== linkPath) { const fileNameMatch = fileIndex.get(fileName.toLowerCase()); if (fileNameMatch) { - console.log(`✅ Filename match: extracted "${fileName}" from "${linkPath}" → "${fileNameMatch}"`); return fileNameMatch; } // 也尝试添加 .md 扩展名 const fileNameWithMd = fileIndex.get(`${fileName.toLowerCase()}.md`); if (fileNameWithMd) { - console.log(`✅ Filename with .md match: "${fileName}.md" → "${fileNameWithMd}"`); return fileNameWithMd; } } @@ -213,7 +206,6 @@ export function findFilePath( for (const [key, value] of fileIndex.entries()) { // 检查文件路径是否以链接路径结尾(处理部分路径匹配) if (key.endsWith(linkPath.toLowerCase()) || key.endsWith(`${linkPath.toLowerCase()}.md`)) { - console.log(`✅ Fuzzy match: "${linkPath}" found in "${key}" → "${value}"`); return value; } @@ -222,12 +214,10 @@ export function findFilePath( if (linkParts.length > 1) { const lastPart = linkParts[linkParts.length - 1]; if (key.includes(lastPart) && key.includes(linkParts[0])) { - console.log(`✅ Multi-part match: "${linkPath}" parts found in "${key}" → "${value}"`); return value; } } } - console.log(`❌ No match found for "${linkPath}"`); return null; } \ No newline at end of file diff --git a/src/utils/obsidianThemeMapping.ts b/deprecated/src/utils/obsidianThemeMapping.ts similarity index 98% rename from src/utils/obsidianThemeMapping.ts rename to deprecated/src/utils/obsidianThemeMapping.ts index 4864390..3f81d24 100644 --- a/src/utils/obsidianThemeMapping.ts +++ b/deprecated/src/utils/obsidianThemeMapping.ts @@ -1,6 +1,6 @@ /** * Comprehensive Obsidian Theme Variable Mapping - * + * * This module provides complete mapping between Obsidian theme CSS variables * and their semantic meanings for use with Mantine components. */ @@ -20,7 +20,7 @@ export interface ObsidianThemeVariables { '--background-modifier-error-rgb': string; '--background-modifier-error-hover': string; '--background-modifier-cover': string; - + // Text colors '--text-normal': string; '--text-muted': string; @@ -33,7 +33,7 @@ export interface ObsidianThemeVariables { '--text-on-accent': string; '--text-accent': string; '--text-accent-hover': string; - + // Interactive elements '--interactive-normal': string; '--interactive-hover': string; @@ -41,12 +41,12 @@ export interface ObsidianThemeVariables { '--interactive-accent-rgb': string; '--interactive-accent-hover': string; '--interactive-success': string; - + // Scrollbars '--scrollbar-active-thumb-bg': string; '--scrollbar-bg': string; '--scrollbar-thumb-bg': string; - + // Titlebar (for desktop apps) '--titlebar-background': string; '--titlebar-background-focused': string; @@ -54,14 +54,14 @@ export interface ObsidianThemeVariables { '--titlebar-text-color-focused': string; '--titlebar-text-color-unfocused': string; '--titlebar-text-weight': string; - + // Tables '--table-header-bg': string; '--table-header-bg-hover': string; '--table-row-alt-bg': string; '--table-row-hover-bg': string; '--table-border-color': string; - + // Code '--code-background': string; '--code-normal': string; @@ -75,12 +75,12 @@ export interface ObsidianThemeVariables { '--code-string': string; '--code-tag': string; '--code-value': string; - + // Blockquotes and callouts '--blockquote-border': string; '--embed-border': string; '--embed-background': string; - + // Tags '--tag-background': string; '--tag-background-hover': string; @@ -91,7 +91,7 @@ export interface ObsidianThemeVariables { '--tag-padding-x': string; '--tag-padding-y': string; '--tag-radius': string; - + // Graph '--graph-line': string; '--graph-node': string; @@ -99,7 +99,7 @@ export interface ObsidianThemeVariables { '--graph-node-focused': string; '--graph-node-tag': string; '--graph-node-attachment': string; - + // Sidebar '--nav-item-color': string; '--nav-item-color-hover': string; @@ -114,12 +114,12 @@ export interface ObsidianThemeVariables { '--nav-item-white-space': string; '--nav-collapse-icon-color': string; '--nav-collapse-icon-color-collapsed': string; - + // Indentation guides '--indentation-guide-color': string; '--indentation-guide-color-active': string; '--indentation-guide-width': string; - + // Checkbox '--checkbox-color': string; '--checkbox-color-hover': string; @@ -127,7 +127,7 @@ export interface ObsidianThemeVariables { '--checkbox-border-color-hover': string; '--checklist-done-color': string; '--checklist-done-decoration': string; - + // Toggles '--toggle-border-color': string; '--toggle-border-color-hover': string; @@ -138,7 +138,7 @@ export interface ObsidianThemeVariables { '--toggle-thumb-radius': string; '--toggle-track-background': string; '--toggle-track-background-active': string; - + // Sliders '--slider-track-background': string; '--slider-track-background-active': string; @@ -146,28 +146,28 @@ export interface ObsidianThemeVariables { '--slider-thumb-border-width': string; '--slider-thumb-color': string; '--slider-thumb-radius': string; - + // Ribbons '--ribbon-background': string; '--ribbon-background-collapsed': string; - + // Modals '--modal-background': string; '--modal-border': string; '--modal-border-width': string; '--modal-radius': string; '--modal-community-sidebar-background': string; - + // Prompts '--prompt-border': string; '--prompt-border-color': string; '--prompt-border-width': string; - + // Dividers '--divider-color': string; '--divider-width': string; '--divider-vertical-height': string; - + // Publish (for Obsidian Publish) '--publish-sidebar-background': string; '--publish-sidebar-background-hover': string; @@ -179,7 +179,7 @@ export interface ObsidianThemeVariables { export interface MantineThemeMapping { // Primary color mappings primaryColor: keyof ObsidianThemeVariables; - + // Component-specific mappings components: { ActionIcon: { @@ -194,7 +194,7 @@ export interface MantineThemeMapping { backgroundHover: keyof ObsidianThemeVariables; }; }; - + Button: { light: { color: keyof ObsidianThemeVariables; @@ -213,38 +213,38 @@ export interface MantineThemeMapping { backgroundHover: keyof ObsidianThemeVariables; }; }; - + Tooltip: { background: keyof ObsidianThemeVariables; color: keyof ObsidianThemeVariables; border: keyof ObsidianThemeVariables; }; - + Modal: { background: keyof ObsidianThemeVariables; border: keyof ObsidianThemeVariables; }; - + Input: { background: keyof ObsidianThemeVariables; color: keyof ObsidianThemeVariables; border: keyof ObsidianThemeVariables; backgroundFocused: keyof ObsidianThemeVariables; }; - + Checkbox: { color: keyof ObsidianThemeVariables; borderColor: keyof ObsidianThemeVariables; background: keyof ObsidianThemeVariables; }; - + Table: { headerBackground: keyof ObsidianThemeVariables; rowHoverBackground: keyof ObsidianThemeVariables; borderColor: keyof ObsidianThemeVariables; }; }; - + // Global mappings global: { body: keyof ObsidianThemeVariables; @@ -261,7 +261,7 @@ export interface MantineThemeMapping { */ export const DEFAULT_OBSIDIAN_MANTINE_MAPPING: MantineThemeMapping = { primaryColor: '--interactive-accent', - + components: { ActionIcon: { subtle: { @@ -275,7 +275,7 @@ export const DEFAULT_OBSIDIAN_MANTINE_MAPPING: MantineThemeMapping = { backgroundHover: '--interactive-accent-hover', }, }, - + Button: { light: { color: '--text-normal', @@ -294,38 +294,38 @@ export const DEFAULT_OBSIDIAN_MANTINE_MAPPING: MantineThemeMapping = { backgroundHover: '--background-secondary', }, }, - + Tooltip: { background: '--background-secondary', color: '--text-normal', border: '--background-modifier-border', }, - + Modal: { background: '--modal-background', border: '--modal-border', }, - + Input: { background: '--background-modifier-form-field', color: '--text-normal', border: '--background-modifier-border', backgroundFocused: '--background-modifier-form-field-highlighted', }, - + Checkbox: { color: '--checkbox-color', borderColor: '--checkbox-border-color', background: '--background-primary', }, - + Table: { headerBackground: '--table-header-bg', rowHoverBackground: '--table-row-hover-bg', borderColor: '--table-border-color', }, }, - + global: { body: '--background-primary', text: '--text-normal', @@ -342,10 +342,10 @@ export const DEFAULT_OBSIDIAN_MANTINE_MAPPING: MantineThemeMapping = { export function createObsidianThemeMapping(): Partial { const computedStyle = getComputedStyle(document.documentElement); const mapping: Partial = {}; - + // Read all available CSS variables const variableNames = Object.keys(DEFAULT_OBSIDIAN_MANTINE_MAPPING.global) as (keyof ObsidianThemeVariables)[]; - + // Add component-specific variables Object.values(DEFAULT_OBSIDIAN_MANTINE_MAPPING.components).forEach(component => { Object.values(component).forEach(variant => { @@ -358,7 +358,7 @@ export function createObsidianThemeMapping(): Partial { } }); }); - + // Remove duplicates and read values [...new Set(variableNames)].forEach(varName => { if (typeof varName === 'string' && varName.startsWith('--')) { @@ -368,7 +368,7 @@ export function createObsidianThemeMapping(): Partial { } } }); - + return mapping; } @@ -377,17 +377,17 @@ export function createObsidianThemeMapping(): Partial { */ export function applyObsidianMantineMapping(mapping: Partial): void { const root = document.documentElement; - + // Apply global mappings const globalMapping = DEFAULT_OBSIDIAN_MANTINE_MAPPING.global; - + Object.entries(globalMapping).forEach(([mantineProperty, obsidianVariable]) => { if (mapping[obsidianVariable as keyof ObsidianThemeVariables]) { const cssProperty = `--mantine-${mantineProperty.replace(/([A-Z])/g, '-$1').toLowerCase()}`; root.style.setProperty(cssProperty, `var(${obsidianVariable})`); } }); - + // Apply primary color if (mapping[DEFAULT_OBSIDIAN_MANTINE_MAPPING.primaryColor]) { root.style.setProperty('--mantine-primary-color', `var(${DEFAULT_OBSIDIAN_MANTINE_MAPPING.primaryColor})`); @@ -400,6 +400,6 @@ export function applyObsidianMantineMapping(mapping: Partial { const matchStart = match.index!; const matchEnd = matchStart + match[0].length; - + // 添加匹配前的文本 if (matchStart > lastIndex) { const beforeText = text.slice(lastIndex, matchStart); @@ -61,7 +61,7 @@ export function obsidianLinksPlugin(options: ObsidianLinksPluginOptions = {}) { // 解析 Obsidian 链接 const parsedLink = parseObsidianLink(match[0]); - + if (parsedLink) { const linkNode = createLinkNode(parsedLink, options); newNodes.push(linkNode); @@ -81,7 +81,7 @@ export function obsidianLinksPlugin(options: ObsidianLinksPluginOptions = {}) { const remainingText = text.slice(lastIndex); if (remainingText) { newNodes.push({ - type: 'text', + type: 'text', value: remainingText }); } @@ -111,7 +111,7 @@ export function obsidianLinksPlugin(options: ObsidianLinksPluginOptions = {}) { */ function createLinkNode(parsedLink: any, options: ObsidianLinksPluginOptions) { const { baseUrl = VAULT_PATH, currentFilePath, metadata } = options; - + // 智能路径解析:优先使用 metadata.json,降级到直接构造路径 const resolvedPath = constructDirectPath(parsedLink.filePath, currentFilePath, metadata); @@ -120,12 +120,12 @@ function createLinkNode(parsedLink: any, options: ObsidianLinksPluginOptions) { case 'file': result = createFileLink(parsedLink, resolvedPath); break; - + case 'image': result = createImageEmbed(parsedLink, resolvedPath, baseUrl); break; - - case 'embed': + + case 'embed': { // 检查是否为轨迹文件 const ext = parsedLink.filePath.split('.').pop()?.toLowerCase(); if (ext === 'gpx' || ext === 'kml') { @@ -134,14 +134,15 @@ function createLinkNode(parsedLink: any, options: ObsidianLinksPluginOptions) { result = createGenericEmbed(parsedLink, resolvedPath); } break; - + } + default: result = { type: 'text', value: `[[${parsedLink.filePath}]]` }; } - + return result; } @@ -151,40 +152,40 @@ function createLinkNode(parsedLink: any, options: ObsidianLinksPluginOptions) { */ function constructDirectPath(linkPath: string, currentFilePath?: string, metadata?: any[]): string { let filePath = linkPath.trim(); - + // 第一步:尝试使用 metadata.json 查找文件 if (metadata && metadata.length > 0) { // 查找文件名匹配的条目(不包括扩展名) const targetFileName = filePath.replace(/\.md$/, ''); // 去掉可能的 .md 后缀 - + const matchedFile = metadata.find(item => { const itemFileName = item.fileName || ''; const itemRelativePath = item.relativePath || ''; - + // 尝试多种匹配方式 return itemFileName === targetFileName || // 直接文件名匹配 itemFileName === `${targetFileName}.md` || // 文件名加扩展名匹配 itemRelativePath.endsWith(`/${targetFileName}.md`) || // 路径结尾匹配 itemRelativePath === `${targetFileName}.md`; // 完整路径匹配 }); - + if (matchedFile) { const resolvedPath = `/${matchedFile.relativePath}`; return resolvedPath; } } - + // 第二步:降级到直接路径构造(原有逻辑) // 处理相对路径解析 if (currentFilePath) { // 获取当前文件的目录 const currentDir = currentFilePath.substring(0, currentFilePath.lastIndexOf('/')); - + // 处理多级向上的相对路径 (../../ 或 ../) if (filePath.startsWith('../')) { let workingDir = currentDir; let workingPath = filePath; - + // 逐级处理 ../ while (workingPath.startsWith('../')) { // 移除一个 ../ @@ -193,7 +194,7 @@ function constructDirectPath(linkPath: string, currentFilePath?: string, metadat const lastSlash = workingDir.lastIndexOf('/'); workingDir = lastSlash > 0 ? workingDir.substring(0, lastSlash) : ''; } - + // 组合最终路径 filePath = workingDir ? `${workingDir}/${workingPath}` : `/${workingPath}`; } else if (filePath.startsWith('./')) { @@ -207,17 +208,17 @@ function constructDirectPath(linkPath: string, currentFilePath?: string, metadat filePath = `${currentDir}/${filePath}`; } } - + // 如果没有扩展名,添加 .md if (!filePath.includes('.') || !filePath.match(/\.[a-zA-Z0-9]+$/)) { filePath = `${filePath}.md`; } - + // 确保路径以 / 开头 if (!filePath.startsWith('/')) { filePath = `/${filePath}`; } - + return filePath; } @@ -225,13 +226,13 @@ function constructDirectPath(linkPath: string, currentFilePath?: string, metadat * 创建文件链接节点(简化版本) */ function createFileLink(parsedLink: any, resolvedPath: string) { - const displayText = parsedLink.displayText || + const displayText = parsedLink.displayText || parsedLink.filePath.split('/').pop()?.replace(/\.md$/, '') || parsedLink.filePath; // 生成不带 .md 扩展名的 URL 路径 const urlPath = resolvedPath.replace(/\.md$/, ''); - + // 总是创建可点击的内部链接(简化版本不验证文件存在性) const linkNode = { type: 'link', @@ -257,16 +258,16 @@ function createFileLink(parsedLink: any, resolvedPath: string) { function createImageEmbed(parsedLink: any, resolvedPath: string, baseUrl: string) { // 处理图片路径 let imagePath = resolvedPath; - + // 如果路径中包含 Attachments,确保路径正确 if (!imagePath.toLowerCase().includes('attachments')) { // 如果不包含 Attachments,假定图片在 Attachments 文件夹中 imagePath = `/Attachments/${imagePath.replace(/^\/+/, '')}`; } - + // 构建完整的图片 URL - const fullImageUrl = imagePath.startsWith('http') - ? imagePath + const fullImageUrl = imagePath.startsWith('http') + ? imagePath : `${baseUrl}${imagePath}`; return { @@ -291,16 +292,16 @@ function createTrackEmbed(parsedLink: any, resolvedPath: string, baseUrl: string // 对于轨迹文件,确保路径正确 // 如果 resolvedPath 是相对路径(不以 / 开头),则添加 / const normalizedPath = resolvedPath.startsWith('/') ? resolvedPath : `/${resolvedPath}`; - - const fullTrackUrl = normalizedPath.startsWith('http') - ? normalizedPath + + const fullTrackUrl = normalizedPath.startsWith('http') + ? normalizedPath : `${baseUrl}${normalizedPath}`; const ext = parsedLink.filePath.split('.').pop()?.toLowerCase(); const placeholder = `TRACK_EMBED_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`; // Log for debugging - console.log('[TrackEmbed] Creating track embed:', { + // console.log('[TrackEmbed] Creating track embed:', { originalPath: parsedLink.filePath, resolvedPath, normalizedPath, diff --git a/src/utils/routeUtils.ts b/deprecated/src/utils/routeUtils.ts similarity index 100% rename from src/utils/routeUtils.ts rename to deprecated/src/utils/routeUtils.ts diff --git a/src/utils/themeLoader.ts b/deprecated/src/utils/themeLoader.ts similarity index 82% rename from src/utils/themeLoader.ts rename to deprecated/src/utils/themeLoader.ts index 2f57bd4..d78875c 100644 --- a/src/utils/themeLoader.ts +++ b/deprecated/src/utils/themeLoader.ts @@ -1,4 +1,10 @@ -import { getObsidianPath } from '../config/env'; +import { VAULT_PATH } from '../config/vaultConfig'; + +// 内联主题路径生成函数 +function getThemePath(relativePath: string): string { + const cleanPath = relativePath.startsWith('/') ? relativePath.slice(1) : relativePath; + return `${VAULT_PATH}/.obsidian/${cleanPath}`; +} export interface ObsidianTheme { name: string; @@ -12,19 +18,19 @@ export const AVAILABLE_THEMES: ObsidianTheme[] = [ name: 'Royal Velvet', version: '0.11.2', author: 'caro401', - cssPath: getObsidianPath('themes/Royal Velvet/theme.css') + cssPath: getThemePath('themes/Royal Velvet/theme.css') }, { name: 'Shiba Inu', version: '1.0.0', author: 'faroukx', - cssPath: getObsidianPath('themes/Shiba Inu/theme.css') + cssPath: getThemePath('themes/Shiba Inu/theme.css') }, { name: 'Terminal', version: '1.0.0', author: 'unknown', - cssPath: getObsidianPath('themes/Terminal/theme.css') + cssPath: getThemePath('themes/Terminal/theme.css') } ]; diff --git a/e2e/basic-navigation.spec.ts b/e2e/basic-navigation.spec.ts new file mode 100644 index 0000000..72b55b7 --- /dev/null +++ b/e2e/basic-navigation.spec.ts @@ -0,0 +1,135 @@ +import { test, expect } from '@playwright/test'; + +test.describe('Basic Navigation', () => { + test('should load the home page', async ({ page }) => { + await page.goto('/'); + + // Wait for the app to load + await expect(page.locator('body')).toBeVisible(); + + // Check if the main layout elements are present + await expect(page.locator('[data-testid="app-layout"]')).toBeVisible(); + }); + + test('should display file tree in left sidebar', async ({ page }) => { + await page.goto('/'); + + // Wait for app to load + await page.waitForSelector('[data-testid="app-layout"]', { timeout: 10000 }); + + // Check if we're on mobile - if so, need to open drawer first + const viewport = page.viewportSize(); + const isMobile = viewport && viewport.width < 768; + + if (isMobile) { + // On mobile, click dropdown button to open mobile menu + const dropdownButton = page.locator('[data-testid="mobile-dropdown-button"]'); + await expect(dropdownButton).toBeVisible({ timeout: 5000 }); + await dropdownButton.click(); + + // Wait for dropdown content to appear (contains file tree) + await page.waitForTimeout(500); // Wait for animation + } + + // Wait for file tree to load + await page.waitForSelector('[data-testid="file-tree"]', { timeout: 10000 }); + + // Check if Welcome.md is visible in the file tree (use more specific selector) + await expect(page.locator('[data-testid="file-tree"]').getByText('Welcome')).toBeVisible(); + }); + + test('should navigate to a document when clicked', async ({ page }) => { + await page.goto('/'); + + // Wait for app to load + await page.waitForSelector('[data-testid="app-layout"]', { timeout: 10000 }); + + // Check if we're on mobile - if so, need to open drawer first + const viewport = page.viewportSize(); + const isMobile = viewport && viewport.width < 768; + + if (isMobile) { + // On mobile, click dropdown button to open mobile menu + const dropdownButton = page.locator('[data-testid="mobile-dropdown-button"]'); + await expect(dropdownButton).toBeVisible({ timeout: 5000 }); + await dropdownButton.click(); + + // Wait for dropdown content to appear (contains file tree) + await page.waitForTimeout(500); // Wait for animation + } + + // Wait for file tree to load (increased timeout for mobile) + await page.waitForSelector('[data-testid="file-tree"]', { timeout: 15000 }); + + // Click on Welcome.md in the file tree + await page.locator('[data-testid="file-tree"]').getByText('Welcome').click(); + + // Wait for content to load + await page.waitForSelector('[data-testid="markdown-content"]', { timeout: 10000 }); + + // Check if the URL contains the file path + expect(page.url()).toContain('Welcome'); + }); + + test('should show markdown content', async ({ page }) => { + await page.goto('/#/Welcome'); + + // Wait for markdown content to render + await page.waitForSelector('[data-testid="markdown-content"]', { timeout: 10000 }); + + // Check if content is rendered (should contain markdown content) + // Welcome.md contains "This is your new *vault*" text + await expect( + page.locator('[data-testid="markdown-content"]').getByText(/This is your new/i) + ).toBeVisible(); + }); + + test('should toggle left sidebar', async ({ page }) => { + await page.goto('/'); + + // Wait for app to load first + await page.waitForSelector('[data-testid="app-layout"]', { timeout: 10000 }); + + // Check if we're on mobile - if so, skip this test since mobile doesn't have left sidebar toggle + const viewport = page.viewportSize(); + const isMobile = viewport && viewport.width < 768; + + if (isMobile) { + // On mobile, there's no left sidebar toggle - test the dropdown instead + const dropdownButton = page.locator('[data-testid="mobile-dropdown-button"]'); + if (await dropdownButton.isVisible()) { + // Open dropdown + await dropdownButton.click(); + await page.waitForTimeout(500); + + // Verify dropdown content is accessible (file tree should be visible) + await expect(page.locator('[data-testid="file-tree"]')).toBeVisible({ timeout: 5000 }); + + // Close dropdown by clicking the button again + await dropdownButton.click(); + await page.waitForTimeout(300); + + // Dropdown should close (file tree should not be visible in dropdown context) + // Note: file tree might still be visible in sidebar on larger screens, so this test is context-dependent + } + } else { + // Desktop/tablet: test the actual left sidebar toggle + const toggleButton = page.locator('[data-testid="toggle-left-sidebar"]'); + await expect(toggleButton).toBeVisible({ timeout: 10000 }); + + // Check initial sidebar state + const leftSidebar = page.locator('[data-testid="left-sidebar"]'); + const initiallyVisible = await leftSidebar.isVisible(); + + // Click toggle button + await toggleButton.click(); + + // Wait a moment for animation + await page.waitForTimeout(300); + + // Sidebar visibility should have changed + const afterToggleVisible = await leftSidebar.isVisible(); + expect(afterToggleVisible).toBe(!initiallyVisible); + } + }); +}); diff --git a/e2e/responsive-layout.spec.ts b/e2e/responsive-layout.spec.ts new file mode 100644 index 0000000..6c24b71 --- /dev/null +++ b/e2e/responsive-layout.spec.ts @@ -0,0 +1,79 @@ +import { test, expect } from '@playwright/test'; + +test.describe('Responsive Layout', () => { + test('should adapt to mobile viewport', async ({ page }) => { + // Set mobile viewport + await page.setViewportSize({ width: 375, height: 667 }); + await page.goto('/'); + + // Wait for app to load and adapt + await page.waitForSelector('[data-testid="app-layout"]'); + + // On mobile, sidebars should be hidden by default + // and main content should be full width + const mainContent = page.locator('[data-testid="main-content"]'); + await expect(mainContent).toBeVisible(); + }); + + test('should show mobile drawer when menu is clicked', async ({ page }) => { + await page.setViewportSize({ width: 375, height: 667 }); + await page.goto('/'); + + // Wait for app to adapt to mobile layout + await page.waitForSelector('[data-testid="app-layout"]', { timeout: 10000 }); + + // Look for mobile dropdown button (should be visible on mobile) + const dropdownButton = page.locator('[data-testid="mobile-dropdown-button"]'); + await expect(dropdownButton).toBeVisible({ timeout: 10000 }); + await dropdownButton.click(); + + // Mobile dropdown content should appear with file tree + await page.waitForTimeout(500); + await expect(page.locator('[data-testid="file-tree"]')).toBeVisible({ timeout: 5000 }); + }); + + test('should adapt to tablet viewport', async ({ page }) => { + // Set tablet viewport + await page.setViewportSize({ width: 768, height: 1024 }); + await page.goto('/'); + + await page.waitForSelector('[data-testid="app-layout"]'); + + // On tablet, left sidebar might be visible but right sidebar hidden + // This depends on the exact breakpoint implementation + }); + + test('should show full desktop layout', async ({ page }) => { + // Set desktop viewport + await page.setViewportSize({ width: 1200, height: 800 }); + await page.goto('/'); + + await page.waitForSelector('[data-testid="app-layout"]'); + + // Desktop should show both sidebars and main content + const leftSidebar = page.locator('[data-testid="left-sidebar"]'); + const mainContent = page.locator('[data-testid="main-content"]'); + const rightSidebar = page.locator('[data-testid="right-sidebar"]'); + + await expect(leftSidebar).toBeVisible(); + await expect(mainContent).toBeVisible(); + await expect(rightSidebar).toBeVisible(); + }); + + test('should handle viewport resize', async ({ page }) => { + // Start with desktop + await page.setViewportSize({ width: 1200, height: 800 }); + await page.goto('/'); + await page.waitForSelector('[data-testid="app-layout"]'); + + // Resize to mobile + await page.setViewportSize({ width: 375, height: 667 }); + + // Wait for layout to adapt + await page.waitForTimeout(500); + + // Layout should adapt to mobile + const appLayout = page.locator('[data-testid="app-layout"]'); + await expect(appLayout).toBeVisible(); + }); +}); diff --git a/eslint.config.js b/eslint.config.js index d94e7de..d7c8663 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,12 +1,13 @@ -import js from '@eslint/js' -import globals from 'globals' -import reactHooks from 'eslint-plugin-react-hooks' -import reactRefresh from 'eslint-plugin-react-refresh' -import tseslint from 'typescript-eslint' -import { globalIgnores } from 'eslint/config' +import js from '@eslint/js'; +import globals from 'globals'; +import reactHooks from 'eslint-plugin-react-hooks'; +import reactRefresh from 'eslint-plugin-react-refresh'; +import tseslint from 'typescript-eslint'; +import { globalIgnores } from 'eslint/config'; +import prettierConfig from 'eslint-config-prettier'; export default tseslint.config([ - globalIgnores(['dist']), + globalIgnores(['dist', 'deprecated/**', 'src/components/DevTools/**']), { files: ['**/*.{ts,tsx}'], extends: [ @@ -14,10 +15,35 @@ export default tseslint.config([ tseslint.configs.recommended, reactHooks.configs['recommended-latest'], reactRefresh.configs.vite, + prettierConfig, // This should be last to override conflicting rules ], languageOptions: { ecmaVersion: 2020, globals: globals.browser, }, + rules: { + // Existing code quality - allow current state but discourage + '@typescript-eslint/no-explicit-any': 'warn', + + // Strict rules for new code - must be fixed + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + }, + ], + + // Code style consistency + 'prefer-const': 'error', + 'no-useless-escape': 'error', + 'no-case-declarations': 'error', + + // React best practices + 'react-hooks/exhaustive-deps': 'warn', // Allow flexibility for complex effects + + // Allow console in development + 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'warn', + }, }, -]) +]); diff --git a/index.html b/index.html index f177475..59ddfa5 100644 --- a/index.html +++ b/index.html @@ -3,28 +3,43 @@ - - - - - - - + + + + + + + Helenite - + - - - - - - - + + + + + + + - - - - + + + +
diff --git a/package-lock.json b/package-lock.json index 469af9b..4d224d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,22 +13,27 @@ "@mantine/notifications": "^7.17.8", "@tabler/icons-react": "^3.34.1", "@types/d3": "^7.4.3", - "@types/node": "^24.3.0", "@types/qrcode": "^1.5.5", "d3": "^7.9.0", + "exifr": "^7.1.3", "gpx-parser-builder": "^1.1.1", "hast-util-to-jsx-runtime": "^2.3.6", + "idb": "^8.0.3", "katex": "^0.16.22", "leaflet": "^1.9.4", "mermaid": "^11.10.1", + "pdfjs-dist": "^5.4.149", "qrcode": "^1.5.4", "react": "^19.1.1", "react-dom": "^19.1.1", + "react-icons": "^5.5.0", "react-leaflet": "^5.0.0", + "react-pdf": "^10.1.0", "react-router-dom": "^7.8.2", "rehype-autolink-headings": "^7.1.0", "rehype-highlight": "^7.0.2", "rehype-katex": "^7.0.1", + "rehype-react": "^8.0.0", "rehype-slug": "^6.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", @@ -42,21 +47,31 @@ }, "devDependencies": { "@eslint/js": "^9.33.0", + "@playwright/test": "^1.55.0", "@types/leaflet": "^1.9.20", + "@types/node": "^24.3.1", + "@types/node-fetch": "^2.6.13", "@types/react": "^19.1.10", "@types/react-dom": "^19.1.7", "@types/xml2js": "^0.4.14", "@vitejs/plugin-react": "^5.0.0", + "@vitest/coverage-v8": "^3.2.4", "autoprefixer": "^10.4.21", "eslint": "^9.33.0", + "eslint-config-prettier": "^10.1.8", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.20", + "fake-indexeddb": "^6.2.2", "globals": "^16.3.0", + "jsdom": "^26.1.0", + "node-fetch": "^3.3.2", "postcss": "^8.5.6", + "prettier": "^3.6.2", "tailwindcss": "^3.4.17", "typescript": "~5.8.3", "typescript-eslint": "^8.39.1", - "vite": "^7.1.2" + "vite": "^7.1.2", + "vitest": "^3.2.4" } }, "node_modules/@alloc/quick-lru": { @@ -108,6 +123,27 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/@asamuzakjp/css-color": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -399,6 +435,16 @@ "node": ">=6.9.0" } }, + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@braintree/sanitize-url": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz", @@ -444,6 +490,121 @@ "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==", "license": "Apache-2.0" }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", @@ -1211,6 +1372,16 @@ "node": ">=12" } }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -1312,6 +1483,191 @@ "langium": "3.3.1" } }, + "node_modules/@napi-rs/canvas": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.80.tgz", + "integrity": "sha512-DxuT1ClnIPts1kQx8FBmkk4BQDTfI5kIzywAaMjQSXfNnra5UFU9PwurXrl+Je3bJ6BGsp/zmshVVFbCmyI+ww==", + "license": "MIT", + "optional": true, + "workspaces": [ + "e2e/*" + ], + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@napi-rs/canvas-android-arm64": "0.1.80", + "@napi-rs/canvas-darwin-arm64": "0.1.80", + "@napi-rs/canvas-darwin-x64": "0.1.80", + "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.80", + "@napi-rs/canvas-linux-arm64-gnu": "0.1.80", + "@napi-rs/canvas-linux-arm64-musl": "0.1.80", + "@napi-rs/canvas-linux-riscv64-gnu": "0.1.80", + "@napi-rs/canvas-linux-x64-gnu": "0.1.80", + "@napi-rs/canvas-linux-x64-musl": "0.1.80", + "@napi-rs/canvas-win32-x64-msvc": "0.1.80" + } + }, + "node_modules/@napi-rs/canvas-android-arm64": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.80.tgz", + "integrity": "sha512-sk7xhN/MoXeuExlggf91pNziBxLPVUqF2CAVnB57KLG/pz7+U5TKG8eXdc3pm0d7Od0WreB6ZKLj37sX9muGOQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-darwin-arm64": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.80.tgz", + "integrity": "sha512-O64APRTXRUiAz0P8gErkfEr3lipLJgM6pjATwavZ22ebhjYl/SUbpgM0xcWPQBNMP1n29afAC/Us5PX1vg+JNQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-darwin-x64": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.80.tgz", + "integrity": "sha512-FqqSU7qFce0Cp3pwnTjVkKjjOtxMqRe6lmINxpIZYaZNnVI0H5FtsaraZJ36SiTHNjZlUB69/HhxNDT1Aaa9vA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.80.tgz", + "integrity": "sha512-eyWz0ddBDQc7/JbAtY4OtZ5SpK8tR4JsCYEZjCE3dI8pqoWUC8oMwYSBGCYfsx2w47cQgQCgMVRVTFiiO38hHQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-gnu": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.80.tgz", + "integrity": "sha512-qwA63t8A86bnxhuA/GwOkK3jvb+XTQaTiVML0vAWoHyoZYTjNs7BzoOONDgTnNtr8/yHrq64XXzUoLqDzU+Uuw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-musl": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.80.tgz", + "integrity": "sha512-1XbCOz/ymhj24lFaIXtWnwv/6eFHXDrjP0jYkc6iHQ9q8oXKzUX1Lc6bu+wuGiLhGh2GS/2JlfORC5ZcXimRcg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-riscv64-gnu": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.80.tgz", + "integrity": "sha512-XTzR125w5ZMs0lJcxRlS1K3P5RaZ9RmUsPtd1uGt+EfDyYMu4c6SEROYsxyatbbu/2+lPe7MPHOO/0a0x7L/gw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-gnu": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.80.tgz", + "integrity": "sha512-BeXAmhKg1kX3UCrJsYbdQd3hIMDH/K6HnP/pG2LuITaXhXBiNdh//TVVVVCBbJzVQaV5gK/4ZOCMrQW9mvuTqA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-musl": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.80.tgz", + "integrity": "sha512-x0XvZWdHbkgdgucJsRxprX/4o4sEed7qo9rCQA9ugiS9qE2QvP0RIiEugtZhfLH3cyI+jIRFJHV4Fuz+1BHHMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-win32-x64-msvc": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.80.tgz", + "integrity": "sha512-Z8jPsM6df5V8B1HrCHB05+bDiCxjE9QA//3YrkKIdVDEwn5RKaqOxCJDRJkl48cJbylcrJbW4HxZbTte8juuPg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1361,6 +1717,22 @@ "node": ">=14" } }, + "node_modules/@playwright/test": { + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.55.0.tgz", + "integrity": "sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.55.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@react-leaflet/core": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-3.0.0.tgz", @@ -1730,6 +2102,16 @@ "@babel/types": "^7.28.2" } }, + "node_modules/@types/chai": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz", + "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*" + } + }, "node_modules/@types/d3": { "version": "7.4.3", "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", @@ -1992,6 +2374,13 @@ "@types/ms": "*" } }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -2061,14 +2450,25 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz", - "integrity": "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==", + "version": "24.3.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.1.tgz", + "integrity": "sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==", "license": "MIT", "dependencies": { "undici-types": "~7.10.0" } }, + "node_modules/@types/node-fetch": { + "version": "2.6.13", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz", + "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.4" + } + }, "node_modules/@types/qrcode": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.5.tgz", @@ -2418,6 +2818,155 @@ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, + "node_modules/@vitest/coverage-v8": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", + "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", @@ -2440,6 +2989,16 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2520,6 +3079,42 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-v8-to-istanbul": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.5.tgz", + "integrity": "sha512-9SdXjNheSiE8bALAQCQQuT6fgQaoxJh7IRYrRGZ8/9nv8WhJeC1aXAwN8TbaOssGOukUvyvnkgD9+Yuykvl1aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.30", + "estree-walker": "^3.0.3", + "js-tokens": "^9.0.1" + } + }, + "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, "node_modules/autoprefixer": { "version": "10.4.21", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", @@ -2645,6 +3240,30 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -2705,6 +3324,23 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2762,6 +3398,16 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, "node_modules/chevrotain": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", @@ -2919,6 +3565,19 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", @@ -3004,6 +3663,20 @@ "node": ">=4" } }, + "node_modules/cssstyle": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^3.2.0", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -3518,6 +4191,30 @@ "lodash-es": "^4.17.21" } }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/dayjs": { "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", @@ -3550,6 +4247,13 @@ "node": ">=0.10.0" } }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" + }, "node_modules/decode-named-character-reference": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", @@ -3563,6 +4267,16 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -3579,6 +4293,16 @@ "robust-predicates": "^3.0.2" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -3658,6 +4382,21 @@ "@types/trusted-types": "^2.0.7" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -3691,6 +4430,62 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/esbuild": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", @@ -3817,6 +4612,22 @@ } } }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, "node_modules/eslint-plugin-react-hooks": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", @@ -3934,6 +4745,16 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -3944,6 +4765,22 @@ "node": ">=0.10.0" } }, + "node_modules/exifr": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/exifr/-/exifr-7.1.3.tgz", + "integrity": "sha512-g/aje2noHivrRSLbAUtBPWFbxKdKhgj/xr1vATDdUXPOFYJlQ62Ft0oy+72V6XLIpDJfHs6gXLbBLAolqOXYRw==", + "license": "MIT" + }, + "node_modules/expect-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", + "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/exsolve": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.7.tgz", @@ -3956,6 +4793,16 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, + "node_modules/fake-indexeddb": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/fake-indexeddb/-/fake-indexeddb-6.2.2.tgz", + "integrity": "sha512-SGbf7fzjeHz3+12NO1dYigcYn4ivviaeULV5yY5rdGihBvvgwMds4r4UBbNIUMwkze57KTDm32rq3j1Az8mzEw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4017,6 +4864,30 @@ "reusify": "^1.0.4" } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -4098,6 +4969,36 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -4156,6 +5057,31 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-nonce": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", @@ -4165,6 +5091,20 @@ "node": ">=6" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/github-slugger": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", @@ -4244,6 +5184,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gpx-parser-builder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/gpx-parser-builder/-/gpx-parser-builder-1.1.1.tgz", @@ -4276,6 +5229,35 @@ "node": ">=8" } }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -4515,6 +5497,26 @@ "node": ">=12.0.0" } }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, "node_modules/html-void-elements": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", @@ -4525,6 +5527,34 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -4537,6 +5567,12 @@ "node": ">=0.10.0" } }, + "node_modules/idb": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/idb/-/idb-8.0.3.tgz", + "integrity": "sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg==", + "license": "ISC" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -4716,6 +5752,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -4746,6 +5789,60 @@ "node": ">=4.0.0" } }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -4793,6 +5890,46 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsdom": { + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", + "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssstyle": "^4.2.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.5.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.16", + "parse5": "^7.2.1", + "rrweb-cssom": "^0.8.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.1.1", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.1.1", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -5258,6 +6395,13 @@ "loose-envify": "cli.js" } }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, "node_modules/lowlight": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-3.3.0.tgz", @@ -5283,6 +6427,75 @@ "yallist": "^3.0.2" } }, + "node_modules/magic-string": { + "version": "0.30.18", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.18.tgz", + "integrity": "sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, + "node_modules/make-cancellable-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/make-cancellable-promise/-/make-cancellable-promise-2.0.0.tgz", + "integrity": "sha512-3SEQqTpV9oqVsIWqAcmDuaNeo7yBO3tqPtqGRcKkEo0lrzD3wqbKG9mkxO65KoOgXqj+zH2phJ2LiAsdzlogSw==", + "license": "MIT", + "funding": { + "url": "https://github.com/wojtekmaj/make-cancellable-promise?sponsor=1" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-event-props": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-2.0.0.tgz", + "integrity": "sha512-G/hncXrl4Qt7mauJEXSg3AcdYzmpkIITTNl5I+rH9sog5Yw0kK6vseJjCaPfOXqOqQuPUP89Rkhfz5kPS8ijtw==", + "license": "MIT", + "funding": { + "url": "https://github.com/wojtekmaj/make-event-props?sponsor=1" + } + }, "node_modules/markdown-table": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", @@ -5305,6 +6518,16 @@ "node": ">= 20" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/mdast-util-find-and-replace": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", @@ -5606,6 +6829,23 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/merge-refs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-2.0.0.tgz", + "integrity": "sha512-3+B21mYK2IqUWnd2EivABLT7ueDhb0b8/dGK8LoFQPrU61YITeCMn14F7y7qZafWNZhUEKb24cJdiT5Wxs3prg==", + "license": "MIT", + "funding": { + "url": "https://github.com/wojtekmaj/merge-refs?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -6240,20 +7480,43 @@ "node": ">=8.6" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "MIT", "engines": { - "node": "*" + "node": ">= 0.6" } }, - "node_modules/minipass": { + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", @@ -6336,6 +7599,46 @@ "dev": true, "license": "MIT" }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -6363,6 +7666,13 @@ "node": ">=0.10.0" } }, + "node_modules/nwsapi": { + "version": "2.2.21", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.21.tgz", + "integrity": "sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==", + "dev": true, + "license": "MIT" + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6566,6 +7876,28 @@ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", "license": "MIT" }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/pdfjs-dist": { + "version": "5.4.149", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.4.149.tgz", + "integrity": "sha512-Xe8/1FMJEQPUVSti25AlDpwpUm2QAVmNOpFP0SIahaPIOKBKICaefbzogLdwey3XGGoaP4Lb9wqiw2e9Jqp0LA==", + "license": "Apache-2.0", + "engines": { + "node": ">=20.16.0 || >=22.3.0" + }, + "optionalDependencies": { + "@napi-rs/canvas": "^0.1.77" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -6617,6 +7949,53 @@ "pathe": "^2.0.3" } }, + "node_modules/playwright": { + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.55.0.tgz", + "integrity": "sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.55.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.55.0.tgz", + "integrity": "sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/pngjs": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", @@ -6802,6 +8181,22 @@ "node": ">= 0.8.0" } }, + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -6908,6 +8303,15 @@ "react": "^19.1.1" } }, + "node_modules/react-icons": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz", + "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -6938,6 +8342,47 @@ "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/react-pdf": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-10.1.0.tgz", + "integrity": "sha512-iUI1YqWgwwZcsXjrehTp3Yi8nT/bvTaWULaRMMyJWvoqqSlopk4LQQ9GDqUnDtX3gzT2glrqrLbjIPl56a+Q3w==", + "license": "MIT", + "dependencies": { + "clsx": "^2.0.0", + "dequal": "^2.0.3", + "make-cancellable-promise": "^2.0.0", + "make-event-props": "^2.0.0", + "merge-refs": "^2.0.0", + "pdfjs-dist": "5.3.93", + "tiny-invariant": "^1.0.0", + "warning": "^4.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/react-pdf?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-pdf/node_modules/pdfjs-dist": { + "version": "5.3.93", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.3.93.tgz", + "integrity": "sha512-w3fQKVL1oGn8FRyx5JUG5tnbblggDqyx2XzA5brsJ5hSuS+I0NdnJANhmeWKLjotdbPQucLBug5t0MeWr0AAdg==", + "license": "Apache-2.0", + "engines": { + "node": ">=20.16.0 || >=22.3.0" + }, + "optionalDependencies": { + "@napi-rs/canvas": "^0.1.71" + } + }, "node_modules/react-refresh": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", @@ -7165,6 +8610,21 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/rehype-react": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/rehype-react/-/rehype-react-8.0.0.tgz", + "integrity": "sha512-vzo0YxYbB2HE+36+9HWXVdxNoNDubx63r5LBzpxBGVWM8s9mdnMdbmuJBAX6TTyuGdZjZix6qU3GcSuKCIWivw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/rehype-slug": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", @@ -7394,6 +8854,13 @@ "points-on-path": "^0.2.1" } }, + "node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "dev": true, + "license": "MIT" + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -7436,6 +8903,19 @@ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", "license": "ISC" }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, "node_modules/scheduler": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", @@ -7487,6 +8967,13 @@ "node": ">=8" } }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -7520,6 +9007,20 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", + "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", + "dev": true, + "license": "MIT" + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -7651,6 +9152,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strip-literal": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", + "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, "node_modules/style-to-js": { "version": "1.1.17", "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.17.tgz", @@ -7734,6 +9255,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, "node_modules/tabbable": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", @@ -7788,6 +9316,47 @@ "jiti": "bin/jiti.js" } }, + "node_modules/test-exclude": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^9.0.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -7811,6 +9380,19 @@ "node": ">=0.8" } }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, "node_modules/tinyexec": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", @@ -7865,6 +9447,56 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz", + "integrity": "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tldts": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.86" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", + "dev": true, + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -7878,6 +9510,32 @@ "node": ">=8.0" } }, + "node_modules/tough-cookie": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -8389,6 +10047,29 @@ } } }, + "node_modules/vite-node": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/vite/node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -8420,6 +10101,99 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/vitest": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vitest/node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, "node_modules/vscode-jsonrpc": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", @@ -8469,6 +10243,28 @@ "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", "license": "MIT" }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/web-namespaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", @@ -8479,6 +10275,63 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -8501,6 +10354,23 @@ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "license": "ISC" }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -8606,6 +10476,38 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, "node_modules/xml2js": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", @@ -8628,6 +10530,13 @@ "node": ">=4.0" } }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, "node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", diff --git a/package.json b/package.json index 3816312..d35f15f 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,18 @@ "scripts": { "dev": "vite", "build": "tsc -b && vite build", + "typecheck": "tsc -b --noEmit", "lint": "eslint .", - "preview": "vite preview" + "format": "prettier --write .", + "format:check": "prettier --check .", + "preview": "vite preview", + "test": "vitest", + "test:unit": "vitest run --exclude=**/*.integration.test.ts", + "test:integration": "vitest run src/services/**/*.integration.test.ts", + "test:ui": "vitest --ui", + "test:coverage": "vitest --coverage", + "test:e2e": "playwright test", + "test:e2e:ui": "playwright test --ui" }, "dependencies": { "@mantine/core": "^7.17.8", @@ -15,22 +25,27 @@ "@mantine/notifications": "^7.17.8", "@tabler/icons-react": "^3.34.1", "@types/d3": "^7.4.3", - "@types/node": "^24.3.0", "@types/qrcode": "^1.5.5", "d3": "^7.9.0", + "exifr": "^7.1.3", "gpx-parser-builder": "^1.1.1", "hast-util-to-jsx-runtime": "^2.3.6", + "idb": "^8.0.3", "katex": "^0.16.22", "leaflet": "^1.9.4", "mermaid": "^11.10.1", + "pdfjs-dist": "^5.4.149", "qrcode": "^1.5.4", "react": "^19.1.1", "react-dom": "^19.1.1", + "react-icons": "^5.5.0", "react-leaflet": "^5.0.0", + "react-pdf": "^10.1.0", "react-router-dom": "^7.8.2", "rehype-autolink-headings": "^7.1.0", "rehype-highlight": "^7.0.2", "rehype-katex": "^7.0.1", + "rehype-react": "^8.0.0", "rehype-slug": "^6.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", @@ -44,20 +59,30 @@ }, "devDependencies": { "@eslint/js": "^9.33.0", + "@playwright/test": "^1.55.0", "@types/leaflet": "^1.9.20", + "@types/node": "^24.3.1", + "@types/node-fetch": "^2.6.13", "@types/react": "^19.1.10", "@types/react-dom": "^19.1.7", "@types/xml2js": "^0.4.14", "@vitejs/plugin-react": "^5.0.0", + "@vitest/coverage-v8": "^3.2.4", "autoprefixer": "^10.4.21", "eslint": "^9.33.0", + "eslint-config-prettier": "^10.1.8", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.20", + "fake-indexeddb": "^6.2.2", "globals": "^16.3.0", + "jsdom": "^26.1.0", + "node-fetch": "^3.3.2", "postcss": "^8.5.6", + "prettier": "^3.6.2", "tailwindcss": "^3.4.17", "typescript": "~5.8.3", "typescript-eslint": "^8.39.1", - "vite": "^7.1.2" + "vite": "^7.1.2", + "vitest": "^3.2.4" } } diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 0000000..bc53314 --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,71 @@ +import { defineConfig, devices } from '@playwright/test'; + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: './e2e', + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL: 'http://127.0.0.1:5173', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + + /* Test against mobile viewports. */ + { + name: 'Mobile Chrome', + use: { ...devices['Pixel 5'] }, + }, + { + name: 'Mobile Safari', + use: { ...devices['iPhone 12'] }, + }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { ...devices['Desktop Edge'], channel: 'msedge' }, + // }, + // { + // name: 'Google Chrome', + // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, + // }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'npm run dev', + url: 'http://127.0.0.1:5173', + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/postcss.config.js b/postcss.config.js index e99ebc2..2aa7205 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -3,4 +3,4 @@ export default { tailwindcss: {}, autoprefixer: {}, }, -} \ No newline at end of file +}; diff --git a/public/vaults/Demo/.obsidian/app.json b/public/vaults/Demo/.obsidian/app.json new file mode 100644 index 0000000..0460bc9 --- /dev/null +++ b/public/vaults/Demo/.obsidian/app.json @@ -0,0 +1,5 @@ +{ + "alwaysUpdateLinks": true, + "attachmentFolderPath": "Attachments", + "newLinkFormat": "relative" +} \ No newline at end of file diff --git a/public/vaults/Demo/.obsidian/appearance.json b/public/vaults/Demo/.obsidian/appearance.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/public/vaults/Demo/.obsidian/appearance.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/vaults/Demo/.obsidian/community-plugins.json b/public/vaults/Demo/.obsidian/community-plugins.json new file mode 100644 index 0000000..8cf7e65 --- /dev/null +++ b/public/vaults/Demo/.obsidian/community-plugins.json @@ -0,0 +1,4 @@ +[ + "metadata-extractor", + "obsidian-leaflet-plugin" +] \ No newline at end of file diff --git a/public/vaults/Demo/.obsidian/core-plugins.json b/public/vaults/Demo/.obsidian/core-plugins.json new file mode 100644 index 0000000..0faa60d --- /dev/null +++ b/public/vaults/Demo/.obsidian/core-plugins.json @@ -0,0 +1,33 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "footnotes": false, + "properties": false, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": true, + "bases": true, + "webviewer": false +} \ No newline at end of file diff --git a/public/vaults/Demo/.obsidian/graph.json b/public/vaults/Demo/.obsidian/graph.json new file mode 100644 index 0000000..c1eb9ed --- /dev/null +++ b/public/vaults/Demo/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": true, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [], + "collapse-display": true, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 1.675133293104688, + "close": true +} \ No newline at end of file diff --git a/public/vaults/Demo/.obsidian/plugins/metadata-extractor/allExceptMd.json b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/allExceptMd.json new file mode 100644 index 0000000..e0b4084 --- /dev/null +++ b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/allExceptMd.json @@ -0,0 +1,115 @@ +{ + "folders": [ + { + "name": "", + "relativePath": "/" + }, + { + "name": "Attachments", + "relativePath": "Attachments" + }, + { + "name": "FolderA", + "relativePath": "FolderA" + }, + { + "name": "helenite-docs", + "relativePath": "helenite-docs" + }, + { + "name": "SubFolder", + "relativePath": "FolderA/SubFolder" + }, + { + "name": "components", + "relativePath": "helenite-docs/components" + } + ], + "nonMdFiles": [ + { + "name": "Pasted image 20250902131727.png", + "basename": "Pasted image 20250902131727", + "relativePath": "Attachments/Pasted image 20250902131727.png" + }, + { + "name": "Pasted image 20250902132358.png", + "basename": "Pasted image 20250902132358", + "relativePath": "Attachments/Pasted image 20250902132358.png" + }, + { + "name": "Pasted image 20250902132222.png", + "basename": "Pasted image 20250902132222", + "relativePath": "Attachments/Pasted image 20250902132222.png" + }, + { + "name": "Pasted image 20250902132433.png", + "basename": "Pasted image 20250902132433", + "relativePath": "Attachments/Pasted image 20250902132433.png" + }, + { + "name": "Get_Started_With_Smallpdf.pdf", + "basename": "Get_Started_With_Smallpdf", + "relativePath": "Attachments/Get_Started_With_Smallpdf.pdf" + }, + { + "name": "inversed_mt_fuji.png", + "basename": "inversed_mt_fuji", + "relativePath": "Attachments/inversed_mt_fuji.png" + }, + { + "name": "yamap_2025-04-02_08_48.gpx", + "basename": "yamap_2025-04-02_08_48", + "relativePath": "Attachments/yamap_2025-04-02_08_48.gpx" + }, + { + "name": "c4611_sample_explain.pdf", + "basename": "c4611_sample_explain", + "relativePath": "Attachments/c4611_sample_explain.pdf" + }, + { + "name": "file_example_MP4_480_1_5MG.mp4", + "basename": "file_example_MP4_480_1_5MG", + "relativePath": "Attachments/file_example_MP4_480_1_5MG.mp4" + }, + { + "name": "file_example_MP3_700KB.mp3", + "basename": "file_example_MP3_700KB", + "relativePath": "Attachments/file_example_MP3_700KB.mp3" + }, + { + "name": "红叶尚湖.gpx", + "basename": "红叶尚湖", + "relativePath": "Attachments/红叶尚湖.gpx" + }, + { + "name": "东西佘山含地铁绿道.kml", + "basename": "东西佘山含地铁绿道", + "relativePath": "Attachments/东西佘山含地铁绿道.kml" + }, + { + "name": "金牛道拦马墙到普安镇.kml", + "basename": "金牛道拦马墙到普安镇", + "relativePath": "Attachments/金牛道拦马墙到普安镇.kml" + }, + { + "name": "金牛道拦马墙到普安镇.gpx", + "basename": "金牛道拦马墙到普安镇", + "relativePath": "Attachments/金牛道拦马墙到普安镇.gpx" + }, + { + "name": "中西citywalk.kml", + "basename": "中西citywalk", + "relativePath": "Attachments/中西citywalk.kml" + }, + { + "name": "Canvas.canvas", + "basename": "Canvas", + "relativePath": "FolderA/Canvas.canvas" + }, + { + "name": "BaseExample.base", + "basename": "BaseExample", + "relativePath": "FolderA/BaseExample.base" + } + ] +} \ No newline at end of file diff --git a/public/vaults/Demo/.obsidian/plugins/metadata-extractor/canvas.json b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/canvas.json new file mode 100644 index 0000000..87338a8 --- /dev/null +++ b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/canvas.json @@ -0,0 +1,7 @@ +[ + { + "name": "Canvas.canvas", + "basename": "Canvas", + "relativePath": "FolderA/Canvas.canvas" + } +] \ No newline at end of file diff --git a/public/vaults/Demo/.obsidian/plugins/metadata-extractor/data.json b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/data.json new file mode 100644 index 0000000..7c1a974 --- /dev/null +++ b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/data.json @@ -0,0 +1,13 @@ +{ + "tagPath": "", + "metadataPath": "", + "allExceptMdPath": "", + "canvasPath": "", + "tagFile": "tags.json", + "metadataFile": "metadata.json", + "allExceptMdFile": "allExceptMd.json", + "canvasFile": "canvas.json", + "writingFrequency": "5", + "writeFilesOnLaunch": true, + "consoleLog": false +} \ No newline at end of file diff --git a/public/vaults/Demo/.obsidian/plugins/metadata-extractor/main.js b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/main.js new file mode 100644 index 0000000..2f10e1b --- /dev/null +++ b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/main.js @@ -0,0 +1,571 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD. +If you want to view the source, visit the plugin's github repository: +https://github.com/kometenstaub/metadata-extractor + +The plugin is MIT-licensed: + + MIT License + + Copyright (c) 2021-2022 kometenstaub + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +*/ + +"use strict"; +var k = Object.defineProperty; +var P = Object.getOwnPropertyDescriptor; +var N = Object.getOwnPropertyNames; +var I = Object.prototype.hasOwnProperty; +var E = (l, a) => { + for (var e in a) k(l, e, { get: a[e], enumerable: !0 }); + }, + L = (l, a, e, t) => { + if ((a && typeof a == "object") || typeof a == "function") + for (let i of N(a)) + !I.call(l, i) && + i !== e && + k(l, i, { + get: () => a[i], + enumerable: !(t = P(a, i)) || t.enumerable, + }); + return l; + }; +var A = (l) => L(k({}, "__esModule", { value: !0 }), l); +var q = {}; +E(q, { default: () => y }); +module.exports = A(q); +var O = require("obsidian"); +var c = require("obsidian"), + v = require("fs"); +function C(l) { + let a = new Blob([l], { type: "text/javascript" }), + e = URL.createObjectURL(a), + t = new Worker(e); + return URL.revokeObjectURL(e), t; +} +function S() { + return C(`self.onmessage=function(l){let c=l.data[0],i=l.data[1],s=c;c.forEach(n=>{let f=n.fileName,k=n.relativePath;s.forEach(t=>{f!==t.fileName&&t.links&&t.links.forEach(a=>{let e={};a.relativePath===k&&(e.fileName=t.fileName,e.link=a.link,e.relativePath=t.relativePath,a.cleanLink&&(e.cleanLink=a.cleanLink),a.displayText&&(e.displayText=a.displayText),i.push(e))})}),i.length>0&&(n.backlinks=i),i=[]}),self.postMessage(c)}; +`); +} +function T(l, a) { + let e = []; + for (let i of a) i.name.slice(-3) !== ".md" && e.push(i); + return j(l, e); +} +function j(l, a) { + let e = {}; + return ( + a.length > 0 + ? Object.assign(e, { folders: l, nonMdFiles: a }) + : Object.assign(e, { folders: l }), + e + ); +} +function J(l) { + let a = [], + e = []; + for (let t of l) + t instanceof c.TFolder + ? a.push({ name: t.name, relativePath: t.path }) + : t instanceof c.TFile && + e.push({ name: t.name, basename: t.basename, relativePath: t.path }); + return { folders: a, files: e }; +} +var F = class { + constructor(a, e) { + (this.plugin = a), (this.app = e); + } + getAbsolutePath(a) { + let e; + if (this.app.vault.adapter instanceof c.FileSystemAdapter) + e = this.app.vault.adapter.getBasePath(); + else throw new Error("Cannot determine base path."); + let t = `${this.app.vault.configDir}/plugins/metadata-extractor/${a}`; + return `${e}/${t}`; + } + getUniqueTags(a) { + let e = [], + t = (0, c.getAllTags)(a); + return ( + t && (e = t), + (e = e.map((i) => i.slice(1).toLowerCase())), + (e = Array.from(new Set(e))), + e + ); + } + writeAllExceptMd(a) { + let e = this.plugin.settings.allExceptMdPath; + this.plugin.settings.allExceptMdPath || (e = this.getAbsolutePath(a)); + let t = this.app.vault.getAllLoadedFiles(), + { folders: i, files: h } = J(t), + r = T(i, h); + (0, v.writeFileSync)(e, JSON.stringify(r, null, 2)), + this.plugin.settings.consoleLog && + console.log( + "Metadata Extractor plugin: wrote the allExceptMd JSON file" + ); + } + writeCanvases(a) { + let e = this.plugin.settings.canvasPath; + this.plugin.settings.canvasPath || (e = this.getAbsolutePath(a)); + let t = this.app.vault.getAllLoadedFiles(), + i = []; + for (let h of t) + h instanceof c.TFile && + h.extension === "canvas" && + i.push({ name: h.name, basename: h.basename, relativePath: h.path }); + (0, v.writeFileSync)(e, JSON.stringify(i, null, 2)), + this.plugin.settings.consoleLog && + console.log("Metadata Extractor plugin: wrote the canvas JSON file"); + } + createCleanFrontmatter(a) { + let e = Object.assign({}, a); + return e.aliases && delete e.aliases, e.tags && delete e.tags, e; + } + writeTagsToJSON(a) { + let e = this.app.metadataCache.getTags(); + if (Object.keys(e).length === 0) { + let n = "There are no tags in your vault."; + if (this.plugin.settings.consoleLog) { + console.log(n); + return; + } else return; + } + let t = this.plugin.settings.tagPath; + this.plugin.settings.tagPath || (t = this.getAbsolutePath(a)); + let i = []; + for (let n of this.app.vault.getMarkdownFiles()) { + let o, + s = this.app.metadataCache.getFileCache(n); + s && (o = s); + let g = n.path, + m = this.getUniqueTags(o); + m.length !== 0 && i.push({ name: g, tags: m }); + } + let r = i + .map((n) => n.tags) + .reduce((n, o) => n.concat(o.map((s) => s.toLowerCase()))), + f = Array.from(new Set(r)), + w = this.app.metadataCache.getTags(), + u = {}; + for (let [n, o] of Object.entries(w)) { + let s = n.slice(1).toLowerCase(); + u[s] = o; + } + let p = []; + for (let n of f) { + let o = []; + for (let g of i) g.tags.contains(n) && o.push(g.name); + let s = u[n]; + p.push({ tag: n, tagCount: s, relativePaths: o }); + } + (0, v.writeFileSync)(t, JSON.stringify(p, null, 2)), + this.plugin.settings.consoleLog && + console.log("Metadata Extractor plugin: wrote the tagToFile JSON file"); + } + writeCacheToJSON(a) { + let e = this.plugin.settings.metadataPath; + this.plugin.settings.metadataPath || (e = this.getAbsolutePath(a)); + let t = []; + for (let r of this.app.vault.getMarkdownFiles()) { + let f = r.basename, + w = r.path, + u, + p = this.app.metadataCache.getFileCache(r); + if (p) u = p; + else { + this.plugin.settings.consoleLog && + console.log(`No cache for file: ${r.path}`); + continue; + } + let n, + o = [], + s = {}; + (s.fileName = f), (s.relativePath = w); + let g = this.getUniqueTags(u); + g && g.length > 0 && (s.tags = g), + u.frontmatter && + ((s.frontmatter = this.createCleanFrontmatter(u.frontmatter)), + (n = (0, c.parseFrontMatterAliases)(u.frontmatter)), + n && n.length > 0 && (s.aliases = n)), + u.headings && + (u.headings.forEach((b) => { + o.push({ heading: b.heading, level: b.level }); + }), + (s.headings = o)); + let m = D(u, s, w, f, this.app, r); + Object.assign(s, m), Object.keys(s).length > 0 && t.push(s); + } + let i = [], + h = S(); + h.postMessage([t, i]), + (h.onerror = (r) => { + new c.Notice("Something went wrong with the backlinks calculation."); + }), + (h.onmessage = (r) => { + (t = r.data), + (0, v.writeFileSync)(e, JSON.stringify(t, null, 2)), + this.plugin.settings.consoleLog && + console.log( + "Metadata Extractor plugin: wrote the metadata JSON file" + ), + h.terminate(); + }); + } + setWritingSchedule(a, e, t, i) { + if (this.plugin.settings.writingFrequency !== "0") { + let r = parseInt(this.plugin.settings.writingFrequency) * 6e4; + window.clearInterval(this.plugin.intervalId1), + (this.plugin.intervalId1 = void 0), + (this.plugin.intervalId1 = window.setInterval( + () => this.writeTagsToJSON(a), + r + )), + this.plugin.registerInterval(this.plugin.intervalId1), + window.clearInterval(this.plugin.intervalId2), + (this.plugin.intervalId2 = void 0), + (this.plugin.intervalId2 = window.setInterval( + () => this.writeCacheToJSON(e), + r + )), + this.plugin.registerInterval(this.plugin.intervalId2), + window.clearInterval(this.plugin.intervalId3), + (this.plugin.intervalId3 = void 0), + (this.plugin.intervalId3 = window.setInterval( + () => this.writeAllExceptMd(t), + r + )), + this.plugin.registerInterval(this.plugin.intervalId3), + window.clearInterval(this.plugin.intervalId4), + (this.plugin.intervalId4 = void 0), + (this.plugin.intervalId4 = window.setInterval( + () => this.writeCanvases(i), + r + )), + this.plugin.registerInterval(this.plugin.intervalId4); + } else + this.plugin.settings.writingFrequency === "0" && + (window.clearInterval(this.plugin.intervalId1), + window.clearInterval(this.plugin.intervalId2), + window.clearInterval(this.plugin.intervalId3), + window.clearInterval(this.plugin.intervalId4)); + } +}; +function D(l, a, e, t, i, h) { + let r = [], + f = []; + w(); + function w() { + let p = [], + n = []; + l.links && (p = l.links), + l.embeds && + (n = l.embeds.filter((o) => { + let s = o.link, + g = (0, c.getLinkpath)(s); + if (i.metadataCache.getFirstLinkpathDest(g, h.path)) return o; + })), + (f = p.concat(n)), + u(); + } + function u() { + for (let p of f) { + let n = p.link, + o = "", + s = {}; + typeof p.displayText != "undefined" && (o = p.displayText); + let g = i.metadataCache.getFirstLinkpathDest( + (0, c.getLinkpath)(n), + h.path + ); + if (!(g && g.path.slice(-3).toLowerCase() !== ".md")) { + if ((n.includes("/") && (n = n.split("/").last()), !n.includes("#"))) + (s.link = n), + o !== n && (s.displayText = o), + g && (s.relativePath = g.path); + else if (n.includes("#") && n.charAt(0) !== "#") { + let m = o, + b = (0, c.getLinkpath)(n); + (s.link = n), + (s.cleanLink = b), + (!o.includes("#") || !o.includes(">")) && (s.displayText = m), + g && (s.relativePath = g.path); + } else + n.charAt(0) === "#" && + ((s.link = n), + (s.relativePath = e), + (s.cleanLink = t), + n !== o && (s.displayText = o)); + r.push(s); + } + } + r.length > 0 && (a.links = r); + } + return a; +} +var d = require("obsidian"), + M = { + tagPath: "", + metadataPath: "", + allExceptMdPath: "", + canvasPath: "", + tagFile: "tags.json", + metadataFile: "metadata.json", + allExceptMdFile: "allExceptMd.json", + canvasFile: "canvas.json", + writingFrequency: "0", + writeFilesOnLaunch: !1, + consoleLog: !1, + }, + x = class extends d.PluginSettingTab { + constructor(e, t) { + super(e, t); + this.plugin = t; + } + display() { + let { containerEl: e } = this; + e.empty(), + e.createEl("h2", { text: "Metadata Extractor Settings" }), + new d.Setting(e) + .setName("File-write path for tags") + .setDesc( + "Where the tag-to-file-names JSON file will be saved. Requires the file name with extension. If this is filled in, the setting below won't have any effect." + ) + .addText((t) => + t + .setPlaceholder("/home/user/Downloads/tags.json") + .setValue(this.plugin.settings.tagPath) + .onChange(async (i) => { + (this.plugin.settings.tagPath = i), + await this.plugin.saveSettings(); + }) + ), + new d.Setting(e) + .setName("File name of tag-to-file-names JSON") + .setDesc( + "Requires the .json extension. Only change this setting if you want to change the name of the saved json in the plugin folder." + ) + .addText((t) => + t + .setPlaceholder("tags.json") + .setValue(this.plugin.settings.tagFile) + .onChange(async (i) => { + (this.plugin.settings.tagFile = i), + await this.plugin.saveSettings(); + }) + ), + new d.Setting(e) + .setName("File-write path for metadata") + .setDesc( + "Where the metadata JSON file will be saved. Requires the file name with extension. If this is filled in, the setting below won't have any effect." + ) + .addText((t) => + t + .setPlaceholder("/home/user/Downloads/metadata.json") + .setValue(this.plugin.settings.metadataPath) + .onChange(async (i) => { + (this.plugin.settings.metadataPath = i), + await this.plugin.saveSettings(); + }) + ), + new d.Setting(e) + .setName("File name of metadata JSON") + .setDesc( + "Requires the .json extension; leave empty if setting above was changed. Only change this setting if you want to change the name of the saved json in the plugin folder." + ) + .addText((t) => + t + .setPlaceholder("metadata.json") + .setValue(this.plugin.settings.metadataFile) + .onChange(async (i) => { + (this.plugin.settings.metadataFile = i), + await this.plugin.saveSettings(); + }) + ), + new d.Setting(e) + .setName("File-write path for canvases") + .setDesc( + "Where the canvas JSON file will be saved. Requires the file name with extension. If this is filled in, the setting below won't have any effect." + ) + .addText((t) => + t + .setPlaceholder("/home/user/Downloads/canvas.json") + .setValue(this.plugin.settings.canvasPath) + .onChange(async (i) => { + (this.plugin.settings.canvasPath = i), + await this.plugin.saveSettings(); + }) + ), + new d.Setting(e) + .setName("File name of canvas JSON") + .setDesc( + "Requires the .json extension; leave empty if setting above was changed. Only change this setting if you want to change the name of the saved json in the plugin folder." + ) + .addText((t) => + t + .setPlaceholder("canvas.json") + .setValue(this.plugin.settings.canvasFile) + .onChange(async (i) => { + (this.plugin.settings.canvasFile = i), + await this.plugin.saveSettings(); + }) + ), + new d.Setting(e) + .setName("File-write path of allExceptMd JSON") + .setDesc( + "Where the allExceptMd JSON file will be saved. Requires the file name with extension. If this is filled in, the setting below won't have any effect." + ) + .addText((t) => + t + .setPlaceholder("/home/user/Downloads/allExceptMd.json") + .setValue(this.plugin.settings.allExceptMdPath) + .onChange(async (i) => { + (this.plugin.settings.allExceptMdPath = i), + await this.plugin.saveSettings(); + }) + ), + new d.Setting(e) + .setName("File name of allExceptMd JSON") + .setDesc( + "Requires the .json extension; leave empty if setting above was changed. Only change this setting if you want to change the name of the saved json in the plugin folder." + ) + .addText((t) => + t + .setPlaceholder("metadata.json") + .setValue(this.plugin.settings.allExceptMdFile) + .onChange(async (i) => { + (this.plugin.settings.allExceptMdFile = i), + await this.plugin.saveSettings(); + }) + ), + new d.Setting(e) + .setName("Configure frequency for writing the three JSON files") + .setDesc( + "The frequency has to be entered in minutes. Set it to 0 to disable the periodic writing." + ) + .addText((t) => + t + .setPlaceholder("120") + .setValue(this.plugin.settings.writingFrequency) + .onChange(async (i) => { + i === "" + ? (this.plugin.settings.writingFrequency = "0") + : (this.plugin.settings.writingFrequency = i), + await this.plugin.saveSettings(), + this.plugin.methods.setWritingSchedule( + this.plugin.settings.tagFile, + this.plugin.settings.metadataFile, + this.plugin.settings.allExceptMdFile, + this.plugin.settings.canvasFile + ); + }) + ), + new d.Setting(e) + .setName("Write JSON files automatically when Obsidian launches") + .setDesc( + "If enabled, the JSON files will be written each time Obsidian starts." + ) + .addToggle((t) => { + t.setValue(this.plugin.settings.writeFilesOnLaunch).onChange( + (i) => { + (this.plugin.settings.writeFilesOnLaunch = i), + this.plugin.saveSettings(); + } + ); + }), + new d.Setting(e) + .setName("Show console logs") + .setDesc("Only enable this for debugging purposes.") + .addToggle((t) => { + t.setValue(this.plugin.settings.consoleLog).onChange((i) => { + (this.plugin.settings.consoleLog = i), this.plugin.saveSettings(); + }); + }); + } + }; +var y = class extends O.Plugin { + constructor() { + super(...arguments); + this.intervalId1 = void 0; + this.intervalId2 = void 0; + this.intervalId3 = void 0; + this.intervalId4 = void 0; + this.methods = new F(this, this.app); + } + async onload() { + console.log("loading Metadata Extractor plugin"), + await this.loadSettings(), + this.addCommand({ + id: "write-tags-json", + name: "Write JSON file with tags and associated file names to disk.", + callback: () => { + this.methods.writeTagsToJSON(this.settings.tagFile); + }, + }), + this.addCommand({ + id: "write-metadata-json", + name: "Write JSON file with metadata to disk.", + callback: () => { + this.methods.writeCacheToJSON(this.settings.metadataFile); + }, + }), + this.addCommand({ + id: "write-allExceptMd-json", + name: "Write JSON file with all folders and non-MD files to disk.", + callback: () => { + this.methods.writeAllExceptMd(this.settings.allExceptMdFile); + }, + }), + this.addCommand({ + id: "write-canvas-json", + name: "Write JSON file with all canvases to disk.", + callback: () => { + this.methods.writeCanvases(this.settings.canvasFile); + }, + }), + this.addSettingTab(new x(this.app, this)), + this.settings.writeFilesOnLaunch && + this.app.workspace.onLayoutReady(() => { + this.methods.writeTagsToJSON(this.settings.tagFile), + this.methods.writeCacheToJSON(this.settings.metadataFile), + this.methods.writeAllExceptMd(this.settings.allExceptMdFile), + this.methods.writeCanvases(this.settings.canvasFile); + }), + this.methods.setWritingSchedule( + this.settings.tagFile, + this.settings.metadataFile, + this.settings.allExceptMdFile, + this.settings.canvasFile + ); + } + onunload() { + console.log("unloading Metadata Extractor plugin"); + } + async loadSettings() { + this.settings = Object.assign({}, M, await this.loadData()); + } + async saveSettings() { + await this.saveData(this.settings); + } +}; +0 && (module.exports = {}); + +/* nosourcemap */ diff --git a/public/vaults/Demo/.obsidian/plugins/metadata-extractor/manifest.json b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/manifest.json new file mode 100644 index 0000000..58a0fee --- /dev/null +++ b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "metadata-extractor", + "name": "Metadata Extractor", + "version": "1.1.0", + "minAppVersion": "1.1.7", + "description": "Metadata export on a schedule for integration with third-party apps like launchers.", + "author": "kometenstaub", + "authorUrl": "https://github.com/kometenstaub", + "isDesktopOnly": true +} diff --git a/public/vaults/Demo/.obsidian/plugins/metadata-extractor/metadata.json b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/metadata.json new file mode 100644 index 0000000..2ff12d5 --- /dev/null +++ b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/metadata.json @@ -0,0 +1,998 @@ +[ + { + "fileName": "devtools", + "relativePath": "devtools.md", + "headings": [ + { + "heading": "Development Tools", + "level": 1 + }, + { + "heading": "Available Tools", + "level": 2 + }, + { + "heading": "Note", + "level": 2 + } + ] + }, + { + "fileName": "services-architecture", + "relativePath": "helenite-docs/services-architecture.md", + "tags": [ + "helenite" + ], + "frontmatter": { + "uuid": "215e245b-8b86-43b8-9728-472b60e47711" + }, + "aliases": [ + "helenite", + "design" + ], + "headings": [ + { + "heading": "Helenite 服务架构概览", + "level": 1 + }, + { + "heading": "服务分层架构(基于数字分层)", + "level": 2 + }, + { + "heading": "3️⃣ 协调层 (Coordination Layer)", + "level": 2 + }, + { + "heading": "VaultService", + "level": 3 + }, + { + "heading": "2️⃣ 领域服务层 (Domain Services)", + "level": 2 + }, + { + "heading": "SearchService", + "level": 3 + }, + { + "heading": "GraphService", + "level": 3 + }, + { + "heading": "TagService", + "level": 3 + }, + { + "heading": "FileTreeService", + "level": 3 + }, + { + "heading": "FootprintsService", + "level": 3 + }, + { + "heading": "FrontMatterService", + "level": 3 + }, + { + "heading": "1️⃣ 基础服务层 (Basic Services)", + "level": 2 + }, + { + "heading": "MetadataService", + "level": 3 + }, + { + "heading": "ExifService", + "level": 3 + }, + { + "heading": "0️⃣ 基础设施层 (Infrastructure Layer)", + "level": 2 + }, + { + "heading": "StorageService", + "level": 3 + }, + { + "heading": "CacheService", + "level": 3 + }, + { + "heading": "📁 配置管理器 (非服务)", + "level": 2 + }, + { + "heading": "VaultConfig", + "level": 3 + }, + { + "heading": "📊 服务统计", + "level": 2 + }, + { + "heading": "按分层统计", + "level": 3 + }, + { + "heading": "服务依赖层级 (单向依赖)", + "level": 3 + }, + { + "heading": "单向依赖原则", + "level": 3 + }, + { + "heading": "🎯 核心功能映射", + "level": 3 + }, + { + "heading": "4️⃣ UI/渲染层 (UI/Render Layer)", + "level": 2 + }, + { + "heading": "MarkdownRenderer ⚡", + "level": 3 + }, + { + "heading": "FileTreeRenderer", + "level": 3 + }, + { + "heading": "GraphRenderer", + "level": 3 + }, + { + "heading": "FootprintsRenderer", + "level": 3 + }, + { + "heading": "TagsRenderer", + "level": 3 + }, + { + "heading": "🔄 服务生命周期", + "level": 2 + }, + { + "heading": "初始化顺序", + "level": 3 + }, + { + "heading": "销毁顺序", + "level": 3 + }, + { + "heading": "🚀 性能考虑", + "level": 2 + }, + { + "heading": "服务启动优化", + "level": 3 + }, + { + "heading": "运行时优化", + "level": 3 + }, + { + "heading": "📚 相关文档", + "level": 2 + }, + { + "heading": "当前可用", + "level": 3 + }, + { + "heading": "计划中的文档", + "level": 3 + }, + { + "heading": "🔍 快速查找", + "level": 2 + }, + { + "heading": "我需要... → 使用哪个服务", + "level": 3 + }, + { + "heading": "服务状态检查", + "level": 3 + }, + { + "heading": "💡 架构决策总结", + "level": 2 + }, + { + "heading": "✅ 采纳的设计决策", + "level": 3 + }, + { + "heading": "🎯 关键架构原则", + "level": 3 + } + ], + "links": [ + { + "link": "map-and-tracks-analysis", + "relativePath": "helenite-docs/components/map-and-tracks-analysis.md" + }, + { + "link": "markdown-and-plugins", + "relativePath": "helenite-docs/components/markdown-and-plugins.md" + }, + { + "link": "服务依赖关系详解" + }, + { + "link": "DDD 领域边界分析" + }, + { + "link": "服务架构设计" + }, + { + "link": "地理数据抽象" + }, + { + "link": "Markdown 插件架构" + }, + { + "link": "块级插件系统" + } + ] + }, + { + "fileName": "README", + "relativePath": "helenite-docs/README.md", + "headings": [ + { + "heading": "📚 Helenite 技术文档", + "level": 1 + }, + { + "heading": "🏗️ 核心架构", + "level": 2 + }, + { + "heading": "[[core/services-architecture|服务架构概览]]", + "level": 3 + }, + { + "heading": "[[core/map-and-tracks-analysis|地图和轨迹系统]]", + "level": 3 + }, + { + "heading": "[[core/markdown-and-plugins|Markdown 渲染和插件系统]]", + "level": 3 + }, + { + "heading": "🎯 设计原则", + "level": 2 + }, + { + "heading": "🚀 快速导航", + "level": 2 + } + ], + "links": [ + { + "link": "services-architecture", + "displayText": "服务架构概览" + }, + { + "link": "map-and-tracks-analysis", + "displayText": "地图和轨迹系统" + }, + { + "link": "markdown-and-plugins", + "displayText": "Markdown 渲染和插件系统" + }, + { + "link": "services-architecture#🔍-快速查找", + "cleanLink": "services-architecture", + "displayText": "服务快速查找" + }, + { + "link": "map-and-tracks-analysis#使用示例", + "cleanLink": "map-and-tracks-analysis", + "displayText": "地图组件使用示例" + }, + { + "link": "markdown-and-plugins#remark-插件-mdast-处理", + "cleanLink": "markdown-and-plugins", + "displayText": "remark 插件开发" + } + ] + }, + { + "fileName": "cache-README", + "relativePath": "helenite-docs/cache-README.md", + "headings": [ + { + "heading": "Helenite 缓存系统", + "level": 1 + }, + { + "heading": "概述", + "level": 2 + }, + { + "heading": "🎯 设计目标", + "level": 2 + }, + { + "heading": "🏗️ 架构设计", + "level": 2 + }, + { + "heading": "🚀 核心特性", + "level": 2 + }, + { + "heading": "1. TypeScript Proxy 动态代理", + "level": 3 + }, + { + "heading": "2. 灵活的缓存配置", + "level": 3 + }, + { + "heading": "3. 高性能持久化缓存", + "level": 3 + }, + { + "heading": "📁 文件结构", + "level": 2 + }, + { + "heading": "💻 使用指南", + "level": 2 + }, + { + "heading": "基础用法", + "level": 3 + }, + { + "heading": "应用级集成", + "level": 3 + }, + { + "heading": "自定义服务缓存", + "level": 3 + }, + { + "heading": "🎛️ 配置选项", + "level": 2 + }, + { + "heading": "CacheManager 配置", + "level": 3 + }, + { + "heading": "方法级缓存配置", + "level": 3 + }, + { + "heading": "📊 性能数据", + "level": 2 + }, + { + "heading": "缓存统计示例", + "level": 3 + }, + { + "heading": "🧪 测试覆盖", + "level": 2 + }, + { + "heading": "单元测试 (19个测试)", + "level": 3 + }, + { + "heading": "集成测试 (5个测试)", + "level": 3 + }, + { + "heading": "使用示例测试 (9个测试)", + "level": 3 + }, + { + "heading": "🎯 最佳实践", + "level": 2 + }, + { + "heading": "1. 缓存策略选择", + "level": 3 + }, + { + "heading": "2. 存储管理", + "level": 3 + }, + { + "heading": "3. 缓存预热", + "level": 3 + }, + { + "heading": "4. 监控和调试", + "level": 3 + }, + { + "heading": "🔄 生命周期管理", + "level": 2 + }, + { + "heading": "🚨 注意事项", + "level": 2 + }, + { + "heading": "🔮 扩展方向", + "level": 2 + }, + { + "heading": "📝 更新日志", + "level": 2 + } + ] + }, + { + "fileName": "markdown-and-plugins", + "relativePath": "helenite-docs/components/markdown-and-plugins.md", + "headings": [ + { + "heading": "Markdown 渲染和插件系统", + "level": 1 + }, + { + "heading": "概述", + "level": 2 + }, + { + "heading": "unified 处理流水线", + "level": 2 + }, + { + "heading": "标准处理流程", + "level": 3 + }, + { + "heading": "架构原理", + "level": 3 + }, + { + "heading": "remark 插件 (MDAST 处理)", + "level": 2 + }, + { + "heading": "Obsidian 语法支持", + "level": 3 + }, + { + "heading": "地图插件 (统一地图组件)", + "level": 3 + }, + { + "heading": "数学公式和图表", + "level": 3 + }, + { + "heading": "统一地图组件设计", + "level": 2 + }, + { + "heading": "核心设计理念", + "level": 3 + }, + { + "heading": "统一地图组件", + "level": 3 + }, + { + "heading": "地图数据加载逻辑", + "level": 3 + }, + { + "heading": "使用语法示例", + "level": 2 + }, + { + "heading": "单个轨迹地图 (TrackMap)", + "level": 3 + }, + { + "heading": "图表", + "level": 3 + }, + { + "heading": "MarkdownProcessor 服务", + "level": 2 + }, + { + "heading": "性能优化策略", + "level": 2 + }, + { + "heading": "组件懒加载", + "level": 3 + }, + { + "heading": "AST 缓存", + "level": 3 + }, + { + "heading": "错误处理", + "level": 2 + } + ], + "backlinks": [ + { + "fileName": "services-architecture", + "link": "markdown-and-plugins", + "relativePath": "helenite-docs/services-architecture.md" + } + ] + }, + { + "fileName": "map-and-tracks-analysis", + "relativePath": "helenite-docs/components/map-and-tracks-analysis.md", + "headings": [ + { + "heading": "地图和轨迹系统分析与设计", + "level": 1 + }, + { + "heading": "现有 TrackMap 实现分析", + "level": 2 + }, + { + "heading": "数据结构", + "level": 3 + }, + { + "heading": "TrackData 接口定义", + "level": 4 + }, + { + "heading": "数据解析流程", + "level": 3 + }, + { + "heading": "GPX 解析结果", + "level": 4 + }, + { + "heading": "KML 解析结果", + "level": 4 + }, + { + "heading": "Footprints 数据源分析", + "level": 2 + }, + { + "heading": "三个输入源,两种数据类型", + "level": 3 + }, + { + "heading": "两种输出数据类型", + "level": 3 + }, + { + "heading": "统一地图组件设计", + "level": 2 + }, + { + "heading": "核心设计理念", + "level": 3 + }, + { + "heading": "统一地图组件", + "level": 3 + }, + { + "heading": "访问状态区分渲染", + "level": 3 + }, + { + "heading": "样式设计约定", + "level": 4 + }, + { + "heading": "自动状态检测策略", + "level": 4 + }, + { + "heading": "智能化UI逻辑", + "level": 3 + }, + { + "heading": "数据处理流程", + "level": 3 + }, + { + "heading": "使用示例", + "level": 2 + }, + { + "heading": "单个轨迹地图", + "level": 3 + }, + { + "heading": "足迹地图", + "level": 3 + }, + { + "heading": "配置接口", + "level": 2 + }, + { + "heading": "FootprintsConfig (Markdown语法配置)", + "level": 3 + }, + { + "heading": "Markdown语法示例", + "level": 3 + } + ], + "backlinks": [ + { + "fileName": "services-architecture", + "link": "map-and-tracks-analysis", + "relativePath": "helenite-docs/services-architecture.md" + } + ] + }, + { + "fileName": "TRACK_SYNTAX", + "relativePath": "FolderA/TRACK_SYNTAX.md", + "headings": [ + { + "heading": "轨迹地图语法支持", + "level": 1 + }, + { + "heading": "🗺️ 支持的语法类型", + "level": 2 + }, + { + "heading": "1. 内联轨迹数据", + "level": 3 + }, + { + "heading": "GPX 内联数据(不再支持)", + "level": 4 + }, + { + "heading": "KML 内联数据(不再支持)", + "level": 4 + }, + { + "heading": "2. 文件引用(推荐)", + "level": 3 + }, + { + "heading": "Obsidian 嵌入语法", + "level": 4 + }, + { + "heading": "Obsidian 链接语法", + "level": 4 + }, + { + "heading": "3. Leaflet 配置(特殊处理)", + "level": 3 + }, + { + "heading": "单个 GPX 文件", + "level": 4 + }, + { + "heading": "GPX 文件列表", + "level": 4 + }, + { + "heading": "4. 足迹聚合地图(不再支持)", + "level": 3 + }, + { + "heading": "🔄 插件处理流程", + "level": 2 + }, + { + "heading": "AST 转换过程", + "level": 3 + }, + { + "heading": "数据结构", + "level": 3 + }, + { + "heading": "🎨 HTML 输出示例", + "level": 2 + }, + { + "heading": "单个轨迹", + "level": 3 + }, + { + "heading": "Leaflet 多轨迹", + "level": 3 + }, + { + "heading": "🔧 配置选项", + "level": 2 + }, + { + "heading": "🧪 测试用例", + "level": 2 + }, + { + "heading": "基础语法测试", + "level": 3 + }, + { + "heading": "测试文档", + "level": 1 + }, + { + "heading": "预期输出", + "level": 3 + }, + { + "heading": "🚀 性能优化", + "level": 2 + }, + { + "heading": "文件引用处理", + "level": 3 + }, + { + "heading": "错误处理", + "level": 3 + }, + { + "heading": "扩展性", + "level": 3 + } + ] + }, + { + "fileName": "linkB", + "relativePath": "FolderA/linkB.md" + }, + { + "fileName": "Abilities", + "relativePath": "FolderA/SubFolder/Abilities.md", + "tags": [ + "test", + "react", + "markdown", + "obsidian", + "abc" + ], + "frontmatter": { + "uuid": "115e245b-8b76-43b8-9728-472b60e47705" + }, + "aliases": [ + "215e245b-8b76-43b8-9728-472b60e47706" + ], + "headings": [ + { + "heading": "Welcome to Helenite", + "level": 1 + }, + { + "heading": "Key Features", + "level": 2 + }, + { + "heading": "Useful Links", + "level": 2 + }, + { + "heading": "Obsidian Syntax Support", + "level": 2 + }, + { + "heading": "Internal Links", + "level": 3 + }, + { + "heading": "Tag System", + "level": 3 + }, + { + "heading": "Highlight", + "level": 3 + }, + { + "heading": "Callouts", + "level": 3 + }, + { + "heading": "Mathematical Formulas", + "level": 2 + }, + { + "heading": "Code Block Example", + "level": 2 + }, + { + "heading": "Charts and Visualizations", + "level": 2 + }, + { + "heading": "Mermaid Flowchart", + "level": 3 + }, + { + "heading": "System Architecture Diagram", + "level": 3 + }, + { + "heading": "Hiking Route Tracking", + "level": 2 + }, + { + "heading": "GPX Track File Test", + "level": 3 + }, + { + "heading": "Lu Yu Ancient Path Loop (Inline GPX)", + "level": 4 + }, + { + "heading": "YAMAP Hiking Route (External GPX File)", + "level": 4 + }, + { + "heading": "KML File Test", + "level": 3 + }, + { + "heading": "City Stroll Route", + "level": 4 + }, + { + "heading": "Sheshan Greenway Route", + "level": 4 + }, + { + "heading": "Red Leaves", + "level": 4 + }, + { + "heading": "a", + "level": 4 + }, + { + "heading": "Task List", + "level": 2 + }, + { + "heading": "References and Footnotes", + "level": 2 + }, + { + "heading": "Table Support", + "level": 2 + }, + { + "heading": "Multimedia Content", + "level": 2 + }, + { + "heading": "Pictures", + "level": 3 + }, + { + "heading": "Horizontal Line", + "level": 3 + }, + { + "heading": "Fun Stuff", + "level": 2 + }, + { + "heading": "Contact", + "level": 2 + }, + { + "heading": "Pictures", + "level": 2 + }, + { + "heading": "Tracks", + "level": 2 + } + ], + "links": [ + { + "link": "Usages", + "relativePath": "Usages.md" + }, + { + "link": "Welcome", + "relativePath": "Welcome.md" + } + ], + "backlinks": [ + { + "fileName": "Welcome", + "link": "Abilities", + "relativePath": "Welcome.md" + } + ] + }, + { + "fileName": "Embedded", + "relativePath": "FolderA/SubFolder/Embedded.md", + "headings": [ + { + "heading": "Embedded Media Examples", + "level": 1 + }, + { + "heading": "PDF", + "level": 2 + }, + { + "heading": "MP4", + "level": 2 + }, + { + "heading": "MP3", + "level": 2 + } + ] + }, + { + "fileName": "Usages", + "relativePath": "Usages.md", + "headings": [ + { + "heading": "Configurations", + "level": 2 + }, + { + "heading": "Plugin", + "level": 2 + }, + { + "heading": "TODO", + "level": 2 + } + ], + "backlinks": [ + { + "fileName": "Abilities", + "link": "Usages", + "relativePath": "FolderA/SubFolder/Abilities.md" + }, + { + "fileName": "Welcome", + "link": "Usages", + "relativePath": "Welcome.md" + } + ] + }, + { + "fileName": "Welcome", + "relativePath": "Welcome.md", + "links": [ + { + "link": "Usages", + "relativePath": "Usages.md" + }, + { + "link": "Abilities", + "relativePath": "FolderA/SubFolder/Abilities.md" + } + ], + "backlinks": [ + { + "fileName": "Abilities", + "link": "Welcome", + "relativePath": "FolderA/SubFolder/Abilities.md" + } + ] + } +] \ No newline at end of file diff --git a/public/vaults/Demo/.obsidian/plugins/metadata-extractor/tags.json b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/tags.json new file mode 100644 index 0000000..b716d30 --- /dev/null +++ b/public/vaults/Demo/.obsidian/plugins/metadata-extractor/tags.json @@ -0,0 +1,44 @@ +[ + { + "tag": "helenite", + "tagCount": 1, + "relativePaths": [ + "helenite-docs/services-architecture.md" + ] + }, + { + "tag": "test", + "tagCount": 1, + "relativePaths": [ + "FolderA/SubFolder/Abilities.md" + ] + }, + { + "tag": "react", + "tagCount": 1, + "relativePaths": [ + "FolderA/SubFolder/Abilities.md" + ] + }, + { + "tag": "markdown", + "tagCount": 1, + "relativePaths": [ + "FolderA/SubFolder/Abilities.md" + ] + }, + { + "tag": "obsidian", + "tagCount": 1, + "relativePaths": [ + "FolderA/SubFolder/Abilities.md" + ] + }, + { + "tag": "abc", + "tagCount": 1, + "relativePaths": [ + "FolderA/SubFolder/Abilities.md" + ] + } +] \ No newline at end of file diff --git a/public/vaults/Demo/.obsidian/plugins/obsidian-leaflet-plugin/data.json b/public/vaults/Demo/.obsidian/plugins/obsidian-leaflet-plugin/data.json new file mode 100644 index 0000000..d534696 --- /dev/null +++ b/public/vaults/Demo/.obsidian/plugins/obsidian-leaflet-plugin/data.json @@ -0,0 +1,39 @@ +{ + "mapMarkers": [], + "defaultMarker": { + "type": "default", + "iconName": "map-marker", + "color": "#dddddd", + "transform": { + "size": 6, + "x": 0, + "y": -2 + }, + "isImage": false + }, + "markerIcons": [], + "color": "#dddddd", + "lat": 39.983334, + "long": -82.98333, + "notePreview": false, + "layerMarkers": true, + "previousVersion": "6.0.5", + "version": { + "major": 6, + "minor": 0, + "patch": 5 + }, + "warnedAboutMapMarker": false, + "copyOnClick": false, + "displayMarkerTooltips": "hover", + "displayOverlayTooltips": true, + "configDirectory": null, + "mapViewEnabled": true, + "mapViewParameters": {}, + "enableDraw": true, + "defaultUnitType": "imperial", + "defaultTile": "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png", + "defaultTileDark": "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png", + "defaultAttribution": "© OpenStreetMap contributors © CARTO", + "defaultTileSubdomains": "a,b,c,d" +} \ No newline at end of file diff --git a/public/vaults/Demo/.obsidian/plugins/obsidian-leaflet-plugin/main.js b/public/vaults/Demo/.obsidian/plugins/obsidian-leaflet-plugin/main.js new file mode 100644 index 0000000..66a3535 --- /dev/null +++ b/public/vaults/Demo/.obsidian/plugins/obsidian-leaflet-plugin/main.js @@ -0,0 +1,3 @@ +/*! For license information please see main.js.LICENSE.txt */ +(()=>{var t={520:function(t,e){!function(t){"use strict";function e(t){return t&&t.normalize&&t.normalize(),t&&t.textContent||""}function a(t,e){const a=t.getElementsByTagName(e);return a.length?a[0]:null}function i(t){const i={};if(t){const n=a(t,"line");if(n){const t=e(a(n,"color")),s=parseFloat(e(a(n,"opacity"))),r=parseFloat(e(a(n,"width")));t&&(i.stroke=t),isNaN(s)||(i["stroke-opacity"]=s),isNaN(r)||(i["stroke-width"]=96*r/25.4)}}return i}function n(t,i){const n={};let s,r;for(r=0;r1,h=Object.assign(s(t),i(a(t,"extensions")),{_gpxType:"trk"},r.length?{coordinateProperties:{times:l?r:r[0]}}:{});for(let t=0;tnew Array(t.line.length).fill(null)))),e[a][t]=i):e[a]=i}}return{type:"Feature",properties:h,geometry:l?{type:"MultiLineString",coordinates:n}:{type:"LineString",coordinates:n[0]}}}function*h(t){const e=t.getElementsByTagName("trk"),a=t.getElementsByTagName("rte"),i=t.getElementsByTagName("wpt");for(let t=0;tArray(t.length).fill(null)))),l[a][t]=e[a])}if(0!==n.length)return(s.length||r.length)&&(l.coordinateProperties=Object.assign(s.length?{times:1===n.length?s[0]:s}:{},r.length?{heart:1===n.length?r[0]:r}:{})),{type:"Feature",properties:l,geometry:{type:1===n.length?"LineString":"MultiLineString",coordinates:1===n.length?n[0]:n}}}function*v(t){const e=t.getElementsByTagName("Lap");for(let t=0;t{var i=a(874),n={};for(var s in i)i.hasOwnProperty(s)&&(n[i[s]]=s);var r=t.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var c in r)if(r.hasOwnProperty(c)){if(!("channels"in r[c]))throw new Error("missing channels property: "+c);if(!("labels"in r[c]))throw new Error("missing channel labels property: "+c);if(r[c].labels.length!==r[c].channels)throw new Error("channel and label counts mismatch: "+c);var o=r[c].channels,l=r[c].labels;delete r[c].channels,delete r[c].labels,Object.defineProperty(r[c],"channels",{value:o}),Object.defineProperty(r[c],"labels",{value:l})}r.rgb.hsl=function(t){var e,a,i=t[0]/255,n=t[1]/255,s=t[2]/255,r=Math.min(i,n,s),c=Math.max(i,n,s),o=c-r;return c===r?e=0:i===c?e=(n-s)/o:n===c?e=2+(s-i)/o:s===c&&(e=4+(i-n)/o),(e=Math.min(60*e,360))<0&&(e+=360),a=(r+c)/2,[e,100*(c===r?0:a<=.5?o/(c+r):o/(2-c-r)),100*a]},r.rgb.hsv=function(t){var e,a,i,n,s,r=t[0]/255,c=t[1]/255,o=t[2]/255,l=Math.max(r,c,o),h=l-Math.min(r,c,o),u=function(t){return(l-t)/6/h+.5};return 0===h?n=s=0:(s=h/l,e=u(r),a=u(c),i=u(o),r===l?n=i-a:c===l?n=1/3+e-i:o===l&&(n=2/3+a-e),n<0?n+=1:n>1&&(n-=1)),[360*n,100*s,100*l]},r.rgb.hwb=function(t){var e=t[0],a=t[1],i=t[2];return[r.rgb.hsl(t)[0],1/255*Math.min(e,Math.min(a,i))*100,100*(i=1-1/255*Math.max(e,Math.max(a,i)))]},r.rgb.cmyk=function(t){var e,a=t[0]/255,i=t[1]/255,n=t[2]/255;return[100*((1-a-(e=Math.min(1-a,1-i,1-n)))/(1-e)||0),100*((1-i-e)/(1-e)||0),100*((1-n-e)/(1-e)||0),100*e]},r.rgb.keyword=function(t){var e=n[t];if(e)return e;var a,s,r,c=1/0;for(var o in i)if(i.hasOwnProperty(o)){var l=(s=t,r=i[o],Math.pow(s[0]-r[0],2)+Math.pow(s[1]-r[1],2)+Math.pow(s[2]-r[2],2));l.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*a+.0722*i),100*(.0193*e+.1192*a+.9505*i)]},r.rgb.lab=function(t){var e=r.rgb.xyz(t),a=e[0],i=e[1],n=e[2];return i/=100,n/=108.883,a=(a/=95.047)>.008856?Math.pow(a,1/3):7.787*a+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(a-i),200*(i-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]},r.hsl.rgb=function(t){var e,a,i,n,s,r=t[0]/360,c=t[1]/100,o=t[2]/100;if(0===c)return[s=255*o,s,s];e=2*o-(a=o<.5?o*(1+c):o+c-o*c),n=[0,0,0];for(var l=0;l<3;l++)(i=r+1/3*-(l-1))<0&&i++,i>1&&i--,s=6*i<1?e+6*(a-e)*i:2*i<1?a:3*i<2?e+(a-e)*(2/3-i)*6:e,n[l]=255*s;return n},r.hsl.hsv=function(t){var e=t[0],a=t[1]/100,i=t[2]/100,n=a,s=Math.max(i,.01);return a*=(i*=2)<=1?i:2-i,n*=s<=1?s:2-s,[e,100*(0===i?2*n/(s+n):2*a/(i+a)),(i+a)/2*100]},r.hsv.rgb=function(t){var e=t[0]/60,a=t[1]/100,i=t[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),r=255*i*(1-a),c=255*i*(1-a*s),o=255*i*(1-a*(1-s));switch(i*=255,n){case 0:return[i,o,r];case 1:return[c,i,r];case 2:return[r,i,o];case 3:return[r,c,i];case 4:return[o,r,i];case 5:return[i,r,c]}},r.hsv.hsl=function(t){var e,a,i,n=t[0],s=t[1]/100,r=t[2]/100,c=Math.max(r,.01);return i=(2-s)*r,a=s*c,[n,100*(a=(a/=(e=(2-s)*c)<=1?e:2-e)||0),100*(i/=2)]},r.hwb.rgb=function(t){var e,a,i,n,s,r,c,o=t[0]/360,l=t[1]/100,h=t[2]/100,u=l+h;switch(u>1&&(l/=u,h/=u),i=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(i=1-i),n=l+i*((a=1-h)-l),e){default:case 6:case 0:s=a,r=n,c=l;break;case 1:s=n,r=a,c=l;break;case 2:s=l,r=a,c=n;break;case 3:s=l,r=n,c=a;break;case 4:s=n,r=l,c=a;break;case 5:s=a,r=l,c=n}return[255*s,255*r,255*c]},r.cmyk.rgb=function(t){var e=t[0]/100,a=t[1]/100,i=t[2]/100,n=t[3]/100;return[255*(1-Math.min(1,e*(1-n)+n)),255*(1-Math.min(1,a*(1-n)+n)),255*(1-Math.min(1,i*(1-n)+n))]},r.xyz.rgb=function(t){var e,a,i,n=t[0]/100,s=t[1]/100,r=t[2]/100;return a=-.9689*n+1.8758*s+.0415*r,i=.0557*n+-.204*s+1.057*r,e=(e=3.2406*n+-1.5372*s+-.4986*r)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:12.92*a,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:12.92*i,[255*(e=Math.min(Math.max(0,e),1)),255*(a=Math.min(Math.max(0,a),1)),255*(i=Math.min(Math.max(0,i),1))]},r.xyz.lab=function(t){var e=t[0],a=t[1],i=t[2];return a/=100,i/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116)-16,500*(e-a),200*(a-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},r.lab.xyz=function(t){var e,a,i,n=t[0];e=t[1]/500+(a=(n+16)/116),i=a-t[2]/200;var s=Math.pow(a,3),r=Math.pow(e,3),c=Math.pow(i,3);return a=s>.008856?s:(a-16/116)/7.787,e=r>.008856?r:(e-16/116)/7.787,i=c>.008856?c:(i-16/116)/7.787,[e*=95.047,a*=100,i*=108.883]},r.lab.lch=function(t){var e,a=t[0],i=t[1],n=t[2];return(e=360*Math.atan2(n,i)/2/Math.PI)<0&&(e+=360),[a,Math.sqrt(i*i+n*n),e]},r.lch.lab=function(t){var e,a=t[0],i=t[1];return e=t[2]/360*2*Math.PI,[a,i*Math.cos(e),i*Math.sin(e)]},r.rgb.ansi16=function(t){var e=t[0],a=t[1],i=t[2],n=1 in arguments?arguments[1]:r.rgb.hsv(t)[2];if(0===(n=Math.round(n/50)))return 30;var s=30+(Math.round(i/255)<<2|Math.round(a/255)<<1|Math.round(e/255));return 2===n&&(s+=60),s},r.hsv.ansi16=function(t){return r.rgb.ansi16(r.hsv.rgb(t),t[2])},r.rgb.ansi256=function(t){var e=t[0],a=t[1],i=t[2];return e===a&&a===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(a/255*5)+Math.round(i/255*5)},r.ansi16.rgb=function(t){var e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),[e=e/10.5*255,e,e];var a=.5*(1+~~(t>50));return[(1&e)*a*255,(e>>1&1)*a*255,(e>>2&1)*a*255]},r.ansi256.rgb=function(t){if(t>=232){var e=10*(t-232)+8;return[e,e,e]}var a;return t-=16,[Math.floor(t/36)/5*255,Math.floor((a=t%36)/6)/5*255,a%6/5*255]},r.rgb.hex=function(t){var e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},r.hex.rgb=function(t){var e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];var a=e[0];3===e[0].length&&(a=a.split("").map((function(t){return t+t})).join(""));var i=parseInt(a,16);return[i>>16&255,i>>8&255,255&i]},r.rgb.hcg=function(t){var e,a=t[0]/255,i=t[1]/255,n=t[2]/255,s=Math.max(Math.max(a,i),n),r=Math.min(Math.min(a,i),n),c=s-r;return e=c<=0?0:s===a?(i-n)/c%6:s===i?2+(n-a)/c:4+(a-i)/c+4,e/=6,[360*(e%=1),100*c,100*(c<1?r/(1-c):0)]},r.hsl.hcg=function(t){var e,a=t[1]/100,i=t[2]/100,n=0;return(e=i<.5?2*a*i:2*a*(1-i))<1&&(n=(i-.5*e)/(1-e)),[t[0],100*e,100*n]},r.hsv.hcg=function(t){var e=t[1]/100,a=t[2]/100,i=e*a,n=0;return i<1&&(n=(a-i)/(1-i)),[t[0],100*i,100*n]},r.hcg.rgb=function(t){var e=t[0]/360,a=t[1]/100,i=t[2]/100;if(0===a)return[255*i,255*i,255*i];var n,s=[0,0,0],r=e%1*6,c=r%1,o=1-c;switch(Math.floor(r)){case 0:s[0]=1,s[1]=c,s[2]=0;break;case 1:s[0]=o,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=c;break;case 3:s[0]=0,s[1]=o,s[2]=1;break;case 4:s[0]=c,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=o}return n=(1-a)*i,[255*(a*s[0]+n),255*(a*s[1]+n),255*(a*s[2]+n)]},r.hcg.hsv=function(t){var e=t[1]/100,a=e+t[2]/100*(1-e),i=0;return a>0&&(i=e/a),[t[0],100*i,100*a]},r.hcg.hsl=function(t){var e=t[1]/100,a=t[2]/100*(1-e)+.5*e,i=0;return a>0&&a<.5?i=e/(2*a):a>=.5&&a<1&&(i=e/(2*(1-a))),[t[0],100*i,100*a]},r.hcg.hwb=function(t){var e=t[1]/100,a=e+t[2]/100*(1-e);return[t[0],100*(a-e),100*(1-a)]},r.hwb.hcg=function(t){var e=t[1]/100,a=1-t[2]/100,i=a-e,n=0;return i<1&&(n=(a-i)/(1-i)),[t[0],100*i,100*n]},r.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},r.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},r.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},r.gray.hsl=r.gray.hsv=function(t){return[0,0,t[0]]},r.gray.hwb=function(t){return[0,100,t[0]]},r.gray.cmyk=function(t){return[0,0,0,t[0]]},r.gray.lab=function(t){return[t[0],0,0]},r.gray.hex=function(t){var e=255&Math.round(t[0]/100*255),a=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(a.length)+a},r.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}},85:(t,e,a)=>{var i=a(168),n=a(111),s={};Object.keys(i).forEach((function(t){s[t]={},Object.defineProperty(s[t],"channels",{value:i[t].channels}),Object.defineProperty(s[t],"labels",{value:i[t].labels});var e=n(t);Object.keys(e).forEach((function(a){var i=e[a];s[t][a]=function(t){var e=function(e){if(null==e)return e;arguments.length>1&&(e=Array.prototype.slice.call(arguments));var a=t(e);if("object"==typeof a)for(var i=a.length,n=0;n1&&(e=Array.prototype.slice.call(arguments)),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(i)}))})),t.exports=s},111:(t,e,a)=>{var i=a(168);function n(t,e){return function(a){return e(t(a))}}function s(t,e){for(var a=[e[t].parent,t],s=i[e[t].parent][t],r=e[t].parent;e[r].parent;)a.unshift(e[r].parent),s=n(i[e[r].parent][r],s),r=e[r].parent;return s.conversion=a,s}t.exports=function(t){for(var e=function(t){var e=function(){for(var t={},e=Object.keys(i),a=e.length,n=0;n{"use strict";t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},818:(t,e,a)=>{var i=a(874),n=a(851),s={};for(var r in i)i.hasOwnProperty(r)&&(s[i[r]]=r);var c=t.exports={to:{},get:{}};function o(t,e,a){return Math.min(Math.max(e,t),a)}function l(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}c.get=function(t){var e,a;switch(t.substring(0,3).toLowerCase()){case"hsl":e=c.get.hsl(t),a="hsl";break;case"hwb":e=c.get.hwb(t),a="hwb";break;default:e=c.get.rgb(t),a="rgb"}return e?{model:a,value:e}:null},c.get.rgb=function(t){if(!t)return null;var e,a,n,s=[0,0,0,1];if(e=t.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(n=e[2],e=e[1],a=0;a<3;a++){var r=2*a;s[a]=parseInt(e.slice(r,r+2),16)}n&&(s[3]=parseInt(n,16)/255)}else if(e=t.match(/^#([a-f0-9]{3,4})$/i)){for(n=(e=e[1])[3],a=0;a<3;a++)s[a]=parseInt(e[a]+e[a],16);n&&(s[3]=parseInt(n+n,16)/255)}else if(e=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/)){for(a=0;a<3;a++)s[a]=parseInt(e[a+1],0);e[4]&&(s[3]=parseFloat(e[4]))}else{if(!(e=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/)))return(e=t.match(/(\D+)/))?"transparent"===e[1]?[0,0,0,0]:(s=i[e[1]])?(s[3]=1,s):null:null;for(a=0;a<3;a++)s[a]=Math.round(2.55*parseFloat(e[a+1]));e[4]&&(s[3]=parseFloat(e[4]))}for(a=0;a<3;a++)s[a]=o(s[a],0,255);return s[3]=o(s[3],0,1),s},c.get.hsl=function(t){if(!t)return null;var e=t.match(/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?[\d\.]+)\s*)?\)$/);if(e){var a=parseFloat(e[4]);return[(parseFloat(e[1])+360)%360,o(parseFloat(e[2]),0,100),o(parseFloat(e[3]),0,100),o(isNaN(a)?1:a,0,1)]}return null},c.get.hwb=function(t){if(!t)return null;var e=t.match(/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/);if(e){var a=parseFloat(e[4]);return[(parseFloat(e[1])%360+360)%360,o(parseFloat(e[2]),0,100),o(parseFloat(e[3]),0,100),o(isNaN(a)?1:a,0,1)]}return null},c.to.hex=function(){var t=n(arguments);return"#"+l(t[0])+l(t[1])+l(t[2])+(t[3]<1?l(Math.round(255*t[3])):"")},c.to.rgb=function(){var t=n(arguments);return t.length<4||1===t[3]?"rgb("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+")":"rgba("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+", "+t[3]+")"},c.to.rgb.percent=function(){var t=n(arguments),e=Math.round(t[0]/255*100),a=Math.round(t[1]/255*100),i=Math.round(t[2]/255*100);return t.length<4||1===t[3]?"rgb("+e+"%, "+a+"%, "+i+"%)":"rgba("+e+"%, "+a+"%, "+i+"%, "+t[3]+")"},c.to.hsl=function(){var t=n(arguments);return t.length<4||1===t[3]?"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)":"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+t[3]+")"},c.to.hwb=function(){var t=n(arguments),e="";return t.length>=4&&1!==t[3]&&(e=", "+t[3]),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+e+")"},c.to.keyword=function(t){return s[t.slice(0,3)]}},767:(t,e,a)=>{"use strict";var i=a(818),n=a(85),s=[].slice,r=["keyword","gray","hex"],c={};Object.keys(n).forEach((function(t){c[s.call(n[t].labels).sort().join("")]=t}));var o={};function l(t,e){if(!(this instanceof l))return new l(t,e);if(e&&e in r&&(e=null),e&&!(e in n))throw new Error("Unknown model: "+e);var a,h;if(null==t)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(t instanceof l)this.model=t.model,this.color=t.color.slice(),this.valpha=t.valpha;else if("string"==typeof t){var u=i.get(t);if(null===u)throw new Error("Unable to parse color from string: "+t);this.model=u.model,h=n[this.model].channels,this.color=u.value.slice(0,h),this.valpha="number"==typeof u.value[h]?u.value[h]:1}else if(t.length){this.model=e||"rgb",h=n[this.model].channels;var f=s.call(t,0,h);this.color=d(f,h),this.valpha="number"==typeof t[h]?t[h]:1}else if("number"==typeof t)t&=16777215,this.model="rgb",this.color=[t>>16&255,t>>8&255,255&t],this.valpha=1;else{this.valpha=1;var p=Object.keys(t);"alpha"in t&&(p.splice(p.indexOf("alpha"),1),this.valpha="number"==typeof t.alpha?t.alpha:0);var m=p.sort().join("");if(!(m in c))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=c[m];var g=n[this.model].labels,v=[];for(a=0;aa?(e+.05)/(a+.05):(a+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},isDark:function(){var t=this.rgb().color;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},isLight:function(){return!this.isDark()},negate:function(){for(var t=this.rgb(),e=0;e<3;e++)t.color[e]=255-t.color[e];return t},lighten:function(t){var e=this.hsl();return e.color[2]+=e.color[2]*t,e},darken:function(t){var e=this.hsl();return e.color[2]-=e.color[2]*t,e},saturate:function(t){var e=this.hsl();return e.color[1]+=e.color[1]*t,e},desaturate:function(t){var e=this.hsl();return e.color[1]-=e.color[1]*t,e},whiten:function(t){var e=this.hwb();return e.color[1]+=e.color[1]*t,e},blacken:function(t){var e=this.hwb();return e.color[2]+=e.color[2]*t,e},grayscale:function(){var t=this.rgb().color,e=.3*t[0]+.59*t[1]+.11*t[2];return l.rgb(e,e,e)},fade:function(t){return this.alpha(this.valpha-this.valpha*t)},opaquer:function(t){return this.alpha(this.valpha+this.valpha*t)},rotate:function(t){var e=this.hsl(),a=e.color[0];return a=(a=(a+t)%360)<0?360+a:a,e.color[0]=a,e},mix:function(t,e){if(!t||!t.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof t);var a=t.rgb(),i=this.rgb(),n=void 0===e?.5:e,s=2*n-1,r=a.alpha()-i.alpha(),c=((s*r==-1?s:(s+r)/(1+s*r))+1)/2,o=1-c;return l.rgb(c*a.red()+o*i.red(),c*a.green()+o*i.green(),c*a.blue()+o*i.blue(),a.alpha()*n+i.alpha()*(1-n))}},Object.keys(n).forEach((function(t){if(-1===r.indexOf(t)){var e=n[t].channels;l.prototype[t]=function(){if(this.model===t)return new l(this);if(arguments.length)return new l(arguments,t);var a,i="number"==typeof arguments[e]?e:this.valpha;return new l((a=n[this.model][t].raw(this.color),Array.isArray(a)?a:[a]).concat(i),t)},l[t]=function(a){return"number"==typeof a&&(a=d(s.call(arguments),e)),new l(a,t)}}})),t.exports=l},247:function(t,e){var a,i;a=function(){var t=/^v?(?:\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+))?(?:-[\da-z\-]+(?:\.[\da-z\-]+)*)?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i;function e(t){var e,a,i=t.replace(/^v/,"").replace(/\+.*$/,""),n=(a="-",-1===(e=i).indexOf(a)?e.length:e.indexOf(a)),s=i.substring(0,n).split(".");return s.push(i.substring(n+1)),s}function a(t){return isNaN(Number(t))?t:Number(t)}function i(e){if("string"!=typeof e)throw new TypeError("Invalid argument expected string");if(!t.test(e))throw new Error("Invalid argument not valid semver ('"+e+"' received)")}function n(t,n){[t,n].forEach(i);for(var s=e(t),r=e(n),c=0;cl)return 1;if(l>o)return-1}var h=s[s.length-1],u=r[r.length-1];if(h&&u){var d=h.split(".").map(a),f=u.split(".").map(a);for(c=0;cf[c])return 1;if(f[c]>d[c])return-1}}else if(h||u)return h?-1:1;return 0}var s=[">",">=","=","<","<="],r={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1]};return n.validate=function(e){return"string"==typeof e&&t.test(e)},n.compare=function(t,e,a){!function(t){if("string"!=typeof t)throw new TypeError("Invalid operator type, expected string but got "+typeof t);if(-1===s.indexOf(t))throw new TypeError("Invalid operator, expected one of "+s.join("|"))}(a);var i=n(t,e);return r[a].indexOf(i)>-1},n},void 0===(i=a.apply(e,[]))||(t.exports=i)},171:t=>{t.exports=function(t){return!(!t||"string"==typeof t)&&(t instanceof Array||Array.isArray(t)||t.length>=0&&(t.splice instanceof Function||Object.getOwnPropertyDescriptor(t,t.length-1)&&"String"!==t.constructor.name))}},243:function(t,e){!function(t){"use strict";function e(t){var e,a,i,n;for(a=1,i=arguments.length;a0?Math.floor(t):Math.ceil(t)};function k(t,e,a){return t instanceof M?t:g(t)?new M(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new M(t.x,t.y):new M(t,e,a)}function Q(t,e){if(t)for(var a=e?[t,e]:t,i=0,n=a.length;i=this.min.x&&a.x<=this.max.x&&e.y>=this.min.y&&a.y<=this.max.y},intersects:function(t){t=I(t);var e=this.min,a=this.max,i=t.min,n=t.max,s=n.x>=e.x&&i.x<=a.x,r=n.y>=e.y&&i.y<=a.y;return s&&r},overlaps:function(t){t=I(t);var e=this.min,a=this.max,i=t.min,n=t.max,s=n.x>e.x&&i.xe.y&&i.y=i.lat&&a.lat<=n.lat&&e.lng>=i.lng&&a.lng<=n.lng},intersects:function(t){t=E(t);var e=this._southWest,a=this._northEast,i=t.getSouthWest(),n=t.getNorthEast(),s=n.lat>=e.lat&&i.lat<=a.lat,r=n.lng>=e.lng&&i.lng<=a.lng;return s&&r},overlaps:function(t){t=E(t);var e=this._southWest,a=this._northEast,i=t.getSouthWest(),n=t.getNorthEast(),s=n.lat>e.lat&&i.late.lng&&i.lng1,zt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",o,e),window.removeEventListener("testPassiveEventSupport",o,e)}catch(t){}return t}(),Nt=!!document.createElement("canvas").getContext,xt=!(!document.createElementNS||!W("svg").createSVGRect),Dt=!xt&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}();function Vt(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var Mt={ie:_,ielt9:$,edge:tt,webkit:et,android:at,android23:it,androidStock:st,opera:rt,chrome:ct,gecko:ot,safari:lt,phantom:ht,opera12:ut,win:dt,ie3d:ft,webkit3d:pt,gecko3d:mt,any3d:gt,mobile:vt,mobileWebkit:bt,mobileWebkit3d:wt,msPointer:Ct,pointer:At,touch:yt,mobileOpera:Lt,mobileGecko:Ht,retina:Bt,passiveEvents:zt,canvas:Nt,svg:xt,vml:Dt},St=Ct?"MSPointerDown":"pointerdown",kt=Ct?"MSPointerMove":"pointermove",Qt=Ct?"MSPointerUp":"pointerup",It=Ct?"MSPointerCancel":"pointercancel",Ot={},Et=!1;function Xt(t,e,a,n){return"touchstart"===e?function(t,e,a){var n=i((function(t){t.MSPOINTER_TYPE_TOUCH&&t.pointerType===t.MSPOINTER_TYPE_TOUCH&&Ie(t),Gt(t,e)}));t["_leaflet_touchstart"+a]=n,t.addEventListener(St,n,!1),Et||(document.addEventListener(St,Tt,!0),document.addEventListener(kt,Pt,!0),document.addEventListener(Qt,Ft,!0),document.addEventListener(It,Ft,!0),Et=!0)}(t,a,n):"touchmove"===e?function(t,e,a){var i=function(t){t.pointerType===(t.MSPOINTER_TYPE_MOUSE||"mouse")&&0===t.buttons||Gt(t,e)};t["_leaflet_touchmove"+a]=i,t.addEventListener(kt,i,!1)}(t,a,n):"touchend"===e&&function(t,e,a){var i=function(t){Gt(t,e)};t["_leaflet_touchend"+a]=i,t.addEventListener(Qt,i,!1),t.addEventListener(It,i,!1)}(t,a,n),this}function Tt(t){Ot[t.pointerId]=t}function Pt(t){Ot[t.pointerId]&&(Ot[t.pointerId]=t)}function Ft(t){delete Ot[t.pointerId]}function Gt(t,e){for(var a in t.touches=[],Ot)t.touches.push(Ot[a]);t.changedTouches=[t],e(t)}var Kt=Ct?"MSPointerDown":At?"pointerdown":"touchstart",Ut=Ct?"MSPointerUp":At?"pointerup":"touchend",qt="_leaflet_";var jt,Yt,Rt,Wt,Zt,Jt=fe(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),_t=fe(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),$t="webkitTransition"===_t||"OTransition"===_t?_t+"End":"transitionend";function te(t){return"string"==typeof t?document.getElementById(t):t}function ee(t,e){var a=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!a||"auto"===a)&&document.defaultView){var i=document.defaultView.getComputedStyle(t,null);a=i?i[e]:null}return"auto"===a?null:a}function ae(t,e,a){var i=document.createElement(t);return i.className=e||"",a&&a.appendChild(i),i}function ie(t){var e=t.parentNode;e&&e.removeChild(t)}function ne(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function se(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function re(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ce(t,e){if(void 0!==t.classList)return t.classList.contains(e);var a=ue(t);return a.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(a)}function oe(t,e){if(void 0!==t.classList)for(var a=u(e),i=0,n=a.length;i1)return;var e=Date.now(),a=e-(i||e);n=t.touches?t.touches[0]:t,s=a>0&&a<=250,i=e}function c(t){if(s&&!n.cancelBubble){if(At){if("mouse"===t.pointerType)return;var a,r,c={};for(r in n)a=n[r],c[r]=a&&a.bind?a.bind(n):a;n=c}n.type="dblclick",n.button=0,e(n),i=null}}t[qt+Kt+a]=r,t[qt+Ut+a]=c,t[qt+"dblclick"+a]=e,t.addEventListener(Kt,r,!!zt&&{passive:!1}),t.addEventListener(Ut,c,!!zt&&{passive:!1}),t.addEventListener("dblclick",e,!1)}(t,r,n):"addEventListener"in t?"touchstart"===e||"touchmove"===e||"wheel"===e||"mousewheel"===e?t.addEventListener(De[e]||e,r,!!zt&&{passive:!1}):"mouseenter"===e||"mouseleave"===e?(r=function(e){e=e||window.event,Ke(t,e)&&c(e)},t.addEventListener(De[e],r,!1)):t.addEventListener(e,c,!1):"attachEvent"in t&&t.attachEvent("on"+e,r),t[ze]=t[ze]||{},t[ze][n]=r}function Me(t,e,a,i){var n=e+s(a)+(i?"_"+s(i):""),r=t[ze]&&t[ze][n];if(!r)return this;At&&0===e.indexOf("touch")?function(t,e,a){var i=t["_leaflet_"+e+a];"touchstart"===e?t.removeEventListener(St,i,!1):"touchmove"===e?t.removeEventListener(kt,i,!1):"touchend"===e&&(t.removeEventListener(Qt,i,!1),t.removeEventListener(It,i,!1))}(t,e,n):yt&&"dblclick"===e&&!xe()?function(t,e){var a=t[qt+Kt+e],i=t[qt+Ut+e],n=t[qt+"dblclick"+e];t.removeEventListener(Kt,a,!!zt&&{passive:!1}),t.removeEventListener(Ut,i,!!zt&&{passive:!1}),t.removeEventListener("dblclick",n,!1)}(t,n):"removeEventListener"in t?t.removeEventListener(De[e]||e,r,!1):"detachEvent"in t&&t.detachEvent("on"+e,r),t[ze][n]=null}function Se(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,Ge(t),this}function ke(t){return Ve(t,"wheel",Se),this}function Qe(t){return Be(t,"mousedown touchstart dblclick",Se),Ve(t,"click",Fe),this}function Ie(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Oe(t){return Ie(t),Se(t),this}function Ee(t,e){if(!e)return new M(t.clientX,t.clientY);var a=Le(e),i=a.boundingClientRect;return new M((t.clientX-i.left)/a.x-e.clientLeft,(t.clientY-i.top)/a.y-e.clientTop)}var Xe=dt&&ct?2*window.devicePixelRatio:ot?window.devicePixelRatio:1;function Te(t){return tt?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Xe:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}var Pe={};function Fe(t){Pe[t.type]=!0}function Ge(t){var e=Pe[t.type];return Pe[t.type]=!1,e}function Ke(t,e){var a=e.relatedTarget;if(!a)return!0;try{for(;a&&a!==t;)a=a.parentNode}catch(t){return!1}return a!==t}var Ue={on:Be,off:Ne,stopPropagation:Se,disableScrollPropagation:ke,disableClickPropagation:Qe,preventDefault:Ie,stop:Oe,getMousePosition:Ee,getWheelDelta:Te,fakeStop:Fe,skipped:Ge,isExternalTarget:Ke,addListener:Be,removeListener:Ne},qe=V.extend({run:function(t,e,a,i){this.stop(),this._el=t,this._inProgress=!0,this._duration=a||.25,this._easeOutPower=1/Math.max(i||.5,.2),this._startPos=ge(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=B(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,a=1e3*this._duration;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var a=this.getCenter(),i=this._limitCenter(a,this._zoom,E(t));return a.equals(i)||this.panTo(i,e),this._enforcingBounds=!1,this},panInside:function(t,e){var a=k((e=e||{}).paddingTopLeft||e.padding||[0,0]),i=k(e.paddingBottomRight||e.padding||[0,0]),n=this.getCenter(),s=this.project(n),r=this.project(t),c=this.getPixelBounds(),o=c.getSize().divideBy(2),l=I([c.min.add(a),c.max.subtract(i)]);if(!l.contains(r)){this._enforcingBounds=!0;var h=s.subtract(r),u=k(r.x+h.x,r.y+h.y);(r.xl.max.x)&&(u.x=s.x-h.x,h.x>0?u.x+=o.x-a.x:u.x-=o.x-i.x),(r.yl.max.y)&&(u.y=s.y-h.y,h.y>0?u.y+=o.y-a.y:u.y-=o.y-i.y),this.panTo(this.unproject(u),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=e({animate:!1,pan:!0},!0===t?{animate:!0}:t);var a=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var n=this.getSize(),s=a.divideBy(2).round(),r=n.divideBy(2).round(),c=s.subtract(r);return c.x||c.y?(t.animate&&t.pan?this.panBy(c):(t.pan&&this._rawPanBy(c),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(i(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:a,newSize:n})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=e({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var a=i(this._handleGeolocationResponse,this),n=i(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(a,n,t):navigator.geolocation.getCurrentPosition(a,n,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,a=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+a+"."})},_handleGeolocationResponse:function(t){var e=new X(t.coords.latitude,t.coords.longitude),a=e.toBounds(2*t.coords.accuracy),i=this._locateOptions;if(i.setView){var n=this.getBoundsZoom(a);this.setView(e,i.maxZoom?Math.min(n,i.maxZoom):n)}var s={latlng:e,bounds:a,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,e){if(!e)return this;var a=this[t]=new e(this);return this._handlers.push(a),this.options[t]&&a.enable(),this},remove:function(){if(this._initEvents(!0),this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),ie(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(z(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)ie(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var a=ae("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=a),a},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new O(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,a){t=E(t),a=k(a||[0,0]);var i=this.getZoom()||0,n=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),c=t.getSouthEast(),o=this.getSize().subtract(a),l=I(this.project(c,i),this.project(r,i)).getSize(),h=gt?this.options.zoomSnap:1,u=o.x/l.x,d=o.y/l.y,f=e?Math.max(u,d):Math.min(u,d);return i=this.getScaleZoom(f,i),h&&(i=Math.round(i/(h/100))*(h/100),i=e?Math.ceil(i/h)*h:Math.floor(i/h)*h),Math.max(n,Math.min(s,i))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new M(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var a=this._getTopLeftPoint(t,e);return new Q(a,a.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var a=this.options.crs;return e=void 0===e?this._zoom:e,a.scale(t)/a.scale(e)},getScaleZoom:function(t,e){var a=this.options.crs;e=void 0===e?this._zoom:e;var i=a.zoom(t*a.scale(e));return isNaN(i)?1/0:i},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(T(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(k(t),e)},layerPointToLatLng:function(t){var e=k(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(T(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(T(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(E(t))},distance:function(t,e){return this.options.crs.distance(T(t),T(e))},containerPointToLayerPoint:function(t){return k(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return k(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(k(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(T(t)))},mouseEventToContainerPoint:function(t){return Ee(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=te(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Be(e,"scroll",this._onScroll,this),this._containerId=s(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&>,oe(t,"leaflet-container"+(yt?" leaflet-touch":"")+(Bt?" leaflet-retina":"")+($?" leaflet-oldie":"")+(lt?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=ee(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),me(this._mapPane,new M(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(oe(t.markerPane,"leaflet-zoom-hide"),oe(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){me(this._mapPane,new M(0,0));var a=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var i=this._zoom!==e;this._moveStart(i,!1)._move(t,e)._moveEnd(i),this.fire("viewreset"),a&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,a){void 0===e&&(e=this._zoom);var i=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(i||a&&a.pinch)&&this.fire("zoom",a),this.fire("move",a)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return z(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){me(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[s(this._container)]=this;var e=t?Ne:Be;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),gt&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){z(this._resizeRequest),this._resizeRequest=B((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var a,i=[],n="mouseout"===e||"mouseover"===e,r=t.target||t.srcElement,c=!1;r;){if((a=this._targets[s(r)])&&("click"===e||"preclick"===e)&&!t._simulated&&this._draggableMoved(a)){c=!0;break}if(a&&a.listens(e,!0)){if(n&&!Ke(r,t))break;if(i.push(a),n)break}if(r===this._container)break;r=r.parentNode}return i.length||c||n||!Ke(r,t)||(i=[this]),i},_handleDOMEvent:function(t){if(this._loaded&&!Ge(t)){var e=t.type;"mousedown"!==e&&"keypress"!==e&&"keyup"!==e&&"keydown"!==e||Ce(t.target||t.srcElement),this._fireDOMEvent(t,e)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,a,i){if("click"===t.type){var n=e({},t);n.type="preclick",this._fireDOMEvent(n,n.type,i)}if(!t._stopped&&(i=(i||[]).concat(this._findEventTargets(t,a))).length){var s=i[0];"contextmenu"===a&&s.listens(a,!0)&&Ie(t);var r={originalEvent:t};if("keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type){var c=s.getLatLng&&(!s._radius||s._radius<=10);r.containerPoint=c?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=c?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var o=0;o0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),a=this.getMaxZoom(),i=gt?this.options.zoomSnap:1;return i&&(t=Math.round(t/i)*i),Math.max(e,Math.min(a,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){le(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var a=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(a)||(this.panBy(a,e),0))},_createAnimProxy:function(){var t=this._proxy=ae("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=Jt,a=this._proxy.style[e];pe(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),a===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ie(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();pe(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,a){if(this._animatingZoom)return!0;if(a=a||{},!this._zoomAnimated||!1===a.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var i=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/i);return!(!0!==a.animate&&!this.getSize().contains(n)||(B((function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)}),this),0))},_animateZoom:function(t,e,a,n){this._mapPane&&(a&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,oe(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),setTimeout(i(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&le(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),B((function(){this._moveEnd(!0)}),this))}});var Ye=x.extend({options:{position:"topright"},initialize:function(t){d(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),a=this.getPosition(),i=t._controlCorners[a];return oe(e,"leaflet-control"),-1!==a.indexOf("bottom")?i.insertBefore(e,i.firstChild):i.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(ie(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),Re=function(t){return new Ye(t)};je.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",a=this._controlContainer=ae("div",e+"control-container",this._container);function i(i,n){var s=e+i+" "+e+n;t[i+n]=ae("div",s,a)}i("top","left"),i("top","right"),i("bottom","left"),i("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)ie(this._controlCorners[t]);ie(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var We=Ye.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,a,i){return a1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(s(t.target)),a=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;a&&this._map.fire(a,e)},_createRadioElement:function(t,e){var a='",i=document.createElement("div");return i.innerHTML=a,i.firstChild},_addItem:function(t){var e,a=document.createElement("label"),i=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=i):e=this._createRadioElement("leaflet-base-layers_"+s(this),i),this._layerControlInputs.push(e),e.layerId=s(t.layer),Be(e,"click",this._onInputClick,this);var n=document.createElement("span");n.innerHTML=" "+t.name;var r=document.createElement("div");return a.appendChild(r),r.appendChild(e),r.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(a),this._checkDisabledLayers(),a},_onInputClick:function(){var t,e,a=this._layerControlInputs,i=[],n=[];this._handlingClick=!0;for(var s=a.length-1;s>=0;s--)t=a[s],e=this._getLayer(t.layerId).layer,t.checked?i.push(e):t.checked||n.push(e);for(s=0;s=0;n--)t=a[n],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ie.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),Ze=Ye.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",a=ae("div",e+" leaflet-bar"),i=this.options;return this._zoomInButton=this._createButton(i.zoomInText,i.zoomInTitle,e+"-in",a,this._zoomIn),this._zoomOutButton=this._createButton(i.zoomOutText,i.zoomOutTitle,e+"-out",a,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),a},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,a,i,n){var s=ae("a",a,i);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Qe(s),Be(s,"click",Oe),Be(s,"click",n,this),Be(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";le(this._zoomInButton,e),le(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMinZoom())&&oe(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMaxZoom())&&oe(this._zoomInButton,e)}});je.mergeOptions({zoomControl:!0}),je.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new Ze,this.addControl(this.zoomControl))}));var Je=Ye.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",a=ae("div",e),i=this.options;return this._addScales(i,e+"-line",a),t.on(i.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),a},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,a){t.metric&&(this._mScale=ae("div",e,a)),t.imperial&&(this._iScale=ae("div",e,a))},_update:function(){var t=this._map,e=t.getSize().y/2,a=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(a)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),a=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,a,e/t)},_updateImperial:function(t){var e,a,i,n=3.2808399*t;n>5280?(e=n/5280,a=this._getRoundNum(e),this._updateScale(this._iScale,a+" mi",a/e)):(i=this._getRoundNum(n),this._updateScale(this._iScale,i+" ft",i/n))},_updateScale:function(t,e,a){t.style.width=Math.round(this.options.maxWidth*a)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),a=t/e;return e*(a>=10?10:a>=5?5:a>=3?3:a>=2?2:1)}}),_e=Ye.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){d(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=ae("div","leaflet-control-attribution"),Qe(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var a=[];this.options.prefix&&a.push(this.options.prefix),t.length&&a.push(t.join(", ")),this._container.innerHTML=a.join(" | ")}}});je.mergeOptions({attributionControl:!0}),je.addInitHook((function(){this.options.attributionControl&&(new _e).addTo(this)}));Ye.Layers=We,Ye.Zoom=Ze,Ye.Scale=Je,Ye.Attribution=_e,Re.layers=function(t,e,a){return new We(t,e,a)},Re.zoom=function(t){return new Ze(t)},Re.scale=function(t){return new Je(t)},Re.attribution=function(t){return new _e(t)};var $e=x.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});$e.addTo=function(t,e){return t.addHandler(e,this),this};var ta,ea={Events:D},aa=yt?"touchstart mousedown":"mousedown",ia={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},na={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},sa=V.extend({options:{clickTolerance:3},initialize:function(t,e,a,i){d(this,i),this._element=t,this._dragStartTarget=e||t,this._preventOutline=a},enable:function(){this._enabled||(Be(this._dragStartTarget,aa,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(sa._dragging===this&&this.finishDrag(),Ne(this._dragStartTarget,aa,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!ce(this._element,"leaflet-zoom-anim")&&!(sa._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(sa._dragging=this,this._preventOutline&&Ce(this._element),be(),jt(),this._moving)))){this.fire("down");var e=t.touches?t.touches[0]:t,a=ye(this._element);this._startPoint=new M(e.clientX,e.clientY),this._parentScale=Le(a),Be(document,na[t.type],this._onMove,this),Be(document,ia[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,a=new M(e.clientX,e.clientY)._subtract(this._startPoint);(a.x||a.y)&&(Math.abs(a.x)+Math.abs(a.y)e&&(a.push(t[i]),n=i);return no&&(s=r,o=c);o>a&&(e[s]=1,oa(t,e,a,i,s),oa(t,e,a,s,n))}function la(t,e,a,i,n){var s,r,c,o=i?ta:ua(t,a),l=ua(e,a);for(ta=l;;){if(!(o|l))return[t,e];if(o&l)return!1;c=ua(r=ha(t,e,s=o||l,a,n),a),s===o?(t=r,o=c):(e=r,l=c)}}function ha(t,e,a,i,n){var s,r,c=e.x-t.x,o=e.y-t.y,l=i.min,h=i.max;return 8&a?(s=t.x+c*(h.y-t.y)/o,r=h.y):4&a?(s=t.x+c*(l.y-t.y)/o,r=l.y):2&a?(s=h.x,r=t.y+o*(h.x-t.x)/c):1&a&&(s=l.x,r=t.y+o*(l.x-t.x)/c),new M(s,r,n)}function ua(t,e){var a=0;return t.xe.max.x&&(a|=2),t.ye.max.y&&(a|=8),a}function da(t,e){var a=e.x-t.x,i=e.y-t.y;return a*a+i*i}function fa(t,e,a,i){var n,s=e.x,r=e.y,c=a.x-s,o=a.y-r,l=c*c+o*o;return l>0&&((n=((t.x-s)*c+(t.y-r)*o)/l)>1?(s=a.x,r=a.y):n>0&&(s+=c*n,r+=o*n)),c=t.x-s,o=t.y-r,i?c*c+o*o:new M(s,r)}function pa(t){return!g(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function ma(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),pa(t)}var ga={simplify:ra,pointToSegmentDistance:ca,closestPointOnSegment:function(t,e,a){return fa(t,e,a)},clipSegment:la,_getEdgeIntersection:ha,_getBitCode:ua,_sqClosestPointOnSegment:fa,isFlat:pa,_flat:ma};function va(t,e,a){var i,n,s,r,c,o,l,h,u,d=[1,4,2,8];for(n=0,l=t.length;n1e-7;o++)e=s*Math.sin(c),e=Math.pow((1-e)/(1+e),s/2),c+=l=Math.PI/2-2*Math.atan(r*e)-c;return new X(c*a,t.x*a/i)}},Aa={LonLat:wa,Mercator:Ca,SphericalMercator:U},ya=e({},G,{code:"EPSG:3395",projection:Ca,transformation:function(){var t=.5/(Math.PI*Ca.R);return j(t,.5,-t,.5)}()}),La=e({},G,{code:"EPSG:4326",projection:wa,transformation:j(1/180,1,-1/180,.5)}),Ha=e({},F,{projection:wa,transformation:j(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var a=e.lng-t.lng,i=e.lat-t.lat;return Math.sqrt(a*a+i*i)},infinite:!0});F.Earth=G,F.EPSG3395=ya,F.EPSG3857=Y,F.EPSG900913=R,F.EPSG4326=La,F.Simple=Ha;var Ba=V.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[s(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[s(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var a=this.getEvents();e.on(a,this),this.once("remove",(function(){e.off(a,this)}),this)}this.onAdd(e),this.getAttribution&&e.attributionControl&&e.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),e.fire("layeradd",{layer:this})}}});je.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=s(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=s(t);return this._layers[e]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&s(t)in this._layers},eachLayer:function(t,e){for(var a in this._layers)t.call(e,this._layers[a]);return this},_addLayers:function(t){for(var e=0,a=(t=t?g(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()e)return r=(i-e)/a,this._map.layerPointToLatLng([s.x-r*(s.x-n.x),s.y-r*(s.y-n.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=T(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new O,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return pa(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],a=pa(t),i=0,n=t.length;i=2&&e[0]instanceof X&&e[0].equals(e[a-1])&&e.pop(),e},_setLatLngs:function(t){Ia.prototype._setLatLngs.call(this,t),pa(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return pa(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,a=new M(e,e);if(t=new Q(t.min.subtract(a),t.max.add(a)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var i,n=0,s=this._rings.length;nt.y!=i.y>t.y&&t.x<(i.x-a.x)*(t.y-a.y)/(i.y-a.y)+a.x&&(l=!l);return l||Ia.prototype._containsPoint.call(this,t,!0)}});var Ea=Na.extend({initialize:function(t,e){d(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,a,i,n=g(t)?t:t.features;if(n){for(e=0,a=n.length;e0?n:[e.src]}else{g(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted;for(var r=0;rn?(e.height=n+"px",oe(t,s)):le(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),a=this._getAnchor();me(this._container,e.add(a))},_adjustPan:function(){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var t=this._map,e=parseInt(ee(this._container,"marginBottom"),10)||0,a=this._container.offsetHeight+e,i=this._containerWidth,n=new M(this._containerLeft,-a-this._containerBottom);n._add(ge(this._container));var s=t.layerPointToContainerPoint(n),r=k(this.options.autoPanPadding),c=k(this.options.autoPanPaddingTopLeft||r),o=k(this.options.autoPanPaddingBottomRight||r),l=t.getSize(),h=0,u=0;s.x+i+o.x>l.x&&(h=s.x+i-l.x+o.x),s.x-h-c.x<0&&(h=s.x-c.x),s.y+a+o.y>l.y&&(u=s.y+a-l.y+o.y),s.y-u-c.y<0&&(u=s.y-c.y),(h||u)&&t.fire("autopanstart").panBy([h,u])}},_onCloseButtonClick:function(t){this._close(),Oe(t)},_getAnchor:function(){return k(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});je.mergeOptions({closePopupOnClick:!0}),je.include({openPopup:function(t,e,a){return t instanceof $a||(t=new $a(a).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),Ba.include({bindPopup:function(t,e){return t instanceof $a?(d(t,e),this._popup=t,t._source=this):(this._popup&&!e||(this._popup=new $a(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,e){return this._popup&&this._map&&(e=this._popup._prepareOpen(this,t,e),this._map.openPopup(this._popup,e)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e=t.layer||t.target;this._popup&&this._map&&(Oe(t),e instanceof Sa?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===e?this.closePopup():this.openPopup(e,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var ti=_a.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){_a.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){_a.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=_a.prototype.getEvents.call(this);return yt&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=ae("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,a,i=this._map,n=this._container,s=i.latLngToContainerPoint(i.getCenter()),r=i.layerPointToContainerPoint(t),c=this.options.direction,o=n.offsetWidth,l=n.offsetHeight,h=k(this.options.offset),u=this._getAnchor();"top"===c?(e=o/2,a=l):"bottom"===c?(e=o/2,a=0):"center"===c?(e=o/2,a=l/2):"right"===c?(e=0,a=l/2):"left"===c?(e=o,a=l/2):r.xthis.options.maxZoom||ai&&this._retainParent(n,s,r,i))},_retainChildren:function(t,e,a,i){for(var n=2*t;n<2*t+2;n++)for(var s=2*e;s<2*e+2;s++){var r=new M(n,s);r.z=a+1;var c=this._tileCoordsToKey(r),o=this._tiles[c];o&&o.active?o.retain=!0:(o&&o.loaded&&(o.retain=!0),a+1this.options.maxZoom||void 0!==this.options.minZoom&&n1)this._setView(t,a);else{for(var u=n.min.y;u<=n.max.y;u++)for(var d=n.min.x;d<=n.max.x;d++){var f=new M(d,u);if(f.z=this._tileZoom,this._isValidTile(f)){var p=this._tiles[this._tileCoordsToKey(f)];p?p.current=!0:r.push(f)}}if(r.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(d=0;da.max.x)||!e.wrapLat&&(t.ya.max.y))return!1}if(!this.options.bounds)return!0;var i=this._tileCoordsToBounds(t);return E(this.options.bounds).overlaps(i)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,a=this.getTileSize(),i=t.scaleBy(a),n=i.add(a);return[e.unproject(i,t.z),e.unproject(n,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),a=new O(e[0],e[1]);return this.options.noWrap||(a=this._map.wrapLatLngBounds(a)),a},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),a=new M(+e[0],+e[1]);return a.z=+e[2],a},_removeTile:function(t){var e=this._tiles[t];e&&(ie(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){oe(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=o,t.onmousemove=o,$&&this.options.opacity<1&&de(t,this.options.opacity),at&&!it&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,e){var a=this._getTilePos(t),n=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),i(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&B(i(this._tileReady,this,t,null,s)),me(s,a),this._tiles[n]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,a){e&&this.fire("tileerror",{error:e,tile:a,coords:t});var n=this._tileCoordsToKey(t);(a=this._tiles[n])&&(a.loaded=+new Date,this._map._fadeAnimated?(de(a.el,0),z(this._fadeFrame),this._fadeFrame=B(this._updateOpacity,this)):(a.active=!0,this._pruneTiles()),e||(oe(a.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:a.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),$||!this._map._fadeAnimated?B(this._pruneTiles,this):setTimeout(i(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new M(this._wrapX?c(t.x,this._wrapX):t.x,this._wrapY?c(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new Q(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var ii=ai.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,e){this._url=t,(e=d(this,e)).detectRetina&&Bt&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),at||this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var a=document.createElement("img");return Be(a,"load",i(this._tileOnLoad,this,e,a)),Be(a,"error",i(this._tileOnError,this,e,a)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(a.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),a.alt="",a.setAttribute("role","presentation"),a.src=this.getTileUrl(t),a},getTileUrl:function(t){var a={r:Bt?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var i=this._globalTileRange.max.y-t.y;this.options.tms&&(a.y=i),a["-y"]=i}return m(this._url,e(a,this.options))},_tileOnLoad:function(t,e){$?setTimeout(i(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,a){var i=this.options.errorTileUrl;i&&e.getAttribute("src")!==i&&(e.src=i),t(a,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=o,e.onerror=o,e.complete||(e.src=b,ie(e),delete this._tiles[t]))},_removeTile:function(t){var e=this._tiles[t];if(e)return st||e.el.setAttribute("src",b),ai.prototype._removeTile.call(this,t)},_tileReady:function(t,e,a){if(this._map&&(!a||a.getAttribute("src")!==b))return ai.prototype._tileReady.call(this,t,e,a)}});function ni(t,e){return new ii(t,e)}var si=ii.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,a){this._url=t;var i=e({},this.defaultWmsParams);for(var n in a)n in this.options||(i[n]=a[n]);var s=(a=d(this,a)).detectRetina&&Bt?2:1,r=this.getTileSize();i.width=r.x*s,i.height=r.y*s,this.wmsParams=i},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,ii.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),a=this._crs,i=I(a.project(e[0]),a.project(e[1])),n=i.min,s=i.max,r=(this._wmsVersion>=1.3&&this._crs===La?[n.y,n.x,s.y,s.x]:[n.x,n.y,s.x,s.y]).join(","),c=ii.prototype.getTileUrl.call(this,t);return c+f(this.wmsParams,c,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,a){return e(this.wmsParams,t),a||this.redraw(),this}});ii.WMS=si,ni.wms=function(t,e){return new si(t,e)};var ri=Ba.extend({options:{padding:.1,tolerance:0},initialize:function(t){d(this,t),s(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&oe(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var a=this._map.getZoomScale(e,this._zoom),i=ge(this._container),n=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,e),r=this._map.project(t,e).subtract(s),c=n.multiplyBy(-a).add(i).add(n).subtract(r);gt?pe(this._container,c,a):me(this._container,c)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),a=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new Q(a,a.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),ci=ri.extend({getEvents:function(){var t=ri.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){ri.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Be(t,"mousemove",this._onMouseMove,this),Be(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Be(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){z(this._redrawRequest),delete this._ctx,ie(this._container),Ne(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){ri.prototype._update.call(this);var t=this._bounds,e=this._container,a=t.getSize(),i=Bt?2:1;me(e,t.min),e.width=i*a.x,e.height=i*a.y,e.style.width=a.x+"px",e.style.height=a.y+"px",Bt&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){ri.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[s(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,a=e.next,i=e.prev;a?a.prev=i:this._drawLast=i,i?i.next=a:this._drawFirst=a,delete t._order,delete this._layers[s(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,a,i=t.options.dashArray.split(/[, ]+/),n=[];for(a=0;a')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),hi={_initContainer:function(){this._container=ae("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(ri.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=li("shape");oe(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=li("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;ie(e),t.removeInteractiveTarget(e),delete this._layers[s(t)]},_updateStyle:function(t){var e=t._stroke,a=t._fill,i=t.options,n=t._container;n.stroked=!!i.stroke,n.filled=!!i.fill,i.stroke?(e||(e=t._stroke=li("stroke")),n.appendChild(e),e.weight=i.weight+"px",e.color=i.color,e.opacity=i.opacity,i.dashArray?e.dashStyle=g(i.dashArray)?i.dashArray.join(" "):i.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=i.lineCap.replace("butt","flat"),e.joinstyle=i.lineJoin):e&&(n.removeChild(e),t._stroke=null),i.fill?(a||(a=t._fill=li("fill")),n.appendChild(a),a.color=i.fillColor||i.color,a.opacity=i.fillOpacity):a&&(n.removeChild(a),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),a=Math.round(t._radius),i=Math.round(t._radiusY||a);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+a+","+i+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){se(t._container)},_bringToBack:function(t){re(t._container)}},ui=Dt?li:W,di=ri.extend({getEvents:function(){var t=ri.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=ui("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=ui("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ie(this._container),Ne(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){ri.prototype._update.call(this);var t=this._bounds,e=t.getSize(),a=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,a.setAttribute("width",e.x),a.setAttribute("height",e.y)),me(a,t.min),a.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=ui("path");t.options.className&&oe(e,t.options.className),t.options.interactive&&oe(e,"leaflet-interactive"),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ie(t._path),t.removeInteractiveTarget(t._path),delete this._layers[s(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,a=t.options;e&&(a.stroke?(e.setAttribute("stroke",a.color),e.setAttribute("stroke-opacity",a.opacity),e.setAttribute("stroke-width",a.weight),e.setAttribute("stroke-linecap",a.lineCap),e.setAttribute("stroke-linejoin",a.lineJoin),a.dashArray?e.setAttribute("stroke-dasharray",a.dashArray):e.removeAttribute("stroke-dasharray"),a.dashOffset?e.setAttribute("stroke-dashoffset",a.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),a.fill?(e.setAttribute("fill",a.fillColor||a.color),e.setAttribute("fill-opacity",a.fillOpacity),e.setAttribute("fill-rule",a.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,Z(t._parts,e))},_updateCircle:function(t){var e=t._point,a=Math.max(Math.round(t._radius),1),i="a"+a+","+(Math.max(Math.round(t._radiusY),1)||a)+" 0 1,0 ",n=t._empty()?"M0 0":"M"+(e.x-a)+","+e.y+i+2*a+",0 "+i+2*-a+",0 ";this._setPath(t,n)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){se(t._path)},_bringToBack:function(t){re(t._path)}});function fi(t){return xt||Dt?new di(t):null}Dt&&di.include(hi),je.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&oi(t)||fi(t)}});var pi=Oa.extend({initialize:function(t,e){Oa.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=E(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});di.create=ui,di.pointsToPath=Z,Ea.geometryToLayer=Xa,Ea.coordsToLatLng=Pa,Ea.coordsToLatLngs=Fa,Ea.latLngToCoords=Ga,Ea.latLngsToCoords=Ka,Ea.getFeature=Ua,Ea.asFeature=qa,je.mergeOptions({boxZoom:!0});var mi=$e.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Be(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Ne(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ie(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),jt(),be(),this._startPoint=this._map.mouseEventToContainerPoint(t),Be(document,{contextmenu:Oe,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=ae("div","leaflet-zoom-box",this._container),oe(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new Q(this._point,this._startPoint),a=e.getSize();me(this._box,e.min),this._box.style.width=a.x+"px",this._box.style.height=a.y+"px"},_finish:function(){this._moved&&(ie(this._box),le(this._container,"leaflet-crosshair")),Yt(),we(),Ne(document,{contextmenu:Oe,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(i(this._resetState,this),0);var e=new O(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});je.addInitHook("addHandler","boxZoom",mi),je.mergeOptions({doubleClickZoom:!0});var gi=$e.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,a=e.getZoom(),i=e.options.zoomDelta,n=t.originalEvent.shiftKey?a-i:a+i;"center"===e.options.doubleClickZoom?e.setZoom(n):e.setZoomAround(t.containerPoint,n)}});je.addInitHook("addHandler","doubleClickZoom",gi),je.mergeOptions({dragging:!0,inertia:!it,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var vi=$e.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new sa(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}oe(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){le(this._map._container,"leaflet-grab"),le(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=E(this._map.options.maxBounds);this._offsetLimit=I(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,a=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(a),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),a=this._initialWorldOffset,i=this._draggable._newPos.x,n=(i-e+a)%t+e-a,s=(i+e+a)%t-e-a,r=Math.abs(n+a)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});je.addInitHook("addHandler","scrollWheelZoom",wi),je.mergeOptions({tap:!0,tapTolerance:15});var Ci=$e.extend({addHooks:function(){Be(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Ne(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(Ie(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var e=t.touches[0],a=e.target;this._startPos=this._newPos=new M(e.clientX,e.clientY),a.tagName&&"a"===a.tagName.toLowerCase()&&oe(a,"leaflet-active"),this._holdTimeout=setTimeout(i((function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",e))}),this),1e3),this._simulateEvent("mousedown",e),Be(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),Ne(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var e=t.changedTouches[0],a=e.target;a&&a.tagName&&"a"===a.tagName.toLowerCase()&&le(a,"leaflet-active"),this._simulateEvent("mouseup",e),this._isTapValid()&&this._simulateEvent("click",e)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new M(e.clientX,e.clientY),this._simulateEvent("mousemove",e)},_simulateEvent:function(t,e){var a=document.createEvent("MouseEvents");a._simulated=!0,e.target._simulatedClick=!0,a.initMouseEvent(t,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),e.target.dispatchEvent(a)}});!yt||At&&!lt||je.addInitHook("addHandler","tap",Ci),je.mergeOptions({touchZoom:yt&&!it,bounceAtZoomLimits:!0});var Ai=$e.extend({addHooks:function(){oe(this._map._container,"leaflet-touch-zoom"),Be(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){le(this._map._container,"leaflet-touch-zoom"),Ne(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var a=e.mouseEventToContainerPoint(t.touches[0]),i=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(a.add(i)._divideBy(2))),this._startDist=a.distanceTo(i),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Be(document,"touchmove",this._onTouchMove,this),Be(document,"touchend",this._onTouchEnd,this),Ie(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,a=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),s=a.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=a._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),z(this._animRequest);var c=i(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=B(c,this,!0),Ie(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,z(this._animRequest),Ne(document,"touchmove",this._onTouchMove,this),Ne(document,"touchend",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});je.addInitHook("addHandler","touchZoom",Ai),je.BoxZoom=mi,je.DoubleClickZoom=gi,je.Drag=vi,je.Keyboard=bi,je.ScrollWheelZoom=wi,je.Tap=Ci,je.TouchZoom=Ai,t.version="1.7.1",t.Control=Ye,t.control=Re,t.Browser=Mt,t.Evented=V,t.Mixin=ea,t.Util=N,t.Class=x,t.Handler=$e,t.extend=e,t.bind=i,t.stamp=s,t.setOptions=d,t.DomEvent=Ue,t.DomUtil=He,t.PosAnimation=qe,t.Draggable=sa,t.LineUtil=ga,t.PolyUtil=ba,t.Point=M,t.point=k,t.Bounds=Q,t.bounds=I,t.Transformation=q,t.transformation=j,t.Projection=Aa,t.LatLng=X,t.latLng=T,t.LatLngBounds=O,t.latLngBounds=E,t.CRS=F,t.GeoJSON=Ea,t.geoJSON=Ya,t.geoJson=Ra,t.Layer=Ba,t.LayerGroup=za,t.layerGroup=function(t,e){return new za(t,e)},t.FeatureGroup=Na,t.featureGroup=function(t,e){return new Na(t,e)},t.ImageOverlay=Wa,t.imageOverlay=function(t,e,a){return new Wa(t,e,a)},t.VideoOverlay=Za,t.videoOverlay=function(t,e,a){return new Za(t,e,a)},t.SVGOverlay=Ja,t.svgOverlay=function(t,e,a){return new Ja(t,e,a)},t.DivOverlay=_a,t.Popup=$a,t.popup=function(t,e){return new $a(t,e)},t.Tooltip=ti,t.tooltip=function(t,e){return new ti(t,e)},t.Icon=xa,t.icon=function(t){return new xa(t)},t.DivIcon=ei,t.divIcon=function(t){return new ei(t)},t.Marker=Ma,t.marker=function(t,e){return new Ma(t,e)},t.TileLayer=ii,t.tileLayer=ni,t.GridLayer=ai,t.gridLayer=function(t){return new ai(t)},t.SVG=di,t.svg=fi,t.Renderer=ri,t.Canvas=ci,t.canvas=oi,t.Path=Sa,t.CircleMarker=ka,t.circleMarker=function(t,e){return new ka(t,e)},t.Circle=Qa,t.circle=function(t,e,a){return new Qa(t,e,a)},t.Polyline=Ia,t.polyline=function(t,e){return new Ia(t,e)},t.Polygon=Oa,t.polygon=function(t,e){return new Oa(t,e)},t.Rectangle=pi,t.rectangle=function(t,e){return new pi(t,e)},t.Map=je,t.map=function(t,e){return new je(t,e)};var yi=window.L;t.noConflict=function(){return window.L=yi,this},window.L=t}(e)},460:function(t,e){var a,i;a=function t(){"use strict";var e="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==e?e:{},a=!e.document&&!!e.postMessage,i=a&&/blob:/i.test((e.location||{}).protocol),n={},s=0,r={parse:function(a,i){var c=(i=i||{}).dynamicTyping||!1;if(A(c)&&(i.dynamicTypingFunction=c,c={}),i.dynamicTyping=c,i.transform=!!A(i.transform)&&i.transform,i.worker&&r.WORKERS_SUPPORTED){var o=function(){if(!r.WORKERS_SUPPORTED)return!1;var a,i,c=(a=e.URL||e.webkitURL||null,i=t.toString(),r.BLOB_URL||(r.BLOB_URL=a.createObjectURL(new Blob(["(",i,")();"],{type:"text/javascript"})))),o=new e.Worker(c);return o.onmessage=g,o.id=s++,n[o.id]=o}();return o.userStep=i.step,o.userChunk=i.chunk,o.userComplete=i.complete,o.userError=i.error,i.step=A(i.step),i.chunk=A(i.chunk),i.complete=A(i.complete),i.error=A(i.error),delete i.worker,void o.postMessage({input:a,config:i,workerId:o.id})}var f=null;return r.NODE_STREAM_INPUT,"string"==typeof a?f=i.download?new l(i):new u(i):!0===a.readable&&A(a.read)&&A(a.on)?f=new d(i):(e.File&&a instanceof File||a instanceof Object)&&(f=new h(i)),f.stream(a)},unparse:function(t,e){var a=!1,i=!0,n=",",s="\r\n",c='"',o=c+c,l=!1,h=null,u=!1;!function(){if("object"==typeof e){if("string"!=typeof e.delimiter||r.BAD_DELIMITERS.filter((function(t){return-1!==e.delimiter.indexOf(t)})).length||(n=e.delimiter),("boolean"==typeof e.quotes||"function"==typeof e.quotes||Array.isArray(e.quotes))&&(a=e.quotes),"boolean"!=typeof e.skipEmptyLines&&"string"!=typeof e.skipEmptyLines||(l=e.skipEmptyLines),"string"==typeof e.newline&&(s=e.newline),"string"==typeof e.quoteChar&&(c=e.quoteChar),"boolean"==typeof e.header&&(i=e.header),Array.isArray(e.columns)){if(0===e.columns.length)throw new Error("Option columns is empty");h=e.columns}void 0!==e.escapeChar&&(o=e.escapeChar+c),"boolean"==typeof e.escapeFormulae&&(u=e.escapeFormulae)}}();var d=new RegExp(p(c),"g");if("string"==typeof t&&(t=JSON.parse(t)),Array.isArray(t)){if(!t.length||Array.isArray(t[0]))return f(null,t,l);if("object"==typeof t[0])return f(h||Object.keys(t[0]),t,l)}else if("object"==typeof t)return"string"==typeof t.data&&(t.data=JSON.parse(t.data)),Array.isArray(t.data)&&(t.fields||(t.fields=t.meta&&t.meta.fields),t.fields||(t.fields=Array.isArray(t.data[0])?t.fields:"object"==typeof t.data[0]?Object.keys(t.data[0]):[]),Array.isArray(t.data[0])||"object"==typeof t.data[0]||(t.data=[t.data])),f(t.fields||[],t.data||[],l);throw new Error("Unable to serialize unrecognized input");function f(t,e,a){var r="";"string"==typeof t&&(t=JSON.parse(t)),"string"==typeof e&&(e=JSON.parse(e));var c=Array.isArray(t)&&0=this._config.preview;if(i)e.postMessage({results:c,workerId:r.WORKER_ID,finished:l});else if(A(this._config.chunk)&&!a){if(this._config.chunk(c,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);c=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(c.data),this._completeResults.errors=this._completeResults.errors.concat(c.errors),this._completeResults.meta=c.meta),this._completed||!l||!A(this._config.complete)||c&&c.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),l||c&&c.meta.paused||this._nextChunk(),c}this._halted=!0},this._sendError=function(t){A(this._config.error)?this._config.error(t):i&&this._config.error&&e.postMessage({workerId:r.WORKER_ID,error:t,finished:!1})}}function l(t){var e;(t=t||{}).chunkSize||(t.chunkSize=r.RemoteChunkSize),o.call(this,t),this._nextChunk=a?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(t){this._input=t,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(e=new XMLHttpRequest,this._config.withCredentials&&(e.withCredentials=this._config.withCredentials),a||(e.onload=C(this._chunkLoaded,this),e.onerror=C(this._chunkError,this)),e.open(this._config.downloadRequestBody?"POST":"GET",this._input,!a),this._config.downloadRequestHeaders){var t=this._config.downloadRequestHeaders;for(var i in t)e.setRequestHeader(i,t[i])}if(this._config.chunkSize){var n=this._start+this._config.chunkSize-1;e.setRequestHeader("Range","bytes="+this._start+"-"+n)}try{e.send(this._config.downloadRequestBody)}catch(t){this._chunkError(t.message)}a&&0===e.status&&this._chunkError()}},this._chunkLoaded=function(){4===e.readyState&&(e.status<200||400<=e.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:e.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(t){var e=t.getResponseHeader("Content-Range");return null===e?-1:parseInt(e.substring(e.lastIndexOf("/")+1))}(e),this.parseChunk(e.responseText)))},this._chunkError=function(t){var a=e.statusText||t;this._sendError(new Error(a))}}function h(t){var e,a;(t=t||{}).chunkSize||(t.chunkSize=r.LocalChunkSize),o.call(this,t);var i="undefined"!=typeof FileReader;this.stream=function(t){this._input=t,a=t.slice||t.webkitSlice||t.mozSlice,i?((e=new FileReader).onload=C(this._chunkLoaded,this),e.onerror=C(this._chunkError,this)):e=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(t.target.result)},this._chunkError=function(){this._sendError(e.error)}}function u(t){var e;o.call(this,t=t||{}),this.stream=function(t){return e=t,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var t,a=this._config.chunkSize;return a?(t=e.substring(0,a),e=e.substring(a)):(t=e,e=""),this._finished=!e,this.parseChunk(t)}}}function d(t){o.call(this,t=t||{});var e=[],a=!0,i=!1;this.pause=function(){o.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){o.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(t){this._input=t,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){i&&1===e.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),e.length?this.parseChunk(e.shift()):a=!0},this._streamData=C((function(t){try{e.push("string"==typeof t?t:t.toString(this._config.encoding)),a&&(a=!1,this._checkIsFinished(),this.parseChunk(e.shift()))}catch(t){this._streamError(t)}}),this),this._streamError=C((function(t){this._streamCleanUp(),this._sendError(t)}),this),this._streamEnd=C((function(){this._streamCleanUp(),i=!0,this._streamData("")}),this),this._streamCleanUp=C((function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)}),this)}function f(t){var e,a,i,n=Math.pow(2,53),s=-n,c=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,o=/^(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))$/,l=this,h=0,u=0,d=!1,f=!1,g=[],v={data:[],errors:[],meta:{}};if(A(t.step)){var b=t.step;t.step=function(e){if(v=e,L())y();else{if(y(),0===v.data.length)return;h+=e.data.length,t.preview&&h>t.preview?a.abort():(v.data=v.data[0],b(v,l))}}}function C(e){return"greedy"===t.skipEmptyLines?""===e.join("").trim():1===e.length&&0===e[0].length}function y(){if(v&&i&&(B("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+r.DefaultDelimiter+"'"),i=!1),t.skipEmptyLines)for(var e=0;e=g.length?"__parsed_extra":g[i]),t.transform&&(r=t.transform(r,s)),r=H(s,r),"__parsed_extra"===s?(n[s]=n[s]||[],n[s].push(r)):n[s]=r}return t.header&&(i>g.length?B("FieldMismatch","TooManyFields","Too many fields: expected "+g.length+" fields but parsed "+i,u+a):i=i.length/2?"\r\n":"\r"}(n,o)),i=!1,t.delimiter)A(t.delimiter)&&(t.delimiter=t.delimiter(n),v.meta.delimiter=t.delimiter);else{var l=function(e,a,i,n,s){var c,o,l,h;s=s||[",","\t","|",";",r.RECORD_SEP,r.UNIT_SEP];for(var u=0;u=c)return O(!0)}else for(D=h,h++;;){if(-1===(D=t.indexOf(e,D+1)))return d||C.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:w.length,index:h}),Q();if(D===f-1)return Q(t.substring(h,D).replace(x,e));if(e!==l||t[D+1]!==l){if(e===l||0===D||t[D-1]!==l){-1!==z&&z=c)return O(!0);break}C.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:w.length,index:h}),D++}}else D++}return Q();function S(t){w.push(t),L=h}function k(e){var a=0;if(-1!==e){var i=t.substring(D+1,e);i&&""===i.trim()&&(a=i.length)}return a}function Q(e){return d||(void 0===e&&(e=t.substring(h)),y.push(e),h=f,S(y),b&&E()),O()}function I(e){h=e,S(y),y=[],N=t.indexOf(i,h)}function O(t){return{data:w,errors:C,meta:{delimiter:a,linebreak:i,aborted:u,truncated:!!t,cursor:L+(r||0)}}}function E(){s(O()),w=[],C=[]}},this.abort=function(){u=!0},this.getCharIndex=function(){return h}}function g(t){var e=t.data,a=n[e.workerId],i=!1;if(e.error)a.userError(e.error,e.file);else if(e.results&&e.results.data){var s={abort:function(){i=!0,v(e.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:b,resume:b};if(A(a.userStep)){for(var r=0;r{"use strict";var i=a(171),n=Array.prototype.concat,s=Array.prototype.slice,r=t.exports=function(t){for(var e=[],a=0,r=t.length;a{L.Control.Fullscreen=window.OBSIDIAN_LEAFLET_PLUGIN.Control.extend({options:{position:"topleft",title:{false:"View Fullscreen",true:"Exit Fullscreen"}},onAdd:function(t){var e=window.OBSIDIAN_LEAFLET_PLUGIN.DomUtil.create("div","leaflet-control-fullscreen leaflet-bar leaflet-control");return this.link=window.OBSIDIAN_LEAFLET_PLUGIN.DomUtil.create("a","leaflet-control-fullscreen-button leaflet-bar-part",e),this.link.href="#",this._map=t,this._map.on("fullscreenchange",this._toggleTitle,this),this._toggleTitle(),window.OBSIDIAN_LEAFLET_PLUGIN.DomEvent.on(this.link,"click",this._click,this),e},_click:function(t){window.OBSIDIAN_LEAFLET_PLUGIN.DomEvent.stopPropagation(t),window.OBSIDIAN_LEAFLET_PLUGIN.DomEvent.preventDefault(t),this._map.toggleFullscreen(this.options)},_toggleTitle:function(){this.link.title=this.options.title[this._map.isFullscreen()]}}),window.OBSIDIAN_LEAFLET_PLUGIN.Map.include({isFullscreen:function(){return this._isFullscreen||!1},toggleFullscreen:function(t){var e=this.getContainer();this.isFullscreen()?t&&t.pseudoFullscreen?this._disablePseudoFullscreen(e):document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen?document.webkitCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():this._disablePseudoFullscreen(e):t&&t.pseudoFullscreen?this._enablePseudoFullscreen(e):e.requestFullscreen?e.requestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):e.msRequestFullscreen?e.msRequestFullscreen():this._enablePseudoFullscreen(e)},_enablePseudoFullscreen:function(t){window.OBSIDIAN_LEAFLET_PLUGIN.DomUtil.addClass(t,"leaflet-pseudo-fullscreen"),this._setFullscreen(!0),this.fire("fullscreenchange")},_disablePseudoFullscreen:function(t){window.OBSIDIAN_LEAFLET_PLUGIN.DomUtil.removeClass(t,"leaflet-pseudo-fullscreen"),this._setFullscreen(!1),this.fire("fullscreenchange")},_setFullscreen:function(t){this._isFullscreen=t;var e=this.getContainer();t?window.OBSIDIAN_LEAFLET_PLUGIN.DomUtil.addClass(e,"leaflet-fullscreen-on"):window.OBSIDIAN_LEAFLET_PLUGIN.DomUtil.removeClass(e,"leaflet-fullscreen-on"),this.invalidateSize()},_onFullscreenChange:function(t){var e=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;e!==this.getContainer()||this._isFullscreen?e!==this.getContainer()&&this._isFullscreen&&(this._setFullscreen(!1),this.fire("fullscreenchange")):(this._setFullscreen(!0),this.fire("fullscreenchange"))}}),window.OBSIDIAN_LEAFLET_PLUGIN.Map.mergeOptions({fullscreenControl:!1}),window.OBSIDIAN_LEAFLET_PLUGIN.Map.addInitHook((function(){var t;if(this.options.fullscreenControl&&(this.fullscreenControl=new window.OBSIDIAN_LEAFLET_PLUGIN.Control.Fullscreen(this.options.fullscreenControl),this.addControl(this.fullscreenControl)),"onfullscreenchange"in document?t="fullscreenchange":"onmozfullscreenchange"in document?t="mozfullscreenchange":"onwebkitfullscreenchange"in document?t="webkitfullscreenchange":"onmsfullscreenchange"in document&&(t="MSFullscreenChange"),t){var e=window.OBSIDIAN_LEAFLET_PLUGIN.bind(this._onFullscreenChange,this);this.whenReady((function(){window.OBSIDIAN_LEAFLET_PLUGIN.DomEvent.on(document,t,e)})),this.on("unload",(function(){window.OBSIDIAN_LEAFLET_PLUGIN.DomEvent.off(document,t,e)}))}})),window.OBSIDIAN_LEAFLET_PLUGIN.control.fullscreen=function(t){return new window.OBSIDIAN_LEAFLET_PLUGIN.Control.Fullscreen(t)}},857:function(t,e,a){var i,n,s;n=[a(243)],i=function(t){if(window.OBSIDIAN_LEAFLET_PLUGIN.Hotline)return t;var e=function(t){if(!(this instanceof e))return new e(t);this._canvas=t="string"==typeof t?document.getElementById(t):t,this._ctx=t.getContext("2d"),this._width=t.width,this._height=t.height,this._weight=5,this._outlineWidth=1,this._outlineColor="black",this._min=0,this._max=1,this._data=[],this.palette({0:"green",.5:"yellow",1:"red"})};e.prototype={width:function(t){return this._width=t,this},height:function(t){return this._height=t,this},weight:function(t){return this._weight=t,this},outlineWidth:function(t){return this._outlineWidth=t,this},outlineColor:function(t){return this._outlineColor=t,this},palette:function(t){var e=document.createElement("canvas"),a=e.getContext("2d"),i=a.createLinearGradient(0,0,0,256);for(var n in e.width=1,e.height=256,t)i.addColorStop(n,t[n]);return a.fillStyle=i,a.fillRect(0,0,1,256),this._palette=a.getImageData(0,0,1,256).data,this},min:function(t){return this._min=t,this},max:function(t){return this._max=t,this},data:function(t){return this._data=t,this},add:function(t){return this._data.push(t),this},draw:function(){var t=this._ctx;return t.globalCompositeOperation="source-over",t.lineCap="round",this._drawOutline(t),this._drawHotline(t),this},getRGBForValue:function(t){var e=Math.min(Math.max((t-this._min)/(this._max-this._min),0),.999),a=4*Math.floor(256*e);return[this._palette[a],this._palette[a+1],this._palette[a+2]]},_drawOutline:function(t){var e,a,i,n,s,r,c;if(this._outlineWidth)for(e=0,i=this._data.length;e{"use strict";t.exports=function(t,e,a,i){var n=self||window;try{try{var s;try{s=new n.Blob([t])}catch(e){(s=new(n.BlobBuilder||n.WebKitBlobBuilder||n.MozBlobBuilder||n.MSBlobBuilder)).append(t),s=s.getBlob()}var r=n.URL||n.webkitURL,c=r.createObjectURL(s),o=new n[e](c,a);return r.revokeObjectURL(c),o}catch(i){return new n[e]("data:application/javascript,".concat(encodeURIComponent(t)),a)}}catch(t){if(!i)throw Error("Inline worker is not supported");return new n[e](i,a)}}}},e={};function a(i){var n=e[i];if(void 0!==n)return n.exports;var s=e[i]={exports:{}};return t[i].call(s.exports,s,s.exports,a),s.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),a.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};(()=>{"use strict";a.r(i),a.d(i,{default:()=>uo});const t=require("obsidian");var e=a(460),n={prefix:"fas",iconName:"bed",icon:[640,512,[],"f236","M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"]},s={prefix:"fas",iconName:"bolt",icon:[320,512,[],"f0e7","M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z"]},r={prefix:"fas",iconName:"deaf",icon:[512,512,[],"f2a4","M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"]},c={prefix:"fas",iconName:"dizzy",icon:[496,512,[],"f567","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"]},o={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"]},l={prefix:"fas",iconName:"ghost",icon:[384,512,[],"f6e2","M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},h={prefix:"fas",iconName:"hands-helping",icon:[640,512,[],"f4c4","M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"]},u={prefix:"fas",iconName:"heart",icon:[512,512,[],"f004","M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"]},d={prefix:"fas",iconName:"link",icon:[512,512,[],"f0c1","M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"]},f={prefix:"fas",iconName:"magic",icon:[512,512,[],"f0d0","M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"]},p={prefix:"fas",iconName:"mountain",icon:[640,512,[],"f6fc","M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"]},m={prefix:"fas",iconName:"skull",icon:[512,512,[],"f54c","M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"]},g={prefix:"fas",iconName:"skull-crossbones",icon:[448,512,[],"f714","M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"]},v={prefix:"fas",iconName:"slash",icon:[640,512,[],"f715","M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"]},b={prefix:"fas",iconName:"spider",icon:[576,512,[],"f717","M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"]},w={prefix:"fas",iconName:"walking",icon:[320,512,[],"f554","M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"]},C={faAd:{prefix:"fas",iconName:"ad",icon:[512,512,[],"f641","M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"]},faAddressBook:{prefix:"fas",iconName:"address-book",icon:[448,512,[],"f2b9","M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]},faAddressCard:{prefix:"fas",iconName:"address-card",icon:[576,512,[],"f2bb","M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"]},faAdjust:{prefix:"fas",iconName:"adjust",icon:[512,512,[],"f042","M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"]},faAirFreshener:{prefix:"fas",iconName:"air-freshener",icon:[512,512,[],"f5d0","M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z"]},faAlignCenter:{prefix:"fas",iconName:"align-center",icon:[448,512,[],"f037","M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z"]},faAlignJustify:{prefix:"fas",iconName:"align-justify",icon:[448,512,[],"f039","M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faAlignLeft:{prefix:"fas",iconName:"align-left",icon:[448,512,[],"f036","M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faAlignRight:{prefix:"fas",iconName:"align-right",icon:[448,512,[],"f038","M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z"]},faAllergies:{prefix:"fas",iconName:"allergies",icon:[448,512,[],"f461","M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]},faAmbulance:{prefix:"fas",iconName:"ambulance",icon:[640,512,[],"f0f9","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"]},faAmericanSignLanguageInterpreting:{prefix:"fas",iconName:"american-sign-language-interpreting",icon:[640,512,[],"f2a3","M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"]},faAnchor:{prefix:"fas",iconName:"anchor",icon:[576,512,[],"f13d","M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"]},faAngleDoubleDown:{prefix:"fas",iconName:"angle-double-down",icon:[320,512,[],"f103","M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"]},faAngleDoubleLeft:{prefix:"fas",iconName:"angle-double-left",icon:[448,512,[],"f100","M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"]},faAngleDoubleRight:{prefix:"fas",iconName:"angle-double-right",icon:[448,512,[],"f101","M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"]},faAngleDoubleUp:{prefix:"fas",iconName:"angle-double-up",icon:[320,512,[],"f102","M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"]},faAngleDown:{prefix:"fas",iconName:"angle-down",icon:[320,512,[],"f107","M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"]},faAngleLeft:{prefix:"fas",iconName:"angle-left",icon:[256,512,[],"f104","M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"]},faAngleRight:{prefix:"fas",iconName:"angle-right",icon:[256,512,[],"f105","M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"]},faAngleUp:{prefix:"fas",iconName:"angle-up",icon:[320,512,[],"f106","M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"]},faAngry:{prefix:"fas",iconName:"angry",icon:[496,512,[],"f556","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"]},faAnkh:{prefix:"fas",iconName:"ankh",icon:[320,512,[],"f644","M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"]},faAppleAlt:{prefix:"fas",iconName:"apple-alt",icon:[448,512,[],"f5d1","M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"]},faArchive:{prefix:"fas",iconName:"archive",icon:[512,512,[],"f187","M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"]},faArchway:{prefix:"fas",iconName:"archway",icon:[576,512,[],"f557","M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"]},faArrowAltCircleDown:{prefix:"fas",iconName:"arrow-alt-circle-down",icon:[512,512,[],"f358","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"]},faArrowAltCircleLeft:{prefix:"fas",iconName:"arrow-alt-circle-left",icon:[512,512,[],"f359","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"]},faArrowAltCircleRight:{prefix:"fas",iconName:"arrow-alt-circle-right",icon:[512,512,[],"f35a","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"]},faArrowAltCircleUp:{prefix:"fas",iconName:"arrow-alt-circle-up",icon:[512,512,[],"f35b","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"]},faArrowCircleDown:{prefix:"fas",iconName:"arrow-circle-down",icon:[512,512,[],"f0ab","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"]},faArrowCircleLeft:{prefix:"fas",iconName:"arrow-circle-left",icon:[512,512,[],"f0a8","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"]},faArrowCircleRight:{prefix:"fas",iconName:"arrow-circle-right",icon:[512,512,[],"f0a9","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"]},faArrowCircleUp:{prefix:"fas",iconName:"arrow-circle-up",icon:[512,512,[],"f0aa","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"]},faArrowDown:{prefix:"fas",iconName:"arrow-down",icon:[448,512,[],"f063","M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"]},faArrowLeft:{prefix:"fas",iconName:"arrow-left",icon:[448,512,[],"f060","M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"]},faArrowRight:{prefix:"fas",iconName:"arrow-right",icon:[448,512,[],"f061","M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"]},faArrowUp:{prefix:"fas",iconName:"arrow-up",icon:[448,512,[],"f062","M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"]},faArrowsAlt:{prefix:"fas",iconName:"arrows-alt",icon:[512,512,[],"f0b2","M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"]},faArrowsAltH:{prefix:"fas",iconName:"arrows-alt-h",icon:[512,512,[],"f337","M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"]},faArrowsAltV:{prefix:"fas",iconName:"arrows-alt-v",icon:[256,512,[],"f338","M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"]},faAssistiveListeningSystems:{prefix:"fas",iconName:"assistive-listening-systems",icon:[512,512,[],"f2a2","M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"]},faAsterisk:{prefix:"fas",iconName:"asterisk",icon:[512,512,[],"f069","M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"]},faAt:{prefix:"fas",iconName:"at",icon:[512,512,[],"f1fa","M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"]},faAtlas:{prefix:"fas",iconName:"atlas",icon:[448,512,[],"f558","M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"]},faAtom:{prefix:"fas",iconName:"atom",icon:[448,512,[],"f5d2","M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z"]},faAudioDescription:{prefix:"fas",iconName:"audio-description",icon:[512,512,[],"f29e","M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"]},faAward:{prefix:"fas",iconName:"award",icon:[384,512,[],"f559","M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"]},faBaby:{prefix:"fas",iconName:"baby",icon:[384,512,[],"f77c","M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z"]},faBabyCarriage:{prefix:"fas",iconName:"baby-carriage",icon:[512,512,[],"f77d","M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z"]},faBackspace:{prefix:"fas",iconName:"backspace",icon:[640,512,[],"f55a","M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"]},faBackward:{prefix:"fas",iconName:"backward",icon:[512,512,[],"f04a","M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"]},faBacon:{prefix:"fas",iconName:"bacon",icon:[576,512,[],"f7e5","M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z"]},faBacteria:{prefix:"fas",iconName:"bacteria",icon:[640,512,[],"e059","M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z"]},faBacterium:{prefix:"fas",iconName:"bacterium",icon:[512,512,[],"e05a","M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z"]},faBahai:{prefix:"fas",iconName:"bahai",icon:[512,512,[],"f666","M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"]},faBalanceScale:{prefix:"fas",iconName:"balance-scale",icon:[640,512,[],"f24e","M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},faBalanceScaleLeft:{prefix:"fas",iconName:"balance-scale-left",icon:[640,512,[],"f515","M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z"]},faBalanceScaleRight:{prefix:"fas",iconName:"balance-scale-right",icon:[640,512,[],"f516","M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z"]},faBan:{prefix:"fas",iconName:"ban",icon:[512,512,[],"f05e","M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"]},faBandAid:{prefix:"fas",iconName:"band-aid",icon:[640,512,[],"f462","M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"]},faBarcode:{prefix:"fas",iconName:"barcode",icon:[512,512,[],"f02a","M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"]},faBars:{prefix:"fas",iconName:"bars",icon:[448,512,[],"f0c9","M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"]},faBaseballBall:{prefix:"fas",iconName:"baseball-ball",icon:[496,512,[],"f433","M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"]},faBasketballBall:{prefix:"fas",iconName:"basketball-ball",icon:[496,512,[],"f434","M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"]},faBath:{prefix:"fas",iconName:"bath",icon:[512,512,[],"f2cd","M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z"]},faBatteryEmpty:{prefix:"fas",iconName:"battery-empty",icon:[640,512,[],"f244","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"]},faBatteryFull:{prefix:"fas",iconName:"battery-full",icon:[640,512,[],"f240","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"]},faBatteryHalf:{prefix:"fas",iconName:"battery-half",icon:[640,512,[],"f242","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"]},faBatteryQuarter:{prefix:"fas",iconName:"battery-quarter",icon:[640,512,[],"f243","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"]},faBatteryThreeQuarters:{prefix:"fas",iconName:"battery-three-quarters",icon:[640,512,[],"f241","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"]},faBed:n,faBeer:{prefix:"fas",iconName:"beer",icon:[448,512,[],"f0fc","M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"]},faBell:{prefix:"fas",iconName:"bell",icon:[448,512,[],"f0f3","M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"]},faBellSlash:{prefix:"fas",iconName:"bell-slash",icon:[640,512,[],"f1f6","M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"]},faBezierCurve:{prefix:"fas",iconName:"bezier-curve",icon:[640,512,[],"f55b","M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"]},faBible:{prefix:"fas",iconName:"bible",icon:[448,512,[],"f647","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"]},faBicycle:{prefix:"fas",iconName:"bicycle",icon:[640,512,[],"f206","M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"]},faBiking:{prefix:"fas",iconName:"biking",icon:[640,512,[],"f84a","M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z"]},faBinoculars:{prefix:"fas",iconName:"binoculars",icon:[512,512,[],"f1e5","M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"]},faBiohazard:{prefix:"fas",iconName:"biohazard",icon:[576,512,[],"f780","M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"]},faBirthdayCake:{prefix:"fas",iconName:"birthday-cake",icon:[448,512,[],"f1fd","M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"]},faBlender:{prefix:"fas",iconName:"blender",icon:[512,512,[],"f517","M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"]},faBlenderPhone:{prefix:"fas",iconName:"blender-phone",icon:[576,512,[],"f6b6","M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faBlind:{prefix:"fas",iconName:"blind",icon:[384,512,[],"f29d","M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"]},faBlog:{prefix:"fas",iconName:"blog",icon:[512,512,[],"f781","M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z"]},faBold:{prefix:"fas",iconName:"bold",icon:[384,512,[],"f032","M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z"]},faBolt:s,faBomb:{prefix:"fas",iconName:"bomb",icon:[512,512,[],"f1e2","M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"]},faBone:{prefix:"fas",iconName:"bone",icon:[640,512,[],"f5d7","M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"]},faBong:{prefix:"fas",iconName:"bong",icon:[448,512,[],"f55c","M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"]},faBook:{prefix:"fas",iconName:"book",icon:[448,512,[],"f02d","M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"]},faBookDead:{prefix:"fas",iconName:"book-dead",icon:[448,512,[],"f6b7","M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z"]},faBookMedical:{prefix:"fas",iconName:"book-medical",icon:[448,512,[],"f7e6","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z"]},faBookOpen:{prefix:"fas",iconName:"book-open",icon:[576,512,[],"f518","M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"]},faBookReader:{prefix:"fas",iconName:"book-reader",icon:[512,512,[],"f5da","M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"]},faBookmark:{prefix:"fas",iconName:"bookmark",icon:[384,512,[],"f02e","M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"]},faBorderAll:{prefix:"fas",iconName:"border-all",icon:[448,512,[],"f84c","M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z"]},faBorderNone:{prefix:"fas",iconName:"border-none",icon:[448,512,[],"f850","M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faBorderStyle:{prefix:"fas",iconName:"border-style",icon:[448,512,[],"f853","M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faBowlingBall:{prefix:"fas",iconName:"bowling-ball",icon:[496,512,[],"f436","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faBox:{prefix:"fas",iconName:"box",icon:[512,512,[],"f466","M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"]},faBoxOpen:{prefix:"fas",iconName:"box-open",icon:[640,512,[],"f49e","M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z"]},faBoxTissue:{prefix:"fas",iconName:"box-tissue",icon:[512,512,[],"e05b","M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z"]},faBoxes:{prefix:"fas",iconName:"boxes",icon:[576,512,[],"f468","M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"]},faBraille:{prefix:"fas",iconName:"braille",icon:[640,512,[],"f2a1","M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"]},faBrain:{prefix:"fas",iconName:"brain",icon:[576,512,[],"f5dc","M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z"]},faBreadSlice:{prefix:"fas",iconName:"bread-slice",icon:[576,512,[],"f7ec","M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z"]},faBriefcase:{prefix:"fas",iconName:"briefcase",icon:[512,512,[],"f0b1","M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"]},faBriefcaseMedical:{prefix:"fas",iconName:"briefcase-medical",icon:[512,512,[],"f469","M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"]},faBroadcastTower:{prefix:"fas",iconName:"broadcast-tower",icon:[640,512,[],"f519","M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"]},faBroom:{prefix:"fas",iconName:"broom",icon:[640,512,[],"f51a","M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"]},faBrush:{prefix:"fas",iconName:"brush",icon:[384,512,[],"f55d","M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"]},faBug:{prefix:"fas",iconName:"bug",icon:[512,512,[],"f188","M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"]},faBuilding:{prefix:"fas",iconName:"building",icon:[448,512,[],"f1ad","M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"]},faBullhorn:{prefix:"fas",iconName:"bullhorn",icon:[576,512,[],"f0a1","M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"]},faBullseye:{prefix:"fas",iconName:"bullseye",icon:[496,512,[],"f140","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"]},faBurn:{prefix:"fas",iconName:"burn",icon:[384,512,[],"f46a","M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"]},faBus:{prefix:"fas",iconName:"bus",icon:[512,512,[],"f207","M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faBusAlt:{prefix:"fas",iconName:"bus-alt",icon:[512,512,[],"f55e","M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faBusinessTime:{prefix:"fas",iconName:"business-time",icon:[640,512,[],"f64a","M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"]},faCalculator:{prefix:"fas",iconName:"calculator",icon:[448,512,[],"f1ec","M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"]},faCalendar:{prefix:"fas",iconName:"calendar",icon:[448,512,[],"f133","M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"]},faCalendarAlt:{prefix:"fas",iconName:"calendar-alt",icon:[448,512,[],"f073","M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"]},faCalendarCheck:{prefix:"fas",iconName:"calendar-check",icon:[448,512,[],"f274","M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"]},faCalendarDay:{prefix:"fas",iconName:"calendar-day",icon:[448,512,[],"f783","M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"]},faCalendarMinus:{prefix:"fas",iconName:"calendar-minus",icon:[448,512,[],"f272","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"]},faCalendarPlus:{prefix:"fas",iconName:"calendar-plus",icon:[448,512,[],"f271","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"]},faCalendarTimes:{prefix:"fas",iconName:"calendar-times",icon:[448,512,[],"f273","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"]},faCalendarWeek:{prefix:"fas",iconName:"calendar-week",icon:[448,512,[],"f784","M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"]},faCamera:{prefix:"fas",iconName:"camera",icon:[512,512,[],"f030","M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"]},faCameraRetro:{prefix:"fas",iconName:"camera-retro",icon:[512,512,[],"f083","M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"]},faCampground:{prefix:"fas",iconName:"campground",icon:[640,512,[],"f6bb","M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"]},faCandyCane:{prefix:"fas",iconName:"candy-cane",icon:[512,512,[],"f786","M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z"]},faCannabis:{prefix:"fas",iconName:"cannabis",icon:[512,512,[],"f55f","M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"]},faCapsules:{prefix:"fas",iconName:"capsules",icon:[576,512,[],"f46b","M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"]},faCar:{prefix:"fas",iconName:"car",icon:[512,512,[],"f1b9","M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"]},faCarAlt:{prefix:"fas",iconName:"car-alt",icon:[480,512,[],"f5de","M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"]},faCarBattery:{prefix:"fas",iconName:"car-battery",icon:[512,512,[],"f5df","M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"]},faCarCrash:{prefix:"fas",iconName:"car-crash",icon:[640,512,[],"f5e1","M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"]},faCarSide:{prefix:"fas",iconName:"car-side",icon:[640,512,[],"f5e4","M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"]},faCaravan:{prefix:"fas",iconName:"caravan",icon:[640,512,[],"f8ff","M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z"]},faCaretDown:{prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"]},faCaretLeft:{prefix:"fas",iconName:"caret-left",icon:[192,512,[],"f0d9","M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"]},faCaretRight:{prefix:"fas",iconName:"caret-right",icon:[192,512,[],"f0da","M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"]},faCaretSquareDown:{prefix:"fas",iconName:"caret-square-down",icon:[448,512,[],"f150","M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"]},faCaretSquareLeft:{prefix:"fas",iconName:"caret-square-left",icon:[448,512,[],"f191","M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"]},faCaretSquareRight:{prefix:"fas",iconName:"caret-square-right",icon:[448,512,[],"f152","M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"]},faCaretSquareUp:{prefix:"fas",iconName:"caret-square-up",icon:[448,512,[],"f151","M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"]},faCaretUp:{prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"]},faCarrot:{prefix:"fas",iconName:"carrot",icon:[512,512,[],"f787","M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z"]},faCartArrowDown:{prefix:"fas",iconName:"cart-arrow-down",icon:[576,512,[],"f218","M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"]},faCartPlus:{prefix:"fas",iconName:"cart-plus",icon:[576,512,[],"f217","M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"]},faCashRegister:{prefix:"fas",iconName:"cash-register",icon:[512,512,[],"f788","M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z"]},faCat:{prefix:"fas",iconName:"cat",icon:[512,512,[],"f6be","M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"]},faCertificate:{prefix:"fas",iconName:"certificate",icon:[512,512,[],"f0a3","M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"]},faChair:{prefix:"fas",iconName:"chair",icon:[448,512,[],"f6c0","M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z"]},faChalkboard:{prefix:"fas",iconName:"chalkboard",icon:[640,512,[],"f51b","M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},faChalkboardTeacher:{prefix:"fas",iconName:"chalkboard-teacher",icon:[640,512,[],"f51c","M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"]},faChargingStation:{prefix:"fas",iconName:"charging-station",icon:[576,512,[],"f5e7","M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"]},faChartArea:{prefix:"fas",iconName:"chart-area",icon:[512,512,[],"f1fe","M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"]},faChartBar:{prefix:"fas",iconName:"chart-bar",icon:[512,512,[],"f080","M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},faChartLine:{prefix:"fas",iconName:"chart-line",icon:[512,512,[],"f201","M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"]},faChartPie:{prefix:"fas",iconName:"chart-pie",icon:[544,512,[],"f200","M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"]},faCheck:{prefix:"fas",iconName:"check",icon:[512,512,[],"f00c","M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"]},faCheckCircle:{prefix:"fas",iconName:"check-circle",icon:[512,512,[],"f058","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"]},faCheckDouble:{prefix:"fas",iconName:"check-double",icon:[512,512,[],"f560","M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z"]},faCheckSquare:{prefix:"fas",iconName:"check-square",icon:[448,512,[],"f14a","M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"]},faCheese:{prefix:"fas",iconName:"cheese",icon:[512,512,[],"f7ef","M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z"]},faChess:{prefix:"fas",iconName:"chess",icon:[512,512,[],"f439","M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z"]},faChessBishop:{prefix:"fas",iconName:"chess-bishop",icon:[320,512,[],"f43a","M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faChessBoard:{prefix:"fas",iconName:"chess-board",icon:[512,512,[],"f43c","M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z"]},faChessKing:{prefix:"fas",iconName:"chess-king",icon:[448,512,[],"f43f","M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z"]},faChessKnight:{prefix:"fas",iconName:"chess-knight",icon:[384,512,[],"f441","M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faChessPawn:{prefix:"fas",iconName:"chess-pawn",icon:[320,512,[],"f443","M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faChessQueen:{prefix:"fas",iconName:"chess-queen",icon:[512,512,[],"f445","M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z"]},faChessRook:{prefix:"fas",iconName:"chess-rook",icon:[384,512,[],"f447","M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faChevronCircleDown:{prefix:"fas",iconName:"chevron-circle-down",icon:[512,512,[],"f13a","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"]},faChevronCircleLeft:{prefix:"fas",iconName:"chevron-circle-left",icon:[512,512,[],"f137","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"]},faChevronCircleRight:{prefix:"fas",iconName:"chevron-circle-right",icon:[512,512,[],"f138","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"]},faChevronCircleUp:{prefix:"fas",iconName:"chevron-circle-up",icon:[512,512,[],"f139","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"]},faChevronDown:{prefix:"fas",iconName:"chevron-down",icon:[448,512,[],"f078","M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"]},faChevronLeft:{prefix:"fas",iconName:"chevron-left",icon:[320,512,[],"f053","M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"]},faChevronRight:{prefix:"fas",iconName:"chevron-right",icon:[320,512,[],"f054","M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"]},faChevronUp:{prefix:"fas",iconName:"chevron-up",icon:[448,512,[],"f077","M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"]},faChild:{prefix:"fas",iconName:"child",icon:[384,512,[],"f1ae","M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"]},faChurch:{prefix:"fas",iconName:"church",icon:[640,512,[],"f51d","M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"]},faCircle:{prefix:"fas",iconName:"circle",icon:[512,512,[],"f111","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"]},faCircleNotch:{prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"]},faCity:{prefix:"fas",iconName:"city",icon:[640,512,[],"f64f","M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"]},faClinicMedical:{prefix:"fas",iconName:"clinic-medical",icon:[576,512,[],"f7f2","M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z"]},faClipboard:{prefix:"fas",iconName:"clipboard",icon:[384,512,[],"f328","M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"]},faClipboardCheck:{prefix:"fas",iconName:"clipboard-check",icon:[384,512,[],"f46c","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"]},faClipboardList:{prefix:"fas",iconName:"clipboard-list",icon:[384,512,[],"f46d","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"]},faClock:{prefix:"fas",iconName:"clock",icon:[512,512,[],"f017","M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z"]},faClone:{prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"]},faClosedCaptioning:{prefix:"fas",iconName:"closed-captioning",icon:[512,512,[],"f20a","M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"]},faCloud:{prefix:"fas",iconName:"cloud",icon:[640,512,[],"f0c2","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"]},faCloudDownloadAlt:{prefix:"fas",iconName:"cloud-download-alt",icon:[640,512,[],"f381","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"]},faCloudMeatball:{prefix:"fas",iconName:"cloud-meatball",icon:[512,512,[],"f73b","M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z"]},faCloudMoon:{prefix:"fas",iconName:"cloud-moon",icon:[576,512,[],"f6c3","M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z"]},faCloudMoonRain:{prefix:"fas",iconName:"cloud-moon-rain",icon:[576,512,[],"f73c","M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z"]},faCloudRain:{prefix:"fas",iconName:"cloud-rain",icon:[512,512,[],"f73d","M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z"]},faCloudShowersHeavy:{prefix:"fas",iconName:"cloud-showers-heavy",icon:[512,512,[],"f740","M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z"]},faCloudSun:{prefix:"fas",iconName:"cloud-sun",icon:[640,512,[],"f6c4","M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z"]},faCloudSunRain:{prefix:"fas",iconName:"cloud-sun-rain",icon:[576,512,[],"f743","M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z"]},faCloudUploadAlt:{prefix:"fas",iconName:"cloud-upload-alt",icon:[640,512,[],"f382","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"]},faCocktail:{prefix:"fas",iconName:"cocktail",icon:[576,512,[],"f561","M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"]},faCode:{prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"]},faCodeBranch:{prefix:"fas",iconName:"code-branch",icon:[384,512,[],"f126","M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"]},faCoffee:{prefix:"fas",iconName:"coffee",icon:[640,512,[],"f0f4","M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"]},faCog:{prefix:"fas",iconName:"cog",icon:[512,512,[],"f013","M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faCogs:{prefix:"fas",iconName:"cogs",icon:[640,512,[],"f085","M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"]},faCoins:{prefix:"fas",iconName:"coins",icon:[512,512,[],"f51e","M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"]},faColumns:{prefix:"fas",iconName:"columns",icon:[512,512,[],"f0db","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"]},faComment:{prefix:"fas",iconName:"comment",icon:[512,512,[],"f075","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"]},faCommentAlt:{prefix:"fas",iconName:"comment-alt",icon:[512,512,[],"f27a","M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"]},faCommentDollar:{prefix:"fas",iconName:"comment-dollar",icon:[512,512,[],"f651","M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"]},faCommentDots:{prefix:"fas",iconName:"comment-dots",icon:[512,512,[],"f4ad","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faCommentMedical:{prefix:"fas",iconName:"comment-medical",icon:[512,512,[],"f7f5","M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z"]},faCommentSlash:{prefix:"fas",iconName:"comment-slash",icon:[640,512,[],"f4b3","M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"]},faComments:{prefix:"fas",iconName:"comments",icon:[576,512,[],"f086","M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"]},faCommentsDollar:{prefix:"fas",iconName:"comments-dollar",icon:[576,512,[],"f653","M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"]},faCompactDisc:{prefix:"fas",iconName:"compact-disc",icon:[496,512,[],"f51f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"]},faCompass:{prefix:"fas",iconName:"compass",icon:[496,512,[],"f14e","M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"]},faCompress:{prefix:"fas",iconName:"compress",icon:[448,512,[],"f066","M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"]},faCompressAlt:{prefix:"fas",iconName:"compress-alt",icon:[448,512,[],"f422","M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z"]},faCompressArrowsAlt:{prefix:"fas",iconName:"compress-arrows-alt",icon:[512,512,[],"f78c","M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"]},faConciergeBell:{prefix:"fas",iconName:"concierge-bell",icon:[512,512,[],"f562","M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},faCookie:{prefix:"fas",iconName:"cookie",icon:[512,512,[],"f563","M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faCookieBite:{prefix:"fas",iconName:"cookie-bite",icon:[512,512,[],"f564","M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faCopy:{prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"]},faCopyright:{prefix:"fas",iconName:"copyright",icon:[512,512,[],"f1f9","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"]},faCouch:{prefix:"fas",iconName:"couch",icon:[640,512,[],"f4b8","M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"]},faCreditCard:{prefix:"fas",iconName:"credit-card",icon:[576,512,[],"f09d","M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"]},faCrop:{prefix:"fas",iconName:"crop",icon:[512,512,[],"f125","M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"]},faCropAlt:{prefix:"fas",iconName:"crop-alt",icon:[512,512,[],"f565","M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"]},faCross:{prefix:"fas",iconName:"cross",icon:[384,512,[],"f654","M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"]},faCrosshairs:{prefix:"fas",iconName:"crosshairs",icon:[512,512,[],"f05b","M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"]},faCrow:{prefix:"fas",iconName:"crow",icon:[640,512,[],"f520","M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},faCrown:{prefix:"fas",iconName:"crown",icon:[640,512,[],"f521","M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"]},faCrutch:{prefix:"fas",iconName:"crutch",icon:[512,512,[],"f7f7","M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z"]},faCube:{prefix:"fas",iconName:"cube",icon:[512,512,[],"f1b2","M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"]},faCubes:{prefix:"fas",iconName:"cubes",icon:[512,512,[],"f1b3","M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"]},faCut:{prefix:"fas",iconName:"cut",icon:[448,512,[],"f0c4","M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"]},faDatabase:{prefix:"fas",iconName:"database",icon:[448,512,[],"f1c0","M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"]},faDeaf:r,faDemocrat:{prefix:"fas",iconName:"democrat",icon:[640,512,[],"f747","M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z"]},faDesktop:{prefix:"fas",iconName:"desktop",icon:[576,512,[],"f108","M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"]},faDharmachakra:{prefix:"fas",iconName:"dharmachakra",icon:[512,512,[],"f655","M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"]},faDiagnoses:{prefix:"fas",iconName:"diagnoses",icon:[640,512,[],"f470","M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]},faDice:{prefix:"fas",iconName:"dice",icon:[640,512,[],"f522","M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},faDiceD20:{prefix:"fas",iconName:"dice-d20",icon:[480,512,[],"f6cf","M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"]},faDiceD6:{prefix:"fas",iconName:"dice-d6",icon:[448,512,[],"f6d1","M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"]},faDiceFive:{prefix:"fas",iconName:"dice-five",icon:[448,512,[],"f523","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faDiceFour:{prefix:"fas",iconName:"dice-four",icon:[448,512,[],"f524","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faDiceOne:{prefix:"fas",iconName:"dice-one",icon:[448,512,[],"f525","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faDiceSix:{prefix:"fas",iconName:"dice-six",icon:[448,512,[],"f526","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faDiceThree:{prefix:"fas",iconName:"dice-three",icon:[448,512,[],"f527","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faDiceTwo:{prefix:"fas",iconName:"dice-two",icon:[448,512,[],"f528","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faDigitalTachograph:{prefix:"fas",iconName:"digital-tachograph",icon:[640,512,[],"f566","M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"]},faDirections:{prefix:"fas",iconName:"directions",icon:[512,512,[],"f5eb","M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"]},faDisease:{prefix:"fas",iconName:"disease",icon:[512,512,[],"f7fa","M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z"]},faDivide:{prefix:"fas",iconName:"divide",icon:[448,512,[],"f529","M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},faDizzy:c,faDna:{prefix:"fas",iconName:"dna",icon:[448,512,[],"f471","M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"]},faDog:{prefix:"fas",iconName:"dog",icon:[576,512,[],"f6d3","M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z"]},faDollarSign:{prefix:"fas",iconName:"dollar-sign",icon:[288,512,[],"f155","M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"]},faDolly:{prefix:"fas",iconName:"dolly",icon:[576,512,[],"f472","M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"]},faDollyFlatbed:{prefix:"fas",iconName:"dolly-flatbed",icon:[640,512,[],"f474","M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]},faDonate:{prefix:"fas",iconName:"donate",icon:[512,512,[],"f4b9","M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"]},faDoorClosed:{prefix:"fas",iconName:"door-closed",icon:[640,512,[],"f52a","M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"]},faDoorOpen:{prefix:"fas",iconName:"door-open",icon:[640,512,[],"f52b","M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"]},faDotCircle:{prefix:"fas",iconName:"dot-circle",icon:[512,512,[],"f192","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"]},faDove:{prefix:"fas",iconName:"dove",icon:[512,512,[],"f4ba","M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]},faDownload:{prefix:"fas",iconName:"download",icon:[512,512,[],"f019","M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"]},faDraftingCompass:{prefix:"fas",iconName:"drafting-compass",icon:[512,512,[],"f568","M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"]},faDragon:{prefix:"fas",iconName:"dragon",icon:[640,512,[],"f6d5","M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"]},faDrawPolygon:{prefix:"fas",iconName:"draw-polygon",icon:[448,512,[],"f5ee","M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"]},faDrum:{prefix:"fas",iconName:"drum",icon:[512,512,[],"f569","M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z"]},faDrumSteelpan:{prefix:"fas",iconName:"drum-steelpan",icon:[576,512,[],"f56a","M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"]},faDrumstickBite:{prefix:"fas",iconName:"drumstick-bite",icon:[512,512,[],"f6d7","M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z"]},faDumbbell:{prefix:"fas",iconName:"dumbbell",icon:[640,512,[],"f44b","M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"]},faDumpster:{prefix:"fas",iconName:"dumpster",icon:[576,512,[],"f793","M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]},faDumpsterFire:{prefix:"fas",iconName:"dumpster-fire",icon:[640,512,[],"f794","M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z"]},faDungeon:{prefix:"fas",iconName:"dungeon",icon:[512,512,[],"f6d9","M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"]},faEdit:{prefix:"fas",iconName:"edit",icon:[576,512,[],"f044","M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"]},faEgg:{prefix:"fas",iconName:"egg",icon:[384,512,[],"f7fb","M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z"]},faEject:{prefix:"fas",iconName:"eject",icon:[448,512,[],"f052","M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"]},faEllipsisH:{prefix:"fas",iconName:"ellipsis-h",icon:[512,512,[],"f141","M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"]},faEllipsisV:{prefix:"fas",iconName:"ellipsis-v",icon:[192,512,[],"f142","M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"]},faEnvelope:{prefix:"fas",iconName:"envelope",icon:[512,512,[],"f0e0","M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"]},faEnvelopeOpen:{prefix:"fas",iconName:"envelope-open",icon:[512,512,[],"f2b6","M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"]},faEnvelopeOpenText:{prefix:"fas",iconName:"envelope-open-text",icon:[512,512,[],"f658","M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"]},faEnvelopeSquare:{prefix:"fas",iconName:"envelope-square",icon:[448,512,[],"f199","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"]},faEquals:{prefix:"fas",iconName:"equals",icon:[448,512,[],"f52c","M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},faEraser:{prefix:"fas",iconName:"eraser",icon:[512,512,[],"f12d","M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"]},faEthernet:{prefix:"fas",iconName:"ethernet",icon:[512,512,[],"f796","M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z"]},faEuroSign:{prefix:"fas",iconName:"euro-sign",icon:[320,512,[],"f153","M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"]},faExchangeAlt:{prefix:"fas",iconName:"exchange-alt",icon:[512,512,[],"f362","M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"]},faExclamation:{prefix:"fas",iconName:"exclamation",icon:[192,512,[],"f12a","M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"]},faExclamationCircle:{prefix:"fas",iconName:"exclamation-circle",icon:[512,512,[],"f06a","M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]},faExclamationTriangle:{prefix:"fas",iconName:"exclamation-triangle",icon:[576,512,[],"f071","M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]},faExpand:{prefix:"fas",iconName:"expand",icon:[448,512,[],"f065","M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"]},faExpandAlt:{prefix:"fas",iconName:"expand-alt",icon:[448,512,[],"f424","M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z"]},faExpandArrowsAlt:{prefix:"fas",iconName:"expand-arrows-alt",icon:[448,512,[],"f31e","M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"]},faExternalLinkAlt:{prefix:"fas",iconName:"external-link-alt",icon:[512,512,[],"f35d","M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z"]},faExternalLinkSquareAlt:{prefix:"fas",iconName:"external-link-square-alt",icon:[448,512,[],"f360","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"]},faEye:{prefix:"fas",iconName:"eye",icon:[576,512,[],"f06e","M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"]},faEyeDropper:{prefix:"fas",iconName:"eye-dropper",icon:[512,512,[],"f1fb","M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"]},faEyeSlash:o,faFan:{prefix:"fas",iconName:"fan",icon:[512,512,[],"f863","M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"]},faFastBackward:{prefix:"fas",iconName:"fast-backward",icon:[512,512,[],"f049","M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"]},faFastForward:{prefix:"fas",iconName:"fast-forward",icon:[512,512,[],"f050","M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"]},faFaucet:{prefix:"fas",iconName:"faucet",icon:[512,512,[],"e005","M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z"]},faFax:{prefix:"fas",iconName:"fax",icon:[512,512,[],"f1ac","M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z"]},faFeather:{prefix:"fas",iconName:"feather",icon:[512,512,[],"f52d","M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"]},faFeatherAlt:{prefix:"fas",iconName:"feather-alt",icon:[512,512,[],"f56b","M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"]},faFemale:{prefix:"fas",iconName:"female",icon:[256,512,[],"f182","M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"]},faFighterJet:{prefix:"fas",iconName:"fighter-jet",icon:[640,512,[],"f0fb","M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"]},faFile:{prefix:"fas",iconName:"file",icon:[384,512,[],"f15b","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},faFileAlt:{prefix:"fas",iconName:"file-alt",icon:[384,512,[],"f15c","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},faFileArchive:{prefix:"fas",iconName:"file-archive",icon:[384,512,[],"f1c6","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z"]},faFileAudio:{prefix:"fas",iconName:"file-audio",icon:[384,512,[],"f1c7","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},faFileCode:{prefix:"fas",iconName:"file-code",icon:[384,512,[],"f1c9","M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"]},faFileContract:{prefix:"fas",iconName:"file-contract",icon:[384,512,[],"f56c","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},faFileCsv:{prefix:"fas",iconName:"file-csv",icon:[384,512,[],"f6dd","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},faFileDownload:{prefix:"fas",iconName:"file-download",icon:[384,512,[],"f56d","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},faFileExcel:{prefix:"fas",iconName:"file-excel",icon:[384,512,[],"f1c3","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},faFileExport:{prefix:"fas",iconName:"file-export",icon:[576,512,[],"f56e","M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z"]},faFileImage:{prefix:"fas",iconName:"file-image",icon:[384,512,[],"f1c5","M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"]},faFileImport:{prefix:"fas",iconName:"file-import",icon:[512,512,[],"f56f","M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z"]},faFileInvoice:{prefix:"fas",iconName:"file-invoice",icon:[384,512,[],"f570","M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"]},faFileInvoiceDollar:{prefix:"fas",iconName:"file-invoice-dollar",icon:[384,512,[],"f571","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"]},faFileMedical:{prefix:"fas",iconName:"file-medical",icon:[384,512,[],"f477","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"]},faFileMedicalAlt:{prefix:"fas",iconName:"file-medical-alt",icon:[448,512,[],"f478","M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},faFilePdf:{prefix:"fas",iconName:"file-pdf",icon:[384,512,[],"f1c1","M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"]},faFilePowerpoint:{prefix:"fas",iconName:"file-powerpoint",icon:[384,512,[],"f1c4","M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"]},faFilePrescription:{prefix:"fas",iconName:"file-prescription",icon:[384,512,[],"f572","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},faFileSignature:{prefix:"fas",iconName:"file-signature",icon:[576,512,[],"f573","M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"]},faFileUpload:{prefix:"fas",iconName:"file-upload",icon:[384,512,[],"f574","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},faFileVideo:{prefix:"fas",iconName:"file-video",icon:[384,512,[],"f1c8","M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"]},faFileWord:{prefix:"fas",iconName:"file-word",icon:[384,512,[],"f1c2","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},faFill:{prefix:"fas",iconName:"fill",icon:[512,512,[],"f575","M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"]},faFillDrip:{prefix:"fas",iconName:"fill-drip",icon:[576,512,[],"f576","M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"]},faFilm:{prefix:"fas",iconName:"film",icon:[512,512,[],"f008","M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"]},faFilter:{prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"]},faFingerprint:{prefix:"fas",iconName:"fingerprint",icon:[512,512,[],"f577","M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"]},faFire:{prefix:"fas",iconName:"fire",icon:[384,512,[],"f06d","M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z"]},faFireAlt:{prefix:"fas",iconName:"fire-alt",icon:[448,512,[],"f7e4","M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z"]},faFireExtinguisher:{prefix:"fas",iconName:"fire-extinguisher",icon:[448,512,[],"f134","M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"]},faFirstAid:{prefix:"fas",iconName:"first-aid",icon:[576,512,[],"f479","M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]},faFish:{prefix:"fas",iconName:"fish",icon:[576,512,[],"f578","M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"]},faFistRaised:{prefix:"fas",iconName:"fist-raised",icon:[384,512,[],"f6de","M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"]},faFlag:{prefix:"fas",iconName:"flag",icon:[512,512,[],"f024","M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"]},faFlagCheckered:{prefix:"fas",iconName:"flag-checkered",icon:[512,512,[],"f11e","M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z"]},faFlagUsa:{prefix:"fas",iconName:"flag-usa",icon:[512,512,[],"f74d","M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z"]},faFlask:{prefix:"fas",iconName:"flask",icon:[448,512,[],"f0c3","M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"]},faFlushed:{prefix:"fas",iconName:"flushed",icon:[496,512,[],"f579","M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"]},faFolder:{prefix:"fas",iconName:"folder",icon:[512,512,[],"f07b","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"]},faFolderMinus:{prefix:"fas",iconName:"folder-minus",icon:[512,512,[],"f65d","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"]},faFolderOpen:{prefix:"fas",iconName:"folder-open",icon:[576,512,[],"f07c","M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"]},faFolderPlus:{prefix:"fas",iconName:"folder-plus",icon:[512,512,[],"f65e","M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z"]},faFont:{prefix:"fas",iconName:"font",icon:[448,512,[],"f031","M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z"]},faFontAwesomeLogoFull:{prefix:"fas",iconName:"font-awesome-logo-full",icon:[3992,512,["Font Awesome"],"f4e6","M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"]},faFootballBall:{prefix:"fas",iconName:"football-ball",icon:[496,512,[],"f44e","M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"]},faForward:{prefix:"fas",iconName:"forward",icon:[512,512,[],"f04e","M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"]},faFrog:{prefix:"fas",iconName:"frog",icon:[576,512,[],"f52e","M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"]},faFrown:{prefix:"fas",iconName:"frown",icon:[496,512,[],"f119","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"]},faFrownOpen:{prefix:"fas",iconName:"frown-open",icon:[496,512,[],"f57a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faFunnelDollar:{prefix:"fas",iconName:"funnel-dollar",icon:[640,512,[],"f662","M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"]},faFutbol:{prefix:"fas",iconName:"futbol",icon:[512,512,[],"f1e3","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"]},faGamepad:{prefix:"fas",iconName:"gamepad",icon:[640,512,[],"f11b","M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z"]},faGasPump:{prefix:"fas",iconName:"gas-pump",icon:[512,512,[],"f52f","M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"]},faGavel:{prefix:"fas",iconName:"gavel",icon:[512,512,[],"f0e3","M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"]},faGem:{prefix:"fas",iconName:"gem",icon:[576,512,[],"f3a5","M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"]},faGenderless:{prefix:"fas",iconName:"genderless",icon:[288,512,[],"f22d","M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"]},faGhost:l,faGift:{prefix:"fas",iconName:"gift",icon:[512,512,[],"f06b","M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z"]},faGifts:{prefix:"fas",iconName:"gifts",icon:[640,512,[],"f79c","M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z"]},faGlassCheers:{prefix:"fas",iconName:"glass-cheers",icon:[640,512,[],"f79f","M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z"]},faGlassMartini:{prefix:"fas",iconName:"glass-martini",icon:[512,512,[],"f000","M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"]},faGlassMartiniAlt:{prefix:"fas",iconName:"glass-martini-alt",icon:[512,512,[],"f57b","M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"]},faGlassWhiskey:{prefix:"fas",iconName:"glass-whiskey",icon:[512,512,[],"f7a0","M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z"]},faGlasses:{prefix:"fas",iconName:"glasses",icon:[576,512,[],"f530","M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"]},faGlobe:{prefix:"fas",iconName:"globe",icon:[496,512,[],"f0ac","M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"]},faGlobeAfrica:{prefix:"fas",iconName:"globe-africa",icon:[496,512,[],"f57c","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"]},faGlobeAmericas:{prefix:"fas",iconName:"globe-americas",icon:[496,512,[],"f57d","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"]},faGlobeAsia:{prefix:"fas",iconName:"globe-asia",icon:[496,512,[],"f57e","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"]},faGlobeEurope:{prefix:"fas",iconName:"globe-europe",icon:[496,512,[],"f7a2","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z"]},faGolfBall:{prefix:"fas",iconName:"golf-ball",icon:[416,512,[],"f450","M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"]},faGopuram:{prefix:"fas",iconName:"gopuram",icon:[512,512,[],"f664","M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z"]},faGraduationCap:{prefix:"fas",iconName:"graduation-cap",icon:[640,512,[],"f19d","M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"]},faGreaterThan:{prefix:"fas",iconName:"greater-than",icon:[384,512,[],"f531","M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"]},faGreaterThanEqual:{prefix:"fas",iconName:"greater-than-equal",icon:[448,512,[],"f532","M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"]},faGrimace:{prefix:"fas",iconName:"grimace",icon:[496,512,[],"f57f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"]},faGrin:{prefix:"fas",iconName:"grin",icon:[496,512,[],"f580","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},faGrinAlt:{prefix:"fas",iconName:"grin-alt",icon:[496,512,[],"f581","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},faGrinBeam:{prefix:"fas",iconName:"grin-beam",icon:[496,512,[],"f582","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},faGrinBeamSweat:{prefix:"fas",iconName:"grin-beam-sweat",icon:[504,512,[],"f583","M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},faGrinHearts:{prefix:"fas",iconName:"grin-hearts",icon:[496,512,[],"f584","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"]},faGrinSquint:{prefix:"fas",iconName:"grin-squint",icon:[496,512,[],"f585","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},faGrinSquintTears:{prefix:"fas",iconName:"grin-squint-tears",icon:[512,512,[],"f586","M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"]},faGrinStars:{prefix:"fas",iconName:"grin-stars",icon:[496,512,[],"f587","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"]},faGrinTears:{prefix:"fas",iconName:"grin-tears",icon:[640,512,[],"f588","M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},faGrinTongue:{prefix:"fas",iconName:"grin-tongue",icon:[496,512,[],"f589","M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"]},faGrinTongueSquint:{prefix:"fas",iconName:"grin-tongue-squint",icon:[496,512,[],"f58a","M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"]},faGrinTongueWink:{prefix:"fas",iconName:"grin-tongue-wink",icon:[496,512,[],"f58b","M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"]},faGrinWink:{prefix:"fas",iconName:"grin-wink",icon:[496,512,[],"f58c","M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"]},faGripHorizontal:{prefix:"fas",iconName:"grip-horizontal",icon:[448,512,[],"f58d","M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"]},faGripLines:{prefix:"fas",iconName:"grip-lines",icon:[512,512,[],"f7a4","M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]},faGripLinesVertical:{prefix:"fas",iconName:"grip-lines-vertical",icon:[256,512,[],"f7a5","M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z"]},faGripVertical:{prefix:"fas",iconName:"grip-vertical",icon:[320,512,[],"f58e","M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"]},faGuitar:{prefix:"fas",iconName:"guitar",icon:[512,512,[],"f7a6","M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z"]},faHSquare:{prefix:"fas",iconName:"h-square",icon:[448,512,[],"f0fd","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"]},faHamburger:{prefix:"fas",iconName:"hamburger",icon:[512,512,[],"f805","M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z"]},faHammer:{prefix:"fas",iconName:"hammer",icon:[576,512,[],"f6e3","M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"]},faHamsa:{prefix:"fas",iconName:"hamsa",icon:[512,512,[],"f665","M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]},faHandHolding:{prefix:"fas",iconName:"hand-holding",icon:[576,512,[],"f4bd","M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"]},faHandHoldingHeart:{prefix:"fas",iconName:"hand-holding-heart",icon:[576,512,[],"f4be","M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"]},faHandHoldingMedical:{prefix:"fas",iconName:"hand-holding-medical",icon:[576,512,[],"e05c","M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z"]},faHandHoldingUsd:{prefix:"fas",iconName:"hand-holding-usd",icon:[576,512,[],"f4c0","M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z"]},faHandHoldingWater:{prefix:"fas",iconName:"hand-holding-water",icon:[576,512,[],"f4c1","M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"]},faHandLizard:{prefix:"fas",iconName:"hand-lizard",icon:[576,512,[],"f258","M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"]},faHandMiddleFinger:{prefix:"fas",iconName:"hand-middle-finger",icon:[512,512,[],"f806","M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z"]},faHandPaper:{prefix:"fas",iconName:"hand-paper",icon:[448,512,[],"f256","M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"]},faHandPeace:{prefix:"fas",iconName:"hand-peace",icon:[448,512,[],"f25b","M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"]},faHandPointDown:{prefix:"fas",iconName:"hand-point-down",icon:[384,512,[],"f0a7","M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"]},faHandPointLeft:{prefix:"fas",iconName:"hand-point-left",icon:[512,512,[],"f0a5","M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"]},faHandPointRight:{prefix:"fas",iconName:"hand-point-right",icon:[512,512,[],"f0a4","M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"]},faHandPointUp:{prefix:"fas",iconName:"hand-point-up",icon:[384,512,[],"f0a6","M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"]},faHandPointer:{prefix:"fas",iconName:"hand-pointer",icon:[448,512,[],"f25a","M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"]},faHandRock:{prefix:"fas",iconName:"hand-rock",icon:[512,512,[],"f255","M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z"]},faHandScissors:{prefix:"fas",iconName:"hand-scissors",icon:[512,512,[],"f257","M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"]},faHandSparkles:{prefix:"fas",iconName:"hand-sparkles",icon:[640,512,[],"e05d","M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z"]},faHandSpock:{prefix:"fas",iconName:"hand-spock",icon:[512,512,[],"f259","M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z"]},faHands:{prefix:"fas",iconName:"hands",icon:[640,512,[],"f4c2","M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"]},faHandsHelping:h,faHandsWash:{prefix:"fas",iconName:"hands-wash",icon:[576,512,[],"e05e","M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z"]},faHandshake:{prefix:"fas",iconName:"handshake",icon:[640,512,[],"f2b5","M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"]},faHandshakeAltSlash:{prefix:"fas",iconName:"handshake-alt-slash",icon:[640,512,[],"e05f","M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z"]},faHandshakeSlash:{prefix:"fas",iconName:"handshake-slash",icon:[640,512,[],"e060","M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z"]},faHanukiah:{prefix:"fas",iconName:"hanukiah",icon:[640,512,[],"f6e6","M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"]},faHardHat:{prefix:"fas",iconName:"hard-hat",icon:[512,512,[],"f807","M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faHashtag:{prefix:"fas",iconName:"hashtag",icon:[448,512,[],"f292","M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"]},faHatCowboy:{prefix:"fas",iconName:"hat-cowboy",icon:[640,512,[],"f8c0","M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z"]},faHatCowboySide:{prefix:"fas",iconName:"hat-cowboy-side",icon:[640,512,[],"f8c1","M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z"]},faHatWizard:{prefix:"fas",iconName:"hat-wizard",icon:[512,512,[],"f6e8","M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"]},faHdd:{prefix:"fas",iconName:"hdd",icon:[576,512,[],"f0a0","M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"]},faHeadSideCough:{prefix:"fas",iconName:"head-side-cough",icon:[640,512,[],"e061","M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z"]},faHeadSideCoughSlash:{prefix:"fas",iconName:"head-side-cough-slash",icon:[640,512,[],"e062","M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z"]},faHeadSideMask:{prefix:"fas",iconName:"head-side-mask",icon:[512,512,[],"e063","M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z"]},faHeadSideVirus:{prefix:"fas",iconName:"head-side-virus",icon:[512,512,[],"e064","M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z"]},faHeading:{prefix:"fas",iconName:"heading",icon:[512,512,[],"f1dc","M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z"]},faHeadphones:{prefix:"fas",iconName:"headphones",icon:[512,512,[],"f025","M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"]},faHeadphonesAlt:{prefix:"fas",iconName:"headphones-alt",icon:[512,512,[],"f58f","M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"]},faHeadset:{prefix:"fas",iconName:"headset",icon:[512,512,[],"f590","M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"]},faHeart:u,faHeartBroken:{prefix:"fas",iconName:"heart-broken",icon:[512,512,[],"f7a9","M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z"]},faHeartbeat:{prefix:"fas",iconName:"heartbeat",icon:[512,512,[],"f21e","M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"]},faHelicopter:{prefix:"fas",iconName:"helicopter",icon:[640,512,[],"f533","M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"]},faHighlighter:{prefix:"fas",iconName:"highlighter",icon:[544,512,[],"f591","M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"]},faHiking:{prefix:"fas",iconName:"hiking",icon:[384,512,[],"f6ec","M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"]},faHippo:{prefix:"fas",iconName:"hippo",icon:[640,512,[],"f6ed","M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"]},faHistory:{prefix:"fas",iconName:"history",icon:[512,512,[],"f1da","M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"]},faHockeyPuck:{prefix:"fas",iconName:"hockey-puck",icon:[512,512,[],"f453","M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"]},faHollyBerry:{prefix:"fas",iconName:"holly-berry",icon:[448,512,[],"f7aa","M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z"]},faHome:{prefix:"fas",iconName:"home",icon:[576,512,[],"f015","M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"]},faHorse:{prefix:"fas",iconName:"horse",icon:[576,512,[],"f6f0","M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"]},faHorseHead:{prefix:"fas",iconName:"horse-head",icon:[512,512,[],"f7ab","M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z"]},faHospital:{prefix:"fas",iconName:"hospital",icon:[448,512,[],"f0f8","M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"]},faHospitalAlt:{prefix:"fas",iconName:"hospital-alt",icon:[576,512,[],"f47d","M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"]},faHospitalSymbol:{prefix:"fas",iconName:"hospital-symbol",icon:[512,512,[],"f47e","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"]},faHospitalUser:{prefix:"fas",iconName:"hospital-user",icon:[640,512,[],"f80d","M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z"]},faHotTub:{prefix:"fas",iconName:"hot-tub",icon:[512,512,[],"f593","M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"]},faHotdog:{prefix:"fas",iconName:"hotdog",icon:[512,512,[],"f80f","M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z"]},faHotel:{prefix:"fas",iconName:"hotel",icon:[576,512,[],"f594","M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"]},faHourglass:{prefix:"fas",iconName:"hourglass",icon:[384,512,[],"f254","M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"]},faHourglassEnd:{prefix:"fas",iconName:"hourglass-end",icon:[384,512,[],"f253","M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"]},faHourglassHalf:{prefix:"fas",iconName:"hourglass-half",icon:[384,512,[],"f252","M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"]},faHourglassStart:{prefix:"fas",iconName:"hourglass-start",icon:[384,512,[],"f251","M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"]},faHouseDamage:{prefix:"fas",iconName:"house-damage",icon:[576,512,[],"f6f1","M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"]},faHouseUser:{prefix:"fas",iconName:"house-user",icon:[576,512,[],"e065","M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z"]},faHryvnia:{prefix:"fas",iconName:"hryvnia",icon:[384,512,[],"f6f2","M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"]},faICursor:{prefix:"fas",iconName:"i-cursor",icon:[256,512,[],"f246","M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"]},faIceCream:{prefix:"fas",iconName:"ice-cream",icon:[448,512,[],"f810","M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z"]},faIcicles:{prefix:"fas",iconName:"icicles",icon:[512,512,[],"f7ad","M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z"]},faIcons:{prefix:"fas",iconName:"icons",icon:[512,512,[],"f86d","M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z"]},faIdBadge:{prefix:"fas",iconName:"id-badge",icon:[384,512,[],"f2c1","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]},faIdCard:{prefix:"fas",iconName:"id-card",icon:[576,512,[],"f2c2","M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"]},faIdCardAlt:{prefix:"fas",iconName:"id-card-alt",icon:[576,512,[],"f47f","M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"]},faIgloo:{prefix:"fas",iconName:"igloo",icon:[576,512,[],"f7ae","M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z"]},faImage:{prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"]},faImages:{prefix:"fas",iconName:"images",icon:[576,512,[],"f302","M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"]},faInbox:{prefix:"fas",iconName:"inbox",icon:[576,512,[],"f01c","M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"]},faIndent:{prefix:"fas",iconName:"indent",icon:[448,512,[],"f03c","M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faIndustry:{prefix:"fas",iconName:"industry",icon:[512,512,[],"f275","M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"]},faInfinity:{prefix:"fas",iconName:"infinity",icon:[640,512,[],"f534","M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"]},faInfo:{prefix:"fas",iconName:"info",icon:[192,512,[],"f129","M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"]},faInfoCircle:{prefix:"fas",iconName:"info-circle",icon:[512,512,[],"f05a","M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"]},faItalic:{prefix:"fas",iconName:"italic",icon:[320,512,[],"f033","M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z"]},faJedi:{prefix:"fas",iconName:"jedi",icon:[576,512,[],"f669","M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z"]},faJoint:{prefix:"fas",iconName:"joint",icon:[640,512,[],"f595","M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"]},faJournalWhills:{prefix:"fas",iconName:"journal-whills",icon:[448,512,[],"f66a","M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z"]},faKaaba:{prefix:"fas",iconName:"kaaba",icon:[576,512,[],"f66b","M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"]},faKey:{prefix:"fas",iconName:"key",icon:[512,512,[],"f084","M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"]},faKeyboard:{prefix:"fas",iconName:"keyboard",icon:[576,512,[],"f11c","M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"]},faKhanda:{prefix:"fas",iconName:"khanda",icon:[512,512,[],"f66d","M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"]},faKiss:{prefix:"fas",iconName:"kiss",icon:[496,512,[],"f596","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faKissBeam:{prefix:"fas",iconName:"kiss-beam",icon:[496,512,[],"f597","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"]},faKissWinkHeart:{prefix:"fas",iconName:"kiss-wink-heart",icon:[504,512,[],"f598","M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"]},faKiwiBird:{prefix:"fas",iconName:"kiwi-bird",icon:[576,512,[],"f535","M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"]},faLandmark:{prefix:"fas",iconName:"landmark",icon:[512,512,[],"f66f","M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},faLanguage:{prefix:"fas",iconName:"language",icon:[640,512,[],"f1ab","M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z"]},faLaptop:{prefix:"fas",iconName:"laptop",icon:[640,512,[],"f109","M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"]},faLaptopCode:{prefix:"fas",iconName:"laptop-code",icon:[640,512,[],"f5fc","M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"]},faLaptopHouse:{prefix:"fas",iconName:"laptop-house",icon:[640,512,[],"e066","M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z"]},faLaptopMedical:{prefix:"fas",iconName:"laptop-medical",icon:[640,512,[],"f812","M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z"]},faLaugh:{prefix:"fas",iconName:"laugh",icon:[496,512,[],"f599","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"]},faLaughBeam:{prefix:"fas",iconName:"laugh-beam",icon:[496,512,[],"f59a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"]},faLaughSquint:{prefix:"fas",iconName:"laugh-squint",icon:[496,512,[],"f59b","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"]},faLaughWink:{prefix:"fas",iconName:"laugh-wink",icon:[496,512,[],"f59c","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"]},faLayerGroup:{prefix:"fas",iconName:"layer-group",icon:[512,512,[],"f5fd","M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"]},faLeaf:{prefix:"fas",iconName:"leaf",icon:[576,512,[],"f06c","M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"]},faLemon:{prefix:"fas",iconName:"lemon",icon:[512,512,[],"f094","M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"]},faLessThan:{prefix:"fas",iconName:"less-than",icon:[384,512,[],"f536","M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"]},faLessThanEqual:{prefix:"fas",iconName:"less-than-equal",icon:[448,512,[],"f537","M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"]},faLevelDownAlt:{prefix:"fas",iconName:"level-down-alt",icon:[320,512,[],"f3be","M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"]},faLevelUpAlt:{prefix:"fas",iconName:"level-up-alt",icon:[320,512,[],"f3bf","M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"]},faLifeRing:{prefix:"fas",iconName:"life-ring",icon:[512,512,[],"f1cd","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"]},faLightbulb:{prefix:"fas",iconName:"lightbulb",icon:[352,512,[],"f0eb","M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"]},faLink:d,faLiraSign:{prefix:"fas",iconName:"lira-sign",icon:[384,512,[],"f195","M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"]},faList:{prefix:"fas",iconName:"list",icon:[512,512,[],"f03a","M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faListAlt:{prefix:"fas",iconName:"list-alt",icon:[512,512,[],"f022","M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"]},faListOl:{prefix:"fas",iconName:"list-ol",icon:[512,512,[],"f0cb","M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"]},faListUl:{prefix:"fas",iconName:"list-ul",icon:[512,512,[],"f0ca","M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faLocationArrow:{prefix:"fas",iconName:"location-arrow",icon:[512,512,[],"f124","M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"]},faLock:{prefix:"fas",iconName:"lock",icon:[448,512,[],"f023","M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"]},faLockOpen:{prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"]},faLongArrowAltDown:{prefix:"fas",iconName:"long-arrow-alt-down",icon:[256,512,[],"f309","M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"]},faLongArrowAltLeft:{prefix:"fas",iconName:"long-arrow-alt-left",icon:[448,512,[],"f30a","M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"]},faLongArrowAltRight:{prefix:"fas",iconName:"long-arrow-alt-right",icon:[448,512,[],"f30b","M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"]},faLongArrowAltUp:{prefix:"fas",iconName:"long-arrow-alt-up",icon:[256,512,[],"f30c","M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"]},faLowVision:{prefix:"fas",iconName:"low-vision",icon:[576,512,[],"f2a8","M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"]},faLuggageCart:{prefix:"fas",iconName:"luggage-cart",icon:[640,512,[],"f59d","M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"]},faLungs:{prefix:"fas",iconName:"lungs",icon:[640,512,[],"f604","M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z"]},faLungsVirus:{prefix:"fas",iconName:"lungs-virus",icon:[640,512,[],"e067","M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z"]},faMagic:f,faMagnet:{prefix:"fas",iconName:"magnet",icon:[512,512,[],"f076","M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z"]},faMailBulk:{prefix:"fas",iconName:"mail-bulk",icon:[576,512,[],"f674","M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"]},faMale:{prefix:"fas",iconName:"male",icon:[192,512,[],"f183","M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"]},faMap:{prefix:"fas",iconName:"map",icon:[576,512,[],"f279","M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"]},faMapMarked:{prefix:"fas",iconName:"map-marked",icon:[576,512,[],"f59f","M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"]},faMapMarkedAlt:{prefix:"fas",iconName:"map-marked-alt",icon:[576,512,[],"f5a0","M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"]},faMapMarker:{prefix:"fas",iconName:"map-marker",icon:[384,512,[],"f041","M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"]},faMapMarkerAlt:{prefix:"fas",iconName:"map-marker-alt",icon:[384,512,[],"f3c5","M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"]},faMapPin:{prefix:"fas",iconName:"map-pin",icon:[288,512,[],"f276","M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"]},faMapSigns:{prefix:"fas",iconName:"map-signs",icon:[512,512,[],"f277","M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"]},faMarker:{prefix:"fas",iconName:"marker",icon:[512,512,[],"f5a1","M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"]},faMars:{prefix:"fas",iconName:"mars",icon:[384,512,[],"f222","M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faMarsDouble:{prefix:"fas",iconName:"mars-double",icon:[512,512,[],"f227","M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"]},faMarsStroke:{prefix:"fas",iconName:"mars-stroke",icon:[384,512,[],"f229","M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faMarsStrokeH:{prefix:"fas",iconName:"mars-stroke-h",icon:[480,512,[],"f22b","M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"]},faMarsStrokeV:{prefix:"fas",iconName:"mars-stroke-v",icon:[288,512,[],"f22a","M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"]},faMask:{prefix:"fas",iconName:"mask",icon:[640,512,[],"f6fa","M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"]},faMedal:{prefix:"fas",iconName:"medal",icon:[512,512,[],"f5a2","M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"]},faMedkit:{prefix:"fas",iconName:"medkit",icon:[512,512,[],"f0fa","M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"]},faMeh:{prefix:"fas",iconName:"meh",icon:[496,512,[],"f11a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faMehBlank:{prefix:"fas",iconName:"meh-blank",icon:[496,512,[],"f5a4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faMehRollingEyes:{prefix:"fas",iconName:"meh-rolling-eyes",icon:[496,512,[],"f5a5","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"]},faMemory:{prefix:"fas",iconName:"memory",icon:[640,512,[],"f538","M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"]},faMenorah:{prefix:"fas",iconName:"menorah",icon:[640,512,[],"f676","M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"]},faMercury:{prefix:"fas",iconName:"mercury",icon:[288,512,[],"f223","M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"]},faMeteor:{prefix:"fas",iconName:"meteor",icon:[512,512,[],"f753","M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z"]},faMicrochip:{prefix:"fas",iconName:"microchip",icon:[512,512,[],"f2db","M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"]},faMicrophone:{prefix:"fas",iconName:"microphone",icon:[352,512,[],"f130","M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"]},faMicrophoneAlt:{prefix:"fas",iconName:"microphone-alt",icon:[352,512,[],"f3c9","M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"]},faMicrophoneAltSlash:{prefix:"fas",iconName:"microphone-alt-slash",icon:[640,512,[],"f539","M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"]},faMicrophoneSlash:{prefix:"fas",iconName:"microphone-slash",icon:[640,512,[],"f131","M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"]},faMicroscope:{prefix:"fas",iconName:"microscope",icon:[512,512,[],"f610","M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"]},faMinus:{prefix:"fas",iconName:"minus",icon:[448,512,[],"f068","M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},faMinusCircle:{prefix:"fas",iconName:"minus-circle",icon:[512,512,[],"f056","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"]},faMinusSquare:{prefix:"fas",iconName:"minus-square",icon:[448,512,[],"f146","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"]},faMitten:{prefix:"fas",iconName:"mitten",icon:[448,512,[],"f7b5","M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z"]},faMobile:{prefix:"fas",iconName:"mobile",icon:[320,512,[],"f10b","M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faMobileAlt:{prefix:"fas",iconName:"mobile-alt",icon:[320,512,[],"f3cd","M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"]},faMoneyBill:{prefix:"fas",iconName:"money-bill",icon:[640,512,[],"f0d6","M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"]},faMoneyBillAlt:{prefix:"fas",iconName:"money-bill-alt",icon:[640,512,[],"f3d1","M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"]},faMoneyBillWave:{prefix:"fas",iconName:"money-bill-wave",icon:[640,512,[],"f53a","M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"]},faMoneyBillWaveAlt:{prefix:"fas",iconName:"money-bill-wave-alt",icon:[640,512,[],"f53b","M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"]},faMoneyCheck:{prefix:"fas",iconName:"money-check",icon:[640,512,[],"f53c","M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"]},faMoneyCheckAlt:{prefix:"fas",iconName:"money-check-alt",icon:[640,512,[],"f53d","M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"]},faMonument:{prefix:"fas",iconName:"monument",icon:[384,512,[],"f5a6","M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"]},faMoon:{prefix:"fas",iconName:"moon",icon:[512,512,[],"f186","M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"]},faMortarPestle:{prefix:"fas",iconName:"mortar-pestle",icon:[512,512,[],"f5a7","M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},faMosque:{prefix:"fas",iconName:"mosque",icon:[640,512,[],"f678","M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"]},faMotorcycle:{prefix:"fas",iconName:"motorcycle",icon:[640,512,[],"f21c","M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z"]},faMountain:p,faMouse:{prefix:"fas",iconName:"mouse",icon:[384,512,[],"f8cc","M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z"]},faMousePointer:{prefix:"fas",iconName:"mouse-pointer",icon:[320,512,[],"f245","M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"]},faMugHot:{prefix:"fas",iconName:"mug-hot",icon:[512,512,[],"f7b6","M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z"]},faMusic:{prefix:"fas",iconName:"music",icon:[512,512,[],"f001","M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z"]},faNetworkWired:{prefix:"fas",iconName:"network-wired",icon:[640,512,[],"f6ff","M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"]},faNeuter:{prefix:"fas",iconName:"neuter",icon:[288,512,[],"f22c","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faNewspaper:{prefix:"fas",iconName:"newspaper",icon:[576,512,[],"f1ea","M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"]},faNotEqual:{prefix:"fas",iconName:"not-equal",icon:[448,512,[],"f53e","M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"]},faNotesMedical:{prefix:"fas",iconName:"notes-medical",icon:[384,512,[],"f481","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"]},faObjectGroup:{prefix:"fas",iconName:"object-group",icon:[512,512,[],"f247","M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"]},faObjectUngroup:{prefix:"fas",iconName:"object-ungroup",icon:[576,512,[],"f248","M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"]},faOilCan:{prefix:"fas",iconName:"oil-can",icon:[640,512,[],"f613","M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"]},faOm:{prefix:"fas",iconName:"om",icon:[512,512,[],"f679","M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"]},faOtter:{prefix:"fas",iconName:"otter",icon:[640,512,[],"f700","M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"]},faOutdent:{prefix:"fas",iconName:"outdent",icon:[448,512,[],"f03b","M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faPager:{prefix:"fas",iconName:"pager",icon:[512,512,[],"f815","M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z"]},faPaintBrush:{prefix:"fas",iconName:"paint-brush",icon:[512,512,[],"f1fc","M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"]},faPaintRoller:{prefix:"fas",iconName:"paint-roller",icon:[512,512,[],"f5aa","M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"]},faPalette:{prefix:"fas",iconName:"palette",icon:[512,512,[],"f53f","M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faPallet:{prefix:"fas",iconName:"pallet",icon:[640,512,[],"f482","M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"]},faPaperPlane:{prefix:"fas",iconName:"paper-plane",icon:[512,512,[],"f1d8","M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"]},faPaperclip:{prefix:"fas",iconName:"paperclip",icon:[448,512,[],"f0c6","M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"]},faParachuteBox:{prefix:"fas",iconName:"parachute-box",icon:[512,512,[],"f4cd","M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"]},faParagraph:{prefix:"fas",iconName:"paragraph",icon:[448,512,[],"f1dd","M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z"]},faParking:{prefix:"fas",iconName:"parking",icon:[448,512,[],"f540","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"]},faPassport:{prefix:"fas",iconName:"passport",icon:[448,512,[],"f5ab","M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"]},faPastafarianism:{prefix:"fas",iconName:"pastafarianism",icon:[640,512,[],"f67b","M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"]},faPaste:{prefix:"fas",iconName:"paste",icon:[448,512,[],"f0ea","M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"]},faPause:{prefix:"fas",iconName:"pause",icon:[448,512,[],"f04c","M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"]},faPauseCircle:{prefix:"fas",iconName:"pause-circle",icon:[512,512,[],"f28b","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"]},faPaw:{prefix:"fas",iconName:"paw",icon:[512,512,[],"f1b0","M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"]},faPeace:{prefix:"fas",iconName:"peace",icon:[496,512,[],"f67c","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"]},faPen:{prefix:"fas",iconName:"pen",icon:[512,512,[],"f304","M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"]},faPenAlt:{prefix:"fas",iconName:"pen-alt",icon:[512,512,[],"f305","M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"]},faPenFancy:{prefix:"fas",iconName:"pen-fancy",icon:[512,512,[],"f5ac","M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"]},faPenNib:{prefix:"fas",iconName:"pen-nib",icon:[512,512,[],"f5ad","M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"]},faPenSquare:{prefix:"fas",iconName:"pen-square",icon:[448,512,[],"f14b","M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"]},faPencilAlt:{prefix:"fas",iconName:"pencil-alt",icon:[512,512,[],"f303","M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"]},faPencilRuler:{prefix:"fas",iconName:"pencil-ruler",icon:[512,512,[],"f5ae","M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"]},faPeopleArrows:{prefix:"fas",iconName:"people-arrows",icon:[576,512,[],"e068","M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z"]},faPeopleCarry:{prefix:"fas",iconName:"people-carry",icon:[640,512,[],"f4ce","M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"]},faPepperHot:{prefix:"fas",iconName:"pepper-hot",icon:[512,512,[],"f816","M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z"]},faPercent:{prefix:"fas",iconName:"percent",icon:[448,512,[],"f295","M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"]},faPercentage:{prefix:"fas",iconName:"percentage",icon:[384,512,[],"f541","M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"]},faPersonBooth:{prefix:"fas",iconName:"person-booth",icon:[576,512,[],"f756","M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z"]},faPhone:{prefix:"fas",iconName:"phone",icon:[512,512,[],"f095","M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"]},faPhoneAlt:{prefix:"fas",iconName:"phone-alt",icon:[512,512,[],"f879","M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z"]},faPhoneSlash:{prefix:"fas",iconName:"phone-slash",icon:[640,512,[],"f3dd","M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"]},faPhoneSquare:{prefix:"fas",iconName:"phone-square",icon:[448,512,[],"f098","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"]},faPhoneSquareAlt:{prefix:"fas",iconName:"phone-square-alt",icon:[448,512,[],"f87b","M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z"]},faPhoneVolume:{prefix:"fas",iconName:"phone-volume",icon:[384,512,[],"f2a0","M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"]},faPhotoVideo:{prefix:"fas",iconName:"photo-video",icon:[640,512,[],"f87c","M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z"]},faPiggyBank:{prefix:"fas",iconName:"piggy-bank",icon:[576,512,[],"f4d3","M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"]},faPills:{prefix:"fas",iconName:"pills",icon:[576,512,[],"f484","M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"]},faPizzaSlice:{prefix:"fas",iconName:"pizza-slice",icon:[512,512,[],"f818","M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"]},faPlaceOfWorship:{prefix:"fas",iconName:"place-of-worship",icon:[640,512,[],"f67f","M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"]},faPlane:{prefix:"fas",iconName:"plane",icon:[576,512,[],"f072","M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"]},faPlaneArrival:{prefix:"fas",iconName:"plane-arrival",icon:[640,512,[],"f5af","M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"]},faPlaneDeparture:{prefix:"fas",iconName:"plane-departure",icon:[640,512,[],"f5b0","M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"]},faPlaneSlash:{prefix:"fas",iconName:"plane-slash",icon:[640,512,[],"e069","M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z"]},faPlay:{prefix:"fas",iconName:"play",icon:[448,512,[],"f04b","M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"]},faPlayCircle:{prefix:"fas",iconName:"play-circle",icon:[512,512,[],"f144","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"]},faPlug:{prefix:"fas",iconName:"plug",icon:[384,512,[],"f1e6","M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z"]},faPlus:{prefix:"fas",iconName:"plus",icon:[448,512,[],"f067","M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},faPlusCircle:{prefix:"fas",iconName:"plus-circle",icon:[512,512,[],"f055","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"]},faPlusSquare:{prefix:"fas",iconName:"plus-square",icon:[448,512,[],"f0fe","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"]},faPodcast:{prefix:"fas",iconName:"podcast",icon:[448,512,[],"f2ce","M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"]},faPoll:{prefix:"fas",iconName:"poll",icon:[448,512,[],"f681","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"]},faPollH:{prefix:"fas",iconName:"poll-h",icon:[448,512,[],"f682","M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"]},faPoo:{prefix:"fas",iconName:"poo",icon:[512,512,[],"f2fe","M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faPooStorm:{prefix:"fas",iconName:"poo-storm",icon:[448,512,[],"f75a","M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z"]},faPoop:{prefix:"fas",iconName:"poop",icon:[512,512,[],"f619","M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"]},faPortrait:{prefix:"fas",iconName:"portrait",icon:[384,512,[],"f3e0","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]},faPoundSign:{prefix:"fas",iconName:"pound-sign",icon:[320,512,[],"f154","M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"]},faPowerOff:{prefix:"fas",iconName:"power-off",icon:[512,512,[],"f011","M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"]},faPray:{prefix:"fas",iconName:"pray",icon:[384,512,[],"f683","M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"]},faPrayingHands:{prefix:"fas",iconName:"praying-hands",icon:[640,512,[],"f684","M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"]},faPrescription:{prefix:"fas",iconName:"prescription",icon:[384,512,[],"f5b1","M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"]},faPrescriptionBottle:{prefix:"fas",iconName:"prescription-bottle",icon:[384,512,[],"f485","M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"]},faPrescriptionBottleAlt:{prefix:"fas",iconName:"prescription-bottle-alt",icon:[384,512,[],"f486","M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"]},faPrint:{prefix:"fas",iconName:"print",icon:[512,512,[],"f02f","M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},faProcedures:{prefix:"fas",iconName:"procedures",icon:[640,512,[],"f487","M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"]},faProjectDiagram:{prefix:"fas",iconName:"project-diagram",icon:[640,512,[],"f542","M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"]},faPumpMedical:{prefix:"fas",iconName:"pump-medical",icon:[384,512,[],"e06a","M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z"]},faPumpSoap:{prefix:"fas",iconName:"pump-soap",icon:[384,512,[],"e06b","M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z"]},faPuzzlePiece:{prefix:"fas",iconName:"puzzle-piece",icon:[576,512,[],"f12e","M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"]},faQrcode:{prefix:"fas",iconName:"qrcode",icon:[448,512,[],"f029","M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"]},faQuestion:{prefix:"fas",iconName:"question",icon:[384,512,[],"f128","M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"]},faQuestionCircle:{prefix:"fas",iconName:"question-circle",icon:[512,512,[],"f059","M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"]},faQuidditch:{prefix:"fas",iconName:"quidditch",icon:[640,512,[],"f458","M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"]},faQuoteLeft:{prefix:"fas",iconName:"quote-left",icon:[512,512,[],"f10d","M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"]},faQuoteRight:{prefix:"fas",iconName:"quote-right",icon:[512,512,[],"f10e","M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"]},faQuran:{prefix:"fas",iconName:"quran",icon:[448,512,[],"f687","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"]},faRadiation:{prefix:"fas",iconName:"radiation",icon:[496,512,[],"f7b9","M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z"]},faRadiationAlt:{prefix:"fas",iconName:"radiation-alt",icon:[496,512,[],"f7ba","M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"]},faRainbow:{prefix:"fas",iconName:"rainbow",icon:[576,512,[],"f75b","M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z"]},faRandom:{prefix:"fas",iconName:"random",icon:[512,512,[],"f074","M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"]},faReceipt:{prefix:"fas",iconName:"receipt",icon:[384,512,[],"f543","M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"]},faRecordVinyl:{prefix:"fas",iconName:"record-vinyl",icon:[512,512,[],"f8d9","M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z"]},faRecycle:{prefix:"fas",iconName:"recycle",icon:[512,512,[],"f1b8","M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"]},faRedo:{prefix:"fas",iconName:"redo",icon:[512,512,[],"f01e","M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z"]},faRedoAlt:{prefix:"fas",iconName:"redo-alt",icon:[512,512,[],"f2f9","M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"]},faRegistered:{prefix:"fas",iconName:"registered",icon:[512,512,[],"f25d","M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"]},faRemoveFormat:{prefix:"fas",iconName:"remove-format",icon:[640,512,[],"f87d","M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z"]},faReply:{prefix:"fas",iconName:"reply",icon:[512,512,[],"f3e5","M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"]},faReplyAll:{prefix:"fas",iconName:"reply-all",icon:[576,512,[],"f122","M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"]},faRepublican:{prefix:"fas",iconName:"republican",icon:[640,512,[],"f75e","M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z"]},faRestroom:{prefix:"fas",iconName:"restroom",icon:[640,512,[],"f7bd","M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z"]},faRetweet:{prefix:"fas",iconName:"retweet",icon:[640,512,[],"f079","M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"]},faRibbon:{prefix:"fas",iconName:"ribbon",icon:[448,512,[],"f4d6","M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"]},faRing:{prefix:"fas",iconName:"ring",icon:[512,512,[],"f70b","M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"]},faRoad:{prefix:"fas",iconName:"road",icon:[576,512,[],"f018","M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"]},faRobot:{prefix:"fas",iconName:"robot",icon:[640,512,[],"f544","M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z"]},faRocket:{prefix:"fas",iconName:"rocket",icon:[512,512,[],"f135","M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z"]},faRoute:{prefix:"fas",iconName:"route",icon:[512,512,[],"f4d7","M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faRss:{prefix:"fas",iconName:"rss",icon:[448,512,[],"f09e","M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"]},faRssSquare:{prefix:"fas",iconName:"rss-square",icon:[448,512,[],"f143","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"]},faRubleSign:{prefix:"fas",iconName:"ruble-sign",icon:[384,512,[],"f158","M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"]},faRuler:{prefix:"fas",iconName:"ruler",icon:[640,512,[],"f545","M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"]},faRulerCombined:{prefix:"fas",iconName:"ruler-combined",icon:[512,512,[],"f546","M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"]},faRulerHorizontal:{prefix:"fas",iconName:"ruler-horizontal",icon:[576,512,[],"f547","M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"]},faRulerVertical:{prefix:"fas",iconName:"ruler-vertical",icon:[256,512,[],"f548","M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"]},faRunning:{prefix:"fas",iconName:"running",icon:[416,512,[],"f70c","M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"]},faRupeeSign:{prefix:"fas",iconName:"rupee-sign",icon:[320,512,[],"f156","M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"]},faSadCry:{prefix:"fas",iconName:"sad-cry",icon:[496,512,[],"f5b3","M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"]},faSadTear:{prefix:"fas",iconName:"sad-tear",icon:[496,512,[],"f5b4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"]},faSatellite:{prefix:"fas",iconName:"satellite",icon:[512,512,[],"f7bf","M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z"]},faSatelliteDish:{prefix:"fas",iconName:"satellite-dish",icon:[512,512,[],"f7c0","M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z"]},faSave:{prefix:"fas",iconName:"save",icon:[448,512,[],"f0c7","M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"]},faSchool:{prefix:"fas",iconName:"school",icon:[640,512,[],"f549","M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"]},faScrewdriver:{prefix:"fas",iconName:"screwdriver",icon:[512,512,[],"f54a","M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"]},faScroll:{prefix:"fas",iconName:"scroll",icon:[640,512,[],"f70e","M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"]},faSdCard:{prefix:"fas",iconName:"sd-card",icon:[384,512,[],"f7c2","M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z"]},faSearch:{prefix:"fas",iconName:"search",icon:[512,512,[],"f002","M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"]},faSearchDollar:{prefix:"fas",iconName:"search-dollar",icon:[512,512,[],"f688","M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"]},faSearchLocation:{prefix:"fas",iconName:"search-location",icon:[512,512,[],"f689","M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},faSearchMinus:{prefix:"fas",iconName:"search-minus",icon:[512,512,[],"f010","M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"]},faSearchPlus:{prefix:"fas",iconName:"search-plus",icon:[512,512,[],"f00e","M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"]},faSeedling:{prefix:"fas",iconName:"seedling",icon:[512,512,[],"f4d8","M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"]},faServer:{prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"]},faShapes:{prefix:"fas",iconName:"shapes",icon:[512,512,[],"f61f","M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z"]},faShare:{prefix:"fas",iconName:"share",icon:[512,512,[],"f064","M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"]},faShareAlt:{prefix:"fas",iconName:"share-alt",icon:[448,512,[],"f1e0","M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"]},faShareAltSquare:{prefix:"fas",iconName:"share-alt-square",icon:[448,512,[],"f1e1","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"]},faShareSquare:{prefix:"fas",iconName:"share-square",icon:[576,512,[],"f14d","M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"]},faShekelSign:{prefix:"fas",iconName:"shekel-sign",icon:[448,512,[],"f20b","M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"]},faShieldAlt:{prefix:"fas",iconName:"shield-alt",icon:[512,512,[],"f3ed","M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z"]},faShieldVirus:{prefix:"fas",iconName:"shield-virus",icon:[512,512,[],"e06c","M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z"]},faShip:{prefix:"fas",iconName:"ship",icon:[640,512,[],"f21a","M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"]},faShippingFast:{prefix:"fas",iconName:"shipping-fast",icon:[640,512,[],"f48b","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"]},faShoePrints:{prefix:"fas",iconName:"shoe-prints",icon:[640,512,[],"f54b","M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"]},faShoppingBag:{prefix:"fas",iconName:"shopping-bag",icon:[448,512,[],"f290","M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"]},faShoppingBasket:{prefix:"fas",iconName:"shopping-basket",icon:[576,512,[],"f291","M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"]},faShoppingCart:{prefix:"fas",iconName:"shopping-cart",icon:[576,512,[],"f07a","M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"]},faShower:{prefix:"fas",iconName:"shower",icon:[512,512,[],"f2cc","M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z"]},faShuttleVan:{prefix:"fas",iconName:"shuttle-van",icon:[640,512,[],"f5b6","M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"]},faSign:{prefix:"fas",iconName:"sign",icon:[512,512,[],"f4d9","M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"]},faSignInAlt:{prefix:"fas",iconName:"sign-in-alt",icon:[512,512,[],"f2f6","M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"]},faSignLanguage:{prefix:"fas",iconName:"sign-language",icon:[448,512,[],"f2a7","M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"]},faSignOutAlt:{prefix:"fas",iconName:"sign-out-alt",icon:[512,512,[],"f2f5","M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"]},faSignal:{prefix:"fas",iconName:"signal",icon:[640,512,[],"f012","M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"]},faSignature:{prefix:"fas",iconName:"signature",icon:[640,512,[],"f5b7","M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z"]},faSimCard:{prefix:"fas",iconName:"sim-card",icon:[384,512,[],"f7c4","M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z"]},faSink:{prefix:"fas",iconName:"sink",icon:[512,512,[],"e06d","M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z"]},faSitemap:{prefix:"fas",iconName:"sitemap",icon:[640,512,[],"f0e8","M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"]},faSkating:{prefix:"fas",iconName:"skating",icon:[448,512,[],"f7c5","M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z"]},faSkiing:{prefix:"fas",iconName:"skiing",icon:[512,512,[],"f7c9","M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z"]},faSkiingNordic:{prefix:"fas",iconName:"skiing-nordic",icon:[576,512,[],"f7ca","M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z"]},faSkull:m,faSkullCrossbones:g,faSlash:v,faSleigh:{prefix:"fas",iconName:"sleigh",icon:[640,512,[],"f7cc","M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z"]},faSlidersH:{prefix:"fas",iconName:"sliders-h",icon:[512,512,[],"f1de","M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"]},faSmile:{prefix:"fas",iconName:"smile",icon:[496,512,[],"f118","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"]},faSmileBeam:{prefix:"fas",iconName:"smile-beam",icon:[496,512,[],"f5b8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"]},faSmileWink:{prefix:"fas",iconName:"smile-wink",icon:[496,512,[],"f4da","M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"]},faSmog:{prefix:"fas",iconName:"smog",icon:[640,512,[],"f75f","M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z"]},faSmoking:{prefix:"fas",iconName:"smoking",icon:[640,512,[],"f48d","M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"]},faSmokingBan:{prefix:"fas",iconName:"smoking-ban",icon:[512,512,[],"f54d","M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"]},faSms:{prefix:"fas",iconName:"sms",icon:[512,512,[],"f7cd","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z"]},faSnowboarding:{prefix:"fas",iconName:"snowboarding",icon:[512,512,[],"f7ce","M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z"]},faSnowflake:{prefix:"fas",iconName:"snowflake",icon:[448,512,[],"f2dc","M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z"]},faSnowman:{prefix:"fas",iconName:"snowman",icon:[512,512,[],"f7d0","M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]},faSnowplow:{prefix:"fas",iconName:"snowplow",icon:[640,512,[],"f7d2","M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z"]},faSoap:{prefix:"fas",iconName:"soap",icon:[512,512,[],"e06e","M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z"]},faSocks:{prefix:"fas",iconName:"socks",icon:[512,512,[],"f696","M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"]},faSolarPanel:{prefix:"fas",iconName:"solar-panel",icon:[640,512,[],"f5ba","M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"]},faSort:{prefix:"fas",iconName:"sort",icon:[320,512,[],"f0dc","M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"]},faSortAlphaDown:{prefix:"fas",iconName:"sort-alpha-down",icon:[448,512,[],"f15d","M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z"]},faSortAlphaDownAlt:{prefix:"fas",iconName:"sort-alpha-down-alt",icon:[448,512,[],"f881","M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z"]},faSortAlphaUp:{prefix:"fas",iconName:"sort-alpha-up",icon:[448,512,[],"f15e","M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z"]},faSortAlphaUpAlt:{prefix:"fas",iconName:"sort-alpha-up-alt",icon:[448,512,[],"f882","M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z"]},faSortAmountDown:{prefix:"fas",iconName:"sort-amount-down",icon:[512,512,[],"f160","M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faSortAmountDownAlt:{prefix:"fas",iconName:"sort-amount-down-alt",icon:[512,512,[],"f884","M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z"]},faSortAmountUp:{prefix:"fas",iconName:"sort-amount-up",icon:[512,512,[],"f161","M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faSortAmountUpAlt:{prefix:"fas",iconName:"sort-amount-up-alt",icon:[512,512,[],"f885","M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z"]},faSortDown:{prefix:"fas",iconName:"sort-down",icon:[320,512,[],"f0dd","M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"]},faSortNumericDown:{prefix:"fas",iconName:"sort-numeric-down",icon:[448,512,[],"f162","M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z"]},faSortNumericDownAlt:{prefix:"fas",iconName:"sort-numeric-down-alt",icon:[448,512,[],"f886","M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z"]},faSortNumericUp:{prefix:"fas",iconName:"sort-numeric-up",icon:[448,512,[],"f163","M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z"]},faSortNumericUpAlt:{prefix:"fas",iconName:"sort-numeric-up-alt",icon:[448,512,[],"f887","M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z"]},faSortUp:{prefix:"fas",iconName:"sort-up",icon:[320,512,[],"f0de","M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"]},faSpa:{prefix:"fas",iconName:"spa",icon:[576,512,[],"f5bb","M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"]},faSpaceShuttle:{prefix:"fas",iconName:"space-shuttle",icon:[640,512,[],"f197","M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"]},faSpellCheck:{prefix:"fas",iconName:"spell-check",icon:[576,512,[],"f891","M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z"]},faSpider:b,faSpinner:{prefix:"fas",iconName:"spinner",icon:[512,512,[],"f110","M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"]},faSplotch:{prefix:"fas",iconName:"splotch",icon:[512,512,[],"f5bc","M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"]},faSprayCan:{prefix:"fas",iconName:"spray-can",icon:[512,512,[],"f5bd","M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]},faSquare:{prefix:"fas",iconName:"square",icon:[448,512,[],"f0c8","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]},faSquareFull:{prefix:"fas",iconName:"square-full",icon:[512,512,[],"f45c","M512 512H0V0h512v512z"]},faSquareRootAlt:{prefix:"fas",iconName:"square-root-alt",icon:[576,512,[],"f698","M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"]},faStamp:{prefix:"fas",iconName:"stamp",icon:[512,512,[],"f5bf","M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"]},faStar:{prefix:"fas",iconName:"star",icon:[576,512,[],"f005","M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"]},faStarAndCrescent:{prefix:"fas",iconName:"star-and-crescent",icon:[512,512,[],"f699","M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"]},faStarHalf:{prefix:"fas",iconName:"star-half",icon:[576,512,[],"f089","M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"]},faStarHalfAlt:{prefix:"fas",iconName:"star-half-alt",icon:[536,512,[],"f5c0","M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"]},faStarOfDavid:{prefix:"fas",iconName:"star-of-david",icon:[464,512,[],"f69a","M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"]},faStarOfLife:{prefix:"fas",iconName:"star-of-life",icon:[480,512,[],"f621","M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"]},faStepBackward:{prefix:"fas",iconName:"step-backward",icon:[448,512,[],"f048","M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"]},faStepForward:{prefix:"fas",iconName:"step-forward",icon:[448,512,[],"f051","M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"]},faStethoscope:{prefix:"fas",iconName:"stethoscope",icon:[512,512,[],"f0f1","M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]},faStickyNote:{prefix:"fas",iconName:"sticky-note",icon:[448,512,[],"f249","M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"]},faStop:{prefix:"fas",iconName:"stop",icon:[448,512,[],"f04d","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]},faStopCircle:{prefix:"fas",iconName:"stop-circle",icon:[512,512,[],"f28d","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"]},faStopwatch:{prefix:"fas",iconName:"stopwatch",icon:[448,512,[],"f2f2","M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"]},faStopwatch20:{prefix:"fas",iconName:"stopwatch-20",icon:[448,512,[],"e06f","M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z"]},faStore:{prefix:"fas",iconName:"store",icon:[616,512,[],"f54e","M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"]},faStoreAlt:{prefix:"fas",iconName:"store-alt",icon:[640,512,[],"f54f","M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"]},faStoreAltSlash:{prefix:"fas",iconName:"store-alt-slash",icon:[640,512,[],"e070","M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z"]},faStoreSlash:{prefix:"fas",iconName:"store-slash",icon:[640,512,[],"e071","M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z"]},faStream:{prefix:"fas",iconName:"stream",icon:[512,512,[],"f550","M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"]},faStreetView:{prefix:"fas",iconName:"street-view",icon:[512,512,[],"f21d","M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"]},faStrikethrough:{prefix:"fas",iconName:"strikethrough",icon:[512,512,[],"f0cc","M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z"]},faStroopwafel:{prefix:"fas",iconName:"stroopwafel",icon:[512,512,[],"f551","M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"]},faSubscript:{prefix:"fas",iconName:"subscript",icon:[512,512,[],"f12c","M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"]},faSubway:{prefix:"fas",iconName:"subway",icon:[448,512,[],"f239","M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"]},faSuitcase:{prefix:"fas",iconName:"suitcase",icon:[512,512,[],"f0f2","M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"]},faSuitcaseRolling:{prefix:"fas",iconName:"suitcase-rolling",icon:[384,512,[],"f5c1","M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"]},faSun:{prefix:"fas",iconName:"sun",icon:[512,512,[],"f185","M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"]},faSuperscript:{prefix:"fas",iconName:"superscript",icon:[512,512,[],"f12b","M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"]},faSurprise:{prefix:"fas",iconName:"surprise",icon:[496,512,[],"f5c2","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faSwatchbook:{prefix:"fas",iconName:"swatchbook",icon:[512,512,[],"f5c3","M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z"]},faSwimmer:{prefix:"fas",iconName:"swimmer",icon:[640,512,[],"f5c4","M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"]},faSwimmingPool:{prefix:"fas",iconName:"swimming-pool",icon:[640,512,[],"f5c5","M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"]},faSynagogue:{prefix:"fas",iconName:"synagogue",icon:[640,512,[],"f69b","M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"]},faSync:{prefix:"fas",iconName:"sync",icon:[512,512,[],"f021","M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z"]},faSyncAlt:{prefix:"fas",iconName:"sync-alt",icon:[512,512,[],"f2f1","M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"]},faSyringe:{prefix:"fas",iconName:"syringe",icon:[512,512,[],"f48e","M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"]},faTable:{prefix:"fas",iconName:"table",icon:[512,512,[],"f0ce","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"]},faTableTennis:{prefix:"fas",iconName:"table-tennis",icon:[512,512,[],"f45d","M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"]},faTablet:{prefix:"fas",iconName:"tablet",icon:[448,512,[],"f10a","M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faTabletAlt:{prefix:"fas",iconName:"tablet-alt",icon:[448,512,[],"f3fa","M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"]},faTablets:{prefix:"fas",iconName:"tablets",icon:[640,512,[],"f490","M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"]},faTachometerAlt:{prefix:"fas",iconName:"tachometer-alt",icon:[576,512,[],"f3fd","M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faTag:{prefix:"fas",iconName:"tag",icon:[512,512,[],"f02b","M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"]},faTags:{prefix:"fas",iconName:"tags",icon:[640,512,[],"f02c","M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"]},faTape:{prefix:"fas",iconName:"tape",icon:[640,512,[],"f4db","M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"]},faTasks:{prefix:"fas",iconName:"tasks",icon:[512,512,[],"f0ae","M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faTaxi:{prefix:"fas",iconName:"taxi",icon:[512,512,[],"f1ba","M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faTeeth:{prefix:"fas",iconName:"teeth",icon:[640,512,[],"f62e","M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"]},faTeethOpen:{prefix:"fas",iconName:"teeth-open",icon:[640,512,[],"f62f","M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"]},faTemperatureHigh:{prefix:"fas",iconName:"temperature-high",icon:[512,512,[],"f769","M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z"]},faTemperatureLow:{prefix:"fas",iconName:"temperature-low",icon:[512,512,[],"f76b","M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z"]},faTenge:{prefix:"fas",iconName:"tenge",icon:[384,512,[],"f7d7","M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z"]},faTerminal:{prefix:"fas",iconName:"terminal",icon:[640,512,[],"f120","M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"]},faTextHeight:{prefix:"fas",iconName:"text-height",icon:[576,512,[],"f034","M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z"]},faTextWidth:{prefix:"fas",iconName:"text-width",icon:[448,512,[],"f035","M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z"]},faTh:{prefix:"fas",iconName:"th",icon:[512,512,[],"f00a","M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"]},faThLarge:{prefix:"fas",iconName:"th-large",icon:[512,512,[],"f009","M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"]},faThList:{prefix:"fas",iconName:"th-list",icon:[512,512,[],"f00b","M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"]},faTheaterMasks:{prefix:"fas",iconName:"theater-masks",icon:[640,512,[],"f630","M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"]},faThermometer:{prefix:"fas",iconName:"thermometer",icon:[512,512,[],"f491","M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"]},faThermometerEmpty:{prefix:"fas",iconName:"thermometer-empty",icon:[256,512,[],"f2cb","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]},faThermometerFull:{prefix:"fas",iconName:"thermometer-full",icon:[256,512,[],"f2c7","M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"]},faThermometerHalf:{prefix:"fas",iconName:"thermometer-half",icon:[256,512,[],"f2c9","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]},faThermometerQuarter:{prefix:"fas",iconName:"thermometer-quarter",icon:[256,512,[],"f2ca","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]},faThermometerThreeQuarters:{prefix:"fas",iconName:"thermometer-three-quarters",icon:[256,512,[],"f2c8","M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]},faThumbsDown:{prefix:"fas",iconName:"thumbs-down",icon:[512,512,[],"f165","M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"]},faThumbsUp:{prefix:"fas",iconName:"thumbs-up",icon:[512,512,[],"f164","M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"]},faThumbtack:{prefix:"fas",iconName:"thumbtack",icon:[384,512,[],"f08d","M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"]},faTicketAlt:{prefix:"fas",iconName:"ticket-alt",icon:[576,512,[],"f3ff","M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"]},faTimes:{prefix:"fas",iconName:"times",icon:[352,512,[],"f00d","M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"]},faTimesCircle:{prefix:"fas",iconName:"times-circle",icon:[512,512,[],"f057","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"]},faTint:{prefix:"fas",iconName:"tint",icon:[352,512,[],"f043","M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"]},faTintSlash:{prefix:"fas",iconName:"tint-slash",icon:[640,512,[],"f5c7","M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"]},faTired:{prefix:"fas",iconName:"tired",icon:[496,512,[],"f5c8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"]},faToggleOff:{prefix:"fas",iconName:"toggle-off",icon:[576,512,[],"f204","M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"]},faToggleOn:{prefix:"fas",iconName:"toggle-on",icon:[576,512,[],"f205","M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z"]},faToilet:{prefix:"fas",iconName:"toilet",icon:[384,512,[],"f7d8","M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z"]},faToiletPaper:{prefix:"fas",iconName:"toilet-paper",icon:[576,512,[],"f71e","M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"]},faToiletPaperSlash:{prefix:"fas",iconName:"toilet-paper-slash",icon:[640,512,[],"e072","M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z"]},faToolbox:{prefix:"fas",iconName:"toolbox",icon:[512,512,[],"f552","M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"]},faTools:{prefix:"fas",iconName:"tools",icon:[512,512,[],"f7d9","M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z"]},faTooth:{prefix:"fas",iconName:"tooth",icon:[448,512,[],"f5c9","M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"]},faTorah:{prefix:"fas",iconName:"torah",icon:[640,512,[],"f6a0","M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z"]},faToriiGate:{prefix:"fas",iconName:"torii-gate",icon:[512,512,[],"f6a1","M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"]},faTractor:{prefix:"fas",iconName:"tractor",icon:[640,512,[],"f722","M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"]},faTrademark:{prefix:"fas",iconName:"trademark",icon:[640,512,[],"f25c","M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z"]},faTrafficLight:{prefix:"fas",iconName:"traffic-light",icon:[384,512,[],"f637","M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"]},faTrailer:{prefix:"fas",iconName:"trailer",icon:[640,512,[],"e041","M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z"]},faTrain:{prefix:"fas",iconName:"train",icon:[448,512,[],"f238","M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"]},faTram:{prefix:"fas",iconName:"tram",icon:[512,512,[],"f7da","M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"]},faTransgender:{prefix:"fas",iconName:"transgender",icon:[384,512,[],"f224","M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faTransgenderAlt:{prefix:"fas",iconName:"transgender-alt",icon:[480,512,[],"f225","M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faTrash:{prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z"]},faTrashAlt:{prefix:"fas",iconName:"trash-alt",icon:[448,512,[],"f2ed","M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faTrashRestore:{prefix:"fas",iconName:"trash-restore",icon:[448,512,[],"f829","M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faTrashRestoreAlt:{prefix:"fas",iconName:"trash-restore-alt",icon:[448,512,[],"f82a","M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faTree:{prefix:"fas",iconName:"tree",icon:[384,512,[],"f1bb","M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"]},faTrophy:{prefix:"fas",iconName:"trophy",icon:[576,512,[],"f091","M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"]},faTruck:{prefix:"fas",iconName:"truck",icon:[640,512,[],"f0d1","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"]},faTruckLoading:{prefix:"fas",iconName:"truck-loading",icon:[640,512,[],"f4de","M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"]},faTruckMonster:{prefix:"fas",iconName:"truck-monster",icon:[640,512,[],"f63b","M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"]},faTruckMoving:{prefix:"fas",iconName:"truck-moving",icon:[640,512,[],"f4df","M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"]},faTruckPickup:{prefix:"fas",iconName:"truck-pickup",icon:[640,512,[],"f63c","M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"]},faTshirt:{prefix:"fas",iconName:"tshirt",icon:[640,512,[],"f553","M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"]},faTty:{prefix:"fas",iconName:"tty",icon:[512,512,[],"f1e4","M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"]},faTv:{prefix:"fas",iconName:"tv",icon:[640,512,[],"f26c","M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z"]},faUmbrella:{prefix:"fas",iconName:"umbrella",icon:[576,512,[],"f0e9","M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z"]},faUmbrellaBeach:{prefix:"fas",iconName:"umbrella-beach",icon:[640,512,[],"f5ca","M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"]},faUnderline:{prefix:"fas",iconName:"underline",icon:[448,512,[],"f0cd","M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faUndo:{prefix:"fas",iconName:"undo",icon:[512,512,[],"f0e2","M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"]},faUndoAlt:{prefix:"fas",iconName:"undo-alt",icon:[512,512,[],"f2ea","M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"]},faUniversalAccess:{prefix:"fas",iconName:"universal-access",icon:[512,512,[],"f29a","M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"]},faUniversity:{prefix:"fas",iconName:"university",icon:[512,512,[],"f19c","M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"]},faUnlink:{prefix:"fas",iconName:"unlink",icon:[512,512,[],"f127","M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"]},faUnlock:{prefix:"fas",iconName:"unlock",icon:[448,512,[],"f09c","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"]},faUnlockAlt:{prefix:"fas",iconName:"unlock-alt",icon:[448,512,[],"f13e","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"]},faUpload:{prefix:"fas",iconName:"upload",icon:[512,512,[],"f093","M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"]},faUser:{prefix:"fas",iconName:"user",icon:[448,512,[],"f007","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},faUserAlt:{prefix:"fas",iconName:"user-alt",icon:[512,512,[],"f406","M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"]},faUserAltSlash:{prefix:"fas",iconName:"user-alt-slash",icon:[640,512,[],"f4fa","M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"]},faUserAstronaut:{prefix:"fas",iconName:"user-astronaut",icon:[448,512,[],"f4fb","M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"]},faUserCheck:{prefix:"fas",iconName:"user-check",icon:[640,512,[],"f4fc","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"]},faUserCircle:{prefix:"fas",iconName:"user-circle",icon:[496,512,[],"f2bd","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"]},faUserClock:{prefix:"fas",iconName:"user-clock",icon:[640,512,[],"f4fd","M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"]},faUserCog:{prefix:"fas",iconName:"user-cog",icon:[640,512,[],"f4fe","M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"]},faUserEdit:{prefix:"fas",iconName:"user-edit",icon:[640,512,[],"f4ff","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"]},faUserFriends:{prefix:"fas",iconName:"user-friends",icon:[640,512,[],"f500","M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"]},faUserGraduate:{prefix:"fas",iconName:"user-graduate",icon:[448,512,[],"f501","M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"]},faUserInjured:{prefix:"fas",iconName:"user-injured",icon:[448,512,[],"f728","M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"]},faUserLock:{prefix:"fas",iconName:"user-lock",icon:[640,512,[],"f502","M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z"]},faUserMd:{prefix:"fas",iconName:"user-md",icon:[448,512,[],"f0f0","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"]},faUserMinus:{prefix:"fas",iconName:"user-minus",icon:[640,512,[],"f503","M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},faUserNinja:{prefix:"fas",iconName:"user-ninja",icon:[448,512,[],"f504","M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"]},faUserNurse:{prefix:"fas",iconName:"user-nurse",icon:[448,512,[],"f82f","M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z"]},faUserPlus:{prefix:"fas",iconName:"user-plus",icon:[640,512,[],"f234","M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},faUserSecret:{prefix:"fas",iconName:"user-secret",icon:[448,512,[],"f21b","M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"]},faUserShield:{prefix:"fas",iconName:"user-shield",icon:[640,512,[],"f505","M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"]},faUserSlash:{prefix:"fas",iconName:"user-slash",icon:[640,512,[],"f506","M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"]},faUserTag:{prefix:"fas",iconName:"user-tag",icon:[640,512,[],"f507","M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"]},faUserTie:{prefix:"fas",iconName:"user-tie",icon:[448,512,[],"f508","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"]},faUserTimes:{prefix:"fas",iconName:"user-times",icon:[640,512,[],"f235","M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},faUsers:{prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"]},faUsersCog:{prefix:"fas",iconName:"users-cog",icon:[640,512,[],"f509","M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"]},faUsersSlash:{prefix:"fas",iconName:"users-slash",icon:[640,512,[],"e073","M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z"]},faUtensilSpoon:{prefix:"fas",iconName:"utensil-spoon",icon:[512,512,[],"f2e5","M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"]},faUtensils:{prefix:"fas",iconName:"utensils",icon:[416,512,[],"f2e7","M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"]},faVectorSquare:{prefix:"fas",iconName:"vector-square",icon:[512,512,[],"f5cb","M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"]},faVenus:{prefix:"fas",iconName:"venus",icon:[288,512,[],"f221","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"]},faVenusDouble:{prefix:"fas",iconName:"venus-double",icon:[512,512,[],"f226","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"]},faVenusMars:{prefix:"fas",iconName:"venus-mars",icon:[576,512,[],"f228","M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faVest:{prefix:"fas",iconName:"vest",icon:[448,512,[],"e085","M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z"]},faVestPatches:{prefix:"fas",iconName:"vest-patches",icon:[448,512,[],"e086","M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z"]},faVial:{prefix:"fas",iconName:"vial",icon:[480,512,[],"f492","M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"]},faVials:{prefix:"fas",iconName:"vials",icon:[640,512,[],"f493","M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"]},faVideo:{prefix:"fas",iconName:"video",icon:[576,512,[],"f03d","M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"]},faVideoSlash:{prefix:"fas",iconName:"video-slash",icon:[640,512,[],"f4e2","M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"]},faVihara:{prefix:"fas",iconName:"vihara",icon:[640,512,[],"f6a7","M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"]},faVirus:{prefix:"fas",iconName:"virus",icon:[512,512,[],"e074","M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z"]},faVirusSlash:{prefix:"fas",iconName:"virus-slash",icon:[640,512,[],"e075","M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z"]},faViruses:{prefix:"fas",iconName:"viruses",icon:[640,512,[],"e076","M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z"]},faVoicemail:{prefix:"fas",iconName:"voicemail",icon:[640,512,[],"f897","M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z"]},faVolleyballBall:{prefix:"fas",iconName:"volleyball-ball",icon:[512,512,[],"f45f","M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"]},faVolumeDown:{prefix:"fas",iconName:"volume-down",icon:[384,512,[],"f027","M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"]},faVolumeMute:{prefix:"fas",iconName:"volume-mute",icon:[512,512,[],"f6a9","M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"]},faVolumeOff:{prefix:"fas",iconName:"volume-off",icon:[256,512,[],"f026","M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z"]},faVolumeUp:{prefix:"fas",iconName:"volume-up",icon:[576,512,[],"f028","M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"]},faVoteYea:{prefix:"fas",iconName:"vote-yea",icon:[640,512,[],"f772","M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z"]},faVrCardboard:{prefix:"fas",iconName:"vr-cardboard",icon:[640,512,[],"f729","M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z"]},faWalking:w,faWallet:{prefix:"fas",iconName:"wallet",icon:[512,512,[],"f555","M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faWarehouse:{prefix:"fas",iconName:"warehouse",icon:[640,512,[],"f494","M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"]},faWater:{prefix:"fas",iconName:"water",icon:[576,512,[],"f773","M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z"]},faWaveSquare:{prefix:"fas",iconName:"wave-square",icon:[640,512,[],"f83e","M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z"]},faWeight:{prefix:"fas",iconName:"weight",icon:[512,512,[],"f496","M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"]},faWeightHanging:{prefix:"fas",iconName:"weight-hanging",icon:[512,512,[],"f5cd","M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"]},faWheelchair:{prefix:"fas",iconName:"wheelchair",icon:[512,512,[],"f193","M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"]},faWifi:{prefix:"fas",iconName:"wifi",icon:[640,512,[],"f1eb","M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"]},faWind:{prefix:"fas",iconName:"wind",icon:[512,512,[],"f72e","M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z"]},faWindowClose:{prefix:"fas",iconName:"window-close",icon:[512,512,[],"f410","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"]},faWindowMaximize:{prefix:"fas",iconName:"window-maximize",icon:[512,512,[],"f2d0","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"]},faWindowMinimize:{prefix:"fas",iconName:"window-minimize",icon:[512,512,[],"f2d1","M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"]},faWindowRestore:{prefix:"fas",iconName:"window-restore",icon:[512,512,[],"f2d2","M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"]},faWineBottle:{prefix:"fas",iconName:"wine-bottle",icon:[512,512,[],"f72f","M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"]},faWineGlass:{prefix:"fas",iconName:"wine-glass",icon:[288,512,[],"f4e3","M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"]},faWineGlassAlt:{prefix:"fas",iconName:"wine-glass-alt",icon:[288,512,[],"f5ce","M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"]},faWonSign:{prefix:"fas",iconName:"won-sign",icon:[576,512,[],"f159","M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z"]},faWrench:{prefix:"fas",iconName:"wrench",icon:[512,512,[],"f0ad","M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},faXRay:{prefix:"fas",iconName:"x-ray",icon:[640,512,[],"f497","M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"]},faYenSign:{prefix:"fas",iconName:"yen-sign",icon:[384,512,[],"f157","M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z"]},faYinYang:{prefix:"fas",iconName:"yin-yang",icon:[496,512,[],"f6ad","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]}};function A(t){return A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},A(t)}function y(t,e){for(var a=0;a0;)e+=gt[62*Math.random()|0];return e}function bt(t){return"".concat(t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function wt(t){return Object.keys(t||{}).reduce((function(e,a){return e+"".concat(a,": ").concat(t[a],";")}),"")}function Ct(t){return t.size!==mt.size||t.x!==mt.x||t.y!==mt.y||t.rotate!==mt.rotate||t.flipX||t.flipY}function At(t){var e=t.transform,a=t.containerWidth,i=t.iconWidth,n={transform:"translate(".concat(a/2," 256)")},s="translate(".concat(32*e.x,", ").concat(32*e.y,") "),r="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),c="rotate(".concat(e.rotate," 0 0)");return{outer:n,inner:{transform:"".concat(s," ").concat(r," ").concat(c)},path:{transform:"translate(".concat(i/2*-1," -256)")}}}var yt={x:0,y:0,width:"100%",height:"100%"};function Lt(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}var Ht=(U.measurePerformance&&Q&&Q.mark&&Q.measure,function(t,e,a,i){var n,s,r,c=Object.keys(t),o=c.length,l=void 0!==i?function(t,e){return function(a,i,n,s){return t.call(e,a,i,n,s)}}(e,i):e;for(void 0===a?(n=1,r=t[c[0]]):(n=0,r=a);n2&&void 0!==arguments[2]?arguments[2]:{}).skipHooks,i=void 0!==a&&a,n=Object.keys(e).reduce((function(t,a){var i=e[a];return i.icon?t[i.iconName]=i.icon:t[a]=i,t}),{});"function"!=typeof j.hooks.addPack||i?j.styles[t]=H({},j.styles[t]||{},n):j.hooks.addPack(t,n),"fas"===t&&Bt("fa",e)}var zt=j.styles,Nt=j.shims,xt=function(){var t=function(t){return Ht(zt,(function(e,a,i){return e[i]=Ht(a,t,{}),e}),{})};t((function(t,e,a){return e[3]&&(t[e[3]]=a),t})),t((function(t,e,a){var i=e[2];return t[a]=a,i.forEach((function(e){t[e]=a})),t}));var e="far"in zt;Ht(Nt,(function(t,a){var i=a[0],n=a[1],s=a[2];return"far"!==n||e||(n="fas"),t[i]={prefix:n,iconName:s},t}),{})};function Dt(t,e,a){if(t&&t[e]&&t[e][a])return{prefix:e,iconName:a,icon:t[e][a]}}function Vt(t){var e=t.tag,a=t.attributes,i=void 0===a?{}:a,n=t.children,s=void 0===n?[]:n;return"string"==typeof t?bt(t):"<".concat(e," ").concat(function(t){return Object.keys(t||{}).reduce((function(e,a){return e+"".concat(a,'="').concat(bt(t[a]),'" ')}),"").trim()}(i),">").concat(s.map(Vt).join(""),"")}function Mt(t){this.name="MissingIcon",this.message=t||"Icon unavailable",this.stack=(new Error).stack}xt(),j.styles,Mt.prototype=Object.create(Error.prototype),Mt.prototype.constructor=Mt;var St={fill:"currentColor"},kt={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},Qt=(H({},St,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"}),H({},kt,{attributeName:"opacity"}));function It(t){var e=t[0],a=t[1],i=B(t.slice(4),1)[0];return{found:!0,width:e,height:a,icon:Array.isArray(i)?{tag:"g",attributes:{class:"".concat(U.familyPrefix,"-").concat(F.GROUP)},children:[{tag:"path",attributes:{class:"".concat(U.familyPrefix,"-").concat(F.SECONDARY),fill:"currentColor",d:i[0]}},{tag:"path",attributes:{class:"".concat(U.familyPrefix,"-").concat(F.PRIMARY),fill:"currentColor",d:i[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:i}}}}H({},St,{cx:"256",cy:"364",r:"28"}),H({},kt,{attributeName:"r",values:"28;14;28;28;14;28;"}),H({},Qt,{values:"1;0;1;1;0;1;"}),H({},St,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),H({},Qt,{values:"1;0;0;0;0;1;"}),H({},St,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),H({},Qt,{values:"0;0;1;1;0;0;"}),j.styles,j.styles;var Ot='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}';var Et=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.definitions={}}var e,a;return e=t,a=[{key:"add",value:function(){for(var t=this,e=arguments.length,a=new Array(e),i=0;i-1;n--){var s=a[n],r=(s.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(r)>-1&&(i=s)}k.head.insertBefore(e,i)}}(function(){var t=E,e=X,a=U.familyPrefix,i=U.replacementClass,n=Ot;if(a!==t||i!==e){var s=new RegExp("\\.".concat(t,"\\-"),"g"),r=new RegExp("\\--".concat(t,"\\-"),"g"),c=new RegExp("\\.".concat(e),"g");n=n.replace(s,".".concat(a,"-")).replace(r,"--".concat(a,"-")).replace(c,".".concat(i))}return n}()),Kt=!0)}function Tt(t,e){return Object.defineProperty(t,"abstract",{get:e}),Object.defineProperty(t,"html",{get:function(){return t.abstract.map((function(t){return Vt(t)}))}}),Object.defineProperty(t,"node",{get:function(){if(I){var e=k.createElement("div");return e.innerHTML=t.html,e.children}}}),t}function Pt(t){var e=t.prefix,a=void 0===e?"fa":e,i=t.iconName;if(i)return Dt(Gt.definitions,a,i)||Dt(j.styles,a,i)}var Ft,Gt=new Et,Kt=!1,Ut=(Ft=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.transform,i=void 0===a?mt:a,n=e.symbol,s=void 0!==n&&n,r=e.mask,c=void 0===r?null:r,o=e.maskId,l=void 0===o?null:o,h=e.title,u=void 0===h?null:h,d=e.titleId,f=void 0===d?null:d,p=e.classes,m=void 0===p?[]:p,g=e.attributes,v=void 0===g?{}:g,b=e.styles,w=void 0===b?{}:b;if(t){var C=t.prefix,A=t.iconName,y=t.icon;return Tt(H({type:"icon"},t),(function(){return Xt(),U.autoA11y&&(u?v["aria-labelledby"]="".concat(U.replacementClass,"-title-").concat(f||vt()):(v["aria-hidden"]="true",v.focusable="false")),function(t){var e=t.icons,a=e.main,i=e.mask,n=t.prefix,s=t.iconName,r=t.transform,c=t.symbol,o=t.title,l=t.maskId,h=t.titleId,u=t.extra,d=t.watchable,f=void 0!==d&&d,p=i.found?i:a,m=p.width,g=p.height,v="fak"===n,b=v?"":"fa-w-".concat(Math.ceil(m/g*16)),w=[U.replacementClass,s?"".concat(U.familyPrefix,"-").concat(s):"",b].filter((function(t){return-1===u.classes.indexOf(t)})).filter((function(t){return""!==t||!!t})).concat(u.classes).join(" "),C={children:[],attributes:H({},u.attributes,{"data-prefix":n,"data-icon":s,class:w,role:u.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(g)})},A=v&&!~u.classes.indexOf("fa-fw")?{width:"".concat(m/g*16*.0625,"em")}:{};f&&(C.attributes["data-fa-i2svg"]=""),o&&C.children.push({tag:"title",attributes:{id:C.attributes["aria-labelledby"]||"title-".concat(h||vt())},children:[o]});var y=H({},C,{prefix:n,iconName:s,main:a,mask:i,maskId:l,transform:r,symbol:c,styles:H({},A,u.styles)}),L=i.found&&a.found?function(t){var e,a=t.children,i=t.attributes,n=t.main,s=t.mask,r=t.maskId,c=t.transform,o=n.width,l=n.icon,h=s.width,u=s.icon,d=At({transform:c,containerWidth:h,iconWidth:o}),f={tag:"rect",attributes:H({},yt,{fill:"white"})},p=l.children?{children:l.children.map(Lt)}:{},m={tag:"g",attributes:H({},d.inner),children:[Lt(H({tag:l.tag,attributes:H({},l.attributes,d.path)},p))]},g={tag:"g",attributes:H({},d.outer),children:[m]},v="mask-".concat(r||vt()),b="clip-".concat(r||vt()),w={tag:"mask",attributes:H({},yt,{id:v,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[f,g]},C={tag:"defs",children:[{tag:"clipPath",attributes:{id:b},children:(e=u,"g"===e.tag?e.children:[e])},w]};return a.push(C,{tag:"rect",attributes:H({fill:"currentColor","clip-path":"url(#".concat(b,")"),mask:"url(#".concat(v,")")},yt)}),{children:a,attributes:i}}(y):function(t){var e=t.children,a=t.attributes,i=t.main,n=t.transform,s=wt(t.styles);if(s.length>0&&(a.style=s),Ct(n)){var r=At({transform:n,containerWidth:i.width,iconWidth:i.width});e.push({tag:"g",attributes:H({},r.outer),children:[{tag:"g",attributes:H({},r.inner),children:[{tag:i.icon.tag,children:i.icon.children,attributes:H({},i.icon.attributes,r.path)}]}]})}else e.push(i.icon);return{children:e,attributes:a}}(y),B=L.children,z=L.attributes;return y.children=B,y.attributes=z,c?function(t){var e=t.prefix,a=t.iconName,i=t.children,n=t.attributes,s=t.symbol;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:H({},n,{id:!0===s?"".concat(e,"-").concat(U.familyPrefix,"-").concat(a):s}),children:i}]}]}(y):function(t){var e=t.children,a=t.main,i=t.mask,n=t.attributes,s=t.styles,r=t.transform;if(Ct(r)&&a.found&&!i.found){var c={x:a.width/a.height/2,y:.5};n.style=wt(H({},s,{"transform-origin":"".concat(c.x+r.x/16,"em ").concat(c.y+r.y/16,"em")}))}return[{tag:"svg",attributes:n,children:e}]}(y)}({icons:{main:It(y),mask:c?It(c.icon):{found:!1,width:null,height:null,icon:{}}},prefix:C,iconName:A,transform:H({},mt,i),symbol:s,title:u,maskId:l,titleId:f,extra:{attributes:v,styles:w,classes:m}})}))}},function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=(t||{}).icon?t:Pt(t||{}),i=e.mask;return i&&(i=(i||{}).icon?i:Pt(i||{})),Ft(a,H({},e,{mask:i}))});Gt.add(C);const qt="obsidian-leaflet-plugin-icon-description",jt=Ut(_t("info-circle")).html[0],Yt="obsidian-leaflet-plugin-icon-bullseye",Rt=Ut(_t("bullseye")).html[0],Wt="obsidian-leaflet-plugin-icon-map",Zt=Ut(_t("map-marked-alt")).html[0],Jt=Object.values(C).map((t=>t.iconName));function _t(t){return t?Pt({iconName:t,prefix:"fas"}):null}const $t=function(t){var e=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).classes,a=void 0===e?[]:e;return Tt({type:"layer"},(function(){Xt();var e,i=[];return t((function(t){Array.isArray(t)?t.map((function(t){i=i.concat(t.abstract)})):i=i.concat(t.abstract)})),[{tag:"span",attributes:{class:["".concat(U.familyPrefix,"-layers")].concat((e=a,function(t){if(Array.isArray(t)){for(var e=0,a=new Array(t.length);e{t(Ut(w)),t(Ut(v))})).node[0],te=new Map([["Blinded",Ut(o,{attributes:{stroke:"coral","stroke-width":1}}).node[0]],["Charmed",Ut(u,{attributes:{stroke:"coral","stroke-width":1}}).node[0]],["Concentrating",Ut(f).node[0]],["Deafened",Ut(r).node[0]],["Frightened",Ut(b).node[0]],["Grappled",Ut(h).node[0]],["Incapacitated",Ut(m).node[0]],["Invisible",Ut(l).node[0]],["Paralyzed",$t],["Petrified",Ut(p).node[0]],["Poisoned",Ut(g).node[0]],["Prone",Ut(n).node[0]],["Reacted",Ut(s).node[0]],["Restrained",Ut(d).node[0]],["Stunned",Ut(c).node[0]],["Unconscious",Ut(m).node[0]]]);function ee(t,e){if(!t)return null;if(t.isImage){let e=new Image;return e.src=t.imageUrl,{html:e.outerHTML,node:e}}const a=Ut(_t(t.iconName),e);return{html:a.html[0],node:a.node[0]}}var ae=a(767),ie=a.n(ae);const ne="obsidian-leaflet",se="obsidian-leaflet-map-view",re="https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png",ce="a,b,c,d",oe='© OpenStreetMap contributors © CARTO',le=/^(\d+(?:\.\d+)?)\s?(\w*)/,he=2,ue=.6,de={darkMode:"false",defaultZoom:5,distanceMultiplier:1,drawColor:"#3388ff",geojson:[],geojsonColor:"#3388ff",gpx:[],gpxColor:"#3388ff",height:"500px",image:"real",imageOverlay:[],isMapView:!1,layers:[],linksFrom:[],linksTo:[],marker:[],commandMarker:[],markerFile:[],markerFolder:[],markerTag:[],maxZoom:10,minZoom:1,osmLayer:!0,overlay:[],overlayColor:"blue",scale:1,showAllMarkers:!1,tileServer:[],verbose:!1,zoomDelta:1,zoomFeatures:!1},fe={type:"real",minZoom:1,maxZoom:10,defaultZoom:1,zoomDelta:1,unit:"m",scale:1,distanceMultiplier:1,darkMode:!1,overlayColor:"blue",osmLayer:!0,isMapView:!1},pe={mapMarkers:[],defaultMarker:{type:"default",iconName:"map-marker",color:"#dddddd",transform:{size:6,x:0,y:-2}},markerIcons:[],color:"#dddddd",lat:39.983334,long:-82.98333,notePreview:!1,layerMarkers:!0,previousVersion:null,version:{major:null,minor:null,patch:null},warnedAboutMapMarker:!1,copyOnClick:!1,displayMarkerTooltips:"hover",displayOverlayTooltips:!0,configDirectory:null,mapViewEnabled:!0,mapViewParameters:{},enableDraw:!0,defaultUnitType:"imperial",defaultTile:re,defaultTileDark:re,defaultAttribution:oe,defaultTileSubdomains:ce},me={className:"leaflet-marker-link-popup",autoClose:!1,closeButton:!1,closeOnClick:!1,autoPan:!1},ge=t.Platform.isMacOS?"Meta":"Control",ve=((new Date).getFullYear(),(new Date).getFullYear(),(new Date).getFullYear(),{"Loading Obsidian Leaflet v%1":"Loading Obsidian Leaflet v%1","Open Leaflet Map":"Open Leaflet Map","Unloading Obsidian Leaflet":"Unloading Obsidian Leaflet","Obsidian Leaflet maps must have an ID.":"Obsidian Leaflet maps must have an ID.","ID required":"ID required","There was an error saving into the configured directory.":"There was an error saving into the configured directory.","Could not parse GeoJSON file":"Could not parse GeoJSON file","Could not parse overlay radius. Please make sure it is in the format ` `.":"Could not parse overlay radius. Please make sure it is in the format ` `.","There was an error with the provided latitude. Using default.":"There was an error with the provided latitude. Using default.","There was an error with the provided longitude. Using default.":"There was an error with the provided longitude. Using default.","There was an issue getting the image dimensions.":"There was an issue getting the image dimensions.","There was an error updating the marker for %1.":"There was an error updating the marker for %1.","There was an error updating the marker type for %1.":"There was an error updating the marker type for %1.","There was an error updating the markers for %1.":"There was an error updating the markers for %1.","Coordinates copied to clipboard.":"Coordinates copied to clipboard.","There was an error trying to copy coordinates to clipboard.":"There was an error trying to copy coordinates to clipboard.","There was an error rendering the map":"There was an error rendering the map","Unparseable height provided.":"Unparseable height provided.","There was a problem with the provided height. Using 500px.":"There was a problem with the provided height. Using 500px.","Could not parse latitude":"Could not parse latitude","Could not parse longitude":"Could not parse longitude","No data for marker %1.":"No data for marker %1.","The `%1` field%2 can only be used with the Dataview plugin installed.":"The `%1` field%2 can only be used with the Dataview plugin installed.","Could not parse location in %1":"Could not parse location in %1","Could not parse map overlay length in %1. Please ensure it is in the format: ":"Could not parse map overlay length in %1. Please ensure it is in the format: ","%1 overlay":"%1 overlay","Could not parse %1 in %2. Please ensure it is in the format: ":"Could not parse %1 in %2. Please ensure it is in the format: ",meters:"meters",petameters:"petameters",terameters:"terameters",gigameters:"gigameters",megameters:"megameters",kilometers:"kilometers",hectometers:"hectometers",decameters:"decameters",decimeters:"decimeters",centimeters:"centimeters",millimeters:"millimeters",micrometers:"micrometers",nanometers:"nanometers",picometers:"picometers",femtometers:"femtometers",feet:"feet",inches:"inches",yards:"yards",miles:"miles","nautical miles":"nautical miles","Obsidian Leaflet Settings":"Obsidian Leaflet Settings","Default Map Marker":"Default Map Marker","This marker is always available.":"This marker is always available.","Icon Name":"Icon Name","A default marker must be defined.":"A default marker must be defined","The selected icon does not exist in Font Awesome Free.":"The selected icon does not exist in Font Awesome Free.","Upload Image":"Upload Image","Marker Color":"Marker Color","Layer Base Marker":"Layer Base Marker","Use as base layer for additional markers by default.":"Use as base layer for additional markers by default.","Additional Map Markers":"Additional Map Markers","Add Additional":"Add Additional","These markers will be available in the right-click menu on the map.":"These markers will be available in the right-click menu on the map.","Default Latitude":"Default Latitude","Real-world maps will open to this latitude if not specified.":"Real-world maps will open to this latitude if not specified.","Latitude must be a number.":"Latitude must be a number.","Default Longitude":"Default Longitude","Real-world maps will open to this longitude if not specified.":"Real-world maps will open to this longitude if not specified.","Longitude must be a number.":"Longitude must be a number.","Reset to Default":"Reset to Default","Please back up your data before changing this setting.":"Please back up your data before changing this setting.","Current directory":"Current directory","Default Config Directory":"Default Config Directory","Default Marker Tooltip Behavior":"Default Marker Tooltip Behavior","New markers will be created to this setting by default. Can be overridden per-marker.":"New markers will be created to this setting by default. Can be overridden per-marker.",Always:"Always",Hover:"Hover",Never:"Never","Display Note Preview":"Display Note Preview","Markers linked to notes will show a note preview when hovered.":"Markers linked to notes will show a note preview when hovered.","Display Overlay Tooltips":"Display Overlay Tooltips","Overlay tooltips will display when hovered.":"Overlay tooltips will display when hovered.","Copy Coordinates on Shift-Click":"Copy Coordinates on Shift-Click","Map coordinates will be copied to the clipboard when shift-clicking.":"Map coordinates will be copied to the clipboard when shift-clicking.","This setting is experimental and could cause marker data issues. Use at your own risk.":"This setting is experimental and could cause marker data issues. Use at your own risk.","Import Marker CSV File":"Import Marker CSV File","Choose File":"Choose File","Upload CSV File":"Upload CSV File","Map not specified for line %1":"Map not specified for line %1","Could not parse latitude for line %1":"Could not parse latitude for line %1","Could not parse longitude for line %1":"Could not parse longitude for line %1","Marker file successfully imported.":"Marker file successfully imported.","There was an error while importing %1":"There was an error while importing %1","Export Marker Data":"Export Marker Data","Export all marker data to a CSV file.":"Export all marker data to a CSV file.",Export:"Export","Enable Draw Mode by Default":"Enable Draw Mode by Default","The draw control will be added to maps by default. Can be overridden with the draw map block parameter.":"The draw control will be added to maps by default. Can be overridden with the draw map block parameter.","Default Units":"Default Units","Select the default system of units for the map.":"Select the default system of units for the map.","Default Tile Server":"Default Tile Server","It is up to you to ensure you have proper access to this tile server.":"It is up to you to ensure you have proper access to this tile server.","Default Tile Server Attribution":"Default Tile Server Attribution","Please ensure your attribution meets all requirements set by the tile server.":"Please ensure your attribution meets all requirements set by the tile server.","Default Tile Server (Dark Mode)":"Default Tile Server (Dark Mode)",Imperial:"Imperial",Metric:"Metric","Only display when zooming out above this zoom.":"Only display when zooming out above this zoom.","Only display when zooming in below this zoom.":"Only display when zooming in below this zoom.",Reset:"Reset","Default Tile Server Subdomains":"Default Tile Server Subdomains","Available subdomains for this tile server concurrent requests.":"Available subdomains for this tile server concurrent requests. Spilt by ',', etc. 'a,b,c'","Marker Name":"Marker Name","Marker name already exists.":"Marker name already exists.","Marker name cannot be empty.":"Marker name cannot be empty.","Font Awesome icon name (e.g. map-marker).":"Font Awesome icon name (e.g. map-marker).","Use Image for Icon":"Use Image for Icon","Layer Icon":"Layer Icon","The icon will be layered on the base icon.":"The icon will be layered on the base icon.","Override default icon color.":"Override default icon color.",Save:"Save","Marker type already exists.":"Marker type already exists.","Invalid icon name.":"Invalid icon name.","Icon cannot be empty.":"Icon cannot be empty.",Cancel:"Cancel",Type:"Type","to link heading":"to link heading","to link blocks":"to link blocks",Note:"Note","Blocks must have been created already":"Blocks must have been created already","There was an error parsing the JSON.":"There was an error parsing the JSON.","Execute Command":"Execute Command","The marker will execute an Obsidian command on click":"The marker will execute an Obsidian command on click","Command to Execute":"Command to Execute","Name of Obsidian Command to execute":"Name of Obsidian Command to execute",Command:"Command","Note to Open":"Note to Open","Path of note to open":"Path of note to open",Path:"Path","Marker Type":"Marker Type",Default:"Default","Display Tooltip":"Display Tooltip","Min Zoom":"Min Zoom","Only display when zooming in below this zoom. Current map minimum":"Only display when zooming in below this zoom. Current map minimum","Minimum zoom must be a number.":"Minimum zoom must be a number.","Max Zoom":"Max Zoom","Only display when zooming out above this zoom. Current map maximum":"Only display when zooming out above this zoom. Current map maximum","Maximum zoom must be a number.":"Maximum zoom must be a number.","Associate Tags":"Associate Tags","Markers created from this tag using ":"Markers created from this tag using "," will use this marker icon by default.":" will use this marker icon by default.","Delete Marker":"Delete Marker","Overlay Radius":"Overlay Radius","Circle radius in":"Circle radius in","Radius must be greater than 0.":"Radius must be greater than 0.","Overlay Description":"Overlay Description","Overlay Color":"Overlay Color","Delete Overlay":"Delete Overlay","File Name":"File Name","Enter a file name.":"Enter a file name.","Leaflet Map":"Leaflet Map",'Marker type "%1" does not exist, using default.':'Marker type "%1" does not exist, using default.',"There was an error saving the overlay.":"There was an error saving the overlay.","There was an error adding GeoJSON to map":"There was an error adding GeoJSON to map","There was an error adding GPX to map":"There was an error adding GPX to map","Edit Overlay":"Edit Overlay","Create Marker":"Create Marker","OpenStreetMap has restricted the use of its tile server in Obsidian. Your map may break at any time. Please switch to a different tile server.":"OpenStreetMap has restricted the use of its tile server in Obsidian. Your map may break at any time. Please switch to a different tile server.","There was an issue parsing the tile layer: %1":"There was an issue parsing the tile layer: %1","OpenStreetMap cannot be turned off without specifying additional tile servers.":"OpenStreetMap cannot be turned off without specifying additional tile servers.","No command found!":"No command found!","This marker cannot be edited because it was defined in the code block.":"This marker cannot be edited because it was defined in the code block.","This overlay cannot be edited because it was defined in the code block.":"This overlay cannot be edited because it was defined in the code block.","Edit Marker":"Edit Marker","Convert to Code Block":"Convert to Code Block","Leaflet: Could not create icon for %1 - does this type exist in settings?":"Leaflet: Could not create icon for %1 - does this type exist in settings?",Lat:"Lat",Lng:"Lng",Time:"Time",Elevation:"Elevation",Speed:"Speed",Pace:"Pace",Temperature:"Temperature","Heart Rate":"Heart Rate",Cadence:"Cadence",spm:"spm","Show All Markers":"Show All Markers","Reset View":"Reset View","Edit View Parameters":"Edit View Parameters","Save Parameters to View":"Save Parameters to View","Zoom to %1 GPX Track%2":"Zoom to %1 GPX Track%2",Heatlines:"Heatlines","Zoom to GPX":"Zoom to GPX",Deselect:"Deselect",All:"All",None:"None","Filter Markers":"Filter Markers","Bulk Edit Markers":"Bulk Edit Markers","Delete All":"Delete All",marker:"marker",markers:"markers","Add New":"Add New","There was an issue with the provided latitude.":"There was an issue with the provided latitude.","There was an issue with the provided longitude.":"There was an issue with the provided longitude.",Draw:"Draw",Polygon:"Polygon",Polyline:"Polyline",Rectangle:"Rectangle","Free Draw":"Free Draw","Delete Shapes":"Delete Shapes",Done:"Done",Text:"Text",Color:"Color","Fill Color":"Fill Color","Move Shapes":"Move Shapes","Export Drawing to GeoJSON":"Export Drawing to GeoJSON"}),be=window.localStorage.getItem("language"),we={en:ve,zh:{"Loading Obsidian Leaflet v%1":"加载Obsidian Leaflet版本 v%1","Open Leaflet Map":"打开 Leaflet 地图","Unloading Obsidian Leaflet":"卸载 Obsidian Leaflet 中","Obsidian Leaflet maps must have an ID.":"Obsidian Leaflet 地图必须包含 ID.","ID required":"ID 必填","There was an error saving into the configured directory.":"保存到配置的目录时出错.","Could not parse GeoJSON file":"无法解析 GeoJSON 文件","Could not parse overlay radius. Please make sure it is in the format ` `.":"无法解析覆盖半径. 请确保格式为 `<长度> <单位>`.","There was an error with the provided latitude. Using default.":"提供的纬度有误. 使用默认值.","There was an error with the provided longitude. Using default.":"提供的经度有误. 使用默认值.","There was an issue getting the image dimensions.":"获取图片尺寸时出错.","There was an error updating the marker for %1.":"更新 %1 的标记(marker)时出错","There was an error updating the marker type for %1.":"更新 %1 的标记类型(marker type)出现了错误","There was an error updating the markers for %1.":"更新 %1 的标记(markers)出现了错误","Coordinates copied to clipboard.":"坐标已复制到剪贴板.","There was an error trying to copy coordinates to clipboard.":"尝试复制坐标到剪贴板时出错.","There was an error rendering the map":"渲染地图时出错","Unparseable height provided.":"无法解析的高度(height).","There was a problem with the provided height. Using 500px.":"提供的显示高度(height)有误. 使用 500px.","Could not parse latitude":"无法解析纬度(latitude)","Could not parse longitude":"无法解析经度(longitude)","No data for marker %1.":"标记(marker) %1 没有数据","The `%1` field%2 can only be used with the Dataview plugin installed.":"只有安装了 Dataview 插件,才能使用`%1`字段`%2`","Could not parse location in %1":"无法解析 %1 中的位置","Could not parse map overlay length in %1. Please ensure it is in the format: ":"无法解析 %1 中的地图叠加层长度,请确保其格式为:<距离> <单位>","%1 overlay":"%1 叠加层","Could not parse %1 in %2. Please ensure it is in the format: ":"无法解析 %2 中的 %1,请确保其格式为:<距离> <单位>",meters:"米",petameters:"拍米",terameters:"太米",gigameters:"吉米",megameters:"兆米",kilometers:"千米",hectometers:"百米",decameters:"十米",decimeters:"分米",centimeters:"厘米",millimeters:"毫米",micrometers:"微米",nanometers:"纳米",picometers:"皮米",femtometers:"飞米",feet:"英尺",inches:"英寸",yards:"码",miles:"英里","nautical miles":"海里","Obsidian Leaflet Settings":"Obsidian Leaflet 设置","Default Map Marker":"默认地图标记","This marker is always available.":"此标记始终可用","Icon Name":"图标名称","A default marker must be defined.":"必须定义默认标记","The selected icon does not exist in Font Awesome Free.":"所选图标不存在于 Font Awesome Free 中","Upload Image":"上传图片","Marker Color":"标记颜色","Layer Base Marker":"图层基本标记","Use as base layer for additional markers by default.":"默认情况下,将其用作附加标记的基本图层","Additional Map Markers":"附加地图标记","Add Additional":"添加附加","These markers will be available in the right-click menu on the map.":"这些标记将在地图上的右键菜单可选","Default Latitude":"默认纬度","Real-world maps will open to this latitude if not specified.":"如果未指定,则使用此纬度作为默认值","Latitude must be a number.":"纬度必须是数字","Default Longitude":"默认经度","Real-world maps will open to this longitude if not specified.":"如果未指定,则使用此经度作为默认值","Longitude must be a number.":"经度必须是数字","Reset to Default":"重置为默认值","Please back up your data before changing this setting.":"在更改此设置之前,请先备份您的数据","Current directory":"当前目录","Default Config Directory":"默认配置目录","Default Marker Tooltip Behavior":"何时显示默认标记提示","New markers will be created to this setting by default. Can be overridden per-marker.":"新创建的标记将会加入到下面,在此处对不同的标记进行自定义设置提示方式",Always:"始终",Hover:"悬停",Never:"从不","Display Note Preview":"显示笔记预览","Markers linked to notes will show a note preview when hovered.":"当鼠标悬停在已经关联笔记的标记上时,会显示关联笔记的预览界面","Display Overlay Tooltips":"显示叠加层提示","Overlay tooltips will display when hovered.":"当鼠标悬停在叠加层上时显示提示","Copy Coordinates on Shift-Click":"Shift-单击鼠标左键 时复制坐标","Map coordinates will be copied to the clipboard when shift-clicking.":"当按下 Shift 并单击鼠标左键时,地图坐标将被复制到剪贴板","This setting is experimental and could cause marker data issues. Use at your own risk.":"此设置是实验性的,可能会导致标记数据出现问题,请自行承担风险。","Import Marker CSV File":"导入标记 CSV 文件","Choose File":"选择文件","Upload CSV File":"上传 CSV 文件","Map not specified for line %1":"第 %1 行未指定地图","Could not parse latitude for line %1":"无法解析第 %1 行的纬度1","Could not parse longitude for line %1":"无法解析第 %1 行的经度","Marker file successfully imported.":"标记文件已成功导入","There was an error while importing %1":"导入 %1 时出错","Export Marker Data":"导出标记数据","Export all marker data to a CSV file.":"将所有标记数据导出到 CSV 文件",Export:"导出","Enable Draw Mode by Default":"默认启用绘制模式","The draw control will be added to maps by default. Can be overridden with the draw map block parameter.":"默认情况下,地图会显示绘制控件,可以使用在地图参数配置中自定义关闭控件显示","Default Units":"默认单位","Select the default system of units for the map.":"选择地图的默认单位制","Default Tile Server":"默认瓦片服务器(Tile Server)","It is up to you to ensure you have proper access to this tile server.":"请确保您有权访问此瓦片服务器","Default Tile Server Attribution":"默认瓦片服务器版权描述","Please ensure your attribution meets all requirements set by the tile server.":"请确保您的版权符合瓦片服务器的所有要求,此段将显示在地图右下角","Default Tile Server (Dark Mode)":"默认瓦片服务器(暗黑主题模式)",Imperial:"英制",Metric:"公制","Only display when zooming out above this zoom.":"仅当缩放级别大于此缩放级别时显示","Only display when zooming in below this zoom.":"仅当缩放级别小于此缩放级别时显示",Reset:"重置为默认","Default Tile Server Subdomains":"默认瓦片服务器子域","Available subdomains for this tile server concurrent requests.":"瓦片服务器的子域列表,逗号','作为分隔符,如'a,b,c',主要用来并发请求瓦片服务器,将会替换在瓦片服务器的's'参数","Marker Name":"标记名称","Marker name already exists.":"标记名称已存在","Marker name cannot be empty.":"标记名称不能为空","Font Awesome icon name (e.g. map-marker).":"Font Awesome 图标名称(例如 map-marker)","Use Image for Icon":"使用图片作为图标","Layer Icon":"图标层","The icon will be layered on the base icon.":"图标将叠加在基础图标上","Override default icon color.":"覆盖默认图标颜色",Save:"保存","Marker type already exists.":"标记类型已存在","Invalid icon name.":"无效的图标名称","Icon cannot be empty.":"图标不能为空",Cancel:"取消",Type:"类型","to link heading":"链接标题","to link blocks":"链接块",Note:"注意","Blocks must have been created already":"块必须已经创建。","There was an error parsing the JSON.":"解析JSON时出错","Execute Command":"执行命令","The marker will execute an Obsidian command on click":"点击标记将执行Obsidian命令","Command to Execute":"要执行的命令","Name of Obsidian Command to execute":"要执行的Obsidian命令名称",Command:"命令","Note to Open":"要打开的笔记","Path of note to open":"要打开的笔记的路径",Path:"路径","Marker Type":"标记类型",Default:"默认","Display Tooltip":"显示提示信息","Min Zoom":"最小缩放级别","Only display when zooming in below this zoom. Current map minimum":"只有在缩放级别低于此级别时才显示。当前地图最小级别","Minimum zoom must be a number.":"最小缩放级别必须为数字","Max Zoom":"最大缩放级别","Only display when zooming out above this zoom. Current map maximum":"只有在缩放级别高于此级别时才显示,当前地图最大级别","Maximum zoom must be a number.":"最大缩放级别必须为数字","Associate Tags":"关联标签","Markers created from this tag using ":"属性"," will use this marker icon by default.":"指定tag中包含此处填写的tag,则从这个tag创建的地图标记将会使用当前标记图标","Delete Marker":"删除标记","Overlay Radius":"覆盖半径","Circle radius in":"圆的半径为","Radius must be greater than 0.":"半径必须大于0","Overlay Description":"覆盖说明","Overlay Color":"覆盖颜色","Delete Overlay":"删除覆盖","File Name":"文件名","Enter a file name.":"输入文件名。","Leaflet Map":"Leaflet 地图",'Marker type "%1" does not exist, using default.':'标记类型 "%1" 不存在,使用默认值',"There was an error saving the overlay.":"保存覆盖层时发生错误","There was an error adding GeoJSON to map":"将 GeoJSON 添加到地图时出错","There was an error adding GPX to map":"将 GPX 添加到地图时出错","Edit Overlay":"编辑覆盖层","Create Marker":"创建标记","OpenStreetMap has restricted the use of its tile server in Obsidian. Your map may break at any time. Please switch to a different tile server.":"OpenStreetMap已经限制了在Obsidian中使用其瓦片服务器。您的地图随时可能会出现问题。请切换到其他的瓦片服务器。","There was an issue parsing the tile layer: %1":"解析瓦片图层时出现问题:%1。","OpenStreetMap cannot be turned off without specifying additional tile servers.":"没有指定其他瓦片服务器的情况下,无法关闭OpenStreetMap。","No command found!":"未找到命令!","This marker cannot be edited because it was defined in the code block.":"此标记无法编辑,因为它已经在代码块中被使用","This overlay cannot be edited because it was defined in the code block.":"此覆盖层无法编辑,因为它已经在代码块中被使用","Edit Marker":"编辑标记","Convert to Code Block":"转换成代码块","Leaflet: Could not create icon for %1 - does this type exist in settings?":"Leaflet:无法为%1创建图标-在设置中是否存在此类型?",Lat:"纬度",Lng:"经度",Time:"时间",Elevation:"海拔高度",Speed:"速度",Pace:"配速",Temperature:"温度","Heart Rate":"心率",Cadence:"步频",spm:"spm","Show All Markers":"显示所有标记","Reset View":"重置视图","Edit View Parameters":"编辑视图参数","Save Parameters to View":"保存参数到视图","Zoom to %1 GPX Track%2":"缩放到 %1 条 GPX 轨迹%2",Heatlines:"热力线","Zoom to GPX":"缩放到 GPX",Deselect:"取消选择",All:"全部",None:"无","Filter Markers":"筛选标记","Bulk Edit Markers":"批量编辑标记","Delete All":"全部删除",marker:"标记",markers:"标记","Add New":"添加新的","There was an issue with the provided latitude.":"提供的纬度存在问题","There was an issue with the provided longitude.":"提供的经度存在问题",Draw:"绘制",Polygon:"多边形",Polyline:"折线",Rectangle:"矩形","Free Draw":"自由绘制","Delete Shapes":"删除形状",Done:"完成",Text:"文本",Color:"颜色","Fill Color":"填充颜色","Move Shapes":"移动形状","Export Drawing to GeoJSON":"导出绘制的GeoJSON"}}[be||"en"];function Ce(t,...e){let a=(we&&we[t])??ve[t]??t;for(let t=0;t{navigator.clipboard.writeText(`${ye(e.lat,4)}, ${ye(e.lng,4)}`).then((()=>{new t.Notice(Ce("Coordinates copied to clipboard.")),a()})).catch((()=>{new t.Notice(Ce("There was an error trying to copy coordinates to clipboard.")),i()}))}))}function Be(t,e,a){t&&console.log(`Obsidian Leaflet Map ${e}: ${a}`)}function ze(t){return ie()(t).hex()}function Ne(){return"ID_xyxyxyxyxyxy".replace(/[xy]/g,(function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))}const xe=function(t,e){if(t.inputEl.addClass("is-invalid"),e){t.inputEl.parentElement.addClasses(["has-invalid-message","unset-align-items"]),t.inputEl.parentElement.parentElement.addClass(".unset-align-items");let a=t.inputEl.parentElement.querySelector(".invalid-feedback");a||(a=createDiv({cls:"invalid-feedback"})),a.innerText=e,t.inputEl.parentNode.appendChild(a)}},De=function(t){t.inputEl.removeClass("is-invalid"),t.inputEl.parentElement.removeClasses(["has-invalid-message","unset-align-items"]),t.inputEl.parentElement.parentElement.removeClass(".unset-align-items"),t.inputEl.parentElement.children[1]&&t.inputEl.parentElement.removeChild(t.inputEl.parentElement.children[1])};function Ve(t){if(t){if(/(?:\[.*\]\(|\[\[)(.+)(?:\)|\]\])/.test(t)){const[e,a]=t.match(/(?:\[.*\]\(|\[\[)(.+)(?:\)|\]\])/)??[];return a}return t?.replace(/(\[|\])/g,"")}}const Me={meter:Ce("meters"),meters:Ce("meters"),metre:Ce("meters"),metres:Ce("meters"),m:Ce("meters"),petameter:Ce("petameters"),petametre:Ce("petameters"),petameters:Ce("petameters"),petametres:Ce("petameters"),Pm:Ce("petameters"),terameter:Ce("terameters"),terametre:Ce("terameters"),terameters:Ce("terameters"),terametres:Ce("terameters"),Tm:Ce("terameters"),gigameter:Ce("gigameters"),gigametre:Ce("gigameters"),gigameters:Ce("gigameters"),gigametres:Ce("gigameters"),Gm:Ce("gigameters"),megameter:Ce("megameters"),megametre:Ce("megameters"),megameters:Ce("megameters"),megametres:Ce("megameters"),Mm:Ce("megameters"),kilometer:Ce("kilometers"),kilometre:Ce("kilometers"),kilometers:Ce("kilometers"),kilometres:Ce("kilometers"),km:Ce("kilometers"),hectometer:Ce("hectometers"),hectometre:Ce("hectometers"),hectometers:Ce("hectometers"),hectometres:Ce("hectometers"),hm:Ce("hectometers"),decameter:Ce("decameters"),decametre:Ce("decameters"),decameters:Ce("decameters"),decametres:Ce("decameters"),dam:Ce("decameters"),decimeter:Ce("decimeters"),decimetre:Ce("decimeters"),decimeters:Ce("decimeters"),decimetres:Ce("decimeters"),dm:Ce("decimeters"),centimeter:Ce("centimeters"),centimetre:Ce("centimeters"),centimeters:Ce("centimeters"),centimetres:Ce("centimeters"),cm:Ce("centimeters"),millimeter:Ce("millimeters"),millimetre:Ce("millimeters"),millimeters:Ce("millimeters"),millimetres:Ce("millimeters"),mm:Ce("millimeters"),micrometer:Ce("micrometers"),micrometre:Ce("micrometers"),micrometers:Ce("micrometers"),micrometres:Ce("micrometers"),μm:Ce("micrometers"),nanometer:Ce("nanometers"),nanometre:Ce("nanometers"),nanometers:Ce("nanometers"),nanometres:Ce("nanometers"),nm:Ce("nanometers"),picometer:Ce("picometers"),picometre:Ce("picometers"),picometers:Ce("picometers"),picometres:Ce("picometers"),pm:Ce("picometers"),femtometer:Ce("femtometers"),femtometre:Ce("femtometers"),femtometers:Ce("femtometers"),femtometres:Ce("femtometers"),fm:Ce("femtometers"),foot:Ce("feet"),feet:Ce("feet"),ft:Ce("feet"),inch:Ce("inches"),inches:Ce("inches"),in:Ce("inches"),yard:Ce("yards"),yards:Ce("yards"),yd:Ce("yards"),mile:Ce("miles"),miles:Ce("miles"),mi:Ce("miles"),"nautical mile":Ce("nautical miles"),"nautical miles":Ce("nautical miles"),M:Ce("nautical miles"),NM:Ce("nautical miles"),nmi:Ce("nautical miles")},Se={meter:"metric",meters:"metric",metre:"metric",metres:"metric",m:"metric",petameter:"metric",petametre:"metric",petameters:"metric",petametres:"metric",Pm:"metric",terameter:"metric",terametre:"metric",terameters:"metric",terametres:"metric",Tm:"metric",gigameter:"metric",gigametre:"metric",gigameters:"metric",gigametres:"metric",Gm:"metric",megameter:"metric",megametre:"metric",megameters:"metric",megametres:"metric",Mm:"metric",kilometer:"metric",kilometre:"metric",kilometers:"metric",kilometres:"metric",km:"metric",hectometer:"metric",hectometre:"metric",hectometers:"metric",hectometres:"metric",hm:"metric",decameter:"metric",decametre:"metric",decameters:"metric",decametres:"metric",dam:"metric",decimeter:"metric",decimetre:"metric",decimeters:"metric",decimetres:"metric",dm:"metric",centimeter:"metric",centimetre:"metric",centimeters:"metric",centimetres:"metric",cm:"metric",millimeter:"metric",millimetre:"metric",millimeters:"metric",millimetres:"metric",mm:"metric",micrometer:"metric",micrometre:"metric",micrometers:"metric",micrometres:"metric",μm:"metric",nanometer:"metric",nanometre:"metric",nanometers:"metric",nanometres:"metric",nm:"metric",picometer:"metric",picometre:"metric",picometers:"metric",picometres:"metric",pm:"metric",femtometer:"metric",femtometre:"metric",femtometers:"metric",femtometres:"metric",fm:"metric",foot:"imperial",feet:"imperial",ft:"imperial",inch:"imperial",inches:"imperial",in:"imperial",yard:"imperial",yards:"imperial",yd:"imperial",mile:"imperial",miles:"imperial",mi:"imperial","nautical mile":"imperial","nautical miles":"imperial",M:"imperial",NM:"imperial",nmi:"imperial"};function ke(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Qe(t){return t instanceof ke(t).Element||t instanceof Element}function Ie(t){return t instanceof ke(t).HTMLElement||t instanceof HTMLElement}function Oe(t){return"undefined"!=typeof ShadowRoot&&(t instanceof ke(t).ShadowRoot||t instanceof ShadowRoot)}var Ee=Math.round;function Xe(t,e){void 0===e&&(e=!1);var a=t.getBoundingClientRect(),i=1,n=1;if(Ie(t)&&e){var s=t.offsetHeight,r=t.offsetWidth;r>0&&(i=a.width/r||1),s>0&&(n=a.height/s||1)}return{width:Ee(a.width/i),height:Ee(a.height/n),top:Ee(a.top/n),right:Ee(a.right/i),bottom:Ee(a.bottom/n),left:Ee(a.left/i),x:Ee(a.left/i),y:Ee(a.top/n)}}function Te(t){var e=ke(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Pe(t){return t?(t.nodeName||"").toLowerCase():null}function Fe(t){return((Qe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Ge(t){return Xe(Fe(t)).left+Te(t).scrollLeft}function Ke(t){return ke(t).getComputedStyle(t)}function Ue(t){var e=Ke(t),a=e.overflow,i=e.overflowX,n=e.overflowY;return/auto|scroll|overlay|hidden/.test(a+n+i)}function qe(t,e,a){void 0===a&&(a=!1);var i,n,s=Ie(e),r=Ie(e)&&function(t){var e=t.getBoundingClientRect(),a=e.width/t.offsetWidth||1,i=e.height/t.offsetHeight||1;return 1!==a||1!==i}(e),c=Fe(e),o=Xe(t,r),l={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(s||!s&&!a)&&(("body"!==Pe(e)||Ue(c))&&(l=(i=e)!==ke(i)&&Ie(i)?{scrollLeft:(n=i).scrollLeft,scrollTop:n.scrollTop}:Te(i)),Ie(e)?((h=Xe(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):c&&(h.x=Ge(c))),{x:o.left+l.scrollLeft-h.x,y:o.top+l.scrollTop-h.y,width:o.width,height:o.height}}function je(t){var e=Xe(t),a=t.offsetWidth,i=t.offsetHeight;return Math.abs(e.width-a)<=1&&(a=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:t.offsetLeft,y:t.offsetTop,width:a,height:i}}function Ye(t){return"html"===Pe(t)?t:t.assignedSlot||t.parentNode||(Oe(t)?t.host:null)||Fe(t)}function Re(t){return["html","body","#document"].indexOf(Pe(t))>=0?t.ownerDocument.body:Ie(t)&&Ue(t)?t:Re(Ye(t))}function We(t,e){var a;void 0===e&&(e=[]);var i=Re(t),n=i===(null==(a=t.ownerDocument)?void 0:a.body),s=ke(i),r=n?[s].concat(s.visualViewport||[],Ue(i)?i:[]):i,c=e.concat(r);return n?c:c.concat(We(Ye(r)))}function Ze(t){return["table","td","th"].indexOf(Pe(t))>=0}function Je(t){return Ie(t)&&"fixed"!==Ke(t).position?t.offsetParent:null}function _e(t){for(var e=ke(t),a=Je(t);a&&Ze(a)&&"static"===Ke(a).position;)a=Je(a);return a&&("html"===Pe(a)||"body"===Pe(a)&&"static"===Ke(a).position)?e:a||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Ie(t)&&"fixed"===Ke(t).position)return null;for(var a=Ye(t);Ie(a)&&["html","body"].indexOf(Pe(a))<0;){var i=Ke(a);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||e&&"filter"===i.willChange||e&&i.filter&&"none"!==i.filter)return a;a=a.parentNode}return null}(t)||e}var $e="top",ta="bottom",ea="right",aa="left",ia="auto",na=[$e,ta,ea,aa],sa="start",ra="end",ca="viewport",oa="popper",la=na.reduce((function(t,e){return t.concat([e+"-"+sa,e+"-"+ra])}),[]),ha=[].concat(na,[ia]).reduce((function(t,e){return t.concat([e,e+"-"+sa,e+"-"+ra])}),[]),ua=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function da(t){var e=new Map,a=new Set,i=[];function n(t){a.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!a.has(t)){var i=e.get(t);i&&n(i)}})),i.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){a.has(t.name)||n(t)})),i}var fa={placement:"bottom",modifiers:[],strategy:"absolute"};function pa(){for(var t=arguments.length,e=new Array(t),a=0;a=0?"x":"y"}function Aa(t){var e,a=t.reference,i=t.element,n=t.placement,s=n?ba(n):null,r=n?wa(n):null,c=a.x+a.width/2-i.width/2,o=a.y+a.height/2-i.height/2;switch(s){case $e:e={x:c,y:a.y-i.height};break;case ta:e={x:c,y:a.y+a.height};break;case ea:e={x:a.x+a.width,y:o};break;case aa:e={x:a.x-i.width,y:o};break;default:e={x:a.x,y:a.y}}var l=s?Ca(s):null;if(null!=l){var h="y"===l?"height":"width";switch(r){case sa:e[l]=e[l]-(a[h]/2-i[h]/2);break;case ra:e[l]=e[l]+(a[h]/2-i[h]/2)}}return e}const ya={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,a=t.name;e.modifiersData[a]=Aa({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}};var La=Math.max,Ha=Math.min,Ba=Math.round,za={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Na(t){var e,a=t.popper,i=t.popperRect,n=t.placement,s=t.variation,r=t.offsets,c=t.position,o=t.gpuAcceleration,l=t.adaptive,h=t.roundOffsets,u=!0===h?function(t){var e=t.x,a=t.y,i=window.devicePixelRatio||1;return{x:Ba(Ba(e*i)/i)||0,y:Ba(Ba(a*i)/i)||0}}(r):"function"==typeof h?h(r):r,d=u.x,f=void 0===d?0:d,p=u.y,m=void 0===p?0:p,g=r.hasOwnProperty("x"),v=r.hasOwnProperty("y"),b=aa,w=$e,C=window;if(l){var A=_e(a),y="clientHeight",L="clientWidth";A===ke(a)&&"static"!==Ke(A=Fe(a)).position&&"absolute"===c&&(y="scrollHeight",L="scrollWidth"),n!==$e&&(n!==aa&&n!==ea||s!==ra)||(w=ta,m-=A[y]-i.height,m*=o?1:-1),n!==aa&&(n!==$e&&n!==ta||s!==ra)||(b=ea,f-=A[L]-i.width,f*=o?1:-1)}var H,B=Object.assign({position:c},l&&za);return o?Object.assign({},B,((H={})[w]=v?"0":"",H[b]=g?"0":"",H.transform=(C.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",H)):Object.assign({},B,((e={})[w]=v?m+"px":"",e[b]=g?f+"px":"",e.transform="",e))}var xa={left:"right",right:"left",bottom:"top",top:"bottom"};function Da(t){return t.replace(/left|right|bottom|top/g,(function(t){return xa[t]}))}var Va={start:"end",end:"start"};function Ma(t){return t.replace(/start|end/g,(function(t){return Va[t]}))}function Sa(t,e){var a=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(a&&Oe(a)){var i=e;do{if(i&&t.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function ka(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Qa(t,e){return e===ca?ka(function(t){var e=ke(t),a=Fe(t),i=e.visualViewport,n=a.clientWidth,s=a.clientHeight,r=0,c=0;return i&&(n=i.width,s=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=i.offsetLeft,c=i.offsetTop)),{width:n,height:s,x:r+Ge(t),y:c}}(t)):Ie(e)?function(t){var e=Xe(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):ka(function(t){var e,a=Fe(t),i=Te(t),n=null==(e=t.ownerDocument)?void 0:e.body,s=La(a.scrollWidth,a.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),r=La(a.scrollHeight,a.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),c=-i.scrollLeft+Ge(t),o=-i.scrollTop;return"rtl"===Ke(n||a).direction&&(c+=La(a.clientWidth,n?n.clientWidth:0)-s),{width:s,height:r,x:c,y:o}}(Fe(t)))}function Ia(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Oa(t,e){return e.reduce((function(e,a){return e[a]=t,e}),{})}function Ea(t,e){void 0===e&&(e={});var a=e,i=a.placement,n=void 0===i?t.placement:i,s=a.boundary,r=void 0===s?"clippingParents":s,c=a.rootBoundary,o=void 0===c?ca:c,l=a.elementContext,h=void 0===l?oa:l,u=a.altBoundary,d=void 0!==u&&u,f=a.padding,p=void 0===f?0:f,m=Ia("number"!=typeof p?p:Oa(p,na)),g=h===oa?"reference":oa,v=t.rects.popper,b=t.elements[d?g:h],w=function(t,e,a){var i="clippingParents"===e?function(t){var e=We(Ye(t)),a=["absolute","fixed"].indexOf(Ke(t).position)>=0&&Ie(t)?_e(t):t;return Qe(a)?e.filter((function(t){return Qe(t)&&Sa(t,a)&&"body"!==Pe(t)})):[]}(t):[].concat(e),n=[].concat(i,[a]),s=n[0],r=n.reduce((function(e,a){var i=Qa(t,a);return e.top=La(i.top,e.top),e.right=Ha(i.right,e.right),e.bottom=Ha(i.bottom,e.bottom),e.left=La(i.left,e.left),e}),Qa(t,s));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}(Qe(b)?b:b.contextElement||Fe(t.elements.popper),r,o),C=Xe(t.elements.reference),A=Aa({reference:C,element:v,strategy:"absolute",placement:n}),y=ka(Object.assign({},v,A)),L=h===oa?y:C,H={top:w.top-L.top+m.top,bottom:L.bottom-w.bottom+m.bottom,left:w.left-L.left+m.left,right:L.right-w.right+m.right},B=t.modifiersData.offset;if(h===oa&&B){var z=B[n];Object.keys(H).forEach((function(t){var e=[ea,ta].indexOf(t)>=0?1:-1,a=[$e,ta].indexOf(t)>=0?"y":"x";H[t]+=z[a]*e}))}return H}const Xa={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,a=t.options,i=t.name;if(!e.modifiersData[i]._skip){for(var n=a.mainAxis,s=void 0===n||n,r=a.altAxis,c=void 0===r||r,o=a.fallbackPlacements,l=a.padding,h=a.boundary,u=a.rootBoundary,d=a.altBoundary,f=a.flipVariations,p=void 0===f||f,m=a.allowedAutoPlacements,g=e.options.placement,v=ba(g),b=o||(v!==g&&p?function(t){if(ba(t)===ia)return[];var e=Da(t);return[Ma(t),e,Ma(e)]}(g):[Da(g)]),w=[g].concat(b).reduce((function(t,a){return t.concat(ba(a)===ia?function(t,e){void 0===e&&(e={});var a=e,i=a.placement,n=a.boundary,s=a.rootBoundary,r=a.padding,c=a.flipVariations,o=a.allowedAutoPlacements,l=void 0===o?ha:o,h=wa(i),u=h?c?la:la.filter((function(t){return wa(t)===h})):na,d=u.filter((function(t){return l.indexOf(t)>=0}));0===d.length&&(d=u);var f=d.reduce((function(e,a){return e[a]=Ea(t,{placement:a,boundary:n,rootBoundary:s,padding:r})[ba(a)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}(e,{placement:a,boundary:h,rootBoundary:u,padding:l,flipVariations:p,allowedAutoPlacements:m}):a)}),[]),C=e.rects.reference,A=e.rects.popper,y=new Map,L=!0,H=w[0],B=0;B=0,V=D?"width":"height",M=Ea(e,{placement:z,boundary:h,rootBoundary:u,altBoundary:d,padding:l}),S=D?x?ea:aa:x?ta:$e;C[V]>A[V]&&(S=Da(S));var k=Da(S),Q=[];if(s&&Q.push(M[N]<=0),c&&Q.push(M[S]<=0,M[k]<=0),Q.every((function(t){return t}))){H=z,L=!1;break}y.set(z,Q)}if(L)for(var I=function(t){var e=w.find((function(e){var a=y.get(e);if(a)return a.slice(0,t).every((function(t){return t}))}));if(e)return H=e,"break"},O=p?3:1;O>0&&"break"!==I(O);O--);e.placement!==H&&(e.modifiersData[i]._skip=!0,e.placement=H,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Ta(t,e,a){return La(t,Ha(e,a))}function Pa(t,e,a){return void 0===a&&(a={x:0,y:0}),{top:t.top-e.height-a.y,right:t.right-e.width+a.x,bottom:t.bottom-e.height+a.y,left:t.left-e.width-a.x}}function Fa(t){return[$e,ea,ta,aa].some((function(e){return t[e]>=0}))}var Ga=ma({defaultModifiers:[va,ya,{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,a=t.options,i=a.gpuAcceleration,n=void 0===i||i,s=a.adaptive,r=void 0===s||s,c=a.roundOffsets,o=void 0===c||c,l={placement:ba(e.placement),variation:wa(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:n};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,Na(Object.assign({},l,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:o})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,Na(Object.assign({},l,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:o})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var a=e.styles[t]||{},i=e.attributes[t]||{},n=e.elements[t];Ie(n)&&Pe(n)&&(Object.assign(n.style,a),Object.keys(i).forEach((function(t){var e=i[t];!1===e?n.removeAttribute(t):n.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,a={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,a.popper),e.styles=a,e.elements.arrow&&Object.assign(e.elements.arrow.style,a.arrow),function(){Object.keys(e.elements).forEach((function(t){var i=e.elements[t],n=e.attributes[t]||{},s=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:a[t]).reduce((function(t,e){return t[e]="",t}),{});Ie(i)&&Pe(i)&&(Object.assign(i.style,s),Object.keys(n).forEach((function(t){i.removeAttribute(t)})))}))}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,a=t.options,i=t.name,n=a.offset,s=void 0===n?[0,0]:n,r=ha.reduce((function(t,a){return t[a]=function(t,e,a){var i=ba(t),n=[aa,$e].indexOf(i)>=0?-1:1,s="function"==typeof a?a(Object.assign({},e,{placement:t})):a,r=s[0],c=s[1];return r=r||0,c=(c||0)*n,[aa,ea].indexOf(i)>=0?{x:c,y:r}:{x:r,y:c}}(a,e.rects,s),t}),{}),c=r[e.placement],o=c.x,l=c.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=o,e.modifiersData.popperOffsets.y+=l),e.modifiersData[i]=r}},Xa,{name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,a=t.options,i=t.name,n=a.mainAxis,s=void 0===n||n,r=a.altAxis,c=void 0!==r&&r,o=a.boundary,l=a.rootBoundary,h=a.altBoundary,u=a.padding,d=a.tether,f=void 0===d||d,p=a.tetherOffset,m=void 0===p?0:p,g=Ea(e,{boundary:o,rootBoundary:l,padding:u,altBoundary:h}),v=ba(e.placement),b=wa(e.placement),w=!b,C=Ca(v),A="x"===C?"y":"x",y=e.modifiersData.popperOffsets,L=e.rects.reference,H=e.rects.popper,B="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,z={x:0,y:0};if(y){if(s||c){var N="y"===C?$e:aa,x="y"===C?ta:ea,D="y"===C?"height":"width",V=y[C],M=y[C]+g[N],S=y[C]-g[x],k=f?-H[D]/2:0,Q=b===sa?L[D]:H[D],I=b===sa?-H[D]:-L[D],O=e.elements.arrow,E=f&&O?je(O):{width:0,height:0},X=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},T=X[N],P=X[x],F=Ta(0,L[D],E[D]),G=w?L[D]/2-k-F-T-B:Q-F-T-B,K=w?-L[D]/2+k+F+P+B:I+F+P+B,U=e.elements.arrow&&_e(e.elements.arrow),q=U?"y"===C?U.clientTop||0:U.clientLeft||0:0,j=e.modifiersData.offset?e.modifiersData.offset[e.placement][C]:0,Y=y[C]+G-j-q,R=y[C]+K-j;if(s){var W=Ta(f?Ha(M,Y):M,V,f?La(S,R):S);y[C]=W,z[C]=W-V}if(c){var Z="x"===C?$e:aa,J="x"===C?ta:ea,_=y[A],$=_+g[Z],tt=_-g[J],et=Ta(f?Ha($,Y):$,_,f?La(tt,R):tt);y[A]=et,z[A]=et-_}}e.modifiersData[i]=z}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,a=t.state,i=t.name,n=t.options,s=a.elements.arrow,r=a.modifiersData.popperOffsets,c=ba(a.placement),o=Ca(c),l=[aa,ea].indexOf(c)>=0?"height":"width";if(s&&r){var h=function(t,e){return Ia("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Oa(t,na))}(n.padding,a),u=je(s),d="y"===o?$e:aa,f="y"===o?ta:ea,p=a.rects.reference[l]+a.rects.reference[o]-r[o]-a.rects.popper[l],m=r[o]-a.rects.reference[o],g=_e(s),v=g?"y"===o?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,w=h[d],C=v-u[l]-h[f],A=v/2-u[l]/2+b,y=Ta(w,A,C),L=o;a.modifiersData[i]=((e={})[L]=y,e.centerOffset=y-A,e)}},effect:function(t){var e=t.state,a=t.options.element,i=void 0===a?"[data-popper-arrow]":a;null!=i&&("string"!=typeof i||(i=e.elements.popper.querySelector(i)))&&Sa(e.elements.popper,i)&&(e.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,a=t.name,i=e.rects.reference,n=e.rects.popper,s=e.modifiersData.preventOverflow,r=Ea(e,{elementContext:"reference"}),c=Ea(e,{altBoundary:!0}),o=Pa(r,i),l=Pa(c,n,s),h=Fa(o),u=Fa(l);e.modifiersData[a]={referenceClippingOffsets:o,popperEscapeOffsets:l,isReferenceHidden:h,hasPopperEscaped:u},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":u})}}]});class Ka{constructor(t,e,a){this.containerEl=e,this.owner=t,e.on("click",".suggestion-item",this.onSuggestionClick.bind(this)),e.on("mousemove",".suggestion-item",this.onSuggestionMouseover.bind(this)),a.register([],"ArrowUp",(()=>(this.setSelectedItem(this.selectedItem-1,!0),!1))),a.register([],"ArrowDown",(()=>(this.setSelectedItem(this.selectedItem+1,!0),!1))),a.register([],"Enter",(t=>(this.useSelectedItem(t),!1))),a.register([],"Tab",(t=>(this.chooseSuggestion(t),!1)))}chooseSuggestion(t){if(!this.items||!this.items.length)return;const e=this.items[this.selectedItem];e&&this.owner.onChooseSuggestion(e,t)}onSuggestionClick(t,e){if(t.preventDefault(),!this.suggestions||!this.suggestions.length)return;const a=this.suggestions.indexOf(e);this.setSelectedItem(a,!1),this.useSelectedItem(t)}onSuggestionMouseover(t,e){if(!this.suggestions||!this.suggestions.length)return;const a=this.suggestions.indexOf(e);this.setSelectedItem(a,!1)}empty(){this.containerEl.empty()}setSuggestions(t){this.containerEl.empty();const e=[];t.forEach((t=>{const a=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(t,a),e.push(a)})),this.items=t,this.suggestions=e,this.setSelectedItem(0,!1)}useSelectedItem(t){if(!this.items||!this.items.length)return;const e=this.items[this.selectedItem];e&&this.owner.selectSuggestion(e,t)}wrap(t,e){return(t%e+e)%e}setSelectedItem(t,e){const a=this.wrap(t,this.suggestions.length),i=this.suggestions[this.selectedItem],n=this.suggestions[a];i&&i.removeClass("is-selected"),n&&n.addClass("is-selected"),this.selectedItem=a,e&&n.scrollIntoView(!1)}}class Ua extends t.FuzzySuggestModal{constructor(e,a,i){super(e),this.items=[],this.scope=new t.Scope(this.app.scope),this.emptyStateText="No match found",this.limit=100,this.inputEl=a,this.items=i,this.suggestEl=createDiv("suggestion-container"),this.contentEl=this.suggestEl.createDiv("suggestion"),this.suggester=new Ka(this,this.contentEl,this.scope),this.scope.register([],"Escape",this.onEscape.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onFocus.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",(t=>{t.preventDefault()}))}empty(){this.suggester.empty()}onInputChanged(){if(this.shouldNotOpen)return;const t=this.modifyInput(this.inputEl.value),e=this.getSuggestions(t);e.length>0?this.suggester.setSuggestions(e.slice(0,this.limit)):this.onNoSuggestion(),this.open()}onFocus(){this.shouldNotOpen=!1,this.onInputChanged()}modifyInput(t){return t}onNoSuggestion(){this.empty(),this.renderSuggestion(null,this.contentEl.createDiv("suggestion-item"))}open(){this.app.keymap.pushScope(this.scope),document.body.appendChild(this.suggestEl),this.popper=Ga(this.inputEl,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,10]}},{name:"flip",options:{fallbackPlacements:["top"]}}]})}onEscape(){this.close(),this.shouldNotOpen=!0}close(){this.app.keymap.popScope(this.scope),this.suggester.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}createPrompt(t){this.promptEl||(this.promptEl=this.suggestEl.createDiv("prompt-instructions"));let e=this.promptEl.createDiv("prompt-instruction");for(let a of t)e.appendChild(a)}}class qa extends Ua{constructor(t,e,a){super(t,e.inputEl,a),this.files=[...a],this.text=e,this.createPrompts(),this.inputEl.addEventListener("input",this.getFile.bind(this))}createPrompts(){this.createPrompt([createSpan({cls:"prompt-instruction-command",text:Ce("Type")+" #"}),createSpan({text:"to link heading"})]),this.createPrompt([createSpan({cls:"prompt-instruction-command",text:Ce("Type")+" ^"}),createSpan({text:"to link blocks"})]),this.createPrompt([createSpan({cls:"prompt-instruction-command",text:Ce("Note")+": "}),createSpan({text:Ce("Blocks must have been created already")})])}getFile(){const t=this.inputEl.value,e=this.app.metadataCache.getFirstLinkpathDest(t.split(/[\^#]/).shift()||"","");e!=this.file&&(this.file=e,this.file&&(this.cache=this.app.metadataCache.getFileCache(this.file)),this.onInputChanged())}getItemText(e){return e instanceof t.TFile?e.path:Object.prototype.hasOwnProperty.call(e,"heading")?e.heading:Object.prototype.hasOwnProperty.call(e,"id")?e.id:void 0}onChooseItem(e){e instanceof t.TFile?(this.text.setValue(e.basename),this.file=e,this.cache=this.app.metadataCache.getFileCache(this.file)):Object.prototype.hasOwnProperty.call(e,"heading")?this.text.setValue(this.file.basename+"#"+e.heading):Object.prototype.hasOwnProperty.call(e,"id")&&this.text.setValue(this.file.basename+"^"+e.id)}selectSuggestion({item:e}){let a;e instanceof t.TFile?a=e.basename:Object.prototype.hasOwnProperty.call(e,"heading")?a=this.file.basename+"#"+e.heading:Object.prototype.hasOwnProperty.call(e,"id")&&(a=this.file.basename+"^"+e.id),this.text.setValue(a),this.onClose(),this.close()}renderSuggestion(e,a){let{item:i,match:n}=e||{},s=a.createDiv({cls:"suggestion-content"});if(!i)return s.setText(this.emptyStateText),void s.parentElement.addClass("is-selected");if(i instanceof t.TFile){let t=i.path.length-i.name.length;const e=n.matches.map((t=>createSpan("suggestion-highlight")));for(let a=t;at[0]===a));if(t){let r=e[n.matches.indexOf(t)];s.appendChild(r),r.appendText(i.path.substring(t[0],t[1])),a+=t[1]-t[0]-1}else s.appendText(i.path[a])}a.createDiv({cls:"suggestion-note",text:i.path})}else Object.prototype.hasOwnProperty.call(i,"heading")?(s.setText(i.heading),s.prepend(createSpan({cls:"suggestion-flair",text:`H${i.level}`}))):Object.prototype.hasOwnProperty.call(i,"id")&&s.setText(i.id)}get headings(){return this.file?(this.cache||(this.cache=this.app.metadataCache.getFileCache(this.file)),this.cache.headings||[]):[]}get blocks(){return this.file?(this.cache||(this.cache=this.app.metadataCache.getFileCache(this.file)),Object.values(this.cache.blocks||{})||[]):[]}getItems(){const t=this.inputEl.value;return/#/.test(t)?(this.modifyInput=t=>t.split(/#/).pop(),this.headings):/\^/.test(t)?(this.modifyInput=t=>t.split(/\^/).pop(),this.blocks):this.files}}class ja extends Ua{constructor(t,e,a){super(t,e.inputEl,a),this.folders=[...a],this.text=e,this.inputEl.addEventListener("input",(()=>this.getFolder()))}getFolder(){const e=this.inputEl.value,a=this.app.vault.getAbstractFileByPath(e);a!=this.folder&&a instanceof t.TFolder&&(this.folder=a,this.onInputChanged())}getItemText(t){return t.path}onChooseItem(t){this.text.setValue(t.path),this.folder=t}selectSuggestion({item:t}){let e=t.path;this.text.setValue(e),this.onClose(),this.close()}renderSuggestion(t,e){let{item:a,match:i}=t||{},n=e.createDiv({cls:"suggestion-content"});if(!a)return n.setText(this.emptyStateText),void n.parentElement.addClass("is-selected");let s=a.path.length-a.name.length;const r=i.matches.map((t=>createSpan("suggestion-highlight")));for(let t=s;te[0]===t));if(e){let s=r[i.matches.indexOf(e)];n.appendChild(s),s.appendText(a.path.substring(e[0],e[1])),t+=e[1]-e[0]-1}else n.appendText(a.path[t])}e.createDiv({cls:"suggestion-note",text:a.path})}getItems(){return this.folders}}class Ya extends Ua{constructor(t,e,a){super(t,e.inputEl,a),this.icons=[...a],this.text=e,this.createPrompts(),this.inputEl.addEventListener("input",this.getItem.bind(this))}createPrompts(){}getItem(){const t=this.inputEl.value,e=this.icons.find((e=>e===t.trim()));e!=this.icon&&(this.icon=e,this.icons&&this.onInputChanged())}getItemText(t){return t}onChooseItem(t){this.text.setValue(t),this.icon=t}selectSuggestion({item:t}){this.text.setValue(t),this.onClose(),this.close()}renderSuggestion(t,e){let{item:a,match:i}=t||{},n=e.createDiv({cls:"suggestion-content icon"});if(!a)return n.setText(this.emptyStateText),void n.parentElement.addClass("is-selected");const s=i.matches.map((t=>createSpan("suggestion-highlight")));for(let t=0;te[0]===t));if(e){let r=s[i.matches.indexOf(e)];n.appendChild(r),r.appendText(a.substring(e[0],e[1])),t+=e[1]-e[0]-1}else n.appendText(a[t])}const r=createDiv({cls:"suggestion-flair"});r.appendChild(Ut(Pt({iconName:a,prefix:"fas"})).node[0]),n.prepend(r)}getItems(){return this.icons}}class Ra extends Ua{constructor(t,e,a){super(t,e.inputEl,a),this.commands=[...a],this.text=e,this.createPrompts(),this.inputEl.addEventListener("input",this.getItem.bind(this))}createPrompts(){}getItem(){const t=this.inputEl.value,e=this.commands.find((e=>e.name===t.trim()||e.id===t.trim()));e!=this.command&&(this.command=e,this.command&&this.onInputChanged())}getItemText(t){return t.name+t.id}onChooseItem(t){this.text.setValue(t.name),this.command=t}selectSuggestion({item:t}){t.id,this.text.setValue(t.name),this.onClose(t),this.close()}renderSuggestion(t,e){let{item:a,match:i}=t||{},n=e.createDiv({cls:"suggestion-content"});if(!a)return n.setText(this.emptyStateText),void n.parentElement.addClass("is-selected");const s=i.matches.map((t=>createSpan("suggestion-highlight")));for(let t=0;te[0]===t));if(e){let r=s[i.matches.indexOf(e)];n.appendChild(r),r.appendText(a.name.substring(e[0],e[1])),t+=e[1]-e[0]-1}else n.appendText(a.name[t])}let r=e.createDiv({cls:"suggestion-note"});for(let t=a.name.length;te[0]===t));if(e){let n=s[i.matches.indexOf(e)];r.appendChild(n),n.appendText(a.id.substring(e[0]-a.name.length,e[1]-a.name.length)),t+=e[1]-e[0]-1}else r.appendText(a.id[t-a.name.length])}}getItems(){return this.commands}onClose(t){}}const Wa=window.moment.locale;class Za extends t.Modal{constructor(t,e){super(e.plugin.app),this.marker=t,this.map=e,this.deleted=!1,this.limit=100,this.advanced=!1,this.marker=t,this.map=e,this.tempMarker=Object.assign(Object.create(Object.getPrototypeOf(this.marker)),this.marker),this.modal&&this.modal.close()}async display(){this.contentEl.empty(),new t.Setting(this.contentEl).setName(Ce("Marker Type")).addDropdown((t=>{t.addOption("default",Ce("Default")),this.map.markerIcons.forEach((e=>{t.addOption(e.type,e.type[0].toUpperCase()+e.type.slice(1).toLowerCase())})),t.setValue(this.marker.type).onChange((async t=>{let e="default"==t?this.map.data.defaultMarker:this.map.markerIcons.get(t);this.tempMarker.type=e.type}))})),this.tempMarker.command?new t.Setting(this.contentEl).setName(Ce("Command to Execute")).setDesc(Ce("Name of Obsidian Command to execute")).addText((t=>{let e=this.app.commands.listCommands(),a=e.find((({id:t})=>t==this.marker.link))?.name??this.marker.link;t.setPlaceholder(Ce("Command")).setValue(a),this.modal=new Ra(this.app,t,[...e]),this.modal.onClose=t=>{this.tempMarker.link=t.id},t.inputEl.onblur=async()=>{this.tempMarker.link=e.find((({name:e,id:a})=>e==t.inputEl.value||a==t.inputEl.value))?.id??t.inputEl.value}})):new t.Setting(this.contentEl).setName(Ce("Note to Open")).setDesc(Ce("Path of note to open")).addText((t=>{let e=this.app.vault.getFiles();t.setPlaceholder(Ce("Path")).setValue(this.marker.link),this.modal=new qa(this.app,t,[...e]),this.modal.onClose=async()=>{this.tempMarker.link=t.inputEl.value},t.inputEl.onblur=async()=>{this.tempMarker.link=t.inputEl.value}})),new t.Setting(this.contentEl).setName("Description").addTextArea((t=>t.setValue(this.tempMarker.description).onChange((t=>this.tempMarker.description=t)))),new t.Setting(this.contentEl).setName("Show Advanced Options").addToggle((t=>t.setValue(this.advanced).onChange((t=>{this.advanced=t,this.display()})))),this.advanced&&(new t.Setting(this.contentEl).setName(Ce("Execute Command")).setDesc(Ce("The marker will execute an Obsidian command on click")).addToggle((t=>{t.setValue(this.tempMarker.command||!1).onChange((t=>{this.tempMarker.command=t,this.tempMarker.link="",this.display()}))})),new t.Setting(this.contentEl).setName(Ce("Display Tooltip")).addDropdown((t=>{t.addOption("hover",Ce("Hover")),t.addOption("always",Ce("Always")),t.addOption("never",Ce("Never")),t.setValue(this.tempMarker.tooltip??"hover").onChange((async t=>{this.tempMarker.tooltip=t}))})),new t.Setting(this.contentEl).setName(Ce("Min Zoom")).setDesc(Ce("Only display when zooming in below this zoom. Current map minimum")+": "+this.map.zoom.min).addText((e=>{let a=!1;e.inputEl.onkeydown=e=>{if(!/^(\d*\.?\d*|Backspace|Delete|Arrow\w+|\-|Tab)$/.test(e.key))return a||(a=!0,new t.Notice(Ce("Minimum zoom must be a number."))),e.preventDefault(),!1},null!=this.tempMarker.minZoom&&e.setValue(`${this.tempMarker.minZoom}`),e.onChange((t=>{this.tempMarker.minZoom=Number(t)}))})),new t.Setting(this.contentEl).setName(Ce("Max Zoom")).setDesc(Ce("Only display when zooming out above this zoom. Current map maximum")+": "+this.map.zoom.max).addText((e=>{let a=!1;e.inputEl.onkeydown=e=>{if(!/^(\d*\.?\d*|Backspace|Delete|Arrow\w+|\-|Tab)$/.test(e.key))return a||(a=!0,new t.Notice(Ce("Maximum zoom must be a number."))),e.preventDefault(),!1},e.onChange((t=>{this.tempMarker.maxZoom=Number(t)})),null!=this.tempMarker.maxZoom&&e.setValue(`${this.tempMarker.maxZoom}`)}))),new t.Setting(this.contentEl).addButton((t=>(t.setIcon("trash").setWarning().setTooltip(Ce("Delete Marker")).onClick((()=>{this.deleted=!0,this.close()})),t)))}onOpen(){this.display()}}class Ja extends t.Modal{constructor(t,e){super(e.plugin.app),this.map=e,this.deleted=!1,this.limit=100,this.map=e,this.tempOverlay=Object.assign({},t.data),this.modal&&this.modal.close()}async display(){let e;this.contentEl.empty();let a=this.tempOverlay.radius;"image"==this.map.type&&(a*=this.map.scale),new t.Setting(this.contentEl).setName(Ce("Overlay Radius")).setDesc(`${Ce("Circle radius in")} ${Me[this.tempOverlay.unit]??Ce("meters")}.`).addText((t=>{e=t;const i=new RegExp(`\\${n=Wa(),Intl.NumberFormat(n).formatToParts(1000.1).find((t=>"group"===t.type)).value??","}`,"g");var n;t.setValue(`${ye(a,1).toString().replace(i,"")}`),t.inputEl.onblur=()=>{if(isNaN(Number(t.inputEl.value))&&Number(t.inputEl.value)>0)return xe(e,Ce("Radius must be greater than 0.")),void(t.inputEl.value=`${a}`);De(e),this.tempOverlay.radius=Number(t.inputEl.value)}})),new t.Setting(this.contentEl).setName(Ce("Overlay Description")).addText((t=>{t.setValue(this.tempOverlay.desc).onChange((t=>{this.tempOverlay.desc=t}))}));const i=new t.Setting(this.contentEl).setName(Ce("Overlay Color"));let n=this.tempOverlay.color;if(!/#\w{3,6}/.test(n)){const t=createEl("canvas").getContext("2d");t.fillStyle=n,n=t.fillStyle}let s=i.controlEl.createEl("input",{attr:{type:"color",value:n}});s.oninput=t=>{this.tempOverlay.color=t.target.value},s.onchange=async t=>{this.tempOverlay.color=t.target.value,this.display()},new t.Setting(this.contentEl).setName(Ce("Display Tooltip")).addDropdown((t=>{t.addOption("hover",Ce("Hover")),t.addOption("never",Ce("Never")),t.setValue(this.tempOverlay.tooltip??"hover").onChange((t=>{this.tempOverlay.tooltip=t}))})),new t.Setting(this.contentEl).addButton((t=>(t.setIcon("trash").setWarning().setTooltip(Ce("Delete Overlay")).onClick((()=>{this.deleted=!0,this.close()})),t)))}onOpen(){this.display()}}class _a extends t.Modal{constructor(t,e,a){super(t),this.saved=!1,this.marker=a,this.plugin=e,this.tempMarker={...this.marker},this.tempMarker.tags||(this.tempMarker.tags=[]),this.containerEl.addClass("leaflet-settings-modal")}get data(){return this.plugin.data}async display(e){let a=this.contentEl;a.empty();let i=a.createDiv(),n=i.createDiv();n.addClass("marker-creation-modal");let s,r,c=n.createDiv(),o=n.createDiv("icon-display"),l=new t.Setting(c).setName(Ce("Marker Name")).addText((t=>{s=t.setPlaceholder(Ce("Marker Name")).setValue(this.tempMarker.type),s.onChange((t=>{this.data.markerIcons.find((e=>e.type==t))&&this.tempMarker.type!=this.marker.type?xe(s,Ce("Marker name already exists.")):0!=t.length?(De(s),this.tempMarker.type=t):xe(s,Ce("Marker name cannot be empty."))}))})),h=new t.Setting(c).setName(Ce("Icon Name")).setDesc(Ce("Font Awesome icon name (e.g. map-marker).")).addText((t=>{t.setPlaceholder(Ce("Icon Name")).setValue(this.tempMarker.isImage?"":this.tempMarker.iconName);const e=async()=>{const e=t.inputEl.value;e.length?Pt({iconName:e,prefix:"fas"})?(De(t),this.tempMarker.iconName=e,this.tempMarker.isImage=!1,delete this.tempMarker.imageUrl,await this.plugin.saveSettings(),this.display()):xe(t,Ce("The selected icon does not exist in Font Awesome Free.")):xe(t,Ce("A default marker must be defined."))};new Ya(this.app,t,Jt).onClose=e,t.inputEl.onblur=e,r=t}));const u=createEl("input",{attr:{type:"file",name:"image",accept:"image/*"}});if(new t.Setting(c).setName(Ce("Use Image for Icon")).addButton((t=>{t.setButtonText(Ce("Upload Image")).setTooltip(Ce("Upload Image")),t.buttonEl.addClass("leaflet-file-upload"),t.buttonEl.appendChild(u),t.onClick((()=>u.click()))})),u.onchange=async()=>{const{files:t}=u;if(!t.length)return;const e=t[0],a=new FileReader;a.onloadend=t=>{var e=new Image;e.onload=()=>{this.canvas=o.createEl("canvas");const t=24;let a=e.width,i=e.height;a>=i&&a>t?(i*=t/a,a=t):i>=a&&i>t&&(a*=t/i,i=t),this.canvas.width=a,this.canvas.height=i,this.canvas.getContext("2d").drawImage(e,0,0,a,i),this.tempMarker.isImage=!0,this.tempMarker.imageUrl=this.canvas.toDataURL("image/png"),this.display()},e.src=t.target.result.toString()},a.readAsDataURL(e),u.value=null},!this.tempMarker.isImage){if(this.tempMarker.iconName){const t=this.tempMarker.layer&&!this.data.defaultMarker.isImage?{transform:this.tempMarker.transform,mask:_t(this.data.defaultMarker.iconName),classes:["full-width-height"]}:{classes:["full-width-height"]};let e=ee(this.tempMarker,t).node;e.style.color=this.tempMarker.color?this.tempMarker.color:this.data.defaultMarker.color;let a=l.settingEl.getBoundingClientRect().height+h.settingEl.getBoundingClientRect().height;if(o.setAttribute("style",`height: ${a}px; padding: 1rem; position: relative;`),o.appendChild(e),this.tempMarker.layer){let t=Ut(_t(this.tempMarker.iconName),{transform:this.tempMarker.transform}).node[0].children[0],e=t.getElementsByTagName("path")[0],a=this.getFillColor(this.modalEl);e.setAttribute("fill",a[0]),e.setAttribute("fill-opacity","1"),e.setAttribute("stroke-width","1px"),e.setAttribute("stroke","black"),e.setAttribute("stroke-dasharray","50,50");let i=t.children[0],n=o.getElementsByTagName("svg")[0],s=document.createElementNS("http://www.w3.org/2000/svg","path"),r=document.createElementNS("http://www.w3.org/2000/svg","path");s.setAttribute("stroke","red"),s.setAttribute("stroke-width","0"),s.setAttribute("d","M192,0 L192,512"),r.setAttribute("stroke","red"),r.setAttribute("stroke-width","0"),r.setAttribute("d","M0,256 L384,256"),n.appendChild(s),n.appendChild(r);let c={width:32,height:32};n.appendChild(t),t.transform.baseVal.getItem(0).setTranslate(192,256);let l,h=!1,u={x:0,y:0};this.plugin.registerDomEvent(t,"mousedown",(t=>{let e=n.getScreenCTM();u={x:(t.clientX-e.e)/e.a,y:(t.clientY-e.f)/e.d};let a=i.transform.baseVal;if(0===a.numberOfItems||a.getItem(0).type!=SVGTransform.SVG_TRANSFORM_TRANSLATE){let t=n.createSVGTransform();t.setTranslate(0,0),i.transform.baseVal.insertItemBefore(t,0)}l=a.getItem(0),u.x-=l.matrix.e,u.y-=l.matrix.f,h=!0})),this.plugin.registerDomEvent(this.containerEl,"mouseup",(t=>{u={x:0,y:0},s.setAttribute("stroke-width","0"),r.setAttribute("stroke-width","0"),h=!1})),this.plugin.registerDomEvent(t,"mousemove",(t=>{if(h){t.preventDefault();let e=n.getScreenCTM(),a={x:(t.clientX-e.e)/e.a,y:(t.clientY-e.f)/e.d},i=a.x-u.x,o=a.y-u.y;Math.abs(i)<=32&&t.shiftKey?(s.setAttribute("stroke-width","8"),i=0):s.setAttribute("stroke-width","0"),Math.abs(o)<=32&&t.shiftKey?(r.setAttribute("stroke-width","8"),o=0):r.setAttribute("stroke-width","0"),l.setTranslate(i,o),this.tempMarker.transform.x=l.matrix.e/c.width,this.tempMarker.transform.y=l.matrix.f/c.height}}))}}new t.Setting(i).setName(Ce("Layer Icon")).setDesc(Ce("The icon will be layered on the base icon.")).addToggle((t=>{t.setValue(this.tempMarker.layer).onChange((t=>{this.tempMarker.layer=t,this.display()}))}));let e=new t.Setting(i).setName(Ce("Marker Color")).setDesc(Ce("Override default icon color.")),a=e.controlEl.createEl("input",{attr:{type:"color",value:this.tempMarker.color}});a.oninput=t=>{this.tempMarker.color=t.target.value,o.children.length&&(o.children[0].style.color=`${this.tempMarker.color}`)},a.onchange=async t=>{this.tempMarker.color=t.target.value,this.display()},e.addSlider((t=>t.setLimits(0,1,.01).setValue(1).onChange((t=>{this.tempMarker.alpha=t,o.children.length&&(o.children[0].style.opacity=`${this.tempMarker.alpha}`)}))))}new t.Setting(i).setName(Ce("Min Zoom")).setDesc(Ce("Only display when zooming in below this zoom.")).addText((e=>{let a=!1;e.inputEl.onkeydown=e=>{if(!/^(\d*\.?\d*|Backspace|Delete|Arrow\w+|\-|Tab)$/.test(e.key))return a||(a=!0,new t.Notice(Ce("Minimum zoom must be a number."))),e.preventDefault(),!1},null!=this.tempMarker.minZoom&&e.setValue(`${this.tempMarker.minZoom}`),e.onChange((t=>{this.tempMarker.minZoom=Number(t)}))})),new t.Setting(i).setName(Ce("Max Zoom")).setDesc(Ce("Only display when zooming out above this zoom.")).addText((e=>{let a=!1;e.inputEl.onkeydown=e=>{if(!/^(\d*\.?\d*|Backspace|Delete|Arrow\w+|\-|Tab)$/.test(e.key))return a||(a=!0,new t.Notice(Ce("Maximum zoom must be a number."))),e.preventDefault(),!1},e.onChange((t=>{this.tempMarker.maxZoom=Number(t)})),null!=this.tempMarker.maxZoom&&e.setValue(`${this.tempMarker.maxZoom}`)})),this.buildTags(i.createDiv("additional-markers-container"));let d=new t.Setting(i);if(this.tempMarker.isImage)if(this.canvas)o.appendChild(this.canvas);else{this.canvas=o.createEl("canvas");let t=new Image;t.src=this.tempMarker.imageUrl,this.canvas.style.width="100%",this.canvas.style.height="100%",this.canvas.width=this.canvas.offsetWidth,this.canvas.height=this.canvas.offsetHeight;let e=t.width,a=t.height;ethis.canvas.width&&(a*=this.canvas.width/e,e=this.canvas.width):a>this.canvas.height&&(e*=this.canvas.height/a,a=this.canvas.height),this.canvas.getContext("2d").drawImage(t,0,0,e-4,a-4)}d.addButton((t=>{let e=t.setTooltip(Ce("Save")).onClick((async()=>{let t=!1;this.data.markerIcons.find((t=>t.type==this.tempMarker.type))&&this.tempMarker.type!=this.marker.type&&(xe(s,Ce("Marker type already exists.")),t=!0),0==this.tempMarker.type.length&&(xe(s,Ce("Marker name cannot be empty.")),t=!0),Pt({iconName:r.inputEl.value,prefix:"fas"})||this.tempMarker.isImage||(xe(r,Ce("Invalid icon name.")),t=!0),this.tempMarker.iconName||this.tempMarker.isImage||(xe(r,Ce("Icon cannot be empty.")),t=!0),t||(this.marker.type=this.tempMarker.type,this.marker.iconName=this.tempMarker.iconName,this.marker.color=this.tempMarker.color,this.marker.alpha=this.tempMarker.alpha??1,this.marker.layer=this.tempMarker.layer,this.marker.transform=this.tempMarker.transform,this.marker.isImage=this.tempMarker.isImage,this.marker.imageUrl=this.tempMarker.imageUrl,this.marker.tags=this.tempMarker.tags,this.marker.minZoom=this.tempMarker.minZoom,this.marker.maxZoom=this.tempMarker.maxZoom,this.saved=!0,this.close())}));return e.buttonEl.appendChild(Ut(Pt({iconName:"save",prefix:"fas"})).node[0]),e})),d.addExtraButton((t=>{t.setIcon("cross").setTooltip(Ce("Cancel")).onClick((()=>{this.close()}))})),e&&this.contentEl.querySelector(`#${e}`).focus()}buildTags(e,a=!1){let i;e.empty();const n=new t.Setting(e).setHeading().setName(Ce("Associate Tags")).setDesc(Ce("Markers created from this tag using ")).addText((t=>{t.setPlaceholder("Add Tag"),t.onChange((t=>i=t)),a&&t.inputEl.focus()})).addButton((t=>{t.setTooltip("Add Tag").setButtonText("+").onClick((()=>{i&&i.length&&!this.tempMarker.tags?.includes(i)&&(this.tempMarker.tags.push(i),this.buildTags(e,!0))}))}));n.descEl.createEl("code",{text:"markerTag"}),n.descEl.createSpan({text:Ce(" will use this marker icon by default.")});const s=e.createDiv("additional-markers");if(this.tempMarker.tags)for(let a of this.tempMarker.tags)new t.Setting(s).setName(a).addExtraButton((t=>t.setIcon("trash").setTooltip("Remove Tag").onClick((()=>{this.tempMarker.tags=this.tempMarker.tags.filter((t=>t!==a)),this.buildTags(e)}))))}onOpen(){this.display()}getFillColor(t){let e=getComputedStyle(t).getPropertyValue("background-color");if(e.includes("rgb")){let t=e.indexOf(",")>-1?",":" ",a=e.split("(")[1].split(")")[0].split(t),i=(+a[0]).toString(16),n=(+a[1]).toString(16),s=(+a[2]).toString(16);return 1==i.length&&(i="0"+i),1==n.length&&(n="0"+n),1==s.length&&(s="0"+s),["#"+i+n+s,a[3]?""+ +a[3]:"1"]}if(e.includes("#"))return[e,"1"]}}class $a extends t.PluginSettingTab{constructor(t,e){super(t,e),this.plugin=e}get data(){return this.plugin.data}async display(){let{containerEl:t}=this;t.empty(),t.addClass("obsidian-leaflet-settings"),t.createEl("h2",{text:Ce("Obsidian Leaflet Settings")}),this.createCSVSetting(t.createDiv()),this.createMarkerSettings(t.createDiv()),this.createMapSettings(t.createDiv());let e=t.createDiv("additional-markers-container");this.createDefaultMarkerSettings(e);let a=t.createDiv("additional-markers-container");this.createAdditionalMarkerSettings(a),t.createDiv("coffee").createEl("a",{href:"https://www.buymeacoffee.com/valentine195"}).createEl("img",{attr:{src:"https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=☕&slug=valentine195&button_colour=e3e7ef&font_colour=262626&font_family=Inter&outline_colour=262626&coffee_colour=ff0000"}}),await this.plugin.saveSettings()}createDefaultMarkerSettings(e){let a=new t.Setting(e).setHeading().setName(Ce("Default Map Marker")).setDesc(Ce("This marker is always available.")).settingEl.createDiv({attr:{style:`align-self: start; margin: 0 18px; font-size: 24px; color: ${this.data.defaultMarker.color};`}});a.appendChild(ee(this.data.defaultMarker).node);let i=e.createDiv({cls:"additional-markers"});const n=createEl("input",{attr:{type:"file",name:"image",accept:"image/*"}});if(new t.Setting(i).setName(Ce("Icon Name")).addText((t=>{t.setPlaceholder(Ce("Icon Name")).setValue(this.data.defaultMarker.isImage?"":this.data.defaultMarker.iconName);const e=async()=>{const e=t.inputEl.value;e.length?Pt({iconName:e,prefix:"fas"})?(De(t),this.data.defaultMarker.iconName=e,this.data.defaultMarker.isImage=!1,await this.plugin.saveMarkerTypes(),this.display()):xe(t,Ce("The selected icon does not exist in Font Awesome Free.")):xe(t,Ce("A default marker must be defined."))};new Ya(this.app,t,Jt).onClose=e,t.inputEl.onblur=e})).addButton((t=>{t.setButtonText(Ce("Upload Image")).setTooltip(Ce("Upload Image")),t.buttonEl.addClass("leaflet-file-upload"),t.buttonEl.appendChild(n),t.onClick((()=>n.click()))})),n.onchange=async()=>{const{files:t}=n;if(!t.length)return;const e=t[0],a=new FileReader;a.onloadend=t=>{var e=new Image;e.onload=()=>{const t=document.createElement("canvas"),a=24;let i=e.width,n=e.height;i>=n&&i>a?(n*=a/i,i=a):n>=i&&n>a&&(i*=a/n,n=a),t.width=i,t.height=n,t.getContext("2d").drawImage(e,0,0,i,n),this.data.defaultMarker.isImage=!0,this.data.defaultMarker.imageUrl=t.toDataURL("image/png"),this.plugin.saveMarkerTypes(),this.display()},e.src=t.target.result.toString()},a.readAsDataURL(e),n.value=null},!this.data.defaultMarker.isImage){let e=new t.Setting(i).setName(Ce("Marker Color")).controlEl.createEl("input",{attr:{type:"color",value:this.data.defaultMarker.color}});e.oninput=({target:t})=>{this.data.defaultMarker.color=t.value,a.children[0].setAttribute("style",`color: ${this.data.defaultMarker.color}`)},e.onchange=async({target:t})=>{this.data.defaultMarker.color=t.value,this.display()},new t.Setting(i).setName(Ce("Layer Base Marker")).setDesc(Ce("Use as base layer for additional markers by default.")).addToggle((t=>{t.setValue(this.data.layerMarkers),t.onChange((async t=>{this.data.layerMarkers=t,this.data.markerIcons.forEach((e=>e.layer=t)),await this.plugin.saveMarkerTypes(),this.display()}))}))}}createAdditionalMarkerSettings(e){new t.Setting(e).setHeading().setName(Ce("Additional Map Markers")).setDesc(Ce("These markers will be available in the right-click menu on the map.")).addButton((t=>{let e=t.setTooltip(Ce("Add Additional")).onClick((async()=>{const t=await this.plugin.createNewMarkerType();t&&(this.data.markerIcons.push(t),await this.plugin.saveMarkerTypes(),this.display())}));return e.buttonEl.appendChild(Ut(Pt({iconName:"plus",prefix:"fas"})).node[0]),e}));let a=e.createDiv({cls:"additional-markers"});this.plugin.markerIcons.slice(1).forEach((e=>{let i=new t.Setting(a).addExtraButton((t=>t.onClick((async()=>{const t=await this.plugin.createNewMarkerType({original:e.markerIcon});t&&t.type&&t.iconName&&(t.type!=e.type&&this.data.mapMarkers.forEach((({markers:a})=>{a=a.map((a=>(a.type==e.type&&(a.type=t.type),a)))})),await this.plugin.saveMarkerTypes(),this.display())})))).addExtraButton((t=>t.setIcon("trash").onClick((async()=>{this.data.markerIcons=this.data.markerIcons.filter((t=>t!==e.markerIcon)),await this.plugin.saveMarkerTypes(),this.display()})))),n=createDiv({cls:"marker-icon-display"});n.innerHTML=e.html;let s=i.nameEl.createDiv("marker-type-display");s.appendChild(n),s.appendText(e.type),e.markerIcon.tags&&e.markerIcon.tags.length&&i.setDesc(e.markerIcon.tags.join(", "))}))}createMapSettings(e){e.empty(),new t.Setting(e).setName(Ce("Default Latitude")).setDesc(Ce("Real-world maps will open to this latitude if not specified.")).addText((t=>{t.setValue(`${this.data.lat}`),t.onChange((e=>{isNaN(Number(e))?xe(t,Ce("Latitude must be a number.")):(De(t),this.data.lat=Number(e),t.inputEl.addEventListener("blur",(async()=>{this.display()})))}))})),new t.Setting(e).setName(Ce("Default Longitude")).setDesc(Ce("Real-world maps will open to this longitude if not specified.")).addText((t=>{t.setValue(`${this.data.long}`),t.onChange((e=>{isNaN(Number(e))?xe(t,Ce("Longitude must be a number.")):(De(t),this.data.long=Number(e))})),t.inputEl.addEventListener("blur",(async()=>{this.display()}))})),new t.Setting(e).setName(Ce("Default Units")).setDesc(Ce("Select the default system of units for the map.")).addDropdown((t=>{t.addOption("imperial",Ce("Imperial")).addOption("metric",Ce("Metric")).setValue(this.plugin.data.defaultUnitType).onChange((async t=>{this.plugin.data.defaultUnitType=t,await this.plugin.saveSettings()}))})),new t.Setting(e).setName(Ce("Default Tile Server")).setDesc(Ce("It is up to you to ensure you have proper access to this tile server.")).addText((t=>{t.setValue(this.plugin.data.defaultTile).onChange((t=>{this.plugin.data.defaultTile=t,this.plugin.saveSettings()}))})).addExtraButton((t=>t.setIcon("reset").setTooltip(Ce("Reset")).onClick((()=>{this.plugin.data.defaultTile=re,this.createMapSettings(e),this.plugin.saveSettings()})))),new t.Setting(e).setName(Ce("Default Tile Server Subdomains")).setDesc(Ce("Available subdomains for this tile server concurrent requests.")).addText((t=>{t.setValue(this.plugin.data.defaultTileSubdomains).onChange((t=>{this.plugin.data.defaultTileSubdomains=t,this.plugin.saveSettings()}))})).addExtraButton((t=>t.setIcon("reset").setTooltip(Ce("Reset")).onClick((()=>{this.plugin.data.defaultTileSubdomains=ce,this.createMapSettings(e),this.plugin.saveSettings()})))),new t.Setting(e).setName(Ce("Default Tile Server Attribution")).setDesc(Ce("Please ensure your attribution meets all requirements set by the tile server.")).addTextArea((t=>{t.setValue(this.plugin.data.defaultAttribution).onChange((t=>{this.plugin.data.defaultAttribution=t,this.plugin.saveSettings()}))})).addExtraButton((t=>t.setIcon("reset").setTooltip(Ce("Reset")).onClick((()=>{this.plugin.data.defaultAttribution=oe,this.createMapSettings(e),this.plugin.saveSettings()})))),new t.Setting(e).setName(Ce("Default Tile Server (Dark Mode)")).setDesc(Ce("It is up to you to ensure you have proper access to this tile server.")).addText((t=>{t.setValue(this.plugin.data.defaultTileDark).onChange((t=>{this.plugin.data.defaultTileDark=t,this.plugin.saveSettings()}))})).addExtraButton((t=>t.setIcon("reset").setTooltip(Ce("Reset")).onClick((()=>{this.plugin.data.defaultTileDark=re,this.createMapSettings(e),this.plugin.saveSettings()}))))}createMarkerSettings(e){const a=new t.Setting(e).addText((async e=>{let a=this.app.vault.getAllLoadedFiles().filter((e=>e instanceof t.TFolder));e.setPlaceholder(this.data.configDirectory??this.app.vault.configDir),new ja(this.app,e,[...a]).onClose=async()=>{e.inputEl.value?await this.app.vault.adapter.exists(e.inputEl.value)||(this.data.configDirectory=e.inputEl.value,await this.plugin.saveSettings()):this.data.configDirectory=null},e.inputEl.onblur=async()=>{e.inputEl.value&&(await this.app.vault.adapter.exists(e.inputEl.value),this.data.configDirectory=e.inputEl.value,await this.plugin.saveSettings(),this.display())}})).addExtraButton((t=>{t.setTooltip(Ce("Reset to Default")).setIcon("undo-glyph").onClick((async()=>{this.data.configDirectory=null,await this.plugin.saveSettings(),this.display()}))}));a.descEl.createSpan({text:Ce("Please back up your data before changing this setting.")}),a.descEl.createEl("br"),a.descEl.createSpan({text:`${Ce("Current directory")}: `});const i=this.data.configDirectory??this.app.vault.configDir;a.descEl.createEl("code",{text:i});let n=a.nameEl.createDiv();n.appendChild(Ut(Pt({iconName:"exclamation-triangle",prefix:"fas"})).node[0]),n.appendChild(createSpan({text:Ce("Default Config Directory")})),new t.Setting(e).setName(Ce("Default Marker Tooltip Behavior")).setDesc(Ce("New markers will be created to this setting by default. Can be overridden per-marker.")).addDropdown((t=>{t.addOption("always",Ce("Always")),t.addOption("hover",Ce("Hover")),t.addOption("never",Ce("Never")),t.setValue(this.plugin.data.displayMarkerTooltips??"hover").onChange((t=>{this.plugin.data.displayMarkerTooltips=t}))})),new t.Setting(e).setName(Ce("Enable Draw Mode by Default")).setDesc(Ce("The draw control will be added to maps by default. Can be overridden with the draw map block parameter.")).addToggle((t=>t.setValue(this.data.enableDraw).onChange((async t=>{this.data.enableDraw=t,await this.plugin.saveSettings(),this.display()})))),new t.Setting(e).setName(Ce("Display Note Preview")).setDesc(Ce("Markers linked to notes will show a note preview when hovered.")).addToggle((t=>t.setValue(this.data.notePreview).onChange((async t=>{this.data.notePreview=t,await this.plugin.saveSettings(),this.display()})))),new t.Setting(e).setName(Ce("Display Overlay Tooltips")).setDesc(Ce("Overlay tooltips will display when hovered.")).addToggle((t=>t.setValue(this.data.displayOverlayTooltips).onChange((async t=>{this.data.displayOverlayTooltips=t,await this.plugin.saveSettings(),this.display()})))),new t.Setting(e).setName(Ce("Copy Coordinates on Shift-Click")).setDesc(Ce("Map coordinates will be copied to the clipboard when shift-clicking.")).addToggle((t=>t.setValue(this.data.copyOnClick).onChange((async t=>{this.data.copyOnClick=t,await this.plugin.saveSettings(),this.display()}))))}createCSVSetting(a){const i=new t.Setting(a).setDesc(Ce("This setting is experimental and could cause marker data issues. Use at your own risk."));let n=i.nameEl.createDiv();n.appendChild(Ut(Pt({iconName:"exclamation-triangle",prefix:"fas"})).node[0]),n.appendChild(createSpan({text:Ce("Import Marker CSV File")}));const s=createEl("input",{attr:{type:"file",name:"merge",accept:".csv"}});i.addButton((t=>{t.setButtonText(Ce("Choose File")).setTooltip(Ce("Upload CSV File")),t.buttonEl.addClass("leaflet-file-upload"),t.buttonEl.appendChild(s),t.onClick((()=>s.click()))})),s.onchange=async()=>{const{files:a}=s;if(a.length){try{const i=await a[0].text(),n=new Map,s=(0,e.parse)(i);if(s.data&&s.data.length){for(let e=0;et.replace(/"/g,"")));if(!i||!i.length||"undefined"===i){new t.Notice(Ce("Map not specified for line %1",`${e+1}`));continue}if(r&&r.length&&"undefined"!==r&&("default"==r||this.data.markerIcons.find((({type:t})=>t==r)))||(r="default"),!c||!c.length||isNaN(Number(c))){new t.Notice(Ce("Could not parse latitude for line %1",`${e+1}`));continue}if(!o||!o.length||isNaN(Number(o))){new t.Notice(Ce("Could not parse longitude for line %1",`${e+1}`));continue}l&&l.length&&"undefined"!==l?/\[\[[\s\S]+\]\]/.test(l)&&([,l]=l.match(/\[\[([\s\S]+)\]\]/)):l=void 0,u&&u.length&&"undefined"!==u||(u=Ne()),n.has(i)||n.set(i,[]);const d=n.get(a[0]);d.push({type:r,loc:[Number(c),Number(o)],percent:void 0,link:l,layer:h,id:u,command:!1,description:null,mutable:!0,minZoom:null,maxZoom:null,tooltip:"hover"}),n.set(a[0],d)}for(let[t,e]of[...n]){if(!this.data.mapMarkers.find((({id:e})=>e==t))){const e={id:t,files:[],lastAccessed:Date.now(),markers:[],overlays:[],shapes:[],locked:!1};this.data.mapMarkers.push(e)}if(this.plugin.maps.find((({id:e})=>e==t))){let a=this.plugin.maps.find((({id:e})=>e==t)).map;for(let t of e)a.markers=a.markers.filter((({id:e})=>e!=t.id)),a.createMarker(t.type,t.loc,void 0,t.link,t.id,t.layer)}else{let a=this.data.mapMarkers.find((({id:e})=>e==t));for(let t of e)a.markers=a.markers.filter((({id:e})=>e!=t.id)),a.markers.push(t)}}await this.plugin.saveSettings(),new t.Notice("Marker file successfully imported.")}}catch(e){new t.Notice(Ce("There was an error while importing %1",a[0].name)),console.error(e)}s.value=null}},new t.Setting(a).setName(Ce("Export Marker Data")).setDesc(Ce("Export all marker data to a CSV file.")).addButton((t=>{t.setButtonText(Ce("Export")).onClick((()=>{let t=[];for(let{id:e,markers:a}of this.data.mapMarkers)for(let{type:i,loc:n,link:s,layer:r,id:c}of a)t.push([e,i,n[0],n[1],s,r,c]);let a=new Blob([(0,e.unparse)(t)],{type:"text/csv"}),i=document.createElement("a");i.download="leaflet_marker_data.csv",i.href=window.URL.createObjectURL(a),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}))}))}}function ti(t){let e=t.length;for(;--e>=0;)t[e]=0}const ei=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ai=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),ii=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ni=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),si=new Array(576);ti(si);const ri=new Array(60);ti(ri);const ci=new Array(512);ti(ci);const oi=new Array(256);ti(oi);const li=new Array(29);ti(li);const hi=new Array(30);function ui(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}let di,fi,pi;function mi(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}ti(hi);const gi=t=>t<256?ci[t]:ci[256+(t>>>7)],vi=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},bi=(t,e,a)=>{t.bi_valid>16-a?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<{bi(t,a[2*e],a[2*e+1])},Ci=(t,e)=>{let a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},Ai=(t,e,a)=>{const i=new Array(16);let n,s,r=0;for(n=1;n<=15;n++)r=r+a[n-1]<<1,i[n]=r;for(s=0;s<=e;s++){let e=t[2*s+1];0!==e&&(t[2*s]=Ci(i[e]++,e))}},yi=t=>{let e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},Li=t=>{t.bi_valid>8?vi(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},Hi=(t,e,a,i)=>{const n=2*e,s=2*a;return t[n]{const i=t.heap[a];let n=a<<1;for(;n<=t.heap_len&&(n{let i,n,s,r,c=0;if(0!==t.sym_next)do{i=255&t.pending_buf[t.sym_buf+c++],i+=(255&t.pending_buf[t.sym_buf+c++])<<8,n=t.pending_buf[t.sym_buf+c++],0===i?wi(t,n,e):(s=oi[n],wi(t,s+256+1,e),r=ei[s],0!==r&&(n-=li[s],bi(t,n,r)),i--,s=gi(i),wi(t,s,a),r=ai[s],0!==r&&(i-=hi[s],bi(t,i,r)))}while(c{const a=e.dyn_tree,i=e.stat_desc.static_tree,n=e.stat_desc.has_stree,s=e.stat_desc.elems;let r,c,o,l=-1;for(t.heap_len=0,t.heap_max=573,r=0;r>1;r>=1;r--)Bi(t,a,r);o=s;do{r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],Bi(t,a,1),c=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=c,a[2*o]=a[2*r]+a[2*c],t.depth[o]=(t.depth[r]>=t.depth[c]?t.depth[r]:t.depth[c])+1,a[2*r+1]=a[2*c+1]=o,t.heap[1]=o++,Bi(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const a=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,s=e.stat_desc.has_stree,r=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,o=e.stat_desc.max_length;let l,h,u,d,f,p,m=0;for(d=0;d<=15;d++)t.bl_count[d]=0;for(a[2*t.heap[t.heap_max]+1]=0,l=t.heap_max+1;l<573;l++)h=t.heap[l],d=a[2*a[2*h+1]+1]+1,d>o&&(d=o,m++),a[2*h+1]=d,h>i||(t.bl_count[d]++,f=0,h>=c&&(f=r[h-c]),p=a[2*h],t.opt_len+=p*(d+f),s&&(t.static_len+=p*(n[2*h+1]+f)));if(0!==m){do{for(d=o-1;0===t.bl_count[d];)d--;t.bl_count[d]--,t.bl_count[d+1]+=2,t.bl_count[o]--,m-=2}while(m>0);for(d=o;0!==d;d--)for(h=t.bl_count[d];0!==h;)u=t.heap[--l],u>i||(a[2*u+1]!==d&&(t.opt_len+=(d-a[2*u+1])*a[2*u],a[2*u+1]=d),h--)}})(t,e),Ai(a,l,t.bl_count)},xi=(t,e,a)=>{let i,n,s=-1,r=e[1],c=0,o=7,l=4;for(0===r&&(o=138,l=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=r,r=e[2*(i+1)+1],++c{let i,n,s=-1,r=e[1],c=0,o=7,l=4;for(0===r&&(o=138,l=3),i=0;i<=a;i++)if(n=r,r=e[2*(i+1)+1],!(++c{bi(t,0+(i?1:0),3),Li(t),vi(t,a),vi(t,~a),a&&t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a};var Si={_tr_init:t=>{Vi||((()=>{let t,e,a,i,n;const s=new Array(16);for(a=0,i=0;i<28;i++)for(li[i]=a,t=0;t<1<>=7;i<30;i++)for(hi[i]=n<<7,t=0;t<1<{let n,s,r=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,a=4093624447;for(e=0;e<=31;e++,a>>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),Ni(t,t.l_desc),Ni(t,t.d_desc),r=(t=>{let e;for(xi(t,t.dyn_ltree,t.l_desc.max_code),xi(t,t.dyn_dtree,t.d_desc.max_code),Ni(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*ni[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),n=t.opt_len+3+7>>>3,s=t.static_len+3+7>>>3,s<=n&&(n=s)):n=s=a+5,a+4<=n&&-1!==e?Mi(t,e,a,i):4===t.strategy||s===n?(bi(t,2+(i?1:0),3),zi(t,si,ri)):(bi(t,4+(i?1:0),3),((t,e,a,i)=>{let n;for(bi(t,e-257,5),bi(t,a-1,5),bi(t,i-4,4),n=0;n(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=a,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(oi[a]+256+1)]++,t.dyn_dtree[2*gi(e)]++),t.sym_next===t.sym_end),_tr_align:t=>{bi(t,2,3),wi(t,256,si),(t=>{16===t.bi_valid?(vi(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}},ki=(t,e,a,i)=>{let n=65535&t|0,s=t>>>16&65535|0,r=0;for(;0!==a;){r=a>2e3?2e3:a,a-=r;do{n=n+e[i++]|0,s=s+n|0}while(--r);n%=65521,s%=65521}return n|s<<16|0};const Qi=new Uint32Array((()=>{let t,e=[];for(var a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e})());var Ii=(t,e,a,i)=>{const n=Qi,s=i+a;t^=-1;for(let a=i;a>>8^n[255&(t^e[a])];return-1^t},Oi={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Ei={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Xi,_tr_stored_block:Ti,_tr_flush_block:Pi,_tr_tally:Fi,_tr_align:Gi}=Si,{Z_NO_FLUSH:Ki,Z_PARTIAL_FLUSH:Ui,Z_FULL_FLUSH:qi,Z_FINISH:ji,Z_BLOCK:Yi,Z_OK:Ri,Z_STREAM_END:Wi,Z_STREAM_ERROR:Zi,Z_DATA_ERROR:Ji,Z_BUF_ERROR:_i,Z_DEFAULT_COMPRESSION:$i,Z_FILTERED:tn,Z_HUFFMAN_ONLY:en,Z_RLE:an,Z_FIXED:nn,Z_DEFAULT_STRATEGY:sn,Z_UNKNOWN:rn,Z_DEFLATED:cn}=Ei,on=258,ln=262,hn=42,un=113,dn=666,fn=(t,e)=>(t.msg=Oi[e],e),pn=t=>2*t-(t>4?9:0),mn=t=>{let e=t.length;for(;--e>=0;)t[e]=0},gn=t=>{let e,a,i,n=t.w_size;e=t.hash_size,i=e;do{a=t.head[--i],t.head[i]=a>=n?a-n:0}while(--e);e=n,i=e;do{a=t.prev[--i],t.prev[i]=a>=n?a-n:0}while(--e)};let vn=(t,e,a)=>(e<{const e=t.state;let a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},wn=(t,e)=>{Pi(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,bn(t.strm)},Cn=(t,e)=>{t.pending_buf[t.pending++]=e},An=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},yn=(t,e,a,i)=>{let n=t.avail_in;return n>i&&(n=i),0===n?0:(t.avail_in-=n,e.set(t.input.subarray(t.next_in,t.next_in+n),a),1===t.state.wrap?t.adler=ki(t.adler,e,n,a):2===t.state.wrap&&(t.adler=Ii(t.adler,e,n,a)),t.next_in+=n,t.total_in+=n,n)},Ln=(t,e)=>{let a,i,n=t.max_chain_length,s=t.strstart,r=t.prev_length,c=t.nice_match;const o=t.strstart>t.w_size-ln?t.strstart-(t.w_size-ln):0,l=t.window,h=t.w_mask,u=t.prev,d=t.strstart+on;let f=l[s+r-1],p=l[s+r];t.prev_length>=t.good_match&&(n>>=2),c>t.lookahead&&(c=t.lookahead);do{if(a=e,l[a+r]===p&&l[a+r-1]===f&&l[a]===l[s]&&l[++a]===l[s+1]){s+=2,a++;do{}while(l[++s]===l[++a]&&l[++s]===l[++a]&&l[++s]===l[++a]&&l[++s]===l[++a]&&l[++s]===l[++a]&&l[++s]===l[++a]&&l[++s]===l[++a]&&l[++s]===l[++a]&&sr){if(t.match_start=e,r=i,i>=c)break;f=l[s+r-1],p=l[s+r]}}}while((e=u[e&h])>o&&0!=--n);return r<=t.lookahead?r:t.lookahead},Hn=t=>{const e=t.w_size;let a,i,n;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ln)&&(t.window.set(t.window.subarray(e,e+e-i),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),gn(t),i+=e),0===t.strm.avail_in)break;if(a=yn(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=a,t.lookahead+t.insert>=3)for(n=t.strstart-t.insert,t.ins_h=t.window[n],t.ins_h=vn(t,t.ins_h,t.window[n+1]);t.insert&&(t.ins_h=vn(t,t.ins_h,t.window[n+3-1]),t.prev[n&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=n,n++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead{let a,i,n,s=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r=0,c=t.strm.avail_in;do{if(a=65535,n=t.bi_valid+42>>3,t.strm.avail_outi+t.strm.avail_in&&(a=i+t.strm.avail_in),a>n&&(a=n),a>8,t.pending_buf[t.pending-2]=~a,t.pending_buf[t.pending-1]=~a>>8,bn(t.strm),i&&(i>a&&(i=a),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,a-=i),a&&(yn(t.strm,t.strm.output,t.strm.next_out,a),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a)}while(0===r);return c-=t.strm.avail_in,c&&(c>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=c&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-c,t.strm.next_in),t.strstart),t.strstart+=c,t.insert+=c>t.w_size-t.insert?t.w_size-t.insert:c),t.block_start=t.strstart),t.high_watern&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,n+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),n>t.strm.avail_in&&(n=t.strm.avail_in),n&&(yn(t.strm,t.window,t.strstart,n),t.strstart+=n,t.insert+=n>t.w_size-t.insert?t.w_size-t.insert:n),t.high_water>3,n=t.pending_buf_size-n>65535?65535:t.pending_buf_size-n,s=n>t.w_size?t.w_size:n,i=t.strstart-t.block_start,(i>=s||(i||e===ji)&&e!==Ki&&0===t.strm.avail_in&&i<=n)&&(a=i>n?n:i,r=e===ji&&0===t.strm.avail_in&&a===i?1:0,Ti(t,t.block_start,a,r),t.block_start+=a,bn(t.strm)),r?3:1)},zn=(t,e)=>{let a,i;for(;;){if(t.lookahead=3&&(t.ins_h=vn(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-ln&&(t.match_length=Ln(t,a)),t.match_length>=3)if(i=Fi(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=vn(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=vn(t,t.ins_h,t.window[t.strstart+1]);else i=Fi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(wn(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===ji?(wn(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(wn(t,!1),0===t.strm.avail_out)?1:2},Nn=(t,e)=>{let a,i,n;for(;;){if(t.lookahead=3&&(t.ins_h=vn(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,i=Fi(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=vn(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(wn(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=Fi(t,0,t.window[t.strstart-1]),i&&wn(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=Fi(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===ji?(wn(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(wn(t,!1),0===t.strm.avail_out)?1:2};function xn(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n}const Dn=[new xn(0,0,0,0,Bn),new xn(4,4,8,4,zn),new xn(4,5,16,8,zn),new xn(4,6,32,32,zn),new xn(4,4,16,16,Nn),new xn(8,16,32,32,Nn),new xn(8,16,128,128,Nn),new xn(8,32,128,256,Nn),new xn(32,128,258,1024,Nn),new xn(32,258,258,4096,Nn)];function Vn(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=cn,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),mn(this.dyn_ltree),mn(this.dyn_dtree),mn(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),mn(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),mn(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Mn=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==hn&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==un&&e.status!==dn?1:0},Sn=t=>{if(Mn(t))return fn(t,Zi);t.total_in=t.total_out=0,t.data_type=rn;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?hn:un,t.adler=2===e.wrap?0:1,e.last_flush=-2,Xi(e),Ri},kn=t=>{const e=Sn(t);var a;return e===Ri&&((a=t.state).window_size=2*a.w_size,mn(a.head),a.max_lazy_match=Dn[a.level].max_lazy,a.good_match=Dn[a.level].good_length,a.nice_match=Dn[a.level].nice_length,a.max_chain_length=Dn[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e},Qn=(t,e,a,i,n,s)=>{if(!t)return Zi;let r=1;if(e===$i&&(e=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),n<1||n>9||a!==cn||i<8||i>15||e<0||e>9||s<0||s>nn||8===i&&1!==r)return fn(t,Zi);8===i&&(i=9);const c=new Vn;return t.state=c,c.strm=t,c.status=hn,c.wrap=r,c.gzhead=null,c.w_bits=i,c.w_size=1<Qn(t,e,cn,15,8,sn),deflateInit2:Qn,deflateReset:kn,deflateResetKeep:Sn,deflateSetHeader:(t,e)=>Mn(t)||2!==t.state.wrap?Zi:(t.state.gzhead=e,Ri),deflate:(t,e)=>{if(Mn(t)||e>Yi||e<0)return t?fn(t,Zi):Zi;const a=t.state;if(!t.output||0!==t.avail_in&&!t.input||a.status===dn&&e!==ji)return fn(t,0===t.avail_out?_i:Zi);const i=a.last_flush;if(a.last_flush=e,0!==a.pending){if(bn(t),0===t.avail_out)return a.last_flush=-1,Ri}else if(0===t.avail_in&&pn(e)<=pn(i)&&e!==ji)return fn(t,_i);if(a.status===dn&&0!==t.avail_in)return fn(t,_i);if(a.status===hn&&0===a.wrap&&(a.status=un),a.status===hn){let e=cn+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=en||a.level<2?0:a.level<6?1:6===a.level?2:3,e|=i<<6,0!==a.strstart&&(e|=32),e+=31-e%31,An(a,e),0!==a.strstart&&(An(a,t.adler>>>16),An(a,65535&t.adler)),t.adler=1,a.status=un,bn(t),0!==a.pending)return a.last_flush=-1,Ri}if(57===a.status)if(t.adler=0,Cn(a,31),Cn(a,139),Cn(a,8),a.gzhead)Cn(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),Cn(a,255&a.gzhead.time),Cn(a,a.gzhead.time>>8&255),Cn(a,a.gzhead.time>>16&255),Cn(a,a.gzhead.time>>24&255),Cn(a,9===a.level?2:a.strategy>=en||a.level<2?4:0),Cn(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(Cn(a,255&a.gzhead.extra.length),Cn(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(t.adler=Ii(t.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(Cn(a,0),Cn(a,0),Cn(a,0),Cn(a,0),Cn(a,0),Cn(a,9===a.level?2:a.strategy>=en||a.level<2?4:0),Cn(a,3),a.status=un,bn(t),0!==a.pending)return a.last_flush=-1,Ri;if(69===a.status){if(a.gzhead.extra){let e=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let n=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+n),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>e&&(t.adler=Ii(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex+=n,bn(t),0!==a.pending)return a.last_flush=-1,Ri;e=0,i-=n}let n=new Uint8Array(a.gzhead.extra);a.pending_buf.set(n.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>e&&(t.adler=Ii(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=Ii(t.adler,a.pending_buf,a.pending-i,i)),bn(t),0!==a.pending)return a.last_flush=-1,Ri;i=0}e=a.gzindexi&&(t.adler=Ii(t.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=Ii(t.adler,a.pending_buf,a.pending-i,i)),bn(t),0!==a.pending)return a.last_flush=-1,Ri;i=0}e=a.gzindexi&&(t.adler=Ii(t.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(bn(t),0!==a.pending))return a.last_flush=-1,Ri;Cn(a,255&t.adler),Cn(a,t.adler>>8&255),t.adler=0}if(a.status=un,bn(t),0!==a.pending)return a.last_flush=-1,Ri}if(0!==t.avail_in||0!==a.lookahead||e!==Ki&&a.status!==dn){let i=0===a.level?Bn(a,e):a.strategy===en?((t,e)=>{let a;for(;;){if(0===t.lookahead&&(Hn(t),0===t.lookahead)){if(e===Ki)return 1;break}if(t.match_length=0,a=Fi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(wn(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===ji?(wn(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(wn(t,!1),0===t.strm.avail_out)?1:2})(a,e):a.strategy===an?((t,e)=>{let a,i,n,s;const r=t.window;for(;;){if(t.lookahead<=on){if(Hn(t),t.lookahead<=on&&e===Ki)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=t.strstart-1,i=r[n],i===r[++n]&&i===r[++n]&&i===r[++n])){s=t.strstart+on;do{}while(i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=Fi(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=Fi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(wn(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===ji?(wn(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(wn(t,!1),0===t.strm.avail_out)?1:2})(a,e):Dn[a.level].func(a,e);if(3!==i&&4!==i||(a.status=dn),1===i||3===i)return 0===t.avail_out&&(a.last_flush=-1),Ri;if(2===i&&(e===Ui?Gi(a):e!==Yi&&(Ti(a,0,0,!1),e===qi&&(mn(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),bn(t),0===t.avail_out))return a.last_flush=-1,Ri}return e!==ji?Ri:a.wrap<=0?Wi:(2===a.wrap?(Cn(a,255&t.adler),Cn(a,t.adler>>8&255),Cn(a,t.adler>>16&255),Cn(a,t.adler>>24&255),Cn(a,255&t.total_in),Cn(a,t.total_in>>8&255),Cn(a,t.total_in>>16&255),Cn(a,t.total_in>>24&255)):(An(a,t.adler>>>16),An(a,65535&t.adler)),bn(t),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?Ri:Wi)},deflateEnd:t=>{if(Mn(t))return Zi;const e=t.state.status;return t.state=null,e===un?fn(t,Ji):Ri},deflateSetDictionary:(t,e)=>{let a=e.length;if(Mn(t))return Zi;const i=t.state,n=i.wrap;if(2===n||1===n&&i.status!==hn||i.lookahead)return Zi;if(1===n&&(t.adler=ki(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===n&&(mn(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(a-i.w_size,a),0),e=t,a=i.w_size}const s=t.avail_in,r=t.next_in,c=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Hn(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=vn(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,Hn(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=r,t.input=c,t.avail_in=s,i.wrap=n,Ri},deflateInfo:"pako deflate (from Nodeca project)"};const On=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var En={assign:function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const e in a)On(a,e)&&(t[e]=a[e])}}return t},flattenChunks:t=>{let e=0;for(let a=0,i=t.length;a=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Tn[254]=Tn[254]=1;var Pn={string2buf:t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,a,i,n,s,r=t.length,c=0;for(n=0;n>>6,e[s++]=128|63&a):a<65536?(e[s++]=224|a>>>12,e[s++]=128|a>>>6&63,e[s++]=128|63&a):(e[s++]=240|a>>>18,e[s++]=128|a>>>12&63,e[s++]=128|a>>>6&63,e[s++]=128|63&a);return e},buf2string:(t,e)=>{const a=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let i,n;const s=new Array(2*a);for(n=0,i=0;i4)s[n++]=65533,i+=r-1;else{for(e&=2===r?31:3===r?15:7;r>1&&i1?s[n++]=65533:e<65536?s[n++]=e:(e-=65536,s[n++]=55296|e>>10&1023,s[n++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&Xn)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let a="";for(let i=0;i{(e=e||t.length)>t.length&&(e=t.length);let a=e-1;for(;a>=0&&128==(192&t[a]);)a--;return a<0||0===a?e:a+Tn[t[a]]>e?a:e}},Fn=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Gn=Object.prototype.toString,{Z_NO_FLUSH:Kn,Z_SYNC_FLUSH:Un,Z_FULL_FLUSH:qn,Z_FINISH:jn,Z_OK:Yn,Z_STREAM_END:Rn,Z_DEFAULT_COMPRESSION:Wn,Z_DEFAULT_STRATEGY:Zn,Z_DEFLATED:Jn}=Ei;function _n(t){this.options=En.assign({level:Wn,method:Jn,chunkSize:16384,windowBits:15,memLevel:8,strategy:Zn},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Fn,this.strm.avail_out=0;let a=In.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==Yn)throw new Error(Oi[a]);if(e.header&&In.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?Pn.string2buf(e.dictionary):"[object ArrayBuffer]"===Gn.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=In.deflateSetDictionary(this.strm,t),a!==Yn)throw new Error(Oi[a]);this._dict_set=!0}}function $n(t,e){const a=new _n(e);if(a.push(t,!0),a.err)throw a.msg||Oi[a.err];return a.result}_n.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize;let n,s;if(this.ended)return!1;for(s=e===~~e?e:!0===e?jn:Kn,"string"==typeof t?a.input=Pn.string2buf(t):"[object ArrayBuffer]"===Gn.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(s===Un||s===qn)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=In.deflate(a,s),n===Rn)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=In.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===Yn;if(0!==a.avail_out){if(s>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},_n.prototype.onData=function(t){this.chunks.push(t)},_n.prototype.onEnd=function(t){t===Yn&&(this.result=En.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var ts={Deflate:_n,deflate:$n,deflateRaw:function(t,e){return(e=e||{}).raw=!0,$n(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,$n(t,e)},constants:Ei};const es=16209;var as=function(t,e){let a,i,n,s,r,c,o,l,h,u,d,f,p,m,g,v,b,w,C,A,y,L,H,B;const z=t.state;a=t.next_in,H=t.input,i=a+(t.avail_in-5),n=t.next_out,B=t.output,s=n-(e-t.avail_out),r=n+(t.avail_out-257),c=z.dmax,o=z.wsize,l=z.whave,h=z.wnext,u=z.window,d=z.hold,f=z.bits,p=z.lencode,m=z.distcode,g=(1<>>24,d>>>=w,f-=w,w=b>>>16&255,0===w)B[n++]=65535&b;else{if(!(16&w)){if(0==(64&w)){b=p[(65535&b)+(d&(1<>>=w,f-=w),f<15&&(d+=H[a++]<>>24,d>>>=w,f-=w,w=b>>>16&255,!(16&w)){if(0==(64&w)){b=m[(65535&b)+(d&(1<c){t.msg="invalid distance too far back",z.mode=es;break t}if(d>>>=w,f-=w,w=n-s,A>w){if(w=A-w,w>l&&z.sane){t.msg="invalid distance too far back",z.mode=es;break t}if(y=0,L=u,0===h){if(y+=o-w,w2;)B[n++]=L[y++],B[n++]=L[y++],B[n++]=L[y++],C-=3;C&&(B[n++]=L[y++],C>1&&(B[n++]=L[y++]))}else{y=n-A;do{B[n++]=B[y++],B[n++]=B[y++],B[n++]=B[y++],C-=3}while(C>2);C&&(B[n++]=B[y++],C>1&&(B[n++]=B[y++]))}break}}break}}while(a>3,a-=C,f-=C<<3,d&=(1<{const o=c.bits;let l,h,u,d,f,p,m=0,g=0,v=0,b=0,w=0,C=0,A=0,y=0,L=0,H=0,B=null;const z=new Uint16Array(16),N=new Uint16Array(16);let x,D,V,M=null;for(m=0;m<=15;m++)z[m]=0;for(g=0;g=1&&0===z[b];b--);if(w>b&&(w=b),0===b)return n[s++]=20971520,n[s++]=20971520,c.bits=1,0;for(v=1;v0&&(0===t||1!==b))return-1;for(N[1]=0,m=1;m<15;m++)N[m+1]=N[m]+z[m];for(g=0;g852||2===t&&L>592)return 1;for(;;){x=m-A,r[g]+1=p?(D=M[r[g]-p],V=B[r[g]-p]):(D=96,V=0),l=1<>A)+h]=x<<24|D<<16|V|0}while(0!==h);for(l=1<>=1;if(0!==l?(H&=l-1,H+=l):H=0,g++,0==--z[m]){if(m===b)break;m=e[a+r[g]]}if(m>w&&(H&d)!==u){for(0===A&&(A=w),f+=v,C=m-A,y=1<852||2===t&&L>592)return 1;u=H&d,n[u]=w<<24|C<<16|f-s|0}}return 0!==H&&(n[f+H]=m-A<<24|64<<16|0),c.bits=w,0};const{Z_FINISH:os,Z_BLOCK:ls,Z_TREES:hs,Z_OK:us,Z_STREAM_END:ds,Z_NEED_DICT:fs,Z_STREAM_ERROR:ps,Z_DATA_ERROR:ms,Z_MEM_ERROR:gs,Z_BUF_ERROR:vs,Z_DEFLATED:bs}=Ei,ws=16180,Cs=16190,As=16191,ys=16192,Ls=16194,Hs=16199,Bs=16200,zs=16206,Ns=16209,xs=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function Ds(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Vs=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode16211?1:0},Ms=t=>{if(Vs(t))return ps;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=ws,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,us},Ss=t=>{if(Vs(t))return ps;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,Ms(t)},ks=(t,e)=>{let a;if(Vs(t))return ps;const i=t.state;return e<0?(a=0,e=-e):(a=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?ps:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,Ss(t))},Qs=(t,e)=>{if(!t)return ps;const a=new Ds;t.state=a,a.strm=t,a.window=null,a.mode=ws;const i=ks(t,e);return i!==us&&(t.state=null),i};let Is,Os,Es=!0;const Xs=t=>{if(Es){Is=new Int32Array(512),Os=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(cs(1,t.lens,0,288,Is,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;cs(2,t.lens,0,32,Os,0,t.work,{bits:5}),Es=!1}t.lencode=Is,t.lenbits=9,t.distcode=Os,t.distbits=5},Ts=(t,e,a,i)=>{let n;const s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(s.window.set(e.subarray(a-s.wsize,a),0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),s.window.set(e.subarray(a-i,a-i+n),s.wnext),(i-=n)?(s.window.set(e.subarray(a-i,a),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whaveQs(t,15),inflateInit2:Qs,inflate:(t,e)=>{let a,i,n,s,r,c,o,l,h,u,d,f,p,m,g,v,b,w,C,A,y,L,H=0;const B=new Uint8Array(4);let z,N;const x=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Vs(t)||!t.output||!t.input&&0!==t.avail_in)return ps;a=t.state,a.mode===As&&(a.mode=ys),r=t.next_out,n=t.output,o=t.avail_out,s=t.next_in,i=t.input,c=t.avail_in,l=a.hold,h=a.bits,u=c,d=o,L=us;t:for(;;)switch(a.mode){case ws:if(0===a.wrap){a.mode=ys;break}for(;h<16;){if(0===c)break t;c--,l+=i[s++]<>>8&255,a.check=Ii(a.check,B,2,0),l=0,h=0,a.mode=16181;break}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&l)<<8)+(l>>8))%31){t.msg="incorrect header check",a.mode=Ns;break}if((15&l)!==bs){t.msg="unknown compression method",a.mode=Ns;break}if(l>>>=4,h-=4,y=8+(15&l),0===a.wbits&&(a.wbits=y),y>15||y>a.wbits){t.msg="invalid window size",a.mode=Ns;break}a.dmax=1<>8&1),512&a.flags&&4&a.wrap&&(B[0]=255&l,B[1]=l>>>8&255,a.check=Ii(a.check,B,2,0)),l=0,h=0,a.mode=16182;case 16182:for(;h<32;){if(0===c)break t;c--,l+=i[s++]<>>8&255,B[2]=l>>>16&255,B[3]=l>>>24&255,a.check=Ii(a.check,B,4,0)),l=0,h=0,a.mode=16183;case 16183:for(;h<16;){if(0===c)break t;c--,l+=i[s++]<>8),512&a.flags&&4&a.wrap&&(B[0]=255&l,B[1]=l>>>8&255,a.check=Ii(a.check,B,2,0)),l=0,h=0,a.mode=16184;case 16184:if(1024&a.flags){for(;h<16;){if(0===c)break t;c--,l+=i[s++]<>>8&255,a.check=Ii(a.check,B,2,0)),l=0,h=0}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(f=a.length,f>c&&(f=c),f&&(a.head&&(y=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(s,s+f),y)),512&a.flags&&4&a.wrap&&(a.check=Ii(a.check,i,f,s)),c-=f,s+=f,a.length-=f),a.length))break t;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===c)break t;f=0;do{y=i[s+f++],a.head&&y&&a.length<65536&&(a.head.name+=String.fromCharCode(y))}while(y&&f>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=As;break;case 16189:for(;h<32;){if(0===c)break t;c--,l+=i[s++]<>>=7&h,h-=7&h,a.mode=zs;break}for(;h<3;){if(0===c)break t;c--,l+=i[s++]<>>=1,h-=1,3&l){case 0:a.mode=16193;break;case 1:if(Xs(a),a.mode=Hs,e===hs){l>>>=2,h-=2;break t}break;case 2:a.mode=16196;break;case 3:t.msg="invalid block type",a.mode=Ns}l>>>=2,h-=2;break;case 16193:for(l>>>=7&h,h-=7&h;h<32;){if(0===c)break t;c--,l+=i[s++]<>>16^65535)){t.msg="invalid stored block lengths",a.mode=Ns;break}if(a.length=65535&l,l=0,h=0,a.mode=Ls,e===hs)break t;case Ls:a.mode=16195;case 16195:if(f=a.length,f){if(f>c&&(f=c),f>o&&(f=o),0===f)break t;n.set(i.subarray(s,s+f),r),c-=f,s+=f,o-=f,r+=f,a.length-=f;break}a.mode=As;break;case 16196:for(;h<14;){if(0===c)break t;c--,l+=i[s++]<>>=5,h-=5,a.ndist=1+(31&l),l>>>=5,h-=5,a.ncode=4+(15&l),l>>>=4,h-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=Ns;break}a.have=0,a.mode=16197;case 16197:for(;a.have>>=3,h-=3}for(;a.have<19;)a.lens[x[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,z={bits:a.lenbits},L=cs(0,a.lens,0,19,a.lencode,0,a.work,z),a.lenbits=z.bits,L){t.msg="invalid code lengths set",a.mode=Ns;break}a.have=0,a.mode=16198;case 16198:for(;a.have>>24,v=H>>>16&255,b=65535&H,!(g<=h);){if(0===c)break t;c--,l+=i[s++]<>>=g,h-=g,a.lens[a.have++]=b;else{if(16===b){for(N=g+2;h>>=g,h-=g,0===a.have){t.msg="invalid bit length repeat",a.mode=Ns;break}y=a.lens[a.have-1],f=3+(3&l),l>>>=2,h-=2}else if(17===b){for(N=g+3;h>>=g,h-=g,y=0,f=3+(7&l),l>>>=3,h-=3}else{for(N=g+7;h>>=g,h-=g,y=0,f=11+(127&l),l>>>=7,h-=7}if(a.have+f>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=Ns;break}for(;f--;)a.lens[a.have++]=y}}if(a.mode===Ns)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=Ns;break}if(a.lenbits=9,z={bits:a.lenbits},L=cs(1,a.lens,0,a.nlen,a.lencode,0,a.work,z),a.lenbits=z.bits,L){t.msg="invalid literal/lengths set",a.mode=Ns;break}if(a.distbits=6,a.distcode=a.distdyn,z={bits:a.distbits},L=cs(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,z),a.distbits=z.bits,L){t.msg="invalid distances set",a.mode=Ns;break}if(a.mode=Hs,e===hs)break t;case Hs:a.mode=Bs;case Bs:if(c>=6&&o>=258){t.next_out=r,t.avail_out=o,t.next_in=s,t.avail_in=c,a.hold=l,a.bits=h,as(t,d),r=t.next_out,n=t.output,o=t.avail_out,s=t.next_in,i=t.input,c=t.avail_in,l=a.hold,h=a.bits,a.mode===As&&(a.back=-1);break}for(a.back=0;H=a.lencode[l&(1<>>24,v=H>>>16&255,b=65535&H,!(g<=h);){if(0===c)break t;c--,l+=i[s++]<>w)],g=H>>>24,v=H>>>16&255,b=65535&H,!(w+g<=h);){if(0===c)break t;c--,l+=i[s++]<>>=w,h-=w,a.back+=w}if(l>>>=g,h-=g,a.back+=g,a.length=b,0===v){a.mode=16205;break}if(32&v){a.back=-1,a.mode=As;break}if(64&v){t.msg="invalid literal/length code",a.mode=Ns;break}a.extra=15&v,a.mode=16201;case 16201:if(a.extra){for(N=a.extra;h>>=a.extra,h-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=16202;case 16202:for(;H=a.distcode[l&(1<>>24,v=H>>>16&255,b=65535&H,!(g<=h);){if(0===c)break t;c--,l+=i[s++]<>w)],g=H>>>24,v=H>>>16&255,b=65535&H,!(w+g<=h);){if(0===c)break t;c--,l+=i[s++]<>>=w,h-=w,a.back+=w}if(l>>>=g,h-=g,a.back+=g,64&v){t.msg="invalid distance code",a.mode=Ns;break}a.offset=b,a.extra=15&v,a.mode=16203;case 16203:if(a.extra){for(N=a.extra;h>>=a.extra,h-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=Ns;break}a.mode=16204;case 16204:if(0===o)break t;if(f=d-o,a.offset>f){if(f=a.offset-f,f>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=Ns;break}f>a.wnext?(f-=a.wnext,p=a.wsize-f):p=a.wnext-f,f>a.length&&(f=a.length),m=a.window}else m=n,p=r-a.offset,f=a.length;f>o&&(f=o),o-=f,a.length-=f;do{n[r++]=m[p++]}while(--f);0===a.length&&(a.mode=Bs);break;case 16205:if(0===o)break t;n[r++]=a.length,o--,a.mode=Bs;break;case zs:if(a.wrap){for(;h<32;){if(0===c)break t;c--,l|=i[s++]<{if(Vs(t))return ps;let e=t.state;return e.window&&(e.window=null),t.state=null,us},inflateGetHeader:(t,e)=>{if(Vs(t))return ps;const a=t.state;return 0==(2&a.wrap)?ps:(a.head=e,e.done=!1,us)},inflateSetDictionary:(t,e)=>{const a=e.length;let i,n,s;return Vs(t)?ps:(i=t.state,0!==i.wrap&&i.mode!==Cs?ps:i.mode===Cs&&(n=1,n=ki(n,e,a,0),n!==i.check)?ms:(s=Ts(t,e,a,a),s?(i.mode=16210,gs):(i.havedict=1,us)))},inflateInfo:"pako inflate (from Nodeca project)"},Fs=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Gs=Object.prototype.toString,{Z_NO_FLUSH:Ks,Z_FINISH:Us,Z_OK:qs,Z_STREAM_END:js,Z_NEED_DICT:Ys,Z_STREAM_ERROR:Rs,Z_DATA_ERROR:Ws,Z_MEM_ERROR:Zs}=Ei;function Js(t){this.options=En.assign({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Fn,this.strm.avail_out=0;let a=Ps.inflateInit2(this.strm,e.windowBits);if(a!==qs)throw new Error(Oi[a]);if(this.header=new Fs,Ps.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Pn.string2buf(e.dictionary):"[object ArrayBuffer]"===Gs.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=Ps.inflateSetDictionary(this.strm,e.dictionary),a!==qs)))throw new Error(Oi[a])}function _s(t,e){const a=new Js(e);if(a.push(t),a.err)throw a.msg||Oi[a.err];return a.result}Js.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize,n=this.options.dictionary;let s,r,c;if(this.ended)return!1;for(r=e===~~e?e:!0===e?Us:Ks,"[object ArrayBuffer]"===Gs.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),s=Ps.inflate(a,r),s===Ys&&n&&(s=Ps.inflateSetDictionary(a,n),s===qs?s=Ps.inflate(a,r):s===Ws&&(s=Ys));a.avail_in>0&&s===js&&a.state.wrap>0&&0!==t[a.next_in];)Ps.inflateReset(a),s=Ps.inflate(a,r);switch(s){case Rs:case Ws:case Ys:case Zs:return this.onEnd(s),this.ended=!0,!1}if(c=a.avail_out,a.next_out&&(0===a.avail_out||s===js))if("string"===this.options.to){let t=Pn.utf8border(a.output,a.next_out),e=a.next_out-t,n=Pn.buf2string(a.output,t);a.next_out=e,a.avail_out=i-e,e&&a.output.set(a.output.subarray(t,t+e),0),this.onData(n)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(s!==qs||0!==c){if(s===js)return s=Ps.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},Js.prototype.onData=function(t){this.chunks.push(t)},Js.prototype.onEnd=function(t){t===qs&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=En.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var $s={Inflate:Js,inflate:_s,inflateRaw:function(t,e){return(e=e||{}).raw=!0,_s(t,e)},ungzip:_s,constants:Ei};const{Deflate:tr,deflate:er,deflateRaw:ar,gzip:ir}=ts,{Inflate:nr,inflate:sr,inflateRaw:rr,ungzip:cr}=$s;var or=cr;const lr="OBSIDIAN_LEAFLET_PLUGIN",hr=window.L;window.L||a(243),window[lr]=window.L,window[lr].Circle.mergeOptions({weight:he,opacity:ue}),a(660),a(857),window.L=hr;const ur=window[lr];class dr extends ur.DivIcon{constructor(t){super(t)}createIcon(t){const e=super.createIcon(t);for(let t in this.options.data)e.dataset[t]=this.options.data[t];return this.div=e,e}setData(t){if(this.options.data={...this.options.data,...t},this.div)for(let e in t)this.div.dataset[e]=this.options.data[e]}}const fr=function(t){return new dr(t)};class pr extends ur.Marker{constructor(t,e,a){super(t,e),this.options.icon.setData(a)}}var mr=453.59237,gr=1024,vr=8192,br=1048576,wr=8388608,Cr=1073741824,Ar=8589934592,yr=1099511627776,Lr=8796093022208,Hr=0x4000000000000,Br=9007199254740992,zr={__proto__:null,bit:[0,1,0],bits:[0,1,0],b:[0,1,0],unibit:[0,1,0],unibits:[0,1,0],millibit:[0,.001,0],millibits:[0,.001,0],centibit:[0,.01,0],centibits:[0,.01,0],decibit:[0,.1,0],decibits:[0,.1,0],crumb:[0,2,0],crumbs:[0,2,0],dibit:[0,2,0],dibits:[0,2,0],triad:[0,3,0],triads:[0,3,0],triade:[0,3,0],triades:[0,3,0],tribit:[0,3,0],tribits:[0,3,0],nibble:[0,4,0],nibbles:[0,4,0],tetrad:[0,4,0],tetrads:[0,4,0],tetrade:[0,4,0],tetrades:[0,4,0],quadbit:[0,4,0],quadbits:[0,4,0],semioctet:[0,4,0],semioctets:[0,4,0],halfbyte:[0,4,0],halfbytes:[0,4,0],quartet:[0,4,0],quartets:[0,4,0],pentad:[0,5,0],pentads:[0,5,0],hexad:[0,6,0],hexads:[0,6,0],hexade:[0,6,0],hexades:[0,6,0],sextet:[0,6,0],sextets:[0,6,0],heptad:[0,7,0],heptads:[0,7,0],heptade:[0,7,0],heptades:[0,7,0],byte:[0,8,0],bytes:[0,8,0],B:[0,8,0],octect:[0,8,0],octects:[0,8,0],octad:[0,8,0],octads:[0,8,0],octade:[0,8,0],octades:[0,8,0],decabit:[0,10,0],decabits:[0,10,0],declet:[0,10,0],decle:[0,10,0],deckle:[0,10,0],slab:[0,12,0],slabs:[0,12,0],hextet:[0,16,0],hextets:[0,16,0],catena:[0,24,0],catenas:[0,24,0],hectobit:[0,100,0],hectobits:[0,100,0],hbit:[0,100,0],kilobit:[0,1e3,0],kilobits:[0,1e3,0],kbit:[0,1e3,0],kibibit:[0,gr,0],kibibits:[0,gr,0],Kibit:[0,gr,0],kilobyte:[0,8e3,0],kilobytes:[0,8e3,0],kB:[0,8e3,0],kibibyte:[0,vr,0],kibibytes:[0,vr,0],KiB:[0,vr,0],megabit:[0,1e6,0],megabits:[0,1e6,0],Mbit:[0,1e6,0],mebibit:[0,br,0],mebibits:[0,br,0],Mibit:[0,br,0],megabyte:[0,8e6,0],megabytes:[0,8e6,0],MB:[0,8e6,0],mebibyte:[0,wr,0],mebibytes:[0,wr,0],MiB:[0,wr,0],gigabit:[0,1e9,0],gigabits:[0,1e9,0],Gbit:[0,1e9,0],gibibit:[0,Cr,0],gibibits:[0,Cr,0],Gibit:[0,Cr,0],gigabyte:[0,8e9,0],gigabytes:[0,8e9,0],GB:[0,8e9,0],gibibyte:[0,Ar,0],gibibytes:[0,Ar,0],GiB:[0,Ar,0],terabit:[0,1e12,0],terabits:[0,1e12,0],Tbit:[0,1e12,0],tebibit:[0,yr,0],tebibits:[0,yr,0],Tibit:[0,yr,0],terabyte:[0,8e12,0],terabytes:[0,8e12,0],TB:[0,8e12,0],tebibyte:[0,Lr,0],tebibytes:[0,Lr,0],TiB:[0,Lr,0],petabit:[0,1e15,0],petabits:[0,1e15,0],Pbit:[0,1e15,0],pebibit:[0,Hr,0],pebibits:[0,Hr,0],Pibit:[0,Hr,0],petabyte:[0,8e15,0],petabytes:[0,8e15,0],PB:[0,8e15,0],pebibyte:[0,Br,0],pebibytes:[0,Br,0],PiB:[0,Br,0],meter:[1,1,0],meters:[1,1,0],metre:[1,1,0],metres:[1,1,0],m:[1,1,0],petameter:[1,1e15,0],petametre:[1,1e15,0],petameters:[1,1e15,0],petametres:[1,1e15,0],Pm:[1,1e15,0],terameter:[1,1e12,0],terametre:[1,1e12,0],terameters:[1,1e12,0],terametres:[1,1e12,0],Tm:[1,1e12,0],gigameter:[1,1e9,0],gigametre:[1,1e9,0],gigameters:[1,1e9,0],gigametres:[1,1e9,0],Gm:[1,1e9,0],megameter:[1,1e6,0],megametre:[1,1e6,0],megameters:[1,1e6,0],megametres:[1,1e6,0],Mm:[1,1e6,0],kilometer:[1,1e3,0],kilometre:[1,1e3,0],kilometers:[1,1e3,0],kilometres:[1,1e3,0],km:[1,1e3,0],hectometer:[1,100,0],hectometre:[1,100,0],hectometers:[1,100,0],hectometres:[1,100,0],hm:[1,100,0],decameter:[1,10,0],decametre:[1,10,0],decameters:[1,10,0],decametres:[1,10,0],dam:[1,10,0],decimeter:[1,.1,0],decimetre:[1,.1,0],decimeters:[1,.1,0],decimetres:[1,.1,0],dm:[1,.1,0],centimeter:[1,.01,0],centimetre:[1,.01,0],centimeters:[1,.01,0],centimetres:[1,.01,0],cm:[1,.01,0],millimeter:[1,.001,0],millimetre:[1,.001,0],millimeters:[1,.001,0],millimetres:[1,.001,0],mm:[1,.001,0],micrometer:[1,1e-7,0],micrometre:[1,1e-7,0],micrometers:[1,1e-7,0],micrometres:[1,1e-7,0],μm:[1,1e-7,0],nanometer:[1,1e-9,0],nanometre:[1,1e-9,0],nanometers:[1,1e-9,0],nanometres:[1,1e-9,0],nm:[1,1e-9,0],picometer:[1,1e-12,0],picometre:[1,1e-12,0],picometers:[1,1e-12,0],picometres:[1,1e-12,0],pm:[1,1e-12,0],femtometer:[1,1e-15,0],femtometre:[1,1e-15,0],femtometers:[1,1e-15,0],femtometres:[1,1e-15,0],fm:[1,1e-15,0],foot:[1,.3048,0],feet:[1,.3048,0],ft:[1,.3048,0],inch:[1,.0254,0],inches:[1,.0254,0],in:[1,.0254,0],yard:[1,.9144,0],yards:[1,.9144,0],yd:[1,.9144,0],mile:[1,1609.344,0],miles:[1,1609.344,0],mi:[1,1609.344,0],"nautical mile":[1,1852,0],"nautical miles":[1,1852,0],M:[1,1852,0],NM:[1,1852,0],nmi:[1,1852,0],kilogram:[2,1e3,0],kilograms:[2,1e3,0],kg:[2,1e3,0],gram:[2,1,0],grams:[2,1,0],g:[2,1,0],decagram:[2,10,0],decagrams:[2,10,0],dag:[2,10,0],hectogram:[2,100,0],hectograms:[2,100,0],hg:[2,100,0],megagram:[2,1e6,0],megagrams:[2,1e6,0],Mg:[2,1e6,0],tonne:[2,1e6,0],tonnes:[2,1e6,0],"metric ton":[2,1e6,0],"metric tons":[2,1e6,0],t:[2,1e6,0],gigagram:[2,1e9,0],gigagrams:[2,1e9,0],Gg:[2,1e9,0],teragram:[2,1e12,0],teragrams:[2,1e12,0],Tg:[2,1e12,0],petagram:[2,1e15,0],petagrams:[2,1e15,0],Pg:[2,1e15,0],exagram:[2,1e18,0],exagrams:[2,1e18,0],Eg:[2,1e18,0],zettagram:[2,1e21,0],zettagrams:[2,1e21,0],Zg:[2,1e21,0],yottagram:[2,1e24,0],yottagrams:[2,1e24,0],Yg:[2,1e24,0],decigram:[2,.1,0],decigrams:[2,.1,0],dg:[2,.1,0],centigram:[2,.01,0],centigrams:[2,.01,0],cg:[2,.01,0],milligram:[2,.001,0],milligrams:[2,.001,0],mg:[2,.001,0],microgram:[2,1e-6,0],micrograms:[2,1e-6,0],µg:[2,1e-6,0],nanogram:[2,1e-9,0],nanograms:[2,1e-9,0],ng:[2,1e-9,0],picogram:[2,1e-12,0],picograms:[2,1e-12,0],pg:[2,1e-12,0],femtogram:[2,1e-15,0],femtograms:[2,1e-15,0],fg:[2,1e-15,0],attogram:[2,1e-18,0],attograms:[2,1e-18,0],ag:[2,1e-18,0],zeptogram:[2,1e-21,0],zeptograms:[2,1e-21,0],zg:[2,1e-21,0],yoctogram:[2,1e-24,0],yoctograms:[2,1e-24,0],yg:[2,1e-24,0],pound:[2,mr,0],pounds:[2,mr,0],lb:[2,mr,0],stone:[2,14*mr,0],stones:[2,14*mr,0],st:[2,14*mr,0],ounce:[2,28.349523125,0],ounces:[2,28.349523125,0],oz:[2,28.349523125,0],"℥":[2,28.349523125,0],"short ton":[2,907184.74,0],"short tons":[2,907184.74,0],"us ton":[2,907184.74,0],"us tons":[2,907184.74,0],"long ton":[2,2240*mr,0],"long tons":[2,2240*mr,0],"imperial ton":[2,2240*mr,0],"imperial tons":[2,2240*mr,0],"displacement ton":[2,2240*mr,0],"displacement tons":[2,2240*mr,0],pascal:[3,1,0],pascals:[3,1,0],Pa:[3,1,0],femtopascal:[3,1e-15,0],femtopascals:[3,1e-15,0],fPa:[3,1e-15,0],picopascal:[3,1e-12,0],picopascals:[3,1e-12,0],pPa:[3,1e-12,0],nanopascal:[3,1e-9,0],nanopascals:[3,1e-9,0],nPa:[3,1e-9,0],micropascal:[3,1e-6,0],micropascals:[3,1e-6,0],μPa:[3,1e-6,0],millipascal:[3,.001,0],millipascals:[3,.001,0],mPa:[3,.001,0],centipascal:[3,.01,0],centipascals:[3,.01,0],cPa:[3,.01,0],decipascal:[3,.1,0],decipascals:[3,.1,0],dPa:[3,.1,0],decapascal:[3,10,0],decapascals:[3,10,0],daPa:[3,10,0],hectopascal:[3,100,0],hectopascals:[3,100,0],hPa:[3,100,0],kilopascal:[3,1e3,0],kilopascals:[3,1e3,0],kPa:[3,1e3,0],megapascal:[3,1e6,0],megapascals:[3,1e6,0],MPa:[3,1e6,0],gigapascal:[3,1e9,0],gigapascals:[3,1e9,0],GPa:[3,1e9,0],terapascal:[3,1e12,0],terapascals:[3,1e12,0],TPa:[3,1e12,0],petapascal:[3,1e15,0],petapascals:[3,1e15,0],PPa:[3,1e15,0],bar:[3,1e5,0],femtobar:[3,1e-15,0],femtobars:[3,1e-15,0],fbar:[3,1e-15,0],picobar:[3,1e-12,0],picobars:[3,1e-12,0],pbar:[3,1e-12,0],nanobar:[3,1e-9,0],nanobars:[3,1e-9,0],nbar:[3,1e-9,0],microbar:[3,1e-6,0],microbars:[3,1e-6,0],μbar:[3,1e-6,0],millibar:[3,.001,0],millibars:[3,.001,0],mbar:[3,.001,0],centibar:[3,.01,0],centibars:[3,.01,0],cbar:[3,.01,0],decibar:[3,.1,0],decibars:[3,.1,0],dbar:[3,.1,0],decabar:[3,10,0],decabars:[3,10,0],dabar:[3,10,0],hectobar:[3,100,0],hectobars:[3,100,0],hbar:[3,100,0],kilobar:[3,1e3,0],kilobars:[3,1e3,0],kbar:[3,1e3,0],megabar:[3,1e6,0],megabars:[3,1e6,0],Mbar:[3,1e6,0],gigabar:[3,1e9,0],gigabars:[3,1e9,0],Gbar:[3,1e9,0],terabar:[3,1e12,0],terabars:[3,1e12,0],Tbar:[3,1e12,0],petabar:[3,1e15,0],petabars:[3,1e15,0],Pbar:[3,1e15,0],torr:[3,101325/760,0],millitorr:[3,101325/760/1e3,0],millitorrs:[3,101325/760/1e3,0],mTorr:[3,101325/760/1e3,0],atmosphere:[3,101325,0],atmospheres:[3,101325,0],atm:[3,101325,0],kelvin:[4,1,0],kelvins:[4,1,0],K:[4,1,0],fahrenheit:[4,5/9,273.15-32],F:[4,5/9,273.15-32],celsius:[4,1,273.15],C:[4,1,273.15],rankine:[4,5/9,0],R:[4,5/9,0],delisle:[4,2/-3,373.15],De:[4,2/-3,373.15],second:[5,1,0],seconds:[5,1,0],s:[5,1,0],century:[5,3155695200,0],centuries:[5,3155695200,0],c:[5,3155695200,0],day:[5,86400,0],days:[5,86400,0],d:[5,86400,0],decade:[5,315569520,0],decades:[5,315569520,0],dec:[5,315569520,0],fortnight:[5,1209600,0],fortnights:[5,1209600,0],fn:[5,1209600,0],helek:[5,3+1/3,0],halakim:[5,3+1/3,0],hour:[5,3600,0],hours:[5,3600,0],h:[5,3600,0],jiffy:[5,1/60,0],jiffies:[5,1/60,0],j:[5,1/60,0],ja:[5,.01,0],ke:[5,900,0],millennium:[5,31556952e3,0],millennia:[5,31556952e3,0],milliday:[5,86.4,0],millidays:[5,86.4,0],md:[5,86.4,0],minute:[5,60,0],minutes:[5,60,0],min:[5,60,0],moment:[5,90,0],moments:[5,90,0],month:[5,2592e3,0],months:[5,2592e3,0],mo:[5,2592e3,0],shake:[5,1e-8,0],shakes:[5,1e-8,0],sigma:[5,1e-6,0],sigmas:[5,1e-6,0],svedberg:[5,1e-13,0],svedbergs:[5,1e-13,0],S:[5,1e-13,0],week:[5,604800,0],weeks:[5,604800,0],wk:[5,604800,0],year:[5,31536e3,0],years:[5,31536e3,0],a:[5,31536e3,0],y:[5,31536e3,0],yr:[5,31536e3,0],petasecond:[5,1e15,0],petaseconds:[5,1e15,0],Ps:[5,1e15,0],terasecond:[5,1e12,0],teraseconds:[5,1e12,0],Ts:[5,1e12,0],gigasecond:[5,1e9,0],gigaseconds:[5,1e9,0],Gs:[5,1e9,0],megasecond:[5,1e6,0],megaseconds:[5,1e6,0],Ms:[5,1e6,0],kilosecond:[5,1e3,0],kiloseconds:[5,1e3,0],ks:[5,1e3,0],hectosecond:[5,100,0],hectoseconds:[5,100,0],hs:[5,100,0],decasecond:[5,10,0],decaseconds:[5,10,0],das:[5,10,0],decisecond:[5,.1,0],deciseconds:[5,.1,0],ds:[5,.1,0],centisecond:[5,.01,0],centiseconds:[5,.01,0],cs:[5,.01,0],millisecond:[5,.001,0],milliseconds:[5,.001,0],ms:[5,.001,0],microsecond:[5,1e-7,0],microseconds:[5,1e-7,0],μs:[5,1e-7,0],nanosecond:[5,1e-9,0],nanoseconds:[5,1e-9,0],ns:[5,1e-9,0],picosecond:[5,1e-12,0],picoseconds:[5,1e-12,0],ps:[5,1e-12,0],femtosecond:[5,1e-15,0],femtoseconds:[5,1e-15,0],fs:[5,1e-15,0],"cubic meter":[6,1,0],"cubic meters":[6,1,0],"cubic metre":[6,1,0],"cubic metres":[6,1,0],"m³":[6,1,0],m3:[6,1,0],"cubic kilometer":[6,1e3,0],"cubic kilometre":[6,1e3,0],"cubic kilometers":[6,1e3,0],"cubic kilometres":[6,1e3,0],"km³":[6,1e3,0],km3:[6,1e3,0],"cubic hectometer":[6,1e6,0],"cubic hectometre":[6,1e6,0],"cubic hectometers":[6,1e6,0],"cubic hectometres":[6,1e6,0],"hm³":[6,1e6,0],hm3:[6,1e6,0],"cubic decameter":[6,10,0],"cubic decametre":[6,10,0],"cubic decameters":[6,10,0],"cubic decametres":[6,10,0],"dam³":[6,10,0],dam3:[6,10,0],"cubic decimeter":[6,.1,0],"cubic decimetre":[6,.1,0],"cubic decimeters":[6,.1,0],"cubic decimetres":[6,.1,0],"dm³":[6,.1,0],dm3:[6,.1,0],"cubic centimeter":[6,1e-6,0],"cubic centimetre":[6,1e-6,0],"cubic centimeters":[6,1e-6,0],"cubic centimetres":[6,1e-6,0],"cm³":[6,1e-6,0],cc:[6,1e-6,0],cm3:[6,1e-6,0],"cubic millimeter":[6,.001,0],"cubic millimetre":[6,.001,0],"cubic millimeters":[6,.001,0],"cubic millimetres":[6,.001,0],"mm³":[6,.001,0],mm3:[6,.001,0],gigaliter:[6,1e6,0],gigalitre:[6,1e6,0],gigaliters:[6,1e6,0],gigalitres:[6,1e6,0],Gl:[6,1e6,0],GL:[6,1e6,0],megaliter:[6,1e3,0],megalitre:[6,1e3,0],megaliters:[6,1e3,0],megalitres:[6,1e3,0],Ml:[6,1e3,0],ML:[6,1e3,0],kiloliter:[6,1,0],kilolitre:[6,1,0],kiloliters:[6,1,0],kilolitres:[6,1,0],kl:[6,1,0],kL:[6,1,0],hectoliter:[6,.1,0],hectolitre:[6,.1,0],hectoliters:[6,.1,0],hectolitres:[6,.1,0],hl:[6,.1,0],hL:[6,.1,0],decaliter:[6,.01,0],decalitre:[6,.01,0],decaliters:[6,.01,0],decalitres:[6,.01,0],dal:[6,.01,0],daL:[6,.01,0],liter:[6,.001,0],litre:[6,.001,0],liters:[6,.001,0],litres:[6,.001,0],l:[6,.001,0],L:[6,.001,0],deciliter:[6,1e-4,0],decilitre:[6,1e-4,0],deciliters:[6,1e-4,0],decilitres:[6,1e-4,0],dl:[6,1e-4,0],dL:[6,1e-4,0],centiliter:[6,1e-5,0],centilitre:[6,1e-5,0],centiliters:[6,1e-5,0],centilitres:[6,1e-5,0],cl:[6,1e-5,0],cL:[6,1e-5,0],milliliter:[6,1e-6,0],millilitre:[6,1e-6,0],milliliters:[6,1e-6,0],millilitres:[6,1e-6,0],ml:[6,1e-6,0],mL:[6,1e-6,0],microliter:[6,1e9,0],microlitre:[6,1e9,0],microliters:[6,1e9,0],microlitres:[6,1e9,0],μl:[6,1e9,0],μL:[6,1e9,0],stere:[6,1,0],steres:[6,1,0],"cubic mile":[6,4200,0],"cubic miles":[6,4200,0],"cu mi":[6,4200,0],cumi:[6,4200,0],mi3:[6,4200,0],"acre-foot":[6,1233.48183754752,0],"acre-feet":[6,1233.48183754752,0],"ac⋅ft":[6,1233.48183754752,0],"ac ft":[6,1233.48183754752,0],"cubic yard":[6,.76,0],"cubic yards":[6,.76,0],"cu yd":[6,.76,0],cuyd:[6,.76,0],yd3:[6,.76,0],"cubic foot":[6,.028,0],"cubic feet":[6,.028,0],"cu ft":[6,.028,0],cuft:[6,.028,0],ft3:[6,.028,0],cufoot:[6,.028,0],foot3:[6,.028,0],"board foot":[6,.002359737,0],"board feet":[6,.002359737,0],"cubic inch":[6,16387064e-12,0],"cubic inches":[6,16387064e-12,0],"cu in":[6,16387064e-12,0],cuin:[6,16387064e-12,0],in3:[6,16387064e-12,0],"measurement ton":[6,1.133,0],"measurement tons":[6,1.133,0],MTON:[6,1.133,0],"imperial barrel":[6,.16,0],"imperial barrels":[6,.16,0],"imp bbl":[6,.16,0],impbbl:[6,.16,0],kilderkin:[6,.08318,0],kilderkins:[6,.08318,0],firkin:[6,.041,0],firkins:[6,.041,0],"imperial bushel":[6,.03636872,0],"imperial bushels":[6,.03636872,0],"imp bsh":[6,.03636872,0],"imp bu":[6,.03636872,0],impbsh:[6,.03636872,0],impbu:[6,.03636872,0],"imperial peck":[6,.00909218,0],"imperial pecks":[6,.00909218,0],pk:[6,.00909218,0],imppk:[6,.00909218,0],"imperial quart":[6,.0011365225,0],"imperial quarts":[6,.0011365225,0],"imp qt":[6,.0011365225,0],impqt:[6,.0011365225,0],"imperial gallon":[6,.00454609,0],"imperial gallons":[6,.00454609,0],"imp gal":[6,.00454609,0],impgal:[6,.00454609,0],"imperial pint":[6,.00056826125,0],"imperial pints":[6,.00056826125,0],"imp pt":[6,.00056826125,0],imppt:[6,.00056826125,0],gill:[6,.0001420653125,0],gills:[6,.0001420653125,0],gi:[6,.0001420653125,0],impgi:[6,.0001420653125,0],"imperial fluid ounce":[6,284130625e-13,0],"imperial fluid ounces":[6,284130625e-13,0],"imp fl oz":[6,284130625e-13,0],impoz:[6,284130625e-13,0],"US barrel":[6,.164,0],"US barrels":[6,.164,0],"US bbl":[6,.164,0],"U.S. bbl":[6,.164,0],USbbl:[6,.164,0],usbbl:[6,.164,0],"U.S.bbl":[6,.164,0],barrel:[6,1/6.2898,0],barrels:[6,1/6.2898,0],bbl:[6,1/6.2898,0],oilbbl:[6,1/6.2898,0],"US beer barrel":[6,.117,0],"US beer barrels":[6,.117,0],USbeerbbl:[6,.117,0],usbeerbbl:[6,.117,0],"U.S.beerbbl":[6,.117,0],"US gallon":[6,1/264.1721,0],"US gallons":[6,1/264.1721,0],"US gal":[6,1/264.1721,0],"U.S. gal":[6,1/264.1721,0],USgal:[6,1/264.1721,0],usgal:[6,1/264.1721,0],"U.S.gal":[6,1/264.1721,0],"US quart":[6,.000946352946,0],"US quarts":[6,.000946352946,0],"US qt":[6,.000946352946,0],"U.S. qt":[6,.000946352946,0],USqt:[6,.000946352946,0],usqt:[6,.000946352946,0],"U.S.qt":[6,.000946352946,0],"US pint":[6,.000473176473,0],"US pints":[6,.000473176473,0],"US pt":[6,.000473176473,0],"U.S. pt":[6,.000473176473,0],USpt:[6,.000473176473,0],uspt:[6,.000473176473,0],"U.S.pt":[6,.000473176473,0],"US gill":[6,118e-6,0],"US gills":[6,118e-6,0],USgi:[6,118e-6,0],usgi:[6,118e-6,0],"U.S.gi":[6,118e-6,0],"US fluid ounce":[6,295735295625e-16,0],"US fluid ounces":[6,295735295625e-16,0],"US fl oz":[6,295735295625e-16,0],USoz:[6,295735295625e-16,0],USflox:[6,295735295625e-16,0],usoz:[6,295735295625e-16,0],usfloz:[6,295735295625e-16,0],"U.S.oz":[6,295735295625e-16,0],"U.S.floz":[6,295735295625e-16,0],"US dry barrel":[6,.12,0],"US dry barrels":[6,.12,0],"US dry bbl":[6,.12,0],"U.S. dry bbl":[6,.12,0],USdrybbl:[6,.12,0],usdrybbl:[6,.12,0],drybbl:[6,.12,0],"U.S.drybbl":[6,.12,0],"US bushel":[6,.0352391,0],"US bushels":[6,.0352391,0],"US bsh":[6,.0352391,0],"U.S. bsh":[6,.0352391,0],USbsh:[6,.0352391,0],usbsh:[6,.0352391,0],"U.S.bsh":[6,.0352391,0],"US bu":[6,.0352391,0],"U.S. bu":[6,.0352391,0],USbu:[6,.0352391,0],usbu:[6,.0352391,0],"U.S.bu":[6,.0352391,0],"US kenning":[6,.12,0],"US kennings":[6,.12,0],"U.S. kenning":[6,.12,0],USkenning:[6,.12,0],"U.S.kenning":[6,.12,0],uskenning:[6,.12,0],"US peck":[6,.00909218,0],"US pk":[6,.00909218,0],"U.S. pk":[6,.00909218,0],Uspk:[6,.00909218,0],uspk:[6,.00909218,0],"U.S.pk":[6,.00909218,0],"US dry gallon":[6,.00440488377086,0],"US dry gal":[6,.00440488377086,0],"U.S. dry gal":[6,.00440488377086,0],USdrygal:[6,.00440488377086,0],usdrygal:[6,.00440488377086,0],drygal:[6,.00440488377086,0],"U.S.drygal":[6,.00440488377086,0],"US dry quart":[6,.000946352946,0],"US dry qt":[6,.000946352946,0],"U.S. dry qt":[6,.000946352946,0],USdryqt:[6,.000946352946,0],usdryqt:[6,.000946352946,0],dryqt:[6,.000946352946,0],"U.S.dryqt":[6,.000946352946,0],"US dry pint":[6,33.6003125,0],"US dry pt":[6,33.6003125,0],"U.S. dry pt":[6,33.6003125,0],USdrypt:[6,33.6003125,0],"U.S.drypt":[6,33.6003125,0],usdrypt:[6,33.6003125,0],drypt:[6,33.6003125,0],radian:[7,1,0],radians:[7,1,0],rad:[7,1,0],rads:[7,1,0],r:[7,1,0],turn:[7,2*Math.PI,0],turns:[7,2*Math.PI,0],degree:[7,Math.PI/180,0],degrees:[7,Math.PI/180,0],deg:[7,Math.PI/180,0],degs:[7,Math.PI/180,0],"°":[7,Math.PI/180,0],gradian:[7,Math.PI/200,0],gradians:[7,Math.PI/200,0],gon:[7,Math.PI/200,0],gons:[7,Math.PI/200,0],grad:[7,Math.PI/200,0],grads:[7,Math.PI/200,0],grade:[7,Math.PI/200,0],grades:[7,Math.PI/200,0],newton:[8,1,0],newtons:[8,1,0],N:[8,1,0],dyne:[8,1e-5,0],dynes:[8,1e-5,0],dyn:[8,1e-5,0],"kilogram-force":[8,9.80665,0],kgf:[8,9.80665,0],kilopond:[8,9.80665,0],kiloponds:[8,9.80665,0],kp:[8,9.80665,0],"pound of force":[8,4.448222,0],"pound-force":[8,4.448222,0],lbf:[8,4.448222,0],poundal:[8,.138255,0],poundals:[8,.138255,0],pdl:[8,.138255,0]};const Nr=function(t){return{from:function(e){return{to:function(a){var i=zr[e],n=zr[a];if(i[0]!==n[0])throw new Error;var s=i[1]/n[1];return"bigint"==typeof t?t*BigInt(s)+(BigInt(i[2])-BigInt(n[2])):t*s+(i[2]-n[2])}}}}};let xr=window[lr];class Dr{constructor(t,e,a){this.map=t,this.target=e,this.options={...me,...a},this.map.on("should-close-popup",(t=>{this.options.permanent||t!=this&&this.close()}))}get displayMarkerTooltips(){return this.map.plugin.data.displayMarkerTooltips}get displayOverlayTooltips(){return this.map.plugin.data.displayOverlayTooltips}canShowTooltip(t,e){const a=t instanceof Ec?this.displayMarkerTooltips:this.displayOverlayTooltips;return"always"===e||!("hover"!==e||!a)||"never"!==e&&a}onZoomAnim(){this.target instanceof xr.Circle&&(this.leafletInstance.options.offset=new xr.Point(0,-1*this.target.getElement().getBoundingClientRect().height/2+10),this.leafletInstance.update())}onTimeOut(){this.handlerTarget instanceof xr.LatLng||this.handlerTarget instanceof xr.Layer||(this.handlerTarget.leafletInstance.off("mouseenter",this.onMouseOver),this.handlerTarget.leafletInstance.off("mouseout",this.onMouseOut)),this.handlerTarget instanceof xr.Layer&&this.handlerTarget.off("mouseout",this.onMouseOut).off("mouseenter",this.onMouseOver),this.leafletInstance.getElement().removeEventListener("mouseenter",this.onMouseOver),this.leafletInstance.getElement().removeEventListener("mouseleave",this.onMouseOut),this.map.leafletInstance.off("zoom",this.onZoomAnim),this.options.permanent||this.close()}onMouseOut(){clearTimeout(this._timeoutHandler),this.options.permanent||(this._timeoutHandler=setTimeout((()=>this.onTimeOut()),500))}onMouseOver(){clearTimeout(this._timeoutHandler)}setTarget(t){return this.target=t,this.leafletInstance=this.getPopup(),this}open(t,e){if("tooltip"in this.target&&!this.canShowTooltip(this.target))return;if(this.leafletInstance||(this.leafletInstance=this.getPopup()),this._timeoutHandler&&clearTimeout(this._timeoutHandler),this.leafletInstance.isOpen())return this.leafletInstance.setContent(t),void(this.target instanceof xr.Polyline&&this.leafletInstance.setLatLng(this.target.getLatLngs()[1]));let a;this.map.trigger("should-close-popup",this),this.target instanceof xr.Polyline&&this.target.on("remove",(()=>this.close())),this.handlerTarget=e??this.target,this.leafletInstance&&this.leafletInstance.isOpen()&&(this.close(),this.target instanceof xr.Layer&&this.target.closePopup()),this.leafletInstance.setContent(t),this.map.leafletInstance.on("popupopen",(()=>{this.options.permanent||(a=this.leafletInstance.getElement(),a.addEventListener("mouseenter",this.onMouseOver.bind(this)),a.addEventListener("mouseleave",this.onMouseOut.bind(this)))})),this.map.leafletInstance.addLayer(this.leafletInstance),this.handlerTarget instanceof Tc&&this.map.leafletInstance.on("zoom",this.onZoomAnim.bind(this)),this.options.permanent||(this.handlerTarget instanceof xr.LatLng?this._timeoutHandler=setTimeout((()=>{a.removeEventListener("mouseenter",this.onMouseOver),a.removeEventListener("mouseleave",this.onMouseOut),this.close()}),1e3):this.handlerTarget instanceof xr.Layer?this.handlerTarget.on("mouseout",this.onMouseOut.bind(this)).on("mouseenter",this.onMouseOver.bind(this)):this.handlerTarget.leafletInstance.on("mouseout",this.onMouseOut.bind(this)).on("mouseenter",this.onMouseOver.bind(this)))}close(){this.leafletInstance&&(this.target instanceof Ec&&"always"===this.target.tooltip||this.leafletInstance.removeFrom(this.map.leafletInstance))}getPopup(){return this.leafletInstance&&this.leafletInstance.isOpen()&&this.close(),this.buildPopup()}buildPopup(){return this.target instanceof xr.LatLng?xr.popup(this.options).setLatLng(this.target):this.target instanceof xr.Polyline?xr.popup(this.options).setLatLng(this.target.getLatLngs()[1]):this.target instanceof xr.Marker?xr.popup({...this.options,offset:new xr.Point(0,-1*this.target.getElement().getBoundingClientRect().height/2)}).setLatLng(this.target.getLatLng()):this.target instanceof Tc?xr.popup({...this.options,offset:new xr.Point(0,-1*this.target.leafletInstance.getElement().getBoundingClientRect().height/2+10)}).setLatLng(this.target.leafletInstance.getLatLng()):xr.popup({...this.options,offset:new xr.Point(0,-1*this.target.leafletInstance.getElement().getBoundingClientRect().height/2)}).setLatLng(this.target.leafletInstance.getLatLng())}isOpen(){return this.leafletInstance&&this.leafletInstance.isOpen()}setContent(t){this.leafletInstance||(this.leafletInstance=this.getPopup()),this.leafletInstance.setContent(t)}setLatLng(t){this.leafletInstance||(this.leafletInstance=this.getPopup()),this.leafletInstance.setLatLng(t)}}function Vr(t,e,a){return new Dr(t,e,a)}const Mr=window[lr];class Sr extends Mr.Control{constructor(t,e){super(t),this.map=e,this.popups=[]}get lines(){return this.map.previousDistanceLines}getPopup(){return Vr(this.map,null,{permanent:!0,className:"leaflet-marker-link-popup",autoClose:!1,closeButton:!1,closeOnClick:!1,autoPan:!1})}initEvents(){this.controlEl.onmouseenter=this.onMouseEnter.bind(this),this.controlEl.onclick=this.onClick.bind(this),this.controlEl.onmouseleave=this.onMouseLeave.bind(this)}onMouseEnter(){if(this.lines.length){const t=this.lines[0].getLatLngs()[0],e=this.getPopup().setTarget(this.lines[0].getLatLngs()[0]);e.open(`[${t.lat.toLocaleString("en-US",{maximumFractionDigits:4})}, ${t.lng.toLocaleString("en-US",{maximumFractionDigits:4})}]`),this.popups.push(e),this.map.leafletInstance.openPopup(e.leafletInstance);for(let t=0;tthis.onClick(t)))}onAdd(t){return this.leafletInstance=t,kr.DomEvent.disableClickPropagation(this.controlEl),kr.DomEvent.disableScrollPropagation(this.controlEl),this.added(),this.controlEl}added(){}disable(){this.enabled&&(this.controlEl.addClass("disabled"),this.enabled=!1)}enable(){this.enabled||(this.controlEl.removeClass("disabled"),this.enabled=!0)}setTooltip(t){this.tooltip=t,this.controlEl.children[0].setAttrs({"aria-label":this.tooltip})}removeTooltip(){this.tooltip=null,this.controlEl.children[0].removeAttribute("aria-label")}setIcon(t){this.iconEl.empty(),this.icon=t,this.iconEl.appendChild(Ut({prefix:"fas",iconName:this.icon}).node[0])}}const Ir=window[lr];class Or extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e,this.map.on("markers-updated",(()=>{this.map.markers.length||this.map.overlays.length?this.enable():this.disable()}))}onClick(t){this.expand()}added(){this.section=this.controlEl.createEl("section",{cls:this.cls+"-list"}),Ir.DomEvent.disableClickPropagation(this.controlEl),Ir.DomEvent.disableScrollPropagation(this.controlEl),this.iconEl.dataset.draggable="false",this.map.leafletInstance.on("click",this.collapse,this),Ir.DomEvent.on(this.controlEl,"mouseenter",(()=>this.expand())),Ir.DomEvent.on(this.controlEl,"mouseleave",(()=>this.collapse())),t.Platform.isMobile?Ir.DomEvent.on(this.controlEl,"click",this.expand,this):Ir.DomEvent.on(this.controlEl,"focus",this.expand,this)}expand(){if(!this.enabled)return;if(this.expanded)return;this.expanded=!0,Ir.DomUtil.addClass(this.controlEl,"expanded"),this.draw(),this.section.style.height=null;const t=this.leafletInstance.getSize().y-(this.controlEl.offsetTop+50);return t{t.stopPropagation(),this.map.markerIcons.forEach((({type:t})=>{this.show(t)})),this.update()},t.createEl("button",{text:Ce("None")}).onclick=t=>{t.stopPropagation(),this.map.markerIcons.forEach((({type:t})=>{this.hide(t)})),this.update()};const e=this.section.createEl("div","input-container");for(let[t,a]of this.map.markerIcons.entries())if(this.map.currentGroup.markers[t]&&this.map.currentGroup.markers[t].getLayers().length){const i=e.createEl("div","input-item"),n=Ne(),s=i.createEl("input",{attr:{id:"leaflet-control-expandable-item-label-"+n,...this.map.displaying.get(t)?{checked:!0}:{}},type:"checkbox"}),r=i.createEl("label",{attr:{for:"leaflet-control-expandable-item-label-"+n}});r.createDiv({cls:"leaflet-control-expandable-icon"}).innerHTML=a.html,r.createDiv({text:t[0].toUpperCase()+t.slice(1).toLowerCase()}),s.addEventListener("click",(e=>{s.checked?this.show(t):this.map.displaying.get(t)&&this.hide(t),this.map.displaying.set(t,s.checked)})),this.inputs.set(t,s)}if(this.map.currentGroup.markers.custom&&this.map.currentGroup.markers.custom.getLayers()?.length){const t=e.createEl("div","input-item"),a=Ne(),i=t.createEl("input",{attr:{id:"leaflet-control-expandable-item-label-"+a,...this.map.displaying.get("custom")?{checked:!0}:{}},type:"checkbox"});t.createEl("label",{attr:{for:"leaflet-control-expandable-item-label-"+a}}).createDiv({text:"Custom"}),i.addEventListener("click",(t=>{i.checked?this.show("custom"):this.map.displaying.get("custom")&&this.hide("custom"),this.map.displaying.set("custom",i.checked)})),this.inputs.set("custom",i)}}update(){for(let[t,e]of this.inputs)e.checked=this.map.displaying.get(t)}show(t){this.map.currentGroup.markers[t].addTo(this.leafletInstance),this.map.overlays.filter((e=>e.type===t)).forEach((t=>t.leafletInstance.addTo(this.map.currentGroup.group))),this.map.sortOverlays(),this.map.displaying.set(t,!0)}hide(t){this.map.currentGroup.markers[t].remove(),this.map.overlays.filter((e=>e.type===t)).forEach((t=>t.leafletInstance.remove())),this.map.displaying.set(t,!1)}}class Er extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e,this.map.leafletInstance.on("zoomend zoom zoomstart",(()=>{this.controlEl.setAttr("aria-label",`Reset Zoom\nCurrent: ${this.map.leafletInstance.getZoom()}`)}))}onAdd(t){return this.controlEl.setAttr("aria-label",`Reset Zoom\nCurrent: ${this.map.leafletInstance.getZoom()}`),this.controlEl}onClick(t){this.map.resetZoom()}}window[lr];class Xr extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e,this.map.on("markers-updated",(()=>{this.map.markers.length?this.enable():this.disable()}))}onClick(t){this.enabled&&this.map.zoomAllMarkers()}}const Tr=window[lr];class Pr extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e}onClick(t){this.target||this.map.leafletInstance.fitBounds(this.map.gpxLayer.getBounds())}added(){this.controlEl.addClass("leaflet-control-gpx"),this.section=this.controlEl.createEl("section",{cls:this.cls+"-list"}),Tr.DomEvent.disableClickPropagation(this.controlEl),Tr.DomEvent.disableScrollPropagation(this.controlEl),this.iconEl.dataset.draggable="false"}setTarget(t){this.target&&this.removeTarget(),this.target=t,this.target.targeted=!0,this.removeTooltip(),this.expand()}removeTarget(){this.target.deselect(),this.target=null,this.collapse(),this.setTooltip(Ce("Zoom to %1 GPX Track%2",`${this.map.gpxData.length}`,1==this.map.gpxData.length?"":"s"))}expand(){if(!this.target)return;if(!this.target.parsed)return;this.expanded=!0,Tr.DomUtil.addClass(this.controlEl,"expanded"),this.draw(),this.section.style.height=null;const t=this.leafletInstance.getSize().y-(this.controlEl.offsetTop+50);return t{i||(i=!0,e=this.section.createDiv("gpx-data"),a=this.section.createEl("div","input-container"),a.createSpan({text:Ce("Heatlines")}))},s="imperial"===this.map.plugin.unitSystemForUnit(this.map.unit)?"mi":"km";if(this.target.data.length&&(n(),e.createDiv("data-item").createSpan({text:`Distance: ${ye(Nr(this.target.data.length).from("m").to(s),2)}${s}`})),this.target.flags.elevation){n();const t=e.createDiv("data-item"),i="imperial"===this.map.plugin.unitSystemForUnit(this.map.unit)?"ft":"m";t.createSpan({text:`${Ce("Elevation")}:`});const s=t.createDiv("gpx-elevation"),r=Nr(this.target.elevation.max).from("m").to(i),c=s.createDiv("elevation-gain");c.appendChild(Ut(_t("angle-up")).node[0]),c.createSpan({text:`${ye(r,0)}${i}`});const o=Nr(this.target.elevation.min).from("m").to(i),l=s.createDiv("elevation-loss");l.appendChild(Ut(_t("angle-down")).node[0]),l.createSpan({text:`${ye(o,0)}${i}`});const h=a.createDiv("input-item"),u=h.createEl("input",{attr:{id:"leaflet-gpx-control-ele","data-which":"ele",name:"leaflet-gpx-control-checkbox-group",..."ele"==this.target.displaying?{checked:!0}:{}},type:"checkbox"});h.createEl("label",{attr:{for:"leaflet-gpx-control-ele"},text:Ce("Elevation")}),u.onclick=t=>{this.trySwitch("ele")}}if(this.target.data.flags.speed){n();let t,i,s=this.target.speed.avg;switch(this.map.plugin.unitSystemForUnit(this.map.unit)){case"metric":s=60*Nr(s).from("m").to("km")*60,t="km/h",i="km";break;case"imperial":s=60*Nr(s).from("m").to("mi")*60,t="mph",i="mi"}e.createDiv("data-item").createSpan({text:`${Ce("Speed")}: ${ye(s,0)} ${t}`}),e.createDiv("data-item").createSpan({text:`${Ce("Pace")}: ${ye(60/s,0)}"/${i}`});const r=a.createDiv("input-item"),c=r.createEl("input",{attr:{id:"leaflet-gpx-control-speed","data-which":"speed",name:"leaflet-gpx-control-checkbox-group",..."speed"==this.target.displaying?{checked:!0}:{}},type:"checkbox"});r.createEl("label",{attr:{for:"leaflet-gpx-control-speed"},text:Ce("Speed")}),c.onclick=t=>{this.trySwitch("speed")}}if(this.target.flags.cad){n(),e.createDiv("data-item").createSpan({text:`${Ce("Cadence")}: ${this.target.cad.avg} ${Ce("spm")}`});const t=a.createDiv("input-item"),i=t.createEl("input",{attr:{id:"leaflet-gpx-control-cad","data-which":"cad",name:"leaflet-gpx-control-checkbox-group",..."cad"==this.target.displaying?{checked:!0}:{}},type:"checkbox"});t.createEl("label",{attr:{for:"leaflet-gpx-control-cad"},text:Ce("Cadence")}),i.onclick=t=>{this.trySwitch("cad")}}if(this.target.flags.hr){e.createDiv("data-item").createSpan({text:`${Ce("Heart Rate")}: ${this.target.hr.avg}`});const t=a.createDiv("input-item"),i=t.createEl("input",{attr:{id:"leaflet-gpx-control-hr","data-which":"hr",name:"leaflet-gpx-control-checkbox-group",..."hr"==this.target.displaying?{checked:!0}:{}},type:"checkbox"});t.createEl("label",{attr:{for:"leaflet-gpx-control-hr"},text:Ce("Heart Rate")}),i.onclick=t=>{this.trySwitch("hr")}}const r=this.section.createDiv("control-buttons");new t.ExtraButtonComponent(r).setIcon(Yt).setTooltip(Ce("Zoom to GPX")).onClick((()=>{this.map.leafletInstance.fitBounds(this.target.leafletInstance.getBounds())})),new t.ExtraButtonComponent(r).setIcon("cross-in-box").setTooltip(Ce("Deselect")).onClick((()=>{this.removeTarget()}))}trySwitch(t){this.target.displaying===t?this.target.switch("default"):this.target.switch(t),this.draw()}}class Fr extends t.Modal{constructor(t){super(t.app),this.plugin=t}onOpen(){this.containerEl.addClass("leaflet-edit-parameters");const e=new t.TextAreaComponent(this.contentEl);e.setValue(JSON.stringify(this.plugin.data.mapViewParameters,null,4)),e.inputEl.setAttr("style","width: 100%; min-height: 500px;");const a=this.contentEl.createDiv("context-buttons");new t.ButtonComponent(a).setIcon("checkmark").setTooltip(Ce("Save")).onClick((async()=>{try{this.plugin.data.mapViewParameters=JSON.parse(e.inputEl.value),await this.plugin.saveSettings(),this.plugin.view&&this.plugin.view.update(),this.close()}catch(e){new t.Notice(Ce("There was an error parsing the JSON.")+`\n\n${e.message}`)}})),new t.ExtraButtonComponent(a).setIcon("cross").setTooltip(Ce("Cancel")).onClick((()=>this.close()))}onClose(){}}class Gr extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e}onClick(t){const e=new Fr(this.map.plugin);e.onClose=()=>{},e.open()}}class Kr extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e}async onClick(t){this.map.plugin.data.mapViewParameters=this.map.renderer.params,this.map.trigger("should-save")}}class Ur extends Qr{constructor(t){super({icon:"check",cls:"leaflet-control-complete",tooltip:"Finish"},t.map.leafletInstance),this.drawControl=t}onClick(t){t.stopPropagation(),this.drawControl.controller.newShape(this.drawControl.controller.shape.newInstance())}}class qr extends Qr{constructor(t){super({icon:"undo-alt",cls:"leaflet-control-undo",tooltip:"Undo"},t.map.leafletInstance),this.drawControl=t}onClick(t){t.stopPropagation(),this.drawControl.controller.shape.undo()}}class jr extends Qr{constructor(t){super({icon:"times-circle",cls:"leaflet-control-cancel",tooltip:"Cancel"},t.map.leafletInstance),this.drawControl=t}onClick(t){t.stopPropagation(),this.drawControl.parent.stopDrawingContext()}}class Yr extends Qr{constructor(t,e){super(t,e.map.leafletInstance),this.parent=e,this.complete=new Ur(this),this.undo=new qr(this),this.cancel=new jr(this),this.actionsEl=this.controlEl.createDiv("control-actions"),this.draw()}get map(){return this.parent.map}get controller(){return this.parent.controller}onClick(){this.openActions()}openActions(){this.actionsEl.addClass("expanded")}closeActions(){this.actionsEl.removeClass("expanded")}}class Rr extends Yr{constructor(t){super({icon:"circle",cls:"leaflet-control-has-actions leaflet-control-draw-paint",tooltip:Ce("Color")},t),this.fill=new Zr(this),this.pick=new Wr(this),this.iconEl.setAttr("style",`color: ${this.parent.controller.color}`),this.actionsEl.appendChild(this.fill.controlEl),this.actionsEl.appendChild(this.pick.controlEl)}onClick(){this.parent.stopDrawingContext(),this.openActions()}draw(){}updateColor(t){this.parent.controller.color=t,this.iconEl.setAttr("style",`color: ${this.parent.controller.color}`)}closeActions(){super.closeActions(),this.fill.setActive(!1)}}class Wr extends Qr{constructor(t){super({icon:"palette",cls:"leaflet-control-has-actions leaflet-control-draw-palette",tooltip:Ce("Color")},t.map.leafletInstance),this.drawControl=t,this.input=this.controlEl.createEl("input",{type:"color"}),this.input.oninput=t=>{this.drawControl.updateColor(t.target.value)},this.input.onchange=()=>{this.drawControl.fill.setActive(!0)}}onClick(){this.drawControl.fill.setActive(!1),this.input.click()}}class Zr extends Qr{constructor(t){super({icon:"fill-drip",cls:"leaflet-control-fill-color",tooltip:Ce("Fill Color")},t.map.leafletInstance),this.drawControl=t,this.active=!1}setActive(t){this.active=t,this.drawControl.controller.isColoring=t,t?this.controlEl.addClass("active"):this.controlEl.removeClass("active")}onClick(t){t.stopPropagation(),this.setActive(!this.active)}}var Jr=a(243);class _r extends t.Modal{constructor(t,e){super(t),this.onSubmit=e}onOpen(){const{contentEl:e}=this;e.createEl("h1",{text:Ce("Enter a file name.")}),new t.Setting(e).setName(Ce("File Name")).addText((t=>{t.onChange((t=>this.result=t))})),new t.Setting(e).addButton((t=>{t.setButtonText(Ce("Save")).setCta().onClick((()=>{this.close(),this.onSubmit(this.result)}))}))}onClose(){let{contentEl:t}=this;t.empty()}}class $r extends Qr{constructor(t){super({icon:"save",cls:"leaflet-control-has-actions leaflet-control-save",tooltip:Ce("Export Drawing to GeoJSON")},t.map.leafletInstance),this.parent=t}get map(){return this.parent.map}onClick(t){t.stopPropagation();const{plugin:e}=this.map,a=[];this.map.controller.flatShapes.forEach((t=>{t.leafletInstance instanceof Jr.Polyline&&a.push(t.leafletInstance)}));const i=JSON.stringify(a.map((t=>t.toGeoJSON()))),n=e.app.fileManager.getNewFileParent(e.app.workspace.getActiveFile().path);new _r(e.app,(t=>{e.app.vault.adapter.write(`${n.path}/${t}.json`,i)})).open()}}class tc{get mapLayer(){return this.layer?this.map.mapLayers?.find((({id:t})=>t===this.layer))??this.map.mapLayers[0]:this.map.mapLayers[0]}onShow(){}show(){this.group&&this.group.addLayer(this.leafletInstance),this.onShow()}onHide(){}hide(){this.group&&this.group.removeLayer(this.leafletInstance)}registerForShow(t){this.map.isLayerRendered(this.layer)?t():this.layer?this.map.on("layer-ready-for-features",(e=>{this.layer===e&&t()})):this.map.on("first-layer-ready",(e=>{this.layer=e,t()}))}checkAndAddToMap(){this.registerForShow(this.show.bind(this))}remove(){this.group&&this.group.removeLayer(this.leafletInstance)}}const ec=window[lr];class ac extends dr{constructor(){super({iconSize:new ec.Point(8,8),className:"leaflet-div-icon leaflet-vertex-icon"})}}class ic extends t.Events{constructor(t,e,a,i=Ne()){super(),this.parent=e,this.targets=a,this.id=i,this.selected=!1,this.isBeingHovered=!1,this.vertices=new Set,this.modifierState=!1,this.addMarkerTarget(a?.marker),this.addVertexTargets(...a?.vertices??[]),this.addTargetsById(),this.leafletInstance=new ec.Marker(t,{icon:new ac,draggable:!0,pane:"drawing-markers"}).addTo(this.parent.map.leafletInstance),this.registerDragEvents(),this.vertices.size&&this.vertices.forEach((t=>{t.addVertexTargets(this),t.marker=this.marker}))}incrementLatLng(t){const e=this.latlng.lat+t.lat,a=this.latlng.lng+t.lng;this.leafletInstance.setLatLng(ec.latLng(e,a)),this.marker&&this.marker.setLatLng(ec.latLng(e,a))}getLatLng(){return this.leafletInstance.getLatLng()}setLatLng(t){this.leafletInstance.setLatLng(t),this.parent.redraw(),this.marker&&this.marker.leafletInstance&&this.marker.leafletInstance.setLatLng(t),this.vertices.forEach((e=>e.updateLatLng(t)))}updateLatLng(t){this.leafletInstance.setLatLng(t),this.trigger("drag"),this.parent.redraw()}get latlng(){return this.getLatLng()}addTargetsById(){if(this.targets&&this.targets.vertexIds){let t=this.parent.controller.vertices;for(let e of this.targets.vertexIds){let a=t.find((t=>t.id==e));a&&this.addVertexTargets(a)}}if(this.targets&&this.targets.markerId){const t=this.parent.map.markers.find((t=>t.id==this.targets.markerId));if(!t)return;this.addMarkerTarget(t)}}addMarkerTarget(t,e=!0){t&&(this.marker=t,e&&this.vertices.forEach((t=>t.addMarkerTarget(this.marker,!1))),this.registerMarkerEvents())}addVertexTargets(...t){for(let e of t)e!=this&&(this.vertices.add(e),e.vertices.forEach((t=>this.vertices.add(t)&&t.vertices.add(this))),e.vertices.add(this),e.marker?this.addMarkerTarget(e.marker):this.marker&&(e.addMarkerTarget(this.marker),e.vertices.forEach((t=>t.addMarkerTarget(this.marker)))),e.on("delete",(()=>{this.vertices.delete(e)})));this.vertices.delete(this)}registerDragEvents(){this.leafletInstance.on("drag",((t,e)=>{ec.DomEvent.stopPropagation(t),this.modifierState=t.originalEvent?.getModifierState("Shift")??!1;let a=this.parent.getMousemoveDelta(t.latlng,this.latlng,this.modifierState);this.modifierState||(this.parent.controller.getVertexTargets(this)&&(a=this.parent.controller.getVertexTargets(this).getLatLng()),this.parent.map.markers.find((t=>t.isBeingHovered))&&(a=this.parent.map.markers.find((t=>t.isBeingHovered)).leafletInstance.getLatLng())),this.setLatLng(a),this.trigger("drag")})),this.leafletInstance.on("mouseover",(()=>{this.isBeingHovered=!0})),this.leafletInstance.on("mouseout",(()=>{this.isBeingHovered=!1})),this.leafletInstance.on("mousedown",(t=>{ec.DomEvent.stopPropagation(t),this.selected=!0})),this.leafletInstance.on("mouseup",(t=>{ec.DomEvent.stopPropagation(t),this.selected=!1})),this.leafletInstance.on("dragstart",(()=>{this.selected=!0,this.leafletInstance.setZIndexOffset(-1)})),this.leafletInstance.on("dragend",(t=>{if(ec.DomEvent.stopPropagation(t),this.leafletInstance.setZIndexOffset(0),!this.modifierState){if(this.parent.controller.getVertexTargets(this)){const t=this.parent.controller.getVertexTargets(this);this.addVertexTargets(t)}this.parent.map.markers.find((t=>t.isBeingHovered))&&(this.marker=this.parent.map.markers.find((t=>t.isBeingHovered)),this.registerMarkerEvents())}this.modifierState=!1,this.parent.redraw(),this.parent.map.trigger("should-save")})),this.leafletInstance.on("click",(t=>{ec.DomEvent.stopPropagation(t),this.parent.controller.isDrawing&&(this.selected=!1,this.parent.controller.shape.onClick(t,{vertices:[this]}))})),this.registerMarkerEvents()}unregisterMarkerEvents(){this.marker&&this.marker.leafletInstance.off("drag",this.onTargetDrag,this)}onTargetDrag(t){this.leafletInstance.fire("drag",t)}registerMarkerEvents(){this.marker&&(this.marker.leafletInstance.on("drag",this.onTargetDrag,this),this.marker.leafletInstance.on("remove",(()=>{this.unregisterMarkerEvents(),this.marker=null})))}delete(){this.trigger("delete"),this.unregisterMarkerEvents(),this.hide()}hide(){this.leafletInstance.remove()}show(){this.leafletInstance.addTo(this.parent.map.leafletInstance)}toProperties(){return{lat:this.latlng.lat,lng:this.latlng.lng,id:this.id,targets:{vertexIds:Array.from(this.vertices).map((t=>t.id)),markerId:this.marker?.id}}}static fromProperties(t,e){return new ic(ec.latLng(t.lat,t.lng),e,t.targets,t.id)}}class nc extends ec.DivIcon{constructor(){super({iconSize:new ec.Point(6,6),className:"leaflet-div-icon leaflet-mid-icon"})}}const sc=window[lr];class rc extends tc{constructor(t,e=[],a=t.color){super(),this.controller=t,this.color=a,this.layer="INTERNAL_SHAPE_LAYER",this.options={pane:"drawing",color:this.color,fillColor:this.color},this.vertices=[],this.map=this.controller.map,this.vertices=e.map((t=>ic.fromProperties(t,this))),this.hideVertices()}toProperties(){return{type:this.type,color:this.color,vertices:this.vertices.map((t=>t.toProperties()))}}registerEvents(){this.leafletInstance.on("click",(t=>{sc.DomEvent.stopPropagation(t),this.controller.isDeleting&&(this.hideVertices(),this.controller.removeShape(this)),this.controller.isColoring&&this.setColor(this.controller.color),this.controller.isAddingArrows&&"polyline"==this.type&&this.toggleArrows()})),this.leafletInstance.on("mousedown",(t=>{this.controller.isDragging&&(this.map.leafletInstance.dragging.disable(),this.dragStart=t.latlng,this.controller.draggingShape=this)})),this.leafletInstance.on("mouseup",(t=>{this.controller.isDragging&&(this.map.leafletInstance.dragging.enable(),this.controller.draggingShape=null,this.map.trigger("should-save"))}))}get group(){return this.map.drawingLayer}get latlngs(){return this.vertices.map((t=>t.getLatLng()))}onClick(t,e){let a=this.controller.getSelectedVertex();a?a.selected=!1:this._onClick(t,e)}onMousemove(t){let e=t.latlng;t.originalEvent.getModifierState("Shift")||(this.controller.vertices.find((t=>t.isBeingHovered))?e=this.controller.vertices.find((t=>t.isBeingHovered)).getLatLng():this.map.markers.find((t=>t.isBeingHovered))&&(e=this.map.markers.find((t=>t.isBeingHovered)).leafletInstance.getLatLng())),this._onMousemove(e,t.originalEvent.getModifierState("Shift"))}onDrag(t,e=!0){sc.DomEvent.stop(t),this.dragStart||(this.dragStart=t.latlng);const a=this.getMousemoveDelta(t.latlng,this.dragStart,t.originalEvent.getModifierState("Shift")),i=sc.latLng(a.lat-this.dragStart.lat,a.lng-this.dragStart.lng);if(this.vertices.forEach((t=>t.incrementLatLng(i))),this.redraw(),e){const e=new Set;this.vertices.forEach((t=>t.vertices.forEach((t=>t&&e.add(t.parent))))),e.forEach((e=>{e.dragStart=this.dragStart,e.onDrag(t,!1)}))}this.dragStart=t.latlng}checkAndAddToMap(){this.map.readyForDrawings?this.show():this.map.on("ready-for-drawings",(()=>this.show()))}show(){this.vertices.length&&(this.initialize(),this.registerEvents()),this.onShow()}showVertices(){this.vertices.forEach((t=>{t.show()}))}hideVertices(){this.vertices.forEach((t=>{t.hide()}))}getMousemoveDelta(t,e,a){if(a){const a=[Math.abs(t.lat-(e??this.latlngs[this.vertices.length-1]).lat),Math.abs(t.lng-(e??this.latlngs[this.vertices.length-1]).lng)];a[0]>a[1]?t.lng=(e??this.latlngs[this.vertices.length-1]).lng:t.lat=(e??this.latlngs[this.vertices.length-1]).lat}return t}setColor(t){this.color=t,this.leafletInstance.setStyle({fillColor:t,color:t}),this.map.trigger("should-save")}remove(){this.leafletInstance.remove(),this.hideVertices(),this.vertices.forEach((t=>t.delete())),this.vertices=[],this.map.trigger("should-save")}}const cc=window[lr];class oc extends rc{constructor(){super(...arguments),this.extensions={forward:{line:cc.polyline([],{...this.options,dashArray:"5,10",weight:1,interactive:!1,color:this.controller.color}),added:!1},backward:{line:cc.polyline([],{...this.options,dashArray:"5,10",weight:1,interactive:!1,color:this.controller.color}),added:!1}},this.leafletInstance=cc.polygon([],this.options).addTo(this.map.leafletInstance),this.type="polygon"}get canSave(){return this.vertices.length>=3}hideExtensions(){this.extensions.forward.line.remove(),this.extensions.forward.added=!1,this.extensions.backward.line.remove(),this.extensions.backward.added=!1}_onClick(t,e){this.vertices.push(new ic(this.mouseLoc??t.latlng,this,e)),this.redraw()}_onMousemove(t,e){this.vertices.length&&(this.mouseLoc=this.getMousemoveDelta(t,null,e),this.showExtensions(this.mouseLoc))}redraw(){this.leafletInstance.setLatLngs(this.latlngs),this.leafletInstance.redraw(),this.showExtensions(this.latlngs[this.vertices.length-1])}showExtensions(t){this.vertices.length>=1&&(this.extensions.forward.line.setLatLngs([this.latlngs[this.vertices.length-1],t]),this.extensions.forward.added?this.extensions.forward.line.redraw():(this.extensions.forward.line.addTo(this.map.leafletInstance),this.extensions.forward.added=!0)),this.vertices.length>1&&(this.extensions.backward.line.setLatLngs([this.latlngs[0],t]),this.extensions.backward.added?this.extensions.backward.line.redraw():(this.extensions.backward.line.addTo(this.map.leafletInstance),this.extensions.backward.added=!0))}stopDrawing(){this.extensions.forward.line.remove(),this.extensions.backward.line.remove(),this.vertices.length<3&&this.remove()}undo(){this.vertices.pop(),this.hideExtensions(),this.redraw()}newInstance(){return this.stopDrawing(),new oc(this.controller)}initialize(){this.hideVertices(),this.redraw()}}class lc extends Yr{constructor(t){super({icon:"draw-polygon",cls:"leaflet-control-has-actions leaflet-control-draw-polygon",tooltip:Ce("Polygon")},t),this.parent=t}draw(){this.actionsEl.appendChild(this.complete.controlEl),this.actionsEl.appendChild(this.undo.controlEl),this.actionsEl.appendChild(this.cancel.controlEl)}onClick(){this.parent.stopDrawingContext(),this.openActions(),this.controller.newShape(new oc(this.controller))}}const hc=window[lr];class uc extends rc{constructor(e,a=[],i=e.color,n=e.isAddingArrows,s=!1){super(e,a,i),this.arrows=n,this.reversed=s,this.triangleID=Ne(),this.triangleEl=hc.SVG.create("marker"),this.pathEl=hc.SVG.create("path"),this.extensions={forward:{line:hc.polyline([],{...this.options,dashArray:"5,10",weight:1,interactive:!1}),added:!1}},this.leafletInstance=hc.polyline([],this.options).addTo(this.map.leafletInstance),this.type="polyline",this.triangleEl.setAttrs({id:`${this.triangleID}`,viewBox:"0 0 10 10",refX:"5",refY:"5",markerUnits:"strokeWidth",markerWidth:"5",markerHeight:"5",orient:"auto",fill:i}),this.pathEl.setAttribute("d","M 0 0 L 10 5 L 0 10 z"),this.triangleEl.appendChild(this.pathEl),this.checkAndAddDef(),this.arrows&&(this.addArrows(),this.reversed&&this.reverseArrows(),this.redraw()),this.leafletInstance.on("click",(e=>{if(e.originalEvent.getModifierState(ge)&&this.vertices.length>1){const e=[];let a=0;for(let t=1;t{this.element.setAttribute("marker-mid",`url(#${this.triangleID})`)})),this.leafletInstance.options.smoothFactor=0}get element(){return this.leafletInstance.getElement()}removeArrows(){this.arrows=!1,this.reversed=!1,this.element.removeAttribute("marker-mid"),this.pathEl.removeAttribute("transform"),this.leafletInstance.options.smoothFactor=1}toProperties(){return{type:this.type,color:this.color,vertices:this.vertices.map((t=>t.toProperties())),arrows:this.arrows,reversed:this.reversed}}get canSave(){return this.vertices.length>=1}addLatLng(t){this.vertices.push(new ic(t,this))}hideExtensions(){this.extensions.forward.line.remove(),this.extensions.forward.added=!1}_onClick(t,e){0==this.vertices.length&&this.checkAndAddDef(),this.vertices.push(new ic(this.mouseLoc??t.latlng,this,e)),this.redraw()}_onMousemove(t,e){this.vertices.length&&(this.mouseLoc=this.getMousemoveDelta(t,null,e),this.showExtensions(this.mouseLoc))}get coordinates(){return this.arrows?this.latlngs.length?[this.latlngs[0],...this.latlngs.slice(1).map(((t,e)=>[hc.latLngBounds(this.latlngs[e],t).getCenter(),t])).flat()]:[]:this.latlngs}redraw(){this.leafletInstance.setLatLngs(this.coordinates),this.leafletInstance.redraw(),this.showExtensions(this.latlngs[this.vertices.length-1])}showExtensions(t){this.vertices.length>=1&&(this.extensions.forward.line.setLatLngs([this.latlngs[this.vertices.length-1],t]),this.extensions.forward.added?this.extensions.forward.line.redraw():(this.extensions.forward.line.addTo(this.map.leafletInstance),this.extensions.forward.added=!0))}stopDrawing(){this.extensions.forward.line.remove(),1===this.vertices.length&&this.remove()}undo(){this.vertices.pop(),this.hideExtensions(),this.redraw()}initialize(){this.hideVertices(),this.redraw()}newInstance(){return this.stopDrawing(),new uc(this.controller)}get pane(){return this.map.leafletInstance.getPane("drawing")}checkAndAddDef(){this.pane&&(this.pane.firstElementChild?this.addDef():this.registerAddDef())}registerAddDef(){const t=new MutationObserver((e=>{for(const a of e)if("childList"===a.type)return this.addDef(),void t.disconnect()}));t.observe(this.pane,{childList:!0,attributes:!1,subtree:!1})}addDef(){let t=this.pane.firstElementChild.querySelector("defs");t||(t=hc.SVG.create("defs"),this.pane.firstElementChild.prepend(t)),t.appendChild(this.triangleEl)}onShow(){this.checkAndAddDef(),this.arrows&&(this.addArrows(),this.reversed&&this.reverseArrows(),this.redraw())}remove(){this.hideExtensions(),this.removeArrows(),super.remove()}}class dc extends Yr{constructor(t){super({icon:"project-diagram",cls:"leaflet-control-has-actions leaflet-control-draw-polyline",tooltip:Ce("Polyline")},t),this.parent=t,this.arrow=new fc(this),this.actionsEl.appendChild(this.arrow.controlEl),this.actionsEl.appendChild(this.undo.controlEl),this.actionsEl.appendChild(this.cancel.controlEl)}draw(){this.actionsEl.appendChild(this.complete.controlEl)}onClick(){this.parent.stopDrawingContext(),this.openActions(),this.controller.newShape(new uc(this.controller))}}class fc extends Qr{constructor(t){super({icon:"arrow-up",cls:"leaflet-control-arrow",tooltip:"Add Arrows to Line"},t.map.leafletInstance),this.drawControl=t}get active(){return this.drawControl.controller.isAddingArrows}onClick(t){t.stopPropagation(),this.active?(this.controlEl.removeClass("active"),this.drawControl.controller.setArrowContext(!1)):(this.controlEl.addClass("active"),this.drawControl.controller.setArrowContext(!0))}}const pc=window[lr];class mc extends rc{constructor(){super(...arguments),this.leafletInstance=pc.rectangle([[0,0],[0,0]],this.options).addTo(this.map.leafletInstance),this.type="rectangle"}get canSave(){return 4==this.vertices.length}_onClick(t,e){if(0==this.vertices.length)this.vertices.push(new ic(t.latlng,this,e)),this.bounds=pc.latLngBounds(t.latlng,t.latlng),this.redraw();else if(1==this.vertices.length)return this.bounds=pc.latLngBounds(this.latlngs[0],t.latlng),this.vertices.push(new ic(t.latlng,this,e)),this.syncVerticesToCorners(),this.registerVertexDrags(),this.redraw(),this.ghost.remove(),this.ghost=null,void this.controller.newShape(this.newInstance())}syncVerticesToCorners(){const t=this.vertices.find((t=>t.latlng.equals(this.bounds.getNorthWest())))??new ic(this.bounds.getNorthWest(),this),e=this.vertices.find((t=>t.latlng.equals(this.bounds.getNorthEast())))??new ic(this.bounds.getNorthEast(),this),a=this.vertices.find((t=>t.latlng.equals(this.bounds.getSouthEast())))??new ic(this.bounds.getSouthEast(),this),i=this.vertices.find((t=>t.latlng.equals(this.bounds.getSouthWest())))??new ic(this.bounds.getSouthWest(),this);this.vertices=[t,e,a,i]}_onMousemove(t,e){this.vertices.length&&this.showGhost(t)}showGhost(t){2!=this.vertices.length&&(this.ghost||(this.ghost=pc.rectangle(pc.latLngBounds(this.latlngs[0],t),{dashArray:"5,10",weight:1,interactive:!1,fillOpacity:.5,color:this.controller.color,fillColor:this.controller.color}).addTo(this.map.leafletInstance)),this.ghost.setBounds(pc.latLngBounds(this.latlngs[0],t)))}get boundsArray(){return[this.bounds.getNorthWest(),this.bounds.getNorthEast(),this.bounds.getSouthEast(),this.bounds.getSouthWest()]}registerVertexDrags(){this.vertices[0].on("drag",(()=>{this.vertices[3].setLatLng(pc.latLng([this.vertices[3].getLatLng().lat,this.vertices[0].getLatLng().lng])),this.vertices[1].setLatLng(pc.latLng([this.vertices[0].getLatLng().lat,this.vertices[1].getLatLng().lng]))})),this.vertices[1].on("drag",(()=>{this.vertices[2].setLatLng(pc.latLng([this.vertices[2].getLatLng().lat,this.vertices[1].getLatLng().lng])),this.vertices[0].setLatLng(pc.latLng([this.vertices[1].getLatLng().lat,this.vertices[0].getLatLng().lng]))})),this.vertices[2].on("drag",(()=>{this.vertices[1].setLatLng(pc.latLng([this.vertices[1].getLatLng().lat,this.vertices[2].getLatLng().lng])),this.vertices[3].setLatLng(pc.latLng([this.vertices[2].getLatLng().lat,this.vertices[3].getLatLng().lng]))})),this.vertices[3].on("drag",(()=>{this.vertices[0].setLatLng(pc.latLng([this.vertices[0].getLatLng().lat,this.vertices[3].getLatLng().lng])),this.vertices[2].setLatLng(pc.latLng([this.vertices[3].getLatLng().lat,this.vertices[2].getLatLng().lng]))}))}updateBounds(){4==this.vertices.length&&(this.bounds=pc.latLngBounds(this.latlngs))}redraw(){this.updateBounds(),this.leafletInstance.setBounds(this.bounds),this.leafletInstance.redraw()}showExtensions(t){}stopDrawing(){1===this.vertices.length&&this.remove(),this.ghost&&(this.ghost.remove(),this.ghost=null)}undo(){this.controller.shapes.length&&this.controller.shapes.rectangle.pop().remove()}newInstance(){return this.stopDrawing(),new mc(this.controller)}initialize(){this.redraw(),this.hideVertices(),this.syncVerticesToCorners(),this.registerVertexDrags()}}class gc extends Yr{constructor(t){super({icon:"vector-square",cls:"leaflet-control-has-actions leaflet-control-draw-rectangle",tooltip:Ce("Rectangle")},t),this.parent=t}draw(){this.actionsEl.appendChild(this.undo.controlEl),this.actionsEl.appendChild(this.cancel.controlEl)}onClick(){this.parent.stopDrawingContext(),this.openActions(),this.controller.newShape(new mc(this.controller))}}const vc=window[lr];class bc extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e,this.polygon=new lc(this),this.rectangle=new gc(this),this.polyline=new dc(this),this.color=new Rr(this),this.drag=new wc(this),this.delete=new Cc(this),this.geoJson=new $r(this),this.done=new Ac(this)}get controller(){return this.map.controller}onClick(t){}added(){this.controlEl.addClass("leaflet-control-draw"),this.section=this.controlEl.createEl("section",{cls:this.cls+"-list"}),this.context=this.controlEl.createEl("section",{cls:this.cls+"-list"}),this.draw(),vc.DomEvent.disableClickPropagation(this.controlEl),vc.DomEvent.disableScrollPropagation(this.controlEl),this.iconEl.dataset.draggable="false",this.map.on("click",this.collapse,this),vc.DomEvent.on(this.controlEl,"click",(()=>this.expand()))}complete(){this.stopDrawingContext(),this.controller.hideVertices(),this.collapse()}collapse(){return vc.DomUtil.removeClass(this.controlEl,"expanded"),this.enabled=!1,this}draw(){this.section.appendChild(this.polygon.controlEl),this.section.appendChild(this.rectangle.controlEl),this.section.appendChild(this.polyline.controlEl),this.section.appendChild(this.color.controlEl),this.section.appendChild(this.drag.controlEl),this.section.appendChild(this.delete.controlEl),this.section.appendChild(this.geoJson.controlEl),this.section.appendChild(this.done.controlEl)}expand(){this.enabled=!0,this.startDrawingContext(),vc.DomUtil.addClass(this.controlEl,"expanded"),this.section.style.height=null;const t=this.leafletInstance.getSize().y-(this.controlEl.offsetTop+50);return t{t.stopPropagation(),this.parent.stopDrawingContext()}}get map(){return this.parent.map}onClick(){this.parent.stopDrawingContext(),this.openActions(),this.parent.controller.startDragging()}draw(){this.actionsEl.appendChild(this.complete.controlEl)}}class Cc extends Yr{constructor(t){super({icon:"trash",cls:"leaflet-control-has-actions leaflet-control-draw-trash",tooltip:Ce("Delete Shapes")},t),this.parent=t,this.complete.onClick=t=>{t.stopPropagation(),this.parent.stopDrawingContext()}}get map(){return this.parent.map}onClick(){this.parent.stopDrawingContext(),this.openActions(),this.parent.controller.isDeleting=!0}draw(){this.actionsEl.appendChild(this.complete.controlEl)}}class Ac extends Qr{constructor(t){super({icon:"check",cls:"leaflet-control-draw-done",tooltip:Ce("Done")},t.map.leafletInstance),this.parent=t}get map(){return this.parent.map}onClick(t){t.stopPropagation(),this.parent.complete(),this.parent.map.trigger("should-save")}}const yc=window[lr];class Lc{constructor(t,e){this.map=t,this.isDrawing=!1,this.isDeleting=!1,this.isColoring=!1,this.isDragging=!1,this.isAddingArrows=!1,this.shapes={rectangle:[],polyline:[],polygon:[]},this.color=this.map.options.drawColor}getSelectedVertex(){return Object.values(this.shapes).flat().map((t=>t.vertices)).flat().find((t=>t.selected))}removeShape(t){this.shapes[t.type]=this.shapes[t.type].filter((e=>e!=t)),t.remove()}setArrowContext(t){this.isAddingArrows=t,"polyline"==this.shape?.type&&(t?this.shape.addArrows():this.shape.removeArrows())}get flatShapes(){return Object.values(this.shapes).flat()}get vertices(){return this.flatShapes.map((t=>t.vertices)).flat()}hideVertices(){this.flatShapes.forEach((t=>t.hideVertices()))}showVertices(){this.flatShapes.forEach((t=>t.showVertices()))}addShape(t){let e;switch(t.type){case"polygon":e=new oc(this,t.vertices,t.color);break;case"polyline":e=new uc(this,t.vertices,t.color,t.arrows,t.reversed);break;case"rectangle":e=new mc(this,t.vertices,t.color)}e.checkAndAddToMap(),this.shapes[t.type].push(e)}newShape(t){const e=t??this.shape.newInstance();this.shape&&this.saveShape(),this.shape=e,this.startDrawing()}saveShape(){this.shape&&(this.shape.stopDrawing(),this.shape.canSave&&(this.shapes[this.shape.type].push(this.shape),this.shape.registerEvents(),this.map.trigger("should-save"))),this.stopDrawing()}startDragging(){this.stopDrawing(),this.isDragging=!0,this.map.contentEl.addClass("shape-dragging"),this.map.leafletInstance.on("mousemove touchmove",this.onDrag,this)}stopDragging(){this.isDragging=!1,this.map.contentEl.removeClass("shape-dragging"),this.map.leafletInstance.off("mousemove touchmove",this.onDrag,this)}onDrag(t){yc.DomEvent.stop(t),this.draggingShape&&this.draggingShape.onDrag(t)}startDrawing(){this.isDrawing=!0,this.registerDrawing()}stopDrawing(){this.isDrawing=!1,this.shape&&(this.shape.stopDrawing(),this.unregisterDrawing(),this.shape=null)}getVertexTargets(t){return this.vertices.find((e=>e!=t&&e.isBeingHovered))}registerDrawing(){this.map.registerScope(),this.map.contentEl.addClass("drawing"),this.map.leafletInstance.on("mousemove touchmove",this.shape.onMousemove,this.shape),this.map.leafletInstance.on("click",this.shape.onClick,this.shape)}unregisterDrawing(){this.map.unregisterScope(),this.map.contentEl.removeClass("drawing"),this.map.leafletInstance.off("mousemove touchmove",this.shape.onMousemove,this.shape),this.map.leafletInstance.off("click",this.shape.onClick,this.shape)}toProperties(){return this.flatShapes.map((t=>t.toProperties()))}}const Hc=window[lr];class Bc extends Hc.Control.Layers{constructor(){super({},{}),this.geojsonAdded=!1,this.gpxAdded=!1}onAdd(t){const e=super.onAdd(t),a=Ut({iconName:"layer-group",prefix:"fas"}).node[0];return a.setAttr("style","color: var(--text-normal);margin: auto;"),e.children[0].appendChild(a),e}addGeoJSON(t){this.geojsonAdded||this.container.appendChild(this._separator.cloneNode(!0))}addGPX(t){}}class zc extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e}onClick(t){this.map.options.lock=!this.map.options.lock,this.setState(this.map.options.lock),this.map.trigger("lock"),this.map.trigger("should-save")}setState(t){t?(this.setIcon("lock"),this.setTooltip("Unlock Map")):(this.setIcon("unlock"),this.setTooltip("Lock Map"))}}let Nc=window[lr];class xc extends t.Events{constructor(e,a){super(),this.renderer=e,this.options=a,this.readyForDrawings=!1,this.controller=new Lc(this),this.geojsonData=[],this.gpxData=[],this.gpxIcons={start:null,end:null,waypoint:null},this.imageOverlayData=[],this.isDrawing=!1,this.layerControl=new Bc,this.layerControlAdded=!1,this.popup=Vr(this,null),this.contentEl=createDiv(),this.displaying=new Map,this.distanceLines=[],this.distanceTooltips=[],this.previousDistanceLines=[],this.mapLayers=[],this.overlays=[],this.markers=[],this.zoom={min:this.options.minZoom,max:this.options.maxZoom,default:this.options.defaultZoom,delta:this.options.zoomDelta},this.unit=this.options.unit??this.plugin.defaultUnit,this.contentEl.style.height=a.height,this.contentEl.style.width=a.width??"100%",this.options=Object.assign({},fe,a),this.contentEl.addEventListener("touchmove",(t=>{t.stopPropagation()})),this.escapeScope=new t.Scope(this.plugin.app.scope),this.escapeScope.register(void 0,"Escape",(()=>this.escapeScopeCallback()))}get plugin(){return this.renderer.plugin}escapeScopeCallback(){this.isFullscreen||(this.stopDrawingContext(),this.controller.isDrawing&&this.controller.newShape())}createMap(){this.leafletInstance=Nc.map(this.contentEl,{crs:this.CRS,maxZoom:this.zoom.max,minZoom:this.zoom.min,scrollWheelZoom:!this.options.noScrollZoom,zoomDelta:this.zoom.delta,zoomSnap:this.zoom.delta,zoomControl:!this.options.noUI,wheelPxPerZoomLevel:1/this.zoom.delta*60,worldCopyJump:"real"===this.type,...this.plugin.isDesktop&&!this.options.noUI?{fullscreenControl:!0}:{}}),this.leafletInstance.createPane("base-layer"),this.leafletInstance.createPane("geojson"),this.leafletInstance.createPane("gpx"),this.leafletInstance.createPane("gpx-canvas"),this.leafletInstance.createPane("drawing"),this.leafletInstance.createPane("drawing-markers"),this.drawingLayer=new Nc.LayerGroup([],{pane:"drawing"}).addTo(this.leafletInstance),this.readyForDrawings=!0,this.trigger("ready-for-drawings"),this.canvas=Nc.Hotline.renderer({pane:"gpx-canvas"}).addTo(this.leafletInstance),this.leafletInstance.on("blur",(()=>{this.unregisterScope()})),this.leafletInstance.on("contextmenu",(t=>this.handleMapContext(t))),this.leafletInstance.on("click",(t=>this.handleMapClick(t))),this.on("first-layer-ready",(()=>{if(this.addFeatures(),this.log(`Moving to supplied coordinates: ${this.renderOptions.coords}`),this.setInitialCoords(this.renderOptions.coords),this.leafletInstance.panTo(this.initialCoords),(this.geojsonData.length||this.gpxData.length)&&this.options.zoomFeatures){this.log("Zooming to features."),this.leafletInstance.fitBounds(this.featureLayer.getBounds());const{lat:t,lng:e}=this.featureLayer.getBounds().getCenter();this.log(`Features center: [${t}, ${e}]`),this.setInitialCoords([t,e]),this.zoom.default=this.leafletInstance.getBoundsZoom(this.featureLayer.getBounds())}this.renderOptions.zoomDistance&&(this.zoomDistance=this.renderOptions.zoomDistance,this.setZoomByDistance(this.renderOptions.zoomDistance)),this.leafletInstance.setZoom(this.zoom.default,{animate:!1}),this.featureLayer.addTo(this.currentGroup.group),this.currentGroup.group.addTo(this.leafletInstance),this.tileOverlayLayer.addTo(this.leafletInstance),this.options.zoomMarkers&&(this.log("Zooming to markers."),this.zoomAllMarkers())})),this.leafletInstance.on("baselayerchange",(({layer:t})=>{this.leafletInstance.setMaxBounds([void 0,void 0]),this.currentLayer=t.getLayers()[0],this.resetZoom(),this.options.recenter&&this.leafletInstance.setMaxBounds(this.bounds)})),this.buildControls()}get currentGroup(){return this.mapLayers?.find((t=>t.layer==this.currentLayer))}get data(){return this.plugin.data}get defaultIcon(){return this.markerIcons.get("default")}get displayed(){return this.markers.filter((t=>(t.layer===this.currentGroup.id||!t.layer)&&this.displaying.get(t.type)))}get id(){return this.options.id}get isFullscreen(){return this.leafletInstance.isFullscreen()}get markerIcons(){return new Map([...this.plugin.markerIcons,...this.options.localMarkerTypes??[]].map((t=>[t.type,t])))}get markerTypes(){return Array.from(this.markerIcons.keys())}get verbose(){return this.options.verbose}addMarker(...e){let a=[];for(const i of e){let e,n;"object"==typeof i.type?(n="custom",e=this.plugin.parseIcon({type:"custom",iconName:i.type.icon??"map-marker",layer:i.type.layer??!0,color:i.type.color})):(this.markerTypes.includes(i.type)||(new t.Notice(Ce('Marker type "%1" does not exist, using default.',i.type)),i.type="default"),e=this.markerIcons.get(i.type),n=i.type),e?.icon??this.defaultIcon.icon,this.displaying.has(n)||this.displaying.set(n,!0);const s=new Ec(this,{id:i.id,type:n,loc:Nc.latLng(i.loc),link:i.link,layer:i.layer?i.layer:this.currentGroup?.id??null,mutable:i.mutable??!1,command:i.command??!1,zoom:this.leafletInstance.getMaxZoom(),percent:i.percent,description:i.description,tooltip:i.tooltip??this.plugin.data.displayMarkerTooltips,minZoom:i.minZoom,maxZoom:i.maxZoom});this.markers.push(s),a.push(s)}return a}createMarker(t,e,a=null,i=Ne(),n=null,s=null,r=!0,c=!1,o=null,l=null,h=null,u=this.plugin.data.displayMarkerTooltips){const d=this.addMarker({id:i,type:t,loc:e,link:n,layer:s||this.currentGroup?.id,mutable:r,command:c,percent:a,description:o,minZoom:l,maxZoom:h,tooltip:u});return r&&this.trigger("marker-added",d[0]),d[0]}onMarkerClick(t,e){if(this.controller.isDrawing)return Nc.DomEvent.stopPropagation(e),void this.controller.shape.onClick(e,{marker:t});this.handleMapDistance(e)}updateMarker(t){const e=this.markers.find((e=>e.id==t.id));this.displaying.delete(e.type),this.displaying.set(t.type,!0),e.link=t.link,e.description=t.description,e.icon=this.markerIcons.get(t.type),e.minZoom=t.minZoom,e.maxZoom=t.maxZoom,e.command=t.command,e.shouldShow(this.leafletInstance.getZoom())?e.show():e.shouldHide(this.leafletInstance.getZoom())&&e.hide()}addOverlay(...t){for(let e of t)this.overlays.push(new Tc(this,e));this.sortOverlays()}createOverlay(t){this.addOverlay(t),this.trigger("markers-updated")}startDrawingContext(){this.plugin.app.keymap.pushScope(this.escapeScope),this.isDrawing=!0}beginOverlayDrawingContext(t,e){this.startDrawingContext(),this.tempCircle=Nc.circle(t.latlng,{radius:1,color:this.options.overlayColor}),this.leafletInstance.once("click",(async()=>{this.tempCircle&&(this.log("Overlay drawing complete."),this.tempCircle.remove(),this.createOverlay({radius:"image"===this.type?this.tempCircle.getRadius():Nr(this.tempCircle.getRadius()).from("m").to(this.unit),color:this.tempCircle.options.color,loc:[this.tempCircle.getLatLng().lat,this.tempCircle.getLatLng().lng],layer:this.currentGroup.id,unit:this.unit,desc:"",mutable:!0,marker:e?.id??null}),this.trigger("should-save"),this.leafletInstance.off("mousemove"))})),this.leafletInstance.on("mousemove",(e=>{this.tempCircle.setRadius(this.leafletInstance.distance(t.latlng,e.latlng))})),this.tempCircle.addTo(this.currentGroup.group)}addLayerControl(){this.layerControlAdded||(this.layerControlAdded=!0,this.filterControl?.remove(),this.layerControl.addTo(this.leafletInstance),this.filterControl?.addTo(this.leafletInstance))}onFirstLayerReady(t){this.mapLayers.length?t():this.on("first-layer-ready",(()=>{t()}))}addFeatures(){let e;if(this.featureLayer=Nc.featureGroup(),this.tileOverlayLayer=Nc.featureGroup(),this.geojsonData.length>0&&(this.addLayerControl(),this.log(`Adding ${this.geojsonData.length} GeoJSON features to map.`),this.geojsonLayer=Nc.featureGroup().addTo(this.featureLayer),e=0,this.geojsonData.forEach((({data:a,alias:i,note:n})=>{try{const t=new Fc(this,this.featureLayer,{color:this.options.geojsonColor},a,n);t.leafletInstance.addTo(this.geojsonLayer),this.layerControl.addOverlay(t.leafletInstance,i&&i.length?i:`GeoJSON ${e+1}`),e++}catch(e){return console.error(e),void new t.Notice(Ce("There was an error adding GeoJSON to map")+` ${this.id}.\n\n${i}`)}})),this.log(`${e} GeoJSON feature${1==e?"":"s"} added to map.`)),this.gpxData.length>0){e=0,this.addLayerControl(),this.log(`Adding ${this.gpxData.length} GPX features to map.`),this.gpxLayer=Nc.featureGroup().addTo(this.featureLayer);for(let{data:a,alias:i}of this.gpxData)try{const t=new _c(this,a,this.gpxIcons);t.show(),t.leafletInstance.addTo(this.gpxLayer),this.layerControl.addOverlay(t.leafletInstance,i??`GPX ${e+1}`),e++}catch(e){return console.error(e),void new t.Notice(Ce("There was an error adding GPX to map")+` ${this.id}`)}this.gpxControl=function(t,e){const a={position:"bottomleft",icon:"running",cls:"leaflet-control-expandable",tooltip:Ce("Zoom to %1 GPX Track%2",`${e.gpxData.length}`,1==e.gpxData.length?"":"s")};return new Pr(a,e)}(0,this).addTo(this.leafletInstance)}if((this.geojsonData.length||this.gpxData.length)&&this.options.zoomFeatures){this.log("Zooming to features."),this.leafletInstance.fitBounds(this.featureLayer.getBounds());const{lat:t,lng:e}=this.featureLayer.getBounds().getCenter();this.log(`Features center: [${t}, ${e}]`),this.setInitialCoords([t,e]),this.zoom.default=this.leafletInstance.getBoundsZoom(this.featureLayer.getBounds())}this.imageOverlayData&&this.imageOverlayData.length&&this.onFirstLayerReady((()=>{this.addLayerControl(),this.leafletInstance.createPane("image-overlay");for(let t of this.imageOverlayData){let e=t.bounds.length?t.bounds:this.bounds;const a=Nc.imageOverlay(t.data,e,{pane:"image-overlay"});this.layerControl.addOverlay(a,t.alias)}})),this.options.tileOverlay&&this.options.tileOverlay.length&&this.onFirstLayerReady((()=>{this.addLayerControl();let t=0;for(const e of this.options.tileOverlay){t++;const[a,i=`Layer ${t}`,n]=e.split("|"),s=Nc.tileLayer(a);n&&"on"==n&&s.addTo(this.tileOverlayLayer),this.layerControl.addOverlay(s,i&&i.length?i:`Layer ${t}`)}}))}addShapes(...t){for(const e of t)this.controller.addShape(e)}buildControls(){if(!this.options.noUI){if(this.options.hasAdditional&&this.addLayerControl(),this.plugin.isDesktop){const t=this.contentEl.querySelector(".leaflet-control-fullscreen-button");if(t){t.setAttr("aria-label","Toggle Full Screen");const e=Ut({iconName:"expand",prefix:"fas"}).node[0],a=Ut({iconName:"compress",prefix:"fas"}).node[0];t.appendChild(e),this.leafletInstance.on("fullscreenchange",(()=>{this.isFullscreen?t.replaceChild(a,t.children[0]):t.replaceChild(e,t.children[0])}))}}var t;this.filterControl=function(t,e){const a={position:"topright",icon:"filter",cls:"leaflet-control-expandable",tooltip:Ce("Filter Markers")};return new Or(a,e)}(0,this).addTo(this.leafletInstance),this.lockControl=function(t,e){const a={position:"topright",icon:e.options.lock?"lock":"unlock",cls:"leaflet-control-lock",tooltip:e.options.lock?"Unlock Map":"Lock Map"};return new zc(a,e)}(0,this).addTo(this.leafletInstance),function(t,e){const a={position:"topleft",icon:"map-marked-alt",cls:"leaflet-control-zoom-markers",tooltip:Ce("Show All Markers")};return new Xr(a,e)}(0,this).addTo(this.leafletInstance),function(t,e){return new Er({position:"topleft",icon:"bullseye",cls:"leaflet-control-reset-zoom"},e)}(0,this).addTo(this.leafletInstance),this.distanceDisplay=(t={position:"bottomleft"},this,new Sr(t,this)).addTo(this.leafletInstance),this.options.isMapView?function(t,e){const a={position:"bottomright",icon:"edit",cls:"leaflet-control-edit-parameters",tooltip:Ce("Edit View Parameters")};return new Gr(a,e)}(0,this).addTo(this.leafletInstance):this.options.isInitiativeView||function(t,e){const a={position:"bottomright",icon:"save",cls:"leaflet-control-save-param",tooltip:Ce("Save Parameters to View")};return new Kr(a,e)}(0,this).addTo(this.leafletInstance),this.options.draw&&function(t,e){const a={position:"bottomright",icon:"shapes",cls:"leaflet-control-expandable",tooltip:Ce("Draw")};return new bc(a,e)}(0,this).addTo(this.leafletInstance)}}updateLockState(t){this.options.lock=t,this.lockControl.setState(this.options.lock),this.trigger("lock")}closePopup(t){t&&this.leafletInstance.closePopup(t)}distanceAlongPolylines(t){if(1==t.length){const e=t[0].getLatLngs();return this.distance(e[0],e[1])}let e=0;for(const a of t){const t=a.getLatLngs();e+=this.leafletInstance.distance(t[0],t[1])}let a=`${ye(e*this.scale,1)}`;return 1!==this.options.distanceMultiplier&&(a+=` (${ye(e*this.scale*this.options.distanceMultiplier,1)})`),a+` ${this.unit}`}distance(t,e){const a=this.leafletInstance.distance(t,e);let i=`${ye(a*this.scale,1)}`;return 1!==this.options.distanceMultiplier&&(i+=` (${ye(a*this.scale*this.options.distanceMultiplier,1)})`),i+` ${this.unit}`}getMarkersById(t){return this.markers.filter((({id:e})=>e===t))}getOverlaysUnderClick(t){const e=[...this.overlays].filter((e=>e.mutable&&e.isUnder(t)&&e.layer===this.currentGroup.id));return e.sort(((t,e)=>t.radiusInMeters-e.radiusInMeters)),e}getZoom(){return this.rendered?this.leafletInstance.getZoom():this.zoom.default}async handleMapClick(t){this.controller.isDrawing||(this.handleMapDistance(t),(t.originalEvent.getModifierState("Shift")||t.originalEvent.getModifierState("Alt"))&&await this.getMapCoordinates(t))}async getMapCoordinates(e){this.log("Map popup context detected. Opening popup.");const a=Le(e.latlng);this.popup.setTarget(e.latlng).open(`[${a.lat}, ${a.lng}]`),this.data.copyOnClick&&(e.originalEvent.getModifierState("Shift")||t.Platform.isMobile)&&(this.log("Copying coordinates of click to clipboard."),await He(e.latlng))}handleMapDistance(e,a){if(!a&&(!e.originalEvent.getModifierState("Shift")&&!e.originalEvent.getModifierState("Alt")||e.originalEvent.getModifierState("Control"))){if(!this.distanceLines.length)return;return void this.stopDrawingContext()}this.log("Distance measurement context starting.");const i=e.latlng;this.isDrawing||this.startDrawingContext(),this.distanceLines.push(Nc.polyline([i,e.latlng])),this.distanceLines.last().addTo(this.leafletInstance),this.distanceTooltips.push(Vr(this,this.distanceLines.last(),{permanent:!0}));const n=this.distanceAlongPolylines([this.distanceLines.last()]);this.distanceTooltips.last().open(n),this.leafletInstance.on("mousemove",(t=>{const e=t.latlng,a=[Math.abs(e.lat-i.lat),Math.abs(e.lng-i.lng)];t.originalEvent.getModifierState("Shift")&&(a[0]>a[1]?e.lng=i.lng:e.lat=i.lat),!this.markers.find((t=>t.isBeingHovered))||t.originalEvent.getModifierState(ge)?this.distanceLines.last().setLatLngs([i,e]):this.distanceLines.last().setLatLngs([i,this.markers.find((t=>t.isBeingHovered)).loc]);const n=this.distanceAlongPolylines(this.distanceLines),s=this.distanceAlongPolylines([this.distanceLines.last()]);this.distanceTooltips.last().open(`${n} (${s})`),this.distanceDisplay.setText(n),this.distanceLines.last().redraw()})),this.leafletInstance.on("mouseout",(()=>{t.Platform.isMobile||this.stopDrawingContext()}))}handleMapContext(e,a){if(this.controller.isDrawing)return;if(t.Platform.isMobile)return this.handleMapContextMobile(e,a);if(e.originalEvent.getModifierState("Shift"))return this.log("Beginning overlay drawing context."),void this.beginOverlayDrawingContext(e);if(a){const i=this.getOverlaysUnderClick(e);if(!i.length){if(!a.mutable)return void new t.Notice(Ce("This overlay cannot be edited because it was defined in the code block."));i.push(a)}const n=a=>{const i=new t.Menu;i.setNoIcon(),i.addItem((e=>{e.setTitle(Ce("Edit Overlay")).onClick((()=>{const e=new Ja(a,this);e.onClose=async()=>{if(e.deleted)return this.log("Overlay deleted in context menu. Removing."),a.remove(),this.overlays=this.overlays.filter((t=>t!=a)),this.trigger("markers-updated"),void this.trigger("should-save");try{a.data.color=e.tempOverlay.color,a.data.radius=e.tempOverlay.radius,a.data.desc=e.tempOverlay.desc,a.data.tooltip=e.tempOverlay.tooltip;let t=Nr(Number(a.data.radius)).from(a.data.unit??"m").to("image"==this.type?this.unit:"m");"image"==this.type&&(t/=this.scale),a.leafletInstance.setRadius(t),a.leafletInstance.setStyle({color:a.data.color}),this.trigger("should-save")}catch(e){new t.Notice(Ce("There was an error saving the overlay.")+`\n\n${e.message}`)}},e.open()}))})),i.addItem((t=>{t.setTitle(Ce("Convert to Code Block")).onClick((async()=>{a.mutable=!1,this.trigger("create-immutable-layer",a),this.trigger("should-save")}))})),i.addItem((t=>{t.setTitle(Ce("Delete Overlay")).onClick((()=>{this.log("Overlay deleted in context menu. Removing."),a.remove(),this.overlays=this.overlays.filter((t=>t!=a)),this.trigger("markers-updated"),this.trigger("should-save")}))})),i.showAtMouseEvent(e.originalEvent)};if(1==i.length)n(i[0]);else{let a=new t.Menu;a.setNoIcon(),a.addItem((t=>{t.setTitle(Ce("Create Marker")),t.onClick((()=>{a.hide(),this.handleMapContext(e)}))})),i.forEach(((t,e)=>{a.addItem((a=>{a.setTitle(`Overlay ${e+1}`),a.onClick((()=>{n(t)})),a.dom.onmouseenter=()=>{t.leafletInstance.getElement().addClass("leaflet-layer-targeted")},a.dom.onmouseleave=()=>{t.leafletInstance.getElement().removeClass("leaflet-layer-targeted")}}))})),a.onHide((()=>{i.forEach((t=>{t.leafletInstance.getElement().removeClass("leaflet-layer-targeted")}))})),a.showAtMouseEvent(e.originalEvent)}return}if(this.markerIcons.size<=1)return this.log("No additional marker types defined. Adding default marker."),void this.createMarker(this.defaultIcon.type,[e.latlng.lat,e.latlng.lng],void 0);let i=new t.Menu;i.setNoIcon(),this.log("Opening marker context menu."),this.markerIcons.forEach((t=>{t.type&&t.html&&i.addItem((a=>{a.setTitle("default"==t.type?"Default":t.type),a.onClick((async()=>{this.log(`${t.type} selected. Creating marker.`),this.createMarker(t.type,[e.latlng.lat,e.latlng.lng],void 0),this.trigger("should-save")}))}))})),i.showAtMouseEvent(e.originalEvent)}handleMapContextMobile(e,a){let i=new t.Menu;i.setNoIcon(),i.addItem((t=>{t.setTitle("Show coordinates").onClick((async()=>{await this.getMapCoordinates(e)}))})),i.addItem((t=>t.setTitle(this.isDrawing?"Finish measuring":"Measure distance").onClick((()=>{this.handleMapDistance(e,!0)})))),i.addSeparator(),this.log("Opening marker context menu."),this.markerIcons.forEach((t=>{t.type&&t.html&&i.addItem((a=>{a.setTitle("default"==t.type?"Default":t.type),a.onClick((async()=>{this.log(`${t.type} selected. Creating marker.`),this.createMarker(t.type,[e.latlng.lat,e.latlng.lng],void 0),this.trigger("should-save")}))}))})),i.showAtMouseEvent(e.originalEvent)}isLayerRendered(t){return!!this.mapLayers.find((({id:e})=>e===t))}loadFeatureData(t){this.geojsonData=[...this.geojsonData??[],...t.geojsonData??[]],this.gpxData=[...this.gpxData??[],...t.gpxData??[]],this.gpxIcons={start:null,end:null,waypoint:null,...this.gpxIcons??{},...t.gpxIcons}}log(t){Be(this.verbose,this.id,t)}remove(){this.stopDrawingContext(),this.leafletInstance.remove(),this.contentEl.detach(),this.rendered=!1,this.trigger("removed")}removeMarker(t){const e=this.markers.find((({id:e})=>e==t.id));e&&(e.remove(),this.markers=this.markers.filter((({id:t})=>t!=e.id)),this.trigger("markers-updated"),this.trigger("should-save"))}registerScope(){this.plugin.app.keymap.pushScope(this.escapeScope)}resetZoom(){if(this.rendered){if(this.leafletInstance.invalidateSize(),this.log("Element added to note, resetting zoom."),this.zoomDistance&&(this.log("Zooming by distance."),this.setZoomByDistance(this.zoomDistance)),this.options.zoomFeatures){this.log("Zooming to features."),this.leafletInstance.fitBounds(this.featureLayer.getBounds());const{lat:t,lng:e}=this.featureLayer.getBounds().getCenter();this.log(`Features center: [${t}, ${e}]`),this.setInitialCoords([t,e]),this.zoom.default=this.leafletInstance.getBoundsZoom(this.featureLayer.getBounds())}if(this.options.zoomMarkers)return this.log("Zooming to markers."),void this.zoomAllMarkers();this.log(`Resetting map view to [${this.initialCoords[0]}, ${this.initialCoords[1]}], zoom ${this.zoom.default}.`),this.leafletInstance.setView(this.initialCoords,this.zoom.default)}}zoomAllMarkers(){const t=Nc.featureGroup(this.displayed.map((({leafletInstance:t})=>t)));t&&t.getLayers().length?(this.log(`Moving to display ${t.getLayers().length} markers.`),this.leafletInstance.fitBounds(t.getBounds(),{maxZoom:this.leafletInstance.getBoundsZoom(t.getBounds())})):this.leafletInstance.fitWorld()}sortOverlays(){if(this.overlays.length){this.log("Sorting overlays."),this.overlays.sort(((t,e)=>e.radiusInMeters-t.radiusInMeters));for(let t of this.overlays)t.leafletInstance.bringToFront();this.log("Overlays sorted.")}}setZoomByDistance(t){t||(this.zoom.default=this.options.defaultZoom);const e=Nc.circle(this.initialCoords,{radius:t,fillOpacity:0,opacity:0});e.addTo(this.leafletInstance),this.zoom.default=this.leafletInstance.getBoundsZoom(e.getBounds()),e.remove()}stopDrawingContext(){if(this.isDrawing=!1,this.plugin.app.keymap.popScope(this.escapeScope),this.leafletInstance.off("mousemove"),this.leafletInstance.off("mouseout"),this.previousDistanceLines=[],this.distanceLines.length){for(const t of this.distanceLines)t.unbindTooltip(),t.remove(),this.previousDistanceLines.push(t);this.distanceLines=[]}this.tempCircle&&(this.tempCircle.remove(),this.tempCircle=void 0)}toProperties(){return{id:this.id,locked:this.options.lock,lastAccessed:Date.now(),markers:this.markers.filter((({mutable:t})=>t)).map((t=>t.toProperties())),overlays:this.overlays.filter((({mutable:t})=>t)).map((t=>t.toProperties())),shapes:this.controller.toProperties()}}unregisterScope(){this.plugin.app.keymap.popScope(this.escapeScope)}updateMarkerIcons(){this.markerIcons.forEach((({type:t})=>{this.markerIcons.has(t)||(this.displaying.set(t,!0),this.currentGroup.markers[t]=Nc.layerGroup())})),this.markers.forEach((t=>{let e=this.markerIcons.get(t.type)??this.defaultIcon;t.icon=e})),[...this.displaying].forEach((([t])=>{this.markerTypes.includes(t)||"custom"==t||(this.displaying.delete(t),this.currentGroup.markers.default||(this.currentGroup.markers.default=Nc.layerGroup(),this.displaying.set("default",!0),this.currentGroup.markers.default.addTo(this.currentGroup.group)),this.currentGroup.markers[t]?.getLayers()?.forEach((t=>this.currentGroup.markers.default.addLayer(t))),delete this.currentGroup.markers[t])}))}}class Dc extends xc{constructor(t,e){super(t,e),this.renderer=t,this.options=e,this.CRS=Nc.CRS.EPSG3857,this.mapLayers=[],this.type="real",this.createMap()}get plugin(){return this.renderer.plugin}get bounds(){return this.leafletInstance.getBounds()}get scale(){return Nr(1).from("m").to(this.unit)}setInitialCoords(t){this.initialCoords=t}async buildLayer(e){e.data.contains("openstreetmap")&&new t.Notice(Ce("OpenStreetMap has restricted the use of its tile server in Obsidian. Your map may break at any time. Please switch to a different tile server."));const a=e.subdomains?e.subdomains:this.plugin.data.defaultTileSubdomains?this.plugin.data.defaultTileSubdomains.split(",").filter((t=>t)).map((t=>t.trim())):ce,i=Nc.tileLayer(e.data,{...e.data.contains("stamen-tiles")?{attribution:oe}:{attribution:this.plugin.data.defaultAttribution,subdomains:a},className:this.options.darkMode?"dark-mode":""}),n=Object.fromEntries(this.markerTypes.map((t=>[t,Nc.layerGroup()])));n.custom=Nc.layerGroup();const s={none:Nc.layerGroup(),...Object.fromEntries(this.markerTypes.map((t=>[t,Nc.layerGroup()])))},r=Nc.layerGroup([i,...Object.values(n),...Object.values(s)]);return this.mapLayers.push({group:r,layer:i,id:e.id??"real",markers:n,overlays:s}),this.layerControlAdded&&this.layerControl.addBaseLayer(r,e.alias??`Layer ${this.mapLayers.length}`),this.trigger("layer-ready-for-features",this.mapLayers[this.mapLayers.length-1].id),i}async render(e){this.renderOptions={coords:e.coords,zoomDistance:e.zoomDistance},this.imageOverlayData=e.imageOverlayData,this.log("Beginning render process."),this.start=Date.now(),this.log("Building initial map layer.");const a=document.body.hasClass("theme-light")?this.plugin.data.defaultTile:this.plugin.data.defaultTileDark;let i={id:"real",data:a,alias:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"==a?"OpenStreetMap":"Tile Server"};const n=[];for(let e of this.options.tileLayer){const[a,i]=e.split("|");a?n.push({id:a,data:a,alias:i,subdomains:this.options.tileSubdomains}):new t.Notice(Ce("There was an issue parsing the tile layer: %1",e))}if(!this.options.osmLayer&&n.length||(this.options.osmLayer||new t.Notice(Ce("OpenStreetMap cannot be turned off without specifying additional tile servers.")),n.unshift(i)),this.currentLayer=await this.buildLayer(n[0]),this.mapLayers[0].layer.once("load",(()=>{this.rendered=!0,this.log(`Initial map layer rendered in ${(Date.now()-this.start)/1e3} seconds.`),this.trigger("rendered")})),this.trigger("first-layer-ready",this.mapLayers[0].id),n.length>1){this.log("Building additional layers in the background.");for(let t of n.slice(1))await this.buildLayer(t)}}}class Vc extends xc{constructor(t,e){super(t,e),this.renderer=t,this.options=e,this.CRS=Nc.CRS.Simple,this.mapLayers=[],this.type="image",this.createMap()}get plugin(){return this.renderer.plugin}get bounds(){return this.currentLayer.getBounds()}get scale(){return this.options.scale??1}setInitialCoords(t){let e=[1,1];this.options.bounds||(e=[this.bounds.getCenter().lat/50,this.bounds.getCenter().lng/50]),this.initialCoords=[t[0]*e[0],t[1]*e[1]]}_buildMapLayer(t){this.mapLayers.length||this.log("map.ts: 1494: Building initial map layer. ");const{h:e,w:a}=t;let i;if(this.dimensions={h:e,w:a},this.options.bounds?.length)i=new Nc.LatLngBounds(...this.options.bounds);else{const t=this.leafletInstance.unproject([0,e],this.zoom.max-1),n=this.leafletInstance.unproject([a,0],this.zoom.max-1);i=new Nc.LatLngBounds(t,n)}const n=Nc.imageOverlay(t.data,i,{className:this.options.darkMode?"dark-mode":"",pane:"base-layer"}),s=Object.fromEntries(this.markerTypes.map((t=>[t,Nc.layerGroup()])));s.custom=Nc.layerGroup();const r={none:Nc.layerGroup(),...Object.fromEntries(this.markerTypes.map((t=>[t,Nc.layerGroup()])))};return{group:Nc.layerGroup([n,...Object.values(s),...Object.values(r)]),layer:n,id:t.id,markers:s,overlays:r,dimensions:[a,e],alias:t.alias}}async buildLayer(t){const e=this._buildMapLayer(t);return this.mapLayers.push(e),this.trigger("layer-ready-for-features",e.id),1===this.mapLayers.length&&(this.currentLayer=this.mapLayers[0].layer,this.trigger("first-layer-ready",this.currentGroup.id),this.options.recenter&&this.leafletInstance.setMaxBounds(this.bounds)),this.layerControl.addBaseLayer(e.group,t.alias??`Layer ${this.mapLayers.length}`),this.mapLayers[0].layer.once("load",(()=>{this.rendered=!0,this.log(`Initial map layer rendered in ${(Date.now()-this.start)/1e3} seconds.`),this.trigger("rendered")})),e.layer}async render(t){this.renderOptions={coords:t.coords,zoomDistance:t.zoomDistance},this.imageOverlayData=t.imageOverlayData,this.log("Beginning render process."),this.start=Date.now(),this.trigger("ready-to-render"),this.readyToRender=!0}registerLayerToBuild(t){this.readyToRender?this.buildLayer(t):this.on("ready-to-render",(()=>{this.buildLayer(t)}))}}class Mc extends t.ItemView{constructor(e,a){super(e),this.leaf=e,this.plugin=a,this.innerContentEl=this.contentEl.createDiv({cls:"markdown-preview-view",attr:{style:"height: 100%;"}}),this.mapEl=this.innerContentEl.createDiv("block-language-leaflet"),this.context=new t.MarkdownRenderChild(this.mapEl),this.context.load()}get params(){return{...de,...this.plugin.data.mapViewParameters??{},height:"100%",isMapView:!0}}async onOpen(){this.renderer=new ao(this.plugin,"",this.mapEl,this.params,""),this.context.addChild(this.renderer)}update(){this.renderer.unload(),this.renderer=new ao(this.plugin,"",this.mapEl,this.params,""),this.context.addChild(this.renderer)}getDisplayText(){return Ce("Leaflet Map")}getViewType(){return se}onResize(){this.renderer&&this.renderer.setHeight(`${this.contentEl.firstElementChild.getBoundingClientRect().height}px`)}onMoreOptionsMenu(t){t.addItem((t=>{t.setIcon("pencil").setTitle("Edit Map Parameters").onClick((()=>{const t=new Fr(this.plugin);t.onClose=()=>{},t.open()}))}))}}let Sc=window[lr];class kc{}class Qc extends kc{constructor(t){super(),this.text=t}get display(){return createSpan({text:this.text})}async run(){}}class Ic extends kc{constructor(t,e,a){super(),this._text=t,this.app=e,this.description=a,this.display=this._getDisplay()}get isInternal(){return null!=this.app.metadataCache.getFirstLinkpathDest(this.text.split(/(\^|\||#)/).shift(),"")}get text(){return this._text}set text(t){this._text=t,this.display=this._getDisplay()}_getDisplay(){if(this.text){if(this.external)return createEl("a",{text:this.text,href:this.text,cls:"external-link"});if(this.description?.length){const t=createDiv();return t.createSpan({text:this.description}),this.text?.length&&(t.createEl("br"),t.createEl("br"),t.createSpan({text:this.text.replace(/(\^)/," > ^").replace(/#/," > ").split("|").pop(),cls:"internal-link"})),t}return createSpan({text:this.text.replace(/(\^)/," > ^").replace(/#/," > ").split("|").pop()})}}get external(){return!this.isInternal&&/((?:https?:\/\/)?(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b(?:[-a-zA-Z0-9@:%_\+.~#?&//=]*))/.test(this.text)}async run(t){await this.app.workspace.openLinkText(this._text.replace("^","#^").split(/\|/).shift(),this.app.workspace.getActiveFile()?.path??"",t.originalEvent.getModifierState(ge))}}class Oc extends kc{constructor(t,e){super(),this._text=t,this.app=e,this.display=this._getDisplay()}get text(){return this._text}set text(t){this._text=t,this.display=this._getDisplay()}get exists(){return null!=this.app.commands.findCommand(this._text)}get command(){return this.app.commands.findCommand(this._text)}_getDisplay(){const e=createDiv({attr:{style:"display: flex; align-items: center;"}});return this.exists?((0,t.setIcon)(e.createSpan({attr:{style:"margin-right: 0.5em; display: flex; align-items: center;"}}),"run-command"),e.createSpan({text:this.command.name})):((0,t.setIcon)(e.createSpan({attr:{style:"margin-right: 0.5em; display: flex; align-items: center;"}}),"cross"),e.createSpan({text:Ce("No command found!")})),e}run(t){this.exists&&this.app.commands.executeCommandById(this._text)}}class Ec extends tc{constructor(e,{id:a,type:i,loc:n,link:s,layer:r,mutable:c,command:o,percent:l,description:h,minZoom:u,maxZoom:d,tooltip:f}){super(),this.map=e,this.popup=Vr(this.map,this),this.isBeingHovered=!1;const p=this.map.markerIcons.get(i)??this.map.markerIcons.get("default");if(!p)return void new t.Notice(Ce("Leaflet: Could not create icon for %1 - does this type exist in settings?",i));const m=p.markerIcon,g=fr(this.map.plugin.parseIcon(m));var v,b;this.leafletInstance=(v=n,b={icon:g,keyboard:c&&!this.map.options.lock,draggable:c&&!this.map.options.lock,bubblingMouseEvents:!0},new pr(v,b,{link:s,mutable:`${c}`,type:i})),this.id=a,this.type=i,this.loc=n,this.description=h,this.layer=r,this.mutable=c,this.command=o,this.divIcon=g,this.percent=l,this.tooltip=f,o?this.target=new Oc(s,this.map.plugin.app):s?this.target=new Ic(s,this.map.plugin.app,this.description):h&&(this.target=new Qc(this.description)),this.link=s,this.minZoom=u??m?.minZoom??null,this.maxZoom=d??m?.maxZoom??null,this.checkAndAddToMap(),this.bindEvents()}get group(){return this.mapLayer?.markers[this.type]}bindEvents(){this.leafletInstance.on("contextmenu",(e=>{if(Sc.DomEvent.stopPropagation(e),e.originalEvent.getModifierState("Shift"))return void this.map.beginOverlayDrawingContext(e,this);if(!this.mutable)return void new t.Notice(Ce("This marker cannot be edited because it was defined in the code block."));const a=new t.Menu;a.setNoIcon(),a.addItem((t=>{t.setTitle(Ce("Edit Marker")).onClick((()=>this.editMarker()))})),a.addItem((t=>{t.setTitle(Ce("Convert to Code Block")).onClick((async()=>{this.mutable=!1,this.map.trigger("create-immutable-layer",this),this.map.trigger("should-save")}))})),a.addItem((t=>{t.setTitle(Ce("Delete Marker")).onClick((()=>{this.map.removeMarker(this)}))})),a.showAtMouseEvent(e.originalEvent)})).on("dblclick",(e=>{this.mutable?(Sc.DomEvent.stopPropagation(e),this.editMarker()):new t.Notice(Ce("This marker cannot be edited because it was defined in the code block."))})).on("click",(async t=>{if(this.map.isDrawing||this.map.controller.isDrawing)this.map.onMarkerClick(this,t);else{if(Sc.DomEvent.stopPropagation(t),t.originalEvent.getModifierState("Alt")||t.originalEvent.getModifierState("Shift")){this.map.onMarkerClick(this,t);const e=Le(this.latLng);return this.popup.open(`[${e.lat}, ${e.lng}]`),void(this.map.data.copyOnClick&&t.originalEvent.getModifierState(ge)&&await He(this.loc))}this.target&&this.target.run(t)}})).on("dragstart",(t=>{Sc.DomEvent.stopPropagation(t)})).on("drag",(t=>{this.map.trigger("marker-dragging",this),("always"===this.tooltip&&this.popup||this.popup.isOpen())&&this.popup.setLatLng(t.latlng)})).on("dragend",(t=>{const e=this.loc;this.setLatLng(this.leafletInstance.getLatLng()),this.map.trigger("marker-data-updated",this,e)})).on("mouseover",(t=>{Sc.DomEvent.stopPropagation(t),this.isBeingHovered=!0,this.target&&this.popup.open(this.target.display),this.map.data.notePreview&&this.link&&this.map.plugin.app.workspace.trigger("hover-link",{event:t.originalEvent,source:this.map.plugin.manifest.id,hoverParent:{state:{source:ne}},targetEl:this.leafletInstance.getElement(),linktext:this.link.replace("^","#^").split("|").shift(),state:{source:ne}})})).on("mouseout",(t=>{this.leafletInstance.closeTooltip(),this.isBeingHovered=!1})),this.map.leafletInstance.on("zoomanim",(t=>{this.shouldShow(t.zoom)?this.map.leafletInstance.once("zoomend",(()=>this.show())):this.shouldHide(t.zoom)&&this.hide()})),this.map.on("lock",(()=>{this.mutable&&this.registerForShow((()=>{this.leafletInstance.dragging&&(this.map.options.lock?this.leafletInstance.dragging.disable():this.leafletInstance.dragging.enable(),this.leafletInstance.options.keyboard=!this.map.options.lock)}))})),this.map.leafletInstance.on("baselayerchange",(t=>{t.layer.hasLayer(this.group)?this.show():this.hide()}))}editMarker(){let t=new Za(this,this.map);t.onClose=async()=>{t.deleted?(this.map.removeMarker(this),this.map.trigger("marker-deleted",this)):(this.map.displaying.delete(this.type),this.map.displaying.set(t.tempMarker.type,!0),this.description=t.tempMarker.description,this.link=t.tempMarker.link,this.icon=this.map.markerIcons.get(t.tempMarker.type),this.tooltip=t.tempMarker.tooltip,this.minZoom=t.tempMarker.minZoom,this.maxZoom=t.tempMarker.maxZoom,this.command=t.tempMarker.command,this.shouldShow(this.map.leafletInstance.getZoom())&&!this.displayed?this.show():this.shouldHide(this.map.leafletInstance.getZoom())&&this.displayed&&this.hide(),"always"===this.tooltip?this.popup.open(this.target.display):this.popup.close(),this.map.trigger("marker-updated",this),this.map.trigger("should-save"))},t.open()}get link(){return this._link}set link(t){this.leafletInstance.options?.icon&&this.leafletInstance.options.icon.setData({link:`${t}`}),t&&t.length?((!this.target||this.target instanceof Qc)&&(this.command?this.target=new Oc(t,this.map.plugin.app):this.target=new Ic(t,this.map.plugin.app,this.description)),this._link=t.startsWith("#")?this.map.options.context+t:t,this.target&&(this.target.text=t),this.popup&&this.displayed&&"always"===this.tooltip&&this.popup.open(this.target.display)):this.description&&this.description.length&&(this.target=new Qc(this.description))}get command(){return this._command}set command(t){this._command=t,this.link&&(t?this.target=new Oc(this.link,this.map.plugin.app):this.link?this.target=new Ic(this.link,this.map.plugin.app,this.description):this.description&&(this.target=new Qc(this.description)))}get mutable(){return this._mutable}set mutable(t){this._mutable=t,this.leafletInstance.options?.icon&&this.leafletInstance.options.icon.setData({mutable:`${t}`})}get type(){return this._type}set type(t){this._type=t,this.leafletInstance.options?.icon&&this.leafletInstance.options.icon.setData({type:`${t}`})}set icon(t){this.type=t.type,this._icon=t,this.leafletInstance.setIcon(t.icon)}get latLng(){return this.loc}get display(){const t=[this.link];return this.description&&(t.unshift(`${this.description} `,"("),t.push(")")),t.join("")}setLatLng(t){if(this.loc=t,this.map.rendered&&"image"===this.map.type){let{x:t,y:e}=this.map.leafletInstance.project(this.loc,this.map.zoom.max-1);this.percent=[t/this.map.currentGroup.dimensions[0],e/this.map.currentGroup.dimensions[1]]}this.leafletInstance.fire("drag",{latlng:t}),this.leafletInstance.setLatLng(t)}show(){this.shouldShow(this.map.getZoom())&&this.group&&!this.displayed&&(this.group.addLayer(this.leafletInstance),this.displayed=!0,"always"===this.tooltip&&this.target&&this.leafletInstance.on("add",(()=>{this.popup.open(this.target.display)}))),this.onShow()}onShow(){}shouldShow(t){if(this.minZoom==this.maxZoom&&null==this.minZoom)return!0;if(!this.displayed){const e=this.minZoom??this.map.zoom.min,a=this.maxZoom??this.map.zoom.max;if(e<=t&&t<=a)return this.map.displaying.get(this.type)??!0}return!1}hide(){this.group&&this.displayed&&(this.remove(),this.displayed=!1,this.popup.close())}shouldHide(t){if(this.displayed){const e=this.minZoom??this.map.zoom.min,a=this.maxZoom??this.map.zoom.max;if(e>t||t>a)return!0}}static from(t,e){return new Ec(t,e)}toProperties(){return{id:this.id,type:this.type,loc:[this.leafletInstance.getLatLng().lat,this.leafletInstance.getLatLng().lng],link:this.link,layer:this.layer,mutable:this.mutable,command:this.command,percent:this.percent,description:this.description,minZoom:this.minZoom,maxZoom:this.maxZoom,tooltip:this.tooltip}}toCodeBlockProperties(){return[this.type,this.latLng.lat,this.latLng.lng,this.link,this.description,this.minZoom,this.maxZoom]}remove(){this.group&&this.group.removeLayer(this.leafletInstance),"always"==this.tooltip&&this.popup.leafletInstance?.remove()}}let Xc=window[lr];class Tc extends tc{constructor(t,e){super(),this.map=t,this.data=e,this.popup=Vr(this.map,this),this.leafletInstance=Xc.circle(Xc.latLng(this.data.loc),{radius:this.radiusInMeters,color:this.color}),this.layer=e.layer,this.checkAndAddToMap(),this.bindEvents()}get radius(){let t=this.radiusInMeters;return"image"==this.map.type&&(t=Nr(t).from("m").to(this.map.unit),t/=this.map.scale),t}setRadius(t){this.data.radius=t,this.leafletInstance.setRadius(this.radius)}get radiusInMeters(){return Nr(this.data.radius).from(this.data.unit??"m").to("m")}get mutable(){return this.data.mutable}set mutable(t){this.data.mutable=t}setMutable(t){this.data.mutable=t}get color(){return this.data.color}setColor(t){this.data.color=t}get id(){return this.data.id}get latlng(){return this.leafletInstance.getLatLng()}get loc(){return[this.latlng.lat,this.latlng.lng]}get type(){if(this.data.id){const t=this.map.markers.find((({id:t})=>t===this.data.id));if(t)return t.type}return"none"}get description(){let t=Nr(this.data.radius).from(this.data.unit).to(this.map.unit);return"image"==this.type&&(t*=this.map.scale),this.data.desc?this.data.desc+` (${ye(t,1)} ${this.map.unit})`:`${ye(t,1)} ${this.map.unit}`}get group(){return this.mapLayer?.overlays[this.type]}get marker(){return this.data.marker}show(){this.group&&this.group.addLayer(this.leafletInstance)}bindEvents(){if(this.leafletInstance.on("contextmenu",(t=>{Xc.DomEvent.stopPropagation(t),this.map.handleMapContext(t,this)})).on("mouseover",(t=>{Xc.DomEvent.stopPropagation(t),this.popup.open(this.description)})).on("click",(t=>{t.originalEvent.getModifierState(ge)?this.focus():this.popup.open(this.description)})),this.marker){const t=this.map.getMarkersById(this.marker);if(!t||!t.length)return;t[0].leafletInstance.on("drag",(e=>{this.leafletInstance.setLatLng(t[0].leafletInstance.getLatLng())}))}}isUnder(t){const e=this.leafletInstance.getElement();if(!e)return!1;const{clientX:a,clientY:i}=t.originalEvent,{x:n,y:s,width:r,height:c}=e.getBoundingClientRect(),o=r/2,l=[n+r/2,s+c/2];return this.mutable&&Math.pow(a-l[0],2)+Math.pow(i-l[1],2){const a=new Gc(this,t,e,{pane:this.options.pane??"geojson"});return this.markers.push(a),a.leafletInstance},style:t=>{if(!t||!t.properties)return{};const{stroke:e=this.options.color,"stroke-opacity":a=ue,"stroke-width":i=he,fill:n=null,"fill-opacity":s=.2}=t.properties;return{color:e,opacity:a,weight:i,fillColor:n,fillOpacity:s}},onEachFeature:(t,e)=>{if("Point"==t.geometry?.type)return;const a=new Kc(this,t,e);this.features.push(a)}}),n&&this.leafletInstance.on("click",(async t=>{await this.map.plugin.app.workspace.openLinkText(this.note.replace("^","#^").split(/\|/).shift(),this.map.plugin.app.workspace.getActiveFile()?.path??"",!0)}))}get group(){return this.map.featureLayer}get display(){return this._display||(this._display=createDiv()),this._display}addMarker(t,e,a){const i=new Gc(this,null,t,{pane:a??this.options.pane});return this.markers.push(i),i.leafletInstance}toProperties(){}buildTooltip(e,{icon:a,description:i}){let n=createDiv({attr:{style:"text-align: left;"}});const s=n.createDiv({attr:{style:"display: flex; justify-content: space-between;"}}),r=s.createEl("label",{text:e,attr:{style:"text-align: left;"}});return a&&(0,t.setIcon)(s.createDiv({attr:{style:"margin-left: 0.5rem;"}}),qt),this.note&&this.note.length&&(0,t.setIcon)(s.createDiv({attr:{style:"margin-left: 0.5rem;"}}),"note-glyph"),i&&(r.setAttr("style","font-weight: bolder; text-align: left;"),n.createEl("p",{attr:{style:"margin: 0.25rem 0; text-align: left;"},text:i})),n}}class Gc{constructor(t,e,a,i){this.parent=t;const n=e?.properties["marker-symbol"]??"default",s=this.map.markerIcons.get(n)??this.map.markerIcons.get("default");this.title=e?.properties.title??e?.properties.name??null,this.description=e?.properties.description??null,(this.title||this.parent.note)&&(this.iconDisplay=this.parent.buildTooltip(this.title??this.parent.note,{icon:null!=this.description}),this.descriptionDisplay=this.parent.buildTooltip(this.title??this.parent.note,{description:this.description})),this.leafletInstance=Pc.marker(a,{pane:i.pane,icon:s.icon,draggable:!1}),this.leafletInstance.setZIndexOffset(1e3),this.leafletInstance.on("click",(t=>{if((!t.originalEvent.getModifierState("Shift")||!t.originalEvent.getModifierState("Alt"))&&this.description)return Pc.DomEvent.stop(t),void this.parent.popup.setTarget(this.leafletInstance).open(this.descriptionDisplay)})),this.leafletInstance.on("mouseover",(t=>{!this.map.isDrawing&&this.title&&(Pc.DomEvent.stop(t),this.parent.popup.setTarget(this.leafletInstance).open(this.iconDisplay))}))}get map(){return this.parent.map}}class Kc{constructor(t,e,a){this.parent=t,this.feature=e,this.leafletInstance=a,this.title=e.properties.title??e.properties.name??null,this.description=e.properties.description??null,this.title&&(this.iconDisplay=this.parent.buildTooltip(this.title,{icon:null!=this.description}),this.descriptionDisplay=this.parent.buildTooltip(this.title,{description:this.description})),this.leafletInstance.on("mouseover",(()=>this.onLayerMouseover())),this.leafletInstance.on("click",(t=>this.onLayerClick(t)))}get map(){return this.parent.map}getLatLngs(){if(this.leafletInstance instanceof Pc.Polyline)return this.leafletInstance.getLatLngs().flat(2)}onLayerMouseover(){(this.title||this.description)&&(this.map.isDrawing||this.parent.popup.setTarget(this.leafletInstance.getBounds().getCenter()).open(this.iconDisplay,this.leafletInstance))}onLayerClick(t){if(!t.originalEvent.getModifierState(ge))return t.originalEvent.getModifierState("Shift")&&t.originalEvent.getModifierState("Alt")||!this.title?void this.map.leafletInstance.fire("click",t,!0):(this.parent.popup.setTarget(t.latlng).open(this.descriptionDisplay,this.leafletInstance),void Pc.DomEvent.stopPropagation(t));this._focus()}_focus(){const{lat:t,lng:e}=Le(this.leafletInstance.getBounds().getCenter());this.map.log(`Feature was Control clicked. Moving to bounds [${t}, ${e}]`),this.map.leafletInstance.fitBounds(this.leafletInstance.getBounds())}}var Uc=a(520),qc=a(477),jc=a.n(qc);function Yc(){return jc()('(()=>{var e={647:(e,t,n)=>{function r(e){this.options=e||{locator:{}}}function a(){this.cdata=!1}function i(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber}function o(e){if(e)return"\\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]"}function s(e,t,n){return"string"==typeof e?e.substr(t,n):e.length>=t+n||t?new java.lang.String(e,t,n)+"":e}function l(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t)}r.prototype.parseFromString=function(e,t){var n=this.options,r=new h,i=n.domBuilder||new a,s=n.errorHandler,l=n.locator,c=n.xmlns||{},m=/\\/x?html?$/.test(t),p=m?u.entityMap:{lt:"<",gt:">",amp:"&",quot:\'"\',apos:"\'"};return l&&i.setDocumentLocator(l),r.errorHandler=function(e,t,n){if(!e){if(t instanceof a)return t;e=t}var r={},i=e instanceof Function;function s(t){var a=e[t];!a&&i&&(a=2==e.length?function(n){e(t,n)}:e),r[t]=a&&function(e){a("[xmldom "+t+"]\\t"+e+o(n))}||function(){}}return n=n||{},s("warning"),s("error"),s("fatalError"),r}(s,i,l),r.domBuilder=n.domBuilder||i,m&&(c[""]="http://www.w3.org/1999/xhtml"),c.xml=c.xml||"http://www.w3.org/XML/1998/namespace",e&&"string"==typeof e?r.parse(e,c,p):r.errorHandler.error("invalid doc source"),i.doc},a.prototype={startDocument:function(){this.doc=(new p).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(e,t,n,r){var a=this.doc,o=a.createElementNS(e,n||t),s=r.length;l(this,o),this.currentElement=o,this.locator&&i(this.locator,o);for(var u=0;u{function n(e,t){for(var n in e)t[n]=e[n]}function r(e,t){var r=e.prototype;if(!(r instanceof t)){function a(){}a.prototype=t.prototype,n(r,a=new a),e.prototype=r=a}r.constructor!=e&&("function"!=typeof e&&console.error("unknow Class:"+e),r.constructor=e)}var a="http://www.w3.org/1999/xhtml",i={},o=i.ELEMENT_NODE=1,s=i.ATTRIBUTE_NODE=2,l=i.TEXT_NODE=3,u=i.CDATA_SECTION_NODE=4,c=i.ENTITY_REFERENCE_NODE=5,h=i.ENTITY_NODE=6,m=i.PROCESSING_INSTRUCTION_NODE=7,p=i.COMMENT_NODE=8,d=i.DOCUMENT_NODE=9,f=i.DOCUMENT_TYPE_NODE=10,g=i.DOCUMENT_FRAGMENT_NODE=11,N=i.NOTATION_NODE=12,v={},w={},y=(v.INDEX_SIZE_ERR=(w[1]="Index size error",1),v.DOMSTRING_SIZE_ERR=(w[2]="DOMString size error",2),v.HIERARCHY_REQUEST_ERR=(w[3]="Hierarchy request error",3)),E=(v.WRONG_DOCUMENT_ERR=(w[4]="Wrong document",4),v.INVALID_CHARACTER_ERR=(w[5]="Invalid character",5),v.NO_DATA_ALLOWED_ERR=(w[6]="No data allowed",6),v.NO_MODIFICATION_ALLOWED_ERR=(w[7]="No modification allowed",7),v.NOT_FOUND_ERR=(w[8]="Not found",8)),b=(v.NOT_SUPPORTED_ERR=(w[9]="Not supported",9),v.INUSE_ATTRIBUTE_ERR=(w[10]="Attribute in use",10));function x(e,t){if(t instanceof Error)var n=t;else n=this,Error.call(this,w[e]),this.message=w[e],Error.captureStackTrace&&Error.captureStackTrace(this,x);return n.code=e,t&&(this.message=this.message+": "+t),n}function T(){}function _(e,t){this._node=e,this._refresh=t,D(this)}function D(e){var t=e._node._inc||e._node.ownerDocument._inc;if(e._inc!=t){var r=e._refresh(e._node);re(e,"length",r.length),n(r,e),e._inc=t}}function C(){}function S(e,t){for(var n=e.length;n--;)if(e[n]===t)return n}function A(e,t,n,r){if(r?t[S(t,r)]=n:t[t.length++]=n,e){n.ownerElement=e;var a=e.ownerDocument;a&&(r&&F(a,e,r),function(e,t,n){e&&e._inc++,"http://www.w3.org/2000/xmlns/"==n.namespaceURI&&(t._nsMap[n.prefix?n.localName:""]=n.value)}(a,e,n))}}function I(e,t,n){var r=S(t,n);if(!(r>=0))throw x(E,new Error(e.tagName+"@"+n));for(var a=t.length-1;r"==e&&">")||"&"==e&&"&"||\'"\'==e&&"""||"&#"+e.charCodeAt()+";"}function B(e,t){if(t(e))return!0;if(e=e.firstChild)do{if(B(e,t))return!0}while(e=e.nextSibling)}function k(){}function F(e,t,n,r){e&&e._inc++,"http://www.w3.org/2000/xmlns/"==n.namespaceURI&&delete t._nsMap[n.prefix?n.localName:""]}function U(e,t,n){if(e&&e._inc){e._inc++;var r=t.childNodes;if(n)r[r.length++]=n;else{for(var a=t.firstChild,i=0;a;)r[i++]=a,a=a.nextSibling;r.length=i}}}function P(e,t){var n=t.previousSibling,r=t.nextSibling;return n?n.nextSibling=r:e.firstChild=r,r?r.previousSibling=n:e.lastChild=n,U(e.ownerDocument,e),t}function q(e,t,n){var r=t.parentNode;if(r&&r.removeChild(t),t.nodeType===g){var a=t.firstChild;if(null==a)return t;var i=t.lastChild}else a=i=t;var o=n?n.previousSibling:e.lastChild;a.previousSibling=o,i.nextSibling=n,o?o.nextSibling=a:e.firstChild=a,null==n?e.lastChild=i:n.previousSibling=i;do{a.parentNode=e}while(a!==i&&(a=a.nextSibling));return U(e.ownerDocument||e,e),t.nodeType==g&&(t.firstChild=t.lastChild=null),t}function L(){this._nsMap={}}function $(){}function V(){}function j(){}function z(){}function H(){}function X(){}function Y(){}function G(){}function W(){}function Z(){}function Q(){}function J(e,t){var n=[],r=9==this.nodeType&&this.documentElement||this,a=r.prefix,i=r.namespaceURI;if(i&&null==a&&null==(a=r.lookupPrefix(i)))var o=[{namespace:i,prefix:null}];return ee(this,n,e,t,o),n.join("")}function K(e,t,n){var r=e.prefix||"",a=e.namespaceURI;if(!r&&!a)return!1;if("xml"===r&&"http://www.w3.org/XML/1998/namespace"===a||"http://www.w3.org/2000/xmlns/"==a)return!1;for(var i=n.length;i--;){var o=n[i];if(o.prefix==r)return o.namespace!=a}return!0}function ee(e,t,n,r,i){if(r){if(!(e=r(e)))return;if("string"==typeof e)return void t.push(e)}switch(e.nodeType){case o:i||(i=[]),i.length;var h=e.attributes,N=h.length,v=e.firstChild,w=e.tagName;n=a===e.namespaceURI||n,t.push("<",w);for(var y=0;y"),n&&/^script$/i.test(w))for(;v;)v.data?t.push(v.data):ee(v,t,n,r,i),v=v.nextSibling;else for(;v;)ee(v,t,n,r,i),v=v.nextSibling;t.push("")}else t.push("/>");return;case d:case g:for(v=e.firstChild;v;)ee(v,t,n,r,i),v=v.nextSibling;return;case s:return t.push(" ",e.name,\'="\',e.value.replace(/[<&"]/g,M),\'"\');case l:return t.push(e.data.replace(/[<&]/g,M).replace(/]]>/g,"]]>"));case u:return t.push("");case p:return t.push("\\x3c!--",e.data,"--\\x3e");case f:var _=e.publicId,D=e.systemId;if(t.push("");else if(D&&"."!=D)t.push(" SYSTEM ",D,">");else{var C=e.internalSubset;C&&t.push(" [",C,"]"),t.push(">")}return;case m:return t.push("");case c:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName)}}function te(e,t,n){var r;switch(t.nodeType){case o:(r=t.cloneNode(!1)).ownerDocument=e;case g:break;case s:n=!0}if(r||(r=t.cloneNode(!1)),r.ownerDocument=e,r.parentNode=null,n)for(var a=t.firstChild;a;)r.appendChild(te(e,a,n)),a=a.nextSibling;return r}function ne(e,t,n){var r=new t.constructor;for(var a in t){var i=t[a];"object"!=typeof i&&i!=r[a]&&(r[a]=i)}switch(t.childNodes&&(r.childNodes=new T),r.ownerDocument=e,r.nodeType){case o:var l=t.attributes,u=r.attributes=new C,c=l.length;u._ownerElement=r;for(var h=0;h0},lookupPrefix:function(e){for(var t=this;t;){var n=t._nsMap;if(n)for(var r in n)if(n[r]==e)return r;t=t.nodeType==s?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){for(var t=this;t;){var n=t._nsMap;if(n&&e in n)return n[e];t=t.nodeType==s?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){return null==this.lookupPrefix(e)}},n(i,R),n(i,R.prototype),k.prototype={nodeName:"#document",nodeType:d,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==g){for(var n=e.firstChild;n;){var r=n.nextSibling;this.insertBefore(n,t),n=r}return e}return null==this.documentElement&&e.nodeType==o&&(this.documentElement=e),q(this,e,t),e.ownerDocument=this,e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),P(this,e)},importNode:function(e,t){return te(this,e,t)},getElementById:function(e){var t=null;return B(this.documentElement,(function(n){if(n.nodeType==o&&n.getAttribute("id")==e)return t=n,!0})),t},getElementsByClassName:function(e){var t=new RegExp("(^|\\\\s)"+e+"(\\\\s|$)");return new _(this,(function(e){var n=[];return B(e.documentElement,(function(r){r!==e&&r.nodeType==o&&t.test(r.getAttribute("class"))&&n.push(r)})),n}))},createElement:function(e){var t=new L;return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.childNodes=new T,(t.attributes=new C)._ownerElement=t,t},createDocumentFragment:function(){var e=new Z;return e.ownerDocument=this,e.childNodes=new T,e},createTextNode:function(e){var t=new j;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new z;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){var t=new H;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var n=new Q;return n.ownerDocument=this,n.tagName=n.target=e,n.nodeValue=n.data=t,n},createAttribute:function(e){var t=new $;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new W;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var n=new L,r=t.split(":"),a=n.attributes=new C;return n.childNodes=new T,n.ownerDocument=this,n.nodeName=t,n.tagName=t,n.namespaceURI=e,2==r.length?(n.prefix=r[0],n.localName=r[1]):n.localName=t,a._ownerElement=n,n},createAttributeNS:function(e,t){var n=new $,r=t.split(":");return n.ownerDocument=this,n.nodeName=t,n.name=t,n.namespaceURI=e,n.specified=!0,2==r.length?(n.prefix=r[0],n.localName=r[1]):n.localName=t,n}},r(k,R),L.prototype={nodeType:o,hasAttribute:function(e){return null!=this.getAttributeNode(e)},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||""},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){var n=this.ownerDocument.createAttribute(e);n.value=n.nodeValue=""+t,this.setAttributeNode(n)},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},appendChild:function(e){return e.nodeType===g?this.insertBefore(e,null):function(e,t){var n=t.parentNode;if(n){var r=e.lastChild;n.removeChild(t),r=e.lastChild}return r=e.lastChild,t.parentNode=e,t.previousSibling=r,t.nextSibling=null,r?r.nextSibling=t:e.firstChild=t,e.lastChild=t,U(e.ownerDocument,e,t),t}(this,e)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);n&&this.removeAttributeNode(n)},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t)},getAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);return n&&n.value||""},setAttributeNS:function(e,t,n){var r=this.ownerDocument.createAttributeNS(e,t);r.value=r.nodeValue=""+n,this.setAttributeNode(r)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(e){return new _(this,(function(t){var n=[];return B(t,(function(r){r===t||r.nodeType!=o||"*"!==e&&r.tagName!=e||n.push(r)})),n}))},getElementsByTagNameNS:function(e,t){return new _(this,(function(n){var r=[];return B(n,(function(a){a===n||a.nodeType!==o||"*"!==e&&a.namespaceURI!==e||"*"!==t&&a.localName!=t||r.push(a)})),r}))}},k.prototype.getElementsByTagName=L.prototype.getElementsByTagName,k.prototype.getElementsByTagNameNS=L.prototype.getElementsByTagNameNS,r(L,R),$.prototype.nodeType=s,r($,R),V.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw new Error(w[y])},deleteData:function(e,t){this.replaceData(e,t,"")},replaceData:function(e,t,n){n=this.data.substring(0,e)+n+this.data.substring(e+t),this.nodeValue=this.data=n,this.length=n.length}},r(V,R),j.prototype={nodeName:"#text",nodeType:l,splitText:function(e){var t=this.data,n=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var r=this.ownerDocument.createTextNode(n);return this.parentNode&&this.parentNode.insertBefore(r,this.nextSibling),r}},r(j,V),z.prototype={nodeName:"#comment",nodeType:p},r(z,V),H.prototype={nodeName:"#cdata-section",nodeType:u},r(H,V),X.prototype.nodeType=f,r(X,R),Y.prototype.nodeType=N,r(Y,R),G.prototype.nodeType=h,r(G,R),W.prototype.nodeType=c,r(W,R),Z.prototype.nodeName="#document-fragment",Z.prototype.nodeType=g,r(Z,R),Q.prototype.nodeType=m,r(Q,R),R.prototype.toString=J;try{if(Object.defineProperty){function ae(e){switch(e.nodeType){case o:case g:var t=[];for(e=e.firstChild;e;)7!==e.nodeType&&8!==e.nodeType&&t.push(ae(e)),e=e.nextSibling;return t.join("");default:return e.nodeValue}}Object.defineProperty(_.prototype,"length",{get:function(){return D(this),this.$$length}}),Object.defineProperty(R.prototype,"textContent",{get:function(){return ae(this)},set:function(e){switch(this.nodeType){case o:case g:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),re=function(e,t,n){e["$$"+t]=n}}}catch(ie){}t.DOMImplementation=O},791:(e,t)=>{t.entityMap={lt:"<",gt:">",amp:"&",quot:\'"\',apos:"\'",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",times:"×",divide:"÷",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",euro:"€",trade:"™",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"}},275:(e,t)=>{var n=/[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/,r=new RegExp("[\\\\-\\\\.0-9"+n.source.slice(1,-1)+"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]"),a=new RegExp("^"+n.source+r.source+"*(?::"+n.source+r.source+"*)?$");function i(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,i)}function o(){}function s(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function l(e,t,n,r,a,i){function o(e,t,r){e in n.attributeNames&&i.fatalError("Attribute "+e+" redefined"),n.addValue(e,t,r)}for(var s,l=++t,u=0;;){var c=e.charAt(l);switch(c){case"=":if(1===u)s=e.slice(t,l),u=3;else{if(2!==u)throw new Error("attribute equal must after attrName");u=3}break;case"\'":case\'"\':if(3===u||1===u){if(1===u&&(i.warning(\'attribute value must after "="\'),s=e.slice(t,l)),t=l+1,!((l=e.indexOf(c,t))>0))throw new Error("attribute value no end \'"+c+"\' match");o(s,h=e.slice(t,l).replace(/&#?\\w+;/g,a),t-1),u=5}else{if(4!=u)throw new Error(\'attribute value must after "="\');o(s,h=e.slice(t,l).replace(/&#?\\w+;/g,a),t),i.warning(\'attribute "\'+s+\'" missed start quot(\'+c+")!!"),t=l+1,u=5}break;case"/":switch(u){case 0:n.setTagName(e.slice(t,l));case 5:case 6:case 7:u=7,n.closed=!0;case 4:case 1:case 2:break;default:throw new Error("attribute invalid close char(\'/\')")}break;case"":return i.error("unexpected end of input"),0==u&&n.setTagName(e.slice(t,l)),l;case">":switch(u){case 0:n.setTagName(e.slice(t,l));case 5:case 6:case 7:break;case 4:case 1:"/"===(h=e.slice(t,l)).slice(-1)&&(n.closed=!0,h=h.slice(0,-1));case 2:2===u&&(h=s),4==u?(i.warning(\'attribute "\'+h+\'" missed quot(")!\'),o(s,h.replace(/&#?\\w+;/g,a),t)):("http://www.w3.org/1999/xhtml"===r[""]&&h.match(/^(?:disabled|checked|selected)$/i)||i.warning(\'attribute "\'+h+\'" missed value!! "\'+h+\'" instead!!\'),o(h,h,t));break;case 3:throw new Error("attribute value missed!!")}return l;case"€":c=" ";default:if(c<=" ")switch(u){case 0:n.setTagName(e.slice(t,l)),u=6;break;case 1:s=e.slice(t,l),u=2;break;case 4:var h=e.slice(t,l).replace(/&#?\\w+;/g,a);i.warning(\'attribute "\'+h+\'" missed quot(")!!\'),o(s,h,t);case 5:u=6}else switch(u){case 2:n.tagName,"http://www.w3.org/1999/xhtml"===r[""]&&s.match(/^(?:disabled|checked|selected)$/i)||i.warning(\'attribute "\'+s+\'" missed value!! "\'+s+\'" instead2!!\'),o(s,s,t),t=l,u=1;break;case 5:i.warning(\'attribute space is required"\'+s+\'"!!\');case 6:u=1,t=l;break;case 3:u=4,t=l;break;case 7:throw new Error("elements closed character \'/\' and \'>\' must be connected to")}}l++}}function u(e,t,n){for(var r=e.tagName,a=null,i=e.length;i--;){var o=e[i],s=o.qName,l=o.value;if((p=s.indexOf(":"))>0)var u=o.prefix=s.slice(0,p),c=s.slice(p+1),h="xmlns"===u&&c;else c=s,u=null,h="xmlns"===s&&"";o.localName=c,!1!==h&&(null==a&&(a={},m(n,n={})),n[h]=a[h]=l,o.uri="http://www.w3.org/2000/xmlns/",t.startPrefixMapping(h,l))}for(i=e.length;i--;)(u=(o=e[i]).prefix)&&("xml"===u&&(o.uri="http://www.w3.org/XML/1998/namespace"),"xmlns"!==u&&(o.uri=n[u||""]));var p;(p=r.indexOf(":"))>0?(u=e.prefix=r.slice(0,p),c=e.localName=r.slice(p+1)):(u=null,c=e.localName=r);var d=e.uri=n[u||""];if(t.startElement(d,c,r,e),!e.closed)return e.currentNSMap=n,e.localNSMap=a,!0;if(t.endElement(d,c,r),a)for(u in a)t.endPrefixMapping(u)}function c(e,t,n,r,a){if(/^(?:script|textarea)$/i.test(n)){var i=e.indexOf("",t),o=e.substring(t+1,i);if(/[&<]/.test(o))return/^script$/i.test(n)?(a.characters(o,0,o.length),i):(o=o.replace(/&#?\\w+;/g,r),a.characters(o,0,o.length),i)}return t+1}function h(e,t,n,r){var a=r[n];return null==a&&((a=e.lastIndexOf(""))t?(n.comment(e,t+4,a-t-4),a+3):(r.error("Unclosed comment"),-1):-1;if("CDATA["==e.substr(t+3,6)){var a=e.indexOf("]]>",t+9);return n.startCDATA(),n.characters(e,t+9,a-t-9),n.endCDATA(),a+3}var i=function(e,t){var n,r=[],a=/\'[^\']+\'|"[^"]+"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;for(a.lastIndex=t,a.exec(e);n=a.exec(e);)if(r.push(n),n[1])return r}(e,t),o=i.length;if(o>1&&/!doctype/i.test(i[0][0])){var s=i[1][0],l=!1,u=!1;o>3&&(/^public$/i.test(i[2][0])?(l=i[3][0],u=o>4&&i[4][0]):/^system$/i.test(i[2][0])&&(u=i[3][0]));var c=i[o-1];return n.startDTD(s,l,u),n.endDTD(),c.index+c[0].length}return-1}function d(e,t,n){var r=e.indexOf("?>",t);if(r){var a=e.substring(t,r).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);return a?(a[0].length,n.processingInstruction(a[1],a[2]),r+2):-1}return-1}function f(){this.attributeNames={}}i.prototype=new Error,i.prototype.name=i.name,o.prototype={parse:function(e,t,n){var r=this.domBuilder;r.startDocument(),m(t,t={}),function(e,t,n,r,a){function o(e){var t=e.slice(1,-1);return t in n?n[t]:"#"===t.charAt(0)?function(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}(parseInt(t.substr(1).replace("x","0x"))):(a.error("entity not found:"+e),e)}function m(t){if(t>x){var n=e.substring(x,t).replace(/&#?\\w+;/g,o);y&&g(x),r.characters(n,0,t-x),x=t}}function g(t,n){for(;t>=v&&(n=w.exec(e));)N=n.index,v=N+n[0].length,y.lineNumber++;y.columnNumber=t-N+1}for(var N=0,v=0,w=/.*(?:\\r\\n?|\\n)|.*$/g,y=r.locator,E=[{currentNSMap:t}],b={},x=0;;){try{var T=e.indexOf("<",x);if(T<0){if(!e.substr(x).match(/^\\s*$/)){var _=r.doc,D=_.createTextNode(e.substr(x));_.appendChild(D),r.currentElement=D}return}switch(T>x&&m(T),e.charAt(T+1)){case"/":var C=e.indexOf(">",T+3),S=e.substring(T+2,C),A=E.pop();C<0?(S=e.substring(T+2).replace(/[\\s<].*/,""),a.error("end tag name: "+S+" is not complete:"+A.tagName),C=T+1+S.length):S.match(/\\sx?x=C:m(Math.max(T,x)+1)}}(e,t,n,r,this.errorHandler),r.endDocument()}},f.prototype={setTagName:function(e){if(!a.test(e))throw new Error("invalid tagName:"+e);this.tagName=e},addValue:function(e,t,n){if(!a.test(e))throw new Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:n}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}},t.XMLReader=o,t.ParseError=i}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}(()=>{"use strict";var e=n(647);const t=self;t.onmessage=async e=>{try{let n=e.data.string;n=n.replace(/>\\s+<"),n=n.replace(/gpxtpx:|gpxx:|ns3:|gpxdata:|wptx1:|ctx:|mytrails:/g,""),n=n.replace(/cadence>/g,"cad>"),n=n.replace(/heartrate>/g,"hr>"),n=n.replace(/<\\/temp>/g,""),n=n.replace(//g,"");const r=new s(n);t.postMessage({data:r.info})}catch(e){t.postMessage({error:e})}};const r=36e5,a=864e5,i={color:"blue"},o={parseElements:["track","route","waypoint"],joinTrackSegments:!0,max_point_interval:15e3,polyline_options:i};class s{constructor(e,t=o){this.xml=e,this.layers={},this.options={...t,...o},this._init_info(),this._parse(this.xml)}get_duration_string(e,t){let n="";e>=a&&(n+=Math.floor(e/a)+"d ",e%=a),e>=r&&(n+=Math.floor(e/r)+":",e%=r);const i=Math.floor(e/6e4);e%=6e4,i<10&&(n+="0"),n+=i+"\'";const o=Math.floor(e/1e3);return e%=1e3,o<10&&(n+="0"),n+=o,n+=!t&&e>0?"."+Math.round(1e3*Math.floor(e))/1e3:\'"\',n}get_duration_string_iso(e,t){return this.get_duration_string(e,t).replace("\'",":").replace(\'"\',"")}_merge_objs(e,t){return{...e,...t}}_prepare_data_point(e,t,n,r){const a=[t&&t(e[0])||e[0],n&&n(e[1])||e[1]];return a.push(r&&r(a[0],a[1])||a[0]+": "+a[1]),a}_init_info(){this.info={name:null,desc:null,author:null,copyright:null,waypoints:[],styles:[],coords:[],length:0,flags:{elevation:!1,speed:!1,hr:!1,duration:!1,atemp:!1,cad:!1},elevation:{gain:0,loss:0,max:0,min:1/0,total:0,avg:0,points:[]},speed:{max:0,min:1/0,avg:0,total:0,points:[]},hr:{avg:0,min:1/0,max:0,total:0,points:[]},duration:{start:null,end:null,moving:0,total:0},atemp:{avg:0,min:1/0,max:0,total:0,points:[]},cad:{avg:0,min:1/0,max:0,total:0,points:[]}}}_parse(t,n=this.options,r=!1){const a=(e,t)=>{const n=this._parse_gpx_data(e,t);if(!n)throw new Error("No layers found.");this.layers=n,this.info.coords=this.layers.map((e=>e.coords)),this.info.styles=this.layers.map((e=>e.style))},i=new e.a;r?setTimeout((function(){a(i.parseFromString(t,"text/xml"),n)})):a(i.parseFromString(t,"text/xml"),n)}_parse_gpx_data(e,t=this.options){let n=[];const r=e.getElementsByTagName("name");r.length>0&&(this.info.name=r[0].textContent);const a=e.getElementsByTagName("desc");a.length>0&&(this.info.desc=a[0].textContent);const i=e.getElementsByTagName("author");i.length>0&&(this.info.author=i[0].textContent);const o=e.getElementsByTagName("copyright");o.length>0&&(this.info.copyright=o[0].textContent);const s=t.parseElements;if(s.indexOf("route")>-1){const r=e.getElementsByTagName("rte");for(let e=0;e-1){const r=e.getElementsByTagName("trk");for(let e=0;e-1){this.info.waypoints=[];const t=e.getElementsByTagName("wpt");for(let e=0;e0?n[0].textContent:"",a=t[e].getElementsByTagName("desc"),i=a.length>0?a[0].textContent:"",o=t[e].getElementsByTagName("sym"),s=o.length>0?o[0].textContent:null,u=t[e].getElementsByTagName("type"),c=u.length>0?u[0].textContent:null;this.info.waypoints.push({...l,name:r,desc:i,symbol:s,type:c})}}return n}_parse_segment(e,t,n,r){const a=e.getElementsByTagName(r);if(!a.length)return[];const i=[];let o=null;for(let e=0;e0&&!isNaN(Date.parse(r[0].textContent))&&(n.meta.time=new Date(Date.parse(r[0].textContent)));const s=null!=o?Math.abs(n.meta.time?.valueOf()??0-o.meta.time?.valueOf())??null:null,l=a[e].getElementsByTagName("ele");l.length>0?(n.meta.elevation=parseFloat(l[0].textContent),this.info.flags.elevation=!0):o&&o.meta?.elevation?(n.meta.elevation=o.meta.elevation,this.info.flags.elevation=!0):n.meta.elevation=null;const u=null!=o?n.meta.elevation-o.meta.elevation:null,c=null!=o?this._dist3d(o,n):null,h=a[e].getElementsByTagName("speed");h.length>0?(this.info.flags.speed=!0,n.meta.speed=parseFloat(h[0].textContent)):n.meta.speed=s>0?1e3*c/s:null;const m=a[e].getElementsByTagNameNS("*","hr");m.length>0&&(this.info.flags.hr=!0,n.meta.hr=parseInt(m[0].textContent),this.info.hr.points.push([n.lat,n.lng,n.meta.hr]),this.info.hr.total+=n.meta.hr);const p=a[e].getElementsByTagNameNS("*","cad");p.length>0&&(this.info.flags.cad=!0,n.meta.cad=parseInt(p[0].textContent),this.info.cad.points.push([n.lat,n.lng,n.meta.cad]),this.info.cad.total+=n.meta.cad,n.meta.cad>this.info.cad.max&&(this.info.cad.max=n.meta.cad),n.meta.cad0&&(this.info.flags.atemp=!0,n.meta.atemp=parseInt(d[0].textContent),this.info.atemp.points.push([n.lat,n.lng,n.meta.atemp]),this.info.atemp.total+=n.meta.atemp),n.meta.elevation>this.info.elevation.max&&(this.info.elevation.max=n.meta.elevation),n.meta.elevationthis.info.speed.max&&(this.info.speed.max=n.meta.speed),n.meta.speed0?this.info.elevation.gain+=u:this.info.elevation.loss+=Math.abs(u),o=n,i.push(n)}return[{coords:i,style:this._extract_styling(e,n,t.polyline_options)}]}_extract_styling(e,t,n){var r,a=this._merge_objs(i,t),o=e.getElementsByTagNameNS("http://www.topografix.com/GPX/gpx_style/0/2","line");return o.length>0&&((r=o[0].getElementsByTagName("color")).length>0&&(a.color="#"+r[0].textContent),(r=o[0].getElementsByTagName("opacity")).length>0&&(a.opacity=r[0].textContent),(r=o[0].getElementsByTagName("weight")).length>0&&(a.weight=r[0].textContent),(r=o[0].getElementsByTagName("linecap")).length>0&&(a.lineCap=r[0].textContent),(r=o[0].getElementsByTagName("linejoin")).length>0&&(a.lineJoin=r[0].textContent),(r=o[0].getElementsByTagName("dasharray")).length>0&&(a.dashArray=r[0].textContent),(r=o[0].getElementsByTagName("dashoffset")).length>0&&(a.dashOffset=r[0].textContent)),this._merge_objs(a,n)}_dist2d(e,t){var n=this._deg2rad(t.lat-e.lat),r=this._deg2rad(t.lng-e.lng),a=Math.sin(n/2)*Math.sin(n/2)+Math.cos(this._deg2rad(e.lat))*Math.cos(this._deg2rad(t.lat))*Math.sin(r/2)*Math.sin(r/2);return 2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))*6371e3}_dist3d(e,t){var n=this._dist2d(e,t),r=Math.abs(t.meta.elevation-e.meta.elevation);return Math.sqrt(Math.pow(n,2)+Math.pow(r,2))}_deg2rad(e){return e*Math.PI/180}}})()})();',"Worker",{name:"Leaflet Image Loader",esModule:!1},void 0)}let Rc=window[lr];const Wc=window.moment.locale,Zc={weight:3,outlineWidth:1};function Jc(t){return t.length&&t[0]instanceof Array?1+Jc(t[0]):0}class _c extends tc{constructor(t,e,a){super(),this.map=t,this.icons=a,this.popup=Vr(this.map,this,{permanent:!0}),this.data={flags:{elevation:!1,speed:!1,hr:!1,duration:!1,atemp:!1,cad:!1}},this.targeted=!1,this.hotlines={},this.map.log("Parsing GPX Data."),this.worker=new Yc,this.icons.start&&!this.map.markerIcons.has(this.icons.start)&&(this.icons.start="default"),this.icons.end&&!this.map.markerIcons.has(this.icons.end)&&(this.icons.end="default"),this.icons.waypoint&&!this.map.markerIcons.has(this.icons.waypoint)&&(this.icons.waypoint="default"),this.worker.postMessage({string:e}),this.worker.onmessage=t=>{this.worker.terminate(),t.data.error?this.map.log("There was an error parsing GPX Data."):(this.map.log("GPX Data parsed."),this.data=t.data.data,this.parsed=!0)},this.gpx=(0,Uc.gpx)((new DOMParser).parseFromString(e,"text/xml"));const i=[];this.gpx.features=this.gpx.features.map((t=>{if("Point"===t?.geometry?.type)t.properties={...t.properties??{},"marker-symbol":this.icons.waypoint};else if(t?.geometry&&"coordinates"in t.geometry){const e=t.geometry.coordinates;i.push(...e.flat(Jc(e)-1))}return t})),this.icons.start&&this.gpx.features.push({type:"Feature",geometry:{type:"Point",coordinates:i[0]},properties:{"marker-symbol":this.icons.start}}),this.icons.end&&this.gpx.features.push({type:"Feature",geometry:{type:"Point",coordinates:i[i.length-1]},properties:{"marker-symbol":this.icons.end}}),this.geojson=new Fc(this.map,this.group,{color:this.map.options.gpxColor,pane:"gpx"},this.gpx),this.leafletInstance.on("mouseover",(t=>{Rc.DomEvent.stop(t),this.map.leafletInstance.hasLayer(this.hotline)||this.targeted||this.leafletInstance.getLayers()[0].getElement().addClass("leaflet-layer-targeted")})),this.leafletInstance.on("mouseout",(t=>{this.map.leafletInstance.hasLayer(this.hotline)||this.targeted?this.popup.close():this.deselect()})),this.leafletInstance.on("click",(t=>{this.parsed&&this.map.gpxControl.setTarget(this)})),this.leafletInstance.on("mousemove",(t=>{if(this.parsed&&(this.map.leafletInstance.hasLayer(this.hotline)||this.targeted)){const e=this.findClosestPoint(t.latlng),a=this.popupContent(e);this.popup.setTarget(t.latlng).open(a)}}))}get leafletInstance(){return this.geojson.leafletInstance}get group(){return this.map.featureLayer}get renderer(){return this.map.canvas}switch(t){switch(this.map.leafletInstance.hasLayer(this.hotline)&&this.hotline.remove(),this.displaying=t,this.hide(),t){case"cad":this.hotline=Rc.hotline(this.cad.points,{min:this.cad.min,max:this.cad.max,...Zc,renderer:this.renderer}).addTo(this.map.leafletInstance);break;case"ele":this.hotline=Rc.hotline(this.elevation.points,{min:this.elevation.min,max:this.elevation.max,...Zc,renderer:this.renderer}).addTo(this.map.leafletInstance);break;case"hr":this.hotline=Rc.hotline(this.hr.points,{min:this.hr.min,max:this.hr.max,...Zc,renderer:this.renderer}).addTo(this.map.leafletInstance);break;case"speed":this.hotline=Rc.hotline(this.speed.points,{min:this.speed.min,max:this.speed.max,...Zc,renderer:this.renderer}).addTo(this.map.leafletInstance);break;default:this.show()}}findClosestPoint(t){const e=[...this.points];return e.sort(((e,a)=>this.map.leafletInstance.distance(e,t)-this.map.leafletInstance.distance(a,t))),e[0]}get flags(){return this.data.flags}get points(){return this.data?.coords.flat()}get duration(){return this.data.duration}get speed(){return this.data.speed}get cad(){return this.data.cad}get elevation(){return this.data.elevation}get hr(){return this.data.hr}get atemp(){return this.data.atemp}deselect(){this.switch("default"),this.leafletInstance.getLayers()[0].getElement().removeClass("leaflet-layer-targeted"),this.targeted=!1}hide(){this.leafletInstance&&this.leafletInstance.setStyle({color:"transparent",weight:10})}show(){this.leafletInstance&&this.leafletInstance.setStyle({color:this.map.options.gpxColor,weight:2})}get polyline(){return this.featureGroup?.getLayers()?.filter((t=>t instanceof Rc.Polyline))?.shift()}popupContent(t){const{lat:e,lng:a}=Le(t),i=createDiv("gpx-popup");if(i.createSpan({text:`${Ce("Lat")}: ${e}, ${Ce("Lng")}: ${a}`}),t.meta.time&&i.createSpan({text:`${Ce("Time")}: ${t.meta.time.toLocaleString(Wc())}`}),t.meta.elevation&&!isNaN(t.meta.elevation)){const e="imperial"===this.map.plugin.unitSystemForUnit(this.map.unit)?"ft":"m",a=this.points[this.points.indexOf(t)-1];let n=t.meta.elevation-(a?.meta?.elevation??t.meta.elevation);const s=Nr(t.meta.elevation).from("m").to(e),r=i.createDiv("elevation gpx-elevation");let c,o;r.createSpan({text:`${Ce("Elevation")}: ${ye(s,2)} ${e} (`});const l=ye(Nr(n).from("m").to(e),1);Number(l)>0?(c=Ut(_t("angle-up")).node[0],o="elevation-gain"):Number(l)<0?(c=Ut(_t("angle-down")).node[0],o="elevation-loss"):(c=createSpan(),o="");const h=r.createSpan(o);h.appendChild(c),h.createSpan({text:`${Math.abs(Number(l))}${e}`}),r.createSpan({text:")"})}if(t.meta.speed&&!isNaN(t.meta.speed)){let e,a,n=t.meta.speed;switch(this.map.plugin.unitSystemForUnit(this.map.unit)){case"metric":n=60*Nr(n).from("m").to("km")*60,e="km/h",a="km";break;case"imperial":n=60*Nr(n).from("m").to("mi")*60,e="mph",a="mi"}i.createSpan({text:`${Ce("Speed")}: ${ye(n,2)} ${e}`}),i.createSpan({text:`${Ce("Pace")}: ${ye(60/n,2)}"/${a}`})}return t.meta.atemp&&!isNaN(t.meta.atemp)&&i.createSpan({text:`${Ce("Temperature")}: ${ye(t.meta.atemp,2)} °C`}),t.meta.hr&&!isNaN(t.meta.hr)&&i.createSpan({text:`${Ce("Heart Rate")}: ${ye(t.meta.hr,2)}`}),t.meta.cad&&!isNaN(t.meta.cad)&&i.createSpan({text:`${Ce("Cadence")}: ${ye(t.meta.cad,2)} ${Ce("spm")}`}),i}toProperties(){}}const $c=window[lr];class to extends t.Events{constructor(t,e,a){super(),this.renderer=t,this.file=e,this.fileIds=a,this.renderer.registerEvent(this.plugin.app.metadataCache.on("changed",(t=>this._onChange(t)))),this.renderer.registerEvent(this.plugin.app.vault.on("rename",(t=>this._onRename(t)))),this.renderer.registerEvent(this.plugin.app.vault.on("delete",(t=>this._onDelete(t))))}get plugin(){return this.renderer.plugin}get map(){return this.renderer.map}_onChange(e){if(e!==this.file)return;const a=this.plugin.app.metadataCache.getFileCache(e);if(!("frontmatter"in a))return;this.frontmatter=a.frontmatter;let i=[];const n=this.map.getMarkersById(this.fileIds.get("marker"));if(n&&this.frontmatter.location&&this.frontmatter.location instanceof Array)try{let t=this.frontmatter.location;t&&t instanceof Array&&!(t[0]instanceof Array)&&(t=[t]);for(let e in t){const a=t[e],i=n[e];i&&2==a.length&&a.every((t=>"number"==typeof t))&&(i.loc.equals($c.latLng(a))||i.setLatLng($c.latLng(a)))}}catch(a){console.error(a),new t.Notice(Ce("There was an error updating the marker for %1.",e.name))}if(n&&this.frontmatter.mapmarker)try{const{mapmarker:t}=this.frontmatter;if(this.plugin.markerIcons.find((({type:e})=>e==t)))for(const e of n)e.icon=this.plugin.markerIcons.find((({type:e})=>e==t))}catch(a){console.error(a),new t.Notice(Ce("There was an error updating the marker type for %1.",e.name))}if(this.frontmatter.mapmarkers)try{const t=this.map.getMarkersById(this.fileIds.get("mapmarkers")),{mapmarkers:a}=this.frontmatter;for(const e of t)this.map.removeMarker(e);a.forEach((([t,a,i])=>{this.map.addMarker({type:t,loc:a,percent:null,id:this.fileIds.get("mapmarkers"),link:this.plugin.app.metadataCache.fileToLinktext(e,"",!0),layer:this.map.currentGroup.id,command:!1,mutable:!1,description:i,minZoom:null,maxZoom:null,tooltip:"hover"})}))}catch(e){console.error(e),new t.Notice(Ce("There was an error updating the markers for %1."))}if(this.fileIds.has("overlay")&&(this.map.overlays.filter((({data:t})=>t.id===this.fileIds.get("overlay")))?.forEach((t=>{t.leafletInstance.remove()})),this.map.overlays=this.map.overlays.filter((({data:t})=>t.id!=this.fileIds.get("overlay"))),this.frontmatter.mapoverlay&&this.frontmatter.mapoverlay instanceof Array&&i.push(...this.frontmatter.mapoverlay)),this.fileIds.has("overlayTag")&&this.map.options.overlayTag in this.frontmatter){this.map.overlays=this.map.overlays.filter((({id:t,leafletInstance:e})=>(t===this.fileIds.get("overlayTag")&&e.remove(),t!=this.fileIds.get("overlayTag"))));let t=this.frontmatter.location??[0,0];t&&t instanceof Array&&!(t[0]instanceof Array)&&(t=[t]),i.push([this.map.options.overlayColor??"blue",t[0],this.frontmatter[this.map.options.overlayTag],`${e.basename}: ${this.map.options.overlayTag}`,this.fileIds.get("overlayTag")])}if(i.length){const t=[...i].map((([t,e,a,i,n=this.fileIds.get("overlay")])=>{const s=a.match(le);if(!s||isNaN(Number(s[1])))throw new Error("Could not parse overlay radius. Please make sure it is in the format ` `.");const[,r,c="m"]=s;return{radius:Number(r),loc:e,color:t,unit:c,layer:this.map.currentGroup.id,desc:i,id:n,mutable:!1}}));this.map.addOverlay(...t)}}_onRename(t){if(t!==this.file)return;const e=this.map.getMarkersById(this.fileIds.get("marker"));for(const t of e)t.link=this.plugin.app.metadataCache.fileToLinktext(this.file,"",!0)}_onDelete(t){if(t!==this.file)return;this.file=null;const e=this.map.getMarkersById(this.fileIds.get("marker"));for(const t of e)this.map.removeMarker(t);this.map.overlays.filter((({data:t})=>t.id===this.fileIds.get("overlay")))?.forEach((t=>{t.leafletInstance.remove()})),this.map.overlays=this.map.overlays.filter((({data:t})=>t.id!=this.fileIds.get("overlay"))),this.trigger("remove")}}class eo extends t.Events{constructor(t){super(),this.app=t}async loadImage(t,e){for(let a of e){const{link:e,id:i,alias:n}=await this.getLink(a),{h:s,w:r}=await this.getImageDimensions(e),c={data:e,h:s,w:r,alias:n,id:i};this.trigger(`${t}-layer-data-ready`,c)}}async loadImageAsync(t,e){return new Promise((async(t,a)=>{for(let a of e){const{link:e,id:i,alias:n}=await this.getLink(a),{h:s,w:r}=await this.getImageDimensions(e);t({data:e,h:s,w:r,alias:n,id:i})}}))}unload(){}getImageDimensions(e){return new Promise((function(a,i){var n=new Image;n.onload=function(){const{width:t,height:e}=n;n.detach(),a({w:t,h:e})},n.onerror=()=>{new t.Notice(Ce("There was an issue getting the image dimensions.")),i()},n.src=e}))}async getLink(t){let e,a,i;t=decodeURIComponent(t);try{if(/https?:/.test(t)){e="link";const[n,s]=Ve(t).split("|");a=n,i=s}else{e="file";const[n,s]=Ve(t).split("|");i=s&&s.length?s:null;let r=this.app.metadataCache.getFirstLinkpathDest(n,"");if(!r)throw new Error;a=this.app.vault.getResourcePath(r)}}catch(t){console.error(t)}return{link:a,id:encodeURIComponent(t),alias:i}}}class ao extends t.MarkdownRenderChild{constructor(e,a,i,n,s){super(i),this.plugin=e,this.sourcePath=a,this.params=n,this.source=s,this.watchers=new WeakMap,this.loader=new eo(this.plugin.app),this.modifiedSource=this.source,this.hasChangedSource=!1,this.handled=!1,this.view=this.app.workspace.getActiveViewOfType(t.MarkdownView)??this.app.workspace.getActiveViewOfType(Mc),this.params={...de,...n},this.parentEl=i;let r=this.params.imageOverlay?.length>0;r="real"!=this.params.image?r||this.params.layers.length>1:r||[this.params.osmLayer,...[this.params.tileServer].flat(),...[this.params.tileOverlay].flat()].filter((t=>t)).length>1;let c=this.app.vault.getAbstractFileByPath(this.sourcePath);c instanceof t.TFile&&(this.file=c);let o=[];this.params.tileServer&&this.params.tileServer.length&&(o=[this.params.tileServer].flat());let l=[];this.params.tileOverlay&&this.params.tileOverlay.length&&(l=[this.params.tileOverlay].flat());let h=[];this.params.tileSubdomains&&this.params.tileSubdomains.length&&(h=[this.params.tileSubdomains].flat().map((t=>t.split(","))).flat()),this.options={bounds:this.params.bounds,context:this.sourcePath,darkMode:"true"==`${this.params.darkMode}`,defaultZoom:+this.params.defaultZoom,distanceMultiplier:this.params.distanceMultiplier,draw:this.params.draw??this.plugin.data.enableDraw,drawColor:ze(this.params.drawColor),geojsonColor:ze(this.params.geojsonColor),gpxColor:ze(this.params.gpxColor),hasAdditional:r,height:this.getHeight(this.params.height),id:this.params.id,imageOverlays:[],isInitiativeView:this.params.isInitiativeView,isMapView:this.params.isMapView,layers:this.params.layers,lock:this.params.lock,maxZoom:+this.params.maxZoom,minZoom:+this.params.minZoom,noUI:this.params.noUI??!1,osmLayer:this.params.osmLayer,overlayTag:this.params.overlayTag,overlayColor:this.params.overlayColor,recenter:this.params.recenter,scale:this.params.scale,noScrollZoom:this.params.noScrollZoom,tileLayer:o,tileOverlay:l,tileSubdomains:h,type:"real"!=this.params.image?"image":"real",unit:this.params.unit??this.plugin.defaultUnit,verbose:this.params.verbose,zoomDelta:+this.params.zoomDelta,zoomFeatures:this.params.zoomFeatures,zoomMarkers:this.params.showAllMarkers},this.preserveAspect=this.params.preserveAspect??!1,this.containerEl.style.height=this.options.height,this.containerEl.style.width=this.params.width??"100%",this.containerEl.style.backgroundColor="var(--background-secondary)",this.resize=new ResizeObserver((()=>{const t=this.containerEl.getBoundingClientRect();if(this.preserveAspect&&t.width>0&&t.height>0){null==this.aspect&&(this.aspect=t.width/t.height);const e=t.width/this.aspect;this.map.contentEl.style.height=`${e}px`}this.map&&this.map.rendered&&this.map.leafletInstance.invalidateSize()})),this.mapBuilt=this.buildMap(),this.resize.observe(this.containerEl)}async placeLayerInCodeBlock(e){e.mutable=!1;const a=e instanceof Ec?e.command?"commandMarker":"marker":"overlay";if(this.modifiedSource=`${this.modifiedSource}${a}: ${e.toCodeBlockProperties().join(",")}\n`,!this.hasChangedSource){const e=async()=>{if(!this.hasChangedSource)return;const t=(await this.app.vault.cachedRead(this.file)).replace(this.source,this.modifiedSource);await this.app.vault.modify(this.file,t),this.source=this.modifiedSource,this.hasChangedSource=!1};this.register((async()=>await e()));const a=this.app.workspace.on("layout-change",(async()=>{const i=this.app.workspace.getActiveViewOfType(t.MarkdownView);i&&i==this.view&&(await e(),this.app.workspace.offref(a))}));this.registerEvent(a)}this.hasChangedSource=!0}setHeight(t){this.containerEl.style.height=t,this.map&&(this.map.contentEl.style.height=t,this.map.leafletInstance.invalidateSize())}async getMap(){return await this.mapBuilt,this.map}async buildMap(){if(this.options.localMarkerTypes=await this.plugin.getLocalFileMarkers(this.file),"real"===this.options.type)this.map=new Dc(this,this.options);else{this.map=new Vc(this,this.options);let t=this.options.layers.length>1;this.loader.on(`${this.map.id}-layer-data-ready`,(e=>{this.map.log(`Data ready for layer ${decodeURIComponent(e.id)}.`),this.map instanceof Vc&&this.map.registerLayerToBuild(e),t&&(t=!1,this.loader.loadImage(this.map.id,this.options.layers.slice(1)))})),this.map.log(`Loading layer data for ${this.map.id}.`),this.loader.loadImage(this.map.id,[this.options.layers[0]])}this.map.on("removed",(()=>this.resize.disconnect())),this.map.on("should-save",(async()=>await this.plugin.saveSettings())),this.map.on("create-immutable-layer",(async t=>{await this.placeLayerInCodeBlock(t)})),this.loadSavedData(),await this.loadImmutableData(),await this.loadFeatureData(),this.map.log("Getting initiatial coordinates.");const{coords:t,zoomDistance:e,file:a}=await this.getCoordinates(this.params.lat,this.params.long,this.params.coordinates,this.params.zoomTag,this.map);let i;a&&this.registerWatcher(a,new Map([["coordinates","coordinates"]])),this.params.imageOverlay?.length&&(i=await Promise.all(this.params.imageOverlay.map((async([t,...e])=>({...await this.loader.loadImageAsync(this.map.id,[t]),bounds:e}))))),this.map.render({coords:t,zoomDistance:e,imageOverlayData:i})}async onload(){await this.mapBuilt,this.map.log("MarkdownRenderChild loaded. Appending map."),this.containerEl.appendChild(this.map.contentEl),this.map.leafletInstance.invalidateSize(),this.parentEl.contains(this.containerEl)||(this.map.log("Map element is off the page and not loaded into DOM. Will auto-detect and reset zoom."),new MutationObserver(((t,e)=>{for(const a of t)"childList"===a.type&&Array.from(this.parentEl.children).includes(this.containerEl.parentElement)&&(this.map.resetZoom(),e.disconnect())})).observe(this.parentEl,{attributes:!1,childList:!0,subtree:!1}))}async onunload(){this.map.log("Unloading map."),super.onunload(),this.loader?.unload(),this.resize?.disconnect();try{this.map.remove()}catch(t){}let e=this.plugin.app.vault.getAbstractFileByPath(this.sourcePath);if(!(e&&e instanceof t.TFile))return;let a=await this.plugin.app.vault.read(e),i=!1,n=new RegExp(`\`\`\`leaflet[\\s\\S]*?\\bid:(\\s?${this.map.id})\\b\\s*\\n[\\s\\S]*?\`\`\``,"g");if(i=a.match(n)?.length>0||!1,!i){this.map.log("Map instance was removed from note.");let t=this.plugin.mapFiles.find((({file:t})=>t===this.sourcePath));t.maps=t.maps.filter((t=>t!=this.map.id))}await this.plugin.saveSettings(),this.plugin.maps=this.plugin.maps.filter((t=>t.map!=this.map))}getHeight(e){try{if(!/\d+(px|%)/.test(e))throw new Error(Ce("Unparseable height provided."));if(/\d+%/.test(e)){const a=(this.app.workspace.getActiveViewOfType(t.MarkdownView)??this.app.workspace.getActiveViewOfType(Mc)).contentEl;let[,i]=e.match(/(\d+)%/),n=getComputedStyle(a),s=a.clientHeight;s-=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom),e=s*Number(i)/100+"px"}}catch(a){new t.Notice(Ce("There was a problem with the provided height. Using 500px.")),e="500px"}finally{return e}}async loadFeatureData(){let e=this.params.geojson,a=[];e instanceof Array||(e=[e]);const i=new Map(e?.flat(1/0).filter((t=>t)).map((t=>{let[e,a=e,i]=t.replace(/(\[|\])/g,"").split("|");return a?.length||(a=e),[e,{path:e,alias:a,note:i}]})));function n(e,a,i){if(!((i-=1)<0)&&e)if(e instanceof t.TFile&&["json","geojson"].includes(e.extension)){let t=e.path;a.set(t,{path:t,alias:t.substring(1+t.lastIndexOf("/"),t.lastIndexOf("."))})}else e instanceof t.TFolder&&e.children.forEach((t=>n(t,a,i)))}if(this.params.geojsonFolder&&this.params.geojsonFolder.length){const t=this.params.geojsonFolder,e=this.sourcePath.substring(0,this.sourcePath.lastIndexOf("/"));let a=Array.isArray(t)?t:[t];for(let t of a){let a,s;({abstractFile:a,path:t,depth:s}=this.filePathAndDepth(t,e)),n(a,i,s)}}if(i.size){this.map.log("Loading GeoJSON files.");for(let{path:e,alias:n,note:s}of[...i.values()]){const i=this.plugin.app.metadataCache.getFirstLinkpathDest(Ve(e),this.sourcePath);if(i&&i instanceof t.TFile){const r=await this.plugin.app.vault.read(i);let c;try{c=JSON.parse(r)}catch(a){new t.Notice(Ce("Could not parse GeoJSON file")+` ${e}\n\n`+a.message);continue}a.push({data:c,alias:n,note:s})}}}a.reverse();let s=this.params.gpx,r=[],c={start:null,end:null,waypoint:null,...this.params.gpxMarkers};s instanceof Array||(s=[s]);let o=new Map(s?.flat(1/0).filter((t=>t)).map((t=>{let[e,a=e]=t.replace(/(\[|\])/g,"").split("|");return a?.length||(a=e),[e,{path:e,alias:a}]})));if(this.params.gpxFolder&&this.params.gpxFolder.length)for(let e of this.params.gpxFolder){let a=this.plugin.app.vault.getAbstractFileByPath(e);a&&(a instanceof t.TFile&&"gpx"===a.extension&&o.set(e,{path:e}),a instanceof t.TFolder&&t.Vault.recurseChildren(a,(e=>{e instanceof t.TFile&&("gpx"===e.extension||e.path.endsWith(".gpx.gz"))&&o.set(e.path,{path:e.path})})))}if(o.size){this.map.log("Loading GPX files.");for(let{path:e,alias:a}of[...o.values()]){const i=this.plugin.app.metadataCache.getFirstLinkpathDest(Ve(e),this.sourcePath);if(i&&i instanceof t.TFile){let t;if("gz"===i.extension){let e=await this.plugin.app.vault.readBinary(i);t=or(e,{to:"string"})}else t=await this.plugin.app.vault.read(i);r.push({data:t,alias:a})}}}this.map.loadFeatureData({geojsonData:a,gpxData:r,gpxIcons:c})}loadSavedData(){let t=this.plugin.data.mapMarkers.find((({id:t})=>t==this.params.id));t&&(this.map.updateLockState(t.locked),this.map.addMarker(...t.markers?.map((t=>{const e=decodeURIComponent(t.layer)===t.layer?encodeURIComponent(t.layer):t.layer;return{...t,mutable:!0,layer:e}}))??[]),this.map.addOverlay(...new Set(t?.overlays??[])),this.map.addShapes(...t.shapes))}async loadImmutableData(){((this.params.marker??[]).length||(this.params.commandMarker??[]).length||(this.params.markerTag??[]).length||(this.params.markerFile??[]).length||(this.params.markerFolder??[]).length||(this.params.linksTo??[]).length||(this.params.linksFrom??[]).length||(this.params.overlayTag??[]).length)&&this.map.log("Loading immutable items.");let{markers:t,overlays:e}=await this.getImmutableItems();((t??[]).length||(e??[]).length)&&this.map.log(`Found ${t.length} markers and ${e.length} overlays.`);let a=t.map((([t,e,a,i,n,s,r,c,o,l])=>({type:t,loc:[Number(e),Number(a)],percent:void 0,link:i?.trim(),id:r,layer:n,mutable:!1,command:s,description:c,minZoom:o,maxZoom:l,tooltip:"hover",zoom:void 0}))),i=[...e].filter((t=>t&&t.length)).map((([t,e,a,i,n=Ne()])=>{const s=`${a}`.match(le)??[];if(!s||isNaN(Number(s[1])))throw new Error(Ce("Could not parse overlay radius. Please make sure it is in the format ` `."));const[,r,c]=s??[];return{radius:Number(r),loc:e,color:t,unit:c&&c.length?c:void 0,layer:this.params.layers[0],desc:i,id:n,mutable:!1}}));this.map.addMarker(...a),this.map.addOverlay(...i)}get app(){return this.plugin.app}getImmutableMarkers(){let a=[];for(let i of this.params.marker??[]){const{data:n}=(0,e.parse)(i);if(!n.length){new t.Notice("No data");continue}let s,r,[c,o,l,h,u,d,f,p]=n[0];c&&c.length&&"undefined"!==c||(c="default"),o&&o.length&&!isNaN(Number(o))?l&&l.length&&!isNaN(Number(l))?(s=null==d||0==d.length||isNaN(Number(d))?void 0:Number(d),r=null==f||0==f.length||isNaN(Number(f))?void 0:Number(f),h=Ve(h),u&&u.length&&"undefined"!==u||(u=void 0),a.push([c,Number(o),Number(l),h,p,!1,null,u,s,r])):new t.Notice(Ce("Could not parse longitude")):new t.Notice(Ce("Could not parse latitude"))}for(let i of this.params.commandMarker??[]){const{data:n}=(0,e.parse)(i);if(!n.length){new t.Notice(Ce("No data for marker %1.",i));continue}let s,r,[c,o,l,h,u,d,f]=n[0];if(c&&c.length&&"undefined"!==c||(c="default"),!o||!o.length||isNaN(Number(o))){new t.Notice("Could not parse latitude");continue}if(!l||!l.length||isNaN(Number(l))){new t.Notice("Could not parse longitude");continue}s=isNaN(Number(d))?void 0:Number(d),r=isNaN(Number(f))?void 0:Number(f),h&&h.length&&"undefined"!==h?/\[\[[\s\S]+\]\]/.test(h)&&(h=Ve(h)):h=void 0;const p=this.app.commands.listCommands(),{id:m}=p.find((({name:t,id:e})=>t==h||e==h));u&&u.length&&"undefined"!==u||(u=void 0),a.push([c,Number(o),Number(l),m,u,!0,null,null,s,r])}return a}async getImmutableItems(){return new Promise((async(e,a)=>{let i=this.getImmutableMarkers(),n=[];const{markerTag:s=[],filterTag:r=[],markerFile:c=[],markerFolder:o=[],linksTo:l=[],linksFrom:h=[],overlayTag:u,overlayColor:d}=this.params;function f(e,a,i){(i-=1)<0||!e||(e instanceof t.TFile?a.add(e.path):e instanceof t.TFolder&&e.children.forEach((t=>f(t,a,i))))}if(c.length||o.length||s.length||r.length||l.length||h.length){let e=new Set(c);const a=this.sourcePath.substring(0,this.sourcePath.lastIndexOf("/"));for(let t of o){let i,n;({abstractFile:i,path:t,depth:n}=this.filePathAndDepth(t,a)),f(i,e,n)}const p=app.plugins.plugins.dataview?.index;if(p){if(s.length>0){const t=new Set;for(let e of s){const a=e.filter((t=>t)).map((t=>(t.includes("#")||(t=`#${t}`),p.tags.getInverse(t.trim()))));a.length&&a.reduce(((t,e)=>new Set([...e].filter(Set.prototype.has,new Set(t))))).forEach(t.add,t)}t.forEach(e.add,e)}if(r.length>0&&e.size){const t=new Set;for(let e of r){const a=e.filter((t=>t)).map((t=>(t.includes("#")||(t=`#${t}`),p.tags.getInverse(t.trim()))));a.length&&a.reduce(((t,e)=>new Set([...e].filter(Set.prototype.has,new Set(t))))).forEach(t.add,t)}e=new Set([...e].filter(t.has,t))}for(let t of l){const a=this.app.metadataCache.getFirstLinkpathDest(Ve(t),"");if(!a)continue;const i=p.links.invMap.get(a.path);i&&i.forEach(e.add,e)}for(let t of h){const a=this.app.metadataCache.getFirstLinkpathDest(Ve(t),"");if(!a)continue;const i=p.links.map.get(a.path);i&&i.forEach(e.add,e)}}else{const e=[];s.length&&e.push("markerTags"),l.length&&e.push("linksTo"),h.length&&e.push("linksFrom"),e.length&&new t.Notice(Ce("The `%1` field%2 can only be used with the Dataview plugin installed.",e.reduce(((t,a,i)=>[t,a].join(i===e.reduce(((t,a,i)=>[t,a].join(i===e.length-1?" and ":", "))).length-1?" and ":", "))),e.length>2?"s":""))}for(let a of e){const e=Ve(a);if(!e){this.map.log(`Could not parse link for ${a}`);continue}const s=this.app.metadataCache.getFirstLinkpathDest(e,this.sourcePath),r=this.app.metadataCache.fileToLinktext(s,this.sourcePath,!0),c=new Map;if(!(s&&s instanceof t.TFile&&"md"===s.extension))continue;const o=this.app.metadataCache.getFileCache(s)??{},{frontmatter:l}=o,h=p?.tags?.get(e)??new Set;if(!l||!l.location&&!l.mapoverlay&&!l.mapmarkers)continue;const f=Ne();if(l.location){let e=l.location;!e.length||e[0]instanceof Array||(e=[e]);for(const a of e){let e,n,c=!1,[o,u]=a;try{o="number"==typeof o?o:Number(o?.split("%").shift()),u="number"==typeof u?u:Number(u?.split("%").shift())}catch(t){c=!0}if(c||isNaN(o)||isNaN(u))new t.Notice(Ce("Could not parse location in %1",s.basename));else{if(l.mapzoom){let[t,a]=l.mapzoom;e=isNaN(Number(t))?void 0:Number(t),n=isNaN(Number(a))?void 0:Number(a)}i.push([l.mapmarker||this.plugin.getIconForTag(h)||"default",o,u,r,void 0,!1,f,null,e,n])}}c.set("marker",f)}if(l.mapmarkers){const t=Ne();l.mapmarkers.forEach((([e,a,n,s,c])=>{let o,l;o=isNaN(Number(s))?void 0:Number(s),l=isNaN(Number(c))?void 0:Number(c),i.push([e||this.plugin.getIconForTag(h)||"default",a[0],a[1],r,void 0,!1,t,n,o,l])})),c.set("mapmarkers",t)}if(l.mapoverlay&&((l.mapoverlay[0]instanceof Array?l.mapoverlay:[l.mapoverlay]).forEach((([e=d??"blue",a=[0,0],i="1 m",r])=>{i.match(le)?n.push([e,a,i,r??Ce("%1 overlay",s.basename),f]):new t.Notice(Ce("Could not parse map overlay length in %1. Please ensure it is in the format: ",s.name))})),c.set("overlay",f)),u in l){if(!l[u].match(le)){new t.Notice(Ce("Could not parse %1 in %2. Please ensure it is in the format: ",u,s.name));continue}let e=l.location;if(!e)continue;e instanceof Array&&!(e[0]instanceof Array)&&(e=[e]),n.push([d,e[0],l[u],`${s.basename}: ${u}`,f]),c.set("overlayTag",f)}this.registerWatcher(s,c)}}if(this.params.overlay.length){const t=Array.isArray(this.params.overlay[0])?this.params.overlay:[this.params.overlay];for(const e of t.filter((t=>t&&t.length)))try{let[t,a,i,s,r=Ne()]="string"==typeof e?e.split(/,(?![^\[]*\])/):e;if(a="string"==typeof a?a.replace(/(\[|\])/g,"").split(","):a,!i.match(le))continue;const c=[Number(a[0]),Number(a[1])];n.push([t,c,i,s,r])}catch(t){}}e({markers:i,overlays:n})}))}filePathAndDepth(t,e){"."==t[0]&&(t=e+t.substring(1));let a=t.endsWith("/")?2:1/0;for(;t.endsWith("/");)t=t.substring(0,t.length-1),++a;return{abstractFile:this.app.vault.getAbstractFileByPath(t),depth:a,path:t}}registerWatcher(t,e){if(null==t)return;const a=new to(this,t,e);this.watchers.set(t,a),a.on("remove",(()=>this.watchers.delete(t)))}async getCoordinates(e,a,i,n,s){let r=e,c=a;const o=[void 0,void 0];let l,h,u,d;"string"==typeof i&&i.length?(h=this.plugin.app.metadataCache.getFirstLinkpathDest(Ve(i),this.sourcePath),h&&h instanceof t.TFile&&(({latitude:r,longitude:c,zoomDistance:l}=this._getCoordsFromCache(this.plugin.app.metadataCache.getFileCache(h),n)),s.log("Coordinates file found."))):i&&2==i.length&&(r=i[0],c=i[1],s.log(`Using supplied coordinates [${r}, ${c}]`));try{u=Number(`${r}`?.split("%",1)[0])}catch(e){new t.Notice(Ce("There was an error with the provided latitude. Using default."))}isNaN(u)?"real"===s.type?o[0]=this.plugin.data.lat:o[0]=50:o[0]=u;try{d=Number(`${c}`?.split("%",1)[0])}catch(e){new t.Notice(Ce("There was an error with the provided longitude. Using default."))}return isNaN(d)?"real"===s.type?o[1]=this.plugin.data.long:o[1]=50:o[1]=d,{coords:o,zoomDistance:l,file:h}}_getCoordsFromCache(t,e){let a,i,n;if(t&&t.frontmatter&&t.frontmatter.location&&t.frontmatter.location instanceof Array){let e=t.frontmatter.location;e instanceof Array&&e[0]instanceof Array||(e=[e]);const n=e[0];a=n[0],i=n[1]}if(e&&Object.prototype.hasOwnProperty.call(t.frontmatter,e)){const a=t.frontmatter[e],[,i,s]=a?.match(le)??[];if(!i)return;n=Nr(i).from(s??"m").to("image"==this.map.type?this.map.unit:"m"),"image"==this.map.type&&(n/=this.map.scale)}return{latitude:a,longitude:i,zoomDistance:n}}}const io="data:image/png;base64,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lXcvvbtjvXX48u6l+W35e+nSw5f+YIw/mTe2d7z08O4Bc9vcuv5i3bh/+PYX2zutv1q3bO57/ONmt5fenfPWPH8IvH8aD2+DbTfv7z6/PTz/HO5+eCEnXsH6kM29159+Y4zf3+552fnm+W0fs+xu+2/3YpeHzlsP757TfuPy5WTUZesa5LfG+MMTLbi+jH3rbJ//us/dw7dtsXuph33uX8jxi7/0L8f4reVJHl7o0fM7fgt3odY9nNjFEv843Pz97l3d3mEG+Y21MdYw6xu1bdD5zDf32cdedrd9/3d32r3tp96UXcOt/MkYv71pnP2mE22y/3ht9rR/85d3fvuCjt/v42jbd+PSC2N8e/+e7d7aw8d2+3QO7856j/v3uX4INlFPB5vfZqX+b687PHohS/zN53N3MCwNfurXh/fq+NOw+8gcf+Yefvefj/F7R789erHbt3j3xu2/7z5rD9jZ/nO/eey2FS5dmofHn5z46J08sLYtdvLnXbRN3P2Hatc8WxNsD4533512f2HXmofPylGbH5pp3ti10eHp7I7/zfv7g++8887T7zw9mV/m7YXvzhC/tt6aW64sX5ab298u39Z/88t22/6Bcx/rn6ON21+9997ZleX78ve99/7JDPJfzl5dtmw2vnd1c2veWO+5/l22b74sv1zuu9nLZh+7zbs9vHfu3LmPPjo3/6zM/5WMTywbdpvPvTz/zVvXJ2++uXyd356afPrTT316fn3qqV/91V99cuHatQ/vnPo84Xbcjttx+9FRiNv/grr92w9SAmp/sNrPzKYGAAAAAACIgZMcAAAAAACI4syH1z7csd46fPlwXhVbbl27du21a/9pjP81b2zveO213QPmtrl1/cW6cf/w7S+2d1p/tW7Z3Pf4x81ur314aU7VeAi8fxqvbYNtN+/vPr+9Nv8c7n54ISdewfqQzb3Xn741xh9v97zsfPP8to9Zdrf9t3uxy0Pnrdd2z2m/cflyMuqydQ3ym2P8zokWXF/GvnW2z3/d5+7h27bYvdTDPvcv5PjFX3tyjN887Hv/i9Pv4/YZrq999y7tdrHEPw43f797V7d3+DfzEvraGGuY9Y3aNuh85pv77GMvu9u+/7s77d72U2/KruFWvjbGH20aZ7/pRJvsP16bPe3f/OWd376g4/f7ONr23bg2J8f57v492721h4/t9ukc3p31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",no=window[lr];class so extends Mc{constructor(t,e,a=[],i=[]){super(t,e),this.leaf=t,this.plugin=e,this.players=a,this.creatures=i,this.registerEvent(this.plugin.app.workspace.on("initiative-tracker:closed",(()=>{this.removeChild(this.renderer),this.leaf.detach(),this.unload()})))}get params(){return{...de,id:"initiative-tracker-map",height:"100%",isMapView:!1,isInitiativeView:!0,scale:25.7,unit:"ft"}}async onOpen(){this.renderer=new ro(this),this.context.addChild(this.renderer)}async onClose(){this.renderer.unload(),super.onClose()}update(){this.renderer.unload(),this.renderer=new ro(this),this.context.addChild(this.renderer)}getDisplayText(){return"Initiative Tracker Map"}getViewType(){return"INITIATIVE_TRACKER_MAP_VIEW"}setPlayers(...t){this.players=t}addPlayers(...t){this.players.push(...t)}setCreatures(...t){this.creatures=t}addCreatures(...t){this.creatures.push(...t)}}class ro extends ao{constructor(t){super(t.plugin,"",t.mapEl,t.params,""),this.view=t,this.registerEvent(this.plugin.app.workspace.on("initiative-tracker:new-encounter",(()=>{this.map.removeCreature(...this.view.players,...this.view.creatures),this.loadSavedData()})))}async buildMap(){this.map=new oo(this,this.options);const{h:t,w:e}=await this.loader.getImageDimensions(io);this.map.gridLayer={data:io,h:t,w:e,id:"grid-layer",alias:null},this.map.registerLayerToBuild(this.map.gridLayer),this.map.on("removed",(()=>this.resize.disconnect())),this.map.render({coords:[50,50],zoomDistance:null,imageOverlayData:[]}),this.loadSavedData()}loadSavedData(){let t=this.map.leafletInstance.getCenter(),e=this.view.players.length/2*-1+.5;for(let a of this.view.players){let i=no.latLng(t.lat-1,t.lng+e);this.map.addCreature({latlng:i,creature:a}),e++}e=this.view.creatures.length/2*-1+.5;for(let a of this.view.creatures){let i=no.latLng(t.lat+1,t.lng+e);this.map.addCreature({latlng:i,creature:a}),e++,e++}}}class co extends Qr{constructor(t){super({tooltip:"Replace Image",cls:"leaflet-image-control",icon:"image"},t.leafletInstance),this.map=t,this.input=this.controlEl.createEl("input",{attr:{type:"file",name:"image",accept:"image/*",style:"display: none;"}})}onClick(){this.input.onchange=async()=>{const{files:t}=this.input;if(!t.length)return;const e=t[0],a=new FileReader;a.onloadend=t=>{var e=new Image;e.onload=()=>{const{width:a,height:i}=e;this.map.replaceLayer(0,{data:t.target.result.toString(),h:i,w:a,id:"grid-layer",alias:null}),this.map.removeCreature(...this.map.renderer.view.players,...this.map.renderer.view.creatures),this.map.renderer.loadSavedData()},e.src=t.target.result.toString()},a.readAsDataURL(e),this.input.value=null},this.input.click()}}class oo extends Vc{constructor(){super(...arguments),this.markerMap=new Map,this.creatureMap=new Map}addEvent(t,e){this.renderer.registerEvent(this.plugin.app.workspace.on(t,e))}replaceLayer(t,e){this.mapLayers[t].group.remove(),this.mapLayers=[],this.registerLayerToBuild(e)}isLayerRendered(){return!0}createMap(){super.createMap(),this.leafletInstance.off("contextmenu"),this.leafletInstance.on("contextmenu",(e=>{const a=new t.Menu(this.plugin.app);a.setNoIcon(),a.addItem((t=>{t.setTitle("Add Creature Here"),t.onClick((t=>{this.plugin.app.workspace.trigger("initiative-tracker:add-creature-here",this.leafletInstance.mouseEventToLatLng(t))}))})),a.showAtMouseEvent(e.originalEvent)})),this.on("first-layer-ready",(()=>{this.leafletInstance.fitBounds(this.currentLayer.getBounds())})),this.addEvent("initiative-tracker:creature-added-at-location",((t,e)=>{this.addCreature({latlng:e,creature:t})})),this.addEvent("initiative-tracker:creatures-added",(t=>{this.addCreature(...t.map((t=>({creature:t}))))})),this.addEvent("initiative-tracker:creatures-removed",(t=>{this.removeCreature(...t)})),this.addEvent("initiative-tracker:creature-updated",(t=>{this.markerMap.has(t.id)||this.addCreature({creature:t});const e=this.markerMap.get(t.id);e.creature=t,e.updateCreature()}))}buildControls(){super.buildControls(),this.leafletInstance.addControl(new co(this))}addCreature(...t){let e=[];for(const{latlng:a,creature:i}of t){let t=new lo(this,a??this.leafletInstance.getCenter(),i);e.push(t),this.markerMap.set(i.id,t)}return e}removeCreature(...t){for(const e of t)this.markerMap.has(e.id)&&(this.markerMap.get(e.id).remove(),this.markerMap.delete(e.id))}}class lo extends Ec{constructor(e,a,i){e.markerTypes.includes(i.marker)||(i.marker="default");const n=e.markerIcons.get(i.marker),s=new ho({html:(n??e.defaultIcon).html,className:"leaflet-div-icon"},i);super(e,{id:i.name,type:i.marker,icon:s,layer:null,mutable:!0,command:!1,zoom:null,percent:null,description:null,tooltip:"always",link:i.name,loc:a}),this.creature=i,this.creature.enabled?this.setEnabled():this.setDisabled(),this.map.renderer.registerEvent(this.map.plugin.app.workspace.on("initiative-tracker:active-change",(t=>{t===this.creature?this.setActive():this.setInactive()}))),this.status=this.creature.status,this.initIcon=s,this.leafletInstance.off("contextmenu"),this.leafletInstance.off("click"),this.leafletInstance.on("click",(async t=>{(this.map.isDrawing||this.map.controller.isDrawing)&&this.map.onMarkerClick(this,t)})),this.leafletInstance.on("contextmenu",(e=>{no.DomEvent.stopPropagation(e);const a=new t.Menu(this.map.plugin.app);a.setNoIcon(),a.addItem((t=>{t.setTitle("Apply Damage/Healing").onClick((()=>{this.map.plugin.app.workspace.trigger("initiative-tracker:apply-damage",this.creature)}))})),a.addItem((t=>{t.setTitle("Add Status").onClick((()=>{this.map.plugin.app.workspace.trigger("initiative-tracker:add-status",this.creature)}))})),a.addItem((t=>{t.setTitle(this.creature.enabled?"Disable":"Enable").onClick((()=>{this.map.plugin.app.workspace.trigger("initiative-tracker:enable-disable",this.creature,!this.creature.enabled)}))})),a.addItem((t=>{t.setTitle("Remove Creature").onClick((()=>{this.map.plugin.app.workspace.trigger("initiative-tracker:remove",this.creature)}))})),a.showAtMouseEvent(e.originalEvent)})),this.leafletInstance.on("mouseover",(()=>{this.popup.leafletInstance.bringToFront()}))}onShow(){"always"===this.tooltip&&this.target&&this.popup.open(this.target.display)}updateCreature(){if(this.enabled!=this.creature.enabled&&(this.creature.enabled?this.setEnabled():this.setDisabled()),isNaN(Number(this.creature.hp))||this.creature.hp==this.hp||this.updateHP(this.creature.hp),this.link!=this.creature.name&&(this.link=this.creature.name),this.creature.marker!=this.type){this.map.markerTypes.includes(this.creature.marker)||(new t.Notice(Ce('Marker type "%1" does not exist, using default.',this.creature.marker)),this.creature.marker="default");const e=this.map.markerIcons.get(this.creature.marker),a=new ho({html:(e??this.map.defaultIcon).html,className:"leaflet-div-icon"},this.creature);this.icon=e,this.divIcon=a}this.initIcon.syncStatuses()}setDisabled(){this.enabled=!1,this.leafletInstance?.getElement()?.addClass("initiative-marker-disabled")}setEnabled(){this.enabled=!0,this.leafletInstance?.getElement()?.removeClass("initiative-marker-disabled")}updateHP(t){this.hp=t,this.initIcon.updateHP(t)}setActive(){this.leafletInstance?.getElement()?.addClass("initiative-marker-active")}setInactive(){this.leafletInstance?.getElement()?.removeClass("initiative-marker-active")}}class ho extends dr{constructor(t,e){super(t),this.creature=e}createIcon(t){const e=super.createIcon(t);return this.creature.hp&&(this.addHPBar(),this.updateHP(this.creature.hp),this.status=this.div.createDiv("initiative-marker-status-container"),this.syncStatuses()),e}addHPBar(){this.progress=this.div.createEl("progress",{attr:{min:0,max:this.creature.max}})}updateHP(t){this.progress.setAttr("value",t)}syncStatuses(){this.status.empty();for(let t of this.creature.status)if(te.has(t.name)){const e=te.get(t.name);e.setAttr("aria-label",t.name),e.setAttr("aria-label-position","top"),this.status.appendChild(e)}}}class uo extends t.Plugin{constructor(){super(...arguments),this.maps=[],this.mapFiles=[],this.watchers=new Set,this.Platform=t.Platform,this.isDesktop=t.Platform.isDesktopApp,this.isMobile=t.Platform.isMobileApp,this.isMacOS=t.Platform.isMacOS,this.saveSettings=(0,t.debounce)((async()=>{this.maps.forEach((t=>{this.data.mapMarkers=this.data.mapMarkers.filter((({id:e})=>e!=t.id)),this.data.mapMarkers.push({...t.map.toProperties(),files:this.mapFiles.filter((({maps:e})=>e.indexOf(t.id)>-1)).map((({file:t})=>t))})})),this.data.mapMarkers=this.data.mapMarkers.filter((({markers:t,overlays:e,shapes:a})=>t.length>0||e.length>0||a.length>0)),await this.saveData(this.data)}),100,!1)}get modifierKey(){return this.isMacOS?"Meta":"Control"}get view(){const t=this.app.workspace.getLeavesOfType(se),e=t.length?t[0]:null;if(e&&e.view&&e.view instanceof Mc)return e.view}get initiativeView(){const t=this.app.workspace.getLeavesOfType("INITIATIVE_TRACKER_MAP_VIEW"),e=t.length?t[0]:null;if(e&&e.view&&e.view instanceof so)return e.view}get defaultUnit(){return"imperial"===this.data.defaultUnitType?"mi":"km"}unitSystemForUnit(t){return t?Se[t]??this.data.defaultUnitType:this.data.defaultUnitType}async onload(){console.log(Ce("Loading Obsidian Leaflet v%1",this.manifest.version)),await this.loadSettings(),(0,t.addIcon)(qt,jt),(0,t.addIcon)(Yt,Rt),(0,t.addIcon)(Wt,Zt),this.data.mapViewEnabled&&(this.addRibbonIcon(Wt,Ce("Open Leaflet Map"),(t=>{this.app.workspace.getLeaf(t.getModifierState(ge)).setViewState({type:se})})),this.registerView(se,(t=>new Mc(t,this)))),this.app.workspace.onLayoutReady((()=>{this.patchLinkHover(),this.registerEvent(this.app.vault.on("rename",(async(t,e)=>{t&&this.mapFiles.find((({file:t})=>t===e))&&(this.mapFiles.find((({file:t})=>t===e)).file=t.path,await this.saveSettings())}))),this.registerEvent(this.app.vault.on("delete",(async t=>{t&&this.mapFiles.find((({file:e})=>e===t.path))&&(this.mapFiles=this.mapFiles.filter((({file:e})=>e!=t.path)),await this.saveSettings())}))),this.registerHoverLinkSource(this.manifest.id,{display:this.manifest.name,defaultMod:!1}),this.app.plugins.getPlugin("initiative-tracker")&&this.registerView("INITIATIVE_TRACKER_MAP_VIEW",(t=>new so(t,this))),this.registerEvent(this.app.workspace.on("initiative-tracker:unload",(()=>{this.initiativeView&&this.initiativeView.leaf.detach()})))})),this.markerIcons=this.generateMarkerMarkup(this.data.markerIcons),this.registerMarkdownCodeBlockProcessor("leaflet",this.postprocessor.bind(this)),this.addSettingTab(new $a(this.app,this))}patchLinkHover(){const e=this.app.internalPlugins.plugins["page-preview"];if(!e.enabled)return;const a=function(t,e){const a=Object.keys(e).map((a=>function(t,e,a){const i=t[e],n=t.hasOwnProperty(e);let s=a(i);return i&&Object.setPrototypeOf(s,i),Object.setPrototypeOf(r,s),t[e]=r,c;function r(...a){return s===i&&t[e]===r&&c(),s.apply(this,a)}function c(){t[e]===r&&(n?t[e]=i:delete t[e]),s!==i&&(s=i,Object.setPrototypeOf(r,i||Function))}}(t,a,e[a])));return 1===a.length?a[0]:function(){a.forEach((t=>t()))}}(t.HoverPopover.prototype,{onShow:t=>function(){return this.parent?.state?.source==ne&&this.hoverEl.addClass("obsidian-leaflet-popover"),t.call(this)}});this.register(a),e.disable(),e.enable(),this.register((function(){e.enabled&&(e.disable(),e.enable())}))}async onunload(){console.log(Ce("Unloading Obsidian Leaflet")),this.maps.forEach((t=>{t?.map?.remove();let e=createEl("pre");e.createEl("code",{},(a=>{a.innerText=`\`\`\`leaflet\n${t.source}\`\`\``,t.el.parentElement.replaceChild(e,t.el)}))})),this.view&&this.view.leaf.detach(),this.initiativeView&&this.initiativeView.leaf.detach(),this.maps=[]}async postprocessor(e,a,i){let n=function(e){let a={};const i=e.match(/(?:\[.*\]\(|\[\[)[^\[\]]*(?:\)|\]\])/g)??[];for(let t of i)e=e.replace(t,`LEAFLET_INTERNAL_LINK_${i.indexOf(t)}`);try{a=(0,t.parseYaml)(e)}catch(t){console.error(`Obsidian Leaflet: YAML Parsing failed\n${t}`),a=Object.fromEntries(e.split("\n").map((t=>t.split(/:\s?/))))}finally{let n,s;if(a||(a={}),i.length){let t=JSON.stringify(a);for(let a of i)t=t.replace(`LEAFLET_INTERNAL_LINK_${i.indexOf(a)}`,a),e=e.replace(`LEAFLET_INTERNAL_LINK_${i.indexOf(a)}`,a);a=JSON.parse(t)}(e.match(/^\bimage\b:[\s\S]*?$/gm)??[]).length>1&&(s=(e.match(/^\bimage\b:([\s\S]*?)$/gm)||[]).map((t=>t.split("image: ")[1]))),n="string"==typeof a.image?[a.image]:a.image instanceof Array?[...a.image]:["real"],a.layers=s??[...n],a.image=a.layers[0];let r={marker:[],markerFile:[],markerFolder:[],markerTag:[],filterTag:[],commandMarker:[],geojson:[],linksTo:[],linksFrom:[],overlay:[]};return new RegExp(`(${Object.keys(r).join("|")})`).test(e)&&Object.keys(r).forEach((i=>{let n=new RegExp(`^\\b${i}\\b:\\s?([\\s\\S]*?)$`,"gm");switch(i){case"filterTag":case"markerTag":(e.match(n)||[]).length>1?r[i]=(e.match(n)||[]).map((t=>t.split(new RegExp(`(?:${i}):\\s?`))[1]?.trim().split(/,\s?/))):a[i]instanceof Array?r[i]=a[i].map((t=>t instanceof Array?t:[t])):void 0!==a[i]&&a&&(r[i]=[[a[i]]]);break;case"markerFile":(e.match(n)||[]).length>1?r[i]=(e.match(n)||[]).map((t=>t.split(new RegExp(`(?:${i}):\\s?`))[1]?.trim())):a[i]instanceof Array?r[i]=a[i].flat(2):void 0!==a[i]&&(r[i]=[a[i]]);break;default:(e.match(n)||[]).length>1?r[i]=(e.match(n)||[]).map((e=>(0,t.parseYaml)(e.split(new RegExp(`(?:${i}):\\s?`))[1]?.trim()))):a[i]instanceof Array?r[i]=a[i]:void 0!==a[i]&&(r[i]=[a[i]])}})),Object.assign(a,r),a}}(e);if(!n.id)throw new t.Notice(Ce("Obsidian Leaflet maps must have an ID.")),new Error(Ce("ID required"));Be(n.verbose,n.id,"Beginning Markdown Postprocessor.");const s=new ao(this,i.sourcePath,a,n,e),r=await s.getMap();this.registerMapEvents(r),i.addChild(s),this.maps=this.maps.filter((t=>t.el!=a)),this.maps.push({map:r,source:e,el:a,id:n.id}),this.mapFiles.find((({file:t})=>t==i.sourcePath))?this.mapFiles.find((({file:t})=>t==i.sourcePath)).maps.push(n.id):this.mapFiles.push({file:i.sourcePath,maps:[n.id]})}get configDirectory(){if(this.data.configDirectory)return`${this.data.configDirectory}/plugins/obsidian-leaflet-plugin`}get configFilePath(){if(this.data.configDirectory)return`${this.configDirectory}/data.json`}async loadSettings(){this.data=Object.assign({},pe,await this.loadData()),this.configDirectory&&await this.app.vault.adapter.exists(this.configFilePath)&&(this.data=Object.assign({},this.data,JSON.parse(await this.app.vault.adapter.read(this.configFilePath)))),null!=this.data.version?.major&&this.data.version?.major<5&&(this.data.defaultTile.contains("stamen-tiles")||this.data.defaultTileDark.contains("stamen-tiles"))&&(new t.Notice(createFragment((t=>{t.createSpan({text:"Obsidian Leaflet: Stamen has removed its map tile servers."}),t.createEl("br"),t.createEl("br"),t.createSpan({text:"Going forward, the default tile server will be "}),t.createEl("a",{href:"https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png",text:"CartoDB"}),t.createSpan({text:"."})})),0),this.data.defaultTile.contains("stamen-tiles")&&(this.data.defaultTile=re),this.data.defaultTileDark.contains("stamen-tiles")&&(this.data.defaultTileDark=re),this.data.defaultAttribution.contains("Stamen Design")&&(this.data.defaultAttribution=oe)),null!=this.data.version?.major&&this.data.version?.major<6&&(this.data.defaultTile.contains("stamen")||this.data.defaultTileDark.contains("stamen"))&&(new t.Notice(createFragment((t=>{t.createSpan({text:"Obsidian Leaflet: OpenStreetMap has restricted the use of its tile server in Obsidian."}),t.createEl("br"),t.createEl("br"),t.createSpan({text:"Going forward, the default tile server will be "}),t.createEl("a",{href:"http://maps.stamen.com/#terrain/12/37.7706/-122.3782",text:"Stamen Terrain"}),t.createSpan({text:"."})})),0),this.data.defaultTile.contains("openstreetmap")&&(this.data.defaultTile=re),this.data.defaultTileDark.contains("openstreetmap")&&(this.data.defaultTileDark=re)),this.data.previousVersion=this.manifest.version;const e=this.data.previousVersion.split(".");this.data.version={major:Number(e[0]),minor:Number(e[1]),patch:Number(e[2])},"boolean"==typeof this.data.displayMarkerTooltips&&(this.data.displayMarkerTooltips=this.data.displayMarkerTooltips?"hover":"never"),this.data.defaultMarker&&this.data.defaultMarker.iconName||(this.data.defaultMarker=pe.defaultMarker,this.data.layerMarkers=!1),await this.saveSettings()}async saveMarkerTypes(){await this.saveSettings(),this.markerIcons=this.generateMarkerMarkup(this.data.markerIcons),this.maps.forEach((t=>{t.map.updateMarkerIcons()}))}async saveData(e){if(this.configDirectory)try{await this.app.vault.adapter.exists(this.configDirectory)||await this.app.vault.adapter.mkdir(this.configDirectory),await this.app.vault.adapter.write(this.configFilePath,JSON.stringify(e))}catch(e){console.error(e),new t.Notice(Ce("There was an error saving into the configured directory."))}await super.saveData(e)}registerMapEvents(e){this.registerDomEvent(e.contentEl,"dragover",(t=>{t.preventDefault()})),this.registerDomEvent(e.contentEl,"drop",(a=>{a.stopPropagation();let i=decodeURIComponent(a.dataTransfer.getData("text/plain")).split("file=").pop();const n=/\.\w+$/.test(i)?"":".md",s=this.app.vault.getAbstractFileByPath(`${i}${n}`);if(!(s instanceof t.TFile))return;const r=e.leafletInstance.mouseEventToLatLng(a),c=[r.lat,r.lng];e.createMarker(e.defaultIcon.type,c,void 0,void 0,s.basename).leafletInstance.closeTooltip()})),e.on("marker-added",(async t=>{t.leafletInstance.closeTooltip(),t.leafletInstance.unbindTooltip(),this.maps.filter((({id:t,map:a})=>t==e.id&&a.contentEl!=e.contentEl)).forEach((e=>{e.map.addMarker(t.toProperties())})),await this.saveSettings()})),e.on("marker-dragging",(t=>{this.maps.filter((({id:t,map:a})=>t==e.id&&a.contentEl!=e.contentEl)).forEach((e=>{let a=e.map.markers.find((e=>e.id==t.id));a&&a.leafletInstance.setLatLng(t.leafletInstance.getLatLng())}))})),e.on("marker-data-updated",(async t=>{await this.saveSettings(),this.maps.filter((({id:t,map:a})=>t==e.id&&a.contentEl!=e.contentEl)).forEach((e=>{let a=e.map.markers.find((e=>e.id==t.id));a&&a.leafletInstance.setLatLng(t.leafletInstance.getLatLng())}))})),e.on("marker-deleted",(t=>{const a=this.maps.filter((({id:t,map:a})=>t==e.id&&a.contentEl!=e.contentEl));for(let{map:e}of a)e.removeMarker(t)})),e.on("marker-updated",(t=>{const a=this.maps.filter((({id:t,map:a})=>t==e.id&&a.contentEl!=e.contentEl));for(let{map:e}of a)e.updateMarker(t)}))}parseIcon(t){t.transform||(t.transform=this.data.defaultMarker.transform),t.iconName||(t.iconName=this.data.defaultMarker.iconName);let e=ee(t,{...t.layer&&!this.data.defaultMarker.isImage?{transform:t.transform,mask:_t(this.data.defaultMarker.iconName)}:{},classes:["full-width-height"]}).node;return e.style.color=t.color?t.color:this.data.defaultMarker.color,e.style.opacity=`${t.alpha??this.data.defaultMarker.alpha??1}`,{type:t.type,html:e.outerHTML,icon:fr({html:e.outerHTML,className:"leaflet-div-icon"}),markerIcon:t}}generateMarkerMarkup(t=this.data.markerIcons){let e=t.map((t=>this.parseIcon(t)));const a=ee(this.data.defaultMarker,{classes:["full-width-height"],styles:{color:this.data.defaultMarker.color,opacity:`${this.data.defaultMarker.alpha??1}`},maskId:`leaflet-mask-${Ne()}`}).html;return e.unshift({type:"default",html:a,icon:fr({html:a,className:"leaflet-div-icon"}),markerIcon:this.data.defaultMarker}),e}async getLocalFileMarkers(e,a="markers.json"){if(!e)return[];const i=`${e.parent.path}/${a}`,n=this.app.vault.getAbstractFileByPath(i),s=[];if(n instanceof t.TFile){const t=await this.app.vault.read(n);try{const e=JSON.parse(t);s.push(...e.map((t=>this.parseIcon(t))))}catch{console.error(`Badly formatted marker file ${i}`)}}return s}getIconForTag(t){return this.data.markerIcons.find((e=>((e.tags??[]).filter((e=>t.has(`${"#"==e[0]?"":"#"}${e}`)))??[]).shift()))?.type}getIconForType(t){return this.data.markerIcons.find((e=>e.type==t))??this.data.defaultMarker}createNewMarkerType(t){return new Promise((e=>{let a=t?.original??{type:t?.name??"",iconName:null,color:t?.layer??this.data.layerMarkers?this.data.defaultMarker.color:this.data.color,alpha:1,layer:t?.layer??this.data.layerMarkers,transform:this.data.defaultMarker.transform,isImage:!1,imageUrl:"",tags:[],minZoom:null,maxZoom:null},i=new _a(this.app,this,a);i.open(),i.onClose=async()=>{i.saved&&e(a),e()}}))}async openInitiativeView(e,a){if(this.initiativeView)this.initiativeView.addPlayers(...e),this.initiativeView.addCreatures(...a);else{const t=this.app.workspace.getLayout().main.children.filter((t=>"empty"!=t?.state?.type)),i=this.app.workspace.getLeaf(t.length>0);await i.open(new so(i,this,e,a))}this.initiativeView||new t.Notice("There was an error opening the initiative map view.")}}})();var n=exports;for(var s in i)n[s]=i[s];i.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})(); +/* nosourcemap */ \ No newline at end of file diff --git a/public/vaults/Demo/.obsidian/plugins/obsidian-leaflet-plugin/manifest.json b/public/vaults/Demo/.obsidian/plugins/obsidian-leaflet-plugin/manifest.json new file mode 100644 index 0000000..d901f4d --- /dev/null +++ b/public/vaults/Demo/.obsidian/plugins/obsidian-leaflet-plugin/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-leaflet-plugin", + "name": "Leaflet", + "description": "Interactive maps inside your notes", + "version": "6.0.5", + "minAppVersion": "0.12.12", + "author": "Jeremy Valentine", + "repo": "valentine195/obsidian-leaflet-plugin", + "isDesktopOnly": false +} diff --git a/public/vaults/Demo/.obsidian/plugins/obsidian-leaflet-plugin/styles.css b/public/vaults/Demo/.obsidian/plugins/obsidian-leaflet-plugin/styles.css new file mode 100644 index 0000000..9017be1 --- /dev/null +++ b/public/vaults/Demo/.obsidian/plugins/obsidian-leaflet-plugin/styles.css @@ -0,0 +1,1314 @@ +/* required styles */ + +.leaflet-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-container, +.leaflet-pane > svg, +.leaflet-pane > canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; + } +.leaflet-container { + overflow: hidden; + } +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } +/* Prevents IE11 from highlighting tiles in blue */ +.leaflet-tile::selection { + background: transparent; +} +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; + } +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + -webkit-transform-origin: 0 0; + } +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; + } +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg, +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-shadow-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer, +.leaflet-container .leaflet-tile { + max-width: none !important; + max-height: none !important; + } + +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; + } +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + /* Fallback for FF which doesn't support pinch-zoom */ + touch-action: none; + touch-action: pinch-zoom; +} +.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { + -ms-touch-action: none; + touch-action: none; +} +.leaflet-container { + -webkit-tap-highlight-color: transparent; +} +.leaflet-container a { + -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); +} +.leaflet-tile { + filter: inherit; + visibility: hidden; + } +.leaflet-tile-loaded { + visibility: inherit; + } +.leaflet-zoom-box { + width: 0; + height: 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 800; + } +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; + } + +.leaflet-pane { z-index: 400; } + +.leaflet-tile-pane { z-index: 200; } +.leaflet-overlay-pane { z-index: 400; } +.leaflet-shadow-pane { z-index: 500; } +.leaflet-marker-pane { z-index: 600; } +.leaflet-tooltip-pane { z-index: 650; } +.leaflet-popup-pane { z-index: 700; } + +.leaflet-map-pane canvas { z-index: 100; } +.leaflet-map-pane svg { z-index: 200; } + +.leaflet-vml-shape { + width: 1px; + height: 1px; + } +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } +.leaflet-top { + top: 0; + } +.leaflet-right { + right: 0; + } +.leaflet-bottom { + bottom: 0; + } +.leaflet-left { + left: 0; + } +.leaflet-control { + float: left; + clear: both; + } +.leaflet-right .leaflet-control { + float: right; + } +.leaflet-top .leaflet-control { + margin-top: 10px; + } +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } +.leaflet-left .leaflet-control { + margin-left: 10px; + } +.leaflet-right .leaflet-control { + margin-right: 10px; + } + + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-tile { + will-change: opacity; + } +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } +.leaflet-zoom-animated { + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + } +.leaflet-zoom-anim .leaflet-zoom-animated { + will-change: transform; + } +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + transition: none; + } + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; + } + + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; + } +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: grab; + } +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; + } +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; + } +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: grabbing; + } + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; + } + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive, +svg.leaflet-image-layer.leaflet-interactive path { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline: 0; + } +.leaflet-container a { + color: #0078A8; + } +.leaflet-container a.leaflet-active { + outline: 2px solid orange; + } +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } + + +/* general typography */ +.leaflet-container { + font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; + } + + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } +.leaflet-bar a, +.leaflet-bar a:hover { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } +.leaflet-bar a:hover { + background-color: #f4f4f4; + } +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; + } +.leaflet-touch .leaflet-bar a:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; + } +.leaflet-touch .leaflet-bar a:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; + } + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } + +.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { + font-size: 22px; + } + + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } +.leaflet-control-layers-toggle { + background-image: url(images/layers.png); + width: 36px; + height: 36px; + } +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(images/layers-2x.png); + background-size: 26px 26px; + } +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; + } +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; + } +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; + } +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; + } +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; + } +.leaflet-control-layers label { + display: block; + } +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } + +/* Default icon URLs */ +.leaflet-default-icon-path { + background-image: url(images/marker-icon.png); + } + + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.7); + margin: 0; + } +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + } +.leaflet-control-attribution a { + text-decoration: none; + } +.leaflet-control-attribution a:hover { + text-decoration: underline; + } +.leaflet-container .leaflet-control-attribution, +.leaflet-container .leaflet-control-scale { + font-size: 11px; + } +.leaflet-left .leaflet-control-scale { + margin-left: 5px; + } +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; + } +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + font-size: 11px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: border-box; + box-sizing: border-box; + + background: #fff; + background: rgba(255, 255, 255, 0.5); + } +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; + } +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } + + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; + } +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; + } +.leaflet-popup-content { + margin: 13px 19px; + line-height: 1.4; + } +.leaflet-popup-content p { + margin: 18px 0; + } +.leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-left: -20px; + overflow: hidden; + pointer-events: none; + } +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + color: #333; + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + padding: 4px 4px 0 0; + border: none; + text-align: center; + width: 18px; + height: 14px; + font: 16px/14px Tahoma, Verdana, sans-serif; + color: #c3c3c3; + text-decoration: none; + font-weight: bold; + background: transparent; + } +.leaflet-container a.leaflet-popup-close-button:hover { + color: #999; + } +.leaflet-popup-scrolled { + overflow: auto; + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + } + +.leaflet-oldie .leaflet-popup-content-wrapper { + -ms-zoom: 1; + } +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } +.leaflet-oldie .leaflet-popup-tip-container { + margin-top: -1px; + } + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; + } + + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; + } + + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0,0,0,0.4); + } +.leaflet-tooltip.leaflet-clickable { + cursor: pointer; + pointer-events: auto; + } +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ""; + } + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} +.leaflet-tooltip-top { + margin-top: -6px; +} +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; + } +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; + } +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; + } +.leaflet-tooltip-left { + margin-left: -6px; +} +.leaflet-tooltip-right { + margin-left: 6px; +} +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; + } +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; + } +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; + } + +/* Settings */ +.icon > .suggestion-flair { + background-color: unset; + width: 12px; + height: 16px; + font-size: 12px; + text-align: center; +} + +.obsidian-leaflet-settings .coffee { + border-top: 1px solid var(--background-modifier-border); + width: 100%; + color: var(--text-faint); + padding: 1rem; + text-align: center; +} +.obsidian-leaflet-settings .coffee img { + height: 30px; +} + +.additional-markers-container > .setting-item:not(.setting-item-heading) { + border: 0px; +} + +.additional-markers-container { + border-top: 1px solid var(--background-modifier-border); + padding: 18px 0 0 0; +} + +.additional-markers-container > .setting-item-heading:only-child { + padding-bottom: 18px; +} + +.additional-markers-control > input:first-of-type { + margin-right: auto !important; +} + +.additional-markers-container > .additional-markers { + margin: 6px 12px; +} +.additional-markers-container > .additional-markers > .setting-item { + border-top: 0; + padding-top: 9px; +} +.additional-markers-container + > .additional-markers + > .setting-item + > .setting-item-control + > *:first-child { + margin: 0 6px; +} + +.setting-item-name > .marker-type-display { + display: flex; + justify-content: flex-start; +} +.marker-type-display > .marker-icon-display { + margin-right: 12px; + font-size: 24px; + width: 18px; + display: flex; + justify-content: center; + align-items: center; +} + +.marker-creation-modal { + padding-top: 18px; + display: grid; + grid-template-columns: 75% 1fr; + grid-template-rows: 1fr; + gap: 1rem; +} + +.marker-creation-modal .setting-item { + border-top: none; +} + +.marker-creation-modal .icon-display { + padding: 1rem; +} + +.marker-creation-modal .icon-display canvas { + width: 100%; +} + +.markers { + display: none; +} + +.marker-icon-display * { + margin-right: 0px !important; +} + +.marker-icon-display input[type="color"] { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + opacity: 0; + width: 100%; + height: 100%; + margin-right: 12px; +} + +.full-width-height, +.full-width-height > * { + height: 100% !important; + width: 100% !important; +} + +.full-width, +.full-width > * { + width: 100% !important; +} + +/** Invalid Setting */ + +.leaflet-settings-modal .unset-align-items { + align-items: unset; +} + +.leaflet-settings-modal .has-invalid-message { + flex-grow: unset; + flex-flow: column nowrap; +} + +.leaflet-settings-modal input.is-invalid { + border-color: #dc3545 !important; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.leaflet-settings-modal .invalid-feedback { + display: block; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; +} + +.block-language-leaflet { + margin: 0 auto; +} + +.block-language-leaflet > .leaflet-container { + z-index: 0; + background-color: var(--background-secondary-alt); +} + +.block-language-leaflet > .adding-text { + cursor: text; +} + +.block-language-leaflet .leaflet-bar a { + font-style: unset; +} +.block-language-leaflet .leaflet-bar.disabled { + cursor: not-allowed; +} +.block-language-leaflet .leaflet-bar.disabled > a { + background-color: lightgrey; + pointer-events: none; +} + +/* immutable leaflet markers */ +/* .leaflet-marker-icon:not(.leaflet-marker-draggable) { + cursor: not-allowed; +} + */ +/* div icon override */ +.block-language-leaflet .leaflet-div-icon img { + pointer-events: none; + cursor: pointer; +} + +.block-language-leaflet .leaflet-div-icon { + background: transparent !important; + border: none !important; + width: 25px !important; + height: 25px !important; + margin-left: -12.5px !important; + margin-top: -25px !important; +} + +.block-language-leaflet .leaflet-marker-link-tooltip { + box-shadow: 0 2px 8px var(--background-modifier-box-shadow) !important; + background-color: rgba(0, 0, 0, 0.9) !important; + border: 1px solid rgba(0, 0, 0, 0.9) !important; + border-radius: 6px !important; + color: #dcddde !important; + font-size: 14px !important; + left: 50% !important; + line-height: 20px !important; + width: auto !important; + padding: 5px 14px !important; + /* pointer-events: none !important; */ + opacity: unset !important; +} + +.block-language-leaflet .leaflet-marker-link-popup > * { + animation: leaflet-pop-down 200ms forwards ease-in-out; +} + +@keyframes leaflet-pop-down { + 0% { + opacity: 0; + transform: scale(1); + } + + 20% { + opacity: 0.7; + transform: scale(1.02); + } + 40% { + opacity: 1; + transform: scale(1.05); + } + 100% { + opacity: 1; + transform: scale(1); + } +} + +.block-language-leaflet + .leaflet-marker-link-popup + > .leaflet-popup-content-wrapper { + background-color: rgba(0, 0, 0, 0.9) !important; + color: #dcddde !important; + padding: 5px 14px !important; + border-radius: 6px !important; + line-height: 20px !important; +} +.block-language-leaflet + .leaflet-marker-link-popup + > .leaflet-popup-content-wrapper + > * { + margin: 0; + font-size: 14px; + text-align: center; +} +.block-language-leaflet .leaflet-marker-link-popup .leaflet-popup-tip { + background-color: rgba(0, 0, 0, 0.9) !important; + width: 12px; + height: 12px; +} + +.block-language-leaflet .leaflet-marker-link-tooltip::before { + border-top-color: rgba(0, 0, 0, 0.9) !important; +} + +.block-language-leaflet + .leaflet-control-layers:not(.leaflet-control-layers-expanded) + .leaflet-control-layers-toggle { + background-image: unset !important; + display: flex !important; +} +.block-language-leaflet + .leaflet-control-layers:not(.leaflet-control-layers-expanded) { + width: unset; + height: unset; +} +.block-language-leaflet .leaflet-control-layers-toggle { + width: 30px !important; + height: 30px !important; +} + +.block-language-leaflet + .leaflet-control-layers + .leaflet-control-layers-selector { + appearance: auto; +} + +.block-language-leaflet .leaflet-control.disabled { + pointer-events: hover; +} + +.block-language-leaflet .leaflet-distance-control { + background-color: #fff; + border-radius: 2px; + min-width: 30px; + width: auto; + height: 30px; + padding: 5px; + cursor: pointer !important; +} + +.block-language-leaflet .leaflet-control-draw-paint-icon > svg { + stroke: black; + stroke-width: 25; +} +.block-language-leaflet .leaflet-control-draw-palette { + position: relative; +} +.block-language-leaflet .leaflet-control input[type="color"] { + visibility: hidden; + position: absolute; + top: 0; + left: 0; +} +.leaflet-file-upload > input[type="file"] { + display: none; +} + +/** Bulk Marker Edit Settings */ +.bulk-setting-hover:not(.marker) { + box-shadow: 0 0px 8px var(--background-modifier-box-shadow) !important; +} +.bulk-setting-hover.marker::before { + content: ""; + width: 120%; + height: 120%; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + border-radius: 100%; + border: 3px solid #00ff00 !important; +} +/* .bulk-edit-markers { + width: 675px; +} */ +.bulk-edit-markers .setting-item, +.bulk-edit-markers > .setting-item-control { + padding: 8px 2px; + margin: 0 8px; +} +.bulk-edit-markers > .setting-item:first-child button { + margin-right: 0; +} +.bulk-edit-markers-holder { + height: 250px; + overflow-y: auto; +} +.bulk-edit-markers-holder::-webkit-scrollbar { + width: 2px !important; +} +.bulk-edit-marker-instance .setting-item-control { + display: flex; + flex-flow: row wrap; + justify-content: space-between; +} +.bulk-edit-marker-instance .setting-item-control > *:not(:last-child) { + margin-right: 0.5rem; +} + +.block-language-leaflet .leaflet-container .dark-mode { + filter: brightness(0.6) invert(1) contrast(3) hue-rotate(200deg) + saturate(0.3) brightness(0.7); +} + +.block-language-leaflet .leaflet-container.drawing { + cursor: crosshair; +} +.block-language-leaflet + .leaflet-container.shape-dragging + .leaflet-drawing-pane + path { + cursor: move; +} + +.block-language-leaflet .leaflet-div-icon.initiative-marker-disabled { + opacity: 50%; +} +.block-language-leaflet .leaflet-div-icon.initiative-marker-active svg { + filter: drop-shadow(0 0 3px green); +} +.block-language-leaflet .leaflet-div-icon progress { + width: 100%; + top: 95%; + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +.block-language-leaflet .leaflet-div-icon .initiative-marker-status-container { + position: absolute; + top: -6px; + right: -15px; + display: flex; + flex-flow: column wrap; + justify-content: center; + align-items: center; + height: 46px; + gap: 2px; +} +.block-language-leaflet + .leaflet-div-icon + .initiative-marker-status-container + svg { + height: 10px; +} +.block-language-leaflet + .leaflet-div-icon + .initiative-marker-status-container + svg + > * { + stroke-width: 20px; + stroke: white; +} + +/** Filter Control */ +.block-language-leaflet .leaflet-control-expandable { + background: #fff; +} +.block-language-leaflet + .leaflet-control-expandable:not(.expanded) + > .leaflet-control-expandable-list { + display: none; +} +.block-language-leaflet + .leaflet-control-expandable.expanded + > .leaflet-control-expandable-icon { + display: none; +} +.block-language-leaflet .leaflet-control-expandable .task-list-item > * { + cursor: pointer; +} + +.block-language-leaflet .leaflet-control-expandable .input-container { + margin: 0; +} +.block-language-leaflet .leaflet-control-expandable.expanded .input-container { + padding: 6px 10px 6px 6px; + margin: 0; +} + +.block-language-leaflet .leaflet-control-expandable-list .input-item { + display: flex; + justify-content: flex-start; + align-items: center; +} + +.block-language-leaflet .leaflet-control-expandable input[type="radio"] { + margin-top: 0; +} + +.block-language-leaflet + .leaflet-control-expandable-list + .input-container + .input-item + > input { + top: 0px; + appearance: auto; +} +.block-language-leaflet + .leaflet-control-expandable-list + .input-container + .input-item + > label { + display: flex; + align-items: center; + justify-content: flex-start; +} +.block-language-leaflet + .leaflet-control-expandable-list + .input-container + .input-item + .leaflet-control-expandable-icon { + width: 18px; + height: 18px; + margin-right: 4px; +} +.block-language-leaflet + .leaflet-control-expandable-list + .leaflet-control-expandable-button-group { + margin-bottom: 6px; + padding: 6px 10px 0px 6px; +} +.block-language-leaflet + .leaflet-control-expandable-list + .leaflet-control-expandable-button-group + button:last-child { + margin-right: 0px; +} + +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-gpx + .gpx-data { + padding: 6px 10px 6px 6px; + border-bottom: 1px solid var(--background-modifier-border); +} +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-gpx + .input-container { + border-bottom: 1px solid var(--background-modifier-border); +} +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-gpx + .control-buttons { + display: flex; + justify-content: space-evenly; + margin: 0.25rem; +} + +.block-language-leaflet .leaflet-control-gpx .gpx-elevation { + display: flex; + justify-content: space-around; +} +.block-language-leaflet .gpx-elevation .elevation-gain { + color: green; +} +.block-language-leaflet .gpx-elevation .elevation-loss { + color: red; +} + +.gpx-popup { + display: flex; + flex-flow: column; + justify-content: flex-start; + align-items: flex-start; +} +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-draw.expanded + .leaflet-control-expandable-list { + display: flex; + flex-flow: column nowrap; +} + +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-draw.expanded + .leaflet-control-expandable-list + .leaflet-control, +.block-language-leaflet .leaflet-control-draw a { + margin: 0; + border: 0; +} +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-draw.expanded + a { + margin-right: 0; +} + +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-draw.expanded + .leaflet-control-expandable-list + .leaflet-control.leaflet-control-draw-trash, +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-draw.expanded + .leaflet-control-expandable-list + .leaflet-control.leaflet-control-draw-paint { + border-top: 2px solid rgba(0, 0, 0, 0.2); + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.block-language-leaflet .leaflet-control-has-actions { + position: relative; +} + +.block-language-leaflet .leaflet-control-has-actions .control-actions.expanded { + display: flex; + background-color: white; +} +.block-language-leaflet .leaflet-control-has-actions .control-actions { + display: none; + position: absolute; + top: -1px; + right: 100%; + border: 1px solid #ccc; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; +} + +.block-language-leaflet + .leaflet-control-has-actions + .control-actions + .leaflet-control + a { + border-radius: 0; +} + +.block-language-leaflet .leaflet-control-arrow.active, +.block-language-leaflet .leaflet-control-fill-color.active { + background-color: #3388ff; + color: white; + border-radius: 0; +} +.block-language-leaflet .leaflet-control-arrow.active a, +.block-language-leaflet .leaflet-control-fill-color.active a { + background-color: transparent; + color: white; +} + +.block-language-leaflet .leaflet-div-icon.leaflet-middle-icon, +.block-language-leaflet .leaflet-div-icon.leaflet-vertex-icon { + border-radius: 100%; + width: 12px !important; + height: 12px !important; + border: 1px solid rgb(204, 204, 204) !important; + background-color: white !important; + margin-top: -6px !important; + margin-left: -6px !important; + display: block; +} + +.block-language-leaflet .leaflet-div-icon.leaflet-middle-icon { + width: 10px !important; + height: 10px !important; + margin-top: -5px !important; + margin-left: -5px !important; +} + +.block-language-leaflet .leaflet-text-entry { + position: relative; + width: max-content; +} +.block-language-leaflet .leaflet-text-entry input { + outline: none; + position: absolute; + transform: translate(-50%, 0%); + left: 50%; + text-align: center; + background-color: transparent; + border: 0; +} +.block-language-leaflet .leaflet-text-entry span { + width: fit-content; +} + +.block-language-leaflet .leaflet-pane.leaflet-geojson-pane { + z-index: 398; +} +.block-language-leaflet .leaflet-pane.leaflet-image-overlay-pane { + z-index: 397; +} +.block-language-leaflet .leaflet-pane.leaflet-gpx-pane { + z-index: 405; +} +.block-language-leaflet .leaflet-pane.leaflet-gpx-canvas-pane { + z-index: 301; +} +.block-language-leaflet .leaflet-pane.leaflet-base-layer-pane { + z-index: 300; +} + +.hidden-leaflet-popup { + display: none; + visibility: hidden; +} +/* +.block-language-leaflet .leaflet-control-fullscreen a { + background-image: unset; +} */ + +.block-language-leaflet .leaflet-control-layers-toggle { + background-image: unset !important; +} +.block-language-leaflet .leaflet-retina .leaflet-control-layers-toggle { + background-image: unset !important; +} +.block-language-leaflet .leaflet-default-icon-path { + background-image: unset !important; +} + +.leaflet-layer-targeted { + filter: drop-shadow(0 0 3px green); +} + +.leaflet-edit-parameters .context-buttons { + display: flex; + justify-content: flex-end; + align-items: center; +} + +.block-language-leaflet .leaflet-pm-toolbar .button-container { + margin-top: unset; +} + +.leaflet-marker-icon svg { + filter: drop-shadow(1px 3px 3px black); +} + diff --git a/public/vaults/Demo/.obsidian/workspace.json b/public/vaults/Demo/.obsidian/workspace.json new file mode 100644 index 0000000..6163b6b --- /dev/null +++ b/public/vaults/Demo/.obsidian/workspace.json @@ -0,0 +1,228 @@ +{ + "main": { + "id": "4f4ac1fb48890928", + "type": "split", + "children": [ + { + "id": "968b6989d44d72f6", + "type": "tabs", + "children": [ + { + "id": "278919dfa40220f8", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "FolderA/SubFolder/Embedded.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Embedded" + } + }, + { + "id": "a9b92b569618b22a", + "type": "leaf", + "state": { + "type": "release-notes", + "state": { + "currentVersion": "1.9.14" + }, + "icon": "lucide-book-up", + "title": "Release Notes 1.9.14" + } + } + ], + "currentTab": 1 + } + ], + "direction": "vertical" + }, + "left": { + "id": "b3f37eaf78f0a3e6", + "type": "split", + "children": [ + { + "id": "04cad2200d93e702", + "type": "tabs", + "children": [ + { + "id": "82994c854825da75", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "917914c431529151", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + }, + { + "id": "08fae9611b826881", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "391731fc0e55000e", + "type": "split", + "children": [ + { + "id": "5e916a322b5fac60", + "type": "tabs", + "children": [ + { + "id": "f966c057a70b8fc2", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "FolderA/SubFolder/Abilities.md", + "collapseAll": true, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for Abilities" + } + }, + { + "id": "d70520fedced19a3", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "FolderA/SubFolder/Abilities.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links from Abilities" + } + }, + { + "id": "b1c3b410b5dd3ad6", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "05d8534214b3f920", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "helenite-docs/services-architecture.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of services-architecture" + } + } + ], + "currentTab": 2 + } + ], + "direction": "horizontal", + "width": 300 + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "obsidian-leaflet-plugin:Open Leaflet Map": false + } + }, + "active": "a9b92b569618b22a", + "lastOpenFiles": [ + "Usages.md", + "FolderA/SubFolder/Abilities.md", + "Attachments/inversed_mt_fuji.png", + "Attachments/Pasted image 20250902132433.png", + "Welcome.md", + "FolderA/SubFolder/Embedded.md", + "Attachments/file_example_MP4_480_1_5MG.mp4", + "Attachments/file_example_MP3_700KB.mp3", + "Attachments/c4611_sample_explain.pdf", + "helenite-docs/services-architecture.md", + "FolderA/TRACK_SYNTAX.md", + "devtools.md", + "FolderA/SubFolder/Abilities.md.bak", + "FolderA/TRACK_SYNTAX.md.tmp.92757.1757830171215", + "Attachments/中西citywalk.kml", + "Attachments/东西佘山含地铁绿道.kml", + "Attachments/金牛道拦马墙到普安镇.kml", + "Attachments/金牛道拦马墙到普安镇.gpx", + "Attachments/红叶尚湖.gpx", + "helenite-docs/cache-README.md", + "helenite-docs/README.md", + "helenite-docs/components/map-and-tracks-analysis.md", + "helenite-docs/components/markdown-and-plugins.md", + "helenite-docs/core/map-and-tracks-analysis.md", + "helenite-docs/map-and-tracks-analysis.md", + "docs/core/services-architecture.md", + "helenite-docs/core/services-architecture.md", + "helenite-docs/core/markdown-and-plugins.md", + "docs/core/markdown-and-plugins.md", + "docs/core/map-and-tracks-analysis.md", + "2025-09-05.md", + "Untitled.canvas", + "Attachments/Pasted image 20250902131727.png", + "test.md", + "FolderA/Canvas.canvas", + "FolderA/linkB.md", + "Attachments/Pasted image 20250902132358.png", + "Attachments/Pasted image 20250902132222.png", + "逆富士1.png" + ] +} \ No newline at end of file diff --git a/public/vaults/Demo/Attachments/Get_Started_With_Smallpdf.pdf b/public/vaults/Demo/Attachments/Get_Started_With_Smallpdf.pdf new file mode 100644 index 0000000..9916f54 Binary files /dev/null and b/public/vaults/Demo/Attachments/Get_Started_With_Smallpdf.pdf differ diff --git a/public/vaults/Demo/Attachments/Pasted image 20250902131727.png b/public/vaults/Demo/Attachments/Pasted image 20250902131727.png new file mode 100644 index 0000000..5812050 Binary files /dev/null and b/public/vaults/Demo/Attachments/Pasted image 20250902131727.png differ diff --git a/public/vaults/Demo/Attachments/Pasted image 20250902132222.png b/public/vaults/Demo/Attachments/Pasted image 20250902132222.png new file mode 100644 index 0000000..be0646f Binary files /dev/null and b/public/vaults/Demo/Attachments/Pasted image 20250902132222.png differ diff --git a/public/vaults/Demo/Attachments/Pasted image 20250902132358.png b/public/vaults/Demo/Attachments/Pasted image 20250902132358.png new file mode 100644 index 0000000..e0ed89f Binary files /dev/null and b/public/vaults/Demo/Attachments/Pasted image 20250902132358.png differ diff --git a/public/vaults/Demo/Attachments/Pasted image 20250902132433.png b/public/vaults/Demo/Attachments/Pasted image 20250902132433.png new file mode 100644 index 0000000..ad1979c Binary files /dev/null and b/public/vaults/Demo/Attachments/Pasted image 20250902132433.png differ diff --git a/public/vaults/Demo/Attachments/c4611_sample_explain.pdf b/public/vaults/Demo/Attachments/c4611_sample_explain.pdf new file mode 100644 index 0000000..8efd05c Binary files /dev/null and b/public/vaults/Demo/Attachments/c4611_sample_explain.pdf differ diff --git a/public/vaults/Demo/Attachments/file_example_MP3_700KB.mp3 b/public/vaults/Demo/Attachments/file_example_MP3_700KB.mp3 new file mode 100644 index 0000000..ab94045 Binary files /dev/null and b/public/vaults/Demo/Attachments/file_example_MP3_700KB.mp3 differ diff --git a/public/vaults/Demo/Attachments/file_example_MP4_480_1_5MG.mp4 b/public/vaults/Demo/Attachments/file_example_MP4_480_1_5MG.mp4 new file mode 100644 index 0000000..b11552f Binary files /dev/null and b/public/vaults/Demo/Attachments/file_example_MP4_480_1_5MG.mp4 differ diff --git a/public/vaults/Demo/Attachments/inversed_mt_fuji.png b/public/vaults/Demo/Attachments/inversed_mt_fuji.png new file mode 100644 index 0000000..275327d Binary files /dev/null and b/public/vaults/Demo/Attachments/inversed_mt_fuji.png differ diff --git a/public/vaults/Demo/Attachments/yamap_2025-04-02_08_48.gpx b/public/vaults/Demo/Attachments/yamap_2025-04-02_08_48.gpx new file mode 100644 index 0000000..c949eaa --- /dev/null +++ b/public/vaults/Demo/Attachments/yamap_2025-04-02_08_48.gpx @@ -0,0 +1 @@ +鶴見岳1497.13495.02493.6666666666667491.79333333333335491.69000000000005492.6466666666667493.7066666666667494.83496.86000000000007499.7866666666667503.99333333333334507.1433333333334508.68666666666667508.43666666666667508.83510.55333333333334512.3533333333334514.1033333333334515.3066666666667516.9699999999999518.2433333333333519.17519.8933333333333521.3933333333333524.1166666666667527.24530.3366666666666533.2533333333332536.4966666666667539.7833333333333542.7233333333334545.58547.2466666666667548.5100000000001549.8533333333334552.7933333333334557.0733333333334564.2566666666667573.0666666666666581.9966666666668588.9366666666667598.0766666666667605.64611.9233333333333614.06618.5233333333334623.63628.3466666666667632.8733333333333638.0833333333334645.3866666666667651.8199999999999656.6466666666666659.17663.7633333333333671.7966666666666678.8533333333334684.1466666666666686.0733333333334689.1466666666666691.4566666666666693.3666666666667694.2400000000001694.6733333333333698.1166666666667705.6300000000001714.2566666666667724.4133333333333733.4733333333334742.4866666666667750.0133333333333753.9699999999999758.2033333333334763.7533333333332770.5299999999999776.3666666666667782.4033333333333787.6733333333335795.6133333333333798.9533333333334803.3833333333332807.9499999999999812.34821.39828.8366666666666838.5333333333333843.9366666666666848.5666666666667852.1966666666667856.3733333333334860.41864.4666666666667867.6871.21875.31879.2466666666668882.9886.5966666666667891.14894.8100000000001897.6233333333333900.5733333333334904.62909.6999999999999915.1933333333333920.3100000000001924.2033333333334927.2533333333334930.1566666666666934.1066666666667938.1166666666667941.4866666666667944.4066666666668946.9699999999999952.0633333333334957.5833333333334963.9966666666666968.44972.1833333333334975.7566666666667980.3866666666667986.0033333333334991.32996.44333333333331003.40666666666681009.93999999999991019.06000000000011028.391039.24666666666671050.48333333333331060.54333333333331071.141078.58666666666681087.29666666666641095.86666666666661105.48333333333331112.02000000000021117.59333333333321125.26666666666671133.87666666666681142.51666666666671149.45666666666671157.181164.97666666666671171.92333333333341177.52333333333331185.89999999999991193.641202.211207.03333333333331214.2166666666671222.39666666666681230.02333333333331237.87333333333341247.4666666666671259.43333333333341268.41333333333321275.65333333333341284.56333333333331293.58333333333351300.92333333333341306.211311.72333333333341317.37000000000011321.681325.13666666666681327.85333333333351331.66666666666671336.24333333333331340.961344.66999999999981347.54000000000021350.25333333333331353.321357.93999999999981363.98666666666671368.591370.831368.31333333333351363.711357.66333333333321353.14666666666681349.28333333333351346.571343.18333333333341339.46333333333341334.74666666666671330.231325.30000000000021319.36666666666681314.19000000000031310.20666666666671307.57333333333351304.871301.45666666666671300.68333333333341300.30333333333331301.74666666666671300.87000000000011299.31000000000021297.45666666666671296.77333333333351296.54333333333331295.62999999999991293.771291.951288.54666666666661282.38333333333321272.471256.44666666666671239.251220.62666666666681204.06333333333351188.43999999999981172.79666666666661159.37333333333321146.11666666666681133.741121.56000000000021107.65333333333341094.25333333333331080.221068.61666666666661056.27666666666661044.96666666666671029.761013.4000000000001994.6466666666666978.1433333333333963.2200000000001947.2199999999999927.5066666666667907.1766666666667889.0833333333334874.59860.65846.2566666666667829.29811.8166666666667794.9466666666667780.2400000000001765.9766666666668752.7633333333333740.6066666666666729.8233333333334721.0166666666668713.5033333333334706.9700.46693.7166666666666688.4200000000001680.1366666666667672.7900000000001661.9033333333333650.64638.13624.3333333333334611.16592.0066666666667572.2733333333334551.8100000000001530.89511.32494.7266666666667487.43485.2485.8433333333334487.67492.3 \ No newline at end of file diff --git "a/public/vaults/Demo/Attachments/\344\270\234\350\245\277\344\275\230\345\261\261\345\220\253\345\234\260\351\223\201\347\273\277\351\201\223.kml" "b/public/vaults/Demo/Attachments/\344\270\234\350\245\277\344\275\230\345\261\261\345\220\253\345\234\260\351\223\201\347\273\277\351\201\223.kml" new file mode 100644 index 0000000..0fa4c3d --- /dev/null +++ "b/public/vaults/Demo/Attachments/\344\270\234\350\245\277\344\275\230\345\261\261\345\220\253\345\234\260\351\223\201\347\273\277\351\201\223.kml" @@ -0,0 +1,7526 @@ + + + + 2025-01-19 12:15:10 + + + + + 神经蛙_LBL5693567 + + + 65231124 + + + 8 + + + 徒步 + + + 1737260110000 + + + 1737280464000 + + + 20354000 + + + 4000 + + + 佘山地铁站1号入口 + + + 佘山地铁站1号入口 + + + and_7.9.4 + + + 5000 + + + 5000 + + + 57881445 + + + 神经蛙_LBL5693567 + + + 1326942384 + + + 57881445 + + + 神经蛙_LBL5693567 + + + zs_J5CXn8 + + + 1326942384 + + + 1396528151 + + + 0 + + + region:CN;lan:zh;model:android;system:android35;app:2bulu-V7.9.8 + + + + + + + normal + #TrackStyle_n + + + highlight + #TrackStyle_h + + + + + + + + + + + 轨迹 + + 轨迹片段1 + +
通过“两步路”生成,http://www.2bulu.com
+
上传者:神经蛙_LBL5693567
+
开始时间:2025-01-19 12:15:13
+
结束时间:2025-01-19 17:54:25
+
轨迹点数:3662
+
本段里程:15933.8769135048米
+
最高海拔:80.0米
+
最低海拔:-6.0米
+
累计爬升:120.0米
+
累计下降:120.0米
+
+ + 121.2248978 31.1066051 3.0 + 121.2248947 31.106566 4.0 + 121.2249064 31.1065647 4.0 + 121.2249111 31.1065518 5.0 + 121.2249109 31.1065617 6.0 + 121.2249066 31.1065533 7.0 + 121.2249062 31.106558 7.0 + 121.2249056 31.1065445 8.0 + 121.2248962 31.1065052 9.0 + 121.2248495 31.1064891 9.0 + 121.2248331 31.1064863 9.0 + 121.2247347 31.1064699 9.0 + 121.2246664 31.106457 9.0 + 121.2245942 31.1064471 9.0 + 121.2245023 31.1064444 10.0 + 121.2244642 31.1064421 10.0 + 121.2244483 31.1064404 9.0 + 121.2244275 31.1064372 9.0 + 121.2244079 31.1064334 9.0 + 121.2243623 31.1064261 9.0 + 121.2242865 31.1063978 9.0 + 121.2242854 31.1063412 8.0 + 121.2242856 31.1063339 7.0 + 121.2242763 31.1063274 7.0 + 121.2242383 31.1063322 7.0 + 121.2242301 31.1063306 7.0 + 121.2241773 31.1063302 7.0 + 121.224153 31.106332 7.0 + 121.2240535 31.1063241 7.0 + 121.2240281 31.1062902 7.0 + 121.2240426 31.1062712 7.0 + 121.2240556 31.106258 7.0 + 121.224068 31.1062337 6.0 + 121.2240644 31.1062223 5.0 + 121.2240543 31.1062291 4.0 + 121.2240369 31.1062341 4.0 + 121.2240331 31.1062361 4.0 + 121.2240259 31.1062495 3.0 + 121.2239971 31.1062723 2.0 + 121.2239973 31.106278 2.0 + 121.2240181 31.1062779 2.0 + 121.2240938 31.1062521 2.0 + 121.2241589 31.1062341 2.0 + 121.2242141 31.1062281 2.0 + 121.2242566 31.1061995 2.0 + 121.2242566 31.1061995 2.0 + 121.2242566 31.1061995 2.0 + 121.2242566 31.1061995 2.0 + 121.2242566 31.1061995 2.0 + 121.2242634 31.1061973 2.0 + 121.2242633 31.1061975 2.0 + 121.2242628 31.106198 2.0 + 121.2243083 31.1061656 2.0 + 121.224373 31.10611 2.0 + 121.2244339 31.1060647 2.0 + 121.2244528 31.1060215 3.0 + 121.2244579 31.1060076 3.0 + 121.2244735 31.1059421 3.0 + 121.2244736 31.1059421 3.0 + 121.2244768 31.1060022 3.0 + 121.2244743 31.1060524 2.0 + 121.2244572 31.106081 2.0 + 121.22437 31.1061524 2.0 + 121.2243208 31.106181 2.0 + 121.2242755 31.1062079 2.0 + 121.2242502 31.10622 2.0 + 121.2242246 31.1062369 2.0 + 121.2241572 31.1063344 2.0 + 121.2241252 31.1064119 2.0 + 121.22404 31.1064824 2.0 + 121.2240015 31.1065112 2.0 + 121.2239704 31.106543 2.0 + 121.2239033 31.1065951 3.0 + 121.2238597 31.1066288 3.0 + 121.223823 31.1066694 3.0 + 121.2237433 31.1067485 2.0 + 121.2236397 31.1068429 3.0 + 121.2235946 31.1068968 3.0 + 121.2235856 31.1069043 3.0 + 121.2235397 31.106932 3.0 + 121.2234749 31.106946 3.0 + 121.2233387 31.1069283 2.0 + 121.2232097 31.1069018 3.0 + 121.2231853 31.1069004 3.0 + 121.2230904 31.10689 3.0 + 121.2230491 31.106889 3.0 + 121.2229714 31.1068817 3.0 + 121.2229014 31.1068692 3.0 + 121.2228088 31.1068496 3.0 + 121.2227379 31.1068478 2.0 + 121.2227155 31.1068454 2.0 + 121.2226124 31.1068338 2.0 + 121.2225018 31.1068187 2.0 + 121.2223853 31.1068081 2.0 + 121.2222664 31.1067921 2.0 + 121.2222594 31.1067927 2.0 + 121.2221551 31.1067843 2.0 + 121.2220396 31.1067725 2.0 + 121.2219404 31.1067579 2.0 + 121.2218164 31.1067269 3.0 + 121.2217932 31.1067136 4.0 + 121.2217241 31.1066994 4.0 + 121.2216212 31.1066865 3.0 + 121.2215551 31.1066709 3.0 + 121.2215358 31.106665 3.0 + 121.2214599 31.1066455 3.0 + 121.2213739 31.1066305 3.0 + 121.2212758 31.1066037 4.0 + 121.2212376 31.1065958 4.0 + 121.2211473 31.1065861 4.0 + 121.2210407 31.1065499 4.0 + 121.2209383 31.1065273 4.0 + 121.220818 31.1064993 4.0 + 121.2207228 31.1064866 4.0 + 121.2205978 31.1064713 4.0 + 121.2204865 31.1064362 4.0 + 121.220399 31.1064208 3.0 + 121.2203058 31.1064059 3.0 + 121.2202849 31.1063968 3.0 + 121.220234 31.1063755 3.0 + 121.2202035 31.106366 3.0 + 121.2201075 31.1063397 3.0 + 121.2200787 31.1063301 3.0 + 121.2200692 31.106327 3.0 + 121.2200699 31.106327 3.0 + 121.2200701 31.1063279 3.0 + 121.2200678 31.1063269 3.0 + 121.2200321 31.1063061 3.0 + 121.2200033 31.1062958 3.0 + 121.2199383 31.1062714 3.0 + 121.2198544 31.1062429 3.0 + 121.2197652 31.1062063 3.0 + 121.2196781 31.1061724 2.0 + 121.2195748 31.1061313 2.0 + 121.219508 31.1061055 2.0 + 121.2194598 31.1060872 2.0 + 121.2193904 31.1060683 2.0 + 121.2193606 31.1060578 2.0 + 121.2192705 31.1060307 2.0 + 121.2191786 31.1059799 2.0 + 121.2191069 31.1059523 2.0 + 121.2190393 31.105921 2.0 + 121.2189452 31.1058745 2.0 + 121.2188691 31.1058412 2.0 + 121.2188403 31.1058312 2.0 + 121.218761 31.1057953 2.0 + 121.2187507 31.1057924 2.0 + 121.2186596 31.1057452 2.0 + 121.2186032 31.1057167 2.0 + 121.218559 31.1057031 2.0 + 121.2184658 31.1056561 2.0 + 121.2183623 31.1056275 2.0 + 121.2182686 31.1055815 3.0 + 121.21816 31.1055181 3.0 + 121.2181021 31.1054959 3.0 + 121.21807 31.1054889 3.0 + 121.2179865 31.1054594 3.0 + 121.2178621 31.1054072 2.0 + 121.2177905 31.1053759 2.0 + 121.2177055 31.1053314 2.0 + 121.2176111 31.1052856 3.0 + 121.2175381 31.1052484 2.0 + 121.217508 31.1052274 2.0 + 121.2174806 31.1052127 2.0 + 121.2174313 31.1051942 2.0 + 121.2174088 31.1051842 2.0 + 121.2173003 31.1051443 2.0 + 121.2172027 31.105099 2.0 + 121.2171035 31.1050496 2.0 + 121.2170116 31.1050035 2.0 + 121.2169083 31.1049667 2.0 + 121.2168449 31.1049226 3.0 + 121.216744 31.104875 2.0 + 121.216643 31.1048466 2.0 + 121.2166043 31.1048367 2.0 + 121.2165808 31.1048274 2.0 + 121.2165451 31.1048115 2.0 + 121.216439 31.1047646 2.0 + 121.216296 31.1047021 2.0 + 121.2162139 31.1046827 2.0 + 121.2161301 31.1046405 2.0 + 121.2160265 31.1045944 2.0 + 121.2159434 31.1045577 2.0 + 121.2158471 31.1045164 2.0 + 121.2157628 31.1044701 2.0 + 121.2156763 31.1044172 2.0 + 121.2155749 31.1043482 2.0 + 121.2154578 31.1043018 2.0 + 121.2153599 31.1042794 2.0 + 121.2152594 31.1042551 2.0 + 121.2151746 31.104218 2.0 + 121.2150862 31.104182 2.0 + 121.2150184 31.1041388 2.0 + 121.21495 31.1040902 2.0 + 121.214928 31.1040825 2.0 + 121.214866 31.1040788 2.0 + 121.21479 31.1040499 2.0 + 121.2147259 31.1040161 2.0 + 121.2146934 31.1040092 2.0 + 121.2146305 31.1039815 3.0 + 121.214557 31.1039538 3.0 + 121.2144779 31.1039193 3.0 + 121.2144085 31.1038798 3.0 + 121.2143447 31.1038476 3.0 + 121.2142651 31.1038214 3.0 + 121.2142062 31.1038024 3.0 + 121.2141821 31.1037756 3.0 + 121.2141917 31.1037618 3.0 + 121.2141865 31.1037621 3.0 + 121.2141798 31.103769 3.0 + 121.2141794 31.1037735 3.0 + 121.2141309 31.1037661 4.0 + 121.2140832 31.1037532 4.0 + 121.2140373 31.1037326 4.0 + 121.2139764 31.103697 4.0 + 121.2139417 31.1036814 4.0 + 121.2138604 31.1036452 4.0 + 121.2137544 31.1035994 5.0 + 121.2136672 31.1035635 5.0 + 121.2135783 31.1035337 5.0 + 121.2134966 31.1035002 6.0 + 121.2134602 31.1034831 6.0 + 121.2134084 31.1034543 6.0 + 121.2133259 31.1034194 6.0 + 121.2132388 31.1033805 7.0 + 121.2132235 31.1033728 7.0 + 121.2131417 31.1033317 7.0 + 121.2130546 31.1032977 8.0 + 121.2129608 31.1032764 8.0 + 121.2128754 31.1032593 8.0 + 121.2128191 31.1032505 8.0 + 121.212654 31.1032117 8.0 + 121.2125808 31.1031681 8.0 + 121.2125673 31.1031637 8.0 + 121.2125115 31.103156 7.0 + 121.2124534 31.1031491 7.0 + 121.2123558 31.10313 7.0 + 121.2123445 31.1031299 7.0 + 121.2122627 31.1031098 6.0 + 121.2121696 31.1030884 6.0 + 121.2121602 31.103088 6.0 + 121.2120862 31.1030884 5.0 + 121.211997 31.1030695 5.0 + 121.2119818 31.1030664 5.0 + 121.2119069 31.103061 4.0 + 121.211794 31.1030401 4.0 + 121.211762 31.1030353 4.0 + 121.2117286 31.1030406 4.0 + 121.2116189 31.103019 3.0 + 121.2115173 31.1030019 3.0 + 121.2114353 31.1029971 3.0 + 121.2113426 31.1029885 3.0 + 121.2112836 31.1029815 3.0 + 121.2112225 31.1029709 3.0 + 121.2111222 31.1029656 2.0 + 121.2110163 31.1029555 2.0 + 121.2109035 31.102946 2.0 + 121.2107932 31.1029501 2.0 + 121.2107832 31.102952 2.0 + 121.210681 31.1029591 2.0 + 121.2105755 31.1029587 1.0 + 121.2104506 31.1029673 1.0 + 121.2103552 31.1029708 1.0 + 121.2102611 31.102976 1.0 + 121.2101439 31.1029794 1.0 + 121.2100646 31.102985 1.0 + 121.2100183 31.1030011 1.0 + 121.2099881 31.1030023 1.0 + 121.2098952 31.1030154 1.0 + 121.2098603 31.1030167 1.0 + 121.2097603 31.1030298 1.0 + 121.2096928 31.1030329 1.0 + 121.2096519 31.103036 1.0 + 121.2096209 31.1030393 1.0 + 121.2095592 31.1030374 1.0 + 121.2095324 31.1030409 1.0 + 121.2094729 31.1030665 1.0 + 121.209459 31.103072 1.0 + 121.2093646 31.1031112 1.0 + 121.2092634 31.1031112 1.0 + 121.2091593 31.1031289 1.0 + 121.2091288 31.1031361 1.0 + 121.2090846 31.1031459 1.0 + 121.2089806 31.1031665 1.0 + 121.2088908 31.1031919 1.0 + 121.208767 31.103219 1.0 + 121.2086738 31.103236 1.0 + 121.2085775 31.1032615 2.0 + 121.2085081 31.1032798 1.0 + 121.2084187 31.1032904 1.0 + 121.2083375 31.1033039 1.0 + 121.2082418 31.1033163 1.0 + 121.2081294 31.1033431 1.0 + 121.2080187 31.1033556 1.0 + 121.2080071 31.1033582 1.0 + 121.207918 31.1033703 1.0 + 121.2078217 31.1033779 2.0 + 121.2077531 31.1033724 2.0 + 121.2076512 31.1033756 2.0 + 121.2075665 31.1033809 1.0 + 121.2074912 31.1033743 1.0 + 121.2074401 31.1033702 1.0 + 121.2073339 31.103371 1.0 + 121.2072349 31.1033572 1.0 + 121.2071061 31.1033428 1.0 + 121.2070172 31.1033344 1.0 + 121.206943 31.1033149 1.0 + 121.2068186 31.1032911 2.0 + 121.206709 31.103271 2.0 + 121.2065851 31.1032342 2.0 + 121.2065153 31.1032166 2.0 + 121.2064027 31.1031752 2.0 + 121.2063086 31.1031485 2.0 + 121.2062003 31.1031063 2.0 + 121.206106 31.1030655 2.0 + 121.2060163 31.1030173 2.0 + 121.2059371 31.1029775 2.0 + 121.2058307 31.1029231 2.0 + 121.2058222 31.1029156 2.0 + 121.2057451 31.102884 2.0 + 121.2056569 31.1028269 2.0 + 121.2055569 31.1027517 2.0 + 121.2054481 31.1026708 2.0 + 121.2053741 31.1026004 2.0 + 121.2053519 31.1025822 2.0 + 121.2052805 31.1025321 2.0 + 121.2051946 31.1024476 2.0 + 121.2051344 31.1023734 2.0 + 121.2050444 31.1022781 3.0 + 121.2049628 31.102196 2.0 + 121.2049145 31.1021086 2.0 + 121.2048538 31.102014 3.0 + 121.2048472 31.1020019 3.0 + 121.2047778 31.1019289 3.0 + 121.2047417 31.1018255 3.0 + 121.2047131 31.1017857 3.0 + 121.2046892 31.101745 3.0 + 121.2046471 31.1016486 3.0 + 121.2046103 31.1015795 3.0 + 121.2046063 31.1015673 3.0 + 121.2045642 31.1014733 3.0 + 121.204551 31.1014405 3.0 + 121.2045273 31.1013615 3.0 + 121.204513 31.10131 3.0 + 121.2044939 31.101267 3.0 + 121.204486 31.1011736 3.0 + 121.2044764 31.1011073 3.0 + 121.204466 31.1010134 3.0 + 121.2044629 31.1009471 3.0 + 121.2044524 31.10084 3.0 + 121.2044498 31.1007542 3.0 + 121.2044546 31.100639 3.0 + 121.2044443 31.1005064 4.0 + 121.2044567 31.100441 4.0 + 121.2044639 31.1004222 4.0 + 121.2044745 31.1003219 4.0 + 121.2044708 31.1002269 4.0 + 121.204468 31.1001307 4.0 + 121.2044808 31.1000565 4.0 + 121.2044868 31.1000449 4.0 + 121.2044987 31.0999575 4.0 + 121.204489 31.0998778 4.0 + 121.2045135 31.0997974 3.0 + 121.2045218 31.0997239 4.0 + 121.2045246 31.0996488 4.0 + 121.2045273 31.0995519 4.0 + 121.2045396 31.0994728 4.0 + 121.2045408 31.0994636 4.0 + 121.2045479 31.0993706 4.0 + 121.2045464 31.0992952 4.0 + 121.2045344 31.0991887 4.0 + 121.2045442 31.0991177 3.0 + 121.2045264 31.0990229 3.0 + 121.2045246 31.0989828 3.0 + 121.2045269 31.0989611 3.0 + 121.2045418 31.0989059 4.0 + 121.2045387 31.0989018 4.0 + 121.2045309 31.09885 4.0 + 121.2045362 31.0987873 4.0 + 121.2045452 31.0987147 4.0 + 121.2045514 31.098594 4.0 + 121.2045478 31.098498 4.0 + 121.204544 31.0984696 4.0 + 121.2045442 31.098423 4.0 + 121.2045431 31.0984143 4.0 + 121.2045445 31.0983476 4.0 + 121.2045469 31.0983253 4.0 + 121.2045436 31.0982368 4.0 + 121.2045459 31.0981686 4.0 + 121.204529 31.0980967 4.0 + 121.2045308 31.0980466 4.0 + 121.2045312 31.0980395 4.0 + 121.2045279 31.0979668 4.0 + 121.2045204 31.0978554 4.0 + 121.2045197 31.0978093 4.0 + 121.2045096 31.0977898 4.0 + 121.2045029 31.0977154 4.0 + 121.2044985 31.0976219 4.0 + 121.2044872 31.0975399 4.0 + 121.204474 31.0974516 4.0 + 121.2044528 31.0973558 4.0 + 121.2044381 31.097262 4.0 + 121.2044251 31.097177 4.0 + 121.2044034 31.0970951 4.0 + 121.2043765 31.0970192 4.0 + 121.204347 31.0969123 4.0 + 121.2043314 31.0968499 4.0 + 121.2043215 31.0968218 4.0 + 121.2042846 31.0967276 4.0 + 121.2042682 31.0966443 4.0 + 121.2042435 31.0965572 4.0 + 121.2042405 31.0965485 4.0 + 121.2042067 31.0964495 4.0 + 121.2041894 31.0963874 5.0 + 121.2041676 31.0963373 5.0 + 121.204132 31.0962444 4.0 + 121.2041151 31.0962135 4.0 + 121.20409 31.0961608 4.0 + 121.2040481 31.0960605 4.0 + 121.2039995 31.0959637 4.0 + 121.2039511 31.0958781 4.0 + 121.2039112 31.0957777 4.0 + 121.203889 31.0957308 4.0 + 121.203883 31.0957203 4.0 + 121.203858 31.0956409 4.0 + 121.2037928 31.0955317 4.0 + 121.2037104 31.0954178 4.0 + 121.203654 31.095331 4.0 + 121.2036492 31.0953224 4.0 + 121.2035638 31.0952408 4.0 + 121.2034905 31.0951699 4.0 + 121.2034792 31.09516 4.0 + 121.2034063 31.0950722 4.0 + 121.203371 31.0950121 4.0 + 121.2033606 31.094987 4.0 + 121.2033178 31.0949455 4.0 + 121.2032943 31.0949441 4.0 + 121.2032839 31.0949496 4.0 + 121.2032721 31.0949551 4.0 + 121.2032393 31.0949765 4.0 + 121.203209 31.0949977 4.0 + 121.20314 31.0950244 4.0 + 121.2030494 31.0950292 4.0 + 121.2030315 31.0950132 4.0 + 121.2029284 31.0949873 4.0 + 121.2028113 31.0949765 4.0 + 121.202758 31.0949404 4.0 + 121.202706 31.0948708 4.0 + 121.2026722 31.0947981 4.0 + 121.2026492 31.0947064 4.0 + 121.2026453 31.0946036 4.0 + 121.2026315 31.0945656 4.0 + 121.2026002 31.0945368 4.0 + 121.2025298 31.0944719 4.0 + 121.2024362 31.0943984 4.0 + 121.2023422 31.0943268 5.0 + 121.2022711 31.0942644 5.0 + 121.202261 31.0942574 5.0 + 121.2021829 31.0942019 5.0 + 121.2021179 31.0941422 5.0 + 121.2020893 31.0941174 5.0 + 121.2020211 31.0940698 5.0 + 121.2019294 31.0940143 6.0 + 121.2019007 31.0939986 6.0 + 121.201877 31.0939797 6.0 + 121.2018531 31.0939593 6.0 + 121.2018003 31.0939176 6.0 + 121.2017843 31.0939028 7.0 + 121.2017662 31.0938869 7.0 + 121.201714 31.093842 7.0 + 121.2016236 31.0937801 7.0 + 121.2015795 31.0937425 8.0 + 121.2015163 31.0937049 8.0 + 121.2014667 31.0936735 8.0 + 121.2013808 31.0936093 8.0 + 121.2013173 31.0935585 9.0 + 121.2012346 31.0935016 8.0 + 121.2011564 31.0934476 8.0 + 121.201057 31.0933873 8.0 + 121.200981 31.0933355 8.0 + 121.2008788 31.0932586 7.0 + 121.200803 31.0932059 7.0 + 121.2007958 31.0931978 7.0 + 121.2006938 31.0931216 6.0 + 121.2006004 31.093063 6.0 + 121.2005493 31.0930217 6.0 + 121.2005121 31.0930003 6.0 + 121.2004151 31.0929439 6.0 + 121.2003309 31.0928875 5.0 + 121.2002378 31.0928017 5.0 + 121.2001711 31.0927682 5.0 + 121.2001597 31.0927625 5.0 + 121.2001308 31.0927504 5.0 + 121.2000703 31.0927009 5.0 + 121.2000141 31.092662 5.0 + 121.1999949 31.0926493 5.0 + 121.1999513 31.0926204 5.0 + 121.1999024 31.0925869 5.0 + 121.1998786 31.0925714 5.0 + 121.1998273 31.0925297 5.0 + 121.1997144 31.0924511 4.0 + 121.1996376 31.0923925 4.0 + 121.1995455 31.0923284 4.0 + 121.1994557 31.092264 4.0 + 121.199397 31.0922193 4.0 + 121.1993245 31.0921698 4.0 + 121.1992516 31.092109 4.0 + 121.1991607 31.0920358 4.0 + 121.1991157 31.0919832 4.0 + 121.1990555 31.0919186 4.0 + 121.1989798 31.0918501 4.0 + 121.1989719 31.0918421 4.0 + 121.1988989 31.091767 4.0 + 121.198831 31.0916866 4.0 + 121.1987757 31.091616 4.0 + 121.1987287 31.0915565 4.0 + 121.1987246 31.091551 4.0 + 121.19867 31.0914729 4.0 + 121.1986104 31.0913853 4.0 + 121.198556 31.091316 4.0 + 121.1985033 31.0912539 4.0 + 121.1984384 31.0911783 4.0 + 121.1983747 31.0911233 4.0 + 121.1983079 31.0910333 4.0 + 121.1982823 31.0909647 4.0 + 121.1982428 31.0908734 4.0 + 121.1982335 31.0907934 4.0 + 121.1981903 31.0906893 4.0 + 121.1981661 31.0906635 4.0 + 121.1981302 31.0906546 5.0 + 121.1981232 31.0906548 5.0 + 121.1981096 31.0906765 5.0 + 121.1980854 31.0906985 5.0 + 121.1980795 31.090702 5.0 + 121.1980966 31.0906923 5.0 + 121.1981308 31.090673 6.0 + 121.1981118 31.0906762 5.0 + 121.1980937 31.090684 5.0 + 121.1980439 31.0907141 5.0 + 121.1979649 31.0907385 5.0 + 121.1978536 31.0907842 6.0 + 121.1977987 31.0908049 6.0 + 121.1977262 31.0908561 6.0 + 121.1977067 31.0908657 6.0 + 121.1976194 31.09091 6.0 + 121.1975081 31.0909554 6.0 + 121.1974275 31.0909922 6.0 + 121.1973475 31.0910493 7.0 + 121.1973387 31.0910555 7.0 + 121.1972407 31.0910943 7.0 + 121.1971481 31.0911243 7.0 + 121.1971149 31.0911437 7.0 + 121.1970637 31.0911633 7.0 + 121.1969749 31.091208 7.0 + 121.1969031 31.0912612 7.0 + 121.1968338 31.0913396 7.0 + 121.1967817 31.0913635 7.0 + 121.1967482 31.0913827 7.0 + 121.1966696 31.0914237 7.0 + 121.1966578 31.0914288 7.0 + 121.1965636 31.0914847 6.0 + 121.1965547 31.0914891 6.0 + 121.1964534 31.0915399 6.0 + 121.196372 31.0915728 6.0 + 121.1963264 31.0916003 6.0 + 121.1963084 31.0916123 5.0 + 121.1962656 31.0916348 6.0 + 121.1962312 31.0916555 6.0 + 121.1961755 31.0916801 6.0 + 121.1961257 31.0917237 5.0 + 121.1961273 31.0917356 5.0 + 121.1961359 31.0917745 5.0 + 121.1961285 31.0918051 5.0 + 121.1961608 31.0918595 5.0 + 121.1961674 31.0918864 5.0 + 121.1961768 31.091903 5.0 + 121.1962121 31.0919786 5.0 + 121.1962502 31.0920346 5.0 + 121.1962833 31.0920905 5.0 + 121.1963105 31.0921674 5.0 + 121.1962889 31.0922099 5.0 + 121.1962757 31.0922142 5.0 + 121.1961789 31.092243 5.0 + 121.1960782 31.0922949 5.0 + 121.1959523 31.0923202 5.0 + 121.1958695 31.0923106 5.0 + 121.1958695 31.0923106 5.0 + 121.1958695 31.0923106 6.0 + 121.1958695 31.0923106 6.0 + 121.1958589 31.0923007 6.0 + 121.1958589 31.0923007 7.0 + 121.1958589 31.0923007 7.0 + 121.1958589 31.0923007 6.0 + 121.1958589 31.0923007 6.0 + 121.1958589 31.0923007 6.0 + 121.1958588 31.092301 7.0 + 121.1958613 31.0923006 7.0 + 121.1958647 31.092299 7.0 + 121.1958653 31.0922987 7.0 + 121.1958655 31.0922993 7.0 + 121.1958716 31.0922853 7.0 + 121.1958714 31.0922853 7.0 + 121.1959012 31.0922697 7.0 + 121.1959532 31.0922397 6.0 + 121.1959632 31.0922388 7.0 + 121.1959857 31.0922489 7.0 + 121.1959511 31.0922511 7.0 + 121.1959577 31.0922648 7.0 + 121.1959498 31.0922532 7.0 + 121.1959499 31.092243 7.0 + 121.195949 31.0922461 7.0 + 121.1959712 31.0922663 7.0 + 121.1959666 31.0922863 7.0 + 121.1959645 31.0922841 7.0 + 121.1959597 31.0922752 7.0 + 121.1959406 31.092248 7.0 + 121.1959408 31.0922528 7.0 + 121.1959598 31.0922604 7.0 + 121.1959568 31.0922622 7.0 + 121.1959568 31.0922622 7.0 + 121.1959439 31.0922702 7.0 + 121.1959446 31.0922709 7.0 + 121.1959438 31.0922716 7.0 + 121.1959433 31.0922705 7.0 + 121.195942 31.0922614 7.0 + 121.1959442 31.0922699 7.0 + 121.1959724 31.0922666 7.0 + 121.1959724 31.0922666 7.0 + 121.1959724 31.0922666 7.0 + 121.195967 31.0922713 7.0 + 121.1959634 31.0922746 7.0 + 121.1959465 31.0922805 6.0 + 121.1959465 31.0922805 6.0 + 121.1959569 31.0922885 7.0 + 121.1959604 31.0922874 7.0 + 121.1959784 31.0922931 7.0 + 121.1959329 31.0923007 7.0 + 121.1959083 31.0922929 7.0 + 121.1959036 31.0922904 7.0 + 121.1959033 31.0922899 7.0 + 121.1959233 31.0922744 7.0 + 121.1959474 31.0922692 7.0 + 121.1959719 31.0922692 7.0 + 121.1959672 31.0922256 7.0 + 121.196008 31.0921844 7.0 + 121.1960635 31.0921576 7.0 + 121.1960981 31.0921138 7.0 + 121.1961019 31.0921182 7.0 + 121.196106 31.092114 7.0 + 121.196106 31.092114 7.0 + 121.1961193 31.0921022 7.0 + 121.1961174 31.0921033 7.0 + 121.1961174 31.0921033 7.0 + 121.1961378 31.0920997 7.0 + 121.1961291 31.0920926 7.0 + 121.1961288 31.0920949 7.0 + 121.1961378 31.0920997 7.0 + 121.1961378 31.0920997 7.0 + 121.1961628 31.0920955 7.0 + 121.1961468 31.0920988 7.0 + 121.1961499 31.0921011 7.0 + 121.1961468 31.0920988 7.0 + 121.1961302 31.0920978 7.0 + 121.196125 31.0921007 7.0 + 121.1961176 31.0921037 7.0 + 121.1961219 31.0921059 7.0 + 121.1961274 31.0920995 7.0 + 121.1961274 31.0920995 7.0 + 121.1961143 31.0921116 7.0 + 121.1961143 31.0921116 7.0 + 121.1961143 31.0921116 7.0 + 121.196121 31.092126 7.0 + 121.1961251 31.092128 7.0 + 121.1961256 31.0921278 7.0 + 121.1961157 31.0921224 7.0 + 121.1961214 31.0921222 7.0 + 121.196125 31.0921285 7.0 + 121.1961318 31.0921107 7.0 + 121.1961231 31.0921216 7.0 + 121.1961219 31.0921219 7.0 + 121.1961164 31.0921292 7.0 + 121.1961408 31.0921179 7.0 + 121.1961408 31.0921179 7.0 + 121.1961408 31.0921179 7.0 + 121.1961359 31.0921191 7.0 + 121.1961197 31.0921182 7.0 + 121.1961197 31.0921182 7.0 + 121.1961197 31.0921182 7.0 + 121.1961197 31.0921182 7.0 + 121.1961197 31.0921182 8.0 + 121.1961197 31.0921182 8.0 + 121.1961197 31.0921182 8.0 + 121.1961197 31.0921182 8.0 + 121.1961089 31.092109 8.0 + 121.1961089 31.092109 8.0 + 121.1961089 31.092109 8.0 + 121.1961089 31.092109 8.0 + 121.1961048 31.0920926 8.0 + 121.1961045 31.0920925 8.0 + 121.1961073 31.0920958 8.0 + 121.1961045 31.0920925 8.0 + 121.1961101 31.0921109 8.0 + 121.1961237 31.092118 7.0 + 121.1961319 31.0921146 7.0 + 121.1961326 31.0921146 7.0 + 121.1961456 31.0921168 7.0 + 121.1961471 31.0921163 7.0 + 121.1961471 31.0921163 7.0 + 121.1961471 31.0921163 7.0 + 121.1961471 31.0921163 6.0 + 121.1961471 31.0921163 6.0 + 121.1961471 31.0921163 6.0 + 121.1961551 31.0921182 6.0 + 121.1961471 31.0921163 6.0 + 121.1961471 31.0921163 6.0 + 121.1961471 31.0921163 6.0 + 121.1961471 31.0921163 6.0 + 121.1961471 31.0921163 6.0 + 121.1961471 31.0921163 6.0 + 121.196153 31.0921196 6.0 + 121.1961471 31.0921163 6.0 + 121.1961501 31.0921163 6.0 + 121.1961471 31.0921163 6.0 + 121.1961471 31.0921163 5.0 + 121.1961416 31.0921178 5.0 + 121.196142 31.0921204 5.0 + 121.1961426 31.0921195 5.0 + 121.1961438 31.0921194 5.0 + 121.1961566 31.0921267 5.0 + 121.1961586 31.0921335 5.0 + 121.196174 31.0921522 5.0 + 121.196192 31.0921537 5.0 + 121.1961928 31.0921512 5.0 + 121.1961894 31.092145 5.0 + 121.1961774 31.0921371 5.0 + 121.1961727 31.0921507 5.0 + 121.1961808 31.0921439 5.0 + 121.1961874 31.0921356 5.0 + 121.1961989 31.0921264 5.0 + 121.1962019 31.0921301 5.0 + 121.1961753 31.092156 5.0 + 121.1961893 31.0921739 5.0 + 121.196201 31.0921646 5.0 + 121.1962074 31.0921836 5.0 + 121.1962136 31.0921914 5.0 + 121.1962128 31.0921957 5.0 + 121.1962136 31.0922038 5.0 + 121.1962115 31.0922101 5.0 + 121.1961842 31.0922139 5.0 + 121.1961685 31.092226 5.0 + 121.196165 31.0922261 5.0 + 121.1961797 31.0922588 5.0 + 121.196275 31.0922653 6.0 + 121.1963421 31.0922765 6.0 + 121.1964093 31.0923186 6.0 + 121.1964261 31.0923301 6.0 + 121.1964298 31.0923459 6.0 + 121.1964329 31.0923572 6.0 + 121.1964447 31.0923742 6.0 + 121.1964609 31.0924175 6.0 + 121.1964814 31.0924576 6.0 + 121.1965125 31.0925165 6.0 + 121.1965412 31.0926149 6.0 + 121.1965834 31.0926948 7.0 + 121.1966203 31.092752 6.0 + 121.1966642 31.0928366 6.0 + 121.1967244 31.0929152 7.0 + 121.1967304 31.0929385 7.0 + 121.1967573 31.0930065 7.0 + 121.1967749 31.0930369 7.0 + 121.1968311 31.0931156 7.0 + 121.1968571 31.093176 7.0 + 121.1968854 31.0932425 7.0 + 121.1969066 31.0932514 7.0 + 121.1969664 31.0933193 7.0 + 121.1969839 31.0933223 7.0 + 121.19698 31.0933204 7.0 + 121.1969606 31.0933111 7.0 + 121.1969456 31.0933016 7.0 + 121.1969464 31.0933006 7.0 + 121.1969464 31.0933006 7.0 + 121.1969612 31.0932924 7.0 + 121.1969579 31.0932823 7.0 + 121.1970001 31.0932988 7.0 + 121.1970005 31.0933099 7.0 + 121.1969865 31.0933382 7.0 + 121.1969839 31.0933627 7.0 + 121.1969955 31.0934088 7.0 + 121.1969986 31.0934234 7.0 + 121.1969994 31.0934546 7.0 + 121.1970109 31.0935332 8.0 + 121.1970198 31.0935556 8.0 + 121.1970405 31.0935852 9.0 + 121.197046 31.093595 9.0 + 121.1970573 31.0936178 10.0 + 121.1970628 31.0936309 10.0 + 121.1970746 31.0936736 10.0 + 121.1970882 31.0936855 10.0 + 121.1970989 31.0937015 11.0 + 121.1971194 31.0937226 12.0 + 121.1971388 31.0937499 13.0 + 121.197142 31.093756 14.0 + 121.1971441 31.0937601 14.0 + 121.1971398 31.0937636 14.0 + 121.1971408 31.0937701 15.0 + 121.1971554 31.0937854 15.0 + 121.1971735 31.0937958 16.0 + 121.1971937 31.0938052 17.0 + 121.1971972 31.0938072 17.0 + 121.1972102 31.0938178 18.0 + 121.1972253 31.0938289 19.0 + 121.1972381 31.093842 19.0 + 121.1972423 31.0938491 20.0 + 121.1972564 31.0938595 20.0 + 121.1972584 31.0938627 20.0 + 121.1972727 31.0938886 21.0 + 121.1972875 31.0938981 22.0 + 121.1972996 31.0939094 23.0 + 121.1973208 31.0939238 24.0 + 121.1973269 31.0939283 24.0 + 121.1973501 31.0939476 25.0 + 121.1973622 31.0939578 25.0 + 121.1973688 31.0939658 26.0 + 121.1973954 31.0939952 27.0 + 121.1974012 31.0940004 27.0 + 121.1974261 31.0940142 28.0 + 121.1974359 31.0940315 29.0 + 121.1974386 31.0940343 29.0 + 121.1974621 31.0940582 30.0 + 121.1974726 31.0940666 31.0 + 121.1974883 31.094073 31.0 + 121.1975001 31.0940817 32.0 + 121.1975113 31.0941027 33.0 + 121.1975367 31.0941216 34.0 + 121.1975641 31.0941283 35.0 + 121.1975681 31.0941314 35.0 + 121.1975789 31.0941442 36.0 + 121.1976001 31.0941647 37.0 + 121.197609 31.0941776 37.0 + 121.1976269 31.0942011 37.0 + 121.1976486 31.0942071 38.0 + 121.1976512 31.0942071 38.0 + 121.1976542 31.0942119 38.0 + 121.1976846 31.0942349 39.0 + 121.1976912 31.0942363 39.0 + 121.1976888 31.0942381 39.0 + 121.1976941 31.0942579 39.0 + 121.1977131 31.0942726 40.0 + 121.1977151 31.0942726 40.0 + 121.1977319 31.0943022 41.0 + 121.1977416 31.0943205 41.0 + 121.1977453 31.0943268 41.0 + 121.1977538 31.09437 42.0 + 121.1977511 31.094385 43.0 + 121.1977481 31.0944172 43.0 + 121.1977474 31.0944223 43.0 + 121.1977382 31.0944443 44.0 + 121.1977296 31.0944818 46.0 + 121.1977262 31.0944864 46.0 + 121.1977272 31.0945189 47.0 + 121.1977249 31.094541 47.0 + 121.1977213 31.0945474 48.0 + 121.1977253 31.0945759 48.0 + 121.1977255 31.0945869 49.0 + 121.1977193 31.0946238 49.0 + 121.1977232 31.0946311 50.0 + 121.1977236 31.0946326 50.0 + 121.1977099 31.0946671 51.0 + 121.1977067 31.0946766 51.0 + 121.1977024 31.0947093 52.0 + 121.1977093 31.094731 53.0 + 121.1977057 31.0947914 53.0 + 121.1977037 31.0948022 53.0 + 121.1976995 31.0948507 54.0 + 121.1976987 31.0948551 54.0 + 121.1977011 31.0949069 55.0 + 121.1977038 31.0949277 55.0 + 121.1976936 31.0949922 56.0 + 121.1976836 31.0950242 56.0 + 121.1976791 31.0950709 57.0 + 121.1976754 31.0950898 57.0 + 121.1976733 31.0951364 58.0 + 121.1976714 31.0951631 59.0 + 121.1976671 31.0952018 59.0 + 121.1976613 31.0952284 60.0 + 121.1976655 31.0952765 60.0 + 121.1976629 31.095326 61.0 + 121.1976483 31.0953557 61.0 + 121.1976323 31.095398 61.0 + 121.1976212 31.0954202 62.0 + 121.1976003 31.0954598 62.0 + 121.1975888 31.095487 61.0 + 121.1975887 31.0954978 61.0 + 121.1975639 31.0955146 61.0 + 121.1975201 31.0954688 61.0 + 121.197529 31.0954703 61.0 + 121.1975888 31.095493 61.0 + 121.1975906 31.0954951 61.0 + 121.1975917 31.0954962 61.0 + 121.1975922 31.0954953 61.0 + 121.197593 31.0955026 60.0 + 121.1976011 31.0955156 60.0 + 121.1976166 31.095514 60.0 + 121.1976276 31.0955105 60.0 + 121.1976124 31.0955112 60.0 + 121.1975937 31.0955019 59.0 + 121.1975915 31.0954782 59.0 + 121.1976261 31.095408 60.0 + 121.1976348 31.0954052 60.0 + 121.1977505 31.0954272 60.0 + 121.1978396 31.095481 59.0 + 121.1978594 31.0954881 58.0 + 121.1978821 31.0954982 57.0 + 121.1979268 31.0955171 56.0 + 121.1979403 31.0955224 56.0 + 121.1979592 31.0955321 55.0 + 121.198005 31.0955531 54.0 + 121.1980132 31.0955596 53.0 + 121.1980402 31.0955742 53.0 + 121.1980608 31.0955891 52.0 + 121.1980603 31.0955838 52.0 + 121.1980625 31.0955493 52.0 + 121.198101 31.0954954 51.0 + 121.1981107 31.0954921 51.0 + 121.1981197 31.0954881 51.0 + 121.1981512 31.0954752 51.0 + 121.198195 31.0954723 50.0 + 121.1982473 31.095472 49.0 + 121.1982589 31.0954708 48.0 + 121.1982735 31.0954735 48.0 + 121.1982798 31.0954729 48.0 + 121.198295 31.0954738 47.0 + 121.1983186 31.0954786 46.0 + 121.1983631 31.0954892 45.0 + 121.1983697 31.0954926 45.0 + 121.1984306 31.0955258 44.0 + 121.1984492 31.0955383 44.0 + 121.1984425 31.0955449 44.0 + 121.1984183 31.0955658 44.0 + 121.1984284 31.0956284 44.0 + 121.1984126 31.0956198 44.0 + 121.1984089 31.0956124 44.0 + 121.1984381 31.0955541 44.0 + 121.1984568 31.0955537 44.0 + 121.1984995 31.0955659 43.0 + 121.1985125 31.0955632 43.0 + 121.19857 31.0955562 42.0 + 121.1986117 31.0955611 41.0 + 121.1986821 31.0955775 41.0 + 121.1987023 31.0955773 41.0 + 121.1987731 31.095584 40.0 + 121.1987923 31.0955848 39.0 + 121.1988168 31.0955858 38.0 + 121.1988774 31.095581 37.0 + 121.198887 31.0955757 37.0 + 121.1989155 31.0955713 37.0 + 121.1989231 31.0955756 36.0 + 121.1989359 31.0956018 36.0 + 121.1989829 31.0956525 36.0 + 121.1989777 31.0956544 35.0 + 121.1989725 31.095656 35.0 + 121.1989974 31.0956545 35.0 + 121.1989794 31.0956451 35.0 + 121.1989767 31.095643 35.0 + 121.1989856 31.0956539 35.0 + 121.1990072 31.0956617 35.0 + 121.1990718 31.0956573 34.0 + 121.1991416 31.0956397 33.0 + 121.1992439 31.0956426 32.0 + 121.1992744 31.0956513 32.0 + 121.199335 31.0956648 32.0 + 121.1993619 31.0956597 31.0 + 121.199426 31.0956538 30.0 + 121.1994512 31.0956526 30.0 + 121.199484 31.0956579 30.0 + 121.1994833 31.0956648 30.0 + 121.1994978 31.0956969 30.0 + 121.1995129 31.095701 30.0 + 121.1995118 31.0956939 30.0 + 121.1995316 31.0956994 30.0 + 121.199586 31.0957288 30.0 + 121.1996275 31.0957525 29.0 + 121.1996575 31.0957855 28.0 + 121.1996608 31.0958165 28.0 + 121.1996649 31.0958311 27.0 + 121.1996576 31.0958407 27.0 + 121.1996538 31.0958487 26.0 + 121.1996554 31.0958725 25.0 + 121.1996547 31.0958788 25.0 + 121.199662 31.095893 24.0 + 121.1996375 31.0959183 23.0 + 121.1996275 31.0959255 23.0 + 121.1995956 31.0959445 23.0 + 121.1995871 31.0959451 22.0 + 121.1995812 31.0959534 22.0 + 121.1995546 31.0959744 21.0 + 121.1995289 31.0960002 19.0 + 121.1995189 31.0960092 18.0 + 121.1995189 31.0960092 18.0 + 121.1994939 31.0960326 18.0 + 121.1994749 31.0960521 17.0 + 121.1994622 31.0960626 17.0 + 121.199461 31.0960608 17.0 + 121.1994592 31.0960597 17.0 + 121.1994589 31.0960522 17.0 + 121.1994759 31.096018 17.0 + 121.1994812 31.0960063 17.0 + 121.1994793 31.0960125 17.0 + 121.1994463 31.0960495 17.0 + 121.199425 31.0960604 17.0 + 121.1994101 31.0960771 17.0 + 121.1993786 31.0960798 17.0 + 121.1993629 31.0960722 17.0 + 121.1993085 31.0960616 17.0 + 121.1992411 31.0960602 16.0 + 121.1991865 31.0960853 16.0 + 121.1991507 31.0960989 16.0 + 121.1990896 31.0961134 15.0 + 121.1990155 31.096117 14.0 + 121.1989272 31.0961255 14.0 + 121.1988466 31.096116 15.0 + 121.1988402 31.096115 15.0 + 121.198762 31.0961092 16.0 + 121.1987493 31.0961106 16.0 + 121.1987373 31.0961113 16.0 + 121.1986913 31.0961103 17.0 + 121.198694 31.096111 17.0 + 121.1986443 31.0961038 18.0 + 121.1986387 31.0961035 18.0 + 121.1986141 31.096114 18.0 + 121.1985695 31.0961259 19.0 + 121.1985358 31.0961315 19.0 + 121.1984864 31.0961329 19.0 + 121.1984581 31.0961341 20.0 + 121.1984545 31.0961183 20.0 + 121.1984639 31.0961191 20.0 + 121.1984711 31.0961087 21.0 + 121.1984623 31.0961089 21.0 + 121.1983699 31.096128 21.0 + 121.1983418 31.0961347 21.0 + 121.1982921 31.0961398 22.0 + 121.1982116 31.0961497 22.0 + 121.1981369 31.0961662 23.0 + 121.1981085 31.0961848 22.0 + 121.1980027 31.0962139 21.0 + 121.1979904 31.0962204 21.0 + 121.1979218 31.0962454 21.0 + 121.197908 31.0962463 21.0 + 121.1978262 31.0962476 21.0 + 121.1977398 31.0962472 22.0 + 121.1976665 31.0962414 22.0 + 121.197654 31.0962413 22.0 + 121.1975785 31.0962812 22.0 + 121.1975327 31.0963282 21.0 + 121.1974907 31.0963608 21.0 + 121.1974589 31.0963766 21.0 + 121.197425 31.0963636 21.0 + 121.1974347 31.0963552 21.0 + 121.1974127 31.0963564 21.0 + 121.1973952 31.0963539 22.0 + 121.1973677 31.0963612 22.0 + 121.1972809 31.0963739 22.0 + 121.1972187 31.0963926 23.0 + 121.1971492 31.0964094 23.0 + 121.197086 31.0964441 23.0 + 121.1970005 31.0964811 23.0 + 121.1969129 31.0965236 23.0 + 121.1968222 31.0965692 22.0 + 121.1967583 31.0965721 22.0 + 121.1966643 31.0965837 22.0 + 121.1965912 31.0965934 22.0 + 121.1965639 31.0966051 22.0 + 121.1965341 31.0966193 21.0 + 121.1964584 31.0966506 21.0 + 121.1964522 31.0966557 21.0 + 121.1963712 31.0966733 21.0 + 121.196269 31.0966921 21.0 + 121.1961791 31.0967131 22.0 + 121.1961733 31.0967142 22.0 + 121.1960852 31.0967206 22.0 + 121.1960648 31.0967201 22.0 + 121.1960103 31.0967231 23.0 + 121.1959704 31.0967228 23.0 + 121.1958431 31.0967305 23.0 + 121.1958081 31.0967439 24.0 + 121.1957581 31.0967533 24.0 + 121.1957514 31.0967562 24.0 + 121.1956012 31.0967648 24.0 + 121.1955883 31.096763 25.0 + 121.1954928 31.0967646 26.0 + 121.1954682 31.0967752 26.0 + 121.1954033 31.0968122 26.0 + 121.1953942 31.0968123 26.0 + 121.1953895 31.0968112 27.0 + 121.1953715 31.0967848 28.0 + 121.195349 31.0967407 29.0 + 121.1953422 31.0967342 29.0 + 121.1953323 31.0967205 30.0 + 121.1953301 31.0967205 30.0 + 121.1953208 31.0967013 31.0 + 121.1952942 31.0966909 31.0 + 121.1952485 31.0966999 31.0 + 121.1952045 31.0967006 31.0 + 121.1951905 31.0966961 31.0 + 121.1951861 31.0966724 31.0 + 121.195184 31.0966881 31.0 + 121.1951866 31.096687 31.0 + 121.1951789 31.0966812 31.0 + 121.1951724 31.0966819 31.0 + 121.1951643 31.0966966 31.0 + 121.1951643 31.0967085 30.0 + 121.1951588 31.0967153 30.0 + 121.1951439 31.0967213 30.0 + 121.1951368 31.0967269 30.0 + 121.1950872 31.0967731 31.0 + 121.1950804 31.0967938 31.0 + 121.1950638 31.0968199 32.0 + 121.1950447 31.0968375 32.0 + 121.1950044 31.0968818 33.0 + 121.1949741 31.0969102 34.0 + 121.1949657 31.0969133 35.0 + 121.194956 31.0969187 35.0 + 121.1949278 31.0969313 35.0 + 121.1948921 31.0969483 35.0 + 121.1948643 31.0969653 36.0 + 121.1948601 31.0969905 37.0 + 121.1948598 31.0970054 37.0 + 121.1948456 31.0970526 37.0 + 121.1948356 31.0970719 38.0 + 121.1948305 31.097086 39.0 + 121.1948238 31.0970946 39.0 + 121.1948036 31.0971364 40.0 + 121.1948003 31.0971381 40.0 + 121.1947799 31.0971597 41.0 + 121.1947767 31.0971743 42.0 + 121.1947432 31.0972152 42.0 + 121.1947425 31.097225 42.0 + 121.1947404 31.0972494 43.0 + 121.19474 31.0972727 44.0 + 121.1947403 31.0972922 44.0 + 121.1947463 31.0973668 45.0 + 121.1947617 31.0974161 45.0 + 121.1947601 31.0974276 46.0 + 121.194761 31.0974604 46.0 + 121.1947441 31.0975168 47.0 + 121.1947314 31.0975265 48.0 + 121.1947182 31.0975327 49.0 + 121.1947122 31.0975379 49.0 + 121.1946954 31.0975864 49.0 + 121.1946423 31.0976714 50.0 + 121.1946314 31.0976805 50.0 + 121.1946236 31.097676 50.0 + 121.1945923 31.0976794 50.0 + 121.1945506 31.0976852 51.0 + 121.194529 31.0976858 51.0 + 121.1944973 31.0976835 52.0 + 121.1944851 31.0976754 52.0 + 121.1944528 31.0976617 53.0 + 121.194445 31.097648 54.0 + 121.1944292 31.0976432 54.0 + 121.1943931 31.0976565 54.0 + 121.1943776 31.097666 54.0 + 121.194346 31.0976969 55.0 + 121.194363 31.097696 55.0 + 121.1943748 31.0976913 55.0 + 121.1943764 31.0976941 55.0 + 121.1943708 31.0977004 54.0 + 121.1943691 31.0977052 54.0 + 121.1943699 31.097718 54.0 + 121.1943759 31.0977245 54.0 + 121.1943743 31.0977321 54.0 + 121.1943756 31.0977296 54.0 + 121.1943747 31.0977256 54.0 + 121.1943739 31.0977237 54.0 + 121.1943752 31.0977018 54.0 + 121.1943649 31.0977163 53.0 + 121.1943705 31.0977181 53.0 + 121.194369 31.0977182 53.0 + 121.1943767 31.0977311 53.0 + 121.1943734 31.0977296 53.0 + 121.1943713 31.097725 52.0 + 121.194355 31.0977051 52.0 + 121.1943545 31.0977003 52.0 + 121.1943545 31.0977003 52.0 + 121.1943645 31.0977169 51.0 + 121.1943645 31.0977169 51.0 + 121.1943645 31.0977169 51.0 + 121.1943645 31.0977169 51.0 + 121.1943645 31.0977169 51.0 + 121.1943681 31.0977346 50.0 + 121.1943675 31.0977328 50.0 + 121.1943675 31.0977328 50.0 + 121.1943679 31.0977347 50.0 + 121.1943665 31.0977252 50.0 + 121.1943674 31.0977207 50.0 + 121.1943547 31.0977126 50.0 + 121.1943198 31.0977097 50.0 + 121.1942878 31.0977344 49.0 + 121.1942599 31.0977526 49.0 + 121.1942286 31.0977643 49.0 + 121.1941903 31.0977807 49.0 + 121.1941638 31.0977865 49.0 + 121.1941363 31.0977974 49.0 + 121.1941303 31.0978168 49.0 + 121.1941217 31.0978339 49.0 + 121.1941055 31.0979083 49.0 + 121.1941119 31.0979292 49.0 + 121.1941277 31.0979479 49.0 + 121.1941392 31.0979707 50.0 + 121.1941344 31.0979967 50.0 + 121.1941286 31.0980227 50.0 + 121.1941214 31.098068 51.0 + 121.1941104 31.0980906 51.0 + 121.1940926 31.098121 52.0 + 121.1940887 31.0981466 52.0 + 121.1940835 31.0981712 53.0 + 121.1940827 31.0981978 53.0 + 121.194076 31.0982633 54.0 + 121.1940687 31.0982844 55.0 + 121.1940665 31.0982885 55.0 + 121.1940433 31.0983383 56.0 + 121.1940308 31.0983652 56.0 + 121.1940008 31.0984158 57.0 + 121.193997 31.0984245 57.0 + 121.1939757 31.0984814 57.0 + 121.1939551 31.0985275 56.0 + 121.1939498 31.0985376 56.0 + 121.1939561 31.098546 56.0 + 121.1939603 31.0985473 55.0 + 121.1939754 31.098571 55.0 + 121.1940001 31.0986052 55.0 + 121.1940136 31.0986096 54.0 + 121.1940793 31.098634 54.0 + 121.1940837 31.0986336 54.0 + 121.1940792 31.0986272 54.0 + 121.1940778 31.098625 54.0 + 121.194089 31.0986155 54.0 + 121.1941008 31.0985619 54.0 + 121.194097 31.0985563 53.0 + 121.1940987 31.0985591 53.0 + 121.1941007 31.0985703 53.0 + 121.194108 31.0985544 53.0 + 121.1941087 31.0985543 53.0 + 121.1941087 31.0985543 53.0 + 121.1941087 31.0985543 53.0 + 121.1941087 31.0985543 53.0 + 121.1941087 31.0985543 52.0 + 121.1941087 31.0985543 52.0 + 121.1941087 31.0985543 52.0 + 121.1941087 31.0985543 52.0 + 121.1941131 31.0985569 52.0 + 121.1941035 31.0985745 52.0 + 121.1940459 31.0985781 52.0 + 121.1939627 31.0985732 52.0 + 121.1939142 31.0985516 52.0 + 121.1939169 31.0985419 52.0 + 121.1939233 31.0985103 53.0 + 121.193936 31.0984831 53.0 + 121.1939393 31.0984759 53.0 + 121.1939489 31.0984597 53.0 + 121.1939511 31.0984517 53.0 + 121.1939795 31.098386 53.0 + 121.1940187 31.0983338 52.0 + 121.1940318 31.0983016 51.0 + 121.1940282 31.0982892 51.0 + 121.194025 31.098275 50.0 + 121.1940205 31.0982278 49.0 + 121.194019 31.0982222 49.0 + 121.1940061 31.0981828 48.0 + 121.1939975 31.09817 48.0 + 121.1939682 31.0981769 48.0 + 121.1939442 31.0982133 47.0 + 121.1939268 31.0982307 47.0 + 121.1939281 31.0982263 47.0 + 121.1939233 31.0982242 47.0 + 121.1939106 31.0982314 47.0 + 121.1939119 31.0982319 47.0 + 121.1939018 31.0982612 47.0 + 121.193966 31.0982212 47.0 + 121.1939581 31.0981973 46.0 + 121.1939588 31.0981973 46.0 + 121.194022 31.0981512 46.0 + 121.1940547 31.098117 46.0 + 121.1940804 31.0980921 45.0 + 121.1940841 31.0980777 45.0 + 121.1940884 31.0980227 44.0 + 121.1940877 31.0980204 44.0 + 121.1941012 31.0980026 43.0 + 121.1941047 31.0980032 43.0 + 121.1940975 31.0979741 43.0 + 121.1940693 31.0979295 42.0 + 121.1940686 31.0979132 42.0 + 121.1940747 31.0978833 41.0 + 121.1940727 31.0978766 41.0 + 121.1940882 31.0978382 41.0 + 121.1941262 31.0978024 41.0 + 121.1941744 31.0977943 41.0 + 121.1942071 31.0977909 41.0 + 121.1942523 31.0977788 41.0 + 121.1942942 31.0977388 41.0 + 121.194352 31.0976893 41.0 + 121.194379 31.0976513 41.0 + 121.1944192 31.0976298 41.0 + 121.1944326 31.09763 40.0 + 121.1944484 31.0976322 40.0 + 121.1944912 31.0976357 40.0 + 121.1944987 31.0976373 39.0 + 121.194519 31.0976529 39.0 + 121.1945301 31.0976521 38.0 + 121.1945595 31.0976434 37.0 + 121.1945663 31.0976366 37.0 + 121.1945859 31.0976241 36.0 + 121.1945957 31.0976203 36.0 + 121.1946264 31.0976102 35.0 + 121.1946415 31.0976068 35.0 + 121.1946598 31.0975679 34.0 + 121.194657 31.0975389 34.0 + 121.1946668 31.0975001 33.0 + 121.1946706 31.0974875 33.0 + 121.1947121 31.09746 33.0 + 121.1947175 31.0974547 32.0 + 121.194717 31.0974466 32.0 + 121.1947166 31.0974396 31.0 + 121.1947078 31.0974034 31.0 + 121.1947098 31.0973889 30.0 + 121.1947125 31.0973586 30.0 + 121.1947146 31.0973523 30.0 + 121.1947178 31.0973224 29.0 + 121.1947166 31.0973115 29.0 + 121.1947031 31.0972714 28.0 + 121.1946987 31.0972417 28.0 + 121.1947041 31.0971965 28.0 + 121.1947103 31.0971704 27.0 + 121.1947125 31.0971649 27.0 + 121.1947274 31.0971442 26.0 + 121.194744 31.0971279 25.0 + 121.1947445 31.0971316 25.0 + 121.194773 31.0970851 24.0 + 121.1947884 31.0970354 23.0 + 121.1947912 31.0970282 23.0 + 121.1948119 31.0970152 22.0 + 121.1948171 31.097013 22.0 + 121.194821 31.0970046 22.0 + 121.1948392 31.0969507 21.0 + 121.1948422 31.0969443 20.0 + 121.1948818 31.0968972 20.0 + 121.1949485 31.0968715 20.0 + 121.1949611 31.0968623 19.0 + 121.1949922 31.0968372 18.0 + 121.1950131 31.0968235 17.0 + 121.1950263 31.0968143 17.0 + 121.1950492 31.0967857 16.0 + 121.1950555 31.0967772 16.0 + 121.1951011 31.096735 15.0 + 121.1951242 31.0966822 14.0 + 121.1951186 31.0966858 14.0 + 121.1951122 31.0966858 14.0 + 121.1950994 31.0966858 14.0 + 121.1950885 31.0966808 14.0 + 121.1950317 31.0966622 13.0 + 121.1950163 31.0966604 12.0 + 121.1950048 31.0966573 11.0 + 121.1949751 31.0966591 11.0 + 121.1949532 31.0966596 10.0 + 121.1948691 31.0966827 10.0 + 121.1948001 31.0967064 10.0 + 121.1947408 31.0967096 10.0 + 121.1947097 31.0967088 9.0 + 121.1946937 31.0967101 9.0 + 121.1946103 31.0967436 8.0 + 121.1946028 31.0967467 8.0 + 121.1945362 31.0967647 7.0 + 121.1945211 31.0967639 7.0 + 121.1944796 31.0967837 8.0 + 121.1944418 31.0967993 7.0 + 121.1944099 31.0968035 6.0 + 121.1943742 31.0968038 6.0 + 121.1943429 31.0968062 6.0 + 121.1942602 31.0968237 5.0 + 121.1941533 31.0968374 4.0 + 121.1941194 31.0968385 4.0 + 121.1940323 31.0968292 3.0 + 121.1939982 31.0968318 3.0 + 121.1939644 31.0968377 2.0 + 121.19388 31.0968479 2.0 + 121.1938045 31.0968431 1.0 + 121.1937913 31.0968397 1.0 + 121.1936971 31.0968534 0.0 + 121.1936739 31.0968636 0.0 + 121.1935979 31.0968882 0.0 + 121.1935712 31.0968932 -1.0 + 121.1934874 31.0969121 -2.0 + 121.1934745 31.096909 -2.0 + 121.1934107 31.0968985 -2.0 + 121.1933731 31.0969043 -3.0 + 121.1933012 31.0969029 -3.0 + 121.1932686 31.0969012 -4.0 + 121.1932223 31.0969121 -4.0 + 121.1931558 31.0969366 -5.0 + 121.1930901 31.0969631 -5.0 + 121.1930304 31.0969892 -6.0 + 121.1929773 31.0970089 -6.0 + 121.1929079 31.0970302 -5.0 + 121.1928258 31.0970234 -6.0 + 121.1928164 31.0970223 -6.0 + 121.1927705 31.0970369 -6.0 + 121.1927521 31.097036 -6.0 + 121.192662 31.0970435 -6.0 + 121.1925501 31.0970517 -6.0 + 121.1924675 31.0970583 -6.0 + 121.1923969 31.0970651 -6.0 + 121.1923753 31.0970656 -6.0 + 121.1922938 31.0970656 -6.0 + 121.1922794 31.0970784 -6.0 + 121.1922603 31.0970958 -5.0 + 121.1922478 31.0971068 -5.0 + 121.192247 31.0971085 -4.0 + 121.192247 31.0971085 -5.0 + 121.192247 31.0971085 -4.0 + 121.192247 31.0971085 -4.0 + 121.192247 31.0971085 -3.0 + 121.1922461 31.0971043 -3.0 + 121.1922227 31.0971069 -3.0 + 121.1921343 31.0971053 -3.0 + 121.1921128 31.0971029 -3.0 + 121.1920644 31.0971017 -3.0 + 121.1920593 31.0971045 -3.0 + 121.1920187 31.0971231 -3.0 + 121.1919431 31.0971292 -2.0 + 121.1918838 31.0971401 -2.0 + 121.1918574 31.0971415 -2.0 + 121.1917803 31.0971215 -1.0 + 121.1917867 31.0971185 -1.0 + 121.1918217 31.0971111 -1.0 + 121.191849 31.097109 -1.0 + 121.1919171 31.0971238 -1.0 + 121.1919592 31.0971245 -1.0 + 121.1920049 31.0971223 0.0 + 121.1920333 31.0971316 0.0 + 121.1920581 31.0971579 0.0 + 121.1920568 31.0971711 0.0 + 121.1920525 31.0972473 -1.0 + 121.1920465 31.0972758 -1.0 + 121.1920389 31.0973721 0.0 + 121.1920286 31.0974338 0.0 + 121.1920281 31.0974637 0.0 + 121.1920483 31.0975518 1.0 + 121.1920512 31.097563 1.0 + 121.1920565 31.0976282 2.0 + 121.1920469 31.09765 2.0 + 121.1920398 31.0976896 2.0 + 121.1920324 31.0977229 3.0 + 121.1920281 31.0977535 3.0 + 121.1920148 31.0978134 3.0 + 121.1919996 31.0978547 3.0 + 121.1919783 31.0978802 3.0 + 121.1919421 31.0979623 4.0 + 121.1919175 31.0980279 4.0 + 121.191915 31.0980505 4.0 + 121.1919038 31.0981103 4.0 + 121.1918999 31.0981768 5.0 + 121.1918961 31.0981923 5.0 + 121.1918829 31.0982437 5.0 + 121.1918537 31.0983108 5.0 + 121.1918091 31.0983825 6.0 + 121.1917857 31.0984349 6.0 + 121.1917731 31.0984608 6.0 + 121.191716 31.0985471 6.0 + 121.191653 31.0986178 6.0 + 121.1915982 31.0986533 6.0 + 121.1915443 31.0987021 6.0 + 121.1914809 31.098754 5.0 + 121.1914284 31.0988081 5.0 + 121.1914102 31.0988257 5.0 + 121.1913413 31.0988954 5.0 + 121.191236 31.0989897 5.0 + 121.1911268 31.0990201 5.0 + 121.1910434 31.0989587 5.0 + 121.1909407 31.0988765 5.0 + 121.1909038 31.0988196 6.0 + 121.1909 31.0988132 6.0 + 121.1908935 31.098798 7.0 + 121.1908801 31.0987779 8.0 + 121.1908785 31.0987773 8.0 + 121.1908622 31.0987471 9.0 + 121.1908644 31.0987447 10.0 + 121.1908715 31.0987337 10.0 + 121.190871 31.0986915 11.0 + 121.1908677 31.0986851 11.0 + 121.1908632 31.0986763 11.0 + 121.1908316 31.0986268 12.0 + 121.1908187 31.098599 13.0 + 121.1908144 31.0985755 14.0 + 121.1908232 31.0985548 15.0 + 121.1908191 31.0985446 16.0 + 121.1908211 31.0985454 16.0 + 121.1908297 31.0985432 17.0 + 121.1908296 31.0985428 17.0 + 121.1908256 31.0985432 17.0 + 121.1908116 31.0985091 18.0 + 121.1908088 31.0985065 18.0 + 121.1908057 31.0984869 19.0 + 121.1907904 31.0984676 20.0 + 121.1907835 31.0984418 21.0 + 121.1907812 31.0984207 21.0 + 121.1907787 31.0984139 22.0 + 121.1907686 31.0984019 22.0 + 121.1907684 31.0983772 23.0 + 121.1907681 31.0983746 24.0 + 121.1907568 31.0983236 25.0 + 121.1907536 31.0983071 25.0 + 121.1907385 31.0982661 26.0 + 121.1907386 31.0982639 26.0 + 121.1907338 31.0982185 27.0 + 121.1907347 31.0982137 27.0 + 121.1907336 31.0981853 28.0 + 121.1907344 31.0981756 29.0 + 121.1907374 31.0981447 29.0 + 121.190725 31.0981152 30.0 + 121.1906933 31.0981093 30.0 + 121.1906686 31.098119 30.0 + 121.19066 31.0981233 30.0 + 121.1906309 31.0981436 31.0 + 121.1906238 31.0981507 31.0 + 121.1906329 31.0981788 31.0 + 121.1906322 31.0981852 31.0 + 121.1906322 31.0981852 31.0 + 121.1906133 31.098174 31.0 + 121.1906201 31.0981787 31.0 + 121.1906317 31.0981818 31.0 + 121.1906497 31.0981849 31.0 + 121.1906556 31.0981874 31.0 + 121.1906207 31.0982052 31.0 + 121.1905578 31.0982203 31.0 + 121.1905515 31.0982232 31.0 + 121.1904593 31.0982093 32.0 + 121.1903844 31.0981778 32.0 + 121.1903391 31.0981413 33.0 + 121.1903293 31.098131 33.0 + 121.1902964 31.0981128 34.0 + 121.1902915 31.0981096 34.0 + 121.1902569 31.0981021 34.0 + 121.190227 31.0980938 35.0 + 121.1902031 31.0980859 35.0 + 121.1901134 31.0980496 35.0 + 121.190026 31.0979985 35.0 + 121.189974 31.0979647 36.0 + 121.1899166 31.0979201 37.0 + 121.189911 31.0979148 37.0 + 121.1898462 31.0978888 38.0 + 121.1898142 31.0978839 38.0 + 121.1897856 31.0978661 38.0 + 121.1897509 31.0978473 39.0 + 121.189723 31.0978387 39.0 + 121.189657 31.0978228 40.0 + 121.1895863 31.0977881 39.0 + 121.1894985 31.097758 39.0 + 121.1894592 31.0977418 39.0 + 121.1894509 31.0977394 39.0 + 121.1893476 31.0977022 39.0 + 121.1892475 31.0976861 39.0 + 121.1891923 31.097667 39.0 + 121.1891645 31.097661 40.0 + 121.1890801 31.0976415 40.0 + 121.1889788 31.097642 40.0 + 121.18894 31.097643 40.0 + 121.1888835 31.0976472 40.0 + 121.1888709 31.0976478 40.0 + 121.1887925 31.0976408 41.0 + 121.1887169 31.097649 42.0 + 121.1887108 31.0976501 42.0 + 121.1886147 31.097676 42.0 + 121.1885364 31.0976857 43.0 + 121.1885149 31.097696 43.0 + 121.1884595 31.0977239 44.0 + 121.1883841 31.0977522 44.0 + 121.1883523 31.097772 44.0 + 121.1882894 31.0977957 44.0 + 121.1882077 31.0978031 45.0 + 121.1881135 31.0978046 45.0 + 121.1880397 31.0978042 44.0 + 121.1879968 31.0977951 43.0 + 121.1879861 31.0977924 43.0 + 121.1879659 31.0977866 43.0 + 121.1879098 31.0977699 42.0 + 121.1878508 31.0977321 43.0 + 121.1877956 31.0976993 43.0 + 121.1877635 31.0976824 43.0 + 121.1877102 31.0976639 43.0 + 121.1876474 31.0976489 43.0 + 121.1875715 31.0976488 44.0 + 121.1875483 31.0976467 44.0 + 121.187496 31.0976415 44.0 + 121.1874395 31.0976352 44.0 + 121.1873397 31.0976434 44.0 + 121.1872474 31.0976485 44.0 + 121.1872329 31.0976462 44.0 + 121.1872093 31.0976456 45.0 + 121.187191 31.0976508 45.0 + 121.1871836 31.0976539 45.0 + 121.1871613 31.0976587 46.0 + 121.1871198 31.0976643 46.0 + 121.1870796 31.0976606 46.0 + 121.1869599 31.0976435 46.0 + 121.1869455 31.0976395 46.0 + 121.1869167 31.0976243 47.0 + 121.186875 31.0975837 47.0 + 121.1868175 31.0974995 47.0 + 121.1867907 31.0974468 47.0 + 121.1867791 31.0974333 47.0 + 121.1867246 31.0973682 47.0 + 121.1866631 31.0972943 47.0 + 121.1866075 31.0972258 47.0 + 121.1865905 31.0972028 47.0 + 121.1865194 31.0971707 47.0 + 121.1864622 31.0971234 46.0 + 121.1863932 31.0970861 46.0 + 121.186345 31.0970553 46.0 + 121.1863089 31.0970361 45.0 + 121.1862834 31.097009 45.0 + 121.1862694 31.0969697 45.0 + 121.1863225 31.0968805 46.0 + 121.1863138 31.0967982 46.0 + 121.1862817 31.0967604 47.0 + 121.1862668 31.0967486 47.0 + 121.18625 31.0967412 47.0 + 121.1862067 31.0967284 47.0 + 121.186115 31.0967331 47.0 + 121.1860289 31.0967272 47.0 + 121.1859796 31.0967303 48.0 + 121.1859634 31.0967362 48.0 + 121.1858771 31.096739 48.0 + 121.1858315 31.0967417 49.0 + 121.1858218 31.0967439 49.0 + 121.1857549 31.0967452 49.0 + 121.1856871 31.0967457 49.0 + 121.1856501 31.0967495 50.0 + 121.1856311 31.0967495 50.0 + 121.1855707 31.0967512 50.0 + 121.1855087 31.096749 50.0 + 121.1854651 31.0967542 51.0 + 121.1854229 31.0967518 51.0 + 121.185394 31.096742 51.0 + 121.1852991 31.0967195 52.0 + 121.185231 31.0967116 52.0 + 121.1852212 31.09671 52.0 + 121.1851598 31.0966791 52.0 + 121.1851413 31.0966613 52.0 + 121.1851316 31.0966535 52.0 + 121.1851072 31.096615 53.0 + 121.1850811 31.0965705 53.0 + 121.1850651 31.0965136 53.0 + 121.1850694 31.0964599 53.0 + 121.1850831 31.0963792 53.0 + 121.1851178 31.0963361 54.0 + 121.1851464 31.0962724 54.0 + 121.1851946 31.0962159 54.0 + 121.1852195 31.0961903 54.0 + 121.185232 31.0961553 54.0 + 121.1852612 31.0960866 54.0 + 121.1852913 31.0960451 55.0 + 121.1853048 31.0960364 55.0 + 121.1853353 31.0960067 55.0 + 121.1853406 31.0959813 55.0 + 121.185377 31.095907 55.0 + 121.1854151 31.0958481 56.0 + 121.1854613 31.0957886 56.0 + 121.1854877 31.095732 57.0 + 121.1855463 31.0956592 57.0 + 121.1855905 31.0956177 57.0 + 121.1855951 31.0956073 57.0 + 121.1856379 31.0955691 57.0 + 121.1856942 31.0955364 58.0 + 121.1857925 31.0955194 58.0 + 121.1858883 31.0955093 58.0 + 121.1860038 31.0955284 59.0 + 121.186081 31.0955464 59.0 + 121.1860948 31.0955555 59.0 + 121.1861745 31.0955767 60.0 + 121.1863087 31.0956254 60.0 + 121.1863139 31.09563 60.0 + 121.1863421 31.0956416 60.0 + 121.1864037 31.0956627 61.0 + 121.1864303 31.0956691 62.0 + 121.1865339 31.0956818 62.0 + 121.1866087 31.0956974 62.0 + 121.1866322 31.09571 62.0 + 121.1866986 31.095718 62.0 + 121.1867086 31.0957194 62.0 + 121.1867707 31.0957434 63.0 + 121.186842 31.0957522 63.0 + 121.1868802 31.0957282 63.0 + 121.1868901 31.0957268 63.0 + 121.1869155 31.0957311 64.0 + 121.1869936 31.0957347 64.0 + 121.1870556 31.0957331 65.0 + 121.1870829 31.0957412 65.0 + 121.1871666 31.0957486 65.0 + 121.1871929 31.0957513 66.0 + 121.1872625 31.0957446 66.0 + 121.1873527 31.0957017 66.0 + 121.1874034 31.0956935 67.0 + 121.1874471 31.0956767 67.0 + 121.1874458 31.0956664 67.0 + 121.1874674 31.095662 68.0 + 121.1874847 31.0956646 68.0 + 121.1875234 31.0956758 68.0 + 121.1876066 31.0956701 68.0 + 121.187613 31.0956521 69.0 + 121.1876023 31.0956405 69.0 + 121.1875914 31.0956418 68.0 + 121.1876152 31.0956448 68.0 + 121.1876241 31.0956463 68.0 + 121.1876225 31.0956453 68.0 + 121.1876035 31.0956401 68.0 + 121.1876058 31.0956321 68.0 + 121.1876073 31.0956339 68.0 + 121.1876176 31.0956526 67.0 + 121.1876201 31.095659 67.0 + 121.1876203 31.0956591 67.0 + 121.1876202 31.0956591 67.0 + 121.1876186 31.0956587 67.0 + 121.1876085 31.0956621 67.0 + 121.1876184 31.0956478 66.0 + 121.1876173 31.0956432 66.0 + 121.1875941 31.0956042 66.0 + 121.1875868 31.0955973 66.0 + 121.1875813 31.095598 66.0 + 121.1875632 31.0956193 65.0 + 121.1875646 31.0956341 65.0 + 121.1875717 31.0956472 65.0 + 121.1875746 31.0956705 65.0 + 121.1875741 31.0956586 65.0 + 121.1875758 31.0956528 65.0 + 121.1875746 31.0956575 65.0 + 121.1875746 31.0956575 65.0 + 121.1875704 31.0956529 64.0 + 121.1875676 31.0956454 64.0 + 121.1876057 31.0956781 64.0 + 121.1876057 31.0956781 64.0 + 121.1876139 31.0956742 64.0 + 121.1876057 31.0956781 64.0 + 121.1876057 31.0956781 64.0 + 121.1876057 31.0956781 64.0 + 121.1876057 31.0956781 64.0 + 121.1876057 31.0956781 64.0 + 121.1876057 31.0956781 63.0 + 121.1876129 31.0956754 63.0 + 121.1876124 31.0956745 63.0 + 121.1876057 31.0956781 63.0 + 121.1876057 31.0956781 63.0 + 121.187619 31.0956652 63.0 + 121.1876184 31.0956652 63.0 + 121.1876184 31.0956652 63.0 + 121.1876184 31.0956652 63.0 + 121.1876184 31.0956652 62.0 + 121.1876184 31.0956652 62.0 + 121.187626 31.0956564 62.0 + 121.1876184 31.0956652 62.0 + 121.1876184 31.0956652 62.0 + 121.1876184 31.0956652 62.0 + 121.1876184 31.0956652 62.0 + 121.1876184 31.0956652 62.0 + 121.1876184 31.0956652 61.0 + 121.1876184 31.0956652 61.0 + 121.1876036 31.09566 61.0 + 121.1875989 31.0956451 61.0 + 121.1875986 31.0956376 61.0 + 121.1875965 31.0956637 61.0 + 121.1876178 31.0956704 61.0 + 121.1876174 31.0956706 61.0 + 121.1876163 31.0956713 61.0 + 121.1876332 31.0956799 61.0 + 121.1877348 31.0956679 61.0 + 121.1877733 31.0956653 62.0 + 121.1877725 31.0956679 62.0 + 121.1877483 31.0956722 62.0 + 121.1876952 31.0956627 62.0 + 121.1876714 31.095662 62.0 + 121.1876528 31.0956586 62.0 + 121.1876416 31.0956563 62.0 + 121.1876302 31.0956541 62.0 + 121.1876157 31.0956532 62.0 + 121.187611 31.0956587 62.0 + 121.1876527 31.0956728 61.0 + 121.1876602 31.0956745 61.0 + 121.1877414 31.0956969 61.0 + 121.1877916 31.095715 61.0 + 121.1878097 31.0957193 61.0 + 121.187832 31.0957222 62.0 + 121.1878754 31.0957506 62.0 + 121.1878921 31.0957877 63.0 + 121.1879146 31.0957918 64.0 + 121.1879498 31.0957897 65.0 + 121.1879654 31.0957924 65.0 + 121.1879866 31.0957936 65.0 + 121.1880205 31.0957991 65.0 + 121.1880622 31.0958088 66.0 + 121.1880942 31.0958155 66.0 + 121.1881592 31.095833 66.0 + 121.1881752 31.0958408 66.0 + 121.1882044 31.0958405 66.0 + 121.1882017 31.0958195 66.0 + 121.1881881 31.0958242 66.0 + 121.1881599 31.0958449 66.0 + 121.1881419 31.0958556 66.0 + 121.1880799 31.0958638 66.0 + 121.1880623 31.0958642 67.0 + 121.1880351 31.0958642 67.0 + 121.1880029 31.0958666 67.0 + 121.1879721 31.0958727 67.0 + 121.1879178 31.0958698 67.0 + 121.1878853 31.095872 68.0 + 121.1878921 31.0958939 68.0 + 121.1878845 31.0958968 68.0 + 121.1879165 31.0958911 68.0 + 121.1879563 31.0958893 68.0 + 121.1880202 31.0958986 68.0 + 121.1880485 31.0959041 68.0 + 121.1880494 31.0959033 68.0 + 121.1880675 31.0959043 68.0 + 121.188189 31.0959075 69.0 + 121.1881997 31.0959271 69.0 + 121.1881878 31.0959284 69.0 + 121.1881312 31.0959487 69.0 + 121.1880715 31.0959611 69.0 + 121.1880358 31.0959694 69.0 + 121.1879812 31.0959645 70.0 + 121.1879615 31.0959647 70.0 + 121.1879219 31.0959734 70.0 + 121.1878865 31.0959782 70.0 + 121.187898 31.0959867 70.0 + 121.1879463 31.0959756 70.0 + 121.1880095 31.0959727 71.0 + 121.1881127 31.0959726 71.0 + 121.1881472 31.0959688 71.0 + 121.1881886 31.0959634 72.0 + 121.1881679 31.0959732 72.0 + 121.1881632 31.0959937 72.0 + 121.1881635 31.0959953 72.0 + 121.1881771 31.096059 72.0 + 121.1881638 31.0960538 71.0 + 121.1880988 31.0960507 71.0 + 121.1880304 31.096052 72.0 + 121.1879578 31.0960536 73.0 + 121.187928 31.0960547 73.0 + 121.1878766 31.0960552 73.0 + 121.1878652 31.0960448 73.0 + 121.1878624 31.0960438 73.0 + 121.187856 31.0960338 73.0 + 121.1878472 31.096018 73.0 + 121.1878474 31.0960176 73.0 + 121.1878481 31.0960176 73.0 + 121.1878519 31.096013 73.0 + 121.1878492 31.0960127 73.0 + 121.1878427 31.0960206 72.0 + 121.1878452 31.0960215 72.0 + 121.1878725 31.0960212 72.0 + 121.1878783 31.0960264 72.0 + 121.1878418 31.0960531 72.0 + 121.1878244 31.0960709 72.0 + 121.1879068 31.0960725 73.0 + 121.1879164 31.0960717 74.0 + 121.1879591 31.0960736 74.0 + 121.1879686 31.0960753 75.0 + 121.1879912 31.0960831 75.0 + 121.1880161 31.0960974 75.0 + 121.18803 31.0961099 76.0 + 121.1880165 31.0961011 76.0 + 121.1880081 31.0961124 76.0 + 121.1879867 31.0961232 76.0 + 121.1879796 31.0961229 76.0 + 121.1879388 31.0961263 76.0 + 121.1879087 31.0961284 76.0 + 121.187862 31.0961304 76.0 + 121.1878475 31.0961354 76.0 + 121.1878274 31.0961309 75.0 + 121.1878717 31.0961227 75.0 + 121.1878985 31.0961255 75.0 + 121.187971 31.09612 75.0 + 121.1880237 31.0961138 75.0 + 121.1880558 31.0961144 75.0 + 121.188158 31.0961364 75.0 + 121.1882346 31.0961547 75.0 + 121.1882368 31.0961689 75.0 + 121.1882244 31.096203 75.0 + 121.1881803 31.0962249 75.0 + 121.1881635 31.0962181 76.0 + 121.1881503 31.0962174 77.0 + 121.1881427 31.0962162 77.0 + 121.1881239 31.0962124 77.0 + 121.1881143 31.096212 78.0 + 121.1881162 31.0962147 78.0 + 121.1881139 31.0962165 78.0 + 121.1880897 31.096212 79.0 + 121.1880878 31.0962116 79.0 + 121.1880664 31.0962093 79.0 + 121.1880287 31.0962108 80.0 + 121.1880236 31.0962112 79.0 + 121.1880045 31.096221 79.0 + 121.187996 31.0961812 79.0 + 121.187996 31.0961812 79.0 + 121.187996 31.0961812 79.0 + 121.1880022 31.0961844 79.0 + 121.187996 31.0961812 79.0 + 121.187996 31.0961812 79.0 + 121.187996 31.0961812 79.0 + 121.187996 31.0961812 79.0 + 121.187996 31.0961812 78.0 + 121.187996 31.0961812 78.0 + 121.187996 31.0961812 78.0 + 121.1879877 31.0961992 78.0 + 121.1879877 31.0961992 78.0 + 121.1879877 31.0961992 78.0 + 121.1879885 31.0961983 78.0 + 121.1879913 31.0961981 78.0 + 121.188001 31.0962086 77.0 + 121.1880034 31.0962159 77.0 + 121.1880119 31.0962377 77.0 + 121.1880239 31.0962544 77.0 + 121.1880285 31.0962534 77.0 + 121.1880579 31.0962476 78.0 + 121.188113 31.0963812 78.0 + 121.1881179 31.0964168 77.0 + 121.1880477 31.0964369 78.0 + 121.188021 31.0964318 77.0 + 121.1879816 31.0964971 77.0 + 121.1879717 31.0965102 77.0 + 121.187968 31.0965192 77.0 + 121.1879634 31.0965208 77.0 + 121.1880783 31.0964099 77.0 + 121.1878483 31.0964973 77.0 + 121.1878566 31.0964639 77.0 + 121.1878423 31.0964547 77.0 + 121.187847 31.0964529 76.0 + 121.187922 31.0964229 76.0 + 121.1879208 31.0964411 76.0 + 121.1879368 31.0964179 76.0 + 121.1879135 31.09637 76.0 + 121.1879031 31.0963557 76.0 + 121.187954 31.0963026 76.0 + 121.1879517 31.0962939 76.0 + 121.1879415 31.0962795 76.0 + 121.1879353 31.0962835 76.0 + 121.1879334 31.0962812 76.0 + 121.18794 31.0962674 76.0 + 121.1879964 31.096259 76.0 + 121.1879405 31.0962172 75.0 + 121.1878782 31.0961687 75.0 + 121.1879278 31.0961885 75.0 + 121.1878326 31.0962165 75.0 + 121.1878381 31.0961898 75.0 + 121.1882646 31.0964022 75.0 + 121.1882541 31.0964225 75.0 + 121.1881642 31.0963795 75.0 + 121.1880933 31.0963735 75.0 + 121.1880551 31.0963939 75.0 + 121.188015 31.0964422 75.0 + 121.1880016 31.0964168 75.0 + 121.1879995 31.0962726 74.0 + 121.1880105 31.096254 74.0 + 121.1880351 31.0962305 74.0 + 121.1880364 31.0962275 74.0 + 121.1880358 31.0962287 73.0 + 121.188026 31.0962403 73.0 + 121.1880369 31.0962394 73.0 + 121.1880561 31.0962418 73.0 + 121.188047 31.096243 73.0 + 121.1880498 31.0962446 73.0 + 121.1880358 31.0962418 73.0 + 121.1880601 31.0962247 72.0 + 121.1880731 31.0962152 72.0 + 121.1880609 31.0962152 72.0 + 121.1880513 31.0962154 72.0 + 121.1880491 31.0962166 72.0 + 121.1880705 31.0962294 71.0 + 121.1880329 31.0962268 71.0 + 121.1879908 31.0962093 71.0 + 121.1879862 31.0962055 71.0 + 121.1879891 31.0962043 71.0 + 121.1880063 31.0962042 71.0 + 121.1880067 31.0962043 71.0 + 121.1880067 31.0962043 71.0 + 121.1879878 31.096189 71.0 + 121.187981 31.0961807 70.0 + 121.1879443 31.0962063 70.0 + 121.1878902 31.0962316 70.0 + 121.1878825 31.0962329 70.0 + 121.1878537 31.0962281 70.0 + 121.187813 31.096224 70.0 + 121.1877892 31.0962249 70.0 + 121.1877654 31.0962201 70.0 + 121.18769 31.0962284 69.0 + 121.1876745 31.0962259 69.0 + 121.1875741 31.0962365 69.0 + 121.1875741 31.0962365 69.0 + 121.1875561 31.0962374 69.0 + 121.1875559 31.0962425 69.0 + 121.1875561 31.0962374 69.0 + 121.1875517 31.0962299 69.0 + 121.1875428 31.0962151 68.0 + 121.1875428 31.0962151 69.0 + 121.1875458 31.0962115 68.0 + 121.1875584 31.0962149 68.0 + 121.1875638 31.0962166 68.0 + 121.1875751 31.0962176 68.0 + 121.1875722 31.0962185 68.0 + 121.1875603 31.0962082 68.0 + 121.1875584 31.0962038 68.0 + 121.1875942 31.0962125 68.0 + 121.1876078 31.0962201 67.0 + 121.187611 31.0962264 67.0 + 121.1876123 31.0962257 67.0 + 121.1875886 31.0962282 68.0 + 121.1875688 31.0962227 68.0 + 121.1875622 31.0962099 68.0 + 121.187566 31.0962096 69.0 + 121.1875691 31.0962092 69.0 + 121.1875691 31.0962092 69.0 + 121.187558 31.0961949 69.0 + 121.1875746 31.0961952 68.0 + 121.1875698 31.0961983 68.0 + 121.1875742 31.0961952 68.0 + 121.1875674 31.0961938 68.0 + 121.1875742 31.0961952 68.0 + 121.1875742 31.0961952 68.0 + 121.1875742 31.0961952 68.0 + 121.1875742 31.0961952 67.0 + 121.1875742 31.0961952 67.0 + 121.1875742 31.0961952 67.0 + 121.1875742 31.0961952 67.0 + 121.1875742 31.0961952 67.0 + 121.1875742 31.0961952 67.0 + 121.1875742 31.0961952 67.0 + 121.1875742 31.0961952 67.0 + 121.1875729 31.0961969 67.0 + 121.1875603 31.0962002 67.0 + 121.1875789 31.0961813 67.0 + 121.1876306 31.0961854 67.0 + 121.1877156 31.0961832 66.0 + 121.1877751 31.0962104 66.0 + 121.1878534 31.0962066 66.0 + 121.1879338 31.0961939 66.0 + 121.1879338 31.0961939 66.0 + 121.1879596 31.0961719 66.0 + 121.1879915 31.0961553 66.0 + 121.1879939 31.0961509 66.0 + 121.1879975 31.0961608 66.0 + 121.1880436 31.0961689 66.0 + 121.1880943 31.0961873 66.0 + 121.1881238 31.0961829 65.0 + 121.1881399 31.0961871 65.0 + 121.1881568 31.0961854 64.0 + 121.1881714 31.0961789 63.0 + 121.1881712 31.0961776 63.0 + 121.1882026 31.0961637 62.0 + 121.1882168 31.0961558 62.0 + 121.1882591 31.0961422 62.0 + 121.1882981 31.0961572 62.0 + 121.1883234 31.0961647 62.0 + 121.1883424 31.0961737 62.0 + 121.1883883 31.0961899 62.0 + 121.1884279 31.0961937 62.0 + 121.1883948 31.0961917 62.0 + 121.1883404 31.0961956 62.0 + 121.1883178 31.0962061 62.0 + 121.1883606 31.0962231 62.0 + 121.1883466 31.096217 62.0 + 121.1883326 31.0962097 62.0 + 121.1883092 31.0961981 62.0 + 121.1882814 31.0961737 62.0 + 121.1882658 31.0961756 62.0 + 121.1882697 31.0961614 62.0 + 121.1882748 31.0961619 62.0 + 121.1882697 31.0961614 62.0 + 121.1882697 31.0961614 62.0 + 121.1882697 31.0961614 62.0 + 121.1882697 31.0961614 62.0 + 121.1882607 31.0961644 62.0 + 121.1882675 31.0961694 62.0 + 121.1882647 31.0961643 62.0 + 121.1882697 31.0961614 62.0 + 121.1882799 31.0961706 62.0 + 121.1882886 31.0961772 62.0 + 121.1882908 31.0961812 62.0 + 121.1882951 31.096184 62.0 + 121.1882908 31.0961812 62.0 + 121.1882908 31.0961812 62.0 + 121.1882908 31.0961812 62.0 + 121.188271 31.0961626 62.0 + 121.188271 31.0961626 62.0 + 121.188271 31.0961626 62.0 + 121.188271 31.0961626 62.0 + 121.188271 31.0961626 62.0 + 121.188271 31.0961626 62.0 + 121.1882614 31.0961437 62.0 + 121.1882622 31.0961444 62.0 + 121.1882627 31.0961451 62.0 + 121.1882625 31.0961454 62.0 + 121.1882673 31.0961664 62.0 + 121.1882595 31.0961695 62.0 + 121.1882197 31.0961578 62.0 + 121.1882196 31.0961575 62.0 + 121.188221 31.0961569 62.0 + 121.1882532 31.0961394 61.0 + 121.1882663 31.0961382 61.0 + 121.1882694 31.0961359 61.0 + 121.1882887 31.0960973 60.0 + 121.1883321 31.0960781 59.0 + 121.1883386 31.0960755 58.0 + 121.1883561 31.0960696 57.0 + 121.1883545 31.0960528 57.0 + 121.188384 31.096041 57.0 + 121.188384 31.096041 57.0 + 121.1884024 31.096045 56.0 + 121.1884093 31.0960433 56.0 + 121.18843 31.0960334 56.0 + 121.1884449 31.0960373 56.0 + 121.1884372 31.0960511 57.0 + 121.188458 31.096055 57.0 + 121.1884743 31.0960438 57.0 + 121.1884928 31.0960459 56.0 + 121.1885362 31.0960511 56.0 + 121.1885401 31.0960482 56.0 + 121.1885868 31.0960556 55.0 + 121.1886336 31.0960645 55.0 + 121.1886973 31.0960787 55.0 + 121.1887329 31.0960811 54.0 + 121.1887484 31.0960819 54.0 + 121.1888537 31.0961049 53.0 + 121.1888657 31.0961048 53.0 + 121.1889432 31.0960999 53.0 + 121.1889811 31.0961077 52.0 + 121.1890251 31.096138 52.0 + 121.189153 31.096187 53.0 + 121.1892152 31.0962049 53.0 + 121.1892468 31.0962251 53.0 + 121.1892308 31.0962263 53.0 + 121.1892091 31.0962338 53.0 + 121.1892148 31.0962417 53.0 + 121.1892141 31.096238 53.0 + 121.1891866 31.0962387 53.0 + 121.1891369 31.096218 53.0 + 121.189121 31.0962191 53.0 + 121.1891019 31.0962284 53.0 + 121.1891506 31.0962537 54.0 + 121.1891739 31.0962763 54.0 + 121.1891811 31.0962846 54.0 + 121.1891979 31.0962983 55.0 + 121.1892289 31.0963185 55.0 + 121.1892339 31.0963221 56.0 + 121.1892666 31.0963638 57.0 + 121.189278 31.0964016 57.0 + 121.1892809 31.0964057 57.0 + 121.1892925 31.0964223 58.0 + 121.1892986 31.0964334 58.0 + 121.1893094 31.0964845 59.0 + 121.189316 31.0964917 59.0 + 121.1893187 31.0965031 59.0 + 121.1893298 31.0965345 60.0 + 121.1893329 31.0965573 60.0 + 121.1893268 31.0966076 61.0 + 121.1893139 31.0966234 61.0 + 121.1893142 31.0966269 61.0 + 121.1893306 31.0966295 61.0 + 121.1893526 31.0966403 61.0 + 121.1893609 31.0966468 61.0 + 121.1893641 31.0966407 61.0 + 121.1893541 31.0966329 61.0 + 121.1893373 31.0966293 61.0 + 121.1893225 31.0966302 61.0 + 121.189315 31.0966305 61.0 + 121.1893177 31.0966423 61.0 + 121.189319 31.096647 61.0 + 121.1893189 31.0966561 61.0 + 121.1893256 31.0966603 61.0 + 121.1893357 31.0966689 61.0 + 121.1893203 31.0966661 61.0 + 121.1893082 31.0966689 61.0 + 121.1893077 31.0966542 61.0 + 121.1893136 31.0966382 61.0 + 121.1893073 31.0966328 61.0 + 121.1892925 31.0966377 61.0 + 121.1892851 31.0966341 61.0 + 121.1892963 31.0966208 61.0 + 121.1892913 31.0966265 61.0 + 121.18929 31.0966164 61.0 + 121.1892922 31.0966221 61.0 + 121.189278 31.0966004 61.0 + 121.1892764 31.0966081 61.0 + 121.1892711 31.0966263 61.0 + 121.1892717 31.0966526 61.0 + 121.1892635 31.0966649 61.0 + 121.1892607 31.0966464 61.0 + 121.1892548 31.0966224 61.0 + 121.1892541 31.0966223 61.0 + 121.1892596 31.0966271 61.0 + 121.1892679 31.09662 61.0 + 121.1892685 31.0966184 61.0 + 121.1892521 31.0965936 61.0 + 121.1892357 31.0966004 61.0 + 121.189229 31.0966042 60.0 + 121.18922 31.0966325 60.0 + 121.1892219 31.0966343 60.0 + 121.1892245 31.0966306 60.0 + 121.1892134 31.0966331 60.0 + 121.1892074 31.096637 60.0 + 121.1892052 31.0966438 60.0 + 121.1891851 31.0966378 60.0 + 121.1891909 31.0966479 60.0 + 121.1891873 31.0966273 60.0 + 121.1891794 31.0966319 60.0 + 121.1891655 31.0966583 60.0 + 121.1891601 31.0966691 60.0 + 121.1891728 31.0966605 60.0 + 121.1891846 31.096648 60.0 + 121.1891864 31.0966423 60.0 + 121.1891742 31.0966389 60.0 + 121.1891577 31.0966349 60.0 + 121.1891547 31.0966327 60.0 + 121.1891407 31.0966246 60.0 + 121.1891386 31.0966273 60.0 + 121.1891452 31.0966288 60.0 + 121.1891594 31.0966289 60.0 + 121.18915 31.0966329 60.0 + 121.1891685 31.0966448 60.0 + 121.1891904 31.0966511 60.0 + 121.1891853 31.0966521 60.0 + 121.1891897 31.0966713 60.0 + 121.1891958 31.0966726 60.0 + 121.1891993 31.0966658 60.0 + 121.189198 31.0966544 60.0 + 121.1891987 31.0966422 60.0 + 121.1891752 31.0966417 60.0 + 121.1891713 31.0966397 60.0 + 121.1891697 31.0966394 60.0 + 121.1891754 31.0966373 60.0 + 121.1891785 31.0966356 60.0 + 121.1891832 31.0966307 60.0 + 121.1891785 31.0966358 60.0 + 121.189192 31.0966327 60.0 + 121.1891868 31.0966093 60.0 + 121.189181 31.096605 60.0 + 121.1891859 31.0965907 60.0 + 121.189179 31.096611 60.0 + 121.1891831 31.0966164 60.0 + 121.1891825 31.096613 59.0 + 121.1891931 31.0966289 59.0 + 121.1891744 31.0966224 59.0 + 121.1891942 31.0966148 59.0 + 121.1892034 31.0966081 60.0 + 121.1892178 31.0966076 59.0 + 121.1892156 31.0966027 59.0 + 121.189227 31.096594 59.0 + 121.1892209 31.0965895 59.0 + 121.1892118 31.096589 59.0 + 121.1892148 31.0965821 59.0 + 121.1892148 31.0965871 59.0 + 121.189223 31.0965978 59.0 + 121.1892288 31.0966116 59.0 + 121.1892297 31.0966085 59.0 + 121.1892304 31.0966067 59.0 + 121.1892343 31.0966016 59.0 + 121.1892345 31.0966013 59.0 + 121.1892275 31.096603 59.0 + 121.1892235 31.0965967 59.0 + 121.1892236 31.0965968 59.0 + 121.189222 31.096601 59.0 + 121.189208 31.0965957 59.0 + 121.1892118 31.0966062 59.0 + 121.189217 31.0966058 59.0 + 121.1892187 31.0966075 59.0 + 121.1892219 31.0966096 59.0 + 121.1892208 31.0966061 59.0 + 121.1892084 31.0965982 59.0 + 121.189203 31.0965868 59.0 + 121.1892099 31.0965761 59.0 + 121.1892257 31.0965901 59.0 + 121.1892315 31.096592 59.0 + 121.1892467 31.0965935 59.0 + 121.1892581 31.0966004 59.0 + 121.1892517 31.0966024 59.0 + 121.1892383 31.0966009 59.0 + 121.1892324 31.0965944 59.0 + 121.1892247 31.0965986 59.0 + 121.1892145 31.0965925 59.0 + 121.1892158 31.0965921 59.0 + 121.1892169 31.0965965 59.0 + 121.1892434 31.0966023 59.0 + 121.1892407 31.0966075 58.0 + 121.1892641 31.0966221 58.0 + 121.1892588 31.0966137 58.0 + 121.189247 31.0966063 58.0 + 121.1892459 31.0966062 58.0 + 121.1892413 31.0966055 58.0 + 121.1892402 31.0966063 58.0 + 121.1892394 31.0966046 58.0 + 121.1892407 31.0966083 58.0 + 121.1892382 31.0966148 58.0 + 121.1892271 31.0966174 58.0 + 121.1892163 31.0965996 58.0 + 121.1892245 31.0966041 58.0 + 121.1892235 31.0965925 58.0 + 121.1892305 31.0965925 58.0 + 121.1892329 31.0965896 58.0 + 121.189249 31.0965979 58.0 + 121.1892598 31.0966067 58.0 + 121.1892495 31.0966124 58.0 + 121.1892417 31.0966087 58.0 + 121.1892299 31.0966008 58.0 + 121.1892246 31.0966037 58.0 + 121.1892063 31.0965968 58.0 + 121.1892045 31.096591 58.0 + 121.1892371 31.0966057 58.0 + 121.1892407 31.0966151 58.0 + 121.1892482 31.0966196 58.0 + 121.1892596 31.0966142 58.0 + 121.189264 31.0966018 58.0 + 121.189282 31.0966026 58.0 + 121.1892847 31.0966054 58.0 + 121.1892962 31.096617 58.0 + 121.1892873 31.0966078 58.0 + 121.1892443 31.0965428 58.0 + 121.1891999 31.0965003 59.0 + 121.1891617 31.0964742 60.0 + 121.1891521 31.096477 60.0 + 121.1891424 31.0964787 60.0 + 121.1891335 31.0964785 60.0 + 121.1891282 31.0964767 60.0 + 121.1891236 31.0964727 60.0 + 121.1890986 31.0964752 61.0 + 121.1890905 31.0964747 61.0 + 121.1890621 31.0964904 62.0 + 121.1890535 31.0964923 62.0 + 121.1890327 31.0964881 63.0 + 121.1890308 31.0964792 63.0 + 121.1890284 31.096463 63.0 + 121.1890194 31.0964398 63.0 + 121.1890121 31.0964258 63.0 + 121.1890037 31.0964182 63.0 + 121.1889868 31.0963977 63.0 + 121.1889511 31.0963451 63.0 + 121.1889449 31.096328 63.0 + 121.1889626 31.0963089 63.0 + 121.1889647 31.0963055 63.0 + 121.1889631 31.0963051 63.0 + 121.1889702 31.0963141 63.0 + 121.1889634 31.0963294 63.0 + 121.1889277 31.0963599 63.0 + 121.1889224 31.0963615 63.0 + 121.1889066 31.0963684 63.0 + 121.1889062 31.0963703 63.0 + 121.1889035 31.0963738 64.0 + 121.1889027 31.096384 65.0 + 121.188906 31.0963839 65.0 + 121.188895 31.0963885 65.0 + 121.1888856 31.0963946 66.0 + 121.1888843 31.0963922 65.0 + 121.1888596 31.0964238 65.0 + 121.1888579 31.0964949 65.0 + 121.1889522 31.0964902 66.0 + 121.189098 31.0964664 65.0 + 121.1890851 31.0964853 65.0 + 121.1890587 31.0964754 65.0 + 121.1888885 31.096549 65.0 + 121.1888662 31.0965459 65.0 + 121.1888953 31.0965702 66.0 + 121.1889195 31.0965762 67.0 + 121.1889177 31.0965671 67.0 + 121.1889127 31.0965589 68.0 + 121.1889033 31.0965451 68.0 + 121.1888916 31.0965156 69.0 + 121.1888962 31.0964948 69.0 + 121.1889024 31.0965003 69.0 + 121.1889082 31.0964822 69.0 + 121.1888851 31.0964519 69.0 + 121.188878 31.0964439 69.0 + 121.1889212 31.0964926 69.0 + 121.1889328 31.0965024 69.0 + 121.1889475 31.0965416 69.0 + 121.1889458 31.0965368 69.0 + 121.1889732 31.0965319 69.0 + 121.1889748 31.0965335 69.0 + 121.1889765 31.0965335 69.0 + 121.1889848 31.0965356 69.0 + 121.1889927 31.0965324 69.0 + 121.1890062 31.0965303 69.0 + 121.1890049 31.0965392 69.0 + 121.1890026 31.0965411 69.0 + 121.188999 31.0965428 69.0 + 121.1889874 31.0965386 69.0 + 121.1889644 31.0965291 69.0 + 121.1889789 31.0965311 69.0 + 121.1890093 31.0965247 69.0 + 121.1889954 31.096513 68.0 + 121.1890042 31.096498 68.0 + 121.1890085 31.096495 68.0 + 121.1890148 31.0964799 68.0 + 121.1890092 31.0964711 68.0 + 121.1890025 31.0964748 68.0 + 121.1890071 31.0964824 68.0 + 121.1890028 31.0964867 68.0 + 121.1889896 31.0965055 68.0 + 121.1890432 31.0965114 68.0 + 121.189031 31.096492 68.0 + 121.1890015 31.0965105 68.0 + 121.1890166 31.0965158 67.0 + 121.1890485 31.0965165 67.0 + 121.1890417 31.0965194 67.0 + 121.1890374 31.0965266 67.0 + 121.1889918 31.0965364 67.0 + 121.1889827 31.0965048 67.0 + 121.1889346 31.0964885 67.0 + 121.1889107 31.0964831 67.0 + 121.1889247 31.0964791 67.0 + 121.1888946 31.0964809 67.0 + 121.1888839 31.0964833 67.0 + 121.1888496 31.096478 67.0 + 121.1888457 31.0964961 67.0 + 121.1887781 31.0964786 67.0 + 121.1887807 31.0964746 67.0 + 121.1887771 31.0964723 67.0 + 121.1888131 31.0964712 67.0 + 121.1888271 31.0964885 67.0 + 121.1888404 31.0964982 67.0 + 121.1889193 31.0965087 67.0 + 121.1889302 31.0965438 66.0 + 121.1889318 31.0965526 67.0 + 121.1889125 31.0965712 66.0 + 121.1889118 31.0965722 66.0 + 121.1888759 31.0965122 66.0 + 121.1888701 31.0965016 66.0 + 121.1888693 31.0965153 66.0 + 121.1889239 31.0965114 66.0 + 121.1889771 31.0964948 66.0 + 121.188973 31.0964962 66.0 + 121.1890681 31.0964251 66.0 + 121.1891655 31.0963982 66.0 + 121.1891356 31.0964593 66.0 + 121.1891292 31.0964844 66.0 + 121.1890925 31.0964998 66.0 + 121.1890396 31.0965257 66.0 + 121.1889721 31.0965044 66.0 + 121.1889079 31.0964695 66.0 + 121.1888961 31.0965079 66.0 + 121.188879 31.0964963 66.0 + 121.1888578 31.09649 66.0 + 121.1888517 31.0964968 66.0 + 121.1888597 31.0964787 66.0 + 121.1888246 31.0964906 66.0 + 121.188846 31.096506 66.0 + 121.1888292 31.0965156 66.0 + 121.1888314 31.0965062 66.0 + 121.188841 31.096513 66.0 + 121.1888747 31.0965242 66.0 + 121.1888721 31.0965196 66.0 + 121.1888713 31.0965011 66.0 + 121.1888667 31.0965047 65.0 + 121.188829 31.096509 65.0 + 121.1888401 31.0965006 65.0 + 121.1888245 31.0965099 65.0 + 121.1888357 31.0965041 65.0 + 121.1888406 31.0964974 65.0 + 121.1888597 31.0965062 65.0 + 121.1888511 31.0965167 65.0 + 121.1888687 31.0964939 65.0 + 121.1888782 31.0964826 65.0 + 121.1888522 31.0964923 65.0 + 121.1888439 31.096492 65.0 + 121.1888458 31.0965055 65.0 + 121.1888481 31.0965133 65.0 + 121.188819 31.0964828 65.0 + 121.1887947 31.0964619 65.0 + 121.1887942 31.0964879 65.0 + 121.1887876 31.09648 65.0 + 121.1887919 31.0964825 65.0 + 121.1888206 31.096483 64.0 + 121.1888325 31.0964794 64.0 + 121.1887897 31.0964938 64.0 + 121.1888154 31.0964905 64.0 + 121.1888201 31.0964885 64.0 + 121.188807 31.096489 64.0 + 121.1888011 31.096491 64.0 + 121.18879 31.0965035 65.0 + 121.1888035 31.0965259 64.0 + 121.1888145 31.0965284 64.0 + 121.1888307 31.0965199 64.0 + 121.1888167 31.09652 64.0 + 121.1888099 31.0965257 64.0 + 121.1888145 31.0965241 64.0 + 121.1888127 31.0965189 64.0 + 121.1887877 31.0965226 64.0 + 121.1887937 31.0964755 64.0 + 121.1887764 31.0964848 64.0 + 121.1887212 31.0964884 64.0 + 121.1887348 31.0964581 64.0 + 121.1887418 31.0964616 64.0 + 121.188731 31.0964785 64.0 + 121.1887859 31.0964584 64.0 + 121.1887628 31.096435 64.0 + 121.1887732 31.0964371 64.0 + 121.1887801 31.0964345 64.0 + 121.1887466 31.0964397 64.0 + 121.1886981 31.096463 64.0 + 121.1886926 31.0964804 64.0 + 121.1886662 31.0964934 64.0 + 121.1886448 31.0965353 64.0 + 121.1886416 31.0965547 64.0 + 121.1886279 31.096531 64.0 + 121.1886139 31.0965203 64.0 + 121.1886064 31.096532 64.0 + 121.1885916 31.0964981 64.0 + 121.188625 31.0964931 64.0 + 121.1886528 31.0965047 64.0 + 121.1886341 31.096514 64.0 + 121.1886865 31.0964817 64.0 + 121.1886678 31.0964749 64.0 + 121.1886574 31.096478 64.0 + 121.1886615 31.0964808 64.0 + 121.1886541 31.0964727 64.0 + 121.188659 31.0964672 64.0 + 121.1886604 31.0964669 64.0 + 121.1886622 31.0964782 64.0 + 121.1886513 31.0964992 64.0 + 121.1886625 31.0965 64.0 + 121.1886897 31.0965206 64.0 + 121.1886801 31.0965219 64.0 + 121.1886289 31.0965045 64.0 + 121.1886184 31.0965099 64.0 + 121.1886004 31.096517 64.0 + 121.1885937 31.0965243 64.0 + 121.188605 31.096538 64.0 + 121.1886095 31.0965365 64.0 + 121.188643 31.0965196 64.0 + 121.1886593 31.0965062 64.0 + 121.1886733 31.0965143 64.0 + 121.1887266 31.0965068 64.0 + 121.1887276 31.0964851 64.0 + 121.1887213 31.096502 64.0 + 121.188739 31.0964856 64.0 + 121.1887874 31.0964626 64.0 + 121.1886664 31.0963485 63.0 + 121.1886644 31.0963317 63.0 + 121.188665 31.0963153 63.0 + 121.188653 31.0963198 63.0 + 121.1886274 31.0963077 63.0 + 121.1886187 31.0963095 63.0 + 121.1886036 31.0963283 63.0 + 121.1886013 31.0963275 63.0 + 121.1885932 31.0963364 63.0 + 121.1885862 31.0963325 63.0 + 121.1885805 31.0963273 63.0 + 121.1886008 31.0963401 63.0 + 121.1886133 31.096336 63.0 + 121.1886154 31.0963443 63.0 + 121.1886123 31.0963703 63.0 + 121.1886112 31.0963764 63.0 + 121.1886064 31.0963845 63.0 + 121.1886165 31.0963937 63.0 + 121.1886193 31.0963819 63.0 + 121.1886194 31.0963753 64.0 + 121.1886172 31.0963792 64.0 + 121.1886168 31.0963742 63.0 + 121.1886094 31.0963821 63.0 + 121.1886024 31.0963816 63.0 + 121.1885788 31.0963791 63.0 + 121.1885809 31.0963834 63.0 + 121.1885772 31.0963959 63.0 + 121.1886063 31.0964137 63.0 + 121.1886087 31.0964039 63.0 + 121.1886024 31.0963999 63.0 + 121.1885865 31.0964138 63.0 + 121.188586 31.0964223 63.0 + 121.1885891 31.0964143 63.0 + 121.1886006 31.0964083 63.0 + 121.1885869 31.096397 63.0 + 121.1885873 31.096395 63.0 + 121.1885858 31.0963964 63.0 + 121.1885977 31.0963926 63.0 + 121.1885845 31.0963946 63.0 + 121.1885818 31.0964094 63.0 + 121.1885938 31.0964203 63.0 + 121.1885861 31.0964113 63.0 + 121.1885831 31.0964153 63.0 + 121.1885722 31.0963834 63.0 + 121.1885665 31.0963827 63.0 + 121.1885642 31.0963822 63.0 + 121.1885585 31.0963739 63.0 + 121.1885626 31.0963768 63.0 + 121.1885496 31.0963628 63.0 + 121.1885386 31.0963686 63.0 + 121.1885258 31.096374 63.0 + 121.188538 31.0963796 63.0 + 121.1885611 31.0963867 63.0 + 121.1885709 31.0963918 63.0 + 121.1885801 31.096388 63.0 + 121.1885981 31.0963903 63.0 + 121.1885905 31.0963802 63.0 + 121.1885946 31.0963981 63.0 + 121.188598 31.0963791 63.0 + 121.1885991 31.0963775 63.0 + 121.1886089 31.0963672 63.0 + 121.1886112 31.0963662 63.0 + 121.188602 31.0963633 63.0 + 121.1886015 31.0963733 63.0 + 121.1885923 31.0964051 63.0 + 121.188591 31.0964153 63.0 + 121.1885947 31.0964199 63.0 + 121.1885904 31.0964109 63.0 + 121.1885785 31.0963965 63.0 + 121.1885523 31.0964111 63.0 + 121.1885393 31.0963437 63.0 + 121.1885526 31.0963899 63.0 + 121.1886278 31.0963075 63.0 + 121.188566 31.0963673 63.0 + 121.1886521 31.0964265 64.0 + 121.1886738 31.0963882 65.0 + 121.1886802 31.0963826 66.0 + 121.1886849 31.0963858 66.0 + 121.1887192 31.0964076 66.0 + 121.1887235 31.0964181 67.0 + 121.188727 31.0964265 67.0 + 121.1888111 31.0964584 67.0 + 121.1886416 31.0964983 67.0 + 121.1886324 31.0965237 67.0 + 121.1886821 31.096573 66.0 + 121.1886485 31.0965858 66.0 + 121.1886557 31.0965594 66.0 + 121.1886426 31.0964883 66.0 + 121.1886413 31.0964823 66.0 + 121.1886309 31.0964768 66.0 + 121.1885953 31.0965207 66.0 + 121.1886205 31.0964993 66.0 + 121.1886072 31.0964952 66.0 + 121.1885767 31.096505 66.0 + 121.1883692 31.0966379 66.0 + 121.1884948 31.0965588 66.0 + 121.1884947 31.096505 66.0 + 121.1885009 31.0964913 66.0 + 121.1884761 31.0964852 66.0 + 121.1885962 31.0965227 66.0 + 121.1884802 31.096548 66.0 + 121.1884341 31.0965431 66.0 + 121.1884275 31.0965396 66.0 + 121.1886645 31.0965807 66.0 + 121.1886569 31.0964809 67.0 + 121.1886531 31.0964722 68.0 + 121.18865 31.0964745 69.0 + 121.1886435 31.0964895 69.0 + 121.188645 31.0964947 69.0 + 121.1886393 31.0964951 69.0 + 121.1886367 31.0964973 69.0 + 121.1886176 31.0964946 69.0 + 121.1886009 31.0964975 69.0 + 121.1885792 31.0964928 69.0 + 121.1885807 31.0964916 69.0 + 121.1885828 31.0964769 69.0 + 121.1885947 31.0964812 69.0 + 121.188614 31.0964937 69.0 + 121.1886375 31.0965036 69.0 + 121.1886199 31.0965 69.0 + 121.1886108 31.0965042 69.0 + 121.1885901 31.0965076 68.0 + 121.1885868 31.0965065 68.0 + 121.1885787 31.0965043 68.0 + 121.1885593 31.0964899 68.0 + 121.1885209 31.096444 68.0 + 121.1885196 31.0964153 68.0 + 121.1885305 31.0964102 68.0 + 121.1885283 31.0964142 68.0 + 121.1885493 31.0964078 69.0 + 121.1885497 31.096376 69.0 + 121.188542 31.0963944 68.0 + 121.1885392 31.0963863 68.0 + 121.1885388 31.0963878 68.0 + 121.1885367 31.0963827 69.0 + 121.188539 31.0963843 69.0 + 121.1885416 31.0963964 69.0 + 121.1885391 31.0964109 69.0 + 121.1885377 31.0963959 68.0 + 121.1885361 31.0964005 68.0 + 121.1885519 31.0963911 68.0 + 121.1885493 31.0963941 68.0 + 121.1885468 31.0964022 68.0 + 121.1885598 31.0964066 68.0 + 121.1885828 31.0963594 68.0 + 121.1886192 31.096362 68.0 + 121.1886443 31.0963684 68.0 + 121.1886456 31.0963693 68.0 + 121.1886208 31.0963669 68.0 + 121.1886208 31.0963669 68.0 + 121.1886208 31.0963669 68.0 + 121.1886025 31.0963616 68.0 + 121.1886025 31.0963616 68.0 + 121.1886 31.0963622 68.0 + 121.1885952 31.0963642 68.0 + 121.1886025 31.0963616 68.0 + 121.1886282 31.0963773 68.0 + 121.1886265 31.0963778 68.0 + 121.1886262 31.0963779 68.0 + 121.1886262 31.0963778 68.0 + 121.188614 31.0963806 68.0 + 121.1885785 31.0964088 68.0 + 121.1885894 31.0964056 68.0 + 121.1885767 31.0964086 68.0 + 121.1885339 31.0964283 67.0 + 121.1885456 31.0964675 68.0 + 121.1885526 31.0964692 68.0 + 121.1885683 31.0965022 68.0 + 121.1885629 31.0965039 68.0 + 121.1885428 31.0965097 67.0 + 121.1885177 31.0965171 67.0 + 121.188489 31.0965177 66.0 + 121.1884783 31.0965158 66.0 + 121.1884282 31.0965086 65.0 + 121.1884256 31.0965094 65.0 + 121.1884198 31.0965109 65.0 + 121.1884024 31.0965179 64.0 + 121.1884003 31.0965202 64.0 + 121.18839 31.0965222 63.0 + 121.1883787 31.0965277 63.0 + 121.1883647 31.0965309 62.0 + 121.1883519 31.096533 61.0 + 121.1883483 31.0965338 60.0 + 121.1883483 31.0965338 60.0 + 121.1883327 31.0965345 59.0 + 121.1883234 31.0965281 60.0 + 121.1883212 31.0965281 60.0 + 121.1883169 31.0965264 60.0 + 121.1883008 31.0965325 60.0 + 121.1883019 31.0965301 60.0 + 121.1882679 31.0965401 61.0 + 121.1882606 31.096541 61.0 + 121.1882516 31.096533 61.0 + 121.1882542 31.0965214 61.0 + 121.188272 31.0965204 61.0 + 121.1882755 31.0965163 61.0 + 121.1882752 31.0965133 61.0 + 121.1882686 31.0965255 61.0 + 121.1882611 31.0965229 61.0 + 121.1882639 31.0965131 61.0 + 121.1882802 31.0965174 61.0 + 121.1883087 31.0965068 61.0 + 121.1883174 31.0965035 61.0 + 121.1883229 31.0964718 61.0 + 121.1883346 31.0964029 62.0 + 121.1883497 31.0964055 61.0 + 121.1883601 31.0964174 61.0 + 121.1883655 31.0964133 61.0 + 121.1883727 31.0963965 61.0 + 121.1884091 31.0963213 60.0 + 121.1884284 31.0962976 60.0 + 121.1884548 31.0962709 59.0 + 121.1884858 31.0962623 59.0 + 121.1885021 31.0962624 59.0 + 121.1885914 31.0962642 59.0 + 121.1886114 31.0962647 59.0 + 121.1886322 31.0962629 59.0 + 121.1886351 31.0962635 59.0 + 121.1886316 31.0962641 59.0 + 121.1886296 31.0962558 59.0 + 121.1885799 31.0962806 59.0 + 121.1885096 31.0963429 59.0 + 121.1885207 31.0963371 59.0 + 121.1885277 31.0962925 59.0 + 121.1885981 31.0962759 59.0 + 121.1886643 31.096295 58.0 + 121.1886942 31.0963009 58.0 + 121.1887398 31.0962904 57.0 + 121.188736 31.0962869 57.0 + 121.1887334 31.0962826 57.0 + 121.1887642 31.0962696 57.0 + 121.1887519 31.0962674 56.0 + 121.1887171 31.0962569 56.0 + 121.188728 31.0962453 56.0 + 121.1887474 31.0962427 56.0 + 121.1887765 31.0962268 55.0 + 121.1888319 31.0962411 54.0 + 121.1888662 31.0962602 54.0 + 121.1888994 31.0962678 53.0 + 121.18896 31.096275 53.0 + 121.1890153 31.0963032 53.0 + 121.1890755 31.0963485 53.0 + 121.1890783 31.0963469 53.0 + 121.1891338 31.0963678 53.0 + 121.1891477 31.0963754 53.0 + 121.1891432 31.0963807 53.0 + 121.1891526 31.0963957 53.0 + 121.1891645 31.0964004 53.0 + 121.1891818 31.0963985 53.0 + 121.1891894 31.0963959 53.0 + 121.1891938 31.096398 53.0 + 121.1892244 31.096434 53.0 + 121.1892317 31.0964388 53.0 + 121.1892687 31.0964819 53.0 + 121.1892537 31.0964743 53.0 + 121.1892476 31.0964635 53.0 + 121.1892302 31.0964325 52.0 + 121.1892229 31.0964001 52.0 + 121.1892163 31.0963649 51.0 + 121.1891992 31.0963346 51.0 + 121.1891756 31.0963234 50.0 + 121.1891493 31.0963351 50.0 + 121.1891011 31.0963348 50.0 + 121.1890859 31.0963286 49.0 + 121.1890335 31.0962993 48.0 + 121.1890143 31.0962745 48.0 + 121.1890366 31.0962584 48.0 + 121.1890462 31.0962497 48.0 + 121.1891004 31.0962155 48.0 + 121.1891508 31.0962016 48.0 + 121.1892231 31.0962086 48.0 + 121.1892751 31.0962288 48.0 + 121.1892929 31.0962799 48.0 + 121.1893351 31.0963007 47.0 + 121.1893541 31.0963048 47.0 + 121.1893681 31.0963228 46.0 + 121.1893693 31.0963227 46.0 + 121.1894044 31.0963624 45.0 + 121.1894272 31.0963761 45.0 + 121.1894546 31.0963954 44.0 + 121.1894814 31.096418 44.0 + 121.1895073 31.0964429 43.0 + 121.1895516 31.0964685 42.0 + 121.1895883 31.096479 42.0 + 121.189625 31.0964998 41.0 + 121.1896362 31.0965069 41.0 + 121.1896682 31.0965258 41.0 + 121.1897307 31.09656 40.0 + 121.1897599 31.0965818 40.0 + 121.1897962 31.0965991 39.0 + 121.1898154 31.0966063 39.0 + 121.1898776 31.0966536 38.0 + 121.1898841 31.0966606 38.0 + 121.1899376 31.0967104 37.0 + 121.1899444 31.0967125 37.0 + 121.1899501 31.0967188 37.0 + 121.1899706 31.0967321 37.0 + 121.1899923 31.0967511 36.0 + 121.1900076 31.096759 36.0 + 121.1900612 31.0968069 35.0 + 121.1900767 31.0968253 35.0 + 121.1901037 31.0968531 34.0 + 121.1901073 31.0968529 34.0 + 121.1901169 31.0968553 34.0 + 121.1901221 31.0968629 33.0 + 121.1901329 31.0968817 33.0 + 121.1901348 31.0968935 33.0 + 121.1901464 31.0969284 32.0 + 121.1901545 31.0969546 32.0 + 121.1901742 31.0969842 31.0 + 121.1901877 31.0970121 31.0 + 121.190195 31.0970353 30.0 + 121.1902067 31.0970676 29.0 + 121.1902219 31.0971043 29.0 + 121.190229 31.0971105 29.0 + 121.1902363 31.0971214 28.0 + 121.1902395 31.0971401 27.0 + 121.1902419 31.0971471 27.0 + 121.1902551 31.0972007 26.0 + 121.1902684 31.0972675 25.0 + 121.1902727 31.0972805 25.0 + 121.1902716 31.0973073 24.0 + 121.1902684 31.0973348 23.0 + 121.190268 31.0973685 23.0 + 121.1902647 31.0973869 22.0 + 121.1902755 31.0974265 22.0 + 121.1902493 31.0974793 21.0 + 121.1902375 31.0975157 21.0 + 121.1902384 31.0975213 21.0 + 121.1902405 31.0975607 20.0 + 121.1902345 31.0975768 20.0 + 121.1902208 31.0976322 19.0 + 121.1902171 31.0976627 17.0 + 121.1902145 31.0976685 17.0 + 121.1902323 31.0976949 16.0 + 121.1902405 31.0977085 16.0 + 121.1902516 31.0977259 15.0 + 121.1902549 31.0977333 15.0 + 121.1902731 31.0977521 14.0 + 121.1902887 31.0977774 14.0 + 121.1902971 31.0978003 13.0 + 121.1903171 31.097843 12.0 + 121.1903227 31.0978475 12.0 + 121.1903684 31.0978807 11.0 + 121.1903769 31.0978855 11.0 + 121.1904036 31.097916 11.0 + 121.1904596 31.0979677 10.0 + 121.1905129 31.0979864 9.0 + 121.1905244 31.0979935 9.0 + 121.1905546 31.0980202 8.0 + 121.1905687 31.0980267 8.0 + 121.1906144 31.0980582 7.0 + 121.1906214 31.0980684 6.0 + 121.1906353 31.098086 6.0 + 121.1906592 31.0981003 4.0 + 121.1906725 31.0981006 4.0 + 121.1907781 31.0980935 4.0 + 121.1907852 31.0980935 3.0 + 121.1908011 31.098106 4.0 + 121.1907512 31.0981181 4.0 + 121.1907389 31.09811 4.0 + 121.19074 31.0981103 4.0 + 121.1907516 31.0981033 4.0 + 121.190746 31.0981108 5.0 + 121.1907418 31.0981112 5.0 + 121.1907641 31.0981031 5.0 + 121.1907806 31.0980926 5.0 + 121.1907823 31.0980875 5.0 + 121.1907916 31.0980837 5.0 + 121.190797 31.0980857 6.0 + 121.1908044 31.0980796 6.0 + 121.1908024 31.0980857 5.0 + 121.1907721 31.0980635 5.0 + 121.1907573 31.097985 6.0 + 121.1907597 31.0979769 6.0 + 121.190759 31.0979538 7.0 + 121.1907556 31.097911 7.0 + 121.1907514 31.0978907 6.0 + 121.1907413 31.0978523 6.0 + 121.1907347 31.0978352 6.0 + 121.1907095 31.0977922 6.0 + 121.1907042 31.0978135 6.0 + 121.1907107 31.0978269 7.0 + 121.1907129 31.0978446 7.0 + 121.1907253 31.097826 8.0 + 121.1907251 31.0978166 8.0 + 121.1907275 31.0977891 8.0 + 121.1907267 31.0977717 8.0 + 121.1907324 31.0977166 8.0 + 121.1907422 31.0976406 8.0 + 121.1907663 31.0975903 8.0 + 121.1907641 31.097591 8.0 + 121.1907834 31.0975546 8.0 + 121.1908184 31.0975128 7.0 + 121.1908349 31.0975022 7.0 + 121.1908576 31.0974821 6.0 + 121.1908702 31.0974672 6.0 + 121.1908923 31.0974464 6.0 + 121.1909015 31.0974404 5.0 + 121.1909505 31.0974074 5.0 + 121.1909671 31.0973894 4.0 + 121.1910212 31.0973496 4.0 + 121.1910407 31.0973307 3.0 + 121.1910589 31.0973106 2.0 + 121.1910781 31.0972984 1.0 + 121.1910926 31.0972904 1.0 + 121.1911122 31.0972882 0.0 + 121.1911122 31.0972908 0.0 + 121.1911537 31.0973304 0.0 + 121.1912017 31.0973479 0.0 + 121.1912551 31.0973641 -1.0 + 121.1913127 31.0974055 -1.0 + 121.1913191 31.097413 -1.0 + 121.1913572 31.0974637 -2.0 + 121.1913917 31.0974785 -2.0 + 121.1914497 31.0974996 -3.0 + 121.191489 31.0975029 -3.0 + 121.191556 31.097502 -4.0 + 121.1916025 31.0975014 -5.0 + 121.1916215 31.0975011 -5.0 + 121.1916933 31.0975006 -5.0 + 121.1917068 31.0975001 -5.0 + 121.1918097 31.0974992 -5.0 + 121.1918846 31.0975075 -5.0 + 121.1919644 31.0975426 -5.0 + 121.1920069 31.0975539 -5.0 + 121.1920096 31.0975456 -5.0 + 121.1920045 31.0975398 -5.0 + 121.1920101 31.0974511 -5.0 + 121.1920263 31.0973656 -5.0 + 121.1920276 31.0972845 -5.0 + 121.1920576 31.0971449 -5.0 + 121.192049 31.0970626 -5.0 + 121.192044 31.0970342 -5.0 + 121.1920481 31.097042 -5.0 + 121.1920488 31.0970299 -5.0 + 121.1920432 31.0969448 -5.0 + 121.1920241 31.0968365 -5.0 + 121.1920167 31.096766 -5.0 + 121.1919923 31.096682 -4.0 + 121.1919917 31.0965871 -4.0 + 121.1919913 31.0964937 -4.0 + 121.1919692 31.0963856 -4.0 + 121.1919651 31.0963585 -4.0 + 121.1919639 31.0963462 -4.0 + 121.1919416 31.0963004 -4.0 + 121.1919279 31.0962249 -3.0 + 121.1919452 31.0961195 -3.0 + 121.1919706 31.0960378 -3.0 + 121.1919907 31.0959378 -3.0 + 121.1920054 31.0958757 -3.0 + 121.1920089 31.0958647 -3.0 + 121.19201 31.0958565 -3.0 + 121.1920344 31.0957613 -2.0 + 121.1920471 31.09569 -2.0 + 121.1920537 31.0956168 -2.0 + 121.192085 31.0955373 -2.0 + 121.1921172 31.095449 -1.0 + 121.1921164 31.0954409 -1.0 + 121.1921344 31.0953793 -1.0 + 121.1921639 31.0952943 -1.0 + 121.1921762 31.0952779 -1.0 + 121.192226 31.0951675 -1.0 + 121.192288 31.0950955 -1.0 + 121.1923006 31.0950773 0.0 + 121.1923479 31.095034 0.0 + 121.1924332 31.0949328 0.0 + 121.1924919 31.0948665 0.0 + 121.1925549 31.0948183 0.0 + 121.1925804 31.0948068 0.0 + 121.1926876 31.0947733 0.0 + 121.192699 31.0947573 0.0 + 121.1927396 31.0947102 0.0 + 121.1927964 31.0946458 0.0 + 121.1928284 31.0945811 0.0 + 121.1928713 31.0945369 0.0 + 121.1929305 31.094492 0.0 + 121.1929687 31.0944432 0.0 + 121.192991 31.0944152 0.0 + 121.1930168 31.0943717 0.0 + 121.1930492 31.0943373 0.0 + 121.1931387 31.0942529 0.0 + 121.1931667 31.0942304 0.0 + 121.1932055 31.0942079 0.0 + 121.1932627 31.094138 0.0 + 121.1933328 31.0940766 0.0 + 121.193364 31.0940507 0.0 + 121.1934204 31.0939861 0.0 + 121.1935412 31.0938648 0.0 + 121.1936196 31.0937674 0.0 + 121.193629 31.0937579 0.0 + 121.1936639 31.0937405 0.0 + 121.1936925 31.0937139 0.0 + 121.193701 31.0937055 0.0 + 121.1937098 31.0936949 0.0 + 121.1937843 31.0936339 0.0 + 121.1938572 31.0935743 0.0 + 121.1939504 31.0934952 0.0 + 121.1939753 31.0934803 0.0 + 121.1939865 31.0934643 0.0 + 121.194039 31.0934228 0.0 + 121.1940615 31.0933658 0.0 + 121.1940615 31.0933658 0.0 + 121.1940419 31.0933534 0.0 + 121.1940419 31.0933534 0.0 + 121.1940419 31.0933534 0.0 + 121.1940419 31.0933534 1.0 + 121.1940346 31.0933781 1.0 + 121.1940359 31.0933855 1.0 + 121.1940587 31.093399 1.0 + 121.1940696 31.0933965 1.0 + 121.1940765 31.0933858 1.0 + 121.1941131 31.0933295 1.0 + 121.1941435 31.0932902 1.0 + 121.1941696 31.0932705 1.0 + 121.1941817 31.0932586 1.0 + 121.1942125 31.0932297 1.0 + 121.1942744 31.0931804 1.0 + 121.1943422 31.0931215 1.0 + 121.1943932 31.0930616 1.0 + 121.1943996 31.093056 1.0 + 121.1944231 31.0930345 1.0 + 121.1944283 31.093029 1.0 + 121.1944356 31.0930219 1.0 + 121.1944661 31.0929924 1.0 + 121.1945385 31.0929323 1.0 + 121.1945648 31.09291 1.0 + 121.1945995 31.0928745 1.0 + 121.1946222 31.0928416 1.0 + 121.1946358 31.0928273 1.0 + 121.1947054 31.0927432 1.0 + 121.1947084 31.0927354 1.0 + 121.1947084 31.0927354 2.0 + 121.1946745 31.0927379 1.0 + 121.1946772 31.0927462 1.0 + 121.1946777 31.0927463 1.0 + 121.1947292 31.0927158 2.0 + 121.1947493 31.0926927 2.0 + 121.1948076 31.0926553 2.0 + 121.1948825 31.0925951 2.0 + 121.1949744 31.0925126 2.0 + 121.1950247 31.0924525 2.0 + 121.1950373 31.0924433 2.0 + 121.1951268 31.0923632 1.0 + 121.1952028 31.0922896 1.0 + 121.195217 31.0922778 1.0 + 121.195285 31.0922192 1.0 + 121.1952979 31.092195 1.0 + 121.1953355 31.0921708 1.0 + 121.1954243 31.092108 1.0 + 121.1955142 31.0920303 1.0 + 121.1955746 31.0919791 1.0 + 121.19566 31.0919061 2.0 + 121.1957405 31.0917954 2.0 + 121.1958067 31.0917421 2.0 + 121.1958866 31.0916958 2.0 + 121.1959016 31.0916878 2.0 + 121.1959608 31.0916569 2.0 + 121.1959903 31.0916358 2.0 + 121.1960706 31.0915917 2.0 + 121.1960784 31.0915871 2.0 + 121.1961566 31.0915322 2.0 + 121.1961991 31.0915099 3.0 + 121.1962475 31.0914993 3.0 + 121.1963301 31.0914601 3.0 + 121.1963835 31.0914361 3.0 + 121.1964114 31.0914202 3.0 + 121.1964957 31.0913801 3.0 + 121.1965389 31.09136 4.0 + 121.1965844 31.0913427 3.0 + 121.1966658 31.0912922 4.0 + 121.1967601 31.091251 4.0 + 121.1967811 31.0912486 4.0 + 121.1968688 31.0912254 4.0 + 121.1969915 31.0911504 4.0 + 121.1971157 31.0910652 4.0 + 121.1971938 31.0909829 4.0 + 121.1972328 31.0909271 4.0 + 121.1973012 31.09088 3.0 + 121.1974145 31.0908285 3.0 + 121.197507 31.0907751 3.0 + 121.1976081 31.0907218 3.0 + 121.1977078 31.0906841 3.0 + 121.1977902 31.0906449 3.0 + 121.1978707 31.0905976 2.0 + 121.1979426 31.0905718 2.0 + 121.1980637 31.0905493 2.0 + 121.1980675 31.0905694 2.0 + 121.1980928 31.0905898 2.0 + 121.1981377 31.0906445 2.0 + 121.1981658 31.0906805 2.0 + 121.1981704 31.0907017 2.0 + 121.1981587 31.0906879 2.0 + 121.1981328 31.0906834 2.0 + 121.1981282 31.0906874 2.0 + 121.1981183 31.0906913 2.0 + 121.1981444 31.0906807 2.0 + 121.1982089 31.0907128 2.0 + 121.1982416 31.0907918 2.0 + 121.1982781 31.0908518 2.0 + 121.1983204 31.0909353 2.0 + 121.1983328 31.0910019 2.0 + 121.1983417 31.0910224 2.0 + 121.198368 31.0910692 3.0 + 121.1983779 31.0910861 3.0 + 121.1983976 31.0911121 3.0 + 121.1984273 31.0911381 2.0 + 121.1984882 31.0912166 2.0 + 121.1985141 31.0912371 2.0 + 121.1985766 31.0913207 2.0 + 121.1986385 31.0913982 3.0 + 121.1986804 31.0914877 3.0 + 121.1987246 31.091545 3.0 + 121.1987832 31.0916049 3.0 + 121.1988191 31.091646 3.0 + 121.1988485 31.0916783 3.0 + 121.1989404 31.0917881 3.0 + 121.1989597 31.0918136 3.0 + 121.1990334 31.091869 3.0 + 121.1990953 31.0919386 3.0 + 121.1991457 31.0919907 3.0 + 121.1991885 31.0920293 3.0 + 121.1992864 31.0921102 3.0 + 121.1993281 31.0921361 3.0 + 121.1993678 31.0921758 3.0 + 121.1994373 31.0922372 3.0 + 121.1995102 31.0923012 3.0 + 121.1995887 31.0923499 3.0 + 121.199679 31.0924014 3.0 + 121.1996946 31.0924083 3.0 + 121.1997728 31.09245 3.0 + 121.1997887 31.0924619 3.0 + 121.1998464 31.092521 3.0 + 121.1999238 31.0925734 3.0 + 121.1999944 31.0926243 4.0 + 121.2000688 31.0926696 4.0 + 121.2001368 31.092725 4.0 + 121.200189 31.0927421 4.0 + 121.2002104 31.092758 4.0 + 121.2002861 31.0928192 4.0 + 121.2003594 31.0928542 5.0 + 121.2004455 31.0929236 5.0 + 121.2004991 31.0929768 5.0 + 121.2005675 31.0930168 5.0 + 121.200584 31.0930311 5.0 + 121.2005912 31.0930369 5.0 + 121.2006203 31.0930602 5.0 + 121.200679 31.0931199 5.0 + 121.2007366 31.0931649 6.0 + 121.2007672 31.0931793 6.0 + 121.2008464 31.0932319 6.0 + 121.2009217 31.093283 6.0 + 121.2009399 31.0932971 6.0 + 121.2010139 31.0933498 6.0 + 121.2010959 31.0933978 7.0 + 121.2011445 31.0934251 7.0 + 121.2011675 31.093437 7.0 + 121.2011849 31.0934482 7.0 + 121.2012326 31.093481 7.0 + 121.2012842 31.0935144 7.0 + 121.2013844 31.0935844 7.0 + 121.2014823 31.0936627 7.0 + 121.2015396 31.0936951 6.0 + 121.2015719 31.0937136 6.0 + 121.2015983 31.0937331 6.0 + 121.2016876 31.093792 5.0 + 121.2017191 31.0938181 5.0 + 121.2017647 31.0938486 5.0 + 121.2018496 31.0939041 5.0 + 121.201963 31.0939899 4.0 + 121.2020126 31.0940226 4.0 + 121.2020408 31.0940459 4.0 + 121.2021012 31.0940956 4.0 + 121.2021854 31.0941439 4.0 + 121.2022075 31.0941578 4.0 + 121.202284 31.0942112 3.0 + 121.2023011 31.0942251 3.0 + 121.2023722 31.0942949 3.0 + 121.20238 31.0943047 3.0 + 121.202448 31.0943773 3.0 + 121.2025219 31.0944385 3.0 + 121.2026043 31.0944974 3.0 + 121.202685 31.0945734 3.0 + 121.2026898 31.0946424 2.0 + 121.2026939 31.0947527 2.0 + 121.2027286 31.0948555 2.0 + 121.2027648 31.094885 2.0 + 121.2028049 31.0949243 2.0 + 121.2028909 31.0949837 2.0 + 121.202951 31.094998 3.0 + 121.2029728 31.0950027 3.0 + 121.2030823 31.0950068 3.0 + 121.2031377 31.095049 3.0 + 121.2031474 31.0950806 2.0 + 121.2031806 31.0951415 3.0 + 121.2032585 31.0952129 3.0 + 121.2033263 31.0953082 3.0 + 121.2033948 31.0953992 3.0 + 121.2034076 31.0954172 3.0 + 121.2034549 31.0954889 3.0 + 121.2035161 31.0955902 3.0 + 121.2035595 31.095657 3.0 + 121.2036219 31.0957489 3.0 + 121.2036293 31.0957585 3.0 + 121.2036807 31.0958401 2.0 + 121.2037376 31.0959419 2.0 + 121.2037859 31.0960655 2.0 + 121.2038002 31.0960958 2.0 + 121.2038321 31.0961359 2.0 + 121.2038813 31.0962315 2.0 + 121.2039204 31.0963524 3.0 + 121.2039518 31.0964214 3.0 + 121.2039795 31.0965024 2.0 + 121.2040307 31.0966114 2.0 + 121.2040645 31.0967091 3.0 + 121.2040666 31.0967186 3.0 + 121.2040912 31.0968235 3.0 + 121.2041195 31.096922 3.0 + 121.2041389 31.0970112 3.0 + 121.2041785 31.0971324 3.0 + 121.2041988 31.0972256 3.0 + 121.2042052 31.0972437 3.0 + 121.2042222 31.0973398 3.0 + 121.2042313 31.097366 3.0 + 121.2042447 31.0974583 3.0 + 121.2042536 31.0975393 3.0 + 121.2042596 31.0975579 3.0 + 121.2042624 31.0976496 3.0 + 121.2042712 31.09773 2.0 + 121.2042726 31.0977388 2.0 + 121.2042755 31.0978164 2.0 + 121.2042931 31.0978878 2.0 + 121.2043044 31.0979315 2.0 + 121.2043217 31.0979652 2.0 + 121.2043334 31.0979897 2.0 + 121.2043211 31.0980104 2.0 + 121.2042947 31.0980456 2.0 + 121.2042858 31.0981124 2.0 + 121.2042783 31.0981735 2.0 + 121.2042785 31.098189 2.0 + 121.2042785 31.0982823 2.0 + 121.2042863 31.0983508 2.0 + 121.2042728 31.0984435 2.0 + 121.2042772 31.0985551 2.0 + 121.2042778 31.0986542 2.0 + 121.2042707 31.0987406 2.0 + 121.2042758 31.0988148 2.0 + 121.2042723 31.0988841 3.0 + 121.2042694 31.0988969 3.0 + 121.2042626 31.0989631 3.0 + 121.2042644 31.0989837 3.0 + 121.2042749 31.0990924 3.0 + 121.2042709 31.0991417 3.0 + 121.204264 31.0991685 3.0 + 121.2042568 31.0992566 3.0 + 121.2042626 31.0993403 3.0 + 121.2042552 31.0994515 3.0 + 121.2042539 31.0995069 3.0 + 121.2042671 31.0995696 3.0 + 121.2042743 31.099603 3.0 + 121.2042708 31.099641 3.0 + 121.2042621 31.0997518 3.0 + 121.2042561 31.0998427 3.0 + 121.2042518 31.0998565 3.0 + 121.2042327 31.0998616 3.0 + 121.204224 31.0998642 3.0 + 121.2042353 31.0998831 3.0 + 121.2042347 31.0999026 3.0 + 121.2042453 31.0999192 3.0 + 121.2042378 31.1000234 3.0 + 121.2042405 31.1000931 3.0 + 121.2042601 31.1001701 3.0 + 121.2042599 31.1002325 3.0 + 121.2042606 31.1003142 3.0 + 121.2042557 31.1003941 3.0 + 121.2042343 31.1004966 3.0 + 121.2042308 31.1006158 3.0 + 121.204228 31.1007041 3.0 + 121.2042223 31.1007952 3.0 + 121.2042262 31.1008607 3.0 + 121.2042244 31.1009347 3.0 + 121.2042257 31.1009475 3.0 + 121.2042241 31.1009929 3.0 + 121.2042283 31.1010614 3.0 + 121.2042347 31.1010905 3.0 + 121.2042475 31.1011449 3.0 + 121.2042795 31.1012472 3.0 + 121.2042909 31.1013371 3.0 + 121.2043127 31.1014452 3.0 + 121.2043333 31.1015131 3.0 + 121.204356 31.1015943 2.0 + 121.2043807 31.1016651 3.0 + 121.2043926 31.1016818 3.0 + 121.2044133 31.1017182 3.0 + 121.20445 31.1018268 2.0 + 121.2045097 31.1019021 2.0 + 121.2045404 31.1019921 2.0 + 121.2045884 31.1020667 2.0 + 121.2046525 31.1021748 2.0 + 121.2046877 31.1022195 2.0 + 121.2046918 31.102226 2.0 + 121.2047319 31.1023118 2.0 + 121.204797 31.1023761 2.0 + 121.2048738 31.1024527 2.0 + 121.2049224 31.1025057 2.0 + 121.2049923 31.1025856 2.0 + 121.2049984 31.1025906 2.0 + 121.2050754 31.1026727 2.0 + 121.2050932 31.1026871 2.0 + 121.2051804 31.102753 2.0 + 121.2052623 31.1028361 2.0 + 121.2053042 31.1028682 2.0 + 121.2053564 31.1029059 2.0 + 121.2054491 31.1029729 2.0 + 121.205552 31.103038 2.0 + 121.2056378 31.1030886 2.0 + 121.2057082 31.1031335 2.0 + 121.2057248 31.1031453 2.0 + 121.2058072 31.1031878 2.0 + 121.2058932 31.1032322 2.0 + 121.2059923 31.1032687 2.0 + 121.2060884 31.1033296 2.0 + 121.2061826 31.1033713 2.0 + 121.2062479 31.103399 2.0 + 121.2063089 31.1034194 2.0 + 121.2063768 31.1034417 2.0 + 121.2064555 31.1034511 2.0 + 121.2065389 31.1034536 2.0 + 121.2066203 31.1034862 2.0 + 121.2067061 31.1035233 2.0 + 121.2068095 31.1035563 2.0 + 121.2069124 31.1035613 2.0 + 121.2070017 31.1035687 2.0 + 121.2070968 31.10361 2.0 + 121.2071915 31.1036075 2.0 + 121.2072935 31.1036086 2.0 + 121.2073172 31.1036066 2.0 + 121.2074301 31.1036141 2.0 + 121.2074883 31.1036116 2.0 + 121.2075295 31.1036137 2.0 + 121.2076403 31.1036243 2.0 + 121.2077688 31.1036214 2.0 + 121.2078409 31.1036003 2.0 + 121.2079834 31.1035777 2.0 + 121.2080716 31.1035733 1.0 + 121.2081823 31.1035602 1.0 + 121.2082642 31.1035495 1.0 + 121.20837 31.1035297 1.0 + 121.2083761 31.1035297 1.0 + 121.208405 31.1035233 1.0 + 121.2084908 31.1034938 1.0 + 121.2086141 31.1034677 1.0 + 121.2086674 31.1034554 1.0 + 121.2087224 31.1034436 1.0 + 121.2088383 31.1034178 1.0 + 121.2089707 31.1033966 1.0 + 121.2091124 31.1033532 1.0 + 121.2092035 31.1033437 1.0 + 121.2093068 31.1033326 1.0 + 121.2093925 31.1033019 1.0 + 121.209493 31.1032835 1.0 + 121.2095974 31.103271 1.0 + 121.2096991 31.1032532 1.0 + 121.2097649 31.1032464 1.0 + 121.209831 31.1032392 1.0 + 121.2099107 31.1032244 1.0 + 121.2100341 31.1032146 1.0 + 121.2100963 31.1032085 1.0 + 121.2101735 31.1032044 1.0 + 121.2102924 31.1031961 1.0 + 121.21039 31.1031951 1.0 + 121.2104848 31.1031821 1.0 + 121.210584 31.1031913 1.0 + 121.2106936 31.1031866 2.0 + 121.2107894 31.1031886 2.0 + 121.2108824 31.1031821 2.0 + 121.2109214 31.1031856 2.0 + 121.2109918 31.1031944 2.0 + 121.2111127 31.1032059 2.0 + 121.2112072 31.103207 3.0 + 121.2113424 31.1032303 3.0 + 121.2114698 31.1032415 3.0 + 121.2115743 31.1032564 3.0 + 121.2116875 31.103274 4.0 + 121.2117705 31.1032824 4.0 + 121.2117933 31.1032825 4.0 + 121.2118635 31.1033004 4.0 + 121.2120081 31.1033199 5.0 + 121.2120901 31.1033182 5.0 + 121.2121043 31.1033204 5.0 + 121.2121369 31.1033196 5.0 + 121.2121438 31.103321 5.0 + 121.2121854 31.1033354 6.0 + 121.2122668 31.1033581 6.0 + 121.2122764 31.1033574 6.0 + 121.2123561 31.1033717 6.0 + 121.2124045 31.103382 7.0 + 121.2124274 31.1033877 7.0 + 121.212474 31.103397 7.0 + 121.2125072 31.1034044 7.0 + 121.2125746 31.1034273 7.0 + 121.2125837 31.1034312 7.0 + 121.2126081 31.1034377 7.0 + 121.2127129 31.1034651 7.0 + 121.212849 31.1035071 7.0 + 121.2129359 31.1035339 7.0 + 121.2129655 31.1035422 7.0 + 121.2130741 31.1035779 6.0 + 121.2130864 31.103581 6.0 + 121.2131842 31.1036139 6.0 + 121.2132132 31.103629 6.0 + 121.2132771 31.1036521 5.0 + 121.2133284 31.1036673 5.0 + 121.2133626 31.1036832 5.0 + 121.2134141 31.1037091 4.0 + 121.2134799 31.1037477 4.0 + 121.21351 31.1037613 4.0 + 121.2136188 31.1038011 3.0 + 121.2136495 31.1038188 3.0 + 121.2136611 31.1038248 3.0 + 121.213719 31.1038535 3.0 + 121.2138467 31.1039063 3.0 + 121.2139555 31.1039436 2.0 + 121.2139795 31.103956 2.0 + 121.2140802 31.1039812 2.0 + 121.214182 31.1040336 1.0 + 121.2142352 31.1040582 1.0 + 121.2143275 31.1041114 1.0 + 121.214355 31.1041192 1.0 + 121.214368 31.1041251 1.0 + 121.2144487 31.1041487 1.0 + 121.2145565 31.1042003 1.0 + 121.2145606 31.1042034 1.0 + 121.2146449 31.1042332 0.0 + 121.2146672 31.1042439 0.0 + 121.2147866 31.1042813 0.0 + 121.2148071 31.1042969 0.0 + 121.2148493 31.1043223 0.0 + 121.2149343 31.1043634 0.0 + 121.2150336 31.1044035 0.0 + 121.2151445 31.1044496 0.0 + 121.2152758 31.1045048 0.0 + 121.2153852 31.1045709 0.0 + 121.2154772 31.1046153 0.0 + 121.2155604 31.1046489 0.0 + 121.2156602 31.1046955 0.0 + 121.2156919 31.1047086 0.0 + 121.2157861 31.1047725 0.0 + 121.2158278 31.1048016 0.0 + 121.2158965 31.1048529 0.0 + 121.2159876 31.1048753 0.0 + 121.2161341 31.1049371 0.0 + 121.2162261 31.1049698 0.0 + 121.2163258 31.1049888 0.0 + 121.2164089 31.1050173 0.0 + 121.2164374 31.105034 0.0 + 121.2164798 31.1050537 0.0 + 121.2165935 31.1050969 0.0 + 121.2167144 31.1051545 0.0 + 121.2167744 31.1051792 1.0 + 121.2168328 31.1051972 1.0 + 121.2169103 31.1052417 1.0 + 121.2169569 31.105267 1.0 + 121.2169854 31.1052834 1.0 + 121.2169925 31.1052873 1.0 + 121.2170321 31.1053034 1.0 + 121.2170938 31.1053202 1.0 + 121.2171353 31.1053397 1.0 + 121.2172071 31.1053696 1.0 + 121.2172407 31.105383 1.0 + 121.2172986 31.1054039 1.0 + 121.2173074 31.1054054 1.0 + 121.2173848 31.105435 1.0 + 121.2174784 31.1054796 2.0 + 121.2175814 31.1055308 2.0 + 121.2176652 31.1055484 2.0 + 121.2177121 31.1055712 2.0 + 121.2177455 31.1055877 2.0 + 121.2177949 31.105614 2.0 + 121.2179101 31.1056657 2.0 + 121.2179628 31.1056888 2.0 + 121.2180089 31.1057204 2.0 + 121.2180467 31.1057355 2.0 + 121.2181448 31.1057694 2.0 + 121.2181873 31.1057824 2.0 + 121.2182271 31.1058048 2.0 + 121.2182372 31.1057982 2.0 + 121.2182556 31.1057974 2.0 + 121.2182812 31.1058038 2.0 + 121.2183979 31.1058545 2.0 + 121.218496 31.1059081 2.0 + 121.2185808 31.1059502 2.0 + 121.2186616 31.1059812 2.0 + 121.21879 31.1060307 2.0 + 121.2189092 31.1060886 2.0 + 121.219004 31.1061293 2.0 + 121.2190965 31.1061586 2.0 + 121.21918 31.1062047 2.0 + 121.2193177 31.1062674 2.0 + 121.2194227 31.1063018 2.0 + 121.2195187 31.1063374 2.0 + 121.2195509 31.1063508 2.0 + 121.2196255 31.1063702 2.0 + 121.2196931 31.1064087 2.0 + 121.2197026 31.1064134 2.0 + 121.2198071 31.1064523 2.0 + 121.2199088 31.1064875 2.0 + 121.2200279 31.1065354 3.0 + 121.2201386 31.1065703 3.0 + 121.2202489 31.1066144 3.0 + 121.2202633 31.1066197 3.0 + 121.2203378 31.1066416 3.0 + 121.2204477 31.106678 3.0 + 121.2205695 31.1067129 4.0 + 121.2206796 31.1067365 4.0 + 121.2207057 31.1067408 4.0 + 121.2209004 31.1068034 4.0 + 121.2209634 31.1068282 4.0 + 121.2210052 31.1068369 4.0 + 121.2211211 31.1068505 3.0 + 121.2212215 31.1068797 3.0 + 121.22124 31.1068847 3.0 + 121.2212924 31.1068958 3.0 + 121.2213712 31.1069056 3.0 + 121.2214819 31.106932 3.0 + 121.2215959 31.1069552 2.0 + 121.2217183 31.1069782 2.0 + 121.2218232 31.1070056 2.0 + 121.2219467 31.1070201 2.0 + 121.2220469 31.1070386 2.0 + 121.2220908 31.1070479 2.0 + 121.2221758 31.1070484 2.0 + 121.2222813 31.1070595 2.0 + 121.2224182 31.1070807 2.0 + 121.2225306 31.1071005 2.0 + 121.2226358 31.1071171 2.0 + 121.2227418 31.1071292 2.0 + 121.2228502 31.1071305 2.0 + 121.2229538 31.1071458 2.0 + 121.222981 31.1071488 2.0 + 121.2231247 31.1071532 2.0 + 121.2232203 31.1071708 2.0 + 121.2233211 31.1071876 2.0 + 121.2233931 31.1072107 2.0 + 121.2234749 31.1072368 2.0 + 121.2235398 31.1072509 2.0 + 121.2236357 31.1072656 2.0 + 121.2237541 31.1072909 2.0 + 121.2238489 31.1072937 2.0 + 121.2239644 31.1073111 2.0 + 121.224056 31.1073222 2.0 + 121.2240781 31.1073312 2.0 + 121.2240804 31.1073281 2.0 + 121.2241026 31.1073131 2.0 + 121.2241728 31.1073162 2.0 + 121.2242123 31.107316 2.0 + 121.2242305 31.1072875 2.0 + 121.2242391 31.1072674 2.0 + 121.2242491 31.1072454 2.0 + 121.224261 31.1071349 2.0 + 121.2242576 31.1070912 2.0 + 121.2242637 31.1070553 2.0 + 121.2242718 31.1069885 2.0 + 121.2242817 31.1069546 2.0 + 121.2242945 31.1068864 3.0 + 121.2243157 31.1068854 3.0 + 121.2243153 31.1068926 3.0 + 121.2243214 31.1069341 3.0 + 121.224301 31.1069332 2.0 + 121.2242942 31.1069463 2.0 + 121.2242964 31.1069444 2.0 + 121.2243134 31.1069343 2.0 + 121.2243115 31.1069353 2.0 + 121.2243343 31.106947 2.0 + 121.2243343 31.106947 2.0 + 121.2243343 31.106947 2.0 + 121.2243343 31.106947 2.0 + 121.2243306 31.1069335 2.0 + 121.2243212 31.1069276 2.0 + 121.2243217 31.1069275 2.0 + 121.224323 31.1069286 2.0 + 121.2243229 31.1069295 2.0 + 121.2243739 31.1069435 2.0 + 121.2245436 31.1069601 2.0 + 121.2246697 31.1069692 3.0 + 121.2247632 31.1069668 2.0 + 121.2247679 31.1069596 2.0 + 121.2247658 31.1069534 2.0 + 121.2247627 31.1069453 2.0 + 121.2247603 31.1069404 2.0 + 121.2247585 31.1069367 2.0 + 121.224757 31.1069283 2.0 + 121.2247674 31.1068732 2.0 + 121.2247757 31.1067804 2.0 + 121.2248122 31.1067222 2.0 + 121.2248197 31.1067228 2.0 + 121.2248758 31.1067219 2.0 + 121.2248823 31.1067217 2.0 + 121.2248866 31.1067348 2.0 + 121.2249046 31.1067477 2.0 + 121.2249212 31.1067449 2.0 + 121.2249332 31.1067332 2.0 + 121.2249351 31.1067058 2.0 + 121.2249383 31.1067064 2.0 + 121.2249448 31.1067025 3.0 + 121.2249447 31.1067028 2.0 + 121.2249507 31.1066509 3.0 + 121.2249507 31.1066509 3.0 + 121.2249501 31.1066558 3.0 + 121.2249531 31.1066569 3.0 + 121.2249531 31.1066561 3.0 + 121.2249616 31.1066455 3.0 + 121.2249507 31.1066509 2.0 + 121.2249673 31.1066393 2.0 + 121.2249673 31.1066393 2.0 + 121.2249824 31.106648 3.0 + 121.2249725 31.1066443 3.0 + 121.2249772 31.106644 3.0 + 121.2249514 31.1066616 3.0 + 121.2249508 31.106665 3.0 + 121.2249708 31.1066588 3.0 + 2025-01-19T04:15:13Z + 2025-01-19T04:15:15Z + 2025-01-19T04:15:17Z + 2025-01-19T04:15:18Z + 2025-01-19T04:15:21Z + 2025-01-19T04:15:24Z + 2025-01-19T04:15:25Z + 2025-01-19T04:15:28Z + 2025-01-19T04:15:31Z + 2025-01-19T04:15:35Z + 2025-01-19T04:15:37Z + 2025-01-19T04:15:45Z + 2025-01-19T04:15:51Z + 2025-01-19T04:15:57Z + 2025-01-19T04:16:05Z + 2025-01-19T04:16:08Z + 2025-01-19T04:16:10Z + 2025-01-19T04:16:12Z + 2025-01-19T04:16:15Z + 2025-01-19T04:16:20Z + 2025-01-19T04:16:27Z + 2025-01-19T04:16:33Z + 2025-01-19T04:16:34Z + 2025-01-19T04:16:35Z + 2025-01-19T04:16:38Z + 2025-01-19T04:16:39Z + 2025-01-19T04:16:44Z + 2025-01-19T04:16:46Z + 2025-01-19T04:16:53Z + 2025-01-19T04:16:57Z + 2025-01-19T04:17:00Z + 2025-01-19T04:17:02Z + 2025-01-19T04:17:06Z + 2025-01-19T04:17:09Z + 2025-01-19T04:17:10Z + 2025-01-19T04:17:13Z + 2025-01-19T04:17:15Z + 2025-01-19T04:17:18Z + 2025-01-19T04:17:22Z + 2025-01-19T04:17:24Z + 2025-01-19T04:17:26Z + 2025-01-19T04:17:30Z + 2025-01-19T04:17:35Z + 2025-01-19T04:17:42Z + 2025-01-19T04:17:50Z + 2025-01-19T04:17:58Z + 2025-01-19T04:18:03Z + 2025-01-19T04:18:04Z + 2025-01-19T04:18:05Z + 2025-01-19T04:18:09Z + 2025-01-19T04:18:11Z + 2025-01-19T04:18:16Z + 2025-01-19T04:18:25Z + 2025-01-19T04:18:34Z + 2025-01-19T04:18:44Z + 2025-01-19T04:18:50Z + 2025-01-19T04:18:51Z + 2025-01-19T04:18:59Z + 2025-01-19T04:19:10Z + 2025-01-19T04:19:17Z + 2025-01-19T04:19:22Z + 2025-01-19T04:19:25Z + 2025-01-19T04:19:34Z + 2025-01-19T04:19:39Z + 2025-01-19T04:19:43Z + 2025-01-19T04:19:46Z + 2025-01-19T04:19:49Z + 2025-01-19T04:19:58Z + 2025-01-19T04:20:07Z + 2025-01-19T04:20:16Z + 2025-01-19T04:20:20Z + 2025-01-19T04:20:24Z + 2025-01-19T04:20:32Z + 2025-01-19T04:20:36Z + 2025-01-19T04:20:42Z + 2025-01-19T04:20:52Z + 2025-01-19T04:21:04Z + 2025-01-19T04:21:10Z + 2025-01-19T04:21:11Z + 2025-01-19T04:21:15Z + 2025-01-19T04:21:20Z + 2025-01-19T04:21:30Z + 2025-01-19T04:21:40Z + 2025-01-19T04:21:42Z + 2025-01-19T04:21:50Z + 2025-01-19T04:21:53Z + 2025-01-19T04:22:00Z + 2025-01-19T04:22:07Z + 2025-01-19T04:22:15Z + 2025-01-19T04:22:21Z + 2025-01-19T04:22:23Z + 2025-01-19T04:22:32Z + 2025-01-19T04:22:42Z + 2025-01-19T04:22:52Z + 2025-01-19T04:23:03Z + 2025-01-19T04:23:04Z + 2025-01-19T04:23:13Z + 2025-01-19T04:23:23Z + 2025-01-19T04:23:32Z + 2025-01-19T04:23:42Z + 2025-01-19T04:23:50Z + 2025-01-19T04:23:56Z + 2025-01-19T04:24:03Z + 2025-01-19T04:24:09Z + 2025-01-19T04:24:11Z + 2025-01-19T04:24:18Z + 2025-01-19T04:24:26Z + 2025-01-19T04:24:35Z + 2025-01-19T04:24:38Z + 2025-01-19T04:24:46Z + 2025-01-19T04:24:56Z + 2025-01-19T04:25:05Z + 2025-01-19T04:25:17Z + 2025-01-19T04:25:26Z + 2025-01-19T04:25:39Z + 2025-01-19T04:25:50Z + 2025-01-19T04:25:58Z + 2025-01-19T04:26:06Z + 2025-01-19T04:26:08Z + 2025-01-19T04:26:13Z + 2025-01-19T04:26:16Z + 2025-01-19T04:26:25Z + 2025-01-19T04:26:32Z + 2025-01-19T04:26:44Z + 2025-01-19T04:26:45Z + 2025-01-19T04:26:50Z + 2025-01-19T04:26:53Z + 2025-01-19T04:26:58Z + 2025-01-19T04:27:01Z + 2025-01-19T04:27:09Z + 2025-01-19T04:27:18Z + 2025-01-19T04:27:27Z + 2025-01-19T04:27:35Z + 2025-01-19T04:27:44Z + 2025-01-19T04:27:51Z + 2025-01-19T04:27:56Z + 2025-01-19T04:28:03Z + 2025-01-19T04:28:06Z + 2025-01-19T04:28:15Z + 2025-01-19T04:28:24Z + 2025-01-19T04:28:31Z + 2025-01-19T04:28:38Z + 2025-01-19T04:28:48Z + 2025-01-19T04:28:56Z + 2025-01-19T04:28:59Z + 2025-01-19T04:29:07Z + 2025-01-19T04:29:08Z + 2025-01-19T04:29:17Z + 2025-01-19T04:29:23Z + 2025-01-19T04:29:28Z + 2025-01-19T04:29:38Z + 2025-01-19T04:29:48Z + 2025-01-19T04:29:59Z + 2025-01-19T04:30:10Z + 2025-01-19T04:30:16Z + 2025-01-19T04:30:19Z + 2025-01-19T04:30:28Z + 2025-01-19T04:30:39Z + 2025-01-19T04:30:48Z + 2025-01-19T04:30:56Z + 2025-01-19T04:31:06Z + 2025-01-19T04:31:13Z + 2025-01-19T04:31:16Z + 2025-01-19T04:31:19Z + 2025-01-19T04:31:24Z + 2025-01-19T04:31:26Z + 2025-01-19T04:31:37Z + 2025-01-19T04:31:47Z + 2025-01-19T04:31:57Z + 2025-01-19T04:32:08Z + 2025-01-19T04:32:18Z + 2025-01-19T04:32:25Z + 2025-01-19T04:32:34Z + 2025-01-19T04:32:44Z + 2025-01-19T04:32:48Z + 2025-01-19T04:32:50Z + 2025-01-19T04:32:54Z + 2025-01-19T04:33:05Z + 2025-01-19T04:33:19Z + 2025-01-19T04:33:28Z + 2025-01-19T04:33:38Z + 2025-01-19T04:33:48Z + 2025-01-19T04:33:58Z + 2025-01-19T04:34:07Z + 2025-01-19T04:34:16Z + 2025-01-19T04:34:26Z + 2025-01-19T04:34:37Z + 2025-01-19T04:34:48Z + 2025-01-19T04:34:59Z + 2025-01-19T04:35:08Z + 2025-01-19T04:35:16Z + 2025-01-19T04:35:26Z + 2025-01-19T04:35:34Z + 2025-01-19T04:35:43Z + 2025-01-19T04:35:45Z + 2025-01-19T04:35:51Z + 2025-01-19T04:36:00Z + 2025-01-19T04:36:08Z + 2025-01-19T04:36:11Z + 2025-01-19T04:36:17Z + 2025-01-19T04:36:26Z + 2025-01-19T04:36:35Z + 2025-01-19T04:36:43Z + 2025-01-19T04:36:49Z + 2025-01-19T04:36:57Z + 2025-01-19T04:37:04Z + 2025-01-19T04:37:09Z + 2025-01-19T04:37:12Z + 2025-01-19T04:37:14Z + 2025-01-19T04:37:16Z + 2025-01-19T04:37:18Z + 2025-01-19T04:37:24Z + 2025-01-19T04:37:28Z + 2025-01-19T04:37:32Z + 2025-01-19T04:37:38Z + 2025-01-19T04:37:41Z + 2025-01-19T04:37:49Z + 2025-01-19T04:37:59Z + 2025-01-19T04:38:08Z + 2025-01-19T04:38:16Z + 2025-01-19T04:38:24Z + 2025-01-19T04:38:27Z + 2025-01-19T04:38:32Z + 2025-01-19T04:38:40Z + 2025-01-19T04:38:48Z + 2025-01-19T04:38:49Z + 2025-01-19T04:38:56Z + 2025-01-19T04:39:04Z + 2025-01-19T04:39:12Z + 2025-01-19T04:39:20Z + 2025-01-19T04:39:25Z + 2025-01-19T04:39:38Z + 2025-01-19T04:39:45Z + 2025-01-19T04:39:46Z + 2025-01-19T04:39:51Z + 2025-01-19T04:39:56Z + 2025-01-19T04:40:05Z + 2025-01-19T04:40:06Z + 2025-01-19T04:40:13Z + 2025-01-19T04:40:21Z + 2025-01-19T04:40:22Z + 2025-01-19T04:40:29Z + 2025-01-19T04:40:37Z + 2025-01-19T04:40:38Z + 2025-01-19T04:40:45Z + 2025-01-19T04:40:54Z + 2025-01-19T04:40:57Z + 2025-01-19T04:41:01Z + 2025-01-19T04:41:09Z + 2025-01-19T04:41:17Z + 2025-01-19T04:41:24Z + 2025-01-19T04:41:32Z + 2025-01-19T04:41:37Z + 2025-01-19T04:41:41Z + 2025-01-19T04:41:49Z + 2025-01-19T04:41:58Z + 2025-01-19T04:42:08Z + 2025-01-19T04:42:17Z + 2025-01-19T04:42:18Z + 2025-01-19T04:42:26Z + 2025-01-19T04:42:36Z + 2025-01-19T04:42:46Z + 2025-01-19T04:42:55Z + 2025-01-19T04:43:03Z + 2025-01-19T04:43:13Z + 2025-01-19T04:43:18Z + 2025-01-19T04:43:23Z + 2025-01-19T04:43:26Z + 2025-01-19T04:43:35Z + 2025-01-19T04:43:38Z + 2025-01-19T04:43:47Z + 2025-01-19T04:43:53Z + 2025-01-19T04:43:57Z + 2025-01-19T04:44:00Z + 2025-01-19T04:44:06Z + 2025-01-19T04:44:08Z + 2025-01-19T04:44:14Z + 2025-01-19T04:44:15Z + 2025-01-19T04:44:23Z + 2025-01-19T04:44:32Z + 2025-01-19T04:44:42Z + 2025-01-19T04:44:45Z + 2025-01-19T04:44:49Z + 2025-01-19T04:44:58Z + 2025-01-19T04:45:07Z + 2025-01-19T04:45:17Z + 2025-01-19T04:45:26Z + 2025-01-19T04:45:35Z + 2025-01-19T04:45:42Z + 2025-01-19T04:45:50Z + 2025-01-19T04:45:58Z + 2025-01-19T04:46:07Z + 2025-01-19T04:46:17Z + 2025-01-19T04:46:28Z + 2025-01-19T04:46:29Z + 2025-01-19T04:46:37Z + 2025-01-19T04:46:46Z + 2025-01-19T04:46:54Z + 2025-01-19T04:47:02Z + 2025-01-19T04:47:09Z + 2025-01-19T04:47:15Z + 2025-01-19T04:47:19Z + 2025-01-19T04:47:29Z + 2025-01-19T04:47:37Z + 2025-01-19T04:47:47Z + 2025-01-19T04:47:55Z + 2025-01-19T04:48:02Z + 2025-01-19T04:48:12Z + 2025-01-19T04:48:21Z + 2025-01-19T04:48:31Z + 2025-01-19T04:48:38Z + 2025-01-19T04:48:47Z + 2025-01-19T04:48:56Z + 2025-01-19T04:49:06Z + 2025-01-19T04:49:14Z + 2025-01-19T04:49:22Z + 2025-01-19T04:49:30Z + 2025-01-19T04:49:39Z + 2025-01-19T04:49:40Z + 2025-01-19T04:49:48Z + 2025-01-19T04:49:56Z + 2025-01-19T04:50:07Z + 2025-01-19T04:50:19Z + 2025-01-19T04:50:27Z + 2025-01-19T04:50:29Z + 2025-01-19T04:50:37Z + 2025-01-19T04:50:47Z + 2025-01-19T04:50:55Z + 2025-01-19T04:51:07Z + 2025-01-19T04:51:17Z + 2025-01-19T04:51:26Z + 2025-01-19T04:51:37Z + 2025-01-19T04:51:38Z + 2025-01-19T04:51:47Z + 2025-01-19T04:51:57Z + 2025-01-19T04:52:02Z + 2025-01-19T04:52:06Z + 2025-01-19T04:52:16Z + 2025-01-19T04:52:24Z + 2025-01-19T04:52:25Z + 2025-01-19T04:52:35Z + 2025-01-19T04:52:39Z + 2025-01-19T04:52:46Z + 2025-01-19T04:52:51Z + 2025-01-19T04:52:55Z + 2025-01-19T04:53:04Z + 2025-01-19T04:53:11Z + 2025-01-19T04:53:19Z + 2025-01-19T04:53:26Z + 2025-01-19T04:53:35Z + 2025-01-19T04:53:44Z + 2025-01-19T04:53:55Z + 2025-01-19T04:54:05Z + 2025-01-19T04:54:11Z + 2025-01-19T04:54:13Z + 2025-01-19T04:54:24Z + 2025-01-19T04:54:32Z + 2025-01-19T04:54:40Z + 2025-01-19T04:54:47Z + 2025-01-19T04:54:49Z + 2025-01-19T04:54:57Z + 2025-01-19T04:55:05Z + 2025-01-19T04:55:13Z + 2025-01-19T04:55:21Z + 2025-01-19T04:55:29Z + 2025-01-19T04:55:37Z + 2025-01-19T04:55:47Z + 2025-01-19T04:55:48Z + 2025-01-19T04:55:58Z + 2025-01-19T04:56:07Z + 2025-01-19T04:56:17Z + 2025-01-19T04:56:25Z + 2025-01-19T04:56:34Z + 2025-01-19T04:56:38Z + 2025-01-19T04:56:40Z + 2025-01-19T04:56:45Z + 2025-01-19T04:56:46Z + 2025-01-19T04:56:53Z + 2025-01-19T04:57:02Z + 2025-01-19T04:57:09Z + 2025-01-19T04:57:20Z + 2025-01-19T04:57:30Z + 2025-01-19T04:57:33Z + 2025-01-19T04:57:38Z + 2025-01-19T04:57:39Z + 2025-01-19T04:57:45Z + 2025-01-19T04:57:48Z + 2025-01-19T04:57:56Z + 2025-01-19T04:58:02Z + 2025-01-19T04:58:11Z + 2025-01-19T04:58:16Z + 2025-01-19T04:58:17Z + 2025-01-19T04:58:25Z + 2025-01-19T04:58:35Z + 2025-01-19T04:58:41Z + 2025-01-19T04:58:43Z + 2025-01-19T04:58:51Z + 2025-01-19T04:59:01Z + 2025-01-19T04:59:09Z + 2025-01-19T04:59:18Z + 2025-01-19T04:59:28Z + 2025-01-19T04:59:37Z + 2025-01-19T04:59:46Z + 2025-01-19T04:59:54Z + 2025-01-19T05:00:02Z + 2025-01-19T05:00:13Z + 2025-01-19T05:00:20Z + 2025-01-19T05:00:23Z + 2025-01-19T05:00:32Z + 2025-01-19T05:00:41Z + 2025-01-19T05:00:50Z + 2025-01-19T05:00:51Z + 2025-01-19T05:01:00Z + 2025-01-19T05:01:05Z + 2025-01-19T05:01:10Z + 2025-01-19T05:01:19Z + 2025-01-19T05:01:22Z + 2025-01-19T05:01:26Z + 2025-01-19T05:01:36Z + 2025-01-19T05:01:45Z + 2025-01-19T05:01:53Z + 2025-01-19T05:02:04Z + 2025-01-19T05:02:10Z + 2025-01-19T05:02:11Z + 2025-01-19T05:02:19Z + 2025-01-19T05:02:31Z + 2025-01-19T05:02:42Z + 2025-01-19T05:02:52Z + 2025-01-19T05:02:53Z + 2025-01-19T05:03:02Z + 2025-01-19T05:03:12Z + 2025-01-19T05:03:13Z + 2025-01-19T05:03:23Z + 2025-01-19T05:03:30Z + 2025-01-19T05:03:33Z + 2025-01-19T05:03:40Z + 2025-01-19T05:03:42Z + 2025-01-19T05:03:44Z + 2025-01-19T05:03:46Z + 2025-01-19T05:03:49Z + 2025-01-19T05:03:52Z + 2025-01-19T05:03:58Z + 2025-01-19T05:04:05Z + 2025-01-19T05:04:07Z + 2025-01-19T05:04:15Z + 2025-01-19T05:04:24Z + 2025-01-19T05:04:31Z + 2025-01-19T05:04:39Z + 2025-01-19T05:04:47Z + 2025-01-19T05:04:56Z + 2025-01-19T05:05:05Z + 2025-01-19T05:05:09Z + 2025-01-19T05:05:13Z + 2025-01-19T05:05:22Z + 2025-01-19T05:05:33Z + 2025-01-19T05:05:44Z + 2025-01-19T05:05:53Z + 2025-01-19T05:05:54Z + 2025-01-19T05:06:04Z + 2025-01-19T05:06:12Z + 2025-01-19T05:06:15Z + 2025-01-19T05:06:23Z + 2025-01-19T05:06:32Z + 2025-01-19T05:06:35Z + 2025-01-19T05:06:38Z + 2025-01-19T05:06:41Z + 2025-01-19T05:06:47Z + 2025-01-19T05:06:50Z + 2025-01-19T05:06:52Z + 2025-01-19T05:06:59Z + 2025-01-19T05:07:09Z + 2025-01-19T05:07:16Z + 2025-01-19T05:07:23Z + 2025-01-19T05:07:28Z + 2025-01-19T05:07:37Z + 2025-01-19T05:07:44Z + 2025-01-19T05:07:53Z + 2025-01-19T05:08:01Z + 2025-01-19T05:08:11Z + 2025-01-19T05:08:19Z + 2025-01-19T05:08:29Z + 2025-01-19T05:08:37Z + 2025-01-19T05:08:38Z + 2025-01-19T05:08:49Z + 2025-01-19T05:08:57Z + 2025-01-19T05:09:03Z + 2025-01-19T05:09:07Z + 2025-01-19T05:09:17Z + 2025-01-19T05:09:26Z + 2025-01-19T05:09:36Z + 2025-01-19T05:09:43Z + 2025-01-19T05:09:44Z + 2025-01-19T05:09:47Z + 2025-01-19T05:09:53Z + 2025-01-19T05:09:59Z + 2025-01-19T05:10:01Z + 2025-01-19T05:10:05Z + 2025-01-19T05:10:10Z + 2025-01-19T05:10:12Z + 2025-01-19T05:10:18Z + 2025-01-19T05:10:30Z + 2025-01-19T05:10:40Z + 2025-01-19T05:10:50Z + 2025-01-19T05:11:00Z + 2025-01-19T05:11:07Z + 2025-01-19T05:11:16Z + 2025-01-19T05:11:25Z + 2025-01-19T05:11:36Z + 2025-01-19T05:11:43Z + 2025-01-19T05:11:52Z + 2025-01-19T05:12:02Z + 2025-01-19T05:12:03Z + 2025-01-19T05:12:14Z + 2025-01-19T05:12:25Z + 2025-01-19T05:12:35Z + 2025-01-19T05:12:44Z + 2025-01-19T05:12:45Z + 2025-01-19T05:12:55Z + 2025-01-19T05:13:05Z + 2025-01-19T05:13:14Z + 2025-01-19T05:13:21Z + 2025-01-19T05:13:31Z + 2025-01-19T05:13:39Z + 2025-01-19T05:13:47Z + 2025-01-19T05:13:54Z + 2025-01-19T05:14:04Z + 2025-01-19T05:14:13Z + 2025-01-19T05:14:23Z + 2025-01-19T05:14:27Z + 2025-01-19T05:14:33Z + 2025-01-19T05:14:34Z + 2025-01-19T05:14:36Z + 2025-01-19T05:14:39Z + 2025-01-19T05:14:42Z + 2025-01-19T05:14:44Z + 2025-01-19T05:14:49Z + 2025-01-19T05:14:51Z + 2025-01-19T05:14:56Z + 2025-01-19T05:15:03Z + 2025-01-19T05:15:11Z + 2025-01-19T05:15:20Z + 2025-01-19T05:15:25Z + 2025-01-19T05:15:33Z + 2025-01-19T05:15:35Z + 2025-01-19T05:15:43Z + 2025-01-19T05:15:53Z + 2025-01-19T05:16:00Z + 2025-01-19T05:16:09Z + 2025-01-19T05:16:10Z + 2025-01-19T05:16:18Z + 2025-01-19T05:16:28Z + 2025-01-19T05:16:32Z + 2025-01-19T05:16:38Z + 2025-01-19T05:16:47Z + 2025-01-19T05:16:56Z + 2025-01-19T05:17:05Z + 2025-01-19T05:17:10Z + 2025-01-19T05:17:13Z + 2025-01-19T05:17:21Z + 2025-01-19T05:17:22Z + 2025-01-19T05:17:31Z + 2025-01-19T05:17:32Z + 2025-01-19T05:17:42Z + 2025-01-19T05:17:49Z + 2025-01-19T05:17:55Z + 2025-01-19T05:17:57Z + 2025-01-19T05:18:04Z + 2025-01-19T05:18:09Z + 2025-01-19T05:18:14Z + 2025-01-19T05:18:20Z + 2025-01-19T05:18:21Z + 2025-01-19T05:18:25Z + 2025-01-19T05:18:28Z + 2025-01-19T05:18:34Z + 2025-01-19T05:18:37Z + 2025-01-19T05:18:40Z + 2025-01-19T05:18:47Z + 2025-01-19T05:18:54Z + 2025-01-19T05:19:00Z + 2025-01-19T05:19:08Z + 2025-01-19T05:19:14Z + 2025-01-19T05:19:15Z + 2025-01-19T05:19:22Z + 2025-01-19T05:19:31Z + 2025-01-19T05:19:40Z + 2025-01-19T05:19:48Z + 2025-01-19T05:19:53Z + 2025-01-19T05:19:59Z + 2025-01-19T05:20:02Z + 2025-01-19T05:20:10Z + 2025-01-19T05:20:14Z + 2025-01-19T05:20:18Z + 2025-01-19T05:20:19Z + 2025-01-19T05:20:21Z + 2025-01-19T05:20:24Z + 2025-01-19T05:20:27Z + 2025-01-19T05:20:30Z + 2025-01-19T05:20:38Z + 2025-01-19T05:20:39Z + 2025-01-19T05:20:40Z + 2025-01-19T05:20:42Z + 2025-01-19T05:20:43Z + 2025-01-19T05:20:46Z + 2025-01-19T05:20:53Z + 2025-01-19T05:20:59Z + 2025-01-19T05:21:05Z + 2025-01-19T05:21:11Z + 2025-01-19T05:21:18Z + 2025-01-19T05:21:27Z + 2025-01-19T05:21:35Z + 2025-01-19T05:21:41Z + 2025-01-19T05:21:48Z + 2025-01-19T05:21:54Z + 2025-01-19T05:21:55Z + 2025-01-19T05:22:00Z + 2025-01-19T05:22:07Z + 2025-01-19T05:22:14Z + 2025-01-19T05:22:20Z + 2025-01-19T05:22:25Z + 2025-01-19T05:22:31Z + 2025-01-19T05:22:37Z + 2025-01-19T05:22:48Z + 2025-01-19T05:22:50Z + 2025-01-19T05:22:54Z + 2025-01-19T05:23:04Z + 2025-01-19T05:23:13Z + 2025-01-19T05:23:24Z + 2025-01-19T05:23:28Z + 2025-01-19T05:23:32Z + 2025-01-19T05:23:42Z + 2025-01-19T05:23:52Z + 2025-01-19T05:23:57Z + 2025-01-19T05:24:06Z + 2025-01-19T05:24:09Z + 2025-01-19T05:24:13Z + 2025-01-19T05:24:20Z + 2025-01-19T05:24:26Z + 2025-01-19T05:24:29Z + 2025-01-19T05:24:30Z + 2025-01-19T05:24:35Z + 2025-01-19T05:24:41Z + 2025-01-19T05:24:48Z + 2025-01-19T05:24:58Z + 2025-01-19T05:25:05Z + 2025-01-19T05:25:12Z + 2025-01-19T05:25:16Z + 2025-01-19T05:25:21Z + 2025-01-19T05:25:27Z + 2025-01-19T05:25:28Z + 2025-01-19T05:25:29Z + 2025-01-19T05:25:35Z + 2025-01-19T05:25:43Z + 2025-01-19T05:25:46Z + 2025-01-19T05:25:49Z + 2025-01-19T05:25:56Z + 2025-01-19T05:26:07Z + 2025-01-19T05:26:11Z + 2025-01-19T05:26:12Z + 2025-01-19T05:26:16Z + 2025-01-19T05:26:20Z + 2025-01-19T05:26:28Z + 2025-01-19T05:26:37Z + 2025-01-19T05:26:44Z + 2025-01-19T05:26:46Z + 2025-01-19T05:26:51Z + 2025-01-19T05:26:59Z + 2025-01-19T05:27:06Z + 2025-01-19T05:27:08Z + 2025-01-19T05:27:15Z + 2025-01-19T05:27:22Z + 2025-01-19T05:27:26Z + 2025-01-19T05:27:30Z + 2025-01-19T05:27:36Z + 2025-01-19T05:27:39Z + 2025-01-19T05:27:44Z + 2025-01-19T05:27:46Z + 2025-01-19T05:27:49Z + 2025-01-19T05:27:54Z + 2025-01-19T05:28:04Z + 2025-01-19T05:28:08Z + 2025-01-19T05:28:15Z + 2025-01-19T05:28:22Z + 2025-01-19T05:28:31Z + 2025-01-19T05:28:34Z + 2025-01-19T05:28:38Z + 2025-01-19T05:28:41Z + 2025-01-19T05:28:45Z + 2025-01-19T05:28:47Z + 2025-01-19T05:28:48Z + 2025-01-19T05:28:55Z + 2025-01-19T05:28:56Z + 2025-01-19T05:29:05Z + 2025-01-19T05:29:07Z + 2025-01-19T05:29:19Z + 2025-01-19T05:29:23Z + 2025-01-19T05:29:27Z + 2025-01-19T05:29:30Z + 2025-01-19T05:29:38Z + 2025-01-19T05:29:41Z + 2025-01-19T05:29:47Z + 2025-01-19T05:29:49Z + 2025-01-19T05:29:53Z + 2025-01-19T05:30:02Z + 2025-01-19T05:30:13Z + 2025-01-19T05:30:15Z + 2025-01-19T05:30:27Z + 2025-01-19T05:30:30Z + 2025-01-19T05:30:37Z + 2025-01-19T05:30:42Z + 2025-01-19T05:30:55Z + 2025-01-19T05:31:04Z + 2025-01-19T05:31:06Z + 2025-01-19T05:31:24Z + 2025-01-19T05:31:30Z + 2025-01-19T05:31:31Z + 2025-01-19T05:31:33Z + 2025-01-19T05:31:41Z + 2025-01-19T05:31:43Z + 2025-01-19T05:31:48Z + 2025-01-19T05:31:53Z + 2025-01-19T05:31:55Z + 2025-01-19T05:32:07Z + 2025-01-19T05:32:11Z + 2025-01-19T05:32:23Z + 2025-01-19T05:32:35Z + 2025-01-19T05:32:36Z + 2025-01-19T05:32:39Z + 2025-01-19T05:32:41Z + 2025-01-19T05:32:46Z + 2025-01-19T05:32:54Z + 2025-01-19T05:33:00Z + 2025-01-19T05:33:07Z + 2025-01-19T05:33:09Z + 2025-01-19T05:33:16Z + 2025-01-19T05:33:19Z + 2025-01-19T05:33:28Z + 2025-01-19T05:33:39Z + 2025-01-19T05:33:41Z + 2025-01-19T05:33:46Z + 2025-01-19T05:33:48Z + 2025-01-19T05:33:58Z + 2025-01-19T05:34:07Z + 2025-01-19T05:34:15Z + 2025-01-19T05:34:18Z + 2025-01-19T05:34:21Z + 2025-01-19T05:34:26Z + 2025-01-19T05:34:28Z + 2025-01-19T05:34:30Z + 2025-01-19T05:34:38Z + 2025-01-19T05:34:44Z + 2025-01-19T05:34:45Z + 2025-01-19T05:34:50Z + 2025-01-19T05:34:56Z + 2025-01-19T05:35:02Z + 2025-01-19T05:35:09Z + 2025-01-19T05:35:12Z + 2025-01-19T05:35:16Z + 2025-01-19T05:35:18Z + 2025-01-19T05:35:23Z + 2025-01-19T05:35:30Z + 2025-01-19T05:35:37Z + 2025-01-19T05:35:43Z + 2025-01-19T05:35:52Z + 2025-01-19T05:36:01Z + 2025-01-19T05:36:08Z + 2025-01-19T05:36:16Z + 2025-01-19T05:36:24Z + 2025-01-19T05:36:26Z + 2025-01-19T05:36:32Z + 2025-01-19T05:36:35Z + 2025-01-19T05:36:43Z + 2025-01-19T05:36:49Z + 2025-01-19T05:36:56Z + 2025-01-19T05:36:58Z + 2025-01-19T05:37:07Z + 2025-01-19T05:37:14Z + 2025-01-19T05:37:18Z + 2025-01-19T05:37:21Z + 2025-01-19T05:37:24Z + 2025-01-19T05:37:25Z + 2025-01-19T05:37:32Z + 2025-01-19T05:37:43Z + 2025-01-19T05:37:48Z + 2025-01-19T05:37:57Z + 2025-01-19T05:38:06Z + 2025-01-19T05:38:10Z + 2025-01-19T05:38:13Z + 2025-01-19T05:38:18Z + 2025-01-19T05:38:20Z + 2025-01-19T05:38:23Z + 2025-01-19T05:38:30Z + 2025-01-19T05:38:32Z + 2025-01-19T05:38:36Z + 2025-01-19T05:38:37Z + 2025-01-19T05:38:39Z + 2025-01-19T05:38:40Z + 2025-01-19T05:38:45Z + 2025-01-19T05:38:50Z + 2025-01-19T05:38:53Z + 2025-01-19T05:38:58Z + 2025-01-19T05:39:04Z + 2025-01-19T05:39:05Z + 2025-01-19T05:39:07Z + 2025-01-19T05:39:09Z + 2025-01-19T05:39:10Z + 2025-01-19T05:39:13Z + 2025-01-19T05:39:17Z + 2025-01-19T05:39:22Z + 2025-01-19T05:39:23Z + 2025-01-19T05:39:29Z + 2025-01-19T05:39:32Z + 2025-01-19T05:39:35Z + 2025-01-19T05:39:37Z + 2025-01-19T05:39:42Z + 2025-01-19T05:39:43Z + 2025-01-19T05:39:48Z + 2025-01-19T05:39:52Z + 2025-01-19T05:39:54Z + 2025-01-19T05:39:59Z + 2025-01-19T05:40:00Z + 2025-01-19T05:40:05Z + 2025-01-19T05:40:08Z + 2025-01-19T05:40:10Z + 2025-01-19T05:40:17Z + 2025-01-19T05:40:18Z + 2025-01-19T05:40:23Z + 2025-01-19T05:40:27Z + 2025-01-19T05:40:28Z + 2025-01-19T05:40:34Z + 2025-01-19T05:40:36Z + 2025-01-19T05:40:40Z + 2025-01-19T05:40:43Z + 2025-01-19T05:40:46Z + 2025-01-19T05:40:51Z + 2025-01-19T05:40:57Z + 2025-01-19T05:41:00Z + 2025-01-19T05:41:03Z + 2025-01-19T05:41:08Z + 2025-01-19T05:41:11Z + 2025-01-19T05:41:16Z + 2025-01-19T05:41:22Z + 2025-01-19T05:41:23Z + 2025-01-19T05:41:25Z + 2025-01-19T05:41:30Z + 2025-01-19T05:41:31Z + 2025-01-19T05:41:35Z + 2025-01-19T05:41:38Z + 2025-01-19T05:41:44Z + 2025-01-19T05:41:45Z + 2025-01-19T05:41:50Z + 2025-01-19T05:41:52Z + 2025-01-19T05:41:53Z + 2025-01-19T05:42:01Z + 2025-01-19T05:42:03Z + 2025-01-19T05:42:09Z + 2025-01-19T05:42:10Z + 2025-01-19T05:42:17Z + 2025-01-19T05:42:24Z + 2025-01-19T05:42:26Z + 2025-01-19T05:42:31Z + 2025-01-19T05:42:35Z + 2025-01-19T05:42:37Z + 2025-01-19T05:42:44Z + 2025-01-19T05:42:47Z + 2025-01-19T05:42:52Z + 2025-01-19T05:42:55Z + 2025-01-19T05:42:59Z + 2025-01-19T05:43:05Z + 2025-01-19T05:43:07Z + 2025-01-19T05:43:11Z + 2025-01-19T05:43:14Z + 2025-01-19T05:43:23Z + 2025-01-19T05:43:24Z + 2025-01-19T05:43:31Z + 2025-01-19T05:43:32Z + 2025-01-19T05:43:40Z + 2025-01-19T05:43:42Z + 2025-01-19T05:43:48Z + 2025-01-19T05:43:51Z + 2025-01-19T05:43:58Z + 2025-01-19T05:44:00Z + 2025-01-19T05:44:06Z + 2025-01-19T05:44:09Z + 2025-01-19T05:44:15Z + 2025-01-19T05:44:19Z + 2025-01-19T05:44:25Z + 2025-01-19T05:44:30Z + 2025-01-19T05:44:33Z + 2025-01-19T05:44:40Z + 2025-01-19T05:44:43Z + 2025-01-19T05:44:48Z + 2025-01-19T05:44:52Z + 2025-01-19T05:44:56Z + 2025-01-19T05:45:03Z + 2025-01-19T05:45:08Z + 2025-01-19T05:45:09Z + 2025-01-19T05:45:14Z + 2025-01-19T05:45:16Z + 2025-01-19T05:45:17Z + 2025-01-19T05:45:19Z + 2025-01-19T05:45:28Z + 2025-01-19T05:45:37Z + 2025-01-19T05:45:44Z + 2025-01-19T05:45:47Z + 2025-01-19T05:45:51Z + 2025-01-19T05:45:55Z + 2025-01-19T05:46:00Z + 2025-01-19T05:46:07Z + 2025-01-19T05:46:08Z + 2025-01-19T05:46:16Z + 2025-01-19T05:46:23Z + 2025-01-19T05:46:26Z + 2025-01-19T05:46:30Z + 2025-01-19T05:46:37Z + 2025-01-19T05:46:39Z + 2025-01-19T05:46:42Z + 2025-01-19T05:46:48Z + 2025-01-19T05:46:50Z + 2025-01-19T05:46:54Z + 2025-01-19T05:46:58Z + 2025-01-19T05:47:01Z + 2025-01-19T05:47:06Z + 2025-01-19T05:47:13Z + 2025-01-19T05:47:14Z + 2025-01-19T05:47:15Z + 2025-01-19T05:47:18Z + 2025-01-19T05:47:22Z + 2025-01-19T05:47:29Z + 2025-01-19T05:47:30Z + 2025-01-19T05:47:31Z + 2025-01-19T05:47:33Z + 2025-01-19T05:47:36Z + 2025-01-19T05:47:39Z + 2025-01-19T05:47:44Z + 2025-01-19T05:47:45Z + 2025-01-19T05:47:52Z + 2025-01-19T05:47:55Z + 2025-01-19T05:48:03Z + 2025-01-19T05:48:11Z + 2025-01-19T05:48:19Z + 2025-01-19T05:48:24Z + 2025-01-19T05:48:25Z + 2025-01-19T05:48:30Z + 2025-01-19T05:48:31Z + 2025-01-19T05:48:36Z + 2025-01-19T05:48:37Z + 2025-01-19T05:48:41Z + 2025-01-19T05:48:44Z + 2025-01-19T05:48:51Z + 2025-01-19T05:48:53Z + 2025-01-19T05:48:59Z + 2025-01-19T05:49:01Z + 2025-01-19T05:49:04Z + 2025-01-19T05:49:10Z + 2025-01-19T05:49:11Z + 2025-01-19T05:49:14Z + 2025-01-19T05:49:15Z + 2025-01-19T05:49:18Z + 2025-01-19T05:49:26Z + 2025-01-19T05:49:29Z + 2025-01-19T05:49:35Z + 2025-01-19T05:49:42Z + 2025-01-19T05:49:49Z + 2025-01-19T05:49:52Z + 2025-01-19T05:50:00Z + 2025-01-19T05:50:02Z + 2025-01-19T05:50:09Z + 2025-01-19T05:50:19Z + 2025-01-19T05:50:28Z + 2025-01-19T05:50:32Z + 2025-01-19T05:50:37Z + 2025-01-19T05:50:40Z + 2025-01-19T05:50:45Z + 2025-01-19T05:50:47Z + 2025-01-19T05:50:53Z + 2025-01-19T05:50:54Z + 2025-01-19T05:50:58Z + 2025-01-19T05:51:00Z + 2025-01-19T05:51:02Z + 2025-01-19T05:51:06Z + 2025-01-19T05:51:13Z + 2025-01-19T05:51:18Z + 2025-01-19T05:51:21Z + 2025-01-19T05:51:26Z + 2025-01-19T05:51:28Z + 2025-01-19T05:51:30Z + 2025-01-19T05:51:31Z + 2025-01-19T05:51:36Z + 2025-01-19T05:51:37Z + 2025-01-19T05:51:41Z + 2025-01-19T05:51:44Z + 2025-01-19T05:51:45Z + 2025-01-19T05:51:50Z + 2025-01-19T05:51:51Z + 2025-01-19T05:51:54Z + 2025-01-19T05:51:59Z + 2025-01-19T05:52:06Z + 2025-01-19T05:52:10Z + 2025-01-19T05:52:11Z + 2025-01-19T05:52:17Z + 2025-01-19T05:52:20Z + 2025-01-19T05:52:22Z + 2025-01-19T05:52:23Z + 2025-01-19T05:52:24Z + 2025-01-19T05:52:30Z + 2025-01-19T05:52:35Z + 2025-01-19T05:52:39Z + 2025-01-19T05:52:43Z + 2025-01-19T05:52:47Z + 2025-01-19T05:52:54Z + 2025-01-19T05:53:01Z + 2025-01-19T05:53:05Z + 2025-01-19T05:53:09Z + 2025-01-19T05:53:16Z + 2025-01-19T05:53:24Z + 2025-01-19T05:53:28Z + 2025-01-19T05:53:31Z + 2025-01-19T05:53:39Z + 2025-01-19T05:53:46Z + 2025-01-19T05:53:54Z + 2025-01-19T05:54:02Z + 2025-01-19T05:54:03Z + 2025-01-19T05:54:10Z + 2025-01-19T05:54:11Z + 2025-01-19T05:54:12Z + 2025-01-19T05:54:17Z + 2025-01-19T05:54:20Z + 2025-01-19T05:54:28Z + 2025-01-19T05:54:29Z + 2025-01-19T05:54:33Z + 2025-01-19T05:54:38Z + 2025-01-19T05:54:41Z + 2025-01-19T05:54:45Z + 2025-01-19T05:54:48Z + 2025-01-19T05:54:55Z + 2025-01-19T05:54:56Z + 2025-01-19T05:55:01Z + 2025-01-19T05:55:04Z + 2025-01-19T05:55:12Z + 2025-01-19T05:55:15Z + 2025-01-19T05:55:20Z + 2025-01-19T05:55:28Z + 2025-01-19T05:55:35Z + 2025-01-19T05:55:38Z + 2025-01-19T05:55:47Z + 2025-01-19T05:55:49Z + 2025-01-19T05:55:56Z + 2025-01-19T05:55:57Z + 2025-01-19T05:56:06Z + 2025-01-19T05:56:15Z + 2025-01-19T05:56:24Z + 2025-01-19T05:56:25Z + 2025-01-19T05:56:33Z + 2025-01-19T05:56:40Z + 2025-01-19T05:56:45Z + 2025-01-19T05:56:48Z + 2025-01-19T05:56:54Z + 2025-01-19T05:57:03Z + 2025-01-19T05:57:11Z + 2025-01-19T05:57:19Z + 2025-01-19T05:57:26Z + 2025-01-19T05:57:35Z + 2025-01-19T05:57:42Z + 2025-01-19T05:57:50Z + 2025-01-19T05:57:57Z + 2025-01-19T05:58:06Z + 2025-01-19T05:58:15Z + 2025-01-19T05:58:23Z + 2025-01-19T05:58:30Z + 2025-01-19T05:58:39Z + 2025-01-19T05:58:45Z + 2025-01-19T05:58:48Z + 2025-01-19T05:58:51Z + 2025-01-19T05:58:58Z + 2025-01-19T05:58:59Z + 2025-01-19T05:59:08Z + 2025-01-19T05:59:17Z + 2025-01-19T05:59:25Z + 2025-01-19T05:59:26Z + 2025-01-19T05:59:35Z + 2025-01-19T05:59:37Z + 2025-01-19T05:59:42Z + 2025-01-19T05:59:45Z + 2025-01-19T05:59:55Z + 2025-01-19T05:59:58Z + 2025-01-19T06:00:04Z + 2025-01-19T06:00:05Z + 2025-01-19T06:00:17Z + 2025-01-19T06:00:18Z + 2025-01-19T06:00:26Z + 2025-01-19T06:00:28Z + 2025-01-19T06:00:37Z + 2025-01-19T06:00:39Z + 2025-01-19T06:00:44Z + 2025-01-19T06:00:49Z + 2025-01-19T06:00:54Z + 2025-01-19T06:00:55Z + 2025-01-19T06:00:59Z + 2025-01-19T06:01:00Z + 2025-01-19T06:01:03Z + 2025-01-19T06:01:06Z + 2025-01-19T06:01:10Z + 2025-01-19T06:01:14Z + 2025-01-19T06:01:18Z + 2025-01-19T06:01:24Z + 2025-01-19T06:01:31Z + 2025-01-19T06:01:35Z + 2025-01-19T06:01:40Z + 2025-01-19T06:01:42Z + 2025-01-19T06:01:45Z + 2025-01-19T06:01:48Z + 2025-01-19T06:01:49Z + 2025-01-19T06:01:53Z + 2025-01-19T06:01:54Z + 2025-01-19T06:02:02Z + 2025-01-19T06:02:06Z + 2025-01-19T06:02:10Z + 2025-01-19T06:02:13Z + 2025-01-19T06:02:19Z + 2025-01-19T06:02:25Z + 2025-01-19T06:02:26Z + 2025-01-19T06:02:27Z + 2025-01-19T06:02:30Z + 2025-01-19T06:02:35Z + 2025-01-19T06:02:39Z + 2025-01-19T06:02:43Z + 2025-01-19T06:02:45Z + 2025-01-19T06:02:51Z + 2025-01-19T06:02:55Z + 2025-01-19T06:03:00Z + 2025-01-19T06:03:01Z + 2025-01-19T06:03:07Z + 2025-01-19T06:03:08Z + 2025-01-19T06:03:14Z + 2025-01-19T06:03:17Z + 2025-01-19T06:03:22Z + 2025-01-19T06:03:25Z + 2025-01-19T06:03:30Z + 2025-01-19T06:03:34Z + 2025-01-19T06:03:37Z + 2025-01-19T06:03:44Z + 2025-01-19T06:03:51Z + 2025-01-19T06:03:53Z + 2025-01-19T06:03:58Z + 2025-01-19T06:04:03Z + 2025-01-19T06:04:06Z + 2025-01-19T06:04:11Z + 2025-01-19T06:04:12Z + 2025-01-19T06:04:19Z + 2025-01-19T06:04:28Z + 2025-01-19T06:04:30Z + 2025-01-19T06:04:32Z + 2025-01-19T06:04:35Z + 2025-01-19T06:04:40Z + 2025-01-19T06:04:42Z + 2025-01-19T06:04:47Z + 2025-01-19T06:04:50Z + 2025-01-19T06:04:54Z + 2025-01-19T06:04:58Z + 2025-01-19T06:05:01Z + 2025-01-19T06:05:05Z + 2025-01-19T06:05:07Z + 2025-01-19T06:05:13Z + 2025-01-19T06:05:20Z + 2025-01-19T06:05:26Z + 2025-01-19T06:05:29Z + 2025-01-19T06:05:32Z + 2025-01-19T06:05:33Z + 2025-01-19T06:05:37Z + 2025-01-19T06:05:43Z + 2025-01-19T06:05:45Z + 2025-01-19T06:05:48Z + 2025-01-19T06:05:51Z + 2025-01-19T06:05:52Z + 2025-01-19T06:06:00Z + 2025-01-19T06:06:06Z + 2025-01-19T06:06:07Z + 2025-01-19T06:06:16Z + 2025-01-19T06:06:19Z + 2025-01-19T06:06:24Z + 2025-01-19T06:06:33Z + 2025-01-19T06:06:42Z + 2025-01-19T06:06:50Z + 2025-01-19T06:06:55Z + 2025-01-19T06:06:58Z + 2025-01-19T06:07:03Z + 2025-01-19T06:07:05Z + 2025-01-19T06:07:11Z + 2025-01-19T06:07:22Z + 2025-01-19T06:07:30Z + 2025-01-19T06:07:38Z + 2025-01-19T06:07:39Z + 2025-01-19T06:07:42Z + 2025-01-19T06:07:46Z + 2025-01-19T06:07:53Z + 2025-01-19T06:07:56Z + 2025-01-19T06:08:00Z + 2025-01-19T06:08:04Z + 2025-01-19T06:08:08Z + 2025-01-19T06:08:11Z + 2025-01-19T06:08:14Z + 2025-01-19T06:08:16Z + 2025-01-19T06:08:19Z + 2025-01-19T06:08:21Z + 2025-01-19T06:08:23Z + 2025-01-19T06:08:31Z + 2025-01-19T06:08:34Z + 2025-01-19T06:08:37Z + 2025-01-19T06:08:41Z + 2025-01-19T06:08:44Z + 2025-01-19T06:08:48Z + 2025-01-19T06:08:53Z + 2025-01-19T06:08:57Z + 2025-01-19T06:09:02Z + 2025-01-19T06:09:06Z + 2025-01-19T06:09:09Z + 2025-01-19T06:09:12Z + 2025-01-19T06:09:17Z + 2025-01-19T06:09:22Z + 2025-01-19T06:09:23Z + 2025-01-19T06:09:28Z + 2025-01-19T06:09:30Z + 2025-01-19T06:09:36Z + 2025-01-19T06:09:37Z + 2025-01-19T06:09:45Z + 2025-01-19T06:09:51Z + 2025-01-19T06:09:53Z + 2025-01-19T06:09:55Z + 2025-01-19T06:09:56Z + 2025-01-19T06:09:59Z + 2025-01-19T06:10:03Z + 2025-01-19T06:10:05Z + 2025-01-19T06:10:13Z + 2025-01-19T06:10:14Z + 2025-01-19T06:10:16Z + 2025-01-19T06:10:17Z + 2025-01-19T06:10:21Z + 2025-01-19T06:10:28Z + 2025-01-19T06:10:30Z + 2025-01-19T06:10:31Z + 2025-01-19T06:10:38Z + 2025-01-19T06:10:50Z + 2025-01-19T06:10:57Z + 2025-01-19T06:10:58Z + 2025-01-19T06:11:06Z + 2025-01-19T06:11:09Z + 2025-01-19T06:11:25Z + 2025-01-19T06:11:27Z + 2025-01-19T06:11:32Z + 2025-01-19T06:11:34Z + 2025-01-19T06:11:43Z + 2025-01-19T06:11:54Z + 2025-01-19T06:12:00Z + 2025-01-19T06:12:08Z + 2025-01-19T06:12:16Z + 2025-01-19T06:12:18Z + 2025-01-19T06:12:23Z + 2025-01-19T06:12:26Z + 2025-01-19T06:12:27Z + 2025-01-19T06:12:29Z + 2025-01-19T06:12:30Z + 2025-01-19T06:12:36Z + 2025-01-19T06:12:44Z + 2025-01-19T06:12:49Z + 2025-01-19T06:12:52Z + 2025-01-19T06:12:54Z + 2025-01-19T06:12:59Z + 2025-01-19T06:13:00Z + 2025-01-19T06:13:09Z + 2025-01-19T06:13:11Z + 2025-01-19T06:13:15Z + 2025-01-19T06:13:23Z + 2025-01-19T06:13:28Z + 2025-01-19T06:13:32Z + 2025-01-19T06:13:35Z + 2025-01-19T06:13:43Z + 2025-01-19T06:13:45Z + 2025-01-19T06:13:52Z + 2025-01-19T06:13:59Z + 2025-01-19T06:14:04Z + 2025-01-19T06:14:05Z + 2025-01-19T06:14:13Z + 2025-01-19T06:14:20Z + 2025-01-19T06:14:26Z + 2025-01-19T06:14:28Z + 2025-01-19T06:14:36Z + 2025-01-19T06:14:37Z + 2025-01-19T06:14:43Z + 2025-01-19T06:14:44Z + 2025-01-19T06:14:51Z + 2025-01-19T06:14:58Z + 2025-01-19T06:15:00Z + 2025-01-19T06:15:06Z + 2025-01-19T06:15:07Z + 2025-01-19T06:15:12Z + 2025-01-19T06:15:16Z + 2025-01-19T06:15:20Z + 2025-01-19T06:15:23Z + 2025-01-19T06:15:27Z + 2025-01-19T06:15:34Z + 2025-01-19T06:15:41Z + 2025-01-19T06:15:49Z + 2025-01-19T06:15:57Z + 2025-01-19T06:16:04Z + 2025-01-19T06:16:06Z + 2025-01-19T06:16:10Z + 2025-01-19T06:16:11Z + 2025-01-19T06:16:14Z + 2025-01-19T06:16:16Z + 2025-01-19T06:16:20Z + 2025-01-19T06:16:21Z + 2025-01-19T06:16:26Z + 2025-01-19T06:16:27Z + 2025-01-19T06:16:32Z + 2025-01-19T06:16:34Z + 2025-01-19T06:16:39Z + 2025-01-19T06:16:43Z + 2025-01-19T06:16:46Z + 2025-01-19T06:16:47Z + 2025-01-19T06:16:53Z + 2025-01-19T06:16:54Z + 2025-01-19T06:16:56Z + 2025-01-19T06:16:57Z + 2025-01-19T06:17:01Z + 2025-01-19T06:17:04Z + 2025-01-19T06:17:08Z + 2025-01-19T06:17:10Z + 2025-01-19T06:17:14Z + 2025-01-19T06:17:16Z + 2025-01-19T06:17:22Z + 2025-01-19T06:17:25Z + 2025-01-19T06:17:30Z + 2025-01-19T06:17:34Z + 2025-01-19T06:17:35Z + 2025-01-19T06:17:38Z + 2025-01-19T06:17:43Z + 2025-01-19T06:17:44Z + 2025-01-19T06:17:50Z + 2025-01-19T06:17:55Z + 2025-01-19T06:17:56Z + 2025-01-19T06:18:00Z + 2025-01-19T06:18:02Z + 2025-01-19T06:18:03Z + 2025-01-19T06:18:09Z + 2025-01-19T06:18:10Z + 2025-01-19T06:18:16Z + 2025-01-19T06:18:23Z + 2025-01-19T06:18:26Z + 2025-01-19T06:18:29Z + 2025-01-19T06:18:31Z + 2025-01-19T06:18:33Z + 2025-01-19T06:18:38Z + 2025-01-19T06:18:39Z + 2025-01-19T06:18:46Z + 2025-01-19T06:18:54Z + 2025-01-19T06:18:55Z + 2025-01-19T06:18:56Z + 2025-01-19T06:18:58Z + 2025-01-19T06:18:59Z + 2025-01-19T06:19:06Z + 2025-01-19T06:19:08Z + 2025-01-19T06:19:12Z + 2025-01-19T06:19:16Z + 2025-01-19T06:19:18Z + 2025-01-19T06:19:25Z + 2025-01-19T06:19:32Z + 2025-01-19T06:19:39Z + 2025-01-19T06:19:42Z + 2025-01-19T06:19:46Z + 2025-01-19T06:19:54Z + 2025-01-19T06:19:55Z + 2025-01-19T06:20:04Z + 2025-01-19T06:20:07Z + 2025-01-19T06:20:12Z + 2025-01-19T06:20:16Z + 2025-01-19T06:20:20Z + 2025-01-19T06:20:24Z + 2025-01-19T06:20:28Z + 2025-01-19T06:20:35Z + 2025-01-19T06:20:44Z + 2025-01-19T06:20:46Z + 2025-01-19T06:20:53Z + 2025-01-19T06:20:56Z + 2025-01-19T06:20:59Z + 2025-01-19T06:21:06Z + 2025-01-19T06:21:12Z + 2025-01-19T06:21:13Z + 2025-01-19T06:21:20Z + 2025-01-19T06:21:22Z + 2025-01-19T06:21:28Z + 2025-01-19T06:21:30Z + 2025-01-19T06:21:37Z + 2025-01-19T06:21:38Z + 2025-01-19T06:21:45Z + 2025-01-19T06:21:48Z + 2025-01-19T06:21:53Z + 2025-01-19T06:21:56Z + 2025-01-19T06:22:00Z + 2025-01-19T06:22:06Z + 2025-01-19T06:22:13Z + 2025-01-19T06:22:18Z + 2025-01-19T06:22:22Z + 2025-01-19T06:22:29Z + 2025-01-19T06:22:35Z + 2025-01-19T06:22:36Z + 2025-01-19T06:22:41Z + 2025-01-19T06:22:43Z + 2025-01-19T06:22:51Z + 2025-01-19T06:22:59Z + 2025-01-19T06:23:07Z + 2025-01-19T06:23:12Z + 2025-01-19T06:23:13Z + 2025-01-19T06:23:19Z + 2025-01-19T06:23:21Z + 2025-01-19T06:23:26Z + 2025-01-19T06:23:27Z + 2025-01-19T06:23:31Z + 2025-01-19T06:23:34Z + 2025-01-19T06:23:42Z + 2025-01-19T06:23:46Z + 2025-01-19T06:23:56Z + 2025-01-19T06:24:04Z + 2025-01-19T06:24:14Z + 2025-01-19T06:24:22Z + 2025-01-19T06:24:24Z + 2025-01-19T06:24:32Z + 2025-01-19T06:24:33Z + 2025-01-19T06:24:39Z + 2025-01-19T06:24:48Z + 2025-01-19T06:24:55Z + 2025-01-19T06:24:58Z + 2025-01-19T06:25:06Z + 2025-01-19T06:25:07Z + 2025-01-19T06:25:10Z + 2025-01-19T06:25:12Z + 2025-01-19T06:25:21Z + 2025-01-19T06:25:25Z + 2025-01-19T06:25:30Z + 2025-01-19T06:25:32Z + 2025-01-19T06:25:35Z + 2025-01-19T06:25:36Z + 2025-01-19T06:25:42Z + 2025-01-19T06:25:45Z + 2025-01-19T06:25:52Z + 2025-01-19T06:25:57Z + 2025-01-19T06:26:00Z + 2025-01-19T06:26:08Z + 2025-01-19T06:26:09Z + 2025-01-19T06:26:15Z + 2025-01-19T06:26:17Z + 2025-01-19T06:26:21Z + 2025-01-19T06:26:24Z + 2025-01-19T06:26:27Z + 2025-01-19T06:26:32Z + 2025-01-19T06:26:36Z + 2025-01-19T06:26:39Z + 2025-01-19T06:26:46Z + 2025-01-19T06:26:52Z + 2025-01-19T06:26:54Z + 2025-01-19T06:26:59Z + 2025-01-19T06:27:05Z + 2025-01-19T06:27:07Z + 2025-01-19T06:27:12Z + 2025-01-19T06:27:19Z + 2025-01-19T06:27:26Z + 2025-01-19T06:27:32Z + 2025-01-19T06:27:35Z + 2025-01-19T06:27:45Z + 2025-01-19T06:27:53Z + 2025-01-19T06:28:00Z + 2025-01-19T06:28:10Z + 2025-01-19T06:28:17Z + 2025-01-19T06:28:25Z + 2025-01-19T06:28:27Z + 2025-01-19T06:28:36Z + 2025-01-19T06:28:46Z + 2025-01-19T06:28:55Z + 2025-01-19T06:29:03Z + 2025-01-19T06:29:13Z + 2025-01-19T06:29:21Z + 2025-01-19T06:29:22Z + 2025-01-19T06:29:26Z + 2025-01-19T06:29:30Z + 2025-01-19T06:29:31Z + 2025-01-19T06:29:36Z + 2025-01-19T06:29:37Z + 2025-01-19T06:29:40Z + 2025-01-19T06:29:47Z + 2025-01-19T06:29:48Z + 2025-01-19T06:29:49Z + 2025-01-19T06:29:57Z + 2025-01-19T06:30:02Z + 2025-01-19T06:30:07Z + 2025-01-19T06:30:12Z + 2025-01-19T06:30:15Z + 2025-01-19T06:30:17Z + 2025-01-19T06:30:21Z + 2025-01-19T06:30:22Z + 2025-01-19T06:30:24Z + 2025-01-19T06:30:32Z + 2025-01-19T06:30:33Z + 2025-01-19T06:30:38Z + 2025-01-19T06:30:43Z + 2025-01-19T06:30:49Z + 2025-01-19T06:30:52Z + 2025-01-19T06:30:53Z + 2025-01-19T06:30:57Z + 2025-01-19T06:31:01Z + 2025-01-19T06:31:02Z + 2025-01-19T06:31:07Z + 2025-01-19T06:31:10Z + 2025-01-19T06:31:17Z + 2025-01-19T06:31:18Z + 2025-01-19T06:31:24Z + 2025-01-19T06:31:25Z + 2025-01-19T06:31:31Z + 2025-01-19T06:31:33Z + 2025-01-19T06:31:37Z + 2025-01-19T06:31:42Z + 2025-01-19T06:31:48Z + 2025-01-19T06:31:51Z + 2025-01-19T06:31:52Z + 2025-01-19T06:31:59Z + 2025-01-19T06:32:00Z + 2025-01-19T06:32:07Z + 2025-01-19T06:32:09Z + 2025-01-19T06:32:11Z + 2025-01-19T06:32:18Z + 2025-01-19T06:32:24Z + 2025-01-19T06:32:31Z + 2025-01-19T06:32:33Z + 2025-01-19T06:32:37Z + 2025-01-19T06:32:44Z + 2025-01-19T06:32:52Z + 2025-01-19T06:32:53Z + 2025-01-19T06:33:01Z + 2025-01-19T06:33:08Z + 2025-01-19T06:33:15Z + 2025-01-19T06:33:17Z + 2025-01-19T06:33:23Z + 2025-01-19T06:33:24Z + 2025-01-19T06:33:28Z + 2025-01-19T06:33:31Z + 2025-01-19T06:33:34Z + 2025-01-19T06:33:43Z + 2025-01-19T06:33:51Z + 2025-01-19T06:33:58Z + 2025-01-19T06:34:05Z + 2025-01-19T06:34:06Z + 2025-01-19T06:34:14Z + 2025-01-19T06:34:18Z + 2025-01-19T06:34:21Z + 2025-01-19T06:34:26Z + 2025-01-19T06:34:29Z + 2025-01-19T06:34:36Z + 2025-01-19T06:34:44Z + 2025-01-19T06:34:53Z + 2025-01-19T06:34:57Z + 2025-01-19T06:34:58Z + 2025-01-19T06:35:07Z + 2025-01-19T06:35:15Z + 2025-01-19T06:35:20Z + 2025-01-19T06:35:23Z + 2025-01-19T06:35:31Z + 2025-01-19T06:35:40Z + 2025-01-19T06:35:44Z + 2025-01-19T06:35:49Z + 2025-01-19T06:35:50Z + 2025-01-19T06:35:57Z + 2025-01-19T06:36:06Z + 2025-01-19T06:36:07Z + 2025-01-19T06:36:15Z + 2025-01-19T06:36:22Z + 2025-01-19T06:36:25Z + 2025-01-19T06:36:31Z + 2025-01-19T06:36:38Z + 2025-01-19T06:36:42Z + 2025-01-19T06:36:48Z + 2025-01-19T06:36:55Z + 2025-01-19T06:37:03Z + 2025-01-19T06:37:11Z + 2025-01-19T06:37:16Z + 2025-01-19T06:37:19Z + 2025-01-19T06:37:21Z + 2025-01-19T06:37:26Z + 2025-01-19T06:37:34Z + 2025-01-19T06:37:40Z + 2025-01-19T06:37:43Z + 2025-01-19T06:37:47Z + 2025-01-19T06:37:52Z + 2025-01-19T06:37:58Z + 2025-01-19T06:38:00Z + 2025-01-19T06:38:04Z + 2025-01-19T06:38:08Z + 2025-01-19T06:38:17Z + 2025-01-19T06:38:25Z + 2025-01-19T06:38:26Z + 2025-01-19T06:38:29Z + 2025-01-19T06:38:31Z + 2025-01-19T06:38:32Z + 2025-01-19T06:38:34Z + 2025-01-19T06:38:38Z + 2025-01-19T06:38:41Z + 2025-01-19T06:38:50Z + 2025-01-19T06:38:51Z + 2025-01-19T06:38:54Z + 2025-01-19T06:38:58Z + 2025-01-19T06:39:07Z + 2025-01-19T06:39:13Z + 2025-01-19T06:39:15Z + 2025-01-19T06:39:23Z + 2025-01-19T06:39:32Z + 2025-01-19T06:39:38Z + 2025-01-19T06:39:40Z + 2025-01-19T06:39:49Z + 2025-01-19T06:39:57Z + 2025-01-19T06:40:04Z + 2025-01-19T06:40:09Z + 2025-01-19T06:40:13Z + 2025-01-19T06:40:16Z + 2025-01-19T06:40:20Z + 2025-01-19T06:40:29Z + 2025-01-19T06:40:38Z + 2025-01-19T06:40:43Z + 2025-01-19T06:40:45Z + 2025-01-19T06:40:47Z + 2025-01-19T06:40:52Z + 2025-01-19T06:40:59Z + 2025-01-19T06:41:06Z + 2025-01-19T06:41:10Z + 2025-01-19T06:41:12Z + 2025-01-19T06:41:20Z + 2025-01-19T06:41:24Z + 2025-01-19T06:41:25Z + 2025-01-19T06:41:31Z + 2025-01-19T06:41:37Z + 2025-01-19T06:41:41Z + 2025-01-19T06:41:43Z + 2025-01-19T06:41:49Z + 2025-01-19T06:41:54Z + 2025-01-19T06:41:59Z + 2025-01-19T06:42:03Z + 2025-01-19T06:42:06Z + 2025-01-19T06:42:14Z + 2025-01-19T06:42:21Z + 2025-01-19T06:42:22Z + 2025-01-19T06:42:29Z + 2025-01-19T06:42:31Z + 2025-01-19T06:42:32Z + 2025-01-19T06:42:37Z + 2025-01-19T06:42:42Z + 2025-01-19T06:42:48Z + 2025-01-19T06:42:54Z + 2025-01-19T06:43:01Z + 2025-01-19T06:43:08Z + 2025-01-19T06:43:16Z + 2025-01-19T06:43:24Z + 2025-01-19T06:43:27Z + 2025-01-19T06:43:31Z + 2025-01-19T06:43:38Z + 2025-01-19T06:43:43Z + 2025-01-19T06:43:45Z + 2025-01-19T06:43:51Z + 2025-01-19T06:43:54Z + 2025-01-19T06:44:03Z + 2025-01-19T06:44:09Z + 2025-01-19T06:44:17Z + 2025-01-19T06:44:24Z + 2025-01-19T06:44:33Z + 2025-01-19T06:44:39Z + 2025-01-19T06:44:40Z + 2025-01-19T06:44:46Z + 2025-01-19T06:44:53Z + 2025-01-19T06:45:00Z + 2025-01-19T06:45:09Z + 2025-01-19T06:45:20Z + 2025-01-19T06:45:28Z + 2025-01-19T06:45:31Z + 2025-01-19T06:45:39Z + 2025-01-19T06:45:48Z + 2025-01-19T06:45:49Z + 2025-01-19T06:45:54Z + 2025-01-19T06:46:00Z + 2025-01-19T06:46:02Z + 2025-01-19T06:46:12Z + 2025-01-19T06:46:19Z + 2025-01-19T06:46:24Z + 2025-01-19T06:46:31Z + 2025-01-19T06:46:32Z + 2025-01-19T06:46:38Z + 2025-01-19T06:46:45Z + 2025-01-19T06:46:51Z + 2025-01-19T06:46:52Z + 2025-01-19T06:46:54Z + 2025-01-19T06:47:00Z + 2025-01-19T06:47:07Z + 2025-01-19T06:47:10Z + 2025-01-19T06:47:19Z + 2025-01-19T06:47:21Z + 2025-01-19T06:47:27Z + 2025-01-19T06:47:35Z + 2025-01-19T06:47:39Z + 2025-01-19T06:47:43Z + 2025-01-19T06:47:48Z + 2025-01-19T06:47:51Z + 2025-01-19T06:47:53Z + 2025-01-19T06:47:56Z + 2025-01-19T06:48:05Z + 2025-01-19T06:48:08Z + 2025-01-19T06:48:12Z + 2025-01-19T06:48:18Z + 2025-01-19T06:48:21Z + 2025-01-19T06:48:22Z + 2025-01-19T06:48:23Z + 2025-01-19T06:48:25Z + 2025-01-19T06:48:32Z + 2025-01-19T06:48:35Z + 2025-01-19T06:48:42Z + 2025-01-19T06:48:48Z + 2025-01-19T06:48:50Z + 2025-01-19T06:48:52Z + 2025-01-19T06:48:57Z + 2025-01-19T06:49:07Z + 2025-01-19T06:49:18Z + 2025-01-19T06:49:19Z + 2025-01-19T06:49:28Z + 2025-01-19T06:49:31Z + 2025-01-19T06:49:33Z + 2025-01-19T06:49:43Z + 2025-01-19T06:49:47Z + 2025-01-19T06:49:51Z + 2025-01-19T06:49:59Z + 2025-01-19T06:50:02Z + 2025-01-19T06:50:14Z + 2025-01-19T06:50:22Z + 2025-01-19T06:50:26Z + 2025-01-19T06:50:37Z + 2025-01-19T06:50:41Z + 2025-01-19T06:50:51Z + 2025-01-19T06:50:58Z + 2025-01-19T06:51:02Z + 2025-01-19T06:51:10Z + 2025-01-19T06:51:19Z + 2025-01-19T06:51:23Z + 2025-01-19T06:51:36Z + 2025-01-19T06:51:44Z + 2025-01-19T06:51:53Z + 2025-01-19T06:52:01Z + 2025-01-19T06:52:04Z + 2025-01-19T06:52:08Z + 2025-01-19T06:52:10Z + 2025-01-19T06:52:18Z + 2025-01-19T06:52:28Z + 2025-01-19T06:52:32Z + 2025-01-19T06:52:35Z + 2025-01-19T06:52:37Z + 2025-01-19T06:52:39Z + 2025-01-19T06:52:53Z + 2025-01-19T06:52:58Z + 2025-01-19T06:53:09Z + 2025-01-19T06:53:24Z + 2025-01-19T06:53:28Z + 2025-01-19T06:53:38Z + 2025-01-19T06:53:50Z + 2025-01-19T06:54:10Z + 2025-01-19T06:54:24Z + 2025-01-19T06:54:29Z + 2025-01-19T06:54:43Z + 2025-01-19T06:54:44Z + 2025-01-19T06:54:50Z + 2025-01-19T06:54:52Z + 2025-01-19T06:54:54Z + 2025-01-19T06:55:08Z + 2025-01-19T06:55:16Z + 2025-01-19T06:55:19Z + 2025-01-19T06:55:21Z + 2025-01-19T06:55:23Z + 2025-01-19T06:55:28Z + 2025-01-19T06:55:31Z + 2025-01-19T06:55:33Z + 2025-01-19T06:55:34Z + 2025-01-19T06:55:35Z + 2025-01-19T06:55:37Z + 2025-01-19T06:55:40Z + 2025-01-19T06:55:49Z + 2025-01-19T06:55:50Z + 2025-01-19T06:56:00Z + 2025-01-19T06:56:04Z + 2025-01-19T06:56:07Z + 2025-01-19T06:56:10Z + 2025-01-19T06:56:15Z + 2025-01-19T06:56:22Z + 2025-01-19T06:56:27Z + 2025-01-19T06:56:31Z + 2025-01-19T06:56:33Z + 2025-01-19T06:56:35Z + 2025-01-19T06:56:39Z + 2025-01-19T06:56:44Z + 2025-01-19T06:56:47Z + 2025-01-19T06:56:53Z + 2025-01-19T06:56:55Z + 2025-01-19T06:57:03Z + 2025-01-19T06:57:07Z + 2025-01-19T06:57:10Z + 2025-01-19T06:57:15Z + 2025-01-19T06:57:17Z + 2025-01-19T06:57:22Z + 2025-01-19T06:57:25Z + 2025-01-19T06:57:28Z + 2025-01-19T06:57:31Z + 2025-01-19T06:57:34Z + 2025-01-19T06:57:42Z + 2025-01-19T06:57:48Z + 2025-01-19T06:57:56Z + 2025-01-19T06:57:59Z + 2025-01-19T06:58:04Z + 2025-01-19T06:58:08Z + 2025-01-19T06:58:12Z + 2025-01-19T06:58:17Z + 2025-01-19T06:58:18Z + 2025-01-19T06:58:20Z + 2025-01-19T06:58:31Z + 2025-01-19T06:58:36Z + 2025-01-19T06:58:38Z + 2025-01-19T06:58:46Z + 2025-01-19T06:58:52Z + 2025-01-19T06:58:55Z + 2025-01-19T06:59:01Z + 2025-01-19T06:59:03Z + 2025-01-19T06:59:07Z + 2025-01-19T06:59:11Z + 2025-01-19T06:59:20Z + 2025-01-19T06:59:29Z + 2025-01-19T06:59:36Z + 2025-01-19T06:59:45Z + 2025-01-19T06:59:49Z + 2025-01-19T06:59:53Z + 2025-01-19T07:00:00Z + 2025-01-19T07:00:09Z + 2025-01-19T07:00:10Z + 2025-01-19T07:00:19Z + 2025-01-19T07:00:25Z + 2025-01-19T07:00:33Z + 2025-01-19T07:00:40Z + 2025-01-19T07:00:46Z + 2025-01-19T07:00:49Z + 2025-01-19T07:00:57Z + 2025-01-19T07:01:03Z + 2025-01-19T07:01:04Z + 2025-01-19T07:01:11Z + 2025-01-19T07:01:18Z + 2025-01-19T07:01:20Z + 2025-01-19T07:01:21Z + 2025-01-19T07:01:26Z + 2025-01-19T07:01:28Z + 2025-01-19T07:01:37Z + 2025-01-19T07:01:38Z + 2025-01-19T07:01:49Z + 2025-01-19T07:01:50Z + 2025-01-19T07:01:55Z + 2025-01-19T07:02:03Z + 2025-01-19T07:02:13Z + 2025-01-19T07:02:14Z + 2025-01-19T07:02:18Z + 2025-01-19T07:02:21Z + 2025-01-19T07:02:22Z + 2025-01-19T07:02:25Z + 2025-01-19T07:02:28Z + 2025-01-19T07:02:31Z + 2025-01-19T07:02:39Z + 2025-01-19T07:02:42Z + 2025-01-19T07:02:44Z + 2025-01-19T07:02:48Z + 2025-01-19T07:02:50Z + 2025-01-19T07:02:55Z + 2025-01-19T07:02:57Z + 2025-01-19T07:03:04Z + 2025-01-19T07:03:08Z + 2025-01-19T07:03:11Z + 2025-01-19T07:03:19Z + 2025-01-19T07:03:24Z + 2025-01-19T07:03:27Z + 2025-01-19T07:03:37Z + 2025-01-19T07:03:44Z + 2025-01-19T07:03:48Z + 2025-01-19T07:03:52Z + 2025-01-19T07:03:58Z + 2025-01-19T07:04:02Z + 2025-01-19T07:04:05Z + 2025-01-19T07:04:06Z + 2025-01-19T07:04:09Z + 2025-01-19T07:04:11Z + 2025-01-19T07:04:12Z + 2025-01-19T07:04:13Z + 2025-01-19T07:04:17Z + 2025-01-19T07:04:18Z + 2025-01-19T07:04:20Z + 2025-01-19T07:04:24Z + 2025-01-19T07:04:26Z + 2025-01-19T07:04:29Z + 2025-01-19T07:04:33Z + 2025-01-19T07:04:38Z + 2025-01-19T07:04:41Z + 2025-01-19T07:04:47Z + 2025-01-19T07:04:50Z + 2025-01-19T07:04:53Z + 2025-01-19T07:04:55Z + 2025-01-19T07:04:58Z + 2025-01-19T07:05:03Z + 2025-01-19T07:05:07Z + 2025-01-19T07:05:09Z + 2025-01-19T07:05:15Z + 2025-01-19T07:05:17Z + 2025-01-19T07:05:24Z + 2025-01-19T07:05:27Z + 2025-01-19T07:05:33Z + 2025-01-19T07:05:42Z + 2025-01-19T07:05:43Z + 2025-01-19T07:05:46Z + 2025-01-19T07:05:50Z + 2025-01-19T07:05:51Z + 2025-01-19T07:05:58Z + 2025-01-19T07:06:25Z + 2025-01-19T07:06:33Z + 2025-01-19T07:06:42Z + 2025-01-19T07:06:45Z + 2025-01-19T07:06:56Z + 2025-01-19T07:06:57Z + 2025-01-19T07:06:58Z + 2025-01-19T07:07:00Z + 2025-01-19T07:07:41Z + 2025-01-19T07:07:59Z + 2025-01-19T07:08:01Z + 2025-01-19T07:08:02Z + 2025-01-19T07:08:06Z + 2025-01-19T07:08:10Z + 2025-01-19T07:08:15Z + 2025-01-19T07:08:21Z + 2025-01-19T07:08:31Z + 2025-01-19T07:08:35Z + 2025-01-19T07:08:42Z + 2025-01-19T07:08:45Z + 2025-01-19T07:08:47Z + 2025-01-19T07:08:51Z + 2025-01-19T07:08:52Z + 2025-01-19T07:08:54Z + 2025-01-19T07:09:02Z + 2025-01-19T07:09:08Z + 2025-01-19T07:09:11Z + 2025-01-19T07:09:13Z + 2025-01-19T07:09:16Z + 2025-01-19T07:09:20Z + 2025-01-19T07:12:26Z + 2025-01-19T07:12:27Z + 2025-01-19T07:13:27Z + 2025-01-19T07:13:31Z + 2025-01-19T07:13:33Z + 2025-01-19T07:13:37Z + 2025-01-19T07:13:39Z + 2025-01-19T07:13:42Z + 2025-01-19T07:13:43Z + 2025-01-19T07:13:46Z + 2025-01-19T07:13:47Z + 2025-01-19T07:13:48Z + 2025-01-19T07:13:53Z + 2025-01-19T07:13:54Z + 2025-01-19T07:13:58Z + 2025-01-19T07:14:02Z + 2025-01-19T07:14:05Z + 2025-01-19T07:14:12Z + 2025-01-19T07:14:19Z + 2025-01-19T07:14:26Z + 2025-01-19T07:14:33Z + 2025-01-19T07:14:35Z + 2025-01-19T07:14:36Z + 2025-01-19T07:14:52Z + 2025-01-19T07:14:59Z + 2025-01-19T07:15:03Z + 2025-01-19T07:15:04Z + 2025-01-19T07:15:05Z + 2025-01-19T07:15:09Z + 2025-01-19T07:15:12Z + 2025-01-19T07:15:16Z + 2025-01-19T07:15:21Z + 2025-01-19T07:15:32Z + 2025-01-19T07:15:37Z + 2025-01-19T07:15:42Z + 2025-01-19T07:15:43Z + 2025-01-19T07:15:46Z + 2025-01-19T07:15:49Z + 2025-01-19T07:15:51Z + 2025-01-19T07:15:53Z + 2025-01-19T07:15:58Z + 2025-01-19T07:15:59Z + 2025-01-19T07:16:07Z + 2025-01-19T07:16:08Z + 2025-01-19T07:16:10Z + 2025-01-19T07:16:12Z + 2025-01-19T07:16:26Z + 2025-01-19T07:16:28Z + 2025-01-19T07:16:33Z + 2025-01-19T07:16:35Z + 2025-01-19T07:16:40Z + 2025-01-19T07:16:42Z + 2025-01-19T07:16:45Z + 2025-01-19T07:16:47Z + 2025-01-19T07:16:50Z + 2025-01-19T07:16:52Z + 2025-01-19T07:16:54Z + 2025-01-19T07:16:59Z + 2025-01-19T07:17:01Z + 2025-01-19T07:17:04Z + 2025-01-19T07:17:06Z + 2025-01-19T07:17:13Z + 2025-01-19T07:17:16Z + 2025-01-19T07:17:22Z + 2025-01-19T07:17:28Z + 2025-01-19T07:17:29Z + 2025-01-19T07:17:35Z + 2025-01-19T07:17:41Z + 2025-01-19T07:17:47Z + 2025-01-19T07:18:00Z + 2025-01-19T07:18:08Z + 2025-01-19T07:18:10Z + 2025-01-19T07:18:14Z + 2025-01-19T07:18:18Z + 2025-01-19T07:18:20Z + 2025-01-19T07:18:27Z + 2025-01-19T07:18:30Z + 2025-01-19T07:18:40Z + 2025-01-19T07:18:46Z + 2025-01-19T07:18:50Z + 2025-01-19T07:18:53Z + 2025-01-19T07:18:59Z + 2025-01-19T07:19:06Z + 2025-01-19T07:19:13Z + 2025-01-19T07:19:23Z + 2025-01-19T07:19:29Z + 2025-01-19T07:19:36Z + 2025-01-19T07:19:45Z + 2025-01-19T07:19:51Z + 2025-01-19T07:19:59Z + 2025-01-19T07:20:07Z + 2025-01-19T07:20:09Z + 2025-01-19T07:20:13Z + 2025-01-19T07:20:19Z + 2025-01-19T07:20:21Z + 2025-01-19T07:20:29Z + 2025-01-19T07:20:35Z + 2025-01-19T07:20:43Z + 2025-01-19T07:20:48Z + 2025-01-19T07:20:52Z + 2025-01-19T07:20:54Z + 2025-01-19T07:20:59Z + 2025-01-19T07:21:00Z + 2025-01-19T07:21:06Z + 2025-01-19T07:21:07Z + 2025-01-19T07:21:13Z + 2025-01-19T07:21:19Z + 2025-01-19T07:21:21Z + 2025-01-19T07:21:24Z + 2025-01-19T07:21:29Z + 2025-01-19T07:21:34Z + 2025-01-19T07:21:38Z + 2025-01-19T07:21:44Z + 2025-01-19T07:21:51Z + 2025-01-19T07:21:57Z + 2025-01-19T07:22:00Z + 2025-01-19T07:22:02Z + 2025-01-19T07:22:09Z + 2025-01-19T07:22:16Z + 2025-01-19T07:22:24Z + 2025-01-19T07:22:31Z + 2025-01-19T07:22:40Z + 2025-01-19T07:22:52Z + 2025-01-19T07:22:53Z + 2025-01-19T07:22:58Z + 2025-01-19T07:23:00Z + 2025-01-19T07:23:10Z + 2025-01-19T07:23:23Z + 2025-01-19T07:23:29Z + 2025-01-19T07:23:33Z + 2025-01-19T07:23:38Z + 2025-01-19T07:23:40Z + 2025-01-19T07:23:42Z + 2025-01-19T07:23:49Z + 2025-01-19T07:23:52Z + 2025-01-19T07:23:53Z + 2025-01-19T07:23:59Z + 2025-01-19T07:24:04Z + 2025-01-19T07:24:10Z + 2025-01-19T07:24:24Z + 2025-01-19T07:24:25Z + 2025-01-19T07:24:36Z + 2025-01-19T07:24:37Z + 2025-01-19T07:24:52Z + 2025-01-19T07:24:54Z + 2025-01-19T07:24:57Z + 2025-01-19T07:25:00Z + 2025-01-19T07:25:06Z + 2025-01-19T07:25:08Z + 2025-01-19T07:25:15Z + 2025-01-19T07:25:16Z + 2025-01-19T07:25:17Z + 2025-01-19T07:25:25Z + 2025-01-19T07:25:27Z + 2025-01-19T07:25:28Z + 2025-01-19T07:25:36Z + 2025-01-19T07:25:43Z + 2025-01-19T07:25:44Z + 2025-01-19T07:25:48Z + 2025-01-19T07:25:50Z + 2025-01-19T07:25:56Z + 2025-01-19T07:25:58Z + 2025-01-19T07:26:03Z + 2025-01-19T07:26:06Z + 2025-01-19T07:26:13Z + 2025-01-19T07:26:28Z + 2025-01-19T07:26:37Z + 2025-01-19T07:26:44Z + 2025-01-19T07:26:49Z + 2025-01-19T07:26:52Z + 2025-01-19T07:26:59Z + 2025-01-19T07:27:01Z + 2025-01-19T07:27:09Z + 2025-01-19T07:27:16Z + 2025-01-19T07:27:23Z + 2025-01-19T07:27:29Z + 2025-01-19T07:27:31Z + 2025-01-19T07:27:41Z + 2025-01-19T07:27:42Z + 2025-01-19T07:27:49Z + 2025-01-19T07:27:52Z + 2025-01-19T07:27:57Z + 2025-01-19T07:28:07Z + 2025-01-19T07:28:14Z + 2025-01-19T07:28:19Z + 2025-01-19T07:28:27Z + 2025-01-19T07:28:35Z + 2025-01-19T07:28:41Z + 2025-01-19T07:28:45Z + 2025-01-19T07:28:50Z + 2025-01-19T07:28:58Z + 2025-01-19T07:29:00Z + 2025-01-19T07:29:04Z + 2025-01-19T07:29:10Z + 2025-01-19T07:29:14Z + 2025-01-19T07:29:15Z + 2025-01-19T07:29:17Z + 2025-01-19T07:29:23Z + 2025-01-19T07:29:24Z + 2025-01-19T07:29:31Z + 2025-01-19T07:29:36Z + 2025-01-19T07:29:38Z + 2025-01-19T07:29:40Z + 2025-01-19T07:29:41Z + 2025-01-19T07:29:47Z + 2025-01-19T07:29:48Z + 2025-01-19T07:29:49Z + 2025-01-19T07:29:52Z + 2025-01-19T07:29:55Z + 2025-01-19T07:30:03Z + 2025-01-19T07:30:07Z + 2025-01-19T07:30:09Z + 2025-01-19T07:30:18Z + 2025-01-19T07:30:24Z + 2025-01-19T07:30:26Z + 2025-01-19T07:30:29Z + 2025-01-19T07:30:31Z + 2025-01-19T07:30:35Z + 2025-01-19T07:30:41Z + 2025-01-19T07:30:43Z + 2025-01-19T07:30:45Z + 2025-01-19T07:30:46Z + 2025-01-19T07:30:48Z + 2025-01-19T07:30:53Z + 2025-01-19T07:31:00Z + 2025-01-19T07:31:07Z + 2025-01-19T07:31:14Z + 2025-01-19T07:31:23Z + 2025-01-19T07:31:29Z + 2025-01-19T07:31:37Z + 2025-01-19T07:31:44Z + 2025-01-19T07:31:51Z + 2025-01-19T07:31:56Z + 2025-01-19T07:31:59Z + 2025-01-19T07:32:05Z + 2025-01-19T07:32:09Z + 2025-01-19T07:32:16Z + 2025-01-19T07:32:20Z + 2025-01-19T07:32:29Z + 2025-01-19T07:32:36Z + 2025-01-19T07:32:43Z + 2025-01-19T07:32:50Z + 2025-01-19T07:32:58Z + 2025-01-19T07:33:00Z + 2025-01-19T07:33:04Z + 2025-01-19T07:33:11Z + 2025-01-19T07:33:18Z + 2025-01-19T07:33:25Z + 2025-01-19T07:33:31Z + 2025-01-19T07:33:38Z + 2025-01-19T07:33:47Z + 2025-01-19T07:33:50Z + 2025-01-19T07:33:55Z + 2025-01-19T07:34:01Z + 2025-01-19T07:34:08Z + 2025-01-19T07:34:16Z + 2025-01-19T07:34:21Z + 2025-01-19T07:34:25Z + 2025-01-19T07:34:34Z + 2025-01-19T07:34:44Z + 2025-01-19T07:34:49Z + 2025-01-19T07:34:53Z + 2025-01-19T07:35:03Z + 2025-01-19T07:35:08Z + 2025-01-19T07:35:10Z + 2025-01-19T07:35:13Z + 2025-01-19T07:35:18Z + 2025-01-19T07:35:26Z + 2025-01-19T07:35:35Z + 2025-01-19T07:35:41Z + 2025-01-19T07:35:45Z + 2025-01-19T07:35:52Z + 2025-01-19T07:35:58Z + 2025-01-19T07:36:02Z + 2025-01-19T07:36:06Z + 2025-01-19T07:36:09Z + 2025-01-19T07:36:15Z + 2025-01-19T07:36:18Z + 2025-01-19T07:36:21Z + 2025-01-19T07:36:23Z + 2025-01-19T07:36:25Z + 2025-01-19T07:36:29Z + 2025-01-19T07:36:30Z + 2025-01-19T07:36:31Z + 2025-01-19T07:36:34Z + 2025-01-19T07:36:35Z + 2025-01-19T07:36:43Z + 2025-01-19T07:36:48Z + 2025-01-19T07:36:51Z + 2025-01-19T07:36:58Z + 2025-01-19T07:37:04Z + 2025-01-19T07:37:07Z + 2025-01-19T07:37:14Z + 2025-01-19T07:37:18Z + 2025-01-19T07:37:22Z + 2025-01-19T07:37:31Z + 2025-01-19T07:37:38Z + 2025-01-19T07:37:45Z + 2025-01-19T07:37:51Z + 2025-01-19T07:37:59Z + 2025-01-19T07:38:00Z + 2025-01-19T07:38:06Z + 2025-01-19T07:38:14Z + 2025-01-19T07:38:21Z + 2025-01-19T07:38:30Z + 2025-01-19T07:38:32Z + 2025-01-19T07:38:36Z + 2025-01-19T07:38:43Z + 2025-01-19T07:38:48Z + 2025-01-19T07:38:49Z + 2025-01-19T07:38:55Z + 2025-01-19T07:38:57Z + 2025-01-19T07:39:03Z + 2025-01-19T07:39:06Z + 2025-01-19T07:39:07Z + 2025-01-19T07:39:13Z + 2025-01-19T07:39:17Z + 2025-01-19T07:39:19Z + 2025-01-19T07:39:25Z + 2025-01-19T07:39:26Z + 2025-01-19T07:39:27Z + 2025-01-19T07:39:30Z + 2025-01-19T07:39:35Z + 2025-01-19T07:39:42Z + 2025-01-19T07:39:49Z + 2025-01-19T07:39:53Z + 2025-01-19T07:39:55Z + 2025-01-19T07:40:01Z + 2025-01-19T07:40:03Z + 2025-01-19T07:40:11Z + 2025-01-19T07:40:16Z + 2025-01-19T07:40:17Z + 2025-01-19T07:40:22Z + 2025-01-19T07:40:30Z + 2025-01-19T07:40:31Z + 2025-01-19T07:40:40Z + 2025-01-19T07:40:46Z + 2025-01-19T07:40:54Z + 2025-01-19T07:41:03Z + 2025-01-19T07:41:07Z + 2025-01-19T07:41:12Z + 2025-01-19T07:41:17Z + 2025-01-19T07:41:23Z + 2025-01-19T07:41:26Z + 2025-01-19T07:41:28Z + 2025-01-19T07:41:37Z + 2025-01-19T07:41:45Z + 2025-01-19T07:41:52Z + 2025-01-19T07:42:02Z + 2025-01-19T07:42:05Z + 2025-01-19T07:42:11Z + 2025-01-19T07:42:19Z + 2025-01-19T07:42:27Z + 2025-01-19T07:42:29Z + 2025-01-19T07:42:33Z + 2025-01-19T07:42:40Z + 2025-01-19T07:42:46Z + 2025-01-19T07:42:49Z + 2025-01-19T07:42:55Z + 2025-01-19T07:43:02Z + 2025-01-19T07:43:08Z + 2025-01-19T07:43:14Z + 2025-01-19T07:43:18Z + 2025-01-19T07:43:20Z + 2025-01-19T07:43:27Z + 2025-01-19T07:43:33Z + 2025-01-19T07:43:35Z + 2025-01-19T07:43:39Z + 2025-01-19T07:43:45Z + 2025-01-19T07:43:52Z + 2025-01-19T07:43:59Z + 2025-01-19T07:44:09Z + 2025-01-19T07:44:15Z + 2025-01-19T07:44:16Z + 2025-01-19T07:44:17Z + 2025-01-19T07:44:18Z + 2025-01-19T07:44:19Z + 2025-01-19T07:44:20Z + 2025-01-19T07:44:25Z + 2025-01-19T07:44:26Z + 2025-01-19T07:44:31Z + 2025-01-19T07:44:32Z + 2025-01-19T07:44:37Z + 2025-01-19T07:44:38Z + 2025-01-19T07:44:40Z + 2025-01-19T07:44:42Z + 2025-01-19T07:44:43Z + 2025-01-19T07:44:44Z + 2025-01-19T07:44:46Z + 2025-01-19T07:44:54Z + 2025-01-19T07:44:56Z + 2025-01-19T07:44:59Z + 2025-01-19T07:45:00Z + 2025-01-19T07:45:01Z + 2025-01-19T07:45:04Z + 2025-01-19T07:45:06Z + 2025-01-19T07:45:10Z + 2025-01-19T07:45:11Z + 2025-01-19T07:45:13Z + 2025-01-19T07:45:14Z + 2025-01-19T07:45:15Z + 2025-01-19T07:45:20Z + 2025-01-19T07:45:22Z + 2025-01-19T07:45:31Z + 2025-01-19T07:45:37Z + 2025-01-19T07:45:39Z + 2025-01-19T07:45:45Z + 2025-01-19T07:45:51Z + 2025-01-19T07:45:55Z + 2025-01-19T07:46:03Z + 2025-01-19T07:46:11Z + 2025-01-19T07:46:15Z + 2025-01-19T07:46:33Z + 2025-01-19T07:46:46Z + 2025-01-19T07:46:49Z + 2025-01-19T07:46:53Z + 2025-01-19T07:46:54Z + 2025-01-19T07:46:55Z + 2025-01-19T07:46:57Z + 2025-01-19T07:47:02Z + 2025-01-19T07:47:04Z + 2025-01-19T07:47:06Z + 2025-01-19T07:47:09Z + 2025-01-19T07:47:12Z + 2025-01-19T07:47:14Z + 2025-01-19T07:47:19Z + 2025-01-19T07:47:20Z + 2025-01-19T07:47:27Z + 2025-01-19T07:47:33Z + 2025-01-19T07:47:38Z + 2025-01-19T07:47:40Z + 2025-01-19T07:47:41Z + 2025-01-19T07:47:42Z + 2025-01-19T07:47:46Z + 2025-01-19T07:47:52Z + 2025-01-19T07:47:57Z + 2025-01-19T07:48:00Z + 2025-01-19T07:48:03Z + 2025-01-19T07:48:06Z + 2025-01-19T07:48:11Z + 2025-01-19T07:48:17Z + 2025-01-19T07:48:22Z + 2025-01-19T07:48:27Z + 2025-01-19T07:48:33Z + 2025-01-19T07:48:38Z + 2025-01-19T07:48:41Z + 2025-01-19T07:48:46Z + 2025-01-19T07:48:50Z + 2025-01-19T07:48:54Z + 2025-01-19T07:48:56Z + 2025-01-19T07:49:02Z + 2025-01-19T07:49:09Z + 2025-01-19T07:49:13Z + 2025-01-19T07:49:19Z + 2025-01-19T07:49:25Z + 2025-01-19T07:49:28Z + 2025-01-19T07:49:29Z + 2025-01-19T07:49:33Z + 2025-01-19T07:49:38Z + 2025-01-19T07:49:44Z + 2025-01-19T07:49:48Z + 2025-01-19T07:49:53Z + 2025-01-19T07:49:59Z + 2025-01-19T07:50:05Z + 2025-01-19T07:50:06Z + 2025-01-19T07:50:10Z + 2025-01-19T07:50:15Z + 2025-01-19T07:50:22Z + 2025-01-19T07:50:25Z + 2025-01-19T07:50:27Z + 2025-01-19T07:50:35Z + 2025-01-19T07:50:41Z + 2025-01-19T07:50:46Z + 2025-01-19T07:50:59Z + 2025-01-19T07:51:12Z + 2025-01-19T07:51:15Z + 2025-01-19T07:51:19Z + 2025-01-19T07:51:21Z + 2025-01-19T07:51:29Z + 2025-01-19T07:51:33Z + 2025-01-19T07:51:39Z + 2025-01-19T07:51:48Z + 2025-01-19T07:52:00Z + 2025-01-19T07:52:04Z + 2025-01-19T07:52:08Z + 2025-01-19T07:52:11Z + 2025-01-19T07:52:16Z + 2025-01-19T07:52:20Z + 2025-01-19T07:52:28Z + 2025-01-19T07:52:30Z + 2025-01-19T07:52:41Z + 2025-01-19T07:52:49Z + 2025-01-19T07:52:55Z + 2025-01-19T07:53:04Z + 2025-01-19T07:53:08Z + 2025-01-19T07:53:09Z + 2025-01-19T07:53:14Z + 2025-01-19T07:53:21Z + 2025-01-19T07:53:27Z + 2025-01-19T07:53:34Z + 2025-01-19T07:53:39Z + 2025-01-19T07:53:44Z + 2025-01-19T07:53:51Z + 2025-01-19T07:53:58Z + 2025-01-19T07:54:03Z + 2025-01-19T07:54:09Z + 2025-01-19T07:54:13Z + 2025-01-19T07:54:19Z + 2025-01-19T07:54:23Z + 2025-01-19T07:54:27Z + 2025-01-19T07:54:29Z + 2025-01-19T07:54:35Z + 2025-01-19T07:54:39Z + 2025-01-19T07:54:44Z + 2025-01-19T07:54:50Z + 2025-01-19T07:54:58Z + 2025-01-19T07:55:06Z + 2025-01-19T07:55:12Z + 2025-01-19T07:55:19Z + 2025-01-19T07:55:24Z + 2025-01-19T07:55:31Z + 2025-01-19T07:55:39Z + 2025-01-19T07:55:43Z + 2025-01-19T07:55:46Z + 2025-01-19T07:55:49Z + 2025-01-19T07:55:53Z + 2025-01-19T07:56:00Z + 2025-01-19T07:56:06Z + 2025-01-19T07:56:08Z + 2025-01-19T07:56:11Z + 2025-01-19T07:56:15Z + 2025-01-19T07:56:22Z + 2025-01-19T07:56:28Z + 2025-01-19T07:56:30Z + 2025-01-19T07:56:35Z + 2025-01-19T07:56:42Z + 2025-01-19T07:56:45Z + 2025-01-19T07:56:47Z + 2025-01-19T07:56:49Z + 2025-01-19T07:56:55Z + 2025-01-19T07:57:00Z + 2025-01-19T07:57:05Z + 2025-01-19T07:57:09Z + 2025-01-19T07:57:13Z + 2025-01-19T07:57:14Z + 2025-01-19T07:57:17Z + 2025-01-19T07:57:21Z + 2025-01-19T07:57:25Z + 2025-01-19T07:57:27Z + 2025-01-19T07:57:29Z + 2025-01-19T07:57:35Z + 2025-01-19T07:57:39Z + 2025-01-19T07:57:43Z + 2025-01-19T07:57:48Z + 2025-01-19T07:57:52Z + 2025-01-19T07:57:54Z + 2025-01-19T07:57:56Z + 2025-01-19T07:57:58Z + 2025-01-19T07:58:02Z + 2025-01-19T07:58:06Z + 2025-01-19T07:58:12Z + 2025-01-19T07:58:19Z + 2025-01-19T07:58:22Z + 2025-01-19T07:58:27Z + 2025-01-19T07:58:32Z + 2025-01-19T07:58:34Z + 2025-01-19T07:58:38Z + 2025-01-19T07:58:40Z + 2025-01-19T07:58:42Z + 2025-01-19T07:58:47Z + 2025-01-19T07:58:53Z + 2025-01-19T07:58:59Z + 2025-01-19T07:59:04Z + 2025-01-19T07:59:09Z + 2025-01-19T07:59:13Z + 2025-01-19T07:59:18Z + 2025-01-19T07:59:23Z + 2025-01-19T07:59:28Z + 2025-01-19T07:59:30Z + 2025-01-19T07:59:36Z + 2025-01-19T07:59:41Z + 2025-01-19T07:59:45Z + 2025-01-19T07:59:51Z + 2025-01-19T07:59:56Z + 2025-01-19T08:00:02Z + 2025-01-19T08:00:08Z + 2025-01-19T08:00:13Z + 2025-01-19T08:00:17Z + 2025-01-19T08:00:41Z + 2025-01-19T08:00:44Z + 2025-01-19T08:00:46Z + 2025-01-19T08:00:49Z + 2025-01-19T08:00:52Z + 2025-01-19T08:00:58Z + 2025-01-19T08:01:00Z + 2025-01-19T08:01:06Z + 2025-01-19T08:01:07Z + 2025-01-19T08:01:12Z + 2025-01-19T08:01:14Z + 2025-01-19T08:01:18Z + 2025-01-19T08:01:23Z + 2025-01-19T08:01:28Z + 2025-01-19T08:01:31Z + 2025-01-19T08:01:36Z + 2025-01-19T08:01:41Z + 2025-01-19T08:01:44Z + 2025-01-19T08:01:51Z + 2025-01-19T08:01:57Z + 2025-01-19T08:02:04Z + 2025-01-19T08:02:05Z + 2025-01-19T08:02:13Z + 2025-01-19T08:02:20Z + 2025-01-19T08:02:26Z + 2025-01-19T08:02:32Z + 2025-01-19T08:02:38Z + 2025-01-19T08:02:44Z + 2025-01-19T08:02:51Z + 2025-01-19T08:02:58Z + 2025-01-19T08:03:01Z + 2025-01-19T08:03:05Z + 2025-01-19T08:03:11Z + 2025-01-19T08:03:17Z + 2025-01-19T08:03:24Z + 2025-01-19T08:03:28Z + 2025-01-19T08:03:31Z + 2025-01-19T08:03:32Z + 2025-01-19T08:03:38Z + 2025-01-19T08:03:43Z + 2025-01-19T08:03:46Z + 2025-01-19T08:03:54Z + 2025-01-19T08:04:02Z + 2025-01-19T08:04:09Z + 2025-01-19T08:04:18Z + 2025-01-19T08:04:22Z + 2025-01-19T08:04:25Z + 2025-01-19T08:04:28Z + 2025-01-19T08:04:31Z + 2025-01-19T08:04:38Z + 2025-01-19T08:04:42Z + 2025-01-19T08:04:45Z + 2025-01-19T08:04:48Z + 2025-01-19T08:04:50Z + 2025-01-19T08:04:52Z + 2025-01-19T08:04:54Z + 2025-01-19T08:05:00Z + 2025-01-19T08:05:08Z + 2025-01-19T08:05:15Z + 2025-01-19T08:05:20Z + 2025-01-19T08:05:26Z + 2025-01-19T08:05:29Z + 2025-01-19T08:05:31Z + 2025-01-19T08:05:37Z + 2025-01-19T08:05:42Z + 2025-01-19T08:05:48Z + 2025-01-19T08:05:51Z + 2025-01-19T08:05:54Z + 2025-01-19T08:05:56Z + 2025-01-19T08:06:00Z + 2025-01-19T08:06:07Z + 2025-01-19T08:06:11Z + 2025-01-19T08:06:13Z + 2025-01-19T08:06:17Z + 2025-01-19T08:06:33Z + 2025-01-19T08:06:37Z + 2025-01-19T08:06:40Z + 2025-01-19T08:06:41Z + 2025-01-19T08:06:42Z + 2025-01-19T08:06:44Z + 2025-01-19T08:06:45Z + 2025-01-19T08:06:46Z + 2025-01-19T08:07:06Z + 2025-01-19T08:07:58Z + 2025-01-19T08:08:03Z + 2025-01-19T08:08:13Z + 2025-01-19T08:08:15Z + 2025-01-19T08:08:23Z + 2025-01-19T08:08:44Z + 2025-01-19T08:08:46Z + 2025-01-19T08:08:48Z + 2025-01-19T08:08:58Z + 2025-01-19T08:09:02Z + 2025-01-19T08:09:10Z + 2025-01-19T08:09:13Z + 2025-01-19T08:09:25Z + 2025-01-19T08:09:37Z + 2025-01-19T08:09:52Z + 2025-01-19T08:09:53Z + 2025-01-19T08:10:03Z + 2025-01-19T08:10:16Z + 2025-01-19T08:10:23Z + 2025-01-19T08:10:25Z + 2025-01-19T08:10:29Z + 2025-01-19T08:14:48Z + 2025-01-19T08:14:52Z + 2025-01-19T08:14:54Z + 2025-01-19T08:14:58Z + 2025-01-19T08:15:00Z + 2025-01-19T08:15:01Z + 2025-01-19T08:15:02Z + 2025-01-19T08:15:03Z + 2025-01-19T08:15:06Z + 2025-01-19T08:15:12Z + 2025-01-19T08:15:19Z + 2025-01-19T08:15:23Z + 2025-01-19T08:15:25Z + 2025-01-19T08:15:27Z + 2025-01-19T08:15:29Z + 2025-01-19T08:15:32Z + 2025-01-19T08:15:37Z + 2025-01-19T08:15:38Z + 2025-01-19T08:15:43Z + 2025-01-19T08:15:44Z + 2025-01-19T08:15:45Z + 2025-01-19T08:15:51Z + 2025-01-19T08:15:58Z + 2025-01-19T08:16:03Z + 2025-01-19T08:16:05Z + 2025-01-19T08:16:06Z + 2025-01-19T08:16:13Z + 2025-01-19T08:16:20Z + 2025-01-19T08:16:28Z + 2025-01-19T08:16:34Z + 2025-01-19T08:16:36Z + 2025-01-19T08:16:43Z + 2025-01-19T08:16:51Z + 2025-01-19T08:16:53Z + 2025-01-19T08:16:59Z + 2025-01-19T08:17:06Z + 2025-01-19T08:17:08Z + 2025-01-19T08:17:13Z + 2025-01-19T08:17:16Z + 2025-01-19T08:17:20Z + 2025-01-19T08:17:24Z + 2025-01-19T08:17:32Z + 2025-01-19T08:17:39Z + 2025-01-19T08:17:42Z + 2025-01-19T08:17:45Z + 2025-01-19T08:17:49Z + 2025-01-19T08:17:51Z + 2025-01-19T08:17:57Z + 2025-01-19T08:18:01Z + 2025-01-19T08:18:04Z + 2025-01-19T08:18:12Z + 2025-01-19T08:18:20Z + 2025-01-19T08:18:33Z + 2025-01-19T08:18:37Z + 2025-01-19T08:18:42Z + 2025-01-19T08:18:44Z + 2025-01-19T08:18:46Z + 2025-01-19T08:18:50Z + 2025-01-19T08:18:55Z + 2025-01-19T08:19:00Z + 2025-01-19T08:19:05Z + 2025-01-19T08:19:11Z + 2025-01-19T08:19:18Z + 2025-01-19T08:19:20Z + 2025-01-19T08:19:24Z + 2025-01-19T08:19:27Z + 2025-01-19T08:19:30Z + 2025-01-19T08:19:35Z + 2025-01-19T08:19:39Z + 2025-01-19T08:19:40Z + 2025-01-19T08:19:46Z + 2025-01-19T08:19:47Z + 2025-01-19T08:19:49Z + 2025-01-19T08:19:53Z + 2025-01-19T08:19:54Z + 2025-01-19T08:19:59Z + 2025-01-19T08:20:04Z + 2025-01-19T08:20:06Z + 2025-01-19T08:20:09Z + 2025-01-19T08:20:12Z + 2025-01-19T08:20:14Z + 2025-01-19T08:20:20Z + 2025-01-19T08:20:27Z + 2025-01-19T08:20:30Z + 2025-01-19T08:20:35Z + 2025-01-19T08:20:41Z + 2025-01-19T08:20:42Z + 2025-01-19T08:20:51Z + 2025-01-19T08:20:53Z + 2025-01-19T08:20:58Z + 2025-01-19T08:21:02Z + 2025-01-19T08:21:06Z + 2025-01-19T08:21:13Z + 2025-01-19T08:21:15Z + 2025-01-19T08:21:25Z + 2025-01-19T08:21:35Z + 2025-01-19T08:21:45Z + 2025-01-19T08:21:54Z + 2025-01-19T08:21:57Z + 2025-01-19T08:22:00Z + 2025-01-19T08:22:07Z + 2025-01-19T08:22:14Z + 2025-01-19T08:22:17Z + 2025-01-19T08:22:19Z + 2025-01-19T08:22:21Z + 2025-01-19T08:22:29Z + 2025-01-19T08:22:36Z + 2025-01-19T08:22:40Z + 2025-01-19T08:22:44Z + 2025-01-19T08:22:49Z + 2025-01-19T08:22:52Z + 2025-01-19T08:22:59Z + 2025-01-19T08:23:02Z + 2025-01-19T08:23:05Z + 2025-01-19T08:23:06Z + 2025-01-19T08:23:08Z + 2025-01-19T08:23:15Z + 2025-01-19T08:23:22Z + 2025-01-19T08:23:30Z + 2025-01-19T08:23:34Z + 2025-01-19T08:23:37Z + 2025-01-19T08:23:44Z + 2025-01-19T08:23:51Z + 2025-01-19T08:23:56Z + 2025-01-19T08:23:59Z + 2025-01-19T08:24:01Z + 2025-01-19T08:24:04Z + 2025-01-19T08:24:10Z + 2025-01-19T08:24:12Z + 2025-01-19T08:24:18Z + 2025-01-19T08:24:25Z + 2025-01-19T08:24:28Z + 2025-01-19T08:24:33Z + 2025-01-19T08:24:41Z + 2025-01-19T08:24:47Z + 2025-01-19T08:24:50Z + 2025-01-19T08:24:55Z + 2025-01-19T08:25:01Z + 2025-01-19T08:25:07Z + 2025-01-19T08:25:08Z + 2025-01-19T08:25:16Z + 2025-01-19T08:25:20Z + 2025-01-19T08:25:22Z + 2025-01-19T08:25:25Z + 2025-01-19T08:25:29Z + 2025-01-19T08:25:33Z + 2025-01-19T08:25:35Z + 2025-01-19T08:25:36Z + 2025-01-19T08:25:41Z + 2025-01-19T08:25:42Z + 2025-01-19T08:25:49Z + 2025-01-19T08:25:53Z + 2025-01-19T08:25:57Z + 2025-01-19T08:26:02Z + 2025-01-19T08:26:05Z + 2025-01-19T08:26:09Z + 2025-01-19T08:26:13Z + 2025-01-19T08:26:18Z + 2025-01-19T08:26:19Z + 2025-01-19T08:26:24Z + 2025-01-19T08:26:26Z + 2025-01-19T08:26:31Z + 2025-01-19T08:26:33Z + 2025-01-19T08:26:35Z + 2025-01-19T08:26:36Z + 2025-01-19T08:26:41Z + 2025-01-19T08:26:45Z + 2025-01-19T08:26:53Z + 2025-01-19T08:27:00Z + 2025-01-19T08:27:07Z + 2025-01-19T08:27:16Z + 2025-01-19T08:27:19Z + 2025-01-19T08:27:23Z + 2025-01-19T08:27:24Z + 2025-01-19T08:27:32Z + 2025-01-19T08:27:35Z + 2025-01-19T08:27:40Z + 2025-01-19T08:27:43Z + 2025-01-19T08:27:47Z + 2025-01-19T08:27:52Z + 2025-01-19T08:27:56Z + 2025-01-19T08:27:59Z + 2025-01-19T08:28:00Z + 2025-01-19T08:28:03Z + 2025-01-19T08:28:08Z + 2025-01-19T08:28:11Z + 2025-01-19T08:28:16Z + 2025-01-19T08:28:18Z + 2025-01-19T08:28:25Z + 2025-01-19T08:28:26Z + 2025-01-19T08:28:33Z + 2025-01-19T08:28:34Z + 2025-01-19T08:28:35Z + 2025-01-19T08:28:37Z + 2025-01-19T08:28:40Z + 2025-01-19T08:28:41Z + 2025-01-19T08:28:48Z + 2025-01-19T08:28:50Z + 2025-01-19T08:28:54Z + 2025-01-19T08:28:55Z + 2025-01-19T08:28:57Z + 2025-01-19T08:28:58Z + 2025-01-19T08:29:00Z + 2025-01-19T08:29:01Z + 2025-01-19T08:29:04Z + 2025-01-19T08:29:07Z + 2025-01-19T08:29:10Z + 2025-01-19T08:29:14Z + 2025-01-19T08:29:17Z + 2025-01-19T08:29:20Z + 2025-01-19T08:29:24Z + 2025-01-19T08:29:26Z + 2025-01-19T08:29:28Z + 2025-01-19T08:29:32Z + 2025-01-19T08:29:33Z + 2025-01-19T08:29:40Z + 2025-01-19T08:29:47Z + 2025-01-19T08:29:49Z + 2025-01-19T08:29:53Z + 2025-01-19T08:29:56Z + 2025-01-19T08:30:00Z + 2025-01-19T08:30:03Z + 2025-01-19T08:30:08Z + 2025-01-19T08:30:15Z + 2025-01-19T08:30:22Z + 2025-01-19T08:30:23Z + 2025-01-19T08:30:28Z + 2025-01-19T08:30:30Z + 2025-01-19T08:30:37Z + 2025-01-19T08:30:43Z + 2025-01-19T08:30:44Z + 2025-01-19T08:30:49Z + 2025-01-19T08:30:51Z + 2025-01-19T08:30:57Z + 2025-01-19T08:30:58Z + 2025-01-19T08:31:03Z + 2025-01-19T08:31:08Z + 2025-01-19T08:31:10Z + 2025-01-19T08:31:15Z + 2025-01-19T08:31:16Z + 2025-01-19T08:31:24Z + 2025-01-19T08:31:26Z + 2025-01-19T08:31:31Z + 2025-01-19T08:31:39Z + 2025-01-19T08:31:47Z + 2025-01-19T08:31:48Z + 2025-01-19T08:31:53Z + 2025-01-19T08:31:55Z + 2025-01-19T08:32:01Z + 2025-01-19T08:32:03Z + 2025-01-19T08:32:06Z + 2025-01-19T08:32:10Z + 2025-01-19T08:32:12Z + 2025-01-19T08:32:20Z + 2025-01-19T08:32:21Z + 2025-01-19T08:32:27Z + 2025-01-19T08:32:34Z + 2025-01-19T08:32:42Z + 2025-01-19T08:32:47Z + 2025-01-19T08:32:48Z + 2025-01-19T08:32:55Z + 2025-01-19T08:32:58Z + 2025-01-19T08:33:03Z + 2025-01-19T08:33:08Z + 2025-01-19T08:33:09Z + 2025-01-19T08:33:12Z + 2025-01-19T08:33:14Z + 2025-01-19T08:33:16Z + 2025-01-19T08:33:25Z + 2025-01-19T08:33:31Z + 2025-01-19T08:33:40Z + 2025-01-19T08:33:42Z + 2025-01-19T08:33:45Z + 2025-01-19T08:33:49Z + 2025-01-19T08:33:51Z + 2025-01-19T08:33:56Z + 2025-01-19T08:33:58Z + 2025-01-19T08:34:08Z + 2025-01-19T08:34:09Z + 2025-01-19T08:34:16Z + 2025-01-19T08:34:27Z + 2025-01-19T08:34:37Z + 2025-01-19T08:34:39Z + 2025-01-19T08:34:43Z + 2025-01-19T08:34:46Z + 2025-01-19T08:34:53Z + 2025-01-19T08:35:01Z + 2025-01-19T08:35:07Z + 2025-01-19T08:35:08Z + 2025-01-19T08:35:15Z + 2025-01-19T08:35:22Z + 2025-01-19T08:35:25Z + 2025-01-19T08:35:29Z + 2025-01-19T08:35:31Z + 2025-01-19T08:35:34Z + 2025-01-19T08:35:35Z + 2025-01-19T08:35:40Z + 2025-01-19T08:35:43Z + 2025-01-19T08:35:50Z + 2025-01-19T08:35:52Z + 2025-01-19T08:35:56Z + 2025-01-19T08:35:59Z + 2025-01-19T08:36:02Z + 2025-01-19T08:36:06Z + 2025-01-19T08:36:07Z + 2025-01-19T08:36:14Z + 2025-01-19T08:36:17Z + 2025-01-19T08:36:21Z + 2025-01-19T08:36:28Z + 2025-01-19T08:36:29Z + 2025-01-19T08:36:35Z + 2025-01-19T08:36:39Z + 2025-01-19T08:36:44Z + 2025-01-19T08:36:48Z + 2025-01-19T08:36:52Z + 2025-01-19T08:36:56Z + 2025-01-19T08:36:58Z + 2025-01-19T08:37:05Z + 2025-01-19T08:37:06Z + 2025-01-19T08:37:14Z + 2025-01-19T08:37:20Z + 2025-01-19T08:37:27Z + 2025-01-19T08:37:31Z + 2025-01-19T08:37:34Z + 2025-01-19T08:37:35Z + 2025-01-19T08:37:45Z + 2025-01-19T08:37:53Z + 2025-01-19T08:38:01Z + 2025-01-19T08:38:12Z + 2025-01-19T08:38:22Z + 2025-01-19T08:38:30Z + 2025-01-19T08:38:42Z + 2025-01-19T08:38:43Z + 2025-01-19T08:38:51Z + 2025-01-19T08:38:59Z + 2025-01-19T08:39:08Z + 2025-01-19T08:39:17Z + 2025-01-19T08:39:25Z + 2025-01-19T08:39:36Z + 2025-01-19T08:39:45Z + 2025-01-19T08:39:48Z + 2025-01-19T08:39:50Z + 2025-01-19T08:39:54Z + 2025-01-19T08:40:02Z + 2025-01-19T08:40:12Z + 2025-01-19T08:40:21Z + 2025-01-19T08:40:30Z + 2025-01-19T08:40:37Z + 2025-01-19T08:40:38Z + 2025-01-19T08:40:39Z + 2025-01-19T08:40:48Z + 2025-01-19T08:40:56Z + 2025-01-19T08:41:04Z + 2025-01-19T08:41:13Z + 2025-01-19T08:41:21Z + 2025-01-19T08:41:22Z + 2025-01-19T08:41:31Z + 2025-01-19T08:41:41Z + 2025-01-19T08:41:43Z + 2025-01-19T08:41:54Z + 2025-01-19T08:42:05Z + 2025-01-19T08:42:07Z + 2025-01-19T08:42:13Z + 2025-01-19T08:42:23Z + 2025-01-19T08:42:33Z + 2025-01-19T08:42:41Z + 2025-01-19T08:42:43Z + 2025-01-19T08:42:52Z + 2025-01-19T08:42:54Z + 2025-01-19T08:43:01Z + 2025-01-19T08:43:09Z + 2025-01-19T08:43:18Z + 2025-01-19T08:43:27Z + 2025-01-19T08:43:35Z + 2025-01-19T08:43:40Z + 2025-01-19T08:43:43Z + 2025-01-19T08:43:47Z + 2025-01-19T08:43:51Z + 2025-01-19T08:44:02Z + 2025-01-19T08:44:05Z + 2025-01-19T08:44:10Z + 2025-01-19T08:44:18Z + 2025-01-19T08:44:27Z + 2025-01-19T08:44:30Z + 2025-01-19T08:44:36Z + 2025-01-19T08:44:41Z + 2025-01-19T08:44:46Z + 2025-01-19T08:44:47Z + 2025-01-19T08:44:51Z + 2025-01-19T08:44:54Z + 2025-01-19T08:44:55Z + 2025-01-19T08:44:56Z + 2025-01-19T08:45:04Z + 2025-01-19T08:45:14Z + 2025-01-19T08:45:23Z + 2025-01-19T08:45:26Z + 2025-01-19T08:45:28Z + 2025-01-19T08:45:34Z + 2025-01-19T08:45:41Z + 2025-01-19T08:45:42Z + 2025-01-19T08:45:44Z + 2025-01-19T08:45:45Z + 2025-01-19T08:45:48Z + 2025-01-19T08:45:49Z + 2025-01-19T08:45:55Z + 2025-01-19T08:46:07Z + 2025-01-19T08:46:18Z + 2025-01-19T08:46:19Z + 2025-01-19T08:46:24Z + 2025-01-19T08:46:31Z + 2025-01-19T08:46:37Z + 2025-01-19T08:46:41Z + 2025-01-19T08:46:43Z + 2025-01-19T08:46:48Z + 2025-01-19T08:46:56Z + 2025-01-19T08:47:05Z + 2025-01-19T08:47:12Z + 2025-01-19T08:47:13Z + 2025-01-19T08:47:16Z + 2025-01-19T08:47:17Z + 2025-01-19T08:47:18Z + 2025-01-19T08:47:23Z + 2025-01-19T08:47:32Z + 2025-01-19T08:47:35Z + 2025-01-19T08:47:40Z + 2025-01-19T08:47:43Z + 2025-01-19T08:47:45Z + 2025-01-19T08:47:54Z + 2025-01-19T08:47:57Z + 2025-01-19T08:48:01Z + 2025-01-19T08:48:07Z + 2025-01-19T08:48:19Z + 2025-01-19T08:48:21Z + 2025-01-19T08:48:27Z + 2025-01-19T08:48:33Z + 2025-01-19T08:48:40Z + 2025-01-19T08:48:50Z + 2025-01-19T08:49:01Z + 2025-01-19T08:49:09Z + 2025-01-19T08:49:10Z + 2025-01-19T08:49:20Z + 2025-01-19T08:49:29Z + 2025-01-19T08:49:31Z + 2025-01-19T08:49:42Z + 2025-01-19T08:49:45Z + 2025-01-19T08:49:51Z + 2025-01-19T08:50:00Z + 2025-01-19T08:50:09Z + 2025-01-19T08:50:17Z + 2025-01-19T08:50:26Z + 2025-01-19T08:50:36Z + 2025-01-19T08:50:45Z + 2025-01-19T08:50:54Z + 2025-01-19T08:50:55Z + 2025-01-19T08:51:01Z + 2025-01-19T08:51:04Z + 2025-01-19T08:51:12Z + 2025-01-19T08:51:13Z + 2025-01-19T08:51:21Z + 2025-01-19T08:51:25Z + 2025-01-19T08:51:29Z + 2025-01-19T08:51:39Z + 2025-01-19T08:51:44Z + 2025-01-19T08:51:47Z + 2025-01-19T08:51:56Z + 2025-01-19T08:52:00Z + 2025-01-19T08:52:04Z + 2025-01-19T08:52:14Z + 2025-01-19T08:52:23Z + 2025-01-19T08:52:25Z + 2025-01-19T08:52:32Z + 2025-01-19T08:52:43Z + 2025-01-19T08:52:56Z + 2025-01-19T08:53:07Z + 2025-01-19T08:53:14Z + 2025-01-19T08:53:24Z + 2025-01-19T08:53:33Z + 2025-01-19T08:53:42Z + 2025-01-19T08:53:51Z + 2025-01-19T08:54:00Z + 2025-01-19T08:54:09Z + 2025-01-19T08:54:18Z + 2025-01-19T08:54:26Z + 2025-01-19T08:54:35Z + 2025-01-19T08:54:42Z + 2025-01-19T08:54:50Z + 2025-01-19T08:54:57Z + 2025-01-19T08:55:01Z + 2025-01-19T08:55:06Z + 2025-01-19T08:55:07Z + 2025-01-19T08:55:11Z + 2025-01-19T08:55:12Z + 2025-01-19T08:55:19Z + 2025-01-19T08:55:25Z + 2025-01-19T08:55:32Z + 2025-01-19T08:55:41Z + 2025-01-19T08:55:48Z + 2025-01-19T08:55:58Z + 2025-01-19T08:56:04Z + 2025-01-19T08:56:06Z + 2025-01-19T08:56:13Z + 2025-01-19T08:56:15Z + 2025-01-19T08:56:18Z + 2025-01-19T08:56:21Z + 2025-01-19T08:56:29Z + 2025-01-19T08:56:32Z + 2025-01-19T08:56:40Z + 2025-01-19T08:56:51Z + 2025-01-19T08:57:02Z + 2025-01-19T08:57:08Z + 2025-01-19T08:57:15Z + 2025-01-19T08:57:20Z + 2025-01-19T08:57:25Z + 2025-01-19T08:57:37Z + 2025-01-19T08:57:41Z + 2025-01-19T08:57:49Z + 2025-01-19T08:57:58Z + 2025-01-19T08:58:04Z + 2025-01-19T08:58:10Z + 2025-01-19T08:58:21Z + 2025-01-19T08:58:26Z + 2025-01-19T08:58:31Z + 2025-01-19T08:58:40Z + 2025-01-19T08:58:50Z + 2025-01-19T08:59:00Z + 2025-01-19T08:59:09Z + 2025-01-19T08:59:11Z + 2025-01-19T08:59:19Z + 2025-01-19T08:59:21Z + 2025-01-19T08:59:30Z + 2025-01-19T08:59:39Z + 2025-01-19T08:59:48Z + 2025-01-19T08:59:57Z + 2025-01-19T09:00:06Z + 2025-01-19T09:00:11Z + 2025-01-19T09:00:14Z + 2025-01-19T09:00:25Z + 2025-01-19T09:00:34Z + 2025-01-19T09:00:45Z + 2025-01-19T09:00:54Z + 2025-01-19T09:01:03Z + 2025-01-19T09:01:06Z + 2025-01-19T09:01:07Z + 2025-01-19T09:01:11Z + 2025-01-19T09:01:20Z + 2025-01-19T09:01:27Z + 2025-01-19T09:01:30Z + 2025-01-19T09:01:40Z + 2025-01-19T09:01:49Z + 2025-01-19T09:01:51Z + 2025-01-19T09:02:00Z + 2025-01-19T09:02:09Z + 2025-01-19T09:02:15Z + 2025-01-19T09:02:18Z + 2025-01-19T09:02:20Z + 2025-01-19T09:02:25Z + 2025-01-19T09:02:32Z + 2025-01-19T09:02:44Z + 2025-01-19T09:02:56Z + 2025-01-19T09:03:02Z + 2025-01-19T09:03:05Z + 2025-01-19T09:03:08Z + 2025-01-19T09:03:17Z + 2025-01-19T09:03:21Z + 2025-01-19T09:03:26Z + 2025-01-19T09:03:36Z + 2025-01-19T09:03:49Z + 2025-01-19T09:03:56Z + 2025-01-19T09:04:01Z + 2025-01-19T09:04:08Z + 2025-01-19T09:04:16Z + 2025-01-19T09:04:18Z + 2025-01-19T09:04:27Z + 2025-01-19T09:04:29Z + 2025-01-19T09:04:38Z + 2025-01-19T09:04:39Z + 2025-01-19T09:04:48Z + 2025-01-19T09:04:56Z + 2025-01-19T09:05:04Z + 2025-01-19T09:05:14Z + 2025-01-19T09:05:21Z + 2025-01-19T09:05:32Z + 2025-01-19T09:05:42Z + 2025-01-19T09:05:46Z + 2025-01-19T09:05:51Z + 2025-01-19T09:06:00Z + 2025-01-19T09:06:07Z + 2025-01-19T09:06:09Z + 2025-01-19T09:06:18Z + 2025-01-19T09:06:24Z + 2025-01-19T09:06:26Z + 2025-01-19T09:06:34Z + 2025-01-19T09:06:44Z + 2025-01-19T09:06:55Z + 2025-01-19T09:07:05Z + 2025-01-19T09:07:07Z + 2025-01-19T09:07:15Z + 2025-01-19T09:07:26Z + 2025-01-19T09:07:33Z + 2025-01-19T09:07:43Z + 2025-01-19T09:07:44Z + 2025-01-19T09:07:53Z + 2025-01-19T09:08:04Z + 2025-01-19T09:08:17Z + 2025-01-19T09:08:20Z + 2025-01-19T09:08:25Z + 2025-01-19T09:08:35Z + 2025-01-19T09:08:47Z + 2025-01-19T09:08:55Z + 2025-01-19T09:09:03Z + 2025-01-19T09:09:13Z + 2025-01-19T09:09:23Z + 2025-01-19T09:09:24Z + 2025-01-19T09:09:34Z + 2025-01-19T09:09:44Z + 2025-01-19T09:09:53Z + 2025-01-19T09:10:05Z + 2025-01-19T09:10:14Z + 2025-01-19T09:10:16Z + 2025-01-19T09:10:25Z + 2025-01-19T09:10:28Z + 2025-01-19T09:10:36Z + 2025-01-19T09:10:43Z + 2025-01-19T09:10:45Z + 2025-01-19T09:10:54Z + 2025-01-19T09:11:01Z + 2025-01-19T09:11:02Z + 2025-01-19T09:11:09Z + 2025-01-19T09:11:17Z + 2025-01-19T09:11:20Z + 2025-01-19T09:11:23Z + 2025-01-19T09:11:25Z + 2025-01-19T09:11:27Z + 2025-01-19T09:11:31Z + 2025-01-19T09:11:37Z + 2025-01-19T09:11:44Z + 2025-01-19T09:11:45Z + 2025-01-19T09:11:54Z + 2025-01-19T09:12:01Z + 2025-01-19T09:12:11Z + 2025-01-19T09:12:22Z + 2025-01-19T09:12:33Z + 2025-01-19T09:12:42Z + 2025-01-19T09:12:50Z + 2025-01-19T09:12:57Z + 2025-01-19T09:12:58Z + 2025-01-19T09:13:03Z + 2025-01-19T09:13:05Z + 2025-01-19T09:13:15Z + 2025-01-19T09:13:21Z + 2025-01-19T09:13:25Z + 2025-01-19T09:13:32Z + 2025-01-19T09:13:39Z + 2025-01-19T09:13:50Z + 2025-01-19T09:13:55Z + 2025-01-19T09:14:01Z + 2025-01-19T09:14:05Z + 2025-01-19T09:14:10Z + 2025-01-19T09:14:22Z + 2025-01-19T09:14:30Z + 2025-01-19T09:14:38Z + 2025-01-19T09:14:44Z + 2025-01-19T09:14:47Z + 2025-01-19T09:14:56Z + 2025-01-19T09:14:59Z + 2025-01-19T09:15:03Z + 2025-01-19T09:15:13Z + 2025-01-19T09:15:22Z + 2025-01-19T09:15:30Z + 2025-01-19T09:15:36Z + 2025-01-19T09:15:45Z + 2025-01-19T09:15:52Z + 2025-01-19T09:16:02Z + 2025-01-19T09:16:13Z + 2025-01-19T09:16:22Z + 2025-01-19T09:16:29Z + 2025-01-19T09:16:37Z + 2025-01-19T09:16:46Z + 2025-01-19T09:16:48Z + 2025-01-19T09:16:52Z + 2025-01-19T09:17:00Z + 2025-01-19T09:17:03Z + 2025-01-19T09:17:08Z + 2025-01-19T09:17:18Z + 2025-01-19T09:17:27Z + 2025-01-19T09:17:38Z + 2025-01-19T09:17:44Z + 2025-01-19T09:17:53Z + 2025-01-19T09:18:01Z + 2025-01-19T09:18:03Z + 2025-01-19T09:18:08Z + 2025-01-19T09:18:19Z + 2025-01-19T09:18:27Z + 2025-01-19T09:18:37Z + 2025-01-19T09:18:45Z + 2025-01-19T09:18:57Z + 2025-01-19T09:19:02Z + 2025-01-19T09:19:03Z + 2025-01-19T09:19:12Z + 2025-01-19T09:19:21Z + 2025-01-19T09:19:31Z + 2025-01-19T09:19:39Z + 2025-01-19T09:19:49Z + 2025-01-19T09:19:50Z + 2025-01-19T09:20:01Z + 2025-01-19T09:20:03Z + 2025-01-19T09:20:12Z + 2025-01-19T09:20:22Z + 2025-01-19T09:20:27Z + 2025-01-19T09:20:33Z + 2025-01-19T09:20:44Z + 2025-01-19T09:20:54Z + 2025-01-19T09:21:04Z + 2025-01-19T09:21:11Z + 2025-01-19T09:21:13Z + 2025-01-19T09:21:22Z + 2025-01-19T09:21:31Z + 2025-01-19T09:21:40Z + 2025-01-19T09:21:50Z + 2025-01-19T09:21:59Z + 2025-01-19T09:22:06Z + 2025-01-19T09:22:11Z + 2025-01-19T09:22:16Z + 2025-01-19T09:22:23Z + 2025-01-19T09:22:30Z + 2025-01-19T09:22:38Z + 2025-01-19T09:22:47Z + 2025-01-19T09:22:57Z + 2025-01-19T09:23:06Z + 2025-01-19T09:23:14Z + 2025-01-19T09:23:23Z + 2025-01-19T09:23:31Z + 2025-01-19T09:23:39Z + 2025-01-19T09:23:41Z + 2025-01-19T09:23:50Z + 2025-01-19T09:23:55Z + 2025-01-19T09:23:59Z + 2025-01-19T09:24:08Z + 2025-01-19T09:24:17Z + 2025-01-19T09:24:24Z + 2025-01-19T09:24:35Z + 2025-01-19T09:24:43Z + 2025-01-19T09:24:52Z + 2025-01-19T09:24:59Z + 2025-01-19T09:25:08Z + 2025-01-19T09:25:09Z + 2025-01-19T09:25:12Z + 2025-01-19T09:25:18Z + 2025-01-19T09:25:28Z + 2025-01-19T09:25:33Z + 2025-01-19T09:25:38Z + 2025-01-19T09:25:47Z + 2025-01-19T09:25:59Z + 2025-01-19T09:26:11Z + 2025-01-19T09:26:18Z + 2025-01-19T09:26:27Z + 2025-01-19T09:26:34Z + 2025-01-19T09:26:43Z + 2025-01-19T09:26:52Z + 2025-01-19T09:27:01Z + 2025-01-19T09:27:06Z + 2025-01-19T09:27:12Z + 2025-01-19T09:27:20Z + 2025-01-19T09:27:31Z + 2025-01-19T09:27:37Z + 2025-01-19T09:27:43Z + 2025-01-19T09:27:53Z + 2025-01-19T09:28:02Z + 2025-01-19T09:28:10Z + 2025-01-19T09:28:17Z + 2025-01-19T09:28:27Z + 2025-01-19T09:28:35Z + 2025-01-19T09:28:43Z + 2025-01-19T09:28:46Z + 2025-01-19T09:28:53Z + 2025-01-19T09:29:04Z + 2025-01-19T09:29:12Z + 2025-01-19T09:29:24Z + 2025-01-19T09:29:34Z + 2025-01-19T09:29:43Z + 2025-01-19T09:29:53Z + 2025-01-19T09:30:01Z + 2025-01-19T09:30:04Z + 2025-01-19T09:30:10Z + 2025-01-19T09:30:20Z + 2025-01-19T09:30:27Z + 2025-01-19T09:30:28Z + 2025-01-19T09:30:31Z + 2025-01-19T09:30:32Z + 2025-01-19T09:30:36Z + 2025-01-19T09:30:44Z + 2025-01-19T09:30:45Z + 2025-01-19T09:30:52Z + 2025-01-19T09:30:56Z + 2025-01-19T09:30:58Z + 2025-01-19T09:31:02Z + 2025-01-19T09:31:06Z + 2025-01-19T09:31:12Z + 2025-01-19T09:31:13Z + 2025-01-19T09:31:15Z + 2025-01-19T09:31:25Z + 2025-01-19T09:31:37Z + 2025-01-19T09:31:45Z + 2025-01-19T09:31:48Z + 2025-01-19T09:31:58Z + 2025-01-19T09:31:59Z + 2025-01-19T09:32:07Z + 2025-01-19T09:32:10Z + 2025-01-19T09:32:17Z + 2025-01-19T09:32:21Z + 2025-01-19T09:32:24Z + 2025-01-19T09:32:30Z + 2025-01-19T09:32:36Z + 2025-01-19T09:32:39Z + 2025-01-19T09:32:49Z + 2025-01-19T09:32:52Z + 2025-01-19T09:32:53Z + 2025-01-19T09:32:58Z + 2025-01-19T09:33:09Z + 2025-01-19T09:33:20Z + 2025-01-19T09:33:22Z + 2025-01-19T09:33:30Z + 2025-01-19T09:33:39Z + 2025-01-19T09:33:47Z + 2025-01-19T09:33:57Z + 2025-01-19T09:33:59Z + 2025-01-19T09:34:00Z + 2025-01-19T09:34:07Z + 2025-01-19T09:34:17Z + 2025-01-19T09:34:18Z + 2025-01-19T09:34:25Z + 2025-01-19T09:34:27Z + 2025-01-19T09:34:37Z + 2025-01-19T09:34:39Z + 2025-01-19T09:34:43Z + 2025-01-19T09:34:53Z + 2025-01-19T09:35:03Z + 2025-01-19T09:35:13Z + 2025-01-19T09:35:23Z + 2025-01-19T09:35:33Z + 2025-01-19T09:35:43Z + 2025-01-19T09:35:49Z + 2025-01-19T09:35:57Z + 2025-01-19T09:36:00Z + 2025-01-19T09:36:11Z + 2025-01-19T09:36:14Z + 2025-01-19T09:36:21Z + 2025-01-19T09:36:29Z + 2025-01-19T09:36:40Z + 2025-01-19T09:36:49Z + 2025-01-19T09:36:57Z + 2025-01-19T09:37:06Z + 2025-01-19T09:37:11Z + 2025-01-19T09:37:16Z + 2025-01-19T09:37:26Z + 2025-01-19T09:37:36Z + 2025-01-19T09:37:43Z + 2025-01-19T09:37:51Z + 2025-01-19T09:37:58Z + 2025-01-19T09:38:02Z + 2025-01-19T09:38:06Z + 2025-01-19T09:38:07Z + 2025-01-19T09:38:11Z + 2025-01-19T09:38:17Z + 2025-01-19T09:38:21Z + 2025-01-19T09:38:27Z + 2025-01-19T09:38:30Z + 2025-01-19T09:38:36Z + 2025-01-19T09:38:37Z + 2025-01-19T09:38:44Z + 2025-01-19T09:38:53Z + 2025-01-19T09:39:03Z + 2025-01-19T09:39:11Z + 2025-01-19T09:39:15Z + 2025-01-19T09:39:19Z + 2025-01-19T09:39:26Z + 2025-01-19T09:39:37Z + 2025-01-19T09:39:44Z + 2025-01-19T09:39:49Z + 2025-01-19T09:39:52Z + 2025-01-19T09:40:02Z + 2025-01-19T09:40:06Z + 2025-01-19T09:40:11Z + 2025-01-19T09:40:13Z + 2025-01-19T09:40:15Z + 2025-01-19T09:40:17Z + 2025-01-19T09:40:26Z + 2025-01-19T09:40:35Z + 2025-01-19T09:40:44Z + 2025-01-19T09:40:53Z + 2025-01-19T09:41:04Z + 2025-01-19T09:41:15Z + 2025-01-19T09:41:24Z + 2025-01-19T09:41:34Z + 2025-01-19T09:41:42Z + 2025-01-19T09:41:54Z + 2025-01-19T09:42:04Z + 2025-01-19T09:42:13Z + 2025-01-19T09:42:16Z + 2025-01-19T09:42:22Z + 2025-01-19T09:42:30Z + 2025-01-19T09:42:31Z + 2025-01-19T09:42:40Z + 2025-01-19T09:42:50Z + 2025-01-19T09:42:59Z + 2025-01-19T09:43:09Z + 2025-01-19T09:43:18Z + 2025-01-19T09:43:19Z + 2025-01-19T09:43:26Z + 2025-01-19T09:43:36Z + 2025-01-19T09:43:45Z + 2025-01-19T09:43:54Z + 2025-01-19T09:43:56Z + 2025-01-19T09:44:10Z + 2025-01-19T09:44:17Z + 2025-01-19T09:44:21Z + 2025-01-19T09:44:31Z + 2025-01-19T09:44:39Z + 2025-01-19T09:44:41Z + 2025-01-19T09:44:45Z + 2025-01-19T09:44:51Z + 2025-01-19T09:45:00Z + 2025-01-19T09:45:09Z + 2025-01-19T09:45:19Z + 2025-01-19T09:45:28Z + 2025-01-19T09:45:38Z + 2025-01-19T09:45:45Z + 2025-01-19T09:45:48Z + 2025-01-19T09:45:56Z + 2025-01-19T09:46:05Z + 2025-01-19T09:46:16Z + 2025-01-19T09:46:25Z + 2025-01-19T09:46:32Z + 2025-01-19T09:46:42Z + 2025-01-19T09:46:53Z + 2025-01-19T09:46:59Z + 2025-01-19T09:47:01Z + 2025-01-19T09:47:13Z + 2025-01-19T09:47:21Z + 2025-01-19T09:47:31Z + 2025-01-19T09:47:39Z + 2025-01-19T09:47:47Z + 2025-01-19T09:47:54Z + 2025-01-19T09:48:02Z + 2025-01-19T09:48:10Z + 2025-01-19T09:48:19Z + 2025-01-19T09:48:28Z + 2025-01-19T09:48:35Z + 2025-01-19T09:48:42Z + 2025-01-19T09:48:47Z + 2025-01-19T09:48:49Z + 2025-01-19T09:48:55Z + 2025-01-19T09:49:02Z + 2025-01-19T09:49:06Z + 2025-01-19T09:49:08Z + 2025-01-19T09:49:10Z + 2025-01-19T09:49:19Z + 2025-01-19T09:49:23Z + 2025-01-19T09:49:25Z + 2025-01-19T09:49:32Z + 2025-01-19T09:49:35Z + 2025-01-19T09:49:42Z + 2025-01-19T09:49:48Z + 2025-01-19T09:49:49Z + 2025-01-19T09:49:56Z + 2025-01-19T09:50:05Z + 2025-01-19T09:50:12Z + 2025-01-19T09:50:13Z + 2025-01-19T09:50:24Z + 2025-01-19T09:50:27Z + 2025-01-19T09:50:33Z + 2025-01-19T09:50:40Z + 2025-01-19T09:50:49Z + 2025-01-19T09:50:59Z + 2025-01-19T09:51:04Z + 2025-01-19T09:51:08Z + 2025-01-19T09:51:09Z + 2025-01-19T09:51:14Z + 2025-01-19T09:51:19Z + 2025-01-19T09:51:25Z + 2025-01-19T09:51:36Z + 2025-01-19T09:51:46Z + 2025-01-19T09:51:55Z + 2025-01-19T09:51:57Z + 2025-01-19T09:51:58Z + 2025-01-19T09:51:59Z + 2025-01-19T09:52:00Z + 2025-01-19T09:52:01Z + 2025-01-19T09:52:02Z + 2025-01-19T09:52:10Z + 2025-01-19T09:52:19Z + 2025-01-19T09:52:26Z + 2025-01-19T09:52:27Z + 2025-01-19T09:52:32Z + 2025-01-19T09:52:33Z + 2025-01-19T09:52:34Z + 2025-01-19T09:52:36Z + 2025-01-19T09:52:38Z + 2025-01-19T09:52:40Z + 2025-01-19T09:52:43Z + 2025-01-19T09:52:44Z + 2025-01-19T09:52:49Z + 2025-01-19T09:52:57Z + 2025-01-19T09:53:03Z + 2025-01-19T09:53:09Z + 2025-01-19T09:53:12Z + 2025-01-19T09:53:23Z + 2025-01-19T09:53:24Z + 2025-01-19T09:53:30Z + 2025-01-19T09:53:34Z + 2025-01-19T09:53:39Z + 2025-01-19T09:53:43Z + 2025-01-19T09:53:48Z + 2025-01-19T09:54:01Z + 2025-01-19T09:54:02Z + 2025-01-19T09:54:11Z + 2025-01-19T09:54:21Z + 2025-01-19T09:54:25Z + + + 1.633,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.896,0.0;1.129,0.0;1.204,0.0;1.176,0.0;1.138,0.0;1.194,0.0;1.148,0.0;1.334,0.0;1.232,0.0;1.054,0.0;1.026,0.0;1.054,0.0;1.082,0.0;1.148,0.0;1.157,0.0;1.166,0.0;1.166,0.0;1.148,0.0;1.166,0.0;1.185,0.0;1.222,0.0;1.213,0.0;1.194,0.0;1.166,0.0;1.129,0.0;1.129,0.0;1.11,0.0;1.082,0.0;0.905,0.0;0.812,0.0;0.961,0.0;0.896,0.0;1.129,0.0;1.642,0.0;0.989,0.0;0.868,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.409,0.0;0.952,0.0;0.905,0.0;0.933,0.0;0.933,0.0;1.026,0.0;0.0,0.0;1.194,0.0;0.98,0.0;1.148,0.0;1.241,0.0;1.241,0.0;1.222,0.0;1.213,0.0;1.176,0.0;1.185,0.0;1.194,0.0;1.204,0.0;1.194,0.0;1.297,0.0;1.232,0.0;1.166,0.0;1.054,0.0;1.11,0.0;1.092,0.0;1.082,0.0;1.082,0.0;1.11,0.0;1.157,0.0;1.278,0.0;1.269,0.0;1.25,0.0;1.269,0.0;1.241,0.0;1.241,0.0;1.026,0.0;0.952,0.0;1.082,0.0;1.064,0.0;1.054,0.0;1.054,0.0;1.054,0.0;1.054,0.0;1.054,0.0;1.045,0.0;1.045,0.0;1.11,0.0;1.138,0.0;0.0,0.0;1.661,0.0;1.344,0.0;1.334,0.0;1.138,0.0;1.008,0.0;1.026,0.0;1.036,0.0;1.036,0.0;1.054,0.0;1.054,0.0;1.101,0.0;1.073,0.0;0.998,0.0;1.073,0.0;1.064,0.0;1.045,0.0;1.054,0.0;1.054,0.0;1.054,0.0;1.054,0.0;1.054,0.0;0.914,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.961,0.0;0.886,0.0;0.998,0.0;0.97,0.0;1.026,0.0;1.054,0.0;1.082,0.0;1.073,0.0;1.045,0.0;1.026,0.0;1.026,0.0;1.036,0.0;1.045,0.0;1.045,0.0;1.054,0.0;1.045,0.0;1.045,0.0;1.026,0.0;1.026,0.0;1.045,0.0;1.064,0.0;1.045,0.0;1.026,0.0;1.045,0.0;1.008,0.0;1.064,0.0;1.073,0.0;1.045,0.0;1.045,0.0;1.064,0.0;1.064,0.0;1.148,0.0;1.166,0.0;1.157,0.0;1.157,0.0;1.157,0.0;1.12,0.0;1.092,0.0;1.082,0.0;1.073,0.0;1.073,0.0;1.026,0.0;1.045,0.0;1.017,0.0;1.045,0.0;1.054,0.0;1.017,0.0;1.008,0.0;1.045,0.0;1.026,0.0;1.036,0.0;1.026,0.0;0.998,0.0;1.026,0.0;1.008,0.0;1.017,0.0;1.026,0.0;1.054,0.0;1.073,0.0;1.092,0.0;1.045,0.0;1.054,0.0;1.064,0.0;1.064,0.0;1.036,0.0;1.036,0.0;1.017,0.0;1.026,0.0;0.98,0.0;0.849,0.0;0.905,0.0;0.97,0.0;0.952,0.0;0.924,0.0;0.952,0.0;1.008,0.0;1.008,0.0;0.98,0.0;0.961,0.0;0.933,0.0;0.914,0.0;0.905,0.0;0.877,0.0;0.793,0.0;0.924,0.0;0.998,0.0;1.148,0.0;1.026,0.0;1.045,0.0;1.073,0.0;1.045,0.0;1.064,0.0;1.064,0.0;1.073,0.0;1.092,0.0;1.092,0.0;1.11,0.0;1.12,0.0;1.166,0.0;1.176,0.0;1.166,0.0;1.157,0.0;1.129,0.0;1.148,0.0;1.166,0.0;1.166,0.0;1.176,0.0;1.166,0.0;1.166,0.0;1.157,0.0;1.138,0.0;1.148,0.0;1.148,0.0;1.101,0.0;1.101,0.0;1.092,0.0;1.082,0.0;1.11,0.0;1.11,0.0;1.11,0.0;1.12,0.0;1.148,0.0;1.166,0.0;1.157,0.0;1.148,0.0;1.157,0.0;1.176,0.0;1.185,0.0;1.166,0.0;1.176,0.0;1.176,0.0;1.148,0.0;1.11,0.0;1.129,0.0;1.12,0.0;1.11,0.0;1.12,0.0;1.148,0.0;1.148,0.0;1.138,0.0;1.101,0.0;1.092,0.0;1.082,0.0;1.092,0.0;1.073,0.0;1.073,0.0;1.054,0.0;1.054,0.0;1.054,0.0;1.054,0.0;1.12,0.0;1.101,0.0;1.064,0.0;1.054,0.0;1.054,0.0;1.082,0.0;1.064,0.0;1.064,0.0;1.082,0.0;1.082,0.0;1.054,0.0;1.045,0.0;1.045,0.0;1.045,0.0;1.045,0.0;1.036,0.0;1.036,0.0;1.045,0.0;1.054,0.0;1.045,0.0;1.11,0.0;1.148,0.0;1.166,0.0;1.269,0.0;1.194,0.0;1.157,0.0;1.166,0.0;1.166,0.0;1.148,0.0;1.138,0.0;1.148,0.0;1.157,0.0;1.148,0.0;1.157,0.0;1.157,0.0;1.148,0.0;1.148,0.0;1.157,0.0;1.157,0.0;1.204,0.0;1.204,0.0;1.12,0.0;1.129,0.0;1.157,0.0;1.138,0.0;1.138,0.0;1.157,0.0;1.166,0.0;1.185,0.0;1.213,0.0;1.232,0.0;1.204,0.0;1.185,0.0;1.194,0.0;1.194,0.0;1.194,0.0;1.157,0.0;1.148,0.0;1.157,0.0;1.157,0.0;1.138,0.0;1.138,0.0;1.12,0.0;1.129,0.0;1.148,0.0;1.129,0.0;1.138,0.0;1.157,0.0;1.148,0.0;1.194,0.0;1.176,0.0;1.176,0.0;1.176,0.0;1.176,0.0;1.194,0.0;1.213,0.0;1.213,0.0;1.185,0.0;1.138,0.0;1.157,0.0;1.176,0.0;1.176,0.0;1.157,0.0;1.166,0.0;1.157,0.0;1.157,0.0;1.129,0.0;1.138,0.0;1.129,0.0;1.129,0.0;1.082,0.0;1.101,0.0;1.092,0.0;1.073,0.0;1.11,0.0;1.101,0.0;1.092,0.0;1.11,0.0;1.12,0.0;1.082,0.0;1.026,0.0;0.98,0.0;1.148,0.0;1.232,0.0;1.222,0.0;1.213,0.0;1.204,0.0;1.185,0.0;1.185,0.0;1.176,0.0;1.185,0.0;1.166,0.0;1.157,0.0;1.157,0.0;1.082,0.0;1.166,0.0;1.176,0.0;1.157,0.0;1.045,0.0;1.026,0.0;1.045,0.0;1.054,0.0;1.008,0.0;0.998,0.0;1.017,0.0;1.026,0.0;1.073,0.0;1.138,0.0;1.082,0.0;1.073,0.0;1.166,0.0;1.064,0.0;1.054,0.0;1.054,0.0;1.064,0.0;1.185,0.0;1.166,0.0;1.222,0.0;1.213,0.0;1.157,0.0;1.241,0.0;1.241,0.0;1.148,0.0;1.138,0.0;1.129,0.0;1.129,0.0;1.176,0.0;1.017,0.0;1.372,0.0;1.222,0.0;1.129,0.0;1.166,0.0;1.148,0.0;1.148,0.0;1.157,0.0;1.157,0.0;1.148,0.0;1.092,0.0;0.998,0.0;0.998,0.0;0.942,0.0;0.924,0.0;1.036,0.0;1.092,0.0;1.278,0.0;1.26,0.0;1.222,0.0;1.232,0.0;1.204,0.0;1.148,0.0;1.213,0.0;1.176,0.0;1.166,0.0;1.176,0.0;1.176,0.0;1.148,0.0;1.148,0.0;1.12,0.0;1.11,0.0;1.11,0.0;1.092,0.0;1.073,0.0;1.101,0.0;1.073,0.0;1.101,0.0;1.101,0.0;1.082,0.0;1.073,0.0;1.11,0.0;1.101,0.0;1.092,0.0;1.064,0.0;1.008,0.0;1.008,0.0;0.98,0.0;0.989,0.0;1.008,0.0;1.064,0.0;1.017,0.0;1.101,0.0;1.101,0.0;1.148,0.0;1.185,0.0;1.185,0.0;1.185,0.0;1.185,0.0;1.185,0.0;1.194,0.0;1.194,0.0;1.185,0.0;1.176,0.0;1.194,0.0;1.185,0.0;1.185,0.0;1.185,0.0;1.185,0.0;1.185,0.0;1.185,0.0;1.185,0.0;1.176,0.0;1.185,0.0;1.194,0.0;1.185,0.0;1.166,0.0;1.148,0.0;1.129,0.0;1.129,0.0;1.101,0.0;1.092,0.0;1.092,0.0;1.054,0.0;1.054,0.0;1.026,0.0;1.036,0.0;1.017,0.0;1.008,0.0;0.989,0.0;0.97,0.0;0.961,0.0;0.942,0.0;0.989,0.0;0.989,0.0;1.017,0.0;1.017,0.0;1.017,0.0;1.082,0.0;1.12,0.0;1.101,0.0;1.082,0.0;1.129,0.0;1.11,0.0;1.045,0.0;1.036,0.0;1.026,0.0;1.045,0.0;1.064,0.0;1.017,0.0;1.064,0.0;0.998,0.0;0.886,0.0;0.0,0.0;0.0,0.0;0.97,0.0;1.064,0.0;1.064,0.0;1.045,0.0;1.017,0.0;1.073,0.0;1.12,0.0;1.12,0.0;1.12,0.0;1.138,0.0;1.138,0.0;1.12,0.0;0.989,0.0;0.97,0.0;0.998,0.0;1.017,0.0;1.092,0.0;1.092,0.0;1.101,0.0;1.11,0.0;1.138,0.0;1.138,0.0;1.129,0.0;1.138,0.0;1.129,0.0;1.12,0.0;1.092,0.0;1.045,0.0;0.998,0.0;1.008,0.0;1.017,0.0;1.036,0.0;1.045,0.0;1.092,0.0;1.092,0.0;1.054,0.0;1.064,0.0;1.101,0.0;1.092,0.0;1.129,0.0;1.129,0.0;1.101,0.0;1.194,0.0;1.166,0.0;1.288,0.0;1.092,0.0;0.998,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.401,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.653,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.784,0.0;1.306,0.0;1.232,0.0;0.0,0.0;0.681,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.998,0.0;1.372,0.0;1.325,0.0;1.269,0.0;1.269,0.0;1.269,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.157,0.0;0.0,0.0;1.064,0.0;0.83,0.0;0.877,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.054,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.176,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.418,0.0;1.549,0.0;1.325,0.0;1.064,0.0;0.886,0.0;0.0,0.0;0.0,0.0;1.129,0.0;0.662,0.0;1.204,0.0;1.334,0.0;1.12,0.0;1.204,0.0;1.288,0.0;1.353,0.0;1.334,0.0;1.316,0.0;1.456,0.0;1.428,0.0;1.297,0.0;1.325,0.0;1.297,0.0;1.269,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.896,0.0;1.026,0.0;1.064,0.0;1.26,0.0;1.26,0.0;1.344,0.0;1.278,0.0;1.232,0.0;1.194,0.0;1.26,0.0;1.148,0.0;0.98,0.0;0.84,0.0;0.849,0.0;0.765,0.0;0.737,0.0;0.672,0.0;0.653,0.0;0.784,0.0;1.045,0.0;0.644,0.0;0.634,0.0;0.653,0.0;0.681,0.0;0.569,0.0;0.606,0.0;0.858,0.0;0.765,0.0;0.523,0.0;0.634,0.0;0.606,0.0;0.644,0.0;0.616,0.0;0.634,0.0;0.625,0.0;0.616,0.0;0.597,0.0;0.588,0.0;0.579,0.0;0.569,0.0;0.56,0.0;0.579,0.0;0.579,0.0;0.588,0.0;0.56,0.0;0.56,0.0;0.662,0.0;0.625,0.0;0.606,0.0;0.579,0.0;0.588,0.0;0.579,0.0;0.7,0.0;0.551,0.0;0.579,0.0;0.551,0.0;0.0,0.0;0.0,0.0;0.439,0.0;0.793,0.0;0.56,0.0;0.606,0.0;0.634,0.0;0.681,0.0;0.709,0.0;0.802,0.0;0.765,0.0;0.756,0.0;0.802,0.0;0.616,0.0;0.718,0.0;0.709,0.0;0.7,0.0;0.756,0.0;0.774,0.0;0.737,0.0;0.681,0.0;0.644,0.0;0.7,0.0;0.653,0.0;0.0,0.0;0.0,0.0;0.709,0.0;0.83,0.0;0.69,0.0;0.681,0.0;0.802,0.0;0.784,0.0;0.7,0.0;0.709,0.0;0.821,0.0;0.849,0.0;0.914,0.0;0.905,0.0;0.914,0.0;0.905,0.0;0.886,0.0;0.877,0.0;0.868,0.0;0.896,0.0;0.905,0.0;0.877,0.0;0.868,0.0;0.858,0.0;0.886,0.0;0.821,0.0;0.709,0.0;1.549,0.0;1.549,0.0;1.278,0.0;1.064,0.0;0.849,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.989,0.0;0.0,0.0;1.204,0.0;1.036,0.0;0.942,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.355,0.0;0.551,0.0;0.653,0.0;0.746,0.0;0.718,0.0;0.69,0.0;0.83,0.0;0.933,0.0;0.933,0.0;0.98,0.0;1.026,0.0;0.97,0.0;0.97,0.0;0.989,0.0;0.989,0.0;0.905,0.0;0.728,0.0;0.802,0.0;0.812,0.0;0.97,0.0;0.961,0.0;0.0,0.0;0.0,0.0;0.942,0.0;0.0,0.0;0.0,0.0;1.409,0.0;1.409,0.0;1.157,0.0;1.148,0.0;1.157,0.0;1.176,0.0;1.148,0.0;1.138,0.0;1.185,0.0;1.138,0.0;1.101,0.0;1.054,0.0;1.054,0.0;0.989,0.0;0.989,0.0;0.98,0.0;1.026,0.0;0.933,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.092,0.0;1.129,0.0;0.746,0.0;0.877,0.0;0.69,0.0;1.241,0.0;1.148,0.0;1.092,0.0;1.138,0.0;1.092,0.0;0.998,0.0;0.765,0.0;0.998,0.0;0.998,0.0;0.0,0.0;0.83,0.0;0.868,0.0;1.204,0.0;1.222,0.0;1.166,0.0;1.157,0.0;1.138,0.0;1.073,0.0;1.026,0.0;0.905,0.0;0.961,0.0;1.026,0.0;0.868,0.0;0.812,0.0;0.793,0.0;0.69,0.0;0.495,0.0;0.495,0.0;0.495,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.868,0.0;1.129,0.0;1.26,0.0;1.241,0.0;1.045,0.0;1.148,0.0;1.054,0.0;1.045,0.0;0.998,0.0;1.017,0.0;1.017,0.0;1.054,0.0;1.017,0.0;0.905,0.0;0.0,0.0;0.327,0.0;0.793,0.0;0.868,0.0;0.952,0.0;1.054,0.0;0.989,0.0;0.989,0.0;0.0,0.0;0.0,0.0;1.232,0.0;1.073,0.0;0.97,0.0;0.961,0.0;0.998,0.0;1.026,0.0;1.129,0.0;1.138,0.0;1.092,0.0;1.092,0.0;1.082,0.0;1.008,0.0;1.008,0.0;0.989,0.0;0.989,0.0;0.989,0.0;1.036,0.0;1.026,0.0;1.036,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.495,0.0;1.008,0.0;1.026,0.0;1.064,0.0;1.194,0.0;1.157,0.0;1.082,0.0;1.166,0.0;1.157,0.0;1.138,0.0;1.148,0.0;1.148,0.0;1.082,0.0;1.092,0.0;1.082,0.0;1.082,0.0;1.045,0.0;1.036,0.0;1.036,0.0;1.045,0.0;1.064,0.0;1.092,0.0;1.092,0.0;1.092,0.0;1.12,0.0;1.12,0.0;1.12,0.0;1.129,0.0;1.129,0.0;1.11,0.0;1.082,0.0;0.849,0.0;0.98,0.0;0.98,0.0;1.008,0.0;0.97,0.0;0.849,0.0;0.83,0.0;0.961,0.0;1.11,0.0;0.952,0.0;0.858,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.401,0.0;0.504,0.0;0.802,0.0;0.942,0.0;0.821,0.0;0.84,0.0;0.868,0.0;0.914,0.0;0.896,0.0;0.896,0.0;0.952,0.0;0.914,0.0;0.886,0.0;0.83,0.0;0.83,0.0;0.877,0.0;0.858,0.0;0.756,0.0;0.746,0.0;0.774,0.0;0.784,0.0;0.718,0.0;0.69,0.0;0.709,0.0;0.784,0.0;0.737,0.0;0.718,0.0;0.709,0.0;0.756,0.0;0.886,0.0;0.868,0.0;0.802,0.0;0.821,0.0;0.858,0.0;0.802,0.0;0.802,0.0;0.746,0.0;0.961,0.0;0.989,0.0;0.98,0.0;0.942,0.0;0.914,0.0;0.896,0.0;0.877,0.0;0.784,0.0;0.765,0.0;0.728,0.0;0.69,0.0;0.662,0.0;0.681,0.0;0.784,0.0;0.653,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.942,0.0;1.036,0.0;1.017,0.0;1.064,0.0;1.12,0.0;1.166,0.0;1.148,0.0;1.157,0.0;1.185,0.0;1.129,0.0;1.073,0.0;1.045,0.0;1.017,0.0;0.989,0.0;0.961,0.0;1.026,0.0;1.026,0.0;1.045,0.0;0.998,0.0;0.98,0.0;0.98,0.0;1.026,0.0;1.017,0.0;1.008,0.0;1.008,0.0;1.045,0.0;1.073,0.0;1.036,0.0;1.008,0.0;0.98,0.0;0.952,0.0;0.933,0.0;0.886,0.0;0.942,0.0;0.933,0.0;0.896,0.0;0.886,0.0;0.868,0.0;0.858,0.0;0.793,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.194,0.0;1.045,0.0;0.98,0.0;0.97,0.0;0.961,0.0;0.886,0.0;0.914,0.0;0.961,0.0;0.97,0.0;1.064,0.0;1.017,0.0;0.961,0.0;0.942,0.0;0.868,0.0;0.886,0.0;0.886,0.0;0.812,0.0;0.774,0.0;0.793,0.0;0.746,0.0;0.765,0.0;0.737,0.0;0.69,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.381,0.0;0.98,0.0;0.98,0.0;0.961,0.0;0.877,0.0;0.709,0.0;0.821,0.0;0.0,0.0;0.625,0.0;0.606,0.0;0.606,0.0;0.0,0.0;0.0,0.0;0.485,0.0;0.84,0.0;0.793,0.0;0.84,0.0;0.896,0.0;1.166,0.0;1.11,0.0;1.082,0.0;0.942,0.0;0.97,0.0;0.942,0.0;0.858,0.0;0.681,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.942,0.0;0.569,0.0;0.634,0.0;0.784,0.0;0.98,0.0;0.98,0.0;0.998,0.0;0.952,0.0;0.97,0.0;0.952,0.0;0.998,0.0;1.017,0.0;1.045,0.0;1.026,0.0;1.017,0.0;1.008,0.0;0.961,0.0;0.942,0.0;0.886,0.0;0.952,0.0;0.849,0.0;0.886,0.0;0.793,0.0;0.821,0.0;0.83,0.0;0.877,0.0;0.868,0.0;0.84,0.0;0.868,0.0;0.868,0.0;0.858,0.0;0.905,0.0;0.914,0.0;0.952,0.0;0.942,0.0;0.924,0.0;0.924,0.0;0.924,0.0;0.952,0.0;0.961,0.0;0.97,0.0;0.933,0.0;0.961,0.0;0.97,0.0;0.961,0.0;0.961,0.0;0.998,0.0;0.98,0.0;0.97,0.0;0.961,0.0;0.924,0.0;0.914,0.0;0.905,0.0;0.868,0.0;0.84,0.0;0.821,0.0;0.821,0.0;0.886,0.0;0.961,0.0;0.952,0.0;0.924,0.0;0.942,0.0;0.877,0.0;0.896,0.0;0.952,0.0;0.952,0.0;0.933,0.0;0.942,0.0;0.924,0.0;0.914,0.0;0.896,0.0;0.933,0.0;1.073,0.0;1.082,0.0;1.176,0.0;1.166,0.0;1.148,0.0;1.148,0.0;1.157,0.0;1.157,0.0;1.148,0.0;1.157,0.0;1.176,0.0;1.176,0.0;1.194,0.0;1.185,0.0;1.166,0.0;1.129,0.0;1.148,0.0;1.157,0.0;1.138,0.0;1.129,0.0;1.101,0.0;1.092,0.0;1.11,0.0;1.101,0.0;1.101,0.0;1.101,0.0;1.11,0.0;1.11,0.0;1.101,0.0;1.11,0.0;1.082,0.0;1.092,0.0;1.092,0.0;1.157,0.0;1.157,0.0;1.148,0.0;1.138,0.0;1.064,0.0;0.784,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.97,0.0;0.97,0.0;0.672,0.0;0.476,0.0;0.504,0.0;0.821,0.0;0.868,0.0;0.877,0.0;0.952,0.0;0.952,0.0;0.914,0.0;0.924,0.0;0.942,0.0;0.905,0.0;0.914,0.0;0.933,0.0;1.185,0.0;1.185,0.0;1.204,0.0;1.213,0.0;1.213,0.0;1.232,0.0;1.241,0.0;1.222,0.0;1.222,0.0;1.222,0.0;1.222,0.0;1.241,0.0;1.232,0.0;1.213,0.0;1.222,0.0;1.232,0.0;1.222,0.0;1.222,0.0;1.241,0.0;1.241,0.0;1.25,0.0;1.241,0.0;1.26,0.0;1.25,0.0;1.213,0.0;1.213,0.0;1.204,0.0;1.194,0.0;1.176,0.0;1.166,0.0;1.157,0.0;1.064,0.0;1.045,0.0;1.064,0.0;1.045,0.0;1.054,0.0;1.092,0.0;1.25,0.0;1.241,0.0;1.241,0.0;1.204,0.0;1.176,0.0;0.97,0.0;0.756,0.0;0.784,0.0;0.746,0.0;0.765,0.0;0.7,0.0;0.616,0.0;0.672,0.0;0.756,0.0;0.588,0.0;0.681,0.0;0.681,0.0;0.588,0.0;0.532,0.0;0.532,0.0;0.495,0.0;0.495,0.0;0.383,0.0;0.0,0.0;0.467,0.0;0.606,0.0;0.625,0.0;0.634,0.0;0.653,0.0;0.662,0.0;0.709,0.0;0.728,0.0;0.737,0.0;0.784,0.0;0.84,0.0;0.868,0.0;0.877,0.0;0.849,0.0;0.849,0.0;0.69,0.0;0.672,0.0;0.644,0.0;0.681,0.0;0.728,0.0;0.746,0.0;0.765,0.0;0.84,0.0;0.784,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.868,0.0;0.84,0.0;0.961,0.0;1.073,0.0;1.017,0.0;0.97,0.0;0.858,0.0;0.858,0.0;0.84,0.0;0.858,0.0;0.877,0.0;0.914,0.0;0.97,0.0;0.998,0.0;0.97,0.0;0.97,0.0;0.961,0.0;0.961,0.0;0.952,0.0;0.952,0.0;0.942,0.0;0.952,0.0;0.942,0.0;0.961,0.0;0.998,0.0;1.008,0.0;1.008,0.0;1.064,0.0;1.092,0.0;1.092,0.0;1.054,0.0;1.064,0.0;1.064,0.0;1.045,0.0;1.045,0.0;1.045,0.0;0.989,0.0;0.989,0.0;0.97,0.0;1.017,0.0;0.952,0.0;0.998,0.0;1.017,0.0;1.11,0.0;1.045,0.0;1.073,0.0;1.082,0.0;1.017,0.0;0.989,0.0;0.942,0.0;0.83,0.0;0.83,0.0;0.886,0.0;0.914,0.0;0.942,0.0;0.98,0.0;1.054,0.0;1.082,0.0;1.092,0.0;1.11,0.0;1.138,0.0;1.148,0.0;1.12,0.0;1.12,0.0;1.12,0.0;1.12,0.0;1.11,0.0;1.101,0.0;1.101,0.0;1.092,0.0;1.157,0.0;1.157,0.0;1.157,0.0;1.166,0.0;1.194,0.0;1.194,0.0;1.185,0.0;1.157,0.0;1.166,0.0;1.176,0.0;1.185,0.0;1.166,0.0;0.98,0.0;1.166,0.0;1.101,0.0;1.12,0.0;1.101,0.0;1.11,0.0;1.138,0.0;1.045,0.0;1.082,0.0;1.082,0.0;1.073,0.0;1.054,0.0;1.064,0.0;1.073,0.0;1.101,0.0;1.12,0.0;1.101,0.0;1.073,0.0;1.073,0.0;1.045,0.0;1.054,0.0;1.045,0.0;1.045,0.0;1.017,0.0;1.017,0.0;1.045,0.0;1.026,0.0;1.008,0.0;1.073,0.0;1.064,0.0;1.073,0.0;1.054,0.0;1.054,0.0;1.054,0.0;1.064,0.0;1.064,0.0;1.092,0.0;1.101,0.0;1.101,0.0;1.12,0.0;1.101,0.0;1.092,0.0;1.082,0.0;1.101,0.0;1.11,0.0;1.12,0.0;1.12,0.0;0.998,0.0;0.97,0.0;0.98,0.0;1.054,0.0;1.073,0.0;1.054,0.0;1.073,0.0;1.036,0.0;1.045,0.0;1.064,0.0;1.054,0.0;1.054,0.0;1.082,0.0;1.064,0.0;1.017,0.0;1.026,0.0;0.952,0.0;1.026,0.0;1.092,0.0;0.952,0.0;0.989,0.0;1.045,0.0;0.989,0.0;1.082,0.0;1.017,0.0;0.886,0.0;0.905,0.0;1.064,0.0;1.017,0.0;0.914,0.0;0.914,0.0;0.961,0.0;1.036,0.0;1.045,0.0;0.998,0.0;0.97,0.0;0.97,0.0;1.017,0.0;1.045,0.0;1.054,0.0;1.092,0.0;1.045,0.0;0.97,0.0;0.924,0.0;0.905,0.0;0.98,0.0;0.952,0.0;0.662,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.372,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.232,0.0;1.036,0.0;1.157,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.373,0.0;0.0,0.0;0.0,0.0;0.616,0.0;0.886,0.0;0.989,0.0;0.924,0.0;0.942,0.0;0.933,0.0;0.849,0.0;0.849,0.0;0.896,0.0;0.896,0.0;0.933,0.0;0.942,0.0;0.933,0.0;0.942,0.0;0.961,0.0;0.924,0.0;0.905,0.0;0.905,0.0;0.0,0.0;0.0,0.0;0.606,0.0;0.849,0.0;0.737,0.0;0.681,0.0;0.0,0.0;0.28,0.0;0.849,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.746,0.0;0.998,0.0;0.952,0.0;0.952,0.0;0.961,0.0;1.054,0.0;0.0,0.0;0.0,0.0;0.681,0.0;0.961,0.0;0.942,0.0;0.952,0.0;0.952,0.0;1.008,0.0;0.0,0.0;0.0,0.0;0.709,0.0;1.166,0.0;1.12,0.0;1.092,0.0;0.942,0.0;0.0,0.0;0.0,0.0;0.224,0.0;0.0,0.0;0.56,0.0;0.905,0.0;0.998,0.0;1.054,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.176,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.261,0.0;0.83,0.0;0.858,0.0;1.008,0.0;1.045,0.0;1.036,0.0;1.017,0.0;1.036,0.0;1.017,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.998,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.073,0.0;1.138,0.0;1.064,0.0;1.176,0.0;1.045,0.0;0.868,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.243,0.0;0.56,0.0;0.709,0.0;0.709,0.0;0.606,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.026,0.0;0.784,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.989,0.0;1.157,0.0;0.812,0.0;0.812,0.0;0.653,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.355,0.0;0.83,0.0;0.989,0.0;1.353,0.0;1.67,0.0;1.81,0.0;2.641,0.0;2.053,0.0;1.81,0.0;1.521,0.0;0.0,0.0;0.0,0.0;0.924,0.0;0.7,0.0;0.0,0.0;0.0,0.0;0.989,0.0;0.0,0.0;0.746,0.0;0.476,0.0;0.597,0.0;0.401,0.0;0.457,0.0;0.532,0.0;0.56,0.0;0.588,0.0;0.504,0.0;0.56,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.484,0.0;1.484,0.0;0.69,0.0;1.092,0.0;1.334,0.0;1.26,0.0;1.493,0.0;1.484,0.0;1.334,0.0;1.297,0.0;1.26,0.0;1.26,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.812,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.765,0.0;0.0,0.0;0.0,0.0;1.185,0.0;0.7,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.243,0.0;0.0,0.0;0.243,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.877,0.0;1.054,0.0;1.26,0.0;0.961,0.0;1.11,0.0;1.092,0.0;0.802,0.0;0.653,0.0;0.653,0.0;0.0,0.0;0.0,0.0;0.523,0.0;0.812,0.0;0.644,0.0;0.485,0.0;0.672,0.0;0.672,0.0;0.718,0.0;0.765,0.0;1.11,0.0;1.092,0.0;1.082,0.0;1.12,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.222,0.0;1.232,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.327,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.634,0.0;0.634,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.886,0.0;0.914,0.0;0.0,0.0;0.299,0.0;0.905,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.157,0.0;0.812,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.858,0.0;0.793,0.0;0.793,0.0;0.793,0.0;1.278,0.0;1.213,0.0;1.316,0.0;1.708,0.0;1.521,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.849,0.0;0.849,0.0;0.0,0.0;0.0,0.0;0.243,0.0;0.271,0.0;1.026,0.0;0.373,0.0;0.634,0.0;0.98,0.0;1.25,0.0;1.241,0.0;1.176,0.0;1.166,0.0;1.222,0.0;1.185,0.0;1.185,0.0;1.25,0.0;1.26,0.0;1.194,0.0;1.101,0.0;1.036,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.224,0.0;0.224,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.819,0.0;1.25,0.0;1.11,0.0;1.11,0.0;1.092,0.0;1.082,0.0;1.082,0.0;1.082,0.0;0.961,0.0;0.896,0.0;0.868,0.0;0.868,0.0;1.036,0.0;1.026,0.0;1.017,0.0;1.026,0.0;1.026,0.0;1.11,0.0;1.185,0.0;1.222,0.0;1.129,0.0;0.98,0.0;0.98,0.0;0.98,0.0;0.98,0.0;0.858,0.0;1.54,0.0;1.54,0.0;1.036,0.0;1.008,0.0;0.952,0.0;0.83,0.0;0.83,0.0;0.709,0.0;0.0,0.0;0.896,0.0;0.7,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.439,0.0;0.56,0.0;1.026,0.0;1.073,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.336,0.0;0.588,0.0;0.224,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.252,0.0;0.0,0.0;0.364,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.261,0.0;0.504,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.513,0.0;0.858,0.0;0.0,0.0;1.241,0.0;1.25,0.0;0.383,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.224,0.0;0.224,0.0;0.271,0.0;0.243,0.0;0.261,0.0;0.233,0.0;0.233,0.0;0.243,0.0;0.233,0.0;0.28,0.0;0.252,0.0;0.261,0.0;0.261,0.0;0.252,0.0;0.252,0.0;0.261,0.0;0.252,0.0;0.261,0.0;0.261,0.0;0.261,0.0;0.252,0.0;0.261,0.0;0.252,0.0;0.289,0.0;0.364,0.0;0.261,0.0;0.271,0.0;0.261,0.0;0.261,0.0;0.261,0.0;0.261,0.0;0.289,0.0;0.261,0.0;0.261,0.0;0.261,0.0;0.261,0.0;0.261,0.0;0.261,0.0;0.28,0.0;0.261,0.0;1.652,0.0;1.25,0.0;1.25,0.0;0.261,0.0;0.252,0.0;0.261,0.0;0.271,0.0;0.261,0.0;0.252,0.0;0.299,0.0;0.317,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.261,0.0;0.261,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.532,0.0;0.289,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.261,0.0;0.243,0.0;0.252,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.28,0.0;0.243,0.0;0.271,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.252,0.0;0.261,0.0;0.485,0.0;0.252,0.0;0.271,0.0;0.252,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.476,0.0;0.261,0.0;0.252,0.0;0.261,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.261,0.0;0.261,0.0;0.261,0.0;0.261,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.233,0.0;0.224,0.0;0.224,0.0;0.224,0.0;0.224,0.0;0.224,0.0;0.233,0.0;0.233,0.0;0.243,0.0;0.233,0.0;0.233,0.0;0.233,0.0;0.233,0.0;0.233,0.0;0.233,0.0;0.233,0.0;0.233,0.0;0.233,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.243,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.261,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.261,0.0;0.252,0.0;0.252,0.0;0.252,0.0;0.261,0.0;0.261,0.0;0.271,0.0;0.261,0.0;0.299,0.0;0.261,0.0;0.308,0.0;1.25,0.0;1.25,0.0;0.261,0.0;0.495,0.0;0.858,0.0;0.97,0.0;1.054,0.0;1.129,0.0;1.176,0.0;1.194,0.0;0.233,0.0;0.373,0.0;0.373,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.224,0.0;0.224,0.0;0.224,0.0;0.224,0.0;0.224,0.0;0.224,0.0;0.224,0.0;0.0,0.0;0.0,0.0;0.42,0.0;0.737,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.914,0.0;0.271,0.0;0.606,0.0;0.905,0.0;0.896,0.0;1.045,0.0;0.812,0.0;0.812,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.83,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.69,0.0;0.672,0.0;0.541,0.0;1.073,0.0;0.69,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.886,0.0;0.83,0.0;0.793,0.0;0.616,0.0;0.252,0.0;1.138,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.364,0.0;0.821,0.0;0.0,0.0;0.653,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.176,0.0;0.0,0.0;0.243,0.0;0.551,0.0;0.868,0.0;1.288,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.148,0.0;0.849,0.0;0.672,0.0;0.588,0.0;0.588,0.0;0.532,0.0;0.0,0.0;0.42,0.0;0.84,0.0;0.821,0.0;0.784,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.793,0.0;1.026,0.0;1.045,0.0;0.998,0.0;0.672,0.0;1.325,0.0;1.185,0.0;1.232,0.0;1.11,0.0;1.064,0.0;1.222,0.0;1.129,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.885,0.0;0.0,0.0;0.924,0.0;1.11,0.0;1.269,0.0;1.166,0.0;1.092,0.0;1.148,0.0;1.064,0.0;0.233,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.233,0.0;1.026,0.0;0.98,0.0;0.989,0.0;1.036,0.0;1.157,0.0;1.213,0.0;1.306,0.0;1.269,0.0;1.036,0.0;0.942,0.0;0.905,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.364,0.0;0.998,0.0;0.961,0.0;0.0,0.0;0.0,0.0;0.336,0.0;0.858,0.0;1.101,0.0;1.064,0.0;1.082,0.0;1.241,0.0;1.157,0.0;0.98,0.0;1.12,0.0;1.316,0.0;1.316,0.0;1.568,0.0;1.558,0.0;1.325,0.0;1.148,0.0;1.026,0.0;0.849,0.0;0.784,0.0;0.765,0.0;0.802,0.0;0.653,0.0;0.933,0.0;0.998,0.0;0.989,0.0;1.045,0.0;1.101,0.0;1.101,0.0;1.11,0.0;1.11,0.0;1.148,0.0;1.213,0.0;1.241,0.0;1.222,0.0;1.194,0.0;1.138,0.0;1.138,0.0;1.129,0.0;1.129,0.0;1.129,0.0;1.12,0.0;1.129,0.0;1.129,0.0;1.11,0.0;1.12,0.0;1.12,0.0;1.12,0.0;1.11,0.0;1.092,0.0;1.073,0.0;1.073,0.0;1.101,0.0;1.101,0.0;1.101,0.0;1.092,0.0;1.092,0.0;1.064,0.0;1.073,0.0;1.092,0.0;1.045,0.0;1.008,0.0;0.989,0.0;0.924,0.0;1.045,0.0;1.026,0.0;0.877,0.0;0.896,0.0;0.924,0.0;0.924,0.0;0.896,0.0;0.905,0.0;0.877,0.0;0.858,0.0;0.821,0.0;0.84,0.0;0.858,0.0;0.793,0.0;0.793,0.0;0.737,0.0;0.737,0.0;0.261,0.0;0.261,0.0;0.401,0.0;0.485,0.0;0.513,0.0;0.709,0.0;0.886,0.0;0.746,0.0;0.737,0.0;0.625,0.0;0.709,0.0;0.737,0.0;0.746,0.0;0.802,0.0;0.83,0.0;0.83,0.0;0.84,0.0;0.83,0.0;0.812,0.0;0.812,0.0;0.886,0.0;0.905,0.0;0.877,0.0;0.97,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.054,0.0;0.961,0.0;0.989,0.0;0.961,0.0;0.942,0.0;0.961,0.0;0.998,0.0;0.989,0.0;0.97,0.0;0.961,0.0;0.0,0.0;0.0,0.0;1.241,0.0;0.728,0.0;0.0,0.0;0.0,0.0;0.625,0.0;1.082,0.0;1.157,0.0;1.12,0.0;0.98,0.0;1.045,0.0;1.017,0.0;0.998,0.0;0.98,0.0;0.998,0.0;0.998,0.0;1.026,0.0;1.064,0.0;1.026,0.0;1.026,0.0;1.045,0.0;1.017,0.0;0.97,0.0;0.924,0.0;0.905,0.0;0.784,0.0;0.821,0.0;0.942,0.0;0.998,0.0;0.998,0.0;1.017,0.0;1.12,0.0;1.054,0.0;1.138,0.0;1.101,0.0;1.204,0.0;1.185,0.0;1.129,0.0;1.138,0.0;1.138,0.0;1.166,0.0;1.157,0.0;1.166,0.0;1.157,0.0;1.148,0.0;0.97,0.0;1.017,0.0;1.166,0.0;1.232,0.0;0.765,0.0;0.886,0.0;0.0,0.0;0.0,0.0;1.166,0.0;1.101,0.0;1.092,0.0;1.073,0.0;1.11,0.0;1.101,0.0;1.064,0.0;1.101,0.0;1.101,0.0;1.092,0.0;1.101,0.0;1.157,0.0;1.166,0.0;1.166,0.0;1.176,0.0;1.157,0.0;1.157,0.0;1.157,0.0;1.148,0.0;1.129,0.0;1.101,0.0;1.129,0.0;1.157,0.0;1.073,0.0;1.036,0.0;0.765,0.0;1.101,0.0;1.045,0.0;1.036,0.0;1.045,0.0;1.157,0.0;1.166,0.0;1.129,0.0;1.129,0.0;1.157,0.0;1.166,0.0;1.092,0.0;1.194,0.0;1.017,0.0;0.952,0.0;0.942,0.0;0.952,0.0;0.98,0.0;0.998,0.0;1.045,0.0;1.054,0.0;1.064,0.0;1.064,0.0;1.073,0.0;1.073,0.0;1.082,0.0;1.11,0.0;2.435,0.0;2.473,0.0;2.295,0.0;1.148,0.0;0.886,0.0;1.194,0.0;1.194,0.0;1.288,0.0;1.12,0.0;1.166,0.0;1.232,0.0;1.185,0.0;1.073,0.0;1.017,0.0;1.017,0.0;1.026,0.0;1.026,0.0;0.952,0.0;0.952,0.0;0.728,0.0;0.0,0.0;0.0,0.0;0.784,0.0;0.0,0.0;0.989,0.0;0.737,0.0;0.98,0.0;0.84,0.0;0.924,0.0;0.933,0.0;0.98,0.0;1.129,0.0;0.746,0.0;0.914,0.0;0.98,0.0;0.952,0.0;0.914,0.0;1.036,0.0;1.054,0.0;1.054,0.0;1.073,0.0;1.12,0.0;1.12,0.0;1.138,0.0;1.082,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.138,0.0;0.0,0.0;0.0,0.0;1.036,0.0;1.176,0.0;1.148,0.0;1.148,0.0;1.213,0.0;1.269,0.0;1.157,0.0;1.008,0.0;1.026,0.0;0.998,0.0;1.017,0.0;1.26,0.0;1.204,0.0;1.288,0.0;1.362,0.0;1.26,0.0;1.036,0.0;0.989,0.0;1.138,0.0;1.138,0.0;1.176,0.0;1.166,0.0;1.138,0.0;1.148,0.0;1.157,0.0;1.129,0.0;1.138,0.0;1.138,0.0;1.11,0.0;1.12,0.0;1.12,0.0;1.073,0.0;0.98,0.0;1.008,0.0;1.11,0.0;1.232,0.0;1.269,0.0;1.166,0.0;1.157,0.0;1.148,0.0;1.157,0.0;1.148,0.0;1.166,0.0;1.185,0.0;1.166,0.0;1.138,0.0;1.101,0.0;1.269,0.0;0.0,0.0;0.0,0.0;0.998,0.0;0.886,0.0;1.129,0.0;0.952,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.12,0.0;1.092,0.0;1.054,0.0;1.148,0.0;1.138,0.0;1.138,0.0;1.138,0.0;1.101,0.0;1.092,0.0;1.11,0.0;1.213,0.0;1.204,0.0;1.25,0.0;1.241,0.0;1.222,0.0;1.204,0.0;1.204,0.0;1.213,0.0;1.204,0.0;1.204,0.0;1.204,0.0;1.11,0.0;1.12,0.0;1.12,0.0;1.12,0.0;1.129,0.0;1.11,0.0;1.11,0.0;1.12,0.0;1.092,0.0;1.045,0.0;1.045,0.0;1.054,0.0;1.036,0.0;1.036,0.0;1.036,0.0;1.017,0.0;1.036,0.0;1.036,0.0;1.008,0.0;0.998,0.0;0.998,0.0;0.97,0.0;0.961,0.0;0.998,0.0;0.942,0.0;0.849,0.0;0.858,0.0;0.849,0.0;0.886,0.0;0.868,0.0;0.896,0.0;0.924,0.0;0.933,0.0;0.942,0.0;0.952,0.0;0.97,0.0;0.933,0.0;1.017,0.0;0.952,0.0;0.942,0.0;0.952,0.0;0.952,0.0;0.541,0.0;1.064,0.0;1.017,0.0;1.026,0.0;1.138,0.0;1.129,0.0;1.138,0.0;1.064,0.0;0.868,0.0;1.101,0.0;1.073,0.0;1.036,0.0;1.036,0.0;1.054,0.0;1.092,0.0;1.082,0.0;1.082,0.0;1.092,0.0;1.092,0.0;1.12,0.0;1.129,0.0;1.138,0.0;1.157,0.0;1.138,0.0;1.017,0.0;1.036,0.0;1.054,0.0;1.148,0.0;1.325,0.0;0.756,0.0;0.756,0.0;1.4,0.0;1.372,0.0;1.306,0.0;1.297,0.0;1.101,0.0;1.12,0.0;1.11,0.0;1.11,0.0;1.054,0.0;1.157,0.0;1.12,0.0;1.138,0.0;1.129,0.0;1.166,0.0;1.101,0.0;1.11,0.0;1.101,0.0;1.064,0.0;1.11,0.0;1.054,0.0;1.045,0.0;1.008,0.0;1.213,0.0;1.269,0.0;1.222,0.0;1.306,0.0;1.11,0.0;0.765,0.0;1.157,0.0;1.054,0.0;1.045,0.0;1.082,0.0;1.054,0.0;1.064,0.0;1.176,0.0;1.148,0.0;1.157,0.0;1.12,0.0;1.12,0.0;1.101,0.0;1.11,0.0;1.11,0.0;1.129,0.0;1.138,0.0;1.148,0.0;1.166,0.0;1.176,0.0;1.222,0.0;1.222,0.0;1.194,0.0;1.241,0.0;1.334,0.0;1.12,0.0;1.082,0.0;1.092,0.0;1.073,0.0;1.073,0.0;1.073,0.0;1.157,0.0;1.204,0.0;1.25,0.0;0.924,0.0;0.812,0.0;1.204,0.0;0.97,0.0;1.213,0.0;1.204,0.0;1.129,0.0;1.064,0.0;0.961,0.0;0.952,0.0;1.129,0.0;1.064,0.0;0.942,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.821,0.0;1.082,0.0;1.148,0.0;1.101,0.0;1.036,0.0;1.101,0.0;1.092,0.0;1.372,0.0;1.288,0.0;1.334,0.0;0.952,0.0;0.97,0.0;0.98,0.0;1.008,0.0;1.092,0.0;1.054,0.0;1.054,0.0;1.073,0.0;1.064,0.0;1.101,0.0;1.11,0.0;1.11,0.0;1.092,0.0;1.101,0.0;1.101,0.0;1.064,0.0;1.092,0.0;1.092,0.0;1.101,0.0;1.138,0.0;1.157,0.0;1.166,0.0;1.176,0.0;1.157,0.0;1.148,0.0;1.064,0.0;1.082,0.0;1.082,0.0;1.073,0.0;1.092,0.0;1.11,0.0;1.148,0.0;1.148,0.0;1.148,0.0;1.12,0.0;1.138,0.0;1.064,0.0;1.185,0.0;1.176,0.0;1.12,0.0;1.129,0.0;1.082,0.0;1.073,0.0;1.157,0.0;1.138,0.0;1.157,0.0;1.166,0.0;1.185,0.0;1.185,0.0;1.204,0.0;1.148,0.0;1.138,0.0;1.12,0.0;1.12,0.0;1.11,0.0;1.157,0.0;1.148,0.0;1.148,0.0;1.148,0.0;1.166,0.0;1.148,0.0;1.166,0.0;1.176,0.0;1.204,0.0;1.204,0.0;1.194,0.0;1.185,0.0;1.185,0.0;1.194,0.0;1.194,0.0;1.185,0.0;1.176,0.0;1.176,0.0;1.204,0.0;1.176,0.0;1.166,0.0;1.157,0.0;1.166,0.0;1.157,0.0;1.166,0.0;1.176,0.0;1.204,0.0;1.129,0.0;1.12,0.0;1.12,0.0;1.12,0.0;1.11,0.0;1.082,0.0;1.064,0.0;1.064,0.0;1.073,0.0;1.064,0.0;1.064,0.0;1.082,0.0;1.092,0.0;1.092,0.0;1.101,0.0;1.092,0.0;1.101,0.0;1.073,0.0;1.073,0.0;1.082,0.0;1.12,0.0;1.082,0.0;1.12,0.0;1.12,0.0;1.101,0.0;1.082,0.0;1.101,0.0;1.129,0.0;1.129,0.0;1.138,0.0;1.138,0.0;1.129,0.0;1.12,0.0;1.12,0.0;1.092,0.0;1.166,0.0;1.166,0.0;1.138,0.0;1.092,0.0;1.092,0.0;1.082,0.0;1.054,0.0;1.045,0.0;1.101,0.0;1.017,0.0;1.11,0.0;1.129,0.0;1.129,0.0;1.138,0.0;1.157,0.0;1.138,0.0;1.11,0.0;1.12,0.0;1.11,0.0;1.11,0.0;1.11,0.0;1.11,0.0;1.11,0.0;1.11,0.0;1.12,0.0;1.166,0.0;1.129,0.0;1.129,0.0;1.176,0.0;1.185,0.0;1.138,0.0;1.073,0.0;1.054,0.0;1.11,0.0;1.138,0.0;1.185,0.0;1.185,0.0;1.138,0.0;1.166,0.0;1.194,0.0;1.194,0.0;1.437,0.0;0.746,0.0;0.998,0.0;1.073,0.0;1.204,0.0;1.213,0.0;1.204,0.0;1.26,0.0;1.297,0.0;1.316,0.0;1.204,0.0;1.213,0.0;1.269,0.0;1.222,0.0;1.278,0.0;1.26,0.0;1.241,0.0;1.194,0.0;0.849,0.0;1.26,0.0;0.868,0.0;0.644,0.0;0.877,0.0;0.616,0.0;1.082,0.0;1.12,0.0;1.12,0.0;1.017,0.0;1.036,0.0;1.008,0.0;0.998,0.0;1.045,0.0;1.082,0.0;1.092,0.0;1.082,0.0;1.073,0.0;1.082,0.0;1.092,0.0;1.082,0.0;1.092,0.0;1.157,0.0;0.942,0.0;1.092,0.0;1.054,0.0;1.064,0.0;1.092,0.0;1.101,0.0;1.026,0.0;0.998,0.0;1.008,0.0;0.998,0.0;0.989,0.0;1.092,0.0;1.129,0.0;1.129,0.0;1.073,0.0;1.11,0.0;1.166,0.0;1.213,0.0;1.176,0.0;1.166,0.0;1.166,0.0;1.176,0.0;1.176,0.0;1.166,0.0;1.166,0.0;1.157,0.0;1.157,0.0;1.148,0.0;1.138,0.0;1.194,0.0;1.213,0.0;1.185,0.0;1.194,0.0;1.194,0.0;1.138,0.0;1.194,0.0;1.176,0.0;1.176,0.0;1.334,0.0;1.306,0.0;1.11,0.0;1.185,0.0;1.176,0.0;1.176,0.0;1.166,0.0;1.204,0.0;1.204,0.0;1.232,0.0;1.213,0.0;1.204,0.0;1.194,0.0;1.213,0.0;1.232,0.0;1.222,0.0;1.222,0.0;1.222,0.0;1.204,0.0;1.232,0.0;1.232,0.0;1.157,0.0;1.12,0.0;1.157,0.0;1.166,0.0;1.12,0.0;1.101,0.0;0.97,0.0;1.045,0.0;0.858,0.0;1.054,0.0;1.204,0.0;1.166,0.0;1.148,0.0;1.166,0.0;1.12,0.0;0.0,0.0;0.0,0.0;0.97,0.0;0.606,0.0;0.802,0.0;0.793,0.0;0.821,0.0;0.933,0.0;0.97,0.0;1.045,0.0;0.98,0.0;1.176,0.0;1.176,0.0;0.942,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.176,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.756,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;1.306,0.0;0.858,0.0;1.269,0.0;1.241,0.0;1.166,0.0;1.064,0.0;1.064,0.0;1.064,0.0;1.017,0.0;0.849,0.0;1.204,0.0;1.129,0.0;1.138,0.0;1.138,0.0;1.138,0.0;1.054,0.0;1.026,0.0;1.026,0.0;0.998,0.0;1.064,0.0;1.064,0.0;0.7,0.0;0.0,0.0;0.69,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.606,0.0;0.0,0.0;0.737,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0;0.0,0.0; + + + + + + +
+
+
+
\ No newline at end of file diff --git "a/public/vaults/Demo/Attachments/\344\270\255\350\245\277citywalk.kml" "b/public/vaults/Demo/Attachments/\344\270\255\350\245\277citywalk.kml" new file mode 100644 index 0000000..58c0a15 --- /dev/null +++ "b/public/vaults/Demo/Attachments/\344\270\255\350\245\277citywalk.kml" @@ -0,0 +1,766 @@ + + + citywalk + 1 + + 2024-12-08T12:28:18 + 2024-12-08T16:53:37 + + + + Nobody + http://www.foooooot.com/userindex/2049359 + + + 轨迹 + 1 + + 片段-1 + 1 + + 121.417714,31.273550,20.292981 121.417700,31.273450,29.203816 121.417613,31.273389,24.390016 121.417586,31.273300,18.307037 121.417589,31.273187,13.758286 121.417559,31.273095,13.342596 121.417495,31.273020,12.922481 121.417475,31.272924,15.693997 121.417470,31.272832,13.694844 121.417423,31.272750,13.252560 121.417357,31.272664,10.617990 121.417363,31.272569,10.952703 121.417320,31.272478,12.144937 121.417293,31.272378,13.535073 121.417251,31.272276,15.931824 121.417186,31.272178,15.992363 121.417069,31.272139,17.786934 121.416965,31.272156,18.681126 121.416838,31.272194,18.769021 121.416710,31.272223,19.185097 121.416568,31.272220,24.395640 121.416446,31.272255,21.004072 121.416331,31.272219,26.690325 121.416227,31.272239,26.873857 121.416120,31.272264,26.346186 121.415946,31.272303,21.826168 121.415815,31.272338,21.188419 121.415706,31.272356,19.816784 121.415564,31.272353,19.118896 121.415450,31.272337,21.156607 121.415344,31.272291,21.660990 121.415326,31.272189,22.341147 121.415317,31.272099,21.955412 121.415293,31.272009,22.108099 121.415275,31.271908,24.136576 121.415241,31.271801,23.070771 121.415213,31.271694,24.528741 121.415219,31.271594,27.687345 121.415180,31.271478,25.042087 121.415117,31.271367,23.875531 121.415095,31.271268,25.846771 121.415086,31.271151,28.234035 121.415061,31.271043,29.018224 121.415041,31.270931,29.400687 121.415006,31.270790,31.582566 121.414976,31.270682,32.067162 121.414913,31.270592,30.821032 121.414870,31.270478,29.329544 121.414854,31.270382,28.544499 121.414840,31.270290,28.465561 121.414840,31.270197,29.778600 121.414817,31.270089,30.237959 121.414794,31.269979,30.504974 121.414777,31.269875,28.610474 121.414756,31.269784,27.163095 121.414710,31.269676,28.243356 121.414675,31.269587,27.095393 121.414635,31.269451,26.977749 121.414594,31.269346,27.265043 121.414572,31.269247,28.327248 121.414526,31.269136,28.271161 121.414498,31.269041,27.800692 121.414490,31.268944,27.431745 121.414447,31.268862,27.745899 121.414434,31.268753,27.963497 121.414417,31.268652,27.689258 121.414414,31.268545,27.612139 121.414380,31.268438,27.614798 121.414348,31.268346,27.504754 121.414337,31.268252,28.437855 121.414314,31.268160,30.578260 121.414300,31.268013,31.121579 121.414266,31.267923,31.847807 121.414256,31.267828,31.883698 121.414244,31.267717,29.663871 121.414221,31.267624,29.551258 121.414192,31.267528,28.486853 121.414165,31.267431,27.693119 121.414068,31.267352,27.504600 121.414038,31.267262,27.154955 121.414005,31.267166,25.858500 121.413905,31.267123,25.036229 121.413788,31.267163,24.074225 121.413677,31.267195,24.754448 121.413556,31.267209,25.074313 121.413429,31.267202,25.348432 121.413299,31.267202,27.905067 121.413176,31.267199,28.244114 121.413041,31.267198,26.546068 121.412925,31.267226,26.378072 121.412803,31.267242,26.339313 121.412691,31.267259,24.713304 121.412571,31.267296,23.055556 121.412454,31.267314,21.284292 121.412346,31.267325,20.281873 121.412221,31.267315,19.920079 121.412094,31.267319,22.621963 121.411989,31.267345,23.826694 121.411874,31.267381,22.615469 121.411738,31.267398,21.367072 121.411629,31.267419,21.873614 121.411521,31.267444,22.543677 121.411408,31.267435,20.110151 121.411335,31.267368,17.783224 121.411197,31.267412,17.127292 121.411060,31.267484,21.069492 121.410946,31.267552,22.845378 121.410863,31.267623,22.443706 121.410764,31.267656,23.097788 121.410612,31.267669,24.412048 121.410502,31.267689,25.773168 121.410379,31.267723,23.415509 121.410254,31.267729,22.580702 121.410115,31.267741,21.525181 121.410001,31.267795,20.384108 121.409877,31.267821,21.520335 121.409744,31.267850,20.275183 121.409641,31.267871,20.040863 121.409517,31.267907,21.393691 121.409405,31.267935,21.249168 121.409309,31.267973,21.167210 121.409211,31.268007,20.689122 121.409107,31.268038,19.820075 121.409011,31.268075,19.964618 121.408897,31.268129,19.617404 121.408794,31.268161,20.266395 121.408688,31.268212,21.966289 121.408571,31.268259,22.087342 121.408478,31.268314,23.154289 121.408387,31.268380,24.205704 121.408288,31.268437,24.419142 121.408192,31.268501,23.851983 121.408103,31.268557,23.792246 121.408016,31.268631,23.410618 121.407936,31.268699,24.036091 121.407878,31.268782,25.149112 121.407838,31.268882,25.310532 121.407775,31.268979,25.741696 121.407721,31.269084,27.412321 121.407660,31.269160,27.946137 121.407594,31.269242,28.416122 121.407516,31.269312,27.750967 121.407434,31.269405,27.367094 121.407353,31.269482,26.464774 121.407283,31.269574,25.390641 121.407215,31.269661,25.511075 121.407129,31.269747,25.843364 121.407032,31.269829,25.834655 121.406940,31.269874,25.772978 121.406852,31.269937,26.007844 121.406752,31.269995,26.161355 121.406649,31.270046,26.802154 121.406522,31.270102,27.177306 121.406417,31.270186,25.125572 121.406313,31.270251,23.324091 121.406223,31.270304,24.163250 121.406123,31.270374,24.110903 121.406021,31.270407,23.551011 121.405909,31.270439,23.614010 121.405795,31.270478,22.364121 121.405692,31.270502,20.558057 121.405566,31.270521,20.090906 121.405466,31.270562,20.466470 121.405342,31.270575,21.463320 121.405211,31.270583,22.288126 121.405079,31.270616,22.295819 121.404940,31.270639,20.865665 121.404819,31.270650,19.902472 121.404695,31.270655,20.720226 121.404562,31.270672,21.540929 121.404459,31.270650,21.348177 121.404352,31.270634,20.778669 121.404219,31.270602,19.267905 121.404099,31.270563,19.221807 121.403989,31.270560,18.594231 121.403889,31.270590,18.658175 121.403772,31.270611,18.681238 121.403616,31.270613,18.686095 121.403465,31.270595,17.982858 121.403342,31.270600,18.887579 121.403203,31.270605,20.233259 121.403080,31.270624,20.201329 121.402970,31.270657,20.387574 121.402861,31.270674,19.403642 121.402744,31.270674,19.853527 121.402637,31.270677,19.729991 121.402517,31.270660,20.059102 121.402400,31.270645,19.584643 121.402278,31.270642,19.763588 121.402156,31.270668,18.621981 121.402052,31.270641,19.302778 121.401938,31.270652,19.112803 121.401833,31.270657,18.940635 121.401692,31.270675,16.001613 121.401551,31.270676,14.308520 121.401442,31.270667,13.256410 121.401332,31.270655,13.517560 121.401203,31.270636,12.804724 121.401094,31.270608,12.011125 121.400991,31.270588,12.257285 121.400876,31.270603,13.133622 121.400859,31.270509,15.978381 121.400894,31.270411,16.165345 121.400878,31.270301,18.632598 121.400864,31.270210,20.732348 121.400821,31.270109,22.697213 121.400798,31.270014,24.001794 121.400811,31.269906,25.257803 121.400773,31.269797,25.844545 121.400780,31.269693,26.270420 121.400813,31.269597,25.313979 121.400833,31.269505,25.548165 121.400851,31.269407,26.922207 121.400827,31.269318,26.616403 121.400793,31.269213,23.683075 121.400770,31.269117,23.384354 121.400770,31.269014,23.037535 121.400778,31.268905,24.551162 121.400745,31.268790,25.788426 121.400723,31.268684,27.411397 121.400722,31.268578,28.381494 121.400743,31.268487,28.572577 121.400788,31.268393,29.758351 121.400818,31.268281,31.088407 121.400784,31.268176,33.338944 121.400752,31.268070,35.063309 121.400737,31.267976,34.325765 121.400722,31.267863,37.246413 121.400732,31.267757,38.495439 121.400739,31.267638,38.699040 121.400729,31.267539,37.505154 121.400722,31.267425,36.069789 121.400741,31.267314,34.443814 121.400760,31.267205,34.359325 121.400735,31.267082,33.917108 121.400743,31.266975,30.168150 121.400724,31.266878,27.882444 121.400731,31.266772,24.817643 121.400721,31.266679,22.973670 121.400721,31.266579,20.146986 121.400728,31.266488,19.562985 121.400731,31.266379,17.734894 121.400734,31.266268,17.128745 121.400743,31.266164,16.550176 121.400760,31.266060,13.535635 121.400752,31.265947,11.861226 121.400741,31.265857,11.415871 121.400735,31.265766,11.359373 121.400735,31.265672,10.489868 121.400773,31.265584,10.808535 121.400771,31.265466,12.492027 121.400751,31.265373,11.710156 121.400757,31.265275,11.494338 121.400733,31.265182,11.696936 121.400795,31.265090,12.312756 121.400896,31.265060,13.138754 121.400999,31.265037,12.612988 121.401130,31.265015,13.499866 121.401250,31.265002,14.058374 121.401359,31.265019,14.591586 121.401472,31.264998,15.680121 121.401584,31.264960,14.989970 121.401687,31.264908,14.384556 121.401802,31.264854,13.396259 121.401931,31.264849,13.420418 121.402051,31.264826,14.266900 121.402169,31.264801,14.719171 121.402280,31.264772,14.648216 121.402393,31.264747,15.074722 121.402501,31.264727,15.117160 121.402602,31.264680,15.355654 121.402715,31.264667,15.428194 121.402831,31.264638,15.794048 121.402953,31.264620,15.772080 121.403078,31.264596,15.781730 121.403202,31.264577,15.790261 121.403330,31.264540,15.644322 121.403446,31.264519,14.951098 121.403560,31.264492,13.635262 121.403694,31.264470,13.698907 121.403791,31.264424,12.518478 121.403892,31.264397,12.444715 121.404006,31.264382,13.466265 121.404122,31.264366,12.827634 121.404238,31.264344,12.677240 121.404331,31.264287,13.159683 121.404442,31.264248,13.069153 121.404558,31.264230,13.377162 121.404669,31.264227,13.465177 121.404777,31.264285,14.584962 121.404798,31.264376,15.224528 121.404817,31.264251,13.626748 121.404827,31.264157,13.301375 121.404774,31.264061,13.216809 121.404841,31.263525,17.366705 121.404860,31.263406,21.701455 121.404767,31.262460,13.069043 121.404803,31.262565,-16.505094 121.404736,31.262704,3.240850 121.404713,31.262594,17.664954 121.404746,31.262685,16.443043 121.404740,31.262799,14.890270 121.404807,31.262716,19.619449 121.404807,31.262625,19.430323 121.404816,31.262508,20.020914 121.404800,31.262408,19.663188 121.404798,31.262309,20.025376 121.404780,31.262212,19.416713 121.404764,31.262120,18.682915 121.404763,31.262027,17.597454 121.404788,31.261939,17.269520 121.404825,31.261813,18.752425 121.404811,31.261712,18.209286 121.404812,31.261609,16.632214 121.404843,31.261503,17.135217 121.404871,31.261412,16.972309 121.404898,31.261309,17.166513 121.404920,31.261218,16.883959 121.404947,31.261128,16.515858 121.404969,31.261020,16.522494 121.405000,31.260916,15.484624 121.405037,31.260814,15.729700 121.405066,31.260717,15.992497 121.405101,31.260620,15.905291 121.405124,31.260520,16.039082 121.405086,31.260424,14.532806 121.405041,31.260325,14.762155 121.405060,31.260218,14.764360 121.405086,31.260121,15.776801 121.405115,31.260024,16.049085 121.405146,31.259917,14.947792 121.405176,31.259803,13.891043 121.405192,31.259706,13.426307 121.405227,31.259612,13.359270 121.405223,31.259504,13.701604 121.405232,31.259410,14.371279 121.405270,31.259300,15.342934 121.405259,31.259200,15.658315 121.405302,31.259104,17.114738 121.405322,31.259004,17.307530 121.405333,31.258893,16.550710 121.405317,31.258801,16.644047 121.405375,31.258713,15.361792 121.405415,31.258605,15.651643 121.405451,31.258504,17.101964 121.405476,31.258406,16.901794 121.405486,31.258293,15.881925 121.405524,31.258188,16.967727 121.405560,31.258100,17.142118 121.405577,31.257991,17.623127 121.405578,31.257882,17.109428 121.405609,31.257778,16.756778 121.405602,31.257679,16.402935 121.405631,31.257576,18.424861 121.405661,31.257490,16.976895 121.405700,31.257402,17.441541 121.405709,31.257301,18.516385 121.405721,31.257210,18.843031 121.405735,31.256951,19.259601 121.405737,31.256851,17.902765 121.405792,31.256765,18.510718 121.405831,31.256656,18.475302 121.405909,31.256576,16.773446 121.405930,31.256456,18.632019 121.405892,31.256366,19.761281 121.405913,31.256259,20.672250 121.405980,31.256171,21.782388 121.406029,31.256066,21.817137 121.406022,31.255967,20.151682 121.406032,31.255869,21.417815 121.406074,31.255760,21.601517 121.406079,31.255645,21.189741 121.406091,31.255509,21.628793 121.406111,31.255415,23.022850 121.406142,31.255308,25.649068 121.406147,31.255207,26.013959 121.406102,31.255117,24.102371 121.406112,31.255002,24.266090 121.406172,31.254906,23.674388 121.406167,31.254799,23.126506 121.406156,31.254685,23.962931 121.406174,31.254593,24.423471 121.406218,31.254484,24.583136 121.406202,31.254364,24.220987 121.406183,31.254275,23.916849 121.406188,31.254184,23.702697 121.406207,31.254081,23.298783 121.406223,31.253975,24.990077 121.406200,31.253861,24.941716 121.406175,31.253757,24.404216 121.406182,31.253644,22.952077 121.406217,31.253545,23.141509 121.406212,31.253454,22.914954 121.406224,31.253342,23.413632 121.406214,31.253253,24.396321 121.406170,31.253170,23.479087 121.406112,31.253070,23.211660 121.406105,31.252975,23.000950 121.406118,31.252860,22.816866 121.406165,31.252774,22.516798 121.406206,31.252674,21.733714 121.406080,31.252567,17.083849 121.405962,31.252571,16.953977 121.407354,31.250875,162.809804 121.407319,31.251070,169.196520 121.407127,31.251166,142.669810 121.406972,31.251256,126.237338 121.406827,31.251378,119.694075 121.406757,31.251446,118.080040 121.406423,31.251554,56.192514 121.406522,31.251590,32.830405 121.406631,31.251589,33.648740 121.406745,31.251590,33.589691 121.406860,31.251594,32.469336 121.406965,31.251568,27.929348 121.407110,31.251561,23.764636 121.407219,31.251567,20.970549 121.407322,31.251585,20.734740 121.407456,31.251607,21.696318 121.407582,31.251638,20.710829 121.407694,31.251658,19.982018 121.407791,31.251700,20.065987 121.407897,31.251725,20.235450 121.408003,31.251757,18.285723 121.408112,31.251782,17.732121 121.408234,31.251802,16.957053 121.408364,31.251837,13.234259 121.408416,31.251918,11.780154 121.408476,31.252002,11.787000 121.408593,31.252029,12.143960 121.408693,31.251965,14.987148 121.408789,31.251928,14.607827 121.408935,31.251937,15.350726 121.409056,31.251975,15.226978 121.409189,31.251998,14.901004 121.409296,31.252017,14.714492 121.409418,31.252018,12.774826 121.409518,31.252052,11.477469 121.409622,31.252073,11.515720 121.409736,31.252097,10.344990 121.409843,31.252122,10.585772 121.409974,31.252127,10.477358 121.410097,31.252179,9.710241 121.410190,31.252253,10.037471 121.410292,31.252301,10.670873 121.410423,31.252289,12.585070 121.410532,31.252275,12.771879 121.410683,31.252275,13.617525 121.410811,31.252271,15.914439 121.410925,31.252305,16.388416 121.411029,31.252335,17.517769 121.411099,31.252429,18.563826 121.411199,31.252459,16.541876 121.411305,31.252412,18.148454 121.411415,31.252407,18.002149 121.411539,31.252421,18.352065 121.411680,31.252427,20.706792 121.411794,31.252466,22.065122 121.411918,31.252478,22.585893 121.412031,31.252519,24.682136 121.412153,31.252539,25.126122 121.412273,31.252577,24.954605 121.412401,31.252630,24.962488 121.412522,31.252678,22.144021 121.412623,31.252716,20.630454 121.412743,31.252656,18.703531 121.412864,31.252674,18.467517 121.412999,31.252706,19.085776 121.413104,31.252727,18.753240 121.413233,31.252739,19.020808 121.413365,31.252763,19.162143 121.413470,31.252784,19.557550 121.413608,31.252813,19.842270 121.413718,31.252833,20.248984 121.413843,31.252860,19.100953 121.413982,31.252883,18.267121 121.414086,31.252902,17.678538 121.414206,31.252955,17.605484 121.414319,31.252991,17.679384 121.414438,31.253018,16.650887 121.414558,31.253055,17.358209 121.414660,31.253092,17.219430 121.414759,31.253125,18.185488 121.414874,31.253157,19.391176 121.414980,31.253201,18.465737 121.415074,31.253246,18.752400 121.415167,31.253291,19.631462 121.415268,31.253349,20.065584 121.415376,31.253408,20.338979 121.415474,31.253473,19.861464 121.415589,31.253541,20.063934 121.415685,31.253581,20.189262 121.415760,31.253476,19.973273 121.415823,31.253391,19.639838 121.415886,31.253294,19.641362 121.415940,31.253205,19.053024 121.415995,31.253116,17.550153 121.416023,31.253020,17.131738 121.415949,31.252941,18.290493 121.416065,31.252912,15.571255 121.416124,31.252812,15.451002 121.416164,31.252711,14.958628 121.416192,31.252612,15.616816 121.416234,31.252516,17.156788 121.416297,31.252414,18.555722 121.416320,31.252324,20.041551 121.416382,31.252242,21.657703 121.416419,31.252155,22.549855 121.416434,31.252059,22.351251 121.416464,31.251969,20.374144 121.416455,31.251862,18.431312 121.416488,31.251752,14.426013 121.416509,31.251656,14.935941 121.416549,31.251571,16.702599 121.416591,31.251484,18.706675 121.416606,31.251392,19.626541 121.416625,31.251278,20.743403 121.416653,31.251178,21.773764 121.416679,31.251063,22.142922 121.416687,31.250945,21.927896 121.416677,31.250841,21.014461 121.416690,31.250728,21.056572 121.416679,31.250615,21.044756 121.416678,31.250501,21.150074 121.416667,31.250402,21.101723 121.416645,31.250296,20.956378 121.416624,31.250164,20.344881 121.416613,31.250057,21.358183 121.416543,31.249981,19.625632 121.416452,31.249925,19.431924 121.416357,31.249869,18.313872 121.416258,31.249810,18.531269 121.416162,31.249755,16.777323 121.416050,31.249706,16.201328 121.415960,31.249655,15.242871 121.415863,31.249595,13.752521 121.415770,31.249522,12.831671 121.415658,31.249461,12.751814 121.415557,31.249419,13.358721 121.415440,31.249364,13.076599 121.415329,31.249314,13.165224 121.415201,31.249282,12.822903 121.415099,31.249254,12.603213 121.414967,31.249261,13.217648 121.414854,31.249262,13.954410 121.414738,31.249274,11.938178 121.414602,31.249267,11.390341 121.414471,31.249272,10.447240 121.414348,31.249295,11.375628 121.414263,31.249217,12.091165 121.414192,31.249147,13.168163 121.414079,31.249110,14.746059 121.413953,31.249067,16.378123 121.413832,31.249028,18.834859 121.413719,31.249010,19.305537 121.413600,31.248999,19.631851 121.413476,31.248965,19.776378 121.413356,31.248926,20.221018 121.413236,31.248900,20.068132 121.413122,31.248864,20.086785 121.412994,31.248836,18.974107 121.412867,31.248860,19.223442 121.412765,31.248836,19.504859 121.412647,31.248786,18.196149 121.412538,31.248788,18.944561 121.412431,31.248740,18.853517 121.412310,31.248706,18.550693 121.412187,31.248683,17.208126 121.412085,31.248658,15.983487 121.411981,31.248623,17.891579 121.411844,31.248580,18.860717 121.411739,31.248551,19.317628 121.411631,31.248566,19.738585 121.411513,31.248537,20.588430 121.411407,31.248509,21.104272 121.411287,31.248479,21.027195 121.411179,31.248465,19.980874 121.411057,31.248450,18.728145 121.411025,31.248362,17.349024 121.410935,31.248409,16.597388 121.410817,31.248380,15.293104 121.410710,31.248357,14.573041 121.410606,31.248328,13.407944 121.410610,31.248234,13.906102 121.410593,31.248137,13.605090 121.410543,31.248031,14.355131 121.410428,31.247997,13.549547 121.410386,31.247911,14.693971 121.410450,31.247826,16.326486 121.410424,31.247701,18.289908 121.410464,31.247612,19.632557 121.410444,31.247506,21.514520 121.410339,31.247469,19.259850 121.410216,31.247439,16.406802 121.410119,31.247483,16.613076 121.410011,31.247514,17.455209 121.409917,31.247457,16.523162 121.409872,31.247369,16.013138 121.409733,31.247368,18.337587 121.409602,31.247413,18.445606 121.409504,31.247471,18.512765 121.409412,31.247532,19.377808 121.409316,31.247599,20.215357 121.409222,31.247665,20.481177 121.409170,31.247751,21.196982 121.409164,31.247848,20.956906 121.409179,31.247945,20.272224 121.409199,31.248038,19.334643 121.409280,31.248125,19.833266 121.409358,31.248212,19.820867 121.409404,31.248296,18.595932 121.409516,31.248249,17.708223 121.409594,31.248162,18.075133 121.409710,31.248123,19.018232 121.409819,31.248109,17.921594 121.409936,31.248145,15.502277 121.410041,31.248166,16.027042 121.410167,31.248173,15.371732 121.410290,31.248176,15.246808 121.410403,31.248123,15.944883 121.410467,31.248039,15.096675 121.410537,31.248124,13.864816 121.410567,31.248230,12.458429 121.410579,31.248328,13.149176 121.410473,31.248344,12.876684 121.410365,31.248335,11.129664 121.410245,31.248351,10.242394 121.410090,31.248353,13.186652 121.409961,31.248346,14.764102 121.409856,31.248357,17.169412 121.409738,31.248358,18.231875 121.409622,31.248360,18.403051 121.409508,31.248361,19.646304 121.409365,31.248339,18.949575 121.409237,31.248294,19.928035 121.409121,31.248225,20.709116 121.409044,31.248162,18.397718 121.409016,31.248056,18.157965 121.408989,31.247956,17.537539 121.408934,31.247843,15.779862 121.408908,31.247750,16.403810 121.408793,31.247687,16.524639 121.408689,31.247632,16.498129 121.408630,31.247547,17.166791 121.408548,31.247472,17.373712 121.408448,31.247440,18.793478 121.408332,31.247452,18.927142 121.408214,31.247486,17.833200 121.408089,31.247517,15.392247 121.407970,31.247541,14.741865 121.407861,31.247561,18.815798 121.407761,31.247611,18.713562 121.407640,31.247676,18.730124 121.407526,31.247720,17.002653 121.407398,31.247686,13.268558 121.407273,31.247686,11.018989 121.407164,31.247696,10.856815 121.407056,31.247721,9.303456 121.406955,31.247761,9.048027 121.406850,31.247785,10.396462 121.406734,31.247795,10.354880 121.406603,31.247798,11.238836 121.406467,31.247767,13.294918 121.406308,31.247738,14.634473 121.406182,31.247719,15.693320 121.406070,31.247719,15.210936 121.405932,31.247730,14.841322 121.405814,31.247744,15.175775 121.405691,31.247757,15.267791 121.405579,31.247777,15.705792 121.405471,31.247778,17.354331 121.405362,31.247765,19.089917 121.405238,31.247742,21.717700 121.405114,31.247742,22.060682 121.405005,31.247719,22.384144 121.404865,31.247710,21.574560 121.404736,31.247699,23.205679 121.404629,31.247685,23.147269 121.404517,31.247672,22.081854 121.404411,31.247674,20.753066 121.404478,31.247604,17.053777 121.404506,31.247473,15.834405 121.404525,31.247370,15.212687 121.404527,31.247269,14.888019 121.404483,31.247184,14.934825 121.404533,31.247097,14.328112 121.404565,31.247009,12.263217 121.404611,31.246926,11.628187 121.404658,31.246837,10.527147 121.404647,31.246734,10.991178 121.404618,31.246634,11.441520 121.404656,31.246521,9.700988 121.404691,31.246433,8.216947 121.404743,31.246345,6.579338 121.404797,31.246262,5.049590 121.404847,31.246163,5.693324 121.404854,31.246048,5.739090 121.404857,31.245951,6.165750 121.404894,31.245844,4.888117 121.404929,31.245752,2.948493 121.404954,31.245655,2.579433 121.404984,31.245542,2.863045 121.404992,31.245441,3.714119 121.405036,31.245353,3.871642 121.405104,31.245247,4.097018 121.405143,31.245155,3.919849 121.405228,31.245060,5.679005 121.405281,31.244958,7.165767 121.405357,31.244879,9.093689 121.405420,31.244796,11.226660 121.405503,31.244711,11.010617 121.405600,31.244668,10.615193 121.405640,31.244564,11.141700 121.405599,31.244455,10.417711 121.405536,31.244372,8.747996 121.405473,31.244243,8.541941 121.405419,31.244164,9.135043 121.405343,31.244078,9.614433 121.405291,31.243969,12.637076 121.405222,31.243880,16.213994 121.405134,31.243790,16.918365 121.405070,31.243710,18.512797 121.405002,31.243627,19.925317 121.404949,31.243534,20.746442 121.404868,31.243455,22.907303 121.404767,31.243353,24.413734 121.404680,31.243281,26.530371 121.404571,31.243220,25.966424 121.404480,31.243140,26.069929 121.404381,31.243078,23.178159 121.404305,31.242979,21.622792 121.404223,31.242892,22.773230 121.404156,31.242821,23.239609 121.404088,31.242741,21.998047 121.404114,31.242633,19.935630 121.404187,31.242561,18.006494 121.404252,31.242490,16.493761 121.404236,31.242393,14.069130 121.404210,31.242280,12.792857 121.404177,31.242193,12.184273 121.404203,31.242094,12.557123 121.404221,31.242000,13.819930 121.404259,31.241896,13.386424 121.404290,31.241789,12.522886 121.404307,31.241700,12.309913 121.404323,31.241594,12.957977 121.404326,31.241485,12.571736 121.404381,31.241384,11.952857 121.404454,31.241300,12.477554 121.404510,31.241203,11.385471 121.404483,31.241093,9.565152 121.404430,31.241001,8.678385 121.404323,31.240946,6.467929 121.404209,31.240930,5.149023 121.404060,31.240905,3.393014 121.403961,31.240970,4.917746 121.403920,31.241073,5.624629 121.403888,31.241165,7.177597 121.403843,31.241259,7.485265 121.403790,31.241357,6.772498 121.403826,31.241461,10.049295 121.403705,31.241545,6.853068 121.403571,31.241551,4.550054 121.403461,31.241530,9.154462 121.403352,31.241578,6.222946 121.403238,31.241595,7.791918 121.403134,31.241637,8.050636 121.403006,31.241654,9.692214 121.402916,31.241705,9.819481 121.402815,31.241772,10.453894 121.402733,31.241847,9.404759 121.402607,31.241925,8.948874 121.402538,31.241995,10.814360 121.402432,31.242050,10.650790 121.402356,31.242120,10.253858 121.402269,31.242203,9.613459 121.402290,31.242314,9.549373 121.402279,31.242407,9.964802 121.402172,31.242414,9.590108 121.402092,31.242489,9.212534 121.402002,31.242568,8.987599 121.401944,31.242647,8.689446 121.401885,31.242736,9.312778 121.401818,31.242806,12.006792 121.401739,31.242875,14.143190 121.401678,31.242962,13.284181 121.401624,31.243041,17.827203 121.401514,31.243126,18.289135 121.401431,31.243184,18.690297 121.401349,31.243242,17.689918 121.401245,31.243268,15.965642 121.401141,31.243242,14.770798 121.401085,31.243143,12.773925 121.400995,31.243072,13.431026 121.400910,31.243017,14.538699 121.400886,31.242913,13.437421 121.400805,31.242835,12.046328 121.400759,31.242739,11.160171 121.400721,31.242644,11.820872 121.400638,31.242573,11.421720 121.400518,31.242520,11.225144 121.400419,31.242585,11.534429 121.400306,31.242587,12.597368 121.400250,31.242506,12.548943 121.400154,31.242447,11.347528 121.400078,31.242370,11.148496 121.400000,31.242299,9.182931 121.399921,31.242238,9.116523 121.399844,31.242162,9.632620 121.399742,31.242112,10.344105 121.399630,31.242041,12.239453 121.399619,31.241935,11.517230 121.399656,31.241839,12.016081 121.399624,31.241724,11.351277 121.399581,31.241626,10.073450 121.399551,31.241525,9.405599 121.399522,31.241407,10.650921 121.399478,31.241309,11.932356 121.399434,31.241218,11.314374 121.399388,31.241117,12.184111 121.399373,31.240989,11.874680 121.399337,31.240888,10.757187 121.399293,31.240796,11.983645 121.399215,31.240721,14.424427 121.399140,31.240649,17.713392 121.399042,31.240576,18.772163 121.398962,31.240495,21.881649 121.398884,31.240432,23.210459 121.398864,31.240331,19.931874 121.398953,31.240268,18.370244 121.398882,31.240337,14.974180 121.398803,31.240268,14.785289 121.398728,31.240170,15.436113 121.398650,31.240085,15.450171 121.398567,31.240012,15.433222 121.398484,31.239946,15.148800 121.398399,31.239870,13.383894 121.398331,31.239791,11.828496 121.398237,31.239736,16.628895 121.398138,31.239691,18.648730 121.398055,31.239593,20.357796 121.397914,31.239547,21.793852 121.397821,31.239491,21.395029 121.397711,31.239425,18.257576 121.397605,31.239378,17.324972 121.397500,31.239317,16.334348 121.397409,31.239253,18.214955 121.397321,31.239196,18.147862 121.397238,31.239132,17.231052 121.397137,31.239079,16.085121 121.397027,31.239053,14.821074 121.396924,31.239005,15.836634 121.396886,31.238903,13.241152 121.396946,31.238817,12.593681 121.396980,31.238727,13.687818 121.396992,31.238636,14.225407 121.397021,31.238546,14.695002 121.397075,31.238437,17.150221 121.397160,31.238359,17.650998 121.397193,31.238263,19.105855 121.397240,31.238168,19.487160 121.397270,31.238074,20.597484 121.397341,31.238003,20.260470 121.397420,31.237910,18.914072 121.397473,31.237827,17.759220 121.397532,31.237736,16.807436 121.397613,31.237647,16.210346 121.397704,31.237579,16.151158 121.397821,31.237529,15.601098 121.397910,31.237456,12.561227 121.397971,31.237368,12.830194 121.398024,31.237265,10.931195 121.398121,31.237200,10.595887 121.398210,31.237149,9.399961 121.398315,31.237105,12.910194 121.398399,31.237049,13.002487 121.398513,31.237069,12.031182 121.398605,31.237129,12.320386 121.398709,31.237086,11.539673 121.398797,31.237014,11.706136 121.398886,31.236937,11.856627 121.398949,31.236849,11.601472 121.399043,31.236785,12.174562 121.399122,31.236721,11.709245 121.399174,31.236635,10.554740 121.399298,31.236606,9.268343 121.399417,31.236633,8.646492 121.399503,31.236716,7.907060 121.399562,31.236793,6.734347 121.399646,31.236850,7.083175 121.399753,31.236877,7.033449 121.399860,31.236891,6.326014 121.399838,31.236990,5.836602 121.399799,31.237085,6.346764 121.399692,31.237104,6.882103 121.399584,31.237163,8.081134 121.399477,31.237115,8.328733 121.399363,31.237105,9.963446 121.399271,31.237039,10.769982 121.399213,31.236960,10.180793 121.399154,31.236882,9.607692 121.399020,31.236900,8.145905 121.398895,31.236913,7.609864 121.398825,31.236981,6.737700 121.398738,31.237081,7.682652 121.398629,31.237114,7.713495 121.398520,31.237070,8.921551 121.398474,31.236978,7.245710 121.398418,31.236875,6.084318 121.398339,31.236809,6.476935 121.398244,31.236761,7.564447 121.398164,31.236675,7.270424 121.398092,31.236599,8.075235 121.398026,31.236529,8.424643 121.397960,31.236440,9.437127 121.397892,31.236339,10.648343 121.397814,31.236253,11.558867 121.397790,31.236151,10.845760 121.397759,31.236046,10.478503 121.397722,31.235948,10.333888 121.397709,31.235845,11.110551 121.397683,31.235744,11.479081 121.397651,31.235649,11.308740 121.397637,31.235555,11.395685 121.397649,31.235450,12.673890 121.397669,31.235358,12.206534 121.397673,31.235264,11.807538 121.397642,31.235164,11.887233 121.397643,31.235070,12.040298 121.397642,31.234969,12.735631 121.397603,31.234858,14.682672 121.397575,31.234769,14.510117 121.397520,31.234675,13.600993 121.397517,31.234576,11.851805 121.397501,31.234487,11.550394 121.397481,31.234380,12.206386 121.397447,31.234287,15.620156 121.397433,31.234196,19.243157 121.397505,31.234104,20.623051 121.397627,31.234106,20.704737 121.397518,31.234100,15.902906 121.397408,31.234090,15.030472 121.397291,31.234099,13.971308 121.397171,31.234114,14.169596 121.397068,31.234154,14.879793 121.397189,31.234138,10.414108 121.397083,31.234083,16.350852 121.396975,31.234092,15.404266 121.397108,31.234117,14.404793 121.397175,31.233979,14.705066 121.397170,31.233880,14.671704 121.397182,31.233790,13.744501 121.397049,31.233803,11.262059 121.396926,31.233783,8.855722 121.396817,31.233761,8.274254 121.396712,31.233748,6.817696 121.396604,31.233757,6.757857 121.396489,31.233766,4.712467 121.396380,31.233751,4.399943 121.396264,31.233742,3.541476 121.396135,31.233745,3.468190 121.396005,31.233737,4.081775 121.395877,31.233737,4.769357 121.395749,31.233743,5.073013 121.395638,31.233758,5.346788 121.395511,31.233760,4.013197 121.395379,31.233760,4.022273 121.395265,31.233773,5.178707 121.395134,31.233760,4.352552 121.395024,31.233764,4.331260 121.394917,31.233765,4.057658 121.394807,31.233747,4.679084 121.394667,31.233756,2.777779 121.394565,31.233730,3.648744 121.394559,31.233620,5.549347 121.394557,31.233519,6.437873 121.394549,31.233411,5.144705 121.394568,31.233312,6.658680 121.394544,31.233203,8.816615 121.394570,31.233109,9.739079 121.394565,31.233000,9.522362 121.394552,31.232892,10.295779 121.394570,31.232783,12.460787 121.394575,31.232681,12.840715 121.394596,31.232557,12.332710 121.394612,31.232443,11.024164 121.394612,31.232346,9.710450 121.394634,31.232255,9.088099 121.394621,31.232155,7.634154 121.394637,31.232063,6.668305 121.394683,31.231978,7.354768 121.394711,31.231890,8.136321 121.394682,31.231786,8.124136 121.394663,31.231666,7.809326 121.394555,31.231591,5.683669 121.394487,31.231500,4.374364 121.394460,31.231384,4.175226 121.394442,31.231277,3.263454 121.394367,31.231167,0.948036 121.394300,31.231092,-0.580509 121.394235,31.231000,0.556243 121.394134,31.230947,0.638754 121.394030,31.230879,0.029702 121.393896,31.230815,1.335863 121.393846,31.230734,3.578838 121.393769,31.230653,4.775389 121.393608,31.230588,4.950383 121.393499,31.230553,4.894516 121.393379,31.230518,4.909383 121.393275,31.230486,5.380222 121.393168,31.230458,3.897540 121.393050,31.230422,1.892015 121.392917,31.230383,-0.364901 121.392817,31.230348,-0.178672 121.392706,31.230321,-0.213282 121.392602,31.230298,-0.442058 121.392460,31.230264,0.941280 121.392337,31.230243,2.804389 121.392209,31.230232,4.320230 121.392081,31.230182,5.921327 121.391983,31.230129,5.943073 121.391945,31.230041,4.055786 121.391929,31.229941,3.928420 121.391921,31.229833,4.437717 121.391929,31.229742,3.963776 121.391937,31.229633,3.149351 121.391949,31.229534,2.558649 121.391921,31.229444,3.528514 121.391906,31.229301,6.769655 121.391923,31.229200,7.882455 121.391905,31.229107,8.394622 121.391892,31.228998,7.639798 121.391901,31.228896,10.236069 121.391914,31.228804,10.288028 121.391914,31.228683,8.806797 121.391913,31.228566,8.640566 121.391922,31.228463,8.193291 121.391917,31.228353,8.780491 121.391910,31.228259,8.641282 121.391904,31.228146,7.267065 121.391893,31.228041,6.190213 121.391886,31.227926,5.927638 121.391877,31.227822,6.086347 121.391875,31.227727,7.203107 121.391906,31.227615,7.432589 121.391912,31.227512,7.986002 121.391887,31.227423,7.197732 121.391876,31.227317,6.302314 121.391871,31.227220,5.157370 121.391848,31.227111,5.020696 121.391852,31.226993,5.206177 121.391859,31.226887,4.537369 121.391879,31.226772,4.108587 121.391879,31.226670,3.638764 121.391849,31.226581,4.724647 121.391831,31.226491,4.113531 121.391843,31.226383,3.888992 121.391869,31.226294,4.501741 121.391943,31.226227,6.188724 121.392043,31.226184,6.343667 121.392062,31.226072,5.026028 121.392132,31.225999,4.766057 121.392238,31.226017,6.036425 121.392324,31.225946,6.196748 121.392359,31.225851,6.257390 121.392458,31.225782,5.280228 121.392500,31.225695,4.180822 121.392527,31.225595,3.730753 121.392534,31.225498,4.725040 121.392536,31.225404,5.476243 121.392433,31.225382,4.373855 121.392336,31.225316,4.294077 121.392241,31.225274,3.070873 121.392202,31.225173,5.537766 121.392155,31.225084,6.385144 121.392093,31.225007,5.906335 121.392037,31.224919,5.839969 121.392018,31.224819,5.241055 121.392058,31.224720,4.746119 121.392096,31.224635,3.824110 121.392175,31.224567,3.490816 121.392285,31.224519,2.112669 121.392340,31.224433,1.852974 121.392420,31.224363,1.653164 121.392495,31.224297,1.865749 121.392519,31.224198,5.299124 121.392515,31.224097,5.796248 121.392497,31.224003,5.854212 121.392477,31.223905,5.627585 121.392515,31.223821,3.110148 121.392555,31.223738,4.475409 121.392557,31.223636,4.017416 121.392474,31.223554,4.750370 121.392382,31.223629,5.392012 121.392321,31.223726,4.921718 121.392346,31.223838,5.110960 121.392447,31.223882,3.835061 121.392494,31.223967,2.505630 121.392483,31.224075,2.250352 121.392477,31.224174,1.800295 121.392436,31.224281,1.390183 121.392366,31.224370,0.846685 121.392301,31.224454,3.328015 121.392204,31.224521,6.280284 121.392124,31.224612,7.005608 121.392070,31.224702,6.681457 121.392034,31.224799,6.787350 121.392034,31.224891,7.837666 121.392069,31.224976,7.412181 121.392138,31.225055,7.836540 121.392162,31.225156,7.663157 121.392199,31.225241,7.559856 121.392210,31.225340,8.563080 121.392207,31.225447,8.209147 121.392208,31.225544,8.743286 121.392194,31.225660,7.610740 121.392157,31.225745,7.459873 121.392098,31.225852,7.750515 121.392047,31.225940,8.315487 121.392035,31.226047,9.871645 121.392023,31.226154,10.212454 121.391979,31.226254,11.027486 121.391877,31.226222,11.168462 121.391851,31.226124,11.231209 121.391863,31.226030,10.807656 121.391759,31.225964,10.492296 121.391648,31.225958,9.626557 121.391520,31.225963,10.058530 121.391412,31.225972,9.581486 121.391329,31.225905,8.054331 121.391223,31.225888,5.807604 121.391118,31.225867,5.809231 121.391017,31.225843,6.597676 121.391114,31.225883,6.631522 121.391250,31.225902,6.122573 121.391304,31.225798,6.584827 121.391331,31.225700,6.285895 121.391338,31.225586,5.141039 121.391389,31.225490,5.295311 121.391415,31.225384,5.485910 121.391414,31.225290,6.300063 121.391422,31.225181,6.897147 121.391424,31.225074,8.198843 121.391413,31.224977,8.244380 121.391423,31.224862,10.252333 121.391442,31.224763,11.917166 121.391451,31.224661,11.240270 121.391470,31.224561,11.389762 121.391488,31.224456,10.693043 121.391524,31.224369,10.735906 121.391562,31.224281,10.825747 121.391591,31.224191,10.307735 121.391618,31.224096,10.812303 121.391680,31.223988,11.964696 121.391717,31.223889,11.211879 121.391738,31.223781,10.960517 121.391777,31.223682,10.231252 121.391800,31.223576,9.079111 121.391842,31.223469,8.697504 121.391885,31.223377,9.358852 121.391932,31.223284,9.741830 121.392005,31.223184,7.999271 121.392033,31.223075,7.181145 121.392091,31.222984,6.702614 121.392134,31.222900,6.755407 121.392138,31.222793,6.551143 121.392158,31.222673,7.092421 121.392172,31.222581,7.436142 121.392151,31.222487,6.160644 121.392195,31.222390,5.419595 121.392206,31.222285,5.506548 121.392237,31.222194,5.855742 121.392256,31.222092,7.199943 121.392264,31.221993,7.796444 121.392254,31.221891,8.372709 121.392252,31.221789,8.795191 121.392209,31.221696,9.587847 121.392124,31.221618,9.858664 121.392005,31.221583,9.420954 121.391882,31.221568,9.332909 121.391769,31.221550,9.931183 121.391646,31.221516,11.387695 121.391538,31.221486,11.286920 121.391421,31.221480,11.486315 121.391316,31.221497,11.822448 121.391200,31.221527,10.782272 121.391201,31.221415,11.720332 121.391188,31.221321,10.441563 121.391201,31.221213,9.494182 121.391272,31.221137,8.974977 121.391221,31.221046,9.756329 121.391126,31.220977,9.925304 121.391052,31.220889,9.661322 121.390927,31.220839,8.782815 121.390822,31.220844,9.045136 121.390698,31.220842,9.471052 121.390571,31.220857,10.257285 121.390436,31.220847,9.267371 121.390301,31.220820,7.936731 121.390179,31.220800,7.144815 121.390057,31.220809,7.626330 121.389933,31.220804,8.617169 121.389827,31.220795,9.664990 121.389718,31.220803,9.919866 121.389612,31.220820,10.227165 121.389489,31.220814,9.549910 121.389363,31.220831,8.992286 121.389226,31.220830,9.720963 121.389119,31.220837,10.169048 121.389006,31.220803,10.439927 121.388965,31.220900,9.745731 121.388863,31.220934,9.852965 121.388752,31.220935,11.959690 121.388612,31.220934,14.299234 121.388507,31.220946,13.886986 121.388394,31.220953,13.317280 121.388296,31.220896,12.740751 121.388197,31.220854,12.955221 121.388086,31.220827,14.710943 121.387966,31.220791,13.627330 121.387844,31.220789,12.316634 121.387719,31.220809,10.880268 121.387602,31.220789,10.079029 121.387472,31.220788,10.021388 121.387352,31.220794,9.149156 121.387243,31.220790,9.501079 121.387124,31.220786,9.377027 121.386998,31.220781,9.073035 121.386876,31.220776,8.684804 121.386763,31.220768,8.284433 121.386642,31.220777,7.993280 121.386522,31.220766,6.786847 121.386404,31.220753,7.620143 121.386298,31.220730,9.026751 121.386194,31.220764,8.265482 121.386078,31.220778,7.896382 121.385968,31.220796,8.177121 121.385852,31.220817,8.732543 121.385731,31.220795,9.461436 121.385623,31.220785,8.475704 121.385508,31.220776,7.639395 121.385371,31.220747,5.097557 121.385266,31.220749,4.898265 121.385147,31.220750,5.496700 121.385037,31.220769,5.132258 121.384920,31.220796,5.459509 121.384819,31.220842,8.417209 121.384713,31.220872,8.021511 121.384594,31.220910,8.193375 121.384492,31.220952,8.586330 121.384383,31.220980,8.827420 121.384284,31.221013,8.614836 121.384167,31.221006,8.858924 121.384046,31.220986,9.810139 121.383918,31.220946,10.587456 121.383828,31.220892,11.464342 121.383716,31.220850,9.822580 121.383585,31.220816,9.042890 121.383460,31.220838,7.973352 121.383343,31.220849,7.334426 121.383231,31.220870,7.833136 121.383122,31.220890,8.225889 121.382998,31.220907,8.353858 121.382876,31.220924,7.504151 121.382754,31.220946,7.024853 121.382630,31.220972,7.943650 121.382515,31.220980,9.241535 121.382395,31.221005,9.182392 121.382275,31.221022,9.439771 121.382162,31.221030,10.111268 121.382058,31.221055,9.715209 121.381945,31.221088,8.847263 121.381848,31.221123,9.029218 121.381747,31.221161,8.716780 121.381620,31.221213,6.922493 121.381503,31.221287,6.493378 121.381372,31.221283,9.874137 121.381261,31.221313,9.314693 121.381146,31.221339,9.620450 121.381027,31.221375,9.722038 121.380910,31.221417,8.063651 121.380797,31.221462,7.751294 121.380673,31.221504,7.975327 121.380566,31.221539,9.328802 121.380466,31.221572,9.538029 121.380350,31.221597,8.817566 121.380247,31.221635,8.313450 121.380136,31.221671,9.183081 121.380016,31.221698,9.555733 121.379894,31.221733,9.561237 121.379792,31.221762,8.964620 121.379676,31.221797,8.868176 121.379559,31.221843,9.906491 121.379449,31.221881,10.270493 121.379340,31.221884,10.150261 121.379218,31.221898,9.563134 121.379092,31.221910,9.285168 121.378999,31.221977,8.602784 121.378895,31.222011,7.411887 121.378775,31.222042,11.354901 121.378652,31.222017,12.811742 121.378510,31.221966,13.357669 121.378377,31.221939,13.335813 121.378253,31.221942,14.033520 121.378136,31.222018,17.053531 121.378023,31.222084,18.221612 121.377922,31.222041,17.766497 121.377816,31.221960,16.245026 121.377703,31.221943,15.777841 121.377576,31.221954,15.649315 121.377466,31.221918,14.545887 121.377340,31.221897,14.288100 121.377225,31.221893,14.847079 121.377111,31.221890,13.334635 121.376973,31.221882,12.473592 121.376849,31.221896,9.863607 121.376741,31.221903,8.495276 121.376627,31.221907,7.475586 121.376630,31.222002,8.360764 121.376590,31.222100,9.096477 121.376530,31.222177,9.454065 121.376463,31.222265,8.449382 121.376467,31.222364,9.171319 121.376440,31.222469,7.767919 121.376462,31.222569,7.194008 121.376471,31.222685,6.037146 121.376403,31.222778,4.399718 121.376296,31.222803,4.577356 121.376188,31.222849,6.231050 121.376073,31.222865,5.093795 121.375970,31.222921,5.850877 121.375870,31.222992,5.782118 121.375763,31.223001,5.222163 121.375615,31.223015,4.215222 121.375496,31.223026,2.994482 121.375388,31.223054,4.810935 121.375282,31.223078,6.137406 121.375156,31.223102,5.767405 121.375072,31.223160,7.301145 121.374965,31.223137,7.189566 121.374835,31.223128,10.907502 121.374723,31.223134,11.831936 121.374615,31.223131,11.641097 121.374506,31.223119,11.093176 121.374396,31.223113,10.302532 121.374268,31.223102,10.938185 121.374163,31.223091,9.741459 121.374052,31.223105,9.998255 121.373927,31.223083,9.568449 121.373814,31.223079,8.643501 121.373698,31.223059,8.533834 121.373580,31.223058,8.822043 121.373468,31.223052,8.838780 121.373352,31.223043,9.245635 121.373222,31.223030,9.390607 121.373088,31.223020,9.250478 121.372967,31.223014,10.382546 121.372856,31.223000,10.196654 121.372741,31.223003,10.983926 121.372632,31.222980,10.018683 121.372512,31.222966,9.166889 121.372380,31.222983,7.411228 121.372270,31.222994,5.541230 121.372165,31.222957,8.186228 121.372062,31.222925,14.686476 121.371943,31.222909,14.784688 121.371838,31.222892,14.602729 121.371728,31.222849,14.567779 121.371668,31.222771,11.455796 121.371563,31.222801,14.015007 121.371440,31.222783,10.803327 121.371324,31.222763,10.755808 121.371220,31.222733,10.528040 121.371116,31.222691,12.170422 121.370985,31.222666,14.072362 121.370861,31.222635,13.310841 121.370763,31.222589,12.154793 121.370656,31.222623,10.837873 121.370561,31.222664,12.454629 121.370440,31.222642,13.224538 121.370333,31.222614,13.052082 121.370213,31.222608,11.470462 121.370117,31.222560,11.075535 121.370062,31.222457,10.518664 121.370075,31.222357,8.713162 121.370003,31.222286,7.314009 121.369921,31.222225,7.031402 121.370024,31.222274,8.033165 121.369937,31.222327,7.024755 121.370004,31.222399,7.712087 121.369891,31.222416,10.130630 121.369784,31.222391,10.947171 121.370453,31.222456,9.333697 121.370536,31.222513,8.542389 121.370636,31.222550,8.632153 121.370749,31.222599,9.745810 121.370847,31.222644,9.578423 121.370967,31.222681,8.372802 121.371080,31.222730,7.698105 121.371114,31.222855,5.681363 121.371165,31.222941,6.373346 121.371247,31.222860,7.007055 121.371175,31.222794,10.163578 121.371118,31.222880,10.863798 121.371229,31.222908,11.487946 121.371148,31.222847,15.496965 121.371268,31.222852,19.040350 121.371329,31.222943,17.546707 121.371369,31.223037,16.660998 121.371391,31.223135,15.746222 121.371409,31.223226,16.359776 121.371429,31.223322,17.697535 121.371438,31.223418,17.895091 121.371436,31.223529,16.893765 121.371468,31.223639,15.272931 121.371474,31.223732,14.719362 121.371466,31.223847,14.461637 121.371481,31.223961,14.767163 121.371486,31.224060,14.443457 121.371490,31.224167,13.543890 121.371500,31.224268,13.004336 121.371498,31.224380,13.818651 121.371500,31.224489,13.423753 121.371519,31.224600,13.025536 121.371541,31.224695,12.549866 121.371561,31.224793,12.714903 121.371576,31.224902,11.649900 121.371616,31.225007,11.321639 121.371632,31.225121,11.109785 121.371642,31.225215,10.779997 121.371660,31.225327,11.281524 121.371669,31.225440,11.404812 121.371665,31.225557,10.965632 121.371677,31.225665,10.999005 121.371701,31.225778,10.690019 121.371704,31.225888,10.077571 121.371694,31.225979,10.578993 121.371718,31.226096,9.339659 121.371738,31.226204,8.856196 121.371745,31.226304,8.888903 121.371760,31.226398,9.695861 121.371794,31.226507,8.201024 121.371814,31.226609,7.380568 121.371878,31.226696,6.086987 121.371936,31.226791,6.145424 121.372016,31.226863,6.684114 121.372131,31.226845,6.201551 121.372232,31.226889,5.785939 121.372352,31.226935,5.006210 121.372478,31.226948,6.082612 121.372527,31.227049,9.073569 121.372572,31.227141,9.807019 121.372628,31.227229,8.621501 121.372642,31.227331,9.705716 121.372712,31.227428,10.015558 121.372812,31.227504,10.112525 121.372891,31.227584,10.044404 121.372976,31.227661,10.653696 121.373048,31.227754,12.177220 121.373124,31.227826,12.277502 121.373200,31.227894,10.510715 121.373285,31.227972,8.625347 121.373384,31.228034,8.093910 121.373470,31.228101,7.971553 121.373563,31.228176,6.726044 121.373651,31.228231,6.563340 121.373747,31.228305,5.239774 121.373845,31.228360,4.770188 121.373936,31.228420,4.904165 121.374033,31.228487,5.130528 121.374130,31.228544,5.242880 121.374240,31.228614,6.032141 121.374249,31.228730,5.926330 121.374223,31.228836,6.651042 121.374235,31.228943,7.442108 121.374271,31.229038,7.771518 121.374292,31.229135,8.483037 121.374269,31.229242,9.319871 121.374251,31.229340,7.730381 121.374135,31.229386,8.695108 121.374013,31.229411,11.356049 121.373904,31.229440,10.227728 121.373796,31.229493,11.833159 121.373681,31.229553,12.679873 121.373576,31.229607,12.827137 121.373560,31.229706,12.512112 121.373613,31.229790,9.180665 121.373676,31.229887,6.867276 121.373713,31.230000,5.356774 121.373729,31.230090,4.849695 121.373765,31.230203,4.257219 121.373823,31.230284,4.179358 121.373912,31.230355,4.350875 121.373973,31.230461,4.134330 121.374021,31.230549,4.444581 121.374024,31.230656,3.992291 121.374082,31.230736,3.050830 121.374144,31.230831,2.606255 121.374169,31.230933,2.261906 121.374195,31.231037,2.635678 121.374248,31.231141,3.295299 121.374278,31.231244,4.168151 121.374323,31.231338,4.431897 121.374365,31.231443,4.044379 121.374379,31.231552,5.166584 121.374423,31.231644,5.440122 121.374469,31.231737,6.095487 121.374530,31.231822,5.775058 121.374565,31.231933,6.195026 121.374611,31.232029,6.493715 121.374666,31.232115,5.992590 121.374719,31.232206,3.899206 121.374763,31.232304,4.095480 121.374802,31.232406,4.016122 121.374841,31.232514,3.772029 121.374896,31.232608,3.451809 121.374939,31.232709,2.494748 121.374991,31.232812,2.131611 121.375042,31.232906,2.186123 121.375082,31.232996,2.270866 121.375137,31.233098,2.643785 121.375216,31.233184,2.231709 121.375283,31.233292,1.501137 121.375352,31.233390,0.716174 121.375426,31.233483,2.227815 121.375492,31.233555,5.973122 121.375534,31.233644,6.267368 121.375620,31.233707,6.669458 121.375740,31.233688,11.100138 121.375844,31.233721,14.138245 121.375889,31.233812,16.796874 121.375948,31.233892,19.876563 121.376056,31.233950,20.390944 121.376162,31.233978,19.827739 121.376260,31.233944,18.292980 121.376367,31.233886,18.778807 + + + + + 脚印 + 1 + + 1 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170536_D550F.jpg-.thumbnail" /></a></div> +<div>1</div> +<div></div> +</div> + 1 + + 2024-12-08T13:16:43+00:00 + + + + 121.405661,31.257490,16.976895 + + + + 2 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170539_9801C.jpg-.thumbnail" /></a></div> +<div>2</div> +<div></div> +</div> + 1 + + 2024-12-08T13:21:26+00:00 + + + + 121.406112,31.255002,24.266090 + + + + 3 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170541_ED805.jpg-.thumbnail" /></a></div> +<div>3</div> +<div></div> +</div> + 1 + + 2024-12-08T13:21:06+00:00 + + + + 121.406102,31.255117,24.102371 + + + + 4 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170544_A7C98.jpg-.thumbnail" /></a></div> +<div>4</div> +<div></div> +</div> + 1 + + 2024-12-08T13:23:51+00:00 + + + + 121.406170,31.253170,23.479087 + + + + 5 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170547_DC3C8.jpg-.thumbnail" /></a></div> +<div>5</div> +<div></div> +</div> + 1 + + 2024-12-08T13:56:14+00:00 + + + + 121.410811,31.252271,15.914439 + + + + 6 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170549_29C39.jpg-.thumbnail" /></a></div> +<div>6</div> +<div></div> +</div> + 1 + + 2024-12-08T14:01:58+00:00 + + + + 121.415886,31.253294,19.641362 + + + + 7 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170552_00461.jpg-.thumbnail" /></a></div> +<div>7</div> +<div></div> +</div> + 1 + + 2024-12-08T14:02:55+00:00 + + + + 121.416065,31.252912,15.571255 + + + + 8 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170557_0B6C1.jpg-.thumbnail" /></a></div> +<div>8</div> +<div></div> +</div> + 1 + + 2024-12-08T14:16:29+00:00 + + + + 121.409917,31.247457,16.523162 + + + + 9 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170559_9370E.jpg-.thumbnail" /></a></div> +<div>9</div> +<div></div> +</div> + 1 + + 2024-12-08T14:16:29+00:00 + + + + 121.409917,31.247457,16.523162 + + + + 10 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170602_B1F32.jpg-.thumbnail" /></a></div> +<div>10</div> +<div></div> +</div> + 1 + + 2024-12-08T14:12:03+00:00 + + + + 121.412187,31.248683,17.208126 + + + + 11 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170606_8660D.jpg-.thumbnail" /></a></div> +<div>11</div> +<div></div> +</div> + 1 + + 2024-12-08T14:02:55+00:00 + + + + 121.416065,31.252912,15.571255 + + + + 12 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170611_D340D.jpg-.thumbnail" /></a></div> +<div>12</div> +<div></div> +</div> + 1 + + 2024-12-08T14:01:58+00:00 + + + + 121.415886,31.253294,19.641362 + + + + 13 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170614_8F8ED.jpg-.thumbnail" /></a></div> +<div>13</div> +<div></div> +</div> + 1 + + 2024-12-08T13:56:14+00:00 + + + + 121.410811,31.252271,15.914439 + + + + 14 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170616_21B55.jpg-.thumbnail" /></a></div> +<div>14</div> +<div></div> +</div> + 1 + + 2024-12-08T13:23:51+00:00 + + + + 121.406170,31.253170,23.479087 + + + + 15 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170619_2E4AB.jpg-.thumbnail" /></a></div> +<div>15</div> +<div></div> +</div> + 1 + + 2024-12-08T13:21:26+00:00 + + + + 121.406112,31.255002,24.266090 + + + + 16 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170622_13258.jpg-.thumbnail" /></a></div> +<div>16</div> +<div></div> +</div> + 1 + + 2024-12-08T13:21:06+00:00 + + + + 121.406102,31.255117,24.102371 + + + + 17 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170625_06EB8.jpg-.thumbnail" /></a></div> +<div>17</div> +<div></div> +</div> + 1 + + 2024-12-08T13:16:43+00:00 + + + + 121.405661,31.257490,16.976895 + + + + 18 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170628_042E2.jpg-.thumbnail" /></a></div> +<div>18</div> +<div></div> +</div> + 1 + + 2024-12-08T14:35:10+00:00 + + + + 121.404187,31.242561,18.006494 + + + + 19 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170632_39B6F.jpg-.thumbnail" /></a></div> +<div>19</div> +<div></div> +</div> + 1 + + 2024-12-08T14:35:57+00:00 + + + + 121.404210,31.242280,12.792857 + + + + 20 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170636_474F6.jpg-.thumbnail" /></a></div> +<div>20</div> +<div></div> +</div> + 1 + + 2024-12-08T14:35:57+00:00 + + + + 121.404210,31.242280,12.792857 + + + + 21 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170640_ADC80.jpg-.thumbnail" /></a></div> +<div>21</div> +<div></div> +</div> + 1 + + 2024-12-08T14:35:10+00:00 + + + + 121.404187,31.242561,18.006494 + + + + 22 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170643_66201.jpg-.thumbnail" /></a></div> +<div>22</div> +<div></div> +</div> + 1 + + 2024-12-08T14:16:29+00:00 + + + + 121.409917,31.247457,16.523162 + + + + 23 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170645_0B84B.jpg-.thumbnail" /></a></div> +<div>23</div> +<div></div> +</div> + 1 + + 2024-12-08T14:12:03+00:00 + + + + 121.412187,31.248683,17.208126 + + + + 24 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170649_2D79D.jpg-.thumbnail" /></a></div> +<div>24</div> +<div></div> +</div> + 1 + + 2024-12-08T14:02:55+00:00 + + + + 121.416065,31.252912,15.571255 + + + + 25 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170652_96E4C.jpg-.thumbnail" /></a></div> +<div>25</div> +<div></div> +</div> + 1 + + 2024-12-08T14:01:58+00:00 + + + + 121.415886,31.253294,19.641362 + + + + 26 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170655_668C4.jpg-.thumbnail" /></a></div> +<div>26</div> +<div></div> +</div> + 1 + + 2024-12-08T13:56:14+00:00 + + + + 121.410811,31.252271,15.914439 + + + + 27 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170657_A87CE.jpg-.thumbnail" /></a></div> +<div>27</div> +<div></div> +</div> + 1 + + 2024-12-08T13:23:51+00:00 + + + + 121.406170,31.253170,23.479087 + + + + 28 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170659_2B26A.jpg-.thumbnail" /></a></div> +<div>28</div> +<div></div> +</div> + 1 + + 2024-12-08T13:21:26+00:00 + + + + 121.406112,31.255002,24.266090 + + + + 29 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170701_2E6C9.jpg-.thumbnail" /></a></div> +<div>29</div> +<div></div> +</div> + 1 + + 2024-12-08T13:21:06+00:00 + + + + 121.406102,31.255117,24.102371 + + + + 30 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170704_C4C4D.jpg-.thumbnail" /></a></div> +<div>30</div> +<div></div> +</div> + 1 + + 2024-12-08T13:16:43+00:00 + + + + 121.405661,31.257490,16.976895 + + + + 31 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170706_069BE.jpg-.thumbnail" /></a></div> +<div>31</div> +<div></div> +</div> + 1 + + 2024-12-08T14:44:20+00:00 + + + + 121.402279,31.242407,9.964802 + + + + 32 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170709_55277.jpg-.thumbnail" /></a></div> +<div>32</div> +<div></div> +</div> + 1 + + 2024-12-08T14:46:50+00:00 + + + + 121.401678,31.242962,13.284181 + + + + 33 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170712_8C801.jpg-.thumbnail" /></a></div> +<div>33</div> +<div></div> +</div> + 1 + + 2024-12-08T14:48:34+00:00 + + + + 121.400910,31.243017,14.538699 + + + + 34 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170715_46828.jpg-.thumbnail" /></a></div> +<div>34</div> +<div></div> +</div> + 1 + + 2024-12-08T14:49:54+00:00 + + + + 121.400419,31.242585,11.534429 + + + + 35 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170720_6E88D.jpg-.thumbnail" /></a></div> +<div>35</div> +<div></div> +</div> + 1 + + 2024-12-08T14:59:54+00:00 + + + + 121.397821,31.237529,15.601098 + + + + 36 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170723_404ED.jpg-.thumbnail" /></a></div> +<div>36</div> +<div></div> +</div> + 1 + + 2024-12-08T15:01:29+00:00 + + + + 121.398797,31.237014,11.706136 + + + + 37 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170727_CB63A.jpg-.thumbnail" /></a></div> +<div>37</div> +<div></div> +</div> + 1 + + 2024-12-08T15:02:33+00:00 + + + + 121.399043,31.236785,12.174562 + + + + 38 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170731_2B3DF.jpg-.thumbnail" /></a></div> +<div>38</div> +<div></div> +</div> + 1 + + 2024-12-08T15:11:51+00:00 + + + + 121.397189,31.234138,10.414108 + + + + 39 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170733_7CC4A.jpg-.thumbnail" /></a></div> +<div>39</div> +<div></div> +</div> + 1 + + 2024-12-08T15:15:47+00:00 + + + + 121.394565,31.233730,3.648744 + + + + 40 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170735_ED0BE.jpg-.thumbnail" /></a></div> +<div>40</div> +<div></div> +</div> + 1 + + 2024-12-08T15:27:24+00:00 + + + + 121.391843,31.226383,3.888992 + + + + 41 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170738_ADB2C.jpg-.thumbnail" /></a></div> +<div>41</div> +<div></div> +</div> + 1 + + 2024-12-08T15:30:41+00:00 + + + + 121.392155,31.225084,6.385144 + + + + 42 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170741_2C5CF.jpg-.thumbnail" /></a></div> +<div>42</div> +<div></div> +</div> + 1 + + 2024-12-08T15:55:33+00:00 + + + + 121.386194,31.220764,8.265482 + + + + 43 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170745_46143.jpg-.thumbnail" /></a></div> +<div>43</div> +<div></div> +</div> + 1 + + 2024-12-08T16:09:10+00:00 + + + + 121.376467,31.222364,9.171319 + + + + 44 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170748_EAB94.jpg-.thumbnail" /></a></div> +<div>44</div> +<div></div> +</div> + 1 + + 2024-12-08T16:12:19+00:00 + + + + 121.374965,31.223137,7.189566 + + + + 45 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170751_909B6.jpg-.thumbnail" /></a></div> +<div>45</div> +<div></div> +</div> + 1 + + 2024-12-08T16:38:44+00:00 + + + + 121.371148,31.222847,15.496965 + + + + 46 + <div> +<div><a href="" target="_blank"><img style="height:360" src="https://image.six-foot.lvye.cn/footprint/2024/12/08/170753_69207.jpg-.thumbnail" /></a></div> +<div>46</div> +<div></div> +</div> + 1 + + 2024-12-08T16:52:06+00:00 + + + + 121.372976,31.227661,10.653696 + + + + + diff --git "a/public/vaults/Demo/Attachments/\347\272\242\345\217\266\345\260\232\346\271\226.gpx" "b/public/vaults/Demo/Attachments/\347\272\242\345\217\266\345\260\232\346\271\226.gpx" new file mode 100644 index 0000000..a50dc27 --- /dev/null +++ "b/public/vaults/Demo/Attachments/\347\272\242\345\217\266\345\260\232\346\271\226.gpx" @@ -0,0 +1,2843 @@ + + +红叶尚湖 +sf_pavsivwg +http://www.foooooot.com/trip/8505129/ +红叶尚湖 + + +红叶尚湖 +手机客户端软件/六只脚Android版 + + +22.448067376 + +0.91034526 + +20.508525 + +0.937879 + +20.121102 + +1.50535 + +17.302433 + +1.267133 + +15.83127 + +1.47707 + +13.328052 + +1.241214 + +11.313893 + +1.230069 + +11.97589 + +1.126841 + +11.963539 + +1.323118 + +13.405582 + +1.365675 + +13.642122 + +1.286857 + +13.60138 + +1.104202 + +14.603795 + +0.68188 + +25.969883 + +0.286459 + +26.006126 + +0.151282 + +26.123882 + +0.187729 + +26.132007 + +0.190118 + +26.757126 + +0.380219 + +26.780297 + +0.634726 + +25.791604 + +0.820441 + +26.540848 + +1.147453 + +26.999026 + +0.554427 + +27.425023 + +0.325604 + +27.754512 + +0.345263 + +27.753876 + +0.157471 + +26.185915 + +0.159155 + +32.126455 + +1.236888 + +25.85202 + +1.249069 + +5.67095 + +0.957835 + +6.201111 + +0.996611 + +7.248277 + +0.920928 + +6.879731 + +0.928632 + +9.182317 + +0.843911 + +10.240073 + +1.181251 + +9.346632 + +1.056393 + +9.635855 + +1.188249 + +8.418652 + +0.87472 + +7.920972 + +1.455372 + +9.013215 + +1.054606 + +10.04499 + +0.979035 + +9.676921 + +0.880409 + +13.657954 + +0.902087 + +15.213502 + +0.99752 + +16.658739 + +1.203402 + +16.714448 + +0.712893 + +16.732175 + +1.248817 + +17.289704 + +1.134165 + +18.410568 + +1.145061 + +17.80897 + +0.594352 + +16.303508 + +1.132674 + +16.776426 + +1.135167 + +15.46772 + +1.013756 + +16.521322 + +1.257857 + +17.521097 + +1.07813 + +20.763235 + +1.41995 + +19.423836 + +1.42392 + +18.029333 + +1.601774 + +16.573966 + +0.9386 + +15.49226 + +1.880606 + +16.550284 + +1.782904 + +18.145672 + +1.637671 + +18.960745 + +1.566382 + +18.806359 + +1.582493 + +19.723592 + +1.496738 + +20.333143 + +1.777069 + +19.973876 + +1.668945 + +21.469378 + +1.221758 + +21.938086 + +1.675416 + +21.816925 + +1.437393 + +20.831496 + +1.464366 + +18.362657 + +0.748468 + +12.776122 + +0.407691 + +11.876808 + +1.353687 + +11.773936 + +1.647917 + +12.06318 + +1.570076 + +12.037666 + +1.953312 + +10.154544 + +2.279314 + +9.26948 + +2.193102 + +8.134221 + +1.731227 + +8.208129 + +1.274957 + +10.671935 + +1.416339 + +8.553856 + +1.288227 + +7.202804 + +1.585078 + +8.128163 + +1.65048 + +7.824324 + +1.807427 + +7.845478 + +0.621775 + +10.542795 + +1.41511 + +10.694715 + +1.377051 + +12.618637 + +1.250718 + +12.539222 + +1.470368 + +12.080292 + +1.153725 + +9.755522 + +0.633648 + +5.119665 + +0.703986 + +0.705911 + +1.231958 + +0.835628 + +1.167904 + +9.920838 + +1.185502 + +10.367699 + +0.99128 + +7.466298 + +0.999742 + +6.449505 + +0.557529 + +3.338084 + +1.188548 + +3.242324 + +0.7689 + +10.551552 + +0.823619 + +9.164694 + +1.190822 + +11.43217 + +1.175769 + +14.554956 + +0.938668 + +13.104695 + +0.853078 + +12.132043 + +0.447153 + +18.591635 + +0.884767 + +10.677611 + +0.538771 + +12.027556 + +0.650491 + +9.032762 + +0.6701 + +7.732645 + +0.877904 + +8.800091 + +0.484793 + +10.86752 + +0.699561 + +8.466829 + +0.509563 + +7.214296 + +0.209804 + +9.676646 + +0.978025 + +5.580023 + +0.894785 + +7.82827 + +0.100769 + +8.795733 + +0.73674 + +5.258378 + +1.00934 + +4.548157 + +0.784354 + +5.843026 + +0.85922 + +8.976822 + +0.816683 + +10.174055 + +0.412747 + +6.840665 + +0.662905 + +7.784484 + +0.244413 + +1.45291 + +0.360893 + +5.943604 + +0.282915 + +7.183891 + +0.082838 + +9.354838 + +0.677706 + +8.48524 + +0.4218 + +9.48909 + +0.86246 + +8.850078 + +0.813784 + +8.753948 + +0.998252 + +6.463026 + +0.25069 + +4.771663 + +0.780146 + +6.745674 + +1.120915 + +8.067274 + +0.846947 + +8.798882 + +1.007219 + +11.788264 + +0.555478 + +13.392742 + +1.069715 + +12.209116 + +0.917721 + +12.787482 + +1.012609 + +8.232185 + +0.138399 + +10.18082 + +1.089876 + +9.824398 + +1.12608 + +8.881268 + +1.792452 + +9.563922 + +1.955721 + +11.014532 + +1.586628 + +12.091904 + +2.193392 + +11.741365 + +2.185001 + +11.043247 + +2.082392 + +7.941092 + +1.663525 + +8.381711 + +1.994932 + +8.962038 + +1.418852 + +7.723787 + +2.018551 + +6.71636 + +2.061112 + +6.183582 + +1.645609 + +6.174948 + +1.968023 + +6.120061 + +0.826158 + +5.795928 + +1.85705 + +5.109537 + +1.523247 + +4.652574 + +1.854512 + +5.747467 + +1.378803 + +6.291344 + +1.780754 + +5.990518 + +1.537751 + +6.415797 + +1.435844 + +10.705239 + +0.712343 + +9.704305 + +1.523262 + +7.903957 + +0.68285 + +6.640684 + +0.69294 + +7.136901 + +1.768309 + +7.537124 + +1.952434 + +11.203142 + +0.749149 + +14.774069 + +0.57817 + +20.549118 + +1.135655 + +20.79032 + +1.765748 + +19.953818 + +0.975659 + +18.971895 + +1.008316 + +18.123883 + +1.077101 + +16.343641 + +1.525103 + +14.595912 + +1.663619 + +13.875157 + +1.430454 + +14.123691 + +1.051597 + +16.985767 + +1.191602 + +13.508185 + +1.385222 + +13.11378 + +1.616731 + +12.580235 + +1.451484 + +11.0579 + +1.254101 + +10.939151 + +1.44262 + +12.23727 + +1.30879 + +14.732959 + +1.00304 + +14.845245 + +1.350996 + +13.472178 + +1.582784 + +13.303682 + +1.608248 + +12.260258 + +1.678452 + +6.985891 + +1.855589 + +5.566433 + +1.551926 + +4.985653 + +1.851085 + +2.244673 + +1.644032 + +-1.280087 + +1.201948 + +-0.097466 + +0.975666 + +5.487843 + +1.661912 + +6.808983 + +0.795772 + +9.375229 + +0.767558 + +10.709484 + +0.229561 + +18.765277 + +0.928973 + +17.206883 + +0.501397 + +11.817662 + +0.661693 + +7.119072 + +0.337829 + +2.38609 + +0.58248 + +-1.114091 + +0.144886 + +-1.477296 + +0.065185 + +-1.190636 + +0.524476 + +-1.025555 + +0.101268 + +-1.097915 + + +-1.097915 + +1e-06 + +-1.097915 + + +-1.505933 + +0.128956 + +-0.763783 + +0.190456 + +1.214191 + +0.191415 + +3.275131 + +0.475279 + +1.900686 + +0.064452 + +-0.093967 + +0.17592 + +1.834508 + +0.070825 + +1.812825 + +0.18888 + +4.602329 + +0.254554 + +4.480052 + +0.102841 + +5.01866 + +0.094665 + +5.629859 + + +5.294289 + + +4.730166 + +0.23981 + +3.668367 + +0.184511 + +2.759313 + +0.251191 + +2.240501 + +0.572069 + +1.809019 + +0.587366 + +0.079697 + +0.603763 + +-0.300754 + +0.787234 + +1.583582 + +0.329303 + +4.901504 + +0.835199 + +5.820867 + +1.007132 + +15.406659 + +0.958055 + +17.420922 + +1.764746 + +19.357607 + +2.117868 + +19.121404 + +1.934124 + +18.588058 + +1.874208 + +16.588348 + +1.617639 + +14.368523 + +0.938511 + +16.403614 + +0.684608 + +19.983395 + +1.226493 + +18.652928 + +1.0513 + +18.276457 + +1.200863 + +17.384051 + +1.500743 + +16.036964 + +1.626893 + +16.342281 + +1.692674 + +16.797337 + +1.576704 + +10.481251 + +1.3955 + +7.044975 + +0.538796 + +0.828805 + +0.803094 + +0.020178 + +1.66341 + +-1.466216 + +1.186422 + +-1.702808 + +1.13639 + +-3.549505 + +1.034364 + +-4.948431 + +1.060338 + +-4.418329 + +1.250497 + +-3.811559 + +1.001419 + +-2.341448 + +0.887873 + +-3.020511 + +0.306545 + +3.429559 + +0.916078 + +0.297109 + +1.116233 + +-0.110508 + +0.471722 + +1.917782 + +1.005821 + +1.134052 + +0.479573 + +0.111165 + +0.553574 + +2.186601 + +1.075966 + +2.842917 + +1.166205 + +2.257128 + +1.229489 + +-1.751601 + +0.980888 + +12.01613 + +0.722528 + +13.958688 + +1.160133 + +13.971066 + +0.731609 + +14.814563 + +1.500237 + +14.544408 + +1.451164 + +17.352554 + +0.880196 + +18.582771 + +1.147865 + +17.68927 + +0.712136 + +19.199264 + +1.359459 + +18.715407 + +1.156945 + +18.04156 + +1.590005 + +17.560672 + +1.609178 + +15.174221 + +1.604961 + +15.186646 + +1.126198 + +15.726768 + +1.463 + +15.482161 + +1.348154 + +13.680978 + +1.349734 + +13.533864 + +0.596927 + +10.735212 + +1.333933 + +10.708612 + +1.182348 + +10.646783 + +1.323806 + +13.500082 + +1.200149 + +12.733696 + +1.632608 + +11.366681 + +1.109556 + +10.795169 + +1.13406 + +9.805845 + +1.549642 + +10.199447 + +1.423755 + +10.090869 + +1.401299 + +9.957393 + +1.496562 + +9.507478 + +1.303571 + +10.394844 + +1.297176 + +10.246255 + +0.940377 + +9.816215 + +1.442913 + +8.484302 + +1.714603 + +5.286014 + +0.194491 + +4.032225 + +0.851545 + +-1.54945 + +0.904503 + +0.543311 + +0.833218 + +2.288126 + +1.037057 + +1.030729 + +0.836504 + +-0.498831 + +1.034218 + +2.473655 + +1.156019 + +1.958161 + +1.143308 + +2.858796 + +0.780506 + +0.579445 + +1.406684 + +0.089455 + +1.426744 + +2.044891 + +0.570593 + +5.732065 + +1.795216 + +4.791569 + +1.829109 + +4.507746 + +1.090543 + +4.943946 + +1.386499 + +7.156822 + +1.253488 + +8.162488 + +0.580142 + +9.244276 + +0.911813 + +10.74502 + +0.366788 + +7.79877 + +0.394077 + +6.67281 + +0.931471 + +4.102697 + +0.812593 + +1.632116 + +1.030003 + +2.19025 + +0.764885 + +2.298368 + +1.002548 + +2.547588 + +1.27766 + +2.076341 + +1.098023 + +0.065372 + +1.018609 + +2.078415 + +0.828119 + +1.767616 + +0.866053 + +3.55266 + +0.735513 + +1.17123 + +0.465543 + +1.405558 + +0.709233 + +0.06967 + +0.203912 + +-1.39601 + +0.937913 + +-2.002397 + +0.536563 + +0.93767 + +0.519685 + +0.07073 + +0.808468 + +-1.120905 + +0.78026 + +1.619671 + +0.351859 + +1.488453 + +0.82379 + +4.5936 + +0.446435 + +5.148781 + +0.845117 + +5.037272 + +1.42535 + +5.449773 + +1.697087 + +4.722436 + +1.1842 + +5.559432 + +0.902362 + +3.48576 + +1.144814 + +4.32757 + +1.24222 + +5.918514 + +1.566897 + +5.748327 + +1.64048 + +5.14132 + +1.170088 + +6.269104 + +1.221454 + +6.782073 + +1.569217 + +5.969433 + +1.055018 + +5.119709 + +0.947084 + +3.311925 + +1.539248 + +3.402821 + +0.966462 + +4.270699 + +0.647999 + +3.683602 + +0.853826 + +2.977799 + +1.273549 + +7.456497 + +0.35459 + +9.560072 + +1.082202 + +5.008717 + +1.639659 + +4.205306 + +1.623765 + +3.564023 + +1.448337 + +2.085566 + +1.542124 + +1.404334 + +1.274531 + +2.10415 + +1.259772 + +1.285274 + +2.109165 + +2.016983 + +0.772394 + +-0.135954 + +1.390087 + +-1.70791 + +1.312048 + +-1.200376 + +1.174598 + +1.611215 + +1.234786 + +2.381243 + +0.910301 + +3.487264 + +1.340683 + +3.169265 + +1.555379 + +3.539256 + +1.141609 + +4.472793 + +1.357472 + +4.996679 + +1.203107 + +4.247422 + +0.9136 + +3.505071 + +0.943264 + +3.314817 + +1.054963 + +2.907524 + +1.711357 + +3.000563 + +1.84686 + +3.659536 + +0.901292 + +4.25354 + +1.868425 + +5.538715 + +0.462176 + +7.04946 + +0.755116 + +10.711551 + +1.492738 + +11.142638 + +1.788304 + +6.622503 + +0.97197 + +7.559323 + +1.221307 + +8.863619 + +1.191961 + +11.564675 + +0.487925 + +12.325027 + +1.734815 + +9.69697 + +1.674681 + +5.742261 + +1.063763 + +6.462296 + +1.27848 + +5.481221 + +2.900706 + +4.979227 + +2.041005 + +4.658 + +0.762829 + +1.456397 + +1.252073 + +3.162233 + +0.166049 + +2.200243 + +1.211399 + +0.84837 + +0.948932 + +1.969573 + +0.908519 + +2.241348 + +0.876765 + +1.729485 + +0.524458 + +2.837064 + +0.734519 + +3.386502 + +1.08737 + +6.059335 + +0.671024 + +5.916925 + +1.068446 + +5.572659 + +0.787418 + +3.879424 + +0.394599 + +3.080109 + +0.73198 + +0.914679 + +0.724269 + +0.138544 + +0.825258 + +1.749777 + +0.82792 + +1.580549 + +0.616114 + +3.21853 + +0.710218 + +6.884248 + +0.856952 + +8.978542 + +1.377984 + +8.425601 + +1.277334 + +9.211819 + +2.058008 + +9.431338 + +1.952372 + +9.400029 + +1.943046 + +9.275888 + +1.803605 + +7.362027 + +1.141554 + +7.607975 + +0.960202 + +15.009102 + +2.024376 + +13.850936 + +2.204549 + +16.554656 + +1.342138 + +18.478751 + +1.489068 + +17.160022 + +1.863822 + +13.427462 + +0.811213 + +11.751337 + +1.149798 + +9.835607 + +0.865591 + +9.800087 + +0.917126 + +9.823099 + +1.304872 + +8.803387 + +1.921463 + +7.260272 + +2.007271 + +5.538823 + +1.222104 + +3.400195 + +1.089965 + +3.979254 + +1.211912 + +4.08 + +1.423115 + +3.398889 + +1.784899 + +3.211485 + +1.681609 + +3.385775 + +1.541257 + +4.008849 + +2.204087 + +4.944773 + +1.991243 + +4.832566 + +2.507524 + +6.659374 + +2.162983 + +7.858817 + +3.336632 + +8.290629 + +2.260286 + +8.865434 + +2.54475 + +8.858728 + +2.804892 + +9.523592 + +2.525584 + +10.410982 + +1.940471 + +10.90875 + +2.403612 + +11.729442 + +1.992973 + +12.462089 + +2.165393 + +12.782254 + +2.14128 + +12.428288 + +2.286254 + +13.857029 + +1.852277 + +14.76677 + +1.991882 + +16.213761 + +1.678854 + +16.198969 + +1.642846 + +16.659438 + +1.601709 + +16.877887 + +2.182841 + +16.469361 + +1.79078 + +16.106162 + +2.639027 + +15.146212 + +2.432602 + +14.17611 + +1.504421 + +13.302518 + +1.023871 + +10.82748 + +0.497127 + +11.299261 + +1.66252 + +13.678472 + +1.710052 + +13.958537 + +1.596382 + +14.159961 + +1.629274 + +14.422938 + +1.671422 + +13.873761 + +1.508805 + +13.812648 + +0.752196 + +7.752515 + +1.291063 + +0.482069 + +0.878212 + +0.159318 + +1.223466 + +-2.477208 + +0.97344 + +4.099294 + +1.104931 + +7.834648 + +2.022044 + +8.063694 + +2.130309 + +8.185186 + +1.983705 + +7.792868 + +1.697721 + +7.466216 + +1.729825 + +7.842564 + +1.701036 + +8.325721 + +1.639285 + +8.02212 + +1.792641 + +10.138322 + +1.494528 + +10.441466 + +1.09967 + +8.841012 + +0.855442 + +8.693567 + +0.902912 + +9.370704 + +1.29276 + +8.161279 + +1.310685 + +7.802306 + +1.310377 + +8.299908 + +1.853242 + +8.493104 + +2.06592 + +9.245299 + +1.319283 + +9.520932 + +1.530879 + +10.229917 + +1.186883 + +11.371952 + +1.039528 + +11.873077 + +1.351409 + +12.050287 + +1.279585 + +12.783483 + +1.62081 + +12.288974 + +1.098656 + +9.406389 + +1.628549 + +9.135465 + +0.765656 + +8.240561 + +1.722036 + +8.535239 + +2.194225 + +8.765076 + +2.803406 + +8.843647 + +2.089007 + +8.818291 + +3.008719 + +8.604101 + +2.636337 + +8.890382 + +1.936053 + +9.180503 + +1.8429 + +8.916997 + +1.932798 + +8.8586 + +1.814298 + +7.799929 + +1.618191 + +7.84778 + +0.718126 + +4.202549 + +1.227936 + +4.797172 + +1.31777 + +6.488482 + +1.841243 + +5.470822 + +1.811344 + +4.611668 + +1.944766 + +5.543892 + +1.704325 + +5.216125 + +2.178074 + +5.495961 + +2.166837 + +4.012495 + +1.803784 + +3.893584 + +2.076716 + +4.540479 + +2.05322 + +6.059863 + +1.402747 + +13.534362 + +2.147996 + +14.606567 + +2.155569 + +16.144243 + +2.162076 + +15.473632 + +1.847316 + +14.937416 + +1.672667 + +15.204029 + +1.42933 + +14.657004 + +1.16688 + +14.431186 + +1.898452 + +14.72407 + +2.277694 + +13.004736 + +2.231636 + +12.237363 + +1.443777 + +11.305629 + +1.726185 + +11.290464 + +1.593029 + +12.498895 + +1.608937 + +11.441291 + +1.931619 + +10.313812 + +1.82593 + +9.555828 + +1.828798 + +8.936912 + +1.969845 + +8.575308 + +1.770225 + +7.766609 + +2.226353 + +7.328795 + +1.926923 + +7.307564 + +2.068337 + +7.03199 + +1.84346 + +7.798271 + +1.521289 + +8.925631 + +1.967483 + +9.795263 + +0.566289 + +13.05834 + +1.538531 + +12.125475 + +1.737957 + +10.890484 + +1.849429 + +9.93848 + +1.684071 + +10.878072 + +1.54526 + +14.281311 + +1.672317 + +14.932683 + +1.359452 + +15.220841 + +1.264802 + +14.213569 + +1.880461 + +12.54914 + +1.445631 + +10.161797 + +1.376193 + +9.16864 + +1.633193 + +9.476642 + +1.556599 + +9.34483 + +1.356145 + +9.036586 + +1.049723 + +11.060885 + +1.851913 + +12.411092 + +1.670333 + +11.871813 + +1.768619 + +11.633845 + +1.244248 + +10.908587 + +0.819119 + +11.968595 + +1.516069 + +9.365337 + +1.424707 + +12.265602 + +1.662832 + +12.837668 + +1.451399 + +12.66739 + +1.667571 + +12.847186 + +1.431025 + +16.965319 + +1.328568 + +16.150871 + +1.590023 + +16.652115 + +1.889059 + +15.694738 + +1.675071 + +14.9334 + +1.616338 + +14.277574 + +1.530145 + +9.377117 + +1.238142 + +8.810366 + +0.749853 + +9.982305 + +1.486873 + +8.68728 + +1.169284 + +7.825984 + +1.459269 + +8.513665 + +1.738018 + +8.435914 + +1.484818 + +7.957301 + +0.944398 + +8.624112 + +1.050376 + +7.48486 + +1.295736 + +6.334919 + +1.659045 + +5.071207 + +1.316044 + +5.103063 + +1.571427 + +5.658458 + +1.076307 + +5.214074 + +1.621436 + +6.401664 + +1.943424 + +4.432154 + +1.065377 + +4.909466 + +0.490335 + +4.027229 + +0.509512 + +1.900525 + +0.61314 + +4.209088 + +0.798009 + +5.483727 + +0.702121 + +4.679107 + +0.93163 + +3.69864 + +0.742377 + +2.862681 + +1.017933 + +1.734235 + +0.849772 + +2.50828 + +0.761151 + +3.171583 + +0.799557 + +2.058224 + +0.998904 + +-3.034139 + +0.737239 + +0.155295 + +0.593711 + +4.03957 + +1.017105 + +3.933032 + +0.874429 + +3.020381 + +0.752278 + +3.542621 + +0.641211 + +3.073502 + +0.932635 + +1.776106 + +1.14956 + +0.438884 + +0.473438 + +4.379259 + +1.012396 + +4.435764 + +1.137639 + +3.910306 + +1.11468 + +2.746904 + +1.17461 + +1.761085 + +0.705981 + +-0.186476 + +0.807088 + +-0.65285 + +1.032958 + +-0.784229 + +0.869868 + +-1.314877 + +0.870257 + +2.327166 + +0.181139 + +2.842941 + +0.860388 + +2.117573 + +0.924946 + +1.640906 + +1.060134 + +3.113369 + +0.684402 + +2.438801 + +0.5153 + +1.583481 + +1.018136 + +2.310261 + +1.055892 + +2.248965 + +1.060983 + +6.806569 + +0.151723 + +6.488049 + +0.739817 + +6.730016 + +0.760589 + +7.240762 + +0.854904 + +6.262665 + +0.964848 + +5.43859 + +1.158346 + +5.381679 + +1.132081 + +5.339861 + +0.529041 + +4.873127 + +0.997296 + +1.595312 + +1.034362 + +9.382787 + +1.13243 + +10.216576 + +1.041489 + +8.809681 + +0.84126 + +9.472572 + +0.852746 + +9.806189 + +1.269948 + +7.319813 + +1.427049 + +5.535467 + +1.034658 + +4.96111 + +1.161346 + +4.951583 + +1.343849 + +3.453024 + +1.35377 + +4.299592 + +1.189049 + +3.716719 + +0.925774 + +1.65419 + +1.072944 + +1.646789 + +1.118109 + +2.080506 + +1.139624 + +2.100801 + +0.883955 + +2.449096 + +1.073554 + +2.445256 + +1.259869 + +2.8111 + +1.093193 + +4.680302 + +1.1611 + +4.776422 + +0.901147 + +4.736565 + +0.752997 + +3.574648 + +1.053088 + +3.259856 + +1.185002 + +2.245642 + +1.226663 + +0.621704 + +1.272907 + +0.070539 + +0.925822 + +-0.947074 + +1.261344 + +-0.8674 + +1.137476 + +-2.74616 + +1.251572 \ No newline at end of file diff --git "a/public/vaults/Demo/Attachments/\351\207\221\347\211\233\351\201\223\346\213\246\351\251\254\345\242\231\345\210\260\346\231\256\345\256\211\351\225\207.gpx" "b/public/vaults/Demo/Attachments/\351\207\221\347\211\233\351\201\223\346\213\246\351\251\254\345\242\231\345\210\260\346\231\256\345\256\211\351\225\207.gpx" new file mode 100644 index 0000000..8040f63 --- /dev/null +++ "b/public/vaults/Demo/Attachments/\351\207\221\347\211\233\351\201\223\346\213\246\351\251\254\345\242\231\345\210\260\346\231\256\345\256\211\351\225\207.gpx" @@ -0,0 +1,4033 @@ + + + + + Garmin International + + + + + + 拦马墙-普安镇 金牛道 + + 67328667 + 8 + 徒步 + 1746151284000 + 1746160947000 + 9663862 + 270647 + 凉山小学 + 城南九号 + and_7.9.8 + 21883 + 21883 + 57881445 + 神经蛙_LBL5693567 + 1326942384 + 57881445 + 神经蛙_LBL5693567 + zs_J5CXn8 + 1326942384 + 0 + + + + + 692.2 + + 1.3001883 + + + 692.2 + + 1.2476866 + + + 693.1463513598043 + + 1.191582 + + + 692.7822851051575 + + 1.176655 + + + 691.4133942703617 + + 1.217318 + + + 690.1601694388149 + + 1.2409953 + + + 689.0158717271185 + + 1.210112 + + + 687.503485368093 + + 1.2435689 + + + 686.5556347433641 + + 0.0 + + + 686.5556347433641 + + 0.0 + + + 686.5747188892484 + + 0.89510196 + + + 686.5747188892484 + + 0.89510196 + + + 687.1878173970953 + + 1.0181205 + + + 687.4511536874169 + + 0.9496625 + + + 687.7302612284246 + + 1.1812875 + + + 686.6418447947067 + + 1.0891522 + + + 685.892573344689 + + 1.0150322 + + + 685.5946561962751 + + 1.1586397 + + + 685.1237792054283 + + 0.6583297 + + + 683.6079913678341 + + 0.89921975 + + + 682.6151864726676 + + 1.3506311 + + + 682.135478184102 + + 1.3362188 + + + 681.9051370442518 + + 1.402618 + + + 682.4621349164938 + + 1.1277564 + + + 683.4677902805007 + + 1.1658459 + + + 684.0838691966702 + + 1.0989319 + + + 684.9511274363404 + + 1.1457716 + + + 686.1335816584076 + + 1.2816583 + + + 687.0224715709032 + + 1.2281272 + + + 687.1848690901035 + + 1.3187183 + + + 685.5567709036941 + + 1.3079091 + + + 682.5642483561678 + + 1.5534316 + + + 678.8372378045581 + + 1.5570347 + + + 674.3045426568651 + + 1.20445 + + + 670.8613109168944 + + 1.3454839 + + + 669.2863624783175 + + 1.3243803 + + + 668.5179413144724 + + 1.4525461 + + + 667.6929202367561 + + 1.3943825 + + + 666.7496143058486 + + 1.1056234 + + + 665.8249368415784 + + 1.263643 + + + 665.0829385117584 + + 1.2718786 + + + 664.4880540839729 + + 1.3027619 + + + 664.3641448230343 + + 1.2317302 + + + 665.0678238099272 + + 1.2394512 + + + 666.7592875755934 + + 0.9455447 + + + 668.6264871689373 + + 0.8287028 + + + 670.4647802047633 + + 0.81892306 + + + 671.94247335224 + + 1.402618 + + + 672.8705543872044 + + 2.0619771 + + + 673.0552845870368 + + 1.1349626 + + + 672.1711839671608 + + 1.1087117 + + + 672.1711839671608 + + 1.1087117 + + + 668.0 + + 1.2276125 + + + 668.0 + + 1.2276125 + + + 668.0 + + 1.232245 + + + 667.9139680581997 + + 1.1869495 + + + 667.434783882447 + + 1.3161447 + + + 667.8069649957974 + + 1.1174619 + + + 669.1804800040383 + + 1.569388 + + + 671.2536433230302 + + 1.0809166 + + + 672.5210472538115 + + 1.1684195 + + + 672.7700893986379 + + 1.1776844 + + + 671.2343807818089 + + 0.95841277 + + + 668.5095853879985 + + 0.82046723 + + + 667.1289510714803 + + 1.27857 + + + 665.998082243592 + + 1.2327597 + + + 665.697795388829 + + 1.2569517 + + + 666.0858874618306 + + 1.2085677 + + + 666.7371976706457 + + 1.1195208 + + + 667.7105640621696 + + 1.2245241 + + + 668.5663392462648 + + 1.2482014 + + + 668.8389145716975 + + 1.1478306 + + + 668.9512230035607 + + 1.1668752 + + + 668.8001410185542 + + 0.9872372 + + + 668.3269046781518 + + 1.139595 + + + 669.347714671232 + + 1.0721664 + + + 671.0048126072473 + + 1.1349626 + + + 673.0244930498235 + + 1.1519483 + + + 674.7776119335468 + + 1.2770258 + + + 675.9916895629029 + + 1.2291566 + + + 676.8555837961102 + + 1.1483452 + + + 677.7350092754543 + + 1.1684195 + + + 679.0964607645187 + + 1.0088556 + + + 679.7432227645264 + + 1.0963583 + + + 680.1547897817175 + + 1.0912111 + + + 679.9161415706566 + + 1.145257 + + + 678.8337988448152 + + 1.1313595 + + + 677.6148127583594 + + 1.1421686 + + + 675.3285944488238 + + 1.139595 + + + 673.3805755785299 + + 1.1483452 + + + 672.4425798222128 + + 0.0 + + + 671.8220401056777 + + 1.195185 + + + 673.3181183217398 + + 1.3779113 + + + 675.2030272693412 + + 1.3485723 + + + 675.6318847690443 + + 1.3264391 + + + 675.1449935461684 + + 1.1365067 + + + 674.0502398629368 + + 1.0917258 + + + 672.3940218039082 + + 0.9213528 + + + 669.5575393035866 + + 1.4623258 + + + 668.070245202893 + + 1.3604108 + + + 667.4808209251553 + + 1.3691611 + + + 667.2309751650083 + + 0.90797 + + + 666.7874911880401 + + 0.68509525 + + + 666.1476324114499 + + 0.89046943 + + + 665.9120630127005 + + 0.9779722 + + + 665.3476663689651 + + 0.9795164 + + + 665.800337897464 + + 0.7293614 + + + 666.1443203147908 + + 0.8091433 + + + 666.2973193846783 + + 1.0788578 + + + 666.4275203900856 + + 0.7206111 + + + 667.7491773250008 + + 1.0618719 + + + 668.8894544354941 + + 1.1740814 + + + 669.1520865378544 + + 0.8621597 + + + 668.8715851824869 + + 1.0309886 + + + 667.3352331397127 + + 0.8750278 + + + 665.9865821646807 + + 1.0330476 + + + 664.1426672281087 + + 1.0459156 + + + 661.6293871934703 + + 1.1390803 + + + 660.0681710544717 + + 0.93473554 + + + 659.8237667590168 + + 0.7571564 + + + 659.8995751986747 + + 0.86730695 + + + 659.8567419601891 + + 1.3068798 + + + 660.4775734186089 + + 1.2950411 + + + 660.5302364012342 + + 1.2518045 + + + 659.8289743852749 + + 1.0505481 + + + 659.257303150434 + + 0.9676778 + + + 659.2756696148186 + + 0.96922195 + + + 659.6732793043299 + + 1.3629844 + + + 660.200965121806 + + 1.5246072 + + + 660.0715020525902 + + 1.4962975 + + + 660.4278884885566 + + 1.4499725 + + + 660.1577961590334 + + 1.788145 + + + 660.089918609182 + + 0.9928992 + + + 658.5456802649155 + + 1.20445 + + + 657.4936471538476 + + 0.8343647 + + + 656.5500285324956 + + 0.84414446 + + + 655.2810451174098 + + 1.0922406 + + + 654.4718952970852 + + 1.2703345 + + + 654.8711285460143 + + 1.1354772 + + + 656.0019631256644 + + 1.0577542 + + + 656.4312783771018 + + 1.1195208 + + + 656.5468715922102 + + 0.87399834 + + + 657.3009967979481 + + 0.9481183 + + + 658.2469193754371 + + 1.1293006 + + + 658.1407046087521 + + 1.1159178 + + + 657.7790673588947 + + 1.1910672 + + + 655.5942572217913 + + 1.0695928 + + + 653.3598970467843 + + 1.0335622 + + + 652.1296845653641 + + 1.1787139 + + + 652.1599314322655 + + 1.139595 + + + 652.3922471702033 + + 1.2476866 + + + 652.0084383871109 + + 1.20445 + + + 651.3595689694639 + + 1.0279002 + + + 650.2155295554887 + + 1.1745961 + + + 648.6172584431116 + + 1.0860639 + + + 647.1042755747382 + + 1.0443714 + + + 647.5325961037549 + + 1.1385655 + + + 649.4542932637579 + + 1.4715909 + + + 650.8074495580253 + + 1.1694489 + + + 651.0623408837141 + + 0.6933308 + + + 650.5193326965144 + + 1.213715 + + + 649.6076811605035 + + 1.4988711 + + + 649.0451694130339 + + 1.1447423 + + + 648.5095477006652 + + 1.3094534 + + + 647.8602011010225 + + 1.0294445 + + + 647.1460494785221 + + 1.0119439 + + + 647.1262408482413 + + 1.0649602 + + + 646.7708253253963 + + 0.9939286 + + + 646.8263910658343 + + 0.7139197 + + + 646.8263910658343 + + 0.7139197 + + + 646.8263910658343 + + 0.7139197 + + + 646.8263910658343 + + 0.7139197 + + + 647.8044060233393 + + 0.3567025 + + + 647.8044060233393 + + 0.3567025 + + + 647.5444149042206 + + 0.8194378 + + + 649.8481718305562 + + 0.92238224 + + + 651.9352328240516 + + 0.83642364 + + + 653.2965881515164 + + 1.0279002 + + + 653.8142474420696 + + 0.0 + + + 653.377959057533 + + 0.24809611 + + + 651.9248971723241 + + 0.4519261 + + + 651.4410117320201 + + 0.6814922 + + + 651.3803541664084 + + 0.5116339 + + + 650.0553099145633 + + 0.694875 + + + 649.0421504871053 + + 0.6161225 + + + 646.7441725881275 + + 0.0 + + + 645.004532484465 + + 0.6974486 + + + 643.4970238107597 + + 0.8966461 + + + 642.8530644839544 + + 0.7602447 + + + 643.0883341063794 + + 0.7046547 + + + 643.4804960418862 + + 0.7020811 + + + 644.7793649858387 + + 0.82818806 + + + 646.3368162899326 + + 0.8595861 + + + 647.6974904741749 + + 0.87811613 + + + 648.6449213308779 + + 0.9563539 + + + 648.9697257514609 + + 0.19199139 + + + 647.7352853572971 + + 0.58060664 + + + 647.7352853572971 + + 0.58060664 + + + 646.7737556584659 + + 0.6871542 + + + 646.7737556584659 + + 0.6871542 + + + 645.9677414696795 + + 1.1879789 + + + 644.5190747790884 + + 0.8652481 + + + 642.1019752072556 + + 0.972825 + + + 641.2408061346733 + + 0.8477475 + + + 641.0511890960561 + + 1.0484892 + + + 641.7174251437956 + + 0.55178225 + + + 641.1077059564085 + + 0.9995906 + + + 640.1150238337378 + + 0.787525 + + + 640.0225292439886 + + 0.40457165 + + + 639.1525186529466 + + 0.79627526 + + + 638.269607826474 + + 0.7823778 + + + 637.4653778678902 + + 0.89510196 + + + 636.7489994088603 + + 0.37677667 + + + 635.3944267394977 + + 0.8909842 + + + 634.1923769464081 + + 1.0912111 + + + 633.4213686007193 + + 0.87914556 + + + 632.5088413007481 + + 0.5193547 + + + 630.3542395843814 + + 0.9661336 + + + 628.4812211518391 + + 0.7365675 + + + 627.284851870494 + + 0.7952458 + + + 626.9042242473724 + + 0.9522361 + + + 627.9778064188569 + + 0.74892086 + + + 629.1487844175684 + + 0.5996514 + + + 630.9344701045115 + + 0.87966025 + + + 632.6402812903934 + + 0.657815 + + + 632.3648580768385 + + 0.6964192 + + + 630.8313997638724 + + 0.91311723 + + + 626.8604235277644 + + 0.79730475 + + + 623.9953776812316 + + 1.0793725 + + + 622.6208549477217 + + 1.2358481 + + + 623.2141075820812 + + 0.7530386 + + + 625.4878855263887 + + 1.0145175 + + + 627.4718313462411 + + 0.6722272 + + + 628.1722039005481 + + 1.1148883 + + + 627.4959051281966 + + 0.97900164 + + + 626.1211555082538 + + 0.6516383 + + + 625.983007348279 + + 0.0 + + + 625.2590453970952 + + 0.76796556 + + + 623.7280874647561 + + 0.7669361 + + + 622.7696540092857 + + 0.91157305 + + + 621.9223882138169 + + 1.0222384 + + + 621.0524382882725 + + 0.93679446 + + + 619.7394023224429 + + 0.6454617 + + + 618.3889579329808 + + 0.9872372 + + + 617.5764043382128 + + 0.9105436 + + + 617.2854424449195 + + 0.85649776 + + + 617.2917045185767 + + 0.80451083 + + + 617.123209016851 + + 0.7221553 + + + 616.424969898513 + + 1.0222384 + + + 615.7259733198318 + + 1.2512897 + + + 615.4136888478298 + + 1.1184914 + + + 615.8379601660326 + + 1.0315033 + + + 616.3378228828608 + + 0.91311723 + + + 616.7517127115777 + + 0.9095142 + + + 616.3853402194121 + + 0.7617889 + + + 615.9614865573619 + + 0.85392416 + + + 615.8920215468394 + + 0.59862196 + + + 615.7233896723284 + + 0.8570125 + + + 615.7133283776859 + + 1.0026789 + + + 615.4064832503177 + + 1.2584958 + + + 615.1886145627467 + + 0.9110583 + + + 614.0750968757175 + + 1.0495186 + + + 613.182473807508 + + 0.9630453 + + + 612.6308052476678 + + 1.09327 + + + 611.6281867405908 + + 0.95841277 + + + 611.2719341732591 + + 1.2847466 + + + 610.6817833685201 + + 1.1668752 + + + 610.1734277786142 + + 1.1756256 + + + 609.4966025432299 + + 1.38975 + + + 608.8958403996427 + + 1.1195208 + + + 609.1987414884234 + + 1.2178328 + + + 610.1886501801014 + + 1.0685633 + + + 611.484011542332 + + 0.84208554 + + + 611.1467613654283 + + 0.69178665 + + + 608.8037840814726 + + 0.8209819 + + + 606.1781820971756 + + 0.98157525 + + + 604.0797847057961 + + 1.1298152 + + + 602.3248257039602 + + 1.1061381 + + + 600.5074759085608 + + 1.1818023 + + + 598.9126691506026 + + 1.1478306 + + + 597.6597562363604 + + 1.2178328 + + + 596.2145244714102 + + 0.85804194 + + + 595.6490690073125 + + 0.8410561 + + + 595.2408177593043 + + 1.0258414 + + + 595.1802436329397 + + 0.99495804 + + + 594.8015982879435 + + 0.8585567 + + + 594.413767030765 + + 1.0942994 + + + 593.7195894744143 + + 1.2373922 + + + 592.5497316574955 + + 0.9697367 + + + 591.3669078878738 + + 0.70259583 + + + 591.1660629266953 + + 1.2687902 + + + 591.4817730845738 + + 0.0 + + + 592.4359649290138 + + 1.0335622 + + + 592.205414411114 + + 1.1576103 + + + 590.8265742807986 + + 1.3912941 + + + 589.1805362016959 + + 1.5421078 + + + 588.199541412806 + + 1.2219505 + + + 588.4148185330408 + + 1.0582689 + + + 589.268763615184 + + 0.77053916 + + + 590.2715675800912 + + 1.0912111 + + + 591.3161813631701 + + 1.0608425 + + + 592.4706520070029 + + 1.0345917 + + + 593.730739487236 + + 1.07474 + + + 593.6745006274515 + + 1.384088 + + + 593.298325692025 + + 1.1709931 + + + 592.8258702319541 + + 1.0474597 + + + 592.6426780169041 + + 0.861645 + + + 591.4198724683664 + + 0.7339939 + + + 589.6476693262489 + + 0.98209 + + + 588.1216049212346 + + 1.0726811 + + + 587.2950079074997 + + 0.88738114 + + + 586.7809636537546 + + 1.2219505 + + + 585.6277211086107 + + 1.0330476 + + + 583.8951577685898 + + 1.1349626 + + + 582.5637456035381 + + 1.1977586 + + + 581.0737818026635 + + 1.2971 + + + 579.3644209787925 + + 0.54097307 + + + 577.9171826295951 + + 0.8410561 + + + 576.877408053044 + + 0.9476036 + + + 576.0268067803685 + + 0.88841057 + + + 574.2946367475181 + + 0.6665653 + + + 572.1031292867351 + + 0.72627306 + + + 569.8219367359534 + + 1.0170912 + + + 568.005829658191 + + 0.5955336 + + + 565.76649148731 + + 0.73039085 + + + 564.3183624887712 + + 0.69796336 + + + 563.1920484425398 + + 1.0608425 + + + 562.5932452895803 + + 1.1411391 + + + 562.8112307483499 + + 1.2548928 + + + 563.5806872091114 + + 1.2394512 + + + 563.58899479362 + + 1.3140858 + + + 563.6797607317943 + + 1.2204064 + + + 563.0862432569135 + + 1.0973878 + + + 562.3178733773129 + + 1.0623866 + + + 561.621929436126 + + 1.1956997 + + + 561.4404323926627 + + 1.0556953 + + + 562.1112955408038 + + 1.1699636 + + + 562.6656442759611 + + 1.1956997 + + + 562.5513748115156 + + 1.126727 + + + 562.6153073793445 + + 1.0505481 + + + 561.8344352852966 + + 0.8601008 + + + 561.2173990203913 + + 0.99495804 + + + 560.5216591284398 + + 1.0639309 + + + 560.2112304477515 + + 1.0428272 + + + 560.034335678014 + + 1.1468011 + + + 560.3206776490525 + + 1.1164325 + + + 560.8279746083556 + + 1.09327 + + + 561.504196593369 + + 0.98929614 + + + 561.0722316789846 + + 0.89973444 + + + 559.8797293066667 + + 1.0814314 + + + 558.3828899607054 + + 1.1679047 + + + 556.4115153488204 + + 1.0320181 + + + 555.4171945790183 + + 1.0979025 + + + 554.9366224840093 + + 1.1385655 + + + 554.060549548941 + + 1.1231239 + + + 552.6579925037822 + + 1.0824609 + + + 550.8693916583229 + + 1.2152592 + + + 550.49541439557 + + 1.2008469 + + + 551.5727862103421 + + 1.2420248 + + + 552.2727480205853 + + 1.1009909 + + + 552.5425665495212 + + 1.1009909 + + + 552.9544158439679 + + 1.2018764 + + + 554.3935513509682 + + 0.88068974 + + + 555.5577565142645 + + 0.93164724 + + + 555.9200557269972 + + 1.0644456 + + + 556.1695243867094 + + 1.2754817 + + + 556.0966018258538 + + 1.1812875 + + + 555.3237761072521 + + 1.2301861 + + + 554.0230694568695 + + 1.0454009 + + + 550.7009161467007 + + 0.7530386 + + + 546.1838451127821 + + 1.0170912 + + + 542.0612610879481 + + 1.1066527 + + + 539.1528389858702 + + 1.0695928 + + + 537.9256625978788 + + 1.0325328 + + + 537.5274798441412 + + 1.0737106 + + + 536.9994674715797 + + 1.2945263 + + + 537.5589041655526 + + 0.0 + + + 539.2972207737475 + + 1.2281272 + + + 539.7285759939055 + + 1.2657019 + + + 539.4151719563813 + + 1.154522 + + + 538.892453941237 + + 1.4592375 + + + 539.0677638352795 + + 1.0505481 + + + 538.3933750001119 + + 1.161728 + + + 538.2241609245351 + + 1.1174619 + + + 537.5255123338648 + + 1.55652 + + + 536.3531067414483 + + 1.4134272 + + + 534.609623524993 + + 1.3398219 + + + 533.3580207161768 + + 1.078343 + + + 532.2576632692852 + + 1.0356212 + + + 531.5876192906466 + + 0.8091433 + + + 531.5929449729794 + + 0.8106875 + + + 531.2088360232478 + + 0.60788697 + + + 530.6888434712564 + + 0.6902425 + + + 530.1344349387117 + + 1.2687902 + + + 529.3023189683922 + + 0.7664214 + + + 528.3549700818191 + + 0.9681925 + + + 527.7291005748173 + + 0.67994803 + + + 526.9422952038186 + + 0.68355113 + + + 523.9990154900386 + + 0.94605947 + + + 521.2464168489446 + + 0.66605055 + + + 518.6024759657979 + + 0.8842928 + + + 515.0310853203546 + + 0.6629622 + + + 511.9635797340828 + + 0.85238 + + + 508.9681283020579 + + 0.0 + + + 506.6589757937595 + + 0.95841277 + + + 505.2140797437714 + + 0.9038522 + + + 503.4443683983799 + + 0.6238433 + + + 503.9414745518462 + + 0.71289027 + + + 503.4504581907909 + + 0.64752054 + + + 501.62208233231536 + + 0.94142693 + + + 499.8919445666647 + + 0.83899724 + + + 499.6373138641229 + + 0.78649557 + + + 500.82571012839554 + + 0.4004539 + + + 503.48164086285857 + + 0.7648772 + + + 506.6727200705633 + + 0.58420974 + + + 509.9966845563864 + + 0.9362797 + + + 512.4500210679576 + + 0.66862416 + + + 515.8697816919365 + + 0.9846636 + + + 518.5927865572519 + + 1.5549759 + + + 521.2628796854974 + + 1.8483675 + + + 524.0318694867943 + + 1.0176058 + + + 524.8784799356328 + + 0.96407473 + + + 525.4469446219613 + + 1.0917258 + + + 525.9859585587418 + + 0.6104606 + + + 524.7875514358219 + + 0.87657195 + + + 524.3197306266641 + + 0.9980464 + + + 524.5263231605409 + + 0.83385 + + + 525.5043673281672 + + 0.98209 + + + 527.4812233409626 + + 1.0824609 + + + 529.5970828772598 + + 0.8909842 + + + 531.9212001345394 + + 0.96922195 + + + 534.0628792358449 + + 0.9069406 + + + 534.6810706855546 + + 1.0515774 + + + 535.6785806446525 + + 1.0268708 + + + 535.6447784174155 + + 1.1570956 + + + 535.6685325173107 + + 1.0335622 + + + 535.3379407933058 + + 1.0984172 + + + 534.4613007746942 + + 0.8225261 + + + 534.4349316512902 + + 0.9100289 + + + 533.9037138115339 + + 0.73965585 + + + 533.0417968614413 + + 0.49722168 + + + 533.4109612737883 + + 0.6439175 + + + 535.126885011453 + + 0.861645 + + + 537.3951666204603 + + 1.0438566 + + + 537.4832776873969 + + 1.2337892 + + + 537.7485667779213 + + 1.030474 + + + 538.5879947248675 + + 0.9095142 + + + 539.5395102703293 + + 0.97642803 + + + 540.1677541074447 + + 1.1256975 + + + 540.1386090203026 + + 0.0 + + + 540.1386090203026 + + 0.0 + + + 540.4231127716657 + + 1.2620989 + + + 540.4231127716657 + + 1.2620989 + + + 540.7572983557333 + + 1.3135711 + + + 541.2488425625072 + + 1.1622428 + + + 541.2708484309325 + + 1.0829755 + + + 541.3264042322998 + + 1.0701075 + + + 541.6161579917186 + + 1.2029058 + + + 542.3404789800063 + + 1.1200355 + + + 543.4844977680514 + + 1.139595 + + + 544.0933897962381 + + 1.1637869 + + + 545.042584599369 + + 1.1354772 + + + 545.9276018094006 + + 1.1498895 + + + 547.2062077501068 + + 0.8920136 + + + 548.0638568441312 + + 1.1066527 + + + 548.2944840280431 + + 1.1838611 + + + 548.6409845441366 + + 1.1179767 + + + 549.5266900334613 + + 1.1426834 + + + 550.8487041543403 + + 1.0963583 + + + 552.9785521344919 + + 1.2147444 + + + 554.3212732399836 + + 1.4149714 + + + 554.6992660873644 + + 1.1555514 + + + 554.9146616415112 + + 1.1627575 + + + 554.822322852265 + + 1.0963583 + + + 555.1138322569319 + + 1.1658459 + + + 555.4089939736167 + + 1.1555514 + + + 555.7062369248443 + + 1.2054795 + + + 555.9186339055692 + + 0.935765 + + + 557.029033593577 + + 1.1818023 + + + 558.0489278130174 + + 1.1107706 + + + 558.2429608937088 + + 1.2435689 + + + 558.4825766735737 + + 1.2198917 + + + 559.0922950792018 + + 1.1560661 + + + 560.1279927272949 + + 1.2214358 + + + 560.9762708018715 + + 1.0397389 + + + 561.588701739436 + + 1.1164325 + + + 562.5399131557168 + + 1.0546658 + + + 563.770207280374 + + 0.9403975 + + + 565.5036617439865 + + 1.0577542 + + + 566.6635178235641 + + 0.5996514 + + + 566.2060353060614 + + 0.99238443 + + + 567.3218544039674 + + 0.4143514 + + + 567.9576930834194 + + 1.0850345 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.2770036106458 + + 0.0 + + + 568.0718158762975 + + 0.0 + + + 568.0718158762975 + + 0.0 + + + 569.8045783867557 + + 0.5193547 + + + 571.7813436106501 + + 1.1751108 + + + 572.9938160228693 + + 1.1838611 + + + 573.1255240333729 + + 1.3109975 + + + 573.2866085062054 + + 1.24151 + + + 573.4214168999798 + + 1.2868055 + + + 573.4982361543172 + + 1.1514336 + + + 573.757090715064 + + 1.0515774 + + + 575.3241235129926 + + 1.1282711 + + + 576.1310499967674 + + 1.1534925 + + + 576.9780129571974 + + 1.22298 + + + 578.2349340532369 + + 1.1576103 + + + 579.5964178998685 + + 0.7159786 + + + 580.6733580475235 + + 0.9959875 + + + 581.2440259637506 + + 1.2250389 + + + 581.2681037388953 + + 0.75355333 + + + 581.9270637887934 + + 1.5076214 + + + 582.7327254843852 + + 1.7763064 + + + 583.9230954847507 + + 1.1982733 + + + 584.128240592252 + + 0.8343647 + + + 583.5568850056044 + + 1.2456278 + + + 584.0055910480492 + + 1.3789408 + + + 585.4227130441537 + + 1.7531439 + + + 585.4129428076901 + + 1.4062212 + + + 583.6007045554923 + + 0.8101728 + + + 584.2026250767095 + + 0.8235555 + + + 585.9221347104839 + + 1.2168033 + + + 588.1494437366734 + + 1.1956997 + + + 589.9778617820024 + + 1.210112 + + + 590.0734166932145 + + 1.1854053 + + + 590.1708837025261 + + 1.4237217 + + + 589.2800729716706 + + 1.2080531 + + + 588.600389241975 + + 1.1884936 + + + 587.4818065623552 + + 1.2682755 + + + 587.1885208498969 + + 1.4623258 + + + 588.1828260484693 + + 1.4942386 + + + 589.3086288338673 + + 1.5647556 + + + 590.1222205043056 + + 1.3372483 + + + 591.2310773820446 + + 1.0371653 + + + 592.3791403587331 + + 1.0706222 + + + 592.8182730449523 + + 1.0181205 + + + 593.6707321352569 + + 1.1148883 + + + 594.7587212639428 + + 1.1138589 + + + 594.3463180040312 + + 0.85083586 + + + 594.197345952195 + + 0.8760572 + + + 594.757695238329 + + 0.88635164 + + + 595.7652603730033 + + 0.9645894 + + + 596.4684594952463 + + 0.69436026 + + + 598.4607616110019 + + 0.8909842 + + + 599.7251035411007 + + 0.82818806 + + + 601.8220875832754 + + 1.0309886 + + + 602.5868738710847 + + 1.2332745 + + + 602.6785521446797 + + 1.31563 + + + 602.3006344097812 + + 1.0855491 + + + 602.0422656868532 + + 1.0634161 + + + 604.0458353236048 + + 1.0520922 + + + 605.7467576501488 + + 1.1318742 + + + 606.4579158982705 + + 1.247172 + + + 606.8201465504256 + + 0.92804414 + + + 606.8975122579575 + + 0.9980464 + + + 607.2427101515522 + + 1.0731958 + + + 607.9556094704924 + + 0.90436697 + + + 609.1361357020531 + + 0.93730915 + + + 609.7658311424764 + + 0.75458276 + + + 610.6838645971898 + + 0.7200964 + + + 612.9276358841773 + + 0.7921575 + + + 614.5073389635888 + + 0.935765 + + + 616.052756989554 + + 0.67274195 + + + 619.4283247593951 + + 1.0757694 + + + 620.9647155415431 + + 0.8112022 + + + 621.9692608246297 + + 0.811717 + + + 623.3589946481683 + + 1.0845197 + + + 624.2799688872839 + + 0.9002492 + + + 625.5790645919067 + + 1.01915 + + + 626.4053736080637 + + 0.8199525 + + + 626.7471898655843 + + 0.9512067 + + + 627.5872101047407 + + 1.2518045 + + + 628.4100152494674 + + 1.250775 + + + 629.3520584524753 + + 1.1848905 + + + 630.5341121889129 + + 1.1524631 + + + 630.9926141795589 + + 1.1118 + + + 631.8130947090343 + + 0.8559831 + + + 633.8292125251157 + + 0.8703953 + + + 636.3545887569243 + + 0.8075992 + + + 640.4606400795496 + + 0.7756864 + + + 643.1015453563888 + + 0.63156414 + + + 644.6064395878411 + + 0.98569304 + + + 645.2919250710124 + + 1.096873 + + + 645.9836541145191 + + 1.0335622 + + + 646.2057653103619 + + 1.0016495 + + + 645.8161415680327 + + 0.9378239 + + + 645.3360224359227 + + 1.0186353 + + + 646.6970381041749 + + 0.92804414 + + + 648.6770468538301 + + 1.1030498 + + + 649.504223819611 + + 0.6645064 + + + 651.3520936513046 + + 0.53737 + + + 652.7061961302247 + + 0.8359089 + + + 652.5314669210495 + + 1.028415 + + + 652.2168193231463 + + 1.0103997 + + + 651.7794246189942 + + 0.6161225 + + + 649.8095406574913 + + 1.2420248 + + + 647.095430484329 + + 0.7592153 + + + 647.095430484329 + + 0.7592153 + + + 642.9248469285415 + + 0.9769428 + + + 642.9248469285415 + + 0.9769428 + + + 638.6125616909711 + + 1.0242972 + + + 635.9401679618263 + + 1.0505481 + + + 634.2882824288486 + + 1.1509188 + + + 633.1749076124402 + + 0.94657415 + + + 631.4650625105634 + + 1.3532047 + + + 630.1465961129467 + + 0.92804414 + + + 629.0081370991559 + + 1.454605 + + + 627.7571736908452 + + 1.1066527 + + + 626.0979729784214 + + 0.9419417 + + + 624.2491581727254 + + 1.1560661 + + + 622.0341977915408 + + 0.9445153 + + + 620.5569442688765 + + 0.9481183 + + + 619.7151456916436 + + 1.0392241 + + + 618.8052952364295 + + 1.3418808 + + + 617.5985702538625 + + 0.64031446 + + + 616.3517221169393 + + 1.139595 + + + 615.2540740736629 + + 0.74634725 + + + 614.241446255167 + + 0.8436297 + + + 612.9331386190994 + + 1.0536364 + + + 611.4133247388442 + + 2.207129 + + + 609.4288583116515 + + 0.861645 + + + 606.3192947238953 + + 1.1864347 + + + 603.4719408316663 + + 0.4869272 + + + 601.376228181242 + + 1.0181205 + + + 599.5797830820733 + + 0.6989928 + + + 597.3516490987955 + + 0.806055 + + + 595.006569308877 + + 0.9419417 + + + 593.4981844753754 + + 0.5270755 + + + 593.8430932081212 + + 1.006282 + + + 593.3513805663537 + + 0.70722836 + + + 592.2108634734775 + + 0.87451303 + + + 590.1844398125785 + + 0.83230585 + + + 585.8465201173522 + + 1.8190284 + + + 582.6003112196946 + + 0.77465695 + + + 579.4600114698072 + + 0.50339836 + + + 575.6057755433009 + + 0.9738544 + + + 572.1620134652597 + + 0.5538411 + + + 568.4789802445729 + + 0.67685974 + + + 565.5629360752374 + + 0.8050256 + + + 562.9118892865157 + + 0.6186961 + + + 560.5408965949772 + + 0.5903864 + + + 558.2004420989721 + + 0.6830364 + + + 554.9740541082923 + + 0.806055 + + + 551.7160011971043 + + 0.5595031 + + + 548.0527606002978 + + 0.8652481 + + + 544.1586277348094 + + 1.9590328 + + + 542.1546737840555 + + 1.0798873 + + + 540.6686123144095 + + 1.145257 + + + 538.8754432543012 + + 0.71958166 + + + 536.7352080318753 + + 1.4293836 + + + 535.2145039736225 + + 1.3192331 + + + 534.0898497051446 + + 1.2873203 + + + 532.6316729424193 + + 0.84980637 + + + 530.0801062356136 + + 1.1596692 + + + 527.9378651865032 + + 1.0294445 + + + 525.340618854884 + + 1.1339331 + + + 523.0002838314767 + + 0.0 + + + 521.3655548444038 + + 0.46222055 + + + 519.8748127810048 + + 0.4936186 + + + 517.8208807045891 + + 1.0021641 + + + 515.6611001217696 + + 0.9486331 + + + 513.3979868243591 + + 1.1102558 + + + 510.6458306737945 + + 0.83642364 + + + 508.7334134448831 + + 0.45038193 + + + 508.0738007636525 + + 0.63413775 + + + 508.51523032853777 + + 0.8909842 + + + 508.51523032853777 + + 0.8909842 + + + 508.51523032853777 + + 0.8909842 + + + 508.51523032853777 + + 0.8909842 + + + 507.69137540774227 + + 0.73450863 + + + 507.69137540774227 + + 0.73450863 + + + 505.97444652383035 + + 1.2620989 + + + 505.42623097800094 + + 1.0392241 + + + 505.75907523533874 + + 1.0778283 + + + 505.90572733289696 + + 1.2106267 + + + 505.9462796359448 + + 1.1375362 + + + 506.05541991391465 + + 1.013488 + + + 507.0209478305767 + + 1.1895231 + + + 507.7001924522747 + + 1.1684195 + + + 506.8397902490563 + + 1.2440836 + + + 505.70425884369604 + + 1.0891522 + + + 504.5409956464258 + + 0.8436297 + + + 504.2222491747876 + + 1.1416539 + + + 504.3847423598362 + + 0.8667922 + + + 505.50972082529415 + + 1.0906963 + + + 507.44125800842306 + + 0.0 + + + 508.7570055734318 + + 1.121065 + + + 508.13026047995015 + + 0.8142906 + + + 508.03121169890017 + + 1.0325328 + + + 508.10381762538424 + + 1.0103997 + + + 508.8764629129634 + + 1.1236386 + + + 509.18769941577517 + + 1.1725372 + + + 509.0639427188053 + + 1.328498 + + + 508.8213572829902 + + 1.1370214 + + + 509.80153757105853 + + 1.2579811 + + + 510.6611955879433 + + 1.639905 + + + 510.33375991534007 + + 1.4834294 + + + 509.4159023710774 + + 1.0026789 + + + 508.3766785101576 + + 1.250775 + + + 507.69845494103856 + + 1.4170303 + + + 507.31197582505007 + + 1.1725372 + + + 506.2314250351266 + + 1.2317302 + + + 504.06710870615143 + + 0.98826665 + + + 501.6723628451311 + + 1.3562931 + + + 499.40440477791685 + + 1.3459986 + + + 497.2517114749202 + + 1.2986442 + + + 495.37978053320813 + + 1.1781992 + + + 493.7968872098523 + + 1.1586397 + + + 492.7658429051517 + + 1.2255536 + + + 492.17831231852927 + + 1.0258414 + + + 492.5747852233814 + + 1.2327597 + + + 492.5856316043542 + + 1.226583 + + + 491.98958871664126 + + 1.5812267 + + + 490.40247630795403 + + 1.7752769 + + + 488.50870838043653 + + 1.1658459 + + + 487.5155950553376 + + 1.4520314 + + + 486.77761518556844 + + 1.1550367 + + + 486.271052580028 + + 1.263643 + + + 487.4449358080848 + + 1.2183475 + + + 487.9417978847576 + + 1.2435689 + + + 487.8808021479132 + + 1.33416 + + + 487.372868639578 + + 1.3218067 + + + 486.7823158650792 + + 0.9362797 + + + 486.87595480921107 + + 1.2888645 + + + 487.2734418195855 + + 1.0809166 + + + 486.55359457344093 + + 1.4818853 + + + 486.3584764637247 + + 1.8210872 + + + 485.4299868562013 + + 1.9147667 + + + 483.3953370865547 + + 1.3377631 + + + 482.06384778613943 + + 1.5997567 + + + 482.3805108082348 + + 1.636302 + + + 481.6576227679899 + + 1.4890914 + + + 480.5144205314744 + + 1.42681 + + + 479.38980215644665 + + 1.3974708 + + + 478.96402914886005 + + 0.95995694 + + + 480.312997457625 + + 1.1550367 + + + 480.3504224459354 + + 1.2945263 + + + 480.54381259576564 + + 1.3109975 + + + 480.1808384151189 + + 1.3109975 + + + 479.6298733351928 + + 1.2734228 + + + 479.18686332101737 + + 1.2790847 + + + 478.76235448202385 + + 1.2847466 + + + 478.176324474479 + + 1.2193769 + + + 477.842380964446 + + 1.2445984 + + + 477.4800226139111 + + 1.532328 + + + 476.58528069159365 + + 1.1329036 + + + 475.17208530530803 + + 1.5539464 + + + 474.10869380974873 + + 2.525742 + + + 474.7932096174802 + + 2.138671 + + + 475.0972423627503 + + 1.009885 + + + 475.91573203429084 + + 1.274967 + + + 476.25309251419986 + + 1.0639309 + + + 476.9185097881446 + + 0.95738333 + + + 476.9185097881446 + + 0.95738333 + + + 1746151381432:pause;1746151405474:resume;1746151755413:pause;1746151769976:resume;1746152954486:pause;1746152958575:resume;1746153006985:pause;1746153008996:resume;1746153588975:pause;1746153598993:resume;1746156566031:pause;1746156569990:resume;1746157040019:pause;1746157043973:resume;1746157084008:pause;1746157088014:resume;1746157120002:pause;1746157145993:resume;1746157191512:pause;1746157208253:resume;1746157241954:pause;1746157323992:resume;1746157356006:pause;1746157356022:resume;1746157454008:pause;1746157462025:resume;1746158711963:pause;1746158723957:resume;1746159856006:pause;1746159908028:resume;1746160056012:pause;1746160060003:resume;1746160946045:pause + + + + + 649.8000000000001 + + + + + Flag, Blue + user + + 0 + 0.6933308 + 1.0 + + + 1431249940 + 2980053 + 0 + + + + 649.1 + + + + + Flag, Blue + user + + 0 + 0.7139197 + 1.1 + + + 1431249932 + 1760288 + 0 + + + + 649.1 + + + + + Flag, Blue + user + + 0 + 0.7139197 + 1.1 + + + 1431249929 + 2795745 + 0 + + + + 643.7 + + + + + Flag, Blue + user + + 0 + 0.6161225 + 1.2 + + + 1431249923 + 7172889 + 0 + + + + 633.3000000000001 + + + + + Flag, Blue + user + + 0 + 0.5996514 + 1.4 + + + 1431249919 + 6506770 + 0 + + + + 541.6 + + + + + Flag, Blue + user + + 0 + 0.0 + 1.2 + + + 1431249910 + 8975799 + 0 + + + + 503.3 + + + + + Flag, Blue + user + + 0 + 0.95841277 + 1.1 + + + 1431249902 + 8334818 + 0 + + + + 510.49999999999994 + + + + + Flag, Blue + user + + 0 + 0.0 + 1.0 + + + 1431249896 + 4628942 + 0 + + + \ No newline at end of file diff --git "a/public/vaults/Demo/Attachments/\351\207\221\347\211\233\351\201\223\346\213\246\351\251\254\345\242\231\345\210\260\346\231\256\345\256\211\351\225\207.kml" "b/public/vaults/Demo/Attachments/\351\207\221\347\211\233\351\201\223\346\213\246\351\251\254\345\242\231\345\210\260\346\231\256\345\256\211\351\225\207.kml" new file mode 100644 index 0000000..fa7f90a --- /dev/null +++ "b/public/vaults/Demo/Attachments/\351\207\221\347\211\233\351\201\223\346\213\246\351\251\254\345\242\231\345\210\260\346\231\256\345\256\211\351\225\207.kml" @@ -0,0 +1,2065 @@ + + + + 拦马墙-普安镇 金牛道 + + + + + 神经蛙_LBL5693567 + + + 67328667 + + + 8 + + + 徒步 + + + 1746151284000 + + + 1746160947000 + + + 9663862 + + + 270647 + + + 凉山小学 + + + 城南九号 + + + and_7.9.8 + + + 21883 + + + 21883 + + + 57881445 + + + 神经蛙_LBL5693567 + + + 1326942384 + + + 57881445 + + + 神经蛙_LBL5693567 + + + zs_J5CXn8 + + + 1326942384 + + + 0 + + + 0 + + + region:CN;lan:zh;model:android;system:android35;app:2bulu-V7.9.8 + + + + + + + normal + #TrackStyle_n + + + highlight + #TrackStyle_h + + + + + + + + + + + 标注点 + + 起点 + #startPointStyle + + 2025-05-02T02:01:25Z + + + 105.3922978,32.0089378,692.2 + + + + 终点 + #endPointStyle + + 2025-05-02T04:42:26Z + + + 105.456361,32.033863,476.92 + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T02:27:02Z + + + 105.4089937,32.0118974,649.8 + + + + 0 + + + 0.6933308 + + + 1.0 + + + 1746152822431 + + + + + + 1431249940 + + + 2980053 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T02:28:38Z + + + 105.4099675,32.0118284,649.1 + + + + 0 + + + 0.7139197 + + + 1.1 + + + 1746152918429 + + + + + + 1431249932 + + + 1760288 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T02:28:38Z + + + 105.4099675,32.0118284,649.1 + + + + 0 + + + 0.7139197 + + + 1.1 + + + 1746152918429 + + + + + + 1431249929 + + + 2795745 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T02:35:16Z + + + 105.4111555,32.0122912,643.7 + + + + 0 + + + 0.6161225 + + + 1.2 + + + 1746153316449 + + + + + + 1431249923 + + + 7172889 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T02:47:02Z + + + 105.4147275,32.0131278,633.3 + + + + 0 + + + 0.5996514 + + + 1.4 + + + 1746154022458 + + + + + + 1431249919 + + + 6506770 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T03:13:37Z + + + 105.4298054,32.0126898,541.6 + + + + 0 + + + 0.0 + + + 1.2 + + + 1746155617454 + + + + + + 1431249910 + + + 8975799 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T03:19:39Z + + + 105.4324717,32.013114,503.3 + + + + 0 + + + 0.95841277 + + + 1.1 + + + 1746155979448 + + + + + + 1431249902 + + + 8334818 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T04:32:09Z + + + 105.4492512,32.0326423,510.5 + + + + 0 + + + 0.0 + + + 1.0 + + + 1746160329563 + + + + + + 1431249896 + + + 4628942 + + + 0 + + + + + + 轨迹 + + 轨迹片段1 + +
通过“两步路”生成,http://www.2bulu.com
+
上传者:神经蛙_LBL5693567
+
开始时间:2025-05-02 10:01:25
+
结束时间:2025-05-02 12:42:26
+
轨迹点数:768
+
本段里程:8138.0637112146305米
+
最高海拔:693.1463513598043米
+
最低海拔:474.10869380974873米
+
累计爬升:144.71449502117645米
+
累计下降:360.32921432958284米
+
+ + 105.3922978 32.0089378 692.2 + 105.3924152 32.0089706 692.2 + 105.3925258 32.0089922 693.15 + 105.392637 32.0090068 692.78 + 105.3927416 32.0090243 691.41 + 105.3928491 32.0090458 690.16 + 105.3929482 32.0090865 689.02 + 105.3930368 32.0091429 687.5 + 105.3930746 32.0091763 686.56 + 105.3930746 32.0091763 686.56 + 105.393145 32.009235 686.57 + 105.393145 32.009235 686.57 + 105.393225 32.0092983 687.19 + 105.3932754 32.0093828 687.45 + 105.3933282 32.0094633 687.73 + 105.3933755 32.0095452 686.64 + 105.393456 32.0096212 685.89 + 105.3935518 32.0096985 685.59 + 105.3936167 32.0097815 685.12 + 105.3936962 32.0098492 683.61 + 105.3937956 32.0099108 682.62 + 105.3939044 32.0099773 682.14 + 105.3940042 32.0100412 681.91 + 105.3941082 32.0100817 682.46 + 105.3942186 32.0101239 683.47 + 105.3943172 32.0101731 684.08 + 105.3944311 32.0102305 684.95 + 105.394541 32.0102921 686.13 + 105.3946274 32.0103648 687.02 + 105.3947101 32.0104273 687.18 + 105.3948216 32.0104802 685.56 + 105.3949368 32.0105259 682.56 + 105.3950548 32.0105658 678.84 + 105.395158 32.0106094 674.3 + 105.3952578 32.0106586 670.86 + 105.3953605 32.0107102 669.29 + 105.395446 32.0107824 668.52 + 105.3955215 32.0108719 667.69 + 105.3956068 32.0109427 666.75 + 105.3957044 32.0110063 665.82 + 105.3958102 32.0110498 665.08 + 105.3959183 32.0110866 664.49 + 105.3960265 32.0110947 664.36 + 105.3961405 32.0110821 665.07 + 105.3962512 32.0110641 666.76 + 105.3963728 32.0110814 668.63 + 105.3964846 32.0110832 670.46 + 105.3966021 32.0110981 671.94 + 105.3967206 32.0111331 672.87 + 105.3968356 32.0111586 673.06 + 105.3969504 32.0111905 672.17 + 105.3969504 32.0111905 672.17 + 105.3971333 32.0112467 668.0 + 105.3971333 32.0112467 668.0 + 105.3972333 32.01128 668.0 + 105.3973517 32.011326 667.91 + 105.3974655 32.011346 667.43 + 105.3975668 32.0113867 667.81 + 105.3976359 32.0114543 669.18 + 105.3977338 32.0114962 671.25 + 105.3978368 32.0115306 672.52 + 105.3979537 32.0115729 672.77 + 105.3980651 32.0116048 671.23 + 105.398176 32.0116392 668.51 + 105.3982815 32.0116712 667.13 + 105.3983886 32.0116988 666.0 + 105.3984953 32.0116961 665.7 + 105.3986056 32.0116903 666.09 + 105.3987148 32.0116601 666.74 + 105.3988222 32.0116146 667.71 + 105.3989263 32.0115718 668.57 + 105.3990269 32.0115243 668.84 + 105.3991226 32.0114684 668.95 + 105.3992244 32.0114239 668.8 + 105.39932 32.0113794 668.33 + 105.3994359 32.0113485 669.35 + 105.3995569 32.01134 671.0 + 105.3996826 32.0113402 673.02 + 105.3997967 32.0113494 674.78 + 105.3999033 32.0113743 675.99 + 105.4000101 32.0114112 676.86 + 105.4001162 32.0114373 677.74 + 105.4002298 32.0114554 679.1 + 105.4003489 32.0114617 679.74 + 105.4004596 32.0114552 680.15 + 105.4005731 32.0114424 679.92 + 105.4006815 32.0114322 678.83 + 105.4007994 32.0114326 677.61 + 105.4009171 32.0114211 675.33 + 105.4010408 32.0114172 673.38 + 105.4010987 32.0114104 672.44 + 105.4012024 32.0114223 671.82 + 105.4013211 32.0114475 673.32 + 105.4014583 32.0114676 675.2 + 105.4015836 32.0114923 675.63 + 105.401708 32.0114969 675.14 + 105.4018216 32.0114999 674.05 + 105.4019464 32.011502 672.39 + 105.4020745 32.0115069 669.56 + 105.4021898 32.0115168 668.07 + 105.402305 32.0115323 667.48 + 105.4024145 32.0115271 667.23 + 105.4024131 32.0114513 666.79 + 105.402492 32.0114106 666.15 + 105.402594 32.0114235 665.91 + 105.4027222 32.011445 665.35 + 105.4028343 32.0114795 665.8 + 105.4029494 32.0114793 666.14 + 105.4030715 32.0114834 666.3 + 105.4031907 32.0114938 666.43 + 105.4033171 32.0115056 667.75 + 105.4034322 32.0115239 668.89 + 105.4035465 32.0115407 669.15 + 105.403667 32.0115552 668.87 + 105.4037789 32.01156 667.34 + 105.4038923 32.011555 665.99 + 105.4040117 32.0115545 664.14 + 105.4041234 32.0115602 661.63 + 105.4042382 32.0115559 660.07 + 105.4043482 32.0115614 659.82 + 105.4044589 32.011571 659.9 + 105.4045651 32.011588 659.86 + 105.4046811 32.0116173 660.48 + 105.4048034 32.0116204 660.53 + 105.4049201 32.0116193 659.83 + 105.405038 32.0116087 659.26 + 105.4051588 32.0116005 659.28 + 105.405277 32.0116102 659.67 + 105.4053939 32.0116268 660.2 + 105.4055167 32.0116201 660.07 + 105.4056279 32.0116104 660.43 + 105.4057422 32.0116167 660.16 + 105.4058556 32.0116069 660.09 + 105.4059737 32.0115969 658.55 + 105.406095 32.0116138 657.49 + 105.4062121 32.0116471 656.55 + 105.4063413 32.011665 655.28 + 105.4064573 32.0116644 654.47 + 105.406573 32.0116834 654.87 + 105.4066865 32.0116981 656.0 + 105.4068018 32.0116918 656.43 + 105.4069231 32.0116791 656.55 + 105.4070454 32.0116776 657.3 + 105.4071551 32.0116913 658.25 + 105.4072814 32.0116891 658.14 + 105.4073992 32.0117065 657.78 + 105.4075121 32.0117264 655.59 + 105.4076308 32.0117564 653.36 + 105.4077421 32.0117682 652.13 + 105.4078504 32.0117738 652.16 + 105.4079617 32.0117701 652.39 + 105.4080721 32.0117849 652.01 + 105.4081795 32.0118061 651.36 + 105.408296 32.0118115 650.22 + 105.4084209 32.0118242 648.62 + 105.4085361 32.0118252 647.1 + 105.4086633 32.0118304 647.53 + 105.4087825 32.0118454 649.45 + 105.408887 32.0118752 650.81 + 105.4089937 32.0118974 651.06 + 105.4090721 32.0118419 650.52 + 105.4091543 32.0117804 649.61 + 105.4092571 32.0117559 649.05 + 105.4093832 32.0117613 648.51 + 105.409507 32.0117756 647.86 + 105.4096334 32.0117863 647.15 + 105.4097524 32.0117752 647.13 + 105.4098606 32.0118057 646.77 + 105.4099675 32.0118284 646.83 + 105.4099675 32.0118284 646.83 + 105.4099675 32.0118284 646.83 + 105.4099675 32.0118284 646.83 + 105.4100683 32.01188 647.8 + 105.4100683 32.01188 647.8 + 105.4101517 32.0119667 647.54 + 105.4102583 32.012 649.85 + 105.4103594 32.0120573 651.94 + 105.4104645 32.0121124 653.3 + 105.4105333 32.0121344 653.81 + 105.4106316 32.0121867 653.38 + 105.4107461 32.0122014 651.92 + 105.410861 32.0121829 651.44 + 105.4109661 32.0121988 651.38 + 105.4110608 32.0122464 650.06 + 105.4111555 32.0122912 649.04 + 105.4112572 32.0123168 646.74 + 105.411373 32.012327 645.0 + 105.4114838 32.0123233 643.5 + 105.4115694 32.0123708 642.85 + 105.4116769 32.0123983 643.09 + 105.4117748 32.0124515 643.48 + 105.4118613 32.0125266 644.78 + 105.4119613 32.012607 646.34 + 105.412052 32.0126736 647.7 + 105.4121289 32.0127414 648.64 + 105.4122475 32.0127697 648.97 + 105.4122345 32.012717 647.74 + 105.4122345 32.012717 647.74 + 105.4122592 32.0127571 646.77 + 105.4122592 32.0127571 646.77 + 105.4123466 32.0128192 645.97 + 105.4124657 32.0128534 644.52 + 105.4125835 32.0128776 642.1 + 105.4127052 32.0128959 641.24 + 105.4128141 32.0129277 641.05 + 105.4129261 32.012969 641.72 + 105.4130343 32.0129971 641.11 + 105.413136 32.0130271 640.12 + 105.4132342 32.013062 640.02 + 105.4133116 32.013125 639.15 + 105.4133743 32.0131993 638.27 + 105.4134692 32.013241 637.47 + 105.4135775 32.0132555 636.75 + 105.4136872 32.0132486 635.39 + 105.4138117 32.013245 634.19 + 105.4139267 32.013215 633.42 + 105.4140332 32.0131568 632.51 + 105.4141473 32.0131451 630.35 + 105.4142623 32.0131452 628.48 + 105.4143865 32.0131486 627.28 + 105.4145025 32.0131429 626.9 + 105.4146149 32.0131442 627.98 + 105.4147275 32.0131278 629.15 + 105.4148416 32.0130884 630.93 + 105.4149602 32.0130788 632.64 + 105.4150678 32.0130955 632.36 + 105.41519 32.0131362 630.83 + 105.4153042 32.0131825 626.86 + 105.4154124 32.0132548 624.0 + 105.4155174 32.0133289 622.62 + 105.4156115 32.0134077 623.21 + 105.4156896 32.0134819 625.49 + 105.4157826 32.0135471 627.47 + 105.4158798 32.0136152 628.17 + 105.4159685 32.0136772 627.5 + 105.4160551 32.0137344 626.12 + 105.4161398 32.013794 625.98 + 105.4162305 32.0138599 625.26 + 105.4162798 32.013942 623.73 + 105.4163037 32.0140373 622.77 + 105.4163105 32.0141326 621.92 + 105.4163737 32.0142028 621.05 + 105.4164309 32.0142882 619.74 + 105.4164566 32.014384 618.39 + 105.4164638 32.0144782 617.58 + 105.4164945 32.0145711 617.29 + 105.4165605 32.0146621 617.29 + 105.4166503 32.0147409 617.12 + 105.4167392 32.0148254 616.42 + 105.4168153 32.0149114 615.73 + 105.4168854 32.0150042 615.41 + 105.4169785 32.0150482 615.84 + 105.4170741 32.015104 616.34 + 105.4171594 32.015164 616.75 + 105.4172629 32.0152138 616.39 + 105.4173632 32.0152561 615.96 + 105.4174702 32.0152638 615.89 + 105.417578 32.0152884 615.72 + 105.4176882 32.0153052 615.71 + 105.4178026 32.0153156 615.41 + 105.4179246 32.0153344 615.19 + 105.4180401 32.0153405 614.08 + 105.4181527 32.0153469 613.18 + 105.418278 32.0153253 612.63 + 105.4183994 32.0153276 611.63 + 105.4185274 32.0153165 611.27 + 105.4186504 32.0153101 610.68 + 105.4187647 32.0153135 610.17 + 105.418886 32.0153192 609.5 + 105.4190078 32.0153315 608.9 + 105.4191284 32.015327 609.2 + 105.4192335 32.0152833 610.19 + 105.4193317 32.0152221 611.48 + 105.419427 32.0151682 611.15 + 105.419507 32.015093 608.8 + 105.4195895 32.015017 606.18 + 105.4196829 32.0149562 604.08 + 105.4197707 32.0148942 602.32 + 105.4198587 32.014814 600.51 + 105.4199205 32.0147257 598.91 + 105.4199628 32.0146341 597.66 + 105.4200295 32.0145498 596.21 + 105.420132 32.0144913 595.65 + 105.4202122 32.0144272 595.24 + 105.420297 32.014366 595.18 + 105.4203887 32.0143015 594.8 + 105.4204689 32.0142154 594.41 + 105.4205194 32.0141176 593.72 + 105.4205794 32.014028 592.55 + 105.4206572 32.0139527 591.37 + 105.4207558 32.0138965 591.17 + 105.4207798 32.0138943 591.48 + 105.4208589 32.0138791 592.44 + 105.4209427 32.0138166 592.21 + 105.4209855 32.0137143 590.83 + 105.421025 32.0136107 589.18 + 105.4211064 32.0135511 588.2 + 105.4212166 32.0135081 588.41 + 105.4213245 32.0134697 589.27 + 105.421434 32.0134514 590.27 + 105.4215529 32.0134492 591.32 + 105.4216858 32.0134587 592.47 + 105.4218142 32.0134895 593.73 + 105.4219346 32.0135278 593.67 + 105.4220555 32.0135792 593.3 + 105.4221668 32.0136278 592.83 + 105.4222483 32.0136951 592.64 + 105.4223396 32.0137498 591.42 + 105.4224439 32.0137822 589.65 + 105.422551 32.0138065 588.12 + 105.4226648 32.0138015 587.3 + 105.4227983 32.0137906 586.78 + 105.4229133 32.0138148 585.63 + 105.4230227 32.0138621 583.9 + 105.4231354 32.0138978 582.56 + 105.4232609 32.0139112 581.07 + 105.4233837 32.0139086 579.36 + 105.4235086 32.0139049 577.92 + 105.4236228 32.0138885 576.88 + 105.4237379 32.0138394 576.03 + 105.4238299 32.0137658 574.29 + 105.423915 32.0136893 572.1 + 105.4239776 32.0136019 569.82 + 105.424057 32.0135371 568.01 + 105.4241505 32.0134932 565.77 + 105.4242367 32.0134314 564.32 + 105.4243082 32.0133492 563.19 + 105.4244019 32.0132823 562.59 + 105.424517 32.013261 562.81 + 105.424638 32.01326 563.58 + 105.4247544 32.013275 563.59 + 105.4248643 32.0132897 563.68 + 105.4249664 32.0133234 563.09 + 105.4250771 32.0133753 562.32 + 105.4251802 32.0134261 561.62 + 105.4252841 32.0134732 561.44 + 105.4253923 32.0135043 562.11 + 105.4255035 32.0135218 562.67 + 105.4256118 32.013515 562.55 + 105.4257301 32.0134942 562.62 + 105.4258408 32.0134852 561.83 + 105.4259457 32.0135086 561.22 + 105.4260598 32.0135266 560.52 + 105.4261715 32.0135573 560.21 + 105.426292 32.0135596 560.03 + 105.4264082 32.0135579 560.32 + 105.4265235 32.0135346 560.83 + 105.4266298 32.0135066 561.5 + 105.4267302 32.013466 561.07 + 105.4268441 32.0134307 559.88 + 105.4269585 32.013381 558.38 + 105.4270626 32.0133352 556.41 + 105.4271564 32.0132831 555.42 + 105.4272695 32.0132315 554.94 + 105.4273766 32.0131818 554.06 + 105.4274734 32.0131343 552.66 + 105.4275902 32.0130877 550.87 + 105.4277073 32.0130338 550.5 + 105.4278225 32.0129808 551.57 + 105.4279266 32.012931 552.27 + 105.428044 32.0128826 552.54 + 105.4281555 32.012832 552.95 + 105.4282732 32.012798 554.39 + 105.4283745 32.0127601 555.56 + 105.4284908 32.012755 555.92 + 105.4286032 32.0127528 556.17 + 105.4287289 32.0127473 556.1 + 105.4288394 32.0127231 555.32 + 105.4289535 32.0126853 554.02 + 105.4290645 32.0126397 550.7 + 105.4291718 32.0125885 546.18 + 105.4292793 32.0125715 542.06 + 105.4293908 32.0125915 539.15 + 105.4295052 32.01263 537.93 + 105.4296231 32.0126887 537.53 + 105.4297407 32.0127072 537.0 + 105.4298054 32.0126898 537.56 + 105.4299094 32.012674 539.3 + 105.4300168 32.0126687 539.73 + 105.4301335 32.0126473 539.42 + 105.4302532 32.0126262 538.89 + 105.4303768 32.0126249 539.07 + 105.4304938 32.0126602 538.39 + 105.4306342 32.012688 538.22 + 105.4307519 32.0127018 537.53 + 105.4308625 32.0127321 536.35 + 105.4309725 32.0127626 534.61 + 105.4310891 32.012781 533.36 + 105.4312036 32.0128147 532.26 + 105.4313008 32.0128782 531.59 + 105.4314056 32.0128869 531.59 + 105.4315028 32.0128523 531.21 + 105.4316049 32.0128139 530.69 + 105.4317167 32.0127837 530.13 + 105.4318283 32.0127574 529.3 + 105.4319331 32.0127105 528.35 + 105.4320475 32.0127013 527.73 + 105.4320794 32.0127697 526.94 + 105.4320142 32.0128513 524.0 + 105.4319906 32.0129564 521.25 + 105.4320461 32.0130367 518.6 + 105.4321486 32.0130547 515.03 + 105.4322648 32.0130497 511.96 + 105.4323778 32.0130622 508.97 + 105.4324717 32.013114 506.66 + 105.4325382 32.0131896 505.21 + 105.4325588 32.0132846 503.44 + 105.4325216 32.0133745 503.94 + 105.4324417 32.0134551 503.45 + 105.4323774 32.0135377 501.62 + 105.4323577 32.0136299 499.89 + 105.4323171 32.0137241 499.64 + 105.432295 32.0138173 500.83 + 105.4323364 32.0138972 503.48 + 105.4324389 32.0139245 506.67 + 105.4325561 32.0139294 510.0 + 105.4326807 32.0139269 512.45 + 105.4327931 32.0138958 515.87 + 105.4329125 32.0138349 518.59 + 105.433025 32.0137958 521.26 + 105.4331394 32.0137965 524.03 + 105.4332495 32.0138071 524.88 + 105.4333478 32.0138494 525.45 + 105.4333982 32.0139293 525.99 + 105.4334356 32.0140366 524.79 + 105.4334889 32.0141355 524.32 + 105.4335739 32.0141991 524.53 + 105.4336786 32.0142562 525.5 + 105.4337913 32.0142932 527.48 + 105.4339063 32.0143265 529.6 + 105.4340131 32.0143726 531.92 + 105.4340961 32.0144481 534.06 + 105.4341353 32.0145432 534.68 + 105.4341773 32.0146361 535.68 + 105.434256 32.0147163 535.64 + 105.4343445 32.0147946 535.67 + 105.4344454 32.014855 535.34 + 105.4345259 32.0149215 534.46 + 105.4345763 32.0150064 534.43 + 105.4346262 32.0150932 533.9 + 105.4346802 32.0151761 533.04 + 105.434713 32.0152733 533.41 + 105.4347847 32.0153556 535.13 + 105.4348244 32.0154416 537.4 + 105.4348809 32.0155256 537.48 + 105.4349134 32.0156152 537.75 + 105.4349491 32.0157131 538.59 + 105.4349822 32.0158113 539.54 + 105.435026 32.0159028 540.17 + 105.4350627 32.0159803 540.14 + 105.4350627 32.0159803 540.14 + 105.4350965 32.0160828 540.42 + 105.4350965 32.0160828 540.42 + 105.4351545 32.0161766 540.76 + 105.4352077 32.0162688 541.25 + 105.4352606 32.0163605 541.27 + 105.4353292 32.0164444 541.33 + 105.4353859 32.016532 541.62 + 105.4354347 32.016615 542.34 + 105.4354946 32.0166989 543.48 + 105.4355503 32.0167859 544.09 + 105.4356141 32.0168679 545.04 + 105.4356772 32.0169505 545.93 + 105.4357334 32.0170322 547.21 + 105.4358018 32.0171137 548.06 + 105.4358701 32.0171877 548.29 + 105.4359314 32.017269 548.64 + 105.435975 32.0173685 549.53 + 105.4360073 32.0174656 550.85 + 105.436034 32.0175634 552.98 + 105.436065 32.0176709 554.32 + 105.4360959 32.0177717 554.7 + 105.436112 32.0178694 554.91 + 105.4361104 32.0179672 554.82 + 105.4361207 32.0180702 555.11 + 105.436148 32.0181752 555.41 + 105.4361993 32.0182732 555.71 + 105.4362459 32.0183672 555.92 + 105.4362977 32.0184586 557.03 + 105.4363533 32.0185471 558.05 + 105.4364222 32.0186384 558.24 + 105.4364928 32.0187262 558.48 + 105.4365593 32.0188115 559.09 + 105.4365986 32.0189036 560.13 + 105.4366066 32.0190008 560.98 + 105.4366083 32.0190948 561.59 + 105.4366328 32.0191921 562.54 + 105.4366659 32.0192818 563.77 + 105.4367007 32.0193724 565.5 + 105.436719 32.0194673 566.66 + 105.4367284 32.0195614 566.21 + 105.436769 32.0196562 567.32 + 105.4368019 32.0197464 567.96 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368833 32.0198567 568.07 + 105.4368833 32.0198567 568.07 + 105.4369533 32.0199333 569.8 + 105.4370431 32.0200029 571.78 + 105.4371363 32.0200765 572.99 + 105.4372182 32.0201486 573.13 + 105.4373007 32.0202291 573.29 + 105.4373698 32.0203076 573.42 + 105.4374667 32.02037 573.5 + 105.4375419 32.0204438 573.76 + 105.4375982 32.020534 575.32 + 105.4376857 32.0206074 576.13 + 105.4377659 32.0206749 576.98 + 105.4378525 32.0207431 578.23 + 105.4379475 32.0207884 579.6 + 105.4380515 32.020833 580.67 + 105.4381456 32.0208825 581.24 + 105.4382126 32.0209521 581.27 + 105.4382974 32.0210292 581.93 + 105.4383776 32.0211068 582.73 + 105.4384311 32.0211923 583.92 + 105.4384899 32.021274 584.13 + 105.4385272 32.021381 583.56 + 105.4386022 32.0214572 584.01 + 105.4386499 32.021538 585.42 + 105.4386838 32.0216265 585.41 + 105.438721 32.0217118 583.6 + 105.4387732 32.0217918 584.2 + 105.4388562 32.0218511 585.92 + 105.4389513 32.0219107 588.15 + 105.4390424 32.0219842 589.98 + 105.4391417 32.0220497 590.07 + 105.4392208 32.0221256 590.17 + 105.4392703 32.0222106 589.28 + 105.439336 32.0222871 588.6 + 105.4394083 32.0223711 587.48 + 105.4394945 32.0224554 587.19 + 105.4395705 32.0225281 588.18 + 105.4396243 32.0226077 589.31 + 105.4397101 32.0226778 590.12 + 105.4397663 32.0227644 591.23 + 105.4398307 32.0228411 592.38 + 105.4399128 32.0229112 592.82 + 105.4400166 32.0229651 593.67 + 105.4401211 32.0230025 594.76 + 105.4402229 32.0230473 594.35 + 105.4403316 32.0230815 594.2 + 105.4404387 32.0231208 594.76 + 105.4405234 32.0231779 595.77 + 105.4405634 32.0232591 596.47 + 105.4405944 32.023347 598.46 + 105.4406051 32.0234481 599.73 + 105.4406456 32.0235476 601.82 + 105.4406754 32.0236464 602.59 + 105.4407172 32.0237468 602.68 + 105.4407624 32.0238387 602.3 + 105.4407933 32.0239397 602.04 + 105.4407998 32.0240344 604.05 + 105.4408068 32.0241352 605.75 + 105.4408117 32.0242372 606.46 + 105.4408656 32.0243306 606.82 + 105.4409342 32.0244056 606.9 + 105.441012 32.0244755 607.24 + 105.4411099 32.0245348 607.96 + 105.441206 32.0245911 609.14 + 105.4412807 32.0246636 609.77 + 105.4413467 32.0247366 610.68 + 105.4414302 32.0248054 612.93 + 105.4415022 32.0248838 614.51 + 105.4415556 32.0249744 616.05 + 105.4416302 32.025049 619.43 + 105.4417137 32.0251181 620.96 + 105.4418075 32.0251842 621.97 + 105.4418629 32.0252674 623.36 + 105.4419409 32.0253459 624.28 + 105.4420251 32.0254096 625.58 + 105.4421172 32.0254676 626.41 + 105.4422181 32.0255244 626.75 + 105.4423264 32.0255801 627.59 + 105.4424379 32.0256296 628.41 + 105.442542 32.025686 629.35 + 105.4426267 32.0257503 630.53 + 105.4426955 32.0258225 630.99 + 105.4427458 32.0259045 631.81 + 105.4428058 32.0259844 633.83 + 105.44286 32.0260752 636.35 + 105.4429223 32.0261558 640.46 + 105.4429808 32.0262445 643.1 + 105.4430501 32.0263261 644.61 + 105.4431261 32.0264124 645.29 + 105.4432002 32.0264893 645.98 + 105.4432567 32.0265676 646.21 + 105.4433316 32.0266318 645.82 + 105.443384 32.0267199 645.34 + 105.4434526 32.0268074 646.7 + 105.4435319 32.0268852 648.68 + 105.4435708 32.0269715 649.5 + 105.4435767 32.0270612 651.35 + 105.4436186 32.0271469 652.71 + 105.4436702 32.0272382 652.53 + 105.4437348 32.0273279 652.22 + 105.4438084 32.0274017 651.78 + 105.4438791 32.0274759 649.81 + 105.443969 32.0275247 647.1 + 105.443969 32.0275247 647.1 + 105.4441606 32.0276281 642.92 + 105.4441606 32.0276281 642.92 + 105.4442451 32.0276904 638.61 + 105.4443256 32.0277615 635.94 + 105.4444037 32.0278355 634.29 + 105.4444837 32.0279025 633.17 + 105.4445398 32.027979 631.47 + 105.4446085 32.0280528 630.15 + 105.4446794 32.0281314 629.01 + 105.4447748 32.0281905 627.76 + 105.4448742 32.0282558 626.1 + 105.4449836 32.0283219 624.25 + 105.4450819 32.0283858 622.03 + 105.4451714 32.0284452 620.56 + 105.4452301 32.0285232 619.72 + 105.4453007 32.0285932 618.81 + 105.4453099 32.0286808 617.6 + 105.4452482 32.0287635 616.35 + 105.4451567 32.0288422 615.25 + 105.4451453 32.0289342 614.24 + 105.4452128 32.0290061 612.93 + 105.4452973 32.0290863 611.41 + 105.4454102 32.0291089 609.43 + 105.4455335 32.0291091 606.32 + 105.4456458 32.0291381 603.47 + 105.4457566 32.0291704 601.38 + 105.4458649 32.0291964 599.58 + 105.4459758 32.0292199 597.35 + 105.4460976 32.0292102 595.01 + 105.4460583 32.0292817 593.5 + 105.4460217 32.0293767 593.84 + 105.4460259 32.0294844 593.35 + 105.4460592 32.0295776 592.21 + 105.4460542 32.0296776 590.18 + 105.4460553 32.0297741 585.85 + 105.4460592 32.0298767 582.6 + 105.4460955 32.0299754 579.46 + 105.4461473 32.0300612 575.61 + 105.4461603 32.0301485 572.16 + 105.4461824 32.0302347 568.48 + 105.4462114 32.0303245 565.56 + 105.446208 32.0304172 562.91 + 105.446215 32.0305157 560.54 + 105.4462462 32.030615 558.2 + 105.4462941 32.0307067 554.97 + 105.4463718 32.0307852 551.72 + 105.4464728 32.030848 548.05 + 105.446551 32.0309209 544.16 + 105.446637 32.0309813 542.15 + 105.4467421 32.0310197 540.67 + 105.4468449 32.0310697 538.88 + 105.4469431 32.0311167 536.74 + 105.4470402 32.0311603 535.21 + 105.4471444 32.031203 534.09 + 105.4472563 32.0312295 532.63 + 105.447363 32.0312714 530.08 + 105.4474498 32.0313464 527.94 + 105.4475305 32.0314231 525.34 + 105.4476225 32.0314696 523.0 + 105.4477108 32.0315203 521.37 + 105.4478051 32.031561 519.87 + 105.447903 32.0316072 517.82 + 105.4479994 32.031656 515.66 + 105.4480925 32.0317097 513.4 + 105.4482042 32.0317313 510.65 + 105.4483142 32.0317157 508.73 + 105.4484251 32.0316769 508.07 + 105.4485233 32.0316287 508.52 + 105.4485233 32.0316287 508.52 + 105.4485233 32.0316287 508.52 + 105.4485233 32.0316287 508.52 + 105.44861 32.031695 507.69 + 105.44861 32.031695 507.69 + 105.4486783 32.0317717 505.97 + 105.4487636 32.0318399 505.43 + 105.4488364 32.031922 505.76 + 105.4489305 32.0319897 505.91 + 105.4490474 32.0320293 505.95 + 105.4491605 32.0320403 506.06 + 105.4492653 32.0320752 507.02 + 105.4493714 32.0321314 507.7 + 105.4494743 32.0321841 506.84 + 105.4495095 32.0322683 505.7 + 105.4494789 32.0323584 504.54 + 105.4494155 32.0324501 504.22 + 105.4493545 32.0325373 504.38 + 105.4492866 32.0326169 505.51 + 105.4492512 32.0326423 507.44 + 105.4491955 32.0327045 508.76 + 105.4492417 32.0327846 508.13 + 105.4493232 32.0328534 508.03 + 105.4494399 32.0328955 508.1 + 105.4495698 32.0328941 508.88 + 105.4496887 32.0328695 509.19 + 105.4498032 32.0328859 509.06 + 105.4499212 32.0329114 508.82 + 105.4500389 32.0329146 509.8 + 105.4501575 32.0329025 510.66 + 105.4502737 32.0328868 510.33 + 105.4504051 32.0328799 509.42 + 105.4505209 32.0328869 508.38 + 105.450644 32.0328941 507.7 + 105.4507651 32.0329131 507.31 + 105.4508791 32.0329422 506.23 + 105.4509892 32.0329716 504.07 + 105.4510858 32.0330177 501.67 + 105.4511879 32.0330843 499.4 + 105.4512805 32.033161 497.25 + 105.4513723 32.0332308 495.38 + 105.4514607 32.0332992 493.8 + 105.451552 32.0333741 492.77 + 105.4516747 32.0334124 492.18 + 105.4517965 32.0334432 492.57 + 105.4519075 32.0334617 492.59 + 105.4520312 32.0334784 491.99 + 105.4521497 32.0334833 490.4 + 105.4522569 32.0334396 488.51 + 105.4523587 32.033388 487.52 + 105.4524691 32.0333443 486.78 + 105.4525758 32.0333181 486.27 + 105.4527009 32.0333204 487.44 + 105.4528318 32.0333324 487.94 + 105.4529499 32.033355 487.88 + 105.4530689 32.0333685 487.37 + 105.4531772 32.0334025 486.78 + 105.4532829 32.0334461 486.88 + 105.4533983 32.0334745 487.27 + 105.4535303 32.0334887 486.55 + 105.4536443 32.0334766 486.36 + 105.4537518 32.0334594 485.43 + 105.453865 32.0334487 483.4 + 105.453967 32.033409 482.06 + 105.454095 32.0334154 482.38 + 105.4542106 32.0334304 481.66 + 105.454333 32.0334532 480.51 + 105.4544506 32.0334588 479.39 + 105.454561 32.0334644 478.96 + 105.4546777 32.0334642 480.31 + 105.4547971 32.0334595 480.35 + 105.4549049 32.0334736 480.54 + 105.4549994 32.0335151 480.18 + 105.4550821 32.0335746 479.63 + 105.4551816 32.0336437 479.19 + 105.4552783 32.0336981 478.76 + 105.4553863 32.0337493 478.18 + 105.4554858 32.0337992 477.84 + 105.4555942 32.0338351 477.48 + 105.4558178 32.0337607 476.59 + 105.4557817 32.0338663 475.17 + 105.4558324 32.033945 474.11 + 105.4559219 32.0340062 474.79 + 105.4560277 32.0339853 475.1 + 105.4561442 32.0339506 475.92 + 105.4562503 32.0338952 476.25 + 105.456361 32.033863 476.92 + 105.456361 32.033863 476.92 + 2025-05-02T02:01:25Z + 2025-05-02T02:01:33Z + 2025-05-02T02:01:41Z + 2025-05-02T02:01:49Z + 2025-05-02T02:01:57Z + 2025-05-02T02:02:05Z + 2025-05-02T02:02:13Z + 2025-05-02T02:02:21Z + 2025-05-02T02:02:31Z + 2025-05-02T02:03:01Z + 2025-05-02T02:03:25Z + 2025-05-02T02:03:35Z + 2025-05-02T02:03:47Z + 2025-05-02T02:03:57Z + 2025-05-02T02:04:05Z + 2025-05-02T02:04:15Z + 2025-05-02T02:04:25Z + 2025-05-02T02:04:33Z + 2025-05-02T02:04:45Z + 2025-05-02T02:04:55Z + 2025-05-02T02:05:03Z + 2025-05-02T02:05:13Z + 2025-05-02T02:05:21Z + 2025-05-02T02:05:29Z + 2025-05-02T02:05:39Z + 2025-05-02T02:05:47Z + 2025-05-02T02:05:57Z + 2025-05-02T02:06:05Z + 2025-05-02T02:06:15Z + 2025-05-02T02:06:23Z + 2025-05-02T02:06:31Z + 2025-05-02T02:06:37Z + 2025-05-02T02:06:45Z + 2025-05-02T02:06:53Z + 2025-05-02T02:07:01Z + 2025-05-02T02:07:09Z + 2025-05-02T02:07:17Z + 2025-05-02T02:07:25Z + 2025-05-02T02:07:35Z + 2025-05-02T02:07:43Z + 2025-05-02T02:07:51Z + 2025-05-02T02:07:59Z + 2025-05-02T02:08:07Z + 2025-05-02T02:08:15Z + 2025-05-02T02:08:25Z + 2025-05-02T02:08:37Z + 2025-05-02T02:08:45Z + 2025-05-02T02:08:49Z + 2025-05-02T02:08:55Z + 2025-05-02T02:09:05Z + 2025-05-02T02:09:15Z + 2025-05-02T02:09:15Z + 2025-05-02T02:09:29Z + 2025-05-02T02:09:31Z + 2025-05-02T02:09:39Z + 2025-05-02T02:09:51Z + 2025-05-02T02:10:01Z + 2025-05-02T02:10:13Z + 2025-05-02T02:10:23Z + 2025-05-02T02:10:33Z + 2025-05-02T02:10:43Z + 2025-05-02T02:10:51Z + 2025-05-02T02:11:01Z + 2025-05-02T02:11:11Z + 2025-05-02T02:11:19Z + 2025-05-02T02:11:27Z + 2025-05-02T02:11:35Z + 2025-05-02T02:11:43Z + 2025-05-02T02:11:51Z + 2025-05-02T02:11:59Z + 2025-05-02T02:12:07Z + 2025-05-02T02:12:15Z + 2025-05-02T02:12:23Z + 2025-05-02T02:12:33Z + 2025-05-02T02:12:41Z + 2025-05-02T02:12:51Z + 2025-05-02T02:12:59Z + 2025-05-02T02:13:09Z + 2025-05-02T02:13:17Z + 2025-05-02T02:13:25Z + 2025-05-02T02:13:35Z + 2025-05-02T02:13:43Z + 2025-05-02T02:13:53Z + 2025-05-02T02:14:01Z + 2025-05-02T02:14:09Z + 2025-05-02T02:14:17Z + 2025-05-02T02:14:25Z + 2025-05-02T02:14:33Z + 2025-05-02T02:14:43Z + 2025-05-02T02:14:53Z + 2025-05-02T02:15:05Z + 2025-05-02T02:15:21Z + 2025-05-02T02:15:28Z + 2025-05-02T02:15:36Z + 2025-05-02T02:15:44Z + 2025-05-02T02:15:54Z + 2025-05-02T02:16:02Z + 2025-05-02T02:16:14Z + 2025-05-02T02:16:24Z + 2025-05-02T02:16:32Z + 2025-05-02T02:16:40Z + 2025-05-02T02:16:50Z + 2025-05-02T02:17:16Z + 2025-05-02T02:17:30Z + 2025-05-02T02:17:40Z + 2025-05-02T02:17:52Z + 2025-05-02T02:18:02Z + 2025-05-02T02:18:14Z + 2025-05-02T02:18:24Z + 2025-05-02T02:18:36Z + 2025-05-02T02:18:44Z + 2025-05-02T02:18:52Z + 2025-05-02T02:19:02Z + 2025-05-02T02:19:12Z + 2025-05-02T02:19:22Z + 2025-05-02T02:19:30Z + 2025-05-02T02:19:40Z + 2025-05-02T02:19:48Z + 2025-05-02T02:20:00Z + 2025-05-02T02:20:12Z + 2025-05-02T02:20:46Z + 2025-05-02T02:20:54Z + 2025-05-02T02:21:04Z + 2025-05-02T02:21:14Z + 2025-05-02T02:21:24Z + 2025-05-02T02:21:36Z + 2025-05-02T02:21:46Z + 2025-05-02T02:21:54Z + 2025-05-02T02:22:02Z + 2025-05-02T02:22:12Z + 2025-05-02T02:22:22Z + 2025-05-02T02:22:30Z + 2025-05-02T02:22:42Z + 2025-05-02T02:22:50Z + 2025-05-02T02:23:00Z + 2025-05-02T02:23:10Z + 2025-05-02T02:23:20Z + 2025-05-02T02:23:30Z + 2025-05-02T02:23:38Z + 2025-05-02T02:23:48Z + 2025-05-02T02:23:58Z + 2025-05-02T02:24:10Z + 2025-05-02T02:24:20Z + 2025-05-02T02:24:28Z + 2025-05-02T02:24:38Z + 2025-05-02T02:24:46Z + 2025-05-02T02:24:56Z + 2025-05-02T02:25:06Z + 2025-05-02T02:25:16Z + 2025-05-02T02:25:24Z + 2025-05-02T02:25:32Z + 2025-05-02T02:25:40Z + 2025-05-02T02:25:50Z + 2025-05-02T02:25:58Z + 2025-05-02T02:26:10Z + 2025-05-02T02:26:20Z + 2025-05-02T02:26:30Z + 2025-05-02T02:26:38Z + 2025-05-02T02:26:48Z + 2025-05-02T02:27:02Z + 2025-05-02T02:27:12Z + 2025-05-02T02:27:22Z + 2025-05-02T02:27:32Z + 2025-05-02T02:27:42Z + 2025-05-02T02:27:52Z + 2025-05-02T02:28:04Z + 2025-05-02T02:28:14Z + 2025-05-02T02:28:24Z + 2025-05-02T02:28:38Z + 2025-05-02T02:29:14Z + 2025-05-02T02:29:18Z + 2025-05-02T02:30:06Z + 2025-05-02T02:30:08Z + 2025-05-02T02:30:46Z + 2025-05-02T02:31:52Z + 2025-05-02T02:32:02Z + 2025-05-02T02:32:14Z + 2025-05-02T02:32:24Z + 2025-05-02T02:32:40Z + 2025-05-02T02:33:26Z + 2025-05-02T02:34:02Z + 2025-05-02T02:34:14Z + 2025-05-02T02:34:48Z + 2025-05-02T02:35:02Z + 2025-05-02T02:35:16Z + 2025-05-02T02:35:54Z + 2025-05-02T02:36:44Z + 2025-05-02T02:37:02Z + 2025-05-02T02:37:16Z + 2025-05-02T02:37:26Z + 2025-05-02T02:37:38Z + 2025-05-02T02:37:48Z + 2025-05-02T02:38:00Z + 2025-05-02T02:38:08Z + 2025-05-02T02:38:16Z + 2025-05-02T02:38:56Z + 2025-05-02T02:39:14Z + 2025-05-02T02:39:48Z + 2025-05-02T02:39:58Z + 2025-05-02T02:40:04Z + 2025-05-02T02:40:12Z + 2025-05-02T02:40:24Z + 2025-05-02T02:40:34Z + 2025-05-02T02:40:46Z + 2025-05-02T02:40:58Z + 2025-05-02T02:41:18Z + 2025-05-02T02:41:26Z + 2025-05-02T02:41:38Z + 2025-05-02T02:41:58Z + 2025-05-02T02:42:08Z + 2025-05-02T02:42:42Z + 2025-05-02T02:42:56Z + 2025-05-02T02:43:14Z + 2025-05-02T02:43:24Z + 2025-05-02T02:44:50Z + 2025-05-02T02:45:02Z + 2025-05-02T02:45:46Z + 2025-05-02T02:45:56Z + 2025-05-02T02:46:08Z + 2025-05-02T02:46:28Z + 2025-05-02T02:46:38Z + 2025-05-02T02:46:50Z + 2025-05-02T02:47:02Z + 2025-05-02T02:47:20Z + 2025-05-02T02:47:34Z + 2025-05-02T02:47:52Z + 2025-05-02T02:48:18Z + 2025-05-02T02:48:30Z + 2025-05-02T02:48:40Z + 2025-05-02T02:48:50Z + 2025-05-02T02:49:02Z + 2025-05-02T02:49:12Z + 2025-05-02T02:49:24Z + 2025-05-02T02:49:34Z + 2025-05-02T02:49:44Z + 2025-05-02T02:49:56Z + 2025-05-02T02:50:06Z + 2025-05-02T02:50:18Z + 2025-05-02T02:50:30Z + 2025-05-02T02:50:40Z + 2025-05-02T02:50:48Z + 2025-05-02T02:50:56Z + 2025-05-02T02:51:10Z + 2025-05-02T02:51:18Z + 2025-05-02T02:51:28Z + 2025-05-02T02:51:38Z + 2025-05-02T02:51:48Z + 2025-05-02T02:52:00Z + 2025-05-02T02:52:08Z + 2025-05-02T02:52:16Z + 2025-05-02T02:52:24Z + 2025-05-02T02:52:32Z + 2025-05-02T02:52:42Z + 2025-05-02T02:52:52Z + 2025-05-02T02:53:04Z + 2025-05-02T02:53:14Z + 2025-05-02T02:53:26Z + 2025-05-02T02:53:36Z + 2025-05-02T02:53:44Z + 2025-05-02T02:53:52Z + 2025-05-02T02:54:02Z + 2025-05-02T02:54:10Z + 2025-05-02T02:54:18Z + 2025-05-02T02:54:28Z + 2025-05-02T02:54:38Z + 2025-05-02T02:54:46Z + 2025-05-02T02:54:54Z + 2025-05-02T02:55:02Z + 2025-05-02T02:55:12Z + 2025-05-02T02:55:22Z + 2025-05-02T02:55:32Z + 2025-05-02T02:55:42Z + 2025-05-02T02:55:54Z + 2025-05-02T02:56:08Z + 2025-05-02T02:56:20Z + 2025-05-02T02:56:32Z + 2025-05-02T02:56:40Z + 2025-05-02T02:56:48Z + 2025-05-02T02:56:56Z + 2025-05-02T02:57:04Z + 2025-05-02T02:57:12Z + 2025-05-02T02:57:26Z + 2025-05-02T02:57:40Z + 2025-05-02T02:57:48Z + 2025-05-02T02:57:58Z + 2025-05-02T02:58:12Z + 2025-05-02T02:58:20Z + 2025-05-02T02:58:28Z + 2025-05-02T02:58:40Z + 2025-05-02T02:59:00Z + 2025-05-02T02:59:08Z + 2025-05-02T02:59:18Z + 2025-05-02T02:59:50Z + 2025-05-02T03:00:02Z + 2025-05-02T03:00:10Z + 2025-05-02T03:00:18Z + 2025-05-02T03:00:27Z + 2025-05-02T03:00:37Z + 2025-05-02T03:00:49Z + 2025-05-02T03:00:57Z + 2025-05-02T03:01:07Z + 2025-05-02T03:01:17Z + 2025-05-02T03:01:25Z + 2025-05-02T03:01:33Z + 2025-05-02T03:01:43Z + 2025-05-02T03:01:53Z + 2025-05-02T03:02:05Z + 2025-05-02T03:02:21Z + 2025-05-02T03:02:29Z + 2025-05-02T03:02:37Z + 2025-05-02T03:02:47Z + 2025-05-02T03:02:55Z + 2025-05-02T03:03:05Z + 2025-05-02T03:03:15Z + 2025-05-02T03:03:25Z + 2025-05-02T03:03:35Z + 2025-05-02T03:03:51Z + 2025-05-02T03:04:03Z + 2025-05-02T03:04:11Z + 2025-05-02T03:04:23Z + 2025-05-02T03:04:37Z + 2025-05-02T03:04:49Z + 2025-05-02T03:04:57Z + 2025-05-02T03:05:13Z + 2025-05-02T03:05:25Z + 2025-05-02T03:05:39Z + 2025-05-02T03:05:49Z + 2025-05-02T03:05:59Z + 2025-05-02T03:06:07Z + 2025-05-02T03:06:15Z + 2025-05-02T03:06:23Z + 2025-05-02T03:06:31Z + 2025-05-02T03:06:39Z + 2025-05-02T03:06:49Z + 2025-05-02T03:06:57Z + 2025-05-02T03:07:07Z + 2025-05-02T03:07:15Z + 2025-05-02T03:07:23Z + 2025-05-02T03:07:31Z + 2025-05-02T03:07:41Z + 2025-05-02T03:07:51Z + 2025-05-02T03:07:59Z + 2025-05-02T03:08:07Z + 2025-05-02T03:08:17Z + 2025-05-02T03:08:25Z + 2025-05-02T03:08:33Z + 2025-05-02T03:08:41Z + 2025-05-02T03:08:51Z + 2025-05-02T03:09:01Z + 2025-05-02T03:09:11Z + 2025-05-02T03:09:21Z + 2025-05-02T03:09:29Z + 2025-05-02T03:09:37Z + 2025-05-02T03:09:47Z + 2025-05-02T03:09:57Z + 2025-05-02T03:10:07Z + 2025-05-02T03:10:17Z + 2025-05-02T03:10:27Z + 2025-05-02T03:10:37Z + 2025-05-02T03:10:47Z + 2025-05-02T03:10:57Z + 2025-05-02T03:11:05Z + 2025-05-02T03:11:19Z + 2025-05-02T03:11:27Z + 2025-05-02T03:11:37Z + 2025-05-02T03:11:45Z + 2025-05-02T03:11:55Z + 2025-05-02T03:12:03Z + 2025-05-02T03:12:15Z + 2025-05-02T03:12:27Z + 2025-05-02T03:12:37Z + 2025-05-02T03:12:45Z + 2025-05-02T03:12:55Z + 2025-05-02T03:13:05Z + 2025-05-02T03:13:15Z + 2025-05-02T03:13:23Z + 2025-05-02T03:13:37Z + 2025-05-02T03:13:49Z + 2025-05-02T03:13:57Z + 2025-05-02T03:14:07Z + 2025-05-02T03:14:15Z + 2025-05-02T03:14:25Z + 2025-05-02T03:14:33Z + 2025-05-02T03:14:41Z + 2025-05-02T03:14:47Z + 2025-05-02T03:14:55Z + 2025-05-02T03:15:03Z + 2025-05-02T03:15:13Z + 2025-05-02T03:15:22Z + 2025-05-02T03:15:37Z + 2025-05-02T03:15:49Z + 2025-05-02T03:16:13Z + 2025-05-02T03:16:31Z + 2025-05-02T03:16:43Z + 2025-05-02T03:16:59Z + 2025-05-02T03:17:13Z + 2025-05-02T03:17:29Z + 2025-05-02T03:17:59Z + 2025-05-02T03:18:09Z + 2025-05-02T03:18:23Z + 2025-05-02T03:18:35Z + 2025-05-02T03:18:49Z + 2025-05-02T03:19:01Z + 2025-05-02T03:19:23Z + 2025-05-02T03:19:39Z + 2025-05-02T03:19:51Z + 2025-05-02T03:20:13Z + 2025-05-02T03:20:25Z + 2025-05-02T03:20:37Z + 2025-05-02T03:20:49Z + 2025-05-02T03:21:01Z + 2025-05-02T03:21:15Z + 2025-05-02T03:21:31Z + 2025-05-02T03:21:47Z + 2025-05-02T03:22:01Z + 2025-05-02T03:22:13Z + 2025-05-02T03:22:29Z + 2025-05-02T03:22:37Z + 2025-05-02T03:22:47Z + 2025-05-02T03:22:55Z + 2025-05-02T03:23:09Z + 2025-05-02T03:23:21Z + 2025-05-02T03:23:31Z + 2025-05-02T03:23:45Z + 2025-05-02T03:23:55Z + 2025-05-02T03:24:05Z + 2025-05-02T03:24:15Z + 2025-05-02T03:24:27Z + 2025-05-02T03:24:37Z + 2025-05-02T03:24:49Z + 2025-05-02T03:24:59Z + 2025-05-02T03:25:11Z + 2025-05-02T03:25:21Z + 2025-05-02T03:25:29Z + 2025-05-02T03:25:39Z + 2025-05-02T03:25:49Z + 2025-05-02T03:25:59Z + 2025-05-02T03:26:11Z + 2025-05-02T03:26:21Z + 2025-05-02T03:26:35Z + 2025-05-02T03:26:55Z + 2025-05-02T03:27:27Z + 2025-05-02T03:27:41Z + 2025-05-02T03:27:49Z + 2025-05-02T03:27:59Z + 2025-05-02T03:28:09Z + 2025-05-02T03:28:21Z + 2025-05-02T03:28:31Z + 2025-05-02T03:28:41Z + 2025-05-02T03:28:55Z + 2025-05-02T03:29:26Z + 2025-05-02T03:29:29Z + 2025-05-02T03:29:37Z + 2025-05-02T03:29:47Z + 2025-05-02T03:29:57Z + 2025-05-02T03:30:07Z + 2025-05-02T03:30:17Z + 2025-05-02T03:30:27Z + 2025-05-02T03:30:37Z + 2025-05-02T03:30:47Z + 2025-05-02T03:30:57Z + 2025-05-02T03:31:07Z + 2025-05-02T03:31:17Z + 2025-05-02T03:31:29Z + 2025-05-02T03:31:39Z + 2025-05-02T03:31:47Z + 2025-05-02T03:31:57Z + 2025-05-02T03:32:07Z + 2025-05-02T03:32:17Z + 2025-05-02T03:32:25Z + 2025-05-02T03:32:35Z + 2025-05-02T03:32:47Z + 2025-05-02T03:32:57Z + 2025-05-02T03:33:07Z + 2025-05-02T03:33:17Z + 2025-05-02T03:33:29Z + 2025-05-02T03:33:39Z + 2025-05-02T03:33:51Z + 2025-05-02T03:34:01Z + 2025-05-02T03:34:11Z + 2025-05-02T03:34:21Z + 2025-05-02T03:34:31Z + 2025-05-02T03:34:41Z + 2025-05-02T03:34:51Z + 2025-05-02T03:35:01Z + 2025-05-02T03:35:11Z + 2025-05-02T03:35:21Z + 2025-05-02T03:35:31Z + 2025-05-02T03:35:41Z + 2025-05-02T03:35:55Z + 2025-05-02T03:36:03Z + 2025-05-02T03:36:23Z + 2025-05-02T03:36:31Z + 2025-05-02T03:36:49Z + 2025-05-02T03:37:20Z + 2025-05-02T03:37:23Z + 2025-05-02T03:38:04Z + 2025-05-02T03:38:08Z + 2025-05-02T03:38:40Z + 2025-05-02T03:39:05Z + 2025-05-02T03:39:51Z + 2025-05-02T03:40:08Z + 2025-05-02T03:40:41Z + 2025-05-02T03:42:03Z + 2025-05-02T03:42:36Z + 2025-05-02T03:42:36Z + 2025-05-02T03:44:14Z + 2025-05-02T03:44:22Z + 2025-05-02T03:44:37Z + 2025-05-02T03:45:19Z + 2025-05-02T03:45:29Z + 2025-05-02T03:45:39Z + 2025-05-02T03:45:47Z + 2025-05-02T03:45:57Z + 2025-05-02T03:46:05Z + 2025-05-02T03:46:15Z + 2025-05-02T03:46:25Z + 2025-05-02T03:46:35Z + 2025-05-02T03:46:43Z + 2025-05-02T03:46:51Z + 2025-05-02T03:47:01Z + 2025-05-02T03:47:13Z + 2025-05-02T03:47:23Z + 2025-05-02T03:47:31Z + 2025-05-02T03:47:45Z + 2025-05-02T03:47:55Z + 2025-05-02T03:48:03Z + 2025-05-02T03:48:15Z + 2025-05-02T03:48:31Z + 2025-05-02T03:48:45Z + 2025-05-02T03:48:57Z + 2025-05-02T03:49:05Z + 2025-05-02T03:49:15Z + 2025-05-02T03:49:29Z + 2025-05-02T03:49:39Z + 2025-05-02T03:49:47Z + 2025-05-02T03:49:57Z + 2025-05-02T03:50:07Z + 2025-05-02T03:50:17Z + 2025-05-02T03:50:25Z + 2025-05-02T03:50:35Z + 2025-05-02T03:50:45Z + 2025-05-02T03:50:55Z + 2025-05-02T03:51:05Z + 2025-05-02T03:51:13Z + 2025-05-02T03:51:21Z + 2025-05-02T03:51:33Z + 2025-05-02T03:51:47Z + 2025-05-02T03:51:55Z + 2025-05-02T03:52:07Z + 2025-05-02T03:52:17Z + 2025-05-02T03:52:27Z + 2025-05-02T03:52:39Z + 2025-05-02T03:52:51Z + 2025-05-02T03:53:01Z + 2025-05-02T03:53:11Z + 2025-05-02T03:53:25Z + 2025-05-02T03:53:35Z + 2025-05-02T03:53:49Z + 2025-05-02T03:53:59Z + 2025-05-02T03:54:09Z + 2025-05-02T03:54:19Z + 2025-05-02T03:54:29Z + 2025-05-02T03:54:41Z + 2025-05-02T03:54:49Z + 2025-05-02T03:54:59Z + 2025-05-02T03:55:09Z + 2025-05-02T03:55:21Z + 2025-05-02T03:55:29Z + 2025-05-02T03:55:39Z + 2025-05-02T03:55:51Z + 2025-05-02T03:56:03Z + 2025-05-02T03:56:15Z + 2025-05-02T03:56:27Z + 2025-05-02T03:57:01Z + 2025-05-02T03:57:13Z + 2025-05-02T03:57:39Z + 2025-05-02T03:57:49Z + 2025-05-02T03:58:03Z + 2025-05-02T03:58:15Z + 2025-05-02T03:58:23Z + 2025-05-02T03:58:35Z + 2025-05-02T03:58:43Z + 2025-05-02T03:58:55Z + 2025-05-02T03:59:07Z + 2025-05-02T03:59:17Z + 2025-05-02T03:59:27Z + 2025-05-02T03:59:37Z + 2025-05-02T03:59:47Z + 2025-05-02T03:59:57Z + 2025-05-02T04:00:09Z + 2025-05-02T04:00:21Z + 2025-05-02T04:00:35Z + 2025-05-02T04:00:45Z + 2025-05-02T04:00:57Z + 2025-05-02T04:01:07Z + 2025-05-02T04:01:19Z + 2025-05-02T04:01:29Z + 2025-05-02T04:01:41Z + 2025-05-02T04:01:51Z + 2025-05-02T04:02:03Z + 2025-05-02T04:02:15Z + 2025-05-02T04:02:27Z + 2025-05-02T04:02:41Z + 2025-05-02T04:03:07Z + 2025-05-02T04:03:17Z + 2025-05-02T04:03:27Z + 2025-05-02T04:03:41Z + 2025-05-02T04:04:01Z + 2025-05-02T04:04:11Z + 2025-05-02T04:04:25Z + 2025-05-02T04:05:11Z + 2025-05-02T04:05:23Z + 2025-05-02T04:05:35Z + 2025-05-02T04:05:45Z + 2025-05-02T04:05:57Z + 2025-05-02T04:06:07Z + 2025-05-02T04:06:19Z + 2025-05-02T04:06:29Z + 2025-05-02T04:06:41Z + 2025-05-02T04:06:51Z + 2025-05-02T04:07:03Z + 2025-05-02T04:07:15Z + 2025-05-02T04:07:29Z + 2025-05-02T04:07:41Z + 2025-05-02T04:07:53Z + 2025-05-02T04:08:05Z + 2025-05-02T04:08:15Z + 2025-05-02T04:08:37Z + 2025-05-02T04:08:53Z + 2025-05-02T04:09:09Z + 2025-05-02T04:09:19Z + 2025-05-02T04:09:29Z + 2025-05-02T04:09:39Z + 2025-05-02T04:09:53Z + 2025-05-02T04:10:05Z + 2025-05-02T04:10:33Z + 2025-05-02T04:10:47Z + 2025-05-02T04:10:59Z + 2025-05-02T04:11:11Z + 2025-05-02T04:11:21Z + 2025-05-02T04:12:23Z + 2025-05-02T04:12:33Z + 2025-05-02T04:12:49Z + 2025-05-02T04:12:59Z + 2025-05-02T04:13:25Z + 2025-05-02T04:13:35Z + 2025-05-02T04:14:03Z + 2025-05-02T04:14:23Z + 2025-05-02T04:14:33Z + 2025-05-02T04:14:59Z + 2025-05-02T04:15:11Z + 2025-05-02T04:15:31Z + 2025-05-02T04:15:55Z + 2025-05-02T04:16:17Z + 2025-05-02T04:16:35Z + 2025-05-02T04:16:49Z + 2025-05-02T04:17:05Z + 2025-05-02T04:17:23Z + 2025-05-02T04:17:35Z + 2025-05-02T04:17:49Z + 2025-05-02T04:18:01Z + 2025-05-02T04:18:17Z + 2025-05-02T04:18:27Z + 2025-05-02T04:18:41Z + 2025-05-02T04:18:55Z + 2025-05-02T04:19:13Z + 2025-05-02T04:19:27Z + 2025-05-02T04:19:41Z + 2025-05-02T04:19:51Z + 2025-05-02T04:20:09Z + 2025-05-02T04:20:33Z + 2025-05-02T04:20:55Z + 2025-05-02T04:21:07Z + 2025-05-02T04:21:21Z + 2025-05-02T04:21:35Z + 2025-05-02T04:21:53Z + 2025-05-02T04:22:19Z + 2025-05-02T04:22:35Z + 2025-05-02T04:23:19Z + 2025-05-02T04:24:16Z + 2025-05-02T04:25:08Z + 2025-05-02T04:27:36Z + 2025-05-02T04:27:40Z + 2025-05-02T04:29:41Z + 2025-05-02T04:29:49Z + 2025-05-02T04:29:59Z + 2025-05-02T04:30:09Z + 2025-05-02T04:30:19Z + 2025-05-02T04:30:31Z + 2025-05-02T04:30:41Z + 2025-05-02T04:30:49Z + 2025-05-02T04:30:59Z + 2025-05-02T04:31:09Z + 2025-05-02T04:31:17Z + 2025-05-02T04:31:29Z + 2025-05-02T04:31:39Z + 2025-05-02T04:31:49Z + 2025-05-02T04:31:59Z + 2025-05-02T04:32:09Z + 2025-05-02T04:32:25Z + 2025-05-02T04:32:37Z + 2025-05-02T04:32:45Z + 2025-05-02T04:32:57Z + 2025-05-02T04:33:07Z + 2025-05-02T04:33:15Z + 2025-05-02T04:33:25Z + 2025-05-02T04:33:35Z + 2025-05-02T04:33:43Z + 2025-05-02T04:33:51Z + 2025-05-02T04:33:59Z + 2025-05-02T04:34:11Z + 2025-05-02T04:34:19Z + 2025-05-02T04:34:27Z + 2025-05-02T04:34:37Z + 2025-05-02T04:34:47Z + 2025-05-02T04:34:57Z + 2025-05-02T04:35:05Z + 2025-05-02T04:35:15Z + 2025-05-02T04:35:25Z + 2025-05-02T04:35:35Z + 2025-05-02T04:35:45Z + 2025-05-02T04:35:55Z + 2025-05-02T04:36:07Z + 2025-05-02T04:36:15Z + 2025-05-02T04:36:23Z + 2025-05-02T04:36:31Z + 2025-05-02T04:36:39Z + 2025-05-02T04:36:47Z + 2025-05-02T04:36:55Z + 2025-05-02T04:37:05Z + 2025-05-02T04:37:13Z + 2025-05-02T04:37:23Z + 2025-05-02T04:37:33Z + 2025-05-02T04:37:41Z + 2025-05-02T04:37:51Z + 2025-05-02T04:38:01Z + 2025-05-02T04:38:09Z + 2025-05-02T04:38:19Z + 2025-05-02T04:38:27Z + 2025-05-02T04:38:33Z + 2025-05-02T04:38:41Z + 2025-05-02T04:38:51Z + 2025-05-02T04:38:59Z + 2025-05-02T04:39:09Z + 2025-05-02T04:39:17Z + 2025-05-02T04:39:25Z + 2025-05-02T04:39:35Z + 2025-05-02T04:39:45Z + 2025-05-02T04:39:53Z + 2025-05-02T04:40:01Z + 2025-05-02T04:40:09Z + 2025-05-02T04:40:17Z + 2025-05-02T04:40:25Z + 2025-05-02T04:40:35Z + 2025-05-02T04:40:43Z + 2025-05-02T04:40:53Z + 2025-05-02T04:41:01Z + 2025-05-02T04:41:09Z + 2025-05-02T04:41:18Z + 2025-05-02T04:41:22Z + 2025-05-02T04:41:28Z + 2025-05-02T04:41:42Z + 2025-05-02T04:41:52Z + 2025-05-02T04:41:58Z + 2025-05-02T04:42:08Z + 2025-05-02T04:42:20Z + 2025-05-02T04:42:26Z + + + 1.3001883,1.6;1.2476866,1.4;1.191582,1.3;1.176655,1.3;1.217318,1.2;1.2409953,1.2;1.210112,1.2;1.2435689,1.2;0.0,1.0;0.0,1.0;0.89510196,1.0;0.89510196,1.0;1.0181205,1.3;0.9496625,1.3;1.1812875,1.5;1.0891522,1.5;1.0150322,1.5;1.1586397,1.5;0.6583297,1.5;0.89921975,1.5;1.3506311,1.5;1.3362188,1.4;1.402618,1.4;1.1277564,1.4;1.1658459,1.5;1.0989319,1.4;1.1457716,1.4;1.2816583,1.4;1.2281272,1.4;1.3187183,1.4;1.3079091,1.4;1.5534316,1.4;1.5570347,1.4;1.20445,1.4;1.3454839,1.5;1.3243803,1.4;1.4525461,1.5;1.3943825,1.4;1.1056234,1.5;1.263643,1.4;1.2718786,1.4;1.3027619,1.4;1.2317302,1.3;1.2394512,1.3;0.9455447,1.3;0.8287028,1.3;0.81892306,1.2;1.402618,1.2;2.0619771,1.1;1.1349626,1.4;1.1087117,1.4;1.1087117,1.4;1.2276125,1.1;1.2276125,1.1;1.232245,1.1;1.1869495,1.3;1.3161447,1.3;1.1174619,1.2;1.569388,1.1;1.0809166,1.1;1.1684195,1.3;1.1776844,1.5;0.95841277,1.5;0.82046723,1.5;1.27857,1.4;1.2327597,1.4;1.2569517,1.4;1.2085677,1.5;1.1195208,1.5;1.2245241,1.5;1.2482014,1.5;1.1478306,1.5;1.1668752,1.5;0.9872372,1.5;1.139595,1.5;1.0721664,1.5;1.1349626,1.5;1.1519483,1.6;1.2770258,1.6;1.2291566,1.6;1.1483452,1.6;1.1684195,1.6;1.0088556,1.6;1.0963583,1.6;1.0912111,1.6;1.145257,1.6;1.1313595,1.6;1.1421686,1.5;1.139595,1.4;1.1483452,1.4;0.0,1.4;1.195185,1.4;1.3779113,1.4;1.3485723,1.4;1.3264391,1.4;1.1365067,1.4;1.0917258,1.4;0.9213528,1.2;1.4623258,1.2;1.3604108,1.1;1.3691611,1.1;0.90797,1.1;0.68509525,1.1;0.89046943,1.4;0.9779722,1.4;0.9795164,1.5;0.7293614,1.4;0.8091433,1.5;1.0788578,1.5;0.7206111,1.5;1.0618719,1.4;1.1740814,1.4;0.8621597,1.4;1.0309886,1.4;0.8750278,1.4;1.0330476,1.3;1.0459156,1.3;1.1390803,1.3;0.93473554,1.3;0.7571564,1.2;0.86730695,1.4;1.3068798,1.3;1.2950411,1.2;1.2518045,1.1;1.0505481,1.2;0.9676778,1.2;0.96922195,1.2;1.3629844,1.1;1.5246072,1.1;1.4962975,1.1;1.4499725,1.2;1.788145,1.2;0.9928992,1.3;1.20445,1.3;0.8343647,1.3;0.84414446,1.3;1.0922406,1.3;1.2703345,1.3;1.1354772,1.3;1.0577542,1.3;1.1195208,1.3;0.87399834,1.3;0.9481183,1.4;1.1293006,1.3;1.1159178,1.3;1.1910672,1.3;1.0695928,1.3;1.0335622,1.2;1.1787139,1.2;1.139595,1.3;1.2476866,1.2;1.20445,1.2;1.0279002,1.3;1.1745961,1.3;1.0860639,1.2;1.0443714,1.2;1.1385655,1.2;1.4715909,1.1;1.1694489,1.0;0.6933308,1.0;1.213715,1.0;1.4988711,1.1;1.1447423,1.0;1.3094534,1.1;1.0294445,1.3;1.0119439,1.3;1.0649602,1.3;0.9939286,1.3;0.7139197,1.1;0.7139197,1.1;0.7139197,1.1;0.7139197,1.1;0.3567025,1.3;0.3567025,1.3;0.8194378,1.4;0.92238224,1.5;0.83642364,1.4;1.0279002,1.4;0.0,1.5;0.24809611,1.4;0.4519261,1.5;0.6814922,1.4;0.5116339,1.3;0.694875,1.3;0.6161225,1.2;0.0,1.3;0.6974486,1.6;0.8966461,1.5;0.7602447,1.5;0.7046547,1.6;0.7020811,1.6;0.82818806,1.5;0.8595861,1.5;0.87811613,1.5;0.9563539,1.5;0.19199139,1.5;0.58060664,1.5;0.58060664,1.5;0.6871542,1.5;0.6871542,1.5;1.1879789,1.4;0.8652481,1.4;0.972825,1.5;0.8477475,1.4;1.0484892,1.5;0.55178225,1.5;0.9995906,1.5;0.787525,1.4;0.40457165,1.3;0.79627526,1.4;0.7823778,1.5;0.89510196,1.6;0.37677667,1.5;0.8909842,1.4;1.0912111,1.5;0.87914556,1.5;0.5193547,1.5;0.9661336,1.6;0.7365675,1.5;0.7952458,1.5;0.9522361,1.5;0.74892086,1.5;0.5996514,1.4;0.87966025,1.6;0.657815,1.5;0.6964192,1.5;0.91311723,1.6;0.79730475,1.5;1.0793725,1.5;1.2358481,1.5;0.7530386,1.5;1.0145175,1.5;0.6722272,1.5;1.1148883,1.5;0.97900164,1.5;0.6516383,1.5;0.0,1.6;0.76796556,1.5;0.7669361,1.5;0.91157305,1.5;1.0222384,1.5;0.93679446,1.5;0.6454617,1.5;0.9872372,1.5;0.9105436,1.5;0.85649776,1.5;0.80451083,1.5;0.7221553,1.5;1.0222384,1.6;1.2512897,1.5;1.1184914,1.5;1.0315033,1.4;0.91311723,1.4;0.9095142,1.5;0.7617889,1.4;0.85392416,1.5;0.59862196,1.5;0.8570125,1.5;1.0026789,1.5;1.2584958,1.4;0.9110583,1.5;1.0495186,1.5;0.9630453,1.4;1.09327,1.4;0.95841277,1.5;1.2847466,1.4;1.1668752,1.5;1.1756256,1.5;1.38975,1.5;1.1195208,1.5;1.2178328,1.4;1.0685633,1.5;0.84208554,1.4;0.69178665,1.4;0.8209819,1.4;0.98157525,1.4;1.1298152,1.4;1.1061381,1.4;1.1818023,1.4;1.1478306,1.4;1.2178328,1.3;0.85804194,1.4;0.8410561,1.3;1.0258414,1.3;0.99495804,1.4;0.8585567,1.3;1.0942994,1.4;1.2373922,1.4;0.9697367,1.4;0.70259583,1.4;1.2687902,1.4;0.0,1.3;1.0335622,1.4;1.1576103,1.5;1.3912941,1.4;1.5421078,1.3;1.2219505,1.4;1.0582689,1.4;0.77053916,1.4;1.0912111,1.4;1.0608425,1.5;1.0345917,1.5;1.07474,1.5;1.384088,1.4;1.1709931,1.5;1.0474597,1.5;0.861645,1.3;0.7339939,1.5;0.98209,1.5;1.0726811,1.5;0.88738114,1.4;1.2219505,1.4;1.0330476,1.4;1.1349626,1.4;1.1977586,1.4;1.2971,1.3;0.54097307,1.4;0.8410561,1.4;0.9476036,1.4;0.88841057,1.4;0.6665653,1.4;0.72627306,1.5;1.0170912,1.5;0.5955336,1.4;0.73039085,1.4;0.69796336,1.5;1.0608425,1.5;1.1411391,1.5;1.2548928,1.5;1.2394512,1.4;1.3140858,1.5;1.2204064,1.4;1.0973878,1.4;1.0623866,1.5;1.1956997,1.5;1.0556953,1.5;1.1699636,1.5;1.1956997,1.4;1.126727,1.4;1.0505481,1.5;0.8601008,1.4;0.99495804,1.4;1.0639309,1.4;1.0428272,1.5;1.1468011,1.5;1.1164325,1.4;1.09327,1.4;0.98929614,1.4;0.89973444,1.5;1.0814314,1.4;1.1679047,1.4;1.0320181,1.4;1.0979025,1.5;1.1385655,1.4;1.1231239,1.4;1.0824609,1.4;1.2152592,1.4;1.2008469,1.4;1.2420248,1.4;1.1009909,1.5;1.1009909,1.4;1.2018764,1.4;0.88068974,1.4;0.93164724,1.4;1.0644456,1.4;1.2754817,1.4;1.1812875,1.4;1.2301861,1.4;1.0454009,1.4;0.7530386,1.4;1.0170912,1.4;1.1066527,1.4;1.0695928,1.3;1.0325328,1.4;1.0737106,1.4;1.2945263,1.4;0.0,1.2;1.2281272,1.3;1.2657019,1.3;1.154522,1.2;1.4592375,1.3;1.0505481,1.4;1.161728,1.4;1.1174619,1.5;1.55652,1.4;1.4134272,1.3;1.3398219,1.3;1.078343,1.3;1.0356212,1.2;0.8091433,1.3;0.8106875,1.3;0.60788697,1.4;0.6902425,1.5;1.2687902,1.5;0.7664214,1.3;0.9681925,1.4;0.67994803,1.3;0.68355113,1.5;0.94605947,1.5;0.66605055,1.5;0.8842928,1.5;0.6629622,1.5;0.85238,1.5;0.0,1.3;0.95841277,1.1;0.9038522,1.1;0.6238433,1.3;0.71289027,1.3;0.64752054,1.3;0.94142693,1.3;0.83899724,1.4;0.78649557,1.4;0.4004539,1.4;0.7648772,1.3;0.58420974,1.1;0.9362797,1.3;0.66862416,1.3;0.9846636,1.3;1.5549759,1.2;1.8483675,1.1;1.0176058,1.4;0.96407473,1.4;1.0917258,1.3;0.6104606,1.4;0.87657195,1.3;0.9980464,1.4;0.83385,1.4;0.98209,1.2;1.0824609,1.2;0.8909842,1.3;0.96922195,1.4;0.9069406,1.5;1.0515774,1.4;1.0268708,1.4;1.1570956,1.4;1.0335622,1.4;1.0984172,1.4;0.8225261,1.4;0.9100289,1.3;0.73965585,1.4;0.49722168,1.2;0.6439175,1.2;0.861645,1.0;1.0438566,1.2;1.2337892,1.2;1.030474,1.2;0.9095142,1.2;0.97642803,1.2;1.1256975,1.2;0.0,1.2;0.0,1.2;1.2620989,1.2;1.2620989,1.2;1.3135711,1.3;1.1622428,1.3;1.0829755,1.3;1.0701075,1.3;1.2029058,1.3;1.1200355,1.2;1.139595,1.3;1.1637869,1.2;1.1354772,1.3;1.1498895,1.2;0.8920136,1.3;1.1066527,1.3;1.1838611,1.3;1.1179767,1.3;1.1426834,1.3;1.0963583,1.3;1.2147444,1.3;1.4149714,1.2;1.1555514,1.2;1.1627575,1.2;1.0963583,1.2;1.1658459,1.2;1.1555514,1.2;1.2054795,1.2;0.935765,1.3;1.1818023,1.2;1.1107706,1.2;1.2435689,1.3;1.2198917,1.2;1.1560661,1.2;1.2214358,1.2;1.0397389,1.2;1.1164325,1.2;1.0546658,1.2;0.9403975,1.2;1.0577542,1.2;0.5996514,1.2;0.99238443,1.1;0.4143514,1.3;1.0850345,1.2;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.2;0.0,1.2;0.5193547,1.2;1.1751108,1.2;1.1838611,1.1;1.3109975,1.2;1.24151,1.2;1.2868055,1.2;1.1514336,1.1;1.0515774,1.0;1.1282711,1.0;1.1534925,1.3;1.22298,1.1;1.1576103,1.0;0.7159786,1.2;0.9959875,1.2;1.2250389,1.3;0.75355333,1.3;1.5076214,1.3;1.7763064,1.3;1.1982733,1.2;0.8343647,1.2;1.2456278,1.2;1.3789408,1.2;1.7531439,1.2;1.4062212,1.2;0.8101728,1.2;0.8235555,1.3;1.2168033,1.2;1.1956997,1.1;1.210112,1.1;1.1854053,1.1;1.4237217,1.2;1.2080531,1.2;1.1884936,1.2;1.2682755,1.2;1.4623258,1.2;1.4942386,1.2;1.5647556,1.2;1.3372483,1.1;1.0371653,1.3;1.0706222,1.3;1.0181205,1.3;1.1148883,1.3;1.1138589,1.2;0.85083586,1.3;0.8760572,1.3;0.88635164,1.3;0.9645894,1.3;0.69436026,1.3;0.8909842,1.2;0.82818806,1.2;1.0309886,1.2;1.2332745,1.2;1.31563,1.2;1.0855491,1.2;1.0634161,1.3;1.0520922,1.3;1.1318742,1.2;1.247172,1.2;0.92804414,1.3;0.9980464,1.2;1.0731958,1.2;0.90436697,1.3;0.93730915,1.3;0.75458276,1.3;0.7200964,1.1;0.7921575,1.3;0.935765,1.2;0.67274195,1.2;1.0757694,1.2;0.8112022,1.3;0.811717,1.3;1.0845197,1.3;0.9002492,1.3;1.01915,1.3;0.8199525,1.3;0.9512067,1.3;1.2518045,1.2;1.250775,1.2;1.1848905,1.2;1.1524631,1.2;1.1118,1.2;0.8559831,1.2;0.8703953,1.3;0.8075992,1.2;0.7756864,1.2;0.63156414,1.2;0.98569304,1.2;1.096873,1.2;1.0335622,1.2;1.0016495,1.1;0.9378239,1.0;1.0186353,1.2;0.92804414,1.1;1.1030498,1.2;0.6645064,1.3;0.53737,1.4;0.8359089,1.3;1.028415,1.3;1.0103997,1.2;0.6161225,1.3;1.2420248,1.3;0.7592153,1.3;0.7592153,1.3;0.9769428,1.3;0.9769428,1.3;1.0242972,1.3;1.0505481,1.3;1.1509188,1.3;0.94657415,1.3;1.3532047,1.3;0.92804414,1.2;1.454605,1.3;1.1066527,1.3;0.9419417,1.2;1.1560661,1.2;0.9445153,1.2;0.9481183,1.2;1.0392241,1.2;1.3418808,1.3;0.64031446,1.3;1.139595,1.3;0.74634725,1.3;0.8436297,1.3;1.0536364,1.3;2.207129,1.3;0.861645,1.3;1.1864347,1.3;0.4869272,1.3;1.0181205,1.3;0.6989928,1.2;0.806055,1.3;0.9419417,1.3;0.5270755,1.3;1.006282,1.3;0.70722836,1.3;0.87451303,1.3;0.83230585,1.3;1.8190284,1.4;0.77465695,1.4;0.50339836,1.4;0.9738544,1.3;0.5538411,1.3;0.67685974,1.3;0.8050256,1.3;0.6186961,1.3;0.5903864,1.3;0.6830364,1.3;0.806055,1.4;0.5595031,1.4;0.8652481,1.3;1.9590328,1.4;1.0798873,1.4;1.145257,1.3;0.71958166,1.3;1.4293836,1.4;1.3192331,1.3;1.2873203,1.3;0.84980637,1.3;1.1596692,1.3;1.0294445,1.2;1.1339331,1.3;0.0,1.2;0.46222055,1.3;0.4936186,1.3;1.0021641,1.2;0.9486331,1.2;1.1102558,1.2;0.83642364,1.2;0.45038193,1.1;0.63413775,1.3;0.8909842,1.3;0.8909842,1.3;0.8909842,1.3;0.8909842,1.3;0.73450863,1.4;0.73450863,1.4;1.2620989,1.4;1.0392241,1.3;1.0778283,1.3;1.2106267,1.3;1.1375362,1.4;1.013488,1.4;1.1895231,1.3;1.1684195,1.3;1.2440836,1.4;1.0891522,1.3;0.8436297,1.4;1.1416539,1.3;0.8667922,1.2;1.0906963,1.2;0.0,1.0;1.121065,1.3;0.8142906,1.4;1.0325328,1.4;1.0103997,1.4;1.1236386,1.3;1.1725372,1.4;1.328498,1.5;1.1370214,1.4;1.2579811,1.4;1.639905,1.4;1.4834294,1.4;1.0026789,1.5;1.250775,1.5;1.4170303,1.5;1.1725372,1.4;1.2317302,1.4;0.98826665,1.3;1.3562931,1.2;1.3459986,1.3;1.2986442,1.3;1.1781992,1.3;1.1586397,1.3;1.2255536,1.3;1.0258414,1.1;1.2327597,1.0;1.226583,1.0;1.5812267,1.2;1.7752769,1.3;1.1658459,1.3;1.4520314,1.3;1.1550367,1.2;1.263643,1.1;1.2183475,1.1;1.2435689,1.1;1.33416,1.1;1.3218067,1.2;0.9362797,1.1;1.2888645,1.1;1.0809166,1.3;1.4818853,1.2;1.8210872,1.2;1.9147667,1.1;1.3377631,1.1;1.5997567,1.2;1.636302,1.3;1.4890914,1.3;1.42681,1.3;1.3974708,1.1;0.95995694,1.1;1.1550367,1.1;1.2945263,1.1;1.3109975,1.1;1.3109975,1.1;1.2734228,1.1;1.2790847,1.1;1.2847466,1.1;1.2193769,1.1;1.2445984,1.1;1.532328,1.3;1.1329036,1.4;1.5539464,1.4;2.525742,1.7;2.138671,1.3;1.009885,1.4;1.274967,1.4;1.0639309,1.5;0.95738333,1.3;0.95738333,1.3; + + + 1746151381432:pause;1746151405474:resume;1746151755413:pause;1746151769976:resume;1746152954486:pause;1746152958575:resume;1746153006985:pause;1746153008996:resume;1746153588975:pause;1746153598993:resume;1746156566031:pause;1746156569990:resume;1746157040019:pause;1746157043973:resume;1746157084008:pause;1746157088014:resume;1746157120002:pause;1746157145993:resume;1746157191512:pause;1746157208253:resume;1746157241954:pause;1746157323992:resume;1746157356006:pause;1746157356022:resume;1746157454008:pause;1746157462025:resume;1746158711963:pause;1746158723957:resume;1746159856006:pause;1746159908028:resume;1746160056012:pause;1746160060003:resume;1746160946045:pause + + + +
+
+ + \ No newline at end of file diff --git a/public/vaults/Demo/FolderA/BaseExample.base b/public/vaults/Demo/FolderA/BaseExample.base new file mode 100644 index 0000000..4c9a2df --- /dev/null +++ b/public/vaults/Demo/FolderA/BaseExample.base @@ -0,0 +1,13 @@ +formulas: + Test: "" +views: + - type: table + name: Table + order: + - file.name + - file.backlinks + - file.folder + - formula.Test + sort: + - property: formula.Test + direction: DESC diff --git a/public/vaults/Demo/FolderA/Canvas.canvas b/public/vaults/Demo/FolderA/Canvas.canvas new file mode 100644 index 0000000..23d5a19 --- /dev/null +++ b/public/vaults/Demo/FolderA/Canvas.canvas @@ -0,0 +1,9 @@ +{ + "nodes":[ + {"id":"71c0494c42075307","x":-320,"y":-180,"width":250,"height":60,"type":"text","text":"Test"}, + {"id":"bcbad51e6bd26e1a","x":-70,"y":-40,"width":250,"height":60,"type":"text","text":"Step 2"} + ], + "edges":[ + {"id":"192a08b8f0e0b75e","fromNode":"71c0494c42075307","fromSide":"right","toNode":"bcbad51e6bd26e1a","toSide":"left"} + ] +} \ No newline at end of file diff --git a/public/vaults/Demo/FolderA/SubFolder/Abilities.md b/public/vaults/Demo/FolderA/SubFolder/Abilities.md new file mode 100644 index 0000000..a637d34 --- /dev/null +++ b/public/vaults/Demo/FolderA/SubFolder/Abilities.md @@ -0,0 +1,296 @@ +--- +tags: + - test +uuid: 115e245b-8b76-43b8-9728-472b60e47705 +aliases: + - 215e245b-8b76-43b8-9728-472b60e47706 +--- + +# Welcome to Helenite + +This is a modern React-based Obsidian Vault viewer. + +## Key Features + +- 🎨 **Modern Interface** - Built with React 18 + TypeScript +- 📱 **Responsive Design** - Perfectly adapted for desktop, tablet, and mobile devices +- ⚡ **High Performance** - Built with Vite 5 +- 🎯 **Focused Reading** - Read-only mode for distraction-free content browsing + +## Useful Links + +Here are some useful external links: +- [React Documentation](https://react.dev/) - Learn React framework +- [TypeScript Handbook](https://www.typescriptlang.org/docs/) - TypeScript official documentation +- [Obsidian Website](https://obsidian.md) - Knowledge management tool +- [GitHub Repository](https://github.com/anthropics/claude-code) - Project source code + +## Obsidian Syntax Support + +### Internal Links +[[../../Usages|Usages]] +[[../../Welcome|Welcome]] + +### Tag System +Related tags: #react #markdown #obsidian #abc `#test` + +### Highlight +This is an example of ==important highlighted content==. + +### Callouts + +> [!info] Information +> This is an information callout block. + +> [!tip] Usage Tips +> You can use the file browser on the left to navigate different documents. + +> [!warning] Important Note +> This is read-only mode. File content cannot be edited. + +> [!note] Technical Architecture +> - React 18 + TypeScript +> - Mantine UI 7 + Tailwind CSS +> - Zustand State Management +> - Unified + Remark Markdown Processing + +> [!note] Technical Architecture A +> 1. React 18 + TypeScript +> 2. Mantine UI 7 + Tailwind CSS + +## Mathematical Formulas + +Inline formula: $E = mc^2$ + +Block-level formula: +$$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$ + +## Code Block Example + +```javascript +// React Component Example +function MarkdownViewer() { + const [content, setContent] = useState(''); + + useEffect(() => { + markdownProcessor.processWithMetadata(content) + .then(result => { + setRenderedContent(result.html); + }); + }, [content]); + + return
{renderedContent}
; +} +``` + +## Charts and Visualizations + +### Mermaid Flowchart + +```mermaid +graph TB + A[User Request] --> B[API Route] + B --> C{Authentication Check} + C -->|Pass| D[Data Processing] + C -->|Fail| E[Return Error] + D --> F[Response Data] + F --> G[Frontend Rendering] +``` + +### System Architecture Diagram + +```mermaid +graph LR + subgraph "前端层" + A[React App] + B[Zustand Store] + C[API Hooks] + end + + subgraph "API 层" + D[FileTree API] + E[Graph API] + F[File API] + G[Search API] + end + + subgraph "数据层" + H[metadata.json] + I[Markdown 文件] + J[附件资源] + end + + A --> B + B --> C + C --> D + C --> E + C --> F + C --> G + D --> H + E --> H + F --> I + G --> H + F --> J +``` + +## Hiking Route Tracking + +### GPX Track File Test + +#### Lu Yu Ancient Path Loop (Inline GPX) + +```gpx + + + + Lu Yu Ancient Path Loop + A classic loop route starting from Shaokang Village, Wuqing District, Huzhou + + + Lu Yu Ancient Path Hike + Total distance 9 km, elevation gain 400 m + + + 50 + Shaokang Village Starting Point + + + 120 + Tea Garden Viewpoint 1 + + + 200 + Mountain Ridge + + + 350 + Highest Point + + + 280 + Tea Garden Viewpoint 2 + + + 150 + Downhill Road + + + 50 + Back to Starting Point + + + + + 50 + Parking Lot + Village entrance parking lot, free parking available + + + 350 + Mountain Top Viewpoint + 360-degree panoramic view, overlooking the entire tea garden terraces + + +``` + +#### YAMAP Hiking Route (External GPX File) + +![[Attachments/yamap_2025-04-02_08_48.gpx]] + +### KML File Test + +#### City Stroll Route + +![[Attachments/中西citywalk.kml]] + +#### Sheshan Greenway Route + +![[Attachments/东西佘山含地铁绿道.kml]] + +#### Red Leaves + +![[Attachments/红叶尚湖.gpx]] + +#### a + +![[Attachments/金牛道拦马墙到普安镇.kml]] + +![[Attachments/金牛道拦马墙到普安镇.gpx]] + +## Task List + +- [x] Complete API Architecture Refactoring +- [x] Implement FileTree API +- [x] Implement Graph API +- [x] Implement File API +- [ ] Implement Search API +- [ ] Implement Tag API +- [ ] Add Search Functionality +- [ ] Optimize Mobile Experience + +## References and Footnotes + +Here are some important resources [^1] and technical documentation [^2]. + +[^1]: React Documentation: https://react.dev +[^2]: TypeScript Handbook: https://www.typescriptlang.org/docs/ + +## Table Support + +| Feature | Status | Priority | +|---------|--------|----------| +| Dark Mode | ✅ Done | High | +| Responsive Layout | ✅ Done | High | +| File Tree | ✅ Done | High | +| Search Functionality | ⏳ In Progress | Medium | +| Tag System | ⏳ In Progress | Medium | +| Theme Customization | ❌ Todo | Low | + +## Multimedia Content + +### Pictures +![[Attachments/Pasted image 20250902131727.png]] +### Horizontal Line +--- + +## Fun Stuff + +[FIRE (Financial Independence, Retire Early) Early Retirement Financial Planning Calculator](https://fire.freedeaths.com) + +## Contact + +For any messages or feedback, please email [freedeaths@gmail.com](mailto:freedeaths@gmail.com). + +> [!success] Test Completed +> This document includes most Markdown syntax and Obsidian features, making it ideal for functionality testing and demonstrations. + +--- + +Select other files from the left sidebar to explore more content. + + + +## Pictures + +![[../../Attachments/inversed_mt_fuji.png]] + +## Tracks + +[Leaflet plugin](https://github.com/javalent/obsidian-leaflet) + +```leaflet +id: 鹤见岳 +lat: 33.28 +long: 131.43 +defaultZoom: 14 +maxZoom: 20 +gpx: [[Attachments/yamap_2025-04-02_08_48.gpx]] +gpxMarkers: + start: start + waypoint: waypoint + end: end +``` + +KML + + diff --git a/public/vaults/Demo/FolderA/SubFolder/Embedded.md b/public/vaults/Demo/FolderA/SubFolder/Embedded.md new file mode 100644 index 0000000..c13435f --- /dev/null +++ b/public/vaults/Demo/FolderA/SubFolder/Embedded.md @@ -0,0 +1,17 @@ +# Embedded Media Examples + +## PDF + +![[../../Attachments/Get_Started_With_Smallpdf.pdf|Get_Started_With_Smallpdf]] + +multipage + +![[Attachments/c4611_sample_explain.pdf]] + +## MP4 + +![[../../Attachments/file_example_MP4_480_1_5MG.mp4|file_example_MP4_480_1_5MG]] + +## MP3 + +![[../../Attachments/file_example_MP3_700KB.mp3|file_example_MP3_700KB]] \ No newline at end of file diff --git a/public/vaults/Demo/FolderA/TRACK_SYNTAX.md b/public/vaults/Demo/FolderA/TRACK_SYNTAX.md new file mode 100644 index 0000000..47ed097 --- /dev/null +++ b/public/vaults/Demo/FolderA/TRACK_SYNTAX.md @@ -0,0 +1,232 @@ +# 轨迹地图语法支持 + +remark-track 插件支持以下所有轨迹相关的 Markdown 语法,全部转换为统一的地图组件。 + +## 🗺️ 支持的语法类型 + +### 1. 内联轨迹数据 + +#### GPX 内联数据(不再支持) + +```gpx + + + 我的轨迹 + + 50 + 52 + + + +``` + +#### KML 内联数据(不再支持) + +```kml + + + + + 我的位置 + 116.397,39.906,0 + + + +``` + +### 2. 文件引用(推荐) + +#### Obsidian 嵌入语法 + +![[Attachments/yamap_2025-04-02_08_48.gpx]] +![[Attachments/东西佘山含地铁绿道.kml]] +![[Attachments/红叶尚湖.gpx]] + + +#### Obsidian 链接语法 + +[[Attachments/金牛道拦马墙到普安镇.gpx]] +[[Attachments/中西citywalk.kml]] +[[Attachments/金牛道拦马墙到普安镇.kml]] + + +> **注意**:无论是 `![[]]` 嵌入还是 `[[]]` 链接,remark-track 都会将 `.gpx` 和 `.kml` 文件转换为地图组件 + +### 3. Leaflet 配置(特殊处理) + +Leaflet 代码块支持灵活的 YAML 配置,其中 `gpx` 字段可以是: + +#### 单个 GPX 文件 + +```leaflet +gpx: [[Attachments/yamap_2025-04-02_08_48.gpx]] +zoom: 12 +center: [31.4, 120.7] +``` + +#### GPX 文件列表 + +```leaflet +gpx: + - [[Attachments/红叶尚湖.gpx]] + - [[Attachments/金牛道拦马墙到普安镇.gpx]] + - [[Attachments/yamap_2025-04-02_08_48.gpx]] + - [[Attachments/东西佘山含地铁绿道.kml]] +zoom: 10 +showAll: true +``` + +### 4. 足迹聚合地图(不再支持) + +```footprints +userInputs: + - beijing + - tokyo + - new_york +attachmentsPath: "@Attachments" +includeTracks: true +``` + +## 🔄 插件处理流程 + +### AST 转换过程 + +``` +原始 Markdown + ↓ +trackMapsPlugin (remark) + ↓ +生成统一的 trackMap AST 节点 + ↓ +trackMapRenderer (rehype) + ↓ +转换为 React 组件占位符 + ↓ +最终 HTML + 组件配置 +``` + +### 数据结构 + +插件生成的 `TrackData` 结构: + +```typescript +interface TrackData { + id: string; + type: 'single-track' | 'multi-track' | 'leaflet' | 'footprints'; + format?: 'gpx' | 'kml' | 'leaflet'; + source: 'inline' | 'file' | 'mixed'; + + // 单个轨迹 + content?: string; // 内联数据 + filePath?: string; // 文件路径 + + // Leaflet 多轨迹 + leafletConfig?: LeafletConfig; + tracks?: SingleTrack[]; + + // 足迹聚合 + config?: FootprintsConfig; +} +``` + +## 🎨 HTML 输出示例 + +### 单个轨迹 +```html +
+
+ 📍 Loading map... +
+
+``` + +### Leaflet 多轨迹 +```html +
+
+ 📍 Loading map... +
+
+``` + +## 🔧 配置选项 + +```typescript +const trackOptions: TrackMapsPluginOptions = { + baseUrl: '/vault', // 文件基础 URL + currentFilePath: '/trips/' // 当前文件路径(用于相对路径解析) +}; +``` + +## 🧪 测试用例 + +### 基础语法测试 + +# 测试文档 + +文件嵌入: +![[Attachments/yamap_2025-04-02_08_48.gpx]] + +文件链接: +[[Attachments/东西佘山含地铁绿道.kml]] + +Leaflet 单文件: + +```leaflet +gpx: [[Attachments/红叶尚湖.gpx]] +``` + +Leaflet 多文件: + +```leaflet +gpx: + - [[Attachments/金牛道拦马墙到普安镇.gpx]] + - [[Attachments/中西citywalk.kml]] +``` + +足迹聚合: + +```footprints +userInputs: ["tokyo", "osaka"] +``` + +### 预期输出 + +插件应该识别并转换: +- ✅ 1 个内联 GPX 轨迹 +- ✅ 1 个 GPX 文件嵌入 +- ✅ 1 个 KML 文件链接 +- ✅ 1 个 Leaflet 单文件配置 +- ✅ 1 个 Leaflet 多文件配置(2个轨迹) +- ✅ 1 个足迹聚合配置 + +总共生成 6 个 `trackMap` AST 节点。 + +## 🚀 性能优化 + +### 文件引用处理 +- Leaflet 配置中的文件列表会被展开为独立的 `SingleTrack` 对象 +- 支持相对路径和绝对路径解析 +- 文件加载延迟到 rehype 阶段,避免阻塞 AST 解析 + +### 错误处理 +- YAML 解析失败时优雅降级 +- 无效文件引用时保留原始文本 +- 支持部分配置缺失的情况 + +### 扩展性 +- 新的轨迹格式可以通过扩展 `format` 类型支持 +- 新的配置语法可以通过新的代码块类型添加 +- 插件架构支持自定义处理器注入 \ No newline at end of file diff --git a/public/vaults/Demo/FolderA/linkB.md b/public/vaults/Demo/FolderA/linkB.md new file mode 100644 index 0000000..e69de29 diff --git a/public/vaults/Demo/Usages.md b/public/vaults/Demo/Usages.md new file mode 100644 index 0000000..e954f90 --- /dev/null +++ b/public/vaults/Demo/Usages.md @@ -0,0 +1,17 @@ +## Configurations + +Attachments to `in the folder specified below` and named to `Attachments` + +![[Attachments/Pasted image 20250902131727.png]] + +## Plugin + +![[Attachments/Pasted image 20250902132222.png]] +![[Attachments/Pasted image 20250902132433.png]] +![[Attachments/Pasted image 20250902132358.png]] + +## TODO + +- Support **Base** +- Support **Canvas** +- \ No newline at end of file diff --git a/public/vaults/Demo/Welcome.md b/public/vaults/Demo/Welcome.md new file mode 100644 index 0000000..08a6dd8 --- /dev/null +++ b/public/vaults/Demo/Welcome.md @@ -0,0 +1,5 @@ +This is your new *vault*. + +Make a note of something, [[Usages]], [[FolderA/SubFolder/Abilities|Abilities]] or try [the Importer](https://help.obsidian.md/Plugins/Importer)! + +When you're ready, delete this note and make the vault your own. \ No newline at end of file diff --git a/public/vaults/Demo/devtools.md b/public/vaults/Demo/devtools.md new file mode 100644 index 0000000..bf29652 --- /dev/null +++ b/public/vaults/Demo/devtools.md @@ -0,0 +1,20 @@ +# Development Tools + +This page is for accessing development tools. + +To use the development tools: +1. Click the 🛠️ button at the bottom right corner of the page +2. Select the tool you want to use from the panel + +## Available Tools + +- **Markdown Processor Test** - Test the new Markdown processor with various features including: + - Mermaid diagrams + - GPX/KML track maps + - Obsidian links and tags + - Math formulas + - Callouts and highlights + +## Note + +The development tools are only available in development mode and will not appear in production builds. \ No newline at end of file diff --git a/public/vaults/Demo/helenite-docs/README.md b/public/vaults/Demo/helenite-docs/README.md new file mode 100644 index 0000000..2544bbf --- /dev/null +++ b/public/vaults/Demo/helenite-docs/README.md @@ -0,0 +1,49 @@ +# 📚 Helenite 技术文档 + +欢迎来到 Helenite 的技术文档!这些文档现在作为 Demo vault 的一部分,可以直接通过 Helenite 查看,体现了"文档即演示"的理念。 + +## 🏗️ 核心架构 + +### [[core/services-architecture|服务架构概览]] +完整的服务分层架构设计,包含 18 个服务的职责划分、依赖关系和初始化流程。 + +**核心特性:** +- 🎭 VaultService 协调层统一业务接口 +- ⚡ MarkdownProcessor 直接穿透服务层(unified 最佳实践) +- 🔧 基础设施层零依赖设计 +- 📊 单向依赖原则,5 层清晰分工 + +### [[core/map-and-tracks-analysis|地图和轨迹系统]] +统一地图组件设计,支持单个轨迹和足迹地图的双模式渲染。 + +**核心特性:** +- 🗺️ 单个组件 + 双输入数组(tracks[] + locations[]) +- 📍 访问状态区分(去过 vs 想去) +- 🎯 智能UI适配(数据驱动的控件显示) +- 🌍 多数据源聚合(用户输入 + 照片EXIF + 轨迹文件) + +### [[core/markdown-and-plugins|Markdown 渲染和插件系统]] +基于 unified 生态系统的完整 AST 处理流水线设计。 + +**核心特性:** +- ⚡ unified 标准最佳实践(remarkParse → remarkRehype → rehypeReact) +- 🔗 Obsidian 语法完整支持(wiki链接、标签、高亮等) +- 🗺️ TrackMap & Footprints 地图插件 +- 📊 数学公式和 Mermaid 图表支持 + +## 🎯 设计原则 + +1. **单向依赖**: 高层依赖低层,绝不反向 +2. **职责明确**: 每个服务有清晰的边界 +3. **可测试性**: 依赖注入,便于单元测试 +4. **扩展性**: 插件化设计,易于功能扩展 + +## 🚀 快速导航 + +- **理解服务架构** → [[core/services-architecture#🔍-快速查找|服务快速查找]] +- **实现地图功能** → [[core/map-and-tracks-analysis#使用示例|地图组件使用示例]] +- **开发 Markdown 插件** → [[core/markdown-and-plugins#remark-插件-mdast-处理|remark 插件开发]] + +--- + +**💡 提示**: 这些文档通过 Helenite 查看时,所有的 wiki 链接都是可以点击的!这体现了 Helenite 作为知识管理系统的强大能力。 \ No newline at end of file diff --git a/public/vaults/Demo/helenite-docs/cache-README.md b/public/vaults/Demo/helenite-docs/cache-README.md new file mode 100644 index 0000000..51281ff --- /dev/null +++ b/public/vaults/Demo/helenite-docs/cache-README.md @@ -0,0 +1,329 @@ +# Helenite 缓存系统 + +## 概述 + +Helenite 缓存系统是一个**零侵入式**的服务增强框架,为现有服务提供透明的缓存功能,无需修改原始服务代码。 + +## 🎯 设计目标 + +1. **零侵入**: 原始服务无需修改即可享受缓存加速 +2. **服务无感**: 业务代码完全透明,接口保持不变 +3. **持久化缓存**: 基于 IndexedDB 的跨会话持久化缓存,支持离线访问 +4. **高性能**: LRU 淘汰策略 + TTL 过期机制,支持大容量存储 +5. **灵活配置**: 支持方法级别的缓存策略和条件控制 +6. **统一管理**: CacheManager 提供全局缓存治理 + +## 🏗️ 架构设计 + +``` +┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ +│ 业务组件 │───▶│ 缓存代理服务 │───▶│ 原始服务 │ +│ (Components) │ │ (Cached Proxy) │ │ (Raw Service) │ +└─────────────────┘ └─────────────────┘ └─────────────────┘ + │ │ │ + │ ┌─────────────────┐ │ + └─────────────▶│ CacheManager │◀─────────────┘ + │ (全局管理) │ + └─────────────────┘ + │ + ┌─────────────────┐ + │ IndexedDBCache │ + │ (持久化+LRU+TTL) │ + └─────────────────┘ +``` + +## 🚀 核心特性 + +### 1. TypeScript Proxy 动态代理 + +```typescript +// 零侵入式代理创建 +const cachedService = createCachedService( + originalService, // 原始服务 + cache, // 缓存实例 + namespace, // 命名空间 + config // 缓存配置 +); +``` + +### 2. 灵活的缓存配置 + +```typescript +const cacheConfig = cacheConfig() + .method('readFile') + .ttl(600000) // 10分钟 + .condition((path: string) => path.endsWith('.md')) + .keyGenerator((path: string) => `file:${path}`) + .and() + .method('getFileInfo') + .ttl(300000) // 5分钟 + .build(); +``` + +### 3. 高性能持久化缓存 + +- **IndexedDB 存储**: 跨会话持久化,支持离线访问 +- **LRU 淘汰策略**: 最近最少使用算法,基于访问时间索引 +- **TTL 过期机制**: 支持毫秒级精度的自动过期清理 +- **大容量支持**: 突破内存限制,可存储 GB 级数据 +- **统计监控**: 命中率、存储使用等指标 +- **命名空间**: 隔离不同服务的缓存数据 +- **异步优化**: 完全异步 API,不阻塞 UI 线程 + +## 📁 文件结构 + +``` +src/services/infra/ +├── cache-README.md # 本文档 +├── IndexedDBCache.ts # IndexedDB 持久化缓存实现 +├── CacheProxyFactory.ts # 代理工厂和配置建造器 +└── interfaces/ + └── ICacheService.ts # 缓存服务接口 + +src/services/ +├── CacheManager.ts # 全局缓存管理器 +├── __tests__/ + ├── CacheManager.test.ts # 单元测试 (19个测试) + ├── CacheManager.integration.test.ts # 集成测试 + ├── CacheManager.simple.test.ts # 简化集成测试 + ├── CacheUsageExample.ts # 使用示例 + └── CacheUsageExample.test.ts # 示例测试 (9个测试) +``` + +## 💻 使用指南 + +### 基础用法 + +```typescript +import { CacheManager } from '../CacheManager'; +import { StorageService } from '../infra/StorageService'; + +// 1. 创建缓存管理器 +const cacheManager = new CacheManager({ + maxSize: 1000, + defaultTTL: 300000 // 5分钟 +}); + +// 2. 创建原始服务 +const storageService = new StorageService({ basePath: '/vault' }); + +// 3. 创建缓存代理 +const cachedStorage = cacheManager.createCachedStorageService(storageService); + +// 4. 使用缓存服务 - 接口完全相同 +const content = await cachedStorage.readFile('/document.md'); +const info = await cachedStorage.getFileInfo('/document.md'); +``` + +### 应用级集成 + +```typescript +export class ApplicationServiceContainer { + private cacheManager: CacheManager; + private cachedStorage: IStorageService; + + constructor(vaultPath: string) { + this.cacheManager = new CacheManager(); + const rawStorage = new StorageService({ basePath: vaultPath }); + this.cachedStorage = this.cacheManager.createCachedStorageService(rawStorage); + } + + getStorageService(): IStorageService { + return this.cachedStorage; // 返回缓存增强版本 + } +} +``` + +### 自定义服务缓存 + +```typescript +interface ISearchService { + search(query: string): Promise; +} + +const searchService = new SearchService(); +const cacheConfig = { + search: { + ttl: 120000, // 2分钟 + keyGenerator: (query: string) => `search:${query.toLowerCase()}` + } +}; + +const cachedSearchService = cacheManager.createCachedService( + searchService, + 'search', + cacheConfig +); +``` + +## 🎛️ 配置选项 + +### CacheManager 配置 + +```typescript +interface CacheManagerConfig { + maxSize?: number; // 最大缓存条目数 (默认: 1000) + defaultTTL?: number; // 默认生存时间 (默认: 300000ms = 5分钟) + cleanupInterval?: number; // 清理间隔 (默认: 60000ms = 1分钟) +} +``` + +### 方法级缓存配置 + +```typescript +interface CacheMethodConfig { + ttl: number; // 生存时间(毫秒) + condition?: (...args: any[]) => boolean; // 缓存条件判断 + keyGenerator?: (...args: any[]) => string; // 自定义缓存键生成 +} +``` + +## 📊 性能数据 + +基于测试结果的性能对比: + +| 操作类型 | 首次访问 | 缓存命中 | 跨会话访问 | 性能提升 | +|---------|---------|---------|-----------|---------| +| 文件读取 | ~100ms | <10ms | <5ms | **20x+** | +| 文件信息 | ~50ms | <5ms | <3ms | **15x+** | +| 存在检查 | ~30ms | <2ms | <1ms | **30x+** | +| 离线访问 | ❌ 失败 | ✅ 可用 | ✅ 可用 | **∞** | + +### 缓存统计示例 + +```typescript +{ + totalEntries: 156, + hitRate: 0.87, // 87% 命中率 + missRate: 0.13, + evictions: 12, + namespaces: ['storage', 'search'], + cachedServicesCount: 2 +} +``` + +## 🧪 测试覆盖 + +### 单元测试 (19个测试) +- ✅ 核心缓存服务功能 +- ✅ StorageService 代理缓存 +- ✅ 缓存条件和键生成 +- ✅ 缓存管理和统计 +- ✅ 预热和健康检查 + +### 集成测试 (5个测试) +- ✅ 真实文件缓存 +- ✅ 性能对比验证 +- ✅ 错误处理 + +### 使用示例测试 (9个测试) +- ✅ 应用服务容器集成 +- ✅ 自定义服务缓存 +- ✅ 混合服务场景 + +**总计**: 33个测试,100% 通过率 + +## 🎯 最佳实践 + +### 1. 缓存策略选择 + +```typescript +// 📝 文本文件 - 长期缓存 +readFile: { + ttl: 600000, // 10分钟 + condition: (path) => path.endsWith('.md') +} + +// 📄 文件信息 - 中期缓存 +getFileInfo: { + ttl: 300000 // 5分钟 +} + +// 🔍 存在检查 - 短期缓存 +exists: { + ttl: 180000 // 3分钟 +} +``` + +### 2. 存储管理 + +```typescript +// 根据应用规模调整缓存容量(IndexedDB 支持更大容量) +const cacheManager = new CacheManager({ + maxSize: process.env.NODE_ENV === 'production' ? 10000 : 1000, // 大幅提升 + defaultTTL: 300000, + dbName: 'my-app-cache' // 自定义数据库名 +}); +``` + +### 3. 缓存预热 + +```typescript +// 应用启动时预热常用文件 +const commonFiles = ['/Welcome.md', '/README.md']; +await cacheManager.warmupCache(storageService, commonFiles); +``` + +### 4. 监控和调试 + +```typescript +// 定期检查缓存统计 +const stats = await cacheManager.getStatistics(); +console.log(`Cache hit rate: ${(stats.hitRate * 100).toFixed(1)}%`); + +// 内存压力时清理缓存 +if (stats.totalSize > MEMORY_THRESHOLD) { + await cacheManager.clearCache(); +} +``` + +## 🔄 生命周期管理 + +```typescript +class Application { + private cacheManager: CacheManager; + + async start() { + this.cacheManager = new CacheManager(); + // 预热缓存 + await this.warmupCache(); + } + + async stop() { + // 清理资源 + this.cacheManager.dispose(); + } +} +``` + +## 🚨 注意事项 + +1. **存储配额**: IndexedDB 受浏览器存储配额限制,大量数据时注意监控 +2. **数据一致性**: 缓存的数据可能不是最新的,根据 TTL 设置平衡性能和一致性 +3. **错误处理**: 缓存层不改变原始服务的错误行为,IndexedDB 错误会优雅降级 +4. **浏览器支持**: 现代浏览器都支持 IndexedDB,但在测试环境需要 polyfill +5. **数据持久性**: IndexedDB 数据跨会话保存,用户清理浏览器数据会清空缓存 + +## 🔮 扩展方向 + +1. ✅ **持久化缓存**: 已实现基于 IndexedDB 的持久化存储 +2. **缓存预取**: 智能预测和预加载热点数据 +3. **分布式缓存**: 多实例间的缓存同步(ServiceWorker 广播) +4. **缓存分层**: L1内存 + L2 IndexedDB 的多级缓存 +5. **指标监控**: 集成 Prometheus、Grafana 等监控系统 +6. **压缩优化**: 大文件的 gzip/brotli 压缩存储 + +## 📝 更新日志 + +- **2025-01-09**: 完成零侵入式缓存系统设计与实现 +- **2025-01-09**: 添加 StorageService 缓存代理和完整测试覆盖 +- **2025-01-09**: 创建使用示例和最佳实践文档 +- **2025-01-09**: **重构为 IndexedDB 持久化缓存** + - 将 MemoryCache 重构为 IndexedDBCache + - 支持跨会话持久化和离线访问 + - 大幅提升存储容量和用户体验 + - 保持100%的测试覆盖率(33个测试) + +--- + +**总结**: Helenite 缓存系统成功实现了零侵入式的服务增强,通过 TypeScript Proxy 和灵活的配置系统,为现有服务提供了透明且高性能的缓存能力。基于 IndexedDB 的持久化存储使用户能够享受跨会话的缓存加速和离线访问能力。33个测试的100%通过率证明了系统的稳定性和可靠性。 \ No newline at end of file diff --git a/public/vaults/Demo/helenite-docs/components/map-and-tracks-analysis.md b/public/vaults/Demo/helenite-docs/components/map-and-tracks-analysis.md new file mode 100644 index 0000000..2e1dfa9 --- /dev/null +++ b/public/vaults/Demo/helenite-docs/components/map-and-tracks-analysis.md @@ -0,0 +1,525 @@ +# 地图和轨迹系统分析与设计 + +## 现有 TrackMap 实现分析 + +### 数据结构 + +#### TrackData 接口定义 +```typescript +interface TrackData { + id: string; // 唯一标识 + name?: string; // 轨迹名称 + waypoints: Array<{ // 航点/兴趣点 (主要坐标数据) + lat: number; + lon: number; + name?: string; + description?: string; + elevation?: number; // 海拔信息 + timestamp?: Date; // 时间戳 + }>; + placemarks: Array<{ // 照片标记 (替代 photos,与 KML 术语一致) + lat: number; + lon: number; + name?: string; + photoUrl?: string; + timestamp?: Date; + }>; + provider?: string; // 数据提供商 (yamap, garmin, 2bulu, foooooot等) + style: { + color: string; + weight: number; + opacity: number; + }; +} +``` + +### 数据解析流程 + +#### GPX 解析结果 +- **轨迹点**: `` → `` → `` +- **航点**: `` +- **时间信息**: `
}> + + + ), + footprintsMap: (props) => ( + 加载足迹地图中...

}> + + + ) + } +}); +``` + +### AST 缓存 + +```typescript +class MarkdownProcessor { + private astCache = new Map(); + + process(content: string): ReactElement { + const contentHash = this.getContentHash(content); + + let ast = this.astCache.get(contentHash); + if (!ast) { + // 只缓存到 AST 阶段,组件渲染不缓存 + ast = this.processor.parse(content); + this.astCache.set(contentHash, ast); + } + + // 从 AST 继续处理到 React 组件 + return this.processor.runSync(ast) as ReactElement; + } +} +``` + +## 错误处理 + +```typescript +// 插件错误边界 +const PluginErrorBoundary = ({ pluginName, children }) => { + return ( + +

插件渲染失败: {pluginName}

+

请检查语法或联系管理员

+
+ } + > + {children} + + ); +}; + +// 在 rehypeReact 中使用 +.use(rehypeReact, { + components: { + trackMap: (props) => ( + + + + ) + } +}); +``` + +--- + +**总结**: 基于 unified 最佳实践的新架构,通过完整的 AST 处理流水线,实现了从 Markdown 到 React 组件的无缝转换。TrackMap 作为 Footprints 的功能子集,共享统一的地图渲染架构,提供了强大的扩展性和一致的用户体验。 \ No newline at end of file diff --git a/public/vaults/Demo/helenite-docs/services-architecture.md b/public/vaults/Demo/helenite-docs/services-architecture.md new file mode 100644 index 0000000..a190243 --- /dev/null +++ b/public/vaults/Demo/helenite-docs/services-architecture.md @@ -0,0 +1,337 @@ +--- +aliases: + - helenite + - design +tags: + - helenite +uuid: 215e245b-8b86-43b8-9728-472b60e47711 +--- + +# Helenite 服务架构概览 +> 明确存在的服务有: +> - [x] 0 StorageService: filepath: str --> {filetype, raw cotent} +> - [x] 0 CacheService: +> - [x] 1 MetadataService: metadata.json raw content --> metaData +> - [x] 1 ExifService: raw binary(png, jpg/jpeg, web) --> ExifData (geolocation) +> - [x] 2 SearchService: all raw contents & metaData --> searchResults +> - [x] 2 GraphService: metaData --> localGraph & globalGraph +> - [x] 2 TagService: tags.json raw content & metaData --> globalTags & localTags +> - [x] 2 FileTreeService: metaData --> fileTree +> - [x] 2 FootprintsService: config.json raw content & .gpx/.kml raw content & ExifData (geolocation)--> FootPrints +> - [x] 2 FrontMatterService: metaData --> uuid (for comments) +> - [] 3 VaultService: organize 0-2 level services +> - [] 4 MarkdownRenderer{raw content} +> - remark-frontmatter (去除 front matter 的渲染, metadata 里有相关信息) +> - remark-obsidian 有现成的 npm install @heavycircle/remark-obsidian,This plugin is best used with [remark-gfm](https://www.npmjs.com/package/remark-gfm), [rehype-raw](https://www.npmjs.com/package/rehype-raw), and [remark-wiki-link-plus](https://www.npmjs.com/package/remark-wiki-link-plus). +> - remarkPlugins: mdast node --> new mdast node 识别 gpx/kml 内嵌 +> - rehypePlugins: hast node --> React component +> - [] 4 FootprintsRenderer{FootPrints} +> - [] 4 GraphRenderer{globalGraph/localGraph} +> - [] 4 FileTreeRenderer{fileTree} +> - [] 4 TagsRenderer +> 问题: +> - AttachmentService 需要吗? +> - Config 算是一个服务吗? +> - + +## 服务分层架构(基于数字分层) + +``` +4️⃣ UI/Render Layer - React 组件渲染层 + ↓ +3️⃣ Coordination - 业务协调层 (VaultService) + ↓ +2️⃣ Domain Services - 领域服务层 + ↓ +1️⃣ Basic Services - 基础服务层 + ↓ +0️⃣ Infrastructure - 基础设施层 + +⚡ 特殊架构: MarkdownRenderer (unified) 直接穿透到 MarkdownProcessor ++ VaultConfig: 配置管理器(非服务) +``` + +## 3️⃣ 协调层 (Coordination Layer) + +### VaultService +**职责**: 统一业务接口协调器 +**提供**: 核心业务接口,跨服务协调 +**依赖**: 2层领域服务 +**接口示例**: +```typescript +// 基础数据获取 +getFileTree(): Promise // 通过 FileTreeService +searchDocuments(query: string): Promise // 通过 SearchService +getGlobalGraph(): Promise // 通过 GraphService +getVaultInfo(): Promise // 通过 MetadataService +getFootprints(config: FootprintsConfig): Promise // 通过 FootprintsService +getTags(): Promise // 通过 TagService + +// 注意: Markdown 渲染不经过 VaultService,直接穿透 +``` + +## 2️⃣ 领域服务层 (Domain Services) + +### SearchService +**职责**: 搜索和查询服务聚合器 +**提供**: 全文搜索、标签搜索、断链检测 +**依赖**: MetadataService(1层), StorageService(0层) +**策略**: 智能搜索 (内容搜索 + 元数据搜索) + +### GraphService +**职责**: 知识图谱管理 +**提供**: 全局图谱、局部图谱、文档关系分析 +**依赖**: MetadataService(1层) +**要求**: 严格依赖 metadata.json (复刻 PHP 版本逻辑) + +### TagService +**职责**: 标签系统管理 +**提供**: 标签管理、标签统计、标签过滤 +**依赖**: MetadataService(1层) +**数据源**: `/vaults/{vaultId}/.obsidian/plugins/metadata-extractor/tags.json` + +### FileTreeService +**职责**: 文档树结构管理 +**提供**: 文件树构建、文件统计、目录导航 +**依赖**: MetadataService(1层) +**降级策略**: metadata.json 不可用时回退到文件系统扫描 + +### FootprintsService +**职责**: 地图足迹数据聚合 +**提供**: GPX/KML解析、EXIF地理信息提取、足迹地图数据生成 +**依赖**: StorageService(0层) +**特性**: 支持多种轨迹格式、图片地理信息、省市数据聚合 + +### FrontMatterService +**职责**: Frontmatter 数据提取 +**提供**: UUID 提取 (用于评论系统)、frontmatter 解析 +**依赖**: MetadataService(1层) +**用途**: 为评论系统提供唯一标识 + +## 1️⃣ 基础服务层 (Basic Services) + +### MetadataService +**职责**: Obsidian 元数据管理 +**提供**: metadata.json 访问、MD5 变更检测 +**依赖**: StorageService(0层), CacheService(0层) +**数据源**: `/vaults/{vaultId}/.obsidian/plugins/metadata-extractor/metadata.json` + +### ExifService +**职责**: 图片 EXIF 地理信息提取 +**提供**: GPS 坐标解析、时间戳提取、反地理编码 +**依赖**: StorageService(0层) +**特性**: 支持 JPG、TIFF、RAW 格式的地理信息提取 + +## 0️⃣ 基础设施层 (Infrastructure Layer) + +### StorageService +**职责**: 存储抽象层 +**提供**: 文件读取、存在性检查、路径解析、MIME 检测 +**特性**: 支持本地文件、CDN、远程存储 +**依赖**: 无 (纯基础设施) +**注意**: 包含原 AttachmentService 的功能 + +### CacheService +**职责**: 统一缓存管理 +**提供**: LRU 缓存、MD5 变更检测、内存管理 +**特性**: 多种缓存类型 (content, computed, metadata) +**依赖**: 无 (纯基础设施) + +## 📁 配置管理器 (非服务) + +### VaultConfig +**职责**: 配置管理器 +**提供**: 多 Vault 配置、路径解析、环境变量 +**特性**: 支持 `/vaults/{vaultId}` 多 Vault 架构 +**依赖**: 无 (静态配置) + + +## 📊 服务统计 + +### 按分层统计 +| 层级 | 服务数量 | 主要职责 | +|------|----------|----------| +| 4️⃣ UI/渲染层 | 5 | React 组件渲染 | +| 3️⃣ 协调层 | 1 | 业务协调 (VaultService) | +| 2️⃣ 领域服务层 | 6 | 核心业务逻辑 | +| 1️⃣ 基础服务层 | 2 | 基础业务服务 | +| 0️⃣ 基础设施层 | 2 | 技术支撑 | +| 📁 配置管理器 | 1 | 静态配置 (非服务) | +| **总计** | **11个服务 + 1个配置管理器** | **简洁高效** | + +### 服务依赖层级 (单向依赖) +| 层级 | 服务列表 | 依赖关系 | +|------|----------|----------| +| **4️⃣** UI/渲染层 | `MarkdownRenderer`⚡, `FileTreeRenderer`, `GraphRenderer`, `FootprintsRenderer`, `TagsRenderer` | 部分依赖协调器,部分直接穿透 | +| **3️⃣** 协调层 | `VaultService` | 依赖2层服务 | +| **2️⃣** 领域服务层 | `SearchService`, `GraphService`, `TagService`, `FileTreeService`, `FootprintsService`, `FrontMatterService` | 依赖0-1层 | +| **1️⃣** 基础服务层 | `MetadataService`, `ExifService` | 仅依赖0层 | +| **0️⃣** 基础设施层 | `StorageService`, `CacheService` | 无依赖 | +| **📁** 配置管理器 | `VaultConfig` | 静态配置 | + +### 单向依赖原则 +``` +4️⃣ UI渲染层: + ├─→ MarkdownRenderer ⚡ 直接穿透 ──→ remark-frontmatter + @heavycircle/remark-obsidian + ├─→ FileTreeRenderer ──→ VaultService ──→ FileTreeService + ├─→ GraphRenderer ──→ VaultService ──→ GraphService + ├─→ FootprintsRenderer ──→ VaultService ──→ FootprintsService + └─→ TagsRenderer ──→ VaultService ──→ TagService + +3️⃣ VaultService ──→ 协调2层服务: + ├─→ SearchService, GraphService, TagService, FileTreeService + ├─→ FootprintsService, FrontMatterService + └─→ MetadataService (1层) + +2️⃣ 领域服务层: + ├─→ SearchService ──→ MetadataService(1层) + StorageService(0层) + ├─→ GraphService ──→ MetadataService(1层) + ├─→ TagService ──→ MetadataService(1层) + ├─→ FileTreeService ──→ MetadataService(1层) + ├─→ FootprintsService ──→ StorageService(0层) + ExifService(1层) + └─→ FrontMatterService ──→ MetadataService(1层) + +1️⃣ 基础服务层: + ├─→ MetadataService ──→ StorageService(0层) + CacheService(0层) + └─→ ExifService ──→ StorageService(0层) + +0️⃣ 基础设施层 ──→ 无依赖 +📁 VaultConfig ──→ 静态配置 +``` + +### 🎯 核心功能映射 +- **Markdown 文档处理**: MarkdownRenderer ⚡ 直接穿透 → remark-frontmatter + @heavycircle/remark-obsidian +- **地图足迹**: FootprintsRenderer → VaultService → FootprintsService +- **知识图谱**: GraphRenderer → VaultService → GraphService +- **搜索功能**: SearchComponent → VaultService → SearchService +- **文件树**: FileTreeRenderer → VaultService → FileTreeService +- **标签管理**: TagsRenderer → VaultService → TagService + +## 4️⃣ UI/渲染层 (UI/Render Layer) + +### MarkdownRenderer ⚡ +**职责**: Markdown 文档渲染 (直接穿透架构) +**提供**: remark-frontmatter + @heavycircle/remark-obsidian 处理 +**依赖**: 直接使用 unified 插件,不经过服务层 +**特性**: frontmatter 自动隐藏,Obsidian 语法支持 + +### FileTreeRenderer +**职责**: 文件树UI渲染 +**提供**: 目录结构展示、文件导航、交互响应 +**依赖**: FileTreeService (通过 VaultService) +**特性**: 支持懒加载、虚拟滚动、搜索过滤 + +### GraphRenderer +**职责**: 知识图谱可视化渲染 +**提供**: D3.js 图谱展示、节点交互、缩放平移 +**依赖**: GraphService (通过 VaultService) +**特性**: 力导向布局、实时更新、性能优化 + +### FootprintsRenderer +**职责**: 地图足迹渲染 +**提供**: Leaflet 地图、轨迹展示、地理信息可视化 +**依赖**: FootprintsService (通过 VaultService) +**特性**: GPX/KML 支持、EXIF 地理信息、省市聚合 + +### TagsRenderer +**职责**: 标签系统UI渲染 +**提供**: 标签云、标签过滤、标签统计 +**依赖**: TagService (通过 VaultService) +**特性**: 交互式标签管理、搜索集成 + +## 🔄 服务生命周期 + +### 初始化顺序 +```typescript +// 按依赖层级顺序初始化 (0层→4层) + +// 📁 配置管理器 + 0️⃣层: 基础设施 (并行启动) +1. VaultConfig.load() + StorageService.setup() + CacheService.initialize() + +// 1️⃣层: 基础服务 (依赖0层) +2. MetadataService.initialize() + ExifService.initialize() + +// 2️⃣层: 领域服务 (依赖0-1层) +3. SearchService.setup() + GraphService.initialize() + TagService.initialize() + + FileTreeService.initialize() + FootprintsService.setup() + FrontMatterService.initialize() + +// 3️⃣层: 协调器 (依赖2层服务) +4. VaultService.coordinate() + +// 4️⃣层: UI/渲染层 (部分依赖协调器,部分直接穿透) +5. UI组件初始化: + - MarkdownRenderer ⚡ 直接使用 remark-frontmatter + @heavycircle/remark-obsidian + - FileTreeRenderer, GraphRenderer, FootprintsRenderer, TagsRenderer 通过 VaultService +``` + +### 销毁顺序 +```typescript +// 按依赖关系逆序销毁,确保无资源泄漏 +4️⃣ UI组件 → 3️⃣ VaultService → 2️⃣ 领域服务层 → 1️⃣ 基础服务层 → 0️⃣ 基础设施层 +``` + +## 🚀 性能考虑 + +### 服务启动优化 +- **并行初始化**: 无依赖的服务可以并行启动 +- **延迟加载**: GraphService 和 SearchService 可以按需初始化 +- **缓存预热**: 关键元数据可以在启动时预加载 + +### 运行时优化 +- **服务复用**: 单例模式,避免重复实例化 +- **智能缓存**: 跨服务共享缓存实例 +- **批量操作**: 相关操作合并为批量请求 + +## 📚 相关文档 + +### 当前可用 +- [[map-and-tracks-analysis]] - 地图和轨迹系统分析与设计 +- [[markdown-and-plugins]] - Markdown 渲染和插件系统 + +### 计划中的文档 +- [[服务依赖关系详解]] - 详细依赖图和数据流 *(待完善)* +- [[DDD 领域边界分析]] - 领域驱动设计分析 *(待完善)* +- [[服务架构设计]] - 具体接口和实现设计 *(待完善)* +- [[地理数据抽象]] - 统一地图组件共享设计 *(待完善)* +- [[Markdown 插件架构]] - 插件化设计 *(待完善)* +- [[块级插件系统]] - 渲染流程设计 *(待完善)* + +## 🔍 快速查找 + +### 我需要... → 使用哪个服务 +- **渲染 Markdown 文档** → `remark-frontmatter` + `@heavycircle/remark-obsidian` (直接) +- **获取文档元数据** → `MetadataService.getFileMetadata()` +- **获取文件列表** → `FileTreeService.getFileTree()` +- **搜索内容** → `SearchService.searchDocuments()` +- **查看知识图谱** → `GraphService.getGlobalGraph()` +- **管理标签** → `TagService.getTags()` +- **处理地图轨迹** → `FootprintsService.parseGPXFile()` +- **提取照片地理信息** → `ExifService.extractGeoData()` +- **提取 frontmatter UUID** → `FrontMatterService.extractUUID()` +- **统一业务操作** → `VaultService.*` (推荐) + +### 服务状态检查 +```typescript +// 检查服务健康状态 +const health = await vaultService.healthCheck(); +console.log('可用功能:', health.availableFeatures); +console.log('服务状态:', health.serviceStatus); +``` + +--- + +## 💡 架构决策总结 + +### ✅ 采纳的设计决策 +1. **AttachmentService 合并到 StorageService** - 避免过度抽象,职责合并更合理 +2. **VaultConfig 作为配置管理器** - 静态配置不需要服务化,简化架构 +3. **数字分层系统 (0-4层)** - 清晰的依赖关系,数字越小越基础 +4. **MarkdownRenderer 直接穿透** - 使用 remark-frontmatter 等专业插件,不经过服务层 +5. **11个服务 + 1个配置管理器** - 精简高效,避免过度工程化 + +### 🎯 关键架构原则 +- **单向依赖**: 高层依赖低层,低层不依赖高层 +- **分层清晰**: 每层职责明确,接口稳定 +- **职责单一**: 每个服务专注一个领域 +- **可测试性优先**: 依赖注入,便于单元测试 +- **简洁实用**: 避免为了架构而架构,实用至上 \ No newline at end of file diff --git a/public/vaults/Publish/.obsidian/app.json b/public/vaults/Publish/.obsidian/app.json new file mode 100755 index 0000000..3fad870 --- /dev/null +++ b/public/vaults/Publish/.obsidian/app.json @@ -0,0 +1,12 @@ +{ + "newLinkFormat": "relative", + "attachmentFolderPath": "Attachments", + "alwaysUpdateLinks": true, + "pdfExportSettings": { + "includeName": true, + "pageSize": "A4", + "landscape": false, + "margin": "0", + "downscalePercent": 100 + } +} \ No newline at end of file diff --git a/public/vaults/Publish/.obsidian/appearance.json b/public/vaults/Publish/.obsidian/appearance.json new file mode 100755 index 0000000..befcfff --- /dev/null +++ b/public/vaults/Publish/.obsidian/appearance.json @@ -0,0 +1,4 @@ +{ + "accentColor": "", + "cssTheme": "Royal Velvet" +} \ No newline at end of file diff --git a/public/vaults/Publish/.obsidian/community-plugins.json b/public/vaults/Publish/.obsidian/community-plugins.json new file mode 100644 index 0000000..8a45322 --- /dev/null +++ b/public/vaults/Publish/.obsidian/community-plugins.json @@ -0,0 +1,4 @@ +[ + "metadata-extractor", + "image-converter" +] \ No newline at end of file diff --git a/public/vaults/Publish/.obsidian/core-plugins-migration.json b/public/vaults/Publish/.obsidian/core-plugins-migration.json new file mode 100755 index 0000000..436f43c --- /dev/null +++ b/public/vaults/Publish/.obsidian/core-plugins-migration.json @@ -0,0 +1,30 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "properties": false, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": false +} \ No newline at end of file diff --git a/public/vaults/Publish/.obsidian/core-plugins.json b/public/vaults/Publish/.obsidian/core-plugins.json new file mode 100755 index 0000000..4e86bc3 --- /dev/null +++ b/public/vaults/Publish/.obsidian/core-plugins.json @@ -0,0 +1,31 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "properties": true, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": false, + "webviewer": false +} \ No newline at end of file diff --git a/public/vaults/Publish/.obsidian/graph.json b/public/vaults/Publish/.obsidian/graph.json new file mode 100755 index 0000000..42a46ec --- /dev/null +++ b/public/vaults/Publish/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": true, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [], + "collapse-display": true, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 1, + "close": true +} \ No newline at end of file diff --git a/public/vaults/Publish/.obsidian/plugins/image-converter/data.json b/public/vaults/Publish/.obsidian/plugins/image-converter/data.json new file mode 100644 index 0000000..ba755a0 --- /dev/null +++ b/public/vaults/Publish/.obsidian/plugins/image-converter/data.json @@ -0,0 +1,364 @@ +{ + "folderPresets": [ + { + "type": "DEFAULT", + "name": "Default (Obsidian setting)" + }, + { + "type": "ROOT", + "name": "Root folder" + }, + { + "type": "CURRENT", + "name": "Same folder as current note" + } + ], + "selectedFolderPreset": "Default (Obsidian setting)", + "filenamePresets": [ + { + "name": "Keep original name", + "customTemplate": "{imagename}", + "skipRenamePatterns": "", + "conflictResolution": "increment" + }, + { + "name": "NoteName-Timestamp", + "customTemplate": "{notename}-{timestamp}", + "skipRenamePatterns": "", + "conflictResolution": "increment" + } + ], + "selectedFilenamePreset": "Keep original name", + "outputFormat": "NONE", + "quality": 100, + "colorDepth": 1, + "pngquantQuality": "65-80", + "ffmpegExecutablePath": "", + "ffmpegCrf": 23, + "ffmpegPreset": "medium", + "resizeMode": "None", + "desiredWidth": 800, + "desiredHeight": 600, + "desiredLongestEdge": 1000, + "enlargeOrReduce": "Auto", + "allowLargerFiles": false, + "showPresetModal": { + "folder": false, + "filename": false + }, + "subfolderTemplate": "", + "conversionPresets": [ + { + "name": "None", + "outputFormat": "NONE", + "quality": 100, + "colorDepth": 1, + "resizeMode": "None", + "desiredWidth": 800, + "desiredHeight": 600, + "desiredLongestEdge": 1000, + "enlargeOrReduce": "Auto", + "allowLargerFiles": false, + "skipConversionPatterns": "", + "pngquantExecutablePath": "", + "pngquantQuality": "65-80", + "ffmpegExecutablePath": "", + "ffmpegCrf": 23, + "ffmpegPreset": "medium" + }, + { + "name": "WEBP (75, no resizing)", + "outputFormat": "WEBP", + "quality": 75, + "colorDepth": 1, + "resizeMode": "None", + "desiredWidth": 800, + "desiredHeight": 600, + "desiredLongestEdge": 1000, + "enlargeOrReduce": "Auto", + "allowLargerFiles": false, + "skipConversionPatterns": "", + "pngquantExecutablePath": "", + "pngquantQuality": "65-80", + "ffmpegExecutablePath": "", + "ffmpegCrf": 23, + "ffmpegPreset": "medium" + }, + { + "name": "PNGQUANT (65-80, no resizing)", + "outputFormat": "PNGQUANT", + "quality": 75, + "colorDepth": 1, + "resizeMode": "None", + "desiredWidth": 800, + "desiredHeight": 600, + "desiredLongestEdge": 1000, + "enlargeOrReduce": "Auto", + "allowLargerFiles": false, + "skipConversionPatterns": "", + "pngquantExecutablePath": "", + "pngquantQuality": "65-80", + "ffmpegExecutablePath": "", + "ffmpegCrf": 23, + "ffmpegPreset": "medium" + }, + { + "name": "webp(100, no resizing)", + "outputFormat": "WEBP", + "quality": 100, + "colorDepth": 1, + "resizeMode": "None", + "desiredWidth": 800, + "desiredHeight": 600, + "desiredLongestEdge": 1000, + "enlargeOrReduce": "Auto", + "allowLargerFiles": false, + "skipConversionPatterns": "", + "ffmpegExecutablePath": "", + "ffmpegCrf": 23, + "ffmpegPreset": "medium" + } + ], + "selectedConversionPreset": "webp(100, no resizing)", + "globalPresets": [ + { + "name": "WebP 75", + "folderPreset": "Default (Obsidian setting)", + "filenamePreset": "NoteName-Timestamp", + "conversionPreset": "WEBP (75, no resizing)", + "linkFormatPreset": "Default (Wikilink, Shortest)", + "resizePreset": "Default (No Resize)" + } + ], + "selectedGlobalPreset": "", + "linkFormatSettings": { + "linkFormatPresets": [ + { + "name": "Default (Wikilink, Shortest)", + "linkFormat": "wikilink", + "pathFormat": "shortest", + "prependCurrentDir": false, + "hideFolders": false + }, + { + "name": "Markdown, Relative", + "linkFormat": "markdown", + "pathFormat": "relative", + "prependCurrentDir": true, + "hideFolders": false + } + ], + "selectedLinkFormatPreset": "Default (Wikilink, Shortest)" + }, + "nonDestructiveResizeSettings": { + "resizePresets": [ + { + "name": "Default (No Resize)", + "resizeDimension": "none", + "resizeScaleMode": "auto", + "respectEditorMaxWidth": true, + "maintainAspectRatio": true, + "resizeUnits": "pixels" + }, + { + "name": "Width 500px", + "resizeDimension": "width", + "width": 500, + "resizeScaleMode": "auto", + "respectEditorMaxWidth": true, + "maintainAspectRatio": true, + "resizeUnits": "pixels" + }, + { + "name": "Height 800px", + "resizeDimension": "height", + "height": 800, + "resizeScaleMode": "auto", + "respectEditorMaxWidth": true, + "maintainAspectRatio": true, + "resizeUnits": "pixels" + }, + { + "name": "50% Width", + "resizeDimension": "width", + "width": 50, + "resizeScaleMode": "auto", + "respectEditorMaxWidth": true, + "maintainAspectRatio": true, + "resizeUnits": "percentage" + }, + { + "name": "Longest Edge 1000px", + "resizeDimension": "longest-edge", + "longestEdge": 1000, + "resizeScaleMode": "auto", + "respectEditorMaxWidth": true, + "maintainAspectRatio": true, + "resizeUnits": "pixels" + }, + { + "name": "Fit Editor", + "resizeDimension": "editor-max-width", + "resizeScaleMode": "auto", + "respectEditorMaxWidth": true, + "maintainAspectRatio": true, + "resizeUnits": "pixels" + }, + { + "name": "Original Width", + "resizeDimension": "original-width", + "resizeScaleMode": "auto", + "respectEditorMaxWidth": false, + "maintainAspectRatio": true, + "resizeUnits": "pixels" + }, + { + "name": "Custom (Distort)", + "resizeDimension": "both", + "customValue": "300x100", + "resizeScaleMode": "auto", + "respectEditorMaxWidth": false, + "maintainAspectRatio": false, + "resizeUnits": "pixels" + } + ], + "selectedResizePreset": "Default (No Resize)" + }, + "resizeCursorLocation": "none", + "dropPasteCursorLocation": "back", + "neverProcessFilenames": "", + "modalBehavior": "never", + "singleImageModalSettings": { + "conversionPresetName": "webp(100, no resizing)", + "outputFormat": "WEBP", + "quality": 80, + "colorDepth": 1, + "resizeMode": "None", + "desiredWidth": 800, + "desiredHeight": 600, + "desiredLongestEdge": 1000, + "enlargeOrReduce": "Auto", + "allowLargerFiles": false, + "pngquantExecutablePath": "", + "pngquantQuality": "65-80", + "ffmpegExecutablePath": "", + "ffmpegCrf": 23, + "ffmpegPreset": "medium" + }, + "ProcessCurrentNoteconvertTo": "png", + "ProcessCurrentNotequality": 1, + "ProcessCurrentNoteResizeModalresizeMode": "None", + "ProcessCurrentNoteresizeModaldesiredWidth": 600, + "ProcessCurrentNoteresizeModaldesiredHeight": 800, + "ProcessCurrentNoteresizeModaldesiredLength": 800, + "ProcessCurrentNoteskipImagesInTargetFormat": true, + "ProcessCurrentNoteEnlargeOrReduce": "Always", + "ProcessCurrentNoteSkipFormats": "tif,tiff,heic", + "ProcessAllVaultconvertTo": "disabled", + "ProcessAllVaultquality": 0.75, + "ProcessAllVaultResizeModalresizeMode": "None", + "ProcessAllVaultResizeModaldesiredWidth": 500, + "ProcessAllVaultResizeModaldesiredHeight": 500, + "ProcessAllVaultResizeModaldesiredLength": 500, + "ProcessAllVaultEnlargeOrReduce": "Always", + "ProcessAllVaultSkipFormats": "", + "ProcessAllVaultskipImagesInTargetFormat": false, + "annotationPresets": { + "drawing": [ + { + "color": "#000000", + "opacity": 1, + "blendMode": "source-over", + "size": 2 + }, + { + "color": "#000000", + "opacity": 1, + "blendMode": "source-over", + "size": 2 + }, + { + "color": "#000000", + "opacity": 1, + "blendMode": "source-over", + "size": 2 + } + ], + "arrow": [ + { + "color": "#000000", + "opacity": 1, + "blendMode": "source-over", + "size": 8 + }, + { + "color": "#000000", + "opacity": 1, + "blendMode": "source-over", + "size": 8 + }, + { + "color": "#000000", + "opacity": 1, + "blendMode": "source-over", + "size": 8 + } + ], + "text": [ + { + "color": "#000000", + "opacity": 1, + "blendMode": "source-over", + "size": 24, + "backgroundColor": "transparent", + "backgroundOpacity": 0.7 + }, + { + "color": "#000000", + "opacity": 1, + "blendMode": "source-over", + "size": 24, + "backgroundColor": "transparent", + "backgroundOpacity": 0.7 + }, + { + "color": "#000000", + "opacity": 1, + "blendMode": "source-over", + "size": 24, + "backgroundColor": "transparent", + "backgroundOpacity": 0.7 + } + ] + }, + "isImageAlignmentEnabled": true, + "imageAlignment_cacheCleanupInterval": 3600000, + "imageAlignment_cacheLocation": "plugin", + "isDragResizeEnabled": true, + "isScrollResizeEnabled": true, + "isResizeInReadingModeEnabled": false, + "resizeSensitivity": 0.1, + "scrollwheelModifier": "Shift", + "isImageResizeEnbaled": true, + "resizeState": { + "isResizing": false + }, + "enableContextMenu": true, + "showSpaceSavedNotification": true, + "revertToOriginalIfLarger": false, + "enableImageCaptions": true, + "skipCaptionExtensions": "icns", + "captionFontSize": "var(--font-smaller)", + "captionColor": "var(--text-gray)", + "captionFontStyle": "italic", + "captionBackgroundColor": "transparent", + "captionPadding": "2px 4px", + "captionBorderRadius": "0", + "captionOpacity": "1", + "captionFontWeight": "normal", + "captionTextTransform": "none", + "captionLetterSpacing": "normal", + "captionBorder": "none", + "captionMarginTop": "4px", + "captionAlignment": "center" +} \ No newline at end of file diff --git a/public/vaults/Publish/.obsidian/plugins/image-converter/image-converter-image-alignments.json b/public/vaults/Publish/.obsidian/plugins/image-converter/image-converter-image-alignments.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/public/vaults/Publish/.obsidian/plugins/image-converter/image-converter-image-alignments.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/public/vaults/Publish/.obsidian/plugins/image-converter/main.js b/public/vaults/Publish/.obsidian/plugins/image-converter/main.js new file mode 100644 index 0000000..d9a5b47 --- /dev/null +++ b/public/vaults/Publish/.obsidian/plugins/image-converter/main.js @@ -0,0 +1,614 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var Ja=Object.create;var Gr=Object.defineProperty;var Ha=Object.getOwnPropertyDescriptor;var Ua=Object.getOwnPropertyNames;var ja=Object.getPrototypeOf,La=Object.prototype.hasOwnProperty;var $a=(s,i)=>()=>(s&&(i=s(s=0)),i);var qa=(s,i)=>()=>(i||s((i={exports:{}}).exports,i),i.exports),rf=(s,i)=>{for(var e in i)Gr(s,e,{get:i[e],enumerable:!0})},tf=(s,i,e,r)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of Ua(i))!La.call(s,t)&&t!==e&&Gr(s,t,{get:()=>i[t],enumerable:!(r=Ha(i,t))||r.enumerable});return s};var _2=(s,i,e)=>(e=s!=null?Ja(ja(s)):{},tf(i||!s||!s.__esModule?Gr(e,"default",{value:s,enumerable:!0}):e,s)),Ka=s=>tf(Gr({},"__esModule",{value:!0}),s);var If=qa((n4,Fn)=>{(function(){var s={};typeof Fn=="object"?Fn.exports=s:self.UTIF=s;function i(){typeof process=="undefined"&&console.log.apply(console,arguments)}(function(e){(function(){"use strict";var r=function(){function A(l){this.message="JPEG error: "+l}return A.prototype=new Error,A.prototype.name="JpegError",A.constructor=A,A}(),t=function(){var A=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),l=4017,k=799,u=3406,h=2276,c=1567,d=3784,b=5793,g=2896;function v(_){_==null&&(_={}),_.w==null&&(_.w=-1),this.V=_.n,this.N=_.w}function w(_,x){for(var B=0,I=[],W,F,X=16,E;X>0&&!_[X-1];)X--;I.push({children:[],index:0});var S=I[0];for(W=0;W0;)S=I.pop();for(S.index++,I.push(S);I.length<=W;)I.push(E={children:[],index:0}),S.children[S.index]=E.children,S=E;B++}W+10)return G--,P>>G&1;if(P=_[x++],P===255){var a0=_[x++];if(a0){if(a0===220&&M){x+=2;var c0=f(_,x);if(x+=2,c0>0&&c0!==B.s)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",c0)}else if(a0===217){if(M){var w0=O*8;if(w0>0&&w0>>7}function b0(a0){for(var c0=a0;;){switch(c0=c0[g0()],typeof c0){case"number":return c0;case"object":continue}throw new r("invalid huffman sequence")}}function X0(a0){for(var c0=0;a0>0;)c0=c0<<1|g0(),a0--;return c0}function D0(a0){if(a0===1)return g0()===1?1:-1;var c0=X0(a0);return c0>=1<>4;if(_0===0){if(T0<15)break;I0+=16;continue}I0+=T0;var fi=A[I0];a0.D[c0+fi]=D0(_0),I0++}}function v0(a0,c0){var w0=b0(a0.J),j0=w0===0?0:D0(w0)<0){Q--;return}for(var w0=F,j0=X;w0<=j0;){var I0=b0(a0.i),L0=I0&15,_0=I0>>4;if(L0===0){if(_0<15){Q=X0(_0)+(1<<_0)-1;break}w0+=16;continue}w0+=_0;var T0=A[w0];a0.D[c0+T0]=D0(L0)*(1<>4,L0===0)I0<15?(Q=X0(I0)+(1<0){for(j=0;j0?"unexpected":"excessive";x=f0.offset}if(f0.M>=65488&&f0.M<=65495)x+=2;else break}return x-R}function C(_,x,B){var I=_.$,W=_.D,F,X,E,S,M,T,z,R,P,G,Q,Y,K,O,H,j,J;if(!I)throw new r("missing required Quantization Table.");for(var U=0;U<64;U+=8){if(P=W[x+U],G=W[x+U+1],Q=W[x+U+2],Y=W[x+U+3],K=W[x+U+4],O=W[x+U+5],H=W[x+U+6],j=W[x+U+7],P*=I[U],!(G|Q|Y|K|O|H|j)){J=b*P+512>>10,B[U]=J,B[U+1]=J,B[U+2]=J,B[U+3]=J,B[U+4]=J,B[U+5]=J,B[U+6]=J,B[U+7]=J;continue}G*=I[U+1],Q*=I[U+2],Y*=I[U+3],K*=I[U+4],O*=I[U+5],H*=I[U+6],j*=I[U+7],F=b*P+128>>8,X=b*K+128>>8,E=Q,S=H,M=g*(G-j)+128>>8,R=g*(G+j)+128>>8,T=Y<<4,z=O<<4,F=F+X+1>>1,X=F-X,J=E*d+S*c+128>>8,E=E*c-S*d+128>>8,S=J,M=M+z+1>>1,z=M-z,R=R+T+1>>1,T=R-T,F=F+S+1>>1,S=F-S,X=X+E+1>>1,E=X-E,J=M*h+R*u+2048>>12,M=M*u-R*h+2048>>12,R=J,J=T*k+z*l+2048>>12,T=T*l-z*k+2048>>12,z=J,B[U]=F+R,B[U+7]=F-R,B[U+1]=X+z,B[U+6]=X-z,B[U+2]=E+T,B[U+5]=E-T,B[U+3]=S+M,B[U+4]=S-M}for(var i0=0;i0<8;++i0){if(P=B[i0],G=B[i0+8],Q=B[i0+16],Y=B[i0+24],K=B[i0+32],O=B[i0+40],H=B[i0+48],j=B[i0+56],!(G|Q|Y|K|O|H|j)){J=b*P+8192>>14,J<-2040?J=0:J>=2024?J=255:J=J+2056>>4,W[x+i0]=J,W[x+i0+8]=J,W[x+i0+16]=J,W[x+i0+24]=J,W[x+i0+32]=J,W[x+i0+40]=J,W[x+i0+48]=J,W[x+i0+56]=J;continue}F=b*P+2048>>12,X=b*K+2048>>12,E=Q,S=H,M=g*(G-j)+2048>>12,R=g*(G+j)+2048>>12,T=Y,z=O,F=(F+X+1>>1)+4112,X=F-X,J=E*d+S*c+2048>>12,E=E*c-S*d+2048>>12,S=J,M=M+z+1>>1,z=M-z,R=R+T+1>>1,T=R-T,F=F+S+1>>1,S=F-S,X=X+E+1>>1,E=X-E,J=M*h+R*u+2048>>12,M=M*u-R*h+2048>>12,R=J,J=T*k+z*l+2048>>12,T=T*l-z*k+2048>>12,z=J,P=F+R,j=F-R,G=X+z,H=X-z,Q=E+T,O=E-T,Y=S+M,K=S-M,P<16?P=0:P>=4080?P=255:P>>=4,G<16?G=0:G>=4080?G=255:G>>=4,Q<16?Q=0:Q>=4080?Q=255:Q>>=4,Y<16?Y=0:Y>=4080?Y=255:Y>>=4,K<16?K=0:K>=4080?K=255:K>>=4,O<16?O=0:O>=4080?O=255:O>>=4,H<16?H=0:H>=4080?H=255:H>>=4,j<16?j=0:j>=4080?j=255:j>>=4,W[x+i0]=P,W[x+i0+8]=G,W[x+i0+16]=Q,W[x+i0+24]=Y,W[x+i0+32]=K,W[x+i0+40]=O,W[x+i0+48]=H,W[x+i0+56]=j}}function y(_,x){for(var B=x.P,I=x.c,W=new Int16Array(64),F=0;F=I)return null;var F=f(_,x);if(F>=65472&&F<=65534)return{u:null,M:F,offset:x};for(var X=f(_,W);!(X>=65472&&X<=65534);){if(++W>=I)return null;X=f(_,W)}return{u:F.toString(16),M:X,offset:W}}return v.prototype={parse(_,x){x==null&&(x={});var B=x.F,I=0,W=null,F=null,X,E,S=0;function M(){var _0=f(_,I);I+=2;var T0=I+_0-2,fi=Z(_,T0,I);fi&&fi.u&&(T0=fi.offset);var se=_.subarray(I,T0);return I+=se.length,se}function T(_0){for(var T0=Math.ceil(_0.o/8/_0.X),fi=Math.ceil(_0.s/8/_0.B),se=0;se<_0.W.length;se++){n0=_0.W[se];var Oi=Math.ceil(Math.ceil(_0.o/8)*n0.h/_0.X),Ae=Math.ceil(Math.ceil(_0.s/8)*n0.A/_0.B),q2=T0*n0.h,Fr=fi*n0.A,un=64*Fr*(q2+1);n0.D=new Int16Array(un),n0.P=Oi,n0.c=Ae}_0.m=T0,_0.R=fi}var z=[],R=[],P=[],G=f(_,I);if(I+=2,G!==65496)throw new r("SOI not found");G=f(_,I),I+=2;i:for(;G!==65497;){var Q,Y,K;switch(G){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var O=M();G===65504&&O[0]===74&&O[1]===70&&O[2]===73&&O[3]===70&&O[4]===0&&(W={version:{d:O[5],T:O[6]},K:O[7],j:O[8]<<8|O[9],H:O[10]<<8|O[11],S:O[12],I:O[13],C:O.subarray(14,14+3*O[12]*O[13])}),G===65518&&O[0]===65&&O[1]===100&&O[2]===111&&O[3]===98&&O[4]===101&&(F={version:O[5]<<8|O[6],k:O[7]<<8|O[8],q:O[9]<<8|O[10],a:O[11]});break;case 65499:var H=f(_,I),j;I+=2;for(var J=H+I-2;I>4)if(U>>4===1)for(Y=0;Y<64;Y++)j=A[Y],i0[j]=f(_,I),I+=2;else throw new r("DQT - invalid table spec");else for(Y=0;Y<64;Y++)j=A[Y],i0[j]=_[I++];z[U&15]=i0}break;case 65472:case 65473:case 65474:if(X)throw new r("Only single frame JPEGs supported");I+=2,X={},X.G=G===65473,X.Z=G===65474,X.precision=_[I++];var $=f(_,I),t0,f0=0,p0=0;I+=2,X.s=B||$,X.o=f(_,I),I+=2,X.W=[],X._={};var B0=_[I++];for(Q=0;Q>4,g0=_[I+1]&15;f0>4?R:P)[D0&15]=w(Ai,Q0)}break;case 65501:I+=2,E=f(_,I),I+=2;break;case 65498:var U0=++S===1&&!B,n0;I+=2;var s0=_[I++],ti=[];for(Q=0;Q>4],n0.i=R[vi&15],ti.push(n0)}var a0=_[I++],c0=_[I++],w0=_[I++];try{var j0=m(_,I,X,ti,E,a0,c0,w0>>4,w0&15,U0);I+=j0}catch(_0){if(_0 instanceof DNLMarkerError)return this.parse(_,{F:_0.s});if(_0 instanceof EOIMarkerError)break i;throw _0}break;case 65500:I+=4;break;case 65535:_[I]!==255&&I--;break;default:var I0=Z(_,I-2,I-3);if(I0&&I0.u){I=I0.offset;break}if(I>=_.length-1)break i;throw new r("JpegImage.parse - unknown marker: "+G.toString(16))}G=f(_,I),I+=2}for(this.width=X.o,this.height=X.s,this.g=W,this.b=F,this.W=[],Q=0;Q>8)+i0[P+1];return H},get f(){return this.b?!!this.b.a:this.p===3?this.N===0?!1:!(this.W[0].index===82&&this.W[1].index===71&&this.W[2].index===66):this.N===1},z:function(x){for(var B,I,W,F=0,X=x.length;F4)throw new r("Unsupported color mode");var F=this.Y(x,B,W);if(this.p===1&&I){for(var X=F.length,E=new Uint8ClampedArray(X*3),S=0,M=0;M>24}function f(a,A){return a[A]<<8|a[A+1]}function o(a,A){return(a[A]<<24|a[A+1]<<16|a[A+2]<<8|a[A+3])>>>0}e.JpegDecoder=t})(),e.encodeImage=function(r,t,n,f){var o=new Uint8Array(r),a=window&&window.pako?8:1;a==8&&(o=pako.deflate(o));var A={t256:[t],t257:[n],t258:[8,8,8,8],t259:[a],t262:[2],t273:[1e3],t277:[4],t278:[n],t279:[o.length],t282:[[72,1]],t283:[[72,1]],t284:[1],t286:[[0,1]],t287:[[0,1]],t296:[1],t305:["Photopea (UTIF.js)"],t338:[1]};if(f)for(var l in f)A[l]=f[l];for(var k=new Uint8Array(e.encode([A])),u=new Uint8Array(1e3+o.length),l=0;l3&&(t.t258=t.t258.slice(0,3));var l=t.t258?t.t258[0]:1,k=t.t277?t.t277[0]:1,u=t.t284?t.t284[0]:1;k!=3&&(u=1),u==2&&i("PlanarConfiguration 2 should not be used!");var h=l*k;a==1&&t.t279!=null&&t.t278&&t.t262[0]==32803&&(h=Math.round(t.t279[0]*8/(t.width*t.t278[0]))),t.t50885&&t.t50885[0]==4&&(h=t.t258[0]*3);var c=Math.ceil(t.width*h/8)*8,d=t.t273;(d==null||t.t322)&&(d=t.t324);var b=t.t279;a==1&&d.length==1&&(b=[t.height*(c>>>3)]),(b==null||t.t322)&&(b=t.t325);var g=new Uint8Array(t.height*(c>>>3)),v=0;if(t.t322!=null){var w=t.t322[0],p=t.t323[0],m=Math.floor((t.width+w-1)/w),C=Math.floor((t.height+p-1)/p),y=new Uint8Array(Math.ceil(w*p*h/8)|0);console.log("====",m,C);for(var Z=0;Z>>3,m=Math.ceil(v*w*u/8);if(v==16&&!r.isLE&&r.t33422==null)for(var C=0;C>>8&255}else if(w==3)for(var c=3;c>3^16368,(E[g]|E[g+1]<<8)>>(b&7)&~(-1<>2,p[1]=((T(1)&3)<<12|T(2)<<4|T(3)>>4)&16383,p[2]=T(3)>>2&3,p[3]=(T(3)&3)<<8|T(4),p[4]=T(5)<<2|T(6)>>6,p[5]=(T(6)&63)<<4|T(7)>>4,p[6]=T(7)>>2&3,p[7]=(T(7)&3)<<8|T(8),p[8]=T(9)<<2&1020|T(10)>>6,p[9]=(T(10)<<4|T(11)>>4)&1023,p[10]=T(11)>>2&3,p[11]=(T(11)&3)<<8|T(12),p[12]=(T(13)<<2&1020|T(14)>>6)&1023,p[13]=(T(14)<<4|T(15)>>4)&1023,b+=16,g=0}function R(){p[0]=T(0)<<4|T(1)>>4,p[1]=((T(1)&15)<<8|T(2))&4095,p[2]=T(3)>>6&3,p[3]=(T(3)&63)<<2|T(4)>>6,p[4]=(T(4)&63)<<2|T(5)>>6,p[5]=(T(5)&63)<<2|T(6)>>6,p[6]=T(6)>>4&3,p[7]=(T(6)&15)<<4|T(7)>>4,p[8]=(T(7)&15)<<4|T(8)>>4,p[9]=(T(8)&15)<<4|T(9)>>4,p[10]=T(9)>>2&3,p[11]=(T(9)&3)<<6|T(10)>>2,p[12]=(T(10)&3)<<6|T(11)>>2,p[13]=(T(11)&3)<<6|T(12)>>2,p[14]=T(12)&3,p[15]=T(13),p[16]=T(14),p[17]=T(15),b+=16,g=0}function P(){Z[0]=0,Z[1]=0,_[0]=0,_[1]=0}if(h==7)throw h;if(h==6){var G=u==12,Q=G?R:z,Y=G?14:11,K=G?128:512,O=G?2048:8192,H=G?16383:65535,j=G?4095:16383,J=l/Y,U=J*16,i0=G?18:14;for(W=0;WI&&(B0+=_[x]-I),_[x]=B0):(Z[x]=B0,B0?_[x]=B0:B0=_[x]),S[B+F++]=B0-15<=H?B0-15&H:B0+2147483633>>31&j}}}}else if(h==5){var o0=u==12?10:9;for(W=0;W>4),S[B++]=((p[4]&15)<<8)+p[3],S[B++]=16*p[5]+(p[4]>>4),S[B++]=((p[7]&15)<<8)+p[6],S[B++]=16*p[8]+(p[7]>>4),S[B++]=((p[10]&15)<<8)+p[9],S[B++]=16*p[11]+(p[10]>>4),S[B++]=((p[13]&15)<<8)+p[12],S[B++]=16*p[14]+(p[13]>>4)):u==14&&(S[B++]=p[0]+((p[1]&63)<<8),S[B++]=(p[1]>>6)+4*p[2]+((p[3]&15)<<10),S[B++]=(p[3]>>4)+16*p[4]+((p[5]&3)<<12),S[B++]=((p[5]&252)>>2)+(p[6]<<6),S[B++]=p[7]+((p[8]&63)<<8),S[B++]=(p[8]>>6)+4*p[9]+((p[10]&15)<<10),S[B++]=(p[10]>>4)+16*p[11]+((p[12]&3)<<12),S[B++]=((p[12]&252)>>2)+(p[13]<<6),S[B++]=p[14]+((p[15]&63)<<8))}else if(h==4)for(W=0;W>3-M(2)),_[x]?(C=M(8),C!=0&&(Z[x]-=128<11)&&(Z[x]=_[x]<<4|M(4))),S[B++]=Z[F&1];else throw h},e.decode._decodeVC5=function(){var r=[1,0,1,0,2,2,1,1,3,7,1,2,5,25,1,3,6,48,1,4,6,54,1,5,7,111,1,8,7,99,1,6,7,105,12,0,7,107,1,7,8,209,20,0,8,212,1,9,8,220,1,10,9,393,1,11,9,394,32,0,9,416,1,12,9,427,1,13,10,887,1,18,10,784,1,14,10,790,1,15,10,835,60,0,10,852,1,16,10,885,1,17,11,1571,1,19,11,1668,1,20,11,1669,100,0,11,1707,1,21,11,1772,1,22,12,3547,1,29,12,3164,1,24,12,3166,1,25,12,3140,1,23,12,3413,1,26,12,3537,1,27,12,3539,1,28,13,7093,1,35,13,6283,1,30,13,6331,1,31,13,6335,180,0,13,6824,1,32,13,7072,1,33,13,7077,320,0,13,7076,1,34,14,12565,1,36,14,12661,1,37,14,12669,1,38,14,13651,1,39,14,14184,1,40,15,28295,1,46,15,28371,1,47,15,25320,1,42,15,25336,1,43,15,25128,1,41,15,27300,1,44,15,28293,1,45,16,50259,1,48,16,50643,1,49,16,50675,1,50,16,56740,1,53,16,56584,1,51,16,56588,1,52,17,113483,1,61,17,113482,1,60,17,101285,1,55,17,101349,1,56,17,109205,1,57,17,109207,1,58,17,100516,1,54,17,113171,1,59,18,202568,1,62,18,202696,1,63,18,218408,1,64,18,218412,1,65,18,226340,1,66,18,226356,1,67,18,226358,1,68,19,402068,1,69,19,405138,1,70,19,405394,1,71,19,436818,1,72,19,436826,1,73,19,452714,1,75,19,452718,1,76,19,452682,1,74,20,804138,1,77,20,810279,1,78,20,810790,1,79,20,873638,1,80,20,873654,1,81,20,905366,1,82,20,905430,1,83,20,905438,1,84,21,1608278,1,85,21,1620557,1,86,21,1621582,1,87,21,1621583,1,88,21,1747310,1,89,21,1810734,1,90,21,1810735,1,91,21,1810863,1,92,21,1810879,1,93,22,3621725,1,99,22,3621757,1,100,22,3241112,1,94,22,3494556,1,95,22,3494557,1,96,22,3494622,1,97,22,3494623,1,98,23,6482227,1,102,23,6433117,1,101,23,6989117,1,103,23,6989119,1,105,23,6989118,1,104,23,7243449,1,106,23,7243512,1,107,24,13978233,1,111,24,12964453,1,109,24,12866232,1,108,24,14486897,1,113,24,13978232,1,110,24,14486896,1,112,24,14487026,1,114,24,14487027,1,115,25,25732598,1,225,25,25732597,1,189,25,25732596,1,188,25,25732595,1,203,25,25732594,1,202,25,25732593,1,197,25,25732592,1,207,25,25732591,1,169,25,25732590,1,223,25,25732589,1,159,25,25732522,1,235,25,25732579,1,152,25,25732575,1,192,25,25732489,1,179,25,25732573,1,201,25,25732472,1,172,25,25732576,1,149,25,25732488,1,178,25,25732566,1,120,25,25732571,1,219,25,25732577,1,150,25,25732487,1,127,25,25732506,1,211,25,25732548,1,125,25,25732588,1,158,25,25732486,1,247,25,25732467,1,238,25,25732508,1,163,25,25732552,1,228,25,25732603,1,183,25,25732513,1,217,25,25732587,1,168,25,25732520,1,122,25,25732484,1,128,25,25732562,1,249,25,25732505,1,187,25,25732504,1,186,25,25732483,1,136,25,25928905,1,181,25,25732560,1,255,25,25732500,1,230,25,25732482,1,135,25,25732555,1,233,25,25732568,1,222,25,25732583,1,145,25,25732481,1,134,25,25732586,1,167,25,25732521,1,248,25,25732518,1,209,25,25732480,1,243,25,25732512,1,216,25,25732509,1,164,25,25732547,1,140,25,25732479,1,157,25,25732544,1,239,25,25732574,1,191,25,25732564,1,251,25,25732478,1,156,25,25732546,1,139,25,25732498,1,242,25,25732557,1,133,25,25732477,1,162,25,25732515,1,213,25,25732584,1,165,25,25732514,1,212,25,25732476,1,227,25,25732494,1,198,25,25732531,1,236,25,25732530,1,234,25,25732529,1,117,25,25732528,1,215,25,25732527,1,124,25,25732526,1,123,25,25732525,1,254,25,25732524,1,253,25,25732523,1,148,25,25732570,1,218,25,25732580,1,146,25,25732581,1,147,25,25732569,1,224,25,25732533,1,143,25,25732540,1,184,25,25732541,1,185,25,25732585,1,166,25,25732556,1,132,25,25732485,1,129,25,25732563,1,250,25,25732578,1,151,25,25732501,1,119,25,25732502,1,193,25,25732536,1,176,25,25732496,1,245,25,25732553,1,229,25,25732516,1,206,25,25732582,1,144,25,25732517,1,208,25,25732558,1,137,25,25732543,1,241,25,25732466,1,237,25,25732507,1,190,25,25732542,1,240,25,25732551,1,131,25,25732554,1,232,25,25732565,1,252,25,25732475,1,171,25,25732493,1,205,25,25732492,1,204,25,25732491,1,118,25,25732490,1,214,25,25928904,1,180,25,25732549,1,126,25,25732602,1,182,25,25732539,1,175,25,25732545,1,141,25,25732559,1,138,25,25732537,1,177,25,25732534,1,153,25,25732503,1,194,25,25732606,1,160,25,25732567,1,121,25,25732538,1,174,25,25732497,1,246,25,25732550,1,130,25,25732572,1,200,25,25732474,1,170,25,25732511,1,221,25,25732601,1,196,25,25732532,1,142,25,25732519,1,210,25,25732495,1,199,25,25732605,1,155,25,25732535,1,154,25,25732499,1,244,25,25732510,1,220,25,25732600,1,195,25,25732607,1,161,25,25732604,1,231,25,25732473,1,173,25,25732599,1,226,26,51465122,1,116,26,51465123,0,1],t,n,f,o=[3,3,3,3,2,2,2,1,1,1],a=24576,A=16384,l=8192,k=A|l;function u(m){var C=m[1],y=m[0][C>>>3]>>>7-(C&7)&1;return m[1]++,y}function h(m,C){if(t==null){t={};for(var y=0;y>>1;return m}function d(m,C){return m>>C}function b(m,C,y,Z,_,x){C[y]=d(d(11*m[_]-4*m[_+x]+m[_+x+x]+4,3)+m[Z],1),C[y+x]=d(d(5*m[_]+4*m[_+x]-m[_+x+x]+4,3)-m[Z],1)}function g(m,C,y,Z,_,x){var B=m[_-x]-m[_+x],I=m[_],W=m[Z];C[y]=d(d(B+4,3)+I+W,1),C[y+x]=d(d(-B+4,3)+I-W,1)}function v(m,C,y,Z,_,x){C[y]=d(d(5*m[_]+4*m[_-x]-m[_-x-x]+4,3)+m[Z],1),C[y+x]=d(d(11*m[_]-4*m[_-x]+m[_-x-x]+4,3)-m[Z],1)}function w(m){return m=m<0?0:m>4095?4095:m,m=f[m]>>>2,m}function p(m,C,y,Z,_,x){Z=new Uint16Array(Z.buffer);var B=Date.now(),I=e._binBE,W=C+y,F,X,E,S,M,T,z,R,P,G,Q,Y,K,O,H,j,J,U;C+=4;for(var i0=x[0]==1;C>>1)*(E>>>1));U=new Int16Array((X>>>1)*(E>>>1)),n=new Int16Array(1024);for(var o0=0;o0<1024;o0++){var g0=o0-512,b0=Math.abs(g0),F=Math.floor(768*b0*b0*b0/(255*255*255))+b0;n[o0]=Math.sign(g0)*F}f=new Uint16Array(4096);for(var X0=(1<<16)-1,o0=0;o0<4096;o0++){var D0=o0,Ai=X0*(Math.pow(113,D0/4095)-1)/112;f[o0]=Math.min(Ai,X0)}}var v0=J[z],Q0=c(X,1+o[S]),U0=c(E,1+o[S]);if(S==0)for(var n0=0;n0>>1)+s0]=m[ti]<<8|m[ti+1]}else{for(var mi=[m,C*8],ni=[],vi=0,a0=Q0*U0,c0=[0,0],w0=0,t0=0;vi0;)ni[vi++]=t0,w0--;for(var j0=(S-1)%3,I0=j0!=1?Q0:0,L0=j0!=0?U0:0,n0=0;n0>>1)+I0,T0=n0*Q0,s0=0;s0>>1,fi=Q0*2,se=U0*2,n0=0;n0>14-Xr*2&3;var j1=Fr[un];if(j1!=0)for(var n0=0;n0>>1)*(X>>>1)+(s0>>>1),Vr=Pa[ti],Oa=Na[ti]-2048,za=Qa[ti]-2048,L1=Ya[ti]-2048,$1=(Oa<<1)+Vr,q1=(za<<1)+Vr,K1=Vr+L1,ef=Vr-L1;i0?(Z[ye]=w(K1),Z[ye+1]=w(q1),Z[ye+X]=w($1),Z[ye+X+1]=w(ef)):(Z[ye]=w($1),Z[ye+1]=w(K1),Z[ye+X]=w(ef),Z[ye+X+1]=w(q1))}C+=B0*4}else if(f0==16388)C+=B0*4;else if(!(p0==8192||p0==8448||p0==9216))throw f0.toString(16)}}console.log(Date.now()-B)}return p}(),e.decode._decodeLogLuv32=function(r,t,n,f,o,a){for(var A=r.width,l=A*4,k=0,u=new Uint8Array(l);k>>(b[z]>>>8),g=0;g>>4,o[a+z+1]=y<<4|_>>>4,o[a+z+2]=_<<4|Z>>>4}return}var x=new Uint16Array(16),B,I,W,F,X,E,S,M,T,z,R,P=new Uint8Array(A+1);for(B=0;B>>11,E=15&W>>>22,S=15&W>>>26,M=0;M<4&&128<>3))>>>(T&7)&127)<2047&&(x[z]=2047),T+=7);for(z=0;z<16;z++,I+=2){var C=x[z]<<1;e.decode._putsF(o,(B*A+I)*k,C<<16-k)}I-=I&1?1:31}}},e.decode._decodeNikon=function(r,t,n,f,o,a,A){var l=[[0,0,1,5,1,1,1,1,1,1,2,0,0,0,0,0,0,5,4,3,6,2,7,1,0,8,9,11,10,12],[0,0,1,5,1,1,1,1,1,1,2,0,0,0,0,0,0,57,90,56,39,22,5,4,3,2,1,0,11,12,12],[0,0,1,4,2,3,1,2,0,0,0,0,0,0,0,0,0,5,4,6,3,7,2,8,1,9,0,10,11,12],[0,0,1,4,3,1,1,1,1,1,2,0,0,0,0,0,0,5,6,4,7,8,3,9,2,1,0,10,11,12,13,14],[0,0,1,5,1,1,1,1,1,1,1,2,0,0,0,0,0,8,92,75,58,41,7,6,5,4,3,2,1,0,13,14],[0,0,1,4,2,2,3,1,2,0,0,0,0,0,0,0,0,7,6,8,5,9,4,10,3,11,12,2,0,1,13,14]],k=r.t256[0],u=r.t257[0],h=r.t258[0],c=0,d=0,b=e.decode._make_decoder,g=e.decode._getbithuff,v=t[0].exifIFD.makerNote,w=v.t150?v.t150:v.t140,p=0;if(v.t147&&v.t147[0]==2){for(var m=Math.ceil(k/10),C=m*16,y=k*3>>>1,Z=0;Z1&&(E=Math.floor(X/(S-1))),x==68&&B==32&&E>0&&(d=W.readShort(w,562));var M,T,z,R,P,G,Q=0,Y=[0,0],K=b(l[c]),O=[f,0,0,0];for(Q=T=0;T>>4,G=(g(n,O,R-P,0)<<1)+1<

>>1,G&1<>>3;r[f]|=n>>>16,r[f+1]|=n>>>8,r[f+2]|=n},e.decode._getbithuff=function(r,t,n,f){var o=0,a=e.decode._get_byte,A,l=t[0],k=t[1],u=t[2],h=t[3];if(n==0||u<0)return 0;for(;!h&&u>>32-n,f?(u-=f[A+1]>>>8,A=f[A+1]&255):u-=n,u<0)throw"e";return t[0]=l,t[1]=k,t[2]=u,t[3]=h,A},e.decode._make_decoder=function(r){var t,n,f,o,a,A=[];for(t=16;t!=0&&!r[t];t--);var l=17;for(A[0]=t,f=n=1;n<=t;n++)for(o=0;o>>8;else for(var d=0;d>>8,o[a+(d<<1)+1]=p[d]&255;else if(v==14||v==12||v==10)for(var F=16-v,d=0;d1),!v){if(t[n]==255&&t[n+1]==o)return{jpegOffset:n};if(C!=null&&(t[n+y]==255&&t[n+y+1]==o?c=n+y:i("JPEGInterchangeFormat does not point to SOI"),Z==null?i("JPEGInterchangeFormatLength field is missing"):(y>=d||y+_<=d)&&i("JPEGInterchangeFormatLength field value is invalid"),c!=null))return{jpegOffset:c}}if(B!=null&&(I=B[0],W=B[1]),C!=null&&Z!=null)if(_>=2&&y+_<=d){for(t[n+y+_-2]==255&&t[n+y+_-1]==o?b=new Uint8Array(_-2):b=new Uint8Array(_),w=0;w offset to first strip or tile");if(b==null){var E=0,S=[];S[E++]=255,S[E++]=o;var M=r.t519;if(M==null)throw new Error("JPEGQTables tag is missing");for(w=0;w>>8,S[E++]=z&255,S[E++]=w|m<<4,p=0;p<16;p++)S[E++]=t[n+T[w]+p];for(p=0;p>>8&255,S[E++]=r.height&255,S[E++]=r.width>>>8&255,S[E++]=r.width&255,S[E++]=F,F==1)S[E++]=1,S[E++]=17,S[E++]=0;else for(w=0;w<3;w++)S[E++]=w+1,S[E++]=w!=0?17:(I&15)<<4|W&15,S[E++]=w;X!=null&&X[0]!=0&&(S[E++]=255,S[E++]=k,S[E++]=0,S[E++]=4,S[E++]=X[0]>>>8&255,S[E++]=X[0]&255),b=new Uint8Array(S)}var R=-1;for(w=0;w>>8&255,b[G++]=r.height&255,b[G++]=r.width>>>8&255,b[G++]=r.width&255,b[G++]=F,F==1)b[G++]=1,b[G++]=17,b[G++]=0;else for(w=0;w<3;w++)b[G++]=w+1,b[G++]=w!=0?17:(I&15)<<4|W&15,b[G++]=w}if(t[d]==255&&t[d+1]==h){var Q=t[d+2]<<8|t[d+3];for(g=new Uint8Array(Q+2),g[0]=t[d],g[1]=t[d+1],g[2]=t[d+2],g[3]=t[d+3],w=0;w>>8&255,u[c.sofPosition+6]=r.height&255,u[c.sofPosition+7]=r.width>>>8&255,u[c.sofPosition+8]=r.width&255,(t[n]!=255||t[n+1]!=SOS)&&(u.set(c.sosMarker,h),h+=sosMarker.length),A=0;A=0&&k<128)for(var u=0;u=-127&&k<0){for(var u=0;u<-k+1;u++)A[o]=a[t],o++;t++}}return o},e.decode._decodeThunder=function(r,t,n,f,o){for(var a=[0,1,0,-1],A=[0,1,2,3,0,-3,-2,-1],l=t+n,k=o*2,u=0;t>>6,d=h&63;if(t++,c==3&&(u=d&15,f[k>>>1]|=u<<4*(1-k&1),k++),c==0)for(var b=0;b>>1]|=u<<4*(1-k&1),k++;if(c==2)for(var b=0;b<2;b++){var g=d>>>3*(1-b)&7;g!=4&&(u+=A[g],f[k>>>1]|=u<<4*(1-k&1),k++)}if(c==1)for(var b=0;b<3;b++){var g=d>>>2*(2-b)&3;g!=2&&(u+=a[g],f[k>>>1]|=u<<4*(1-k&1),k++)}}},e.decode._dmap={1:0,"011":1,"000011":2,"0000011":3,"010":-1,"000010":-2,"0000010":-3},e.decode._lens=function(){var r=function(k,u,h,c){for(var d=0;d>>3>>3]>>>7-(k&7)&1),A==2&&(B=r[k>>>3]>>>(k&7)&1),k++,h+=B,Z=="H"){if(l._lens[C][h]!=null){var I=l._lens[C][h];h="",u+=I,I<64&&(l._addNtimes(c,u,C),g+=u,C=1-C,u=0,_--,_==0&&(Z=""))}}else h=="0001"&&(h="",l._addNtimes(c,m-g,C),g=m),h=="001"&&(h="",Z="H",_=2),l._dmap[h]!=null&&(v=p+l._dmap[h],l._addNtimes(c,v-g,C),g=v,h="",C=1-C);c.length==a&&Z==""&&(l._writeBits(c,f,o*8+y*x),C=0,y++,g=0,d=l._makeDiff(c),c=[])}},e.decode._findDiff=function(r,t,n){for(var f=0;f=t&&r[f+1]==n)return r[f]},e.decode._makeDiff=function(r){var t=[];r[0]==1&&t.push(0,1);for(var n=1;n>>3>>3]>>>7-(k&7)&1),A==2&&(v=r[k>>>3]>>>(k&7)&1),k++,h+=v,u=l._lens[d][h],u!=null&&(l._addNtimes(c,u,d),h="",u<64&&(d=1-d),c.length==a&&(l._writeBits(c,f,o*8+b*g),c=[],b++,d=0,k&7&&(k+=8-(k&7)),u>=64&&(k+=8)))}},e.decode._decodeG3=function(r,t,n,f,o,a,A,l){for(var k=e.decode,u=t<<3,h=0,c="",d=[],b=[],g=0;g>>3>>3]>>>7-(u&7)&1),A==2&&(W=r[u>>>3]>>>(u&7)&1),u++,c+=W,B){if(k._lens[y][c]!=null){var F=k._lens[y][c];c="",h+=F,F<64&&(k._addNtimes(d,h,y),y=1-y,h=0)}}else if(_=="H"){if(k._lens[y][c]!=null){var F=k._lens[y][c];c="",h+=F,F<64&&(k._addNtimes(d,h,y),v+=h,y=1-y,h=0,x--,x==0&&(_=""))}}else c=="0001"&&(c="",k._addNtimes(d,C-v,y),v=C),c=="001"&&(c="",_="H",x=2),k._dmap[c]!=null&&(w=m+k._dmap[c],k._addNtimes(d,w-v,y),v=w,c="",y=1-y);c.endsWith("000000000001")&&(Z>=0&&k._writeBits(d,f,o*8+Z*I),l&&(A==1&&(B=(r[u>>>3]>>>7-(u&7)&1)==1),A==2&&(B=(r[u>>>3]>>>(u&7)&1)==1),u++),c="",y=0,Z++,v=0,b=k._makeDiff(d),d=[])}d.length==a&&k._writeBits(d,f,o*8+Z*I)},e.decode._addNtimes=function(r,t,n){for(var f=0;f>>3]|=r[f]<<7-(n+f&7)},e.decode._decodeLZW=e.decode._decodeLZW=function(){var r,t,n,f,o=0,a=0,A=0,l=0,k=function(){var w=r>>>3,p=t[w]<<16|t[w+1]<<8|t[w+2],m=p>>>24-(r&7)-a&(1<>>----------------");for(var k=0;kt.buffer.byteLength&&(c=t.buffer.byteLength-g),b=new Uint8Array(t.buffer,g,c)}if(h==2){var v=c<5?n-4:d,w=t[v],p=Math.max(0,Math.min(c-1,t.length-v));w<128||p==0?b.push(r.readASCII(t,v,p)):b=new Uint8Array(t.buffer,v,p)}if(h==3)for(var m=0;m4&&(r.writeUint(n,f,l),w=l),c==1||c==7)for(var p=0;p4&&(v+=v&1,l+=v),f+=4}}return[f,l]},e.toRGBA8=function(r,t){function n(L0){return L0<.0031308?12.92*L0:1.055*Math.pow(L0,1/2.4)-.055}var f=r.width,o=r.height,a=f*o,A=a*4,l=r.data,k=new Uint8Array(a*4),u=r.t262?r.t262[0]:2,h=r.t258?Math.min(32,r.t258[0]):1;r.t262==null&&h==1&&(u=0);var c=r.t277?r.t277[0]:r.t258?r.t258.length:[1,1,3,1,1,4,3][u],d=r.t339?r.t339[0]:null;if(u==1&&h==32&&d!=3)throw"e";var b=Math.ceil(c*h*f/8);if(u==0){t=1/256;for(var g=0;g>3)]>>7-(p&7)&1;k[m]=k[m+1]=k[m+2]=(1-C)*255,k[m+3]=255}if(h==4)for(var p=0;p>1)]>>4-4*(p&1)&15;k[m]=k[m+1]=k[m+2]=(15-C)*17,k[m+3]=255}if(h==8)for(var p=0;p>3)]>>7-(p&7)&1;k[m]=k[m+1]=k[m+2]=C*255,k[m+3]=255}if(h==2)for(var p=0;p>2)]>>6-2*(p&3)&3;k[m]=k[m+1]=k[m+2]=C*85,k[m+3]=255}if(h==8)for(var p=0;p>>2)+p,C=Z[y];k[m]=k[m+1]=k[m+2]=~~(.5+255*C),k[m+3]=255}}}else if(u==2)if(h==8){if(c==1)for(var p=0;p=4)for(var p=0;p1&&r.t338&&r.t338[0]!=0,g=0;g>>3)]>>>7-(M&7)&1;else if(h==2)T=l[z+(M>>>2)]>>>6-2*(M&3)&3;else if(h==4)T=l[z+(M>>>1)]>>>4-4*(M&1)&15;else if(h==8)T=l[z+M*c];else throw h;k[m]=X[T]>>8,k[m+1]=X[E+T]>>8,k[m+2]=X[E+E+T]>>8,k[m+3]=S?l[z+M*c+1]:255}else if(u==5)for(var R=c>4?1:0,p=0;p>>1),Y=l[P+(J&1)],U=l[P+2]-128,i0=l[P+3]-128,$=Y+((i0>>2)+(i0>>3)+(i0>>5)),t0=Y-((U>>2)+(U>>4)+(U>>5))-((i0>>1)+(i0>>3)+(i0>>4)+(i0>>5)),f0=Y+(U+(U>>1)+(U>>2)+(U>>6));k[m]=Math.max(0,Math.min(255,$)),k[m+1]=Math.max(0,Math.min(255,t0)),k[m+2]=Math.max(0,Math.min(255,f0)),k[m+3]=255}else if(u==8){if(c!=3||h!=16)throw"e";for(var p0=new Uint16Array(l.buffer),B0=new Int16Array(l.buffer),Q=[3.1338561,-1.6168667,-.4906146,-.9787684,1.9161415,.033454,.0719453,-.2289914,1.4052427],g=0;gX0?Q0:(116*v0-16)/b0,ti=Ai>X0?Ai:(116*D0-16)/b0,mi=n0>X0?n0:(116*U0-16)/b0,ni=mi*(96.42/100),Y=ti*(100/100),vi=s0*(82.49/100);k[m]=Math.max(0,Math.min(255,n(ni*Q[0]+Y*Q[1]+vi*Q[2])*255)),k[m+1]=Math.max(0,Math.min(255,n(ni*Q[3]+Y*Q[4]+vi*Q[5])*255)),k[m+2]=Math.max(0,Math.min(255,n(ni*Q[6]+Y*Q[7]+vi*Q[8])*255)),k[m+3]=255}}else if(u==32845)for(var g=0;gf&&(f=l,o=A)}}e.decodeImage(r,o,t);var k=e.toRGBA8(o),u=o.width,h=o.height,c=document.createElement("canvas");c.width=u,c.height=h;var d=c.getContext("2d"),b=new ImageData(new Uint8ClampedArray(k.buffer),u,h);return d.putImageData(b,0,0),c.toDataURL()},e._binBE={nextZero:function(r,t){for(;r[t]!=0;)t++;return t},readUshort:function(r,t){return r[t]<<8|r[t+1]},readShort:function(r,t){var n=e._binBE.ui8;return n[0]=r[t+1],n[1]=r[t+0],e._binBE.i16[0]},readInt:function(r,t){var n=e._binBE.ui8;return n[0]=r[t+3],n[1]=r[t+2],n[2]=r[t+1],n[3]=r[t+0],e._binBE.i32[0]},readUint:function(r,t){var n=e._binBE.ui8;return n[0]=r[t+3],n[1]=r[t+2],n[2]=r[t+1],n[3]=r[t+0],e._binBE.ui32[0]},readASCII:function(r,t,n){for(var f="",o=0;o>8&255,r[t+1]=n&255},writeInt:function(r,t,n){var f=e._binBE.ui8;e._binBE.i32[0]=n,r[t+3]=f[0],r[t+2]=f[1],r[t+1]=f[2],r[t+0]=f[3]},writeUint:function(r,t,n){r[t]=n>>24&255,r[t+1]=n>>16&255,r[t+2]=n>>8&255,r[t+3]=n>>0&255},writeASCII:function(r,t,n){for(var f=0;f>8&255},writeInt:function(r,t,n){var f=e._binBE.ui8;e._binBE.i32[0]=n,r[t+0]=f[0],r[t+1]=f[1],r[t+2]=f[2],r[t+3]=f[3]},writeUint:function(r,t,n){r[t]=n>>>0&255,r[t+1]=n>>>8&255,r[t+2]=n>>>16&255,r[t+3]=n>>>24&255},writeASCII:e._binBE.writeASCII},e._copyTile=function(r,t,n,f,o,a,A,l){for(var k=Math.min(t,o-A),u=Math.min(n,a-l),h=0;h>>2<<5));o==0;){if(o=w(t,d,1),a=w(t,d+1,2),d+=3,a==0){d&7&&(d+=8-(d&7));var B=(d>>>3)+4,I=t[B-4]|t[B-3]<<8;x&&(n=r.H.W(n,c+I)),n.set(new f(t.buffer,t.byteOffset+B,I),c),d=B+I<<3,c+=I;continue}if(x&&(n=r.H.W(n,c+(1<<17))),a==1&&(b=_.J,g=_.h,u=(1<<9)-1,h=(1<<5)-1),a==2){A=p(t,d,5)+257,l=p(t,d+5,5)+1,k=p(t,d+10,4)+4,d+=14;for(var W=d,F=1,X=0;X<38;X+=2)_.Q[X]=0,_.Q[X+1]=0;for(var X=0;XF&&(F=E)}d+=3*k,C(_.Q,F),y(_.Q,F,_.u),b=_.w,g=_.d,d=m(_.u,(1<>>4;if(!(z>>>8))n[c++]=z;else{if(z==256)break;var R=c+z-254;if(z>264){var P=_.q[z-257];R=c+(P>>>3)+p(t,d,P&7),d+=P&7}var G=g[Z(t,d)&h];d+=G&15;var Q=G>>>4,Y=_.c[Q],K=(Y>>>4)+w(t,d,Y&15);for(d+=Y&15;c>>4;if(c<=15)A[u]=c,u++;else{var d=0,b=0;c==16?(b=3+l(o,a,2),a+=2,d=A[u-1]):c==17?(b=3+l(o,a,3),a+=3):c==18&&(b=11+l(o,a,7),a+=7);for(var g=u+b;u>>1;Aa&&(a=k),A++}for(;A>1,u=t[l+1],h=k<<4|u,c=n-u,d=t[l]<>>15-n;f[g]=h,d++}},r.H.l=function(t,n){for(var f=r.H.m.r,o=15-n,a=0;a>>o}},r.H.M=function(t,n,f){f=f<<(n&7);var o=n>>>3;t[o]|=f,t[o+1]|=f>>>8},r.H.I=function(t,n,f){f=f<<(n&7);var o=n>>>3;t[o]|=f,t[o+1]|=f>>>8,t[o+2]|=f>>>16},r.H.e=function(t,n,f){return(t[n>>>3]|t[(n>>>3)+1]<<8)>>>(n&7)&(1<>>3]|t[(n>>>3)+1]<<8|t[(n>>>3)+2]<<16)>>>(n&7)&(1<>>3]|t[(n>>>3)+1]<<8|t[(n>>>3)+2]<<16)>>>(n&7)},r.H.i=function(t,n){return(t[n>>>3]|t[(n>>>3)+1]<<8|t[(n>>>3)+2]<<16|t[(n>>>3)+3]<<24)>>>(n&7)},r.H.m=function(){var t=Uint16Array,n=Uint32Array;return{K:new t(16),j:new t(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new t(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new n(32),J:new t(512),_:[],h:new t(32),$:[],w:new t(32768),C:[],v:[],d:new t(32768),D:[],u:new t(512),Q:[],r:new t(1<<15),s:new n(286),Y:new n(30),a:new n(19),t:new n(15e3),k:new t(1<<16),g:new t(1<<15)}}(),function(){for(var t=r.H.m,n=1<<15,f=0;f>>1|(o&1431655765)<<1,o=(o&3435973836)>>>2|(o&858993459)<<2,o=(o&4042322160)>>>4|(o&252645135)<<4,o=(o&4278255360)>>>8|(o&16711935)<<8,t.r[f]=(o>>>16|o<<16)>>>17}function a(A,l,k){for(;l--!=0;)A.push(0,k)}for(var f=0;f<32;f++)t.q[f]=t.S[f]<<3|t.T[f],t.c[f]=t.p[f]<<4|t.z[f];a(t._,144,8),a(t._,255-143,9),a(t._,279-255,7),a(t._,287-279,8),r.H.n(t._,9),r.H.A(t._,9,t.J),r.H.l(t._,9),a(t.$,32,5),r.H.n(t.$,5),r.H.A(t.$,5,t.h),r.H.l(t.$,5),a(t.Q,19,0),a(t.C,286,0),a(t.D,30,0),a(t.v,320,0)}(),r.H.N}(),e.LosslessJpegDecode=function(){var r,t;function n(){return r[t++]}function f(){return r[t++]<<8|r[t++]}function o(w){for(var p=n(),m=[0,0,0,255],C=[],y=8,Z=0;Z<16;Z++)C[Z]=n();for(var Z=0;Z<16;Z++)for(var _=0;_>--I&1,F=m[F+X];B[Z]=F}}function a(w,p,m,C){if(w[p+3]!=255)return 0;if(m==0)return p;for(var y=0;y<2;y++){w[p+y]==0&&(w[p+y]=w.length,w.push(0,0,C,255));var Z=a(w,w[p+y],m-1,C+1);if(Z!=0)return Z}return 0}function A(w){for(var p=w.c,m=w.f;p<25&&w.d>(p.c-=w)&65535>>16-w}function k(w,p){var m=w[0],C=0,y=255,Z=0;p.c<16&&A(p);var _=p.f>>p.c-8&255;for(C=w[1][_],y=m[C+3],p.c-=m[C+2];y==255;)Z=p.f>>--p.c&1,C=m[C+Z],y=m[C+3];return y}function u(w,p){return w<32768>>16-p&&(w+=-(1<>4,M&15]}}else if(F==65476)for(var z=t+X-2;t>>4],Z[P[0]]=P.slice(1)}m=n(),t+=2;break}else F==65501?y=f():t+=X-2}var G=C>8?Uint16Array:Uint8Array,Q=new G(I*W*B),Y={c:0,f:0,b:m==8,d:t,data:r,a:r.length,e:y};if(Y.b)b(Q,W*B,Y,x[0],I);else{for(var K=[],O=0,H=0,E=0;EO&&(O=J),U>H&&(H=U),K.push(J*U)}if(O!=1||H!=1){if(B!=3||K[1]!=1||K[2]!=1||O!=2||H!=1&&H!=2)throw"e";for(var i0=[],$=0,E=0;E>>1)*f0+(J>>>1))*$,D0=(U&1)*2+(J&1);Q[b0]=g0[X0+D0],Q[b0+1]=g0[X0+4],Q[b0+2]=g0[X0+5]}else for(var J=0;J>>1))*$,D0=J&1;Q[b0]=g0[X0+D0],Q[b0+1]=g0[X0+2],Q[b0+2]=g0[X0+3]}}else if(c(Q,W*B,Y,x,B,I),y==0)v(Q,m,W,I,0,B,B,C);else for(var Ai=Math.floor(y/W),U=0;U>>1);else if(p==6)T=w[S]+(M-w[S-_]>>>1);else if(p==7)T=M+w[S]>>>1;else throw p;w[E]+=T}}}return g}(),function(){var r=0,t=1,n=2,f=3,o=4,a=5,A=6,l=7,k=8,u=9,h=10,c=11,d=12,b=13,g=14,v=15,w=16,p=17,m=18;function C(R){var P=e._binBE.readUshort,G={b:P(R,0),i:R[2],C:R[3],u:R[4],q:P(R,5),k:P(R,7),e:P(R,9),l:P(R,11),s:R[13],d:P(R,14)};if(G.b!=18771||G.i>1||G.q<6||G.q%6||G.e<768||G.e%24||G.l!=768||G.k=G.l||G.s>16||G.s!=G.k/G.l||G.s!=Math.ceil(G.e/G.l)||G.d!=G.q/6||G.u!=12&&G.u!=14&&G.u!=16||G.C!=16&&G.C!=0)throw"Invalid data";if(G.i==0)throw"Not implemented. We need this file!";return G.h=G.C==16,G.m=(G.h?G.l*2/3:G.l>>>1)|0,G.A=G.m+2,G.f=64,G.g=(1<>>6),Q=0;Q<3;Q++)for(var Y=0;Y<41;Y++)P[Q][Y]=[G,1];return P}function I(R){for(var P=-1,G=0;!G;P++)G=R[R.j]>>>7-R.a&1,R.a++,R.a&=7,R.a||R.j++;return P}function W(R,P){var G=0,Q=8-R.a,Y=R.j,K=R.a;if(P){if(P>=Q)do G<<=Q,P-=Q,G|=R[R.j]&(1<=8);P&&(G<<=P,Q-=P,G|=R[R.j]>>>Q&(1<n0&&U0>>2,H){p0[j]=s0;return}t0=P.t*P.c[R.g+b0-o0]+P.c[R.g+g0-b0]}else s0=b0>g0&&b0>X0||b0>>2:D0+Ai>>>1,t0=P.t*P.c[R.g+b0-g0]+P.c[R.g+g0-D0];f0=v0(t0);var ti=I(G);if(ti>>1):$>>>1,O[f0][0]+=v0($),O[f0][1]==R.f&&(O[f0][0]>>>=1,O[f0][1]>>>=1),O[f0][1]++,s0=t0<0?s0-$:s0+$,R.i&&(s0<0?s0+=P.w:s0>R.g&&(s0-=P.w)),p0[j]=s0>=0?Math.min(s0,R.g):0}function E(R,P,G){for(var Q=R[0].length,Y=P;Y<=G;Y++)R[Y][0]=R[Y-1][1],R[Y][Q-1]=R[Y-1][Q-2]}function S(R){E(R,l,d),E(R,n,o),E(R,v,p)}function M(R,P,G,Q,Y,K,O,H,j,J,U,i0,$){for(var t0=0,f0=1,p0=Yo;f08&&(X(R,P,G,Q,Y,f0,H[j]),X(R,P,G,Q,K,f0,H[j]),f0+=2);S(Q)}function T(R,P,G,Q,Y,K){M(R,P,G,Q,n,l,Y,K,0,0,1,0,8),M(R,P,G,Q,k,v,Y,K,1,0,1,0,8),M(R,P,G,Q,f,u,Y,K,2,1,0,3,0),M(R,P,G,Q,h,w,Y,K,0,0,0,3,2),M(R,P,G,Q,o,c,Y,K,1,0,0,3,2),M(R,P,G,Q,d,p,Y,K,2,1,0,3,0)}function z(R,P,G,Q,Y,K){var O=K.length,H=R.l;Y+1==R.s&&(H=R.e-Y*R.l);for(var j=6*R.e*Q+Y*R.l,J=0;J<6;J++){for(var U=0;U>>1):i0==2?$=v+(J>>>1):$=l+J;var t0=R.h?(U*2/3&2147483646|U%3&1)+(U%3>>>1):U>>>1;P[j+U]=G[$][t0+1]}j+=R.e}}e._decompressRAF=function(R,P){var G=C(R),Q=y(R,G),Y=x(G),K=new Int16Array(G.e*G.q);P==null&&(P=G.h?[[1,1,0,1,1,2],[1,1,2,1,1,0],[2,0,1,0,2,1],[1,1,2,1,1,0],[1,1,0,1,1,2],[0,2,1,2,0,1]]:[[0,1],[3,2]]);for(var O=[[r,f],[t,o],[a,c],[A,d],[b,w],[g,p]],H=[],j=0;jWs,isHeic:()=>Bs});var et,Bs,xs,Zs,Ef,Is,Es,Ws,Ff=$a(()=>{et=(s,i,e)=>new Promise((r,t)=>{var n=a=>{try{o(e.next(a))}catch(A){t(A)}},f=a=>{try{o(e.throw(a))}catch(A){t(A)}},o=a=>a.done?r(a.value):Promise.resolve(a.value).then(n,f);o((e=e.apply(s,i)).next())}),Bs=s=>et(void 0,null,function*(){let i=(yield s.arrayBuffer()).slice(8,12);switch(new TextDecoder("utf-8").decode(i).replace("\0"," ").trim()){case"mif1":return!0;case"msf1":return!0;case"heic":case"heix":return!0;case"hevc":case"hevx":return!0}return!1}),xs='(()=>{var h5=(y1=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(y1,{get:(T1,a1)=>(typeof require!="undefined"?require:T1)[a1]}):y1)(function(y1){if(typeof require!="undefined")return require.apply(this,arguments);throw Error(\'Dynamic require of "\'+y1+\'" is not supported\')});var tJ=(y1,T1)=>()=>(y1&&(T1=y1(y1=0)),T1);var oJ=(y1,T1)=>()=>(T1||y1((T1={exports:{}}).exports,T1),T1.exports);var w5=(y1,T1,a1)=>new Promise((F8,O)=>{var K8=l4=>{try{Si(a1.next(l4))}catch(O4){O(O4)}},E8=l4=>{try{Si(a1.throw(l4))}catch(O4){O(O4)}},Si=l4=>l4.done?F8(l4.value):Promise.resolve(l4.value).then(K8,E8);Si((a1=a1.apply(y1,T1)).next())});var lJ,Po,Lo=tJ(()=>{lJ=(()=>{var T1;var y1=typeof document!="undefined"?(T1=document.currentScript)==null?void 0:T1.src:void 0;return typeof __filename!="undefined"&&(y1||(y1=__filename)),function(a1={}){var F8,O=a1,K8,E8,Si=new Promise((F,N)=>{K8=F,E8=N}),l4=typeof window=="object",O4=typeof importScripts=="function",q8=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",v5=Object.assign({},O),m5=[],Me="./this.program",B5=(F,N)=>{throw N},z4="";function Ko(F){return O.locateFile?O.locateFile(F,z4):z4+F}var xe,Oi;if(q8){var ze=h5("fs"),Z5=h5("path");z4=__dirname+"/",Oi=F=>{F=Se(F)?new URL(F):Z5.normalize(F);var N=ze.readFileSync(F);return N},xe=(F,N=!0)=>(F=Se(F)?new URL(F):Z5.normalize(F),new Promise((M,T)=>{ze.readFile(F,N?void 0:"utf8",($,K)=>{$?T($):M(N?K.buffer:K)})})),!O.thisProgram&&process.argv.length>1&&(Me=process.argv[1].replace(/\\\\/g,"/")),m5=process.argv.slice(2),B5=(F,N)=>{throw process.exitCode=F,N}}else(l4||O4)&&(O4?z4=self.location.href:typeof document!="undefined"&&document.currentScript&&(z4=document.currentScript.src),y1&&(z4=y1),z4.startsWith("blob:")?z4="":z4=z4.substr(0,z4.replace(/[?#].*/,"").lastIndexOf("/")+1),O4&&(Oi=F=>{var N=new XMLHttpRequest;return N.open("GET",F,!1),N.responseType="arraybuffer",N.send(null),new Uint8Array(N.response)}),xe=F=>Se(F)?new Promise((N,M)=>{var T=new XMLHttpRequest;T.open("GET",F,!0),T.responseType="arraybuffer",T.onload=()=>{(T.status==200||T.status==0&&T.response)&&M(T.response),N(T.status)},T.onerror=N,T.send(null)}):fetch(F,{credentials:"same-origin"}).then(N=>N.ok?N.arrayBuffer():Promise.reject(new Error(N.status+" : "+N.url))));var He=O.print||console.log.bind(console),ji=O.printErr||console.error.bind(console);Object.assign(O,v5),v5=null,O.arguments&&(m5=O.arguments),O.thisProgram&&(Me=O.thisProgram),O.quit&&(B5=O.quit);var d6;O.wasmBinary&&(d6=O.wasmBinary);var Pi={Memory:function(F){this.buffer=new ArrayBuffer(F.initial*65536)},Module:function(F){},Instance:function(F,N){this.exports=function(T){function $(n1){return n1.set=function(C2,l){this[C2]=l},n1.get=function(C2){return this[C2]},n1}for(var K,o0=new Uint8Array(123),s0=25;s0>=0;--s0)o0[48+s0]=52+s0,o0[65+s0]=s0,o0[97+s0]=26+s0;o0[43]=62,o0[47]=63;function t0(n1,C2,l){for(var X,i,s=0,Q=C2,k0=l.length,Z0=C2+(k0*3>>2)-(l[k0-2]=="=")-(l[k0-1]=="=");s>4,Q>2),Q>2],A){r=f+549|0;break A}if(k=s[f+548|0],!(!(k&1)&s[f+549|0]!=1|i[f+3208>>2]!=i[f+3212>>2])){if(Ut(f+2140|0),!e)break e;i[e>>2]=i[f+2192>>2];break e}if(r=f+549|0,l[f+549|0]&1|(A|k&1))break A;if(r=13,!e)break e;i[e>>2]=1;break e}if(!B9(f+2140|0,0)){if(r=9,!e)break e;i[e>>2]=1;break e}l[d+15|0]=0,A=i[f+580>>2];A:{f:{if(A){if(A&&(k=i[f+564>>2],r=i[f+576>>2],C=i[i[k+(r>>>8&16777212)>>2]+((r&1023)<<2)>>2],i[f+580>>2]=A-1,r=r+1|0,i[f+576>>2]=r,r>>>0>=2048&&(G(i[k>>2]),i[f+564>>2]=i[f+564>>2]+4,i[f+576>>2]=i[f+576>>2]-1024),i[f+584>>2]=i[f+584>>2]-i[C+24>>2]),!C)break r;S=B-32|0,B=S,Z=i[C+20>>2],h=i[C+24>>2],r=S+8|0,i[r+16>>2]=0,i[r+8>>2]=0,i[r+12>>2]=0,i[r+4>>2]=h,i[r>>2]=Z,k=-64;k:{if(!h||(i[r>>2]=Z+1,A=s[Z|0],t=h-1|0,i[r+4>>2]=t,i[r+8>>2]=0,A=A<<24,i[r+12>>2]=A,!t)||(i[r>>2]=Z+2,t=s[Z+1|0],_=h-2|0,i[r+4>>2]=_,i[r+8>>2]=w,A=t<<16|A,i[r+12>>2]=A,!_)||(i[r>>2]=Z+3,t=s[Z+2|0],_=h-3|0,i[r+4>>2]=_,A=t<<8|A,t=A,i[r+8>>2]=w,i[r+12>>2]=A,!_)||(i[r>>2]=Z+4,A=s[Z+3|0],_=h-4|0,i[r+4>>2]=_,i[r+8>>2]=u,A=A|t,i[r+12>>2]=A,!_)||(i[r>>2]=Z+5,t=s[Z+4|0],_=h-5|0,i[r+4>>2]=_,u=A,A=t,t=A>>>8|0,w=A<<24|w,i[r+8>>2]=w,A=t|u,i[r+12>>2]=A,!_)||(i[r>>2]=Z+6,t=s[Z+5|0],_=h-6|0,i[r+4>>2]=_,w=t<<16|w,i[r+8>>2]=w,A=t>>>16|A,i[r+12>>2]=A,!_)||(i[r>>2]=Z+7,t=s[Z+6|0],_=h-7|0,i[r+4>>2]=_,u=A,A=t,t=A>>>24|0,A=A<<8|w,i[r+8>>2]=A,t=t|u,i[r+12>>2]=t,!_))break k;i[r>>2]=Z+8,k=s[Z+7|0],i[r+4>>2]=h-8,i[r+8>>2]=A|k,i[r+12>>2]=t,k=-56}i[r+16>>2]=(((h>>>0>=7?7:h)<<3)+k|0)- -64,l[S+7|0]=0,l[S+5|0]=0,l[S+6|0]=0,ni(r,1),j=S,L=u0(r,6),l[j+5|0]=L,j=S,L=u0(r,6),l[j+6|0]=L,j=S,L=u0(r,3)-1|0,l[j+7|0]=L,r=s[S+5|0],l[f+3204|0]=r,l[f+3206|0]=(r&248)==16,l[f+3205|0]=(r-19&255)>>>0<2;k:{if(s[S+6|0]){w4(f+548|0,C);break k}if(i[f+1904>>2]>>0<=31){o=f,f=S+8|0,t=C,Z=B-16|0,B=Z,A=U(1364),i[A+792>>2]=0,i[A+784>>2]=0,i[A+788>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,q=A+1340|0,r=q,i[r>>2]=0,i[r+4>>2]=0,i[A+1360>>2]=0,i[A+1352>>2]=0,i[A+1356>>2]=0,r=i[A+8>>2],i[A+4>>2]=0,i[A+8>>2]=0;n:{if(!r||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break n;V[i[i[r>>2]+8>>2]](r),g(r)}l[A+40|0]=0,i[A+36>>2]=0,l[A+20|0]=0,i[A+16>>2]=0,X[A+12>>1]=0,i[A>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,X[A+32>>1]=0,Ue(A+42|0),i[A+776>>2]=0,i[A+780>>2]=0,B0(A+144|0,0,237),B0(A+384|0,0,358),l[A+759|0]=0,l[A+760|0]=0,l[A+761|0]=0,l[A+762|0]=0,i[A+752>>2]=0,i[A+756>>2]=0,i[A+744>>2]=0,i[A+748>>2]=0,i[A+764>>2]=0,i[A+768>>2]=0,l[A+772|0]=0,i[A+796>>2]=0,i[A+800>>2]=0,i[A+804>>2]=0,i[A+808>>2]=0,i[A+812>>2]=0,i[A+816>>2]=0,i[A+788>>2]=i[A+784>>2],Ue(A+820|0),B0(A+920|0,0,420),l[A+1348|0]=0,i[A+1356>>2]=i[A+1352>>2],C=f,l[Z+15|0]=0,f=i[A+8>>2],i[A+4>>2]=0,i[A+8>>2]=0;n:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break n;V[i[i[f>>2]+8>>2]](f),g(f)}l[A+40|0]=0,i[A+36>>2]=0,l[A+20|0]=0,i[A+16>>2]=0,X[A+12>>1]=0,i[A>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,X[A+32>>1]=0,k=A+42|0,Ue(k),i[A+776>>2]=0,i[A+780>>2]=0,_=B0(A+144|0,0,237),w=B0(A+384|0,0,358),l[A+759|0]=0,l[A+760|0]=0,l[A+761|0]=0,l[A+762|0]=0,i[A+752>>2]=0,i[A+756>>2]=0,i[A+744>>2]=0,i[A+748>>2]=0,i[A+764>>2]=0,i[A+768>>2]=0,l[A+772|0]=0,i[A+796>>2]=0,i[A+800>>2]=0,i[A+804>>2]=0,i[A+808>>2]=0,i[A+812>>2]=0,i[A+816>>2]=0,i[A+788>>2]=i[A+784>>2],v=A+820|0,Ue(v),B0(A+920|0,0,420),l[A+1348|0]=0,l[A+20|0]=0,i[A+1356>>2]=i[A+1352>>2],j=A,L=u0(C,1),l[j+12|0]=L,s[o+3206|0]&&(j=A,L=u0(C,1),l[j+13|0]=L),f=M0(C),i[A+16>>2]=f;n:{t:{o:{u:{l:{if(!((f|0)!=-99999&(f|0)<=63)||(f=o+(f<<3)|0,n=i[f+856>>2],!n))break l;r=i[f+860>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),i[A+4>>2]=n,f=i[A+8>>2],i[A+8>>2]=r;s:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break s;V[i[i[f>>2]+8>>2]](f),g(f)}if(r=i[A+4>>2],n=i[r+4>>2],!s[n|0]){v2(o+4|0,1010,0);break u}s:{h:{w:{_:{if(!s[A+12|0]){for(f=0,s[r+14|0]?r=u0(C,1):r=0,l[A+20|0]=r,u=i[n+16908>>2];r=f,f=r+1|0,(u|0)>1<>2],!f)break n;i[A>>2]=i[f>>2],r=i[f+4>>2],u=i[f+8>>2],u&&(i[u+4>>2]=i[u+4>>2]+1),i[A+4>>2]=r,r=i[A+8>>2],i[A+8>>2]=u;v:{if(!r||(u=i[r+4>>2],i[r+4>>2]=u-1,u))break v;V[i[i[r>>2]+8>>2]](r),g(r)}l0(A+12|0,f+12|0,772);v:{if((f|0)!=(A|0)){r=i[f+784>>2],u=i[f+788>>2],ki(A+784|0,r,u,u-r>>2),l0(A+796|0,f+796|0,544),Ii(A+1340|0,f+1340|0),l[A+1348|0]=s[f+1348|0],r=i[f+1352>>2],f=i[f+1356>>2],ki(A+1352|0,r,f,f-r>>2);break v}l0(A+796|0,f+796|0,544),Ii(A+1340|0,f+1340|0),l[A+1348|0]=s[f+1348|0]}l[A+20|0]=1,l[A+12|0]=0}if(i[A+24>>2]=h,(h|0)<0)break s;if((h|0)>2])break _;break s}if(i[A+24>>2]=0,l[A+20|0]=0,i[n+16908>>2]<=0)break s;r=i[A+4>>2];break w}if(r=i[A+4>>2],p)break h}if(f=0,l[r+8240|0]>0)for(;ni(C,1),f=f+1|0,(f|0)>2]+8240|0];);if(f=M0(C),i[A+28>>2]=f,!((f|0)!=-99999&(f|0)<=2)){v2(o+4|0,1007,0);break u}s[i[A+4>>2]+43|0]?f=u0(C,1):f=1,l[A+32|0]=f,s[n+480|0]==1&&(j=A,L=u0(C,2),l[j+33|0]=L),h=0,l[A+40|0]=0,i[A+36>>2]=0;w:{_:{v:{Z:{m:{if((s[o+3204|0]-19&255)>>>0>=2){j=A,L=u0(C,i[n+520>>2]),i[j+36>>2]=L,f=u0(C,1),l[A+40|0]=f;B:{if(!(f&255)){Dk(o+4|0,n,C,k,(i[n+8820>>2]-i[n+8816>>2]|0)/100|0,n+8816|0,1),i[A+816>>2]=(i[n+8820>>2]-i[n+8816>>2]|0)/100;break B}for(k=i[n+8816>>2],h=(i[n+8820>>2]-k|0)/100|0,r=0;f=r,r=r+1|0,1<>2],h=(i[n+8820>>2]-k|0)/100|0}if(i[_>>2]=f,(f|0)>=(h|0))break Z;i[A+816>>2]=f,k=m(f,100)+k|0}l0(v,k,100);B:{p:{if(s[n+8828|0]){W:{if(i[n+8832>>2]>0){if(f=M0(C),i[A+148>>2]=f,(f|0)!=-99999)break W;u=8;break n}i[A+148>>2]=0}if(r=M0(C),i[A+152>>2]=r,u=8,(r|0)==-99999)break n;if(f=i[A+148>>2],r=r+f|0,i[(n+(l[n+2|0]<<2)|0)+524>>2]<(s[A+917|0]+(r+s[A+916|0]|0)|0))break v;if((r|0)<=0)break p;for(_=o+2352|0,v=A+268|0,y=A+252|0,W=n+8964|0,I=n+8836|0,z=A+156|0,R=o+2288|0,p=o+2224|0,D=A+236|0,J=A+172|0,h=0,k=0;;){W:{if((f|0)>(k|0)){for(E=i[n+8832>>2],f=0;r=f,f=r+1|0,(E|0)>1<>2]){i[p+(k<<2)>>2]=i[I+(r<<2)>>2],f=W+s[f|0]|0;break W}v2(o+4|0,1023,0);break u}r=k<<2,E=r+J|0,j=E,L=u0(C,i[n+520>>2]),i[j>>2]=L,f=k+D|0,j=f,L=u0(C,1),l[j|0]=L,i[r+p>>2]=i[E>>2]}r=k<<2,E=l[f|0],i[r+R>>2]=E,f=u0(C,1),l[k+y|0]=f;W:{if(f&255){if(f=M0(C),i[r+v>>2]=f,(f|0)!=-99999)break W;break n}f=0,i[r+v>>2]=0}if(h=((E|0)!=0)+h|0,i[r+_>>2]=!k|i[A+148>>2]==(k|0)?f:i[(r+_|0)-4>>2]+f|0,k=k+1|0,f=i[A+148>>2],!((k|0)<(f+i[A+152>>2]|0)))break}break B}i[A+148>>2]=0,i[A+152>>2]=0}h=0}if(s[n+8996|0]){j=A,L=u0(C,1),l[j+332|0]=L;break m}l[A+332|0]=0;break m}i[A+148>>2]=0,i[A+152>>2]=0}m:{if(s[n+8799|0]){if(j=A,L=u0(C,1),l[j+333|0]=L,f=0,!i[n+16848>>2])break m;f=u0(C,1);break m}l[A+333|0]=0,f=0}if(i[A+336>>2]=0,i[A+340>>2]=0,l[A+334|0]=f,k0[A+28>>2]>1)break w;f=u0(C,1),l[A+335|0]=f;m:{if(f&255){if(f=M0(C),i[A+336>>2]=f,(f|0)==-99999)break o;if(f=f+1|0,i[A+336>>2]=f,i[A+28>>2]){r=i[A+340>>2];break m}if(f=M0(C),i[A+340>>2]=f,(f|0)==-99999)break o;r=f+1|0,i[A+340>>2]=r,f=i[A+336>>2];break m}r=i[A+4>>2],f=l[r+17|0],i[A+336>>2]=f,r=l[r+18|0],i[A+340>>2]=r}if(u=8,(f|0)>16|(r|0)>16)break n;k=s[A+919|0]+h|0,i[A+920>>2]=k;m:{B:{if(!(!s[i[A+4>>2]+8233|0]|(k|0)<2)){for(r=0;f=r,r=r+1|0,(k|0)>1<>2]<=0))for(k=A+346|0,r=0;j=r+k|0,L=u0(C,f),l[j|0]=L,r=r+1|0,(r|0)>2];);if(!i[A+28>>2]){if(r=u0(C,1),l[A+345|0]=r,!(r&255)|i[A+340>>2]<=0)break B;for(k=A+362|0,r=0;j=r+k|0,L=u0(C,f),l[j|0]=L,r=r+1|0,(r|0)>2];);break B}l[A+345|0]=0;break m}X[A+344>>1]=0}if(i[A+28>>2])break m;j=A,L=u0(C,1),l[j+378|0]=L}if(s[i[A+4>>2]+16|0]?f=u0(C,1):f=0,l[A+379|0]=f,!s[A+332|0])break _;f=1,i[A+28>>2]||(f=u0(C,1)),l[A+380|0]=f,r=f&255;m:{if(!(i[A+340>>2]<2|r)||i[A+336>>2]>1&&r){if(r=M0(C),i[w>>2]=r,(r|0)!=-99999){f=s[A+380|0];break m}break o}r=0,i[w>>2]=0}m:{if(f&255){if(i[A+336>>2]<=(r|0))break m;break _}if(i[A+340>>2]>(r|0))break _}break t}v2(o+4|0,1015,0),u=8;break n}v2(o+4|0,1018,0);break u}_:{if(f=i[A+4>>2],r=i[A+28>>2],!(!(r|!s[f+42|0])||(r|0)==1&&s[f+41|0]))break _;v:{Z:{if(f=i[(o+(i[A+16>>2]<<3)|0)+856>>2],f){if(r=i[(o+(l[f+13|0]<<3)|0)+728>>2],!r)break Z;f=M0(C),l[A+388|0]=f,k=0;m:{if(f>>>0>7)break m;if(i[r+476>>2]){if(f=_1(C)+s[A+388|0]|0,f>>>0>7)break m;l[A+389|0]=f}u=A+678|0,_=A+550|0,z=A+518|0,v=A+454|0,p=A+422|0,y=A+390|0,f=0,w=i[A+336>>2];B:{if((w|0)<=0)break B;for(;j=f+y|0,L=u0(C,1),l[j|0]=L,f=f+1|0,(w|0)!=(f|0););if(!(!i[r+476>>2]|(w|0)<=0))for(f=0;j=f+p|0,L=u0(C,1),l[j|0]=L,f=f+1|0,(w|0)!=(f|0););if((w|0)<=0)break B;for(f=0;;){p:{if(s[f+y|0]){if(k=0,h=_1(C),h-128>>>0<4294967040)break v;if(X[v+(f<<1)>>1]=h+(1<>2],(h|0)<(0-W|0))break m;if((h|0)<(W|0))break p;break m}X[v+(f<<1)>>1]=1<>>0>=4294967040)break W;k=0;break v}k=_+(f<<2)|0,h=1<>1]=h,l[u+(f<<1)|0]=0,X[k+2>>1]=h,k=0;break p}if(W=_+(f<<2)|0,X[W>>1]=k+(1<>2],D=h<<2,(I|0)<(0-D|0)|(I|0)>=(D|0)||(D=0-h|0,I=(h+I|0)-(m(h,X[W>>1])>>s[A+389|0])|0,l[u+(f<<1)|0]=(I|0)<(D|0)?D:(h|0)>(I|0)?I:h-1|0,h=_1(C),h-128>>>0<4294967040)||(X[W+2>>1]=h+(1<>2],D=h<<2,(I|0)<(0-D|0)|(I|0)>=(D|0)))break m;D=0-h|0,k=(h+I|0)-(m(h,X[W+2>>1])>>s[A+389|0])|0,k=(k|0)<(D|0)?D:(k|0)<(h|0)?k:h+255|0}if(l[A0+1|0]=k,f=f+1|0,(w|0)==(f|0))break}}if(k=1,i[A+28>>2])break v;if(w=i[A+340>>2],(w|0)<=0)break m;for(f=0;j=f+y|0,L=u0(C,1),l[j+16|0]=L,f=f+1|0,(w|0)!=(f|0););if(!(!i[r+476>>2]|(w|0)<=0))for(f=0;j=f+p|0,L=u0(C,1),l[j+16|0]=L,f=f+1|0,(w|0)!=(f|0););if((w|0)<=0)break m;for(f=0;;){B:{if(s[(f+y|0)+16|0]){if(k=0,h=_1(C),h-128>>>0<4294967040)break v;if(X[(v+(f<<1)|0)+32>>1]=h+(1<>2],(h|0)<(0-W|0))break m;if((h|0)<(W|0))break B;break m}X[(v+(f<<1)|0)+32>>1]=1<>>0<4294967040)break v;if(I=_+(f<<2)|0,R=I- -64|0,X[R>>1]=h+(1<>2],D=h<<2,(W|0)<(0-D|0)|(W|0)>=(D|0)||(D=0-h|0,W=(h+W|0)-(m(h,X[R>>1])>>s[A+389|0])|0,l[(u+(f<<1)|0)+32|0]=(W|0)<(D|0)?D:(h|0)>(W|0)?W:h-1|0,h=_1(C),h-128>>>0<4294967040)||(X[I+66>>1]=h+(1<>2],R=h<<2,(W|0)<(0-R|0)|(W|0)>=(R|0)))break m;R=0-h|0,k=(h+W|0)-(m(h,X[I+66>>1])>>s[A+389|0])|0,h=(k|0)<(R|0)?R:(k|0)<(h|0)?k:h+255|0;break B}k=_+(f<<2)|0,h=1<>1]=h,l[(u+(f<<1)|0)+32|0]=0,X[k+66>>1]=h,h=0}if(k=1,l[(u+(f<<1)|0)+33|0]=h,f=f+1|0,(w|0)==(f|0))break}}break v}C0(3875,14036,152,10294),P()}C0(3871,14036,154,10294),P()}if(k)break _;break t}if(f=M0(C),i[A+744>>2]=f,(f|0)==-99999)break o;i[A+812>>2]=5-f}if(f=_1(C),i[A+748>>2]=f,(f|0)==-99999)break o;f=i[A+4>>2];w:{if(s[f+40|0]){if(f=_1(C),i[A+752>>2]=f,(f|0)==-99999)break o;if(f=_1(C),i[A+756>>2]=f,(f|0)!=-99999){f=i[A+4>>2];break w}break o}i[A+752>>2]=0,i[A+756>>2]=0}s[f+8248|0]==1&&(j=A,L=u0(C,1),l[j+760|0]=L,f=i[A+4>>2]);w:{_:{if(!s[f+60|0]){l[A+761|0]=0,i[A+764>>2]=i[f+64>>2],i[A+768>>2]=i[f+68>>2];break _}if(r=u0(C,1),l[A+761|0]=r,f=i[A+4>>2],i[A+764>>2]=i[f+64>>2],i[A+768>>2]=i[f+68>>2],!(r&255))break _;if(f=u0(C,1),l[A+762|0]=f,f&255)break w;if(f=_1(C),i[A+764>>2]=f,(f|0)==-99999||(i[A+764>>2]=f<<1,f=_1(C),i[A+768>>2]=f,(f|0)==-99999))break o;i[A+768>>2]=f<<1;break w}l[A+762|0]=s[f+61|0]}if(r=i[A+4>>2],f=s[r+58|0],!(!f|!(!s[A+762|0]||s[A+333|0]|s[A+334|0]))){j=A,L=u0(C,1),l[j+772|0]=L,r=i[A+4>>2];break h}l[A+772|0]=f}h:{if(s[r+46|0]|s[r+45|0]){if(f=M0(C),i[A+776>>2]=f,(f|0)==-99999||(r=i[A+4>>2],!(!s[r+45|0]|i[n+16900>>2]>(f+(i[A+24>>2]/i[n+16892>>2]|0)|0))|!(!s[r+46|0]|(f|0)<=(m(i[r+52>>2],i[r+48>>2])|0))))break o;r=A+784|0,n=i[r>>2],k=i[r+4>>2]-n>>2;w:{if(k>>>0>>0){Qi(r,f-k|0);break w}f>>>0>>0&&(i[r+4>>2]=n+(f<<2))}if(i[A+776>>2]<=0)break h;if(f=M0(C),i[A+780>>2]=f,(f|0)==-99999)break o;if(r=f+1|0,i[A+780>>2]=r,u=8,(f|0)>31)break n;if(i[A+776>>2]<=0||(f=1,r=u0(C,r),i[i[A+784>>2]>>2]=r+1,i[A+776>>2]<2))break h;for(;r=u0(C,i[A+780>>2]),n=i[A+784>>2]+(f<<2)|0,i[n>>2]=(r+i[n-4>>2]|0)+1,f=f+1|0,(f|0)>2];);break h}i[A+776>>2]=0}h:{if(!s[i[A+4>>2]+8241|0])break h;if(r=M0(C),i[A+796>>2]=r,(r|0)==-99999|(r|0)>1e3)break o;if(f=0,(r|0)<=0)break h;for(;u0(C,8),f=f+1|0,(f|0)>2];);}i[A+800>>2]=i[A+748>>2]+i[i[A+4>>2]+20>>2],f=0;h:{w:{_:switch(i[A+28>>2]){case 1:f=l[A+379|0]+1|0;break w;case 2:break w;case 0:break _;default:break h}f=2-l[A+379|0]|0}i[A+804>>2]=f}i[A+812>>2]=5-i[A+744>>2],l[Z+15|0]=1,u=0;break n}v2(o+4|0,1020,0),u=8;break n}v2(o+4|0,1009,0),u=0;break n}l[Z+15|0]=0,u=0;break n}v2(o+4|0,1007,0),u=8;break n}v2(o+4|0,8,0),u=8}i[Z+8>>2]=u;n:{t:{o:{if(!s[Z+15|0]){f=i[o+2216>>2],f&&(l[f+312|0]=2),w4(o+548|0,t),f=i[A+1352>>2],f&&(i[A+1356>>2]=f,G(f)),C8(q),f=i[A+784>>2],f&&(i[A+788>>2]=f,G(f)),f=i[A+8>>2];u:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break u;V[i[i[f>>2]+8>>2]](f),g(f)}G(A),n=i[Z+8>>2];break o}if(n=i[o+528>>2],(n|0)>=0)u:{f=B-864|0,B=f,r=49876;l:{s:{h:{w:switch(n-1|0){case 1:r=49872;break;case 0:break w;default:break h}if(r=i[r>>2],c(r,30991,0),n=i[(o+(i[A+16>>2]<<3)|0)+856>>2],!n){c(r,22306,0);break h}if(!s[n|0])break s;if(u=i[(o+(l[n+13|0]<<3)|0)+728>>2],!u){c(r,22282,0);break h}if(!s[u|0])break l;i[f+848>>2]=l[A+12|0],c(r,27520,f+848|0),(s[o+3204|0]&248)==16&&(i[f+832>>2]=l[A+13|0],c(r,28158,f+832|0)),i[f+816>>2]=i[A+16>>2],c(r,28880,f+816|0),s[A+12|0]||(i[f+800>>2]=l[A+20|0],c(r,28115,f+800|0),i[f+784>>2]=i[A+24>>2],c(r,29656,f+784|0)),k=i[A+28>>2],i[f+768>>2]=k?(k|0)==1?80:73:66,c(r,30364,f+768|0),s[n+43|0]&&(i[f+752>>2]=l[A+32|0],c(r,30104,f+752|0)),s[u+480|0]==1&&(i[f+736>>2]=l[A+33|0],c(r,30147,f+736|0)),i[f+720>>2]=i[A+36>>2],c(r,29388,f+720|0);w:{if((s[o+3204|0]-19&255)>>>0<2)break w;i[f+704>>2]=l[A+40|0],c(r,27239,f+704|0),k=i[u+8820>>2]-i[u+8816>>2]|0;_:{v:{if(!s[A+40|0]){i[f+672>>2]=(k|0)/100,c(r,21478,f+672|0),k=A+42|0;break v}if((k|0)<101)break _;i[f+688>>2]=i[A+144>>2],c(r,28611,f+688|0),k=i[u+8816>>2]+m(i[A+144>>2],100)|0}o7(k,r)}if(s[u+8828|0]&&(i[u+8832>>2]>0&&(i[f+656>>2]=i[A+148>>2],c(r,30281,f+656|0)),i[f+640>>2]=i[A+152>>2],c(r,30190,f+640|0)),!s[u+8996|0])break w;i[f+624>>2]=l[A+332|0],c(r,24824,f+624|0)}if(s[u+8799|0]&&(i[f+608>>2]=l[A+333|0],c(r,29277,f+608|0),i[f+592>>2]=l[A+334|0],c(r,28842,f+592|0)),k0[A+28>>2]<=1){i[f+576>>2]=l[A+335|0],c(r,24531,f+576|0),k=s[A+335|0],i[f+560>>2]=i[A+336>>2],i[f+564>>2]=k?31341:18367,c(r,21891,f+560|0),i[A+28>>2]||(k=s[A+335|0],i[f+544>>2]=i[A+340>>2],i[f+548>>2]=k?31341:18367,c(r,21851,f+544|0));w:{if(!s[n+8233|0]|i[A+920>>2]<2)break w;if(i[f+528>>2]=l[A+344|0],c(r,25449,f+528|0),!(!s[A+344|0]|i[A+336>>2]<=0))for(h=A+346|0,k=0;i[f+516>>2]=s[k+h|0],i[f+512>>2]=k,c(r,23514,f+512|0),k=k+1|0,(k|0)>2];);if(i[f+496>>2]=l[A+345|0],c(r,25409,f+496|0),!s[A+345|0]|i[A+340>>2]<=0)break w;for(h=A+362|0,k=0;i[f+484>>2]=s[k+h|0],i[f+480>>2]=k,c(r,23514,f+480|0),k=k+1|0,(k|0)>2];);}i[A+28>>2]||(i[f+464>>2]=l[A+378|0],c(r,29589,f+464|0)),i[f+448>>2]=l[A+379|0],c(r,29732,f+448|0),s[A+332|0]&&(i[f+432>>2]=l[A+380|0],c(r,27935,f+432|0),i[f+416>>2]=i[A+384>>2],c(r,29078,f+416|0)),k=i[A+28>>2];w:{if(!(!(k|!s[n+42|0])||(k|0)==1&&s[n+41|0]))break w;if(i[f+400>>2]=s[A+388|0],c(r,28078,f+400|0),i[u+476>>2]&&(i[f+384>>2]=s[A+389|0],c(r,28406,f+384|0)),u=A+678|0,h=A+550|0,w=A+518|0,_=A+454|0,v=i[A+336>>2],(v|0)>0)for(k=0;p=k<<1,i[f+376>>2]=X[p+_>>1],i[f+372>>2]=k,i[f+368>>2]=0,c(r,29315,f+368|0),i[f+360>>2]=l[k+w|0],i[f+356>>2]=k,i[f+352>>2]=0,c(r,29041,f+352|0),y=h+(k<<2)|0,i[f+348>>2]=X[y>>1],i[f+344>>2]=0,i[f+340>>2]=k,i[f+336>>2]=0,c(r,27972,f+336|0),p=u+p|0,i[f+332>>2]=l[p|0],i[f+328>>2]=0,i[f+324>>2]=k,i[f+320>>2]=0,c(r,28010,f+320|0),i[f+316>>2]=X[y+2>>1],i[f+312>>2]=1,i[f+308>>2]=k,i[f+304>>2]=0,c(r,27972,f+304|0),i[f+300>>2]=l[p+1|0],i[f+296>>2]=1,i[f+292>>2]=k,i[f+288>>2]=0,c(r,28010,f+288|0),k=k+1|0,(v|0)!=(k|0););if(i[A+28>>2]||(v=i[A+340>>2],(v|0)<=0))break w;for(k=0;p=k<<1,i[f+280>>2]=X[(p+_|0)+32>>1],i[f+276>>2]=k,i[f+272>>2]=1,c(r,29315,f+272|0),i[f+264>>2]=l[(k+w|0)+16|0],i[f+260>>2]=k,i[f+256>>2]=1,c(r,29041,f+256|0),y=h+(k<<2)|0,i[f+252>>2]=X[y- -64>>1],i[f+248>>2]=0,i[f+244>>2]=k,i[f+240>>2]=1,c(r,27972,f+240|0),p=u+p|0,i[f+236>>2]=l[p+32|0],i[f+232>>2]=0,i[f+228>>2]=k,i[f+224>>2]=1,c(r,28010,f+224|0),i[f+220>>2]=X[y+66>>1],i[f+216>>2]=1,i[f+212>>2]=k,i[f+208>>2]=1,c(r,27972,f+208|0),i[f+204>>2]=l[p+33|0],i[f+200>>2]=1,i[f+196>>2]=k,i[f+192>>2]=1,c(r,28010,f+192|0),k=k+1|0,(v|0)!=(k|0););}i[f+176>>2]=i[A+744>>2],c(r,25798,f+176|0)}if(i[f+160>>2]=i[A+748>>2],c(r,28306,f+160|0),s[n+40|0]&&(i[f+144>>2]=i[A+752>>2],c(r,26696,f+144|0),i[f+128>>2]=i[A+756>>2],c(r,26667,f+128|0)),s[n+60|0]&&(i[f+112>>2]=l[A+761|0],c(r,24493,f+112|0)),k=s[A+761|0],i[f+96>>2]=l[A+762|0],i[f+100>>2]=k?18333:18201,c(r,21804,f+96|0),s[A+762|0]|!s[A+761|0]||(i[f+80>>2]=i[A+764>>2],c(r,25635,f+80|0),i[f+64>>2]=i[A+768>>2],c(r,26250,f- -64|0)),!s[n+58|0]|!(!s[A+762|0]||s[A+333|0]|s[A+334|0])||(i[f+48>>2]=l[A+772|0],c(r,24773,f+48|0)),!(s[n+46|0]|s[n+45|0])||(i[f+32>>2]=i[A+776>>2],c(r,26312,f+32|0),i[A+776>>2]<=0)||(i[f+16>>2]=i[A+780>>2],c(r,29849,f+16|0),i[A+776>>2]<=0))break h;for(k=0;i[f+4>>2]=i[i[A+784>>2]+(k<<2)>>2],i[f>>2]=k,c(r,25347,f),k=k+1|0,(k|0)>2];);}B=f+864|0;break u}C0(13583,14036,1287,5797),P()}C0(13569,14036,1294,5797),P()}u=i[t+8>>2],I=i[t+12>>2],z=i[t+16>>2],_=B-80|0,B=_,i[Z+8>>2]=0,l[o+3220|0]=0,r=i[A+16>>2],n=o+(r<<3)|0,f=i[n+856>>2];u:{if(!(s[f|0]&&f)){if(i[_>>2]=r,r=B-16|0,B=r,s[95749]|i[23936]<-9999||(f=i[12469],n=s[22330]==42,n||F1(21511,5,1,f),i[r+12>>2]=_,qr(f,n+22330|0,_,976,977),x8(f)),B=r+16|0,f=i[i[o+2216>>2]+112>>2],r=i[f+84>>2],(r|0)==20){i[f+80>>2]=1001,r=0;break u}i[f+84>>2]=r+1,i[(f+(r<<2)|0)+4>>2]=1009,r=0;break u}r=i[n+860>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),i[o+1384>>2]=f,f=i[o+1388>>2],i[o+1388>>2]=r;l:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break l;V[i[i[f>>2]+8>>2]](f),g(f)}f=o+(l[i[o+1384>>2]+13|0]<<3)|0,n=i[f+728>>2],r=i[f+732>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),i[o+1376>>2]=n,f=i[o+1380>>2],i[o+1380>>2]=r;l:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break l;V[i[i[f>>2]+8>>2]](f),g(f)}f=o+(l[i[o+1376>>2]+1|0]<<3)|0,n=i[f+600>>2],r=i[f+604>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),i[o+1368>>2]=n,f=i[o+1372>>2],i[o+1372>>2]=r;l:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break l;V[i[i[f>>2]+8>>2]](f),g(f)}l:{s:{h:{w:{if(f=i[o+1376>>2],!f){if(f=i[o+1368>>2],f)break w;if(f=6,s[o+2108|0]!=6)break s;break l}if(k=l[f+2|0],f=k-1|0,(f|0)!=l[o+2108|0])break h;break l}if(k=i[f+8>>2],l[o+2108|0]==(k-1|0))break l;f=k-1|0}if((k|0)<=0)break l}for(R=o+2112|0,v=o+1908|0,p=f+1|0;;){r=m(f,100),w=(r+100|0)/(p|0)|0,n=(r|0)/(p|0)|0;s:{if((w|0)<(n|0)){r=f;break s}h=i[o+1888>>2];h:{if(n+w&1){r=f,k=n;break h}r=v+(n<<1)|0,l[r+1|0]=(f|0)>(h|0)?100:0,k=r,r=(f|0)<(h|0)?f:h,l[k|0]=r,k=n+1|0}if((n|0)==(w|0))break s;for(y=w-n|0,f=r;W=v+(k<<1)|0,r=(f|0)<(h|0)?f:h,l[W|0]=r,l[W+1|0]=(f|0)>(h|0)?100:(m(k-n|0,100)|0)/(y|0)|0,W=k+1|0,f=v+(W<<1)|0,l[f+1|0]=(m(W-n|0,100)|0)/(y|0),l[f|0]=r,k=k+2|0,f=r,(w|0)!=(W|0););}if(i[R+(r<<2)>>2]=w,f=r-1|0,!((r|0)>0))break}}f=o+(i[o+1892>>2]<<1)|0,r=l[f+1908|0],i[o+1896>>2]=r,i[o+1900>>2]=l[f+1909|0],i[o+1904>>2]=r;l:{s:{if(s[A+12|0]){if(i[o+2196>>2]=i[A+36>>2],r=s[o+533|0],f=i[o+1376>>2],n=s[f+8799|0],i[_+72>>2]=f,f=i[o+1380>>2],i[_+76>>2]=f,f&&(i[f+4>>2]=i[f+4>>2]+1),f=i[_+76>>2],i[_+40>>2]=i[_+72>>2],i[_+44>>2]=f,f=fn(o+2140|0,_+40|0,o,u,I,z,(r|!n)&1),(f|0)<0){r=0,i[Z+8>>2]=0-f;break u}r=0,n=i[o+2148>>2],f>>>0>2]-n>>2>>>0&&(r=i[n+(f<<2)>>2]),i[o+2216>>2]=r,l[r+316|0]=s[S+7|0],f=s[S+5|0]|s[S+6|0]<<8,l[r+314|0]=f,l[r+315|0]=f>>>8,f=i[o+2216>>2],i[_+64>>2]=i[o+1368>>2],r=i[o+1372>>2],i[_+68>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),i[_+56>>2]=i[o+1376>>2],r=i[o+1380>>2],i[_+60>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),i[_+48>>2]=i[o+1384>>2],r=i[o+1388>>2],i[_+52>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),r=i[_+68>>2],i[_+32>>2]=i[_+64>>2],i[_+36>>2]=r,r=i[_+60>>2],i[_+24>>2]=i[_+56>>2],i[_+28>>2]=r,r=i[_+52>>2],i[_+16>>2]=i[_+48>>2],i[_+20>>2]=r,r=i[_+32>>2],n=i[_+36>>2],n&&(i[n+4>>2]=i[n+4>>2]+1),i[f+116>>2]=r,r=i[f+120>>2],i[f+120>>2]=n;h:{if(!r||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break h;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[_+24>>2],n=i[_+28>>2],n&&(i[n+4>>2]=i[n+4>>2]+1),i[f+124>>2]=r,r=i[f+128>>2],i[f+128>>2]=n;h:{if(!r||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break h;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[_+16>>2],n=i[_+20>>2],n&&(i[n+4>>2]=i[n+4>>2]+1),i[f+132>>2]=r,r=i[f+136>>2],i[f+136>>2]=n;h:{if(!r||(f=i[r+4>>2],i[r+4>>2]=f-1,f))break h;V[i[i[r>>2]+8>>2]](r),g(r)}f=i[_+20>>2];h:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break h;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[_+28>>2];h:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break h;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[_+36>>2];h:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break h;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[o+2216>>2],i[f+112>>2]=o,k=0,h=0,r=i[f+160>>2],r&&B0(r,0,m(i[f+164>>2],3)),r=i[f+140>>2],r&&B0(r,0,m(i[f+144>>2],24)),r=i[f+260>>2],r&&B0(r,0,i[f+264>>2]),n=i[f+144>>2];h:{if((n|0)<=0)break h;if(r=i[f+320>>2],f=0,n>>>0>=8)for(u=n&2147483640;i[r+m(f,76)>>2]=0,i[r+m(f|1,76)>>2]=0,i[r+m(f|2,76)>>2]=0,i[r+m(f|3,76)>>2]=0,i[r+m(f|4,76)>>2]=0,i[r+m(f|5,76)>>2]=0,i[r+m(f|6,76)>>2]=0,i[r+m(f|7,76)>>2]=0,f=f+8|0,h=h+8|0,(u|0)!=(h|0););if(n=n&7,!n)break h;for(;i[r+m(f,76)>>2]=0,f=f+1|0,k=k+1|0,(n|0)!=(k|0););}f=s[o+3204|0];h:{if((f&248)!=16)break h;w:{if(!(s[o+2200|0]|((f|0)==18|(f&254)==16|(f-19&255)>>>0<2))&&s[o+2203|0]!=1)break w;l[o+2203|0]=0,l[o+2201|0]=1;break h}l[o+2201|0]=0,l[o+2202|0]=0}h:{if(!((s[o+3204|0]&254)!=8|s[o+2201|0]!=1)){l[i[o+2216>>2]+104|0]=0;break h}l[i[o+2216>>2]+104|0]=s[A+32|0]!=0}n=0;h:{if(!((s[o+3204|0]&248)!=16|s[o+2201|0]!=1)){l[o+3220|0]=1,i[o+2204>>2]=0,f=i[A+36>>2];break h}f=i[A+36>>2],n=i[o+2208>>2],r=i[i[o+1376>>2]+16868>>2];w:{if(!((f|0)>=(n|0)|(n-f|0)<((r|0)/2|0))){u=r+i[o+2212>>2]|0;break w}if(u=i[o+2212>>2]-r|0,!((f|0)<=(n|0)|(f-n|0)<=((r|0)/2|0)))break w;u=i[o+2212>>2]}n=u,i[o+2204>>2]=n}r=i[o+2216>>2],i[r+92>>2]=f,i[r+96>>2]=f+n;h:{if(s[r+316|0]||(f=s[o+3204|0],!(f&241))||(f=f&254,(f|0)==8|(f|0)==6))break h;i[o+2208>>2]=i[A+36>>2],i[o+2212>>2]=i[o+2204>>2]}if(!s[A+12|0])break s;i[i[o+2216>>2]+100>>2]=1,n=0,k=0,u=0,p=0,w=B-32|0,B=w,i[w+28>>2]=0,i[w+20>>2]=0,i[w+24>>2]=0,f=i[o+2216>>2],y=i[f>>2];h:{if((s[o+3204|0]&248)!=16|s[o+2201|0]!=1||(h=i[o+2148>>2],v=i[o+2152>>2],(h|0)==(v|0)))break h;for(z=i[f+96>>2];;){W=i[(u<<2)+h>>2];w:{if(!i[W+100>>2]|(z|0)<=i[W+96>>2]||(I=i[W>>2],I>>>0>=k0[W+108>>2]))break w;_:{if(k>>>0

>>0){i[k>>2]=I,k=k+4|0;break _}if(r=k-n>>2,f=r+1|0,f>>>0>=1073741824)break t;if(p=p-n|0,R=p>>1,f=p>>>0>=2147483644?1073741823:f>>>0>>0?R:f,f){if(f>>>0>=1073741824)break i;p=U(f<<2)}else p=0;if(r=p+(r<<2)|0,i[r>>2]=I,p=p+(f<<2)|0,f=r,(k|0)!=(n|0))for(;f=f-4|0,k=k-4|0,i[f>>2]=i[k>>2],(k|0)!=(n|0););k=r+4|0,i[w+28>>2]=p,i[w+20>>2]=f,n&&(G(n),v=i[o+2152>>2],h=i[o+2148>>2]),n=f}i[w+24>>2]=k,i[W+108>>2]=i[W>>2]}if(u=u+1|0,!(u>>>0>2>>>0))break}}h:{if((s[o+3204|0]-19&255)>>>0<2){i[o+2544>>2]=0,i[o+2548>>2]=0,i[o+2560>>2]=0,f=o+2552|0,i[f>>2]=0,i[f+4>>2]=0;break h}if(u=0,k=0,n=0,h=s[A+916|0],h)for(v=A+820|0,p=o+2692|0,W=o+2564|0,I=A+884|0,z=i[o+2216>>2],f=0;r=s[f+I|0],i[(r?W+(n<<2)|0:p+(k<<2)|0)>>2]=i[z+96>>2]+X[v+(f<<1)>>1],n=((r|0)!=0)+n|0,k=!r+k|0,f=f+1|0,(h|0)!=(f|0););if(i[o+2544>>2]=n,n=s[A+917|0],n)for(h=o+2692|0,v=o+2628|0,p=A+852|0,W=A+900|0,I=i[o+2216>>2],f=0;r=s[f+W|0],i[(r?v+(u<<2)|0:h+(k<<2)|0)>>2]=i[I+96>>2]+X[p+(f<<1)>>1],u=((r|0)!=0)+u|0,k=!r+k|0,f=f+1|0,(n|0)!=(f|0););i[o+2552>>2]=k,i[o+2548>>2]=u;w:{if((i[A+152>>2]+i[A+148>>2]|0)<=0){n=0,h=0;break w}for(v=o+2480|0,p=o+2820|0,W=o+2416|0,I=o+2756|0,z=o+2288|0,R=o+2352|0,D=A+252|0,J=o+2224|0,E=i[o+1376>>2],a=i[o+2216>>2],k=0,h=0,n=0;;){r=k<<2,f=i[r+J>>2],u=k+D|0,s[u|0]&&(f=i[a+96>>2]+f-(i[A+36>>2]+m(i[E+16868>>2],i[r+R>>2]))|0);_:{if(i[r+z>>2]){r=h<<2,i[r+I>>2]=f,i[r+W>>2]=l[u|0],h=h+1|0;break _}r=n<<2,i[r+p>>2]=f,i[r+v>>2]=l[u|0],n=n+1|0}if(k=k+1|0,!((k|0)<(i[A+152>>2]+i[A+148>>2]|0)))break}}i[o+2560>>2]=n,i[o+2556>>2]=h}if(f=i[o+2148>>2],r=i[o+2152>>2],i[w+16>>2]=0,i[w+8>>2]=0,i[w+12>>2]=0,(f|0)!=(r|0)){if(f=r-f>>2,(f|0)<0)break t;r=U(f),i[w+8>>2]=r,n=f+r|0,i[w+16>>2]=n,B0(r,0,f),i[w+12>>2]=n}r=o+2140|0;h:{w:{if(n=i[o+2556>>2],(n|0)<=0)break w;for(v=o+3076|0,p=o+2756|0,W=o+2416|0,u=0;;){f=u<<2,h=f+p|0,n=i[h>>2],I=f+v|0;_:{if(!i[f+W>>2]){k=a7(r,n,y);break _}k=X6(r,n,y,1)}i[I>>2]=k;_:{if((k|0)>=0)f=i[w+8>>2]+k|0;else{if(k=zr(o,i[o+1376>>2],i[h>>2],1),(k|0)<0)break _;f=i[o+2148>>2],n=i[o+2152>>2],l[w+7|0]=0,f=n-f>>2,h=i[w+8>>2],n=i[w+12>>2]-h|0;v:{if(f>>>0>n>>>0){Lr(w+8|0,f-n|0,w+7|0),h=i[w+8>>2];break v}if(f>>>0>=n>>>0)break v;i[w+12>>2]=f+h}i[I>>2]=k,f=k+h|0}if(l[f|0]=1,s[i[i[o+2148>>2]+(k<<2)>>2]+312|0]&&(l[i[o+2216>>2]+312|0]=4),n=i[o+2556>>2],u=u+1|0,(n|0)>(u|0))continue;break w}break}k=0-k|0;break h}if(v=i[o+2560>>2],(v|0)>0){p=o+3140|0,W=o+2820|0,I=o+2480|0,u=0;w:{for(;;){f=u<<2,k=f+W|0,n=i[k>>2],v=f+p|0;_:{if(!i[f+I>>2]){f=a7(r,n,y);break _}f=X6(r,n,y,1)}i[v>>2]=f;_:{if((f|0)>=0)f=f+i[w+8>>2]|0;else{if(f=zr(o,i[o+1376>>2],i[k>>2],1),(f|0)<0)break _;n=i[o+2148>>2],k=i[o+2152>>2],l[w+7|0]=0,n=k-n>>2,h=i[w+8>>2],k=i[w+12>>2]-h|0;v:{if(n>>>0>k>>>0){Lr(w+8|0,n-k|0,w+7|0),h=i[w+8>>2];break v}if(k>>>0<=n>>>0)break v;i[w+12>>2]=n+h}i[v>>2]=f,f=f+h|0}if(l[f|0]=1,u=u+1|0,v=i[o+2560>>2],(u|0)>=(v|0))break w;continue}break}k=0-f|0;break h}n=i[o+2556>>2]}w:{if((n|0)<=0)break w;if(W=o+3076|0,f=i[o+2148>>2],h=0,k=0,n>>>0>=4)for(I=n&2147483644,p=0;u=W+(k<<2)|0,i[i[f+(i[u>>2]<<2)>>2]+100>>2]=2,i[i[f+(i[u+4>>2]<<2)>>2]+100>>2]=2,i[i[f+(i[u+8>>2]<<2)>>2]+100>>2]=2,i[i[f+(i[u+12>>2]<<2)>>2]+100>>2]=2,k=k+4|0,p=p+4|0,(I|0)!=(p|0););if(n=n&3,!n)break w;for(;i[i[f+(i[W+(k<<2)>>2]<<2)>>2]+100>>2]=2,k=k+1|0,h=h+1|0,(n|0)!=(h|0););}w:{if((v|0)<=0)break w;if(u=v&3,p=o+3140|0,f=i[o+2148>>2],h=0,k=0,v>>>0>=4)for(W=v&2147483644,v=0;n=p+(k<<2)|0,i[i[f+(i[n>>2]<<2)>>2]+100>>2]=2,i[i[f+(i[n+4>>2]<<2)>>2]+100>>2]=2,i[i[f+(i[n+8>>2]<<2)>>2]+100>>2]=2,i[i[f+(i[n+12>>2]<<2)>>2]+100>>2]=2,k=k+4|0,v=v+4|0,(W|0)!=(v|0););if(!u)break w;for(;i[i[f+(i[p+(k<<2)>>2]<<2)>>2]+100>>2]=2,k=k+1|0,h=h+1|0,(u|0)!=(h|0););}w:{if(i[o+2544>>2]<=0)break w;for(v=o+2884|0,p=o+2564|0,u=0;;){_:{if(f=u<<2,n=f+v|0,f=f+p|0,k=X6(r,i[f>>2],y,0),i[n>>2]=k,(k|0)>=0)f=i[w+8>>2]+k|0;else{if(k=zr(o,i[o+1376>>2],i[f>>2],0),(k|0)<0)break _;i[n>>2]=k,f=i[o+2148>>2],n=i[o+2152>>2],l[w+7|0]=0,f=n-f>>2,n=i[w+8>>2],h=i[w+12>>2]-n|0;v:{if(f>>>0>h>>>0){Lr(w+8|0,f-h|0,w+7|0),n=i[w+8>>2];break v}if(f>>>0>=h>>>0)break v;i[w+12>>2]=f+n}f=k+n|0}if(l[f|0]=1,s[i[i[o+2148>>2]+(k<<2)>>2]+312|0]&&(l[i[o+2216>>2]+312|0]=4),u=u+1|0,(u|0)>2])continue;break w}break}k=0-k|0;break h}w:{if(i[o+2548>>2]<=0)break w;for(v=o+2948|0,p=o+2628|0,u=0;;){_:{if(f=u<<2,n=f+v|0,f=f+p|0,k=X6(r,i[f>>2],y,0),i[n>>2]=k,(k|0)>=0)f=i[w+8>>2]+k|0;else{if(k=zr(o,i[o+1376>>2],i[f>>2],0),(k|0)<0)break _;i[n>>2]=k,f=i[o+2148>>2],n=i[o+2152>>2],l[w+7|0]=0,f=n-f>>2,n=i[w+8>>2],h=i[w+12>>2]-n|0;v:{if(f>>>0>h>>>0){Lr(w+8|0,f-h|0,w+7|0),n=i[w+8>>2];break v}if(f>>>0>=h>>>0)break v;i[w+12>>2]=f+n}f=k+n|0}if(l[f|0]=1,s[i[i[o+2148>>2]+(k<<2)>>2]+312|0]&&(l[i[o+2216>>2]+312|0]=4),u=u+1|0,(u|0)>2])continue;break w}break}k=0-k|0;break h}if(i[o+2552>>2]>0)for(n=o+3012|0,u=o+2692|0,k=0;h=k<<2,f=X6(r,i[h+u>>2],y,0),i[n+h>>2]=f,(f|0)>=0&&(l[f+i[w+8>>2]|0]=1),k=k+1|0,(k|0)>2];);if(r=0,n=i[o+2152>>2],u=i[o+2148>>2],(n-u|0)>0)for(;;){f=i[w+8>>2];w:{if(s[f+r|0]&&i[w+12>>2]-f>>>0>r>>>0||(y=i[(r<<2)+u>>2],f=i[o+2216>>2],(y|0)==(f|0)|k0[y+108>>2]<=k0[f>>2]|!i[y+100>>2]))break w;v=i[y>>2],k=i[w+24>>2],h=i[w+28>>2];_:{if(k>>>0>>0){i[k>>2]=v,v=k+4|0;break _}if(p=i[w+20>>2],I=k-p>>2,f=I+1|0,f>>>0>=1073741824)break t;if(h=h-p|0,W=h>>1,W=h>>>0>=2147483644?1073741823:f>>>0>>0?W:f,W){if(W>>>0>=1073741824)break i;h=U(W<<2)}else h=0;if(f=h+(I<<2)|0,i[f>>2]=v,v=f+4|0,(k|0)!=(p|0))for(;f=f-4|0,k=k-4|0,i[f>>2]=i[k>>2],(k|0)!=(p|0););if(i[w+28>>2]=h+(W<<2),i[w+24>>2]=v,i[w+20>>2]=f,!p)break _;G(p),u=i[o+2148>>2],n=i[o+2152>>2]}i[w+24>>2]=v,i[y+108>>2]=i[i[o+2216>>2]>>2]}if(r=r+1|0,!((r|0)>2))break}if(k=0,f=A+1352|0,(f|0)==(w+20|0))break h;n=f,f=i[w+20>>2],r=i[w+24>>2],ki(n,f,r,r-f>>2)}if(f=i[w+8>>2],f&&(i[w+12>>2]=f,G(f)),f=i[w+20>>2],f&&(i[w+24>>2]=f,G(f)),B=w+32|0,i[Z+8>>2]=k,!k)break s;r=0;break u}if(i[o+2216>>2])break l;r=0;break u}f=i[o+2216>>2],i[f+100>>2]=1,i[23936]=i[f+96>>2],l[o+2200|0]=0}r=1;l:{if(k0[A+28>>2]>1)break l;f=0,n=B-480|0,B=n,u=i[A+336>>2],h=i[A+920>>2],k=B0(n,0,96),v=o+3076|0,p=o+2948|0,y=o+2884|0,n=(u|0)>(h|0)?u:h,w=n-1|0,R=i[o+2556>>2],W=R-1|0,D=i[o+2548>>2],I=D-1|0,J=i[o+2544>>2],z=J-1|0,J=(J|0)<=0;s:{h:{w:{_:{v:{for(;;){if((f|0)>=(n|0))break v;if(J||(E=w-f|0,E=E>>>0>>0?E:z,l0((k+288|0)+(f<<2)|0,y,(E<<2)+4|0),f=(f+E|0)+1|0),(D|0)<=0|(f|0)>=(n|0)||(E=w-f|0,E=I>>>0>E>>>0?E:I,l0((k+288|0)+(f<<2)|0,p,(E<<2)+4|0),f=(f+E|0)+1|0),(R|0)<=0|(f|0)>=(n|0)||(E=w-f|0,E=W>>>0>E>>>0?E:W,a=E+1|0,B0(f+k|0,1,a),l0((k+288|0)+(f<<2)|0,v,(E<<2)+4|0),f=f+a|0),!f)break}if(f=i[o+84>>2],(f|0)==20){i[o+80>>2]=1001,n=0;break _}i[o+84>>2]=f+1,i[(o+(f<<2)|0)+4>>2]=1016,n=0;break _}if((u|0)>16)break w;if((u|0)>0)for(I=A+1180|0,z=A+1052|0,R=A+1308|0,D=A+924|0,J=A+346|0,f=0,E=s[A+344|0];;){if(w=f<<2,W=w+D|0,n=E?s[f+J|0]:f,i[W>>2]=i[(k+288|0)+(n<<2)>>2],l[f+R|0]=s[k+n|0],n=0,W=i[W>>2],a=i[o+2148>>2],W>>>0>=i[o+2152>>2]-a>>2>>>0||(W=i[a+(W<<2)>>2],!W))break _;if(i[w+z>>2]=i[W+96>>2],i[w+I>>2]=i[W+100>>2],f=f+1|0,(u|0)==(f|0))break}if(n=1,i[A+28>>2])break _;R=i[o+2556>>2],w=R-1|0,D=i[o+2544>>2],W=D-1|0,J=i[o+2548>>2],I=J-1|0,u=i[A+340>>2],n=(u|0)>(h|0)?u:h,h=n-1|0,z=k+48|0,f=0,J=(J|0)<=0;v:{for(;;){if((f|0)>=(n|0))break v;if(J||(E=h-f|0,E=I>>>0>E>>>0?E:I,l0((k+96|0)+(f<<2)|0,p,(E<<2)+4|0),f=(f+E|0)+1|0),(D|0)<=0|(f|0)>=(n|0)||(E=h-f|0,E=W>>>0>E>>>0?E:W,l0((k+96|0)+(f<<2)|0,y,(E<<2)+4|0),f=(f+E|0)+1|0),(R|0)<=0|(f|0)>=(n|0)||(E=h-f|0,E=w>>>0>E>>>0?E:w,a=E+1|0,B0(f+z|0,1,a),l0((k+96|0)+(f<<2)|0,v,(E<<2)+4|0),f=f+a|0),!f)break}if(f=i[o+84>>2],(f|0)==20){i[o+80>>2]=1001,n=0;break _}i[o+84>>2]=f+1,i[(o+(f<<2)|0)+4>>2]=1016,n=0;break _}if((u|0)>16)break h;if(n=1,(u|0)<=0)break _;for(v=A+1244|0,p=A+1116|0,y=A+1324|0,W=A+988|0,I=A+362|0,f=0,R=s[A+345|0];;){if(h=f<<2,w=h+W|0,n=R?s[f+I|0]:f,i[w>>2]=i[(k+96|0)+(n<<2)>>2],l[f+y|0]=s[n+z|0],n=0,w=i[w>>2],D=i[o+2148>>2],w>>>0>=i[o+2152>>2]-D>>2>>>0||(w=i[D+(w<<2)>>2],!w))break _;if(i[h+p>>2]=i[w+96>>2],i[h+v>>2]=i[w+100>>2],n=1,f=f+1|0,(u|0)==(f|0))break}}B=k+480|0;break s}C0(16464,13894,1799,3606),P()}C0(16431,13894,1852,3606),P()}if(n)break l;r=0;break u}i[A+808>>2]=i[(s[A+20|0]?i[o+2220>>2]+808|0:A+24|0)>>2],i[o+2220>>2]=A}if(B=_+80|0,u=i[o+2216>>2],!r){u&&(l[u+312|0]=2),w4(o+548|0,t),f=i[A+1352>>2],f&&(i[A+1356>>2]=f,G(f)),C8(q),f=i[A+784>>2],f&&(i[A+788>>2]=f,G(f)),f=i[A+8>>2];u:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break u;V[i[i[f>>2]+8>>2]](f),g(f)}G(A),n=i[Z+8>>2];break o}n=i[u+56>>2],r=i[u+52>>2],k=n-r>>2,i[A>>2]=k;u:{if(h=i[u+60>>2],h>>>0>n>>>0){i[n>>2]=A,i[u+56>>2]=n+4;break u}l:{if(f=k+1|0,f>>>0<1073741824){if(h=h-r|0,w=h>>1,h=h>>>0>=2147483644?1073741823:f>>>0>>0?w:f,h){if(h>>>0>=1073741824)break l;f=U(h<<2)}else f=0;if(k=f+(k<<2)|0,i[k>>2]=A,w=k+4|0,(r|0)!=(n|0)){for(;k=k-4|0,n=n-4|0,i[k>>2]=i[n>>2],(r|0)!=(n|0););r=i[u+52>>2]}i[u+60>>2]=f+(h<<2),i[u+56>>2]=w,i[u+52>>2]=k,r&&G(r),i[u+56>>2]=w;break u}break t}break i}if(ni(C,1),Gt(C),i[A+776>>2]>0)for(h=i[C>>2]-i[t+20>>2]|0,n=i[A+784>>2],k=0;;){w=k<<2,n=i[w+n>>2],_=i[t+32>>2],f=i[t+36>>2]-_>>2;u:{for(;;){if(r=f,u=0,(r|0)<=0)break u;if(f=r-1|0,!((n|0)<(i[_+(f<<2)>>2]-h|0)))break}u=r}if(n=i[A+784>>2],f=w+n|0,i[f>>2]=i[f>>2]-u,k=k+1|0,!((k|0)>2]))break}u:{if(!s[A+12|0]){f=i[o+3212>>2];break u}h=U(480),N7(h+8|0),i[h+472>>2]=0,i[h+476>>2]=0,i[h+464>>2]=0,i[h+468>>2]=0,i[h+456>>2]=0,i[h+460>>2]=0,i[h+448>>2]=0,i[h+452>>2]=0,i[h+440>>2]=0,i[h+444>>2]=0,i[h+432>>2]=0,i[h+436>>2]=0,i[h+424>>2]=0,i[h+428>>2]=0,i[h>>2]=i[o+2216>>2],k=i[o+3212>>2],n=i[o+3216>>2];l:{if(k>>>0>>0){i[k>>2]=h,f=k+4|0;break l}if(r=i[o+3208>>2],u=k-r>>2,f=u+1|0,f>>>0>=1073741824)break t;if(v=u<<2,n=n-r|0,w=n>>1,w=n>>>0>=2147483644?1073741823:f>>>0>>0?w:f,w){if(w>>>0>=1073741824)break i;u=U(w<<2)}else u=0;if(n=v+u|0,i[n>>2]=h,f=n+4|0,(r|0)!=(k|0)){for(;n=n-4|0,k=k-4|0,i[n>>2]=i[k>>2],(r|0)!=(k|0););r=i[o+3208>>2]}if(i[o+3216>>2]=u+(w<<2),i[o+3212>>2]=f,i[o+3208>>2]=n,!r)break l;G(r)}i[o+3212>>2]=f}if(i[o+3208>>2]!=(f|0)){n=U(144),l[n+36|0]=0,i[n+32>>2]=0,i[n>>2]=0,i[n+4>>2]=0,i[n+44>>2]=0,i[n+140>>2]=o,i[n+128>>2]=-1,i[n+132>>2]=0,i[n+120>>2]=0,i[n+124>>2]=-1,i[n+136>>2]=0,i[n+40>>2]=0,i[n+4>>2]=A,i[n>>2]=t,f=i[C+4>>2],i[n+8>>2]=i[C>>2],i[n+12>>2]=f,f=i[C+12>>2],i[n+16>>2]=i[C+8>>2],i[n+20>>2]=f,f=i[C+20>>2],i[n+24>>2]=i[C+16>>2],i[n+28>>2]=f,l[n+36|0]=s[o+3220|0],A=i[i[o+3212>>2]-4>>2],t=i[A+428>>2],k=i[A+432>>2];u:{if(t>>>0>>0){i[t>>2]=n,n=t+4|0;break u}if(r=i[A+424>>2],u=t-r>>2,f=u+1|0,f>>>0>=1073741824)break t;if(k=k-r|0,C=k>>1,C=k>>>0>=2147483644?1073741823:f>>>0>>0?C:f,C){if(C>>>0>=1073741824)break i;f=U(C<<2)}else f=0;if(k=f+(u<<2)|0,i[k>>2]=n,n=k+4|0,(r|0)!=(t|0)){for(;k=k-4|0,t=t-4|0,i[k>>2]=i[t>>2],(r|0)!=(t|0););r=i[A+424>>2]}if(i[A+432>>2]=f+(C<<2),i[A+428>>2]=n,i[A+424>>2]=k,!r)break u;G(r)}i[A+428>>2]=n}fk(o,Z+7|0),n=0}B=Z+16|0;break n}y0(),P()}break k}n:switch(r-32|0){case 0:Z=U(668),i[Z>>2]=43652,i[Z+4>>2]=0,i[Z+8>>2]=0,k=f,w=f+4|0,A=B0(Z+12|0,0,656),u=S+8|0,f=u0(u,4),i[A>>2]=f,n=8;t:{if((f|0)>15||(ni(u,2),f=u0(u,6),i[A+4>>2]=f+1,(f|0)>62)||(f=u0(u,3),i[A+8>>2]=f+1,(f|0)>6))break t;if(j=A,L=u0(u,1),i[j+12>>2]=L,ni(u,16),K7(A+16|0,u,i[A+8>>2]),f=u0(u,1),i[A+484>>2]=f,o=i[A+8>>2],r=f?0:o-1|0,(r|0)<(o|0)){for(t=A+488|0,f=r;;){if(o=t+m(f,12)|0,j=o,L=M0(u),i[j>>2]=L,j=o,L=M0(u),i[j+4>>2]=L,h=M0(u),i[o+8>>2]=h,i[o>>2]==-99999|(h|0)==-99999|i[o+4>>2]==-99999)break t;if(f=f+1|0,!((f|0)>2]))break}f=i[A+484>>2]}o:{u:{l:{if(f)break l;if((r|0)>7)break u;if((r|0)<=0||(o=(A+488|0)+m(r,12)|0,f=i[o>>2],n=i[o+4>>2],o=i[o+8>>2],i[A+496>>2]=o,i[A+492>>2]=n,i[A+488>>2]=f,(r|0)==1)||(i[A+508>>2]=o,i[A+504>>2]=n,i[A+500>>2]=f,(r|0)==2)||(i[A+520>>2]=o,i[A+516>>2]=n,i[A+512>>2]=f,(r|0)==3)||(i[A+532>>2]=o,i[A+528>>2]=n,i[A+524>>2]=f,(r|0)==4)||(i[A+544>>2]=o,i[A+540>>2]=n,i[A+536>>2]=f,(r|0)==5)||(i[A+556>>2]=o,i[A+552>>2]=n,i[A+548>>2]=f,(r|0)==6))break l;i[A+568>>2]=o,i[A+564>>2]=n,i[A+560>>2]=f}if(j=A,L=u0(u,6),l[j+584|0]=L,f=M0(u),i[A+588>>2]=f,f-1023>>>0<=4294966271)break o;n=f+1|0,i[A+588>>2]=n,f=i[A+596>>2],r=f,t=i[A+592>>2],o=(r-t|0)/12|0;l:{if(o>>>0>>0){if(r=0,t=n-o|0,h=i[A+600>>2],t>>>0<=(h-f|0)/12>>>0){t&&(r=f,f=m(t,12)-12|0,f=(f-((f>>>0)%12|0)|0)+12|0,f=B0(r,0,f)+f|0),i[A+596>>2]=f;break l}s:{if(o=i[A+592>>2],_=(f-o|0)/12|0,n=_+t|0,n>>>0<357913942){if(h=(h-o|0)/12|0,v=h<<1,h=h>>>0>=178956970?357913941:n>>>0>>0?v:n,h){if(h>>>0>=357913942)break s;r=U(m(h,12))}n=m(_,12)+r|0,t=m(t,12)-12|0,_=(t-((t>>>0)%12|0)|0)+12|0,t=B0(n,0,_),_=t+_|0,h=m(h,12)+r|0;h:{if((f|0)==(o|0)){r=t;break h}for(;v=n-4|0,i[v>>2]=0,r=n-12|0,t=f-12|0,i[r>>2]=i[t>>2],i[n-8>>2]=i[f-8>>2],f=f-4|0,i[v>>2]=i[f>>2],i[f>>2]=0,i[t>>2]=0,i[t+4>>2]=0,n=r,f=t,(o|0)!=(f|0););f=i[A+596>>2],o=i[A+592>>2]}if(i[A+600>>2]=h,i[A+596>>2]=_,i[A+592>>2]=r,(f|0)!=(o|0))for(;r=f-12|0,n=i[r>>2],n&&(i[f-8>>2]=n,G(n)),f=r,(o|0)!=(r|0););o&&G(o);break l}y0(),P()}break i}if(n>>>0>=o>>>0)break l;if(n=t+m(n,12)|0,(n|0)!=(r|0))for(;f=r-12|0,o=i[f>>2],o&&(i[r-8>>2]=o,G(o)),r=f,(r|0)!=(n|0););i[A+596>>2]=n}if(i[A+588>>2]>=2)for(n=s[A+584|0],f=1;;){r=n+1|0,h=m(f,12),o=h+i[A+592>>2]|0,t=i[o>>2],v=n,n=i[o+4>>2]-t|0;l:{if(v>>>0>=n>>>0){L2(o,r-n|0);break l}if(r>>>0>=n>>>0)break l;i[o+4>>2]=r+t}for(r=0;n=u0(u,1),l[i[h+i[A+592>>2]>>2]+r|0]=n,n=s[A+584|0],o=n>>>0>r>>>0,r=r+1|0,!!o;);if(f=f+1|0,!((f|0)>2]))break}f=u0(u,1),l[A+604|0]=f;l:{s:{if(!(f&255)||(j=A,L=u0(u,32),i[j+608>>2]=L,j=A,L=u0(u,32),i[j+612>>2]=L,f=u0(u,1),l[A+616|0]=f,!(f&255)))break s;if(j=A,L=M0(u)+1|0,i[j+620>>2]=L,r=M0(u),i[A+624>>2]=r,r>>>0>=1024)break o;t=0,f=i[A+632>>2],o=i[A+628>>2],n=f-o>>1;h:{if(n>>>0>>0){if(n=r-n|0,h=i[A+636>>2],n>>>0<=h-f>>1>>>0){n&&(r=f,f=n<<1,f=B0(r,0,f)+f|0),i[A+632>>2]=f;break h}w:{if(r=i[A+628>>2],w=f-r>>1,o=w+n|0,(o|0)>=0){if(h=h-r|0,h=h>>>0>=2147483646?2147483647:o>>>0>>0?h:o,h){if((h|0)<0)break w;t=U(h<<1)}if(o=(w<<1)+t|0,n=n<<1,n=B0(o,0,n)+n|0,(f|0)!=(r|0))for(;o=o-2|0,f=f-2|0,X[o>>1]=Q[f>>1],(f|0)!=(r|0););i[A+636>>2]=(h<<1)+t,i[A+632>>2]=n,i[A+628>>2]=o,r&&G(r);break h}y0(),P()}break i}r>>>0>>0&&(i[A+632>>2]=o+(r<<1))}f=A+640|0,n=i[f>>2],r=i[A+624>>2],o=i[f+4>>2]-n|0;h:{if(r>>>0>o>>>0){L2(f,r-o|0);break h}r>>>0>>0&&(i[f+4>>2]=r+n)}if(i[A+624>>2]<=0)break s;f=M0(u),X[i[A+628>>2]>>1]=f;break l}j=A,L=u0(u,1),l[j+652|0]=L}n=0;break t}C0(14842,13920,144,13592),P()}v2(w,8,0),n=8}r=n;t:{if(r)break t;if(n=i[k+520>>2],(n|0)>=0){o=B-368|0,B=o,f=49876;o:{u:switch(n-1|0){case 1:f=49872;break;case 0:break u;default:break o}if(t=i[f>>2],c(t,30827,0),i[o+352>>2]=i[A>>2],c(t,29805,o+352|0),i[o+336>>2]=i[A+4>>2],c(t,30237,o+336|0),i[o+320>>2]=i[A+8>>2],c(t,29882,o+320|0),i[o+304>>2]=i[A+12>>2],c(t,28489,o+304|0),f=i[A+8>>2],Cr(A+16|0,1,t),(f|0)>=2)for(n=f-2|0,u=A+68|0,f=0;i[o+288>>2]=f,c(t,30407,o+288|0),Cr(u+m(f,52)|0,0,t),h=(f|0)!=(n|0),f=f+1|0,!!h;);i[o+272>>2]=i[A+484>>2],c(t,23930,o+272|0);u:{if(i[A+484>>2]){if(i[A+8>>2]<=0)break u;for(u=A+488|0,f=0;n=u+m(f,12)|0,i[o+260>>2]=i[n>>2],i[o+256>>2]=f,c(t,22455,o+256|0),i[o+240>>2]=i[n+4>>2],c(t,22746,o+240|0),i[o+224>>2]=i[n+8>>2],c(t,22791,o+224|0),f=f+1|0,(f|0)>2];);break u}i[o+208>>2]=i[A+488>>2],c(t,22497,o+208|0),i[o+192>>2]=i[A+492>>2],c(t,22742,o+192|0),i[o+176>>2]=i[A+496>>2],c(t,22787,o+176|0)}if(i[o+160>>2]=s[A+584|0],c(t,22832,o+160|0),i[o+144>>2]=i[A+588>>2],c(t,22402,o+144|0),i[A+588>>2]>=2)for(n=1;;){for(f=0,u=m(n,12);i[o+136>>2]=l[i[u+i[A+592>>2]>>2]+f|0],i[o+132>>2]=f,i[o+128>>2]=n,c(t,22705,o+128|0),h=s[A+584|0]>f>>>0,f=f+1|0,!!h;);if(n=n+1|0,!((n|0)>2]))break}i[o+112>>2]=l[A+604|0],c(t,22542,o+112|0);u:{if(!s[A+604|0]||(i[o+96>>2]=i[A+608>>2],c(t,22427,o+96|0),i[o+80>>2]=i[A+612>>2],c(t,22890,o+80|0),i[o+64>>2]=l[A+616|0],c(t,22602,o- -64|0),!s[A+616|0])||(i[o+48>>2]=i[A+620>>2],c(t,22644,o+48|0),i[o+32>>2]=i[A+624>>2],c(t,22857,o+32|0),i[A+624>>2]<=0))break u;i[o+20>>2]=Q[i[A+628>>2]>>1],i[o+16>>2]=0,c(t,22677,o+16|0);break o}i[o>>2]=l[A+652|0],c(t,22577,o)}B=o+368|0}if(i[Z+4>>2]=i[Z+4>>2]+1,n=k+(i[Z+12>>2]<<3)|0,i[n+600>>2]=A,f=i[n+604>>2],i[n+604>>2]=Z,!f||(n=i[f+4>>2],i[f+4>>2]=n-1,n))break t;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[Z+4>>2],i[Z+4>>2]=f-1,f||(V[i[i[Z>>2]+8>>2]](Z),g(Z)),n=r,w4(k+548|0,C);break k;case 1:u=0,Z=U(17016),i[Z>>2]=43768,i[Z+4>>2]=0,i[Z+8>>2]=0,o=f+4|0,A=Z+12|0,i[A+8824>>2]=0,i[A+8816>>2]=0,i[A+8820>>2]=0,r=A+9e3|0,X[r+2>>1]=0,X[r+4>>1]=0,l[r|0]=0,l[r+21|0]=0,l[r+22|0]=0,l[r+23|0]=0,l[r+24|0]=0,l[r+25|0]=0,l[r+26|0]=0,l[r+27|0]=0,l[r+28|0]=0,l[r+20|0]=2,i[r+12>>2]=5,i[r+16>>2]=33685504,i[r+48>>2]=0,i[r+52>>2]=0,X[r+7810>>1]=258,X[r+7812>>1]=3855,X[r+7808>>1]=0,i[r+7804>>2]=65536,l[r+64|0]=0,i[r+60>>2]=1,l[r+5|0]=0,l[r+6|0]=0,l[r+7|0]=0,l[r+8|0]=0,l[r+29|0]=0,l[r+30|0]=0,l[r+31|0]=0,l[r+32|0]=0,l[r+33|0]=0,l[r+34|0]=0,l[r+35|0]=0,l[r+36|0]=0,l[r+37|0]=0,l[r+38|0]=0,l[r+39|0]=0,l[r+40|0]=0,l[r+41|0]=0,l[r+42|0]=0,l[r+43|0]=0,l[r+44|0]=0,l[r+56|0]=0,l[A+16828|0]=0,i[A+16820>>2]=0,i[A+16824>>2]=0,l[A|0]=0,k=S+8|0,j=A,L=u0(k,4),l[j+1|0]=L,n=u0(k,3)+1|0,l[A+2|0]=n,r=8;t:{if(n<<24>>24>7)break t;j=A,L=u0(k,1),l[j+3|0]=L,K7(A+4|0,k,l[A+2|0]);o:{u:{l:{if(n=M0(k),(n|0)==-99999)break l;if(i[A+472>>2]=n,(n|0)>15)break t;if(t=M0(k),(t|0)==-99999)break l;if(i[A+476>>2]=t,(t|0)==3&&(u=u0(k,1),t=i[A+476>>2]),l[A+480|0]=u,t>>>0>=4){v2(o,1019,0);break t}if(n=M0(k),(n|0)==-99999||(i[A+484>>2]=n,n=M0(k),(n|0)==-99999))break l;if(i[A+488>>2]=n,!n||(t=i[A+484>>2],!t|(n|0)>65535|(t|0)>65535))break t;r=u0(k,1),l[A+492|0]=r;s:{if(r&255){if(r=M0(k),(r|0)==-99999||(i[A+496>>2]=r,r=M0(k),(r|0)==-99999)||(i[A+500>>2]=r,r=M0(k),(r|0)==-99999)||(i[A+504>>2]=r,r=M0(k),(r|0)==-99999))break l;i[A+508>>2]=r;break s}i[A+496>>2]=0,i[A+500>>2]=0,i[A+504>>2]=0,i[A+508>>2]=0}if(r=M0(k),(r|0)==-99999||(i[A+512>>2]=r+8,r=M0(k),(r|0)==-99999))break l;if(i[A+516>>2]=r+8,!(i[A+512>>2]<17&(r|0)<=8))break u;if(r=M0(k),(r|0)==-99999)break l;if(n=r+4|0,i[A+520>>2]=n,r>>>0>=13)break u;if(i[A+16868>>2]=1<>2]=t+1,t=M0(k),(t|0)==-99999)||(v=n+w|0,i[v>>2]=t,t=M0(k),(t|0)==-99999))break l;if(i[n+h>>2]=t,i[n+u>>2]=(t+i[v>>2]|0)-1,r=r+1|0,t=l[A+2|0],!((r|0)<(t|0)))break}n=s[A+524|0]}s:{h:{if(!(n&255))break h;if((t|0)>7)break s;if((t|0)<2||(r=t-1|0,u=r<<2,n=u+(A+528|0)|0,i[A+528>>2]=i[n>>2],t=u+(A+556|0)|0,i[A+556>>2]=i[t>>2],u=u+(A+584|0)|0,i[A+584>>2]=i[u>>2],(r|0)==1)||(i[A+532>>2]=i[n>>2],i[A+560>>2]=i[t>>2],i[A+588>>2]=i[u>>2],(r|0)==2)||(i[A+536>>2]=i[n>>2],i[A+564>>2]=i[t>>2],i[A+592>>2]=i[u>>2],(r|0)==3)||(i[A+540>>2]=i[n>>2],i[A+568>>2]=i[t>>2],i[A+596>>2]=i[u>>2],(r|0)==4)||(i[A+544>>2]=i[n>>2],i[A+572>>2]=i[t>>2],i[A+600>>2]=i[u>>2],(r|0)==5))break h;i[A+548>>2]=i[n>>2],i[A+576>>2]=i[t>>2],i[A+604>>2]=i[u>>2]}if(r=M0(k),(r|0)==-99999||(i[A+612>>2]=r+3,r=M0(k),(r|0)==-99999)||(i[A+616>>2]=r,r=M0(k),(r|0)==-99999)||(i[A+620>>2]=r+2,r=M0(k),(r|0)==-99999)||(i[A+624>>2]=r,r=M0(k),(r|0)==-99999)||(i[A+628>>2]=r,r=M0(k),(r|0)==-99999))break l;if(i[A+632>>2]=r,r=8,n=i[A+612>>2],(n|0)>6|(n+i[A+616>>2]|0)>6||(n=i[A+620>>2],(n|0)>5|(n+i[A+624>>2]|0)>5))break t;r=u0(k,1),l[A+636|0]=r;h:{if(!(r&255))break h;if(r=u0(k,1),l[A+637|0]=r,n=A+638|0,r&255){if(r=Yk(k,n),!r)break h;break t}for(r=0,L4(n,77632,0),L4(n+16|0,77632,0),L4(n+32|0,77632,0),L4(n+48|0,77632,0),L4(n- -64|0,77632,0),L4(n+80|0,77632,0),u=n+96|0,h=i[i[11334]+12>>2];t=h+(r<<1)|0,l[(u+(s[t+1|0]<<3)|0)+s[t|0]|0]=s[r+77648|0],l[s[t+2|0]+(u+(s[t+3|0]<<3)|0)|0]=s[r+77649|0],r=r+2|0,(r|0)!=64;);for(u=n+288|0,r=0,h=i[i[11334]+12>>2];t=h+(r<<1)|0,l[(u+(s[t+1|0]<<3)|0)+s[t|0]|0]=s[r+77712|0],l[s[t+2|0]+(u+(s[t+3|0]<<3)|0)|0]=s[r+77713|0],r=r+2|0,(r|0)!=64;);for(u=n+160|0,r=0,h=i[i[11334]+12>>2];t=h+(r<<1)|0,l[(u+(s[t+1|0]<<3)|0)+s[t|0]|0]=s[r+77648|0],l[s[t+2|0]+(u+(s[t+3|0]<<3)|0)|0]=s[r+77649|0],r=r+2|0,(r|0)!=64;);for(u=n+352|0,r=0,h=i[i[11334]+12>>2];t=h+(r<<1)|0,l[(u+(s[t+1|0]<<3)|0)+s[t|0]|0]=s[r+77712|0],l[s[t+2|0]+(u+(s[t+3|0]<<3)|0)|0]=s[r+77713|0],r=r+2|0,(r|0)!=64;);for(u=n+224|0,r=0,h=i[i[11334]+12>>2];t=h+(r<<1)|0,l[(u+(s[t+1|0]<<3)|0)+s[t|0]|0]=s[r+77648|0],l[s[t+2|0]+(u+(s[t+3|0]<<3)|0)|0]=s[r+77649|0],r=r+2|0,(r|0)!=64;);for(u=n+416|0,r=0,h=i[i[11334]+12>>2];t=h+(r<<1)|0,l[(u+(s[t+1|0]<<3)|0)+s[t|0]|0]=s[r+77712|0],l[s[t+2|0]+(u+(s[t+3|0]<<3)|0)|0]=s[r+77713|0],r=r+2|0,(r|0)!=64;);for(u=n+481|0,h=n+480|0,r=0,w=i[i[11334]+12>>2];t=w+(r<<1)|0,_=r+77648|0,v=s[_|0],l[(h+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0]=v,l[(u+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0]=v,_=s[_|0],l[((h+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0)+16|0]=_,l[((u+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0)+16|0]=_,r=r+1|0,(r|0)!=64;);for(u=n+1249|0,h=n+1248|0,r=0,w=i[i[11334]+12>>2];t=w+(r<<1)|0,_=r+77712|0,v=s[_|0],l[(h+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0]=v,l[(u+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0]=v,_=s[_|0],l[((h+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0)+16|0]=_,l[((u+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0)+16|0]=_,r=r+1|0,(r|0)!=64;);for(u=n+737|0,h=n+736|0,r=0,w=i[i[11334]+12>>2];t=w+(r<<1)|0,_=r+77648|0,v=s[_|0],l[(h+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0]=v,l[(u+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0]=v,_=s[_|0],l[((h+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0)+16|0]=_,l[((u+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0)+16|0]=_,r=r+1|0,(r|0)!=64;);for(u=n+1505|0,h=n+1504|0,r=0,w=i[i[11334]+12>>2];t=w+(r<<1)|0,_=r+77712|0,v=s[_|0],l[(h+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0]=v,l[(u+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0]=v,_=s[_|0],l[((h+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0)+16|0]=_,l[((u+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0)+16|0]=_,r=r+1|0,(r|0)!=64;);for(u=n+993|0,h=n+992|0,r=0,w=i[i[11334]+12>>2];t=w+(r<<1)|0,_=r+77648|0,v=s[_|0],l[(h+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0]=v,l[(u+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0]=v,_=s[_|0],l[((h+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0)+16|0]=_,l[((u+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0)+16|0]=_,r=r+1|0,(r|0)!=64;);for(u=n+1761|0,h=n+1760|0,r=0,w=i[i[11334]+12>>2];t=w+(r<<1)|0,_=r+77712|0,v=s[_|0],l[(h+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0]=v,l[(u+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0]=v,_=s[_|0],l[((h+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0)+16|0]=_,l[((u+(s[t|0]<<1)|0)+(s[t+1|0]<<5)|0)+16|0]=_,r=r+1|0,(r|0)!=64;);L4(n+2016|0,77648,3),L4(n+3040|0,77712,3)}j=A,L=u0(k,1),l[j+8798|0]=L,j=A,L=u0(k,1),l[j+8799|0]=L,r=u0(k,1),l[A+8800|0]=r;h:{if(r&255){if(j=A,L=u0(k,4)+1|0,l[j+8801|0]=L,j=A,L=u0(k,4)+1|0,l[j+8802|0]=L,r=M0(k),(r|0)==-99999||(i[A+8804>>2]=r+3,r=M0(k),(r|0)==-99999))break l;if(i[A+8808>>2]=r,j=A,L=u0(k,1),l[j+8812|0]=L,i[A+512>>2]>2]>=l[A+8802|0])break h;break o}i[A+8804>>2]=0,i[A+8808>>2]=0,l[A+8801|0]=0,l[A+8802|0]=0,l[A+8812|0]=0}if(n=M0(k),(n|0)==-99999)break l;if(n>>>0>=65){v2(o,1014,0),r=8;break t}u=0,r=A+8816|0,t=i[r+4>>2],w=i[r>>2],h=(t-w|0)/100|0;h:{if(h>>>0>>0){if(w=n-h|0,v=i[r+8>>2],w>>>0<=(v-t|0)/100>>>0){w&&(u=t,t=m(w,100)-100|0,t=(t-((t>>>0)%100|0)|0)+100|0,t=B0(u,0,t)+t|0),i[r+4>>2]=t;break h}w:{if(h=i[r>>2],p=(t-h|0)/100|0,_=p+w|0,_>>>0<42949673){if(v=(v-h|0)/100|0,y=v<<1,_=v>>>0>=21474836?42949672:_>>>0>>0?y:_,_){if(_>>>0>=42949673)break w;u=U(m(_,100))}if(v=m(p,100)+u|0,w=m(w,100)-100|0,w=(w-((w>>>0)%100|0)|0)+100|0,w=B0(v,0,w)+w|0,(t|0)!=(h|0)){for(;v=v-100|0,t=t-100|0,l0(v,t,100),(t|0)!=(h|0););h=i[r>>2]}i[r+8>>2]=m(_,100)+u,i[r+4>>2]=w,i[r>>2]=v,h&&G(h);break h}y0(),P()}break i}n>>>0>>0&&(i[r+4>>2]=w+m(n,100))}h:{if(!n)break h;for(t=0;;){if(Dk(o,A,k,i[A+8816>>2]+m(t,100)|0,t,r,0)){if(t=t+1|0,(n|0)!=(t|0))continue;break h}break}r=1005;break t}r=u0(k,1),l[A+8828|0]=r;h:{if(r&255){if(n=M0(k),(n|0)==-99999)break l;if(i[A+8832>>2]=n,r=8,(n|0)>32)break t;if((n|0)<=0)break h;for(r=A+8964|0,n=A+8836|0,t=0;j=n+(t<<2)|0,L=u0(k,i[A+520>>2]),i[j>>2]=L,j=r+t|0,L=u0(k,1),l[j|0]=L,t=t+1|0,(t|0)>2];);break h}i[A+8832>>2]=0}if(j=A,L=u0(k,1),l[j+8996|0]=L,j=A,L=u0(k,1),l[j+8997|0]=L,r=u0(k,1),l[A+8998|0]=r,r&255){r=0,n=A+9e3|0,t=u0(k,1),l[n|0]=(t|0)!=0;h:{if(t){if(r=u0(k,8),(r|0)<=17){r=r<<2,X[n+2>>1]=Q[r+46144>>1],r=Q[r+46146>>1];break h}if((r|0)==255){j=n,L=u0(k,16),X[j+2>>1]=L,r=u0(k,16);break h}r=0}X[n+2>>1]=0}X[n+4>>1]=r,r=u0(k,1),l[n+6|0]=(r|0)!=0,r&&(j=n,L=(u0(k,1)|0)!=0,l[j+7|0]=L),l[n+20|0]=2,X[n+18>>1]=514,l[n+16|0]=0,i[n+12>>2]=5,r=u0(k,1),l[n+8|0]=(r|0)!=0;h:{if(!r||(r=u0(k,3),i[n+12>>2]=(r|0)>=5?5:r,j=n,L=(u0(k,1)|0)!=0,l[j+16|0]=L,r=u0(k,1),l[n+17|0]=(r|0)!=0,!r))break h;r=u0(k,8),l[n+18|0]=r;w:{_:{v:switch(r=r&255,r|0){case 0:case 3:break _;default:break v}if(r>>>0<11)break w}l[n+18|0]=2}r=u0(k,8),l[n+19|0]=r;w:{_:switch(r&255){default:if((r&254)>>>0<18)break w;break;case 0:case 3:break _}l[n+19|0]=2}r=u0(k,8),l[n+20|0]=(r&255)>>>0>10?2:r}r=0,t=u0(k,1),l[n+21|0]=(t|0)!=0;h:{w:{_:{if(t){if(r=M0(k),(r|0)==-99999)break w;if(l[n+22|0]=r,r=M0(k),(r|0)!=-99999)break _;break w}l[n+22|0]=0}l[n+23|0]=r,j=n,L=(u0(k,1)|0)!=0,l[j+24|0]=L,j=n,L=(u0(k,1)|0)!=0,l[j+25|0]=L,j=n,L=(u0(k,1)|0)!=0,l[j+26|0]=L,r=u0(k,1),l[n+27|0]=(r|0)!=0;_:{if(r){if(r=M0(k),(r|0)==-99999||(i[n+28>>2]=r,r=M0(k),(r|0)==-99999)||(i[n+32>>2]=r,r=M0(k),(r|0)==-99999)||(i[n+36>>2]=r,r=M0(k),(r|0)==-99999))break w;i[n+40>>2]=r;break _}i[n+28>>2]=0,i[n+32>>2]=0,i[n+36>>2]=0,i[n+40>>2]=0}r=u0(k,1),l[n+44|0]=(r|0)!=0;_:{v:{if(!r)break v;if(j=n,L=u0(k,32),i[j+48>>2]=L,j=n,L=u0(k,32),i[j+52>>2]=L,r=u0(k,1),l[n+56|0]=(r|0)!=0,r){if(r=M0(k),(r|0)==-99999)break w;i[n+60>>2]=r+1}if(r=u0(k,1),l[n+64|0]=(r|0)!=0,!r)break v;u=0,j=n,L=(u0(k,1)|0)!=0,l[j+65|0]=L,r=u0(k,1),l[n+66|0]=(r|0)!=0,r|l[n+65|0]&1&&(r=u0(k,1),l[n+67|0]=(r|0)!=0,r&&(j=n,L=u0(k,8),i[j+68>>2]=L,j=n,L=u0(k,5),i[j+72>>2]=L,j=n,L=(u0(k,1)|0)!=0,l[j+76|0]=L,j=n,L=u0(k,5),i[j+80>>2]=L),j=n,L=u0(k,4),i[j+84>>2]=L,j=n,L=u0(k,4),i[j+88>>2]=L,s[n+67|0]==1&&(j=n,L=u0(k,4),i[j+92>>2]=L),j=n,L=u0(k,5),i[j+96>>2]=L,j=n,L=u0(k,5),i[j+100>>2]=L,j=n,L=u0(k,5),i[j+104>>2]=L),r=0;Z:{if(l[A+2|0]<=0)break Z;_=n+7356|0,v=n+5564|0,p=n+3772|0,y=n+1980|0,W=n+188|0,R=n+160|0,I=n+132|0,q=n+122|0,z=n+115|0,D=n+108|0;m:{for(;;){B:{r=u0(k,1),l[u+D|0]=(r|0)!=0;p:{W:{G:{C:{if(r){l[u+z|0]=1,r=u+q|0,l[r|0]=0,h=I+(u<<2)|0,i[h>>2]=0;break C}if(t=u0(k,1),l[u+z|0]=(t|0)!=0,r=u+q|0,l[r|0]=0,h=I+(u<<2)|0,i[h>>2]=0,!t)break G}if(t=M0(k),(t|0)==-99999)break B;if(i[R+(u<<2)>>2]=t,l[r|0]&1)break p;break W}if(t=r,r=u0(k,1),l[t|0]=(r|0)!=0,r)break p}if(r=M0(k),(r|0)==-99999)break B;if(i[h>>2]=r,r>>>0<=31)break p;r=8;break Z}if(r=0,s[n+65|0]==1)for(;;){if(J=M0(k),(J|0)==-99999||(w=r<<3,t=u<<8,i[w+(t+W|0)>>2]=J,J=M0(k),(J|0)==-99999))break B;if(i[w+(t+y|0)>>2]=J,s[n+67|0]==1){if(J=M0(k),(J|0)==-99999||(i[w+(t+p|0)>>2]=J,J=M0(k),(J|0)==-99999))break B;i[w+(t+v|0)>>2]=J}if(j=(_+(u<<6)|0)+(r<<1)|0,L=(u0(k,1)|0)!=0,l[j|0]=L,t=k0[h>>2]>r>>>0,r=r+1|0,!t)break}if(r=0,s[n+66|0]==1)for(;;){if(J=M0(k),(J|0)==-99999||(w=r<<3,t=u<<8,i[(w+(t+W|0)|0)+4>>2]=J,J=M0(k),(J|0)==-99999))break B;if(i[(w+(t+y|0)|0)+4>>2]=J,s[n+67|0]==1){if(J=M0(k),(J|0)==-99999||(i[(w+(t+p|0)|0)+4>>2]=J,J=M0(k),(J|0)==-99999))break B;i[(w+(t+v|0)|0)+4>>2]=J}if(j=(_+(u<<6)|0)+(r<<1)|0,L=(u0(k,1)|0)!=0,l[j+1|0]=L,t=k0[h>>2]>r>>>0,r=r+1|0,!t)break}if(r=0,u=u+1|0,(u|0)>1]=r,r&61440&&(v2(o,8,0),X[n+7808>>1]=0),r=M0(k),(r|0)==-99999)||(l[n+7810|0]=r,(r&255)>>>0>=17&&(v2(o,8,0),l[n+7810|0]=2),r=M0(k),(r|0)==-99999)||(l[n+7811|0]=r,(r&255)>>>0>=17&&(v2(o,8,0),l[n+7811|0]=1),r=M0(k),(r|0)==-99999)||(l[n+7812|0]=r,r&240&&(v2(o,8,0),l[n+7812|0]=15),t=M0(k),(t|0)==-99999))break w;if(l[n+7813|0]=t,r=0,!(t&240))break _;v2(o,8,0),l[n+7813|0]=15;break h}X[n+7810>>1]=258,X[n+7812>>1]=3855,r=0,X[n+7808>>1]=0,l[n+7807|0]=0,l[n+7805|0]=0,l[n+7806|0]=1}break h}v2(o,8,0),r=8}if(r)break t}r=u0(k,1),l[A+16816|0]=r;h:{if(!(r&255)){l[A+16817|0]=0;break h}if(j=A,L=u0(k,1),l[j+16817|0]=L,j=A,L=u0(k,1),l[j+16818|0]=L,j=A,L=u0(k,6),l[j+16819|0]=L,!s[A+16817|0])break h;r=A+16820|0,j=r,L=u0(k,1),l[j|0]=L,j=r,L=u0(k,1),l[j+1|0]=L,j=r,L=u0(k,1),l[j+2|0]=L,j=r,L=u0(k,1),l[j+3|0]=L,j=r,L=u0(k,1),l[j+4|0]=L,j=r,L=u0(k,1),l[j+5|0]=L,j=r,L=u0(k,1),l[j+6|0]=L,j=r,L=u0(k,1),l[j+7|0]=L,j=r,L=u0(k,1),l[j+8|0]=L}o=i[A+476>>2],r=o<<2,y=i[r+46e3>>2],i[A+16856>>2]=y,W=i[r+45984>>2],i[A+16852>>2]=W,z=s[A+480|0];h:{if(z){i[A+16848>>2]=0,n=1,r=1;break h}i[A+16848>>2]=o,n=o?y:1,r=o?W:1}i[A+16864>>2]=n,i[A+16860>>2]=r,t=i[A+512>>2],i[A+16832>>2]=t,h=i[A+516>>2],i[A+16840>>2]=h,w=i[A+612>>2],i[A+16872>>2]=w,k=1<>2]=k,R=i[A+616>>2],_=R+w|0,i[A+16876>>2]=_,I=i[A+488>>2],q=i[A+484>>2],i[A+16912>>2]=m(I,q),i[A+16836>>2]=m(t,6)-48,i[A+16844>>2]=m(h,6)-48,r=1<<_,i[A+16884>>2]=r,n=q-1|0,u=(n+k|0)/(k|0)|0,i[A+16888>>2]=u,v=I-1|0,p=(v+k|0)/(k|0)|0,i[A+16896>>2]=p,n=(r+n|0)/(r|0)|0,i[A+16892>>2]=n,i[A+16904>>2]=m(u,p),u=(r+v|0)/(r|0)|0,i[A+16900>>2]=u,i[A+16908>>2]=m(n,u),p=0,v=0;h:{if(!o||(v=0,z))break h;p=(r|0)/(W|0)|0,v=(r|0)/(y|0)|0}i[A+16920>>2]=v,i[A+16916>>2]=p,r=i[A+620>>2],i[A+16936>>2]=r,p=r+i[A+624>>2]|0,i[A+16940>>2]=p;h:{w:{if(o=_-r|0,(o|0)>2]){F1(22089,70,1,i[12468]);break w}if((o|0)>2]){F1(22160,70,1,i[12468]);break w}i[A+16944>>2]=w-1,v=i[A+8804>>2],i[A+16956>>2]=v,y=u<>2]=y,o=n<>2]=o,A0=u,u=R+1|0,i[A+16952>>2]=A0<>2]=n<>2]=v+i[A+8808>>2],i[A+16932>>2]=m(o,y);_:{if(s[A+16826|0]){u=1<>2]=u,i[A+16996>>2]=n,l[A+16993|0]=o,l[A+16992|0]=v,k-1&(I|q)){F1(21765,24,1,i[12468]);break w}if((r|0)>(w|0)){F1(30545,19,1,i[12468]);break w}if((p|0)>(((_|0)>=5?5:_)|0)){F1(30514,30,1,i[12468]);break w}if(t-17>>>0<=4294967286){F1(30440,36,1,i[12468]);break w}if(h-17>>>0<=4294967286){F1(30477,36,1,i[12468]);break w}l[A|0]=1,r=0;break h}r=8}if(r)break t;l[A|0]=1,r=0;break t}C0(16425,13927,320,13592),P()}v2(o,8,0),r=8;break t}v2(o,1005,0),r=8;break t}v2(o,1027,0),r=8}if(n=r,!r){if(u=i[f+516>>2],(u|0)>=0){n=B-928|0,B=n,t=49876;t:{o:switch(u-1|0){case 1:t=49872;break;case 0:break o;default:break t}if(r=i[t>>2],c(r,30868,0),i[n+912>>2]=l[A+1|0],c(r,25835,n+912|0),i[n+896>>2]=l[A+2|0],c(r,27092,n+896|0),i[n+880>>2]=l[A+3|0],c(r,24311,n+880|0),o=l[A+2|0],k=B-16|0,B=k,t=A+4|0,Cr(t,1,r),(o|0)>=2)for(o=o-2|0,h=t+52|0,t=0;i[k>>2]=t,c(r,30407,k),Cr(h+m(t,52)|0,0,r),w=(t|0)==(o|0),t=t+1|0,!w;);B=k+16|0,i[n+864>>2]=i[A+472>>2],c(r,26637,n+864|0),k=i[A+476>>2];o:{if(k>>>0>=3){t=(k|0)==3?16639:6156;break o}t=i[(k<<2)+46016>>2]}if(i[n+852>>2]=t,i[n+848>>2]=k,c(r,31116,n+848|0),i[A+476>>2]==3&&(i[n+832>>2]=l[A+480|0],c(r,24388,n+832|0)),i[n+816>>2]=i[A+484>>2],c(r,25660,n+816|0),i[n+800>>2]=i[A+488>>2],c(r,23619,n+800|0),i[n+784>>2]=l[A+492|0],c(r,26448,n+784|0),s[A+492|0]&&(i[n+768>>2]=i[A+496>>2],c(r,25571,n+768|0),i[n+752>>2]=i[A+500>>2],c(r,23524,n+752|0),i[n+736>>2]=i[A+504>>2],c(r,25901,n+736|0),i[n+720>>2]=i[A+508>>2],c(r,22918,n+720|0)),i[n+704>>2]=i[A+512>>2],c(r,26079,n+704|0),i[n+688>>2]=i[A+516>>2],c(r,25324,n+688|0),i[n+672>>2]=i[A+520>>2],c(r,25249,n+672|0),i[n+656>>2]=l[A+524|0],c(r,23977,n+656|0),k=l[A+2|0],t=s[A+524|0]?0:k-1|0,(t|0)<(k|0))for(o=A+584|0,h=A+556|0,w=A+528|0;i[n+640>>2]=t,c(r,22392,n+640|0),k=t<<2,i[n+624>>2]=i[k+w>>2],c(r,27200,n+624|0),i[n+608>>2]=i[k+h>>2],c(r,27635,n+608|0),i[n+592>>2]=i[k+o>>2],c(r,25370,n+592|0),t=t+1|0,(t|0)>2]=i[A+612>>2],c(r,25046,n+576|0),i[n+560>>2]=i[A+616>>2],c(r,24999,n+560|0),i[n+544>>2]=i[A+620>>2],c(r,25998,n+544|0),i[n+528>>2]=i[A+624>>2],c(r,24954,n+528|0),i[n+512>>2]=i[A+628>>2],c(r,23652,n+512|0),i[n+496>>2]=i[A+632>>2],c(r,25282,n+496|0),i[n+480>>2]=l[A+636|0],c(r,24421,n+480|0);o:{if(!s[A+636|0]||(i[n+464>>2]=l[A+637|0],c(r,24150,n+464|0),!s[A+637|0]))break o;c(r,12407,0)}if(i[n+448>>2]=l[A+8798|0],c(r,29926,n+448|0),i[n+432>>2]=l[A+8799|0],c(r,24643,n+432|0),i[n+416>>2]=l[A+8800|0],c(r,29968,n+416|0),s[A+8800|0]&&(i[n+400>>2]=l[A+8801|0],c(r,27037,n+400|0),i[n+384>>2]=l[A+8802|0],c(r,26102,n+384|0),i[n+368>>2]=i[A+8804>>2],c(r,25135,n+368|0),i[n+352>>2]=i[A+8808>>2],c(r,25084,n+352|0),i[n+336>>2]=l[A+8812|0],c(r,25762,n+336|0)),i[n+320>>2]=(i[A+8820>>2]-i[A+8816>>2]|0)/100,c(r,23552,n+320|0),i[A+8820>>2]!=i[A+8816>>2])for(t=0;i[n+304>>2]=t,c(r,21478,n+304|0),o7(i[A+8816>>2]+m(t,100)|0,r),t=t+1|0,t>>>0<(i[A+8820>>2]-i[A+8816>>2]|0)/100>>>0;);i[n+288>>2]=l[A+8828|0],c(r,23859,n+288|0);o:{if(!s[A+8828|0]||(i[n+272>>2]=i[A+8832>>2],c(r,23586,n+272|0),i[A+8832>>2]<=0))break o;for(k=A+8964|0,o=A+8836|0,t=0;h=i[o+(t<<2)>>2],i[n+264>>2]=l[k+t|0],i[n+260>>2]=h,i[n+256>>2]=t,c(r,31243,n+256|0),t=t+1|0,(t|0)>2];);}if(i[n+240>>2]=l[A+8996|0],c(r,27479,n+240|0),i[n+224>>2]=l[A+8997|0],c(r,24452,n+224|0),i[n+208>>2]=l[A+8998|0],c(r,27894,n+208|0),i[n+192>>2]=l[A+16816|0],c(r,26514,n+192|0),i[n+176>>2]=l[A+16817|0],c(r,27282,n+176|0),i[n+160>>2]=l[A+16818|0],c(r,24239,n+160|0),i[n+144>>2]=l[A+16819|0],c(r,28654,n+144|0),i[n+128>>2]=i[A+16884>>2],c(r,27073,n+128|0),i[n+112>>2]=i[A+16880>>2],c(r,26157,n+112|0),i[n+96>>2]=1<>2]+i[A+612>>2],c(r,26138,n+96|0),i[n+80>>2]=1<>2],c(r,26195,n+80|0),i[n+64>>2]=1<>2]+i[A+620>>2],c(r,26176,n- -64|0),i[n+48>>2]=i[A+16892>>2],c(r,28335,n+48|0),i[n+32>>2]=i[A+16900>>2],c(r,28048,n+32|0),i[n+16>>2]=i[A+16852>>2],c(r,29626,n+16|0),i[n>>2]=i[A+16856>>2],c(r,29477,n),s[A+16817|0]){o=A+16820|0,k=B-144|0,B=k,r=49876;o:switch(u-1|0){case 1:r=49872;case 0:r=i[r>>2],c(r,30770,0),i[k+128>>2]=s[o|0],c(r,26591,k+128|0),i[k+112>>2]=s[o+1|0],c(r,26829,k+112|0),i[k+96>>2]=s[o+2|0],c(r,29231,k+96|0),i[k+80>>2]=s[o+3|0],c(r,29185,k+80|0),i[k+64>>2]=s[o+4|0],c(r,27354,k- -64|0),i[k+48>>2]=s[o+5|0],c(r,28761,k+48|0),i[k+32>>2]=s[o+6|0],c(r,26921,k+32|0),i[k+16>>2]=s[o+7|0],c(r,24908,k+16|0),i[k>>2]=s[o+8|0],c(r,26875,k);break;default:break o}B=k+144|0}if(!s[A+8998|0])break t;o=A+9e3|0,k=B-576|0,B=k,r=49876;o:{u:switch(u-1|0){case 1:r=49872;break;case 0:break u;default:break o}if(r=i[r>>2],c(r,30950,0),t=Q[o+2>>1],i[k+564>>2]=Q[o+4>>1],i[k+560>>2]=t,c(r,22356,k+560|0),i[k+544>>2]=s[o+6|0],c(r,23897,k+544|0),i[k+528>>2]=s[o+7|0],c(r,25729,k+528|0),i[k+512>>2]=s[o+8|0],c(r,23061,k+512|0),s[o+8|0]==1&&(t=i[o+12>>2],t>>>0<=4?u=i[(t<<2)+46216>>2]:u=12991,i[k+496>>2]=u,c(r,21960,k+496|0),i[k+480>>2]=s[o+16|0],c(r,27751,k+480|0),i[k+464>>2]=s[o+17|0],c(r,24060,k+464|0),i[k+448>>2]=s[o+18|0],c(r,28923,k+448|0),i[k+432>>2]=s[o+19|0],c(r,26371,k+432|0),i[k+416>>2]=s[o+20|0],c(r,29507,k+416|0)),i[k+400>>2]=s[o+21|0],c(r,22946,k+400|0),s[o+21|0]==1&&(i[k+384>>2]=s[o+22|0],c(r,26036,k+384|0),i[k+368>>2]=s[o+23|0],c(r,23471,k+368|0)),i[k+352>>2]=s[o+24|0],c(r,23177,k+352|0),i[k+336>>2]=s[o+25|0],c(r,29769,k+336|0),i[k+320>>2]=s[o+26|0],c(r,24024,k+320|0),i[k+304>>2]=s[o+27|0],c(r,25929,k+304|0),i[k+288>>2]=i[o+28>>2],c(r,26214,k+288|0),i[k+272>>2]=i[o+32>>2],c(r,25865,k+272|0),i[k+256>>2]=i[o+36>>2],c(r,26725,k+256|0),i[k+240>>2]=i[o+40>>2],c(r,25599,k+240|0),i[k+224>>2]=s[o+44|0],c(r,25693,k+224|0),s[o+44|0]==1&&(i[k+208>>2]=i[o+48>>2],c(r,27674,k+208|0),i[k+192>>2]=i[o+52>>2],c(r,29352,k+192|0)),i[k+176>>2]=s[o+56|0],c(r,24346,k+176|0),i[k+160>>2]=i[o+60>>2],c(r,28569,k+160|0),i[k+144>>2]=s[o+64|0],c(r,23821,k+144|0),i[k+128>>2]=s[o+7804|0],c(r,28230,k+128|0),s[o+7804|0]!=1)break o;i[k+112>>2]=s[o+7805|0],c(r,27710,k+112|0),i[k+96>>2]=s[o+7806|0],c(r,24191,k+96|0),i[k+80>>2]=s[o+7807|0],c(r,26550,k+80|0),i[k+64>>2]=Q[o+7808>>1],c(r,26996,k- -64|0),i[k+48>>2]=s[o+7810|0],c(r,28365,k+48|0),i[k+32>>2]=s[o+7811|0],c(r,27853,k+32|0),i[k+16>>2]=s[o+7812|0],c(r,26407,k+16|0),i[k>>2]=s[o+7813|0],c(r,27159,k)}B=k+576|0}B=n+928|0}i[Z+4>>2]=i[Z+4>>2]+1,n=(i[Z+484>>2]<<3)+f|0,i[n+728>>2]=A,r=i[n+732>>2],i[n+732>>2]=Z;t:{if(!r||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break t;V[i[i[r>>2]+8>>2]](r),g(r)}for(n=856,t=f+856|0;;){r=i[t>>2];t:{if(!r|i[Z+484>>2]!=l[r+13|0]||(r=i[t+4>>2],i[t>>2]=0,i[t+4>>2]=0,!r)||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break t;V[i[i[r>>2]+8>>2]](r),g(r)}if(n=n+8|0,t=n+f|0,(n|0)==1368)break}n=0}r=i[Z+4>>2],i[Z+4>>2]=r-1,r||(V[i[i[Z>>2]+8>>2]](Z),g(Z)),w4(f+548|0,C);break k;case 2:A=f,f=S+8|0,w=U(8520),i[w>>2]=43880,i[w+4>>2]=0,i[w+8>>2]=0,n=1006,t=w+12|0,l[t+8263|0]=0,l[t+8264|0]=0,l[t+8246|0]=2,l[t+8247|0]=0,l[t+8248|0]=0,l[t+8249|0]=0,l[t+8250|0]=0,i[t+4>>2]=0,i[t+8>>2]=0,l[t|0]=0,i[t+8448>>2]=0,i[t+8452>>2]=0,l[t+26|0]=0,X[t+24>>1]=0,i[t+20>>2]=27,l[t+17|0]=1,l[t+18|0]=1,l[t+9|0]=0,l[t+10|0]=0,l[t+11|0]=0,l[t+12|0]=0,l[t+13|0]=0,l[t+14|0]=0,l[t+15|0]=0,l[t+16|0]=0,r=t+8456|0,i[r>>2]=0,i[r+4>>2]=0,r=t+8464|0,i[r>>2]=0,i[r+4>>2]=0,k=t+8472|0,i[k>>2]=0,i[k+4>>2]=0,k=t+8480|0,i[k>>2]=0,i[k+4>>2]=0,k=t+8488|0,i[k>>2]=0,i[k+4>>2]=0,u=t+8496|0,i[u>>2]=0,i[u+4>>2]=0,i[t+8504>>2]=0,l[t+43|0]=0,l[t+44|0]=0,l[t+45|0]=0,l[t+46|0]=0,i[t+36>>2]=0,i[t+40>>2]=0,i[t+28>>2]=0,i[t+32>>2]=0,X[t+56>>1]=257,i[t+48>>2]=1,i[t+52>>2]=1,l[t+58|0]=1,B0(t+8280|0,0,168),i[k>>2]=0,i[r>>2]=0,i[t+8268>>2]=0,l[t+8233|0]=0,l[t+61|0]=0,l[t+59|0]=0,l[t+60|0]=0,i[t+64>>2]=0,i[t+68>>2]=0,l[t+72|0]=0,i[t+8236>>2]=2,i[t+8240>>2]=0,X[t+8244>>1]=0,l[t|0]=0,r=i[t+8>>2],i[t+4>>2]=0,i[t+8>>2]=0;t:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break t;V[i[i[r>>2]+8>>2]](r),g(r)}i[t+12>>2]=0,i[t+28>>2]=0,i[t+32>>2]=0,l[t+26|0]=0,X[t+24>>1]=0,i[t+20>>2]=27,l[t+18|0]=1,l[t+58|0]=1,X[t+56>>1]=257,i[t+48>>2]=1,i[t+52>>2]=1,X[t+16>>1]=256,i[t+36>>2]=0,i[t+40>>2]=0,l[t+43|0]=0,l[t+44|0]=0,l[t+45|0]=0,l[t+46|0]=0,Z=B0(t+8280|0,0,168),i[t+8268>>2]=0,l[t+8233|0]=0,l[t+61|0]=0,l[t+59|0]=0,l[t+60|0]=0,i[t+64>>2]=0,i[t+68>>2]=0,l[t+72|0]=0,i[t+8236>>2]=2,i[t+8240>>2]=0,X[t+8244>>1]=0,i[t+8452>>2]=i[t+8448>>2],i[t+8464>>2]=i[t+8460>>2],i[t+8476>>2]=i[t+8472>>2],i[t+8488>>2]=i[t+8484>>2],i[t+8500>>2]=i[t+8496>>2],r=M0(f),l[t+12|0]=r;t:{if(!((r|0)!=-99999&(r|0)<=63)){v2(A+4|0,1009,0);break t}r=M0(f),l[t+13|0]=r;o:{u:{if(!((r|0)!=-99999&(r|0)<=15))break u;if(j=t,L=u0(f,1),l[j+14|0]=L,j=t,L=u0(f,1),l[j+43|0]=L,j=t,L=u0(f,3),l[j+8240|0]=L,j=t,L=u0(f,1),l[j+15|0]=L,j=t,L=u0(f,1),l[j+16|0]=L,r=M0(f),l[t+17|0]=r,(r|0)==-99999||(l[t+17|0]=r+1,r=M0(f),l[t+18|0]=r,(r|0)==-99999))break o;if(l[t+18|0]=r+1,r=A+(l[t+13|0]<<3)|0,u=i[r+728>>2],!u)break u;k=i[r+732>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),i[t+4>>2]=u,r=i[t+8>>2],i[t+8>>2]=k;l:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break l;V[i[i[r>>2]+8>>2]](r),g(r)}if(r=_1(f),i[t+20>>2]=r,(r|0)==-99999)break o;i[t+20>>2]=r+26,j=t,L=u0(f,1),l[j+24|0]=L,j=t,L=u0(f,1),l[j+25|0]=L,r=u0(f,1),l[t+26|0]=r;l:{if(r&255){if(r=M0(f),i[t+28>>2]=r,(r|0)!=-99999)break l;break o}i[t+28>>2]=0}if(r=_1(f),i[t+32>>2]=r,(r|0)==-99999||(r=_1(f),i[t+36>>2]=r,(r|0)==-99999))break o;j=t,L=u0(f,1),l[j+40|0]=L,j=t,L=u0(f,1),l[j+41|0]=L,j=t,L=u0(f,1),l[j+42|0]=L,j=t,L=u0(f,1),l[j+44|0]=L,j=t,L=u0(f,1),l[j+46|0]=L,j=t,L=u0(f,1),l[j+45|0]=L;l:{s:{if(s[t+46|0]){if(r=M0(f),i[t+48>>2]=r,!((r|0)!=-99999&(r|0)<10)||(i[t+48>>2]=r+1,r=M0(f),i[t+52>>2]=r,!((r|0)!=-99999&(r|0)<10)))break o;if(i[t+52>>2]=r+1,r=u0(f,1),l[t+56|0]=r,!(r&255)){if(r=i[t+4>>2],u=i[r+16900>>2],k=i[r+16892>>2],h=i[t+48>>2],(h|0)>=2)for(r=0;;){if(h=Z+(r<<2)|0,o=M0(f),i[h>>2]=o,(o|0)==-99999)break o;if(o=o+1|0,i[h>>2]=o,k=k-o|0,r=r+1|0,h=i[t+48>>2],!((r|0)<(h-1|0)))break}if(o=0,(k|0)<=0)break l;if(i[(Z+(h<<2)|0)-4>>2]=k,k=i[t+52>>2],(k|0)>=2)for(Z=t+8320|0,r=0;;){if(h=Z+(r<<2)|0,k=M0(f),i[h>>2]=k,(k|0)==-99999)break o;if(k=k+1|0,i[h>>2]=k,u=u-k|0,r=r+1|0,k=i[t+52>>2],!((r|0)<(k-1|0)))break}if((u|0)<=0)break l;i[(t+(k<<2)|0)+8316>>2]=u}r=u0(f,1);break s}l[t+56|0]=1,i[t+48>>2]=1,i[t+52>>2]=1,r=0}i[t+64>>2]=0,i[t+68>>2]=0,l[t+57|0]=r,j=t,L=u0(f,1),l[j+58|0]=L,r=u0(f,1),l[t+59|0]=r;s:{if(r&255){if(j=t,L=u0(f,1),l[j+60|0]=L,r=u0(f,1),l[t+61|0]=r,r&255)break s;if(r=_1(f),i[t- -64>>2]=r,(r|0)==-99999||(i[t+64>>2]=r<<1,r=_1(f),i[t+68>>2]=r,(r|0)==-99999))break o;i[t+68>>2]=r<<1;break s}X[t+60>>1]=0}if(k=u0(f,1),l[t+72|0]=k,r=i[t+4>>2],u=k&255,!(s[r+636|0]|!u))break o;k=t+73|0;s:{if(u){if(r=Yk(f,k),!r)break s;v2(A+4|0,r,0);break t}l0(k,r+638|0,8160)}if(j=t,L=u0(f,1),l[j+8233|0]=L,r=M0(f),i[t+8236>>2]=r,(r|0)==-99999)break o;if(i[t+8236>>2]=r+2,k=i[t+4>>2],(r|0)>((i[k+612>>2]+i[k+616>>2]|0)-2|0))break l;j=t,L=u0(f,1),l[j+8241|0]=L,r=u0(f,1),l[t+8242|0]=r;s:{if(!(r&255)||(j=t,L=u0(f,1),l[j+8243|0]=L,j=t,L=u0(f,1),l[j+8244|0]=L,j=t,L=u0(f,6),l[j+8245|0]=L,!s[t+8243|0]))break s;r=t+8246|0,u=i[(A+(l[t+13|0]<<3)|0)+728>>2],s[t+25|0]&&(j=r,L=M0(f)+2|0,l[j|0]=L),k=u0(f,1),l[r+1|0]=(k|0)!=0,!k|i[u+16848>>2]==3||v2(A+4|0,1006,0),k=u0(f,1),l[r+2|0]=(k|0)!=0;h:{w:{_:{v:{if(!(i[u+16848>>2]|!k)){if(v2(A+4|0,1006,0),l[r+2|0]&1)break v;break _}if(!k)break _}if(k=M0(f),!((k|0)!=-99999&(k|0)<=i[u+616>>2])||(l[r+3|0]=k,k=M0(f),!((k|0)!=-99999&(k|0)<6)))break w;if(k=(k&255)+1|0,l[r+4|0]=k,(k|0)!=(k&255))break _;for(Z=r+11|0,h=r+5|0,k=0;;){if(_=_1(f),_-13>>>0<=4294967270||(l[k+h|0]=_,_=_1(f),_-13>>>0<=4294967270))break w;if(l[k+Z|0]=_,k=k+1|0,!(k>>>0>2],(k|0)<=(((Z|0)>=10?Z-10|0:0)|0)))break _;break w}l[r+17|0]=k;_:{if(f=M0(f),(f|0)!=-99999&&(k=i[u+16840>>2],(f|0)<=(((k|0)>=10?k-10|0:0)|0)))break _;break w}l[r+18|0]=f,f=1;break h}v2(A+4|0,1006,0),f=0}if(!f)break l}u=0,r=B,A0=r,Z=i[t+4>>2],f=i[Z+16876>>2],i[t+8276>>2]=s[t+8246|0],i[t+8268>>2]=f-i[t+28>>2],i[t+8272>>2]=f-s[t+8249|0],k=i[t+48>>2];s:{if(!s[t+56|0])break s;_=r-((k<<2)+19&-16)|0,B=_;h:{if((k|0)<0)break h;if(f=i[Z+16892>>2],k)for(o=k+1&-2,r=0;i[_+(u<<2)>>2]=(m(f,u)|0)/(k|0),h=u|1,i[_+(h<<2)>>2]=(m(f,h)|0)/(k|0),u=u+2|0,r=r+2|0,(o|0)!=(r|0););k&1||(i[_+(u<<2)>>2]=(m(f,u)|0)/(k|0)),p=k&3,v=t+8280|0,r=i[_>>2],h=0;w:{if(k-1>>>0<3){u=0;break w}for(W=k&2147483644,u=0,o=0;f=u<<2,I=f|4,y=i[I+_>>2],i[f+v>>2]=y-r,q=v+I|0,r=f|8,I=i[r+_>>2],i[q>>2]=I-y,f=f|12,y=i[f+_>>2],i[r+v>>2]=y-I,u=u+4|0,r=i[_+(u<<2)>>2],i[f+v>>2]=r-y,o=o+4|0,(W|0)!=(o|0););}if(!p)break h;for(;o=v+(u<<2)|0,u=u+1|0,f=i[_+(u<<2)>>2],i[o>>2]=f-r,r=f,h=h+1|0,(p|0)!=(h|0););}if(u=0,f=i[t+52>>2],_=_-((f<<2)+19&-16)|0,B=_,(f|0)<0)break s;if(o=i[Z+16900>>2],f)for(h=f+1&-2,r=0;i[_+(u<<2)>>2]=(m(o,u)|0)/(f|0),v=u|1,i[_+(v<<2)>>2]=(m(o,v)|0)/(f|0),u=u+2|0,r=r+2|0,(h|0)!=(r|0););f&1||(i[_+(u<<2)>>2]=(m(o,u)|0)/(f|0)),p=f&3,v=t+8320|0,r=i[_>>2],h=0;h:{if(f-1>>>0<3){u=0;break h}for(W=f&2147483644,u=0,o=0;f=u<<2,I=f|4,y=i[I+_>>2],i[f+v>>2]=y-r,q=v+I|0,r=f|8,I=i[r+_>>2],i[q>>2]=I-y,f=f|12,y=i[f+_>>2],i[r+v>>2]=y-I,u=u+4|0,r=i[_+(u<<2)>>2],i[f+v>>2]=r-y,o=o+4|0,(W|0)!=(o|0););}if(!p)break s;for(;o=v+(u<<2)|0,u=u+1|0,f=i[_+(u<<2)>>2],i[o>>2]=f-r,r=f,h=h+1|0,(p|0)!=(h|0););}if(i[t+8360>>2]=0,_=t+8360|0,(k|0)>0)for(o=t+8280|0,k=0,f=0;r=f+1|0,k=i[o+(f<<2)>>2]+k|0,i[_+(r<<2)>>2]=k,f=r,(r|0)>2];);if(i[t+8404>>2]=0,v=t+8404|0,i[t+52>>2]>0)for(o=t+8320|0,k=0,f=0;r=f+1|0,k=i[o+(f<<2)>>2]+k|0,i[v+(r<<2)>>2]=k,f=r,(r|0)>2];);q=t+8448|0,f=i[Z+16908>>2],k=i[t+8448>>2],r=i[t+8452>>2]-k>>2;s:{if(f>>>0>r>>>0){Qi(q,f-r|0),f=i[Z+16908>>2];break s}if(f>>>0>=r>>>0)break s;i[t+8452>>2]=k+(f<<2)}k=i[t+8460>>2],r=i[t+8464>>2]-k>>2;s:{if(r>>>0>>0){Qi(t+8460|0,f-r|0),f=i[Z+16908>>2];break s}if(f>>>0>=r>>>0)break s;i[t+8464>>2]=k+(f<<2)}D=t+8472|0,k=i[t+8472>>2],r=i[t+8476>>2]-k>>2;s:{if(r>>>0>>0){Qi(D,f-r|0),f=i[Z+16908>>2];break s}if(f>>>0>=r>>>0)break s;i[t+8476>>2]=k+(f<<2)}J=t+8484|0,k=i[t+8484>>2],r=i[t+8488>>2]-k>>2;s:{if(r>>>0>>0){Qi(J,f-r|0);break s}if(f>>>0>=r>>>0)break s;i[t+8488>>2]=k+(f<<2)}E=t+8496|0,f=i[Z+16932>>2],k=i[t+8496>>2],r=i[t+8500>>2]-k>>2;s:{if(f>>>0>r>>>0){Qi(E,f-r|0);break s}if(f>>>0>=r>>>0)break s;i[t+8500>>2]=k+(f<<2)}if(i[Z+16908>>2]>0)for(z=t+8280|0,R=t+8320|0,f0=i[t+8460>>2],h0=i[t+8448>>2],r=0;;){f=i[Z+16892>>2],y=(r|0)/(f|0)|0,W=r-m(f,y)|0,h=-1,o=i[t+48>>2];s:{if((o|0)<=0)break s;if(u=0,f=0,o>>>0>=4)for(p=o&2147483644,k=0;I=(W|0)>2]?h:f,h=f|1,I=(W|0)>2]?I:h,h=f|2,I=(W|0)>2]?I:h,h=f|3,h=(W|0)>2]?I:h,f=f+4|0,k=k+4|0,(p|0)!=(k|0););if(k=o&3,!k)break s;for(;h=(W|0)>2]?h:f,f=f+1|0,u=u+1|0,(k|0)!=(u|0););}p=i[t+52>>2];s:{if((p|0)<=0){o=-1;break s}if(o=-1,u=0,f=0,p>>>0>=4)for(I=p&2147483644,k=0;H=(y|0)>2]?o:f,o=f|1,H=(y|0)>2]?H:o,o=f|2,H=(y|0)>2]?H:o,o=f|3,o=(y|0)>2]?H:o,f=f+4|0,k=k+4|0,(I|0)!=(k|0););if(k=p&3,!k)break s;for(;o=(y|0)>2]?o:f,f=f+1|0,u=u+1|0,(k|0)!=(u|0););}u=0,f=(r<<2)+h0|0,i[f>>2]=0;s:{if((h|0)<=0)break s;if(I=R+(o<<2)|0,p=0,k=0,h>>>0>=4)for(n0=h&2147483644,a=0;H=u,u=z+(k<<2)|0,H=H+m(i[u>>2],i[I>>2])|0,i[f>>2]=H,H=H+m(i[u+4>>2],i[I>>2])|0,i[f>>2]=H,H=H+m(i[u+8>>2],i[I>>2])|0,i[f>>2]=H,u=H+m(i[u+12>>2],i[I>>2])|0,i[f>>2]=u,k=k+4|0,a=a+4|0,(n0|0)!=(a|0););if(a=h&3,!a)break s;for(;u=m(i[z+(k<<2)>>2],i[I>>2])+u|0,i[f>>2]=u,k=k+1|0,p=p+1|0,(a|0)!=(p|0););}s:{if((o|0)<=0)break s;a=o&3,I=0;h:{if(o>>>0<4){k=0;break h}for(n0=o&2147483644,k=0,p=0;H=u,u=R+(k<<2)|0,H=H+m(i[u>>2],i[Z+16892>>2])|0,i[f>>2]=H,H=H+m(i[u+4>>2],i[Z+16892>>2])|0,i[f>>2]=H,H=H+m(i[u+8>>2],i[Z+16892>>2])|0,i[f>>2]=H,u=H+m(i[u+12>>2],i[Z+16892>>2])|0,i[f>>2]=u,k=k+4|0,p=p+4|0,(n0|0)!=(p|0););}if(!a)break s;for(;u=m(i[R+(k<<2)>>2],i[Z+16892>>2])+u|0,i[f>>2]=u,k=k+1|0,I=I+1|0,(a|0)!=(I|0););}if((o|h)<0&&(C0(17156,13934,620,4120),P()),k=h<<2,o=m(i[k+z>>2],y-i[v+(o<<2)>>2]|0)+u|0,i[f>>2]=o,u=f,f=o+(W-i[k+_>>2]|0)|0,i[u>>2]=f,i[(f<<2)+f0>>2]=r,r=r+1|0,!((r|0)>2]))break}u=i[t+52>>2];s:{if((u|0)<=0||(k=0,f=i[t+48>>2],(f|0)<=0))break s;for(h=0;;){h:{if((f|0)<=0){h=h+1|0;break h}if(o=0,p=v+(h<<2)|0,h=h+1|0,W=v+(h<<2)|0,I=i[W>>2],(I|0)<=i[p>>2]){k=((f|0)<=1?1:f)+k|0;break h}for(;;){u=i[p>>2];w:{if((I|0)<=(u|0)){o=o+1|0;break w}if(y=_+(o<<2)|0,o=o+1|0,z=_+(o<<2)|0,r=i[z>>2],(r|0)<=i[y>>2])break w;for(R=i[J>>2],a=i[D>>2],f0=i[q>>2];;){if(f=i[y>>2],(r|0)>(f|0)){for(;r=f<<2,i[a+(i[r+(f0+(m(i[Z+16892>>2],u)<<2)|0)>>2]<<2)>>2]=k,i[r+(R+(m(i[Z+16892>>2],u)<<2)|0)>>2]=k,f=f+1|0,r=i[z>>2],(f|0)<(r|0););I=i[W>>2]}if(u=u+1|0,!((I|0)>(u|0)))break}f=i[t+48>>2]}if(k=k+1|0,!((f|0)>(o|0)))break}u=i[t+52>>2]}if(!((u|0)>(h|0)))break}}u=i[Z+16928>>2];s:{if((u|0)<=0||(k=0,f=i[Z+16924>>2],(f|0)<=0))break s;for(v=i[E>>2],p=i[q>>2];;){if(r=0,(f|0)>0){for(;;){y=v+(r<<2)|0,u=y+(m(f,k)<<2)|0,f=i[Z+16936>>2],o=i[Z+16876>>2],i[u>>2]=i[(p+(m(i[Z+16892>>2],k<>o)<<2)|0)+(r<>o<<2)>>2]<<(o-f<<1),o=i[Z+16876>>2],h=i[Z+16936>>2],_=o-h|0;h:{if((_|0)<=0){u=0;break h}if(f=0,u=0,(o|0)!=(h+1|0))for(W=_&2147483646,h=0;I=f|1,o=2<>2],k)<<2)|0,i[f>>2]=i[f>>2]+u,f=i[Z+16924>>2],r=r+1|0,!((f|0)>(r|0)))break}u=i[Z+16928>>2]}if(k=k+1|0,!((k|0)<(u|0)))break}}B=A0,l[t|0]=1,o=1}break t}v2(A+4|0,1010,0);break t}v2(A+4|0,1006,0),o=0}t:{if(!o)break t;if(n=0,Z=i[A+524>>2],(Z|0)>=0){u=0,f=B-720|0,B=f,r=49876;o:{u:switch(Z-1|0){case 1:r=49872;break;case 0:break u;default:break o}if(r=i[r>>2],c(r,30909,0),i[f+704>>2]=l[t+12|0],c(r,27820,f+704|0),i[f+688>>2]=l[t+13|0],c(r,27787,f+688|0),i[f+672>>2]=l[t+14|0],c(r,24685,f+672|0),i[f+656>>2]=l[t+15|0],c(r,27400,f+656|0),i[f+640>>2]=l[t+16|0],c(r,26481,f+640|0),i[f+624>>2]=l[t+17|0],c(r,25213,f+624|0),i[f+608>>2]=l[t+18|0],c(r,25177,f+608|0),i[f+592>>2]=i[t+20>>2],c(r,29699,f+592|0),i[f+576>>2]=l[t+24|0],c(r,23274,f+576|0),i[f+560>>2]=l[t+25|0],c(r,23355,f+560|0),i[f+544>>2]=l[t+26|0],c(r,25965,f+544|0),s[t+26|0]&&(i[f+528>>2]=i[t+28>>2],c(r,26761,f+528|0)),i[f+512>>2]=i[t+32>>2],c(r,29150,f+512|0),i[f+496>>2]=i[t+36>>2],c(r,29115,f+496|0),i[f+480>>2]=l[t+40|0],c(r,23774,f+480|0),i[f+464>>2]=l[t+41|0],c(r,28726,f+464|0),i[f+448>>2]=l[t+42|0],c(r,28271,f+448|0),i[f+432>>2]=l[t+43|0],c(r,26794,f+432|0),i[f+416>>2]=l[t+44|0],c(r,23239,f+416|0),i[f+400>>2]=l[t+46|0],c(r,28807,f+400|0),i[f+384>>2]=l[t+45|0],c(r,23433,f+384|0),s[t+46|0]){if(i[f+368>>2]=i[t+48>>2],c(r,26345,f+368|0),i[f+352>>2]=i[t+52>>2],c(r,27609,f+352|0),i[f+336>>2]=l[t+56|0],c(r,23213,f+336|0),c(r,20060,0),i[t+48>>2]>=0)for(k=t+8360|0;i[f+320>>2]=i[k+(u<<2)>>2],c(r,19295,f+320|0),o=i[t+48>>2]>(u|0),u=u+1|0,!!o;);if(u=0,c(r,31103,0),c(r,20038,0),i[t+52>>2]>=0)for(k=t+8404|0;i[f+304>>2]=i[k+(u<<2)>>2],c(r,19295,f+304|0),o=i[t+52>>2]>(u|0),u=u+1|0,!!o;);c(r,31103,0),i[f+288>>2]=l[t+57|0],c(r,24729,f+288|0)}if(i[f+272>>2]=l[t+58|0],c(r,23307,f+272|0),i[f+256>>2]=l[t+59|0],c(r,23017,f+256|0),s[t+59|0]&&(i[f+240>>2]=l[t+60|0],c(r,23388,f+240|0),i[f+224>>2]=l[t+61|0],c(r,23137,f+224|0),i[f+208>>2]=i[t+64>>2],c(r,30328,f+208|0),i[f+192>>2]=i[t+68>>2],c(r,30346,f+192|0)),i[f+176>>2]=l[t+72|0],c(r,23097,f+176|0),i[f+160>>2]=l[t+8233|0],c(r,22980,f+160|0),i[f+144>>2]=i[t+8236>>2],c(r,27122,f+144|0),i[f+128>>2]=l[t+8240|0],c(r,26275,f+128|0),i[f+112>>2]=l[t+8241|0],c(r,24100,f+112|0),i[f+96>>2]=l[t+8242|0],c(r,28959,f+96|0),i[f+80>>2]=l[t+8243|0],c(r,27318,f+80|0),i[f+64>>2]=l[t+8244|0],c(r,24275,f- -64|0),i[f+48>>2]=l[t+8245|0],c(r,28690,f+48|0),i[f+32>>2]=i[t+8268>>2],c(r,28533,f+32|0),i[f+16>>2]=i[t+8272>>2],c(r,25489,f+16|0),i[f>>2]=i[t+8276>>2],c(r,25530,f),!s[t+8243|0])break o;o=t+8246|0,r=B-144|0,B=r,k=49876;u:switch(Z-1|0){case 1:k=49872;case 0:u=i[k>>2],c(u,31034,0),i[r+128>>2]=s[o|0],c(u,27563,r+128|0),i[r+112>>2]=s[o+1|0],c(u,24862,r+112|0),i[r+96>>2]=s[o+2|0],c(u,27433,r+96|0);l:{if(s[o+2|0]!=1||(i[r+80>>2]=s[o+3|0],c(u,28443,r+80|0),i[r+64>>2]=s[o+4|0],c(u,29543,r- -64|0),!s[o+4|0]))break l;for(Z=o+11|0,h=o+5|0,k=0;i[r+52>>2]=l[k+h|0],i[r+48>>2]=k,c(u,30057,r+48|0),i[r+36>>2]=l[k+Z|0],i[r+32>>2]=k,c(u,30010,r+32|0),k=k+1|0,k>>>0>2]=s[o+17|0],c(u,29431,r+16|0),i[r>>2]=s[o+18|0],c(u,28995,r);break;default:break u}B=r+144|0}B=f+720|0}if(i[w+4>>2]=i[w+4>>2]+1,r=A+(l[w+24|0]<<3)|0,i[r+856>>2]=t,f=i[r+860>>2],i[r+860>>2]=w,!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break t;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[w+4>>2],i[w+4>>2]=f-1,f||(V[i[i[w>>2]+8>>2]](w),g(w)),w4(A+548|0,C);break k;case 7:case 8:k=S+8|0,u=(r|0)==40,r=0,t=B-80|0,B=t;t:{o:{for(o=i[f+1376>>2];A=u0(k,8),r=A+r|0,(A|0)==255;);for(;A=u0(k,8),n=A+n|0,(A|0)==255;);i[t+4>>2]=n,i[t>>2]=r,A=0;u:{if((r|0)!=132||(j=t,L=u0(k,8),i[j+8>>2]=L,A=1025,!o))break u;for(A=t+12|0,Z=t+60|0,h=t+68|0,o=i[o+476>>2],n=0;;){l:{s:switch(i[t+8>>2]){case 0:r=A+(n<<4)|0,j=r,L=u0(k,8),l[j|0]=L,j=r,L=u0(k,8),l[j+1|0]=L,j=r,L=u0(k,8),l[j+2|0]=L,j=r,L=u0(k,8),l[j+3|0]=L,j=r,L=u0(k,8),l[j+4|0]=L,j=r,L=u0(k,8),l[j+5|0]=L,j=r,L=u0(k,8),l[j+6|0]=L,j=r,L=u0(k,8),l[j+7|0]=L,j=r,L=u0(k,8),l[j+8|0]=L,j=r,L=u0(k,8),l[j+9|0]=L,j=r,L=u0(k,8),l[j+10|0]=L,j=r,L=u0(k,8),l[j+11|0]=L,j=r,L=u0(k,8),l[j+12|0]=L,j=r,L=u0(k,8),l[j+13|0]=L,j=r,L=u0(k,8),l[j+14|0]=L,j=r,L=u0(k,8),l[j+15|0]=L;break l;case 1:j=Z+(n<<1)|0,L=u0(k,16),X[j>>1]=L;break l;case 2:break s;default:break l}j=h+(n<<2)|0,L=u0(k,32),i[j>>2]=L}if(!(o&&(r=n>>>0<2,n=n+1|0,r)))break}A=0}u:{if(!A){if(r=i[f+3212>>2],!u|(r|0)==i[f+3208>>2])break u;if(u=i[r-4>>2],r=i[u+440>>2],o=i[u+444>>2],r>>>0>>0){j=u,L=l0(r,t,80)+80|0,i[j+440>>2]=L;break u}if(n=i[u+436>>2],h=(r-n|0)/80|0,k=h+1|0,k>>>0>=53687092)break o;if(o=(o-n|0)/80|0,Z=o<<1,Z=o>>>0>=26843545?53687091:k>>>0>>0?Z:k,Z){if(Z>>>0>=53687092)break i;k=U(m(Z,80))}else k=0;if(o=k+m(h,80)|0,h=l0(o,t,80)+80|0,(r|0)!=(n|0)){for(;o=o-80|0,r=r-80|0,l0(o,r,80),(r|0)!=(n|0););n=i[u+436>>2]}i[u+444>>2]=k+m(Z,80),i[u+440>>2]=h,i[u+436>>2]=o,n&&G(n),i[u+440>>2]=h;break u}if(r=i[f+84>>2],(r|0)==20){i[f+80>>2]=1001;break u}i[f+84>>2]=r+1,i[((r<<2)+f|0)+4>>2]=A}B=t+80|0,n=A;break t}y0(),P()}w4(f+548|0,C);break k;case 4:l[f+2203|0]=1,w4(f+548|0,C);break k;default:break n}w4(f+548|0,C)}B=S+32|0,l[d+15|0]=1,r=n;break f}if(!(s[r|0]!=1|i[f+3208>>2]!=i[f+3212>>2])){if(r=13,f=1,e)break A;break e}r=fk(f,d+15|0)}if(!e)break e;f=r?0:s[d+15|0]}i[e>>2]=f}return B=d+16|0,r}C0(7808,13894,1328,11303),P()}_2(),P()}function f6(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0,r2=0;u=B-128|0,B=u,W6(u+116|0,i[e+48>>2],r);i:{r:{w=i[e+20>>2];e:{if(!w)break e;for(n0=e+20|0,o=n0,G0=w;h=k0[G0+16>>2]>>0,o=h?o:G0,G0=i[(h<<2)+G0>>2],!!G0;);if(G0=0,(o|0)==(n0|0)|k0[o+16>>2]>r>>>0)break e;for(G0=n0;o=k0[w+16>>2]>>0,G0=o?G0:w,w=i[(o<<2)+w>>2],!!w;);if(G0=(n0|0)!=(G0|0)&k0[G0+16>>2]<=r>>>0?G0:n0,_=i[G0+20>>2],G0=i[G0+24>>2],G0&&(i[G0+4>>2]=i[G0+4>>2]+1),_)break r}if(l[u+96|0]=0,l[u+107|0]=0,r0(f,2,2e3,u+96|0),l[u+107|0]>=0)break i;G(i[u+96>>2]);break i}i[u+96>>2]=0,i[u+100>>2]=0,i[u+112>>2]=0,i[u+104>>2]=0,i[u+108>>2]=0,ei(u+88|0,i[e+48>>2],r);r:{e:{if(o=i[u+88>>2],!o||(l6(u- -64|0,e,i[o+56>>2],i[o+60>>2]),h=i[u+68>>2],o=i[u+64>>2],i[u+96>>2]=o,i[u+100>>2]=h,l[u+115|0]<0&&(G(i[u+104>>2]),o=i[u+96>>2]),h=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=h,i[u+112>>2]=i[u+80>>2],!o))break e;e=i[u+100>>2],i[f>>2]=i[u+96>>2],i[f+4>>2]=e,i[f+16>>2]=i[u+112>>2],e=i[u+108>>2],i[f+8>>2]=i[u+104>>2],i[f+12>>2]=e,i[u+104>>2]=0,i[u+108>>2]=0,i[u+112>>2]=0;break r}w=l[u+127|0],h=(w|0)<0;e:{A:{f:{k:{o=i[u+120>>2];n:{if(((h?o:w)|0)==4&&(h=h?i[u+116>>2]:u+116|0,Z=s[h+1|0]<<8,D=s[h+2|0]<<16|s[h+3|0]<<24,(s[h|0]|Z|D)==828601960||(h=D|(Z|s[h|0]),(h|0)==828601974|(h|0)==825259617|((h|0)==829108842|(h|0)==1734701162))))break n;if(!E4(u+116|0,9980)||(o=u- -64|0,cr(o,i[e+48>>2],r),o=E4(o,8704),l[u+75|0]<0&&G(i[u+64>>2]),!o))break k;w=s[u+127|0],o=i[u+120>>2]}n:{t:{if(h=o,o=w<<24>>24<0,((o?h:w)|0)!=4)break t;if(o=o?i[u+116>>2]:u+116|0,h=s[o+1|0]<<8,w=s[o+2|0]<<16|s[o+3|0]<<24,Z=1,(s[o|0]|h|w)==828601960||(o=w|(h|s[o|0]),Z=5,(o|0)==828601974)||(Z=4,(o|0)==825259617))break n;if((o|0)!=1734701162)break t;Z=3;break n}t:{if(!E4(u+116|0,9980)||(o=u- -64|0,cr(o,i[e+48>>2],r),o=E4(o,8704),l[u+75|0]<0&&G(i[u+64>>2]),!o))break t;Z=3;break n}Z=E4(u+116|0,16929)?7:0}if(Z=n7(Z,i[n+24>>2]),!Z){if(l[u+64|0]=0,l[u+75|0]=0,r0(f,11,6003,u- -64|0),l[u+75|0]>=0)break r;G(i[u+64>>2]);break r}i[u+8>>2]=0,i[u>>2]=0,i[u+4>>2]=0,w8(u- -64|0,i[e+48>>2],r,u),h=i[u+68>>2],o=i[u+64>>2],i[u+96>>2]=o,i[u+100>>2]=h,l[u+115|0]<0&&(G(i[u+104>>2]),o=i[u+96>>2]),h=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=h,i[u+112>>2]=i[u+80>>2];n:{if(o){k=i[u+100>>2],i[f>>2]=i[u+96>>2],i[f+4>>2]=k,i[f+16>>2]=i[u+112>>2],k=i[u+108>>2],i[f+8>>2]=i[u+104>>2],i[f+12>>2]=k,i[u+104>>2]=0,i[u+108>>2]=0,i[u+112>>2]=0,w=1;break n}if(V[i[Z+20>>2]](u- -64|0,u+60|0),h=i[u+64>>2],h){if(o=i[u+68>>2],t=i[u+72>>2],_=G2(t),_>>>0>=2147483640)break f;t:{o:{if(_>>>0>=11){k=(_|7)+1|0,w=U(k),i[u+56>>2]=k|-2147483648,i[u+48>>2]=w,i[u+52>>2]=_;break o}if(l[u+59|0]=_,w=u+48|0,!_)break t}F2(w,t,_)}l[w+_|0]=0,r0(f,h,o,u+48|0),l[u+59|0]<0&&G(i[u+48>>2]),w=1;break n}t:{if(i[Z>>2]<2||(o=i[Z+36>>2],!o))break t;V[o|0](i[u+60>>2],s[n+21|0])}if(h=u+48|0,o=i[u>>2],V[i[Z+28>>2]](h,i[u+60>>2],o,i[u+4>>2]-o|0),i[u+72>>2]=i[u+56>>2],o=i[u+52>>2],w=i[u+48>>2],i[u+64>>2]=w,i[u+68>>2]=o,w){V[i[Z+24>>2]](i[u+60>>2]),t=i[u+64>>2],o=i[u+68>>2],k=C1(h,i[u+72>>2]),r0(f,t,o,k),l[k+11|0]<0&&G(i[k>>2]),w=1;break n}if(i[u+44>>2]=0,h=u+48|0,V[i[Z+32>>2]](h,i[u+60>>2],u+44|0),i[u+72>>2]=i[u+56>>2],o=i[u+52>>2],w=i[u+48>>2],i[u+64>>2]=w,i[u+68>>2]=o,w){V[i[Z+24>>2]](i[u+60>>2]),t=i[u+64>>2],o=i[u+68>>2],k=C1(h,i[u+72>>2]),r0(f,t,o,k),l[k+11|0]<0&&G(i[k>>2]),w=1;break n}if(o=i[u+44>>2],!o){V[i[Z+24>>2]](i[u+60>>2]),k=C1(u+48|0,31341),r0(f,7,0,k),l[k+11|0]<0&&G(i[k>>2]),w=1;break n}if(si(A,o),G4(i[u+44>>2]),V[i[Z+24>>2]](i[u+60>>2]),o=i[_+176>>2],i[u+36>>2]=o,h=i[_+180>>2],i[u+40>>2]=h,h&&(i[h+4>>2]=i[h+4>>2]+1),o){w=i[A>>2],o=i[u+36>>2],h=i[u+40>>2],h&&(i[h+4>>2]=i[h+4>>2]+1),i[w+44>>2]=o,Z=i[w+48>>2],i[w+48>>2]=h;t:{if(!Z||(o=i[Z+4>>2],i[Z+4>>2]=o-1,o))break t;V[i[i[Z>>2]+8>>2]](Z),g(Z)}}if(o=i[_+184>>2],i[u+28>>2]=o,h=i[_+188>>2],i[u+32>>2]=h,h&&(i[h+4>>2]=i[h+4>>2]+1),o){w=i[A>>2],o=i[u+28>>2],h=i[u+32>>2],h&&(i[h+4>>2]=i[h+4>>2]+1),i[w+52>>2]=o,_=i[w+56>>2],i[w+56>>2]=h;t:{if(!_||(o=i[_+4>>2],i[_+4>>2]=o-1,o))break t;V[i[i[_>>2]+8>>2]](_),g(_)}}w=0;t:{if(t||(o=i[A>>2],t=i[o+32>>2],k=(k|0)==99?t:k,h=k>>>0<=1?1:k,k=(k|0)!=2?3:0,w=0,(k|0)==i[o+36>>2]&(t|0)==(h|0))||(i[u+20>>2]=0,i[u+24>>2]=0,t=u+48|0,o=k,k=u+20|0,N8(t,A,h,o,k,0,n+28|0),si(A,t),v1(t),v1(k),w=0,i[A>>2]))break t;k=C1(t,31341),r0(f,4,3003,k),l[k+11|0]<0&&G(i[k>>2]),w=1}v1(u+28|0),v1(u+36|0)}if(k=i[u>>2],k&&(i[u+4>>2]=k,G(k)),w)break r;break e}k=l[u+127|0],t=(k|0)<0;k:{n:{t:{if(((t?i[u+120>>2]:k)|0)!=4)break t;if(k=t?i[u+116>>2]:u+116|0,(s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))==1684632167){if(i[u+8>>2]=0,i[u>>2]=0,i[u+4>>2]=0,w8(u- -64|0,i[e+48>>2],r,u),t=i[u+68>>2],k=i[u+64>>2],i[u+96>>2]=k,i[u+100>>2]=t,l[u+115|0]<0&&(G(i[u+104>>2]),k=i[u+96>>2]),t=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=t,i[u+112>>2]=i[u+80>>2],k)break n;q=u- -64|0,v=B-224|0,B=v,i[v+216>>2]=0,i[v+208>>2]=0,i[v+212>>2]=0,Uk(v+184|0,v+208|0,u);o:{if(i[v+184>>2]){k=i[v+188>>2],i[q>>2]=i[v+184>>2],i[q+4>>2]=k,i[q+16>>2]=i[v+200>>2],k=i[v+196>>2],i[q+8>>2]=i[v+192>>2],i[q+12>>2]=k,i[v+200>>2]=0,i[v+192>>2]=0,i[v+196>>2]=0;break o}k=i[e+48>>2],t=i[k+76>>2],L=i[k+80>>2],L&&(i[L+4>>2]=i[L+4>>2]+1);u:{if(!t){if(o=U(56),i[v+24>>2]=o,i[v+28>>2]=48,i[v+32>>2]=-2147483592,t=s[11139]|s[11140]<<8|(s[11141]<<16|s[11142]<<24),k=s[11135]|s[11136]<<8|(s[11137]<<16|s[11138]<<24),l[o|0]=k,l[o+1|0]=k>>>8,l[o+2|0]=k>>>16,l[o+3|0]=k>>>24,l[o+4|0]=t,l[o+5|0]=t>>>8,l[o+6|0]=t>>>16,l[o+7|0]=t>>>24,l[o+48|0]=0,t=s[11179]|s[11180]<<8|(s[11181]<<16|s[11182]<<24),k=s[11175]|s[11176]<<8|(s[11177]<<16|s[11178]<<24),l[o+40|0]=k,l[o+41|0]=k>>>8,l[o+42|0]=k>>>16,l[o+43|0]=k>>>24,l[o+44|0]=t,l[o+45|0]=t>>>8,l[o+46|0]=t>>>16,l[o+47|0]=t>>>24,t=s[11171]|s[11172]<<8|(s[11173]<<16|s[11174]<<24),k=s[11167]|s[11168]<<8|(s[11169]<<16|s[11170]<<24),l[o+32|0]=k,l[o+33|0]=k>>>8,l[o+34|0]=k>>>16,l[o+35|0]=k>>>24,l[o+36|0]=t,l[o+37|0]=t>>>8,l[o+38|0]=t>>>16,l[o+39|0]=t>>>24,t=s[11163]|s[11164]<<8|(s[11165]<<16|s[11166]<<24),k=s[11159]|s[11160]<<8|(s[11161]<<16|s[11162]<<24),l[o+24|0]=k,l[o+25|0]=k>>>8,l[o+26|0]=k>>>16,l[o+27|0]=k>>>24,l[o+28|0]=t,l[o+29|0]=t>>>8,l[o+30|0]=t>>>16,l[o+31|0]=t>>>24,t=s[11155]|s[11156]<<8|(s[11157]<<16|s[11158]<<24),k=s[11151]|s[11152]<<8|(s[11153]<<16|s[11154]<<24),l[o+16|0]=k,l[o+17|0]=k>>>8,l[o+18|0]=k>>>16,l[o+19|0]=k>>>24,l[o+20|0]=t,l[o+21|0]=t>>>8,l[o+22|0]=t>>>16,l[o+23|0]=t>>>24,t=s[11147]|s[11148]<<8|(s[11149]<<16|s[11150]<<24),k=s[11143]|s[11144]<<8|(s[11145]<<16|s[11146]<<24),l[o+8|0]=k,l[o+9|0]=k>>>8,l[o+10|0]=k>>>16,l[o+11|0]=k>>>24,l[o+12|0]=t,l[o+13|0]=t>>>8,l[o+14|0]=t>>>16,l[o+15|0]=t>>>24,r0(q,2,113,v+24|0),l[v+35|0]>=0)break u;G(i[v+24>>2]);break u}oi(v+172|0,t,r);l:{s:{h:{if(Z=Q[v+210>>1],_=Q[v+208>>1],w=m(Z,_),y=i[v+176>>2],h=i[v+172>>2],(w|0)==y-h>>2){if((h|0)!=(y|0)){if(o=i[e+16>>2],w=e+20|0,(o|0)==(w|0))break h;for(;;){for(_=i[h>>2],t=o;;){if(i[t+16>>2]!=(_|0)){k=i[t+4>>2];w:{if(k){for(;;)if(t=k,k=i[k>>2],!k)break w}for(;k=t,t=i[t+8>>2],(k|0)!=i[t>>2];);}if((t|0)!=(w|0))continue;break s}break}if(h=h+4|0,(y|0)==(h|0))break}}t=i[e+48>>2],i[v+12>>2]=i[t+52>>2],k=i[t+56>>2],i[v+16>>2]=k,k&&(i[k+4>>2]=i[k+4>>2]+1,t=i[e+48>>2]),k=i[t+44>>2],R=i[t+48>>2],R&&(i[R+4>>2]=i[R+4>>2]+1),p4(v+4|0,k,r,v+12|0,1885960297);w:{_:{if(k=i[v+4>>2],!k||(k=N0(k,68572,69712),!k))break _;if(p0=i[v+8>>2],!p0){p0=0;break w}i[p0+4>>2]=i[p0+4>>2]+1;break w}k=0}Z=i[v+212>>2],_=i[v+216>>2],l6(v+24|0,e,Z,_),o=i[v+28>>2],t=i[v+24>>2],i[v+184>>2]=t,i[v+188>>2]=o,l[v+203|0]<0&&(G(i[v+192>>2]),t=i[v+184>>2]),o=i[v+36>>2],i[v+192>>2]=i[v+32>>2],i[v+196>>2]=o,i[v+200>>2]=i[v+40>>2];w:{if(t){k=i[v+188>>2],i[q>>2]=i[v+184>>2],i[q+4>>2]=k,i[q+16>>2]=i[v+200>>2],k=i[v+196>>2],i[q+8>>2]=i[v+192>>2],i[q+12>>2]=k,i[v+192>>2]=0,i[v+196>>2]=0,i[v+200>>2]=0;break w}t=U(136),i[t+4>>2]=0,i[t+8>>2]=0,i[t>>2]=72792,B0(t+20|0,0,104),w=i[t+4>>2],h=w+1|0,i[t+4>>2]=h,i[t+56>>2]=0,i[t+60>>2]=0,i[t+44>>2]=99,i[t+48>>2]=99,i[t+32>>2]=34648,o=t- -64|0,i[o>>2]=0,i[o+4>>2]=0,i[t+132>>2]=0,i[t+124>>2]=0,i[t+128>>2]=0,i[t+84>>2]=1,i[t+88>>2]=1,i[t+72>>2]=t+76,i[t+92>>2]=0,i[t+96>>2]=0,i[t+100>>2]=0,i[t+104>>2]=0,i[t+108>>2]=0,i[t+112>>2]=0,l[t+113|0]=0,l[t+114|0]=0,l[t+115|0]=0,l[t+116|0]=0,l[t+117|0]=0,l[t+118|0]=0,l[t+119|0]=0,l[t+120|0]=0,o=t+12|0,i[t+12>>2]=o,i[t+8>>2]=i[t+8>>2]+1,i[t+4>>2]=w,i[t+16>>2]=t,h||(V[i[i[t>>2]+8>>2]](t),g(t)),i[A>>2]=o,o=i[A+4>>2],i[A+4>>2]=t;_:{if(!o||(t=i[o+4>>2],i[o+4>>2]=t-1,t))break _;V[i[i[o>>2]+8>>2]](o),g(o)}t=i[A>>2],i[t+36>>2]=3,i[t+32>>2]=1,i[t+28>>2]=_,i[t+24>>2]=Z;_:{if(k){if(o=i[k+56>>2],k=i[k+60>>2]-o|0,(k|0)<=0){if(k=C1(v+24|0,17788),r0(q,2,130,k),l[k+11|0]>=0)break w;G(i[k>>2]);break w}if(t=s[o|0],(t|0)==s[o+1|0]&s[o+2|0]==(t|0)|(k|0)!=3)break _;if(k=C1(v+24|0,17736),r0(q,2,130,k),l[k+11|0]>=0)break w;G(i[k>>2]);break w}v:{t=i[e+20>>2];Z:{if(!t)break Z;for(w=i[i[v+172>>2]>>2],h=e+20|0,k=h;o=w>>>0>k0[t+16>>2],k=o?k:t,t=i[(o<<2)+t>>2],!!t;);if((k|0)==(h|0))break Z;if(w>>>0>=k0[k+16>>2])break v}if(k=C1(v+24|0,13463),r0(q,2,119,k),l[k+11|0]>=0)break w;G(i[k>>2]);break w}t=i[k+20>>2],i[v+24>>2]=t,k=i[k+24>>2],i[v+28>>2]=k,k&&(i[k+4>>2]=i[k+4>>2]+1),t=Ek(t),v1(v+24|0)}if(t-17>>>0<=4294967286){if(k=C1(v+24|0,17390),r0(q,2,130,k),l[k+11|0]>=0)break w;G(i[k>>2]);break w}if(J0(i[A>>2],3,Z,_,t),J0(i[A>>2],4,Z,_,t),J0(i[A>>2],5,Z,_,t),t=Q[v+208>>1],t)for(y=e+20|0,D=Q[v+210>>1],h=0,o=0;;){_:{if(!D){D=0;break _}for(h0=0,_=0;;){v:{t=i[y>>2];Z:{if(!t)break Z;for(Z=i[i[v+172>>2]+(Y0<<2)>>2],k=y;w=Z>>>0>k0[t+16>>2],k=w?k:t,t=i[(w<<2)+t>>2],!!t;);if((k|0)==(y|0))break Z;if(Z>>>0>=k0[k+16>>2])break v}if(o=U(40),i[v+24>>2]=o,i[v+28>>2]=33,i[v+32>>2]=-2147483608,t=s[13467]|s[13468]<<8|(s[13469]<<16|s[13470]<<24),k=s[13463]|s[13464]<<8|(s[13465]<<16|s[13466]<<24),l[o|0]=k,l[o+1|0]=k>>>8,l[o+2|0]=k>>>16,l[o+3|0]=k>>>24,l[o+4|0]=t,l[o+5|0]=t>>>8,l[o+6|0]=t>>>16,l[o+7|0]=t>>>24,l[o+33|0]=0,l[o+32|0]=s[13495],t=s[13491]|s[13492]<<8|(s[13493]<<16|s[13494]<<24),k=s[13487]|s[13488]<<8|(s[13489]<<16|s[13490]<<24),l[o+24|0]=k,l[o+25|0]=k>>>8,l[o+26|0]=k>>>16,l[o+27|0]=k>>>24,l[o+28|0]=t,l[o+29|0]=t>>>8,l[o+30|0]=t>>>16,l[o+31|0]=t>>>24,t=s[13483]|s[13484]<<8|(s[13485]<<16|s[13486]<<24),k=s[13479]|s[13480]<<8|(s[13481]<<16|s[13482]<<24),l[o+16|0]=k,l[o+17|0]=k>>>8,l[o+18|0]=k>>>16,l[o+19|0]=k>>>24,l[o+20|0]=t,l[o+21|0]=t>>>8,l[o+22|0]=t>>>16,l[o+23|0]=t>>>24,t=s[13475]|s[13476]<<8|(s[13477]<<16|s[13478]<<24),k=s[13471]|s[13472]<<8|(s[13473]<<16|s[13474]<<24),l[o+8|0]=k,l[o+9|0]=k>>>8,l[o+10|0]=k>>>16,l[o+11|0]=k>>>24,l[o+12|0]=t,l[o+13|0]=t>>>8,l[o+14|0]=t>>>16,l[o+15|0]=t>>>24,r0(q,2,119,v+24|0),l[v+35|0]>=0)break w;G(i[v+24>>2]);break w}t=i[k+20>>2],d=i[k+24>>2],d&&(i[d+4>>2]=i[d+4>>2]+1),p=i[t+24>>2],t=i[t+28>>2],l6(v+24|0,e,p,t),w=i[v+28>>2],k=i[v+24>>2],i[v+184>>2]=k,i[v+188>>2]=w,l[v+203|0]<0&&(G(i[v+192>>2]),k=i[v+184>>2]),w=i[v+36>>2],i[v+192>>2]=i[v+32>>2],i[v+196>>2]=w,i[v+200>>2]=i[v+40>>2];v:{Z:{if(k)break Z;m:{if(p>>>0>=k0[v+212>>2]/(D>>>0)>>>0&&t>>>0>=k0[v+216>>2]/Q[v+208>>1]>>>0)break m;w=U(40),i[v+24>>2]=w,i[v+28>>2]=35,i[v+32>>2]=-2147483608,t=s[11055]|s[11056]<<8|(s[11057]<<16|s[11058]<<24),k=s[11051]|s[11052]<<8|(s[11053]<<16|s[11054]<<24),l[w|0]=k,l[w+1|0]=k>>>8,l[w+2|0]=k>>>16,l[w+3|0]=k>>>24,l[w+4|0]=t,l[w+5|0]=t>>>8,l[w+6|0]=t>>>16,l[w+7|0]=t>>>24,l[w+35|0]=0,k=s[11082]|s[11083]<<8|(s[11084]<<16|s[11085]<<24),l[w+31|0]=k,l[w+32|0]=k>>>8,l[w+33|0]=k>>>16,l[w+34|0]=k>>>24,t=s[11079]|s[11080]<<8|(s[11081]<<16|s[11082]<<24),k=s[11075]|s[11076]<<8|(s[11077]<<16|s[11078]<<24),l[w+24|0]=k,l[w+25|0]=k>>>8,l[w+26|0]=k>>>16,l[w+27|0]=k>>>24,l[w+28|0]=t,l[w+29|0]=t>>>8,l[w+30|0]=t>>>16,l[w+31|0]=t>>>24,t=s[11071]|s[11072]<<8|(s[11073]<<16|s[11074]<<24),k=s[11067]|s[11068]<<8|(s[11069]<<16|s[11070]<<24),l[w+16|0]=k,l[w+17|0]=k>>>8,l[w+18|0]=k>>>16,l[w+19|0]=k>>>24,l[w+20|0]=t,l[w+21|0]=t>>>8,l[w+22|0]=t>>>16,l[w+23|0]=t>>>24,t=s[11063]|s[11064]<<8|(s[11065]<<16|s[11066]<<24),k=s[11059]|s[11060]<<8|(s[11061]<<16|s[11062]<<24),l[w+8|0]=k,l[w+9|0]=k>>>8,l[w+10|0]=k>>>16,l[w+11|0]=k>>>24,l[w+12|0]=t,l[w+13|0]=t>>>8,l[w+14|0]=t>>>16,l[w+15|0]=t>>>24,r0(q,2,118,v+24|0),l[v+35|0]<0&&G(i[v+24>>2]),k=0;break v}m:{if(!(H|h0)){o=p,h=t;break m}if((o|0)==(p|0)&(t|0)==(h|0))break m;w=U(32),i[v+24>>2]=w,i[v+28>>2]=31,i[v+32>>2]=-2147483616,t=s[4092]|s[4093]<<8|(s[4094]<<16|s[4095]<<24),k=s[4088]|s[4089]<<8|(s[4090]<<16|s[4091]<<24),l[w|0]=k,l[w+1|0]=k>>>8,l[w+2|0]=k>>>16,l[w+3|0]=k>>>24,l[w+4|0]=t,l[w+5|0]=t>>>8,l[w+6|0]=t>>>16,l[w+7|0]=t>>>24,l[w+31|0]=0,t=s[4115]|s[4116]<<8|(s[4117]<<16|s[4118]<<24),k=s[4111]|s[4112]<<8|(s[4113]<<16|s[4114]<<24),l[w+23|0]=k,l[w+24|0]=k>>>8,l[w+25|0]=k>>>16,l[w+26|0]=k>>>24,l[w+27|0]=t,l[w+28|0]=t>>>8,l[w+29|0]=t>>>16,l[w+30|0]=t>>>24,t=s[4108]|s[4109]<<8|(s[4110]<<16|s[4111]<<24),k=s[4104]|s[4105]<<8|(s[4106]<<16|s[4107]<<24),l[w+16|0]=k,l[w+17|0]=k>>>8,l[w+18|0]=k>>>16,l[w+19|0]=k>>>24,l[w+20|0]=t,l[w+21|0]=t>>>8,l[w+22|0]=t>>>16,l[w+23|0]=t>>>24,t=s[4100]|s[4101]<<8|(s[4102]<<16|s[4103]<<24),k=s[4096]|s[4097]<<8|(s[4098]<<16|s[4099]<<24),l[w+8|0]=k,l[w+9|0]=k>>>8,l[w+10|0]=k>>>16,l[w+11|0]=k>>>24,l[w+12|0]=t,l[w+13|0]=t>>>8,l[w+14|0]=t>>>16,l[w+15|0]=t>>>24,r0(q,2,118,v+24|0),l[v+35|0]<0&&G(i[v+24>>2]),k=0;break v}j=v+24|0,I=B+-64|0,B=I,i[I+56>>2]=0,i[I+60>>2]=0,f6(I+32|0,e,Z,I+56|0,i[i[A>>2]+32>>2],n,0);m:{if(i[I+32>>2]!=i[19564]){k=i[I+36>>2],i[j>>2]=i[I+32>>2],i[j+4>>2]=k,i[j+16>>2]=i[I+48>>2],k=i[I+44>>2],i[j+8>>2]=i[I+40>>2],i[j+12>>2]=k,i[I+48>>2]=0,i[I+40>>2]=0,i[I+44>>2]=0;break m}if(k=i[A>>2],t=i[I+56>>2],i[k+36>>2]!=i[t+36>>2]){if(w=U(64),i[I+20>>2]=w,i[I+24>>2]=58,i[I+28>>2]=-2147483584,t=s[11188]|s[11189]<<8|(s[11190]<<16|s[11191]<<24),k=s[11184]|s[11185]<<8|(s[11186]<<16|s[11187]<<24),l[w|0]=k,l[w+1|0]=k>>>8,l[w+2|0]=k>>>16,l[w+3|0]=k>>>24,l[w+4|0]=t,l[w+5|0]=t>>>8,l[w+6|0]=t>>>16,l[w+7|0]=t>>>24,l[w+58|0]=0,k=s[11240]|s[11241]<<8,l[w+56|0]=k,l[w+57|0]=k>>>8,t=s[11236]|s[11237]<<8|(s[11238]<<16|s[11239]<<24),k=s[11232]|s[11233]<<8|(s[11234]<<16|s[11235]<<24),l[w+48|0]=k,l[w+49|0]=k>>>8,l[w+50|0]=k>>>16,l[w+51|0]=k>>>24,l[w+52|0]=t,l[w+53|0]=t>>>8,l[w+54|0]=t>>>16,l[w+55|0]=t>>>24,t=s[11228]|s[11229]<<8|(s[11230]<<16|s[11231]<<24),k=s[11224]|s[11225]<<8|(s[11226]<<16|s[11227]<<24),l[w+40|0]=k,l[w+41|0]=k>>>8,l[w+42|0]=k>>>16,l[w+43|0]=k>>>24,l[w+44|0]=t,l[w+45|0]=t>>>8,l[w+46|0]=t>>>16,l[w+47|0]=t>>>24,t=s[11220]|s[11221]<<8|(s[11222]<<16|s[11223]<<24),k=s[11216]|s[11217]<<8|(s[11218]<<16|s[11219]<<24),l[w+32|0]=k,l[w+33|0]=k>>>8,l[w+34|0]=k>>>16,l[w+35|0]=k>>>24,l[w+36|0]=t,l[w+37|0]=t>>>8,l[w+38|0]=t>>>16,l[w+39|0]=t>>>24,t=s[11212]|s[11213]<<8|(s[11214]<<16|s[11215]<<24),k=s[11208]|s[11209]<<8|(s[11210]<<16|s[11211]<<24),l[w+24|0]=k,l[w+25|0]=k>>>8,l[w+26|0]=k>>>16,l[w+27|0]=k>>>24,l[w+28|0]=t,l[w+29|0]=t>>>8,l[w+30|0]=t>>>16,l[w+31|0]=t>>>24,t=s[11204]|s[11205]<<8|(s[11206]<<16|s[11207]<<24),k=s[11200]|s[11201]<<8|(s[11202]<<16|s[11203]<<24),l[w+16|0]=k,l[w+17|0]=k>>>8,l[w+18|0]=k>>>16,l[w+19|0]=k>>>24,l[w+20|0]=t,l[w+21|0]=t>>>8,l[w+22|0]=t>>>16,l[w+23|0]=t>>>24,t=s[11196]|s[11197]<<8|(s[11198]<<16|s[11199]<<24),k=s[11192]|s[11193]<<8|(s[11194]<<16|s[11195]<<24),l[w+8|0]=k,l[w+9|0]=k>>>8,l[w+10|0]=k>>>16,l[w+11|0]=k>>>24,l[w+12|0]=t,l[w+13|0]=t>>>8,l[w+14|0]=t>>>16,l[w+15|0]=t>>>24,r0(j,2,127,I+20|0),l[I+31|0]>=0)break m;G(i[I+20>>2]);break m}J=i[t+28>>2],S=i[t+24>>2],A0=i[k+28>>2],f0=i[k+24>>2];B:{if(!V9(t)||V9(i[A>>2]))break B;t=U0(i[I+56>>2],6),a=(-1<>2],J0(X0,6,f0,A0,t),w=X0- -64|0,E=1;p:{W:switch(i[X0+36>>2]){case 10:case 12:case 14:Z=3;break p;case 11:case 13:case 15:Z=4;break p;default:E=0;break;case 0:case 1:case 2:case 3:case 99:break W}Z=E}E=i[X0+64>>2];p:{W:{G:{if((t|0)<=8){if(!E)break G;for(k=w;t=i[E+16>>2]<6,k=t?k:E,E=i[(t<<2)+E>>2],!!E;);if((k|0)==(w|0))break G;if(w=0,t=0,i[k+16>>2]>6)break W;w=i[k+48>>2],t=i[k+40>>2];break W}C:{y:{if(!E)break y;for(t=w;k=i[E+16>>2]<6,t=k?t:E,E=i[(k<<2)+E>>2],!!E;);if((t|0)==(w|0))break y;if(w=0,k=0,i[t+16>>2]>6)break C;w=i[t+48>>2]/2|0,k=i[t+40>>2];break C}w=0,k=0}if((A0|0)<=0||(t=m(Z,f0),(t|0)<=0))break p;for(X0=t&2147483640,Q0=t&7,F0=0,Z=t>>>0<8;;){if(I0=(m(w,F0)<<1)+k|0,t=0,E=0,!Z)for(;z=I0+(t<<1)|0,X[z>>1]=a,X[z+2>>1]=a,X[z+4>>1]=a,X[z+6>>1]=a,X[z+8>>1]=a,X[z+10>>1]=a,X[z+12>>1]=a,X[z+14>>1]=a,t=t+8|0,E=E+8|0,(X0|0)!=(E|0););if(E=0,Q0)for(;X[I0+(t<<1)>>1]=a,t=t+1|0,E=E+1|0,(Q0|0)!=(E|0););if(F0=F0+1|0,(A0|0)==(F0|0))break}break p}w=0,t=0}if((A0|0)<=0)break p;if(X0=m(Z,f0),k=0,E=0,A0>>>0>=4)for(Z=A0&2147483644,F0=0;B0(m(w,E)+t|0,a,X0),B0(m(w,E|1)+t|0,a,X0),B0(m(w,E|2)+t|0,a,X0),B0(m(w,E|3)+t|0,a,X0),E=E+4|0,F0=F0+4|0,(Z|0)!=(F0|0););if(Z=A0&3,!Z)break p;for(;B0(m(w,E)+t|0,a,X0),E=E+1|0,k=k+1|0,(Z|0)!=(k|0););}}l7(I+20|0,i[I+56>>2]);B:{p:{if(w=i[I+20>>2],z=I+24|0,(w|0)!=(z|0)){if(C>>>0>=A0>>>0|_>>>0>=f0>>>0)break p;for(k=f0-_|0,Q0=k>>>0>>0?k:S,k=A0-C|0,f0=k>>>0>>0?k:J,I0=f0&2147483646,X0=f0&1,E=(f0|0)>0;;){k=i[w+16>>2],J=v0(i[I+56>>2],k,I+16|0),Z=v0(i[A>>2],k,I+12|0);W:{G:{if((U0(i[A>>2],k)|0)==(U0(i[I+56>>2],k)|0)){if(t=r3(i[I+56>>2],3),k=r3(i[I+56>>2],3),!E)break W;if(S=m(Q0,t>>>3|0),Z=Z+m(k>>>3|0,_)|0,k=0,F0=0,(f0|0)==1)break G;for(;l0(Z+m(i[I+12>>2],k+C|0)|0,J+m(i[I+16>>2],k)|0,S),t=k|1,l0(Z+m(i[I+12>>2],t+C|0)|0,J+m(t,i[I+16>>2])|0,S),k=k+2|0,F0=F0+2|0,(I0|0)!=(F0|0););break G}if(l[I|0]=0,l[I+11|0]=0,r0(j,2,132,I),l[I+11|0]>=0)break B;G(i[I>>2]);break B}if(!X0)break W;l0(Z+m(i[I+12>>2],k+C|0)|0,J+m(i[I+16>>2],k)|0,S)}t=i[w+4>>2];W:{if(t){for(;;)if(k=t,t=i[k>>2],!t)break W}for(;k=i[w+8>>2],t=i[k>>2]!=(w|0),w=k,!!t;);}if(w=k,(k|0)==(z|0))break}}if(k=i[19565],i[j>>2]=i[19564],i[j+4>>2]=k,t=j+8|0,l[78275]>=0){k=i[19567],i[t>>2]=i[19566],i[t+4>>2]=k,i[t+8>>2]=i[19568];break B}_0(t,i[19566],i[19567]);break B}if(k=i[w+16>>2],v0(i[I+56>>2],k,I+16|0),v0(i[A>>2],k,I+12|0),l[I|0]=0,l[I+11|0]=0,r0(j,2,118,I),l[I+11|0]>=0)break B;G(i[I>>2])}j6(I+20|0,i[I+24>>2])}l[I+51|0]<0&&G(i[I+40>>2]),t=i[I+60>>2];m:{if(!t||(k=i[t+4>>2],i[t+4>>2]=k-1,k))break m;V[i[i[t>>2]+8>>2]](t),g(t)}if(B=I- -64|0,t=i[v+28>>2],k=i[v+24>>2],i[v+184>>2]=k,i[v+188>>2]=t,l[v+203|0]<0&&(G(i[v+192>>2]),k=i[v+184>>2]),t=i[v+36>>2],i[v+192>>2]=i[v+32>>2],i[v+196>>2]=t,i[v+200>>2]=i[v+40>>2],k)break Z;Y0=Y0+1|0,_=_+p|0,k=1;break v}k=i[v+188>>2],i[q>>2]=i[v+184>>2],i[q+4>>2]=k,i[q+16>>2]=i[v+200>>2],k=i[v+196>>2],i[q+8>>2]=i[v+192>>2],i[q+12>>2]=k,i[v+192>>2]=0,i[v+196>>2]=0,i[v+200>>2]=0,k=0}v:{if(!d||(t=i[d+4>>2],i[d+4>>2]=t-1,t))break v;V[i[i[d>>2]+8>>2]](d),g(d)}if(!k)break w;if(D=Q[v+210>>1],h0=h0+1|0,!(D>>>0>h0>>>0))break}t=Q[v+208>>1]}if(C=h+C|0,H=H+1|0,!(H>>>0<(t&65535)>>>0))break}V3(q)}w:{if(!p0||(k=i[p0+4>>2],i[p0+4>>2]=k-1,k))break w;V[i[i[p0>>2]+8>>2]](p0),g(p0)}t=i[v+8>>2];w:{if(!t||(k=i[t+4>>2],i[t+4>>2]=k-1,k))break w;V[i[i[t>>2]+8>>2]](t),g(t)}w:{if(!R||(k=i[R+4>>2],i[R+4>>2]=k-1,k))break w;V[i[i[R>>2]+8>>2]](R),g(R)}if(t=i[v+16>>2],!t||(k=i[t+4>>2],i[t+4>>2]=k-1,k))break l;V[i[i[t>>2]+8>>2]](t),g(t);break l}i[v+32>>2]=54496,i[v+88>>2]=54516,k=i[13633],i[v+24>>2]=k,h=v+24|0,i[h+i[k-12>>2]>>2]=i[13634],i[v+28>>2]=0,k=h+i[i[v+24>>2]-12>>2]|0,o=v+36|0,b0(k,o),i[k+72>>2]=0,i[k+76>>2]=-1,k=i[13635],i[v+32>>2]=k,t=v+32|0,i[t+i[k-12>>2]>>2]=i[13636],k=i[13632],i[v+24>>2]=k,i[h+i[k-12>>2]>>2]=i[13637],i[v+88>>2]=54516,i[v+24>>2]=54476,i[v+32>>2]=54496,o=$0(o),i[o>>2]=53552,i[v+76>>2]=0,i[v+80>>2]=0,i[v+68>>2]=0,i[v+72>>2]=0,i[v+84>>2]=24,x(L0(x(H0(x(L0(x(L0(x(t,18988,17),_),2490,1),Z),16374,1),w),18716,17),i[v+176>>2]-i[v+172>>2]>>2),10094,20),k=v+12|0,i2(k,o),r0(q,2,119,k),l[v+23|0]<0&&G(i[v+12>>2]),k=i[13631],i[v+24>>2]=k,i[i[k-12>>2]+(v+24|0)>>2]=i[13639],i[v+32>>2]=i[13640],i[o>>2]=53552,l[v+79|0]<0&&G(i[v+68>>2]),K0(o),T0(v+88|0);break l}_=i[h>>2]}i[v+32>>2]=54496,i[v+88>>2]=54516,k=i[13633],i[v+24>>2]=k,h=v+24|0,i[h+i[k-12>>2]>>2]=i[13634],i[v+28>>2]=0,k=h+i[i[v+24>>2]-12>>2]|0,o=v+36|0,b0(k,o),i[k+72>>2]=0,i[k+76>>2]=-1,k=i[13635],i[v+32>>2]=k,t=v+32|0,i[t+i[k-12>>2]>>2]=i[13636],k=i[13632],i[v+24>>2]=k,i[h+i[k-12>>2]>>2]=i[13637],i[v+88>>2]=54516,i[v+24>>2]=54476,i[v+32>>2]=54496,o=$0(o),i[o>>2]=53552,i[v+76>>2]=0,i[v+80>>2]=0,i[v+68>>2]=0,i[v+72>>2]=0,i[v+84>>2]=24,x(L0(x(t,16361,14),_),17905,23),k=v+12|0,i2(k,o),r0(q,2,119,k),l[v+23|0]<0&&G(i[v+12>>2]),k=i[13631],i[v+24>>2]=k,i[i[k-12>>2]+(v+24|0)>>2]=i[13639],i[v+32>>2]=i[13640],i[o>>2]=53552,l[v+79|0]<0&&G(i[v+68>>2]),K0(o),T0(v+88|0)}if(k=i[v+172>>2],!k)break u;i[v+176>>2]=k,G(k)}if(!L||(k=i[L+4>>2],i[L+4>>2]=k-1,k))break o;V[i[i[L>>2]+8>>2]](L),g(L)}if(l[v+203|0]<0&&G(i[v+192>>2]),B=v+224|0,t=i[u+68>>2],k=i[u+64>>2],i[u+96>>2]=k,i[u+100>>2]=t,l[u+115|0]<0&&(G(i[u+104>>2]),k=i[u+96>>2]),t=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=t,i[u+112>>2]=i[u+80>>2],k)break n;if(k=i[u>>2],!k)break e;i[u+4>>2]=k,G(k);break e}if((s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))==1852138601){w=B-32|0,B=w,k=i[e+48>>2],t=i[k+76>>2],h=i[k+80>>2],h&&(i[h+4>>2]=i[h+4>>2]+1),o=u- -64|0;o:{if(!t){if(_=U(56),i[w+20>>2]=_,i[w+24>>2]=48,i[w+28>>2]=-2147483592,t=s[10630]|s[10631]<<8|(s[10632]<<16|s[10633]<<24),k=s[10626]|s[10627]<<8|(s[10628]<<16|s[10629]<<24),l[_|0]=k,l[_+1|0]=k>>>8,l[_+2|0]=k>>>16,l[_+3|0]=k>>>24,l[_+4|0]=t,l[_+5|0]=t>>>8,l[_+6|0]=t>>>16,l[_+7|0]=t>>>24,l[_+48|0]=0,t=s[10670]|s[10671]<<8|(s[10672]<<16|s[10673]<<24),k=s[10666]|s[10667]<<8|(s[10668]<<16|s[10669]<<24),l[_+40|0]=k,l[_+41|0]=k>>>8,l[_+42|0]=k>>>16,l[_+43|0]=k>>>24,l[_+44|0]=t,l[_+45|0]=t>>>8,l[_+46|0]=t>>>16,l[_+47|0]=t>>>24,t=s[10662]|s[10663]<<8|(s[10664]<<16|s[10665]<<24),k=s[10658]|s[10659]<<8|(s[10660]<<16|s[10661]<<24),l[_+32|0]=k,l[_+33|0]=k>>>8,l[_+34|0]=k>>>16,l[_+35|0]=k>>>24,l[_+36|0]=t,l[_+37|0]=t>>>8,l[_+38|0]=t>>>16,l[_+39|0]=t>>>24,t=s[10654]|s[10655]<<8|(s[10656]<<16|s[10657]<<24),k=s[10650]|s[10651]<<8|(s[10652]<<16|s[10653]<<24),l[_+24|0]=k,l[_+25|0]=k>>>8,l[_+26|0]=k>>>16,l[_+27|0]=k>>>24,l[_+28|0]=t,l[_+29|0]=t>>>8,l[_+30|0]=t>>>16,l[_+31|0]=t>>>24,t=s[10646]|s[10647]<<8|(s[10648]<<16|s[10649]<<24),k=s[10642]|s[10643]<<8|(s[10644]<<16|s[10645]<<24),l[_+16|0]=k,l[_+17|0]=k>>>8,l[_+18|0]=k>>>16,l[_+19|0]=k>>>24,l[_+20|0]=t,l[_+21|0]=t>>>8,l[_+22|0]=t>>>16,l[_+23|0]=t>>>24,t=s[10638]|s[10639]<<8|(s[10640]<<16|s[10641]<<24),k=s[10634]|s[10635]<<8|(s[10636]<<16|s[10637]<<24),l[_+8|0]=k,l[_+9|0]=k>>>8,l[_+10|0]=k>>>16,l[_+11|0]=k>>>24,l[_+12|0]=t,l[_+13|0]=t>>>8,l[_+14|0]=t>>>16,l[_+15|0]=t>>>24,r0(o,2,113,w+20|0),l[w+31|0]>=0)break o;G(i[w+20>>2]);break o}oi(w+20|0,t,r),k=i[w+20>>2];u:{if((i[w+24>>2]-k|0)!=4){if(_=U(48),i[w+8>>2]=_,i[w+12>>2]=47,i[w+16>>2]=-2147483600,t=s[11091]|s[11092]<<8|(s[11093]<<16|s[11094]<<24),k=s[11087]|s[11088]<<8|(s[11089]<<16|s[11090]<<24),l[_|0]=k,l[_+1|0]=k>>>8,l[_+2|0]=k>>>16,l[_+3|0]=k>>>24,l[_+4|0]=t,l[_+5|0]=t>>>8,l[_+6|0]=t>>>16,l[_+7|0]=t>>>24,l[_+47|0]=0,t=s[11130]|s[11131]<<8|(s[11132]<<16|s[11133]<<24),k=s[11126]|s[11127]<<8|(s[11128]<<16|s[11129]<<24),l[_+39|0]=k,l[_+40|0]=k>>>8,l[_+41|0]=k>>>16,l[_+42|0]=k>>>24,l[_+43|0]=t,l[_+44|0]=t>>>8,l[_+45|0]=t>>>16,l[_+46|0]=t>>>24,t=s[11123]|s[11124]<<8|(s[11125]<<16|s[11126]<<24),k=s[11119]|s[11120]<<8|(s[11121]<<16|s[11122]<<24),l[_+32|0]=k,l[_+33|0]=k>>>8,l[_+34|0]=k>>>16,l[_+35|0]=k>>>24,l[_+36|0]=t,l[_+37|0]=t>>>8,l[_+38|0]=t>>>16,l[_+39|0]=t>>>24,t=s[11115]|s[11116]<<8|(s[11117]<<16|s[11118]<<24),k=s[11111]|s[11112]<<8|(s[11113]<<16|s[11114]<<24),l[_+24|0]=k,l[_+25|0]=k>>>8,l[_+26|0]=k>>>16,l[_+27|0]=k>>>24,l[_+28|0]=t,l[_+29|0]=t>>>8,l[_+30|0]=t>>>16,l[_+31|0]=t>>>24,t=s[11107]|s[11108]<<8|(s[11109]<<16|s[11110]<<24),k=s[11103]|s[11104]<<8|(s[11105]<<16|s[11106]<<24),l[_+16|0]=k,l[_+17|0]=k>>>8,l[_+18|0]=k>>>16,l[_+19|0]=k>>>24,l[_+20|0]=t,l[_+21|0]=t>>>8,l[_+22|0]=t>>>16,l[_+23|0]=t>>>24,t=s[11099]|s[11100]<<8|(s[11101]<<16|s[11102]<<24),k=s[11095]|s[11096]<<8|(s[11097]<<16|s[11098]<<24),l[_+8|0]=k,l[_+9|0]=k>>>8,l[_+10|0]=k>>>16,l[_+11|0]=k>>>24,l[_+12|0]=t,l[_+13|0]=t>>>8,l[_+14|0]=t>>>16,l[_+15|0]=t>>>24,r0(o,2,0,w+8|0),l[w+19|0]>=0)break u;G(i[w+8>>2]);break u}if(k=i[k>>2],(k|0)==(r|0)){if(_=U(40),i[w+8>>2]=_,i[w+12>>2]=32,i[w+16>>2]=-2147483608,t=s[8751]|s[8752]<<8|(s[8753]<<16|s[8754]<<24),k=s[8747]|s[8748]<<8|(s[8749]<<16|s[8750]<<24),l[_|0]=k,l[_+1|0]=k>>>8,l[_+2|0]=k>>>16,l[_+3|0]=k>>>24,l[_+4|0]=t,l[_+5|0]=t>>>8,l[_+6|0]=t>>>16,l[_+7|0]=t>>>24,l[_+32|0]=0,t=s[8775]|s[8776]<<8|(s[8777]<<16|s[8778]<<24),k=s[8771]|s[8772]<<8|(s[8773]<<16|s[8774]<<24),l[_+24|0]=k,l[_+25|0]=k>>>8,l[_+26|0]=k>>>16,l[_+27|0]=k>>>24,l[_+28|0]=t,l[_+29|0]=t>>>8,l[_+30|0]=t>>>16,l[_+31|0]=t>>>24,t=s[8767]|s[8768]<<8|(s[8769]<<16|s[8770]<<24),k=s[8763]|s[8764]<<8|(s[8765]<<16|s[8766]<<24),l[_+16|0]=k,l[_+17|0]=k>>>8,l[_+18|0]=k>>>16,l[_+19|0]=k>>>24,l[_+20|0]=t,l[_+21|0]=t>>>8,l[_+22|0]=t>>>16,l[_+23|0]=t>>>24,t=s[8759]|s[8760]<<8|(s[8761]<<16|s[8762]<<24),k=s[8755]|s[8756]<<8|(s[8757]<<16|s[8758]<<24),l[_+8|0]=k,l[_+9|0]=k>>>8,l[_+10|0]=k>>>16,l[_+11|0]=k>>>24,l[_+12|0]=t,l[_+13|0]=t>>>8,l[_+14|0]=t>>>16,l[_+15|0]=t>>>24,r0(o,2,0,w+8|0),l[w+19|0]>=0)break u;G(i[w+8>>2]);break u}f6(o,e,k,A,1,n,0)}if(k=i[w+20>>2],!k)break o;i[w+24>>2]=k,G(k)}o:{if(!h||(k=i[h+4>>2],i[h+4>>2]=k-1,k))break o;V[i[i[h>>2]+8>>2]](h),g(h)}if(B=w+32|0,t=i[u+68>>2],k=i[u+64>>2],i[u+96>>2]=k,i[u+100>>2]=t,l[u+115|0]<0&&(G(i[u+104>>2]),k=i[u+96>>2]),t=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=t,i[u+112>>2]=i[u+80>>2],!k)break e;e=i[u+100>>2],i[f>>2]=i[u+96>>2],i[f+4>>2]=e,i[f+16>>2]=i[u+112>>2],e=i[u+108>>2],i[f+8>>2]=i[u+104>>2],i[f+12>>2]=e,i[u+104>>2]=0,i[u+108>>2]=0,i[u+112>>2]=0;break r}if((s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))==1819701097){if(i[u+8>>2]=0,i[u>>2]=0,i[u+4>>2]=0,w8(u- -64|0,i[e+48>>2],r,u),t=i[u+68>>2],k=i[u+64>>2],i[u+96>>2]=k,i[u+100>>2]=t,l[u+115|0]<0&&(G(i[u+104>>2]),k=i[u+96>>2]),t=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=t,i[u+112>>2]=i[u+80>>2],k)break k;W=B-112|0,B=W,k=i[e+48>>2],t=i[k+76>>2],a=i[k+80>>2],a&&(i[a+4>>2]=i[a+4>>2]+1),I=u- -64|0;o:{if(!t){if(o=U(56),i[W+68>>2]=o,i[W+72>>2]=48,i[W+76>>2]=-2147483592,t=s[10723]|s[10724]<<8|(s[10725]<<16|s[10726]<<24),k=s[10719]|s[10720]<<8|(s[10721]<<16|s[10722]<<24),l[o|0]=k,l[o+1|0]=k>>>8,l[o+2|0]=k>>>16,l[o+3|0]=k>>>24,l[o+4|0]=t,l[o+5|0]=t>>>8,l[o+6|0]=t>>>16,l[o+7|0]=t>>>24,l[o+48|0]=0,t=s[10763]|s[10764]<<8|(s[10765]<<16|s[10766]<<24),k=s[10759]|s[10760]<<8|(s[10761]<<16|s[10762]<<24),l[o+40|0]=k,l[o+41|0]=k>>>8,l[o+42|0]=k>>>16,l[o+43|0]=k>>>24,l[o+44|0]=t,l[o+45|0]=t>>>8,l[o+46|0]=t>>>16,l[o+47|0]=t>>>24,t=s[10755]|s[10756]<<8|(s[10757]<<16|s[10758]<<24),k=s[10751]|s[10752]<<8|(s[10753]<<16|s[10754]<<24),l[o+32|0]=k,l[o+33|0]=k>>>8,l[o+34|0]=k>>>16,l[o+35|0]=k>>>24,l[o+36|0]=t,l[o+37|0]=t>>>8,l[o+38|0]=t>>>16,l[o+39|0]=t>>>24,t=s[10747]|s[10748]<<8|(s[10749]<<16|s[10750]<<24),k=s[10743]|s[10744]<<8|(s[10745]<<16|s[10746]<<24),l[o+24|0]=k,l[o+25|0]=k>>>8,l[o+26|0]=k>>>16,l[o+27|0]=k>>>24,l[o+28|0]=t,l[o+29|0]=t>>>8,l[o+30|0]=t>>>16,l[o+31|0]=t>>>24,t=s[10739]|s[10740]<<8|(s[10741]<<16|s[10742]<<24),k=s[10735]|s[10736]<<8|(s[10737]<<16|s[10738]<<24),l[o+16|0]=k,l[o+17|0]=k>>>8,l[o+18|0]=k>>>16,l[o+19|0]=k>>>24,l[o+20|0]=t,l[o+21|0]=t>>>8,l[o+22|0]=t>>>16,l[o+23|0]=t>>>24,t=s[10731]|s[10732]<<8|(s[10733]<<16|s[10734]<<24),k=s[10727]|s[10728]<<8|(s[10729]<<16|s[10730]<<24),l[o+8|0]=k,l[o+9|0]=k>>>8,l[o+10|0]=k>>>16,l[o+11|0]=k>>>24,l[o+12|0]=t,l[o+13|0]=t>>>8,l[o+14|0]=t>>>16,l[o+15|0]=t>>>24,r0(I,2,113,W+68|0),l[W+79|0]>=0)break o;G(i[W+68>>2]);break o}oi(W+100|0,t,r),i[W+96>>2]=0,i[W+88>>2]=0,i[W+92>>2]=0,w=W+68|0,H=i[W+104>>2]-i[W+100>>2]>>2,_=0,R=B-192|0,B=R,o=U(32),i[R+24>>2]=o,i[R+28>>2]=29,i[R+32>>2]=-2147483616,t=s[9309]|s[9310]<<8|(s[9311]<<16|s[9312]<<24),k=s[9305]|s[9306]<<8|(s[9307]<<16|s[9308]<<24),l[o+21|0]=k,l[o+22|0]=k>>>8,l[o+23|0]=k>>>16,l[o+24|0]=k>>>24,l[o+25|0]=t,l[o+26|0]=t>>>8,l[o+27|0]=t>>>16,l[o+28|0]=t>>>24,t=s[9304]|s[9305]<<8|(s[9306]<<16|s[9307]<<24),k=s[9300]|s[9301]<<8|(s[9302]<<16|s[9303]<<24),l[o+16|0]=k,l[o+17|0]=k>>>8,l[o+18|0]=k>>>16,l[o+19|0]=k>>>24,l[o+20|0]=t,l[o+21|0]=t>>>8,l[o+22|0]=t>>>16,l[o+23|0]=t>>>24,t=s[9296]|s[9297]<<8|(s[9298]<<16|s[9299]<<24),k=s[9292]|s[9293]<<8|(s[9294]<<16|s[9295]<<24),l[o+8|0]=k,l[o+9|0]=k>>>8,l[o+10|0]=k>>>16,l[o+11|0]=k>>>24,l[o+12|0]=t,l[o+13|0]=t>>>8,l[o+14|0]=t>>>16,l[o+15|0]=t>>>24,t=s[9288]|s[9289]<<8|(s[9290]<<16|s[9291]<<24),k=s[9284]|s[9285]<<8|(s[9286]<<16|s[9287]<<24),l[o|0]=k,l[o+1|0]=k>>>8,l[o+2|0]=k>>>16,l[o+3|0]=k>>>24,l[o+4|0]=t,l[o+5|0]=t>>>8,l[o+6|0]=t>>>16,l[o+7|0]=t>>>24,l[o+29|0]=0,o=r0(R+168|0,2,121,R+24|0),l[R+35|0]<0&&G(i[R+24>>2]),d=W+48|0,t=i[u>>2],h=i[u+4>>2]-t|0;u:{if(h>>>0<=9){k=i[o+4>>2],i[d>>2]=i[o>>2],i[d+4>>2]=k,i[d+16>>2]=i[o+16>>2],k=i[o+12>>2],i[d+8>>2]=i[o+8>>2],i[d+12>>2]=k,i[o+16>>2]=0,i[o+8>>2]=0,i[o+12>>2]=0;break u}if(k=s[t|0],l[w|0]=k,k){i[R+32>>2]=54496,i[R+88>>2]=54516,k=i[13633],i[R+24>>2]=k,_=R+24|0,i[_+i[k-12>>2]>>2]=i[13634],i[R+28>>2]=0,k=_+i[i[R+24>>2]-12>>2]|0,h=R+36|0,b0(k,h),i[k+72>>2]=0,i[k+76>>2]=-1,k=i[13635],i[R+32>>2]=k,t=R+32|0,i[t+i[k-12>>2]>>2]=i[13636],k=i[13632],i[R+24>>2]=k,i[_+i[k-12>>2]>>2]=i[13637],i[R+88>>2]=54516,i[R+24>>2]=54476,i[R+32>>2]=54496,h=$0(h),i[h>>2]=53552,i[R+76>>2]=0,i[R+80>>2]=0,i[R+68>>2]=0,i[R+72>>2]=0,i[R+84>>2]=24,x(H0(x(t,18932,27),s[w|0]),3320,23),k=R+12|0,i2(k,h),r0(d,4,3002,k),l[R+23|0]<0&&G(i[R+12>>2]),k=i[13631],i[R+24>>2]=k,i[i[k-12>>2]+(R+24|0)>>2]=i[13639],i[R+32>>2]=i[13640],i[h>>2]=53552,l[R+79|0]<0&&G(i[R+68>>2]),K0(h),T0(R+88|0);break u}if(t=s[t+1|0],l[w+1|0]=t,k=10,z=t&1,f0=z?4:2,y=f0<<1,t=y+10|0,h>>>0>=t+(H<<1<<(z?2:1))>>>0){if(h=i[u>>2],h=s[h+2|0]|s[h+3|0]<<8,X[w+2>>1]=h<<8|h>>>8,h=i[u>>2],h=s[h+4|0]|s[h+5|0]<<8,X[w+4>>1]=h<<8|h>>>8,h=i[u>>2],h=s[h+6|0]|s[h+7|0]<<8,X[w+6>>1]=h<<8|h>>>8,h=i[u>>2],h=s[h+8|0]|s[h+9|0]<<8,X[w+8>>1]=h<<8|h>>>8,C=i[u>>2],z){for(Z=f0&4;h=k,k=k+4|0,_=_+4|0,(Z|0)!=(_|0););h=h+C|0,_=(s[h|0]<<16|s[h+1|0]<<8|s[h+2|0])<<8|s[h+3|0]}if(h=f0&2,h)for(;_=s[k+C|0]|_<<8,k=k+1|0,S=S+1|0,(h|0)!=(S|0););if(i[w+12>>2]=_,p=f0&2,k=f0+10|0,C=i[u>>2],z){for(Z=f0&4,S=0;h=k,k=k+4|0,S=S+4|0,(Z|0)!=(S|0););h=h+C|0,S=(s[h|0]<<16|s[h+1|0]<<8|s[h+2|0])<<8|s[h+3|0]}else S=0;if(p)for(;S=s[k+C|0]|S<<8,k=k+1|0,J=J+1|0,(p|0)!=(J|0););if(i[w+16>>2]=S,!(S&&_)){if(h=U(48),i[R+24>>2]=h,i[R+28>>2]=40,i[R+32>>2]=-2147483600,t=s[17511]|s[17512]<<8|(s[17513]<<16|s[17514]<<24),k=s[17507]|s[17508]<<8|(s[17509]<<16|s[17510]<<24),l[h|0]=k,l[h+1|0]=k>>>8,l[h+2|0]=k>>>16,l[h+3|0]=k>>>24,l[h+4|0]=t,l[h+5|0]=t>>>8,l[h+6|0]=t>>>16,l[h+7|0]=t>>>24,l[h+40|0]=0,t=s[17543]|s[17544]<<8|(s[17545]<<16|s[17546]<<24),k=s[17539]|s[17540]<<8|(s[17541]<<16|s[17542]<<24),l[h+32|0]=k,l[h+33|0]=k>>>8,l[h+34|0]=k>>>16,l[h+35|0]=k>>>24,l[h+36|0]=t,l[h+37|0]=t>>>8,l[h+38|0]=t>>>16,l[h+39|0]=t>>>24,t=s[17535]|s[17536]<<8|(s[17537]<<16|s[17538]<<24),k=s[17531]|s[17532]<<8|(s[17533]<<16|s[17534]<<24),l[h+24|0]=k,l[h+25|0]=k>>>8,l[h+26|0]=k>>>16,l[h+27|0]=k>>>24,l[h+28|0]=t,l[h+29|0]=t>>>8,l[h+30|0]=t>>>16,l[h+31|0]=t>>>24,t=s[17527]|s[17528]<<8|(s[17529]<<16|s[17530]<<24),k=s[17523]|s[17524]<<8|(s[17525]<<16|s[17526]<<24),l[h+16|0]=k,l[h+17|0]=k>>>8,l[h+18|0]=k>>>16,l[h+19|0]=k>>>24,l[h+20|0]=t,l[h+21|0]=t>>>8,l[h+22|0]=t>>>16,l[h+23|0]=t>>>24,t=s[17519]|s[17520]<<8|(s[17521]<<16|s[17522]<<24),k=s[17515]|s[17516]<<8|(s[17517]<<16|s[17518]<<24),l[h+8|0]=k,l[h+9|0]=k>>>8,l[h+10|0]=k>>>16,l[h+11|0]=k>>>24,l[h+12|0]=t,l[h+13|0]=t>>>8,l[h+14|0]=t>>>16,l[h+15|0]=t>>>24,r0(d,2,121,R+24|0),l[R+35|0]>=0)break u;G(i[R+24>>2]);break u}_=w+20|0,k=i[w+20>>2],h=i[w+24>>2]-k>>3;l:{s:{if(h>>>0>>0){SA(_,H-h|0);break s}if(h>>>0>H>>>0&&(i[w+24>>2]=k+(H<<3)),!H)break l}for(X0=f0&4,Q0=f0&2,I0=128<<(f0<<3)-8,E=I0^-1,C=i[_>>2];;){if(S=i[u>>2],k=t,J=0,_=0,z){for(;h=k,k=k+4|0,J=J+4|0,(X0|0)!=(J|0););h=h+S|0,w=(s[h|0]<<16|s[h+1|0]<<8|s[h+2|0])<<8,_=w|s[h+3|0]}if(J=0,Q0)for(;w=_<<8,_=w|s[k+S|0],k=k+1|0,J=J+1|0,(Q0|0)!=(J|0););if(J=0,Z=C+(F0<<3)|0,i[Z>>2]=(_&E)-(w&I0?I0:0),k=t+f0|0,p=i[u>>2],w=0,_=0,z){for(;h=k,k=k+4|0,w=w+4|0,(X0|0)!=(w|0););h=h+p|0,S=(s[h|0]<<16|s[h+1|0]<<8|s[h+2|0])<<8,_=S|s[h+3|0]}if(Q0)for(;S=_<<8,_=S|s[k+p|0],k=k+1|0,J=J+1|0,(Q0|0)!=(J|0););if(i[Z+4>>2]=(_&E)-(S&I0?I0:0),t=t+y|0,F0=F0+1|0,(H|0)==(F0|0))break}}if(k=i[19565],i[d>>2]=i[19564],i[d+4>>2]=k,t=d+8|0,l[78275]>=0){k=i[19567],i[t>>2]=i[19566],i[t+4>>2]=k,i[t+8>>2]=i[19568];break u}_0(t,i[19566],i[19567]);break u}k=i[o+4>>2],i[d>>2]=i[o>>2],i[d+4>>2]=k,i[d+16>>2]=i[o+16>>2],k=i[o+12>>2],i[d+8>>2]=i[o+8>>2],i[d+12>>2]=k,i[o+16>>2]=0,i[o+8>>2]=0,i[o+12>>2]=0}l[o+19|0]<0&&G(i[o+8>>2]),B=R+192|0;u:{if(i[W+48>>2]){k=i[W+52>>2],i[I>>2]=i[W+48>>2],i[I+4>>2]=k,t=W- -64|0,i[I+16>>2]=i[t>>2],k=i[W+60>>2],i[I+8>>2]=i[W+56>>2],i[I+12>>2]=k,i[t>>2]=0,i[W+56>>2]=0,i[W+60>>2]=0;break u}if(i[W+104>>2]-i[W+100>>2]>>2!=i[W+92>>2]-i[W+88>>2]>>3){if(k=U(72),i[W+24>>2]=k,i[W+28>>2]=69,i[W+32>>2]=-2147483576,c0=l0(k,4597,69),r2=0,l[c0+69|0]=r2,r0(I,2,121,W+24|0),l[W+35|0]>=0)break u;G(i[W+24>>2]);break u}if(_=i[W+80>>2],w=i[W+84>>2],l6(W+24|0,e,_,w),t=i[W+28>>2],k=i[W+24>>2],i[W+48>>2]=k,i[W+52>>2]=t,v=W+56|0,l[W+67|0]<0&&(G(i[W+56>>2]),k=i[W+48>>2]),t=i[W+36>>2],i[v>>2]=i[W+32>>2],i[v+4>>2]=t,i[v+8>>2]=i[W+40>>2],k){k=i[W+52>>2],i[I>>2]=i[W+48>>2],i[I+4>>2]=k,i[I+16>>2]=i[v+8>>2],k=i[v+4>>2],i[I+8>>2]=i[v>>2],i[I+12>>2]=k,i[v>>2]=0,i[v+4>>2]=0,i[v+8>>2]=0;break u}k=U(136),i[k+4>>2]=0,i[k+8>>2]=0,i[k>>2]=72792,B0(k+20|0,0,104),h=i[k+4>>2],o=h+1|0,i[k+4>>2]=o,i[k+56>>2]=0,i[k+60>>2]=0,i[k+44>>2]=99,i[k+48>>2]=99,i[k+32>>2]=34648,t=k- -64|0,i[t>>2]=0,i[t+4>>2]=0,i[k+132>>2]=0,i[k+124>>2]=0,i[k+128>>2]=0,i[k+84>>2]=1,i[k+88>>2]=1,i[k+72>>2]=k+76,i[k+92>>2]=0,i[k+96>>2]=0,i[k+100>>2]=0,i[k+104>>2]=0,i[k+108>>2]=0,i[k+112>>2]=0,l[k+113|0]=0,l[k+114|0]=0,l[k+115|0]=0,l[k+116|0]=0,l[k+117|0]=0,l[k+118|0]=0,l[k+119|0]=0,l[k+120|0]=0,t=k+12|0,i[k+12>>2]=t,i[k+8>>2]=i[k+8>>2]+1,i[k+4>>2]=h,i[k+16>>2]=k,o||(V[i[i[k>>2]+8>>2]](k),g(k)),i[A>>2]=t,t=i[A+4>>2],i[A+4>>2]=k;l:{if(!t||(k=i[t+4>>2],i[t+4>>2]=k-1,k))break l;V[i[i[t>>2]+8>>2]](t),g(t)}k=i[A>>2],i[k+36>>2]=3,i[k+32>>2]=1,i[k+28>>2]=w,i[k+24>>2]=_,J0(i[A>>2],3,_,w,8),J0(i[A>>2],4,_,w,8),J0(i[A>>2],5,_,w,8),y=W+24|0,C=Q[W+70>>1],_=Q[W+72>>1],w=Q[W+74>>1],Z=Q[W+76>>1],p=B-16|0,B=p;l:{s:{if(k=i[A>>2],o=i[k+64>>2],!o)break s;for(t=k- -64|0,k=t;h=i[o+16>>2]<3,k=h?k:o,o=i[(h<<2)+o>>2],!!o;);if((k|0)==(t|0)|i[k+16>>2]>=4)break s;_=_>>>8|0,w=w>>>8|0,Z=Z>>>8|0,h=C>>>8|0;h:{if(s[k+20|0]!=8)break h;if(B0(i[k+40>>2],h,m(i[k+28>>2],i[k+48>>2])),o=i[t>>2],!o)break s;for(k=t;h=i[o+16>>2]<4,k=h?k:o,o=i[(h<<2)+o>>2],!!o;);if((k|0)==(t|0)|i[k+16>>2]>4)break s;if(s[k+20|0]!=8)break h;if(B0(i[k+40>>2],_,m(i[k+28>>2],i[k+48>>2])),o=i[t>>2],!o)break s;for(k=t;h=i[o+16>>2]<5,k=h?k:o,o=i[(h<<2)+o>>2],!!o;);if((k|0)==(t|0)|i[k+16>>2]>5)break s;if(s[k+20|0]!=8)break h;B0(i[k+40>>2],w,m(i[k+28>>2],i[k+48>>2])),o=i[t>>2];w:{if(!o)break w;for(k=t;h=i[o+16>>2]<6,k=h?k:o,o=i[(h<<2)+o>>2],!!o;);if((k|0)==(t|0)|i[k+16>>2]>6)break w;if(s[k+20|0]!=8)break h;if(o=i[k+48>>2],t=i[k+28>>2],h=m(o,t),k=i[k+40>>2],t>>>0>=4294967295/(o>>>0)>>>0){B0(k,Z,h);break w}B0(k,Z,h)}if(k=i[19565],i[y>>2]=i[19564],i[y+4>>2]=k,t=y+8|0,l[78275]>=0){k=i[19567],i[t>>2]=i[19566],i[t+4>>2]=k,i[t+8>>2]=i[19568];break l}_0(t,i[19566],i[19567]);break l}if(o=U(56),i[p+4>>2]=o,i[p+8>>2]=52,i[p+12>>2]=-2147483592,t=s[7647]|s[7648]<<8|(s[7649]<<16|s[7650]<<24),k=s[7643]|s[7644]<<8|(s[7645]<<16|s[7646]<<24),l[o|0]=k,l[o+1|0]=k>>>8,l[o+2|0]=k>>>16,l[o+3|0]=k>>>24,l[o+4|0]=t,l[o+5|0]=t>>>8,l[o+6|0]=t>>>16,l[o+7|0]=t>>>24,l[o+52|0]=0,k=s[7691]|s[7692]<<8|(s[7693]<<16|s[7694]<<24),l[o+48|0]=k,l[o+49|0]=k>>>8,l[o+50|0]=k>>>16,l[o+51|0]=k>>>24,t=s[7687]|s[7688]<<8|(s[7689]<<16|s[7690]<<24),k=s[7683]|s[7684]<<8|(s[7685]<<16|s[7686]<<24),l[o+40|0]=k,l[o+41|0]=k>>>8,l[o+42|0]=k>>>16,l[o+43|0]=k>>>24,l[o+44|0]=t,l[o+45|0]=t>>>8,l[o+46|0]=t>>>16,l[o+47|0]=t>>>24,t=s[7679]|s[7680]<<8|(s[7681]<<16|s[7682]<<24),k=s[7675]|s[7676]<<8|(s[7677]<<16|s[7678]<<24),l[o+32|0]=k,l[o+33|0]=k>>>8,l[o+34|0]=k>>>16,l[o+35|0]=k>>>24,l[o+36|0]=t,l[o+37|0]=t>>>8,l[o+38|0]=t>>>16,l[o+39|0]=t>>>24,t=s[7671]|s[7672]<<8|(s[7673]<<16|s[7674]<<24),k=s[7667]|s[7668]<<8|(s[7669]<<16|s[7670]<<24),l[o+24|0]=k,l[o+25|0]=k>>>8,l[o+26|0]=k>>>16,l[o+27|0]=k>>>24,l[o+28|0]=t,l[o+29|0]=t>>>8,l[o+30|0]=t>>>16,l[o+31|0]=t>>>24,t=s[7663]|s[7664]<<8|(s[7665]<<16|s[7666]<<24),k=s[7659]|s[7660]<<8|(s[7661]<<16|s[7662]<<24),l[o+16|0]=k,l[o+17|0]=k>>>8,l[o+18|0]=k>>>16,l[o+19|0]=k>>>24,l[o+20|0]=t,l[o+21|0]=t>>>8,l[o+22|0]=t>>>16,l[o+23|0]=t>>>24,t=s[7655]|s[7656]<<8|(s[7657]<<16|s[7658]<<24),k=s[7651]|s[7652]<<8|(s[7653]<<16|s[7654]<<24),l[o+8|0]=k,l[o+9|0]=k>>>8,l[o+10|0]=k>>>16,l[o+11|0]=k>>>24,l[o+12|0]=t,l[o+13|0]=t>>>8,l[o+14|0]=t>>>16,l[o+15|0]=t>>>24,r0(y,4,0,p+4|0),l[p+15|0]>=0)break l;G(i[p+4>>2]);break l}if(l[p+4|0]=0,l[p+15|0]=0,r0(y,5,2002,p+4|0),l[p+15|0]>=0)break l;G(i[p+4>>2])}B=p+16|0,t=i[W+28>>2],k=i[W+24>>2],i[W+48>>2]=k,i[W+52>>2]=t,l[W+67|0]<0&&(G(i[W+56>>2]),k=i[W+48>>2]),t=i[W+36>>2],i[v>>2]=i[W+32>>2],i[v+4>>2]=t,i[v+8>>2]=i[W+40>>2];l:{s:{if(!k){if(h=i[W+100>>2],(h|0)==i[W+104>>2])break l;L=n+28|0,w=0;break s}k=i[W+52>>2],i[I>>2]=i[W+48>>2],i[I+4>>2]=k,i[I+16>>2]=i[v+8>>2],k=i[v+4>>2],i[I+8>>2]=i[v>>2],i[I+12>>2]=k,i[v>>2]=0,i[v+4>>2]=0,i[v+8>>2]=0;break u}for(;;){i[W+16>>2]=0,i[W+20>>2]=0,f6(W+24|0,e,i[(w<<2)+h>>2],W+16|0,1,n,0),t=i[W+28>>2],k=i[W+24>>2],i[W+48>>2]=k,i[W+52>>2]=t,l[W+67|0]<0&&(G(i[W+56>>2]),k=i[W+48>>2]),t=i[W+36>>2],i[v>>2]=i[W+32>>2],i[v+4>>2]=t,i[v+8>>2]=i[W+40>>2];s:{if((k|0)==i[19564]){i[W+8>>2]=0,i[W+12>>2]=0,N8(W+24|0,W+16|0,1,3,W+8|0,0,L),t=i[W+24>>2],k=i[W+28>>2],i[W+24>>2]=0,i[W+28>>2]=0,o=i[W+20>>2],i[W+16>>2]=t,i[W+20>>2]=k;h:{if(!o||(k=i[o+4>>2],i[o+4>>2]=k-1,k||(V[i[i[o>>2]+8>>2]](o),g(o)),t=i[W+28>>2],!t)||(k=i[t+4>>2],i[t+4>>2]=k-1,k))break h;V[i[i[t>>2]+8>>2]](t),g(t)}t=i[W+12>>2];h:{if(!t||(k=i[t+4>>2],i[t+4>>2]=k-1,k))break h;V[i[i[t>>2]+8>>2]](t),g(t)}if(!i[W+16>>2]){l[W+24|0]=0,l[W+35|0]=0,r0(I,4,3003,W+24|0),l[W+35|0]<0&&G(i[W+24>>2]),h=0;break s}if(C=i[A>>2],k=i[W+88>>2]+(w<<3)|0,z=i[k>>2],Q0=i[k+4>>2],Y0=0,h0=B-16|0,B=h0,k=i[W+16>>2],I0=h0+8|0,i[h0+4>>2]=I0,i[h0+8>>2]=0,i[h0+12>>2]=0,q=W+24|0,t=i[k+60>>2],_=k- -64|0,(t|0)!=(_|0)){for(;;){Z=i[t+16>>2],h=I0,k=h,o=i[h0+8>>2];h:{w:{if(!o)break w;for(;;){if(k=o,o=i[k+16>>2],(o|0)>(Z|0)){if(h=k,o=i[k>>2],o)continue;break w}if((o|0)>=(Z|0))break h;if(o=i[k+4>>2],!o)break}h=k+4|0}o=U(20),i[o+8>>2]=k,i[o>>2]=0,i[o+4>>2]=0,i[o+16>>2]=Z,i[h>>2]=o,k=i[i[h0+4>>2]>>2],k&&(i[h0+4>>2]=k,o=i[h>>2]),D1(i[h0+8>>2],o),i[h0+12>>2]=i[h0+12>>2]+1}o=i[t+4>>2];h:{if(o){for(;;)if(k=o,o=i[k>>2],!o)break h}for(;k=i[t+8>>2],o=i[k>>2]!=(t|0),t=k,!!o;);}if(t=k,(k|0)==(_|0))break}k=i[W+16>>2]}Z=k- -64|0,k=i[k+64>>2];h:{w:{if(!k)break w;for(t=Z,o=k;h=i[o+16>>2]<6,t=h?t:o,o=i[(h<<2)+o>>2],!!o;);if((t|0)==(Z|0))break w;if(i[t+16>>2]<7)break h}t=Z}h:{if(!k)break h;for(o=Z;h=i[k+16>>2]<6,o=h?o:k,k=i[(h<<2)+k>>2],!!k;);if((o|0)==(Z|0)|i[o+16>>2]>6)break h;Y0=i[o+40>>2]}h:{w:{if(h=i[h0+4>>2],(I0|0)==(h|0)||(o=i[C+64>>2],!o))break w;for(X0=0-Q0|0,E=0-z|0,_=C- -64|0,R=(z|0)<=0,d=(z|0)>=0,f0=(t|0)!=(Z|0);;){_:{if(!o)break _;for(H=i[h+16>>2],t=_,k=o;Z=(H|0)>i[k+16>>2],t=Z?t:k,k=i[(Z<<2)+k>>2],!!k;);if((t|0)==(_|0)|(H|0)>2])break _;k=i[W+16>>2],Z=k- -64|0,C=Z;v:{Z:{if(t=i[k+64>>2],k=t,!k)break Z;for(;y=(H|0)>i[k+16>>2],C=y?C:k,k=i[(y<<2)+k>>2],!!k;);if((Z|0)==(C|0))break Z;if(F0=0,p=0,(H|0)>2])break v;F0=i[C+48>>2],p=i[C+40>>2];break v}F0=0,p=0}for(C=_,k=o;y=(H|0)>i[k+16>>2],C=y?C:k,k=i[(y<<2)+k>>2],!!k;);v:{if((_|0)==(C|0)){S=0,y=0;break v}if(S=0,y=0,(H|0)>2])break v;S=i[C+40>>2],y=i[C+48>>2]}C=Z,k=t;v:{if(!k){D=-1,A0=-1;break v}for(;J=(H|0)>i[k+16>>2],C=J?C:k,k=i[(J<<2)+k>>2],!!k;);for(D=-1,D=(Z|0)==(C|0)|(H|0)>2]?D:i[C+24>>2],k=Z;C=(H|0)>i[t+16>>2],k=C?k:t,t=i[(C<<2)+t>>2],!!t;);if(A0=-1,(k|0)==(Z|0)|(H|0)>2])break v;A0=i[k+28>>2]}for(t=_,k=o;Z=(H|0)>i[k+16>>2],t=Z?t:k,k=i[(Z<<2)+k>>2],!!k;);for(C=-1,C=(t|0)==(_|0)|(H|0)>2]?C:i[t+24>>2],k=_;t=(H|0)>i[o+16>>2],k=t?k:o,o=i[(t<<2)+o>>2],!!o;);if(t=-1,t=(k|0)==(_|0)|(H|0)>2]?t:i[k+28>>2],!(C>>>0>z>>>0|R)){if(k=i[19565],i[q>>2]=i[19564],i[q+4>>2]=k,t=q+8|0,l[78275]>=0){k=i[19567],i[t>>2]=i[19566],i[t+4>>2]=k,i[t+8>>2]=i[19568];break h}_0(t,i[19566],i[19567]);break h}if(o=0,d)k=z;else{if(E>>>0>=D>>>0){if(k=i[19565],i[q>>2]=i[19564],i[q+4>>2]=k,t=q+8|0,l[78275]>=0){k=i[19567],i[t>>2]=i[19566],i[t+4>>2]=k,i[t+8>>2]=i[19568];break h}_0(t,i[19566],i[19567]);break h}D=z+D|0,o=E,k=0}if(!((Q0|0)<=0|t>>>0>Q0>>>0)){if(k=i[19565],i[q>>2]=i[19564],i[q+4>>2]=k,t=q+8|0,l[78275]>=0){k=i[19567],i[t>>2]=i[19566],i[t+4>>2]=k,i[t+8>>2]=i[19568];break h}_0(t,i[19566],i[19567]);break h}if(J=0,(Q0|0)>=0)Z=Q0;else{if(A0>>>0<=X0>>>0){if(k=i[19565],i[q>>2]=i[19564],i[q+4>>2]=k,t=q+8|0,l[78275]>=0){k=i[19567],i[t>>2]=i[19566],i[t+4>>2]=k,i[t+8>>2]=i[19568];break h}_0(t,i[19566],i[19567]);break h}A0=A0+Q0|0,J=X0,Z=0}if(H=t-Q0|0,p0=Q0>>>0>(A0^-1)>>>0||A0+Q0>>>0>t>>>0?H:A0,p0>>>0<=J>>>0)break _;if(t=C-z|0,j=z>>>0>(D^-1)>>>0||z+D>>>0>C>>>0?t:D,A0=k+S|0,H=Z-J|0,!f0){for(t=j-o|0,k=o+p|0;l0(A0+m(y,J+H|0)|0,k+m(J,F0)|0,t),J=J+1|0,(p0|0)!=(J|0););break _}if(o>>>0>=j>>>0)break _;for(;;){for(S=m(J,F0)+o|0,C=A0+m(y,J+H|0)|0,k=o;t=k+C|0,D=t,S0=s[t|0],Z=k+S|0,t=s[Z+Y0|0],l[D|0]=(m(S0,t^255)+m(t,s[Z+p|0])>>>0)/255,k=k+1|0,(j|0)!=(k|0););if(J=J+1|0,(p0|0)==(J|0))break}}o=i[h+4>>2];_:{if(o){for(;;)if(k=o,o=i[k>>2],!o)break _}for(;k=i[h+8>>2],t=i[k>>2]!=(h|0),h=k,!!t;);}if((k|0)==(I0|0))break w;o=i[_>>2],h=k}}if(k=i[19565],i[q>>2]=i[19564],i[q+4>>2]=k,t=q+8|0,l[78275]>=0){k=i[19567],i[t>>2]=i[19566],i[t+4>>2]=k,i[t+8>>2]=i[19568];break h}_0(t,i[19566],i[19567])}if(j6(h0+4|0,i[h0+8>>2]),B=h0+16|0,t=i[W+28>>2],k=i[W+24>>2],i[W+48>>2]=k,i[W+52>>2]=t,l[W+67|0]<0&&(G(i[W+56>>2]),k=i[W+48>>2]),t=i[W+36>>2],i[v>>2]=i[W+32>>2],i[v+4>>2]=t,i[v+8>>2]=i[W+40>>2],h=1,!k)break s;if(!((k|0)!=2|i[W+52>>2]!=122)){if(k=i[19565],i[W+48>>2]=i[19564],i[W+52>>2]=k,t=l[78275],l[W+67|0]>=0){if((t|0)>=0){k=i[19567],i[v>>2]=i[19566],i[v+4>>2]=k,i[v+8>>2]=i[19568];break s}i4(v,i[19566],i[19567]);break s}k=(t|0)<0,_4(v,k?i[19566]:78264,k?i[19567]:t);break s}}k=i[W+52>>2],i[I>>2]=i[W+48>>2],i[I+4>>2]=k,i[I+16>>2]=i[v+8>>2],k=i[v+4>>2],i[I+8>>2]=i[v>>2],i[I+12>>2]=k,i[v>>2]=0,i[v+4>>2]=0,h=0,i[v+8>>2]=0}t=i[W+20>>2];s:{if(!t||(k=i[t+4>>2],i[t+4>>2]=k-1,k))break s;V[i[i[t>>2]+8>>2]](t),g(t)}if(!h)break u;if(w=w+1|0,h=i[W+100>>2],!(w>>>0>2]-h>>2>>>0))break}}k=i[W+52>>2],i[I>>2]=i[W+48>>2],i[I+4>>2]=k,i[I+16>>2]=i[v+8>>2],k=i[v+4>>2],i[I+8>>2]=i[v>>2],i[I+12>>2]=k,i[v>>2]=0,i[v+4>>2]=0,i[v+8>>2]=0}if(l[W+67|0]<0&&G(i[W+56>>2]),k=i[W+88>>2],k&&(i[W+92>>2]=k,G(k)),k=i[W+100>>2],!k)break o;i[W+104>>2]=k,G(k)}o:{if(!a||(k=i[a+4>>2],i[a+4>>2]=k-1,k))break o;V[i[i[a>>2]+8>>2]](a),g(a)}if(B=W+112|0,t=i[u+68>>2],k=i[u+64>>2],i[u+96>>2]=k,i[u+100>>2]=t,l[u+115|0]<0&&(G(i[u+104>>2]),k=i[u+96>>2]),t=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=t,i[u+112>>2]=i[u+80>>2],k)break k;if(k=i[u>>2],!k)break e;i[u+4>>2]=k,G(k);break e}if((s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))!=1768649581)break t;if(i[u+8>>2]=0,i[u>>2]=0,i[u+4>>2]=0,w8(u- -64|0,i[e+48>>2],r,u),t=i[u+68>>2],k=i[u+64>>2],i[u+96>>2]=k,i[u+100>>2]=t,l[u+115|0]<0&&(G(i[u+104>>2]),k=i[u+96>>2]),t=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=t,i[u+112>>2]=i[u+80>>2],k){k=x(98732,17113,12),A=B-16|0,B=A,r=A+12|0,e=i[(k+i[i[k>>2]-12>>2]|0)+28>>2],i[r>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(r,100192),e=V[i[i[e>>2]+28>>2]](e,10)|0,O0(r),D9(k,e),Ni(k),B=A+16|0;break A}y=u- -64|0,h=0,p=B+-64|0,B=p,i[p+60>>2]=0,i[p+52>>2]=0,i[p+56>>2]=0,k=i[e+48>>2],t=i[e+52>>2];o:{if(!t){I1(p+32|0,k,r,p+52|0);break o}if(i[t+4>>2]=i[t+4>>2]+1,I1(p+32|0,k,r,p+52|0),k=i[t+4>>2],i[t+4>>2]=k-1,k)break o;V[i[i[t>>2]+8>>2]](t),g(t)}o:{if(i[p+32>>2]){k=i[p+36>>2],i[y>>2]=i[p+32>>2],i[y+4>>2]=k,i[y+16>>2]=i[p+48>>2],k=i[p+44>>2],i[y+8>>2]=i[p+40>>2],i[y+12>>2]=k,i[p+48>>2]=0,i[p+40>>2]=0,i[p+44>>2]=0;break o}u:{l:{if(D=i[p+52>>2],Z=i[p+56>>2],(D|0)!=(Z|0)){for(t=0;;){if(h0=i[D>>2],h0){w=0;s:{h:{if(k=N0(h0,68572,68596),!k)break h;if(w=i[D+4>>2],w&&(i[w+4>>2]=i[w+4>>2]+1),Y0=i[k+56>>2],C=i[k+60>>2],l6(p+8|0,e,Y0,C),o=i[p+12>>2],k=i[p+8>>2],i[p+32>>2]=k,i[p+36>>2]=o,l[p+51|0]<0&&(G(i[p+40>>2]),k=i[p+32>>2]),o=i[p+20>>2],i[p+40>>2]=i[p+16>>2],i[p+44>>2]=o,i[p+48>>2]=i[p+24>>2],k){k=i[p+36>>2],i[y>>2]=i[p+32>>2],i[y+4>>2]=k,i[y+16>>2]=i[p+48>>2],k=i[p+44>>2],i[y+8>>2]=i[p+40>>2],i[y+12>>2]=k,i[p+40>>2]=0,i[p+44>>2]=0,_=0,i[p+48>>2]=0;break s}if(E=1,h0=i[D>>2],h0)break h;_=1;break s}if(_=1,k=N0(h0,68572,75128),!k)break s;o=i[D+4>>2],o&&(i[o+4>>2]=i[o+4>>2]+2);h:{if(!h||(t=i[h+4>>2],i[h+4>>2]=t-1,t))break h;V[i[i[h>>2]+8>>2]](h),g(h)}if(!o){h=0,t=k;break s}t=i[o+4>>2],i[o+4>>2]=t-1,t||(V[i[i[o>>2]+8>>2]](o),g(o)),t=k,h=o}s:{if(!w||(k=i[w+4>>2],i[w+4>>2]=k-1,k))break s;V[i[i[w>>2]+8>>2]](w),g(w)}if(!_)break u}if(D=D+8|0,(Z|0)==(D|0))break}if((t|0)!=0&E)break l}if(o=U(40),i[p+8>>2]=o,i[p+12>>2]=35,i[p+16>>2]=-2147483608,t=s[13840]|s[13841]<<8|(s[13842]<<16|s[13843]<<24),k=s[13836]|s[13837]<<8|(s[13838]<<16|s[13839]<<24),l[o|0]=k,l[o+1|0]=k>>>8,l[o+2|0]=k>>>16,l[o+3|0]=k>>>24,l[o+4|0]=t,l[o+5|0]=t>>>8,l[o+6|0]=t>>>16,l[o+7|0]=t>>>24,l[o+35|0]=0,k=s[13867]|s[13868]<<8|(s[13869]<<16|s[13870]<<24),l[o+31|0]=k,l[o+32|0]=k>>>8,l[o+33|0]=k>>>16,l[o+34|0]=k>>>24,t=s[13864]|s[13865]<<8|(s[13866]<<16|s[13867]<<24),k=s[13860]|s[13861]<<8|(s[13862]<<16|s[13863]<<24),l[o+24|0]=k,l[o+25|0]=k>>>8,l[o+26|0]=k>>>16,l[o+27|0]=k>>>24,l[o+28|0]=t,l[o+29|0]=t>>>8,l[o+30|0]=t>>>16,l[o+31|0]=t>>>24,t=s[13856]|s[13857]<<8|(s[13858]<<16|s[13859]<<24),k=s[13852]|s[13853]<<8|(s[13854]<<16|s[13855]<<24),l[o+16|0]=k,l[o+17|0]=k>>>8,l[o+18|0]=k>>>16,l[o+19|0]=k>>>24,l[o+20|0]=t,l[o+21|0]=t>>>8,l[o+22|0]=t>>>16,l[o+23|0]=t>>>24,t=s[13848]|s[13849]<<8|(s[13850]<<16|s[13851]<<24),k=s[13844]|s[13845]<<8|(s[13846]<<16|s[13847]<<24),l[o+8|0]=k,l[o+9|0]=k>>>8,l[o+10|0]=k>>>16,l[o+11|0]=k>>>24,l[o+12|0]=t,l[o+13|0]=t>>>8,l[o+14|0]=t>>>16,l[o+15|0]=t>>>24,r0(y,4,3002,p+8|0),l[p+19|0]>=0)break u;G(i[p+8>>2]);break u}l:switch(s[t+56|0]-8|0){default:if(k=C1(p+8|0,7329),r0(y,4,3002,k),l[k+11|0]>=0)break u;G(i[k>>2]);break u;case 0:case 8:break l}if(i[u+4>>2]-i[u>>2]>>>0>>0){if(o=U(32),i[p+8>>2]=o,i[p+12>>2]=28,i[p+16>>2]=-2147483616,t=s[2982]|s[2983]<<8|(s[2984]<<16|s[2985]<<24),k=s[2978]|s[2979]<<8|(s[2980]<<16|s[2981]<<24),l[o|0]=k,l[o+1|0]=k>>>8,l[o+2|0]=k>>>16,l[o+3|0]=k>>>24,l[o+4|0]=t,l[o+5|0]=t>>>8,l[o+6|0]=t>>>16,l[o+7|0]=t>>>24,l[o+28|0]=0,k=s[3002]|s[3003]<<8|(s[3004]<<16|s[3005]<<24),l[o+24|0]=k,l[o+25|0]=k>>>8,l[o+26|0]=k>>>16,l[o+27|0]=k>>>24,t=s[2998]|s[2999]<<8|(s[3e3]<<16|s[3001]<<24),k=s[2994]|s[2995]<<8|(s[2996]<<16|s[2997]<<24),l[o+16|0]=k,l[o+17|0]=k>>>8,l[o+18|0]=k>>>16,l[o+19|0]=k>>>24,l[o+20|0]=t,l[o+21|0]=t>>>8,l[o+22|0]=t>>>16,l[o+23|0]=t>>>24,t=s[2990]|s[2991]<<8|(s[2992]<<16|s[2993]<<24),k=s[2986]|s[2987]<<8|(s[2988]<<16|s[2989]<<24),l[o+8|0]=k,l[o+9|0]=k>>>8,l[o+10|0]=k>>>16,l[o+11|0]=k>>>24,l[o+12|0]=t,l[o+13|0]=t>>>8,l[o+14|0]=t>>>16,l[o+15|0]=t>>>24,r0(y,2,0,p+8|0),l[p+19|0]>=0)break u;G(i[p+8>>2]);break u}k=U(136),i[k+4>>2]=0,i[k+8>>2]=0,i[k>>2]=72792,B0(k+20|0,0,104),_=i[k+4>>2],w=_+1|0,i[k+4>>2]=w,i[k+56>>2]=0,i[k+60>>2]=0,i[k+44>>2]=99,i[k+48>>2]=99,i[k+32>>2]=3795,o=k- -64|0,i[o>>2]=0,i[o+4>>2]=0,i[k+132>>2]=0,i[k+124>>2]=0,i[k+128>>2]=0,i[k+84>>2]=1,i[k+88>>2]=1,i[k+72>>2]=k+76,i[k+92>>2]=0,i[k+96>>2]=0,i[k+100>>2]=0,i[k+104>>2]=0,i[k+108>>2]=0,i[k+112>>2]=0,l[k+113|0]=0,l[k+114|0]=0,l[k+115|0]=0,l[k+116|0]=0,l[k+117|0]=0,l[k+118|0]=0,l[k+119|0]=0,l[k+120|0]=0,o=k+12|0,i[k+12>>2]=o,i[k+8>>2]=i[k+8>>2]+1,i[k+4>>2]=_,i[k+16>>2]=k,w||(V[i[i[k>>2]+8>>2]](k),g(k)),i[A>>2]=o,o=i[A+4>>2],i[A+4>>2]=k;l:{if(!o||(k=i[o+4>>2],i[o+4>>2]=k-1,k))break l;V[i[i[o>>2]+8>>2]](o),g(o)}k=i[A>>2],i[k+36>>2]=0,i[k+32>>2]=2,i[k+28>>2]=C,i[k+24>>2]=Y0,J0(i[A>>2],0,Y0,C,s[t+56|0]),o=v0(i[A>>2],0,p+8|0);l:{if(i[p+8>>2]!=(Y0|0)){if(!C)break l;if(D=0,(C|0)!=1)for(t=C&-2,h0=0;l0(o+m(i[p+8>>2],D)|0,i[u>>2]+m(D,Y0)|0,Y0),k=D|1,l0(o+m(k,i[p+8>>2])|0,i[u>>2]+m(k,Y0)|0,Y0),D=D+2|0,h0=h0+2|0,(t|0)!=(h0|0););if(!(C&1))break l;l0(o+m(i[p+8>>2],D)|0,i[u>>2]+m(D,Y0)|0,Y0);break l}k=i[u>>2],l0(o,k,i[u+4>>2]-k|0)}if(k=i[19565],i[y>>2]=i[19564],i[y+4>>2]=k,t=y+8|0,l[78275]>=0){k=i[19567],i[t>>2]=i[19566],i[t+4>>2]=k,i[t+8>>2]=i[19568];break u}_0(t,i[19566],i[19567])}if(!h||(k=i[h+4>>2],i[h+4>>2]=k-1,k))break o;V[i[i[h>>2]+8>>2]](h),g(h)}if(l[p+51|0]<0&&G(i[p+40>>2]),k=i[p+52>>2],k){if(D=i[p+56>>2],w=k,(D|0)!=(k|0)){for(;;){o=i[D-4>>2];o:{if(!o||(t=i[o+4>>2],i[o+4>>2]=t-1,t))break o;V[i[i[o>>2]+8>>2]](o),g(o)}if(D=D-8|0,(k|0)==(D|0))break}w=i[p+52>>2]}i[p+56>>2]=k,G(w)}if(B=p- -64|0,t=i[u+68>>2],k=i[u+64>>2],i[u+96>>2]=k,i[u+100>>2]=t,l[u+115|0]<0&&(G(i[u+104>>2]),k=i[u+96>>2]),t=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=t,i[u+112>>2]=i[u+80>>2],k)break A;if(k=i[u>>2],!k)break e;i[u+4>>2]=k,G(k);break e}if(e=f,f=C1(u- -64|0,31341),r0(e,4,3001,f),l[f+11|0]>=0)break r;G(i[f>>2]);break r}if(e=i[u+100>>2],i[f>>2]=i[u+96>>2],i[f+4>>2]=e,i[f+16>>2]=i[u+112>>2],e=i[u+108>>2],i[f+8>>2]=i[u+104>>2],i[f+12>>2]=e,i[u+104>>2]=0,i[u+108>>2]=0,i[u+112>>2]=0,f=i[u>>2],!f)break r;i[u+4>>2]=f,G(f);break r}if(e=i[u+100>>2],i[f>>2]=i[u+96>>2],i[f+4>>2]=e,i[f+16>>2]=i[u+112>>2],e=i[u+108>>2],i[f+8>>2]=i[u+104>>2],i[f+12>>2]=e,i[u+104>>2]=0,i[u+108>>2]=0,i[u+112>>2]=0,f=i[u>>2],!f)break r;i[u+4>>2]=f,G(f);break r}c2(),P()}if(e=i[u+100>>2],i[f>>2]=i[u+96>>2],i[f+4>>2]=e,i[f+16>>2]=i[u+112>>2],e=i[u+108>>2],i[f+8>>2]=i[u+104>>2],i[f+12>>2]=e,i[u+104>>2]=0,i[u+108>>2]=0,i[u+112>>2]=0,f=i[u>>2],!f)break r;i[u+4>>2]=f,G(f);break r}e:{if(!s[n+1|0]){if(i[u+8>>2]=0,i[u>>2]=0,i[u+4>>2]=0,t=i[e+48>>2],k=i[t+44>>2],i[u+48>>2]=k,o=i[t+48>>2],i[u+52>>2]=o,o&&(i[o+4>>2]=i[o+4>>2]+1,t=i[e+48>>2]),i[u+36>>2]=i[t+52>>2],t=i[t+56>>2],i[u+40>>2]=t,t&&(i[t+4>>2]=i[t+4>>2]+1),ii(u- -64|0,k,r,u+36|0,u),k=i[u+68>>2],i[u+96>>2]=i[u+64>>2],i[u+100>>2]=k,l[u+115|0]<0&&G(i[u+104>>2]),k=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=k,i[u+112>>2]=i[u+80>>2],t=i[u>>2],Q0=i[u+4>>2],(t|0)!=(Q0|0))for(;;){if(k=i[t>>2],w=i[k+16>>2],(w|0)==1769107316){w=0,o=N0(k,68572,69472);A:{if(!o||(k=i[t+4>>2],!k))break A;i[k+4>>2]=i[k+4>>2]+1,w=k}i[u+28>>2]=0,i[u+32>>2]=0,L=u- -64|0,p0=i[A>>2];A:{f:{k:{n:{t:{o:{if(A0=i[o+48>>2],!A0){if(k=i[p0+4>>2],!k)break o;for(o=i[p0>>2],C=B-16|0,B=C,h=i[k+4>>2],i[C+12>>2]=h;;){u:{if((h|0)==-1){k=0;break u}if(_=i[k+4>>2],Z=(_|0)==i[C+12>>2],i[k+4>>2]=Z?h+1|0:_,Z||(i[C+12>>2]=_),Z)break u;h=i[C+12>>2];continue}break}if(B=C+16|0,!k)break o;i[u+28>>2]=o,o=i[u+32>>2],i[u+32>>2]=k;u:{if(!o||(k=i[o+4>>2],i[o+4>>2]=k-1,k))break u;V[i[i[o>>2]+8>>2]](o),g(o)}if(k=i[19565],i[L>>2]=i[19564],i[L+4>>2]=k,k=L+8|0,l[78275]<0)break t;break f}k=i[p0+28>>2],o=i[p0+24>>2];u:{if(!((A0|0)==270|(A0|0)==90)){h=o,o=k;break u}h=k}k=U(136),i[k+4>>2]=0,i[k+8>>2]=0,i[k>>2]=72792,B0(k+20|0,0,104),C=i[k+4>>2],Z=C+1|0,i[k+4>>2]=Z,i[k+56>>2]=0,i[k+60>>2]=0,i[k+44>>2]=99,i[k+48>>2]=99,i[k+32>>2]=3795,_=k- -64|0,i[_>>2]=0,i[_+4>>2]=0,i[k+132>>2]=0,i[k+124>>2]=0,i[k+128>>2]=0,i[k+84>>2]=1,i[k+88>>2]=1,i[k+72>>2]=k+76,i[k+92>>2]=0,i[k+96>>2]=0,i[k+100>>2]=0,i[k+104>>2]=0,i[k+108>>2]=0,i[k+112>>2]=0,l[k+113|0]=0,l[k+114|0]=0,l[k+115|0]=0,l[k+116|0]=0,l[k+117|0]=0,l[k+118|0]=0,l[k+119|0]=0,l[k+120|0]=0,_=k+12|0,i[k+12>>2]=_,i[k+8>>2]=i[k+8>>2]+1,i[k+4>>2]=C,i[k+16>>2]=k,Z||(V[i[i[k>>2]+8>>2]](k),g(k)),i[u+28>>2]=_,_=i[u+32>>2],i[u+32>>2]=k;u:{if(!_||(k=i[_+4>>2],i[_+4>>2]=k-1,k))break u;V[i[i[_>>2]+8>>2]](_),g(_)}if(Z=i[p0+32>>2],_=i[p0+36>>2],k=i[u+28>>2],i[k+28>>2]=o,i[k+32>>2]=Z,i[k+36>>2]=_,i[k+24>>2]=h,_=i[p0+60>>2],I0=p0- -64|0,(_|0)==(I0|0))break k;for(X0=(A0|0)==270,S=(A0|0)!=180,f0=(A0|0)!=90;;){h=i[_+28>>2],k=i[_+24>>2];u:{if(!(!f0|X0)){o=k,k=h;break u}o=h}C=i[_+16>>2],J0(i[u+28>>2],C,o,k,s[_+20|0]),k=i[u+28>>2],Z=k- -64|0,o=Z;u:{l:{if(k=i[k+64>>2],!k)break l;for(;h=(C|0)>i[k+16>>2],o=h?o:k,k=i[(h<<2)+k>>2],!!k;);if((o|0)==(Z|0))break l;if(E=0,k=0,(C|0)>2])break u;E=i[o+40>>2],k=i[o+48>>2];break u}E=0,k=0}o=k,R=i[_+40>>2],d=i[_+48>>2],j=i[_+28>>2],a=i[_+24>>2];u:{l:{if(s[_+20|0]==8){if((A0|0)!=270)break l;if((j|0)<=0)break u;for(C=a&2147483644,y=a&3,h0=0,Z=a-1>>>0>2;;){s:{if((a|0)<=0)break s;if(z=E+h0|0,p=R+m(d,j+(h0^-1)|0)|0,J=0,k=0,D=0,Z)for(;l[z+m(k,o)|0]=s[k+p|0],h=k|1,l[z+m(h,o)|0]=s[h+p|0],h=k|2,l[z+m(h,o)|0]=s[h+p|0],h=k|3,l[z+m(h,o)|0]=s[h+p|0],k=k+4|0,D=D+4|0,(C|0)!=(D|0););if(!y)break s;for(;l[z+m(k,o)|0]=s[k+p|0],k=k+1|0,J=J+1|0,(y|0)!=(J|0););}if(h0=h0+1|0,(j|0)==(h0|0))break}break u}if((A0|0)==270){if((j|0)<=0|(a|0)<=0)break u;for(p=a&2147483646,y=a&1,h=0;;){if(H=(h<<1)+E|0,z=R+m(d,j+(h^-1)|0)|0,k=0,J=0,(a|0)!=1)for(;C=H+m(k,o)|0,Z=z+(k<<1)|0,l[C|0]=s[Z|0],l[C+1|0]=s[Z+1|0],Z=k|1,C=H+m(Z,o)|0,Z=z+(Z<<1)|0,l[C|0]=s[Z|0],l[C+1|0]=s[Z+1|0],k=k+2|0,J=J+2|0,(p|0)!=(J|0););if(y&&(Z=H+m(k,o)|0,k=z+(k<<1)|0,l[Z|0]=s[k|0],l[Z+1|0]=s[k+1|0]),h=h+1|0,(j|0)==(h|0))break}break u}if(!S){if((j|0)<=0|(a|0)<=0)break u;for(y=a&2147483646,C=a&1,h=0;;){if(p=m(o,h)+E|0,H=R+m(d,j+(h^-1)|0)|0,k=0,J=0,(a|0)!=1)for(;z=p+(k<<1)|0,Z=H+(a+(k^-1)<<1)|0,l[z|0]=s[Z|0],l[z+1|0]=s[Z+1|0],Z=H+(a+(k^2147483646)<<1)|0,l[z+2|0]=s[Z|0],l[z+3|0]=s[Z+1|0],k=k+2|0,J=J+2|0,(y|0)!=(J|0););if(C&&(Z=p+(k<<1)|0,k=H+(a+(k^-1)<<1)|0,l[Z|0]=s[k|0],l[Z+1|0]=s[k+1|0]),h=h+1|0,(j|0)==(h|0))break}break u}if((j|0)<=0|f0|(a|0)<=0)break u;for(p=a&2147483646,y=a&1,h=0;;){if(H=(h<<1)+E|0,z=R+m(h,d)|0,k=0,J=0,(a|0)!=1)for(;C=H+m(k,o)|0,Z=z+(a+(k^-1)<<1)|0,l[C|0]=s[Z|0],l[C+1|0]=s[Z+1|0],C=H+m(o,k|1)|0,Z=z+(a+(k^2147483646)<<1)|0,l[C|0]=s[Z|0],l[C+1|0]=s[Z+1|0],k=k+2|0,J=J+2|0,(p|0)!=(J|0););if(y&&(Z=H+m(k,o)|0,k=z+(a+(k^-1)<<1)|0,l[Z|0]=s[k|0],l[Z+1|0]=s[k+1|0]),h=h+1|0,(j|0)==(h|0))break}break u}if(!S){if((j|0)<=0|(a|0)<=0)break u;for(y=R+a|0,C=a&2147483644,z=a&3,D=0,Z=a-1>>>0<3;;){if(p=m(o,D)+E|0,H=y+m(d,j+(D^-1)|0)|0,k=0,J=0,!Z)for(;h=k+p|0,l[h|0]=s[H+(k^-1)|0],l[h+1|0]=s[H+(k^-2)|0],l[h+2|0]=s[H+(k^-3)|0],l[h+3|0]=s[H+(k^-4)|0],k=k+4|0,J=J+4|0,(C|0)!=(J|0););if(h=0,z)for(;l[k+p|0]=s[H+(k^-1)|0],k=k+1|0,h=h+1|0,(z|0)!=(h|0););if(D=D+1|0,(j|0)==(D|0))break}break u}if((j|0)<=0|f0)break u;for(y=a&2147483644,p=a&3,C=R+a|0,h=0,Z=a-1>>>0>2;;){l:{if((a|0)<=0)break l;if(H=h+E|0,z=C+m(h,d)|0,J=0,k=0,D=0,Z)for(;l[H+m(k,o)|0]=s[z+(k^-1)|0],l[H+m(o,k|1)|0]=s[z+(k^-2)|0],l[H+m(o,k|2)|0]=s[z+(k^-3)|0],l[H+m(o,k|3)|0]=s[z+(k^-4)|0],k=k+4|0,D=D+4|0,(y|0)!=(D|0););if(!p)break l;for(;l[H+m(k,o)|0]=s[z+(k^-1)|0],k=k+1|0,J=J+1|0,(p|0)!=(J|0););}if(h=h+1|0,(j|0)==(h|0))break}}o=i[_+4>>2];u:{if(o){for(;;)if(k=o,o=i[k>>2],!o)break u}for(;k=i[_+8>>2],o=i[k>>2]!=(_|0),_=k,!!o;);}if(_=k,(k|0)==(I0|0))break}break n}f=Ne(4),i[f>>2]=67064,wr(f|0,67100,407),P()}_0(k,i[19566],i[19567]);break A}k=i[u+28>>2]}o=i[p0+44>>2],h=i[p0+48>>2],h&&(i[h+4>>2]=i[h+4>>2]+1),i[k+44>>2]=o,o=i[k+48>>2],i[k+48>>2]=h;k:{if(!o||(k=i[o+4>>2],i[o+4>>2]=k-1,k))break k;V[i[i[o>>2]+8>>2]](o),g(o)}k=i[p0+52>>2],h=i[u+28>>2],o=i[p0+56>>2],o&&(i[o+4>>2]=i[o+4>>2]+1),i[h+52>>2]=k,_=i[h+56>>2],i[h+56>>2]=o;k:{if(!_||(k=i[_+4>>2],i[_+4>>2]=k-1,k))break k;V[i[i[_>>2]+8>>2]](_),g(_)}if(k=i[19565],i[L>>2]=i[19564],i[L+4>>2]=k,k=L+8|0,l[78275]>=0)break f;_0(k,i[19566],i[19567]);break A}o=i[19567],i[k>>2]=i[19566],i[k+4>>2]=o,i[k+8>>2]=i[19568]}o=i[u+68>>2],k=i[u+64>>2],i[u+96>>2]=k,i[u+100>>2]=o,l[u+115|0]<0&&(G(i[u+104>>2]),k=i[u+96>>2]),o=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=o,i[u+112>>2]=i[u+80>>2];A:{if(k){o=i[u+100>>2],i[f>>2]=i[u+96>>2],i[f+4>>2]=o,i[f+16>>2]=i[u+112>>2],o=i[u+108>>2],i[f+8>>2]=i[u+104>>2],i[f+12>>2]=o,i[u+104>>2]=0,i[u+108>>2]=0,i[u+112>>2]=0;break A}if(o=i[u+32>>2],o&&(i[o+4>>2]=i[o+4>>2]+1),i[A>>2]=i[u+28>>2],h=i[A+4>>2],i[A+4>>2]=o,!h||(o=i[h+4>>2],i[h+4>>2]=o-1,o))break A;V[i[i[h>>2]+8>>2]](h),g(h)}h=i[u+32>>2];A:{if(!h||(o=i[h+4>>2],i[h+4>>2]=o-1,o))break A;V[i[i[h>>2]+8>>2]](h),g(h)}A:{if(!w||(o=i[w+4>>2],i[w+4>>2]=o-1,o))break A;V[i[i[w>>2]+8>>2]](w),g(w)}if(k)break e;k=i[t>>2],w=i[k+16>>2]}if((w|0)==1768778098){k=N0(k,68572,69532);A:{f:{if(k){if(i[u+28>>2]=k,w=i[t+4>>2],i[u+32>>2]=w,!w)break f;i[w+4>>2]=i[w+4>>2]+1;break A}i[u+28>>2]=0,i[u+32>>2]=0}w=0}R=u- -64|0,h=i[k+48>>2],L=B-16|0,B=L;A:{f:{k=i[A>>2],o=i[k+60>>2],H=k- -64|0;k:{if((o|0)==(H|0))break k;if((h|0)==1)for(;;){if(s[o+20|0]!=8)break f;I0=i[o+28>>2];n:{if((I0|0)<=0||(d=i[o+24>>2],(d|0)<2))break n;for(X0=i[o+40>>2],E=i[o+48>>2],k=(d|0)/2|0,p=k&1073741822,y=k&1,J=0,C=(d&2147483646)==2;;){if(z=X0+m(E,J)|0,f0=z+d|0,k=0,h=0,!C)for(;S=k+z|0,Z=s[S|0],_=f0+(k^-1)|0,l[S|0]=s[_|0],l[_|0]=Z,Z=s[S+1|0],_=f0+(k^-2)|0,l[S+1|0]=s[_|0],l[_|0]=Z,k=k+2|0,h=h+2|0,(p|0)!=(h|0););if(y&&(_=k+z|0,h=s[_|0],k=f0+(k^-1)|0,l[_|0]=s[k|0],l[k|0]=h),J=J+1|0,(I0|0)==(J|0))break}}h=i[o+4>>2];n:{if(!h){for(;;)if(k=i[o+8>>2],h=i[k>>2]!=(o|0),o=k,!h)break n}for(;k=h,h=i[k>>2],!!h;);}if(o=k,(k|0)==(H|0))break k}for(;;){if(s[o+20|0]!=8)break f;S=i[o+28>>2],E=(S|0)/2|0;n:{if((S|0)<2||(k=i[o+24>>2],(k|0)<=0))break n;for(z=i[o+40>>2],I0=i[o+48>>2],p=k&2147483644,X0=k&3,D=0,y=k>>>0<4;;){if(f0=z+m(D,I0)|0,J=z+m(I0,S+(D^-1)|0)|0,k=0,h=0,!y)for(;_=k+f0|0,Z=s[_|0],C=_,_=k+J|0,l[C|0]=s[_|0],l[_|0]=Z,C=k|1,_=C+f0|0,Z=s[_|0],A0=_,_=C+J|0,l[A0|0]=s[_|0],l[_|0]=Z,C=k|2,_=C+f0|0,Z=s[_|0],A0=_,_=C+J|0,l[A0|0]=s[_|0],l[_|0]=Z,C=k|3,_=C+f0|0,Z=s[_|0],A0=_,_=C+J|0,l[A0|0]=s[_|0],l[_|0]=Z,k=k+4|0,h=h+4|0,(p|0)!=(h|0););if(h=0,X0)for(;_=k+f0|0,Z=s[_|0],C=_,_=k+J|0,l[C|0]=s[_|0],l[_|0]=Z,k=k+1|0,h=h+1|0,(X0|0)!=(h|0););if(D=D+1|0,(E|0)==(D|0))break}}h=i[o+4>>2];n:{if(h){for(;;)if(k=h,h=i[k>>2],!h)break n}for(;k=i[o+8>>2],h=i[k>>2]!=(o|0),o=k,!!h;);}if(o=k,(k|0)==(H|0))break}}if(k=i[19565],i[R>>2]=i[19564],i[R+4>>2]=k,o=R+8|0,l[78275]>=0){k=i[19567],i[o>>2]=i[19566],i[o+4>>2]=k,i[o+8>>2]=i[19568];break A}_0(o,i[19566],i[19567]);break A}if(h=U(56),i[L+4>>2]=h,i[L+8>>2]=54,i[L+12>>2]=-2147483592,o=s[7592]|s[7593]<<8|(s[7594]<<16|s[7595]<<24),k=s[7588]|s[7589]<<8|(s[7590]<<16|s[7591]<<24),l[h|0]=k,l[h+1|0]=k>>>8,l[h+2|0]=k>>>16,l[h+3|0]=k>>>24,l[h+4|0]=o,l[h+5|0]=o>>>8,l[h+6|0]=o>>>16,l[h+7|0]=o>>>24,l[h+54|0]=0,o=s[7638]|s[7639]<<8|(s[7640]<<16|s[7641]<<24),k=s[7634]|s[7635]<<8|(s[7636]<<16|s[7637]<<24),l[h+46|0]=k,l[h+47|0]=k>>>8,l[h+48|0]=k>>>16,l[h+49|0]=k>>>24,l[h+50|0]=o,l[h+51|0]=o>>>8,l[h+52|0]=o>>>16,l[h+53|0]=o>>>24,o=s[7632]|s[7633]<<8|(s[7634]<<16|s[7635]<<24),k=s[7628]|s[7629]<<8|(s[7630]<<16|s[7631]<<24),l[h+40|0]=k,l[h+41|0]=k>>>8,l[h+42|0]=k>>>16,l[h+43|0]=k>>>24,l[h+44|0]=o,l[h+45|0]=o>>>8,l[h+46|0]=o>>>16,l[h+47|0]=o>>>24,o=s[7624]|s[7625]<<8|(s[7626]<<16|s[7627]<<24),k=s[7620]|s[7621]<<8|(s[7622]<<16|s[7623]<<24),l[h+32|0]=k,l[h+33|0]=k>>>8,l[h+34|0]=k>>>16,l[h+35|0]=k>>>24,l[h+36|0]=o,l[h+37|0]=o>>>8,l[h+38|0]=o>>>16,l[h+39|0]=o>>>24,o=s[7616]|s[7617]<<8|(s[7618]<<16|s[7619]<<24),k=s[7612]|s[7613]<<8|(s[7614]<<16|s[7615]<<24),l[h+24|0]=k,l[h+25|0]=k>>>8,l[h+26|0]=k>>>16,l[h+27|0]=k>>>24,l[h+28|0]=o,l[h+29|0]=o>>>8,l[h+30|0]=o>>>16,l[h+31|0]=o>>>24,o=s[7608]|s[7609]<<8|(s[7610]<<16|s[7611]<<24),k=s[7604]|s[7605]<<8|(s[7606]<<16|s[7607]<<24),l[h+16|0]=k,l[h+17|0]=k>>>8,l[h+18|0]=k>>>16,l[h+19|0]=k>>>24,l[h+20|0]=o,l[h+21|0]=o>>>8,l[h+22|0]=o>>>16,l[h+23|0]=o>>>24,o=s[7600]|s[7601]<<8|(s[7602]<<16|s[7603]<<24),k=s[7596]|s[7597]<<8|(s[7598]<<16|s[7599]<<24),l[h+8|0]=k,l[h+9|0]=k>>>8,l[h+10|0]=k>>>16,l[h+11|0]=k>>>24,l[h+12|0]=o,l[h+13|0]=o>>>8,l[h+14|0]=o>>>16,l[h+15|0]=o>>>24,r0(R,4,0,L+4|0),l[L+15|0]>=0)break A;G(i[L+4>>2])}if(B=L+16|0,o=i[u+68>>2],k=i[u+64>>2],i[u+96>>2]=k,i[u+100>>2]=o,l[u+115|0]<0&&(G(i[u+104>>2]),k=i[u+96>>2]),o=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=o,i[u+112>>2]=i[u+80>>2],k){e=i[u+100>>2],i[f>>2]=i[u+96>>2],i[f+4>>2]=e,i[f+16>>2]=i[u+112>>2],e=i[u+108>>2],i[f+8>>2]=i[u+104>>2],i[f+12>>2]=e,i[u+104>>2]=0,i[u+108>>2]=0,i[u+112>>2]=0,v1(u+28|0);break e}A:{if(!w||(k=i[w+4>>2],i[w+4>>2]=k-1,k))break A;V[i[i[w>>2]+8>>2]](w),g(w)}k=i[t>>2],w=i[k+16>>2]}if((w|0)==1668047216){o=0,y=N0(k,68572,69592);A:{if(!y||(k=i[t+4>>2],!k))break A;i[k+4>>2]=i[k+4>>2]+1,o=k}k=i[A>>2],C=i[k+28>>2],Z=i[k+24>>2],_=Ir(y,Z),w=Ln(y,Z),h=Vr(y,C),k=Kn(y,C);A:{f:{if(_=(_|0)>0?_:0,w=(w|0)<(Z|0)?w:Z-1|0,(_|0)<=(w|0)&&(h=(h|0)>0?h:0,k=(k|0)<(C|0)?k:C-1|0,(h|0)<=(k|0)))break f;l[u+64|0]=0,l[u+75|0]=0,r0(f,2,120,u- -64|0),l[u+75|0]<0&&G(i[u+64>>2]),w=1;break A}i[u+28>>2]=0,i[u+32>>2]=0,Mk(u- -64|0,i[A>>2],_,w,h,k,u+28|0),h=i[u+68>>2],k=i[u+64>>2],i[u+96>>2]=k,i[u+100>>2]=h,l[u+115|0]<0&&(G(i[u+104>>2]),k=i[u+96>>2]),h=i[u+76>>2],i[u+104>>2]=i[u+72>>2],i[u+108>>2]=h,i[u+112>>2]=i[u+80>>2];f:{if(k){k=i[u+100>>2],i[f>>2]=i[u+96>>2],i[f+4>>2]=k,i[f+16>>2]=i[u+112>>2],k=i[u+108>>2],i[f+8>>2]=i[u+104>>2],i[f+12>>2]=k,i[u+104>>2]=0,i[u+108>>2]=0,i[u+112>>2]=0,w=1;break f}if(k=i[u+32>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),i[A>>2]=i[u+28>>2],h=i[A+4>>2],i[A+4>>2]=k,w=0,!h||(k=i[h+4>>2],i[h+4>>2]=k-1,k))break f;V[i[i[h>>2]+8>>2]](h),g(h)}if(h=i[u+32>>2],!h||(k=i[h+4>>2],i[h+4>>2]=k-1,k))break A;V[i[i[h>>2]+8>>2]](h),g(h)}A:{if(!o||(k=i[o+4>>2],i[o+4>>2]=k-1,k))break A;V[i[i[o>>2]+8>>2]](o),g(o)}if(w)break e}if(t=t+8|0,(Q0|0)==(t|0))break}v1(u+36|0),v1(u+48|0),_3(u)}A:{f:{k:{n:{k=i[n0>>2];t:{if(!k)break t;for(w=n0,t=k;o=k0[t+16>>2]>>0,w=o?w:t,t=i[(o<<2)+t>>2],!!t;);if((w|0)==(n0|0)|k0[w+16>>2]>r>>>0)break t;for(t=n0;o=k0[k+16>>2]>>0,t=o?t:k,k=i[(o<<2)+k>>2],!!k;);if(t=(t|0)!=(n0|0)&k0[t+16>>2]<=r>>>0?t:n0,C=i[t+20>>2],p=i[t+24>>2],p&&(i[p+4>>2]=i[p+4>>2]+1),h=i[C+52>>2],y=i[C+56>>2],y&&(i[y+4>>2]=i[y+4>>2]+1),h){if(i[u+48>>2]=0,i[u+52>>2]=0,f6(u- -64|0,e,i[h+20>>2],u+48|0,99,n,1),i[u+64>>2]){e=i[u+68>>2],i[f>>2]=i[u+64>>2],i[f+4>>2]=e,i[f+16>>2]=i[u+80>>2],e=i[u+76>>2],i[f+8>>2]=i[u+72>>2],i[f+12>>2]=e,i[u+80>>2]=0,i[u+72>>2]=0,i[u+76>>2]=0;break k}if(o=i[u+48>>2],k=i[o+32>>2],k>>>0>=3){if(e=f,f=C1(u,31341),r0(e,2,3003,f),l[f+11|0]>=0)break k;G(i[f>>2]);break k}n0=i[(k<<2)+35180>>2],n=i[A>>2],k=i[n+24>>2];o:{u:{if((k|0)!=i[h+24>>2]){t=i[n+28>>2];break u}if(t=i[n+28>>2],(t|0)==i[h+28>>2])break o}if(i[u+36>>2]=0,i[u+40>>2]=0,vA(u,o,u+36|0,k,t),n=i[u+4>>2],k=i[u>>2],i[u+64>>2]=k,i[u+68>>2]=n,l[u+83|0]<0&&(G(i[u+72>>2]),k=i[u+64>>2]),n=i[u+12>>2],i[u+72>>2]=i[u+8>>2],i[u+76>>2]=n,i[u+80>>2]=i[u+16>>2],k)break n;n=i[u+36>>2],k=i[u+40>>2],i[u+36>>2]=0,i[u+40>>2]=0,t=i[u+52>>2],i[u+48>>2]=n,i[u+52>>2]=k;u:{if(!t||(k=i[t+4>>2],i[t+4>>2]=k-1,k))break u;V[i[i[t>>2]+8>>2]](t),g(t)}v1(u+36|0),n=i[A>>2]}w=n,E=B-32|0,B=E,_=i[u+48>>2],o=i[_+64>>2];o:{u:{if(!o){t=_- -64|0,k=t;break u}for(n=o;;){if(k=n,n=i[k+16>>2],(n|0)>(n0|0)){if(t=k,n=i[k>>2],n)continue;break u}if((n|0)>=(n0|0)){n=k;break o}if(n=i[k+4>>2],!n)break}t=k+4|0}n=U(52),i[n+20>>2]=0,i[n+24>>2]=0,i[n+16>>2]=n0,i[n+8>>2]=k,i[n>>2]=0,i[n+4>>2]=0,i[n+28>>2]=0,i[n+32>>2]=0,i[n+36>>2]=0,i[n+40>>2]=0,i[n+44>>2]=0,i[n+48>>2]=0,i[t>>2]=n,k=n,o=i[i[_+60>>2]>>2],o&&(i[_+60>>2]=o,k=i[t>>2]),D1(i[_+64>>2],k),i[_+68>>2]=i[_+68>>2]+1,_=i[u+48>>2],o=i[_+64>>2]}k=i[n+48>>2],i[E+24>>2]=i[n+44>>2],i[E+28>>2]=k,k=i[n+40>>2],i[E+16>>2]=i[n+36>>2],i[E+20>>2]=k,k=i[n+32>>2],i[E+8>>2]=i[n+28>>2],i[E+12>>2]=k,k=i[n+24>>2],i[E>>2]=i[n+20>>2],i[E+4>>2]=k;o:{if(!o)break o;for(h=_- -64|0,n=h,k=o;t=(n0|0)>i[k+16>>2],n=t?n:k,k=i[(t<<2)+k>>2],!!k;);if((n|0)==(h|0)|(n0|0)>2])break o;t=i[n+4>>2];u:{if(!t){for(t=n;k=i[t+8>>2],h=i[k>>2]!=(t|0),t=k,!!h;);break u}for(;k=t,t=i[k>>2],!!t;);}i[_+60>>2]==(n|0)&&(i[_+60>>2]=k),i[_+68>>2]=i[_+68>>2]-1;u:{l:{if(n0=n,t=i[n>>2],t){if(k=i[n+4>>2],!k)break l;for(;n=k,k=i[k>>2],!!k;);}if(t=i[n+4>>2],t)break l;_=i[n+8>>2],t=0,h=1;break u}_=i[n+8>>2],i[t+8>>2]=_,h=0}k=i[_>>2];u:{if((n|0)==(k|0)){if(i[_>>2]=t,(n|0)==(o|0)){k=0,o=t;break u}k=i[_+4>>2];break u}i[_+4>>2]=t}Z=s[n+12|0],(n|0)!=(n0|0)&&(_=i[n0+8>>2],i[n+8>>2]=_,i[_+(((n0|0)!=i[_>>2])<<2)>>2]=n,_=i[n0>>2],i[n>>2]=_,i[_+8>>2]=n,_=i[n0+4>>2],i[n+4>>2]=_,_&&(i[_+8>>2]=n),l[n+12|0]=s[n0+12|0],o=(o|0)==(n0|0)?n:o);u:{if(!o|!(Z&1))break u;if(h)for(;;){n=s[k+12|0];l:{if(h=i[k+8>>2],t=i[h>>2],(t|0)!=(k|0)){n&1||(l[k+12|0]=1,l[h+12|0]=0,t=i[h+4>>2],n=i[t>>2],i[h+4>>2]=n,n&&(i[n+8>>2]=h),n=i[h+8>>2],i[t+8>>2]=n,i[n+(((h|0)!=i[n>>2])<<2)>>2]=t,i[t>>2]=h,i[h+8>>2]=t,n=k,k=i[k>>2],o=(k|0)==(o|0)?n:o,k=i[k+4>>2]);s:{h:{n=i[k>>2];w:{if(!(s[n+12|0]!=1&&n)){if(t=i[k+4>>2],s[t+12|0]!=1&&t)break w;if(l[k+12|0]=0,k=i[k+8>>2],s[k+12|0]&&(o|0)!=(k|0))break l;l[k+12|0]=1;break u}if(t=i[k+4>>2],!t)break h}if(s[t+12|0]==1)break h;n=k;break s}l[n+12|0]=1,l[k+12|0]=0,t=i[n+4>>2],i[k>>2]=t,t&&(i[t+8>>2]=k),t=i[k+8>>2],i[n+8>>2]=t,i[t+((i[t>>2]!=(k|0))<<2)>>2]=n,i[n+4>>2]=k,i[k+8>>2]=n,t=k}o=i[n+8>>2],l[n+12|0]=s[o+12|0],l[o+12|0]=1,l[t+12|0]=1,n=i[o+4>>2],k=i[n>>2],i[o+4>>2]=k,k&&(i[k+8>>2]=o),k=i[o+8>>2],i[n+8>>2]=k,i[k+(((o|0)!=i[k>>2])<<2)>>2]=n,i[n>>2]=o,i[o+8>>2]=n;break u}n&1||(l[k+12|0]=1,l[h+12|0]=0,n=i[t+4>>2],i[h>>2]=n,n&&(i[n+8>>2]=h),n=i[h+8>>2],i[t+8>>2]=n,i[n+(((h|0)!=i[n>>2])<<2)>>2]=t,i[t+4>>2]=h,i[h+8>>2]=t,n=k,k=i[k+4>>2],o=(k|0)==(o|0)?n:o,k=i[k>>2]);s:{h:{w:{_:{if(t=i[k>>2],t&&(n=s[t+12|0],(n|0)!=1))break _;if(n=i[k+4>>2],!(s[n+12|0]!=1&&n)){if(l[k+12|0]=0,k=i[k+8>>2],s[k+12|0]==1&(k|0)!=(o|0))break l;l[k+12|0]=1;break u}if(!t)break h;if(l[t+12|0]&1)break w;n=k;break s}if(n)break w;n=k;break s}n=i[k+4>>2]}l[n+12|0]=1,l[k+12|0]=0,t=i[n>>2],i[k+4>>2]=t,t&&(i[t+8>>2]=k),t=i[k+8>>2],i[n+8>>2]=t,i[t+((i[t>>2]!=(k|0))<<2)>>2]=n,i[n>>2]=k,i[k+8>>2]=n,t=k}o=i[n+8>>2],l[n+12|0]=s[o+12|0],l[o+12|0]=1,l[t+12|0]=1,n=i[o>>2],k=i[n+4>>2],i[o>>2]=k,k&&(i[k+8>>2]=o),k=i[o+8>>2],i[n+8>>2]=k,i[k+(((o|0)!=i[k>>2])<<2)>>2]=n,i[n+4>>2]=o,i[o+8>>2]=n;break u}n=k,k=i[k+8>>2],k=i[(((n|0)==i[k>>2])<<2)+k>>2]}l[t+12|0]=1}G(n0)}n=i[w+64>>2];o:{u:{if(!n){t=w- -64|0,k=t;break u}for(;;){if(k=n,n=i[k+16>>2],(n|0)>6){if(t=k,n=i[k>>2],n)continue;break u}if((n|0)>=6)break o;if(n=i[k+4>>2],!n)break}t=k+4|0}n=U(52),i[n+16>>2]=6,o=i[E+4>>2],i[n+20>>2]=i[E>>2],i[n+24>>2]=o,o=i[E+12>>2],i[n+28>>2]=i[E+8>>2],i[n+32>>2]=o,o=i[E+20>>2],i[n+36>>2]=i[E+16>>2],i[n+40>>2]=o,o=i[E+28>>2],i[n+44>>2]=i[E+24>>2],i[n+48>>2]=o,i[n+8>>2]=k,i[n>>2]=0,i[n+4>>2]=0,i[t>>2]=n,k=i[i[w+60>>2]>>2],k&&(i[w+60>>2]=k,n=i[t>>2]),D1(i[w+64>>2],n),i[w+68>>2]=i[w+68>>2]+1}B=E+32|0,s[C+49|0]==1&&(l[i[A>>2]+40|0]=1),l[u+83|0]<0&&G(i[u+72>>2]),v1(u+48|0)}o:{if(!y||(k=i[y+4>>2],i[y+4>>2]=k-1,k))break o;V[i[i[y>>2]+8>>2]](y),g(y)}if(!p||(k=i[p+4>>2],i[p+4>>2]=k-1,k))break t;V[i[i[p>>2]+8>>2]](p),g(p)}t=i[e+48>>2],n=i[t+44>>2],n0=i[t+48>>2],n0&&(i[n0+4>>2]=i[n0+4>>2]+1,t=i[e+48>>2]),i[u+64>>2]=i[t+52>>2],e=i[t+56>>2],i[u+68>>2]=e,e&&(i[e+4>>2]=i[e+4>>2]+1),p4(u,n,r,u- -64|0,1668050025),t=0,w=0,e=i[u>>2];t:{if(!e||(e=N0(e,68572,69892),!e))break t;w=i[u+4>>2],w&&(i[w+4>>2]=i[w+4>>2]+1),i[i[A>>2]+80>>2]=Q[e+48>>1]|Q[e+50>>1]<<16}p4(u+48|0,n,r,u- -64|0,1835295606),e=i[u+48>>2];t:{if(!e||(h=N0(e,68572,70084),!h))break t;t=i[u+52>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),e=i[h+52>>2],o=i[A>>2],k=o,i[k+84>>2]=i[h+48>>2],i[k+88>>2]=e,k=h- -64|0,e=i[k+4>>2],i[o+100>>2]=i[k>>2],i[o+104>>2]=e,e=i[h+60>>2],i[o+92>>2]=i[h+56>>2],i[o+96>>2]=e,l[o+108|0]=1}if(p4(u+36|0,n,r,u- -64|0,1885434736),e=i[u+36>>2],!e||(k=N0(e,68572,69772),!k))break A;if(n=i[u+40>>2],n)break f;e=i[k+52>>2],r=i[A>>2],i[r+72>>2]=i[k+48>>2],i[r+76>>2]=e;break A}e=i[u+68>>2],i[f>>2]=i[u+64>>2],i[f+4>>2]=e,i[f+16>>2]=i[u+80>>2],e=i[u+76>>2],i[f+8>>2]=i[u+72>>2],i[f+12>>2]=e,i[u+72>>2]=0,i[u+76>>2]=0,i[u+80>>2]=0,v1(u+36|0)}l[u+83|0]<0&&G(i[u+72>>2]),e=i[u+52>>2];k:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break k;V[i[i[e>>2]+8>>2]](e),g(e)}k:{if(!y||(f=i[y+4>>2],i[y+4>>2]=f-1,f))break k;V[i[i[y>>2]+8>>2]](y),g(y)}if(!p||(f=i[p+4>>2],i[p+4>>2]=f-1,f))break r;V[i[i[p>>2]+8>>2]](p),g(p);break r}if(i[n+4>>2]=i[n+4>>2]+1,e=i[k+52>>2],r=i[A>>2],i[r+72>>2]=i[k+48>>2],i[r+76>>2]=e,e=i[n+4>>2],i[n+4>>2]=e-1,e)break A;V[i[i[n>>2]+8>>2]](n),g(n)}r=i[u+40>>2];A:{if(!r||(e=i[r+4>>2],i[r+4>>2]=e-1,e))break A;V[i[i[r>>2]+8>>2]](r),g(r)}A:{if(!t||(e=i[t+4>>2],i[t+4>>2]=e-1,e))break A;V[i[i[t>>2]+8>>2]](t),g(t)}r=i[u+52>>2];A:{if(!r||(e=i[r+4>>2],i[r+4>>2]=e-1,e))break A;V[i[i[r>>2]+8>>2]](r),g(r)}A:{if(!w||(e=i[w+4>>2],i[w+4>>2]=e-1,e))break A;V[i[i[w>>2]+8>>2]](w),g(w)}r=i[u+4>>2];A:{if(!r||(e=i[r+4>>2],i[r+4>>2]=e-1,e))break A;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[u+68>>2];A:{if(!r||(e=i[r+4>>2],i[r+4>>2]=e-1,e))break A;V[i[i[r>>2]+8>>2]](r),g(r)}A:{if(!n0||(e=i[n0+4>>2],i[n0+4>>2]=e-1,e))break A;V[i[i[n0>>2]+8>>2]](n0),g(n0)}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,e=f+8|0,l[78275]>=0){f=i[19567],i[e>>2]=i[19566],i[e+4>>2]=f,i[e+8>>2]=i[19568];break r}_0(e,i[19566],i[19567]);break r}e=i[u+40>>2];e:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break e;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[u+52>>2];e:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break e;V[i[i[e>>2]+8>>2]](e),g(e)}if(f=i[u>>2],!f)break r;if(t=i[u+4>>2],r=f,(t|0)!=(f|0)){for(;;){r=i[t-4>>2];e:{if(!r||(e=i[r+4>>2],i[r+4>>2]=e-1,e))break e;V[i[i[r>>2]+8>>2]](r),g(r)}if(t=t-8|0,(f|0)==(t|0))break}r=i[u>>2]}i[u+4>>2]=f,G(r)}e=i[u+92>>2];r:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break r;V[i[i[e>>2]+8>>2]](e),g(e)}if(l[u+115|0]>=0)break i;G(i[u+104>>2])}i:{if(!G0||(f=i[G0+4>>2],i[G0+4>>2]=f-1,f))break i;V[i[i[G0>>2]+8>>2]](G0),g(G0)}l[u+127|0]<0&&G(i[u+116>>2]),B=u+128|0}function hA(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0,r2=0,n2=0,s2=0,W2=0;if(t=B-272|0,B=t,H6(e+16|0,i[e+20>>2]),I=e+20|0,i[e+16>>2]=I,i[e+20>>2]=0,i[e+24>>2]=0,A=i[e+32>>2],k=i[e+28>>2],(A|0)!=(k|0))for(;;){r=i[A-4>>2];i:{if(!r||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(k|0)==(A|0))break}i[e+32>>2]=k,r=i[e+44>>2],i[e+40>>2]=0,i[e+44>>2]=0;i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(RA(t+260|0,i[e+48>>2]),k=i[t+260>>2],u=i[t+264>>2],(k|0)!=(u|0))for(_=e+28|0;;){o=i[k>>2],fe(t+80|0,i[e+48>>2],o),A=i[t+80>>2];i:{if(A){n=l[A+75|0],r=(n|0)<0;r:{if(((r?i[A+68>>2]:n)|0)!=4)break r;r=r?i[A+64>>2]:A- -64|0,h=s[r+1|0]<<8,w=s[r+2|0]<<16|s[r+3|0]<<24;e:{if((s[r|0]|h|w)==828601960||(n=w|(h|s[r|0]),(n|0)==1684632167|(n|0)==1852138601|((n|0)==1819701097|(n|0)==825259617))||(n|0)==1768124021|(n|0)==828601974|(n|0)==1734701162)break e;A:{if((n|0)!=1701669229||(w=l[A+99|0],n=(w|0)<0,((n?i[A+92>>2]:w)|0)!=10))break A;if(A=A+88|0,!K2(n?i[A>>2]:A,8704,10))break e}if(r=s[r|0]|s[r+1|0]<<8|(s[r+2|0]<<16|s[r+3|0]<<24),(r|0)==829108842)break e;if((r|0)!=1768649581)break r}A=U(360),r=A,i[r+16>>2]=0,i[r+20>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,l[r+152|0]=0,i[r+36>>2]=o,i[r+32>>2]=e,i[r+28>>2]=34648,i[r+40>>2]=0,i[r+44>>2]=0,i[r+52>>2]=0,i[r+56>>2]=0,i[r+68>>2]=0,i[r+72>>2]=0,i[r+80>>2]=0,i[r+84>>2]=0,i[r+156>>2]=0,i[r+160>>2]=0,i[r>>2]=72656,i[r+24>>2]=0,X[r+48>>1]=0,X[r+58>>1]=0,X[r+60>>1]=0,X[r+62>>1]=0,X[r+64>>1]=0,l[r+76|0]=0,l[r+88|0]=0,i[r+204>>2]=0,i[r+196>>2]=0,i[r+200>>2]=0,i[r+188>>2]=0,i[r+192>>2]=0,i[r+180>>2]=0,i[r+184>>2]=0,i[r+172>>2]=0,i[r+176>>2]=0,i[r+164>>2]=0,i[r+168>>2]=0,i[r+212>>2]=0,i[r+216>>2]=0,l[r+208|0]=1,l[r+217|0]=0,l[r+218|0]=0,l[r+219|0]=0,l[r+220|0]=0,l[r+221|0]=0,l[r+222|0]=0,l[r+223|0]=0,l[r+224|0]=0,i[r+232>>2]=0,i[r+236>>2]=0,i[r+240>>2]=0,i[r+244>>2]=0,i[r+248>>2]=0,i[r+252>>2]=0,i[r+256>>2]=0,i[r+260>>2]=0,i[r+264>>2]=0,i[r+268>>2]=0,l[r+272|0]=0,B0(r+280|0,0,80),i[r+296>>2]=0,i[r+300>>2]=0,l[r+292|0]=1,i[r+304>>2]=0,i[r+308>>2]=0,i[r+312>>2]=0,i[r+316>>2]=0,i[r+328>>2]=0,i[r+332>>2]=0,i[r+320>>2]=0,i[r+324>>2]=1072693248,i[r+336>>2]=0,i[r+340>>2]=0,i[r+344>>2]=0,i[r+348>>2]=0,i[r+352>>2]=0,i[r+96>>2]=0,i[r+100>>2]=0,i[r+104>>2]=0,i[r+108>>2]=0,i[r+112>>2]=0,i[r+116>>2]=0,i[r+120>>2]=0,i[r+124>>2]=0,i[r+128>>2]=0,i[r+132>>2]=0,i[r+136>>2]=0,i[r+140>>2]=0,i[r+144>>2]=0,i[r+148>>2]=0,i[t+228>>2]=r,n=r+16|0,i[t+224>>2]=n,i[r+4>>2]=i[r+4>>2]+1,C=I,r=I;e:{A:{w=i[e+20>>2];f:{if(!w)break f;for(;;){if(r=w,w=i[r+16>>2],w>>>0>o>>>0){if(C=r,w=i[r>>2],w)continue;break f}if(o>>>0<=w>>>0)break A;if(w=i[r+4>>2],!w)break}C=r+4|0}w=U(28),i[w+24>>2]=A,i[w+20>>2]=n,i[w+16>>2]=o,i[w+8>>2]=r,i[w>>2]=0,i[w+4>>2]=0,i[C>>2]=w,r=i[i[e+16>>2]>>2],r&&(i[e+16>>2]=r,w=i[C>>2]),D1(i[e+20>>2],w),i[e+24>>2]=i[e+24>>2]+1;break e}if(r=i[A+4>>2],i[A+4>>2]=r-1,r)break e;V[i[i[A>>2]+8>>2]](A),g(A)}if(!s[i[t+80>>2]+124|0]){e:{if((o|0)!=i[i[i[e+48>>2]+84>>2]+56>>2]||(r=i[t+224>>2],l[r+32|0]=1,A=i[t+228>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[e+40>>2]=r,r=i[e+44>>2],i[e+44>>2]=A,!r)||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break e;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[e+32>>2];e:{if(r>>>0>2]){i[r>>2]=i[t+224>>2],A=i[t+228>>2],i[r+4>>2]=A,A&&(i[A+4>>2]=i[A+4>>2]+1),r=r+8|0;break e}r=Q2(_,t+224|0)}i[e+32>>2]=r}if(r=i[t+228>>2],!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(r=i[t+84>>2],!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r);break i}if(r=i[t+84>>2],!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(k=k+4|0,(u|0)==(k|0))break}i:{r:{e:{if(!i[e+40>>2]){if(e=U(48),i[t+80>>2]=e,i[t+84>>2]=42,i[t+88>>2]=-2147483600,r=s[10898]|s[10899]<<8|(s[10900]<<16|s[10901]<<24),k=s[10894]|s[10895]<<8|(s[10896]<<16|s[10897]<<24),l[e|0]=k,l[e+1|0]=k>>>8,l[e+2|0]=k>>>16,l[e+3|0]=k>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+42|0]=0,r=s[10934]|s[10935]<<8,l[e+40|0]=r,l[e+41|0]=r>>>8,r=s[10930]|s[10931]<<8|(s[10932]<<16|s[10933]<<24),k=s[10926]|s[10927]<<8|(s[10928]<<16|s[10929]<<24),l[e+32|0]=k,l[e+33|0]=k>>>8,l[e+34|0]=k>>>16,l[e+35|0]=k>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[10922]|s[10923]<<8|(s[10924]<<16|s[10925]<<24),k=s[10918]|s[10919]<<8|(s[10920]<<16|s[10921]<<24),l[e+24|0]=k,l[e+25|0]=k>>>8,l[e+26|0]=k>>>16,l[e+27|0]=k>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[10914]|s[10915]<<8|(s[10916]<<16|s[10917]<<24),k=s[10910]|s[10911]<<8|(s[10912]<<16|s[10913]<<24),l[e+16|0]=k,l[e+17|0]=k>>>8,l[e+18|0]=k>>>16,l[e+19|0]=k>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[10906]|s[10907]<<8|(s[10908]<<16|s[10909]<<24),k=s[10902]|s[10903]<<8|(s[10904]<<16|s[10905]<<24),l[e+8|0]=k,l[e+9|0]=k>>>8,l[e+10|0]=k>>>16,l[e+11|0]=k>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,2e3,t+80|0),l[t+91|0]>=0)break e;G(i[t+80>>2]);break e}if(A=i[e+16>>2],(I|0)!=(A|0))for(S=i[13631],n0=S-12|0,d=i[13632],L=d-12|0,A0=i[13635],p0=A0-12|0,f0=i[13633],X0=f0-12|0,h0=i[13640],G0=i[13639],I0=i[13637],Q0=i[13636],F0=i[13634],D=t+92|0,R=t+88|0,Y0=t+144|0;;){i[t+256>>2]=0,i[t+248>>2]=0,i[t+252>>2]=0,I1(t+224|0,i[e+48>>2],i[A+16>>2],t+248|0);A:{if(i[t+224>>2]){r=i[t+228>>2],i[f>>2]=i[t+224>>2],i[f+4>>2]=r,i[f+16>>2]=i[t+240>>2],r=i[t+236>>2],i[f+8>>2]=i[t+232>>2],i[f+12>>2]=r,i[t+232>>2]=0,i[t+236>>2]=0,C=0,i[t+240>>2]=0;break A}Z=0;f:{if(r=i[t+248>>2],p=i[t+252>>2],(r|0)!=(p|0)){for(;;){k:{if(k=i[r>>2],!k||(n=N0(k,68572,68596),!n))break k;k=i[r+4>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),o=i[n+56>>2],u=i[n+60>>2],_=o>>>0<2147483647&u>>>0<2147483647;n:{if(!_){i[t+80>>2]=f0,i[t+88>>2]=54496,i[t+144>>2]=54516,n=t+80|0,i[n+i[X0>>2]>>2]=F0,i[t+84>>2]=0,w=n+i[i[t+80>>2]-12>>2]|0,b0(w,D),i[w+72>>2]=0,i[w+76>>2]=-1,i[t+88>>2]=A0,i[R+i[p0>>2]>>2]=Q0,i[t+80>>2]=d,i[n+i[L>>2]>>2]=I0,i[t+144>>2]=54516,i[t+80>>2]=54476,i[t+88>>2]=54496,n=$0(D),i[n>>2]=53552,i[t+132>>2]=0,i[t+136>>2]=0,i[t+124>>2]=0,i[t+128>>2]=0,i[t+140>>2]=24,x(n4(x(L0(x(L0(x(R,19153,11),o),2490,1),u),19120,32),i[e+64>>2],i[e+68>>2]),31338,1),o=t+68|0,i2(o,n),r0(f,6,1e3,o),l[t+79|0]<0&&G(i[t+68>>2]),i[t+80>>2]=S,i[i[n0>>2]+(t+80|0)>>2]=G0,i[t+88>>2]=h0,i[n>>2]=53552,l[t+135|0]<0&&G(i[t+124>>2]),K0(n),T0(Y0);break n}n=i[A+20>>2],i[n+28>>2]=u,i[n+24>>2]=o,Z=1}n:{if(!k||(n=i[k+4>>2],i[k+4>>2]=n-1,n))break n;if(V[i[i[k>>2]+8>>2]](k),g(k),_)break k;C=0;break A}if(_)break k;C=0;break A}if(r=r+8|0,(p|0)==(r|0))break}if(Z)break f}r=U(32),i[t+80>>2]=r,i[t+84>>2]=28,i[t+88>>2]=-2147483616,k=s[1305]|s[1306]<<8|(s[1307]<<16|s[1308]<<24),n=s[1301]|s[1302]<<8|(s[1303]<<16|s[1304]<<24),l[r|0]=n,l[r+1|0]=n>>>8,l[r+2|0]=n>>>16,l[r+3|0]=n>>>24,l[r+4|0]=k,l[r+5|0]=k>>>8,l[r+6|0]=k>>>16,l[r+7|0]=k>>>24,l[r+28|0]=0,k=s[1325]|s[1326]<<8|(s[1327]<<16|s[1328]<<24),l[r+24|0]=k,l[r+25|0]=k>>>8,l[r+26|0]=k>>>16,l[r+27|0]=k>>>24,k=s[1321]|s[1322]<<8|(s[1323]<<16|s[1324]<<24),n=s[1317]|s[1318]<<8|(s[1319]<<16|s[1320]<<24),l[r+16|0]=n,l[r+17|0]=n>>>8,l[r+18|0]=n>>>16,l[r+19|0]=n>>>24,l[r+20|0]=k,l[r+21|0]=k>>>8,l[r+22|0]=k>>>16,l[r+23|0]=k>>>24,k=s[1313]|s[1314]<<8|(s[1315]<<16|s[1316]<<24),n=s[1309]|s[1310]<<8|(s[1311]<<16|s[1312]<<24),l[r+8|0]=n,l[r+9|0]=n>>>8,l[r+10|0]=n>>>16,l[r+11|0]=n>>>24,l[r+12|0]=k,l[r+13|0]=k>>>8,l[r+14|0]=k>>>16,l[r+15|0]=k>>>24,r0(f,2,137,t+80|0),l[t+91|0]<0&&G(i[t+80>>2]),C=0;break A}if(C=1,r=i[t+248>>2],h=i[t+252>>2],(r|0)==(h|0))break A;for(;;){Z=i[r>>2];f:{if(!Z)break f;k=N0(Z,68572,73072);k:{if(k){w=i[r+4>>2],w&&(i[w+4>>2]=i[w+4>>2]+1),i[t+80>>2]=i[k+48>>2],k=i[k+52>>2],i[t+84>>2]=k,k&&(i[k+4>>2]=i[k+4>>2]+1),jA(i[A+20>>2],t+80|0),k=i[t+84>>2];n:{if(!k||(n=i[k+4>>2],i[k+4>>2]=n-1,n))break n;V[i[i[k>>2]+8>>2]](k),g(k)}if(!w)break f;if(k=i[w+4>>2],i[w+4>>2]=k-1,!k)break k;break f}w=0,k=N0(Z,68572,69952);n:{if(k){w=i[r+4>>2],w&&(i[w+4>>2]=i[w+4>>2]+1),u=i[A+20>>2],n=i[k+100>>2],i[t+120>>2]=i[k+96>>2],i[t+124>>2]=n,n=i[k+92>>2],i[t+112>>2]=i[k+88>>2],i[t+116>>2]=n,n=i[k+84>>2],i[t+104>>2]=i[k+80>>2],i[t+108>>2]=n,n=i[k+76>>2],i[t+96>>2]=i[k+72>>2],i[t+100>>2]=n,n=k- -64|0,o=i[n+4>>2],i[R>>2]=i[n>>2],i[R+4>>2]=o,n=i[k+60>>2],i[t+80>>2]=i[k+56>>2],i[t+84>>2]=n,_=t+80|0,o=B-48|0,B=o,l[u+208|0]=1,ei(o+8|0,i[i[u+16>>2]+48>>2],i[u+20>>2]),k=i[o+8>>2],k?n=i[k+56>>2]:n=0,k=i[o+12>>2];t:{if(!k||(p=i[k+4>>2],i[k+4>>2]=p-1,p))break t;V[i[i[k>>2]+8>>2]](k),g(k)}ei(o+8|0,i[i[u+16>>2]+48>>2],i[u+20>>2]),k=i[o+8>>2],k?k=i[k+60>>2]:k=0,p=i[o+12>>2];t:{if(!p||(Z=i[p+4>>2],i[p+4>>2]=Z-1,Z))break t;V[i[i[p>>2]+8>>2]](p),g(p)}if(E=+(n|0),H=i0[_>>3]*E,i0[o+8>>3]=H,c0=+(k|0),i0[o+16>>3]=s[_+24|0]?i0[_+32>>3]*c0:H,i0[o+24>>3]=i0[_+8>>3]*E,i0[o+32>>3]=i0[_+16>>3]*c0,i0[o+40>>3]=i0[_+40>>3],k=i[o+44>>2],i[u+248>>2]=i[o+40>>2],i[u+252>>2]=k,k=i[o+36>>2],i[u+240>>2]=i[o+32>>2],i[u+244>>2]=k,k=i[o+28>>2],i[u+232>>2]=i[o+24>>2],i[u+236>>2]=k,k=i[o+20>>2],i[u+224>>2]=i[o+16>>2],i[u+228>>2]=k,k=i[o+12>>2],i[u+216>>2]=i[o+8>>2],i[u+220>>2]=k,B=o+48|0,Z=i[r>>2],!Z)break n}if(o=N0(Z,68572,70012),!o||(k=i[r+4>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),n=i[A+20>>2],u=t+80|0,l0(u,o+56|0,80),l[n+256|0]=1,l0(n+264|0,u,76),!k)||(n=i[k+4>>2],i[k+4>>2]=n-1,n))break n;V[i[i[k>>2]+8>>2]](k),g(k)}if(!w||(k=i[w+4>>2],i[w+4>>2]=k-1,k))break f}V[i[i[w>>2]+8>>2]](w),g(w)}if(r=r+8|0,(h|0)==(r|0))break}if(r=i[t+248>>2],j=i[t+252>>2],(r|0)==(j|0))break A;for(;;){k=i[r>>2];f:{if(!k)break f;Z=0,w=0,y=N0(k,68572,69592);k:{if(y){if(w=i[r+4>>2],w&&(i[w+4>>2]=i[w+4>>2]+1),o=i[y+48>>2],k=i[y+52>>2],u=(k|0)/2|0,n=o+u|0,v=(o>>31)+(u>>31)|0,k=o2(n,n>>>0>>0?v+1|0:v,k,k>>31),_=i[y+56>>2],n=i[y+60>>2],p=(n|0)/2|0,o=_+p|0,h=(_>>31)+(p>>31)|0,u=i[A+20>>2],s2=u,W2=o2(o,o>>>0

>>0?h+1|0:h,n,n>>31),i[s2+28>>2]=W2,i[u+24>>2]=k,J=i[A+20>>2],s[J+208|0]==1){a=i[J+28>>2],k=i[J+24>>2],n=k-1|0,k=k+65535>>>0<131073,_=k?n:(n|0)/2|0,n=i[y+64>>2],u=n>>31,p=k?2:1,o=i[y+68>>2];n:{if((p|0)==(o|0)){if(h=(_>>31)+u|0,k=_,_=n+_|0,h=k>>>0>_>>>0?h+1|0:h,k=h,(k-(_>>>0<2147483648)|0)==-1)break n;h=k>>31,n=_+(h|1)|0,h=k+h|0,_=o2(n,n>>>0<_>>>0?h+1|0:h,2,0),p=1;break n}if(p=o,W=o>>31,_=q0(o,W,_,_>>31),S0=w0,o=k,q=_,h=n,_=k&31,(k&63)>>>0>=32?(v=n<<_,k=0):(v=(1<<_)-1&h>>>32-_|u<<_,k=h<<_),_=q+k|0,h=v+S0|0,h=k>>>0>_>>>0?h+1|0:h,k=h,v=(k-(_>>>0<2147483648)|0)==-1,u=p,n=o&31,(o&63)>>>0>=32?(h=u<>>32-n|W<>>0<2147483648)|0)==-1&v))for(;h=o>>31,u=n+(h|1)|0,h=o+h|0,n=o2(u,n>>>0>u>>>0?h+1|0:h,2,0),o=w0,p=o-(n>>>0<2147483648)|0,h=k>>31,u=_+(h|1)|0,h=k+h|0,_=o2(u,u>>>0<_>>>0?h+1|0:h,2,0),k=w0,(k-(_>>>0<2147483648)&p)!=-1;);p=n}if(o=i[y+48>>2],k=i[y+52>>2],n=o-k|0,u=k>>31,o=(o>>31)-(u+(k>>>0>o>>>0)|0)|0,h=o-(n>>>0<2147483648)|0,(h|0)==-2|h>>>0<4294967294){for(;h=u>>31,W=k+(h|1)|0,h=u+h|0,k=o2(W,k>>>0>W>>>0?h+1|0:h,2,0),u=w0,h=o>>31,W=n+(h|1)|0,h=o+h|0,n=o2(W,n>>>0>W>>>0?h+1|0:h,2,0),o=w0,(o-(n>>>0<2147483648)|0)!=-1;);u=k>>31}if(h=u<<1|k>>>31,k=k<<1,u=h,h=u-(k>>>0<2147483648)|0,(h|0)==-2|h>>>0<4294967294)for(;h=o>>31,W=n+(h|1)|0,v=o+h|0,n=o2(W,n>>>0>W>>>0?v+1|0:v,2,0),o=w0,h=u>>31,W=k+(h|1)|0,h=u+h|0,k=o2(W,k>>>0>W>>>0?h+1|0:h,2,0),u=w0,(u-(k>>>0<2147483648)|0)!=-1;);o=_>>31;n:{if((k|0)==(p|0)){if(o=o-((n>>31)+(n>>>0>_>>>0)|0)|0,n=_-n|0,(o-(n>>>0<2147483648)|0)==-1)break n;for(k=p,u=k>>31;h=u>>31,_=k+(h|1)|0,h=u+h|0,k=o2(_,k>>>0>_>>>0?h+1|0:h,2,0),u=w0,h=o>>31,_=n+(h|1)|0,h=o+h|0,n=o2(_,n>>>0>_>>>0?h+1|0:h,2,0),o=w0,(o-(n>>>0<2147483648)|0)!=-1;);p=k;break n}if(o=q0(k,u,_,o),_=w0,h=p>>31,W=q0(p,h,n,n>>31),n=o-W|0,o=_-(w0+(o>>>0>>0)|0)|0,k=q0(k,u,p,h),u=w0,(o-(n>>>0<2147483648)&u-(k>>>0<2147483648))!=-1)for(;h=u>>31,_=k+(h|1)|0,h=u+h|0,k=o2(_,k>>>0>_>>>0?h+1|0:h,2,0),u=w0,p=u-(k>>>0<2147483648)|0,h=o>>31,_=n+(h|1)|0,h=o+h|0,n=o2(_,n>>>0>_>>>0?h+1|0:h,2,0),o=w0,(o-(n>>>0<2147483648)&p)!=-1;);p=k}i0[J+232>>3]=i0[J+232>>3]-+(n|0)/+(p|0),k=a-1|0,h=k,n=(k|0)/2|0,k=a+65535>>>0<131073,_=k?h:n,n=i[y+72>>2],u=n>>31,p=k?2:1,o=i[y+76>>2];n:{if((p|0)==(o|0)){if(h=(_>>31)+u|0,k=_,_=n+_|0,h=k>>>0>_>>>0?h+1|0:h,k=h,(k-(_>>>0<2147483648)|0)==-1)break n;h=k>>31,n=_+(h|1)|0,h=k+h|0,_=o2(n,n>>>0<_>>>0?h+1|0:h,2,0),p=1;break n}if(p=o,W=o>>31,_=q0(o,W,_,_>>31),a=w0,o=k,q=_,h=n,_=k&31,(k&63)>>>0>=32?(v=n<<_,k=0):(v=(1<<_)-1&h>>>32-_|u<<_,k=h<<_),_=q+k|0,h=v+a|0,h=k>>>0>_>>>0?h+1|0:h,k=h,v=(k-(_>>>0<2147483648)|0)==-1,u=p,n=o&31,(o&63)>>>0>=32?(h=u<>>32-n|W<>>0<2147483648)|0)==-1&v))for(;h=o>>31,u=n+(h|1)|0,h=o+h|0,n=o2(u,n>>>0>u>>>0?h+1|0:h,2,0),o=w0,p=o-(n>>>0<2147483648)|0,h=k>>31,u=_+(h|1)|0,h=k+h|0,_=o2(u,u>>>0<_>>>0?h+1|0:h,2,0),k=w0,(k-(_>>>0<2147483648)&p)!=-1;);p=n}if(o=i[y+56>>2],k=i[y+60>>2],n=o-k|0,u=k>>31,o=(o>>31)-(u+(k>>>0>o>>>0)|0)|0,h=o-(n>>>0<2147483648)|0,(h|0)==-2|h>>>0<4294967294){for(;h=u>>31,W=k+(h|1)|0,h=u+h|0,k=o2(W,k>>>0>W>>>0?h+1|0:h,2,0),u=w0,h=o>>31,W=n+(h|1)|0,h=o+h|0,n=o2(W,n>>>0>W>>>0?h+1|0:h,2,0),o=w0,(o-(n>>>0<2147483648)|0)!=-1;);u=k>>31}if(h=u<<1|k>>>31,k=k<<1,u=h,h=u-(k>>>0<2147483648)|0,(h|0)==-2|h>>>0<4294967294)for(;h=o>>31,W=n+(h|1)|0,v=o+h|0,n=o2(W,n>>>0>W>>>0?v+1|0:v,2,0),o=w0,h=u>>31,W=k+(h|1)|0,h=u+h|0,k=o2(W,k>>>0>W>>>0?h+1|0:h,2,0),u=w0,(u-(k>>>0<2147483648)|0)!=-1;);o=_>>31;n:{if((k|0)==(p|0)){if(o=o-((n>>31)+(n>>>0>_>>>0)|0)|0,n=_-n|0,(o-(n>>>0<2147483648)|0)==-1)break n;for(k=p,u=k>>31;h=u>>31,_=k+(h|1)|0,h=u+h|0,k=o2(_,k>>>0>_>>>0?h+1|0:h,2,0),u=w0,h=o>>31,_=n+(h|1)|0,h=o+h|0,n=o2(_,n>>>0>_>>>0?h+1|0:h,2,0),o=w0,(o-(n>>>0<2147483648)|0)!=-1;);p=k;break n}if(o=q0(k,u,_,o),_=w0,h=p>>31,W=q0(p,h,n,n>>31),n=o-W|0,o=_-(w0+(o>>>0>>0)|0)|0,k=q0(k,u,p,h),u=w0,(o-(n>>>0<2147483648)&u-(k>>>0<2147483648))!=-1)for(;h=u>>31,_=k+(h|1)|0,h=u+h|0,k=o2(_,k>>>0>_>>>0?h+1|0:h,2,0),u=w0,p=u-(k>>>0<2147483648)|0,h=o>>31,_=n+(h|1)|0,h=o+h|0,n=o2(_,n>>>0>_>>>0?h+1|0:h,2,0),o=w0,(o-(n>>>0<2147483648)&p)!=-1;);p=k}i0[J+240>>3]=i0[J+240>>3]-+(n|0)/+(p|0)}if(k=i[r>>2],!k)break k}n=N0(k,68572,69532);n:{if(!n)break n;Z=i[r+4>>2],Z&&(i[Z+4>>2]=i[Z+4>>2]+1),k=i[A+20>>2],p=i[k+28>>2],_=24,u=8;t:switch(i[n+48>>2]){case 1:i0[k+216>>3]=-i0[k+216>>3],p=i[k+24>>2],_=16,u=32;break;case 0:break t;default:break n}k=k+216|0,n=k+u|0,i0[n>>3]=-i0[n>>3],k=k+_|0,i0[k>>3]=+(p-1|0)-i0[k>>3]}k=i[r>>2];n:{if(!k||(n=N0(k,68572,69472),!n)||(k=i[r+4>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),n=i[n+48>>2],(n|0)!=270&(n|0)!=90||(n=i[A+20>>2],o=i[n+28>>2],i[n+28>>2]=i[n+24>>2],i[n+24>>2]=o),!k)||(n=i[k+4>>2],i[k+4>>2]=n-1,n))break n;V[i[i[k>>2]+8>>2]](k),g(k)}if(!Z||(k=i[Z+4>>2],i[Z+4>>2]=k-1,k))break k;V[i[i[Z>>2]+8>>2]](Z),g(Z)}if(!w||(k=i[w+4>>2],i[w+4>>2]=k-1,k))break f;V[i[i[w>>2]+8>>2]](w),g(w)}if(r=r+8|0,(j|0)==(r|0))break}}if(l[t+243|0]<0&&G(i[t+232>>2]),k=i[t+248>>2],k){if(r=i[t+252>>2],w=k,(r|0)!=(k|0)){for(;;){n=i[r-4>>2];A:{if(!n||(o=i[n+4>>2],i[n+4>>2]=o-1,o))break A;V[i[i[n>>2]+8>>2]](n),g(n)}if(r=r-8|0,(k|0)==(r|0))break}w=i[t+248>>2]}i[t+252>>2]=k,G(w)}if(!C)break e;w=A,r=i[A+4>>2];A:{if(r){for(;;)if(A=r,r=i[r>>2],!r)break A}for(;A=i[w+8>>2],r=i[A>>2]!=(w|0),w=A,!!r;);}if((A|0)==(I|0))break}r=i[e+48>>2],R=i[r+76>>2],D=i[r+80>>2],D&&(i[D+4>>2]=i[D+4>>2]+1),k=i[e+16>>2];A:{if(!(!R|(I|0)==(k|0))){for(d=i[13631],L=d-12|0,A0=i[13632],p0=A0-12|0,f0=i[13635],X0=f0-12|0,h0=i[13633],G0=h0-12|0,I0=i[13640],Q0=i[13639],F0=i[13637],Y0=i[13636],j=i[13634],n0=t+92|0,a=t+88|0,S0=t+144|0;;){oe(t+248|0,R,i[i[k+20>>2]+20>>2]),C=i[t+248>>2],r2=i[t+252>>2];f:{if((C|0)==(r2|0)){Z=14;break f}y=k+20|0;k:{for(;;){n:{t:{o:{u:{l:{s:{h:{w:{_:{v:{Z:{m:{B:{if(r=i[C+16>>2],(r|0)!=1635088492){if((r|0)!=1953000802)break n;i[t+88>>2]=0,i[t+80>>2]=0,i[t+84>>2]=0,r=i[C+48>>2],A=i[C+44>>2],o=(r|0)==(A|0);p:{W:{if(o)break W;if(r=r-A|0,(r|0)<0)break B;if(n=U(r),i[t+80>>2]=n,u=r+n|0,i[t+88>>2]=u,l0(n,A,r),i[t+84>>2]=u,o)break W;for(;;){o=i[n>>2],_=i[y>>2],l[_+33|0]=1;G:{r=I,A=i[r>>2];C:{if(!A)break C;for(;w=o>>>0>k0[A+16>>2],r=w?r:A,A=i[(w<<2)+A>>2],!!A;);if((r|0)==(I|0))break C;if(o>>>0>=k0[r+16>>2])break G}r=U(48),i[t+224>>2]=r,i[t+228>>2]=41,i[t+232>>2]=-2147483600,A=s[10941]|s[10942]<<8|(s[10943]<<16|s[10944]<<24),n=s[10937]|s[10938]<<8|(s[10939]<<16|s[10940]<<24),l[r|0]=n,l[r+1|0]=n>>>8,l[r+2|0]=n>>>16,l[r+3|0]=n>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+41|0]=0,l[r+40|0]=s[10977],A=s[10973]|s[10974]<<8|(s[10975]<<16|s[10976]<<24),n=s[10969]|s[10970]<<8|(s[10971]<<16|s[10972]<<24),l[r+32|0]=n,l[r+33|0]=n>>>8,l[r+34|0]=n>>>16,l[r+35|0]=n>>>24,l[r+36|0]=A,l[r+37|0]=A>>>8,l[r+38|0]=A>>>16,l[r+39|0]=A>>>24,A=s[10965]|s[10966]<<8|(s[10967]<<16|s[10968]<<24),n=s[10961]|s[10962]<<8|(s[10963]<<16|s[10964]<<24),l[r+24|0]=n,l[r+25|0]=n>>>8,l[r+26|0]=n>>>16,l[r+27|0]=n>>>24,l[r+28|0]=A,l[r+29|0]=A>>>8,l[r+30|0]=A>>>16,l[r+31|0]=A>>>24,A=s[10957]|s[10958]<<8|(s[10959]<<16|s[10960]<<24),n=s[10953]|s[10954]<<8|(s[10955]<<16|s[10956]<<24),l[r+16|0]=n,l[r+17|0]=n>>>8,l[r+18|0]=n>>>16,l[r+19|0]=n>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[10949]|s[10950]<<8|(s[10951]<<16|s[10952]<<24),n=s[10945]|s[10946]<<8|(s[10947]<<16|s[10948]<<24),l[r+8|0]=n,l[r+9|0]=n>>>8,l[r+10|0]=n>>>16,l[r+11|0]=n>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(f,2,2e3,t+224|0),l[t+235|0]<0&&G(i[t+224>>2]),r=0;break p}if(r=i[r+20>>2],s[r+33|0]==1){r=U(40),i[t+224>>2]=r,i[t+228>>2]=38,i[t+232>>2]=-2147483608,A=s[7553]|s[7554]<<8|(s[7555]<<16|s[7556]<<24),n=s[7549]|s[7550]<<8|(s[7551]<<16|s[7552]<<24),l[r|0]=n,l[r+1|0]=n>>>8,l[r+2|0]=n>>>16,l[r+3|0]=n>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+38|0]=0,A=s[7583]|s[7584]<<8|(s[7585]<<16|s[7586]<<24),n=s[7579]|s[7580]<<8|(s[7581]<<16|s[7582]<<24),l[r+30|0]=n,l[r+31|0]=n>>>8,l[r+32|0]=n>>>16,l[r+33|0]=n>>>24,l[r+34|0]=A,l[r+35|0]=A>>>8,l[r+36|0]=A>>>16,l[r+37|0]=A>>>24,A=s[7577]|s[7578]<<8|(s[7579]<<16|s[7580]<<24),n=s[7573]|s[7574]<<8|(s[7575]<<16|s[7576]<<24),l[r+24|0]=n,l[r+25|0]=n>>>8,l[r+26|0]=n>>>16,l[r+27|0]=n>>>24,l[r+28|0]=A,l[r+29|0]=A>>>8,l[r+30|0]=A>>>16,l[r+31|0]=A>>>24,A=s[7569]|s[7570]<<8|(s[7571]<<16|s[7572]<<24),n=s[7565]|s[7566]<<8|(s[7567]<<16|s[7568]<<24),l[r+16|0]=n,l[r+17|0]=n>>>8,l[r+18|0]=n>>>16,l[r+19|0]=n>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[7561]|s[7562]<<8|(s[7563]<<16|s[7564]<<24),n=s[7557]|s[7558]<<8|(s[7559]<<16|s[7560]<<24),l[r+8|0]=n,l[r+9|0]=n>>>8,l[r+10|0]=n>>>16,l[r+11|0]=n>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(f,2,2e3,t+224|0),l[t+235|0]<0&&G(i[t+224>>2]),r=0;break p}if((r|0)==(_|0)){r=U(40),i[t+224>>2]=r,i[t+228>>2]=34,i[t+232>>2]=-2147483608,A=s[12484]|s[12485]<<8|(s[12486]<<16|s[12487]<<24),n=s[12480]|s[12481]<<8|(s[12482]<<16|s[12483]<<24),l[r|0]=n,l[r+1|0]=n>>>8,l[r+2|0]=n>>>16,l[r+3|0]=n>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+34|0]=0,A=s[12512]|s[12513]<<8,l[r+32|0]=A,l[r+33|0]=A>>>8,A=s[12508]|s[12509]<<8|(s[12510]<<16|s[12511]<<24),n=s[12504]|s[12505]<<8|(s[12506]<<16|s[12507]<<24),l[r+24|0]=n,l[r+25|0]=n>>>8,l[r+26|0]=n>>>16,l[r+27|0]=n>>>24,l[r+28|0]=A,l[r+29|0]=A>>>8,l[r+30|0]=A>>>16,l[r+31|0]=A>>>24,A=s[12500]|s[12501]<<8|(s[12502]<<16|s[12503]<<24),n=s[12496]|s[12497]<<8|(s[12498]<<16|s[12499]<<24),l[r+16|0]=n,l[r+17|0]=n>>>8,l[r+18|0]=n>>>16,l[r+19|0]=n>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[12492]|s[12493]<<8|(s[12494]<<16|s[12495]<<24),n=s[12488]|s[12489]<<8|(s[12490]<<16|s[12491]<<24),l[r+8|0]=n,l[r+9|0]=n>>>8,l[r+10|0]=n>>>16,l[r+11|0]=n>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(f,2,2e3,t+224|0),l[t+235|0]<0&&G(i[t+224>>2]),r=0;break p}A=i[r+40>>2];G:{if(A>>>0>2]){i[A>>2]=_,o=i[k+24>>2],i[A+4>>2]=o,o&&(i[o+4>>2]=i[o+4>>2]+1),A=A+8|0;break G}A=Q2(r+36|0,y)}if(i[r+40>>2]=A,n=n+4|0,(u|0)==(n|0))break}}VA(e,y),r=1}if(A=i[t+80>>2],A&&G(A),r)break n;Z=1;break k}if(i[t+76>>2]=0,i[t+68>>2]=0,i[t+72>>2]=0,I1(t+224|0,i[e+48>>2],i[i[y>>2]+20>>2],t+68|0),i[t+224>>2]){r=i[t+228>>2],i[f>>2]=i[t+224>>2],i[f+4>>2]=r,i[f+16>>2]=i[t+240>>2],r=i[t+236>>2],i[f+8>>2]=i[t+232>>2],i[f+12>>2]=r,i[t+232>>2]=0,i[t+236>>2]=0,i[t+240>>2]=0,Z=1;break t}if(n=0,p=0,A=i[t+68>>2],u=i[t+72>>2],(A|0)!=(u|0))break m;break Z}y0(),P()}for(;;){r=i[A>>2];m:{if(!r||(o=N0(r,68572,69412),!o))break m;r=i[A+4>>2],r&&(i[r+4>>2]=i[r+4>>2]+2);B:{if(!n||(_=i[n+4>>2],i[n+4>>2]=_-1,_))break B;V[i[i[n>>2]+8>>2]](n),g(n)}r?(n=i[r+4>>2],i[r+4>>2]=n-1,n||(V[i[i[r>>2]+8>>2]](r),g(r))):r=0,n=r,p=o}if(A=A+8|0,(u|0)==(A|0))break}if(!p)break Z;if(u=0,i[t+64>>2]=0,i[t+56>>2]=0,i[t+60>>2]=0,o=0,r=i[C+48>>2],A=i[C+44>>2],(r|0)!=(A|0)){if(r=r-A|0,(r|0)<0)break i;o=U(r),i[t+56>>2]=o,u=r+o|0,i[t+64>>2]=u,l0(o,A,r),i[t+60>>2]=u}switch(W=p+56|0,A=l[p+67|0],_=(A|0)<0,r=i[p+60>>2],(_?r:A)-25|0){case 18:break w;case 1:break _;case 0:break v;default:break s}}i[t+80>>2]=h0,i[t+88>>2]=54496,i[t+144>>2]=54516,r=t+80|0,i[r+i[G0>>2]>>2]=j,i[t+84>>2]=0,A=r+i[i[t+80>>2]-12>>2]|0,b0(A,n0),i[A+72>>2]=0,i[A+76>>2]=-1,i[t+88>>2]=f0,i[i[X0>>2]+a>>2]=Y0,i[t+80>>2]=A0,i[r+i[p0>>2]>>2]=F0,i[t+144>>2]=54516,i[t+80>>2]=54476,i[t+88>>2]=54496,r=$0(n0),i[r>>2]=53552,i[t+132>>2]=0,i[t+136>>2]=0,i[t+124>>2]=0,i[t+128>>2]=0,i[t+140>>2]=24,L0(x(a,19165,27),i[i[y>>2]+20>>2]),A=t+56|0,i2(A,r),r0(f,2,123,A),l[t+67|0]<0&&G(i[t+56>>2]),i[t+80>>2]=d,i[i[L>>2]+(t+80|0)>>2]=Q0,i[t+88>>2]=I0,i[r>>2]=53552,l[t+135|0]<0&&G(i[t+124>>2]),K0(r),T0(S0),Z=1;break o}if(K2(_?i[W>>2]:W,17041,25))break s;if((o|0)!=(u|0))break h;break s}if(K2(_?i[W>>2]:W,17014,26))break s;if((o|0)!=(u|0))break h;break s}if(K2(_?i[W>>2]:W,14619,43)|(o|0)==(u|0))break s}for(;;){_=i[o>>2];h:{w:{r=I,A=i[r>>2];_:{if(!A)break _;for(;w=_>>>0>k0[A+16>>2],r=w?r:A,A=i[(w<<2)+A>>2],!!A;);if((r|0)==(I|0))break _;if(_>>>0>=k0[r+16>>2])break w}if(ne(i[e+48>>2],_))break h;r=U(40),i[t+80>>2]=r,i[t+84>>2]=35,i[t+88>>2]=-2147483608,A=s[13501]|s[13502]<<8|(s[13503]<<16|s[13504]<<24),o=s[13497]|s[13498]<<8|(s[13499]<<16|s[13500]<<24),l[r|0]=o,l[r+1|0]=o>>>8,l[r+2|0]=o>>>16,l[r+3|0]=o>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+35|0]=0,A=s[13528]|s[13529]<<8|(s[13530]<<16|s[13531]<<24),l[r+31|0]=A,l[r+32|0]=A>>>8,l[r+33|0]=A>>>16,l[r+34|0]=A>>>24,A=s[13525]|s[13526]<<8|(s[13527]<<16|s[13528]<<24),o=s[13521]|s[13522]<<8|(s[13523]<<16|s[13524]<<24),l[r+24|0]=o,l[r+25|0]=o>>>8,l[r+26|0]=o>>>16,l[r+27|0]=o>>>24,l[r+28|0]=A,l[r+29|0]=A>>>8,l[r+30|0]=A>>>16,l[r+31|0]=A>>>24,A=s[13517]|s[13518]<<8|(s[13519]<<16|s[13520]<<24),o=s[13513]|s[13514]<<8|(s[13515]<<16|s[13516]<<24),l[r+16|0]=o,l[r+17|0]=o>>>8,l[r+18|0]=o>>>16,l[r+19|0]=o>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[13509]|s[13510]<<8|(s[13511]<<16|s[13512]<<24),o=s[13505]|s[13506]<<8|(s[13507]<<16|s[13508]<<24),l[r+8|0]=o,l[r+9|0]=o>>>8,l[r+10|0]=o>>>16,l[r+11|0]=o>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(f,2,2e3,t+80|0),l[t+91|0]<0&&G(i[t+80>>2]),Z=1;break l}_=i[r+20>>2],A=i[r+24>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),h=i[y>>2];w:{if((h|0)==(_|0)){r=U(32),i[t+80>>2]=r,i[t+84>>2]=30,i[t+88>>2]=-2147483616,w=s[12550]|s[12551]<<8|(s[12552]<<16|s[12553]<<24),Z=s[12546]|s[12547]<<8|(s[12548]<<16|s[12549]<<24),l[r|0]=Z,l[r+1|0]=Z>>>8,l[r+2|0]=Z>>>16,l[r+3|0]=Z>>>24,l[r+4|0]=w,l[r+5|0]=w>>>8,l[r+6|0]=w>>>16,l[r+7|0]=w>>>24,l[r+30|0]=0,w=s[12572]|s[12573]<<8|(s[12574]<<16|s[12575]<<24),Z=s[12568]|s[12569]<<8|(s[12570]<<16|s[12571]<<24),l[r+22|0]=Z,l[r+23|0]=Z>>>8,l[r+24|0]=Z>>>16,l[r+25|0]=Z>>>24,l[r+26|0]=w,l[r+27|0]=w>>>8,l[r+28|0]=w>>>16,l[r+29|0]=w>>>24,w=s[12566]|s[12567]<<8|(s[12568]<<16|s[12569]<<24),Z=s[12562]|s[12563]<<8|(s[12564]<<16|s[12565]<<24),l[r+16|0]=Z,l[r+17|0]=Z>>>8,l[r+18|0]=Z>>>16,l[r+19|0]=Z>>>24,l[r+20|0]=w,l[r+21|0]=w>>>8,l[r+22|0]=w>>>16,l[r+23|0]=w>>>24,w=s[12558]|s[12559]<<8|(s[12560]<<16|s[12561]<<24),Z=s[12554]|s[12555]<<8|(s[12556]<<16|s[12557]<<24),l[r+8|0]=Z,l[r+9|0]=Z>>>8,l[r+10|0]=Z>>>16,l[r+11|0]=Z>>>24,l[r+12|0]=w,l[r+13|0]=w>>>8,l[r+14|0]=w>>>16,l[r+15|0]=w>>>24,r0(f,2,2e3,t+80|0),l[t+91|0]<0&&G(i[t+80>>2]),Z=1;break w}if(l[h+48|0]=1,w=i[k+24>>2],w&&(i[w+4>>2]=i[w+4>>2]+1),i[_+52>>2]=h,r=i[_+56>>2],i[_+56>>2]=w,Z=0,!r||(w=i[r+4>>2],i[r+4>>2]=w-1,w))break w;V[i[i[r>>2]+8>>2]](r),g(r)}w:{if(!A||(r=i[A+4>>2],i[A+4>>2]=r-1,r))break w;V[i[i[A>>2]+8>>2]](A),g(A)}if((h|0)==(_|0))break l}if(o=o+4|0,(u|0)==(o|0))break}A=s[p+67|0],r=i[p+60>>2]}s:{h:{w:{if(h=r,r=A<<24>>24<0,A=(r?h:A)-26|0,A){if((A|0)==17)break w;break s}if(!K2(r?i[W>>2]:W,16753,26))break h;break s}if(K2(r?i[W>>2]:W,8263,43))break s}if(l[i[y>>2]+60|0]=1,Z=i[t+56>>2],n2=i[t+60>>2],(Z|0)==(n2|0))break s;for(;;){o=i[Z>>2];h:{w:{r=I,A=i[r>>2];_:{if(!A)break _;for(;u=o>>>0>k0[A+16>>2],r=u?r:A,A=i[(u<<2)+A>>2],!!A;);if((r|0)==(I|0))break _;if(o>>>0>=k0[r+16>>2])break w}if(ne(i[e+48>>2],o))break h;r=U(40),i[t+80>>2]=r,i[t+84>>2]=35,i[t+88>>2]=-2147483608,A=s[13431]|s[13432]<<8|(s[13433]<<16|s[13434]<<24),o=s[13427]|s[13428]<<8|(s[13429]<<16|s[13430]<<24),l[r|0]=o,l[r+1|0]=o>>>8,l[r+2|0]=o>>>16,l[r+3|0]=o>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+35|0]=0,A=s[13458]|s[13459]<<8|(s[13460]<<16|s[13461]<<24),l[r+31|0]=A,l[r+32|0]=A>>>8,l[r+33|0]=A>>>16,l[r+34|0]=A>>>24,A=s[13455]|s[13456]<<8|(s[13457]<<16|s[13458]<<24),o=s[13451]|s[13452]<<8|(s[13453]<<16|s[13454]<<24),l[r+24|0]=o,l[r+25|0]=o>>>8,l[r+26|0]=o>>>16,l[r+27|0]=o>>>24,l[r+28|0]=A,l[r+29|0]=A>>>8,l[r+30|0]=A>>>16,l[r+31|0]=A>>>24,A=s[13447]|s[13448]<<8|(s[13449]<<16|s[13450]<<24),o=s[13443]|s[13444]<<8|(s[13445]<<16|s[13446]<<24),l[r+16|0]=o,l[r+17|0]=o>>>8,l[r+18|0]=o>>>16,l[r+19|0]=o>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[13439]|s[13440]<<8|(s[13441]<<16|s[13442]<<24),o=s[13435]|s[13436]<<8|(s[13437]<<16|s[13438]<<24),l[r+8|0]=o,l[r+9|0]=o>>>8,l[r+10|0]=o>>>16,l[r+11|0]=o>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(f,2,2e3,t+80|0),l[t+91|0]<0&&G(i[t+80>>2]),Z=1;break l}if(u=i[y>>2],A=i[r+20>>2],(u|0)==(A|0)){r=U(32),i[t+80>>2]=r,i[t+84>>2]=30,i[t+88>>2]=-2147483616,A=s[12519]|s[12520]<<8|(s[12521]<<16|s[12522]<<24),o=s[12515]|s[12516]<<8|(s[12517]<<16|s[12518]<<24),l[r|0]=o,l[r+1|0]=o>>>8,l[r+2|0]=o>>>16,l[r+3|0]=o>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+30|0]=0,A=s[12541]|s[12542]<<8|(s[12543]<<16|s[12544]<<24),o=s[12537]|s[12538]<<8|(s[12539]<<16|s[12540]<<24),l[r+22|0]=o,l[r+23|0]=o>>>8,l[r+24|0]=o>>>16,l[r+25|0]=o>>>24,l[r+26|0]=A,l[r+27|0]=A>>>8,l[r+28|0]=A>>>16,l[r+29|0]=A>>>24,A=s[12535]|s[12536]<<8|(s[12537]<<16|s[12538]<<24),o=s[12531]|s[12532]<<8|(s[12533]<<16|s[12534]<<24),l[r+16|0]=o,l[r+17|0]=o>>>8,l[r+18|0]=o>>>16,l[r+19|0]=o>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[12527]|s[12528]<<8|(s[12529]<<16|s[12530]<<24),o=s[12523]|s[12524]<<8|(s[12525]<<16|s[12526]<<24),l[r+8|0]=o,l[r+9|0]=o>>>8,l[r+10|0]=o>>>16,l[r+11|0]=o>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(f,2,2e3,t+80|0),l[t+91|0]<0&&G(i[t+80>>2]),Z=1;break l}o=i[k+24>>2],o&&(i[o+4>>2]=i[o+4>>2]+1),i[A+64>>2]=u,r=i[A+68>>2],i[A+68>>2]=o;w:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break w;V[i[i[r>>2]+8>>2]](r),g(r)}if(i[t+52>>2]=0,i[t+44>>2]=0,i[t+48>>2]=0,r=i[p+72>>2],o=i[p+68>>2],(r|0)!=(o|0)){if(r=r-o|0,(r|0)<0)break r;A=U(r),i[t+48>>2]=A,i[t+44>>2]=A,u=r+A|0,i[t+52>>2]=u,l0(A,o,r),i[t+48>>2]=u}i[t+40>>2]=0,i[t+32>>2]=0,i[t+36>>2]=0,J=t+80|0,S=t+32|0,o=B-96|0,B=o,r=i[t+44>>2],A=w6(o- -64|0,r,i[t+48>>2]-r|0),r=i[A+8>>2],h=r>>31<<3|r>>>29,u=i[A+24>>2],r=u+(r<<3)|0,h=(u>>31)+h|0,h=r>>>0>>0?h+1|0:h;w:{if((h|0)<=0&r>>>0<=31|(h|0)<0){if(r=U(24),i[o+32>>2]=r,i[o+36>>2]=22,i[o+40>>2]=-2147483624,A=s[3011]|s[3012]<<8|(s[3013]<<16|s[3014]<<24),u=s[3007]|s[3008]<<8|(s[3009]<<16|s[3010]<<24),l[r|0]=u,l[r+1|0]=u>>>8,l[r+2|0]=u>>>16,l[r+3|0]=u>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+22|0]=0,A=s[3025]|s[3026]<<8|(s[3027]<<16|s[3028]<<24),u=s[3021]|s[3022]<<8|(s[3023]<<16|s[3024]<<24),l[r+14|0]=u,l[r+15|0]=u>>>8,l[r+16|0]=u>>>16,l[r+17|0]=u>>>24,l[r+18|0]=A,l[r+19|0]=A>>>8,l[r+20|0]=A>>>16,l[r+21|0]=A>>>24,A=s[3019]|s[3020]<<8|(s[3021]<<16|s[3022]<<24),u=s[3015]|s[3016]<<8|(s[3017]<<16|s[3018]<<24),l[r+8|0]=u,l[r+9|0]=u>>>8,l[r+10|0]=u>>>16,l[r+11|0]=u>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(J,2,100,o+32|0),l[o+43|0]>=0)break w;G(i[o+32>>2]);break w}h=g0(A,32),r=(i[A+4>>2]-i[A+8>>2]|0)+(i[A+24>>2]/-8|0)|0;_:{if((h|0)<=(r|0))break _;if(r=r+i[t+44>>2]|0,u=w6(o+32|0,r,i[t+48>>2]-r|0),r=i[u+8>>2],h=r>>31<<3|r>>>29,A=i[u+24>>2],r=A+(r<<3)|0,v=(A>>31)+h|0,v=r>>>0>>0?v+1|0:v,(v|0)<=0&r>>>0<=39|(v|0)<0){if(r=U(24),i[o+4>>2]=r,i[o+8>>2]=22,i[o+12>>2]=-2147483624,A=s[3011]|s[3012]<<8|(s[3013]<<16|s[3014]<<24),u=s[3007]|s[3008]<<8|(s[3009]<<16|s[3010]<<24),l[r|0]=u,l[r+1|0]=u>>>8,l[r+2|0]=u>>>16,l[r+3|0]=u>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+22|0]=0,A=s[3025]|s[3026]<<8|(s[3027]<<16|s[3028]<<24),u=s[3021]|s[3022]<<8|(s[3023]<<16|s[3024]<<24),l[r+14|0]=u,l[r+15|0]=u>>>8,l[r+16|0]=u>>>16,l[r+17|0]=u>>>24,l[r+18|0]=A,l[r+19|0]=A>>>8,l[r+20|0]=A>>>16,l[r+21|0]=A>>>24,A=s[3019]|s[3020]<<8|(s[3021]<<16|s[3022]<<24),u=s[3015]|s[3016]<<8|(s[3017]<<16|s[3018]<<24),l[r+8|0]=u,l[r+9|0]=u>>>8,l[r+10|0]=u>>>16,l[r+11|0]=u>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(J,2,100,o+4|0),l[o+15|0]>=0)break w;G(i[o+4>>2]);break w}if(g0(u,32),r=g0(u,8),p2(u,8),(r>>>1&255)-39>>>0>1)break _;if(r=i[u+24>>2],A=r,_=r>>31,r=i[u+8>>2],h=r>>31<<3|r>>>29,w=A,A=r<<3,r=w+A|0,h=h+_|0,h=r>>>0>>0?h+1|0:h,(h|0)<=0&r>>>0<=15|(h|0)<0){if(r=U(24),i[o+4>>2]=r,i[o+8>>2]=22,i[o+12>>2]=-2147483624,A=s[3011]|s[3012]<<8|(s[3013]<<16|s[3014]<<24),u=s[3007]|s[3008]<<8|(s[3009]<<16|s[3010]<<24),l[r|0]=u,l[r+1|0]=u>>>8,l[r+2|0]=u>>>16,l[r+3|0]=u>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+22|0]=0,A=s[3025]|s[3026]<<8|(s[3027]<<16|s[3028]<<24),u=s[3021]|s[3022]<<8|(s[3023]<<16|s[3024]<<24),l[r+14|0]=u,l[r+15|0]=u>>>8,l[r+16|0]=u>>>16,l[r+17|0]=u>>>24,l[r+18|0]=A,l[r+19|0]=A>>>8,l[r+20|0]=A>>>16,l[r+21|0]=A>>>24,A=s[3019]|s[3020]<<8|(s[3021]<<16|s[3022]<<24),u=s[3015]|s[3016]<<8|(s[3017]<<16|s[3018]<<24),l[r+8|0]=u,l[r+9|0]=u>>>8,l[r+10|0]=u>>>16,l[r+11|0]=u>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(J,2,100,o+4|0),l[o+15|0]>=0)break w;G(i[o+4>>2]);break w}if(r=g0(u,8),g0(u,8),(r&255)!=177)break _;_=B-48|0,B=_,w=o+4|0,r=w,i[r>>2]=0,i[r+4>>2]=0,h=r+8|0,r=h,i[r>>2]=0,i[r+4>>2]=0,i[r+16>>2]=0,i[r+8>>2]=0,i[r+12>>2]=0,r=U(80),i[r+16>>2]=0,i[r+20>>2]=0,i[r+24>>2]=0,i[r+28>>2]=0,i[r>>2]=74312,i[r+4>>2]=0,i[r+8>>2]=0,i[r+72>>2]=0,i[r+76>>2]=0,i[r+16>>2]=74352,i[r+32>>2]=0,i[r+36>>2]=0,i[r+40>>2]=0,i[r+44>>2]=0,i[r+48>>2]=0,i[r+52>>2]=0,i[r+56>>2]=0,i[r+60>>2]=0,A=r- -64|0,i[A>>2]=0,i[A+4>>2]=0,l[r+24|0]=1,A=g0(u,1),l[r+25|0]=A,s2=r,W2=g0(u,1),l[s2+26|0]=W2,v=g0(u,1),l[r+27|0]=v,z=g0(u,1),l[r+28|0]=z;v:{Z:{m:{if(!g1(u,_+44|0)){if(A=U(48),i[_+12>>2]=A,i[_+16>>2]=42,i[_+20>>2]=-2147483600,u=s[2744]|s[2745]<<8,l[A+40|0]=u,l[A+41|0]=u>>>8,u=s[2740]|s[2741]<<8|(s[2742]<<16|s[2743]<<24),v=s[2736]|s[2737]<<8|(s[2738]<<16|s[2739]<<24),l[A+32|0]=v,l[A+33|0]=v>>>8,l[A+34|0]=v>>>16,l[A+35|0]=v>>>24,l[A+36|0]=u,l[A+37|0]=u>>>8,l[A+38|0]=u>>>16,l[A+39|0]=u>>>24,u=s[2732]|s[2733]<<8|(s[2734]<<16|s[2735]<<24),v=s[2728]|s[2729]<<8|(s[2730]<<16|s[2731]<<24),l[A+24|0]=v,l[A+25|0]=v>>>8,l[A+26|0]=v>>>16,l[A+27|0]=v>>>24,l[A+28|0]=u,l[A+29|0]=u>>>8,l[A+30|0]=u>>>16,l[A+31|0]=u>>>24,u=s[2724]|s[2725]<<8|(s[2726]<<16|s[2727]<<24),v=s[2720]|s[2721]<<8|(s[2722]<<16|s[2723]<<24),l[A+16|0]=v,l[A+17|0]=v>>>8,l[A+18|0]=v>>>16,l[A+19|0]=v>>>24,l[A+20|0]=u,l[A+21|0]=u>>>8,l[A+22|0]=u>>>16,l[A+23|0]=u>>>24,u=s[2716]|s[2717]<<8|(s[2718]<<16|s[2719]<<24),v=s[2712]|s[2713]<<8|(s[2714]<<16|s[2715]<<24),l[A+8|0]=v,l[A+9|0]=v>>>8,l[A+10|0]=v>>>16,l[A+11|0]=v>>>24,l[A+12|0]=u,l[A+13|0]=u>>>8,l[A+14|0]=u>>>16,l[A+15|0]=u>>>24,u=s[2708]|s[2709]<<8|(s[2710]<<16|s[2711]<<24),v=s[2704]|s[2705]<<8|(s[2706]<<16|s[2707]<<24),l[A|0]=v,l[A+1|0]=v>>>8,l[A+2|0]=v>>>16,l[A+3|0]=v>>>24,l[A+4|0]=u,l[A+5|0]=u>>>8,l[A+6|0]=u>>>16,l[A+7|0]=u>>>24,l[A+42|0]=0,A=r0(_+24|0,2,2006,_+12|0),u=i[A+4>>2],i[h>>2]=i[A>>2],i[h+4>>2]=u,l[w+27|0]<0&&G(i[w+16>>2]),u=i[A+12>>2],i[w+16>>2]=i[A+8>>2],i[w+20>>2]=u,i[w+24>>2]=i[A+16>>2],l[A+19|0]=0,l[A+8|0]=0,l[_+23|0]>=0)break m;G(i[_+12>>2]);break m}if(q=i[_+44>>2],q>>>0>=4){if(A=U(48),i[_+12>>2]=A,i[_+16>>2]=44,i[_+20>>2]=-2147483600,u=s[10456]|s[10457]<<8|(s[10458]<<16|s[10459]<<24),l[A+40|0]=u,l[A+41|0]=u>>>8,l[A+42|0]=u>>>16,l[A+43|0]=u>>>24,u=s[10452]|s[10453]<<8|(s[10454]<<16|s[10455]<<24),v=s[10448]|s[10449]<<8|(s[10450]<<16|s[10451]<<24),l[A+32|0]=v,l[A+33|0]=v>>>8,l[A+34|0]=v>>>16,l[A+35|0]=v>>>24,l[A+36|0]=u,l[A+37|0]=u>>>8,l[A+38|0]=u>>>16,l[A+39|0]=u>>>24,u=s[10444]|s[10445]<<8|(s[10446]<<16|s[10447]<<24),v=s[10440]|s[10441]<<8|(s[10442]<<16|s[10443]<<24),l[A+24|0]=v,l[A+25|0]=v>>>8,l[A+26|0]=v>>>16,l[A+27|0]=v>>>24,l[A+28|0]=u,l[A+29|0]=u>>>8,l[A+30|0]=u>>>16,l[A+31|0]=u>>>24,u=s[10436]|s[10437]<<8|(s[10438]<<16|s[10439]<<24),v=s[10432]|s[10433]<<8|(s[10434]<<16|s[10435]<<24),l[A+16|0]=v,l[A+17|0]=v>>>8,l[A+18|0]=v>>>16,l[A+19|0]=v>>>24,l[A+20|0]=u,l[A+21|0]=u>>>8,l[A+22|0]=u>>>16,l[A+23|0]=u>>>24,u=s[10428]|s[10429]<<8|(s[10430]<<16|s[10431]<<24),v=s[10424]|s[10425]<<8|(s[10426]<<16|s[10427]<<24),l[A+8|0]=v,l[A+9|0]=v>>>8,l[A+10|0]=v>>>16,l[A+11|0]=v>>>24,l[A+12|0]=u,l[A+13|0]=u>>>8,l[A+14|0]=u>>>16,l[A+15|0]=u>>>24,u=s[10420]|s[10421]<<8|(s[10422]<<16|s[10423]<<24),v=s[10416]|s[10417]<<8|(s[10418]<<16|s[10419]<<24),l[A|0]=v,l[A+1|0]=v>>>8,l[A+2|0]=v>>>16,l[A+3|0]=v>>>24,l[A+4|0]=u,l[A+5|0]=u>>>8,l[A+6|0]=u>>>16,l[A+7|0]=u>>>24,l[A+44|0]=0,A=r0(_+24|0,2,2006,_+12|0),u=i[A+4>>2],i[h>>2]=i[A>>2],i[h+4>>2]=u,l[w+27|0]<0&&G(i[w+16>>2]),u=i[A+12>>2],i[w+16>>2]=i[A+8>>2],i[w+20>>2]=u,i[w+24>>2]=i[A+16>>2],l[A+19|0]=0,l[A+8|0]=0,l[_+23|0]>=0)break m;G(i[_+12>>2]);break m}if(i[r+64>>2]=q,(v|z)&255){if(!g1(u,_+8|0)){if(A=U(48),i[_+12>>2]=A,i[_+16>>2]=41,i[_+20>>2]=-2147483600,l[A+40|0]=s[2702],u=s[2698]|s[2699]<<8|(s[2700]<<16|s[2701]<<24),v=s[2694]|s[2695]<<8|(s[2696]<<16|s[2697]<<24),l[A+32|0]=v,l[A+33|0]=v>>>8,l[A+34|0]=v>>>16,l[A+35|0]=v>>>24,l[A+36|0]=u,l[A+37|0]=u>>>8,l[A+38|0]=u>>>16,l[A+39|0]=u>>>24,u=s[2690]|s[2691]<<8|(s[2692]<<16|s[2693]<<24),v=s[2686]|s[2687]<<8|(s[2688]<<16|s[2689]<<24),l[A+24|0]=v,l[A+25|0]=v>>>8,l[A+26|0]=v>>>16,l[A+27|0]=v>>>24,l[A+28|0]=u,l[A+29|0]=u>>>8,l[A+30|0]=u>>>16,l[A+31|0]=u>>>24,u=s[2682]|s[2683]<<8|(s[2684]<<16|s[2685]<<24),v=s[2678]|s[2679]<<8|(s[2680]<<16|s[2681]<<24),l[A+16|0]=v,l[A+17|0]=v>>>8,l[A+18|0]=v>>>16,l[A+19|0]=v>>>24,l[A+20|0]=u,l[A+21|0]=u>>>8,l[A+22|0]=u>>>16,l[A+23|0]=u>>>24,u=s[2674]|s[2675]<<8|(s[2676]<<16|s[2677]<<24),v=s[2670]|s[2671]<<8|(s[2672]<<16|s[2673]<<24),l[A+8|0]=v,l[A+9|0]=v>>>8,l[A+10|0]=v>>>16,l[A+11|0]=v>>>24,l[A+12|0]=u,l[A+13|0]=u>>>8,l[A+14|0]=u>>>16,l[A+15|0]=u>>>24,u=s[2666]|s[2667]<<8|(s[2668]<<16|s[2669]<<24),v=s[2662]|s[2663]<<8|(s[2664]<<16|s[2665]<<24),l[A|0]=v,l[A+1|0]=v>>>8,l[A+2|0]=v>>>16,l[A+3|0]=v>>>24,l[A+4|0]=u,l[A+5|0]=u>>>8,l[A+6|0]=u>>>16,l[A+7|0]=u>>>24,l[A+41|0]=0,A=r0(_+24|0,2,2006,_+12|0),u=i[A+4>>2],i[h>>2]=i[A>>2],i[h+4>>2]=u,l[w+27|0]<0&&G(i[w+16>>2]),u=i[A+12>>2],i[w+16>>2]=i[A+8>>2],i[w+20>>2]=u,i[w+24>>2]=i[A+16>>2],l[A+19|0]=0,l[A+8|0]=0,l[_+23|0]<0&&G(i[_+12>>2]),A=i[r+4>>2],i[r+4>>2]=A-1,!A)break Z;break v}i[r+68>>2]=i[_+8>>2],A=s[r+25|0]}if(A&255){h=g0(u,1),A=g0(u,7),v=g0(u,5),z=v+1|0,E=+(g0(u,z)|0);B:{if((A|0)>0){H=M1(1,z),E=M1(1,A-31|0)*(E/H+1);break B}E=M1(1,-31-v|0)*E}i0[r+32>>3]=h?-E:E}if(s[r+26|0]){h=g0(u,1),A=g0(u,7),v=g0(u,5),z=v+1|0,E=+(g0(u,z)|0);B:{if((A|0)>0){H=M1(1,z),E=M1(1,A-31|0)*(E/H+1);break B}E=M1(1,-31-v|0)*E}i0[r+40>>3]=h?-E:E}if(s[r+27|0]){h=g0(u,1),A=g0(u,7),v=g0(u,5),z=v+1|0,E=+(g0(u,z)|0);B:{if((A|0)>0){H=M1(1,z),E=M1(1,A-31|0)*(E/H+1);break B}E=M1(1,-31-v|0)*E}i0[r+48>>3]=h?-E:E}if(s[r+28|0]){h=g0(u,1),A=g0(u,7),q=u,u=g0(u,5),v=u+1|0,E=+(g0(q,v)|0);B:{if((A|0)>0){H=M1(1,v),E=M1(1,A-31|0)*(E/H+1);break B}E=M1(1,-31-u|0)*E}i0[r+56>>3]=h?-E:E}if(i[r+4>>2]=i[r+4>>2]+1,i[w>>2]=r+16,A=i[w+4>>2],i[w+4>>2]=r,!A||(u=i[A+4>>2],i[A+4>>2]=u-1,u))break m;V[i[i[A>>2]+8>>2]](A),g(A)}if(A=i[r+4>>2],i[r+4>>2]=A-1,A)break v}V[i[i[r>>2]+8>>2]](r),g(r)}if(B=_+48|0,i[o+12>>2]){r=i[o+16>>2],i[J>>2]=i[o+12>>2],i[J+4>>2]=r,r=J+8|0;v:{if(l[o+31|0]>=0){A=i[o+24>>2],i[r>>2]=i[o+20>>2],i[r+4>>2]=A,i[r+8>>2]=i[o+28>>2];break v}_0(r,i[o+20>>2],i[o+24>>2])}it(o+4|0);break w}r=o+4|0,A=i[S+4>>2];v:{if(A>>>0>2]){i[A>>2]=i[r>>2],u=i[r+4>>2],i[A+4>>2]=u,u&&(i[u+4>>2]=i[u+4>>2]+1),i[S+4>>2]=A+8;break v}s2=S,W2=Q2(S,r),i[s2+4>>2]=W2}it(r)}if(r=i[19565],i[J>>2]=i[19564],i[J+4>>2]=r,r=J+8|0,l[78275]>=0){A=i[19567],i[r>>2]=i[19566],i[r+4>>2]=A,i[r+8>>2]=i[19568];break w}_0(r,i[19566],i[19567])}if(B=o+96|0,r=i[t+84>>2],i[t+224>>2]=i[t+80>>2],i[t+228>>2]=r,l[t+243|0]<0&&G(i[t+232>>2]),r=i[a+4>>2],i[t+232>>2]=i[a>>2],i[t+236>>2]=r,i[t+240>>2]=i[a+8>>2],A=i[t+32>>2],_=i[t+36>>2],(A|0)!=(_|0)){for(;;){r=i[A>>2];w:{if(!r||(r=N0(r,72688,72704),!r))break w;if(u=i[A+4>>2],!u){o=i[y>>2],l[o+72|0]=1,u=i[r+12>>2],i[o+80>>2]=i[r+8>>2],i[o+84>>2]=u,u=i[r+20>>2],i[o+88>>2]=i[r+16>>2],i[o+92>>2]=u,u=i[r+28>>2],i[o+96>>2]=i[r+24>>2],i[o+100>>2]=u,u=i[r+36>>2],i[o+104>>2]=i[r+32>>2],i[o+108>>2]=u,u=i[r+44>>2],i[o+112>>2]=i[r+40>>2],i[o+116>>2]=u,u=i[r+52>>2],i[o+120>>2]=i[r+48>>2],i[o+124>>2]=u,u=i[r+60>>2],i[o+128>>2]=i[r+56>>2],i[o+132>>2]=u;break w}if(i[u+4>>2]=i[u+4>>2]+1,o=i[y>>2],l[o+72|0]=1,w=i[r+12>>2],i[o+80>>2]=i[r+8>>2],i[o+84>>2]=w,w=i[r+20>>2],i[o+88>>2]=i[r+16>>2],i[o+92>>2]=w,w=i[r+28>>2],i[o+96>>2]=i[r+24>>2],i[o+100>>2]=w,w=i[r+36>>2],i[o+104>>2]=i[r+32>>2],i[o+108>>2]=w,w=i[r+44>>2],i[o+112>>2]=i[r+40>>2],i[o+116>>2]=w,w=i[r+52>>2],i[o+120>>2]=i[r+48>>2],i[o+124>>2]=w,w=i[r+60>>2],i[o+128>>2]=i[r+56>>2],i[o+132>>2]=w,r=i[u+4>>2],i[u+4>>2]=r-1,r)break w;V[i[i[u>>2]+8>>2]](u),g(u)}if(A=A+8|0,(_|0)==(A|0))break}A=i[t+32>>2]}if(A){if(w=A,r=i[t+36>>2],(A|0)!=(r|0)){for(;;){o=i[r-4>>2];w:{if(!o||(u=i[o+4>>2],i[o+4>>2]=u-1,u))break w;V[i[i[o>>2]+8>>2]](o),g(o)}if(r=r-8|0,(A|0)==(r|0))break}w=i[t+32>>2]}i[t+36>>2]=A,G(w)}if(r=i[t+44>>2],!r)break h;i[t+48>>2]=r,G(r)}if(Z=Z+4|0,(n2|0)==(Z|0))break}}o=i[y>>2],l[o+136|0]=1,r=o+140|0;s:{if((r|0)==(W|0))break s;if(A=l[p+67|0],l[o+151|0]>=0){if((A|0)>=0){A=i[W+4>>2],i[r>>2]=i[W>>2],i[r+4>>2]=A,i[r+8>>2]=i[W+8>>2];break s}i4(r,i[p+56>>2],i[p+60>>2]);break s}h=r,r=(A|0)<0,_4(h,r?i[p+56>>2]:W,r?i[p+60>>2]:A)}if(p=i[t+56>>2],_=i[t+60>>2],(p|0)==(_|0)){Z=0;break u}for(;;){o=i[p>>2];s:{h:{r=I,A=i[r>>2];w:{if(!A)break w;for(;u=o>>>0>k0[A+16>>2],r=u?r:A,A=i[(u<<2)+A>>2],!!A;);if((r|0)==(I|0))break w;if(o>>>0>=k0[r+16>>2])break h}if(ne(i[e+48>>2],o))break s;r=U(40),i[t+80>>2]=r,i[t+84>>2]=33,i[t+88>>2]=-2147483608,A=s[13397]|s[13398]<<8|(s[13399]<<16|s[13400]<<24),o=s[13393]|s[13394]<<8|(s[13395]<<16|s[13396]<<24),l[r|0]=o,l[r+1|0]=o>>>8,l[r+2|0]=o>>>16,l[r+3|0]=o>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+33|0]=0,l[r+32|0]=s[13425],A=s[13421]|s[13422]<<8|(s[13423]<<16|s[13424]<<24),o=s[13417]|s[13418]<<8|(s[13419]<<16|s[13420]<<24),l[r+24|0]=o,l[r+25|0]=o>>>8,l[r+26|0]=o>>>16,l[r+27|0]=o>>>24,l[r+28|0]=A,l[r+29|0]=A>>>8,l[r+30|0]=A>>>16,l[r+31|0]=A>>>24,A=s[13413]|s[13414]<<8|(s[13415]<<16|s[13416]<<24),o=s[13409]|s[13410]<<8|(s[13411]<<16|s[13412]<<24),l[r+16|0]=o,l[r+17|0]=o>>>8,l[r+18|0]=o>>>16,l[r+19|0]=o>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[13405]|s[13406]<<8|(s[13407]<<16|s[13408]<<24),o=s[13401]|s[13402]<<8|(s[13403]<<16|s[13404]<<24),l[r+8|0]=o,l[r+9|0]=o>>>8,l[r+10|0]=o>>>16,l[r+11|0]=o>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(f,2,2e3,t+80|0),l[t+91|0]<0&&G(i[t+80>>2]),Z=1;break l}if(u=i[y>>2],A=i[r+20>>2],(u|0)==(A|0)){r=U(32),i[t+80>>2]=r,i[t+84>>2]=28,i[t+88>>2]=-2147483616,A=s[12455]|s[12456]<<8|(s[12457]<<16|s[12458]<<24),o=s[12451]|s[12452]<<8|(s[12453]<<16|s[12454]<<24),l[r|0]=o,l[r+1|0]=o>>>8,l[r+2|0]=o>>>16,l[r+3|0]=o>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+28|0]=0,A=s[12475]|s[12476]<<8|(s[12477]<<16|s[12478]<<24),l[r+24|0]=A,l[r+25|0]=A>>>8,l[r+26|0]=A>>>16,l[r+27|0]=A>>>24,A=s[12471]|s[12472]<<8|(s[12473]<<16|s[12474]<<24),o=s[12467]|s[12468]<<8|(s[12469]<<16|s[12470]<<24),l[r+16|0]=o,l[r+17|0]=o>>>8,l[r+18|0]=o>>>16,l[r+19|0]=o>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[12463]|s[12464]<<8|(s[12465]<<16|s[12466]<<24),o=s[12459]|s[12460]<<8|(s[12461]<<16|s[12462]<<24),l[r+8|0]=o,l[r+9|0]=o>>>8,l[r+10|0]=o>>>16,l[r+11|0]=o>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(f,2,2e3,t+80|0),l[t+91|0]<0&&G(i[t+80>>2]),Z=1;break l}r=i[k+24>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),i[t+84>>2]=r,i[t+80>>2]=u,o=i[A+156>>2];h:{if(o>>>0>2]){i[o+4>>2]=r,i[o>>2]=u,i[A+156>>2]=o+8;break h}if(o=z2(A+152|0,t+80|0),r=i[t+84>>2],i[A+156>>2]=o,!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break h;V[i[i[r>>2]+8>>2]](r),g(r)}VA(e,y)}if(p=p+4|0,(_|0)==(p|0))break}Z=0}p=i[t+56>>2]}if(!p)break o;G(p)}if(!n||(r=i[n+4>>2],i[n+4>>2]=r-1,r))break t;V[i[i[n>>2]+8>>2]](n),g(n)}if(l[t+243|0]<0&&G(i[t+232>>2]),n=i[t+68>>2],n){if(r=n,A=i[t+72>>2],(r|0)!=(A|0)){for(;;){r=i[A-4>>2];t:{if(!r||(o=i[r+4>>2],i[r+4>>2]=o-1,o))break t;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(n|0)==(A|0))break}r=i[t+68>>2]}i[t+72>>2]=n,G(r)}if(Z)break k}if(C=C+56|0,(r2|0)==(C|0))break}Z=14}C=i[t+248>>2]}if(C){if(r=C,A=i[t+252>>2],(r|0)!=(A|0)){for(;r=i[A-12>>2],r&&(i[A-8>>2]=r,G(r)),r=A-56|0,i[r>>2]=68500,n=i[A-36>>2],n&&(i[A-32>>2]=n,G(n)),A=r,(r|0)!=(C|0););r=i[t+248>>2]}i[t+252>>2]=C,G(r)}f:{if((Z|0)!=14){if((Z|0)==12)break f;break A}r=k,A=i[r+4>>2];k:{if(A){for(;;)if(k=A,A=i[A>>2],!A)break k}for(;k=i[r+8>>2],A=i[k>>2]!=(r|0),r=k,!!A;);}if((k|0)!=(I|0))continue}break}k=i[e+16>>2]}f:{if((k|0)!=(I|0)){for(;;){fe(t+224|0,i[e+48>>2],i[i[k+20>>2]+20>>2]),A=i[t+224>>2],w=i[A+68>>2],r=l[A+75|0],n=(r|0)<0;k:{if(((n?w:r)|0)!=4||(n=n?i[A+64>>2]:A- -64|0,(s[n|0]|s[n+1|0]<<8|(s[n+2|0]<<16|s[n+3|0]<<24))!=828601960))break k;A=i[e+48>>2],i[t+248>>2]=i[A+52>>2],r=i[A+56>>2],i[t+252>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1,A=i[e+48>>2]),n=i[A+44>>2],r=i[A+48>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),p4(t+80|0,n,i[i[k+20>>2]+20>>2],t+248|0,1752589123),n=i[t+80>>2],A=i[t+84>>2];n:{if(!A||(o=i[A+4>>2],i[A+4>>2]=o-1,o))break n;V[i[i[A>>2]+8>>2]](A),g(A)}if(!n){e=U(40),i[t+80>>2]=e,i[t+84>>2]=35,i[t+88>>2]=-2147483608,k=s[11019]|s[11020]<<8|(s[11021]<<16|s[11022]<<24),A=s[11015]|s[11016]<<8|(s[11017]<<16|s[11018]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=k,l[e+5|0]=k>>>8,l[e+6|0]=k>>>16,l[e+7|0]=k>>>24,l[e+35|0]=0,k=s[11046]|s[11047]<<8|(s[11048]<<16|s[11049]<<24),l[e+31|0]=k,l[e+32|0]=k>>>8,l[e+33|0]=k>>>16,l[e+34|0]=k>>>24,k=s[11043]|s[11044]<<8|(s[11045]<<16|s[11046]<<24),A=s[11039]|s[11040]<<8|(s[11041]<<16|s[11042]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=k,l[e+29|0]=k>>>8,l[e+30|0]=k>>>16,l[e+31|0]=k>>>24,k=s[11035]|s[11036]<<8|(s[11037]<<16|s[11038]<<24),A=s[11031]|s[11032]<<8|(s[11033]<<16|s[11034]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=k,l[e+21|0]=k>>>8,l[e+22|0]=k>>>16,l[e+23|0]=k>>>24,k=s[11027]|s[11028]<<8|(s[11029]<<16|s[11030]<<24),A=s[11023]|s[11024]<<8|(s[11025]<<16|s[11026]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=k,l[e+13|0]=k>>>8,l[e+14|0]=k>>>16,l[e+15|0]=k>>>24,r0(f,2,106,t+80|0),l[t+91|0]<0&&G(i[t+80>>2]);n:{if(!r||(f=i[r+4>>2],i[r+4>>2]=f-1,f))break n;V[i[i[r>>2]+8>>2]](r),g(r)}if(f=i[t+252>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break f;V[i[i[f>>2]+8>>2]](f),g(f);break f}n:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break n;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[t+252>>2];n:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break n;V[i[i[r>>2]+8>>2]](r),g(r)}A=i[t+224>>2],r=s[A+75|0],w=i[A+68>>2]}h=r,r=r<<24>>24<0;k:{if(((r?w:h)|0)!=4||(r=r?i[A+64>>2]:A- -64|0,(s[r|0]|s[r+1|0]<<8|(s[r+2|0]<<16|s[r+3|0]<<24))!=828601974))break k;A=i[e+48>>2],i[t+248>>2]=i[A+52>>2],r=i[A+56>>2],i[t+252>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1,A=i[e+48>>2]),n=i[A+44>>2],r=i[A+48>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),p4(t+80|0,n,i[i[k+20>>2]+20>>2],t+248|0,1987470147),n=i[t+80>>2],A=i[t+84>>2];n:{if(!A||(o=i[A+4>>2],i[A+4>>2]=o-1,o))break n;V[i[i[A>>2]+8>>2]](A),g(A)}if(!n){e=U(40),i[t+80>>2]=e,i[t+84>>2]=35,i[t+88>>2]=-2147483608,k=s[10983]|s[10984]<<8|(s[10985]<<16|s[10986]<<24),A=s[10979]|s[10980]<<8|(s[10981]<<16|s[10982]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=k,l[e+5|0]=k>>>8,l[e+6|0]=k>>>16,l[e+7|0]=k>>>24,l[e+35|0]=0,k=s[11010]|s[11011]<<8|(s[11012]<<16|s[11013]<<24),l[e+31|0]=k,l[e+32|0]=k>>>8,l[e+33|0]=k>>>16,l[e+34|0]=k>>>24,k=s[11007]|s[11008]<<8|(s[11009]<<16|s[11010]<<24),A=s[11003]|s[11004]<<8|(s[11005]<<16|s[11006]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=k,l[e+29|0]=k>>>8,l[e+30|0]=k>>>16,l[e+31|0]=k>>>24,k=s[10999]|s[11e3]<<8|(s[11001]<<16|s[11002]<<24),A=s[10995]|s[10996]<<8|(s[10997]<<16|s[10998]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=k,l[e+21|0]=k>>>8,l[e+22|0]=k>>>16,l[e+23|0]=k>>>24,k=s[10991]|s[10992]<<8|(s[10993]<<16|s[10994]<<24),A=s[10987]|s[10988]<<8|(s[10989]<<16|s[10990]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=k,l[e+13|0]=k>>>8,l[e+14|0]=k>>>16,l[e+15|0]=k>>>24,r0(f,2,141,t+80|0),l[t+91|0]<0&&G(i[t+80>>2]);n:{if(!r||(f=i[r+4>>2],i[r+4>>2]=f-1,f))break n;V[i[i[r>>2]+8>>2]](r),g(r)}if(f=i[t+252>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break f;V[i[i[f>>2]+8>>2]](f),g(f);break f}n:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break n;V[i[i[r>>2]+8>>2]](r),g(r)}if(r=i[t+252>>2],!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break k;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[t+228>>2];k:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break k;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[k+4>>2];k:{if(r){for(;;)if(A=r,r=i[r>>2],!r)break k}for(;A=i[k+8>>2],r=i[A>>2]!=(k|0),k=A,!!r;);}if(k=A,(A|0)==(I|0))break}k=i[e+16>>2]}k:{if((k|0)==(I|0))break k;for(;;){n=i[k+16>>2],fe(t+224|0,i[e+48>>2],n),A=i[t+224>>2],r=A?30:31;n:{if(!R|!A)break n;o=l[A+75|0],r=(o|0)<0;t:{if(((r?i[A+68>>2]:o)|0)!=4||(r=r?i[A+64>>2]:A- -64|0,(s[r|0]|s[r+1|0]<<8|(s[r+2|0]<<16|s[r+3|0]<<24))!=1684632167))break t;oi(t+80|0,R,n),w=i[t+80>>2];o:{if((w|0)==i[t+84>>2]){r=31;break o}r=31,A=i[I>>2];u:{if(!A)break u;for(n=i[w>>2],w=I;o=n>>>0>k0[A+16>>2],w=o?w:A,A=i[(o<<2)+A>>2],!!A;);if((w|0)==(I|0)|n>>>0>2])break u;n=i[w+20>>2],A=i[w+24>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),r=i[k+20>>2];l:{if(i[r+184>>2]||(o=i[n+184>>2],!o))break l;i[t+248>>2]=o,o=i[n+188>>2],i[t+252>>2]=o,o&&(i[o+4>>2]=i[o+4>>2]+1),jA(r,t+248|0),r=i[t+252>>2];s:{if(!r||(o=i[r+4>>2],i[r+4>>2]=o-1,o))break s;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[k+20>>2]}l:{if(i[r+176>>2]||(o=i[n+176>>2],!o)||(i[t+248>>2]=o,n=i[n+180>>2],i[t+252>>2]=n,n&&(i[n+4>>2]=i[n+4>>2]+1),jA(r,t+248|0),r=i[t+252>>2],!r)||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break l;V[i[i[r>>2]+8>>2]](r),g(r)}if(r=0,!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break u;V[i[i[A>>2]+8>>2]](A),g(A)}w=i[t+80>>2]}if(w&&(i[t+84>>2]=w,G(w)),r)break n}r=0}A=i[t+228>>2];n:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break n;V[i[i[A>>2]+8>>2]](A),g(A)}if(r&&(r|0)!=31)break k;r=i[k+4>>2];n:{if(r){for(;;)if(A=r,r=i[r>>2],!r)break n}for(;A=i[k+8>>2],r=i[A>>2]!=(k|0),k=A,!!r;);}if(k=A,(A|0)==(I|0))break}}k:{p=i[t+260>>2],h=i[t+264>>2];n:{if((p|0)==(h|0))break n;for(;;){n=t+224|0,A=i[p>>2],W6(n,i[e+48>>2],A),r=l[t+235|0],k=(r|0)<0;t:{if(((k?i[t+228>>2]:r)|0)==4&&(Z=33,k=k?i[t+224>>2]:n,w=s[k+1|0]<<8,o=s[k+2|0]<<16|s[k+3|0]<<24,(s[k|0]|w|o)==1851877234|(o|(w|s[k|0]))==1852138601))break t;cr(t+248|0,i[e+48>>2],A),n=t+68|0,r=0;o:{u:{o=i[e+48>>2],k=i[o+112>>2];l:{if(!k)break l;for(o=o+112|0,w=o;r=A>>>0>k0[k+16>>2],w=r?w:k,k=i[(r<<2)+k>>2],!!k;);if(r=0,(o|0)==(w|0)|A>>>0>2])break l;if(k=i[w+20>>2],r=i[w+24>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),k)break u}l[n|0]=0,l[n+11|0]=0;break o}if(l[k+123|0]>=0){o=i[k+116>>2],i[n>>2]=i[k+112>>2],i[n+4>>2]=o,i[n+8>>2]=i[k+120>>2];break o}_0(n,i[k+112>>2],i[k+116>>2])}o:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break o;V[i[i[r>>2]+8>>2]](r),g(r)}k=U(64),r=k,i[r+16>>2]=0,i[r+20>>2]=0,i[r>>2]=72744,i[r+4>>2]=0,i[r+8>>2]=0,i[r+12>>2]=A,i[r+24>>2]=0,i[r+28>>2]=0,i[r+32>>2]=0,i[r+36>>2]=0,n=r+40|0,r=n,i[r>>2]=0,i[r+4>>2]=0,i[k+48>>2]=0,i[k+52>>2]=0,i[k+56>>2]=0,i[k+60>>2]=0,r=k+16|0;o:{u:{l:{s:{if(l[t+235|0]>=0){if(o=i[t+228>>2],i[r>>2]=i[t+224>>2],i[r+4>>2]=o,i[r+8>>2]=i[t+232>>2],r=k+28|0,l[t+259|0]>=0)break s;break u}if(i4(r,i[t+224>>2],i[t+228>>2]),r=k+28|0,o=l[t+259|0],l[k+39|0]<0)break l;if((o|0)<0)break u}o=i[t+252>>2],i[r>>2]=i[t+248>>2],i[r+4>>2]=o,i[r+8>>2]=i[t+256>>2];break o}w=r,r=(o|0)<0,_4(w,r?i[t+248>>2]:t+248|0,r?i[t+252>>2]:o);break o}i4(r,i[t+248>>2],i[t+252>>2])}r=l[t+79|0];o:{if(l[k+51|0]>=0){if((r|0)>=0){r=i[t+72>>2],i[n>>2]=i[t+68>>2],i[n+4>>2]=r,i[n+8>>2]=i[t+76>>2];break o}i4(n,i[t+68>>2],i[t+72>>2]);break o}w=n,n=(r|0)<0,_4(w,n?i[t+68>>2]:t+68|0,n?i[t+72>>2]:r)}w8(t+80|0,i[e+48>>2],A,k+52|0);o:{if(i[t+80>>2]){if(Z=33,A=l[t+235|0],r=(A|0)<0,((r?i[t+228>>2]:A)|0)!=4||(r=r?i[t+224>>2]:t+224|0,A=s[r+1|0]<<8,w=s[r+2|0]<<16|s[r+3|0]<<24,(s[r|0]|A|w)!=1718188101&(w|(A|s[r|0]))!=1701669229))break o;r=i[t+84>>2],i[f>>2]=i[t+80>>2],i[f+4>>2]=r,i[f+16>>2]=i[t+96>>2],r=i[t+92>>2],i[f+8>>2]=i[t+88>>2],i[f+12>>2]=r,i[t+88>>2]=0,i[t+92>>2]=0,i[t+96>>2]=0,Z=1;break o}if(R){oe(t+56|0,R,A),n=i[t+56>>2],w=i[t+60>>2];u:{if((n|0)!=(w|0)){u=k+12|0;l:{for(;;){r=i[n+16>>2];s:{if((r|0)!=1886545261){if((r|0)!=1667527523||(i[t+52>>2]=0,i[t+44>>2]=0,i[t+48>>2]=0,o=i[n+48>>2],r=i[n+44>>2],(o|0)==(r|0)))break s;if(A=o-r|0,(A|0)<0)break r;C=U(A),i[t+44>>2]=C,_=A+C|0,i[t+52>>2]=_,l0(C,r,A),i[t+48>>2]=_;h:{w:{if((r|0)==(o|0)){A=0;break w}_:{for(;;){o=i[C>>2];v:{Z:{r=I,A=i[r>>2];m:{if(!A)break m;for(;Z=o>>>0>k0[A+16>>2],r=Z?r:A,A=i[(Z<<2)+A>>2],!!A;);if((r|0)==(I|0))break m;if(o>>>0>=k0[r+16>>2])break Z}if(ne(i[e+48>>2],o))break v;r=U(40),i[t+32>>2]=r,i[t+36>>2]=39,i[t+40>>2]=-2147483608,A=s[10858]|s[10859]<<8|(s[10860]<<16|s[10861]<<24),o=s[10854]|s[10855]<<8|(s[10856]<<16|s[10857]<<24),l[r|0]=o,l[r+1|0]=o>>>8,l[r+2|0]=o>>>16,l[r+3|0]=o>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+39|0]=0,A=s[10889]|s[10890]<<8|(s[10891]<<16|s[10892]<<24),o=s[10885]|s[10886]<<8|(s[10887]<<16|s[10888]<<24),l[r+31|0]=o,l[r+32|0]=o>>>8,l[r+33|0]=o>>>16,l[r+34|0]=o>>>24,l[r+35|0]=A,l[r+36|0]=A>>>8,l[r+37|0]=A>>>16,l[r+38|0]=A>>>24,A=s[10882]|s[10883]<<8|(s[10884]<<16|s[10885]<<24),o=s[10878]|s[10879]<<8|(s[10880]<<16|s[10881]<<24),l[r+24|0]=o,l[r+25|0]=o>>>8,l[r+26|0]=o>>>16,l[r+27|0]=o>>>24,l[r+28|0]=A,l[r+29|0]=A>>>8,l[r+30|0]=A>>>16,l[r+31|0]=A>>>24,A=s[10874]|s[10875]<<8|(s[10876]<<16|s[10877]<<24),o=s[10870]|s[10871]<<8|(s[10872]<<16|s[10873]<<24),l[r+16|0]=o,l[r+17|0]=o>>>8,l[r+18|0]=o>>>16,l[r+19|0]=o>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[10866]|s[10867]<<8|(s[10868]<<16|s[10869]<<24),o=s[10862]|s[10863]<<8|(s[10864]<<16|s[10865]<<24),l[r+8|0]=o,l[r+9|0]=o>>>8,l[r+10|0]=o>>>16,l[r+11|0]=o>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(f,2,2e3,t+32|0),l[t+43|0]<0&&G(i[t+32>>2]),A=1;break _}if(A=i[r+20>>2],i[k+4>>2]=i[k+4>>2]+1,i[t+36>>2]=k,i[t+32>>2]=u,r=i[A+168>>2],r>>>0>2]){i[r+4>>2]=k,i[r>>2]=u,i[A+168>>2]=r+8;break v}if(o=z2(A+164|0,t+32|0),r=i[t+36>>2],i[A+168>>2]=o,!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break v;V[i[i[r>>2]+8>>2]](r),g(r)}if(C=C+4|0,(_|0)==(C|0))break}A=0}if(C=i[t+44>>2],!C)break h}G(C)}if(!A)break s;Z=1;break l}h:{A=i[I>>2];w:{if(!A)break w;for(o=i[n+40>>2],r=I;_=o>>>0>k0[A+16>>2],r=_?r:A,A=i[(_<<2)+A>>2],!!A;);if((r|0)==(I|0))break w;if(o>>>0>=k0[r+16>>2])break h}r=U(48),i[t+44>>2]=r,i[t+48>>2]=42,i[t+52>>2]=-2147483600,A=s[10815]|s[10816]<<8|(s[10817]<<16|s[10818]<<24),n=s[10811]|s[10812]<<8|(s[10813]<<16|s[10814]<<24),l[r|0]=n,l[r+1|0]=n>>>8,l[r+2|0]=n>>>16,l[r+3|0]=n>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+42|0]=0,A=s[10851]|s[10852]<<8,l[r+40|0]=A,l[r+41|0]=A>>>8,A=s[10847]|s[10848]<<8|(s[10849]<<16|s[10850]<<24),n=s[10843]|s[10844]<<8|(s[10845]<<16|s[10846]<<24),l[r+32|0]=n,l[r+33|0]=n>>>8,l[r+34|0]=n>>>16,l[r+35|0]=n>>>24,l[r+36|0]=A,l[r+37|0]=A>>>8,l[r+38|0]=A>>>16,l[r+39|0]=A>>>24,A=s[10839]|s[10840]<<8|(s[10841]<<16|s[10842]<<24),n=s[10835]|s[10836]<<8|(s[10837]<<16|s[10838]<<24),l[r+24|0]=n,l[r+25|0]=n>>>8,l[r+26|0]=n>>>16,l[r+27|0]=n>>>24,l[r+28|0]=A,l[r+29|0]=A>>>8,l[r+30|0]=A>>>16,l[r+31|0]=A>>>24,A=s[10831]|s[10832]<<8|(s[10833]<<16|s[10834]<<24),n=s[10827]|s[10828]<<8|(s[10829]<<16|s[10830]<<24),l[r+16|0]=n,l[r+17|0]=n>>>8,l[r+18|0]=n>>>16,l[r+19|0]=n>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[10823]|s[10824]<<8|(s[10825]<<16|s[10826]<<24),n=s[10819]|s[10820]<<8|(s[10821]<<16|s[10822]<<24),l[r+8|0]=n,l[r+9|0]=n>>>8,l[r+10|0]=n>>>16,l[r+11|0]=n>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(f,2,2e3,t+44|0),l[t+55|0]<0&&G(i[t+44>>2]),Z=1;break l}l[i[r+20>>2]+49|0]=1}if(n=n+56|0,(w|0)==(n|0))break}Z=34}n=i[t+56>>2];break u}Z=34}if(n){if(r=n,A=i[t+60>>2],(r|0)!=(A|0)){for(;r=i[A-12>>2],r&&(i[A-8>>2]=r,G(r)),r=A-56|0,i[r>>2]=68500,o=i[A-36>>2],o&&(i[A-32>>2]=o,G(o)),A=r,(r|0)!=(n|0););r=i[t+56>>2]}i[t+60>>2]=n,G(r)}if((Z|0)!=34)break o}Z=0}l[t+99|0]<0&&G(i[t+88>>2]),r=i[k+4>>2],i[k+4>>2]=r-1,r||(V[i[i[k>>2]+8>>2]](k),g(k)),l[t+79|0]<0&&G(i[t+68>>2]),l[t+259|0]<0&&G(i[t+248>>2]),r=s[t+235|0]}r<<24>>24<0&&G(i[t+224>>2]);t:switch(Z-32|0){default:if(Z)break A;case 1:if(p=p+4|0,(h|0)!=(p|0))continue;break;case 0:break t}break}if(C=i[t+260>>2],W=i[t+264>>2],(C|0)==(W|0))break n;for(v=e+72|0;;){k=t+224|0,h=i[C>>2],W6(k,i[e+48>>2],h),A=l[t+235|0],r=(A|0)<0;t:{o:{if(((r?i[t+228>>2]:A)|0)!=4||(r=r?i[t+224>>2]:k,(s[r|0]|s[r+1|0]<<8|(s[r+2|0]<<16|s[r+3|0]<<24))!=1851877234))break o;r=U(36),i[r+16>>2]=0,i[r+20>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=72616,i[r+24>>2]=0,i[r+28>>2]=0,i[r+32>>2]=0,i[t+36>>2]=r,i[t+32>>2]=r+12,i[r+12>>2]=h,i[t+256>>2]=0,i[t+248>>2]=0,i[t+252>>2]=0,w8(t+80|0,i[e+48>>2],h,t+248|0);u:{if(i[t+80>>2]){r=i[t+84>>2],i[f>>2]=i[t+80>>2],i[f+4>>2]=r,i[f+16>>2]=i[t+96>>2],r=i[t+92>>2],i[f+8>>2]=i[t+88>>2],i[f+12>>2]=r,i[t+88>>2]=0,i[t+92>>2]=0,i[t+96>>2]=0,r=1;break u}u=t+12|0,k=i[t+32>>2],A=B-16|0,B=A,_=t+248|0,r=i[_>>2],n=i[_+4>>2]-r|0;l:{if(n>>>0<=7){if(r=U(32),i[A+4>>2]=r,i[A+8>>2]=25,i[A+12>>2]=-2147483616,k=s[14528]|s[14529]<<8|(s[14530]<<16|s[14531]<<24),n=s[14524]|s[14525]<<8|(s[14526]<<16|s[14527]<<24),l[r|0]=n,l[r+1|0]=n>>>8,l[r+2|0]=n>>>16,l[r+3|0]=n>>>24,l[r+4|0]=k,l[r+5|0]=k>>>8,l[r+6|0]=k>>>16,l[r+7|0]=k>>>24,l[r+25|0]=0,l[r+24|0]=s[14548],k=s[14544]|s[14545]<<8|(s[14546]<<16|s[14547]<<24),n=s[14540]|s[14541]<<8|(s[14542]<<16|s[14543]<<24),l[r+16|0]=n,l[r+17|0]=n>>>8,l[r+18|0]=n>>>16,l[r+19|0]=n>>>24,l[r+20|0]=k,l[r+21|0]=k>>>8,l[r+22|0]=k>>>16,l[r+23|0]=k>>>24,k=s[14536]|s[14537]<<8|(s[14538]<<16|s[14539]<<24),n=s[14532]|s[14533]<<8|(s[14534]<<16|s[14535]<<24),l[r+8|0]=n,l[r+9|0]=n>>>8,l[r+10|0]=n>>>16,l[r+11|0]=n>>>24,l[r+12|0]=k,l[r+13|0]=k>>>8,l[r+14|0]=k>>>16,l[r+15|0]=k>>>24,r0(u,2,136,A+4|0),l[A+15|0]>=0)break l;G(i[A+4>>2]);break l}Z=l[r+1|0]&1;s:{if(Z){if(n>>>0<=11){if(r=U(24),i[A+4>>2]=r,i[A+8>>2]=22,i[A+12>>2]=-2147483624,k=s[9265]|s[9266]<<8|(s[9267]<<16|s[9268]<<24),n=s[9261]|s[9262]<<8|(s[9263]<<16|s[9264]<<24),l[r|0]=n,l[r+1|0]=n>>>8,l[r+2|0]=n>>>16,l[r+3|0]=n>>>24,l[r+4|0]=k,l[r+5|0]=k>>>8,l[r+6|0]=k>>>16,l[r+7|0]=k>>>24,l[r+22|0]=0,k=s[9279]|s[9280]<<8|(s[9281]<<16|s[9282]<<24),n=s[9275]|s[9276]<<8|(s[9277]<<16|s[9278]<<24),l[r+14|0]=n,l[r+15|0]=n>>>8,l[r+16|0]=n>>>16,l[r+17|0]=n>>>24,l[r+18|0]=k,l[r+19|0]=k>>>8,l[r+20|0]=k>>>16,l[r+21|0]=k>>>24,k=s[9273]|s[9274]<<8|(s[9275]<<16|s[9276]<<24),n=s[9269]|s[9270]<<8|(s[9271]<<16|s[9272]<<24),l[r+8|0]=n,l[r+9|0]=n>>>8,l[r+10|0]=n>>>16,l[r+11|0]=n>>>24,l[r+12|0]=k,l[r+13|0]=k>>>8,l[r+14|0]=k>>>16,l[r+15|0]=k>>>24,r0(u,2,136,A+4|0),l[A+15|0]>=0)break l;G(i[A+4>>2]);break l}n=s[r+2|0]|s[r+3|0]<<8|(s[r+4|0]<<16|s[r+5|0]<<24),i[k+4>>2]=n<<24|(n&65280)<<8|(n>>>8&65280|n>>>24),p=s[r+7|0]<<16|s[r+6|0]<<24|s[r+8|0]<<8,o=10,n=9;break s}i[k+4>>2]=s[r+3|0]|s[r+2|0]<<8,p=s[r+4|0]<<8,o=6,n=5}if(i[k+8>>2]=s[r+n|0]|p,w=s[r+o|0],i[A>>2]=o|1,w)for(p=Z?32:16,Z=k+12|0,o=0;;){if(r=i[A>>2],n=i[_>>2],r>>>0>=i[_+4>>2]-n>>>0){if(r=U(24),i[A+4>>2]=r,i[A+8>>2]=22,i[A+12>>2]=-2147483624,k=s[9265]|s[9266]<<8|(s[9267]<<16|s[9268]<<24),n=s[9261]|s[9262]<<8|(s[9263]<<16|s[9264]<<24),l[r|0]=n,l[r+1|0]=n>>>8,l[r+2|0]=n>>>16,l[r+3|0]=n>>>24,l[r+4|0]=k,l[r+5|0]=k>>>8,l[r+6|0]=k>>>16,l[r+7|0]=k>>>24,l[r+22|0]=0,k=s[9279]|s[9280]<<8|(s[9281]<<16|s[9282]<<24),n=s[9275]|s[9276]<<8|(s[9277]<<16|s[9278]<<24),l[r+14|0]=n,l[r+15|0]=n>>>8,l[r+16|0]=n>>>16,l[r+17|0]=n>>>24,l[r+18|0]=k,l[r+19|0]=k>>>8,l[r+20|0]=k>>>16,l[r+21|0]=k>>>24,k=s[9273]|s[9274]<<8|(s[9275]<<16|s[9276]<<24),n=s[9269]|s[9270]<<8|(s[9271]<<16|s[9272]<<24),l[r+8|0]=n,l[r+9|0]=n>>>8,l[r+10|0]=n>>>16,l[r+11|0]=n>>>24,l[r+12|0]=k,l[r+13|0]=k>>>8,l[r+14|0]=k>>>16,l[r+15|0]=k>>>24,r0(u,2,136,A+4|0),l[A+15|0]>=0)break l;G(i[A+4>>2]);break l}n=s[r+n|0],i[A>>2]=r+1;s:{h:{w:switch(n|0){case 0:r=U(24),i[r+16>>2]=0,i[r+20>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=73408,i[r+12>>2]=73144,i[A+8>>2]=r,i[A+4>>2]=r+12;break h;case 1:r=U(32),i[r+16>>2]=0,i[r+20>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=73448,i[r+24>>2]=0,i[r+28>>2]=0,i[r+12>>2]=73188,i[A+8>>2]=r,i[A+4>>2]=r+12;break h;case 2:r=U(32),i[r+16>>2]=0,i[r+20>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=73488,i[r+24>>2]=0,i[r+28>>2]=0,i[r+12>>2]=73232,i[A+8>>2]=r,i[A+4>>2]=r+12;break h;case 3:if(r=U(32),i[r+16>>2]=1,i[r+28>>2]=0,i[r+20>>2]=0,i[r+24>>2]=0,i[r+4>>2]=1,i[r+8>>2]=0,i[r>>2]=73528,i[r+12>>2]=73276,i[A+8>>2]=r,i[A+4>>2]=r+12,n=i[r+4>>2],i[r+4>>2]=n-1,n)break h;V[i[i[r>>2]+8>>2]](r),g(r);break h;case 4:r=U(36),i[r+16>>2]=0,i[r+20>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=73568,i[r+24>>2]=0,i[r+28>>2]=0,i[r+32>>2]=0,i[r+12>>2]=73320,i[A+8>>2]=r,i[A+4>>2]=r+12;break h;case 5:r=U(44),i[r+16>>2]=0,i[r+20>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,i[r+40>>2]=0,i[r+32>>2]=0,i[r+36>>2]=0,i[r>>2]=73608,i[r+24>>2]=0,i[r+28>>2]=0,i[r+12>>2]=73364,i[A+8>>2]=r,i[A+4>>2]=r+12;break h;case 6:break w;default:break s}if(r=U(32),i[r+16>>2]=0,i[r+28>>2]=0,i[r+20>>2]=0,i[r+24>>2]=0,i[r+4>>2]=1,i[r+8>>2]=0,i[r>>2]=73528,i[r+12>>2]=73276,i[A+8>>2]=r,i[A+4>>2]=r+12,n=i[r+4>>2],i[r+4>>2]=n-1,n)break h;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[A+4>>2],V[i[i[r>>2]+12>>2]](u,r,_,p,A),y=i[u>>2];h:{if(y)break h;r=i[k+16>>2];w:{if(r>>>0>2]){i[r>>2]=i[A+4>>2],n=i[A+8>>2],i[r+4>>2]=n,n&&(i[n+4>>2]=i[n+4>>2]+1),r=r+8|0;break w}r=Q2(Z,A+4|0)}if(i[k+16>>2]=r,l[u+19|0]>=0)break h;G(i[u+8>>2])}r=i[A+8>>2];h:{if(!r||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break h;V[i[i[r>>2]+8>>2]](r),g(r)}if(y)break l}if(o=o+1|0,(w|0)==(o|0))break}if(r=i[19565],i[u>>2]=i[19564],i[u+4>>2]=r,r=u+8|0,l[78275]>=0){k=i[19567],i[r>>2]=i[19566],i[r+4>>2]=k,i[r+8>>2]=i[19568];break l}_0(r,i[19566],i[19567])}if(B=A+16|0,l[t+31|0]<0&&G(i[t+20>>2]),R){oe(t+68|0,R,h),o=i[t+68>>2],y=i[t+72>>2];l:{if((o|0)==(y|0)){r=40;break l}s:{for(;;){if(r=i[o+16>>2],(r|0)==1667527523){if(i[t+64>>2]=0,i[t+56>>2]=0,i[t+60>>2]=0,A=i[o+48>>2],r=i[o+44>>2],(A|0)!=(r|0)){if(k=A-r|0,(k|0)<0)break i;if(n=l0(U(k),r,k),(r|0)!=(A|0))for(_=k+n|0,k=n;;){h:{A=i[I>>2];w:{if(!A)break w;for(u=i[k>>2],r=I;w=u>>>0>k0[A+16>>2],r=w?r:A,A=i[(w<<2)+A>>2],!!A;);if((r|0)==(I|0))break w;if(u>>>0>=k0[r+16>>2])break h}r=U(48),i[t+44>>2]=r,i[t+48>>2]=42,i[t+52>>2]=-2147483600,k=s[10772]|s[10773]<<8|(s[10774]<<16|s[10775]<<24),A=s[10768]|s[10769]<<8|(s[10770]<<16|s[10771]<<24),l[r|0]=A,l[r+1|0]=A>>>8,l[r+2|0]=A>>>16,l[r+3|0]=A>>>24,l[r+4|0]=k,l[r+5|0]=k>>>8,l[r+6|0]=k>>>16,l[r+7|0]=k>>>24,l[r+42|0]=0,k=s[10808]|s[10809]<<8,l[r+40|0]=k,l[r+41|0]=k>>>8,k=s[10804]|s[10805]<<8|(s[10806]<<16|s[10807]<<24),A=s[10800]|s[10801]<<8|(s[10802]<<16|s[10803]<<24),l[r+32|0]=A,l[r+33|0]=A>>>8,l[r+34|0]=A>>>16,l[r+35|0]=A>>>24,l[r+36|0]=k,l[r+37|0]=k>>>8,l[r+38|0]=k>>>16,l[r+39|0]=k>>>24,k=s[10796]|s[10797]<<8|(s[10798]<<16|s[10799]<<24),A=s[10792]|s[10793]<<8|(s[10794]<<16|s[10795]<<24),l[r+24|0]=A,l[r+25|0]=A>>>8,l[r+26|0]=A>>>16,l[r+27|0]=A>>>24,l[r+28|0]=k,l[r+29|0]=k>>>8,l[r+30|0]=k>>>16,l[r+31|0]=k>>>24,k=s[10788]|s[10789]<<8|(s[10790]<<16|s[10791]<<24),A=s[10784]|s[10785]<<8|(s[10786]<<16|s[10787]<<24),l[r+16|0]=A,l[r+17|0]=A>>>8,l[r+18|0]=A>>>16,l[r+19|0]=A>>>24,l[r+20|0]=k,l[r+21|0]=k>>>8,l[r+22|0]=k>>>16,l[r+23|0]=k>>>24,k=s[10780]|s[10781]<<8|(s[10782]<<16|s[10783]<<24),A=s[10776]|s[10777]<<8|(s[10778]<<16|s[10779]<<24),l[r+8|0]=A,l[r+9|0]=A>>>8,l[r+10|0]=A>>>16,l[r+11|0]=A>>>24,l[r+12|0]=k,l[r+13|0]=k>>>8,l[r+14|0]=k>>>16,l[r+15|0]=k>>>24,r0(f,2,2e3,t+44|0),l[t+55|0]<0&&G(i[t+44>>2]),G(n),r=1;break s}y7(i[r+20>>2],h),r=i[e+76>>2];h:{if(r>>>0>2]){i[r>>2]=i[t+32>>2],A=i[t+36>>2],i[r+4>>2]=A,A&&(i[A+4>>2]=i[A+4>>2]+1),r=r+8|0;break h}r=Q2(v,t+32|0)}if(i[e+76>>2]=r,k=k+4|0,(_|0)==(k|0))break}G(n)}r=i[o+16>>2]}if((r|0)==1835103083){if(n=0,i[t+64>>2]=0,i[t+56>>2]=0,i[t+60>>2]=0,A=0,r=i[o+48>>2],k=i[o+44>>2],(r|0)!=(k|0)){if(r=r-k|0,(r|0)<0)break i;A=U(r),i[t+56>>2]=A,u=r+A|0,i[t+64>>2]=u,l0(A,k,r),i[t+60>>2]=u}_=0,r=i[t+32>>2],k=i[r+16>>2],r=i[r+12>>2],w=k-r|0;h:{if((w|0)<=0){r=44;break h}w:{for(;;){if(A=0,i[t+52>>2]=0,i[t+44>>2]=0,i[t+48>>2]=0,Z=0,(r|0)!=(k|0)){if((w|0)<0)break r;for(Z=U(w),i[t+44>>2]=Z,i[t+52>>2]=w+Z,A=Z;i[A>>2]=i[r>>2],u=i[r+4>>2],i[A+4>>2]=u,u&&(i[u+4>>2]=i[u+4>>2]+1),A=A+8|0,r=r+8|0,(k|0)!=(r|0););i[t+48>>2]=A}if(w=n<<3,r=i[w+Z>>2],k=V[i[i[r>>2]+8>>2]](r)|0,r=Z,(A|0)!=(r|0)){for(;;){r=i[A-4>>2];_:{if(!r||(u=i[r+4>>2],i[r+4>>2]=u-1,u))break _;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(Z|0)==(A|0))break}r=i[t+44>>2]}i[t+48>>2]=Z,G(r);_:{if((k|0)!=4)break _;if(p=0,i[t+52>>2]=0,i[t+44>>2]=0,i[t+48>>2]=0,A=0,Z=0,r=i[t+32>>2],k=i[r+16>>2],r=i[r+12>>2],(k|0)!=(r|0)){if(A=k-r|0,(A|0)<0)break k;for(Z=U(A),i[t+44>>2]=Z,i[t+52>>2]=A+Z,A=Z;i[A>>2]=i[r>>2],u=i[r+4>>2],i[A+4>>2]=u,u&&(i[u+4>>2]=i[u+4>>2]+1),A=A+8|0,r=r+8|0,(k|0)!=(r|0););i[t+48>>2]=A}k=0,r=w+Z|0,u=i[r>>2];v:{if(!u)break v;if(k=N0(u,72776,73344),!k){k=0;break v}if(p=i[r+4>>2],!p){p=0;break v}i[p+4>>2]=i[p+4>>2]+1}if(r=Z,(A|0)!=(r|0)){for(;;){r=i[A-4>>2];v:{if(!r||(u=i[r+4>>2],i[r+4>>2]=u-1,u))break v;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(Z|0)==(A|0))break}r=i[t+44>>2]}i[t+48>>2]=Z,G(r),r=i[t+56>>2];v:{if(i[t+60>>2]-r>>2>>>0<=_>>>0){r=U(64),i[t+44>>2]=r,i[t+48>>2]=60,i[t+52>>2]=-2147483584,k=s[11447]|s[11448]<<8|(s[11449]<<16|s[11450]<<24),A=s[11443]|s[11444]<<8|(s[11445]<<16|s[11446]<<24),l[r|0]=A,l[r+1|0]=A>>>8,l[r+2|0]=A>>>16,l[r+3|0]=A>>>24,l[r+4|0]=k,l[r+5|0]=k>>>8,l[r+6|0]=k>>>16,l[r+7|0]=k>>>24,l[r+60|0]=0,k=s[11499]|s[11500]<<8|(s[11501]<<16|s[11502]<<24),l[r+56|0]=k,l[r+57|0]=k>>>8,l[r+58|0]=k>>>16,l[r+59|0]=k>>>24,k=s[11495]|s[11496]<<8|(s[11497]<<16|s[11498]<<24),A=s[11491]|s[11492]<<8|(s[11493]<<16|s[11494]<<24),l[r+48|0]=A,l[r+49|0]=A>>>8,l[r+50|0]=A>>>16,l[r+51|0]=A>>>24,l[r+52|0]=k,l[r+53|0]=k>>>8,l[r+54|0]=k>>>16,l[r+55|0]=k>>>24,k=s[11487]|s[11488]<<8|(s[11489]<<16|s[11490]<<24),A=s[11483]|s[11484]<<8|(s[11485]<<16|s[11486]<<24),l[r+40|0]=A,l[r+41|0]=A>>>8,l[r+42|0]=A>>>16,l[r+43|0]=A>>>24,l[r+44|0]=k,l[r+45|0]=k>>>8,l[r+46|0]=k>>>16,l[r+47|0]=k>>>24,k=s[11479]|s[11480]<<8|(s[11481]<<16|s[11482]<<24),A=s[11475]|s[11476]<<8|(s[11477]<<16|s[11478]<<24),l[r+32|0]=A,l[r+33|0]=A>>>8,l[r+34|0]=A>>>16,l[r+35|0]=A>>>24,l[r+36|0]=k,l[r+37|0]=k>>>8,l[r+38|0]=k>>>16,l[r+39|0]=k>>>24,k=s[11471]|s[11472]<<8|(s[11473]<<16|s[11474]<<24),A=s[11467]|s[11468]<<8|(s[11469]<<16|s[11470]<<24),l[r+24|0]=A,l[r+25|0]=A>>>8,l[r+26|0]=A>>>16,l[r+27|0]=A>>>24,l[r+28|0]=k,l[r+29|0]=k>>>8,l[r+30|0]=k>>>16,l[r+31|0]=k>>>24,k=s[11463]|s[11464]<<8|(s[11465]<<16|s[11466]<<24),A=s[11459]|s[11460]<<8|(s[11461]<<16|s[11462]<<24),l[r+16|0]=A,l[r+17|0]=A>>>8,l[r+18|0]=A>>>16,l[r+19|0]=A>>>24,l[r+20|0]=k,l[r+21|0]=k>>>8,l[r+22|0]=k>>>16,l[r+23|0]=k>>>24,k=s[11455]|s[11456]<<8|(s[11457]<<16|s[11458]<<24),A=s[11451]|s[11452]<<8|(s[11453]<<16|s[11454]<<24),l[r+8|0]=A,l[r+9|0]=A>>>8,l[r+10|0]=A>>>16,l[r+11|0]=A>>>24,l[r+12|0]=k,l[r+13|0]=k>>>8,l[r+14|0]=k>>>16,l[r+15|0]=k>>>24,r0(f,2,0,t+44|0),l[t+55|0]<0&&G(i[t+44>>2]),r=0;break v}Z:{if(A=i[e+16>>2],(I|0)!=(A|0))for(u=i[r+(_<<2)>>2];;){if((u|0)==i[A+16>>2])break Z;w=A,r=i[A+4>>2];m:{if(r){for(;;)if(A=r,r=i[r>>2],!r)break m}for(;A=i[w+8>>2],r=i[A>>2]!=(w|0),w=A,!!r;);}if((A|0)==(I|0))break}r=U(48),i[t+44>>2]=r,i[t+48>>2]=43,i[t+52>>2]=-2147483600,k=s[10679]|s[10680]<<8|(s[10681]<<16|s[10682]<<24),A=s[10675]|s[10676]<<8|(s[10677]<<16|s[10678]<<24),l[r|0]=A,l[r+1|0]=A>>>8,l[r+2|0]=A>>>16,l[r+3|0]=A>>>24,l[r+4|0]=k,l[r+5|0]=k>>>8,l[r+6|0]=k>>>16,l[r+7|0]=k>>>24,l[r+43|0]=0,k=s[10714]|s[10715]<<8|(s[10716]<<16|s[10717]<<24),l[r+39|0]=k,l[r+40|0]=k>>>8,l[r+41|0]=k>>>16,l[r+42|0]=k>>>24,k=s[10711]|s[10712]<<8|(s[10713]<<16|s[10714]<<24),A=s[10707]|s[10708]<<8|(s[10709]<<16|s[10710]<<24),l[r+32|0]=A,l[r+33|0]=A>>>8,l[r+34|0]=A>>>16,l[r+35|0]=A>>>24,l[r+36|0]=k,l[r+37|0]=k>>>8,l[r+38|0]=k>>>16,l[r+39|0]=k>>>24,k=s[10703]|s[10704]<<8|(s[10705]<<16|s[10706]<<24),A=s[10699]|s[10700]<<8|(s[10701]<<16|s[10702]<<24),l[r+24|0]=A,l[r+25|0]=A>>>8,l[r+26|0]=A>>>16,l[r+27|0]=A>>>24,l[r+28|0]=k,l[r+29|0]=k>>>8,l[r+30|0]=k>>>16,l[r+31|0]=k>>>24,k=s[10695]|s[10696]<<8|(s[10697]<<16|s[10698]<<24),A=s[10691]|s[10692]<<8|(s[10693]<<16|s[10694]<<24),l[r+16|0]=A,l[r+17|0]=A>>>8,l[r+18|0]=A>>>16,l[r+19|0]=A>>>24,l[r+20|0]=k,l[r+21|0]=k>>>8,l[r+22|0]=k>>>16,l[r+23|0]=k>>>24,k=s[10687]|s[10688]<<8|(s[10689]<<16|s[10690]<<24),A=s[10683]|s[10684]<<8|(s[10685]<<16|s[10686]<<24),l[r+8|0]=A,l[r+9|0]=A>>>8,l[r+10|0]=A>>>16,l[r+11|0]=A>>>24,l[r+12|0]=k,l[r+13|0]=k>>>8,l[r+14|0]=k>>>16,l[r+15|0]=k>>>24,r0(f,2,0,t+44|0),l[t+55|0]<0&&G(i[t+44>>2]),r=0;break v}r=I,A=i[r>>2];Z:{m:{if(!A)break m;for(;w=u>>>0>k0[A+16>>2],r=w?r:A,A=i[(w<<2)+A>>2],!!A;);if((r|0)==(I|0))break m;if(u>>>0>=k0[r+16>>2])break Z}r=I}if(A=i[r+20>>2],i[t+4>>2]=A,r=i[r+24>>2],i[t+8>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),i[k+20>>2]=u,!i[k+12>>2]){ei(t+44|0,i[i[A+16>>2]+48>>2],i[A+20>>2]),r=i[t+44>>2],r?r=i[r+56>>2]:r=0,A=i[t+48>>2];Z:{if(!A||(u=i[A+4>>2],i[A+4>>2]=u-1,u))break Z;V[i[i[A>>2]+8>>2]](A),g(A)}i[k+12>>2]=r}if(!i[k+16>>2]){r=i[t+4>>2],ei(t+44|0,i[i[r+16>>2]+48>>2],i[r+20>>2]),r=i[t+44>>2],r?r=i[r+60>>2]:r=0,A=i[t+48>>2];Z:{if(!A||(u=i[A+4>>2],i[A+4>>2]=u-1,u))break Z;V[i[i[A>>2]+8>>2]](A),g(A)}i[k+16>>2]=r}VA(e,t+4|0),r=i[t+8>>2];Z:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break Z;V[i[i[r>>2]+8>>2]](r),g(r)}_=_+1|0,r=1}v:{if(!p||(k=i[p+4>>2],i[p+4>>2]=k-1,k))break v;V[i[i[p>>2]+8>>2]](p),g(p)}if(r)break _;n=1,r=1;break w}if(n=n+1|0,r=i[t+32>>2],k=i[r+16>>2],r=i[r+12>>2],w=k-r|0,!((n|0)>3))break}n=0,r=44}A=i[t+56>>2]}if(A&&(i[t+60>>2]=A,G(A)),n)break s}if(o=o+56|0,(y|0)==(o|0))break}r=40}o=i[t+68>>2]}if(o){if(A=i[t+72>>2],w=o,(A|0)!=(o|0)){for(;k=i[A-12>>2],k&&(i[A-8>>2]=k,G(k)),k=A-56|0,i[k>>2]=68500,n=i[A-36>>2],n&&(i[A-32>>2]=n,G(n)),A=k,(o|0)!=(A|0););w=i[t+68>>2]}i[t+72>>2]=o,G(w)}if((r|0)!=40)break u}r=0}l[t+99|0]<0&&G(i[t+88>>2]),k=i[t+248>>2],k&&(i[t+252>>2]=k,G(k)),k=i[t+36>>2];u:{if(!k||(A=i[k+4>>2],i[k+4>>2]=A-1,A))break u;V[i[i[k>>2]+8>>2]](k),g(k)}if(r)break t}r=0}if(l[t+235|0]<0&&G(i[t+224>>2]),r){if((r|0)==38)break n;break A}if(C=C+4|0,(W|0)==(C|0))break}}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break A}_0(f,i[19566],i[19567]);break A}break r}if(f=i[t+228>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break A;V[i[i[f>>2]+8>>2]](f),g(f)}if(!D||(f=i[D+4>>2],i[D+4>>2]=f-1,f))break e;V[i[i[D>>2]+8>>2]](D),g(D)}f=i[t+260>>2],f&&(i[t+264>>2]=f,G(f)),B=t+272|0;return}y0(),P()}y0(),P()}function h8(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0;i:{r:{e:{if(!n){y=i[f+18588>>2],f0=i[y+124>>2];A:{if(!k){if(u=i[y+208>>2],o=e>>u,(o|0)<0||(w=i[y+212>>2],(w|0)<=(o|0)))break r;if(u=r>>u,(u|0)<0|(u|0)>=i[y+216>>2])break i;o=s[(o+i[y+200>>2]|0)+m(u,w)|0],o=o>>>0<=34?o:0;break A}if(u=i[y+228>>2],o=m(i[f0+16852>>2],e)>>u,(o|0)<0||(w=i[y+232>>2],(w|0)<=(o|0)))break r;if(u=m(i[f0+16856>>2],r)>>u,(u|0)<0|(u|0)>=i[y+236>>2])break i;o=s[(o+i[y+220>>2]|0)+m(u,w)|0]&63}n0=o>>>0>34?1:o,C=n0,z=i[y+(k?44:40)>>2],o=m(z,r),u=i[(y+(k<<2)|0)+4>>2];A:{f:{k:{n:{t:{o:{if(i[i[y+124>>2]+(k?16840:16832)>>2]>=9){R=u+(e+o<<1)|0,a=B-528|0,B=a,W=B-336|0,B=W,i[W+24>>2]=k,i[W+16>>2]=y,i[W+32>>2]=r,i[W+28>>2]=e,v=a+256|0,i[W+12>>2]=v,i[W+20>>2]=A;u:{if((A|0)<65){i[W+316>>2]=16843009,h=W+12|0,An(h);l:{if(i[h+8>>2]<33){if(u=i[h+4>>2],o=i[h+12>>2],Z=i[u+(o?44:40)>>2],p=i[h+16>>2],w=i[h+24>>2],I=i[w+16936>>2],H=i[h+20>>2],I=i[(i[i[h+28>>2]+8496>>2]+(m(p,i[h+296>>2])>>I<<2)|0)+(m(i[w+16924>>2],m(H,i[h+300>>2])>>I)<<2)>>2],D=i[(u+(o<<2)|0)+4>>2],o=i[h+308>>2],!(s[h+304|0]!=1|(o|0)<=0))for(u=D-2|0,w=o-1|0;;){o=w;s:{if(s[h+304|0]!=1)break s;J=i[h+28>>2],S=m(i[h+296>>2],p-1|0),E=i[h+24>>2],q=i[E+16936>>2],d=o+H|0,A0=m(d,i[h+300>>2]),E=i[(i[J+8496>>2]+(S>>q<<2)|0)+(m(i[E+16924>>2],A0>>q)<<2)>>2];h:{if(s[J+24|0]){if(J=S,w=i[h+4>>2],S=i[w+168>>2],J=J>>S,(J|0)<0||(q=i[w+172>>2],(q|0)<=(J|0)))break r;if(S=A0>>S,(S|0)<0|(S|0)>=i[w+176>>2])break i;if(s[((i[w+160>>2]+m(J,3)|0)+m(m(S,q),3)|0)+1|0]&3)break s;if((I|0)>=(E|0))break h;break s}if((I|0)<(E|0))break s}i[h+316>>2]||(X[h+320>>1]=Q[(u+(p<<1)|0)+(m(Z,d)<<1)>>1]),w=o^-1,l[w+i[h+292>>2]|0]=1,X[i[h>>2]+(w<<1)>>1]=Q[(u+(i[h+16>>2]<<1)|0)+(m(Z,o+i[h+20>>2]|0)<<1)>>1],l[i[h+292>>2]-o|0]=1,X[i[h>>2]-(o<<1)>>1]=Q[(u+(i[h+16>>2]<<1)|0)+(m(Z,(o+i[h+20>>2]|0)-1|0)<<1)>>1],w=1-o|0,l[w+i[h+292>>2]|0]=1,X[i[h>>2]+(w<<1)>>1]=Q[(u+(i[h+16>>2]<<1)|0)+(m(Z,(o+i[h+20>>2]|0)-2|0)<<1)>>1],w=2-o|0,l[w+i[h+292>>2]|0]=1,p=i[h+16>>2],H=i[h+20>>2],X[i[h>>2]+(w<<1)>>1]=Q[(u+(p<<1)|0)+(m(Z,(o+H|0)-3|0)<<1)>>1],i[h+316>>2]=i[h+316>>2]+4}if(w=o-4|0,!((o|0)>3))break}s:{if(!s[h+307|0])break s;o=i[h+28>>2],w=m(i[h+296>>2],p-1|0),u=i[h+24>>2],E=i[u+16936>>2],J=H-1|0,H=m(J,i[h+300>>2]),u=i[(i[o+8496>>2]+(w>>E<<2)|0)+(m(i[u+16924>>2],H>>E)<<2)>>2];h:{if(s[o+24|0]){if(o=i[h+4>>2],E=i[o+168>>2],w=w>>E,(w|0)<0||(S=i[o+172>>2],(S|0)<=(w|0)))break r;if(H=H>>E,(H|0)<0|(H|0)>=i[o+176>>2])break i;if(s[((i[o+160>>2]+m(w,3)|0)+m(m(H,S),3)|0)+1|0]&3)break s;if((u|0)<=(I|0))break h;break s}if((u|0)>(I|0))break s}o=m(Z,J),i[h+316>>2]||(X[h+320>>1]=Q[((D+(p<<1)|0)+(o<<1)|0)-2>>1]),X[i[h>>2]>>1]=Q[((D+(p<<1)|0)+(o<<1)|0)-2>>1],l[i[h+292>>2]]=1,i[h+316>>2]=i[h+316>>2]+1}if(w=i[h+312>>2],(w|0)>0)for(u=0;;){s:{if(s[h+(i[h+8>>2]>(u|0)?305:306)|0]!=1)break s;o=i[h+28>>2],p=i[h+16>>2],E=m(i[h+296>>2],p+u|0),H=i[h+24>>2],J=i[H+16936>>2],S=i[h+20>>2]-1|0,q=m(S,i[h+300>>2]),H=i[(i[o+8496>>2]+(E>>J<<2)|0)+(m(i[H+16924>>2],q>>J)<<2)>>2];h:{if(s[o+24|0]){if(o=i[h+4>>2],J=i[o+168>>2],E=E>>J,(E|0)<0||(d=i[o+172>>2],(d|0)<=(E|0)))break r;if(J=q>>J,(J|0)<0|(J|0)>=i[o+176>>2])break i;if(s[((i[o+160>>2]+m(E,3)|0)+m(m(J,d),3)|0)+1|0]&3)break s;if((I|0)>=(H|0))break h;break s}if((I|0)<(H|0))break s}w=m(Z,S),i[h+316>>2]||(X[h+320>>1]=Q[((D+(p<<1)|0)+(u<<1)|0)+(w<<1)>>1]),H=u|1,o=D+(u<<1)|0,X[i[h>>2]+(H<<1)>>1]=Q[(o+(p<<1)|0)+(w<<1)>>1],l[H+i[h+292>>2]|0]=1,w=u|2,X[i[h>>2]+(w<<1)>>1]=Q[((o+(i[h+16>>2]<<1)|0)+(m(Z,i[h+20>>2]-1|0)<<1)|0)+2>>1],l[w+i[h+292>>2]|0]=1,w=u|3,X[i[h>>2]+(w<<1)>>1]=Q[((o+(i[h+16>>2]<<1)|0)+(m(Z,i[h+20>>2]-1|0)<<1)|0)+4>>1],l[w+i[h+292>>2]|0]=1,w=u+4|0,X[i[h>>2]+(w<<1)>>1]=Q[((o+(i[h+16>>2]<<1)|0)+(m(Z,i[h+20>>2]-1|0)<<1)|0)+6>>1],l[w+i[h+292>>2]|0]=1,i[h+316>>2]=i[h+316>>2]+4,w=i[h+312>>2]}if(u=u+4|0,!((w|0)>(u|0)))break}break l}break o}u=i[W+328>>2],o=i[W+20>>2],p=o<<2,w=p|1;l:{if((u|0)==(w|0))break l;if(!u){if(h=0,Z=o<<1,u=0-Z|0,(u|0)>(Z|0))break l;for(I=w&5,o=1<>2]+124>>2]+(i[W+24>>2]?16840:16832)>>2]-1,w=i[W+12>>2];X[w+(u<<1)>>1]=o,u=u+1|0,h=h+1|0,(I|0)!=(h|0););if(p>>>0<7)break l;for(p=w+12|0,I=w+10|0,D=w+8|0,H=w+6|0,E=w+4|0,J=w+2|0;h=u<<1,X[h+w>>1]=o,X[h+J>>1]=o,X[h+E>>1]=o,X[h+H>>1]=o,X[h+D>>1]=o,X[h+I>>1]=o,X[h+p>>1]=o,h=u+7|0,X[w+(h<<1)>>1]=o,u=u+8|0,(h|0)!=(Z|0););break l}if(o=o<<1,u=0-o|0,w=i[W+304>>2],s[w-o|0]||(X[i[W+12>>2]+(u<<1)>>1]=Q[W+332>>1]),(o|0)<=(u|0))break l;for(u=u|1,h=i[W+12>>2];s[u+w|0]||(Z=h+(u<<1)|0,X[Z>>1]=Q[Z-2>>1]),Z=u+1|0,s[Z+w|0]||(p=h+(Z<<1)|0,X[p>>1]=Q[p-2>>1]),u=u+2|0,(o|0)!=(Z|0););}B=W+336|0;break u}break t}u=i[y+124>>2];u:{if(s[u+16825|0]||k&&(_=k,i[u+16848>>2]!=3))break u;w=B-272|0,B=w;l:{if((A|0)==4|(C|0)==1)break l;o=(C|0)<26?26-C|0:C-26|0,h=(C|0)<10?10-C|0:C-10|0,o=(o|0)<(h|0)?o:h;s:{h:switch(a0(A-8|0,29)|0){case 1:if((o|0)>1)break s;break l;case 3:if((o|0)>0)break s;break l;case 7:break l;case 0:break h;default:break n}if((o|0)<8)break l}s:{h:{w:{if(!(!s[u+8997|0]|(_|(A|0)!=32))&&(_=Q[v+128>>1],o=Q[v>>1],W=(_+o|0)-(Q[v+64>>1]<<1)|0,h=W>>31,Z=1<>2]-5,(Z|0)>((h^W)-h|0)))break w;u=w+128|0;break h}if(u=w+128|0,h=Q[v-128>>1],p=(h+o|0)-(Q[v+-64>>1]<<1)|0,W=p>>31,Z>>>0<=(W^p)-W>>>0)break h;for(X[w+256>>1]=_,X[w>>1]=h,X[w+128>>1]=o,W=_-o|0,Z=h-o|0,_=1;;){if(h=_<<1,X[u-h>>1]=o+(m(_,Z)+32>>>6|0),X[u+h>>1]=o+(m(_,W)+32>>>6|0),h=_+1|0,(h|0)!=64){X[((_^-1)<<1)+u>>1]=o+(m(h,Z)+32>>>6|0),X[(h<<1)+u>>1]=o+(m(h,W)+32>>>6|0),_=_+2|0;continue}break}p=0-(A<<1)|0;break s}if(o=w+128|0,_=A<<2,X[o-_>>1]=Q[v-_>>1],X[o+_>>1]=Q[_+v>>1],h=A<<1,p=0-h|0,_=1-h|0,(_|0)>=(h|0))break s;for(Z=_<<1,D=v-2|0,_=2-h|0,W=Q[v+(_<<1)>>1],X[Z+o>>1]=(Q[D+Z>>1]+(W+(Q[v+Z>>1]<<1)|0)|0)+2>>>2;Z=_<<1,H=Z+2|0,I=Q[H+v>>1],X[o+Z>>1]=(Q[Z+D>>1]+(I+(W<<1)|0)|0)+2>>>2,_=_+2|0,W=Q[v+(_<<1)>>1],X[o+H>>1]=(Q[v+Z>>1]+(W+(I<<1)|0)|0)+2>>>2,(h|0)!=(_|0););}o=p<<1,l0(o+v|0,o+u|0,A<<3|2)}B=w+272|0}u:{l:switch(C|0){case 0:if(w=1,(A|0)>=2){for(u=0,o=A;w=u,u=u+1|0,_=o>>>0>3,o=o>>>1|0,!!_;);w=w+2|0}if((A|0)<=0)break u;for(H=A&2147483646,E=A&1,_=A-1|0,J=Q[v+((A^-1)<<1)>>1],h=Q[(v+(A<<1)|0)+2>>1],o=0;;){if(C=_-o|0,u=o+1|0,y=m(u,J),W=R+(m(o,z)<<1)|0,Z=Q[v+((o^-1)<<1)>>1],o=0,p=0,(A|0)!=1)for(;I=o|1,D=I<<1,X[W+(o<<1)>>1]=y+(((m(Z,_-o|0)+A|0)+m(h,I)|0)+m(C,Q[v+D>>1])|0)>>w,o=o+2|0,X[W+D>>1]=y+(((m(Z,_-I|0)+A|0)+m(h,o)|0)+m(C,Q[v+(o<<1)>>1])|0)>>w,p=p+2|0,(H|0)!=(p|0););if(E&&(S=W+(o<<1)|0,Z=m(Z,_-o|0)+A|0,o=o+1|0,X[S>>1]=y+((Z+m(o,h)|0)+m(C,Q[v+(o<<1)>>1])|0)>>w),o=u,(o|0)==(A|0))break}break u;case 1:if(u=0,_=1,(A|0)>=2){for(o=A;w=u,u=u+1|0,_=o>>>0>3,o=o>>>1|0,!!_;);_=w+2|0}s:{h:{w:{_:{if((A|0)>0){if(C=A&1,(A|0)!=1)break _;w=0,u=0;break w}if(k)break s;o=A>>_;break h}for(y=A&2147483646,o=0,u=0,h=0;w=o+2|0,u=Q[v+((o^2147483646)<<1)>>1]+(Q[v+(w<<1)>>1]+(Q[v+((o^-1)<<1)>>1]+(Q[(v+(o<<1)|0)+2>>1]+u|0)|0)|0)|0,o=w,h=h+2|0,(y|0)!=(h|0););}if(C&&(u=Q[v+((w^-1)<<1)>>1]+(Q[(v+(w<<1)|0)+2>>1]+u|0)|0),o=A+u>>_,!k&(A|0)<=31)break h;if((A|0)<=0)break s;for(y=A&2147483640,v=A&7,w=0,W=A>>>0<8;;){if(C=R+(m(w,z)<<1)|0,u=0,h=0,!W)for(;_=C+(u<<1)|0,X[_>>1]=o,X[_+2>>1]=o,X[_+4>>1]=o,X[_+6>>1]=o,X[_+8>>1]=o,X[_+10>>1]=o,X[_+12>>1]=o,X[_+14>>1]=o,u=u+8|0,h=h+8|0,(y|0)!=(h|0););if(h=0,v)for(;X[C+(u<<1)>>1]=o,u=u+1|0,h=h+1|0,(v|0)!=(h|0););if(w=w+1|0,(w|0)==(A|0))break}break s}if(u=1,X[R>>1]=(Q[v+2>>1]+(Q[v-2>>1]+(o<<1)|0)|0)+2>>>2,(A|0)<2)break s;if(_=A-1|0,y=_&3,C=m(o,3)+2|0,W=A-2|0,W>>>0>=3)for(p=_&-4,w=0;h=u<<1,Z=h+2|0,X[h+R>>1]=C+Q[v+Z>>1]>>>2,E=Z+R|0,Z=h+4|0,X[E>>1]=C+Q[Z+v>>1]>>>2,h=h+6|0,X[Z+R>>1]=C+Q[h+v>>1]>>>2,u=u+4|0,X[h+R>>1]=C+Q[v+(u<<1)>>1]>>>2,w=w+4|0,(p|0)!=(w|0););if(y)for(h=0;w=R+(u<<1)|0,u=u+1|0,X[w>>1]=C+Q[v+(u<<1)>>1]>>>2,h=h+1|0,(y|0)!=(h|0););if((A|0)<2)break s;if(u=1,w=m(o,3)+2|0,W)for(C=_&-2,h=0;X[R+(m(u,z)<<1)>>1]=w+Q[v+((u^-1)<<1)>>1]>>>2,X[R+(m(z,u+1|0)<<1)>>1]=w+Q[v+(-2-u<<1)>>1]>>>2,u=u+2|0,h=h+2|0,(C|0)!=(h|0););if(_&1&&(X[R+(m(u,z)<<1)>>1]=w+Q[v+((u^-1)<<1)>>1]>>>2),(A|0)<2)break s;for(y=_&-8,C=_&7,w=1;;){if(_=R+(m(w,z)<<1)|0,u=1,W>>>0>=7)for(Z=_+14|0,p=_+12|0,I=_+10|0,D=_+8|0,H=_+6|0,E=_+4|0,J=_+2|0,h=0;v=u<<1,X[v+_>>1]=o,X[v+J>>1]=o,X[v+E>>1]=o,X[v+H>>1]=o,X[v+D>>1]=o,X[v+I>>1]=o,X[v+p>>1]=o,X[v+Z>>1]=o,u=u+8|0,h=h+8|0,(y|0)!=(h|0););if(h=0,C)for(;X[_+(u<<1)>>1]=o,u=u+1|0,h=h+1|0,(C|0)!=(h|0););if(w=w+1|0,(w|0)==(A|0))break}}break u;default:break l}if(o=i[y+124>>2],H=i[o+(k?16840:16832)>>2],s[o+16822|0]){if(u=i[y+168>>2],o=e>>u,(o|0)<0||(w=i[y+172>>2],(w|0)<=(o|0)))break r;if(u=r>>u,(u|0)<0|(u|0)>=i[y+176>>2])break i;w=(s[((i[y+160>>2]+m(o,3)|0)+m(m(u,w),3)|0)+1|0]&8)>>>3|0}else w=0;o=0,_=0,y=B-528|0,B=y;l:{s:{h:{if((C|0)<35){if((C|0)>1){if(h=y+256|0,W=i[(C<<2)+45360>>2],C>>>0<=17){w:{if((A|0)<0)break w;if(u=A+1|0,Z=u&3,A>>>0>=3)for(p=u&-4;u=o<<1,X[u+h>>1]=Q[v-u>>1],I=u|2,X[I+h>>1]=Q[v-I>>1],I=u|4,X[I+h>>1]=Q[v-I>>1],u=u|6,X[u+h>>1]=Q[v-u>>1],o=o+4|0,_=_+4|0,(p|0)!=(_|0););if(!Z)break w;for(u=0;_=o<<1,X[_+h>>1]=Q[v-_>>1],o=o+1|0,u=u+1|0,(Z|0)!=(u|0););}if(u=C-11|0,u>>>0<15)break h;if(Z=A<<1,(Z|0)<=(A|0))break s;if(o=A,p=o&3,p)for(_=0,u=o;o=u+1|0,X[h+(o<<1)>>1]=Q[v+((u^-1)<<1)>>1],u=o,_=_+1|0,(p|0)!=(_|0););if(A-1>>>0<3)break s;for(_=h+6|0,p=h+4|0,I=h+2|0;u=o<<1,X[u+I>>1]=Q[v+((o^-1)<<1)>>1],X[u+p>>1]=Q[v+(-2-o<<1)>>1],X[u+_>>1]=Q[v+(-3-o<<1)>>1],u=o+4|0,X[h+(u<<1)>>1]=Q[v+(-4-o<<1)>>1],o=u,(o|0)!=(Z|0););break s}(A|0)>=0&&l0(h,v,(A<<1)+2|0),u=C-11|0;w:{if(u>>>0>=15){if(o=A<<1,(o|0)<=(A|0))break w;l0((o+y|0)+258|0,(o+v|0)+2|0,o);break w}if(_=m(A,W),o=_>>5,(o|0)>-2)break w;for(u=i[(u<<2)+45504>>2],_&32&&(X[h+(o<<1)>>1]=Q[v-(m(o,u)+128>>8<<1)>>1],o=o+1|0);X[h+(o<<1)>>1]=Q[v-(m(o,u)+128>>8<<1)>>1],_=o+1|0,X[h+(_<<1)>>1]=Q[v-(m(u,_)+128>>8<<1)>>1],o=o+2|0,!!o;);}if((A|0)>0)for(S=y+258|0,q=A&2147483646,d=A&1,A0=A<<1,j=z<<1,u=0;;){o=u,u=o+1|0,Z=m(W,u),_=Z>>5<<1,Z=Z&31;w:{if(Z){if(p=R+(m(o,z)<<1)|0,I=32-Z|0,D=h+_|0,o=0,(A|0)!=1)for(L=D+4|0,_=0;E=o<<1,h0=E+D|0,J=Q[h0+4>>1],X[p+E>>1]=(m(I,Q[h0+2>>1])+m(Z,J)|0)+16>>>5,E=E|2,X[E+p>>1]=(m(I,J)+m(Z,Q[E+L>>1])|0)+16>>>5,o=o+2|0,_=_+2|0,(q|0)!=(_|0););if(!d)break w;_=o<<1,o=_+D|0,X[_+p>>1]=(m(I,Q[o+2>>1])+m(Z,Q[o+4>>1])|0)+16>>>5;break w}l0(R+m(o,j)|0,_+S|0,A0)}if((A|0)==(u|0))break}if((C|0)!=26|A-32>>>0<4294967265|(k|w))break l;for(u=-1<>1]+(Q[v+((o^-1)<<1)>>1]-Q[v>>1]>>1)|0,X[R+(m(o,z)<<1)>>1]=(w|0)>=0?(u|0)>(w|0)?w:u:0,o=o+1|0,(o|0)!=(A|0););break l}break k}break f}if(_=m(A,W),o=_>>5,(o|0)>-2)break s;for(u=i[(u<<2)+45504>>2],_&32&&(X[h+(o<<1)>>1]=Q[v+(m(o,u)+128>>8<<1)>>1],o=o+1|0);X[h+(o<<1)>>1]=Q[v+(m(o,u)+128>>8<<1)>>1],_=o+1|0,X[h+(_<<1)>>1]=Q[v+(m(u,_)+128>>8<<1)>>1],o=o+2|0,!!o;);}if((A|0)>0)for(p=y+258|0,_=0;;){for(o=_<<1,I=o+p|0,D=o+h|0,E=R+(m(_,z)<<1)|0,o=0;;){u=o+1|0,J=m(u,W),Z=J>>5,S=E+(o<<1)|0,o=J&31;s:{if(o){Z=D+(Z<<1)|0,o=(m(Q[Z+2>>1],32-o|0)+m(o,Q[Z+4>>1])|0)+16>>>5|0;break s}o=Q[I+(Z<<1)>>1]}if(X[S>>1]=o,o=u,(o|0)==(A|0))break}if(_=_+1|0,(_|0)==(A|0))break}if((C|0)!=10|A-32>>>0<4294967265|(k|w))break l;if(w=v-2|0,o=-1<>1]+(Q[W+v>>1]-Q[v>>1]>>1)|0,X[R+z>>1]=(_|0)>=0?(o|0)>(_|0)?_:o:0,u=u+2|0,_=Q[w>>1]+(Q[v+(u<<1)>>1]-Q[v>>1]>>1)|0,X[W+R>>1]=(_|0)>=0?(o|0)>(_|0)?_:o:0,h=h+2|0,(C|0)!=(h|0););if(!(A&1))break l;_=Q[w>>1],w=u<<1,u=_+(Q[(w+v|0)+2>>1]-Q[v>>1]>>1)|0,X[w+R>>1]=(u|0)>=0?(o|0)>(u|0)?u:o:0}B=y+528|0}B=a+528|0;break A}R=(o+u|0)+e|0,H=B-272|0,B=H,W=B-336|0,B=W,i[W+24>>2]=k,i[W+16>>2]=y,i[W+32>>2]=r,i[W+28>>2]=e,v=H+128|0,i[W+12>>2]=v,i[W+20>>2]=A;u:{if((A|0)<65){i[W+316>>2]=16843009,h=W+12|0,An(h);l:{if(i[h+8>>2]<33){if(u=i[h+4>>2],o=i[h+12>>2],Z=i[u+(o?44:40)>>2],w=i[h+24>>2],p=i[w+16936>>2],p=i[(i[i[h+28>>2]+8496>>2]+(m(i[h+296>>2],i[h+16>>2])>>p<<2)|0)+(m(i[w+16924>>2],m(i[h+300>>2],i[h+20>>2])>>p)<<2)>>2],I=i[(u+(o<<2)|0)+4>>2],o=i[h+308>>2],!(s[h+304|0]!=1|(o|0)<=0))for(u=I-1|0,w=o-1|0;;){o=w;s:{if(s[h+304|0]!=1)break s;a=i[h+28>>2],J=i[h+16>>2],E=m(i[h+296>>2],J-1|0),D=i[h+24>>2],S=i[D+16936>>2],q=o+i[h+20>>2]|0,d=m(q,i[h+300>>2]),D=i[(i[a+8496>>2]+(E>>S<<2)|0)+(m(i[D+16924>>2],d>>S)<<2)>>2];h:{if(s[a+24|0]){if(a=E,w=i[h+4>>2],E=i[w+168>>2],a=a>>E,(a|0)<0||(S=i[w+172>>2],(S|0)<=(a|0)))break r;if(E=d>>E,(E|0)<0|(E|0)>=i[w+176>>2])break i;if(s[((i[w+160>>2]+m(a,3)|0)+m(m(E,S),3)|0)+1|0]&3)break s;if((p|0)>=(D|0))break h;break s}if((p|0)<(D|0))break s}i[h+316>>2]||(l[h+320|0]=s[(u+J|0)+m(Z,q)|0]),w=o^-1,l[w+i[h+292>>2]|0]=1,l[w+i[h>>2]|0]=s[(u+i[h+16>>2]|0)+m(Z,o+i[h+20>>2]|0)|0],l[i[h+292>>2]-o|0]=1,l[i[h>>2]-o|0]=s[(u+i[h+16>>2]|0)+m(Z,(o+i[h+20>>2]|0)-1|0)|0],w=1-o|0,l[w+i[h+292>>2]|0]=1,l[w+i[h>>2]|0]=s[(u+i[h+16>>2]|0)+m(Z,(o+i[h+20>>2]|0)-2|0)|0],w=2-o|0,l[w+i[h+292>>2]|0]=1,l[w+i[h>>2]|0]=s[(u+i[h+16>>2]|0)+m(Z,(o+i[h+20>>2]|0)-3|0)|0],i[h+316>>2]=i[h+316>>2]+4}if(w=o-4|0,!((o|0)>3))break}s:{if(!s[h+307|0])break s;o=i[h+28>>2],u=i[h+16>>2],D=m(i[h+296>>2],u-1|0),w=i[h+24>>2],a=i[w+16936>>2],E=i[h+20>>2]-1|0,J=m(E,i[h+300>>2]),w=i[(i[o+8496>>2]+(D>>a<<2)|0)+(m(i[w+16924>>2],J>>a)<<2)>>2];h:{if(s[o+24|0]){if(o=i[h+4>>2],a=i[o+168>>2],D=D>>a,(D|0)<0||(S=i[o+172>>2],(S|0)<=(D|0)))break r;if(a=J>>a,(a|0)<0|(a|0)>=i[o+176>>2])break i;if(s[((i[o+160>>2]+m(D,3)|0)+m(m(a,S),3)|0)+1|0]&3)break s;if((w|0)<=(p|0))break h;break s}if((w|0)>(p|0))break s}o=m(Z,E),i[h+316>>2]||(l[h+320|0]=s[(o+(u+I|0)|0)-1|0]),l[i[h>>2]]=s[(o+(u+I|0)|0)-1|0],l[i[h+292>>2]]=1,i[h+316>>2]=i[h+316>>2]+1}if(w=i[h+312>>2],(w|0)>0)for(u=0;;){s:{if(s[h+(i[h+8>>2]>(u|0)?305:306)|0]!=1)break s;o=i[h+28>>2],D=i[h+16>>2],E=m(i[h+296>>2],D+u|0),a=i[h+24>>2],J=i[a+16936>>2],S=i[h+20>>2]-1|0,q=m(S,i[h+300>>2]),a=i[(i[o+8496>>2]+(E>>J<<2)|0)+(m(i[a+16924>>2],q>>J)<<2)>>2];h:{if(s[o+24|0]){if(o=i[h+4>>2],J=i[o+168>>2],E=E>>J,(E|0)<0||(d=i[o+172>>2],(d|0)<=(E|0)))break r;if(J=q>>J,(J|0)<0|(J|0)>=i[o+176>>2])break i;if(s[((i[o+160>>2]+m(E,3)|0)+m(m(J,d),3)|0)+1|0]&3)break s;if((p|0)>=(a|0))break h;break s}if((p|0)<(a|0))break s}w=m(Z,S),i[h+316>>2]||(l[h+320|0]=s[w+((I+D|0)+u|0)|0]),a=u|1,o=u+I|0,l[a+i[h>>2]|0]=s[w+(o+D|0)|0],l[a+i[h+292>>2]|0]=1,w=u|2,l[w+i[h>>2]|0]=s[((o+i[h+16>>2]|0)+m(Z,i[h+20>>2]-1|0)|0)+1|0],l[w+i[h+292>>2]|0]=1,w=u|3,l[w+i[h>>2]|0]=s[((o+i[h+16>>2]|0)+m(Z,i[h+20>>2]-1|0)|0)+2|0],l[w+i[h+292>>2]|0]=1,w=u+4|0,l[w+i[h>>2]|0]=s[((o+i[h+16>>2]|0)+m(Z,i[h+20>>2]-1|0)|0)+3|0],l[w+i[h+292>>2]|0]=1,i[h+316>>2]=i[h+316>>2]+4,w=i[h+312>>2]}if(u=u+4|0,!((w|0)>(u|0)))break}break l}break o}o=i[W+328>>2],w=i[W+20>>2],u=w<<2|1;l:{if((o|0)==(u|0))break l;if(!o){B0(i[W+12>>2]-(w<<1)|0,1<>2]+124>>2]+(i[W+24>>2]?16840:16832)>>2]-1,u);break l}if(o=w<<1,u=0-o|0,s[i[W+304>>2]-o|0]||(l[i[W+12>>2]+u|0]=s[W+332|0],w=i[W+20>>2],u=0-(w<<1)|0),w<<1<=(u|0))break l;for(u=u|1;s[i[W+304>>2]+u|0]||(o=i[W+12>>2]+u|0,l[o|0]=s[o-1|0],w=i[W+20>>2]),o=w<<1>(u|0),u=u+1|0,!!o;);}B=W+336|0;break u}break t}u=i[y+124>>2];u:{if(s[u+16825|0]||k&&(_=k,i[u+16848>>2]!=3))break u;w=B-144|0,B=w;l:{if((A|0)==4|(C|0)==1)break l;o=(C|0)<26?26-C|0:C-26|0,h=(C|0)<10?10-C|0:C-10|0,o=(o|0)<(h|0)?o:h;s:{h:switch(a0(A-8|0,29)|0){case 1:if((o|0)>1)break s;break l;case 3:if((o|0)>0)break s;break l;case 7:break l;case 0:break h;default:break n}if((o|0)<8)break l}s:{h:{w:{if(!(!s[u+8997|0]|(_|(A|0)!=32))&&(_=s[v+64|0],o=s[v|0],W=(_+o|0)-(s[v+32|0]<<1)|0,h=W>>31,Z=1<>2]-5,(Z|0)>((h^W)-h|0)))break w;u=w- -64|0;break h}if(u=w- -64|0,h=s[v+-64|0],p=(h+o|0)-(s[v-32|0]<<1)|0,W=p>>31,Z>>>0<=(W^p)-W>>>0)break h;for(l[w+128|0]=_,l[w|0]=h,l[w+64|0]=o,W=_-o|0,Z=h-o|0,_=1;;){if(l[u-_|0]=o+(m(_,Z)+32>>>6|0),l[u+_|0]=o+(m(_,W)+32>>>6|0),h=_+1|0,(h|0)!=64){l[(_^-1)+u|0]=o+(m(h,Z)+32>>>6|0),l[u+h|0]=o+(m(h,W)+32>>>6|0),_=_+2|0;continue}break}h=0-(A<<1)|0;break s}if(Z=w- -64|0,o=A<<1,l[Z-o|0]=s[v-o|0],l[o+Z|0]=s[o+v|0],h=0-o|0,p=1-o|0,(p|0)>=(o|0))break s;for(I=v-1|0,_=2-o|0,W=s[v+_|0],l[Z+p|0]=(s[I+p|0]+(W+(s[v+p|0]<<1)|0)|0)+2>>>2;E=W<<1,W=_+1|0,p=s[W+v|0],l[_+Z|0]=(s[_+I|0]+(E+p|0)|0)+2>>>2,E=Z+W|0,J=s[_+v|0],_=_+2|0,W=s[v+_|0],l[E|0]=(J+(W+(p<<1)|0)|0)+2>>>2,(o|0)!=(_|0););}l0(h+v|0,u+h|0,A<<2|1)}B=w+144|0}u:{l:switch(C|0){case 0:if(w=1,(A|0)>=2){for(u=0,o=A;w=u,u=u+1|0,_=o>>>0>3,o=o>>>1|0,!!_;);w=w+2|0}if((A|0)<=0)break u;for(D=A&2147483646,a=A&1,_=A-1|0,E=s[v+(A^-1)|0],C=s[(A+v|0)+1|0],o=0;;){if(y=_-o|0,u=o+1|0,W=m(u,E),Z=R+m(o,z)|0,p=s[v+(o^-1)|0],o=0,h=0,(A|0)!=1)for(;I=o|1,l[o+Z|0]=W+(((m(p,_-o|0)+A|0)+m(I,C)|0)+m(y,s[v+I|0])|0)>>w,o=o+2|0,l[Z+I|0]=W+(((m(p,_-I|0)+A|0)+m(C,o)|0)+m(y,s[o+v|0])|0)>>w,h=h+2|0,(D|0)!=(h|0););if(a&&(J=o+Z|0,S=m(p,_-o|0)+A|0,o=o+1|0,l[J|0]=W+((S+m(o,C)|0)+m(y,s[o+v|0])|0)>>w),o=u,(o|0)==(A|0))break}break u;case 1:if(u=0,h=0,_=1,(A|0)>=2){for(o=A;w=u,u=u+1|0,_=o>>>0>3,o=o>>>1|0,!!_;);_=w+2|0}s:{h:{w:{_:{if((A|0)>0){if(C=A&1,(A|0)!=1)break _;w=0,u=0;break w}if(k)break s;u=A>>_;break h}for(y=A&2147483646,o=0,u=0;w=o+2|0,u=s[v+(o^-2)|0]+(s[v+w|0]+(s[v+(o^-1)|0]+(s[(o+v|0)+1|0]+u|0)|0)|0)|0,o=w,h=h+2|0,(y|0)!=(h|0););}if(C&&(u=s[v+(w^-1)|0]+(s[(w+v|0)+1|0]+u|0)|0),u=A+u>>_,!k&(A|0)<=31)break h;if((A|0)<=0)break s;if(o=0,h=0,A>>>0>=4)for(_=A&2147483644,w=0;B0(R+m(h,z)|0,u,A),B0(R+m(z,h|1)|0,u,A),B0(R+m(z,h|2)|0,u,A),B0(R+m(z,h|3)|0,u,A),h=h+4|0,w=w+4|0,(_|0)!=(w|0););if(w=A&3,!w)break s;for(;B0(R+m(h,z)|0,u,A),h=h+1|0,o=o+1|0,(w|0)!=(o|0););break s}if(o=1,l[R|0]=(s[v+1|0]+(s[v-1|0]+(u<<1)|0)|0)+2>>>2,(A|0)<2)break s;if(C=A-1|0,_=C&3,w=m(u,3)+2|0,y=A-2|0,y>>>0>=3)for(W=C&-4,h=0;Z=o+1|0,l[o+R|0]=w+s[Z+v|0]>>>2,E=Z+R|0,Z=o+2|0,l[E|0]=w+s[Z+v|0]>>>2,E=Z+R|0,Z=o+3|0,l[E|0]=w+s[Z+v|0]>>>2,o=o+4|0,l[Z+R|0]=w+s[v+o|0]>>>2,h=h+4|0,(W|0)!=(h|0););if(_)for(h=0;E=o+R|0,o=o+1|0,l[E|0]=w+s[v+o|0]>>>2,h=h+1|0,(_|0)!=(h|0););if((A|0)<2)break s;if(o=1,w=m(u,3)+2|0,y)for(_=C&-2,h=0;l[R+m(o,z)|0]=w+s[v+(o^-1)|0]>>>2,l[R+m(z,o+1|0)|0]=w+s[(v-o|0)-2|0]>>>2,o=o+2|0,h=h+2|0,(_|0)!=(h|0););if(C&1&&(l[R+m(o,z)|0]=w+s[v+(o^-1)|0]>>>2),(A|0)<2)break s;if(o=A-1|0,v=(R+z|0)+1|0,w=0,h=0,y>>>0>=3)for(y=C&-4,_=0;B0(v+m(h,z)|0,u,o),B0(v+m(z,h|1)|0,u,o),B0(v+m(z,h|2)|0,u,o),B0(v+m(z,h|3)|0,u,o),h=h+4|0,_=_+4|0,(y|0)!=(_|0););if(_=C&3,!_)break s;for(;B0(v+m(h,z)|0,u,o),h=h+1|0,w=w+1|0,(_|0)!=(w|0););}break u;default:break l}if(o=i[y+124>>2],a=i[o+(k?16840:16832)>>2],s[o+16822|0]){if(u=i[y+168>>2],o=e>>u,(o|0)<0||(w=i[y+172>>2],(w|0)<=(o|0)))break r;if(u=r>>u,(u|0)<0|(u|0)>=i[y+176>>2])break i;w=(s[((i[y+160>>2]+m(o,3)|0)+m(m(u,w),3)|0)+1|0]&8)>>>3|0}else w=0;o=0,y=B-272|0,B=y;l:{s:{h:{if((C|0)<35){if((C|0)>1){if(h=y+128|0,W=i[(C<<2)+45360>>2],C>>>0<=17){w:{if((A|0)<0)break w;if(u=A+1|0,_=u&3,A>>>0>=3)for(Z=u&-4,u=0;l[o+h|0]=s[v-o|0],p=o|1,l[p+h|0]=s[v-p|0],p=o|2,l[p+h|0]=s[v-p|0],p=o|3,l[p+h|0]=s[v-p|0],o=o+4|0,u=u+4|0,(Z|0)!=(u|0););if(!_)break w;for(u=0;l[o+h|0]=s[v-o|0],o=o+1|0,u=u+1|0,(_|0)!=(u|0););}if(u=C-11|0,u>>>0<15)break h;if(Z=A<<1,(Z|0)<=(A|0))break s;if(o=A,p=o&3,p)for(_=0,u=o;o=u+1|0,l[h+o|0]=s[v+(u^-1)|0],u=o,_=_+1|0,(p|0)!=(_|0););if(A-1>>>0<3)break s;for(_=h+3|0,p=h+2|0,I=h+1|0;l[o+I|0]=s[v+(o^-1)|0],u=v-o|0,l[o+p|0]=s[u-2|0],l[o+_|0]=s[u-3|0],o=o+4|0,l[h+o|0]=s[u-4|0],(o|0)!=(Z|0););break s}(A|0)>=0&&l0(h,v,A+1|0),u=C-11|0;w:{if(u>>>0>=15){if(A<<1<=(A|0))break w;l0((A+y|0)+129|0,(A+v|0)+1|0,A);break w}if(_=m(A,W),o=_>>5,(o|0)>-2)break w;for(u=i[(u<<2)+45504>>2],_&32&&(l[o+h|0]=s[v-(m(o,u)+128>>8)|0],o=o+1|0);l[o+h|0]=s[v-(m(o,u)+128>>8)|0],_=o+1|0,l[_+h|0]=s[v-(m(u,_)+128>>8)|0],o=o+2|0,!!o;);}if((A|0)>0)for(J=y+129|0,S=A&2147483646,q=A&1,u=0;;){Z=R+m(u,z)|0,u=u+1|0,_=m(W,u),o=_>>5,p=_&31;w:{if(p){if(I=o+h|0,D=32-p|0,o=0,(A|0)!=1)for(d=I+2|0,_=0;A0=o+I|0,E=s[A0+2|0],l[o+Z|0]=(m(D,s[A0+1|0])+m(p,E)|0)+16>>>5,A0=o|1,l[A0+Z|0]=(m(E,D)+m(p,s[d+A0|0])|0)+16>>>5,o=o+2|0,_=_+2|0,(S|0)!=(_|0););if(!q)break w;_=o+Z|0,o=o+I|0,l[_|0]=(m(D,s[o+1|0])+m(p,s[o+2|0])|0)+16>>>5;break w}l0(Z,o+J|0,A)}if((A|0)==(u|0))break}if((C|0)!=26|A-32>>>0<4294967265|(k|w))break l;for(u=-1<>1)|0,l[R+m(o,z)|0]=(w|0)>=0?(u|0)>(w|0)?w:u:0,o=o+1|0,(o|0)!=(A|0););break l}break k}break f}if(_=m(A,W),o=_>>5,(o|0)>-2)break s;for(u=i[(u<<2)+45504>>2],_&32&&(l[o+h|0]=s[v+(m(o,u)+128>>8)|0],o=o+1|0);l[o+h|0]=s[v+(m(o,u)+128>>8)|0],_=o+1|0,l[_+h|0]=s[v+(m(u,_)+128>>8)|0],o=o+2|0,!!o;);}if((A|0)>0)for(p=y+129|0,_=0;;){for(I=_+p|0,D=h+_|0,E=R+m(_,z)|0,o=0;;){u=o+1|0,J=m(u,W),Z=J>>5,S=o+E|0,o=J&31;s:{if(o){Z=Z+D|0,o=(m(s[Z+1|0],32-o|0)+m(o,s[Z+2|0])|0)+16>>>5|0;break s}o=s[Z+I|0]}if(l[S|0]=o,o=u,(o|0)==(A|0))break}if(_=_+1|0,(_|0)==(A|0))break}if((C|0)!=10|A-32>>>0<4294967265|(k|w))break l;if(w=v-1|0,u=-1<>1)|0,l[o+R|0]=(_|0)>=0?(u|0)>(_|0)?_:u:0,o=o+2|0,_=s[w|0]+(s[v+o|0]-s[v|0]>>1)|0,l[R+z|0]=(_|0)>=0?(u|0)>(_|0)?_:u:0,h=h+2|0,(C|0)!=(h|0););if(!(A&1))break l;_=o+R|0,o=s[w|0]+(s[(o+v|0)+1|0]-s[v|0]>>1)|0,l[_|0]=(o|0)>=0?(o|0)<(u|0)?o:u:0}B=y+272|0}B=H+272|0;break A}C0(16812,8483,533,10587),P()}C0(15164,8483,146,3205),P()}C0(9349,8483,211,8639),P()}C0(16720,8483,343,5959),P()}C0(16598,8483,342,5959),P()}o=0,o=!s[f0+16822|0]|!(s[f+32|0]|s[(f+k|0)+33|0])?o:(n0&47)==10,o=(n0|0)==26?o&&2:o;break e}if(o=0,!s[f+36|0])break e;o=s[f+37|0]?2:1}e:{A:{f:{k:{if(!t){if(!k|!i[f+28>>2])break k;X[((k<<1)+f|0)+14396>>1]=0,o=0}Z=s[(f+k|0)+33|0]!=0,w=!n,n=k?16840:16832;n:{if(i[n+i[i[f+18588>>2]+124>>2]>>2]>=9){t=f,W=B-4096|0,B=W;t:{if(k>>>0<3){if(u=i[f+18588>>2],h=i[u+168>>2],_=e>>h,(_|0)<0||(R=i[u+172>>2],(R|0)<=(_|0)))break r;if(v=r>>h,(v|0)<0|(v|0)>=i[u+176>>2])break i;p=k<<2,z=i[u+(k?44:40)>>2],y=i[(p+u|0)+4>>2]+(m(z,r)+e<<1)|0,C=i[u+124>>2],h=i[C+n>>2],n=i[f+2104>>2],e=0,I=s[((i[u+160>>2]+m(_,3)|0)+m(m(v,R),3)|0)+1|0]&3,R=!I&(A|0)==4&s[C+16820|0]!=0;o:{if(s[f+32|0]){if(e=(f+(k<<1)|0)+14396|0,X[e>>1]>0)for(f=0,r=k<<11,u=r+(t+8252|0)|0,r=r+(t+2108|0)|0;w=f<<1,X[n+(X[w+u>>1]<<1)>>1]=Q[r+w>>1],f=f+1|0,(f|0)>1];);if(R&&V[i[i[t+18584>>2]+432>>2]](n,4),w=t+14404|0,u=k?W:w,V[i[i[t+18584>>2]+(o?(o|0)==2?368:372:364)>>2]](u,n,A),!(!k|!i[t+28>>2]|(A|0)<=0))for(f=i[i[t+18588>>2]+124>>2],o=i[f+16832>>2],_=i[f+16840>>2],Z=A&2147483646,p=A&1,r=0;;){if(v=m(r,A),f=0,e=0,(A|0)!=1)for(;C=f+v<<2,I=C+u|0,i[I>>2]=i[I>>2]+(m(i[t+28>>2],i[w+C>>2]<<_>>o)>>3),C=C+4|0,I=C+u|0,i[I>>2]=i[I>>2]+(m(i[t+28>>2],i[w+C>>2]<<_>>o)>>3),f=f+2|0,e=e+2|0,(Z|0)!=(e|0););if(p&&(f=f+v<<2,e=f+u|0,i[e>>2]=i[e>>2]+(m(i[t+28>>2],i[f+w>>2]<<_>>o)>>3)),r=r+1|0,(A|0)==(r|0))break}if(V[i[i[t+18584>>2]+460>>2]](y,z,u,A,h),!R)break o;X[n>>1]=0,X[n+2>>1]=0,X[n+4>>1]=0,X[n+6>>1]=0,X[n+24>>1]=0,X[n+26>>1]=0,X[n+28>>1]=0,X[n+30>>1]=0,X[n+16>>1]=0,X[n+18>>1]=0,X[n+20>>1]=0,X[n+22>>1]=0,X[n+8>>1]=0,X[n+10>>1]=0,X[n+12>>1]=0,X[n+14>>1]=0;break o}if((A|0)>=2)for(f=A;e=e+1|0,r=f>>>0>3,f=f>>>1|0,!!r;);v=i[u+132>>2],r=i[(t+p|0)+18536>>2],e=e+h|0;u:{if(!s[C+636|0]){if(u=(t+(k<<1)|0)+14396|0,X[u>>1]<=0)break u;for(r=i[((r|0)%6<<2)+46096>>2]<<(r|0)/6,w=e-9|0,_=1<>1])>>w,e=(e|0)>=32767?32767:e,X[n+(X[p+D>>1]<<1)>>1]=(e|0)<=-32768?-32768:e,f=f+1|0,(f|0)>1];);break u}f=k,u=f;l:{if(w||(u=f+3|0,(A|0)<=31))break l;u=f+1|0}f=u;l:{s:switch(a0(A-4|0,30)|0){case 1:f=(v+(f<<6)|0)+169|0;break l;case 3:f=(v+(f<<8)|0)+553|0;break l;case 7:f=(v+(f<<10)|0)+2089|0;break l;case 0:break s;default:break f}f=(v+(f<<4)|0)+73|0}if(p=(t+(k<<1)|0)+14396|0,X[p>>1]<=0)break u;for(_=f,D=(r|0)/6|0,f0=i[(r-m(D,6)<<2)+46096>>2],u=e-5|0,w=1<>31,f=0,e=k<<11,n0=e+(t+2108|0)|0,a=e+(t+8252|0)|0;e=f<<1,r=X[e+a>>1],E=n+(r<<1)|0,e=X[e+n0>>1],C=e,J=e>>31,e=m(f0,s[r+_|0])<>31),r=H+w0|0,e=e+w|0,r=e>>>0>>0?r+1|0:r,J=e,C=u&31,(u&63)>>>0>=32?(e=r>>31,r=r>>C):(e=r>>C,r=((1<>>C),C=(e|0)>=0&r>>>0>=32767|(e|0)>0,r=C?32767:r,e=C?0:e,(e|0)<-1?e=1:e=(e|0)<0&r>>>0<=4294934528,X[E>>1]=e?-32768:r,f=f+1|0,(f|0)>1];);}if(Z){if(f=5,(A|0)>=2){for(e=0,f=A;r=e,e=e+1|0,u=f>>>0>3,f=f>>>1|0,!!u;);f=r+6|0}if(R&&V[i[i[t+18584>>2]+432>>2]](n,4),w=t+14404|0,u=k?W:w,V[i[i[t+18584>>2]+(o?(o|0)==2?464:468:472)>>2]](u,n,A,f,(h|0)<20?20-h|0:0),!(!k|!i[t+28>>2]|(A|0)<=0))for(f=i[i[t+18588>>2]+124>>2],o=i[f+16832>>2],_=i[f+16840>>2],Z=A&2147483646,p=A&1,r=0;;){if(v=m(r,A),f=0,e=0,(A|0)!=1)for(;C=f+v<<2,I=C+u|0,i[I>>2]=i[I>>2]+(m(i[t+28>>2],i[w+C>>2]<<_>>o)>>3),C=C+4|0,I=C+u|0,i[I>>2]=i[I>>2]+(m(i[t+28>>2],i[w+C>>2]<<_>>o)>>3),f=f+2|0,e=e+2|0,(Z|0)!=(e|0););if(p&&(f=f+v<<2,e=f+u|0,i[e>>2]=i[e>>2]+(m(i[t+28>>2],i[f+w>>2]<<_>>o)>>3)),r=r+1|0,(A|0)==(r|0))break}if(V[i[i[t+18584>>2]+460>>2]](y,z,u,A,h),!R)break o;X[n>>1]=0,X[n+2>>1]=0,X[n+4>>1]=0,X[n+6>>1]=0,X[n+24>>1]=0,X[n+26>>1]=0,X[n+28>>1]=0,X[n+30>>1]=0,X[n+16>>1]=0,X[n+18>>1]=0,X[n+20>>1]=0,X[n+22>>1]=0,X[n+8>>1]=0,X[n+10>>1]=0,X[n+12>>1]=0,X[n+14>>1]=0;break o}if(o)break t;if(e=!(k|I)&(A|0)==4,s[v+8247|0]==1){r=0,w=B-4096|0,B=w,u=20-h|0,o=t+14404|0,f=k?w:o,_=i[t+18584>>2];u:{if(e){e=436;break u}e=440;l:switch(A-4|0){case 4:e=444;break u;case 12:e=448;break u;case 0:break u;default:break l}e=452}if(V[i[e+_>>2]](f,n,u,15),!(!k|!i[t+28>>2]|(A|0)<=0))for(e=i[i[t+18588>>2]+124>>2],n=i[e+16832>>2],u=i[e+16840>>2],Z=A&2147483646,p=A&1;;){if(v=m(r,A),e=0,C=0,(A|0)!=1)for(;R=e+v<<2,I=R+f|0,i[I>>2]=i[I>>2]+(m(i[t+28>>2],i[o+R>>2]<>n)>>3),R=R+4|0,I=R+f|0,i[I>>2]=i[I>>2]+(m(i[t+28>>2],i[o+R>>2]<>n)>>3),e=e+2|0,C=C+2|0,(Z|0)!=(C|0););if(p&&(e=e+v<<2,v=e+f|0,i[v>>2]=i[v>>2]+(m(i[t+28>>2],i[e+o>>2]<>n)>>3)),r=r+1|0,(A|0)==(r|0))break}V[i[_+460>>2]](y,z,f,A,h),B=w+4096|0;break o}r=i[t+18584>>2]+172|0;u:{if(e){f=240;break u}f=244;l:switch(A-4|0){case 4:f=248;break u;case 12:f=252;break u;case 0:break u;default:break l}f=256}V[i[f+r>>2]](y,n,z,h)}if(e=(t+(k<<1)|0)+14396|0,X[e>>1]>0)for(r=i[t+2104>>2],A=(t+8252|0)+(k<<11)|0,f=0;X[r+(X[A+(f<<1)>>1]<<1)>>1]=0,f=f+1|0,(f|0)>1];);B=W+4096|0;break n}break A}break e}t=f,R=B-4096|0,B=R;t:{if(k>>>0<3){if(u=i[f+18588>>2],n=i[u+168>>2],_=e>>n,(_|0)<0||(v=i[u+172>>2],(v|0)<=(_|0)))break r;if(h=r>>n,(h|0)<0|(h|0)>=i[u+176>>2])break i;W=k<<2,C=i[u+(k?44:40)>>2],z=(i[(W+u|0)+4>>2]+m(C,r)|0)+e|0,n=i[f+2104>>2],e=0,p=s[((i[u+160>>2]+m(_,3)|0)+m(m(h,v),3)|0)+1|0]&3,_=i[u+124>>2],y=!p&(A|0)==4&s[_+16820|0]!=0;o:{if(s[f+32|0]){if(e=(f+(k<<1)|0)+14396|0,X[e>>1]>0)for(f=0,r=k<<11,u=r+(t+8252|0)|0,r=r+(t+2108|0)|0;w=f<<1,X[n+(X[w+u>>1]<<1)>>1]=Q[r+w>>1],f=f+1|0,(f|0)>1];);if(y&&V[i[i[t+18584>>2]+432>>2]](n,4),w=t+14404|0,u=k?R:w,V[i[i[t+18584>>2]+(o?(o|0)==2?368:372:364)>>2]](u,n,A),!(!k|!i[t+28>>2]|(A|0)<=0))for(f=i[i[t+18588>>2]+124>>2],o=i[f+16832>>2],_=i[f+16840>>2],W=A&2147483646,Z=A&1,r=0;;){if(h=m(r,A),f=0,e=0,(A|0)!=1)for(;v=f+h<<2,p=v+u|0,i[p>>2]=i[p>>2]+(m(i[t+28>>2],i[w+v>>2]<<_>>o)>>3),v=v+4|0,p=v+u|0,i[p>>2]=i[p>>2]+(m(i[t+28>>2],i[w+v>>2]<<_>>o)>>3),f=f+2|0,e=e+2|0,(W|0)!=(e|0););if(Z&&(f=f+h<<2,e=f+u|0,i[e>>2]=i[e>>2]+(m(i[t+28>>2],i[f+w>>2]<<_>>o)>>3)),r=r+1|0,(A|0)==(r|0))break}if(V[i[i[t+18584>>2]+456>>2]](z,C,u,A,8),!y)break o;X[n>>1]=0,X[n+2>>1]=0,X[n+4>>1]=0,X[n+6>>1]=0,X[n+24>>1]=0,X[n+26>>1]=0,X[n+28>>1]=0,X[n+30>>1]=0,X[n+16>>1]=0,X[n+18>>1]=0,X[n+20>>1]=0,X[n+22>>1]=0,X[n+8>>1]=0,X[n+10>>1]=0,X[n+12>>1]=0,X[n+14>>1]=0;break o}if(v=i[_+(k?16840:16832)>>2],(A|0)>=2)for(f=A;e=e+1|0,r=f>>>0>3,f=f>>>1|0,!!r;);h=i[u+132>>2],r=i[(t+W|0)+18536>>2],e=e+v|0;u:{if(!s[_+636|0]){if(u=(t+(k<<1)|0)+14396|0,X[u>>1]<=0)break u;for(r=i[((r|0)%6<<2)+46096>>2]<<(r|0)/6,w=e-9|0,_=1<>1])>>w,e=(e|0)>=32767?32767:e,X[n+(X[W+I>>1]<<1)>>1]=(e|0)<=-32768?-32768:e,f=f+1|0,(f|0)>1];);break u}f=k,u=f;l:{if(w||(u=f+3|0,(A|0)<=31))break l;u=f+1|0}f=u;l:{s:switch(a0(A-4|0,30)|0){case 1:f=(h+(f<<6)|0)+169|0;break l;case 3:f=(h+(f<<8)|0)+553|0;break l;case 7:f=(h+(f<<10)|0)+2089|0;break l;case 0:break s;default:break f}f=(h+(f<<4)|0)+73|0}if(W=(t+(k<<1)|0)+14396|0,X[W>>1]<=0)break u;for(_=f,I=(r|0)/6|0,D=i[(r-m(I,6)<<2)+46096>>2],u=e-5|0,w=1<>31,f=0,e=k<<11,H=e+(t+2108|0)|0,n0=e+(t+8252|0)|0;e=f<<1,r=X[e+n0>>1],a=n+(r<<1)|0,e=X[e+H>>1],E=e,J=e>>31,e=m(D,s[r+_|0])<>31),r=f0+w0|0,e=e+w|0,r=e>>>0>>0?r+1|0:r,E=e,v=u&31,(u&63)>>>0>=32?(e=r>>31,r=r>>v):(e=r>>v,r=((1<>>v),v=(e|0)>=0&r>>>0>=32767|(e|0)>0,r=v?32767:r,e=v?0:e,(e|0)<-1?e=1:e=(e|0)<0&r>>>0<=4294934528,X[a>>1]=e?-32768:r,f=f+1|0,(f|0)>1];);}if(Z){if(f=5,(A|0)>=2){for(e=0,f=A;r=e,e=e+1|0,u=f>>>0>3,f=f>>>1|0,!!u;);f=r+6|0}if(y&&V[i[i[t+18584>>2]+432>>2]](n,4),w=t+14404|0,u=k?R:w,V[i[i[t+18584>>2]+(o?(o|0)==2?464:468:472)>>2]](u,n,A,f,12),!(!k|!i[t+28>>2]|(A|0)<=0))for(f=i[i[t+18588>>2]+124>>2],o=i[f+16832>>2],_=i[f+16840>>2],W=A&2147483646,Z=A&1,r=0;;){if(h=m(r,A),f=0,e=0,(A|0)!=1)for(;v=f+h<<2,p=v+u|0,i[p>>2]=i[p>>2]+(m(i[t+28>>2],i[w+v>>2]<<_>>o)>>3),v=v+4|0,p=v+u|0,i[p>>2]=i[p>>2]+(m(i[t+28>>2],i[w+v>>2]<<_>>o)>>3),f=f+2|0,e=e+2|0,(W|0)!=(e|0););if(Z&&(f=f+h<<2,e=f+u|0,i[e>>2]=i[e>>2]+(m(i[t+28>>2],i[f+w>>2]<<_>>o)>>3)),r=r+1|0,(A|0)==(r|0))break}if(V[i[i[t+18584>>2]+456>>2]](z,C,u,A,8),!y)break o;X[n>>1]=0,X[n+2>>1]=0,X[n+4>>1]=0,X[n+6>>1]=0,X[n+24>>1]=0,X[n+26>>1]=0,X[n+28>>1]=0,X[n+30>>1]=0,X[n+16>>1]=0,X[n+18>>1]=0,X[n+20>>1]=0,X[n+22>>1]=0,X[n+8>>1]=0,X[n+10>>1]=0,X[n+12>>1]=0,X[n+14>>1]=0;break o}if(o)break e;if(e=!(k|p)&(A|0)==4,s[h+8247|0]==1){r=0,w=B-4096|0,B=w,o=t+14404|0,f=k?w:o,_=i[t+18584>>2];u:{if(e){e=436;break u}e=440;l:switch(A-4|0){case 4:e=444;break u;case 12:e=448;break u;case 0:break u;default:break l}e=452}if(V[i[e+_>>2]](f,n,12,15),!(!k|!i[t+28>>2]|(A|0)<=0))for(e=i[i[t+18588>>2]+124>>2],n=i[e+16832>>2],u=i[e+16840>>2],W=A&2147483646,Z=A&1;;){if(h=m(r,A),e=0,v=0,(A|0)!=1)for(;y=e+h<<2,p=y+f|0,i[p>>2]=i[p>>2]+(m(i[t+28>>2],i[o+y>>2]<>n)>>3),y=y+4|0,p=y+f|0,i[p>>2]=i[p>>2]+(m(i[t+28>>2],i[o+y>>2]<>n)>>3),e=e+2|0,v=v+2|0,(W|0)!=(v|0););if(Z&&(e=e+h<<2,h=e+f|0,i[h>>2]=i[h>>2]+(m(i[t+28>>2],i[e+o>>2]<>n)>>3)),r=r+1|0,(A|0)==(r|0))break}V[i[_+456>>2]](z,C,f,A,8),B=w+4096|0;break o}r=i[t+18584>>2]+172|0;u:{if(e){f=216;break u}f=220;l:switch(A-4|0){case 4:f=224;break u;case 12:f=228;break u;case 0:break u;default:break l}f=232}V[i[f+r>>2]](z,n,C)}if(e=(t+(k<<1)|0)+14396|0,X[e>>1]>0)for(r=i[t+2104>>2],A=(t+8252|0)+(k<<11)|0,f=0;X[r+(X[A+(f<<1)>>1]<<1)>>1]=0,f=f+1|0,(f|0)>1];);B=R+4096|0;break t}break A}}}return}C0(17356,13974,502,7784),P()}C0(17356,13974,377,7784),P()}C0(17177,13974,599,7784),P()}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function _r(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0;k=B-304|0,B=k,i[k+280>>2]=0,i[k+284>>2]=0,i[k+288>>2]=0,i[k+292>>2]=0,i[k+296>>2]=0,i[k+272>>2]=0,i[k+276>>2]=0,i[k+264>>2]=68500,xk(k+240|0,k+264|0,e);i:{if(i[k+240>>2]){e=i[k+244>>2],i[f>>2]=i[k+240>>2],i[f+4>>2]=e,i[f+16>>2]=i[k+256>>2],e=i[k+252>>2],i[f+8>>2]=i[k+248>>2],i[f+12>>2]=e,i[k+256>>2]=0,i[k+248>>2]=0,i[k+252>>2]=0;break i}if(s[e+20|0]==1){if(l[k+60|0]=0,l[k+71|0]=0,r0(f,2,100,k+60|0),l[k+71|0]>=0)break i;G(i[k+60>>2]);break i}i[k+232>>2]=0,i[k+236>>2]=0;r:{e:{A:{f:{k:{n:{t:{o:{u:{l:{s:{h:{w:{_:{v:{Z:{m:{B:{p:{W:{G:{C:{y:{Y:{V:{F:{I:{D:{U:{M:{J:{x:{E:{Q:{g:{N:{if(A=i[k+280>>2],(A|0)<=1768973166){if((A|0)<=1668246641){if((A|0)<=1667523941){if((A|0)<=1635088450){if((A|0)==1630628984)break _;if((A|0)==1630629744)break v;if((A|0)!=1634497650)break A;A=U(88),i[A+16>>2]=0,i[A+20>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A>>2]=71464,i[A+16>>2]=70224,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,n=A- -64|0,i[n>>2]=0,i[n+4>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}if((A|0)==1635088451)break M;if((A|0)==1635135811)break Y;if((A|0)!=1635148611)break A;A=U(96),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+16>>2]=75028,i[A>>2]=72384,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+88>>2]=0,i[A+92>>2]=0,i[A+32>>2]=1635148611,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}if((A|0)<=1668112751){if((A|0)==1667523942)break s;if((A|0)==1668047216)break I;if((A|0)!=1668050025)break A;A=U(72),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+64>>2]=0,i[A>>2]=71904,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+16>>2]=69852,i[A+32>>2]=1668050025,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}if((A|0)==1668112752)break l;if((A|0)==1668113784)break w;if((A|0)!=1668114798)break A;R7(k+60|0),n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;X:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break X;V[i[i[A>>2]+8>>2]](A),g(A)}break r}if((A|0)<=1752589122){if((A|0)<=1718909295){if((A|0)==1668246642)break m;if((A|0)==1684631142)break p;if((A|0)!=1685218662)break A;A=U(72),i[A+16>>2]=0,i[A+20>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=71584,i[A+16>>2]=70464,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,n=A- -64|0,i[n>>2]=0,i[n+4>>2]=0,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}if((A|0)==1718909296)break N;if((A|0)==1735553132)break C;if((A|0)!=1751411826)break A;A=U(104),i[A+32>>2]=0,i[A+36>>2]=0,i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=1885954932,i[A>>2]=70664,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+16>>2]=68844,i[A+88>>2]=0,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+32>>2]=1751411826,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;X:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break X;V[i[i[A>>2]+8>>2]](A),g(A)}break r}if((A|0)<=1768714082){if((A|0)==1752589123)break V;if((A|0)==1768186228)break y;if((A|0)!=1768517222)break A;A=U(72),i[A+32>>2]=0,i[A+36>>2]=0,i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A>>2]=70784,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+16>>2]=69084,i[A+32>>2]=1768517222,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}if((A|0)==1768714083)break E;if((A|0)==1768778098)break D;if((A|0)!=1768842853)break A;A=U(144),i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,X[A+76>>1]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A>>2]=70824,i[A+32>>2]=0,i[A+36>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+16>>2]=69024,i[A+88>>2]=0,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,i[A+120>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+132>>2]=0,l[A+133|0]=0,l[A+134|0]=0,l[A+135|0]=0,l[A+136|0]=0,l[A+137|0]=0,l[A+138|0]=0,l[A+139|0]=0,l[A+140|0]=0,i[A+32>>2]=1768842853,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;X:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break X;V[i[i[A>>2]+8>>2]](A),g(A)}break r}if((A|0)<=1835365472){if((A|0)<=1781689159){if((A|0)<=1769104741){if((A|0)==1768973167)break x;if((A|0)==1768975713)break J;if((A|0)!=1768977008)break A;A=U(64),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=70864,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+16>>2]=69144,i[A+32>>2]=1768977008,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}if((A|0)==1769104742)break F;if((A|0)==1769107316)break U;if((A|0)!=1769173093)break A;A=U(80),i[A+32>>2]=0,i[A+36>>2]=0,i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A>>2]=70984,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+16>>2]=69264,i[A+32>>2]=1769173093,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;X:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break X;V[i[i[A>>2]+8>>2]](A),g(A)}break r}if((A|0)<=1819501931)switch(A-1781689160|0){case 4:break o;case 0:break h;case 1:case 2:case 3:break A;default:break f}if((A|0)==1819501932)break Z;if((A|0)==1835295092)break n;if((A|0)!=1835295606)break A;A=U(88),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A>>2]=71944,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+16>>2]=68524,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+32>>2]=1835295606,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}if((A|0)<=1887006051){if((A|0)<=1885564017){if((A|0)==1835365473)break g;if((A|0)==1836280643)break t;if((A|0)!=1885434736)break A;A=U(72),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+64>>2]=1,i[A+68>>2]=1,i[A>>2]=71744,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+16>>2]=69732,i[A+32>>2]=1885434736,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}if((A|0)==1885564018)break u;if((A|0)==1885959277)break Q;if((A|0)!=1885960297)break A;A=U(88),i[A+32>>2]=0,i[A+36>>2]=0,i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+80>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A>>2]=71704,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+16>>2]=69672,i[A+32>>2]=1885960297,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;X:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break X;V[i[i[A>>2]+8>>2]](A),g(A)}break r}if((A|0)<=1970433055){if((A|0)==1887006052)break G;if((A|0)==1937007986)break W;if((A|0)!=1969513843)break A;A=U(120),i[A+32>>2]=0,i[A+36>>2]=0,i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A>>2]=72064,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+16>>2]=70032,i[A+80>>2]=0,i[A+84>>2]=0,i[A+88>>2]=0,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,i[A+32>>2]=1969513843,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}if((A|0)==1970433056)break B;if((A|0)==1970628964)break k;if((A|0)!=1987470147)break A;A=U(160),i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+88>>2]=0,i[A+92>>2]=0,X[A+72>>1]=259,i[A+16>>2]=74936,i[A+152>>2]=0,i[A+144>>2]=0,i[A+148>>2]=0,i[A>>2]=71304,i[A+32>>2]=0,i[A+36>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,i[A+120>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+132>>2]=0,i[A+32>>2]=1987470147,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;X:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break X;V[i[i[A>>2]+8>>2]](A),g(A)}break r}A=U(88),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A>>2]=70584,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+16>>2]=68724,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=0,i[A+32>>2]=1718909296,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(72),i[A+32>>2]=0,i[A+36>>2]=0,i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A>>2]=70624,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+16>>2]=68784,i[A+32>>2]=1835365473,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(80),i[A+32>>2]=0,i[A+36>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A>>2]=70704,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+16>>2]=68904,i[A+32>>2]=1885959277,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(104),i[A+32>>2]=0,i[A+36>>2]=0,i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+96>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A>>2]=70744,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+16>>2]=68964,i[A+80>>2]=0,i[A+84>>2]=0,l[A+85|0]=0,l[A+86|0]=0,l[A+87|0]=0,l[A+88|0]=0,l[A+89|0]=0,l[A+90|0]=0,l[A+91|0]=0,l[A+92|0]=0,i[A+32>>2]=1768714083,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;E:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break E;V[i[i[A>>2]+8>>2]](A),g(A)}break r}A=U(64),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=70904,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+16>>2]=69204,i[A+32>>2]=1768973167,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(88),i[A+32>>2]=0,i[A+36>>2]=0,i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+80>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A>>2]=70944,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+16>>2]=69312,i[A+32>>2]=1768975713,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;J:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break J;V[i[i[A>>2]+8>>2]](A),g(A)}break r}A=U(96),i[A+32>>2]=0,i[A+36>>2]=0,i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A>>2]=71024,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+16>>2]=69372,i[A+80>>2]=0,i[A+84>>2]=0,i[A+88>>2]=0,i[A+92>>2]=0,i[A+32>>2]=1635088451,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(72),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+64>>2]=0,i[A>>2]=71064,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+16>>2]=69432,i[A+32>>2]=1769107316,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(72),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+64>>2]=0,i[A>>2]=71104,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+16>>2]=69492,i[A+32>>2]=1768778098,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(96),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+88>>2]=0,i[A+92>>2]=1,i[A+80>>2]=0,i[A+84>>2]=1,i[A+72>>2]=0,i[A+76>>2]=1,i[A+64>>2]=0,i[A+68>>2]=1,i[A>>2]=71144,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+16>>2]=69552,i[A+32>>2]=1668047216,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;I:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break I;V[i[i[A>>2]+8>>2]](A),g(A)}break r}A=U(88),i[A+32>>2]=0,i[A+36>>2]=0,i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+80>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A>>2]=71184,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+16>>2]=69612,i[A+32>>2]=1769104742,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;F:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break F;V[i[i[A>>2]+8>>2]](A),g(A)}break r}A=U(112),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+108>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,l[A+96|0]=4,i[A+72>>2]=0,i[A+76>>2]=0,i[A+16>>2]=74252,i[A>>2]=71224,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+32>>2]=1752589123,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;V:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break V;V[i[i[A>>2]+8>>2]](A),g(A)}break r}A=U(88),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,l[A+65|0]=0,l[A+66|0]=0,l[A+67|0]=0,l[A+68|0]=0,l[A+69|0]=0,l[A+70|0]=0,l[A+71|0]=0,l[A+72|0]=0,l[A+64|0]=1,i[A+16>>2]=74368,i[A>>2]=71264,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A+73|0]=0,l[A+74|0]=0,l[A+75|0]=0,l[A+76|0]=0,l[A+77|0]=0,l[A+78|0]=0,l[A+79|0]=0,l[A+80|0]=0,l[A+80|0]=0,l[A+81|0]=0,l[A+82|0]=0,l[A+83|0]=0,l[A+84|0]=0,l[A+85|0]=0,l[A+86|0]=0,l[A+87|0]=0,i[A+32>>2]=1635135811,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(96),i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=71344,n=B0(A+16|0,0,80),i[A+64>>2]=0,i[A+68>>2]=0,i[A+16>>2]=70104,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+88>>2]=0,i[k+236>>2]=A,i[k+232>>2]=n,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(64),i[A+16>>2]=0,i[A+20>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=71384,i[A+16>>2]=70164,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(104),i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=71424,n=B0(A+16|0,0,80),i[A+96>>2]=0,i[A+100>>2]=0,i[A+16>>2]=70344,i[k+236>>2]=A,i[k+232>>2]=n,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(88),i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=71504,n=B0(A+16|0,0,72),i[A+16>>2]=70284,i[k+236>>2]=A,i[k+232>>2]=n,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(64),i[A+16>>2]=0,i[A+20>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=71544,i[A+16>>2]=70404,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(88),i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=71624,n=B0(A+16|0,0,72),i[A+72>>2]=0,i[A+76>>2]=0,i[A+16>>2]=70524,i[A+80>>2]=0,i[k+236>>2]=A,i[k+232>>2]=n,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(72),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+16>>2]=73032,i[A>>2]=71664,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+32>>2]=1668246642,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(72),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,X[A+64>>1]=0,i[A>>2]=71784,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+16>>2]=69792,i[A+32>>2]=1819501932,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(72),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,l[A+64|0]=0,i[A+16>>2]=74428,i[A>>2]=71824,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+32>>2]=1630629744,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(80),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+16>>2]=74488,i[A>>2]=71864,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+72>>2]=0,i[A+32>>2]=1630628984,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}m7(k+60|0),n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;w:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break w;V[i[i[A>>2]+8>>2]](A),g(A)}break r}A=U(64),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+16>>2]=74848,i[A>>2]=72144,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+32>>2]=1781689160,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(80),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+72>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+16>>2]=74608,i[A>>2]=72184,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+32>>2]=1667523942,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;s:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break s;V[i[i[A>>2]+8>>2]](A),g(A)}break r}A=U(80),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+72>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+16>>2]=74668,i[A>>2]=72224,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+32>>2]=1668112752,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;l:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break l;V[i[i[A>>2]+8>>2]](A),g(A)}break r}A=U(88),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+16>>2]=74728,i[A>>2]=72264,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+32>>2]=1885564018,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(88),i[A+32>>2]=0,i[A+36>>2]=0,i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+80>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+16>>2]=74788,i[A>>2]=72304,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+32>>2]=1781689164,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;o:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break o;V[i[i[A>>2]+8>>2]](A),g(A)}break r}A=U(80),i[A+32>>2]=0,i[A+36>>2]=0,i[A+68>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+16>>2]=75088,i[A>>2]=72344,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,l[A- -64|0]=0,i[A+32>>2]=1836280643,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(64),i[A+16>>2]=0,i[A+20>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A>>2]=72424,i[A+16>>2]=68616,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[k+236>>2]=A,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}if(Z9(k+32|0,k+264|0),i[k+216>>2]=16,l[k+68|0]=157,l[k+69|0]=144,l[k+70|0]=78,l[k+71|0]=182,l[k+72|0]=236,l[k+73|0]=186,l[k+74|0]=243,l[k+75|0]=163,l[k+60|0]=34,l[k+61|0]=204,l[k+62|0]=4,l[k+63|0]=199,l[k+64|0]=214,l[k+65|0]=217,l[k+66|0]=78,l[k+67|0]=7,i[k+212>>2]=k+60,A=i[k+216>>2],i[k+24>>2]=i[k+212>>2],i[k+28>>2]=A,o=R9(k+220|0,k+24|0),n=i[o>>2],A=i[k+32>>2],u=i[k+36>>2]-A|0,(i[o+4>>2]-n|0)==(u|0)&&(t=!K2(A,n,u)),n&&(i[o+4>>2]=n,G(n),A=i[k+32>>2]),A&&(i[k+36>>2]=A,G(A)),t){R7(k+60|0),n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;k:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break k;V[i[i[A>>2]+8>>2]](A),g(A)}break r}if(Z9(k+32|0,k+264|0),i[k+208>>2]=16,l[k+68|0]=151,l[k+69|0]=174,l[k+70|0]=190,l[k+71|0]=166,l[k+72|0]=152,l[k+73|0]=3,l[k+74|0]=180,l[k+75|0]=52,l[k+60|0]=67,l[k+61|0]=99,l[k+62|0]=233,l[k+63|0]=20,l[k+64|0]=91,l[k+65|0]=125,l[k+66|0]=74,l[k+67|0]=171,i[k+204>>2]=k+60,A=i[k+208>>2],i[k+16>>2]=i[k+204>>2],i[k+20>>2]=A,t=0,o=R9(k+220|0,k+16|0),n=i[o>>2],A=i[k+32>>2],u=i[k+36>>2]-A|0,(i[o+4>>2]-n|0)==(u|0)&&(t=!K2(A,n,u)),n&&(i[o+4>>2]=n,G(n),A=i[k+32>>2]),A&&(i[k+36>>2]=A,G(A)),t){m7(k+60|0),n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;k:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break k;V[i[i[A>>2]+8>>2]](A),g(A)}break r}n=i[k+280>>2],A=U(80),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+72>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A>>2]=72464,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+16>>2]=68664,i[A+32>>2]=n,i[k+232>>2]=A+16,i[k+60>>2]=0,i[k+64>>2]=0,n=i[k+236>>2],i[k+236>>2]=A;k:{if(!n||(A=i[n+4>>2],i[n+4>>2]=A-1,A))break k;V[i[i[n>>2]+8>>2]](n),g(n)}break r}if((A|0)==1785751363)break e}n=U(80),i[n+32>>2]=0,i[n+36>>2]=0,i[n+24>>2]=0,i[n+28>>2]=0,i[n+4>>2]=0,i[n+8>>2]=0,i[n+72>>2]=0,i[n+64>>2]=0,i[n+68>>2]=0,i[n>>2]=72464,i[n+40>>2]=0,i[n+44>>2]=0,i[n+48>>2]=0,i[n+52>>2]=0,i[n+56>>2]=0,i[n+60>>2]=0,i[n+16>>2]=68664,i[n+32>>2]=A,i[k+236>>2]=n,i[k+232>>2]=n+16,i[k+60>>2]=0,i[k+64>>2]=0;break r}A=U(80),i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+72>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+16>>2]=74548,i[A>>2]=72104,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+32>>2]=1785751363,i[k+64>>2]=A,i[k+60>>2]=A+16,n=i[k+60>>2],t=i[k+64>>2],i[k+60>>2]=0,i[k+64>>2]=0,A=i[k+236>>2],i[k+232>>2]=n,i[k+236>>2]=t;e:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break e;V[i[i[A>>2]+8>>2]](A),g(A)}}v1(k+60|0),n=i[k+276>>2],A=i[k+232>>2],i[A+8>>2]=i[k+272>>2],i[A+12>>2]=n,i[A+16>>2]=i[k+280>>2],(A|0)!=(k+264|0)&&(n=i[k+284>>2],t=i[k+288>>2],W8(A+20|0,n,t,t-n|0)),n=i[k+296>>2],i[A+32>>2]=n;r:{if(i[e+12>>2]>=21){if(e=U(64),i[k+60>>2]=e,i[k+64>>2]=61,i[k+68>>2]=-2147483584,r=s[13095]|s[13096]<<8|(s[13097]<<16|s[13098]<<24),A=s[13091]|s[13092]<<8|(s[13093]<<16|s[13094]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+61|0]=0,r=s[13148]|s[13149]<<8|(s[13150]<<16|s[13151]<<24),A=s[13144]|s[13145]<<8|(s[13146]<<16|s[13147]<<24),l[e+53|0]=A,l[e+54|0]=A>>>8,l[e+55|0]=A>>>16,l[e+56|0]=A>>>24,l[e+57|0]=r,l[e+58|0]=r>>>8,l[e+59|0]=r>>>16,l[e+60|0]=r>>>24,r=s[13143]|s[13144]<<8|(s[13145]<<16|s[13146]<<24),A=s[13139]|s[13140]<<8|(s[13141]<<16|s[13142]<<24),l[e+48|0]=A,l[e+49|0]=A>>>8,l[e+50|0]=A>>>16,l[e+51|0]=A>>>24,l[e+52|0]=r,l[e+53|0]=r>>>8,l[e+54|0]=r>>>16,l[e+55|0]=r>>>24,r=s[13135]|s[13136]<<8|(s[13137]<<16|s[13138]<<24),A=s[13131]|s[13132]<<8|(s[13133]<<16|s[13134]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[13127]|s[13128]<<8|(s[13129]<<16|s[13130]<<24),A=s[13123]|s[13124]<<8|(s[13125]<<16|s[13126]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[13119]|s[13120]<<8|(s[13121]<<16|s[13122]<<24),A=s[13115]|s[13116]<<8|(s[13117]<<16|s[13118]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[13111]|s[13112]<<8|(s[13113]<<16|s[13114]<<24),A=s[13107]|s[13108]<<8|(s[13109]<<16|s[13110]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[13103]|s[13104]<<8|(s[13105]<<16|s[13106]<<24),A=s[13099]|s[13100]<<8|(s[13101]<<16|s[13102]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,6,1e3,k+60|0),l[k+71|0]>=0)break r;G(i[k+60>>2]);break r}t=i[k+276>>2],o=t;e:{A:{if(A=i[k+272>>2],t|A){if(!t&A>>>0>>0){i[k+68>>2]=54496,i[k+124>>2]=54516,e=i[13633],i[k+60>>2]=e,r=i[e-12>>2],e=k+60|0,i[r+e>>2]=i[13634],i[k+64>>2]=0,r=e+i[i[k+60>>2]-12>>2]|0,A=k+72|0,b0(r,A),i[r+72>>2]=0,i[r+76>>2]=-1,r=i[13635],i[k+68>>2]=r,t=i[r-12>>2],r=k+68|0,i[t+r>>2]=i[13636],n=i[13632],i[k+60>>2]=n,i[e+i[n-12>>2]>>2]=i[13637],i[k+124>>2]=54516,i[k+60>>2]=54476,i[k+68>>2]=54496,e=$0(A),i[e>>2]=53552,i[k+112>>2]=0,i[k+116>>2]=0,i[k+104>>2]=0,i[k+108>>2]=0,i[k+120>>2]=24,x(L0(x(n4(x(r,18592,10),i[k+272>>2],i[k+276>>2]),18603,34),i[k+296>>2]),18243,7),r=k+32|0,i2(r,e),r0(f,2,101,r),l[k+43|0]<0&&G(i[k+32>>2]),f=i[13631],i[k+60>>2]=f,i[i[f-12>>2]+(k+60|0)>>2]=i[13639],i[k+68>>2]=i[13640],i[e>>2]=53552,l[k+115|0]<0&&G(i[k+104>>2]),K0(e),T0(k+124|0);break r}if(t=A-n|0,A=o-(A>>>0>>0)|0,(A|0)==1|A>>>0>1){if(e=f,f=C1(k+60|0,10369),r0(e,6,101,f),l[f+11|0]>=0)break r;G(i[f>>2]);break r}if((o|0)<0){if(e=f,f=C1(k+60|0,31341),r0(e,2,101,f),l[f+11|0]>=0)break r;G(i[f>>2]);break r}if(A=i[e>>2],n=V[i[i[A>>2]+8>>2]](A)|0,o=i[e>>2],A=w0,n=n+t|0,A=n>>>0>>0?A+1|0:A,V[i[i[o>>2]+12>>2]](o,n,A)|0){if(e=f,f=C1(k+60|0,31341),r0(e,2,100,f),l[f+11|0]>=0)break r;G(i[f>>2]);break r}if(A=i[k+276>>2],t=A,n=i[k+272>>2],A|n)break A}A=i[e+16>>2];break e}if(o=i[k+296>>2],A=n-o|0,n=t-(n>>>0>>0)|0,(n|0)<=0&k0[e+16>>2]>=A>>>0|(n|0)<0)break e;if(l[k+60|0]=0,l[k+71|0]=0,r0(f,2,101,k+60|0),l[k+71|0]>=0)break r;G(i[k+60>>2]);break r}if(i[k+52>>2]=i[e>>2],n=i[e+4>>2],i[k+56>>2]=n,n&&(i[n+4>>2]=i[n+4>>2]+1),n=i[k+56>>2],i[k+8>>2]=i[k+52>>2],i[k+12>>2]=n,n=_e(k+60|0,k+8|0,A,e),e=i[k+232>>2],V[i[i[e>>2]+28>>2]](k+32|0,e,n),A=i[k+36>>2],e=i[k+32>>2],i[k+240>>2]=e,i[k+244>>2]=A,l[k+259|0]<0&&(G(i[k+248>>2]),e=i[k+240>>2]),A=i[k+44>>2],i[k+248>>2]=i[k+40>>2],i[k+252>>2]=A,i[k+256>>2]=i[k+48>>2],(e|0)==i[19564]&&si(r,k+232|0),A=i[n+16>>2],A&&(e=i[n+8>>2],e&&($t(e,A),A=i[n+16>>2]),e=i[n>>2],t=V[i[i[e>>2]+8>>2]](e)|0,r=w0,o=A,A=A+t|0,r=o>>>0>A>>>0?r+1|0:r,V[i[i[e>>2]+20>>2]](e,A,r)|0,i[n+16>>2]=0),e=i[k+244>>2],i[f>>2]=i[k+240>>2],i[f+4>>2]=e,i[f+16>>2]=i[k+256>>2],e=i[k+252>>2],i[f+8>>2]=i[k+248>>2],i[f+12>>2]=e,i[k+248>>2]=0,i[k+252>>2]=0,i[k+256>>2]=0,f=i[n+4>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=i[k+236>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}l[k+259|0]<0&&G(i[k+248>>2]),i[k+264>>2]=68500,f=i[k+284>>2],f&&(i[k+288>>2]=f,G(f)),B=k+304|0}function N8(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0;h=B-112|0,B=h,o=i[e>>2],u=i[o+28>>2],w=i[o+24>>2];i:{r:{if(!H2(o,6)||(y4(i[e>>2],6)|0)==(w|0)&&(F4(i[e>>2],6)|0)==(u|0))break r;i[f>>2]=0,i[f+4>>2]=0;break i}if(!(A-4>>>0>4294967292|r)){i[f>>2]=0,i[f+4>>2]=0;break i}l[h+110|0]=1,X[h+108>>1]=2,i[h+104>>2]=131074,l[h+92|0]=0,i[h+84>>2]=99,i[h+88>>2]=99,i[h+96>>2]=8,i[h+100>>2]=72992,u=h+100|0,o=u,l[o+10|0]=1,X[o+8>>1]=6,i[o+4>>2]=851969,o=i[e>>2],i[h+84>>2]=i[o+32>>2],i[h+88>>2]=i[o+36>>2],H2(o,6)?w=1:(o=i[i[e>>2]+36>>2],w=43008>>>o&o>>>0<16),l[h+92|0]=w,o=i[i[e>>2]+44>>2],o&&(i[h+104>>2]=i[o+4>>2],o=s[o+7|0]|s[o+8|0]<<8|(s[o+9|0]<<16|s[o+10|0]<<24),l[h+107|0]=o,l[h+108|0]=o>>>8,l[h+109|0]=o>>>16,l[h+110|0]=o>>>24),Dt(u),l7(h+72|0,i[e>>2]),D=h,z=U0(i[e>>2],i[i[h+72>>2]+16>>2]),i[D+96>>2]=z,o=i[h+96>>2],i[h+48>>2]=i[h+92>>2],i[h+52>>2]=o,o=i[h+88>>2],i[h+40>>2]=i[h+84>>2],i[h+44>>2]=o,i[h+56>>2]=72992,o=s[h+107|0]|s[h+108|0]<<8|(s[h+109|0]<<16|s[h+110|0]<<24),l[h+63|0]=o,l[h+64|0]=o>>>8,l[h+65|0]=o>>>16,l[h+66|0]=o>>>24,o=i[h+104>>2],i[h+40>>2]=r,i[h+44>>2]=A,i[h+60>>2]=o,r=i[k>>2],r&&(i[h+60>>2]=i[r+4>>2],r=s[r+7|0]|s[r+8|0]<<8|(s[r+9|0]<<16|s[r+10|0]<<24),l[h+63|0]=r,l[h+64|0]=r>>>8,l[h+65|0]=r>>>16,l[h+66|0]=r>>>24),Q[h+64>>1]==2&&(X[h+64>>1]=Q[h+108>>1]),Q[h+60>>1]==2&&(X[h+60>>1]=Q[h+104>>1]),Q[h+62>>1]==2&&(X[h+62>>1]=Q[h+106>>1]),r=1;r:{e:switch(A|0){case 10:case 12:case 14:r=3;break r;case 11:case 13:case 15:r=4;break r;case 0:case 1:case 2:case 3:case 99:break r;default:break e}r=0}if(l[h+48|0]=(r|0)>=2?43008>>>A&A>>>0<16:s[h+92|0],n&&(i[h+52>>2]=n),(A&-2)!=10?r=i[h+52>>2]<9:(i[h+52>>2]=8,r=1),!r|(A&-4)!=12||(i[h+52>>2]=10),i[h+20>>2]=0,i[h+12>>2]=0,i[h+16>>2]=0,p=h+40|0,o=B-112|0,B=o,A=i[h+16>>2],k=i[h+12>>2],(A|0)!=(k|0))for(;;){r=i[A-60>>2];r:{if(!r||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A+-64|0,(k|0)==(A|0))break}i[h+16>>2]=k,r=i[t+12>>2],i[h+32>>2]=i[t+8>>2],i[h+36>>2]=r,r=i[t+4>>2],i[h+24>>2]=i[t>>2],i[h+28>>2]=r,r=i[h+84>>2];r:{e:{if((r|0)!=i[p>>2]|i[h+88>>2]!=i[p+4>>2]|(s[h+92|0]!=s[p+8|0]|i[h+96>>2]!=i[p+12>>2]))break e;if(w=1,r)break r;if(s[h+110|0]!=s[p+26|0]|Q[h+108>>1]!=Q[p+24>>1])break e;if(Q[h+104>>1]==Q[p+20>>1])break r}mA(),i[o+108>>2]=0,i[o+100>>2]=0,i[o+104>>2]=0,i[o+96>>2]=0,i[o+88>>2]=0,i[o+92>>2]=0,l[o+82|0]=1,X[o+80>>1]=2,i[o+76>>2]=131074,l[o+64|0]=0,i[o+60>>2]=99,i[o+52>>2]=0,i[o+56>>2]=99,i[o+44>>2]=-1,i[o+48>>2]=0,i[o+68>>2]=8,i[o+72>>2]=72992,l[o+82|0]=1,X[o+80>>1]=6,i[o+76>>2]=851969,i[o+44>>2]=-1,i[o+48>>2]=0,r=i[o+52>>2],i[o+52>>2]=0;e:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break e;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[h+88>>2],i[o+56>>2]=i[h+84>>2],i[o+60>>2]=r,r=i[h+96>>2],i[o+64>>2]=i[h+92>>2],i[o+68>>2]=r,r=s[h+107|0]|s[h+108|0]<<8|(s[h+109|0]<<16|s[h+110|0]<<24),l[o+79|0]=r,l[o+80|0]=r>>>8,l[o+81|0]=r>>>16,l[o+82|0]=r>>>24,i[o+76>>2]=i[h+104>>2],i[o+84>>2]=0,r=i[o+92>>2];e:{if(r>>>0>2]){i[r>>2]=i[o+44>>2],i[r+4>>2]=i[o+48>>2],i[r+8>>2]=i[o+52>>2],i[o+48>>2]=0,i[o+52>>2]=0,A=i[o+68>>2],i[r+20>>2]=i[o+64>>2],i[r+24>>2]=A,A=i[o+60>>2],i[r+12>>2]=i[o+56>>2],i[r+16>>2]=A,i[r+28>>2]=72992,i[r+32>>2]=i[o+76>>2],A=s[o+79|0]|s[o+80|0]<<8|(s[o+81|0]<<16|s[o+82|0]<<24),l[r+35|0]=A,l[r+36|0]=A>>>8,l[r+37|0]=A>>>16,l[r+38|0]=A>>>24,i[r+40>>2]=i[o+84>>2],i[o+92>>2]=r+44;break e}A:{f:{if(k=i[o+92>>2],Z=i[o+88>>2],A=(k-Z|0)/44|0,r=A+1|0,r>>>0<97612894){if(n=(i[o+96>>2]-Z|0)/44|0,u=n<<1,r=n>>>0>=48806446?97612893:r>>>0>>0?u:r,r){if(r>>>0>=97612894)break f;n=U(m(r,44))}else n=0;A=n+m(A,44)|0,i[A>>2]=i[o+44>>2],i[A+4>>2]=i[o+48>>2],i[A+8>>2]=i[o+52>>2],i[o+48>>2]=0,i[o+52>>2]=0,u=i[o+68>>2],i[A+20>>2]=i[o+64>>2],i[A+24>>2]=u,u=i[o+60>>2],i[A+12>>2]=i[o+56>>2],i[A+16>>2]=u,i[A+28>>2]=72992,i[A+32>>2]=i[o+76>>2],u=s[o+79|0]|s[o+80|0]<<8|(s[o+81|0]<<16|s[o+82|0]<<24),l[A+35|0]=u,l[A+36|0]=u>>>8,l[A+37|0]=u>>>16,l[A+38|0]=u>>>24,i[A+40>>2]=i[o+84>>2],v=n+m(r,44)|0,n=A+44|0;k:{if((k|0)==(Z|0)){r=A;break k}for(;r=A-44|0,u=k-44|0,i[r>>2]=i[u>>2],w=k-40|0,i[A-40>>2]=i[w>>2],i[A-36>>2]=i[k-36>>2],i[w>>2]=0,i[w+4>>2]=0,w=k-32|0,W=i[w+12>>2],_=A-32|0,i[_+8>>2]=i[w+8>>2],i[_+12>>2]=W,W=i[w+4>>2],i[_>>2]=i[w>>2],i[_+4>>2]=W,i[A-16>>2]=72992,w=A-12|0,_=k-12|0,i[w>>2]=i[_>>2],_=s[_+3|0]|s[_+4|0]<<8|(s[_+5|0]<<16|s[_+6|0]<<24),l[w+3|0]=_,l[w+4|0]=_>>>8,l[w+5|0]=_>>>16,l[w+6|0]=_>>>24,i[A-4>>2]=i[k-4>>2],A=r,k=u,(Z|0)!=(k|0););}if(i[o+96>>2]=v,k=i[o+88>>2],i[o+88>>2]=r,A=i[o+92>>2],i[o+92>>2]=n,(A|0)!=(k|0))for(;;){r=i[A-36>>2];k:{if(!r||(u=i[r+4>>2],i[r+4>>2]=u-1,u))break k;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-44|0,(k|0)==(A|0))break}k&&G(k);break A}y0(),P()}_2(),P()}if(i[o+92>>2]=n,r=i[o+52>>2],!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break e;V[i[i[r>>2]+8>>2]](r),g(r)}A=i[o+92>>2],u=i[o+88>>2],w=0;e:{if((A|0)==(u|0))break e;for(;;){k=-1,r=A-u|0;A:{if((r|0)<=0)break A;A=(r>>>0)/44|0,A=A>>>0<=1?1:A,_=A&3,w=0;f:{if(r>>>0<176){r=2147483647,A=0;break f}for(E=A&67108860,A=0,r=2147483647,n=0;v=i[(m(A,44)+u|0)+40>>2],Z=(v|0)<(r|0),y=A|1,W=i[(m(y,44)+u|0)+40>>2],r=Z?v:r,v=(W|0)<(r|0),I=A|2,C=i[(m(I,44)+u|0)+40>>2],r=v?W:r,W=(C|0)<(r|0),J=A|3,R=i[(m(J,44)+u|0)+40>>2],r=W?C:r,C=(R|0)<(r|0),r=C?R:r,k=C?J:W?I:v?y:Z?A:k,A=A+4|0,n=n+4|0,(E|0)!=(n|0););}if(!_)break A;for(;Z=i[(m(A,44)+u|0)+40>>2],n=(Z|0)<(r|0),r=n?Z:r,k=n?A:k,A=A+1|0,w=w+1|0,(_|0)!=(w|0););}v=m(k,44),n=v+u|0,r=i[o+104>>2];A:{if(r>>>0>2]){i[r>>2]=i[n>>2],i[r+4>>2]=i[n+4>>2],A=i[n+8>>2],i[r+8>>2]=A,A&&(i[A+4>>2]=i[A+4>>2]+1),A=i[n+16>>2],i[r+12>>2]=i[n+12>>2],i[r+16>>2]=A,A=i[n+24>>2],i[r+20>>2]=i[n+20>>2],i[r+24>>2]=A,i[r+28>>2]=72992,i[r+32>>2]=i[n+32>>2],A=s[n+35|0]|s[n+36|0]<<8|(s[n+37|0]<<16|s[n+38|0]<<24),l[r+35|0]=A,l[r+36|0]=A>>>8,l[r+37|0]=A>>>16,l[r+38|0]=A>>>24,i[r+40>>2]=i[n+40>>2],A=r+44|0;break A}f:{k:{if(k=i[o+104>>2],u=i[o+100>>2],A=(k-u|0)/44|0,r=A+1|0,r>>>0<97612894){if(w=(i[o+108>>2]-u|0)/44|0,_=w<<1,w=w>>>0>=48806446?97612893:r>>>0<_>>>0?_:r,w){if(w>>>0>=97612894)break k;r=U(m(w,44))}else r=0;A=r+m(A,44)|0,i[A>>2]=i[n>>2],i[A+4>>2]=i[n+4>>2],_=i[n+8>>2],i[A+8>>2]=_,_&&(i[_+4>>2]=i[_+4>>2]+1,u=i[o+100>>2],k=i[o+104>>2]),W=r+m(w,44)|0,r=i[n+16>>2],i[A+12>>2]=i[n+12>>2],i[A+16>>2]=r,r=i[n+24>>2],i[A+20>>2]=i[n+20>>2],i[A+24>>2]=r,i[A+28>>2]=72992,i[A+32>>2]=i[n+32>>2],r=s[n+35|0]|s[n+36|0]<<8|(s[n+37|0]<<16|s[n+38|0]<<24),l[A+35|0]=r,l[A+36|0]=r>>>8,l[A+37|0]=r>>>16,l[A+38|0]=r>>>24,i[A+40>>2]=i[n+40>>2],n=A+44|0;n:{if((k|0)==(u|0)){r=A;break n}for(;r=A-44|0,w=k-44|0,i[r>>2]=i[w>>2],_=k-40|0,i[A-40>>2]=i[_>>2],i[A-36>>2]=i[k-36>>2],i[_>>2]=0,i[_+4>>2]=0,_=k-32|0,C=i[_+12>>2],Z=A-32|0,i[Z+8>>2]=i[_+8>>2],i[Z+12>>2]=C,C=i[_+4>>2],i[Z>>2]=i[_>>2],i[Z+4>>2]=C,i[A-16>>2]=72992,_=A-12|0,Z=k-12|0,i[_>>2]=i[Z>>2],Z=s[Z+3|0]|s[Z+4|0]<<8|(s[Z+5|0]<<16|s[Z+6|0]<<24),l[_+3|0]=Z,l[_+4|0]=Z>>>8,l[_+5|0]=Z>>>16,l[_+6|0]=Z>>>24,i[A-4>>2]=i[k-4>>2],A=r,k=w,(u|0)!=(k|0););k=i[o+104>>2],u=i[o+100>>2]}if(i[o+108>>2]=W,i[o+104>>2]=n,i[o+100>>2]=r,(k|0)!=(u|0))for(;;){r=i[k-36>>2];n:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break n;V[i[i[r>>2]+8>>2]](r),g(r)}if(k=k-44|0,(u|0)==(k|0))break}u&&G(u),A=n;break f}y0(),P()}_2(),P()}u=i[o+88>>2]}i[o+104>>2]=A,r=u+v|0,k=i[o+92>>2],i[r>>2]=i[k-44>>2],A=i[k-40>>2],n=i[k-36>>2],n&&(i[n+4>>2]=i[n+4>>2]+1),i[r+4>>2]=A,A=i[r+8>>2],i[r+8>>2]=n;A:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break A;V[i[i[A>>2]+8>>2]](A),g(A)}A=k-32|0,n=i[A+4>>2],i[r+12>>2]=i[A>>2],i[r+16>>2]=n,n=i[A+12>>2],i[r+20>>2]=i[A+8>>2],i[r+24>>2]=n,A=k-12|0,i[r+32>>2]=i[A>>2],A=s[A+3|0]|s[A+4|0]<<8|(s[A+5|0]<<16|s[A+6|0]<<24),l[r+35|0]=A,l[r+36|0]=A>>>8,l[r+37|0]=A>>>16,l[r+38|0]=A>>>24,i[r+40>>2]=i[k-4>>2],A=i[o+92>>2],r=i[A-36>>2];A:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break A;V[i[i[r>>2]+8>>2]](r),g(r)}A=A-44|0,i[o+92>>2]=A;A:{if(r=i[o+104>>2],k=i[r-32>>2],(k|0)!=i[p>>2]|i[r-28>>2]!=i[p+4>>2]|(s[r-24|0]!=s[p+8|0]|i[r-20>>2]!=i[p+12>>2])||!k&&s[r-6|0]!=s[p+26|0]|Q[r-8>>1]!=Q[p+24>>1]|Q[r-12>>1]!=Q[p+20>>1])break A;k=i[o+100>>2],r=((r-k|0)/44|0)-1|0;f:{k:{if(r){for(A=0;n=A,A=A+1|0,r=i[k+m(r,44)>>2],!!r;);if(k=i[h+16>>2],r=k,w=i[h+12>>2],u=r-w>>6,n>>>0>>0)break k;t=0;n:{if(n=A-u|0,w=i[h+20>>2],n>>>0<=w-r>>6>>>0){if(n)for(r=(n<<6)+r|0;i[k+32>>2]=0,i[k+36>>2]=0,n=k+24|0,i[n>>2]=0,i[n+4>>2]=0,i[k+16>>2]=0,i[k+20>>2]=0,i[k>>2]=0,i[k+4>>2]=0,i[k+56>>2]=0,i[k+60>>2]=0,i[k+48>>2]=0,i[k+52>>2]=0,i[k+40>>2]=0,i[k+44>>2]=0,i[k+8>>2]=99,i[k+12>>2]=99,l[k+34|0]=1,X[k+32>>1]=2,i[k+28>>2]=131074,i[k+24>>2]=72992,i[k+20>>2]=8,l[k+34|0]=1,X[k+32>>1]=6,i[k+28>>2]=851969,l[k+62|0]=1,X[k+60>>1]=2,i[k+56>>2]=131074,i[k+52>>2]=72992,i[k+48>>2]=8,l[k+44|0]=0,i[k+36>>2]=99,i[k+40>>2]=99,l[k+62|0]=1,X[k+60>>1]=6,i[k+56>>2]=851969,k=k- -64|0,(r|0)!=(k|0););i[h+16>>2]=k;break n}t:{if(r=k,k=i[h+12>>2],_=r-k>>6,r=_+n|0,r>>>0<67108864){if(k=w-k|0,u=k>>5,u=k>>>0>=2147483584?67108863:r>>>0>>0?u:r,u){if(u>>>0>=67108864)break t;t=U(u<<6)}for(r=(_<<6)+t|0,n=r+(n<<6)|0,k=r;i[k+32>>2]=0,i[k+36>>2]=0,w=k+24|0,i[w>>2]=0,i[w+4>>2]=0,i[k+16>>2]=0,i[k+20>>2]=0,i[k>>2]=0,i[k+4>>2]=0,i[k+56>>2]=0,i[k+60>>2]=0,i[k+48>>2]=0,i[k+52>>2]=0,i[k+40>>2]=0,i[k+44>>2]=0,i[k+8>>2]=99,i[k+12>>2]=99,l[k+34|0]=1,X[k+32>>1]=2,i[k+28>>2]=131074,i[k+24>>2]=72992,i[k+20>>2]=8,l[k+34|0]=1,X[k+32>>1]=6,i[k+28>>2]=851969,l[k+62|0]=1,X[k+60>>1]=2,i[k+56>>2]=131074,i[k+52>>2]=72992,i[k+48>>2]=8,l[k+44|0]=0,i[k+36>>2]=99,i[k+40>>2]=99,l[k+62|0]=1,X[k+60>>1]=6,i[k+56>>2]=851969,k=k- -64|0,(n|0)!=(k|0););Z=(u<<6)+t|0,n=i[h+16>>2],u=i[h+12>>2];o:{if((n|0)==(u|0)){t=r;break o}for(;t=r+-64|0,w=n+-64|0,i[t>>2]=i[w>>2],i[r-60>>2]=i[n-60>>2],i[w>>2]=0,i[w+4>>2]=0,_=n-56|0,v=i[_+12>>2],p=r-56|0,i[p+8>>2]=i[_+8>>2],i[p+12>>2]=v,v=i[_+4>>2],i[p>>2]=i[_>>2],i[p+4>>2]=v,i[r-40>>2]=72992,_=r-36|0,p=n-36|0,i[_>>2]=i[p>>2],p=s[p+3|0]|s[p+4|0]<<8|(s[p+5|0]<<16|s[p+6|0]<<24),l[_+3|0]=p,l[_+4|0]=p>>>8,l[_+5|0]=p>>>16,l[_+6|0]=p>>>24,_=n-28|0,v=i[_+4>>2],p=r-28|0,i[p>>2]=i[_>>2],i[p+4>>2]=v,v=i[_+12>>2],i[p+8>>2]=i[_+8>>2],i[p+12>>2]=v,i[r-12>>2]=72992,r=r-8|0,n=n-8|0,i[r>>2]=i[n>>2],n=s[n+3|0]|s[n+4|0]<<8|(s[n+5|0]<<16|s[n+6|0]<<24),l[r+3|0]=n,l[r+4|0]=n>>>8,l[r+5|0]=n>>>16,l[r+6|0]=n>>>24,r=t,n=w,(u|0)!=(n|0););n=i[h+16>>2],u=i[h+12>>2]}if(i[h+20>>2]=Z,i[h+16>>2]=k,i[h+12>>2]=t,(n|0)!=(u|0))for(;;){r=i[n-60>>2];o:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break o;V[i[i[r>>2]+8>>2]](r),g(r)}if(n=n+-64|0,(u|0)==(n|0))break}u&&G(u);break n}y0(),P()}_2(),P()}break f}r=i[h+16>>2],w=i[h+12>>2],u=r-w>>6,A=0}if(A>>>0>=u>>>0)break f;if(n=(A<<6)+w|0,(n|0)!=(r|0))for(;;){k=i[r-60>>2];k:{if(!k||(t=i[k+4>>2],i[k+4>>2]=t-1,t))break k;V[i[i[k>>2]+8>>2]](k),g(k)}if(r=r+-64|0,(n|0)==(r|0))break}i[h+16>>2]=n}if(r=i[h+12>>2],n=i[o+100>>2],t=((i[o+104>>2]-n|0)/44|0)-1|0,t){u=A-1|0,k=(u<<6)+r|0,r=n+m(t,44)|0,w=i[r+4>>2],n=i[r+8>>2],n&&(i[n+4>>2]=i[n+4>>2]+1),i[k>>2]=w,r=i[k+4>>2],i[k+4>>2]=n;f:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break f;V[i[i[r>>2]+8>>2]](r),g(r)}if(t=m(t,44),k=t+i[o+100>>2]|0,n=i[k+16>>2],r=i[h+12>>2]+(u<<6)|0,i[r+36>>2]=i[k+12>>2],i[r+40>>2]=n,n=i[k+24>>2],i[r+44>>2]=i[k+20>>2],i[r+48>>2]=n,n=s[k+35|0]|s[k+36|0]<<8|(s[k+37|0]<<16|s[k+38|0]<<24),l[r+59|0]=n,l[r+60|0]=n>>>8,l[r+61|0]=n>>>16,l[r+62|0]=n>>>24,i[r+56>>2]=i[k+32>>2],k=i[o+100>>2],w=i[t+k>>2],w)for(r=1;;){u=(r^-1)+A<<6,n=u+i[h+12>>2]|0,w=m(w,44),k=w+k|0,_=i[k+4>>2],t=i[k+8>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),i[n>>2]=_,k=i[n+4>>2],i[n+4>>2]=t;f:{if(!k||(n=i[k+4>>2],i[k+4>>2]=n-1,n))break f;V[i[i[k>>2]+8>>2]](k),g(k)}if(n=w+i[o+100>>2]|0,t=i[n+16>>2],k=u+i[h+12>>2]|0,i[k+36>>2]=i[n+12>>2],i[k+40>>2]=t,t=i[n+24>>2],i[k+44>>2]=i[n+20>>2],i[k+48>>2]=t,t=s[n+35|0]|s[n+36|0]<<8|(s[n+37|0]<<16|s[n+38|0]<<24),l[k+59|0]=t,l[k+60|0]=t>>>8,l[k+61|0]=t>>>16,l[k+62|0]=t>>>24,i[k+56>>2]=i[n+32>>2],n=i[h+12>>2],k=n+(A-r<<6)|0,n=n+u|0,t=i[n+40>>2],i[k+8>>2]=i[n+36>>2],i[k+12>>2]=t,t=i[n+48>>2],i[k+16>>2]=i[n+44>>2],i[k+20>>2]=t,t=s[n+59|0]|s[n+60|0]<<8|(s[n+61|0]<<16|s[n+62|0]<<24),l[k+31|0]=t,l[k+32|0]=t>>>8,l[k+33|0]=t>>>16,l[k+34|0]=t>>>24,i[k+28>>2]=i[n+56>>2],r=r+1|0,k=i[o+100>>2],w=i[w+k>>2],!w)break}r=i[h+12>>2]}A=i[h+88>>2],i[r+8>>2]=i[h+84>>2],i[r+12>>2]=A,A=i[h+96>>2],i[r+16>>2]=i[h+92>>2],i[r+20>>2]=A,A=s[h+107|0]|s[h+108|0]<<8|(s[h+109|0]<<16|s[h+110|0]<<24),l[r+31|0]=A,l[r+32|0]=A>>>8,l[r+33|0]=A>>>16,l[r+34|0]=A>>>24,i[r+28>>2]=i[h+104>>2],u=i[o+88>>2],w=1;break e}if(_=i[19590],C=i[19591],(_|0)!=(C|0)){for(;;){if(r=i[_>>2],V[i[i[r>>2]+8>>2]](o+32|0,r,i[o+104>>2]-32|0,p,t),u=i[o+32>>2],E=i[o+36>>2],(u|0)!=(E|0)){A:{f:{for(;;){k:{k=i[o+104>>2],Z=i[k-4>>2],w=i[u+28>>2],r=i[o+100>>2];n:{if((r|0)!=(k|0))for(n=i[u>>2],A=r;;){t:{if((n|0)!=i[A+12>>2]|i[A+16>>2]!=i[u+4>>2]|(s[A+20|0]!=s[u+8|0]|i[A+24>>2]!=i[u+12>>2]))break t;if(n)break n;if(s[A+38|0]!=s[u+26|0]|Q[A+36>>1]!=Q[u+24>>1])break t;if(Q[A+32>>1]==Q[u+20>>1])break n}if(A=A+44|0,(k|0)==(A|0))break}if(n=w+Z|0,A=i[o+88>>2],v=i[o+92>>2],(A|0)!=(v|0))for(Z=i[u>>2];;){t:{if((Z|0)!=i[A+12>>2]|i[A+16>>2]!=i[u+4>>2]|(s[A+20|0]!=s[u+8|0]|i[A+24>>2]!=i[u+12>>2])||!Z&&s[A+38|0]!=s[u+26|0]|Q[A+36>>1]!=Q[u+24>>1]|Q[A+32>>1]!=Q[u+20>>1])break t;if((n|0)>=i[A+40>>2])break n;l[o+82|0]=1,X[o+80>>1]=2,i[o+76>>2]=131074,l[o+64|0]=0,i[o+60>>2]=99,i[o+52>>2]=0,i[o+56>>2]=99,i[o+44>>2]=-1,i[o+48>>2]=0,i[o+68>>2]=8,i[o+72>>2]=72992,l[o+82|0]=1,X[o+80>>1]=6,i[o+76>>2]=851969,i[o+44>>2]=((k-r|0)/44|0)-1,r=i[_>>2],k=i[_+4>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),i[o+48>>2]=r,r=i[o+52>>2],i[o+52>>2]=k;o:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break o;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[u+4>>2],i[o+56>>2]=i[u>>2],i[o+60>>2]=r,r=i[u+12>>2],i[o+64>>2]=i[u+8>>2],i[o+68>>2]=r,r=s[u+23|0]|s[u+24|0]<<8|(s[u+25|0]<<16|s[u+26|0]<<24),l[o+79|0]=r,l[o+80|0]=r>>>8,l[o+81|0]=r>>>16,l[o+82|0]=r>>>24,i[o+76>>2]=i[u+20>>2],i[o+84>>2]=w,i[A>>2]=i[o+44>>2],k=i[o+48>>2],w=i[o+52>>2],i[o+48>>2]=0,i[o+52>>2]=0,r=i[A+8>>2],i[A+4>>2]=k,i[A+8>>2]=w;o:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break o;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[o+60>>2],i[A+12>>2]=i[o+56>>2],i[A+16>>2]=r,r=i[o+68>>2],i[A+20>>2]=i[o+64>>2],i[A+24>>2]=r,r=s[o+79|0]|s[o+80|0]<<8|(s[o+81|0]<<16|s[o+82|0]<<24),l[A+35|0]=r,l[A+36|0]=r>>>8,l[A+37|0]=r>>>16,l[A+38|0]=r>>>24,i[A+32>>2]=i[o+76>>2],i[A+40>>2]=i[o+84>>2],r=i[o+52>>2];o:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break o;V[i[i[r>>2]+8>>2]](r),g(r)}i[A+40>>2]=n;break n}if(A=A+44|0,(v|0)==(A|0))break}A=i[u+12>>2],i[o+24>>2]=i[u+8>>2],i[o+28>>2]=A,A=i[u+4>>2],i[o+16>>2]=i[u>>2],i[o+20>>2]=A,i[o+8>>2]=i[u+20>>2],A=s[u+23|0]|s[u+24|0]<<8|(s[u+25|0]<<16|s[u+26|0]<<24),l[o+11|0]=A,l[o+12|0]=A>>>8,l[o+13|0]=A>>>16,l[o+14|0]=A>>>24,l[o+82|0]=1,X[o+80>>1]=2,i[o+76>>2]=131074,i[o+72>>2]=72992,i[o+68>>2]=8,l[o+64|0]=0,i[o+60>>2]=99,i[o+52>>2]=0,i[o+56>>2]=99,i[o+44>>2]=-1,i[o+48>>2]=0,l[o+82|0]=1,X[o+80>>1]=6,i[o+76>>2]=851969,i[o+44>>2]=((k-r|0)/44|0)-1,r=i[_>>2],A=i[_+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[o+48>>2]=r,r=i[o+52>>2],i[o+52>>2]=A;t:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break t;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[o+20>>2],i[o+56>>2]=i[o+16>>2],i[o+60>>2]=r,r=i[o+28>>2],i[o+64>>2]=i[o+24>>2],i[o+68>>2]=r,r=s[o+11|0]|s[o+12|0]<<8|(s[o+13|0]<<16|s[o+14|0]<<24),l[o+79|0]=r,l[o+80|0]=r>>>8,l[o+81|0]=r>>>16,l[o+82|0]=r>>>24,i[o+76>>2]=i[o+8>>2],i[o+84>>2]=n,A=i[o+92>>2],k=i[o+96>>2];t:{if(A>>>0>>0){i[A>>2]=i[o+44>>2],i[A+4>>2]=i[o+48>>2],i[A+8>>2]=i[o+52>>2],i[o+48>>2]=0,i[o+52>>2]=0,r=i[o+68>>2],i[A+20>>2]=i[o+64>>2],i[A+24>>2]=r,r=i[o+60>>2],i[A+12>>2]=i[o+56>>2],i[A+16>>2]=r,i[A+28>>2]=72992,i[A+32>>2]=i[o+76>>2],r=s[o+79|0]|s[o+80|0]<<8|(s[o+81|0]<<16|s[o+82|0]<<24),l[A+35|0]=r,l[A+36|0]=r>>>8,l[A+37|0]=r>>>16,l[A+38|0]=r>>>24,i[A+40>>2]=i[o+84>>2],Z=A+44|0;break t}if(w=i[o+88>>2],v=(A-w|0)/44|0,r=v+1|0,r>>>0>=97612894)break k;if(k=(k-w|0)/44|0,Z=k<<1,k=k>>>0>=48806446?97612893:r>>>0>>0?Z:r,k){if(k>>>0>=97612894)break f;Z=U(m(k,44))}else Z=0;r=Z+m(v,44)|0,i[r>>2]=i[o+44>>2],i[r+4>>2]=i[o+48>>2],i[r+8>>2]=i[o+52>>2],i[o+48>>2]=0,i[o+52>>2]=0,v=i[o+28>>2],i[r+20>>2]=i[o+24>>2],i[r+24>>2]=v,v=i[o+20>>2],i[r+12>>2]=i[o+16>>2],i[r+16>>2]=v,i[r+28>>2]=72992,i[r+32>>2]=i[o+8>>2],v=s[o+11|0]|s[o+12|0]<<8|(s[o+13|0]<<16|s[o+14|0]<<24),l[r+35|0]=v,l[r+36|0]=v>>>8,l[r+37|0]=v>>>16,l[r+38|0]=v>>>24,i[r+40>>2]=n,y=Z+m(k,44)|0,Z=r+44|0;o:{if((A|0)==(w|0)){n=r;break o}for(;n=r-44|0,k=A-44|0,i[n>>2]=i[k>>2],v=A-40|0,i[r-40>>2]=i[v>>2],i[r-36>>2]=i[A-36>>2],i[v>>2]=0,i[v+4>>2]=0,v=A-32|0,I=i[v+12>>2],W=r-32|0,i[W+8>>2]=i[v+8>>2],i[W+12>>2]=I,I=i[v+4>>2],i[W>>2]=i[v>>2],i[W+4>>2]=I,i[r-16>>2]=72992,v=r-12|0,W=A-12|0,i[v>>2]=i[W>>2],W=s[W+3|0]|s[W+4|0]<<8|(s[W+5|0]<<16|s[W+6|0]<<24),l[v+3|0]=W,l[v+4|0]=W>>>8,l[v+5|0]=W>>>16,l[v+6|0]=W>>>24,i[r-4>>2]=i[A-4>>2],r=n,A=k,(w|0)!=(k|0););A=i[o+92>>2],w=i[o+88>>2]}if(i[o+96>>2]=y,i[o+92>>2]=Z,i[o+88>>2]=n,(A|0)!=(w|0))for(;;){r=i[A-36>>2];o:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break o;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-44|0,(w|0)==(A|0))break}if(!w)break t;G(w)}if(i[o+92>>2]=Z,r=i[o+52>>2],!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break n;V[i[i[r>>2]+8>>2]](r),g(r)}if(u=u+32|0,(E|0)!=(u|0))continue;break A}break}y0(),P()}_2(),P()}u=i[o+32>>2]}if(u&&(i[o+36>>2]=u,G(u)),_=_+8|0,(C|0)==(_|0))break}A=i[o+92>>2]}if(u=i[o+88>>2],(u|0)==(A|0))break}w=0}if(u){if(r=u,A=i[o+92>>2],(r|0)!=(A|0)){for(;;){r=i[A-36>>2];e:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break e;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-44|0,(u|0)==(A|0))break}r=i[o+88>>2]}i[o+92>>2]=u,G(r)}if(k=i[o+100>>2],!k)break r;if(r=k,A=i[o+104>>2],(r|0)!=(A|0)){for(;;){r=i[A-36>>2];e:{if(!r||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break e;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-44|0,(k|0)==(A|0))break}r=i[o+100>>2]}i[o+104>>2]=k,G(r)}B=o+112|0;r:{if(!w){i[f>>2]=0,i[f+4>>2]=0;break r}t=f,u=B-48|0,B=u,f=i[e>>2],e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+2),r=h+12|0,Z=i[r>>2],C=i[r+4>>2];e:{A:{if((Z|0)==(C|0)){A=f,r=e;break A}for(E=r+12|0,w=u+16|0;;){r=i[Z>>2],i[u+36>>2]=e,i[u+32>>2]=f,e&&(i[e+4>>2]=i[e+4>>2]+1),V[i[i[r>>2]+12>>2]](u+40|0,r,u+32|0,Z+8|0,Z+36|0,E),r=i[u+44>>2],A=i[u+40>>2],i[u+40>>2]=0,i[u+44>>2]=0;f:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k||(V[i[i[e>>2]+8>>2]](e),g(e)),k=i[u+44>>2],!k)||(n=i[k+4>>2],i[k+4>>2]=n-1,n))break f;V[i[i[k>>2]+8>>2]](k),g(k)}k=i[u+36>>2];f:{if(!k||(n=i[k+4>>2],i[k+4>>2]=n-1,n))break f;V[i[i[k>>2]+8>>2]](k),g(k)}f:{k:{n:{if(A){p=U(24),k=p,i[k+4>>2]=0,i[k+8>>2]=0,i[k+12>>2]=72992,i[k>>2]=72832,i[k+16>>2]=i[Z+56>>2],n=s[Z+59|0]|s[Z+60|0]<<8|(s[Z+61|0]<<16|s[Z+62|0]<<24),l[k+19|0]=n,l[k+20|0]=n>>>8,l[k+21|0]=n>>>16,l[k+22|0]=n>>>24,i[k+4>>2]=2,i[A+44>>2]=k+12,n=i[A+48>>2],i[A+48>>2]=k;t:{if(!n||(k=i[n+4>>2],i[n+4>>2]=k-1,k))break t;V[i[i[n>>2]+8>>2]](n),g(n)}k=i[p+4>>2],i[p+4>>2]=k-1,k||(V[i[i[p>>2]+8>>2]](p),g(p)),k=i[f+52>>2],n=i[f+56>>2],n&&(i[n+4>>2]=i[n+4>>2]+1),i[A+52>>2]=k,k=i[A+56>>2],i[A+56>>2]=n;t:{if(!k||(n=i[k+4>>2],i[k+4>>2]=n-1,n))break t;V[i[i[k>>2]+8>>2]](k),g(k)}if(l[A+40|0]=s[f+40|0],Q[f+80>>1]|Q[f+82>>1]&&(i[A+80>>2]=i[f+80>>2]),s[f+108|0]==1&&(k=i[f+92>>2],n=i[f+96>>2],o=i[f+84>>2],_=i[f+88>>2],v=i[f+104>>2],i[A+100>>2]=i[f+100>>2],i[A+104>>2]=v,i[A+92>>2]=k,i[A+96>>2]=n,i[A+84>>2]=o,i[A+88>>2]=_,l[A+108|0]=1),k=i[f+72>>2],n=i[f+76>>2],(k|0)!=(n|0)&&(i[A+76>>2]=n,i[A+72>>2]=k),_=i[f+112>>2],y=i[f+116>>2],(_|0)==(y|0))break f;for(;;){f=i[_+4>>2],i[u+8>>2]=i[_>>2],i[u+12>>2]=f;t:{if(l[_+19|0]>=0){f=i[_+12>>2],i[w>>2]=i[_+8>>2],i[w+4>>2]=f,i[w+8>>2]=i[_+16>>2];break t}_0(w,i[_+8>>2],i[_+12>>2])}f=i[A+116>>2],k=i[A+120>>2];t:{if(f>>>0>>0){k=i[u+12>>2],i[f>>2]=i[u+8>>2],i[f+4>>2]=k,i[f+16>>2]=i[w+8>>2],k=i[w+4>>2],i[f+8>>2]=i[w>>2],i[f+12>>2]=k,i[w>>2]=0,i[w+4>>2]=0,i[w+8>>2]=0,W=f+20|0;break t}if(n=i[A+112>>2],o=(f-n|0)/20|0,f=o+1|0,f>>>0>=214748365)break n;if(k=(k-n|0)/20|0,n=k<<1,f=k>>>0>=107374182?214748364:f>>>0>>0?n:f,f){if(f>>>0>=214748365)break k;n=U(m(f,20))}else n=0;k=n+m(o,20)|0,o=i[u+12>>2],i[k>>2]=i[u+8>>2],i[k+4>>2]=o,i[k+16>>2]=i[w+8>>2],o=i[w+4>>2],i[k+8>>2]=i[w>>2],i[k+12>>2]=o,i[w>>2]=0,i[w+4>>2]=0,i[w+8>>2]=0,I=n+m(f,20)|0,W=k+20|0,f=i[A+116>>2],v=i[A+112>>2];o:{if((f|0)==(v|0)){n=k;break o}for(;o=f-20|0,J=i[o+4>>2],n=k-20|0,i[n>>2]=i[o>>2],i[n+4>>2]=J,k=k-12|0,f=f-12|0,i[k+8>>2]=i[f+8>>2],J=i[f+4>>2],i[k>>2]=i[f>>2],i[k+4>>2]=J,i[f>>2]=0,i[f+4>>2]=0,i[f+8>>2]=0,k=n,f=o,(o|0)!=(v|0););f=i[A+116>>2],v=i[A+112>>2]}if(i[A+120>>2]=I,i[A+116>>2]=W,i[A+112>>2]=n,(f|0)!=(v|0))for(;l[f-1|0]<0&&G(i[f-12>>2]),f=f-20|0,(v|0)!=(f|0););if(!v)break t;G(v)}if(i[A+116>>2]=W,l[u+27|0]<0&&G(i[u+16>>2]),_=_+20|0,(y|0)==(_|0))break}break f}i[t>>2]=0,i[t+4>>2]=0;t:{if(!r||(f=i[r+4>>2],i[r+4>>2]=f-1,f))break t;V[i[i[r>>2]+8>>2]](r),g(r)}r=e;break e}y0(),P()}_2(),P()}r&&(i[r+4>>2]=i[r+4>>2]+1);f:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break f;V[i[i[e>>2]+8>>2]](e),g(e)}if(f=i[p+4>>2],i[p+4>>2]=f-1,f||(V[i[i[p>>2]+8>>2]](p),g(p)),e=r,f=A,Z=Z- -64|0,(C|0)==(Z|0))break}}i[t+4>>2]=r,i[t>>2]=A}e:{if(!r||(f=i[r+4>>2],i[r+4>>2]=f-1,f))break e;V[i[i[r>>2]+8>>2]](r),g(r)}B=u+48|0}if(f=i[h+12>>2],f){if(e=i[h+16>>2],r=f,(e|0)!=(r|0)){for(;;){r=i[e-60>>2];r:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(e=e+-64|0,(f|0)==(e|0))break}r=i[h+12>>2]}i[h+16>>2]=f,G(r)}j6(h+72|0,i[h+76>>2])}B=h+112|0}function fk(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0;if(l[e|0]=0,r=i[f+3208>>2],t=i[f+3212>>2],(r|0)==(t|0))return 0;i:{r:{W=i[r>>2],A=i[W+428>>2],k=i[W+424>>2];e:{A:{if((A|0)==(k|0))break A;for(A=A-k>>2,A=A>>>0<=1?1:A;;){if(n=i[k+(I<<2)>>2],i[n+40>>2]){if(I=I+1|0,(A|0)!=(I|0))continue;break A}break}if(s[n+36|0]==1&&Ut(f+2140|0),l[e|0]=1,t=0,o=i[n+4>>2],A=i[o+1352>>2],(A|0)!=i[o+1356>>2])for(k=f+2140|0;r=M9(k,i[(t<<2)+A>>2]),(r|0)>=0&&(i[i[i[f+2148>>2]+(r<<2)>>2]+100>>2]=0),t=t+1|0,A=i[o+1352>>2],t>>>0>2]-A>>2>>>0;);w=i[W>>2],r=i[w+132>>2],i[n+40>>2]=1,u=s[r+46|0],Z=s[r+45|0],k=i[w+112>>2],o=i[k+1884>>2];f:{if(u|(Z|(o|0)<=0))break f;A=i[k+168>>2];k:{if((A|0)>0){for(r=k+88|0,t=0;;){if(i[r+(t<<2)>>2]==1e3)break f;if(t=t+1|0,(A|0)==(t|0))break}if((A|0)>19)break k}i[k+168>>2]=A+1,i[(k+(A<<2)|0)+88>>2]=1e3}if(r=i[k+84>>2],(r|0)==20){i[k+80>>2]=1001;break f}i[k+84>>2]=r+1,i[(k+4|0)+(r<<2)>>2]=1e3}A=i[W+424>>2],t=i[W+428>>2];f:{if((A|0)==(t|0)|(n|0)!=i[A>>2]||(k=i[i[n+4>>2]+24>>2],(k|0)<=0))break f;for(t=0;r=i[w+320>>2]+m(t,76)|0,i[r>>2]<=0&&(i[r>>2]=1),t=t+1|0,(k|0)!=(t|0););A=i[W+424>>2],t=i[W+428>>2]}k=t-A>>2;f:{if(k>>>0<2)break f;for(t=1;;){if(r=(t<<2)+A|0,(n|0)!=i[r>>2]){if(t=t+1|0,(k|0)!=(t|0))continue;break f}break}if(w=i[r-4>>2],!w|i[w+40>>2]!=2||(k=k-1|0,!k))break f;for(t=0;;){if(r=(t<<2)+A|0,(w|0)!=i[r>>2]){if(t=t+1|0,(k|0)!=(t|0))continue;break f}break}if(A=i[r+4>>2],!A||(t=i[i[w+4>>2]+24>>2],(t|0)>=i[i[A+4>>2]+24>>2]))break f;for(;;){if(r=i[W>>2],i[r+144>>2]<=(t|0))break f;if(r=i[r+320>>2]+m(t,76)|0,i[r>>2]<=0&&(i[r>>2]=1),t=t+1|0,!((t|0)>2]+24>>2]))break}}t=0;f:{k:{n:{if(!(u|Z&&(o|0)>0)){if(o=0,u=B-18608|0,B=u,I=i[n+4>>2],A=i[I+1352>>2],(A|0)!=i[I+1356>>2]){for(k=f+2140|0;r=M9(k,i[(o<<2)+A>>2]),(r|0)>=0&&(i[i[i[f+2148>>2]+(r<<2)>>2]+100>>2]=0),o=o+1|0,A=i[I+1352>>2],o>>>0>2]-A>>2>>>0;);I=i[n+4>>2]}if(o=6,r=i[i[W>>2]+132>>2],k0[I+24>>2]>2]-i[r+8448>>2]>>2>>>0){Z=u+18572|0,i[Z>>2]=0,i[Z+4>>2]=0,i[u+18516>>2]=0,r=u+18508|0,i[r>>2]=0,i[r+4>>2]=0,i[u+18500>>2]=0,i[u+18504>>2]=0,r=(u+38&-16)+16|0,i[u+2104>>2]=r,B0(r,0,2048),r=i[n+4>>2],i[u+18592>>2]=r,A=i[W>>2],i[u+18600>>2]=n,i[u+18596>>2]=W,i[u+18584>>2]=f,i[u+18588>>2]=A,r=i[i[i[A+132>>2]+8448>>2]+(i[r+24>>2]<<2)>>2],i[u+18604>>2]=0,i[u+4>>2]=r,m6(u),r=i[n+12>>2];t:{if((r|0)<=0){o=17;break t}S6(u+18548|0,i[n+8>>2],r);o:{if(!s[i[i[W>>2]+132>>2]+45|0]|!s[i[n+4>>2]+12|0])break o;if(k=i[i[i[f+2216>>2]+124>>2]+16900>>2]-1|0,o=i[W+472>>2],r=i[W+468>>2],A=o-r>>3,k>>>0>A>>>0){Un(W+468|0,k-A|0);break o}if(A>>>0<=k>>>0)break o;if(r=r+(k<<3)|0,(r|0)!=(o|0))for(;o=C8(o-8|0),(r|0)!=(o|0););i[W+472>>2]=r}i[n+120>>2]=1,o=0,I=0,k=i[u+18588>>2],A=i[k+124>>2],h=i[A+16908>>2],r=i[u+4>>2],(h|0)>(r|0)&&(h=i[i[i[k+132>>2]+8460>>2]+(r<<2)>>2]),A=i[A+16892>>2],i[u>>2]=h,r=(h|0)/(A|0)|0,i[u+12>>2]=r,i[u+8>>2]=h-m(r,A),r=i[u+18592>>2],w=i[k+132>>2],k=18;o:{u:{l:{if(!JA(u)||(Y6(u+18548|0),k=0,!(mr(u,0,!s[r+20|0])&-3)))break l;A=u+18572|0,h=1;s:{if(s[w+46|0]){if(o=i[u+18592>>2],I=i[o+804>>2],I>>>0>2)break u;k=0;break s}k=1}for(;;){if(!k){k6(A,I,i[o+800>>2]),l[u+18580|0]=0,l[u+18581|0]=0,l[u+18582|0]=0,l[u+18583|0]=0,k=1;continue}for(;;){r=i[u+18592>>2],k=i[r+784>>2],o=i[r+788>>2]-k>>2,r=h-1|0;s:{if(o>>>0>r>>>0&&i[k+(r<<2)>>2]==((i[u+18552>>2]-i[u+18548>>2]|0)-2|0))break s;v2(i[u+18584>>2]+4|0,1003,1)}if(k=0,!(mr(u,0,0)&-3))break l;if(h=h+1|0,!!s[w+46|0])break}if(o=i[u+18592>>2],I=i[o+804>>2],!(I>>>0<3))break}break u}r=k;break o}C0(16898,14036,1520,4043),P()}o=r,i[n+44>>2]<=0&&(i[n+44>>2]=1)}C8(Z)}if(B=u+18608|0,A=o,i[n+40>>2]=2,o=i[W+424>>2],k=(i[W+428>>2]-o>>2)-1|0,!k)break n;for(;;){if(r=o+(t<<2)|0,(n|0)!=i[r>>2]){if(t=t+1|0,(k|0)!=(t|0))continue;break n}break}if(k=i[r+4>>2],!k||(t=i[i[n+4>>2]+24>>2],(t|0)>=i[i[k+4>>2]+24>>2]))break n;for(;;){if(r=i[W>>2],i[r+144>>2]<=(t|0))break n;if(r=i[r+320>>2]+m(t,76)|0,i[r>>2]<=0&&(i[r>>2]=1),t=t+1|0,!((t|0)>2]+24>>2]))break}break n}if(Z&&(A=1006,u))break n;if(Z){t:{if(E=i[W>>2],i[E+332>>2]==(0-i[E+328>>2]|0)){u=i[n+4>>2],C=i[u+776>>2],h=i[E+132>>2],r=i[E+124>>2],Z=i[r+16892>>2];o:{if(!s[u+12|0])break o;if(o=i[r+16900>>2]-1|0,r=i[W+472>>2],A=i[W+468>>2],k=r-A>>3,o>>>0>k>>>0){Un(W+468|0,o-k|0);break o}if(k>>>0<=o>>>0)break o;if(A=A+(o<<3)|0,(A|0)!=(r|0))for(;r=C8(r-8|0),(A|0)!=(r|0););i[W+472>>2]=A}if(i[n+132>>2])break r;w=C+1|0,p=U((n0=-1,h0=q0(w,0,18608,0)|4,j=w0,j?n0:h0)),i[p>>2]=w,A=p+4|0;o:{if(!w){i[n+136>>2]=w,i[n+132>>2]=A;break o}for(o=A+m(w,18608)|0,r=A;k=r+18572|0,i[k>>2]=0,i[k+4>>2]=0,i[r+18516>>2]=0,k=r+18508|0,i[k>>2]=0,i[k+4>>2]=0,i[r+18500>>2]=0,i[r+18504>>2]=0,i[r+18584>>2]=0,i[r+18588>>2]=0,k=r+18592|0,i[k>>2]=0,i[k+4>>2]=0,i[r+18600>>2]=0,k=(r+38&-15)+16|0,i[r+2104>>2]=k,B0(k,0,2048),r=r+18608|0,(o|0)!=(r|0););if(i[n+136>>2]=w,i[n+132>>2]=A,(C|0)<0)break o;if(k=i[u+24>>2],y=(k|0)/(Z|0)|0,C){if(k-m(Z,y)|0)break o;if((C|0)==2147483647)break i}if(i[p+18596>>2]=u,r=i[E+112>>2],i[p+18604>>2]=n,i[p+18600>>2]=W,i[p+18592>>2]=E,i[p+18588>>2]=r,i[p+8>>2]=i[i[h+8448>>2]+(k<<2)>>2],m6(A),w=n+12|0,r=w,C&&(r=i[u+784>>2]),r=i[r>>2],(r|0)>i[w>>2]||(o=1,(r|0)<=0)||(S6(p+18552|0,i[n+8>>2],r),i[E+324>>2]=i[E+324>>2]+1,i[E+340>>2]=i[E+340>>2]+1,i[n+120>>2]=i[n+120>>2]+1,u7(f,A,1,y),!C))break o;for(;;){if(i[n+136>>2]<=(o|0))break i;if(p=i[n+132>>2]+m(o,18608)|0,i[p+18592>>2]=u,r=i[E+112>>2],i[p+18600>>2]=n,i[p+18596>>2]=W,i[p+18588>>2]=E,i[p+18584>>2]=r,y=y+1|0,i[p+4>>2]=i[i[h+8448>>2]+(m(Z,y)<<2)>>2],m6(p),A=o<<2,r=i[u+784>>2],k=i[(A+r|0)-4>>2],(k|0)<0||(A=r+A|0,r=(o|0)!=(C|0),A=i[(r?A:w)>>2],(A|0)>i[w>>2]|(A|0)<=(k|0)))break o;if(S6(p+18548|0,k+i[n+8>>2]|0,A-k|0),i[E+324>>2]=i[E+324>>2]+1,i[E+340>>2]=i[E+340>>2]+1,i[n+120>>2]=i[n+120>>2]+1,u7(f,p,0,y),o=o+1|0,!r)break}}if(We(E),A=i[W+460>>2],o=i[W+456>>2],(A|0)!=(o|0))for(r=0;k=i[(r<<2)+o>>2],k&&(V[i[i[k>>2]+4>>2]](k),o=i[W+456>>2],A=i[W+460>>2]),r=r+1|0,r>>>0>2>>>0;);i[W+460>>2]=o;break t}C0(17327,13894,1003,14969),P()}if(i[n+40>>2]=2,A=0,o=i[W+424>>2],k=(i[W+428>>2]-o>>2)-1|0,!k)break n;for(;;){if(r=o+(t<<2)|0,(n|0)!=i[r>>2]){if(t=t+1|0,(k|0)!=(t|0))continue;break n}break}if(k=i[r+4>>2],!k||(t=i[i[n+4>>2]+24>>2],(t|0)>=i[i[k+4>>2]+24>>2]))break n;for(;;){if(r=i[W>>2],i[r+144>>2]<=(t|0))break n;if(r=i[r+320>>2]+m(t,76)|0,i[r>>2]<=0&&(i[r>>2]=1),t=t+1|0,!((t|0)>2]+24>>2]))break}break n}if(!u)break k;t:{if(z=i[W>>2],i[z+332>>2]==(0-i[z+328>>2]|0)){if(i[n+132>>2])break r;_=i[z+132>>2],R=i[i[z+124>>2]+16892>>2],E=i[n+4>>2],v=i[E+776>>2],w=v+1|0,Z=U((n0=-1,h0=q0(w,0,18608,0)|4,j=w0,j?n0:h0)),i[Z>>2]=w,A=Z+4|0;o:{if(!w){i[n+136>>2]=w,i[n+132>>2]=A;break o}for(o=A+m(w,18608)|0,r=A;k=r+18572|0,i[k>>2]=0,i[k+4>>2]=0,i[r+18516>>2]=0,k=r+18508|0,i[k>>2]=0,i[k+4>>2]=0,i[r+18500>>2]=0,i[r+18504>>2]=0,i[r+18584>>2]=0,i[r+18588>>2]=0,k=r+18592|0,i[k>>2]=0,i[k+4>>2]=0,i[r+18600>>2]=0,k=(r+38&-15)+16|0,i[r+2104>>2]=k,B0(k,0,2048),r=r+18608|0,(o|0)!=(r|0););if(i[n+136>>2]=w,i[n+132>>2]=A,(v|0)<0)break o;if((v|0)==2147483647)break i;if(w=i[E+24>>2],k=w<<2,p=i[k+i[_+8484>>2]>>2],i[Z+18596>>2]=E,r=i[z+112>>2],i[Z+18604>>2]=n,i[Z+18600>>2]=W,i[Z+18592>>2]=z,i[Z+18588>>2]=r,i[Z+8>>2]=i[k+i[_+8448>>2]>>2],m6(A),C=n+12|0,r=C,v&&(r=i[E+784>>2]),r=i[r>>2],(r|0)>i[C>>2]){h=17;break o}if(o=1,(r|0)<=0){h=17;break o}if(S6(Z+18552|0,i[n+8>>2],r),i[z+324>>2]=i[z+324>>2]+1,i[z+340>>2]=i[z+340>>2]+1,i[n+120>>2]=i[n+120>>2]+1,r=(w|0)/(R|0)|0,t7(f,A,1,w-m(r,R)|0,r),!v)break o;for(Z=_+8404|0,w=_+8360|0;;){if(p=p+1|0,A=i[_+48>>2],(p|0)>=(m(A,i[_+52>>2])|0)){h=1007;break o}if(i[n+136>>2]<=(o|0))break i;if(r=(p|0)/(A|0)|0,k=i[Z+(r<<2)>>2],A=i[w+(p-m(r,A)<<2)>>2],y=i[n+132>>2]+m(o,18608)|0,i[y+18592>>2]=E,r=i[z+112>>2],i[y+18600>>2]=n,i[y+18596>>2]=W,i[y+18588>>2]=z,i[y+18584>>2]=r,k=A+m(k,R)|0,i[y+4>>2]=i[i[_+8448>>2]+(k<<2)>>2],m6(y),A=o<<2,r=i[E+784>>2],u=i[(A+r|0)-4>>2],(u|0)<0){h=17;break o}if(r=i[((o|0)!=(v|0)?r+A|0:C)>>2],(r|0)>i[C>>2]){h=17;break o}if((r|0)<=(u|0)){h=17;break o}if(S6(y+18548|0,u+i[n+8>>2]|0,r-u|0),i[z+324>>2]=i[z+324>>2]+1,i[z+340>>2]=i[z+340>>2]+1,i[n+120>>2]=i[n+120>>2]+1,r=(k|0)/(R|0)|0,t7(f,y,0,k-m(r,R)|0,r),r=(o|0)!=(v|0),o=o+1|0,!r)break}}if(We(z),A=i[W+460>>2],o=i[W+456>>2],(A|0)!=(o|0))for(r=0;k=i[(r<<2)+o>>2],k&&(V[i[i[k>>2]+4>>2]](k),o=i[W+456>>2],A=i[W+460>>2]),r=r+1|0,r>>>0>2>>>0;);i[W+460>>2]=o,A=h;break t}C0(17327,13894,1117,4295),P()}if(i[n+40>>2]=2,o=i[W+424>>2],k=(i[W+428>>2]-o>>2)-1|0,!k)break n;for(;;){if(r=o+(t<<2)|0,(n|0)!=i[r>>2]){if(t=t+1|0,(k|0)!=(t|0))continue;break n}break}if(k=i[r+4>>2],!k||(t=i[i[n+4>>2]+24>>2],(t|0)>=i[i[k+4>>2]+24>>2]))break n;for(;;){if(r=i[W>>2],i[r+144>>2]<=(t|0))break n;if(r=i[r+320>>2]+m(t,76)|0,i[r>>2]<=0&&(i[r>>2]=1),t=t+1|0,!((t|0)>2]+24>>2]))break}}r=A;break f}C0(9349,13894,985,7749),P()}if(r)break e;r=i[f+3208>>2],t=i[f+3212>>2]}A:{if(t-r>>>0>=5&&(h=i[r>>2],A=i[h+428>>2],i[i[A-4>>2]+40>>2]|(A|0)==i[h+424>>2]))break A;if((r|0)==(t|0))return 0;if(h=i[r>>2],A=i[h+428>>2],(A|0)!=i[h+424>>2]&&(r=0,!i[i[A-4>>2]+40>>2])||(r=0,i[f+580>>2]!=((i[f+556>>2]?-1:0)|0)))break e;if(s[f+548|0])break A;if(s[f+549|0]!=1)break e}if(l[e|0]=1,r=i[h>>2],i[r+144>>2]>0)for(I=0;e=i[r+320>>2]+m(I,76)|0,i[e>>2]<=0&&(i[e>>2]=1),I=I+1|0,(I|0)>2];);_=i[h>>2],e=i[_+112>>2],A=s[e+532|0];A:{if(i[i[i[f+2216>>2]+112>>2]+1884>>2]){if(r=1,!(A&1)){A=0,Z=i[h>>2],r=i[Z+112>>2],e=i[i[Z+124>>2]+16900>>2]<<1,i[Z+324>>2]=e+i[Z+324>>2],i[Z+340>>2]=e+i[Z+340>>2];f:{if(i[i[Z+124>>2]+16900>>2]<=0)break f;o=r+1392|0;k:{n:{for(;;){w=U(20),l[w+16|0]=1,i[w+12>>2]=A,i[w+8>>2]=Z,i[w>>2]=42876,i[w+4>>2]=0,p=i[h+460>>2],e=i[h+464>>2];t:{if(p>>>0>>0){i[p>>2]=w,k=p+4|0;break t}if(u=i[h+456>>2],k=p-u>>2,n=k+1|0,n>>>0>=1073741824)break n;if(r=e-u|0,e=r>>1,r=r>>>0>=2147483644?1073741823:e>>>0>n>>>0?e:n,r){if(r>>>0>=1073741824)break k;e=U(r<<2)}else e=0;if(n=e+(k<<2)|0,i[n>>2]=w,k=n+4|0,(u|0)!=(p|0)){for(;n=n-4|0,p=p-4|0,i[n>>2]=i[p>>2],(u|0)!=(p|0););u=i[h+456>>2]}if(i[h+464>>2]=e+(r<<2),i[h+460>>2]=k,i[h+456>>2]=n,!u)break t;G(u)}if(i[h+460>>2]=k,E6(o,w),A=A+1|0,e=i[i[Z+124>>2]+16900>>2],!((A|0)<(e|0)))break}if((e|0)<=0)break f;for(A=0;;){w=U(20),l[w+16|0]=0,i[w+12>>2]=A,i[w+8>>2]=Z,i[w>>2]=42876,i[w+4>>2]=0,p=i[h+460>>2],e=i[h+464>>2];t:{if(p>>>0>=e>>>0){if(u=i[h+456>>2],k=p-u>>2,n=k+1|0,n>>>0>1073741823)break n;if(r=e-u|0,e=r>>1,r=r>>>0>=2147483644?1073741823:e>>>0>n>>>0?e:n,r){if(r>>>0>1073741823)break k;e=U(r<<2)}else e=0;if(n=e+(k<<2)|0,i[n>>2]=w,k=n+4|0,(u|0)!=(p|0)){for(;n=n-4|0,p=p-4|0,i[n>>2]=i[p>>2],(u|0)!=(p|0););u=i[h+456>>2]}if(i[h+464>>2]=e+(r<<2),i[h+460>>2]=k,i[h+456>>2]=n,!u)break t;G(u);break t}i[p>>2]=w,k=p+4|0}if(i[h+460>>2]=k,E6(o,w),A=A+1|0,!((A|0)>2]+16900>>2]))break}break f}y0(),P()}_2(),P()}r=3,e=i[_+112>>2]}if(!s[e+533|0])f:{A=r,R=B-16|0,B=R;k:{n:{v=i[h>>2],E=i[v+124>>2];t:{if(!s[E+8799|0])break t;if(p=i[v+20>>2],C=i[v+28>>2],u=i[v+24>>2],e=i[v+112>>2],i[R+8>>2]=E,k=i[v+128>>2],i[R+12>>2]=k,r=e,k&&(i[k+4>>2]=i[k+4>>2]+1,r=i[v+112>>2]),w=i[v+288>>2],o=i[v+280>>2],n=i[v+284>>2],k=i[R+12>>2],i[R>>2]=i[R+8>>2],i[R+4>>2]=k,Z=h+8|0,Fk(Z,u,C,p,R,0,r,o,n,w,1)){v2(i[v+112>>2]+4|0,1024,0);break t}if(w=i[E+16900>>2],r=w,i[v+324>>2]=r+i[v+324>>2],i[v+340>>2]=r+i[v+340>>2],(r|0)>0)for(o=e+1392|0,p=0;;){C=U(28),i[C+20>>2]=Z,i[C+16>>2]=v,i[C>>2]=45048,i[C+4>>2]=0,i[C+12>>2]=v,i[C+24>>2]=A,i[C+8>>2]=p,I=i[h+460>>2],e=i[h+464>>2];o:{if(I>>>0>>0){i[I>>2]=C,y=I+4|0;break o}if(r=i[h+456>>2],n=I-r>>2,u=n+1|0,u>>>0>=1073741824)break n;if(k=e-r|0,e=k>>1,u=k>>>0>=2147483644?1073741823:e>>>0>u>>>0?e:u,u){if(u>>>0>=1073741824)break k;e=U(u<<2)}else e=0;if(k=e+(n<<2)|0,i[k>>2]=C,y=k+4|0,(r|0)!=(I|0)){for(;k=k-4|0,I=I-4|0,i[k>>2]=i[I>>2],(r|0)!=(I|0););r=i[h+456>>2]}if(i[h+464>>2]=e+(u<<2),i[h+460>>2]=y,i[h+456>>2]=k,!r)break o;G(r)}if(i[h+460>>2]=y,E6(o,C),p=p+1|0,(w|0)==(p|0))break}We(v),e=i[v+4>>2],i[v+4>>2]=i[h+12>>2],i[h+12>>2]=e,e=i[v+64>>2],i[v+64>>2]=i[h+72>>2],i[h+72>>2]=e,e=i[v+292>>2],i[v+292>>2]=i[h+300>>2],i[h+300>>2]=e,e=i[v+8>>2],i[v+8>>2]=i[h+16>>2],i[h+16>>2]=e,e=i[v+68>>2],i[v+68>>2]=i[h+76>>2],i[h+76>>2]=e,e=i[v+296>>2],i[v+296>>2]=i[h+304>>2],i[h+304>>2]=e,e=i[v+12>>2],i[v+12>>2]=i[h+20>>2],i[h+20>>2]=e,e=i[v+72>>2],i[v+72>>2]=i[h+80>>2],i[h+80>>2]=e,e=i[v+300>>2],i[v+300>>2]=i[h+308>>2],i[h+308>>2]=e,e=i[v+40>>2],i[v+40>>2]=i[h+48>>2],i[h+48>>2]=e,e=i[v+44>>2],i[v+44>>2]=i[h+52>>2],i[h+52>>2]=e,A=i[v+304>>2],r=i[v+308>>2],e=i[h+316>>2],i[v+304>>2]=i[h+312>>2],i[v+308>>2]=e,i[h+312>>2]=A,i[h+316>>2]=r}B=R+16|0;break f}y0(),P()}_2(),P()}We(_);break A}if(!(A&1)){r=0,A=0;f:{if(i[i[_+124>>2]+16900>>2]<=0)break f;for(;A=Jk(_,r)|A,r=r+1|0,(r|0)>2]+16900>>2];);if(!(A&1))break f;GA(_,1,0,i[_+276>>2],i[_+272>>2]),r=i[_+272>>2],e=i[_+276>>2];k:{if(i[i[_+124>>2]+16832>>2]>=9){ZA(_,1,0,e,r);break k}pA(_,1,0,e,r)}e=i[_+124>>2];k:{if(!i[e+16848>>2])break k;if(A=i[_+272>>2],r=i[_+276>>2],i[e+16840>>2]>=9){WA(_,1,0,r,A);break k}XA(_,1,0,r,A)}GA(_,0,0,i[_+276>>2],i[_+272>>2]),r=i[_+272>>2],e=i[_+276>>2];k:{if(i[i[_+124>>2]+16832>>2]>=9){ZA(_,0,0,e,r);break k}pA(_,0,0,e,r)}if(e=i[_+124>>2],!i[e+16848>>2])break f;if(A=i[_+272>>2],r=i[_+276>>2],i[e+16840>>2]>=9){WA(_,0,0,r,A);break f}XA(_,0,0,r,A)}e=i[_+112>>2]}if(s[e+533|0])break A;if(v=i[_+124>>2],s[v+8799|0]){for(r=m(m(i[_+28>>2],i[_+40>>2]),(i[v+16832>>2]+7|0)/8|0),e=m(m(i[_+36>>2],i[_+44>>2]),(i[v+16840>>2]+7|0)/8|0),u=U((e|0)<(r|0)?r:e),Z=i[v+16848>>2]?3:1,w=_+4|0,r=i[v+16900>>2],t=0;;){f:{o=w+(t<<2)|0,n=_+(t?44:40)|0,E=i[n>>2],R=l0(u,i[o>>2],m(m(E,i[_+(t?36:28)>>2]),(i[i[_+124>>2]+(t?16840:16832)>>2]+7|0)/8|0));k:{if((r|0)<=0||(e=0,k=i[v+16892>>2],(k|0)<=0))break k;for(;;){n:{if((k|0)<=0)break n;if(r=0,!t)for(;;){if(A=Q[((i[_+140>>2]+m(m(i[_+152>>2],e),24)|0)+m(r,24)|0)+2>>1],k=i[_+52>>2],A>>>0>=i[_+56>>2]-k>>2>>>0||(A=i[k+(A<<2)>>2],!A))break f;t:{if(!s[A+333|0])break t;if(C=1<>2],k=i[_+40>>2],A=i[_+4>>2],i[i[_+124>>2]+16832>>2]<=8){o6(_,r,e,0,C,C,R,E,A,k);break t}t6(_,r,e,0,C,C,R,E,A,k)}if(r=r+1|0,k=i[v+16892>>2],!((r|0)<(k|0)))break n}for(;;){if(A=Q[((i[_+140>>2]+m(m(i[_+152>>2],e),24)|0)+m(r,24)|0)+2>>1],k=i[_+52>>2],A>>>0>=i[_+56>>2]-k>>2>>>0||(A=i[k+(A<<2)>>2],!A))break f;t:{if(!s[A+334|0])break t;if(A=1<>2],p=(A|0)/i[v+16856>>2]|0,C=(A|0)/i[v+16852>>2]|0,k=i[n>>2],A=i[o>>2],i[i[_+124>>2]+16840>>2]>=9){t6(_,r,e,t,C,p,R,E,A,k);break t}o6(_,r,e,t,C,p,R,E,A,k)}if(r=r+1|0,k=i[v+16892>>2],!((r|0)<(k|0)))break}}if(e=e+1|0,r=i[v+16900>>2],!((e|0)<(r|0)))break}}if(t=t+1|0,(Z|0)!=(t|0))continue}break}G(R)}}e=i[h+436>>2];A:{if((e|0)==i[h+440>>2]){r=0;break A}for(I=0;;){r=0,k=0,J=B-176|0,B=J,d=m(I,80)+e|0,a=i[h>>2];f:{if(i[d>>2]!=132|s[i[a+112>>2]+512|0]!=1|!s[a+104|0])break f;for(_=d+12|0,v=d+60|0,R=d+68|0,E=a+4|0,p=i[i[a+124>>2]+476>>2];;){S=i[(k?44:40)+a>>2],H=i[(k?36:28)+a>>2],D=i[(k?32:24)+a>>2],u=k<<2,q=i[u+E>>2];k:{n:{t:{o:switch(i[d+8>>2]){case 0:e=i[i[a+124>>2]+(k?16840:16832)>>2],i[J+40>>2]=-1732584194,i[J+44>>2]=271733878,i[J+32>>2]=1732584193,i[J+36>>2]=-271733879,i[J+24>>2]=0,i[J+28>>2]=0;u:{if((H|0)>0){if((e|0)>=9){C=D<<1;l:{if((D|0)<=0){for(e=0;e||(e=U(C)),w3(J+24|0,e,C),r=r+1|0,(H|0)!=(r|0););break l}for(w=D&2147483646,o=D&1,y=0,e=0;;){if(e||(e=U(C)),u=(m(y,S)<<1)+q|0,r=0,t=0,(D|0)!=1)for(;Z=r<<1,n=Z+e|0,A=u+Z|0,l[n|0]=s[A|0],l[n+1|0]=s[A+1|0],A=Z|2,n=A+e|0,A=A+u|0,l[n|0]=s[A|0],l[n+1|0]=s[A+1|0],r=r+2|0,t=t+2|0,(w|0)!=(t|0););if(o&&(r=r<<1,A=r+e|0,r=r+u|0,l[A|0]=s[r|0],l[A+1|0]=s[r+1|0]),w3(J+24|0,e,C),y=y+1|0,(H|0)==(y|0))break}}w7(J,J+24|0),G(e);break u}for(;w3(J+24|0,m(r,S)+q|0,D),r=r+1|0,(H|0)!=(r|0););}w7(J,J+24|0)}e=_+(k<<4)|0;u:{if(s[J|0]!=s[e|0]|s[J+1|0]!=s[e+1|0]|(s[J+2|0]!=s[e+2|0]|s[J+3|0]!=s[e+3|0])||s[J+4|0]!=s[e+4|0]|s[J+5|0]!=s[e+5|0]|(s[J+6|0]!=s[e+6|0]|s[J+7|0]!=s[e+7|0])||s[J+8|0]!=s[e+8|0]|s[J+9|0]!=s[e+9|0]|(s[J+10|0]!=s[e+10|0]|s[J+11|0]!=s[e+11|0])||s[J+12|0]!=s[e+12|0]|s[J+13|0]!=s[e+13|0]|s[J+14|0]!=s[e+14|0])break u;if(s[J+15|0]==s[e+15|0])break k}r=5;break f;case 1:if(r=7439,(H|0)<=0)break n;if(i[i[a+124>>2]+(k?16840:16832)>>2]<9)break t;if(A0=D<<1,(D|0)<=0){for(r=0,A=0;A||(A=U(A0)),r=r+1|0,(H|0)!=(r|0););r=7439,G(A);break n}for(C=D&2147483646,u=D&1,W=(A0|0)<=1?1:A0,Z=W&2147483646,w=W&1,f0=0,A=0;;){if(A||(A=U(A0)),t=(m(S,f0)<<1)+q|0,e=0,z=0,(D|0)!=1)for(;y=e<<1,o=y+A|0,n=t+y|0,l[o|0]=s[n|0],l[o+1|0]=s[n+1|0],n=y|2,o=n+A|0,n=n+t|0,l[o|0]=s[n|0],l[o+1|0]=s[n+1|0],e=e+2|0,z=z+2|0,(C|0)!=(z|0););if(u&&(e=e<<1,n=e+A|0,e=e+t|0,l[n|0]=s[e|0],l[n+1|0]=s[e+1|0]),e=0,t=0,(W|0)!=1)for(;y=r<<8,n=e+A|0,r=s[n|0]^(r&65280)>>>8,o=r>>>4^r,r=(y|o)^o<<5,y=r<<8,r=s[n+1|0]^((r^o<<12)&65280)>>>8,r=r>>>4^r,r=(y|r)^r<<5^r<<12,e=e+2|0,t=t+2|0,(Z|0)!=(t|0););if(w&&(e=s[e+A|0]^(r&65280)>>>8,e=e>>>4^e,r=(e|r<<8)^e<<5^e<<12),f0=f0+1|0,(f0|0)==(H|0))break}G(A);break n;case 2:break o;default:break k}e=(D|0)>0&(H|0)>0;o:{if(i[i[a+124>>2]+(k?16840:16832)>>2]>=9){if(!e){A=0;break o}for(Z=D&2147483646,w=D&1,A=0,e=0;;){if(y=m(e,S)+q|0,r=0,t=0,(D|0)!=1)for(;o=(e^r)>>>8^e,n=r|1,C=(o^n)&255,W=A,A=(r^o)&255,A=(C+((W+A|0)+(A^s[r+y|0])|0)|0)+(C^s[n+y|0])|0,r=r+2|0,t=t+2|0,(Z|0)!=(t|0););if(w&&(o=A,A=((e^r)>>>8^e^r)&255,A=(o+A|0)+(A^s[r+y|0])|0),e=e+1|0,(H|0)==(e|0))break}break o}if(!e){A=0;break o}for(Z=D&2147483646,w=D&1,A=0,e=0;;){if(C=m(e,S)+q|0,r=0,t=0,(D|0)!=1)for(;o=(e^r)>>>8^e,n=r|1,A=((o^n)&255^s[n+C|0])+((s[r+C|0]^(r^o)&255)+A|0)|0,r=r+2|0,t=t+2|0,(Z|0)!=(t|0););if(w&&(A=(s[r+C|0]^((e^r)>>>8^e^r)&255)+A|0),e=e+1|0,(H|0)==(e|0))break}}if(i[u+R>>2]==(A|0))break k;r=5;break f}if((D|0)<=0)break n;for(w=D&2147483646,o=D&1,y=0;;){if(Z=m(y,S)+q|0,A=0,t=0,(D|0)!=1)for(;C=r<<8,n=A+Z|0,e=s[n|0]^(r&65280)>>>8,r=e>>>4^e,e=(C|r)^r<<5,C=e<<8,e=s[n+1|0]^((e^r<<12)&65280)>>>8,e=e>>>4^e,r=(C|e)^e<<5^e<<12,A=A+2|0,t=t+2|0,(w|0)!=(t|0););if(o&&(e=s[A+Z|0]^(r&65280)>>>8,e=e>>>4^e,r=(e|r<<8)^e<<5^e<<12),y=y+1|0,(H|0)==(y|0))break}}if(Q[v+(k<<1)>>1]==(r&65535))break k;r=5;break f}if(r=0,!p)break f;if(e=k>>>0<2,k=k+1|0,!e)break}}if(B=J+176|0,r)break A;if(I=I+1|0,e=i[h+436>>2],!(I>>>0<(i[h+440>>2]-e|0)/80>>>0))break}r=0}if(w=i[h>>2],w){if(!(s[w+104|0]!=1|(s[f+514|0]?s[w+312|0]:0)))A:{if(Z=f+2140|0,t=i[Z+24>>2],A=i[Z+28>>2],t>>>0>>0){i[t>>2]=w,i[Z+24>>2]=t+4;break A}f:{if(e=i[Z+20>>2],n=t-e>>2,o=n+1|0,o>>>0<1073741824){if(k=A-e|0,A=k>>1,o=k>>>0>=2147483644?1073741823:A>>>0>o>>>0?A:o,o){if(o>>>0>=1073741824)break f;A=U(o<<2)}else A=0;if(I=A+(n<<2)|0,i[I>>2]=w,k=I+4|0,(e|0)!=(t|0)){for(;I=I-4|0,t=t-4|0,i[I>>2]=i[t>>2],(e|0)!=(t|0););e=i[Z+20>>2]}i[Z+28>>2]=A+(o<<2),i[Z+24>>2]=k,i[Z+20>>2]=I,e&&G(e),i[Z+24>>2]=k;break A}y0(),P()}_2(),P()}e=i[w+116>>2],e?e=i[(e+m(i[e+8>>2],12)|0)+480>>2]:e=0,(e|0)>2]-i[f+2160>>2]>>2&&On(f+2140|0)}if(G(Hn(h)),h=i[f+3212>>2],e=i[f+3208>>2],h-e>>>0>=5)for(I=1;e=(I<<2)+e|0,i[e-4>>2]=i[e>>2],I=I+1|0,h=i[f+3212>>2],e=i[f+3208>>2],I>>>0>2>>>0;);i[f+3212>>2]=h-4}return r}C0(15010,13894,172,3561),P()}C0(3586,8442,174,2570),P()}function kk(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0;h=B-256|0,B=h,y=Ri(i[e+48>>2],16944),o=U(360),i[o+16>>2]=0,i[o+20>>2]=0,i[o>>2]=72656,i[o+4>>2]=0,i[o+8>>2]=0,l[o+152|0]=0,i[o+36>>2]=y,i[o+32>>2]=e,i[o+28>>2]=34648,i[o+40>>2]=0,i[o+44>>2]=0,i[o+52>>2]=0,i[o+56>>2]=0,i[o+68>>2]=0,i[o+72>>2]=0,i[o+80>>2]=0,i[o+84>>2]=0,i[o+156>>2]=0,i[o+160>>2]=0,i[o+24>>2]=0,X[o+48>>1]=0,X[o+58>>1]=0,X[o+60>>1]=0,X[o+62>>1]=0,X[o+64>>1]=0,l[o+76|0]=0,l[o+88|0]=0,i[o+204>>2]=0,i[o+196>>2]=0,i[o+200>>2]=0,i[o+188>>2]=0,i[o+192>>2]=0,i[o+180>>2]=0,i[o+184>>2]=0,i[o+172>>2]=0,i[o+176>>2]=0,i[o+164>>2]=0,i[o+168>>2]=0,i[o+212>>2]=0,i[o+216>>2]=0,l[o+208|0]=1,l[o+217|0]=0,l[o+218|0]=0,l[o+219|0]=0,l[o+220|0]=0,l[o+221|0]=0,l[o+222|0]=0,l[o+223|0]=0,l[o+224|0]=0,i[o+232>>2]=0,i[o+236>>2]=0,i[o+240>>2]=0,i[o+244>>2]=0,i[o+248>>2]=0,i[o+252>>2]=0,i[o+256>>2]=0,i[o+260>>2]=0,i[o+264>>2]=0,i[o+268>>2]=0,l[o+272|0]=0,B0(o+280|0,0,80),i[o+296>>2]=0,i[o+300>>2]=0,l[o+292|0]=1,i[o+304>>2]=0,i[o+308>>2]=0,i[o+312>>2]=0,i[o+316>>2]=0,i[o+328>>2]=0,i[o+332>>2]=0,i[o+320>>2]=0,i[o+324>>2]=1072693248,i[o+336>>2]=0,i[o+340>>2]=0,i[o+344>>2]=0,i[o+348>>2]=0,i[o+352>>2]=0,i[o+96>>2]=0,i[o+100>>2]=0,i[o+104>>2]=0,i[o+108>>2]=0,i[o+112>>2]=0,i[o+116>>2]=0,i[o+120>>2]=0,i[o+124>>2]=0,i[o+128>>2]=0,i[o+132>>2]=0,i[o+136>>2]=0,i[o+140>>2]=0,i[o+144>>2]=0,i[o+148>>2]=0,i[t>>2]=o+16,u=i[t+4>>2],i[t+4>>2]=o;i:{if(!u||(o=i[u+4>>2],i[u+4>>2]=o-1,o))break i;V[i[i[u>>2]+8>>2]](u),g(u)}o=i[r>>2],i[h+252>>2]=i[o+32>>2],i[h+248>>2]=i[o+36>>2],$r(h+240|0,r,i[k+4>>2]),o=i[A>>2];i:{if(i[o>>2]>=2){V[i[o+108>>2]](i[A+4>>2],h+252|0,h+248|0);break i}V[i[o+96>>2]](h+252|0,h+248|0)}i:{r:{e:{if(o=i[h+252>>2],w=i[r>>2],u=i[h+248>>2],!((o|0)!=i[w+32>>2]|(u|0)!=i[w+36>>2])){if(_=i[w+44>>2],u=i[w+48>>2],u&&(i[u+4>>2]=i[u+4>>2]+1),p6(o,_,u,i[k+4>>2]))break e;u=i[h+248>>2],o=i[h+252>>2]}if(i[h+212>>2]=i[h+240>>2],w=i[h+244>>2],i[h+216>>2]=w,w&&(i[w+4>>2]=i[w+4>>2]+1),N8(h+132|0,r,o,u,h+212|0,0,k+16|0),o=i[h+132>>2],r=i[h+136>>2],i[h+132>>2]=0,i[h+136>>2]=0,i[h+236>>2]=r,i[h+232>>2]=o,r=i[h+216>>2],r&&(o=i[r+4>>2],i[r+4>>2]=o-1,o||(V[i[i[r>>2]+8>>2]](r),g(r)),o=i[h+232>>2]),o){r=i[h+236>>2];break r}if(l[h+132|0]=0,l[h+143|0]=0,r0(f,4,3003,h+132|0),l[h+143|0]>=0)break i;G(i[h+132>>2]);break i}o=i[r>>2],r=i[r+4>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),i[h+236>>2]=r,i[h+232>>2]=o}z=y4(o,0),H=F4(o,0),u=i[t>>2],i[u+28>>2]=H,i[u+24>>2]=z,W=i[e+48>>2],_=B-16|0,B=_,w=U(160),u=w,i[u+4>>2]=0,i[u+8>>2]=0,i[u>>2]=71304,p=u+16|0,u=p,i[u+8>>2]=0,i[u+12>>2]=0,u=w,i[u+32>>2]=0,i[u+36>>2]=0,i[u+40>>2]=0,i[u+44>>2]=0,i[u+48>>2]=0,i[u+16>>2]=68500,i[u+52>>2]=0,i[u+56>>2]=0,i[u+68>>2]=0,l[u+57|0]=0,l[u+58|0]=0,l[u+59|0]=0,l[u+60|0]=0,l[u+61|0]=0,l[u+62|0]=0,l[u+63|0]=0,l[u+64|0]=0,i[u+16>>2]=74936,i[u+88>>2]=0,i[u+92>>2]=0,X[u+72>>1]=259,i[u+96>>2]=0,i[u+100>>2]=0,i[u+104>>2]=0,i[u+108>>2]=0,i[u+112>>2]=0,i[u+116>>2]=0,i[u+120>>2]=0,i[u+124>>2]=0,i[u+128>>2]=0,i[u+132>>2]=0,i[u+152>>2]=0,i[u+144>>2]=0,i[u+148>>2]=0,i[u+32>>2]=1987470147,Z=i[W+44>>2],i[_+12>>2]=u,i[_+8>>2]=p,i[u+4>>2]=i[u+4>>2]+1,v=i[Z+40>>2];r:{e:{if(v>>>0>2]){i[v+4>>2]=u,i[v>>2]=p,i[u+4>>2]=i[u+4>>2]+1,v=v+8|0,i[Z+40>>2]=v,v=v-i[Z+36>>2]>>>3|0;break e}if(v=Q2(Z+36|0,_+8|0),u=i[_+12>>2],i[Z+40>>2]=v,v=v-i[Z+36>>2]>>>3|0,!u)break r}if(Z=i[u+4>>2],i[u+4>>2]=Z-1,Z)break r;V[i[i[u>>2]+8>>2]](u),g(u)}u=i[W+52>>2],X[_+6>>1]=v,l[_+4|0]=1,i[_>>2]=Q[_+4>>1]|Q[_+6>>1]<<16,c1(u,y,_),u=i[w+4>>2],i[w+4>>2]=u-1,u||(V[i[i[w>>2]+8>>2]](w),g(w)),B=_+16|0,i[h+228>>2]=0;r:{if(!r){i[h+228>>2]=0,i[h+224>>2]=o;break r}if(i[r+4>>2]=i[r+4>>2]+1,i[h+224>>2]=o,o=i[h+228>>2],i[h+228>>2]=r,!o||(r=i[o+4>>2],i[o+4>>2]=r-1,r))break r;V[i[i[o>>2]+8>>2]](o),g(o)}V[i[i[A>>2]+100>>2]](h+212|0,i[A+4>>2],h+224|0,n);r:{e:{A:{f:{k:{n:{if(r=i[h+212>>2],r){if(k=i[h+216>>2],n=i[h+220>>2],e=G2(n),e>>>0>=2147483640)break n;t:{o:{if(e>>>0>=11){t=(e|7)+1|0,A=U(t),i[h+140>>2]=t|-2147483648,i[h+132>>2]=A,i[h+136>>2]=e;break o}if(l[h+143|0]=e,A=h+132|0,!e)break t}F2(A,n,e)}if(l[e+A|0]=0,r0(f,r,k,h+132|0),l[h+143|0]>=0)break r;G(i[h+132>>2]);break r}if(i[h+208>>2]=0,i[h+204>>2]=0,V[i[i[A>>2]+104>>2]](h+132|0,i[A+4>>2],h+56|0,h+48|0,0),o=i[h+56>>2],o)for(;;){t:{o:{if(r=i[h+48>>2],(r|0)<2)break o;u:switch((s[o+1|0]>>>3|0)-14|0){case 1:X[h+132>>1]=259,i[h+188>>2]=0,i[h+192>>2]=0,i[h+180>>2]=0,i[h+184>>2]=0,i[h+172>>2]=0,i[h+176>>2]=0,i[h+164>>2]=0,i[h+168>>2]=0,i[h+156>>2]=0,i[h+160>>2]=0,i[h+148>>2]=0,i[h+152>>2]=0,a=h+112|0,E=o,p=h+132|0,w=0,o=0,v=0,Z=0,C=B-80|0,B=C,i[C+76>>2]=0,i[C+68>>2]=0,i[C+72>>2]=0;l:{s:{h:{w:{_:{v:{Z:{if(r){for(R=r;;){m:{B:{if(r=Z+2|0,R>>>0<=r>>>0||(u=Z+E|0,s[u|0]|s[u+1|0]|s[r+E|0]!=3))break B;p:{if(w>>>0>v>>>0){l[v|0]=0,Z=v+1|0;break p}if(J=v-o|0,u=J+1|0,(u|0)<0)break h;w=w-o|0,_=w<<1,D=w>>>0>=1073741823?2147483647:u>>>0<_>>>0?_:u,D?Z=U(D):Z=0,W=Z+J|0,l[W|0]=0,_=W;W:{if((o|0)==(v|0))break W;if(I=0,u=_,w=v,_=J&3,_)for(;u=u-1|0,w=w-1|0,l[u|0]=s[w|0],I=I+1|0,(_|0)!=(I|0););if(_=Z,o-v>>>0>4294967292)break W;for(;l[u-1|0]=s[w-1|0],l[u-2|0]=s[w-2|0],l[u-3|0]=s[w-3|0],u=u-4|0,w=w-4|0,l[u|0]=s[w|0],(o|0)!=(w|0););_=Z}w=Z+D|0,Z=W+1|0,o&&G(o),o=_}if(w>>>0>Z>>>0){l[Z|0]=0,v=Z+1|0;break m}if(J=Z-o|0,u=J+1|0,(u|0)<0)break Z;w=w-o|0,_=w<<1,D=w>>>0>=1073741823?2147483647:u>>>0<_>>>0?_:u,D?v=U(D):v=0,W=v+J|0,l[W|0]=0,_=W;p:{if((o|0)==(Z|0))break p;if(I=0,u=_,w=Z,_=J&3,_)for(;u=u-1|0,w=w-1|0,l[u|0]=s[w|0],I=I+1|0,(_|0)!=(I|0););if(_=v,o-Z>>>0>4294967292)break p;for(;l[u-1|0]=s[w-1|0],l[u-2|0]=s[w-2|0],l[u-3|0]=s[w-3|0],u=u-4|0,w=w-4|0,l[u|0]=s[w|0],(o|0)!=(w|0););_=v}if(w=v+D|0,v=W+1|0,!o){o=_;break m}G(o),o=_;break m}r=Z+E|0;B:{if(w>>>0>v>>>0){l[v|0]=s[r|0],v=v+1|0;break B}if(J=v-o|0,u=J+1|0,(u|0)<0)break h;w=w-o|0,_=w<<1,I=w>>>0>=1073741823?2147483647:u>>>0<_>>>0?_:u,I?_=U(I):_=0,W=_+J|0,l[W|0]=s[r|0],u=W;p:{if((o|0)==(v|0))break p;if(u=0,w=W,r=v,J=J&3,J)for(;w=w-1|0,r=r-1|0,l[w|0]=s[r|0],u=u+1|0,(J|0)!=(u|0););if(u=_,o-v>>>0>4294967292)break p;for(;l[w-1|0]=s[r-1|0],l[w-2|0]=s[r-2|0],l[w-3|0]=s[r-3|0],w=w-4|0,r=r-4|0,l[w|0]=s[r|0],(r|0)!=(o|0););u=_}w=_+I|0,v=W+1|0,o&&G(o),o=u}r=Z}if(Z=r+1|0,!(R>>>0>Z>>>0))break}i[C+72>>2]=v,i[C+68>>2]=o,i[C+76>>2]=w}if(w=w6(C+32|0,o,v-o|0),p2(w,16),p2(w,4),p2(w,4),X[p+2>>1]=0,S=p,q=M8(w,3)+1|0,l[S+4|0]=q,S=p,q=M8(w,2),l[S+6|0]=q,p2(w,2),!g0(w,1))break w;if(S=p,q=M8(w,7),l[S+9|0]=q,S=p,q=M8(w,1),l[S+10|0]=q,S=p,q=M8(w,8),l[S+11|0]=q,S=p,q=M8(w,1),l[S+12|0]=q,S=p,q=M8(w,1),l[S+13|0]=q,!g0(w,1)){l[p+8|0]=1,_=i[p+20>>2],u=i[p+24>>2];m:{if(_>>>0>>0){l[_|0]=0,v=_+1|0;break m}if(I=i[p+16>>2],r=_-I|0,o=r+1|0,(o|0)<0)break v;Z=0,u=u-I|0,v=u<<1,o=u>>>0>=1073741823?2147483647:o>>>0>>0?v:o,o&&(Z=U(o)),u=r+Z|0,l[u|0]=0,W=o+Z|0,v=u+1|0;B:{if((_|0)==(I|0)){Z=u;break B}E=r&3;p:{if(!E){r=_;break p}for(o=0,r=_;u=u-1|0,r=r-1|0,l[u|0]=s[r|0],o=o+1|0,(E|0)!=(o|0););}if(I-_>>>0<=4294967292)for(;l[u-1|0]=s[r-1|0],l[u-2|0]=s[r-2|0],l[u-3|0]=s[r-3|0],u=u-4|0,r=r-4|0,l[u|0]=s[r|0],(r|0)!=(I|0););I=i[p+16>>2]}if(i[p+24>>2]=W,i[p+20>>2]=v,i[p+16>>2]=Z,!I)break m;G(I)}i[p+20>>2]=v}if(r=i[w+24>>2],i[w+24>>2]=r&-8,_=i[w+20>>2],u=i[w+16>>2],o=r&7,r=o,(r&63)>>>0>=32?(o=u<>>32-r|_<>2]=r,i[w+20>>2]=o,kn(p+28|0,s[p+4|0]),r=s[p+4|0],r>>>0<2)break _;for(r=r-2|0;o=1<>2]+(r>>>3&536870908)|0,_?_=o|i[u>>2]:_=i[u>>2]&(o^-1),i[u>>2]=_,o=(r|0)>0,r=r-1|0,!!o;);break _}i[C+72>>2]=Z;break s}y0(),P()}r=i[w+24>>2],i[w+24>>2]=r&-8,_=i[w+20>>2],u=i[w+16>>2],o=r&7,r=o,(r&63)>>>0>=32?(o=u<>>32-r|_<>2]=r,i[w+20>>2]=o,o=p+40|0,r=s[p+4|0],_=i[p+40>>2],u=i[p+44>>2]-_|0;_:{if(r>>>0>u>>>0){L2(o,r-u|0),r=s[p+4|0];break _}if(r>>>0>=u>>>0)break _;i[p+44>>2]=r+_}if(r>>>0>=2)for(r=r-2|0;i[i[p+28>>2]+(r>>>3&536870908)>>2]>>>r&1&&(u=M8(w,8),l[i[o>>2]+r|0]=u),u=(r|0)>0,r=r-1|0,!!u;);o=g0(w,8),r=i[p+56>>2],_=i[p+52>>2],u=r-_>>2;_:{if(o>>>0>u>>>0){if(v=0,Z=o-u|0,W=i[p+60>>2],Z>>>0<=W-r>>2>>>0){Z&&(_=r,r=Z<<2,r=B0(_,0,r)+r|0),i[p+56>>2]=r;break _}v:{if(_=i[p+52>>2],E=r-_>>2,u=E+Z|0,u>>>0<1073741824){if(W=W-_|0,R=W>>1,W=W>>>0>=2147483644?1073741823:u>>>0>>0?R:u,W){if(W>>>0>=1073741824)break v;v=U(W<<2)}if(u=(E<<2)+v|0,Z=Z<<2,Z=B0(u,0,Z)+Z|0,(r|0)!=(_|0))for(;u=u-4|0,r=r-4|0,i[u>>2]=i[r>>2],(r|0)!=(_|0););i[p+60>>2]=(W<<2)+v,i[p+56>>2]=Z,i[p+52>>2]=u,_&&G(_);break _}y0(),P()}_2(),P()}if(o>>>0>=u>>>0)break _;i[p+56>>2]=_+(o<<2)}if(r=0,(o|0)<=0)break w;for(;u=g0(w,32),i[i[p+52>>2]+(r<<2)>>2]=u,r=r+1|0,(o|0)!=(r|0););}p2(w,1),g0(w,1)&&p2(w,1),g1(w,C+28|0),g1(w,C+24|0),r=i[C+28>>2],i[h+208>>2]=r,o=i[C+24>>2],i[h+204>>2]=o;w:{if(!((o|0)<65536&(r|0)<=65535)){if(r=U(56),i[C+12>>2]=r,i[C+16>>2]=55,i[C+20>>2]=-2147483592,o=s[18382]|s[18383]<<8|(s[18384]<<16|s[18385]<<24),u=s[18378]|s[18379]<<8|(s[18380]<<16|s[18381]<<24),l[r|0]=u,l[r+1|0]=u>>>8,l[r+2|0]=u>>>16,l[r+3|0]=u>>>24,l[r+4|0]=o,l[r+5|0]=o>>>8,l[r+6|0]=o>>>16,l[r+7|0]=o>>>24,l[r+55|0]=0,o=s[18429]|s[18430]<<8|(s[18431]<<16|s[18432]<<24),u=s[18425]|s[18426]<<8|(s[18427]<<16|s[18428]<<24),l[r+47|0]=u,l[r+48|0]=u>>>8,l[r+49|0]=u>>>16,l[r+50|0]=u>>>24,l[r+51|0]=o,l[r+52|0]=o>>>8,l[r+53|0]=o>>>16,l[r+54|0]=o>>>24,o=s[18422]|s[18423]<<8|(s[18424]<<16|s[18425]<<24),u=s[18418]|s[18419]<<8|(s[18420]<<16|s[18421]<<24),l[r+40|0]=u,l[r+41|0]=u>>>8,l[r+42|0]=u>>>16,l[r+43|0]=u>>>24,l[r+44|0]=o,l[r+45|0]=o>>>8,l[r+46|0]=o>>>16,l[r+47|0]=o>>>24,o=s[18414]|s[18415]<<8|(s[18416]<<16|s[18417]<<24),u=s[18410]|s[18411]<<8|(s[18412]<<16|s[18413]<<24),l[r+32|0]=u,l[r+33|0]=u>>>8,l[r+34|0]=u>>>16,l[r+35|0]=u>>>24,l[r+36|0]=o,l[r+37|0]=o>>>8,l[r+38|0]=o>>>16,l[r+39|0]=o>>>24,o=s[18406]|s[18407]<<8|(s[18408]<<16|s[18409]<<24),u=s[18402]|s[18403]<<8|(s[18404]<<16|s[18405]<<24),l[r+24|0]=u,l[r+25|0]=u>>>8,l[r+26|0]=u>>>16,l[r+27|0]=u>>>24,l[r+28|0]=o,l[r+29|0]=o>>>8,l[r+30|0]=o>>>16,l[r+31|0]=o>>>24,o=s[18398]|s[18399]<<8|(s[18400]<<16|s[18401]<<24),u=s[18394]|s[18395]<<8|(s[18396]<<16|s[18397]<<24),l[r+16|0]=u,l[r+17|0]=u>>>8,l[r+18|0]=u>>>16,l[r+19|0]=u>>>24,l[r+20|0]=o,l[r+21|0]=o>>>8,l[r+22|0]=o>>>16,l[r+23|0]=o>>>24,o=s[18390]|s[18391]<<8|(s[18392]<<16|s[18393]<<24),u=s[18386]|s[18387]<<8|(s[18388]<<16|s[18389]<<24),l[r+8|0]=u,l[r+9|0]=u>>>8,l[r+10|0]=u>>>16,l[r+11|0]=u>>>24,l[r+12|0]=o,l[r+13|0]=o>>>8,l[r+14|0]=o>>>16,l[r+15|0]=o>>>24,r0(a,9,2006,C+12|0),l[C+23|0]>=0)break w;G(i[C+12>>2]);break w}if(X[p+66>>1]=o,X[p+64>>1]=r,g0(w,1)&&(g1(w,C+12|0),g1(w,C+8|0),g1(w,C+4|0),g1(w,C)),g0(w,1),g1(w,C+8|0),r=i[C+8>>2],(r|0)>=248){if(r=U(32),i[C+12>>2]=r,i[C+16>>2]=27,i[C+20>>2]=-2147483616,o=s[17849]|s[17850]<<8|(s[17851]<<16|s[17852]<<24),u=s[17845]|s[17846]<<8|(s[17847]<<16|s[17848]<<24),l[r|0]=u,l[r+1|0]=u>>>8,l[r+2|0]=u>>>16,l[r+3|0]=u>>>24,l[r+4|0]=o,l[r+5|0]=o>>>8,l[r+6|0]=o>>>16,l[r+7|0]=o>>>24,l[r+27|0]=0,o=s[17868]|s[17869]<<8|(s[17870]<<16|s[17871]<<24),l[r+23|0]=o,l[r+24|0]=o>>>8,l[r+25|0]=o>>>16,l[r+26|0]=o>>>24,o=s[17865]|s[17866]<<8|(s[17867]<<16|s[17868]<<24),u=s[17861]|s[17862]<<8|(s[17863]<<16|s[17864]<<24),l[r+16|0]=u,l[r+17|0]=u>>>8,l[r+18|0]=u>>>16,l[r+19|0]=u>>>24,l[r+20|0]=o,l[r+21|0]=o>>>8,l[r+22|0]=o>>>16,l[r+23|0]=o>>>24,o=s[17857]|s[17858]<<8|(s[17859]<<16|s[17860]<<24),u=s[17853]|s[17854]<<8|(s[17855]<<16|s[17856]<<24),l[r+8|0]=u,l[r+9|0]=u>>>8,l[r+10|0]=u>>>16,l[r+11|0]=u>>>24,l[r+12|0]=o,l[r+13|0]=o>>>8,l[r+14|0]=o>>>16,l[r+15|0]=o>>>24,r0(a,9,0,C+12|0),l[C+23|0]>=0)break w;G(i[C+12>>2]);break w}if(l[p+5|0]=1,l[p+7|0]=r,r=i[19565],i[a>>2]=i[19564],i[a+4>>2]=r,r=a+8|0,l[78275]>=0){o=i[19567],i[r>>2]=i[19566],i[r+4>>2]=o,i[r+8>>2]=i[19568];break w}_0(r,i[19566],i[19567])}r=i[C+68>>2],r&&(i[C+72>>2]=r,G(r)),B=C+80|0;break l}i[C+72>>2]=v}i[C+68>>2]=o,i[C+76>>2]=w,y0(),P()}l[h+131|0]<0&&G(i[h+120>>2]),_=h+92|0,r=h+132|0,o=B-16|0,B=o,u=i[e+48>>2],p4(o+4|0,i[u+44>>2],y,u+52|0,1987470147);l:{s:{if(u=i[o+4>>2],!u||(u=N0(u,68572,74976),!u))break s;if(v=i[o+8>>2],!v){v=0;break l}i[v+4>>2]=i[v+4>>2]+1;break l}v=0,u=0}w=i[o+8>>2];l:{if(!w||(Z=i[w+4>>2],i[w+4>>2]=Z-1,Z))break l;V[i[i[w>>2]+8>>2]](w),g(w)}l:{if(u){w=i[r+4>>2],i[u+56>>2]=i[r>>2],i[u+60>>2]=w,i[u+64>>2]=i[r+8>>2],X[u+68>>1]=Q[r+12>>1];s:{if((r|0)==(u+56|0)){L7(u+84|0,r+28|0);break s}w=i[r+16>>2],Z=i[r+20>>2],W8(u+72|0,w,Z,Z-w|0),L7(u+84|0,r+28|0),w=i[r+40>>2],Z=i[r+44>>2],W8(u+96|0,w,Z,Z-w|0),w=i[r+52>>2],Z=i[r+56>>2],ki(u+108|0,w,Z,Z-w>>2)}if(i[u+120>>2]=i[r+64>>2],X[u+124>>1]=Q[r+68>>1],r=i[19565],i[_>>2]=i[19564],i[_+4>>2]=r,r=_+8|0,l[78275]>=0){u=i[19567],i[r>>2]=i[19566],i[r+4>>2]=u,i[r+8>>2]=i[19568];break l}_0(r,i[19566],i[19567]);break l}if(l[o+4|0]=0,l[o+15|0]=0,r0(_,5,141,o+4|0),l[o+15|0]>=0)break l;G(i[o+4>>2])}l:{if(!v||(r=i[v+4>>2],i[v+4>>2]=r-1,r))break l;V[i[i[v>>2]+8>>2]](v),g(v)}B=o+16|0,l[h+111|0]<0&&G(i[h+100>>2]),r=i[h+184>>2],r&&(i[h+188>>2]=r,G(r)),r=i[h+172>>2],r&&(i[h+176>>2]=r,G(r)),r=i[h+160>>2],r&&G(r),r=i[h+148>>2],r&&(i[h+152>>2]=r,G(r)),r=i[h+48>>2],o=i[h+56>>2];break;case 0:case 2:break u;default:break o}p=h+72|0,Z=B-16|0,B=Z,u=i[e+48>>2],p4(Z+4|0,i[u+44>>2],y,u+52|0,1987470147);u:{l:{if(u=i[Z+4>>2],!u||(w=N0(u,68572,74976),!w))break l;if(v=i[Z+8>>2],!v){v=0;break u}i[v+4>>2]=i[v+4>>2]+1;break u}v=0,w=0}u=i[Z+8>>2];u:{if(!u||(_=i[u+4>>2],i[u+4>>2]=_-1,_))break u;V[i[i[u>>2]+8>>2]](u),g(u)}u:{if(w){W=B-16|0,B=W,i[W+12>>2]=0,i[W+4>>2]=0,i[W+8>>2]=0,r?(L2(W+4|0,r),_=i[W+4>>2]):_=0,l0(_,o,r),_=B-16|0,B=_,u=W+4|0,o=s[i[u>>2]+1|0]>>>3|0;l:{s:{r=i[w+128>>2],E=i[w+132>>2];h:{if((r|0)!=(E|0))for(;;){if((o|0)==s[r+1|0]){if(o=i[r+8>>2],o>>>0>2]){if(i[o+8>>2]=0,i[o>>2]=0,i[o+4>>2]=0,w=i[u+4>>2],E=i[u>>2],(w|0)!=(E|0)){if(u=w-E|0,(u|0)<0)break s;w=U(u),i[o+4>>2]=w,i[o>>2]=w,R=u+w|0,i[o+8>>2]=R,l0(w,E,u),i[o+4>>2]=R}i[r+8>>2]=o+12;break h}S=r,q=v6(r+4|0,u),i[S+8>>2]=q;break h}if(r=r+16|0,(E|0)==(r|0))break}i[_+12>>2]=0,i[_+4>>2]=0,i[_+8>>2]=0,l[_+1|0]=o,l[_|0]=1,o=v6(_+4|0,u),r=i[w+132>>2],i[_+8>>2]=o;w:{if(r>>>0>2]){o=Q[_>>1],i[r+12>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,X[r>>1]=o,o=i[_+4>>2],u=i[_+8>>2],qA(r+4|0,o,u,(u-o|0)/12|0),r=r+16|0;break w}r=yn(w+128|0,_)}if(i[w+132>>2]=r,o=i[_+4>>2],!o)break h;if(r=o,u=i[_+8>>2],(r|0)!=(u|0)){for(;r=u-12|0,w=i[r>>2],w&&(i[u-8>>2]=w,G(w)),u=r,(r|0)!=(o|0););r=i[_+4>>2]}i[_+8>>2]=o,G(r)}B=_+16|0;break l}y0(),P()}if(r=i[W+4>>2],r&&(i[W+8>>2]=r,G(r)),B=W+16|0,r=i[19565],i[p>>2]=i[19564],i[p+4>>2]=r,r=p+8|0,l[78275]>=0){o=i[19567],i[r>>2]=i[19566],i[r+4>>2]=o,i[r+8>>2]=i[19568];break u}_0(r,i[19566],i[19567]);break u}if(l[Z+4|0]=0,l[Z+15|0]=0,r0(p,5,141,Z+4|0),l[Z+15|0]>=0)break u;G(i[Z+4>>2])}u:{if(!v||(r=i[v+4>>2],i[v+4>>2]=r-1,r))break u;V[i[i[v>>2]+8>>2]](v),g(v)}if(B=Z+16|0,l[h+91|0]>=0)break t;G(i[h+80>>2]);break t}m9(i[e+48>>2],y,o,r)}if(V[i[i[A>>2]+104>>2]](h+132|0,i[A+4>>2],h+56|0,h+48|0,0),o=i[h+56>>2],!o)break}t:{if(o=i[h+208>>2],o&&(r=i[h+204>>2],r))break t;if(l[h+132|0]=0,l[h+143|0]=0,r0(f,8,129,h+132|0),l[h+143|0]>=0)break r;G(i[h+132>>2]);break r}u=i[A>>2];t:{if(i[u>>2]<3||(u=i[u+112>>2],!u))break t;i[h+132>>2]=z,i[h+56>>2]=H,V[u|0](i[A+4>>2],z,H,h+132|0,h+56|0),r=i[h+204>>2],o=i[h+208>>2]}Vi(i[e+48>>2],y,o,r),r=i[h+208>>2],o=i[h+204>>2];t:{if((r|0)==(z|0)&(o|0)==(H|0)||(ar(i[e+48>>2],y,z,H,r,o),E3(z,H,i[i[h+232>>2]+36>>2])))break t;l[i[t>>2]+192|0]=0}gr(i[e+48>>2],y,i[k+12>>2]);t:switch(n-1|0){case 0:case 3:break t;default:break e}n=i[h+232>>2],r=i[n+52>>2],n=i[n+56>>2];t:{if(!n){if(!r)break t;u=i[e+48>>2],i[h+136>>2]=0,i[h+132>>2]=r;break f}if(i[n+4>>2]=i[n+4>>2]+1,r)break k}r=s[k|0],o=i[k+4>>2]!=0;break A}c2(),P()}u=i[e+48>>2],i[h+136>>2]=n,i[h+132>>2]=r,i[n+4>>2]=i[n+4>>2]+1}p8(u,y,h+132|0),r=i[h+136>>2];f:{if(!r||(o=i[r+4>>2],i[r+4>>2]=o-1,o))break f;V[i[i[r>>2]+8>>2]](r),g(r)}r=s[k|0],o=s[k+3|0]!=0&i[k+4>>2]!=0&r>>>0>2}A:{if(!(!s[k+8|0]|(r&255)>>>0<4)|!o||(o=i[e+48>>2],i[h+132>>2]=i[h+240>>2],r=i[h+244>>2],i[h+136>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),p8(o,y,h+132|0),r=i[h+136>>2],!r)||(o=i[r+4>>2],i[r+4>>2]=o-1,o))break A;V[i[i[r>>2]+8>>2]](r),g(r)}if(!n||(r=i[n+4>>2],i[n+4>>2]=r-1,r))break e;V[i[i[n>>2]+8>>2]](n),g(n)}i[h+64>>2]=i[h+232>>2],r=i[h+236>>2],i[h+68>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),r=i[h+68>>2],i[h+16>>2]=i[h+64>>2],i[h+20>>2]=r,Wi(e,h+16|0,y),r=i[e+32>>2];e:{if(r>>>0>2]){i[r>>2]=i[t>>2],n=i[t+4>>2],i[r+4>>2]=n,n&&(i[n+4>>2]=i[n+4>>2]+1),r=r+8|0;break e}r=Q2(e+28|0,t)}i[e+32>>2]=r,r=i[e+20>>2];e:{A:{if(!r){u=e+20|0,o=u;break A}for(;;){if(o=r,n=i[r+16>>2],n>>>0>y>>>0){if(u=r,r=i[r>>2],r)continue;break A}if(n>>>0>=y>>>0)break e;if(r=i[o+4>>2],!r)break}u=o+4|0}r=U(28),i[r+20>>2]=0,i[r+24>>2]=0,i[r+16>>2]=y,i[r+8>>2]=o,i[r>>2]=0,i[r+4>>2]=0,i[u>>2]=r,o=r,n=i[i[e+16>>2]>>2],n&&(i[e+16>>2]=n,o=i[u>>2]),D1(i[e+20>>2],o),i[e+24>>2]=i[e+24>>2]+1}n=i[t>>2],t=i[t+4>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),i[r+20>>2]=n,n=i[r+24>>2],i[r+24>>2]=t;e:{if(!n||(r=i[n+4>>2],i[n+4>>2]=r-1,r))break e;V[i[i[n>>2]+8>>2]](n),g(n)}e:{A:{if(!s[k+1|0]||!H2(i[h+232>>2],6))break A;i[h+56>>2]=0,i[h+60>>2]=0,s6(h+132|0,h+232|0),n=i[h+132>>2],t=i[h+136>>2],i[h+132>>2]=0,i[h+136>>2]=0,r=i[h+60>>2],i[h+56>>2]=n,i[h+60>>2]=t;f:{if(!r||(n=i[r+4>>2],i[r+4>>2]=n-1,n||(V[i[i[r>>2]+8>>2]](r),g(r)),r=i[h+136>>2],!r)||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break f;V[i[i[r>>2]+8>>2]](r),g(r)}if(i[h+48>>2]=0,i[h+52>>2]=0,kk(f,e,h+56|0,A,k,2,h+48|0),i[f>>2])break e;r=i[i[h+48>>2]+20>>2],A=i[e+48>>2],i[h+44>>2]=1,i[h+36>>2]=y,i[h+40>>2]=h+36,k=i[h+44>>2],i[h+8>>2]=i[h+40>>2],i[h+12>>2]=k,k=r,r=ue(h+132|0,h+8|0),P1(A,k,1635088492,r),A=i[r>>2],A&&(i[r+4>>2]=A,G(A));f:{if(s[i[h+232>>2]+40|0]!=1||(r=i[e+48>>2],A=i[i[h+48>>2]+20>>2],i[h+32>>2]=1,i[h+36>>2]=A,i[h+28>>2]=h+36,A=i[h+32>>2],i[h>>2]=i[h+28>>2],i[h+4>>2]=A,A=r,r=ue(h+132|0,h),P1(A,y,1886545261,r),A=i[r>>2],!A))break f;i[r+4>>2]=A,G(A)}r=i[e+48>>2],A=i[i[h+48>>2]+20>>2],e=C1(h+132|0,17014),_6(r,A,e),l[e+11|0]<0&&G(i[e>>2]),l[f+19|0]<0&&G(i[f+8>>2]),v1(h+48|0),v1(h+56|0)}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break r}_0(f,i[19566],i[19567]);break r}f=i[h+52>>2];e:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break e;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=i[h+60>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=i[h+228>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[h+236>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[h+244>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=h+256|0}function nk(f,e,r,A,k,n,t,o,u,h,w,_){var v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0,r2=0,n2=0,s2=0,W2=0,y2=0,x2=0,T2=0,O2=0,q2=0,b2=0,e1=0,A1=0,h1=0,B1=0,p1=0,W1=0,X1=0,N1=0,r4=0,e4=0,V4=0,M4=0,x4=0;N1=B-16|0,B=N1,E=N1+4|0,A0=B-80|0,B=A0;i:{r:{if(v=i[r+168>>2],z=k>>v,(z|0)<0||(D=i[r+172>>2],(D|0)<=(z|0)))break r;if(S=n>>v,(S|0)<0|(S|0)>=i[r+176>>2])break i;v=n+o|0,C=k+t|0,y=s[A+10|0];e:{A:{f:switch((s[((i[r+160>>2]+m(z,3)|0)+m(m(D,S),3)|0)+1|0]&3)-1|0){case 0:if(!(y&16))break A;break;case 1:break f;default:break A}i[A0+12>>2]=r,i[A0+8>>2]=45672,Z=A0+8|0,A=v,z=h,S=w,D=_,G0=y>>>5|0,p=A0+16|0,y=B-16|0,B=y,I=i[i[r+132>>2]+8236>>2],(u|0)!=8|i[i[r+132>>2]+8236>>2]<3||(S=8,D=0,z=8,C=k,A=n),X0=A+S|0,R=X0-1|0,v=V[i[i[Z>>2]>>2]](Z,k,n)|0;f:{a=G0+1|0,d=C>>I,n0=C-1|0,q=(d|0)!=n0>>I;k:{if(!q&&(_=0,A>>I==R>>I)||!((D|0)!=1|v>>>0>7)&&(_=0,1<>2]+4>>2]](Z,n0,R)|0,Z=Q[_+4>>1]|Q[_+6>>1]<<16,R=Q[_>>1]|Q[_+2>>1]<<16,X[p>>1]=R,X[p+2>>1]=R>>>16,X[p+4>>1]=Z,X[p+6>>1]=Z>>>16,_=Q[_+8>>1]|Q[_+10>>1]<<16,X[p+8>>1]=_,X[p+10>>1]=_>>>16,_=1}if((a|0)<=(_|0))break f;k:{n:{t:{if(W=C+z|0,Z=W-1|0,R=A-1|0,!(!(1<>>0>5)|(d|0)==Z>>I&A>>I==R>>I||!K4(r,k,n,u,C,A,z,S,D,Z,R))break t;if(J=i[r+188>>2],v=Z>>J,(v|0)<0||(Z=i[r+192>>2],(Z|0)<=(v|0)))break r;if(J=R>>J,!((J|0)<0|(J|0)>=i[r+196>>2])){Z=(i[r+180>>2]+m(v,12)|0)+m(m(Z,J),12)|0;o:{if(!_||(v=s[p|0],(v|0)!=s[Z|0])||v&&Q[p+4>>1]!=Q[Z+4>>1]|Q[p+6>>1]!=Q[Z+6>>1]|s[p+2|0]!=s[Z+2|0]||(Y0=s[p+1|0],(Y0|0)!=s[Z+1|0]))break o;if(J=0,I0=1,v=_,!Y0)break n;if(Q[p+8>>1]!=Q[Z+8>>1]|Q[p+10>>1]!=Q[Z+10>>1]|s[p+3|0]!=s[Z+3|0])break o;v=_;break n}J=Q[Z+4>>1]|Q[Z+6>>1]<<16,v=p+m(_,12)|0,I0=Q[Z>>1]|Q[Z+2>>1]<<16,X[v>>1]=I0,X[v+2>>1]=I0>>>16,X[v+4>>1]=J,X[v+6>>1]=J>>>16,J=Q[Z+8>>1]|Q[Z+10>>1]<<16,X[v+8>>1]=J,X[v+10>>1]=J>>>16,I0=1,J=_,v=_+1|0;break n}break k}v=_}n:{if(a>>>0<=v>>>0)break n;t:{if((d|0)==W>>I&A>>I==R>>I||!K4(r,k,n,u,C,A,z,S,D,W,R))break t;if(Z=W,W=i[r+188>>2],Z=Z>>W,(Z|0)<0||(d=i[r+192>>2],(d|0)<=(Z|0)))break r;if(W=R>>W,(W|0)<0|(W|0)>=i[r+196>>2])break k;Z=(i[r+180>>2]+m(Z,12)|0)+m(m(W,d),12)|0;o:{if(!I0||(W=p+m(J,12)|0,d=s[W|0],(d|0)!=s[Z|0])||d&&Q[W+4>>1]!=Q[Z+4>>1]|Q[W+6>>1]!=Q[Z+6>>1]|s[W+2|0]!=s[Z+2|0]||(d=s[W+1|0],(d|0)!=s[Z+1|0]))break o;if(!d)break t;if(Q[W+8>>1]!=Q[Z+8>>1]|Q[W+10>>1]!=Q[Z+10>>1])break o;if(s[W+3|0]==s[Z+3|0])break t}d=Q[Z+4>>1]|Q[Z+6>>1]<<16,W=p+m(v,12)|0,Y0=Q[Z>>1]|Q[Z+2>>1]<<16,X[W>>1]=Y0,X[W+2>>1]=Y0>>>16,X[W+4>>1]=d,X[W+6>>1]=d>>>16,Z=Q[Z+8>>1]|Q[Z+10>>1]<<16,X[W+8>>1]=Z,X[W+10>>1]=Z>>>16,v=v+1|0}if(v>>>0>=a>>>0)break n;t:{o:{if(!q&&(Z=A>>I,(Z|0)==X0>>I))break o;u:{if(!K4(r,k,n,u,C,A,z,S,D,n0,X0))break u;if(W=i[r+188>>2],Z=n0>>W,(Z|0)<0||(d=i[r+192>>2],(d|0)<=(Z|0)))break r;if(W=X0>>W,(W|0)<0|(W|0)>=i[r+196>>2])break k;Z=(i[r+180>>2]+m(Z,12)|0)+m(m(W,d),12)|0;l:{if(!_||(W=s[p|0],(W|0)!=s[Z|0])||W&&Q[p+4>>1]!=Q[Z+4>>1]|Q[p+6>>1]!=Q[Z+6>>1]|s[p+2|0]!=s[Z+2|0]||(W=s[p+1|0],(W|0)!=s[Z+1|0]))break l;if(!W)break u;if(Q[p+8>>1]!=Q[Z+8>>1]|Q[p+10>>1]!=Q[Z+10>>1])break l;if(s[p+3|0]==s[Z+3|0])break u}X0=Q[Z+4>>1]|Q[Z+6>>1]<<16,W=p+m(v,12)|0,d=Q[Z>>1]|Q[Z+2>>1]<<16,X[W>>1]=d,X[W+2>>1]=d>>>16,X[W+4>>1]=X0,X[W+6>>1]=X0>>>16,Z=Q[Z+8>>1]|Q[Z+10>>1]<<16,X[W+8>>1]=Z,X[W+10>>1]=Z>>>16,v=v+1|0}if((v|0)==4|v>>>0>=a>>>0)break n;if(q)break t;Z=A>>I}if(R>>I==(Z|0))break n}if(!K4(r,k,n,u,C,A,z,S,D,n0,R))break n;if(I=i[r+188>>2],D=n0>>I,(D|0)<0||(Z=i[r+192>>2],(Z|0)<=(D|0)))break r;if(I=R>>I,(I|0)<0|(I|0)>=i[r+196>>2])break k;if(D=(i[r+180>>2]+m(D,12)|0)+m(m(Z,I),12)|0,I0&&W9(p+m(J,12)|0,D)||_&&W9(p,D))break n;J=Q[D+4>>1]|Q[D+6>>1]<<16,_=p+m(v,12)|0,I=Q[D>>1]|Q[D+2>>1]<<16,X[_>>1]=I,X[_+2>>1]=I>>>16,X[_+4>>1]=J,X[_+6>>1]=J>>>16,D=Q[D+8>>1]|Q[D+10>>1]<<16,X[_+8>>1]=D,X[_+10>>1]=D>>>16,v=v+1|0}_=v;break f}break i}i[y+12>>2]=_;f:{if((_|0)>(G0|0)||(dr(f,r,e,C,A,z,S,0,0,y+4|0,y+2|0),l[y+3|0]=0,v=s[y+2|0],i[e+28>>2]||(dr(f,r,e,C,A,z,S,0,1,y+8|0,y+3|0),f0=s[y+3|0],v=v|f0),!(v&255)))break f;i[y+12>>2]=_+1,A=p+m(_,12)|0,_=i[y+4>>2],X[A+4>>1]=_,X[A+6>>1]=_>>>16,_=i[y+8>>2],X[A+8>>1]=_,X[A+10>>1]=_>>>16,_=s[y+2|0],X[A+2>>1]=0,l[A+1|0]=f0,l[A|0]=_}if(_=i[e+28>>2],!_){C=0;f:{if(z=i[y+12>>2],(z|0)<2|(z|0)>=(a|0))break f;I=e+988|0,Z=e+924|0,R=m(z,z-1|0);k:{for(;;){if(A=C<<2,_=i[A+45568>>2],(_|0)>=(z|0)||(v=i[A+45616>>2],(v|0)>=(z|0)))break k;if(D=0,A=0,_=p+m(_,12)|0,s[_|0]&&(A=V[i[i[f>>2]+8>>2]](f,i[Z+(l[_+2|0]<<2)>>2])|0),v=p+m(v,12)|0,s[v+1|0]&&(D=V[i[i[f>>2]+8>>2]](f,i[I+(l[v+3|0]<<2)>>2])|0),S=s[_|0],!(!S||A)||(J=s[v+1|0],!(!J||D))||(!(i[A+96>>2]!=i[D+96>>2]|Q[_+4>>1]!=Q[v+8>>1])&Q[_+6>>1]==Q[v+10>>1]|(!S|!J)||(A=p+m(i[y+12>>2],12)|0,l[A+2|0]=s[_+2|0],D=s[v+3|0],l[A+1|0]=J,l[A|0]=S,l[A+3|0]=D,_=Q[_+4>>1]|Q[_+6>>1]<<16,X[A+4>>1]=_,X[A+6>>1]=_>>>16,_=Q[v+8>>1]|Q[v+10>>1]<<16,X[A+8>>1]=_,X[A+10>>1]=_>>>16,i[y+12>>2]=i[y+12>>2]+1),C=C+1|0,(R|0)==(C|0)))break f;if((a|0)==i[y+12>>2])break}break f}C0(9349,13964,1432,4146),P()}_=i[e+28>>2]}z=i[e+336>>2],(_|0)!=1&&(A=i[e+340>>2],z=(A|0)>(z|0)?z:A),S=i[y+12>>2];f:{if((G0|0)<(S|0))break f;if(A=a-S|0,C=A&1,_=0,(S|0)!=(G0|0))for(D=A&-2,A=0;a=i[e+28>>2],v=p+m(S,12)|0,J=(_|0)<(z|0)?_:0,l[v+2|0]=J,X[v+4>>1]=0,X[v+6>>1]=0,X[v+8>>1]=0,X[v+10>>1]=0,a=(a|0)!=1,l[v+1|0]=a,l[v|0]=1,l[v+3|0]=a?J:-1,a=i[e+28>>2],J=_|1,J=(J|0)<(z|0)?J:0,l[v+14|0]=J,X[v+16>>1]=0,X[v+18>>1]=0,X[v+20>>1]=0,X[v+22>>1]=0,l[v+12|0]=1,a=(a|0)!=1,l[v+13|0]=a,l[v+15|0]=a?J:-1,_=_+2|0,S=S+2|0,A=A+2|0,(D|0)!=(A|0););if(!C)break f;v=i[e+28>>2],A=p+m(S,12)|0,_=(_|0)<(z|0)?_:0,l[A+2|0]=_,X[A+4>>1]=0,X[A+6>>1]=0,X[A+8>>1]=0,X[A+10>>1]=0,v=(v|0)!=1,l[A+1|0]=v,l[A|0]=1,l[A+3|0]=v?_:-1}if(B=y+16|0,A=p+m(G0,12)|0,_=Q[A>>1]|Q[A+2>>1]<<16,v=Q[A+4>>1]|Q[A+6>>1]<<16,X[E>>1]=_,X[E+2>>1]=_>>>16,X[E+4>>1]=v,X[E+6>>1]=v>>>16,A=Q[A+8>>1]|Q[A+10>>1]<<16,X[E+8>>1]=A,X[E+10>>1]=A>>>16,!(_&255)|!s[E+1|0]|(h+w|0)!=12)break e;l[E+1|0]=0,l[E+3|0]=255;break e}A:{f:{k:{n:switch((y&3)-1|0){case 0:case 2:if(y=l[A|0],l[E|0]=1,l[E+2|0]=y,l[A|0]<16)break k;A=E+2|0;break A;default:break n}l[E|0]=0,l[E+2|0]=255;break f}z=Q[A+4>>1],S=Q[A+2>>1],a=y,y=A0+16|0,vk(f,e,r,k,n,u,C,v,h,w,0,a,_,y),y=y+(s[A+10|0]&4)|0,y=Q[y>>1]|Q[y+2>>1]<<16,X[E+4>>1]=y+S,X[E+6>>1]=z+(y>>>16|0)}if(!(s[A+10|0]&2)){l[E+1|0]=0,l[E+3|0]=255;break e}if(y=l[A+1|0],l[E+1|0]=1,l[E+3|0]=y,l[A+1|0]>15){A=E+3|0;break A}z=Q[A+8>>1],S=Q[A+6>>1],a=_,_=A0+16|0,vk(f,e,r,k,n,u,C,v,h,w,1,y,a,_),A=_+(s[A+10|0]>>>1&4)|0,A=Q[A>>1]|Q[A+2>>1]<<16,X[E+8>>1]=A+S,X[E+10>>1]=z+(A>>>16|0);break e}l[A|0]=0,l[r+312|0]=3,v2(f+4|0,1012,0)}B=A0+80|0,_=f,y=k,z=n,S=t,D=o,A=E,k=B-49152|0,B=k;e:{A:{if(n=e,e1=i[e+4>>2],A0=i[e1+4>>2],R=i[A0+16832>>2],f=i[r+124>>2],(R|0)==i[f+16832>>2]&&(Z=i[A0+16840>>2],(Z|0)==i[f+16840>>2]))break A;l[r+312|0]=3,v2(_+4|0,1031,0);break e}if(i[A0+476>>2]!=i[r+20>>2]){l[r+312|0]=3,v2(_+4|0,1030,0);break e}I=i[r+44>>2],W2=D+z|0,y2=i[A0+16856>>2],x2=y+S|0,T2=i[A0+16852>>2],f=m(I,(W2|0)/(y2|0)|0)+((x2|0)/(T2|0)|0)|0,e=f<>2],f=f<>2],G0=i[r+40>>2],E=m(G0,W2)+x2<>2],C=s[A+1|0],o=s[A|0];A:{if(s[e1+41|0]|!o|(!C|Q[A+4>>1]!=Q[A+8>>1])||Q[A+6>>1]!=Q[A+10>>1])break A;C=i[(n+(l[A+2|0]<<2)|0)+924>>2]!=i[(n+(l[A+3|0]<<2)|0)+988>>2]?C:0}for(a=k+40960|0,J=k- -8192|0,X0=e+t|0,I0=f+v|0,d=p+E|0,M4=A+4|0,b2=_+4|0,x4=n+924|0,r4=A+2|0,Y0=k+16384|0,t=k+32768|0,e=k,E=1,f=o;;){A:{if(!f)break A;if(f=l[p1+r4|0],(f|0)>=16){l[r+312|0]=3,v2(b2,1012,0);break e}if(n0=V[i[i[_>>2]+8>>2]](_,i[((p1<<6)+x4|0)+(f<<2)>>2])|0,!(i[n0+100>>2]&&n0)){l[r+312|0]=3,v2(b2,1012,0);break A}if(!(!(i[n0+24>>2]!=i[A0+484>>2]|i[n0+28>>2]!=i[A0+488>>2])&i[r+20>>2]==i[n0+20>>2])){l[r+312|0]=3,v2(b2,1029,0);break A}if(v=i[r+124>>2],p=i[v+16832>>2],f=i[n0+124>>2],!((p|0)==i[f+16832>>2]&i[v+16840>>2]==i[f+16840>>2])){l[r+312|0]=3,v2(b2,1028,0);break A}O2=(p1<<2)+M4|0,f=X[O2+2>>1],v=X[O2>>1],W=i[n0+40>>2],q2=i[n0+4>>2];f:{if((p|0)>=9){h0=B-20448|0,B=h0,Q0=(f>>2)+W2|0,q=(v>>2)+x2|0,S0=i[A0+488>>2],f0=i[A0+484>>2];k:{if(!((f|v)&3)){f=i[A0+16832>>2];n:{if(!((q|Q0)<0|(f0|0)<(h+q|0))&&(S0|0)>=(w+Q0|0))break n;if((w|0)<=0|(h|0)<=0)break k;for(j=14-f|0,c0=S0-1|0,p0=f0-1|0,r2=h&2147483646,n2=h&1,p=0;;){if(f=p+Q0|0,F0=(m((f|0)>=0?(f|0)<(S0|0)?f:c0:0,W)<<1)+q2|0,L=(m(u,p)<<1)+t|0,f=0,v=0,(h|0)!=1)for(;H=f+q|0,X[L+(f<<1)>>1]=Q[F0+(((H|0)>=0?(H|0)<(f0|0)?H:p0:0)<<1)>>1]<>1]=Q[F0+(((H|0)>=0?(H|0)<(f0|0)?H:p0:0)<<1)>>1]<>1]=Q[F0+(((f|0)>=0?(f|0)<(f0|0)?f:p0:0)<<1)>>1]<>2]](t,u,f,W,h,w,h0+11360|0);break k}V[i[_+300>>2]](t,u,f,W,h,w,h0+11360|0,R);break k}c0=f&3,f=c0<<2,F0=i[f+45760>>2],p=i[f+45776>>2],r2=v&3,v=r2<<2,f=i[v+45776>>2],p0=i[v+45760>>2],L=q-p0|0;n:{if(!((f0|0)<=(f+(h+q|0)|0)|(S0|0)<=(p+(w+Q0|0)|0)|(L|Q0-F0)<0)){f=((q<<1)+q2|0)+(m(W,Q0)<<1)|0;break n}j=0-F0|0,A1=w+p|0;t:{if((j|0)>=(A1|0)||(h1=f+h|0,v=0-p0|0,(h1|0)<=(v|0)))break t;for(e4=S0-1|0,p=1-p0|0,W1=(f+p0|0)+h|0,X1=W1&1,n2=f0-1|0,V4=((L|0)>=0?(f0|0)>(L|0)?L:n2:0)<<1;;){if(f=j+Q0|0,L=(m((f|0)>=0?(f|0)<(S0|0)?f:e4:0,W)<<1)+q2|0,H=m(j+F0|0,80),f=v,X1&&(X[h0+(H<<1)>>1]=Q[L+V4>>1],f=p),(W1|0)!=1)for(s2=H+p0|0;H=f+q|0,X[h0+(f+s2<<1)>>1]=Q[L+(((H|0)>=0?(H|0)<(f0|0)?H:n2:0)<<1)>>1],B1=f+1|0,H=B1+q|0,X[h0+(s2+B1<<1)>>1]=Q[L+(((H|0)>=0?(H|0)<(f0|0)?H:n2:0)<<1)>>1],f=f+2|0,(h1|0)!=(f|0););if(j=j+1|0,(A1|0)==(j|0))break}}W=80,f=h0+(p0+m(F0,80)<<1)|0}if((R|0)<=8){V[i[((_+(r2<<4)|0)+(c0<<2)|0)+220>>2]](t,u,f,W,h,w,h0+11360|0);break k}V[i[((_+(r2<<4)|0)+(c0<<2)|0)+300>>2]](t,u,f,W,h,w,h0+11360|0,R)}B=h0+20448|0;break f}h0=B-14768|0,B=h0,Q0=(f>>2)+W2|0,q=(v>>2)+x2|0,S0=i[A0+488>>2],f0=i[A0+484>>2];k:{if(!((f|v)&3)){f=i[A0+16832>>2];n:{if(!((q|Q0)<0|(f0|0)<(h+q|0))&&(S0|0)>=(w+Q0|0))break n;if((w|0)<=0|(h|0)<=0)break k;for(j=14-f|0,c0=S0-1|0,p0=f0-1|0,r2=h&2147483646,n2=h&1,p=0;;){if(f=p+Q0|0,F0=m((f|0)>=0?(f|0)<(S0|0)?f:c0:0,W)+q2|0,L=(m(u,p)<<1)+t|0,f=0,v=0,(h|0)!=1)for(;H=f+q|0,X[L+(f<<1)>>1]=s[F0+((H|0)>=0?(H|0)<(f0|0)?H:p0:0)|0]<>1]=s[F0+((H|0)>=0?(H|0)<(f0|0)?H:p0:0)|0]<>1]=s[F0+((f|0)>=0?(f|0)<(f0|0)?f:p0:0)|0]<>2]](t,u,f,W,h,w,h0+5680|0);break k}V[i[_+300>>2]](t,u,f,W,h,w,h0+5680|0,R);break k}c0=f&3,f=c0<<2,F0=i[f+45760>>2],L=i[f+45776>>2],r2=v&3,v=r2<<2,f=i[v+45776>>2],p0=i[v+45760>>2],p=q-p0|0;n:{if(!((f0|0)<=(f+(h+q|0)|0)|(S0|0)<=(L+(w+Q0|0)|0)|(p|Q0-F0)<0)){f=(q+q2|0)+m(W,Q0)|0;break n}j=0-F0|0,A1=w+L|0;t:{if((j|0)>=(A1|0)||(h1=f+h|0,v=0-p0|0,(h1|0)<=(v|0)))break t;for(e4=S0-1|0,n2=f0-1|0,W1=(p|0)>=0?(p|0)<(f0|0)?p:n2:0,p=1-p0|0,X1=(f+p0|0)+h|0,V4=X1&1;;){if(f=j+Q0|0,L=m((f|0)>=0?(f|0)<(S0|0)?f:e4:0,W)+q2|0,H=m(j+F0|0,80),f=v,V4&&(l[H+h0|0]=s[L+W1|0],f=p),(X1|0)!=1)for(s2=H+p0|0;H=f+q|0,l[h0+(f+s2|0)|0]=s[L+((H|0)>=0?(H|0)<(f0|0)?H:n2:0)|0],B1=f+1|0,H=B1+q|0,l[h0+(s2+B1|0)|0]=s[L+((H|0)>=0?(H|0)<(f0|0)?H:n2:0)|0],f=f+2|0,(h1|0)!=(f|0););if(j=j+1|0,(A1|0)==(j|0))break}}W=80,f=h0+(p0+m(F0,80)|0)|0}if((R|0)<=8){V[i[((_+(r2<<4)|0)+(c0<<2)|0)+220>>2]](t,u,f,W,h,w,h0+5680|0);break k}V[i[((_+(r2<<4)|0)+(c0<<2)|0)+300>>2]](t,u,f,W,h,w,h0+5680|0,R)}B=h0+14768|0}if(!i[r+20>>2])break A;if(f=(w|0)/(y2|0)|0,t=(h|0)/(T2|0)|0,v=Y0+(p1<<13)|0,p=X[O2+2>>1],W=X[O2>>1],q=i[n0+44>>2],f0=i[n0+8>>2],i[i[r+124>>2]+16840>>2]>=9){Pk(_,A0,W,p,x2,W2,e,u,f0,q,t,f,Z),Pk(_,A0,X[O2>>1],X[O2+2>>1],x2,W2,v,u,i[n0+12>>2],i[n0+44>>2],t,f,Z);break A}qk(_,A0,W,p,x2,W2,e,u,f0,q,t,f,Z),qk(_,A0,X[O2>>1],X[O2+2>>1],x2,W2,v,u,i[n0+12>>2],i[n0+44>>2],t,f,Z)}if(p1=1,v=E,E=0,f=C,e=J,t=a,!v)break}f=i[A0+16840>>2],v=(f|0)>12?2:14-f|0,f=i[A0+16832>>2],E=(f|0)>12?2:14-f|0,e=i[r+124>>2],f=s[e+16993|0],t=s[e+16992|0];A:switch(i[n+28>>2]){case 1:if(e=!C&(o|0)==1,!s[e1+41|0]){if(e){f:{if((R|0)<=8){V[i[_+176>>2]](d,G0,k+32768|0,u,h,w);break f}V[i[_+192>>2]](d,G0,k+32768|0,u,h,w,R)}if(!i[r+20>>2])break e;if(f=(w|0)/(y2|0)|0,e=(h|0)/(T2|0)|0,(Z|0)<=8){V[i[_+176>>2]](I0,I,k,u,e,f),V[i[_+176>>2]](X0,I,Y0,u,e,f);break e}V[i[_+192>>2]](I0,I,k,u,e,f,Z),V[i[_+192>>2]](X0,I,Y0,u,e,f,Z);break e}v2(b2,1011,0),l[r+312|0]=3;break e}if(e){e=E+s[n+388|0]|0,o=l[r4|0],t=l[(o+n|0)+518|0]<>1],J=l[C+678|0],E=X[E+550>>1],C=X[C+454>>1],p=s[n+389|0];f:{if((R|0)<=8){V[i[_+180>>2]](d,G0,k+32768|0,u,h,w,C,t,e);break f}V[i[_+196>>2]](d,G0,k+32768|0,u,h,w,C,t,e,R)}if(!i[r+20>>2])break e;if(e=(w|0)/(y2|0)|0,n=(h|0)/(T2|0)|0,t=v+p|0,v=J<>2]](I0,I,k,u,n,e,E,v,t),V[i[_+180>>2]](X0,I,Y0,u,n,e,o,f,t);break e}V[i[_+196>>2]](I0,I,k,u,n,e,E,v,t,Z),V[i[_+196>>2]](X0,I,Y0,u,n,e,o,f,t,Z);break e}v2(b2,1011,0),l[r+312|0]=3;break e;default:C0(15527,13964,528,4261),P();case 0:break A}if(!((o|0)!=1|(C|0)!=1)){if(!s[e1+42|0]){f=k+40960|0;A:{if((R|0)<=8){V[i[_+172>>2]](d,G0,k+32768|0,f,u,h,w);break A}V[i[_+188>>2]](d,G0,k+32768|0,f,u,h,w,R)}if(!i[r+20>>2])break e;if(f=(w|0)/(y2|0)|0,e=(h|0)/(T2|0)|0,n=k- -8192|0,t=k+24576|0,(Z|0)<=8){V[i[_+172>>2]](I0,I,k,n,u,e,f),V[i[_+172>>2]](X0,I,Y0,t,u,e,f);break e}V[i[_+188>>2]](I0,I,k,n,u,e,f,Z),V[i[_+188>>2]](X0,I,Y0,t,u,e,f,Z);break e}if(e=l[A+3|0],o=n+(e<<1)|0,J=l[o+711|0],C=n+(e<<2)|0,p=X[C+616>>1],A0=l[o+710|0],W=X[C+614>>1],C=l[A+2|0],a=n+(C<<1)|0,n0=l[a+679|0],q=n+(C<<2)|0,f0=X[q+552>>1],h0=l[a+678|0],q=X[q+550>>1],j=s[n+389|0],_=_+172|0,F3(_,d,G0,k+32768|0,k+40960|0,u,h,w,X[a+454>>1],l[(n+C|0)+518|0]<>1],l[(e+n|0)+534|0]<>2])break e;e=(h|0)/(T2|0)|0,n=(w|0)/(y2|0)|0,t=v+j|0,F3(_,I0,I,k,k- -8192|0,u,e,n,q,h0<>2]](d,G0,f,u,h,w);break A}V[i[_+192>>2]](d,G0,f,u,h,w,R)}if(!i[r+20>>2])break e;if(n=o?Y0:k+24576|0,f=(w|0)/(y2|0)|0,e=(h|0)/(T2|0)|0,t=k+(t<<13)|0,(Z|0)<=8){V[i[_+176>>2]](I0,I,t,u,e,f),V[i[_+176>>2]](X0,I,n,u,e,f);break e}V[i[_+192>>2]](I0,I,t,u,e,f,Z),V[i[_+192>>2]](X0,I,n,u,e,f,Z);break e}e=!o,C=l[e+r4|0],t=l[(C+(n+(e<<4)|0)|0)+518|0]<>1],W=l[a+678|0],J=X[J+550>>1],a=X[a+454>>1],E=E+s[n+388|0]|0,p=(k+32768|0)+(e<<13)|0,n0=s[n+389|0];A:{if((R|0)<=8){V[i[_+180>>2]](d,G0,p,u,h,w,a,t,E);break A}V[i[_+196>>2]](d,G0,p,u,h,w,a,t,E,R)}if(!i[r+20>>2])break e;if(E=o?Y0:k+24576|0,n=(w|0)/(y2|0)|0,t=(h|0)/(T2|0)|0,o=v+n0|0,v=W<>2]](I0,I,e,u,t,n,J,v,o),V[i[_+180>>2]](X0,I,E,u,t,n,C,f,o);break e}V[i[_+196>>2]](I0,I,e,u,t,n,J,v,o,Z),V[i[_+196>>2]](X0,I,E,u,t,n,C,f,o,Z);break e}v2(b2,1011,0),l[r+312|0]=3}B=k+49152|0,k=y+S|0,n=D+z|0,f=A,w=w>>2;e:{if((w|0)<=0||(e=h>>2,(e|0)<=0))break e;for(_=n>>2,n=k>>2,v=i[r+192>>2],h=h&4,C=e&2147483646,A=0,E=(e|0)==1;;){if(o=m(v,A+_|0),e=0,t=0,!E)for(;u=Q[f+4>>1]|Q[f+6>>1]<<16,z=m(o,12),y=m(n,12),k=z+((y+i[r+180>>2]|0)+m(e,12)|0)|0,S=Q[f>>1]|Q[f+2>>1]<<16,X[k>>1]=S,X[k+2>>1]=S>>>16,X[k+4>>1]=u,X[k+6>>1]=u>>>16,u=Q[f+8>>1]|Q[f+10>>1]<<16,X[k+8>>1]=u,X[k+10>>1]=u>>>16,u=Q[f+4>>1]|Q[f+6>>1]<<16,k=z+((y+i[r+180>>2]|0)+m(e|1,12)|0)|0,y=Q[f>>1]|Q[f+2>>1]<<16,X[k>>1]=y,X[k+2>>1]=y>>>16,X[k+4>>1]=u,X[k+6>>1]=u>>>16,u=Q[f+8>>1]|Q[f+10>>1]<<16,X[k+8>>1]=u,X[k+10>>1]=u>>>16,e=e+2|0,t=t+2|0,(C|0)!=(t|0););if(h&&(k=Q[f+4>>1]|Q[f+6>>1]<<16,e=((i[r+180>>2]+m(n,12)|0)+m(e,12)|0)+m(o,12)|0,t=Q[f>>1]|Q[f+2>>1]<<16,X[e>>1]=t,X[e+2>>1]=t>>>16,X[e+4>>1]=k,X[e+6>>1]=k>>>16,k=Q[f+8>>1]|Q[f+10>>1]<<16,X[e+8>>1]=k,X[e+10>>1]=k>>>16),A=A+1|0,(w|0)==(A|0))break}}B=N1+16|0;return}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function w8(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0;u=B-208|0,B=u;i:{r:{e:{A:{f:{if(t=i[e+112>>2],!t)break f;for(n=e+112|0,Z=n,k=t;o=k0[k+16>>2]>>0,Z=o?Z:k,k=i[(o<<2)+k>>2],!!k;);if((n|0)==(Z|0)|k0[Z+16>>2]>r>>>0)break f;for(k=n;Z=k0[t+16>>2]>>0,k=Z?k:t,t=i[(Z<<2)+t>>2],!!t;);if(!((k|0)==(n|0)|k0[k+16>>2]>r>>>0)&&(n=i[k+20>>2],J=i[k+24>>2],J&&(i[J+4>>2]=i[J+4>>2]+1),n))break A;if(l[u+20|0]=0,l[u+31|0]=0,r0(f,5,2e3,u+20|0),l[u+31|0]>=0)break e;G(i[u+20>>2]);break e}if(l[u+20|0]=0,l[u+31|0]=0,r0(f,5,2e3,u+20|0),l[u+31|0]>=0)break r;G(i[u+20>>2]);break r}A:{if(l[n+75|0]>=0){k=n- -64|0,i[u+200>>2]=i[k+8>>2],t=i[k+4>>2],i[u+192>>2]=i[k>>2],i[u+196>>2]=t;break A}_0(u+192|0,i[n+64>>2],i[n+68>>2])}A:{if(l[n+99|0]>=0){i[u+184>>2]=i[n+96>>2],k=i[n+92>>2],i[u+176>>2]=i[n+88>>2],i[u+180>>2]=k;break A}_0(u+176|0,i[n+88>>2],i[n+92>>2])}k=i[e+60>>2],i[u+172>>2]=0,i[u+164>>2]=0,i[u+168>>2]=0;A:{f:{Z=i[k+56>>2],o=i[k+60>>2];k:{if((Z|0)==(o|0))break k;if(t=o-Z|0,(t|0)<0)break i;for(k=U(t),i[u+168>>2]=k,i[u+164>>2]=k,i[u+172>>2]=k+t;t=i[Z+4>>2],i[k>>2]=i[Z>>2],i[k+4>>2]=t,t=i[Z+12>>2],i[k+8>>2]=i[Z+8>>2],i[k+12>>2]=t,i[k+24>>2]=0,i[k+16>>2]=0,i[k+20>>2]=0,t=i[Z+16>>2],C=i[Z+20>>2],br(k+16|0,t,C,(C-t|0)/40|0),t=k,k=k+32|0,Z=Z+32|0,(o|0)!=(Z|0););if(i[u+168>>2]=k,Z=i[u+164>>2],(Z|0)==(k|0))break k;for(;;){if(i[Z>>2]==(r|0))break f;if(k=(t|0)!=(Z|0),Z=Z+32|0,!k)break}}i[u+28>>2]=54496,i[u+84>>2]=54516,e=i[13633],i[u+20>>2]=e,A=i[e-12>>2],e=u+20|0,i[A+e>>2]=i[13634],i[u+24>>2]=0,A=e+i[i[u+20>>2]-12>>2]|0,k=u+32|0,b0(A,k),i[A+72>>2]=0,i[A+76>>2]=-1,A=i[13635],i[u+28>>2]=A,t=i[A-12>>2],A=u+28|0,i[t+A>>2]=i[13636],t=i[13632],i[u+20>>2]=t,i[e+i[t-12>>2]>>2]=i[13637],i[u+84>>2]=54516,i[u+20>>2]=54476,i[u+28>>2]=54496,e=$0(k),i[e>>2]=53552,i[u+72>>2]=0,i[u+76>>2]=0,i[u+64>>2]=0,i[u+68>>2]=0,i[u+80>>2]=24,x(L0(x(A,19307,13),r),14568,23),r=u+8|0,i2(r,e),r0(f,2,117,r),l[u+19|0]<0&&G(i[u+8>>2]),f=i[13631],i[u+20>>2]=f,i[i[f-12>>2]+(u+20|0)>>2]=i[13639],i[u+28>>2]=i[13640],i[e>>2]=53552,l[u+75|0]<0&&G(i[u+64>>2]),K0(e),T0(u+84|0);break A}t=l[u+203|0],k=(t|0)<0;f:{if(((k?i[u+196>>2]:t)|0)!=4)break f;if(k=k?i[u+192>>2]:u+192|0,(s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))==828601960){o=f,f=0,p=B-48|0,B=p,i[p+44>>2]=0,i[p+36>>2]=0,i[p+40>>2]=0,C=e,ii(p+16|0,i[e+44>>2],r,e+52|0,p+36|0);k:{if(i[p+16>>2]){f=i[p+20>>2],i[o>>2]=i[p+16>>2],i[o+4>>2]=f,i[o+16>>2]=i[p+32>>2],f=i[p+28>>2],i[o+8>>2]=i[p+24>>2],i[o+12>>2]=f,i[p+32>>2]=0,i[p+24>>2]=0,i[p+28>>2]=0;break k}n:{t:{if(n=i[p+36>>2],t=i[p+40>>2],(n|0)!=(t|0))for(;;){if(r=i[n>>2],i[r+16>>2]==1752589123){e=0,k=N0(r,68572,74292);o:{if(!k||(r=i[n+4>>2],!r))break o;i[r+4>>2]=i[r+4>>2]+1,e=r}o:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break o;V[i[i[f>>2]+8>>2]](f),g(f)}if(k)break t;f=e}if(n=n+8|0,(t|0)==(n|0))break}if(l[p+4|0]=0,l[p+15|0]=0,r0(o,2,106,p+4|0),l[p+15|0]>=0)break n;G(i[p+4>>2]);break n}if(n=A,_=i[k+84>>2],y=i[k+88>>2],(_|0)!=(y|0))for(;;){t:{if(v=i[_+4>>2],D=i[_+8>>2],(v|0)==(D|0))break t;for(;;){o:{f=i[v+4>>2]-i[v>>2]>>>24|0,t=i[n+4>>2],A=i[n+8>>2];u:{if(t>>>0>>0){l[t|0]=f,k=t+1|0;break u}if(w=i[n>>2],h=t-w|0,r=h+1|0,(r|0)<0)break o;A=A-w|0,k=A<<1,k=A>>>0>=1073741823?2147483647:r>>>0>>0?k:r,k?r=U(k):r=0,A=h+r|0,l[A|0]=f,I=r+k|0,k=A+1|0;l:{if((t|0)==(w|0)){r=A;break l}if(W=0,f=t,h=h&3,h)for(;A=A-1|0,f=f-1|0,l[A|0]=s[f|0],W=W+1|0,(h|0)!=(W|0););if(w-t>>>0<=4294967292)for(;l[A-1|0]=s[f-1|0],l[A-2|0]=s[f-2|0],l[A-3|0]=s[f-3|0],A=A-4|0,f=f-4|0,l[A|0]=s[f|0],(f|0)!=(w|0););w=i[n>>2]}if(i[n+8>>2]=I,i[n+4>>2]=k,i[n>>2]=r,!w)break u;G(w)}i[n+4>>2]=k,f=i[v+4>>2]-i[v>>2]>>>16|0,A=i[n+8>>2];u:{if(A>>>0>k>>>0){l[k|0]=f,t=k+1|0;break u}if(w=i[n>>2],h=k-w|0,r=h+1|0,(r|0)<0)break o;A=A-w|0,t=A<<1,t=A>>>0>=1073741823?2147483647:r>>>0>>0?t:r,t?r=U(t):r=0,A=h+r|0,l[A|0]=f,I=r+t|0,t=A+1|0;l:{if((k|0)==(w|0)){r=A;break l}if(W=0,f=k,h=h&3,h)for(;A=A-1|0,f=f-1|0,l[A|0]=s[f|0],W=W+1|0,(h|0)!=(W|0););if(w-k>>>0<=4294967292)for(;l[A-1|0]=s[f-1|0],l[A-2|0]=s[f-2|0],l[A-3|0]=s[f-3|0],A=A-4|0,f=f-4|0,l[A|0]=s[f|0],(f|0)!=(w|0););w=i[n>>2]}if(i[n+8>>2]=I,i[n+4>>2]=t,i[n>>2]=r,!w)break u;G(w)}i[n+4>>2]=t,f=i[v+4>>2]-i[v>>2]>>>8|0,A=i[n+8>>2];u:{if(A>>>0>t>>>0){l[t|0]=f,k=t+1|0;break u}if(w=i[n>>2],h=t-w|0,r=h+1|0,(r|0)<0)break o;A=A-w|0,k=A<<1,k=A>>>0>=1073741823?2147483647:r>>>0>>0?k:r,k?r=U(k):r=0,A=h+r|0,l[A|0]=f,I=r+k|0,k=A+1|0;l:{if((t|0)==(w|0)){r=A;break l}if(W=0,f=t,h=h&3,h)for(;A=A-1|0,f=f-1|0,l[A|0]=s[f|0],W=W+1|0,(h|0)!=(W|0););if(w-t>>>0<=4294967292)for(;l[A-1|0]=s[f-1|0],l[A-2|0]=s[f-2|0],l[A-3|0]=s[f-3|0],A=A-4|0,f=f-4|0,l[A|0]=s[f|0],(f|0)!=(w|0););w=i[n>>2]}if(i[n+8>>2]=I,i[n+4>>2]=k,i[n>>2]=r,!w)break u;G(w)}i[n+4>>2]=k,f=i[v+4>>2]-i[v>>2]|0,A=i[n+8>>2];u:{if(A>>>0>k>>>0){l[k|0]=f,t=k+1|0;break u}if(w=i[n>>2],h=k-w|0,r=h+1|0,(r|0)<0)break o;A=A-w|0,t=A<<1,t=A>>>0>=1073741823?2147483647:r>>>0>>0?t:r,t?r=U(t):r=0,A=h+r|0,l[A|0]=f,I=r+t|0,t=A+1|0;l:{if((k|0)==(w|0)){r=A;break l}if(W=0,f=k,h=h&3,h)for(;A=A-1|0,f=f-1|0,l[A|0]=s[f|0],W=W+1|0,(h|0)!=(W|0););if(w-k>>>0<=4294967292)for(;l[A-1|0]=s[f-1|0],l[A-2|0]=s[f-2|0],l[A-3|0]=s[f-3|0],A=A-4|0,f=f-4|0,l[A|0]=s[f|0],(f|0)!=(w|0););w=i[n>>2]}if(i[n+8>>2]=I,i[n+4>>2]=t,i[n>>2]=r,!w)break u;G(w)}i[n+4>>2]=t,r=i[v+4>>2],h=i[v>>2],f=r-h|0;u:{if((f|0)<=0)break u;if(I=i[n+8>>2],(f|0)<=(I-t|0)){(r|0)!=(h|0)&&F2(t,h,f),i[n+4>>2]=f+t;break u}if(r=i[n>>2],w=t-r|0,A=w+f|0,(A|0)<0)break o;W=0,k=0,I=I-r|0,E=I<<1,A=I>>>0>=1073741823?2147483647:A>>>0>>0?E:A,A&&(k=U(A)),I=A+k|0,R=f,A=k+w|0,f=l0(A,h,f),h=R+f|0;l:{if((r|0)==(t|0)){k=f;break l}if(f=t,w=w&3,w)for(;A=A-1|0,f=f-1|0,l[A|0]=s[f|0],W=W+1|0,(w|0)!=(W|0););if(r-t>>>0<=4294967292)for(;l[A-1|0]=s[f-1|0],l[A-2|0]=s[f-2|0],l[A-3|0]=s[f-3|0],A=A-4|0,f=f-4|0,l[A|0]=s[f|0],(f|0)!=(r|0););if(f=i[n+4>>2],W=f-t|0,(f|0)==(t|0))break l;F2(h,t,W)}if(i[n+8>>2]=I,i[n+4>>2]=h+W,f=i[n>>2],i[n>>2]=k,!f)break u;G(f)}if(v=v+12|0,(D|0)!=(v|0))continue;break t}break}y0(),P()}if(_=_+16|0,(y|0)==(_|0))break}R8(o,Z,C,C+68|0,n),f=e}if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break k;V[i[i[f>>2]+8>>2]](f),g(f)}if(l[p+35|0]<0&&G(i[p+24>>2]),e=i[p+36>>2],e){if(f=e,n=i[p+40>>2],(f|0)!=(n|0)){for(;;){f=i[n-4>>2];k:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break k;V[i[i[f>>2]+8>>2]](f),g(f)}if(n=n-8|0,(e|0)==(n|0))break}f=i[p+36>>2]}i[p+40>>2]=e,G(f)}B=p+48|0;break A}if((s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))==828601974){o=f,f=0,w=B-48|0,B=w,i[w+44>>2]=0,i[w+36>>2]=0,i[w+40>>2]=0,C=e,ii(w+16|0,i[e+44>>2],r,e+52|0,w+36|0);k:{if(i[w+16>>2]){f=i[w+20>>2],i[o>>2]=i[w+16>>2],i[o+4>>2]=f,i[o+16>>2]=i[w+32>>2],f=i[w+28>>2],i[o+8>>2]=i[w+24>>2],i[o+12>>2]=f,i[w+32>>2]=0,i[w+24>>2]=0,i[w+28>>2]=0;break k}n:{t:{if(n=i[w+36>>2],t=i[w+40>>2],(n|0)!=(t|0))for(;;){if(r=i[n>>2],i[r+16>>2]==1987470147){e=0,k=N0(r,68572,74976);o:{if(!k||(r=i[n+4>>2],!r))break o;i[r+4>>2]=i[r+4>>2]+1,e=r}o:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break o;V[i[i[f>>2]+8>>2]](f),g(f)}if(k)break t;f=e}if(n=n+8|0,(t|0)==(n|0))break}if(l[w+4|0]=0,l[w+15|0]=0,r0(o,2,141,w+4|0),l[w+15|0]>=0)break n;G(i[w+4>>2]);break n}if(n=A,p=i[k+128>>2],D=i[k+132>>2],(p|0)!=(D|0))for(;;){t:{if(W=i[p+4>>2],I=i[p+8>>2],(W|0)==(I|0))break t;for(;;){o:{y=i[W>>2],E=i[W+4>>2],t=i[n+4>>2],r=i[n+8>>2];u:{if(t>>>0>>0){l[t|0]=0,k=t+1|0;break u}if(_=i[n>>2],h=t-_|0,f=h+1|0,(f|0)<0)break o;r=r-_|0,A=r<<1,f=r>>>0>=1073741823?2147483647:f>>>0>>0?A:f,f?r=U(f):r=0,A=h+r|0,l[A|0]=0,R=f+r|0,k=A+1|0;l:{if((t|0)==(_|0)){r=A;break l}if(v=0,f=t,h=h&3,h)for(;A=A-1|0,f=f-1|0,l[A|0]=s[f|0],v=v+1|0,(h|0)!=(v|0););if(_-t>>>0<=4294967292)for(;l[A-1|0]=s[f-1|0],l[A-2|0]=s[f-2|0],l[A-3|0]=s[f-3|0],A=A-4|0,f=f-4|0,l[A|0]=s[f|0],(f|0)!=(_|0););_=i[n>>2]}if(i[n+8>>2]=R,i[n+4>>2]=k,i[n>>2]=r,!_)break u;G(_)}i[n+4>>2]=k,r=i[n+8>>2];u:{if(r>>>0>k>>>0){l[k|0]=0,t=k+1|0;break u}if(_=i[n>>2],h=k-_|0,f=h+1|0,(f|0)<0)break o;r=r-_|0,A=r<<1,f=r>>>0>=1073741823?2147483647:f>>>0>>0?A:f,f?r=U(f):r=0,A=h+r|0,l[A|0]=0,R=f+r|0,t=A+1|0;l:{if((k|0)==(_|0)){r=A;break l}if(v=0,f=k,h=h&3,h)for(;A=A-1|0,f=f-1|0,l[A|0]=s[f|0],v=v+1|0,(h|0)!=(v|0););if(_-k>>>0<=4294967292)for(;l[A-1|0]=s[f-1|0],l[A-2|0]=s[f-2|0],l[A-3|0]=s[f-3|0],A=A-4|0,f=f-4|0,l[A|0]=s[f|0],(f|0)!=(_|0););_=i[n>>2]}if(i[n+8>>2]=R,i[n+4>>2]=t,i[n>>2]=r,!_)break u;G(_)}i[n+4>>2]=t,y=E-y|0,f=y>>>8|0,A=i[n+8>>2];u:{if(A>>>0>t>>>0){l[t|0]=f,k=t+1|0;break u}if(_=i[n>>2],h=t-_|0,r=h+1|0,(r|0)<0)break o;A=A-_|0,k=A<<1,k=A>>>0>=1073741823?2147483647:r>>>0>>0?k:r,k?r=U(k):r=0,A=h+r|0,l[A|0]=f,E=r+k|0,k=A+1|0;l:{if((t|0)==(_|0)){r=A;break l}if(v=0,f=t,h=h&3,h)for(;A=A-1|0,f=f-1|0,l[A|0]=s[f|0],v=v+1|0,(h|0)!=(v|0););if(_-t>>>0<=4294967292)for(;l[A-1|0]=s[f-1|0],l[A-2|0]=s[f-2|0],l[A-3|0]=s[f-3|0],A=A-4|0,f=f-4|0,l[A|0]=s[f|0],(f|0)!=(_|0););_=i[n>>2]}if(i[n+8>>2]=E,i[n+4>>2]=k,i[n>>2]=r,!_)break u;G(_)}i[n+4>>2]=k,r=i[n+8>>2];u:{if(r>>>0>k>>>0){l[k|0]=y,t=k+1|0;break u}if(_=i[n>>2],h=k-_|0,f=h+1|0,(f|0)<0)break o;r=r-_|0,A=r<<1,f=r>>>0>=1073741823?2147483647:f>>>0>>0?A:f,f?r=U(f):r=0,A=h+r|0,l[A|0]=y,y=f+r|0,t=A+1|0;l:{if((k|0)==(_|0)){r=A;break l}if(v=0,f=k,h=h&3,h)for(;A=A-1|0,f=f-1|0,l[A|0]=s[f|0],v=v+1|0,(h|0)!=(v|0););if(_-k>>>0<=4294967292)for(;l[A-1|0]=s[f-1|0],l[A-2|0]=s[f-2|0],l[A-3|0]=s[f-3|0],A=A-4|0,f=f-4|0,l[A|0]=s[f|0],(f|0)!=(_|0););_=i[n>>2]}if(i[n+8>>2]=y,i[n+4>>2]=t,i[n>>2]=r,!_)break u;G(_)}i[n+4>>2]=t,r=i[W+4>>2],h=i[W>>2],f=r-h|0;u:{if((f|0)<=0)break u;if(v=i[n+8>>2],(f|0)<=(v-t|0)){(r|0)!=(h|0)&&F2(t,h,f),i[n+4>>2]=f+t;break u}if(r=i[n>>2],y=t-r|0,A=y+f|0,(A|0)<0)break o;_=0,k=0,v=v-r|0,E=v<<1,A=v>>>0>=1073741823?2147483647:A>>>0>>0?E:A,A&&(k=U(A)),E=A+k|0,R=f,A=k+y|0,f=l0(A,h,f),h=R+f|0;l:{if((r|0)==(t|0)){k=f;break l}if(v=0,f=t,_=y&3,_)for(;A=A-1|0,f=f-1|0,l[A|0]=s[f|0],v=v+1|0,(_|0)!=(v|0););if(r-t>>>0<=4294967292)for(;l[A-1|0]=s[f-1|0],l[A-2|0]=s[f-2|0],l[A-3|0]=s[f-3|0],A=A-4|0,f=f-4|0,l[A|0]=s[f|0],(f|0)!=(r|0););if(f=i[n+4>>2],_=f-t|0,(f|0)==(t|0))break l;F2(h,t,_)}if(i[n+8>>2]=E,i[n+4>>2]=h+_,f=i[n>>2],i[n>>2]=k,!f)break u;G(f)}if(W=W+12|0,(I|0)!=(W|0))continue;break t}break}y0(),P()}if(p=p+16|0,(D|0)==(p|0))break}R8(o,Z,C,C+68|0,n),f=e}if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break k;V[i[i[f>>2]+8>>2]](f),g(f)}if(l[w+35|0]<0&&G(i[w+24>>2]),e=i[w+36>>2],e){if(f=e,n=i[w+40>>2],(f|0)!=(n|0)){for(;;){f=i[n-4>>2];k:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break k;V[i[i[f>>2]+8>>2]](f),g(f)}if(n=n-8|0,(e|0)==(n|0))break}f=i[w+36>>2]}i[w+40>>2]=e,G(f)}B=w+48|0;break A}if((s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))!=825259617)break f;k=f,f=0,o=B-48|0,B=o,i[o+44>>2]=0,i[o+36>>2]=0,i[o+40>>2]=0,t=e,ii(o+16|0,i[t+44>>2],r,t+52|0,o+36|0);k:{if(i[o+16>>2]){f=i[o+20>>2],i[k>>2]=i[o+16>>2],i[k+4>>2]=f,i[k+16>>2]=i[o+32>>2],f=i[o+28>>2],i[k+8>>2]=i[o+24>>2],i[k+12>>2]=f,i[o+32>>2]=0,i[o+24>>2]=0,i[o+28>>2]=0;break k}n:{t:{if(n=i[o+36>>2],h=i[o+40>>2],(n|0)!=(h|0))for(;;){if(r=i[n>>2],i[r+16>>2]==1635135811){e=0,C=N0(r,68572,74408);o:{if(!C||(r=i[n+4>>2],!r))break o;i[r+4>>2]=i[r+4>>2]+1,e=r}o:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break o;V[i[i[f>>2]+8>>2]](f),g(f)}if(C)break t;f=e}if(n=n+8|0,(h|0)==(n|0))break}if(l[o+4|0]=0,l[o+15|0]=0,r0(k,2,131,o+4|0),l[o+15|0]>=0)break n;G(i[o+4>>2]);break n}(C+60|0)!=(A|0)&&(f=i[C+60>>2],r=i[C+64>>2],W8(A,f,r,r-f|0)),R8(k,Z,t,t+68|0,A),f=e}if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break k;V[i[i[f>>2]+8>>2]](f),g(f)}if(l[o+35|0]<0&&G(i[o+24>>2]),e=i[o+36>>2],e){if(f=e,n=i[o+40>>2],(f|0)!=(n|0)){for(;;){f=i[n-4>>2];k:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break k;V[i[i[f>>2]+8>>2]](f),g(f)}if(n=n-8|0,(e|0)==(n|0))break}f=i[o+36>>2]}i[o+40>>2]=e,G(f)}B=o+48|0;break A}f:{if(k=u+192|0,!E4(k,8710)&&(!E4(k,9980)||(k=u+20|0,cr(k,e,r),k=E4(k,8704),l[u+31|0]<0&&G(i[u+20>>2]),!k)))break f;k=f,f=0,o=B-32|0,B=o,i[o+28>>2]=0,i[o+20>>2]=0,i[o+24>>2]=0,t=e,ii(o,i[t+44>>2],r,t+52|0,o+20|0);k:{if(i[o>>2]){f=i[o+4>>2],i[k>>2]=i[o>>2],i[k+4>>2]=f,i[k+16>>2]=i[o+16>>2],f=i[o+12>>2],i[k+8>>2]=i[o+8>>2],i[k+12>>2]=f,i[o+16>>2]=0,i[o+8>>2]=0,i[o+12>>2]=0;break k}if(n=i[o+20>>2],h=i[o+24>>2],(n|0)!=(h|0)){n:{for(;;){t:{if(r=i[n>>2],i[r+16>>2]==1785751363){e=0,C=N0(r,68572,74588);o:{if(!C||(r=i[n+4>>2],!r))break o;i[r+4>>2]=i[r+4>>2]+1,e=r}o:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break o;V[i[i[f>>2]+8>>2]](f),g(f)}if(C)break t;f=e}if(n=n+8|0,(h|0)!=(n|0))continue;break n}break}(C+48|0)!=(A|0)&&(f=i[C+48>>2],r=i[C+52>>2],W8(A,f,r,r-f|0)),f=e}if(R8(k,Z,t,t+68|0,A),!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break k;V[i[i[f>>2]+8>>2]](f),g(f);break k}R8(k,Z,t,t+68|0,A)}if(l[o+19|0]<0&&G(i[o+8>>2]),e=i[o+20>>2],e){if(f=e,n=i[o+24>>2],(f|0)!=(n|0)){for(;;){f=i[n-4>>2];k:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break k;V[i[i[f>>2]+8>>2]](f),g(f)}if(n=n-8|0,(e|0)==(n|0))break}f=i[o+20>>2]}i[o+24>>2]=e,G(f)}B=o+32|0;break A}if(E4(u+192|0,16929)){k=f,f=0,o=B-32|0,B=o,i[o+28>>2]=0,i[o+20>>2]=0,i[o+24>>2]=0,t=e,ii(o,i[t+44>>2],r,t+52|0,o+20|0);f:{if(i[o>>2]){f=i[o+4>>2],i[k>>2]=i[o>>2],i[k+4>>2]=f,i[k+16>>2]=i[o+16>>2],f=i[o+12>>2],i[k+8>>2]=i[o+8>>2],i[k+12>>2]=f,i[o+16>>2]=0,i[o+8>>2]=0,i[o+12>>2]=0;break f}if(n=i[o+20>>2],C=i[o+24>>2],(n|0)!=(C|0)){for(;;){k:{r=i[n>>2];n:{if(i[r+16>>2]!=1781689160){e=f;break n}e=0,h=N0(r,68572,74888);t:{if(!h||(r=i[n+4>>2],!r))break t;i[r+4>>2]=i[r+4>>2]+1,e=r}t:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break t;V[i[i[f>>2]+8>>2]](f),g(f)}if(h)break k}if(f=e,n=n+8|0,(C|0)!=(n|0))continue}break}if(R8(k,Z,t,t+68|0,A),!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break f;V[i[i[e>>2]+8>>2]](e),g(e);break f}R8(k,Z,t,t+68|0,A)}if(l[o+19|0]<0&&G(i[o+8>>2]),e=i[o+20>>2],e){if(f=e,n=i[o+24>>2],(f|0)!=(n|0)){for(;;){f=i[n-4>>2];f:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break f;V[i[i[f>>2]+8>>2]](f),g(f)}if(n=n-8|0,(e|0)==(n|0))break}f=i[o+20>>2]}i[o+24>>2]=e,G(f)}B=o+32|0;break A}i[u+20>>2]=0,i[u+24>>2]=0,i[u+36>>2]=0,i[u+28>>2]=0,i[u+32>>2]=0;f:{k:{n:{if(!E4(u+192|0,9980))break n;t:{if(l[n+111|0]>=0){i[u+16>>2]=i[n+108>>2],r=i[n+104>>2],i[u+8>>2]=i[n+100>>2],i[u+12>>2]=r;break t}_0(u+8|0,i[n+100>>2],i[n+104>>2])}if(r=u+8|0,E4(r,14086)||E4(r,9341)||E4(r,5949))break k;if(l[u+19|0]>=0)break n;G(i[u+8>>2])}R8(f,Z,e,e+68|0,A);break f}if(r0(f,4,3005,u+8|0),l[u+19|0]>=0)break f;G(i[u+8>>2])}if(l[u+39|0]>=0)break A;G(i[u+28>>2])}if(e=i[u+164>>2],e){if(r=i[u+168>>2],(e|0)!=(r|0))for(;;){if(t=r-16|0,f=i[t>>2],f){if(n=r-12|0,k=i[n>>2],Z=f,(k|0)!=(f|0)){for(;A=i[k-16>>2],A&&(i[k-12>>2]=A,G(A)),k=k-40|0,(f|0)!=(k|0););Z=i[t>>2]}i[n>>2]=f,G(Z)}if(r=r-32|0,(e|0)==(r|0))break}G(e)}if(l[u+187|0]<0&&G(i[u+176>>2]),l[u+203|0]>=0)break e;G(i[u+192>>2])}if(!J||(f=i[J+4>>2],i[J+4>>2]=f-1,f))break r;V[i[i[J>>2]+8>>2]](J),g(J)}B=u+208|0;return}y0(),P()}function tk(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0;C=B-48|0,B=C;i:{r:{if(r>>>0>2)break r;for(r=r<<2,a=i[r+56188>>2],S=i[r+56176>>2];;){r=i[e+4>>2];e:{if((r|0)!=i[e+104>>2]){i[e+4>>2]=r+1,r=s[r|0];break e}r=I2(e)}if(!((r|0)==32|r-9>>>0<5))break}I=1;e:{A:switch(r-43|0){case 0:case 2:break A;default:break e}if(I=(r|0)==45?-1:1,r=i[e+4>>2],(r|0)!=i[e+104>>2]){i[e+4>>2]=r+1,r=s[r|0];break e}r=I2(e)}e:{A:{if((r&-33)==73)for(;;){if((n|0)==7)break A;r=i[e+4>>2];f:{if((r|0)!=i[e+104>>2]){i[e+4>>2]=r+1,r=s[r|0];break f}r=I2(e)}if(k=n+1331|0,n=n+1|0,l[k|0]!=(r|32))break}if((n|0)!=3){if(k=(n|0)==8,k)break A;if(!A|n>>>0<4)break e;if(k)break A}if(r=i[e+116>>2],(r|0)>=0|(r|0)>0&&(i[e+4>>2]=i[e+4>>2]-1),!A|n>>>0<4)break A;for(r=(r|0)<0;r||(i[e+4>>2]=i[e+4>>2]-1),n=n-1|0,n>>>0>3;);}o=B-16|0,B=o,p=(s1(Y(Y(I|0)*Y(1/0))),j0(2)),e=p&8388607,A=p>>>23|0,r=A&255;A:{if(r){if((r|0)!=255){r=e,e=e>>>7|0,t=r<<25,u=e,A=(A&255)+16256|0;break A}r=e,e=e>>>7|0,t=r<<25,u=e,A=32767;break A}if(A=0,!e)break A;r=e,e=$2(e),L1(o,r,0,0,0,e+81|0),t=i[o+8>>2],u=i[o+12>>2]^65536,h=i[o>>2],w=i[o+4>>2],A=16265-e|0}i[C>>2]=h,i[C+4>>2]=w,r=C,i[r+8>>2]=t,i[r+12>>2]=u|(p&-2147483648|A<<16),B=o+16|0,t=i[r+8>>2],u=i[r+12>>2],h=i[r>>2],w=i[r+4>>2];break i}e:{A:{f:{k:{n:{if(n||(n=0,(r&-33)!=78))break n;for(;;){if((n|0)==2)break k;r=i[e+4>>2];t:{if((r|0)!=i[e+104>>2]){i[e+4>>2]=r+1,r=s[r|0];break t}r=I2(e)}if(k=n+7074|0,n=n+1|0,l[k|0]!=(r|32))break}}switch(n|0){case 0:break e;case 3:break k;default:break f}}k:{r=i[e+4>>2];n:{if((r|0)!=i[e+104>>2]){i[e+4>>2]=r+1,r=s[r|0];break n}r=I2(e)}if((r|0)==40){n=1;break k}if(u=2147450880,i[e+116>>2]<0)break i;i[e+4>>2]=i[e+4>>2]-1;break i}for(;;){k:{r=i[e+4>>2];n:{if((r|0)!=i[e+104>>2]){i[e+4>>2]=r+1,r=s[r|0];break n}r=I2(e)}if(!(r-48>>>0<10|r-65>>>0<26|(r|0)==95)&&r-97>>>0>=26)break k;n=n+1|0;continue}break}if(u=2147450880,(r|0)==41)break i;r=i[e+116>>2],(r|0)>=0|(r|0)>0&&(i[e+4>>2]=i[e+4>>2]-1);k:{if(A){if(n)break k;break i}break A}for(;(r|0)>0|(r|0)>=0&&(i[e+4>>2]=i[e+4>>2]-1),n=n-1|0,!!n;);break i}r=i[e+116>>2],(r|0)>0?r=1:r=(r|0)>=0,r&&(i[e+4>>2]=i[e+4>>2]-1)}i[23944]=28,a4(e,0,0);break r}e:{if((r|0)!=48)break e;n=i[e+4>>2];A:{if((n|0)!=i[e+104>>2]){i[e+4>>2]=n+1,n=s[n|0];break A}n=I2(e)}if((n&-33)==88){k=B-432|0,B=k,r=i[e+4>>2];A:{if((r|0)!=i[e+104>>2]){i[e+4>>2]=r+1,r=s[r|0];break A}r=I2(e)}A:{f:{for(;;){if((r|0)!=48)k:{if((r|0)!=46)break A;if(r=i[e+4>>2],(r|0)==i[e+104>>2])break k;i[e+4>>2]=r+1,r=s[r|0];break f}else{r=i[e+4>>2],(r|0)!=i[e+104>>2]?(y=1,i[e+4>>2]=r+1,r=s[r|0]):(y=1,r=I2(e));continue}break}r=I2(e)}if((r|0)!=48){D=1;break A}for(;;){r=p,p=r-1|0,W=W-!r|0,r=i[e+4>>2];f:{if((r|0)!=i[e+104>>2]){i[e+4>>2]=r+1,r=s[r|0];break f}r=I2(e)}if((r|0)!=48)break}D=1,y=1}for(w=1073676288;;){A:{n=r;f:{k:{if(q=r-48|0,q>>>0<10)break k;if(A0=(r|0)!=46,n=r|32,A0&n-97>>>0>5)break A;if(A0)break k;if(D)break A;D=1,p=t,W=u;break f}r=(r|0)>57?n-87|0:q;k:{if((u|0)<=0&t>>>0<=7|(u|0)<0){_=r+(_<<4)|0;break k}if(!u&t>>>0<=28){W4(k+48|0,r),d2(k+32|0,z,H,h,w,0,0,0,1073414144),z=i[k+32>>2],H=i[k+36>>2],h=i[k+40>>2],w=i[k+44>>2],d2(k+16|0,i[k+48>>2],i[k+52>>2],i[k+56>>2],i[k+60>>2],z,H,h,w),s4(k,i[k+16>>2],i[k+20>>2],i[k+24>>2],i[k+28>>2],o,v,J,R),J=i[k+8>>2],R=i[k+12>>2],o=i[k>>2],v=i[k+4>>2];break k}if(Z|!r)break k;d2(k+80|0,z,H,h,w,0,0,0,1073610752),s4(k- -64|0,i[k+80>>2],i[k+84>>2],i[k+88>>2],i[k+92>>2],o,v,J,R),J=i[k+72>>2],R=i[k+76>>2],Z=1,o=i[k+64>>2],v=i[k+68>>2]}t=t+1|0,u=t?u:u+1|0,y=1}r=i[e+4>>2],(r|0)!=i[e+104>>2]?(i[e+4>>2]=r+1,r=s[r|0]):r=I2(e);continue}break}A:{if(!y){r=i[e+116>>2],(r|0)>0?r=1:r=(r|0)>=0;f:{k:{if(r){if(r=i[e+4>>2],i[e+4>>2]=r-1,!A)break k;if(i[e+4>>2]=r-2,!D)break f;i[e+4>>2]=r-3;break f}if(A)break f}a4(e,0,0)}U2(0),e=j0(1)|0,A=j0(0)|0,U2(+(I|0)),r=j0(1)|0,j0(0)|0,N2(0,A|0),N2(1,e&2147483647|r&-2147483648),b4(k+96|0,+m1()),o=i[k+96>>2],v=i[k+100>>2],r=i[k+108>>2],e=i[k+104>>2];break A}if((u|0)<=0&t>>>0<=7|(u|0)<0)for(h=t,w=u;_=_<<4,h=h+1|0,w=h?w:w+1|0,!!((h|0)!=8|w););f:{k:{n:{if((r&-33)==80){if(h=ln(e,A),r=w0,w=r,h|(r|0)!=-2147483648)break f;if(A){if(r=i[e+116>>2],(r|0)>0?r=1:r=(r|0)>=0,r)break n;break k}o=0,v=0,a4(e,0,0),r=0,e=0;break A}if(h=0,w=0,i[e+116>>2]<0)break f}i[e+4>>2]=i[e+4>>2]-1}h=0,w=0}if(!_){U2(0),e=j0(1)|0,A=j0(0)|0,U2(+(I|0)),r=j0(1)|0,j0(0)|0,N2(0,A|0),N2(1,e&2147483647|r&-2147483648),b4(k+112|0,+m1()),o=i[k+112>>2],v=i[k+116>>2],r=i[k+124>>2],e=i[k+120>>2];break A}if(e=D?p:t,A=h+(e<<2)|0,e=w+((D?W:u)<<2|e>>>30)|0,t=A-32|0,r=0-a|0,u=(A>>>0>>0?e+1|0:e)-(A>>>0<32)|0,e=u,(e|0)>0?e=1:e=r>>>0>>0&(e|0)>=0,e){i[23944]=68,W4(k+160|0,I),d2(k+144|0,i[k+160>>2],i[k+164>>2],i[k+168>>2],i[k+172>>2],-1,-1,-1,2147418111),d2(k+128|0,i[k+144>>2],i[k+148>>2],i[k+152>>2],i[k+156>>2],-1,-1,-1,2147418111),o=i[k+128>>2],v=i[k+132>>2],r=i[k+140>>2],e=i[k+136>>2];break A}if(e=a-226|0,r=e>>31,(u|0)>=(r|0)&e>>>0<=t>>>0|(r|0)<(u|0)){if((_|0)>=0)for(;s4(k+416|0,o,v,J,R,0,0,0,-1073807360),e=H7(o,v,J,R,1073610752),e=(e|0)>=0,s4(k+400|0,o,v,J,R,e?i[k+416>>2]:o,e?i[k+420>>2]:v,e?i[k+424>>2]:J,e?i[k+428>>2]:R),r=_<<1,_=r|e,e=t,t=e-1|0,u=u-!e|0,J=i[k+408>>2],R=i[k+412>>2],o=i[k+400>>2],v=i[k+404>>2],(r|0)>=0;);e=u-((a>>31)+(t>>>0>>0)|0)|0,r=(t-a|0)+32|0,e=r>>>0<32?e+1|0:e,r=r>>>0>>0&(e|0)<=0|(e|0)<0?(r|0)>0?r:0:S;f:{if((r|0)>=113){W4(k+384|0,I),p=i[k+392>>2],W=i[k+396>>2],z=i[k+384>>2],H=i[k+388>>2],h=0,e=0;break f}b4(k+352|0,M1(1,144-r|0)),W4(k+336|0,I),z=i[k+336>>2],H=i[k+340>>2],p=i[k+344>>2],W=i[k+348>>2],Qt(k+368|0,i[k+352>>2],i[k+356>>2],i[k+360>>2],i[k+364>>2],W),E=i[k+376>>2],d=i[k+380>>2],h=i[k+372>>2],e=i[k+368>>2]}A=!(_&1)&((fi(o,v,J,R,0,0,0,0)|0)!=0&(r|0)<32),Ji(k+320|0,A|_),d2(k+304|0,z,H,p,W,i[k+320>>2],i[k+324>>2],i[k+328>>2],i[k+332>>2]),r=e,s4(k+272|0,i[k+304>>2],i[k+308>>2],i[k+312>>2],i[k+316>>2],e,h,E,d),e=A,d2(k+288|0,z,H,p,W,e?0:o,e?0:v,e?0:J,e?0:R),s4(k+256|0,i[k+288>>2],i[k+292>>2],i[k+296>>2],i[k+300>>2],i[k+272>>2],i[k+276>>2],i[k+280>>2],i[k+284>>2]),C3(k+240|0,i[k+256>>2],i[k+260>>2],i[k+264>>2],i[k+268>>2],r,h,E,d),e=i[k+240>>2],A=i[k+244>>2],r=i[k+248>>2],h=i[k+252>>2],fi(e,A,r,h,0,0,0,0)||(i[23944]=68),$n(k+224|0,e,A,r,h,t),o=i[k+224>>2],v=i[k+228>>2],r=i[k+236>>2],e=i[k+232>>2];break A}i[23944]=68,W4(k+208|0,I),d2(k+192|0,i[k+208>>2],i[k+212>>2],i[k+216>>2],i[k+220>>2],0,0,0,65536),d2(k+176|0,i[k+192>>2],i[k+196>>2],i[k+200>>2],i[k+204>>2],0,0,0,65536),o=i[k+176>>2],v=i[k+180>>2],r=i[k+188>>2],e=i[k+184>>2]}i[C+16>>2]=o,i[C+20>>2]=v,i[C+24>>2]=e,i[C+28>>2]=r,B=k+432|0,t=i[C+24>>2],u=i[C+28>>2],h=i[C+16>>2],w=i[C+20>>2];break i}if(i[e+116>>2]<0)break e;i[e+4>>2]=i[e+4>>2]-1}n=e,o=r,E=A,A=0,k=B-8976|0,B=k,q=0-a|0,d=q-S|0;e:{A:{for(;;){if((o|0)!=48)f:{if((o|0)!=46)break e;if(e=i[n+4>>2],(e|0)==i[n+104>>2])break f;i[n+4>>2]=e+1,o=s[e|0];break A}else{e=i[n+4>>2],(e|0)!=i[n+104>>2]?(i[n+4>>2]=e+1,o=s[e|0]):o=I2(n),A=1;continue}break}o=I2(n)}if((o|0)==48){for(;;){e=t,t=e-1|0,u=u-!e|0,e=i[n+4>>2];A:{if((e|0)!=i[n+104>>2]){i[n+4>>2]=e+1,o=s[e|0];break A}o=I2(n)}if((o|0)!=48)break}A=1}D=1}i[k+784>>2]=0;e:{A:{e=(o|0)==46,r=o-48|0;f:{k:{n:{if(e|r>>>0<=9)for(;;){t:{if(e&1){if(!D){t=h,u=w,D=1;break t}e=!A;break n}if(e=w,h=h+1|0,w=h?e:e+1|0,(_|0)<=2044){y=(o|0)==48?y:h,e=(k+784|0)+(_<<2)|0,Z&&(r=(m(i[e>>2],10)+o|0)-48|0),i[e>>2]=r,A=1,r=Z+1|0,e=(r|0)==9,Z=e?0:r,_=e+_|0;break t}if((o|0)==48)break t;i[k+8960>>2]=i[k+8960>>2]|1,y=18396}e=i[n+4>>2];t:{if((e|0)!=i[n+104>>2]){i[n+4>>2]=e+1,o=s[e|0];break t}o=I2(n)}if(e=(o|0)==46,r=o-48|0,!(e|r>>>0<10))break}if(t=D?t:h,u=D?u:w,!(!A|(o&-33)!=69)){o=ln(n,E),e=w0,v=e;t:{if(o|(e|0)!=-2147483648)break t;if(!E)break f;if(o=0,v=0,i[n+116>>2]<0)break t;i[n+4>>2]=i[n+4>>2]-1}e=u+v|0,t=t+o|0,u=t>>>0>>0?e+1|0:e;break A}if(e=!A,(o|0)<0)break k}if(i[n+116>>2]<0)break k;i[n+4>>2]=i[n+4>>2]-1}if(!e)break A;i[23944]=28}a4(n,0,0),t=0,u=0,r=0,e=0;break e}if(e=i[k+784>>2],!e){U2(0),e=j0(1)|0,A=j0(0)|0,U2(+(I|0)),r=j0(1)|0,j0(0)|0,N2(0,A|0),N2(1,e&2147483647|r&-2147483648),b4(k,+m1()),t=i[k+8>>2],u=i[k+12>>2],r=i[k+4>>2],e=i[k>>2];break e}if(!(h>>>0>9&(w|0)>=0|(w|0)>0|((t|0)!=(h|0)|(u|0)!=(w|0))|(e>>>S|0?(S|0)<=30:0))){W4(k+48|0,I),Ji(k+32|0,e),d2(k+16|0,i[k+48>>2],i[k+52>>2],i[k+56>>2],i[k+60>>2],i[k+32>>2],i[k+36>>2],i[k+40>>2],i[k+44>>2]),t=i[k+24>>2],u=i[k+28>>2],r=i[k+20>>2],e=i[k+16>>2];break e}if(e=q>>>1|0,e>>>0>>0&(u|0)>=0|(u|0)>0){i[23944]=68,W4(k+96|0,I),d2(k+80|0,i[k+96>>2],i[k+100>>2],i[k+104>>2],i[k+108>>2],-1,-1,-1,2147418111),d2(k- -64|0,i[k+80>>2],i[k+84>>2],i[k+88>>2],i[k+92>>2],-1,-1,-1,2147418111),t=i[k+72>>2],u=i[k+76>>2],r=i[k+68>>2],e=i[k+64>>2];break e}if(e=a-226|0,r=t>>>0>>0,e=e>>31,r&(u|0)<=(e|0)|(e|0)>(u|0)){i[23944]=68,W4(k+144|0,I),d2(k+128|0,i[k+144>>2],i[k+148>>2],i[k+152>>2],i[k+156>>2],0,0,0,65536),d2(k+112|0,i[k+128>>2],i[k+132>>2],i[k+136>>2],i[k+140>>2],0,0,0,65536),t=i[k+120>>2],u=i[k+124>>2],r=i[k+116>>2],e=i[k+112>>2];break e}if(Z){if((Z|0)<=8){for(e=(k+784|0)+(_<<2)|0,n=i[e>>2];n=m(n,10),Z=Z+1|0,(Z|0)!=9;);i[e>>2]=n}_=_+1|0}Z=t;A:{if(t>>>0>17&(u|0)>=0|(u|0)>0|(y|0)>=9|(t|0)<(y|0))break A;if(!u&(t|0)==9){W4(k+192|0,I),Ji(k+176|0,i[k+784>>2]),d2(k+160|0,i[k+192>>2],i[k+196>>2],i[k+200>>2],i[k+204>>2],i[k+176>>2],i[k+180>>2],i[k+184>>2],i[k+188>>2]),t=i[k+168>>2],u=i[k+172>>2],r=i[k+164>>2],e=i[k+160>>2];break e}if((u|0)<=0&t>>>0<=8|(u|0)<0){W4(k+272|0,I),Ji(k+256|0,i[k+784>>2]),d2(k+240|0,i[k+272>>2],i[k+276>>2],i[k+280>>2],i[k+284>>2],i[k+256>>2],i[k+260>>2],i[k+264>>2],i[k+268>>2]),W4(k+224|0,i[(0-Z<<2)+56176>>2]),Bk(k+208|0,i[k+240>>2],i[k+244>>2],i[k+248>>2],i[k+252>>2],i[k+224>>2],i[k+228>>2],i[k+232>>2],i[k+236>>2]),t=i[k+216>>2],u=i[k+220>>2],r=i[k+212>>2],e=i[k+208>>2];break e}if(e=(m(Z,-3)+S|0)+27|0,r=i[k+784>>2],r>>>e|0&&(e|0)<=30)break A;W4(k+352|0,I),Ji(k+336|0,r),d2(k+320|0,i[k+352>>2],i[k+356>>2],i[k+360>>2],i[k+364>>2],i[k+336>>2],i[k+340>>2],i[k+344>>2],i[k+348>>2]),W4(k+304|0,i[(Z<<2)+56104>>2]),d2(k+288|0,i[k+320>>2],i[k+324>>2],i[k+328>>2],i[k+332>>2],i[k+304>>2],i[k+308>>2],i[k+312>>2],i[k+316>>2]),t=i[k+296>>2],u=i[k+300>>2],r=i[k+292>>2],e=i[k+288>>2];break e}for(;e=_,_=e-1|0,!i[(k+784|0)+(_<<2)>>2];);y=0,r=(Z|0)%9|0;A:{if(!r){r=0;break A}A=(u|0)<0?r+9|0:r;f:{if(!e){r=0,e=0;break f}for(t=i[(0-A<<2)+56176>>2],u=1e9/(t|0)|0,o=0,n=0,r=0;h=o,w=k+784|0,o=w+(n<<2)|0,_=i[o>>2],E=(_>>>0)/(t>>>0)|0,h=h+E|0,i[o>>2]=h,h=!h&(r|0)==(n|0),r=h?r+1&2047:r,Z=h?Z-9|0:Z,o=m(u,_-m(t,E)|0),n=n+1|0,(n|0)!=(e|0););if(!o)break f;i[w+(e<<2)>>2]=o,e=e+1|0}Z=(Z-A|0)+9|0}for(;;){n=(k+784|0)+(r<<2)|0,E=(Z|0)<36;A:{for(;;){if(!E&((Z|0)!=36|k0[n>>2]>=10384593))break A;for(_=e+2047|0,A=0;h=e,t=A,o=_&2047,_=(k+784|0)+(o<<2)|0,A=i[_>>2],e=A>>>3|0,A=A<<29,t=t+A|0,u=A>>>0>t>>>0?e+1|0:e,!u&t>>>0<1000000001?A=0:(e=t,A=K6(e,u,1e9,0),w=q0(A,w0,1e9,0),t=e-w|0,u=u-(w0+(e>>>0>>0)|0)|0),i[_>>2]=t,e=(r|0)==(o|0)||t|u?h:o,t=h-1&2047,e=(t|0)!=(o|0)?h:e,_=o-1|0,(r|0)!=(o|0););if(y=y-29|0,e=h,!!A)break}r=r-1&2047,(r|0)==(e|0)&&(o=(e+2046&2047)<<2,e=k+784|0,h=o+e|0,i[h>>2]=i[h>>2]|i[e+(t<<2)>>2],e=t),Z=Z+9|0,i[(k+784|0)+(r<<2)>>2]=A;continue}break}A:{f:for(;;){for(t=e+1&2047,u=(k+784|0)+((e-1&2047)<<2)|0;;){h=(Z|0)>45?9:1;k:{for(;;){A=r,n=0;n:{for(;;){t:{if(r=A+n&2047,(r|0)==(e|0)||(r=i[(k+784|0)+(r<<2)>>2],o=i[(n<<2)+56128>>2],r>>>0>>0))break t;if(r>>>0>o>>>0)break n;if(n=n+1|0,(n|0)!=4)continue}break}if((Z|0)!=36)break n;for(t=0,u=0,n=0,h=0,w=0;r=A+n&2047,(r|0)==(e|0)&&(e=e+1&2047,i[((e<<2)+k|0)+780>>2]=0),Ji(k+768|0,i[(k+784|0)+(r<<2)>>2]),d2(k+752|0,t,u,h,w,0,0,1342177280,1075633366),s4(k+736|0,i[k+752>>2],i[k+756>>2],i[k+760>>2],i[k+764>>2],i[k+768>>2],i[k+772>>2],i[k+776>>2],i[k+780>>2]),h=i[k+744>>2],w=i[k+748>>2],t=i[k+736>>2],u=i[k+740>>2],n=n+1|0,(n|0)!=4;);if(W4(k+720|0,I),d2(k+704|0,t,u,h,w,i[k+720>>2],i[k+724>>2],i[k+728>>2],i[k+732>>2]),h=i[k+712>>2],w=i[k+716>>2],t=0,u=0,o=i[k+704>>2],v=i[k+708>>2],E=y+113|0,n=E-a|0,Z=(n|0)<(S|0),r=Z?(n|0)>0?n:0:S,(r|0)<=112)break k;break A}if(y=h+y|0,r=e,(e|0)!=(A|0))break}for(w=1e9>>>h|0,_=-1<>2],o=o+(v>>>h|0)|0,i[n>>2]=o,o=!o&(r|0)==(A|0),r=o?r+1&2047:r,Z=o?Z-9|0:Z,n=m(w,_&v),A=A+1&2047,(A|0)!=(e|0););if(!n)continue;if((r|0)!=(t|0)){i[E+(e<<2)>>2]=n,e=t;continue f}i[u>>2]=i[u>>2]|1;continue}break}break}b4(k+656|0,M1(1,225-r|0)),Qt(k+688|0,i[k+656>>2],i[k+660>>2],i[k+664>>2],i[k+668>>2],w),z=i[k+696>>2],H=i[k+700>>2],J=i[k+688>>2],R=i[k+692>>2],b4(k+640|0,M1(1,113-r|0)),Sk(k+672|0,o,v,h,w,i[k+640>>2],i[k+644>>2],i[k+648>>2],i[k+652>>2]),t=i[k+672>>2],u=i[k+676>>2],p=i[k+680>>2],W=i[k+684>>2],C3(k+624|0,o,v,h,w,t,u,p,W),s4(k+608|0,J,R,z,H,i[k+624>>2],i[k+628>>2],i[k+632>>2],i[k+636>>2]),h=i[k+616>>2],w=i[k+620>>2],o=i[k+608>>2],v=i[k+612>>2]}_=A+4&2047;A:{if((_|0)==(e|0))break A;_=i[(k+784|0)+(_<<2)>>2];f:{if(_>>>0<=499999999){if(!_&(A+5&2047)==(e|0))break f;b4(k+496|0,+(I|0)*.25),s4(k+480|0,t,u,p,W,i[k+496>>2],i[k+500>>2],i[k+504>>2],i[k+508>>2]),p=i[k+488>>2],W=i[k+492>>2],t=i[k+480>>2],u=i[k+484>>2];break f}if((_|0)!=5e8){b4(k+592|0,+(I|0)*.75),s4(k+576|0,t,u,p,W,i[k+592>>2],i[k+596>>2],i[k+600>>2],i[k+604>>2]),p=i[k+584>>2],W=i[k+588>>2],t=i[k+576>>2],u=i[k+580>>2];break f}if(f0=+(I|0),(A+5&2047)==(e|0)){b4(k+528|0,f0*.5),s4(k+512|0,t,u,p,W,i[k+528>>2],i[k+532>>2],i[k+536>>2],i[k+540>>2]),p=i[k+520>>2],W=i[k+524>>2],t=i[k+512>>2],u=i[k+516>>2];break f}b4(k+560|0,f0*.75),s4(k+544|0,t,u,p,W,i[k+560>>2],i[k+564>>2],i[k+568>>2],i[k+572>>2]),p=i[k+552>>2],W=i[k+556>>2],t=i[k+544>>2],u=i[k+548>>2]}if((r|0)>111||(Sk(k+464|0,t,u,p,W,0,0,0,1073676288),fi(i[k+464>>2],i[k+468>>2],i[k+472>>2],i[k+476>>2],0,0,0,0)))break A;s4(k+448|0,t,u,p,W,0,0,0,1073676288),p=i[k+456>>2],W=i[k+460>>2],t=i[k+448>>2],u=i[k+452>>2]}s4(k+432|0,o,v,h,w,t,u,p,W),C3(k+416|0,i[k+432>>2],i[k+436>>2],i[k+440>>2],i[k+444>>2],J,R,z,H),h=i[k+424>>2],w=i[k+428>>2],o=i[k+416>>2],v=i[k+420>>2];A:{if((d-2|0)>=(E&2147483647)||(i[k+408>>2]=h,i[k+412>>2]=w&2147483647,i[k+400>>2]=o,i[k+404>>2]=v,d2(k+384|0,o,v,h,w,0,0,0,1073610752),A=H7(i[k+400>>2],i[k+404>>2],i[k+408>>2],i[k+412>>2],1081081856),e=(A|0)>=0,h=e?i[k+392>>2]:h,w=e?i[k+396>>2]:w,o=e?i[k+384>>2]:o,v=e?i[k+388>>2]:v,t=fi(t,u,p,W,0,0,0,0),y=e+y|0,(y+110|0)<=(d|0)&&!(Z&((r|0)!=(n|0)|(A|0)<0)&(t|0)!=0)))break A;i[23944]=68}$n(k+368|0,o,v,h,w,y),t=i[k+376>>2],u=i[k+380>>2],r=i[k+372>>2],e=i[k+368>>2]}i[C+40>>2]=t,i[C+44>>2]=u,i[C+32>>2]=e,i[C+36>>2]=r,B=k+8976|0,t=i[C+40>>2],u=i[C+44>>2],h=i[C+32>>2],w=i[C+36>>2];break i}u=0}i[f>>2]=h,i[f+4>>2]=w,i[f+8>>2]=t,i[f+12>>2]=u,B=C+48|0}function vr(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0;h=f+18548|0;i:{r:{e:{A:{f:{for(;;){v=i[f+18588>>2],o=i[v+132>>2];k:{n:{if(_=i[v+124>>2],Z=i[_+484>>2],n=1<>2];break n}if(u=i[_+488>>2],t=i[_+16872>>2],(u|0)<(r+n|0)|(t|0)>=(A|0))break n;t=1,p=e-1|0,n=1;t:{if((p|r)<0||(n=1,(e|0)>(Z|0))||(n=1,(r|0)>=(u|0))||(w=i[_+16876>>2],W=m(i[_+16892>>2],r>>w),C=i[v+140>>2],I=W+(e>>w)|0,w=W+(p>>w)|0,n=1,Q[C+m(I,24)>>1]!=Q[C+m(w,24)>>1]))break t;n=i[o+8484>>2],n=i[n+(I<<2)>>2]!=i[n+(w<<2)>>2]}w=r-1|0;t:{if((w|e)<0|(e|0)>=(Z|0)|(r|0)>(u|0)||(Z=i[_+16876>>2],u=e>>Z,C=i[v+140>>2],W=i[_+16892>>2],I=u+m(W,r>>Z)|0,Z=u+m(W,w>>Z)|0,Q[C+m(I,24)>>1]!=Q[C+m(Z,24)>>1]))break t;t=i[o+8484>>2],t=i[t+(I<<2)>>2]!=i[t+(Z<<2)>>2]}if(Z=0,!n){if(Z=i[v+168>>2],n=p>>Z,(n|0)<0||(u=i[v+172>>2],(u|0)<=(n|0)))break r;if(Z=r>>Z,(Z|0)<0|(Z|0)>=i[v+176>>2])break i;n=(i[v+160>>2]+m(n,3)|0)+m(m(u,Z),3)|0,Z=((s[n|0]|s[n+1|0]<<8)>>>6&3)>(k|0)}t:{if(t)n=0;else{if(t=i[v+168>>2],n=e>>t,(n|0)<0||(u=i[v+172>>2],(u|0)<=(n|0)))break r;if(t=w>>t,(t|0)<0|(t|0)>=i[v+176>>2])break t;n=(i[v+160>>2]+m(n,3)|0)+m(m(t,u),3)|0,n=((s[n|0]|s[n+1|0]<<8)>>>6&3)>(k|0)}n=!f2(h,(n+(i[f+18572>>2]+Z|0)|0)+2|0);break k}break i}n=(A|0)<=(t|0)}if(!s[o+26|0]|i[o+8268>>2]>(A|0)||(i[f+18500>>2]=0,i[f+18504>>2]=0),!s[i[f+18592>>2]+760|0]|i[o+8272>>2]>(A|0)||(i[f+18508>>2]=0),!n){if(A=A-1|0,k=k+1|0,vr(f,e,r,A,k),o=1<>2]&&vr(f,o,r,A,k),t=i[_+488>>2],(n|0)<(t|0)&&(vr(f,e,n,A,k),t=i[_+488>>2]),(o|0)>=i[_+484>>2])break f;if(e=o,r=n,(t|0)>(r|0))continue;break f}break}if(n=i[v+168>>2],o=A-n|0,(o|0)!=31)for(t=r>>n,o=1<>n,u=h+o|0,p=k<<6&192;;){for(n=o;h=(i[v+160>>2]+m(n,3)|0)+m(m(i[v+172>>2],t),3)|0,_=p|(s[h|0]|s[h+1|0]<<8)&65343,l[h|0]=_,l[h+1|0]=_>>>8,n=n+1|0,(u|0)>(n|0););if(t=t+1|0,!((Z|0)>(t|0)))break}if(p=B-80|0,B=p,t=f,Z=i[f+18592>>2],n=i[f+18588>>2],w=i[n+132>>2],I=i[n+124>>2],o=e,h=r,v=A,f=i[n+168>>2],e=A-f|0,(e|0)!=31)for(r=r>>f,e=1<>f,C=_+e|0;;){for(f=e;_=(i[n+160>>2]+m(f,3)|0)+m(m(i[n+172>>2],r),3)|0,u=(s[_|0]|s[_+1|0]<<8)&65528,l[_|0]=u,l[_+1|0]=u>>>8,f=f+1|0,(C|0)>(f|0););if(r=r+1|0,!((W|0)>(r|0)))break}if(e=i[n+168>>2],f=o>>e,(f|0)<0||(r=i[n+172>>2],(r|0)<=(f|0)))break A;if(e=h>>e,(e|0)<0|(e|0)>=i[n+176>>2])break e;if(f=(i[n+160>>2]+m(f,3)|0)+m(m(e,r),3)|0,e=(s[f|0]|s[f+1|0]<<8)&65528|A&7,l[f|0]=e,l[f+1|0]=e>>>8,e=i[n+248>>2],r=v-e|0,(r|0)!=31)for(f=h>>e,r=1<>e,_=_+r|0;;){for(e=r;l[(i[n+240>>2]+e|0)+m(i[n+252>>2],f)|0]=0,e=e+1|0,(_|0)>(e|0););if(f=f+1|0,!((A|0)>(f|0)))break}zk(t,o,h);k:{if(s[w+44|0]){if(f=f2(t+18548|0,i[t+18572>>2]+161|0),l[t+32|0]=f,!f)break k;if(f=i[n+168>>2],e=v-f|0,(e|0)!=31)for(r=h>>f,e=1<>f,w=A+e|0;;){for(f=e;A=(i[n+160>>2]+m(f,3)|0)+m(m(i[n+172>>2],r),3)|0,_=(s[A|0]|s[A+1|0]<<8)&63487|2048,l[A|0]=_,l[A+1|0]=_>>>8,f=f+1|0,(w|0)>(f|0););if(r=r+1|0,!((u|0)>(r|0)))break}if(e=i[n+148>>2],f=o>>e,(f|0)<0||(r=i[n+152>>2],(r|0)<=(f|0)))break A;if(e=h>>e,(e|0)<0|(e|0)>=i[n+156>>2])break e;l[((i[n+140>>2]+m(f,24)|0)+m(m(e,r),24)|0)+22|0]=1;break k}l[t+32|0]=0}u=1<>2]==2)break n;e=i[t+18588>>2],_=1,A=o-1|0,f=1;t:{if((A|h)<0||(r=i[e+124>>2],f=1,(o|0)>i[r+484>>2])||(f=1,(h|0)>=i[r+488>>2])||(f=i[r+16892>>2],r=i[r+16876>>2],w=m(f,h>>r),C=i[e+140>>2],W=w+(o>>r)|0,r=w+(A>>r)|0,f=1,Q[C+m(W,24)>>1]!=Q[C+m(r,24)>>1]))break t;f=i[i[e+132>>2]+8484>>2],f=i[f+(W<<2)>>2]!=i[f+(r<<2)>>2]}W=h-1|0;t:{if((W|o)<0||(r=i[e+124>>2],(o|0)>=i[r+484>>2]|(h|0)>i[r+488>>2])||(w=i[r+16876>>2],C=o>>w,J=i[e+140>>2],r=i[r+16892>>2],y=C+m(r,h>>w)|0,r=C+m(r,W>>w)|0,Q[J+m(y,24)>>1]!=Q[J+m(r,24)>>1]))break t;_=i[i[e+132>>2]+8484>>2],_=i[_+(y<<2)>>2]!=i[_+(r<<2)>>2]}if(w=0,r=0,!f){if(r=i[e+168>>2],f=A>>r,(f|0)<0||(A=i[e+172>>2],(A|0)<=(f|0)))break r;if(r=h>>r,(r|0)<0|(r|0)>=i[e+176>>2])break i;f=(i[e+160>>2]+m(f,3)|0)+m(m(r,A),3)|0,r=((s[f|0]|s[f+1|0]<<8)&768)==512}if(!_){if(A=i[e+168>>2],f=o>>A,(f|0)<0||(_=i[e+172>>2],(_|0)<=(f|0)))break r;if(A=W>>A,(A|0)<0|(A|0)>=i[e+176>>2])break i;f=(i[e+160>>2]+m(f,3)|0)+m(m(A,_),3)|0,w=((s[f|0]|s[f+1|0]<<8)&768)==512}if(f=t+18548|0,f2(f,((i[t+18572>>2]+r|0)+w|0)+5|0)&255){e=16;t:{if(i[i[t+18592>>2]+812>>2]<2||!f2(f,i[t+18572>>2]+148|0)||(e=48,i[i[t+18592>>2]+812>>2]<3))break t;for(e=1;x1(f)&&(e=e+1|0,(e|0)<(i[i[t+18592>>2]+812>>2]-1|0)););e=e<<5|16}if(l[t+26|0]=s[t+26|0]&15|e,e=i[n+168>>2],f=o>>e,(f|0)<0||(r=i[n+172>>2],(r|0)<=(f|0)))break A;if(e=h>>e,(e|0)<0|(e|0)>=i[n+176>>2])break e;if(f=(i[n+160>>2]+m(f,3)|0)+m(m(e,r),3)|0,e=(s[f|0]|s[f+1|0]<<8)&65479,l[f|0]=e,l[f+1|0]=e>>>8,f=i[n+168>>2],e=v-f|0,(e|0)!=31)for(r=h>>f,e=1<>f,_=f+e|0;;){for(e=f;A=(i[n+160>>2]+m(e,3)|0)+m(m(i[n+172>>2],r),3)|0,k=(s[A|0]|s[A+1|0]<<8)&64767|512,l[A|0]=k,l[A+1|0]=k>>>8,e=e+1|0,(_|0)>(e|0););if(r=r+1|0,!((v|0)>(r|0)))break}nk(i[t+18584>>2],i[t+18592>>2],i[t+18588>>2],t+16|0,o,h,0,0,u,u,u,0);break k}if(A=0,i[Z+28>>2]==2)break n;A=!f2(f,i[t+18572>>2]+149|0)}if(f=i[n+168>>2],e=v-f|0,(e|0)!=31)for(r=h>>f,e=1<>f,C=f+e|0;;){for(e=f;_=(i[n+160>>2]+m(e,3)|0)+m(m(i[n+172>>2],r),3)|0,Z=W|(s[_|0]|s[_+1|0]<<8)&64767,l[_|0]=Z,l[_+1|0]=Z>>>8,e=e+1|0,(C|0)>(e|0););if(r=r+1|0,!((w|0)>(r|0)))break}Z=!A;n:{t:{if(A){_=i[i[t+18588>>2]+124>>2],f=0,r=t+18548|0;o:{if(f2(r,i[t+18572>>2]+8|0))break o;e=f2(r,i[t+18572>>2]+9|0);u:{l:{if((v|0)>i[_+16872>>2]){if(f=e?1:2,!s[_+8798|0]||f2(r,i[t+18572>>2]+11|0))break o;if(f=x1(r),!(!e|!f)){f=5;break o}if(!(f|!e)){f=4;break o}if(f|e)break l;f=6;break o}if(f=1,e)break o;if((v|0)!=3)break u;f=2;break o}if(!(!f|e)){f=7;break o}C0(9349,14036,1774,11286),P()}f=3-f2(r,i[t+18572>>2]+10|0)|0}break t}if(e=0,_=0,(v|0)!=i[I+16872>>2])break n;f=f2(t+18548|0,i[t+18572>>2]+8|0)?0:3}e=f,_=(f|0)==3&Z}if(r=i[n+168>>2],f=o>>r,(f|0)<0||(Z=i[n+172>>2],(Z|0)<=(f|0)))break A;if(r=h>>r,(r|0)<0|(r|0)>=i[n+176>>2])break e;f=(i[n+160>>2]+m(f,3)|0)+m(m(r,Z),3)|0,r=(s[f|0]|s[f+1|0]<<8)&65479|e<<3&56,l[f|0]=r,l[f+1|0]=r>>>8;n:{if(!A){t:{if(!s[I+8800|0]|e|((v|0)>2]|(v|0)>i[I+16960>>2])||(C=t+18548|0,!t3(C)))break t;if(f=i[n+168>>2],e=v-f|0,(e|0)!=31)for(r=h>>f,e=1<>f,Z=A+e|0;;){for(f=e;A=(i[n+160>>2]+m(f,3)|0)+m(m(i[n+172>>2],r),3)|0,k=(s[A|0]|s[A+1|0]<<8)&64511|1024,l[A|0]=k,l[A+1|0]=k>>>8,f=f+1|0,(Z|0)>(f|0););if(r=r+1|0,!((_|0)>(r|0)))break}if(e=i[n+148>>2],f=o>>e,(f|0)<0||(r=i[n+152>>2],(r|0)<=(f|0)))break A;if(e=h>>e,(e|0)<0|(e|0)>=i[n+156>>2])break e;l[((i[n+140>>2]+m(f,24)|0)+m(m(e,r),24)|0)+22|0]=1,f=i[t+18552>>2],i[p+48>>2]=f,e=i[t+18556>>2],w=0,i[p+64>>2]=0,i[p+56>>2]=0,i[p+60>>2]=0,i[p+52>>2]=e-f,f=i[t+18588>>2],e=i[f+40>>2],r=m(e,h),A=i[f+4>>2],k=i[f+124>>2],f=l[k+8801|0],k=i[k+16832>>2];o:{if((k|0)>=9){if((v|0)==31)break o;for(k=k-f|0,n=(k|0)>0?k:0,r=A+(r+o<<1)|0;;){for(A=r+(m(e,w)<<1)|0,k=0;f0=A+(k<<1)|0,n0=u0(p+48|0,f)<>1]=n0,k=k+1|0,(u|0)!=(k|0););if(w=w+1|0,(u|0)==(w|0))break}break o}if((v|0)==31)break o;for(k=k-f|0,n=(k|0)>0?k:0,r=o+(r+A|0)|0;;){for(A=r+m(e,w)|0,k=0;f0=A+k|0,n0=u0(p+48|0,f)<>2],f=i[w+124>>2];o:{if(!i[f+16848>>2])break o;if(e=i[f+16852>>2],v=(o|0)/(e|0)|0,r=i[f+16856>>2],_=(u|0)/(r|0)|0,k=(u|0)/(e|0)|0,A=i[w+44>>2],W=m(A,(h|0)/(r|0)|0),Z=i[w+8>>2],e=l[f+8802|0],f=i[f+16840>>2],(f|0)>=9){if(n=0,f=f-e|0,r=(f|0)>0?f:0,f=v+W<<1,!((k|0)<=0|(_|0)<=0)){for(v=f+Z|0;;){for(Z=v+(m(A,n)<<1)|0,f=0;f0=Z+(f<<1)|0,n0=u0(p+48|0,e)<>1]=n0,f=f+1|0,(k|0)!=(f|0););if(n=n+1|0,(_|0)==(n|0))break}w=i[t+18588>>2],f=i[w+124>>2],e=l[f+8802|0],r=i[f+16840>>2]-e|0,r=(r|0)>0?r:0,A=i[w+44>>2],k=i[f+16856>>2],n=i[f+16852>>2],f=m(A,(h|0)/(k|0)|0)+((o|0)/(n|0)|0)<<1,_=(u|0)/(k|0)|0,k=(u|0)/(n|0)|0}if((_|0)<=0|(k|0)<=0)break o;for(o=i[w+12>>2]+f|0,n=0;;){for(h=o+(m(A,n)<<1)|0,f=0;f0=h+(f<<1)|0,n0=u0(p+48|0,e)<>1]=n0,f=f+1|0,(k|0)!=(f|0););if(n=n+1|0,(_|0)==(n|0))break}break o}if(n=0,f=f-e|0,r=(f|0)>0?f:0,!((k|0)<=0|(_|0)<=0)){for(v=(Z+W|0)+v|0;;){for(Z=v+m(A,n)|0,f=0;f0=f+Z|0,n0=u0(p+48|0,e)<>2],f=i[w+124>>2],e=l[f+8802|0],r=i[f+16840>>2]-e|0,r=(r|0)>0?r:0,A=i[f+16852>>2],v=(o|0)/(A|0)|0,f=i[f+16856>>2],_=(u|0)/(f|0)|0,k=(u|0)/(A|0)|0,A=i[w+44>>2],W=m(A,(h|0)/(f|0)|0)}if((_|0)<=0|(k|0)<=0)break o;for(o=(i[w+12>>2]+W|0)+v|0,n=0;;){for(h=o+m(A,n)|0,f=0;f0=f+h|0,n0=u0(p+48|0,e)<>2]=i[p+48>>2],Y6(C);break k}if(A=(e|0)==3,C=A?(u|0)/2|0:u,(v|0)!=31)for(r=t+18548|0,e=0,w=0;;){for(f=0;f0=(p+48|0)+(e<<2)|0,n0=f2(r,i[t+18572>>2]+12|0),i[f0>>2]=n0,e=e+1|0,f=f+C|0,(u|0)>(f|0););if(w=w+C|0,!((u|0)>(w|0)))break}k=o-1|0,f=0;t:{if((k|h)<0||(e=i[n+124>>2],f=0,(o|0)>i[e+484>>2])||(f=0,(h|0)>=i[e+488>>2])||(f=i[e+16892>>2],e=i[e+16876>>2],r=m(f,h>>e),w=i[n+140>>2],Z=r+(o>>e)|0,e=r+(k>>e)|0,f=0,Q[w+m(Z,24)>>1]!=Q[w+m(e,24)>>1]))break t;f=i[i[n+132>>2]+8484>>2],f=i[f+(Z<<2)>>2]==i[f+(e<<2)>>2]}Z=f,k=h-1|0;t:{if((k|o)<0||(f=i[n+124>>2],(o|0)>=i[f+484>>2]|(h|0)>i[f+488>>2])||(e=i[f+16876>>2],r=o>>e,W=i[n+140>>2],f=i[f+16892>>2],w=r+m(f,h>>e)|0,f=r+m(f,k>>e)|0,Q[W+m(w,24)>>1]!=Q[W+m(f,24)>>1]))break t;e=i[i[n+132>>2]+8484>>2],d=i[e+(w<<2)>>2]==i[e+(f<<2)>>2]}if(k=v-A|0,(v|0)!=31)for(H=t+18548|0,J=0;;){for(y=h+J|0,A0=(J|0)>0|d,W=0;;){R=a<<2,S=i[R+(p+48|0)>>2];t:{if(S){w=Q6(H,2),f=p+32|0;break t}w=d4(H,5),f=p+16|0}i[f+R>>2]=w,r=o+W|0,z=r,f=i[I+16944>>2],w=m(i[I+16948>>2],y>>f)+(r>>f)|0,A=w,D=i[n+124>>2],e=1,f=1;t:{if(!((W|0)>0|Z))break t;if(f=i[n+168>>2],r=r-1>>f,(r|0)<0||(q=i[n+172>>2],(q|0)<=(r|0)))break r;if(E=y>>f,(E|0)<0|(E|0)>=i[n+176>>2])break i;if(f=1,s[((i[n+160>>2]+m(r,3)|0)+m(m(E,q),3)|0)+1|0]&7)break t;f=s[(A+i[n+200>>2]|0)-1|0]}t:{if(!A0)break t;if(E=i[n+168>>2],r=z>>E,(r|0)<0||(z=i[n+172>>2],(z|0)<=(r|0)))break r;if(E=y-1>>E,(E|0)<0|(E|0)>=i[n+176>>2])break i;if(s[((i[n+160>>2]+m(r,3)|0)+m(m(E,z),3)|0)+1|0]&7|(y|0)==(y&-1<>2]))break t;e=s[i[n+200>>2]+(A-i[D+16948>>2]|0)|0]}t:{if((f|0)==(e|0)){if(f>>>0<=1){i[p+12>>2]=26,i[p+4>>2]=0,i[p+8>>2]=1;break t}i[p+4>>2]=f,i[p+12>>2]=(f-1&31)+2,i[p+8>>2]=(f+29&31)+2;break t}if(i[p+8>>2]=e,i[p+4>>2]=f,!(!f|!e)){i[p+12>>2]=0;break t}if(!((f|0)==1|(e|0)==1)){i[p+12>>2]=1;break t}i[p+12>>2]=26}t:{if((S|0)!=1){f=i[p+4>>2],r=i[p+8>>2],e=(f|0)>(r|0)?f:r,f=(f|0)<(r|0)?f:r,r=i[p+12>>2];o:{if((f|0)<=(r|0)){A=f,f=r;break o}i[p+12>>2]=f,i[p+4>>2]=r,A=r}o:{if((f|0)>=(e|0)){r=f,f=e;break o}i[p+8>>2]=f,r=e}e=f,f=i[R+(p+16|0)>>2],f=((f|0)>=(A|0))+f|0,f=((e|0)<=(f|0))+f|0,A=((f|0)>=(r|0))+f|0;break t}A=i[(p+4|0)+(i[R+(p+32|0)>>2]<<2)>>2]}if(R=i[n+208>>2],f=k-R|0,(f|0)!=31)for(D=1<>2]+e|0)|0)+m(i[n+212>>2],f)|0]=A,l[((w+(i[n+200>>2]+e|0)|0)+m(i[n+212>>2],f)|0)+1|0]=A,e=e+2|0,r=r+2|0,(E|0)!=(r|0););if((k|0)==(R|0)&&(l[(w+(i[n+200>>2]+e|0)|0)+m(i[n+212>>2],f)|0]=A),f=f+1|0,(D|0)==(f|0))break}if(a=a+1|0,W=W+C|0,!((u|0)>(W|0)))break}if(J=C+J|0,!((u|0)>(J|0)))break}t:switch(i[I+16848>>2]){case 3:if((v|0)==31)break n;w=t+18548|0,W=0;o:{for(;;){f=h+W|0,e=0;u:{for(;;){if(f2(w,i[t+18572>>2]+13|0)?r=d4(w,2):r=4,Z=e+o|0,y=i[n+208>>2],A=Z>>y,(A|0)<0||(J=i[n+212>>2],(J|0)<=(A|0)))break u;if(y=f>>y,(y|0)<0|(y|0)>=i[n+216>>2])break o;if(A=s[(A+i[n+200>>2]|0)+m(y,J)|0],A=A>>>0<=34?A:0,y=(r|0)==4,y||(r=i[(r<<2)+45808>>2],A=(r|0)==(A|0)?34:r),Q7(n,Z,f,k,A,y),e=e+C|0,!((u|0)>(e|0)))break}if(W=W+C|0,(u|0)>(W|0))continue;break n}break}break r}break i;case 0:break n;default:break t}if(f=t+18548|0,f2(f,i[t+18572>>2]+13|0)?f=d4(f,2):f=4,r=i[n+208>>2],e=o>>r,(e|0)<0||(A=i[n+212>>2],(A|0)<=(e|0)))break r;if(r=h>>r,(r|0)<0|(r|0)>=i[n+216>>2])break i;e=s[(e+i[n+200>>2]|0)+m(r,A)|0],e=e>>>0<=34?e:0,(f|0)!=4&&(r=i[(f<<2)+45808>>2],e=(e|0)==(r|0)?34:r),i[I+16848>>2]==2&&(e=s[e+45824|0]),Q7(n,o,h,v,e,(f|0)==4);break n}t:{o:{u:switch(e|0){case 1:f=(u|0)/2|0,d1(t,o,h,0,0,u,f,k,u,0),d1(t,o,h,0,f,u,f,k,u,1);break o;case 2:f=(u|0)/2|0,d1(t,o,h,0,0,f,u,k,u,0),d1(t,o,h,f,0,f,u,k,u,1);break o;case 4:f=(u|0)/4|0,d1(t,o,h,0,0,u,f,k,u,0),d1(t,o,h,0,f,u,(3<>2]+153|0))break k}f=i[I+16848>>2]!=0,n6(t,o,h,o,h,o,h,v,0,0,i[I+628>>2],_,1,f,f);break k}f=i[I+16848>>2]!=0,n6(t,o,h,o,h,o,h,v,0,0,_+i[I+632>>2]|0,_,0,f,f)}B=p+80|0}return}C0(3758,8453,128,3372),P()}C0(3720,8453,129,3372),P()}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function ok(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;u=B-112|0,B=u,v=Ri(i[e+48>>2],17067),o=U(360),i[o+16>>2]=0,i[o+20>>2]=0,i[o>>2]=72656,i[o+4>>2]=0,i[o+8>>2]=0,l[o+152|0]=0,i[o+36>>2]=v,i[o+32>>2]=e,i[o+28>>2]=34648,i[o+40>>2]=0,i[o+44>>2]=0,i[o+52>>2]=0,i[o+56>>2]=0,i[o+68>>2]=0,i[o+72>>2]=0,i[o+80>>2]=0,i[o+84>>2]=0,i[o+156>>2]=0,i[o+160>>2]=0,i[o+24>>2]=0,X[o+48>>1]=0,X[o+58>>1]=0,X[o+60>>1]=0,X[o+62>>1]=0,X[o+64>>1]=0,l[o+76|0]=0,l[o+88|0]=0,i[o+204>>2]=0,i[o+196>>2]=0,i[o+200>>2]=0,i[o+188>>2]=0,i[o+192>>2]=0,i[o+180>>2]=0,i[o+184>>2]=0,i[o+172>>2]=0,i[o+176>>2]=0,i[o+164>>2]=0,i[o+168>>2]=0,i[o+212>>2]=0,i[o+216>>2]=0,l[o+208|0]=1,l[o+217|0]=0,l[o+218|0]=0,l[o+219|0]=0,l[o+220|0]=0,l[o+221|0]=0,l[o+222|0]=0,l[o+223|0]=0,l[o+224|0]=0,i[o+232>>2]=0,i[o+236>>2]=0,i[o+240>>2]=0,i[o+244>>2]=0,i[o+248>>2]=0,i[o+252>>2]=0,i[o+256>>2]=0,i[o+260>>2]=0,i[o+264>>2]=0,i[o+268>>2]=0,l[o+272|0]=0,B0(o+280|0,0,80),i[o+296>>2]=0,i[o+300>>2]=0,l[o+292|0]=1,i[o+304>>2]=0,i[o+308>>2]=0,i[o+312>>2]=0,i[o+316>>2]=0,i[o+328>>2]=0,i[o+332>>2]=0,i[o+320>>2]=0,i[o+324>>2]=1072693248,i[o+336>>2]=0,i[o+340>>2]=0,i[o+344>>2]=0,i[o+348>>2]=0,i[o+352>>2]=0,i[o+96>>2]=0,i[o+100>>2]=0,i[o+104>>2]=0,i[o+108>>2]=0,i[o+112>>2]=0,i[o+116>>2]=0,i[o+120>>2]=0,i[o+124>>2]=0,i[o+128>>2]=0,i[o+132>>2]=0,i[o+136>>2]=0,i[o+140>>2]=0,i[o+144>>2]=0,i[o+148>>2]=0,i[t>>2]=o+16,h=i[t+4>>2],i[t+4>>2]=o;i:{if(!h||(o=i[h+4>>2],i[h+4>>2]=o-1,o))break i;V[i[i[h>>2]+8>>2]](h),g(h)}o=i[e+32>>2];i:{if(o>>>0>2]){i[o>>2]=i[t>>2],h=i[t+4>>2],i[o+4>>2]=h,h&&(i[h+4>>2]=i[h+4>>2]+1),o=o+8|0;break i}o=Q2(e+28|0,t)}i[e+32>>2]=o,o=i[e+20>>2];i:{r:{if(!o){w=e+20|0,h=w;break r}for(;;){if(h=o,w=i[o+16>>2],w>>>0>v>>>0){if(w=o,o=i[o>>2],o)continue;break r}if(w>>>0>=v>>>0)break i;if(o=i[h+4>>2],!o)break}w=h+4|0}o=U(28),i[o+20>>2]=0,i[o+24>>2]=0,i[o+16>>2]=v,i[o+8>>2]=h,i[o>>2]=0,i[o+4>>2]=0,i[w>>2]=o,h=o,_=i[i[e+16>>2]>>2],_&&(i[e+16>>2]=_,h=i[w>>2]),D1(i[e+20>>2],h),i[e+24>>2]=i[e+24>>2]+1}w=i[t>>2],h=i[t+4>>2],h&&(i[h+4>>2]=i[h+4>>2]+1),i[o+20>>2]=w,t=i[o+24>>2],i[o+24>>2]=h;i:{if(!t||(o=i[t+4>>2],i[t+4>>2]=o-1,o))break i;V[i[i[t>>2]+8>>2]](t),g(t)}t=i[r>>2],i[u+108>>2]=i[t+32>>2],i[u+104>>2]=i[t+36>>2],$r(u+96|0,r,i[k+4>>2]),t=i[A>>2];i:{if(i[t>>2]>=2){V[i[t+108>>2]](i[A+4>>2],u+108|0,u+104|0);break i}V[i[t+96>>2]](u+108|0,u+104|0)}i[u+88>>2]=0,i[u+92>>2]=0;i:{r:{e:{A:{if(w=i[u+108>>2],t=i[r>>2],o=i[u+104>>2],!((w|0)!=i[t+32>>2]|(o|0)!=i[t+36>>2])){if(o=i[t+44>>2],t=i[t+48>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),p6(w,o,t,i[k+4>>2]))break A;w=i[u+108>>2],o=i[u+104>>2]}i[u+36>>2]=i[u+96>>2],t=i[u+100>>2],i[u+40>>2]=t,t&&(i[t+4>>2]=i[t+4>>2]+1),N8(u+76|0,r,w,o,u+36|0,0,k+16|0),t=i[u+76>>2],o=i[u+80>>2],i[u+76>>2]=0,i[u+80>>2]=0,r=i[u+92>>2],i[u+88>>2]=t,i[u+92>>2]=o;f:{if(!r||(t=i[r+4>>2],i[r+4>>2]=t-1,t||(V[i[i[r>>2]+8>>2]](r),g(r)),r=i[u+80>>2],!r)||(t=i[r+4>>2],i[r+4>>2]=t-1,t))break f;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[u+40>>2];f:{if(!r||(t=i[r+4>>2],i[r+4>>2]=t-1,t))break f;V[i[i[r>>2]+8>>2]](r),g(r)}if(i[u+88>>2])break e;if(l[u+76|0]=0,l[u+87|0]=0,r0(f,4,3003,u+76|0),l[u+87|0]>=0)break r;G(i[u+76>>2]);break r}if(o=i[r>>2],t=i[r+4>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),i[u+88>>2]=o,r=i[u+92>>2],i[u+92>>2]=t,!r||(t=i[r+4>>2],i[r+4>>2]=t-1,t))break e;V[i[i[r>>2]+8>>2]](r),g(r)}e:{A:switch(n-1|0){case 0:case 3:break A;default:break e}r=i[u+88>>2],t=i[r+52>>2],r=i[r+56>>2];A:{f:{k:{if(!r){if(!t)break f;w=i[e+48>>2],i[u+80>>2]=0,i[u+76>>2]=t;break k}if(i[r+4>>2]=i[r+4>>2]+1,!t)break f;w=i[e+48>>2],i[u+80>>2]=r,i[u+76>>2]=t,i[r+4>>2]=i[r+4>>2]+1}p8(w,v,u+76|0),t=i[u+80>>2];k:{if(!t||(o=i[t+4>>2],i[t+4>>2]=o-1,o))break k;V[i[i[t>>2]+8>>2]](t),g(t)}if(!s[k+3|0]|s[k|0]<3)break A}if(o=i[e+48>>2],i[u+76>>2]=i[u+96>>2],t=i[u+100>>2],i[u+80>>2]=t,t&&(i[t+4>>2]=i[t+4>>2]+1),p8(o,v,u+76|0),t=i[u+80>>2],!t||(o=i[t+4>>2],i[t+4>>2]=o-1,o))break A;V[i[i[t>>2]+8>>2]](t),g(t)}if(!r||(t=i[r+4>>2],i[r+4>>2]=t-1,t))break e;V[i[i[r>>2]+8>>2]](r),g(r)}e:{A:{f:{k:{if(!s[k+1|0]||!H2(i[u+88>>2],6))break k;i[u+36>>2]=0,i[u+40>>2]=0,s6(u+76|0,u+88|0),t=i[u+76>>2],o=i[u+80>>2],i[u+76>>2]=0,i[u+80>>2]=0,r=i[u+40>>2],i[u+36>>2]=t,i[u+40>>2]=o;n:{if(!r||(t=i[r+4>>2],i[r+4>>2]=t-1,t||(V[i[i[r>>2]+8>>2]](r),g(r)),r=i[u+80>>2],!r)||(t=i[r+4>>2],i[r+4>>2]=t-1,t))break n;V[i[i[r>>2]+8>>2]](r),g(r)}if(i[u+24>>2]=0,i[u+28>>2]=0,ok(f,e,u+36|0,A,k,2,u+24|0),i[f>>2])break f;t=i[i[u+24>>2]+20>>2],o=i[e+48>>2],r=U(4),i[u+76>>2]=r,h=r+4|0,i[u+84>>2]=h,i[r>>2]=v,i[u+80>>2]=h,P1(o,t,1635088492,u+76|0),r=i[u+76>>2],r&&(i[u+80>>2]=r,G(r)),h=i[i[u+24>>2]+20>>2],w=i[e+48>>2],r=U(48),i[u+76>>2]=r,i[u+80>>2]=43,i[u+84>>2]=-2147483600,t=s[14658]|s[14659]<<8|(s[14660]<<16|s[14661]<<24),l[r+39|0]=t,l[r+40|0]=t>>>8,l[r+41|0]=t>>>16,l[r+42|0]=t>>>24,t=s[14655]|s[14656]<<8|(s[14657]<<16|s[14658]<<24),o=s[14651]|s[14652]<<8|(s[14653]<<16|s[14654]<<24),l[r+32|0]=o,l[r+33|0]=o>>>8,l[r+34|0]=o>>>16,l[r+35|0]=o>>>24,l[r+36|0]=t,l[r+37|0]=t>>>8,l[r+38|0]=t>>>16,l[r+39|0]=t>>>24,t=s[14647]|s[14648]<<8|(s[14649]<<16|s[14650]<<24),o=s[14643]|s[14644]<<8|(s[14645]<<16|s[14646]<<24),l[r+24|0]=o,l[r+25|0]=o>>>8,l[r+26|0]=o>>>16,l[r+27|0]=o>>>24,l[r+28|0]=t,l[r+29|0]=t>>>8,l[r+30|0]=t>>>16,l[r+31|0]=t>>>24,t=s[14639]|s[14640]<<8|(s[14641]<<16|s[14642]<<24),o=s[14635]|s[14636]<<8|(s[14637]<<16|s[14638]<<24),l[r+16|0]=o,l[r+17|0]=o>>>8,l[r+18|0]=o>>>16,l[r+19|0]=o>>>24,l[r+20|0]=t,l[r+21|0]=t>>>8,l[r+22|0]=t>>>16,l[r+23|0]=t>>>24,t=s[14631]|s[14632]<<8|(s[14633]<<16|s[14634]<<24),o=s[14627]|s[14628]<<8|(s[14629]<<16|s[14630]<<24),l[r+8|0]=o,l[r+9|0]=o>>>8,l[r+10|0]=o>>>16,l[r+11|0]=o>>>24,l[r+12|0]=t,l[r+13|0]=t>>>8,l[r+14|0]=t>>>16,l[r+15|0]=t>>>24,t=s[14623]|s[14624]<<8|(s[14625]<<16|s[14626]<<24),o=s[14619]|s[14620]<<8|(s[14621]<<16|s[14622]<<24),l[r|0]=o,l[r+1|0]=o>>>8,l[r+2|0]=o>>>16,l[r+3|0]=o>>>24,l[r+4|0]=t,l[r+5|0]=t>>>8,l[r+6|0]=t>>>16,l[r+7|0]=t>>>24,l[r+43|0]=0,_6(w,h,u+76|0),l[u+87|0]<0&&G(i[u+76>>2]);n:{if(s[i[u+88>>2]+40|0]!=1||(t=i[e+48>>2],o=i[i[u+24>>2]+20>>2],r=U(4),i[u+76>>2]=r,h=r+4|0,i[u+84>>2]=h,i[r>>2]=o,i[u+80>>2]=h,P1(t,v,1886545261,u+76|0),r=i[u+76>>2],!r))break n;i[u+80>>2]=r,G(r)}l[f+19|0]<0&&G(i[f+8>>2]),r=i[u+28>>2];n:{if(!r||(t=i[r+4>>2],i[r+4>>2]=t-1,t))break n;V[i[i[r>>2]+8>>2]](r),g(r)}if(r=i[u+40>>2],!r||(t=i[r+4>>2],i[r+4>>2]=t-1,t))break k;V[i[i[r>>2]+8>>2]](r),g(r)}l[u+84|0]=0,l[u+85|0]=0,l[u+86|0]=0,l[u+87|0]=0,l[u+77|0]=0,l[u+78|0]=0,l[u+79|0]=0,l[u+80|0]=0,l[u+81|0]=0,l[u+82|0]=0,l[u+83|0]=0,l[u+84|0]=0,l[u+76|0]=1,r=u+56|0,o=U0(i[u+88>>2],0),t=i[i[u+88>>2]+36>>2],h=(o|0)<11,w=h&&(t|0)==3?1:2,Z=h?t>>>0>=2?w:0:w,h=y4(i[u+88>>2],0),w=F4(i[u+88>>2],0),_=m(h,w);k:{if(!((h|0)>8192|(w|0)>4352)&&(p=13,(_|0)<8912897))break k;p=(h|0)>=16385||(w|0)>=8705?31:(_|0)<35651585?17:31}l[u+78|0]=p,l[u+77|0]=Z,l[u+82|0]=!t,l[u+81|0]=o>>>0>11,l[u+80|0]=o>>>0>8,o=t<<3,h=t>>>0<4,l[u+83|0]=((h?16908801>>>o|0:0)&3)>>>1,l[u+85|0]=((t|0)!=1)<<1,l[u+84|0]=((h?16843265>>>o|0:0)&3)>>>1,t=i[19565],i[r>>2]=i[19564],i[r+4>>2]=t,r=r+8|0;k:{if(l[78275]>=0){t=i[19567],i[r>>2]=i[19566],i[r+4>>2]=t,i[r+8>>2]=i[19568];break k}_0(r,i[19566],i[19567])}l[u+75|0]<0&&G(i[u+64>>2]),i[u+52>>2]=0,r=i[u+88>>2],t=i[u+92>>2];k:{if(!t){i[u+52>>2]=0,i[u+48>>2]=r;break k}if(i[t+4>>2]=i[t+4>>2]+1,i[u+48>>2]=r,r=i[u+52>>2],i[u+52>>2]=t,!r||(t=i[r+4>>2],i[r+4>>2]=t-1,t))break k;V[i[i[r>>2]+8>>2]](r),g(r)}if(V[i[i[A>>2]+100>>2]](u+36|0,i[A+4>>2],u+48|0,n),n=i[u+36>>2],n)break A;for(;;){k:{V[i[i[A>>2]+104>>2]](u+24|0,i[A+4>>2],u+20|0,u+16|0,0),t=u+76|0,n=0,p=B-48|0,B=p,h=w6(p+16|0,i[u+20>>2],i[u+16>>2]),r=i[h+8>>2],o=r>>31<<3|r>>>29,w=i[h+24>>2],r=w+(r<<3)|0,_=(w>>31)+o|0,_=r>>>0>>0?_+1|0:_;n:{if(!r&(_|0)<=0|(_|0)<0)break n;t:{for(;;){if(p2(h,1),Z=g0(h,4),r=g0(h,1),o=g0(h,1),p2(h,1),r&&p2(h,8),o){r=g0(h,8),o=r&127,w=0;o:{if(!(r&128)||(r=g0(h,8),o=o|r<<7&16256,!(r&128))||(r=g0(h,8),o=o|r<<14&2080768,!(r&128))||(r=g0(h,8),o=o|r<<21&266338304,!(r&128))||(r=g0(h,8),_=r>>>4|0,o=o|r<<28&-268435456,w=w|_&7,!(r&128))||(r=g0(h,8),w=w|r<<3&1016,!(r&128))||(r=g0(h,8),w=w|r<<10&130048,!(r&128)))break o;w=w|g0(h,8)<<17&16646144}if((Z|0)==1)break t;if(!w&o>>>0>2147483647|w)break n;if(G7(h,o),r=i[h+24>>2],o=r,w=r>>31,r=i[h+8>>2],_=r>>31<<3|r>>>29,Z=r<<3,o=Z+o|0,r=w+_|0,r=o>>>0>>0?r+1|0:r,!!o&(r|0)>=0|(r|0)>0)continue;break n}break}if((Z|0)!=1)break n}C=t,I=g0(h,3),l[C+1|0]=I,g0(h,1),Z=g0(h,1);t:{if(Z){r=g0(h,5),l[t+3|0]=0,l[t+2|0]=r;break t}o:{u:{if(!g0(h,1)||(G7(h,8),g0(h,1)&&g1(h,p+12|0),!g0(h,1)))break u;n=g0(h,5),p2(h,32),p2(h,10),o=1;break o}o=0}if(W=g0(h,1),_=g0(h,5),(_|0)<0)break t;if(p2(h,12),r=g0(h,5),l[t+2|0]=r,w=n+1|0,r=r&248,!W){r&&(C=t,I=g0(h,1),l[C+3|0]=I);o:{if(!o||!g0(h,1))break o;p2(h,w),p2(h,w),p2(h,1)}if(!_)break t;for(r=1;;){p2(h,12),g0(h,5)&248&&g0(h,1),n=r;o:{if(!o||!g0(h,1))break o;p2(h,w),p2(h,w),p2(h,1)}if(r=n+1|0,(n|0)==(_|0))break}break t}if(!o){if(r&&(C=t,I=g0(h,1),l[C+3|0]=I),n=1,r=g0(h,1),l[t+10|0]=(r|0)!=0,r&&(C=t,I=g0(h,4),l[C+11|0]=I),!_)break t;for(;p2(h,12),g0(h,5)&248&&g0(h,1),g0(h,1)&&g0(h,4),r=(n|0)!=(_|0),n=n+1|0,!!r;);break t}if(r&&(C=t,I=g0(h,1),l[C+3|0]=I),g0(h,1)&&(p2(h,w),p2(h,w),p2(h,1)),r=g0(h,1),l[t+10|0]=(r|0)!=0,r&&(C=t,I=g0(h,4),l[C+11|0]=I),!_)break t;for(n=1;p2(h,12),g0(h,5)&248&&g0(h,1),g0(h,1)&&(p2(h,w),p2(h,w),p2(h,1)),g0(h,1)&&g0(h,4),r=(n|0)==(_|0),n=n+1|0,!r;);}r=g0(h,4),n=g0(h,4),g0(h,r+1|0),g0(h,n+1|0);t:{if(!Z){g0(h,1)&&p2(h,7),p2(h,3),p2(h,4),r=g0(h,1),r&&p2(h,2);o:{if(!g0(h,1)&&(g0(h,1)|0)<=0||g0(h,1))break o;p2(h,1)}if(!r)break t}p2(h,3)}p2(h,3),r=g0(h,1),l[t+4|0]=r,o=s[t+1|0],n=0;t:{if(!(r&255)){r=0;break t}if(r=0,(o|0)!=2)break t;r=g0(h,1),o=s[t+1|0]}l[t+5|0]=r,(o|0)!=1?r=g0(h,1):r=0,l[t+6|0]=r;t:{if(!g0(h,1)){o=0,r=0;break t}o=(g0(h,8)|0)==1,n=(g0(h,8)|0)==13,r=!g0(h,8)}t:{o:{if(s[t+6|0]){p2(h,1),l[t+7|0]=1,l[t+8|0]=1,n=9,r=0;break o}u:{if((r&(n&o))==1)break u;p2(h,1);l:{s:{h:{w:switch(s[t+1|0]){default:if(s[t+5|0]){if(r=g0(h,1),l[t+7|0]=r,r&255)break h;break l}l[t+7|0]=1;break l;case 1:break u;case 0:break w}l[t+7|0]=1,l[t+8|0]=1;break s}if(r=g0(h,1),l[t+8|0]=r,!s[t+7|0]|!(r&255))break t}n=9,r=g0(h,2);break o}n=8,r=0;break o}l[t+7|0]=0,n=8,r=0}l[n+t|0]=r}p2(h,1)}if(B=p+48|0,h=i[u+20>>2],!h)break k;if(o=0,i[u+32>>2]=0,i[u+24>>2]=0,i[u+28>>2]=0,r=i[u+16>>2],r?(L2(u+24|0,r),o=i[u+16>>2],h=i[u+20>>2],r=i[u+24>>2]):r=0,l0(r,h,o),hi(i[e+48>>2],v,u+24|0,0),r=i[u+24>>2],!r)continue;i[u+28>>2]=r,G(r);continue}break}w=i[e+48>>2],n=B-16|0,B=n,r=U(88),i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=71264,t=r+16|0,i[t+8>>2]=0,i[t+12>>2]=0,i[t+16>>2]=0,i[t+20>>2]=0,i[t+24>>2]=0,i[t+28>>2]=0,i[t+32>>2]=0,i[t>>2]=68500,i[r+60>>2]=0,i[r+52>>2]=0,i[r+56>>2]=0,i[t>>2]=74368,l[r+84|0]=0,l[r+85|0]=0,l[r+86|0]=0,l[r+87|0]=0,l[r+76|0]=0,l[r+77|0]=0,l[r+78|0]=0,l[r+79|0]=0,l[r+80|0]=0,l[r+81|0]=0,l[r+82|0]=0,l[r+83|0]=0,i[r+32>>2]=1635135811,o=s[u+80|0]|s[u+81|0]<<8|(s[u+82|0]<<16|s[u+83|0]<<24),h=s[u+76|0]|s[u+77|0]<<8|(s[u+78|0]<<16|s[u+79|0]<<24),l[r+64|0]=h,l[r+65|0]=h>>>8,l[r+66|0]=h>>>16,l[r+67|0]=h>>>24,l[r+68|0]=o,l[r+69|0]=o>>>8,l[r+70|0]=o>>>16,l[r+71|0]=o>>>24,o=s[u+84|0]|s[u+85|0]<<8|(s[u+86|0]<<16|s[u+87|0]<<24),l[r+72|0]=o,l[r+73|0]=o>>>8,l[r+74|0]=o>>>16,l[r+75|0]=o>>>24,i[n+8>>2]=r,i[n+4>>2]=t,i[r+4>>2]=i[r+4>>2]+1,t=N4(i[w+44>>2],n+4|0),o=i[w+52>>2],X[n+14>>1]=t+1,l[n+12|0]=1,i[n>>2]=Q[n+12>>1]|Q[n+14>>1]<<16,c1(o,v,n),t=i[n+8>>2];k:{if(!t||(o=i[t+4>>2],i[t+4>>2]=o-1,o))break k;V[i[i[t>>2]+8>>2]](t),g(t)}t=i[r+4>>2],i[r+4>>2]=t-1,t||(V[i[i[r>>2]+8>>2]](r),g(r)),B=n+16|0,n=i[u+88>>2],r=i[n+28>>2],n=i[n+24>>2],i[u+24>>2]=n,i[u+20>>2]=r,w=r,t=n,o=i[A>>2];k:{if(i[o>>2]<3||(o=i[o+112>>2],!o))break k;V[o|0](i[A+4>>2],t,r,u+24|0,u+20|0),w=i[u+20>>2],t=i[u+24>>2]}if(Vi(i[e+48>>2],v,t,w),A=i[u+24>>2],t=i[u+20>>2],(A|0)==(n|0)&(t|0)==(r|0)||(ar(i[e+48>>2],v,n,r,A,t),gr(i[e+48>>2],v,i[k+12>>2])),i[u+8>>2]=i[u+88>>2],r=i[u+92>>2],i[u+12>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),r=i[u+12>>2],i[u>>2]=i[u+8>>2],i[u+4>>2]=r,Wi(e,u,v),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break e}_0(f,i[19566],i[19567]);break e}f=i[u+28>>2];f:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break f;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=i[u+40>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f);break r}if(A=i[u+40>>2],k=i[u+44>>2],e=G2(k),e>>>0>=2147483640)break i;A:{f:{if(e>>>0>=11){t=(e|7)+1|0,r=U(t),i[u+32>>2]=t|-2147483648,i[u+24>>2]=r,i[u+28>>2]=e;break f}if(l[u+35|0]=e,r=u+24|0,!e)break A}F2(r,k,e)}if(l[e+r|0]=0,r0(f,n,A,u+24|0),l[u+35|0]>=0)break e;G(i[u+24>>2])}if(f=i[u+52>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[u+92>>2];r:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[u+100>>2];r:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}B=u+112|0;return}c2(),P()}function lk(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0;u=B-176|0,B=u,y=Ri(i[e+48>>2],16949),o=U(360),i[o+16>>2]=0,i[o+20>>2]=0,i[o>>2]=72656,i[o+4>>2]=0,i[o+8>>2]=0,l[o+152|0]=0,i[o+36>>2]=y,i[o+32>>2]=e,i[o+28>>2]=34648,i[o+40>>2]=0,i[o+44>>2]=0,i[o+52>>2]=0,i[o+56>>2]=0,i[o+68>>2]=0,i[o+72>>2]=0,i[o+80>>2]=0,i[o+84>>2]=0,i[o+156>>2]=0,i[o+160>>2]=0,i[o+24>>2]=0,X[o+48>>1]=0,X[o+58>>1]=0,X[o+60>>1]=0,X[o+62>>1]=0,X[o+64>>1]=0,l[o+76|0]=0,l[o+88|0]=0,i[o+204>>2]=0,i[o+196>>2]=0,i[o+200>>2]=0,i[o+188>>2]=0,i[o+192>>2]=0,i[o+180>>2]=0,i[o+184>>2]=0,i[o+172>>2]=0,i[o+176>>2]=0,i[o+164>>2]=0,i[o+168>>2]=0,i[o+212>>2]=0,i[o+216>>2]=0,l[o+208|0]=1,l[o+217|0]=0,l[o+218|0]=0,l[o+219|0]=0,l[o+220|0]=0,l[o+221|0]=0,l[o+222|0]=0,l[o+223|0]=0,l[o+224|0]=0,i[o+232>>2]=0,i[o+236>>2]=0,i[o+240>>2]=0,i[o+244>>2]=0,i[o+248>>2]=0,i[o+252>>2]=0,i[o+256>>2]=0,i[o+260>>2]=0,i[o+264>>2]=0,i[o+268>>2]=0,l[o+272|0]=0,B0(o+280|0,0,80),i[o+296>>2]=0,i[o+300>>2]=0,l[o+292|0]=1,i[o+304>>2]=0,i[o+308>>2]=0,i[o+312>>2]=0,i[o+316>>2]=0,i[o+328>>2]=0,i[o+332>>2]=0,i[o+320>>2]=0,i[o+324>>2]=1072693248,i[o+336>>2]=0,i[o+340>>2]=0,i[o+344>>2]=0,i[o+348>>2]=0,i[o+352>>2]=0,i[o+96>>2]=0,i[o+100>>2]=0,i[o+104>>2]=0,i[o+108>>2]=0,i[o+112>>2]=0,i[o+116>>2]=0,i[o+120>>2]=0,i[o+124>>2]=0,i[o+128>>2]=0,i[o+132>>2]=0,i[o+136>>2]=0,i[o+140>>2]=0,i[o+144>>2]=0,i[o+148>>2]=0,i[t>>2]=o+16,h=i[t+4>>2],i[t+4>>2]=o;i:{if(!h||(o=i[h+4>>2],i[h+4>>2]=o-1,o))break i;V[i[i[h>>2]+8>>2]](h),g(h)}o=i[r>>2],i[u+172>>2]=i[o+32>>2],i[u+168>>2]=i[o+36>>2],$r(u+160|0,r,i[k+4>>2]),o=i[A>>2];i:{if(i[o>>2]>=2){V[i[o+108>>2]](i[A+4>>2],u+172|0,u+168|0);break i}V[i[o+96>>2]](u+172|0,u+168|0)}i:{r:{e:{if(o=i[u+172>>2],h=i[r>>2],w=i[u+168>>2],!((o|0)!=i[h+32>>2]|(w|0)!=i[h+36>>2])){if(w=i[h+44>>2],h=i[h+48>>2],h&&(i[h+4>>2]=i[h+4>>2]+1),p6(o,w,h,i[k+4>>2]))break e;w=i[u+168>>2],o=i[u+172>>2]}if(i[u+132>>2]=i[u+160>>2],h=i[u+164>>2],i[u+136>>2]=h,h&&(i[h+4>>2]=i[h+4>>2]+1),N8(u+92|0,r,o,w,u+132|0,0,k+16|0),o=i[u+92>>2],r=i[u+96>>2],i[u+92>>2]=0,i[u+96>>2]=0,i[u+156>>2]=r,i[u+152>>2]=o,r=i[u+136>>2],r&&(o=i[r+4>>2],i[r+4>>2]=o-1,o||(V[i[i[r>>2]+8>>2]](r),g(r)),o=i[u+152>>2]),o){r=i[u+156>>2];break r}if(l[u+92|0]=0,l[u+103|0]=0,r0(f,4,3003,u+92|0),l[u+103|0]>=0)break i;G(i[u+92>>2]);break i}o=i[r>>2],r=i[r+4>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),i[u+156>>2]=r,i[u+152>>2]=o}D=y4(o,0),z=F4(o,0),h=i[t>>2],i[h+28>>2]=z,i[h+24>>2]=D,W=U(112),i[W>>2]=71224,i[W+4>>2]=0,i[W+8>>2]=0,E=W+16|0,i[E+8>>2]=0,i[E+12>>2]=0,i[E+16>>2]=0,i[E+20>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,i[E+32>>2]=0,i[E>>2]=68500,i[W+60>>2]=0,i[W+52>>2]=0,i[W+56>>2]=0,i[E>>2]=74252,i[W+108>>2]=0,i[W+100>>2]=0,i[W+104>>2]=0,l[W+96|0]=4,i[W+72>>2]=0,i[W+76>>2]=0,i[W+32>>2]=1752589123,i[u+148>>2]=0;r:{if(!r){i[u+148>>2]=0,i[u+144>>2]=o;break r}if(i[r+4>>2]=i[r+4>>2]+1,i[u+144>>2]=o,o=i[u+148>>2],i[u+148>>2]=r,!o||(r=i[o+4>>2],i[o+4>>2]=r-1,r))break r;V[i[i[o>>2]+8>>2]](o),g(o)}V[i[i[A>>2]+100>>2]](u+132|0,i[A+4>>2],u+144|0,n);r:{e:{A:{f:{k:{n:{if(r=i[u+132>>2],r){if(k=i[u+136>>2],n=i[u+140>>2],e=G2(n),e>>>0>=2147483640)break n;t:{o:{if(e>>>0>=11){t=(e|7)+1|0,A=U(t),i[u+100>>2]=t|-2147483648,i[u+92>>2]=A,i[u+96>>2]=e;break o}if(l[u+103|0]=e,A=u+92|0,!e)break t}F2(A,n,e)}if(l[e+A|0]=0,r0(f,r,k,u+92|0),l[u+103|0]>=0)break r;G(i[u+92>>2]);break r}if(i[u+128>>2]=0,i[u+124>>2]=0,V[i[i[A>>2]+104>>2]](u+92|0,i[A+4>>2],u+56|0,u+48|0,0),o=i[u+56>>2],o)for(H=W- -64|0;;){if(r=s[o|0],(r&254)==66){i[u+100>>2]=0,i[u+104>>2]=0,f0=u+72|0,a=o,S=i[u+48>>2],q=u+128|0,d=u+124|0,o=0,r=0,v=0,w=0,R=0,Z=B-96|0,B=Z,i[Z+92>>2]=0,i[Z+84>>2]=0,i[Z+88>>2]=0;t:{o:{u:{l:{s:{h:{w:{if(S){for(;;){_:{v:{if(C=w+2|0,S>>>0<=C>>>0||(h=w+a|0,s[h|0]|s[h+1|0]|s[C+a|0]!=3))break v;Z:{if(o>>>0>v>>>0){l[v|0]=0,w=v+1|0;break Z}if(I=v-r|0,h=I+1|0,(h|0)<0)break u;o=o-r|0,w=o<<1,J=o>>>0>=1073741823?2147483647:h>>>0>>0?w:h,J?w=U(J):w=0,_=w+I|0,l[_|0]=0,h=_;m:{if((r|0)==(v|0))break m;if(h=0,p=_,o=v,I=I&3,I)for(;p=p-1|0,o=o-1|0,l[p|0]=s[o|0],h=h+1|0,(I|0)!=(h|0););if(h=w,r-v>>>0>4294967292)break m;for(;l[p-1|0]=s[o-1|0],l[p-2|0]=s[o-2|0],l[p-3|0]=s[o-3|0],p=p-4|0,o=o-4|0,l[p|0]=s[o|0],(r|0)!=(o|0););h=w}o=w+J|0,w=_+1|0,r&&G(r),r=h}if(o>>>0>w>>>0){l[w|0]=0,v=w+1|0;break _}if(I=w-r|0,h=I+1|0,(h|0)<0)break w;o=o-r|0,_=o<<1,J=o>>>0>=1073741823?2147483647:h>>>0<_>>>0?_:h,J?_=U(J):_=0,v=_+I|0,l[v|0]=0,h=v;Z:{if((r|0)==(w|0))break Z;if(h=0,p=v,o=w,I=I&3,I)for(;p=p-1|0,o=o-1|0,l[p|0]=s[o|0],h=h+1|0,(I|0)!=(h|0););if(h=_,r-w>>>0>4294967292)break Z;for(;l[p-1|0]=s[o-1|0],l[p-2|0]=s[o-2|0],l[p-3|0]=s[o-3|0],p=p-4|0,o=o-4|0,l[p|0]=s[o|0],(r|0)!=(o|0););h=_}if(o=_+J|0,v=v+1|0,!r){r=h;break _}G(r),r=h;break _}h=w+a|0;v:{if(o>>>0>v>>>0){l[v|0]=s[h|0],v=v+1|0;break v}if(J=v-r|0,_=J+1|0,(_|0)<0)break u;o=o-r|0,p=o<<1,A0=o>>>0>=1073741823?2147483647:_>>>0

>>0?p:_,A0?_=U(A0):_=0,I=_+J|0,l[I|0]=s[h|0],h=I;Z:{if((r|0)==(v|0))break Z;if(p=0,o=h,C=v,h=J&3,h)for(;o=o-1|0,C=C-1|0,l[o|0]=s[C|0],p=p+1|0,(h|0)!=(p|0););if(h=_,r-v>>>0>4294967292)break Z;for(;l[o-1|0]=s[C-1|0],l[o-2|0]=s[C-2|0],l[o-3|0]=s[C-3|0],o=o-4|0,C=C-4|0,l[o|0]=s[C|0],(r|0)!=(C|0););h=_}o=_+A0|0,v=I+1|0,r&&G(r),r=h}C=w}if(w=C+1|0,!(S>>>0>w>>>0))break}i[Z+88>>2]=v,i[Z+84>>2]=r,i[Z+92>>2]=o}if(h=w6(Z+48|0,r,v-r|0),p2(h,16),p2(h,4),r=g0(h,3),n0=u,h0=g0(h,1),l[n0+120|0]=h0,n0=u,h0=g0(h,2),l[n0+93|0]=h0,n0=u,h0=(g0(h,1)&255)!=0,l[n0+94|0]=h0,n0=u,h0=g0(h,5),l[n0+95|0]=h0,n0=u,h0=g0(h,32),i[n0+96>>2]=h0,p2(h,16),p2(h,16),p2(h,16),n0=u,h0=g0(h,8),l[n0+108|0]=h0,i[Z+44>>2]=0,i[Z+36>>2]=0,i[Z+40>>2]=0,v=0,!r)break l;if((r|0)<0)break h;for(o=r-1>>>5|0,_=(o<<2)+4|0,v=U(_),p=r>>>0>=33?o:0,i[v+(p<<2)>>2]=0,o=r>>>5|0,r>>>0>=32&&B0(v,0,o<<2),w=r&31,w&&(C=(o<<2)+v|0,i[C>>2]=i[C>>2]&(-1>>>32-w^-1)),R=U(_),i[R+(p<<2)>>2]=0,r>>>0>=32&&B0(R,0,o<<2),w&&(o=(o<<2)+R|0,i[o>>2]=i[o>>2]&(-1>>>32-w^-1)),o=0;;){w=1<>>5<<2,_=p+v|0;_:{if(g0(h,1)){C=w|i[_>>2];break _}C=i[_>>2]&(w^-1)}i[_>>2]=C,_=p+R|0;_:{if(g0(h,1)){w=w|i[_>>2];break _}w=i[_>>2]&(w^-1)}if(i[_>>2]=w,o=o+1|0,(r|0)==(o|0))break}break s}i[Z+88>>2]=w;break o}y0(),P()}if(r>>>0<8)for(o=r;p2(h,2),o=o+1|0,(o|0)!=8;);for(o=0;_=1<>>5<<2,_&i[w+v>>2]&&(p2(h,8),p2(h,32),p2(h,16)),_&i[w+R>>2]&&p2(h,8),o=o+1|0,(r|0)!=(o|0););}g1(h,Z+32|0),g1(h,Z+28|0),r=i[Z+28>>2],l[u+113|0]=r,(r&255)==3&&p2(h,1),g1(h,q),g1(h,d),g0(h,1)&&(g1(h,Z+24|0),g1(h,Z+20|0),g1(h,Z+16|0),g1(h,Z+12|0),r=s[u+113|0],i[q>>2]=i[q>>2]-(i[Z+20>>2]+i[Z+24>>2]<<((r-1&255)>>>0<2)),i[d>>2]=i[d>>2]-(i[Z+12>>2]+i[Z+16>>2]<<((r|0)==1))),r=Z+28|0,g1(h,r),l[u+114|0]=s[Z+28|0]+8,g1(h,r),r=s[Z+28|0],i[u+116>>2]=16777216,l[u+112|0]=0,X[u+110>>1]=0,l[u+92|0]=1,l[u+115|0]=r+8,o=i[19565],r=f0,i[r>>2]=i[19564],i[r+4>>2]=o,r=r+8|0;l:{if(l[78275]>=0){o=i[19567],i[r>>2]=i[19566],i[r+4>>2]=o,i[r+8>>2]=i[19568];break l}_0(r,i[19566],i[19567])}R&&G(R),v&&G(v),r=i[Z+84>>2],r&&(i[Z+88>>2]=r,G(r)),B=Z+96|0;break t}i[Z+88>>2]=v}i[Z+84>>2]=r,i[Z+92>>2]=o,y0(),P()}l[u+91|0]<0&&G(i[u+80>>2]),r=i[u+96>>2],i[H>>2]=i[u+92>>2],i[H+4>>2]=r,o=s[u+117|0]|s[u+118|0]<<8|(s[u+119|0]<<16|s[u+120|0]<<24),r=H,h=s[u+113|0]|s[u+114|0]<<8|(s[u+115|0]<<16|s[u+116|0]<<24),l[r+21|0]=h,l[r+22|0]=h>>>8,l[r+23|0]=h>>>16,l[r+24|0]=h>>>24,l[r+25|0]=o,l[r+26|0]=o>>>8,l[r+27|0]=o>>>16,l[r+28|0]=o>>>24,o=i[u+112>>2],i[r+16>>2]=i[u+108>>2],i[r+20>>2]=o,o=i[u+104>>2],i[r+8>>2]=i[u+100>>2],i[r+12>>2]=o,o=i[u+56>>2],r=s[o|0]}t:{if((((r&254)>>>1|0)-32&255)>>>0<=2){r=i[u+48>>2],w=B-32|0,B=w,i[w+28>>2]=0,i[w+20>>2]=0,i[w+24>>2]=0,r?(L2(w+20|0,r),h=i[w+20>>2]):h=0,l0(h,o,r),i[w+16>>2]=0,i[w+8>>2]=0,i[w+12>>2]=0,l[w+4|0]=0,l[w+5|0]=s[i[w+20>>2]]>>>1,n0=w,h0=NA(w+8|0,w+20|0),i[n0+12>>2]=h0,r=i[E+88>>2];o:{if(r>>>0>2]){o=Q[w+4>>1],i[r+12>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,X[r>>1]=o,o=i[w+8>>2],h=i[w+12>>2],qA(r+4|0,o,h,(h-o|0)/12|0),r=r+16|0;break o}r=yn(E+84|0,w+4|0)}if(i[E+88>>2]=r,h=i[w+8>>2],h){if(r=h,o=i[w+12>>2],(r|0)!=(o|0)){for(;r=o-12|0,_=i[r>>2],_&&(i[o-8>>2]=_,G(_)),o=r,(h|0)!=(o|0););r=i[w+8>>2]}i[w+12>>2]=h,G(r)}r=i[w+20>>2],r&&(i[w+24>>2]=r,G(r)),B=w+32|0;break t}m9(i[e+48>>2],y,o,i[u+48>>2])}if(V[i[i[A>>2]+104>>2]](u+92|0,i[A+4>>2],u+56|0,u+48|0,0),o=i[u+56>>2],!o)break}if(!(i[u+124>>2]&&i[u+128>>2])){if(l[u+92|0]=0,l[u+103|0]=0,r0(f,8,129,u+92|0),l[u+103|0]>=0)break r;G(i[u+92>>2]);break r}r=i[e+48>>2],i[u+96>>2]=W,i[u+92>>2]=E,i[W+4>>2]=i[W+4>>2]+1,se(r,y,u+92|0,1),r=i[u+96>>2];t:{if(!r||(o=i[r+4>>2],i[r+4>>2]=o-1,o))break t;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[A>>2];t:{if(i[r>>2]<3||(r=i[r+112>>2],!r))break t;i[u+92>>2]=D,i[u+56>>2]=z,V[r|0](i[A+4>>2],D,z,u+92|0,u+56|0)}Vi(i[e+48>>2],y,i[u+128>>2],i[u+124>>2]),r=i[u+128>>2],o=i[u+124>>2];t:{if((r|0)==(D|0)&(o|0)==(z|0)||(ar(i[e+48>>2],y,D,z,r,o),E3(D,z,i[i[u+152>>2]+36>>2])))break t;l[i[t>>2]+192|0]=0}gr(i[e+48>>2],y,i[k+12>>2]);t:switch(n-1|0){case 0:case 3:break t;default:break e}n=i[u+152>>2],r=i[n+52>>2],n=i[n+56>>2];t:{if(!n){if(!r)break t;w=i[e+48>>2],i[u+96>>2]=0,i[u+92>>2]=r;break f}if(i[n+4>>2]=i[n+4>>2]+1,r)break k}r=s[k|0],o=i[k+4>>2]!=0;break A}c2(),P()}w=i[e+48>>2],i[u+96>>2]=n,i[u+92>>2]=r,i[n+4>>2]=i[n+4>>2]+1}p8(w,y,u+92|0),r=i[u+96>>2];f:{if(!r||(o=i[r+4>>2],i[r+4>>2]=o-1,o))break f;V[i[i[r>>2]+8>>2]](r),g(r)}r=s[k|0],o=s[k+3|0]!=0&i[k+4>>2]!=0&r>>>0>2}A:{if(!(!s[k+8|0]|(r&255)>>>0<4)|!o||(o=i[e+48>>2],i[u+92>>2]=i[u+160>>2],r=i[u+164>>2],i[u+96>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),p8(o,y,u+92|0),r=i[u+96>>2],!r)||(o=i[r+4>>2],i[r+4>>2]=o-1,o))break A;V[i[i[r>>2]+8>>2]](r),g(r)}if(!n||(r=i[n+4>>2],i[n+4>>2]=r-1,r))break e;V[i[i[n>>2]+8>>2]](n),g(n)}i[u+64>>2]=i[u+152>>2],r=i[u+156>>2],i[u+68>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),r=i[u+68>>2],i[u+16>>2]=i[u+64>>2],i[u+20>>2]=r,Wi(e,u+16|0,y),r=i[e+32>>2];e:{if(r>>>0>2]){i[r>>2]=i[t>>2],n=i[t+4>>2],i[r+4>>2]=n,n&&(i[n+4>>2]=i[n+4>>2]+1),r=r+8|0;break e}r=Q2(e+28|0,t)}i[e+32>>2]=r,r=i[e+20>>2];e:{A:{if(!r){w=e+20|0,o=w;break A}for(;;){if(o=r,r=i[o+16>>2],r>>>0>y>>>0){if(w=o,r=i[o>>2],r)continue;break A}if(r>>>0>=y>>>0){r=o;break e}if(r=i[o+4>>2],!r)break}w=o+4|0}r=U(28),i[r+20>>2]=0,i[r+24>>2]=0,i[r+16>>2]=y,i[r+8>>2]=o,i[r>>2]=0,i[r+4>>2]=0,i[w>>2]=r,o=r,n=i[i[e+16>>2]>>2],n&&(i[e+16>>2]=n,o=i[w>>2]),D1(i[e+20>>2],o),i[e+24>>2]=i[e+24>>2]+1}n=i[t>>2],t=i[t+4>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),i[r+20>>2]=n,n=i[r+24>>2],i[r+24>>2]=t;e:{if(!n||(r=i[n+4>>2],i[n+4>>2]=r-1,r))break e;V[i[i[n>>2]+8>>2]](n),g(n)}e:{A:{if(!s[k+1|0]||!H2(i[u+152>>2],6))break A;i[u+56>>2]=0,i[u+60>>2]=0,s6(u+92|0,u+152|0),n=i[u+92>>2],t=i[u+96>>2],i[u+92>>2]=0,i[u+96>>2]=0,r=i[u+60>>2],i[u+56>>2]=n,i[u+60>>2]=t;f:{if(!r||(n=i[r+4>>2],i[r+4>>2]=n-1,n||(V[i[i[r>>2]+8>>2]](r),g(r)),r=i[u+96>>2],!r)||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break f;V[i[i[r>>2]+8>>2]](r),g(r)}if(i[u+48>>2]=0,i[u+52>>2]=0,lk(f,e,u+56|0,A,k,2,u+48|0),i[f>>2])break e;r=i[i[u+48>>2]+20>>2],A=i[e+48>>2],i[u+44>>2]=1,i[u+36>>2]=y,i[u+40>>2]=u+36,k=i[u+44>>2],i[u+8>>2]=i[u+40>>2],i[u+12>>2]=k,k=r,r=ue(u+92|0,u+8|0),P1(A,k,1635088492,r),A=i[r>>2],A&&(i[r+4>>2]=A,G(A));f:{if(s[i[u+152>>2]+40|0]!=1||(r=i[e+48>>2],A=i[i[u+48>>2]+20>>2],i[u+32>>2]=1,i[u+36>>2]=A,i[u+28>>2]=u+36,A=i[u+32>>2],i[u>>2]=i[u+28>>2],i[u+4>>2]=A,A=r,r=ue(u+92|0,u),P1(A,y,1886545261,r),A=i[r>>2],!A))break f;i[r+4>>2]=A,G(A)}r=i[e+48>>2],A=i[i[u+48>>2]+20>>2],e=C1(u+92|0,17014),_6(r,A,e),l[e+11|0]<0&&G(i[e>>2]),l[f+19|0]<0&&G(i[f+8>>2]),v1(u+48|0),v1(u+56|0)}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break r}_0(f,i[19566],i[19567]);break r}f=i[u+52>>2];e:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break e;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=i[u+60>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[u+148>>2];r:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=i[W+4>>2],i[W+4>>2]=f-1,f)break i;V[i[i[W>>2]+8>>2]](W),g(W)}f=i[u+156>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[u+164>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=u+176|0}function uk(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0;u=B-80|0,B=u,v=Ri(i[e+48>>2],16929),o=U(360),i[o+16>>2]=0,i[o+20>>2]=0,i[o>>2]=72656,i[o+4>>2]=0,i[o+8>>2]=0,l[o+152|0]=0,i[o+36>>2]=v,i[o+32>>2]=e,i[o+28>>2]=34648,i[o+40>>2]=0,i[o+44>>2]=0,i[o+52>>2]=0,i[o+56>>2]=0,i[o+68>>2]=0,i[o+72>>2]=0,i[o+80>>2]=0,i[o+84>>2]=0,i[o+156>>2]=0,i[o+160>>2]=0,i[o+24>>2]=0,X[o+48>>1]=0,X[o+58>>1]=0,X[o+60>>1]=0,X[o+62>>1]=0,X[o+64>>1]=0,l[o+76|0]=0,l[o+88|0]=0,i[o+204>>2]=0,i[o+196>>2]=0,i[o+200>>2]=0,i[o+188>>2]=0,i[o+192>>2]=0,i[o+180>>2]=0,i[o+184>>2]=0,i[o+172>>2]=0,i[o+176>>2]=0,i[o+164>>2]=0,i[o+168>>2]=0,i[o+212>>2]=0,i[o+216>>2]=0,l[o+208|0]=1,l[o+217|0]=0,l[o+218|0]=0,l[o+219|0]=0,l[o+220|0]=0,l[o+221|0]=0,l[o+222|0]=0,l[o+223|0]=0,l[o+224|0]=0,i[o+232>>2]=0,i[o+236>>2]=0,i[o+240>>2]=0,i[o+244>>2]=0,i[o+248>>2]=0,i[o+252>>2]=0,i[o+256>>2]=0,i[o+260>>2]=0,i[o+264>>2]=0,i[o+268>>2]=0,l[o+272|0]=0,B0(o+280|0,0,80),i[o+296>>2]=0,i[o+300>>2]=0,l[o+292|0]=1,i[o+304>>2]=0,i[o+308>>2]=0,i[o+312>>2]=0,i[o+316>>2]=0,i[o+328>>2]=0,i[o+332>>2]=0,i[o+320>>2]=0,i[o+324>>2]=1072693248,i[o+336>>2]=0,i[o+340>>2]=0,i[o+344>>2]=0,i[o+348>>2]=0,i[o+352>>2]=0,i[o+96>>2]=0,i[o+100>>2]=0,i[o+104>>2]=0,i[o+108>>2]=0,i[o+112>>2]=0,i[o+116>>2]=0,i[o+120>>2]=0,i[o+124>>2]=0,i[o+128>>2]=0,i[o+132>>2]=0,i[o+136>>2]=0,i[o+140>>2]=0,i[o+144>>2]=0,i[o+148>>2]=0,i[t>>2]=o+16,h=i[t+4>>2],i[t+4>>2]=o;i:{if(!h||(o=i[h+4>>2],i[h+4>>2]=o-1,o))break i;V[i[i[h>>2]+8>>2]](h),g(h)}o=i[e+32>>2];i:{if(o>>>0>2]){i[o>>2]=i[t>>2],t=i[t+4>>2],i[o+4>>2]=t,t&&(i[t+4>>2]=i[t+4>>2]+1),t=o+8|0;break i}t=Q2(e+28|0,t)}i[e+32>>2]=t,t=i[r>>2],i[u+76>>2]=i[t+32>>2],i[u+72>>2]=i[t+36>>2],$r(u- -64|0,r,i[k+4>>2]),t=i[A>>2];i:{if(i[t>>2]>=2){V[i[t+108>>2]](i[A+4>>2],u+76|0,u+72|0);break i}V[i[t+96>>2]](u+76|0,u+72|0)}i:{r:{e:{if(o=i[u+76>>2],h=i[r>>2],t=i[u+72>>2],!((o|0)!=i[h+32>>2]|(t|0)!=i[h+36>>2])){if(_=i[h+44>>2],t=i[h+48>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),p6(o,_,t,i[k+4>>2]))break e;o=i[u+76>>2],t=i[u+72>>2]}if(i[u+48>>2]=i[u+64>>2],h=i[u+68>>2],i[u+52>>2]=h,h&&(i[h+4>>2]=i[h+4>>2]+1),N8(u+36|0,r,o,t,u+48|0,0,k+16|0),o=i[u+36>>2],t=i[u+40>>2],i[u+36>>2]=0,i[u+40>>2]=0,i[u+60>>2]=t,i[u+56>>2]=o,t=i[u+52>>2],t&&(o=i[t+4>>2],i[t+4>>2]=o-1,o||(V[i[i[t>>2]+8>>2]](t),g(t)),o=i[u+56>>2]),o)break r;if(l[u+36|0]=0,l[u+47|0]=0,r0(f,4,3003,u+36|0),l[u+47|0]>=0)break i;G(i[u+36>>2]);break i}o=i[r>>2],t=i[r+4>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),i[u+60>>2]=t,i[u+56>>2]=o}r:{e:{if(!s[k+1|0]||!H2(o,6))break e;i[u+48>>2]=0,i[u+52>>2]=0,s6(u+36|0,u+56|0),o=i[u+36>>2],h=i[u+40>>2],i[u+36>>2]=0,i[u+40>>2]=0,t=i[u+52>>2],i[u+48>>2]=o,i[u+52>>2]=h;A:{if(!t||(o=i[t+4>>2],i[t+4>>2]=o-1,o||(V[i[i[t>>2]+8>>2]](t),g(t)),t=i[u+40>>2],!t)||(o=i[t+4>>2],i[t+4>>2]=o-1,o))break A;V[i[i[t>>2]+8>>2]](t),g(t)}if(i[u+28>>2]=0,i[u+32>>2]=0,uk(f,e,u+48|0,A,k,2,u+28|0),i[f>>2])break r;t=i[i[u+28>>2]+20>>2],o=i[e+48>>2],k=U(4),i[u+36>>2]=k,h=k+4|0,i[u+44>>2]=h,i[k>>2]=v,i[u+40>>2]=h,P1(o,t,1635088492,u+36|0),k=i[u+36>>2],k&&(i[u+40>>2]=k,G(k)),h=i[i[u+28>>2]+20>>2],_=i[e+48>>2],k=U(48),i[u+36>>2]=k,i[u+40>>2]=43,i[u+44>>2]=-2147483600,t=s[14658]|s[14659]<<8|(s[14660]<<16|s[14661]<<24),l[k+39|0]=t,l[k+40|0]=t>>>8,l[k+41|0]=t>>>16,l[k+42|0]=t>>>24,t=s[14655]|s[14656]<<8|(s[14657]<<16|s[14658]<<24),o=s[14651]|s[14652]<<8|(s[14653]<<16|s[14654]<<24),l[k+32|0]=o,l[k+33|0]=o>>>8,l[k+34|0]=o>>>16,l[k+35|0]=o>>>24,l[k+36|0]=t,l[k+37|0]=t>>>8,l[k+38|0]=t>>>16,l[k+39|0]=t>>>24,t=s[14647]|s[14648]<<8|(s[14649]<<16|s[14650]<<24),o=s[14643]|s[14644]<<8|(s[14645]<<16|s[14646]<<24),l[k+24|0]=o,l[k+25|0]=o>>>8,l[k+26|0]=o>>>16,l[k+27|0]=o>>>24,l[k+28|0]=t,l[k+29|0]=t>>>8,l[k+30|0]=t>>>16,l[k+31|0]=t>>>24,t=s[14639]|s[14640]<<8|(s[14641]<<16|s[14642]<<24),o=s[14635]|s[14636]<<8|(s[14637]<<16|s[14638]<<24),l[k+16|0]=o,l[k+17|0]=o>>>8,l[k+18|0]=o>>>16,l[k+19|0]=o>>>24,l[k+20|0]=t,l[k+21|0]=t>>>8,l[k+22|0]=t>>>16,l[k+23|0]=t>>>24,t=s[14631]|s[14632]<<8|(s[14633]<<16|s[14634]<<24),o=s[14627]|s[14628]<<8|(s[14629]<<16|s[14630]<<24),l[k+8|0]=o,l[k+9|0]=o>>>8,l[k+10|0]=o>>>16,l[k+11|0]=o>>>24,l[k+12|0]=t,l[k+13|0]=t>>>8,l[k+14|0]=t>>>16,l[k+15|0]=t>>>24,t=s[14623]|s[14624]<<8|(s[14625]<<16|s[14626]<<24),o=s[14619]|s[14620]<<8|(s[14621]<<16|s[14622]<<24),l[k|0]=o,l[k+1|0]=o>>>8,l[k+2|0]=o>>>16,l[k+3|0]=o>>>24,l[k+4|0]=t,l[k+5|0]=t>>>8,l[k+6|0]=t>>>16,l[k+7|0]=t>>>24,l[k+43|0]=0,_6(_,h,u+36|0),l[u+47|0]<0&&G(i[u+36>>2]);A:{if(s[i[u+56>>2]+40|0]!=1||(t=i[e+48>>2],o=i[i[u+28>>2]+20>>2],k=U(4),i[u+36>>2]=k,h=k+4|0,i[u+44>>2]=h,i[k>>2]=o,i[u+40>>2]=h,P1(t,v,1886545261,u+36|0),k=i[u+36>>2],!k))break A;i[u+40>>2]=k,G(k)}l[f+19|0]<0&&G(i[f+8>>2]),k=i[u+32>>2];A:{if(!k||(t=i[k+4>>2],i[k+4>>2]=t-1,t))break A;V[i[i[k>>2]+8>>2]](k),g(k)}k=i[u+52>>2];A:{if(!k||(t=i[k+4>>2],i[k+4>>2]=t-1,t))break A;V[i[i[k>>2]+8>>2]](k),g(k)}o=i[u+56>>2]}i[u+52>>2]=0,t=i[u+60>>2];e:{if(!t){i[u+52>>2]=0,i[u+48>>2]=o;break e}if(i[t+4>>2]=i[t+4>>2]+1,i[u+48>>2]=o,k=i[u+52>>2],i[u+52>>2]=t,!k||(t=i[k+4>>2],i[k+4>>2]=t-1,t))break e;V[i[i[k>>2]+8>>2]](k),g(k)}if(k=u+36|0,V[i[i[A>>2]+100>>2]](k,i[A+4>>2],u+48|0,n),V[i[i[A>>2]+104>>2]](k,i[A+4>>2],u+28|0,u+24|0,0),o=i[u+28>>2],o)for(;t=0,i[u+44>>2]=0,i[u+36>>2]=0,i[u+40>>2]=0,k=i[u+24>>2],k?(L2(u+36|0,k),t=i[u+24>>2],o=i[u+28>>2],k=i[u+36>>2]):k=0,l0(k,o,t),hi(i[e+48>>2],v,u+36|0,0),k=i[u+36>>2],k&&(i[u+40>>2]=k,G(k)),V[i[i[A>>2]+104>>2]](u+36|0,i[A+4>>2],u+28|0,u+24|0,0),o=i[u+28>>2],!!o;);r=i[r>>2],Vi(i[e+48>>2],v,i[r+24>>2],i[r+28>>2]),A=i[e+48>>2],i[u+36>>2]=i[u+64>>2],r=i[u+68>>2],i[u+40>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),p8(A,v,u+36|0),r=i[u+40>>2];e:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break e;V[i[i[r>>2]+8>>2]](r),g(r)}o=i[e+48>>2],A=B-16|0,B=A,r=U(64),i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=72144,n=r+16|0,k=n,i[k+8>>2]=0,i[k+12>>2]=0,i[k+16>>2]=0,i[k+20>>2]=0,i[k+24>>2]=0,i[k+28>>2]=0,i[k+32>>2]=0,i[k>>2]=68500,i[r+60>>2]=0,i[r+52>>2]=0,i[r+56>>2]=0,i[k>>2]=74848,i[r+32>>2]=1781689160,i[u+40>>2]=r,i[u+36>>2]=k,k=i[o+44>>2],i[A+12>>2]=r,i[A+8>>2]=n,i[r+4>>2]=i[r+4>>2]+1,t=i[k+40>>2];e:{A:{if(t>>>0>2]){i[t+4>>2]=r,i[t>>2]=n,i[r+4>>2]=i[r+4>>2]+1,n=t+8|0,i[k+40>>2]=n,k=i[k+36>>2];break A}if(n=Q2(k+36|0,A+8|0),r=i[A+12>>2],i[k+40>>2]=n,k=i[k+36>>2],!r)break e}if(t=i[r+4>>2],i[r+4>>2]=t-1,t)break e;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[o+52>>2],l[A+4|0]=1,X[A+6>>1]=n-k>>>3,i[A>>2]=Q[A+4>>1]|Q[A+6>>1]<<16,c1(r,v,A),B=A+16|0,A=U(80),i[A>>2]=72184,i[A+4>>2]=0,i[A+8>>2]=0,h=A+16|0,r=h,i[r+8>>2]=0,i[r+12>>2]=0,i[r+16>>2]=0,i[r+20>>2]=0,i[r+24>>2]=0,i[r+28>>2]=0,i[r+32>>2]=0,i[r>>2]=68500,i[A+60>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[r>>2]=74608,i[A+72>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+32>>2]=1667523942,o=0;e:{A:{f:{k:{n:{t:{o:{u:switch(i[i[u+56>>2]+32>>2]){case 1:_=h+48|0,n=i[h+52>>2],r=i[h+56>>2];l:{if(n>>>0>>0){X[n+4>>1]=1,X[n>>1]=0,X[n+2>>1]=0,k=n+6|0;break l}if(o=i[h+48>>2],w=(n-o|0)/6|0,t=w+1|0,t>>>0>=715827883)break o;if(k=0,r=(r-o|0)/6|0,Z=r<<1,r=r>>>0>=357913941?715827882:t>>>0>>0?Z:t,r){if(r>>>0>=715827883)break t;k=U(m(r,6))}if(t=m(w,6)+k|0,X[t+4>>1]=1,X[t>>1]=0,X[t+2>>1]=0,r=m(r,6)+k|0,k=t+6|0,(n|0)!=(o|0)){for(;t=t-6|0,n=n-6|0,w=Q[n>>1]|Q[n+2>>1]<<16,X[t>>1]=w,X[t+2>>1]=w>>>16,X[t+4>>1]=Q[n+4>>1],(n|0)!=(o|0););o=i[h+48>>2]}if(i[h+56>>2]=r,i[h+52>>2]=k,i[h+48>>2]=t,!o)break l;G(o),r=i[h+56>>2]}i[h+52>>2]=k;l:{if(r>>>0>k>>>0){X[k+4>>1]=2,X[k>>1]=1,X[k+2>>1]=0,n=k+6|0;break l}if(o=i[h+48>>2],t=(k-o|0)/6|0,n=t+1|0,n>>>0>=715827883)break o;if(r=(r-o|0)/6|0,w=r<<1,r=r>>>0>=357913941?715827882:n>>>0>>0?w:n,r){if(r>>>0>=715827883)break t;n=U(m(r,6))}else n=0;if(t=n+m(t,6)|0,X[t+4>>1]=2,X[t>>1]=1,X[t+2>>1]=0,r=n+m(r,6)|0,n=t+6|0,(k|0)!=(o|0)){for(;t=t-6|0,k=k-6|0,w=Q[k>>1]|Q[k+2>>1]<<16,X[t>>1]=w,X[t+2>>1]=w>>>16,X[t+4>>1]=Q[k+4>>1],(k|0)!=(o|0););o=i[h+48>>2]}if(i[h+56>>2]=r,i[h+52>>2]=n,i[h+48>>2]=t,!o)break l;G(o),r=i[h+56>>2]}if(i[h+52>>2]=n,r>>>0>n>>>0)break f;if(t=i[h+48>>2],w=(n-t|0)/6|0,k=w+1|0,k>>>0>=715827883)break o;if(r=(r-t|0)/6|0,o=r<<1,o=r>>>0>=357913941?715827882:k>>>0>>0?o:k,o){if(o>>>0>=715827883)break t;r=U(m(o,6))}else r=0;k=r+m(w,6)|0,X[k+4>>1]=3;break A;case 0:_=h+48|0,n=i[h+52>>2],r=i[h+56>>2];l:{if(n>>>0>>0){X[n+4>>1]=1,X[n>>1]=0,X[n+2>>1]=0,k=n+6|0;break l}if(o=i[h+48>>2],w=(n-o|0)/6|0,t=w+1|0,t>>>0>=715827883)break n;if(k=0,r=(r-o|0)/6|0,Z=r<<1,r=r>>>0>=357913941?715827882:t>>>0>>0?Z:t,r){if(r>>>0>=715827883)break t;k=U(m(r,6))}if(t=m(w,6)+k|0,X[t+4>>1]=1,X[t>>1]=0,X[t+2>>1]=0,r=m(r,6)+k|0,k=t+6|0,(n|0)!=(o|0)){for(;t=t-6|0,n=n-6|0,w=Q[n>>1]|Q[n+2>>1]<<16,X[t>>1]=w,X[t+2>>1]=w>>>16,X[t+4>>1]=Q[n+4>>1],(n|0)!=(o|0););o=i[h+48>>2]}if(i[h+56>>2]=r,i[h+52>>2]=k,i[h+48>>2]=t,!o)break l;G(o),r=i[h+56>>2]}i[h+52>>2]=k;l:{if(r>>>0>k>>>0){X[k+4>>1]=2,X[k>>1]=1,X[k+2>>1]=0,n=k+6|0;break l}if(o=i[h+48>>2],t=(k-o|0)/6|0,n=t+1|0,n>>>0>=715827883)break n;if(r=(r-o|0)/6|0,w=r<<1,r=r>>>0>=357913941?715827882:n>>>0>>0?w:n,r){if(r>>>0>=715827883)break t;n=U(m(r,6))}else n=0;if(t=n+m(t,6)|0,X[t+4>>1]=2,X[t>>1]=1,X[t+2>>1]=0,r=n+m(r,6)|0,n=t+6|0,(k|0)!=(o|0)){for(;t=t-6|0,k=k-6|0,w=Q[k>>1]|Q[k+2>>1]<<16,X[t>>1]=w,X[t+2>>1]=w>>>16,X[t+4>>1]=Q[k+4>>1],(k|0)!=(o|0););o=i[h+48>>2]}if(i[h+56>>2]=r,i[h+52>>2]=n,i[h+48>>2]=t,!o)break l;G(o),r=i[h+56>>2]}if(i[h+52>>2]=n,r>>>0>n>>>0)break f;if(t=i[h+48>>2],w=(n-t|0)/6|0,k=w+1|0,k>>>0>=715827883)break n;if(r=(r-t|0)/6|0,o=r<<1,o=r>>>0>=357913941?715827882:k>>>0>>0?o:k,o){if(o>>>0>=715827883)break t;r=U(m(o,6))}else r=0;k=r+m(w,6)|0,X[k+4>>1]=3;break A;case 2:break u;default:break e}k=i[h+52>>2],n=i[h+56>>2];u:{if(k>>>0>>0){X[k+4>>1]=1,X[k>>1]=0,X[k+2>>1]=0,o=k+6|0;break u}if(t=i[h+48>>2],_=(k-t|0)/6|0,r=_+1|0,r>>>0>=715827883)break k;if(n=(n-t|0)/6|0,w=n<<1,r=n>>>0>=357913941?715827882:r>>>0>>0?w:r,r){if(r>>>0>=715827883)break t;o=U(m(r,6))}if(n=m(_,6)+o|0,X[n+4>>1]=1,X[n>>1]=0,X[n+2>>1]=0,r=m(r,6)+o|0,o=n+6|0,(k|0)!=(t|0)){for(;n=n-6|0,k=k-6|0,_=Q[k>>1]|Q[k+2>>1]<<16,X[n>>1]=_,X[n+2>>1]=_>>>16,X[n+4>>1]=Q[k+4>>1],(k|0)!=(t|0););t=i[h+48>>2]}if(i[h+56>>2]=r,i[h+52>>2]=o,i[h+48>>2]=n,!t)break u;G(t)}i[h+52>>2]=o;break e}y0(),P()}_2(),P()}y0(),P()}y0(),P()}X[n+4>>1]=3,X[n>>1]=2,X[n+2>>1]=0,i[h+52>>2]=n+6;break e}if(X[k>>1]=2,X[k+2>>1]=0,w=k+6|0,(n|0)!=(t|0)){for(;k=k-6|0,n=n-6|0,Z=Q[n>>1]|Q[n+2>>1]<<16,X[k>>1]=Z,X[k+2>>1]=Z>>>16,X[k+4>>1]=Q[n+4>>1],(n|0)!=(t|0););t=i[_>>2]}i[h+56>>2]=m(o,6)+r,i[h+52>>2]=w,i[h+48>>2]=k,t&&G(t),i[h+52>>2]=w}r=i[u+36>>2],i[u+32>>2]=A,i[u+28>>2]=h,i[A+4>>2]=i[A+4>>2]+1,k=i[r+40>>2];e:{A:{if(k>>>0>2]){i[k+4>>2]=A,i[k>>2]=h,i[A+4>>2]=i[A+4>>2]+1,i[r+40>>2]=k+8,t=A;break A}if(k=Q2(r+36|0,u+28|0),t=i[u+32>>2],i[r+40>>2]=k,!t)break e}if(r=i[t+4>>2],i[t+4>>2]=r-1,r)break e;V[i[i[t>>2]+8>>2]](t),g(t)}i[u+16>>2]=i[u+56>>2],r=i[u+60>>2],i[u+20>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),r=i[u+20>>2],i[u+8>>2]=i[u+16>>2],i[u+12>>2]=r,Wi(e,u+8|0,v),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;e:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break e}_0(f,i[19566],i[19567])}f=i[A+4>>2],i[A+4>>2]=f-1,f||(V[i[i[A>>2]+8>>2]](A),g(A)),f=i[u+40>>2];e:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break e;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=i[u+52>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f);break i}f=i[u+32>>2];r:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=i[u+52>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[u+60>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[u+68>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=u+80|0}function wA(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0;_=B-32|0,B=_,w8(_+8|0,r,A,e+60|0);i:{if(i[_+8>>2]){e=i[_+12>>2],i[f>>2]=i[_+8>>2],i[f+4>>2]=e,e=i[_+20>>2],i[f+8>>2]=i[_+16>>2],i[f+12>>2]=e,i[f+16>>2]=i[_+24>>2];break i}o=B-48|0,B=o,i[e+72>>2]=0,k=o+24|0,A=B-16|0,B=A;r:{e:{if(n=i[e+60>>2],r=i[e+64>>2]-n|0,r>>>0>=2&&(t=r-2|0,r=i[e+72>>2],t>>>0>=r>>>0))break e;if(l[A+4|0]=0,l[A+15|0]=0,r0(k,2,140,A+4|0),l[A+15|0]>=0)break r;G(i[A+4>>2]);break r}if(n=r+n|0,n=s[n|0]|s[n+1|0]<<8,i[e+72>>2]=r+2,((n<<8|n>>>8)&65535)==65359){if(r=i[19565],i[k>>2]=i[19564],i[k+4>>2]=r,r=k+8|0,l[78275]>=0){k=i[19567],i[r>>2]=i[19566],i[r+4>>2]=k,i[r+8>>2]=i[19568];break r}_0(r,i[19566],i[19567]);break r}if(r=U(32),i[A+4>>2]=r,i[A+8>>2]=27,i[A+12>>2]=-2147483616,n=s[5671]|s[5672]<<8|(s[5673]<<16|s[5674]<<24),u=s[5667]|s[5668]<<8|(s[5669]<<16|s[5670]<<24),l[r|0]=u,l[r+1|0]=u>>>8,l[r+2|0]=u>>>16,l[r+3|0]=u>>>24,l[r+4|0]=n,l[r+5|0]=n>>>8,l[r+6|0]=n>>>16,l[r+7|0]=n>>>24,l[r+27|0]=0,n=s[5690]|s[5691]<<8|(s[5692]<<16|s[5693]<<24),l[r+23|0]=n,l[r+24|0]=n>>>8,l[r+25|0]=n>>>16,l[r+26|0]=n>>>24,n=s[5687]|s[5688]<<8|(s[5689]<<16|s[5690]<<24),u=s[5683]|s[5684]<<8|(s[5685]<<16|s[5686]<<24),l[r+16|0]=u,l[r+17|0]=u>>>8,l[r+18|0]=u>>>16,l[r+19|0]=u>>>24,l[r+20|0]=n,l[r+21|0]=n>>>8,l[r+22|0]=n>>>16,l[r+23|0]=n>>>24,n=s[5679]|s[5680]<<8|(s[5681]<<16|s[5682]<<24),u=s[5675]|s[5676]<<8|(s[5677]<<16|s[5678]<<24),l[r+8|0]=u,l[r+9|0]=u>>>8,l[r+10|0]=u>>>16,l[r+11|0]=u>>>24,l[r+12|0]=n,l[r+13|0]=n>>>8,l[r+14|0]=n>>>16,l[r+15|0]=n>>>24,r0(k,2,140,A+4|0),l[A+15|0]>=0)break r;G(i[A+4>>2])}B=A+16|0;r:{if(i[o+24>>2]){e=i[o+28>>2],i[f>>2]=i[o+24>>2],i[f+4>>2]=e,i[f+16>>2]=i[o+40>>2],e=i[o+36>>2],i[f+8>>2]=i[o+32>>2],i[f+12>>2]=e,i[o+40>>2]=0,i[o+32>>2]=0,i[o+36>>2]=0;break r}n=B-16|0,B=n;e:{A:{if(A=i[e+60>>2],u=i[e+64>>2]-A|0,u>>>0>=43&&(r=i[e+72>>2],r>>>0<=u-43>>>0))break A;if(l[n+4|0]=0,l[n+15|0]=0,r0(o,2,140,n+4|0),l[n+15|0]>=0)break e;G(i[n+4>>2]);break e}if(k=r+A|0,k=s[k|0]|s[k+1|0]<<8,t=r+2|0,i[e+72>>2]=t,((k<<8|k>>>8)&65535)!=65361){if(r=U(32),i[n+4>>2]=r,i[n+8>>2]=27,i[n+12>>2]=-2147483616,A=s[5643]|s[5644]<<8|(s[5645]<<16|s[5646]<<24),k=s[5639]|s[5640]<<8|(s[5641]<<16|s[5642]<<24),l[r|0]=k,l[r+1|0]=k>>>8,l[r+2|0]=k>>>16,l[r+3|0]=k>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+27|0]=0,A=s[5662]|s[5663]<<8|(s[5664]<<16|s[5665]<<24),l[r+23|0]=A,l[r+24|0]=A>>>8,l[r+25|0]=A>>>16,l[r+26|0]=A>>>24,A=s[5659]|s[5660]<<8|(s[5661]<<16|s[5662]<<24),k=s[5655]|s[5656]<<8|(s[5657]<<16|s[5658]<<24),l[r+16|0]=k,l[r+17|0]=k>>>8,l[r+18|0]=k>>>16,l[r+19|0]=k>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[5651]|s[5652]<<8|(s[5653]<<16|s[5654]<<24),k=s[5647]|s[5648]<<8|(s[5649]<<16|s[5650]<<24),l[r+8|0]=k,l[r+9|0]=k>>>8,l[r+10|0]=k>>>16,l[r+11|0]=k>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(o,2,140,n+4|0),l[n+15|0]>=0)break e;G(i[n+4>>2]);break e}if(k=A+t|0,k=s[k|0]|s[k+1|0]<<8,t=r+4|0,i[e+72>>2]=t,((k<<8|k>>>8)+16345&65535)>>>0<=16385){if(r=U(24),i[n+4>>2]=r,i[n+8>>2]=23,i[n+12>>2]=-2147483624,A=s[9151]|s[9152]<<8|(s[9153]<<16|s[9154]<<24),k=s[9147]|s[9148]<<8|(s[9149]<<16|s[9150]<<24),l[r|0]=k,l[r+1|0]=k>>>8,l[r+2|0]=k>>>16,l[r+3|0]=k>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+23|0]=0,A=s[9166]|s[9167]<<8|(s[9168]<<16|s[9169]<<24),k=s[9162]|s[9163]<<8|(s[9164]<<16|s[9165]<<24),l[r+15|0]=k,l[r+16|0]=k>>>8,l[r+17|0]=k>>>16,l[r+18|0]=k>>>24,l[r+19|0]=A,l[r+20|0]=A>>>8,l[r+21|0]=A>>>16,l[r+22|0]=A>>>24,A=s[9159]|s[9160]<<8|(s[9161]<<16|s[9162]<<24),k=s[9155]|s[9156]<<8|(s[9157]<<16|s[9158]<<24),l[r+8|0]=k,l[r+9|0]=k>>>8,l[r+10|0]=k>>>16,l[r+11|0]=k>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(o,2,140,n+4|0),l[n+15|0]>=0)break e;G(i[n+4>>2]);break e}if(k=A+t|0,k=s[k|0]|s[k+1|0]<<8,t=r+6|0,i[e+72>>2]=t,X[e>>1]=k<<8|k>>>8,k=A+t|0,k=s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24),t=r+10|0,i[e+72>>2]=t,i[e+4>>2]=k<<24|(k&65280)<<8|(k>>>8&65280|k>>>24),k=A+t|0,k=s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24),t=r+14|0,i[e+72>>2]=t,i[e+8>>2]=k<<24|(k&65280)<<8|(k>>>8&65280|k>>>24),k=A+t|0,k=s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24),t=r+18|0,i[e+72>>2]=t,i[e+12>>2]=k<<24|(k&65280)<<8|(k>>>8&65280|k>>>24),k=A+t|0,k=s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24),t=r+22|0,i[e+72>>2]=t,i[e+16>>2]=k<<24|(k&65280)<<8|(k>>>8&65280|k>>>24),k=A+t|0,k=s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24),t=r+26|0,i[e+72>>2]=t,i[e+20>>2]=k<<24|(k&65280)<<8|(k>>>8&65280|k>>>24),k=A+t|0,k=s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24),t=r+30|0,i[e+72>>2]=t,i[e+24>>2]=k<<24|(k&65280)<<8|(k>>>8&65280|k>>>24),k=A+t|0,k=s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24),t=r+34|0,i[e+72>>2]=t,i[e+28>>2]=k<<24|(k&65280)<<8|(k>>>8&65280|k>>>24),k=A+t|0,k=s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24),t=r+38|0,i[e+72>>2]=t,i[e+32>>2]=k<<24|(k&65280)<<8|(k>>>8&65280|k>>>24),A=A+t|0,A=s[A|0]|s[A+1|0]<<8,r=r+40|0,i[e+72>>2]=r,v=A<<8|A>>>8,(v-16385&65535)>>>0<=49151){if(r=U(24),i[n+4>>2]=r,i[n+8>>2]=23,i[n+12>>2]=-2147483624,A=s[9175]|s[9176]<<8|(s[9177]<<16|s[9178]<<24),k=s[9171]|s[9172]<<8|(s[9173]<<16|s[9174]<<24),l[r|0]=k,l[r+1|0]=k>>>8,l[r+2|0]=k>>>16,l[r+3|0]=k>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+23|0]=0,A=s[9190]|s[9191]<<8|(s[9192]<<16|s[9193]<<24),k=s[9186]|s[9187]<<8|(s[9188]<<16|s[9189]<<24),l[r+15|0]=k,l[r+16|0]=k>>>8,l[r+17|0]=k>>>16,l[r+18|0]=k>>>24,l[r+19|0]=A,l[r+20|0]=A>>>8,l[r+21|0]=A>>>16,l[r+22|0]=A>>>24,A=s[9183]|s[9184]<<8|(s[9185]<<16|s[9186]<<24),k=s[9179]|s[9180]<<8|(s[9181]<<16|s[9182]<<24),l[r+8|0]=k,l[r+9|0]=k>>>8,l[r+10|0]=k>>>16,l[r+11|0]=k>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(o,2,140,n+4|0),l[n+15|0]>=0)break e;G(i[n+4>>2]);break e}if(r>>>0<=u+m(v&65535,-3)>>>0){r=i[e+40>>2];A:{f:{for(;;){k=i[e+60>>2],A=i[e+72>>2],u=s[k+A|0],t=A+1|0,i[e+72>>2]=t,h=s[k+t|0],t=A+2|0,i[e+72>>2]=t,Z=s[k+t|0],i[e+72>>2]=A+3,p=u>>>7|0,W=(u&127)+1|0,k=i[e+44>>2];k:{if(k>>>0>r>>>0){A=h|(W<<16|p<<24|Z<<8),l[r|0]=A,l[r+1|0]=A>>>8,l[r+2|0]=A>>>16,l[r+3|0]=A>>>24,r=r+4|0;break k}if(t=i[e+36>>2],u=r-t>>2,A=u+1|0,A>>>0>=1073741824)break f;if(k=k-t|0,w=k>>1,w=k>>>0>=2147483644?1073741823:A>>>0>>0?w:A,w){if(w>>>0>=1073741824)break A;k=U(w<<2)}else k=0;if(u=k+(u<<2)|0,A=h|(W<<16|p<<24|Z<<8),l[u|0]=A,l[u+1|0]=A>>>8,l[u+2|0]=A>>>16,l[u+3|0]=A>>>24,A=u+4|0,(r|0)!=(t|0)){for(;u=u-4|0,r=r-4|0,h=s[r|0]|s[r+1|0]<<8|(s[r+2|0]<<16|s[r+3|0]<<24),l[u|0]=h,l[u+1|0]=h>>>8,l[u+2|0]=h>>>16,l[u+3|0]=h>>>24,(r|0)!=(t|0););t=i[e+36>>2]}i[e+44>>2]=k+(w<<2),i[e+40>>2]=A,i[e+36>>2]=u,t&&G(t),r=A}if(i[e+40>>2]=r,C=C+1|0,!((C&65535)>>>0<(v&65535)>>>0))break}V3(o);break e}y0(),P()}_2(),P()}if(r=C1(n+4|0,31341),r0(o,2,140,r),l[r+11|0]>=0)break e;G(i[r>>2])}if(B=n+16|0,A=i[o+4>>2],r=i[o>>2],i[o+24>>2]=r,i[o+28>>2]=A,l[o+43|0]<0&&(G(i[o+32>>2]),r=i[o+24>>2]),A=i[o+12>>2],i[o+32>>2]=i[o+8>>2],i[o+36>>2]=A,i[o+40>>2]=i[o+16>>2],r){e=i[o+28>>2],i[f>>2]=i[o+24>>2],i[f+4>>2]=e,i[f+16>>2]=i[o+40>>2],e=i[o+36>>2],i[f+8>>2]=i[o+32>>2],i[f+12>>2]=e,i[o+32>>2]=0,i[o+36>>2]=0,i[o+40>>2]=0;break r}if(r=i[e+72>>2],A=i[e+60>>2],r>>>0<(i[e+64>>2]-A|0)-2>>>0){if(A=r+A|0,A=s[A|0]|s[A+1|0]<<8,i[e+72>>2]=r+2,((A<<8|A>>>8)&65535)==65360){k=B-16|0,B=k,A=i[e+72>>2],r=i[e+60>>2];e:{if(A>>>0>(i[e+64>>2]-r|0)-8>>>0){if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,140,k+4|0),l[k+15|0]>=0)break e;G(i[k+4>>2]);break e}if(n=r+A|0,n=s[n|0]|s[n+1|0]<<8,u=A+2|0,i[e+72>>2]=u,((n<<8|n>>>8)-71&65535)>>>0<=65472){if(e=U(24),i[k+4>>2]=e,i[k+8>>2]=23,i[k+12>>2]=-2147483624,r=s[9223]|s[9224]<<8|(s[9225]<<16|s[9226]<<24),A=s[9219]|s[9220]<<8|(s[9221]<<16|s[9222]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+23|0]=0,r=s[9238]|s[9239]<<8|(s[9240]<<16|s[9241]<<24),A=s[9234]|s[9235]<<8|(s[9236]<<16|s[9237]<<24),l[e+15|0]=A,l[e+16|0]=A>>>8,l[e+17|0]=A>>>16,l[e+18|0]=A>>>24,l[e+19|0]=r,l[e+20|0]=r>>>8,l[e+21|0]=r>>>16,l[e+22|0]=r>>>24,r=s[9231]|s[9232]<<8|(s[9233]<<16|s[9234]<<24),A=s[9227]|s[9228]<<8|(s[9229]<<16|s[9230]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,140,k+4|0),l[k+15|0]>=0)break e;G(i[k+4>>2]);break e}for(r=r+u|0,r=s[r|0]|s[r+1|0]<<8|(s[r+2|0]<<16|s[r+3|0]<<24),i[e+72>>2]=A+6,v=r<<24|(r&65280)<<8|(r>>>8&65280|r>>>24),u=2;;){A:{if(!(v>>>32-u&1))break A;if((u|0)==15){r=i[e+72>>2],A=r+i[e+60>>2]|0,n=s[A+1|0],A=s[A|0],i[e+72>>2]=r+2,r=A<<24|n<<16|15,i[k>>2]=r,i[k+4>>2]=r;f:{if(r=i[e+52>>2],n=i[e+56>>2],r>>>0>>0){A=Q[k>>1]|Q[k+2>>1]<<16,X[r>>1]=A,X[r+2>>1]=A>>>16,i[e+52>>2]=r+4;break f}k:{if(t=i[e+48>>2],h=r-t>>2,A=h+1|0,A>>>0<1073741824){if(n=n-t|0,w=n>>1,w=n>>>0>=2147483644?1073741823:A>>>0>>0?w:A,w){if(w>>>0>=1073741824)break k;A=U(w<<2)}else A=0;if(n=A+(h<<2)|0,h=Q[k>>1]|Q[k+2>>1]<<16,X[n>>1]=h,X[n+2>>1]=h>>>16,h=n+4|0,(r|0)!=(t|0)){for(;n=n-4|0,r=r-4|0,Z=Q[r>>1]|Q[r+2>>1]<<16,X[n>>1]=Z,X[n+2>>1]=Z>>>16,(r|0)!=(t|0););t=i[e+48>>2]}i[e+56>>2]=A+(w<<2),i[e+52>>2]=h,i[e+48>>2]=n,t&&G(t),i[e+52>>2]=h;break f}y0(),P()}_2(),P()}break A}n=k+4|0,r=H0(x(98732,20800,39),u),A=i[(i[i[r>>2]-12>>2]+r|0)+28>>2],i[n>>2]=A,(A|0)!=100008&&(i[A+4>>2]=i[A+4>>2]+1),A=x0(n,100192),A=V[i[i[A>>2]+28>>2]](A,10)|0,O0(n),D9(r,A),Ni(r),i[e+72>>2]=i[e+72>>2]+2}if(u=u+1|0,(u|0)==33)break}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break e}_0(f,i[19566],i[19567])}B=k+16|0;break r}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break r}_0(f,i[19566],i[19567]);break r}if(e=U(40),i[o>>2]=e,i[o+4>>2]=33,i[o+8>>2]=-2147483608,r=s[18255]|s[18256]<<8|(s[18257]<<16|s[18258]<<24),A=s[18251]|s[18252]<<8|(s[18253]<<16|s[18254]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+33|0]=0,l[e+32|0]=s[18283],r=s[18279]|s[18280]<<8|(s[18281]<<16|s[18282]<<24),A=s[18275]|s[18276]<<8|(s[18277]<<16|s[18278]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[18271]|s[18272]<<8|(s[18273]<<16|s[18274]<<24),A=s[18267]|s[18268]<<8|(s[18269]<<16|s[18270]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[18263]|s[18264]<<8|(s[18265]<<16|s[18266]<<24),A=s[18259]|s[18260]<<8|(s[18261]<<16|s[18262]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,140,o),l[o+11|0]>=0)break r;G(i[o>>2])}if(l[o+43|0]<0&&G(i[o+32>>2]),B=o+48|0,l[_+27|0]>=0)break i;G(i[_+16>>2])}B=_+32|0}function _A(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0;for(Z=B-48|0,B=Z,A=i[r>>2],r=i[r+4>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),i[e>>2]=A,k=i[e+4>>2],i[e+4>>2]=r,k&&(r=i[k+4>>2],i[k+4>>2]=r-1,r||(V[i[i[k>>2]+8>>2]](k),g(k)),A=i[e>>2],r=i[e+4>>2]),i[Z+20>>2]=r,i[Z+16>>2]=A,r&&(i[r+4>>2]=i[r+4>>2]+1),r=i[Z+20>>2],i[Z+8>>2]=i[Z+16>>2],i[Z+12>>2]=r,W=_e(Z+24|0,Z+8|0,-1,0),n=B-192|0,B=n,o=e+8|0;;){i[n+48>>2]=0,i[n+52>>2]=0,_r(f,W,n+48|0),A=2;i:{r:{if(s[W+20|0]|!i[W+16>>2]||(r=i[f>>2],(r|0)==2&i[f+4>>2]==100))break r;if(A=1,(r|0)!=i[19564])break i;A=i[e+12>>2];e:{if(A>>>0>2]){r=i[n+48>>2],i[A>>2]=r,k=i[n+52>>2],i[A+4>>2]=k,k&&(i[k+4>>2]=i[k+4>>2]+1),A=A+8|0;break e}A=Q2(o,n+48|0),r=i[n+48>>2]}i[e+12>>2]=A;e:{if(i[r+16>>2]!=1835365473)break e;A=0,k=N0(r,68572,68824);A:{if(!k||(r=i[n+52>>2],!r))break A;i[r+4>>2]=i[r+4>>2]+1,A=r}if(i[e+36>>2]=k,r=i[e+40>>2],i[e+40>>2]=A,!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break e;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=0,k=i[n+48>>2],i[k+16>>2]!=1718909296)break r;t=N0(k,68572,68764),r=0;e:{if(!t||(k=i[n+52>>2],r=0,!k))break e;i[k+4>>2]=i[k+4>>2]+1,r=k}if(i[e+20>>2]=t,k=i[e+24>>2],i[e+24>>2]=r,!k||(r=i[k+4>>2],i[k+4>>2]=r-1,r))break r;V[i[i[k>>2]+8>>2]](k),g(k)}if(l[f+19|0]>=0)break i;G(i[f+8>>2])}r=i[n+52>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A)break}i:{if(A-2|0)break i;if(r=i[e+20>>2],!r){if(l[n+48|0]=0,l[n+59|0]=0,r0(f,2,102,n+48|0),l[n+59|0]>=0)break i;G(i[n+48>>2]);break i}r:{if(_i(r,1751476579)||_i(i[e+20>>2],1751476600)||_i(i[e+20>>2],1835623985)||_i(i[e+20>>2],1635150182)||_i(i[e+20>>2],829450595)||_i(i[e+20>>2],1785750887))break r;e=n+48|0,i[e+8>>2]=54496,i[e+64>>2]=54516,r=i[13633],i[e>>2]=r,i[e+i[r-12>>2]>>2]=i[13634],i[e+4>>2]=0,r=e+i[i[e>>2]-12>>2]|0,A=e+12|0,b0(r,A),i[r+72>>2]=0,i[r+76>>2]=-1,r=i[13635],i[e+8>>2]=r,k=i[r-12>>2],r=e+8|0,i[k+r>>2]=i[13636],k=i[13632],i[e>>2]=k,i[e+i[k-12>>2]>>2]=i[13637],i[e+64>>2]=54516,i[e>>2]=54476,i[e+8>>2]=54496,I=$0(A),y=53552,i[I>>2]=y,i[e+52>>2]=0,i[e+56>>2]=0,i[e+44>>2]=0,i[e+48>>2]=0,i[e+60>>2]=24,x(r,30588,44),r=n+36|0,i2(r,A),r0(f,3,0,r),l[n+47|0]<0&&G(i[n+36>>2]),z6(e);break i}if(r=i[e+36>>2],!r){if(l[n+48|0]=0,l[n+59|0]=0,r0(f,2,104,n+48|0),l[n+59|0]>=0)break i;G(i[n+48>>2]);break i}T8(n+48|0,r,1751411826);r:{e:{if(r=i[n+48>>2],!r||(A=N0(r,68572,68884),!A))break e;if(r=i[n+52>>2],!r){r=0;break r}i[r+4>>2]=i[r+4>>2]+1;break r}r=0,A=0}i[e+28>>2]=A,A=i[e+32>>2],i[e+32>>2]=r;r:{if(!A||(r=i[A+4>>2],i[A+4>>2]=r-1,r))break r;V[i[i[A>>2]+8>>2]](A),g(A)}r=i[n+52>>2];r:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(r=i[e+28>>2],!(!r|i[r+60>>2]==1885954932)){if(l[n+48|0]=0,l[n+59|0]=0,r0(f,2,114,n+48|0),l[n+59|0]>=0)break i;G(i[n+48>>2]);break i}T8(n+48|0,i[e+36>>2],1885959277);r:{e:{if(r=i[n+48>>2],!r||(A=N0(r,68572,68944),!A))break e;if(r=i[n+52>>2],!r){r=0;break r}i[r+4>>2]=i[r+4>>2]+1;break r}r=0,A=0}i[e+84>>2]=A,A=i[e+88>>2],i[e+88>>2]=r;r:{if(!A||(r=i[A+4>>2],i[A+4>>2]=r-1,r))break r;V[i[i[A>>2]+8>>2]](A),g(A)}r=i[n+52>>2];r:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(!i[e+84>>2]){if(l[n+48|0]=0,l[n+59|0]=0,r0(f,2,107,n+48|0),l[n+59|0]>=0)break i;G(i[n+48>>2]);break i}T8(n+48|0,i[e+36>>2],1768977008);r:{e:{if(r=i[n+48>>2],!r||(A=N0(r,68572,69184),!A))break e;if(r=i[n+52>>2],!r){r=0;break r}i[r+4>>2]=i[r+4>>2]+1;break r}r=0,A=0}i[e+100>>2]=A,A=i[e+104>>2],i[e+104>>2]=r;r:{if(!A||(r=i[A+4>>2],i[A+4>>2]=r-1,r))break r;V[i[i[A>>2]+8>>2]](A),g(A)}r=i[n+52>>2];r:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(r=i[e+100>>2],!r){if(l[n+48|0]=0,l[n+59|0]=0,r0(f,2,112,n+48|0),l[n+59|0]>=0)break i;G(i[n+48>>2]);break i}T8(n+48|0,r,1768973167);r:{e:{if(r=i[n+48>>2],!r||(A=N0(r,68572,69244),!A))break e;if(r=i[n+52>>2],!r){r=0;break r}i[r+4>>2]=i[r+4>>2]+1;break r}r=0,A=0}i[e+44>>2]=A,A=i[e+48>>2],i[e+48>>2]=r;r:{if(!A||(r=i[A+4>>2],i[A+4>>2]=r-1,r))break r;V[i[i[A>>2]+8>>2]](A),g(A)}r=i[n+52>>2];r:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(!i[e+44>>2]){if(e=f,f=C1(n+48|0,31341),r0(e,2,108,f),l[f+11|0]>=0)break i;G(i[f>>2]);break i}if(o=B-32|0,B=o,h9(o+20|0,i[e+100>>2],1768975713),k=n+48|0,i[k+8>>2]=0,i[k>>2]=0,i[k+4>>2]=0,A=i[o+20>>2],u=i[o+24>>2],(A|0)!=(u|0)){for(;;){r:{e:{if(r=i[A>>2],!r||(r=N0(r,68572,69352),!r))break e;if(i[o+12>>2]=r,t=i[A+4>>2],i[o+16>>2]=t,!t)break r;i[t+4>>2]=i[t+4>>2]+1;break r}i[o+12>>2]=0,i[o+16>>2]=0,r=0}t=i[k+4>>2];r:{if(t>>>0>2]){i[t>>2]=r,i[t+4>>2]=i[o+16>>2],i[k+4>>2]=t+8;break r}if(t=z2(k,o+12|0),r=i[o+16>>2],i[k+4>>2]=t,!r||(t=i[r+4>>2],i[r+4>>2]=t-1,t))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A+8|0,(u|0)==(A|0))break}A=i[o+20>>2]}if(A){if(r=A,k=i[o+24>>2],(r|0)!=(k|0)){for(;;){r=i[k-4>>2];r:{if(!r||(t=i[r+4>>2],i[r+4>>2]=t-1,t))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(k=k-8|0,(k|0)==(A|0))break}r=i[o+20>>2]}i[o+24>>2]=A,G(r)}B=o+32|0;r:{e:{if(A=i[n+48>>2],r=i[n+52>>2],(A|0)!=(r|0)){if(r-A>>>0>8)for(r=1;;){w=i[A>>2],o=i[w+60>>2],A=i[(r<<3)+A>>2],t=i[A+56>>2],u=t,k=i[A+60>>2],v=k,A=0,h=k-t>>4;A:{if((h|0)<=0)break A;f:{k:{n:{t:{o:{if(_=i[w+64>>2],(h|0)<=_-o>>4){if((h|0)<=0){v=(h<<4)+t|0,A=o;break f}u:{if((u|0)==(v|0)){A=o;break u}for(A=o;;){if(k=i[t>>2],i[A+12>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=k,k=i[t+8>>2],u=i[t+4>>2],(k|0)!=(u|0)){if(k=k-u|0,(k|0)<0)break o;o=U(k),i[A+8>>2]=o,i[A+4>>2]=o,h=k+o|0,i[A+12>>2]=h,l0(o,u,k),i[A+8>>2]=h}if(A=A+16|0,t=t+16|0,(v|0)==(t|0))break}}i[w+60>>2]=A;break A}if(k=i[w+56>>2],t=h+(o-k>>4)|0,t>>>0>=268435456)break t;if(v=_-k|0,_=v>>3,t=v>>>0>=2147483632?268435455:t>>>0<_>>>0?_:t,t){if(t>>>0>=268435456)break n;A=U(t<<4)}for(k=(o-k&-16)+A|0,_=k+(h<<4)|0,p=(t<<4)+A|0,A=k;;){if(t=i[u>>2],i[A+12>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=t,t=i[u+8>>2],v=i[u+4>>2],(t|0)!=(v|0)){if(t=t-v|0,(t|0)<0)break k;h=U(t),i[A+8>>2]=h,i[A+4>>2]=h,C=t+h|0,i[A+12>>2]=C,l0(h,v,t),i[A+8>>2]=C}if(u=u+16|0,A=A+16|0,(_|0)==(A|0))break}if(_=i[w+56>>2],(_|0)!=(o|0))for(u=o,t=k;k=t-16|0,h=u-16|0,i[k>>2]=i[h>>2],v=u-12|0,i[t-12>>2]=i[v>>2],i[t-8>>2]=i[u-8>>2],C=t-4|0,t=u-4|0,i[C>>2]=i[t>>2],i[t>>2]=0,i[v>>2]=0,i[v+4>>2]=0,t=k,u=h,(_|0)!=(u|0););if(u=i[w+60>>2],(u|0)!=(o|0)){for(;t=i[o>>2],i[A+12>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=t,i[A+4>>2]=i[o+4>>2],i[A+8>>2]=i[o+8>>2],i[A+12>>2]=i[o+12>>2],i[o+12>>2]=0,i[o+4>>2]=0,i[o+8>>2]=0,A=A+16|0,o=o+16|0,(u|0)!=(o|0););u=i[w+60>>2]}if(i[w+64>>2]=p,i[w+60>>2]=A,A=i[w+56>>2],i[w+56>>2]=k,(A|0)!=(u|0))for(;k=i[u-12>>2],k&&(i[u-8>>2]=k,G(k)),u=u-16|0,(A|0)!=(u|0););A&&G(A);break A}y0(),P()}y0(),P()}_2(),P()}y0(),P()}if(k=h<<4,_=k+o|0,t=A,k=A-k|0,o>>>0>k>>>0)for(h=k;p=i[h>>2],i[t+12>>2]=0,i[t+4>>2]=0,i[t+8>>2]=0,i[t>>2]=p,i[t+4>>2]=i[h+4>>2],i[t+8>>2]=i[h+8>>2],i[t+12>>2]=i[h+12>>2],i[h+12>>2]=0,i[h+4>>2]=0,i[h+8>>2]=0,t=t+16|0,h=h+16|0,h>>>0>>0;);if(i[w+60>>2]=t,(A|0)!=(_|0))for(;t=A-16|0,h=k-16|0,i[t>>2]=i[h>>2],w=A-12|0,_=i[w>>2],_&&(p=A-8|0,i[p>>2]=_,G(_),i[p>>2]=0,i[p+4>>2]=0,i[w>>2]=0),_=w,w=k-12|0,i[_>>2]=i[w>>2],i[A-8>>2]=i[k-8>>2],_=A-4|0,A=k-4|0,i[_>>2]=i[A>>2],i[A>>2]=0,i[w>>2]=0,i[w+4>>2]=0,A=t,k=h,(o|0)!=(k|0););if((u|0)==(v|0))break A;for(A=o;i[A>>2]=i[u>>2],(A|0)!=(u|0)&&(k=i[u+4>>2],o=i[u+8>>2],ki(A+4|0,k,o,o-k>>2)),A=A+16|0,u=u+16|0,(v|0)!=(u|0););}if(r=r+1|0,A=i[n+48>>2],!(r>>>0>2]-A>>3>>>0))break}r=i[A>>2],A=i[A+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[e+52>>2]=r,r=i[e+56>>2],i[e+56>>2]=A;A:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break A;V[i[i[r>>2]+8>>2]](r),g(r)}A=n+16|0,T8(A,i[e+36>>2],1768714083),r=n+36|0;A:{f:{if(k=i[A>>2],!k||(k=N0(k,68572,69004),!k))break f;if(i[r>>2]=k,k=i[A+4>>2],i[r+4>>2]=k,!k)break A;i[k+4>>2]=i[k+4>>2]+1;break A}i[r>>2]=0,i[r+4>>2]=0}if(si(e+60|0,r),v1(r),v1(A),i[e+60>>2])break e;if(e=f,f=C1(r,31341),r0(e,2,110,f),l[f+11|0]>=0)break r;G(i[f>>2]);break r}if(e=f,f=C1(n+36|0,31341),r0(e,2,109,f),l[f+11|0]>=0)break r;G(i[f>>2]);break r}A=n+16|0,T8(A,i[e+36>>2],1768186228),r=n+36|0;e:{A:{if(k=i[A>>2],!k||(k=N0(k,68572,70144),!k))break A;if(i[r>>2]=k,k=i[A+4>>2],i[r+4>>2]=k,!k)break e;i[k+4>>2]=i[k+4>>2]+1;break e}i[r>>2]=0,i[r+4>>2]=0}si(e+68|0,r),v1(r),v1(A),T8(A,i[e+36>>2],1769104742);e:{A:{if(k=i[A>>2],!k||(k=N0(k,68572,69652),!k))break A;if(i[r>>2]=k,k=i[A+4>>2],i[r+4>>2]=k,!k)break e;i[k+4>>2]=i[k+4>>2]+1;break e}i[r>>2]=0,i[r+4>>2]=0}o=e+76|0,si(o,r),v1(r),v1(A);e:{if(!i[e+76>>2])break e;if(r=i[i[e+84>>2]+56>>2],k=B-32|0,B=k,i[k+16>>2]=0,i[k+20>>2]=0,i[k+8>>2]=0,i[k+12>>2]=0,i[k+24>>2]=1065353216,Gk(f,e,r,o,k+8|0),A=i[k+16>>2],A)for(;r=i[A>>2],G(A),A=r,!!r;);if(r=i[k+8>>2],i[k+8>>2]=0,r&&G(r),B=k+32|0,i[f>>2])break r;if(l[f+19|0]>=0)break e;G(i[f+8>>2])}A=n+16|0,T8(A,i[e+36>>2],1768517222),r=n+36|0;e:{A:{if(k=i[A>>2],!k||(k=N0(k,68572,69124),!k))break A;if(i[r>>2]=k,k=i[A+4>>2],i[r+4>>2]=k,!k)break e;i[k+4>>2]=i[k+4>>2]+1;break e}i[r>>2]=0,i[r+4>>2]=0}if(si(e+92|0,r),v1(r),v1(A),A=i[e+92>>2],!A){if(e=f,f=C1(r,31341),r0(e,2,111,f),l[f+11|0]>=0)break r;G(i[f>>2]);break r}h9(n+36|0,A,1768842853),r=i[n+36>>2],u=i[n+40>>2];e:{if((r|0)!=(u|0))for(o=e+108|0;;){A:{f:{if(e=i[r>>2],!e||(e=N0(e,68572,69064),!e))break f;if(i[n+28>>2]=e,e=i[r+4>>2],i[n+32>>2]=e,!e)break A;i[e+4>>2]=i[e+4>>2]+1;break A}i[n+28>>2]=0,i[n+32>>2]=0}if(e=i[n+28>>2],!e){e=f,f=C1(n+16|0,31341),r0(e,2,125,f),l[f+11|0]<0&&G(i[f>>2]),v1(n+28|0);break e}A=i[e+56>>2],i[n+20>>2]=e,i[n+16>>2]=A,e=i[n+32>>2],i[n+24>>2]=e,e&&(i[e+4>>2]=i[e+4>>2]+1),t=i[n+16>>2],A=i[o+4>>2];A:{f:{if(!A){k=o+4|0,e=k;break f}for(;;){if(e=A,k=i[A+16>>2],k>>>0>t>>>0){if(k=A,A=i[A>>2],A)continue;break f}if(k>>>0>=t>>>0){e=0;break A}if(A=i[e+4>>2],!A)break}k=e+4|0}A=U(28),i[A+16>>2]=t,i[A+20>>2]=i[n+20>>2],i[A+24>>2]=i[n+24>>2],i[n+20>>2]=0,i[n+24>>2]=0,i[A+8>>2]=e,i[A>>2]=0,i[A+4>>2]=0,i[k>>2]=A,e=A,t=i[i[o>>2]>>2],t&&(i[o>>2]=t,e=i[k>>2]),D1(i[o+4>>2],e),i[o+8>>2]=i[o+8>>2]+1,e=1}l[n+12|0]=e,i[n+8>>2]=A,e=i[n+24>>2];A:{if(!e||(A=i[e+4>>2],i[e+4>>2]=A-1,A))break A;V[i[i[e>>2]+8>>2]](e),g(e)}if(v1(n+28|0),r=r+8|0,(u|0)==(r|0))break}V3(f)}_3(n+36|0)}_3(n+48|0)}B=n+192|0,f=i[W+4>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=Z+48|0}function vA(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0;w=B-16|0,B=w,n=U(136),i[n+4>>2]=0,i[n+8>>2]=0,i[n>>2]=72792,B0(n+20|0,0,104),h=i[n+4>>2],t=h+1|0,i[n+4>>2]=t,i[n+56>>2]=0,i[n+60>>2]=0,i[n+44>>2]=99,i[n+48>>2]=99,i[n+32>>2]=3795,o=n- -64|0,i[o>>2]=0,i[o+4>>2]=0,i[n+132>>2]=0,i[n+124>>2]=0,i[n+128>>2]=0,i[n+84>>2]=1,i[n+88>>2]=1,i[n+72>>2]=n+76,i[n+92>>2]=0,i[n+96>>2]=0,i[n+100>>2]=0,i[n+104>>2]=0,i[n+108>>2]=0,i[n+112>>2]=0,l[n+113|0]=0,l[n+114|0]=0,l[n+115|0]=0,l[n+116|0]=0,l[n+117|0]=0,l[n+118|0]=0,l[n+119|0]=0,l[n+120|0]=0,o=n+12|0,i[n+12>>2]=o,i[n+8>>2]=i[n+8>>2]+1,i[n+4>>2]=h,i[n+16>>2]=n,t||(V[i[i[n>>2]+8>>2]](n),g(n)),i[r>>2]=o,h=i[r+4>>2],i[r+4>>2]=n;i:{if(!h||(n=i[h+4>>2],i[h+4>>2]=n-1,n))break i;V[i[i[h>>2]+8>>2]](h),g(h)}p=i[e+32>>2],_=i[r>>2],v=i[e+36>>2],i[_+36>>2]=v,i[_+32>>2]=p,i[_+28>>2]=k,i[_+24>>2]=A;i:{r:{e:{A:{f:{k:{n:{t:{o:{u:{l:{if(o=i[e+64>>2],o){for(h=e- -64|0,t=h,n=o;u=i[n+16>>2]<10,t=u?t:n,n=i[(u<<2)+n>>2],!!n;);if(!((t|0)==(h|0)|i[t+16>>2]>10)){for(n=h;t=i[o+16>>2]<10,n=t?n:o,o=i[(t<<2)+o>>2],!!o;);t=255,J0(_,10,A,k,(n|0)==(h|0)|i[n+16>>2]>10?t:s[n+20|0]);break r}switch(u=h,n=o,t=n,p|0){case 2:break o;case 1:break l;case 0:break n;default:break f}}switch(p|0){case 2:break t;case 1:break u;case 0:break k;default:break f}}for(;t=i[n+16>>2]<3,u=t?u:n,n=i[(t<<2)+n>>2],!!n;);if((u|0)==(h|0)|i[u+16>>2]>3)break u;for(t=h,n=o;u=i[n+16>>2]<4,t=u?t:n,n=i[(u<<2)+n>>2],!!n;);if((t|0)==(h|0)|i[t+16>>2]>4)break u;for(t=h,n=o;u=i[n+16>>2]<5,t=u?t:n,n=i[(u<<2)+n>>2],!!n;);if((t|0)==(h|0)|i[t+16>>2]>=6)break u;for(n=h;t=i[o+16>>2]<3,n=t?n:o,o=i[(t<<2)+o>>2],!!o;);o=255,t=255;l:{if((n|0)==(h|0)||(t=255,i[n+16>>2]>3))break l;t=s[n+20|0]}J0(_,3,A,k,t),_=i[r>>2],n=i[h>>2];l:{if(!n)break l;for(t=h;u=i[n+16>>2]<4,t=u?t:n,n=i[(u<<2)+n>>2],!!n;);if((t|0)==(h|0)|i[t+16>>2]>4)break l;o=s[t+20|0]}J0(_,4,A,k,o),_=i[r>>2],o=255,n=i[h>>2];l:{if(!n)break l;for(t=h;u=i[n+16>>2]<5,t=u?t:n,n=i[(u<<2)+n>>2],!!n;);if((t|0)==(h|0)|i[t+16>>2]>5)break l;o=s[t+20|0]}J0(_,5,A,k,o);break e}if(e=U(32),i[w+4>>2]=e,i[w+8>>2]=31,i[w+12>>2]=-2147483616,r=s[4233]|s[4234]<<8|(s[4235]<<16|s[4236]<<24),A=s[4229]|s[4230]<<8|(s[4231]<<16|s[4232]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+31|0]=0,r=s[4256]|s[4257]<<8|(s[4258]<<16|s[4259]<<24),A=s[4252]|s[4253]<<8|(s[4254]<<16|s[4255]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,l[e+27|0]=r,l[e+28|0]=r>>>8,l[e+29|0]=r>>>16,l[e+30|0]=r>>>24,r=s[4249]|s[4250]<<8|(s[4251]<<16|s[4252]<<24),A=s[4245]|s[4246]<<8|(s[4247]<<16|s[4248]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[4241]|s[4242]<<8|(s[4243]<<16|s[4244]<<24),A=s[4237]|s[4238]<<8|(s[4239]<<16|s[4240]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,0,w+4|0),l[w+15|0]>=0)break i;G(i[w+4>>2]);break i}for(;n=i[t+16>>2],u=(n|0)<0?u:t,t=i[(n>>>29&4)+t>>2],!!t;);if((u|0)==(h|0)|i[u+16>>2]>0)break t;for(n=h;t=i[o+16>>2],n=(t|0)<0?n:o,o=i[(t>>>29&4)+o>>2],!!o;);t=255,J0(_,0,A,k,(n|0)==(h|0)|i[n+16>>2]>0?t:s[n+20|0]);break e}if(e=U(40),i[w+4>>2]=e,i[w+8>>2]=32,i[w+12>>2]=-2147483608,r=s[9901]|s[9902]<<8|(s[9903]<<16|s[9904]<<24),A=s[9897]|s[9898]<<8|(s[9899]<<16|s[9900]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+32|0]=0,r=s[9925]|s[9926]<<8|(s[9927]<<16|s[9928]<<24),A=s[9921]|s[9922]<<8|(s[9923]<<16|s[9924]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[9917]|s[9918]<<8|(s[9919]<<16|s[9920]<<24),A=s[9913]|s[9914]<<8|(s[9915]<<16|s[9916]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[9909]|s[9910]<<8|(s[9911]<<16|s[9912]<<24),A=s[9905]|s[9906]<<8|(s[9907]<<16|s[9908]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,0,w+4|0),l[w+15|0]>=0)break i;G(i[w+4>>2]);break i}for(;t=i[n+16>>2],u=(t|0)<0?u:n,n=i[(t>>>29&4)+n>>2],!!n;);if((u|0)==(h|0)|i[u+16>>2]>0)break k;for(n=h;t=i[o+16>>2]<=0,n=t?n:o,o=i[(t<<2)+o>>2],!!o;);if((n|0)==(h|0)|i[n+16>>2]>1)break k;if(H2(e,2))break A}if(e=U(40),i[w+4>>2]=e,i[w+8>>2]=34,i[w+12>>2]=-2147483608,r=s[4198]|s[4199]<<8|(s[4200]<<16|s[4201]<<24),A=s[4194]|s[4195]<<8|(s[4196]<<16|s[4197]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+34|0]=0,r=s[4226]|s[4227]<<8,l[e+32|0]=r,l[e+33|0]=r>>>8,r=s[4222]|s[4223]<<8|(s[4224]<<16|s[4225]<<24),A=s[4218]|s[4219]<<8|(s[4220]<<16|s[4221]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[4214]|s[4215]<<8|(s[4216]<<16|s[4217]<<24),A=s[4210]|s[4211]<<8|(s[4212]<<16|s[4213]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[4206]|s[4207]<<8|(s[4208]<<16|s[4209]<<24),A=s[4202]|s[4203]<<8|(s[4204]<<16|s[4205]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,0,w+4|0),l[w+15|0]>=0)break i;G(i[w+4>>2]);break i}if(e=U(32),i[w+4>>2]=e,i[w+8>>2]=27,i[w+12>>2]=-2147483616,r=s[6274]|s[6275]<<8|(s[6276]<<16|s[6277]<<24),A=s[6270]|s[6271]<<8|(s[6272]<<16|s[6273]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+27|0]=0,r=s[6293]|s[6294]<<8|(s[6295]<<16|s[6296]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,r=s[6290]|s[6291]<<8|(s[6292]<<16|s[6293]<<24),A=s[6286]|s[6287]<<8|(s[6288]<<16|s[6289]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[6282]|s[6283]<<8|(s[6284]<<16|s[6285]<<24),A=s[6278]|s[6279]<<8|(s[6280]<<16|s[6281]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,0,w+4|0),l[w+15|0]>=0)break i;G(i[w+4>>2]);break i}x9(A,k,1,v,w+4|0,w),J0(i[r>>2],0,A,k,U0(e,0)),J0(i[r>>2],1,i[w+4>>2],i[w>>2],U0(e,1)),J0(i[r>>2],2,i[w+4>>2],i[w>>2],U0(e,2))}if(o=i[h>>2],!o)break r;for(t=h,n=o;_=i[n+16>>2]<6,t=_?t:n,n=i[(_<<2)+n>>2],!!n;);if((t|0)==(h|0)|i[t+16>>2]>6)break r;for(_=i[r>>2],n=h;t=i[o+16>>2]<6,n=t?n:o,o=i[(t<<2)+o>>2],!!o;);t=255,J0(_,6,A,k,(n|0)==(h|0)|i[n+16>>2]>6?t:s[n+20|0])}if(p=i[e+60>>2],(h|0)!=(p|0))for(;;){v=i[p+16>>2];r:{if((v|0)==10){if(Z=255,n=i[e+36>>2]-10|0,n>>>0>=6)break r;t=n<<3,n=t&31,(t&63)>>>0>=32?Z=16432>>>n|0:Z=((1<>>n;break r}if(Z=0,n=h,t=i[n>>2],!t)break r;for(;o=(v|0)>i[t+16>>2],n=o?n:t,t=i[(o<<2)+t>>2],!!t;);if((n|0)==(h|0)|(v|0)>2])break r;Z=s[n+20|0]+7&-8}r:{t=i[r>>2],n=i[t+64>>2];e:{if(!n)break e;for(I=Z>>>3&31,_=t- -64|0,o=_,t=n;u=(v|0)>i[t+16>>2],o=u?o:t,t=i[(u<<2)+t>>2],!!t;);if((o|0)==(_|0))break e;if(u=_,t=n,(v|0)>=i[o+16>>2])break r}if(e=U(40),i[w+4>>2]=e,i[w+8>>2]=35,i[w+12>>2]=-2147483608,r=s[9826]|s[9827]<<8|(s[9828]<<16|s[9829]<<24),A=s[9822]|s[9823]<<8|(s[9824]<<16|s[9825]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+35|0]=0,r=s[9853]|s[9854]<<8|(s[9855]<<16|s[9856]<<24),l[e+31|0]=r,l[e+32|0]=r>>>8,l[e+33|0]=r>>>16,l[e+34|0]=r>>>24,r=s[9850]|s[9851]<<8|(s[9852]<<16|s[9853]<<24),A=s[9846]|s[9847]<<8|(s[9848]<<16|s[9849]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[9842]|s[9843]<<8|(s[9844]<<16|s[9845]<<24),A=s[9838]|s[9839]<<8|(s[9840]<<16|s[9841]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[9834]|s[9835]<<8|(s[9836]<<16|s[9837]<<24),A=s[9830]|s[9831]<<8|(s[9832]<<16|s[9833]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,0,w+4|0),l[w+15|0]>=0)break i;G(i[w+4>>2]);break i}for(;o=(v|0)>i[t+16>>2],u=o?u:t,t=i[(o<<2)+t>>2],!!t;);for(W=-1,W=(u|0)==(_|0)|(v|0)>2]?W:i[u+24>>2],o=_,t=n;u=(v|0)>i[t+16>>2],o=u?o:t,t=i[(u<<2)+t>>2],!!t;);for(y=-1,y=(o|0)==(_|0)|(v|0)>2]?y:i[o+28>>2],J=i[p+40>>2],R=i[p+48>>2],t=_;o=(v|0)>i[n+16>>2],t=o?t:n,n=i[(o<<2)+n>>2],!!n;);r:{if((t|0)==(_|0)){E=0,_=0;break r}if(E=0,_=0,(v|0)>2])break r;E=i[t+40>>2],_=i[t+48>>2]}if((y|0)>0)for(z=W&2147483646,H=W&1,a=I&28,D=I&3,t=0,S=(Z&255)>>>0<8,q=I-1>>>0<3;;){n=(m(i[e+28>>2],t)|0)/(k|0)|0;r:{if((I|0)!=1){if(S|(W|0)<=0)break r;for(d=m(t,_)+E|0,A0=m(n,R)+J|0,Z=0;;){if(u=m(Z,I)+d|0,v=m((m(i[e+24>>2],Z)|0)/(A|0)|0,I)+A0|0,n=0,o=0,!q)for(;l[n+u|0]=s[n+v|0],C=n|1,l[C+u|0]=s[v+C|0],C=n|2,l[C+u|0]=s[v+C|0],C=n|3,l[C+u|0]=s[v+C|0],n=n+4|0,o=o+4|0,(a|0)!=(o|0););if(o=0,D)for(;l[n+u|0]=s[n+v|0],n=n+1|0,o=o+1|0,(D|0)!=(o|0););if(Z=Z+1|0,(W|0)==(Z|0))break}break r}if((W|0)<=0)break r;if(u=m(t,_)+E|0,v=m(n,R)+J|0,n=0,o=0,(W|0)!=1)for(;l[n+u|0]=s[v+((m(i[e+24>>2],n)|0)/(A|0)|0)|0],Z=n|1,l[Z+u|0]=s[v+((m(Z,i[e+24>>2])|0)/(A|0)|0)|0],n=n+2|0,o=o+2|0,(z|0)!=(o|0););if(!H)break r;l[n+u|0]=s[v+((m(i[e+24>>2],n)|0)/(A|0)|0)|0]}if(t=t+1|0,(y|0)==(t|0))break}t=i[p+4>>2];r:{if(t){for(;;)if(n=t,t=i[n>>2],!t)break r}for(;n=i[p+8>>2],t=i[n>>2]!=(p|0),p=n,!!t;);}if(p=n,(n|0)==(h|0))break}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=w+16|0}function k6(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;w=B-32|0,B=w,s[79117]==1&&(i[w+16>>2]=f,f8(21790,w+16|0));i:{k=i[f+4>>2];r:{if(k){if(n=i[k>>2],(n|0)==1){k=i[f>>2];break r}if((n|0)<=1)break i;i[k>>2]=n-1}s[79117]==1&&(i[w>>2]=f,f8(31312,w)),k=U(172),i[f>>2]=k,B0(k,0,172),u=f,f=U(4),i[u+4>>2]=f,i[f>>2]=1}r:{e:{A:{f:{k:{n:{t:{o:{u:{l:{s:{h:{w:{_:{v:{if((e|0)<=0){f=(r|0)>=51?51:r,n=(f|0)>0?f:0;break v}if(t=e-1|0,A=m(t,12)+41392|0,f=i[A>>2],r=(r|0)>=51?51:r,n=(r|0)>0?r:0,f=((f<<3&120)+(m(n,m(f>>4,5)-45|0)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,u=f?r^64:63-r|0,f=u<<1|f,r=k+5|0,(u&127)>>>0>=63||(l[k+5|0]=f,f=i[A+4>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,u=f?r^64:63-r|0,f=u<<1|f,r=k+6|0,(u&127)>>>0>62)||(l[k+6|0]=f,f=i[A+8>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,A=f?r^64:63-r|0,f=A<<1|f,r=k+7|0,(A&127)>>>0>62))break k;if(l[k+7|0]=f,f=t<<2,r=i[f+41416>>2],r=((r<<3&120)+(m(m(r>>4,5)-45|0,n)>>4)|0)-16|0,A=(r|0)>=126?126:r,A=(A|0)<=1?1:A,r=(r|0)>63,A=r?A^64:63-A|0,r=A<<1|r,(A&127)>>>0>=63)break _;if(l[k+149|0]=r,r=i[f+41424>>2],r=((r<<3&120)+(m(m(r>>4,5)-45|0,n)>>4)|0)-16|0,A=(r|0)>=126?126:r,A=(A|0)<=1?1:A,r=(r|0)>63,A=r?A^64:63-A|0,r=A<<1|r,(A&127)>>>0>=63)break w;if(l[k+147|0]=r,f=i[f+41432>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,r=f?r^64:63-r|0,f=r<<1|f,(r&127)>>>0>=63)break h;if(l[k+148|0]=f,f=m(n,-20)>>4,r=(f|0)>-41,A=r?f+104^64:-41-f|0,f=r|A<<1,r=k+156|0,(A&127)>>>0>=63||(l[k+156|0]=f,A=m(n,-25)>>4,t=-41-A|0,_=A+104^64,u=(A|0)>-41,f=u,o=f?_:t,f=o<<1|f,r=k+157|0,(o&127)>>>0>62)||(l[k+157|0]=f,f=m(n,-30)>>4,r=(f|0)>-41,o=r?f+104^64:-41-f|0,f=r|o<<1,r=k+158|0,(o&127)>>>0>62)||(l[k+158|0]=f,f=m(n,-40)>>4,r=(f|0)<=-103?-103:f,f=(f|0)>-41,o=f?r+104^64:-41-r|0,f=o<<1|f,r=k+159|0,(o&127)>>>0>62)||(f=m(f&255,257),l[k+159|0]=f,l[k+160|0]=f>>>8,l[k+154|0]=14,l[k+155|0]=14,o=(((e|0)!=1)<<3)+41440|0,f=i[o>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,h=f?r^64:63-r|0,f=h<<1|f,r=k+150|0,(h&127)>>>0>=63)||(l[k+150|0]=f,f=i[o+4>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,o=f?r^64:63-r|0,f=o<<1|f,r=k+151|0,(o&127)>>>0>62))break k;if(l[k+151|0]=f,l[k+152|0]=30-(m(n,5)>>>3&254),r=u?_:t,f=u|r<<1,(r&127)>>>0>62)break s;if(l[k+153|0]=f,f=m(n,-5)>>4,r=(f|0)>-9,A=r?f+72^64:-9-f|0,f=r|A<<1,(A&127)>>>0>=63)break l;f=m(f&255,16843009),l[k+143|0]=f,l[k+144|0]=f>>>8,l[k+145|0]=f>>>16,l[k+146|0]=f>>>24}if(t=m(e,12),A=t+41456|0,f=i[A>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,u=f?r^64:63-r|0,f=u<<1|f,r=k+2|0,(u&127)>>>0>=63||(l[k+2|0]=f,f=i[A+4>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,u=f?r^64:63-r|0,f=u<<1|f,r=k+3|0,(u&127)>>>0>62)||(l[k+3|0]=f,f=i[A+8>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,A=f?r^64:63-r|0,f=A<<1|f,r=k+4|0,(A&127)>>>0>62)||(l[k+4|0]=f,A=(((e|0)==2?5:e)<<2)+41504|0,f=i[A>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,u=f?r^64:63-r|0,f=u<<1|f,r=k+8|0,(u&127)>>>0>=63)||(l[k+8|0]=f,f=i[A+4>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,u=f?r^64:63-r|0,f=u<<1|f,r=k+9|0,(u&127)>>>0>62)||(l[k+9|0]=f,f=i[A+8>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,u=f?r^64:63-r|0,f=u<<1|f,r=k+10|0,(u&127)>>>0>62)||(l[k+10|0]=f,f=i[A+12>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,A=f?r^64:63-r|0,f=A<<1|f,r=k+11|0,(A&127)>>>0>62))break k;if(l[k+11|0]=f,u=e<<2,r=u,f=i[r+41540>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,A=(f|0)>=126?126:f,A=(A|0)<=1?1:A,f=(f|0)>63,A=f?A^64:63-A|0,f=A<<1|f,(A&127)>>>0>=63)break u;if(l[k+12|0]=f,f=i[r+41552>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,r=f?r^64:63-r|0,f=r<<1|f,(r&127)>>>0>=63)break o;if(l[k+13|0]=f,A=(((e|0)!=0)<<3)+41568|0,f=i[A>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,o=f?r^64:63-r|0,f=o<<1|f,r=k+14|0,(o&127)>>>0>=63||(l[k+14|0]=f,f=i[A+4>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,A=f?r^64:63-r|0,f=A<<1|f,r=k+15|0,(A&127)>>>0>62)||(l[k+15|0]=f,A=(e<<4)+41584|0,f=i[A>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,o=f?r^64:63-r|0,f=o<<1|f,r=k+16|0,(o&127)>>>0>=63)||(l[k+16|0]=f,f=i[A+4>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,o=f?r^64:63-r|0,f=o<<1|f,r=k+17|0,(o&127)>>>0>62)||(l[k+17|0]=f,f=i[A+8>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,o=f?r^64:63-r|0,f=o<<1|f,r=k+18|0,(o&127)>>>0>62)||(l[k+18|0]=f,f=i[A+12>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,A=f?r^64:63-r|0,f=A<<1|f,r=k+19|0,(A&127)>>>0>62)||(l[k+19|0]=f,A=t+41632|0,f=i[A>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,t=f?r^64:63-r|0,f=t<<1|f,r=k+20|0,(t&127)>>>0>=63)||(l[k+20|0]=f,f=i[A+4>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,t=f?r^64:63-r|0,f=t<<1|f,r=k+21|0,(t&127)>>>0>62)||(l[k+21|0]=f,f=i[A+8>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,A=f?r^64:63-r|0,f=A<<1|f,r=k+22|0,(A&127)>>>0>62))break k;for(l[k+22|0]=f,o=k+25|0,t=m(e,72)+41680|0,f=0;;){if(r=i[t+(f<<2)>>2],r=((r<<3&120)+(m(m(r>>4,5)-45|0,n)>>4)|0)-16|0,A=(r|0)>=126?126:r,A=(A|0)<=1?1:A,r=(r|0)>63,h=r?A^64:63-A|0,A=h<<1|r,r=f+o|0,(h&127)>>>0>=63)break f;if(l[r|0]=A,f=f+1|0,(f|0)==18)break}for(o=k+43|0,f=0;;){if(r=i[t+(f<<2)>>2],r=((r<<3&120)+(m(m(r>>4,5)-45|0,n)>>4)|0)-16|0,A=(r|0)>=126?126:r,A=(A|0)<=1?1:A,r=(r|0)>63,h=r?A^64:63-A|0,A=h<<1|r,r=f+o|0,(h&127)>>>0>=63)break f;if(l[r|0]=A,f=f+1|0,(f|0)==18)break}if(A=(u<<2)+41904|0,f=i[A>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,t=f?r^64:63-r|0,f=t<<1|f,r=k+61|0,(t&127)>>>0>=63||(l[k+61|0]=f,f=i[A+4>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,t=f?r^64:63-r|0,f=t<<1|f,r=k+62|0,(t&127)>>>0>62)||(l[k+62|0]=f,f=i[A+8>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,t=f?r^64:63-r|0,f=t<<1|f,r=k+63|0,(t&127)>>>0>62)||(l[k+63|0]=f,f=i[A+12>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,A=f?r^64:63-r|0,f=A<<1|f,r=k- -64|0,(A&127)>>>0>62))break k;for(l[r|0]=f,t=k+65|0,u=m(e,168)+41952|0,f=0;;){if(r=i[u+(f<<2)>>2],r=((r<<3&120)+(m(m(r>>4,5)-45|0,n)>>4)|0)-16|0,A=(r|0)>=126?126:r,A=(A|0)<=1?1:A,r=(r|0)>63,o=r?A^64:63-A|0,r=o<<1|r,A=f+t|0,(o&127)>>>0>=63)break A;if(l[A|0]=r,f=f+1|0,(f|0)==42)break}if(A=(e<<3)+42464|0,f=i[A>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,t=f?r^64:63-r|0,f=t<<1|f,r=k+107|0,(t&127)>>>0>=63||(l[k+107|0]=f,f=i[A+4>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,A=f?r^64:63-r|0,f=A<<1|f,r=k+108|0,(A&127)>>>0>62))break k;for(l[k+108|0]=f,t=k+109|0,u=m(e,96)+42496|0,f=0;;){if(r=i[u+(f<<2)>>2],r=((r<<3&120)+(m(m(r>>4,5)-45|0,n)>>4)|0)-16|0,A=(r|0)>=126?126:r,A=(A|0)<=1?1:A,r=(r|0)>63,o=r?A^64:63-A|0,r=o<<1|r,A=f+t|0,(o&127)>>>0>=63)break A;if(l[A|0]=r,f=f+1|0,(f|0)==24)break}if(A=m(e,24)+42784|0,f=i[A>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,t=f?r^64:63-r|0,f=t<<1|f,r=k+133|0,(t&127)>>>0>=63||(l[k+133|0]=f,f=i[A+4>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,t=f?r^64:63-r|0,f=t<<1|f,r=k+134|0,(t&127)>>>0>62)||(l[k+134|0]=f,f=i[A+8>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,t=f?r^64:63-r|0,f=t<<1|f,r=k+135|0,(t&127)>>>0>62)||(l[k+135|0]=f,f=i[A+12>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,t=f?r^64:63-r|0,f=t<<1|f,r=k+136|0,(t&127)>>>0>62)||(l[k+136|0]=f,f=i[A+16>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,t=f?r^64:63-r|0,f=t<<1|f,r=k+137|0,(t&127)>>>0>62)||(l[k+137|0]=f,f=i[A+20>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,r=(f|0)>=126?126:f,r=(r|0)<=1?1:r,f=(f|0)>63,A=f?r^64:63-r|0,f=A<<1|f,r=k+138|0,(A&127)>>>0>62))break k;if(l[k+138|0]=f,l[k|0]=14,f=i[(e<<2)+42856>>2],f=((f<<3&120)+(m(m(f>>4,5)-45|0,n)>>4)|0)-16|0,e=(f|0)>=126?126:f,e=(e|0)<=1?1:e,f=(f|0)>63,e=f?e^64:63-e|0,f=e<<1|f,(e&127)>>>0>=63)break t;if(l[k+1|0]=f,l[k+139|0]=1,l[k+140|0]=1,f=m(n,-5)>>4,e=(f|0)>=54?54:f,e=(e|0)<=-71?-71:e,f=(f|0)>-9,e=f?e+72^64:-9-e|0,f=e<<1|f,(e&127)>>>0<=62)break n;l[k+141|0]=f;break e}l[k+149|0]=r;break e}l[k+147|0]=r;break e}l[k+148|0]=f;break e}l[k+153|0]=f;break e}l[k+143|0]=f;break e}l[k+12|0]=f;break e}l[k+13|0]=f;break e}l[k+1|0]=f;break e}f=m(f&255,257),l[k+141|0]=f,l[k+142|0]=f>>>8,l[k+170|0]=1,l[k+171|0]=1,l[k+162|0]=1,l[k+163|0]=1,l[k+164|0]=1,l[k+165|0]=1,l[k+166|0]=1,l[k+167|0]=1,l[k+168|0]=1,l[k+169|0]=1,l[k+161|0]=1,l[k+23|0]=1,l[k+24|0]=1;break r}l[r|0]=f;break e}l[r|0]=A;break e}l[A|0]=r}C0(16791,14e3,212,9243),P()}B=w+32|0;return}C0(16994,14e3,177,14144),P()}function mA(){var f=0,e=0,r=0,A=0,k=0,n=0,t=0;r=B-16|0,B=r,A=i[19590],e=i[19591];i:{if((A|0)!=(e|0))break i;f=U(16),i[f+12>>2]=77040,i[f+4>>2]=0,i[f+8>>2]=0,i[f>>2]=75148,i[r+12>>2]=f,k=f+12|0,i[r+8>>2]=k;r:{if(A>>>0>2]=f,i[e>>2]=k,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=77184,i[f>>2]=75196,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=75276,i[f>>2]=75236,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=75352,i[f>>2]=75312,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76932,i[f>>2]=75388,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76968,i[f>>2]=75428,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=77004,i[f>>2]=75468,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=77076,i[f>>2]=75508,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=77112,i[f>>2]=75548,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=77256,i[f>>2]=75588,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=77292,i[f>>2]=75628,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=77220,i[f>>2]=75668,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=77148,i[f>>2]=75708,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76824,i[f>>2]=75748,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=75828,i[f>>2]=75788,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=75904,i[f>>2]=75864,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76788,i[f>>2]=75940,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76860,i[f>>2]=75980,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=77400,i[f>>2]=76020,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=77328,i[f>>2]=76060,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=77364,i[f>>2]=76100,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76180,i[f>>2]=76140,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76256,i[f>>2]=76216,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76332,i[f>>2]=76292,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76408,i[f>>2]=76368,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76484,i[f>>2]=76444,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76560,i[f>>2]=76520,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76636,i[f>>2]=76596,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=U(16),i[f+12>>2]=76712,i[f>>2]=76672,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591];r:{if(e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break r}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=U(16),i[f+12>>2]=76896,i[f>>2]=76748,i[f+4>>2]=0,i[f+8>>2]=0,i[r+12>>2]=f,A=f+12|0,i[r+8>>2]=A,e=i[19591],e>>>0>2]=f,i[e>>2]=A,i[19591]=e+8;break i}if(n=78364,t=z2(78360,r+8|0),i[n>>2]=t,f=i[r+12>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=r+16|0}function Z2(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;w=B-16|0,B=w;i:{r:{e:{A:{f:{k:{n:{t:{o:{u:{if(f>>>0<=244){if(k=i[24254],o=f>>>0<11?16:f+11&504,f=o>>>3|0,e=k>>>f|0,e&3){r=f+((e^-1)&1)|0,e=r<<3,f=e+97056|0,e=i[e+97064>>2],A=i[e+8>>2];l:{if((f|0)==(A|0)){v=97016,Z=a0(-2,r)&k,i[v>>2]=Z;break l}i[A+12>>2]=f,i[f+8>>2]=A}f=e+8|0,r=r<<3,i[e+4>>2]=r|3,e=e+r|0,i[e+4>>2]=i[e+4>>2]|1;break i}if(u=i[24256],u>>>0>=o>>>0)break u;if(e){r=2<>2],A=i[r+8>>2];l:{if((e|0)==(A|0)){k=a0(-2,f)&k,i[24254]=k;break l}i[A+12>>2]=e,i[e+8>>2]=A}if(i[r+4>>2]=o|3,t=r+o|0,f=f<<3,n=f-o|0,i[t+4>>2]=n|1,i[f+r>>2]=n,u){f=(u&-8)+97056|0,A=i[24259],e=1<<(u>>>3);l:{if(!(e&k)){i[24254]=e|k,e=f;break l}e=i[f+8>>2]}i[f+8>>2]=A,i[e+12>>2]=A,i[A+12>>2]=f,i[A+8>>2]=e}f=r+8|0,i[24259]=t,i[24256]=n;break i}if(_=i[24255],!_)break u;for(r=i[(P6(_)<<2)+97320>>2],n=(i[r+4>>2]&-8)-o|0,e=r;;){l:{if(f=i[e+16>>2],!f&&(f=i[e+20>>2],!f))break l;A=(i[f+4>>2]&-8)-o|0,e=A>>>0>>0,n=e?A:n,r=e?f:r,e=f;continue}break}if(h=i[r+24>>2],f=i[r+12>>2],(r|0)!=(f|0)){e=i[r+8>>2],i[e+12>>2]=f,i[f+8>>2]=e;break r}if(e=i[r+20>>2],e)A=r+20|0;else{if(e=i[r+16>>2],!e)break o;A=r+16|0}for(;t=A,f=e,A=f+20|0,e=i[f+20>>2],!(!e&&(A=f+16|0,e=i[f+16>>2],!e)););i[t>>2]=0;break r}if(o=-1,f>>>0>4294967231||(e=f+11|0,o=e&-8,t=i[24255],!t))break u;u=31,n=0-o|0,f>>>0<=16777204&&(f=$2(e>>>8|0),u=((o>>>38-f&1)-(f<<1)|0)+62|0),e=i[(u<<2)+97320>>2];l:{s:{h:{if(!e){f=0;break h}for(f=0,r=o<<((u|0)!=31?25-(u>>>1|0)|0:0);;){w:{if(k=(i[e+4>>2]&-8)-o|0,k>>>0>=n>>>0||(A=e,n=k,n))break w;n=0,f=e;break s}if(k=i[e+20>>2],e=i[((r>>>29&4)+e|0)+16>>2],f=k?(k|0)==(e|0)?f:k:f,r=r<<1,!e)break}}if(!(f|A)){if(A=0,f=2<>2]}if(!f)break l}for(;r=(i[f+4>>2]&-8)-o|0,e=r>>>0>>0,n=e?r:n,A=e?f:A,e=i[f+16>>2],e?f=e:f=i[f+20>>2],!!f;);}if(!A|i[24256]-o>>>0<=n>>>0)break u;if(u=i[A+24>>2],f=i[A+12>>2],(A|0)!=(f|0)){e=i[A+8>>2],i[e+12>>2]=f,i[f+8>>2]=e;break e}if(e=i[A+20>>2],e)r=A+20|0;else{if(e=i[A+16>>2],!e)break t;r=A+16|0}for(;k=r,f=e,r=f+20|0,e=i[f+20>>2],!(!e&&(r=f+16|0,e=i[f+16>>2],!e)););i[k>>2]=0;break e}if(A=i[24256],A>>>0>=o>>>0){f=i[24259],e=A-o|0;u:{if(e>>>0>=16){r=f+o|0,i[r+4>>2]=e|1,i[f+A>>2]=e,i[f+4>>2]=o|3;break u}i[f+4>>2]=A|3,e=f+A|0,i[e+4>>2]=i[e+4>>2]|1,r=0,e=0}i[24256]=e,i[24259]=r,f=f+8|0;break i}if(r=i[24257],r>>>0>o>>>0){e=r-o|0,i[24257]=e,f=i[24260],r=f+o|0,i[24260]=r,i[r+4>>2]=e|1,i[f+4>>2]=o|3,f=f+8|0;break i}if(f=0,n=o+47|0,i[24372]?e=i[24374]:(i[24375]=-1,i[24376]=-1,i[24373]=4096,i[24374]=4096,i[24372]=w+12&-16^1431655768,i[24377]=0,i[24365]=0,e=4096),k=n+e|0,t=0-e|0,e=k&t,e>>>0<=o>>>0||(u=i[24364],u&&(h=i[24362],A=h+e|0,A>>>0<=h>>>0|A>>>0>u>>>0)))break i;u:{if(!(s[97460]&4)){l:{s:{h:{w:{if(A=i[24260],A)for(f=97464;;){if(u=i[f>>2],u>>>0<=A>>>0&A>>>0>2]>>>0)break w;if(f=i[f+8>>2],!f)break}if(r=Di(0),(r|0)==-1||(k=e,f=i[24373],A=f-1|0,A&r&&(k=(e-r|0)+(r+A&0-f)|0),k>>>0<=o>>>0)||(A=i[24364],A&&(t=i[24362],f=t+k|0,f>>>0<=t>>>0|f>>>0>A>>>0)))break l;if(f=Di(k),(r|0)!=(f|0))break h;break u}if(k=t&k-r,r=Di(k),(r|0)==(i[f>>2]+i[f+4>>2]|0))break s;f=r}if((f|0)==-1)break l;if(o+48>>>0<=k>>>0){r=f;break u}if(r=i[24374],r=r+(n-k|0)&0-r,(Di(r)|0)==-1)break l;k=r+k|0,r=f;break u}if((r|0)!=-1)break u}i[24365]=i[24365]|4}if(r=Di(e),f=Di(0),(r|0)==-1|(f|0)==-1|f>>>0<=r>>>0||(k=f-r|0,k>>>0<=o+40>>>0))break f}f=i[24362]+k|0,i[24362]=f,f>>>0>k0[24363]&&(i[24363]=f);u:{if(n=i[24260],n){for(f=97464;;){if(e=i[f>>2],A=i[f+4>>2],(e+A|0)==(r|0))break u;if(f=i[f+8>>2],!f)break}break n}for(f=i[24258],f>>>0<=r>>>0&&f||(i[24258]=r),f=0,i[24367]=k,i[24366]=r,i[24262]=-1,i[24263]=i[24372],i[24369]=0;e=f<<3,A=e+97056|0,i[e+97064>>2]=A,i[e+97068>>2]=A,f=f+1|0,(f|0)!=32;);f=k-40|0,e=-8-r&7,A=f-e|0,i[24257]=A,e=e+r|0,i[24260]=e,i[e+4>>2]=A|1,i[(f+r|0)+4>>2]=40,i[24261]=i[24376];break k}if(i[f+12>>2]&8|(r>>>0<=n>>>0|e>>>0>n>>>0))break n;i[f+4>>2]=A+k,f=-8-n&7,e=f+n|0,i[24260]=e,r=i[24257]+k|0,f=r-f|0,i[24257]=f,i[e+4>>2]=f|1,i[(r+n|0)+4>>2]=40,i[24261]=i[24376];break k}f=0;break r}f=0;break e}k0[24258]>r>>>0&&(i[24258]=r),A=r+k|0,f=97464;n:{for(;;){if(e=i[f>>2],(e|0)!=(A|0)){if(f=i[f+8>>2],f)continue;break n}break}if(!(s[f+12|0]&8))break A}for(f=97464;;){n:{if(e=i[f>>2],e>>>0<=n>>>0&&(A=e+i[f+4>>2]|0,A>>>0>n>>>0))break n;f=i[f+8>>2];continue}break}for(f=k-40|0,e=-8-r&7,t=f-e|0,i[24257]=t,e=e+r|0,i[24260]=e,i[e+4>>2]=t|1,i[(f+r|0)+4>>2]=40,i[24261]=i[24376],f=(A+(39-A&7)|0)-47|0,e=f>>>0>>0?n:f,i[e+4>>2]=27,f=i[24369],i[e+16>>2]=i[24368],i[e+20>>2]=f,f=i[24367],i[e+8>>2]=i[24366],i[e+12>>2]=f,i[24368]=e+8,i[24367]=k,i[24366]=r,i[24369]=0,f=e+24|0;i[f+4>>2]=7,r=f+8|0,f=f+4|0,r>>>0>>0;);if((e|0)==(n|0))break k;i[e+4>>2]=i[e+4>>2]&-2,r=e-n|0,i[n+4>>2]=r|1,i[e>>2]=r;n:{if(r>>>0<=255){f=(r&-8)+97056|0,e=i[24254],r=1<<(r>>>3);t:{if(!(e&r)){i[24254]=e|r,e=f;break t}e=i[f+8>>2]}i[f+8>>2]=n,i[e+12>>2]=n,A=8,r=12;break n}f=31,r>>>0<=16777215&&(f=$2(r>>>8|0),f=((r>>>38-f&1)-(f<<1)|0)+62|0),i[n+28>>2]=f,i[n+16>>2]=0,i[n+20>>2]=0,e=(f<<2)+97320|0;t:{A=i[24255],k=1<>2]=n;break o}for(f=r<<((f|0)!=31?25-(f>>>1|0)|0:0),A=i[e>>2];;){if(e=A,(r|0)==(i[e+4>>2]&-8))break t;if(A=f>>>29|0,f=f<<1,k=(A&4)+e|0,A=i[k+16>>2],!A)break}i[k+16>>2]=n}i[n+24>>2]=e,e=n,f=e,A=12,r=8;break n}f=i[e+8>>2],i[f+12>>2]=n,i[e+8>>2]=n,i[n+8>>2]=f,f=0,A=12,r=24}i[A+n>>2]=e,i[r+n>>2]=f}if(f=i[24257],f>>>0<=o>>>0)break f;e=f-o|0,i[24257]=e,f=i[24260],r=f+o|0,i[24260]=r,i[r+4>>2]=e|1,i[f+4>>2]=o|3,f=f+8|0;break i}i[23944]=48,f=0;break i}i[f>>2]=r,i[f+4>>2]=i[f+4>>2]+k,u=(-8-r&7)+r|0,i[u+4>>2]=o|3,k=e+(-8-e&7)|0,n=o+u|0,t=k-n|0;A:{if(i[24260]==(k|0)){i[24260]=n,f=i[24257]+t|0,i[24257]=f,i[n+4>>2]=f|1;break A}if(i[24259]==(k|0)){i[24259]=n,f=i[24256]+t|0,i[24256]=f,i[n+4>>2]=f|1,i[f+n>>2]=f;break A}if(f=i[k+4>>2],(f&3)==1){h=f&-8,r=i[k+12>>2];f:{if(f>>>0<=255){if(e=i[k+8>>2],(e|0)==(r|0)){v=97016,Z=i[24254]&a0(-2,f>>>3|0),i[v>>2]=Z;break f}i[e+12>>2]=r,i[r+8>>2]=e;break f}o=i[k+24>>2];k:{if((r|0)!=(k|0)){f=i[k+8>>2],i[f+12>>2]=r,i[r+8>>2]=f;break k}n:{if(f=i[k+20>>2],f)e=k+20|0;else{if(f=i[k+16>>2],!f)break n;e=k+16|0}for(;A=e,r=f,e=f+20|0,f=i[f+20>>2],!(!f&&(e=r+16|0,f=i[r+16>>2],!f)););i[A>>2]=0;break k}r=0}if(!o)break f;f=i[k+28>>2],e=(f<<2)+97320|0;k:{if(i[e>>2]==(k|0)){if(i[e>>2]=r,r)break k;v=97020,Z=i[24255]&a0(-2,f),i[v>>2]=Z;break f}if(i[o+(i[o+16>>2]==(k|0)?16:20)>>2]=r,!r)break f}if(i[r+24>>2]=o,f=i[k+16>>2],f&&(i[r+16>>2]=f,i[f+24>>2]=r),f=i[k+20>>2],!f)break f;i[r+20>>2]=f,i[f+24>>2]=r}t=t+h|0,k=k+h|0,f=i[k+4>>2]}if(i[k+4>>2]=f&-2,i[n+4>>2]=t|1,i[n+t>>2]=t,t>>>0<=255){f=(t&-8)+97056|0,e=i[24254],r=1<<(t>>>3);f:{if(!(e&r)){i[24254]=e|r,e=f;break f}e=i[f+8>>2]}i[f+8>>2]=n,i[e+12>>2]=n,i[n+12>>2]=f,i[n+8>>2]=e;break A}r=31,t>>>0<=16777215&&(f=$2(t>>>8|0),r=((t>>>38-f&1)-(f<<1)|0)+62|0),i[n+28>>2]=r,i[n+16>>2]=0,i[n+20>>2]=0,f=(r<<2)+97320|0;f:{e=i[24255],A=1<>2]=n;break k}for(r=t<<((r|0)!=31?25-(r>>>1|0)|0:0),e=i[f>>2];;){if(f=e,(i[f+4>>2]&-8)==(t|0))break f;if(e=r>>>29|0,r=r<<1,A=(e&4)+f|0,e=i[A+16>>2],!e)break}i[A+16>>2]=n}i[n+24>>2]=f,i[n+12>>2]=n,i[n+8>>2]=n;break A}e=i[f+8>>2],i[e+12>>2]=n,i[f+8>>2]=n,i[n+24>>2]=0,i[n+12>>2]=f,i[n+8>>2]=e}f=u+8|0;break i}e:{if(!u)break e;e=i[A+28>>2],r=(e<<2)+97320|0;A:{if(i[r>>2]==(A|0)){if(i[r>>2]=f,f)break A;t=a0(-2,e)&t,i[24255]=t;break e}if(i[u+(i[u+16>>2]==(A|0)?16:20)>>2]=f,!f)break e}if(i[f+24>>2]=u,e=i[A+16>>2],e&&(i[f+16>>2]=e,i[e+24>>2]=f),e=i[A+20>>2],!e)break e;i[f+20>>2]=e,i[e+24>>2]=f}e:{if(n>>>0<=15){f=n+o|0,i[A+4>>2]=f|3,f=f+A|0,i[f+4>>2]=i[f+4>>2]|1;break e}if(i[A+4>>2]=o|3,k=A+o|0,i[k+4>>2]=n|1,i[n+k>>2]=n,n>>>0<=255){f=(n&-8)+97056|0,e=i[24254],r=1<<(n>>>3);A:{if(!(e&r)){i[24254]=e|r,e=f;break A}e=i[f+8>>2]}i[f+8>>2]=k,i[e+12>>2]=k,i[k+12>>2]=f,i[k+8>>2]=e;break e}f=31,n>>>0<=16777215&&(f=$2(n>>>8|0),f=((n>>>38-f&1)-(f<<1)|0)+62|0),i[k+28>>2]=f,i[k+16>>2]=0,i[k+20>>2]=0,e=(f<<2)+97320|0;A:{r=1<>2]=k,i[k+24>>2]=e;break f}for(f=n<<((f|0)!=31?25-(f>>>1|0)|0:0),e=i[e>>2];;){if(r=e,(i[e+4>>2]&-8)==(n|0))break A;if(t=f>>>29|0,f=f<<1,t=e+(t&4)|0,e=i[t+16>>2],!e)break}i[t+16>>2]=k,i[k+24>>2]=r}i[k+12>>2]=k,i[k+8>>2]=k;break e}f=i[r+8>>2],i[f+12>>2]=k,i[r+8>>2]=k,i[k+24>>2]=0,i[k+12>>2]=r,i[k+8>>2]=f}f=A+8|0;break i}r:{if(!h)break r;e=i[r+28>>2],A=(e<<2)+97320|0;e:{if(i[A>>2]==(r|0)){if(i[A>>2]=f,f)break e;v=97020,Z=a0(-2,e)&_,i[v>>2]=Z;break r}if(i[h+(i[h+16>>2]==(r|0)?16:20)>>2]=f,!f)break r}if(i[f+24>>2]=h,e=i[r+16>>2],e&&(i[f+16>>2]=e,i[e+24>>2]=f),e=i[r+20>>2],!e)break r;i[f+20>>2]=e,i[e+24>>2]=f}r:{if(n>>>0<=15){f=n+o|0,i[r+4>>2]=f|3,f=f+r|0,i[f+4>>2]=i[f+4>>2]|1;break r}if(i[r+4>>2]=o|3,t=r+o|0,i[t+4>>2]=n|1,i[n+t>>2]=n,u){f=(u&-8)+97056|0,A=i[24259],e=1<<(u>>>3);e:{if(!(e&k)){i[24254]=e|k,e=f;break e}e=i[f+8>>2]}i[f+8>>2]=A,i[e+12>>2]=A,i[A+12>>2]=f,i[A+8>>2]=e}i[24259]=t,i[24256]=n}f=r+8|0}return B=w+16|0,f|0}function gs(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=Y(0),h=Y(0),w=0,_=0,v=0,Z=Y(0),p=Y(0),W=0,C=0,I=0,y=0,E=0,J=Y(0),R=Y(0),D=Y(0),z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0;e=B-112|0,B=e,A=i[r>>2],v=i[A+28>>2],_=i[A+24>>2],n=U(136),i[n>>2]=72792,i[n+4>>2]=0,i[n+8>>2]=0,B0(n+20|0,0,104),A=i[n+4>>2],t=A+1|0,i[n+4>>2]=t,i[n+56>>2]=0,i[n+60>>2]=0,i[n+44>>2]=99,i[n+48>>2]=99,i[n+32>>2]=3795,w=n- -64|0,i[w>>2]=0,i[w+4>>2]=0,i[n+132>>2]=0,i[n+124>>2]=0,i[n+128>>2]=0,i[n+84>>2]=1,i[n+88>>2]=1,i[n+72>>2]=n+76,i[n+92>>2]=0,i[n+96>>2]=0,i[n+100>>2]=0,i[n+104>>2]=0,i[n+108>>2]=0,i[n+112>>2]=0,l[n+113|0]=0,l[n+114|0]=0,l[n+115|0]=0,l[n+116|0]=0,l[n+117|0]=0,l[n+118|0]=0,l[n+119|0]=0,l[n+120|0]=0,C=n+12|0,i[n+12>>2]=C,i[n+8>>2]=i[n+8>>2]+1,i[n+4>>2]=A,i[n+16>>2]=n,t||(V[i[i[n>>2]+8>>2]](n),g(n)),A=i[k+4>>2],t=A>>>0<4,i[C+36>>2]=A,i[C+32>>2]=0,i[C+28>>2]=v,i[C+24>>2]=_,d=_-1|0,A=A<<3,I=(t?16908801>>>A|0:0)&3,w=(d+I|0)/(I|0)|0,q=v-1|0,o=(t?16843265>>>A|0:0)&3,A=(q+o|0)/(o|0)|0,j=s[k+8|0],L=i[i[r>>2]+36>>2];i:{r:{e:{A:{f:{k:{n:{if(!J0(C,0,_,v,8)||!J0(C,1,w,A,8)||!J0(C,2,w,A,8)||(A=j&1,A&&!J0(C,6,_,v,8)))break n;if(i[e+108>>2]=0,i[e+104>>2]=0,i[e+100>>2]=0,i[e+96>>2]=0,i[e+92>>2]=0,y=v0(i[r>>2],10,e+92|0),z=v0(C,0,e+100|0),a=v0(C,1,e+108|0),S=v0(C,2,e+104|0),A&&(H=v0(C,6,e+96|0)),i[e+84>>2]=-1113159960,i[e+76>>2]=1056964608,i[e+80>>2]=-1093247418,i[e+68>>2]=-1096180881,i[e+72>>2]=1056964608,i[e+60>>2]=1038710997,i[e+64>>2]=-1104361250,i[e+52>>2]=1050220167,i[e+56>>2]=1058424226,l[e+48|0]=1,E=s[k+26|0],Kr(e+8|0,Q[k+24>>1],Q[k+20>>1]),r=i[e+44>>2],i[e+80>>2]=i[e+40>>2],i[e+84>>2]=r,r=i[e+36>>2],i[e+72>>2]=i[e+32>>2],i[e+76>>2]=r,A=i[e+28>>2],r=e- -64|0,i[r>>2]=i[e+24>>2],i[r+4>>2]=A,r=i[e+20>>2],i[e+56>>2]=i[e+16>>2],i[e+60>>2]=r,r=i[e+12>>2],i[e+48>>2]=i[e+8>>2],i[e+52>>2]=r,w=(L|0)==11?4:3,(v|0)<=0)break k;if((_|0)<=0)break f;t=0;t:{if(E&1)for(;;){for(k=m(i[e+92>>2],t)+y|0,r=0;;){W=(z+m(i[e+100>>2],t)|0)+r|0,u=Y(Y(Y(Y(s[k+2|0])*Z0[e+60>>2])+Y(Y(Y(s[k|0])*Z0[e+52>>2])+Y(Z0[e+56>>2]*Y(s[k+1|0]))))+Y(.5));o:{if(Y(d0(u))=255?255:A,l[W|0]=(A|0)>0?A:0,k=k+w|0,r=r+1|0,(_|0)==(r|0))break}if(t=t+1|0,(v|0)==(t|0))break t}for(;;){for(k=m(i[e+92>>2],t)+y|0,A=0;;){W=(z+m(i[e+100>>2],t)|0)+A|0,u=Y(Y(Y(Y(Y(s[k+2|0])*Z0[e+60>>2])+Y(Y(Y(s[k|0])*Z0[e+52>>2])+Y(Z0[e+56>>2]*Y(s[k+1|0]))))*Y(.8554700016975403))+Y(.5));o:{if(Y(d0(u))>>0>=219?219:r)+16|0,k=k+w|0,A=A+1|0,(_|0)==(A|0))break}if(t=t+1|0,(v|0)==(t|0))break}}if(k=(o|0)==1,(I|0)!=1|(o|0)!=1)break A;if((v|0)<=0)break r;if(r=0,E&1)for(;;){for(k=m(i[e+92>>2],r)+y|0,A=0;;){o=i[e+104>>2],u=Z0[e+84>>2],h=Z0[e+76>>2],p=Z0[e+80>>2],W=(m(i[e+108>>2],r)+a|0)+A|0,Z=Y(s[k+2|0]),J=Y(s[k|0]),R=Y(s[k+1|0]),D=Y(Y(Y(Y(Z*Z0[e+72>>2])+Y(Y(J*Z0[e+64>>2])+Y(Z0[e+68>>2]*R)))+Y(128))+Y(.5));t:{if(Y(d0(D))=255?255:t,l[W|0]=(t|0)>0?t:0,o=(m(r,o)+S|0)+A|0,u=Y(Y(Y(Y(Z*u)+Y(Y(J*h)+Y(p*R)))+Y(128))+Y(.5));t:{if(Y(d0(u))=255?255:t,l[o|0]=(t|0)>0?t:0,k=k+w|0,A=A+1|0,(_|0)==(A|0))break}if(r=r+1|0,(v|0)==(r|0))break e}for(;;){for(k=m(i[e+92>>2],r)+y|0,A=0;;){o=i[e+104>>2],u=Z0[e+84>>2],h=Z0[e+76>>2],p=Z0[e+80>>2],W=(m(i[e+108>>2],r)+a|0)+A|0,Z=Y(s[k+2|0]),J=Y(s[k|0]),R=Y(s[k+1|0]),D=Y(Y(Y(Y(Y(Z*Z0[e+72>>2])+Y(Y(J*Z0[e+64>>2])+Y(Z0[e+68>>2]*R)))*Y(.875))+Y(128))+Y(.5));t:{if(Y(d0(D))=255?255:t,l[W|0]=(t|0)>0?t:0,o=(m(r,o)+S|0)+A|0,u=Y(Y(Y(Y(Y(Z*u)+Y(Y(J*h)+Y(p*R)))*Y(.875))+Y(128))+Y(.5));t:{if(Y(d0(u))=255?255:t,l[o|0]=(t|0)>0?t:0,k=k+w|0,A=A+1|0,(_|0)==(A|0))break}if(r=r+1|0,(v|0)==(r|0))break}break e}if(i[f>>2]=0,i[f+4>>2]=0,f=i[n+4>>2],i[n+4>>2]=f-1,f)break i;V[i[i[n>>2]+8>>2]](n),g(n);break i}if(k=(o|0)==1,(I|0)!=1)break A;if(k)break r;break A}if(k=(o|0)==1,(I|0)!=1)break A;if(k)break e}if(r=(I|0)!=2,!(r|(o|0)!=2)){z=v&-2;A:{if((z|0)<=0||(A0=_&-2,(A0|0)<=0))break A;for(n0=w<<1,h0=w+2|0,f0=w+1|0,t=0;;){for(I=t>>>1|0,k=m(i[e+92>>2],t)+y|0,r=0;;){o=i[e+92>>2],A=o+k|0,o=(o+w|0)+k|0,h=Y(((s[A+2|0]+(s[k+h0|0]+s[k+2|0]|0)|0)+s[o+2|0]>>>2&255)>>>0),p=Y((s[o|0]+(s[A|0]+(s[k+w|0]+s[k|0]|0)|0)>>>2&255)>>>0),Z=Y((s[o+1|0]+(s[A+1|0]+(s[k+f0|0]+s[k+1|0]|0)|0)>>>2&255)>>>0),u=Y(Y(h*Z0[e+84>>2])+Y(Y(p*Z0[e+76>>2])+Y(Z0[e+80>>2]*Z))),h=Y(Y(h*Z0[e+72>>2])+Y(Y(p*Z0[e+64>>2])+Y(Z0[e+68>>2]*Z))),o=r>>>1|0,A=o+(m(I,i[e+104>>2])+S|0)|0,W=o+(m(I,i[e+108>>2])+a|0)|0;f:{if(!(E&1)){u=Y(Y(u*Y(.875))+Y(128)),h=Y(Y(Y(h*Y(.875))+Y(128))+Y(.5));k:{if(Y(d0(h))=255?255:o,o=(o|0)>0?o:0;break f}u=Y(u+Y(128)),h=Y(Y(h+Y(128))+Y(.5));k:{if(Y(d0(h))=255?255:o,o=(o|0)>0?o:0}l[W|0]=o,k=k+n0|0,W=A,u=Y(u+Y(.5));f:{if(Y(d0(u))=255?255:o,l[W|0]=(A|0)>0?A:0,r=r+2|0,!((A0|0)>(r|0)))break}if(t=t+2|0,!((z|0)>(t|0)))break}}if(!(!(_&1)|(v|0)<=0))for(r=d>>1,I=r+S|0,z=r+a|0,k=m(w,d)+y|0,r=0;;){A=s[k|0];A:{if((r|1)<(v|0)){o=i[e+92>>2]+k|0,A=s[o|0]+(A&255)>>>1|0,t=s[o+2|0]+s[k+2|0]>>>1|0,o=s[o+1|0]+s[k+1|0]>>>1|0;break A}t=s[k+2|0],o=s[k+1|0]}h=Y((t&255)>>>0),p=Y((A&255)>>>0),Z=Y((o&255)>>>0),u=Y(Y(h*Z0[e+84>>2])+Y(Y(p*Z0[e+76>>2])+Y(Z0[e+80>>2]*Z))),h=Y(Y(h*Z0[e+72>>2])+Y(Y(p*Z0[e+64>>2])+Y(Z0[e+68>>2]*Z))),t=r>>>1|0,A=I+m(t,i[e+104>>2])|0,o=z+m(t,i[e+108>>2])|0;A:{if(E&1){u=Y(u+Y(128)),h=Y(Y(h+Y(128))+Y(.5));f:{if(Y(d0(h))=255?255:t,t=(t|0)>0?t:0;break A}u=Y(Y(u*Y(.875))+Y(128)),h=Y(Y(Y(h*Y(.875))+Y(128))+Y(.5));f:{if(Y(d0(h))=255?255:t,t=(t|0)>0?t:0}l[o|0]=t,o=A,u=Y(u+Y(.5));A:{if(Y(d0(u))=255?255:t,l[o|0]=(A|0)>0?A:0,k=(i[e+92>>2]<<1)+k|0,r=r+2|0,!((v|0)>(r|0)))break}if(!(v&1)|(_|0)<=0)break e;for(z=w<<1,I=q>>1,A0=w+2|0,n0=w+1|0,k=m(i[e+92>>2],q)+y|0,r=0;;){A=s[k|0],h0=m(I,i[e+104>>2])+S|0,f0=r>>>1|0,t=f0+(m(I,i[e+108>>2])+a|0)|0;A:{if((_|0)>(r|1)){A=s[k+w|0]+(A&255)>>>1|0,q=s[k+A0|0]+s[k+2|0]>>>1|0,o=s[k+n0|0]+s[k+1|0]>>>1|0;break A}q=s[k+2|0],o=s[k+1|0]}h=Y((q&255)>>>0),p=Y((A&255)>>>0),Z=Y(o>>>0),u=Y(Y(h*Z0[e+84>>2])+Y(Y(p*Z0[e+76>>2])+Y(Z0[e+80>>2]*Z))),h=Y(Y(h*Z0[e+72>>2])+Y(Y(p*Z0[e+64>>2])+Y(Z0[e+68>>2]*Z))),A=h0+f0|0;A:{if(E&1){u=Y(u+Y(128)),h=Y(Y(h+Y(128))+Y(.5));f:{if(Y(d0(h))=255?255:o,o=(o|0)>0?o:0;break A}u=Y(Y(u*Y(.875))+Y(128)),h=Y(Y(Y(h*Y(.875))+Y(128))+Y(.5));f:{if(Y(d0(h))=255?255:o,o=(o|0)>0?o:0}l[t|0]=o,o=A,u=Y(u+Y(.5));A:{if(Y(d0(u))=255?255:t,l[o|0]=(A|0)>0?A:0,k=k+z|0,r=r+2|0,!((_|0)>(r|0)))break}break e}if(r|k^1|(v|0)<=0|(_|0)<=0)break e;if(w=w<<1,r=0,E&1)for(;;){for(k=m(i[e+92>>2],r)+y|0,t=0;;){o=i[e+104>>2],u=Z0[e+84>>2],h=Z0[e+76>>2],p=Z0[e+80>>2],E=t>>>1|0,W=E+(m(i[e+108>>2],r)+a|0)|0,Z=Y(s[k+2|0]),J=Y(s[k|0]),R=Y(s[k+1|0]),D=Y(Y(Y(Y(Z*Z0[e+72>>2])+Y(Y(J*Z0[e+64>>2])+Y(Z0[e+68>>2]*R)))+Y(128))+Y(.5));A:{if(Y(d0(D))=255?255:A,l[W|0]=(A|0)>0?A:0,o=E+(m(r,o)+S|0)|0,u=Y(Y(Y(Y(Z*u)+Y(Y(J*h)+Y(p*R)))+Y(128))+Y(.5));A:{if(Y(d0(u))=255?255:A,l[o|0]=(A|0)>0?A:0,k=k+w|0,t=t+2|0,!((_|0)>(t|0)))break}if(r=r+1|0,(v|0)==(r|0))break e}for(;;){for(k=m(i[e+92>>2],r)+y|0,t=0;;){o=i[e+104>>2],u=Z0[e+84>>2],h=Z0[e+76>>2],p=Z0[e+80>>2],E=t>>>1|0,W=E+(m(i[e+108>>2],r)+a|0)|0,Z=Y(s[k+2|0]),J=Y(s[k|0]),R=Y(s[k+1|0]),D=Y(Y(Y(Y(Y(Z*Z0[e+72>>2])+Y(Y(J*Z0[e+64>>2])+Y(Z0[e+68>>2]*R)))*Y(.875))+Y(128))+Y(.5));A:{if(Y(d0(D))=255?255:A,l[W|0]=(A|0)>0?A:0,o=E+(m(r,o)+S|0)|0,u=Y(Y(Y(Y(Y(Z*u)+Y(Y(J*h)+Y(p*R)))*Y(.875))+Y(128))+Y(.5));A:{if(Y(d0(u))=255?255:A,l[o|0]=(A|0)>0?A:0,k=k+w|0,t=t+2|0,!((_|0)>(t|0)))break}if(r=r+1|0,(v|0)==(r|0))break}}if(!(j&1)|(v|0)<=0|(_|0)<=0)break r;if((L|0)!=11){for(w=_&2147483644,A=_&3,r=0,_=_>>>0<4;;){if(k=0,t=0,!_)for(;l[(m(i[e+96>>2],r)+k|0)+H|0]=255,l[((m(i[e+96>>2],r)+k|0)+H|0)+1|0]=255,l[((m(i[e+96>>2],r)+k|0)+H|0)+2|0]=255,l[((m(i[e+96>>2],r)+k|0)+H|0)+3|0]=255,k=k+4|0,t=t+4|0,(w|0)!=(t|0););if(t=0,A)for(;l[(m(i[e+96>>2],r)+k|0)+H|0]=255,k=k+1|0,t=t+1|0,(A|0)!=(t|0););if(r=r+1|0,(v|0)==(r|0))break}break r}for(A=_&2147483646,_=_&1,r=0;;){if(k=0,t=0,d)for(;l[(m(i[e+96>>2],r)+k|0)+H|0]=s[((m(i[e+92>>2],r)+y|0)+(k<<2)|0)+3|0],w=k|1,l[(w+m(i[e+96>>2],r)|0)+H|0]=s[((m(i[e+92>>2],r)+y|0)+(w<<2)|0)+3|0],k=k+2|0,t=t+2|0,(A|0)!=(t|0););if(_&&(l[(m(i[e+96>>2],r)+k|0)+H|0]=s[((m(i[e+92>>2],r)+y|0)+(k<<2)|0)+3|0]),r=r+1|0,(v|0)==(r|0))break}}i[f+4>>2]=n,i[f>>2]=C}B=e+112|0}function sk(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=Y(0),S=0;k=B-144|0,B=k,A=B0(k,0,144),i[A+76>>2]=-1,i[A+44>>2]=f,i[A+32>>2]=1093,i[A+84>>2]=f,k=e,J=r,f=0,h=B-304|0,B=h;i:{r:{if(!i[A+4>>2]&&(g6(A),!i[A+4>>2]))break r;if(e=s[k|0],!e)break i;e:{A:{f:{k:{n:{for(;;){t:{e=e&255;o:{if((e|0)==32|e-9>>>0<5){for(;e=k,k=k+1|0,r=s[e+1|0],!!((r|0)==32|r-9>>>0<5););for(a4(A,0,0);;){r=i[A+4>>2];u:{if((r|0)!=i[A+104>>2]){i[A+4>>2]=r+1,r=s[r|0];break u}r=I2(A)}if(!((r|0)==32|r-9>>>0<5))break}k=i[A+4>>2],r=i[A+116>>2],(r|0)>0?r=1:r=(r|0)>=0,r&&(k=k-1|0,i[A+4>>2]=k),r=k-i[A+44>>2]|0,k=r,t=p+i[A+124>>2]|0,n=r>>31,r=_+i[A+120>>2]|0,t=n+(r>>>0<_>>>0?t+1|0:t)|0,_=r+k|0,p=_>>>0>>0?t+1|0:t;break o}u:{l:{s:{if((e|0)==37){if(e=s[k+1|0],(e|0)==42)break s;if((e|0)!=37)break l}a4(A,0,0);h:{if(s[k|0]==37){for(;;){e=i[A+4>>2];w:{if((e|0)!=i[A+104>>2]){i[A+4>>2]=e+1,e=s[e|0];break w}e=I2(A)}if(!((e|0)==32|e-9>>>0<5))break}k=k+1|0;break h}if(e=i[A+4>>2],(e|0)!=i[A+104>>2]){i[A+4>>2]=e+1,e=s[e|0];break h}e=I2(A)}if(s[k|0]!=(e|0)){if(f=i[A+116>>2],(f|0)>0?f=1:f=(f|0)>=0,f&&(i[A+4>>2]=i[A+4>>2]-1),E|(e|0)>=0)break i;break r}e=i[A+4>>2]-i[A+44>>2]|0,n=e,r=p+i[A+124>>2]|0,o=e>>31,e=_+i[A+120>>2]|0,u=o+(e>>>0<_>>>0?r+1|0:r)|0,_=e+n|0,p=_>>>0>>0?u+1|0:u,e=k;break o}w=0,e=k+2|0;break u}if(e=e-48|0,!(s[k+2|0]!=36|e>>>0>9)){r=B-16|0,i[r+12>>2]=J,e=e>>>0>1?((e<<2)+J|0)-4|0:J,i[r+8>>2]=e+4,w=i[e>>2],e=k+3|0;break u}w=i[J>>2],J=J+4|0,e=k+1|0}if(I=0,n=0,k=s[e|0],k-48>>>0<=9)for(;n=(m(n,10)+k|0)-48|0,k=s[e+1|0],e=e+1|0,k-48>>>0<10;);(k|0)==109&&(Z=0,I=(w|0)!=0,k=s[e+1|0],f=0,e=e+1|0),o=e,e=e+1|0,r=3,t=I;u:{l:switch((k&255)-65|0){case 39:r=s[o+1|0]==104,e=r?o+2|0:e,r=r?-2:-1;break u;case 43:r=s[o+1|0]==108,e=r?o+2|0:e,r=r?3:1;break u;case 51:case 57:r=1;break u;case 11:r=2;break u;case 41:break u;case 0:case 2:case 4:case 5:case 6:case 18:case 23:case 26:case 32:case 34:case 35:case 36:case 37:case 38:case 40:case 45:case 46:case 47:case 50:case 52:case 55:break l;default:break A}r=0,e=o}o=r,r=s[e|0],k=(r&47)==3,R=k?1:o,W=k?r|32:r;u:{if((W|0)==91)break u;l:{if((W|0)!=110){if((W|0)!=99)break l;n=(n|0)<=1?1:n;break u}a9(w,R,_,p);break o}for(a4(A,0,0);;){r=i[A+4>>2];l:{if((r|0)!=i[A+104>>2]){i[A+4>>2]=r+1,r=s[r|0];break l}r=I2(A)}if(!((r|0)==32|r-9>>>0<5))break}k=i[A+4>>2],r=i[A+116>>2],(r|0)>0?r=1:r=(r|0)>=0,r&&(k=k-1|0,i[A+4>>2]=k),r=k-i[A+44>>2]|0,k=r,t=p+i[A+124>>2]|0,o=r>>31,r=_+i[A+120>>2]|0,p=o+(r>>>0<_>>>0?t+1|0:t)|0,_=r+k|0,p=_>>>0>>0?p+1|0:p}v=n,C=n>>31,a4(A,n,C),r=i[A+4>>2];u:{if((r|0)!=i[A+104>>2]){i[A+4>>2]=r+1;break u}if((I2(A)|0)<0)break f}r=i[A+116>>2],(r|0)>0?r=1:r=(r|0)>=0,r&&(i[A+4>>2]=i[A+4>>2]-1),k=16;u:{l:{s:{h:{w:switch(W-88|0){default:if(r=W-65|0,r>>>0>6|!(1<>2]-i[A+44>>2]|0,i[A+120>>2]!=(0-r|0)|i[A+124>>2]!=(0-((r>>31)+((r|0)!=0)|0)|0))break s;break k;case 3:case 11:case 27:if((W|16)==115){if(B0(h+32|0,-1,257),l[h+32|0]=0,(W|0)!=115)break l;l[h+65|0]=0,l[h+46|0]=0,X[h+42>>1]=0,X[h+44>>1]=0;break l}k=s[e+1|0],t=(k|0)==94,B0(h+32|0,t,257),l[h+32|0]=0,r=t?e+2|0:e+1|0;_:{v:{Z:{if(e=s[(t?2:1)+e|0],(e|0)!=45){if((e|0)==93)break Z;u=(k|0)!=94,e=r;break _}u=(k|0)!=94,l[h+78|0]=u;break v}u=(k|0)!=94,l[h+126|0]=u}e=r+1|0}for(;;){r=s[e|0];_:{if((r|0)!=45){if(!r)break f;if((r|0)==93)break l;break _}if(r=45,t=s[e+1|0],!t|(t|0)==93)break _;o=e+1|0,k=s[e-1|0];v:{if(t>>>0<=k>>>0){r=t;break v}for(;k=k+1|0,l[k+(h+32|0)|0]=u,r=s[o|0],k>>>0>>0;);}e=o}l[(r+h|0)+33|0]=u,e=e+1|0}case 23:k=8;break h;case 12:case 29:k=10;break h;case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 22:case 25:case 26:case 28:case 30:case 31:break u;case 0:case 24:case 32:break h;case 17:break w}k=0}n=0,t=0,o=0,u=0,C=0,D=B-16|0,B=D;h:{if(!((k|0)!=1&k>>>0<=36)){i[23944]=28;break h}for(;;){r=i[A+4>>2];w:{if((r|0)!=i[A+104>>2]){i[A+4>>2]=r+1,r=s[r|0];break w}r=I2(A)}if(!((r|0)==32|r-9>>>0<5))break}w:{_:switch(r-43|0){case 0:case 2:break _;default:break w}if(C=(r|0)==45?-1:0,r=i[A+4>>2],(r|0)!=i[A+104>>2]){i[A+4>>2]=r+1,r=s[r|0];break w}r=I2(A)}w:{_:{v:{Z:{if(!((k|0)!=0&(k|0)!=16|(r|0)!=48)){r=i[A+4>>2];m:{if((r|0)!=i[A+104>>2]){i[A+4>>2]=r+1,r=s[r|0];break m}r=I2(A)}if((r&-33)==88){k=16,r=i[A+4>>2];m:{if((r|0)!=i[A+104>>2]){i[A+4>>2]=r+1,r=s[r|0];break m}r=I2(A)}if(s[r+56209|0]<16)break v;r=i[A+116>>2],(r|0)>0?r=1:r=(r|0)>=0,r&&(i[A+4>>2]=i[A+4>>2]-1),a4(A,0,0);break h}if(k)break Z;k=8;break v}if(k=k||10,k>>>0>s[r+56209|0])break Z;r=i[A+116>>2],(r|0)>0?r=1:r=(r|0)>=0,r&&(i[A+4>>2]=i[A+4>>2]-1),a4(A,0,0),i[23944]=28;break h}if((k|0)!=10)break v;if(o=r-48|0,o>>>0<=9){for(r=0;;){r=m(r,10)+o|0,n=r>>>0<429496729,k=i[A+4>>2];Z:{if((k|0)!=i[A+104>>2]){i[A+4>>2]=k+1,k=s[k|0];break Z}k=I2(A)}if(o=k-48|0,!(n&o>>>0<=9))break}n=r}if(o>>>0>9)break w;for(k=q0(n,0,10,0),v=w0;;){Z:{t=v,n=k+o|0,t=n>>>0>>0?t+1|0:t,k=(t|0)==429496729&n>>>0<2576980378|t>>>0<429496729,r=i[A+4>>2];m:{if((r|0)!=i[A+104>>2]){i[A+4>>2]=r+1,r=s[r|0];break m}r=I2(A)}if(u=r-48|0,!(k&u>>>0<=9)){if(u>>>0<=9)break Z;break w}if(k=q0(n,t,10,0),v=w0,o=u,(v|0)==-1&(o^-1)>>>0>=k>>>0|(v|0)!=-1)continue}break}k=10;break _}if(k-1&k){if(u=s[r+56209|0],u>>>0>>0){for(;;){o=m(k,o)+u|0,n=o>>>0<119304647,r=i[A+4>>2];v:{if((r|0)!=i[A+104>>2]){i[A+4>>2]=r+1,r=s[r|0];break v}r=I2(A)}if(u=s[r+56209|0],!(n&u>>>0>>0))break}n=o}if(k>>>0<=u>>>0)break _;for(;;){if(o=q0(n,t,k,0),v=w0,u=u&255,(v|0)==-1&(u^-1)>>>0>>0)break _;t=v,n=o+u|0,t=n>>>0>>0?t+1|0:t,r=i[A+4>>2];v:{if((r|0)!=i[A+104>>2]){i[A+4>>2]=r+1,r=s[r|0];break v}r=I2(A)}if(u=s[r+56209|0],k>>>0<=u>>>0)break _;if(U1(D,k,0,0,0,n,t,0,0),!!(i[D+8>>2]|i[D+12>>2]))break}break _}if(v=l[(m(k,23)>>>5&7)+56465|0],o=s[r+56209|0],o>>>0>>0){for(;;){r=u<>>0<134217728,r=i[A+4>>2];v:{if((r|0)!=i[A+104>>2]){i[A+4>>2]=r+1,r=s[r|0];break v}r=I2(A)}if(o=s[r+56209|0],!(n&o>>>0>>0))break}n=u}if(k>>>0<=o>>>0||(y=v&31,(v&63)>>>0>=32?(u=0,y=-1>>>y|0):(u=-1>>>y|0,y=u|(1<>>0>y>>>0))break _;for(;;){z=o&255,o=n,r=v&31,(v&63)>>>0>=32?(t=n<>>32-r|t<>2];v:{if((r|0)!=i[A+104>>2]){i[A+4>>2]=r+1,r=s[r|0];break v}r=I2(A)}if(o=s[r+56209|0],k>>>0<=o>>>0)break _;if(!((t|0)==(u|0)&n>>>0<=y>>>0|t>>>0>>0))break}}if(s[r+56209|0]>=k>>>0)break w;for(;;){r=i[A+4>>2];_:{if((r|0)!=i[A+104>>2]){i[A+4>>2]=r+1,r=s[r|0];break _}r=I2(A)}if(!(s[r+56209|0]>>0))break}i[23944]=68,C=0,n=-1,t=-1}r=i[A+116>>2],(r|0)>0?r=1:r=(r|0)>=0,r&&(i[A+4>>2]=i[A+4>>2]-1);w:if((n&t)!=-1)break w;r=n^C,n=r-C|0,k=C>>31,t=(k^t)-((r>>>0>>0)+k|0)|0}if(B=D+16|0,r=i[A+4>>2]-i[A+44>>2]|0,i[A+120>>2]==(0-r|0)&i[A+124>>2]==(0-((r>>31)+((r|0)!=0)|0)|0))break k;if(!(!w|(W|0)!=112)){i[w>>2]=n;break u}a9(w,R,n,t);break u}if(!w)break u;r=i[h+16>>2],n=i[h+20>>2],k=i[h+8>>2],t=i[h+12>>2];s:switch(R|0){case 0:H=w,a=gn(k,t,r,n),Z0[H>>2]=a;break u;case 1:H=w,S=YA(k,t,r,n),i0[H>>3]=S;break u;case 2:break s;default:break u}i[w>>2]=k,i[w+4>>2]=t,i[w+8>>2]=r,i[w+12>>2]=n;break u}o=(W|0)!=99,r=o?31:n+1|0;l:{if((R|0)==1){if(n=w,I&&(n=Z2(r<<2),!n))break n;for(i[h+296>>2]=0,i[h+300>>2]=0,k=0;;){f=n;s:{for(;;){n=i[A+4>>2];h:{if((n|0)!=i[A+104>>2]){i[A+4>>2]=n+1,n=s[n|0];break h}n=I2(A)}if(!s[(n+h|0)+33|0])break s;if(l[h+27|0]=n,n=B6(h+28|0,h+27|0,1,h+296|0),(n|0)!=-2){if((n|0)==-1){Z=0;break f}if(f&&(i[(k<<2)+f>>2]=i[h+28>>2],k=k+1|0),!(!I|(r|0)!=(k|0)))break}}if(t=1,Z=0,r=r<<1|1,n=Er(f,r<<2),n)continue;break A}break}if(Z=0,r=f,h+296|0&&i[h+296>>2])break f;break l}if(I){if(k=0,n=Z2(r),!n)break n;for(;;){for(f=n;;){n=i[A+4>>2];s:{if((n|0)!=i[A+104>>2]){i[A+4>>2]=n+1,n=s[n|0];break s}n=I2(A)}if(!s[(n+h|0)+33|0]){r=0,Z=f;break l}if(l[f+k|0]=n,k=k+1|0,(k|0)==(r|0))break}if(t=1,r=r<<1|1,n=Er(f,r),!n)break}Z=f,f=0;break A}if(k=0,w)for(;;){f=i[A+4>>2];s:{if((f|0)!=i[A+104>>2]){i[A+4>>2]=f+1,f=s[f|0];break s}f=I2(A)}if(s[(f+h|0)+33|0]){l[k+w|0]=f,k=k+1|0;continue}else{r=0,f=w,Z=f;break l}}for(;;){f=i[A+4>>2];s:{if((f|0)!=i[A+104>>2]){i[A+4>>2]=f+1,f=s[f|0];break s}f=I2(A)}if(!s[(f+h|0)+33|0])break}f=0,Z=0,r=0}if(n=i[A+4>>2],t=i[A+116>>2],(t|0)>0?t=1:t=(t|0)>=0,t&&(n=n-1|0,i[A+4>>2]=n),t=n-i[A+44>>2]|0,u=t,n=t+i[A+120>>2]|0,t=i[A+124>>2]+(t>>31)|0,t=n>>>0>>0?t+1|0:t,!(t|n)|!(o|(n|0)==(v|0)&(t|0)==(C|0)))break t;I&&(i[w>>2]=f);l:{if((W|0)==99)break l;if(r&&(i[(k<<2)+r>>2]=0),!Z){Z=0;break l}l[k+Z|0]=0}f=r}r=i[A+4>>2]-i[A+44>>2]|0,n=r,t=r>>31,r=p+i[A+124>>2]|0,k=_+i[A+120>>2]|0,t=(k>>>0<_>>>0?r+1|0:r)+t|0,_=k+n|0,p=_>>>0>>0?t+1|0:t,E=((w|0)!=0)+E|0}if(k=e+1|0,e=s[e+1|0],e)continue;break i}break}f=r;break k}t=1,Z=0,f=0;break A}t=I;break e}t=I}E=E||-1}if(!t)break i;G(Z),G(f);break i}E=-1}return B=h+304|0,B=A+144|0,E}function BA(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0;h=B-48|0,B=h,u=h+24|0,i[u>>2]=0,i[u+4>>2]=0,i[u+16>>2]=0,i[u+8>>2]=0,i[u+12>>2]=0;i:{r:{e:{A:switch(i[i[A>>2]+4>>2]-1|0){case 0:lk(h,e,r,A,k,n,t),r=i[h+4>>2],i[u>>2]=i[h>>2],i[u+4>>2]=r,l[u+19|0]<0&&G(i[u+8>>2]),r=i[h+12>>2],i[u+8>>2]=i[h+8>>2],i[u+12>>2]=r,i[u+16>>2]=i[h+16>>2];break e;case 4:kk(h,e,r,A,k,1,t),r=i[h+4>>2],i[u>>2]=i[h>>2],i[u+4>>2]=r,l[u+19|0]<0&&G(i[u+8>>2]),r=i[h+12>>2],i[u+8>>2]=i[h+8>>2],i[u+12>>2]=r,i[u+16>>2]=i[h+16>>2];break e;case 3:ok(h,e,r,A,k,n,t),r=i[h+4>>2],i[u>>2]=i[h>>2],i[u+4>>2]=r,l[u+19|0]<0&&G(i[u+8>>2]),r=i[h+12>>2],i[u+8>>2]=i[h+8>>2],i[u+12>>2]=r,i[u+16>>2]=i[h+16>>2];break e;case 6:case 9:uk(h,e,r,A,k,n,t),r=i[h+4>>2],i[u>>2]=i[h>>2],i[u+4>>2]=r,l[u+19|0]<0&&G(i[u+8>>2]),r=i[h+12>>2],i[u+8>>2]=i[h+8>>2],i[u+12>>2]=r,i[u+16>>2]=i[h+16>>2];break e;case 2:wk(h,e,r,A,k,n,t),r=i[h+4>>2],i[u>>2]=i[h>>2],i[u+4>>2]=r,l[u+19|0]<0&&G(i[u+8>>2]),r=i[h+12>>2],i[u+8>>2]=i[h+8>>2],i[u+12>>2]=r,i[u+16>>2]=i[h+16>>2];break e;case 7:k=i[19565],n=k,r=i[19564],i[h>>2]=r,i[h+4>>2]=k,k=h+8|0;f:{if(l[78275]>=0){Z=i[19567],i[k>>2]=i[19566],i[k+4>>2]=Z,i[k+8>>2]=i[19568];break f}_0(k,i[19566],i[19567]),r=i[h>>2],n=i[h+4>>2]}i[u>>2]=r,i[u+4>>2]=n,l[u+19|0]<0&&G(i[u+8>>2]),r=i[k+4>>2],i[u+8>>2]=i[k>>2],i[u+12>>2]=r,i[u+16>>2]=i[k+8>>2];break e;case 8:break A;default:break r}v=B-48|0,B=v,n=B-16|0,B=n,D8(n+8|0,i[e+48>>2],8174),k=i[n+8>>2],l[k+124|0]=1,i[k+52>>2]=i[k+52>>2]&-2|1,p=i[k+56>>2],k=i[n+12>>2];A:{if(!k||(Z=i[k+4>>2],i[k+4>>2]=Z-1,Z))break A;V[i[i[k>>2]+8>>2]](k),g(k)}B=n+16|0,k=U(360),i[k+16>>2]=0,i[k+20>>2]=0,i[k>>2]=72656,i[k+4>>2]=0,i[k+8>>2]=0,l[k+152|0]=0,i[k+36>>2]=p,i[k+32>>2]=e,i[k+28>>2]=34648,i[k+40>>2]=0,i[k+44>>2]=0,i[k+52>>2]=0,i[k+56>>2]=0,i[k+68>>2]=0,i[k+72>>2]=0,i[k+80>>2]=0,i[k+84>>2]=0,i[k+156>>2]=0,i[k+160>>2]=0,i[k+24>>2]=0,X[k+48>>1]=0,X[k+58>>1]=0,X[k+60>>1]=0,X[k+62>>1]=0,X[k+64>>1]=0,l[k+76|0]=0,l[k+88|0]=0,i[k+204>>2]=0,i[k+196>>2]=0,i[k+200>>2]=0,i[k+188>>2]=0,i[k+192>>2]=0,i[k+180>>2]=0,i[k+184>>2]=0,i[k+172>>2]=0,i[k+176>>2]=0,i[k+164>>2]=0,i[k+168>>2]=0,i[k+212>>2]=0,i[k+216>>2]=0,l[k+208|0]=1,l[k+217|0]=0,l[k+218|0]=0,l[k+219|0]=0,l[k+220|0]=0,l[k+221|0]=0,l[k+222|0]=0,l[k+223|0]=0,l[k+224|0]=0,i[k+232>>2]=0,i[k+236>>2]=0,i[k+240>>2]=0,i[k+244>>2]=0,i[k+248>>2]=0,i[k+252>>2]=0,i[k+256>>2]=0,i[k+260>>2]=0,i[k+264>>2]=0,i[k+268>>2]=0,l[k+272|0]=0,B0(k+280|0,0,80),i[k+296>>2]=0,i[k+300>>2]=0,l[k+292|0]=1,i[k+304>>2]=0,i[k+308>>2]=0,i[k+312>>2]=0,i[k+316>>2]=0,i[k+328>>2]=0,i[k+332>>2]=0,i[k+320>>2]=0,i[k+324>>2]=1072693248,i[k+336>>2]=0,i[k+340>>2]=0,i[k+344>>2]=0,i[k+348>>2]=0,i[k+352>>2]=0,i[k+96>>2]=0,i[k+100>>2]=0,i[k+104>>2]=0,i[k+108>>2]=0,i[k+112>>2]=0,i[k+116>>2]=0,i[k+120>>2]=0,i[k+124>>2]=0,i[k+128>>2]=0,i[k+132>>2]=0,i[k+136>>2]=0,i[k+140>>2]=0,i[k+144>>2]=0,i[k+148>>2]=0,i[t>>2]=k+16,n=i[t+4>>2],i[t+4>>2]=k,W=e+48|0;A:{if(!n||(k=i[n+4>>2],i[n+4>>2]=k-1,k))break A;V[i[i[n>>2]+8>>2]](n),g(n)}w=v+28|0,n=B-32|0,B=n,Z=r,r=i[r>>2];A:{if(i[r+32>>2]!=2){if(r=U(40),i[n+20>>2]=r,i[n+24>>2]=39,i[n+28>>2]=-2147483608,k=s[6730]|s[6731]<<8|(s[6732]<<16|s[6733]<<24),o=s[6726]|s[6727]<<8|(s[6728]<<16|s[6729]<<24),l[r|0]=o,l[r+1|0]=o>>>8,l[r+2|0]=o>>>16,l[r+3|0]=o>>>24,l[r+4|0]=k,l[r+5|0]=k>>>8,l[r+6|0]=k>>>16,l[r+7|0]=k>>>24,l[r+39|0]=0,k=s[6761]|s[6762]<<8|(s[6763]<<16|s[6764]<<24),o=s[6757]|s[6758]<<8|(s[6759]<<16|s[6760]<<24),l[r+31|0]=o,l[r+32|0]=o>>>8,l[r+33|0]=o>>>16,l[r+34|0]=o>>>24,l[r+35|0]=k,l[r+36|0]=k>>>8,l[r+37|0]=k>>>16,l[r+38|0]=k>>>24,k=s[6754]|s[6755]<<8|(s[6756]<<16|s[6757]<<24),o=s[6750]|s[6751]<<8|(s[6752]<<16|s[6753]<<24),l[r+24|0]=o,l[r+25|0]=o>>>8,l[r+26|0]=o>>>16,l[r+27|0]=o>>>24,l[r+28|0]=k,l[r+29|0]=k>>>8,l[r+30|0]=k>>>16,l[r+31|0]=k>>>24,k=s[6746]|s[6747]<<8|(s[6748]<<16|s[6749]<<24),o=s[6742]|s[6743]<<8|(s[6744]<<16|s[6745]<<24),l[r+16|0]=o,l[r+17|0]=o>>>8,l[r+18|0]=o>>>16,l[r+19|0]=o>>>24,l[r+20|0]=k,l[r+21|0]=k>>>8,l[r+22|0]=k>>>16,l[r+23|0]=k>>>24,k=s[6738]|s[6739]<<8|(s[6740]<<16|s[6741]<<24),o=s[6734]|s[6735]<<8|(s[6736]<<16|s[6737]<<24),l[r+8|0]=o,l[r+9|0]=o>>>8,l[r+10|0]=o>>>16,l[r+11|0]=o>>>24,l[r+12|0]=k,l[r+13|0]=k>>>8,l[r+14|0]=k>>>16,l[r+15|0]=k>>>24,r0(w,4,3002,n+20|0),l[n+31|0]>=0)break A;G(i[n+20>>2]);break A}if((U0(r,0)|0)!=8){if(r=U(40),i[n+20>>2]=r,i[n+24>>2]=37,i[n+28>>2]=-2147483608,k=s[6692]|s[6693]<<8|(s[6694]<<16|s[6695]<<24),o=s[6688]|s[6689]<<8|(s[6690]<<16|s[6691]<<24),l[r|0]=o,l[r+1|0]=o>>>8,l[r+2|0]=o>>>16,l[r+3|0]=o>>>24,l[r+4|0]=k,l[r+5|0]=k>>>8,l[r+6|0]=k>>>16,l[r+7|0]=k>>>24,l[r+37|0]=0,k=s[6721]|s[6722]<<8|(s[6723]<<16|s[6724]<<24),o=s[6717]|s[6718]<<8|(s[6719]<<16|s[6720]<<24),l[r+29|0]=o,l[r+30|0]=o>>>8,l[r+31|0]=o>>>16,l[r+32|0]=o>>>24,l[r+33|0]=k,l[r+34|0]=k>>>8,l[r+35|0]=k>>>16,l[r+36|0]=k>>>24,k=s[6716]|s[6717]<<8|(s[6718]<<16|s[6719]<<24),o=s[6712]|s[6713]<<8|(s[6714]<<16|s[6715]<<24),l[r+24|0]=o,l[r+25|0]=o>>>8,l[r+26|0]=o>>>16,l[r+27|0]=o>>>24,l[r+28|0]=k,l[r+29|0]=k>>>8,l[r+30|0]=k>>>16,l[r+31|0]=k>>>24,k=s[6708]|s[6709]<<8|(s[6710]<<16|s[6711]<<24),o=s[6704]|s[6705]<<8|(s[6706]<<16|s[6707]<<24),l[r+16|0]=o,l[r+17|0]=o>>>8,l[r+18|0]=o>>>16,l[r+19|0]=o>>>24,l[r+20|0]=k,l[r+21|0]=k>>>8,l[r+22|0]=k>>>16,l[r+23|0]=k>>>24,k=s[6700]|s[6701]<<8|(s[6702]<<16|s[6703]<<24),o=s[6696]|s[6697]<<8|(s[6698]<<16|s[6699]<<24),l[r+8|0]=o,l[r+9|0]=o>>>8,l[r+10|0]=o>>>16,l[r+11|0]=o>>>24,l[r+12|0]=k,l[r+13|0]=k>>>8,l[r+14|0]=k>>>16,l[r+15|0]=k>>>24,r0(w,4,3002,n+20|0),l[n+31|0]>=0)break A;G(i[n+20>>2]);break A}i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,o=v0(i[Z>>2],0,n+16|0),r=i[Z>>2],_=i[r+28>>2],r=i[r+24>>2],k=m(_,r),k&&L2(n+20|0,k);f:{if((r|0)!=i[n+16>>2]){if((_|0)<=0)break f;if(k=0,(_|0)!=1)for(C=_&2147483646;l0(i[n+20>>2]+m(r,k)|0,o+m(i[n+16>>2],k)|0,r),I=k|1,l0(i[n+20>>2]+m(r,I)|0,o+m(i[n+16>>2],I)|0,r),k=k+2|0,y=y+2|0,(C|0)!=(y|0););if(!(_&1))break f;l0(i[n+20>>2]+m(r,k)|0,o+m(i[n+16>>2],k)|0,r);break f}l0(i[n+20>>2],o,k)}hi(i[W>>2],i[i[t>>2]+20>>2],n+20|0,0),k=U(80),i[k>>2]=72344,i[k+4>>2]=0,i[k+8>>2]=0,o=k+16|0,r=o,i[r+8>>2]=0,i[r+12>>2]=0,r=k,i[r+32>>2]=0,i[r+36>>2]=0,i[r+40>>2]=0,i[r+44>>2]=0,i[r+48>>2]=0,i[r+16>>2]=68500,i[r+52>>2]=0,i[r+56>>2]=0,i[r+68>>2]=0,l[r+57|0]=0,l[r+58|0]=0,l[r+59|0]=0,l[r+60|0]=0,l[r+61|0]=0,l[r+62|0]=0,l[r+63|0]=0,l[r+64|0]=0,i[r+16>>2]=75088,i[r+32>>2]=1836280643,E=r,J=U0(i[Z>>2],0),l[E+72|0]=J,_=i[W>>2],C=i[i[t>>2]+20>>2],i[n+12>>2]=r,i[n+8>>2]=o,i[r+4>>2]=i[r+4>>2]+1,se(_,C,n+8|0,1),r=i[n+12>>2];f:{if(!r||(o=i[r+4>>2],i[r+4>>2]=o-1,o))break f;V[i[i[r>>2]+8>>2]](r),g(r)}r=U(80),i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=70984,o=r+16|0,i[o+8>>2]=0,i[o+12>>2]=0,i[r+32>>2]=0,i[r+36>>2]=0,i[r+40>>2]=0,i[r+44>>2]=0,i[r+48>>2]=0,i[r+16>>2]=68500,i[r+52>>2]=0,i[r+56>>2]=0,i[r+68>>2]=0,l[r+57|0]=0,l[r+58|0]=0,l[r+59|0]=0,l[r+60|0]=0,l[r+61|0]=0,l[r+62|0]=0,l[r+63|0]=0,l[r+64|0]=0,i[r+16>>2]=69264,i[r+32>>2]=1769173093,_=i[Z>>2],C=i[_+28>>2],i[r+72>>2]=i[_+24>>2],i[r+76>>2]=C,_=i[W>>2],W=i[i[t>>2]+20>>2],i[n+12>>2]=r,i[n+8>>2]=o,i[r+4>>2]=i[r+4>>2]+1,se(_,W,n+8|0,1),o=i[n+12>>2];f:{if(!o||(_=i[o+4>>2],i[o+4>>2]=_-1,_))break f;V[i[i[o>>2]+8>>2]](o),g(o)}o=i[19565],i[w>>2]=i[19564],i[w+4>>2]=o,w=w+8|0;f:{if(l[78275]>=0){o=i[19567],i[w>>2]=i[19566],i[w+4>>2]=o,i[w+8>>2]=i[19568];break f}_0(w,i[19566],i[19567])}if(w=i[r+4>>2],i[r+4>>2]=w-1,w||(V[i[i[r>>2]+8>>2]](r),g(r)),r=i[k+4>>2],i[k+4>>2]=r-1,r||(V[i[i[k>>2]+8>>2]](k),g(k)),r=i[n+20>>2],!r)break A;i[n+24>>2]=r,G(r)}B=n+32|0,r=i[e+32>>2];A:{if(r>>>0>2]){i[r>>2]=i[t>>2],k=i[t+4>>2],i[r+4>>2]=k,k&&(i[k+4>>2]=i[k+4>>2]+1),r=r+8|0;break A}r=Q2(e+28|0,t)}i[e+32>>2]=r,r=i[e+20>>2];A:{f:{if(!r){n=e+20|0,k=n;break f}for(;;){if(k=r,n=i[r+16>>2],n>>>0>p>>>0){if(n=r,r=i[r>>2],r)continue;break f}if(n>>>0>=p>>>0)break A;if(r=i[k+4>>2],!r)break}n=k+4|0}r=U(28),i[r+20>>2]=0,i[r+24>>2]=0,i[r+16>>2]=p,i[r+8>>2]=k,i[r>>2]=0,i[r+4>>2]=0,i[n>>2]=r,k=r,w=i[i[e+16>>2]>>2],w&&(i[e+16>>2]=w,k=i[n>>2]),D1(i[e+20>>2],k),i[e+24>>2]=i[e+24>>2]+1}k=i[t>>2],n=i[t+4>>2],n&&(i[n+4>>2]=i[n+4>>2]+1),i[r+20>>2]=k,k=i[r+24>>2],i[r+24>>2]=n;A:{if(!k||(r=i[k+4>>2],i[k+4>>2]=r-1,r))break A;V[i[i[k>>2]+8>>2]](k),g(k)}i[v+20>>2]=i[Z>>2],r=i[Z+4>>2],i[v+24>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),r=i[v+24>>2],i[v+8>>2]=i[v+20>>2],i[v+12>>2]=r,Wi(e,v+8|0,p),r=i[19565],i[h>>2]=i[19564],i[h+4>>2]=r,r=h+8|0;A:{if(l[78275]>=0){k=i[19567],i[r>>2]=i[19566],i[r+4>>2]=k,i[r+8>>2]=i[19568];break A}_0(r,i[19566],i[19567])}l[v+47|0]<0&&G(i[v+36>>2]),B=v+48|0,r=i[h+4>>2],i[u>>2]=i[h>>2],i[u+4>>2]=r,l[u+19|0]<0&&G(i[u+8>>2]),r=i[h+12>>2],i[u+8>>2]=i[h+8>>2],i[u+12>>2]=r,i[u+16>>2]=i[h+16>>2]}dn(i[e+48>>2],i[i[A>>2]+4>>2],s[i[t>>2]+192|0]),e=i[u+4>>2],i[f>>2]=i[u>>2],i[f+4>>2]=e,e=i[u+12>>2],i[f+8>>2]=i[u+8>>2],i[f+12>>2]=e,i[f+16>>2]=i[u+16>>2];break i}if(l[h|0]=0,l[h+11|0]=0,r0(f,8,3e3,h),l[h+11|0]<0&&G(i[h>>2]),l[u+19|0]>=0)break i;G(i[u+8>>2])}B=h+48|0}function hk(){var f=0,e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;Ve(),h=U(8),u=U(104),i[u>>2]=74072,i[u+4>>2]=0,i[u+8>>2]=0,n=u+16|0,f=n,i[f>>2]=0,i[f+4>>2]=0,i[f+20>>2]=0,i[f+24>>2]=0,i[f+28>>2]=0,i[f+32>>2]=0,i[f+80>>2]=0,i[f+72>>2]=0,i[f+76>>2]=0,i[f+64>>2]=1073741824,i[f+68>>2]=0,i[f+8>>2]=0,i[f+12>>2]=34648,i[f+16>>2]=f+20,i[f+36>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,i[f+48>>2]=0,i[f+52>>2]=0,i[f+56>>2]=4,r=U(132),i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=72576,w=f,_=Ge(r+12|0),i[w+48>>2]=_,f=i[f+52>>2],i[n+52>>2]=r;i:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break i;V[i[i[f>>2]+8>>2]](f),g(f)}k=B-16|0,B=k,r=i[n+48>>2],f=i[r+4>>2],i[r>>2]=0,i[r+4>>2]=0;i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=i[r+12>>2],A=i[r+8>>2],(f|0)!=(A|0))for(;;){e=i[f-4>>2];i:{if(!e||(t=i[e+4>>2],i[e+4>>2]=t-1,t))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(f=f-8|0,(A|0)==(f|0))break}i[r+12>>2]=A,f=U(88),i[f>>2]=70584,i[f+4>>2]=0,i[f+8>>2]=0,e=f+16|0,i[e+8>>2]=0,i[e+12>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,i[f+48>>2]=0,i[f+16>>2]=68500,i[f+60>>2]=0,i[f+52>>2]=0,i[f+56>>2]=0,i[f+16>>2]=68724,i[f+80>>2]=0,i[f+72>>2]=0,i[f+76>>2]=0,i[f+64>>2]=0,i[f+68>>2]=0,i[f+32>>2]=1718909296,i[r+20>>2]=e,e=i[r+24>>2],i[r+24>>2]=f;i:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}f=U(104),i[f+4>>2]=0,i[f+8>>2]=0,i[f>>2]=70664,e=f+16|0,i[e+8>>2]=0,i[e+12>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,i[f+48>>2]=0,i[f+16>>2]=68500,i[f+52>>2]=0,i[f+56>>2]=0,i[f+68>>2]=0,l[f+57|0]=0,l[f+58|0]=0,l[f+59|0]=0,l[f+60|0]=0,l[f+61|0]=0,l[f+62|0]=0,l[f+63|0]=0,l[f+64|0]=0,i[f+16>>2]=68844,i[f+80>>2]=0,i[f+84>>2]=0,i[f+72>>2]=0,i[f+76>>2]=1885954932,i[f+88>>2]=0,i[f+92>>2]=0,i[f+96>>2]=0,i[f+100>>2]=0,i[f+32>>2]=1751411826,i[r+28>>2]=e,e=i[r+32>>2],i[r+32>>2]=f;i:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}f=U(72),i[f+4>>2]=0,i[f+8>>2]=0,i[f>>2]=70624,e=f+16|0,i[e+8>>2]=0,i[e+12>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,i[f+48>>2]=0,i[f+16>>2]=68500,i[f+52>>2]=0,i[f+56>>2]=0,i[f+68>>2]=0,l[f+57|0]=0,l[f+58|0]=0,l[f+59|0]=0,l[f+60|0]=0,l[f+61|0]=0,l[f+62|0]=0,l[f+63|0]=0,l[f+64|0]=0,i[f+16>>2]=68784,i[f+32>>2]=1835365473,i[r+36>>2]=e,e=i[r+40>>2],i[r+40>>2]=f;i:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}f=U(64),i[f+4>>2]=0,i[f+8>>2]=0,i[f>>2]=70904,e=f+16|0,i[e+8>>2]=0,i[e+12>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,i[f+48>>2]=0,i[f+16>>2]=68500,i[f+60>>2]=0,i[f+52>>2]=0,i[f+56>>2]=0,i[f+16>>2]=69204,i[f+32>>2]=1768973167,i[r+44>>2]=e,e=i[r+48>>2],i[r+48>>2]=f;i:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}f=U(88),i[f+4>>2]=0,i[f+8>>2]=0,i[f>>2]=70944,e=f+16|0,i[e+8>>2]=0,i[e+12>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,i[f+48>>2]=0,i[f+16>>2]=68500,i[f+52>>2]=0,i[f+56>>2]=0,i[f+68>>2]=0,l[f+57|0]=0,l[f+58|0]=0,l[f+59|0]=0,l[f+60|0]=0,l[f+61|0]=0,l[f+62|0]=0,l[f+63|0]=0,l[f+64|0]=0,i[f+16>>2]=69312,i[f+80>>2]=0,i[f+72>>2]=0,i[f+76>>2]=0,i[f+32>>2]=1768975713,i[r+52>>2]=e,e=i[r+56>>2],i[r+56>>2]=f;i:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}f=U(104),i[f+4>>2]=0,i[f+8>>2]=0,i[f>>2]=70744,e=f+16|0,i[e+8>>2]=0,i[e+12>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,i[f+48>>2]=0,i[f+16>>2]=68500,i[f+52>>2]=0,i[f+56>>2]=0,i[f+68>>2]=0,l[f+57|0]=0,l[f+58|0]=0,l[f+59|0]=0,l[f+60|0]=0,l[f+61|0]=0,l[f+62|0]=0,l[f+63|0]=0,l[f+64|0]=0,i[f+16>>2]=68964,i[f+72>>2]=0,i[f+76>>2]=0,i[f+96>>2]=0,i[f+80>>2]=0,i[f+84>>2]=0,l[f+85|0]=0,l[f+86|0]=0,l[f+87|0]=0,l[f+88|0]=0,l[f+89|0]=0,l[f+90|0]=0,l[f+91|0]=0,l[f+92|0]=0,i[f+32>>2]=1768714083,i[r+60>>2]=e,e=i[r+64>>2],i[r+64>>2]=f;i:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}f=U(72),i[f+4>>2]=0,i[f+8>>2]=0,i[f>>2]=70784,e=f+16|0,i[e+8>>2]=0,i[e+12>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,i[f+48>>2]=0,i[f+16>>2]=68500,i[f+52>>2]=0,i[f+56>>2]=0,i[f+68>>2]=0,l[f+57|0]=0,l[f+58|0]=0,l[f+59|0]=0,l[f+60|0]=0,l[f+61|0]=0,l[f+62|0]=0,l[f+63|0]=0,l[f+64|0]=0,i[f+16>>2]=69084,i[f+32>>2]=1768517222,i[r+92>>2]=e,e=i[r+96>>2],i[r+96>>2]=f;i:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}f=U(64),i[f+4>>2]=0,i[f+8>>2]=0,i[f>>2]=70864,e=f+16|0,i[e+8>>2]=0,i[e+12>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,i[f+48>>2]=0,i[f+16>>2]=68500,i[f+60>>2]=0,i[f+52>>2]=0,i[f+56>>2]=0,i[f+16>>2]=69144,i[f+32>>2]=1768977008,i[r+100>>2]=e,e=i[r+104>>2],i[r+104>>2]=f;i:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}f=U(80),i[f+4>>2]=0,i[f+8>>2]=0,i[f>>2]=70704,e=f+16|0,i[e+8>>2]=0,i[e+12>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,i[f+48>>2]=0,i[f+16>>2]=68500,i[f+52>>2]=0,i[f+56>>2]=0,i[f+68>>2]=0,l[f+57|0]=0,l[f+58|0]=0,l[f+59|0]=0,l[f+60|0]=0,l[f+61|0]=0,l[f+62|0]=0,l[f+63|0]=0,l[f+64|0]=0,i[f+16>>2]=68904,i[f+32>>2]=1885959277,i[f+72>>2]=0,i[r+84>>2]=e,e=i[r+88>>2],i[r+88>>2]=f;i:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}f=i[r+36>>2],A=i[r+28>>2],i[k+8>>2]=A,e=i[r+32>>2],i[k+12>>2]=e,e&&(i[e+4>>2]=i[e+4>>2]+1),e=i[f+40>>2];i:{if(e>>>0>2]){i[e>>2]=A,A=i[k+12>>2],i[e+4>>2]=A,A&&(i[A+4>>2]=i[A+4>>2]+1),e=e+8|0;break i}e=Q2(f+36|0,k+8|0)}i[f+40>>2]=e,f=i[k+12>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[r+36>>2],A=i[r+84>>2],i[k+8>>2]=A,e=i[r+88>>2],i[k+12>>2]=e,e&&(i[e+4>>2]=i[e+4>>2]+1),e=i[f+40>>2];i:{if(e>>>0>2]){i[e>>2]=A,A=i[k+12>>2],i[e+4>>2]=A,A&&(i[A+4>>2]=i[A+4>>2]+1),e=e+8|0;break i}e=Q2(f+36|0,k+8|0)}i[f+40>>2]=e,f=i[k+12>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[r+36>>2],A=i[r+60>>2],i[k+8>>2]=A,e=i[r+64>>2],i[k+12>>2]=e,e&&(i[e+4>>2]=i[e+4>>2]+1),e=i[f+40>>2];i:{if(e>>>0>2]){i[e>>2]=A,A=i[k+12>>2],i[e+4>>2]=A,A&&(i[A+4>>2]=i[A+4>>2]+1),e=e+8|0;break i}e=Q2(f+36|0,k+8|0)}i[f+40>>2]=e,f=i[k+12>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[r+36>>2],A=i[r+92>>2],i[k+8>>2]=A,e=i[r+96>>2],i[k+12>>2]=e,e&&(i[e+4>>2]=i[e+4>>2]+1),e=i[f+40>>2];i:{if(e>>>0>2]){i[e>>2]=A,A=i[k+12>>2],i[e+4>>2]=A,A&&(i[A+4>>2]=i[A+4>>2]+1),e=e+8|0;break i}e=Q2(f+36|0,k+8|0)}i[f+40>>2]=e,f=i[k+12>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[r+36>>2],A=i[r+100>>2],i[k+8>>2]=A,e=i[r+104>>2],i[k+12>>2]=e,e&&(i[e+4>>2]=i[e+4>>2]+1),e=i[f+40>>2];i:{if(e>>>0>2]){i[e>>2]=A,A=i[k+12>>2],i[e+4>>2]=A,A&&(i[A+4>>2]=i[A+4>>2]+1),e=e+8|0;break i}e=Q2(f+36|0,k+8|0)}i[f+40>>2]=e,f=i[k+12>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}A=i[r+100>>2],o=i[r+44>>2],i[k+8>>2]=o,f=i[r+48>>2],i[k+12>>2]=f;i:{r:{e:{if(!f){if(t=A+40|0,e=i[A+40>>2],e>>>0>=k0[A+44>>2])break r;i[e+4>>2]=f,i[e>>2]=o;break e}if(i[f+4>>2]=i[f+4>>2]+1,t=A+40|0,e=i[A+40>>2],e>>>0>=k0[A+44>>2])break r;i[e+4>>2]=f,i[e>>2]=o,i[f+4>>2]=i[f+4>>2]+1}e=e+8|0;break i}e=Q2(A+36|0,k+8|0),f=i[k+12>>2]}i[t>>2]=e;i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}A=i[r+100>>2],o=i[r+52>>2],i[k+8>>2]=o,f=i[r+56>>2],i[k+12>>2]=f;i:{r:{e:{if(!f){if(t=A+40|0,e=i[A+40>>2],e>>>0>=k0[A+44>>2])break r;i[e+4>>2]=f,i[e>>2]=o;break e}if(i[f+4>>2]=i[f+4>>2]+1,t=A+40|0,e=i[A+40>>2],e>>>0>=k0[A+44>>2])break r;i[e+4>>2]=f,i[e>>2]=o,i[f+4>>2]=i[f+4>>2]+1}e=e+8|0;break i}e=Q2(A+36|0,k+8|0),f=i[k+12>>2]}i[t>>2]=e;i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}he(r+108|0,i[r+112>>2]),i[r+108>>2]=r+112,i[r+112>>2]=0,i[r+116>>2]=0,t=i[r+20>>2],i[k+8>>2]=t,f=i[r+24>>2],i[k+12>>2]=f,f&&(i[f+4>>2]=i[f+4>>2]+1),A=r+8|0,e=i[r+12>>2];i:{if(e>>>0>2]){i[e+4>>2]=f,i[e>>2]=t,i[r+12>>2]=e+8;break i}if(e=z2(A,k+8|0),f=i[k+12>>2],i[r+12>>2]=e,!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}t=i[r+36>>2],i[k+8>>2]=t,f=i[r+40>>2],i[k+12>>2]=f,f&&(i[f+4>>2]=i[f+4>>2]+1),e=i[r+12>>2];i:{if(e>>>0>2]){i[e+4>>2]=f,i[e>>2]=t,i[r+12>>2]=e+8;break i}if(e=z2(A,k+8|0),f=i[k+12>>2],i[r+12>>2]=e,!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break i;V[i[i[f>>2]+8>>2]](f),g(f)}if(B=k+16|0,H6(n+16|0,i[n+20>>2]),i[n+16>>2]=n+20,i[n+20>>2]=0,i[n+24>>2]=0,r=i[n+32>>2],k=i[n+28>>2],(r|0)!=(k|0))for(;;){f=i[r-4>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}if(r=r-8|0,(k|0)==(r|0))break}i[n+32>>2]=k,f=i[n+44>>2],i[n+40>>2]=0,i[n+44>>2]=0;i:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break i;V[i[i[f>>2]+8>>2]](f),g(f)}return i[h+4>>2]=u,i[h>>2]=n,h|0}function R8(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0;n=B-176|0,B=n;i:{r:{e:{if(v=i[e+16>>2],E=i[e+20>>2],(v|0)!=(E|0))for(;;){A:{f:switch(s[e+4|0]){case 0:if(u=i[v+20>>2],w=i[v+16>>2],Z=i[k+4>>2]-i[k>>2]|0,!u&w>>>0>536870912-Z>>>0|u){i[n+40>>2]=54496,i[n+96>>2]=54516,e=i[13633],i[n+32>>2]=e,r=i[e-12>>2],e=n+32|0,i[r+e>>2]=i[13634],i[n+36>>2]=0,r=e+i[i[n+32>>2]-12>>2]|0,A=n+44|0,b0(r,A),i[r+72>>2]=0,i[r+76>>2]=-1,r=i[13635],i[n+40>>2]=r,k=i[r-12>>2],r=n+40|0,i[k+r>>2]=i[13636],k=i[13632],i[n+32>>2]=k,i[e+i[k-12>>2]>>2]=i[13637],i[n+96>>2]=54516,i[n+32>>2]=54476,i[n+40>>2]=54496,e=$0(A),i[e>>2]=53552,i[n+84>>2]=0,i[n+88>>2]=0,i[n+76>>2]=0,i[n+80>>2]=0,i[n+92>>2]=24,r=x(n4(x(r,19275,19),i[v+16>>2],i[v+20>>2]),19193,35),_=i[v+20>>2],A=Z+i[v+16>>2]|0,_=A>>>0>>0?_+1|0:_,x(H0(x(n4(r,A,_),19051,40),536870912),4139,6),r=n+20|0,i2(r,e),r0(f,6,1e3,r),l[n+31|0]<0&&G(i[n+20>>2]),f=i[13631],i[n+32>>2]=f,i[i[f-12>>2]+(n+32|0)>>2]=i[13639],i[n+40>>2]=i[13640],i[e>>2]=53552,l[n+87|0]<0&&G(i[n+76>>2]),K0(e),T0(n+96|0);break i}t=i[v+8>>2],o=i[v+12>>2],p=o;k:{if((o|0)==8388607|o>>>0<8388607&&(o=i[e+8>>2],W=i[e+12>>2],W>>>0<8388608))break k;if(e=U(40),i[n+32>>2]=e,i[n+36>>2]=39,i[n+40>>2]=-2147483608,r=s[10465]|s[10466]<<8|(s[10467]<<16|s[10468]<<24),A=s[10461]|s[10462]<<8|(s[10463]<<16|s[10464]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+39|0]=0,r=s[10496]|s[10497]<<8|(s[10498]<<16|s[10499]<<24),A=s[10492]|s[10493]<<8|(s[10494]<<16|s[10495]<<24),l[e+31|0]=A,l[e+32|0]=A>>>8,l[e+33|0]=A>>>16,l[e+34|0]=A>>>24,l[e+35|0]=r,l[e+36|0]=r>>>8,l[e+37|0]=r>>>16,l[e+38|0]=r>>>24,r=s[10489]|s[10490]<<8|(s[10491]<<16|s[10492]<<24),A=s[10485]|s[10486]<<8|(s[10487]<<16|s[10488]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[10481]|s[10482]<<8|(s[10483]<<16|s[10484]<<24),A=s[10477]|s[10478]<<8|(s[10479]<<16|s[10480]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[10473]|s[10474]<<8|(s[10475]<<16|s[10476]<<24),A=s[10469]|s[10470]<<8|(s[10471]<<16|s[10472]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,1e3,n+32|0),l[n+43|0]>=0)break i;G(i[n+32>>2]);break i}_=i[r>>2],u=u+p|0,w=t+w|0,t=W+(w>>>0>>0?u+1|0:u)|0,p=o,o=o+w|0,t=p>>>0>o>>>0?t+1|0:t;k:switch((V[i[i[_>>2]+12>>2]](_,o,t)|0)-1|0){case 1:i[k+4>>2]=i[k>>2],i[n+40>>2]=54496,i[n+96>>2]=54516,r=i[13633],i[n+32>>2]=r,A=i[r-12>>2],r=n+32|0,i[A+r>>2]=i[13634],i[n+36>>2]=0,A=r+i[i[n+32>>2]-12>>2]|0,k=n+44|0,b0(A,k),i[A+72>>2]=0,i[A+76>>2]=-1,A=i[13635],i[n+40>>2]=A,o=i[A-12>>2],A=n+40|0,i[o+A>>2]=i[13636],t=i[13632],i[n+32>>2]=t,i[r+i[t-12>>2]>>2]=i[13637],i[n+96>>2]=54516,i[n+32>>2]=54476,i[n+40>>2]=54496,r=$0(k),i[r>>2]=53552,i[n+84>>2]=0,i[n+88>>2]=0,i[n+76>>2]=0,i[n+80>>2]=0,i[n+92>>2]=24,k=x(x(A,18788,58),18854,25),w=i[e+12>>2]+i[v+12>>2]|0,t=i[v+8>>2],A=t+i[e+8>>2]|0,x(n4(k,A,A>>>0>>0?w+1|0:w),31337,2),e=n+20|0,i2(e,r),r0(f,2,100,e),l[n+31|0]<0&&G(i[n+20>>2]),f=i[13631],i[n+32>>2]=f,i[i[f-12>>2]+(n+32|0)>>2]=i[13639],i[n+40>>2]=i[13640],i[r>>2]=53552,l[n+87|0]<0&&G(i[n+76>>2]),K0(r),T0(n+96|0);break i;case 0:if(l[n+32|0]=0,l[n+43|0]=0,r0(f,2,100,n+32|0),l[n+43|0]>=0)break i;G(i[n+32>>2]);break i;default:break k}_=i[e+12>>2]+i[v+12>>2]|0,o=i[r>>2],u=i[v+8>>2],t=u+i[e+8>>2]|0,V[i[i[o>>2]+20>>2]](o,t,t>>>0>>0?_+1|0:_)|0,u=i[v+16>>2],t=Z+u|0,o=i[k>>2],w=i[k+4>>2]-o|0;k:{if(t>>>0>w>>>0){L2(k,t-w|0),u=i[v+16>>2],o=i[k>>2];break k}if(t>>>0>=w>>>0)break k;i[k+4>>2]=t+o}t=i[r>>2],V[i[i[t>>2]+16>>2]](t,o+Z|0,u)|0;break A;case 1:break f;default:break e}if(C=i[A>>2],!C){if(e=U(56),i[n+32>>2]=e,i[n+36>>2]=54,i[n+40>>2]=-2147483592,r=s[10043]|s[10044]<<8|(s[10045]<<16|s[10046]<<24),A=s[10039]|s[10040]<<8|(s[10041]<<16|s[10042]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+54|0]=0,r=s[10089]|s[10090]<<8|(s[10091]<<16|s[10092]<<24),A=s[10085]|s[10086]<<8|(s[10087]<<16|s[10088]<<24),l[e+46|0]=A,l[e+47|0]=A>>>8,l[e+48|0]=A>>>16,l[e+49|0]=A>>>24,l[e+50|0]=r,l[e+51|0]=r>>>8,l[e+52|0]=r>>>16,l[e+53|0]=r>>>24,r=s[10083]|s[10084]<<8|(s[10085]<<16|s[10086]<<24),A=s[10079]|s[10080]<<8|(s[10081]<<16|s[10082]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[10075]|s[10076]<<8|(s[10077]<<16|s[10078]<<24),A=s[10071]|s[10072]<<8|(s[10073]<<16|s[10074]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[10067]|s[10068]<<8|(s[10069]<<16|s[10070]<<24),A=s[10063]|s[10064]<<8|(s[10065]<<16|s[10066]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[10059]|s[10060]<<8|(s[10061]<<16|s[10062]<<24),A=s[10055]|s[10056]<<8|(s[10057]<<16|s[10058]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[10051]|s[10052]<<8|(s[10053]<<16|s[10054]<<24),A=s[10047]|s[10048]<<8|(s[10049]<<16|s[10050]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,103,n+32|0),l[n+43|0]>=0)break i;G(i[n+32>>2]);break i}t=i[v+8>>2],o=t+i[e+8>>2]|0,u=i[e+12>>2]+i[v+12>>2]|0,u=t>>>0>o>>>0?u+1|0:u,h=B-160|0,B=h,p=i[v+20>>2],Z=p,t=i[v+16>>2],y=i[k+4>>2]-i[k>>2]|0;f:{if(!Z&t>>>0>536870912-y>>>0|Z){i[h+24>>2]=54496,i[h+80>>2]=54516,o=i[13633],i[h+16>>2]=o,_=i[o-12>>2],o=h+16|0,i[_+o>>2]=i[13634],i[h+20>>2]=0,u=o+i[i[h+16>>2]-12>>2]|0,w=h+28|0,b0(u,w),i[u+72>>2]=0,i[u+76>>2]=-1,u=i[13635],i[h+24>>2]=u,_=i[u-12>>2],u=h+24|0,i[_+u>>2]=i[13636],Z=i[13632],i[h+16>>2]=Z,i[o+i[Z-12>>2]>>2]=i[13637],i[h+80>>2]=54516,i[h+16>>2]=54476,i[h+24>>2]=54496,o=$0(w),i[o>>2]=53552,i[h+68>>2]=0,i[h+72>>2]=0,i[h+60>>2]=0,i[h+64>>2]=0,i[h+76>>2]=24,w=x(n4(x(u,19255,19),t,p),19193,35),u=p,_=t,t=t+y|0,u=_>>>0>t>>>0?u+1|0:u,x(H0(x(n4(w,t,u),19051,40),536870912),4139,6),t=h+4|0,i2(t,o),r0(n,6,1e3,t),l[h+15|0]<0&&G(i[h+4>>2]),t=i[13631],i[h+16>>2]=t,i[i[t-12>>2]+(h+16|0)>>2]=i[13639],i[h+24>>2]=i[13640],i[o>>2]=53552,l[h+71|0]<0&&G(i[h+60>>2]),K0(o),T0(h+80|0);break f}if(w=i[C+8>>2],W=i[C+56>>2],I=w+W|0,Z=i[C+12>>2],J=i[C+60>>2],_=Z+J|0,_=W>>>0>I>>>0?_+1|0:_,(_|0)==(u|0)&o>>>0>I>>>0|u>>>0>_>>>0){if(l[h+16|0]=0,l[h+27|0]=0,r0(n,2,100,h+16|0),l[h+27|0]>=0)break f;G(i[h+16>>2]);break f}k:{if((Z|0)==(p|0)&t>>>0<=w>>>0|Z>>>0>p>>>0&&(_=w,w=u+p|0,I=t+o|0,w=I>>>0>>0?w+1|0:w,R=_,_=I,(w|0)==(Z|0)&R>>>0>=_>>>0|w>>>0>>0))break k;if(l[h+16|0]=0,l[h+27|0]=0,r0(n,2,100,h+16|0),l[h+27|0]>=0)break f;G(i[h+16>>2]);break f}if(Z=i[r>>2],w=w+J|0,W=_+W|0,w=W>>>0<_>>>0?w+1|0:w,(V[i[i[Z>>2]+12>>2]](Z,W,w)|0)-1>>>0<=1){if(l[h+16|0]=0,l[h+27|0]=0,r0(n,2,100,h+16|0),l[h+27|0]>=0)break f;G(i[h+16>>2]);break f}if(w=i[r>>2],u=u+i[C+60>>2]|0,_=o,o=o+i[C+56>>2]|0,u=_>>>0>o>>>0?u+1|0:u,V[i[i[w>>2]+20>>2]](w,o,u)|0,t|p){o=t+y|0,w=i[k>>2],u=i[k+4>>2]-w|0;k:{if(o>>>0>u>>>0){L2(k,o-u|0);break k}o>>>0>>0&&(i[k+4>>2]=o+w)}o=i[r>>2],V[i[i[o>>2]+16>>2]](o,y+i[k>>2]|0,t)|0}if(t=i[19565],i[n>>2]=i[19564],i[n+4>>2]=t,t=n+8|0,l[78275]>=0){o=i[19567],i[t>>2]=i[19566],i[t+4>>2]=o,i[t+8>>2]=i[19568];break f}_0(t,i[19566],i[19567])}if(B=h+160|0,l[n+19|0]>=0)break A;G(i[n+8>>2])}if(v=v+40|0,(E|0)==(v|0))break}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]<0)break r;e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}i[n+40>>2]=54496,i[n+96>>2]=54516,r=i[13633],i[n+32>>2]=r,A=i[r-12>>2],r=n+32|0,i[A+r>>2]=i[13634],i[n+36>>2]=0,A=r+i[i[n+32>>2]-12>>2]|0,k=n+44|0,b0(A,k),i[A+72>>2]=0,i[A+76>>2]=-1,A=i[13635],i[n+40>>2]=A,o=i[A-12>>2],A=n+40|0,i[o+A>>2]=i[13636],t=i[13632],i[n+32>>2]=t,i[r+i[t-12>>2]>>2]=i[13637],i[n+96>>2]=54516,i[n+32>>2]=54476,i[n+40>>2]=54496,r=$0(k),i[r>>2]=53552,i[n+84>>2]=0,i[n+88>>2]=0,i[n+76>>2]=0,i[n+80>>2]=0,i[n+92>>2]=24,x(H0(x(A,19229,25),s[e+4|0]),12434,16),e=n+20|0,i2(e,r),r0(f,4,3004,e),l[n+31|0]<0&&G(i[n+20>>2]),f=i[13631],i[n+32>>2]=f,i[i[f-12>>2]+(n+32|0)>>2]=i[13639],i[n+40>>2]=i[13640],i[r>>2]=53552,l[n+87|0]<0&&G(i[n+76>>2]),K0(r),T0(n+96|0);break i}_0(f,i[19566],i[19567])}B=n+176|0}function wk(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0;u=B-144|0,B=u,Z=Ri(i[e+48>>2],8710),o=U(360),i[o+16>>2]=0,i[o+20>>2]=0,i[o>>2]=72656,i[o+4>>2]=0,i[o+8>>2]=0,l[o+152|0]=0,i[o+36>>2]=Z,i[o+32>>2]=e,i[o+28>>2]=34648,i[o+40>>2]=0,i[o+44>>2]=0,i[o+52>>2]=0,i[o+56>>2]=0,i[o+68>>2]=0,i[o+72>>2]=0,i[o+80>>2]=0,i[o+84>>2]=0,i[o+156>>2]=0,i[o+160>>2]=0,i[o+24>>2]=0,X[o+48>>1]=0,X[o+58>>1]=0,X[o+60>>1]=0,X[o+62>>1]=0,X[o+64>>1]=0,l[o+76|0]=0,l[o+88|0]=0,i[o+204>>2]=0,i[o+196>>2]=0,i[o+200>>2]=0,i[o+188>>2]=0,i[o+192>>2]=0,i[o+180>>2]=0,i[o+184>>2]=0,i[o+172>>2]=0,i[o+176>>2]=0,i[o+164>>2]=0,i[o+168>>2]=0,i[o+212>>2]=0,i[o+216>>2]=0,l[o+208|0]=1,l[o+217|0]=0,l[o+218|0]=0,l[o+219|0]=0,l[o+220|0]=0,l[o+221|0]=0,l[o+222|0]=0,l[o+223|0]=0,l[o+224|0]=0,i[o+232>>2]=0,i[o+236>>2]=0,i[o+240>>2]=0,i[o+244>>2]=0,i[o+248>>2]=0,i[o+252>>2]=0,i[o+256>>2]=0,i[o+260>>2]=0,i[o+264>>2]=0,i[o+268>>2]=0,l[o+272|0]=0,B0(o+280|0,0,80),i[o+296>>2]=0,i[o+300>>2]=0,l[o+292|0]=1,i[o+304>>2]=0,i[o+308>>2]=0,i[o+312>>2]=0,i[o+316>>2]=0,i[o+328>>2]=0,i[o+332>>2]=0,i[o+320>>2]=0,i[o+324>>2]=1072693248,i[o+336>>2]=0,i[o+340>>2]=0,i[o+344>>2]=0,i[o+348>>2]=0,i[o+352>>2]=0,i[o+96>>2]=0,i[o+100>>2]=0,i[o+104>>2]=0,i[o+108>>2]=0,i[o+112>>2]=0,i[o+116>>2]=0,i[o+120>>2]=0,i[o+124>>2]=0,i[o+128>>2]=0,i[o+132>>2]=0,i[o+136>>2]=0,i[o+140>>2]=0,i[o+144>>2]=0,i[o+148>>2]=0,i[t>>2]=o+16,h=i[t+4>>2],i[t+4>>2]=o;i:{if(!h||(o=i[h+4>>2],i[h+4>>2]=o-1,o))break i;V[i[i[h>>2]+8>>2]](h),g(h)}h=i[e+32>>2];i:{if(h>>>0>2]){i[h>>2]=i[t>>2],o=i[t+4>>2],i[h+4>>2]=o,o&&(i[o+4>>2]=i[o+4>>2]+1),o=h+8|0;break i}o=Q2(e+28|0,t)}i[e+32>>2]=o,o=i[e+20>>2];i:{r:{if(!o){_=e+20|0,h=_;break r}for(;;){if(h=o,_=i[o+16>>2],_>>>0>Z>>>0){if(_=o,o=i[o>>2],o)continue;break r}if(_>>>0>=Z>>>0)break i;if(o=i[h+4>>2],!o)break}_=h+4|0}o=U(28),i[o+20>>2]=0,i[o+24>>2]=0,i[o+16>>2]=Z,i[o+8>>2]=h,i[o>>2]=0,i[o+4>>2]=0,i[_>>2]=o,h=o,w=i[i[e+16>>2]>>2],w&&(i[e+16>>2]=w,h=i[_>>2]),D1(i[e+20>>2],h),i[e+24>>2]=i[e+24>>2]+1}h=i[t>>2],_=i[t+4>>2],_&&(i[_+4>>2]=i[_+4>>2]+1),i[o+20>>2]=h,h=i[o+24>>2],i[o+24>>2]=_;i:{if(!h||(o=i[h+4>>2],i[h+4>>2]=o-1,o))break i;V[i[i[h>>2]+8>>2]](h),g(h)}o=i[r>>2],i[u+140>>2]=i[o+32>>2],i[u+136>>2]=i[o+36>>2],l[u+100|0]=1,i[u+88>>2]=6,i[u+92>>2]=6,i[u+96>>2]=6,v=U(24),l[v+22|0]=1,X[v+20>>1]=2,i[v+16>>2]=131074,i[v+12>>2]=72992,i[v>>2]=72832,i[v+4>>2]=0,i[v+8>>2]=0,_=v+12|0,o=_,l[o+10|0]=1,X[o+8>>1]=6,i[o+4>>2]=851969,Jt(o,u+84|0),o=i[A>>2];i:{if(i[o>>2]>=2){V[i[o+108>>2]](i[A+4>>2],u+140|0,u+136|0);break i}V[i[o+96>>2]](u+140|0,u+136|0)}i:{r:{e:{A:{if(o=i[u+140>>2],w=i[r>>2],h=i[u+136>>2],!((o|0)!=i[w+32>>2]|(h|0)!=i[w+36>>2])){if(h=i[w+44>>2],w=i[w+48>>2],w&&(i[w+4>>2]=i[w+4>>2]+1),p6(o,h,w,u+84|0))break A;h=i[u+136>>2],o=i[u+140>>2]}if(i[u+48>>2]=v,i[u+44>>2]=_,i[v+4>>2]=i[v+4>>2]+1,N8(u- -64|0,r,o,h,u+44|0,0,k+16|0),h=i[u+64>>2],r=i[u+68>>2],i[u+64>>2]=0,i[u+68>>2]=0,i[u+80>>2]=r,i[u+76>>2]=h,o=i[u+48>>2],o&&(r=i[o+4>>2],i[o+4>>2]=r-1,r||(V[i[i[o>>2]+8>>2]](o),g(o)),h=i[u+76>>2]),h)break e;if(l[u+64|0]=0,l[u+75|0]=0,r0(f,4,3003,u- -64|0),l[u+75|0]>=0)break r;G(i[u+64>>2]);break r}h=i[r>>2],r=i[r+4>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),i[u+80>>2]=r,i[u+76>>2]=h}e:{A:switch(n-1|0){case 0:case 3:break A;default:break e}r=i[h+52>>2],h=i[h+56>>2];A:{f:{k:{if(!h){if(!r)break f;o=i[e+48>>2],i[u+68>>2]=0,i[u+64>>2]=r;break k}if(i[h+4>>2]=i[h+4>>2]+1,!r)break f;o=i[e+48>>2],i[u+68>>2]=h,i[u+64>>2]=r,i[h+4>>2]=i[h+4>>2]+1}p8(o,Z,u- -64|0),o=i[u+68>>2];k:{if(!o||(r=i[o+4>>2],i[o+4>>2]=r-1,r))break k;V[i[i[o>>2]+8>>2]](o),g(o)}if(!s[k+3|0]|s[k|0]<3)break A}if(r=i[e+48>>2],i[u+68>>2]=v,i[u+64>>2]=_,i[v+4>>2]=i[v+4>>2]+1,p8(r,Z,u- -64|0),o=i[u+68>>2],!o||(r=i[o+4>>2],i[o+4>>2]=r-1,r))break A;V[i[i[o>>2]+8>>2]](o),g(o)}if(!h||(r=i[h+4>>2],i[h+4>>2]=r-1,r))break e;V[i[i[h>>2]+8>>2]](h),g(h)}h=i[u+76>>2];e:{A:{if(!s[k+1|0]||!H2(h,6))break A;i[u+44>>2]=0,i[u+48>>2]=0,s6(u- -64|0,u+76|0),o=i[u+64>>2],r=i[u+68>>2],i[u+64>>2]=0,i[u+68>>2]=0,h=i[u+48>>2],i[u+44>>2]=o,i[u+48>>2]=r;f:{if(!h||(r=i[h+4>>2],i[h+4>>2]=r-1,r||(V[i[i[h>>2]+8>>2]](h),g(h)),o=i[u+68>>2],!o)||(r=i[o+4>>2],i[o+4>>2]=r-1,r))break f;V[i[i[o>>2]+8>>2]](o),g(o)}if(i[u+24>>2]=0,i[u+28>>2]=0,wk(f,e,u+44|0,A,k,2,u+24|0),i[f>>2])break e;h=i[i[u+24>>2]+20>>2],o=i[e+48>>2],_=U(4),i[u+64>>2]=_,r=_+4|0,i[u+72>>2]=r,i[_>>2]=Z,i[u+68>>2]=r,P1(o,h,1635088492,u- -64|0),r=i[u+64>>2],r&&(i[u+68>>2]=r,G(r)),o=i[i[u+24>>2]+20>>2],r=i[e+48>>2],w=U(48),i[u+64>>2]=w,i[u+68>>2]=43,i[u+72>>2]=-2147483600,h=s[14658]|s[14659]<<8|(s[14660]<<16|s[14661]<<24),l[w+39|0]=h,l[w+40|0]=h>>>8,l[w+41|0]=h>>>16,l[w+42|0]=h>>>24,_=s[14655]|s[14656]<<8|(s[14657]<<16|s[14658]<<24),h=s[14651]|s[14652]<<8|(s[14653]<<16|s[14654]<<24),l[w+32|0]=h,l[w+33|0]=h>>>8,l[w+34|0]=h>>>16,l[w+35|0]=h>>>24,l[w+36|0]=_,l[w+37|0]=_>>>8,l[w+38|0]=_>>>16,l[w+39|0]=_>>>24,_=s[14647]|s[14648]<<8|(s[14649]<<16|s[14650]<<24),h=s[14643]|s[14644]<<8|(s[14645]<<16|s[14646]<<24),l[w+24|0]=h,l[w+25|0]=h>>>8,l[w+26|0]=h>>>16,l[w+27|0]=h>>>24,l[w+28|0]=_,l[w+29|0]=_>>>8,l[w+30|0]=_>>>16,l[w+31|0]=_>>>24,_=s[14639]|s[14640]<<8|(s[14641]<<16|s[14642]<<24),h=s[14635]|s[14636]<<8|(s[14637]<<16|s[14638]<<24),l[w+16|0]=h,l[w+17|0]=h>>>8,l[w+18|0]=h>>>16,l[w+19|0]=h>>>24,l[w+20|0]=_,l[w+21|0]=_>>>8,l[w+22|0]=_>>>16,l[w+23|0]=_>>>24,_=s[14631]|s[14632]<<8|(s[14633]<<16|s[14634]<<24),h=s[14627]|s[14628]<<8|(s[14629]<<16|s[14630]<<24),l[w+8|0]=h,l[w+9|0]=h>>>8,l[w+10|0]=h>>>16,l[w+11|0]=h>>>24,l[w+12|0]=_,l[w+13|0]=_>>>8,l[w+14|0]=_>>>16,l[w+15|0]=_>>>24,_=s[14623]|s[14624]<<8|(s[14625]<<16|s[14626]<<24),h=s[14619]|s[14620]<<8|(s[14621]<<16|s[14622]<<24),l[w|0]=h,l[w+1|0]=h>>>8,l[w+2|0]=h>>>16,l[w+3|0]=h>>>24,l[w+4|0]=_,l[w+5|0]=_>>>8,l[w+6|0]=_>>>16,l[w+7|0]=_>>>24,l[w+43|0]=0,_6(r,o,u- -64|0),l[u+75|0]<0&&G(i[u+64>>2]);f:{if(s[i[u+76>>2]+40|0]!=1||(h=i[e+48>>2],o=i[i[u+24>>2]+20>>2],_=U(4),i[u+64>>2]=_,r=_+4|0,i[u+72>>2]=r,i[_>>2]=o,i[u+68>>2]=r,P1(h,Z,1886545261,u- -64|0),r=i[u+64>>2],!r))break f;i[u+68>>2]=r,G(r)}l[f+19|0]<0&&G(i[f+8>>2]),o=i[u+28>>2];f:{if(!o||(r=i[o+4>>2],i[o+4>>2]=r-1,r))break f;V[i[i[o>>2]+8>>2]](o),g(o)}o=i[u+48>>2];f:{if(!o||(r=i[o+4>>2],i[o+4>>2]=r-1,r))break f;V[i[i[o>>2]+8>>2]](o),g(o)}h=i[u+76>>2]}i[u+60>>2]=0,r=i[u+80>>2];A:{if(!r){i[u+60>>2]=0,i[u+56>>2]=h;break A}if(i[r+4>>2]=i[r+4>>2]+1,i[u+56>>2]=h,o=i[u+60>>2],i[u+60>>2]=r,!o||(r=i[o+4>>2],i[o+4>>2]=r-1,r))break A;V[i[i[o>>2]+8>>2]](o),g(o)}V[i[i[A>>2]+100>>2]](u- -64|0,i[A+4>>2],u+56|0,n),n=i[u+64>>2];A:{if(n){if(A=i[u+68>>2],r=i[u+72>>2],t=G2(r),t>>>0>=2147483640)break i;f:{k:{if(t>>>0>=11){e=(t|7)+1|0,k=U(e),i[u+52>>2]=e|-2147483648,i[u+44>>2]=k,i[u+48>>2]=t;break k}if(l[u+55|0]=t,k=u+44|0,!t)break f}F2(k,r,t)}if(l[k+t|0]=0,r0(f,n,A,u+44|0),l[u+55|0]>=0)break A;G(i[u+44>>2]);break A}for(i[u+52>>2]=0,i[u+44>>2]=0,i[u+48>>2]=0,V[i[i[A>>2]+104>>2]](u+24|0,i[A+4>>2],u+40|0,u+36|0,0);;){if(o=i[u+40>>2],o){_=i[u+36>>2],r=i[u+44>>2],h=i[u+48>>2]-r|0,n=_+h|0;f:{if(n>>>0>h>>>0){L2(u+44|0,_),_=i[u+36>>2],o=i[u+40>>2],r=i[u+44>>2];break f}if(n>>>0>=h>>>0)break f;i[u+48>>2]=r+n}l0(r+h|0,o,_),V[i[i[A>>2]+104>>2]](u+24|0,i[A+4>>2],u+40|0,u+36|0,0);continue}break}hi(i[e+48>>2],Z,u+44|0,0),w=i[u+76>>2],h=i[w+24>>2],n=i[w+28>>2],Vi(i[e+48>>2],Z,h,n),i[u+24>>2]=h,i[u+40>>2]=n,o=h,r=n,_=i[A>>2];f:{if(i[_>>2]<3||(_=i[_+112>>2],!_))break f;V[_|0](i[A+4>>2],o,r,u+24|0,u+40|0),o=i[u+24>>2],r=i[u+40>>2]}f:{if((o|0)==(h|0)&(r|0)==(n|0)||(ar(i[e+48>>2],Z,h,n,o,r),E3(h,n,i[w+36>>2])))break f;l[i[t>>2]+192|0]=0}gr(i[e+48>>2],Z,i[k+12>>2]),i[u+16>>2]=w,r=i[u+80>>2],i[u+20>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),r=i[u+20>>2],i[u+8>>2]=i[u+16>>2],i[u+12>>2]=r,Wi(e,u+8|0,Z),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,e=f+8|0;f:{if(l[78275]>=0){f=i[19567],i[e>>2]=i[19566],i[e+4>>2]=f,i[e+8>>2]=i[19568];break f}_0(e,i[19566],i[19567])}if(f=i[u+44>>2],!f)break A;i[u+48>>2]=f,G(f)}if(e=i[u+60>>2],!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break r;V[i[i[e>>2]+8>>2]](e),g(e);break r}e=i[u+28>>2];e:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break e;V[i[i[e>>2]+8>>2]](e),g(e)}if(e=i[u+48>>2],!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break r;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[u+80>>2];r:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break r;V[i[i[e>>2]+8>>2]](e),g(e)}f=i[v+4>>2],i[v+4>>2]=f-1,f||(V[i[i[v>>2]+8>>2]](v),g(v)),B=u+144|0;return}c2(),P()}function _k(){var f=0,e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;for(l[84592]=0,l[84593]=0,l[84594]=0,l[84595]=1,l[84596]=1,l[84597]=0,l[84598]=1,l[84599]=1,l[81856]=0,l[81857]=0,l[81858]=1,l[81859]=0,l[81860]=0,l[81861]=1,l[81862]=1,l[81863]=1;;){if((f|0)<0)f=0;else{i:{r:{if(f>>>0<=1){if(k=e<<1,l[k+79127|0]=f,l[k+79126|0]=0,r=e+1|0,!f){e=r;break i}l[(r<<1)+79126|0]=1,A=f-1|0,k=2;break r}if((f|0)!=2)break i;A=1,l[(e<<1)+79126|0]=1,r=e,k=1}l[(r<<1)+79127|0]=A,e=e+k|0}f=f+1|0}if(!((e|0)<4))break}for(i[20474]=50397952,i[20475]=50529026,i[20472]=33620480,i[20473]=33751554,i[20470]=16843008,i[20471]=16974082,i[20468]=65536,i[20469]=196610,i[21152]=16777216,i[21153]=50332160,i[21154]=16842753,i[21155]=50397697,i[21156]=16908290,i[21157]=50463234,i[21158]=16973827,i[21159]=50528771,e=0,f=0;;){if((f|0)<0)f=0;else{i:{r:{e:{A:{f:{k:{if(f>>>0<=3){if(k=e<<1,l[k+79137|0]=f,l[k+79136|0]=0,k=e+1|0,f)break k;e=k;break i}if((f|0)!=4)break f;X[(e<<1)+79136>>1]=769,e=e+1|0;break e}if(k=k<<1,l[k+79137|0]=f-1,l[k+79136|0]=1,k=e+2|0,(f|0)!=1)break A;e=k;break i}if(f>>>0<6)break e;if((f|0)!=6)break i;break r}if(k=k<<1,l[k+79137|0]=f-2,l[k+79136|0]=2,k=e+3|0,(f|0)==2){e=k;break i}k=k<<1,l[k+79137|0]=f-3,l[k+79136|0]=3,e=e+4|0;break i}k=e<<1,l[k+79137|0]=f-2,l[k+79136|0]=2,e=e+1|0}k=e<<1,l[k+79137|0]=f-3,l[k+79136|0]=3,e=e+1|0}f=f+1|0}if(!((e|0)<16))break}for(i[20506]=117769988,i[20507]=117901062,i[20504]=117507840,i[20505]=117638914,i[20502]=100992516,i[20503]=101123590,i[20500]=100730368,i[20501]=100861442,i[20498]=84215044,i[20499]=84346118,i[20496]=83952896,i[20497]=84083970,i[20494]=67437572,i[20495]=67568646,i[20492]=67175424,i[20493]=67306498,i[20490]=50660100,i[20491]=50791174,i[20488]=50397952,i[20489]=50529026,i[20486]=33882628,i[20487]=34013702,i[20484]=33620480,i[20485]=33751554,i[20482]=17105156,i[20483]=17236230,i[20480]=16843008,i[20481]=16974082,i[20478]=327684,i[20479]=458758,i[20476]=65536,i[20477]=196610,i[21160]=16777216,i[21161]=50332160,i[21162]=83887104,i[21163]=117442048,i[21164]=16842753,i[21165]=50397697,i[21166]=83952641,i[21167]=117507585,i[21168]=16908290,i[21169]=50463234,i[21170]=84018178,i[21171]=117573122,i[21172]=16973827,i[21173]=50528771,i[21174]=84083715,i[21175]=117638659,i[21176]=17039364,i[21177]=50594308,i[21178]=84149252,i[21179]=117704196,i[21180]=17104901,i[21181]=50659845,i[21182]=84214789,i[21183]=117769733,i[21184]=17170438,i[21185]=50725382,i[21186]=84280326,i[21187]=117835270,i[21188]=17235975,i[21189]=50790919,i[21190]=84345863,i[21191]=117900807,r=0,k=0;;){if((k|0)<0)k=0;else{i:{if(!k){e=0,f=k;break i}for(t=k+1&-2,e=0,f=k,A=0;(f|0)>7|e>>>0>7||(n=r<<1,l[n+79169|0]=f,l[n+79168|0]=e,r=r+1|0),(f|0)>8|e>>>0>7||(n=r<<1,l[n+79169|0]=f-1,l[n+79168|0]=e|1,r=r+1|0),e=e+2|0,f=f-2|0,A=A+2|0,(t|0)!=(A|0););}k&1|(f|0)>7|e>>>0>7||(n=r<<1,l[n+79169|0]=f,l[n+79168|0]=e,r=r+1|0),k=k+1|0}if(!((r|0)<64))break}for(r=0,A=0;f=A<<1,l[f+82033|0]=r,e=0,l[f+82032|0]=0,l[f+82035|0]=r,l[f+82034|0]=1,l[f+82037|0]=r,l[f+82036|0]=2,l[f+82039|0]=r,l[f+82038|0]=3,l[f+82041|0]=r,l[f+82040|0]=4,l[f+82043|0]=r,l[f+82042|0]=5,l[f+82045|0]=r,l[f+82044|0]=6,l[f+82047|0]=r,l[f+82046|0]=7,l[f+82049|0]=r,l[f+82048|0]=8,l[f+82051|0]=r,l[f+82050|0]=9,l[f+82053|0]=r,l[f+82052|0]=10,l[f+82055|0]=r,l[f+82054|0]=11,l[f+82057|0]=r,l[f+82056|0]=12,l[f+82059|0]=r,l[f+82058|0]=13,l[f+82061|0]=r,l[f+82060|0]=14,l[f+82063|0]=r,l[f+82062|0]=15,A=A+16|0,r=r+1|0,(r|0)!=16;);for(A=0;r=0,f=A<<1,l[f+84769|0]=0,l[f+84768|0]=e,l[f+84771|0]=1,l[f+84770|0]=e,l[f+84773|0]=2,l[f+84772|0]=e,l[f+84775|0]=3,l[f+84774|0]=e,l[f+84777|0]=4,l[f+84776|0]=e,l[f+84779|0]=5,l[f+84778|0]=e,l[f+84781|0]=6,l[f+84780|0]=e,l[f+84783|0]=7,l[f+84782|0]=e,l[f+84785|0]=8,l[f+84784|0]=e,l[f+84787|0]=9,l[f+84786|0]=e,l[f+84789|0]=10,l[f+84788|0]=e,l[f+84791|0]=11,l[f+84790|0]=e,l[f+84793|0]=12,l[f+84792|0]=e,l[f+84795|0]=13,l[f+84794|0]=e,l[f+84797|0]=14,l[f+84796|0]=e,l[f+84799|0]=15,l[f+84798|0]=e,A=A+16|0,e=e+1|0,(e|0)!=16;);for(n=0;;){if(A=0,(n|0)<0)n=0;else{i:{if(!n){e=0,f=n;break i}for(h=n+1&-2,e=0,f=n,k=0;(f|0)>15|e>>>0>15||(t=r<<1,l[t+79297|0]=f,l[t+79296|0]=e,r=r+1|0),(f|0)>16|e>>>0>15||(t=r<<1,l[t+79297|0]=f-1,l[t+79296|0]=e|1,r=r+1|0),e=e+2|0,f=f-2|0,k=k+2|0,(h|0)!=(k|0););}n&1|(f|0)>15|e>>>0>15||(k=r<<1,l[k+79297|0]=f,l[k+79296|0]=e,r=r+1|0),n=n+1|0}if(!((r|0)<256))break}for(r=0;f=r<<1,l[f+82545|0]=A,e=0,l[f+82544|0]=0,l[f+82547|0]=A,l[f+82546|0]=1,l[f+82549|0]=A,l[f+82548|0]=2,l[f+82551|0]=A,l[f+82550|0]=3,l[f+82553|0]=A,l[f+82552|0]=4,l[f+82555|0]=A,l[f+82554|0]=5,l[f+82557|0]=A,l[f+82556|0]=6,l[f+82559|0]=A,l[f+82558|0]=7,l[f+82561|0]=A,l[f+82560|0]=8,l[f+82563|0]=A,l[f+82562|0]=9,l[f+82565|0]=A,l[f+82564|0]=10,l[f+82567|0]=A,l[f+82566|0]=11,l[f+82569|0]=A,l[f+82568|0]=12,l[f+82571|0]=A,l[f+82570|0]=13,l[f+82573|0]=A,l[f+82572|0]=14,l[f+82575|0]=A,l[f+82574|0]=15,l[f+82577|0]=A,l[f+82576|0]=16,l[f+82579|0]=A,l[f+82578|0]=17,l[f+82581|0]=A,l[f+82580|0]=18,l[f+82583|0]=A,l[f+82582|0]=19,l[f+82585|0]=A,l[f+82584|0]=20,l[f+82587|0]=A,l[f+82586|0]=21,l[f+82589|0]=A,l[f+82588|0]=22,l[f+82591|0]=A,l[f+82590|0]=23,l[f+82593|0]=A,l[f+82592|0]=24,l[f+82595|0]=A,l[f+82594|0]=25,l[f+82597|0]=A,l[f+82596|0]=26,l[f+82599|0]=A,l[f+82598|0]=27,l[f+82601|0]=A,l[f+82600|0]=28,l[f+82603|0]=A,l[f+82602|0]=29,l[f+82605|0]=A,l[f+82604|0]=30,l[f+82607|0]=A,l[f+82606|0]=31,r=r+32|0,A=A+1|0,(A|0)!=32;);for(A=0;r=0,f=A<<1,l[f+85281|0]=0,l[f+85280|0]=e,l[f+85283|0]=1,l[f+85282|0]=e,l[f+85285|0]=2,l[f+85284|0]=e,l[f+85287|0]=3,l[f+85286|0]=e,l[f+85289|0]=4,l[f+85288|0]=e,l[f+85291|0]=5,l[f+85290|0]=e,l[f+85293|0]=6,l[f+85292|0]=e,l[f+85295|0]=7,l[f+85294|0]=e,l[f+85297|0]=8,l[f+85296|0]=e,l[f+85299|0]=9,l[f+85298|0]=e,l[f+85301|0]=10,l[f+85300|0]=e,l[f+85303|0]=11,l[f+85302|0]=e,l[f+85305|0]=12,l[f+85304|0]=e,l[f+85307|0]=13,l[f+85306|0]=e,l[f+85309|0]=14,l[f+85308|0]=e,l[f+85311|0]=15,l[f+85310|0]=e,l[f+85313|0]=16,l[f+85312|0]=e,l[f+85315|0]=17,l[f+85314|0]=e,l[f+85317|0]=18,l[f+85316|0]=e,l[f+85319|0]=19,l[f+85318|0]=e,l[f+85321|0]=20,l[f+85320|0]=e,l[f+85323|0]=21,l[f+85322|0]=e,l[f+85325|0]=22,l[f+85324|0]=e,l[f+85327|0]=23,l[f+85326|0]=e,l[f+85329|0]=24,l[f+85328|0]=e,l[f+85331|0]=25,l[f+85330|0]=e,l[f+85333|0]=26,l[f+85332|0]=e,l[f+85335|0]=27,l[f+85334|0]=e,l[f+85337|0]=28,l[f+85336|0]=e,l[f+85339|0]=29,l[f+85338|0]=e,l[f+85341|0]=30,l[f+85340|0]=e,l[f+85343|0]=31,l[f+85342|0]=e,A=A+32|0,e=e+1|0,(e|0)!=32;);for(k=0;;){if((k|0)<0)k=0;else{i:{if(!k){e=0,f=k;break i}for(t=k+1&-2,e=0,f=k,A=0;(f|0)>31|e>>>0>31||(n=r<<1,l[n+79809|0]=f,l[n+79808|0]=e,r=r+1|0),(f|0)>32|e>>>0>31||(n=r<<1,l[n+79809|0]=f-1,l[n+79808|0]=e|1,r=r+1|0),e=e+2|0,f=f-2|0,A=A+2|0,(t|0)!=(A|0););}k&1|(f|0)>31|e>>>0>31||(n=r<<1,l[n+79809|0]=f,l[n+79808|0]=e,r=r+1|0),k=k+1|0}if(!((r|0)<1024))break}for(A=2;;){for(f=A-2|0,k=(1<>2],p=f<<2,v=i[p+45168>>2],n=0;;){for(h=_+(n<>2],v=i[Z+45288>>2],n=0;;){for(h=v+(n<>2],v=i[Z+45312>>2],n=0;;){for(h=v+(n<=16){v2(y+4|0,1008,0),l[r+312|0]=3,l[W+30|0]=0,l[W+31|0]=0,X[E>>1]=0,X[E+2>>1]=0,X[E+4>>1]=0,X[E+6>>1]=0;break k}if(l[W+31|0]=0,R=-1,J=t-1|0,i[I+60>>2]=J,i[I+56>>2]=J,e=o+h|0,i[I+52>>2]=e,C=e-1|0,i[I+48>>2]=C,l[W+30|0]=0,X[E>>1]=0,X[E+2>>1]=0,S=K4(p,f0,k,n,t,o,u,h,v,J,e),l[I+47|0]=S,q=K4(p,f0,k,n,t,o,u,h,v,J,C),l[I+46|0]=q,z=h0+924|0,d=w<<6,j=(z+d|0)+(_<<2)|0,r=V[i[i[y>>2]+8>>2]](y,i[j>>2])|0,!r)break k;f=1-w|0,H=i[r+96>>2];n:{if(s[W+30|0]|!S)break n;if(A=i[p+168>>2],r=J>>A,(r|0)<0||(A0=i[p+172>>2],(A0|0)<=(r|0)))break e;if(A=e>>A,(A|0)<0|(A|0)>=i[p+176>>2])break r;if(!(s[((i[p+160>>2]+m(r,3)|0)+m(m(A,A0),3)|0)+1|0]&3))break n;if(r=i[p+188>>2],A=J>>r,(A|0)<0||(A0=i[p+192>>2],(A0|0)<=(A|0)))break e;if(e=e>>r,(e|0)<0|(e|0)>=i[p+196>>2])break r;if(r=0,e=(i[p+180>>2]+m(A,12)|0)+m(m(e,A0),12)|0,A=e+w|0,s[A|0]){if(a=s[A+2|0],a>>>0>15)break k;a=V[i[i[y>>2]+8>>2]](y,i[(z+d|0)+(a<<2)>>2])|0}if(d=f+e|0,s[d|0]){if(r=s[d+2|0],r>>>0>15)break k;r=V[i[i[y>>2]+8>>2]](y,i[((f<<6)+z|0)+(r<<2)>>2])|0}t:{if(!(!a|!s[A|0])&&(A=w,i[a+96>>2]==(H|0)))break t;if(!r|!s[d|0]||(A=f,i[r+96>>2]!=(H|0)))break n}l[W+30|0]=1,r=e+(A<<2)|0,r=Q[r+4>>1]|Q[r+6>>1]<<16,X[E>>1]=r,X[E+2>>1]=r>>>16,R=l[(e+A|0)+2|0]}n:{if(s[W+30|0]|!q)break n;if(r=i[p+168>>2],e=J>>r,(e|0)<0||(A=i[p+172>>2],(A|0)<=(e|0)))break e;if(r=C>>r,(r|0)<0|(r|0)>=i[p+176>>2])break r;if(!(s[((i[p+160>>2]+m(e,3)|0)+m(m(r,A),3)|0)+1|0]&3))break n;if(r=i[p+188>>2],e=J>>r,(e|0)<0||(a=i[p+192>>2],(a|0)<=(e|0)))break e;if(r=C>>r,(r|0)<0|(r|0)>=i[p+196>>2])break r;if(A=0,e=(i[p+180>>2]+m(e,12)|0)+m(m(r,a),12)|0,r=e+w|0,s[r|0]){if(A=s[r+2|0],A>>>0>15)break k;A=V[i[i[y>>2]+8>>2]](y,i[((w<<6)+z|0)+(A<<2)>>2])|0}if(C=f+e|0,s[C|0]){if(D=s[C+2|0],D>>>0>15)break k;D=V[i[i[y>>2]+8>>2]](y,i[((f<<6)+z|0)+(D<<2)>>2])|0}t:{if(!(!A|!s[r|0])&&(r=w,i[A+96>>2]==(H|0)))break t;if(!D|!s[C|0]||(r=f,i[D+96>>2]!=(H|0)))break n}l[W+30|0]=1,A=e+(r<<2)|0,A=Q[A+4>>1]|Q[A+6>>1]<<16,X[E>>1]=A,X[E+2>>1]=A>>>16,R=l[(e+r|0)+2|0]}for(d=S|q,q=h0+1308|0,A0=q+(w<<4)|0,S=A0+_|0,a=y+4|0,r=I+60|0,A=I+52|0,e=I+47|0,D=1;;){if(!s[W+30|0]){C=-1;n:{if(s[e|0]!=1)break n;if(n0=i[r>>2],r=i[p+168>>2],e=n0>>r,(e|0)<0||(L=i[p+172>>2],(L|0)<=(e|0)))break e;if(A=i[A>>2],r=A>>r,(r|0)<0|(r|0)>=i[p+176>>2])break r;if(!(s[((i[p+160>>2]+m(e,3)|0)+m(m(r,L),3)|0)+1|0]&3))break n;if(r=i[p+188>>2],e=n0>>r,(e|0)<0||(n0=i[p+192>>2],(n0|0)<=(e|0)))break e;if(r=A>>r,(r|0)<0|(r|0)>=i[p+196>>2])break r;e=(i[p+180>>2]+m(e,12)|0)+m(m(r,n0),12)|0,A=e+w|0;t:{if(s[A|0]==1&&(r=w,A=A+2|0,s[S|0]==s[A0+l[A|0]|0]))break t;if(r=f+e|0,s[r|0]!=1||(A=r+2|0,r=f,s[S|0]!=s[l[A|0]+(q+(r<<4)|0)|0]))break n}l[W+30|0]=1,e=e+(r<<2)|0,e=Q[e+4>>1]|Q[e+6>>1]<<16,X[E>>1]=e,X[E+2>>1]=e>>>16,R=l[A|0],C=r}n:{if(s[W+30|0]!=1)break n;if((R|0)<0){l[W+30|0]=0,l[W+31|0]=0;break k}if((C|0)<0)break f;if(r=V[i[i[y>>2]+8>>2]](y,i[((C<<6)+z|0)+(R<<2)>>2])|0,V[i[i[y>>2]+8>>2]](y,i[j>>2])|0,s[(q+(C<<4)|0)+R|0]|s[S|0])break n;if(e=i[p+96>>2],r=i[r+96>>2],(e|0)!=(r|0)){r=e-r|0,r=(r|0)>=127?127:r,r=(r|0)<=-128?-128:r,A=r>>31,e=e-H|0,e=(e|0)>=127?127:e,e=m(((r^A)-A>>>1|16384)/(r|0)<<16>>16,(e|0)<=-128?-128:e)+32>>6,e=(e|0)>=4095?4095:e,A=(e|0)<=-4096?-4096:e,C=Q[E>>1]|Q[E+2>>1]<<16,e=m(A,C>>16),r=e>>31,e=m(((e^r)-r|0)+127>>>8|0,(e|0)<0?-1:(e|0)!=0),e=(e|0)>=32767?32767:e,X[E+2>>1]=(e|0)<=-32768?-32768:e,e=m(A,C<<16>>16),r=e>>31,e=m(((e^r)-r|0)+127>>>8|0,(e|0)<0?-1:(e|0)!=0),e=(e|0)>=32767?32767:e,X[E>>1]=(e|0)<=-32768?-32768:e;break n}v2(a,1008,0),l[p+312|0]=3}if(C=D&1,r=I+56|0,A=I+48|0,e=I+46|0,D=0,C)continue}break}i[I+40>>2]=J,D=-1,e=o-1|0,i[I+20>>2]=e,i[I+24>>2]=e,i[I+28>>2]=e,e=t+u|0,i[I+32>>2]=e,i[I+36>>2]=e-1,l[W+31|0]=0,X[E+4>>1]=0,X[E+6>>1]=0,e=i[I+32>>2],r=i[I+20>>2],A=K4(p,f0,k,n,t,o,u,h,v,e,r),l[I+17|0]=A,J=E+4|0;n:{if(s[W+31|0]|!A)break n;if(A=i[p+188>>2],e=e>>A,(e|0)<0||(C=i[p+192>>2],(C|0)<=(e|0)))break e;if(A=r>>A,(A|0)<0|(A|0)>=i[p+196>>2])break r;if(r=0,R=0,A=(i[p+180>>2]+m(e,12)|0)+m(m(A,C),12)|0,e=A+w|0,s[e|0]){if(C=s[e+2|0],C>>>0>15)break k;R=V[i[i[y>>2]+8>>2]](y,i[((w<<6)+z|0)+(C<<2)>>2])|0}if(C=f+A|0,s[C|0]){if(r=s[C+2|0],r>>>0>15)break k;r=V[i[i[y>>2]+8>>2]](y,i[((f<<6)+z|0)+(r<<2)>>2])|0}t:{if(!(!R|!s[e|0])&&(e=w,i[R+96>>2]==(H|0)))break t;if(!r|!s[C|0]||(e=f,i[r+96>>2]!=(H|0)))break n}l[W+31|0]=1,r=A+(e<<2)|0,r=Q[r+4>>1]|Q[r+6>>1]<<16,X[J>>1]=r,X[J+2>>1]=r>>>16,D=l[(e+A|0)+2|0]}e=i[I+36>>2],r=i[I+24>>2],A=K4(p,f0,k,n,t,o,u,h,v,e,r),l[I+18|0]=A;n:{if(s[W+31|0]|!A)break n;if(A=i[p+188>>2],e=e>>A,(e|0)<0||(C=i[p+192>>2],(C|0)<=(e|0)))break e;if(A=r>>A,(A|0)<0|(A|0)>=i[p+196>>2])break r;if(r=0,R=0,A=(i[p+180>>2]+m(e,12)|0)+m(m(A,C),12)|0,e=A+w|0,s[e|0]){if(C=s[e+2|0],C>>>0>15)break k;R=V[i[i[y>>2]+8>>2]](y,i[((w<<6)+z|0)+(C<<2)>>2])|0}if(C=f+A|0,s[C|0]){if(r=s[C+2|0],r>>>0>15)break k;r=V[i[i[y>>2]+8>>2]](y,i[((f<<6)+z|0)+(r<<2)>>2])|0}t:{if(!(!R|!s[e|0])&&(e=w,i[R+96>>2]==(H|0)))break t;if(!r|!s[C|0]||(e=f,i[r+96>>2]!=(H|0)))break n}l[W+31|0]=1,r=A+(e<<2)|0,r=Q[r+4>>1]|Q[r+6>>1]<<16,X[J>>1]=r,X[J+2>>1]=r>>>16,D=l[(e+A|0)+2|0]}e=i[I+40>>2],r=i[I+28>>2],A=K4(p,f0,k,n,t,o,u,h,v,e,r),l[I+19|0]=A;n:{if(s[W+31|0]|!A)break n;if(A=i[p+188>>2],e=e>>A,(e|0)<0||(k=i[p+192>>2],(k|0)<=(e|0)))break e;if(A=r>>A,(A|0)<0|(A|0)>=i[p+196>>2])break r;if(r=0,R=0,A=(i[p+180>>2]+m(e,12)|0)+m(m(A,k),12)|0,e=A+w|0,s[e|0]){if(k=s[e+2|0],k>>>0>15)break k;R=V[i[i[y>>2]+8>>2]](y,i[((w<<6)+z|0)+(k<<2)>>2])|0}if(k=f+A|0,s[k|0]){if(r=s[k+2|0],r>>>0>15)break k;r=V[i[i[y>>2]+8>>2]](y,i[((f<<6)+z|0)+(r<<2)>>2])|0}t:{if(!(!R|!s[e|0])&&(e=w,i[R+96>>2]==(H|0)))break t;if(!r|!s[k|0]||(e=f,i[r+96>>2]!=(H|0)))break n}l[W+31|0]=1,r=A+(e<<2)|0,r=Q[r+4>>1]|Q[r+6>>1]<<16,X[J>>1]=r,X[J+2>>1]=r>>>16,D=l[(e+A|0)+2|0]}if(d)break k;for(s[W+31|0]&&(l[W+30|0]=1,e=Q[E+4>>1]|Q[E+6>>1]<<16,X[E>>1]=e,X[E+2>>1]=e>>>16),l[W+31|0]=0,n=q+(w<<4)|0,C=0;;){e=-1;n:{if(s[(I+17|0)+C|0]!=1)break n;if(r=C<<2,A=i[p+188>>2],e=i[r+(I+32|0)>>2]>>A,(e|0)<0||(k=i[p+192>>2],(k|0)<=(e|0)))break e;if(r=i[r+(I+20|0)>>2]>>A,(r|0)<0|(r|0)>=i[p+196>>2])break r;t:{o:{if(k=(i[p+180>>2]+m(e,12)|0)+m(m(r,k),12)|0,v=k+2|0,r=v+w|0,e=l[r|0],(e|0)<=15){if(s[k+w|0]==1&&(A=w,s[S|0]==s[e+n|0]))break t;if(s[f+k|0]==1)break o;e=-1;break n}l[p+312|0]=3,v2(a,1012,0);break k}if(A=f,r=v+A|0,e=-1,s[S|0]!=s[l[r|0]+(q+(A<<4)|0)|0])break n}l[W+31|0]=1,e=k+(A<<2)|0,e=Q[e+4>>1]|Q[e+6>>1]<<16,X[J>>1]=e,X[J+2>>1]=e>>>16,D=l[r|0],e=A}n:{if(s[W+31|0]!=1)break n;if((D|0)<0){l[W+30|0]=0,l[W+31|0]=0;break k}if((e|0)<0)break A;r=V[i[i[y>>2]+8>>2]](y,i[((e<<6)+z|0)+(D<<2)>>2])|0,A=V[i[i[y>>2]+8>>2]](y,i[j>>2])|0;t:{if(!(A&&r)){v2(i[p+112>>2]+4|0,1012,0);break t}if(r=i[r+96>>2],s[S|0]|(s[(q+(e<<4)|0)+D|0]|(r|0)==i[A+96>>2])||(e=i[p+96>>2],A=Q[J>>1]|Q[J+2>>1]<<16,i[I+8>>2]=A,i[I+12>>2]=A,C7(J,I+8|0,e-r|0,e-H|0)))break n;v2(a,1008,0)}l[p+312|0]=3}if(C=C+1|0,(C|0)==3)break k;if(s[W+31|0])break}}B=I- -64|0;break i}C0(17142,13964,1801,6195),P()}C0(17142,13964,1959,6195),P()}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}i:{r:{e:{A:{f:{k:{if(f=s[W+30|0],e=s[W+31|0],!(!f|!e)){if(Q[W+20>>1]!=Q[W+24>>1]|Q[W+22>>1]!=Q[W+26>>1])break k;dr(y,p,h0,t,o,u,h,_,w,W+12|0,W+19|0);break f}if(dr(y,p,h0,t,o,u,h,_,w,W+12|0,W+19|0),f)break A;if(_=0,f=0,!e)break i;break r}l[W+19|0]=0}f=i[W+20>>2],X[Z>>1]=f,X[Z+2>>1]=f>>>16;break e}if(f=i[W+20>>2],X[Z>>1]=f,X[Z+2>>1]=f>>>16,e)break e;f=1;break i}if(_=1,Q[W+20>>1]!=Q[W+24>>1])break r;if(f=1,Q[W+22>>1]==Q[W+26>>1])break i}f=(_<<2)+Z|0,e=i[W+24>>2],X[f>>1]=e,X[f+2>>1]=e>>>16,f=_+1|0}_=f,s[W+19|0]&&(f=(_<<2)+Z|0,e=i[W+12>>2],X[f>>1]=e,X[f+2>>1]=e>>>16,_=_+1|0);i:{if(_>>>0<=1){f=_<<2,B0(f+Z|0,0,8-f|0);break i}if((_|0)==2)break i;C0(16737,13964,2063,3803),P()}B=W+32|0}function Ns(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0;for(A=B-176|0,B=A,i[A+64>>2]=54820,n=i[13708],i[A+8>>2]=n,k=i[n-12>>2],n=A+8|0,i[k+n>>2]=i[13709],k=n+i[i[A+8>>2]-12>>2]|0,t=A+12|0,b0(k,t),i[k+72>>2]=0,i[k+76>>2]=-1,i[A+64>>2]=54820,i[A+8>>2]=54800,Z=$0(t),i[Z>>2]=53552,i[A+52>>2]=0,i[A+56>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+60>>2]=16,k=A+164|0,R2(k,e,r),v=n,o=k,n=l[A+175|0],k=(n|0)<0,x(v,k?i[A+164>>2]:o,k?i[A+168>>2]:n),l[A+175|0]<0&&G(i[A+164>>2]),n=A+164|0,W0(n,r),o=n,n=l[A+175|0],k=(n|0)<0,x(A+8|0,k?i[A+164>>2]:o,k?i[A+168>>2]:n),l[A+175|0]<0&&G(i[A+164>>2]),n=x(H0(x(A+8|0,20322,23),s[e+48|0]),31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),n=x(H0(x(n,21214,23),s[e+49|0]),31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),n=x(re(x(n,20609,19),s[e+50|0]),31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),x(H0(x(n,21413,21),s[e+51|0]),31338,1),n=A+164|0,W0(n,r),o=n,n=l[A+175|0],k=(n|0)<0,x(A+8|0,k?i[A+164>>2]:o,k?i[A+168>>2]:n),l[A+175|0]<0&&G(i[A+164>>2]),x(A+8|0,19884,37),n=0;;){k=A+8|0,L0(k,i[e+52>>2]>>>31-n&1);i:{if((n&7)==7){l[A+164|0]=32,x(k,A+164|0,1);break i}if((n&3)!=3)break i;l[A+164|0]=46,x(A+8|0,A+164|0,1)}if(n=n+1|0,(n|0)==32)break}for(k=A+8|0,x(k,31338,1),t=A+164|0,W0(t,r),n=0,v=k,o=t,k=l[A+175|0],t=(k|0)<0,x(v,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),x(A+8|0,19922,36),k=e+56|0;t=A+8|0,H0(t,i[k+(n>>>3&536870908)>>2]>>>n&1),n=n+1|0,n&7||(l[A+164|0]=32,x(t,A+164|0,1)),(n|0)!=48;);n=A+8|0,x(n,31338,1),k=A+164|0,W0(k,r),v=n,o=k,n=l[A+175|0],k=(n|0)<0,x(v,k?i[A+164>>2]:o,k?i[A+168>>2]:n),l[A+175|0]<0&&G(i[A+164>>2]),n=x(H0(x(A+8|0,21393,19),s[e+64|0]),31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),n=x(L0(x(n,21362,30),Q[e+66>>1]),31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),n=x(H0(x(n,20978,18),s[e+68|0]),31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),x(n,19643,15);i:{r:{e:{A:{f:switch(n=s[e+69|0],n-1|0){case 2:break e;case 1:break A;case 0:break f;default:break r}x(A+8|0,17203,5);break i}x(A+8|0,16785,5);break i}x(A+8|0,16639,5);break i}H0(A+8|0,n)}n=x(A+8|0,31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),n=x(H0(x(n,21442,16),s[e+70|0]),31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),n=x(H0(x(n,21459,18),s[e+71|0]),31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),n=x(L0(x(n,20862,16),Q[e+72>>1]),31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),n=x(H0(x(n,20840,21),s[e+74|0]),31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),n=x(H0(x(n,19783,21),s[e+75|0]),31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),n=x(H0(x(n,21327,20),s[e+76|0]),31338,1),k=A+164|0,W0(k,r),o=k,k=l[A+175|0],t=(k|0)<0,x(n,t?i[A+164>>2]:o,t?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),x(H0(x(n,20723,13),s[e+80|0]),31338,1);i:{if(_=i[e+84>>2],y=i[e+88>>2],(_|0)!=(y|0))for(v=A+20|0;;){e=A+164|0,W0(e,r),k=e,e=l[A+175|0],n=(e|0)<0,x(A+8|0,n?i[A+164>>2]:k,n?i[A+168>>2]:e),l[A+175|0]<0&&G(i[A+164>>2]),e=A+8|0,x(e,30565,8),i[r>>2]=i[r>>2]+1,n=A+164|0,W0(n,r),o=e,k=n,e=l[A+175|0],n=(e|0)<0,x(o,n?i[A+164>>2]:k,n?i[A+168>>2]:e),l[A+175|0]<0&&G(i[A+164>>2]),e=x(H0(x(A+8|0,19725,20),s[_|0]),31338,1),n=A+164|0,W0(n,r),o=n,n=l[A+175|0],k=(n|0)<0,x(e,k?i[A+164>>2]:o,k?i[A+168>>2]:n),l[A+175|0]<0&&G(i[A+164>>2]),x(H0(x(e,20933,15),s[_+1|0]),31338,1);r:{if(p=i[_+4>>2],E=i[_+8>>2],(p|0)==(E|0))break r;for(;;){W0(A+144|0,r),t=l[A+155|0],o=i[A+144>>2],w=i[A+148>>2],e=A+8|0,W=V1(A+156|0,e);e:{if(s[W|0]!=1)break e;u=e+i[i[A+8>>2]-12>>2]|0,I=i[u+4>>2],n=i[u+24>>2],k=i[u+76>>2],(k|0)==-1&&(h=A+164|0,e=i[u+28>>2],i[h>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(h,100192),k=V[i[i[e>>2]+28>>2]](e,32)|0,O0(h),i[u+76>>2]=k);A:{if(!n||(h=i[u+12>>2],e=o,o=(t|0)<0,e=o?e:A+144|0,t=o?w:t,C=e+t|0,o=(I&176)==32?C:e,w=o-e|0,(w|0)>0&&(V[i[i[n>>2]+48>>2]](n,e,w)|0)!=(w|0)))break A;if(e=(t|0)<(h|0)?h-t|0:0,(e|0)>0){if(e>>>0>=2147483640)break i;f:{if(e>>>0>=11){h=(e|7)+1|0,t=U(h),i[A+172>>2]=h|-2147483648,i[A+164>>2]=t,i[A+168>>2]=e;break f}l[A+175|0]=e,t=A+164|0}if(J=B0(t,k,e)+e|0,R=0,l[J|0]=R,k=V[i[i[n>>2]+48>>2]](n,l[A+175|0]<0?i[A+164>>2]:A+164|0,e)|0,l[A+175|0]<0&&G(i[A+164>>2]),(e|0)!=(k|0))break A}if(e=C-o|0,(e|0)>0&&(V[i[i[n>>2]+48>>2]](n,o,e)|0)!=(e|0))break A;i[u+12>>2]=0;break e}e=i[i[A+8>>2]-12>>2]+(A+8|0)|0,z1(e,i[e+16>>2]|5)}if(Z1(W),l[A+155|0]<0&&G(i[A+144>>2]),n=i[p>>2],W=i[p+4>>2],(n|0)!=(W|0))for(;;){u=s[n|0],e=i[A+8>>2],k=i[e-12>>2]+(A+8|0)|0,i[k+76>>2]==-1&&(t=A+164|0,e=i[k+28>>2],i[t>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(t,100192),V[i[i[e>>2]+28>>2]](e,32)|0,O0(t),e=i[A+8>>2]),i[k+76>>2]=48,e=e-12|0,i[i[e>>2]+v>>2]=2,e=i[e>>2]+Z|0,i[e>>2]=i[e>>2]&-75|8,u=H0(A+8|0,u),I=V1(A+144|0,u);e:{if(s[I|0]!=1)break e;t=u+i[i[u>>2]-12>>2]|0,w=i[t+4>>2],k=i[t+24>>2],h=i[t+76>>2],(h|0)==-1&&(o=A+164|0,e=i[t+28>>2],i[o>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(o,100192),h=V[i[i[e>>2]+28>>2]](e,32)|0,O0(o),i[t+76>>2]=h);A:{if(!k||(e=i[t+12>>2],w=(w&176)==32?21742:21741,o=w-21741|0,(o|0)>0&&(V[i[i[k>>2]+48>>2]](k,21741,o)|0)!=(o|0)))break A;if(e=(e|0)>1?e-1|0:0,(e|0)>0){if(e>>>0>=2147483640)break i;f:{if(e>>>0>=11){C=(e|7)+1|0,o=U(C),i[A+172>>2]=C|-2147483648,i[A+164>>2]=o,i[A+168>>2]=e;break f}l[A+175|0]=e,o=A+164|0}if(J=B0(o,h,e)+e|0,R=0,l[J|0]=R,h=V[i[i[k>>2]+48>>2]](k,l[A+175|0]<0?i[A+164>>2]:A+164|0,e)|0,l[A+175|0]<0&&G(i[A+164>>2]),(e|0)!=(h|0))break A}if(e=21742-w|0,(e|0)>0&&(V[i[i[k>>2]+48>>2]](k,w,e)|0)!=(e|0))break A;i[t+12>>2]=0;break e}e=u+i[i[u>>2]-12>>2]|0,z1(e,i[e+16>>2]|5)}if(Z1(I),n=n+1|0,(W|0)==(n|0))break}e:{e=A+8|0,o=V1(A+144|0,e);A:{if(s[o|0]!=1)break A;u=e+i[i[A+8>>2]-12>>2]|0,h=i[u+4>>2],n=i[u+24>>2],t=i[u+76>>2],(t|0)==-1&&(k=A+164|0,e=i[u+28>>2],i[k>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(k,100192),t=V[i[i[e>>2]+28>>2]](e,32)|0,O0(k),i[u+76>>2]=t);f:{if(!n||(e=i[u+12>>2],h=(h&176)==32?31339:31338,k=h-31338|0,(k|0)>0&&(V[i[i[n>>2]+48>>2]](n,31338,k)|0)!=(k|0)))break f;if(e=(e|0)>1?e-1|0:0,(e|0)>0){if(e>>>0>=2147483640)break e;k:{if(e>>>0>=11){w=(e|7)+1|0,k=U(w),i[A+172>>2]=w|-2147483648,i[A+164>>2]=k,i[A+168>>2]=e;break k}l[A+175|0]=e,k=A+164|0}if(J=B0(k,t,e)+e|0,R=0,l[J|0]=R,k=V[i[i[n>>2]+48>>2]](n,l[A+175|0]<0?i[A+164>>2]:A+164|0,e)|0,l[A+175|0]<0&&G(i[A+164>>2]),(e|0)!=(k|0))break f}if(e=31339-h|0,(e|0)>0&&(V[i[i[n>>2]+48>>2]](n,h,e)|0)!=(e|0))break f;i[u+12>>2]=0;break A}e=i[i[A+8>>2]-12>>2]+(A+8|0)|0,z1(e,i[e+16>>2]|5)}if(Z1(o),e=i[i[A+8>>2]-12>>2]+Z|0,i[e>>2]=i[e>>2]&-75|2,p=p+12|0,(E|0)==(p|0))break r;continue}break}break i}if(e=i[r>>2],i[r>>2]=(e|0)>0?e-1|0:0,_=_+16|0,(y|0)==(_|0))break}i2(f,Z),f=i[13707],i[A+8>>2]=f,i[i[f-12>>2]+(A+8|0)>>2]=i[13710],i[Z>>2]=53552,l[A+55|0]<0&&G(i[A+44>>2]),K0(Z),T0(A- -64|0),B=A+176|0;return}c2(),P()}function mk(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0;i:{r:{e:for(;;){for(C=e-4|0,I=e-20|0,p=e-24|0,y=e-12|0,W=e-16|0,v=e-8|0;;){A:{f:{k:{n:{t:{o:{u:switch(k=f,t=e-k>>3,t|0){case 3:break o;case 2:break u;case 0:case 1:break A;case 4:break k;case 5:break t;default:break n}if(i[e-4>>2]<=i[k+4>>2])break A;n=i[k>>2],_=i[k+4>>2],f=e-8|0,e=i[f+4>>2],i[k>>2]=i[f>>2],i[k+4>>2]=e;break r}if(f=e-8|0,A=e-4|0,r=i[A>>2],e=i[k+12>>2],(e|0)<=i[k+4>>2]){if((e|0)>=(r|0)||(A=i[k+8>>2],r=i[k+12>>2],e=i[f+4>>2],i[k+8>>2]=i[f>>2],i[k+12>>2]=e,i[f>>2]=A,i[f+4>>2]=r,i[k+12>>2]<=i[k+4>>2]))break A;n=i[k+8>>2],_=i[k+12>>2];break i}if(n=i[k>>2],_=i[k+4>>2],(e|0)<(r|0)){e=i[f+4>>2],i[k>>2]=i[f>>2],i[k+4>>2]=e;break r}if(r=i[k+8>>2],e=i[k+12>>2],i[k+8>>2]=n,i[k+12>>2]=_,i[k>>2]=r,i[k+4>>2]=e,(_|0)>=i[A>>2])break A;e=i[f+4>>2],i[k+8>>2]=i[f>>2],i[k+12>>2]=e;break r}if(Tr(k,k+8|0,k+16|0,k+24|0),i[e-4>>2]<=i[k+28>>2]||(A=i[k+24>>2],r=i[k+28>>2],e=e-8|0,f=i[e+4>>2],i[k+24>>2]=i[e>>2],i[k+28>>2]=f,i[e>>2]=A,i[e+4>>2]=r,i[k+28>>2]<=i[k+20>>2])||(n=i[k+24>>2],_=i[k+28>>2],f=i[k+20>>2],i[k+24>>2]=i[k+16>>2],i[k+28>>2]=f,i[k+16>>2]=n,i[k+20>>2]=_,(_|0)<=i[k+12>>2])||(f=i[k+12>>2],i[k+16>>2]=i[k+8>>2],i[k+20>>2]=f,i[k+8>>2]=n,i[k+12>>2]=_,(_|0)<=i[k+4>>2]))break A;break i}if((t|0)<=23){if(f=k+8|0,r=(e|0)==(k|0)|(e|0)==(f|0),A&1){if(r)break A;for(h=k;;){if(r=f,i[h+12>>2]>i[h+4>>2]){for(n=i[f>>2],A=i[f+4>>2],t=f;;){n:{if(f=h,u=i[f+4>>2],i[t>>2]=i[f>>2],i[t+4>>2]=u,(f|0)==(k|0)){f=k;break n}if(h=f-8|0,t=f,(A|0)>i[f-4>>2])continue}break}i[f>>2]=n,i[f+4>>2]=A}if(h=r,f=h+8|0,(e|0)==(f|0))break}break A}if(r)break A;for(;;){if(i[k+12>>2]>i[k+4>>2]){for(A=i[f>>2],r=i[f+4>>2],h=f;n=h,h=k,t=i[k+4>>2],i[n>>2]=i[k>>2],i[n+4>>2]=t,k=k-8|0,(r|0)>i[h-4>>2];);i[h>>2]=A,i[h+4>>2]=r}if(k=f,f=k+8|0,(e|0)==(f|0))break}break A}if(!r){if((e|0)==(k|0))break A;for(w=t-2>>>1|0,f=w;;){_=f;n:{if((f|0)>(w|0)||(u=(f<<3)+k|0,r=f<<1&1073741822,h=r|1,f=(h<<3)+k|0,r=r+2|0,(r|0)<(t|0)&&(A=r,r=i[f+4>>2]>i[f+12>>2],h=r?A:h,f=(r<<3)+f|0),i[f+4>>2]>i[u+4>>2]))break n;for(A=i[u>>2],r=i[u+4>>2];;){t:{if(n=u,u=f,Z=i[f+4>>2],i[n>>2]=i[f>>2],i[n+4>>2]=Z,(h|0)>(w|0))break t;if(n=h<<1,h=n|1,f=(h<<3)+k|0,n=n+2|0,(n|0)<(t|0)&&(Z=n,n=i[f+4>>2]>i[f+12>>2],h=n?Z:h,f=(n<<3)+f|0),(r|0)>=i[f+4>>2])continue}break}i[u>>2]=A,i[u+4>>2]=r}if(f=_-1|0,!((_|0)>0))break}for(;;){for(u=t,_=t-2>>>1|0,A=i[k>>2],Z=i[k+4>>2],h=0,t=k;;){n=h<<1,r=n|1,w=(h<<3)+t|0,f=w+8|0,n=n+2|0;n:{if((n|0)>=(u|0)){h=r;break n}h=r,r=i[w+12>>2]>i[w+20>>2],h=r?n:h,f=r?w+16|0:f}if(r=i[f+4>>2],i[t>>2]=i[f>>2],i[t+4>>2]=r,t=f,!((h|0)<=(_|0)))break}e=e-8|0;n:{if((f|0)==(e|0)){i[f>>2]=A,i[f+4>>2]=Z;break n}if(r=i[e+4>>2],i[f>>2]=i[e>>2],i[f+4>>2]=r,i[e>>2]=A,i[e+4>>2]=Z,r=(f-k|0)+8>>3,(r|0)<2||(h=r-2>>>1|0,t=(h<<3)+k|0,i[t+4>>2]<=i[f+4>>2]))break n;for(n=i[f>>2],A=i[f+4>>2];;){t:{if(r=f,f=t,t=i[f+4>>2],i[r>>2]=i[f>>2],i[r+4>>2]=t,!h)break t;if(h=h-1>>>1|0,t=(h<<3)+k|0,(A|0)>2])continue}break}i[f>>2]=n,i[f+4>>2]=A}if(t=u-1|0,!((u|0)>2))break}break A}o=(t>>>1<<3)+k|0,u=i[C>>2];n:{if(t>>>0>=129){n=i[o+4>>2];t:{if((n|0)<=i[k+4>>2]){if((n|0)>=(u|0)||(t=i[o>>2],n=i[o+4>>2],f=i[v+4>>2],i[o>>2]=i[v>>2],i[o+4>>2]=f,i[v>>2]=t,i[v+4>>2]=n,i[o+4>>2]<=i[k+4>>2]))break t;t=i[k>>2],n=i[k+4>>2],f=i[o+4>>2],i[k>>2]=i[o>>2],i[k+4>>2]=f,i[o>>2]=t,i[o+4>>2]=n;break t}f=i[k>>2],t=i[k+4>>2];o:{if((n|0)<(u|0)){n=i[v+4>>2],i[k>>2]=i[v>>2],i[k+4>>2]=n;break o}if(n=i[o+4>>2],i[k>>2]=i[o>>2],i[k+4>>2]=n,i[o>>2]=f,i[o+4>>2]=t,(t|0)>=i[C>>2])break t;n=i[v+4>>2],i[o>>2]=i[v>>2],i[o+4>>2]=n}i[v>>2]=f,i[v+4>>2]=t}t=i[y>>2],w=o-8|0,n=i[w+4>>2];t:{if((n|0)<=i[k+12>>2]){if((n|0)>=(t|0)||(t=i[w>>2],n=i[w+4>>2],f=i[W+4>>2],i[w>>2]=i[W>>2],i[w+4>>2]=f,i[W>>2]=t,i[W+4>>2]=n,i[w+4>>2]<=i[k+12>>2]))break t;t=i[k+8>>2],n=i[k+12>>2],f=i[w+4>>2],i[k+8>>2]=i[w>>2],i[k+12>>2]=f,i[w>>2]=t,i[w+4>>2]=n;break t}f=i[k+8>>2],u=i[k+12>>2];o:{if((n|0)<(t|0)){n=i[W+4>>2],i[k+8>>2]=i[W>>2],i[k+12>>2]=n;break o}if(n=i[w+4>>2],i[k+8>>2]=i[w>>2],i[k+12>>2]=n,i[w>>2]=f,i[w+4>>2]=u,(u|0)>=i[y>>2])break t;n=i[W+4>>2],i[w>>2]=i[W>>2],i[w+4>>2]=n}i[W>>2]=f,i[W+4>>2]=u}t=i[I>>2],n=i[o+12>>2];t:{if((n|0)<=i[k+20>>2]){if((n|0)>=(t|0)||(t=i[o+8>>2],n=i[o+12>>2],f=i[p+4>>2],i[o+8>>2]=i[p>>2],i[o+12>>2]=f,i[p>>2]=t,i[p+4>>2]=n,i[o+12>>2]<=i[k+20>>2]))break t;t=i[k+16>>2],n=i[k+20>>2],f=i[o+12>>2],i[k+16>>2]=i[o+8>>2],i[k+20>>2]=f,i[o+8>>2]=t,i[o+12>>2]=n;break t}f=i[k+16>>2],u=i[k+20>>2];o:{if((n|0)<(t|0)){n=i[p+4>>2],i[k+16>>2]=i[p>>2],i[k+20>>2]=n;break o}if(n=i[o+12>>2],i[k+16>>2]=i[o+8>>2],i[k+20>>2]=n,i[o+8>>2]=f,i[o+12>>2]=u,(u|0)>=i[I>>2])break t;n=i[p+4>>2],i[o+8>>2]=i[p>>2],i[o+12>>2]=n}i[p>>2]=f,i[p+4>>2]=u}Z=i[o+12>>2],h=i[o+4>>2],u=i[w+4>>2];t:{if((h|0)<=(u|0)){if(n=i[o>>2],_=i[o+4>>2],(h|0)>=(Z|0))break t;if(t=i[o+12>>2],f=i[o+8>>2],i[o>>2]=f,i[o+4>>2]=t,i[o+8>>2]=n,i[o+12>>2]=_,(t|0)<=(u|0)){n=f,_=t;break t}n=i[w>>2],_=i[w+4>>2],i[w>>2]=f,i[w+4>>2]=t,i[o>>2]=n,i[o+4>>2]=_;break t}if(f=i[w>>2],t=i[w+4>>2],(h|0)<(Z|0)){n=i[o+12>>2],i[w>>2]=i[o+8>>2],i[w+4>>2]=n,i[o+8>>2]=f,i[o+12>>2]=t,n=i[o>>2],_=i[o+4>>2];break t}if(n=i[o+4>>2],i[w>>2]=i[o>>2],i[w+4>>2]=n,i[o>>2]=f,i[o+4>>2]=t,(t|0)>=(Z|0)){n=f,_=t;break t}u=i[o+12>>2],_=u,n=i[o+8>>2],i[o>>2]=n,i[o+4>>2]=u,i[o+8>>2]=f,i[o+12>>2]=t}t=i[k>>2],f=i[k+4>>2],i[k>>2]=n,i[k+4>>2]=_,i[o>>2]=t,i[o+4>>2]=f;break n}if(n=i[k+4>>2],(n|0)<=i[o+4>>2]){if((n|0)>=(u|0)||(t=i[k>>2],n=i[k+4>>2],f=i[v+4>>2],i[k>>2]=i[v>>2],i[k+4>>2]=f,i[v>>2]=t,i[v+4>>2]=n,i[k+4>>2]<=i[o+4>>2]))break n;t=i[o>>2],n=i[o+4>>2],f=i[k+4>>2],i[o>>2]=i[k>>2],i[o+4>>2]=f,i[k>>2]=t,i[k+4>>2]=n;break n}f=i[o>>2],t=i[o+4>>2];t:{if((n|0)<(u|0)){n=i[v+4>>2],i[o>>2]=i[v>>2],i[o+4>>2]=n;break t}if(n=i[k+4>>2],i[o>>2]=i[k>>2],i[o+4>>2]=n,i[k>>2]=f,i[k+4>>2]=t,(t|0)>=i[C>>2])break n;n=i[v+4>>2],i[k>>2]=i[v>>2],i[k+4>>2]=n}i[v>>2]=f,i[v+4>>2]=t}if(r=r-1|0,E=A&1,E){n=i[k>>2],_=i[k+4>>2];break f}if(n=i[k>>2],f=i[k+4>>2],_=f,i[k-4>>2]>i[k+4>>2])break f;t=k,u=k,h=f;n:{if((f|0)>i[C>>2]){for(;;)if(A=t,f=t+8|0,t=f,!((h|0)<=i[A+12>>2]))break n}for(;;){if(f=u+8|0,e>>>0<=f>>>0)break n;if(A=u,u=f,!((h|0)<=i[A+12>>2]))break}}if(u=e,u>>>0>f>>>0)for(;A=u-4|0,u=u-8|0,(h|0)>i[A>>2];);if(f>>>0>>0)for(;;){for(Z=i[f>>2],t=i[f+4>>2],A=i[u+4>>2],i[f>>2]=i[u>>2],i[f+4>>2]=A,i[u>>2]=Z,i[u+4>>2]=t;t=f,A=f+8|0,f=A,(h|0)<=i[t+12>>2];);for(f=u;t=f-4|0,u=f-8|0,f=u,(h|0)>i[t>>2];);if(f=A,!(u>>>0>f>>>0))break}t=f-8|0,(t|0)!=(k|0)&&(A=i[t+4>>2],i[k>>2]=i[t>>2],i[k+4>>2]=A),i[t>>2]=n,i[t+4>>2]=_,A=0;continue}Tr(k,k+8|0,k+16|0,e-8|0);break A}for(t=k;h=t,t=t+8|0,i[h+12>>2]>(_|0););u=e,f=u;f:{if((k|0)==(h|0))for(;;){if(t>>>0>=u>>>0){Z=u;break f}if(f=u-4|0,Z=u-8|0,u=Z,!(i[f>>2]<=(_|0)))break f}for(;u=f-4|0,Z=f-8|0,f=Z,i[u>>2]<=(_|0););}if(f=Z,u=t,f>>>0>t>>>0)for(;;){for(o=i[u>>2],w=i[u+4>>2],h=i[f+4>>2],i[u>>2]=i[f>>2],i[u+4>>2]=h,i[f>>2]=o,i[f+4>>2]=w;h=u,u=u+8|0,i[h+12>>2]>(_|0););for(;w=f-4|0,f=f-8|0,i[w>>2]<=(_|0););if(!(f>>>0>u>>>0))break}if((k|0)!=(h|0)&&(f=i[h+4>>2],i[k>>2]=i[h>>2],i[k+4>>2]=f),i[h>>2]=n,i[h+4>>2]=_,t>>>0>=Z>>>0){if(n=Hk(k,h),f=h+8|0,Hk(f,e)){if(e=h,f=k,!n)continue e;break A}if(n)continue}mk(k,h,r,E),f=h+8|0,A=0;continue}break}break}return}i[f>>2]=n,i[f+4>>2]=_;return}f=i[k+4>>2],i[k+8>>2]=i[k>>2],i[k+12>>2]=f,i[k>>2]=n,i[k+4>>2]=_}function Rs(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0;k=B-160|0,B=k,i[k+68>>2]=54820,A=i[13708],i[k+12>>2]=A,o=k+12|0,i[o+i[A-12>>2]>>2]=i[13709],n=o+i[i[k+12>>2]-12>>2]|0,A=k+16|0,b0(n,A),i[n+72>>2]=0,i[n+76>>2]=-1,i[k+68>>2]=54820,i[k+12>>2]=54800,p=$0(A),i[p>>2]=53552,i[k+56>>2]=0,i[k+60>>2]=0,i[k+48>>2]=0,i[k+52>>2]=0,i[k+64>>2]=16,A=k+148|0,R2(A,e,r),t=A,n=l[k+159|0],A=(n|0)<0,x(o,A?i[k+148>>2]:t,A?i[k+152>>2]:n),l[k+159|0]<0&&G(i[k+148>>2]),A=k+148|0,W0(A,r),t=A,n=l[k+159|0],A=(n|0)<0,x(k+12|0,A?i[k+148>>2]:t,A?i[k+152>>2]:n),l[k+159|0]<0&&G(i[k+148>>2]),o=x(H0(x(k+12|0,20322,23),s[e+48|0]),31338,1),A=k+148|0,W0(A,r),t=A,n=l[k+159|0],A=(n|0)<0,x(o,A?i[k+148>>2]:t,A?i[k+152>>2]:n),l[k+159|0]<0&&G(i[k+148>>2]),o=x(H0(x(o,20299,22),s[e+49|0]),18656,2);i:{r:{e:{A:{f:{k:{n:{t:{o:{u:{l:{s:switch(A=s[e+49|0],A-66|0){case 56:break n;case 44:break t;case 34:break o;case 22:break u;case 11:break l;case 0:break e;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:break f;default:break s}if((A|0)==244)break k;if((A|0)!=44)break f;n=U(16),i[k>>2]=n,i[k+4>>2]=11,i[k+8>>2]=-2147483632,t=s[16637]|s[16638]<<8|(s[16639]<<16|s[16640]<<24),A=s[16633]|s[16634]<<8|(s[16635]<<16|s[16636]<<24),l[n|0]=A,l[n+1|0]=A>>>8,l[n+2|0]=A>>>16,l[n+3|0]=A>>>24,l[n+4|0]=t,l[n+5|0]=t>>>8,l[n+6|0]=t>>>16,l[n+7|0]=t>>>24,A=s[16640]|s[16641]<<8|(s[16642]<<16|s[16643]<<24),l[n+7|0]=A,l[n+8|0]=A>>>8,l[n+9|0]=A>>>16,l[n+10|0]=A>>>24,A=n+11|0;break r}i[k>>2]=1852399949,l[k+11|0]=4,A=4;break A}i[k>>2]=1702131781,i[k+4>>2]=1684366446,l[k+11|0]=8,A=8;break A}n=U(16),i[k>>2]=n,i[k+4>>2]=12,i[k+8>>2]=-2147483632,t=s[3138]|s[3139]<<8|(s[3140]<<16|s[3141]<<24),A=s[3134]|s[3135]<<8|(s[3136]<<16|s[3137]<<24),l[n|0]=A,l[n+1|0]=A>>>8,l[n+2|0]=A>>>16,l[n+3|0]=A>>>24,l[n+4|0]=t,l[n+5|0]=t>>>8,l[n+6|0]=t>>>16,l[n+7|0]=t>>>24,A=s[3142]|s[3143]<<8|(s[3144]<<16|s[3145]<<24),l[n+8|0]=A,l[n+9|0]=A>>>8,l[n+10|0]=A>>>16,l[n+11|0]=A>>>24,A=n+12|0;break r}l[k+11|0]=7,i[k>>2]=s[17232]|s[17233]<<8|(s[17234]<<16|s[17235]<<24),A=s[17235]|s[17236]<<8|(s[17237]<<16|s[17238]<<24),l[k+3|0]=A,l[k+4|0]=A>>>8,l[k+5|0]=A>>>16,l[k+6|0]=A>>>24,A=7;break A}X[k+8>>1]=s[16788]|s[16789]<<8,l[k+11|0]=10,A=s[16784]|s[16785]<<8|(s[16786]<<16|s[16787]<<24),i[k>>2]=s[16780]|s[16781]<<8|(s[16782]<<16|s[16783]<<24),i[k+4>>2]=A,A=10;break A}X[k+8>>1]=s[16630]|s[16631]<<8,l[k+11|0]=10,A=s[16626]|s[16627]<<8|(s[16628]<<16|s[16629]<<24),i[k>>2]=s[16622]|s[16623]<<8|(s[16624]<<16|s[16625]<<24),i[k+4>>2]=A,A=10;break A}l[k+11|0]=7,i[k>>2]=s[6164]|s[6165]<<8|(s[6166]<<16|s[6167]<<24),A=s[6167]|s[6168]<<8|(s[6169]<<16|s[6170]<<24),l[k+3|0]=A,l[k+4|0]=A>>>8,l[k+5|0]=A>>>16,l[k+6|0]=A>>>24,A=7}l[A+k|0]=0,n=k;break i}n=U(24),i[k>>2]=n,i[k+4>>2]=20,i[k+8>>2]=-2147483624,t=s[9783]|s[9784]<<8|(s[9785]<<16|s[9786]<<24),A=s[9779]|s[9780]<<8|(s[9781]<<16|s[9782]<<24),l[n|0]=A,l[n+1|0]=A>>>8,l[n+2|0]=A>>>16,l[n+3|0]=A>>>24,l[n+4|0]=t,l[n+5|0]=t>>>8,l[n+6|0]=t>>>16,l[n+7|0]=t>>>24,A=s[9795]|s[9796]<<8|(s[9797]<<16|s[9798]<<24),l[n+16|0]=A,l[n+17|0]=A>>>8,l[n+18|0]=A>>>16,l[n+19|0]=A>>>24,t=s[9791]|s[9792]<<8|(s[9793]<<16|s[9794]<<24),A=s[9787]|s[9788]<<8|(s[9789]<<16|s[9790]<<24),l[n+8|0]=A,l[n+9|0]=A>>>8,l[n+10|0]=A>>>16,l[n+11|0]=A>>>24,l[n+12|0]=t,l[n+13|0]=t>>>8,l[n+14|0]=t>>>16,l[n+15|0]=t>>>24,A=n+20|0}l[A|0]=0,A=i[k+4>>2]}if(o=x(x(x(o,n,A),18531,1),31338,1),A=k+148|0,W0(A,r),t=A,n=l[k+159|0],A=(n|0)<0,x(o,A?i[k+148>>2]:t,A?i[k+152>>2]:n),l[k+159|0]<0&&G(i[k+148>>2]),o=x(H0(x(o,19325,23),s[e+50|0]),31338,1),A=k+148|0,W0(A,r),t=A,n=l[k+159|0],A=(n|0)<0,x(o,A?i[k+148>>2]:t,A?i[k+152>>2]:n),l[k+159|0]<0&&G(i[k+148>>2]),x(H0(x(o,20278,20),s[e+51|0]),31338,1),l[k+11|0]<0&&G(i[k>>2]),v=i[e+56>>2],h=i[e+60>>2],(v|0)!=(h|0))for(I=k+24|0;;){A=k+148|0,W0(A,r),t=A,n=l[k+159|0],A=(n|0)<0,x(k+12|0,A?i[k+148>>2]:t,A?i[k+152>>2]:n),l[k+159|0]<0&&G(i[k+148>>2]),x(k+12|0,21499,5);i:{if(n=i[v>>2],y=i[v+4>>2],(n|0)==(y|0))break i;for(;;){o=s[n|0],w=i[k+12>>2],u=i[w-12>>2]+(k+12|0)|0,i[u+76>>2]==-1&&(t=k+148|0,A=i[u+28>>2],i[t>>2]=A,(A|0)!=100008&&(i[A+4>>2]=i[A+4>>2]+1),A=x0(t,100192),V[i[i[A>>2]+28>>2]](A,32)|0,O0(t),w=i[k+12>>2]),i[u+76>>2]=48,A=w-12|0,i[I+i[A>>2]>>2]=2,A=i[A>>2]+p|0,i[A>>2]=i[A>>2]&-75|8;r:{w=H0(k+12|0,o),t=V1(k,w);e:{if(s[t|0]!=1)break e;_=w+i[i[w>>2]-12>>2]|0,o=i[_+4>>2],W=i[_+24>>2],Z=i[_+76>>2],(Z|0)==-1&&(u=k+148|0,A=i[_+28>>2],i[u>>2]=A,(A|0)!=100008&&(i[A+4>>2]=i[A+4>>2]+1),A=x0(u,100192),Z=V[i[i[A>>2]+28>>2]](A,32)|0,O0(u),i[_+76>>2]=Z);A:{if(!W||(u=i[_+12>>2],o=(o&176)==32?21742:21741,A=o-21741|0,(A|0)>0&&(V[i[i[W>>2]+48>>2]](W,21741,A)|0)!=(A|0)))break A;if(u=(u|0)>1?u-1|0:0,(u|0)>0){if(u>>>0>=2147483640)break r;f:{if(u>>>0>=11){A=(u|7)+1|0,C=U(A),i[k+156>>2]=A|-2147483648,i[k+148>>2]=C,i[k+152>>2]=u;break f}l[k+159|0]=u,C=k+148|0}if(E=B0(C,Z,u)+u|0,J=0,l[E|0]=J,A=V[i[i[W>>2]+48>>2]](W,l[k+159|0]<0?i[k+148>>2]:k+148|0,u)|0,l[k+159|0]<0&&G(i[k+148>>2]),(A|0)!=(u|0))break A}if(A=21742-o|0,(A|0)>0&&(V[i[i[W>>2]+48>>2]](W,o,A)|0)!=(A|0))break A;i[_+12>>2]=0;break e}A=w+i[i[w>>2]-12>>2]|0,z1(A,i[A+16>>2]|5)}if(Z1(t),n=n+1|0,(y|0)==(n|0))break i;continue}break}c2(),P()}if(x(k+12|0,31338,1),A=i[i[k+12>>2]-12>>2]+p|0,i[A>>2]=i[A>>2]&-75|2,v=v+12|0,(h|0)==(v|0))break}if(v=i[e+68>>2],I=i[e+72>>2],(v|0)!=(I|0))for(y=k+24|0;;){e=k+148|0,W0(e,r),n=e,A=l[k+159|0],e=(A|0)<0,x(k+12|0,e?i[k+148>>2]:n,e?i[k+152>>2]:A),l[k+159|0]<0&&G(i[k+148>>2]),x(k+12|0,21505,5);i:{if(n=i[v>>2],t=i[v+4>>2],(n|0)==(t|0))break i;for(;;){A=s[n|0],w=i[k+12>>2],h=i[w-12>>2]+(k+12|0)|0,i[h+76>>2]==-1&&(o=k+148|0,e=i[h+28>>2],i[o>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(o,100192),V[i[i[e>>2]+28>>2]](e,32)|0,O0(o),w=i[k+12>>2]),i[h+76>>2]=48,e=w-12|0,i[y+i[e>>2]>>2]=2,e=i[e>>2]+p|0,i[e>>2]=i[e>>2]&-75|8;r:{u=H0(k+12|0,A),o=V1(k,u);e:{if(s[o|0]!=1)break e;w=u+i[i[u>>2]-12>>2]|0,A=i[w+4>>2],_=i[w+24>>2],Z=i[w+76>>2],(Z|0)==-1&&(h=k+148|0,e=i[w+28>>2],i[h>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(h,100192),Z=V[i[i[e>>2]+28>>2]](e,32)|0,O0(h),i[w+76>>2]=Z);A:{if(!_||(h=i[w+12>>2],A=(A&176)==32?21742:21741,e=A-21741|0,(e|0)>0&&(V[i[i[_>>2]+48>>2]](_,21741,e)|0)!=(e|0)))break A;if(h=(h|0)>1?h-1|0:0,(h|0)>0){if(h>>>0>=2147483640)break r;f:{if(h>>>0>=11){e=(h|7)+1|0,C=U(e),i[k+156>>2]=e|-2147483648,i[k+148>>2]=C,i[k+152>>2]=h;break f}l[k+159|0]=h,C=k+148|0}if(E=B0(C,Z,h)+h|0,J=0,l[E|0]=J,e=V[i[i[_>>2]+48>>2]](_,l[k+159|0]<0?i[k+148>>2]:k+148|0,h)|0,l[k+159|0]<0&&G(i[k+148>>2]),(e|0)!=(h|0))break A}if(e=21742-A|0,(e|0)>0&&(V[i[i[_>>2]+48>>2]](_,A,e)|0)!=(e|0))break A;i[w+12>>2]=0;break e}e=u+i[i[u>>2]-12>>2]|0,z1(e,i[e+16>>2]|5)}if(Z1(o),n=n+1|0,(t|0)==(n|0))break i;continue}break}c2(),P()}if(x(k+12|0,31338,1),e=i[i[k+12>>2]-12>>2]+p|0,i[e>>2]=i[e>>2]&-75|2,v=v+12|0,(I|0)==(v|0))break}i2(f,p),f=i[13707],i[k+12>>2]=f,i[i[f-12>>2]+(k+12|0)>>2]=i[13710],i[p>>2]=53552,l[k+59|0]<0&&G(i[k+48>>2]),K0(p),T0(k+68|0),B=k+160|0}function Bk(f,e,r,A,k,n,t,o,u){var h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0;w=B-336|0,B=w,v=o,Z=u&65535,p=A,W=k&65535,y=(k^u)&-2147483648,z=u>>>16&32767,J=k>>>16&32767;i:{r:{if(z-32767>>>0>4294934529&J-32767>>>0>=4294934530)break r;if(h=k&2147483647,!(!A&(h|0)==2147418112?!(e|r):h>>>0<2147418112)){I=A,y=k|32768;break i}if(k=u&2147483647,!(!o&(k|0)==2147418112?!(n|t):k>>>0<2147418112)){I=o,y=u|32768,e=n,r=t;break i}if(!(e|A|(h^2147418112|r))){if(!(n|o|(k^2147418112|t))){e=0,r=0,y=2147450880;break i}y=y|2147418112,e=0,r=0;break i}if(!(n|o|(k^2147418112|t))){e=0,r=0;break i}if(!(e|A|(r|h))){e=!(n|o|(k|t)),I=e?0:I,y=e?2147450880:y,e=0,r=0;break i}if(!(n|o|(k|t))){y=y|2147418112,e=0,r=0;break i}if((h|0)==65535|h>>>0<65535&&(A=!(p|W),u=A,h=A?e:p,A=A<<6,u=$2(u?r:W),A=A+((u|0)==32?$2(h)+32|0:u)|0,L1(w+320|0,e,r,p,W,A-15|0),C=16-A|0,p=i[w+328>>2],W=i[w+332>>2],r=i[w+324>>2],e=i[w+320>>2]),k>>>0>65535)break r;A=!(Z|v),o=A,u=A?n:v,A=A<<6,o=$2(o?t:Z),A=A+((o|0)==32?$2(u)+32|0:o)|0,L1(w+304|0,n,t,v,Z,A-15|0),C=(A+C|0)-16|0,v=i[w+312>>2],Z=i[w+316>>2],n=i[w+304>>2],t=i[w+308>>2]}k=Z|65536,H=k,a=v,A=v,h=k<<15|A>>>17,k=A<<15|t>>>17,A=k,u=0-A|0,o=h,h=1963258675-(h+((A|0)!=0)|0)|0,U1(w+288|0,A,o,0,0,u,h,0,0),A=i[w+296>>2],U1(w+272|0,0-A|0,0-(i[w+300>>2]+((A|0)!=0)|0)|0,0,0,u,h,0,0),A=i[w+280>>2],u=A<<1|i[w+276>>2]>>>31,A=i[w+284>>2]<<1|A>>>31,U1(w+256|0,u,A,0,0,k,o,0,0),h=i[w+264>>2],U1(w+240|0,u,A,0,0,0-h|0,0-(i[w+268>>2]+((h|0)!=0)|0)|0,0,0),u=i[w+248>>2],h=u<<1|i[w+244>>2]>>>31,A=i[w+252>>2]<<1|u>>>31,U1(w+224|0,h,A,0,0,k,o,0,0),u=i[w+232>>2],U1(w+208|0,h,A,0,0,0-u|0,0-(i[w+236>>2]+((u|0)!=0)|0)|0,0,0),A=i[w+216>>2],u=A<<1|i[w+212>>2]>>>31,A=i[w+220>>2]<<1|A>>>31,U1(w+192|0,u,A,0,0,k,o,0,0),h=i[w+200>>2],U1(w+176|0,u,A,0,0,0-h|0,0-(i[w+204>>2]+((h|0)!=0)|0)|0,0,0),u=k,k=i[w+184>>2],A=o,v=k<<1|i[w+180>>2]>>>31,o=v-1|0,k=(i[w+188>>2]<<1|k>>>31)-!v|0,U1(w+160|0,u,A,0,0,o,k,0,0),A=o,U1(w+144|0,n<<15,t<<15|n>>>17,0,0,A,k,0,0),R=w+112|0,S=i[w+168>>2],o=i[w+172>>2],v=i[w+160>>2],u=i[w+152>>2],_=v+u|0,Z=i[w+164>>2],h=Z+i[w+156>>2]|0,h=u>>>0>_>>>0?h+1|0:h,u=h,h=(Z|0)==(h|0)&_>>>0>>0|h>>>0>>0,Z=h+S|0,h=h>>>0>Z>>>0?o+1|0:o,v=!u&_>>>0>1|(u|0)!=0,o=Z+v|0,h=v>>>0>o>>>0?h+1|0:h,U1(R,A,k,0,0,0-o|0,0-(((o|0)!=0)+h|0)|0,0,0),U1(w+128|0,1-_|0,0-((_>>>0>1)+u|0)|0,0,0,A,k,0,0),p0=(J-z|0)+C|0,k=i[w+116>>2],J=k,A=i[w+112>>2],h=k<<1|A>>>31,u=A<<1,Z=h,A=h,o=i[w+140>>2],D=o,k=i[w+136>>2],h=o<<1|k>>>31,_=k<<1|i[w+132>>2]>>>31,o=_+u|0,A=A+h|0,A=o>>>0<_>>>0?A+1|0:A,k=A,A=A-(o>>>0<13927)|0,E=A,R=A,_=0,h=W|65536,X0=h,G0=p,A=p,h=h<<1|A>>>31,Q0=A<<1,F0=h,f0=h,A=q0(E,_,h,0),h=w0,q=A,d=h,h0=e<<1,A=r<<1|e>>>31,z=A,S=A,h=0,C=h,v=o-13927|0,E=(k|0)==(E|0)&v>>>0>>0|k>>>0>E>>>0,k=(k|0)==(Z|0)&o>>>0>>0|k>>>0>>0,A=i[w+120>>2],o=i[w+124>>2]<<1|A>>>31,A=A<<1|J>>>31,_=D>>>31|0,A=_+A|0,h=o,h=A>>>0<_>>>0?h+1|0:h,o=A,A=A+k|0,h=o>>>0>A>>>0?h+1|0:h,k=A,A=A+E|0,_=k>>>0>A>>>0?h+1|0:h,k=A-1|0,A0=_-!A|0,D=0,u=q0(S,C,A0,D),A=u+q|0,o=w0+d|0,o=A>>>0>>0?o+1|0:o,Z=(d|0)==(o|0)&A>>>0>>0|o>>>0>>0,q=k,I0=r>>>31|0,n0=I0|p<<1,E=0,k=q0(k,0,n0,E),p=k+A|0,h=w0+o|0,_=0,h=k>>>0>p>>>0?h+1|0:h,W=h,A=(h|0)==(o|0)&A>>>0>p>>>0|o>>>0>h>>>0,k=A,A=A+Z|0,_=k>>>0>A>>>0?1:_,k=q0(f0,C,A0,D),A=k+A|0,h=w0+_|0,Z=A,A=A>>>0>>0?h+1|0:h,k=q0(f0,C,q,E),_=w0,o=k,k=q0(n0,E,A0,D),u=o+k|0,h=w0+_|0,h=k>>>0>u>>>0?h+1|0:h,k=h,h=(_|0)==(h|0)&o>>>0>u>>>0|h>>>0<_>>>0,_=Z+k|0,A=A+h|0,A=_>>>0>>0?A+1|0:A,Z=_,_=A,k=0,A=k+p|0,h=u+W|0,h=A>>>0>>0?h+1|0:h,k=h,o=(h|0)==(W|0)&A>>>0

>>0|h>>>0>>0,h=_,u=o,o=o+Z|0,h=u>>>0>o>>>0?h+1|0:h,J=o,_=h,p=A,d=v,A=q0(v,0,n0,E),u=w0,o=A,v=q0(R,I,S,I),A=A+v|0,h=w0+u|0,h=A>>>0>>0?h+1|0:h,v=(u|0)==(h|0)&A>>>0>>0|u>>>0>h>>>0,o=h,j=h0&-2,u=q0(q,E,j,0),W=u+A|0,h=w0+h|0,h=u>>>0>W>>>0?h+1|0:h,u=h,A=(h|0)==(o|0)&A>>>0>W>>>0|o>>>0>h>>>0,o=0,h=A+v|0,A=(h>>>0>>0?1:o)+k|0,Z=h+p|0,A=Z>>>0>>0?A+1|0:A,h=_,v=A,A=(A|0)==(k|0)&Z>>>0

>>0|A>>>0>>0,k=A,A=A+J|0,h=k>>>0>A>>>0?h+1|0:h,Y0=A,J=h,A=q0(f0,C,d,I),L=w0,f0=A,k=q0(A0,D,j,I),A=A+k|0,h=w0+L|0,h=A>>>0>>0?h+1|0:h,p=A,_=q0(R,I,n0,E),k=A+_|0,o=h,A=h+w0|0,A=k>>>0<_>>>0?A+1|0:A,C=k,h=q0(S,I,q,E),k=k+h|0,_=w0+A|0,_=k>>>0>>0?_+1|0:_,A0=(A|0)==(_|0)&k>>>0>>0|A>>>0>_>>>0,h=(o|0)==(L|0)&p>>>0>>0|o>>>0>>0,A=(A|0)==(o|0)&p>>>0>C>>>0|A>>>0>>0,A=A+h|0,A=A+A0|0,o=_,C=o+Z|0,h=(A|D)+v|0,h=o>>>0>C>>>0?h+1|0:h,p=h,A=(v|0)==(h|0)&Z>>>0>C>>>0|h>>>0>>0,h=J,o=A,A=A+Y0|0,h=o>>>0>A>>>0?h+1|0:h,D=A,v=h,A=q0(R,I,j,I),R=w0,Z=A,o=q0(S,I,d,I),A=A+o|0,h=w0+R|0,h=A>>>0>>0?h+1|0:h,J=0,o=(h|0)==(R|0)&A>>>0>>0|h>>>0>>0,Z=h,A=h+W|0,h=(o|J)+u|0,h=A>>>0>>0?h+1|0:h,u=(u|0)==(h|0)&A>>>0>>0|u>>>0>h>>>0,o=h,h=k,W=0,k=W+A|0,_=o+h|0,h=0,_=k>>>0>>0?_+1|0:_,A=(o|0)==(_|0)&A>>>0>k>>>0|o>>>0>_>>>0,k=A,A=A+u|0,h=(k>>>0>A>>>0?1:h)+p|0,_=v,k=A,A=A+C|0,h=k>>>0>A>>>0?h+1|0:h,k=h,o=(p|0)==(h|0)&A>>>0>>0|h>>>0

>>0,u=o,o=o+D|0,_=u>>>0>o>>>0?_+1|0:_,u=_;r:{if((_|0)==131071|_>>>0<131071){G0=Q0|I0,X0=E|F0,U1(w+80|0,A,h,o,_,n,t,a,H),_=i[w+84>>2],C=_,h=e<<17,p=0,W=i[w+88>>2],r=p-W|0,e=i[w+80>>2],_=(_|e)!=0,v=r-_|0,Z=(h-(i[w+92>>2]+(p>>>0>>0)|0)|0)-(r>>>0<_>>>0)|0,W=0-(((e|0)!=0)+C|0)|0,C=p0+16382|0,p=0-e|0;break r}A=(k&1)<<31|A>>>1,k=o<<31|k>>>1,o=(u&1)<<31|o>>>1,u=u>>>1|0,U1(w+96|0,A,k,o,u,n,t,a,H),v=i[w+100>>2],z=v,Z=0,C=i[w+104>>2],p=Z-C|0,_=i[w+96>>2],W=(v|_)!=0,v=p-W|0,Z=((e<<16)-(i[w+108>>2]+(Z>>>0>>0)|0)|0)-(p>>>0>>0)|0,W=0-(((_|0)!=0)+z|0)|0,h0=e,z=r,C=p0+16383|0,p=0-_|0}if((C|0)>=32767){y=y|2147418112,e=0,r=0;break i}r:{if((C|0)>0){e=v<<1|W>>>31,r=Z<<1|v>>>31,v=o,Z=u&65535|C<<16,_=W<<1|p>>>31,o=p<<1;break r}if((C|0)<=-113){e=0,r=0;break i}ti(w- -64|0,A,k,o,u,1-C|0),L1(w+48|0,h0,z,G0,X0,C+112|0),A=i[w+64>>2],k=i[w+68>>2],v=i[w+72>>2],Z=i[w+76>>2],U1(w+32|0,n,t,a,H,A,k,v,Z),e=i[w+40>>2],r=i[w+56>>2],u=i[w+36>>2],W=e<<1|u>>>31,_=r-W|0,W=i[w+60>>2]-((i[w+44>>2]<<1|e>>>31)+(r>>>0>>0)|0)|0,r=i[w+52>>2],C=r,e=i[w+32>>2],o=u<<1|e>>>31,p=e<<1,e=p,h=i[w+48>>2],r=(r|0)==(o|0)&e>>>0>h>>>0|r>>>0>>0,e=_-r|0,r=W-(r>>>0>_>>>0)|0,_=C-((h>>>0

>>0)+o|0)|0,o=h-p|0}U1(w+16|0,n,t,a,H,3,0,0,0),U1(w,n,t,a,H,5,0,0,0),p=A,W=A&1,u=W,A=o+u|0,h=0,o=h+_|0,o=A>>>0>>0?o+1|0:o,u=A,t=(t|0)==(o|0)&A>>>0>n>>>0|t>>>0>>0,_=r,A=(o|0)==(h|0)&A>>>0>>0|o>>>0>>0,n=e+A|0,_=A>>>0>n>>>0?_+1|0:_,h=k,e=(_|0)==(H|0),e=e&(n|0)==(a|0)?t:e&n>>>0>a>>>0|_>>>0>H>>>0,r=e,e=e+p|0,h=r>>>0>e>>>0?h+1|0:h,r=h,A=(k|0)==(h|0)&e>>>0

>>0|k>>>0>h>>>0,h=Z,k=A,A=A+v|0,h=k>>>0>A>>>0?h+1|0:h,t=A,k=i[w+20>>2],v=(k|0)==(o|0)&k0[w+16>>2]>>0|k>>>0>>0,k=i[w+28>>2],A=i[w+24>>2],k=h>>>0<2147418112&((A|0)==(n|0)&(k|0)==(_|0)?v:(k|0)==(_|0)&A>>>0>>0|k>>>0<_>>>0),A=r,v=k,k=e+k|0,A=v>>>0>k>>>0?A+1|0:A,e=(r|0)==(A|0)&e>>>0>k>>>0|r>>>0>A>>>0,r=e,e=e+t|0,h=r>>>0>e>>>0?h+1|0:h,t=e,r=i[w+4>>2],o=(r|0)==(o|0)&k0[w>>2]>>0|r>>>0>>0,r=i[w+12>>2],e=i[w+8>>2],e=h>>>0<2147418112&((e|0)==(n|0)&(r|0)==(_|0)?o:(r|0)==(_|0)&e>>>0>>0|r>>>0<_>>>0),r=e,e=e+k|0,_=r>>>0>e>>>0?A+1|0:A,r=_,k=(A|0)==(_|0)&e>>>0>>0|A>>>0>_>>>0,A=h,n=k,k=k+t|0,A=n>>>0>k>>>0?A+1|0:A,I=k|I,y=A|y}i[f>>2]=e,i[f+4>>2]=r,i[f+8>>2]=I,i[f+12>>2]=y,B=w+336|0}function Ds(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0;u=B-160|0,B=u;i:{if(!(n&&r)){if(l[u+124|0]=0,l[u+135|0]=0,r=f,f=r0(u+72|0,5,2001,u+124|0),P0(r,f,i[e>>2]),l[f+19|0]<0&&G(i[f+8>>2]),l[u+135|0]>=0)break i;G(i[u+124>>2]);break i}if(!(k&&A)){if(l[u+124|0]=0,l[u+135|0]=0,r=f,f=r0(u+72|0,5,2006,u+124|0),P0(r,f,i[e>>2]),l[f+19|0]<0&&G(i[f+8>>2]),l[u+135|0]>=0)break i;G(i[u+124>>2]);break i}l[u+129|0]=0,l[u+130|0]=0,l[u+131|0]=0,l[u+132|0]=0,X[u+126>>1]=0,X[u+128>>1]=0,X[u+124>>1]=263,l[u+156|0]=1,l[u+152|0]=0,i[u+144>>2]=2,i[u+148>>2]=2,l[u+140|0]=1,i[u+136>>2]=1;r:{if(!t)break r;e:{A:switch(s[t|0]-1|0){case 1:l[u+126|0]=s[t+2|0],l[u+125|0]=s[t+1|0];break e;case 0:l[u+125|0]=s[t+1|0];break e;case 6:l[u+156|0]=s[t+32|0];case 5:v=i[t+20>>2],i[u+140>>2]=i[t+16>>2],i[u+144>>2]=v,v=i[t+28>>2],i[u+148>>2]=i[t+24>>2],i[u+152>>2]=v;case 4:i[u+136>>2]=i[t+12>>2];case 3:v=i[t+4>>2],i[u+128>>2]=v,l[u+132|0]=s[t+8|0];break;case 2:break A;default:break e}if(l[u+127|0]=s[t+3|0],l[u+126|0]=s[t+2|0],l[u+125|0]=s[t+1|0],v)break r}if(t=i[i[r>>2]>>2],v=i[t+44>>2],t=i[t+48>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),v&&(l[u+72|0]=1,i[u+128>>2]=u+72,i[u+76>>2]=Q[v+4>>1],i[u+80>>2]=Q[v+6>>1],i[u+84>>2]=Q[v+8>>1],l[u+88|0]=s[v+10|0]),!t||(v=i[t+4>>2],i[t+4>>2]=v-1,v))break r;V[i[i[t>>2]+8>>2]](t),g(t)}if(t=0,i[u+68>>2]=0,i[u+60>>2]=0,i[u+64>>2]=0,w=m(A,k),w)for(v=0;;){_=i[(v<<2)+r>>2];r:{if(k0[u+68>>2]>t>>>0){i[t>>2]=i[_>>2],_=i[_+4>>2],i[t+4>>2]=_,_&&(i[_+4>>2]=i[_+4>>2]+1),t=t+8|0;break r}t=Q2(u+60|0,_)}if(i[u+64>>2]=t,v=v+1|0,(w|0)==(v|0))break}W=u+40|0,r=W,i[r>>2]=0,i[r+4>>2]=0,i[r+16>>2]=0,i[r+8>>2]=0,i[r+12>>2]=0,i[u+32>>2]=0,i[u+36>>2]=0,C=i[e>>2],y=u+124|0,w=B+-64|0,B=w,t=m(y4(i[i[u+60>>2]>>2],10),A),v=m(F4(i[i[u+60>>2]>>2],10),k),r=t>>>0>65535|v>>>0>65535,_=r?12:8,h=U(_),i[w+52>>2]=h,Z=h+_|0,i[w+60>>2]=Z,h=B0(h,0,_),i[w+56>>2]=Z,l[h+3|0]=A-1,l[h+2|0]=k-1,l[h+1|0]=r,l[h|0]=0;r:{if(r){r=v<<24|(v&65280)<<8|(v>>>8&65280|v>>>24),l[h+8|0]=r,l[h+9|0]=r>>>8,l[h+10|0]=r>>>16,l[h+11|0]=r>>>24,p=t>>>24|0,r=t,_=r>>>16|0;break r}p=t>>>8|0,r=v,_=t}l[h+7|0]=r,l[h+5|0]=_,l[h+4|0]=p,l[h+6|0]=r>>>8,i[u+8>>2]=0,i[u+12>>2]=0,i[u+24>>2]=0,i[u+16>>2]=0,i[u+20>>2]=0,r=0,i[w+48>>2]=0,i[w+40>>2]=0,i[w+44>>2]=0;r:{if(I=m(A,k),!I)break r;e:{for(;;){i[w+32>>2]=0,i[w+36>>2]=0,BA(w+8|0,C,i[u+60>>2]+(r<<3)|0,n,y,1,w+32|0),A=i[w+12>>2],i[u+8>>2]=i[w+8>>2],i[u+12>>2]=A,l[u+27|0]<0&&G(i[u+16>>2]),A=i[w+20>>2],i[u+16>>2]=i[w+16>>2],i[u+20>>2]=A,i[u+24>>2]=i[w+24>>2],fe(w+8|0,i[C+48>>2],i[i[w+32>>2]+20>>2]),A=i[w+8>>2],l[A+124|0]=1,i[A+52>>2]=i[A+52>>2]&-2|1,A=i[w+12>>2];A:{if(!A||(k=i[A+4>>2],i[A+4>>2]=k-1,k))break A;V[i[i[A>>2]+8>>2]](A),g(A)}k=i[i[w+32>>2]+20>>2];A:{h=i[w+44>>2],_=i[w+48>>2];f:{if(h>>>0<_>>>0){i[h>>2]=k,k=h+4|0;break f}if(Z=i[w+40>>2],p=h-Z>>2,A=p+1|0,A>>>0>=1073741824)break A;if(E=p<<2,_=_-Z|0,p=_>>1,p=_>>>0>=2147483644?1073741823:A>>>0

>>0?p:A,p){if(p>>>0>=1073741824)break e;_=U(p<<2)}else _=0;if(A=E+_|0,i[A>>2]=k,k=A+4|0,(h|0)!=(Z|0))for(;A=A-4|0,h=h-4|0,i[A>>2]=i[h>>2],(h|0)!=(Z|0););if(i[w+48>>2]=_+(p<<2),i[w+44>>2]=k,i[w+40>>2]=A,!Z)break f;G(Z)}i[w+44>>2]=k,A=i[w+36>>2];f:{if(!A||(k=i[A+4>>2],i[A+4>>2]=k-1,k))break f;V[i[i[A>>2]+8>>2]](A),g(A)}if(r=r+1|0,(I|0)!=(r|0))continue;break r}break}y0(),P()}_2(),P()}Z=Ri(i[C+48>>2],11836),h=U(360),r=h,i[r+16>>2]=0,i[r+20>>2]=0,i[r>>2]=72656,i[r+4>>2]=0,i[r+8>>2]=0,l[r+152|0]=0,i[r+36>>2]=Z,i[r+32>>2]=C,i[r+28>>2]=34648,i[r+40>>2]=0,i[r+44>>2]=0,i[r+52>>2]=0,i[r+56>>2]=0,i[r+68>>2]=0,i[r+72>>2]=0,i[r+80>>2]=0,i[r+84>>2]=0,i[r+156>>2]=0,i[r+160>>2]=0,i[r+24>>2]=0,X[r+48>>1]=0,X[r+58>>1]=0,X[r+60>>1]=0,X[r+62>>1]=0,X[r+64>>1]=0,l[r+76|0]=0,l[r+88|0]=0,i[r+204>>2]=0,i[r+196>>2]=0,i[r+200>>2]=0,i[r+188>>2]=0,i[r+192>>2]=0,i[r+180>>2]=0,i[r+184>>2]=0,i[r+172>>2]=0,i[r+176>>2]=0,i[r+164>>2]=0,i[r+168>>2]=0,i[r+212>>2]=0,i[r+216>>2]=0,l[r+208|0]=1,l[r+217|0]=0,l[r+218|0]=0,l[r+219|0]=0,l[r+220|0]=0,l[r+221|0]=0,l[r+222|0]=0,l[r+223|0]=0,l[r+224|0]=0,i[r+232>>2]=0,i[r+236>>2]=0,i[r+240>>2]=0,i[r+244>>2]=0,i[r+248>>2]=0,i[r+252>>2]=0,i[r+256>>2]=0,i[r+260>>2]=0,i[r+264>>2]=0,i[r+268>>2]=0,l[r+272|0]=0,B0(r+280|0,0,80),i[r+296>>2]=0,i[r+300>>2]=0,l[r+292|0]=1,i[r+304>>2]=0,i[r+308>>2]=0,i[r+312>>2]=0,i[r+316>>2]=0,i[r+328>>2]=0,i[r+332>>2]=0,i[r+320>>2]=0,i[r+324>>2]=1072693248,i[r+336>>2]=0,i[r+340>>2]=0,i[r+344>>2]=0,i[r+348>>2]=0,i[r+352>>2]=0,i[r+96>>2]=0,i[r+100>>2]=0,i[r+104>>2]=0,i[r+108>>2]=0,i[r+112>>2]=0,i[r+116>>2]=0,i[r+120>>2]=0,i[r+124>>2]=0,i[r+128>>2]=0,i[r+132>>2]=0,i[r+136>>2]=0,i[r+140>>2]=0,i[r+144>>2]=0,i[r+148>>2]=0,p=r+16|0,i[u+32>>2]=p,A=i[u+36>>2],i[u+36>>2]=r;r:{e:{if(!A){_=C+16|0;break e}if(r=i[A+4>>2],i[A+4>>2]=r-1,r||(V[i[i[A>>2]+8>>2]](A),g(A)),_=C+16|0,p=i[u+32>>2],h=i[u+36>>2],h)break e;h=0;break r}i[h+4>>2]=i[h+4>>2]+1}r:{e:{r=i[_+4>>2];A:{if(!r){k=_+4|0,A=k;break A}for(;;){if(A=r,k=i[r+16>>2],k>>>0>Z>>>0){if(k=r,r=i[r>>2],r)continue;break A}if(k>>>0>=Z>>>0)break e;if(r=i[A+4>>2],!r)break}k=A+4|0}r=U(28),i[r+24>>2]=h,i[r+20>>2]=p,i[r+16>>2]=Z,i[r+8>>2]=A,i[r>>2]=0,i[r+4>>2]=0,i[k>>2]=r,A=i[i[_>>2]>>2],A&&(i[_>>2]=A,r=i[k>>2]),D1(i[_+4>>2],r),i[_+8>>2]=i[_+8>>2]+1;break r}if(!h||(r=i[h+4>>2],i[h+4>>2]=r-1,r))break r;V[i[i[h>>2]+8>>2]](h),g(h)}hi(i[C+48>>2],Z,w+52|0,1),P1(i[C+48>>2],Z,1684630887,w+40|0),Vi(i[C+48>>2],Z,t,v),dn(i[C+48>>2],i[i[n>>2]+4>>2],s[i[u+32>>2]+192|0]),r=i[w+40>>2],r&&(i[w+44>>2]=r,G(r)),r=i[w+52>>2],r&&(i[w+56>>2]=r,G(r)),B=w- -64|0,A=i[u+12>>2],r=i[u+8>>2],i[W>>2]=r,i[W+4>>2]=A,l[W+19|0]<0&&(G(i[W+8>>2]),r=i[W>>2]),A=i[u+20>>2],i[W+8>>2]=i[u+16>>2],i[W+12>>2]=A,i[W+16>>2]=i[u+24>>2],A=i[e>>2];r:{if((r|0)!=i[19564]){P0(f,W,A);break r}i[A+40>>2]||s3(A,u+32|0);e:{if(!o)break e;k=U(16),r=k,i[r>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,i[r+12>>2]=0,i[o>>2]=r,n=i[u+32>>2],A=i[u+36>>2];A:{if(!A){i[r+4>>2]=A,i[r>>2]=n;break A}if(i[A+4>>2]=i[A+4>>2]+1,i[k>>2]=n,r=i[k+4>>2],i[k+4>>2]=A,!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break A;V[i[i[r>>2]+8>>2]](r),g(r)}if(k=i[e>>2],r=i[o>>2],A=i[e+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+8>>2]=k,e=i[r+12>>2],i[r+12>>2]=A,!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break e;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}f=i[u+36>>2];r:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(l[W+19|0]<0&&G(i[W+8>>2]),f=i[u+60>>2],!f)break i;if(t=i[u+64>>2],v=f,(t|0)!=(v|0)){for(;;){e=i[t-4>>2];r:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break r;V[i[i[e>>2]+8>>2]](e),g(e)}if(t=t-8|0,(f|0)==(t|0))break}v=i[u+60>>2]}i[u+64>>2]=f,G(v)}B=u+160|0}function Us(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;n=B+-64|0,B=n,c7(n+44|0,e,r),l[n+63|0]<0&&G(i[n+52>>2]),A=B2(r),o=A&1,l[e+57|0]=o,l[e+56|0]=A>>>1&3;i:{r:{e:{if(o){if(A=t2(r),l[e+62|0]=A&3,X[e+58>>1]=A>>>7,l[e+61|0]=A>>>2&3,l[e+60|0]=A>>>4&7,p=e,W=B2(r)>>>5|0,l[p+63|0]=W,A=B2(r)&63,l[e+64|0]=A,!A){if(e=U(56),i[n+28>>2]=e,i[n+32>>2]=54,i[n+36>>2]=-2147483592,r=s[18018]|s[18019]<<8|(s[18020]<<16|s[18021]<<24),A=s[18014]|s[18015]<<8|(s[18016]<<16|s[18017]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+54|0]=0,r=s[18064]|s[18065]<<8|(s[18066]<<16|s[18067]<<24),A=s[18060]|s[18061]<<8|(s[18062]<<16|s[18063]<<24),l[e+46|0]=A,l[e+47|0]=A>>>8,l[e+48|0]=A>>>16,l[e+49|0]=A>>>24,l[e+50|0]=r,l[e+51|0]=r>>>8,l[e+52|0]=r>>>16,l[e+53|0]=r>>>24,r=s[18058]|s[18059]<<8|(s[18060]<<16|s[18061]<<24),A=s[18054]|s[18055]<<8|(s[18056]<<16|s[18057]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[18050]|s[18051]<<8|(s[18052]<<16|s[18053]<<24),A=s[18046]|s[18047]<<8|(s[18048]<<16|s[18049]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[18042]|s[18043]<<8|(s[18044]<<16|s[18045]<<24),A=s[18038]|s[18039]<<8|(s[18040]<<16|s[18041]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[18034]|s[18035]<<8|(s[18036]<<16|s[18037]<<24),A=s[18030]|s[18031]<<8|(s[18032]<<16|s[18033]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[18026]|s[18027]<<8|(s[18028]<<16|s[18029]<<24),A=s[18022]|s[18023]<<8|(s[18024]<<16|s[18025]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,2006,n+28|0),l[n+39|0]>=0)break e;G(i[n+28>>2]);break e}A=B2(r),l[e+66|0]=A&1,l[e+65|0]=A>>>1,p=e,W=B2(r),l[p+67|0]=W;A:{if(!s[e+64|0])break A;for(;;){A=B2(r),h||(l[e+68|0]=A>>>7,l[e+69|0]=A>>>6&1,A=A&63);f:{u=i[e+76>>2],k=i[e+80>>2];k:{if(u>>>0>>0){l[u|0]=A,_=u+1|0;break k}if(t=i[e+72>>2],w=u-t|0,o=w+1|0,(o|0)<0)break f;k=k-t|0,_=k<<1,_=k>>>0>=1073741823?2147483647:o>>>0<_>>>0?_:o,_?k=U(_):k=0,o=w+k|0,l[o|0]=A,Z=k+_|0,_=o+1|0;n:{if((t|0)==(u|0)){k=o;break n}if(v=0,A=u,w=w&3,w)for(;o=o-1|0,A=A-1|0,l[o|0]=s[A|0],v=v+1|0,(w|0)!=(v|0););if(t-u>>>0<=4294967292)for(;l[o-1|0]=s[A-1|0],l[o-2|0]=s[A-2|0],l[o-3|0]=s[A-3|0],o=o-4|0,A=A-4|0,l[o|0]=s[A|0],(A|0)!=(t|0););t=i[e+72>>2]}if(i[e+80>>2]=Z,i[e+76>>2]=_,i[e+72>>2]=k,!t)break k;G(t)}if(i[e+76>>2]=_,h=h+1|0,h>>>0>>0<=1||(kn(e+84|0,h-1|0),u=B2(r),h=s[e+60|0],h>>>0<2))break A;for(A=h-2|0,w=i[e+84>>2],o=128;k=1<>>3&536870908)|0,o&u?k=k|i[t>>2]:k=i[t>>2]&(k^-1),i[t>>2]=k,o=o>>>1|0,k=(A|0)>0,A=A-1|0,!!k;);}o=e+96|0,k=i[e+96>>2],A=i[e+100>>2]-k|0;A:{if(A>>>0>>0){L2(o,h-A|0),h=s[e+60|0];break A}if(A>>>0<=h>>>0)break A;i[e+100>>2]=k+h}A=h&255;A:{if(!A||(l[(A+i[e+96>>2]|0)-1|0]=s[e+67|0],A=s[e+60|0],A>>>0<2))break A;for(A=A-2|0;;){f:{if(i[i[e+84>>2]+(A>>>3&536870908)>>2]>>>A&1){k=B2(r),l[i[o>>2]+A|0]=k;break f}k=i[o>>2]+A|0,l[k|0]=s[k+1|0]}if(k=(A|0)>0,A=A-1|0,!k)break}}if(h=B2(r),h)for(_=0;;){t=D0(r),A=i[e+112>>2],k=i[e+116>>2];A:{if(A>>>0>>0){i[A>>2]=t,t=A+4|0;break A}if(u=i[e+108>>2],v=A-u>>2,o=v+1|0,o>>>0>=1073741824)break r;if(k=k-u|0,w=k>>1,w=k>>>0>=2147483644?1073741823:o>>>0>>0?w:o,w){if(w>>>0>=1073741824)break i;k=U(w<<2)}else k=0;if(o=k+(v<<2)|0,i[o>>2]=t,t=o+4|0,(A|0)!=(u|0))for(;o=o-4|0,A=A-4|0,i[o>>2]=i[A>>2],(A|0)!=(u|0););if(i[e+116>>2]=k+(w<<2),i[e+112>>2]=t,i[e+108>>2]=o,!u)break A;G(u)}if(i[e+112>>2]=t,_=_+1|0,(h|0)==(_|0))break}p=e,W=t2(r),X[p+120>>1]=W,p=e,W=t2(r),X[p+122>>1]=W,p=e,W=t2(r),X[p+124>>1]=W}w=B2(r);A:{if(!w)break A;for(_=e+128|0,v=n+32|0,h=0;;){if(s[r+20|0])break A;A=B2(r),o=0,i[n+40>>2]=0,i[n+32>>2]=0,i[n+36>>2]=0,l[n+29|0]=A&63,l[n+28|0]=A>>>7,u=t2(r);f:{k:{if(!u)break k;for(;;){if(s[r+20|0])break k;i[n+24>>2]=0,i[n+16>>2]=0,i[n+20>>2]=0,k=t2(r),t=19;n:{if(!k)break n;t:{if(!T4(r,k))break t;t=i[n+16>>2],A=i[n+20>>2]-t|0;o:{if(A>>>0>>0){L2(n+16|0,k-A|0);break o}if(A>>>0<=k>>>0)break o;i[n+20>>2]=k+t}t=i[r>>2],A=i[r+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),k=V[i[i[t>>2]+16>>2]](t,i[n+16>>2],k)|0;o:{if(!A||(t=i[A+4>>2],i[A+4>>2]=t-1,t))break o;V[i[i[A>>2]+8>>2]](A),g(A)}if(k)break t;A=U(32),i[n+4>>2]=A,i[n+8>>2]=28,i[n+12>>2]=-2147483616,k=s[2134]|s[2135]<<8|(s[2136]<<16|s[2137]<<24),t=s[2130]|s[2131]<<8|(s[2132]<<16|s[2133]<<24),l[A|0]=t,l[A+1|0]=t>>>8,l[A+2|0]=t>>>16,l[A+3|0]=t>>>24,l[A+4|0]=k,l[A+5|0]=k>>>8,l[A+6|0]=k>>>16,l[A+7|0]=k>>>24,l[A+28|0]=0,k=s[2154]|s[2155]<<8|(s[2156]<<16|s[2157]<<24),l[A+24|0]=k,l[A+25|0]=k>>>8,l[A+26|0]=k>>>16,l[A+27|0]=k>>>24,k=s[2150]|s[2151]<<8|(s[2152]<<16|s[2153]<<24),t=s[2146]|s[2147]<<8|(s[2148]<<16|s[2149]<<24),l[A+16|0]=t,l[A+17|0]=t>>>8,l[A+18|0]=t>>>16,l[A+19|0]=t>>>24,l[A+20|0]=k,l[A+21|0]=k>>>8,l[A+22|0]=k>>>16,l[A+23|0]=k>>>24,k=s[2142]|s[2143]<<8|(s[2144]<<16|s[2145]<<24),t=s[2138]|s[2139]<<8|(s[2140]<<16|s[2141]<<24),l[A+8|0]=t,l[A+9|0]=t>>>8,l[A+10|0]=t>>>16,l[A+11|0]=t>>>24,l[A+12|0]=k,l[A+13|0]=k>>>8,l[A+14|0]=k>>>16,l[A+15|0]=k>>>24,r0(f,2,100,n+4|0),l[n+15|0]<0&&G(i[n+4>>2]),t=1;break n}A=i[n+36>>2];t:{if(A>>>0>2]){i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A>>2]=i[n+16>>2],i[A+4>>2]=i[n+20>>2],i[A+8>>2]=i[n+24>>2],i[n+24>>2]=0,i[n+16>>2]=0,i[n+20>>2]=0,k=A+12|0;break t}k=NA(v,n+16|0)}i[n+36>>2]=k,t=0}if(A=i[n+16>>2],A&&(i[n+20>>2]=A,G(A)),(t|0)!=19&&t)break f;if(o=o+1|0,(u|0)==(o|0))break}}A=i[e+132>>2];k:{if(A>>>0>2]){o=Q[n+28>>1],i[A+12>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,X[A>>1]=o,i[A+4>>2]=i[n+32>>2],i[A+8>>2]=i[n+36>>2],i[A+12>>2]=i[n+40>>2],i[n+40>>2]=0,i[n+32>>2]=0,i[n+36>>2]=0,k=A+16|0;break k}k=Fn(_,n+28|0)}i[e+132>>2]=k,t=0}if(k=i[n+32>>2],k){if(A=k,o=i[n+36>>2],(A|0)!=(o|0)){for(;A=o-12|0,u=i[A>>2],u&&(i[o-8>>2]=u,G(u)),o=A,(A|0)!=(k|0););A=i[n+32>>2]}i[n+36>>2]=k,G(A)}if(t)break e;if(h=h+1|0,(w|0)==(h|0))break}}if(s[r+20|0]==1){if(l[n+28|0]=0,l[n+39|0]=0,r0(f,2,100,n+28|0),l[n+39|0]>=0)break e;G(i[n+28>>2]);break e}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break e}_0(f,i[19566],i[19567])}B=n- -64|0;return}y0(),P()}_2(),P()}function Zk(){var f=0,e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0;i:{if(D=Z2(11296),D)for(e=B0(D,255,11296),f=e+1056|0,i[23908]=f,i[23904]=f,i[23903]=e+992,i[23902]=e+928,i[23901]=e+864,i[23900]=e+800,i[23899]=e+736,i[23898]=e+672,i[23897]=e+608,i[23896]=e+544,i[23895]=e+480,i[23894]=e+416,i[23893]=e+352,i[23892]=e+288,i[23891]=e+224,i[23890]=e+160,i[23889]=e+96,i[23888]=e+32,f=e+16|0,i[23887]=f,i[23886]=f,i[23885]=f,i[23884]=f,i[23883]=f,i[23882]=f,i[23881]=f,i[23880]=f,i[23879]=e,i[23878]=e,i[23877]=e,i[23876]=e,i[23875]=e,i[23874]=e,i[23873]=e,i[23872]=e,f=e+1312|0,i[23909]=f,i[23905]=f,f=e+1568|0,i[23910]=f,i[23906]=f,f=e+2080|0,i[23916]=f,i[23912]=f,f=e+1824|0,i[23911]=f,i[23907]=f,f=e+2336|0,i[23917]=f,i[23913]=f,f=e+2592|0,i[23918]=f,i[23914]=f,f=e+3104|0,i[23924]=f,i[23920]=f,f=e+2848|0,i[23919]=f,i[23915]=f,f=e+4128|0,i[23925]=f,i[23921]=f,f=e+5152|0,i[23926]=f,i[23922]=f,f=e+7200|0,i[23932]=f,i[23928]=f,f=e+6176|0,i[23927]=f,i[23923]=f,f=e+8224|0,i[23933]=f,i[23929]=f,f=e+9248|0,i[23934]=f,i[23930]=f,e=e+10272|0,i[23935]=e,i[23931]=e,_=2;;){J=_-2|0,o=1<<_;r:{if((_|0)!=2){for(C=(_|0)==3,w=C?11:14,R=0,e=1;;){for(W=1,f=0;;){for(I=((J<<6)+(R<<5)|0)+(f<<4)|0,Z=I+95488|0,y=W&1?9:15,u=0;;){for(E=u&3,n=u<<_,f=0;;){A=f|u,r=0;e:{if(!A)break e;if(r=E+(f&3)|0,h=r>>>0<=2?r?1:2:0,e){if(h=A>>>0<4?h:h+3|0,r=h+y|0,(_|0)==3)break e;r=h+21|0;break e}if(r=h+9|0,(_|0)==3)break e;r=h|12}if(h=n+(i[Z>>2]+f|0)|0,A=s[h|0],r=e?r:r+27|0,(A|0)!=255&(r|0)!=(A|0))break i;if(l[h|0]=r,f=f+1|0,(o|0)==(f|0))break}if(u=u+1|0,(u|0)==(o|0))break}for(n=I+95492|0,u=0;;){for(f=u&3,h=f?(f|0)==1:2,A=C?h+9|0:h|12,t=h+3|0,k=u<<_,f=0;;){Z=f|u,r=Z?A:0,E=!e;e:{if(E|!Z)break e;if(r=Z>>>0<4?h:t,!C){r=r+21|0;break e}r=r+y|0}if(Z=k+(i[n>>2]+f|0)|0,v=s[Z|0],r=e?r:r+27|0,(v|0)!=255&(r|0)!=(v|0))break i;if(l[Z|0]=r,f=f+1|0,(o|0)==(f|0))break}if(u=u+1|0,(u|0)==(o|0))break}for(Z=I+95496|0,u=0;;){for(n=u<<_,f=0;;){A=f|u,r=0;e:{if(!A)break e;if(r=f&3,h=r?(r|0)==1:2,!e){if(r=h|12,!C)break e;r=h+9|0;break e}if(h=A>>>0<4?h:h+3|0,r=h+21|0,!C)break e;r=h+y|0}if(h=n+(i[Z>>2]+f|0)|0,A=s[h|0],r=e?r:r+27|0,(A|0)!=255&(r|0)!=(A|0))break i;if(l[h|0]=r,f=f+1|0,(o|0)==(f|0))break}if(u=u+1|0,(u|0)==(o|0))break}for(I=I+95500|0,u=0;;){for(Z=u<<_,f=0;;){h=f|u,r=h?w:0;e:{if(E|!h)break e;if(r=h>>>0<4?2:5,!C){r=r+21|0;break e}r=r+y|0}if(h=Z+(i[I>>2]+f|0)|0,n=s[h|0],r=e?r:r+27|0,(n|0)!=255&(r|0)!=(n|0))break i;if(l[h|0]=r,f=f+1|0,(o|0)==(f|0))break}if(u=u+1|0,(u|0)==(o|0))break}if(f=1,r=W&1,W=0,!r)break}if(R=1,f=e,e=0,!f)break}break r}for(u=J<<6,C=u+95516|0,y=u+95512|0,h=u+95508|0,I=u+95504|0,J=u+95500|0,R=u+95496|0,Z=u+95492|0,E=u+95488|0,W=0;;){e=0;e:{if(W){for(r=u+(W<<5)|0,w=r+95488|0;;){for(n=e<<2,A=e<<_,f=0;;){if(t=A+(i[w>>2]+f|0)|0,k=s[t|0],p=(k|0)!=255,v=k,k=s[(f+n|0)+45792|0]+27|0,p&(v|0)!=(k|0))break i;if(l[t|0]=k,f=f+1|0,(o|0)==(f|0))break}if(e=e+1|0,(o|0)==(e|0))break}for(w=r+95492|0,e=0;;){for(n=e<<2,A=e<<_,f=0;;){if(t=A+(i[w>>2]+f|0)|0,k=s[t|0],p=(k|0)!=255,v=k,k=s[(f+n|0)+45792|0]+27|0,p&(v|0)!=(k|0))break i;if(l[t|0]=k,f=f+1|0,(o|0)==(f|0))break}if(e=e+1|0,(o|0)==(e|0))break}for(w=r+95496|0,e=0;;){for(n=e<<2,A=e<<_,f=0;;){if(t=A+(i[w>>2]+f|0)|0,k=s[t|0],p=(k|0)!=255,v=k,k=s[(f+n|0)+45792|0]+27|0,p&(v|0)!=(k|0))break i;if(l[t|0]=k,f=f+1|0,(o|0)==(f|0))break}if(e=e+1|0,(o|0)==(e|0))break}for(w=r+95500|0,e=0;;){for(n=e<<2,A=e<<_,f=0;;){if(t=A+(i[w>>2]+f|0)|0,k=s[t|0],p=(k|0)!=255,v=k,k=s[(f+n|0)+45792|0]+27|0,p&(v|0)!=(k|0))break i;if(l[t|0]=k,f=f+1|0,(o|0)==(f|0))break}if(e=e+1|0,(o|0)==(e|0))break}for(w=r+95504|0,e=0;;){for(n=e<<2,A=e<<_,f=0;;){if(t=A+(i[w>>2]+f|0)|0,k=s[t|0],p=(k|0)!=255,v=k,k=s[(f+n|0)+45792|0]+27|0,p&(v|0)!=(k|0))break i;if(l[t|0]=k,f=f+1|0,(o|0)==(f|0))break}if(e=e+1|0,(o|0)==(e|0))break}for(w=r+95508|0,e=0;;){for(n=e<<2,A=e<<_,f=0;;){if(t=A+(i[w>>2]+f|0)|0,k=s[t|0],p=(k|0)!=255,v=k,k=s[(f+n|0)+45792|0]+27|0,p&(v|0)!=(k|0))break i;if(l[t|0]=k,f=f+1|0,(o|0)==(f|0))break}if(e=e+1|0,(o|0)==(e|0))break}for(w=r+95512|0,e=0;;){for(n=e<<2,A=e<<_,f=0;;){if(t=A+(i[w>>2]+f|0)|0,k=s[t|0],p=(k|0)!=255,v=k,k=s[(f+n|0)+45792|0]+27|0,p&(v|0)!=(k|0))break i;if(l[t|0]=k,f=f+1|0,(o|0)==(f|0))break}if(e=e+1|0,(o|0)==(e|0))break}for(r=r+95516|0,e=0;;){for(w=e<<2,n=e<<_,f=0;;){if(A=n+(i[r>>2]+f|0)|0,t=s[A|0],v=(t|0)!=255,k=t,t=s[(f+w|0)+45792|0]+27|0,v&(k|0)!=(t|0))break i;if(l[A|0]=t,f=f+1|0,(o|0)==(f|0))break}if(e=e+1|0,(o|0)==(e|0))break}break e}for(;;){for(r=e<<2,w=e<<_,f=0;;){if(n=w+(i[E>>2]+f|0)|0,A=s[n|0],t=(A|0)!=255,k=A,A=s[(f+r|0)+45792|0],t&(k|0)!=(A|0))break i;if(l[n|0]=A,f=f+1|0,(o|0)==(f|0))break}if(r=0,e=e+1|0,(o|0)==(e|0))break}for(;;){for(e=r<<2,w=r<<_,f=0;;){if(n=w+(i[Z>>2]+f|0)|0,A=s[n|0],t=(A|0)!=255,k=A,A=s[(f+e|0)+45792|0],t&(k|0)!=(A|0))break i;if(l[n|0]=A,f=f+1|0,(o|0)==(f|0))break}if(e=0,r=r+1|0,(o|0)==(r|0))break}for(;;){for(r=e<<2,w=e<<_,f=0;;){if(n=w+(i[R>>2]+f|0)|0,A=s[n|0],t=(A|0)!=255,k=A,A=s[(f+r|0)+45792|0],t&(k|0)!=(A|0))break i;if(l[n|0]=A,f=f+1|0,(o|0)==(f|0))break}if(r=0,e=e+1|0,(o|0)==(e|0))break}for(;;){for(e=r<<2,w=r<<_,f=0;;){if(n=w+(i[J>>2]+f|0)|0,A=s[n|0],t=(A|0)!=255,k=A,A=s[(f+e|0)+45792|0],t&(k|0)!=(A|0))break i;if(l[n|0]=A,f=f+1|0,(o|0)==(f|0))break}if(e=0,r=r+1|0,(o|0)==(r|0))break}for(;;){for(r=e<<2,w=e<<_,f=0;;){if(n=w+(i[I>>2]+f|0)|0,A=s[n|0],t=(A|0)!=255,k=A,A=s[(f+r|0)+45792|0],t&(k|0)!=(A|0))break i;if(l[n|0]=A,f=f+1|0,(o|0)==(f|0))break}if(r=0,e=e+1|0,(o|0)==(e|0))break}for(;;){for(e=r<<2,w=r<<_,f=0;;){if(n=w+(i[h>>2]+f|0)|0,A=s[n|0],t=(A|0)!=255,k=A,A=s[(f+e|0)+45792|0],t&(k|0)!=(A|0))break i;if(l[n|0]=A,f=f+1|0,(o|0)==(f|0))break}if(e=0,r=r+1|0,(o|0)==(r|0))break}for(;;){for(r=e<<2,w=e<<_,f=0;;){if(n=w+(i[y>>2]+f|0)|0,A=s[n|0],t=(A|0)!=255,k=A,A=s[(f+r|0)+45792|0],t&(k|0)!=(A|0))break i;if(l[n|0]=A,f=f+1|0,(o|0)==(f|0))break}if(r=0,e=e+1|0,(o|0)==(e|0))break}for(;;){for(e=r<<2,w=r<<_,f=0;;){if(n=w+(i[C>>2]+f|0)|0,A=s[n|0],t=(A|0)!=255,k=A,A=s[(f+e|0)+45792|0],t&(k|0)!=(A|0))break i;if(l[n|0]=A,f=f+1|0,(o|0)==(f|0))break}if(r=r+1|0,(o|0)==(r|0))break}}if(W=W+1|0,(W|0)==2)break}}if(_=_+1|0,(_|0)==6)break}return(D|0)!=0}C0(13703,14036,2114,10317),P()}function Ms(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;Z=B-32|0,B=Z,u=A,t=B-144|0,B=t,w=Z+12|0,v=i[e>>2],Zr(w,i[v+16>>2],i[v+20>>2],t+140|0);i:{if(i[w>>2])break i;A=i[i[v+16>>2]+48>>2],p=i[t+140>>2],n=B-32|0,B=n,i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,I1(n,A,p,n+20|0);r:{if(i[n>>2]){i[t+132>>2]=0,i[t+136>>2]=0;break r}e:{if(k=i[n+20>>2],h=i[n+24>>2],(k|0)!=(h|0)){if(A=i[k>>2],A&&(o=i[t+136>>2],A=N0(A,68572,69712),A))break e;if(k=k+8|0,(h|0)!=(k|0))for(;;){if(A=i[k>>2],A&&(o=0,A=N0(A,68572,69712),A))break e;if(k=k+8|0,(h|0)==(k|0))break}i[t+132>>2]=0,i[t+136>>2]=0}i[t+132>>2]=0,i[t+136>>2]=0;break r}if(i[t+136>>2]=o,i[t+132>>2]=A,A=i[k+4>>2],i[t+136>>2]=A,!A)break r;i[A+4>>2]=i[A+4>>2]+1}if(l[n+19|0]<0&&G(i[n+8>>2]),o=i[n+20>>2],o){if(A=o,k=i[n+24>>2],(A|0)!=(k|0)){for(;;){A=i[k-4>>2];r:{if(!A||(h=i[A+4>>2],i[A+4>>2]=h-1,h))break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(k=k-8|0,(o|0)==(k|0))break}A=i[n+20>>2]}i[n+24>>2]=o,G(A)}if(B=n+32|0,A=i[t+132>>2],!(!A|(i[A+60>>2]-i[A+56>>2]|0)!=1)){if(i[r>>2]=2,i[u>>2]=0,r=i[t+136>>2],!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r);break i}if(A=i[v+176>>2],h=i[v+180>>2],h&&(i[h+4>>2]=i[h+4>>2]+1),!(Q[A+8>>1]|!A)){i[r>>2]=1,i[u>>2]=3;r:{if(!h||(r=i[h+4>>2],i[h+4>>2]=r-1,r))break r;V[i[i[h>>2]+8>>2]](h),g(h)}if(r=i[t+136>>2],!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r);break i}o=0,i[r>>2]=0,i[u>>2]=99,r=i[i[v+16>>2]+48>>2],n=B-32|0,B=n,i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,I1(n,r,p,n+20|0);r:{if(i[n>>2]){i[t+124>>2]=0,i[t+128>>2]=0;break r}e:{if(k=i[n+20>>2],_=i[n+24>>2],(k|0)!=(_|0)){if(r=i[k>>2],r&&(A=i[t+128>>2],r=N0(r,68572,74292),r))break e;if(k=k+8|0,(_|0)!=(k|0))for(;;){if(r=i[k>>2],r&&(A=0,r=N0(r,68572,74292),r))break e;if(k=k+8|0,(_|0)==(k|0))break}i[t+124>>2]=0,i[t+128>>2]=0}i[t+124>>2]=0,i[t+128>>2]=0;break r}if(i[t+128>>2]=A,i[t+124>>2]=r,r=i[k+4>>2],i[t+128>>2]=r,!r)break r;i[r+4>>2]=i[r+4>>2]+1}if(l[n+19|0]<0&&G(i[n+8>>2]),A=i[n+20>>2],A){if(r=A,k=i[n+24>>2],(r|0)!=(k|0)){for(;;){r=i[k-4>>2];r:{if(!r||(_=i[r+4>>2],i[r+4>>2]=_-1,_))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(k=k-8|0,(A|0)==(k|0))break}r=i[n+20>>2]}i[n+24>>2]=A,G(r)}B=n+32|0,r=i[t+124>>2];r:{if(r){i[u>>2]=s[r+69|0],r=1;break r}r=i[i[v+16>>2]+48>>2],n=B-32|0,B=n,i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,I1(n,r,p,n+20|0);e:{if(i[n>>2]){i[t+116>>2]=0,i[t+120>>2]=0;break e}A:{if(k=i[n+20>>2],_=i[n+24>>2],(k|0)!=(_|0)){if(r=i[k>>2],r&&(A=i[t+120>>2],r=N0(r,68572,74976),r))break A;if(k=k+8|0,(_|0)!=(k|0))for(;;){if(r=i[k>>2],r&&(A=0,r=N0(r,68572,74976),r))break A;if(k=k+8|0,(_|0)==(k|0))break}i[t+116>>2]=0,i[t+120>>2]=0}i[t+116>>2]=0,i[t+120>>2]=0;break e}if(i[t+120>>2]=A,i[t+116>>2]=r,r=i[k+4>>2],i[t+120>>2]=r,!r)break e;i[r+4>>2]=i[r+4>>2]+1}if(l[n+19|0]<0&&G(i[n+8>>2]),A=i[n+20>>2],A){if(r=A,k=i[n+24>>2],(r|0)!=(k|0)){for(;;){r=i[k-4>>2];e:{if(!r||(_=i[r+4>>2],i[r+4>>2]=_-1,_))break e;V[i[i[r>>2]+8>>2]](r),g(r)}if(k=k-8|0,(A|0)==(k|0))break}r=i[n+20>>2]}i[n+24>>2]=A,G(r)}B=n+32|0,r=i[t+116>>2];e:{if(r){i[u>>2]=s[r+62|0],r=1;break e}r=i[i[v+16>>2]+48>>2],n=B-32|0,B=n,i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,I1(n,r,p,n+20|0);A:{if(i[n>>2]){i[t+108>>2]=0,i[t+112>>2]=0;break A}f:{if(k=i[n+20>>2],A=i[n+24>>2],(k|0)!=(A|0)){if(r=i[k>>2],r&&(o=i[t+112>>2],r=N0(r,68572,74408),r))break f;if(k=k+8|0,(A|0)!=(k|0))for(;;){if(r=i[k>>2],r&&(o=0,r=N0(r,68572,74408),r))break f;if(k=k+8|0,(A|0)==(k|0))break}i[t+108>>2]=0,i[t+112>>2]=0}i[t+108>>2]=0,i[t+112>>2]=0;break A}if(i[t+112>>2]=o,i[t+108>>2]=r,r=i[k+4>>2],i[t+112>>2]=r,!r)break A;i[r+4>>2]=i[r+4>>2]+1}if(l[n+19|0]<0&&G(i[n+8>>2]),A=i[n+20>>2],A){if(r=A,k=i[n+24>>2],(r|0)!=(k|0)){for(;;){r=i[k-4>>2];A:{if(!r||(o=i[r+4>>2],i[r+4>>2]=o-1,o))break A;V[i[i[r>>2]+8>>2]](r),g(r)}if(k=k-8|0,(A|0)==(k|0))break}r=i[n+20>>2]}i[n+24>>2]=A,G(r)}B=n+32|0,A=i[t+108>>2];A:{if(A){r=s[A+56|0],o=s[A+55|0],k=(o|0)!=2;f:{if(!k&&(A=1,(r|0)==2)||!k&&(A=2,(r|0)==1))break f;A=(o|0)!=1?99:(r|0)==1?3:99}i[u>>2]=A,r=1,o=0;break A}r=i[i[v+16>>2]+48>>2],n=B-32|0,B=n,i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,I1(n,r,p,n+20|0);f:{if(i[n>>2]){i[t+100>>2]=0,i[t+104>>2]=0;break f}k:{if(k=i[n+20>>2],A=i[n+24>>2],(k|0)!=(A|0)){if(r=i[k>>2],r&&(o=i[t+104>>2],r=N0(r,68572,74888),r))break k;if(k=k+8|0,(A|0)!=(k|0))for(;;){if(r=i[k>>2],r&&(o=0,r=N0(r,68572,74888),r))break k;if(k=k+8|0,(A|0)==(k|0))break}i[t+100>>2]=0,i[t+104>>2]=0}i[t+100>>2]=0,i[t+104>>2]=0;break f}if(i[t+104>>2]=o,i[t+100>>2]=r,r=i[k+4>>2],i[t+104>>2]=r,!r)break f;i[r+4>>2]=i[r+4>>2]+1}if(l[n+19|0]<0&&G(i[n+8>>2]),A=i[n+20>>2],A){if(r=A,k=i[n+24>>2],(r|0)!=(k|0)){for(;;){r=i[k-4>>2];f:{if(!r||(o=i[r+4>>2],i[r+4>>2]=o-1,o))break f;V[i[i[r>>2]+8>>2]](r),g(r)}if(k=k-8|0,(A|0)==(k|0))break}r=i[n+20>>2]}i[n+24>>2]=A,G(r)}B=n+32|0,r=1,o=0;f:{if(!i[t+100>>2])break f;if(X[t+24>>1]=0,B0(t+28|0,0,68),wA(t,t+24|0,i[i[v+16>>2]+48>>2],p),o=i[t+4>>2],A=i[t>>2],i[w>>2]=A,i[w+4>>2]=o,l[w+19|0]<0&&(G(i[w+8>>2]),A=i[w>>2]),o=i[t+12>>2],i[w+8>>2]=i[t+8>>2],i[w+12>>2]=o,i[w+16>>2]=i[t+16>>2],!A){A=0;k:{n:{if(k=t+24|0,o=i[k+36>>2],s[o|0]!=1|s[o+1|0]!=1)break n;t:switch((i[k+40>>2]-o>>2)-1|0){case 0:break k;case 2:break t;default:break n}if(n=s[o+4|0],(n|0)!=s[o+8|0]||(A=s[o+5|0],(A|0)!=s[o+9|0]))break n;t:switch(n-1|0){case 1:A=(A|0)==2?1:(A|0)==1?2:99;break k;case 0:break t;default:break n}if((A|0)!=1)break n;A=3;break k}A=99}i[u>>2]=A,ot(k),o=0;break f}ot(t+24|0),r=0,o=1}if(A=i[t+104>>2],!A||(u=i[A+4>>2],i[A+4>>2]=u-1,u))break A;V[i[i[A>>2]+8>>2]](A),g(A)}if(A=i[t+112>>2],!A||(u=i[A+4>>2],i[A+4>>2]=u-1,u))break e;V[i[i[A>>2]+8>>2]](A),g(A)}if(A=i[t+120>>2],!A||(u=i[A+4>>2],i[A+4>>2]=u-1,u))break r;V[i[i[A>>2]+8>>2]](A),g(A)}A=i[t+128>>2];r:{if(!A||(u=i[A+4>>2],i[A+4>>2]=u-1,u))break r;V[i[i[A>>2]+8>>2]](A),g(A)}r:{if(!h||(A=i[h+4>>2],i[h+4>>2]=A-1,A))break r;V[i[i[h>>2]+8>>2]](h),g(h)}A=r|o,r=i[t+136>>2];r:{if(!r||(u=i[r+4>>2],i[r+4>>2]=u-1,u))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(l[w+19|0]>=0|A)break i;G(i[w+8>>2])}B=t+144|0;i:{if(i[Z+12>>2]){P0(f,w,i[e>>2]);break i}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}l[Z+31|0]<0&&G(i[Z+20>>2]),B=Z+32|0}function pk(f,e,r,A,k,n,t,o,u,h,w){var _=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0;_=B-528|0,B=_,i[_+520>>2]=w,i[_+524>>2]=e;i:{if(J2(f,_+524|0)){i[n>>2]=i[n>>2]|4,f=0;break i}i[_+76>>2]=1095,W=_+76|0,I=o1(_+104|0,_+112|0,W),e=i[I>>2],i[_+100>>2]=e,i[_+96>>2]=e+400,e=B-16|0,B=e,i[W>>2]=0,i[W+4>>2]=0,i[W+8>>2]=0,B=e+16|0,e=B-16|0,B=e,p=_- -64|0,i[p>>2]=0,i[p+4>>2]=0,i[p+8>>2]=0,B=e+16|0,e=B-16|0,B=e,Z=_+52|0,i[Z>>2]=0,i[Z+4>>2]=0,i[Z+8>>2]=0,B=e+16|0,e=B-16|0,B=e,v=_+40|0,i[v>>2]=0,i[v+4>>2]=0,i[v+8>>2]=0,B=e+16|0,e=B-16|0,B=e,C=_+28|0,i[C>>2]=0,i[C+4>>2]=0,i[C+8>>2]=0,B=e+16|0,w=B-16|0,B=w;r:{if(r){r=w+4|0,e=x0(A,99928),V[i[i[e>>2]+44>>2]](r,e),A=i[w+4>>2],l[_+92|0]=A,l[_+93|0]=A>>>8,l[_+94|0]=A>>>16,l[_+95|0]=A>>>24,V[i[i[e>>2]+32>>2]](r,e),q1(v,r),z0(r),V[i[i[e>>2]+28>>2]](r,e),q1(Z,r),z0(r),J=_,R=V[i[i[e>>2]+12>>2]](e)|0,l[J+91|0]=R,J=_,R=V[i[i[e>>2]+16>>2]](e)|0,l[J+90|0]=R,V[i[i[e>>2]+20>>2]](r,e),q1(W,r),z0(r),V[i[i[e>>2]+24>>2]](r,e),q1(p,r),z0(r),e=V[i[i[e>>2]+36>>2]](e)|0;break r}r=w+4|0,e=x0(A,99920),V[i[i[e>>2]+44>>2]](r,e),A=i[w+4>>2],l[_+92|0]=A,l[_+93|0]=A>>>8,l[_+94|0]=A>>>16,l[_+95|0]=A>>>24,V[i[i[e>>2]+32>>2]](r,e),q1(v,r),z0(r),V[i[i[e>>2]+28>>2]](r,e),q1(Z,r),z0(r),J=_,R=V[i[i[e>>2]+12>>2]](e)|0,l[J+91|0]=R,J=_,R=V[i[i[e>>2]+16>>2]](e)|0,l[J+90|0]=R,V[i[i[e>>2]+20>>2]](r,e),q1(W,r),z0(r),V[i[i[e>>2]+24>>2]](r,e),q1(p,r),z0(r),e=V[i[i[e>>2]+36>>2]](e)|0}for(i[_+24>>2]=e,B=w+16|0,i[h>>2]=i[u>>2],y=k&512,A=0,e=0;;){r=e;r:{e:{A:{f:{if((A|0)==4||J2(f,_+524|0))break f;w=0;k:{n:{t:{o:{u:switch(s[(_+92|0)+A|0]){case 1:if((A|0)==3)break e;e=i[f>>2],k=i[e+12>>2];l:{if((k|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break l}e=s[k|0]}if(e=e<<24>>24,(e|0)>=0?e=i[i[o+8>>2]+(e<<2)>>2]&1:e=0,e){dt(_+16|0,f),C6(C,l[_+16|0]);break o}i[n>>2]=i[n>>2]|4,f=0;break A;case 4:break k;case 2:break n;case 3:break t;case 0:break u;default:break r}if((A|0)==3)break e}for(;;){if(J2(f,_+524|0))break e;e=i[f>>2],k=i[e+12>>2];o:{if((k|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break o}e=s[k|0]}if(e=e<<24>>24,(e|0)>=0?e=i[i[o+8>>2]+(e<<2)>>2]&1:e=0,!e)break e;dt(_+16|0,f),C6(C,l[_+16|0])}}t:{if(s[Z+11|0]>>>7|0?e=i[Z+4>>2]:e=s[Z+11|0]&127,!e)break t;e=i[f>>2],k=i[e+12>>2];o:{if((k|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break o}e=s[k|0]}if(k=e<<24>>24&255,s[Z+11|0]>>>7|0?e=i[Z>>2]:e=Z,(k|0)!=s[e|0])break t;E1(f),l[t|0]=0,s[Z+11|0]>>>7|0?e=i[Z+4>>2]:e=s[Z+11|0]&127,e=e>>>0>1?Z:r;break r}t:{if(s[v+11|0]>>>7|0?e=i[v+4>>2]:e=s[v+11|0]&127,!e)break t;e=i[f>>2],k=i[e+12>>2];o:{if((k|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break o}e=s[k|0]}if(k=e<<24>>24&255,s[v+11|0]>>>7|0?e=i[v>>2]:e=v,(k|0)!=s[e|0])break t;E1(f),l[t|0]=1,s[v+11|0]>>>7|0?e=i[v+4>>2]:e=s[v+11|0]&127,e=e>>>0>1?v:r;break r}if(s[Z+11|0]>>>7|0?e=i[Z+4>>2]:e=s[Z+11|0]&127,k=!e,s[v+11|0]>>>7|0?e=i[v+4>>2]:e=s[v+11|0]&127,!(k|!e)){i[n>>2]=i[n>>2]|4,f=0;break A}if(s[Z+11|0]>>>7|0?e=i[Z+4>>2]:e=s[Z+11|0]&127,!e&&(s[v+11|0]>>>7|0?e=i[v+4>>2]:e=s[v+11|0]&127,!e))break e;s[v+11|0]>>>7|0?e=i[v+4>>2]:e=s[v+11|0]&127,l[t|0]=!e;break e}if(!(y|(r|A>>>0<2))&&(e=0,!((A|0)==2&s[_+95|0]!=0)))break r;J=_,R=C4(p),i[J+12>>2]=R,i[_+16>>2]=i[_+12>>2];n:{if(!A|s[(A+_|0)+91|0]>1)break n;for(;;){t:{if(J=_,R=S8(p),i[J+12>>2]=R,e=i[_+16>>2],(e|0)==i[_+12>>2]||(e=l[e|0],(e|0)>=0?e=i[i[o+8>>2]+(e<<2)>>2]&1:e=0,!e))break t;i[_+16>>2]=i[_+16>>2]+1;continue}break}if(J=_,R=C4(p),i[J+12>>2]=R,s[C+11|0]>>>7|0?w=i[C+4>>2]:w=s[C+11|0]&127,e=_+12|0,k=i[_+16>>2]-i[e>>2]|0,w>>>0>=k>>>0&&(J=_,R=S8(C),i[J+12>>2]=R,e=R3(e,0-k|0),k=S8(C),w=C4(p),E=B-16|0,B=E,e=O8(e),k=O8(k),e=K2(e,O8(w),k-e|0),B=E+16|0,!e))break n;J=_,R=C4(p),i[J+8>>2]=R,i[_+12>>2]=i[_+8>>2],i[_+16>>2]=i[_+12>>2]}for(i[_+12>>2]=i[_+16>>2];;){n:{if(J=_,R=S8(p),i[J+8>>2]=R,i[_+12>>2]==i[_+8>>2]||J2(f,_+524|0))break n;e=i[f>>2],k=i[e+12>>2];t:{if((k|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break t}e=s[k|0]}if((e<<24>>24&255)!=s[i[_+12>>2]])break n;E1(f),i[_+12>>2]=i[_+12>>2]+1;continue}break}if(!y||(J=_,R=S8(p),i[J+8>>2]=R,i[_+12>>2]==i[_+8>>2]))break e;i[n>>2]=i[n>>2]|4,f=0;break A}for(;;){k:{if(J2(f,_+524|0))break k;e=i[f>>2],k=i[e+12>>2];n:{if((k|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break n}e=s[k|0]}e=e<<24>>24,(e|0)>=0?k=i[i[o+8>>2]+(e<<2)>>2]&64:k=0;n:{if(k){k=i[h>>2],(k|0)==i[_+520>>2]&&(i9(u,h,_+520|0),k=i[h>>2]),i[h>>2]=k+1,l[k|0]=e,w=w+1|0;break n}if(s[W+11|0]>>>7|0?k=i[W+4>>2]:k=s[W+11|0]&127,!k|!w|s[_+90|0]!=(e&255))break k;e=i[_+100>>2],(e|0)==i[_+96>>2]&&(Ei(I,_+100|0,_+96|0),e=i[_+100>>2]),i[_+100>>2]=e+4,i[e>>2]=w,w=0}E1(f);continue}break}e=i[_+100>>2],!w|(e|0)==i[I>>2]||(i[_+96>>2]==(e|0)&&(Ei(I,_+100|0,_+96|0),e=i[_+100>>2]),i[_+100>>2]=e+4,i[e>>2]=w);k:{if(i[_+24>>2]<=0)break k;n:{if(!J2(f,_+524|0)){e=i[f>>2],k=i[e+12>>2];t:{if((k|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break t}e=s[k|0]}if((e<<24>>24&255)==s[_+91|0])break n}i[n>>2]=i[n>>2]|4,f=0;break A}for(;;){if(E1(f),i[_+24>>2]<=0)break k;n:{if(!J2(f,_+524|0)){e=i[f>>2],k=i[e+12>>2];t:{if((k|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break t}e=s[k|0]}if(e=e<<24>>24,(e|0)>=0?e=i[i[o+8>>2]+(e<<2)>>2]&64:e=0,e)break n}i[n>>2]=i[n>>2]|4,f=0;break A}i[h>>2]==i[_+520>>2]&&i9(u,h,_+520|0),e=i[f>>2],k=i[e+12>>2];n:{if((k|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break n}e=s[k|0]}k=i[h>>2],i[h>>2]=k+1,l[k|0]=e<<24>>24,i[_+24>>2]=i[_+24>>2]-1}}if(e=r,i[u>>2]!=i[h>>2])break r;i[n>>2]=i[n>>2]|4,f=0;break A}f:{if(!r)break f;for(w=1;;){if(s[r+11|0]>>>7|0?e=i[r+4>>2]:e=s[r+11|0]&127,e>>>0<=w>>>0)break f;k:{if(!J2(f,_+524|0)){e=i[f>>2],A=i[e+12>>2];n:{if((A|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break n}e=s[A|0]}if(A=e<<24>>24&255,s[r+11|0]>>>7|0?e=i[r>>2]:e=r,(A|0)==s[e+w|0])break k}i[n>>2]=i[n>>2]|4,f=0;break A}E1(f),w=w+1|0}}if(f=1,i[I>>2]==i[_+100>>2])break A;if(f=0,i[_+16>>2]=0,K1(W,i[I>>2],i[_+100>>2],_+16|0),i[_+16>>2]){i[n>>2]=i[n>>2]|4;break A}f=1}z0(C),z0(v),z0(Z),z0(p),z0(W),e=i[I>>2],i[I>>2]=0,e&&V[i[I+4>>2]](e);break i}e=r}A=A+1|0}}return B=_+528|0,f}function Wk(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0;h=B-128|0,B=h;i:{r:{if(!e)break r;e:{A:{for(;;){t=s[r|0];f:{if((t|0)!=37){if(n=Z,!t)break e;l[f+n|0]=t,Z=n+1|0;break f}t=0,o=1;k:{n:{t:switch(n=s[r+1|0],n-45|0){case 1:case 2:break k;case 0:case 3:break n;default:break t}if((n|0)!=95)break k}t=n,n=s[r+2|0],o=2}I=0,R=n&255,w=(r+o|0)+((R|0)==43)|0;k:{if(l[w|0]-48>>>0<=9){r=Xi(w,h+12|0,10,-1,0),o=i[h+12>>2];break k}i[h+12>>2]=w,r=0,o=w}n=s[o|0],u=n-67|0;k:{if(u>>>0>22|!(1<>24,W-37|0){case 31:break s;case 62:break h;case 77:break w;case 0:break m;case 53:break B;case 85:break p;case 52:break W;case 84:break G;case 51:break C;case 83:break y;case 82:break V;case 49:break F;case 50:break I;case 48:break D;case 80:break U;case 47:break M;case 79:break J;case 46:break x;case 78:break E;case 45:break Q;case 75:break g;case 73:break N;case 40:break X;case 72:break H;case 69:break T;case 36:break a;case 35:break S;case 34:case 66:break R;case 33:break O;case 63:break j;case 64:break P;case 30:break L;case 29:break K;case 61:case 67:break q;case 28:break $;case 60:break b;default:break k}if(n=i[A+24>>2],n>>>0<=6)break v;break t}if(n=i[A+24>>2],n>>>0>6)break t;t=n+131079|0;break _}if(n=i[A+16>>2],n>>>0>11)break t;t=n+131086|0;break _}if(n=i[A+16>>2],n>>>0>11)break t;t=n+131098|0;break _}n=i[A+20>>2],t=n>>31,n=n+1900|0,t=n>>>0<1900?t+1|0:t,n=o2(n,t,100,0),o=w0;break l}z=95}n=i[A+12>>2],o=n>>31;break l}_=13635;break s}u=i[A+20>>2],t=u>>31,n=u+1900|0,o=n>>>0<1900?t+1|0:t,v=i[A+28>>2];R:{if((v|0)<=2){u=u+1899|0,t=u>>>0<1899?t+1|0:t,v=u,u=($A(A)|0)==1,n=u?n:v,o=u?o:t;break R}if(v>>>0<361)break R;u=u+1901|0,t=u>>>0<1901?t+1|0:t,v=u,u=($A(A)|0)==1,n=u?v:n,o=u?t:o}if((W|0)==103)break Z;break u}n=i[A+8>>2],o=n>>31;break l}if(t=2,o=i[A+8>>2],!o){n=12,o=0;break o}W=(o|0)>12,n=W?o-12|0:o,u=o>>31,o=W?u-(o>>>0<12)|0:u;break o}n=i[A+28>>2]+1|0,o=n>>31,t=3;break o}n=i[A+16>>2]+1|0,o=n>>31;break l}n=i[A+4>>2],o=n>>31;break l}i[h+124>>2]=1,t=31338;break k}t=i[A+8>>2]>11?131111:131110;break _}_=15004;break s}v=0,y=0,E=B-16|0,B=E,n=i[A+20>>2],o=n>>31,_=i[A+16>>2],_>>>0>=12&&(u=(_|0)/12|0,t=_-m(u,12)|0,_=(t|0)<0?t+12|0:t,t=u+(t>>31)|0,o=o+(t>>31)|0,u=n,n=n+t|0,o=u>>>0>n>>>0?o+1|0:o),u=E+12|0;E:{if((n>>>0<2|0)==(o|0)&n-2>>>0<=136){t=n-68>>2;Q:{g:{if(!(n&3)){if(t=t-1|0,!u)break Q;o=1;break g}if(!u)break Q;o=0}i[u>>2]=o}n=(m(n,31536e3)+m(t,86400)|0)+2087447296|0,t=n>>31;break E}t=n-100|0,W=t,n=o-(n>>>0<100)|0,J=n,n=o2(t,n,400,0),C=q0(n,w0,400,0),o=t-C|0,t=J-(w0+(t>>>0>>0)|0)|0,C=n+(t>>31)|0;Q:{g:{N:{if(n=(t|0)<0?o+400|0:o,n){X:{if((n|0)>=200){if(n>>>0>=300){v=3,n=n-300|0;break X}v=2,n=n-200|0;break X}v=(n|0)>99,n=v?n-100|0:n}if(n)break N;t=0}else t=1;if(u)break g;break Q}if(y=n>>>2|0,t=!(n&3),!u)break Q}i[u>>2]=t}o=q0(W,J,31536e3,0),u=w0,W=o,n=((m(v,24)+m(C,97)|0)+y|0)-t|0,o=q0(n,n>>31,86400,0),n=W+o|0,t=w0+u|0,t=n>>>0>>0?t+1|0:t,n=n+946771200|0,t=n>>>0<946771200?t+1|0:t}y=i[A+12>>2],u=i[A+8>>2],J=u>>31,W=i[A+4>>2],C=W>>31,B=E+16|0,o=i[A>>2],v=o,H=o>>31,o=i[(_<<2)+56560>>2],_=(_|0)>1&&i[E+12>>2]?o+86400|0:o,o=(_>>31)+t|0,t=n+_|0,o=t>>>0<_>>>0?o+1|0:o,n=y-1|0,_=q0(n,n>>31,86400,0),n=_+t|0,t=w0+o|0,t=n>>>0<_>>>0?t+1|0:t,o=q0(u,J,3600,0),n=o+n|0,t=w0+t|0,t=n>>>0>>0?t+1|0:t,o=q0(W,C,60,0),n=o+n|0,t=w0+t|0,o=(n>>>0>>0?t+1|0:t)+H|0,t=n+v|0,o=t>>>0>>0?o+1|0:o,u=i[A+36>>2],n=t-u|0,o=o-((u>>31)+(t>>>0>>0)|0)|0;break Y}n=i[A>>2],o=n>>31;break l}i[h+124>>2]=1,t=31340;break k}_=14945;break s}n=i[A+24>>2],n=n||7,o=n>>31;break Y}n=((i[A+28>>2]-i[A+24>>2]|0)+7>>>0)/7|0,o=0;break l}n=((i[A+28>>2]-((i[A+24>>2]+6>>>0)%7|0)|0)+7>>>0)/7|0,o=0;break l}n=$A(A),o=0;break l}n=i[A+24>>2],o=n>>31}t=1;break o}v=131113;break h}v=131114;break h}n=i[A+20>>2],t=n>>31,n=n+1900|0,t=n>>>0<1900?t+1|0:t,t=nt(n,t),n=w0,W=n,o=t,t=n>>31,u=o^t,n=u-t|0,o=(t^W)-((t>>>0>u>>>0)+t|0)|0;break l}if(n=i[A+20>>2],o=n>>31,u=n,t=o,n=n+1900|0,o=n>>>0<1900?t+1|0:t,u>>>0<8100&(t|0)<=0|(t|0)<0)break u;i[p+48>>2]=n,i[p+52>>2]=o,a=h,S=I8(w,100,11823,p+48|0),i[a+124>>2]=S,t=w;break k}if(i[A+32>>2]<0){i[h+124>>2]=0,t=31341;break k}n=i[A+36>>2],t=(n|0)/3600|0,i[p+64>>2]=m(t,100)+((n-m(t,3600)<<16>>16)/60<<16>>16),a=h,S=I8(w,100,11829,p- -64|0),i[a+124>>2]=S,t=w;break k}if(i[A+32>>2]<0){i[h+124>>2]=0,t=31341;break k}n=i[A+40>>2],l[99704]&1||(ms(99660,99664,99712,99744),i[24918]=99744,i[24917]=99712,l[99704]=1),(n|0)!=56608?t=(n|0)==i[24917]?n:(n|0)!=i[24918]?31341:n:t=56608;break n}i[h+124>>2]=1,t=18681;break k}n=nt(n,o),o=w0;break l}t=n|131072}t=S7(t,k);break n}v=131115}_=S7(v,k)}n=Wk(w,100,_,A,k),i[h+124>>2]=n,t=n?w:0;break k}t=2;break o}t=4}o:{if(u=D||z,(u|0)!=95){if((u|0)!=45)break o;i[p+16>>2]=n,i[p+20>>2]=o,a=h,S=I8(w,100,11824,p+16|0),i[a+124>>2]=S,t=w;break k}i[p+40>>2]=n,i[p+44>>2]=o,i[p+32>>2]=t,a=h,S=I8(w,100,11817,p+32|0),i[a+124>>2]=S,t=w;break k}i[p+8>>2]=n,i[p+12>>2]=o,i[p>>2]=t,a=h,S=I8(w,100,11810,p),i[a+124>>2]=S,t=w;break k}t=18137}a=h,S=G2(t),i[a+124>>2]=S}if(B=p+80|0,o=t,!t)break A;k:{if(!I){t=i[h+124>>2];break k}n:{t:{o:switch(n=s[o|0],n-43|0){case 0:case 2:break t;default:break o}t=i[h+124>>2];break n}n=s[o+1|0],o=o+1|0,t=i[h+124>>2]-1|0}n:{if((n&255)!=48)break n;for(;;){if(n=l[o+1|0],n-48>>>0>9)break n;if(o=o+1|0,t=t-1|0,(n|0)!=48)break}}for(i[h+124>>2]=t,n=0;w=n,n=n+1|0,l[o+w|0]-48>>>0<10;);n=t>>>0>>0?I:t,u=f+Z|0;n:{if(i[A+20>>2]<-1900)w=45;else{if((R|0)!=43|w+(n-t|0)>>>0<(s[i[h+12>>2]]==67?3:5)>>>0)break n;w=43}l[u|0]=w,n=n-1|0,Z=Z+1|0}if(n>>>0<=t>>>0|e>>>0<=Z>>>0)break k;for(;;){if(l[f+Z|0]=48,Z=Z+1|0,n=n-1|0,n>>>0<=t>>>0)break k;if(!(e>>>0>Z>>>0))break}}n=e-Z|0,n=n>>>0>t>>>0?t:n,i[h+124>>2]=n,l0(f+Z|0,o,n),Z=i[h+124>>2]+Z|0}if(r=r+1|0,!(e>>>0>Z>>>0))break}if(!e)break r}Z=(e|0)==(Z|0)?e-1|0:Z,n=0}l[f+Z|0]=0;break i}n=0}return B=h+128|0,n}function Xk(f,e,r,A,k,n,t,o,u,h,w){var _=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0;_=B-528|0,B=_,i[_+520>>2]=w,i[_+524>>2]=e;i:{if(g2(f,_+524|0)){i[n>>2]=i[n>>2]|4,f=0;break i}i[_+72>>2]=1095,C=_+72|0,y=o1(_+104|0,_+112|0,C),e=i[y>>2],i[_+100>>2]=e,i[_+96>>2]=e+400,e=B-16|0,B=e,i[C>>2]=0,i[C+4>>2]=0,i[C+8>>2]=0,B=e+16|0,e=B-16|0,B=e,W=_+60|0,i[W>>2]=0,i[W+4>>2]=0,i[W+8>>2]=0,B=e+16|0,e=B-16|0,B=e,p=_+48|0,i[p>>2]=0,i[p+4>>2]=0,i[p+8>>2]=0,B=e+16|0,e=B-16|0,B=e,Z=_+36|0,i[Z>>2]=0,i[Z+4>>2]=0,i[Z+8>>2]=0,B=e+16|0,e=B-16|0,B=e,I=_+24|0,i[I>>2]=0,i[I+4>>2]=0,i[I+8>>2]=0,B=e+16|0,w=B-16|0,B=w,e=_;r:{if(r){v=w+4|0,A=x0(A,99944),V[i[i[A>>2]+44>>2]](v,A),r=i[w+4>>2],l[_+92|0]=r,l[_+93|0]=r>>>8,l[_+94|0]=r>>>16,l[_+95|0]=r>>>24,V[i[i[A>>2]+32>>2]](v,A),r8(Z,v),l1(v),V[i[i[A>>2]+28>>2]](v,A),r8(p,v),l1(v),J=_,R=V[i[i[A>>2]+12>>2]](A)|0,i[J+88>>2]=R,J=_,R=V[i[i[A>>2]+16>>2]](A)|0,i[J+84>>2]=R,V[i[i[A>>2]+20>>2]](v,A),q1(C,v),z0(v),V[i[i[A>>2]+24>>2]](v,A),r8(W,v),l1(v),r=V[i[i[A>>2]+36>>2]](A)|0;break r}v=w+4|0,A=x0(A,99936),V[i[i[A>>2]+44>>2]](v,A),r=i[w+4>>2],l[_+92|0]=r,l[_+93|0]=r>>>8,l[_+94|0]=r>>>16,l[_+95|0]=r>>>24,V[i[i[A>>2]+32>>2]](v,A),r8(Z,v),l1(v),V[i[i[A>>2]+28>>2]](v,A),r8(p,v),l1(v),J=_,R=V[i[i[A>>2]+12>>2]](A)|0,i[J+88>>2]=R,J=_,R=V[i[i[A>>2]+16>>2]](A)|0,i[J+84>>2]=R,V[i[i[A>>2]+20>>2]](v,A),q1(C,v),z0(v),V[i[i[A>>2]+24>>2]](v,A),r8(W,v),l1(v),r=V[i[i[A>>2]+36>>2]](A)|0}for(i[e+20>>2]=r,B=w+16|0,i[h>>2]=i[u>>2],E=k&512,A=0,e=0;;){r=e;r:{e:{A:{f:{if((A|0)==4||g2(f,_+524|0))break f;w=0;k:{n:{t:{o:{u:switch(s[(_+92|0)+A|0]){case 1:if((A|0)==3)break e;k=i[f>>2],e=i[k+12>>2];l:{if((e|0)==i[k+16>>2]){e=V[i[i[k>>2]+36>>2]](k)|0;break l}e=i[e>>2]}if(V[i[i[o>>2]+12>>2]](o,1,e)|0){ro(_+12|0,f),KA(I,i[_+12>>2]);break o}i[n>>2]=i[n>>2]|4,f=0;break A;case 4:break k;case 2:break n;case 3:break t;case 0:break u;default:break r}if((A|0)==3)break e}for(;;){if(g2(f,_+524|0))break e;k=i[f>>2],e=i[k+12>>2];o:{if((e|0)==i[k+16>>2]){e=V[i[i[k>>2]+36>>2]](k)|0;break o}e=i[e>>2]}if(!(V[i[i[o>>2]+12>>2]](o,1,e)|0))break e;ro(_+12|0,f),KA(I,i[_+12>>2])}}t:{if(s[p+11|0]>>>7|0?e=i[p+4>>2]:e=s[p+11|0]&127,!e)break t;k=i[f>>2],e=i[k+12>>2];o:{if((e|0)==i[k+16>>2]){e=V[i[i[k>>2]+36>>2]](k)|0;break o}e=i[e>>2]}if(s[p+11|0]>>>7|0?k=i[p>>2]:k=p,(e|0)!=i[k>>2])break t;Y1(f),l[t|0]=0,s[p+11|0]>>>7|0?e=i[p+4>>2]:e=s[p+11|0]&127,e=e>>>0>1?p:r;break r}t:{if(s[Z+11|0]>>>7|0?e=i[Z+4>>2]:e=s[Z+11|0]&127,!e)break t;k=i[f>>2],e=i[k+12>>2];o:{if((e|0)==i[k+16>>2]){e=V[i[i[k>>2]+36>>2]](k)|0;break o}e=i[e>>2]}if(s[Z+11|0]>>>7|0?k=i[Z>>2]:k=Z,(e|0)!=i[k>>2])break t;Y1(f),l[t|0]=1,s[Z+11|0]>>>7|0?e=i[Z+4>>2]:e=s[Z+11|0]&127,e=e>>>0>1?Z:r;break r}if(s[p+11|0]>>>7|0?e=i[p+4>>2]:e=s[p+11|0]&127,e=!e,s[Z+11|0]>>>7|0?k=i[Z+4>>2]:k=s[Z+11|0]&127,!(e|!k)){i[n>>2]=i[n>>2]|4,f=0;break A}if(s[p+11|0]>>>7|0?e=i[p+4>>2]:e=s[p+11|0]&127,!e&&(s[Z+11|0]>>>7|0?e=i[Z+4>>2]:e=s[Z+11|0]&127,!e))break e;s[Z+11|0]>>>7|0?e=i[Z+4>>2]:e=s[Z+11|0]&127,l[t|0]=!e;break e}if(!(E|(r|A>>>0<2))&&(e=0,!((A|0)==2&s[_+95|0]!=0)))break r;J=_,R=C4(W),i[J+8>>2]=R,i[_+12>>2]=i[_+8>>2];n:{if(!A|s[(A+_|0)+91|0]>1)break n;for(;;){t:{if(J=_,R=a8(W),i[J+8>>2]=R,e=i[_+12>>2],(e|0)==i[_+8>>2]||!(V[i[i[o>>2]+12>>2]](o,1,i[e>>2])|0))break t;i[_+12>>2]=i[_+12>>2]+4;continue}break}if(J=_,R=C4(W),i[J+8>>2]=R,s[I+11|0]>>>7|0?w=i[I+4>>2]:w=s[I+11|0]&127,k=_+8|0,e=i[_+12>>2]-i[k>>2]>>2,w>>>0>=e>>>0&&(J=_,R=a8(I),i[J+8>>2]=R,v=J3(k,0-e|0),e=a8(I),w=C4(W),k=B-16|0,B=k,v=O8(v),e=O8(e),e=K2(v,O8(w),e-v&-4),B=k+16|0,!e))break n;J=_,R=C4(W),i[J+4>>2]=R,i[_+8>>2]=i[_+4>>2],i[_+12>>2]=i[_+8>>2]}for(i[_+8>>2]=i[_+12>>2];;){n:{if(J=_,R=a8(W),i[J+4>>2]=R,i[_+8>>2]==i[_+4>>2]||g2(f,_+524|0))break n;k=i[f>>2],e=i[k+12>>2];t:{if((e|0)==i[k+16>>2]){e=V[i[i[k>>2]+36>>2]](k)|0;break t}e=i[e>>2]}if((e|0)!=i[i[_+8>>2]>>2])break n;Y1(f),i[_+8>>2]=i[_+8>>2]+4;continue}break}if(!E||(J=_,R=a8(W),i[J+4>>2]=R,i[_+8>>2]==i[_+4>>2]))break e;i[n>>2]=i[n>>2]|4,f=0;break A}for(;;){k:{if(g2(f,_+524|0))break k;k=i[f>>2],e=i[k+12>>2];n:{if((e|0)==i[k+16>>2]){e=V[i[i[k>>2]+36>>2]](k)|0;break n}e=i[e>>2]}n:{if(V[i[i[o>>2]+12>>2]](o,64,e)|0){k=i[h>>2],(k|0)==i[_+520>>2]&&(Ei(u,h,_+520|0),k=i[h>>2]),i[h>>2]=k+4,i[k>>2]=e,w=w+1|0;break n}if(s[C+11|0]>>>7|0?k=i[C+4>>2]:k=s[C+11|0]&127,!k|!w|(e|0)!=i[_+84>>2])break k;e=i[_+100>>2],(e|0)==i[_+96>>2]&&(Ei(y,_+100|0,_+96|0),e=i[_+100>>2]),i[_+100>>2]=e+4,i[e>>2]=w,w=0}Y1(f);continue}break}e=i[_+100>>2],!w|(e|0)==i[y>>2]||(i[_+96>>2]==(e|0)&&(Ei(y,_+100|0,_+96|0),e=i[_+100>>2]),i[_+100>>2]=e+4,i[e>>2]=w);k:{if(i[_+20>>2]<=0)break k;n:{if(!g2(f,_+524|0)){k=i[f>>2],e=i[k+12>>2];t:{if((e|0)==i[k+16>>2]){e=V[i[i[k>>2]+36>>2]](k)|0;break t}e=i[e>>2]}if((e|0)==i[_+88>>2])break n}i[n>>2]=i[n>>2]|4,f=0;break A}for(;;){if(Y1(f),i[_+20>>2]<=0)break k;n:{if(!g2(f,_+524|0)){k=i[f>>2],e=i[k+12>>2];t:{if((e|0)==i[k+16>>2]){e=V[i[i[k>>2]+36>>2]](k)|0;break t}e=i[e>>2]}if(V[i[i[o>>2]+12>>2]](o,64,e)|0)break n}i[n>>2]=i[n>>2]|4,f=0;break A}i[h>>2]==i[_+520>>2]&&Ei(u,h,_+520|0),k=i[f>>2],e=i[k+12>>2];n:{if((e|0)==i[k+16>>2]){k=V[i[i[k>>2]+36>>2]](k)|0;break n}k=i[e>>2]}e=i[h>>2],i[h>>2]=e+4,i[e>>2]=k,i[_+20>>2]=i[_+20>>2]-1}}if(e=r,i[u>>2]!=i[h>>2])break r;i[n>>2]=i[n>>2]|4,f=0;break A}f:{if(!r)break f;for(w=1;;){if(s[r+11|0]>>>7|0?e=i[r+4>>2]:e=s[r+11|0]&127,e>>>0<=w>>>0)break f;k:{if(!g2(f,_+524|0)){A=i[f>>2],e=i[A+12>>2];n:{if((e|0)==i[A+16>>2]){e=V[i[i[A>>2]+36>>2]](A)|0;break n}e=i[e>>2]}if(s[r+11|0]>>>7|0?A=i[r>>2]:A=r,(e|0)==i[A+(w<<2)>>2])break k}i[n>>2]=i[n>>2]|4,f=0;break A}Y1(f),w=w+1|0}}if(f=1,i[y>>2]==i[_+100>>2])break A;if(f=0,i[_+12>>2]=0,K1(C,i[y>>2],i[_+100>>2],_+12|0),i[_+12>>2]){i[n>>2]=i[n>>2]|4;break A}f=1}l1(I),l1(Z),l1(p),l1(W),z0(C),e=i[y>>2],i[y>>2]=0,e&&V[i[y+4>>2]](e);break i}e=r}A=A+1|0}}return B=_+528|0,f}function xs(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0;A=B-224|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+56|0]=0,l[A+67|0]=0,r0(A+200|0,2,100,A+56|0),l[A+67|0]>=0)break i;G(i[A+56>>2]);break i}if(k=i[19565],i[A+200>>2]=i[19564],i[A+204>>2]=k,n=A+208|0,l[78275]>=0){k=i[19567],i[n>>2]=i[19566],i[n+4>>2]=k,i[n+8>>2]=i[19568];break i}_0(n,i[19566],i[19567])}l[A+219|0]<0&&G(i[A+208>>2]),C=s[e+48|0];i:{if(C>>>0>=3){h4(f,e,13698);break i}n=t2(r);r:{e:{A:{if((C|0)!=2){I=t2(r);break A}I=D0(r)}if(I>>>0<=2e4){if(!I)break r;E=n&15,H=(E|0)!=0&(C-1&255)>>>0<2,a=e+56|0,J=i[13631],S=J-12|0,q=i[13632]-12|0,d=i[13635]-12|0,R=i[13633],A0=R-12|0,f0=i[13640],n0=i[13639],h0=i[13637],j=i[13636],L=i[13634],D=A+68|0,p=A- -64|0,p0=A+120|0,w=A+24|6,X0=(n>>>4&15)-4|0,G0=(n>>>12|0)-4|0,I0=(n>>>8&15)-4|0;break e}i[A+64>>2]=54496,i[A+120>>2]=54516,e=i[13633],i[A+56>>2]=e,n=A+56|0,i[n+i[e-12>>2]>>2]=i[13634],i[A+60>>2]=0,e=n+i[i[A+56>>2]-12>>2]|0,k=A+68|0,b0(e,k),i[e+72>>2]=0,i[e+76>>2]=-1,e=i[13635],i[A+64>>2]=e,r=A- -64|0,i[r+i[e-12>>2]>>2]=i[13636],e=i[13632],i[A+56>>2]=e,i[n+i[e-12>>2]>>2]=i[13637],i[A+120>>2]=54516,i[A+56>>2]=54476,i[A+64>>2]=54496,k=$0(k),i[k>>2]=53552,i[A+108>>2]=0,i[A+112>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+116>>2]=24,x(H0(x(L0(x(r,18738,18),I),19006,44),2e4),17597,7),e=A+24|0,i2(e,k),r0(f,6,1e3,e),l[A+35|0]<0&&G(i[A+24>>2]),f=i[13631],i[A+56>>2]=f,i[i[f-12>>2]+(A+56|0)>>2]=i[13639],i[A+64>>2]=i[13640],i[k>>2]=53552,l[A+111|0]<0&&G(i[A+100>>2]),K0(k),T0(A+120|0);break i}for(;;){l[A+28|0]=0,i[A+24>>2]=0,X[w+14>>1]=0,X[w+16>>1]=0,X[w+18>>1]=0,X[w+20>>1]=0,X[w+8>>1]=0,X[w+10>>1]=0,X[w+12>>1]=0,X[w+14>>1]=0,X[w>>1]=0,X[w+2>>1]=0,X[w+4>>1]=0,X[w+6>>1]=0;e:{A:{if((C|0)==2){Q0=A,F0=D0(r),i[Q0+24>>2]=F0;break A}if(Q0=A,F0=t2(r),i[Q0+24>>2]=F0,!C)break e}Q0=A,F0=t2(r)&15,l[Q0+28|0]=F0}k=t2(r),i[A+32>>2]=0,i[A+36>>2]=0,X[A+30>>1]=k,n=A;e:{A:{f:switch(X0|0){case 0:k=D0(r),t=0;break A;case 4:break f;default:break e}k=D0(r),i[A+32>>2]=0,i[A+36>>2]=k,k=D0(r)|i[A+32>>2],t=i[A+36>>2]}i[n+32>>2]=k,i[n+36>>2]=t}e:{A:{f:{if(y=t2(r),y>>>0<=32){if(W=0,y)break f;break A}i[A+56>>2]=R,i[A+64>>2]=54496,i[A+120>>2]=54516,n=A+56|0,i[n+i[A0>>2]>>2]=L,i[A+60>>2]=0,k=n+i[i[A+56>>2]-12>>2]|0,b0(k,D),i[k+72>>2]=0,i[k+76>>2]=-1,i[i[d>>2]+p>>2]=j,i[n+i[q>>2]>>2]=h0,i[A+120>>2]=54516,i[A+56>>2]=54476,i[A+64>>2]=54496,n=$0(D),i[n>>2]=53552,i[A+108>>2]=0,i[A+112>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+116>>2]=24,x(H0(x(H0(x(p,18533,31),y),18565,26),32),31337,2),k=A+12|0,i2(k,n),r0(f,6,1e3,k),l[A+23|0]<0&&G(i[A+12>>2]),i[A+56>>2]=J,i[i[S>>2]+(A+56|0)>>2]=n0,i[A+64>>2]=f0,i[n>>2]=53552,l[A+111|0]<0&&G(i[A+100>>2]),K0(n),T0(p0);break e}for(;;){i[A+88>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[p>>2]=0,i[p+4>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0;f:{if(!H)break f;k:switch(E-4|0){case 0:Q0=A,F0=D0(r),i[Q0+56>>2]=F0,i[A+60>>2]=0;break f;case 4:break k;default:break f}k=D0(r),i[A+56>>2]=0,i[A+60>>2]=k,t=D0(r),k=i[A+60>>2],i[A+56>>2]=i[A+56>>2]|t,i[A+60>>2]=k}i[A+64>>2]=0,i[A+68>>2]=0,n=A;f:{k:{n:switch(G0|0){case 0:k=D0(r),t=0;break k;case 4:break n;default:break f}k=D0(r),i[A+64>>2]=0,i[A+68>>2]=k,k=D0(r)|i[A+64>>2],t=i[A+68>>2]}i[n+64>>2]=k,i[n+68>>2]=t}i[A+72>>2]=0,i[A+76>>2]=0;f:{k:{n:switch(I0|0){case 0:k=D0(r),t=0;break k;case 4:break n;default:break f}k=D0(r),i[A+72>>2]=0,i[A+76>>2]=k,k=D0(r)|i[A+72>>2],t=i[A+76>>2]}i[n+72>>2]=k,i[n+76>>2]=t}f:{k=i[A+44>>2];k:{if(k>>>0>2]){if(n=i[A+60>>2],i[k>>2]=i[A+56>>2],i[k+4>>2]=n,n=i[A+76>>2],i[k+16>>2]=i[A+72>>2],i[k+20>>2]=n,n=i[p+4>>2],i[k+8>>2]=i[p>>2],i[k+12>>2]=n,i[k+32>>2]=0,i[k+24>>2]=0,i[k+28>>2]=0,n=i[A+84>>2],t=i[A+80>>2],(n|0)!=(t|0)){if(u=n-t|0,(u|0)<0)break f;o=U(u),i[k+28>>2]=o,i[k+24>>2]=o,n=o+u|0,i[k+32>>2]=n,l0(o,t,u),i[k+28>>2]=n}k=k+40|0;break k}k=0;n:{t:{o:{if(u=i[A+44>>2],_=i[A+40>>2],o=(u-_|0)/40|0,h=o+1|0,h>>>0<107374183){if(t=(i[A+48>>2]-_|0)/40|0,n=t<<1,v=t>>>0>=53687091?107374182:n>>>0>h>>>0?n:h,v){if(v>>>0>=107374183)break o;k=U(m(v,40))}if(t=i[A+60>>2],n=m(o,40)+k|0,i[n>>2]=i[A+56>>2],i[n+4>>2]=t,Z=i[A+64>>2],h=i[A+68>>2],o=i[A+72>>2],t=i[A+76>>2],i[n+32>>2]=0,i[n+24>>2]=0,i[n+28>>2]=0,i[n+16>>2]=o,i[n+20>>2]=t,i[n+8>>2]=Z,i[n+12>>2]=h,t=i[A+84>>2],h=i[A+80>>2],(t|0)!=(h|0)){if(Z=t-h|0,(Z|0)<0)break t;o=U(Z),i[n+24>>2]=o,t=o+Z|0,i[n+32>>2]=t,l0(o,h,Z),i[n+28>>2]=t}Z=m(v,40)+k|0,t=n+40|0;u:{if((u|0)==(_|0)){k=n;break u}for(;o=u-40|0,h=i[o+4>>2],k=n-40|0,i[k>>2]=i[o>>2],i[k+4>>2]=h,h=i[o+20>>2],i[k+16>>2]=i[o+16>>2],i[k+20>>2]=h,h=i[o+12>>2],i[k+8>>2]=i[o+8>>2],i[k+12>>2]=h,h=n-8|0,i[h>>2]=0,v=u-16|0,i[n-16>>2]=i[v>>2],i[n-12>>2]=i[u-12>>2],n=u-8|0,i[h>>2]=i[n>>2],i[n>>2]=0,i[v>>2]=0,i[v+4>>2]=0,n=k,u=o,(o|0)!=(_|0););u=i[A+44>>2],_=i[A+40>>2]}if(i[A+48>>2]=Z,i[A+44>>2]=t,i[A+40>>2]=k,(u|0)!=(_|0))for(;k=i[u-16>>2],k&&(i[u-12>>2]=k,G(k)),u=u-40|0,(_|0)!=(u|0););_&&G(_),k=t;break n}y0(),P()}_2(),P()}y0(),P()}}if(i[A+44>>2]=k,k=i[A+80>>2],k&&(i[A+84>>2]=k,G(k)),W=W+1|0,(y|0)==(W|0))break A;continue}break}y0(),P()}if(s[r+20|0])break e;k=i[e+60>>2];A:{if(k>>>0>2]){n=i[A+28>>2],i[k>>2]=i[A+24>>2],i[k+4>>2]=n,n=i[A+36>>2],i[k+8>>2]=i[A+32>>2],i[k+12>>2]=n,i[k+24>>2]=0,i[k+16>>2]=0,i[k+20>>2]=0,t=i[A+40>>2],n=i[A+44>>2],br(k+16|0,t,n,(n-t|0)/40|0),n=k+32|0;break A}n=vn(a,A+24|0)}i[e+60>>2]=n}if(n=i[A+40>>2],n){if(W=n,k=i[A+44>>2],(n|0)!=(k|0)){for(;t=i[k-16>>2],t&&(i[k-12>>2]=t,G(t)),k=k-40|0,(n|0)!=(k|0););W=i[A+40>>2]}i[A+44>>2]=n,G(W)}if(y>>>0>=33)break i;if(z=z+1|0,(z|0)==(I|0))break}}if(s[r+20|0]==1){if(l[A+56|0]=0,l[A+67|0]=0,r0(f,2,100,A+56|0),l[A+67|0]>=0)break i;G(i[A+56>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,e=f+8|0,l[78275]>=0){f=i[19567],i[e>>2]=i[19566],i[e+4>>2]=f,i[e+8>>2]=i[19568];break i}_0(e,i[19566],i[19567])}B=A+224|0}function zs(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0;o=B-16|0,B=o,n=i[k>>2],t=n+i[r>>2]|0;i:{if(i[r+4>>2]-t>>>0<=(A|0)/8<<2>>>0){if(e=U(56),i[o+4>>2]=e,i[o+8>>2]=50,i[o+12>>2]=-2147483592,r=s[6770]|s[6771]<<8|(s[6772]<<16|s[6773]<<24),A=s[6766]|s[6767]<<8|(s[6768]<<16|s[6769]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+50|0]=0,r=s[6814]|s[6815]<<8,l[e+48|0]=r,l[e+49|0]=r>>>8,r=s[6810]|s[6811]<<8|(s[6812]<<16|s[6813]<<24),A=s[6806]|s[6807]<<8|(s[6808]<<16|s[6809]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[6802]|s[6803]<<8|(s[6804]<<16|s[6805]<<24),A=s[6798]|s[6799]<<8|(s[6800]<<16|s[6801]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[6794]|s[6795]<<8|(s[6796]<<16|s[6797]<<24),A=s[6790]|s[6791]<<8|(s[6792]<<16|s[6793]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[6786]|s[6787]<<8|(s[6788]<<16|s[6789]<<24),A=s[6782]|s[6783]<<8|(s[6784]<<16|s[6785]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[6778]|s[6779]<<8|(s[6780]<<16|s[6781]<<24),A=s[6774]|s[6775]<<8|(s[6776]<<16|s[6777]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,136,o+4|0),l[o+15|0]>=0)break i;G(i[o+4>>2]);break i}u=s[t|0],h=s[t+1|0];r:{if((A|0)==32){n=n+4|0,t=s[t+3|0]|(h<<16|u<<24|s[t+2|0]<<8);break r}n=n+2|0,t=(h<<16|u<<24)>>16}i[k>>2]=n,i[e+4>>2]=t,n=i[k>>2],t=n+i[r>>2]|0,u=s[t|0],h=s[t+1|0];r:{if((A|0)==32){n=n+4|0,t=s[t+3|0]|(h<<16|u<<24|s[t+2|0]<<8);break r}n=n+2|0,t=(h<<16|u<<24)>>16}i[k>>2]=n,i[e+8>>2]=t,t=i[r>>2],w=i[k>>2],n=t+w|0,u=s[n|0],h=s[n+1|0];r:{if((A|0)==32){n=s[n+3|0]|(h<<16|u<<24|s[n+2|0]<<8),u=4;break r}n=h|u<<8,u=2}i[k>>2]=u+w,i[e+12>>2]=n,w=i[k>>2],n=w+t|0,u=s[n|0],h=s[n+1|0];r:{if((A|0)==32){A=s[n+3|0]|(h<<16|u<<24|s[n+2|0]<<8),n=4;break r}A=h|u<<8,n=2}if(i[k>>2]=n+w,i[e+16>>2]=A,A=i[k>>2],n=s[A+t|0],i[k>>2]=A+1,n){if(e=U(56),i[o+4>>2]=e,i[o+8>>2]=51,i[o+12>>2]=-2147483592,r=s[12359]|s[12360]<<8|(s[12361]<<16|s[12362]<<24),A=s[12355]|s[12356]<<8|(s[12357]<<16|s[12358]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+51|0]=0,r=s[12402]|s[12403]<<8|(s[12404]<<16|s[12405]<<24),l[e+47|0]=r,l[e+48|0]=r>>>8,l[e+49|0]=r>>>16,l[e+50|0]=r>>>24,r=s[12399]|s[12400]<<8|(s[12401]<<16|s[12402]<<24),A=s[12395]|s[12396]<<8|(s[12397]<<16|s[12398]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[12391]|s[12392]<<8|(s[12393]<<16|s[12394]<<24),A=s[12387]|s[12388]<<8|(s[12389]<<16|s[12390]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[12383]|s[12384]<<8|(s[12385]<<16|s[12386]<<24),A=s[12379]|s[12380]<<8|(s[12381]<<16|s[12382]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[12375]|s[12376]<<8|(s[12377]<<16|s[12378]<<24),A=s[12371]|s[12372]<<8|(s[12373]<<16|s[12374]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[12367]|s[12368]<<8|(s[12369]<<16|s[12370]<<24),A=s[12363]|s[12364]<<8|(s[12365]<<16|s[12366]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,136,o+4|0),l[o+15|0]>=0)break i;G(i[o+4>>2]);break i}if(t=i[r+4>>2]+((A^-1)-t|0)|0,u=m(i[e+16>>2],i[e+12>>2]),A=u>>>3|0,t>>>0>>0){if(e=U(64),i[o+4>>2]=e,i[o+8>>2]=57,i[o+12>>2]=-2147483584,r=s[14723]|s[14724]<<8|(s[14725]<<16|s[14726]<<24),A=s[14719]|s[14720]<<8|(s[14721]<<16|s[14722]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+57|0]=0,l[e+56|0]=s[14775],r=s[14771]|s[14772]<<8|(s[14773]<<16|s[14774]<<24),A=s[14767]|s[14768]<<8|(s[14769]<<16|s[14770]<<24),l[e+48|0]=A,l[e+49|0]=A>>>8,l[e+50|0]=A>>>16,l[e+51|0]=A>>>24,l[e+52|0]=r,l[e+53|0]=r>>>8,l[e+54|0]=r>>>16,l[e+55|0]=r>>>24,r=s[14763]|s[14764]<<8|(s[14765]<<16|s[14766]<<24),A=s[14759]|s[14760]<<8|(s[14761]<<16|s[14762]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[14755]|s[14756]<<8|(s[14757]<<16|s[14758]<<24),A=s[14751]|s[14752]<<8|(s[14753]<<16|s[14754]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[14747]|s[14748]<<8|(s[14749]<<16|s[14750]<<24),A=s[14743]|s[14744]<<8|(s[14745]<<16|s[14746]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[14739]|s[14740]<<8|(s[14741]<<16|s[14742]<<24),A=s[14735]|s[14736]<<8|(s[14737]<<16|s[14738]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[14731]|s[14732]<<8|(s[14733]<<16|s[14734]<<24),A=s[14727]|s[14728]<<8|(s[14729]<<16|s[14730]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,136,o+4|0),l[o+15|0]>=0)break i;G(i[o+4>>2]);break i}t=e+20|0,h=i[e+20>>2],n=i[e+24>>2]-h|0;r:{if(n>>>0>>0){L2(t,A-n|0);break r}if(A>>>0>=n>>>0)break r;i[e+24>>2]=A+h}if(u>>>0>=8&&F2(i[t>>2],i[r>>2]+i[k>>2]|0,A),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=o+16|0}function ZA(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0,r2=0,n2=0,s2=0,W2=0,y2=0,x2=0,T2=0,O2=0,q2=0,b2=0,e1=0,A1=0,h1=0,B1=0,p1=0,W1=0,X1=0,N1=0,r4=0,e4=0;n=B+-64|0,B=n;i:{r:{u=i[f+276>>2],y2=(A|0)>(u|0)?u:A;e:{if((y2|0)<=(r|0)||(n2=i[f+272>>2],x2=(k|0)>(n2|0)?n2:k,(x2|0)<=0))break e;for(A1=e?1:2,h1=e?2:1,y=i[f+40>>2],T2=y<<1,O2=i[f+124>>2],A=i[O2+16832>>2],q2=A-8|0,D=-1<>2],G0=0-y<<1,S=y<<1,S0=0-S<<1;;){for(F0=r<<2,b2=F0-1|0,N1=m(y,F0),r4=m(e1,p1)+W1|0,e4=m(F0>>2,n2)+X1|0,W2=0,c0=0;;){v=c0<<2,f0=s[(v>>2)+e4|0]&3;A:{if(!f0)break A;A=i[f+4>>2],u=A+(v+N1<<1)|0;f:{if(!e){X[n+32>>1]=Q[u>>1],X[n>>1]=Q[u+G0>>1],X[n+34>>1]=Q[u+S>>1],X[n+2>>1]=Q[u+S0>>1],t=S<<1,X[n+36>>1]=Q[t+u>>1],C=Q[u+p0>>1],X[n+4>>1]=C,X[n+38>>1]=Q[u+X0>>1],o=s2<<1,I=Q[o+u>>1],X[n+6>>1]=I,A=u+2|0,X[n+40>>1]=Q[A>>1],X[n+8>>1]=Q[A+G0>>1],X[n+42>>1]=Q[A+S>>1],X[n+10>>1]=Q[A+S0>>1],X[n+44>>1]=Q[A+t>>1],X[n+12>>1]=Q[A+p0>>1],X[n+46>>1]=Q[A+X0>>1],X[n+14>>1]=Q[A+o>>1],A=u+4|0,X[n+48>>1]=Q[A>>1],X[n+16>>1]=Q[A+G0>>1],X[n+50>>1]=Q[A+S>>1],X[n+18>>1]=Q[A+S0>>1],X[n+52>>1]=Q[A+t>>1],X[n+20>>1]=Q[A+p0>>1],X[n+54>>1]=Q[A+X0>>1],X[n+22>>1]=Q[A+o>>1],k=u+6|0,X[n+56>>1]=Q[k>>1],A=Q[k+G0>>1],X[n+24>>1]=A,X[n+58>>1]=Q[k+S>>1],_=Q[k+S0>>1],X[n+26>>1]=_,X[n+60>>1]=Q[k+t>>1],w=Q[k+p0>>1],X[n+28>>1]=w,X[n+62>>1]=Q[k+X0>>1],k=k+o|0;break f}A=A+((W2<>1]|Q[A+6>>1]<<16,i[n+32>>2]=Q[A>>1]|Q[A+2>>1]<<16,i[n+36>>2]=k,X[n>>1]=Q[u-2>>1],X[n+2>>1]=Q[u-4>>1],C=Q[u-6>>1],X[n+4>>1]=C,I=Q[u-8>>1],X[n+6>>1]=I,k=A+T2|0,t=Q[k+4>>1]|Q[k+6>>1]<<16,i[n+40>>2]=Q[k>>1]|Q[k+2>>1]<<16,i[n+44>>2]=t,k=u+S|0,X[n+8>>1]=Q[k-2>>1],X[n+10>>1]=Q[k-4>>1],X[n+12>>1]=Q[k-6>>1],X[n+14>>1]=Q[k-8>>1],k=A+Q0|0,t=Q[k+4>>1]|Q[k+6>>1]<<16,i[n+48>>2]=Q[k>>1]|Q[k+2>>1]<<16,i[n+52>>2]=t,k=u+Q0|0,X[n+16>>1]=Q[k-2>>1],X[n+18>>1]=Q[k-4>>1],X[n+20>>1]=Q[k-6>>1],X[n+22>>1]=Q[k-8>>1],A=A+X0|0,k=Q[A+4>>1]|Q[A+6>>1]<<16,i[n+56>>2]=Q[A>>1]|Q[A+2>>1]<<16,i[n+60>>2]=k,k=u+X0|0,A=Q[k-2>>1],X[n+24>>1]=A,_=Q[k-4>>1],X[n+26>>1]=_,w=Q[k-6>>1],X[n+28>>1]=w,k=k-8|0}if(r2=Q[k>>1],X[n+30>>1]=r2,E=i[f+168>>2],k=v>>E,(k|0)<0||(Z=i[f+172>>2],(Z|0)<=(k|0)))break i;if(t=F0>>E,(t|0)<0||(z=i[f+176>>2],(z|0)<=(t|0)))break r;J=i[f+160>>2],H=J+m(k,3)|0,h=m(m(t,Z),3),q=H+h|0,I0=l[q+2|0];f:{if(!e){if(k=b2>>E,(k|0)<0|(k|0)>=(z|0))break r;k=(H+m(m(k,Z),3)|0)+2|0;break f}if(k=v-1>>E,(k|0)<0|k>>>0>=Z>>>0)break i;k=(h+(J+m(k,3)|0)|0)+2|0}if(o=i[f+148>>2],t=v>>o,(t|0)<0||(n0=i[f+152>>2],(n0|0)<=(t|0)))break i;if(o=F0>>o,(o|0)<0|(o|0)>=i[f+156>>2])break r;if(R=Q[n+56>>1],h0=R+(Q[n+60>>1]-(Q[n+58>>1]<<1)|0)|0,p=h0>>31,j=((w&65535)-(_<<1)|0)+A|0,_=j>>31,w=Q[n+32>>1],L=w+(Q[n+36>>1]-(Q[n+34>>1]<<1)|0)|0,d=L>>31,A0=Q[n>>1],W=A0+(C-(Q[n+2>>1]<<1)|0)|0,C=W>>31,p=(p^h0)-p|0,h0=(_^j)-_|0,j=p+h0|0,d=(d^L)-d|0,L=(C^W)-C|0,W=d+L|0,k=(I0+l[k|0]|0)+1>>1,o=i[i[f+52>>2]+(Q[((i[f+140>>2]+m(t,24)|0)+m(m(o,n0),24)|0)+2>>1]<<2)>>2],t=k+i[o+764>>2]|0,t=(t|0)>=51?51:t,_=s[((t|0)>0?t:0)+42960|0]<=(_|0))break A;t=A,A=(i[o+768>>2]+(k+(f0<<1)|0)|0)-2|0,A=(A|0)>=53?53:A,C=s[((A|0)>0?A:0)+43024|0]<>>2|0,k=0;f:{if(f0>>>0<=W<<1>>>0||(I0=w-Q[n+38>>1]|0,o=I0>>31,n0=I-A0|0,I=n0>>31,k=0,(o^I0)-o+((I^n0)-I)>>>0>=_>>>3>>>0))break f;o=A0-w|0,k=o>>31,k=((k^o)-k|0)>1}o=k;f:{if(f0>>>0<=j<<1>>>0||(I=R-Q[n+62>>1]|0,k=I>>31,A0=r2-t|0,w=A0>>31,(k^I)-k+((w^A0)-w)>>>0>=_>>>3>>>0))break f;k=t-R|0,A=k>>31,A=((A^k)-A|0)>1}w=s[O2+8812|0];f:{if(!e){if(t=b2>>E,w){if((t|0)<0|(t|0)>=(z|0))break r;k=!(s[(H+m(m(t,Z),3)|0)+1|0]&4)}else k=1;if((t|0)<0|(t|0)>=(z|0))break r;t=H+m(m(t,Z),3)|0;break f}if(t=v-1>>E,w){if((t|0)<0|t>>>0>=Z>>>0)break i;k=!(s[(h+(J+m(t,3)|0)|0)+1|0]&4)}else k=1;if((t|0)<0|t>>>0>=Z>>>0)break i;t=h+(J+m(t,3)|0)|0}for(A0=A&o,z=!(s[t+1|0]&8)&k,A=_+(_>>>1|0)>>>3|0,f0=z&A>>>0>h0+L>>>0,k=A>>>0>p+d>>>0,A=s[q|0]|s[q+1|0]<<8,_=!(A&2048)&(!w|!(A&1024)),r2=k&_,t=C<<1,A=0,d=0-C|0,I0=m(C,10),n0=u+2|0,h0=u-4|0,j=u-2|0,I=C>>1,q=0-I|0,L=u+S|0;;){Z=A<<3,k=Z+n|0,o=Q[k+2>>1],h=Z+(n+32|0)|0,J=Q[h+4>>1],Z=Q[h+2>>1],v=Q[h>>1],H=Q[k+4>>1],E=Q[k>>1];f:{if(!A0){if(k=(m(v-E|0,9)+m(Z-o|0,-3)|0)+8>>4,h=k>>31,(I0|0)<=((k^h)-h|0))break f;h=(k|0)<(d|0)?d:(k|0)<(C|0)?k:C;k:{n:{if(!e){if(z&&(k=h+E|0,X[u+(A-y<<1)>>1]=(k|0)>=0?(k|0)<(D|0)?k:D:0),!_)break k;k=v-h|0,w=(k|0)>=0?(k|0)<(D|0)?k:D:0,k=A;break n}if(z&&(k=h+E|0,X[j+(m(A,y)<<1)>>1]=(k|0)>=0?(k|0)<(D|0)?k:D:0),!_)break k;k=v-h|0,w=(k|0)>=0?(k|0)<(D|0)?k:D:0,k=m(A,y)}X[(k<<1)+u>>1]=w}if(f0&&(k=h+(((E+H|0)+1>>>1|0)-o|0)>>1,k=((k|0)<(q|0)?q:(k|0)<(I|0)?k:I)+o|0,X[(e?h0+(m(A,y)<<1)|0:u+(A-T2<<1)|0)>>1]=(k|0)>=0?(k|0)<(D|0)?k:D:0),!r2)break f;if(k=((v+J|0)+1>>>1)-(h+Z)>>1,k=Z+((k|0)<(q|0)?q:(k|0)<(I|0)?k:I)|0,k=(k|0)>=0?(k|0)<(D|0)?k:D:0,!e){X[(A<<1)+L>>1]=k;break f}X[n0+(m(A,y)<<1)>>1]=k;break f}if(R=Z-t|0,p=v+E|0,W=p+Z|0,w=(W+J|0)+2>>>2|0,a=t+Z|0,w=(w|0)<(R|0)?R:(w|0)<(a|0)?w:a,a=o-t|0,p=o+p|0,R=(p+H|0)+2>>>2|0,Y0=t+o|0,R=(R|0)<(a|0)?a:(R|0)<(Y0|0)?R:Y0,a=J-t|0,h=((W+m(J,3)|0)+(Q[h+6>>1]<<1)|0)+4>>>3|0,W=t+J|0,h=(h|0)<(a|0)?a:(h|0)<(W|0)?h:W,W=H-t|0,k=((p+m(H,3)|0)+(Q[k+6>>1]<<1)|0)+4>>>3|0,p=t+H|0,p=(k|0)<(W|0)?W:(k|0)<(p|0)?k:p,W=v-t|0,Y0=v<<1,a=(E<<1)+4|0,k=J+((Y0+(a+o|0)|0)+(Z<<1)|0)>>>3|0,v=t+v|0,v=(k|0)<(W|0)?W:(k|0)<(v|0)?k:v,J=E-t|0,k=Z+(Y0+((H+a|0)+(o<<1)|0)|0)>>>3|0,o=t+E|0,o=(k|0)<(J|0)?J:(k|0)<(o|0)?k:o,!e){if(k=u+(A<<1)|0,!z){if(!_)break f;X[k>>1]=v,X[k+S>>1]=w,X[k+Q0>>1]=h;break f}if(!_){X[k+G0>>1]=o,X[k+s2>>1]=R,X[k+p0>>1]=p;break f}X[k+G0>>1]=o,X[k>>1]=v,X[k+s2>>1]=R,X[k+S>>1]=w,X[k+p0>>1]=p,X[k+Q0>>1]=h;break f}if(k=u+(m(A,y)<<1)|0,z&&(X[k-2>>1]=o),_&&(X[k>>1]=v),z&&(X[k-4>>1]=R),_&&(X[k+2>>1]=w),z&&(X[k-6>>1]=p),!_)break f;X[k+4>>1]=h}if(A=A+1|0,(A|0)==4)break}}if(W2=W2+1|0,c0=c0+h1|0,!((x2|0)>(c0|0)))break}if(e1=e1+1|0,r=r+A1|0,!((y2|0)>(r|0)))break}}B=n- -64|0;return}C0(3720,8453,119,3372),P()}C0(3758,8453,118,3372),P()}function Hs(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0;if(k=B-192|0,B=k,i[k+92>>2]=54820,A=i[13708],i[k+36>>2]=A,o=k+36|0,i[o+i[A-12>>2]>>2]=i[13709],A=o+i[i[k+36>>2]-12>>2]|0,n=k+40|0,b0(A,n),i[A+72>>2]=0,i[A+76>>2]=-1,i[k+92>>2]=54820,i[k+36>>2]=54800,Z=$0(n),i[Z>>2]=53552,i[k+80>>2]=0,i[k+84>>2]=0,i[k+72>>2]=0,i[k+76>>2]=0,i[k+88>>2]=16,A=B-160|0,B=A,i[A+68>>2]=54820,n=i[13708],i[A+12>>2]=n,t=A+12|0,i[t+i[n-12>>2]>>2]=i[13709],n=t+i[i[A+12>>2]-12>>2]|0,u=A+16|0,b0(n,u),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,n=$0(u),i[n>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,u=A+148|0,R2(u,e,r),w=t,h=u,t=l[A+159|0],u=(t|0)<0,x(w,u?i[A+148>>2]:h,u?i[A+152>>2]:t),l[A+159|0]<0&&G(i[A+148>>2]),t=A+148|0,W0(t,r),w=t,t=l[A+159|0],u=(t|0)<0,x(A+12|0,u?i[A+148>>2]:w,u?i[A+152>>2]:t),l[A+159|0]<0&&G(i[A+148>>2]),t=x(H0(x(A+12|0,20352,9),s[e+48|0]),31338,1),u=A+148|0,W0(u,r),w=u,u=l[A+159|0],h=(u|0)<0,x(t,h?i[A+148>>2]:w,h?i[A+152>>2]:u),l[A+159|0]<0&&G(i[A+148>>2]),t=x(t,19951,7),u=i[i[t>>2]-12>>2]+t|0,i[u+4>>2]=i[u+4>>2]&-75|8,x(L0(t,i[e+52>>2]),31338,1),t=k+180|0,i2(t,n),u=i[13707],i[A+12>>2]=u,i[i[u-12>>2]+(A+12|0)>>2]=i[13710],i[n>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(n),T0(A+68|0),B=A+160|0,A=l[k+191|0],n=(A|0)<0,x(o,n?i[k+180>>2]:t,n?i[k+184>>2]:A),l[k+191|0]<0&&G(i[k+180>>2]),A=k+180|0,W0(A,r),t=A,A=l[k+191|0],n=(A|0)<0,x(k+36|0,n?i[k+180>>2]:t,n?i[k+184>>2]:A),l[k+191|0]<0&&G(i[k+180>>2]),A=k+36|0,x(H0(x(A,20755,17),s[e+56|0]+1|0),31338,1),s[e+57|0]==1&&(n=k+180|0,W0(n,r),t=A,u=n,A=l[k+191|0],n=(A|0)<0,x(t,n?i[k+180>>2]:u,n?i[k+184>>2]:A),l[k+191|0]<0&&G(i[k+180>>2]),A=x(L0(x(k+36|0,19490,11),Q[e+58>>1]),31338,1),n=k+180|0,W0(n,r),t=n,n=l[k+191|0],o=(n|0)<0,x(A,o?i[k+180>>2]:t,o?i[k+184>>2]:n),l[k+191|0]<0&&G(i[k+180>>2]),A=x(H0(x(A,19767,15),s[e+60|0]),31338,1),n=k+180|0,W0(n,r),t=n,n=l[k+191|0],o=(n|0)<0,x(A,o?i[k+180>>2]:t,o?i[k+184>>2]:n),l[k+191|0]<0&&G(i[k+180>>2]),n=x(A,20879,21),A=s[e+61|0],A=(A|0)==1?3125:(A|0)==2?5488:6156,A=x(x(n,A,G2(A)),31338,1),n=k+180|0,W0(n,r),t=n,n=l[k+191|0],o=(n|0)<0,x(A,o?i[k+180>>2]:t,o?i[k+184>>2]:n),l[k+191|0]<0&&G(i[k+180>>2]),n=x(A,19659,15),A=i[(s[e+62|0]<<2)+74912>>2],A=x(x(n,A,G2(A)),31338,1),n=k+180|0,W0(n,r),t=n,n=l[k+191|0],o=(n|0)<0,x(A,o?i[k+180>>2]:t,o?i[k+184>>2]:n),l[k+191|0]<0&&G(i[k+180>>2]),A=x(H0(x(A,20498,11),s[e+63|0]+8|0),31338,1),n=k+180|0,W0(n,r),t=n,n=l[k+191|0],o=(n|0)<0,x(A,o?i[k+180>>2]:t,o?i[k+184>>2]:n),l[k+191|0]<0&&G(i[k+180>>2]),A=x(L0(x(A,21705,20),Q[e+120>>1]),31338,1),n=k+180|0,W0(n,r),t=n,n=l[k+191|0],o=(n|0)<0,x(A,o?i[k+180>>2]:t,o?i[k+184>>2]:n),l[k+191|0]<0&&G(i[k+180>>2]),x(L0(x(A,19591,20),Q[e+122>>1]),31338,1),A=k+180|0,W0(A,r),t=A,A=l[k+191|0],n=(A|0)<0,x(k+36|0,n?i[k+180>>2]:t,n?i[k+184>>2]:A),l[k+191|0]<0&&G(i[k+180>>2]),A=x(H0(x(k+36|0,21107,17),s[e+65|0]),31338,1),n=k+180|0,W0(n,r),t=n,n=l[k+191|0],o=(n|0)<0,x(A,o?i[k+180>>2]:t,o?i[k+184>>2]:n),l[k+191|0]<0&&G(i[k+180>>2]),A=x(H0(x(A,20680,11),s[e+66|0]),31338,1),n=k+180|0,W0(n,r),t=n,n=l[k+191|0],o=(n|0)<0,x(A,o?i[k+180>>2]:t,o?i[k+184>>2]:n),l[k+191|0]<0&&G(i[k+180>>2]),A=x(H0(x(A,16391,14),s[e+67|0]),31338,1),n=k+180|0,W0(n,r),t=n,n=l[k+191|0],o=(n|0)<0,x(A,o?i[k+180>>2]:t,o?i[k+184>>2]:n),l[k+191|0]<0&&G(i[k+180>>2]),A=x(H0(x(A,20647,32),s[e+68|0]),31338,1),n=k+180|0,W0(n,r),t=n,n=l[k+191|0],o=(n|0)<0,x(A,o?i[k+180>>2]:t,o?i[k+184>>2]:n),l[k+191|0]<0&&G(i[k+180>>2]),x(H0(x(A,20692,30),s[e+69|0]),31338,1)),A=k+180|0,W0(A,r),t=A,A=l[k+191|0],n=(A|0)<0,x(k+36|0,n?i[k+180>>2]:t,n?i[k+184>>2]:A),l[k+191|0]<0&&G(i[k+180>>2]),A=k+36|0,x(L0(x(A,19675,15),i[e+132>>2]-i[e+128>>2]>>4),31338,1),n=k+180|0,W0(n,r),t=A,u=n,A=l[k+191|0],n=(A|0)<0,x(t,n?i[k+180>>2]:u,n?i[k+184>>2]:A),l[k+191|0]<0&&G(i[k+180>>2]),x(k+36|0,30574,13),n=i[e+128>>2],p=i[e+132>>2],(n|0)!=(p|0))for(e=i[r>>2];;){i[r>>2]=e+1,e=k+180|0,W0(e,r),t=e,e=l[k+191|0],A=(e|0)<0,x(k+36|0,A?i[k+180>>2]:t,A?i[k+184>>2]:e),l[k+191|0]<0&&G(i[k+180>>2]),A=x(H0(x(k+36|0,21070,10),s[n+1|0]),18656,2),e=s[n+1|0]-12&255,e>>>0>7?e=15637:e=i[(e<<2)+74988>>2],x(x(A,e,G2(e)),31337,2),e=k+180|0,W0(e,r),t=e,e=l[k+191|0],A=(e|0)<0,x(k+36|0,A?i[k+180>>2]:t,A?i[k+184>>2]:e),l[k+191|0]<0&&G(i[k+180>>2]),x(H0(x(k+36|0,19746,20),s[n|0]),31338,1);i:{if(e=i[n+4>>2],W=i[n+8>>2],(e|0)==(W|0))break i;for(;;){r:{i[r>>2]=i[r>>2]+1,A=k+24|0,W0(A,r),o=i[e>>2],ck(k+12|0,o,i[e+4>>2]-o|0,A,A),h=l[k+23|0],w=i[k+12>>2],v=i[k+16>>2],A=k+36|0,C=V1(k+172|0,A);e:{if(s[C|0]!=1)break e;t=A+i[i[k+36>>2]-12>>2]|0,y=i[t+4>>2],o=i[t+24>>2],u=i[t+76>>2],(u|0)==-1&&(_=k+180|0,A=i[t+28>>2],i[_>>2]=A,(A|0)!=100008&&(i[A+4>>2]=i[A+4>>2]+1),A=x0(_,100192),u=V[i[i[A>>2]+28>>2]](A,32)|0,O0(_),i[t+76>>2]=u);A:{if(!o||(_=i[t+12>>2],A=w,w=(h|0)<0,A=w?A:k+12|0,h=w?v:h,I=A+h|0,w=(y&176)==32?I:A,v=w-A|0,(v|0)>0&&(V[i[i[o>>2]+48>>2]](o,A,v)|0)!=(v|0)))break A;if(A=(h|0)<(_|0)?_-h|0:0,(A|0)>0){if(A>>>0>=2147483640)break r;f:{if(A>>>0>=11){_=(A|7)+1|0,h=U(_),i[k+188>>2]=_|-2147483648,i[k+180>>2]=h,i[k+184>>2]=A;break f}l[k+191|0]=A,h=k+180|0}if(E=B0(h,u,A)+A|0,J=0,l[E|0]=J,u=V[i[i[o>>2]+48>>2]](o,l[k+191|0]<0?i[k+180>>2]:k+180|0,A)|0,l[k+191|0]<0&&G(i[k+180>>2]),(A|0)!=(u|0))break A}if(A=I-w|0,(A|0)>0&&(V[i[i[o>>2]+48>>2]](o,w,A)|0)!=(A|0))break A;i[t+12>>2]=0;break e}A=i[i[k+36>>2]-12>>2]+(k+36|0)|0,z1(A,i[A+16>>2]|5)}if(Z1(C),l[k+23|0]<0&&G(i[k+12>>2]),A=i[r>>2],i[r>>2]=(A|0)>0?A-1|0:0,l[k+35|0]<0&&G(i[k+24>>2]),e=e+12|0,(W|0)!=(e|0))continue;break i}break}c2(),P()}if(e=i[r>>2],e=(e|0)>0?e-1|0:0,i[r>>2]=e,n=n+16|0,(p|0)==(n|0))break}i2(f,Z),f=i[13707],i[k+36>>2]=f,i[i[f-12>>2]+(k+36|0)>>2]=i[13710],i[Z>>2]=53552,l[k+83|0]<0&&G(i[k+72>>2]),K0(Z),T0(k+92|0),B=k+192|0}function Gk(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=Y(0),Z=0,p=0,W=Y(0);_=B-16|0,B=_,i[_+12>>2]=r;i:{r:{if(o=i[k+4>>2],!o)break r;n=i[k>>2],h=Ui(o),u=o-1&r;e:{if(h>>>0<=1||(u=r,r>>>0>>0))break e;u=(r>>>0)%(o>>>0)|0}if(n=i[n+(u<<2)>>2],!n||(t=i[n>>2],!t))break r;e:{if(h>>>0<=1){for(n=o-1|0;;){o=i[t+4>>2];A:{if((o|0)!=(r|0)){if((u|0)==(n&o))break A;break r}if(i[t+8>>2]==(r|0))break e}if(t=i[t>>2],!t)break}break r}for(;;){n=i[t+4>>2];A:{if((n|0)!=(r|0)){if(n>>>0>=o>>>0&&(n=(n>>>0)%(o>>>0)|0),(n|0)==(u|0))break A;break r}if(i[t+8>>2]==(r|0))break e}if(t=i[t>>2],!t)break}break r}if(e=U(24),i[_>>2]=e,i[_+4>>2]=21,i[_+8>>2]=-2147483624,r=s[10269]|s[10270]<<8|(s[10271]<<16|s[10272]<<24),A=s[10265]|s[10266]<<8|(s[10267]<<16|s[10268]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+21|0]=0,r=s[10282]|s[10283]<<8|(s[10284]<<16|s[10285]<<24),A=s[10278]|s[10279]<<8|(s[10280]<<16|s[10281]<<24),l[e+13|0]=A,l[e+14|0]=A>>>8,l[e+15|0]=A>>>16,l[e+16|0]=A>>>24,l[e+17|0]=r,l[e+18|0]=r>>>8,l[e+19|0]=r>>>16,l[e+20|0]=r>>>24,r=s[10277]|s[10278]<<8|(s[10279]<<16|s[10280]<<24),A=s[10273]|s[10274]<<8|(s[10275]<<16|s[10276]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,2008,_),l[_+11|0]>=0)break i;G(i[_>>2]);break i}r=0,o=_+12|0,u=i[o>>2],t=i[k+4>>2];r:{e:{if(!t)break e;n=i[k>>2],h=Ui(t),r=u&t-1;A:{if(h>>>0<=1||(r=u,r>>>0>>0))break A;r=(r>>>0)%(t>>>0)|0}if(n=i[n+(r<<2)>>2],!n||(w=i[n>>2],!w))break e;if(h>>>0<=1){for(n=t-1|0;;){A:{if(h=i[w+4>>2],(h|0)!=(u|0)){if((n&h)!=(r|0))break e;break A}if((u|0)!=i[w+8>>2])break A;r=0;break r}if(w=i[w>>2],!w)break}break e}for(;;){A:{if(n=i[w+4>>2],(n|0)!=(u|0)){if(n>>>0>=t>>>0&&(n=(n>>>0)%(t>>>0)|0),(r|0)!=(n|0))break e;break A}if((u|0)!=i[w+8>>2])break A;r=0;break r}if(w=i[w>>2],!w)break}}w=U(12),i[w+4>>2]=u,i[w>>2]=0,i[w+8>>2]=i[o>>2],W=Y(i[k+12>>2]+1>>>0),v=Z0[k+16>>2];e:{if(!(W>Y(v*Y(t>>>0)))&&t)break e;r=2,o=(t-1&t)!=0|t>>>0<3|t<<1,v=Y(b5(Y(W/v)));A:{if(v=Y(0)){n=~~v>>>0;break A}n=0}n=n>>>0>>0?o:n;A:{if((n|0)==1)break A;if(!(n&n-1)){r=n;break A}r=yk(n),t=i[k+4>>2]}A:{if(r>>>0<=t>>>0){if(r>>>0>=t>>>0)break A;o=t>>>0<3,v=Y(b5(Y(Y(k0[k+12>>2])/Z0[k+16>>2])));f:{if(v=Y(0)){n=~~v>>>0;break f}n=0}f:{k:{if(o||Ui(t)>>>0>1)break k;n=n>>>0<2?n:1<<32-$2(n-1|0);break f}n=yk(n)}if(r=r>>>0>n>>>0?r:n,t>>>0<=r>>>0)break A}t=0,h=0,o=r;f:{k:{n:{t:{if(r){if(r>>>0>=1073741824)break t;if(n=U(r<<2),r=i[k>>2],i[k>>2]=n,r&&G(r),i[k+4>>2]=o,n=0,o>>>0>=4)for(Z=o&1073741820;r=n<<2,i[r+i[k>>2]>>2]=0,i[(r+i[k>>2]|0)+4>>2]=0,i[(r+i[k>>2]|0)+8>>2]=0,i[(r+i[k>>2]|0)+12>>2]=0,n=n+4|0,h=h+4|0,(Z|0)!=(h|0););if(r=o&3,r)for(;i[i[k>>2]+(n<<2)>>2]=0,n=n+1|0,t=t+1|0,(r|0)!=(t|0););if(r=i[k+8>>2],!r)break f;if(n=k+8|0,t=i[r+4>>2],h=Ui(o),h>>>0<2)break n;if(t=t>>>0>=o>>>0?(t>>>0)%(o>>>0)|0:t,i[i[k>>2]+(t<<2)>>2]=n,n=i[r>>2],!n)break f;if(h>>>0<=1)break k;for(;;){h=i[n+4>>2],o>>>0<=h>>>0&&(h=(h>>>0)%(o>>>0)|0);o:{if((t|0)==(h|0)){r=n;break o}if(Z=h<<2,p=Z+i[k>>2]|0,!i[p>>2]){i[p>>2]=r,r=n,t=h;break o}i[r>>2]=i[n>>2],i[n>>2]=i[i[Z+i[k>>2]>>2]>>2],i[i[Z+i[k>>2]>>2]>>2]=n}if(n=i[r>>2],!n)break}break f}r=i[k>>2],i[k>>2]=0,r&&G(r),i[k+4>>2]=0;break f}_2(),P()}if(t=o-1&t,i[i[k>>2]+(t<<2)>>2]=n,n=i[r>>2],!n)break f}for(Z=o-1|0;;){o=Z&i[n+4>>2];k:{if((o|0)==(t|0)){r=n;break k}if(h=o<<2,p=h+i[k>>2]|0,i[p>>2]){i[r>>2]=i[n>>2],i[n>>2]=i[i[h+i[k>>2]>>2]>>2],i[i[h+i[k>>2]>>2]>>2]=n;break k}i[p>>2]=r,r=n,t=o}if(n=i[r>>2],!n)break}}}if(t=i[k+4>>2],r=t-1|0,!(r&t)){r=r&u;break e}if(t>>>0>u>>>0){r=u;break e}r=(u>>>0)%(t>>>0)|0}n=i[k>>2]+(r<<2)|0,r=i[n>>2];e:{A:{if(!r){if(r=k+8|0,i[w>>2]=i[r>>2],i[k+8>>2]=w,i[n>>2]=r,r=i[w>>2],!r)break e;r=i[r+4>>2],n=t-1|0;f:{if(!(n&t)){r=r&n;break f}if(r>>>0>>0)break f;r=(r>>>0)%(t>>>0)|0}r=i[k>>2]+(r<<2)|0;break A}i[w>>2]=i[r>>2]}i[r>>2]=w}i[k+12>>2]=i[k+12>>2]+1,r=1}l[_+4|0]=r,i[_>>2]=w,oi(_,i[A>>2],i[_+12>>2]),t=i[_>>2],r=i[_+4>>2];r:{if((t|0)!=(r|0))for(;;){if(Gk(f,e,i[t>>2],A,k),i[f>>2])break r;if(l[f+19|0]<0&&G(i[f+8>>2]),t=t+4|0,(r|0)==(t|0))break}h=B-16|0,B=h,u=i[k+4>>2];e:{if(!u)break e;A=i[k>>2],r=i[_+12>>2],e=r&u-1,t=Ui(u);A:{if(t>>>0<=1||(e=r,r>>>0>>0))break A;e=(r>>>0)%(u>>>0)|0}if(n=e,e=i[(n<<2)+A>>2],!e||(e=i[e>>2],!e))break e;A:{if(t>>>0<=1){for(A=u-1|0;;){u=i[e+4>>2];f:{if((u|0)!=(r|0)){if((n|0)==(A&u))break f;break e}if((r|0)==i[e+8>>2])break A}if(e=i[e>>2],!e)break}break e}for(;;){A=i[e+4>>2];f:{if((A|0)!=(r|0)){if(A>>>0>=u>>>0&&(A=(A>>>0)%(u>>>0)|0),(A|0)==(n|0))break f;break e}if((r|0)==i[e+8>>2])break A}if(e=i[e>>2],!e)break}break e}r=e,t=i[r+4>>2],o=i[k+4>>2],w=Ui(o);A:{if(w>>>0<=1){t=o-1&t;break A}if(t>>>0>>0)break A;t=(t>>>0)%(o>>>0)|0}for(n=i[k>>2]+(t<<2)|0,A=i[n>>2];e=A,A=i[e>>2],(r|0)!=(A|0););Z=k+8|0;A:{if((Z|0)!=(e|0)){A=i[e+4>>2];f:{if(w>>>0<=1){A=o-1&A;break f}if(A>>>0>>0)break f;A=(A>>>0)%(o>>>0)|0}if((A|0)==(t|0))break A}if(A=i[r>>2],A){A=i[A+4>>2];f:{if(w>>>0<=1){A=o-1&A;break f}if(A>>>0>>0)break f;A=(A>>>0)%(o>>>0)|0}if((A|0)==(t|0))break A}i[n>>2]=0}u=i[r>>2],n=0;A:{if(!u)break A;A=i[u+4>>2];f:{if(w>>>0<=1){A=o-1&A;break f}if(A>>>0>>0)break f;A=(A>>>0)%(o>>>0)|0}if(n=u,(A|0)==(t|0))break A;i[i[k>>2]+(A<<2)>>2]=e,n=i[r>>2]}i[e>>2]=n,i[r>>2]=0,i[k+12>>2]=i[k+12>>2]-1,l[h+12|0]=1,i[h+8>>2]=Z,i[h+4>>2]=r,e=i[h+4>>2],i[h+4>>2]=0,e&&G(e)}if(B=h+16|0,e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break r}_0(f,i[19566],i[19567])}if(f=i[_>>2],!f)break i;i[_+4>>2]=f,G(f)}B=_+16|0}function Ts(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0;k=B-96|0,B=k,A=D0(r),i[e+52>>2]=A&16777215,l[e+48|0]=A>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[k+16|0]=0,l[k+27|0]=0,r0(k+72|0,2,100,k+16|0),l[k+27|0]>=0)break i;G(i[k+16>>2]);break i}if(A=i[19565],i[k+72>>2]=i[19564],i[k+76>>2]=A,t=k+80|0,l[78275]>=0){A=i[19567],i[t>>2]=i[19566],i[t+4>>2]=A,i[t+8>>2]=i[19568];break i}_0(t,i[19566],i[19567])}l[k+91|0]<0&&G(i[k+80>>2]);i:{r:{e:{A:{if(s[e+48|0]<=1){for(Z=f+8|0,p=e+56|0;;){if(i[r+16>>2]){i[k+16>>2]=68500,i[k+48>>2]=0,i[k+40>>2]=0,i[k+44>>2]=0,i[k+32>>2]=0,i[k+36>>2]=0,i[k+24>>2]=0,i[k+28>>2]=0,i[k+68>>2]=0,i[k+60>>2]=0,i[k+64>>2]=0,xk(f,k+16|0,r),C=i[f>>2],W=i[19564];f:{if((C|0)!=(W|0))break f;k:{if(!s[e+48|0]){if(I=k,y=t2(r),i[I+56>>2]=y,w=0,_=t2(r),!_)break k;for(;;){v=t2(r),A=i[k+64>>2],t=i[k+68>>2];n:{if(A>>>0>>0){i[A>>2]=v,o=A+4|0;break n}if(u=i[k+60>>2],n=A-u>>2,o=n+1|0,o>>>0>=1073741824)break A;if(h=t-u|0,t=h>>1,h=h>>>0>=2147483644?1073741823:o>>>0>>0?t:o,h){if(h>>>0>=1073741824)break e;t=U(h<<2)}else t=0;if(n=t+(n<<2)|0,i[n>>2]=v,o=n+4|0,(A|0)!=(u|0))for(;n=n-4|0,A=A-4|0,i[n>>2]=i[A>>2],(A|0)!=(u|0););if(i[k+68>>2]=t+(h<<2),i[k+64>>2]=o,i[k+60>>2]=n,!u)break n;G(u)}if(i[k+64>>2]=o,!i[r+16>>2])break k;if(w=w+1|0,!(_>>>0>w>>>0))break}break k}if(I=k,y=D0(r),i[I+56>>2]=y,w=0,_=t2(r),!_)break k;for(;;){v=D0(r),A=i[k+64>>2],t=i[k+68>>2];n:{if(A>>>0>>0){i[A>>2]=v,o=A+4|0;break n}if(u=i[k+60>>2],n=A-u>>2,o=n+1|0,o>>>0>=1073741824)break A;if(h=t-u|0,t=h>>1,h=h>>>0>=2147483644?1073741823:o>>>0>>0?t:o,h){if(h>>>0>=1073741824)break e;t=U(h<<2)}else t=0;if(n=t+(n<<2)|0,i[n>>2]=v,o=n+4|0,(A|0)!=(u|0))for(;n=n-4|0,A=A-4|0,i[n>>2]=i[A>>2],(A|0)!=(u|0););if(i[k+68>>2]=t+(h<<2),i[k+64>>2]=o,i[k+60>>2]=n,!u)break n;G(u)}if(i[k+64>>2]=o,!i[r+16>>2])break k;if(w=w+1|0,!(_>>>0>w>>>0))break}}A=i[e+60>>2];k:{if(A>>>0>2]){Z6(A,k+16|0),A=A+56|0;break k}A=xA(p,k+16|0)}if(i[e+60>>2]=A,l[f+19|0]>=0)break f;G(i[Z>>2])}if(A=i[k+60>>2],A&&(i[k+64>>2]=A,G(A)),i[k+16>>2]=68500,A=i[k+36>>2],A&&(i[k+40>>2]=A,G(A)),(W|0)==(C|0))continue;break i}break}f:{k:{_=i[e+56>>2],p=i[e+60>>2],e=(_|0)==(p|0);n:{if(e)break n;for(n=0,A=_;n=(i[A+48>>2]-i[A+44>>2]>>2)+n|0,A=A+56|0,(p|0)!=(A|0););if(n>>>0>1e4)break r;if(e)break n;for(h=k+20|0;;){if(i[k+16>>2]=h,i[k+20>>2]=0,i[k+24>>2]=0,C=k+16|0,v=i[_+44>>2],W=i[_+48>>2],(v|0)==(W|0))e=0;else{for(;;){u=i[v>>2],n=i[k+20>>2],o=n,e=h,w=e,A=e;t:{o:{if(!n)break o;for(;t=o,A=e,w=u>>>0>k0[t+16>>2],e=w?A:t,o=i[(w<<2)+t>>2],!!o;);if((e|0)!=(h|0)&u>>>0>=k0[(w?A:t)+16>>2])break k;for(;;){if(A=n,e=i[A+16>>2],e>>>0>u>>>0){if(w=A,n=i[A>>2],n)continue;break o}if(e>>>0>=u>>>0)break t;if(n=i[A+4>>2],!n)break}w=A+4|0}e=U(20),i[e+8>>2]=A,i[e>>2]=0,i[e+4>>2]=0,i[e+16>>2]=u,i[w>>2]=e,A=i[i[k+16>>2]>>2],A&&(i[k+16>>2]=A,e=i[w>>2]),D1(i[k+20>>2],e),i[k+24>>2]=i[k+24>>2]+1}if(v=v+4|0,(W|0)==(v|0))break}e=i[k+20>>2]}if(P8(C,e),_=_+56|0,(p|0)==(_|0))break}}if(s[r+20|0]!=1)break f;if(l[k+16|0]=0,l[k+27|0]=0,r0(f,2,100,k+16|0),l[k+27|0]>=0)break i;G(i[k+16>>2]);break i}A=U(32),i[k+4>>2]=A,i[k+8>>2]=28,i[k+12>>2]=-2147483616,r=s[4572]|s[4573]<<8|(s[4574]<<16|s[4575]<<24),e=s[4568]|s[4569]<<8|(s[4570]<<16|s[4571]<<24),l[A|0]=e,l[A+1|0]=e>>>8,l[A+2|0]=e>>>16,l[A+3|0]=e>>>24,l[A+4|0]=r,l[A+5|0]=r>>>8,l[A+6|0]=r>>>16,l[A+7|0]=r>>>24,l[A+28|0]=0,e=s[4592]|s[4593]<<8|(s[4594]<<16|s[4595]<<24),l[A+24|0]=e,l[A+25|0]=e>>>8,l[A+26|0]=e>>>16,l[A+27|0]=e>>>24,r=s[4588]|s[4589]<<8|(s[4590]<<16|s[4591]<<24),e=s[4584]|s[4585]<<8|(s[4586]<<16|s[4587]<<24),l[A+16|0]=e,l[A+17|0]=e>>>8,l[A+18|0]=e>>>16,l[A+19|0]=e>>>24,l[A+20|0]=r,l[A+21|0]=r>>>8,l[A+22|0]=r>>>16,l[A+23|0]=r>>>24,r=s[4580]|s[4581]<<8|(s[4582]<<16|s[4583]<<24),e=s[4576]|s[4577]<<8|(s[4578]<<16|s[4579]<<24),l[A+8|0]=e,l[A+9|0]=e>>>8,l[A+10|0]=e>>>16,l[A+11|0]=e>>>24,l[A+12|0]=r,l[A+13|0]=r>>>8,l[A+14|0]=r>>>16,l[A+15|0]=r>>>24,r0(f,2,0,k+4|0),l[k+15|0]<0&&G(i[k+4>>2]),P8(k+16|0,i[k+20>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,l[78275]>=0){f=i[19567],i[Z>>2]=i[19566],i[Z+4>>2]=f,i[Z+8>>2]=i[19568];break i}_0(Z,i[19566],i[19567]);break i}h4(f,e,8807);break i}y0(),P()}_2(),P()}if(A=U(56),i[k+16>>2]=A,i[k+20>>2]=49,i[k+24>>2]=-2147483592,r=s[17461]|s[17462]<<8|(s[17463]<<16|s[17464]<<24),e=s[17457]|s[17458]<<8|(s[17459]<<16|s[17460]<<24),l[A|0]=e,l[A+1|0]=e>>>8,l[A+2|0]=e>>>16,l[A+3|0]=e>>>24,l[A+4|0]=r,l[A+5|0]=r>>>8,l[A+6|0]=r>>>16,l[A+7|0]=r>>>24,l[A+49|0]=0,l[A+48|0]=s[17505],r=s[17501]|s[17502]<<8|(s[17503]<<16|s[17504]<<24),e=s[17497]|s[17498]<<8|(s[17499]<<16|s[17500]<<24),l[A+40|0]=e,l[A+41|0]=e>>>8,l[A+42|0]=e>>>16,l[A+43|0]=e>>>24,l[A+44|0]=r,l[A+45|0]=r>>>8,l[A+46|0]=r>>>16,l[A+47|0]=r>>>24,r=s[17493]|s[17494]<<8|(s[17495]<<16|s[17496]<<24),e=s[17489]|s[17490]<<8|(s[17491]<<16|s[17492]<<24),l[A+32|0]=e,l[A+33|0]=e>>>8,l[A+34|0]=e>>>16,l[A+35|0]=e>>>24,l[A+36|0]=r,l[A+37|0]=r>>>8,l[A+38|0]=r>>>16,l[A+39|0]=r>>>24,r=s[17485]|s[17486]<<8|(s[17487]<<16|s[17488]<<24),e=s[17481]|s[17482]<<8|(s[17483]<<16|s[17484]<<24),l[A+24|0]=e,l[A+25|0]=e>>>8,l[A+26|0]=e>>>16,l[A+27|0]=e>>>24,l[A+28|0]=r,l[A+29|0]=r>>>8,l[A+30|0]=r>>>16,l[A+31|0]=r>>>24,r=s[17477]|s[17478]<<8|(s[17479]<<16|s[17480]<<24),e=s[17473]|s[17474]<<8|(s[17475]<<16|s[17476]<<24),l[A+16|0]=e,l[A+17|0]=e>>>8,l[A+18|0]=e>>>16,l[A+19|0]=e>>>24,l[A+20|0]=r,l[A+21|0]=r>>>8,l[A+22|0]=r>>>16,l[A+23|0]=r>>>24,r=s[17469]|s[17470]<<8|(s[17471]<<16|s[17472]<<24),e=s[17465]|s[17466]<<8|(s[17467]<<16|s[17468]<<24),l[A+8|0]=e,l[A+9|0]=e>>>8,l[A+10|0]=e>>>16,l[A+11|0]=e>>>24,l[A+12|0]=r,l[A+13|0]=r>>>8,l[A+14|0]=r>>>16,l[A+15|0]=r>>>24,r0(f,6,1e3,k+16|0),l[k+27|0]>=0)break i;G(i[k+16>>2])}B=k+96|0}function _8(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0,r2=0;h=B-160|0,B=h;i:{r:{if(v=i[f+18588>>2],o=i[v+168>>2],u=e>>o,(u|0)<0||(n=i[v+172>>2],(n|0)<=(u|0)))break r;if(o=r>>o,(o|0)<0|(o|0)>=i[v+176>>2])break i;a=i[v+132>>2],R=i[v+124>>2],w=s[((i[v+160>>2]+m(u,3)|0)+m(m(n,o),3)|0)+1|0];e:{if(k||(u=i[v+248>>2],n=A-u|0,(n|0)==31))break e;for(o=r>>u,n=1<>u,Z=u+n|0;;){for(n=u;t=(i[v+240>>2]+n|0)+m(i[v+252>>2],o)|0,l[t|0]=s[t|0]|128,n=n+1|0,(Z|0)>(n|0););if(o=o+1|0,!((W|0)>(o|0)))break}}n0=w&3,n=f+k|0,S=n,o=0;e:{if(!s[a+25|0]||(o=0,s[f+32|0])||(o=0,i[a+8276>>2]<(A|0)))break e;o=f2(f+18548|0,i[f+18572>>2]+(k?142:141)|0)}l[n+33|0]=o,l[f+36|0]=0;e:{if(!(s[n+33|0]|s[f+32|0])|(!s[R+16823|0]|(n0|0)!=1)||(u=f+18548|0,o=(k|0)!=0,n=f2(u,(o+i[f+18572>>2]|0)+143|0),l[f+36|0]=n,!(n&255)))break e;c0=f,r2=f2(u,(o+i[f+18572>>2]|0)+145|0),l[c0+37|0]=r2}Z=!k<<1,Z=s[S+33|0]|s[f+32|0]?Z|1:Z,w=A<<1;e:{if(!k){t=A+1>>2,n=(m(A,3)+(A-1>>2)|0)-6|0;break e}t=A-2|0,n=15}_=i[f+18572>>2],o=w-1|0;e:{if((w|0)<2){n=o;break e}W=n+(_+25|0)|0,u=f+18548|0,n=0;A:{for(;;){if(!f2(u,W+(n>>>t|0)|0))break A;if(n=n+1|0,(o|0)==(n|0))break}n=o}_=i[f+18572>>2]}e:{if(!k){t=(m(A,3)+(A-1>>2)|0)-6|0,u=A+1>>2;break e}t=15,u=A-2|0}e:{if((w|0)<2)break e;for(w=t+(_+43|0)|0,W=f+18548|0,t=0;;){if(!f2(W,w+(t>>>u|0)|0)){o=t;break e}if(t=t+1|0,(o|0)==(t|0))break}}(n|0)>=4&&(u=(n>>>1|0)-1|0,n=d4(f+18548|0,u)+((n&1|2)<=4&&(u=(o>>>1|0)-1|0,o=d4(f+18548|0,u)+((o&1|2)<>2],W=e>>t,(W|0)<0||(u=i[v+212>>2],(u|0)<=(W|0)))break r;if(t=r>>t,(t|0)<0|(t|0)>=i[v+216>>2])break i;u=s[(W+i[v+200>>2]|0)+m(t,u)|0],_=u>>>0<=34?u:0,u=0;break f}if(t=i[v+228>>2],W=e>>t,(W|0)<0||(u=i[v+232>>2],(u|0)<=(W|0)))break r;if(t=r>>t,(t|0)<0|(t|0)>=i[v+236>>2])break i;_=s[(W+i[v+220>>2]|0)+m(t,u)|0]&63,u=k}t=2,W=u,u=0;f:{k:{n:switch(A-2|0){case 0:break k;case 1:break n;default:break f}if(!W)break k;if(i[R+16848>>2]!=3)break f}if(u=2,_-6>>>0<9)break f;u=_-22>>>0<9}if((u|0)!=2){t=u;break A}u=o;break e}u=n,n=o}for(J=A-2|0,o=J,t>>>0<=2?W=i[i[(t<<2)+45336>>2]+(o<<2)>>2]:W=0,p0=t>>>0<=2?i[i[(t<<2)+45336>>2]+8>>2]:0,n=(i[(m(t,24)+(A<<2)|0)+45264>>2]+(n<>>8,z=s[h+158|0],X0=s[h+159|0],B0(h+80|0,0,1<>1]=0,u=k?43:42,q=(k|0)>0,I0=q?17:1,y=f+18548|0,d=(f+Z|0)+18580|0,Q0=X0-1|0,F0=J<<6|((k|0)!=0)<<5|((t|0)!=0)<<4,n=k<<11,Y0=n+(f+2108|0)|0,S0=n+(f+8252|0)|0,D=1,n=z;;){o=(n<<1)+W|0,t=s[o+1|0],w=s[o|0],A0=n,p=(n|0)!=0;e:{A:{if(!(p&n>>>0>>0)){if((n|0)!=(z|0)&&n)break e;Z=0;break A}if(Z=1,n=s[h+80+(w+(t<>>1,!f2(y,(i[f+18572>>2]+(k?n+2|0:n)|0)+61|0))break e}if(w&&(n=(w+(t<>1]=1,l[h+32|0]=X0,_=1),f0=i[n>>2],h0=o<<2,j=w<<2,o=(z|0)!=(A0|0)?15:Q0,(o|0)>0)for(I=f0+j|0,n=o;;){t=(n<<1)+p0|0,E=s[t+1|0],w=s[t|0],C=i[f+18572>>2];A:{if(s[R+16821|0]&&(t=u,s[f+32|0]|s[S+33|0]))break A;t=s[(w+I|0)+(E+h0<>1]=1,_=_+1|0,Z=0),t=(n|0)>1,n=n-1|0,!t)break}A:{if((o|0)<0)break A;if(!Z){o=i[f+18572>>2];f:{if(s[R+16821|0]&&(n=u,s[f+32|0]|s[S+33|0]))break f;n=s[(f0+j|0)+(h0<>1]=1,_=_+1|0}if(!_)break e;Z=1;A:{if((_|0)<=0)break A;p=!D|(q?0:p<<1),I=p<<2,C=f2(y,(i[f+18572>>2]+(I|I0)|0)+109|0);f:{if(C){X[h+48>>1]=Q[h+48>>1]+1,Z=0,o=0;break f}l[h|0]=0,Z=2,o=-1}if(t=1,(_|0)!=1)for(E=(_|0)>=8?8:_,n=1;;){n=(n|0)>0?(C|0)!=1?n+1|0:0:n,w=I+((n|0)>=3?3:n)|0,C=f2(y,(i[f+18572>>2]+(q?w+16|0:w)|0)+109|0);f:{if(C){Z=(h+48|0)+(t<<1)|0,X[Z>>1]=Q[Z>>1]+1,o=(o|0)==-1?t:o,Z=0;break f}l[t+h|0]=0,Z=(Z-1>>>0<2)+Z|0}if(t=t+1|0,(E|0)==(t|0))break}if((o|0)==-1)break A;t=f2(y,(i[f+18572>>2]+(q?p|4:p)|0)+133|0),l[o+h|0]=t,n=(h+48|0)+(o<<1)|0,X[n>>1]=t+Q[n>>1]}A:{if(!k){if(o=i[v+208>>2],t=e>>o,(t|0)<0||(n=i[v+212>>2],(n|0)<=(t|0)))break r;if(o=r>>o,(o|0)<0|(o|0)>=i[v+216>>2])break i;n=s[(t+i[v+200>>2]|0)+m(n,o)|0],o=n>>>0<=34?n:0;break A}if(o=i[v+228>>2],t=e>>o,(t|0)<0||(n=i[v+232>>2],(n|0)<=(t|0)))break r;if(o=r>>o,(o|0)<0|(o|0)>=i[v+236>>2])break i;o=s[(t+i[v+220>>2]|0)+m(n,o)|0]&63}n=0,I=0;A:{if(s[f+32|0]||!(!s[R+16822|0]|n0|(o&239)!=10)&&(I=0,s[S+33|0])||(I=0,s[f+36|0]))break A;I=(l[h+32|0]-l[(h+_|0)+31|0]|0)>3}if(L=_-1|0,(_|0)>1)for(;c0=(h+16|0)+n|0,r2=x1(y),l[c0|0]=r2,n=n+1|0,(L|0)!=(n|0););if(p=0,o=L+(h+16|0)|0,I&s[a+15|0]!=0?n=0:n=x1(y),l[o|0]=n,p=s[R+16827|0]?s[d|0]>>>2|0:p,o=1,C=0,D=0,(_|0)>0)for(;;){E=X[(h+48|0)+(C<<1)>>1],n=-1;A:{if(!s[h+C|0]){n=0;break A}G0=3<=3?3:p)+1|0;break A}if(p=((t|0)>(G0|0))+p|0,t=o,o=0,!t)break A;if(w=s[d|0],t=w>>>2|0,3<=1<>1]<<1)+Y0|0,I&s[a+15|0]!=0&&(D=(n&65535)+D|0,n=(C|0)!=(L|0)?n:D&1?0-n|0:n),X[t>>1]=n,X[(X[H>>1]<<1)+S0>>1]=(w+j|0)+(E+h0<>1]=Q[H>>1]+1,C=C+1|0,(C|0)==(_|0))break}D=Z}if(n=A0-1|0,!((A0|0)>0))break}B=h+160|0;return}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function as(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=Y(0),w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=Y(0),R=0,D=Y(0),z=Y(0),H=0,a=Y(0),S=0,q=0,d=0,A0=Y(0),f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=Y(0),Y0=Y(0),S0=Y(0),c0=Y(0),r2=Y(0),n2=Y(0),s2=0;e=B-112|0,B=e,n=i[r>>2],A=n,p=i[A+28>>2],_=i[A+24>>2],u=i[k+4>>2],A=u,t=A>>>0<4,C=(t?16908801>>>(A<<3)|0:0)&3,R=(t?16843265>>>(A<<3)|0:0)&3,n=U0(n,3);i:{if(n>>>0<=8){i[f>>2]=0,i[f+4>>2]=0;break i}r:{if(H=H2(i[r>>2],6),!H||(U0(i[r>>2],6)|0)==(n|0))break r;i[f>>2]=0,i[f+4>>2]=0;break i}A=U(136),i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=72792,B0(A+20|0,0,104),t=i[A+4>>2],Z=t+1|0,i[A+4>>2]=Z,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,v=A- -64|0,i[v>>2]=0,i[v+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,v=A+12|0,i[A+12>>2]=v,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=t,i[A+16>>2]=A,Z||(V[i[i[A>>2]+8>>2]](A),g(A)),i[v+36>>2]=u,i[v+32>>2]=0,i[v+28>>2]=p,i[v+24>>2]=_,u=((p+R|0)-1|0)/(R|0)|0,t=((_+C|0)-1|0)/(C|0)|0;r:{e:{A:{f:{if(!J0(v,0,_,p,n)||!J0(v,1,t,u,n)||!J0(v,2,t,u,n)||H&&!J0(v,6,_,p,n))break f;i[e+108>>2]=0,i[e+104>>2]=0,i[e+100>>2]=0,i[e+96>>2]=0,i[e+92>>2]=0,i[e+88>>2]=0,i[e+84>>2]=0,i[e+80>>2]=0,S=v0(i[r>>2],3,e+108|0),f0=v0(i[r>>2],4,e+104|0),n0=v0(i[r>>2],5,e+100|0),q=v0(v,0,e+92|0),G0=v0(v,1,e+88|0),I0=v0(v,2,e+84|0),H&&(h0=v0(i[r>>2],6,e+96|0),j=v0(v,6,e+80|0)),i[e+108>>2]=i[e+108>>2]/2,i[e+104>>2]=i[e+104>>2]/2,i[e+100>>2]=i[e+100>>2]/2,i[e+96>>2]=i[e+96>>2]/2,i[e+92>>2]=i[e+92>>2]/2,i[e+88>>2]=i[e+88>>2]/2,i[e+84>>2]=i[e+84>>2]/2,i[e+80>>2]=i[e+80>>2]/2,i[e+76>>2]=-1113159960,i[e+68>>2]=1056964608,i[e+72>>2]=-1093247418,i[e+60>>2]=-1096180881,i[e+64>>2]=1056964608,i[e+52>>2]=1038710997,i[e+56>>2]=-1104361250,i[e+44>>2]=1050220167,i[e+48>>2]=1058424226,l[e+40|0]=1,d=s[k+26|0],L=Q[k+24>>1],Kr(e,L,Q[k+20>>1]),r=i[e+36>>2],i[e+72>>2]=i[e+32>>2],i[e+76>>2]=r,k=i[e+28>>2],r=e- -64|0,i[r>>2]=i[e+24>>2],i[r+4>>2]=k,r=i[e+20>>2],i[e+56>>2]=i[e+16>>2],i[e+60>>2]=r,r=i[e+12>>2],i[e+48>>2]=i[e+8>>2],i[e+52>>2]=r,r=i[e+4>>2],i[e+40>>2]=i[e>>2],i[e+44>>2]=r;k:{if((p|0)<=0)break k;if(u=-1<>>0<4;;){t=q+(m(i[e+92>>2],I)<<1)|0,Z=(m(i[e+104>>2],I)<<1)+f0|0;n:{if(L){for(w=(m(i[e+100>>2],I)<<1)+n0|0,W=(m(i[e+108>>2],I)<<1)+S|0,h=Z0[e+52>>2],D=Z0[e+48>>2],z=Z0[e+44>>2],k=0;;){o=k<<1,J=Y(Y(Y(Q[o+w>>1])*h)+Y(Y(Y(Q[o+W>>1])*z)+Y(D*Y(Q[o+Z>>1])))),J=Y((d&1?J:Y(Y(Y(J*Y(219))*Y(.00390625))+A0))+Y(.5));t:{if(Y(d0(J))>1]=(r|0)>=0?(r|0)<(u|0)?r:u:0,k=k+1|0,(_|0)==(k|0))break}break n}k=0;t:{if(d&1){if(r=0,w=0,X0)break t;for(;o=r<<1,X[o+t>>1]=Q[o+Z>>1],W=o|2,X[W+t>>1]=Q[Z+W>>1],W=o|4,X[W+t>>1]=Q[Z+W>>1],o=o|6,X[o+t>>1]=Q[o+Z>>1],r=r+4|0,w=w+4|0,(p0|0)!=(w|0););break t}for(;;){o=k<<1,h=Y(Y(Y(Y(Y(Q[o+Z>>1])*Y(219))*Y(.00390625))+A0)+Y(.5));o:{if(Y(d0(h))>1]=(r|0)>=0?(r|0)<(u|0)?r:u:0,k=k+1|0,(_|0)==(k|0))break}break n}if(!E)break n;for(;o=r<<1,X[o+t>>1]=Q[o+Z>>1],r=r+1|0,k=k+1|0,(E|0)!=(k|0););}if(I=I+1|0,(I|0)==(p|0))break}if((p|0)<=0)break k}if(y)break A;for(J=Y((1<>>0),k=0,I=(R|0)==2,p0=(C|R)>>>0<2;;){n=i[e+100>>2],t=m(n,k)<<1,Z=t+n0|0,r=i[e+88>>2];n:{if(L){for(w=n,n=k+1|0,n=I&&(n|0)<(p|0)?n:k,o=(m(w,n)<<1)+n0|0,t=i[e+104>>2],E=(m(t,n)<<1)+f0|0,w=n,n=i[e+108>>2],w=(m(w,n)<<1)+S|0,q=(m(k,t)<<1)+f0|0,y=(m(k,n)<<1)+S|0,F0=Z0[e+76>>2],Y0=Z0[e+72>>2],S0=Z0[e+68>>2],c0=Z0[e+64>>2],r2=Z0[e+60>>2],n2=Z0[e+56>>2],n=(k>>>0)/(R>>>0)|0,X0=(m(n,i[e+84>>2])<<1)+I0|0,W=(m(r,n)<<1)+G0|0,r=0;;){n=r<<1,h=Y(Q[n+Z>>1]),D=Y(Q[n+q>>1]),z=Y(Q[n+y>>1]),p0||(t=r+1|0,t=(I&&(C|0)==2&&(t|0)<(_|0)?t:r)<<1,h=Y(Y(Y(Y(h+Y(Q[t+Z>>1]))+Y(Q[n+o>>1]))+Y(Q[t+o>>1]))*Y(.25)),z=Y(Y(Y(Y(z+Y(Q[t+y>>1]))+Y(Q[n+w>>1]))+Y(Q[t+w>>1]))*Y(.25)),D=Y(Y(Y(Y(D+Y(Q[t+q>>1]))+Y(Q[n+E>>1]))+Y(Q[t+E>>1]))*Y(.25))),t=(r>>>0)/(C>>>0)<<1,s2=t+W|0,a=Y(Y(h*c0)+Y(Y(z*n2)+Y(D*r2))),Q0=d&1,a=Y(Y((Q0?a:Y(Y(a*Y(224))*Y(.00390625)))+J)+Y(.5));t:{if(Y(d0(a))>1]=(n|0)>=0?(n|0)<(u|0)?n:u:0,t=t+X0|0,h=Y(Y(h*F0)+Y(Y(z*S0)+Y(D*Y0))),h=Y(Y((Q0?h:Y(Y(h*Y(224))*Y(.00390625)))+J)+Y(.5));t:{if(Y(d0(h))>1]=(n|0)>=0?(n|0)<(u|0)?n:u:0,r=r+C|0,!((_|0)>(r|0)))break}break n}if(t=t+S|0,r=m(r,(k>>>0)/(R>>>0)|0)<<1,o=r+I0|0,E=r+G0|0,r=0,!(d&1))for(;;){w=(r>>>0)/(C>>>0)<<1,W=w+E|0,y=r<<1,h=Y(Y(Y(Y(Y(Q[y+Z>>1])*Y(224))*Y(.00390625))+A0)+Y(.5));t:{if(Y(d0(h))>1]=(n|0)>=0?(n|0)<(u|0)?n:u:0,w=o+w|0,h=Y(Y(Y(Y(Y(Q[t+y>>1])*Y(224))*Y(.00390625))+A0)+Y(.5));t:{if(Y(d0(h))>1]=(n|0)>=0?(n|0)<(u|0)?n:u:0,r=r+C|0,!((_|0)>(r|0)))break n}for(;n=(r>>>0)/(C>>>0)<<1,w=r<<1,X[n+E>>1]=Q[w+Z>>1],X[n+o>>1]=Q[t+w>>1],r=r+C|0,(_|0)>(r|0););}if(k=k+R|0,!((p|0)>(k|0)))break}}if((p|0)>0&H)break e;break r}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break i;V[i[i[A>>2]+8>>2]](A),g(A);break i}if(!H)break r}if(n=_<<1,r=0,(p|0)!=1)for(_=p&-2,k=0;l0((m(i[e+80>>2],r)<<1)+j|0,(m(i[e+96>>2],r)<<1)+h0|0,n),u=r|1,l0((m(u,i[e+80>>2])<<1)+j|0,(m(u,i[e+96>>2])<<1)+h0|0,n),r=r+2|0,k=k+2|0,(_|0)!=(k|0););if(!(p&1))break r;l0((m(i[e+80>>2],r)<<1)+j|0,(m(i[e+96>>2],r)<<1)+h0|0,n)}i[f+4>>2]=A,i[f>>2]=v}B=e+112|0}function pA(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0,r2=0,n2=0,s2=0,W2=0,y2=0,x2=0,T2=0,O2=0,q2=0,b2=0,e1=0,A1=0;n=B-32|0,B=n;i:{r:{t=i[f+276>>2],s2=(A|0)>(t|0)?t:A;e:{if((s2|0)<=(r|0)||(A=i[f+272>>2],W2=(A|0)<(k|0)?A:k,(W2|0)<=0))break e;for(O2=e?1:2,q2=e?2:1,W=i[f+40>>2],b2=W<<1,y2=i[f+124>>2],A=i[y2+16832>>2],x2=A-8|0,z=-1<>2,n2=0,S0=0;;){v=S0<<2,A0=s[(i[f+260>>2]+(v>>2)|0)+m(i[f+272>>2],A1)|0]&3;A:{if(!A0)break A;A=i[f+4>>2],k=m(i[f+40>>2],Q0),h=v+(A+k|0)|0;f:{if(!e){l[n+16|0]=s[h|0],l[n|0]=s[h+p0|0],l[n+17|0]=s[h+W|0],l[n+1|0]=s[h+G0|0],l[n+18|0]=s[h+S|0],o=s[h+L|0],l[n+2|0]=o,l[n+19|0]=s[h+X0|0],I=s[h+Y0|0],l[n+3|0]=I,A=h+1|0,l[n+20|0]=s[A|0],l[n+4|0]=s[A+p0|0],l[n+21|0]=s[A+W|0],l[n+5|0]=s[A+G0|0],l[n+22|0]=s[A+S|0],l[n+6|0]=s[A+L|0],l[n+23|0]=s[A+X0|0],l[n+7|0]=s[A+Y0|0],A=h+2|0,l[n+24|0]=s[A|0],l[n+8|0]=s[A+p0|0],l[n+25|0]=s[A+W|0],l[n+9|0]=s[A+G0|0],l[n+26|0]=s[A+S|0],l[n+10|0]=s[A+L|0],l[n+27|0]=s[A+X0|0],l[n+11|0]=s[A+Y0|0],k=h+3|0,l[n+28|0]=s[k|0],A=s[k+p0|0],l[n+12|0]=A,l[n+29|0]=s[k+W|0],t=s[k+G0|0],l[n+13|0]=t,l[n+30|0]=s[k+S|0],u=s[k+L|0],l[n+14|0]=u,l[n+31|0]=s[k+X0|0],k=k+Y0|0;break f}A=A+(k+(n2<>2]=s[A|0]|s[A+1|0]<<8|(s[A+2|0]<<16|s[A+3|0]<<24),l[n|0]=s[h-1|0],l[n+1|0]=s[h-2|0],o=s[h-3|0],l[n+2|0]=o,I=s[h-4|0],l[n+3|0]=I,k=A+W|0,i[n+20>>2]=s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24),k=h+W|0,l[n+4|0]=s[k-1|0],l[n+5|0]=s[k-2|0],l[n+6|0]=s[k-3|0],l[n+7|0]=s[k-4|0],k=A+S|0,i[n+24>>2]=s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24),k=h+S|0,l[n+8|0]=s[k-1|0],l[n+9|0]=s[k-2|0],l[n+10|0]=s[k-3|0],l[n+11|0]=s[k-4|0],A=A+X0|0,i[n+28>>2]=s[A|0]|s[A+1|0]<<8|(s[A+2|0]<<16|s[A+3|0]<<24),k=h+X0|0,A=s[k-1|0],l[n+12|0]=A,t=s[k-2|0],l[n+13|0]=t,u=s[k-3|0],l[n+14|0]=u,k=k-4|0}if(c0=s[k|0],l[n+15|0]=c0,E=i[f+168>>2],k=v>>E,(k|0)<0||(C=i[f+172>>2],(C|0)<=(k|0)))break i;if(Z=Q0>>E,(Z|0)<0||(H=i[f+176>>2],(H|0)<=(Z|0)))break r;J=i[f+160>>2],a=J+m(k,3)|0,w=m(m(C,Z),3),q=a+w|0,I0=l[q+2|0];f:{if(!e){if(k=T2>>E,(k|0)<0|(k|0)>=(H|0))break r;k=(a+m(m(k,C),3)|0)+2|0;break f}if(k=v-1>>E,(k|0)<0|k>>>0>=C>>>0)break i;k=(w+(J+m(k,3)|0)|0)+2|0}if(p=i[f+148>>2],Z=v>>p,(Z|0)<0||(f0=i[f+152>>2],(f0|0)<=(Z|0)))break i;if(p=Q0>>p,(p|0)<0|(p|0)>=i[f+156>>2])break r;if(R=s[n+28|0],n0=R+(s[n+30|0]-(s[n+29|0]<<1)|0)|0,_=n0>>31,u=(u&255)-(t<<1)|0,t=A,h0=u+A|0,A=h0>>31,u=s[n+16|0],r2=u+(s[n+18|0]-(s[n+17|0]<<1)|0)|0,d=r2>>31,y=o-(s[n+1|0]<<1)|0,o=s[n|0],y=y+o|0,j=y>>31,n0=(_^n0)-_|0,h0=(A^h0)-A|0,D=n0+h0|0,d=(d^r2)-d|0,j=(y^j)-j|0,_=d+j|0,k=(I0+l[k|0]|0)+1>>1,A=i[i[f+52>>2]+(Q[((i[f+140>>2]+m(Z,24)|0)+m(m(p,f0),24)|0)+2>>1]<<2)>>2],Z=k+i[A+764>>2]|0,Z=(Z|0)>=51?51:Z,p=s[((Z|0)>0?Z:0)+42960|0]<=(p|0))break A;A=(i[A+768>>2]+(k+(A0<<1)|0)|0)-2|0,A=(A|0)>=53?53:A,Z=s[((A|0)>0?A:0)+43024|0]<>>2|0,k=0;f:{if(A0>>>0<=_<<1>>>0||(I0=u-s[n+19|0]|0,_=I0>>31,f0=I-o|0,I=f0>>31,k=0,(_^I0)-_+((I^f0)-I)>>>0>=p>>>3>>>0))break f;o=o-u|0,k=o>>31,k=((k^o)-k|0)>1}o=k;f:{if(A0>>>0<=D<<1>>>0||(I=R-s[n+31|0]|0,k=I>>31,_=c0-t|0,u=_>>31,(k^I)-k+((u^_)-u)>>>0>=p>>>3>>>0))break f;k=t-R|0,A=k>>31,A=((A^k)-A|0)>1}u=s[y2+8812|0];f:{if(!e){if(t=T2>>E,u){if((t|0)<0|(t|0)>=(H|0))break r;k=!(s[(a+m(m(t,C),3)|0)+1|0]&4)}else k=1;if((t|0)<0|(t|0)>=(H|0))break r;t=a+m(m(t,C),3)|0;break f}if(t=v-1>>E,u){if((t|0)<0|t>>>0>=C>>>0)break i;k=!(s[(w+(J+m(t,3)|0)|0)+1|0]&4)}else k=1;if((t|0)<0|t>>>0>=C>>>0)break i;t=w+(J+m(t,3)|0)|0}for(A0=A&o,H=!(s[t+1|0]&8)&k,A=p+(p>>>1|0)>>>3|0,j=H&A>>>0>j+h0>>>0,k=A>>>0>d+n0>>>0,A=s[q|0]|s[q+1|0]<<8,p=!(A&2048)&(!u|!(A&1024)),c0=k&p,t=Z<<1,A=0,d=0-Z|0,I0=m(Z,10),f0=h+1|0,n0=h+W|0,h0=h-2|0,r2=h-1|0,I=Z>>1,q=0-I|0;;){C=A<<2,k=C+n|0,o=s[k+1|0],w=C+(n+16|0)|0,J=s[w+2|0],C=s[w+1|0],v=s[w|0],a=s[k+2|0],E=s[k|0];f:{if(!A0){if(k=(m(v-E|0,9)+m(C-o|0,-3)|0)+8>>4,w=k>>31,(I0|0)<=((k^w)-w|0))break f;w=(k|0)<(d|0)?d:(k|0)<(Z|0)?k:Z;k:{n:{if(!e){if(H&&(k=w+E|0,l[h+(A-W|0)|0]=(k|0)>=0?(k|0)<(z|0)?k:z:0),!p)break k;k=v-w|0,u=(k|0)>=0?(k|0)<(z|0)?k:z:0,k=A;break n}if(H&&(k=w+E|0,l[r2+m(A,W)|0]=(k|0)>=0?(k|0)<(z|0)?k:z:0),!p)break k;k=v-w|0,u=(k|0)>=0?(k|0)<(z|0)?k:z:0,k=m(A,W)}l[k+h|0]=u}if(j&&(k=w+(((E+a|0)+1>>>1|0)-o|0)>>1,k=((k|0)<(q|0)?q:(k|0)<(I|0)?k:I)+o|0,l[(e?h0+m(A,W)|0:h+(A-b2|0)|0)|0]=(k|0)>=0?(k|0)<(z|0)?k:z:0),!c0)break f;if(k=((v+J|0)+1>>>1)-(w+C)>>1,k=C+((k|0)<(q|0)?q:(k|0)<(I|0)?k:I)|0,k=(k|0)>=0?(k|0)<(z|0)?k:z:0,!e){l[A+n0|0]=k;break f}l[f0+m(A,W)|0]=k;break f}if(R=C-t|0,_=v+E|0,y=_+C|0,u=(y+J|0)+2>>>2|0,D=t+C|0,u=(u|0)<(R|0)?R:(u|0)<(D|0)?u:D,D=o-t|0,_=o+_|0,R=(_+a|0)+2>>>2|0,F0=t+o|0,R=(R|0)<(D|0)?D:(R|0)<(F0|0)?R:F0,D=J-t|0,w=((y+m(J,3)|0)+(s[w+3|0]<<1)|0)+4>>>3|0,y=t+J|0,w=(w|0)<(D|0)?D:(w|0)<(y|0)?w:y,y=a-t|0,k=((_+m(a,3)|0)+(s[k+3|0]<<1)|0)+4>>>3|0,_=t+a|0,_=(k|0)<(y|0)?y:(k|0)<(_|0)?k:_,y=v-t|0,F0=v<<1,D=(E<<1)+4|0,k=J+((F0+(D+o|0)|0)+(C<<1)|0)>>>3|0,v=t+v|0,v=(k|0)<(y|0)?y:(k|0)<(v|0)?k:v,J=E-t|0,k=C+(F0+((a+D|0)+(o<<1)|0)|0)>>>3|0,o=t+E|0,o=(k|0)<(J|0)?J:(k|0)<(o|0)?k:o,!e){if(k=A+h|0,!H){if(!p)break f;l[k|0]=v,l[k+W|0]=u,l[k+S|0]=w;break f}if(!p){l[k+p0|0]=o,l[k+G0|0]=R,l[k+L|0]=_;break f}l[k+p0|0]=o,l[k|0]=v,l[k+G0|0]=R,l[k+W|0]=u,l[k+L|0]=_,l[k+S|0]=w;break f}if(k=h+m(A,W)|0,H&&(l[k-1|0]=o),p&&(l[k|0]=v),H&&(l[k-2|0]=R),p&&(l[k+1|0]=u),H&&(l[k-3|0]=_),!p)break f;l[k+2|0]=w}if(A=A+1|0,(A|0)==4)break}}if(n2=n2+1|0,S0=S0+q2|0,!((W2|0)>(S0|0)))break}if(r=r+O2|0,!((s2|0)>(r|0)))break}}B=n+32|0;return}C0(3720,8453,119,3372),P()}C0(3758,8453,118,3372),P()}function mr(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0;A=i[f+18588>>2],I=i[A+132>>2],R=i[A+124>>2],a=i[R+16892>>2];i:{r:{e:{A:{if(!s[I+45|0]|r||(r=i[f+12>>2],i[f+8>>2]|(r|0)<=0))break A;if(S=2,(a|0)>=2){if(r=r-1|0,k=i[f+18596>>2],r>>>0>=i[k+472>>2]-i[k+468>>2]>>3>>>0)break e;i8(A,i[f+18604>>2],1,r,1),Ii(f+18572|0,(i[i[f+18596>>2]+468>>2]+(i[f+12>>2]<<3)|0)-8|0),F9((i[i[f+18596>>2]+468>>2]+(i[f+12>>2]<<3)|0)-8|0);break A}if(i8(A,i[f+18604>>2],0,r-1|0,1),r=i[f+18592>>2],A=i[r+804>>2],A>>>0>=3)break r;k6(f+18572|0,A,i[r+800>>2]),l[f+18580|0]=0,l[f+18581|0]=0,l[f+18582|0]=0,l[f+18583|0]=0}for(q=f+18548|0,h0=f+18572|0,p0=a-1|0,W=i[f+12>>2],r=i[f+8>>2],S=2;;){if(j=m(W,a)+r|0,i[R+16892>>2]<=(r|0)|j>>>0>=i[I+8452>>2]-i[I+8448>>2]>>2>>>0|i[R+16900>>2]<=(W|0)||(!e|(W|0)<=0|(r|0)>=(p0|0)||i8(i[f+18588>>2],i[f+18604>>2],r+1|0,W-1|0,1),!i[f+18576>>2]))break e;d=0,L=0,k=i[f>>2],A=i[f+18588>>2],A0=i[A+124>>2],n=i[A0+16892>>2],_=(k|0)/(n|0)|0,C=k-m(n,_)|0,n=i[A0+16876>>2],w=C<>2],t=i[A+152>>2],(t|0)<=(C|0)|(_|0)>=i[A+156>>2]||(X[(i[A+140>>2]+m(m(t,_),24)|0)+m(C,24)>>1]=i[k+808>>2]);A:{f:{if(o=i[A+148>>2],u=w>>o,!((u|0)<0|(t|0)<=(u|0))){if(J=_<>o,(o|0)<0|(o|0)>=i[A+156>>2])break f;if(X[((i[A+140>>2]+m(u,24)|0)+m(m(t,o),24)|0)+2>>1]=i[k>>2],X0=w,G0=J,s[k+333|0]|s[k+334|0]){h=0,u=B-32|0,B=u,D=i[f+18592>>2],v=i[f+18588>>2],f0=i[v+132>>2],n=i[v+124>>2],l[u+24|0]=0,i[u+16>>2]=0,i[u+20>>2]=0,i[u+8>>2]=0,i[u+12>>2]=0,A=0;k:{if((C|0)<=0||(A=0,i[f>>2]<=i[D+808>>2])||(o=C<<2,k=i[f0+8484>>2],t=m(_,i[n+16892>>2])<<2,A=0,i[o+(k+t|0)>>2]!=i[(t+(k+o|0)|0)-4>>2]))break k;A=f2(f+18548|0,i[f+18572>>2])}k=A;k:{if(k&255|(_|0)<=0||(A=i[n+16892>>2],i[D+808>>2]>(i[f>>2]-A|0))||(o=C<<2,t=i[f0+8484>>2],i[o+(t+(m(A,_)<<2)|0)>>2]!=i[o+(t+(m(A,_-1|0)<<2)|0)>>2]))break k;d=f2(f+18548|0,i[f+18572>>2])}if(!((k|d)&255)){for(o=f+18548|0,A=u+8|0,I0=A|2,Q0=A|5,F0=i[n+16848>>2],t=s[u+9|0],n=s[u+8|0],z=0;;){k:{n:{t:{o:{u:{if(!s[D+333|0]||h){if(!h|!s[D+334|0])break k;if((h|0)!=1)break t;if(f2(o,i[f+18572>>2]+1|0))break u;A=0;break o}f2(o,i[f+18572>>2]+1|0)?n=x1(o)?2:1:n=0,z=n,A=n;break n}A=x1(o)?2:1}n=A<<2|A<<4|z,z=n;break n}A=(z&255)>>>(h<<1)&3}if(!A)break k;Z=(h<<2)+Q0|0,w=h?16840:16832,p=i[w+i[v+124>>2]>>2],p=Q6(o,-1<<((p|0)>=10?10:p)-5^-1),l[Z|0]=p,y=i[w+i[v+124>>2]>>2],y=Q6(o,-1<<((y|0)>=10?10:y)-5^-1),l[Z+1|0]=y,E=i[w+i[v+124>>2]>>2],E=Q6(o,-1<<((E|0)>=10?10:E)-5^-1),l[Z+2|0]=E,w=i[w+i[v+124>>2]>>2],H=Q6(o,-1<<((w|0)>=10?10:w)-5^-1),l[Z+3|0]=H;n:{if((A|0)==1){A=0,J=0,p&255&&(J=x1(o)?-1:1),y&255&&(A=x1(o)?-1:1),w=0,n0=0,E&255&&(n0=x1(o)?-1:1),H&255&&(w=x1(o)?-1:1),S0=h+I0|0,c0=d4(o,5),l[S0|0]=c0,H=s[Z+3|0],E=s[Z+2|0],y=s[Z+1|0],p=s[Z|0];break n}t:{o:{if(!h){A=1,w=-1,t=d4(o,2);break o}if(A=1,w=-1,(h|0)!=1)break t;t=d4(o,2),t=t<<2|t<<4|L}L=t}n0=-1,J=1}Y0=p,p=s[(h?8264:8263)+f0|0],l[Z|0]=m(Y0<>>0<2,h=h+1|0,A)))break}l[u+9|0]=t,l[u+8|0]=n,A=(i[v+140>>2]+m(m(_,i[v+152>>2]),24)|0)+m(C,24)|0,l[A+20|0]=s[u+24|0],n=i[u+20>>2],t=i[u+16>>2],l[A+12|0]=t,l[A+13|0]=t>>>8,l[A+14|0]=t>>>16,l[A+15|0]=t>>>24,l[A+16|0]=n,l[A+17|0]=n>>>8,l[A+18|0]=n>>>16,l[A+19|0]=n>>>24,n=i[u+12>>2],t=i[u+8>>2],l[A+4|0]=t,l[A+5|0]=t>>>8,l[A+6|0]=t>>>16,l[A+7|0]=t>>>24,l[A+8|0]=n,l[A+9|0]=n>>>8,l[A+10|0]=n>>>16,l[A+11|0]=n>>>24}k&255&&(A=(i[v+140>>2]+m(m(_,i[v+152>>2]),24)|0)+m(C,24)|0,k=A-24|0,l[A+20|0]=s[k+20|0],n=s[k+16|0]|s[k+17|0]<<8|(s[k+18|0]<<16|s[k+19|0]<<24),t=s[k+12|0]|s[k+13|0]<<8|(s[k+14|0]<<16|s[k+15|0]<<24),l[A+12|0]=t,l[A+13|0]=t>>>8,l[A+14|0]=t>>>16,l[A+15|0]=t>>>24,l[A+16|0]=n,l[A+17|0]=n>>>8,l[A+18|0]=n>>>16,l[A+19|0]=n>>>24,n=s[k+8|0]|s[k+9|0]<<8|(s[k+10|0]<<16|s[k+11|0]<<24),k=s[k+4|0]|s[k+5|0]<<8|(s[k+6|0]<<16|s[k+7|0]<<24),l[A+4|0]=k,l[A+5|0]=k>>>8,l[A+6|0]=k>>>16,l[A+7|0]=k>>>24,l[A+8|0]=n,l[A+9|0]=n>>>8,l[A+10|0]=n>>>16,l[A+11|0]=n>>>24),d&255&&(t=m(C,24),n=i[v+140>>2],k=i[v+152>>2],A=t+(n+m(m(k,_),24)|0)|0,k=t+(n+m(m(k,_-1|0),24)|0)|0,l[A+20|0]=s[k+20|0],n=s[k+16|0]|s[k+17|0]<<8|(s[k+18|0]<<16|s[k+19|0]<<24),t=s[k+12|0]|s[k+13|0]<<8|(s[k+14|0]<<16|s[k+15|0]<<24),l[A+12|0]=t,l[A+13|0]=t>>>8,l[A+14|0]=t>>>16,l[A+15|0]=t>>>24,l[A+16|0]=n,l[A+17|0]=n>>>8,l[A+18|0]=n>>>16,l[A+19|0]=n>>>24,n=s[k+8|0]|s[k+9|0]<<8|(s[k+10|0]<<16|s[k+11|0]<<24),k=s[k+4|0]|s[k+5|0]<<8|(s[k+6|0]<<16|s[k+7|0]<<24),l[A+4|0]=k,l[A+5|0]=k>>>8,l[A+6|0]=k>>>16,l[A+7|0]=k>>>24,l[A+8|0]=n,l[A+9|0]=n>>>8,l[A+10|0]=n>>>16,l[A+11|0]=n>>>24),B=u+32|0,n=i[A0+16876>>2]}vr(f,X0,G0,n,0);break A}C0(3758,8453,128,3372),P()}C0(3720,8453,129,3372),P()}if(!(!s[I+45|0]|(r|0)!=1|(i[R+16900>>2]-1|0)<=(W|0))){if(A=i[f+18596>>2],r=i[A+468>>2],i[A+472>>2]-r>>3>>>0<=W>>>0)break e;n=r,r=W<<3,Ii(n+r|0,h0),X9(r+i[i[f+18596>>2]+468>>2]|0)}if(k=t3(q),!k|!s[I+14|0]||(Ii(i[f+18592>>2]+1340|0,h0),X9(i[f+18592>>2]+1340|0),l[i[f+18592>>2]+1348|0]=1),r=i[i[f+18588>>2]+320>>2]+m(j,76)|0,i[r>>2]<=0&&(i[r>>2]=1),u=i[f+4>>2],A=u+1|0,i[f+4>>2]=A,o=i[f+12>>2],h=i[f+18588>>2],t=i[h+124>>2],n=i[t+16908>>2],t=i[t+16892>>2],r=(A|0)<(n|0)?i[i[i[h+132>>2]+8460>>2]+(A<<2)>>2]:n,i[f>>2]=r,W=(r|0)/(t|0)|0,i[f+12>>2]=W,r=r-m(t,W)|0,i[f+8>>2]=r,!((A|0)<(n|0)|k)){v2(i[f+18584>>2]+4|0,1004,0);break i}if(k)return 0;if(s[I+46|0]?(n=A<<2,A=i[I+8472>>2],n=i[n+A>>2]!=i[A+(u<<2)>>2]):n=0,!!(n|s[I+45|0]!=0&(o|0)!=(W|0)))break}if(!t3(q)){v2(i[f+18584>>2]+4|0,1017,0);break i}Y6(q),S=1}return S}C0(16898,14036,1520,4043),P()}return l[i[f+18588>>2]+312|0]=3,2}function Ss(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=Y(0),o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=Y(0),a=Y(0),S=Y(0),q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=Y(0),X0=Y(0),G0=Y(0);e=B-112|0,B=e,A=i[r>>2],u=i[A+28>>2],h=i[A+24>>2],w=i[k+4>>2],n=w>>>0<4,o=w<<3,p=(n?16908801>>>o|0:0)&3,W=(n?16843265>>>o|0:0)&3;i:{if((U0(A,3)|0)!=8){i[f>>2]=0,i[f+4>>2]=0;break i}r:{if(D=H2(i[r>>2],6),!D||(U0(i[r>>2],6)|0)==8)break r;i[f>>2]=0,i[f+4>>2]=0;break i}n=U(136),A=n,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=72792,B0(A+20|0,0,104),v=i[A+4>>2],o=v+1|0,i[A+4>>2]=o,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,A=A- -64|0,i[A>>2]=0,i[A+4>>2]=0,i[n+132>>2]=0,i[n+124>>2]=0,i[n+128>>2]=0,i[n+84>>2]=1,i[n+88>>2]=1,i[n+72>>2]=n+76,i[n+92>>2]=0,i[n+96>>2]=0,i[n+100>>2]=0,i[n+104>>2]=0,i[n+108>>2]=0,i[n+112>>2]=0,l[n+113|0]=0,l[n+114|0]=0,l[n+115|0]=0,l[n+116|0]=0,l[n+117|0]=0,l[n+118|0]=0,l[n+119|0]=0,l[n+120|0]=0,_=n+12|0,i[n+12>>2]=_,i[n+8>>2]=i[n+8>>2]+1,i[n+4>>2]=v,i[n+16>>2]=n,o||(V[i[i[n>>2]+8>>2]](n),g(n)),i[_+36>>2]=w,i[_+32>>2]=0,i[_+28>>2]=u,i[_+24>>2]=h,o=((u+W|0)-1|0)/(W|0)|0,A=((h+p|0)-1|0)/(p|0)|0;r:{e:{A:{f:{k:{if(!J0(_,0,h,u,8)||!J0(_,1,A,o,8)||!J0(_,2,A,o,8)||D&&!J0(_,6,h,u,8))break k;if(i[e+108>>2]=0,i[e+104>>2]=0,i[e+100>>2]=0,i[e+96>>2]=0,i[e+92>>2]=0,i[e+88>>2]=0,i[e+84>>2]=0,i[e+80>>2]=0,J=v0(i[r>>2],3,e+108|0),I=v0(i[r>>2],4,e+104|0),R=v0(i[r>>2],5,e+100|0),C=v0(_,0,e+92|0),q=v0(_,1,e+88|0),d=v0(_,2,e+84|0),D&&(A0=v0(i[r>>2],6,e+96|0),f0=v0(_,6,e+80|0)),i[e+76>>2]=-1113159960,i[e+68>>2]=1056964608,i[e+72>>2]=-1093247418,i[e+60>>2]=-1096180881,i[e+64>>2]=1056964608,i[e+52>>2]=1038710997,i[e+56>>2]=-1104361250,i[e+44>>2]=1050220167,i[e+48>>2]=1058424226,l[e+40|0]=1,z=s[k+26|0],y=Q[k+24>>1],Kr(e,y,Q[k+20>>1]),r=i[e+36>>2],i[e+72>>2]=i[e+32>>2],i[e+76>>2]=r,r=i[e+28>>2],A=e- -64|0,i[A>>2]=i[e+24>>2],i[A+4>>2]=r,r=i[e+20>>2],i[e+56>>2]=i[e+16>>2],i[e+60>>2]=r,r=i[e+12>>2],i[e+48>>2]=i[e+8>>2],i[e+52>>2]=r,r=i[e+4>>2],i[e+40>>2]=i[e>>2],i[e+44>>2]=r,(u|0)<=0)break r;if((h|0)<=0)break e;if(!y)break f;for(A=0;;){for(r=0;;){Z=(C+m(i[e+92>>2],A)|0)+r|0,t=Y(Y(Y(s[(m(i[e+100>>2],A)+R|0)+r|0])*Z0[e+52>>2])+Y(Y(Y(s[(J+m(i[e+108>>2],A)|0)+r|0])*Z0[e+44>>2])+Y(Z0[e+48>>2]*Y(s[(I+m(i[e+104>>2],A)|0)+r|0])))),t=Y((z&1?t:Y(Y(Y(t*Y(219))*Y(.00390625))+Y(16)))+Y(.5));n:{if(Y(d0(t))=0?k>>>0>=255?255:k:0,r=r+1|0,(h|0)==(r|0))break}if(A=A+1|0,(u|0)==(A|0))break}break A}if(i[f>>2]=0,i[f+4>>2]=0,f=i[n+4>>2],i[n+4>>2]=f-1,f)break i;V[i[i[n>>2]+8>>2]](n),g(n);break i}if(!(z&1)){for(k=0;;){for(r=0;;){Z=(C+m(i[e+92>>2],k)|0)+r|0,t=Y(Y(Y(Y(Y(s[(I+m(i[e+104>>2],k)|0)+r|0])*Y(219))*Y(.00390625))+Y(16))+Y(.5));f:{if(Y(d0(t))=0?A>>>0>=255?255:A:0,r=r+1|0,(h|0)==(r|0))break}if(k=k+1|0,(u|0)==(k|0))break}break A}for(w=h&2147483646,v=h&1,A=0;;){if(r=0,k=0,(h|0)!=1)for(;l[(C+m(i[e+92>>2],A)|0)+r|0]=s[(I+m(i[e+104>>2],A)|0)+r|0],o=r|1,l[o+(C+m(i[e+92>>2],A)|0)|0]=s[o+(I+m(i[e+104>>2],A)|0)|0],r=r+2|0,k=k+2|0,(w|0)!=(k|0););if(v&&(l[(C+m(i[e+92>>2],A)|0)+r|0]=s[(I+m(i[e+104>>2],A)|0)+r|0]),A=A+1|0,(u|0)==(A|0))break}}if((u|0)<=0)break r;if(y){for(k=0,h0=(W|0)==2,L=(p|W)>>>0<2;;){for(r=k+1|0,n0=h0&&(r|0)<(u|0)?r:k,j=(k>>>0)/(W>>>0)|0,r=0;;){C=i[e+100>>2],A=m(C,k)+R|0,H=Y(s[A+r|0]),y=i[e+104>>2],w=I+m(y,k)|0,a=Y(s[w+r|0]),v=i[e+108>>2],o=J+m(v,k)|0,S=Y(s[o+r|0]),L||(Z=A,A=r+1|0,E=h0&&(p|0)==2&&(A|0)<(h|0)?A:r,A=m(C,n0)+R|0,H=Y(Y(Y(Y(H+Y(s[Z+E|0]))+Y(s[A+r|0]))+Y(s[A+E|0]))*Y(.25)),A=I+m(y,n0)|0,a=Y(Y(Y(Y(a+Y(s[w+E|0]))+Y(s[A+r|0]))+Y(s[A+E|0]))*Y(.25)),A=J+m(v,n0)|0,S=Y(Y(Y(Y(S+Y(s[o+E|0]))+Y(s[A+r|0]))+Y(s[A+E|0]))*Y(.25))),p0=Z0[e+76>>2],X0=Z0[e+68>>2],G0=Z0[e+72>>2],w=(r>>>0)/(p>>>0)|0,Z=w+(m(j,i[e+88>>2])+q|0)|0,t=Y(Y(H*Z0[e+64>>2])+Y(Y(S*Z0[e+56>>2])+Y(a*Z0[e+60>>2]))),v=z&1,t=Y(Y((v?t:Y(Y(t*Y(224))*Y(.00390625)))+Y(128))+Y(.5));A:{if(Y(d0(t))=0?A>>>0>=255?255:A:0,Z=w+(m(j,i[e+84>>2])+d|0)|0,t=Y(Y(H*p0)+Y(Y(S*X0)+Y(a*G0))),t=Y(Y((v?t:Y(Y(t*Y(224))*Y(.00390625)))+Y(128))+Y(.5));A:{if(Y(d0(t))=0?A>>>0>=255?255:A:0,r=r+p|0,!((h|0)>(r|0)))break}if(k=k+W|0,!((u|0)>(k|0)))break}break e}if(A=0,!(z&1))for(;;){for(w=(A>>>0)/(W>>>0)|0,r=0;;){v=(r>>>0)/(p>>>0)|0,Z=v+(m(w,i[e+88>>2])+q|0)|0,t=Y(Y(Y(Y(Y(s[(m(i[e+100>>2],A)+R|0)+r|0])*Y(224))*Y(.00390625))+Y(16))+Y(.5));A:{if(Y(d0(t))=0?k>>>0>=255?255:k:0,Z=v+(m(w,i[e+88>>2])+d|0)|0,t=Y(Y(Y(Y(Y(s[(J+m(i[e+100>>2],A)|0)+r|0])*Y(224))*Y(.00390625))+Y(16))+Y(.5));A:{if(Y(d0(t))=0?k>>>0>=255?255:k:0,r=r+p|0,!((h|0)>(r|0)))break}if(A=A+W|0,!((u|0)>(A|0)))break e}for(;;){for(o=(A>>>0)/(W>>>0)|0,r=0;k=(r>>>0)/(p>>>0)|0,l[k+(m(o,i[e+88>>2])+q|0)|0]=s[(m(i[e+100>>2],A)+R|0)+r|0],l[k+(m(o,i[e+88>>2])+d|0)|0]=s[(J+m(i[e+100>>2],A)|0)+r|0],r=r+p|0,(h|0)>(r|0););if(A=A+W|0,!((u|0)>(A|0)))break}}if(D^1|(u|0)<=0)break r;if(r=0,(u|0)!=1)for(o=u&2147483646,A=0;l0(m(i[e+80>>2],r)+f0|0,m(i[e+96>>2],r)+A0|0,h),k=r|1,l0(m(k,i[e+80>>2])+f0|0,m(k,i[e+96>>2])+A0|0,h),r=r+2|0,A=A+2|0,(o|0)!=(A|0););if(!(u&1))break r;l0(m(i[e+80>>2],r)+f0|0,m(i[e+96>>2],r)+A0|0,h)}i[f+4>>2]=n,i[f>>2]=_}B=e+112|0}function Ck(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0;W=B-48|0,B=W,U2(+f),_=j0(1)|0,r=j0(0)|0;i:{r:{u=_&2147483647;e:{if(u>>>0<=1074752122){if((_&1048575)==598523)break e;if(u>>>0<=1073928572){if((_|0)>0|(_|0)>=0){f=f+-1.5707963267341256,n=f+-6077100506506192e-26,i0[e>>3]=n,i0[e+8>>3]=f-n+-6077100506506192e-26,A=1;break i}f=f+1.5707963267341256,n=f+6077100506506192e-26,i0[e>>3]=n,i0[e+8>>3]=f-n+6077100506506192e-26,A=-1;break i}if((_|0)>0|(_|0)>=0){f=f+-3.1415926534682512,n=f+-12154201013012384e-26,i0[e>>3]=n,i0[e+8>>3]=f-n+-12154201013012384e-26,A=2;break i}f=f+3.1415926534682512,n=f+12154201013012384e-26,i0[e>>3]=n,i0[e+8>>3]=f-n+12154201013012384e-26,A=-2;break i}if(u>>>0<=1075594811){if(u>>>0<=1075183036){if((u|0)==1074977148)break e;if((_|0)>0|(_|0)>=0){f=f+-4.712388980202377,n=f+-18231301519518578e-26,i0[e>>3]=n,i0[e+8>>3]=f-n+-18231301519518578e-26,A=3;break i}f=f+4.712388980202377,n=f+18231301519518578e-26,i0[e>>3]=n,i0[e+8>>3]=f-n+18231301519518578e-26,A=-3;break i}if((u|0)==1075388923)break e;if((_|0)>0|(_|0)>=0){f=f+-6.2831853069365025,n=f+-2430840202602477e-25,i0[e>>3]=n,i0[e+8>>3]=f-n+-2430840202602477e-25,A=4;break i}f=f+6.2831853069365025,n=f+2430840202602477e-25,i0[e>>3]=n,i0[e+8>>3]=f-n+2430840202602477e-25,A=-4;break i}if(u>>>0>1094263290)break r}w=f*.6366197723675814+6755399441055744+-6755399441055744,n=f+w*-1.5707963267341256,v=w*6077100506506192e-26,R=n-v,r=R<-.7853981633974483,d0(w)<2147483648?A=~~w:A=-2147483648;e:{if(r){A=A-1|0,w=w+-1,v=w*6077100506506192e-26,n=f+w*-1.5707963267341256;break e}if(!(R>.7853981633974483))break e;A=A+1|0,w=w+1,v=w*6077100506506192e-26,n=f+w*-1.5707963267341256}f=n-v,i0[e>>3]=f,U2(+f),r=j0(1)|0,j0(0)|0,_=u>>>20|0;e:{if((_-(r>>>20&2047)|0)<17||(v=n,f=w*6077100506303966e-26,n=n-f,v=w*20222662487959506e-37-(v-n-f),f=n-v,i0[e>>3]=f,U2(+f),r=j0(1)|0,j0(0)|0,(_-(r>>>20&2047)|0)<50))break e;v=n,f=w*20222662487111665e-37,n=n-f,v=w*84784276603689e-45-(v-n-f),f=n-v,i0[e>>3]=f}i0[e+8>>3]=n-f-v;break i}if(u>>>0>=2146435072){f=f-f,i0[e>>3]=f,i0[e+8>>3]=f;break i}for(A=W+16|0,k=A|8,N2(0,r|0),N2(1,_&1048575|1096810496),f=+m1(),r=1;d0(f)<2147483648?h=~~f:h=-2147483648,n=+(h|0),i0[A>>3]=n,f=(f-n)*16777216,h=r,r=0,A=k,!!h;);for(i0[W+32>>3]=f,A=2;r=A,A=r-1|0,E=W+16|0,i0[E+(r<<3)>>3]==0;);if(k=0,t=B-560|0,B=t,A=(u>>>20|0)-1046|0,h=(A-3|0)/24|0,J=(h|0)>0?h:0,h=m(J,-24)+A|0,C=i[11757],I=r+1|0,o=I-1|0,(C+o|0)>=0)for(A=C+I|0,r=J-o|0;i0[(t+320|0)+(k<<3)>>3]=(r|0)<0?0:+i[(r<<2)+47040>>2],r=r+1|0,k=k+1|0,(A|0)!=(k|0););for(u=h-24|0,A=0,k=(C|0)>0?C:0,p=(I|0)<=0;;){r:{if(p){f=0;break r}for(Z=A+o|0,r=0,f=0;f=i0[(r<<3)+E>>3]*i0[(t+320|0)+(Z-r<<3)>>3]+f,r=r+1|0,(I|0)!=(r|0););}if(i0[(A<<3)+t>>3]=f,r=(A|0)==(k|0),A=A+1|0,!!r)break}H=47-h|0,D=48-h|0,a=h-25|0,A=C;r:{for(;;){if(f=i0[(A<<3)+t>>3],r=0,k=A,Z=(A|0)<=0,!Z)for(;;){p=(t+480|0)+(r<<2)|0,n=f*5960464477539063e-23;e:{if(d0(n)<2147483648){o=~~n;break e}o=-2147483648}n=+(o|0),f=n*-16777216+f;e:{if(d0(f)<2147483648){o=~~f;break e}o=-2147483648}if(i[p>>2]=o,k=k-1|0,f=i0[(k<<3)+t>>3]+n,r=r+1|0,(A|0)==(r|0))break}f=M1(f,u),f=f+us(f*.125)*-8;e:{if(d0(f)<2147483648){p=~~f;break e}p=-2147483648}f=f-+(p|0);e:{A:{f:{z=(u|0)<=0;k:{if(!z){k=(A<<2)+t|0,o=i[k+476>>2],r=o>>D,y=k,k=o-(r<>2]=k,p=r+p|0,o=k>>H;break k}if(u)break f;o=i[((A<<2)+t|0)+476>>2]>>23}if((o|0)<=0)break e;break A}if(o=2,f>=.5)break A;o=0;break e}if(r=0,k=0,!Z)for(;;){Z=(t+480|0)+(r<<2)|0,y=i[Z>>2];A:{f:{if(k)k=16777215;else{if(!y)break f;k=16777216}i[Z>>2]=k-y,k=1;break A}k=0}if(r=r+1|0,(A|0)==(r|0))break}A:{if(z)break A;r=8388607;f:switch(a|0){case 1:r=4194303;break;case 0:break f;default:break A}Z=(A<<2)+t|0,i[Z+476>>2]=i[Z+476>>2]&r}if(p=p+1|0,(o|0)!=2||(f=1-f,o=2,!k))break e;f=f-M1(1,u)}if(f==0){k=0;e:{if(r=A,(C|0)>=(r|0))break e;for(;r=r-1|0,k=i[(t+480|0)+(r<<2)>>2]|k,(r|0)>(C|0););if(!k)break e;for(h=u;h=h-24|0,A=A-1|0,!i[(t+480|0)+(A<<2)>>2];);break r}for(r=1;k=r,r=r+1|0,!i[(t+480|0)+(C-k<<2)>>2];);for(k=A+k|0;;){if(o=A+I|0,A=A+1|0,i0[(t+320|0)+(o<<3)>>3]=i[(J+A<<2)+47040>>2],r=0,f=0,(I|0)>0)for(;f=i0[(r<<3)+E>>3]*i0[(t+320|0)+(o-r<<3)>>3]+f,r=r+1|0,(I|0)!=(r|0););if(i0[(A<<3)+t>>3]=f,!((A|0)<(k|0)))break}A=k;continue}break}f=M1(f,24-h|0);e:{if(f>=16777216){u=(t+480|0)+(A<<2)|0,n=f*5960464477539063e-23;A:{if(d0(n)<2147483648){r=~~n;break A}r=-2147483648}f=+(r|0)*-16777216+f;A:{if(d0(f)<2147483648){k=~~f;break A}k=-2147483648}i[u>>2]=k,A=A+1|0;break e}d0(f)<2147483648?r=~~f:r=-2147483648,h=u}i[(t+480|0)+(A<<2)>>2]=r}f=M1(1,h);r:{if((A|0)<0)break r;for(r=A;k=r,i0[(r<<3)+t>>3]=f*+i[(t+480|0)+(r<<2)>>2],r=r-1|0,f=f*5960464477539063e-23,!!k;);if((A|0)<0)break r;for(k=A;;){if(f=0,r=0,h=A-k|0,u=(h|0)>(C|0)?C:h,(u|0)>=0)for(;f=i0[(r<<3)+49808>>3]*i0[(r+k<<3)+t>>3]+f,Z=(r|0)!=(u|0),r=r+1|0,!!Z;);if(i0[(t+160|0)+(h<<3)>>3]=f,r=(k|0)>0,k=k-1|0,!r)break}}if(f=0,(A|0)>=0)for(r=A;k=r,r=r-1|0,f=f+i0[(t+160|0)+(k<<3)>>3],!!k;);if(i0[W>>3]=o?-f:f,f=i0[t+160>>3]-f,r=1,(A|0)>0)for(;f=f+i0[(t+160|0)+(r<<3)>>3],k=(r|0)!=(A|0),r=r+1|0,!!k;);if(i0[W+8>>3]=o?-f:f,B=t+560|0,A=p&7,f=i0[W>>3],(_|0)<0){i0[e>>3]=-f,i0[e+8>>3]=-i0[W+8>>3],A=0-A|0;break i}i0[e>>3]=f,i0[e+8>>3]=i0[W+8>>3]}return B=W+48|0,A}function Os(f,e,r,A,k,n){f=f|0,e=+e,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0;Z=B-560|0,B=Z,i[Z+44>>2]=0,U2(+e),o=j0(1)|0,j0(0)|0;i:{if((o|0)<0){E=1,H=2473,e=-e,U2(+e),o=j0(1)|0,j0(0)|0;break i}if(k&2048){E=1,H=2476;break i}E=k&1,H=E?2479:2474,I=!E}i:{if((o&2146435072)==2146435072){o=E+3|0,$1(f,32,r,o,k&-65537),H1(f,H,E),A=n&32,H1(f,e!=e?A?7073:14991:A?8743:15160,3),$1(f,32,r,o,k^8192),v=(r|0)<(o|0)?o:r;break i}R=Z+16|0;r:{e:{A:{if(e=Y9(e,Z+44|0),e=e+e,e!=0){if(o=i[Z+44>>2],i[Z+44>>2]=o-1,z=n|32,(z|0)!=97)break A;break r}if(z=n|32,(z|0)==97)break r;w=i[Z+44>>2],_=(A|0)<0?6:A;break e}w=o-29|0,i[Z+44>>2]=w,e=e*268435456,_=(A|0)<0?6:A}for(W=(Z+48|0)+((w|0)>=0?288:0)|0,o=W;e<4294967296&e>=0?A=~~e>>>0:A=0,i[o>>2]=A,o=o+4|0,e=(e-+(A>>>0))*1e9,e!=0;);e:{if((w|0)<=0){A=w,t=o,u=W;break e}for(u=W,A=w;;){h=A>>>0>=29?29:A,t=o-4|0;A:{if(u>>>0>t>>>0)break A;for(p=0;A=i[t>>2],v=h&31,D=p,(h&63)>>>0>=32?(p=A<>>32-v,A=A<>>0>D>>>0?v+1|0:v,p=K6(D,v,1e9,0),a=t,S=D-q0(p,w0,1e9,0)|0,i[a>>2]=S,t=t-4|0,u>>>0<=t>>>0;);if(!v&D>>>0<1e9)break A;u=u-4|0,i[u>>2]=p}for(;t=o,u>>>0>>0&&(o=t-4|0,!i[o>>2]););if(A=i[Z+44>>2]-h|0,i[Z+44>>2]=A,o=t,!((A|0)>0))break}}if((A|0)<0)for(J=((_+25>>>0)/9|0)+1|0,y=(z|0)==102;;){A=0-A|0,v=A>>>0>=9?9:A;e:{if(t>>>0<=u>>>0){o=!i[u>>2]<<2;break e}for(p=1e9>>>v|0,h=-1<>2],i[o>>2]=D+(A>>>v|0),A=m(p,A&h),o=o+4|0,o>>>0>>0;);if(o=!i[u>>2]<<2,!A)break e;i[t>>2]=A,t=t+4|0}if(A=v+i[Z+44>>2]|0,i[Z+44>>2]=A,u=o+u|0,o=y?W:u,t=t-o>>2>(J|0)?o+(J<<2)|0:t,!((A|0)<0))break}A=0;e:{if(t>>>0<=u>>>0||(A=m(W-u>>2,9),o=10,h=i[u>>2],h>>>0<10))break e;for(;A=A+1|0,o=m(o,10),h>>>0>=o>>>0;);}if(o=(_-((z|0)!=102?A:0)|0)-((z|0)==103&(_|0)!=0)|0,(o|0)<(m(t-W>>2,9)-9|0)){if(p=o+9216|0,h=(p|0)/9|0,w=((Z+48|0)+((w|0)<0?-4092:-3804)|0)+(h<<2)|0,o=10,v=p-m(h,9)|0,(v|0)<=7)for(;o=m(o,10),v=v+1|0,(v|0)!=8;);p=i[w>>2],J=(p>>>0)/(o>>>0)|0,y=p-m(o,J)|0,h=w+4|0;e:{if(!y&(h|0)==(t|0))break e;A:{if(!(J&1)&&(e=9007199254740992,!(l[w-4|0]&1)|((o|0)!=1e9|u>>>0>=w>>>0)))break A;e=9007199254740994}if(C=(t|0)==(h|0)?1:1.5,h=o>>>1|0,C=h>>>0>y>>>0?.5:(h|0)==(y|0)?C:1.5,s[H|0]!=45|I||(C=-C,e=-e),h=p-y|0,i[w>>2]=h,e+C==e)break e;if(A=o+h|0,i[w>>2]=A,A>>>0>=1e9)for(;i[w>>2]=0,w=w-4|0,w>>>0>>0&&(u=u-4|0,i[u>>2]=0),A=i[w>>2]+1|0,i[w>>2]=A,A>>>0>999999999;);if(A=m(W-u>>2,9),o=10,h=i[u>>2],h>>>0<10)break e;for(;A=A+1|0,o=m(o,10),h>>>0>=o>>>0;);}o=w+4|0,t=t>>>0>o>>>0?o:t}for(;h=t,p=t>>>0<=u>>>0,!p&&(t=t-4|0,!i[t>>2]););e:{if((z|0)!=103){w=k&8;break e}if(t=_||1,o=(t|0)>(A|0)&(A|0)>-5,_=(o?A^-1:-1)+t|0,n=(o?-1:-2)+n|0,w=k&8,w)break e;t=-9;A:{if(p||(w=i[h-4>>2],!w)||(v=10,t=0,(w>>>0)%10|0))break A;for(;o=t,t=t+1|0,v=m(v,10),!((w>>>0)%(v>>>0)|0););t=o^-1}if(o=m(h-W>>2,9),(n&-33)==70){w=0,o=(t+o|0)-9|0,o=(o|0)>0?o:0,_=(o|0)>(_|0)?_:o;break e}w=0,o=((A+o|0)+t|0)-9|0,o=(o|0)>0?o:0,_=(o|0)>(_|0)?_:o}if(v=-1,y=_|w,((y?2147483645:2147483646)|0)<(_|0))break i;I=(((y|0)!=0)+_|0)+1|0,p=n&-33;e:{if((p|0)==70){if((I^2147483647)<(A|0))break i;t=(A|0)>0?A:0;break e}if(o=A>>31,t=Yi((o^A)-o|0,0,R),(R-t|0)<=1)for(;t=t-1|0,l[t|0]=48,(R-t|0)<2;);if(J=t-2|0,l[J|0]=n,l[t-1|0]=(A|0)<0?45:43,t=R-J|0,(t|0)>(I^2147483647))break i}if(A=t+I|0,(A|0)>(E^2147483647))break i;I=A+E|0,$1(f,32,r,I,k),H1(f,H,E),$1(f,48,r,I,k^65536);e:{A:{f:{if((p|0)==70){for(o=Z+16|9,n=u>>>0>W>>>0?W:u,u=n;;){t=Yi(i[u>>2],0,o);k:{if((n|0)!=(u|0)){if(Z+16>>>0>=t>>>0)break k;for(;t=t-1|0,l[t|0]=48,Z+16>>>0>>0;);break k}if((t|0)!=(o|0))break k;t=t-1|0,l[t|0]=48}if(H1(f,t,o-t|0),u=u+4|0,!(W>>>0>=u>>>0))break}if(y&&H1(f,18135,1),(_|0)<=0|u>>>0>=h>>>0)break f;for(;;){if(t=Yi(i[u>>2],0,o),t>>>0>Z+16>>>0)for(;t=t-1|0,l[t|0]=48,Z+16>>>0>>0;);if(H1(f,t,(_|0)>=9?9:_),t=_-9|0,u=u+4|0,h>>>0<=u>>>0)break A;if(A=(_|0)>9,_=t,!A)break}break A}k:{if((_|0)<0)break k;for(n=u>>>0>>0?h:u+4|0,W=Z+16|9,o=u;;){t=Yi(i[o>>2],0,W),(W|0)==(t|0)&&(t=t-1|0,l[t|0]=48);n:{if((o|0)!=(u|0)){if(Z+16>>>0>=t>>>0)break n;for(;t=t-1|0,l[t|0]=48,Z+16>>>0>>0;);break n}if(H1(f,t,1),t=t+1|0,!(_|w))break n;H1(f,18135,1)}if(A=W-t|0,H1(f,t,(A|0)<(_|0)?A:_),_=_-A|0,o=o+4|0,n>>>0<=o>>>0)break k;if(!((_|0)>=0))break}}$1(f,48,_+18|0,18,0),H1(f,J,R-J|0);break e}t=_}$1(f,48,t+9|0,9,0)}$1(f,32,r,I,k^8192),v=(r|0)<(I|0)?I:r;break i}w=(n<<26>>31&9)+H|0;r:{if(A>>>0>11)break r;for(t=12-A|0,C=16;C=C*16,t=t-1|0,!!t;);if(s[w|0]==45){e=-(C+(-e-C));break r}e=e+C-C}for(o=i[Z+44>>2],t=o>>31,t=Yi((t^o)-t|0,0,R),(R|0)==(t|0)&&(t=t-1|0,l[t|0]=48),W=E|2,u=n&32,o=i[Z+44>>2],_=t-2|0,l[_|0]=n+15,l[t-1|0]=(o|0)<0?45:43,t=k&8,o=Z+16|0;n=o,d0(e)<2147483648?h=~~e:h=-2147483648,l[o|0]=u|s[h+52592|0],e=(e-+(h|0))*16,o=n+1|0,!((A|0)>0|t)&e==0|(o-(Z+16|0)|0)!=1||(l[n+1|0]=46,o=n+2|0),e!=0;);if(v=-1,t=R-_|0,n=t+W|0,(2147483645-n|0)<(A|0))break i;h=n,n=Z+16|0,u=o-n|0,A=A&&(u-2|0)<(A|0)?A+2|0:u,o=h+A|0,$1(f,32,r,o,k),H1(f,w,W),$1(f,48,r,o,k^65536),H1(f,n,u),$1(f,48,A-u|0,0,0),H1(f,_,t),$1(f,32,r,o,k^8192),v=(r|0)<(o|0)?o:r}return B=Z+560|0,v|0}function js(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0;if(A=X[e+22>>1],v=X[e+6>>1],w=X[e+30>>1],o=((m(A,-74)+m(v,74)|0)+m(w,74)|0)- -64>>7,o=(o|0)>=32767?32767:o,o=(o|0)<=-32768?-32768:o,n=X[e+20>>1],u=X[e+4>>1],t=X[e+28>>1],p=((m(n,-74)+m(u,74)|0)+m(t,74)|0)- -64>>7,p=(p|0)>=32767?32767:p,p=(p|0)<=-32768?-32768:p,I=X[e+18>>1],h=X[e+2>>1],Z=X[e+26>>1],_=((m(I,-74)+m(h,74)|0)+m(Z,74)|0)- -64>>7,_=(_|0)>=32767?32767:_,y=(_|0)<=-32768?-32768:_,E=X[e+16>>1],J=X[e>>1],R=X[e+24>>1],_=((m(E,-74)+m(J,74)|0)+m(R,74)|0)- -64>>7,_=(_|0)>=32767?32767:_,_=(_|0)<=-32768?-32768:_,k=X[e+14>>1],W=(((m(k,-74)+m(v,84)|0)+m(A,55)|0)+m(w,-29)|0)- -64>>7,W=(W|0)>=32767?32767:W,W=(W|0)<=-32768?-32768:W,C=m(k,74),k=(((C+m(v,55)|0)+m(A,-29)|0)+m(w,-84)|0)- -64>>7,k=(k|0)>=32767?32767:k,k=(k|0)<=-32768?-32768:k,A=(((C+m(v,29)|0)+m(A,84)|0)+m(w,55)|0)- -64>>7,A=(A|0)>=32767?32767:A,A=(A|0)<=-32768?-32768:A,w=X[e+12>>1],v=(((m(w,-74)+m(u,84)|0)+m(n,55)|0)+m(t,-29)|0)- -64>>7,v=(v|0)>=32767?32767:v,v=(v|0)<=-32768?-32768:v,C=m(w,74),w=(((C+m(u,55)|0)+m(n,-29)|0)+m(t,-84)|0)- -64>>7,w=(w|0)>=32767?32767:w,w=(w|0)<=-32768?-32768:w,n=(((C+m(u,29)|0)+m(n,84)|0)+m(t,55)|0)- -64>>7,n=(n|0)>=32767?32767:n,n=(n|0)<=-32768?-32768:n,u=X[e+10>>1],t=(((m(u,-74)+m(h,84)|0)+m(I,55)|0)+m(Z,-29)|0)- -64>>7,t=(t|0)>=32767?32767:t,C=(t|0)<=-32768?-32768:t,u=m(u,74),t=(((u+m(h,55)|0)+m(I,-29)|0)+m(Z,-84)|0)- -64>>7,t=(t|0)>=32767?32767:t,D=(t|0)<=-32768?-32768:t,u=(((u+m(h,29)|0)+m(I,84)|0)+m(Z,55)|0)- -64>>7,u=(u|0)>=32767?32767:u,I=(u|0)<=-32768?-32768:u,u=X[e+8>>1],e=(((m(u,-74)+m(J,84)|0)+m(E,55)|0)+m(R,-29)|0)- -64>>7,e=(e|0)>=32767?32767:e,e=(e|0)<=-32768?-32768:e,t=m(u,74),u=(((t+m(J,55)|0)+m(E,-29)|0)+m(R,-84)|0)- -64>>7,u=(u|0)>=32767?32767:u,u=(u|0)<=-32768?-32768:u,t=(((t+m(J,29)|0)+m(E,84)|0)+m(R,55)|0)- -64>>7,t=(t|0)>=32767?32767:t,t=(t|0)<=-32768?-32768:t,(r|0)!=1){h=s[f+2|0]+(((m(n,-74)+m(t,74)|0)+m(A,74)|0)+2048>>12)|0,h=(h|0)>=255?255:h,l[f+2|0]=(h|0)>0?h:0,h=m(I,74),Z=s[f|0]+((((h+m(t,29)|0)+m(n,84)|0)+m(A,55)|0)+2048>>12)|0,Z=(Z|0)>=255?255:Z,l[f|0]=(Z|0)>0?Z:0,h=s[f+1|0]+((((h+m(t,55)|0)+m(n,-29)|0)+m(A,-84)|0)+2048>>12)|0,h=(h|0)>=255?255:h,l[f+1|0]=(h|0)>0?h:0,A=s[f+3|0]+((((m(I,-74)+m(t,84)|0)+m(n,55)|0)+m(A,-29)|0)+2048>>12)|0,A=(A|0)>=255?255:A,l[f+3|0]=(A|0)>0?A:0,A=f+r|0,t=m(D,74),n=s[A|0]+((((t+m(u,29)|0)+m(w,84)|0)+m(k,55)|0)+2048>>12)|0,n=(n|0)>=255?255:n,l[A|0]=(n|0)>0?n:0,n=s[A+1|0]+((((t+m(u,55)|0)+m(w,-29)|0)+m(k,-84)|0)+2048>>12)|0,n=(n|0)>=255?255:n,l[A+1|0]=(n|0)>0?n:0,n=s[A+2|0]+(((m(w,-74)+m(u,74)|0)+m(k,74)|0)+2048>>12)|0,n=(n|0)>=255?255:n,l[A+2|0]=(n|0)>0?n:0,k=s[A+3|0]+((((m(D,-74)+m(u,84)|0)+m(w,55)|0)+m(k,-29)|0)+2048>>12)|0,k=(k|0)>=255?255:k,l[A+3|0]=(k|0)>0?k:0,k=(r<<1)+f|0,w=m(y,74),A=s[k|0]+((((w+m(_,29)|0)+m(p,84)|0)+m(o,55)|0)+2048>>12)|0,A=(A|0)>=255?255:A,l[k|0]=(A|0)>0?A:0,A=s[k+1|0]+((((w+m(_,55)|0)+m(p,-29)|0)+m(o,-84)|0)+2048>>12)|0,A=(A|0)>=255?255:A,l[k+1|0]=(A|0)>0?A:0,A=s[k+2|0]+(((m(p,-74)+m(_,74)|0)+m(o,74)|0)+2048>>12)|0,A=(A|0)>=255?255:A,l[k+2|0]=(A|0)>0?A:0,o=s[k+3|0]+((((m(y,-74)+m(_,84)|0)+m(p,55)|0)+m(o,-29)|0)+2048>>12)|0,o=(o|0)>=255?255:o,l[k+3|0]=(o|0)>0?o:0,f=m(r,3)+f|0,o=m(C,74),r=s[f|0]+((((o+m(e,29)|0)+m(v,84)|0)+m(W,55)|0)+2048>>12)|0,r=(r|0)>=255?255:r,l[f|0]=(r|0)>0?r:0,r=s[f+1|0]+((((o+m(e,55)|0)+m(v,-29)|0)+m(W,-84)|0)+2048>>12)|0,r=(r|0)>=255?255:r,l[f+1|0]=(r|0)>0?r:0,r=s[f+2|0]+(((m(v,-74)+m(e,74)|0)+m(W,74)|0)+2048>>12)|0,r=(r|0)>=255?255:r,l[f+2|0]=(r|0)>0?r:0,r=f,f=s[f+3|0]+((((m(C,-74)+m(e,84)|0)+m(v,55)|0)+m(W,-29)|0)+2048>>12)|0,f=(f|0)>=255?255:f,l[r+3|0]=(f|0)>0?f:0;return}h=s[f+2|0]+(((m(n,-74)+m(t,74)|0)+m(A,74)|0)+2048>>12)|0,h=(h|0)>=255?255:h,l[f+2|0]=(h|0)>0?h:0,h=m(I,74),Z=s[f|0]+((((h+m(t,29)|0)+m(n,84)|0)+m(A,55)|0)+2048>>12)|0,Z=(Z|0)>=255?255:Z,l[f|0]=(Z|0)>0?Z:0,h=s[f+1|0]+((((h+m(t,55)|0)+m(n,-29)|0)+m(A,-84)|0)+2048>>12)|0,h=(h|0)>=255?255:h,l[f+1|0]=(h|0)>0?h:0,A=s[f+3|0]+((((m(I,-74)+m(t,84)|0)+m(n,55)|0)+m(A,-29)|0)+2048>>12)|0,A=(A|0)>=255?255:A,n=(A|0)>0?A:0,l[f+3|0]=n,A=f+r|0,n=n+(((m(w,-74)+m(u,74)|0)+m(k,74)|0)+2048>>12)|0,n=(n|0)>=255?255:n,l[A+2|0]=(n|0)>0?n:0,n=m(D,74),t=s[A|0]+((((n+m(u,29)|0)+m(w,84)|0)+m(k,55)|0)+2048>>12)|0,t=(t|0)>=255?255:t,l[A|0]=(t|0)>0?t:0,n=s[A+1|0]+((((n+m(u,55)|0)+m(w,-29)|0)+m(k,-84)|0)+2048>>12)|0,n=(n|0)>=255?255:n,l[A+1|0]=(n|0)>0?n:0,k=s[A+3|0]+((((m(D,-74)+m(u,84)|0)+m(w,55)|0)+m(k,-29)|0)+2048>>12)|0,k=(k|0)>=255?255:k,k=(k|0)>0?k:0,l[A+3|0]=k,k=k+(((m(p,-74)+m(_,74)|0)+m(o,74)|0)+2048>>12)|0,k=(k|0)>=255?255:k,l[f+4|0]=(k|0)>0?k:0,k=m(y,74),A=s[f+2|0]+((((k+m(_,29)|0)+m(p,84)|0)+m(o,55)|0)+2048>>12)|0,A=(A|0)>=255?255:A,l[f+2|0]=(A|0)>0?A:0,k=s[f+3|0]+((((k+m(_,55)|0)+m(p,-29)|0)+m(o,-84)|0)+2048>>12)|0,k=(k|0)>=255?255:k,l[f+3|0]=(k|0)>0?k:0,o=s[f+5|0]+((((m(y,-74)+m(_,84)|0)+m(p,55)|0)+m(o,-29)|0)+2048>>12)|0,o=(o|0)>=255?255:o,o=(o|0)>0?o:0,l[f+5|0]=o,f=m(r,3)+f|0,r=o+(((m(v,-74)+m(e,74)|0)+m(W,74)|0)+2048>>12)|0,r=(r|0)>=255?255:r,l[f+2|0]=(r|0)>0?r:0,r=m(C,74),o=s[f|0]+((((r+m(e,29)|0)+m(v,84)|0)+m(W,55)|0)+2048>>12)|0,o=(o|0)>=255?255:o,l[f|0]=(o|0)>0?o:0,r=s[f+1|0]+((((r+m(e,55)|0)+m(v,-29)|0)+m(W,-84)|0)+2048>>12)|0,r=(r|0)>=255?255:r,l[f+1|0]=(r|0)>0?r:0,r=f,f=s[f+3|0]+((((m(C,-74)+m(e,84)|0)+m(v,55)|0)+m(W,-29)|0)+2048>>12)|0,f=(f|0)>=255?255:f,l[r+3|0]=(f|0)>0?f:0}function Ps(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0,r2=0,n2=0;e=B-32|0,B=e,v=U0(i[r>>2],0),C=U0(i[r>>2],1),Z=U0(i[r>>2],2),f0=H2(i[r>>2],6),f0&&(E=U0(i[r>>2],6));i:{if(!(!(v>>>0<9|C>>>0<9)&Z>>>0>8)){i[f>>2]=0,i[f+4>>2]=0;break i}if(!((v|0)==(C|0)&(v|0)==(Z|0))){i[f>>2]=0,i[f+4>>2]=0;break i}A=i[r>>2],q=i[A+48>>2],q&&(i[q+4>>2]=i[q+4>>2]+1,A=i[r>>2]),n=i[A+28>>2],k=i[A+24>>2],A=U(136),i[A>>2]=72792,i[A+4>>2]=0,i[A+8>>2]=0,B0(A+20|0,0,104),J=i[A+4>>2],R=J+1|0,i[A+4>>2]=R,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,I=A- -64|0,i[I>>2]=0,i[I+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,I=A+12|0,i[A+12>>2]=I,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=J,i[A+16>>2]=A,R||(V[i[i[A>>2]+8>>2]](A),g(A)),i[I+36>>2]=3,i[I+32>>2]=0,i[I+28>>2]=n,i[I+24>>2]=k;r:{e:{if(!J0(I,0,k,n,v)||!J0(I,1,k,n,C)||!J0(I,2,k,n,Z)||f0&&!J0(I,6,k,n,E))break e;if(i[e+28>>2]=0,i[e+24>>2]=0,i[e+20>>2]=0,i[e+16>>2]=0,i[e+12>>2]=0,i[e+8>>2]=0,i[e+4>>2]=0,i[e>>2]=0,n0=v0(i[r>>2],0,e+28|0),v=v0(i[r>>2],1,e+24|0),C=v0(i[r>>2],2,e+20|0),h0=v0(I,0,e+12|0),Z=v0(I,1,e+8|0),E=v0(I,2,e+4|0),f0&&(F0=v0(i[r>>2],6,e+16|0),Y0=v0(I,6,e)),i[e+28>>2]=i[e+28>>2]/2,J=i[e+24>>2]/2|0,i[e+24>>2]=J,R=i[e+20>>2]/2|0,i[e+20>>2]=R,i[e+16>>2]=i[e+16>>2]/2,i[e+12>>2]=i[e+12>>2]/2,a=i[e+8>>2]/2|0,i[e+8>>2]=a,S=i[e+4>>2]/2|0,i[e+4>>2]=S,i[e>>2]=i[e>>2]/2,X[Z>>1]=Q[v>>1],X[E>>1]=Q[C>>1],X0=k-1|0,o=(X0|0)/2|0,(k|0)>=3)for(t=(o|0)<=1?1:o,r=0;D=r<<2,u=D|2,p=r&-2,z=p+2|0,w=z+v|0,_=v+p|0,X[u+Z>>1]=(Q[w>>1]+m(Q[_>>1],3)|0)+2>>>2,D=D+4|0,X[D+Z>>1]=(Q[_>>1]+m(Q[w>>1],3)|0)+2>>>2,H=u+E|0,u=C+z|0,p=C+p|0,X[H>>1]=(Q[u>>1]+m(Q[p>>1],3)|0)+2>>>2,X[E+D>>1]=(Q[p>>1]+m(Q[u>>1],3)|0)+2>>>2,r=r+1|0,(t|0)!=(r|0););if(D=k&1,D||(r=X0<<1,p=k-2|0,X[r+Z>>1]=Q[p+v>>1],X[r+E>>1]=Q[C+p>>1]),p=n-1|0,t=(p|0)/2|0,(n|0)>=3)for(z=(t|0)<=1?1:t,r=0;w=r<<1,_=w|1,u=r>>>1|0,W=u+1|0,y=v+(m(W,J)<<1)|0,h=v+(m(u,J)<<1)|0,X[Z+(m(_,a)<<1)>>1]=(Q[y>>1]+m(Q[h>>1],3)|0)+2>>>2,w=w+2|0,X[Z+(m(w,a)<<1)>>1]=(Q[h>>1]+m(Q[y>>1],3)|0)+2>>>2,H=E+(m(_,S)<<1)|0,_=C+(m(W,R)<<1)|0,u=C+(m(u,R)<<1)|0,X[H>>1]=(Q[_>>1]+m(Q[u>>1],3)|0)+2>>>2,X[E+(m(w,S)<<1)>>1]=(Q[u>>1]+m(Q[_>>1],3)|0)+2>>>2,r=r+1|0,(z|0)!=(r|0););if(W=n&1,W||(r=(n>>1)-1|0,X[Z+(m(p,a)<<1)>>1]=Q[v+(m(r,J)<<1)>>1],X[E+(m(p,S)<<1)>>1]=Q[C+(m(r,R)<<1)>>1]),!((n|0)<3|D))for(u=(k+C|0)-2|0,z=(k+v|0)-2|0,r=k<<1,w=(r+E|0)-2|0,_=(r+Z|0)-2|0,y=(t|0)<=1?1:t,r=0;h=r<<1,d=h|1,t=r>>>1|0,j=t+1|0,L=z+(m(j,J)<<1)|0,p0=z+(m(t,J)<<1)|0,X[_+(m(d,a)<<1)>>1]=(Q[L>>1]+m(Q[p0>>1],3)|0)+2>>>2,h=h+2|0,X[_+(m(h,a)<<1)>>1]=(Q[p0>>1]+m(Q[L>>1],3)|0)+2>>>2,H=w+(m(S,d)<<1)|0,d=u+(m(R,j)<<1)|0,t=u+(m(t,R)<<1)|0,X[H>>1]=(Q[d>>1]+m(Q[t>>1],3)|0)+2>>>2,X[w+(m(h,S)<<1)>>1]=(Q[t>>1]+m(Q[d>>1],3)|0)+2>>>2,r=r+1|0,(y|0)!=(r|0););A:{if(W)break A;if((k|0)>=3)for(t=(o|0)<=1?1:o,u=E+(m(p,S)<<1)|0,z=Z+(m(p,a)<<1)|0,r=(n>>1)-1|0,w=C+(m(r,R)<<1)|0,_=v+(m(r,J)<<1)|0,r=0;W=r<<2,y=W+z|0,h=r&-2,o=h+_|0,X[y+2>>1]=(Q[o+2>>1]+m(Q[o>>1],3)|0)+2>>>2,X[y+4>>1]=(Q[o>>1]+m(Q[o+2>>1],3)|0)+2>>>2,W=u+W|0,o=w+h|0,X[W+2>>1]=(Q[o+2>>1]+m(Q[o>>1],3)|0)+2>>>2,X[W+4>>1]=(Q[o>>1]+m(Q[o+2>>1],3)|0)+2>>>2,r=r+1|0,(t|0)!=(r|0););if(D)break A;r=k<<1,o=(n>>1)-1|0,X[(r+(Z+(m(p,a)<<1)|0)|0)-2>>1]=Q[(k+(v+(m(o,J)<<1)|0)|0)-2>>1],X[(r+(E+(m(p,S)<<1)|0)|0)-2>>1]=Q[(k+(C+(m(o,R)<<1)|0)|0)-2>>1]}A:{f:{if((n|0)>=3){if((k|0)<3)break f;for(o=1;;){for(d=E+(m(o,S)<<1)|0,j=Z+(m(o,a)<<1)|0,r=o+1|0,L=E+(m(r,S)<<1)|0,p0=Z+(m(r,a)<<1)|0,r=o>>>1|0,S0=C+(m(r,R)<<1)|0,c0=v+(m(r,J)<<1)|0,r=r+1|0,r2=C+(m(r,R)<<1)|0,n2=v+(m(r,J)<<1)|0,r=1;t=r&-2,u=t+r2|0,D=Q[u+2>>1],u=Q[u>>1],w=t+S0|0,z=Q[w>>1],w=Q[w+2>>1],y=t+n2|0,_=Q[y>>1],W=r<<1,A0=W+j|0,y=Q[y+2>>1],G0=m(y,3),h=t+c0|0,t=Q[h>>1],I0=m(t,3)+8|0,h=Q[h+2>>1],X[A0+2>>1]=G0+(_+(I0+m(h,9)|0)|0)>>>4,H=A0,Q0=m(_,3),A0=m(h,3)+8|0,X[H>>1]=y+(Q0+(A0+m(t,9)|0)|0)>>>4,H=W+p0|0,X[H+2>>1]=(Q0+(t+A0|0)|0)+m(y,9)>>>4,X[H>>1]=((h+I0|0)+m(_,9)|0)+G0>>>4,t=W+d|0,y=m(D,3),_=m(z,3)+8|0,X[t+2>>1]=y+(u+(_+m(w,9)|0)|0)>>>4,H=t,h=m(u,3),t=m(w,3)+8|0,X[H>>1]=D+(h+(t+m(z,9)|0)|0)>>>4,W=W+L|0,X[W+2>>1]=(h+(t+z|0)|0)+m(D,9)>>>4,X[W>>1]=y+((w+_|0)+m(u,9)|0)>>>4,r=r+2|0,(X0|0)>(r|0););if(o=o+2|0,!((p|0)>(o|0)))break}}if((n|0)<=0)break A}if(k=k<<1,f0){for(r=0;l0((m(i[e+12>>2],r)<<1)+h0|0,(m(i[e+28>>2],r)<<1)+n0|0,k),l0((m(i[e>>2],r)<<1)+Y0|0,(m(i[e+16>>2],r)<<1)+F0|0,k),r=r+1|0,(n|0)!=(r|0););break A}v=n&1;f:{if(!p){r=0;break f}for(C=n&-2,r=0,n=0;l0((m(i[e+12>>2],r)<<1)+h0|0,(m(i[e+28>>2],r)<<1)+n0|0,k),Z=r|1,l0((m(Z,i[e+12>>2])<<1)+h0|0,(m(Z,i[e+28>>2])<<1)+n0|0,k),r=r+2|0,n=n+2|0,(C|0)!=(n|0););}if(!v)break A;l0((m(i[e+12>>2],r)<<1)+h0|0,(m(i[e+28>>2],r)<<1)+n0|0,k)}i[f+4>>2]=A,i[f>>2]=I;break r}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(!q||(f=i[q+4>>2],i[q+4>>2]=f-1,f))break i;V[i[i[q>>2]+8>>2]](q),g(q)}B=e+32|0}function Ls(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0,r2=0,n2=0,s2=0,W2=0,y2=0,x2=0,T2=0,O2=0,q2=0,b2=0,e1=0,A1=0,h1=0,B1=0,p1=0,W1=0,X1=0,N1=0,r4=0,e4=0,V4=0,M4=0,x4=0,Hi=0,Ti=0,ai=0,lf=0,uf=0,sf=0,hf=0,wf=0,_f=0,vf=0,mf=0,Bf=0,Zf=0,pf=0,Wf=0,Xf=0,Gf=0,Cf=0,Vf=0,If=0,Qf=0,yf=0,Ff=0,Ef=0,Yf=0,Jf=0,gf=0,Nf=0,Rf=0,Df=0,Uf=0,Mf=0,xf=0,zf=0,Hf=0,Tf=0,af=0,Sf=0,Of=0,jf=0,Pf=0,Lf=0,Kf=0,qf=0,$f=0,bf=0,df=0,cf=0,i5=0,r5=0,e5=0,A5=0,f5=0,k5=0,n5=0,t5=0,o5=0,l5=0,u5=0,s5=0;p=m(r,14)+e|0,E=Q[p+14>>1],J=Q[e+14>>1],R=Q[e+6>>1],u=J+R|0,a=Q[e+10>>1],S=Q[e+2>>1],h=a+S|0,A=u+h|0,q=Q[e+12>>1],d=Q[e+4>>1],_=q+d|0,j=Q[e+8>>1],L=Q[e>>1],v=j+L|0,n=_+v|0,t=A+n|0,k=(r<<3)+e|0,p0=Q[k+14>>1],X0=Q[k+6>>1],W=p0+X0|0,G0=Q[k+10>>1],I0=Q[k+2>>1],C=G0+I0|0,w=W+C|0,Q0=Q[k+12>>1],F0=Q[k+4>>1],I=Q0+F0|0,x2=Q[k+8>>1],T2=Q[k>>1],D=x2+T2|0,Z=I+D|0,o=w+Z|0,y=t-o|0,k=(r<<2)+e|0,O2=Q[k+14>>1],q2=Q[k+6>>1],Y0=O2+q2|0,b2=Q[k+10>>1],e1=Q[k+2>>1],S0=b2+e1|0,A0=Y0+S0|0,A1=Q[k+12>>1],h1=Q[k+4>>1],c0=A1+h1|0,B1=Q[k+8>>1],p1=Q[k>>1],r2=B1+p1|0,f0=c0+r2|0,z=A0+f0|0,k=m(r,12)+e|0,W1=Q[k+14>>1],X1=Q[k+6>>1],n2=W1+X1|0,N1=Q[k+10>>1],r4=Q[k+2>>1],s2=N1+r4|0,n0=n2+s2|0,e4=Q[k+12>>1],V4=Q[k+4>>1],W2=e4+V4|0,M4=Q[k+8>>1],Hi=Q[k>>1],x4=M4+Hi|0,y2=W2+x4|0,h0=n0+y2|0,H=z-h0|0,Ti=y-H|0,k=(r<<1)+e|0,ai=Q[k+14>>1],lf=Q[k+6>>1],uf=ai+lf|0,sf=Q[k+10>>1],hf=Q[k+2>>1],wf=sf+hf|0,_f=uf+wf|0,vf=Q[k+12>>1],mf=Q[k+4>>1],Bf=vf+mf|0,Zf=Q[k+8>>1],pf=Q[k>>1],Wf=Zf+pf|0,Xf=Bf+Wf|0,Gf=_f+Xf|0,k=m(r,10)+e|0,Cf=Q[k+14>>1],Vf=Q[k+6>>1],If=Cf+Vf|0,Qf=Q[k+10>>1],yf=Q[k+2>>1],Ff=Qf+yf|0,Ef=If+Ff|0,Yf=Q[k+12>>1],Jf=Q[k+4>>1],gf=Yf+Jf|0,Nf=Q[k+8>>1],k=Q[k>>1],Rf=Nf+k|0,Df=gf+Rf|0,Uf=Ef+Df|0,Mf=Gf-Uf|0,e=m(r,6)+e|0,r=Q[e+14>>1],xf=Q[e+6>>1],zf=r+xf|0,Hf=Q[e+10>>1],Tf=Q[e+2>>1],af=Hf+Tf|0,Sf=zf+af|0,Of=Q[e+12>>1],jf=Q[e+4>>1],Pf=Of+jf|0,Lf=Q[e+8>>1],e=Q[e>>1],Kf=Lf+e|0,qf=Pf+Kf|0,$f=Sf+qf|0,bf=Q[p+6>>1],df=E+bf|0,cf=Q[p+10>>1],i5=Q[p+2>>1],r5=cf+i5|0,e5=df+r5|0,A5=Q[p+12>>1],f5=Q[p+4>>1],k5=A5+f5|0,n5=Q[p+8>>1],p=Q[p>>1],t5=n5+p|0,o5=k5+t5|0,l5=e5+o5|0,u5=$f-l5|0,s5=Mf-u5|0,X[f+112>>1]=Ti-s5,X[f+96>>1]=Ti+s5,y=y+H|0,H=Mf+u5|0,X[f+80>>1]=y-H,X[f+64>>1]=y+H,t=t+o|0,o=z+h0|0,y=t-o|0,z=Gf+Uf|0,h0=$f+l5|0,H=z-h0|0,X[f+48>>1]=y-H,X[f+32>>1]=y+H,t=t+o|0,o=z+h0|0,X[f+16>>1]=t-o,X[f>>1]=t+o,A=n-A|0,n=Z-w|0,t=A-n|0,w=f0-A0|0,Z=y2-n0|0,o=w-Z|0,y=t-o|0,A0=Xf-_f|0,f0=Df-Ef|0,z=A0-f0|0,n0=qf-Sf|0,y2=o5-e5|0,h0=n0-y2|0,H=z-h0|0,X[f+114>>1]=y-H,X[f+98>>1]=y+H,t=t+o|0,o=z+h0|0,X[f+82>>1]=t-o,X[f+66>>1]=t+o,A=A+n|0,n=w+Z|0,t=A-n|0,w=A0+f0|0,Z=n0+y2|0,o=w-Z|0,X[f+50>>1]=t-o,X[f+34>>1]=t+o,A=A+n|0,n=w+Z|0,X[f+18>>1]=A-n,X[f+2>>1]=A+n,u=h-u|0,h=v-_|0,A=u+h|0,_=C-W|0,v=D-I|0,n=_+v|0,t=A-n|0,W=S0-Y0|0,C=r2-c0|0,w=W+C|0,I=s2-n2|0,D=x4-W2|0,Z=I+D|0,o=w-Z|0,y=t-o|0,Y0=wf-uf|0,S0=Wf-Bf|0,A0=Y0+S0|0,c0=Ff-If|0,r2=Rf-gf|0,f0=c0+r2|0,z=A0-f0|0,n2=af-zf|0,s2=Kf-Pf|0,n0=n2+s2|0,W2=r5-df|0,x4=t5-k5|0,y2=W2+x4|0,h0=n0-y2|0,H=z-h0|0,X[f+116>>1]=y-H,X[f+100>>1]=y+H,t=t+o|0,o=z+h0|0,X[f+84>>1]=t-o,X[f+68>>1]=t+o,A=A+n|0,n=w+Z|0,t=A-n|0,w=A0+f0|0,Z=n0+y2|0,o=w-Z|0,X[f+52>>1]=t-o,X[f+36>>1]=t+o,A=A+n|0,n=w+Z|0,X[f+20>>1]=A-n,X[f+4>>1]=A+n,u=h-u|0,h=v-_|0,A=u-h|0,_=C-W|0,v=D-I|0,n=_-v|0,t=A-n|0,W=S0-Y0|0,C=r2-c0|0,w=W-C|0,I=s2-n2|0,D=x4-W2|0,Z=I-D|0,o=w-Z|0,X[f+118>>1]=t-o,X[f+102>>1]=t+o,A=A+n|0,n=w+Z|0,X[f+86>>1]=A-n,X[f+70>>1]=A+n,u=u+h|0,h=_+v|0,A=u-h|0,_=W+C|0,v=I+D|0,n=_-v|0,X[f+54>>1]=A-n,X[f+38>>1]=A+n,u=u+h|0,h=_+v|0,X[f+22>>1]=u-h,X[f+6>>1]=u+h,J=R-J|0,R=S-a|0,u=J+R|0,a=d-q|0,S=L-j|0,h=a+S|0,A=u+h|0,q=X0-p0|0,d=I0-G0|0,_=q+d|0,j=F0-Q0|0,L=T2-x2|0,v=j+L|0,n=_+v|0,t=A-n|0,p0=q2-O2|0,X0=e1-b2|0,W=p0+X0|0,G0=h1-A1|0,I0=p1-B1|0,C=G0+I0|0,w=W+C|0,Q0=X1-W1|0,F0=r4-N1|0,I=Q0+F0|0,x2=V4-e4|0,T2=Hi-M4|0,D=x2+T2|0,Z=I+D|0,o=w-Z|0,y=t-o|0,O2=lf-ai|0,q2=hf-sf|0,Y0=O2+q2|0,b2=mf-vf|0,e1=pf-Zf|0,S0=b2+e1|0,A0=Y0+S0|0,A1=Vf-Cf|0,h1=yf-Qf|0,c0=A1+h1|0,B1=Jf-Yf|0,k=k-Nf|0,p1=B1+k|0,r2=c0+p1|0,f0=A0-r2|0,r=xf-r|0,z=Tf-Hf|0,W1=r+z|0,X1=jf-Of|0,e=e-Lf|0,n2=X1+e|0,N1=W1+n2|0,E=bf-E|0,r4=i5-cf|0,s2=E+r4|0,n0=f5-A5|0,p=p-n5|0,e4=n0+p|0,V4=s2+e4|0,W2=N1-V4|0,M4=f0-W2|0,X[f+120>>1]=y-M4,X[f+104>>1]=y+M4,t=t+o|0,o=f0+W2|0,X[f+88>>1]=t-o,X[f+72>>1]=t+o,A=A+n|0,n=w+Z|0,t=A-n|0,w=A0+r2|0,Z=N1+V4|0,o=w-Z|0,X[f+56>>1]=t-o,X[f+40>>1]=t+o,A=A+n|0,n=w+Z|0,X[f+24>>1]=A-n,X[f+8>>1]=A+n,u=h-u|0,h=v-_|0,A=u-h|0,_=C-W|0,v=D-I|0,n=_-v|0,t=A-n|0,W=S0-Y0|0,C=p1-c0|0,w=W-C|0,I=n2-W1|0,D=e4-s2|0,Z=I-D|0,o=w-Z|0,X[f+122>>1]=t-o,X[f+106>>1]=t+o,A=A+n|0,n=w+Z|0,X[f+90>>1]=A-n,X[f+74>>1]=A+n,u=u+h|0,h=_+v|0,A=u-h|0,_=W+C|0,v=I+D|0,n=_-v|0,X[f+58>>1]=A-n,X[f+42>>1]=A+n,u=u+h|0,h=_+v|0,X[f+26>>1]=u-h,X[f+10>>1]=u+h,J=R-J|0,R=S-a|0,u=J+R|0,a=d-q|0,S=L-j|0,h=a+S|0,A=u-h|0,q=X0-p0|0,d=I0-G0|0,_=q+d|0,j=F0-Q0|0,L=T2-x2|0,v=j+L|0,n=_-v|0,t=A-n|0,p0=q2-O2|0,X0=e1-b2|0,W=p0+X0|0,G0=h1-A1|0,k=k-B1|0,I0=G0+k|0,C=W-I0|0,r=z-r|0,e=e-X1|0,w=r+e|0,E=r4-E|0,p=p-n0|0,Q0=E+p|0,F0=w-Q0|0,I=C-F0|0,X[f+124>>1]=t-I,X[f+108>>1]=t+I,A=A+n|0,n=C+F0|0,X[f+92>>1]=A-n,X[f+76>>1]=A+n,u=u+h|0,h=_+v|0,A=u-h|0,_=W+I0|0,v=w+Q0|0,n=_-v|0,X[f+60>>1]=A-n,X[f+44>>1]=A+n,u=u+h|0,h=_+v|0,X[f+28>>1]=u-h,X[f+12>>1]=u+h,p=p-E|0,e=e-r|0,r=p+e|0,k=k-G0|0,E=X0-p0|0,u=k+E|0,h=r+u|0,A=L-j|0,q=d-q|0,d=A+q|0,a=S-a|0,J=R-J|0,R=a+J|0,S=d+R|0,X[f+14>>1]=h+S,X[f+30>>1]=S-h,r=u-r|0,R=R-d|0,X[f+46>>1]=r+R,X[f+62>>1]=R-r,e=e-p|0,r=E-k|0,p=e+r|0,k=q-A|0,E=J-a|0,J=k+E|0,X[f+78>>1]=p+J,X[f+94>>1]=J-p,e=r-e|0,r=E-k|0,X[f+110>>1]=e+r,X[f+126>>1]=r-e}function Ks(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;n=B-16|0,B=n;i:{r:{e:{A:{f:{o=D0(r);k:{if(!((o|0)==1917403971|(o|0)==1886547814)){if((o|0)!=1852009592)break f;A=U(24),l[A+22|0]=1,X[A+20>>1]=6,i[A+16>>2]=851969,i[A+4>>2]=1,i[A+8>>2]=0,i[A+12>>2]=72992,i[A>>2]=72832,t=A+12|0,i[e+48>>2]=t,k=i[e+52>>2],i[e+52>>2]=A;n:{if(!k||(e=i[k+4>>2],i[k+4>>2]=e-1,e))break n;V[i[i[k>>2]+8>>2]](k),g(k)}e=B-16|0,B=e,k=i[r>>2],o=V[i[i[k>>2]+8>>2]](k)|0,u=i[r>>2],k=w0,o=o+7|0,k=o>>>0<7?k+1|0:k;n:{if(V[i[i[u>>2]+12>>2]](u,o,k)|0){if(l[e+4|0]=0,l[e+15|0]=0,r0(f,2,100,e+4|0),l[e+15|0]>=0)break n;G(i[e+4>>2]);break n}if(Z=t,p=t2(r),X[Z+4>>1]=p,Z=t,p=t2(r),X[Z+6>>1]=p,Z=t,p=t2(r),X[Z+8>>1]=p,Z=t,p=B2(r)>>>7|0,l[Z+10|0]=p,k=i[19565],i[f>>2]=i[19564],i[f+4>>2]=k,k=f+8|0,l[78275]>=0){t=i[19567],i[k>>2]=i[19566],i[k+4>>2]=t,i[k+8>>2]=i[19568];break n}_0(k,i[19566],i[19567])}if(B=e+16|0,i[f>>2])break e;if(l[f+19|0]<0&&G(i[f+8>>2]),e=i[A+4>>2],i[A+4>>2]=e-1,e)break k;V[i[i[A>>2]+8>>2]](A),g(A);break k}if(k=i[e+12>>2],h=k,A=i[e+8>>2],!(k|A)){if(e=U(56),i[n+4>>2]=e,i[n+8>>2]=52,i[n+12>>2]=-2147483592,r=s[12240]|s[12241]<<8|(s[12242]<<16|s[12243]<<24),A=s[12236]|s[12237]<<8|(s[12238]<<16|s[12239]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+52|0]=0,r=s[12284]|s[12285]<<8|(s[12286]<<16|s[12287]<<24),l[e+48|0]=r,l[e+49|0]=r>>>8,l[e+50|0]=r>>>16,l[e+51|0]=r>>>24,r=s[12280]|s[12281]<<8|(s[12282]<<16|s[12283]<<24),A=s[12276]|s[12277]<<8|(s[12278]<<16|s[12279]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[12272]|s[12273]<<8|(s[12274]<<16|s[12275]<<24),A=s[12268]|s[12269]<<8|(s[12270]<<16|s[12271]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[12264]|s[12265]<<8|(s[12266]<<16|s[12267]<<24),A=s[12260]|s[12261]<<8|(s[12262]<<16|s[12263]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[12256]|s[12257]<<8|(s[12258]<<16|s[12259]<<24),A=s[12252]|s[12253]<<8|(s[12254]<<16|s[12255]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[12248]|s[12249]<<8|(s[12250]<<16|s[12251]<<24),A=s[12244]|s[12245]<<8|(s[12246]<<16|s[12247]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,4,0,n+4|0),l[n+15|0]>=0)break r;G(i[n+4>>2]);break r}if(w=i[e+32>>2],u=A-w|0,k=u-4|0,u=(h-(A>>>0>>0)|0)-(u>>>0<4)|0,A=k,!u&A>>>0>=104857601|u){if(e=U(48),i[n+4>>2]=e,i[n+8>>2]=44,i[n+12>>2]=-2147483600,r=s[9023]|s[9024]<<8|(s[9025]<<16|s[9026]<<24),A=s[9019]|s[9020]<<8|(s[9021]<<16|s[9022]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+44|0]=0,r=s[9059]|s[9060]<<8|(s[9061]<<16|s[9062]<<24),l[e+40|0]=r,l[e+41|0]=r>>>8,l[e+42|0]=r>>>16,l[e+43|0]=r>>>24,r=s[9055]|s[9056]<<8|(s[9057]<<16|s[9058]<<24),A=s[9051]|s[9052]<<8|(s[9053]<<16|s[9054]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[9047]|s[9048]<<8|(s[9049]<<16|s[9050]<<24),A=s[9043]|s[9044]<<8|(s[9045]<<16|s[9046]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[9039]|s[9040]<<8|(s[9041]<<16|s[9042]<<24),A=s[9035]|s[9036]<<8|(s[9037]<<16|s[9038]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[9031]|s[9032]<<8|(s[9033]<<16|s[9034]<<24),A=s[9027]|s[9028]<<8|(s[9029]<<16|s[9030]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,1e3,n+4|0),l[n+15|0]>=0)break r;G(i[n+4>>2]);break r}if(k=i[r>>2],h=V[i[i[k>>2]+8>>2]](k)|0,w=i[r>>2],k=w0,h=A+h|0,k=h>>>0>>0?k+1|0:k,V[i[i[w>>2]+12>>2]](w,h,k)|0){if(l[n+4|0]=0,l[n+15|0]=0,r0(f,2,100,n+4|0),l[n+15|0]>=0)break r;G(i[n+4>>2]);break r}if(A|u)for(k=A>>>0<=1?1:A,h=A,t=U(A),A=B0(t,0,A),v=h+A|0;Z=A+_|0,p=B2(r),l[Z|0]=p,_=_+1|0,(k|0)!=(_|0););if(A=U(32),i[A+28>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+16>>2]=o,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=72952,i[A>>2]=73092,(t|0)!=(v|0)){if(k=v-t|0,(k|0)<0)break i;o=U(k),i[A+20>>2]=o,u=k+o|0,i[A+28>>2]=u,l0(o,t,k),i[A+24>>2]=u}i[e+48>>2]=A+12,k=i[e+52>>2],i[e+52>>2]=A;n:{if(!k||(e=i[k+4>>2],i[k+4>>2]=e-1,e))break n;V[i[i[k>>2]+8>>2]](k),g(k)}if(!t)break k;G(t)}if(s[r+20|0]!=1)break A;if(l[n+4|0]=0,l[n+15|0]=0,r0(f,2,100,n+4|0),l[n+15|0]>=0)break r;G(i[n+4>>2]);break r}if(l[n+4|0]=0,l[n+15|0]=0,r0(f,2,126,n+4|0),l[n+15|0]>=0)break r;G(i[n+4>>2]);break r}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break r}_0(f,i[19566],i[19567]);break r}if(f=i[A+4>>2],i[A+4>>2]=f-1,f)break r;V[i[i[A>>2]+8>>2]](A),g(A)}B=n+16|0;return}y0(),P()}function qs(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0;e=B-32|0,B=e,w=U0(i[r>>2],0),_=U0(i[r>>2],1),v=U0(i[r>>2],2),q=H2(i[r>>2],6),q&&(W=U0(i[r>>2],6));i:{if(!(!(w>>>0>8|_>>>0>8)&v>>>0<9)){i[f>>2]=0,i[f+4>>2]=0;break i}if(!((w|0)==(_|0)&(w|0)==(v|0))){i[f>>2]=0,i[f+4>>2]=0;break i}n=i[r>>2],H=i[n+48>>2],H&&(i[H+4>>2]=i[H+4>>2]+1,n=i[r>>2]),Z=i[n+28>>2],k=i[n+24>>2],A=U(136),i[A>>2]=72792,i[A+4>>2]=0,i[A+8>>2]=0,B0(A+20|0,0,104),n=i[A+4>>2],y=n+1|0,i[A+4>>2]=y,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,C=A- -64|0,i[C>>2]=0,i[C+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,C=A+12|0,i[A+12>>2]=C,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=n,i[A+16>>2]=A,y||(V[i[i[A>>2]+8>>2]](A),g(A)),i[C+36>>2]=3,i[C+32>>2]=0,i[C+28>>2]=Z,i[C+24>>2]=k;r:{e:{if(!J0(C,0,k,Z,w)||!J0(C,1,k,Z,_)||!J0(C,2,k,Z,v)||q&&!J0(C,6,k,Z,W))break e;if(i[e+28>>2]=0,i[e+24>>2]=0,i[e+20>>2]=0,i[e+16>>2]=0,i[e+12>>2]=0,i[e+8>>2]=0,i[e+4>>2]=0,i[e>>2]=0,d=v0(i[r>>2],0,e+28|0),w=v0(i[r>>2],1,e+24|0),_=v0(i[r>>2],2,e+20|0),A0=v0(C,0,e+12|0),v=v0(C,1,e+8|0),W=v0(C,2,e+4|0),q&&(j=v0(i[r>>2],6,e+16|0),L=v0(C,6,e)),l[v|0]=s[w|0],l[W|0]=s[_|0],f0=k-1|0,I=(f0|0)/2|0,(k|0)>=3)for(y=(I|0)<=1?1:I,r=0;t=r<<1,o=t|1,n=r>>>1|0,u=n+1|0,J=u+w|0,p=n+w|0,l[o+v|0]=(s[J|0]+m(s[p|0],3)|0)+2>>>2,t=t+2|0,l[t+v|0]=(s[p|0]+m(s[J|0],3)|0)+2>>>2,h=o+W|0,o=_+u|0,n=n+_|0,l[h|0]=(s[o|0]+m(s[n|0],3)|0)+2>>>2,l[t+W|0]=(s[n|0]+m(s[o|0],3)|0)+2>>>2,r=r+1|0,(y|0)!=(r|0););if(J=k&1,J||(r=(k>>1)-1|0,l[v+f0|0]=s[r+w|0],l[W+f0|0]=s[r+_|0]),y=Z-1|0,r=(y|0)/2|0,(Z|0)>=3)for(u=(r|0)<=1?1:r,n=0;p=n<<1,R=p|1,D=i[e+24>>2],t=n>>>1|0,o=t+1|0,l[v+m(R,i[e+8>>2])|0]=(s[w+m(D,o)|0]+m(s[w+m(t,D)|0],3)|0)+2>>>2,p=p+2|0,D=i[e+24>>2],l[v+m(p,i[e+8>>2])|0]=(s[w+m(D,t)|0]+m(s[w+m(o,D)|0],3)|0)+2>>>2,h=W+m(R,i[e+4>>2])|0,R=i[e+20>>2],l[h|0]=(s[_+m(R,o)|0]+m(s[_+m(t,R)|0],3)|0)+2>>>2,h=t,t=i[e+20>>2],l[W+m(p,i[e+4>>2])|0]=(s[_+m(h,t)|0]+m(s[_+m(t,o)|0],3)|0)+2>>>2,n=n+1|0,(u|0)!=(n|0););if(D=Z&1,D||(n=(Z>>1)-1|0,l[v+m(y,i[e+8>>2])|0]=s[w+m(n,i[e+24>>2])|0],l[W+m(y,i[e+4>>2])|0]=s[_+m(n,i[e+20>>2])|0]),!((Z|0)<3|J))for(p=(k+W|0)-1|0,R=(k+v|0)-1|0,a=(r|0)<=1?1:r,n=k>>1,r=(n+_|0)-1|0,t=(n+w|0)-1|0,n=0;z=n<<1,h=z|1,E=i[e+24>>2],o=n>>>1|0,u=o+1|0,l[R+m(h,i[e+8>>2])|0]=(s[t+m(E,u)|0]+m(s[t+m(o,E)|0],3)|0)+2>>>2,z=z+2|0,E=i[e+24>>2],l[R+m(z,i[e+8>>2])|0]=(s[t+m(E,o)|0]+m(s[t+m(u,E)|0],3)|0)+2>>>2,E=p+m(h,i[e+4>>2])|0,h=i[e+20>>2],l[E|0]=(s[r+m(h,u)|0]+m(s[r+m(o,h)|0],3)|0)+2>>>2,h=o,o=i[e+20>>2],l[p+m(z,i[e+4>>2])|0]=(s[r+m(h,o)|0]+m(s[r+m(o,u)|0],3)|0)+2>>>2,n=n+1|0,(a|0)!=(n|0););A:{if(D)break A;if((k|0)>=3)for(o=(I|0)<=1?1:I,r=(Z>>1)-1|0,n=0;I=n<<1,t=n>>>1|0,u=t+(w+m(r,i[e+24>>2])|0)|0,l[(I+(v+m(y,i[e+8>>2])|0)|0)+1|0]=(s[u+1|0]+m(s[u|0],3)|0)+2>>>2,u=t+(w+m(r,i[e+24>>2])|0)|0,l[(I+(v+m(y,i[e+8>>2])|0)|0)+2|0]=(s[u|0]+m(s[u+1|0],3)|0)+2>>>2,u=t+(_+m(r,i[e+20>>2])|0)|0,l[(I+(W+m(y,i[e+4>>2])|0)|0)+1|0]=(s[u+1|0]+m(s[u|0],3)|0)+2>>>2,h=I+(W+m(y,i[e+4>>2])|0)|0,I=t+(_+m(r,i[e+20>>2])|0)|0,l[h+2|0]=(s[I|0]+m(s[I+1|0],3)|0)+2>>>2,n=n+1|0,(o|0)!=(n|0););if(J)break A;n=k>>1,r=(Z>>1)-1|0,l[((v+m(y,i[e+8>>2])|0)+k|0)-1|0]=s[(n+(w+m(r,i[e+24>>2])|0)|0)-1|0],l[((W+m(y,i[e+4>>2])|0)+k|0)-1|0]=s[(n+(_+m(r,i[e+20>>2])|0)|0)-1|0]}A:{f:{if((Z|0)>=3){if((k|0)<3)break f;for(n=1;;){for(I=n+1|0,R=n>>>1|0,D=R+1|0,r=1;t=r>>>1|0,J=i[e+20>>2],u=t+(_+m(J,D)|0)|0,o=s[u+1|0],u=s[u|0],p=t+(_+m(J,R)|0)|0,J=s[p+1|0],p=s[p|0],h=i[e+24>>2],E=t+(w+m(h,R)|0)|0,a=s[E+1|0],z=m(a,3)+8|0,S=t+(w+m(h,D)|0)|0,t=s[S|0],n0=m(t,3),h=s[E|0],E=s[S+1|0],l[(v+m(i[e+8>>2],n)|0)+r|0]=(n0+(z+m(h,9)|0)|0)+E>>>4,S=m(E,3),h0=m(h,3)+8|0,l[((v+m(i[e+8>>2],n)|0)+r|0)+1|0]=S+(t+(h0+m(a,9)|0)|0)>>>4,l[(v+m(I,i[e+8>>2])|0)+r|0]=((a+h0|0)+m(t,9)|0)+S>>>4,l[((v+m(I,i[e+8>>2])|0)+r|0)+1|0]=((h+z|0)+n0|0)+m(E,9)>>>4,a=m(u,3),t=m(J,3)+8|0,l[(W+m(i[e+4>>2],n)|0)+r|0]=o+(a+(t+m(p,9)|0)|0)>>>4,h=m(o,3),z=m(p,3)+8|0,l[((W+m(i[e+4>>2],n)|0)+r|0)+1|0]=h+(u+(z+m(J,9)|0)|0)>>>4,l[(W+m(I,i[e+4>>2])|0)+r|0]=h+((J+z|0)+m(u,9)|0)>>>4,l[((W+m(I,i[e+4>>2])|0)+r|0)+1|0]=(a+(t+p|0)|0)+m(o,9)>>>4,r=r+2|0,(f0|0)>(r|0););if(n=n+2|0,!((y|0)>(n|0)))break}}if((Z|0)<=0)break A}if(q){for(r=0;l0(m(i[e+12>>2],r)+A0|0,m(i[e+28>>2],r)+d|0,k),l0(m(i[e>>2],r)+L|0,m(i[e+16>>2],r)+j|0,k),r=r+1|0,(Z|0)!=(r|0););break A}w=Z&1;f:{if(!y){r=0;break f}for(Z=Z&-2,r=0,n=0;l0(m(i[e+12>>2],r)+A0|0,m(i[e+28>>2],r)+d|0,k),_=r|1,l0(m(_,i[e+12>>2])+A0|0,m(_,i[e+28>>2])+d|0,k),r=r+2|0,n=n+2|0,(Z|0)!=(n|0););}if(!w)break A;l0(m(i[e+12>>2],r)+A0|0,m(i[e+28>>2],r)+d|0,k)}i[f+4>>2]=A,i[f>>2]=C;break r}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(!H||(f=i[H+4>>2],i[H+4>>2]=f-1,f))break i;V[i[i[H>>2]+8>>2]](H),g(H)}B=e+32|0}function Vk(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0;h=B+-64|0,B=h,i[h+60>>2]=e,H=h+39|0,I=h+40|0;i:{r:{e:{A:{f:for(;;){o=0;k:for(;;){if(w=e,(p^2147483647)<(o|0))break A;p=o+p|0;n:{t:{o:{u:{if(o=e,u=s[o|0],u)for(;;){l:{e=u&255;s:{if(!e){e=o;break s}if((e|0)!=37)break l;for(u=o;;){if(s[u+1|0]!=37){e=u;break s}if(o=o+1|0,v=s[u+2|0],e=u+2|0,u=e,(v|0)!=37)break}}if(o=o-w|0,z=p^2147483647,(o|0)>(z|0))break A;if(f&&H1(f,w,o),o)continue k;i[h+60>>2]=e,o=e+1|0,C=-1,v=l[e+1|0]-48|0,s[e+2|0]!=36|v>>>0>9||(R=1,C=v,o=e+3|0),i[h+60>>2]=o,Z=0,u=l[o|0],e=u-32|0;s:{if(e>>>0>31){v=o;break s}if(v=o,e=1<>2]=v,Z=e|Z,u=l[o+1|0],e=u-32|0,e>>>0>=32)break s;if(o=v,e=1<>>0>9)){w:{if(!f){i[(e<<2)+k>>2]=10,e=0;break w}e=i[(e<<3)+A>>2]}W=e,e=v+3|0,u=1;break h}if(R)break u;if(e=v+1|0,!f){i[h+60>>2]=e,R=0,W=0;break s}o=i[r>>2],i[r>>2]=o+4,W=i[o>>2],u=0}if(R=u,i[h+60>>2]=e,(W|0)>=0)break s;W=0-W|0,Z=Z|8192;break s}if(W=E9(h+60|0),(W|0)<0)break A;e=i[h+60>>2]}o=0,_=-1,y=0;s:{if(s[e|0]!=46)break s;if(s[e+1|0]==42){v=l[e+2|0]-48|0;h:{if(!(s[e+3|0]!=36|v>>>0>9)){e=e+4|0;w:{if(!f){i[(v<<2)+k>>2]=10,_=0;break w}_=i[(v<<3)+A>>2]}break h}if(R)break u;if(e=e+2|0,_=0,!f)break h;v=i[r>>2],i[r>>2]=v+4,_=i[v>>2]}i[h+60>>2]=e,y=(_|0)>=0;break s}i[h+60>>2]=e+1,_=E9(h+60|0),e=i[h+60>>2],y=1}for(;;){if(E=o,v=28,D=e,u=l[e|0],u-123>>>0<4294967238)break e;if(e=e+1|0,o=s[(u+m(o,58)|0)+52063|0],!(o-1>>>0<8))break}i[h+60>>2]=e;s:{if((o|0)!=27){if(!o)break e;if((C|0)>=0){if(!f){i[(C<<2)+k>>2]=o;continue f}o=(C<<3)+A|0,v=i[o+4>>2],i[h+48>>2]=i[o>>2],i[h+52>>2]=v;break s}if(!f)break n;qn(h+48|0,o,r,t);break s}if((C|0)>=0)break e;if(o=0,!f)continue k}if(s[f|0]&32)break r;u=Z&-65537,Z=Z&8192?u:Z,C=0,J=2463,v=I;s:{h:{w:{_:{v:{Z:{m:{B:{p:{W:{G:{C:{y:{Y:{V:{F:{I:switch(o=l[D|0],o=E&&(o&15)==3?o&-45:o,o-88|0){case 9:case 13:case 14:case 15:break s;case 27:break m;case 11:break B;case 12:case 17:break G;case 23:break C;case 0:case 32:break y;case 24:break Y;case 22:break V;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break t;default:break I}I:switch(o-65|0){case 0:case 4:case 5:case 6:break s;case 2:break Z;case 1:case 3:break t;default:break I}if((o|0)==83)break v;break t}w=i[h+48>>2],u=i[h+52>>2],J=2463;break W}o=0;V:switch(E&255){case 0:i[i[h+48>>2]>>2]=p;continue k;case 1:i[i[h+48>>2]>>2]=p;continue k;case 2:w=i[h+48>>2],i[w>>2]=p,i[w+4>>2]=p>>31;continue k;case 3:X[i[h+48>>2]>>1]=p;continue k;case 4:l[i[h+48>>2]]=p;continue k;case 6:i[i[h+48>>2]>>2]=p;continue k;case 7:break V;default:continue k}w=i[h+48>>2],i[w>>2]=p,i[w+4>>2]=p>>31;continue k}_=_>>>0<=8?8:_,Z=Z|8,o=120}if(e=I,D=o&32,w=i[h+48>>2],u=i[h+52>>2],w|u)for(;e=e-1|0,l[e|0]=D|s[(w&15)+52592|0],E=!u&w>>>0>15|(u|0)!=0,w=(u&15)<<28|w>>>4,u=u>>>4|0,!!E;);if(w=e,!(i[h+48>>2]|i[h+52>>2])|!(Z&8))break p;J=(o>>>4|0)+2463|0,C=2;break p}if(e=I,o=i[h+52>>2],u=o,w=i[h+48>>2],o|w)for(;e=e-1|0,l[e|0]=w&7|48,E=!u&w>>>0>7|(u|0)!=0,w=(u&7)<<29|w>>>3,u=u>>>3|0,!!E;);if(w=e,!(Z&8))break p;e=I-e|0,_=(e|0)<(_|0)?_:e+1|0;break p}if(w=i[h+48>>2],e=i[h+52>>2],u=e,(e|0)<0){u=0-(e+((w|0)!=0)|0)|0,w=0-w|0,i[h+48>>2]=w,i[h+52>>2]=u,C=1,J=2463;break W}if(Z&2048){C=1,J=2464;break W}C=Z&1,J=C?2465:2463}w=Yi(w,u,I)}if((_|0)<0&y)break A;if(Z=y?Z&-65537:Z,e=i[h+48>>2],o=i[h+52>>2],!(_|(e|o)!=0)){w=I,_=0;break t}e=!(e|o)+(I-w|0)|0,_=(e|0)<(_|0)?_:e;break t}w=i[h+48>>2];break o}if(e=i[h+48>>2],w=e||18295,e=_>>>0>=2147483647?2147483647:_,o=PA(w,0,e),e=o?o-w|0:e,v=e+w|0,(_|0)>=0){Z=u,_=e;break t}if(Z=u,_=e,s[v|0])break A;break t}if(o=i[h+48>>2],o|i[h+52>>2])break _;w=0;break o}if(_){u=i[h+48>>2];break w}o=0,$1(f,32,W,0,Z);break h}i[h+12>>2]=0,i[h+8>>2]=o,u=h+8|0,i[h+48>>2]=u,_=-1}for(o=0;;){w:{if(w=i[u>>2],!w)break w;if(w=ye(h+4|0,w),(w|0)<0)break r;if(w>>>0>_-o>>>0)break w;if(u=u+4|0,o=o+w|0,_>>>0>o>>>0)continue}break}if(v=61,(o|0)<0)break e;if($1(f,32,W,o,Z),!o){o=0;break h}for(v=0,u=i[h+48>>2];;){if(w=i[u>>2],!w||(_=h+4|0,w=ye(_,w),v=w+v|0,v>>>0>o>>>0))break h;if(H1(f,_,w),u=u+4|0,!(o>>>0>v>>>0))break}}$1(f,32,W,o,Z^8192),o=(o|0)<(W|0)?W:o;continue k}if((_|0)<0&y)break A;if(v=61,o=V[n|0](f,i0[h+48>>3],W,_,Z,o)|0,(o|0)>=0)continue k;break e}u=s[o+1|0],o=o+1|0}if(f)break i;if(!R)break n;for(o=1;;){if(f=i[(o<<2)+k>>2],f){if(qn((o<<3)+A|0,f,r,t),p=1,o=o+1|0,(o|0)!=10)continue;break i}break}if(o>>>0>=10){p=1;break i}for(;;){if(i[(o<<2)+k>>2])break u;if(p=1,o=o+1|0,(o|0)==10)break}break i}v=28;break e}l[h+39|0]=w,_=1,w=H,Z=u}if(u=v-w|0,_=(u|0)<(_|0)?_:u,(_|0)>(C^2147483647))break A;if(v=61,e=_+C|0,o=(e|0)<(W|0)?W:e,(z|0)<(o|0))break e;$1(f,32,o,e,Z),H1(f,J,C),$1(f,48,o,e,Z^65536),$1(f,48,_,u,0),H1(f,w,u),$1(f,32,o,e,Z^8192),e=i[h+60>>2];continue}break}break}p=0;break i}v=61}i[23944]=v}p=-1}return B=h- -64|0,p}function P0(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0;k=B-160|0,B=k,A=i[e>>2];i:{if(r){r:{if(!A){i[r+12>>2]=34640,A=0,r=34640;break r}i[k+24>>2]=54496,i[k+80>>2]=54516,A=i[13633],i[k+16>>2]=A,n=i[A-12>>2],A=k+16|0,i[n+A>>2]=i[13634],i[k+20>>2]=0,n=A+i[i[k+16>>2]-12>>2]|0,t=k+28|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,n=i[13635],i[k+24>>2]=n,o=i[n-12>>2],n=k+24|0,i[o+n>>2]=i[13636],o=i[13632],i[k+16>>2]=o,i[A+i[o-12>>2]>>2]=i[13637],i[k+80>>2]=54516,i[k+16>>2]=54476,i[k+24>>2]=54496,o=$0(t),i[o>>2]=53552,i[k+68>>2]=0,i[k+72>>2]=0,i[k+60>>2]=0,i[k+64>>2]=0,i[k+76>>2]=24,A=i[e>>2],A>>>0>11?A=5233:A=i[(A<<2)+72500>>2],u=x(x(n,A,G2(A)),21688,2);e:{A:{f:{k:{n:{t:{o:{u:{l:{s:{h:{w:{_:{v:{Z:{m:{B:{p:{W:{G:{C:{y:{Y:{V:{F:{I:{D:{U:{M:{J:{x:{E:{Q:{g:{N:{X:{H:{T:{a:{S:{R:{O:{j:{P:{L:{K:{q:{$:{b:{d:{c:{i0:{r0:{e0:{A0:{f0:{k0:{n0:{t0:{o0:{l0:{u0:{s0:{h0:{w0:{_0:{v0:{m0:{B0:{Z0:{p0:{W0:{X0:{G0:{C0:{if(t=i[e+4>>2],(t|0)<=1999){A=13017;z:switch(t|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 80:case 81:case 82:case 83:case 84:case 85:case 86:case 87:case 88:case 89:case 90:case 91:case 92:case 93:case 94:case 95:case 96:case 97:case 98:case 99:case 143:case 144:case 145:case 146:case 147:case 148:case 149:break f;case 142:break E;case 150:break Q;case 140:break g;case 139:break N;case 138:break X;case 137:break H;case 136:break T;case 135:break a;case 134:break S;case 133:break R;case 132:break O;case 130:break j;case 129:break P;case 128:break L;case 127:break K;case 126:break q;case 124:break $;case 123:break b;case 122:break d;case 121:break c;case 120:break i0;case 117:break r0;case 116:break e0;case 115:break A0;case 114:break f0;case 125:break k0;case 113:break n0;case 112:break t0;case 111:break o0;case 110:break l0;case 109:break u0;case 0:break e;case 108:break s0;case 107:break h0;case 131:break w0;case 141:break _0;case 106:break v0;case 105:break m0;case 104:break B0;case 103:break Z0;case 102:break p0;case 119:break W0;case 118:break X0;case 101:break G0;case 100:break C0;default:break z}switch(t-1e3|0){case 1:break J;case 0:break x;default:break f}}if((t|0)<=3999){z:switch(t-2e3|0){case 8:break C;case 7:break y;case 6:break Y;case 5:break V;case 4:break F;case 3:break I;case 2:break D;case 1:break U;case 0:break M;default:break z}switch(t-3e3|0){case 6:break v;case 5:break Z;case 4:break m;case 3:break B;case 2:break p;case 1:break W;case 0:break G;default:break f}}z:switch(t-5e3|0){case 4:break l;case 3:break s;case 2:break h;case 1:break w;case 0:break _;default:break z}switch(t-6e3|0){case 3:break n;case 2:break t;case 1:break o;case 0:break u;default:break k}}A=10115;break e}A=8920;break e}A=14550;break e}A=4543;break e}A=2201;break e}A=2159;break e}A=2313;break e}A=2173;break e}A=2355;break e}A=2341;break e}A=2369;break e}A=2243;break e}A=2229;break e}A=2327;break e}A=2299;break e}A=2257;break e}A=2215;break e}A=2271;break e}A=2285;break e}A=5618;break e}A=1221;break e}A=7298;break e}A=14482;break e}A=6344;break e}A=14412;break e}A=14682;break e}A=12967;break e}A=7271;break e}A=9719;break e}A=3512;break e}A=5895;break e}A=9e3;break e}A=2042;break e}A=8329;break e}A=4362;break e}A=4719;break e}A=3687;break e}A=14499;break e}A=1267;break e}A=12824;break e}A=12790;break e}A=7458;break e}A=6298;break e}A=2187;break e}A=13067;break e}A=5351;break e}A=13533;break e}A=11846;break e}A=13355;break e}A=12002;break e}A=11952;break e}A=5566;break e}A=9195;break e}A=1284;break e}A=10265;break e}A=13872;break e}A=9746;break e}A=6618;break e}A=6424;break e}A=11696;break e}A=11733;break e}A=11771;break e}A=14433;break e}A=7381;break e}A=7404;break e}A=7365;break e}A=17693;break e}A=13233;break e}A=13188;break e}A=3932;break e}A=3455;break e}if((t|0)==4e3)break A}A=i[18124];break e}A=8307}x(u,A,G2(A)),A=l[e+19|0],((A|0)<0?i[e+12>>2]:A)&&(t=x(n,21688,2),A=l[e+19|0],n=(A|0)<0,x(t,n?i[e+8>>2]:e+8|0,n?i[e+12>>2]:A)),A=k+4|0,i2(A,o);e:{if((r|0)==(A|0))break e;if(A=l[k+15|0],l[r+11|0]>=0){if((A|0)>=0){A=i[k+8>>2],i[r>>2]=i[k+4>>2],i[r+4>>2]=A,i[r+8>>2]=i[k+12>>2];break e}i4(r,i[k+4>>2],i[k+8>>2]);break e}n=(A|0)<0,_4(r,n?i[k+4>>2]:k+4|0,n?i[k+8>>2]:A)}i[r+12>>2]=l[r+11|0]<0?i[r>>2]:r,l[k+15|0]<0&&G(i[k+4>>2]),A=i[13631],i[k+16>>2]=A,i[i[A-12>>2]+(k+16|0)>>2]=i[13639],i[k+24>>2]=i[13640],i[o>>2]=53552,l[k+71|0]<0&&G(i[k+60>>2]),K0(o),T0(k+80|0),A=i[e>>2],r=i[r+12>>2]}i[f>>2]=A,i[f+4>>2]=i[e+4>>2];break i}i[f>>2]=A,i[f+4>>2]=i[e+4>>2],r=i[18124]}i[f+8>>2]=r,B=k+160|0}function $s(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=Y(0),o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=Y(0),y=Y(0),E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=Y(0),A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=Y(0),r2=Y(0),n2=Y(0),s2=Y(0);e=B-80|0,B=e,A=i[r>>2],p=i[A+36>>2],n=0,o=U0(A,0),A=U0(i[r>>2],1),k=U0(i[r>>2],2),H=H2(i[r>>2],6),H&&(n=U0(i[r>>2],6));i:{if(!(!((o|0)==8|(A|0)==8)&(k|0)!=8)){i[f>>2]=0,i[f+4>>2]=0;break i}if(!((A|0)==(o|0)&(k|0)==(o|0))){i[f>>2]=0,i[f+4>>2]=0;break i}k=i[r>>2],h=i[k+44>>2],W=i[k+48>>2],W&&(i[W+4>>2]=i[W+4>>2]+1,k=i[r>>2]),v=i[k+28>>2],_=i[k+24>>2],A=U(136),i[A>>2]=72792,i[A+4>>2]=0,i[A+8>>2]=0,B0(A+20|0,0,104),k=i[A+4>>2],C=k+1|0,i[A+4>>2]=C,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,w=A- -64|0,i[w>>2]=0,i[w+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,w=A+12|0,i[A+12>>2]=w,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=k,i[A+16>>2]=A,C||(V[i[i[A>>2]+8>>2]](A),g(A)),i[w+36>>2]=3,i[w+32>>2]=1,i[w+28>>2]=v,i[w+24>>2]=_;r:{e:{A:{f:{if(!J0(w,3,_,v,o)||!J0(w,4,_,v,o)||!J0(w,5,_,v,o)||H&&!J0(w,6,_,v,n))break f;if(i[e+76>>2]=0,i[e+72>>2]=0,i[e+68>>2]=0,i[e+64>>2]=0,i[e+60>>2]=0,i[e+56>>2]=0,i[e+52>>2]=0,i[e+48>>2]=0,L=v0(i[r>>2],0,e+76|0),p0=v0(i[r>>2],1,e+72|0),n0=2,X0=v0(i[r>>2],2,e+68|0),G0=v0(w,3,e+60|0),I0=v0(w,4,e+56|0),Q0=v0(w,5,e+52|0),H&&(a=v0(i[r>>2],6,e- -64|0),S=v0(w,6,e+48|0)),r=p<<3,k=p>>>0<4,n=(k?16908801>>>r|0:0)&3,r=(k?16843265>>>r|0:0)&3,i[e+76>>2]=i[e+76>>2]/2,i[e+72>>2]=i[e+72>>2]/2,i[e+68>>2]=i[e+68>>2]/2,i[e+64>>2]=i[e+64>>2]/2,i[e+60>>2]=i[e+60>>2]/2,i[e+56>>2]=i[e+56>>2]/2,i[e+52>>2]=i[e+52>>2]/2,i[e+48>>2]=i[e+48>>2]/2,i[e+36>>2]=-1086926434,i[e+40>>2]=1071829221,i[e+28>>2]=1068725436,i[e+32>>2]=-1095748968,l[e+24|0]=1,h0=1,h&&(h0=s[h+10|0],n0=Q[h+8>>1],V6(e+4|0,n0,Q[h+4>>1]),i[e+40>>2]=i[e+20>>2],k=i[e+16>>2],i[e+32>>2]=i[e+12>>2],i[e+36>>2]=k,k=i[e+8>>2],i[e+24>>2]=i[e+4>>2],i[e+28>>2]=k),(v|0)<=0)break e;if(q=_<<1,(_|0)<=0)break A;for(p=n-1|0,h=-1<>2],o)<<1)+Q0|0,E=(m(i[e+56>>2],o)<<1)+I0|0,J=(m(i[e+60>>2],o)<<1)+G0|0,R=(m(i[e+76>>2],o)<<1)+L|0,r=o>>>F0|0,D=(m(r,i[e+68>>2])<<1)+X0|0,z=(m(r,i[e+72>>2])<<1)+p0|0,c0=Z0[e+40>>2],r2=Z0[e+36>>2],n2=Z0[e+32>>2],s2=Z0[e+28>>2],k=0;k:{n:{t:switch(n0|0){default:for(;;){Z=k>>>p<<1,t=Y(Q[Z+D>>1]-A0|0),u=h0&1,I=u?t:Y(t*Y(1.142899990081787)),n=k<<1,t=Y(Q[n+R>>1]),t=u?t:Y(Y(t-d)*Y(1.1689000129699707)),y=Y(Y(Y(s2*I)+t)+Y(.5));o:{if(Y(d0(y))>1],X[n+J>>1]=(r|0)>=0?(r|0)<(h|0)?r:h:0,f0=n+E|0,y=Y(r2*I),I=Y(Z-A0|0),I=u?I:Y(I*Y(1.142899990081787)),y=Y(Y(y+Y(Y(n2*I)+t))+Y(.5));o:{if(Y(d0(y))>1]=(r|0)>=0?(r|0)<(h|0)?r:h:0,n=n+C|0,t=Y(Y(Y(c0*I)+t)+Y(.5));o:{if(Y(d0(t))>1]=(r|0)>=0?(r|0)<(h|0)?r:h:0,k=k+1|0,(_|0)==(k|0))break}break k;case 0:if(h0&1){if(n=0,(_|0)==1)break n;for(;r=k<<1,u=k>>>p<<1,X[r+J>>1]=Q[u+D>>1],X[r+E>>1]=Q[r+R>>1],X[r+C>>1]=Q[u+z>>1],u=k|1,r=u<<1,u=u>>>p<<1,X[r+J>>1]=Q[u+D>>1],X[r+E>>1]=Q[r+R>>1],X[r+C>>1]=Q[u+z>>1],k=k+2|0,n=n+2|0,(Y0|0)!=(n|0););break n}for(;;){n=k<<1,u=n+J|0,Z=k>>>p<<1,t=Y(Y(Y(Y(Q[Z+D>>1])-d)*Y(1.142899990081787))+Y(.5));o:{if(Y(d0(t))>1]=(r|0)>=0?(r|0)<(h|0)?r:h:0,u=n+E|0,t=Y(Y(Y(Y(Q[n+R>>1])-d)*Y(1.1689000129699707))+Y(.5));o:{if(Y(d0(t))>1]=(r|0)>=0?(r|0)<(h|0)?r:h:0,n=n+C|0,t=Y(Y(Y(Y(Q[Z+z>>1])-d)*Y(1.142899990081787))+Y(.5));o:{if(Y(d0(t))>1]=(r|0)>=0?(r|0)<(h|0)?r:h:0,k=k+1|0,(_|0)==(k|0))break}break k;case 8:break t}for(;n=k>>>p<<1,u=Q[n+D>>1]-A0|0,r=k<<1,Z=Q[r+R>>1],f0=Q[n+z>>1]-A0|0,j=Z-f0|0,n=u+j|0,X[r+J>>1]=(n|0)>=0?n>>>0>=255?255:n:0,n=Z+f0|0,X[r+E>>1]=(n|0)>=0?n>>>0>=255?255:n:0,n=r+C|0,r=j-u|0,X[n>>1]=(r|0)>=0?r>>>0>=255?255:r:0,k=k+1|0,(_|0)!=(k|0););break k}if(!S0)break k;r=k<<1,k=k>>>p<<1,X[r+J>>1]=Q[k+D>>1],X[r+E>>1]=Q[r+R>>1],X[r+C>>1]=Q[k+z>>1]}if(H&&l0((m(i[e+48>>2],o)<<1)+S|0,(m(i[e+64>>2],o)<<1)+a|0,q),o=o+1|0,(v|0)==(o|0))break}break e}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break r;V[i[i[A>>2]+8>>2]](A),g(A);break r}if(!H)break e;if(r=0,(v|0)!=1)for(n=v&2147483646,k=0;l0((m(i[e+48>>2],r)<<1)+S|0,(m(i[e+64>>2],r)<<1)+a|0,q),_=r|1,l0((m(_,i[e+48>>2])<<1)+S|0,(m(_,i[e+64>>2])<<1)+a|0,q),r=r+2|0,k=k+2|0,(n|0)!=(k|0););if(!(v&1))break e;l0((m(i[e+48>>2],r)<<1)+S|0,(m(i[e+64>>2],r)<<1)+a|0,q)}i[f+4>>2]=A,i[f>>2]=w}if(!W||(f=i[W+4>>2],i[W+4>>2]=f-1,f))break i;V[i[i[W>>2]+8>>2]](W),g(W)}B=e+80|0}function bs(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=Y(0),o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=Y(0),J=0,R=Y(0),D=0,z=0,H=0,a=0,S=0,q=0,d=0;e=B-80|0,B=e,A=i[r>>2],C=i[A+36>>2],k=U0(A,0),A=U0(i[r>>2],1),n=U0(i[r>>2],2),v=H2(i[r>>2],6),v&&(W=U0(i[r>>2],6));i:{if(!(!((k|0)!=8|(A|0)!=8)&(n|0)==8)){i[f>>2]=0,i[f+4>>2]=0;break i}A=i[r>>2],I=i[A+44>>2],y=i[A+48>>2],y&&(i[y+4>>2]=i[y+4>>2]+1,A=i[r>>2]),_=i[A+28>>2],u=i[A+24>>2],n=U(136),i[n>>2]=72792,i[n+4>>2]=0,i[n+8>>2]=0,B0(n+20|0,0,104),A=i[n+4>>2],Z=A+1|0,i[n+4>>2]=Z,i[n+56>>2]=0,i[n+60>>2]=0,i[n+44>>2]=99,i[n+48>>2]=99,i[n+32>>2]=3795,h=n- -64|0,i[h>>2]=0,i[h+4>>2]=0,i[n+132>>2]=0,i[n+124>>2]=0,i[n+128>>2]=0,i[n+84>>2]=1,i[n+88>>2]=1,i[n+72>>2]=n+76,i[n+92>>2]=0,i[n+96>>2]=0,i[n+100>>2]=0,i[n+104>>2]=0,i[n+108>>2]=0,i[n+112>>2]=0,l[n+113|0]=0,l[n+114|0]=0,l[n+115|0]=0,l[n+116|0]=0,l[n+117|0]=0,l[n+118|0]=0,l[n+119|0]=0,l[n+120|0]=0,h=n+12|0,i[n+12>>2]=h,i[n+8>>2]=i[n+8>>2]+1,i[n+4>>2]=A,i[n+16>>2]=n,Z||(V[i[i[n>>2]+8>>2]](n),g(n)),i[h+36>>2]=3,i[h+32>>2]=1,i[h+28>>2]=_,i[h+24>>2]=u;r:{e:{if(!J0(h,3,u,_,k)||!J0(h,4,u,_,k)||!J0(h,5,u,_,k)||v&&!J0(h,6,u,_,W))break e;W=0,i[e+76>>2]=0,i[e+72>>2]=0,i[e+68>>2]=0,i[e+64>>2]=0,i[e+60>>2]=0,i[e+56>>2]=0,i[e+52>>2]=0,i[e+48>>2]=0,D=v0(i[r>>2],0,e+76|0),w=1,z=v0(i[r>>2],1,e+72|0),A=2,H=v0(i[r>>2],2,e+68|0),a=v0(h,3,e+60|0),S=v0(h,4,e+56|0),q=v0(h,5,e+52|0),Z=0,v&&(Z=v0(i[r>>2],6,e- -64|0),W=v0(h,6,e+48|0)),r=C<<3,k=C>>>0<4,C=(k?16908801>>>r|0:0)&3,r=(k?16843265>>>r|0:0)&3,i[e+36>>2]=-1086926434,i[e+40>>2]=1071829221,i[e+28>>2]=1068725436,i[e+32>>2]=-1095748968,l[e+24|0]=1,I&&(w=s[I+10|0],A=Q[I+8>>1],V6(e+4|0,A,Q[I+4>>1]),i[e+40>>2]=i[e+20>>2],k=i[e+16>>2],i[e+32>>2]=i[e+12>>2],i[e+36>>2]=k,k=i[e+8>>2],i[e+24>>2]=i[e+4>>2],i[e+28>>2]=k);A:{if((_|0)<=0)break A;if((u|0)>0){I=C-1|0,C=r-1|0,k=0;f:switch(A|0){case 0:if(r=0,w&1)for(;;){for(A=r>>>C|0,k=0;w=k>>>I|0,l[(m(i[e+60>>2],r)+a|0)+k|0]=s[w+(m(A,i[e+68>>2])+H|0)|0],l[(m(i[e+56>>2],r)+S|0)+k|0]=s[(D+m(i[e+76>>2],r)|0)+k|0],l[(m(i[e+52>>2],r)+q|0)+k|0]=s[w+(m(A,i[e+72>>2])+z|0)|0],k=k+1|0,(u|0)!=(k|0););if(v&&l0(m(i[e+48>>2],r)+W|0,m(i[e+64>>2],r)+Z|0,u),r=r+1|0,(_|0)==(r|0))break A}for(;;){for(w=r>>>C|0,k=0;;){o=(m(i[e+60>>2],r)+a|0)+k|0,p=k>>>I|0,t=Y(Y(Y(Y(s[p+(m(w,i[e+68>>2])+H|0)|0])+Y(-16))*Y(1.142899990081787))+Y(.5));k:{if(Y(d0(t))=0?A>>>0>=255?255:A:0,o=(m(i[e+56>>2],r)+S|0)+k|0,t=Y(Y(Y(Y(s[(D+m(i[e+76>>2],r)|0)+k|0])+Y(-16))*Y(1.1689000129699707))+Y(.5));k:{if(Y(d0(t))=0?A>>>0>=255?255:A:0,o=(m(i[e+52>>2],r)+q|0)+k|0,t=Y(Y(Y(Y(s[p+(m(w,i[e+72>>2])+z|0)|0])+Y(-16))*Y(1.142899990081787))+Y(.5));k:{if(Y(d0(t))=0?A>>>0>=255?255:A:0,k=k+1|0,(u|0)==(k|0))break}if(v&&l0(m(i[e+48>>2],r)+W|0,m(i[e+64>>2],r)+Z|0,u),r=r+1|0,(_|0)==(r|0))break}break A;case 8:for(;;){for(A=k>>>C|0,r=0;o=r>>>I|0,w=s[o+(m(A,i[e+68>>2])+H|0)|0]-128|0,p=s[(D+m(i[e+76>>2],k)|0)+r|0],J=s[o+(m(A,i[e+72>>2])+z|0)|0]-128|0,d=p-J|0,o=w+d|0,l[(m(i[e+60>>2],k)+a|0)+r|0]=(o|0)>=0?o>>>0>=255?255:o:0,o=p+J|0,l[(m(i[e+56>>2],k)+S|0)+r|0]=(o|0)>=0?o>>>0>=255?255:o:0,w=d-w|0,l[(m(i[e+52>>2],k)+q|0)+r|0]=(w|0)>=0?w>>>0>=255?255:w:0,r=r+1|0,(u|0)!=(r|0););if(v&&l0(m(i[e+48>>2],k)+W|0,m(i[e+64>>2],k)+Z|0,u),k=k+1|0,(_|0)==(k|0))break}break A;default:break f}for(;;){for(o=k>>>C|0,r=0;;){J=r>>>I|0,t=Y(s[J+(m(o,i[e+68>>2])+H|0)|0]-128|0),p=w&1,E=p?t:Y(t*Y(1.142899990081787)),t=Y(s[(D+m(i[e+76>>2],k)|0)+r|0]),t=p?t:Y(Y(t+Y(-16))*Y(1.1689000129699707)),R=Y(Y(Y(Z0[e+28>>2]*E)+t)+Y(.5));f:{if(Y(d0(R))>2])+z|0)|0],l[(m(i[e+60>>2],k)+a|0)+r|0]=(A|0)>=0?A>>>0>=255?255:A:0,d=(m(i[e+56>>2],k)+S|0)+r|0,R=Y(Z0[e+36>>2]*E),E=Y(J-128|0),E=p?E:Y(E*Y(1.142899990081787)),R=Y(Y(R+Y(Y(Z0[e+32>>2]*E)+t))+Y(.5));f:{if(Y(d0(R))=0?A>>>0>=255?255:A:0,p=(m(i[e+52>>2],k)+q|0)+r|0,t=Y(Y(Y(Z0[e+40>>2]*E)+t)+Y(.5));f:{if(Y(d0(t))=0?A>>>0>=255?255:A:0,r=r+1|0,(u|0)==(r|0))break}if(v&&l0(m(i[e+48>>2],k)+W|0,m(i[e+64>>2],k)+Z|0,u),k=k+1|0,(_|0)==(k|0))break}break A}if(!v)break A;if(r=0,(_|0)!=1)for(A=_&2147483646,k=0;l0(m(i[e+48>>2],r)+W|0,m(i[e+64>>2],r)+Z|0,u),v=r|1,l0(m(v,i[e+48>>2])+W|0,m(v,i[e+64>>2])+Z|0,u),r=r+2|0,k=k+2|0,(A|0)!=(k|0););if(!(_&1))break A;l0(m(i[e+48>>2],r)+W|0,m(i[e+64>>2],r)+Z|0,u)}i[f+4>>2]=n,i[f>>2]=h;break r}if(i[f>>2]=0,i[f+4>>2]=0,f=i[n+4>>2],i[n+4>>2]=f-1,f)break r;V[i[i[n>>2]+8>>2]](n),g(n)}if(!y||(f=i[y+4>>2],i[y+4>>2]=f-1,f))break i;V[i[i[y>>2]+8>>2]](y),g(y)}B=e+80|0}function Ik(f){f=f|0;var e=0,r=0,A=0,k=0,n=0;if(i[f>>2]=43536,e=i[f+3212>>2],r=i[f+3208>>2],(e|0)!=(r|0))for(;A=i[e-4>>2],A&&(G(Hn(A)),r=i[f+3208>>2],e=i[f+3212>>2]),e=e-4|0,i[f+3212>>2]=e,(e|0)!=(r|0););if(r&&(i[f+3212>>2]=r,G(r)),r=0,e=f+2140|0,A=i[e+12>>2],k=i[e+8>>2],(A|0)!=(k|0))for(;n=i[(r<<2)+k>>2],n&&(G(zA(n)),k=i[e+8>>2],A=i[e+12>>2]),r=r+1|0,r>>>0>2>>>0;);LA(e+32|0),r=i[e+20>>2],r&&(i[e+24>>2]=r,G(r)),r=i[e+8>>2],r&&(i[e+12>>2]=r,G(r)),LA(f+1396|0),e=i[f+1388>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+1380>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+1372>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}for(A=f+4|0,e=1368;;){e=e-8|0,r=i[A+e>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if((e|0)==856)break}e=i[f+852>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+844>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+836>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+828>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+820>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+812>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+804>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+796>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+788>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+780>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+772>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+764>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+756>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+748>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+740>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+732>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+724>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+716>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+708>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+700>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+692>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+684>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+676>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+668>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+660>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+652>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+644>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+636>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+628>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+620>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+612>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+604>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(e=f+548|0,r=i[e+32>>2],r)for(;n=i[e+16>>2],A=i[e+28>>2],k=i[i[n+(A>>>8&16777212)>>2]+((A&1023)<<2)>>2],i[e+32>>2]=r-1,r=A+1|0,i[e+28>>2]=r,r>>>0>=2048&&(G(i[n>>2]),i[e+16>>2]=i[e+16>>2]+4,i[e+28>>2]=i[e+28>>2]-1024),i[e+36>>2]=i[e+36>>2]-i[k+24>>2],w4(e,k),r=i[e+32>>2],!!r;);if(r=i[e+8>>2],r&&w4(e,r),r=i[e+40>>2],n=i[e+44>>2],(r|0)!=(n|0))for(A=0;k=i[(A<<2)+r>>2],k&&(G(i[k+20>>2]),r=i[k+32>>2],r&&(i[k+36>>2]=r,G(r)),G(k),n=i[e+44>>2],r=i[e+40>>2]),A=A+1|0,A>>>0>2>>>0;);return r&&(i[e+44>>2]=r,G(r)),LA(e+12|0),f|0}function n6(f,e,r,A,k,n,t,o,u,h,w,_,v,Z,p){var W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0;i:{r:{if(y=i[f+18588>>2],W=i[y+168>>2],I=e>>W,(I|0)<0)break r;R=f+18548|0,J=r>>W;e:{A:{f:{k:{n:{t:{for(;;){if(W=i[y+172>>2],(W|0)<=(I|0))break r;if((J|0)<0|i[y+176>>2]<=(J|0))break i;if(I=(i[y+160>>2]+m(I,3)|0)+m(m(W,J),3)|0,C=s[I|0]|s[I+1|0]<<8,J=C>>>8&3,(J|0)!=(v|0))break n;I=!u;o:{u:{E=i[y+124>>2],W=i[E+16940>>2];l:{if(!((W|0)<(o|0)|(u|0)>=(w|0)|(I&(_|0)!=0|i[E+16936>>2]>=(o|0)))){if(o-3>>>0>=3)break k;C=f2(R,(i[f+18572>>2]-o|0)+25|0);break l}if(I&(_|0)==1|(o|0)>(W|0))break u;C=!(i[E+628>>2]|u)&(J|0)==1&(C&56)!=0}if(C)break u;C=1;break o}if(W=i[y+248>>2],I=e>>W,(I|0)<0||(C=i[y+252>>2],(C|0)<=(I|0)))break f;if(W=r>>W,(W|0)<0|(W|0)>=i[y+256>>2])break A;I=(I+i[y+240>>2]|0)+m(W,C)|0,l[I|0]=s[I|0]|1<>2];o:{u:{if(!((W|0)!=0&(o|0)>2)&&(I=-1,(W|0)!=3))break u;I=-1,W=-1;l:{if(!(Z&255)||(W=f2(R,(i[f+18572>>2]+u|0)+16|0),(C^1)&(o|0)!=3|i[E+16848>>2]!=2))break l;W=f2(R,(i[f+18572>>2]+u|0)+16|0)<<1|W}l:{if(!(p&255)||(I=f2(R,(i[f+18572>>2]+u|0)+16|0),(C^1)&(o|0)!=3|i[E+16848>>2]!=2))break l;I=f2(R,(i[f+18572>>2]+u|0)+16|0)<<1|I}if((W|0)>=0)break o}if(W=(o|0)==2,W&!u)break e;W=W&&(u|0)>0?Z&255:0}if((I|0)<0&&(I=(o|0)==2&&(u|0)>0?p&255:0),C)break t;if(o=o-1|0,u=u+1|0,A=W&255,k=I&255,n6(f,e,r,e,r,n,t,o,u,0,w,_,v,A,k),h=1<>2],D=i[y+168>>2],J=C>>D,h=3,p=I,Z=W,k=r,A=e,r=C,e=E,I=e>>D,!((I|0)>=0))break}break r}t:{if(J&&(w=1,!(u|W|I)))break t;w=f2(R,i[f+18572>>2]+(u?14:15)|0)}t:{o:{u:{if((W|0)!=-1){if((I|0)==-1)break u;if((w|0)==-1)break o;if(_=i[f+18588>>2],Z=i[_+124>>2],p=i[Z+16848>>2],l[f+33|0]=0,l[f+34|0]=0,l[f+35|0]=0,l[f+36|0]=0,v=i[_+168>>2],u=e>>v,(u|0)<0||(C=i[_+172>>2],(C|0)<=(u|0)))break r;if(v=r>>v,(v|0)<0|(v|0)>=i[_+176>>2])break i;E=o-((p|0)!=3)|0,y=(E|0)>2,R=s[((i[_+160>>2]+m(u,3)|0)+m(m(v,C),3)|0)+1|0],J=I|W;l:{if(!(J|w))break l;if(u=0,!(i[f+18500>>2]|!s[i[_+132>>2]+26|0])){C=f+18548|0;s:{if(!f2(C,i[f+18572>>2]+139|0)){v=0,_=0;break s}h:{if(!f2(C,i[f+18572>>2]+140|0)){u=1;break h}if(!f2(C,i[f+18572>>2]+140|0)){u=2;break h}if(!f2(C,i[f+18572>>2]+140|0)){u=3;break h}if(!f2(C,i[f+18572>>2]+140|0)){u=4;break h}if(v=0,u=DA(C,0)+5|0,_=0,!u)break s}v=u,_=x1(C)}i[f+18500>>2]=1,i[f+18504>>2]=m(v,1-(_<<1)|0),u=1}s:{h:{w:{if(!(!J|!s[i[f+18592>>2]+760|0]|(s[f+32|0]|i[f+18508>>2]))){u=f+18548|0,_=f2(u,i[f+18572>>2]+23|0),v=i[i[f+18588>>2]+132>>2];_:{if(!(!_|s[v+8250|0]<2)){u=f2(u,i[f+18572>>2]+24|0),i[f+18508>>2]=1;break _}if(i[f+18508>>2]=1,u=0,!_)break w}u=u+v|0,i[f+18512>>2]=l[u+8251|0],u=l[u+8257|0];break h}if(u)break s;break l}i[f+18512>>2]=0,u=0}i[f+18516>>2]=u}zk(f,n,t)}n=i[Z+16856>>2],u=i[Z+16852>>2],i[f+28>>2]=0,w&&_8(f,e,r,o,0),C=y?E:2,_=1<>2],k=0,!(l[i[o+132>>2]+8247|0]&1)))break s;if((t|0)!=1){if(A=i[o+228>>2],h=e>>A,(h|0)<0||(v=i[o+232>>2],(v|0)<=(h|0)))break r;if(w=r>>A,(w|0)<0|(w|0)>=i[o+236>>2])break i;if(A=0,k=0,l[(h+i[o+220>>2]|0)+m(w,v)|0]>=0)break s}if(o=f+18548|0,k=1,!f2(o,i[f+18572>>2]+162|0))break s;A=0;h:{if(!f2(o,i[f+18572>>2]+163|0)||(A=1,!f2(o,i[f+18572>>2]+164|0)))break h;A=f2(o,i[f+18572>>2]+165|0)?3:2}A=1-(f2(o,i[f+18572>>2]+170|0)<<1)<>2]=A,A=W&1,A&&_8(f,e,r,C,1),i[Z+16848>>2]&&h8(f,(e|0)/(u|0)|0,(r|0)/(n|0)|0,_,1,t,A),(p|0)==2&&(A=W&2,A&&_8(f,e,(n<>2]+166|0)))break s;A=0;h:{if(!f2(k,i[f+18572>>2]+167|0)||(A=1,!f2(k,i[f+18572>>2]+168|0)))break h;A=f2(k,i[f+18572>>2]+169|0)?3:2}A=1-(f2(k,i[f+18572>>2]+171|0)<<1)<>2]=A,A=I&1,A&&_8(f,e,r,C,2),i[Z+16848>>2]&&h8(f,(e|0)/(u|0)|0,(r|0)/(n|0)|0,_,2,t,A),(p|0)!=2)break l;A=I&2,A&&_8(f,e,(n<>2]&&h8(f,(A|0)/(u|0)|0,(k|0)/(n|0)|0,v,1,t,e),e=W&2,e&&_8(f,A,k+v|0,o,1),(p|0)==2&&h8(f,(A|0)/(u|0)|0,v+((k|0)/(n|0)|0)|0,v,1,t,(e|0)!=0),e=I&1,e&&_8(f,A,k,o,2),i[Z+16848>>2]&&h8(f,(A|0)/(u|0)|0,(k|0)/(n|0)|0,v,2,t,e),e=I&2,e&&_8(f,A,k+_|0,o,2),(p|0)!=2))break l;h8(f,(A|0)/(u|0)|0,v+((k|0)/(n|0)|0)|0,v,2,t,(e|0)!=0)}break t}C0(17085,14036,3575,3168),P()}C0(17072,14036,3576,3168),P()}C0(17098,14036,3577,3168),P()}return}C0(11353,14036,3857,11248),P()}C0(16842,14036,1834,8715),P()}C0(3758,8453,128,3372),P()}C0(3720,8453,129,3372),P()}C0(18434,14036,3924,11248),P()}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function ds(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0;if(A=B-176|0,B=A,i[A+64>>2]=54820,k=i[13708],i[A+8>>2]=k,h=i[k-12>>2],k=A+8|0,i[h+k>>2]=i[13709],n=k+i[i[A+8>>2]-12>>2]|0,o=A+12|0,b0(n,o),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+64>>2]=54820,i[A+8>>2]=54800,p=$0(o),i[p>>2]=53552,i[A+52>>2]=0,i[A+56>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+60>>2]=16,n=A+164|0,R2(n,e,r),W=k,h=n,k=l[A+175|0],n=(k|0)<0,x(W,n?i[A+164>>2]:h,n?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),v=i[e+56>>2],C=i[e+60>>2],(v|0)!=(C|0))for(;;){if(e=A+164|0,W0(e,r),h=e,e=l[A+175|0],k=(e|0)<0,x(A+8|0,k?i[A+164>>2]:h,k?i[A+168>>2]:e),l[A+175|0]<0&&G(i[A+164>>2]),x(L0(x(A+8|0,21550,26),i[v>>2]),31338,1),e=i[r>>2]+1|0,i[r>>2]=e,Z=i[v+4>>2],I=i[v+8>>2],(Z|0)!=(I|0)){i:{r:{for(;;){e:{W0(A+144|0,r),k=l[A+155|0],h=i[A+144>>2],w=i[A+148>>2],e=A+8|0,_=V1(A+156|0,e);A:{if(s[_|0]!=1)break A;t=e+i[i[A+8>>2]-12>>2]|0,W=i[t+4>>2],n=i[t+24>>2],o=i[t+76>>2],(o|0)==-1&&(u=A+164|0,e=i[t+28>>2],i[u>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(u,100192),o=V[i[i[e>>2]+28>>2]](e,32)|0,O0(u),i[t+76>>2]=o);f:{if(!n||(u=i[t+12>>2],e=h,h=(k|0)<0,e=h?e:A+144|0,k=h?w:k,y=e+k|0,h=(W&176)==32?y:e,w=h-e|0,(w|0)>0&&(V[i[i[n>>2]+48>>2]](n,e,w)|0)!=(w|0)))break f;if(k=(k|0)<(u|0)?u-k|0:0,(k|0)>0){if(k>>>0>=2147483640)break e;k:{if(k>>>0>=11){u=(k|7)+1|0,e=U(u),i[A+172>>2]=u|-2147483648,i[A+164>>2]=e,i[A+168>>2]=k;break k}l[A+175|0]=k,e=A+164|0}if(E=B0(e,o,k)+k|0,J=0,l[E|0]=J,e=V[i[i[n>>2]+48>>2]](n,l[A+175|0]<0?i[A+164>>2]:A+164|0,k)|0,l[A+175|0]<0&&G(i[A+164>>2]),(e|0)!=(k|0))break f}if(e=y-h|0,(e|0)>0&&(V[i[i[n>>2]+48>>2]](n,h,e)|0)!=(e|0))break f;i[t+12>>2]=0;break A}e=i[i[A+8>>2]-12>>2]+(A+8|0)|0,z1(e,i[e+16>>2]|5)}Z1(_),l[A+155|0]<0&&G(i[A+144>>2]),e=A+8|0,h=V1(A+144|0,e);A:{if(s[h|0]!=1)break A;t=e+i[i[A+8>>2]-12>>2]|0,o=i[t+4>>2],n=i[t+24>>2],e=i[t+76>>2],(e|0)==-1&&(k=A+164|0,e=i[t+28>>2],i[k>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(k,100192),e=V[i[i[e>>2]+28>>2]](e,32)|0,O0(k),i[t+76>>2]=e);f:{if(!n||(k=i[t+12>>2],u=(o&176)==32?19529:19513,o=u-19513|0,(o|0)>0&&(V[i[i[n>>2]+48>>2]](n,19513,o)|0)!=(o|0)))break f;if(k=(k|0)>16?k-16|0:0,(k|0)>0){k:{if(k>>>0>=11){w=(k|7)+1|0,o=U(w),i[A+172>>2]=w|-2147483648,i[A+164>>2]=o,i[A+168>>2]=k;break k}l[A+175|0]=k,o=A+164|0}if(E=B0(o,e,k)+k|0,J=0,l[E|0]=J,e=V[i[i[n>>2]+48>>2]](n,l[A+175|0]<0?i[A+164>>2]:A+164|0,k)|0,l[A+175|0]<0&&G(i[A+164>>2]),(e|0)!=(k|0))break f}if(e=19529-u|0,(e|0)>0&&(V[i[i[n>>2]+48>>2]](n,u,e)|0)!=(e|0))break f;i[t+12>>2]=0;break A}e=i[i[A+8>>2]-12>>2]+(A+8|0)|0,z1(e,i[e+16>>2]|5)}Z1(h),n=L0(A+8|0,Q[Z+2>>1]),w=V1(A+144|0,n);A:{if(s[w|0]!=1)break A;u=n+i[i[n>>2]-12>>2]|0,t=i[u+4>>2],o=i[u+24>>2],e=i[u+76>>2],(e|0)==-1&&(k=A+164|0,e=i[u+28>>2],i[k>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(k,100192),e=V[i[i[e>>2]+28>>2]](e,32)|0,O0(k),i[u+76>>2]=e);f:{if(!o||(k=i[u+12>>2],h=(t&176)==32?20481:20468,t=h-20468|0,(t|0)>0&&(V[i[i[o>>2]+48>>2]](o,20468,t)|0)!=(t|0)))break f;if(k=(k|0)>13?k-13|0:0,(k|0)>0){k:{if(k>>>0>=11){_=(k|7)+1|0,t=U(_),i[A+172>>2]=_|-2147483648,i[A+164>>2]=t,i[A+168>>2]=k;break k}l[A+175|0]=k,t=A+164|0}if(E=B0(t,e,k)+k|0,J=0,l[E|0]=J,e=V[i[i[o>>2]+48>>2]](o,l[A+175|0]<0?i[A+164>>2]:A+164|0,k)|0,l[A+175|0]<0&&G(i[A+164>>2]),(e|0)!=(k|0))break f}if(e=20481-h|0,(e|0)>0&&(V[i[i[o>>2]+48>>2]](o,h,e)|0)!=(e|0))break f;i[u+12>>2]=0;break A}e=n+i[i[n>>2]-12>>2]|0,z1(e,i[e+16>>2]|5)}Z1(w),e=n+i[i[n>>2]-12>>2]|0,i[e+4>>2]=i[e+4>>2]|1,u=re(n,s[Z|0]),w=V1(A+144|0,u);A:{if(s[w|0]!=1)break A;o=u+i[i[u>>2]-12>>2]|0,t=i[o+4>>2],n=i[o+24>>2],e=i[o+76>>2],(e|0)==-1&&(k=A+164|0,e=i[o+28>>2],i[k>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(k,100192),e=V[i[i[e>>2]+28>>2]](e,32)|0,O0(k),i[o+76>>2]=e);f:{if(!n||(k=i[o+12>>2],h=(t&176)==32?31339:31337,t=h-31337|0,(t|0)>0&&(V[i[i[n>>2]+48>>2]](n,31337,t)|0)!=(t|0)))break f;if(k=(k|0)>2?k-2|0:0,(k|0)>0){if(k>>>0>=2147483640)break r;k:{if(k>>>0>=11){_=(k|7)+1|0,t=U(_),i[A+172>>2]=_|-2147483648,i[A+164>>2]=t,i[A+168>>2]=k;break k}l[A+175|0]=k,t=A+164|0}if(E=B0(t,e,k)+k|0,J=0,l[E|0]=J,e=V[i[i[n>>2]+48>>2]](n,l[A+175|0]<0?i[A+164>>2]:A+164|0,k)|0,l[A+175|0]<0&&G(i[A+164>>2]),(e|0)!=(k|0))break f}if(e=31339-h|0,(e|0)>0&&(V[i[i[n>>2]+48>>2]](n,h,e)|0)!=(e|0))break f;i[o+12>>2]=0;break A}e=u+i[i[u>>2]-12>>2]|0,z1(e,i[e+16>>2]|5)}if(Z1(w),Z=Z+4|0,(I|0)!=(Z|0))continue;break i}break}c2(),P()}c2(),P()}e=i[r>>2]}if(i[r>>2]=(e|0)>0?e-1|0:0,v=v+16|0,(C|0)==(v|0))break}i2(f,p),f=i[13707],i[A+8>>2]=f,i[i[f-12>>2]+(A+8|0)>>2]=i[13710],i[p>>2]=53552,l[A+55|0]<0&&G(i[A+44>>2]),K0(p),T0(A- -64|0),B=A+176|0}function cs(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;u=B-112|0,B=u,i[u+104>>2]=0,i[u+108>>2]=0,l[u+73|0]=0,l[u+74|0]=0,l[u+75|0]=0,l[u+76|0]=0,X[u+70>>1]=0,X[u+72>>1]=0,X[u+68>>1]=263,l[u+100|0]=1,l[u+96|0]=0,i[u+88>>2]=2,i[u+92>>2]=2,l[u+84|0]=1,i[u+80>>2]=1;i:{if(!n)break i;r:switch(s[n|0]-1|0){case 6:l[u+100|0]=s[n+32|0];case 5:h=i[n+20>>2],i[u+84>>2]=i[n+16>>2],i[u+88>>2]=h,h=i[n+28>>2],i[u+92>>2]=i[n+24>>2],i[u+96>>2]=h;case 4:i[u+80>>2]=i[n+12>>2];case 3:i[u+72>>2]=i[n+4>>2],l[u+76|0]=s[n+8|0];case 2:l[u+71|0]=s[n+3|0];case 1:l[u+70|0]=s[n+2|0];break;case 0:break r;default:break i}l[u+69|0]=s[n+1|0]}_=u+48|0,p=i[e>>2],W=u+68|0,v=u+104|0,w=B+-64|0,B=w,h=w+40|0,i[h>>2]=0,i[h+4>>2]=0,i[h+16>>2]=0,i[h+8>>2]=0,i[h+12>>2]=0,Z=i[r>>2],r=i[Z+28>>2],n=i[Z+24>>2];i:{if(!((n|0)>(t|0)|(r|0)>(t|0))){r=i[v+4>>2],i[v>>2]=0,i[v+4>>2]=0;r:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(r=i[19565],i[_>>2]=i[19564],i[_+4>>2]=r,r=_+8|0,l[78275]>=0){k=i[19567],i[r>>2]=i[19566],i[r+4>>2]=k,i[r+8>>2]=i[19568];break i}_0(r,i[19566],i[19567]);break i}r:{if((r|0)<(n|0)){r=(m(r,t)|0)/(n|0)|0,n=t;break r}n=(m(n,t)|0)/(r|0)|0,r=t}if(i[w+32>>2]=0,i[w+36>>2]=0,vA(w+8|0,Z,w+32|0,n&-2,r&-2),n=i[w+12>>2],r=i[w+8>>2],i[h>>2]=r,i[h+4>>2]=n,l[h+19|0]<0&&(G(i[h+8>>2]),r=i[h>>2]),n=i[w+20>>2],i[h+8>>2]=i[w+16>>2],i[h+12>>2]=n,i[h+16>>2]=i[w+24>>2],r||(BA(w+8|0,p,w+32|0,k,W,4,v),r=i[w+12>>2],i[h>>2]=i[w+8>>2],i[h+4>>2]=r,l[h+19|0]<0&&G(i[h+8>>2]),r=i[w+20>>2],i[h+8>>2]=i[w+16>>2],i[h+12>>2]=r,i[h+16>>2]=i[w+24>>2]),r=i[h+4>>2],i[_>>2]=i[h>>2],i[_+4>>2]=r,i[_+16>>2]=i[h+16>>2],r=i[h+12>>2],i[_+8>>2]=i[h+8>>2],i[_+12>>2]=r,i[h+8>>2]=0,i[h+12>>2]=0,i[h+16>>2]=0,r=i[w+36>>2],!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}l[h+19|0]<0&&G(i[h+8>>2]),B=w- -64|0;i:{if(i[u+48>>2]!=i[19564]){P0(f,_,i[e>>2]);break i}if(!i[u+104>>2]){if(r=U(64),i[u+12>>2]=r,i[u+16>>2]=57,i[u+20>>2]=-2147483584,l[r+56|0]=s[17985],A=s[17981]|s[17982]<<8|(s[17983]<<16|s[17984]<<24),k=s[17977]|s[17978]<<8|(s[17979]<<16|s[17980]<<24),l[r+48|0]=k,l[r+49|0]=k>>>8,l[r+50|0]=k>>>16,l[r+51|0]=k>>>24,l[r+52|0]=A,l[r+53|0]=A>>>8,l[r+54|0]=A>>>16,l[r+55|0]=A>>>24,A=s[17973]|s[17974]<<8|(s[17975]<<16|s[17976]<<24),k=s[17969]|s[17970]<<8|(s[17971]<<16|s[17972]<<24),l[r+40|0]=k,l[r+41|0]=k>>>8,l[r+42|0]=k>>>16,l[r+43|0]=k>>>24,l[r+44|0]=A,l[r+45|0]=A>>>8,l[r+46|0]=A>>>16,l[r+47|0]=A>>>24,A=s[17965]|s[17966]<<8|(s[17967]<<16|s[17968]<<24),k=s[17961]|s[17962]<<8|(s[17963]<<16|s[17964]<<24),l[r+32|0]=k,l[r+33|0]=k>>>8,l[r+34|0]=k>>>16,l[r+35|0]=k>>>24,l[r+36|0]=A,l[r+37|0]=A>>>8,l[r+38|0]=A>>>16,l[r+39|0]=A>>>24,A=s[17957]|s[17958]<<8|(s[17959]<<16|s[17960]<<24),k=s[17953]|s[17954]<<8|(s[17955]<<16|s[17956]<<24),l[r+24|0]=k,l[r+25|0]=k>>>8,l[r+26|0]=k>>>16,l[r+27|0]=k>>>24,l[r+28|0]=A,l[r+29|0]=A>>>8,l[r+30|0]=A>>>16,l[r+31|0]=A>>>24,A=s[17949]|s[17950]<<8|(s[17951]<<16|s[17952]<<24),k=s[17945]|s[17946]<<8|(s[17947]<<16|s[17948]<<24),l[r+16|0]=k,l[r+17|0]=k>>>8,l[r+18|0]=k>>>16,l[r+19|0]=k>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[17941]|s[17942]<<8|(s[17943]<<16|s[17944]<<24),k=s[17937]|s[17938]<<8|(s[17939]<<16|s[17940]<<24),l[r+8|0]=k,l[r+9|0]=k>>>8,l[r+10|0]=k>>>16,l[r+11|0]=k>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,A=s[17933]|s[17934]<<8|(s[17935]<<16|s[17936]<<24),k=s[17929]|s[17930]<<8|(s[17931]<<16|s[17932]<<24),l[r|0]=k,l[r+1|0]=k>>>8,l[r+2|0]=k>>>16,l[r+3|0]=k>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+57|0]=0,r=r0(u+24|0,5,2006,u+12|0),l[u+23|0]<0&&G(i[u+12>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break i;G(i[r+8>>2]);break i}if(b7(u+24|0,i[e>>2],A,u+104|0),A=i[u+28>>2],r=i[u+24>>2],i[u+48>>2]=r,i[u+52>>2]=A,l[u+67|0]<0&&(G(i[u+56>>2]),r=i[u+48>>2]),A=i[u+36>>2],i[u+56>>2]=i[u+32>>2],i[u+60>>2]=A,i[u+64>>2]=i[u+40>>2],(r|0)!=i[19564]){P0(f,u+48|0,i[e>>2]);break i}r:{if(!o)break r;if(n=i[u+104>>2],n){k=U(16),r=k,i[r>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,i[r+12>>2]=0,i[o>>2]=r,A=i[u+108>>2];e:{if(!A){i[r+4>>2]=A,i[r>>2]=n;break e}if(i[A+4>>2]=i[A+4>>2]+1,i[k>>2]=n,r=i[k+4>>2],i[k+4>>2]=A,!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break e;V[i[i[r>>2]+8>>2]](r),g(r)}if(k=i[e>>2],r=i[o>>2],A=i[e+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+8>>2]=k,e=i[r+12>>2],i[r+12>>2]=A,!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break r;V[i[i[e>>2]+8>>2]](e),g(e);break r}i[o>>2]=0}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}l[u+67|0]<0&&G(i[u+56>>2]),f=i[u+108>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=u+112|0}function Qk(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;h=B-48|0,B=h;i:{r:{if(!r){if(l[h+12|0]=0,l[h+23|0]=0,r=f,f=r0(h+24|0,5,2001,h+12|0),P0(r,f,i[e>>2]),l[f+19|0]<0&&G(i[f+8>>2]),l[h+23|0]>=0)break r;G(i[h+12>>2]);break r}if(i[r>>2]!=1){if(l[h+12|0]=0,l[h+23|0]=0,r=r0(h+24|0,5,2004,h+12|0),l[h+23|0]<0&&G(i[h+12>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break r;G(i[r+8>>2]);break r}if(i[h+32>>2]=0,i[h+36>>2]=0,i[h+24>>2]=0,i[h+28>>2]=0,w=h+24|0,v=B-32|0,B=v,Z=i[e>>2],n=i[Z+16>>2],o=Z+20|0,(n|0)!=(o|0))for(;;){if(k=i[n+20>>2],t=i[k+196>>2],u=i[k+200>>2],(t|0)!=(u|0))for(;_=i[Z+48>>2],p=i[t>>2],W=i[n+16>>2],k=U(4),i[v>>2]=k,C=k+4|0,i[v+8>>2]=C,i[k>>2]=W,i[v+4>>2]=C,P1(_,p,1667527523,v),k=i[v>>2],k&&(i[v+4>>2]=k,G(k)),t=t+4|0,(u|0)!=(t|0););k=i[n+4>>2];e:{if(k){for(;;)if(t=k,k=i[k>>2],!k)break e}for(;t=i[n+8>>2],k=i[t>>2]!=(n|0),n=t,!!k;);}if(n=t,(o|0)==(n|0))break}if(t=i[Z+72>>2],W=i[Z+76>>2],(t|0)!=(W|0))for(;;){i[v+28>>2]=0,i[v+20>>2]=0,i[v+24>>2]=0,u=i[t>>2],p=v+20|0,o=0,n=B-32|0,B=n,i[n+24>>2]=0,i[n+28>>2]=0,i[n+16>>2]=0,i[n+20>>2]=0,A2(n+16|0,0);e:{A:{if(!(k0[u+4>>2]>65535|k0[u+8>>2]>=65536)){o=1;break A}if(_=2,k=i[u+12>>2],C=i[u+16>>2],(k|0)==(C|0))break e;for(;;){if(o=i[k>>2],o=V[i[i[o>>2]+16>>2]](o)|0,o)break A;if(k=k+8|0,(C|0)==(k|0))break}break e}_=4}k=n+16|0,A2(k,o),k1(k,_,i[u+4>>2],0),k1(k,_,i[u+8>>2],0);e:{A:{k=i[u+16>>2]-i[u+12>>2]>>3;f:{if(k>>>0>=256){if(l[n+4|0]=0,l[n+15|0]=0,r0(v,9,5004,n+4|0),l[n+15|0]>=0)break f;G(i[n+4>>2]);break f}if(A2(n+16|0,k&255),k=i[u+12>>2],o=i[u+16>>2],(k|0)!=(o|0))for(;u=i[k>>2],V[i[i[u>>2]+20>>2]](u,n+16|0,_),k=k+8|0,(o|0)!=(k|0););if(o=0,i[n+12>>2]=0,i[n+4>>2]=0,i[n+8>>2]=0,k=0,u=i[n+20>>2],_=i[n+16>>2],(u|0)!=(_|0)){if(u=u-_|0,(u|0)<0)break A;k=U(u),i[n+4>>2]=k,o=k+u|0,i[n+12>>2]=o,l0(k,_,u),i[n+8>>2]=o}if((p|0)!=(n+4|0)&&(W8(p,k,o,o-k|0),k=i[n+4>>2]),k&&(i[n+8>>2]=k,G(k)),k=i[19565],i[v>>2]=i[19564],i[v+4>>2]=k,k=v+8|0,l[78275]>=0){o=i[19567],i[k>>2]=i[19566],i[k+4>>2]=o,i[k+8>>2]=i[19568];break f}_0(k,i[19566],i[19567])}k=i[n+16>>2],k&&(i[n+20>>2]=k,G(k)),B=n+32|0;break e}y0(),P()}if(hi(i[Z+48>>2],i[i[t>>2]>>2],p,0),l[v+19|0]<0&&G(i[v+8>>2]),n=i[v+20>>2],n&&(i[v+24>>2]=n,G(n)),t=t+8|0,(W|0)==(t|0))break}if(u=B-48|0,B=u,k=i[Z+48>>2],t=i[k+8>>2],n=i[k+12>>2],(t|0)!=(n|0))for(;rt(i[t>>2]),o=i[t>>2],V[i[i[o>>2]+16>>2]](u+28|0,o,w),l[u+47|0]<0&&G(i[u+36>>2]),t=t+8|0,(n|0)!=(t|0););if(n=0,k=i[k+60>>2],o=i[k+56>>2],Z=i[k+60>>2],(o|0)==(Z|0))t=8;else{for(;;){e:{if(s[o+4|0]||(t=i[o+16>>2],_=i[o+20>>2],(t|0)==(_|0)))break e;for(;n=(i[t+28>>2]+n|0)-i[t+24>>2]|0,t=t+40|0,(_|0)!=(t|0););}if(o=o+32|0,(Z|0)==(o|0))break}t=n+8|0}if(l2(w,t),l2(w,1835295092),n=i[k+56>>2],o=i[k+60>>2],(n|0)!=(o|0))for(;;){e:{if(s[n+4|0]||(i[n+8>>2]=i[w+12>>2],i[n+12>>2]=0,t=i[n+16>>2],Z=i[n+20>>2],(t|0)==(Z|0)))break e;for(;_=i[w+12>>2],p=i[n+8>>2],W=_-p|0,_=0-(i[n+12>>2]+(_>>>0

>>0)|0)|0,i[t+8>>2]=W,i[t+12>>2]=_,i[t+16>>2]=i[t+28>>2]-i[t+24>>2],i[t+20>>2]=0,D4(w,t+24|0),t=t+40|0,(Z|0)!=(t|0););}if(n=n+32|0,(o|0)==(n|0))break}o=i[w+12>>2],i[w+12>>2]=i[k+68>>2],A2(w,s[k+74|0]|s[k+73|0]<<4&240),A2(w,s[k+76|0]|s[k+75|0]<<4&240),t=i[k+60>>2]-i[k+56>>2]|0;e:{if(s[k+48|0]<=1){w2(w,t>>>5&65535);break e}l2(w,t>>5)}if(t=i[k+56>>2],Z=i[k+60>>2],(t|0)!=(Z|0))for(;;){n=i[t>>2];e:{if(s[k+48|0]<=1){w2(w,n&65535);break e}l2(w,n)}if(s[k+48|0]&&w2(w,s[t+4|0]),w2(w,Q[t+6>>1]),k1(w,s[k+75|0],i[t+8>>2],i[t+12>>2]),w2(w,(i[t+20>>2]-i[t+16>>2]|0)/40&65535),n=i[t+16>>2],_=i[t+20>>2],(n|0)!=(_|0))for(;;){e:{if(!s[k+48|0]||(p=s[k+76|0],!p))break e;k1(w,p,i[n>>2],i[n+4>>2])}if(k1(w,s[k+73|0],i[n+8>>2],i[n+12>>2]),k1(w,s[k+74|0],i[n+16>>2],i[n+20>>2]),n=n+40|0,(_|0)==(n|0))break}if(t=t+32|0,(Z|0)==(t|0))break}i[w+12>>2]=o,n=i[19565],t=u+8|0,i[t>>2]=i[19564],i[t+4>>2]=n,t=t+8|0;e:{if(l[78275]>=0){n=i[19567],i[t>>2]=i[19566],i[t+4>>2]=n,i[t+8>>2]=i[19568];break e}_0(t,i[19566],i[19567])}l[u+27|0]<0&&G(i[u+16>>2]),B=u+48|0,B=v+32|0,i[h+20>>2]=0,i[h+12>>2]=0,i[h+16>>2]=0,t=i[h+28>>2],w=i[h+24>>2];e:{if((t|0)==(w|0)){t=0;break e}if(n=t-w|0,(n|0)<0)break i;t=U(n),I=l0(t,w,n)+n|0}V[i[r+4>>2]](h,e,t,I-t|0,A);e:{if(!i[h+8>>2]){i[f>>2]=5,i[f+4>>2]=2001,i[f+8>>2]=2589;break e}e=i[h+4>>2],i[f>>2]=i[h>>2],i[f+4>>2]=e,i[f+8>>2]=i[h+8>>2]}if(t&&G(t),f=i[h+24>>2],!f)break r;i[h+28>>2]=f,G(f)}B=h+48|0;return}y0(),P()}function t6(f,e,r,A,k,n,t,o,u,h){var w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0,r2=0,n2=0,s2=0,W2=0,y2=0,x2=0,T2=0,O2=0,q2=0,b2=0,e1=0,A1=0,h1=0,B1=0,p1=0,W1=0,X1=0;J=B-128|0,B=J;i:{r:{e:{if(z=i[f+140>>2],p=i[f+152>>2],H=z+m(m(p,r),24)|0,v=m(e,24),Z=(H+v|0)+4|0,w=A<<1,j=s[Z|0]>>>w&3,!j)break e;if(R=m(e,k),e=i[f+148>>2],E=R>>e,(E|0)<0|(p|0)<=(E|0))break r;if(a=m(r,n),y=a>>e,(y|0)<0|(y|0)>=i[f+156>>2])break i;if(I=i[f+124>>2],W=i[I+(A?16840:16832)>>2],r=-1<>2],S=(n0|0)<(n+a|0)?n0-a|0:n,h0=i[(A?32:24)+f>>2],q=(h0|0)<(k+R|0)?h0-R|0:k,d=A?i[I+16856>>2]-1|0:0,A0=A?i[I+16852>>2]-1|0:0,I0=s[(v+H|0)+22|0],(j|0)==2){if(H=i[f+132>>2],W=i[f+52>>2],E=i[i[W+(Q[((z+m(E,24)|0)+m(m(p,y),24)|0)+2>>1]<<2)>>2]+808>>2],n=i[f+56>>2],k=i[I+16876>>2],y=i[I+16892>>2],v=s[Z+1|0],A=Z+(A<<2)|0,l[J|0]=s[A+5|0],Z=s[A+6|0],l[J+2|0]=0,l[J+1|0]=Z,l[J+3|0]=s[A+7|0],l[J+4|0]=s[A+8|0],(S|0)<=0|(q|0)<=0)break e;for(j=n-W>>2,A=(v>>>w&3)<<2,Q0=i[A+45112>>2],F0=i[A+45096>>2],L=k-A0|0,Y0=R>>L,W2=S-1|0,y2=q-1|0,p0=k-d|0,S0=m(y,a>>p0),k=R<<1,x2=k+u|0,T2=k+t|0,c0=i[f+168>>2],r2=i[A+45128>>2],O2=m(r2,o)<<1,n2=i[A+45144>>2],q2=m(n2,o)<<1,A=0;;){for(k=A+a|0,t=k<>c0,b2=(m(k,h)<<1)+x2|0,e1=(m(k,o)<<1)+T2|0,u=t>>e,A1=(z+m(m(u,p),24)|0)+2|0,Z=k+r2|0,X0=Z<>e,h1=(z+m(m(p,X0),24)|0)+2|0,v=k+n2|0,G0=v<>e,B1=(z+m(m(p,G0),24)|0)+2|0,p1=m(y,v>>>p0|0)<<2,W1=m(y,Z>>>p0|0)<<2,X1=(A|0)==(W2|0),k=0;;){_=k+R|0,D=_<>c0;A:{f:{if(!(!(I0&1)|!s[I+8812|0])){if((t|0)<0||(w=i[f+172>>2],(w|0)<=(t|0)))break r;if((n|0)<0|(n|0)>=i[f+176>>2])break i;if(!(s[((i[f+160>>2]+m(t,3)|0)+m(m(n,w),3)|0)+1|0]&4))break f;break A}if((t|0)<0)break r}if(w=i[f+172>>2],(w|0)<=(t|0))break r;if((n|0)<0|(n|0)>=i[f+176>>2])break i;if(s[((i[f+160>>2]+m(t,3)|0)+m(m(n,w),3)|0)+1|0]&8)break A;f:{if(!(!A|!k|(k|0)==(y2|0))&&!X1)break f;if(t=_+Q0|0,(t|0)>=(h0|0)|(t|0)<0|((v|0)<0|(v|0)>=(n0|0)))break A;if(C=t<>e,(C|0)<0|(p|0)<=(C|0))break r;if((G0|0)<0||(w=i[f+156>>2],(w|0)<=(G0|0)))break i;if(C=Q[m(C,24)+B1>>1],C>>>0>=j>>>0||(C=i[W+(C<<2)>>2],!C))break e;D=D>>e,s2=(D|0)>=0&p>>>0>D>>>0,D=m(D,24)+A1|0;k:{if(f0=i[C+808>>2],(f0|0)<(E|0)){if(!s2)break r;if((u|0)<0|(u|0)>=(w|0))break k;if(!s[i[W+(Q[D>>1]<<2)>>2]+772|0])break A}if(!s[C+772|0]&(E|0)<(f0|0)||(C=s[H+57|0],!C&&(f0=t>>>L<<2,t=i[H+8484>>2],i[(f0+t|0)+p1>>2]!=i[(t+(Y0<<2)|0)+(S0<<2)>>2]))||(t=_+F0|0,(t|0)>=(h0|0)|(t|0)<0|((Z|0)<0|(Z|0)>=(n0|0))))break A;if(_=t<>e,(_|0)<0|(p|0)<=(_|0))break r;if((X0|0)<0|(w|0)<=(X0|0))break i;if(_=Q[m(_,24)+h1>>1],_>>>0>=j>>>0||(_=i[W+(_<<2)>>2],!_))break e;if(f0=i[_+808>>2],(f0|0)<(E|0)){if(!s2)break r;if((u|0)<0|(u|0)>=(w|0))break k;if(!s[i[W+(Q[D>>1]<<2)>>2]+772|0])break A}if(!s[_+772|0]&(E|0)<(f0|0))break A;if(C||(w=t>>>L<<2,t=i[H+8484>>2],i[(w+t|0)+W1>>2]==i[(t+(Y0<<2)|0)+(S0<<2)>>2]))break f;break A}break i}_=k<<1,w=_+e1|0,t=Q[w>>1],C=_+b2|0,_=Q[(w+(Q0<<1)|0)+q2>>1],w=Q[(w+(F0<<1)|0)+O2>>1],t=t+l[((t>>>0<_>>>0?1:(_|0)==(t|0)?2:3)+(t>>>0>>0?-1:(w|0)!=(t|0))|0)+J|0]|0,X[C>>1]=(t|0)>=0?(r|0)>(t|0)?t:r:0}if(k=k+1|0,(q|0)==(k|0))break}if(A=A+1|0,(S|0)==(A|0))break}break e}if(e=s[(A+Z|0)+2|0],p=B0(J,0,128),i[((e&31)<<2)+p>>2]=1,i[p+((e+1&31)<<2)>>2]=2,i[p+((e+2&31)<<2)>>2]=3,i[p+((e+3&31)<<2)>>2]=4,z=W-5|0,!(I0&1)){if((S|0)<=0|(q|0)<=0|(W|0)>12)break e;for(n=Z+5|0,I=(R<<1)+t|0,e=0;;){for(f=e+a|0,Z=(m(f,h)<<1)+u|0,f=m(f,o)<<1,d=f+t|0,A0=f+I|0,f=0;k=Q[A0+(f<<1)>>1],k=i[p+((r>>>0>k>>>0?k:r)>>>z<<2)>>2],(k|0)>0&&(W=f+R<<1,k=Q[W+d>>1]+l[(k+(n+(A<<2)|0)|0)-1|0]|0,X[Z+W>>1]=(k|0)>=0?(r|0)>(k|0)?k:r:0),f=f+1|0,(q|0)>(f|0););if(e=e+1|0,!((S|0)>(e|0)))break}break e}if((S|0)<=0|(q|0)<=0)break e;E=Z+5|0,Z=i[f+168>>2],n0=s[I+8812|0],W=(W|0)>12,I=0;A:{for(;;){k=I+a|0,e=k<>Z,h0=(m(k,h)<<1)+u|0,H=(m(k,o)<<1)+t|0,n=0;f:{for(;;){y=n+R|0,k=y<>Z;k:{n:{if(n0){if((k|0)<0||(v=i[f+172>>2],(v|0)<=(k|0)))break f;if((e|0)<0|(e|0)>=i[f+176>>2])break i;if(!(s[((i[f+160>>2]+m(k,3)|0)+m(m(e,v),3)|0)+1|0]&4))break n;break k}if((k|0)<0)break r}if(v=i[f+172>>2],(v|0)<=(k|0))break r;if((e|0)<0|(e|0)>=i[f+176>>2])break A;if(W|s[((i[f+160>>2]+m(k,3)|0)+m(m(e,v),3)|0)+1|0]&8||(y=y<<1,k=Q[y+H>>1],v=i[p+((r>>>0>k>>>0?k:r)>>>z<<2)>>2],(v|0)<=0))break k;k=k+l[(v+(E+(A<<2)|0)|0)-1|0]|0,X[y+h0>>1]=(k|0)>=0?(r|0)>(k|0)?k:r:0}if(n=n+1|0,!((q|0)>(n|0)))break}if(I=I+1|0,(S|0)<=(I|0))break e;continue}break}break r}break i}B=J+128|0;return}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function o6(f,e,r,A,k,n,t,o,u,h){var w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0,r2=0,n2=0,s2=0,W2=0,y2=0,x2=0,T2=0,O2=0,q2=0,b2=0,e1=0,A1=0,h1=0;R=B-128|0,B=R;i:{r:{e:{if(v=i[f+140>>2],p=i[f+152>>2],C=v+m(m(p,r),24)|0,I=m(e,24),w=(C+I|0)+4|0,D=A<<1,Z=s[w|0]>>>D&3,!Z)break e;if(J=m(e,k),e=i[f+148>>2],z=J>>e,(z|0)<0|(p|0)<=(z|0))break r;if(S=m(r,n),y=S>>e,(y|0)<0|(y|0)>=i[f+156>>2])break i;if(H=i[f+124>>2],e=i[H+(A?16840:16832)>>2],r=-1<>2],q=(E|0)<(n+S|0)?E-S|0:n,d=i[(A?32:24)+f>>2],k=(d|0)<(k+J|0)?d-J|0:k,A0=A?i[H+16856>>2]-1|0:0,f0=A?i[H+16852>>2]-1|0:0,I=s[(C+I|0)+22|0],(Z|0)==2){if(C=i[f+132>>2],p=i[i[i[f+52>>2]+(Q[((v+m(z,24)|0)+m(m(p,y),24)|0)+2>>1]<<2)>>2]+808>>2],n=i[H+16876>>2],z=i[H+16892>>2],y=s[w+1|0],e=w+(A<<2)|0,l[R|0]=s[e+5|0],A=s[e+6|0],l[R+2|0]=0,l[R+1|0]=A,l[R+3|0]=s[e+7|0],l[R+4|0]=s[e+8|0],(q|0)<=0|(k|0)<=0)break e;for(e=(y>>>D&3)<<2,p0=i[e+45128>>2],c0=m(p0,o),X0=i[e+45144>>2],r2=m(X0,o),G0=i[e+45112>>2],I0=i[e+45096>>2],h0=n-f0|0,Q0=J>>h0,n2=q-1|0,s2=k-1|0,W2=u+J|0,y2=t+J|0,j=n-A0|0,F0=m(z,S>>j),A=0,x2=I&1;;){for(e=A+S|0,w=e<>>j|0)<<2,A1=m(z,y>>>j|0)<<2,h1=(A|0)!=(n2|0),n=0;;){t=i[f+168>>2],e=w>>t,W=n+J|0,n0=W<>t;A:{f:{if(!(!x2|!s[H+8812|0])){if((t|0)<0||(u=i[f+172>>2],(u|0)<=(t|0)))break r;if((e|0)<0|(e|0)>=i[f+176>>2])break i;if(!(s[((i[f+160>>2]+m(t,3)|0)+m(m(e,u),3)|0)+1|0]&4))break f;break A}if((t|0)<0)break r}if(u=i[f+172>>2],(u|0)<=(t|0))break r;if((e|0)<0|(e|0)>=i[f+176>>2])break i;if(s[((i[f+160>>2]+m(t,3)|0)+m(m(e,u),3)|0)+1|0]&8)break A;f:{if(!(!A|!n|(n|0)==(s2|0))&&h1)break f;if(v=W+G0|0,(v|0)>=(d|0)|(v|0)<0|((I|0)<0|(I|0)>=(E|0)))break A;if(e=i[f+148>>2],Z=v<>e,(Z|0)<0||(t=i[f+152>>2],(t|0)<=(Z|0)))break r;if(_=O2>>e,(_|0)<0||(D=i[f+156>>2],(D|0)<=(_|0)))break i;if(u=i[f+52>>2],Y0=i[f+56>>2]-u>>2,a=m(Z,24),Z=i[f+140>>2],_=Q[((a+Z|0)+m(m(t,_),24)|0)+2>>1],Y0>>>0<=_>>>0||(_=i[u+(_<<2)>>2],!_))break e;if(S0=i[_+808>>2],(p|0)>(S0|0)){if(a=n0>>e,(a|0)<0|t>>>0<=a>>>0)break r;if(L=w>>e,(L|0)<0|(D|0)<=(L|0))break i;if(!s[i[u+(Q[((Z+m(a,24)|0)+m(m(t,L),24)|0)+2>>1]<<2)>>2]+772|0])break A}if(!s[_+772|0]&(p|0)<(S0|0)||(a=s[C+57|0],!a&&(_=v>>>h0<<2,v=i[C+8484>>2],i[(_+v|0)+e1>>2]!=i[(v+(Q0<<2)|0)+(F0<<2)>>2]))||(v=W+I0|0,(v|0)>=(d|0)|(v|0)<0|((y|0)<0|(y|0)>=(E|0))))break A;if(W=v<>e,(W|0)<0|t>>>0<=W>>>0)break r;if(_=T2>>e,(_|0)<0|(_|0)>=(D|0))break i;if(W=Q[((Z+m(W,24)|0)+m(m(t,_),24)|0)+2>>1],W>>>0>=Y0>>>0||(W=i[u+(W<<2)>>2],!W))break e;if(_=i[W+808>>2],(_|0)<(p|0)){if(n0=n0>>e,(n0|0)<0|t>>>0<=n0>>>0)break r;if(e=w>>e,(e|0)<0|(e|0)>=(D|0))break i;if(!s[i[u+(Q[((Z+m(n0,24)|0)+m(m(e,t),24)|0)+2>>1]<<2)>>2]+772|0])break A}if(!s[W+772|0]&(p|0)<(_|0))break A;if(a||(e=i[C+8484>>2],i[(e+(v>>>h0<<2)|0)+A1>>2]==i[(e+(Q0<<2)|0)+(F0<<2)>>2]))break f;break A}t=n+b2|0,e=s[t|0],u=s[(t+G0|0)+r2|0],t=s[(t+I0|0)+c0|0],e=l[((e>>>0>>0?1:(e|0)==(u|0)?2:3)+(e>>>0>>0?-1:(t|0)!=(e|0))|0)+R|0]+e|0,l[n+q2|0]=(e|0)>=0?(e|0)<(r|0)?e:r:0}if(n=n+1|0,(k|0)==(n|0))break}if(A=A+1|0,(q|0)==(A|0))break}break e}if(n=s[(A+w|0)+2|0],p=B0(R,0,128),i[((n&31)<<2)+p>>2]=1,i[p+((n+1&31)<<2)>>2]=2,i[p+((n+2&31)<<2)>>2]=3,i[p+((n+3&31)<<2)>>2]=4,d=e-5|0,!(I&1)){if((q|0)<=0|(k|0)<=0|(e|0)>12)break e;for(H=w+5|0,w=t+J|0,e=0;;){for(f=e+S|0,A0=m(f,h)+u|0,f=m(f,o),f0=f+t|0,E=f+w|0,f=0;n=s[f+E|0],n=i[p+((r>>>0>n>>>0?n:r)>>>d<<2)>>2],(n|0)>0&&(C=f+J|0,n=s[C+f0|0]+l[(n+(H+(A<<2)|0)|0)-1|0]|0,l[C+A0|0]=(n|0)>=0?(r|0)>(n|0)?n:r:0),f=f+1|0,(k|0)>(f|0););if(e=e+1|0,!((q|0)>(e|0)))break}break e}if((q|0)<=0|(k|0)<=0)break e;z=w+5|0,E=0,y=(e|0)>12;A:{for(;;){e=E+S|0,I=e<>2],e=I>>w,C=n+J|0,w=C<>w;k:{n:{if(s[H+8812|0]){if((w|0)<0||(Z=i[f+172>>2],(Z|0)<=(w|0)))break f;if((e|0)<0|(e|0)>=i[f+176>>2])break i;if(!(s[((i[f+160>>2]+m(w,3)|0)+m(m(e,Z),3)|0)+1|0]&4))break n;break k}if((w|0)<0)break r}if(Z=i[f+172>>2],(Z|0)<=(w|0))break r;if((e|0)<0|(e|0)>=i[f+176>>2])break A;if(y|s[((i[f+160>>2]+m(w,3)|0)+m(m(e,Z),3)|0)+1|0]&8||(e=s[C+D|0],w=i[p+((e>>>0>>0?e:r)>>>d<<2)>>2],(w|0)<=0))break k;e=e+l[(w+(z+(A<<2)|0)|0)-1|0]|0,l[v+C|0]=(e|0)>=0?(e|0)<(r|0)?e:r:0}if(n=n+1|0,!((k|0)>(n|0)))break}if(E=E+1|0,(q|0)<=(E|0))break e;continue}break}break r}break i}B=R+128|0;return}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function ih(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0;k=B-160|0,B=k,i[k+60>>2]=54820,h=i[13708],i[k+4>>2]=h,A=i[h-12>>2],h=k+4|0,i[A+h>>2]=i[13709],A=h+i[i[k+4>>2]-12>>2]|0,t=k+8|0,b0(A,t),i[A+72>>2]=0,i[A+76>>2]=-1,i[k+60>>2]=54820,i[k+4>>2]=54800,Z=$0(t),i[Z>>2]=53552,i[k+48>>2]=0,i[k+52>>2]=0,i[k+40>>2]=0,i[k+44>>2]=0,i[k+56>>2]=16,A=k+148|0,R2(A,e,r),n=h,t=A,h=l[k+159|0],A=(h|0)<0,x(n,A?i[k+148>>2]:t,A?i[k+152>>2]:h),l[k+159|0]<0&&G(i[k+148>>2]);i:{if(h=i[e+56>>2],p=i[e+60>>2],(h|0)!=(p|0))for(;;){e=k+148|0,W0(e,r),n=e,e=l[k+159|0],A=(e|0)<0,x(k+4|0,A?i[k+148>>2]:n,A?i[k+152>>2]:e),l[k+159|0]<0&&G(i[k+148>>2]),e=x(L0(x(k+4|0,21567,9),i[h>>2]),31338,1),A=k+148|0,W0(A,r),n=A,A=l[k+159|0],t=(A|0)<0,x(e,t?i[k+148>>2]:n,t?i[k+152>>2]:A),l[k+159|0]<0&&G(i[k+148>>2]),e=x(H0(x(e,21238,23),s[h+4|0]),31338,1),A=k+148|0,W0(A,r),n=A,A=l[k+159|0],t=(A|0)<0,x(e,t?i[k+148>>2]:n,t?i[k+152>>2]:A),l[k+159|0]<0&&G(i[k+148>>2]),e=x(e,19465,24),A=i[i[e>>2]-12>>2]+e|0,i[A+4>>2]=i[A+4>>2]&-75|8,e=L0(e,Q[h+6>>1]),A=i[i[e>>2]-12>>2]+e|0,i[A+4>>2]=i[A+4>>2]&-75|2,e=x(e,31338,1),A=k+148|0,W0(A,r),n=A,A=l[k+159|0],t=(A|0)<0,x(e,t?i[k+148>>2]:n,t?i[k+152>>2]:A),l[k+159|0]<0&&G(i[k+148>>2]),x(n4(x(e,19627,15),i[h+8>>2],i[h+12>>2]),31338,1),e=k+148|0,W0(e,r),n=e,e=l[k+159|0],A=(e|0)<0,x(k+4|0,A?i[k+148>>2]:n,A?i[k+152>>2]:e),l[k+159|0]<0&&G(i[k+148>>2]),x(k+4|0,19691,11);r:{if(e=i[h+16>>2],W=i[h+20>>2],(e|0)==(W|0))break r;e:{for(;;){A:{n=n4(k+4|0,i[e+8>>2],i[e+12>>2]),v=V1(k+140|0,n);f:{if(s[v|0]!=1)break f;w=n+i[i[n>>2]-12>>2]|0,_=i[w+4>>2],t=i[w+24>>2],u=i[w+76>>2],(u|0)==-1&&(o=k+148|0,A=i[w+28>>2],i[o>>2]=A,(A|0)!=100008&&(i[A+4>>2]=i[A+4>>2]+1),A=x0(o,100192),u=V[i[i[A>>2]+28>>2]](A,32)|0,O0(o),i[w+76>>2]=u);k:{if(!t||(A=i[w+12>>2],_=(_&176)==32?18141:18140,o=_-18140|0,(o|0)>0&&(V[i[i[t>>2]+48>>2]](t,18140,o)|0)!=(o|0)))break k;if(A=(A|0)>1?A-1|0:0,(A|0)>0){if(A>>>0>=2147483640)break A;n:{if(A>>>0>=11){C=(A|7)+1|0,o=U(C),i[k+156>>2]=C|-2147483648,i[k+148>>2]=o,i[k+152>>2]=A;break n}l[k+159|0]=A,o=k+148|0}if(I=B0(o,u,A)+A|0,y=0,l[I|0]=y,u=V[i[i[t>>2]+48>>2]](t,l[k+159|0]<0?i[k+148>>2]:k+148|0,A)|0,l[k+159|0]<0&&G(i[k+148>>2]),(A|0)!=(u|0))break k}if(A=18141-_|0,(A|0)>0&&(V[i[i[t>>2]+48>>2]](t,_,A)|0)!=(A|0))break k;i[w+12>>2]=0;break f}A=n+i[i[n>>2]-12>>2]|0,z1(A,i[A+16>>2]|5)}if(Z1(v),n4(n,i[e+16>>2],i[e+20>>2]),i[e>>2]|i[e+4>>2]){A=k+4|0,_=V1(k+140|0,A);f:{if(s[_|0]!=1)break f;u=A+i[i[k+4>>2]-12>>2]|0,o=i[u+4>>2],t=i[u+24>>2],w=i[u+76>>2],(w|0)==-1&&(n=k+148|0,A=i[u+28>>2],i[n>>2]=A,(A|0)!=100008&&(i[A+4>>2]=i[A+4>>2]+1),A=x0(n,100192),w=V[i[i[A>>2]+28>>2]](A,32)|0,O0(n),i[u+76>>2]=w);k:{if(!t||(A=i[u+12>>2],o=(o&176)==32?16321:16314,n=o-16314|0,(n|0)>0&&(V[i[i[t>>2]+48>>2]](t,16314,n)|0)!=(n|0)))break k;if(A=(A|0)>7?A-7|0:0,(A|0)>0){if(A>>>0>=2147483640)break i;n:{if(A>>>0>=11){v=(A|7)+1|0,n=U(v),i[k+156>>2]=v|-2147483648,i[k+148>>2]=n,i[k+152>>2]=A;break n}l[k+159|0]=A,n=k+148|0}if(I=B0(n,w,A)+A|0,y=0,l[I|0]=y,w=V[i[i[t>>2]+48>>2]](t,l[k+159|0]<0?i[k+148>>2]:k+148|0,A)|0,l[k+159|0]<0&&G(i[k+148>>2]),(A|0)!=(w|0))break k}if(A=16321-o|0,(A|0)>0&&(V[i[i[t>>2]+48>>2]](t,o,A)|0)!=(A|0))break k;i[u+12>>2]=0;break f}A=i[i[k+4>>2]-12>>2]+(k+4|0)|0,z1(A,i[A+16>>2]|5)}Z1(_),n4(k+4|0,i[e>>2],i[e+4>>2])}A=k+4|0,_=V1(k+140|0,A);f:{if(s[_|0]!=1)break f;u=A+i[i[k+4>>2]-12>>2]|0,o=i[u+4>>2],t=i[u+24>>2],w=i[u+76>>2],(w|0)==-1&&(n=k+148|0,A=i[u+28>>2],i[n>>2]=A,(A|0)!=100008&&(i[A+4>>2]=i[A+4>>2]+1),A=x0(n,100192),w=V[i[i[A>>2]+28>>2]](A,32)|0,O0(n),i[u+76>>2]=w);k:{if(!t||(A=i[u+12>>2],o=(o&176)==32?21742:21741,n=o-21741|0,(n|0)>0&&(V[i[i[t>>2]+48>>2]](t,21741,n)|0)!=(n|0)))break k;if(A=(A|0)>1?A-1|0:0,(A|0)>0){if(A>>>0>=2147483640)break e;n:{if(A>>>0>=11){v=(A|7)+1|0,n=U(v),i[k+156>>2]=v|-2147483648,i[k+148>>2]=n,i[k+152>>2]=A;break n}l[k+159|0]=A,n=k+148|0}if(I=B0(n,w,A)+A|0,y=0,l[I|0]=y,w=V[i[i[t>>2]+48>>2]](t,l[k+159|0]<0?i[k+148>>2]:k+148|0,A)|0,l[k+159|0]<0&&G(i[k+148>>2]),(A|0)!=(w|0))break k}if(A=21742-o|0,(A|0)>0&&(V[i[i[t>>2]+48>>2]](t,o,A)|0)!=(A|0))break k;i[u+12>>2]=0;break f}A=i[i[k+4>>2]-12>>2]+(k+4|0)|0,z1(A,i[A+16>>2]|5)}if(Z1(_),e=e+40|0,(W|0)!=(e|0))continue;break r}break}break i}break i}if(x(k+4|0,31338,1),h=h+32|0,(p|0)==(h|0))break}i2(f,Z),f=i[13707],i[k+4>>2]=f,i[i[f-12>>2]+(k+4|0)>>2]=i[13710],i[Z>>2]=53552,l[k+51|0]<0&&G(i[k+40>>2]),K0(Z),T0(k+60|0),B=k+160|0;return}c2(),P()}function yk(f){var e=0,r=0,A=0,k=0,n=0,t=0,o=0;k=B-16|0,B=k,i[k+12>>2]=f;i:{if(f>>>0<=211){f=i[G9(52752,52944,k+12|0)>>2];break i}for(f>>>0>=4294967292&&(u1(),P()),n=(f>>>0)/210|0,A=m(n,210),i[k+8>>2]=f-A,t=G9(52944,53136,k+8|0)-52944>>2;;){f=i[(t<<2)+52944>>2]+A|0,A=5;r:{e:{for(;;){if(r=A,(r|0)==47)break e;if(o=i[(r<<2)+52752>>2],e=(f>>>0)/(o>>>0)|0,e>>>0>>0)break i;if(A=r+1|0,(m(e,o)|0)==(f|0))break}if(r>>>0<47)break r}for(A=211;;){if(r=(f>>>0)/(A>>>0)|0,r>>>0>>0)break i;if((m(r,A)|0)==(f|0))break r;if(e=A+10|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+12|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+16|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+18|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+22|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+28|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+30|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+36|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+40|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+42|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+46|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+52|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+58|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+60|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+66|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+70|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+72|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+78|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+82|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+88|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+96|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+100|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+102|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+106|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+108|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+112|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+120|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+126|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+130|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+136|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+138|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+142|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+148|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+150|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+156|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+162|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+166|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+168|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+172|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+178|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+180|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+186|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+190|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+192|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+196|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+198|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if((m(r,e)|0)==(f|0))break r;if(e=A+208|0,r=(f>>>0)/(e>>>0)|0,r>>>0>>0)break i;if(A=A+210|0,(m(r,e)|0)==(f|0))break}}f=t+1|0,r=(f|0)==48,t=r?0:f,n=r+n|0,A=m(n,210)}}return B=k+16|0,f}function Br(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0;for(_=i[f+20>>2],w=i[f+16>>2],h=i[f+12>>2],q=i[f+8>>2];u=s[e|0]|s[e+1|0]<<8|(s[e+2|0]<<16|s[e+3|0]<<24),i[f+88>>2]=u,v=s[e+4|0]|s[e+5|0]<<8|(s[e+6|0]<<16|s[e+7|0]<<24),i[f+92>>2]=v,Z=s[e+8|0]|s[e+9|0]<<8|(s[e+10|0]<<16|s[e+11|0]<<24),i[f+96>>2]=Z,p=s[e+12|0]|s[e+13|0]<<8|(s[e+14|0]<<16|s[e+15|0]<<24),i[f+100>>2]=p,W=s[e+16|0]|s[e+17|0]<<8|(s[e+18|0]<<16|s[e+19|0]<<24),i[f+104>>2]=W,C=s[e+20|0]|s[e+21|0]<<8|(s[e+22|0]<<16|s[e+23|0]<<24),i[f+108>>2]=C,I=s[e+24|0]|s[e+25|0]<<8|(s[e+26|0]<<16|s[e+27|0]<<24),i[f+112>>2]=I,y=s[e+28|0]|s[e+29|0]<<8|(s[e+30|0]<<16|s[e+31|0]<<24),i[f+116>>2]=y,E=s[e+32|0]|s[e+33|0]<<8|(s[e+34|0]<<16|s[e+35|0]<<24),i[f+120>>2]=E,J=s[e+36|0]|s[e+37|0]<<8|(s[e+38|0]<<16|s[e+39|0]<<24),i[f+124>>2]=J,R=s[e+40|0]|s[e+41|0]<<8|(s[e+42|0]<<16|s[e+43|0]<<24),i[f+128>>2]=R,D=s[e+44|0]|s[e+45|0]<<8|(s[e+46|0]<<16|s[e+47|0]<<24),i[f+132>>2]=D,z=s[e+48|0]|s[e+49|0]<<8|(s[e+50|0]<<16|s[e+51|0]<<24),i[f+136>>2]=z,H=s[e+52|0]|s[e+53|0]<<8|(s[e+54|0]<<16|s[e+55|0]<<24),i[f+140>>2]=H,a=s[e+56|0]|s[e+57|0]<<8|(s[e+58|0]<<16|s[e+59|0]<<24),i[f+144>>2]=a,S=s[e+60|0]|s[e+61|0]<<8|(s[e+62|0]<<16|s[e+63|0]<<24),i[f+148>>2]=S,A=a0(((((w^_)&h^_)+q|0)+u|0)-680876936|0,7)+h|0,k=a0(((_+v|0)+(A&(h^w)^w)|0)-389564586|0,12)+A|0,n=a0(((w+Z|0)+(k&(A^h)^h)|0)+606105819|0,17)+k|0,t=a0(((h+p|0)+(A^n&(A^k))|0)-1044525330|0,22)+n|0,A=a0(((A+W|0)+(k^t&(k^n))|0)-176418897|0,7)+t|0,k=a0(((k+C|0)+(n^A&(t^n))|0)+1200080426|0,12)+A|0,n=a0(((n+I|0)+(t^k&(A^t))|0)-1473231341|0,17)+k|0,t=a0(((t+y|0)+(A^n&(A^k))|0)-45705983|0,22)+n|0,A=a0(((A+E|0)+(k^t&(k^n))|0)+1770035416|0,7)+t|0,k=a0(((k+J|0)+(n^A&(t^n))|0)-1958414417|0,12)+A|0,n=a0(((n+R|0)+(t^k&(A^t))|0)-42063|0,17)+k|0,t=a0(((t+D|0)+(A^n&(A^k))|0)-1990404162|0,22)+n|0,o=k+H|0,k=a0(((A+z|0)+(k^t&(k^n))|0)+1804603682|0,7)+t|0,o=a0((o+(n^k&(t^n))|0)-40341101|0,12)+k|0,A=t+S|0,t=a0(((n+a|0)+(t^o&(k^t))|0)-1502002290|0,17)+o|0,A=a0((A+(k^t&(k^o))|0)+1236535329|0,22)+t|0,k=a0(((k+v|0)+(t^o&(A^t))|0)-165796510|0,5)+A|0,n=a0(((o+I|0)+((A^k)&t^A)|0)-1069501632|0,9)+k|0,t=a0(((t+D|0)+(k^A&(k^n))|0)+643717713|0,14)+n|0,A=a0(((A+u|0)+(n^k&(t^n))|0)-373897302|0,20)+t|0,k=a0(((k+C|0)+(t^n&(A^t))|0)-701558691|0,5)+A|0,n=a0(((n+R|0)+((A^k)&t^A)|0)+38016083|0,9)+k|0,t=a0(((t+S|0)+(k^A&(k^n))|0)-660478335|0,14)+n|0,A=a0(((A+W|0)+(n^k&(t^n))|0)-405537848|0,20)+t|0,k=a0(((k+J|0)+(t^n&(A^t))|0)+568446438|0,5)+A|0,n=a0(((n+a|0)+((A^k)&t^A)|0)-1019803690|0,9)+k|0,t=a0(((t+p|0)+(k^A&(k^n))|0)-187363961|0,14)+n|0,A=a0(((A+E|0)+(n^k&(t^n))|0)+1163531501|0,20)+t|0,k=a0(((k+H|0)+(t^n&(A^t))|0)-1444681467|0,5)+A|0,n=a0(((n+Z|0)+((A^k)&t^A)|0)-51403784|0,9)+k|0,d=A+z|0,o=a0(((t+y|0)+(k^A&(k^n))|0)+1735328473|0,14)+n|0,A=o^n,t=a0((d+(n^k&A)|0)-1926607734|0,20)+o|0,A=a0(((k+C|0)+(A^t)|0)-378558|0,4)+t|0,k=a0(((n+E|0)+(A^(t^o))|0)-2022574463|0,11)+A|0,n=a0(((o+D|0)+(k^(A^t))|0)+1839030562|0,16)+k|0,t=a0(((t+a|0)+(n^(A^k))|0)-35309556|0,23)+n|0,A=a0(((A+v|0)+(t^(k^n))|0)-1530992060|0,4)+t|0,k=a0(((k+W|0)+(A^(t^n))|0)+1272893353|0,11)+A|0,n=a0(((n+y|0)+(k^(A^t))|0)-155497632|0,16)+k|0,t=a0(((t+R|0)+(n^(A^k))|0)-1094730640|0,23)+n|0,A=a0(((A+H|0)+(t^(k^n))|0)+681279174|0,4)+t|0,k=a0(((k+u|0)+(A^(t^n))|0)-358537222|0,11)+A|0,n=a0(((n+p|0)+(k^(A^t))|0)-722521979|0,16)+k|0,t=a0(((t+I|0)+(n^(A^k))|0)+76029189|0,23)+n|0,A=a0(((A+J|0)+(t^(k^n))|0)-640364487|0,4)+t|0,k=a0(((k+z|0)+(A^(t^n))|0)-421815835|0,11)+A|0,o=A+u|0,u=A^k,A=a0(((n+S|0)+(k^(A^t))|0)+530742520|0,16)+k|0,n=a0(((t+Z|0)+(u^A)|0)-995338651|0,23)+A|0,t=a0((o+((n|k^-1)^A)|0)-198630844|0,6)+n|0,o=n+C|0,u=A+a|0,A=a0(((k+y|0)+(n^(t|A^-1))|0)+1126891415|0,10)+t|0,n=a0((u+(t^(A|n^-1))|0)-1416354905|0,15)+A|0,k=a0((o+((n|t^-1)^A)|0)-57434055|0,21)+n|0,o=n+R|0,u=A+p|0,A=a0(((t+z|0)+(n^(k|A^-1))|0)+1700485571|0,6)+k|0,n=a0((u+(k^(A|n^-1))|0)-1894986606|0,10)+A|0,t=a0((o+((n|k^-1)^A)|0)-1051523|0,15)+n|0,o=n+S|0,u=A+E|0,A=a0(((k+v|0)+(n^(t|A^-1))|0)-2054922799|0,21)+t|0,n=a0((u+(t^(A|n^-1))|0)+1873313359|0,6)+A|0,k=a0((o+((n|t^-1)^A)|0)-30611744|0,10)+n|0,o=n+W|0,u=A+H|0,A=a0(((t+I|0)+(n^(k|A^-1))|0)-1560198380|0,15)+k|0,n=a0((u+(k^(A|n^-1))|0)+1309151649|0,21)+A|0,t=a0((o+((n|k^-1)^A)|0)-145523070|0,6)+n|0,k=a0(((k+D|0)+(n^(t|A^-1))|0)-1120210379|0,10)+t|0,A=a0(((A+Z|0)+(t^(k|n^-1))|0)+718787259|0,15)+k|0,h=(A+h|0)+a0(((n+J|0)+(k^(A|t^-1))|0)-343485551|0,21)|0,w=A+w|0,_=k+_|0,q=t+q|0,e=e- -64|0,r=r+-64|0,!!r;);return i[f+20>>2]=_,i[f+16>>2]=w,i[f+12>>2]=h,i[f+8>>2]=q,e}function rh(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;k=B-16|0,B=k,v=t2(r);i:{r:{if(Z=B2(r),!Z)break r;for(;;){if(n=B2(r),n<<24>>24<0){if(e=U(40),i[k+4>>2]=e,i[k+8>>2]=38,i[k+12>>2]=-2147483608,r=s[12108]|s[12109]<<8|(s[12110]<<16|s[12111]<<24),A=s[12104]|s[12105]<<8|(s[12106]<<16|s[12107]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+38|0]=0,r=s[12138]|s[12139]<<8|(s[12140]<<16|s[12141]<<24),A=s[12134]|s[12135]<<8|(s[12136]<<16|s[12137]<<24),l[e+30|0]=A,l[e+31|0]=A>>>8,l[e+32|0]=A>>>16,l[e+33|0]=A>>>24,l[e+34|0]=r,l[e+35|0]=r>>>8,l[e+36|0]=r>>>16,l[e+37|0]=r>>>24,r=s[12132]|s[12133]<<8|(s[12134]<<16|s[12135]<<24),A=s[12128]|s[12129]<<8|(s[12130]<<16|s[12131]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[12124]|s[12125]<<8|(s[12126]<<16|s[12127]<<24),A=s[12120]|s[12121]<<8|(s[12122]<<16|s[12123]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[12116]|s[12117]<<8|(s[12118]<<16|s[12119]<<24),A=s[12112]|s[12113]<<8|(s[12114]<<16|s[12115]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,4,3002,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(n>>>0>=17){if(e=U(56),i[k+4>>2]=e,i[k+8>>2]=51,i[k+12>>2]=-2147483592,r=s[12056]|s[12057]<<8|(s[12058]<<16|s[12059]<<24),A=s[12052]|s[12053]<<8|(s[12054]<<16|s[12055]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+51|0]=0,r=s[12099]|s[12100]<<8|(s[12101]<<16|s[12102]<<24),l[e+47|0]=r,l[e+48|0]=r>>>8,l[e+49|0]=r>>>16,l[e+50|0]=r>>>24,r=s[12096]|s[12097]<<8|(s[12098]<<16|s[12099]<<24),A=s[12092]|s[12093]<<8|(s[12094]<<16|s[12095]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[12088]|s[12089]<<8|(s[12090]<<16|s[12091]<<24),A=s[12084]|s[12085]<<8|(s[12086]<<16|s[12087]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[12080]|s[12081]<<8|(s[12082]<<16|s[12083]<<24),A=s[12076]|s[12077]<<8|(s[12078]<<16|s[12079]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[12072]|s[12073]<<8|(s[12074]<<16|s[12075]<<24),A=s[12068]|s[12069]<<8|(s[12070]<<16|s[12071]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[12064]|s[12065]<<8|(s[12066]<<16|s[12067]<<24),A=s[12060]|s[12061]<<8|(s[12062]<<16|s[12063]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,4,3002,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}e:{u=i[e+52>>2],t=i[e+56>>2];A:{if(u>>>0>>0){l[u|0]=n,o=u+1|0;break A}if(h=i[e+48>>2],w=u-h|0,A=w+1|0,(A|0)<0)break e;t=t-h|0,o=t<<1,o=t>>>0>=1073741823?2147483647:A>>>0>>0?o:A,o?A=U(o):A=0,t=w+A|0,l[t|0]=n,W=A+o|0,o=t+1|0;f:{if((u|0)==(h|0)){A=t;break f}if(_=0,n=u,w=w&3,w)for(;t=t-1|0,n=n-1|0,l[t|0]=s[n|0],_=_+1|0,(w|0)!=(_|0););if(h-u>>>0<=4294967292)for(;l[t-1|0]=s[n-1|0],l[t-2|0]=s[n-2|0],l[t-3|0]=s[n-3|0],t=t-4|0,n=n-4|0,l[t|0]=s[n|0],(n|0)!=(h|0););h=i[e+48>>2]}if(i[e+56>>2]=W,i[e+52>>2]=o,i[e+48>>2]=A,!h)break A;G(h)}if(i[e+52>>2]=o,p=p+1|0,(p&255)>>>0>>0)continue;break r}break}y0(),P()}r:{if(!v)break r;for(h=e+60|0,t=0;;){e:{i[k+12>>2]=0,i[k+4>>2]=0,i[k+8>>2]=0,A=i[e+64>>2];A:{if(A>>>0>2]){if(i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,n=i[k+8>>2],w=i[k+4>>2],(n|0)!=(w|0)){if(n=n-w|0,(n|0)<0)break e;u=U(n),i[A+4>>2]=u,i[A>>2]=u,o=n+u|0,i[A+8>>2]=o,l0(u,w,n),i[A+4>>2]=o}A=A+12|0;break A}A=v6(h,k+4|0)}if(i[e+64>>2]=A,A=i[k+4>>2],A&&(i[k+8>>2]=A,G(A)),t=t+1|0,(t&65535)>>>0>>0)continue;break r}break}y0(),P()}if(s[r+20|0]==1){if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,100,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+16|0}function d2(f,e,r,A,k,n,t,o,u){var h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0;w=B-96|0,B=w,J=u&65535,p=(k^u)&-2147483648,I=k&65535,H=I,Y0=u>>>16&32767,S0=k>>>16&32767;i:{r:{if(Y0-32767>>>0>4294934529&S0-32767>>>0>=4294934530)break r;if(y=k&2147483647,C=y,h=A,!(!A&(C|0)==2147418112?!(e|r):C>>>0<2147418112)){v=A,p=k|32768;break i}if(y=u&2147483647,W=y,k=o,!(!k&(W|0)==2147418112?!(n|t):W>>>0<2147418112)){v=k,p=u|32768,e=n,r=t;break i}if(!(e|h|(C^2147418112|r))){if(!(k|n|(t|W))){p=2147450880,e=0,r=0;break i}p=p|2147418112,e=0,r=0;break i}if(!(k|n|(W^2147418112|t))){if(k=e|h,A=r|C,e=0,r=0,!(A|k)){p=2147450880;break i}p=p|2147418112;break i}if(!(e|h|(r|C))){e=0,r=0;break i}if(!(k|n|(t|W))){e=0,r=0;break i}if((C|0)==65535|C>>>0<65535&&(h=!(A|I),u=h?e:A,y=h<<6,k=$2(u)+32|0,u=$2(h?r:I),u=y+((u|0)==32?k:u)|0,L1(w+80|0,e,r,A,I,u-15|0),E=16-u|0,A=i[w+88>>2],H=i[w+92>>2],r=i[w+84>>2],e=i[w+80>>2]),W>>>0>65535)break r;u=!(o|J),k=u?n:o,I=u<<6,h=$2(k)+32|0,k=$2(u?t:J),k=I+((k|0)==32?h:k)|0,L1(w- -64|0,n,t,o,J,k-15|0),E=(E-k|0)+16|0,o=i[w+72>>2],J=i[w+76>>2],n=i[w+64>>2],t=i[w+68>>2]}k=n,n=t<<15|n>>>17,u=k<<15,k=0,R=u&-32768,p0=r,y=q0(R,k,r,0),k=w0,a=k,X0=n,C=e,r=q0(n,0,e,0),e=r+y|0,n=w0+k|0,u=e,r=e>>>0>>0?n+1|0:n,n=e,h=0,e=q0(C,_,R,_),W=h+e|0,k=w0+n|0,k=e>>>0>W>>>0?k+1|0:k,I=k,G0=(n|0)==(k|0)&h>>>0>W>>>0|k>>>0>>0,I0=A,D=q0(R,_,A,0),Q0=w0,e=q0(p0,_,X0,_),z=e+D|0,h=w0+Q0|0,h=e>>>0>z>>>0?h+1|0:h,e=J<<15|o>>>17,S=o<<15|t>>>17,A=q0(S,0,C,_),q=A+z|0,n=w0+h|0,n=A>>>0>q>>>0?n+1|0:n,d=n,A=(r|0)==(a|0)&u>>>0>>0|r>>>0>>0,A0=r+q|0,n=A+n|0,n=r>>>0>A0>>>0?n+1|0:n,J=n,t=A0,r=n,f0=H|65536,H=q0(R,_,f0,Z),F0=w0,A=q0(I0,v,X0,_),n0=A+H|0,k=w0+F0|0,k=A>>>0>n0>>>0?k+1|0:k,u=k,h0=e|-2147483648,e=q0(h0,0,C,_),j=e+n0|0,n=w0+k|0,n=e>>>0>j>>>0?n+1|0:n,A=q0(S,v,p0,_),e=A+j|0,L=n,n=n+w0|0,a=e,y=e>>>0>>0?n+1|0:n,n=e,e=0,C=e+t|0,k=r+n|0,k=e>>>0>C>>>0?k+1|0:k,R=k,n=k,e=C+G0|0,r=e>>>0>>0?n+1|0:n,E=((S0+Y0|0)+E|0)-16383|0,A=q0(h0,v,p0,_),o=w0,k=q0(f0,v,X0,_),t=k+A|0,n=w0+o|0,n=k>>>0>t>>>0?n+1|0:n,Z=(o|0)==(n|0)&A>>>0>t>>>0|n>>>0>>0,o=n,k=q0(S,v,I0,v),A=k+t|0,n=w0+n|0,n=A>>>0>>0?n+1|0:n,k=n,t=(n|0)==(o|0)&A>>>0>>0|n>>>0>>0,n=0,o=t,t=t+Z|0,n=o>>>0>t>>>0?1:n,o=t,t=q0(h0,v,f0,v),o=o+t|0,n=w0+n|0,G0=o,t=t>>>0>o>>>0?n+1|0:n,o=A,_=k,k=(h|0)==(Q0|0)&D>>>0>z>>>0|h>>>0>>0,n=0,h=(h|0)==(d|0)&z>>>0>q>>>0|h>>>0>d>>>0,Z=h,h=k+h|0,k=(Z>>>0>h>>>0?1:n)+_|0,n=t,A=A+h|0,k=A>>>0>>0?k+1|0:k,Z=k,D=A,A=(k|0)==(_|0)&A>>>0>>0|k>>>0<_>>>0,k=A,A=A+G0|0,n=k>>>0>A>>>0?n+1|0:n,h=A,o=n,k=q0(S,v,f0,v),_=w0,t=q0(h0,v,I0,v),A=t+k|0,n=w0+_|0,n=A>>>0>>0?n+1|0:n,t=n,n=(_|0)==(n|0)&A>>>0>>0|n>>>0<_>>>0,z=t+h|0,k=n+o|0,k=t>>>0>z>>>0?k+1|0:k,_=z,o=k,h=A,k=0,A=k+D|0,n=h+Z|0,n=A>>>0>>0?n+1|0:n,k=n,t=(Z|0)==(n|0)&A>>>0>>0|n>>>0>>0,n=o,o=t,t=t+_|0,n=o>>>0>t>>>0?n+1|0:n,D=t,t=n,o=A,h=k,k=(y|0)==(L|0)&a>>>0>>0|y>>>0>>0,A=(u|0)==(F0|0)&H>>>0>n0>>>0|u>>>0>>0,u=(u|0)==(L|0)&n0>>>0>j>>>0|u>>>0>L>>>0,A=A+u|0,A=A+k|0,Z=y,u=Z+o|0,k=A+h|0,n=t,A=u,k=A>>>0>>0?k+1|0:k,o=(k|0)==(h|0)&o>>>0>A>>>0|k>>>0>>0,t=o+D|0,n=o>>>0>t>>>0?n+1|0:n,h=t,t=n,o=A,n=0,u=k,Z=(J|0)==(R|0)&C>>>0>>0|J>>>0>R>>>0,_=Z,Z=Z+((J|0)==(d|0)&q>>>0>A0>>>0|J>>>0>>0)|0,k=k+(_>>>0>Z>>>0?1:n)|0,n=t,A=A+Z|0,k=A>>>0>>0?k+1|0:k,o=(k|0)==(u|0)&A>>>0>>0|k>>>0>>0,t=o,o=o+h|0,n=t>>>0>o>>>0?n+1|0:n,u=n;r:{if(n&65536){E=E+1|0;break r}h=I>>>31|0,t=0,n=u<<1|o>>>31,o=o<<1|k>>>31,u=n,n=k<<1|A>>>31,A=A<<1|r>>>31,k=n,n=I<<1|W>>>31,W=W<<1,I=n,n=r<<1|e>>>31,e=e<<1|h,r=n|t}if((E|0)>=32767){p=p|2147418112,e=0,r=0;break i}r:{if((E|0)<=0){if(t=1-E|0,t>>>0<=127){n=E+127|0,L1(w+48|0,W,I,e,r,n),L1(w+32|0,A,k,o,u,n),ti(w+16|0,W,I,e,r,t),ti(w,A,k,o,u,t),W=i[w+32>>2]|i[w+16>>2]|(i[w+48>>2]|i[w+56>>2]|(i[w+52>>2]|i[w+60>>2]))!=0,I=i[w+36>>2]|i[w+20>>2],e=i[w+40>>2]|i[w+24>>2],r=i[w+44>>2]|i[w+28>>2],A=i[w>>2],k=i[w+4>>2],t=i[w+8>>2],n=i[w+12>>2];break r}e=0,r=0;break i}t=o,n=u&65535|E<<16}if(v=t|v,p=n|p,!(!e&(r|0)==-2147483648?!(W|I):(r|0)>0|(r|0)>=0)){e=A+1|0,h=e?k:k+1|0,k=p,r=h,A=!(h|e),v=A+v|0,p=A>>>0>v>>>0?k+1|0:k;break i}if(e|W|(r^-2147483648|I)){e=A,r=k;break i}n=k,e=A&1,r=e,e=e+A|0,r=r>>>0>e>>>0?n+1|0:n,A=(n|0)==(r|0)&e>>>0>>0|r>>>0>>0,n=p,v=A+v|0,p=v>>>0>>0?n+1|0:n}i[f>>2]=e,i[f+4>>2]=r,i[f+8>>2]=v,i[f+12>>2]=p,B=w+96|0}function Fk(f,e,r,A,k,n,t,o,u,h,w){var _=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0;_=B-48|0,B=_,v=i[k>>2];i:{r:{if(n){if(v)break r;C0(3871,14027,242,10614),P()}if(!v)break i}if(Z=i[k+4>>2],Z&&(i[Z+4>>2]=i[Z+4>>2]+1),i[f+124>>2]=v,v=i[f+128>>2],i[f+128>>2]=Z,!v||(Z=i[v+4>>2],i[v+4>>2]=Z-1,Z))break i;V[i[i[v>>2]+8>>2]](v),g(v)}aA(f),p=1,Z=i[19780],i[19780]=Z+1,i[f+112>>2]=t,i[f+108>>2]=2147483647,i[f>>2]=Z,i[f+288>>2]=h,i[f+36>>2]=r,i[f+32>>2]=e,i[f+28>>2]=r,i[f+24>>2]=e,i[f+20>>2]=A,i[f+280>>2]=o,i[f+284>>2]=u;i:{r:{e:{A:{f:{k:{n:{t:switch(A|0){default:C0(17356,14027,278,10614),P();case 1:p=2,i[_+8>>2]=2,I=(r+1|0)/2|0,i[f+36>>2]=I,W=(e+1|0)/2|0,i[f+32>>2]=W,h=2,A=2;break k;case 2:i[_+8>>2]=3,p=2,W=(e+1|0)/2|0,i[f+32>>2]=W,h=1;break n;case 3:break t;case 0:break f}i[_+8>>2]=4,W=e,h=1}I=r,A=1}if(l[f+51|0]=h,l[f+50|0]=p,h=i[k>>2],!h){i[_+20>>2]=16,i[_+16>>2]=r,i[_+12>>2]=e,y=1;break A}if(i[h+16852>>2]!=(p|0))break e;if(i[h+16856>>2]==(A|0)){i[_+20>>2]=16,i[_+16>>2]=r,i[_+12>>2]=e;break r}C0(15341,14027,318,10614),P()}if(y=1,i[_+8>>2]=1,X[f+50>>1]=257,i[f+32>>2]=0,i[f+36>>2]=0,h=i[k>>2],i[_+20>>2]=16,i[_+16>>2]=r,i[_+12>>2]=e,h){A=1;break r}A=1}h=0,o=0;break i}C0(15371,14027,317,10614),P()}J=i[h+508>>2],E=i[h+504>>2],R=i[h+500>>2],y=0,o=i[h+496>>2]}C=8,D=o+R|0,v=m(D,p);i:{if((v|0)>=(e|0)||(Z=E+J|0,u=m(Z,A),(u|0)>=(r|0)))break i;i[f+88>>2]=I-Z,i[f+84>>2]=W-D,r=r-u|0,i[f+80>>2]=r,e=e-v|0,i[f+76>>2]=e,i[_+44>>2]=r,i[_+40>>2]=e,i[_+36>>2]=m(A,J),u=m(A,E),i[_+32>>2]=u,i[_+28>>2]=m(p,R),A=m(o,p),i[_+24>>2]=A,e=8,r=8,y||(r=i[h+16840>>2],e=i[h+16832>>2]),l[f+49|0]=r,l[f+48|0]=e,r=(r&255)>>>0>8,l[f+18|0]=r,l[f+17|0]=r,l[f+16|0]=(e&255)>>>0>8;r:{if(!t){r=0,e=77612;break r}r=i[t+544>>2],e=w?t+536|0:77612}w=i[e>>2],e=i[e+4>>2],i[f+304>>2]=w,i[f+308>>2]=e;r:{if(!w)break r;r=V[w|0](t,_+8|0,f,r)|0,i[f+64>>2]=(A+i[f+4>>2]|0)+m(u,i[f+40>>2]);e:{if(!i[f+20>>2]){p=0,e=0;break e}e=m(i[f+44>>2],E),p=e+(i[f+12>>2]+o|0)|0,e=e+(i[f+8>>2]+o|0)|0}if(i[f+72>>2]=p,i[f+68>>2]=e,r)break r;C=7;break i}r:{if(!n)break r;e=i[f+200>>2],n=i[h+16944>>2],A=i[h+16952>>2],r=i[h+16948>>2],t=m(A,r);e:{if((t|0)!=i[f+204>>2]){if(G(e),e=Z2(t),i[f+200>>2]=e,!e){i[f+204>>2]=0,r=0;break e}i[f+204>>2]=t}i[f+216>>2]=A,i[f+212>>2]=r,i[f+208>>2]=n,r=(e|0)!=0}e=i[f+220>>2],t=i[h+16944>>2],n=i[h+16952>>2],A=i[h+16948>>2],o=m(n,A);e:{if((o|0)!=i[f+224>>2]){if(G(e),e=Z2(o),i[f+220>>2]=e,!e){i[f+224>>2]=0,e=0;break e}i[f+224>>2]=o}i[f+236>>2]=n,i[f+232>>2]=A,i[f+228>>2]=t,e=(e|0)!=0}t=e&r,e=i[f+160>>2],n=i[h+16872>>2],A=i[h+16896>>2],r=i[h+16888>>2],o=m(A,r);e:{if((o|0)!=i[f+164>>2]){if(G(e),e=Z2(m(o,3)),i[f+160>>2]=e,!e){i[f+164>>2]=0,e=0;break e}i[f+164>>2]=o}i[f+176>>2]=A,i[f+172>>2]=r,i[f+168>>2]=n,e=(e|0)!=0}n=e&t,e=i[f+180>>2],r=i[h+16872>>2]-2|0,A=i[h+16896>>2]<>2]<>2]){if(G(e),e=Z2(m(t,12)),i[f+180>>2]=e,!e){i[f+184>>2]=0,e=0;break e}i[f+184>>2]=t}i[f+196>>2]=A,i[f+192>>2]=r,i[f+188>>2]=2,e=(e|0)!=0}t=e&n,e=i[f+240>>2],n=i[h+16936>>2],A=i[h+16928>>2],r=i[h+16924>>2],o=m(A,r);e:{if((o|0)!=i[f+244>>2]){if(G(e),e=Z2(o),i[f+240>>2]=e,!e){i[f+244>>2]=0,e=0;break e}i[f+244>>2]=o}i[f+256>>2]=A,i[f+252>>2]=r,i[f+248>>2]=n,e=(e|0)!=0}n=e&t,e=i[f+260>>2],A=(i[h+488>>2]+3|0)/4|0,r=(i[h+484>>2]+3|0)/4|0,t=m(A,r);e:{if((t|0)!=i[f+264>>2]){if(G(e),e=Z2(t),i[f+260>>2]=e,!e){i[f+264>>2]=0,e=0;break e}i[f+264>>2]=t}i[f+276>>2]=A,i[f+272>>2]=r,i[f+268>>2]=2,e=(e|0)!=0}if(t=e&n,h=i[k>>2],r=i[h+16892>>2],!((r|0)==i[f+152>>2]&i[f+156>>2]==i[h+16900>>2])){if(A=i[f+320>>2],A){if(r=A-4|0,e=i[r>>2],e){for(h=A+m(e,76)|0;h=h-76|0,(A|0)!=(h|0););h=i[k>>2]}G(r),r=i[h+16892>>2]}e=i[f+140>>2],n=i[h+16876>>2],A=i[h+16900>>2],h=m(A,r);e:{if((h|0)!=i[f+144>>2]){if(G(e),e=Z2(m(h,24)),i[f+140>>2]=e,!e){h=0,i[f+144>>2]=0,e=0;break e}i[f+144>>2]=h}i[f+156>>2]=A,i[f+152>>2]=r,i[f+148>>2]=n,e=(e|0)!=0}if(r=q0(h,0,76,0),A=r+4|0,r=U(w0||r>>>0>A>>>0?-1:A),i[r>>2]=h,r=r+4|0,h)for(A=r+m(h,76)|0,h=r;i[h>>2]=0,h=h+76|0,(A|0)!=(h|0););if(i[f+320>>2]=r,e&t)break r;C=7;break i}if(t)break r;C=7;break i}C=0}e=i[k+4>>2];i:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}return B=_+48|0,C}function eh(f,e,r,A,k,n,t,o,u,h){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0,h=h|0;var w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0;Z=h-8|0,v=n+3|0,R=B-((m(v,k)<<1)+15&-16)|0;i:{if((n|0)>=-2){if((k|0)<=0)break i;for(C=r-2|0,J=R+2|0,r=n+2|0,I=(r|0)>0?r:0,H=k&2147483646,a=k&1,y=k-t&3,p=-1,E=k-1|0,S=E-t>>>0<3;;){_=J+(p<<1)|0,h=C+(m(A,p)<<1)|0;r:{e:{A:switch(t|0){case 0:if(u=0,r=t,y)for(;X[_+(m(r,v)<<1)>>1]=Q[h+2>>1],r=r+1|0,h=h+2|0,u=u+1|0,(y|0)!=(u|0););if(S)break r;for(;X[_+(m(r,v)<<1)>>1]=Q[h+2>>1],X[_+(m(r+1|0,v)<<1)>>1]=Q[h+4>>1],X[_+(m(r+2|0,v)<<1)>>1]=Q[h+6>>1],X[_+(m(r+3|0,v)<<1)>>1]=Q[h+8>>1],h=h+8|0,r=r+4|0,(k|0)!=(r|0););break r;default:for(u=Q[h>>1],r=0;w=Q[h+2>>1],X[_+(m(r,v)<<1)>>1]=(m(Q[h+4>>1],58)+m(w,10)|0)-(Q[h+6>>1]+(u&65535)<<1)>>Z,h=h+2|0,u=w,r=r+1|0,(k|0)!=(r|0););break r;case 1:for(u=Q[h>>1],r=0;w=Q[h+2>>1],X[_+(m(r,v)<<1)>>1]=(m(Q[h+4>>1],10)+m(w,58)|0)-(Q[h+6>>1]+(u&65535)<<1)>>Z,h=h+2|0,u=w,r=r+1|0,(k|0)!=(r|0););break r;case 2:for(u=Q[h>>1],r=0;w=u&65535,u=Q[h+2>>1],X[_+(m(r,v)<<1)>>1]=m(u,54)+(Q[h+4>>1]<<4)-((w<<2)+(Q[h+6>>1]<<1))>>Z,h=h+2|0,r=r+1|0,(k|0)!=(r|0););break r;case 3:for(u=Q[h>>1],r=0;w=u&65535,u=Q[h+2>>1],X[_+(m(r,v)<<1)>>1]=((m(u,46)+m(w,-6)|0)+m(Q[h+4>>1],28)|0)-(Q[h+6>>1]<<2)>>Z,h=h+2|0,r=r+1|0,(k|0)!=(r|0););break r;case 4:if(u=Q[h>>1],r=0,W=0,!E)break e;for(;w=u&65535,u=Q[h+4>>1],D=Q[h+2>>1],z=Q[h+6>>1],X[_+(m(r,v)<<1)>>1]=m(u+D|0,36)-(w+z<<2)>>Z,X[_+(m(r|1,v)<<1)>>1]=m(u+z|0,36)-(Q[h+8>>1]+D<<2)>>Z,r=r+2|0,h=h+4|0,W=W+2|0,(H|0)!=(W|0););break e;case 5:for(u=Q[h>>1],r=0;w=u&65535,u=Q[h+2>>1],X[_+(m(r,v)<<1)>>1]=((m(u,28)-(w<<2)|0)+m(Q[h+4>>1],46)|0)+m(Q[h+6>>1],-6)>>Z,h=h+2|0,r=r+1|0,(k|0)!=(r|0););break r;case 6:break A}for(u=Q[h>>1],r=0;w=u&65535,u=Q[h+2>>1],X[_+(m(r,v)<<1)>>1]=m(Q[h+4>>1],54)+(u<<4)-((w<<1)+(Q[h+6>>1]<<2))>>Z,h=h+2|0,r=r+1|0,(k|0)!=(r|0););break r}if(!a)break r;X[_+(m(r,v)<<1)>>1]=m(Q[h+4>>1]+Q[h+2>>1]|0,36)-(Q[h+6>>1]+(u&65535)<<2)>>Z}if(p=p+1|0,(I|0)==(p|0))break}}if((k|0)<=0|(n|0)<=0)break i;for(w=t?6:Z,Z=n&2147483646,y=n&1,_=n-o&3,p=0,C=n-1|0,J=C-o>>>0<3;;){t=(p<<1)+f|0,h=(m(v,p)<<1)+R|0;r:{e:{A:switch(o|0){case 0:if(u=0,r=o,_)for(;X[t+(m(e,r)<<1)>>1]=Q[h+2>>1],r=r+1|0,h=h+2|0,u=u+1|0,(_|0)!=(u|0););if(J)break r;for(;X[t+(m(e,r)<<1)>>1]=Q[h+2>>1],X[t+(m(r+1|0,e)<<1)>>1]=Q[h+4>>1],X[t+(m(r+2|0,e)<<1)>>1]=Q[h+6>>1],X[t+(m(r+3|0,e)<<1)>>1]=Q[h+8>>1],h=h+8|0,r=r+4|0,(n|0)!=(r|0););break r;default:for(u=Q[h>>1],r=0;A=X[h+2>>1],X[t+(m(e,r)<<1)>>1]=(m(X[h+4>>1],58)+m(A,10)|0)-(X[h+6>>1]+(u<<16>>16)<<1)>>w,h=h+2|0,u=A,r=r+1|0,(n|0)!=(r|0););break r;case 1:for(u=Q[h>>1],r=0;A=X[h+2>>1],X[t+(m(e,r)<<1)>>1]=(m(X[h+4>>1],10)+m(A,58)|0)-(X[h+6>>1]+(u<<16>>16)<<1)>>w,h=h+2|0,u=A,r=r+1|0,(n|0)!=(r|0););break r;case 2:for(u=Q[h>>1],r=0;A=u<<16>>16,u=X[h+2>>1],X[t+(m(e,r)<<1)>>1]=m(u,54)+(X[h+4>>1]<<4)-((A<<2)+(X[h+6>>1]<<1))>>w,h=h+2|0,r=r+1|0,(n|0)!=(r|0););break r;case 3:for(u=Q[h>>1],r=0;A=u<<16>>16,u=X[h+2>>1],X[t+(m(e,r)<<1)>>1]=((m(u,46)+m(A,-6)|0)+m(X[h+4>>1],28)|0)-(X[h+6>>1]<<2)>>w,h=h+2|0,r=r+1|0,(n|0)!=(r|0););break r;case 4:if(u=Q[h>>1],r=0,W=0,!C)break e;for(;A=u<<16>>16,u=X[h+4>>1],I=X[h+2>>1],E=A,A=X[h+6>>1],X[t+(m(e,r)<<1)>>1]=m(u+I|0,36)-(E+A<<2)>>w,X[t+(m(r|1,e)<<1)>>1]=m(A+u|0,36)-(I+X[h+8>>1]<<2)>>w,r=r+2|0,h=h+4|0,W=W+2|0,(Z|0)!=(W|0););break e;case 5:for(u=Q[h>>1],r=0;A=u<<16>>16,u=X[h+2>>1],X[t+(m(e,r)<<1)>>1]=((m(u,28)-(A<<2)|0)+m(X[h+4>>1],46)|0)+m(X[h+6>>1],-6)>>w,h=h+2|0,r=r+1|0,(n|0)!=(r|0););break r;case 6:break A}for(u=Q[h>>1],r=0;A=u<<16>>16,u=X[h+2>>1],X[t+(m(e,r)<<1)>>1]=m(X[h+4>>1],54)+(u<<4)-((A<<1)+(X[h+6>>1]<<2))>>w,h=h+2|0,r=r+1|0,(n|0)!=(r|0););break r}if(!y)break r;X[t+(m(e,r)<<1)>>1]=m(X[h+4>>1]+X[h+2>>1]|0,36)-(X[h+6>>1]+(u<<16>>16)<<2)>>w}if(p=p+1|0,(p|0)==(k|0))break}}}function Zr(f,e,r,A){var k=0,n=0,t=0,o=0;k=B-48|0,B=k,t=k+36|0,W6(t,i[e+48>>2],r),o=l[k+47|0],n=(o|0)<0;i:{r:{if(((n?i[k+40>>2]:o)|0)!=4)break r;n=n?i[k+36>>2]:t,t=s[n+1|0]<<8,o=s[n+2|0]<<16|s[n+3|0]<<24;e:{if((s[n|0]|t|o)==1684632167||(n=o|(t|s[n|0]),(n|0)==1852138601))break e;if((n|0)!=1819701097)break r}n=i[e+48>>2],t=i[n+76>>2],n=i[n+80>>2],n&&(i[n+4>>2]=i[n+4>>2]+1);e:{if(!t){if(e=U(56),i[k+24>>2]=e,i[k+28>>2]=54,i[k+32>>2]=-2147483592,r=s[3983]|s[3984]<<8|(s[3985]<<16|s[3986]<<24),A=s[3979]|s[3980]<<8|(s[3981]<<16|s[3982]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+54|0]=0,r=s[4029]|s[4030]<<8|(s[4031]<<16|s[4032]<<24),A=s[4025]|s[4026]<<8|(s[4027]<<16|s[4028]<<24),l[e+46|0]=A,l[e+47|0]=A>>>8,l[e+48|0]=A>>>16,l[e+49|0]=A>>>24,l[e+50|0]=r,l[e+51|0]=r>>>8,l[e+52|0]=r>>>16,l[e+53|0]=r>>>24,r=s[4023]|s[4024]<<8|(s[4025]<<16|s[4026]<<24),A=s[4019]|s[4020]<<8|(s[4021]<<16|s[4022]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[4015]|s[4016]<<8|(s[4017]<<16|s[4018]<<24),A=s[4011]|s[4012]<<8|(s[4013]<<16|s[4014]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[4007]|s[4008]<<8|(s[4009]<<16|s[4010]<<24),A=s[4003]|s[4004]<<8|(s[4005]<<16|s[4006]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[3999]|s[4e3]<<8|(s[4001]<<16|s[4002]<<24),A=s[3995]|s[3996]<<8|(s[3997]<<16|s[3998]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[3991]|s[3992]<<8|(s[3993]<<16|s[3994]<<24),A=s[3987]|s[3988]<<8|(s[3989]<<16|s[3990]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,117,k+24|0),l[k+35|0]>=0)break e;G(i[k+24>>2]);break e}oi(k+24|0,t,r);A:{f:{if(t=i[k+24>>2],(t|0)!=i[k+28>>2]&&(o=r,r=i[t>>2],(o|0)!=(r|0)))break f;if(e=U(56),i[k+12>>2]=e,i[k+16>>2]=54,i[k+20>>2]=-2147483592,r=s[3983]|s[3984]<<8|(s[3985]<<16|s[3986]<<24),A=s[3979]|s[3980]<<8|(s[3981]<<16|s[3982]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+54|0]=0,r=s[4029]|s[4030]<<8|(s[4031]<<16|s[4032]<<24),A=s[4025]|s[4026]<<8|(s[4027]<<16|s[4028]<<24),l[e+46|0]=A,l[e+47|0]=A>>>8,l[e+48|0]=A>>>16,l[e+49|0]=A>>>24,l[e+50|0]=r,l[e+51|0]=r>>>8,l[e+52|0]=r>>>16,l[e+53|0]=r>>>24,r=s[4023]|s[4024]<<8|(s[4025]<<16|s[4026]<<24),A=s[4019]|s[4020]<<8|(s[4021]<<16|s[4022]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[4015]|s[4016]<<8|(s[4017]<<16|s[4018]<<24),A=s[4011]|s[4012]<<8|(s[4013]<<16|s[4014]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[4007]|s[4008]<<8|(s[4009]<<16|s[4010]<<24),A=s[4003]|s[4004]<<8|(s[4005]<<16|s[4006]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[3999]|s[4e3]<<8|(s[4001]<<16|s[4002]<<24),A=s[3995]|s[3996]<<8|(s[3997]<<16|s[3998]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[3991]|s[3992]<<8|(s[3993]<<16|s[3994]<<24),A=s[3987]|s[3988]<<8|(s[3989]<<16|s[3990]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,117,k+12|0),l[k+23|0]>=0)break A;G(i[k+12>>2]);break A}Zr(f,e,r,A)}if(f=i[k+24>>2],!f)break e;i[k+28>>2]=f,G(f)}if(!n||(f=i[n+4>>2],i[n+4>>2]=f-1,f))break i;V[i[i[n>>2]+8>>2]](n),g(n);break i}if(i[A>>2]=r,e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}l[k+47|0]<0&&G(i[k+36>>2]),B=k+48|0}function Ah(f,e,r,A,k,n,t,o,u,h){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0,h=h|0;var w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0;Z=h-8|0,v=n+3|0,R=B-((m(v,k)<<1)+15&-16)|0;i:{if((n|0)>=-2){if((k|0)<=0)break i;for(C=r-1|0,J=R+2|0,r=n+2|0,I=(r|0)>0?r:0,H=k&2147483646,a=k&1,y=k-t&3,p=-1,E=k-1|0,S=E-t>>>0<3;;){_=J+(p<<1)|0,h=C+m(A,p)|0;r:{e:{A:switch(t|0){case 0:if(u=0,r=t,y)for(;X[_+(m(r,v)<<1)>>1]=s[h+1|0],r=r+1|0,h=h+1|0,u=u+1|0,(y|0)!=(u|0););if(S)break r;for(;X[_+(m(r,v)<<1)>>1]=s[h+1|0],X[_+(m(r+1|0,v)<<1)>>1]=s[h+2|0],X[_+(m(r+2|0,v)<<1)>>1]=s[h+3|0],X[_+(m(r+3|0,v)<<1)>>1]=s[h+4|0],h=h+4|0,r=r+4|0,(k|0)!=(r|0););break r;default:for(u=s[h|0],r=0;w=s[h+1|0],X[_+(m(r,v)<<1)>>1]=(m(s[h+2|0],58)+m(w,10)|0)-(s[h+3|0]+(u&255)<<1)>>Z,h=h+1|0,u=w,r=r+1|0,(k|0)!=(r|0););break r;case 1:for(u=s[h|0],r=0;w=s[h+1|0],X[_+(m(r,v)<<1)>>1]=(m(s[h+2|0],10)+m(w,58)|0)-(s[h+3|0]+(u&255)<<1)>>Z,h=h+1|0,u=w,r=r+1|0,(k|0)!=(r|0););break r;case 2:for(u=s[h|0],r=0;w=u&255,u=s[h+1|0],X[_+(m(r,v)<<1)>>1]=m(u,54)+(s[h+2|0]<<4)-((w<<2)+(s[h+3|0]<<1))>>Z,h=h+1|0,r=r+1|0,(k|0)!=(r|0););break r;case 3:for(u=s[h|0],r=0;w=u&255,u=s[h+1|0],X[_+(m(r,v)<<1)>>1]=((m(u,46)+m(w,-6)|0)+m(s[h+2|0],28)|0)-(s[h+3|0]<<2)>>Z,h=h+1|0,r=r+1|0,(k|0)!=(r|0););break r;case 4:if(u=s[h|0],r=0,W=0,!E)break e;for(;w=u&255,u=s[h+2|0],D=s[h+1|0],z=s[h+3|0],X[_+(m(r,v)<<1)>>1]=m(u+D|0,36)-(w+z<<2)>>Z,X[_+(m(r|1,v)<<1)>>1]=m(u+z|0,36)-(s[h+4|0]+D<<2)>>Z,r=r+2|0,h=h+2|0,W=W+2|0,(H|0)!=(W|0););break e;case 5:for(u=s[h|0],r=0;w=u&255,u=s[h+1|0],X[_+(m(r,v)<<1)>>1]=((m(u,28)-(w<<2)|0)+m(s[h+2|0],46)|0)+m(s[h+3|0],-6)>>Z,h=h+1|0,r=r+1|0,(k|0)!=(r|0););break r;case 6:break A}for(u=s[h|0],r=0;w=u&255,u=s[h+1|0],X[_+(m(r,v)<<1)>>1]=m(s[h+2|0],54)+(u<<4)-((w<<1)+(s[h+3|0]<<2))>>Z,h=h+1|0,r=r+1|0,(k|0)!=(r|0););break r}if(!a)break r;X[_+(m(r,v)<<1)>>1]=m(s[h+2|0]+s[h+1|0]|0,36)-(s[h+3|0]+(u&255)<<2)>>Z}if(p=p+1|0,(I|0)==(p|0))break}}if((k|0)<=0|(n|0)<=0)break i;for(w=t?6:Z,Z=n&2147483646,y=n&1,_=n-o&3,p=0,C=n-1|0,J=C-o>>>0<3;;){t=(p<<1)+f|0,h=(m(v,p)<<1)+R|0;r:{e:{A:switch(o|0){case 0:if(u=0,r=o,_)for(;X[t+(m(e,r)<<1)>>1]=Q[h+2>>1],r=r+1|0,h=h+2|0,u=u+1|0,(_|0)!=(u|0););if(J)break r;for(;X[t+(m(e,r)<<1)>>1]=Q[h+2>>1],X[t+(m(r+1|0,e)<<1)>>1]=Q[h+4>>1],X[t+(m(r+2|0,e)<<1)>>1]=Q[h+6>>1],X[t+(m(r+3|0,e)<<1)>>1]=Q[h+8>>1],h=h+8|0,r=r+4|0,(n|0)!=(r|0););break r;default:for(u=Q[h>>1],r=0;A=X[h+2>>1],X[t+(m(e,r)<<1)>>1]=(m(X[h+4>>1],58)+m(A,10)|0)-(X[h+6>>1]+(u<<16>>16)<<1)>>w,h=h+2|0,u=A,r=r+1|0,(n|0)!=(r|0););break r;case 1:for(u=Q[h>>1],r=0;A=X[h+2>>1],X[t+(m(e,r)<<1)>>1]=(m(X[h+4>>1],10)+m(A,58)|0)-(X[h+6>>1]+(u<<16>>16)<<1)>>w,h=h+2|0,u=A,r=r+1|0,(n|0)!=(r|0););break r;case 2:for(u=Q[h>>1],r=0;A=u<<16>>16,u=X[h+2>>1],X[t+(m(e,r)<<1)>>1]=m(u,54)+(X[h+4>>1]<<4)-((A<<2)+(X[h+6>>1]<<1))>>w,h=h+2|0,r=r+1|0,(n|0)!=(r|0););break r;case 3:for(u=Q[h>>1],r=0;A=u<<16>>16,u=X[h+2>>1],X[t+(m(e,r)<<1)>>1]=((m(u,46)+m(A,-6)|0)+m(X[h+4>>1],28)|0)-(X[h+6>>1]<<2)>>w,h=h+2|0,r=r+1|0,(n|0)!=(r|0););break r;case 4:if(u=Q[h>>1],r=0,W=0,!C)break e;for(;A=u<<16>>16,u=X[h+4>>1],I=X[h+2>>1],E=A,A=X[h+6>>1],X[t+(m(e,r)<<1)>>1]=m(u+I|0,36)-(E+A<<2)>>w,X[t+(m(r|1,e)<<1)>>1]=m(A+u|0,36)-(I+X[h+8>>1]<<2)>>w,r=r+2|0,h=h+4|0,W=W+2|0,(Z|0)!=(W|0););break e;case 5:for(u=Q[h>>1],r=0;A=u<<16>>16,u=X[h+2>>1],X[t+(m(e,r)<<1)>>1]=((m(u,28)-(A<<2)|0)+m(X[h+4>>1],46)|0)+m(X[h+6>>1],-6)>>w,h=h+2|0,r=r+1|0,(n|0)!=(r|0););break r;case 6:break A}for(u=Q[h>>1],r=0;A=u<<16>>16,u=X[h+2>>1],X[t+(m(e,r)<<1)>>1]=m(X[h+4>>1],54)+(u<<4)-((A<<1)+(X[h+6>>1]<<2))>>w,h=h+2|0,r=r+1|0,(n|0)!=(r|0););break r}if(!y)break r;X[t+(m(e,r)<<1)>>1]=m(X[h+4>>1]+X[h+2>>1]|0,36)-(X[h+6>>1]+(u<<16>>16)<<2)>>w}if(p=p+1|0,(p|0)==(k|0))break}}}function fh(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;if(h=B-32|0,B=h,n=i[f>>2],Zr(h+8|0,i[n+16>>2],i[n+20>>2],h+28|0),f=-1,!i[h+8>>2]){u=i[h+28>>2],r=B-128|0,B=r,o=i[i[n+16>>2]+48>>2],n=o+112|0;i:{r:{e=i[o+112>>2];e:{if(!e)break e;for(f=n;A=k0[e+16>>2]>>0,f=A?f:e,e=i[(A<<2)+e>>2],!!e;);if(A=0,(f|0)==(n|0)|k0[f+16>>2]>u>>>0)break e;if(e=i[f+20>>2],A=i[f+24>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),e)break r}l[r+112|0]=0,l[r+123|0]=0;break i}if(l[e+75|0]>=0){f=e- -64|0,i[r+120>>2]=i[f+8>>2],e=i[f+4>>2],i[r+112>>2]=i[f>>2],i[r+116>>2]=e;break i}_0(r+112|0,i[e+64>>2],i[e+68>>2])}i:{if(!A||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break i;V[i[i[A>>2]+8>>2]](A),g(A)}e=l[r+123|0],k=(e|0)<0,f=i[r+116>>2];i:{r:{if(((k?f:e)|0)!=4||(k=k?i[r+112>>2]:r+112|0,(s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))!=828601960))break r;p4(r+32|0,i[o+44>>2],u,o+52|0,1752589123),e=i[r+32>>2];e:{if(!e){f=0;break e}if(f=0,A=N0(e,68572,74292),!A)break e;if(e=i[r+36>>2],!e){A=s[A+71|0],f=1;break e}if(f=1,k=i[e+4>>2],t=k+1|0,i[e+4>>2]=t,A=s[A+71|0],i[e+4>>2]=k,t)break e;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[r+36>>2];e:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break e;V[i[i[e>>2]+8>>2]](e),g(e)}if(f)break i;e=s[r+123|0],f=i[r+116>>2]}k=e<<24>>24;r:{if((((k|0)<0?f:e)|0)!=4||(t=0,k=(k|0)<0?i[r+112>>2]:r+112|0,(s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))!=828601974))break r;p4(r+12|0,i[o+44>>2],u,o+52|0,1987470147),f=i[r+12>>2];e:{if(!f||(e=N0(f,68572,74976),!e)||(f=i[r+16>>2],f&&(i[f+4>>2]=i[f+4>>2]+1),A=i[e+60>>2],i[r+32>>2]=i[e+56>>2],i[r+36>>2]=A,_n(r+40|0,e- -64|0),X[r+100>>1]=Q[e+124>>1],i[r+96>>2]=i[e+120>>2],e=s[r+39|0],k=s[r+33|0],A=i[r+84>>2],A&&(i[r+88>>2]=A,G(A)),A=i[r+72>>2],A&&(i[r+76>>2]=A,G(A)),A=i[r+60>>2],A&&G(A),A=i[r+48>>2],A&&(i[r+52>>2]=A,G(A)),A=k?e+8|0:8,t=1,!f)||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break e;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[r+16>>2];e:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break e;V[i[i[f>>2]+8>>2]](f),g(f)}if(t)break i;e=s[r+123|0],f=i[r+116>>2]}k=e<<24>>24<0;r:{if(((k?f:e)|0)!=4||(k=k?i[r+112>>2]:r+112|0,(s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))!=825259617))break r;p4(r+32|0,i[o+44>>2],u,o+52|0,1635135811),e=i[r+32>>2];e:{if(!e){f=0;break e}if(f=0,k=N0(e,68572,74408),!k)break e;if(e=i[r+36>>2],!e){A=s[k+52|0]?s[k+53|0]?12:10:8,f=1;break e}if(f=1,A=i[e+4>>2],t=A+1|0,i[e+4>>2]=t,w=s[k+52|0],k=s[k+53|0],i[e+4>>2]=A,A=w?k?12:10:8,t)break e;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[r+36>>2];e:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break e;V[i[i[e>>2]+8>>2]](e),g(e)}if(f)break i;e=s[r+123|0],f=i[r+116>>2]}r:{A=e<<24>>24;e:{if((((A|0)<0?f:e)|0)!=4)break e;if(A=(A|0)<0?i[r+112>>2]:r+112|0,k=s[A+1|0]<<8,t=s[A+2|0]<<16|s[A+3|0]<<24,(s[A|0]|k|t)==1734701162)break r;if((t|(k|s[A|0]))!=1701669229)break e;A=0;A:{f:{e=i[n>>2];k:{if(!e)break k;for(f=n;A=k0[e+16>>2]>>0,f=A?f:e,e=i[(A<<2)+e>>2],!!e;);if(A=0,(f|0)==(n|0)|k0[f+16>>2]>u>>>0)break k;if(n=i[f+20>>2],A=i[f+24>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),n)break f}l[r+32|0]=0,l[r+43|0]=0;break A}if(l[n+99|0]>=0){i[r+40>>2]=i[n+96>>2],f=i[n+92>>2],i[r+32>>2]=i[n+88>>2],i[r+36>>2]=f;break A}_0(r+32|0,i[n+88>>2],i[n+92>>2])}A:{if(!A||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break A;V[i[i[A>>2]+8>>2]](A),g(A)}if(f=0,A=l[r+43|0],n=(A|0)<0,((n?i[r+36>>2]:A)|0)==10&&(f=!K2(n?i[r+32>>2]:r+32|0,8704,10)),(A|0)<0&&G(i[r+32>>2]),f)break r;e=s[r+123|0],f=i[r+116>>2]}if(A=-1,n=f,f=e<<24>>24<0,((f?n:e)|0)!=4||(f=f?i[r+112>>2]:r+112|0,(s[f|0]|s[f+1|0]<<8|(s[f+2|0]<<16|s[f+3|0]<<24))!=829108842))break i;X[r+32>>1]=0,B0(r+36|0,0,68),wA(r+12|0,r+32|0,o,u),A=-1;e:{if(i[r+12>>2]||(f=i[r+68>>2],A=-1,i[r+72>>2]-f>>>0<5))break e;A=s[f+6|0]}if(l[r+31|0]<0&&G(i[r+20>>2]),f=i[r+92>>2],f&&(i[r+96>>2]=f,G(f)),f=i[r+80>>2],f&&(i[r+84>>2]=f,G(f)),f=i[r+68>>2],!f)break i;i[r+72>>2]=f,G(f);break i}A=J7(o,u)}l[r+123|0]<0&&G(i[r+112>>2]),B=r+128|0,f=A}return l[h+27|0]<0&&G(i[h+16>>2]),B=h+32|0,f|0}function kh(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;if(n=B-32|0,B=n,_=V[i[i[e>>2]+32>>2]](e,r,0)|0,A2(r,s[e+57|0]|s[e+56|0]<<1&6|248),s[e+57|0]==1){w2(r,(s[e+62|0]|(s[e+60|0]<<4|Q[e+58>>1]<<7|s[e+61|0]<<2))&65535),A2(r,(s[e+63|0]<<5|31)&255),A2(r,s[e+64|0]&63),A2(r,s[e+66|0]|s[e+65|0]<<1&254),A2(r,s[e+67|0]);i:{if(!s[e+64|0]||(A2(r,(s[i[e+72>>2]]|(s[e+69|0]<<6|s[e+68|0]<<7))&255),A=1,s[e+64|0]<=1))break i;for(;A2(r,s[i[e+72>>2]+A|0]),A=A+1|0,A>>>0>>0<=1)break i;k=A-1|0,h=k&1,o=i[e+84>>2],A=A-2|0;r:{if(!A){t=128,k=0;break r}for(v=k&-2,t=128,k=0;u=A-1|0,Z=0-(i[o+(u>>>3&536870908)>>2]>>>u&1)|0,u=t&255,k=Z&u>>>1|(0-(i[o+(A>>>3&536870908)>>2]>>>A&1)&t|k),A=A-2|0,t=u>>>2|0,w=w+2|0,(w|0)!=(v|0););}if(!h)break i;k=0-(i[o+(A>>>3&536870908)>>2]>>>A&1)&t|k}if(A2(r,k&255),A=s[e+60|0],A>>>0>=2)for(A=A-2|0;i[i[e+84>>2]+(A>>>3&536870908)>>2]>>>A&1&&A2(r,s[i[e+96>>2]+A|0]),k=(A|0)>0,A=A-1|0,!!k;);if(k=i[e+112>>2]-i[e+108>>2]>>>2&255,A2(r,k),k)for(A=0;l2(r,i[i[e+108>>2]+(A<<2)>>2]),A=A+1|0,(k|0)!=(A|0););w2(r,Q[e+120>>1]),w2(r,Q[e+122>>1]),w2(r,Q[e+124>>1])}A=i[e+132>>2]-i[e+128>>2]>>4;i:{if(A>>>0>=256){if(e=U(32),i[n+20>>2]=e,i[n+24>>2]=24,i[n+28>>2]=-2147483616,r=s[17552]|s[17553]<<8|(s[17554]<<16|s[17555]<<24),A=s[17548]|s[17549]<<8|(s[17550]<<16|s[17551]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+24|0]=0,r=s[17568]|s[17569]<<8|(s[17570]<<16|s[17571]<<24),A=s[17564]|s[17565]<<8|(s[17566]<<16|s[17567]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[17560]|s[17561]<<8|(s[17562]<<16|s[17563]<<24),A=s[17556]|s[17557]<<8|(s[17558]<<16|s[17559]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,9,0,n+20|0),l[n+31|0]>=0)break i;G(i[n+20>>2]);break i}if(A2(r,A&255),k=i[e+128>>2],t=i[e+132>>2],(k|0)!=(t|0))for(;;){if(A2(r,s[k+1|0]|(s[k|0]?128:0)),A=(i[k+8>>2]-i[k+4>>2]|0)/12|0,A>>>0>=65536){if(e=U(24),i[n+20>>2]=e,i[n+24>>2]=23,i[n+28>>2]=-2147483624,r=s[17577]|s[17578]<<8|(s[17579]<<16|s[17580]<<24),A=s[17573]|s[17574]<<8|(s[17575]<<16|s[17576]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+23|0]=0,r=s[17592]|s[17593]<<8|(s[17594]<<16|s[17595]<<24),A=s[17588]|s[17589]<<8|(s[17590]<<16|s[17591]<<24),l[e+15|0]=A,l[e+16|0]=A>>>8,l[e+17|0]=A>>>16,l[e+18|0]=A>>>24,l[e+19|0]=r,l[e+20|0]=r>>>8,l[e+21|0]=r>>>16,l[e+22|0]=r>>>24,r=s[17585]|s[17586]<<8|(s[17587]<<16|s[17588]<<24),A=s[17581]|s[17582]<<8|(s[17583]<<16|s[17584]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,9,0,n+20|0),l[n+31|0]>=0)break i;G(i[n+20>>2]);break i}if(w2(r,A&65535),A=i[k+4>>2],o=i[k+8>>2],(A|0)!=(o|0))for(;;){if(h=i[A+4>>2]-i[A>>2]|0,h>>>0>=65536){if(e=U(24),i[n+20>>2]=e,i[n+24>>2]=18,i[n+28>>2]=-2147483624,r=s[17830]|s[17831]<<8|(s[17832]<<16|s[17833]<<24),A=s[17826]|s[17827]<<8|(s[17828]<<16|s[17829]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+18|0]=0,r=s[17842]|s[17843]<<8,l[e+16|0]=r,l[e+17|0]=r>>>8,r=s[17838]|s[17839]<<8|(s[17840]<<16|s[17841]<<24),A=s[17834]|s[17835]<<8|(s[17836]<<16|s[17837]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,9,0,n+20|0),l[n+31|0]>=0)break i;G(i[n+20>>2]);break i}if(w2(r,h&65535),D4(r,A),A=A+12|0,(o|0)==(A|0))break}if(k=k+16|0,(t|0)==(k|0))break}if(Y4(n,e,r,_),l[n+19|0]<0&&G(i[n+8>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=n+32|0}function Ek(f){var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;if(h=B-32|0,B=h,Zr(h+8|0,i[f+16>>2],i[f+20>>2],h+28|0),n=-1,!i[h+8>>2]){u=i[h+28>>2],r=B-128|0,B=r,o=i[i[f+16>>2]+48>>2],n=o+112|0;i:{r:{e=i[o+112>>2];e:{if(!e)break e;for(f=n;A=k0[e+16>>2]>>0,f=A?f:e,e=i[(A<<2)+e>>2],!!e;);if(A=0,(f|0)==(n|0)|k0[f+16>>2]>u>>>0)break e;if(e=i[f+20>>2],A=i[f+24>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),e)break r}l[r+112|0]=0,l[r+123|0]=0;break i}if(l[e+75|0]>=0){f=e- -64|0,i[r+120>>2]=i[f+8>>2],e=i[f+4>>2],i[r+112>>2]=i[f>>2],i[r+116>>2]=e;break i}_0(r+112|0,i[e+64>>2],i[e+68>>2])}i:{if(!A||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break i;V[i[i[A>>2]+8>>2]](A),g(A)}e=l[r+123|0],k=(e|0)<0,f=i[r+116>>2];i:{r:{if(((k?f:e)|0)!=4||(k=k?i[r+112>>2]:r+112|0,(s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))!=828601960))break r;p4(r+32|0,i[o+44>>2],u,o+52|0,1752589123),e=i[r+32>>2];e:{if(!e){f=0;break e}if(f=0,A=N0(e,68572,74292),!A)break e;if(e=i[r+36>>2],!e){A=s[A+70|0],f=1;break e}if(f=1,k=i[e+4>>2],t=k+1|0,i[e+4>>2]=t,A=s[A+70|0],i[e+4>>2]=k,t)break e;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[r+36>>2];e:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break e;V[i[i[e>>2]+8>>2]](e),g(e)}if(f)break i;e=s[r+123|0],f=i[r+116>>2]}k=e<<24>>24;r:{if((((k|0)<0?f:e)|0)!=4||(t=0,k=(k|0)<0?i[r+112>>2]:r+112|0,(s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))!=828601974))break r;p4(r+12|0,i[o+44>>2],u,o+52|0,1987470147),f=i[r+12>>2];e:{if(!f||(e=N0(f,68572,74976),!e)||(f=i[r+16>>2],f&&(i[f+4>>2]=i[f+4>>2]+1),A=i[e+60>>2],i[r+32>>2]=i[e+56>>2],i[r+36>>2]=A,_n(r+40|0,e- -64|0),X[r+100>>1]=Q[e+124>>1],i[r+96>>2]=i[e+120>>2],e=s[r+39|0],k=s[r+33|0],A=i[r+84>>2],A&&(i[r+88>>2]=A,G(A)),A=i[r+72>>2],A&&(i[r+76>>2]=A,G(A)),A=i[r+60>>2],A&&G(A),A=i[r+48>>2],A&&(i[r+52>>2]=A,G(A)),A=k?e+8|0:8,t=1,!f)||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break e;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[r+16>>2];e:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break e;V[i[i[f>>2]+8>>2]](f),g(f)}if(t)break i;e=s[r+123|0],f=i[r+116>>2]}k=e<<24>>24<0;r:{if(((k?f:e)|0)!=4||(k=k?i[r+112>>2]:r+112|0,(s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24))!=825259617))break r;p4(r+32|0,i[o+44>>2],u,o+52|0,1635135811),e=i[r+32>>2];e:{if(!e){f=0;break e}if(f=0,k=N0(e,68572,74408),!k)break e;if(e=i[r+36>>2],!e){A=s[k+52|0]?s[k+53|0]?12:10:8,f=1;break e}if(f=1,A=i[e+4>>2],t=A+1|0,i[e+4>>2]=t,w=s[k+52|0],k=s[k+53|0],i[e+4>>2]=A,A=w?k?12:10:8,t)break e;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[r+36>>2];e:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break e;V[i[i[e>>2]+8>>2]](e),g(e)}if(f)break i;e=s[r+123|0],f=i[r+116>>2]}r:{A=e<<24>>24;e:{if((((A|0)<0?f:e)|0)!=4)break e;if(A=(A|0)<0?i[r+112>>2]:r+112|0,k=s[A+1|0]<<8,t=s[A+2|0]<<16|s[A+3|0]<<24,(s[A|0]|k|t)==1734701162)break r;if((t|(k|s[A|0]))!=1701669229)break e;A=0;A:{f:{e=i[n>>2];k:{if(!e)break k;for(f=n;A=k0[e+16>>2]>>0,f=A?f:e,e=i[(A<<2)+e>>2],!!e;);if(A=0,(f|0)==(n|0)|k0[f+16>>2]>u>>>0)break k;if(n=i[f+20>>2],A=i[f+24>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),n)break f}l[r+32|0]=0,l[r+43|0]=0;break A}if(l[n+99|0]>=0){i[r+40>>2]=i[n+96>>2],f=i[n+92>>2],i[r+32>>2]=i[n+88>>2],i[r+36>>2]=f;break A}_0(r+32|0,i[n+88>>2],i[n+92>>2])}A:{if(!A||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break A;V[i[i[A>>2]+8>>2]](A),g(A)}if(f=0,A=l[r+43|0],n=(A|0)<0,((n?i[r+36>>2]:A)|0)==10&&(f=!K2(n?i[r+32>>2]:r+32|0,8704,10)),(A|0)<0&&G(i[r+32>>2]),f)break r;e=s[r+123|0],f=i[r+116>>2]}if(A=-1,n=f,f=e<<24>>24<0,((f?n:e)|0)!=4||(f=f?i[r+112>>2]:r+112|0,(s[f|0]|s[f+1|0]<<8|(s[f+2|0]<<16|s[f+3|0]<<24))!=829108842))break i;X[r+32>>1]=0,B0(r+36|0,0,68),wA(r+12|0,r+32|0,o,u),A=-1;e:{if(i[r+12>>2]||(f=i[r+68>>2],A=-1,(f|0)==i[r+72>>2]))break e;A=s[f+2|0]}if(l[r+31|0]<0&&G(i[r+20>>2]),f=i[r+92>>2],f&&(i[r+96>>2]=f,G(f)),f=i[r+80>>2],f&&(i[r+84>>2]=f,G(f)),f=i[r+68>>2],!f)break i;i[r+72>>2]=f,G(f);break i}A=J7(o,u)}l[r+123|0]<0&&G(i[r+112>>2]),B=r+128|0,n=A}return l[h+27|0]<0&&G(i[h+16>>2]),B=h+32|0,n}function nh(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0;o=B-48|0,B=o,i[o+44>>2]=e,i[k>>2]=0,u=i[A+28>>2],i[o>>2]=u,(u|0)!=100008&&(i[u+4>>2]=i[u+4>>2]+1),u=x0(o,100184),O0(o);i:{r:{e:{A:switch(t-65|0){case 0:case 32:Bt(f,n+24|0,o+44|0,r,k,u);break r;case 1:case 33:case 39:ht(f,n+16|0,o+44|0,r,k,u);break r;case 34:e=V[i[i[f+8>>2]+12>>2]](f+8|0)|0,t=f,h=i[o+44>>2],s[e+11|0]>>>7|0?f=i[e>>2]:f=e,u=f,s[e+11|0]>>>7|0?f=i[e>>2]:f=e,s[e+11|0]>>>7|0?e=i[e+4>>2]:e=s[e+11|0]&127,w=o,_=Z8(t,h,r,A,k,n,u,f+(e<<2)|0),i[w+44>>2]=_;break r;case 35:case 36:f=$4(o+44|0,r,k,u,2),e=i[k>>2];f:{if(!(f-1>>>0>30|e&4)){i[n+12>>2]=f;break f}i[k>>2]=e|4}break r;case 3:t=i[15039],i[o+24>>2]=i[15038],i[o+28>>2]=t,t=i[15037],i[o+16>>2]=i[15036],i[o+20>>2]=t,t=i[15035],i[o+8>>2]=i[15034],i[o+12>>2]=t,t=i[15033],i[o>>2]=i[15032],i[o+4>>2]=t,w=o,_=Z8(f,e,r,A,k,n,o,o+32|0),i[w+44>>2]=_;break r;case 5:t=i[15047],i[o+24>>2]=i[15046],i[o+28>>2]=t,t=i[15045],i[o+16>>2]=i[15044],i[o+20>>2]=t,t=i[15043],i[o+8>>2]=i[15042],i[o+12>>2]=t,t=i[15041],i[o>>2]=i[15040],i[o+4>>2]=t,w=o,_=Z8(f,e,r,A,k,n,o,o+32|0),i[w+44>>2]=_;break r;case 7:f=$4(o+44|0,r,k,u,2),e=i[k>>2];f:{if(!((f|0)>23|e&4)){i[n+8>>2]=f;break f}i[k>>2]=e|4}break r;case 8:f=$4(o+44|0,r,k,u,2),e=i[k>>2];f:{if(!(f-1>>>0>11|e&4)){i[n+8>>2]=f;break f}i[k>>2]=e|4}break r;case 41:f=$4(o+44|0,r,k,u,3),e=i[k>>2];f:{if(!((f|0)>365|e&4)){i[n+28>>2]=f;break f}i[k>>2]=e|4}break r;case 44:e=$4(o+44|0,r,k,u,2)-1|0,f=i[k>>2];f:{if(!(e>>>0>11|f&4)){i[n+16>>2]=e;break f}i[k>>2]=f|4}break r;case 12:f=$4(o+44|0,r,k,u,2),e=i[k>>2];f:{if(!((f|0)>59|e&4)){i[n+4>>2]=f;break f}i[k>>2]=e|4}break r;case 45:case 51:for(f=o+44|0,e=B-16|0,B=e,i[e+12>>2]=r;;){f:{if(g2(f,e+12|0))break f;r=i[f>>2],A=i[r+12>>2];k:{if((A|0)==i[r+16>>2]){r=V[i[i[r>>2]+36>>2]](r)|0;break k}r=i[A>>2]}if(!(V[i[i[u>>2]+12>>2]](u,1,r)|0))break f;Y1(f);continue}break}g2(f,e+12|0)&&(i[k>>2]=i[k>>2]|2),B=e+16|0;break r;case 47:t=o+44|0,e=V[i[i[f+8>>2]+8>>2]](f+8|0)|0;f:{if(s[e+11|0]>>>7|0){f=i[e+4>>2];break f}f=s[e+11|0]&127}s[e+23|0]>>>7|0?A=i[e+16>>2]:A=s[e+23|0]&127;f:{if((f|0)==(0-A|0)){i[k>>2]=i[k>>2]|4;break f}if(r=Rr(t,r,e,e+24|0,u,k,0),f=i[n+8>>2],!((r|0)!=(e|0)|(f|0)!=12)){i[n+8>>2]=0;break f}(r-e|0)!=12|(f|0)>11||(i[n+8>>2]=f+12)}break r;case 49:t=l0(o,60192,44),w=t,_=Z8(f,e,r,A,k,n,t,t+44|0),i[w+44>>2]=_;break r;case 17:i[o+16>>2]=i[15064],t=i[15063],i[o+8>>2]=i[15062],i[o+12>>2]=t,t=i[15061],i[o>>2]=i[15060],i[o+4>>2]=t,w=o,_=Z8(f,e,r,A,k,n,o,o+20|0),i[w+44>>2]=_;break r;case 18:f=$4(o+44|0,r,k,u,2),e=i[k>>2];f:{if(!((f|0)>60|e&4)){i[n>>2]=f;break f}i[k>>2]=e|4}break r;case 19:t=i[15075],i[o+24>>2]=i[15074],i[o+28>>2]=t,t=i[15073],i[o+16>>2]=i[15072],i[o+20>>2]=t,t=i[15071],i[o+8>>2]=i[15070],i[o+12>>2]=t,t=i[15069],i[o>>2]=i[15068],i[o+4>>2]=t,w=o,_=Z8(f,e,r,A,k,n,o,o+32|0),i[w+44>>2]=_;break r;case 54:f=$4(o+44|0,r,k,u,1),e=i[k>>2];f:{if(!((f|0)>6|e&4)){i[n+24>>2]=f;break f}i[k>>2]=e|4}break r;case 55:f=V[i[i[f>>2]+20>>2]](f,e,r,A,k,n)|0;break i;case 23:e=V[i[i[f+8>>2]+24>>2]](f+8|0)|0,t=f,h=i[o+44>>2],s[e+11|0]>>>7|0?f=i[e>>2]:f=e,u=f,s[e+11|0]>>>7|0?f=i[e>>2]:f=e,s[e+11|0]>>>7|0?e=i[e+4>>2]:e=s[e+11|0]&127,w=o,_=Z8(t,h,r,A,k,n,u,f+(e<<2)|0),i[w+44>>2]=_;break r;case 56:Yt(n+20|0,o+44|0,r,k,u);break r;case 24:f=$4(o+44|0,r,k,u,4),s[k|0]&4||(i[n+20>>2]=f-1900);break r;default:if((t|0)==37)break e;break;case 2:case 4:case 6:case 9:case 10:case 11:case 13:case 14:case 15:case 16:case 20:case 21:case 22:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 37:case 38:case 40:case 42:case 43:case 46:case 48:case 50:case 52:case 53:break A}i[k>>2]=i[k>>2]|4;break r}f=B-16|0,B=f,i[f+12>>2]=r,r=o+44|0,n=f+12|0,e=6;e:{A:{if(g2(r,n))break A;e=i[r>>2],A=i[e+12>>2];f:{if((A|0)==i[e+16>>2]){A=V[i[i[e>>2]+36>>2]](e)|0;break f}A=i[A>>2]}if(e=4,(V[i[i[u>>2]+52>>2]](u,A,0)|0)!=37)break A;if(!g2(Y1(r),n))break e;e=2}i[k>>2]=e|i[k>>2]}B=f+16|0}f=i[o+44>>2]}return B=o+48|0,f|0}function WA(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0,r2=0,n2=0,s2=0,W2=0,y2=0,x2=0,T2=0,O2=0,q2=0,b2=0,e1=0,A1=0,h1=0,B1=0,p1=0,W1=0,X1=0,N1=0,r4=0,e4=0,V4=0,M4=0,x4=0,Hi=0,Ti=0,ai=0;i:{r:{w=i[f+276>>2],I0=(A|0)>(w|0)?w:A;e:{if((I0|0)<=(r|0)||(j=i[f+272>>2],Q0=(k|0)>(j|0)?j:k,(Q0|0)<=0))break e;for(q=i[f+124>>2],L=i[q+16856>>2],q2=L<<(e^1),p0=i[q+16852>>2],b2=p0<>2],B1=A-8|0,u=-1<>2],F0=m(W,6),Y0=W<<2,D=W<<1,S0=0-D|0,p1=i[f+260>>2],A0=m(W,6),W1=0-W<<1,X1=1-W<<1,N1=2-W<<1,r4=3-W<<1;;){for(A=r<>>0>1)for(w=1,x4=(A<<1)-2|0,A=i[f+168>>2],J=h0-1>>A,R=V4>>A,X0=f0>>A,G0=h0>>A,A=k+e4|0,Hi=A+W<<1,c0=A<<1,Ti=c0+S0|0,ai=i[f+132>>2],A=1;;){k=i[(A<<2)+e1>>2],_=k+c0|0;A:{if(!e){z=_+6|0,H=_+4|0,a=_+2|0,A=k+Hi|0,v=A+6|0,Z=A+4|0,C=A+2|0,k=k+Ti|0,S=k+6|0,I=k+S0|0,t=I+6|0,h=I+4|0,y=I+2|0,E=k+4|0,n=k+2|0;break A}I=_-4|0,t=A0+I|0,A=_+2|0,v=A0+A|0,o=D<<1,h=o+I|0,Z=A+o|0,y=I+D|0,C=A+D|0,k=_-2|0,S=A0+k|0,z=_+A0|0,H=o+_|0,a=_+D|0,E=k+o|0,n=k+D|0}if((G0|0)<0||(o=i[f+172>>2],(o|0)<=(G0|0)))break r;if((X0|0)<0||(p=i[f+176>>2],(p|0)<=(X0|0)))break i;r2=Q[t>>1],n2=Q[h>>1],s2=Q[y>>1],d=Q[I>>1],S=Q[S>>1],t=Q[E>>1],n=Q[n>>1],h=Q[k>>1],W2=Q[v>>1],y2=Q[Z>>1],x2=Q[C>>1],T2=Q[A>>1],z=Q[z>>1],H=Q[H>>1],a=Q[a>>1],v=Q[_>>1],I=w,k=i[(w?32:36)+ai>>2],C=i[f+160>>2],y=C+m(G0,3)|0,E=m(m(o,X0),3),w=y+E|0,Z=l[w+2|0];A:{if(!e){if((R|0)<0|(p|0)<=(R|0))break i;A=(y+m(m(o,R),3)|0)+2|0;break A}if((J|0)<0|o>>>0<=J>>>0)break r;A=(E+(C+m(J,3)|0)|0)+2|0}k=k+((Z+l[A|0]|0)+1>>1)|0;A:{if(i[q+16848>>2]!=1){k=(k|0)>=51?51:k;break A}if((k|0)<30)break A;if(k>>>0<=42){k=i[(k<<2)+45912>>2];break A}k=k-6|0}if(Z=i[f+148>>2],A=h0>>Z,(A|0)<0||(O2=i[f+152>>2],(A|0)>=(O2|0)))break r;if(Z=f0>>Z,(Z|0)<0|(Z|0)>=i[f+156>>2])break i;A=i[i[i[f+52>>2]+(Q[((i[f+140>>2]+m(A,24)|0)+m(m(Z,O2),24)|0)+2>>1]<<2)>>2]+768>>2]+(k+x4|0)|0,A=(A|0)>=53?53:A,A=s[((A|0)>0?A:0)+43024|0]<>3,p=(k|0)>(p|0)?k:(A|0)>(p|0)?p:A,E=s[w|0]|s[w+1|0]<<8,w=C&!(s[(y+m(m(o,R),3)|0)+1|0]&8),w&&(o=h+p|0,X[_+W1>>1]=(o|0)>=0?(u|0)>(o|0)?o:u:0),o=!(E&2048)&(!Z|!(E&1024)),o&&(h=v-p|0,X[_>>1]=(h|0)>=0?(u|0)>(h|0)?h:u:0),h=(((a-n<<2)+s2|0)-x2|0)+4>>3,h=(k|0)>(h|0)?k:(A|0)>(h|0)?h:A,w&&(n=n+h|0,X[_+X1>>1]=(n|0)>=0?(u|0)>(n|0)?n:u:0),o&&(n=a-h|0,X[_+2>>1]=(n|0)>=0?(u|0)>(n|0)?n:u:0),n=(((H-t<<2)+n2|0)-y2|0)+4>>3,n=(k|0)>(n|0)?k:(A|0)>(n|0)?n:A,w&&(t=n+t|0,X[_+N1>>1]=(t|0)>=0?(u|0)>(t|0)?t:u:0),o&&(t=H-n|0,X[_+4>>1]=(t|0)>=0?(u|0)>(t|0)?t:u:0),t=(((z-S<<2)+r2|0)-W2|0)+4>>3,A=(k|0)>(t|0)?k:(A|0)>(t|0)?t:A,w&&(k=A+S|0,X[_+r4>>1]=(k|0)>=0?(k|0)<(u|0)?k:u:0),!o)break A;k=z-A|0,A=6;break f}if(Z){if((J|0)<0|o>>>0<=J>>>0)break r;p=!(s[(E+(C+m(J,3)|0)|0)+1|0]&4)}else p=1;if((J|0)<0|o>>>0<=J>>>0)break r;if(k=0-A|0,o=((d+(v-h<<2)|0)-T2|0)+4>>3,y=(k|0)>(o|0)?k:(A|0)>(o|0)?o:A,d=s[w|0]|s[w+1|0]<<8,w=_-2|0,o=p&!(s[(E+(C+m(J,3)|0)|0)+1|0]&8),o&&(h=h+y|0,X[w>>1]=(h|0)>=0?(u|0)>(h|0)?h:u:0),h=!(d&2048)&(!Z|!(d&1024)),h&&(v=v-y|0,X[_>>1]=(v|0)>=0?(u|0)>(v|0)?v:u:0),v=(((a-n<<2)+s2|0)-x2|0)+4>>3,v=(k|0)>(v|0)?k:(A|0)>(v|0)?v:A,o&&(n=n+v|0,X[w+D>>1]=(n|0)>=0?(u|0)>(n|0)?n:u:0),h&&(n=a-v|0,X[_+D>>1]=(n|0)>=0?(u|0)>(n|0)?n:u:0),n=(((H-t<<2)+n2|0)-y2|0)+4>>3,n=(k|0)>(n|0)?k:(A|0)>(n|0)?n:A,o&&(t=n+t|0,X[w+Y0>>1]=(t|0)>=0?(u|0)>(t|0)?t:u:0),h&&(t=H-n|0,X[_+Y0>>1]=(t|0)>=0?(u|0)>(t|0)?t:u:0),t=(((z-S<<2)+r2|0)-W2|0)+4>>3,A=(k|0)>(t|0)?k:(A|0)>(t|0)?t:A,o&&(k=A+S|0,X[w+F0>>1]=(k|0)>=0?(k|0)<(u|0)?k:u:0),!h)break A;k=z-A|0,A=F0}X[A+_>>1]=(k|0)>=0?(k|0)<(u|0)?k:u:0}if(A=2,w=0,!I)break}if(n0=n0+b2|0,!((Q0|0)>(n0|0)))break}if(r=r+q2|0,!((I0|0)>(r|0)))break}}return}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function Yk(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0;v=B-6240|0,B=v,Z=e+96|0,C=e+480|0,I=e+2016|0;i:{for(;;){for(h=w?64:16,p=(w|0)==3,y=p?3:1,_=(v+6144|0)+m(w,24)|0,k=0;;){n=k<<10,A=n+v|0;r:{e:{A:{f:{k:{if(!(u0(f,1)&255)){if(r=M0(f),(r|0)==-99999||(r=p?m(r,3):r,(r|0)>(k|0)))break A;if(t=_+(k<<2)|0,i[t>>2]=16,!r){if(!w){r=i[19411],i[A+8>>2]=i[19410],i[A+12>>2]=r,r=i[19409],i[A>>2]=i[19408],i[A+4>>2]=r;break e}if(k>>>0<=2){r=i[19427],i[A+56>>2]=i[19426],i[A+60>>2]=r,r=i[19425],i[A+48>>2]=i[19424],i[A+52>>2]=r,r=i[19423],i[A+40>>2]=i[19422],i[A+44>>2]=r,r=i[19421],i[A+32>>2]=i[19420],i[A+36>>2]=r,r=i[19419],i[A+24>>2]=i[19418],i[A+28>>2]=r,r=16,t=i[19417],i[A+16>>2]=i[19416],i[A+20>>2]=t,t=i[19415],i[A+8>>2]=i[19414],i[A+12>>2]=t,t=i[19413],i[A>>2]=i[19412],i[A+4>>2]=t;break k}r=i[19443],i[A+56>>2]=i[19442],i[A+60>>2]=r,r=i[19441],i[A+48>>2]=i[19440],i[A+52>>2]=r,r=i[19439],i[A+40>>2]=i[19438],i[A+44>>2]=r,r=i[19437],i[A+32>>2]=i[19436],i[A+36>>2]=r,r=i[19435],i[A+24>>2]=i[19434],i[A+28>>2]=r,r=16,t=i[19433],i[A+16>>2]=i[19432],i[A+20>>2]=t,t=i[19431],i[A+8>>2]=i[19430],i[A+12>>2]=t,t=i[19429],i[A>>2]=i[19428],i[A+4>>2]=t;break k}if((w|0)==3&(r|0)!=3)break f;r=k-r|0,l0(A,(r<<10)+v|0,h),r=i[_+(r<<2)>>2],i[t>>2]=r;break k}n:{if(w>>>0<2){t=8,r=16;break n}if(r=_1(f),r-248>>>0<4294967041)break A;t=r+8|0,i[_+(k<<2)>>2]=t,r=t}for(u=0;;){if(o=_1(f),o+128>>>0>255)break A;if(t=t+o|0,l[A+u|0]=t,u=u+1|0,(h|0)==(u|0))break}}k:switch(w|0){case 1:for(r=(k<<6)+Z|0,u=0,t=i[i[11334]+12>>2];n=t+(u<<1)|0,l[(r+(s[n+1|0]<<3)|0)+s[n|0]|0]=s[A+u|0],n=u|1,o=t+(n<<1)|0,l[(r+(s[o+1|0]<<3)|0)+s[o|0]|0]=s[A+n|0],u=u+2|0,(u|0)!=64;);break r;case 2:for(n=(k<<8)+C|0,W=n+1|0,t=0,E=i[i[11334]+12>>2];u=(t<<1)+E|0,o=s[A+t|0],l[(n+(s[u|0]<<1)|0)+(s[u+1|0]<<5)|0]=o,l[((s[u|0]<<1)+W|0)+(s[u+1|0]<<5)|0]=o,l[((n+(s[u|0]<<1)|0)+(s[u+1|0]<<5)|0)+16|0]=o,l[(((s[u|0]<<1)+W|0)+(s[u+1|0]<<5)|0)+16|0]=o,t=t+1|0,(t|0)!=64;);l[n|0]=r;break r;case 3:break k;case 0:break e;default:break r}t=n+I|0,L4(t,A,3),l[t|0]=r;break r}C0(16661,13927,934,2960),P()}f=8;break i}L4((k<<4)+e|0,A,0)}if(k=k+y|0,!(k>>>0<6))break}if(w=w+1|0,(w|0)==4)break}for(u=e+96|0,w=e- -64|0,_=e+32|0,f=0,t=i[i[11334]+12>>2];r=t+(f<<1)|0,n=s[r+1|0],r=s[r|0],A=((n<<7)+(r<<2)|0)+3040|0,k=A+e|0,r=m(s[(r+((n<<3)+Z|0)|0)- -64|0],16843009),l[k|0]=r,n=r>>>8|0,l[k+1|0]=n,o=r>>>16|0,l[k+2|0]=o,h=r>>>24|0,l[k+3|0]=h,k=A+_|0,l[k|0]=r,l[k+1|0]=n,l[k+2|0]=o,l[k+3|0]=h,k=A+w|0,l[k|0]=r,l[k+1|0]=n,l[k+2|0]=o,l[k+3|0]=h,A=A+u|0,l[A|0]=r,l[A+1|0]=n,l[A+2|0]=o,l[A+3|0]=h,f=f+1|0,(f|0)!=64;);for(l[e+3040|0]=s[e+160|0],u=e+96|0,w=e- -64|0,_=e+32|0,f=0;r=t+(f<<1)|0,n=s[r+1|0],r=s[r|0],A=((n<<7)+(r<<2)|0)+4064|0,k=A+e|0,r=m(s[(r+((n<<3)+Z|0)|0)+128|0],16843009),l[k|0]=r,n=r>>>8|0,l[k+1|0]=n,o=r>>>16|0,l[k+2|0]=o,h=r>>>24|0,l[k+3|0]=h,k=A+_|0,l[k|0]=r,l[k+1|0]=n,l[k+2|0]=o,l[k+3|0]=h,k=A+w|0,l[k|0]=r,l[k+1|0]=n,l[k+2|0]=o,l[k+3|0]=h,A=A+u|0,l[A|0]=r,l[A+1|0]=n,l[A+2|0]=o,l[A+3|0]=h,f=f+1|0,(f|0)!=64;);for(l[e+4064|0]=s[e+224|0],u=e+96|0,w=e- -64|0,_=e+32|0,f=0;r=t+(f<<1)|0,n=s[r+1|0],r=s[r|0],A=((n<<7)+(r<<2)|0)+6112|0,k=A+e|0,r=m(s[(r+((n<<3)+Z|0)|0)+256|0],16843009),l[k|0]=r,n=r>>>8|0,l[k+1|0]=n,o=r>>>16|0,l[k+2|0]=o,h=r>>>24|0,l[k+3|0]=h,k=A+_|0,l[k|0]=r,l[k+1|0]=n,l[k+2|0]=o,l[k+3|0]=h,k=A+w|0,l[k|0]=r,l[k+1|0]=n,l[k+2|0]=o,l[k+3|0]=h,A=A+u|0,l[A|0]=r,l[A+1|0]=n,l[A+2|0]=o,l[A+3|0]=h,f=f+1|0,(f|0)!=64;);for(l[e+6112|0]=s[e+352|0],u=e+96|0,w=e- -64|0,_=e+32|0,f=0;r=t+(f<<1)|0,n=s[r+1|0],r=s[r|0],A=((n<<7)+(r<<2)|0)+7136|0,k=A+e|0,r=m(s[(r+((n<<3)+Z|0)|0)+320|0],16843009),l[k|0]=r,n=r>>>8|0,l[k+1|0]=n,o=r>>>16|0,l[k+2|0]=o,h=r>>>24|0,l[k+3|0]=h,k=A+_|0,l[k|0]=r,l[k+1|0]=n,l[k+2|0]=o,l[k+3|0]=h,k=A+w|0,l[k|0]=r,l[k+1|0]=n,l[k+2|0]=o,l[k+3|0]=h,A=A+u|0,l[A|0]=r,l[A+1|0]=n,l[A+2|0]=o,l[A+3|0]=h,f=f+1|0,(f|0)!=64;);l[e+7136|0]=s[e+416|0],f=0}return B=v+6240|0,f}function th(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=Y(0),v=0,Z=0,p=0,W=0,C=Y(0),I=0,y=0,E=0,J=0,R=Y(0),D=Y(0),z=0,H=0,a=0,S=0,q=0,d=0,A0=Y(0),f0=Y(0),n0=Y(0),h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=Y(0),Y0=Y(0),S0=0,c0=0,r2=Y(0),n2=Y(0);e=B+-64|0,B=e,A=i[r>>2],v=i[A+28>>2],p=i[A+24>>2],h=U0(A,10),t=i[i[r>>2]+36>>2],A=U(136),i[A>>2]=72792,i[A+4>>2]=0,i[A+8>>2]=0,B0(A+20|0,0,104),n=i[A+4>>2],o=n+1|0,i[A+4>>2]=o,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,u=A- -64|0,i[u>>2]=0,i[u+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,u=A+12|0,i[A+12>>2]=u,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=n,i[A+16>>2]=A,o||(V[i[i[A>>2]+8>>2]](A),g(A)),i[u+36>>2]=1,i[u+32>>2]=0,i[u+28>>2]=v,i[u+24>>2]=p,n=(v+1|0)/2|0,o=(p+1|0)/2|0;i:{r:{if(!J0(u,0,p,v,h)||!J0(u,1,o,n,h)||!J0(u,2,o,n,h))break r;e:{A:switch(o=t-13|0,o|0){case 0:case 2:break A;default:break e}if(!J0(u,6,p,v,h))break r}n=0,i[e+60>>2]=0,i[e+56>>2]=0,i[e+52>>2]=0,i[e+48>>2]=0,i[e+44>>2]=0,j=v0(i[r>>2],10,e+60|0),w=v0(u,0,e+56|0),S0=v0(u,1,e+52|0),c0=v0(u,2,e+48|0);e:switch(o|0){case 0:case 2:J=v0(u,6,e+44|0),n=i[e+44>>2]/2|0;break;default:break e}i[e+44>>2]=n,i[e+56>>2]=i[e+56>>2]/2,i[e+52>>2]=i[e+52>>2]/2,i[e+48>>2]=i[e+48>>2]/2,L=s[k+26|0],r=i[i[r>>2]+36>>2],Kr(e+4|0,Q[k+24>>1],Q[k+20>>1]);e:{if((v|0)<=0)break e;if(z=(t&-3)==13?8:6,W=-1<>2],A0=Z0[e+16>>2],f0=Z0[e+12>>2],n0=Z0[e+8>>2],h0=i[e+60>>2],k=0;A:{f:switch(t-13|0){case 0:case 2:for(I=o^7,Z=o|6;;){for(y=m(i[e+44>>2],k),E=m(k,h0)+j|0,I0=w+(m(k,d)<<1)|0,n=0;;){Q0=(n<<1)+I0|0,t=m(n,z)+E|0,_=Y(Y(Y((s[t+p0|0]<<8|s[t+q|0])>>>0)*A0)+Y(Y(Y((s[t+a|0]|s[t+o|0]<<8)>>>0)*n0)+Y(f0*Y((s[t+X0|0]|s[t+G0|0]<<8)>>>0)))),_=Y((L&1?_:Y(Y(_*Y(.8554700016975403))+R))+Y(.5));k:{if(Y(d0(_))>1]=(r|0)>=0?(r|0)<(W|0)?r:W:0,X[(n+y<<1)+J>>1]=s[t+I|0]|s[t+Z|0]<<8,n=n+1|0,(p|0)==(n|0))break}if(k=k+1|0,(v|0)==(k|0))break}break A;default:break f}for(;;){for(t=m(k,h0)+j|0,J=w+(m(k,d)<<1)|0,n=0;;){I=J+(n<<1)|0,r=t+m(n,z)|0,_=Y(Y(Y((s[r+p0|0]<<8|s[r+q|0])>>>0)*A0)+Y(Y(Y((s[r+a|0]|s[r+o|0]<<8)>>>0)*n0)+Y(f0*Y((s[r+X0|0]|s[r+G0|0]<<8)>>>0)))),_=Y((L&1?_:Y(Y(_*Y(.8554700016975403))+R))+Y(.5));f:{if(Y(d0(_))>1]=(r|0)>=0?(r|0)<(W|0)?r:W:0,n=n+1|0,(p|0)==(n|0))break}if(k=k+1|0,(v|0)==(k|0))break}}if((v|0)<=0)break e}if(S)break e;for(q=(H|0)==14?4:5,R=Y((1<>>0),h=0,d=i[e+48>>2],h0=i[e+52>>2],A0=Z0[e+40>>2],f0=Z0[e+36>>2],n0=Z0[e+32>>2],_=Z0[e+28>>2],r2=Z0[e+24>>2],n2=Z0[e+20>>2];;){for(r=h>>>1|0,J=(m(r,d)<<1)+c0|0,H=(m(r,h0)<<1)+S0|0,S=(h|1)<(v|0),k=0;;){I0=k+H|0,Z=i[e+60>>2],n=(m(Z,h)+j|0)+m(k,z)|0,r=n+p0|0,t=(k|1)<(p|0)?z:0,y=r+t|0,w=n+q|0,E=w+t|0,Q0=(s[y|0]<<8|s[E|0])+(s[w|0]|s[r|0]<<8)|0,I=r,r=S?Z:0,C=Y(Y((Q0+(s[I+r|0]<<8|s[r+w|0])|0)+(s[r+E|0]|s[r+y|0]<<8)>>>0)*Y(.25)),w=n+(t|a)|0,Z=n+(t|o)|0,y=n+a|0,E=n+o|0,F0=Y(Y((((s[w|0]|s[Z|0]<<8)+(s[y|0]|s[E|0]<<8)|0)+(s[r+y|0]|s[r+E|0]<<8)|0)+(s[r+w|0]|s[r+Z|0]<<8)>>>0)*Y(.25)),w=n+X0|0,Z=w+t|0,n=n+G0|0,t=n+t|0,Y0=Y(Y((((s[Z|0]|s[t|0]<<8)+(s[w|0]|s[n|0]<<8)|0)+(s[r+w|0]|s[r+n|0]<<8)|0)+(s[r+Z|0]|s[r+t|0]<<8)>>>0)*Y(.25)),D=Y(Y(C*_)+Y(Y(F0*n2)+Y(r2*Y0))),n=L&1,D=Y(Y((n?D:Y(D*Y(.875)))+R)+Y(.5));A:{if(Y(d0(D))>1]=(r|0)>=0?(r|0)<(W|0)?r:W:0,I=k+J|0,C=Y(Y(C*A0)+Y(Y(F0*n0)+Y(Y0*f0))),C=Y(Y((n?C:Y(C*Y(.875)))+R)+Y(.5));A:{if(Y(d0(C))>1]=(r|0)>=0?(r|0)<(W|0)?r:W:0,k=k+2|0,!((p|0)>(k|0)))break}if(h=h+2|0,!((v|0)>(h|0)))break}}i[f+4>>2]=A,i[f>>2]=u;break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break i;V[i[i[A>>2]+8>>2]](A),g(A)}B=e- -64|0}function XA(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0,c0=0,r2=0,n2=0,s2=0,W2=0,y2=0,x2=0,T2=0,O2=0,q2=0,b2=0,e1=0,A1=0,h1=0,B1=0,p1=0,W1=0,X1=0,N1=0;i:{r:{_=i[f+276>>2],G0=(A|0)>(_|0)?_:A;e:{if((G0|0)<=(r|0)||(A=i[f+272>>2],I0=(A|0)<(k|0)?A:k,(I0|0)<=0))break e;for(S=i[f+124>>2],j=i[S+16856>>2],T2=j<<(e^1),L=i[S+16852>>2],O2=L<>2]^-1,Z=i[f+44>>2],q=m(Z,3),d=Z<<1,A1=3-Z|0,h1=2-Z|0,B1=1-Z|0,p1=0-Z|0;;){for(Q0=r<>2]+((h0|0)/4|0)|0)+m(i[f+272>>2],W1)|0]&3,A>>>0>1)for(X1=n0-Z|0,Y0=h0-1|0,t=1,N1=(A<<1)-2|0,A=1;;){p=i[(A<<2)+q2>>2],k=m(i[f+44>>2],Q0),_=(p+k|0)+n0|0;A:{if(!e){u=k+X1|0,A=u+p|0,E=A+3|0,k=p+(k+n0|0)|0,J=k+3|0,R=k+2|0,D=k+1|0,p=p+(u-Z|0)|0,w=p+3|0,v=p+2|0,W=p+1|0,I=k+Z|0,y=I+3|0,z=I+2|0,H=I+1|0,a=A+2|0,h=A+1|0;break A}J=_+q|0,R=_+d|0,D=_+Z|0,p=_-2|0,w=q+p|0,I=_+1|0,y=q+I|0,v=p+d|0,z=I+d|0,W=Z+p|0,H=Z+I|0,A=_-1|0,E=q+A|0,k=_,a=A+d|0,h=A+Z|0}if(n=i[f+168>>2],p0=h0>>n,(p0|0)<0||(u=i[f+172>>2],(u|0)<=(p0|0)))break r;if(X0=A0>>n,(X0|0)<0||(C=i[f+176>>2],(C|0)<=(X0|0)))break i;S0=s[w|0],c0=s[v|0],r2=s[W|0],n2=s[p|0],E=s[E|0],w=s[a|0],h=s[h|0],v=s[A|0],s2=s[y|0],W2=s[z|0],y2=s[H|0],x2=s[I|0],I=s[J|0],J=s[R|0],R=s[D|0],D=s[k|0],p=t,k=i[i[f+132>>2]+(t?32:36)>>2],z=i[f+160>>2],H=z+m(p0,3)|0,a=m(m(u,X0),3),W=H+a|0,t=l[W+2|0];A:{if(!e){if(A=F0>>n,(A|0)<0|(A|0)>=(C|0))break i;A=(H+m(m(A,u),3)|0)+2|0;break A}if(A=Y0>>n,(A|0)<0|A>>>0>=u>>>0)break r;A=(a+(z+m(A,3)|0)|0)+2|0}A=k+((t+l[A|0]|0)+1>>1)|0;A:{if(i[S+16848>>2]!=1){A=(A|0)>=51?51:A;break A}if((A|0)<30)break A;if(A>>>0<=42){A=i[(A<<2)+45912>>2];break A}A=A-6|0}if(t=i[f+148>>2],k=h0>>t,(k|0)<0||(y=i[f+152>>2],(y|0)<=(k|0)))break r;if(t=A0>>t,(t|0)<0|(t|0)>=i[f+156>>2])break i;A=i[i[i[f+52>>2]+(Q[((i[f+140>>2]+m(k,24)|0)+m(m(t,y),24)|0)+2>>1]<<2)>>2]+768>>2]+(A+N1|0)|0,A=(A|0)>=53?53:A,A=s[((A|0)>0?A:0)+43024|0]<>2]-8,y=s[S+8812|0];A:{f:{if(!e){if(t=F0>>n,y){if((t|0)<0|(t|0)>=(C|0))break i;n=!(s[(H+m(m(t,u),3)|0)+1|0]&4)}else n=1;if((t|0)<0|(t|0)>=(C|0))break i;if(k=0-A|0,C=(((D-v<<2)+n2|0)-x2|0)+4>>3,C=(k|0)>(C|0)?k:(A|0)>(C|0)?C:A,W=s[W|0]|s[W+1|0]<<8,t=n&!(s[(H+m(m(t,u),3)|0)+1|0]&8),t&&(u=v+C|0,l[_+p1|0]=(u|0)>=0?(o|0)>(u|0)?u:o:0),u=!(W&2048)&(!y|!(W&1024)),u&&(n=D-C|0,l[_|0]=(n|0)>=0?(n|0)<(o|0)?n:o:0),n=(((R-h<<2)+r2|0)-y2|0)+4>>3,n=(k|0)>(n|0)?k:(A|0)>(n|0)?n:A,t&&(h=n+h|0,l[_+B1|0]=(h|0)>=0?(o|0)>(h|0)?h:o:0),u&&(n=R-n|0,l[_+1|0]=(n|0)>=0?(n|0)<(o|0)?n:o:0),n=(((J-w<<2)+c0|0)-W2|0)+4>>3,n=(k|0)>(n|0)?k:(A|0)>(n|0)?n:A,t&&(w=n+w|0,l[_+h1|0]=(w|0)>=0?(o|0)>(w|0)?w:o:0),u&&(n=J-n|0,l[_+2|0]=(n|0)>=0?(n|0)<(o|0)?n:o:0),n=(((I-E<<2)+S0|0)-s2|0)+4>>3,A=(k|0)>(n|0)?k:(A|0)>(n|0)?n:A,t&&(k=A+E|0,l[_+A1|0]=(k|0)>=0?(k|0)<(o|0)?k:o:0),!u)break A;k=3,A=I-A|0;break f}if(t=Y0>>n,y){if((t|0)<0|t>>>0>=u>>>0)break r;n=!(s[(a+(z+m(t,3)|0)|0)+1|0]&4)}else n=1;if((t|0)<0|t>>>0>=u>>>0)break r;if(k=0-A|0,u=(((D-v<<2)+n2|0)-x2|0)+4>>3,C=(k|0)>(u|0)?k:(A|0)>(u|0)?u:A,W=s[W|0]|s[W+1|0]<<8,u=_-1|0,t=n&!(s[(a+(z+m(t,3)|0)|0)+1|0]&8),t&&(n=v+C|0,l[u|0]=(n|0)>=0?(n|0)<(o|0)?n:o:0),n=!(W&2048)&(!y|!(W&1024)),n&&(v=D-C|0,l[_|0]=(v|0)>=0?(o|0)>(v|0)?v:o:0),v=(((R-h<<2)+r2|0)-y2|0)+4>>3,v=(k|0)>(v|0)?k:(A|0)>(v|0)?v:A,t&&(h=h+v|0,l[u+Z|0]=(h|0)>=0?(o|0)>(h|0)?h:o:0),n&&(h=R-v|0,l[_+Z|0]=(h|0)>=0?(o|0)>(h|0)?h:o:0),h=(((J-w<<2)+c0|0)-W2|0)+4>>3,h=(k|0)>(h|0)?k:(A|0)>(h|0)?h:A,t&&(w=h+w|0,l[u+d|0]=(w|0)>=0?(o|0)>(w|0)?w:o:0),n&&(w=J-h|0,l[_+d|0]=(w|0)>=0?(o|0)>(w|0)?w:o:0),w=(((I-E<<2)+S0|0)-s2|0)+4>>3,A=(k|0)>(w|0)?k:(A|0)>(w|0)?w:A,t&&(k=A+E|0,l[u+q|0]=(k|0)>=0?(k|0)<(o|0)?k:o:0),!n)break A;k=q,A=I-A|0}l[k+_|0]=(A|0)>=0?(A|0)<(o|0)?A:o:0}if(A=2,t=0,!p)break}if(f0=f0+O2|0,!((I0|0)>(f0|0)))break}if(r=r+T2|0,!((G0|0)>(r|0)))break}}return}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function oh(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;h=B-16|0,B=h,n=(A|0)/8|0,t=i[r>>2],o=i[r+4>>2]-t|0,u=i[k>>2];i:{if(n>>>0>o-u>>>0){if(e=U(40),i[h+4>>2]=e,i[h+8>>2]=39,i[h+12>>2]=-2147483608,r=s[6972]|s[6973]<<8|(s[6974]<<16|s[6975]<<24),A=s[6968]|s[6969]<<8|(s[6970]<<16|s[6971]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+39|0]=0,r=s[7003]|s[7004]<<8|(s[7005]<<16|s[7006]<<24),A=s[6999]|s[7e3]<<8|(s[7001]<<16|s[7002]<<24),l[e+31|0]=A,l[e+32|0]=A>>>8,l[e+33|0]=A>>>16,l[e+34|0]=A>>>24,l[e+35|0]=r,l[e+36|0]=r>>>8,l[e+37|0]=r>>>16,l[e+38|0]=r>>>24,r=s[6996]|s[6997]<<8|(s[6998]<<16|s[6999]<<24),A=s[6992]|s[6993]<<8|(s[6994]<<16|s[6995]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[6988]|s[6989]<<8|(s[6990]<<16|s[6991]<<24),A=s[6984]|s[6985]<<8|(s[6986]<<16|s[6987]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[6980]|s[6981]<<8|(s[6982]<<16|s[6983]<<24),A=s[6976]|s[6977]<<8|(s[6978]<<16|s[6979]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,136,h+4|0),l[h+15|0]>=0)break i;G(i[h+4>>2]);break i}t=t+u|0,w=s[t|0],_=s[t+1|0];r:{if((A|0)==32){_=s[t+3|0]|(_<<16|w<<24|s[t+2|0]<<8),t=4;break r}_=_|w<<8,t=2}if(t=t+u|0,i[k>>2]=t,u=o-t|0,t=q0(n,n>>31,_,0),n=w0<<1|t>>>31,t=t<<1,!n&t>>>0<=u>>>0){r:{if(!_)break r;W=(A|0)!=32;e:{for(;;){A=i[k>>2],n=A+i[r>>2]|0,t=s[n|0],u=s[n+1|0];A:{if(!W){w=s[n+3|0],o=s[n+2|0],n=A+4|0,i[k>>2]=n,n=n+i[r>>2]|0,n=s[n|0]|s[n+1|0]<<8|(s[n+2|0]<<16|s[n+3|0]<<24),n=n<<24|(n&65280)<<8|(n>>>8&65280|n>>>24),u=u<<16|t<<24|o<<8|w,A=A+8|0;break A}n=A+2|0,i[k>>2]=n,u=(u<<16|t<<24)>>16,n=n+i[r>>2]|0,n=(s[n+1|0]<<16|s[n|0]<<24)>>16,A=A+4|0}i[k>>2]=A;A:{A=i[e+12>>2],o=i[e+16>>2];f:{if(A>>>0>>0){i[A>>2]=u,i[A+4>>2]=n,u=A+8|0;break f}if(w=i[e+8>>2],Z=A-w>>3,t=Z+1|0,t>>>0>=536870912)break A;if(o=o-w|0,v=o>>2,v=o>>>0>=2147483640?536870911:t>>>0>>0?v:t,v){if(v>>>0>=536870912)break e;t=U(v<<3)}else t=0;if(o=t+(Z<<3)|0,i[o>>2]=u,i[o+4>>2]=n,u=o+8|0,(A|0)!=(w|0)){for(;A=A-8|0,Z=i[A+4>>2],o=o-8|0,n=o,i[n>>2]=i[A>>2],i[n+4>>2]=Z,(A|0)!=(w|0););w=i[e+8>>2]}if(i[e+16>>2]=t+(v<<3),i[e+12>>2]=u,i[e+8>>2]=o,!w)break f;G(w)}if(i[e+12>>2]=u,p=p+1|0,(p|0)!=(_|0))continue;break r}break}y0(),P()}_2(),P()}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567]);break i}if(e=U(40),i[h+4>>2]=e,i[h+8>>2]=39,i[h+12>>2]=-2147483608,r=s[6972]|s[6973]<<8|(s[6974]<<16|s[6975]<<24),A=s[6968]|s[6969]<<8|(s[6970]<<16|s[6971]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+39|0]=0,r=s[7003]|s[7004]<<8|(s[7005]<<16|s[7006]<<24),A=s[6999]|s[7e3]<<8|(s[7001]<<16|s[7002]<<24),l[e+31|0]=A,l[e+32|0]=A>>>8,l[e+33|0]=A>>>16,l[e+34|0]=A>>>24,l[e+35|0]=r,l[e+36|0]=r>>>8,l[e+37|0]=r>>>16,l[e+38|0]=r>>>24,r=s[6996]|s[6997]<<8|(s[6998]<<16|s[6999]<<24),A=s[6992]|s[6993]<<8|(s[6994]<<16|s[6995]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[6988]|s[6989]<<8|(s[6990]<<16|s[6991]<<24),A=s[6984]|s[6985]<<8|(s[6986]<<16|s[6987]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[6980]|s[6981]<<8|(s[6982]<<16|s[6983]<<24),A=s[6976]|s[6977]<<8|(s[6978]<<16|s[6979]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,136,h+4|0),l[h+15|0]>=0)break i;G(i[h+4>>2])}B=h+16|0}function GA(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0;i:{r:{n=i[f+276>>2],D=(A|0)>(n|0)?n:A;e:{if((D|0)<=(r|0)||(A=i[f+272>>2],z=(A|0)<(k|0)?A:k,(z|0)<=0))break e;for(S=e?16:32,q=e?80:160,d=e?1:2,A0=e?2:1,f0=e-1|0,n0=0-e|0;;){for(I=r<<2,y=f0+I|0,H=I>>2,A=0;;){A:{f:{k:{if(k=A<<2,a=k>>2,_=(a+i[f+260>>2]|0)+m(i[f+272>>2],H)|0,t=s[_|0],t&q){if(n=k+n0|0,e=i[f+168>>2],u=n>>e,(u|0)<0||(o=i[f+172>>2],(o|0)<=(u|0)))break r;if(h=y>>e,(h|0)<0||(w=i[f+176>>2],(w|0)<=(h|0)))break i;if(v=k>>e,(v|0)<0|o>>>0<=v>>>0)break r;if(Z=I>>e,(Z|0)<0|(w|0)<=(Z|0))break i;e=2,w=m(u,3),u=i[f+160>>2],h=(w+u|0)+m(m(o,h),3)|0;n:{if(!((s[h|0]|s[h+1|0]<<8)&768)||(o=(u+m(v,3)|0)+m(m(o,Z),3)|0,!((s[o|0]|s[o+1|0]<<8)&768)))break n;if(t&S){if(o=i[f+248>>2],h=k>>o,(h|0)<0||(u=i[f+252>>2],(u|0)<=(h|0)))break r;if(v=I>>o,(v|0)<0||(Z=i[f+256>>2],(Z|0)<=(v|0)))break i;if(e=1,w=i[f+240>>2],l[(w+h|0)+m(u,v)|0]<0)break n;if(h=n>>o,(h|0)<0|u>>>0<=h>>>0)break r;if(o=y>>o,(o|0)<0|(o|0)>=(Z|0))break i;if(l[(h+w|0)+m(o,u)|0]<0)break n}if(e=i[f+188>>2],h=n>>e,(h|0)<0||(o=i[f+192>>2],(o|0)<=(h|0)))break r;if(v=y>>e,(v|0)<0||(u=i[f+196>>2],(u|0)<=(v|0)))break i;if(Z=k>>e,(Z|0)<0|o>>>0<=Z>>>0)break r;if(w=I>>e,(w|0)<0|(u|0)<=(w|0))break i;if(e=n,n=i[f+148>>2],p=e>>n,(p|0)<0||(u=i[f+152>>2],(u|0)<=(p|0)))break r;if(W=y>>n,(W|0)<0||(E=i[f+156>>2],(E|0)<=(W|0)))break i;if(e=0,C=i[f+52>>2],J=i[f+56>>2]-C>>2,R=m(p,24),p=i[f+140>>2],W=Q[((R+p|0)+m(m(u,W),24)|0)+2>>1],J>>>0>W>>>0&&(e=i[C+(W<<2)>>2]),k=k>>n,(k|0)<0|k>>>0>=u>>>0)break r;if(n=I>>n,(n|0)<0|(n|0)>=(E|0))break i;if(k=Q[((p+m(k,24)|0)+m(m(n,u),24)|0)+2>>1],k>>>0>=J>>>0){e=0;break n}if(!e){e=0;break n}if(p=i[C+(k<<2)>>2],!p){e=0;break n}if(n=i[f+180>>2],k=(n+m(h,12)|0)+m(m(o,v),12)|0,h=l[k+2|0],(h|0)>16||(W=l[k+3|0],(W|0)>16)||(n=(n+m(Z,12)|0)+m(m(o,w),12)|0,w=l[n+2|0],(w|0)>16)||(C=l[n+3|0],(C|0)>16))break f;if(u=-1,t=-1,Z=s[k|0],t=Z?i[((h<<2)+e|0)+924>>2]:t,v=s[k+1|0],u=v?i[((W<<2)+e|0)+988>>2]:u,_=-1,o=-1,h=s[n|0],o=h?i[(p+(w<<2)|0)+924>>2]:o,w=s[n+1|0],_=w?i[(p+(C<<2)|0)+988>>2]:_,!((t|0)==(o|0)&(_|0)==(u|0))&&(e=1,(t|0)!=(_|0)|(o|0)!=(u|0)))break n;e=Q[n+8>>1],p=Q[n+10>>1],W=Q[n+4>>1],n=Q[n+6>>1],C=Q[k+8>>1],E=Q[k+10>>1],J=Q[k+4>>1],R=Q[k+6>>1],(v+Z|0)!=(h+w|0)&&(v2(i[f+112>>2]+4|0,1013,0),l[f+312|0]=3),e=w?e:0,k=w?p:0,w=h?W:0,n=h?n:0,h=v?C:0,v=v?E:0,p=Z?J:0,Z=Z?R:0;t:{if((t|0)!=(u|0)){if(u=p<<16>>16,(t|0)!=(o|0)){if(t=u-(e<<16>>16)|0,e=t>>31,(e^t)-e>>>0>3||(k=(Z<<16>>16)-(k<<16>>16)|0,e=k>>31,(e^k)-e>>>0>3)||(k=(h<<16>>16)-(w<<16>>16)|0,e=k>>31,(e^k)-e>>>0>3)||(e=0,n=(v<<16>>16)-(n<<16>>16)|0,k=n>>31,(k^n)-k>>>0>=4))break t;break n}if(o=u-(w<<16>>16)|0,t=o>>31,(t^o)-t>>>0>3||(t=(Z<<16>>16)-(n<<16>>16)|0,n=t>>31,(n^t)-n>>>0>3)||(n=(h<<16>>16)-(e<<16>>16)|0,e=n>>31,(e^n)-e>>>0>3)||(e=0,n=(v<<16>>16)-(k<<16>>16)|0,k=n>>31,(k^n)-k>>>0>=4))break t;break n}if((o|0)!=(_|0))break k;o=p<<16>>16,u=w<<16>>16,_=o-u|0,t=_>>31;o:{if((t^_)-t>>>0>3||(_=(Z<<16>>16)-(n<<16>>16)|0,t=_>>31,(t^_)-t>>>0>3)||(_=(h<<16>>16)-(e<<16>>16)|0,t=_>>31,(t^_)-t>>>0>3)||(_=(v<<16>>16)-(k<<16>>16)|0,t=_>>31,(t^_)-t>>>0>=4))break o;e=0;break n}if(t=o-(e<<16>>16)|0,e=t>>31,(e^t)-e>>>0>3||(k=(Z<<16>>16)-(k<<16>>16)|0,e=k>>31,(e^k)-e>>>0>3)||(k=(h<<16>>16)-u|0,e=k>>31,(e^k)-e>>>0>3))break t;if(e=0,n=(v<<16>>16)-(n<<16>>16)|0,k=n>>31,(k^n)-k>>>0<4)break n}e=1}k=(i[f+260>>2]+a|0)+m(i[f+272>>2],H)|0,l[k|0]=s[k|0]&252|e;break A}l[_|0]=t&252;break A}C0(16975,14016,355,8358),P()}l[_|0]=t&252}if(A=A+A0|0,!((z|0)>(A|0)))break}if(r=r+d|0,!((D|0)>(r|0)))break}}return}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function lh(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0;o=B-16|0,B=o,i[o+12>>2]=e,i[k>>2]=0,u=i[A+28>>2],i[o>>2]=u,(u|0)!=100008&&(i[u+4>>2]=i[u+4>>2]+1),u=x0(o,100192),O0(o);i:{r:{e:{A:switch(t-65|0){case 0:case 32:mt(f,n+24|0,o+12|0,r,k,u);break r;case 1:case 33:case 39:st(f,n+16|0,o+12|0,r,k,u);break r;case 34:e=V[i[i[f+8>>2]+12>>2]](f+8|0)|0,t=f,h=i[o+12>>2],s[e+11|0]>>>7|0?f=i[e>>2]:f=e,u=f,s[e+11|0]>>>7|0?f=i[e>>2]:f=e,s[e+11|0]>>>7|0?e=i[e+4>>2]:e=s[e+11|0]&127,w=o,_=B8(t,h,r,A,k,n,u,f+e|0),i[w+12>>2]=_;break r;case 35:case 36:f=q4(o+12|0,r,k,u,2),e=i[k>>2];f:{if(!(f-1>>>0>30|e&4)){i[n+12>>2]=f;break f}i[k>>2]=e|4}break r;case 3:i[o>>2]=623865125,i[o+4>>2]=2032480100,w=o,_=B8(f,e,r,A,k,n,o,o+8|0),i[w+12>>2]=_;break r;case 5:i[o>>2]=623728933,i[o+4>>2]=1680158061,w=o,_=B8(f,e,r,A,k,n,o,o+8|0),i[w+12>>2]=_;break r;case 7:f=q4(o+12|0,r,k,u,2),e=i[k>>2];f:{if(!((f|0)>23|e&4)){i[n+8>>2]=f;break f}i[k>>2]=e|4}break r;case 8:f=q4(o+12|0,r,k,u,2),e=i[k>>2];f:{if(!(f-1>>>0>11|e&4)){i[n+8>>2]=f;break f}i[k>>2]=e|4}break r;case 41:f=q4(o+12|0,r,k,u,3),e=i[k>>2];f:{if(!((f|0)>365|e&4)){i[n+28>>2]=f;break f}i[k>>2]=e|4}break r;case 44:e=q4(o+12|0,r,k,u,2)-1|0,f=i[k>>2];f:{if(!(e>>>0>11|f&4)){i[n+16>>2]=e;break f}i[k>>2]=f|4}break r;case 12:f=q4(o+12|0,r,k,u,2),e=i[k>>2];f:{if(!((f|0)>59|e&4)){i[n+4>>2]=f;break f}i[k>>2]=e|4}break r;case 45:case 51:for(f=o+12|0,e=B-16|0,B=e,i[e+12>>2]=r;;){f:{if(J2(f,e+12|0))break f;r=i[f>>2],A=i[r+12>>2];k:{if((A|0)==i[r+16>>2]){r=V[i[i[r>>2]+36>>2]](r)|0;break k}r=s[A|0]}if(r=r<<24>>24,(r|0)>=0?r=i[i[u+8>>2]+(r<<2)>>2]&1:r=0,!r)break f;E1(f);continue}break}J2(f,e+12|0)&&(i[k>>2]=i[k>>2]|2),B=e+16|0;break r;case 47:t=o+12|0,e=V[i[i[f+8>>2]+8>>2]](f+8|0)|0;f:{if(s[e+11|0]>>>7|0){f=i[e+4>>2];break f}f=s[e+11|0]&127}s[e+23|0]>>>7|0?A=i[e+16>>2]:A=s[e+23|0]&127;f:{if((f|0)==(0-A|0)){i[k>>2]=i[k>>2]|4;break f}if(r=Nr(t,r,e,e+24|0,u,k,0),f=i[n+8>>2],!((r|0)!=(e|0)|(f|0)!=12)){i[n+8>>2]=0;break f}(r-e|0)!=12|(f|0)>11||(i[n+8>>2]=f+12)}break r;case 49:t=s[60104]|s[60105]<<8|(s[60106]<<16|s[60107]<<24),l[o+7|0]=t,l[o+8|0]=t>>>8,l[o+9|0]=t>>>16,l[o+10|0]=t>>>24,t=s[60101]|s[60102]<<8|(s[60103]<<16|s[60104]<<24),i[o>>2]=s[60097]|s[60098]<<8|(s[60099]<<16|s[60100]<<24),i[o+4>>2]=t,w=o,_=B8(f,e,r,A,k,n,o,o+11|0),i[w+12>>2]=_;break r;case 17:l[o+4|0]=s[60112],i[o>>2]=s[60108]|s[60109]<<8|(s[60110]<<16|s[60111]<<24),w=o,_=B8(f,e,r,A,k,n,o,o+5|0),i[w+12>>2]=_;break r;case 18:f=q4(o+12|0,r,k,u,2),e=i[k>>2];f:{if(!((f|0)>60|e&4)){i[n>>2]=f;break f}i[k>>2]=e|4}break r;case 19:i[o>>2]=624576549,i[o+4>>2]=1394948685,w=o,_=B8(f,e,r,A,k,n,o,o+8|0),i[w+12>>2]=_;break r;case 54:f=q4(o+12|0,r,k,u,1),e=i[k>>2];f:{if(!((f|0)>6|e&4)){i[n+24>>2]=f;break f}i[k>>2]=e|4}break r;case 55:f=V[i[i[f>>2]+20>>2]](f,e,r,A,k,n)|0;break i;case 23:e=V[i[i[f+8>>2]+24>>2]](f+8|0)|0,t=f,h=i[o+12>>2],s[e+11|0]>>>7|0?f=i[e>>2]:f=e,u=f,s[e+11|0]>>>7|0?f=i[e>>2]:f=e,s[e+11|0]>>>7|0?e=i[e+4>>2]:e=s[e+11|0]&127,w=o,_=B8(t,h,r,A,k,n,u,f+e|0),i[w+12>>2]=_;break r;case 56:Et(n+20|0,o+12|0,r,k,u);break r;case 24:f=q4(o+12|0,r,k,u,4),s[k|0]&4||(i[n+20>>2]=f-1900);break r;default:if((t|0)==37)break e;break;case 2:case 4:case 6:case 9:case 10:case 11:case 13:case 14:case 15:case 16:case 20:case 21:case 22:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 37:case 38:case 40:case 42:case 43:case 46:case 48:case 50:case 52:case 53:break A}i[k>>2]=i[k>>2]|4;break r}f=B-16|0,B=f,i[f+12>>2]=r,r=o+12|0,n=f+12|0,e=6;e:{A:{if(J2(r,n))break A;e=i[r>>2],A=i[e+12>>2];f:{if((A|0)==i[e+16>>2]){A=V[i[i[e>>2]+36>>2]](e)|0;break f}A=s[A|0]}if(e=4,(V[i[i[u>>2]+36>>2]](u,A<<24>>24,0)|0)!=37)break A;if(!J2(E1(r),n))break e;e=2}i[k>>2]=e|i[k>>2]}B=f+16|0}f=i[o+12>>2]}return B=o+16|0,f|0}function uh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0;e=B-32|0,B=e,t=U0(i[r>>2],0),u=U0(i[r>>2],1),h=U0(i[r>>2],2),D=H2(i[r>>2],6),D&&(p=U0(i[r>>2],6));i:{if(!(!(t>>>0<9|u>>>0<9)&h>>>0>8)){i[f>>2]=0,i[f+4>>2]=0;break i}if(!((t|0)==(u|0)&(t|0)==(h|0))){i[f>>2]=0,i[f+4>>2]=0;break i}A=i[r>>2],W=i[A+48>>2],W&&(i[W+4>>2]=i[W+4>>2]+1,A=i[r>>2]),k=i[A+28>>2],o=i[A+24>>2],A=U(136),i[A>>2]=72792,i[A+4>>2]=0,i[A+8>>2]=0,B0(A+20|0,0,104),w=i[A+4>>2],C=w+1|0,i[A+4>>2]=C,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,n=A- -64|0,i[n>>2]=0,i[n+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,n=A+12|0,i[A+12>>2]=n,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=w,i[A+16>>2]=A,C||(V[i[i[A>>2]+8>>2]](A),g(A)),i[n+36>>2]=3,i[n+32>>2]=0,i[n+28>>2]=k,i[n+24>>2]=o;r:{e:{if(!J0(n,0,o,k,t)||!J0(n,1,o,k,u)||!J0(n,2,o,k,h)||D&&!J0(n,6,o,k,p))break e;u=0,i[e+28>>2]=0,i[e+24>>2]=0,i[e+20>>2]=0,i[e+16>>2]=0,i[e+12>>2]=0,i[e+8>>2]=0,i[e+4>>2]=0,i[e>>2]=0,z=v0(i[r>>2],0,e+28|0),C=v0(i[r>>2],1,e+24|0),y=v0(i[r>>2],2,e+20|0),H=v0(n,0,e+12|0),E=v0(n,1,e+8|0),J=v0(n,2,e+4|0),t=0,D?(f0=v0(i[r>>2],6,e+16|0),n0=v0(n,6,e),u=i[e>>2]/2|0,r=i[e+16>>2]/2|0):r=0,i[e+16>>2]=r,i[e>>2]=u,i[e+28>>2]=i[e+28>>2]/2,u=i[e+24>>2]/2|0,i[e+24>>2]=u,h=i[e+20>>2]/2|0,i[e+20>>2]=h,i[e+12>>2]=i[e+12>>2]/2,p=i[e+8>>2]/2|0,i[e+8>>2]=p,w=i[e+4>>2]/2|0,i[e+4>>2]=w;A:{if((k|0)<=0)break A;if(r=0,(k|0)!=1)for(_=k&2147483646;X[(m(r,p)<<1)+E>>1]=Q[C+(m(r,u)<<1)>>1],X[(m(r,w)<<1)+J>>1]=Q[(m(r,h)<<1)+y>>1],v=r|1,X[(m(v,p)<<1)+E>>1]=Q[C+(m(u,v)<<1)>>1],X[(m(v,w)<<1)+J>>1]=Q[(m(h,v)<<1)+y>>1],r=r+2|0,t=t+2|0,(_|0)!=(t|0););if(!(k&1))break A;X[(m(r,p)<<1)+E>>1]=Q[C+(m(r,u)<<1)>>1],X[(m(r,w)<<1)+J>>1]=Q[(m(r,h)<<1)+y>>1]}A:{f:{if(o&1)break f;if((k|0)<=0)break A;if(t=(o+y|0)-2|0,v=(o+C|0)-2|0,r=o<<1,_=(r+J|0)-2|0,R=(r+E|0)-2|0,r=0,(k|0)!=1)for(S=k&2147483646;X[R+(m(r,p)<<1)>>1]=Q[v+(m(r,u)<<1)>>1],X[_+(m(r,w)<<1)>>1]=Q[t+(m(r,h)<<1)>>1],I=r|1,X[R+(m(I,p)<<1)>>1]=Q[v+(m(u,I)<<1)>>1],X[_+(m(w,I)<<1)>>1]=Q[t+(m(h,I)<<1)>>1],r=r+2|0,a=a+2|0,(S|0)!=(a|0););if(!(k&1))break f;X[R+(m(r,p)<<1)>>1]=Q[v+(m(r,u)<<1)>>1],X[_+(m(r,w)<<1)>>1]=Q[t+(m(r,h)<<1)>>1]}if((k|0)<=0)break A;if((o|0)>=3){for(R=o-1|0,t=0;;){for(I=(m(t,w)<<1)+J|0,S=(m(t,p)<<1)+E|0,a=(m(t,h)<<1)+y|0,h0=C+(m(t,u)<<1)|0,r=1;Z=r&-2,_=Z+a|0,v=Q[_>>1],_=Q[_+2>>1],q=r<<1,d=S+q|0,Z=Z+h0|0,A0=Q[Z>>1],Z=Q[Z+2>>1],X[d>>1]=(m(A0,3)+Z|0)+2>>>2,X[d+2>>1]=(m(Z,3)+A0|0)+2>>>2,Z=I+q|0,X[Z+2>>1]=(v+m(_,3)|0)+2>>>2,X[Z>>1]=(_+m(v,3)|0)+2>>>2,r=r+2|0,(R|0)>(r|0););if(t=t+1|0,(t|0)==(k|0))break}if((k|0)<=0)break A}if(o=o<<1,D){for(r=0;l0((m(i[e+12>>2],r)<<1)+H|0,(m(i[e+28>>2],r)<<1)+z|0,o),l0((m(i[e>>2],r)<<1)+n0|0,(m(i[e+16>>2],r)<<1)+f0|0,o),r=r+1|0,(k|0)!=(r|0););break A}if(r=0,(k|0)!=1)for(u=k&2147483646,t=0;l0((m(i[e+12>>2],r)<<1)+H|0,(m(i[e+28>>2],r)<<1)+z|0,o),h=r|1,l0((m(h,i[e+12>>2])<<1)+H|0,(m(h,i[e+28>>2])<<1)+z|0,o),r=r+2|0,t=t+2|0,(u|0)!=(t|0););if(!(k&1))break A;l0((m(i[e+12>>2],r)<<1)+H|0,(m(i[e+28>>2],r)<<1)+z|0,o)}i[f+4>>2]=A,i[f>>2]=n;break r}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(!W||(f=i[W+4>>2],i[W+4>>2]=f-1,f))break i;V[i[i[W>>2]+8>>2]](W),g(W)}B=e+32|0}function Wi(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;t=B-48|0,B=t;i:{r:{e:{A:switch(k=i[e>>2],i[k+32>>2]){case 1:break r;case 0:break e;case 2:break A;default:break i}Jr(i[f+48>>2],r,U0(k,0),0,0);break i}Jr(i[f+48>>2],r,U0(k,0),U0(k,1),U0(k,2));break i}if(A=i[k+36>>2],(A|0)==3){Jr(i[f+48>>2],r,U0(k,3),U0(k,4),U0(k,5));break i}if((A&-2)!=10)break i;Jr(i[f+48>>2],r,8,8,8)}i:{if(i[k+72>>2]==i[k+76>>2])break i;n=U(72),i[n+4>>2]=0,i[n+8>>2]=0,i[n>>2]=71744,A=n+16|0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A>>2]=68500,i[n+60>>2]=0,i[n+52>>2]=0,i[n+56>>2]=0,i[A>>2]=69732,i[n+32>>2]=1885434736,i[n+64>>2]=i[k+72>>2],i[n+68>>2]=i[k+76>>2],k=i[f+48>>2],o=i[k+44>>2],k=i[k+48>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),i[t+44>>2]=n,i[t+40>>2]=A,i[n+4>>2]=i[n+4>>2]+1,o=N4(o,t+40|0),A=i[t+44>>2];r:{if(!A||(u=i[A+4>>2],i[A+4>>2]=u-1,u))break r;V[i[i[A>>2]+8>>2]](A),g(A)}r:{if(!k||(A=i[k+4>>2],i[k+4>>2]=A-1,A))break r;V[i[i[k>>2]+8>>2]](k),g(k)}A=i[f+48>>2],k=i[A+52>>2],A=i[A+56>>2];r:{if(A){if(i[A+4>>2]=i[A+4>>2]+1,X[t+38>>1]=o+1,l[t+36|0]=0,i[t+24>>2]=Q[t+36>>1]|Q[t+38>>1]<<16,c1(k,r,t+24|0),k=i[A+4>>2],i[A+4>>2]=k-1,k)break r;V[i[i[A>>2]+8>>2]](A),g(A);break r}l[t+36|0]=0,X[t+38>>1]=o+1,i[t+20>>2]=Q[t+36>>1]|Q[t+38>>1]<<16,c1(k,r,t+20|0)}if(A=i[n+4>>2],i[n+4>>2]=A-1,A)break i;V[i[i[n>>2]+8>>2]](n),g(n)}k=i[e>>2];i:{if(!(Q[k+80>>1]|Q[k+82>>1]))break i;n=U(72),i[n+4>>2]=0,i[n+8>>2]=0,i[n>>2]=71904,A=n+16|0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A>>2]=68500,i[n+60>>2]=0,i[n+52>>2]=0,i[n+56>>2]=0,i[A>>2]=69852,i[n+64>>2]=0,i[n+32>>2]=1668050025,i[n+64>>2]=i[k+80>>2],k=i[f+48>>2],o=i[k+44>>2],k=i[k+48>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),i[t+44>>2]=n,i[t+40>>2]=A,i[n+4>>2]=i[n+4>>2]+1,o=N4(o,t+40|0),A=i[t+44>>2];r:{if(!A||(u=i[A+4>>2],i[A+4>>2]=u-1,u))break r;V[i[i[A>>2]+8>>2]](A),g(A)}r:{if(!k||(A=i[k+4>>2],i[k+4>>2]=A-1,A))break r;V[i[i[k>>2]+8>>2]](k),g(k)}A=i[f+48>>2],k=i[A+52>>2],A=i[A+56>>2];r:{if(A){if(i[A+4>>2]=i[A+4>>2]+1,X[t+34>>1]=o+1,l[t+32|0]=0,i[t+16>>2]=Q[t+32>>1]|Q[t+34>>1]<<16,c1(k,r,t+16|0),k=i[A+4>>2],i[A+4>>2]=k-1,k)break r;V[i[i[A>>2]+8>>2]](A),g(A);break r}l[t+32|0]=0,X[t+34>>1]=o+1,i[t+12>>2]=Q[t+32>>1]|Q[t+34>>1]<<16,c1(k,r,t+12|0)}if(A=i[n+4>>2],i[n+4>>2]=A-1,A)break i;V[i[i[n>>2]+8>>2]](n),g(n)}k=i[e>>2];i:{if(s[k+108|0]!=1)break i;n=U(88),i[n+4>>2]=0,i[n+8>>2]=0,i[n>>2]=71944,A=n+16|0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,o=A- -64|0,i[o>>2]=0,i[o+4>>2]=0,i[A+16>>2]=1835295606,i[A>>2]=68524,o=i[k+92>>2],u=i[k+96>>2],h=i[k+84>>2],w=i[k+88>>2],_=i[k+104>>2],i[n+80>>2]=i[k+100>>2],i[n+84>>2]=_,i[n+72>>2]=o,i[n+76>>2]=u,i[n+64>>2]=h,i[n+68>>2]=w,k=i[f+48>>2],o=i[k+44>>2],k=i[k+48>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),i[t+44>>2]=n,i[t+40>>2]=A,i[n+4>>2]=i[n+4>>2]+1,o=N4(o,t+40|0),A=i[t+44>>2];r:{if(!A||(u=i[A+4>>2],i[A+4>>2]=u-1,u))break r;V[i[i[A>>2]+8>>2]](A),g(A)}r:{if(!k||(A=i[k+4>>2],i[k+4>>2]=A-1,A))break r;V[i[i[k>>2]+8>>2]](k),g(k)}f=i[f+48>>2],A=i[f+52>>2],f=i[f+56>>2];r:{if(f){if(i[f+4>>2]=i[f+4>>2]+1,X[t+30>>1]=o+1,l[t+28|0]=0,i[t+8>>2]=Q[t+28>>1]|Q[t+30>>1]<<16,c1(A,r,t+8|0),r=i[f+4>>2],i[f+4>>2]=r-1,r)break r;V[i[i[f>>2]+8>>2]](f),g(f);break r}l[t+28|0]=0,X[t+30>>1]=o+1,i[t+4>>2]=Q[t+28>>1]|Q[t+30>>1]<<16,c1(A,r,t+4|0)}if(f=i[n+4>>2],i[n+4>>2]=f-1,f)break i;V[i[i[n>>2]+8>>2]](n),g(n)}f=i[e+4>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=t+48|0}function sh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0,n0=0,h0=0,j=0,L=0,p0=0;e=B-32|0,B=e,u=U0(i[r>>2],0),h=U0(i[r>>2],1),v=U0(i[r>>2],2),z=H2(i[r>>2],6),z&&(I=U0(i[r>>2],6));i:{if(!(!(u>>>0<9|h>>>0<9)&v>>>0>8)){i[f>>2]=0,i[f+4>>2]=0;break i}if(!((u|0)==(h|0)&(u|0)==(v|0))){i[f>>2]=0,i[f+4>>2]=0;break i}A=i[r>>2],Z=i[A+48>>2],Z&&(i[Z+4>>2]=i[Z+4>>2]+1,A=i[r>>2]),k=i[A+28>>2],o=i[A+24>>2],A=U(136),i[A>>2]=72792,i[A+4>>2]=0,i[A+8>>2]=0,B0(A+20|0,0,104),t=i[A+4>>2],w=t+1|0,i[A+4>>2]=w,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,n=A- -64|0,i[n>>2]=0,i[n+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,n=A+12|0,i[A+12>>2]=n,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=t,i[A+16>>2]=A,w||(V[i[i[A>>2]+8>>2]](A),g(A)),i[n+36>>2]=1,i[n+32>>2]=0,i[n+28>>2]=k,i[n+24>>2]=o,t=(k+1|0)/2|0,p=(o+1|0)/2|0;r:{e:{if(!J0(n,0,o,k,u)||!J0(n,1,p,t,h)||!J0(n,2,p,t,v)||z&&!J0(n,6,o,k,I))break e;if(i[e+28>>2]=0,i[e+24>>2]=0,i[e+20>>2]=0,i[e+16>>2]=0,i[e+12>>2]=0,i[e+8>>2]=0,i[e+4>>2]=0,i[e>>2]=0,H=v0(i[r>>2],0,e+28|0),v=v0(i[r>>2],1,e+24|0),I=v0(i[r>>2],2,e+20|0),a=v0(n,0,e+12|0),S=v0(n,1,e+8|0),q=v0(n,2,e+4|0),z&&(h0=v0(i[r>>2],6,e+16|0),j=v0(n,6,e)),i[e+28>>2]=i[e+28>>2]/2,u=i[e+24>>2]/2|0,i[e+24>>2]=u,h=i[e+20>>2]/2|0,i[e+20>>2]=h,i[e+16>>2]=i[e+16>>2]/2,i[e+12>>2]=i[e+12>>2]/2,E=i[e+8>>2]/2|0,i[e+8>>2]=E,J=i[e+4>>2]/2|0,i[e+4>>2]=J,i[e>>2]=i[e>>2]/2,d=k&1,!(!d|(o|0)<2))for(w=o-1|0,r=k-1|0,y=m(r,h),W=m(r,u),r=t-1|0,R=(m(r,J)<<1)+q|0,D=(m(r,E)<<1)+S|0,r=0;_=v+(r+W<<1)|0,X[r+D>>1]=(Q[_>>1]+Q[_+2>>1]|0)+1>>>1,_=I+(r+y<<1)|0,X[r+R>>1]=(Q[_>>1]+Q[_+2>>1]|0)+1>>>1,r=r+2|0,(w|0)>(r|0););w=k-1|0;A:{if(!(o&1))break A;if((k|0)>=2)for(r=p<<1,R=(r+q|0)-2|0,W=o<<1,y=(W+I|0)-2|0,D=(r+S|0)-2|0,W=(v+W|0)-2|0,r=0;_=r>>>1|0,C=r|1,X[D+(m(_,E)<<1)>>1]=(Q[W+(m(r,u)<<1)>>1]+Q[W+(m(C,u)<<1)>>1]|0)+1>>>1,X[R+(m(_,J)<<1)>>1]=(Q[y+(m(r,h)<<1)>>1]+Q[y+(m(h,C)<<1)>>1]|0)+1>>>1,r=r+2|0,(w|0)>(r|0););if(!d)break A;r=t-1|0,t=p<<1,p=o<<1,X[(((m(r,E)<<1)+S|0)+t|0)-2>>1]=Q[(p+(v+(m(u,w)<<1)|0)|0)-2>>1],X[(t+((m(r,J)<<1)+q|0)|0)-2>>1]=Q[(p+(I+(m(h,w)<<1)|0)|0)-2>>1]}A:{f:{if((k|0)>=2){if((o|0)<2)break f;for(p=o-1|0,t=0;;){for(y=m(t,h),W=m(t,u),r=t>>>1|0,d=(m(r,J)<<1)+q|0,R=(m(r,E)<<1)+S|0,r=t|1,D=I+(m(r,h)<<1)|0,_=v+(m(r,u)<<1)|0,r=0;C=r<<1,A0=C+D|0,L=Q[A0+2>>1],A0=Q[A0>>1],f0=I+(r+y<<1)|0,p0=Q[f0>>1],f0=Q[f0+2>>1],C=_+C|0,n0=v+(r+W<<1)|0,X[r+R>>1]=((Q[C>>1]+(Q[n0>>1]+Q[n0+2>>1]|0)|0)+Q[C+2>>1]|0)+2>>>2,X[r+d>>1]=((A0+(f0+p0|0)|0)+L|0)+2>>>2,r=r+2|0,(p|0)>(r|0););if(t=t+2|0,!((w|0)>(t|0)))break}}if((k|0)<=0)break A}if(o=o<<1,z){for(r=0;l0((m(i[e+12>>2],r)<<1)+a|0,(m(i[e+28>>2],r)<<1)+H|0,o),l0((m(i[e>>2],r)<<1)+j|0,(m(i[e+16>>2],r)<<1)+h0|0,o),r=r+1|0,(k|0)!=(r|0););break A}u=k&1;f:{if(!w){r=0;break f}for(h=k&-2,r=0,k=0;l0((m(i[e+12>>2],r)<<1)+a|0,(m(i[e+28>>2],r)<<1)+H|0,o),t=r|1,l0((m(t,i[e+12>>2])<<1)+a|0,(m(t,i[e+28>>2])<<1)+H|0,o),r=r+2|0,k=k+2|0,(h|0)!=(k|0););}if(!u)break A;l0((m(i[e+12>>2],r)<<1)+a|0,(m(i[e+28>>2],r)<<1)+H|0,o)}i[f+4>>2]=A,i[f>>2]=n;break r}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(!Z||(f=i[Z+4>>2],i[Z+4>>2]=f-1,f))break i;V[i[i[Z>>2]+8>>2]](Z),g(Z)}B=e+32|0}function Jk(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0;if(k=i[f+124>>2],_=i[k+16876>>2],r=i[k+16872>>2],Z=e<<_>>r,v=i[k+16896>>2],e=e+1<<_>>r,y=(e|0)>(v|0)?v:e,(Z|0)>=(y|0))return 0;i:{r:{if(i[k+16888>>2]>0)for(E=-1<<_^-1,J=i[k+16892>>2],R=i[k+16880>>2],W=i[f+132>>2];;){if(i[k+16888>>2]>0)for(e=0,h=m(Z,R),r=(h|0)!=0,d=r&!(h&E),D=m(h>>_,J),v=r<<5,z=h-1|0,A0=m(z>>_,J)<<2;;){r=(i[f+160>>2]+m(m(i[f+172>>2],Z),3)|0)+m(e,3)|0,o=(s[r|0]|s[r+1|0]<<8)&7;e:{if(!o)break e;if(n=m(e,R),u=i[f+148>>2],r=n>>u,(r|0)<0||(w=i[f+152>>2],(w|0)<=(r|0)))break r;if(A=h>>u,(A|0)<0||(H=i[f+156>>2],(A|0)>=(H|0)))break i;if(C=i[f+52>>2],I=i[f+56>>2]-C>>2,p=i[f+140>>2],a=p+m(r,24)|0,S=m(m(A,w),24),r=Q[(a+S|0)+2>>1],I>>>0<=r>>>0)return 0;q=n>>_,t=i[C+(r<<2)>>2],A=((n|0)!=0)<<4,r=A;A:{if(!n||(r=A,n&E))break A;f:{if(s[t+772|0])break f;if(r=n-1>>u,(r|0)<0|r>>>0>=w>>>0)break r;if(p=Q[((m(r,24)+p|0)+S|0)+2>>1],p>>>0>=I>>>0)break f;if(r=0,i[t+808>>2]!=i[i[C+(p<<2)>>2]+808>>2])break A}if(r=A,s[W+57|0])break A;A=D<<2,r=i[W+8484>>2],r=(i[A+(r+(q<<2)|0)>>2]==i[A+(r+(n-1>>_<<2)|0)>>2])<<4}A=r,r=v;A:{if(!d)break A;f:{if(s[t+772|0])break f;if(r=z>>u,(r|0)<0|(r|0)>=(H|0))break i;if(u=Q[(m(m(r,w),24)+a|0)+2>>1],u>>>0>=I>>>0)break f;if(r=0,i[t+808>>2]!=i[i[C+(u<<2)>>2]+808>>2])break A}if(r=v,s[W+57|0])break A;r=i[W+8484>>2]+(q<<2)|0,r=(i[r+(D<<2)>>2]==i[r+A0>>2])<<5}if(s[t+762|0])break e;if(ri(f,n,h,o,0,A,r),r=i[f+168>>2],t=n>>r,(t|0)<0||(w=i[f+172>>2],(w|0)<=(t|0)))break r;if(u=h>>r,(u|0)<0|(u|0)>=i[f+176>>2])break i;r=1<>2]+m(t,3)|0)+m(m(u,w),3)|0,((s[t|0]|s[t+1|0]<<8)>>>3&7)-1|0){case 2:break f;case 1:break k;case 0:break n;case 5:break t;case 6:break o;case 3:break u;case 4:break l;default:break A}for(t=(r|0)<=1?1:r,A=(k+(A+h|0)|0)/4|0,r=0;k=(r+n|0)/4|0,o=i[f+272>>2],(k|0)>=(o|0)|(A|0)>=i[f+276>>2]||(k=(k+i[f+260>>2]|0)+m(A,o)|0,l[k|0]=s[k|0]|128),r=r+1|0,(t|0)!=(r|0););break A}for(t=(r|0)<=1?1:r,A=(k+h|0)/4|0,r=0;k=(r+n|0)/4|0,o=i[f+272>>2],(k|0)>=(o|0)|(A|0)>=i[f+276>>2]||(k=(k+i[f+260>>2]|0)+m(A,o)|0,l[k|0]=s[k|0]|128),r=r+1|0,(t|0)!=(r|0););break A}for(t=(r|0)<=1?1:r,A=(k+(A+n|0)|0)/4|0,r=0;k=i[f+272>>2],n=(r+h|0)/4|0,(k|0)<=(A|0)|(n|0)>=i[f+276>>2]||(n=(A+i[f+260>>2]|0)+m(k,n)|0,l[n|0]=s[n|0]|64),r=r+1|0,(t|0)!=(r|0););break A}for(t=(r|0)<=1?1:r,A=(k+n|0)/4|0,r=0;k=i[f+272>>2],n=(r+h|0)/4|0,(k|0)<=(A|0)|(n|0)>=i[f+276>>2]||(n=(A+i[f+260>>2]|0)+m(k,n)|0,l[n|0]=s[n|0]|64),r=r+1|0,(t|0)!=(r|0););break A}for(k=(r|0)<=1?1:r,A=(A+h|0)/4|0,r=0;t=(r+n|0)/4|0,o=i[f+272>>2],(t|0)>=(o|0)|(A|0)>=i[f+276>>2]||(t=(t+i[f+260>>2]|0)+m(A,o)|0,l[t|0]=s[t|0]|128),r=r+1|0,(k|0)!=(r|0););break A}for(k=(r|0)<=1?1:r,A=(A+n|0)/4|0,r=0;t=i[f+272>>2],n=(r+h|0)/4|0,(t|0)<=(A|0)|(n|0)>=i[f+276>>2]||(n=(A+i[f+260>>2]|0)+m(n,t)|0,l[n|0]=s[n|0]|64),r=r+1|0,(k|0)!=(r|0););break A}for(w=(r|0)<=1?1:r,t=(A+h|0)/4|0,o=(A+n|0)/4|0,r=0;A=i[f+276>>2],u=(r+h|0)/4|0,k=i[f+272>>2],(A|0)<=(u|0)|(o|0)>=(k|0)||(A=(o+i[f+260>>2]|0)+m(k,u)|0,l[A|0]=s[A|0]|64,k=i[f+272>>2],A=i[f+276>>2]),u=(r+n|0)/4|0,(A|0)<=(t|0)|(u|0)>=(k|0)||(A=(u+i[f+260>>2]|0)+m(k,t)|0,l[A|0]=s[A|0]|128),r=r+1|0,(w|0)!=(r|0););}k=i[f+124>>2],f0=1}if(e=e+1|0,!((e|0)>2]))break}if(Z=Z+1|0,(y|0)==(Z|0))break}return f0}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function gk(){var f=0,e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;s[79116]||(l[79116]=1),e=i[19772],i[19772]=e+1;i:{if((e|0)>0||(_k(),Zk()))break i;return i[19772]=i[19772]-1,0}f=U(3224),i[f+168>>2]=0,i[f+84>>2]=0,i[f>>2]=43512,i[f+384>>2]=876,i[f+376>>2]=877,i[f+360>>2]=878,i[f+356>>2]=879,i[f+352>>2]=880,i[f+348>>2]=881,i[f+344>>2]=882,i[f+340>>2]=883,i[f+336>>2]=884,i[f+332>>2]=885,i[f+328>>2]=886,i[f+324>>2]=887,i[f+320>>2]=888,i[f+316>>2]=889,i[f+312>>2]=890,i[f+308>>2]=891,i[f+304>>2]=892,i[f+300>>2]=893,i[f+296>>2]=894,i[f+292>>2]=894,i[f+288>>2]=894,i[f+284>>2]=895,i[f+280>>2]=896,i[f+276>>2]=897,i[f+272>>2]=898,i[f+268>>2]=899,i[f+264>>2]=900,i[f+260>>2]=901,i[f+256>>2]=902,i[f+252>>2]=903,i[f+248>>2]=904,i[f+244>>2]=905,i[f+240>>2]=906,i[f+236>>2]=907,i[f+232>>2]=908,i[f+228>>2]=909,i[f+224>>2]=910,i[f+220>>2]=911,i[f+216>>2]=912,i[f+212>>2]=912,i[f+208>>2]=912,i[f+204>>2]=913,i[f+200>>2]=914,i[f+196>>2]=915,i[f+192>>2]=916,i[f+188>>2]=917,i[f+184>>2]=918,i[f+180>>2]=919,i[f+176>>2]=920,i[f+172>>2]=921,i[f+372>>2]=922,i[f+380>>2]=923,i[f+364>>2]=924,i[f+368>>2]=925,i[f+388>>2]=926,i[f+392>>2]=927,i[f+396>>2]=928,i[f+400>>2]=929,i[f+404>>2]=930,i[f+408>>2]=931,i[f+412>>2]=932,i[f+416>>2]=933,i[f+420>>2]=934,i[f+424>>2]=935,i[f+428>>2]=936,i[f+432>>2]=937,i[f+456>>2]=938,i[f+460>>2]=939,i[f+468>>2]=940,i[f+472>>2]=941,i[f+464>>2]=942,i[f+508>>2]=943,i[f+504>>2]=944,i[f+500>>2]=945,i[f+496>>2]=946,i[f+492>>2]=947,i[f+488>>2]=948,i[f+484>>2]=949,i[f+480>>2]=950,i[f+476>>2]=951,i[f+452>>2]=952,i[f+448>>2]=953,i[f+444>>2]=954,i[f+440>>2]=955,i[f+436>>2]=956,i[f>>2]=43536,i[f+552>>2]=0,i[f+556>>2]=0,X[f+548>>1]=0,i[f+560>>2]=0,i[f+564>>2]=0,i[f+568>>2]=0,i[f+572>>2]=0,i[f+576>>2]=0,i[f+580>>2]=0,i[f+584>>2]=0,i[f+588>>2]=0,i[f+592>>2]=0,i[f+596>>2]=0,e=f+1412|0,i[e>>2]=0,i[e+4>>2]=0,e=f+1404|0,i[e>>2]=0,i[e+4>>2]=0,i[f+1396>>2]=0,i[f+1400>>2]=0,B0(f+600|0,0,792),e=f+2140|0,i[e+8>>2]=0,i[e+12>>2]=0,i[e>>2]=30,i[e+4>>2]=30,i[e+48>>2]=0,i[e+52>>2]=0,i[e+40>>2]=0,i[e+44>>2]=0,i[e+32>>2]=0,i[e+36>>2]=0,i[e+24>>2]=0,i[e+28>>2]=0,i[e+16>>2]=0,i[e+20>>2]=0,i[f+3216>>2]=0,i[f+3208>>2]=0,i[f+3212>>2]=0,X[f+532>>1]=0,l[f+514|0]=0,X[f+512>>1]=256,i[f+516>>2]=-1,i[f+520>>2]=-1,i[f+524>>2]=-1,i[f+528>>2]=-1,e=i[19404],r=i[19403],i[f+1368>>2]=0,i[f+544>>2]=0,i[f+536>>2]=r,i[f+540>>2]=e,e=i[f+1372>>2],i[f+1372>>2]=0;i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+1380>>2],i[f+1376>>2]=0,i[f+1380>>2]=0;i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+1388>>2],i[f+1384>>2]=0,i[f+1388>>2]=0;i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}i[f+1892>>2]=100,i[f+1896>>2]=6,i[f+1884>>2]=0,i[f+1888>>2]=6,i[f+1900>>2]=100,i[f+1904>>2]=6,e=i[f+1376>>2];i:{r:{e:{if(e){e=l[e+2|0];break e}if(r=i[f+1368>>2],e=6,!r)break r;e=i[r+8>>2]}if((e|0)<=0)break i;e=e-1|0}for(_=f+2112|0,u=f+1908|0,h=e+1|0;;){r=m(e,100),n=(r+100|0)/(h|0)|0,A=(r|0)/(h|0)|0;r:{if((n|0)<(A|0)){r=e;break r}t=i[f+1888>>2];e:{if(A+n&1){r=e,e=A;break e}r=(A<<1)+u|0,l[r+1|0]=(e|0)>(t|0)?100:0,k=r,r=(e|0)<(t|0)?e:t,l[k|0]=r,e=A+1|0}if(k=e,(A|0)==(n|0))break r;for(w=n-A|0,e=r;o=(k<<1)+u|0,r=(e|0)<(t|0)?e:t,l[o|0]=r,l[o+1|0]=(e|0)>(t|0)?100:(m(k-A|0,100)|0)/(w|0)|0,o=k+1|0,e=(o<<1)+u|0,l[e+1|0]=(m(o-A|0,100)|0)/(w|0),l[e|0]=r,k=k+2|0,e=r,(n|0)!=(o|0););}if(i[(r<<2)+_>>2]=n,e=r-1|0,!((r|0)>0))break}}return i[f+2200>>2]=0,i[f+2204>>2]=0,i[f+2196>>2]=-1,e=f+2216|0,i[e>>2]=0,i[e+4>>2]=0,e=f+2208|0,i[e>>2]=0,i[e+4>>2]=0,l[f+2200|0]=1,f|0}function hh(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;for(n=B-48|0,B=n,Z=e,p=B2(r),l[Z+48|0]=p,o=B2(r),l[e+51|0]=o&31,l[e+49|0]=o>>>6,l[e+50|0]=o>>>5&1,Z=e,p=D0(r),i[Z+52>>2]=p,h=e+56|0;o=B2(r),u=h+(A&-4)|0,k=i[u>>2],t=A<<3,k=(Z=k|1<>24<0,W?Z:p),w=u,u=2<>2]=o&1?k|t:k&(t^-1),A=A+1|0,(A|0)!=6;);Z=e,p=B2(r),l[Z+64|0]=p,Z=e,p=t2(r)&4095,X[Z+66>>1]=p,Z=e,p=B2(r)&3,l[Z+68|0]=p,Z=e,p=B2(r)&3,l[Z+69|0]=p,Z=e,p=B2(r)&7|8,l[Z+70|0]=p,Z=e,p=B2(r)&7|8,l[Z+71|0]=p,Z=e,p=t2(r),X[Z+72>>1]=p,o=B2(r),l[e+74|0]=o>>>6,l[e+80|0]=(o&3)+1,l[e+76|0]=o>>>2&1,l[e+75|0]=o>>>3&7,w=B2(r);i:{r:{if(!w)break r;for(_=e+84|0,v=n+36|0,h=0;;){if(s[r+20|0])break r;A=B2(r),o=0,i[n+44>>2]=0,i[n+36>>2]=0,i[n+40>>2]=0,l[n+33|0]=A&63,l[n+32|0]=A>>>6&1,u=t2(r);e:{A:{if(!u)break A;for(;;){if(s[r+20|0])break A;i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,k=t2(r),t=13;f:{if(!k)break f;k:{if(!T4(r,k))break k;t=i[n+20>>2],A=i[n+24>>2]-t|0;n:{if(A>>>0>>0){L2(n+20|0,k-A|0);break n}if(A>>>0<=k>>>0)break n;i[n+24>>2]=t+k}t=i[r>>2],A=i[r+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),t=V[i[i[t>>2]+16>>2]](t,i[n+20>>2],k)|0;n:{if(!A||(k=i[A+4>>2],i[A+4>>2]=k-1,k))break n;V[i[i[A>>2]+8>>2]](A),g(A)}if(t)break k;A=U(32),i[n+8>>2]=A,i[n+12>>2]=28,i[n+16>>2]=-2147483616,t=s[2134]|s[2135]<<8|(s[2136]<<16|s[2137]<<24),k=s[2130]|s[2131]<<8|(s[2132]<<16|s[2133]<<24),l[A|0]=k,l[A+1|0]=k>>>8,l[A+2|0]=k>>>16,l[A+3|0]=k>>>24,l[A+4|0]=t,l[A+5|0]=t>>>8,l[A+6|0]=t>>>16,l[A+7|0]=t>>>24,l[A+28|0]=0,t=s[2154]|s[2155]<<8|(s[2156]<<16|s[2157]<<24),l[A+24|0]=t,l[A+25|0]=t>>>8,l[A+26|0]=t>>>16,l[A+27|0]=t>>>24,t=s[2150]|s[2151]<<8|(s[2152]<<16|s[2153]<<24),k=s[2146]|s[2147]<<8|(s[2148]<<16|s[2149]<<24),l[A+16|0]=k,l[A+17|0]=k>>>8,l[A+18|0]=k>>>16,l[A+19|0]=k>>>24,l[A+20|0]=t,l[A+21|0]=t>>>8,l[A+22|0]=t>>>16,l[A+23|0]=t>>>24,t=s[2142]|s[2143]<<8|(s[2144]<<16|s[2145]<<24),k=s[2138]|s[2139]<<8|(s[2140]<<16|s[2141]<<24),l[A+8|0]=k,l[A+9|0]=k>>>8,l[A+10|0]=k>>>16,l[A+11|0]=k>>>24,l[A+12|0]=t,l[A+13|0]=t>>>8,l[A+14|0]=t>>>16,l[A+15|0]=t>>>24,r0(f,2,100,n+8|0),l[n+19|0]<0&&G(i[n+8>>2]),t=1;break f}A=i[n+40>>2];k:{if(A>>>0>2]){i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A>>2]=i[n+20>>2],i[A+4>>2]=i[n+24>>2],i[A+8>>2]=i[n+28>>2],i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,A=A+12|0;break k}A=NA(v,n+20|0)}i[n+40>>2]=A,t=0}if(A=i[n+20>>2],A&&(i[n+24>>2]=A,G(A)),(t|0)!=13&&t)break e;if(o=o+1|0,(u|0)==(o|0))break}}o=i[e+88>>2];A:{if(o>>>0>2]){A=Q[n+32>>1],i[o+12>>2]=0,i[o+4>>2]=0,i[o+8>>2]=0,X[o>>1]=A,i[o+4>>2]=i[n+36>>2],i[o+8>>2]=i[n+40>>2],i[o+12>>2]=i[n+44>>2],i[n+44>>2]=0,i[n+36>>2]=0,i[n+40>>2]=0,A=o+16|0;break A}A=Fn(_,n+32|0)}i[e+88>>2]=A,t=0}if(k=i[n+36>>2],k){if(o=i[n+40>>2],A=k,(o|0)!=(A|0)){for(;A=o-12|0,u=i[A>>2],u&&(i[o-8>>2]=u,G(u)),o=A,(k|0)!=(A|0););A=i[n+36>>2]}i[n+40>>2]=k,G(A)}if(t)break i;if(h=h+1|0,(w|0)==(h|0))break}}if(o=i[r+16>>2],o&&(e=i[r+8>>2],e&&($t(e,o),o=i[r+16>>2]),e=i[r>>2],t=V[i[i[e>>2]+8>>2]](e)|0,A=w0,k=o,o=t+o|0,A=k>>>0>o>>>0?A+1|0:A,V[i[i[e>>2]+20>>2]](e,o,A)|0,i[r+16>>2]=0),s[r+20|0]==1){if(l[n+32|0]=0,l[n+43|0]=0,r0(f,2,100,n+32|0),l[n+43|0]>=0)break i;G(i[n+32>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=n+48|0}function Nk(){var f=0,e=0;k4(6453,1,73724,37195,486,487,0),k4(5831,1,73736,37198,488,489,0),k4(13664,1,73740,37195,490,491,0),k4(11268,2,73768,37232,492,493,0),k4(1382,3,73776,37249,494,495,0),k4(9544,2,73796,37277,496,497,0),k4(4407,2,73812,37277,498,499,0),k4(4852,2,73820,37300,500,501,0),k4(10179,3,73836,37304,502,503,0),k4(10138,2,73820,37300,500,504,0),k4(16698,4,73872,37382,505,506,0),k4(9355,2,73952,37232,507,508,0),k4(8403,2,73976,37277,509,510,0),k4(3270,2,73976,37277,509,511,0),k4(10542,2,73976,37277,509,512,0),k4(9381,2,73984,37232,513,514,0),s8(74008,11337,4,0),V0(74008,8139,0),V0(74008,2806,1),V0(74008,2637,2),V0(74008,5151,11),V0(74008,9567,3),V0(74008,9493,4),V0(74008,5194,5),V0(74008,4991,6),V0(74008,5058,7),V0(74008,5026,8),V0(74008,5090,9),V0(74008,2838,10),s8(74016,11318,4,0),V0(74016,13003,0),V0(74016,14213,5e3),V0(74016,4944,1001),V0(74016,14371,150),V0(74016,6233,5001),V0(74016,8673,5002),V0(74016,6088,5003),V0(74016,3901,5004),V0(74016,14313,100),V0(74016,8827,101),V0(74016,1587,102),V0(74016,1509,103),V0(74016,1826,104),V0(74016,1535,105),V0(74016,1904,106),V0(74016,1878,141),V0(74016,1665,107),V0(74016,1639,108),V0(74016,1852,109),V0(74016,1800,110),V0(74016,1722,111),V0(74016,1613,112),V0(74016,1748,113),V0(74016,5588,114),V0(74016,1104,115),V0(74016,7226,116),V0(74016,14286,117),V0(74016,14339,118),V0(74016,4451,119),V0(74016,1930,131),V0(74016,9400,120),V0(74016,14178,121),V0(74016,4757,122),V0(74016,13153,6001),V0(74016,5116,6e3),V0(74016,12920,123),V0(74016,1339,6002),V0(74016,12858,6003),V0(74016,7185,124),V0(74016,1774,125),V0(74016,13029,1e3),V0(74016,9599,126),V0(74016,3410,127),V0(74016,5855,128),V0(74016,8858,129),V0(74016,13262,2e3),V0(74016,3068,2001),V0(74016,13304,2002),V0(74016,6511,2003),V0(74016,6470,2004),V0(74016,5500,2005),V0(74016,9109,2006),V0(74016,1190,2007),V0(74016,10230,2008),V0(74016,1691,130),V0(74016,14252,136),V0(74016,13804,3e3),V0(74016,9640,3001),V0(74016,6552,3002),V0(74016,11643,3006),V0(74016,6381,3003),V0(74016,11540,3004),V0(74016,11591,3005),V0(74016,8184,4e3),V0(74016,8220,132),V0(74016,4319,133),V0(74016,4667,134),V0(74016,3640,135),V0(74016,1159,137),V0(74016,12667,138),V0(74016,12619,139),V0(74016,7421,140),V0(74016,1561,142),s8(74024,3386,4,0),V0(74024,12715,0),V0(74024,15460,1),V0(74024,15482,2),V0(74024,15138,3),V0(74024,16954,4),V0(74024,15418,5),V0(74024,15439,6),V0(74024,17240,7),V0(74024,12577,8),V0(74024,7812,9),V0(74024,15078,10),s8(73896,14597,4,0),V0(73896,12768,99),V0(73896,9957,0),V0(73896,17209,1),V0(73896,16819,2),V0(73896,16645,3),V0(73896,15580,10),V0(73896,15608,11),V0(73896,15266,12),V0(73896,15300,13),V0(73896,15196,14),V0(73896,15230,15),V0(73896,3210,10),V0(73896,3240,11),s8(74032,7150,4,0),V0(74032,10509,2),V0(74032,5431,1),V0(74032,2514,3),s8(74040,7117,4,0),V0(74040,5998,2),V0(74040,5391,1),s8(73888,11504,4,0),V0(73888,12742,99),V0(73888,6050,0),V0(73888,15560,1),V0(73888,9930,2),s8(73928,7696,4,0),V0(73928,14800,0),V0(73928,6072,2),V0(73928,14107,1),V0(73928,14954,3),V0(73928,15118,4),V0(73928,15512,5),V0(73928,14663,6),V0(73928,11869,10),s8(73804,3147,4,0),V0(73804,6139,0),V0(73804,11924,1),V0(73804,11894,2),V0(73804,11520,3),lA(73744,73752,74048,0,37195,515,37684,0,37684,0,2557,37686,516),lA(73848,73856,73960,0,37195,517,37684,0,37684,0,10212,37686,518),lA(73904,73912,73992,0,37195,519,37684,0,37684,0,10603,37686,520),ws(73788,5183,37689,521,37686,522),f=U(4),i[f>>2]=0,e=U(4),i[e>>2]=0,oA(73788,11348,74008,37277,523,f|0,74008,37691,524,e|0),f=U(4),i[f>>2]=4,e=U(4),i[e>>2]=4,oA(73788,11310,74016,37277,525,f|0,74016,37691,526,e|0),f=U(4),i[f>>2]=527,e=U(4),i[e>>2]=528,oA(73788,10501,73728,37300,529,f|0,73728,37696,530,e|0),hs(73788)}function wh(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;t=X[e+8>>1],_=B-32|0,o=X[e+16>>1],w=X[e>>1],n=X[e+24>>1],k=((m(o,-74)+m(w,74)|0)+m(n,74)|0)- -64>>7,k=(k|0)>=32767?32767:k,X[_+16>>1]=(k|0)<=-32768?-32768:k,k=(((m(t,-74)+m(w,84)|0)+m(o,55)|0)+m(n,-29)|0)- -64>>7,k=(k|0)>=32767?32767:k,X[_+24>>1]=(k|0)<=-32768?-32768:k,t=m(t,74),k=(((t+m(w,55)|0)+m(o,-29)|0)+m(n,-84)|0)- -64>>7,k=(k|0)>=32767?32767:k,X[_+8>>1]=(k|0)<=-32768?-32768:k,o=(((t+m(w,29)|0)+m(o,84)|0)+m(n,55)|0)- -64>>7,o=(o|0)>=32767?32767:o,X[_>>1]=(o|0)<=-32768?-32768:o,t=X[e+10>>1],o=X[e+18>>1],w=X[e+2>>1],n=X[e+26>>1],k=((m(o,-74)+m(w,74)|0)+m(n,74)|0)- -64>>7,k=(k|0)>=32767?32767:k,X[_+18>>1]=(k|0)<=-32768?-32768:k,k=(((m(t,-74)+m(w,84)|0)+m(o,55)|0)+m(n,-29)|0)- -64>>7,k=(k|0)>=32767?32767:k,X[_+26>>1]=(k|0)<=-32768?-32768:k,t=m(t,74),k=(((t+m(w,55)|0)+m(o,-29)|0)+m(n,-84)|0)- -64>>7,k=(k|0)>=32767?32767:k,X[_+10>>1]=(k|0)<=-32768?-32768:k,o=(((t+m(w,29)|0)+m(o,84)|0)+m(n,55)|0)- -64>>7,o=(o|0)>=32767?32767:o,X[_+2>>1]=(o|0)<=-32768?-32768:o,t=X[e+12>>1],o=X[e+20>>1],w=X[e+4>>1],n=X[e+28>>1],k=((m(o,-74)+m(w,74)|0)+m(n,74)|0)- -64>>7,k=(k|0)>=32767?32767:k,X[_+20>>1]=(k|0)<=-32768?-32768:k,k=(((m(t,-74)+m(w,84)|0)+m(o,55)|0)+m(n,-29)|0)- -64>>7,k=(k|0)>=32767?32767:k,X[_+28>>1]=(k|0)<=-32768?-32768:k,t=m(t,74),k=(((t+m(w,55)|0)+m(o,-29)|0)+m(n,-84)|0)- -64>>7,k=(k|0)>=32767?32767:k,X[_+12>>1]=(k|0)<=-32768?-32768:k,o=(((t+m(w,29)|0)+m(o,84)|0)+m(n,55)|0)- -64>>7,o=(o|0)>=32767?32767:o,X[_+4>>1]=(o|0)<=-32768?-32768:o,n=X[e+14>>1],o=X[e+22>>1],w=X[e+6>>1],e=X[e+30>>1],t=((m(o,-74)+m(w,74)|0)+m(e,74)|0)- -64>>7,t=(t|0)>=32767?32767:t,X[_+22>>1]=(t|0)<=-32768?-32768:t,t=(((m(n,-74)+m(w,84)|0)+m(o,55)|0)+m(e,-29)|0)- -64>>7,t=(t|0)>=32767?32767:t,X[_+30>>1]=(t|0)<=-32768?-32768:t,n=m(n,74),t=(((n+m(w,55)|0)+m(o,-29)|0)+m(e,-84)|0)- -64>>7,t=(t|0)>=32767?32767:t,X[_+14>>1]=(t|0)<=-32768?-32768:t,e=(((n+m(w,29)|0)+m(o,84)|0)+m(e,55)|0)- -64>>7,e=(e|0)>=32767?32767:e,X[_+6>>1]=(e|0)<=-32768?-32768:e,o=20-A|0,e=-1<>1],n=(m(r,A)<<1)+f|0,k=X[t+4>>1],Z=X[t>>1],t=X[t+6>>1],h=w+((m(k,-74)+m(Z,74)|0)+m(t,74)|0)>>o,h=(h|0)>=32767?32767:h,h=Q[n+4>>1]+((h|0)<=-32768?-32768:h)|0,X[n+4>>1]=(h|0)>=0?(e|0)>(h|0)?h:e:0,v=m(u,74),h=w+(((v+m(Z,29)|0)+m(k,84)|0)+m(t,55)|0)>>o,h=(h|0)>=32767?32767:h,h=Q[n>>1]+((h|0)<=-32768?-32768:h)|0,X[n>>1]=(h|0)>=0?(e|0)>(h|0)?h:e:0,h=w+(((v+m(Z,55)|0)+m(k,-29)|0)+m(t,-84)|0)>>o,h=(h|0)>=32767?32767:h,h=Q[n+2>>1]+((h|0)<=-32768?-32768:h)|0,X[n+2>>1]=(h|0)>=0?(e|0)>(h|0)?h:e:0,v=n,h=Q[n+6>>1],n=w+(((m(u,-74)+m(Z,84)|0)+m(k,55)|0)+m(t,-29)|0)>>o,n=(n|0)>=32767?32767:n,n=h+((n|0)<=-32768?-32768:n)|0,X[v+6>>1]=(n|0)>=0?(e|0)>(n|0)?n:e:0,A=A+1|0,(A|0)!=4;);break i}for(k=Q[f+4>>1],A=0;t=(A<<3)+_|0,h=X[t+2>>1],n=(m(r,A)<<1)+f|0,v=k&65535,k=X[t+4>>1],Z=X[t>>1],t=X[t+6>>1],u=w+((m(k,-74)+m(Z,74)|0)+m(t,74)|0)>>o,u=(u|0)>=32767?32767:u,u=v+((u|0)<=-32768?-32768:u)|0,X[n+4>>1]=(u|0)>=0?(e|0)>(u|0)?u:e:0,v=m(h,74),u=w+(((v+m(Z,29)|0)+m(k,84)|0)+m(t,55)|0)>>o,u=(u|0)>=32767?32767:u,u=Q[n>>1]+((u|0)<=-32768?-32768:u)|0,X[n>>1]=(u|0)>=0?(e|0)>(u|0)?u:e:0,u=w+(((v+m(Z,55)|0)+m(k,-29)|0)+m(t,-84)|0)>>o,u=(u|0)>=32767?32767:u,u=Q[n+2>>1]+((u|0)<=-32768?-32768:u)|0,X[n+2>>1]=(u|0)>=0?(e|0)>(u|0)?u:e:0,v=n,u=Q[n+6>>1],n=w+(((m(h,-74)+m(Z,84)|0)+m(k,55)|0)+m(t,-29)|0)>>o,n=(n|0)>=32767?32767:n,n=u+((n|0)<=-32768?-32768:n)|0,k=(n|0)>=0?(e|0)>(n|0)?n:e:0,X[v+6>>1]=k,A=A+1|0,(A|0)!=4;);}}function _h(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;k=B-48|0,B=k,A=D0(r),i[e+52>>2]=A&16777215,l[e+48|0]=A>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[k|0]=0,l[k+11|0]=0,r0(k+24|0,2,100,k),l[k+11|0]>=0)break i;G(i[k>>2]);break i}if(A=i[19565],i[k+24>>2]=i[19564],i[k+28>>2]=A,A=k+32|0,l[78275]>=0){n=i[19567],i[A>>2]=i[19566],i[A+4>>2]=n,i[A+8>>2]=i[19568];break i}_0(A,i[19566],i[19567])}l[k+43|0]<0&&G(i[k+32>>2]);i:{if(s[e+48|0]){h4(f,e,2458);break i}i[k+16>>2]=0,i[k+20>>2]=0,i[k+8>>2]=0,i[k+12>>2]=0,i[k>>2]=0,i[k+4>>2]=0,i[e+64>>2]=0,i[e+68>>2]=1,i[e+56>>2]=0,i[e+60>>2]=0,A=i[k+4>>2],n=i[k>>2],X[e+72>>1]=n,X[e+74>>1]=n>>>16,X[e+76>>1]=A,X[e+78>>1]=A>>>16,A=i[k+12>>2],n=i[k+8>>2],X[e+80>>1]=n,X[e+82>>1]=n>>>16,X[e+84>>1]=A,X[e+86>>1]=A>>>16,A=i[k+20>>2],n=i[k+16>>2],X[e+88>>1]=n,X[e+90>>1]=n>>>16,X[e+92>>1]=A,X[e+94>>1]=A>>>16,i[e+104>>2]=0,i[e+108>>2]=0,i[e+96>>2]=0,i[e+100>>2]=1072693248,i[e+112>>2]=0,i[e+116>>2]=0,i[e+120>>2]=0,i[e+124>>2]=0,i[e+128>>2]=0,A=i[e+52>>2],A&1&&(l[e+136|0]=1,_=e,v=D0(r),i[_+56>>2]=v,A=i[e+52>>2]),A&2&&(l[e+137|0]=1,_=e,v=D0(r),i[_+60>>2]=v,A=i[e+52>>2]),A&4&&(l[e+138|0]=1,_=e,v=D0(r),i[_+64>>2]=v,A=i[e+52>>2]);r:{if(!(A&8))break r;l[e+139|0]=1;e:{A:switch(s[e+48|0]){case 0:h=A&16;f:{if(h){A=D0(r),n=D0(r),w=D0(r);break f}A=o3(r),n=o3(r),w=o3(r)}if(l[e+68|0]=1,t=+(16384<>>0),o=+(w|0)/t,i0[e+88>>3]=o,u=+(n|0)/t,i0[e+80>>3]=u,t=+(A|0)/t,i0[e+72>>3]=t,t=o*o+(t*t+u*u),!(t>1))break e;if(e=U(48),i[k>>2]=e,i[k+4>>2]=47,i[k+8>>2]=-2147483600,r=s[2409]|s[2410]<<8|(s[2411]<<16|s[2412]<<24),A=s[2405]|s[2406]<<8|(s[2407]<<16|s[2408]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+47|0]=0,r=s[2448]|s[2449]<<8|(s[2450]<<16|s[2451]<<24),A=s[2444]|s[2445]<<8|(s[2446]<<16|s[2447]<<24),l[e+39|0]=A,l[e+40|0]=A>>>8,l[e+41|0]=A>>>16,l[e+42|0]=A>>>24,l[e+43|0]=r,l[e+44|0]=r>>>8,l[e+45|0]=r>>>16,l[e+46|0]=r>>>24,r=s[2441]|s[2442]<<8|(s[2443]<<16|s[2444]<<24),A=s[2437]|s[2438]<<8|(s[2439]<<16|s[2440]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[2433]|s[2434]<<8|(s[2435]<<16|s[2436]<<24),A=s[2429]|s[2430]<<8|(s[2431]<<16|s[2432]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[2425]|s[2426]<<8|(s[2427]<<16|s[2428]<<24),A=s[2421]|s[2422]<<8|(s[2423]<<16|s[2424]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[2417]|s[2418]<<8|(s[2419]<<16|s[2420]<<24),A=s[2413]|s[2414]<<8|(s[2415]<<16|s[2416]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,0,k),l[k+11|0]>=0)break i;G(i[k>>2]);break i;case 1:break A;default:break r}_=e,Z=+(D0(r)|0)*152587890625e-16,i0[_+104>>3]=Z,_=e,Z=+(D0(r)|0)*152587890625e-16,i0[_+112>>3]=Z,_=e,Z=+(D0(r)|0)*152587890625e-16,i0[_+120>>3]=Z;break r}i0[e+96>>3]=ss(1-t)}if(s[e+52|0]&32&&(l[e+140|0]=1,_=e,v=D0(r),i[_+128>>2]=v),s[r+20|0]==1){if(l[k|0]=0,l[k+11|0]=0,r0(f,2,100,k),l[k+11|0]>=0)break i;G(i[k>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+48|0}function vh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0;e=B-32|0,B=e,u=U0(i[r>>2],0),h=U0(i[r>>2],1),w=U0(i[r>>2],2),D=H2(i[r>>2],6),D&&(E=U0(i[r>>2],6));i:{if(!(!(u>>>0>8|h>>>0>8)&w>>>0<9)){i[f>>2]=0,i[f+4>>2]=0;break i}if(!((u|0)==(h|0)&(u|0)==(w|0))){i[f>>2]=0,i[f+4>>2]=0;break i}A=i[r>>2],W=i[A+48>>2],W&&(i[W+4>>2]=i[W+4>>2]+1,A=i[r>>2]),n=i[A+28>>2],k=i[A+24>>2],A=U(136),i[A>>2]=72792,i[A+4>>2]=0,i[A+8>>2]=0,B0(A+20|0,0,104),t=i[A+4>>2],v=t+1|0,i[A+4>>2]=v,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,o=A- -64|0,i[o>>2]=0,i[o+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,o=A+12|0,i[A+12>>2]=o,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=t,i[A+16>>2]=A,v||(V[i[i[A>>2]+8>>2]](A),g(A)),i[o+36>>2]=1,i[o+32>>2]=0,i[o+28>>2]=n,i[o+24>>2]=k,v=(n+1|0)/2|0,t=(k+1|0)/2|0;r:{e:{if(!J0(o,0,k,n,u)||!J0(o,1,t,v,h)||!J0(o,2,t,v,w)||D&&!J0(o,6,k,n,E))break e;if(i[e+28>>2]=0,i[e+24>>2]=0,i[e+20>>2]=0,i[e+16>>2]=0,i[e+12>>2]=0,i[e+8>>2]=0,i[e+4>>2]=0,i[e>>2]=0,E=v0(i[r>>2],0,e+28|0),u=v0(i[r>>2],1,e+24|0),h=v0(i[r>>2],2,e+20|0),z=v0(o,0,e+12|0),H=v0(o,1,e+8|0),a=v0(o,2,e+4|0),D&&(q=v0(i[r>>2],6,e+16|0),d=v0(o,6,e)),Z=n&1,!(!Z|(k|0)<2))for(J=k-1|0,w=v-1|0,I=n-1|0,r=0;_=r>>>1|0,R=u+(m(I,i[e+24>>2])+r|0)|0,l[_+(m(w,i[e+8>>2])+H|0)|0]=(s[R|0]+s[R+1|0]|0)+1>>>1,p=_+(m(w,i[e+4>>2])+a|0)|0,_=h+(m(I,i[e+20>>2])+r|0)|0,l[p|0]=(s[_|0]+s[_+1|0]|0)+1>>>1,r=r+2|0,(J|0)>(r|0););w=n-1|0;A:{if(!(k&1))break A;if((n|0)>=2)for(_=(t+a|0)-1|0,I=(k+h|0)-1|0,R=(t+H|0)-1|0,J=(k+u|0)-1|0,r=0;y=r>>>1|0,p=i[e+24>>2],S=s[J+m(p,r)|0],C=p,p=r|1,l[R+m(y,i[e+8>>2])|0]=(S+s[J+m(C,p)|0]|0)+1>>>1,C=_+m(y,i[e+4>>2])|0,y=i[e+20>>2],l[C|0]=(s[I+m(y,r)|0]+s[I+m(y,p)|0]|0)+1>>>1,r=r+2|0,(w|0)>(r|0););if(!Z)break A;r=v-1|0,l[(t+(m(r,i[e+8>>2])+H|0)|0)-1|0]=s[((u+m(w,i[e+24>>2])|0)+k|0)-1|0],l[(t+(m(r,i[e+4>>2])+a|0)|0)-1|0]=s[((h+m(w,i[e+20>>2])|0)+k|0)-1|0]}A:{f:{if((n|0)>=2){if((k|0)<2)break f;for(J=k-1|0,t=0;;){for(v=t>>>1|0,I=t|1,r=0;Z=i[e+20>>2],_=(h+m(Z,I)|0)+r|0,R=s[_+1|0],_=s[_|0],Z=h+(m(t,Z)+r|0)|0,y=s[Z|0],Z=s[Z+1|0],p=r>>>1|0,C=i[e+24>>2],S=u+(m(C,t)+r|0)|0,C=(u+m(I,C)|0)+r|0,l[p+(m(v,i[e+8>>2])+H|0)|0]=(((s[S|0]+s[S+1|0]|0)+s[C|0]|0)+s[C+1|0]|0)+2>>>2,l[p+(m(v,i[e+4>>2])+a|0)|0]=(R+(_+(Z+y|0)|0)|0)+2>>>2,r=r+2|0,(J|0)>(r|0););if(t=t+2|0,!((w|0)>(t|0)))break}}if((n|0)<=0)break A}if(D){for(r=0;l0(m(i[e+12>>2],r)+z|0,E+m(i[e+28>>2],r)|0,k),l0(m(i[e>>2],r)+d|0,m(i[e+16>>2],r)+q|0,k),r=r+1|0,(n|0)!=(r|0););break A}u=n&1;f:{if(!w){r=0;break f}for(n=n&-2,r=0,t=0;l0(m(i[e+12>>2],r)+z|0,E+m(i[e+28>>2],r)|0,k),h=r|1,l0(m(h,i[e+12>>2])+z|0,E+m(h,i[e+28>>2])|0,k),r=r+2|0,t=t+2|0,(n|0)!=(t|0););}if(!u)break A;l0(m(i[e+12>>2],r)+z|0,E+m(i[e+28>>2],r)|0,k)}i[f+4>>2]=A,i[f>>2]=o;break r}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(!W||(f=i[W+4>>2],i[W+4>>2]=f-1,f))break i;V[i[i[W>>2]+8>>2]](W),g(W)}B=e+32|0}function CA(f){var e=0,r=0,A=0,k=0,n=0,t=0,o=0;s[100176]||(A=B-16|0,B=A,s[100168]||(k=B-16|0,B=k,i[k+12>>2]=1,i[25003]=i[k+12>>2]-1,i[25002]=66952,i[25002]=61792,i[25002]=60312,e=B-16|0,B=e,i[25004]=0,i[25005]=0,i[e+12>>2]=0,i[25006]=0,l[100148]=0,i[e+4>>2]=100016,l[e+10|0]=0,r=B-16|0,B=r,L9()>>>0<30&&(o4(),P()),ut(r+8|0,100028,30),n=i[r+8>>2],i[25005]=n,i[25004]=n,i[25006]=(i[r+12>>2]<<2)+n,B=r+16|0,J9(30),l[e+10|0]=1,B=e+16|0,G6(100152,15510),ao(100016),i[25360]=0,i[25359]=66952,i[25359]=61792,i[25359]=62900,f1(101436,r1(99840)),i[25362]=0,i[25361]=66952,i[25361]=61792,i[25361]=62932,f1(101444,r1(99848)),i[25364]=0,i[25363]=66952,i[25363]=61792,l[101464]=0,i[25365]=0,i[25363]=60332,i[25365]=60384,f1(101452,r1(100192)),i[25368]=0,i[25367]=66952,i[25367]=61792,i[25367]=61848,f1(101468,r1(100184)),i[25370]=0,i[25369]=66952,i[25369]=61792,i[25369]=61996,f1(101476,r1(100200)),i[25372]=0,i[25371]=66952,i[25371]=61792,i[25371]=61416,t=101492,o=M2(),i[t>>2]=o,f1(101484,r1(100208)),i[25375]=0,i[25374]=66952,i[25374]=61792,i[25374]=62144,f1(101496,r1(100216)),i[25377]=0,i[25376]=66952,i[25376]=61792,i[25376]=62376,f1(101504,r1(100232)),i[25379]=0,i[25378]=66952,i[25378]=61792,i[25378]=62260,f1(101512,r1(100224)),i[25381]=0,i[25380]=66952,i[25380]=61792,i[25380]=62492,f1(101520,r1(100240)),i[25383]=0,i[25382]=66952,i[25382]=61792,X[50768]=11310,i[25382]=61464,e=B-16|0,B=e,i[25385]=0,i[25386]=0,i[25387]=0,B=e+16|0,f1(101528,r1(100248)),i[25389]=0,i[25388]=66952,i[25388]=61792,i[25390]=46,i[25391]=44,i[25388]=61504,e=B-16|0,B=e,i[25392]=0,i[25393]=0,i[25394]=0,B=e+16|0,f1(101552,r1(100256)),i[25396]=0,i[25395]=66952,i[25395]=61792,i[25395]=62964,f1(101580,r1(99856)),i[25398]=0,i[25397]=66952,i[25397]=61792,i[25397]=63208,f1(101588,r1(99864)),i[25400]=0,i[25399]=66952,i[25399]=61792,i[25399]=63420,f1(101596,r1(99872)),i[25402]=0,i[25401]=66952,i[25401]=61792,i[25401]=63652,f1(101604,r1(99880)),i[25404]=0,i[25403]=66952,i[25403]=61792,i[25403]=64636,f1(101612,r1(99920)),i[25406]=0,i[25405]=66952,i[25405]=61792,i[25405]=64784,f1(101620,r1(99928)),i[25408]=0,i[25407]=66952,i[25407]=61792,i[25407]=64900,f1(101628,r1(99936)),i[25410]=0,i[25409]=66952,i[25409]=61792,i[25409]=65016,f1(101636,r1(99944)),i[25412]=0,i[25411]=66952,i[25411]=61792,i[25411]=65132,f1(101644,r1(99952)),i[25414]=0,i[25413]=66952,i[25413]=61792,i[25413]=65296,f1(101652,r1(99960)),i[25416]=0,i[25415]=66952,i[25415]=61792,i[25415]=65460,f1(101660,r1(99968)),i[25418]=0,i[25417]=66952,i[25417]=61792,i[25417]=65624,f1(101668,r1(99976)),i[25420]=0,i[25419]=66952,i[25419]=61792,i[25421]=66880,i[25419]=63852,i[25421]=63900,f1(101676,r1(99888)),i[25423]=0,i[25422]=66952,i[25422]=61792,i[25424]=66916,i[25422]=64116,i[25424]=64164,f1(101688,r1(99896)),i[25426]=0,i[25425]=66952,i[25425]=61792,vo(101708),i[25425]=64352,f1(101700,r1(99904)),i[25429]=0,i[25428]=66952,i[25428]=61792,vo(101720),i[25428]=64508,f1(101712,r1(99912)),i[25432]=0,i[25431]=66952,i[25431]=61792,i[25431]=65788,f1(101724,r1(99984)),i[25434]=0,i[25433]=66952,i[25433]=61792,i[25433]=65908,f1(101732,r1(99992)),B=k+16|0,i[A+8>>2]=100008,i[25041]=i[A+8>>2],l[100168]=1),B=A+16|0,e=i[25041],i[25043]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),l[100176]=1),e=f,f=i[25043],i[e>>2]=f,(f|0)!=100008&&(i[f+4>>2]=i[f+4>>2]+1)}function v8(f,e,r,A,k,n,t,o,u,h){var w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0;w=u<<2,Z=i[w+45024>>2]+n|0,w=i[w+45008>>2],p=Z+w|0,C=h-8|0,h=i[(o<<2)+45008>>2];i:{r:switch(o|0){case 0:if(v=0-w|0,(Z|0)<=(v|0)|(k|0)<=0)break i;for(I=(w<<1)+t|0,y=r-(h<<1)|0,E=k&2147483644,W=k&3,J=k>>>0<4;;){if(h=(v<<1)+I|0,w=(m(A,v)<<1)+y|0,_=0,!J)for(;X[h>>1]=Q[w>>1],r=p<<1,h=r+h|0,X[h>>1]=Q[w+2>>1],h=r+h|0,X[h>>1]=Q[w+4>>1],h=r+h|0,X[h>>1]=Q[w+6>>1],h=r+h|0,w=w+8|0,_=_+4|0,(E|0)!=(_|0););if(r=0,W)for(;X[h>>1]=Q[w>>1],w=w+2|0,h=(p<<1)+h|0,r=r+1|0,(W|0)!=(r|0););if(v=v+1|0,(Z|0)==(v|0))break}break i;case 1:if(_=0-w|0,(Z|0)<=(_|0)|(k|0)<=0)break i;for(v=(w<<1)+t|0,W=r-(h<<1)|0;;){for(h=v+(_<<1)|0,w=W+(m(A,_)<<1)|0,r=0;X[h>>1]=Q[w+12>>1]+((((((Q[w+2>>1]<<2)-Q[w>>1]|0)+m(Q[w+4>>1],-10)|0)+m(Q[w+6>>1],58)|0)+m(Q[w+8>>1],17)|0)+m(Q[w+10>>1],-5)|0)>>C,w=w+2|0,h=(p<<1)+h|0,r=r+1|0,(k|0)!=(r|0););if(_=_+1|0,(Z|0)==(_|0))break}break i;case 2:if(_=0-w|0,(Z|0)<=(_|0)|(k|0)<=0)break i;for(v=(w<<1)+t|0,W=r-(h<<1)|0;;){for(h=v+(_<<1)|0,w=W+(m(A,_)<<1)|0,r=0;X[h>>1]=(((((Q[w+2>>1]<<2)-Q[w>>1]|0)+m(Q[w+8>>1]+Q[w+6>>1]|0,40)|0)+(Q[w+12>>1]<<2)|0)-Q[w+14>>1]|0)+m(Q[w+10>>1]+Q[w+4>>1]|0,-11)>>C,w=w+2|0,h=(p<<1)+h|0,r=r+1|0,(k|0)!=(r|0););if(_=_+1|0,(Z|0)==(_|0))break}break i;case 3:break r;default:break i}if(_=0-w|0,(Z|0)<=(_|0)|(k|0)<=0)break i;for(v=(w<<1)+t|0,W=r-(h<<1)|0;;){for(h=v+(_<<1)|0,w=W+(m(A,_)<<1)|0,r=0;X[h>>1]=(((((Q[w>>1]+m(Q[w+2>>1],-5)|0)+m(Q[w+4>>1],17)|0)+m(Q[w+6>>1],58)|0)+m(Q[w+8>>1],-10)|0)+(Q[w+10>>1]<<2)|0)-Q[w+12>>1]>>C,w=w+2|0,h=(p<<1)+h|0,r=r+1|0,(k|0)!=(r|0););if(_=_+1|0,(Z|0)==(_|0))break}}A=o?6:C;i:{r:switch(u|0){case 3:if((k|0)<=0|(n|0)<=0)break i;for(_=0;;){for(h=(_<<1)+f|0,w=(m(_,p)<<1)+t|0,r=0;X[h>>1]=(((((X[w>>1]+m(X[w+2>>1],-5)|0)+m(X[w+4>>1],17)|0)+m(X[w+6>>1],58)|0)+m(X[w+8>>1],-10)|0)+(X[w+10>>1]<<2)|0)-X[w+12>>1]>>A,w=w+2|0,h=(e<<1)+h|0,r=r+1|0,(n|0)!=(r|0););if(_=_+1|0,(_|0)==(k|0))break}break i;case 2:if((k|0)<=0|(n|0)<=0)break i;for(_=0;;){for(h=(_<<1)+f|0,w=(m(_,p)<<1)+t|0,r=0;X[h>>1]=(((((X[w+2>>1]<<2)-X[w>>1]|0)+m(X[w+8>>1]+X[w+6>>1]|0,40)|0)+(X[w+12>>1]<<2)|0)-X[w+14>>1]|0)+m(X[w+10>>1]+X[w+4>>1]|0,-11)>>A,w=w+2|0,h=(e<<1)+h|0,r=r+1|0,(n|0)!=(r|0););if(_=_+1|0,(_|0)==(k|0))break}break i;case 1:if((k|0)<=0)break i;for(_=0,o=(n|0)<=0;;){if(!o)for(h=(_<<1)+f|0,w=(m(_,p)<<1)+t|0,r=0;X[h>>1]=X[w+12>>1]+((((((X[w+2>>1]<<2)-X[w>>1]|0)+m(X[w+4>>1],-10)|0)+m(X[w+6>>1],58)|0)+m(X[w+8>>1],17)|0)+m(X[w+10>>1],-5)|0)>>A,w=w+2|0,h=(e<<1)+h|0,r=r+1|0,(n|0)!=(r|0););if(_=_+1|0,(_|0)==(k|0))break}break i;case 0:break r;default:break i}if((k|0)<=0)break i;for(_=n&2147483644,u=n&3,A=0,Z=(n|0)<=0;;){r:{if(Z)break r;if(h=(A<<1)+f|0,w=(m(A,p)<<1)+t|0,r=0,n>>>0>3)for(;X[h>>1]=Q[w>>1],o=e<<1,h=o+h|0,X[h>>1]=Q[w+2>>1],h=o+h|0,X[h>>1]=Q[w+4>>1],h=o+h|0,X[h>>1]=Q[w+6>>1],h=o+h|0,w=w+8|0,r=r+4|0,(_|0)!=(r|0););if(r=0,!u)break r;for(;X[h>>1]=Q[w>>1],w=w+2|0,h=(e<<1)+h|0,r=r+1|0,(u|0)!=(r|0););}if(A=A+1|0,(k|0)==(A|0))break}}}function mh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0;e=B-32|0,B=e,t=U0(i[r>>2],0),Z=U0(i[r>>2],1),p=U0(i[r>>2],2),R=H2(i[r>>2],6),R&&(u=U0(i[r>>2],6));i:{if(!(!(t>>>0<9|Z>>>0<9)&p>>>0>8)){i[f>>2]=0,i[f+4>>2]=0;break i}if(!((t|0)==(Z|0)&(t|0)==(p|0))){i[f>>2]=0,i[f+4>>2]=0;break i}A=i[r>>2],w=i[A+48>>2],w&&(i[w+4>>2]=i[w+4>>2]+1,A=i[r>>2]),k=i[A+28>>2],o=i[A+24>>2],A=U(136),i[A>>2]=72792,i[A+4>>2]=0,i[A+8>>2]=0,B0(A+20|0,0,104),h=i[A+4>>2],W=h+1|0,i[A+4>>2]=W,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,n=A- -64|0,i[n>>2]=0,i[n+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,n=A+12|0,i[A+12>>2]=n,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=h,i[A+16>>2]=A,W||(V[i[i[A>>2]+8>>2]](A),g(A)),i[n+36>>2]=2,i[n+32>>2]=0,i[n+28>>2]=k,i[n+24>>2]=o,_=(o+1|0)/2|0;r:{e:{if(!J0(n,0,o,k,t)||!J0(n,1,_,k,Z)||!J0(n,2,_,k,p)||R&&!J0(n,6,o,k,u))break e;u=0,i[e+28>>2]=0,i[e+24>>2]=0,i[e+20>>2]=0,i[e+16>>2]=0,i[e+12>>2]=0,i[e+8>>2]=0,i[e+4>>2]=0,i[e>>2]=0,Z=v0(i[r>>2],0,e+28|0),z=v0(i[r>>2],1,e+24|0),H=v0(i[r>>2],2,e+20|0),p=v0(n,0,e+12|0),a=v0(n,1,e+8|0),S=v0(n,2,e+4|0),R?(q=v0(i[r>>2],6,e+16|0),d=v0(n,6,e),u=i[e>>2]/2|0,r=i[e+16>>2]/2|0):r=0,i[e+16>>2]=r,i[e>>2]=u,i[e+28>>2]=i[e+28>>2]/2,u=i[e+24>>2]/2|0,i[e+24>>2]=u,h=i[e+20>>2]/2|0,i[e+20>>2]=h,i[e+12>>2]=i[e+12>>2]/2,W=i[e+8>>2]/2|0,i[e+8>>2]=W,E=i[e+4>>2]/2|0,i[e+4>>2]=E;A:{if(!(o&1)|(k|0)<2)break A;if(r=_<<1,t=(r+S|0)-2|0,C=o<<1,_=(C+H|0)-2|0,J=(r+a|0)-2|0,C=(C+z|0)-2|0,v=k-1|0,D=v&1,r=0,(k|0)!=2)for(I=v&-2;X[J+(m(r,W)<<1)>>1]=Q[C+(m(r,u)<<1)>>1],X[t+(m(r,E)<<1)>>1]=Q[_+(m(r,h)<<1)>>1],v=r|1,X[J+(m(v,W)<<1)>>1]=Q[C+(m(u,v)<<1)>>1],X[t+(m(v,E)<<1)>>1]=Q[_+(m(h,v)<<1)>>1],r=r+2|0,y=y+2|0,(I|0)!=(y|0););if(!D)break A;X[J+(m(r,W)<<1)>>1]=Q[C+(m(r,u)<<1)>>1],X[t+(m(r,E)<<1)>>1]=Q[_+(m(r,h)<<1)>>1]}A:{if((k|0)<=0)break A;if((o|0)>=2){for(_=o-1|0,t=0;;){for(J=(m(t,E)<<1)+S|0,C=(m(t,W)<<1)+a|0,v=(m(t,h)<<1)+H|0,D=(m(t,u)<<1)+z|0,r=0;I=r<<1,y=I+v|0,A0=Q[y>>1],y=Q[y+2>>1],I=I+D|0,X[r+C>>1]=(Q[I>>1]+Q[I+2>>1]|0)+1>>>1,X[r+J>>1]=(y+A0|0)+1>>>1,r=r+2|0,(_|0)>(r|0););if(t=t+1|0,(t|0)==(k|0))break}if((k|0)<=0)break A}if(o=o<<1,R){for(r=0;l0(p+(m(i[e+12>>2],r)<<1)|0,Z+(m(i[e+28>>2],r)<<1)|0,o),l0((m(i[e>>2],r)<<1)+d|0,(m(i[e+16>>2],r)<<1)+q|0,o),r=r+1|0,(k|0)!=(r|0););break A}if(r=0,(k|0)!=1)for(u=k&2147483646,t=0;l0(p+(m(i[e+12>>2],r)<<1)|0,Z+(m(i[e+28>>2],r)<<1)|0,o),h=r|1,l0(p+(m(h,i[e+12>>2])<<1)|0,Z+(m(h,i[e+28>>2])<<1)|0,o),r=r+2|0,t=t+2|0,(u|0)!=(t|0););if(!(k&1))break A;l0(p+(m(i[e+12>>2],r)<<1)|0,Z+(m(i[e+28>>2],r)<<1)|0,o)}i[f+4>>2]=A,i[f>>2]=n;break r}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(!w||(f=i[w+4>>2],i[w+4>>2]=f-1,f))break i;V[i[i[w>>2]+8>>2]](w),g(w)}B=e+32|0}function Bh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=Y(0),_=0,v=0,Z=0,p=Y(0),W=0,C=0,I=0,y=Y(0),E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=Y(0),f0=0,n0=0,h0=0,j=0,L=Y(0),p0=0,X0=0,G0=0,I0=0,Q0=0,F0=0,Y0=0,S0=0;o=B+-64|0,B=o,e=i[r>>2],C=i[e+28>>2],I=i[e+24>>2],A=U0(e,0),E=H2(i[r>>2],6),n=i[k+4>>2],t=U(136),i[t>>2]=72792,i[t+4>>2]=0,i[t+8>>2]=0,B0(t+20|0,0,104),e=i[t+4>>2],W=e+1|0,i[t+4>>2]=W,i[t+56>>2]=0,i[t+60>>2]=0,i[t+44>>2]=99,i[t+48>>2]=99,i[t+32>>2]=3795,u=t- -64|0,i[u>>2]=0,i[u+4>>2]=0,i[t+132>>2]=0,i[t+124>>2]=0,i[t+128>>2]=0,i[t+84>>2]=1,i[t+88>>2]=1,i[t+72>>2]=t+76,i[t+92>>2]=0,i[t+96>>2]=0,i[t+100>>2]=0,i[t+104>>2]=0,i[t+108>>2]=0,i[t+112>>2]=0,l[t+113|0]=0,l[t+114|0]=0,l[t+115|0]=0,l[t+116|0]=0,l[t+117|0]=0,l[t+118|0]=0,l[t+119|0]=0,l[t+120|0]=0,_=t+12|0,i[t+12>>2]=_,i[t+8>>2]=i[t+8>>2]+1,i[t+4>>2]=e,i[t+16>>2]=t,W||(V[i[i[t>>2]+8>>2]](t),g(t)),i[_+36>>2]=i[k+4>>2],i[_+32>>2]=1,i[_+28>>2]=C,i[_+24>>2]=I;i:{r:{if(!J0(_,10,I,C,A)||E&&!J0(_,6,I,C,A))break r;if(i[o+60>>2]=0,i[o+56>>2]=0,i[o+52>>2]=0,i[o+48>>2]=0,i[o+44>>2]=0,Z=v0(_,10,o+60|0),H=v0(i[r>>2],0,o+56|0),a=v0(i[r>>2],1,o+52|0),S=v0(i[r>>2],2,o+48|0),E&&(q=v0(i[r>>2],6,o+44|0)),i[o+36>>2]=-1086926434,i[o+40>>2]=1071829221,i[o+28>>2]=1068725436,i[o+32>>2]=-1095748968,l[o+24|0]=1,r=i[r>>2],e=i[r+44>>2],v=i[r+48>>2],v&&(i[v+4>>2]=i[v+4>>2]+1),k=1,e&&(k=s[e+10|0],V6(o+4|0,Q[e+8>>1],Q[e+4>>1]),i[o+40>>2]=i[o+20>>2],e=i[o+16>>2],i[o+32>>2]=i[o+12>>2],i[o+36>>2]=e,e=i[o+8>>2],i[o+24>>2]=i[o+4>>2],i[o+28>>2]=e),!((C|0)<=0|(I|0)<=0))for(e=n&-2,J=(e|0)==14,d=E?8:6,A0=Y(16<>>8|0,z=1<>2],p0=i[o+48>>2],X0=i[o+52>>2],G0=i[o+56>>2],R=k&1;;){for(I0=((m(r,G0)|0)/2<<1)+H|0,A=r>>>1|0,Q0=((m(A,p0)|0)/2<<1)+S|0,F0=((m(A,X0)|0)/2<<1)+a|0,k=0;;){A=k&-2,w=Y(Q[A+Q0>>1]-z|0),y=R?w:Y(w*Y(1.142899990081787)),w=Y(Q[(k<<1)+I0>>1]),w=R?w:Y(Y(w-A0)*Y(1.1689000129699707)),p=Y(Y(Y(L*y)+w)+Y(.5));e:{if(Y(d0(p))>1]-z|0),p=R?p:Y(p*Y(1.142899990081787)),n=0,A=0;e:{if((u|0)<0)break e;if((e|0)<(u|0)){n=e,A=W;break e}n=u,A=u>>>8|0}Y0=n,n=0,y=Y(Y(Y(Z0[o+36>>2]*y)+Y(Y(Z0[o+32>>2]*p)+w))+Y(.5));e:{if(Y(d0(y))>>8|0,u=h}S0=u,D=0,w=Y(Y(Y(Z0[o+40>>2]*p)+w)+Y(.5));e:{if(Y(d0(w))>>8|0,u=h}if(h=m(k,d),l[(h+(m(i[o+60>>2],r)+Z|0)|0)+J|0]=A,l[((h+(m(i[o+60>>2],r)+Z|0)|0)+J|0)+2|0]=n,l[((h+(m(i[o+60>>2],r)+Z|0)|0)+J|0)+4|0]=D,l[((h|n0)+Z|0)+m(i[o+60>>2],r)|0]=Y0,l[(h+j|0)+m(i[o+60>>2],r)|0]=S0,l[(h+h0|0)+m(i[o+60>>2],r)|0]=u,E&&(A=k<<3,n=(((m(i[o+44>>2],r)|0)/2|0)+k<<1)+q|0,l[((A+(m(i[o+60>>2],r)+Z|0)|0)+J|0)+6|0]=s[n+1|0],l[((A|f0)+Z|0)+m(i[o+60>>2],r)|0]=s[n|0]),k=k+1|0,(I|0)==(k|0))break}if(r=r+1|0,(C|0)==(r|0))break}if(i[f+4>>2]=t,i[f>>2]=_,!v||(f=i[v+4>>2],i[v+4>>2]=f-1,f))break i;V[i[i[v>>2]+8>>2]](v),g(v);break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[t+4>>2],i[t+4>>2]=f-1,f)break i;V[i[i[t>>2]+8>>2]](t),g(t)}B=o- -64|0}function m8(f,e,r,A,k,n,t,o,u){var h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0;h=u<<2,Z=i[h+45024>>2]+n|0,h=i[h+45008>>2],p=Z+h|0,w=i[(o<<2)+45008>>2];i:{r:switch(o|0){case 0:if(v=0-h|0,(Z|0)<=(v|0)|(k|0)<=0)break i;for(C=(h<<1)+t|0,I=r-w|0,y=k&2147483644,W=k&3,E=k>>>0<4;;){if(w=(v<<1)+C|0,h=m(A,v)+I|0,_=0,!E)for(;X[w>>1]=s[h|0],r=p<<1,w=r+w|0,X[w>>1]=s[h+1|0],w=r+w|0,X[w>>1]=s[h+2|0],w=r+w|0,X[w>>1]=s[h+3|0],w=r+w|0,h=h+4|0,_=_+4|0,(y|0)!=(_|0););if(r=0,W)for(;X[w>>1]=s[h|0],h=h+1|0,w=(p<<1)+w|0,r=r+1|0,(W|0)!=(r|0););if(v=v+1|0,(Z|0)==(v|0))break}break i;case 1:if(_=0-h|0,(Z|0)<=(_|0)|(k|0)<=0)break i;for(v=(h<<1)+t|0,W=r-w|0;;){for(w=v+(_<<1)|0,h=W+m(A,_)|0,r=0;X[w>>1]=s[h+6|0]+((((((s[h+1|0]<<2)-s[h|0]|0)+m(s[h+2|0],-10)|0)+m(s[h+3|0],58)|0)+m(s[h+4|0],17)|0)+m(s[h+5|0],-5)|0),h=h+1|0,w=(p<<1)+w|0,r=r+1|0,(k|0)!=(r|0););if(_=_+1|0,(Z|0)==(_|0))break}break i;case 2:if(_=0-h|0,(Z|0)<=(_|0)|(k|0)<=0)break i;for(v=(h<<1)+t|0,W=r-w|0;;){for(w=v+(_<<1)|0,h=W+m(A,_)|0,r=0;X[w>>1]=(((((s[h+1|0]<<2)-s[h|0]|0)+m(s[h+4|0]+s[h+3|0]|0,40)|0)+(s[h+6|0]<<2)|0)-s[h+7|0]|0)+m(s[h+5|0]+s[h+2|0]|0,-11),h=h+1|0,w=(p<<1)+w|0,r=r+1|0,(k|0)!=(r|0););if(_=_+1|0,(Z|0)==(_|0))break}break i;case 3:break r;default:break i}if(_=0-h|0,(Z|0)<=(_|0)|(k|0)<=0)break i;for(v=(h<<1)+t|0,W=r-w|0;;){for(w=v+(_<<1)|0,h=W+m(A,_)|0,r=0;X[w>>1]=(((((s[h|0]+m(s[h+1|0],-5)|0)+m(s[h+2|0],17)|0)+m(s[h+3|0],58)|0)+m(s[h+4|0],-10)|0)+(s[h+5|0]<<2)|0)-s[h+6|0],h=h+1|0,w=(p<<1)+w|0,r=r+1|0,(k|0)!=(r|0););if(_=_+1|0,(Z|0)==(_|0))break}}A=o?6:0;i:{r:switch(u|0){case 3:if((k|0)<=0|(n|0)<=0)break i;for(_=0;;){for(w=(_<<1)+f|0,h=(m(_,p)<<1)+t|0,r=0;X[w>>1]=(((((X[h>>1]+m(X[h+2>>1],-5)|0)+m(X[h+4>>1],17)|0)+m(X[h+6>>1],58)|0)+m(X[h+8>>1],-10)|0)+(X[h+10>>1]<<2)|0)-X[h+12>>1]>>A,h=h+2|0,w=(e<<1)+w|0,r=r+1|0,(n|0)!=(r|0););if(_=_+1|0,(_|0)==(k|0))break}break i;case 2:if((k|0)<=0|(n|0)<=0)break i;for(_=0;;){for(w=(_<<1)+f|0,h=(m(_,p)<<1)+t|0,r=0;X[w>>1]=(((((X[h+2>>1]<<2)-X[h>>1]|0)+m(X[h+8>>1]+X[h+6>>1]|0,40)|0)+(X[h+12>>1]<<2)|0)-X[h+14>>1]|0)+m(X[h+10>>1]+X[h+4>>1]|0,-11)>>A,h=h+2|0,w=(e<<1)+w|0,r=r+1|0,(n|0)!=(r|0););if(_=_+1|0,(_|0)==(k|0))break}break i;case 1:if((k|0)<=0)break i;for(_=0,o=(n|0)<=0;;){if(!o)for(w=(_<<1)+f|0,h=(m(_,p)<<1)+t|0,r=0;X[w>>1]=X[h+12>>1]+((((((X[h+2>>1]<<2)-X[h>>1]|0)+m(X[h+4>>1],-10)|0)+m(X[h+6>>1],58)|0)+m(X[h+8>>1],17)|0)+m(X[h+10>>1],-5)|0)>>A,h=h+2|0,w=(e<<1)+w|0,r=r+1|0,(n|0)!=(r|0););if(_=_+1|0,(_|0)==(k|0))break}break i;case 0:break r;default:break i}if((k|0)<=0)break i;for(_=n&2147483644,u=n&3,A=0,Z=(n|0)<=0;;){r:{if(Z)break r;if(w=(A<<1)+f|0,h=(m(A,p)<<1)+t|0,r=0,n>>>0>3)for(;X[w>>1]=Q[h>>1],o=e<<1,w=o+w|0,X[w>>1]=Q[h+2>>1],w=o+w|0,X[w>>1]=Q[h+4>>1],w=o+w|0,X[w>>1]=Q[h+6>>1],w=o+w|0,h=h+8|0,r=r+4|0,(_|0)!=(r|0););if(r=0,!u)break r;for(;X[w>>1]=Q[h>>1],h=h+2|0,w=(e<<1)+w|0,r=r+1|0,(u|0)!=(r|0););}if(A=A+1|0,(k|0)==(A|0))break}}}function Rk(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0;C=B-2176|0,B=C;i:{if((e|0)<=0)break i;p=e>>>1|0;r:{if(e>>>0>=8){for(h=e>>>2|0,z=e&2,D=p&1073741822,t=C- -64|0,k=C;;){e:{if((e|0)==1)break e;if(w=(m(A,J)<<1)+r|0,n=0,o=0,(p|0)!=1)for(;_=n<<1,u=_+w|0,Z=t+_|0,_=n+p<<1,v=_+w|0,X[Z>>1]=Q[v>>1]+Q[u>>1],X[t+_>>1]=Q[u>>1]-Q[v>>1],u=n|1,_=u<<1,Z=_+t|0,u=u+p<<1,v=u+w|0,_=w+_|0,X[Z>>1]=Q[v>>1]+Q[_>>1],X[t+u>>1]=Q[_>>1]-Q[v>>1],n=n+2|0,o=o+2|0,(D|0)!=(o|0););if(!z)break e;u=n<<1,o=u+w|0,n=n+p<<1,w=n+w|0,X[t+u>>1]=Q[w>>1]+Q[o>>1],X[n+t>>1]=Q[o>>1]-Q[w>>1]}for(o=h,w=p;;){e:{if(n=t,t=k,!o)break e;for(I=o&536870910,E=o&1,u=0;;){if(k=0,_=0,(o|0)!=1)for(;v=k+u|0,W=v<<1,Z=W+t|0,R=o+v<<1,y=Q[R+n>>1],W=Q[n+W>>1],X[Z>>1]=y+W,X[t+R>>1]=W-y,v=v+1|0,W=v<<1,Z=W+t|0,v=o+v<<1,R=Q[v+n>>1],W=Q[n+W>>1],X[Z>>1]=R+W,X[t+v>>1]=W-R,k=k+2|0,_=_+2|0,(I|0)!=(_|0););if(E&&(k=k+u|0,_=k<<1,Z=_+t|0,k=k+o<<1,v=Q[k+n>>1],_=Q[n+_>>1],X[Z>>1]=v+_,X[k+t>>1]=_-v),u=u+w|0,!((u|0)<(e|0)))break}if(w=w>>>1|0,u=o>>>0>3,o=o>>>1|0,k=n,u)continue}break}for(o=m(e,J),k=0;w=C+128|0,u=k|1,_=(u<<1)+t|0,v=(k<<1)+t|0,X[w+(k+o<<1)>>1]=Q[_>>1]+Q[v>>1],X[w+(o+u<<1)>>1]=Q[v>>1]-Q[_>>1],k=k+2|0,(k|0)<(e|0););if(k=n,J=J+1|0,(J|0)==(e|0))break}break r}for(k=e-1|0,_=k&2,J=(k>>>1|0)+1&-2,v=p<<1,k=C- -64|0,z=v+k|0,D=p+2<<1,I=D+k|0,E=p+1<<1,W=E+k|0,R=e>>>0<3;;){e:{if((e|0)==1||(k=(m(A,o)<<1)+r|0,n=Q[k+v>>1],t=Q[k>>1],X[C+64>>1]=n+t,X[z>>1]=t-n,e>>>0<4)||(n=Q[k+E>>1],t=Q[k+2>>1],X[C+66>>1]=n+t,X[W>>1]=t-n,(p|0)==2))break e;n=Q[k+D>>1],k=Q[k+4>>1],X[C+68>>1]=n+k,X[I>>1]=k-n}if(n=m(e,o),t=0,k=0,!R)for(;w=C+128|0,h=C- -64|0,u=t|1,y=Q[h+(u<<1)>>1],Z=Q[h+(t<<1)>>1],X[w+(n+t<<1)>>1]=y+Z,X[w+(n+u<<1)>>1]=Z-y,y=t|2,u=Q[h+(y<<1)>>1],Z=w+(n+y<<1)|0,y=t|3,h=Q[h+(y<<1)>>1],X[Z>>1]=u+h,X[w+(n+y<<1)>>1]=u-h,t=t+4|0,k=k+2|0,(J|0)!=(k|0););if(_||(k=C+128|0,Z=k+(n+t<<1)|0,h=C- -64|0,w=t|1,u=Q[h+(w<<1)>>1],t=Q[h+(t<<1)>>1],X[Z>>1]=u+t,X[k+(n+w<<1)>>1]=t-u),o=o+1|0,(o|0)==(e|0))break}n=C,t=n- -64|0}if((e|0)<=0)break i;for(r=e>>>1|0,J=r>>>0<=1?1:r,A=e>>>2|0,p=0,v=e>>>0<8;;){k=0;r:{if((e|0)==1){k=n;break r}for(;h=C+128|0,w=r+k|0,o=Q[h+(m(w,e)+p<<1)>>1],h=h+(m(e,k)+p<<1)|0,X[(k<<1)+t>>1]=o+Q[h>>1],X[(w<<1)+t>>1]=Q[h>>1]-o,k=k+1|0,(J|0)!=(k|0););if(o=A,w=r,k=n,v)break r;for(;;){if(k=t,t=n,!o)break r;for(z=o&536870910,D=o&1,u=0;;){if(n=0,_=0,(o|0)!=1)for(;h=n+u|0,I=h<<1,Z=I+t|0,E=o+h<<1,W=Q[E+k>>1],I=Q[k+I>>1],X[Z>>1]=W+I,X[t+E>>1]=I-W,h=h+1|0,I=h<<1,Z=I+t|0,h=o+h<<1,E=Q[h+k>>1],I=Q[k+I>>1],X[Z>>1]=E+I,X[t+h>>1]=I-E,n=n+2|0,_=_+2|0,(z|0)!=(_|0););if(D&&(n=n+u|0,h=n<<1,Z=h+t|0,n=n+o<<1,_=Q[n+k>>1],h=Q[k+h>>1],X[Z>>1]=_+h,X[n+t>>1]=h-_),u=u+w|0,!((u|0)<(e|0)))break}if(w=w>>>1|0,h=o>>>0>3,o=o>>>1|0,n=k,!h)break}}for(o=(p<<1)+f|0,n=0;w=n|1,h=(w<<1)+t|0,u=(n<<1)+t|0,X[o+(m(e,n)<<1)>>1]=Q[h>>1]+Q[u>>1],X[o+(m(e,w)<<1)>>1]=Q[u>>1]-Q[h>>1],n=n+2|0,(n|0)<(e|0););if(n=k,p=p+1|0,(p|0)==(e|0))break}}B=C+2176|0}function Dk(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0;C=B;i:{r:{e:{A:{f:{k:{n:{t:{o:{u:{if(!k||!(u0(r,1)&255))break u;if(t){if(f=0,e=M0(r),(e|0)==-99999|(e|0)>=(k|0))break e;f=e^-1}else f=-1;if(h=f+k|0,(h|0)<0)break t;if(e=u0(r,1),f=M0(r),(f|0)==-99999)break i;for(Z=s[(i[n>>2]+m(h,100)|0)+98|0],k=Z+16&496,u=C-k|0,t=u,B=t,o=f^-1,_=f+1|0,w=t-k|0,B=w,k=0;f=u0(r,1),l[k+u|0]=f,t=k+w|0,f&255?f=1:f=u0(r,1),l[t|0]=f,f=(k|0)!=(Z|0),k=k+1|0,!!f;);o=e?o:_,r=m(h,100),e=r+i[n>>2]|0,f=s[e+96|0],e=s[e+97|0];l:{if(!e){t=0;break l}for(_=A- -64|0,t=0,v=e>>>0<17,k=e;;){if(p=i[n>>2],h>>>0>=(i[n+4>>2]-p|0)/100>>>0)break n;if(!v)break k;k=k-1|0,p=o+X[((r+p|0)+(k<<1)|0)+32>>1]|0;s:{if((p|0)>=0||(W=f+k|0,!s[W+w|0]))break s;if((t|0)>15)break i;X[(t<<1)+A>>1]=p,l[t+_|0]=s[u+W|0],t=t+1|0}if(!k)break}}if(!(!s[w+Z|0]|(o|0)>=0)){if((t|0)>15)break i;X[(t<<1)+A>>1]=o,l[(A+t|0)- -64|0]=s[u+Z|0],t=t+1|0}l:{if(!f){l[A+96|0]=t,k=0;break l}for(r=A- -64|0,k=0,_=m(h,100);;){if(v=o+X[(_+i[n>>2]|0)+(k<<1)>>1]|0,!(!s[k+w|0]|(v|0)>=0)){if((t|0)>15)break i;X[(t<<1)+A>>1]=v,l[r+t|0]=s[k+u|0],t=t+1|0}if(k=k+1|0,(f|0)==(k|0))break}if(l[A+96|0]=t,!f){k=0;break l}for(_=A+80|0,v=A+32|0,k=0,p=m(h,100),t=f;;){if(r=t,t=t-1|0,W=o+X[(p+i[n>>2]|0)+(t<<1)>>1]|0,!((W|0)<=0|!s[t+w|0])){if((k|0)>15)break i;X[v+(k<<1)>>1]=W,l[k+_|0]=s[t+u|0],k=k+1|0}if(!((r|0)>1))break}}if(!(!s[w+Z|0]|(o|0)<=0)){if((k|0)>15)break i;X[((k<<1)+A|0)+32>>1]=o,l[(A+k|0)+80|0]=s[u+Z|0],k=k+1|0}if(e)for(r=A+80|0,Z=A+32|0,t=0,h=m(h,100);;){_=o+X[((h+i[n>>2]|0)+(t<<1)|0)+32>>1]|0;l:{if((_|0)<=0||(v=f+t|0,!s[v+w|0]))break l;if((k|0)>15)break i;X[Z+(k<<1)>>1]=_,l[r+k|0]=s[u+v|0],k=k+1|0}if(t=t+1|0,(e|0)==(t|0))break}l[A+97|0]=k;break o}if(n=M0(r),o=M0(r),!((n|0)!=-99999&(o|0)!=-99999))break r;if(i[((l[e+2|0]<<2)+e|0)+524>>2]<(n+o|0)){X[A+96>>1]=0,X[A+98>>1]=0;break r}if(!((o|0)<17&(n|0)<=16))break r;if(l[A+97|0]=o,l[A+96|0]=n,(n|0)>0)for(t=A- -64|0,f=0,k=0,e=0;;){if(u=M0(r),(u|0)==-99999)break e;if(w=u0(r,1),h=(k<<1)+A|0,X[h>>1]=(u^-1)+e,l[k+t|0]=w,e=Q[h>>1],k=k+1|0,(n|0)==(k|0))break}if((o|0)<=0)break o;for(e=A+80|0,n=A+32|0,f=0,k=0,t=0;;){if(u=M0(r),(u|0)==-99999)break e;if(w=u0(r,1),h=n+(k<<1)|0,X[h>>1]=(t+u|0)+1,l[e+k|0]=w,t=Q[h>>1],k=k+1|0,(o|0)==(k|0))break}}if(k=0,l[A+99|0]=0,f=s[A+96|0],!f)break A;if(n=f&1,e=A- -64|0,(f|0)==1){r=0;break f}for(o=f&254,r=0,t=0;u=e+r|0,s[u|0]&&(k=k+1|0,l[A+99|0]=k),s[u+1|0]&&(k=k+1|0,l[A+99|0]=k),r=r+2|0,t=t+2|0,(o|0)!=(t|0););break f}C0(17134,14045,129,3344),P()}C0(18501,14045,174,3344),P()}C0(14916,14045,175,3344),P()}if(!n|!s[e+r|0])break A;k=k+1|0,l[A+99|0]=k}e=s[A+97|0];A:{if(!e)break A;if(n=A+80|0,r=0,(e|0)!=1)for(o=e&254,t=0;u=r+n|0,s[u|0]&&(k=k+1|0,l[A+99|0]=k),s[u+1|0]&&(k=k+1|0,l[A+99|0]=k),r=r+2|0,t=t+2|0,(o|0)!=(t|0););if(!(e&1)|!s[r+n|0])break A;l[A+99|0]=k+1}l[A+98|0]=f+e,f=1}return B=C,f}v2(f,1018,0)}return B=C,0}function Zh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0;e=B-32|0,B=e,k=U0(i[r>>2],0),w=U0(i[r>>2],1),_=U0(i[r>>2],2),C=H2(i[r>>2],6),C&&(v=U0(i[r>>2],6));i:{if(!(!(k>>>0>8|w>>>0>8)&_>>>0<9)){i[f>>2]=0,i[f+4>>2]=0;break i}if(!((k|0)==(w|0)&(k|0)==(_|0))){i[f>>2]=0,i[f+4>>2]=0;break i}A=i[r>>2],h=i[A+48>>2],h&&(i[h+4>>2]=i[h+4>>2]+1,A=i[r>>2]),n=i[A+28>>2],o=i[A+24>>2],A=U(136),i[A>>2]=72792,i[A+4>>2]=0,i[A+8>>2]=0,B0(A+20|0,0,104),u=i[A+4>>2],W=u+1|0,i[A+4>>2]=W,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,t=A- -64|0,i[t>>2]=0,i[t+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,t=A+12|0,i[A+12>>2]=t,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=u,i[A+16>>2]=A,W||(V[i[i[A>>2]+8>>2]](A),g(A)),i[t+36>>2]=3,i[t+32>>2]=0,i[t+28>>2]=n,i[t+24>>2]=o;r:{e:{if(!J0(t,0,o,n,k)||!J0(t,1,o,n,w)||!J0(t,2,o,n,_)||C&&!J0(t,6,o,n,v))break e;k=0,i[e+28>>2]=0,i[e+24>>2]=0,i[e+20>>2]=0,i[e+16>>2]=0,i[e+12>>2]=0,i[e+8>>2]=0,i[e+4>>2]=0,i[e>>2]=0,w=v0(i[r>>2],0,e+28|0),W=v0(i[r>>2],1,e+24|0),y=v0(i[r>>2],2,e+20|0),_=v0(t,0,e+12|0),v=v0(t,1,e+8|0),u=v0(t,2,e+4|0),C&&(R=v0(i[r>>2],6,e+16|0),D=v0(t,6,e));A:{if((n|0)<=0)break A;for(;l[v+m(i[e+8>>2],k)|0]=s[W+m(i[e+24>>2],k)|0],l[u+m(i[e+4>>2],k)|0]=s[m(i[e+20>>2],k)+y|0],k=k+1|0,(n|0)!=(k|0););if(!(o&1)){if((n|0)<=0)break A;for(k=(o+u|0)-1|0,I=(o+v|0)-1|0,r=o>>1,p=(r+y|0)-1|0,E=(r+W|0)-1|0,r=0;l[I+m(i[e+8>>2],r)|0]=s[E+m(i[e+24>>2],r)|0],l[k+m(i[e+4>>2],r)|0]=s[p+m(i[e+20>>2],r)|0],r=r+1|0,(n|0)!=(r|0););}if((n|0)<=0)break A;if((o|0)>=3){for(E=o-1|0,k=0;;){for(r=1;Z=r>>>1|0,p=Z+(m(i[e+20>>2],k)+y|0)|0,I=s[p+1|0],p=s[p|0],Z=Z+(W+m(i[e+24>>2],k)|0)|0,J=s[Z|0],Z=s[Z+1|0],l[(v+m(i[e+8>>2],k)|0)+r|0]=(m(J,3)+Z|0)+2>>>2,l[((v+m(i[e+8>>2],k)|0)+r|0)+1|0]=(m(Z,3)+J|0)+2>>>2,l[(u+m(i[e+4>>2],k)|0)+r|0]=(I+m(p,3)|0)+2>>>2,l[((u+m(i[e+4>>2],k)|0)+r|0)+1|0]=(p+m(I,3)|0)+2>>>2,r=r+2|0,(E|0)>(r|0););if(k=k+1|0,(n|0)==(k|0))break}if((n|0)<=0)break A}if(C){for(r=0;l0(_+m(i[e+12>>2],r)|0,w+m(i[e+28>>2],r)|0,o),l0(m(i[e>>2],r)+D|0,m(i[e+16>>2],r)+R|0,o),r=r+1|0,(n|0)!=(r|0););break A}if(r=0,(n|0)!=1)for(v=n&2147483646,k=0;l0(_+m(i[e+12>>2],r)|0,w+m(i[e+28>>2],r)|0,o),u=r|1,l0(_+m(u,i[e+12>>2])|0,w+m(u,i[e+28>>2])|0,o),r=r+2|0,k=k+2|0,(v|0)!=(k|0););if(!(n&1))break A;l0(_+m(i[e+12>>2],r)|0,w+m(i[e+28>>2],r)|0,o)}i[f+4>>2]=A,i[f>>2]=t;break r}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(!h||(f=i[h+4>>2],i[h+4>>2]=f-1,f))break i;V[i[i[h>>2]+8>>2]](h),g(h)}B=e+32|0}function ph(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0;e=B-16|0,B=e,A=U(136),i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=72792,B0(A+20|0,0,104),k=i[A+4>>2],w=k+1|0,i[A+4>>2]=w,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,n=A- -64|0,i[n>>2]=0,i[n+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,n=A+12|0,i[A+12>>2]=n,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=k,i[A+16>>2]=A,w||(V[i[i[A>>2]+8>>2]](A),g(A)),k=i[r>>2],_=i[k+24>>2],w=i[k+28>>2],k=w,i[n+36>>2]=1,i[n+32>>2]=0,i[n+28>>2]=k,i[n+24>>2]=_,t=(k+1|0)/2|0,h=(_+1|0)/2|0;i:{r:{if(o=U0(i[r>>2],0),!J0(n,0,_,k,o)||!J0(n,1,h,t,o)||!J0(n,2,h,t,o)||(I=H2(i[r>>2],6),I&&(y=U0(i[r>>2],6),!J0(n,6,_,k,y))))break r;e:{if(o>>>0<=8){if(k=0,i[e+12>>2]=0,i[e+8>>2]=0,i[e+4>>2]=0,i[e>>2]=0,h=v0(i[r>>2],0,e),u=v0(n,0,e+4|0),v=v0(n,1,e+12|0),p=v0(n,2,e+8|0),o=1<>2])),B0(p,o,m(t,i[e+8>>2])),(w|0)<=0)break e;if((w|0)!=1)for(o=w&2147483646,t=0;l0(u+m(i[e+4>>2],k)|0,h+m(i[e>>2],k)|0,_),v=k|1,l0(u+m(v,i[e+4>>2])|0,h+m(v,i[e>>2])|0,_),k=k+2|0,t=t+2|0,(o|0)!=(t|0););if(!(w&1))break e;l0(u+m(i[e+4>>2],k)|0,h+m(i[e>>2],k)|0,_);break e}if(i[e+12>>2]=0,i[e+8>>2]=0,i[e+4>>2]=0,i[e>>2]=0,v=v0(i[r>>2],0,e),p=v0(n,0,e+4|0),J=v0(n,1,e+12|0),R=v0(n,2,e+8|0),i[e>>2]=i[e>>2]/2,i[e+4>>2]=i[e+4>>2]/2,(w|0)<=0)break e;if(D=i[e+8>>2]/2|0,z=i[e+12>>2]/2|0,(_|0)>0){for(k=128<>1]=k,X[o+u>>1]=k,W=u|2,X[W+h>>1]=k,X[o+W>>1]=k,W=u|4,X[W+h>>1]=k,X[o+W>>1]=k,u=u|6,X[u+h>>1]=k,X[o+u>>1]=k,t=t+4|0,Z=Z+4|0,(a|0)!=(Z|0););if(u=0,E)for(;Z=t<<1,X[Z+h>>1]=k,X[o+Z>>1]=k,t=t+1|0,u=u+1|0,(E|0)!=(u|0););if(C=C+1|0,(H|0)==(C|0))break}if((w|0)<=0)break e}if(t=_<<1,k=0,(w|0)!=1)for(h=w&2147483646,o=0;l0(p+(m(i[e+4>>2],k)<<1)|0,v+(m(i[e>>2],k)<<1)|0,t),u=k|1,l0(p+(m(u,i[e+4>>2])<<1)|0,v+(m(u,i[e>>2])<<1)|0,t),k=k+2|0,o=o+2|0,(h|0)!=(o|0););if(!(w&1))break e;l0(p+(m(i[e+4>>2],k)<<1)|0,v+(m(i[e>>2],k)<<1)|0,t)}e:{if(!I||(k=0,i[e+12>>2]=0,i[e+8>>2]=0,r=v0(i[r>>2],6,e+12|0),t=v0(n,6,e+8|0),(w|0)<=0))break e;if(_=_<<(y>>>0>8),(w|0)!=1)for(o=w&2147483646,u=0;l0(t+m(i[e+8>>2],k)|0,r+m(i[e+12>>2],k)|0,_),h=k|1,l0(t+m(h,i[e+8>>2])|0,r+m(h,i[e+12>>2])|0,_),k=k+2|0,u=u+2|0,(o|0)!=(u|0););if(!(w&1))break e;l0(t+m(i[e+8>>2],k)|0,r+m(i[e+12>>2],k)|0,_)}i[f+4>>2]=A,i[f>>2]=n;break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break i;V[i[i[A>>2]+8>>2]](A),g(A)}B=e+16|0}function s4(f,e,r,A,k,n,t,o,u){var h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0;w=B-112|0,B=w,h=u&2147483647;i:{r:{if(v=k&2147483647,_=2147418112,Z=!(e|r),!(A|v?v-_>>>0<2147549184:Z)&&(I=h-_|0,!o&(I|0)==-2147418112?n|t:(I|0)==-2147418112&(o|0)!=0|I>>>0>2147549184))break r;if(!(!A&(v|0)==2147418112?Z:v>>>0<2147418112)){o=A,u=k|32768,n=e,t=r;break i}if(!(!o&(h|0)==2147418112?!(n|t):h>>>0<2147418112)){u=u|32768;break i}if(!(e|A|(v^2147418112|r))){h=A,A=!(e^n|A^o|(r^t|k^u^-2147483648)),o=A?0:h,u=A?2147450880:k,n=A?0:e,t=A?0:r;break i}if(_=n|o,!(_|(h^2147418112|t)))break i;if(!(e|A|(r|v))){if(t|h|_)break i;n=e&n,t=r&t,o=A&o,u=k&u;break i}if(n|o|(t|h))break r;n=e,t=r,o=A,u=k;break i}_=(h|0)==(v|0),W=_&(A|0)==(o|0)?(r|0)==(t|0)&e>>>0>>0|r>>>0>>0:_&A>>>0>>0|h>>>0>v>>>0,Z=W,v=Z?n:e,I=Z?t:r,_=Z?u:k,y=_,Z=Z?o:A,C=_&65535,h=W?A:o,_=W?k:u,A=_,_=A>>>16&32767,p=y>>>16&32767,p||(p=!(Z|C),o=p,p=o<<6,E=$2(o?v:Z)+32|0,o=$2(o?I:C),p=p+((o|0)==32?E:o)|0,L1(w+96|0,v,I,Z,C,p-15|0),Z=i[w+104>>2],C=i[w+108>>2],I=i[w+100>>2],p=16-p|0,v=i[w+96>>2]),n=W?e:n,t=W?r:t,e=h,r=A&65535,_||(h=!(e|r),W=h,A=h?n:e,h=h<<6,W=$2(W?t:r),h=h+((W|0)==32?$2(A)+32|0:W)|0,L1(w+80|0,n,t,e,r,h-15|0),_=16-h|0,n=i[w+80>>2],t=i[w+84>>2],e=i[w+88>>2],r=i[w+92>>2]),A=r<<3,r=e,e=A|e>>>29,h=r<<3,r=e,e=t>>>29|h,r=r|524288,h=C<<3|Z>>>29,C=Z<<3|I>>>29,W=h,o=k^u,h=t<<3|n>>>29,A=n<<3;r:{if((_|0)==(p|0))break r;if(k=p-_|0,k>>>0>127){e=0,r=0,h=0,A=1;break r}L1(w- -64|0,A,h,e,r,128-k|0),ti(w+48|0,A,h,e,r,k),e=i[w+56>>2],r=i[w+60>>2],h=i[w+52>>2],A=i[w+48>>2]|(i[w+64>>2]|i[w+72>>2]|(i[w+68>>2]|i[w+76>>2]))!=0}Z=A,_=h,W=W|524288,h=I<<3|v>>>29,v=v<<3;r:{if((o|0)<0){if(n=0,t=0,o=0,u=0,!(v^Z|e^C|(h^_|r^W)))break i;if(A=v-Z|0,k=h-((v>>>0>>0)+_|0)|0,n=C-e|0,t=(h|0)==(_|0)&v>>>0>>0|h>>>0<_>>>0,o=n-t|0,e=(W-((e>>>0>C>>>0)+r|0)|0)-(n>>>0>>0)|0,u=e,e>>>0>524287)break r;r=!(e|o),t=r,u=r?A:o,r=r<<6,t=$2(t?k:e),r=r+((t|0)==32?$2(u)+32|0:t)|0,n=e,e=r-12|0,L1(w+32|0,A,k,o,n,e),p=p-e|0,o=i[w+40>>2],u=i[w+44>>2],A=i[w+32>>2],k=i[w+36>>2];break r}if(h=h+_|0,A=v+Z|0,k=A>>>0>>0?h+1|0:h,n=(_|0)==(k|0)&A>>>0>>0|k>>>0<_>>>0,h=r+W|0,e=e+C|0,h=e>>>0>>0?h+1|0:h,o=e+n|0,u=o>>>0>>0?h+1|0:h,!(u&1048576))break r;A=Z&1|((k&1)<<31|A>>>1),k=o<<31|k>>>1,p=p+1|0,o=(u&1)<<31|o>>>1,u=u>>>1|0}if(n=0,e=y&-2147483648,v=e,(p|0)>=32767){o=n,u=e|2147418112,t=0;break i}_=0;r:{if((p|0)>0){_=p;break r}L1(w+16|0,A,k,o,u,p+127|0),ti(w,A,k,o,u,1-p|0),A=i[w>>2]|(i[w+16>>2]|i[w+24>>2]|(i[w+20>>2]|i[w+28>>2]))!=0,k=i[w+4>>2],o=i[w+8>>2],u=i[w+12>>2]}r=(k&7)<<29|A>>>3,e=o<<29|k>>>3,k=n|((u&7)<<29|o>>>3),n=v|(u>>>3&65535|_<<16);r:{e:{if(A=A&7,(A|0)!=4){u=n,n=A>>>0>4,t=n,n=r+n|0,t=t>>>0>n>>>0?e+1|0:e,e=(t|0)==(e|0)&r>>>0>n>>>0|e>>>0>t>>>0,o=e+k|0,u=e>>>0>o>>>0?u+1|0:u;break e}h=n,A=r&1,n=r+A|0,t=A>>>0>n>>>0?e+1|0:e,e=(t|0)==(e|0)&r>>>0>n>>>0|e>>>0>t>>>0,o=e+k|0,u=e>>>0>o>>>0?h+1|0:h;break r}if(!A)break i}}i[f>>2]=n,i[f+4>>2]=t,i[f+8>>2]=o,i[f+12>>2]=u,B=w+112|0}function Uk(f,e,r){var A=0,k=0,n=0,t=0;k=B-160|0,B=k,A=i[r+4>>2],r=i[r>>2],A=A-r|0;i:{if(A>>>0<=7){if(e=U(32),i[k+16>>2]=e,i[k+20>>2]=25,i[k+24>>2]=-2147483616,r=s[14528]|s[14529]<<8|(s[14530]<<16|s[14531]<<24),A=s[14524]|s[14525]<<8|(s[14526]<<16|s[14527]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+25|0]=0,l[e+24|0]=s[14548],r=s[14544]|s[14545]<<8|(s[14546]<<16|s[14547]<<24),A=s[14540]|s[14541]<<8|(s[14542]<<16|s[14543]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[14536]|s[14537]<<8|(s[14538]<<16|s[14539]<<24),A=s[14532]|s[14533]<<8|(s[14534]<<16|s[14535]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,118,k+16|0),l[k+27|0]>=0)break i;G(i[k+16>>2]);break i}if(n=s[r|0],n){i[k+24>>2]=54496,i[k+80>>2]=54516,e=i[13633],i[k+16>>2]=e,r=i[e-12>>2],e=k+16|0,i[r+e>>2]=i[13634],i[k+20>>2]=0,r=e+i[i[k+16>>2]-12>>2]|0,A=k+28|0,b0(r,A),i[r+72>>2]=0,i[r+76>>2]=-1,r=i[13635],i[k+24>>2]=r,t=k+24|0,i[t+i[r-12>>2]>>2]=i[13636],r=i[13632],i[k+16>>2]=r,i[e+i[r-12>>2]>>2]=i[13637],i[k+80>>2]=54516,i[k+16>>2]=54476,i[k+24>>2]=54496,e=$0(A),i[e>>2]=53552,i[k+68>>2]=0,i[k+72>>2]=0,i[k+60>>2]=0,i[k+64>>2]=0,i[k+76>>2]=24,x(H0(x(t,18893,19),n),12125,17),r=k+4|0,i2(r,e),r0(f,4,3002,r),l[k+15|0]<0&&G(i[k+4>>2]),f=i[13631],i[k+16>>2]=f,i[i[f-12>>2]+(k+16|0)>>2]=i[13639],i[k+24>>2]=i[13640],i[e>>2]=53552,l[k+71|0]<0&&G(i[k+60>>2]),K0(e),T0(k+80|0);break i}n=s[r+1|0],X[e>>1]=s[r+2|0]+1,X[e+2>>1]=s[r+3|0]+1;r:{if(n&1){if(n=11,A>>>0<=11){if(e=U(32),i[k+16>>2]=e,i[k+20>>2]=26,i[k+24>>2]=-2147483616,r=s[9318]|s[9319]<<8|(s[9320]<<16|s[9321]<<24),A=s[9314]|s[9315]<<8|(s[9316]<<16|s[9317]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+26|0]=0,r=s[9338]|s[9339]<<8,l[e+24|0]=r,l[e+25|0]=r>>>8,r=s[9334]|s[9335]<<8|(s[9336]<<16|s[9337]<<24),A=s[9330]|s[9331]<<8|(s[9332]<<16|s[9333]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[9326]|s[9327]<<8|(s[9328]<<16|s[9329]<<24),A=s[9322]|s[9323]<<8|(s[9324]<<16|s[9325]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,118,k+16|0),l[k+27|0]>=0)break i;G(i[k+16>>2]);break i}A=s[r+4|0]|s[r+5|0]<<8|(s[r+6|0]<<16|s[r+7|0]<<24),i[e+4>>2]=A<<24|(A&65280)<<8|(A>>>8&65280|A>>>24),A=s[r+9|0]<<16|s[r+8|0]<<24|s[r+10|0]<<8;break r}i[e+4>>2]=s[r+5|0]|s[r+4|0]<<8,n=7,A=s[r+6|0]<<8}if(i[e+8>>2]=A|s[r+n|0],e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+160|0}function Wh(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0;n=B+-64|0,B=n;i:{r:{e:{A:{f:{if(!(A&&e)){i[f>>2]=5,i[f+4>>2]=2001,i[f+8>>2]=12607;break f}if(o=U(120),i[o+4>>2]=0,i[o+8>>2]=0,i[o>>2]=72064,w=o+16|0,i[w+8>>2]=0,i[w+12>>2]=0,i[w+16>>2]=0,i[w+20>>2]=0,i[w+24>>2]=0,i[w+28>>2]=0,i[w+32>>2]=0,i[w>>2]=68500,i[o+52>>2]=0,i[o+56>>2]=0,i[o+68>>2]=0,l[o+57|0]=0,l[o+58|0]=0,l[o+59|0]=0,l[o+60|0]=0,l[o+61|0]=0,l[o+62|0]=0,l[o+63|0]=0,l[o+64|0]=0,i[w>>2]=70032,i[o+112>>2]=0,i[o+116>>2]=0,i[o+104>>2]=0,i[o+108>>2]=0,i[o+96>>2]=0,i[o+100>>2]=0,i[o+88>>2]=0,i[o+92>>2]=0,i[o+80>>2]=0,i[o+84>>2]=0,i[o+72>>2]=0,i[o+76>>2]=0,i[o+32>>2]=1969513843,t=i[A+4>>2],h=t||31341,u=G2(h),u>>>0>=2147483640)break A;k:{n:{if(u>>>0>=11){_=(u|7)+1|0,t=U(_),i[n+60>>2]=_|-2147483648,i[n+52>>2]=t,i[n+56>>2]=u;break n}if(l[n+63|0]=u,t=n+52|0,!u)break k}F2(t,h,u)}h=o+72|0,l[t+u|0]=0,t=l[n+63|0];k:{n:{if(l[o+83|0]>=0){if((t|0)>=0){t=i[n+56>>2],i[h>>2]=i[n+52>>2],i[h+4>>2]=t,i[h+8>>2]=i[n+60>>2];break k}i4(h,i[n+52>>2],i[n+56>>2]);break n}if(u=(t|0)<0,_4(h,u?i[n+52>>2]:n+52|0,u?i[n+56>>2]:t),l[n+63|0]>=0)break k}G(i[n+52>>2])}if(t=i[A+8>>2],h=t||31341,u=G2(h),u>>>0>=2147483640)break e;k:{n:{if(u>>>0>=11){_=(u|7)+1|0,t=U(_),i[n+48>>2]=_|-2147483648,i[n+40>>2]=t,i[n+44>>2]=u;break n}if(l[n+51|0]=u,t=n+40|0,!u)break k}F2(t,h,u)}l[t+u|0]=0,t=o+84|0,u=l[n+51|0];k:{n:{if(l[o+95|0]>=0){if((u|0)>=0){u=i[n+44>>2],i[t>>2]=i[n+40>>2],i[t+4>>2]=u,i[t+8>>2]=i[n+48>>2];break k}i4(t,i[n+40>>2],i[n+44>>2]);break n}h=t,t=(u|0)<0,_4(h,t?i[n+40>>2]:n+40|0,t?i[n+44>>2]:u)}if(l[n+51|0]>=0)break k;G(i[n+40>>2])}if(t=i[A+12>>2],h=t||31341,u=G2(h),u>>>0>=2147483640)break r;k:{n:{if(u>>>0>=11){_=(u|7)+1|0,t=U(_),i[n+36>>2]=_|-2147483648,i[n+28>>2]=t,i[n+32>>2]=u;break n}if(l[n+39|0]=u,t=n+28|0,!u)break k}F2(t,h,u)}l[t+u|0]=0,t=o+96|0,u=l[n+39|0];k:{n:{if(l[o+107|0]>=0){if((u|0)>=0){u=i[n+32>>2],i[t>>2]=i[n+28>>2],i[t+4>>2]=u,i[t+8>>2]=i[n+36>>2];break k}i4(t,i[n+28>>2],i[n+32>>2]);break n}h=t,t=(u|0)<0,_4(h,t?i[n+28>>2]:n+28|0,t?i[n+32>>2]:u)}if(l[n+39|0]>=0)break k;G(i[n+28>>2])}if(A=i[A+16>>2],u=A||31341,A=G2(u),A>>>0>=2147483640)break i;k:{n:{if(A>>>0>=11){h=(A|7)+1|0,t=U(h),i[n+24>>2]=h|-2147483648,i[n+16>>2]=t,i[n+20>>2]=A;break n}if(l[n+27|0]=A,t=n+16|0,!A)break k}F2(t,u,A)}l[A+t|0]=0,A=o+108|0,t=l[n+27|0];k:{n:{if(l[o+119|0]>=0){if((t|0)>=0){t=i[n+20>>2],i[A>>2]=i[n+16>>2],i[A+4>>2]=t,i[A+8>>2]=i[n+24>>2];break k}i4(A,i[n+16>>2],i[n+20>>2]);break n}h=A,A=(t|0)<0,_4(h,A?i[n+16>>2]:n+16|0,A?i[n+20>>2]:t)}if(l[n+27|0]>=0)break k;G(i[n+16>>2])}if(e=i[e>>2],i[n+12>>2]=o,i[n+8>>2]=w,i[o+4>>2]=i[o+4>>2]+1,A=i[n+12>>2],i[n>>2]=i[n+8>>2],i[n+4>>2]=A,e=Q3(e,r,n,0),k&&(i[k>>2]=e),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[o+4>>2],i[o+4>>2]=f-1,f)break f;V[i[i[o>>2]+8>>2]](o),g(o)}B=n- -64|0;return}c2(),P()}c2(),P()}c2(),P()}c2(),P()}function Xh(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;k=B-16|0,B=k;i:{if(!(i[e+8>>2]|i[e+12>>2])){if(e=U(48),i[k+4>>2]=e,i[k+8>>2]=44,i[k+12>>2]=-2147483600,r=s[12293]|s[12294]<<8|(s[12295]<<16|s[12296]<<24),A=s[12289]|s[12290]<<8|(s[12291]<<16|s[12292]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+44|0]=0,r=s[12329]|s[12330]<<8|(s[12331]<<16|s[12332]<<24),l[e+40|0]=r,l[e+41|0]=r>>>8,l[e+42|0]=r>>>16,l[e+43|0]=r>>>24,r=s[12325]|s[12326]<<8|(s[12327]<<16|s[12328]<<24),A=s[12321]|s[12322]<<8|(s[12323]<<16|s[12324]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[12317]|s[12318]<<8|(s[12319]<<16|s[12320]<<24),A=s[12313]|s[12314]<<8|(s[12315]<<16|s[12316]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[12309]|s[12310]<<8|(s[12311]<<16|s[12312]<<24),A=s[12305]|s[12306]<<8|(s[12307]<<16|s[12308]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[12301]|s[12302]<<8|(s[12303]<<16|s[12304]<<24),A=s[12297]|s[12298]<<8|(s[12299]<<16|s[12300]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,4,0,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(A=i[r+16>>2],A>>>0>=536870913){if(e=U(32),i[k+4>>2]=e,i[k+8>>2]=31,i[k+12>>2]=-2147483616,r=s[8972]|s[8973]<<8|(s[8974]<<16|s[8975]<<24),A=s[8968]|s[8969]<<8|(s[8970]<<16|s[8971]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+31|0]=0,r=s[8995]|s[8996]<<8|(s[8997]<<16|s[8998]<<24),A=s[8991]|s[8992]<<8|(s[8993]<<16|s[8994]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,l[e+27|0]=r,l[e+28|0]=r>>>8,l[e+29|0]=r>>>16,l[e+30|0]=r>>>24,r=s[8988]|s[8989]<<8|(s[8990]<<16|s[8991]<<24),A=s[8984]|s[8985]<<8|(s[8986]<<16|s[8987]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[8980]|s[8981]<<8|(s[8982]<<16|s[8983]<<24),A=s[8976]|s[8977]<<8|(s[8978]<<16|s[8979]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,0,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}n=i[e+48>>2],t=i[e+52>>2]-n|0;r:{if(t>>>0>>0){L2(e+48|0,A-t|0),n=i[e+48>>2];break r}if(A>>>0>=t>>>0)break r;i[e+52>>2]=A+n}if(D6(r,n,A),s[r+20|0]==1){if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,100,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+16|0}function pr(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;u=B-32|0,B=u,i[u+28>>2]=0,i[u+20>>2]=0,i[u+24>>2]=0,I1(u,i[e>>2],r,u+20|0);i:{r:{if(i[u>>2]||(r=i[u+20>>2],t=i[u+24>>2],(r|0)==(t|0)))break r;for(;;){if(o=i[r>>2],i[o+16>>2]==1769173093){e:{A:{if(o=N0(o,68572,68596),o&&(r=i[r+4>>2],r))break A;t=i[o+60>>2],o=i[o+56>>2];break e}if(n=i[r+4>>2],_=n+1|0,i[r+4>>2]=_,t=i[o+60>>2],o=i[o+56>>2],i[r+4>>2]=n,_)break e;V[i[i[r>>2]+8>>2]](r),g(r)}if(!o|!t)break r;if(i[f+8>>2]=0,i[f+12>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f+16>>2]=0,i[f+20>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,i0[f+24>>3]=+(t|0)/+(k|0),i0[f>>3]=+(o|0)/+(A|0),r=i[u+20>>2],_=i[u+24>>2],(r|0)==(_|0))break i;for(;;){A=i[r>>2],k=i[A+16>>2];e:{A:{if((k|0)!=1668047216){if((k|0)!=1769107316){if((k|0)!=1768778098)break e;k=0,n=N0(A,68572,69532);f:{if(!n||(A=i[r+4>>2],!A))break f;i[A+4>>2]=i[A+4>>2]+1,k=A}if(A=i[n+48>>2],n=(((A|0)!=1)<<4)+f|0,i0[n>>3]=-i0[n>>3],A=(A|0)==1,n=(A?8:24)+f|0,i0[n>>3]=-i0[n>>3],n=(A?32:40)+f|0,i0[n>>3]=+((A?o:t)-1|0)-i0[n>>3],!k)break e;if(A=i[k+4>>2],i[k+4>>2]=A-1,!A)break A;break e}k=0,n=N0(A,68572,69472);f:{if(!n||(A=i[r+4>>2],!A))break f;i[A+4>>2]=i[A+4>>2]+1,k=A}A=i[n+48>>2];f:{k:{n:{if((A|0)!=270){if((A|0)!=180){if((A|0)!=90){A=t;break f}h=i0[f+32>>3],i0[f+32>>3]=i0[f+40>>3],v=i0[f+8>>3],i0[f+8>>3]=i0[f+24>>3],Z=i0[f>>3],i0[f>>3]=i0[f+16>>3],i0[f+24>>3]=-v,i0[f+16>>3]=-Z,h=+(o|0)-h+-1;break n}i0[f>>3]=-i0[f>>3],i0[f+8>>3]=-i0[f+8>>3],i0[f+16>>3]=-i0[f+16>>3],i0[f+24>>3]=-i0[f+24>>3],i0[f+32>>3]=+(o-1|0)-i0[f+32>>3],h=+(t-1|0)-i0[f+40>>3],A=t;break k}h=i0[f+24>>3],i0[f+24>>3]=i0[f+8>>3],v=i0[f+16>>3],i0[f+16>>3]=i0[f>>3],i0[f+8>>3]=-h,i0[f>>3]=-v,h=i0[f+32>>3],i0[f+32>>3]=+(t|0)-i0[f+40>>3]+-1}A=o,o=t}i0[f+40>>3]=h}if(!k){t=A;break e}if(n=i[k+4>>2],i[k+4>>2]=n-1,t=A,!n)break A;break e}k=0,n=N0(A,68572,69592);f:{if(!n||(A=i[r+4>>2],!A))break f;i[A+4>>2]=i[A+4>>2]+1,k=A}if(A=Ir(n,o),t=Vr(n,t),i0[f+32>>3]=i0[f+32>>3]-+(A|0),i0[f+40>>3]=i0[f+40>>3]-+(t|0),A=i[n+48>>2],t=i[n+52>>2],w=(t|0)/2|0,o=A+w|0,A=(A>>31)+(w>>31)|0,o=o2(o,o>>>0>>0?A+1|0:A,t,t>>31),A=i[n+56>>2],t=i[n+60>>2],w=(t|0)/2|0,n=A+w|0,A=(A>>31)+(w>>31)|0,t=o2(n,n>>>0>>0?A+1|0:A,t,t>>31),!k||(A=i[k+4>>2],i[k+4>>2]=A-1,A))break e}V[i[i[k>>2]+8>>2]](k),g(k)}if(r=r+8|0,(_|0)==(r|0))break}break i}if(r=r+8|0,(t|0)==(r|0))break}}i[f+8>>2]=0,i[f+12>>2]=0,i[f>>2]=0,i[f+4>>2]=1072693248,i[f+32>>2]=0,i[f+36>>2]=0,i[f+24>>2]=0,i[f+28>>2]=1072693248,i[f+16>>2]=0,i[f+20>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0}if(l[u+19|0]<0&&G(i[u+8>>2]),A=i[u+20>>2],A){if(f=i[u+24>>2],r=A,(f|0)!=(A|0)){for(;;){r=i[f-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(f=f-8|0,(A|0)==(f|0))break}r=i[u+20>>2]}i[u+24>>2]=A,G(r)}f=i[e+4>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=u+32|0}function G(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;i:{if(!f)break i;A=f-8|0,e=i[f-4>>2],f=e&-8,n=A+f|0;r:{if(e&1)break r;if(!(e&2)||(e=i[A>>2],A=A-e|0,A>>>0>2],e>>>0<=255){if(k=i[A+8>>2],(k|0)!=(r|0))break f;u=97016,h=i[24254]&a0(-2,e>>>3|0),i[u>>2]=h;break r}if(o=i[A+24>>2],(r|0)!=(A|0)){e=i[A+8>>2],i[e+12>>2]=r,i[r+8>>2]=e;break e}if(k=i[A+20>>2],k)e=A+20|0;else{if(k=i[A+16>>2],!k)break A;e=A+16|0}for(;t=e,r=k,e=r+20|0,k=i[r+20>>2],!(!k&&(e=r+16|0,k=i[r+16>>2],!k)););i[t>>2]=0;break e}if(e=i[n+4>>2],(e&3)!=3)break r;i[24256]=f,i[n+4>>2]=e&-2,i[A+4>>2]=f|1,i[n>>2]=f;return}i[k+12>>2]=r,i[r+8>>2]=k;break r}r=0}if(!o)break r;e=i[A+28>>2],k=(e<<2)+97320|0;e:{if(i[k>>2]==(A|0)){if(i[k>>2]=r,r)break e;u=97020,h=i[24255]&a0(-2,e),i[u>>2]=h;break r}if(i[o+(i[o+16>>2]==(A|0)?16:20)>>2]=r,!r)break r}if(i[r+24>>2]=o,e=i[A+16>>2],e&&(i[r+16>>2]=e,i[e+24>>2]=r),e=i[A+20>>2],!e)break r;i[r+20>>2]=e,i[e+24>>2]=r}if(A>>>0>=n>>>0||(e=i[n+4>>2],!(e&1)))break i;r:{e:{A:{f:{if(!(e&2)){if((n|0)==i[24260]){if(i[24260]=A,f=i[24257]+f|0,i[24257]=f,i[A+4>>2]=f|1,i[24259]!=(A|0))break i;i[24256]=0,i[24259]=0;return}if((n|0)==i[24259]){i[24259]=A,f=i[24256]+f|0,i[24256]=f,i[A+4>>2]=f|1,i[f+A>>2]=f;return}if(f=(e&-8)+f|0,r=i[n+12>>2],e>>>0<=255){if(k=i[n+8>>2],(k|0)==(r|0)){u=97016,h=i[24254]&a0(-2,e>>>3|0),i[u>>2]=h;break e}i[k+12>>2]=r,i[r+8>>2]=k;break e}if(o=i[n+24>>2],(r|0)!=(n|0)){e=i[n+8>>2],i[e+12>>2]=r,i[r+8>>2]=e;break A}if(k=i[n+20>>2],k)e=n+20|0;else{if(k=i[n+16>>2],!k)break f;e=n+16|0}for(;t=e,r=k,e=r+20|0,k=i[r+20>>2],!(!k&&(e=r+16|0,k=i[r+16>>2],!k)););i[t>>2]=0;break A}i[n+4>>2]=e&-2,i[A+4>>2]=f|1,i[f+A>>2]=f;break r}r=0}if(!o)break e;e=i[n+28>>2],k=(e<<2)+97320|0;A:{if((n|0)==i[k>>2]){if(i[k>>2]=r,r)break A;u=97020,h=i[24255]&a0(-2,e),i[u>>2]=h;break e}if(i[o+((n|0)==i[o+16>>2]?16:20)>>2]=r,!r)break e}if(i[r+24>>2]=o,e=i[n+16>>2],e&&(i[r+16>>2]=e,i[e+24>>2]=r),e=i[n+20>>2],!e)break e;i[r+20>>2]=e,i[e+24>>2]=r}if(i[A+4>>2]=f|1,i[f+A>>2]=f,i[24259]!=(A|0))break r;i[24256]=f;return}if(f>>>0<=255){e=(f&-8)+97056|0,k=i[24254],f=1<<(f>>>3);r:{if(!(k&f)){i[24254]=f|k,f=e;break r}f=i[e+8>>2]}i[e+8>>2]=A,i[f+12>>2]=A,i[A+12>>2]=e,i[A+8>>2]=f;return}r=31,f>>>0<=16777215&&(e=$2(f>>>8|0),r=((f>>>38-e&1)-(e<<1)|0)+62|0),i[A+28>>2]=r,i[A+16>>2]=0,i[A+20>>2]=0,t=(r<<2)+97320|0;r:{e:{e=i[24255],k=1<>>1|0)|0:0),e=i[t>>2];;){if(k=e,(i[e+4>>2]&-8)==(f|0))break e;if(e=r>>>29|0,r=r<<1,t=((e&4)+k|0)+16|0,e=i[t>>2],!e)break}r=24,e=k}k=A,n=A,f=8;break r}e=i[k+8>>2],i[e+12>>2]=A,r=8,t=k+8|0,n=0,f=24}i[t>>2]=A,i[r+A>>2]=e,i[A+12>>2]=k,i[f+A>>2]=n,f=i[24262]-1|0,i[24262]=f||-1}}function Gh(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0;W=e+4|0,o=r<<2,R=X[W+o>>1],u=e+2|0,w=X[u+o>>1],Z=e+6|0,_=X[Z+o>>1],A=r<<1,C=X[A+W>>1],h=m(r,6),r=X[h+W>>1],v=X[e+o>>1],W=X[W>>1],o=X[h+Z>>1],y=X[A+Z>>1],Z=X[Z>>1],k=m(o,-74)+m(y+Z|0,74)>>1,k=(k|0)>=32767?32767:k,k=(k|0)<=-32768?-32768:k,E=X[u+h>>1],J=X[A+u>>1],u=X[u>>1],n=m(E,-74)+m(J+u|0,74)>>1,n=(n|0)>=32767?32767:n,n=(n|0)<=-32768?-32768:n,h=X[e+h>>1],A=X[e+A>>1],e=X[e>>1],t=m(h,-74)+m(A+e|0,74)>>1,t=(t|0)>=32767?32767:t,t=(t|0)<=-32768?-32768:t,X[f+10>>1]=(m(k,16777142)+m(n+t|0,74)|0)+128>>>8,p=m(r,-74)+m(W+C|0,74)>>1,p=(p|0)>=32767?32767:p,p=(p|0)<=-32768?-32768:p,I=m(p,74),X[f+14>>1]=((I+(m(n,-84)+m(t,55)|0)|0)+m(k,16777187)|0)+128>>>8,X[f+12>>1]=(((m(n,-29)+m(t,84)|0)+m(p,16777142)|0)+m(k,55)|0)+128>>>8,X[f+8>>1]=((I+(m(n,55)+m(t,29)|0)|0)+m(k,84)|0)+128>>>8,p=m(_,74),k=((p+(m(y,-84)+m(Z,55)|0)|0)+m(o,-29)|0)+1>>1,k=(k|0)>=32767?32767:k,k=(k|0)<=-32768?-32768:k,I=m(w,74),n=((I+(m(J,-84)+m(u,55)|0)|0)+m(E,-29)|0)+1>>1,n=(n|0)>=32767?32767:n,n=(n|0)<=-32768?-32768:n,D=m(v,74),t=((D+(m(A,-84)+m(e,55)|0)|0)+m(h,-29)|0)+1>>1,t=(t|0)>=32767?32767:t,t=(t|0)<=-32768?-32768:t,X[f+26>>1]=(m(k,16777142)+m(n+t|0,74)|0)+128>>>8,_=(((m(y,-29)+m(Z,84)|0)+m(_,-74)|0)+m(o,55)|0)+1>>1,_=(_|0)>=32767?32767:_,_=(_|0)<=-32768?-32768:_,w=(((m(J,-29)+m(u,84)|0)+m(w,-74)|0)+m(E,55)|0)+1>>1,w=(w|0)>=32767?32767:w,w=(w|0)<=-32768?-32768:w,v=(((m(A,-29)+m(e,84)|0)+m(v,-74)|0)+m(h,55)|0)+1>>1,v=(v|0)>=32767?32767:v,v=(v|0)<=-32768?-32768:v,X[f+18>>1]=(m(_,16777142)+m(w+v|0,74)|0)+128>>>8,o=((p+(m(y,55)+m(Z,29)|0)|0)+m(o,84)|0)+1>>1,o=(o|0)>=32767?32767:o,o=(o|0)<=-32768?-32768:o,u=((I+(m(J,55)+m(u,29)|0)|0)+m(E,84)|0)+1>>1,u=(u|0)>=32767?32767:u,u=(u|0)<=-32768?-32768:u,e=(((m(A,55)+m(e,29)|0)+D|0)+m(h,84)|0)+1>>1,e=(e|0)>=32767?32767:e,e=(e|0)<=-32768?-32768:e,X[f+2>>1]=(m(o,16777142)+m(u+e|0,74)|0)+128>>>8,Z=m(R,74),A=((Z+(m(C,-84)+m(W,55)|0)|0)+m(r,-29)|0)+1>>1,A=(A|0)>=32767?32767:A,A=(A|0)<=-32768?-32768:A,h=m(A,74),X[f+30>>1]=((h+(m(n,-84)+m(t,55)|0)|0)+m(k,16777187)|0)+128>>>8,X[f+28>>1]=(((m(n,-29)+m(t,84)|0)+m(A,16777142)|0)+m(k,55)|0)+128>>>8,X[f+24>>1]=((h+(m(n,55)+m(t,29)|0)|0)+m(k,84)|0)+128>>>8,A=(((m(C,-29)+m(W,84)|0)+m(R,-74)|0)+m(r,55)|0)+1>>1,A=(A|0)>=32767?32767:A,A=(A|0)<=-32768?-32768:A,h=m(A,74),X[f+22>>1]=((h+(m(w,-84)+m(v,55)|0)|0)+m(_,16777187)|0)+128>>>8,X[f+20>>1]=(((m(w,-29)+m(v,84)|0)+m(A,16777142)|0)+m(_,55)|0)+128>>>8,X[f+16>>1]=((h+(m(w,55)+m(v,29)|0)|0)+m(_,84)|0)+128>>>8,r=((Z+(m(C,55)+m(W,29)|0)|0)+m(r,84)|0)+1>>1,r=(r|0)>=32767?32767:r,r=(r|0)<=-32768?-32768:r,C=m(r,74),X[f+6>>1]=((C+(m(u,-84)+m(e,55)|0)|0)+m(o,16777187)|0)+128>>>8,X[f+4>>1]=(((m(u,-29)+m(e,84)|0)+m(r,16777142)|0)+m(o,55)|0)+128>>>8,X[f>>1]=((C+(m(u,55)+m(e,29)|0)|0)+m(o,84)|0)+128>>>8}function Wr(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;n=B-48|0,B=n,o=i[e+60>>2],w=i[e+56>>2],_=o-w>>5;i:{if((o|0)==(w|0))break i;for(t=_>>>0<=1?1:_;;){if(i[w+(u<<5)>>2]==(r|0))break i;if(u=u+1|0,(t|0)==(u|0))break}u=t}w=e+56|0;i:{if((u|0)!=(_|0))break i;if(X[n+28>>1]=0,X[n+30>>1]=0,X[n+32>>1]=0,X[n+34>>1]=0,X[n+22>>1]=0,X[n+24>>1]=0,X[n+26>>1]=0,X[n+28>>1]=0,X[n+14>>1]=0,X[n+16>>1]=0,X[n+18>>1]=0,X[n+20>>1]=0,l[n+12|0]=k,i[n+8>>2]=r,o>>>0>2]){r=i[n+12>>2],i[o>>2]=i[n+8>>2],i[o+4>>2]=r,r=i[n+20>>2],i[o+8>>2]=i[n+16>>2],i[o+12>>2]=r,i[o+24>>2]=0,i[o+16>>2]=0,i[o+20>>2]=0,br(o+16|0,0,0,0),i[e+60>>2]=o+32;break i}if(r=vn(w,n+8|0),t=i[n+24>>2],i[e+60>>2]=r,!t)break i;if(r=t,o=i[n+28>>2],(r|0)!=(o|0)){for(;r=i[o-16>>2],r&&(i[o-12>>2]=r,G(r)),o=o-40|0,(t|0)!=(o|0););r=i[n+24>>2]}i[n+28>>2]=t,G(r)}i[n+40>>2]=0,r=n+32|0,i[r>>2]=0,i[r+4>>2]=0,i[n+24>>2]=0,i[n+28>>2]=0,i[n+16>>2]=0,i[n+20>>2]=0,i[n+8>>2]=0,i[n+12>>2]=0,(r|0)!=(A|0)&&(h=r,t=i[A>>2],r=i[A+4>>2],W8(h,t,r,r-t|0)),(k|0)==1&&(k=i[e+80>>2],r=k,i[n+16>>2]=r,i[n+20>>2]=r>>31,r=i[A+4>>2]-i[A>>2]|0,i[n+24>>2]=r,i[n+28>>2]=0,i[e+80>>2]=r+k),e=i[w>>2]+(u<<5)|0,h=e,w=e+16|0,r=i[e+24>>2],e=i[e+20>>2];i:{if(r>>>0>e>>>0){r=i[n+12>>2],i[e>>2]=i[n+8>>2],i[e+4>>2]=r,r=i[n+28>>2],i[e+16>>2]=i[n+24>>2],i[e+20>>2]=r,r=i[n+20>>2],i[e+8>>2]=i[n+16>>2],i[e+12>>2]=r,i[e+32>>2]=0,i[e+24>>2]=0,i[e+28>>2]=0,i[e+24>>2]=i[n+32>>2],i[e+28>>2]=i[n+36>>2],i[e+32>>2]=i[n+40>>2],i[n+40>>2]=0,i[n+32>>2]=0,i[n+36>>2]=0,e=e+40|0;break i}r=0;r:{e:{if(e=i[h+16>>2],k=(i[h+20>>2]-e|0)/40|0,t=k+1|0,t>>>0<107374183){if(A=(i[h+24>>2]-e|0)/40|0,e=A<<1,t=A>>>0>=53687091?107374182:e>>>0>t>>>0?e:t,t){if(t>>>0>=107374183)break e;r=U(m(t,40))}A=i[n+12>>2],e=m(k,40)+r|0,i[e>>2]=i[n+8>>2],i[e+4>>2]=A,A=i[n+28>>2],i[e+16>>2]=i[n+24>>2],i[e+20>>2]=A,A=i[n+20>>2],i[e+8>>2]=i[n+16>>2],i[e+12>>2]=A,i[e+24>>2]=i[n+32>>2],i[e+28>>2]=i[n+36>>2],i[e+32>>2]=i[n+40>>2],i[n+40>>2]=0,i[n+32>>2]=0,i[n+36>>2]=0,o=m(t,40)+r|0,k=e+40|0,A=i[h+20>>2],v=i[h+16>>2];A:{if((A|0)==(v|0)){r=e;break A}for(;t=A-40|0,u=i[t+4>>2],r=e-40|0,i[r>>2]=i[t>>2],i[r+4>>2]=u,u=i[t+20>>2],i[r+16>>2]=i[t+16>>2],i[r+20>>2]=u,u=i[t+12>>2],i[r+8>>2]=i[t+8>>2],i[r+12>>2]=u,u=e-8|0,i[u>>2]=0,_=A-16|0,i[e-16>>2]=i[_>>2],i[e-12>>2]=i[A-12>>2],e=A-8|0,i[u>>2]=i[e>>2],i[e>>2]=0,i[_>>2]=0,i[_+4>>2]=0,e=r,A=t,(v|0)!=(t|0););A=i[h+20>>2],v=i[h+16>>2]}if(i[h+24>>2]=o,i[h+20>>2]=k,i[h+16>>2]=r,(A|0)!=(v|0))for(;e=i[A-16>>2],e&&(i[A-12>>2]=e,G(e)),A=A-40|0,(v|0)!=(A|0););v&&G(v),e=k;break r}y0(),P()}_2(),P()}}i[w+4>>2]=e,e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,e=f+8|0;i:{if(l[78275]>=0){f=i[19567],i[e>>2]=i[19566],i[e+4>>2]=f,i[e+8>>2]=i[19568];break i}_0(e,i[19566],i[19567])}f=i[n+32>>2],f&&(i[n+36>>2]=f,G(f)),B=n+48|0}function Ch(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0;d=X[e+10>>1],p=X[e+26>>1],D=X[e+18>>1],z=X[e+2>>1],E=X[e+14>>1],J=X[e+12>>1],R=X[e+8>>1],h=1<>1],k=X[e+6>>1],y=X[e+30>>1],t=((m(_,-74)+m(k,74)|0)+m(y,74)|0)- -64>>7,w=n+65535|0,t=((A|0)>(t|0)?A:(n|0)>(t|0)?t:w)<<16>>16,v=X[e+20>>1],H=X[e+4>>1],a=X[e+28>>1],o=((m(v,-74)+m(H,74)|0)+m(a,74)|0)- -64>>7,o=((A|0)>(o|0)?A:(n|0)>(o|0)?o:w)<<16>>16,S=X[e+16>>1],q=X[e>>1],e=X[e+24>>1],u=((m(S,-74)+m(q,74)|0)+m(e,74)|0)- -64>>7,u=((A|0)>(u|0)?A:(n|0)>(u|0)?u:w)<<16>>16,i[f+40>>2]=h+(m(t,74)+(m(o,-74)+m(u,74)|0)|0)>>r,W=(((m(J,-74)+m(H,84)|0)+m(v,55)|0)+m(a,-29)|0)- -64>>7,W=((A|0)>(W|0)?A:(n|0)>(W|0)?W:w)<<16>>16,C=(((m(R,-74)+m(q,84)|0)+m(S,55)|0)+m(e,-29)|0)- -64>>7,C=((A|0)>(C|0)?A:(n|0)>(C|0)?C:w)<<16>>16,I=(((m(E,-74)+m(k,84)|0)+m(_,55)|0)+m(y,-29)|0)- -64>>7,I=((A|0)>(I|0)?A:(n|0)>(I|0)?I:w)<<16>>16,i[f+56>>2]=((m(W,-74)+m(C,74)|0)+m(I,74)|0)+h>>r,Z=((m(D,-74)+m(z,74)|0)+m(p,74)|0)- -64>>7,Z=((A|0)>(Z|0)?A:(n|0)>(Z|0)?Z:w)<<16>>16,i[f+44>>2]=(((m(Z,-74)+m(u,84)|0)+m(o,55)|0)+m(t,-29)|0)+h>>r,Z=m(Z,74),i[f+36>>2]=(((Z+m(u,55)|0)+m(o,-29)|0)+m(t,-84)|0)+h>>r,i[f+32>>2]=(((Z+m(u,29)|0)+m(o,84)|0)+m(t,55)|0)+h>>r,J=m(J,74),t=(((J+m(H,55)|0)+m(v,-29)|0)+m(a,-84)|0)- -64>>7,t=((A|0)>(t|0)?A:(n|0)>(t|0)?t:w)<<16>>16,R=m(R,74),o=(((R+m(q,55)|0)+m(S,-29)|0)+m(e,-84)|0)- -64>>7,o=((A|0)>(o|0)?A:(n|0)>(o|0)?o:w)<<16>>16,E=m(E,74),u=(((E+m(k,55)|0)+m(_,-29)|0)+m(y,-84)|0)- -64>>7,u=((A|0)>(u|0)?A:(n|0)>(u|0)?u:w)<<16>>16,i[f+24>>2]=((m(t,-74)+m(o,74)|0)+m(u,74)|0)+h>>r,v=(((J+m(H,29)|0)+m(v,84)|0)+m(a,55)|0)- -64>>7,v=((A|0)>(v|0)?A:(n|0)>(v|0)?v:w)<<16>>16,e=(((R+m(q,29)|0)+m(S,84)|0)+m(e,55)|0)- -64>>7,e=((e|0)<(A|0)?A:(e|0)<(n|0)?e:w)<<16>>16,_=(((E+m(k,29)|0)+m(_,84)|0)+m(y,55)|0)- -64>>7,_=((A|0)>(_|0)?A:(n|0)>(_|0)?_:w)<<16>>16,i[f+8>>2]=((m(v,-74)+m(e,74)|0)+m(_,74)|0)+h>>r,k=(((m(d,-74)+m(z,84)|0)+m(D,55)|0)+m(p,-29)|0)- -64>>7,k=((A|0)>(k|0)?A:(n|0)>(k|0)?k:w)<<16>>16,i[f+60>>2]=(((m(k,-74)+m(C,84)|0)+m(W,55)|0)+m(I,-29)|0)+h>>r,k=m(k,74),i[f+52>>2]=(((k+m(C,55)|0)+m(W,-29)|0)+m(I,-84)|0)+h>>r,i[f+48>>2]=(((k+m(C,29)|0)+m(W,84)|0)+m(I,55)|0)+h>>r,y=m(d,74),k=(((y+m(z,55)|0)+m(D,-29)|0)+m(p,-84)|0)- -64>>7,k=((A|0)>(k|0)?A:(n|0)>(k|0)?k:w)<<16>>16,i[f+28>>2]=(((m(k,-74)+m(o,84)|0)+m(t,55)|0)+m(u,-29)|0)+h>>r,k=m(k,74),i[f+20>>2]=(((k+m(o,55)|0)+m(t,-29)|0)+m(u,-84)|0)+h>>r,i[f+16>>2]=(((k+m(o,29)|0)+m(t,84)|0)+m(u,55)|0)+h>>r,p=(((y+m(z,29)|0)+m(D,84)|0)+m(p,55)|0)- -64>>7,A=((A|0)>(p|0)?A:(n|0)>(p|0)?p:w)<<16>>16,i[f+12>>2]=(((m(A,-74)+m(e,84)|0)+m(v,55)|0)+m(_,-29)|0)+h>>r,A=m(A,74),i[f+4>>2]=(((A+m(e,55)|0)+m(v,-29)|0)+m(_,-84)|0)+h>>r,i[f>>2]=(((A+m(e,29)|0)+m(v,84)|0)+m(_,55)|0)+h>>r}function Vh(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,u=i[13708],i[A+12>>2]=u,n=A+12|0,i[n+i[u-12>>2]>>2]=i[13709],u=n+i[i[A+12>>2]-12>>2]|0,k=A+16|0,b0(u,k),i[u+72>>2]=0,i[u+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,u=$0(k),i[u>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,k=A+148|0,R2(k,e,r),o=n,t=k,n=l[A+159|0],k=(n|0)<0,x(o,k?i[A+148>>2]:t,k?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=A+148|0,W0(n,r),o=n,n=l[A+159|0],k=(n|0)<0,x(A+12|0,k?i[A+148>>2]:o,k?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=x(H0(x(A+12|0,20352,9),s[e+48|0]),31338,1),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],t=(k|0)<0,x(n,t?i[A+148>>2]:o,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),n=x(H0(x(n,21093,13),s[e+49|0]),31338,1),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],t=(k|0)<0,x(n,t?i[A+148>>2]:o,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),n=x(H0(x(n,21624,17),s[e+50|0]),31338,1),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],t=(k|0)<0,x(n,t?i[A+148>>2]:o,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),n=x(H0(x(n,20482,15),s[e+52|0]),31338,1),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],t=(k|0)<0,x(n,t?i[A+148>>2]:o,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),n=x(H0(x(n,19578,12),s[e+53|0]),31338,1),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],t=(k|0)<0,x(n,t?i[A+148>>2]:o,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),n=x(H0(x(n,19530,22),s[e+55|0]),31338,1),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],t=(k|0)<0,x(n,t?i[A+148>>2]:o,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),n=x(H0(x(n,19378,22),s[e+56|0]),31338,1),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],t=(k|0)<0,x(n,t?i[A+148>>2]:o,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),n=x(H0(x(n,20188,24),s[e+57|0]),31338,1),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],t=(k|0)<0,x(n,t?i[A+148>>2]:o,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),x(n,19349,28);i:{if(s[e+58|0]){x(H0(A+12|0,s[e+59|0]+1|0),31338,1);break i}x(A+12|0,21752,12)}if(k=A+148|0,W0(k,r),n=0,o=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:o,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),x(A+12|0,16378,12),i[e+64>>2]!=i[e+60>>2])for(;r=x(A+12|0,21741,1),k=i[r>>2],t=k-12|0,o=i[t>>2]+r|0,i[o+4>>2]=i[o+4>>2]&-75|8,t=r+i[t>>2]|0,i[t+76>>2]==-1&&(o=A+148|0,k=i[t+28>>2],i[o>>2]=k,(k|0)!=100008&&(i[k+4>>2]=i[k+4>>2]+1),k=x0(o,100192),V[i[i[k>>2]+28>>2]](k,32)|0,O0(o),k=i[r>>2]),i[t+76>>2]=48,i[(r+i[k-12>>2]|0)+12>>2]=2,H0(r,s[i[e+60>>2]+n|0]),n=n+1|0,n>>>0>2]-i[e+60>>2]>>>0;);e=A+12|0,r=e+i[i[A+12>>2]-12>>2]|0,i[r+4>>2]=i[r+4>>2]&-75|2,x(e,31338,1),i2(f,u),f=i[13707],i[A+12>>2]=f,i[e+i[f-12>>2]>>2]=i[13710],i[u>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(u),T0(A+68|0),B=A+160|0}function Xr(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;n=f+e|0,r=i[f+4>>2];i:{r:{if(r&1)break r;if(!(r&2))break i;r=i[f>>2],e=r+e|0;e:{A:{f:{if(f=f-r|0,(f|0)!=i[24259]){if(A=i[f+12>>2],r>>>0<=255){if(k=i[f+8>>2],(k|0)!=(A|0))break f;u=97016,h=i[24254]&a0(-2,r>>>3|0),i[u>>2]=h;break r}if(t=i[f+24>>2],(f|0)!=(A|0)){r=i[f+8>>2],i[r+12>>2]=A,i[A+8>>2]=r;break e}if(k=i[f+20>>2],k)r=f+20|0;else{if(k=i[f+16>>2],!k)break A;r=f+16|0}for(;o=r,A=k,r=A+20|0,k=i[A+20>>2],!(!k&&(r=A+16|0,k=i[A+16>>2],!k)););i[o>>2]=0;break e}if(r=i[n+4>>2],(r&3)!=3)break r;i[24256]=e,i[n+4>>2]=r&-2,i[f+4>>2]=e|1,i[n>>2]=e;return}i[k+12>>2]=A,i[A+8>>2]=k;break r}A=0}if(!t)break r;r=i[f+28>>2],k=(r<<2)+97320|0;e:{if(i[k>>2]==(f|0)){if(i[k>>2]=A,A)break e;u=97020,h=i[24255]&a0(-2,r),i[u>>2]=h;break r}if(i[t+(i[t+16>>2]==(f|0)?16:20)>>2]=A,!A)break r}if(i[A+24>>2]=t,r=i[f+16>>2],r&&(i[A+16>>2]=r,i[r+24>>2]=A),r=i[f+20>>2],!r)break r;i[A+20>>2]=r,i[r+24>>2]=A}r:{e:{A:{f:{if(r=i[n+4>>2],!(r&2)){if(i[24260]==(n|0)){if(i[24260]=f,e=i[24257]+e|0,i[24257]=e,i[f+4>>2]=e|1,i[24259]!=(f|0))break i;i[24256]=0,i[24259]=0;return}if(i[24259]==(n|0)){i[24259]=f,e=i[24256]+e|0,i[24256]=e,i[f+4>>2]=e|1,i[f+e>>2]=e;return}if(e=(r&-8)+e|0,A=i[n+12>>2],r>>>0<=255){if(k=i[n+8>>2],(k|0)==(A|0)){u=97016,h=i[24254]&a0(-2,r>>>3|0),i[u>>2]=h;break e}i[k+12>>2]=A,i[A+8>>2]=k;break e}if(t=i[n+24>>2],(A|0)!=(n|0)){r=i[n+8>>2],i[r+12>>2]=A,i[A+8>>2]=r;break A}if(k=i[n+20>>2],k)r=n+20|0;else{if(k=i[n+16>>2],!k)break f;r=n+16|0}for(;o=r,A=k,r=A+20|0,k=i[A+20>>2],!(!k&&(r=A+16|0,k=i[A+16>>2],!k)););i[o>>2]=0;break A}i[n+4>>2]=r&-2,i[f+4>>2]=e|1,i[f+e>>2]=e;break r}A=0}if(!t)break e;r=i[n+28>>2],k=(r<<2)+97320|0;A:{if(i[k>>2]==(n|0)){if(i[k>>2]=A,A)break A;u=97020,h=i[24255]&a0(-2,r),i[u>>2]=h;break e}if(i[t+(i[t+16>>2]==(n|0)?16:20)>>2]=A,!A)break e}if(i[A+24>>2]=t,r=i[n+16>>2],r&&(i[A+16>>2]=r,i[r+24>>2]=A),r=i[n+20>>2],!r)break e;i[A+20>>2]=r,i[r+24>>2]=A}if(i[f+4>>2]=e|1,i[f+e>>2]=e,i[24259]!=(f|0))break r;i[24256]=e;return}if(e>>>0<=255){r=(e&-8)+97056|0,A=i[24254],e=1<<(e>>>3);r:{if(!(A&e)){i[24254]=e|A,e=r;break r}e=i[r+8>>2]}i[r+8>>2]=f,i[e+12>>2]=f,i[f+12>>2]=r,i[f+8>>2]=e;return}A=31,e>>>0<=16777215&&(r=$2(e>>>8|0),A=((e>>>38-r&1)-(r<<1)|0)+62|0),i[f+28>>2]=A,i[f+16>>2]=0,i[f+20>>2]=0,r=(A<<2)+97320|0;r:{k=i[24255],o=1<>2]=f,i[f+24>>2]=r;break e}for(A=e<<((A|0)!=31?25-(A>>>1|0)|0:0),r=i[r>>2];;){if(k=r,(i[r+4>>2]&-8)==(e|0))break r;if(r=A>>>29|0,A=A<<1,o=k+(r&4)|0,r=i[o+16>>2],!r)break}i[o+16>>2]=f,i[f+24>>2]=k}i[f+12>>2]=f,i[f+8>>2]=f;return}e=i[k+8>>2],i[e+12>>2]=f,i[k+8>>2]=f,i[f+24>>2]=0,i[f+12>>2]=k,i[f+8>>2]=e}}function Gr(f){var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;t=B-32|0,B=t;i:{e=i[f+16>>2];r:{if(e>>>0>=1024){i[f+16>>2]=e-1024,e=i[f+4>>2],u=i[e>>2],r=e+4|0,i[f+4>>2]=r,A=i[f+8>>2];e:{if((A|0)!=i[f+12>>2])break e;if(e=i[f>>2],e>>>0>>0){n=A-r|0,k=((r-e>>2)+1|0)/-2<<2,e=k+r|0,(r|0)!=(A|0)&&(F2(e,r,n),r=i[f+4>>2]),A=e+n|0,i[f+8>>2]=A,i[f+4>>2]=r+k;break e}if(k=(e|0)==(A|0)?1:A-e>>1,k>>>0>=1073741824)break i;if(o=k<<2,n=U(o),h=n+o|0,o=n+(k&-4)|0,k=o,(r|0)!=(A|0))for(A=k+(A-r|0)|0;i[k>>2]=i[r>>2],r=r+4|0,k=k+4|0,(A|0)!=(k|0););i[f+12>>2]=h,i[f+8>>2]=k,i[f+4>>2]=o,i[f>>2]=n,G(e),A=i[f+8>>2]}i[A>>2]=u,i[f+8>>2]=i[f+8>>2]+4;break r}if(r=i[f+8>>2],k=i[f+4>>2],n=r-k|0,e=i[f+12>>2],A=i[f>>2],o=e-A|0,n>>>0>>0){if((r|0)!=(e|0)){w=t,_=U(4096),i[w+12>>2]=_;e:{A:{n=i[f+8>>2];f:{if((n|0)!=i[f+12>>2]){e=n;break f}if(r=i[f+4>>2],A=i[f>>2],r>>>0>A>>>0){e=n-r|0,k=((r-A>>2)+1|0)/-2<<2,A=k+r|0,(r|0)!=(n|0)&&(F2(A,r,e),r=i[f+4>>2]),e=e+A|0,i[f+8>>2]=e,i[f+4>>2]=r+k;break f}if(e=(A|0)==(n|0)?1:n-A>>1,e>>>0>=1073741824)break A;if(o=e<<2,k=U(o),o=k+o|0,u=k+(e&-4)|0,e=u,(r|0)!=(n|0))for(n=(n-r|0)+e|0;i[e>>2]=i[r>>2],r=r+4|0,e=e+4|0,(n|0)!=(e|0););if(i[f+12>>2]=o,i[f+8>>2]=e,i[f+4>>2]=u,i[f>>2]=k,!A)break f;G(A),e=i[f+8>>2]}i[e>>2]=i[t+12>>2],i[f+8>>2]=i[f+8>>2]+4;break e}_2(),P()}break r}w=t,_=U(4096),i[w+12>>2]=_,_7(f,t+12|0),e=i[f+4>>2],u=i[e>>2],r=e+4|0,i[f+4>>2]=r,A=i[f+8>>2];e:{if((A|0)!=i[f+12>>2])break e;if(e=i[f>>2],e>>>0>>0){n=A-r|0,k=((r-e>>2)+1|0)/-2<<2,e=k+r|0,(r|0)!=(A|0)&&(F2(e,r,n),r=i[f+4>>2]),A=e+n|0,i[f+8>>2]=A,i[f+4>>2]=r+k;break e}if(k=(e|0)==(A|0)?1:A-e>>1,k>>>0>=1073741824)break i;if(o=k<<2,n=U(o),h=n+o|0,o=n+(k&-4)|0,k=o,(r|0)!=(A|0))for(A=k+(A-r|0)|0;i[k>>2]=i[r>>2],r=r+4|0,k=k+4|0,(A|0)!=(k|0););i[f+12>>2]=h,i[f+8>>2]=k,i[f+4>>2]=o,i[f>>2]=n,G(e),A=i[f+8>>2]}i[A>>2]=u,i[f+8>>2]=i[f+8>>2]+4;break r}if(i[t+28>>2]=f+12,e=(e|0)==(A|0)?1:o>>1,e>>>0>=1073741824)break i;u=e<<2,e=U(u),i[t+12>>2]=e,o=e+u|0,i[t+24>>2]=o,A=e+n|0,i[t+16>>2]=A,h=U(4096);e:{if((n|0)!=(u|0))break e;if((n|0)>0){A=A-((n>>>1|0)+2&-4)|0,i[t+16>>2]=A;break e}if(r=(r|0)==(k|0)?1:n>>1,r>>>0>=1073741824)break i;A=r<<2,n=U(A),i[t+12>>2]=n,o=A+n|0,i[t+24>>2]=o,A=n+(r&-4)|0,i[t+16>>2]=A,G(e),k=i[f+4>>2],r=i[f+8>>2],e=n}if(i[A>>2]=h,u=A+4|0,i[t+20>>2]=u,(r|0)!=(k|0)){for(;r=r-4|0,_7(t+12|0,r),k=i[f+4>>2],(k|0)!=(r|0););r=i[f+8>>2],o=i[t+24>>2],u=i[t+20>>2],A=i[t+16>>2],e=i[t+12>>2]}if(n=i[f>>2],i[f>>2]=e,i[t+12>>2]=n,i[f+4>>2]=A,i[t+16>>2]=k,i[f+8>>2]=u,i[t+20>>2]=r,e=i[f+12>>2],i[f+12>>2]=o,i[t+24>>2]=e,(r|0)!=(k|0)&&(i[t+20>>2]=((k-r|0)+3&-4)+r),!n)break r;G(n)}B=t+32|0;return}_2(),P()}function Ih(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0;e=B-32|0,B=e,t=U0(i[r>>2],0),w=U0(i[r>>2],1),_=U0(i[r>>2],2),W=H2(i[r>>2],6),W&&(v=U0(i[r>>2],6));i:{if(!(!(t>>>0>8|w>>>0>8)&_>>>0<9)){i[f>>2]=0,i[f+4>>2]=0;break i}if(!((t|0)==(w|0)&(t|0)==(_|0))){i[f>>2]=0,i[f+4>>2]=0;break i}A=i[r>>2],h=i[A+48>>2],h&&(i[h+4>>2]=i[h+4>>2]+1,A=i[r>>2]),k=i[A+28>>2],n=i[A+24>>2],A=U(136),i[A>>2]=72792,i[A+4>>2]=0,i[A+8>>2]=0,B0(A+20|0,0,104),u=i[A+4>>2],p=u+1|0,i[A+4>>2]=p,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,o=A- -64|0,i[o>>2]=0,i[o+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,o=A+12|0,i[A+12>>2]=o,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=u,i[A+16>>2]=A,p||(V[i[i[A>>2]+8>>2]](A),g(A)),i[o+36>>2]=2,i[o+32>>2]=0,i[o+28>>2]=k,i[o+24>>2]=n,u=(n+1|0)/2|0;r:{e:{if(!J0(o,0,n,k,t)||!J0(o,1,u,k,w)||!J0(o,2,u,k,_)||W&&!J0(o,6,n,k,v))break e;if(v=0,i[e+28>>2]=0,i[e+24>>2]=0,i[e+20>>2]=0,i[e+16>>2]=0,i[e+12>>2]=0,i[e+8>>2]=0,i[e+4>>2]=0,i[e>>2]=0,w=v0(i[r>>2],0,e+28|0),p=v0(i[r>>2],1,e+24|0),E=v0(i[r>>2],2,e+20|0),_=v0(o,0,e+12|0),J=v0(o,1,e+8|0),R=v0(o,2,e+4|0),W&&(D=v0(i[r>>2],6,e+16|0),v=v0(o,6,e)),!(!(n&1)|(k|0)<2))for(t=(u+R|0)-1|0,Z=(n+E|0)-1|0,u=(u+J|0)-1|0,y=(n+p|0)-1|0,C=k-2|0,r=0;l[u+m(i[e+8>>2],r)|0]=s[y+m(i[e+24>>2],r)|0],l[t+m(i[e+4>>2],r)|0]=s[Z+m(i[e+20>>2],r)|0],I=(r|0)!=(C|0),r=r+1|0,!!I;);A:{if((k|0)<=0)break A;if((n|0)>=2){for(u=n-1|0,t=0;;){for(r=0;Z=(m(i[e+20>>2],t)+E|0)+r|0,y=s[Z|0],Z=s[Z+1|0],C=r>>>1|0,I=(p+m(i[e+24>>2],t)|0)+r|0,l[C+(m(i[e+8>>2],t)+J|0)|0]=(s[I|0]+s[I+1|0]|0)+1>>>1,l[C+(m(i[e+4>>2],t)+R|0)|0]=(Z+y|0)+1>>>1,r=r+2|0,(u|0)>(r|0););if(t=t+1|0,(t|0)==(k|0))break}if((k|0)<=0)break A}if(W){for(r=0;l0(_+m(i[e+12>>2],r)|0,w+m(i[e+28>>2],r)|0,n),l0(m(i[e>>2],r)+v|0,m(i[e+16>>2],r)+D|0,n),r=r+1|0,(k|0)!=(r|0););break A}if(r=0,(k|0)!=1)for(v=k&2147483646,t=0;l0(_+m(i[e+12>>2],r)|0,w+m(i[e+28>>2],r)|0,n),u=r|1,l0(_+m(u,i[e+12>>2])|0,w+m(u,i[e+28>>2])|0,n),r=r+2|0,t=t+2|0,(v|0)!=(t|0););if(!(k&1))break A;l0(_+m(i[e+12>>2],r)|0,w+m(i[e+28>>2],r)|0,n)}i[f+4>>2]=A,i[f>>2]=o;break r}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(!h||(f=i[h+4>>2],i[h+4>>2]=f-1,f))break i;V[i[i[h>>2]+8>>2]](h),g(h)}B=e+32|0}function Qh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0;A=B-32|0,B=A,t=s[k+8|0],u=i[i[r>>2]+36>>2],e=U(136),i[e>>2]=72792,i[e+4>>2]=0,i[e+8>>2]=0,B0(e+20|0,0,104),k=i[e+4>>2],o=k+1|0,i[e+4>>2]=o,i[e+56>>2]=0,i[e+60>>2]=0,i[e+44>>2]=99,i[e+48>>2]=99,i[e+32>>2]=3795,n=e- -64|0,i[n>>2]=0,i[n+4>>2]=0,i[e+132>>2]=0,i[e+124>>2]=0,i[e+128>>2]=0,i[e+84>>2]=1,i[e+88>>2]=1,i[e+72>>2]=e+76,i[e+92>>2]=0,i[e+96>>2]=0,i[e+100>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e+112>>2]=0,l[e+113|0]=0,l[e+114|0]=0,l[e+115|0]=0,l[e+116|0]=0,l[e+117|0]=0,l[e+118|0]=0,l[e+119|0]=0,l[e+120|0]=0,n=e+12|0,i[e+12>>2]=n,i[e+8>>2]=i[e+8>>2]+1,i[e+4>>2]=k,i[e+16>>2]=e,o||(V[i[i[e>>2]+8>>2]](e),g(e)),k=i[r>>2],o=i[k+28>>2],h=i[k+24>>2],k=U0(k,10),i[n+36>>2]=3,i[n+32>>2]=1,i[n+28>>2]=o,i[n+24>>2]=h;i:{r:{if(!J0(n,3,h,o,k)||!J0(n,4,h,o,k)||!J0(n,5,h,o,k)||(Z=t&1,Z&&!J0(n,6,h,o,k)))break r;i[A+28>>2]=0,i[A+24>>2]=0,i[A+20>>2]=0,i[A+16>>2]=0,i[A+12>>2]=0,I=v0(i[r>>2],10,A+28|0),y=v0(n,3,A+24|0),E=v0(n,4,A+20|0),J=v0(n,5,A+16|0),Z&&(W=v0(n,6,A+12|0),p=i[A+12>>2]/2|0),Z=i[A+16>>2]/2|0,R=i[A+20>>2]/2|0,D=i[A+24>>2]/2|0;e:{if((o|0)<=0|(h|0)<=0)break e;if(z=(u&-3)==13?8:6,H=i[A+28>>2],!(t&1)){for(k=0;;){for(_=m(k,H)+I|0,w=(m(k,Z)<<1)+J|0,v=(m(k,R)<<1)+E|0,C=(m(k,D)<<1)+y|0,r=0;t=_+m(r,z)|0,u=s[t+4|0]|s[t+5|0]<<8,W=s[t+2|0]|s[t+3|0]<<8,p=r<<1,t=s[t|0]|s[t+1|0]<<8,X[p+C>>1]=t<<8|t>>>8,X[p+v>>1]=W<<8|W>>>8,X[w+p>>1]=u<<8|u>>>8,r=r+1|0,(h|0)!=(r|0););if(k=k+1|0,(o|0)==(k|0))break}break e}v=-1<>1]=t<<8|t>>>8,X[v+S>>1]=w<<8|w>>>8,X[v+a>>1]=_<<8|_>>>8,t=u+(r<<3)|0,t=s[t+6|0]|s[t+7|0]<<8,X[(r+C<<1)+W>>1]=t<<8|t>>>8,r=r+1|0,(h|0)!=(r|0););if(k=k+1|0,(o|0)==(k|0))break}break e;default:break A}for(;;){for(C=m(k,p),a=m(k,H)+I|0,S=(m(k,Z)<<1)+J|0,q=(m(k,R)<<1)+E|0,d=(m(k,D)<<1)+y|0,r=0;t=a+m(r,z)|0,u=s[t+4|0]|s[t+5|0]<<8,_=s[t+2|0]|s[t+3|0]<<8,w=r<<1,t=s[t|0]|s[t+1|0]<<8,X[w+d>>1]=t<<8|t>>>8,X[w+q>>1]=_<<8|_>>>8,X[w+S>>1]=u<<8|u>>>8,X[(r+C<<1)+W>>1]=v,r=r+1|0,(h|0)!=(r|0););if(k=k+1|0,(o|0)==(k|0))break}}i[f+4>>2]=e,i[f>>2]=n;break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[e+4>>2],i[e+4>>2]=f-1,f)break i;V[i[i[e>>2]+8>>2]](e),g(e)}B=A+32|0}function Mk(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;o=U(136),i[o+4>>2]=0,i[o+8>>2]=0,i[o>>2]=72792,B0(o+20|0,0,104),u=i[o+4>>2],w=u+1|0,i[o+4>>2]=w,i[o+56>>2]=0,i[o+60>>2]=0,i[o+44>>2]=99,i[o+48>>2]=99,i[o+32>>2]=3795,h=o- -64|0,i[h>>2]=0,i[h+4>>2]=0,i[o+132>>2]=0,i[o+124>>2]=0,i[o+128>>2]=0,i[o+84>>2]=1,i[o+88>>2]=1,i[o+72>>2]=o+76,i[o+92>>2]=0,i[o+96>>2]=0,i[o+100>>2]=0,i[o+104>>2]=0,i[o+108>>2]=0,i[o+112>>2]=0,l[o+113|0]=0,l[o+114|0]=0,l[o+115|0]=0,l[o+116|0]=0,l[o+117|0]=0,l[o+118|0]=0,l[o+119|0]=0,l[o+120|0]=0,h=o+12|0,i[o+12>>2]=h,i[o+8>>2]=i[o+8>>2]+1,i[o+4>>2]=u,i[o+16>>2]=o,w||(V[i[i[o>>2]+8>>2]](o),g(o)),i[t>>2]=h,u=i[t+4>>2],i[t+4>>2]=o;i:{if(!u||(o=i[u+4>>2],i[u+4>>2]=o-1,o))break i;V[i[i[u>>2]+8>>2]](u),g(u)}if(u=i[e+36>>2],o=i[t>>2],i[o+32>>2]=i[e+32>>2],i[o+36>>2]=u,i[o+28>>2]=(n-k|0)+1,i[o+24>>2]=(A-r|0)+1,u=i[e+60>>2],I=e- -64|0,(u|0)!=(I|0)){for(;;){o=i[u+24>>2],w=i[e+24>>2],_=(m(o,r)|0)/(w|0)|0,v=i[u+16>>2],p=(((m(A,o)|0)/(w|0)|0)-_|0)+1|0,o=i[u+28>>2],w=i[e+28>>2],W=(m(o,n)|0)/(w|0)|0,w=(m(k,o)|0)/(w|0)|0,J0(i[t>>2],v,p,(W-w|0)+1|0,s[u+20|0]),o=i[t>>2],C=o- -64|0,h=C;i:{r:{if(o=i[o+64>>2],!o)break r;for(;Z=(v|0)>i[o+16>>2],h=Z?h:o,o=i[(Z<<2)+o>>2],!!o;);if((h|0)==(C|0))break r;if(C=0,o=0,(v|0)>2])break i;C=i[h+48>>2],o=i[h+40>>2];break i}C=0,o=0}h=o,o=i[u+40>>2],v=i[u+48>>2];i:{if(s[u+20|0]!=8){if((w|0)>(W|0)||(p=p<<1,_=o+(_<<1)|0,o=w,W+o&1||(l0(h,_+m(o,v)|0,p),o=o+1|0),(w|0)==(W|0)))break i;for(;l0(h+m(o-w|0,C)|0,_+m(o,v)|0,p),Z=o+1|0,l0(h+m(Z-w|0,C)|0,_+m(v,Z)|0,p),o=o+2|0,(W|0)!=(Z|0););break i}if((w|0)>(W|0)||(_=o+_|0,o=w,W+o&1||(l0(h,_+m(o,v)|0,p),o=o+1|0),(w|0)==(W|0)))break i;for(;l0(h+m(o-w|0,C)|0,_+m(o,v)|0,p),Z=o+1|0,l0(h+m(Z-w|0,C)|0,_+m(v,Z)|0,p),o=o+2|0,(W|0)!=(Z|0););}h=i[u+4>>2];i:{if(h){for(;;)if(o=h,h=i[o>>2],!h)break i}for(;o=i[u+8>>2],w=i[o>>2]!=(u|0),u=o,!!w;);}if(u=o,(o|0)==(I|0))break}o=i[t>>2]}r=i[e+44>>2],A=i[e+48>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[o+44>>2]=r,r=i[o+48>>2],i[o+48>>2]=A;i:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r)}k=i[e+52>>2],r=i[t>>2],A=i[e+56>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+52>>2]=k,e=i[r+56>>2],i[r+56>>2]=A;i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];return}_0(f,i[19566],i[19567])}function yh(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0;u=B-16|0,B=u,o=i[k>>2],n=o+i[r>>2]|0;i:{if(i[r+4>>2]-n>>>0<(A|0)/8<<2>>>0){if(e=U(56),i[u+4>>2]=e,i[u+8>>2]=54,i[u+12>>2]=-2147483592,r=s[6821]|s[6822]<<8|(s[6823]<<16|s[6824]<<24),A=s[6817]|s[6818]<<8|(s[6819]<<16|s[6820]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+54|0]=0,r=s[6867]|s[6868]<<8|(s[6869]<<16|s[6870]<<24),A=s[6863]|s[6864]<<8|(s[6865]<<16|s[6866]<<24),l[e+46|0]=A,l[e+47|0]=A>>>8,l[e+48|0]=A>>>16,l[e+49|0]=A>>>24,l[e+50|0]=r,l[e+51|0]=r>>>8,l[e+52|0]=r>>>16,l[e+53|0]=r>>>24,r=s[6861]|s[6862]<<8|(s[6863]<<16|s[6864]<<24),A=s[6857]|s[6858]<<8|(s[6859]<<16|s[6860]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[6853]|s[6854]<<8|(s[6855]<<16|s[6856]<<24),A=s[6849]|s[6850]<<8|(s[6851]<<16|s[6852]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[6845]|s[6846]<<8|(s[6847]<<16|s[6848]<<24),A=s[6841]|s[6842]<<8|(s[6843]<<16|s[6844]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[6837]|s[6838]<<8|(s[6839]<<16|s[6840]<<24),A=s[6833]|s[6834]<<8|(s[6835]<<16|s[6836]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[6829]|s[6830]<<8|(s[6831]<<16|s[6832]<<24),A=s[6825]|s[6826]<<8|(s[6827]<<16|s[6828]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,136,u+4|0),l[u+15|0]>=0)break i;G(i[u+4>>2]);break i}t=s[n|0],h=s[n+1|0];r:{if((A|0)==32){n=s[n+3|0]|(h<<16|t<<24|s[n+2|0]<<8),t=o+4|0;break r}n=(h<<16|t<<24)>>16,t=o+2|0}i[k>>2]=t,i[e+4>>2]=n,o=i[k>>2],n=o+i[r>>2]|0,t=s[n|0],h=s[n+1|0];r:{if((A|0)==32){n=s[n+3|0]|(h<<16|t<<24|s[n+2|0]<<8),t=o+4|0;break r}n=(h<<16|t<<24)>>16,t=o+2|0}i[k>>2]=t,i[e+8>>2]=n,t=i[r>>2],h=i[k>>2],r=t+h|0,o=s[r|0],n=s[r+1|0];r:{if((A|0)==32){r=s[r+3|0]|(n<<16|o<<24|s[r+2|0]<<8),n=4;break r}r=n|o<<8,n=2}i[k>>2]=n+h,i[e+12>>2]=r,r=t,t=i[k>>2],r=r+t|0,o=s[r|0],n=s[r+1|0];r:{if((A|0)==32){A=s[r+3|0]|(n<<16|o<<24|s[r+2|0]<<8),r=4;break r}A=n|o<<8,r=2}if(i[k>>2]=r+t,i[e+16>>2]=A,e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=u+16|0}function D8(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;n=B-16|0,B=n,o=1;i:{if(u=e+112|0,w=i[e+108>>2],(u|0)==(w|0))break i;for(;;){h=0,A=w;r:{for(;;){if(_=i[i[A+20>>2]+56>>2]==(o|0),_)break r;t=A,k=i[A+4>>2];e:{if(k){for(;;)if(A=k,k=i[A>>2],!k)break e}for(;A=i[t+8>>2],k=i[A>>2]!=(t|0),t=A,!!k;);}if(h=h|_,(A|0)==(u|0))break}if(!(h&1))break i}o=o+1|0}}if(A=U(144),i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=70824,k=A+16|0,i[k+8>>2]=0,i[k+12>>2]=0,i[k+16>>2]=0,i[k+20>>2]=0,i[k+24>>2]=0,i[k+28>>2]=0,i[k+32>>2]=0,i[k>>2]=68500,i[A+52>>2]=0,i[A+56>>2]=0,i[A+68>>2]=0,l[A+57|0]=0,l[A+58|0]=0,l[A+59|0]=0,l[A+60|0]=0,l[A+61|0]=0,l[A+62|0]=0,l[A+63|0]=0,l[A+64|0]=0,i[k>>2]=69024,i[A+80>>2]=0,i[A+84>>2]=0,X[A+76>>1]=0,i[A+88>>2]=0,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,i[A+120>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+132>>2]=0,l[A+133|0]=0,l[A+134|0]=0,l[A+135|0]=0,l[A+136|0]=0,l[A+137|0]=0,l[A+138|0]=0,l[A+139|0]=0,l[A+140|0]=0,i[A+32>>2]=1768842853,i[f+4>>2]=A,i[f>>2]=k,i[A+72>>2]=o,l[k+124|0]=0,i[k+52>>2]=i[k+52>>2]&-2,k=G2(r),k>>>0<2147483640){i:{r:{if(k>>>0>=11){w=(k|7)+1|0,t=U(w),i[n+12>>2]=w|-2147483648,i[n+4>>2]=t,i[n+8>>2]=k;break r}if(l[n+15|0]=k,t=n+4|0,!k)break i}l0(t,r,k)}r=A+80|0,l[k+t|0]=0,k=l[n+15|0];i:{r:{if(l[A+91|0]>=0){if((k|0)>=0){A=i[n+8>>2],i[r>>2]=i[n+4>>2],i[r+4>>2]=A,i[r+8>>2]=i[n+12>>2];break i}i4(r,i[n+4>>2],i[n+8>>2]);break r}if(A=r,r=(k|0)<0,_4(A,r?i[n+4>>2]:n+4|0,r?i[n+8>>2]:k),l[n+15|0]>=0)break i}G(i[n+4>>2])}A=u,k=i[A>>2];i:{r:{if(!k)break r;for(;;){if(A=k,r=i[A+16>>2],r>>>0>o>>>0){if(u=A,k=i[A>>2],k)continue;break r}if(r>>>0>=o>>>0)break i;if(k=i[A+4>>2],!k)break}u=A+4|0}k=U(28),i[k+20>>2]=0,i[k+24>>2]=0,i[k+16>>2]=o,i[k+8>>2]=A,i[k>>2]=0,i[k+4>>2]=0,i[u>>2]=k,A=k,r=i[i[e+108>>2]>>2],r&&(i[e+108>>2]=r,A=i[u>>2]),D1(i[e+112>>2],A),i[e+116>>2]=i[e+116>>2]+1}r=i[f>>2],A=i[f+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[k+20>>2]=r,r=i[k+24>>2],i[k+24>>2]=A;i:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r)}e=i[e+92>>2],r=i[f>>2],i[n+4>>2]=r,A=i[f+4>>2],i[n+8>>2]=A;i:{r:{e:{if(!A){if(h=e+40|0,t=i[e+40>>2],t>>>0>=k0[e+44>>2])break r;i[t+4>>2]=A,i[t>>2]=r;break e}if(i[A+4>>2]=i[A+4>>2]+1,h=e+40|0,t=i[e+40>>2],t>>>0>=k0[e+44>>2])break r;i[t+4>>2]=A,i[t>>2]=r,i[A+4>>2]=i[A+4>>2]+1}k=t+8|0;break i}k=Q2(e+36|0,n+4|0),A=i[n+8>>2]}i[h>>2]=k;i:{if(!A||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break i;V[i[i[A>>2]+8>>2]](A),g(A)}B=n+16|0;return}c2(),P()}function Fh(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0;A=B-160|0,B=A,i[A+68>>2]=54820,n=i[13708],i[A+12>>2]=n,k=i[n-12>>2],n=A+12|0,i[k+n>>2]=i[13709],k=n+i[i[A+12>>2]-12>>2]|0,h=A+16|0,b0(k,h),i[k+72>>2]=0,i[k+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,h=$0(h),i[h>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,k=A+148|0,R2(k,e,r),o=n,t=k,n=l[A+159|0],k=(n|0)<0,x(o,k?i[A+148>>2]:t,k?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=A+148|0,W0(n,r),t=n,n=l[A+159|0],k=(n|0)<0,x(A+12|0,k?i[A+148>>2]:t,k?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=x(L0(x(A+12|0,21529,9),i[e+56>>2]),31338,1),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],t=(k|0)<0,x(n,t?i[A+148>>2]:o,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),n=x(L0(x(n,19425,23),Q[e+60>>1]),31338,1),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],t=(k|0)<0,x(n,t?i[A+148>>2]:o,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),o=x(n,20997,11),n=e- -64|0,k=l[e+75|0],t=(k|0)<0,k=x(x(o,t?i[e+64>>2]:n,t?i[e+68>>2]:k),31338,1),t=A+148|0,W0(t,r),o=t,t=l[A+159|0],u=(t|0)<0,x(k,u?i[A+148>>2]:o,u?i[A+152>>2]:t),l[A+159|0]<0&&G(i[A+148>>2]),o=x(k,21081,11),k=l[e+87|0],t=(k|0)<0,x(x(o,t?i[e+76>>2]:e+76|0,t?i[e+80>>2]:k),31338,1),k=l[e+75|0],t=(k|0)<0,u=i[e+68>>2];i:{if(((t?u:k)|0)!=4||(t=t?i[n>>2]:n,(s[t|0]|s[t+1|0]<<8|(s[t+2|0]<<16|s[t+3|0]<<24))!=1701669229))break i;k=A+148|0,W0(k,r),o=k,k=l[A+159|0],t=(k|0)<0,x(A+12|0,t?i[A+148>>2]:o,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),o=x(A+12|0,20918,14),k=l[e+99|0],t=(k|0)<0,k=x(x(o,t?i[e+88>>2]:e+88|0,t?i[e+92>>2]:k),31338,1),t=A+148|0,W0(t,r),o=t,t=l[A+159|0],u=(t|0)<0,x(k,u?i[A+148>>2]:o,u?i[A+152>>2]:t),l[A+159|0]<0&&G(i[A+148>>2]),o=x(k,20561,18),k=l[e+111|0],t=(k|0)<0,x(x(o,t?i[e+100>>2]:e+100|0,t?i[e+104>>2]:k),31338,1),k=s[e+75|0],u=i[e+68>>2]}t=k,k=k<<24>>24<0;i:{if(((k?u:t)|0)!=4||(n=k?i[n>>2]:n,(s[n|0]|s[n+1|0]<<8|(s[n+2|0]<<16|s[n+3|0]<<24))!=543781493))break i;n=A+148|0,W0(n,r),t=n,n=l[A+159|0],k=(n|0)<0,x(A+12|0,k?i[A+148>>2]:t,k?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),t=x(A+12|0,21054,15),n=l[e+123|0],k=(n|0)<0,x(x(t,k?i[e+112>>2]:e+112|0,k?i[e+116>>2]:n),31338,1)}n=A+148|0,W0(n,r),k=n,r=l[A+159|0],n=(r|0)<0,x(A+12|0,n?i[A+148>>2]:k,n?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),n=A+12|0,r=x(n,20362,13),k=i[i[r>>2]-12>>2]+r|0,i[k+4>>2]=i[k+4>>2]|1,x(re(r,s[e+124|0]),31338,1),i2(f,h),f=i[13707],i[A+12>>2]=f,i[n+i[f-12>>2]>>2]=i[13710],i[h>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(h),T0(A+68|0),B=A+160|0}function Eh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;A=B-32|0,B=A,t=H2(i[r>>2],6),k=s[k+8|0];i:{r:{e:{if((U0(i[r>>2],3)|0)!=8||(U0(i[r>>2],4)|0)!=8)break e;if((U0(i[r>>2],5)|0)==8)break r}i[f>>2]=0,i[f+4>>2]=0;break i}r:{if(!t||(U0(i[r>>2],6)|0)==8)break r;i[f>>2]=0,i[f+4>>2]=0;break i}if(e=U(136),i[e+4>>2]=0,i[e+8>>2]=0,i[e>>2]=72792,B0(e+20|0,0,104),n=i[e+4>>2],o=n+1|0,i[e+4>>2]=o,i[e+56>>2]=0,i[e+60>>2]=0,i[e+44>>2]=99,i[e+48>>2]=99,i[e+32>>2]=3795,u=e- -64|0,i[u>>2]=0,i[u+4>>2]=0,i[e+132>>2]=0,i[e+124>>2]=0,i[e+128>>2]=0,i[e+84>>2]=1,i[e+88>>2]=1,i[e+72>>2]=e+76,i[e+92>>2]=0,i[e+96>>2]=0,i[e+100>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e+112>>2]=0,l[e+113|0]=0,l[e+114|0]=0,l[e+115|0]=0,l[e+116|0]=0,l[e+117|0]=0,l[e+118|0]=0,l[e+119|0]=0,l[e+120|0]=0,u=e+12|0,i[e+12>>2]=u,i[e+8>>2]=i[e+8>>2]+1,i[e+4>>2]=n,i[e+16>>2]=e,o||(V[i[i[e>>2]+8>>2]](e),g(e)),n=i[r>>2],o=i[n+24>>2],h=i[n+28>>2],n=h,i[u+36>>2]=k&1?11:10,i[u+32>>2]=1,i[u+28>>2]=n,i[u+24>>2]=o,J0(u,10,o,n,8)){i[A+28>>2]=0,i[A+24>>2]=0,i[A+20>>2]=0,i[A+16>>2]=0,i[A+12>>2]=0,w=v0(i[r>>2],3,A+28|0),_=v0(i[r>>2],4,A+24|0),v=v0(i[r>>2],5,A+20|0),n=v0(u,10,A+12|0),t&&(Z=v0(i[r>>2],6,A+16|0));r:{if((h|0)<=0)break r;if((k&t)==1){if((o|0)<=0)break r;for(r=0,p=i[A+16>>2];;){for(W=m(r,p),k=0;t=k<<2,l[t+(n+m(i[A+12>>2],r)|0)|0]=s[(k+w|0)+m(i[A+28>>2],r)|0],l[(t+(n+m(i[A+12>>2],r)|0)|0)+1|0]=s[(k+_|0)+m(i[A+24>>2],r)|0],l[(t+(n+m(i[A+12>>2],r)|0)|0)+2|0]=s[(k+v|0)+m(i[A+20>>2],r)|0],l[(t+(n+m(i[A+12>>2],r)|0)|0)+3|0]=s[(k+W|0)+Z|0],k=k+1|0,(o|0)!=(k|0););if(r=r+1|0,(h|0)==(r|0))break}break r}if(k&1){if((o|0)<=0)break r;for(r=0;;){for(k=0;t=k<<2,l[t+(n+m(i[A+12>>2],r)|0)|0]=s[(k+w|0)+m(i[A+28>>2],r)|0],l[(t+(n+m(i[A+12>>2],r)|0)|0)+1|0]=s[(k+_|0)+m(i[A+24>>2],r)|0],l[(t+(n+m(i[A+12>>2],r)|0)|0)+2|0]=s[(k+v|0)+m(i[A+20>>2],r)|0],l[(t+(n+m(i[A+12>>2],r)|0)|0)+3|0]=255,k=k+1|0,(o|0)!=(k|0););if(r=r+1|0,(h|0)==(r|0))break}break r}if((o|0)<=0)break r;for(r=0;;){for(k=0;t=m(k,3),l[t+(n+m(i[A+12>>2],r)|0)|0]=s[(k+w|0)+m(i[A+28>>2],r)|0],l[(t+(n+m(i[A+12>>2],r)|0)|0)+1|0]=s[(k+_|0)+m(i[A+24>>2],r)|0],l[(t+(n+m(i[A+12>>2],r)|0)|0)+2|0]=s[(k+v|0)+m(i[A+20>>2],r)|0],k=k+1|0,(o|0)!=(k|0););if(r=r+1|0,(h|0)==(r|0))break}}i[f+4>>2]=e,i[f>>2]=u;break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[e+4>>2],i[e+4>>2]=f-1,f)break i;V[i[i[e>>2]+8>>2]](e),g(e)}B=A+32|0}function Yh(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;i[f+4>>2]=1,e=i[f+12>>2],i[e+324>>2]=i[e+324>>2]-1,i[e+328>>2]=i[e+328>>2]+1,e=i[f+12>>2],w=i[e+124>>2],h=i[w+16876>>2],v=i[w+16892>>2],A=v-1|0,i8(e,f,A,i[f+8>>2],i[f+24>>2]),r=i[f+8>>2],(r|0)>0&&(i8(i[f+12>>2],f,A,r-1|0,i[f+24>>2]),r=i[f+8>>2]),e=r+1|0,(e|0)>2]&&(i8(i[f+12>>2],f,A,e,i[f+24>>2]),r=i[f+8>>2],e=r+1|0),n=i[f+20>>2],A=i[f+16>>2],e=e<>2],k=(e|0)>(u|0)?u:e,k&1)break e;if(e=i[n+124>>2],u=(i[e+16840>>2]+7|0)/8|0,o=(i[e+16832>>2]+7|0)/8|0,e=i[A+40>>2],(e|0)==i[n+40>>2])break r;if((r|0)>=(k|0))break i;for(e=r;t=m(e,o),l0(i[n+4>>2]+m(t,i[n+40>>2])|0,i[A+4>>2]+m(t,i[A+40>>2])|0,m(o,i[A+24>>2])),e=e+1|0,(k|0)!=(e|0););break i}C0(17299,14027,570,7096),P()}C0(17314,14027,571,7096),P()}t=m(e,m(r,o)),l0(t+i[n+4>>2]|0,t+i[A+4>>2]|0,m(k-r|0,m(e,o)))}e=k,k=s[A+51|0],e=(e|0)/(k|0)|0,r=(r|0)/(k|0)|0;i:{if(!i[A+20>>2])break i;if(k=i[A+44>>2],(k|0)!=i[n+44>>2]){if((e|0)<=(r|0))break i;for(;k=m(r,u),l0(i[n+8>>2]+m(k,i[n+44>>2])|0,i[A+8>>2]+m(k,i[A+44>>2])|0,m(u,i[A+32>>2])),l0(i[n+12>>2]+m(k,i[n+44>>2])|0,i[A+12>>2]+m(k,i[A+44>>2])|0,m(u,i[A+32>>2])),r=r+1|0,(e|0)!=(r|0););break i}o=m(r,u),t=m(o,k),e=m(u,e-r|0),l0(t+i[n+8>>2]|0,t+i[A+8>>2]|0,m(e,k)),k=i[n+12>>2],r=i[n+44>>2],n=m(r,o),l0(k+n|0,n+i[A+12>>2]|0,m(e,r))}i:{if(i[w+16892>>2]<=0)break i;for(e=1<>2],n=i[A+52>>2],u=i[f+8>>2],k=Q[((i[A+140>>2]+m(m(u,i[A+152>>2]),24)|0)+m(r,24)|0)+2>>1],k>>>0>=i[A+56>>2]-n>>2>>>0||(n=i[n+(k<<2)>>2],!n))break i;r:{if(!s[n+333|0])break r;if(o=i[f+20>>2],k=i[o+40>>2],o=i[o+4>>2],t=i[f+16>>2],h=i[t+40>>2],t=i[t+4>>2],i[i[A+124>>2]+16832>>2]>=9){t6(A,r,u,0,e,e,t,h,o,k);break r}o6(A,r,u,0,e,e,t,h,o,k)}r:{if(!s[n+334|0])break r;A=(e|0)/i[w+16856>>2]|0,n=(e|0)/i[w+16852>>2]|0,u=i[f+8>>2],o=i[f+20>>2],k=i[o+44>>2],o=i[o+8>>2],t=i[f+16>>2],h=i[t+44>>2],t=i[t+8>>2],_=i[f+12>>2];e:{if(i[i[_+124>>2]+16840>>2]>=9){t6(_,r,u,1,n,A,t,h,o,k);break e}o6(_,r,u,1,n,A,t,h,o,k)}if(u=i[f+8>>2],o=i[f+20>>2],k=i[o+44>>2],o=i[o+12>>2],t=i[f+16>>2],h=i[t+44>>2],t=i[t+12>>2],_=i[f+12>>2],i[i[_+124>>2]+16840>>2]>=9){t6(_,r,u,2,n,A,t,h,o,k);break r}o6(_,r,u,2,n,A,t,h,o,k)}if(r=r+1|0,!((r|0)>2]))break}}if(r=0,(v|0)>0)for(;e=(i[i[f+12>>2]+320>>2]+m(r,76)|0)+m(m(i[f+8>>2],i[w+16892>>2]),76)|0,i[e>>2]<4&&(i[e>>2]=4),r=r+1|0,(v|0)!=(r|0););i[f+4>>2]=3,Ze(i[f+12>>2])}function Jh(){var f=0,e=0,r=0,A=0,k=0,n=0;s[99593]||(r=i[13846],A=B-16|0,B=A,f=$0(99240),i[f+40>>2]=99296,i[f+32>>2]=r,i[f>>2]=55716,l[f+52|0]=0,i[f+48>>2]=-1,k=A+12|0,e=i[f+4>>2],i[k>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),V[i[i[f>>2]+8>>2]](f,k),O0(k),B=A+16|0,i[24641]=55348,i[24641]=53680,i[24639]=53212,i[24641]=53232,i[24640]=0,Qe(i[13300]+98556|0,99240),k=i[12469],Q9(99304,k,99352),M3(98732,99304),n=i[12468],Q9(99360,n,99408),M3(98900,99360),M3(99068,i[(i[i[24725]-12>>2]+98900|0)+24>>2]),i[(i[i[24639]-12>>2]+98556|0)+72>>2]=98732,f=i[i[24725]-12>>2]+98900|0,i[f+4>>2]=i[f+4>>2]|8192,i[(i[i[24725]-12>>2]+98900|0)+72>>2]=98732,A=B-16|0,B=A,f=vt(99416),i[f+40>>2]=99472,i[f+32>>2]=r,i[f>>2]=55920,l[f+52|0]=0,i[f+48>>2]=-1,r=A+12|0,e=i[f+4>>2],i[r>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),V[i[i[f>>2]+8>>2]](f,r),O0(r),B=A+16|0,i[24663]=55348,i[24663]=54116,i[24661]=53460,i[24663]=53480,i[24662]=0,Qe(i[13362]+98644|0,99416),y9(99480,k,99528),x3(98816,99480),y9(99536,n,99584),x3(98984,99536),x3(99152,i[(i[i[24746]-12>>2]+98984|0)+24>>2]),i[(i[i[24661]-12>>2]+98644|0)+72>>2]=98816,f=i[i[24746]-12>>2]+98984|0,i[f+4>>2]=i[f+4>>2]|8192,i[(i[i[24746]-12>>2]+98984|0)+72>>2]=98816,l[99593]=1),f=B-16|0,B=f;i:{if(Zs(f+12|0,f+8|0)|0||(e=Z2((i[f+12>>2]<<2)+4|0),i[24899]=e,!e)||(e=Z2(i[f+8>>2]),e&&(i[i[24899]+(i[f+12>>2]<<2)>>2]=0,!(Bs(i[24899],e|0)|0))))break i;i[24899]=0}B=f+16|0,i[19564]=0,i[19565]=0,l[78275]=0,l[78264]=0,i[19570]=0,i[19571]=0,i[19569]=78280,i[19572]=78292,i[19573]=0,i[19574]=0,bA(),f=B-80|0,B=f,i[19578]=0,i[19577]=531,Nk(),i[19578]=i[23941],i[23941]=78308,i[19580]=0,i[19581]=0,i[19579]=78320,e=i[9245],i[f+48>>2]=i[9244],i[f+52>>2]=e,e=i[9243],i[f+40>>2]=i[9242],i[f+44>>2]=e,e=i[9241],i[f+32>>2]=i[9240],i[f+36>>2]=e,e=i[9239],i[f+24>>2]=i[9238],i[f+28>>2]=e,e=i[9237],i[f+16>>2]=i[9236],i[f+20>>2]=e,e=i[9235],i[f+8>>2]=i[9234],i[f+12>>2]=e,e=f+8|0,jr(78316,e,f+56|0),l0(e,36984,68),i[19582]=78332,i[19583]=0,i[19584]=0,jr(78328,e,f+76|0),i[19586]=0,i[19587]=0,i[19585]=78344,r=i[9276],i[f+56>>2]=i[9275],i[f+60>>2]=r,r=i[9274],i[f+48>>2]=i[9273],i[f+52>>2]=r,r=i[9272],i[f+40>>2]=i[9271],i[f+44>>2]=r,r=i[9270],i[f+32>>2]=i[9269],i[f+36>>2]=r,r=i[9268],i[f+24>>2]=i[9267],i[f+28>>2]=r,r=i[9266],i[f+16>>2]=i[9265],i[f+20>>2]=r,r=i[9264],i[f+8>>2]=i[9263],i[f+12>>2]=r,jr(78340,e,f- -64|0),B=f+80|0,i[19592]=0,i[19590]=0,i[19591]=0,i[23942]=970,i[23943]=0,an(),i[23943]=i[23941],i[23941]=95768,i[23985]=95820,i[23967]=42}function gh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;e=B-32|0,B=e;i:{r:{e:{if((U0(i[r>>2],3)|0)!=8||(U0(i[r>>2],4)|0)!=8)break e;if((U0(i[r>>2],5)|0)==8)break r}i[f>>2]=0,i[f+4>>2]=0;break i}t=H2(i[r>>2],6),u=s[k+8|0];r:{if(!t||(U0(i[r>>2],6)|0)==8)break r;i[f>>2]=0,i[f+4>>2]=0;break i}if(A=U(136),i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=72792,B0(A+20|0,0,104),k=i[A+4>>2],n=k+1|0,i[A+4>>2]=n,i[A+56>>2]=0,i[A+60>>2]=0,i[A+44>>2]=99,i[A+48>>2]=99,i[A+32>>2]=3795,o=A- -64|0,i[o>>2]=0,i[o+4>>2]=0,i[A+132>>2]=0,i[A+124>>2]=0,i[A+128>>2]=0,i[A+84>>2]=1,i[A+88>>2]=1,i[A+72>>2]=A+76,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,l[A+113|0]=0,l[A+114|0]=0,l[A+115|0]=0,l[A+116|0]=0,l[A+117|0]=0,l[A+118|0]=0,l[A+119|0]=0,l[A+120|0]=0,o=A+12|0,i[A+12>>2]=o,i[A+8>>2]=i[A+8>>2]+1,i[A+4>>2]=k,i[A+16>>2]=A,n||(V[i[i[A>>2]+8>>2]](A),g(A)),n=i[r>>2],h=i[n+24>>2],k=h,w=i[n+28>>2],n=w,_=t|u,i[o+36>>2]=_&1?13:12,i[o+32>>2]=1,i[o+28>>2]=n,i[o+24>>2]=k,J0(o,10,k,n,U0(i[r>>2],3))){k=0,i[e+28>>2]=0,i[e+24>>2]=0,i[e+20>>2]=0,i[e+16>>2]=0,i[e+12>>2]=0,v=v0(i[r>>2],3,e+28|0),Z=v0(i[r>>2],4,e+24|0),p=v0(i[r>>2],5,e+20|0),n=v0(o,10,e+12|0);r:{if(t){if(u=v0(i[r>>2],6,e+16|0),(w|0)<=0|(h|0)<=0)break r;for(_=i[e+16>>2];;){for(W=u+m(k,_)|0,r=0;t=r<<3,l[t+(n+m(i[e+12>>2],k)|0)|0]=0,l[(t+(n+m(i[e+12>>2],k)|0)|0)+1|0]=s[(r+v|0)+m(i[e+28>>2],k)|0],l[(t+(n+m(i[e+12>>2],k)|0)|0)+2|0]=0,l[(t+(n+m(i[e+12>>2],k)|0)|0)+3|0]=s[(r+Z|0)+m(i[e+24>>2],k)|0],l[(t+(n+m(i[e+12>>2],k)|0)|0)+4|0]=0,l[(t+(n+m(i[e+12>>2],k)|0)|0)+5|0]=s[(r+p|0)+m(i[e+20>>2],k)|0],l[(t+(n+m(i[e+12>>2],k)|0)|0)+6|0]=0,l[(t+(n+m(i[e+12>>2],k)|0)|0)+7|0]=s[r+W|0],r=r+1|0,(h|0)!=(r|0););if(k=k+1|0,(w|0)==(k|0))break}break r}if((w|0)<=0|(h|0)<=0)break r;for(u=u&1?8:6;;){for(r=0;t=m(r,u),l[t+(n+m(i[e+12>>2],k)|0)|0]=0,l[(t+(n+m(i[e+12>>2],k)|0)|0)+1|0]=s[(r+v|0)+m(i[e+28>>2],k)|0],l[(t+(n+m(i[e+12>>2],k)|0)|0)+2|0]=0,l[(t+(n+m(i[e+12>>2],k)|0)|0)+3|0]=s[(r+Z|0)+m(i[e+24>>2],k)|0],l[(t+(n+m(i[e+12>>2],k)|0)|0)+4|0]=0,l[(t+(n+m(i[e+12>>2],k)|0)|0)+5|0]=s[(r+p|0)+m(i[e+20>>2],k)|0],_&1&&(l[(t+(n+m(i[e+12>>2],k)|0)|0)+6|0]=0,l[(t+(n+m(i[e+12>>2],k)|0)|0)+7|0]=255),r=r+1|0,(h|0)!=(r|0););if(k=k+1|0,(w|0)==(k|0))break}}i[f+4>>2]=A,i[f>>2]=o;break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[A+4>>2],i[A+4>>2]=f-1,f)break i;V[i[i[A>>2]+8>>2]](A),g(A)}B=e+32|0}function Nh(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;t=B-32|0,B=t,u=t+12|0,v=i[e>>2],Z=r,r=0,n=B-16|0,B=n;i:{if(k>>>0<5)break i;for(h=k-4|0;;){if(o=r+A|0,w=s[o+1|0]<<8,_=s[o+2|0]<<16|s[o+3|0]<<24,(s[o|0]|w|_)==704662861|(_|(w|s[o|0]))==2771273)break i;if(r=r+1|0,(h|0)==(r|0))break}r=h}i:{if(r>>>0>=k>>>0){if(r=U(64),i[n+4>>2]=r,i[n+8>>2]=56,i[n+12>>2]=-2147483584,A=s[18084]|s[18085]<<8|(s[18086]<<16|s[18087]<<24),k=s[18080]|s[18081]<<8|(s[18082]<<16|s[18083]<<24),l[r|0]=k,l[r+1|0]=k>>>8,l[r+2|0]=k>>>16,l[r+3|0]=k>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+56|0]=0,A=s[18132]|s[18133]<<8|(s[18134]<<16|s[18135]<<24),k=s[18128]|s[18129]<<8|(s[18130]<<16|s[18131]<<24),l[r+48|0]=k,l[r+49|0]=k>>>8,l[r+50|0]=k>>>16,l[r+51|0]=k>>>24,l[r+52|0]=A,l[r+53|0]=A>>>8,l[r+54|0]=A>>>16,l[r+55|0]=A>>>24,A=s[18124]|s[18125]<<8|(s[18126]<<16|s[18127]<<24),k=s[18120]|s[18121]<<8|(s[18122]<<16|s[18123]<<24),l[r+40|0]=k,l[r+41|0]=k>>>8,l[r+42|0]=k>>>16,l[r+43|0]=k>>>24,l[r+44|0]=A,l[r+45|0]=A>>>8,l[r+46|0]=A>>>16,l[r+47|0]=A>>>24,A=s[18116]|s[18117]<<8|(s[18118]<<16|s[18119]<<24),k=s[18112]|s[18113]<<8|(s[18114]<<16|s[18115]<<24),l[r+32|0]=k,l[r+33|0]=k>>>8,l[r+34|0]=k>>>16,l[r+35|0]=k>>>24,l[r+36|0]=A,l[r+37|0]=A>>>8,l[r+38|0]=A>>>16,l[r+39|0]=A>>>24,A=s[18108]|s[18109]<<8|(s[18110]<<16|s[18111]<<24),k=s[18104]|s[18105]<<8|(s[18106]<<16|s[18107]<<24),l[r+24|0]=k,l[r+25|0]=k>>>8,l[r+26|0]=k>>>16,l[r+27|0]=k>>>24,l[r+28|0]=A,l[r+29|0]=A>>>8,l[r+30|0]=A>>>16,l[r+31|0]=A>>>24,A=s[18100]|s[18101]<<8|(s[18102]<<16|s[18103]<<24),k=s[18096]|s[18097]<<8|(s[18098]<<16|s[18099]<<24),l[r+16|0]=k,l[r+17|0]=k>>>8,l[r+18|0]=k>>>16,l[r+19|0]=k>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[18092]|s[18093]<<8|(s[18094]<<16|s[18095]<<24),k=s[18088]|s[18089]<<8|(s[18090]<<16|s[18091]<<24),l[r+8|0]=k,l[r+9|0]=k>>>8,l[r+10|0]=k>>>16,l[r+11|0]=k>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,r0(u,5,2006,n+4|0),l[n+15|0]>=0)break i;G(i[n+4>>2]);break i}if(i[n+12>>2]=0,i[n+4>>2]=0,i[n+8>>2]=0,L2(n+4|0,k+4|0),l[i[n+4>>2]]=r>>>24,l[i[n+4>>2]+1|0]=r>>>16,l[i[n+4>>2]+2|0]=r>>>8,l[i[n+4>>2]+3|0]=r,r=i[n+4>>2],l0(r+4|0,A,k),u6(u,v,Z,r,i[n+8>>2]-r|0,8780,0,0,0),r=i[n+4>>2],!r)break i;i[n+8>>2]=r,G(r)}B=n+16|0;i:{if(i[t+12>>2]!=i[19564]){P0(f,u,i[e>>2]);break i}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}l[t+31|0]<0&&G(i[t+20>>2]),B=t+32|0}function Rh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;A=B-16|0,B=A,e=i[r>>2],v=i[e+28>>2],_=i[e+24>>2];i:{if((U0(e,0)|0)!=8){i[f>>2]=0,i[f+4>>2]=0;break i}e=U(136),i[e+4>>2]=0,i[e+8>>2]=0,i[e>>2]=72792,B0(e+20|0,0,104),n=i[e+4>>2],t=n+1|0,i[e+4>>2]=t,i[e+56>>2]=0,i[e+60>>2]=0,i[e+44>>2]=99,i[e+48>>2]=99,i[e+32>>2]=3795,h=e- -64|0,i[h>>2]=0,i[h+4>>2]=0,i[e+132>>2]=0,i[e+124>>2]=0,i[e+128>>2]=0,i[e+84>>2]=1,i[e+88>>2]=1,i[e+72>>2]=e+76,i[e+92>>2]=0,i[e+96>>2]=0,i[e+100>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e+112>>2]=0,l[e+113|0]=0,l[e+114|0]=0,l[e+115|0]=0,l[e+116|0]=0,l[e+117|0]=0,l[e+118|0]=0,l[e+119|0]=0,l[e+120|0]=0,h=e+12|0,i[e+12>>2]=h,i[e+8>>2]=i[e+8>>2]+1,i[e+4>>2]=n,i[e+16>>2]=e,t||(V[i[i[e>>2]+8>>2]](e),g(e)),n=H2(i[r>>2],6),i[h+36>>2]=s[k+8|0]?11:10,i[h+32>>2]=1,i[h+28>>2]=v,i[h+24>>2]=_;r:{e:{if(J0(h,10,_,v,8)){if(i[A+12>>2]=0,i[A+4>>2]=0,Z=v0(i[r>>2],0,A+12|0),n&&(p=v0(i[r>>2],6,A+8|0)),t=v0(h,10,A+4|0),(v|0)<=0)break r;if(!n)break e;for(r=0,u=(_|0)<=0;;){A:{if(s[k+8|0]){if(n=0,u)break A;for(;o=n<<2,w=s[(n+Z|0)+m(i[A+12>>2],r)|0],l[o+(t+m(i[A+4>>2],r)|0)|0]=w,l[(o+(t+m(i[A+4>>2],r)|0)|0)+1|0]=w,l[(o+(t+m(i[A+4>>2],r)|0)|0)+2|0]=w,l[(o+(t+m(i[A+4>>2],r)|0)|0)+3|0]=s[(m(i[A+8>>2],r)+n|0)+p|0],n=n+1|0,(_|0)!=(n|0););break A}if(n=0,u)break A;for(;o=m(n,3),w=s[(n+Z|0)+m(i[A+12>>2],r)|0],l[o+(t+m(i[A+4>>2],r)|0)|0]=w,l[(o+(t+m(i[A+4>>2],r)|0)|0)+1|0]=w,l[(o+(t+m(i[A+4>>2],r)|0)|0)+2|0]=w,n=n+1|0,(_|0)!=(n|0););}if(r=r+1|0,(v|0)==(r|0))break}break r}if(i[f>>2]=0,i[f+4>>2]=0,f=i[e+4>>2],i[e+4>>2]=f-1,f)break i;V[i[i[e>>2]+8>>2]](e),g(e);break i}if(w=(_|0)<=0,!w){for(r=0;;){n=0;e:{if(s[k+8|0]){for(;;)if(o=n<<2,u=s[(n+Z|0)+m(i[A+12>>2],r)|0],l[o+(t+m(i[A+4>>2],r)|0)|0]=u,l[(o+(t+m(i[A+4>>2],r)|0)|0)+1|0]=u,l[(o+(t+m(i[A+4>>2],r)|0)|0)+2|0]=u,l[(o+(t+m(i[A+4>>2],r)|0)|0)+3|0]=255,n=n+1|0,(_|0)==(n|0))break e}if(w)break e;for(;o=m(n,3),u=s[(n+Z|0)+m(i[A+12>>2],r)|0],l[o+(t+m(i[A+4>>2],r)|0)|0]=u,l[(o+(t+m(i[A+4>>2],r)|0)|0)+1|0]=u,l[(o+(t+m(i[A+4>>2],r)|0)|0)+2|0]=u,n=n+1|0,(_|0)!=(n|0););}if(r=r+1|0,(v|0)==(r|0))break}break r}if(s[k+8|0])break r;for(o=t+2|0,u=t+1|0,r=0;s[k+8|0]|(_|0)<=0||(n=s[m(i[A+12>>2],r)+Z|0],l[t+m(i[A+4>>2],r)|0]=n,l[u+m(i[A+4>>2],r)|0]=n,l[o+m(i[A+4>>2],r)|0]=n),r=r+1|0,(v|0)!=(r|0););}i[f+4>>2]=e,i[f>>2]=h}B=A+16|0}function Dh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=Y(0),y=Y(0),E=Y(0),J=Y(0),R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0;A=B+-64|0,B=A;i:{r:{e:{if((U0(i[r>>2],0)|0)!=8||(U0(i[r>>2],1)|0)!=8)break e;if((U0(i[r>>2],2)|0)==8)break r}i[f>>2]=0,i[f+4>>2]=0;break i}if(e=U(136),i[e+4>>2]=0,i[e+8>>2]=0,i[e>>2]=72792,B0(e+20|0,0,104),k=i[e+4>>2],n=k+1|0,i[e+4>>2]=n,i[e+56>>2]=0,i[e+60>>2]=0,i[e+44>>2]=99,i[e+48>>2]=99,i[e+32>>2]=3795,t=e- -64|0,i[t>>2]=0,i[t+4>>2]=0,i[e+132>>2]=0,i[e+124>>2]=0,i[e+128>>2]=0,i[e+84>>2]=1,i[e+88>>2]=1,i[e+72>>2]=e+76,i[e+92>>2]=0,i[e+96>>2]=0,i[e+100>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e+112>>2]=0,l[e+113|0]=0,l[e+114|0]=0,l[e+115|0]=0,l[e+116|0]=0,l[e+117|0]=0,l[e+118|0]=0,l[e+119|0]=0,l[e+120|0]=0,t=e+12|0,i[e+12>>2]=t,i[e+8>>2]=i[e+8>>2]+1,i[e+4>>2]=k,i[e+16>>2]=e,n||(V[i[i[e>>2]+8>>2]](e),g(e)),n=i[r>>2],v=i[n+24>>2],k=v,Z=i[n+28>>2],n=Z,i[t+36>>2]=11,i[t+32>>2]=1,i[t+28>>2]=n,i[t+24>>2]=k,J0(t,10,k,n,8)){if(n=i[r>>2],k=i[n+44>>2],n=i[n+48>>2],n&&(i[n+4>>2]=i[n+4>>2]+1),i[A+52>>2]=-1086926434,i[A+56>>2]=1071829221,i[A+44>>2]=1068725436,i[A+48>>2]=-1095748968,l[A+40|0]=1,k&&(V6(A+20|0,Q[k+8>>1],Q[k+4>>1]),i[A+56>>2]=i[A+36>>2],k=i[A+32>>2],i[A+48>>2]=i[A+28>>2],i[A+52>>2]=k,k=i[A+24>>2],i[A+40>>2]=i[A+20>>2],i[A+44>>2]=k),I=Z0[A+56>>2],y=Z0[A+48>>2],E=Z0[A+52>>2],J=Z0[A+44>>2],p=H2(i[r>>2],6),k=0,i[A+20>>2]=0,i[A+16>>2]=0,i[A+12>>2]=0,i[A+8>>2]=0,i[A+4>>2]=0,R=v0(i[r>>2],0,A+20|0),D=v0(i[r>>2],1,A+16|0),h=i[r>>2],z=z8(Y(I*Y(256))),H=z8(Y(y*Y(256))),a=z8(Y(E*Y(256))),S=z8(Y(J*Y(256))),q=v0(h,2,A+12|0),p&&(d=v0(i[r>>2],6,A+8|0)),h=v0(t,10,A+4|0),!((Z|0)<=0|(v|0)<=0))for(;;){for(W=k>>>1|0,r=0;o=r>>>1|0,w=s[o+(m(i[A+16>>2],W)+D|0)|0],_=r<<2,C=s[o+(m(i[A+12>>2],W)+q|0)|0]-128|0,o=s[(m(i[A+20>>2],k)+R|0)+r|0],u=(m(C,S)+128>>8)+o|0,l[_+(h+m(i[A+4>>2],k)|0)|0]=(u|0)>=0?u>>>0>=255?255:u:0,w=w-128|0,u=o+((m(w,H)+m(a,C)|0)+128>>8)|0,l[((h+m(i[A+4>>2],k)|0)+_|0)+1|0]=(u|0)>=0?u>>>0>=255?255:u:0,o=o+(m(w,z)+128>>8)|0,l[((h+m(i[A+4>>2],k)|0)+_|0)+2|0]=(o|0)>=0?o>>>0>=255?255:o:0,l[((h+m(i[A+4>>2],k)|0)+_|0)+3|0]=p?s[(m(i[A+8>>2],k)+r|0)+d|0]:255,r=r+1|0,(v|0)!=(r|0););if(k=k+1|0,(Z|0)==(k|0))break}if(i[f+4>>2]=e,i[f>>2]=t,!n||(f=i[n+4>>2],i[n+4>>2]=f-1,f))break i;V[i[i[n>>2]+8>>2]](n),g(n);break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[e+4>>2],i[e+4>>2]=f-1,f)break i;V[i[i[e>>2]+8>>2]](e),g(e)}B=A- -64|0}function Uh(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0;k=B-16|0,B=k,W=e,C=D0(r),i[W+48>>2]=C,W=e,C=D0(r),i[W+52>>2]=C,n=i[e+12>>2],A=i[e+8>>2],h=i[e+32>>2];i:{if(!n&A>>>0<=h+8>>>0){if(e=U(40),i[k+4>>2]=e,i[k+8>>2]=38,i[k+12>>2]=-2147483608,r=s[18216]|s[18217]<<8|(s[18218]<<16|s[18219]<<24),A=s[18212]|s[18213]<<8|(s[18214]<<16|s[18215]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+38|0]=0,r=s[18246]|s[18247]<<8|(s[18248]<<16|s[18249]<<24),A=s[18242]|s[18243]<<8|(s[18244]<<16|s[18245]<<24),l[e+30|0]=A,l[e+31|0]=A>>>8,l[e+32|0]=A>>>16,l[e+33|0]=A>>>24,l[e+34|0]=r,l[e+35|0]=r>>>8,l[e+36|0]=r>>>16,l[e+37|0]=r>>>24,r=s[18240]|s[18241]<<8|(s[18242]<<16|s[18243]<<24),A=s[18236]|s[18237]<<8|(s[18238]<<16|s[18239]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[18232]|s[18233]<<8|(s[18234]<<16|s[18235]<<24),A=s[18228]|s[18229]<<8|(s[18230]<<16|s[18231]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[18224]|s[18225]<<8|(s[18226]<<16|s[18227]<<24),A=s[18220]|s[18221]<<8|(s[18222]<<16|s[18223]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,101,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}o=A-h|0,v=o-8|0;r:{if(A=(n-(A>>>0>>0)|0)-(o>>>0<8)|0,!A&v>>>0<4)break r;Z=(A&3)<<30|v>>>2,v=A>>>2|0,h=0,A=0;e:{for(;;){if(s[r+20|0]==1)break r;w=D0(r);A:{n=i[e+60>>2],t=i[e+64>>2];f:{if(n>>>0>>0){i[n>>2]=w,w=n+4|0;break f}if(_=i[e+56>>2],u=n-_>>2,o=u+1|0,o>>>0>=1073741824)break A;if(p=u<<2,t=t-_|0,u=t>>1,u=t>>>0>=2147483644?1073741823:u>>>0>o>>>0?u:o,u){if(u>>>0>=1073741824)break e;o=U(u<<2)}else o=0;if(t=p+o|0,i[t>>2]=w,w=t+4|0,(n|0)!=(_|0))for(;t=t-4|0,n=n-4|0,i[t>>2]=i[n>>2],(n|0)!=(_|0););if(i[e+64>>2]=o+(u<<2),i[e+60>>2]=w,i[e+56>>2]=t,!_)break f;G(_)}if(i[e+60>>2]=w,h=h+1|0,A=h?A:A+1|0,(h|0)!=(Z|0)|(A|0)!=(v|0))continue;break r}break}y0(),P()}_2(),P()}if(s[r+20|0]==1){if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,100,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+16|0}function Cr(f,e,r){var A=0,k=0;A=B-656|0,B=A,e=e?7776:5478,s[f|0]&&(i[A+644>>2]=l[f+1|0],i[A+640>>2]=e,c(r,26967,A+640|0),i[A+628>>2]=l[f+2|0],i[A+624>>2]=e,c(r,28201,A+624|0),k=i[f+4>>2]-1|0,k>>>0<=3?k=i[(k<<2)+46120>>2]:k=18285,i[A+612>>2]=k,i[A+608>>2]=e,c(r,21931,A+608|0),i[A+592>>2]=e,c(r,19849,A+592|0),i[A+576>>2]=l[f+8|0],c(r,13655,A+576|0),c(r,18139,0),i[A+560>>2]=l[f+9|0],c(r,13655,A+560|0),c(r,18139,0),i[A+544>>2]=l[f+10|0],c(r,13655,A+544|0),c(r,18139,0),i[A+528>>2]=l[f+11|0],c(r,13655,A+528|0),c(r,18139,0),i[A+512>>2]=l[f+12|0],c(r,13655,A+512|0),c(r,18139,0),i[A+496>>2]=l[f+13|0],c(r,13655,A+496|0),c(r,18139,0),i[A+480>>2]=l[f+14|0],c(r,13655,A+480|0),c(r,18139,0),i[A+464>>2]=l[f+15|0],c(r,13655,A+464|0),c(r,18139,0),i[A+448>>2]=l[f+16|0],c(r,13655,A+448|0),c(r,18139,0),i[A+432>>2]=l[f+17|0],c(r,13655,A+432|0),c(r,18139,0),i[A+416>>2]=l[f+18|0],c(r,13655,A+416|0),c(r,18139,0),i[A+400>>2]=l[f+19|0],c(r,13655,A+400|0),c(r,18139,0),i[A+384>>2]=l[f+20|0],c(r,13655,A+384|0),c(r,18139,0),i[A+368>>2]=l[f+21|0],c(r,13655,A+368|0),c(r,18139,0),i[A+352>>2]=l[f+22|0],c(r,13655,A+352|0),c(r,18139,0),i[A+336>>2]=l[f+23|0],c(r,13655,A+336|0),c(r,18139,0),i[A+320>>2]=l[f+24|0],c(r,13655,A+320|0),c(r,18139,0),i[A+304>>2]=l[f+25|0],c(r,13655,A+304|0),c(r,18139,0),i[A+288>>2]=l[f+26|0],c(r,13655,A+288|0),c(r,18139,0),i[A+272>>2]=l[f+27|0],c(r,13655,A+272|0),c(r,18139,0),i[A+256>>2]=l[f+28|0],c(r,13655,A+256|0),c(r,18139,0),i[A+240>>2]=l[f+29|0],c(r,13655,A+240|0),c(r,18139,0),i[A+224>>2]=l[f+30|0],c(r,13655,A+224|0),c(r,18139,0),i[A+208>>2]=l[f+31|0],c(r,13655,A+208|0),c(r,18139,0),i[A+192>>2]=l[f+32|0],c(r,13655,A+192|0),c(r,18139,0),i[A+176>>2]=l[f+33|0],c(r,13655,A+176|0),c(r,18139,0),i[A+160>>2]=l[f+34|0],c(r,13655,A+160|0),c(r,18139,0),i[A+144>>2]=l[f+35|0],c(r,13655,A+144|0),c(r,18139,0),i[A+128>>2]=l[f+36|0],c(r,13655,A+128|0),c(r,18139,0),i[A+112>>2]=l[f+37|0],c(r,13655,A+112|0),c(r,18139,0),i[A+96>>2]=l[f+38|0],c(r,13655,A+96|0),c(r,18139,0),i[A+80>>2]=l[f+39|0],c(r,13655,A+80|0),c(r,31103,0),i[A+68>>2]=l[f+40|0],i[A+64>>2]=e,c(r,24570,A- -64|0),i[A+52>>2]=l[f+41|0],i[A+48>>2]=e,c(r,24607,A+48|0),i[A+36>>2]=l[f+42|0],i[A+32>>2]=e,c(r,23734,A+32|0),i[A+20>>2]=l[f+43|0],i[A+16>>2]=e,c(r,23694,A+16|0)),s[f+44|0]&&(f=i[f+48>>2],i[A+4>>2]=f,i[A>>2]=e,i0[A+8>>3]=Y(Y(f|0)/Y(30)),c(r,31206,A)),B=A+656|0}function xk(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0;k=B-160|0,B=k,A=i[r>>2],n=V[i[i[A>>2]+8>>2]](A)|0,t=i[r>>2],A=w0,n=n+8|0,A=n>>>0<8?A+1|0:A;i:{if(V[i[i[t>>2]+12>>2]](t,n,A)|0){if(l[k+16|0]=0,l[k+27|0]=0,r0(f,2,100,k+16|0),l[k+27|0]>=0)break i;G(i[k+16>>2]);break i}if(u=e,h=D0(r),i[u+8>>2]=h,i[e+12>>2]=0,A=D0(r),i[e+32>>2]=8,i[e+16>>2]=A,!i[e+12>>2]&i[e+8>>2]==1){if(A=i[r>>2],n=V[i[i[A>>2]+8>>2]](A)|0,t=i[r>>2],A=w0,n=n+8|0,A=n>>>0<8?A+1|0:A,V[i[i[t>>2]+12>>2]](t,n,A)|0){if(l[k+16|0]=0,l[k+27|0]=0,r0(f,2,100,k+16|0),l[k+27|0]>=0)break i;G(i[k+16>>2]);break i}if(A=D0(r),u=e,h=D0(r),i[u+8>>2]=h,i[e+12>>2]=A,i[e+32>>2]=i[e+32>>2]+8,i[k+24>>2]=54496,i[k+80>>2]=54516,A=i[13633],i[k+16>>2]=A,n=i[A-12>>2],A=k+16|0,i[n+A>>2]=i[13634],i[k+20>>2]=0,n=A+i[i[k+16>>2]-12>>2]|0,t=k+28|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,n=i[13635],i[k+24>>2]=n,o=k+24|0,i[o+i[n-12>>2]>>2]=i[13636],n=i[13632],i[k+16>>2]=n,i[A+i[n-12>>2]>>2]=i[13637],i[k+80>>2]=54516,i[k+16>>2]=54476,i[k+24>>2]=54496,A=$0(t),i[A>>2]=53552,i[k+68>>2]=0,i[k+72>>2]=0,i[k+60>>2]=0,i[k+64>>2]=0,i[k+76>>2]=24,x(n4(x(o,19110,9),i[e+8>>2],i[e+12>>2]),17482,24),n=k+80|0,t=i[e+12>>2],(t|0)==268435456|t>>>0>268435456){e=k+4|0,i2(e,A),r0(f,6,1e3,e),l[k+15|0]<0&&G(i[k+4>>2]),f=i[13631],i[k+16>>2]=f,i[i[f-12>>2]+(k+16|0)>>2]=i[13639],i[k+24>>2]=i[13640],i[A>>2]=53552,l[k+71|0]<0&&G(i[k+60>>2]),K0(A),T0(n);break i}t=i[13631],i[k+16>>2]=t,i[i[t-12>>2]+(k+16|0)>>2]=i[13639],i[k+24>>2]=i[13640],i[A>>2]=53552,l[k+71|0]<0&&G(i[k+60>>2]),K0(A),T0(n),A=i[e+16>>2]}if((A|0)==1970628964){if(A=i[r>>2],n=V[i[i[A>>2]+8>>2]](A)|0,t=i[r>>2],A=w0,n=n+16|0,A=n>>>0<16?A+1|0:A,V[i[i[t>>2]+12>>2]](t,n,A)|0){if(l[k+16|0]=0,l[k+27|0]=0,r0(f,2,100,k+16|0),l[k+27|0]>=0)break i;G(i[k+16>>2]);break i}r:{if(!T4(r,16))break r;t=e+20|0,n=i[e+20>>2],A=i[e+24>>2]-n|0;e:{if(A>>>0<=15){L2(t,16-A|0);break e}if((A|0)==16)break e;i[e+24>>2]=n+16}if(n=i[r>>2],A=i[r+4>>2],A){if(i[A+4>>2]=i[A+4>>2]+1,V[i[i[n>>2]+16>>2]](n,i[t>>2],16)|0,n=i[A+4>>2],i[A+4>>2]=n-1,n)break r;V[i[i[A>>2]+8>>2]](A),g(A);break r}V[i[i[n>>2]+16>>2]](n,i[t>>2],16)|0}i[e+32>>2]=i[e+32>>2]+16}if(s[r+20|0]==1){if(l[k+16|0]=0,l[k+27|0]=0,r0(f,2,100,k+16|0),l[k+27|0]>=0)break i;G(i[k+16>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+160|0}function Mh(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0;u=B-16|0,B=u,o=i[k>>2],n=o+i[r>>2]|0;i:{if(i[r+4>>2]-n>>>0<(A|0)/8<<2>>>0){if(e=U(56),i[u+4>>2]=e,i[u+8>>2]=48,i[u+12>>2]=-2147483592,r=s[6923]|s[6924]<<8|(s[6925]<<16|s[6926]<<24),A=s[6919]|s[6920]<<8|(s[6921]<<16|s[6922]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+48|0]=0,r=s[6963]|s[6964]<<8|(s[6965]<<16|s[6966]<<24),A=s[6959]|s[6960]<<8|(s[6961]<<16|s[6962]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[6955]|s[6956]<<8|(s[6957]<<16|s[6958]<<24),A=s[6951]|s[6952]<<8|(s[6953]<<16|s[6954]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[6947]|s[6948]<<8|(s[6949]<<16|s[6950]<<24),A=s[6943]|s[6944]<<8|(s[6945]<<16|s[6946]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[6939]|s[6940]<<8|(s[6941]<<16|s[6942]<<24),A=s[6935]|s[6936]<<8|(s[6937]<<16|s[6938]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[6931]|s[6932]<<8|(s[6933]<<16|s[6934]<<24),A=s[6927]|s[6928]<<8|(s[6929]<<16|s[6930]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,136,u+4|0),l[u+15|0]>=0)break i;G(i[u+4>>2]);break i}t=s[n|0],h=s[n+1|0];r:{if((A|0)==32){n=s[n+3|0]|(h<<16|t<<24|s[n+2|0]<<8),t=o+4|0;break r}n=(h<<16|t<<24)>>16,t=o+2|0}i[k>>2]=t,i[e+4>>2]=n,o=i[k>>2],n=o+i[r>>2]|0,t=s[n|0],h=s[n+1|0];r:{if((A|0)==32){n=s[n+3|0]|(h<<16|t<<24|s[n+2|0]<<8),t=o+4|0;break r}n=(h<<16|t<<24)>>16,t=o+2|0}i[k>>2]=t,i[e+8>>2]=n,t=i[r>>2],h=i[k>>2],r=t+h|0,o=s[r|0],n=s[r+1|0];r:{if((A|0)==32){r=s[r+3|0]|(n<<16|o<<24|s[r+2|0]<<8),n=4;break r}r=n|o<<8,n=2}i[k>>2]=n+h,i[e+12>>2]=r,r=t,t=i[k>>2],r=r+t|0,o=s[r|0],n=s[r+1|0];r:{if((A|0)==32){A=s[r+3|0]|(n<<16|o<<24|s[r+2|0]<<8),r=4;break r}A=n|o<<8,r=2}if(i[k>>2]=r+t,i[e+16>>2]=A,e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=u+16|0}function xh(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0;u=B-16|0,B=u,o=i[k>>2],n=o+i[r>>2]|0;i:{if(i[r+4>>2]-n>>>0<(A|0)/8<<2>>>0){if(e=U(48),i[u+4>>2]=e,i[u+8>>2]=46,i[u+12>>2]=-2147483600,r=s[6876]|s[6877]<<8|(s[6878]<<16|s[6879]<<24),A=s[6872]|s[6873]<<8|(s[6874]<<16|s[6875]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+46|0]=0,r=s[6914]|s[6915]<<8|(s[6916]<<16|s[6917]<<24),A=s[6910]|s[6911]<<8|(s[6912]<<16|s[6913]<<24),l[e+38|0]=A,l[e+39|0]=A>>>8,l[e+40|0]=A>>>16,l[e+41|0]=A>>>24,l[e+42|0]=r,l[e+43|0]=r>>>8,l[e+44|0]=r>>>16,l[e+45|0]=r>>>24,r=s[6908]|s[6909]<<8|(s[6910]<<16|s[6911]<<24),A=s[6904]|s[6905]<<8|(s[6906]<<16|s[6907]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[6900]|s[6901]<<8|(s[6902]<<16|s[6903]<<24),A=s[6896]|s[6897]<<8|(s[6898]<<16|s[6899]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[6892]|s[6893]<<8|(s[6894]<<16|s[6895]<<24),A=s[6888]|s[6889]<<8|(s[6890]<<16|s[6891]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[6884]|s[6885]<<8|(s[6886]<<16|s[6887]<<24),A=s[6880]|s[6881]<<8|(s[6882]<<16|s[6883]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,136,u+4|0),l[u+15|0]>=0)break i;G(i[u+4>>2]);break i}t=s[n|0],h=s[n+1|0];r:{if((A|0)==32){n=s[n+3|0]|(h<<16|t<<24|s[n+2|0]<<8),t=o+4|0;break r}n=(h<<16|t<<24)>>16,t=o+2|0}i[k>>2]=t,i[e+4>>2]=n,o=i[k>>2],n=o+i[r>>2]|0,t=s[n|0],h=s[n+1|0];r:{if((A|0)==32){n=s[n+3|0]|(h<<16|t<<24|s[n+2|0]<<8),t=o+4|0;break r}n=(h<<16|t<<24)>>16,t=o+2|0}i[k>>2]=t,i[e+8>>2]=n,t=i[r>>2],h=i[k>>2],r=t+h|0,o=s[r|0],n=s[r+1|0];r:{if((A|0)==32){r=s[r+3|0]|(n<<16|o<<24|s[r+2|0]<<8),n=4;break r}r=n|o<<8,n=2}i[k>>2]=n+h,i[e+12>>2]=r,r=t,t=i[k>>2],r=r+t|0,o=s[r|0],n=s[r+1|0];r:{if((A|0)==32){A=s[r+3|0]|(n<<16|o<<24|s[r+2|0]<<8),r=4;break r}A=n|o<<8,r=2}if(i[k>>2]=r+t,i[e+16>>2]=A,e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=u+16|0}function zk(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;k=i[f+18588>>2],_=i[k+132>>2],A=-1<>2],t=A&r,v=i[f+18592>>2],h=i[k+124>>2],u=e&A,(u|0)==i[f+18524>>2]&(t|0)==i[f+18528>>2]||(i[f+18528>>2]=t,i[f+18524>>2]=u,i[f+18532>>2]=i[f+18520>>2]),A=i[h+16876>>2],n=-1<>2],w=i[h+16892>>2],k=(o|0)/(w|0)|0,w=o-m(k,w)|0,o=i[h+16884>>2],o=(u|0)==(m(w,o)|0)&(t|0)==(m(k,o)|0),k=0;i:{if(!s[_+46|0]||(k=0,n&(t|u)))break i;k=e9(_,u>>A,t>>A)}i:{if(!(!s[_+45|0]|(u|n&t))||k|o){k=i[f+18592>>2]+800|0;break i}k=f+18532|0}A=i[k>>2];i:{r:{o=u-1|0;e:{if(!p7(i[f+18588>>2],u,t,o,t)){n=i[f+18588>>2],k=A;break e}if(n=i[f+18588>>2],w=i[h+16936>>2],k=A,i[f+4>>2]!=i[(i[_+8496>>2]+(o>>w<<2)|0)+(m(i[h+16924>>2],t>>w)<<2)>>2]>>(i[h+16876>>2]-w<<1))break e;if(k=o,o=i[n+168>>2],k=k>>o,(k|0)<0||(w=i[n+172>>2],(w|0)<=(k|0)))break r;if(o=t>>o,(o|0)<0|(o|0)>=i[n+176>>2])break i;k=l[((i[n+160>>2]+m(k,3)|0)+m(m(o,w),3)|0)+2|0]}o=n,n=t-1|0;e:{if(!p7(o,u,t,u,n)||(t=i[h+16936>>2],i[f+4>>2]!=i[(i[_+8496>>2]+(u>>t<<2)|0)+(m(i[h+16924>>2],n>>t)<<2)>>2]>>(i[h+16876>>2]-t<<1)))break e;if(o=u,A=i[f+18588>>2],u=i[A+168>>2],t=o>>u,(t|0)<0||(o=i[A+172>>2],(o|0)<=(t|0)))break r;if(n=n>>u,(n|0)<0|(n|0)>=i[A+176>>2])break i;A=l[((i[A+160>>2]+m(t,3)|0)+m(m(n,o),3)|0)+2|0]}k=i[f+18504>>2]+((A+k|0)+1>>1)|0,A=i[h+16836>>2],n=((k+(A<<1)|0)+52|0)%(A+52|0)|0,i[f+18536>>2]=(n|0)>0?n:0,u=i[h+16844>>2],k=0-u|0,t=n-A|0,A=i[f+18516>>2]+(i[v+756>>2]+(t+i[_+36>>2]|0)|0)|0,n=(A|0)<(k|0)?k:(A|0)>=57?57:A,A=i[f+18512>>2]+(i[v+752>>2]+(t+i[_+32>>2]|0)|0)|0,A=(A|0)<(k|0)?k:(A|0)>=57?57:A;e:{if(i[h+16848>>2]!=1)break e;A:{if((A|0)<30)break A;if(A>>>0>=43){A=A-6|0;break A}A=i[(A<<2)+45912>>2]}if((n|0)<30)break e;if(n>>>0>=43){n=n-6|0;break e}n=i[(n<<2)+45912>>2]}if(k=n+u|0,i[f+18544>>2]=(k|0)>0?k:0,k=A+u|0,i[f+18540>>2]=(k|0)>0?k:0,A=i[f+18588>>2],n=i[A+168>>2],k=e>>n,(k|0)<0||(h=i[A+172>>2],(h|0)<=(k|0)))break r;if(e=r>>n,(e|0)<0|i[A+176>>2]<=(e|0))break i;if(A=i[A+160>>2],r=(A+m(k,3)|0)+m(m(e,h),3)|0,r=(s[r|0]|s[r+1|0]<<8)&7,r=(r>>>0<=3?3:r)-n|0,(r|0)!=31)for(r=1<(r|0););if(e=e+1|0,!((n|0)>(e|0)))break}i[f+18520>>2]=t;return}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function zh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=Y(0),I=Y(0),y=Y(0),E=Y(0),J=0,R=0,D=0,z=0,H=0,a=0,S=0;A=B+-64|0,B=A;i:{r:{e:{if((U0(i[r>>2],0)|0)!=8||(U0(i[r>>2],1)|0)!=8)break e;if((U0(i[r>>2],2)|0)==8)break r}i[f>>2]=0,i[f+4>>2]=0;break i}if(e=U(136),i[e+4>>2]=0,i[e+8>>2]=0,i[e>>2]=72792,B0(e+20|0,0,104),k=i[e+4>>2],n=k+1|0,i[e+4>>2]=n,i[e+56>>2]=0,i[e+60>>2]=0,i[e+44>>2]=99,i[e+48>>2]=99,i[e+32>>2]=3795,o=e- -64|0,i[o>>2]=0,i[o+4>>2]=0,i[e+132>>2]=0,i[e+124>>2]=0,i[e+128>>2]=0,i[e+84>>2]=1,i[e+88>>2]=1,i[e+72>>2]=e+76,i[e+92>>2]=0,i[e+96>>2]=0,i[e+100>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e+112>>2]=0,l[e+113|0]=0,l[e+114|0]=0,l[e+115|0]=0,l[e+116|0]=0,l[e+117|0]=0,l[e+118|0]=0,l[e+119|0]=0,l[e+120|0]=0,o=e+12|0,i[e+12>>2]=o,i[e+8>>2]=i[e+8>>2]+1,i[e+4>>2]=k,i[e+16>>2]=e,n||(V[i[i[e>>2]+8>>2]](e),g(e)),n=i[r>>2],w=i[n+24>>2],k=w,_=i[n+28>>2],n=_,i[o+36>>2]=10,i[o+32>>2]=1,i[o+28>>2]=n,i[o+24>>2]=k,J0(o,10,k,n,8)){if(k=i[r>>2],n=i[k+44>>2],k=i[k+48>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),i[A+52>>2]=-1086926434,i[A+56>>2]=1071829221,i[A+44>>2]=1068725436,i[A+48>>2]=-1095748968,l[A+40|0]=1,n&&(V6(A+20|0,Q[n+8>>1],Q[n+4>>1]),i[A+56>>2]=i[A+36>>2],n=i[A+32>>2],i[A+48>>2]=i[A+28>>2],i[A+52>>2]=n,n=i[A+24>>2],i[A+40>>2]=i[A+20>>2],i[A+44>>2]=n),C=Z0[A+56>>2],I=Z0[A+48>>2],y=Z0[A+52>>2],E=Z0[A+44>>2],n=0,i[A+20>>2]=0,i[A+16>>2]=0,i[A+12>>2]=0,i[A+8>>2]=0,J=v0(i[r>>2],0,A+20|0),R=v0(i[r>>2],1,A+16|0),r=i[r>>2],D=z8(Y(C*Y(256))),z=z8(Y(I*Y(256))),H=z8(Y(y*Y(256))),a=z8(Y(E*Y(256))),S=v0(r,2,A+12|0),v=v0(o,10,A+8|0),!((_|0)<=0|(w|0)<=0))for(;;){for(p=n>>>1|0,r=0;t=r>>>1|0,h=s[t+(m(i[A+16>>2],p)+R|0)|0],u=m(r,3),Z=s[(m(i[A+20>>2],n)+J|0)+r|0],W=s[t+(m(i[A+12>>2],p)+S|0)|0]-128|0,t=Z+(m(W,a)+128>>8)|0,l[u+(m(i[A+8>>2],n)+v|0)|0]=(t|0)>=0?t>>>0>=255?255:t:0,h=h-128|0,t=((m(h,z)+m(H,W)|0)+128>>8)+Z|0,l[(u+(m(i[A+8>>2],n)+v|0)|0)+1|0]=(t|0)>=0?t>>>0>=255?255:t:0,t=u+(m(i[A+8>>2],n)+v|0)|0,u=(m(h,D)+128>>8)+Z|0,l[t+2|0]=(u|0)>=0?u>>>0>=255?255:u:0,r=r+1|0,(w|0)!=(r|0););if(n=n+1|0,(_|0)==(n|0))break}if(i[f+4>>2]=e,i[f>>2]=o,!k||(f=i[k+4>>2],i[k+4>>2]=f-1,f))break i;V[i[i[k>>2]+8>>2]](k),g(k);break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[e+4>>2],i[e+4>>2]=f-1,f)break i;V[i[i[e>>2]+8>>2]](e),g(e)}B=A- -64|0}function Hh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0;t=B-32|0,B=t;i:{r:{e:{if(U0(i[r>>2],3)>>>0<9||U0(i[r>>2],4)>>>0<9)break e;if(U0(i[r>>2],5)>>>0>8)break r}i[f>>2]=0,i[f+4>>2]=0;break i}_=H2(i[r>>2],6),Z=s[k+8|0];r:{if(!_)break r;if(U0(i[r>>2],6)>>>0<=8){i[f>>2]=0,i[f+4>>2]=0;break i}if((y4(i[r>>2],6)|0)==(y4(i[r>>2],4)|0)&&(F4(i[r>>2],6)|0)==(F4(i[r>>2],4)|0))break r;i[f>>2]=0,i[f+4>>2]=0;break i}if(e=U0(i[r>>2],3),!e){i[f>>2]=0,i[f+4>>2]=0;break i}if(n=U(136),i[n+4>>2]=0,i[n+8>>2]=0,i[n>>2]=72792,B0(n+20|0,0,104),A=i[n+4>>2],k=A+1|0,i[n+4>>2]=k,i[n+56>>2]=0,i[n+60>>2]=0,i[n+44>>2]=99,i[n+48>>2]=99,i[n+32>>2]=3795,o=n- -64|0,i[o>>2]=0,i[o+4>>2]=0,i[n+132>>2]=0,i[n+124>>2]=0,i[n+128>>2]=0,i[n+84>>2]=1,i[n+88>>2]=1,i[n+72>>2]=n+76,i[n+92>>2]=0,i[n+96>>2]=0,i[n+100>>2]=0,i[n+104>>2]=0,i[n+108>>2]=0,i[n+112>>2]=0,l[n+113|0]=0,l[n+114|0]=0,l[n+115|0]=0,l[n+116|0]=0,l[n+117|0]=0,l[n+118|0]=0,l[n+119|0]=0,l[n+120|0]=0,u=n+12|0,i[n+12>>2]=u,i[n+8>>2]=i[n+8>>2]+1,i[n+4>>2]=A,i[n+16>>2]=n,k||(V[i[i[n>>2]+8>>2]](n),g(n)),k=i[r>>2],p=i[k+24>>2],A=p,W=i[k+28>>2],k=W,C=_|Z,i[u+36>>2]=C&1?13:12,i[u+32>>2]=1,i[u+28>>2]=k,i[u+24>>2]=A,J0(u,10,A,k,e)){if(i[t+28>>2]=0,i[t+24>>2]=0,i[t+20>>2]=0,i[t+16>>2]=0,i[t+12>>2]=0,I=v0(i[r>>2],3,t+28|0),y=v0(i[r>>2],4,t+24|0),E=v0(i[r>>2],5,t+20|0),o=v0(u,10,t+12|0),_&&(J=v0(i[r>>2],6,t+16|0),R=i[t+16>>2]/2|0),i[t+28>>2]=i[t+28>>2]/2,i[t+24>>2]=i[t+24>>2]/2,i[t+20>>2]=i[t+20>>2]/2,!((W|0)<=0|(p|0)<=0))for(D=C&1?8:6,k=-1<>>8|0,r=0;;){for(z=m(r,R),w=0;e=w<<1,A=Q[(e+E|0)+(m(i[t+20>>2],r)<<1)>>1],v=Q[(e+y|0)+(m(i[t+24>>2],r)<<1)>>1],h=m(w,D),e=Q[(e+I|0)+(m(i[t+28>>2],r)<<1)>>1],l[h+(o+m(i[t+12>>2],r)|0)|0]=e>>>8,l[((o+m(i[t+12>>2],r)|0)+h|0)+1|0]=e,l[((o+m(i[t+12>>2],r)|0)+h|0)+2|0]=v>>>8,l[((o+m(i[t+12>>2],r)|0)+h|0)+3|0]=v,l[((o+m(i[t+12>>2],r)|0)+h|0)+4|0]=A>>>8,l[((o+m(i[t+12>>2],r)|0)+h|0)+5|0]=A,C&1&&(e=k,v=(o+m(i[t+12>>2],r)|0)+h|0,_?(e=Q[(w+z<<1)+J>>1],A=e>>>8|0):A=Z,l[v+6|0]=A,l[((o+m(i[t+12>>2],r)|0)+h|0)+7|0]=e),w=w+1|0,(p|0)!=(w|0););if(r=r+1|0,(W|0)==(r|0))break}i[f+4>>2]=n,i[f>>2]=u;break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[n+4>>2],i[n+4>>2]=f-1,f)break i;V[i[i[n>>2]+8>>2]](n),g(n)}B=t+32|0}function Th(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;A=B-32|0,B=A,t=s[k+8|0],p=i[i[r>>2]+36>>2],e=U(136),i[e>>2]=72792,i[e+4>>2]=0,i[e+8>>2]=0,B0(e+20|0,0,104),k=i[e+4>>2],o=k+1|0,i[e+4>>2]=o,i[e+56>>2]=0,i[e+60>>2]=0,i[e+44>>2]=99,i[e+48>>2]=99,i[e+32>>2]=3795,n=e- -64|0,i[n>>2]=0,i[n+4>>2]=0,i[e+132>>2]=0,i[e+124>>2]=0,i[e+128>>2]=0,i[e+84>>2]=1,i[e+88>>2]=1,i[e+72>>2]=e+76,i[e+92>>2]=0,i[e+96>>2]=0,i[e+100>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e+112>>2]=0,l[e+113|0]=0,l[e+114|0]=0,l[e+115|0]=0,l[e+116|0]=0,l[e+117|0]=0,l[e+118|0]=0,l[e+119|0]=0,l[e+120|0]=0,n=e+12|0,i[e+12>>2]=n,i[e+8>>2]=i[e+8>>2]+1,i[e+4>>2]=k,i[e+16>>2]=e,o||(V[i[i[e>>2]+8>>2]](e),g(e)),k=i[r>>2],u=i[k+24>>2],w=i[k+28>>2],k=w,i[n+36>>2]=3,i[n+32>>2]=1,i[n+28>>2]=k,i[n+24>>2]=u;i:{r:{if(!J0(n,3,u,k,8)||!J0(n,4,u,k,8)||!J0(n,5,u,k,8)||(h=t&1,h&&!J0(n,6,u,k,8)))break r;i[A+28>>2]=0,i[A+24>>2]=0,i[A+20>>2]=0,i[A+16>>2]=0,i[A+12>>2]=0,o=v0(i[r>>2],10,A+28|0),_=v0(n,3,A+24|0),v=v0(n,4,A+20|0),Z=v0(n,5,A+16|0),h&&(W=v0(n,6,A+12|0));e:{if((w|0)<=0|(u|0)<=0)break e;if(h=(p|0)==11?4:3,!(t&1)){for(r=0;;){for(k=0;t=m(k,h),l[(k+_|0)+m(i[A+24>>2],r)|0]=s[t+(o+m(i[A+28>>2],r)|0)|0],l[(k+v|0)+m(i[A+20>>2],r)|0]=s[(t+(o+m(i[A+28>>2],r)|0)|0)+1|0],l[(k+Z|0)+m(i[A+16>>2],r)|0]=s[(t+(o+m(i[A+28>>2],r)|0)|0)+2|0],k=k+1|0,(u|0)!=(k|0););if(r=r+1|0,(w|0)==(r|0))break}break e}if(r=0,(p|0)==11)for(;;){for(k=0;t=m(k,h),l[(k+_|0)+m(i[A+24>>2],r)|0]=s[t+(o+m(i[A+28>>2],r)|0)|0],l[(k+v|0)+m(i[A+20>>2],r)|0]=s[(t+(o+m(i[A+28>>2],r)|0)|0)+1|0],l[(k+Z|0)+m(i[A+16>>2],r)|0]=s[(t+(o+m(i[A+28>>2],r)|0)|0)+2|0],l[(m(i[A+12>>2],r)+k|0)+W|0]=s[(t+(o+m(i[A+28>>2],r)|0)|0)+3|0],k=k+1|0,(u|0)!=(k|0););if(r=r+1|0,(w|0)==(r|0))break e}for(;;){for(k=0;t=m(k,h),l[(k+_|0)+m(i[A+24>>2],r)|0]=s[t+(o+m(i[A+28>>2],r)|0)|0],l[(k+v|0)+m(i[A+20>>2],r)|0]=s[(t+(o+m(i[A+28>>2],r)|0)|0)+1|0],l[(k+Z|0)+m(i[A+16>>2],r)|0]=s[(t+(o+m(i[A+28>>2],r)|0)|0)+2|0],l[(m(i[A+12>>2],r)+k|0)+W|0]=255,k=k+1|0,(u|0)!=(k|0););if(r=r+1|0,(w|0)==(r|0))break}}i[f+4>>2]=e,i[f>>2]=n;break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[e+4>>2],i[e+4>>2]=f-1,f)break i;V[i[i[e>>2]+8>>2]](e),g(e)}B=A+32|0}function ah(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0,v=0,Z=0;if(u=B-48|0,B=u,o=i[e>>2],v=i[o+48>>2],_=i[o+52>>2],_&&(i[_+4>>2]=i[_+4>>2]+1),h=G2(A),h>>>0<2147483640){i:{r:{if(h>>>0>=11){w=(h|7)+1|0,o=U(w),i[u+20>>2]=w|-2147483648,i[u+12>>2]=o,i[u+16>>2]=h;break r}if(l[u+23|0]=h,o=u+12|0,!h)break i}l0(o,A,h)}l[o+h|0]=0,A=B+-64|0,B=A,i[u+28>>2]=0,i[u+32>>2]=0,i[u+44>>2]=0,i[u+36>>2]=0,i[u+40>>2]=0,D8(A+56|0,v,9980),w=i[A+56>>2],o=w,l[o+124|0]=1,i[o+52>>2]=i[o+52>>2]&-2|1;i:{if(h=G2(r),h>>>0<2147483640){r:{e:{if(h>>>0>=11){Z=(h|7)+1|0,o=U(Z),i[A+52>>2]=Z|-2147483648,i[A+44>>2]=o,i[A+48>>2]=h;break e}if(l[A+55|0]=h,o=A+44|0,!h)break r}l0(o,r,h)}l[o+h|0]=0,r=w+88|0;r:{if((r|0)==(A+44|0))break r;if(o=l[A+55|0],l[w+99|0]>=0){if((o|0)>=0){o=i[A+48>>2],i[r>>2]=i[A+44>>2],i[r+4>>2]=o,i[r+8>>2]=i[A+52>>2];break r}i4(r,i[A+44>>2],i[A+48>>2]);break r}w=r,r=(o|0)<0,_4(w,r?i[A+44>>2]:A+44|0,r?i[A+48>>2]:o)}l[A+55|0]<0&&G(i[A+44>>2]),i[u+24>>2]=i[i[A+56>>2]+56>>2];r:{if(l[u+23|0]>=0){i[A+16>>2]=i[u+20>>2],r=i[u+16>>2],i[A+8>>2]=i[u+12>>2],i[A+12>>2]=r;break r}_0(A+8|0,i[u+12>>2],i[u+16>>2])}o=A+8|0,r=B-32|0,B=r,i[r+8>>2]=0,i[r>>2]=0,i[r+4>>2]=0,n?(L2(r,n),w=i[r>>2]):w=0,l0(w,k,n),h=i[A+56>>2],k=h+100|0;r:{if((k|0)==(o|0))break r;if(n=l[o+11|0],l[h+111|0]>=0){if((n|0)>=0){n=i[o+4>>2],i[k>>2]=i[o>>2],i[k+4>>2]=n,i[k+8>>2]=i[o+8>>2];break r}i4(k,i[o>>2],i[o+4>>2]);break r}w=k,k=(n|0)<0,_4(w,k?i[o>>2]:o,k?i[o+4>>2]:n)}Wr(r+12|0,i[v+60>>2],i[i[A+56>>2]+56>>2],r,0),l[r+31|0]<0&&G(i[r+20>>2]),n=i[19565],k=A+24|0,i[k>>2]=i[19564],i[k+4>>2]=n,k=k+8|0;r:{if(l[78275]>=0){n=i[19567],i[k>>2]=i[19566],i[k+4>>2]=n,i[k+8>>2]=i[19568];break r}_0(k,i[19566],i[19567])}k=i[r>>2],k&&(i[r+4>>2]=k,G(k)),B=r+32|0,l[A+43|0]<0&&G(i[A+32>>2]),l[A+19|0]<0&&G(i[A+8>>2]),r=i[A+60>>2];r:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break r;V[i[i[r>>2]+8>>2]](r),g(r)}B=A- -64|0;break i}c2(),P()}l[u+23|0]<0&&G(i[u+12>>2]);i:{if(!_||(r=i[_+4>>2],i[_+4>>2]=r-1,r))break i;V[i[i[_>>2]+8>>2]](_),g(_)}i:{if(!(i[u+28>>2]|!t)){i[t>>2]=i[u+24>>2],i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e;break i}P0(f,u+28|0,i[e>>2])}l[u+47|0]<0&&G(i[u+36>>2]),B=u+48|0;return}c2(),P()}function Sh(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;k=B-32|0,B=k,n=hr()|0;i:{if(!e){i[f+4>>2]=n,i[f>>2]=95844;break i}IA(k+4|0,e,k+16|0,r,A,0);r:{if(!i[k+4>>2]){for(A=H4(11237)|0,o=i[k+16>>2],i[k+24>>2]=o,r=j1(73912,k+24|0)|0,g4(n|0,A|0,r|0),r>>>0>=9&&t1(r|0),A>>>0>=9&&t1(A|0),r=i[e>>2],r?r=i[r+24>>2]:r=0,A=H4(8425)|0,i[k+24>>2]=r,r=j1(67596,k+24|0)|0,g4(n|0,A|0,r|0),r>>>0>=9&&t1(r|0),A>>>0>=9&&t1(A|0),e=i[e>>2],e?_=i[e+28>>2]:_=0,r=H4(3313)|0,i[k+24>>2]=_,e=j1(67596,k+24|0)|0,g4(n|0,r|0,e|0),e>>>0>=9&&t1(e|0),r>>>0>=9&&t1(r|0),e=i[i[o>>2]+36>>2],r=H4(14612)|0,i[k+24>>2]=e,e=j1(73896,k+24|0)|0,g4(n|0,r|0,e|0),e>>>0>=9&&t1(e|0),r>>>0>=9&&t1(r|0),e=i[i[o>>2]+32>>2],r=H4(11509)|0,i[k+24>>2]=e,e=j1(73888,k+24|0)|0,g4(n|0,r|0,e|0),e>>>0>=9&&t1(e|0),r>>>0>=9&&t1(r|0),v=U(32),r=v,e=i[9348],i[r>>2]=i[9347],i[r+4>>2]=e,e=i[9354],i[r+24>>2]=i[9353],i[r+28>>2]=e,e=i[9352],i[r+16>>2]=i[9351],i[r+20>>2]=e,e=i[9350],i[r+8>>2]=i[9349],i[r+12>>2]=e,w=d5()|0,A=0;;){h=i[A+v>>2];e:{if(!H2(i[o>>2],h))break e;t=hr()|0,r=H4(11843)|0,i[k+24>>2]=h,e=j1(73928,k+24|0)|0,g4(t|0,r|0,e|0),e>>>0>=9&&t1(e|0),r>>>0>=9&&t1(r|0),e=i[o>>2];A:{if(!e){i[k>>2]=0,e=0;break A}e=v0(e,h,k)}u=H4(11376)|0,i[k+24>>2]=i[k>>2],r=j1(67596,k+24|0)|0,g4(t|0,u|0,r|0),r>>>0>=9&&t1(r|0),u>>>0>=9&&t1(u|0),r=i[k>>2],i[k+28>>2]=e,i[k+24>>2]=m(r,_),r=j1(73936,k+24|0)|0,e=H4(14587)|0,g4(t|0,e|0,r|0),e>>>0>=9&&t1(e|0),r>>>0>=9&&t1(r|0),e=y4(i[o>>2],h),r=H4(8425)|0,i[k+24>>2]=e,e=j1(67596,k+24|0)|0,g4(t|0,r|0,e|0),e>>>0>=9&&t1(e|0),r>>>0>=9&&t1(r|0),e=F4(i[o>>2],h),r=H4(3313)|0,i[k+24>>2]=e,e=j1(67596,k+24|0)|0,g4(t|0,r|0,e|0),e>>>0>=9&&t1(e|0),r>>>0>=9&&t1(r|0),u=t>>>0<9,u||Js(t|0),i[k+24>>2]=t,i[k+20>>2]=0;A:{if(l[78356]&1){r=i[19588];break A}r=Ys(2,73944,0)|0,l[78356]=1,i[19588]=r}if(+Es(r|0,w|0,8431,k+20|0,k+24|0),e=i[k+20>>2],e&&Fs(e|0),u)break e;t1(t|0)}if(A=A+4|0,(A|0)==32)break}break r}if(r=U(12),i[r+8>>2]=i[k+12>>2],e=i[k+8>>2],i[r>>2]=i[k+4>>2],i[r+4>>2]=e,i[k+24>>2]=r,Z=f,p=j1(73788,k+24|0)|0,i[Z+4>>2]=p,i[f>>2]=95844,n>>>0<9)break i;t1(n|0);break i}e=H4(4034)|0,g4(n|0,e|0,w|0),e>>>0>=9&&t1(e|0),i[f+4>>2]=n,i[f>>2]=95844,w>>>0>=9&&t1(w|0),G(v)}B=k+32|0}function Hk(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;i:{r:{e:{A:switch(e-f>>3){case 2:if(i[e-4>>2]<=i[f+4>>2])break e;return A=i[f>>2],r=i[f+4>>2],k=e-8|0,e=i[k+4>>2],i[f>>2]=i[k>>2],i[f+4>>2]=e,i[k>>2]=A,i[k+4>>2]=r,1;case 3:if(n=e-8|0,k=e-4|0,A=i[k>>2],r=i[f+12>>2],(r|0)<=i[f+4>>2]){if((r|0)>=(A|0)||(A=i[f+8>>2],r=i[f+12>>2],e=i[n+4>>2],i[f+8>>2]=i[n>>2],i[f+12>>2]=e,i[n>>2]=A,i[n+4>>2]=r,i[f+12>>2]<=i[f+4>>2]))break e;e=i[f+8>>2],r=i[f+12>>2];break r}if(e=i[f>>2],t=i[f+4>>2],(r|0)<(A|0)){r=i[n+4>>2],i[f>>2]=i[n>>2],i[f+4>>2]=r;break i}if(A=i[f+8>>2],r=i[f+12>>2],i[f+8>>2]=e,i[f+12>>2]=t,i[f>>2]=A,i[f+4>>2]=r,(t|0)>=i[k>>2])break e;r=i[n+4>>2],i[f+8>>2]=i[n>>2],i[f+12>>2]=r;break i;case 4:return Tr(f,f+8|0,f+16|0,e-8|0),1;case 5:if(Tr(f,f+8|0,f+16|0,f+24|0),i[e-4>>2]<=i[f+28>>2]||(A=i[f+24>>2],r=i[f+28>>2],k=e-8|0,e=i[k+4>>2],i[f+24>>2]=i[k>>2],i[f+28>>2]=e,i[k>>2]=A,i[k+4>>2]=r,i[f+28>>2]<=i[f+20>>2])||(e=i[f+24>>2],r=i[f+28>>2],A=i[f+20>>2],i[f+24>>2]=i[f+16>>2],i[f+28>>2]=A,i[f+16>>2]=e,i[f+20>>2]=r,(r|0)<=i[f+12>>2])||(A=i[f+12>>2],i[f+16>>2]=i[f+8>>2],i[f+20>>2]=A,i[f+8>>2]=e,i[f+12>>2]=r,(r|0)<=i[f+4>>2]))break e;break r;case 0:case 1:break e;default:break A}t=i[f+20>>2],A=i[f+12>>2],k=i[f+4>>2];A:{if((A|0)<=(k|0)){if((A|0)>=(t|0)||(r=i[f+16>>2],t=i[f+20>>2],A=i[f+12>>2],i[f+16>>2]=i[f+8>>2],i[f+20>>2]=A,i[f+8>>2]=r,i[f+12>>2]=t,(k|0)>=(t|0)))break A;A=i[f+4>>2],i[f+8>>2]=i[f>>2],i[f+12>>2]=A,i[f>>2]=r,i[f+4>>2]=t;break A}if(r=i[f>>2],n=i[f+4>>2],(A|0)<(t|0)){k=i[f+16>>2],A=i[f+20>>2],i[f+16>>2]=r,i[f+20>>2]=n,i[f>>2]=k,i[f+4>>2]=A;break A}if(k=i[f+8>>2],A=i[f+12>>2],i[f+8>>2]=r,i[f+12>>2]=n,i[f>>2]=k,i[f+4>>2]=A,(n|0)>=(t|0))break A;k=i[f+16>>2],A=i[f+20>>2],i[f+16>>2]=r,i[f+20>>2]=n,i[f+8>>2]=k,i[f+12>>2]=A}if(k=f+24|0,(k|0)==(e|0))break e;for(A=f+16|0;;){A:{if(i[k+4>>2]<=i[A+4>>2])break A;for(u=i[k>>2],n=i[k+4>>2],r=k;;){f:{if(t=r,r=A,A=i[r+4>>2],i[t>>2]=i[r>>2],i[t+4>>2]=A,(f|0)==(r|0))break f;if(A=r-8|0,i[r-4>>2]<(n|0))continue}break}if(i[r>>2]=u,i[r+4>>2]=n,o=o+1|0,(o|0)!=8)break A;return(k+8|0)==(e|0)}if(A=k,k=k+8|0,(k|0)==(e|0))break}}return 1}return A=i[f+4>>2],i[f+8>>2]=i[f>>2],i[f+12>>2]=A,i[f>>2]=e,i[f+4>>2]=r,1}return i[n>>2]=e,i[n+4>>2]=t,1}function Vr(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;A=e-1|0,r=A,o=(A|0)/2|0,A=e+65535>>>0<131073,o=A?r:o,k=i[f+72>>2],t=k>>31,e=A?2:1,n=i[f+76>>2];i:{if((e|0)==(n|0)){if(r=(o>>31)+t|0,n=k+o|0,r=n>>>0>>0?r+1|0:r,(r-(n>>>0<2147483648)|0)==-1)break i;e=r>>31,o=e,e=n+(e|1)|0,r=r+o|0,n=o2(e,e>>>0>>0?r+1|0:r,2,0),e=1;break i}if(e=n,u=e>>31,n=q0(e,u,o,o>>31),h=w0,w=n,r=k,n=A&31,(A&63)>>>0>=32?(o=r<>>32-n|t<>>0>n>>>0?r+1|0:r,t=r,h=(r-(n>>>0<2147483648)|0)==-1,o=e,k=A&31,(A&63)>>>0>=32?(r=e<>>32-k|u<>>0<2147483648)|0)==-1&h))for(;e=k>>31,r=e,e=A+(r|1)|0,r=r+k|0,A=o2(e,e>>>0>>0?r+1|0:r,2,0),k=w0,u=k-(A>>>0<2147483648)|0,e=t>>31,o=e,e=n+(e|1)|0,r=t+o|0,n=o2(e,e>>>0>>0?r+1|0:r,2,0),e=w0,t=e,(e-(n>>>0<2147483648)&u)!=-1;);e=A}if(k=i[f+56>>2],f=i[f+60>>2],A=k-f|0,t=f>>31,k=(k>>31)-(t+(f>>>0>k>>>0)|0)|0,r=k-(A>>>0<2147483648)|0,(r|0)==-2|r>>>0<4294967294){for(;r=t>>31,u=f+(r|1)|0,r=t+r|0,f=o2(u,f>>>0>u>>>0?r+1|0:r,2,0),t=w0,r=k>>31,u=A+(r|1)|0,r=k+r|0,A=o2(u,A>>>0>u>>>0?r+1|0:r,2,0),k=w0,(k-(A>>>0<2147483648)|0)!=-1;);t=f>>31}if(r=t<<1|f>>>31,f=f<<1,t=r,r=r-(f>>>0<2147483648)|0,(r|0)==-2|r>>>0<4294967294)for(;r=k>>31,u=A+(r|1)|0,o=r+k|0,A=o2(u,A>>>0>u>>>0?o+1|0:o,2,0),k=w0,r=t>>31,u=f+(r|1)|0,r=r+t|0,f=o2(u,f>>>0>u>>>0?r+1|0:r,2,0),t=w0,(t-(f>>>0<2147483648)|0)!=-1;);k=n>>31;i:{if((f|0)==(e|0)){if(k=k-((A>>31)+(A>>>0>n>>>0)|0)|0,A=n-A|0,(k-(A>>>0<2147483648)|0)==-1)break i;for(f=e,t=e>>31;e=t>>31,r=e,e=f+(r|1)|0,r=r+t|0,f=o2(e,f>>>0>e>>>0?r+1|0:r,2,0),t=w0,e=k>>31,r=e,e=A+(r|1)|0,r=r+k|0,A=o2(e,e>>>0>>0?r+1|0:r,2,0),e=w0,k=e,(e-(A>>>0<2147483648)|0)!=-1;);e=f;break i}if(k=q0(f,t,n,k),n=w0,r=e>>31,u=q0(e,r,A,A>>31),A=k-u|0,k=n-(w0+(k>>>0>>0)|0)|0,f=q0(f,t,e,r),e=w0,t=e,(k-(A>>>0<2147483648)&e-(f>>>0<2147483648))!=-1)for(;e=t>>31,n=e,e=f+(e|1)|0,r=n+t|0,f=o2(e,f>>>0>e>>>0?r+1|0:r,2,0),t=w0,n=t-(f>>>0<2147483648)|0,e=k>>31,o=e,e=A+(e|1)|0,r=k+o|0,A=o2(e,e>>>0>>0?r+1|0:r,2,0),e=w0,k=e,(e-(A>>>0<2147483648)&n)!=-1;);e=f}return f=A,A=(e|0)/2|0,f=f+A|0,r=(A>>31)+k|0,o2(f,f>>>0>>0?r+1|0:r,e,e>>31)}function L4(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0;i:{r:switch(r|0){case 1:for(r=0,k=i[i[11334]+12>>2];n=k+(r<<1)|0,l[((s[n+1|0]<<3)+f|0)+s[n|0]|0]=s[e+r|0],n=r|1,o=k+(n<<1)|0,l[((s[o+1|0]<<3)+f|0)+s[o|0]|0]=s[e+n|0],r=r+2|0,(r|0)!=64;);break i;case 2:for(n=f+1|0,o=i[i[11334]+12>>2];r=o+(k<<1)|0,t=e+k|0,u=s[t|0],l[((s[r|0]<<1)+f|0)+(s[r+1|0]<<5)|0]=u,l[(n+(s[r|0]<<1)|0)+(s[r+1|0]<<5)|0]=u,t=s[t|0],l[(((s[r|0]<<1)+f|0)+(s[r+1|0]<<5)|0)+16|0]=t,l[((n+(s[r|0]<<1)|0)+(s[r+1|0]<<5)|0)+16|0]=t,k=k+1|0,(k|0)!=64;);break i;case 3:for(n=f+3|0,o=f+2|0,t=f+1|0,h=i[i[11334]+12>>2];r=(u<<1)+h|0,k=e+u|0,A=s[k|0],l[((s[r|0]<<2)+f|0)+(s[r+1|0]<<7)|0]=A,l[(t+(s[r|0]<<2)|0)+(s[r+1|0]<<7)|0]=A,A=s[k|0],l[(o+(s[r|0]<<2)|0)+(s[r+1|0]<<7)|0]=A,l[(n+(s[r|0]<<2)|0)+(s[r+1|0]<<7)|0]=A,A=s[k|0],l[(((s[r|0]<<2)+f|0)+(s[r+1|0]<<7)|0)+32|0]=A,l[((t+(s[r|0]<<2)|0)+(s[r+1|0]<<7)|0)+32|0]=A,A=s[k|0],l[((o+(s[r|0]<<2)|0)+(s[r+1|0]<<7)|0)+32|0]=A,l[((n+(s[r|0]<<2)|0)+(s[r+1|0]<<7)|0)+32|0]=A,A=s[k|0],l[(((s[r|0]<<2)+f|0)+(s[r+1|0]<<7)|0)+64|0]=A,l[((t+(s[r|0]<<2)|0)+(s[r+1|0]<<7)|0)+64|0]=A,A=s[k|0],l[((o+(s[r|0]<<2)|0)+(s[r+1|0]<<7)|0)+64|0]=A,l[((n+(s[r|0]<<2)|0)+(s[r+1|0]<<7)|0)+64|0]=A,A=s[k|0],l[(((s[r|0]<<2)+f|0)+(s[r+1|0]<<7)|0)+96|0]=A,l[((t+(s[r|0]<<2)|0)+(s[r+1|0]<<7)|0)+96|0]=A,k=s[k|0],l[((o+(s[r|0]<<2)|0)+(s[r+1|0]<<7)|0)+96|0]=k,l[((n+(s[r|0]<<2)|0)+(s[r+1|0]<<7)|0)+96|0]=k,u=u+1|0,(u|0)!=64;);break i;default:C0(17356,13927,865,4924),P();case 0:break r}r=i[i[11334]+8>>2],l[((s[r+1|0]<<2)+f|0)+s[r|0]|0]=s[e|0],l[s[r+2|0]+((s[r+3|0]<<2)+f|0)|0]=s[e+1|0],l[s[r+4|0]+((s[r+5|0]<<2)+f|0)|0]=s[e+2|0],l[s[r+6|0]+((s[r+7|0]<<2)+f|0)|0]=s[e+3|0],l[s[r+8|0]+((s[r+9|0]<<2)+f|0)|0]=s[e+4|0],l[s[r+10|0]+((s[r+11|0]<<2)+f|0)|0]=s[e+5|0],l[s[r+12|0]+((s[r+13|0]<<2)+f|0)|0]=s[e+6|0],l[s[r+14|0]+((s[r+15|0]<<2)+f|0)|0]=s[e+7|0],l[s[r+16|0]+((s[r+17|0]<<2)+f|0)|0]=s[e+8|0],l[s[r+18|0]+((s[r+19|0]<<2)+f|0)|0]=s[e+9|0],l[s[r+20|0]+((s[r+21|0]<<2)+f|0)|0]=s[e+10|0],l[s[r+22|0]+((s[r+23|0]<<2)+f|0)|0]=s[e+11|0],l[s[r+24|0]+((s[r+25|0]<<2)+f|0)|0]=s[e+12|0],l[s[r+26|0]+((s[r+27|0]<<2)+f|0)|0]=s[e+13|0],l[s[r+28|0]+((s[r+29|0]<<2)+f|0)|0]=s[e+14|0],l[s[r+30|0]+((s[r+31|0]<<2)+f|0)|0]=s[e+15|0]}}function Oh(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;k=B-16|0,B=k,o=D0(r),u=D0(r),h=D0(r),_=D0(r),A=D0(r),n=D0(r),w=D0(r),t=D0(r);i:{if((t|(o|u|h|_|n))<0){if(e=U(32),i[k>>2]=e,i[k+4>>2]=31,i[k+8>>2]=-2147483616,r=s[17877]|s[17878]<<8|(s[17879]<<16|s[17880]<<24),A=s[17873]|s[17874]<<8|(s[17875]<<16|s[17876]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+31|0]=0,r=s[17900]|s[17901]<<8|(s[17902]<<16|s[17903]<<24),A=s[17896]|s[17897]<<8|(s[17898]<<16|s[17899]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,l[e+27|0]=r,l[e+28|0]=r>>>8,l[e+29|0]=r>>>16,l[e+30|0]=r>>>24,r=s[17893]|s[17894]<<8|(s[17895]<<16|s[17896]<<24),A=s[17889]|s[17890]<<8|(s[17891]<<16|s[17892]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[17885]|s[17886]<<8|(s[17887]<<16|s[17888]<<24),A=s[17881]|s[17882]<<8|(s[17883]<<16|s[17884]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,128,k),l[k+11|0]>=0)break i;G(i[k>>2]);break i}if(u=p9(k,o,u),o=i[u>>2],u=i[u+4>>2],i[e+48>>2]=o,i[e+52>>2]=u,h=p9(k,h,_),o=i[h>>2],h=i[h+4>>2],i[e+56>>2]=o,i[e+60>>2]=h,n-65537>>>0<4294836223)for(;A=(A|0)/2|0,n=(n|0)/2|0,n-65537>>>0<4294836223;);r:{if((n|0)<=1)break r;for(;;){if(A-65537>>>0>4294836222)break r;if(A=(A|0)/2|0,o=n>>>0>3,n=n>>>1|0,!o)break}}if(i[e+64>>2]=A,i[e+68>>2]=n,t-65537>>>0<4294836223)for(;w=(w|0)/2|0,t=(t|0)/2|0,t-65537>>>0<4294836223;);r:{if((t|0)<=1){A=t;break r}for(;;){if(w-65537>>>0>4294836222){A=t;break r}if(w=(w|0)/2|0,o=t>>>0>3,A=t>>>1|0,t=A,!o)break}}i[e+72>>2]=w,i[e+76>>2]=A;r:{if(!(!n|(!u|!h))&&A)break r;if(e=f,f=C1(k,31341),r0(e,2,128,f),l[f+11|0]>=0)break i;G(i[f>>2]);break i}e=B-16|0,B=e;r:{if(s[r+20|0]==1){if(l[e+4|0]=0,l[e+15|0]=0,r0(f,2,100,e+4|0),l[e+15|0]>=0)break r;G(i[e+4>>2]);break r}if(r=i[19565],i[f>>2]=i[19564],i[f+4>>2]=r,f=f+8|0,l[78275]>=0){r=i[19567],i[f>>2]=i[19566],i[f+4>>2]=r,i[f+8>>2]=i[19568];break r}_0(f,i[19566],i[19567])}B=e+16|0}B=k+16|0}function jh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0;A=B-16|0,B=A,e=U(136),i[e+4>>2]=0,i[e+8>>2]=0,i[e>>2]=72792,B0(e+20|0,0,104),k=i[e+4>>2],n=k+1|0,i[e+4>>2]=n,i[e+56>>2]=0,i[e+60>>2]=0,i[e+44>>2]=99,i[e+48>>2]=99,i[e+32>>2]=3795,o=e- -64|0,i[o>>2]=0,i[o+4>>2]=0,i[e+132>>2]=0,i[e+124>>2]=0,i[e+128>>2]=0,i[e+84>>2]=1,i[e+88>>2]=1,i[e+72>>2]=e+76,i[e+92>>2]=0,i[e+96>>2]=0,i[e+100>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e+112>>2]=0,l[e+113|0]=0,l[e+114|0]=0,l[e+115|0]=0,l[e+116|0]=0,l[e+117|0]=0,l[e+118|0]=0,l[e+119|0]=0,l[e+120|0]=0,o=e+12|0,i[e+12>>2]=o,i[e+8>>2]=i[e+8>>2]+1,i[e+4>>2]=k,i[e+16>>2]=e,n||(V[i[i[e>>2]+8>>2]](e),g(e)),k=i[r>>2],n=i[k+24>>2],u=i[k+28>>2],t=i[k+32>>2],i[o+36>>2]=i[k+36>>2],i[o+32>>2]=t,i[o+28>>2]=u,i[o+24>>2]=n;i:{r:{for(;;){n=i[p+41232>>2];e:{if(!H2(i[r>>2],n))break e;if(t=U0(i[r>>2],n),t>>>0>=9){if(h=y4(i[r>>2],n),w=F4(i[r>>2],n),!J0(o,n,h,w,8))break r;if(_=v0(i[r>>2],n,A+12|0),i[A+12>>2]=i[A+12>>2]/2,v=v0(o,n,A+8|0),(w|0)<=0|(h|0)<=0)break e;for(t=t-8|0,W=h&2147483646,C=h&1,n=0;;){if(k=0,u=0,(h|0)!=1)for(;l[(v+m(i[A+8>>2],n)|0)+k|0]=Q[(_+(m(i[A+12>>2],n)<<1)|0)+(k<<1)>>1]>>>t,Z=k|1,l[Z+(v+m(i[A+8>>2],n)|0)|0]=Q[(_+(m(i[A+12>>2],n)<<1)|0)+(Z<<1)>>1]>>>t,k=k+2|0,u=u+2|0,(W|0)!=(u|0););if(C&&(l[(v+m(i[A+8>>2],n)|0)+k|0]=Q[(_+(m(i[A+12>>2],n)<<1)|0)+(k<<1)>>1]>>>t),n=n+1|0,(w|0)==(n|0))break}break e}if((t|0)!=8){if(h=y4(i[r>>2],n),v=F4(i[r>>2],n),!J0(o,n,h,v,8))break r;if(u=1<<16-t,k=(u&65534)>>>t|0,k)for(;u=k|u,k=k>>>t|0,!!k;);if(t=v0(i[r>>2],n,A+12|0),_=v0(o,n,A+8|0),(v|0)<=0|(h|0)<=0)break e;for(W=h&2147483646,C=h&1,n=0;;){if(k=0,w=0,(h|0)!=1)for(;l[(_+m(i[A+8>>2],n)|0)+k|0]=m(s[(t+m(i[A+12>>2],n)|0)+k|0],u)>>>8,Z=k|1,l[Z+(_+m(i[A+8>>2],n)|0)|0]=m(s[Z+(t+m(i[A+12>>2],n)|0)|0],u)>>>8,k=k+2|0,w=w+2|0,(W|0)!=(w|0););if(C&&(l[(_+m(i[A+8>>2],n)|0)+k|0]=m(s[(t+m(i[A+12>>2],n)|0)+k|0],u)>>>8),n=n+1|0,(v|0)==(n|0))break}break e}U8(o,r,n,n)}if(p=p+4|0,(p|0)==28)break}i[f+4>>2]=e,i[f>>2]=o;break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[e+4>>2],i[e+4>>2]=f-1,f)break i;V[i[i[e>>2]+8>>2]](e),g(e)}B=A+16|0}function Ph(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;o=B-16|0,B=o;i:{r:{if((G2(r)|0)!=4){e=i[18420],i[f>>2]=i[18419],i[f+4>>2]=e,i[f+8>>2]=i[18421];break r}Z=s[r|0]|s[r+1|0]<<8|(s[r+2|0]<<16|s[r+3|0]<<24),i[o+12>>2]=0,i[o+4>>2]=0,i[o+8>>2]=0,n=A,w=k+n|0,u=w;e:{if((k|0)<=0)break e;if(r=i[o+12>>2],h=i[o+8>>2],(r-h|0)>=(k|0)){A:{if((k|0)<=(h|0)){r=h;break A}if(w=n+h|0,r=u-w|0,(u|0)!=(w|0)&&F2(h,w,r),r=r+h|0,i[o+8>>2]=r,(h|0)<=0)break e}t=r,A=r-k|0;A:{if(h>>>0<=A>>>0)break A;if(_=k+h|0,u=_-r&7,u)for(;l[t|0]=s[A|0],t=t+1|0,A=A+1|0,v=v+1|0,(u|0)!=(v|0););if(r-_>>>0>=4294967289)break A;for(;l[t|0]=s[A|0],l[t+1|0]=s[A+1|0],l[t+2|0]=s[A+2|0],l[t+3|0]=s[A+3|0],l[t+4|0]=s[A+4|0],l[t+5|0]=s[A+5|0],l[t+6|0]=s[A+6|0],l[t+7|0]=s[A+7|0],t=t+8|0,A=A+8|0,(h|0)!=(A|0););}if(i[o+8>>2]=t,(r|0)!=(k|0)&&(A=r,r=r-k|0,F2(A-r|0,0,r)),(n|0)==(w|0))break e;F2(0,n,w-n|0);break e}if(w=i[o+4>>2],u=(h-w|0)+k|0,(u|0)>=0){t=0-w|0,A=r-w|0,r=A<<1,_=A>>>0>=1073741823?2147483647:r>>>0>u>>>0?r:u,_?u=U(_):u=0,r=l0(t+u|0,n,k);A:{if(!w){A=r;break A}n=t&3;f:{if(!n){A=r,t=0;break f}for(A=r,t=0;A=A-1|0,t=t-1|0,l[A|0]=s[t|0],v=v+1|0,(n|0)!=(v|0););}if(w>>>0<=4294967292)for(;l[A-1|0]=s[t-1|0],l[A-2|0]=s[t-2|0],l[A-3|0]=s[t-3|0],A=A-4|0,t=t-4|0,l[A|0]=s[t|0],(t|0)!=(w|0););h=i[o+8>>2]}r=r+k|0,h&&F2(r,0,h),i[o+12>>2]=u+_,i[o+8>>2]=r+h,r=i[o+4>>2],i[o+4>>2]=A,r&&G(r);break e}y0(),P()}if(n=U(32),i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,i[n+16>>2]=Z<<24|(Z&65280)<<8|(Z>>>8&65280|Z>>>24),i[n+12>>2]=72952,i[n>>2]=73092,i[n+4>>2]=0,i[n+8>>2]=0,r=i[o+8>>2],k=i[o+4>>2],(r|0)!=(k|0)){if(u=r-k|0,(u|0)<0)break i;A=U(u),i[n+20>>2]=A,r=A+u|0,i[n+28>>2]=r,l0(A,k,u),i[n+24>>2]=r}e=i[e>>2],i[n+4>>2]=i[n+4>>2]+2,i[e+52>>2]=n+12,r=i[e+56>>2],i[e+56>>2]=n;e:{if(!r||(e=i[r+4>>2],i[r+4>>2]=e-1,e))break e;V[i[i[r>>2]+8>>2]](r),g(r)}if(e=i[n+4>>2],i[n+4>>2]=e-1,e||(V[i[i[n>>2]+8>>2]](n),g(n)),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[n+4>>2],i[n+4>>2]=f-1,f||(V[i[i[n>>2]+8>>2]](n),g(n)),f=i[o+4>>2],!f)break r;i[o+8>>2]=f,G(f)}B=o+16|0;return}y0(),P()}function f1(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;if(o=B-16|0,B=o,i[f+4>>2]=i[f+4>>2]+1,r=B-16|0,B=r,i[r+12>>2]=f,i[o+12>>2]=i[r+12>>2],B=r+16|0,r=i[25004],i[25005]-r>>2>>>0<=e>>>0)i:{if(f=e+1|0,A=i[25005],r=A-r>>2,f>>>0>r>>>0){u=B-32|0,B=u,t=f-r|0;r:{if(t>>>0<=i[25006]-A>>2>>>0){J9(t);break r}A=u+12|0,r=B-16|0,B=r,k=t+(i[25005]-i[25004]>>2)|0,i[r+12>>2]=k;e:{if(f=L9(),k>>>0<=f>>>0){k=i[25006]-i[25004]>>2,k>>>0>>1>>>0&&(i[r+8>>2]=k<<1,f=B-16|0,B=f,B=f+16|0,f=r+12|0,k=r+8|0,f=i[(k0[k>>2]>2]?f:k)>>2]),B=r+16|0,r=f;break e}o4(),P()}for(n=i[25005]-i[25004]>>2,f=0,k=B-16|0,B=k,i[k+12>>2]=0,i[A+12>>2]=0,i[A+16>>2]=100028,r?(ut(k+4|0,i[A+16>>2],r),f=i[k+4>>2],r=i[k+8>>2]):r=0,i[A>>2]=f,n=(n<<2)+f|0,i[A+8>>2]=n,i[A+4>>2]=n,i[A+12>>2]=(r<<2)+f,B=k+16|0,r=B-16|0,B=r,f=i[A+8>>2],i[r+12>>2]=A+8,i[r+4>>2]=f,i[r+8>>2]=f+(t<<2),f=i[r+4>>2];;){if(i[r+8>>2]!=(f|0)){i[i[r+4>>2]>>2]=0,f=i[r+4>>2]+4|0,i[r+4>>2]=f;continue}break}for(i[i[r+12>>2]>>2]=i[r+4>>2],B=r+16|0,k=B-16|0,B=k,i[k+8>>2]=i[25005],i[k+4>>2]=i[25004],i[k>>2]=i[A+4>>2],n=i[k+4>>2],h=i[k>>2],t=B-16|0,B=t,f=B-32|0,B=f,r=B-16|0,B=r,i[r+12>>2]=i[k+8>>2],i[r+8>>2]=n,i[f+24>>2]=i[r+12>>2],i[f+28>>2]=i[r+8>>2],B=r+16|0,n=i[f+24>>2],r=B-16|0,B=r,i[r+8>>2]=i[f+28>>2],i[r+12>>2]=n,i[r+4>>2]=h;;){if(n=i[r+12>>2],(n|0)!=i[r+8>>2]){i[i[r+4>>2]-4>>2]=i[n-4>>2],i[r+12>>2]=i[r+12>>2]-4,i[r+4>>2]=i[r+4>>2]-4;continue}break}for(i[f+16>>2]=i[r+12>>2],i[f+20>>2]=i[r+4>>2],B=r+16|0,i[f+12>>2]=i[f+16>>2],i[f+8>>2]=i[f+20>>2],i[t+8>>2]=i[f+12>>2],i[t+12>>2]=i[f+8>>2],B=f+32|0,B=t+16|0,i[k+12>>2]=i[t+12>>2],i[A+4>>2]=i[k+12>>2],f=i[25004],i[25004]=i[A+4>>2],i[A+4>>2]=f,f=i[25005],i[25005]=i[A+8>>2],i[A+8>>2]=f,f=i[25006],i[25006]=i[A+12>>2],i[A+12>>2]=f,i[A>>2]=i[A+4>>2],B=k+16|0,f=i[A+4>>2];;){if(r=i[A+8>>2],(r|0)!=(f|0)){i[A+8>>2]=r-4;continue}break}f=i[A>>2],f&&Mt(i[A+16>>2],f)}B=u+32|0;break i}f>>>0>>0&&xt(100016,i[25004]+(f<<2)|0)}f=i[i[25004]+(e<<2)>>2],f&&(r=i[f+4>>2]-1|0,i[f+4>>2]=r,(r|0)==-1&&V[i[i[f>>2]+8>>2]](f)),f=i[o+12>>2],i[o+12>>2]=0,i[i[25004]+(e<<2)>>2]=f,f=i[o+12>>2],i[o+12>>2]=0,f&&(e=i[f+4>>2]-1|0,i[f+4>>2]=e,(e|0)==-1&&V[i[i[f>>2]+8>>2]](f)),B=o+16|0}function VA(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;if(t=B-16|0,B=t,i[t+12>>2]=0,i[t+4>>2]=0,i[t+8>>2]=0,n=f+28|0,k=i[f+28>>2],A=i[f+32>>2],(k|0)==(A|0))f=0;else{for(;;){if(f=i[k>>2],(f|0)!=i[e>>2]){i:{if(k0[t+12>>2]>r>>>0){i[r>>2]=f,f=i[k+4>>2],i[r+4>>2]=f,f&&(i[f+4>>2]=i[f+4>>2]+1),r=r+8|0;break i}r=Q2(t+4|0,k)}i[t+8>>2]=r}if(k=k+8|0,(A|0)==(k|0))break}f=i[t+4>>2]}if((t+4|0)!=(n|0)){k=r,o=r-f>>3;i:{if(A=i[n+8>>2],r=i[n>>2],o>>>0<=A-r>>3>>>0){if(e=i[n+4>>2],A=e-r|0,o>>>0>A>>3>>>0){if(A=f+A|0,(e|0)!=(r|0)){for(;;){e=i[f>>2],o=i[f+4>>2],o&&(i[o+4>>2]=i[o+4>>2]+1),i[r>>2]=e,e=i[r+4>>2],i[r+4>>2]=o;r:{if(!e||(o=i[e+4>>2],i[e+4>>2]=o-1,o))break r;V[i[i[e>>2]+8>>2]](e),g(e)}if(r=r+8|0,f=f+8|0,(A|0)==(f|0))break}e=i[n+4>>2]}if(f=e,(A|0)!=(k|0))for(;i[f>>2]=i[A>>2],r=i[A+4>>2],i[f+4>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),f=f+8|0,A=A+8|0,(k|0)!=(A|0););i[n+4>>2]=(f-e|0)+e;break i}if((f|0)!=(k|0)){for(;;){e=i[f>>2],A=i[f+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r>>2]=e,e=i[r+4>>2],i[r+4>>2]=A;r:{if(!e||(A=i[e+4>>2],i[e+4>>2]=A-1,A))break r;V[i[i[e>>2]+8>>2]](e),g(e)}if(r=r+8|0,f=f+8|0,(k|0)==(f|0))break}e=i[n+4>>2]}if((e|0)!=(r|0))for(;;){f=i[e-4>>2];r:{if(!f||(k=i[f+4>>2],i[f+4>>2]=k-1,k))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(e=e-8|0,(r|0)==(e|0))break}i[n+4>>2]=r;break i}if(r){if(e=r,A=i[n+4>>2],(e|0)!=(A|0)){for(;;){e=i[A-4>>2];r:{if(!e||(u=i[e+4>>2],i[e+4>>2]=u-1,u))break r;V[i[i[e>>2]+8>>2]](e),g(e)}if(A=A-8|0,(A|0)==(r|0))break}e=i[n>>2]}i[n+4>>2]=r,G(e),i[n+8>>2]=0,i[n>>2]=0,i[n+4>>2]=0,A=0}r:{if(o>>>0>=536870912||(e=A>>2,e=A>>>0>=2147483640?536870911:e>>>0>o>>>0?e:o,e>>>0>=536870912))break r;if(e=e<<3,r=U(e),i[n+4>>2]=r,i[n>>2]=r,i[n+8>>2]=e+r,(f|0)!=(k|0))for(;i[r>>2]=i[f>>2],e=i[f+4>>2],i[r+4>>2]=e,e&&(i[e+4>>2]=i[e+4>>2]+1),r=r+8|0,f=f+8|0,(k|0)!=(f|0););i[n+4>>2]=r;break i}y0(),P()}f=i[t+4>>2]}if(f){if(r=f,k=i[t+8>>2],(r|0)!=(k|0)){for(;;){e=i[k-4>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(k=k-8|0,(k|0)==(f|0))break}r=i[t+4>>2]}i[t+8>>2]=f,G(r)}B=t+16|0}function Ir(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;k=e-1|0,r=k,o=(k|0)/2|0,k=e+65535>>>0<131073,o=k?r:o,A=i[f+64>>2],t=A>>31,e=k?2:1,n=i[f+68>>2];i:{if((e|0)==(n|0)){if(r=(o>>31)+t|0,n=A+o|0,r=n>>>0>>0?r+1|0:r,(r-(n>>>0<2147483648)|0)==-1)break i;e=r>>31,o=e,e=n+(e|1)|0,r=r+o|0,n=o2(e,e>>>0>>0?r+1|0:r,2,0),e=1;break i}if(e=n,u=e>>31,n=q0(e,u,o,o>>31),h=w0,w=n,r=A,n=k&31,(k&63)>>>0>=32?(o=r<>>32-n|t<>>0>n>>>0?r+1|0:r,t=r,h=(r-(n>>>0<2147483648)|0)==-1,o=e,A=k&31,(k&63)>>>0>=32?(r=e<>>32-A|u<>>0<2147483648)|0)==-1&h))for(;e=A>>31,r=e,e=k+(r|1)|0,r=r+A|0,k=o2(e,e>>>0>>0?r+1|0:r,2,0),A=w0,u=A-(k>>>0<2147483648)|0,e=t>>31,o=e,e=n+(e|1)|0,r=t+o|0,n=o2(e,e>>>0>>0?r+1|0:r,2,0),e=w0,t=e,(e-(n>>>0<2147483648)&u)!=-1;);e=k}if(A=i[f+48>>2],f=i[f+52>>2],k=A-f|0,t=f>>31,A=(A>>31)-(t+(f>>>0>A>>>0)|0)|0,r=A-(k>>>0<2147483648)|0,(r|0)==-2|r>>>0<4294967294){for(;r=t>>31,u=f+(r|1)|0,r=t+r|0,f=o2(u,f>>>0>u>>>0?r+1|0:r,2,0),t=w0,r=A>>31,u=k+(r|1)|0,r=A+r|0,k=o2(u,k>>>0>u>>>0?r+1|0:r,2,0),A=w0,(A-(k>>>0<2147483648)|0)!=-1;);t=f>>31}if(r=t<<1|f>>>31,f=f<<1,t=r,r=r-(f>>>0<2147483648)|0,(r|0)==-2|r>>>0<4294967294)for(;r=A>>31,u=k+(r|1)|0,o=r+A|0,k=o2(u,k>>>0>u>>>0?o+1|0:o,2,0),A=w0,r=t>>31,u=f+(r|1)|0,r=r+t|0,f=o2(u,f>>>0>u>>>0?r+1|0:r,2,0),t=w0,(t-(f>>>0<2147483648)|0)!=-1;);A=n>>31;i:{if((f|0)==(e|0)){if(A=A-((k>>31)+(k>>>0>n>>>0)|0)|0,k=n-k|0,(A-(k>>>0<2147483648)|0)==-1)break i;for(f=e,t=e>>31;e=t>>31,r=e,e=f+(r|1)|0,r=r+t|0,f=o2(e,f>>>0>e>>>0?r+1|0:r,2,0),t=w0,e=A>>31,r=e,e=k+(r|1)|0,r=r+A|0,k=o2(e,e>>>0>>0?r+1|0:r,2,0),e=w0,A=e,(e-(k>>>0<2147483648)|0)!=-1;);e=f;break i}if(A=q0(f,t,n,A),n=w0,r=e>>31,u=q0(e,r,k,k>>31),k=A-u|0,A=n-(w0+(A>>>0>>0)|0)|0,f=q0(f,t,e,r),e=w0,t=e,(A-(k>>>0<2147483648)&e-(f>>>0<2147483648))!=-1)for(;e=t>>31,n=e,e=f+(e|1)|0,r=n+t|0,f=o2(e,f>>>0>e>>>0?r+1|0:r,2,0),t=w0,n=t-(f>>>0<2147483648)|0,e=A>>31,o=e,e=k+(e|1)|0,r=A+o|0,k=o2(e,e>>>0>>0?r+1|0:r,2,0),e=w0,A=e,(e-(k>>>0<2147483648)&n)!=-1;);e=f}return(k|0)/(e|0)|0}function Lh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;A=B-32|0,B=A,e=i[r>>2],o=i[e+28>>2],u=i[e+24>>2],e=U(136),i[e>>2]=72792,i[e+4>>2]=0,i[e+8>>2]=0,B0(e+20|0,0,104),h=i[e+4>>2],w=h+1|0,i[e+4>>2]=w,i[e+56>>2]=0,i[e+60>>2]=0,i[e+44>>2]=99,i[e+48>>2]=99,i[e+32>>2]=3795,n=e- -64|0,i[n>>2]=0,i[n+4>>2]=0,i[e+132>>2]=0,i[e+124>>2]=0,i[e+128>>2]=0,i[e+84>>2]=1,i[e+88>>2]=1,i[e+72>>2]=e+76,i[e+92>>2]=0,i[e+96>>2]=0,i[e+100>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e+112>>2]=0,l[e+113|0]=0,l[e+114|0]=0,l[e+115|0]=0,l[e+116|0]=0,l[e+117|0]=0,l[e+118|0]=0,l[e+119|0]=0,l[e+120|0]=0,n=e+12|0,i[e+12>>2]=n,i[e+8>>2]=i[e+8>>2]+1,i[e+4>>2]=h,i[e+16>>2]=e,w||(V[i[i[e>>2]+8>>2]](e),g(e)),i[n+36>>2]=3,i[n+32>>2]=0,i[n+28>>2]=o,i[n+24>>2]=u,k=s[k+8|0],t=i[i[r>>2]+36>>2];i:{r:{if(!J0(n,0,u,o,8)||!J0(n,1,u,o,8)||!J0(n,2,u,o,8)||(_=k&1,_&&!J0(n,6,u,o,8)))break r;i[A+28>>2]=0,i[A+24>>2]=0,i[A+20>>2]=0,i[A+16>>2]=0,i[A+12>>2]=0,h=v0(i[r>>2],10,A+12|0),w=v0(n,0,A+20|0),p=v0(n,1,A+28|0),W=v0(n,2,A+24|0),_&&(Z=v0(n,6,A+16|0));e:{if((o|0)<=0|(u|0)<=0)break e;if(_=(t|0)==11?4:3,!(k&1)){for(k=0;;){for(r=0;t=(h+m(i[A+12>>2],k)|0)+m(r,_)|0,Z=s[t|0],v=s[t+2|0],l[(w+m(i[A+20>>2],k)|0)+r|0]=s[t+1|0],l[(m(i[A+28>>2],k)+p|0)+r|0]=v,l[(m(i[A+24>>2],k)+W|0)+r|0]=Z,r=r+1|0,(u|0)!=(r|0););if(k=k+1|0,(o|0)==(k|0))break}break e}if(r=0,(t|0)==11)for(;;){for(k=0;v=m(k,_),t=v+(h+m(i[A+12>>2],r)|0)|0,C=s[t|0],I=s[t+2|0],l[(w+m(i[A+20>>2],r)|0)+k|0]=s[t+1|0],l[(m(i[A+28>>2],r)+p|0)+k|0]=I,l[(m(i[A+24>>2],r)+W|0)+k|0]=C,l[(m(i[A+16>>2],r)+k|0)+Z|0]=s[(v+(h+m(i[A+12>>2],r)|0)|0)+3|0],k=k+1|0,(u|0)!=(k|0););if(r=r+1|0,(o|0)==(r|0))break e}for(;;){for(k=0;t=(h+m(i[A+12>>2],r)|0)+m(k,_)|0,v=s[t|0],C=s[t+2|0],l[(w+m(i[A+20>>2],r)|0)+k|0]=s[t+1|0],l[(m(i[A+28>>2],r)+p|0)+k|0]=C,l[(m(i[A+24>>2],r)+W|0)+k|0]=v,l[(m(i[A+16>>2],r)+k|0)+Z|0]=255,k=k+1|0,(u|0)!=(k|0););if(r=r+1|0,(o|0)==(r|0))break}}i[f+4>>2]=e,i[f>>2]=n;break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[e+4>>2],i[e+4>>2]=f-1,f)break i;V[i[i[e>>2]+8>>2]](e),g(e)}B=A+32|0}function Kh(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0;u=B-32|0,B=u;i:{r:{e:{A:{if(o=i[e+16>>2],(V[i[i[o>>2]+8>>2]](o)|0)==5){f:{if(!(!k|(!r|!A))&&n)break f;e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560];break i}if(o=i[e+16>>2],!o||(h=N0(o,72776,73388),!h))break A;o=i[e+20>>2],o&&(i[o+4>>2]=i[o+4>>2]+1),i[r>>2]=i[h+4>>2],i[A>>2]=i[h+8>>2],w=i[h+12>>2],i[k>>2]=w,e=n,n=i[h+16>>2],i[e>>2]=n,h=i[h+20>>2],QA(u+16|0,w,n,2,0,t);f:{if(i[u+16>>2]){e=i[u+20>>2],i[f>>2]=i[u+16>>2],i[f+4>>2]=e,i[f+8>>2]=i[u+24>>2];break f}if(Z3(u+4|0,i[t>>2],0,w,n,8),i[u+24>>2]=i[u+12>>2],r=i[u+8>>2],e=i[u+4>>2],i[u+16>>2]=e,i[u+20>>2]=r,e){G4(i[t>>2]),i[f+8>>2]=i[u+24>>2],e=i[u+20>>2],i[f>>2]=i[u+16>>2],i[f+4>>2]=e;break f}if(r=0,t=T6(i[t>>2],0,u+4|0),!(!w|!n))for(k=0,A=0;;){for(e=0;l[(t+m(i[u+4>>2],r)|0)+e|0]=(s[((A&7)<<29|k>>>3)+h|0]<<(k&7)&128)>>>7|0?-1:0,k=k+1|0,A=k?A:A+1|0,e=e+1|0,(w|0)!=(e|0););if(r=r+1|0,(n|0)==(r|0))break}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}if(!o||(f=i[o+4>>2],i[o+4>>2]=f-1,f))break i;V[i[i[o>>2]+8>>2]](o),g(o);break i}if(o=i[e+16>>2],(V[i[i[o>>2]+8>>2]](o)|0)==4){f:{if(!(!k|(!r|!A))&&n)break f;r=i[18559],i[f>>2]=i[18558],i[f+4>>2]=r,i[f+8>>2]=i[18560],r=0;break r}if(o=i[e+16>>2],!o||(h=N0(o,72776,73344),!h))break e;if(o=i[e+20>>2],o&&(i[o+4>>2]=i[o+4>>2]+1),i[r>>2]=i[h+4>>2],i[A>>2]=i[h+8>>2],i[k>>2]=i[h+12>>2],i[n>>2]=i[h+16>>2],r=i[h+20>>2],i[f+8>>2]=i[18412],A=i[18411],i[f>>2]=i[18410],i[f+4>>2]=A,!o||(A=i[o+4>>2],i[o+4>>2]=A-1,A))break r;V[i[i[o>>2]+8>>2]](o),g(o);break r}e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560];break i}e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560];break i}r=i[18559],i[f>>2]=i[18558],i[f+4>>2]=r,i[f+8>>2]=i[18560],r=0}if(i[f>>2]||(A=i[e>>2],e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[u+8>>2]=e,i[u+4>>2]=A,gA(f,u+4|0,r,u),i[f>>2]||(IA(u+16|0,i[u>>2],t,2,0,0),i[f+8>>2]=i[u+24>>2],e=i[u+20>>2],i[f>>2]=i[u+16>>2],i[f+4>>2]=e,N6(i[u>>2])),f=i[u+8>>2],!f)||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=u+32|0}function qh(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;t=B-144|0,B=t;i:{if(!A){if(l[t+108|0]=0,l[t+119|0]=0,r=f,f=r0(t+56|0,5,2001,t+108|0),P0(r,f,i[e>>2]),l[f+19|0]<0&&G(i[f+8>>2]),l[t+119|0]>=0)break i;G(i[t+108>>2]);break i}l[t+113|0]=0,l[t+114|0]=0,l[t+115|0]=0,l[t+116|0]=0,X[t+110>>1]=0,X[t+112>>1]=0,X[t+108>>1]=263,l[t+140|0]=1,l[t+136|0]=0,i[t+128>>2]=2,i[t+132>>2]=2,l[t+124|0]=1,i[t+120>>2]=1;r:{if(!k)break r;e:{A:switch(s[k|0]-1|0){case 1:l[t+110|0]=s[k+2|0],l[t+109|0]=s[k+1|0];break e;case 0:l[t+109|0]=s[k+1|0];break e;case 6:l[t+140|0]=s[k+32|0];case 5:o=i[k+20>>2],i[t+124>>2]=i[k+16>>2],i[t+128>>2]=o,o=i[k+28>>2],i[t+132>>2]=i[k+24>>2],i[t+136>>2]=o;case 4:i[t+120>>2]=i[k+12>>2];case 3:o=i[k+4>>2],i[t+112>>2]=o,l[t+116|0]=s[k+8|0];break;case 2:break A;default:break e}if(l[t+111|0]=s[k+3|0],l[t+110|0]=s[k+2|0],l[t+109|0]=s[k+1|0],o)break r}if(k=i[r>>2],o=i[k+44>>2],k=i[k+48>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),o&&(l[t+56|0]=1,i[t+112>>2]=t+56,i[t+60>>2]=Q[o+4>>1],i[t+64>>2]=Q[o+6>>1],i[t+68>>2]=Q[o+8>>1],l[t+72|0]=s[o+10|0]),!k||(o=i[k+4>>2],i[k+4>>2]=o-1,o))break r;V[i[i[k>>2]+8>>2]](k),g(k)}i[t+48>>2]=0,i[t+52>>2]=0,k=t+24|0,i[k>>2]=0,i[k+4>>2]=0,i[k+16>>2]=0,i[k+8>>2]=0,i[k+12>>2]=0,BA(t,i[e>>2],r,A,t+108|0,1,t+48|0),A=i[t+4>>2],r=i[t>>2],i[k>>2]=r,i[k+4>>2]=A,l[k+19|0]<0&&(G(i[k+8>>2]),r=i[k>>2]),A=i[t+12>>2],i[k+8>>2]=i[t+8>>2],i[k+12>>2]=A,i[k+16>>2]=i[t+16>>2],A=i[e>>2];r:{if((r|0)!=i[19564]){P0(f,k,A);break r}i[A+40>>2]||s3(A,t+48|0);e:{if(!n)break e;r=U(16),i[r>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,i[r+12>>2]=0,i[n>>2]=r,A=i[t+48>>2],o=i[t+52>>2];A:{if(!o){i[r+4>>2]=o,i[r>>2]=A;break A}if(i[o+4>>2]=i[o+4>>2]+1,i[r>>2]=A,A=i[r+4>>2],i[r+4>>2]=o,!A||(r=i[A+4>>2],i[A+4>>2]=r-1,r))break A;V[i[i[A>>2]+8>>2]](A),g(A)}if(o=i[e>>2],r=i[n>>2],A=i[e+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+8>>2]=o,e=i[r+12>>2],i[r+12>>2]=A,!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break e;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}if(l[k+19|0]<0&&G(i[k+8>>2]),f=i[t+52>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=t+144|0}function $h(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;A=B-32|0,B=A,h=A+12|0,_=i[e>>2],o=B-32|0,B=o,k=U(132),i[k+4>>2]=0,i[k+8>>2]=0,i[k>>2]=72576,Z=_,p=Ge(k+12|0),i[Z+48>>2]=p,n=i[_+52>>2],i[_+52>>2]=k;i:{if(!n||(k=i[n+4>>2],i[n+4>>2]=k-1,k))break i;V[i[i[n>>2]+8>>2]](n),g(n)}w=i[_+48>>2],n=B-160|0,B=n,k=U(188),u=i[13753],i[k>>2]=u,i[k+108>>2]=55e3,i[k+i[u-12>>2]>>2]=i[13754],i[k+4>>2]=0,u=k+i[i[k>>2]-12>>2]|0,t=k+8|0,b0(u,t),i[u+72>>2]=0,i[u+76>>2]=-1,i[k+108>>2]=55e3,i[k>>2]=54980,jk(z7(t),r,12)||(r=k+i[i[k>>2]-12>>2]|0,z1(r,i[r+16>>2]|4)),u=o+8|0,i[n+156>>2]=k;i:{if(i[(k+i[i[k>>2]-12>>2]|0)+16>>2]){i[n+20>>2]=54496,i[n+76>>2]=54516,r=i[13633],i[n+12>>2]=r,k=i[r-12>>2],r=n+12|0,i[k+r>>2]=i[13634],i[n+16>>2]=0,k=r+i[i[n+12>>2]-12>>2]|0,t=n+24|0,b0(k,t),i[k+72>>2]=0,i[k+76>>2]=-1,k=i[13635],i[n+20>>2]=k,w=i[k-12>>2],k=n+20|0,i[w+k>>2]=i[13636],w=i[13632],i[n+12>>2]=w,i[r+i[w-12>>2]>>2]=i[13637],i[n+76>>2]=54516,i[n+12>>2]=54476,i[n+20>>2]=54496,r=$0(t),i[r>>2]=53552,t=n- -64|0,i[t>>2]=0,i[t+4>>2]=0,i[n+56>>2]=0,i[n+60>>2]=0,i[n+72>>2]=24,t=x(k,21125,20),k=i[23944],k=Q[((k>>>0<=153?k:0)<<1)+51808>>1]+49880|0,x(H0(x(x(t,k,G2(k)),18656,2),i[23944]),31337,2),i2(n,r),r0(u,1,0,n),l[n+11|0]<0&&G(i[n>>2]),k=i[13631],i[n+12>>2]=k,i[i[k-12>>2]+(n+12|0)>>2]=i[13639],i[n+20>>2]=i[13640],i[r>>2]=53552,l[n+67|0]<0&&G(i[n+56>>2]),K0(r),T0(n+76|0);break i}if(r=U(32),i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=72872,k=B-16|0,B=k,v=r+16|0,i[v>>2]=68360,t=i[n+156>>2],i[n+156>>2]=0,i[r+20>>2]=t,f3(t,0,0,2),s9(k,i[r+20>>2]),t=i[k+12>>2],i[r+24>>2]=i[k+8>>2],i[r+28>>2]=t,f3(i[r+20>>2],0,0,0),B=k+16|0,i[n+16>>2]=r,i[n+12>>2]=v,i[r+4>>2]=i[r+4>>2]+1,_A(u,w,n+12|0),k=i[r+4>>2],i[r+4>>2]=k-1,k||(V[i[i[r>>2]+8>>2]](r),g(r)),k=i[r+4>>2],i[r+4>>2]=k-1,k)break i;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[n+156>>2],i[n+156>>2]=0,r&&V[i[i[r>>2]+4>>2]](r),B=n+160|0;i:{if(i[o+8>>2]){r=i[o+12>>2],i[h>>2]=i[o+8>>2],i[h+4>>2]=r,r=i[o+20>>2],i[h+8>>2]=i[o+16>>2],i[h+12>>2]=r,i[h+16>>2]=i[o+24>>2];break i}if(hA(h,_),l[o+27|0]>=0)break i;G(i[o+16>>2])}B=o+32|0,P0(f,h,i[e>>2]),l[A+31|0]<0&&G(i[A+20>>2]),B=A+32|0}function Tk(f,e,r,A,k,n){var t=0,o=0,u=0,h=0,w=0,_=0;i:{r:{if(u=f+548|0,!i[u+8>>2]){l[u+1|0]=0,f=7,t=i[u+44>>2];e:{if((t|0)!=i[u+40>>2]){o=t-4|0,t=i[o>>2],i[u+44>>2]=o,o=i[t+32>>2];break e}t=U(48),i[t+40>>2]=0,i[t+32>>2]=0,i[t+36>>2]=0,l[t+2|0]=0,l[t|0]=0,l[t+1|0]=0,o=U(64),i[t+32>>2]=o,h=o- -64|0,i[t+40>>2]=h,i[o+56>>2]=0,i[o+60>>2]=0,i[o+48>>2]=0,i[o+52>>2]=0,i[o+40>>2]=0,i[o+44>>2]=0,i[o+32>>2]=0,i[o+36>>2]=0,i[o+24>>2]=0,i[o+28>>2]=0,i[o+16>>2]=0,i[o+20>>2]=0,i[o+8>>2]=0,i[o+12>>2]=0,i[o>>2]=0,i[o+4>>2]=0,i[t+8>>2]=0,i[t+12>>2]=0,i[t+36>>2]=h,i[t+16>>2]=0,i[t+20>>2]=0,i[t+24>>2]=0,i[t+28>>2]=0}if(i[t+36>>2]=o,i[t+24>>2]=0,i[t+16>>2]=0,i[t+8>>2]=0,i[t+12>>2]=0,l[t+2|0]=0,X[t>>1]=0,i[t+28>>2]<(r|0))e:{if(o=Z2(r),o){h=i[t+20>>2],h&&G(h),i[t+28>>2]=r,i[t+20>>2]=o;break e}w4(u,t),t=0}if(t){e:{if(i[t+28>>2]>=(r|0)){f=i[t+20>>2];break e}if(f=Z2(r),!f)break r;o=i[t+20>>2],o&&(l0(f,o,i[t+24>>2]),G(o)),i[t+28>>2]=r,i[t+20>>2]=f}if(l0(f,e,r),i[t+16>>2]=n,i[t+8>>2]=A,i[t+12>>2]=k,i[t+24>>2]=r,(r|0)>=3)for(f=i[t+20>>2],n=0;;){e=f+2|0;e:{A:{f:switch(A=s[f+2|0],A|0){case 0:case 3:break A;default:break f}n=n+2|0;break e}if(s[f|0]){e=f;break e}if((A|0)!=3){e=f;break e}if(s[f+1|0]){e=f;break e}r=i[t+36>>2],w=((r-i[t+32>>2]>>2)+n|0)+2|0;A:{if(o=i[t+40>>2],o>>>0>r>>>0){i[r>>2]=w,i[t+36>>2]=r+4;break A}f:{if(k=i[t+32>>2],h=r-k>>2,A=h+1|0,A>>>0<1073741824){if(_=h<<2,o=o-k|0,h=o>>1,h=o>>>0>=2147483644?1073741823:A>>>0>>0?h:A,h){if(h>>>0>=1073741824)break f;A=U(h<<2)}else A=0;if(o=_+A|0,i[o>>2]=w,w=o+4|0,(r|0)!=(k|0))for(;o=o-4|0,r=r-4|0,i[o>>2]=i[r>>2],(r|0)!=(k|0););i[t+40>>2]=A+(h<<2),i[t+36>>2]=w,i[t+32>>2]=o,k&&G(k),i[t+36>>2]=w;break A}y0(),P()}_2(),P()}F2(e,f+3|0,(i[t+24>>2]-n|0)-3|0),r=i[t+24>>2]-1|0,i[t+24>>2]=r,n=n+1|0,e=f+1|0}if(f=e+1|0,n=n+1|0,!((n|0)<(r-2|0)))break}f=0,o=i[u+32>>2],e=o+i[u+28>>2]|0,A=i[u+20>>2],n=i[u+16>>2],(e|0)==(((A|0)!=(n|0)?(A-n<<8)-1|0:0)|0)&&(Gr(u+12|0),r=i[t+24>>2],n=i[u+16>>2],o=i[u+32>>2],e=o+i[u+28>>2]|0),i[i[(e>>>8&16777212)+n>>2]+((e&1023)<<2)>>2]=t,i[u+32>>2]=o+1,i[u+36>>2]=i[u+36>>2]+r}break i}C0(15032,13941,375,15069),P()}w4(u,t),f=7}return f}function bh(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;k=B-48|0,B=k,yA(k+24|0,e,r);i:{if(i[k+24>>2]){e=i[k+28>>2],i[f>>2]=i[k+24>>2],i[f+4>>2]=e,i[f+16>>2]=i[k+40>>2],e=i[k+36>>2],i[f+8>>2]=i[k+32>>2],i[f+12>>2]=e,i[k+40>>2]=0,i[k+32>>2]=0,i[k+36>>2]=0;break i}if((i[e+64>>2]-i[e+60>>2]|0)!=8){if(e=U(64),i[k+12>>2]=e,i[k+16>>2]=57,i[k+20>>2]=-2147483584,r=s[4489]|s[4490]<<8|(s[4491]<<16|s[4492]<<24),A=s[4485]|s[4486]<<8|(s[4487]<<16|s[4488]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+57|0]=0,l[e+56|0]=s[4541],r=s[4537]|s[4538]<<8|(s[4539]<<16|s[4540]<<24),A=s[4533]|s[4534]<<8|(s[4535]<<16|s[4536]<<24),l[e+48|0]=A,l[e+49|0]=A>>>8,l[e+50|0]=A>>>16,l[e+51|0]=A>>>24,l[e+52|0]=r,l[e+53|0]=r>>>8,l[e+54|0]=r>>>16,l[e+55|0]=r>>>24,r=s[4529]|s[4530]<<8|(s[4531]<<16|s[4532]<<24),A=s[4525]|s[4526]<<8|(s[4527]<<16|s[4528]<<24),l[e+40|0]=A,l[e+41|0]=A>>>8,l[e+42|0]=A>>>16,l[e+43|0]=A>>>24,l[e+44|0]=r,l[e+45|0]=r>>>8,l[e+46|0]=r>>>16,l[e+47|0]=r>>>24,r=s[4521]|s[4522]<<8|(s[4523]<<16|s[4524]<<24),A=s[4517]|s[4518]<<8|(s[4519]<<16|s[4520]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[4513]|s[4514]<<8|(s[4515]<<16|s[4516]<<24),A=s[4509]|s[4510]<<8|(s[4511]<<16|s[4512]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[4505]|s[4506]<<8|(s[4507]<<16|s[4508]<<24),A=s[4501]|s[4502]<<8|(s[4503]<<16|s[4504]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[4497]|s[4498]<<8|(s[4499]<<16|s[4500]<<24),A=s[4493]|s[4494]<<8|(s[4495]<<16|s[4496]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,101,k+12|0),l[k+23|0]>=0)break i;G(i[k+12>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}l[k+43|0]<0&&G(i[k+32>>2]),B=k+48|0}function dh(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0;n=B-96|0,B=n;i:{if(!(k&&e)){i[f>>2]=5,i[f+4>>2]=2006,i[f+8>>2]=12607;break i}u=i[e>>2],t=i[u+48>>2],u=i[u+52>>2],u&&(i[u+4>>2]=i[u+4>>2]+1),i[n+92>>2]=0,i[n+84>>2]=0,i[n+88>>2]=0,o=n- -64|0,I1(o,t,r,n+84|0);r:{if(i[n+64>>2]){P0(f,o,i[e>>2]);break r}if(r=A-1|0,e=i[n+84>>2],r>>>0>=i[n+88>>2]-e>>3>>>0){i[f>>2]=5,i[f+4>>2]=2007,i[f+8>>2]=10388;break r}e:{if(r=e+(r<<3)|0,e=i[r>>2],!e||(e=N0(e,68572,70072),!e))break e;r=i[r+4>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),A=U(20),i[A>>2]=0,i[A+4>>2]=0,i[A+16>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A>>2]=1;A:{if(l[e+67|0]>=0){i[n+56>>2]=i[e+64>>2],t=i[e+60>>2],i[n+48>>2]=i[e+56>>2],i[n+52>>2]=t;break A}_0(n+48|0,i[e+56>>2],i[e+60>>2])}o=l[n+59|0],t=(o|0)<0,h=U((t?i[n+52>>2]:o)+1|0),o=i[n+48>>2],w=A,_=Fi(h,t?o:n+48|0),i[w+4>>2]=_,t&&G(o);A:{if(l[e+79|0]>=0){i[n+40>>2]=i[e+76>>2],t=i[e+72>>2],i[n+32>>2]=i[e+68>>2],i[n+36>>2]=t;break A}_0(n+32|0,i[e+68>>2],i[e+72>>2])}o=l[n+43|0],t=(o|0)<0,h=U((t?i[n+36>>2]:o)+1|0),o=i[n+32>>2],w=A,_=Fi(h,t?o:n+32|0),i[w+8>>2]=_,t&&G(o);A:{if(l[e+91|0]>=0){i[n+24>>2]=i[e+88>>2],t=i[e+84>>2],i[n+16>>2]=i[e+80>>2],i[n+20>>2]=t;break A}_0(n+16|0,i[e+80>>2],i[e+84>>2])}o=l[n+27|0],t=(o|0)<0,h=U((t?i[n+20>>2]:o)+1|0),o=i[n+16>>2],w=A,_=Fi(h,t?o:n+16|0),i[w+12>>2]=_,t&&G(o);A:{if(l[e+103|0]>=0){i[n+8>>2]=i[e+100>>2],t=i[e+96>>2],i[n>>2]=i[e+92>>2],i[n+4>>2]=t;break A}_0(n,i[e+92>>2],i[e+96>>2])}if(t=l[n+11|0],e=(t|0)<0,o=U((e?i[n+4>>2]:t)+1|0),t=i[n>>2],w=A,_=Fi(o,e?t:n),i[w+16>>2]=_,e&&G(t),i[k>>2]=A,i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,!r||(f=i[r+4>>2],i[r+4>>2]=f-1,f))break r;V[i[i[r>>2]+8>>2]](r),g(r);break r}i[f>>2]=5,i[f+4>>2]=2007,i[f+8>>2]=9699}if(l[n+83|0]<0&&G(i[n+72>>2]),r=i[n+84>>2],r){if(f=r,e=i[n+88>>2],(f|0)!=(e|0)){for(;;){f=i[e-4>>2];r:{if(!f||(A=i[f+4>>2],i[f+4>>2]=A-1,A))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(e=e-8|0,(r|0)==(e|0))break}f=i[n+84>>2]}i[n+88>>2]=r,G(f)}if(!u||(f=i[u+4>>2],i[u+4>>2]=f-1,f))break i;V[i[i[u>>2]+8>>2]](u),g(u)}B=n+96|0}function Qr(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0;if(h=B-2048|0,B=h,_=5,(r|0)>=2){for(_=0,n=r;t=_,_=t+1|0,o=n>>>0>3,n=n>>>1|0,!!o;);_=4-t|0}i:{if((r|0)<=0)break i;for(y=r&2147483644,p=r&3,W=r-1|0;;){v=(u<<1)+A|0,n=0,t=r;r:{for(;;){if(Z=n,o=t,(t|0)<=0){if(t=0,n=0,o=0,W>>>0>=3)for(;X[(m(r,n)+u<<1)+h>>1]=0,X[(m(n|1,r)+u<<1)+h>>1]=0,X[(m(n|2,r)+u<<1)+h>>1]=0,X[(m(n|3,r)+u<<1)+h>>1]=0,n=n+4|0,o=o+4|0,(y|0)!=(o|0););if(!p)break r;for(;X[(m(r,n)+u<<1)+h>>1]=0,n=n+1|0,t=t+1|0,(p|0)!=(t|0););break r}if(n=Z+1|0,t=o-1|0,!!Q[v+(m(t,r)<<1)>>1])break}for(E=o&2147483646,C=o&1,t=0;;){if(n=0,o=0,w=0,(Z|0)!=(W|0))for(;I=m(X[v+(m(r,n)<<1)>>1],l[((n<<_<<5)+t|0)+43984|0])+o|0,o=n|1,o=I+m(X[v+(m(o,r)<<1)>>1],l[((o<<_<<5)+t|0)+43984|0])|0,n=n+2|0,w=w+2|0,(E|0)!=(w|0););if(w=(m(r,t)+u<<1)+h|0,C&&(o=m(X[v+(m(r,n)<<1)>>1],l[((n<<_<<5)+t|0)+43984|0])+o|0),n=o- -64>>7,n=(n|0)>=32767?32767:n,X[w>>1]=(n|0)<=-32768?-32768:n,t=t+1|0,(t|0)==(r|0))break}}if(u=u+1|0,(u|0)==(r|0))break}if((r|0)<=0)break i;for(y=r&2147483646,E=r&1,C=1<<19-k,I=20-k|0,p=C>>I,u=-1<>1])break}for(J=A&2147483646,R=A&1,D=(m(e,k)<<1)+f|0,t=0;;){if(n=0,o=0,w=0,(Z|0)!=(W|0))for(;A=n|1,o=(m(X[(n+v<<1)+h>>1],l[((n<<_<<5)+t|0)+43984|0])+o|0)+m(X[(A+v<<1)+h>>1],l[((A<<_<<5)+t|0)+43984|0])|0,n=n+2|0,w=w+2|0,(J|0)!=(w|0););if(A=(t<<1)+D|0,w=Q[A>>1],R&&(o=m(X[(n+v<<1)+h>>1],l[((n<<_<<5)+t|0)+43984|0])+o|0),n=A,A=(o+C>>I)+w|0,X[n>>1]=(A|0)>=0?(A|0)<(u|0)?A:u:0,t=t+1|0,(t|0)==(r|0))break}break r}if(o=(m(e,k)<<1)+f|0,n=0,Z=0,W)for(;A=o+(n<<1)|0,t=p+Q[A>>1]|0,X[A>>1]=(t|0)>=0?(t|0)<(u|0)?t:u:0,t=A,A=p+Q[A+2>>1]|0,X[t+2>>1]=(A|0)>=0?(A|0)<(u|0)?A:u:0,n=n+2|0,Z=Z+2|0,(y|0)!=(Z|0););if(!E)break r;t=o+(n<<1)|0,A=p+Q[t>>1]|0,X[t>>1]=(A|0)>=0?(A|0)<(u|0)?A:u:0}if(k=k+1|0,(k|0)==(r|0))break}}B=h+2048|0}function ch(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0;k=B-48|0,B=k,A=D0(r),i[e+52>>2]=A&16777215,l[e+48|0]=A>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[k+8|0]=0,l[k+19|0]=0,r0(k+24|0,2,100,k+8|0),l[k+19|0]>=0)break i;G(i[k+8>>2]);break i}if(A=i[19565],i[k+24>>2]=i[19564],i[k+28>>2]=A,A=k+32|0,l[78275]>=0){n=i[19567],i[A>>2]=i[19566],i[A+4>>2]=n,i[A+8>>2]=i[19568];break i}_0(A,i[19566],i[19567])}l[k+43|0]<0&&G(i[k+32>>2]);i:{if(s[e+48|0]>=2){h4(f,e,14592);break i}r:{if(v=D0(r),!v)break r;for(W=e+56|0;;){if(s[r+20|0]|!i[r+16>>2])break r;i[k+20>>2]=0,i[k+12>>2]=0,i[k+16>>2]=0;e:{if(!s[e+48|0]){A=t2(r);break e}A=D0(r)}i[k+8>>2]=A,_=0;e:{if(Z=B2(r),!Z)break e;A:{for(;;){f:{if(l[e+52|0]&1){A=t2(r),u=A&32767,A=A>>>15|0;break f}A=B2(r),u=A&127,A=A>>>7|0}f:{t=i[k+16>>2],o=i[k+20>>2];k:{if(t>>>0>>0){A=u<<16|A,X[t>>1]=A,X[t+2>>1]=A>>>16,u=t+4|0;break k}if(h=i[k+12>>2],w=t-h>>2,n=w+1|0,n>>>0>=1073741824)break f;if(C=w<<2,o=o-h|0,w=o>>1,w=o>>>0>=2147483644?1073741823:n>>>0>>0?w:n,w){if(w>>>0>=1073741824)break A;n=U(w<<2)}else n=0;if(o=C+n|0,A=u<<16|A,X[o>>1]=A,X[o+2>>1]=A>>>16,u=o+4|0,(t|0)!=(h|0)){for(;o=o-4|0,t=t-4|0,A=Q[t>>1]|Q[t+2>>1]<<16,X[o>>1]=A,X[o+2>>1]=A>>>16,(t|0)!=(h|0););h=i[k+12>>2]}if(i[k+20>>2]=n+(w<<2),i[k+16>>2]=u,i[k+12>>2]=o,!h)break k;G(h)}if(i[k+16>>2]=u,_=_+1|0,(Z|0)==(_|0))break e;continue}break}y0(),P()}_2(),P()}e:{A=i[e+60>>2];A:{if(A>>>0>2]){if(n=i[k+8>>2],i[A+12>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=n,n=i[k+16>>2],u=i[k+12>>2],(n|0)!=(u|0)){if(n=n-u|0,(n|0)<0)break e;t=U(n),i[A+8>>2]=t,i[A+4>>2]=t,h=n+t|0,i[A+12>>2]=h,l0(t,u,n),i[A+8>>2]=h}A=A+16|0;break A}A=Nn(W,k+8|0)}if(i[e+60>>2]=A,A=i[k+12>>2],A&&(i[k+16>>2]=A,G(A)),p=p+1|0,(p|0)!=(v|0))continue;break r}break}y0(),P()}if(s[r+20|0]==1){if(l[k+8|0]=0,l[k+19|0]=0,r0(f,2,100,k+8|0),l[k+19|0]>=0)break i;G(i[k+8>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+48|0}function ak(f,e,r,A,k,n,t,o,u,h){var w=0,_=0,v=0,Z=0,p=0,W=0,C=0;W=B-16|0,B=W;i:{r:{e:{A:{f:{if(V[i[i[f>>2]+12>>2]](f,A)|0){if(_=V[i[i[f>>2]+8>>2]](f,A)|0,!(i[_+24>>2]>(k|0)&i[_+28>>2]>(n|0))){v2(f+4|0,1026,0),l[h|0]=0;break e}k:{if(w=i[_+168>>2],A=k>>w,(A|0)<0||(v=i[_+172>>2],(v|0)<=(A|0)))break k;if(w=n>>w,!((w|0)<0|(w|0)>=i[_+176>>2])){if(!(s[((i[_+160>>2]+m(A,3)|0)+m(m(w,v),3)|0)+1|0]&3)){X[u>>1]=0,X[u+2>>1]=0,l[h|0]=0;break e}if(s[_+312|0]==1){X[u>>1]=0,X[u+2>>1]=0,l[h|0]=0;break e}n:{if(w=i[_+188>>2],A=k>>w,(A|0)<0||(v=i[_+192>>2],(v|0)<=(A|0)))break n;if(w=n>>w,!((w|0)<0|(w|0)>=i[_+196>>2])){if(w=(i[_+180>>2]+m(A,12)|0)+m(m(w,v),12)|0,!s[w|0]){v=w+3|0,A=1,w=w+8|0;break A}if(!s[w+1|0]){v=w+2|0,A=0,w=w+4|0;break A}if(Z=i[e+96>>2],v=1,i[r+340>>2]<=0)break f;for(p=r+988|0,A=0;;){if(C=i[(V[i[i[f>>2]+8>>2]](f,i[p+(A<<2)>>2])|0)+96>>2],v=(C|0)<=(Z|0),A=A+1|0,(A|0)>=i[r+340>>2])break f;if(!((Z|0)>=(C|0)))break}break f}break r}break i}break r}break i}C0(18344,13964,1136,3838),P()}f:{if(!v|i[r+336>>2]<=0)break f;for(p=r+924|0,A=0;;){if(C=i[(V[i[i[f>>2]+8>>2]](f,i[p+(A<<2)>>2])|0)+96>>2],v=(C|0)<=(Z|0),A=A+1|0,(A|0)>=i[r+336>>2])break f;if(!((Z|0)>=(C|0)))break}}if(v){v=(o+w|0)+2|0,A=o,w=(w+(A<<2)|0)+4|0;break A}A=l[r+380|0],v=(w+A|0)+2|0,w=(w+(A<<2)|0)+4|0}if(Z=i[_+148>>2],k=k>>Z,(k|0)<0||(p=i[_+152>>2],(p|0)<=(k|0)))break i;if(n=n>>Z,(n|0)<0|(n|0)>=i[_+156>>2])break r;if(k=Q[((i[_+140>>2]+m(k,24)|0)+m(m(n,p),24)|0)+2>>1],Z=i[_+52>>2],k>>>0>=i[_+56>>2]-Z>>2>>>0){v2(f+4|0,1033,0),l[h|0]=0,X[u>>1]=0,X[u+2>>1]=0;break e}if(n=(((o<<4)+r|0)+t|0)+1308|0,v=l[v|0],Z=i[Z+(k<<2)>>2],s[n|0]!=s[(v+(Z+(A<<4)|0)|0)+1308|0]){l[h|0]=0,X[u>>1]=0,X[u+2>>1]=0;break e}k=Q[w>>1]|Q[w+2>>1]<<16,l[h|0]=1;A:{if(!s[n|0]&&(A=i[_+96>>2]-i[((Z+(A<<6)|0)+(v<<2)|0)+1052>>2]|0,r=i[e+96>>2]-i[(((o<<6)+r|0)+(t<<2)|0)+1052>>2]|0,(A|0)!=(r|0)))break A;X[u>>1]=k,X[u+2>>1]=k>>>16;break e}if(i[W+8>>2]=k,i[W+12>>2]=k,C7(u,W+8|0,A,r))break e;v2(f+4|0,1008,0),l[e+312|0]=3}B=W+16|0;return}C0(3720,8453,119,3372),P()}C0(3758,8453,118,3372),P()}function iw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0;if(A=B-160|0,B=A,i[A+60>>2]=54820,k=i[13708],i[A+4>>2]=k,u=i[k-12>>2],k=A+4|0,i[u+k>>2]=i[13709],n=k+i[i[A+4>>2]-12>>2]|0,t=A+8|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+60>>2]=54820,i[A+4>>2]=54800,p=$0(t),i[p>>2]=53552,i[A+48>>2]=0,i[A+52>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0,i[A+56>>2]=16,n=A+148|0,R2(n,e,r),w=k,u=n,k=l[A+159|0],n=(k|0)<0,x(w,n?i[A+148>>2]:u,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),t=i[e+56>>2],W=i[e+60>>2],(t|0)!=(W|0))for(;;){e=A+148|0,W0(e,r),u=e,e=l[A+159|0],k=(e|0)<0,x(A+4|0,k?i[A+148>>2]:u,k?i[A+152>>2]:e),l[A+159|0]<0&&G(i[A+148>>2]),e=x(A+4|0,18659,21),k=A+148|0,Vn(k,t),w=e,u=k,e=l[A+159|0],k=(e|0)<0,x(L0(x(x(x(w,k?i[A+148>>2]:u,k?i[A+152>>2]:e),18679,1),21539,10),i[t+40>>2]),20145,9),l[A+159|0]<0&&G(i[A+148>>2]);i:{if(e=i[t+44>>2],C=i[t+48>>2],(e|0)==(C|0))break i;for(;;){r:{v=L0(A+4|0,i[e>>2]),w=V1(A+140|0,v);e:{if(s[w|0]!=1)break e;h=i[i[v>>2]-12>>2]+v|0,Z=i[h+4>>2],n=i[h+24>>2],_=i[h+76>>2],(_|0)==-1&&(o=A+148|0,k=i[h+28>>2],i[o>>2]=k,(k|0)!=100008&&(i[k+4>>2]=i[k+4>>2]+1),k=x0(o,100192),_=V[i[i[k>>2]+28>>2]](k,32)|0,O0(o),i[h+76>>2]=_);A:{if(!n||(k=i[h+12>>2],Z=(Z&176)==32?21742:21741,o=Z-21741|0,(o|0)>0&&(V[i[i[n>>2]+48>>2]](n,21741,o)|0)!=(o|0)))break A;if(k=(k|0)>1?k-1|0:0,(k|0)>0){if(k>>>0>=2147483640)break r;f:{if(k>>>0>=11){u=(k|7)+1|0,o=U(u),i[A+156>>2]=u|-2147483648,i[A+148>>2]=o,i[A+152>>2]=k;break f}l[A+159|0]=k,o=A+148|0}if(I=B0(o,_,k)+k|0,y=0,l[I|0]=y,_=V[i[i[n>>2]+48>>2]](n,l[A+159|0]<0?i[A+148>>2]:A+148|0,k)|0,l[A+159|0]<0&&G(i[A+148>>2]),(k|0)!=(_|0))break A}if(k=21742-Z|0,(k|0)>0&&(V[i[i[n>>2]+48>>2]](n,Z,k)|0)!=(k|0))break A;i[h+12>>2]=0;break e}k=i[i[v>>2]-12>>2]+v|0,z1(k,i[k+16>>2]|5)}if(Z1(w),e=e+4|0,(C|0)!=(e|0))continue;break i}break}c2(),P()}if(x(A+4|0,31338,1),t=t+56|0,(W|0)==(t|0))break}i2(f,p),f=i[13707],i[A+4>>2]=f,i[i[f-12>>2]+(A+4|0)>>2]=i[13710],i[p>>2]=53552,l[A+51|0]<0&&G(i[A+40>>2]),K0(p),T0(A+60|0),B=A+160|0}function rw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;n=B-48|0,B=n;i:{if(!r){if(l[n+16|0]=0,l[n+27|0]=0,r=f,f=r0(n+28|0,5,2001,n+16|0),P0(r,f,i[e>>2]),l[f+19|0]<0&&G(i[f+8>>2]),l[n+27|0]>=0)break i;G(i[n+16>>2]);break i}A=i[e>>2];r:{if(l[A+151|0]>=0){i[n+24>>2]=i[A+148>>2],k=i[A+144>>2],i[n+16>>2]=i[A+140>>2],i[n+20>>2]=k;break r}_0(n+16|0,i[A+140>>2],i[A+144>>2])}A=l[n+27|0],k=(A|0)<0,t=Z2((k?i[n+20>>2]:A)+1|0);r:{if(!t){r=U(48),i[n+4>>2]=r,i[n+8>>2]=45,i[n+12>>2]=-2147483600,A=s[8634]|s[8635]<<8|(s[8636]<<16|s[8637]<<24),k=s[8630]|s[8631]<<8|(s[8632]<<16|s[8633]<<24),l[r+37|0]=k,l[r+38|0]=k>>>8,l[r+39|0]=k>>>16,l[r+40|0]=k>>>24,l[r+41|0]=A,l[r+42|0]=A>>>8,l[r+43|0]=A>>>16,l[r+44|0]=A>>>24,A=s[8629]|s[8630]<<8|(s[8631]<<16|s[8632]<<24),k=s[8625]|s[8626]<<8|(s[8627]<<16|s[8628]<<24),l[r+32|0]=k,l[r+33|0]=k>>>8,l[r+34|0]=k>>>16,l[r+35|0]=k>>>24,l[r+36|0]=A,l[r+37|0]=A>>>8,l[r+38|0]=A>>>16,l[r+39|0]=A>>>24,A=s[8621]|s[8622]<<8|(s[8623]<<16|s[8624]<<24),k=s[8617]|s[8618]<<8|(s[8619]<<16|s[8620]<<24),l[r+24|0]=k,l[r+25|0]=k>>>8,l[r+26|0]=k>>>16,l[r+27|0]=k>>>24,l[r+28|0]=A,l[r+29|0]=A>>>8,l[r+30|0]=A>>>16,l[r+31|0]=A>>>24,A=s[8613]|s[8614]<<8|(s[8615]<<16|s[8616]<<24),k=s[8609]|s[8610]<<8|(s[8611]<<16|s[8612]<<24),l[r+16|0]=k,l[r+17|0]=k>>>8,l[r+18|0]=k>>>16,l[r+19|0]=k>>>24,l[r+20|0]=A,l[r+21|0]=A>>>8,l[r+22|0]=A>>>16,l[r+23|0]=A>>>24,A=s[8605]|s[8606]<<8|(s[8607]<<16|s[8608]<<24),k=s[8601]|s[8602]<<8|(s[8603]<<16|s[8604]<<24),l[r+8|0]=k,l[r+9|0]=k>>>8,l[r+10|0]=k>>>16,l[r+11|0]=k>>>24,l[r+12|0]=A,l[r+13|0]=A>>>8,l[r+14|0]=A>>>16,l[r+15|0]=A>>>24,A=s[8597]|s[8598]<<8|(s[8599]<<16|s[8600]<<24),k=s[8593]|s[8594]<<8|(s[8595]<<16|s[8596]<<24),l[r|0]=k,l[r+1|0]=k>>>8,l[r+2|0]=k>>>16,l[r+3|0]=k>>>24,l[r+4|0]=A,l[r+5|0]=A>>>8,l[r+6|0]=A>>>16,l[r+7|0]=A>>>24,l[r+45|0]=0,r=f,f=r0(n+28|0,6,0,n+4|0),P0(r,f,i[e>>2]),l[f+19|0]<0&&G(i[f+8>>2]),l[n+15|0]<0&&G(i[n+4>>2]),A=s[n+27|0];break r}o=r,u=Fi(t,k?i[n+16>>2]:n+16|0),i[o>>2]=u,i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}if(A<<24>>24>=0)break i;G(i[n+16>>2])}B=n+48|0}function ew(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;A=i[i[f>>2]+20>>2],e=B-96|0,B=e,k=i[f+8>>2],h=k+20|0,f=i[k+20>>2];i:{r:{if(!f)break r;for(n=h;r=A>>>0>k0[f+16>>2],n=r?n:f,f=i[(r<<2)+f>>2],!!f;);if((n|0)==(h|0))break r;if(A>>>0>=k0[n+16>>2])break i}n=h}f=i[n+20>>2],o=i[n+24>>2],o&&(i[o+4>>2]=i[o+4>>2]+1),n=1;i:{if(i[f+52>>2])break i;t=e+84|0,W6(t,i[k+48>>2],A),n=0,f=l[e+95|0],r=(f|0)<0;r:{if(((r?i[e+88>>2]:f)|0)!=4||(r=r?i[e+84>>2]:t,(s[r|0]|s[r+1|0]<<8|(s[r+2|0]<<16|s[r+3|0]<<24))!=1684632167))break r;i[e+80>>2]=0,i[e+72>>2]=0,i[e+76>>2]=0,f=e+72|0,w8(e+52|0,i[k+48>>2],A,f);e:{if(i[e+52>>2])break e;i[e+48>>2]=0,i[e+40>>2]=0,i[e+44>>2]=0,Uk(e+20|0,e+40|0,f);A:{if(i[e+20>>2])break A;r=i[k+48>>2],f=i[r+76>>2],u=i[r+80>>2],u&&(i[u+4>>2]=i[u+4>>2]+1);f:{if(!f)break f;oi(e+8|0,f,A),_=i[e+12>>2],r=i[e+8>>2];k:{if((m(Q[e+42>>1],Q[e+40>>1])|0)!=_-r>>2||(w=(r|0)==(_|0),w)||(t=i[k+16>>2],(t|0)==(h|0)))break k;k=r;n:for(;;){for(v=i[k>>2],f=t;;){if((v|0)==i[f+16>>2]){if(k=k+4|0,(_|0)!=(k|0))continue n;if(w)break k;for(;;){t:{if(f=i[h>>2],!f){n=0;break t}for(k=i[r>>2],A=h;t=k>>>0>k0[f+16>>2],A=t?A:f,f=i[(t<<2)+f>>2],!!f;);if((A|0)==(h|0)){n=0;break t}if(k>>>0>2]){n=0;break t}k=i[A+20>>2],f=i[A+24>>2];o:{if(!f){A=i[k+52>>2];break o}if(t=i[f+4>>2],w=t+1|0,i[f+4>>2]=w,A=i[k+52>>2],i[f+4>>2]=t,w)break o;V[i[i[f>>2]+8>>2]](f),g(f)}if(n=(A|0)!=0|n,r=r+4|0,(_|0)!=(r|0))continue}break}r=i[e+8>>2];break k}A=i[f+4>>2];t:{if(A){for(;;)if(f=A,A=i[f>>2],!A)break t}for(;A=f,f=i[f+8>>2],(A|0)!=i[f>>2];);}if((f|0)==(h|0))break}break}}if(!r)break f;i[e+12>>2]=r,G(r)}if(!u||(f=i[u+4>>2],i[u+4>>2]=f-1,f))break A;V[i[i[u>>2]+8>>2]](u),g(u)}if(l[e+39|0]>=0)break e;G(i[e+28>>2])}l[e+71|0]<0&&G(i[e+60>>2]),f=i[e+72>>2],f&&(i[e+76>>2]=f,G(f)),f=s[e+95|0]}if(f<<24>>24>=0)break i;G(i[e+84>>2])}i:{if(!o||(f=i[o+4>>2],i[o+4>>2]=f-1,f))break i;V[i[i[o>>2]+8>>2]](o),g(o)}return B=e+96|0,n&1}function ii(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0;n=B-160|0,B=n;i:{r:{if(t=i[A>>2],A=i[t+56>>2],t=i[t+60>>2],(A|0)!=(t|0))for(;;){if(i[A>>2]==(r|0))break r;if(A=A+16|0,(t|0)==(A|0))break}i[n+24>>2]=54496,i[n+80>>2]=54516,e=i[13633],i[n+16>>2]=e,A=i[e-12>>2],e=n+16|0,i[A+e>>2]=i[13634],i[n+20>>2]=0,A=e+i[i[n+16>>2]-12>>2]|0,k=n+28|0,b0(A,k),i[A+72>>2]=0,i[A+76>>2]=-1,A=i[13635],i[n+24>>2]=A,t=i[A-12>>2],A=n+24|0,i[t+A>>2]=i[13636],t=i[13632],i[n+16>>2]=t,i[e+i[t-12>>2]>>2]=i[13637],i[n+80>>2]=54516,i[n+16>>2]=54476,i[n+24>>2]=54496,e=$0(k),i[e>>2]=53552,i[n+68>>2]=0,i[n+72>>2]=0,i[n+60>>2]=0,i[n+64>>2]=0,i[n+76>>2]=24,x(L0(x(A,16351,9),r),2059,46),r=n+4|0,i2(r,e),r0(f,2,116,r),l[n+15|0]<0&&G(i[n+4>>2]),f=i[13631],i[n+16>>2]=f,i[i[f-12>>2]+(n+16|0)>>2]=i[13639],i[n+24>>2]=i[13640],i[e>>2]=53552,l[n+71|0]<0&&G(i[n+60>>2]),K0(e),T0(n+80|0);break i}if(t=i[A+4>>2],u=i[A+8>>2],(t|0)!=(u|0))for(;;){if(A=Q[t+2>>1],o=i[e+36>>2],A>>>0>i[e+40>>2]-o>>3>>>0){i[n+24>>2]=54496,i[n+80>>2]=54516,e=i[13633],i[n+16>>2]=e,A=i[e-12>>2],e=n+16|0,i[A+e>>2]=i[13634],i[n+20>>2]=0,A=e+i[i[n+16>>2]-12>>2]|0,k=n+28|0,b0(A,k),i[A+72>>2]=0,i[A+76>>2]=-1,A=i[13635],i[n+24>>2]=A,o=i[A-12>>2],A=n+24|0,i[o+A>>2]=i[13636],o=i[13632],i[n+16>>2]=o,i[e+i[o-12>>2]>>2]=i[13637],i[n+80>>2]=54516,i[n+16>>2]=54476,i[n+24>>2]=54496,e=$0(k),i[e>>2]=53552,i[n+68>>2]=0,i[n+72>>2]=0,i[n+60>>2]=0,i[n+64>>2]=0,i[n+76>>2]=24,x(L0(x(x(L0(x(A,16322,28),Q[t+2>>1]),18971,11),16371,4),r),2106,23),r=n+4|0,i2(r,e),r0(f,2,115,r),l[n+15|0]<0&&G(i[n+4>>2]),f=i[13631],i[n+16>>2]=f,i[i[f-12>>2]+(n+16|0)>>2]=i[13639],i[n+24>>2]=i[13640],i[e>>2]=53552,l[n+71|0]<0&&G(i[n+60>>2]),K0(e),T0(n+80|0);break i}if(A){h=o+(A<<3)|0,o=h-8|0,A=i[k+4>>2];r:{if(A>>>0>2]){i[A>>2]=i[o>>2],o=i[h-4>>2],i[A+4>>2]=o,o&&(i[o+4>>2]=i[o+4>>2]+1),A=A+8|0;break r}A=Q2(k,o)}i[k+4>>2]=A}if(t=t+4|0,(u|0)==(t|0))break}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=n+160|0}function yr(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0;if(h=B-2048|0,B=h,_=5,(e|0)>=2){for(_=0,n=e;t=_,_=t+1|0,Z=n>>>0>3,n=n>>>1|0,!!Z;);_=4-t|0}i:{if((e|0)<=0)break i;for(p=1<>>0>=3)for(;X[(m(e,n)+o<<1)+h>>1]=0,X[(m(n|1,e)+o<<1)+h>>1]=0,X[(m(n|2,e)+o<<1)+h>>1]=0,X[(m(n|3,e)+o<<1)+h>>1]=0,n=n+4|0,t=t+4|0,(y|0)!=(t|0););if(!C)break r;for(;X[(m(e,n)+o<<1)+h>>1]=0,n=n+1|0,k=k+1|0,(C|0)!=(k|0););break r}if(n=w+1|0,k=t-1|0,!!Q[v+(m(k,e)<<1)>>1])break}for(E=t&2147483646,J=t&1,k=0;;){if(n=0,t=0,u=0,(w|0)!=(I|0))for(;R=m(X[v+(m(e,n)<<1)>>1],l[((n<<_<<5)+k|0)+43984|0])+t|0,t=n|1,t=R+m(X[v+(m(t,e)<<1)>>1],l[((t<<_<<5)+k|0)+43984|0])|0,n=n+2|0,u=u+2|0,(E|0)!=(u|0););if(u=(m(e,k)+o<<1)+h|0,J&&(t=m(X[v+(m(e,n)<<1)>>1],l[((n<<_<<5)+k|0)+43984|0])+t|0),n=t- -64>>7,X[u>>1]=(n|0)<(Z|0)?Z:(n|0)<(p|0)?n:W,k=k+1|0,(k|0)==(e|0))break}}if(o=o+1|0,(o|0)==(e|0))break}if((e|0)<=0)break i;for(C=e&2147483640,p=e&7,W=1<>A,v=0;;){o=m(e,v),n=0,k=e;r:{e:{for(;;){if(Z=n,r=k,(k|0)<=0)break e;if(n=n+1|0,k=k-1|0,!!Q[(o+k<<1)+h>>1])break}for(y=r&2147483646,r=r&1,E=(o<<2)+f|0,k=0;;){if(n=0,t=0,u=0,(Z|0)!=(I|0))for(;J=m(X[(n+o<<1)+h>>1],l[((n<<_<<5)+k|0)+43984|0])+t|0,t=n|1,t=J+m(X[(t+o<<1)+h>>1],l[((t<<_<<5)+k|0)+43984|0])|0,n=n+2|0,u=u+2|0,(y|0)!=(u|0););if(u=E+(k<<2)|0,r&&(t=m(X[(n+o<<1)+h>>1],l[((n<<_<<5)+k|0)+43984|0])+t|0),i[u>>2]=t+W>>A,k=k+1|0,(k|0)==(e|0))break}break r}if(n=(o<<2)+f|0,t=0,k=0,u=0,I>>>0>=7)for(;r=n+(k<<2)|0,i[r>>2]=w,i[r+4>>2]=w,i[r+8>>2]=w,i[r+12>>2]=w,i[r+16>>2]=w,i[r+20>>2]=w,i[r+24>>2]=w,i[r+28>>2]=w,k=k+8|0,u=u+8|0,(C|0)!=(u|0););if(!p)break r;for(;i[n+(k<<2)>>2]=w,k=k+1|0,t=t+1|0,(p|0)!=(t|0););}if(v=v+1|0,(v|0)==(e|0))break}}B=h+2048|0}function IA(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0;t=B-80|0,B=t,i[t+72>>2]=0,i[t+76>>2]=0,u=i[i[e>>2]+20>>2],i[t+40>>2]=0,i[t+44>>2]=0,X[t+48>>1]=0,i[t+52>>2]=0,X[t+28>>1]=5,i[t+32>>2]=0,i[t+36>>2]=0,l[t+68|0]=0,i[t+60>>2]=2,i[t+64>>2]=2,l[t+56|0]=1;i:{if(!n)break i;r:switch(s[n|0]-1|0){case 4:o=i[n+32>>2],i[t+56>>2]=i[n+28>>2],i[t+60>>2]=o,o=i[n+40>>2],i[t+64>>2]=i[n+36>>2],i[t+68>>2]=o;case 3:i[t+52>>2]=i[n+24>>2];case 2:l[t+49|0]=s[n+21|0];case 1:l[t+48|0]=s[n+20|0];break;case 0:break r;default:break i}l[t+29|0]=s[n+1|0],i[t+32>>2]=i[n+4>>2],i[t+36>>2]=i[n+8>>2],i[t+40>>2]=i[n+12>>2],i[t+44>>2]=i[n+16>>2]}n=t+8|0,o=B-48|0,B=o,h=u,u=t+72|0,w=t+28|0,f6(o+24|0,i[e+8>>2],h,u,A,w,0);i:{if(i[o+24>>2]){A=i[o+28>>2],i[n>>2]=i[o+24>>2],i[n+4>>2]=A,i[n+16>>2]=i[o+40>>2],A=i[o+36>>2],i[n+8>>2]=i[o+32>>2],i[n+12>>2]=A,i[o+40>>2]=0,i[o+32>>2]=0,i[o+36>>2]=0;break i}h=i[u>>2],_=i[h+36>>2],k=(k|0)==99?_:k;r:{if(A=(A|0)==99?i[h+32>>2]:A,(k|0)==(_|0)&(A|0)==i[h+32>>2])break r;h=s[w+20|0],i[o+16>>2]=0,i[o+20>>2]=0,N8(o+4|0,u,A,k,o+16|0,((h|0)!=0)<<3,w+28|0),k=i[o+4>>2],h=i[o+8>>2],i[o+4>>2]=0,i[o+8>>2]=0,A=i[u+4>>2],i[u>>2]=k,i[u+4>>2]=h;e:{if(!A||(k=i[A+4>>2],i[A+4>>2]=k-1,k))break e;V[i[i[A>>2]+8>>2]](A),g(A)}A=i[o+8>>2];e:{if(!A||(k=i[A+4>>2],i[A+4>>2]=k-1,k))break e;V[i[i[A>>2]+8>>2]](A),g(A)}A=i[o+20>>2];e:{if(!A||(k=i[A+4>>2],i[A+4>>2]=k-1,k))break e;V[i[i[A>>2]+8>>2]](A),g(A)}if(i[u>>2])break r;if(l[o+4|0]=0,l[o+15|0]=0,r0(n,4,3003,o+4|0),l[o+15|0]>=0)break i;G(i[o+4>>2]);break i}if(A=i[19565],i[n>>2]=i[19564],i[n+4>>2]=A,A=n+8|0,l[78275]>=0){k=i[19567],i[A>>2]=i[19566],i[A+4>>2]=k,i[A+8>>2]=i[19568];break i}_0(A,i[19566],i[19567])}l[o+43|0]<0&&G(i[o+32>>2]),B=o+48|0,i[t+8>>2]||(A=r,r=U(8),i[A>>2]=r,A=i[t+72>>2],k=i[t+76>>2],i[t+72>>2]=0,i[t+76>>2]=0,i[r>>2]=A,i[r+4>>2]=k,n=78256),P0(f,n,i[e>>2]),l[t+27|0]<0&&G(i[t+16>>2]),f=i[t+76>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=t+80|0}function Sk(f,e,r,A,k,n,t,o,u){var h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0;h=B-128|0,B=h;i:{r:{e:{if(!fi(n,t,o,u,0,0,0,0))break e;w=u&65535,v=u>>>16&32767;A:f:{if((v|0)!=32767){if(Z=4,v)break f;Z=n|o|(t|w)?3:2;break A}Z=!(n|o|(t|w))}if(!Z)break e;if(y=k>>>16|0,W=y&32767,(W|0)!=32767)break r}d2(h+16|0,e,r,A,k,n,t,o,u),e=i[h+16>>2],A=i[h+20>>2],k=i[h+24>>2],r=i[h+28>>2],Bk(h,e,A,k,r,e,A,k,r),A=i[h+8>>2],k=i[h+12>>2],o=i[h>>2],u=i[h+4>>2];break i}if(p=A,Z=k&2147483647,w=Z,v=o,_=u&2147483647,(fi(e,r,p,w,n,t,o,_)|0)<=0){if(fi(e,r,p,w,n,t,o,_)){o=e,u=r;break i}d2(h+112|0,e,r,A,k,0,0,0,0),A=i[h+120>>2],k=i[h+124>>2],o=i[h+112>>2],u=i[h+116>>2];break i}if(C=u>>>16&32767,W?(u=r,o=e):(d2(h+96|0,e,r,p,Z,0,0,0,1081540608),p=i[h+104>>2],o=i[h+108>>2],Z=o,W=(o>>>16|0)-120|0,u=i[h+100>>2],o=i[h+96>>2]),C||(d2(h+80|0,n,t,v,_,0,0,0,1081540608),v=i[h+88>>2],n=i[h+92>>2],_=n,C=(n>>>16|0)-120|0,t=i[h+84>>2],n=i[h+80>>2]),I=v,E=_&65535|65536,Z=Z&65535|65536,(W|0)>(C|0)){for(;;){_=p-I|0,w=(t|0)==(u|0)&n>>>0>o>>>0|t>>>0>u>>>0,v=_-w|0,w=(Z-((p>>>0>>0)+E|0)|0)-(w>>>0>_>>>0)|0;r:{if((w|0)>=0|(w|0)>0){if(p=o,o=o-n|0,u=u-((n>>>0>p>>>0)+t|0)|0,!(o|v|(u|w))){d2(h+32|0,e,r,A,k,0,0,0,0),A=i[h+40>>2],k=i[h+44>>2],o=i[h+32>>2],u=i[h+36>>2];break i}w=w<<1|v>>>31,p=v<<1|u>>>31;break r}w=Z<<1|p>>>31,p=p<<1|u>>>31}if(Z=w,w=u<<1|o>>>31,o=o<<1,u=w,W=W-1|0,!((C|0)<(W|0)))break}W=C}_=p-I|0,w=(t|0)==(u|0)&n>>>0>o>>>0|t>>>0>u>>>0,v=_-w|0,w=(Z-((p>>>0>>0)+E|0)|0)-(w>>>0>_>>>0)|0,_=w;r:{if((w|0)<0){v=p,_=Z;break r}if(p=o,o=o-n|0,u=u-((n>>>0>p>>>0)+t|0)|0,o|v|(u|_))break r;d2(h+48|0,e,r,A,k,0,0,0,0),A=i[h+56>>2],k=i[h+60>>2],o=i[h+48>>2],u=i[h+52>>2];break i}if((_|0)==65535|_>>>0<65535)for(;e=u>>>31|0,W=W-1|0,Z=u<<1|o>>>31,o=o<<1,u=Z,r=e,e=_<<1|v>>>31,v=r|v<<1,_=e,e>>>0<65536;);if(e=y&32768,(W|0)<=0){d2(h- -64|0,o,u,v,_&65535|(e|W+120)<<16,0,0,0,1065811968),A=i[h+72>>2],k=i[h+76>>2],o=i[h+64>>2],u=i[h+68>>2];break i}A=v,k=_&65535|(e|W)<<16}i[f>>2]=o,i[f+4>>2]=u,i[f+8>>2]=A,i[f+12>>2]=k,B=h+128|0}function Fr(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0;if(u=B-2048|0,B=u,w=5,(r|0)>=2){for(w=0,k=r;n=w,w=n+1|0,t=k>>>0>3,k=k>>>1|0,!!t;);w=4-n|0}i:{if((r|0)<=0)break i;for(W=r&2147483644,Z=r&3,p=r-1|0;;){_=(o<<1)+A|0,k=0,n=r;r:{for(;;){if(v=k,t=n,(n|0)<=0){if(n=0,k=0,t=0,p>>>0>=3)for(;X[(m(r,k)+o<<1)+u>>1]=0,X[(m(k|1,r)+o<<1)+u>>1]=0,X[(m(k|2,r)+o<<1)+u>>1]=0,X[(m(k|3,r)+o<<1)+u>>1]=0,k=k+4|0,t=t+4|0,(W|0)!=(t|0););if(!Z)break r;for(;X[(m(r,k)+o<<1)+u>>1]=0,k=k+1|0,n=n+1|0,(Z|0)!=(n|0););break r}if(k=v+1|0,n=t-1|0,!!Q[_+(m(n,r)<<1)>>1])break}for(C=t&2147483646,I=t&1,n=0;;){if(k=0,t=0,h=0,(v|0)!=(p|0))for(;y=m(X[_+(m(r,k)<<1)>>1],l[((k<>1],l[((t<>1],l[((k<>7,k=(k|0)>=32767?32767:k,X[h>>1]=(k|0)<=-32768?-32768:k,n=n+1|0,(n|0)==(r|0))break}}if(o=o+1|0,(o|0)==(r|0))break}if((r|0)<=0)break i;for(Z=r&2147483646,W=r&1,o=0;;){_=m(r,o),k=0,n=r;r:{e:{for(;;){if(v=k,A=n,(n|0)<=0)break e;if(k=k+1|0,n=n-1|0,!!Q[(_+n<<1)+u>>1])break}for(C=A&2147483646,I=A&1,y=m(e,o)+f|0,n=0;;){if(k=0,t=0,h=0,(v|0)!=(p|0))for(;A=k|1,t=(m(X[(k+_<<1)+u>>1],l[((k<>1],l[((A<>1],l[((k<>12)+h|0,l[k|0]=(A|0)>=0?(A|0)>=255?255:A:0,n=n+1|0,(n|0)==(r|0))break}break r}if(n=m(e,o)+f|0,k=0,t=0,p)for(;A=k+n|0,v=s[A|0],l[A|0]=v>>>0>=255?255:v,v=A,A=s[A+1|0],l[v+1|0]=A>>>0>=255?255:A,k=k+2|0,t=t+2|0,(Z|0)!=(t|0););if(!W)break r;n=k+n|0,A=s[n|0],l[n|0]=A>>>0>=255?255:A}if(o=o+1|0,(o|0)==(r|0))break}}B=u+2048|0}function Aw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,k=i[13708],i[A+12>>2]=k,n=i[k-12>>2],k=A+12|0,i[n+k>>2]=i[13709],u=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(u,n),i[u+72>>2]=0,i[u+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,u=$0(n),i[u>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),o=k,t=n,k=l[A+159|0],n=(k|0)<0,x(o,n?i[A+148>>2]:t,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,k=l[A+159|0],n=(k|0)<0,x(A+12|0,n?i[A+148>>2]:t,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(k,21668,22),x(H0(k,i[e+56>>2]),19321,3),x(H0(k,i[e+60>>2]),19321,3),x(H0(k,i[e+64>>2]),31338,1),n=A+148|0,W0(n,r),o=k,t=n,k=l[A+159|0],n=(k|0)<0,x(o,n?i[A+148>>2]:t,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(k,18880,12);i:{if(s[e+68|0]==1){x(k,31193,12),n=A+148|0,W0(n,r),o=k,t=n,k=l[A+159|0],n=(k|0)<0,x(o,n?i[A+148>>2]:t,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),x(Q4(x(Q4(x(Q4(x(Q4(x(A+12|0,14777,7),i0[e+72>>3]),16376,1),i0[e+80>>3]),16376,1),i0[e+88>>3]),16376,1),i0[e+96>>3]),30511,2);break i}k=A+12|0,x(k,31106,9),n=A+148|0,W0(n,r),o=k,t=n,k=l[A+159|0],n=(k|0)<0,x(o,n?i[A+148>>2]:t,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(Q4(x(k,21726,9),i0[e+104>>3]),31338,1),n=A+148|0,W0(n,r),o=k,t=n,k=l[A+159|0],n=(k|0)<0,x(o,n?i[A+148>>2]:t,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(Q4(x(k,20539,9),i0[e+112>>3]),31338,1),n=A+148|0,W0(n,r),o=k,t=n,k=l[A+159|0],n=(k|0)<0,x(o,n?i[A+148>>2]:t,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),x(Q4(x(A+12|0,21695,9),i0[e+120>>3]),31338,1)}k=A+148|0,W0(k,r),n=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:n,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(L0(x(r,21298,28),i[e+128>>2]),31338,1),i2(f,u),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[u>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(u),T0(A+68|0),B=A+160|0}function fw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0;A=B-32|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(A,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(k=i[19565],i[A>>2]=i[19564],i[A+4>>2]=k,k=A+8|0,l[78275]>=0){n=i[19567],i[k>>2]=i[19566],i[k+4>>2]=n,i[k+8>>2]=i[19568];break i}_0(k,i[19566],i[19567])}l[A+19|0]<0&&G(i[A+8>>2]),k=s[e+48|0];i:{if(k>>>0>=4){h4(f,e,11243);break i}r:{if(k>>>0<=1&&(t=e,o=t2(r),i[t+56>>2]=o,t=e,o=t2(r),X[t+60>>1]=o,B4(A+20|0,r),l[e+87|0]<0&&G(i[e+76>>2]),k=i[A+24>>2],i[e+76>>2]=i[A+20>>2],i[e+80>>2]=k,i[e+84>>2]=i[A+28>>2],B4(A+20|0,r),l[e+99|0]<0&&G(i[e+88>>2]),k=i[A+24>>2],i[e+88>>2]=i[A+20>>2],i[e+92>>2]=k,i[e+96>>2]=i[A+28>>2],B4(A+20|0,r),l[e+111|0]<0&&G(i[e+100>>2]),k=i[A+24>>2],i[e+100>>2]=i[A+20>>2],i[e+104>>2]=k,i[e+108>>2]=i[A+28>>2],k=s[e+48|0],k>>>0<2))break r;l[e+124|0]=l[e+52|0]&1;e:{if((k|0)==2){k=t2(r);break e}k=D0(r)}if(i[e+56>>2]=k,t=e,o=t2(r),X[t+60>>1]=o,k=D0(r),k&&(l[e+75|0]<0&&G(i[e+64>>2]),l[e+75|0]=4,l[e+68|0]=0,i[e+64>>2]=k<<24|(k&65280)<<8|(k>>>8&65280|k>>>24)),B4(A+20|0,r),l[e+87|0]<0&&G(i[e+76>>2]),n=i[A+24>>2],i[e+76>>2]=i[A+20>>2],i[e+80>>2]=n,i[e+84>>2]=i[A+28>>2],(k|0)!=1970432288){if((k|0)!=1835625829)break r;B4(A+20|0,r),l[e+99|0]<0&&G(i[e+88>>2]),k=i[A+24>>2],i[e+88>>2]=i[A+20>>2],i[e+92>>2]=k,i[e+96>>2]=i[A+28>>2],B4(A+20|0,r),l[e+111|0]<0&&G(i[e+100>>2]),k=i[A+24>>2],i[e+100>>2]=i[A+20>>2],i[e+104>>2]=k,i[e+108>>2]=i[A+28>>2];break r}B4(A+20|0,r),l[e+123|0]<0&&G(i[e+112>>2]),k=i[A+24>>2],i[e+112>>2]=i[A+20>>2],i[e+116>>2]=k,i[e+120>>2]=i[A+28>>2]}if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(f,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function kw(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0;o=B-16|0,B=o,t=i[k>>2],n=t+i[r>>2]|0;i:{if(i[r+4>>2]-n>>>0<(A|0)/8<<1>>>0){if(e=U(48),i[o+4>>2]=e,i[o+8>>2]=44,i[o+12>>2]=-2147483600,r=s[6647]|s[6648]<<8|(s[6649]<<16|s[6650]<<24),A=s[6643]|s[6644]<<8|(s[6645]<<16|s[6646]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+44|0]=0,r=s[6683]|s[6684]<<8|(s[6685]<<16|s[6686]<<24),l[e+40|0]=r,l[e+41|0]=r>>>8,l[e+42|0]=r>>>16,l[e+43|0]=r>>>24,r=s[6679]|s[6680]<<8|(s[6681]<<16|s[6682]<<24),A=s[6675]|s[6676]<<8|(s[6677]<<16|s[6678]<<24),l[e+32|0]=A,l[e+33|0]=A>>>8,l[e+34|0]=A>>>16,l[e+35|0]=A>>>24,l[e+36|0]=r,l[e+37|0]=r>>>8,l[e+38|0]=r>>>16,l[e+39|0]=r>>>24,r=s[6671]|s[6672]<<8|(s[6673]<<16|s[6674]<<24),A=s[6667]|s[6668]<<8|(s[6669]<<16|s[6670]<<24),l[e+24|0]=A,l[e+25|0]=A>>>8,l[e+26|0]=A>>>16,l[e+27|0]=A>>>24,l[e+28|0]=r,l[e+29|0]=r>>>8,l[e+30|0]=r>>>16,l[e+31|0]=r>>>24,r=s[6663]|s[6664]<<8|(s[6665]<<16|s[6666]<<24),A=s[6659]|s[6660]<<8|(s[6661]<<16|s[6662]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[6655]|s[6656]<<8|(s[6657]<<16|s[6658]<<24),A=s[6651]|s[6652]<<8|(s[6653]<<16|s[6654]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,136,o+4|0),l[o+15|0]>=0)break i;G(i[o+4>>2]);break i}u=s[n|0],h=s[n+1|0];r:{if((A|0)==32){t=t+4|0,n=s[n+3|0]|(h<<16|u<<24|s[n+2|0]<<8);break r}t=t+2|0,n=(h<<16|u<<24)>>16}i[k>>2]=t,i[e+4>>2]=n,n=i[k>>2],r=n+i[r>>2]|0,t=s[r|0],u=s[r+1|0];r:{if((A|0)==32){A=n+4|0,r=s[r+3|0]|(u<<16|t<<24|s[r+2|0]<<8);break r}A=n+2|0,r=(u<<16|t<<24)>>16}if(i[k>>2]=A,i[e+8>>2]=r,e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=o+16|0}function Ok(f,e,r,A){var k=0,n=0,t=0,o=0,u=0;k=i[e>>2];i:{r:{e:{A:{f:{k:{n:{t:{o:{u:{l:{s:{if(!A||(t=i[A>>2],!t))break s;if(!f){A=r;break u}i[A>>2]=0,A=r;break l}s:{if(!i[i[23985]>>2]){if(!f)break s;if(!r)break i;for(t=r;;){if(A=l[k|0],A){if(i[f>>2]=A&57343,f=f+4|0,k=k+1|0,t=t-1|0,t)continue;break i}break}return i[f>>2]=0,i[e>>2]=0,r-t|0}if(A=r,!f)break o;break n}return G2(k)}n=1;break n}n=0;break t}n=1}for(;;){if(!n){if(n=s[k|0]>>>3|0,(n-16|n+(t>>26))>>>0>7)break k;n=k+1|0;t:{if(!(t&33554432))break t;if((s[n|0]&192)!=128){k=k-1|0;break A}if(n=k+2|0,!(t&524288))break t;if((s[n|0]&192)!=128){k=k-1|0;break A}n=k+3|0}k=n,A=A-1|0,n=1;continue}for(;;){t=s[k|0];t:{if(k&3|t-1>>>0>126||(t=i[k>>2],(t|t-16843009)&-2139062144))break t;for(;A=A-4|0,t=i[k+4>>2],k=k+4|0,!((t-16843009|t)&-2139062144););}if(n=t&255,n-1>>>0<=126){A=A-1|0,k=k+1|0;continue}break}if(n=n-194|0,n>>>0>50)break f;k=k+1|0,t=i[(n<<2)+55504>>2],n=0}}for(;;){if(!n){if(!A)break i;for(;;){n:{n=s[k|0],o=n-1|0;t:{o:{if(o>>>0>126){t=n;break o}if(k&3|A>>>0<5)break t;u:{for(;;){if(t=i[k>>2],(t|t-16843009)&-2139062144)break u;if(i[f>>2]=t&255,i[f+4>>2]=s[k+1|0],i[f+8>>2]=s[k+2|0],i[f+12>>2]=s[k+3|0],f=f+16|0,k=k+4|0,A=A-4|0,!(A>>>0>4))break}t=s[k|0]}n=t&255,o=n-1|0}if(o>>>0>126)break n}if(i[f>>2]=n,f=f+4|0,k=k+1|0,A=A-1|0,A)continue;break i}break}if(n=n-194|0,n>>>0>50)break f;k=k+1|0,t=i[(n<<2)+55504>>2],n=1;continue}if(u=s[k|0],n=u>>>3|0,(n-16|n+(t>>26))>>>0>7)break k;n:{t:{o=k+1|0,n=u-128|t<<6;o:{if((n|0)>=0)break o;if(o=s[o|0]-128|0,o>>>0>63)break t;if(u=n<<6,n=o|u,o=k+2|0,(u|0)>=0)break o;if(o=s[o|0]-128|0,o>>>0>63)break t;n=o|n<<6,o=k+3|0}k=o,i[f>>2]=n,A=A-1|0,f=f+4|0;break n}i[23944]=25,k=k-1|0;break e}n=0}}if(k=k-1|0,t)break A;t=s[k|0]}if(t&255)break A;return f&&(i[f>>2]=0,i[e>>2]=0),r-A|0}if(i[23944]=25,!f)break r}i[e>>2]=k}return-1}return i[e>>2]=k,r}function jk(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0;i:{r:{if(i[f+64>>2])break r;A=2512;e:{A:{f:{k:{n:{t:{o:{u:{l:{s:{h:{w:{_:{v:switch(t=r&-3,t-1|0){case 4:case 20:break o;case 19:break u;case 8:case 24:break l;case 23:break h;case 7:break w;case 0:case 16:break _;case 15:break e;case 1:case 2:case 3:case 5:case 6:case 9:case 10:case 13:case 14:case 17:case 18:case 21:case 22:case 25:case 26:break A;case 12:case 28:break f;case 27:break n;case 11:break t;default:break v}v:switch(t-48|0){case 4:break u;case 0:break e;case 1:case 2:case 3:break A;default:break v}switch(t-56|0){case 0:break s;case 4:break k;default:break A}}A=14717;break e}A=6086;break e}A=18145;break e}A=18142;break e}A=18148;break e}A=14080;break e}A=14104;break e}A=14083;break e}A=14127;break e}A=14123;break e}A=14131;break e}A=0}if(t=A,!A)break r;o=B-16|0,B=o;e:{A:{if(!zi(14135,l[A|0])){i[23944]=28;break A}if(A=2,zi(t,43)||(A=s[t|0]!=114),A=zi(t,120)?A|128:A,A=zi(t,101)?A|524288:A,k=A,u=A|64,A=s[t|0],k=(A|0)==114?k:u,k=(A|0)==119?k|512:k,i[o>>2]=438,i[o+4>>2]=0,k=Xs(-100,e|0,((A|0)==97?k|1024:k)|32768,o|0)|0,k>>>0>=4294963201&&(i[23944]=0-k,k=-1),(k|0)<0)break e;n=B-32|0,B=n;f:{k:{n:{if(!zi(14135,l[t|0])){i[23944]=28;break n}if(A=Z2(1176),A)break k}e=0;break f}B0(A,0,144),zi(t,43)||(i[A>>2]=s[t|0]==114?8:4);k:{if(s[t|0]!=97){e=i[A>>2];break k}e=c5(k|0,3,0)|0,e&1024||(e=e|1024,i[n+16>>2]=e,i[n+20>>2]=e>>31,c5(k|0,4,n+16|0)|0),e=i[A>>2]|128,i[A>>2]=e}i[A+80>>2]=-1,i[A+48>>2]=1024,i[A+60>>2]=k,i[A+44>>2]=A+152;k:{if(e&8||(i[n>>2]=n+24,i[n+4>>2]=0,Ws(k|0,21523,n|0)|0))break k;i[A+80>>2]=10}i[A+40>>2]=973,i[A+36>>2]=972,i[A+32>>2]=979,i[A+12>>2]=971,s[95789]||(i[A+76>>2]=-1),e=i[23946],i[A+56>>2]=e,e&&(i[e+52>>2]=A),i[23946]=A,e=A}if(B=n+32|0,n=e,n)break e;ik(k|0)|0}n=0}if(B=o+16|0,i[f+64>>2]=n,!n)break r;if(i[f+88>>2]=r,!(r&2)||!Ce(n,0,0,2))break i;B3(i[f+64>>2]),i[f+64>>2]=0}return 0}return f}function Pk(f,e,r,A,k,n,t,o,u,h,w,_,v){var Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0;p=B,D=p,p=p-19808&-32,B=p,Z=A,A=i[e+16856>>2],C=m(Z,2/(A|0)|0),n=((n|0)/(A|0)|0)+(C>>3)|0,W=i[e+16852>>2],Z=m(2/(W|0)|0,r),r=((k|0)/(W|0)|0)+(Z>>3)|0,k=i[e+488>>2]/(A|0)|0,A=i[e+484>>2]/(W|0)|0;i:{W=Z&7,Z=C&7;r:{if(!(W|Z)){if(e=i[e+16840>>2],!((r|0)<0|(A|0)<(r+w|0)|((n|0)<0|(k|0)<(n+_|0)))){if(e=((r<<1)+u|0)+(m(n,h)<<1)|0,(v|0)<=8){V[i[f+204>>2]](t,o,e,h,w,_,0,0,0),B=D;return}V[i[f+284>>2]](t,o,e,h,w,_,0,0,0,v),B=D;return}if((_|0)<=0|(w|0)<=0)break r;for(v=14-e|0,E=k-1|0,p=A-1|0,J=w&2147483646,R=w&1,f=0;;){if(e=f+n|0,W=(m((e|0)>=0?(e|0)<(k|0)?e:E:0,h)<<1)+u|0,C=(m(f,o)<<1)+t|0,e=0,y=0,(w|0)!=1)for(;Z=e+r|0,X[C+(e<<1)>>1]=Q[W+(((Z|0)>=0?(A|0)>(Z|0)?Z:p:0)<<1)>>1]<>1]=Q[W+(((Z|0)>=0?(A|0)>(Z|0)?Z:p:0)<<1)>>1]<>1]=Q[W+(((e|0)>=0?(e|0)<(A|0)?e:p:0)<<1)>>1]<(A-2|0)|((n|0)<=0|(n+_|0)>(k-2|0)))){e=((r<<1)+u|0)+(m(n,h)<<1)|0;break e}if(!((_|0)<-2|(w|0)<-2))for(C=-1,H=k-1|0,y=A-1|0,e=_+2|0,a=(e|0)>0?e:0,e=w+3|0,S=e&-2,q=e&1;;){if(e=n+C|0,E=(m((e|0)>=0?(e|0)<(k|0)?e:H:0,h)<<1)+u|0,J=m(C,80)+80|0,e=-1,R=0,(w|0)!=-2)for(;z=e+1|0,I=e+r|0,X[p+(J+z<<1)>>1]=Q[E+(((I|0)>=0?(A|0)>(I|0)?I:y:0)<<1)>>1],e=e+2|0,I=r+z|0,X[p+(J+e<<1)>>1]=Q[E+(((I|0)>=0?(A|0)>(I|0)?I:y:0)<<1)>>1],R=R+2|0,(S|0)!=(R|0););if(q&&(I=p+(e+J<<1)|0,e=e+r|0,X[I+2>>1]=Q[E+(((e|0)>=0?(e|0)<(A|0)?e:y:0)<<1)>>1]),C=C+1|0,(a|0)==(C|0))break}h=80,e=p+162|0}A=(((v|0)<9?44:124)+f|0)+172|0;e:{if(!(!W|!Z)||(r=(v|0)<9,A=((r?36:116)+f|0)+172|0,W))break e;if(!Z)break i;W=0,A=((r?40:120)+f|0)+172|0}r=A,V[i[r>>2]](t,o,e,h,w,_,W,Z,p+10720|0,v)}B=D;return}C0(9349,13964,269,14609),P()}function nw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0;k=B+-64|0,B=k,ct(i[e>>2]),i[r>>2]=0,A=i[19373],n=i[19372];i:{r:{for(;;){e:{if(i[k+44>>2]=0,Ak(i[e>>2],k+44|0))break e;if(o=H9(i[e>>2]),o){if(A=i[r>>2],A&&G4(A),A=i[o+20>>2],p=A,QA(k+52|0,i[i[10336]+o>>2],i[i[10339]+o>>2],!A<<1,A,r),A=i[k+52>>2],A){t=i[k+60>>2],u=i[k+56>>2];break r}for(n=0,_=i[i[o+124>>2]+i[10342]>>2],W=(_+7|0)/8|0;;){if(n>>>0<=2?A=i[i[o+124>>2]+i[(n<<2)+41368>>2]>>2]:A=0,(A|0)!=(_|0)){G4(i[r>>2]),t=12169,A=4,u=3003;break r}t=41328,v=U9(o,n,k+48|0),u=129,A=7;A:{if(h=n>>>0<=2?i[i[(n<<2)+41344>>2]+o>>2]:0,w=n>>>0<=2?i[i[(n<<2)+41356>>2]+o>>2]:0,!((h|0)<=0|(w|0)<=0)){if(u=i[(n<<2)+41332>>2],Z3(k+52|0,i[r>>2],u,h,w,_),A=i[k+52>>2],!A)break A;u=i[k+56>>2],t=i[k+60>>2]}G4(i[r>>2]);break r}if(t=m(h,W),A=0,h=T6(i[r>>2],u,k+52|0),(w|0)!=1)for(C=w&2147483646,u=0;l0(h+m(i[k+52>>2],A)|0,m(i[k+48>>2],A)+v|0,t),Z=A|1,l0(h+m(Z,i[k+52>>2])|0,m(i[k+48>>2],Z)+v|0,t),A=A+2|0,u=u+2|0,(C|0)!=(u|0););if(w&1&&l0(h+m(i[k+52>>2],A)|0,m(i[k+48>>2],A)+v|0,t),!(p&&(A=n>>>0<2,n=n+1|0,A)))break}if(A=gt(),cA(f,A,s[i[o+124>>2]+9018|0]),i[f>>2]){if(s[e+4|0]==1){G(A),G4(i[r>>2]),i[r>>2]=0;break i}t=i[r>>2],i[k+40>>2]=i[f+8>>2],n=i[f+4>>2],i[k+32>>2]=i[f>>2],i[k+36>>2]=n,Dr(t,k+32|0)}if(i3(f,A,s[i[o+124>>2]+9019|0]),i[f>>2]){if(s[e+4|0]==1){G(A),G4(i[r>>2]),i[r>>2]=0;break i}t=i[r>>2],i[k+24>>2]=i[f+8>>2],n=i[f+4>>2],i[k+16>>2]=i[f>>2],i[k+20>>2]=n,Dr(t,k+16|0)}if(dA(f,A,s[i[o+124>>2]+9020|0]),i[f>>2]){if(s[e+4|0]==1){G(A),G4(i[r>>2]),i[r>>2]=0;break i}t=i[r>>2],i[k+8>>2]=i[f+8>>2],n=i[f+4>>2],i[k>>2]=i[f>>2],i[k+4>>2]=n,Dr(t,k)}n=0,l[A+16|0]=s[i[o+124>>2]+9016|0]!=0,s7(k+52|0,i[r>>2],A),G(A),tt(i[e>>2]),A=41320}if(i[k+44>>2])continue}break}i[f>>2]=0,i[f+4>>2]=n,i[f+8>>2]=A;break i}i[f>>2]=A,i[f+4>>2]=u,i[f+8>>2]=t}B=k- -64|0}function Lk(f,e,r,A,k,n,t,o,u,h,w,_,v,Z,p){var W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0;for(E=B-16|0,B=E,i[r>>2]=f,D=o?4:0,z=A&512;;){if((J|0)==4)s[Z+11|0]>>>7|0?k=i[Z+4>>2]:k=s[Z+11|0]&127,k>>>0>1&&(a=E,S=C4(Z),i[a+12>>2]=S,a=r,S=k9(J3(E+12|0,1),a8(Z),i[r>>2]),i[a>>2]=S),A=A&176,(A|0)!=16&&((A|0)==32&&(f=i[r>>2]),i[e>>2]=f),B=E+16|0;else{i:{r:switch(s[u+J|0]){case 0:i[e>>2]=i[r>>2];break i;case 1:i[e>>2]=i[r>>2],o=V[i[i[t>>2]+44>>2]](t,32)|0,W=i[r>>2],i[r>>2]=W+4,i[W>>2]=o;break i;case 3:if(s[Z+11|0]>>>7|0?o=i[Z+4>>2]:o=s[Z+11|0]&127,!o)break i;s[Z+11|0]>>>7|0?o=i[Z>>2]:o=Z,o=i[o>>2],W=i[r>>2],i[r>>2]=W+4,i[W>>2]=o;break i;case 2:if(s[v+11|0]>>>7|0?o=i[v+4>>2]:o=s[v+11|0]&127,o=!o,o|!z)break i;a=r,S=k9(C4(v),a8(v),i[r>>2]),i[a>>2]=S;break i;case 4:break r;default:break i}for(H=i[r>>2],k=k+D|0,o=k;;){r:{if(n>>>0<=o>>>0||!(V[i[i[t>>2]+12>>2]](t,64,i[o>>2])|0))break r;o=o+4|0;continue}break}if((p|0)>0){for(W=i[r>>2],C=p;;){if(!(!C|k>>>0>=o>>>0)){C=C-1|0,o=o-4|0,y=i[o>>2],I=W+4|0,i[r>>2]=I,i[W>>2]=y,W=I;continue}break}r:{if(!C){I=0;break r}I=V[i[i[t>>2]+44>>2]](t,48)|0,W=i[r>>2]}for(;;){if(y=W+4|0,(C|0)>0){i[W>>2]=I,C=C-1|0,W=y;continue}break}i[r>>2]=y,i[W>>2]=h}r:{if((k|0)==(o|0)){W=V[i[i[t>>2]+44>>2]](t,48)|0,C=i[r>>2],o=C+4|0,i[r>>2]=o,i[C>>2]=W;break r}for(s[_+11|0]>>>7|0?W=i[_>>2]:W=_,I=l[W|0],s[_+11|0]>>>7|0?W=i[_+4>>2]:W=s[_+11|0]&127,I=W?I:-1,W=0,y=0;;){if((k|0)!=(o|0)){e:{if((W|0)!=(I|0)){C=W;break e}if(C=i[r>>2],i[r>>2]=C+4,i[C>>2]=w,C=0,s[_+11|0]>>>7|0?I=i[_+4>>2]:I=s[_+11|0]&127,y=y+1|0,I>>>0<=y>>>0){I=W;break e}if(s[_+11|0]>>>7|0?W=i[_>>2]:W=_,s[W+y|0]==127){I=-1;break e}s[_+11|0]>>>7|0?W=i[_>>2]:W=_,I=l[W+y|0]}o=o-4|0,W=i[o>>2],R=i[r>>2],i[r>>2]=R+4,i[R>>2]=W,W=C+1|0;continue}break}o=i[r>>2]}te(H,o)}J=J+1|0;continue}break}}function Er(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;if(!f)return Z2(e);if(e>>>0>=4294967232)return i[23944]=48,0;n=e>>>0<11?16:e+11&-8,u=f-8|0,h=i[u+4>>2],k=h&-8;i:{if(!(h&3)){if(n>>>0<256||k>>>0>=n+4>>>0&&(r=u,k-n>>>0<=i[24374]<<1>>>0))break i;r=0;break i}t=k+u|0;r:{if(k>>>0>=n>>>0){if(A=k-n|0,A>>>0<16)break r;i[u+4>>2]=h&1|n|2,r=n+u|0,i[r+4>>2]=A|3,i[t+4>>2]=i[t+4>>2]|1,Xr(r,A);break r}if(i[24260]==(t|0)){if(k=k+i[24257]|0,k>>>0<=n>>>0)break i;i[u+4>>2]=h&1|n|2,A=n+u|0,r=k-n|0,i[A+4>>2]=r|1,i[24257]=r,i[24260]=A;break r}if(i[24259]==(t|0)){if(k=k+i[24256]|0,k>>>0>>0)break i;r=k-n|0;e:{if(r>>>0>=16){i[u+4>>2]=h&1|n|2,A=n+u|0,i[A+4>>2]=r|1,k=k+u|0,i[k>>2]=r,i[k+4>>2]=i[k+4>>2]&-2;break e}i[u+4>>2]=k|h&1|2,r=k+u|0,i[r+4>>2]=i[r+4>>2]|1,r=0}i[24259]=A,i[24256]=r;break r}if(A=i[t+4>>2],A&2||(w=k+(A&-8)|0,w>>>0>>0))break i;v=w-n|0,o=i[t+12>>2];e:{if(A>>>0<=255){if(r=i[t+8>>2],(r|0)==(o|0)){Z=97016,p=i[24254]&a0(-2,A>>>3|0),i[Z>>2]=p;break e}i[r+12>>2]=o,i[o+8>>2]=r;break e}_=i[t+24>>2];A:{if((t|0)!=(o|0)){r=i[t+8>>2],i[r+12>>2]=o,i[o+8>>2]=r;break A}f:{if(r=i[t+20>>2],r)A=t+20|0;else{if(r=i[t+16>>2],!r)break f;A=t+16|0}for(;k=A,o=r,A=r+20|0,r=i[r+20>>2],!(!r&&(A=o+16|0,r=i[o+16>>2],!r)););i[k>>2]=0;break A}o=0}if(!_)break e;A=i[t+28>>2],r=(A<<2)+97320|0;A:{if(i[r>>2]==(t|0)){if(i[r>>2]=o,o)break A;Z=97020,p=i[24255]&a0(-2,A),i[Z>>2]=p;break e}if(i[(i[_+16>>2]==(t|0)?16:20)+_>>2]=o,!o)break e}if(i[o+24>>2]=_,r=i[t+16>>2],r&&(i[o+16>>2]=r,i[r+24>>2]=o),r=i[t+20>>2],!r)break e;i[o+20>>2]=r,i[r+24>>2]=o}if(v>>>0<=15){i[u+4>>2]=h&1|w|2,r=u+w|0,i[r+4>>2]=i[r+4>>2]|1;break r}i[u+4>>2]=h&1|n|2,A=n+u|0,i[A+4>>2]=v|3,r=u+w|0,i[r+4>>2]=i[r+4>>2]|1,Xr(A,v)}r=u}return r?r+8|0:(A=Z2(e),A?(r=i[f-4>>2],r=(r&3?-4:-8)+(r&-8)|0,l0(A,f,e>>>0>r>>>0?r:e),G(f),A):0)}function tw(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0,v=0;if(f=B-448|0,B=f,i[f+440>>2]=r,i[f+444>>2]=e,i[f+20>>2]=1095,h=f+20|0,w=o1(f+24|0,f+32|0,h),o=f+16|0,e=i[k+28>>2],i[o>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(o,100184),l[f+15|0]=0,Xk(f+444|0,r,A,o,i[k+4>>2],n,f+15|0,e,w,h,f+432|0)){r=B-16|0,B=r;i:if(s[t+11|0]>>>7|0)break i;i:{if(s[t+11|0]>>>7|0){A=i[t>>2],i[r+12>>2]=0,i[A>>2]=i[r+12>>2],i[t+4>>2]=0;break i}i[r+8>>2]=0,i[t>>2]=i[r+8>>2],l[t+11|0]=s[t+11|0]&128,l[t+11|0]=s[t+11|0]&127}for(B=r+16|0,s[f+15|0]==1&&KA(t,V[i[i[e>>2]+44>>2]](e,45)|0),e=V[i[i[e>>2]+44>>2]](e,48)|0,r=i[w>>2],u=i[f+20>>2],A=u-4|0;;){if(!((e|0)!=i[r>>2]|r>>>0>=A>>>0)){r=r+4|0;continue}break}h=B-16|0,B=h,s[t+11|0]>>>7|0?A=i[t+4>>2]:A=s[t+11|0]&127,k=s[t+11|0]>>>7|0?(i[t+8>>2]&2147483647)-1|0:1,e=u-r>>2;i:{if(!e)break i;if(s[t+11|0]>>>7|0?o=i[t>>2]:o=t,v=o,s[t+11|0]>>>7|0?o=i[t>>2]:o=t,s[t+11|0]>>>7|0?_=i[t+4>>2]:_=s[t+11|0]&127,!c9(v,(o+(_<<2)|0)+4|0,r)){for(e>>>0>k-A>>>0&&Z7(t,k,e+(A-k|0)|0,A,A),s[t+11|0]>>>7|0?k=i[t>>2]:k=t,k=k+(A<<2)|0;;){if((r|0)!=(u|0)){i[k>>2]=i[r>>2],r=r+4|0,k=k+4|0;continue}break}i[h+4>>2]=0,i[k>>2]=i[h+4>>2],wi(t,e+A|0);break i}e=B-16|0,B=e,A=h+4|0,F7(A,r,u),B=e+16|0,s[A+11|0]>>>7|0?r=i[A>>2]:r=A,u=B-16|0,B=u,s[A+11|0]>>>7|0?e=i[A+4>>2]:e=s[A+11|0]&127,o=s[t+11|0]>>>7|0?(i[t+8>>2]&2147483647)-1|0:1,s[t+11|0]>>>7|0?k=i[t+4>>2]:k=s[t+11|0]&127;r:{if(e>>>0<=o-k>>>0){if(!e)break r;o=r,s[t+11|0]>>>7|0?r=i[t>>2]:r=t,ui(o,e,r+(k<<2)|0),e=e+k|0,wi(t,e),i[u+12>>2]=0,i[r+(e<<2)>>2]=i[u+12>>2];break r}r7(t,o,k+(e-o|0)|0,k,k,0,e,r)}B=u+16|0,l1(A)}B=h+16|0}return g2(f+444|0,f+440|0)&&(i[n>>2]=i[n>>2]|2),r=i[f+444>>2],O0(f+16|0),e=i[w>>2],i[w>>2]=0,e&&V[i[w+4>>2]](e),B=f+448|0,r|0}function Kk(f,e,r,A,k,n,t,o,u,h,w,_,v,Z,p){var W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0;for(J=B-16|0,B=J,i[r>>2]=f,z=A&512;;){if((R|0)==4)s[Z+11|0]>>>7|0?k=i[Z+4>>2]:k=s[Z+11|0]&127,k>>>0>1&&(a=J,S=C4(Z),i[a+12>>2]=S,a=r,S=n9(R3(J+12|0,1),S8(Z),i[r>>2]),i[a>>2]=S),A=A&176,(A|0)!=16&&((A|0)==32&&(f=i[r>>2]),i[e>>2]=f),B=J+16|0;else{i:{r:switch(s[u+R|0]){case 0:i[e>>2]=i[r>>2];break i;case 1:i[e>>2]=i[r>>2],W=V[i[i[t>>2]+28>>2]](t,32)|0,C=i[r>>2],i[r>>2]=C+1,l[C|0]=W;break i;case 3:if(s[Z+11|0]>>>7|0?W=i[Z+4>>2]:W=s[Z+11|0]&127,!W)break i;s[Z+11|0]>>>7|0?W=i[Z>>2]:W=Z,W=s[W|0],C=i[r>>2],i[r>>2]=C+1,l[C|0]=W;break i;case 2:if(s[v+11|0]>>>7|0?W=i[v+4>>2]:W=s[v+11|0]&127,W=!W,W|!z)break i;a=r,S=n9(C4(v),S8(v),i[r>>2]),i[a>>2]=S;break i;case 4:break r;default:break i}for(H=i[r>>2],k=k+o|0,I=k;;){r:{if(n>>>0<=I>>>0||(W=l[I|0],(W|0)>=0?W=(i[i[t+8>>2]+(W<<2)>>2]&64)!=0:W=0,!W))break r;I=I+1|0;continue}break}if(W=p,(W|0)>0){for(;;){if(!(!W|k>>>0>=I>>>0)){W=W-1|0,I=I-1|0,C=s[I|0],y=i[r>>2],i[r>>2]=y+1,l[y|0]=C;continue}break}for(W?C=V[i[i[t>>2]+28>>2]](t,48)|0:C=0;;){if(y=i[r>>2],i[r>>2]=y+1,(W|0)>0){l[y|0]=C,W=W-1|0;continue}break}l[y|0]=h}r:{if((k|0)==(I|0)){W=V[i[i[t>>2]+28>>2]](t,48)|0,C=i[r>>2],i[r>>2]=C+1,l[C|0]=W;break r}for(s[_+11|0]>>>7|0?W=i[_>>2]:W=_,C=l[W|0],s[_+11|0]>>>7|0?W=i[_+4>>2]:W=s[_+11|0]&127,C=W?C:-1,W=0,E=0;;){if((k|0)==(I|0))break r;e:{if((W|0)!=(C|0)){y=W;break e}if(C=i[r>>2],i[r>>2]=C+1,l[C|0]=w,y=0,s[_+11|0]>>>7|0?C=i[_+4>>2]:C=s[_+11|0]&127,E=E+1|0,C>>>0<=E>>>0){C=W;break e}if(s[_+11|0]>>>7|0?W=i[_>>2]:W=_,s[W+E|0]==127){C=-1;break e}s[_+11|0]>>>7|0?W=i[_>>2]:W=_,C=l[W+E|0]}I=I-1|0,W=s[I|0],D=i[r>>2],i[r>>2]=D+1,l[D|0]=W,W=y+1|0}}li(H,i[r>>2])}R=R+1|0;continue}break}}function Yr(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0;k=B-192|0,B=k,p=e+36|0,o=f+8|0,u=i[13631],W=u-12|0,C=i[13632]-12|0,I=i[13635]-12|0,h=i[13633],y=h-12|0,E=i[13640],J=i[13639],R=i[13637],D=i[13636],z=i[13634],w=k+28|0,_=k+24|0,H=k+80|0;i:{r:{e:{A:{for(;;){if(n=s[r+20|0],!i[r+16>>2]|n&1)break A;i[k+184>>2]=0,i[k+188>>2]=0,_r(k+160|0,r,k+184|0);f:{if(i[k+160>>2]!=i[19564]){n=i[k+164>>2],i[f>>2]=i[k+160>>2],i[f+4>>2]=n,i[o+8>>2]=i[k+176>>2],n=i[k+172>>2],i[o>>2]=i[k+168>>2],i[o+4>>2]=n,i[k+168>>2]=0,i[k+172>>2]=0,i[k+176>>2]=0,n=1;break f}if(n=i[e+40>>2],n-i[e+36>>2]>>>0>=160001){i[k+16>>2]=h,i[k+24>>2]=54496,i[k+80>>2]=54516,n=k+16|0,i[n+i[y>>2]>>2]=z,i[k+20>>2]=0,t=n+i[i[k+16>>2]-12>>2]|0,b0(t,w),i[t+72>>2]=0,i[t+76>>2]=-1,i[i[I>>2]+_>>2]=D,i[n+i[C>>2]>>2]=R,i[k+80>>2]=54516,i[k+16>>2]=54476,i[k+24>>2]=54496,n=$0(w),i[n>>2]=53552,i[k+68>>2]=0,i[k+72>>2]=0,i[k+60>>2]=0,i[k+64>>2]=0,i[k+76>>2]=24,x(L0(x(_,18757,30),2e4),18069,10),t=k+4|0,i2(t,n),r0(f,6,1e3,t),l[k+15|0]<0&&G(i[k+4>>2]),i[k+16>>2]=u,i[i[W>>2]+(k+16|0)>>2]=J,i[k+24>>2]=E,i[n>>2]=53552,l[k+71|0]<0&&G(i[k+60>>2]),K0(n),T0(H),n=1;break f}k:{if(n>>>0>2]){i[n>>2]=i[k+184>>2],i[n+4>>2]=i[k+188>>2],i[k+184>>2]=0,i[k+188>>2]=0,n=n+8|0;break k}n=z2(p,k+184|0)}i[e+40>>2]=n,v=v+1|0,n=(A|0)!=-1&&(v|0)==(A|0)?3:0}l[k+179|0]<0&&G(i[k+168>>2]),t=i[k+188>>2];f:{if(!t||(Z=i[t+4>>2],i[t+4>>2]=Z-1,Z))break f;V[i[i[t>>2]+8>>2]](t),g(t)}if(n)break}if((n|0)!=3)break i;if(!(l[r+20|0]&1))break e;break r}if(n&1)break r}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,l[78275]>=0){f=i[19567],i[o>>2]=i[19566],i[o+4>>2]=f,i[o+8>>2]=i[19568];break i}_0(o,i[19566],i[19567]);break i}if(l[k+16|0]=0,l[k+27|0]=0,r0(f,2,100,k+16|0),l[k+27|0]>=0)break i;G(i[k+16>>2])}B=k+192|0}function qk(f,e,r,A,k,n,t,o,u,h,w,_,v){var Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0;W=B,D=W,W=W-14464&-32,B=W,Z=A,A=i[e+16856>>2],C=m(Z,2/(A|0)|0),n=((n|0)/(A|0)|0)+(C>>3)|0,p=i[e+16852>>2],Z=m(2/(p|0)|0,r),r=((k|0)/(p|0)|0)+(Z>>3)|0,k=i[e+488>>2]/(A|0)|0,A=i[e+484>>2]/(p|0)|0;i:{p=Z&7,Z=C&7;r:{if(!(p|Z)){if(e=i[e+16840>>2],!((r|0)<0|(A|0)<(r+w|0)|((n|0)<0|(k|0)<(n+_|0)))){if(e=(r+u|0)+m(n,h)|0,(v|0)<=8){V[i[f+204>>2]](t,o,e,h,w,_,0,0,0),B=D;return}V[i[f+284>>2]](t,o,e,h,w,_,0,0,0,v),B=D;return}if((_|0)<=0|(w|0)<=0)break r;for(v=14-e|0,E=k-1|0,W=A-1|0,J=w&2147483646,R=w&1,f=0;;){if(e=f+n|0,p=m((e|0)>=0?(e|0)<(k|0)?e:E:0,h)+u|0,C=(m(f,o)<<1)+t|0,e=0,y=0,(w|0)!=1)for(;Z=e+r|0,X[C+(e<<1)>>1]=s[p+((Z|0)>=0?(A|0)>(Z|0)?Z:W:0)|0]<>1]=s[p+((Z|0)>=0?(A|0)>(Z|0)?Z:W:0)|0]<>1]=s[p+((e|0)>=0?(e|0)<(A|0)?e:W:0)|0]<(A-2|0)|((n|0)<=0|(n+_|0)>(k-2|0)))){e=(r+u|0)+m(n,h)|0;break e}if(!((_|0)<-2|(w|0)<-2))for(C=-1,a=k-1|0,y=A-1|0,e=_+2|0,S=(e|0)>0?e:0,e=w+3|0,q=e&-2,d=e&1;;){if(e=n+C|0,E=m((e|0)>=0?(e|0)<(k|0)?e:a:0,h)+u|0,J=m(C,80)+80|0,e=-1,R=0,(w|0)!=-2)for(;z=W+16|0,H=e+1|0,I=e+r|0,l[z+(J+H|0)|0]=s[E+((I|0)>=0?(A|0)>(I|0)?I:y:0)|0],e=e+2|0,I=r+H|0,l[(J+e|0)+z|0]=s[E+((I|0)>=0?(A|0)>(I|0)?I:y:0)|0],R=R+2|0,(q|0)!=(R|0););if(d&&(I=W+(e+J|0)|0,e=e+r|0,l[I+17|0]=s[E+((e|0)>=0?(e|0)<(A|0)?e:y:0)|0]),C=C+1|0,(S|0)==(C|0))break}h=80,e=W+97|0}A=(((v|0)<9?44:124)+f|0)+172|0;e:{if(!(!p|!Z)||(r=(v|0)<9,A=((r?36:116)+f|0)+172|0,p))break e;if(!Z)break i;p=0,A=((r?40:120)+f|0)+172|0}r=A,V[i[r>>2]](t,o,e,h,w,_,p,Z,W+5376|0,v)}B=D;return}C0(9349,13964,269,14609),P()}function $k(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;t=B-80|0,B=t;i:{if(!k||!e|!A){i[f>>2]=5,i[f+4>>2]=2001,i[f+8>>2]=3104;break i}if((r|0)<=0){i[f>>2]=5,i[f+4>>2]=2006,i[f+8>>2]=9064;break i}h=U(48),o=h,i[o+4>>2]=0,i[o+8>>2]=0,i[o>>2]=72912,e=W3(o+16|0,e,r,0),i[t+52>>2]=o,i[t+48>>2]=e,i[o+4>>2]=i[o+4>>2]+1,e=i[t+52>>2],i[t>>2]=i[t+48>>2],i[t+4>>2]=e,v=_e(t+56|0,t,r,0),i[t+40>>2]=0,i[t+44>>2]=0,_r(t+20|0,v,t+40|0);r:{if(r=i[t+20>>2],r){if(e=i[t+24>>2],i[f>>2]=r,(e|0)==100){i[f+4>>2]=100,i[f+8>>2]=14458;break r}i[f+4>>2]=e,i[f+8>>2]=1995;break r}e:{A:{if(e=i[t+40>>2],!e||(n=N0(e,68572,68764),!n))break A;if(o=i[t+44>>2],o&&(i[o+4>>2]=i[o+4>>2]+1),e=0,i[t+16>>2]=0,i[t+8>>2]=0,i[t+12>>2]=0,r=0,w=i[n+60>>2],n=i[n+56>>2],(w|0)!=(n|0)){if(e=w-n|0,(e|0)<0)break e;r=U(e),e=l0(r,n,e)+e|0}u=A,n=e-r|0,A=Z2(n),i[u>>2]=A,n=n>>2,i[k>>2]=n;f:{k:{if((e|0)!=(r|0)){if(u=n>>>0<=1?1:n,w=u&3,k=0,e=0,n>>>0>=4)for(Z=u&-4,u=0;n=e<<2,i[n+A>>2]=i[r+n>>2],_=n|4,i[_+A>>2]=i[r+_>>2],_=n|8,i[_+A>>2]=i[r+_>>2],n=n|12,i[n+A>>2]=i[r+n>>2],e=e+4|0,u=u+4|0,(Z|0)!=(u|0););if(w)for(;n=e<<2,i[n+A>>2]=i[r+n>>2],e=e+1|0,k=k+1|0,(w|0)!=(k|0););e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412];break k}if(e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],!r)break f}G(r)}if(!o||(f=i[o+4>>2],i[o+4>>2]=f-1,f))break r;V[i[i[o>>2]+8>>2]](o),g(o);break r}i[f>>2]=2,i[f+4>>2]=102,i[f+8>>2]=2018;break r}y0(),P()}l[t+39|0]<0&&G(i[t+28>>2]),f=i[t+44>>2];r:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[v+4>>2];r:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=i[h+4>>2],i[h+4>>2]=f-1,f)break i;V[i[i[h>>2]+8>>2]](h),g(h)}B=t+80|0}function ow(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0;n=B-32|0,B=n;i:{if(!(k&&e)){i[f>>2]=5,i[f+4>>2]=2006,i[f+8>>2]=12607;break i}u=i[e>>2],h=i[u+48>>2],t=i[u+52>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,I1(n,h,r,n+20|0);r:{if(i[n>>2]){P0(f,n,i[e>>2]);break r}if(e=A-1|0,r=i[n+20>>2],e>>>0>=i[n+24>>2]-r>>3>>>0){i[f>>2]=5,i[f+4>>2]=2007,i[f+8>>2]=10388;break r}e:{if(r=r+(e<<3)|0,e=i[r>>2],!e||(e=N0(e,68572,69952),!e))break e;if(o=i[r+4>>2],o){if(i[o+4>>2]=i[o+4>>2]+1,r=U(48),i[k>>2]=r,A=e- -64|0,w=i[A>>2],_=i[A+4>>2],v=i[e+72>>2],Z=i[e+76>>2],p=i[e+80>>2],W=i[e+84>>2],C=i[e+88>>2],u=i[e+92>>2],h=i[e+56>>2],k=i[e+60>>2],A=i[e+100>>2],i[r+40>>2]=i[e+96>>2],i[r+44>>2]=A,i[r+32>>2]=C,i[r+36>>2]=u,i[r+24>>2]=p,i[r+28>>2]=W,i[r+16>>2]=v,i[r+20>>2]=Z,i[r+8>>2]=w,i[r+12>>2]=_,i[r>>2]=h,i[r+4>>2]=k,i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,f=i[o+4>>2],i[o+4>>2]=f-1,f)break r;V[i[i[o>>2]+8>>2]](o),g(o);break r}r=U(48),i[k>>2]=r,A=e- -64|0,w=i[A>>2],_=i[A+4>>2],v=i[e+72>>2],Z=i[e+76>>2],p=i[e+80>>2],W=i[e+84>>2],C=i[e+88>>2],u=i[e+92>>2],h=i[e+56>>2],k=i[e+60>>2],A=i[e+100>>2],i[r+40>>2]=i[e+96>>2],i[r+44>>2]=A,i[r+32>>2]=C,i[r+36>>2]=u,i[r+24>>2]=p,i[r+28>>2]=W,i[r+16>>2]=v,i[r+20>>2]=Z,i[r+8>>2]=w,i[r+12>>2]=_,i[r>>2]=h,i[r+4>>2]=k,i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e;break r}i[f>>2]=5,i[f+4>>2]=2007,i[f+8>>2]=9699}if(l[n+19|0]<0&&G(i[n+8>>2]),r=i[n+20>>2],r){if(f=r,e=i[n+24>>2],(r|0)!=(e|0)){for(;;){A=i[e-4>>2];r:{if(!A||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(e=e-8|0,(r|0)==(e|0))break}f=i[n+20>>2]}i[n+24>>2]=r,G(f)}if(!t||(f=i[t+4>>2],i[t+4>>2]=f-1,f))break i;V[i[i[t>>2]+8>>2]](t),g(t)}B=n+32|0}function lw(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0,v=0;if(f=B-144|0,B=f,i[f+136>>2]=r,i[f+140>>2]=e,i[f+20>>2]=1095,h=f+20|0,w=o1(f+24|0,f+32|0,h),o=f+16|0,e=i[k+28>>2],i[o>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(o,100192),l[f+15|0]=0,pk(f+140|0,r,A,o,i[k+4>>2],n,f+15|0,e,w,h,f+132|0)){r=B-16|0,B=r;i:if(s[t+11|0]>>>7|0)break i;i:{if(s[t+11|0]>>>7|0){A=i[t>>2],l[r+15|0]=0,l[A|0]=s[r+15|0],i[t+4>>2]=0;break i}l[r+14|0]=0,l[t|0]=s[r+14|0],l[t+11|0]=s[t+11|0]&128,l[t+11|0]=s[t+11|0]&127}for(B=r+16|0,s[f+15|0]==1&&C6(t,V[i[i[e>>2]+28>>2]](e,45)|0),e=V[i[i[e>>2]+28>>2]](e,48)|0,r=i[w>>2],u=i[f+20>>2],A=u-1|0,e=e&255;;){if(!((e|0)!=s[r|0]|r>>>0>=A>>>0)){r=r+1|0;continue}break}h=B-16|0,B=h,s[t+11|0]>>>7|0?A=i[t+4>>2]:A=s[t+11|0]&127,k=s[t+11|0]>>>7|0?(i[t+8>>2]&2147483647)-1|0:10,e=u-r|0;i:{if(!e)break i;if(s[t+11|0]>>>7|0?o=i[t>>2]:o=t,v=o,s[t+11|0]>>>7|0?o=i[t>>2]:o=t,s[t+11|0]>>>7|0?_=i[t+4>>2]:_=s[t+11|0]&127,!c9(v,(o+_|0)+1|0,r)){for(e>>>0>k-A>>>0&&HA(t,k,e+(A-k|0)|0,A,A),s[t+11|0]>>>7|0?k=i[t>>2]:k=t,k=k+A|0;;){if((r|0)!=(u|0)){l[k|0]=s[r|0],r=r+1|0,k=k+1|0;continue}break}l[h+15|0]=0,l[k|0]=s[h+15|0],wi(t,e+A|0);break i}A=j3(h,r,u);r:{if(s[A+11|0]>>>7|0){r=i[A>>2];break r}r=A}u=B-16|0,B=u,s[A+11|0]>>>7|0?e=i[A+4>>2]:e=s[A+11|0]&127,o=s[t+11|0]>>>7|0?(i[t+8>>2]&2147483647)-1|0:10,s[t+11|0]>>>7|0?k=i[t+4>>2]:k=s[t+11|0]&127;r:{if(e>>>0<=o-k>>>0){if(!e)break r;o=r,s[t+11|0]>>>7|0?r=i[t>>2]:r=t,e8(o,e,r+k|0),e=e+k|0,wi(t,e),l[u+15|0]=0,l[e+r|0]=s[u+15|0];break r}Pr(t,o,k+(e-o|0)|0,k,k,0,e,r)}B=u+16|0,z0(A)}B=h+16|0}return J2(f+140|0,f+136|0)&&(i[n>>2]=i[n>>2]|2),r=i[f+140>>2],O0(f+16|0),e=i[w>>2],i[w>>2]=0,e&&V[i[w+4>>2]](e),B=f+144|0,r|0}function QA(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0;u=B-16|0,B=u;i:{if(!n){i[f>>2]=5,i[f+4>>2]=2001,i[f+8>>2]=17605;break i}A|k||(x(98900,30633,136),A=2);r:{e:{A:switch(A|0){case 0:o=U(12),i[u+4>>2]=o,t=o+12|0,i[u+12>>2]=t,i[o+8>>2]=3,i[o>>2]=1,i[o+4>>2]=2;break e;case 1:o=U(28),i[u+4>>2]=o,t=o+28|0,i[u+12>>2]=t,i[o+24>>2]=i[8847],h=i[8846],i[o+16>>2]=i[8845],i[o+20>>2]=h,h=i[8844],i[o+8>>2]=i[8843],i[o+12>>2]=h,h=i[8842],i[o>>2]=i[8841],i[o+4>>2]=h;break e;case 2:o=U(4),i[u+4>>2]=o,t=o+4|0,i[u+12>>2]=t,i[o>>2]=0;break e;default:break A}i[u+12>>2]=0,i[u+4>>2]=0,i[u+8>>2]=0;break r}i[u+8>>2]=t}o=i[u+4>>2],t=o;r:{e:{A:{f:{if(h=i[u+8>>2],(h|0)==(t|0))break f;for(;;){if(i[t>>2]==(k|0))break f;if(t=t+4|0,(h|0)==(t|0))break}break A}if((t|0)!=(h|0))break e}i[n>>2]=0,i[f+8>>2]=17654,i[f>>2]=5,i[f+4>>2]=2006;break r}h=U(8),t=h,i[t>>2]=0,i[t+4>>2]=0,t=U(136),i[t>>2]=72792,i[t+4>>2]=0,i[t+8>>2]=0,B0(t+20|0,0,104),o=i[t+4>>2],_=o+1|0,i[t+4>>2]=_,i[t+56>>2]=0,i[t+60>>2]=0,i[t+44>>2]=99,i[t+48>>2]=99,i[t+32>>2]=37837,w=t- -64|0,i[w>>2]=0,i[w+4>>2]=0,i[t+132>>2]=0,i[t+124>>2]=0,i[t+128>>2]=0,i[t+84>>2]=1,i[t+88>>2]=1,i[t+72>>2]=t+76,i[t+92>>2]=0,i[t+96>>2]=0,i[t+100>>2]=0,i[t+104>>2]=0,i[t+108>>2]=0,i[t+112>>2]=0,l[t+113|0]=0,l[t+114|0]=0,l[t+115|0]=0,l[t+116|0]=0,l[t+117|0]=0,l[t+118|0]=0,l[t+119|0]=0,l[t+120|0]=0,w=t+12|0,i[t+12>>2]=w,i[t+8>>2]=i[t+8>>2]+1,i[t+4>>2]=o,i[t+16>>2]=t,_||(V[i[i[t>>2]+8>>2]](t),g(t)),i[h>>2]=w,o=i[h+4>>2],i[h+4>>2]=t;e:{if(!o||(t=i[o+4>>2],i[o+4>>2]=t-1,t))break e;V[i[i[o>>2]+8>>2]](o),g(o)}t=i[h>>2],i[t+36>>2]=k,i[t+32>>2]=A,i[t+28>>2]=r,i[t+24>>2]=e,i[n>>2]=h,i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,o=i[u+4>>2]}if(!o)break i;i[u+8>>2]=o,G(o)}B=u+16|0}function uw(f,e,r,A,k,n,t,o,u){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0;var h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;f=B-1056|0,B=f,i[f+16>>2]=n,i[f+20>>2]=t,i[f+24>>2]=o,i[f+28>>2]=u,h=f+944|0,i[f+940>>2]=h,h=I8(h,100,8817,f+16|0),i[f+528>>2]=1094,w=f+528|0,Z=o1(f+520|0,0,w),i[f+528>>2]=1094,_=o1(f+512|0,0,w);i:{if(h>>>0>=100&&(h=M2(),i[f>>2]=n,i[f+4>>2]=t,i[f+8>>2]=o,i[f+12>>2]=u,h=c4(f+940|0,h,8817,f),(h|0)==-1||(n=i[Z>>2],i[Z>>2]=i[f+940>>2],n&&V[i[Z+4>>2]](n),t=Z2(h<<2),n=i[_>>2],i[_>>2]=t,n&&V[i[_+4>>2]](n),w=i[_>>2],!w)))break i;t=f+508|0,n=i[A+28>>2],i[t>>2]=n,(n|0)!=100008&&(i[n+4>>2]=i[n+4>>2]+1),I=x0(t,100184),n=I,t=i[f+940>>2],V[i[i[n>>2]+48>>2]](n,t,t+h|0,w)|0,C=(h|0)>0?s[i[f+940>>2]]==45:C,t=B-16|0,B=t,n=f+484|0,i[n>>2]=0,i[n+4>>2]=0,i[n+8>>2]=0,B=t+16|0,t=B-16|0,B=t,o=f+472|0,i[o>>2]=0,i[o+4>>2]=0,i[o+8>>2]=0,B=t+16|0,t=B-16|0,B=t,u=f+460|0,i[u>>2]=0,i[u+4>>2]=0,i[u+8>>2]=0,B=t+16|0,Zn(r,C,f+508|0,f+504|0,f+500|0,f+496|0,n,o,u,f+456|0),i[f+48>>2]=1094,r=f+48|0,v=o1(f+40|0,0,r),t=i[f+456>>2];r:{if((t|0)<(h|0)){s[o+11|0]>>>7|0?p=i[o+4>>2]:p=s[o+11|0]&127,s[u+11|0]>>>7|0?W=i[u+4>>2]:W=s[u+11|0]&127,t=(t+(p+(W+(h-t<<1)|0)|0)|0)+1|0;break r}W=i[f+456>>2],s[u+11|0]>>>7|0?t=i[u+4>>2]:t=s[u+11|0]&127,s[o+11|0]>>>7|0?p=i[o+4>>2]:p=s[o+11|0]&127,t=(W+(t+p|0)|0)+2|0}if(t>>>0>=101&&(t=Z2(t<<2),r=i[v>>2],i[v>>2]=t,r&&V[i[v+4>>2]](r),r=i[v>>2],!r))break i;return Lk(r,f+36|0,f+32|0,i[A+4>>2],w,(h<<2)+w|0,I,C,f+504|0,i[f+500>>2],i[f+496>>2],n,o,u,i[f+456>>2]),r=X8(e,r,i[f+36>>2],i[f+32>>2],A,k),e=i[v>>2],i[v>>2]=0,e&&V[i[v+4>>2]](e),l1(u),l1(o),z0(n),O0(f+508|0),e=i[_>>2],i[_>>2]=0,e&&V[i[_+4>>2]](e),e=i[Z>>2],i[Z>>2]=0,e&&V[i[Z+4>>2]](e),B=f+1056|0,r|0}u1(),P()}function sw(f,e,r,A,k,n,t,o,u){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0;var h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;f=B-448|0,B=f,i[f+16>>2]=n,i[f+20>>2]=t,i[f+24>>2]=o,i[f+28>>2]=u,h=f+336|0,i[f+332>>2]=h,h=I8(h,100,8817,f+16|0),i[f+224>>2]=1094,w=f+224|0,Z=o1(f+216|0,0,w),i[f+224>>2]=1094,_=o1(f+208|0,0,w);i:{if(h>>>0>=100&&(h=M2(),i[f>>2]=n,i[f+4>>2]=t,i[f+8>>2]=o,i[f+12>>2]=u,h=c4(f+332|0,h,8817,f),(h|0)==-1||(n=i[Z>>2],i[Z>>2]=i[f+332>>2],n&&V[i[Z+4>>2]](n),t=Z2(h),n=i[_>>2],i[_>>2]=t,n&&V[i[_+4>>2]](n),w=i[_>>2],!w)))break i;t=f+204|0,n=i[A+28>>2],i[t>>2]=n,(n|0)!=100008&&(i[n+4>>2]=i[n+4>>2]+1),I=x0(t,100192),n=I,t=i[f+332>>2],V[i[i[n>>2]+32>>2]](n,t,t+h|0,w)|0,C=(h|0)>0?s[i[f+332>>2]]==45:C,t=B-16|0,B=t,n=f+184|0,i[n>>2]=0,i[n+4>>2]=0,i[n+8>>2]=0,B=t+16|0,t=B-16|0,B=t,o=f+172|0,i[o>>2]=0,i[o+4>>2]=0,i[o+8>>2]=0,B=t+16|0,t=B-16|0,B=t,u=f+160|0,i[u>>2]=0,i[u+4>>2]=0,i[u+8>>2]=0,B=t+16|0,Wn(r,C,f+204|0,f+200|0,f+199|0,f+198|0,n,o,u,f+156|0),i[f+48>>2]=1094,r=f+48|0,v=o1(f+40|0,0,r),t=i[f+156>>2];r:{if((t|0)<(h|0)){s[o+11|0]>>>7|0?p=i[o+4>>2]:p=s[o+11|0]&127,s[u+11|0]>>>7|0?W=i[u+4>>2]:W=s[u+11|0]&127,t=(t+(p+(W+(h-t<<1)|0)|0)|0)+1|0;break r}W=i[f+156>>2],s[u+11|0]>>>7|0?t=i[u+4>>2]:t=s[u+11|0]&127,s[o+11|0]>>>7|0?p=i[o+4>>2]:p=s[o+11|0]&127,t=(W+(t+p|0)|0)+2|0}if(t>>>0>=101&&(t=Z2(t),r=i[v>>2],i[v>>2]=t,r&&V[i[v+4>>2]](r),r=i[v>>2],!r))break i;return Kk(r,f+36|0,f+32|0,i[A+4>>2],w,h+w|0,I,C,f+200|0,l[f+199|0],l[f+198|0],n,o,u,i[f+156>>2]),r=G8(e,r,i[f+36>>2],i[f+32>>2],A,k),e=i[v>>2],i[v>>2]=0,e&&V[i[v+4>>2]](e),z0(u),z0(o),z0(n),O0(f+204|0),e=i[_>>2],i[_>>2]=0,e&&V[i[_+4>>2]](e),e=i[Z>>2],i[Z>>2]=0,e&&V[i[Z+4>>2]](e),B=f+448|0,r|0}u1(),P()}function hw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;k=B-16|0,B=k;i:{if(!(i[e+8>>2]|i[e+12>>2])){if(e=U(32),i[k+4>>2]=e,i[k+8>>2]=30,i[k+12>>2]=-2147483616,r=s[8941]|s[8942]<<8|(s[8943]<<16|s[8944]<<24),A=s[8937]|s[8938]<<8|(s[8939]<<16|s[8940]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+30|0]=0,r=s[8963]|s[8964]<<8|(s[8965]<<16|s[8966]<<24),A=s[8959]|s[8960]<<8|(s[8961]<<16|s[8962]<<24),l[e+22|0]=A,l[e+23|0]=A>>>8,l[e+24|0]=A>>>16,l[e+25|0]=A>>>24,l[e+26|0]=r,l[e+27|0]=r>>>8,l[e+28|0]=r>>>16,l[e+29|0]=r>>>24,r=s[8957]|s[8958]<<8|(s[8959]<<16|s[8960]<<24),A=s[8953]|s[8954]<<8|(s[8955]<<16|s[8956]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[8949]|s[8950]<<8|(s[8951]<<16|s[8952]<<24),A=s[8945]|s[8946]<<8|(s[8947]<<16|s[8948]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,0,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}o=e,u=B2(r)&127,l[o+48|0]=u,A=B2(r),l[e+50|0]=A&31,l[e+49|0]=A>>>5,A=B2(r),l[e+57|0]=A&3,l[e+51|0]=A>>>7,l[e+56|0]=A>>>2&1,l[e+55|0]=A>>>3&1,l[e+54|0]=A>>>4&1,l[e+53|0]=A>>>5&1,l[e+52|0]=A>>>6&1,A=B2(r),n=A>>>4&1,l[e+58|0]=n,n&&(l[e+59|0]=A&15),n=i[e+60>>2],t=i[e+64>>2]-n|0,A=i[r+16>>2];r:{if(t>>>0>>0){L2(e+60|0,A-t|0),n=i[e+60>>2];break r}if(A>>>0>=t>>>0)break r;i[e+64>>2]=A+n}if(D6(r,n,A),s[r+20|0]==1){if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,100,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+16|0}function ww(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0;for(C=B-16|0,B=C,h=r;;){i:{if((A|0)==(h|0)){h=A;break i}if(!s[h|0])break i;h=h+1|0;continue}break}for(i[o>>2]=n,i[k>>2]=r;;){i:{r:{e:{if((r|0)==(A|0)|(n|0)==(t|0))break e;u=i[e+4>>2],i[C+8>>2]=i[e>>2],i[C+12>>2]=u,I=B-16|0,B=I,i[I+12>>2]=i[f+8>>2],J=S4(I+8|0,I+12|0),p=h-r|0,_=0,Z=B-1040|0,B=Z,u=i[k>>2],i[Z+12>>2]=u,W=n||Z+16|0,v=n?t-n>>2:256;A:{f:{k:{if(!(!u|!v)){for(;;){if(w=p>>>2|0,!(p>>>0>131|w>>>0>=v>>>0)){w=u;break f}if(y=Ok(W,Z+12|0,w>>>0>>0?w:v,e),w=i[Z+12>>2],(y|0)==-1){v=0,_=-1;break k}if(E=(Z+16|0)!=(W|0)?y:0,v=v-E|0,W=(E<<2)+W|0,p=w?(u+p|0)-w|0:0,_=_+y|0,!w)break k;if(u=w,!v)break}break k}w=u}if(!w)break A}if(!v|!p)break A;for(u=_;;){f:{_=B6(W,w,p,e);k:{if(_+2>>>0<=2){n:switch(_+1|0){case 1:i[Z+12>>2]=0;break k;case 0:break A;default:break n}i[e>>2]=0;break k}if(w=i[Z+12>>2]+_|0,i[Z+12>>2]=w,u=u+1|0,v=v-1|0,v)break f}_=u;break A}if(W=W+4|0,p=p-_|0,_=u,!p)break}}n&&(i[k>>2]=i[Z+12>>2]),B=Z+1040|0,u=i[J>>2],u&&(i[23985]=(u|0)==-1?95820:u),B=I+16|0;A:{f:{k:{n:{if((_|0)==-1)for(;;){if(i[o>>2]=n,i[k>>2]==(r|0))break e;t=1;t:{o:{u:switch(e=d9(n,r,h-r|0,C+8|0,i[f+8>>2]),e+2|0){case 0:break f;case 2:break t;case 1:break u;default:break o}i[k>>2]=r;break n}t=e}r=r+t|0,n=i[o>>2]+4|0}if(n=i[o>>2]+(_<<2)|0,i[o>>2]=n,(n|0)==(t|0))break A;if(r=i[k>>2],(A|0)==(h|0)){h=A;continue}if(!d9(n,r,1,e,i[f+8>>2]))break k}f=2;break r}for(i[o>>2]=i[o>>2]+4,r=i[k>>2]+1|0,i[k>>2]=r,h=r;;){if((A|0)==(h|0)){h=A;break i}if(!s[h|0])break i;h=h+1|0}}i[k>>2]=r,f=1;break r}r=i[k>>2]}f=(r|0)!=(A|0)}return B=C+16|0,f|0}n=i[o>>2]}}function _w(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0;n=B+-64|0,B=n;i:{if(!(A&&e)){i[f>>2]=5,i[f+4>>2]=2001,i[f+8>>2]=12607;break i}if(t=U(128),i[t+4>>2]=0,i[t+8>>2]=0,i[t>>2]=71984,o=t+16|0,i[o+8>>2]=0,i[o+12>>2]=0,i[o+16>>2]=0,i[o+20>>2]=0,i[o+24>>2]=0,i[o+28>>2]=0,i[o+32>>2]=0,i[o>>2]=68500,i[t+52>>2]=0,i[t+56>>2]=0,i[t+68>>2]=0,l[t+57|0]=0,l[t+58|0]=0,l[t+59|0]=0,l[t+60|0]=0,l[t+61|0]=0,l[t+62|0]=0,l[t+63|0]=0,l[t+64|0]=0,i[o>>2]=69912,l[t+96|0]=0,i[t+88>>2]=0,i[t+92>>2]=0,i[t+80>>2]=0,i[t+84>>2]=0,i[t+72>>2]=0,i[t+76>>2]=0,i[t+104>>2]=0,i[t+108>>2]=0,i[t+112>>2]=0,i[t+116>>2]=0,i[t+120>>2]=0,i[t+124>>2]=0,i[t+32>>2]=1668114798,u=i[A+44>>2],i[n+48>>2]=i[A+40>>2],i[n+52>>2]=u,u=i[A+36>>2],i[n+40>>2]=i[A+32>>2],i[n+44>>2]=u,u=i[A+28>>2],i[n+32>>2]=i[A+24>>2],i[n+36>>2]=u,u=i[A+20>>2],i[n+24>>2]=i[A+16>>2],i[n+28>>2]=u,u=i[A+12>>2],i[n+16>>2]=i[A+8>>2],i[n+20>>2]=u,u=i[A+4>>2],i[n+8>>2]=i[A>>2],i[n+12>>2]=u,A=i[n+12>>2],i[o+56>>2]=i[n+8>>2],i[o+60>>2]=A,A=i[n+52>>2],i[o+96>>2]=i[n+48>>2],i[o+100>>2]=A,A=i[n+44>>2],i[o+88>>2]=i[n+40>>2],i[o+92>>2]=A,A=i[n+36>>2],i[o+80>>2]=i[n+32>>2],i[o+84>>2]=A,A=i[n+28>>2],i[o+72>>2]=i[n+24>>2],i[o+76>>2]=A,A=i[n+20>>2],u=o- -64|0,i[u>>2]=i[n+16>>2],i[u+4>>2]=A,h=s[n+32|0],w=h6(i0[n+8>>3]),A=h6(i0[n+16>>3]),u=h6(i0[n+24>>3]),A=A>>>0>>0?A:w,u=A>>>0>u>>>0?u:A,i[o+104>>2]=u,A=0,(h|0)==1&&(A=h6(i0[n+40>>3]),u=A>>>0>>0?A:u,i[o+104>>2]=u,A=h6(i0[n+48>>3])),i[o+108>>2]=A,i[o+52>>2]=u<<8|h|A<<16,A=i[e>>2],i[n+60>>2]=t,i[n+56>>2]=o,i[t+4>>2]=i[t+4>>2]+1,e=i[n+60>>2],i[n>>2]=i[n+56>>2],i[n+4>>2]=e,e=Q3(A,r,n,0),k&&(i[k>>2]=e),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[t+4>>2],i[t+4>>2]=f-1,f)break i;V[i[i[t>>2]+8>>2]](t),g(t)}B=n- -64|0}function l6(f,e,r,A){var k=0,n=0,t=0,o=0,u=0;k=B-160|0,B=k;i:{r:{e:{A:{if((r|A)>=0){if(!A)break e;if(t=K6(i[e+64>>2],i[e+68>>2],A,0),n=w0,!n&r>>>0<=t>>>0|n)break A}i[k+24>>2]=54496,i[k+80>>2]=54516,n=i[13633],i[k+16>>2]=n,t=k+16|0,i[t+i[n-12>>2]>>2]=i[13634],i[k+20>>2]=0,n=i[i[k+16>>2]-12>>2]+t|0,o=k+28|0,b0(n,o),i[n+72>>2]=0,i[n+76>>2]=-1,n=i[13635],i[k+24>>2]=n,u=k+24|0,i[u+i[n-12>>2]>>2]=i[13636],n=i[13632],i[k+16>>2]=n,i[i[n-12>>2]+t>>2]=i[13637],i[k+80>>2]=54516,i[k+16>>2]=54476,i[k+24>>2]=54496,t=$0(o),i[t>>2]=53552,i[k+68>>2]=0,i[k+72>>2]=0,i[k+60>>2]=0,i[k+64>>2]=0,i[k+76>>2]=24,x(n4(x(L0(x(L0(x(u,19153,11),r),2490,1),A),19120,32),i[e+64>>2],i[e+68>>2]),31338,1),e=k+4|0,i2(e,t),r0(f,6,1e3,e),l[k+15|0]<0&&G(i[k+4>>2]),f=i[13631],i[k+16>>2]=f,i[i[f-12>>2]+(k+16|0)>>2]=i[13639],i[k+24>>2]=i[13640],i[t>>2]=53552,l[k+71|0]<0&&G(i[k+60>>2]),K0(t),T0(k+80|0);break i}if(r)break r}if(e=U(24),i[k+16>>2]=e,i[k+20>>2]=20,i[k+24>>2]=-2147483624,r=s[3303]|s[3304]<<8|(s[3305]<<16|s[3306]<<24),A=s[3299]|s[3300]<<8|(s[3301]<<16|s[3302]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+20|0]=0,r=s[3315]|s[3316]<<8|(s[3317]<<16|s[3318]<<24),l[e+16|0]=r,l[e+17|0]=r>>>8,l[e+18|0]=r>>>16,l[e+19|0]=r>>>24,r=s[3311]|s[3312]<<8|(s[3313]<<16|s[3314]<<24),A=s[3307]|s[3308]<<8|(s[3309]<<16|s[3310]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,6,129,k+16|0),l[k+27|0]>=0)break i;G(i[k+16>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+160|0}function vw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;k=B-48|0,B=k,i[k+44>>2]=0,i[k+36>>2]=0,i[k+40>>2]=0;i:{if(!f){f=i[9282],i[k+24>>2]=i[9281],i[k+28>>2]=f,f=i[9280],i[k+16>>2]=i[9279],i[k+20>>2]=f,f=i[9278],i[k+8>>2]=i[9277],i[k+12>>2]=f,ki(k+36|0,k+8|0,k+32|0,6);break i}n=U(4),i[n>>2]=f,f=n+4|0,i[k+44>>2]=f,i[k+36>>2]=n,i[k+40>>2]=f}Ve();i:{if(n=i[19569],(n|0)==78280|i[k+36>>2]==i[k+40>>2])break i;r:{for(;;){e:{f=i[k+36>>2],A=i[k+40>>2];A:{if((f|0)==(A|0))break A;for(_=i[n+16>>2];;){if(v=V[i[_+16>>2]](i[f>>2])|0,!v){if(f=f+4|0,(A|0)!=(f|0))continue;break A}break}if(o>>>0>>0){i[o+4>>2]=v,i[o>>2]=_,o=o+8|0;break A}if(u=o-t>>3,w=u+1|0,w>>>0>=536870912)break e;if(A=h-t|0,f=A>>2,h=A>>>0>=2147483640?536870911:f>>>0>w>>>0?f:w,h){if(h>>>0>=536870912)break r;A=U(h<<3)}else A=0;if(u=A+(u<<3)|0,i[u+4>>2]=v,i[u>>2]=_,f=u,(t|0)!=(o|0))for(;o=o-8|0,w=i[o+4>>2],f=f-8|0,i[f>>2]=i[o>>2],i[f+4>>2]=w,(t|0)!=(o|0););h=A+(h<<3)|0,o=u+8|0,t&&G(t),t=f}A=i[n+4>>2];A:{if(A){for(;;)if(f=A,A=i[f>>2],!A)break A}for(;f=i[n+8>>2],A=i[f>>2]!=(n|0),n=f,!!A;);}if(n=f,(f|0)!=78280)continue;break i}break}L3(4917),P()}_2(),P()}n=o-t>>3;i:{if(!e||(f=0,mk(t,o,(t|0)!=(o|0)?62-($2(n)<<1)|0:0,1),n=(r|0)>(n|0)?n:r,(n|0)<=0))break i;if(n>>>0>=4)for(u=n&2147483644,A=0;i[(f<<2)+e>>2]=i[(f<<3)+t>>2],r=f|1,i[(r<<2)+e>>2]=i[(r<<3)+t>>2],r=f|2,i[(r<<2)+e>>2]=i[(r<<3)+t>>2],r=f|3,i[(r<<2)+e>>2]=i[(r<<3)+t>>2],f=f+4|0,A=A+4|0,(u|0)!=(A|0););if(r=n&3,!r)break i;for(A=0;i[(f<<2)+e>>2]=i[(f<<3)+t>>2],f=f+1|0,A=A+1|0,(r|0)!=(A|0););}return f=i[k+36>>2],f&&(i[k+40>>2]=f,G(f)),t&&G(t),B=k+48|0,n|0}function mw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,k=i[13708],i[A+12>>2]=k,n=i[k-12>>2],k=A+12|0,i[n+k>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,Hr(n,e,r),o=k,u=n,k=l[A+159|0],n=(k|0)<0,x(o,n?i[A+148>>2]:u,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),u=k,k=l[A+159|0],n=(k|0)<0,x(A+12|0,n?i[A+148>>2]:u,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),n=x(A+12|0,21262,13),k=i[e+48>>2],l[A+11|0]=4,l[A+3|0]=k,l[A+2|0]=k>>>8,l[A+1|0]=k>>>16,l[A|0]=k>>>24,l[A+4|0]=0,k=x(x(n,A,4),31338,1),n=A+148|0,W0(n,r),u=n,n=l[A+159|0],o=(n|0)<0,x(k,o?i[A+148>>2]:u,o?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),k=x(L0(x(k,20346,15),i[e+52>>2]),31338,1),n=A+148|0,W0(n,r),u=n,r=l[A+159|0],n=(r|0)<0,x(k,n?i[A+148>>2]:u,n?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),x(k,20085,19),l[A+11|0]<0&&G(i[A>>2]),r=i[e+56>>2],k=i[e+60>>2];i:{if((r|0)==(k|0)||(e=i[r>>2],l[A+152|0]=0,l[A+159|0]=4,l[A+151|0]=e,l[A+150|0]=e>>>8,l[A+149|0]=e>>>16,l[A+148|0]=e>>>24,x(A+12|0,A+148|0,4),l[A+159|0]<0&&G(i[A+148>>2]),r=r+4|0,(k|0)==(r|0)))break i;for(;e=i[r>>2],l[A+148|0]=44,n=A+12|0,o=A+148|0,x(n,o,1),l[A+152|0]=0,l[A+159|0]=4,l[A+151|0]=e,l[A+150|0]=e>>>8,l[A+149|0]=e>>>16,l[A+148|0]=e>>>24,x(n,o,4),l[A+159|0]<0&&G(i[A+148>>2]),r=r+4|0,(k|0)!=(r|0););}e=A+12|0,x(e,31338,1),i2(f,t),f=i[13707],i[A+12>>2]=f,i[e+i[f-12>>2]>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function bk(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;v=B-16|0,B=v,h=x0(t,100184),p=x0(t,100256),t=p,V[i[i[t>>2]+20>>2]](v+4|0,t),i[n>>2]=A;i:{r:switch(u=f,t=s[u|0],t-43|0){case 0:case 2:break r;default:break i}t=V[i[i[h>>2]+44>>2]](h,t<<24>>24)|0,o=i[n>>2],i[n>>2]=o+4,i[o>>2]=t,u=f+1|0}i:{if(t=u,!((r-t|0)<=1|s[t|0]!=48|(s[t+1|0]|32)!=120))for(o=V[i[i[h>>2]+44>>2]](h,48)|0,u=i[n>>2],i[n>>2]=u+4,i[u>>2]=o,o=V[i[i[h>>2]+44>>2]](h,l[t+1|0])|0,u=i[n>>2],i[n>>2]=u+4,i[u>>2]=o,u=t+2|0,t=u;;){if(r>>>0<=t>>>0||(o=l[t|0],M2(),!(o-48>>>0<10|(o|32)-97>>>0<6)))break i;t=t+1|0}for(;;){if(r>>>0<=t>>>0||(o=l[t|0],M2(),o-48>>>0>=10))break i;t=t+1|0}}s[v+15|0]>>>7|0?o=i[v+8>>2]:o=s[v+15|0]&127;i:{if(!o){V[i[i[h>>2]+48>>2]](h,u,t,i[n>>2])|0,i[n>>2]=i[n>>2]+(t-u<<2);break i}for(li(u,t),C=V[i[i[p>>2]+16>>2]](p)|0,o=u;;){if(t>>>0<=o>>>0)te((u-f<<2)+A|0,i[n>>2]);else{w=v+4|0;r:{if(s[w+11|0]>>>7|0){Z=i[w>>2];break r}Z=w}I=l[Z+W|0]<=0,s[w+11|0]>>>7|0?Z=i[w>>2]:Z=w,I|l[Z+W|0]!=(_|0)||(_=i[n>>2],i[n>>2]=_+4,i[_>>2]=C,s[w+11|0]>>>7|0?w=i[w+4>>2]:w=s[w+11|0]&127,W=(w-1>>>0>W>>>0)+W|0,_=0),w=V[i[i[h>>2]+44>>2]](h,l[o|0])|0,Z=i[n>>2],i[n>>2]=Z+4,i[Z>>2]=w,o=o+1|0,_=_+1|0;continue}break}}i:{r:{for(;;){if(r>>>0<=t>>>0)break r;if(o=t+1|0,t=l[t|0],(t|0)!=46){t=V[i[i[h>>2]+44>>2]](h,t)|0,u=i[n>>2],i[n>>2]=u+4,i[u>>2]=t,t=o;continue}break}t=V[i[i[p>>2]+12>>2]](p)|0,u=i[n>>2],_=u+4|0,i[n>>2]=_,i[u>>2]=t;break i}_=i[n>>2],o=t}V[i[i[h>>2]+48>>2]](h,o,r,_)|0,t=n,n=i[n>>2]+(r-o<<2)|0,i[t>>2]=n,i[k>>2]=(e|0)==(r|0)?n:(e-f<<2)+A|0,z0(v+4|0),B=v+16|0}function Bw(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0;if(I=r,y=A,n=B-16|0,B=n,w=i[e>>2],A=i[w+60>>2],v=w- -64|0,(A|0)!=(v|0))for(;;){x9(I,y,i[A+16>>2],i[w+36>>2],n+12|0,n+8|0),o=i[A+28>>2],h=i[A+24>>2],u=i[n+12>>2],t=i[n+8>>2];i:{if(!((u|0)>i[A+32>>2]|(t|0)>i[A+36>>2])){e=s[A+20|0]+7>>>3|0;break i}e=1;r:e:{A:{f:{k:switch(k=i[w+36>>2],k|0){case 0:case 1:case 2:case 3:case 99:break e;case 11:case 13:case 15:break f;case 10:case 12:case 14:break k;default:break A}e=3;break r}e=4;break r}e=0}if(r=e,e=s[A+20|0],e=(e|0)==24&&(k|0)==10?8:e,Z=(k|0)==11&&(e|0)==32?8:e,e=Z+7>>>3|0,k=u+1|0,p=k>>>0<64?64:k&-2,k=m(e,m(r,p))+15&-16,r=t+1|0,W=r>>>0<64?64:r&-2,_=U(m(k,W)|15),r=_&15,C=(r?16-r|0:0)+_|0,i[A+28>>2]>0)for(r=0;l0(m(r,k)+C|0,i[A+40>>2]+m(i[A+48>>2],r)|0,i[A+24>>2]),r=r+1|0,(r|0)>2];);i[A+48>>2]=k,i[A+44>>2]=_,i[A+40>>2]=C,i[A+36>>2]=W,i[A+32>>2]=p,i[A+28>>2]=t,i[A+24>>2]=u,l[A+20|0]=Z}i:{if((o|0)<=0||(k=0,(u|0)<=(h|0)))break i;for(;;){if(r=h,(u|0)>(r|0))for(;t=i[A+40>>2]+m(i[A+48>>2],k)|0,l0(t+m(e,r)|0,t+m(i[A+24>>2]-1|0,e)|0,e),r=r+1|0,u=i[n+12>>2],(r|0)<(u|0););if(k=k+1|0,(k|0)==(o|0))break}t=i[n+8>>2]}if((o|0)<(t|0))for(;h=i[A+40>>2],r=i[A+48>>2],l0(h+m(r,o)|0,h+m(r,i[A+28>>2]-1|0)|0,m(i[n+12>>2],e)),o=o+1|0,(o|0)>2];);r=i[A+4>>2];i:{if(r){for(;;)if(e=r,r=i[r>>2],!r)break i}for(;e=i[A+8>>2],r=i[e>>2]!=(A|0),A=e,!!r;);}if(A=e,(v|0)==(A|0))break}B=n+16|0,e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}function Zw(f,e,r,A,k,n,t,o,u){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0;var h=0,w=0,_=0,v=0,Z=0,p=0,W=0;h=B-32|0,B=h;i:{r:{e:{if(!(!e|!n)&&(_=(A|0)!=1970628964,k|_))break e;i[f>>2]=5,i[f+4>>2]=2001,i[f+8>>2]=7049;break r}w=U(80),i[w+4>>2]=0,i[w+8>>2]=0,i[w>>2]=72464,v=w+16|0,i[v+8>>2]=0,i[v+12>>2]=0,i[v+16>>2]=0,i[v+20>>2]=0,i[v+24>>2]=0,i[v+28>>2]=0,i[v+32>>2]=0,i[v>>2]=68500,i[w+60>>2]=0,i[w+52>>2]=0,i[w+56>>2]=0,i[v>>2]=68664,i[w+72>>2]=0,i[w+64>>2]=0,i[w+68>>2]=0,i[w+32>>2]=A;e:{if(_||(A=U(16),i[h+20>>2]=A,Z=A+16|0,i[h+28>>2]=Z,_=s[k+12|0]|s[k+13|0]<<8|(s[k+14|0]<<16|s[k+15|0]<<24),p=s[k+8|0]|s[k+9|0]<<8|(s[k+10|0]<<16|s[k+11|0]<<24),l[A+8|0]=p,l[A+9|0]=p>>>8,l[A+10|0]=p>>>16,l[A+11|0]=p>>>24,l[A+12|0]=_,l[A+13|0]=_>>>8,l[A+14|0]=_>>>16,l[A+15|0]=_>>>24,_=s[k+4|0]|s[k+5|0]<<8|(s[k+6|0]<<16|s[k+7|0]<<24),k=s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24),l[A|0]=k,l[A+1|0]=k>>>8,l[A+2|0]=k>>>16,l[A+3|0]=k>>>24,l[A+4|0]=_,l[A+5|0]=_>>>8,l[A+6|0]=_>>>16,l[A+7|0]=_>>>24,i[h+24>>2]=Z,i[v+16>>2]=1970628964,k=v+20|0,A=h+20|0,(k|0)!=(A|0)&&(Z=k,k=i[A>>2],A=i[A+4>>2],W8(Z,k,A,A-k|0)),A=i[h+20>>2],!A))break e;i[h+24>>2]=A,G(A)}if(i[h+28>>2]=0,i[h+20>>2]=0,i[h+24>>2]=0,A=0,t){if((t|0)<0)break i;A=U(t),i[h+20>>2]=A,W=A+t|0,i[h+28>>2]=W,l0(A,n,t),i[h+24>>2]=W}if(W8(w- -64|0,A,W,W-A|0),e=i[e>>2],i[h+16>>2]=w,i[h+12>>2]=v,i[w+4>>2]=i[w+4>>2]+1,k=i[h+16>>2],i[h>>2]=i[h+12>>2],i[h+4>>2]=k,e=Q3(e,r,h,(o|0)!=0),u&&(i[u>>2]=e),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],A&&G(A),f=i[w+4>>2],i[w+4>>2]=f-1,f)break r;V[i[i[w>>2]+8>>2]](w),g(w)}B=h+32|0;return}y0(),P()}function dk(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;_=B-16|0,B=_,h=x0(t,100192),p=x0(t,100248),t=p,V[i[i[t>>2]+20>>2]](_+4|0,t),i[n>>2]=A;i:{r:switch(u=f,t=s[u|0],t-43|0){case 0:case 2:break r;default:break i}t=V[i[i[h>>2]+28>>2]](h,t<<24>>24)|0,o=i[n>>2],i[n>>2]=o+1,l[o|0]=t,u=f+1|0}i:{if(t=u,!((r-t|0)<=1|s[t|0]!=48|(s[t+1|0]|32)!=120))for(o=V[i[i[h>>2]+28>>2]](h,48)|0,u=i[n>>2],i[n>>2]=u+1,l[u|0]=o,o=V[i[i[h>>2]+28>>2]](h,l[t+1|0])|0,u=i[n>>2],i[n>>2]=u+1,l[u|0]=o,u=t+2|0,t=u;;){if(r>>>0<=t>>>0||(o=l[t|0],M2(),!(o-48>>>0<10|(o|32)-97>>>0<6)))break i;t=t+1|0}for(;;){if(r>>>0<=t>>>0||(o=l[t|0],M2(),o-48>>>0>=10))break i;t=t+1|0}}s[_+15|0]>>>7|0?o=i[_+8>>2]:o=s[_+15|0]&127;i:{if(!o){V[i[i[h>>2]+32>>2]](h,u,t,i[n>>2])|0,i[n>>2]=i[n>>2]+(t-u|0);break i}for(li(u,t),C=V[i[i[p>>2]+16>>2]](p)|0,o=u;;){if(t>>>0<=o>>>0)li((u-f|0)+A|0,i[n>>2]);else{w=_+4|0;r:{if(s[w+11|0]>>>7|0){v=i[w>>2];break r}v=w}I=l[v+W|0]<=0,s[w+11|0]>>>7|0?v=i[w>>2]:v=w,I|l[v+W|0]!=(Z|0)||(Z=i[n>>2],i[n>>2]=Z+1,l[Z|0]=C,s[w+11|0]>>>7|0?w=i[w+4>>2]:w=s[w+11|0]&127,W=(w-1>>>0>W>>>0)+W|0,Z=0),w=V[i[i[h>>2]+28>>2]](h,l[o|0])|0,v=i[n>>2],i[n>>2]=v+1,l[v|0]=w,o=o+1|0,Z=Z+1|0;continue}break}}for(;;){i:{r:{if(r>>>0<=t>>>0){o=t;break r}if(o=t+1|0,t=l[t|0],(t|0)!=46)break i;t=V[i[i[p>>2]+12>>2]](p)|0,u=i[n>>2],i[n>>2]=u+1,l[u|0]=t}V[i[i[h>>2]+32>>2]](h,o,r,i[n>>2])|0,t=n,n=i[n>>2]+(r-o|0)|0,i[t>>2]=n,i[k>>2]=(e|0)==(r|0)?n:(e-f|0)+A|0,z0(_+4|0),B=_+16|0;return}t=V[i[i[h>>2]+28>>2]](h,t)|0,u=i[n>>2],i[n>>2]=u+1,l[u|0]=t,t=o}}function pw(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0;n=B-16|0,B=n,e=U(136),i[e+4>>2]=0,i[e+8>>2]=0,i[e>>2]=72792,B0(e+20|0,0,104),A=i[e+4>>2],o=A+1|0,i[e+4>>2]=o,i[e+56>>2]=0,i[e+60>>2]=0,i[e+44>>2]=99,i[e+48>>2]=99,i[e+32>>2]=3795,t=e- -64|0,i[t>>2]=0,i[t+4>>2]=0,i[e+132>>2]=0,i[e+124>>2]=0,i[e+128>>2]=0,i[e+84>>2]=1,i[e+88>>2]=1,i[e+72>>2]=e+76,i[e+92>>2]=0,i[e+96>>2]=0,i[e+100>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e+112>>2]=0,l[e+113|0]=0,l[e+114|0]=0,l[e+115|0]=0,l[e+116|0]=0,l[e+117|0]=0,l[e+118|0]=0,l[e+119|0]=0,l[e+120|0]=0,t=e+12|0,i[e+12>>2]=t,i[e+8>>2]=i[e+8>>2]+1,i[e+4>>2]=A,i[e+16>>2]=e,o||(V[i[i[e>>2]+8>>2]](e),g(e)),A=i[r>>2],o=i[A+24>>2],u=i[A+28>>2],_=i[A+32>>2],i[t+36>>2]=i[A+36>>2],i[t+32>>2]=_,i[t+28>>2]=u,i[t+24>>2]=o;i:{r:{for(;;){A=i[v+41232>>2];e:{if(!H2(i[r>>2],A))break e;if(o=y4(i[r>>2],A),Z=F4(i[r>>2],A),!J0(t,A,o,Z,i[k+12>>2]))break r;if(u=U0(i[r>>2],A),w=i[k+12>>2],E=v0(i[r>>2],A,n+12|0),J=v0(t,A,n+8|0),I=i[n+8>>2]/2|0,i[n+8>>2]=I,(Z|0)<=0|(o|0)<=0)break e;for(_=(u<<1)-w|0,w=w-u|0,R=i[n+12>>2],D=o&2147483646,z=o&1,u=0;;){if(p=m(u,R)+E|0,W=(m(u,I)<<1)+J|0,A=0,C=0,(o|0)!=1)for(;h=s[A+p|0],X[(A<<1)+W>>1]=h<>>_,y=A|1,h=s[y+p|0],X[(y<<1)+W>>1]=h<>>_,A=A+2|0,C=C+2|0,(D|0)!=(C|0););if(z&&(h=(A<<1)+W|0,A=s[A+p|0],X[h>>1]=A<>>_),u=u+1|0,(Z|0)==(u|0))break}}if(v=v+4|0,(v|0)==28)break}i[f+4>>2]=e,i[f>>2]=t;break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[e+4>>2],i[e+4>>2]=f-1,f)break i;V[i[i[e>>2]+8>>2]](e),g(e)}B=n+16|0}function Jr(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;u=B-16|0,B=u,n=U(88),i[n+4>>2]=0,i[n+8>>2]=0,i[n>>2]=71704,h=n+16|0,i[h+8>>2]=0,i[h+12>>2]=0,i[h+16>>2]=0,i[h+20>>2]=0,i[h+24>>2]=0,i[h+28>>2]=0,i[h+32>>2]=0,i[h>>2]=68500,i[n+52>>2]=0,i[n+56>>2]=0,i[n+68>>2]=0,l[n+57|0]=0,l[n+58|0]=0,l[n+59|0]=0,l[n+60|0]=0,l[n+61|0]=0,l[n+62|0]=0,l[n+63|0]=0,l[n+64|0]=0,i[h>>2]=69672,i[n+80>>2]=0,i[n+72>>2]=0,i[n+76>>2]=0,i[n+32>>2]=1885960297,t=U(1),l[t|0]=r,r=t+1|0,i[n+80>>2]=r,i[n+72>>2]=t,i[n+76>>2]=r;i:{if(A|k){v=U(2),l[v+1|0]=A,l[v|0]=s[t|0],o=v+2|0,i[n+80>>2]=o,i[n+76>>2]=o,r=i[n+72>>2],i[n+72>>2]=v;r:{e:{if(!r){t=o;break e}if(G(r),i[n+76>>2]=o,t=i[n+80>>2],o>>>0>=t>>>0)break e;l[v+2|0]=k,k=v+3|0;break r}if(_=i[n+72>>2],r=o-_|0,w=r+1|0,(w|0)<0)break i;t=t-_|0,A=t<<1,w=t>>>0>=1073741823?2147483647:A>>>0>w>>>0?A:w,w?t=U(w):t=0,A=r+t|0,l[A|0]=k,Z=t+w|0,k=A+1|0;e:{if((o|0)==(_|0)){t=A;break e}if(w=r&3,w)for(r=0;A=A-1|0,o=o-1|0,l[A|0]=s[o|0],r=r+1|0,(w|0)!=(r|0););if((v-_|0)+1>>>0>=3)for(;l[A-1|0]=s[o-1|0],l[A-2|0]=s[o-2|0],l[A-3|0]=s[o-3|0],A=A-4|0,o=o-4|0,l[A|0]=s[o|0],(o|0)!=(_|0););_=i[n+72>>2]}if(i[n+80>>2]=Z,i[n+76>>2]=k,i[n+72>>2]=t,!_)break r;G(_)}i[n+76>>2]=k}r=i[f+44>>2],i[u+12>>2]=n,i[u+8>>2]=h,i[n+4>>2]=i[n+4>>2]+1,A=N4(r,u+8|0),k=i[u+12>>2];r:{if(!k||(r=i[k+4>>2],i[k+4>>2]=r-1,r))break r;V[i[i[k>>2]+8>>2]](k),g(k)}f=i[f+52>>2],X[u+6>>1]=A+1,l[u+4|0]=0,i[u>>2]=Q[u+4>>1]|Q[u+6>>1]<<16,c1(f,e,u),f=i[n+4>>2],i[n+4>>2]=f-1,f||(V[i[i[n>>2]+8>>2]](n),g(n)),B=u+16|0;return}y0(),P()}function Ww(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;if(t=B-32|0,B=t,u=V[i[i[e>>2]+32>>2]](e,r,0)|0,A2(r,s[e+48|0]),A2(r,(s[e+51|0]&31|(s[e+50|0]<<5|s[e+49|0]<<6))&255),l2(r,i[e+52>>2]),A=s[e+56|0],k=A>>>4|0,k=k&2|(k&1|(A>>>2&2|(A&4|A<<2&8)))<<2,A=A>>>6|0,A2(r,((k|A&1)<<2|A)&254),A=i[e+56>>2],k=A>>>10|0,n=k&2|(A>>>8&2|k&1)<<2,k=A>>>12|0,A=A>>>14|0,A2(r,(((n|k&1)<<2|k&2|A&1)<<2|A&2)&254),A=i[e+56>>2],k=A>>>18|0,n=k&2|(A>>>16&2|k&1)<<2,k=A>>>20|0,A=A>>>22|0,A2(r,(((n|k&1)<<2|k&2|A&1)<<2|A&2)&254),A=i[e+56>>2],k=A>>>26|0,n=k&2|(A>>>24&2|k&1)<<2,k=A>>>28|0,A=A>>>30|0,A2(r,(((n|k&1)<<2|k&2|A&1)<<2|A)&254),A=s[e+60|0],k=A>>>4|0,k=k&2|(k&1|(A>>>2&2|(A&4|A<<2&8)))<<2,A=A>>>6|0,A2(r,((k|A&1)<<2|A)&254),A=i[e+60>>2],k=A>>>10|0,n=k&2|(A>>>8&2|k&1)<<2,k=A>>>12|0,A=A>>>14|0,A2(r,(((n|k&1)<<2|k&2|A&1)<<2|A&2)&254),A2(r,s[e+64|0]),w2(r,Q[e+66>>1]|61440),A2(r,s[e+68|0]|252),A2(r,s[e+69|0]|252),A2(r,s[e+70|0]|248),A2(r,s[e+71|0]|248),w2(r,Q[e+72>>1]),A2(r,(s[e+80|0]-1&3|(s[e+76|0]<<2&4|(s[e+75|0]<<3&56|s[e+74|0]<<6)))&255),A2(r,i[e+88>>2]-i[e+84>>2]>>>4&255),A=i[e+84>>2],n=i[e+88>>2],(A|0)!=(n|0))for(;;){if(A2(r,s[A|0]<<6&64|s[A+1|0]&63),w2(r,(i[A+8>>2]-i[A+4>>2]|0)/12&65535),k=i[A+4>>2],o=i[A+8>>2],(k|0)!=(o|0))for(;w2(r,i[k+4>>2]-i[k>>2]&65535),D4(r,k),k=k+12|0,(o|0)!=(k|0););if(A=A+16|0,(n|0)==(A|0))break}Y4(t+12|0,e,r,u),l[t+31|0]<0&&G(i[t+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=t+32|0}function Xw(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0,o=0;A=B-16|0,B=A;i:{r:{if(!i[f+64>>2]){n=-1;break r}r=i[f+92>>2]&8,r||(i[f+28>>2]=0,i[f+20>>2]=0,i[f+24>>2]=0,n=s[f+98|0],e=i[(n?32:56)+f>>2],n=e+i[(n?52:60)+f>>2]|0,i[f+16>>2]=n,i[f+12>>2]=n,i[f+8>>2]=e,i[f+92>>2]=8),i[f+12>>2]||(e=A+16|0,i[f+16>>2]=e,i[f+12>>2]=e,i[f+8>>2]=A+15),r&&(e=i[f+16>>2],r=i[f+8>>2],i[A+4>>2]=4,i[A+8>>2]=(e-r|0)/2,e=B-16|0,B=e,B=e+16|0,e=A+4|0,r=A+8|0,t=i[(k0[e>>2]>2]?e:r)>>2]),n=-1,e=i[f+16>>2];e:{if((e|0)==i[f+12>>2]){if(F2(i[f+8>>2],e-t|0,t),s[f+98|0]==1){if(e=i[f+8>>2]+t|0,e=u9(e,i[f+16>>2]-e|0,i[f+64>>2]),!e)break e;r=i[f+8>>2],n=i[f+8>>2]+t|0,i[f+16>>2]=e+(i[f+8>>2]+t|0),i[f+12>>2]=n,i[f+8>>2]=r,n=s[i[f+12>>2]];break e}e=i[f+40>>2],r=i[f+36>>2];A:{if((e|0)==(r|0)){r=e;break A}F2(i[f+32>>2],r,e-r|0),e=i[f+36>>2],r=i[f+40>>2]}if(k=i[f+32>>2],e=r-e|0,i[f+36>>2]=k+e,r=(k|0)==(f+44|0)?8:i[f+52>>2],i[f+40>>2]=r+k,i[A+8>>2]=i[f+60>>2]-t,i[A+4>>2]=r-e,e=B-16|0,B=e,B=e+16|0,r=A+4|0,e=A+8|0,r=i[(k0[r>>2]>2]?r:e)>>2],k=i[f+76>>2],i[f+80>>2]=i[f+72>>2],i[f+84>>2]=k,k=u9(i[f+36>>2],r,i[f+64>>2]),!k)break e;if(r=i[f+68>>2],!r)break i;k=k+i[f+36>>2]|0,i[f+40>>2]=k,o=k,k=i[f+8>>2];A:{if((V[i[i[r>>2]+16>>2]](r,f+72|0,i[f+32>>2],o,f+36|0,k+t|0,k+i[f+60>>2]|0,e)|0)==3){e=i[f+32>>2],i[f+16>>2]=i[f+40>>2],i[f+12>>2]=e,i[f+8>>2]=e;break A}if(e=i[A+8>>2],r=i[f+8>>2],t=r+t|0,(e|0)==(t|0))break e;i[f+16>>2]=e,i[f+12>>2]=t,i[f+8>>2]=r}n=s[i[f+12>>2]];break e}n=s[i[f+12>>2]]}if(i[f+8>>2]!=(A+15|0))break r;i[f+16>>2]=0,i[f+12>>2]=0,i[f+8>>2]=0}return B=A+16|0,n|0}u1(),P()}function Gw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;A=B-32|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(A,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(k=i[19565],i[A>>2]=i[19564],i[A+4>>2]=k,o=A+8|0,l[78275]>=0){k=i[19567],i[o>>2]=i[19566],i[o+4>>2]=k,i[o+8>>2]=i[19568];break i}_0(o,i[19566],i[19567])}l[A+19|0]<0&&G(i[A+8>>2]);i:{r:{if(s[e+48|0]){h4(f,e,15336);break r}if(B4(A+20|0,r),l[e+67|0]<0&&G(i[e+56>>2]),k=i[A+24>>2],i[e+56>>2]=i[A+20>>2],i[e+60>>2]=k,i[e+64>>2]=i[A+28>>2],i[r+16>>2])for(;;){w=B2(r),h=i[e+72>>2],k=i[e+76>>2];e:{if(h>>>0>>0){l[h|0]=w,_=h+1|0;break e}if(u=i[e+68>>2],o=h-u|0,t=o+1|0,(t|0)<0)break i;n=k-u|0,k=n<<1,n=n>>>0>=1073741823?2147483647:k>>>0>t>>>0?k:t,n?k=U(n):k=0,t=o+k|0,l[t|0]=w,w=k+n|0,_=t+1|0;A:{if((u|0)==(h|0)){k=t;break A}if(v=0,n=h,o=o&3,o)for(;t=t-1|0,n=n-1|0,l[t|0]=s[n|0],v=v+1|0,(o|0)!=(v|0););if(u-h>>>0<=4294967292)for(;l[t-1|0]=s[n-1|0],l[t-2|0]=s[n-2|0],l[t-3|0]=s[n-3|0],t=t-4|0,n=n-4|0,l[t|0]=s[n|0],(n|0)!=(u|0););u=i[e+68>>2]}if(i[e+76>>2]=w,i[e+72>>2]=_,i[e+68>>2]=k,!u)break e;G(u)}if(i[e+72>>2]=_,!i[r+16>>2])break}if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(f,2,100,A+20|0),l[A+31|0]>=0)break r;G(i[A+20>>2]);break r}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,e=f+8|0,l[78275]>=0){f=i[19567],i[e>>2]=i[19566],i[e+4>>2]=f,i[e+8>>2]=i[19568];break r}_0(e,i[19566],i[19567])}B=A+32|0;return}y0(),P()}function Cw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;k=B-16|0,B=k,v=e,Z=B2(r),l[v+48|0]=Z,v=e,Z=B2(r),l[v+49|0]=Z,v=e,Z=B2(r),l[v+50|0]=Z,v=e,Z=B2(r),l[v+51|0]=Z,v=e,Z=(B2(r)&3)+1|0,l[v+52|0]=Z;i:{if(h=B2(r)&31,!h)break i;for(_=e+56|0;;){t=t2(r),i[k+12>>2]=0,i[k+4>>2]=0,i[k+8>>2]=0,n=0,A=0,t&&(A=U(t),i[k+4>>2]=A,n=A+t|0,i[k+12>>2]=n,B0(A,0,t),i[k+8>>2]=n),D6(r,A,n-A|0);r:{A=i[e+60>>2];e:{if(A>>>0>2]){if(i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,n=i[k+8>>2],o=i[k+4>>2],(n|0)!=(o|0)){if(n=n-o|0,(n|0)<0)break r;t=U(n),i[A+4>>2]=t,i[A>>2]=t,w=n+t|0,i[A+8>>2]=w,l0(t,o,n),i[A+4>>2]=w}A=A+12|0;break e}A=v6(_,k+4|0)}if(i[e+60>>2]=A,A=i[k+4>>2],A&&(i[k+8>>2]=A,G(A)),u=u+1|0,(h|0)!=(u|0))continue;break i}break}y0(),P()}i:{if(h=B2(r),!h)break i;for(_=e+68|0,u=0;;){t=t2(r),i[k+12>>2]=0,i[k+4>>2]=0,i[k+8>>2]=0,n=0,A=0,t&&(A=U(t),i[k+4>>2]=A,n=A+t|0,i[k+12>>2]=n,B0(A,0,t),i[k+8>>2]=n),D6(r,A,n-A|0);r:{A=i[e+72>>2];e:{if(A>>>0>2]){if(i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,n=i[k+8>>2],o=i[k+4>>2],(n|0)!=(o|0)){if(n=n-o|0,(n|0)<0)break r;t=U(n),i[A+4>>2]=t,i[A>>2]=t,w=n+t|0,i[A+8>>2]=w,l0(t,o,n),i[A+4>>2]=w}A=A+12|0;break e}A=v6(_,k+4|0)}if(i[e+72>>2]=A,A=i[k+4>>2],A&&(i[k+8>>2]=A,G(A)),u=u+1|0,(h|0)!=(u|0))continue;break i}break}y0(),P()}i:{if(s[r+20|0]==1){if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,100,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+16|0}function Vw(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;f=B-480|0,B=f,t=f+476|0,o=i[A+28>>2],i[t>>2]=o,(o|0)!=100008&&(i[o+4>>2]=i[o+4>>2]+1),p=x0(t,100184),s[n+11|0]>>>7|0?t=i[n+4>>2]:t=s[n+11|0]&127,t&&(s[n+11|0]>>>7|0?t=i[n>>2]:t=n,W=i[t>>2]==(V[i[i[p>>2]+44>>2]](p,45)|0)),t=B-16|0,B=t,_=f+452|0,i[_>>2]=0,i[_+4>>2]=0,i[_+8>>2]=0,B=t+16|0,t=B-16|0,B=t,u=f+440|0,i[u>>2]=0,i[u+4>>2]=0,i[u+8>>2]=0,B=t+16|0,t=B-16|0,B=t,h=f+428|0,i[h>>2]=0,i[h+4>>2]=0,i[h+8>>2]=0,B=t+16|0,Zn(r,W,f+476|0,f+472|0,f+468|0,f+464|0,_,u,h,f+424|0),i[f+16>>2]=1094,r=f+16|0,w=o1(f+8|0,0,r);i:{s[n+11|0]>>>7|0?t=i[n+4>>2]:t=s[n+11|0]&127;r:{if((t|0)>i[f+424>>2]){s[n+11|0]>>>7|0?o=i[n+4>>2]:o=s[n+11|0]&127,t=i[f+424>>2],s[u+11|0]>>>7|0?v=i[u+4>>2]:v=s[u+11|0]&127,s[h+11|0]>>>7|0?Z=i[h+4>>2]:Z=s[h+11|0]&127,t=(t+(v+(Z+(o-t<<1)|0)|0)|0)+1|0;break r}v=i[f+424>>2],s[h+11|0]>>>7|0?t=i[h+4>>2]:t=s[h+11|0]&127,s[u+11|0]>>>7|0?o=i[u+4>>2]:o=s[u+11|0]&127,t=(v+(t+o|0)|0)+2|0}if(t>>>0<101||(r=Z2(t<<2),t=i[w>>2],i[w>>2]=r,t&&V[i[w+4>>2]](t),r=i[w>>2],r))break i;u1(),P()}return v=f+4|0,Z=i[A+4>>2],s[n+11|0]>>>7|0?t=i[n>>2]:t=n,o=t,s[n+11|0]>>>7|0?t=i[n>>2]:t=n,s[n+11|0]>>>7|0?n=i[n+4>>2]:n=s[n+11|0]&127,Lk(r,v,f,Z,o,t+(n<<2)|0,p,W,f+472|0,i[f+468>>2],i[f+464>>2],_,u,h,i[f+424>>2]),e=X8(e,r,i[f+4>>2],i[f>>2],A,k),r=i[w>>2],i[w>>2]=0,r&&V[i[w+4>>2]](r),l1(h),l1(u),z0(_),O0(f+476|0),B=f+480|0,e|0}function Iw(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;f=B-176|0,B=f,t=f+172|0,o=i[A+28>>2],i[t>>2]=o,(o|0)!=100008&&(i[o+4>>2]=i[o+4>>2]+1),p=x0(t,100192),s[n+11|0]>>>7|0?t=i[n+4>>2]:t=s[n+11|0]&127,t&&(s[n+11|0]>>>7|0?t=i[n>>2]:t=n,W=s[t|0]==(V[i[i[p>>2]+28>>2]](p,45)&255)),t=B-16|0,B=t,_=f+152|0,i[_>>2]=0,i[_+4>>2]=0,i[_+8>>2]=0,B=t+16|0,t=B-16|0,B=t,u=f+140|0,i[u>>2]=0,i[u+4>>2]=0,i[u+8>>2]=0,B=t+16|0,t=B-16|0,B=t,h=f+128|0,i[h>>2]=0,i[h+4>>2]=0,i[h+8>>2]=0,B=t+16|0,Wn(r,W,f+172|0,f+168|0,f+167|0,f+166|0,_,u,h,f+124|0),i[f+16>>2]=1094,r=f+16|0,w=o1(f+8|0,0,r);i:{s[n+11|0]>>>7|0?t=i[n+4>>2]:t=s[n+11|0]&127;r:{if((t|0)>i[f+124>>2]){s[n+11|0]>>>7|0?o=i[n+4>>2]:o=s[n+11|0]&127,t=i[f+124>>2],s[u+11|0]>>>7|0?v=i[u+4>>2]:v=s[u+11|0]&127,s[h+11|0]>>>7|0?Z=i[h+4>>2]:Z=s[h+11|0]&127,t=(t+(v+(Z+(o-t<<1)|0)|0)|0)+1|0;break r}v=i[f+124>>2],s[h+11|0]>>>7|0?t=i[h+4>>2]:t=s[h+11|0]&127,s[u+11|0]>>>7|0?o=i[u+4>>2]:o=s[u+11|0]&127,t=(v+(t+o|0)|0)+2|0}if(t>>>0<101||(r=Z2(t),t=i[w>>2],i[w>>2]=r,t&&V[i[w+4>>2]](t),r=i[w>>2],r))break i;u1(),P()}return v=f+4|0,Z=i[A+4>>2],s[n+11|0]>>>7|0?t=i[n>>2]:t=n,o=t,s[n+11|0]>>>7|0?t=i[n>>2]:t=n,s[n+11|0]>>>7|0?n=i[n+4>>2]:n=s[n+11|0]&127,Kk(r,v,f,Z,o,t+n|0,p,W,f+168|0,l[f+167|0],l[f+166|0],_,u,h,i[f+124>>2]),e=G8(e,r,i[f+4>>2],i[f>>2],A,k),r=i[w>>2],i[w>>2]=0,r&&V[i[w+4>>2]](r),z0(h),z0(u),z0(_),O0(f+172|0),B=f+176|0,e|0}function Qw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;k=B-32|0,B=k,A=D0(r),i[e+52>>2]=A&16777215,l[e+48|0]=A>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[k+20|0]=0,l[k+31|0]=0,r0(k,2,100,k+20|0),l[k+31|0]>=0)break i;G(i[k+20>>2]);break i}if(A=i[19565],i[k>>2]=i[19564],i[k+4>>2]=A,A=k+8|0,l[78275]>=0){n=i[19567],i[A>>2]=i[19566],i[A+4>>2]=n,i[A+8>>2]=i[19568];break i}_0(A,i[19566],i[19567])}l[k+19|0]<0&&G(i[k+8>>2]);i:{if(s[e+48|0]){h4(f,e,8812);break i}if(A=D0(r),(A|0)<0){if(e=U(32),i[k+20>>2]=e,i[k+24>>2]=30,i[k+28>>2]=-2147483616,r=s[17430]|s[17431]<<8|(s[17432]<<16|s[17433]<<24),A=s[17426]|s[17427]<<8|(s[17428]<<16|s[17429]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+30|0]=0,r=s[17452]|s[17453]<<8|(s[17454]<<16|s[17455]<<24),A=s[17448]|s[17449]<<8|(s[17450]<<16|s[17451]<<24),l[e+22|0]=A,l[e+23|0]=A>>>8,l[e+24|0]=A>>>16,l[e+25|0]=A>>>24,l[e+26|0]=r,l[e+27|0]=r>>>8,l[e+28|0]=r>>>16,l[e+29|0]=r>>>24,r=s[17446]|s[17447]<<8|(s[17448]<<16|s[17449]<<24),A=s[17442]|s[17443]<<8|(s[17444]<<16|s[17445]<<24),l[e+16|0]=A,l[e+17|0]=A>>>8,l[e+18|0]=A>>>16,l[e+19|0]=A>>>24,l[e+20|0]=r,l[e+21|0]=r>>>8,l[e+22|0]=r>>>16,l[e+23|0]=r>>>24,r=s[17438]|s[17439]<<8|(s[17440]<<16|s[17441]<<24),A=s[17434]|s[17435]<<8|(s[17436]<<16|s[17437]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,6,1e3,k+20|0),l[k+31|0]>=0)break i;G(i[k+20>>2]);break i}Yr(f,e,r,A)}B=k+32|0}function P1(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0;if(o=B-16|0,B=o,n=i[f+76>>2],!n){k=U(88),i[k+4>>2]=0,i[k+8>>2]=0,i[k>>2]=71184,n=k+16|0,i[n+8>>2]=0,i[n+12>>2]=0,i[n+16>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,i[n+28>>2]=0,i[n+32>>2]=0,i[n>>2]=68500,i[k+52>>2]=0,i[k+56>>2]=0,i[k+68>>2]=0,l[k+57|0]=0,l[k+58|0]=0,l[k+59|0]=0,l[k+60|0]=0,l[k+61|0]=0,l[k+62|0]=0,l[k+63|0]=0,l[k+64|0]=0,i[n>>2]=69612,i[k+80>>2]=0,i[k+72>>2]=0,i[k+76>>2]=0,i[k+32>>2]=1769104742,i[f+76>>2]=n,t=i[f+80>>2],i[f+80>>2]=k;i:{r:{e:{A:{f:{if(!t){t=i[f+36>>2],i[o+12>>2]=k,i[o+8>>2]=n;break f}if(k=i[t+4>>2],i[t+4>>2]=k-1,k||(V[i[i[t>>2]+8>>2]](t),g(t)),t=i[f+36>>2],n=i[f+76>>2],k=i[f+80>>2],i[o+12>>2]=k,i[o+8>>2]=n,!k)break A}if(i[k+4>>2]=i[k+4>>2]+1,h=t+40|0,u=i[t+40>>2],u>>>0>=k0[t+44>>2])break r;i[u+4>>2]=k,i[u>>2]=n,i[k+4>>2]=i[k+4>>2]+1;break e}if(h=t+40|0,u=i[t+40>>2],u>>>0>=k0[t+44>>2])break r;i[u+4>>2]=0,i[u>>2]=n}k=u+8|0;break i}k=Q2(t+36|0,o+8|0)}i[h>>2]=k,k=i[o+12>>2];i:{if(!k||(n=i[k+4>>2],i[k+4>>2]=n-1,n))break i;V[i[i[k>>2]+8>>2]](k),g(k)}n=i[f+76>>2]}f=B+-64|0,B=f,i[f+24>>2]=0,i[f+28>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f+40>>2]=0,i[f+24>>2]=r,i[f+16>>2]=0,i[f+20>>2]=0,i[f+60>>2]=0,i[f+52>>2]=0,i[f+56>>2]=0,i[f+48>>2]=e,i[f+8>>2]=68500,e=f+52|0,(e|0)!=(A|0)&&(k=e,e=i[A>>2],r=i[A+4>>2],ki(k,e,r,r-e>>2)),e=i[n+60>>2];i:{if(e>>>0>2]){Z6(e,f+8|0),e=e+56|0;break i}e=xA(n+56|0,f+8|0)}i[n+60>>2]=e,e=i[f+52>>2],e&&(i[f+56>>2]=e,G(e)),i[f+8>>2]=68500,e=i[f+28>>2],e&&(i[f+32>>2]=e,G(e)),B=f- -64|0,B=o+16|0}function yw(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0;k=B-48|0,B=k;i:{r:{if(!A){if(l[k+16|0]=0,l[k+27|0]=0,r=f,f=r0(k+28|0,5,2001,k+16|0),P0(r,f,i[e>>2]),l[f+19|0]<0&&G(i[f+8>>2]),l[k+27|0]>=0)break r;G(i[k+16>>2]);break r}n=i[e>>2],i[k+24>>2]=0,i[k+16>>2]=0,i[k+20>>2]=0,o=i[n+152>>2],u=i[n+156>>2];e:{if((o|0)!=(u|0)){if(n=u-o|0,(n|0)<0)break i;for(t=U(n),i[k+16>>2]=t,i[k+24>>2]=n+t,n=t;i[n>>2]=i[o>>2],h=n,n=i[o+4>>2],i[h+4>>2]=n,n&&(i[n+4>>2]=i[n+4>>2]+1),n=h+8|0,o=o+8|0,(u|0)!=(o|0););for(i[k+20>>2]=n,o=t;;){if(u=i[o>>2],i[u+20>>2]==(r|0)){r=U(16),i[r>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,i[r+12>>2]=0,i[A>>2]=r,n=i[o+4>>2];A:{if(!n){i[r+4>>2]=n,i[r>>2]=u;break A}if(i[n+4>>2]=i[n+4>>2]+1,i[r>>2]=u,t=i[r+4>>2],i[r+4>>2]=n,!t||(r=i[t+4>>2],i[t+4>>2]=r-1,r))break A;V[i[i[t>>2]+8>>2]](t),g(t)}r=i[e+8>>2],A=i[A>>2],t=i[e+12>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),i[A+8>>2]=r,r=i[A+12>>2],i[A+12>>2]=t;A:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break A;V[i[i[r>>2]+8>>2]](r),g(r)}P0(f,78256,i[e>>2]),t=i[k+16>>2];break e}if(n=(o|0)!=(h|0),o=o+8|0,!n)break}}if(l[k+4|0]=0,l[k+15|0]=0,r=r0(k+28|0,5,2e3,k+4|0),l[k+15|0]<0&&G(i[k+4>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break e;G(i[r+8>>2])}if(!t)break r;if(f=t,o=i[k+20>>2],(o|0)!=(t|0)){for(;;){f=i[o-4>>2];e:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break e;V[i[i[f>>2]+8>>2]](f),g(f)}if(o=o-8|0,(o|0)==(t|0))break}f=i[k+16>>2]}i[k+20>>2]=t,G(f)}B=k+48|0;return}y0(),P()}function Fw(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0;k=B-48|0,B=k;i:{r:{if(!A){if(l[k+16|0]=0,l[k+27|0]=0,r=f,f=r0(k+28|0,5,2001,k+16|0),P0(r,f,i[e>>2]),l[f+19|0]<0&&G(i[f+8>>2]),l[k+27|0]>=0)break r;G(i[k+16>>2]);break r}n=i[e>>2],i[k+24>>2]=0,i[k+16>>2]=0,i[k+20>>2]=0,o=i[n+36>>2],u=i[n+40>>2];e:{if((o|0)!=(u|0)){if(n=u-o|0,(n|0)<0)break i;for(t=U(n),i[k+16>>2]=t,i[k+24>>2]=n+t,n=t;i[n>>2]=i[o>>2],h=n,n=i[o+4>>2],i[h+4>>2]=n,n&&(i[n+4>>2]=i[n+4>>2]+1),n=h+8|0,o=o+8|0,(u|0)!=(o|0););for(i[k+20>>2]=n,o=t;;){if(u=i[o>>2],i[u+20>>2]==(r|0)){r=U(16),i[r>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,i[r+12>>2]=0,i[A>>2]=r,n=i[o+4>>2];A:{if(!n){i[r+4>>2]=n,i[r>>2]=u;break A}if(i[n+4>>2]=i[n+4>>2]+1,i[r>>2]=u,t=i[r+4>>2],i[r+4>>2]=n,!t||(r=i[t+4>>2],i[t+4>>2]=r-1,r))break A;V[i[i[t>>2]+8>>2]](t),g(t)}r=i[e+8>>2],A=i[A>>2],t=i[e+12>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),i[A+8>>2]=r,r=i[A+12>>2],i[A+12>>2]=t;A:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break A;V[i[i[r>>2]+8>>2]](r),g(r)}P0(f,78256,i[e>>2]),t=i[k+16>>2];break e}if(n=(o|0)!=(h|0),o=o+8|0,!n)break}}if(l[k+4|0]=0,l[k+15|0]=0,r=r0(k+28|0,5,2e3,k+4|0),l[k+15|0]<0&&G(i[k+4>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break e;G(i[r+8>>2])}if(!t)break r;if(f=t,o=i[k+20>>2],(o|0)!=(t|0)){for(;;){f=i[o-4>>2];e:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break e;V[i[i[f>>2]+8>>2]](f),g(f)}if(o=o-8|0,(o|0)==(t|0))break}f=i[k+16>>2]}i[k+20>>2]=t,G(f)}B=k+48|0;return}y0(),P()}function Ew(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,t=i[13708],i[A+12>>2]=t,k=A+12|0,i[k+i[t-12>>2]>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),o=k,u=n,k=l[A+159|0],n=(k|0)<0,x(o,n?i[A+148>>2]:u,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],n=(k|0)<0,x(A+12|0,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(Q4(x(Q4(x(k,19560,17),i0[e+64>>3]),21692,2),i0[e+72>>3]),31338,1);i:{if(s[e+80|0]==1){n=A+148|0,W0(n,r),o=k,u=n,k=l[A+159|0],n=(k|0)<0,x(o,n?i[A+148>>2]:u,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(Q4(x(Q4(x(k,20510,14),i0[e+56>>3]),21692,2),i0[e+88>>3]),31338,1),n=A+148|0,W0(n,r),o=k,r=l[A+159|0],k=(r|0)<0,x(o,k?i[A+148>>2]:n,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),x(Q4(x(A+12|0,19553,6),i0[e+96>>3]),31338,1);break i}k=A+148|0,W0(k,r),o=k,k=l[A+159|0],n=(k|0)<0,x(A+12|0,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(Q4(x(k,20510,14),i0[e+56>>3]),31338,1),e=A+148|0,W0(e,r),n=e,e=l[A+159|0],r=(e|0)<0,x(k,r?i[A+148>>2]:n,r?i[A+152>>2]:e),l[A+159|0]<0&&G(i[A+148>>2]),x(A+12|0,21743,8)}i2(f,t),f=i[13707],i[A+12>>2]=f,i[i[f-12>>2]+(A+12|0)>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function u6(f,e,r,A,k,n,t,o,u){var h=0,w=0,_=0,v=0;h=B-32|0,B=h,D8(h+24|0,i[e+48>>2],n),n=i[h+24>>2],l[n+124|0]=1,i[n+52>>2]=i[n+52>>2]&-2|1;i:{r:{if(!t)break r;if(_=i[h+24>>2],n=G2(t),n>>>0>=2147483640)break i;e:{A:{if(n>>>0>=11){v=(n|7)+1|0,w=U(v),i[h+20>>2]=v|-2147483648,i[h+12>>2]=w,i[h+16>>2]=n;break A}if(l[h+23|0]=n,w=h+12|0,!n)break e}l0(w,t,n)}l[n+w|0]=0,n=_+88|0;e:{if((n|0)==(h+12|0))break e;if(t=l[h+23|0],l[_+99|0]>=0){if((t|0)>=0){t=i[h+16>>2],i[n>>2]=i[h+12>>2],i[n+4>>2]=t,i[n+8>>2]=i[h+20>>2];break e}i4(n,i[h+12>>2],i[h+16>>2]);break e}w=n,n=(t|0)<0,_4(w,n?i[h+12>>2]:h+12|0,n?i[h+16>>2]:t)}if(l[h+23|0]>=0)break r;G(i[h+12>>2])}n=i[i[h+24>>2]+56>>2],u&&(i[u>>2]=n),t=i[e+48>>2],u=i[i[r>>2]+20>>2],r=U(4),i[h+12>>2]=r,w=r+4|0,i[h+20>>2]=w,i[r>>2]=u,i[h+16>>2]=w,P1(t,n,1667527523,h+12|0),r=i[h+12>>2],r&&(i[h+16>>2]=r,G(r)),i[h+20>>2]=0,i[h+12>>2]=0,i[h+16>>2]=0;r:{e:switch(o-3|0){case 1:if(l[h|0]=0,l[h+11|0]=0,r0(f,4,3005,h),l[h+11|0]>=0)break r;G(i[h>>2]);break r;case 0:if(l[h|0]=0,l[h+11|0]=0,r0(f,4,3005,h),l[h+11|0]>=0)break r;G(i[h>>2]);break r;default:break e}if(k?(L2(h+12|0,k),r=i[h+12>>2]):r=0,l0(r,A,k),hi(i[e+48>>2],n,h+12|0,0),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break r}_0(f,i[19566],i[19567])}f=i[h+12>>2],f&&(i[h+16>>2]=f,G(f)),f=i[h+28>>2];r:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}B=h+32|0;return}c2(),P()}function Yw(f){f=f|0;var e=0,r=0,A=0,k=0;he(f+120|0,i[f+124>>2]),e=i[f+116>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+108>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+100>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+92>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+84>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+76>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+68>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+60>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+52>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+44>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+36>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(e=i[f+20>>2],e){if(r=e,A=i[f+24>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+20>>2]}i[f+24>>2]=e,G(r)}f=i[f+16>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}}function Jw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,k=i[13708],i[A+12>>2]=k,n=i[k-12>>2],k=A+12|0,i[n+k>>2]=i[13709],o=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(o,n),i[o+72>>2]=0,i[o+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,o=$0(n),i[o>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),t=k,u=n,k=l[A+159|0],n=(k|0)<0,x(t,n?i[A+148>>2]:u,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,k=l[A+159|0],n=(k|0)<0,x(A+12|0,n?i[A+148>>2]:t,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(k,21642,25),x(L0(x(L0(x(k,18657,1),Q[e+48>>1]),16376,1),Q[e+54>>1]),21691,3),x(L0(x(L0(x(k,18657,1),Q[e+50>>1]),16376,1),Q[e+56>>1]),21691,3),x(L0(x(L0(x(k,18657,1),Q[e+52>>1]),16376,1),Q[e+58>>1]),31337,2),n=A+148|0,W0(n,r),t=k,u=n,k=l[A+159|0],n=(k|0)<0,x(t,n?i[A+148>>2]:u,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(L0(x(L0(x(k,18638,20),Q[e+60>>1]),16376,1),Q[e+62>>1]),31337,2),n=A+148|0,W0(n,r),t=k,u=n,k=l[A+159|0],n=(k|0)<0,x(t,n?i[A+148>>2]:u,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(L0(x(k,21146,33),i[e+64>>2]),31338,1),n=A+148|0,W0(n,r),t=k,r=l[A+159|0],k=(r|0)<0,x(t,k?i[A+148>>2]:n,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(L0(x(r,21180,33),i[e+68>>2]),31338,1),i2(f,o),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[o>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(o),T0(A+68|0),B=A+160|0}function ck(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;n=B-160|0,B=n,i[n+20>>2]=54496,i[n+76>>2]=54516,o=i[13633],i[n+12>>2]=o,h=n+12|0,i[h+i[o-12>>2]>>2]=i[13634],i[n+16>>2]=0,o=h+i[i[n+12>>2]-12>>2]|0,t=n+24|0,b0(o,t),i[o+72>>2]=0,i[o+76>>2]=-1,o=i[13635],i[n+20>>2]=o,u=i[o-12>>2],o=n+20|0,i[u+o>>2]=i[13636],u=i[13632],i[n+12>>2]=u,i[h+i[u-12>>2]>>2]=i[13637],i[n+76>>2]=54516,i[n+12>>2]=54476,i[n+20>>2]=54496,h=$0(t),i[h>>2]=53552,t=n- -64|0,i[t>>2]=0,i[t+4>>2]=0,i[n+56>>2]=0,i[n+60>>2]=0,i[n+72>>2]=24,t=i[n+20>>2]-12|0,u=o+i[t>>2]|0,i[u+4>>2]=i[u+4>>2]&-75|8,u=o+i[t>>2]|0,i[u+76>>2]==-1&&(w=n+156|0,t=i[u+28>>2],i[w>>2]=t,(t|0)!=100008&&(i[t+4>>2]=i[t+4>>2]+1),t=x0(w,100192),V[i[i[t>>2]+28>>2]](t,32)|0,O0(w)),i[u+76>>2]=48;i:{if(!r)break i;t=l[A+11|0],u=(t|0)<0,x(o,u?i[A>>2]:A,u?i[A+4>>2]:t),t=n+32|0,i[t+i[i[n+20>>2]-12>>2]>>2]=4,x(L0(o,0),21688,2),i[t+i[i[n+20>>2]-12>>2]>>2]=2,H0(o,s[e|0]);r:{if(u=r-1|0,u){A=1;break r}x(o,31338,1);break i}for(;;){r:{e:{A:{f:switch(w=A&15,w|0){case 0:break f;case 8:break A;default:break e}_=l[k+11|0],v=(_|0)<0,x(o,v?i[k>>2]:k,v?i[k+4>>2]:_),i[t+i[i[n+20>>2]-12>>2]>>2]=4,x(L0(o,A),21688,2);break r}x(o,21740,2);break r}x(o,21741,1)}if(i[t+i[i[n+20>>2]-12>>2]>>2]=2,H0(o,s[e+A|0]),(A|0)!=(u|0)&(w|0)!=15||x(o,31338,1),A=A+1|0,(A|0)==(r|0))break}}i2(f,h),f=i[13631],i[n+12>>2]=f,i[i[f-12>>2]+(n+12|0)>>2]=i[13639],i[n+20>>2]=i[13640],i[h>>2]=53552,l[n+67|0]<0&&G(i[n+56>>2]),K0(h),T0(n+76|0),B=n+160|0}function U8(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;h=255,n=i[e>>2],t=i[n+64>>2];i:{if(!t){w=-1,_=-1;break i}for(o=n- -64|0,k=o,n=t;u=i[n+16>>2]<(r|0),k=u?k:n,n=i[(u<<2)+n>>2],!!n;);for(_=-1,_=(k|0)==(o|0)|i[k+16>>2]>(r|0)?_:i[k+24>>2],k=o,n=t;u=i[n+16>>2]<(r|0),k=u?k:n,n=i[(u<<2)+n>>2],!!n;);for(w=-1,w=(k|0)==(o|0)|i[k+16>>2]>(r|0)?w:i[k+28>>2],n=o;k=i[t+16>>2]<(r|0),n=k?n:t,t=i[(k<<2)+t>>2],!!t;);if((n|0)==(o|0)|i[n+16>>2]>(r|0))break i;h=s[n+20|0]}J0(f,A,_,w,h),v=i[e>>2],e=v- -64|0;i:{r:{if(n=i[v+64>>2],!n)break r;for(k=e,t=n;o=i[t+16>>2]<(r|0),k=o?k:t,t=i[(o<<2)+t>>2],!!t;);if((e|0)==(k|0))break r;if(h=0,o=0,i[k+16>>2]>(r|0))break i;h=i[k+40>>2],o=i[k+48>>2];break i}h=0,o=0}t=i[f+64>>2],u=0;i:{if(!t)break i;for(u=f- -64|0,k=u;f=i[t+16>>2]<(A|0),k=f?k:t,t=i[(f<<2)+t>>2],!!t;);if((k|0)==(u|0)){u=0;break i}if(u=0,i[k+16>>2]>(A|0))break i;Z=i[k+48>>2],u=i[k+40>>2]}f=u;i:{if((r|0)==10){if(A=31,e=i[v+36>>2]-10|0,e>>>0>=6)break i;A=i[(e<<2)+35392>>2];break i}if(A=0,!n)break i;for(k=e;t=i[n+16>>2]<(r|0),k=t?k:n,n=i[(t<<2)+n>>2],!!n;);if((e|0)==(k|0)|i[k+16>>2]>(r|0))break i;A=(s[k+20|0]+7&248)>>>3|0}i:{if((w|0)<=0)break i;if(n=m(A,_),r=0,(w|0)!=1)for(A=w&2147483646,k=0;l0(f+m(r,Z)|0,m(r,o)+h|0,n),e=r|1,l0(f+m(e,Z)|0,m(e,o)+h|0,n),r=r+2|0,k=k+2|0,(A|0)!=(k|0););if(!(w&1))break i;l0(f+m(r,Z)|0,m(r,o)+h|0,n)}}function gw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0;A=B-160|0,B=A,i[A+68>>2]=54820,u=i[13708],i[A+12>>2]=u,k=A+12|0,i[k+i[u-12>>2]>>2]=i[13709],u=k+i[i[A+12>>2]-12>>2]|0,o=A+16|0,b0(u,o),i[u+72>>2]=0,i[u+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,u=$0(o),i[u>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,o=A+148|0,R2(o,e,r),n=k,t=o,k=l[A+159|0],o=(k|0)<0,x(n,o?i[A+148>>2]:t,o?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),n=k,k=l[A+159|0],o=(k|0)<0,x(A+12|0,o?i[A+148>>2]:n,o?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,h=x(k,20602,6),o=e+56|0,n=l[e+67|0],t=(n|0)<0,x(x(h,t?i[e+56>>2]:o,t?i[e+60>>2]:n),31338,1),n=A+148|0,W0(n,r),t=k,h=n,k=l[A+159|0],n=(k|0)<0,x(t,n?i[A+148>>2]:h,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,h=x(k,21086,6),n=l[e+79|0],t=(n|0)<0,x(x(h,t?i[e+68>>2]:e+68|0,t?i[e+72>>2]:n),31338,1),n=A+148|0,W0(n,r),t=k,h=n,k=l[A+159|0],n=(k|0)<0,x(t,n?i[A+148>>2]:h,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,h=x(k,20174,13),n=l[e+91|0],t=(n|0)<0,x(x(h,t?i[e+80>>2]:e+80|0,t?i[e+84>>2]:n),31338,1),n=A+148|0,W0(n,r),t=k,r=l[A+159|0],k=(r|0)<0,x(t,k?i[A+148>>2]:n,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,t=x(r,19842,6),n=o,k=l[e+67|0],o=(k|0)<0,x(x(t,o?i[e+56>>2]:n,o?i[e+60>>2]:k),31338,1),i2(f,u),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[u>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(u),T0(A+68|0),B=A+160|0}function Nw(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0,Z=0,p=0;h=B-16|0,B=h;i:{if(!wo(t,0)){i[f>>2]=5,i[f+4>>2]=2002,i[f+8>>2]=7709;break i}if(u=U(44),i[u+40>>2]=0,i[u+32>>2]=0,i[u+36>>2]=0,i[u+12>>2]=73364,i[u+4>>2]=0,i[u+8>>2]=0,i[u+28>>2]=n,i[u+24>>2]=k,i[u+20>>2]=A,i[u+16>>2]=r,i[u>>2]=73608,r=u+32|0,A=0,k=m(k,n)+7|0,k>>>0>=8&&(L2(r,k>>>3|0),_=i[u+36>>2],A=i[u+32>>2]),v=u+12|0,k=0,B0(A,0,_-A|0),A=ho(t,0),n=so(t,0),_=T6(t,0,h+12|0),!(!A|!n))for(;;){for(t=0;p=i[r>>2]+((Z&7)<<29|w>>>3)|0,l[p|0]=s[p|0]|(s[(_+m(i[h+12>>2],k)|0)+t|0]&128)>>>(w&7),w=w+1|0,Z=w?Z:Z+1|0,t=t+1|0,(n|0)!=(t|0););if(k=k+1|0,(A|0)==(k|0))break}r=i[e+8>>2],i[h+8>>2]=u,i[h+4>>2]=v,i[u+4>>2]=i[u+4>>2]+1,A=i[r+16>>2];r:{e:{if(A>>>0>2]){i[A+4>>2]=u,i[A>>2]=v,i[u+4>>2]=i[u+4>>2]+1,i[r+16>>2]=A+8,n=u;break e}if(A=Q2(r+12|0,h+4|0),n=i[h+8>>2],i[r+16>>2]=A,!n)break r}if(r=i[n+4>>2],i[n+4>>2]=r-1,r)break r;V[i[i[n>>2]+8>>2]](n),g(n)}r:{if(!o||(i[u+4>>2]=i[u+4>>2]+1,r=U(24),i[u+4>>2]=i[u+4>>2]+1,i[r+20>>2]=u,i[r+16>>2]=v,k=i[e+8>>2],A=i[e+12>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+12>>2]=A,i[r+8>>2]=k,A=i[e>>2],e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[r+4>>2]=e,i[r>>2]=A,i[o>>2]=r,e=i[u+4>>2],i[u+4>>2]=e-1,e))break r;V[i[i[u>>2]+8>>2]](u),g(u)}if(e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[u+4>>2],i[u+4>>2]=f-1,f)break i;V[i[i[u>>2]+8>>2]](u),g(u)}B=h+16|0}function gr(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0;k=B-32|0,B=k,A=180,t=1;i:{r:{e:A:{f:switch(r-2|0){case 2:t=0;break r;case 3:A=270,o=1;break e;case 4:A=270;break A;case 5:A=270,t=0,o=1;break e;case 0:break r;case 1:break e;case 6:break f;default:break i}A=90}r=U(72),i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=71064,n=r+16|0,i[n+8>>2]=0,i[n+12>>2]=0,i[n+16>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,i[n+28>>2]=0,i[n+32>>2]=0,i[n>>2]=68500,i[r+60>>2]=0,i[r+52>>2]=0,i[r+56>>2]=0,i[n>>2]=69432,i[r+64>>2]=A,i[r+32>>2]=1769107316,A=i[f+44>>2],i[k+28>>2]=r,i[k+24>>2]=n,i[r+4>>2]=i[r+4>>2]+1,n=N4(A,k+24|0),A=i[k+28>>2];e:{if(!A||(u=i[A+4>>2],i[A+4>>2]=u-1,u))break e;V[i[i[A>>2]+8>>2]](A),g(A)}if(A=i[f+52>>2],X[k+22>>1]=n+1,l[k+20|0]=0,i[k+12>>2]=Q[k+20>>1]|Q[k+22>>1]<<16,c1(A,e,k+12|0),A=i[r+4>>2],i[r+4>>2]=A-1,A||(V[i[i[r>>2]+8>>2]](r),g(r)),!o)break i}r=U(72),i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=71104,A=r+16|0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A>>2]=68500,i[r+60>>2]=0,i[r+52>>2]=0,i[r+56>>2]=0,i[A>>2]=69492,i[r+64>>2]=t,i[r+32>>2]=1768778098,n=i[f+44>>2],i[k+28>>2]=r,i[k+24>>2]=A,i[r+4>>2]=i[r+4>>2]+1,n=N4(n,k+24|0),A=i[k+28>>2];r:{if(!A||(t=i[A+4>>2],i[A+4>>2]=t-1,t))break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(f=i[f+52>>2],X[k+18>>1]=n+1,l[k+16|0]=0,i[k+8>>2]=Q[k+16>>1]|Q[k+18>>1]<<16,c1(f,e,k+8|0),f=i[r+4>>2],i[r+4>>2]=f-1,f)break i;V[i[i[r>>2]+8>>2]](r),g(r)}B=k+32|0}function Rw(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0;n=B-48|0,B=n;i:{if(!(k&&e)){i[f>>2]=5,i[f+4>>2]=2001,i[f+8>>2]=7049;break i}t=i[e>>2],u=i[t+48>>2],t=i[t+52>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),i[n+44>>2]=0,i[n+36>>2]=0,i[n+40>>2]=0,o=n+16|0,I1(o,u,r,n+36|0);r:{if(i[n+16>>2]){P0(f,o,i[e>>2]);break r}if(r=A-1|0,e=i[n+36>>2],r>>>0>=i[n+40>>2]-e>>3>>>0){i[f>>2]=5,i[f+4>>2]=2007,i[f+8>>2]=10388;break r}e=e+(r<<3)|0,r=i[e>>2],e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1);e:{A:{f:{k:{n:{if(!r||(r=N0(r,68572,68704),!r))break n;if(e&&(i[e+4>>2]=i[e+4>>2]+1),i[n+12>>2]=0,i[n+4>>2]=0,i[n+8>>2]=0,u=i[r+52>>2],A=i[r+48>>2],o=(u|0)==(A|0),o)break f;if(r=u-A|0,(r|0)<0)break k;A=l0(U(r),A,r),o||l0(k,A,r),r=i[18411],i[f>>2]=i[18410],i[f+4>>2]=r,i[f+8>>2]=i[18412],G(A);break A}i[f>>2]=5,i[f+4>>2]=2007,i[f+8>>2]=1956;break e}y0(),P()}r=i[18411],i[f>>2]=i[18410],i[f+4>>2]=r,i[f+8>>2]=i[18412]}if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break e;V[i[i[e>>2]+8>>2]](e),g(e)}if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break r;V[i[i[e>>2]+8>>2]](e),g(e)}if(l[n+35|0]<0&&G(i[n+24>>2]),r=i[n+36>>2],r){if(f=r,e=i[n+40>>2],(f|0)!=(e|0)){for(;;){f=i[e-4>>2];r:{if(!f||(A=i[f+4>>2],i[f+4>>2]=A-1,A))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(e=e-8|0,(r|0)==(e|0))break}f=i[n+36>>2]}i[n+40>>2]=r,G(f)}if(!t||(f=i[t+4>>2],i[t+4>>2]=f-1,f))break i;V[i[i[t>>2]+8>>2]](t),g(t)}B=n+48|0}function Dw(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0;for(Z=B-16|0,B=Z,u=r;;){i:{if((A|0)==(u|0)){u=A;break i}if(!i[u>>2])break i;u=u+4|0;continue}break}i[o>>2]=n,i[k>>2]=r;i:{for(;;){r:{e:{if(!((r|0)==(A|0)|(n|0)==(t|0))){h=i[e+4>>2],i[Z+8>>2]=i[e>>2],i[Z+12>>2]=h,y=1,p=B-16|0,B=p,i[p+12>>2]=i[f+8>>2],E=S4(p+8|0,p+12|0),h=n,w=t-h|0,W=0,C=B-16|0,B=C,_=i[k>>2],I=u-r>>2;A:{if(!_|!I)break A;for(w=h?w:0;;){if(v=ie(w>>>0<4?C+12|0:h,i[_>>2]),(v|0)==-1){W=-1;break A}if(h){if(w>>>0<=3){if(w>>>0>>0)break A;l0(h,C+12|0,v)}w=w-v|0,h=h+v|0}else h=0;if(!i[_>>2]){_=0;break A}if(W=W+v|0,_=_+4|0,I=I-1|0,!I)break}}h&&(i[k>>2]=_),B=C+16|0,h=i[E>>2],h&&(i[23985]=(h|0)==-1?95820:h),B=p+16|0;A:{f:{k:switch(W+1|0){case 0:for(i[o>>2]=n;;){if(i[k>>2]==(r|0)||(e=y3(n,i[r>>2],i[f+8>>2]),(e|0)==-1))break f;n=e+i[o>>2]|0,i[o>>2]=n,r=r+4|0}case 1:break i;default:break k}if(n=i[o>>2]+W|0,i[o>>2]=n,(n|0)==(t|0))break A;if((A|0)==(u|0)){r=i[k>>2],u=A;continue}if(r=Z+4|0,u=y3(r,0,i[f+8>>2]),(u|0)==-1)break r;if(t-i[o>>2]>>>0>>0)break i;for(;;){if(u){n=s[r|0],h=i[o>>2],i[o>>2]=h+1,l[h|0]=n,u=u-1|0,r=r+1|0;continue}break}for(r=i[k>>2]+4|0,i[k>>2]=r,u=r;;){if((A|0)==(u|0)){u=A;break e}if(!i[u>>2])break e;u=u+4|0}}i[k>>2]=r;break r}r=i[k>>2]}y=(r|0)!=(A|0);break i}n=i[o>>2];continue}break}y=2}return B=Z+16|0,y|0}function yA(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;A=B-32|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(A,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(k=i[19565],i[A>>2]=i[19564],i[A+4>>2]=k,k=A+8|0,l[78275]>=0){t=i[19567],i[k>>2]=i[19566],i[k+4>>2]=t,i[k+8>>2]=i[19568];break i}_0(k,i[19566],i[19567])}i:{r:{e:{if(i[A>>2]!=i[19564]){e=i[A+4>>2],i[f>>2]=i[A>>2],i[f+4>>2]=e,i[f+16>>2]=i[A+16>>2],e=i[A+12>>2],i[f+8>>2]=i[A+8>>2],i[f+12>>2]=e,i[A+16>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0;break e}Z=e,p=D0(r),i[Z+56>>2]=p,w=D0(r);A:{if(!w|!i[r+16>>2])break A;for(;;){u=D0(r),t=i[e+64>>2],n=i[e+68>>2];f:{if(t>>>0>>0){i[t>>2]=u,u=t+4|0;break f}if(h=i[e+60>>2],o=t-h>>2,k=o+1|0,k>>>0>=1073741824)break r;if(v=o<<2,n=n-h|0,o=n>>1,o=n>>>0>=2147483644?1073741823:k>>>0>>0?o:k,o){if(o>>>0>=1073741824)break i;k=U(o<<2)}else k=0;if(n=v+k|0,i[n>>2]=u,u=n+4|0,(t|0)!=(h|0))for(;n=n-4|0,t=t-4|0,i[n>>2]=i[t>>2],(t|0)!=(h|0););if(i[e+68>>2]=k+(o<<2),i[e+64>>2]=u,i[e+60>>2]=n,!h)break f;G(h)}if(i[e+64>>2]=u,_=_+1|0,_>>>0>=w>>>0)break A;if(!i[r+16>>2])break}}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break e}_0(f,i[19566],i[19567])}l[A+19|0]<0&&G(i[A+8>>2]),B=A+32|0;return}y0(),P()}_2(),P()}function rn(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;if(k=B-160|0,B=k,i[k+68>>2]=54820,n=i[13708],i[k+12>>2]=n,t=k+12|0,i[t+i[n-12>>2]>>2]=i[13709],n=t+i[i[k+12>>2]-12>>2]|0,u=k+16|0,b0(n,u),i[n+72>>2]=0,i[n+76>>2]=-1,i[k+68>>2]=54820,i[k+12>>2]=54800,w=$0(u),i[w>>2]=53552,i[k+56>>2]=0,i[k+60>>2]=0,i[k+48>>2]=0,i[k+52>>2]=0,i[k+64>>2]=16,u=1,n=i[r>>2]+1|0,i[r>>2]=n,o=i[e+36>>2],e=i[e+40>>2],(o|0)!=(e|0)){if(A&&(n=k+148|0,W0(n,r),h=n,n=l[k+159|0],u=(n|0)<0,x(t,u?i[k+148>>2]:h,u?i[k+152>>2]:n),l[k+159|0]<0&&G(i[k+148>>2]),x(H0(x(k+12|0,19522,7),1),31338,1),u=2),n=k+148|0,t=i[o>>2],V[i[i[t>>2]+8>>2]](n,t,r),h=n,n=l[k+159|0],t=(n|0)<0,x(k+12|0,t?i[k+148>>2]:h,t?i[k+152>>2]:n),l[k+159|0]<0&&G(i[k+148>>2]),n=o+8|0,(e|0)!=(n|0))for(;t=k+148|0,W0(t,r),h=t,t=l[k+159|0],o=(t|0)<0,x(k+12|0,o?i[k+148>>2]:h,o?i[k+152>>2]:t),l[k+159|0]<0&&G(i[k+148>>2]),t=k+12|0,x(t,31338,1),A&&(o=k+148|0,W0(o,r),_=t,h=o,t=l[k+159|0],o=(t|0)<0,x(_,o?i[k+148>>2]:h,o?i[k+152>>2]:t),l[k+159|0]<0&&G(i[k+148>>2]),x(H0(x(k+12|0,19522,7),u),31338,1),u=u+1|0),t=k+148|0,o=i[n>>2],V[i[i[o>>2]+8>>2]](t,o,r),h=t,t=l[k+159|0],o=(t|0)<0,x(k+12|0,o?i[k+148>>2]:h,o?i[k+152>>2]:t),l[k+159|0]<0&&G(i[k+148>>2]),n=n+8|0,(e|0)!=(n|0););n=i[r>>2]}i[r>>2]=(n|0)>0?n-1|0:0,i2(f,w),f=i[13707],i[k+12>>2]=f,i[i[f-12>>2]+(k+12|0)>>2]=i[13710],i[w>>2]=53552,l[k+59|0]<0&&G(i[k+48>>2]),K0(w),T0(k+68|0),B=k+160|0}function en(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0;f=B-16|0,B=f,i[f+12>>2]=r,i[f+8>>2]=n,i[f+12>>2]=r,i[f+8>>2]=n;i:{r:{e:{for(;;){A:{if(n=i[f+12>>2],n>>>0>=A>>>0||(w=i[f+8>>2],w>>>0>=t>>>0))break A;e=2,u=s[n|0];f:{if(u<<24>>24>=0){X[w>>1]=u,e=n+1|0;break f}if(u>>>0<194)break r;if(u>>>0<=223){if(r=1,(A-n|0)<2)break i;if(r=s[n+1|0],(r&192)!=128)break e;X[w>>1]=r&63|u<<6&1984,e=n+2|0;break f}if(u>>>0<=239){if(e=1,h=A-n|0,(h|0)<2)break e;r=s[n+1|0];k:{n:{if((u|0)!=237){if((u|0)!=224)break n;if((r&224)!=160)break r;break k}if((r&224)!=128)break r;break k}if((r&192)!=128)break r}if((h|0)==2)break e;if(e=s[n+2|0],(e&192)!=128)break r;X[w>>1]=e&63|((r&63)<<6|u<<12),e=n+3|0;break f}if(u>>>0>244)break r;if(e=1,h=A-n|0,(h|0)<2)break e;r=s[n+1|0];k:{n:switch(u-240|0){case 0:if((r+112&255)>>>0>=48)break r;break k;case 4:if((r&240)!=128)break r;break k;default:break n}if((r&192)!=128)break r}if((h|0)==2)break e;if(_=s[n+2|0],(_&192)!=128)break r;if((h|0)==3)break e;if(n=s[n+3|0],(n&192)!=128)break r;if((t-w|0)<3||(e=2,n=n&63,h=_<<6,u=u&7,(n|(h&4032|(r<<12&258048|u<<18)))>>>0>1114111))break e;e=r<<2,X[w>>1]=(_>>>4&3|(e&192|u<<8|e&60))+16320|55296,i[f+8>>2]=w+2,X[w+2>>1]=n|h&960|56320,e=i[f+12>>2]+4|0}i[f+12>>2]=e,i[f+8>>2]=i[f+8>>2]+2;continue}break}e=A>>>0>n>>>0}r=e;break i}r=2}return i[k>>2]=i[f+12>>2],i[o>>2]=i[f+8>>2],B=f+16|0,r|0}function An(f){var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0;e=i[f+4>>2],k=i[e+124>>2],i[f+24>>2]=k,u=i[e+132>>2],i[f+28>>2]=u;i:{if(!i[f+12>>2]){A=1,h=1;break i}A=i[k+16856>>2],h=i[k+16852>>2]}i[f+300>>2]=A,i[f+296>>2]=h,p=m(i[f+20>>2],A),W=i[k+16892>>2],n=i[k+16876>>2],r=i[f+16>>2],C=m(r,h),C||(l[f+307|0]=0,l[f+304|0]=0),p||(l[f+307|0]=0,l[f+305|0]=0,l[f+306|0]=0),I=i[f+8>>2],w=m(r+I|0,h),(w|0)>=i[k+484>>2]&&(l[f+306|0]=0),t=i[e+140>>2],o=i[e+152>>2],_=p>>n,J=t+m(m(o,_),24)|0,R=-1,r=C-1>>n,y=-1,v=s[f+304|0],y=(v|0)==1?Q[m(r,24)+J>>1]:y,E=C>>n,e=p-1>>n,Z=s[f+305|0],(Z|0)==1&&(R=Q[(t+m(m(e,o),24)|0)+m(E,24)>>1]),w=w>>n,D=-1,z=-1,H=s[f+306|0],(H|0)==1&&(z=Q[(t+m(m(e,o),24)|0)+m(w,24)>>1]),a=s[f+307|0],(a|0)==1&&(D=Q[(t+m(m(e,o),24)|0)+m(r,24)>>1]),o=m(W,_)<<2,n=i[u+8484>>2],t=-1,u=-1,u=v?i[o+(n+(r<<2)|0)>>2]:u,_=n+(E<<2)|0,t=Z?i[_+(m(e,W)<<2)>>2]:t,v=-1,Z=-1,a&&(Z=i[(n+(r<<2)|0)+(m(e,W)<<2)>>2]),r=Q[m(E,24)+J>>1],H&&(v=i[(n+(w<<2)|0)+(m(e,W)<<2)>>2]),e=i[o+_>>2],(r|0)==(y|0)&(e|0)==(u|0)||(l[f+304|0]=0),(r|0)==(R|0)&(e|0)==(t|0)||(l[f+305|0]=0),(r|0)==(D|0)&(e|0)==(Z|0)||(l[f+307|0]=0),(r|0)==(z|0)&(e|0)==(v|0)||(l[f+306|0]=0),A=(i[k+488>>2]+((p^-1)+A|0)|0)/(A|0)|0,e=I<<1,i[f+308>>2]=(e|0)>(A|0)?A:e,k=i[k+484>>2],i[f+316>>2]=0,A=f+160|0,i[f+292>>2]=A,r=f,f=(k+((C^-1)+h|0)|0)/(h|0)|0,i[r+312>>2]=(f|0)<(e|0)?f:e,B0(A-e|0,0,I<<2|1)}function Uw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;if(A=B-160|0,B=A,i[A+68>>2]=54820,k=i[13708],i[A+12>>2]=k,t=i[k-12>>2],k=A+12|0,i[t+k>>2]=i[13709],o=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(o,n),i[o+72>>2]=0,i[o+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,o=$0(n),i[o>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,mn(n,e,r),u=k,t=n,k=l[A+159|0],n=(k|0)<0,x(u,n?i[A+148>>2]:t,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,k=l[A+159|0],n=(k|0)<0,x(A+12|0,n?i[A+148>>2]:t,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),x(L0(x(L0(x(A+12|0,20773,11),Q[e+72>>1]),2490,1),Q[e+74>>1]),31338,1),k=i[e+76>>2],w=i[e+80>>2],(k|0)!=(w|0))for(e=0;n=A+148|0,W0(n,r),u=n,n=l[A+159|0],t=(n|0)<0,x(A+12|0,t?i[A+148>>2]:u,t?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=x(H0(x(A+12|0,18847,6),e),30585,2),t=A+148|0,W0(t,r),u=t,t=l[A+159|0],h=(t|0)<0,x(n,h?i[A+148>>2]:u,h?i[A+152>>2]:t),l[A+159|0]<0&&G(i[A+148>>2]),n=x(L0(x(n,20549,11),Q[k>>1]),31338,1),t=A+148|0,W0(t,r),u=t,t=l[A+159|0],h=(t|0)<0,x(n,h?i[A+148>>2]:u,h?i[A+152>>2]:t),l[A+159|0]<0&&G(i[A+148>>2]),x(H0(x(H0(x(n,20009,9),Q[k+2>>1]+1|0),2490,1),Q[k+4>>1]+1|0),31338,1),e=e+1|0,k=k+6|0,(w|0)!=(k|0););i2(f,o),f=i[13707],i[A+12>>2]=f,i[i[f-12>>2]+(A+12|0)>>2]=i[13710],i[o>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(o),T0(A+68|0),B=A+160|0}function Mw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;t=B-16|0,B=t,A=i[f+8>>2],i[t+12>>2]=0,i[t+4>>2]=0,i[t+8>>2]=0;i:{r:{e:{n=i[A+12>>2],u=i[A+16>>2];A:{if((n|0)==(u|0)){A=0;break A}if(A=u-n|0,(A|0)<0)break e;for(k=U(A),i[t+4>>2]=k,i[t+12>>2]=A+k,A=k;i[A>>2]=i[n>>2],o=i[n+4>>2],i[A+4>>2]=o,o&&(i[o+4>>2]=i[o+4>>2]+1),A=A+8|0,n=n+8|0,(u|0)!=(n|0););i[t+8>>2]=A}if(A=A-k>>3,o=(r|0)>(A|0)?A:r,(o|0)<=0)break i;for(n=0;;){r=U(24),i[r>>2]=0,i[r+4>>2]=0,i[r+16>>2]=0,i[r+20>>2]=0,i[r+8>>2]=0,i[r+12>>2]=0,k=i[f>>2],A=i[f+4>>2];A:{if(!A){i[r+4>>2]=A,i[r>>2]=k;break A}if(i[A+4>>2]=i[A+4>>2]+1,i[r>>2]=k,k=i[r+4>>2],i[r+4>>2]=A,!k||(A=i[k+4>>2],i[k+4>>2]=A-1,A))break A;V[i[i[k>>2]+8>>2]](k),g(k)}k=i[f+8>>2],A=i[f+12>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+8>>2]=k,k=i[r+12>>2],i[r+12>>2]=A;A:{if(!k||(A=i[k+4>>2],i[k+4>>2]=A-1,A))break A;V[i[i[k>>2]+8>>2]](k),g(k)}k=i[t+4>>2]+(n<<3)|0,u=i[k>>2],A=i[k+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+16>>2]=u,k=i[r+20>>2],i[r+20>>2]=A;A:{if(!k||(A=i[k+4>>2],i[k+4>>2]=A-1,A))break A;V[i[i[k>>2]+8>>2]](k),g(k)}if(i[(n<<2)+e>>2]=r,n=n+1|0,(o|0)==(n|0))break}break r}y0(),P()}k=i[t+4>>2]}if(k){if(A=i[t+8>>2],(k|0)!=(A|0)){for(;;){f=i[A-4>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}if(A=A-8|0,(k|0)==(A|0))break}k=i[t+4>>2]}G(k)}return B=t+16|0,o|0}function d1(f,e,r,A,k,n,t,o,u,h){var w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;p=i[f+18592>>2],_=f+18548|0,w=f2(_,i[f+18572>>2]+147|0),v=w<<4&16|s[f+26|0]&-17,l[f+26|0]=v,W=f+16|0;i:{r:{if(w){w=0;e:{if(i[i[f+18592>>2]+812>>2]<2||!f2(_,i[f+18572>>2]+148|0)||(w=32,i[i[f+18592>>2]+812>>2]<3))break e;for(w=1;x1(_)&&(w=w+1|0,(w|0)<(i[i[f+18592>>2]+812>>2]-1|0)););w=w<<5}o=s[f+26|0]&31|w;break r}w=1;e:{A:{f:{if(!i[p+28>>2]){if(w=i[f+18572>>2],(n+t|0)==12||!f2(_,(o+w|0)+156|0))break f;v=s[f+26|0],w=3}l[f+26|0]=v&252|w;break A}if(w=f2(_,w+160|0)+1|0,l[f+26|0]=w&3|s[f+26|0]&252,v=2,(w|0)==2)break e}v=w,w=0,o=i[p+336>>2];A:{if((o|0)<2||!f2(_,i[f+18572>>2]+154|0))break A;if(Z=o-2|0,!Z){w=1;break A}if(w=1,!f2(_,i[f+18572>>2]+155|0))break A;for(o=o-1|0;;){if((w|0)==(Z|0)){w=o;break A}if(w=w+1|0,!x1(_))break}}if(l[f+16|0]=w,o9(f,0),C=f,I=f2(_,i[f+18572>>2]+152|0)<<2&4|s[f+26|0]&251,l[C+26|0]=I,(v|0)==1)break i}w=0,o=i[p+340>>2];e:{if((o|0)<2||!f2(_,i[f+18572>>2]+154|0))break e;if(Z=o-2|0,!Z){w=1;break e}if(w=1,!f2(_,i[f+18572>>2]+155|0))break e;for(o=o-1|0;;){if((w|0)==(Z|0)){w=o;break e}if(w=w+1|0,!x1(_))break}}l[f+17|0]=w;e:{if(!(!s[p+378|0]|(v|0)!=3)){X[f+22>>1]=0,X[f+24>>1]=0;break e}o9(f,1)}o=f2(_,i[f+18572>>2]+152|0)<<3&8|s[f+26|0]&-9}l[f+26|0]=o}nk(i[f+18584>>2],i[f+18592>>2],i[f+18588>>2],W,e,r,A,k,u,n,t,h)}function fn(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0;p=B-16|0,B=p,v=i[f+12>>2],h=i[f+8>>2],w=v-h>>2;i:{if((h|0)!=(v|0))for(_=w>>>0<=1?1:w;;){if(o=i[h+(u<<2)>>2],!(s[o+104|0]|i[o+100>>2])){aA(o),v=i[f+12>>2],w=v-i[f+8>>2]>>2;break i}if(u=u+1|0,(_|0)==(u|0))break}u=-9}i:{if((w-1|0)==(u|0)|k0[f+4>>2]>=w>>>0||(h=i[v-4>>2],s[h+104|0]|i[h+100>>2]))break i;G(zA(h)),v=i[f+12>>2]-4|0,i[f+12>>2]=v}i:{r:{e:{if((u|0)==-9){W=i[f+8>>2],w=N7(U(416)),u=i[f+12>>2],o=i[f+16>>2];A:{if(u>>>0>>0){i[u>>2]=w,w=u+4|0;break A}if(_=i[f+8>>2],Z=u-_>>2,h=Z+1|0,h>>>0>=1073741824)break e;if(C=Z<<2,o=o-_|0,Z=o>>1,Z=o>>>0>=2147483644?1073741823:h>>>0>>0?Z:h,Z){if(Z>>>0>=1073741824)break r;h=U(Z<<2)}else h=0;if(o=C+h|0,i[o>>2]=w,w=o+4|0,(u|0)!=(_|0)){for(;o=o-4|0,u=u-4|0,i[o>>2]=i[u>>2],(u|0)!=(_|0););_=i[f+8>>2]}if(i[f+16>>2]=h+(Z<<2),i[f+12>>2]=w,i[f+8>>2]=o,!_)break A;G(_)}i[f+12>>2]=w,u=v-W>>2}A:{if((u|0)<0){o=i[e+4>>2];break A}if(h=i[e>>2],w=i[h+476>>2],w>>>0>=4)break i;if(f=i[i[f+8>>2]+(u<<2)>>2],_=i[h+488>>2],v=i[h+484>>2],i[p+8>>2]=h,o=i[e+4>>2],i[p+12>>2]=o,o&&(i[o+4>>2]=i[o+4>>2]+1),e=i[p+12>>2],i[p>>2]=i[p+8>>2],i[p+4>>2]=e,e=Fk(f,v,_,w,p,1,r,A,k,n,t),e){u=0-e|0;break A}l[f+312|0]=0}A:{if(!o||(f=i[o+4>>2],i[o+4>>2]=f-1,f))break A;V[i[i[o>>2]+8>>2]](o),g(o)}return B=p+16|0,u}y0(),P()}_2(),P()}C0(17356,14064,263,10577),P()}function kn(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;k=B-16|0,B=k;i:{r=i[f+4>>2];r:{if(r>>>0>>0){t=e-r|0,n=i[f+8>>2],A=n<<5;e:{if(!(t>>>0>A>>>0|r>>>0>A-t>>>0)){i[f+4>>2]=e,A=r&31,e=i[f>>2]+(r>>>3&536870908)|0;break e}if(i[k+12>>2]=0,i[k+4>>2]=0,i[k+8>>2]=0,(e|0)<0)break i;A:{if(A>>>0<=1073741822?(r=n<<6,e=e+31&-32,e=e>>>0>>0?r:e):e=2147483647,e>>>0<=i[k+12>>2]<<5>>>0)break A;if((e|0)>=0){if(w=(e-1>>>5|0)+1|0,n=U(w<<2),A=i[k+4>>2],e=i[k+8>>2],i[n+((e>>>0>=33?e-1>>>5|0:0)<<2)>>2]=0,e)for(_=e&31,v=A+(e>>>3&536870908)|0,e=n,r=A;o=1<>2]>>>h&1?o=o|i[e>>2]:o=i[e>>2]&(o^-1),i[e>>2]=o,o=(u|0)==31,u=o?0:u+1|0,e=(o<<2)+e|0,o=(h|0)==31,r=(o<<2)+r|0,h=o?0:h+1|0,!!((_|0)!=(h|0)|(r|0)!=(v|0)););if(i[k+12>>2]=w,i[k+4>>2]=n,!A)break A;G(A);break A}y0(),P()}A=i[f+4>>2],i[k+8>>2]=A+t,r=i[f>>2],e=i[k+4>>2];A:{if((A|0)<=0){A=0;break A}n=A>>>5|0,A>>>0>=32&&F2(e,r,n<<2),n=n<<2,e=n+e|0,A=A&31,A&&(u=-1>>>32-A|0,i[e>>2]=i[e>>2]&(u^-1)|u&i[r+n>>2]),r=i[f>>2]}if(i[f>>2]=i[k+4>>2],i[k+4>>2]=r,n=i[f+4>>2],i[f+4>>2]=i[k+8>>2],i[k+8>>2]=n,n=i[f+8>>2],i[f+8>>2]=i[k+12>>2],i[k+12>>2]=n,!r)break e;G(r)}if(!t||(A&&(f=32-A|0,r=f>>>0>>0?f:t,i[e>>2]=i[e>>2]&(-1<>>f-r^-1),t=t-r|0,e=e+4|0),f=t>>>5|0,t>>>0>=32&&B0(e,0,f<<2),r=t&31,!r))break r;f=(f<<2)+e|0,i[f>>2]=i[f>>2]&(-1>>>32-r^-1);break r}i[f+4>>2]=e}B=k+16|0;return}y0(),P()}function s6(f,e){var r=0,A=0,k=0,n=0;k=B-16|0,B=k,r=U(136),i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=72792,B0(r+20|0,0,104),i[r+56>>2]=0,i[r+60>>2]=0,i[r+44>>2]=99,i[r+48>>2]=99,i[r+32>>2]=34648,A=r- -64|0,i[A>>2]=0,i[A+4>>2]=0,i[r+132>>2]=0,i[r+124>>2]=0,i[r+128>>2]=0,i[r+84>>2]=1,i[r+88>>2]=1,i[r+72>>2]=r+76,i[r+92>>2]=0,i[r+96>>2]=0,i[r+100>>2]=0,i[r+104>>2]=0,i[r+108>>2]=0,i[r+112>>2]=0,l[r+113|0]=0,l[r+114|0]=0,l[r+115|0]=0,l[r+116|0]=0,l[r+117|0]=0,l[r+118|0]=0,l[r+119|0]=0,l[r+120|0]=0,i[f+4>>2]=r,A=r+12|0,i[f>>2]=A,i[r+12>>2]=A,i[r+8>>2]=i[r+8>>2]+1,i[r+16>>2]=r,i[r+4>>2]==-1&&(V[i[i[r>>2]+8>>2]](r),g(r)),r=i[e>>2],A=i[r+24>>2],n=i[r+28>>2],r=i[f>>2],i[r+36>>2]=0,i[r+32>>2]=2,i[r+28>>2]=n,i[r+24>>2]=A,i[k+8>>2]=i[e>>2],e=i[e+4>>2],i[k+12>>2]=e,e&&(i[e+4>>2]=i[e+4>>2]+1),U8(r,k+8|0,6,0),e=i[k+12>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=U(24),l[e+22|0]=1,X[e+20>>1]=2,i[e+16>>2]=131074,i[e+12>>2]=72992,i[e+4>>2]=0,i[e+8>>2]=0,i[e>>2]=72832,r=e+12|0,l[r+10|0]=1,X[r+8>>1]=6,i[r+4>>2]=851969,l[r+10|0]=1,X[r+8>>1]=2,i[r+4>>2]=131074,l[e+22|0]=1,A=i[f>>2],i[e+4>>2]=i[e+4>>2]+2,i[A+44>>2]=r,f=i[A+48>>2],i[A+48>>2]=e;i:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[e+4>>2],i[e+4>>2]=f-1,f||(V[i[i[e>>2]+8>>2]](e),g(e)),f=i[e+4>>2],i[e+4>>2]=f-1,f||(V[i[i[e>>2]+8>>2]](e),g(e)),B=k+16|0}function xw(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0;A=B-16|0,B=A,e=U(136),i[e+4>>2]=0,i[e+8>>2]=0,i[e>>2]=72792,B0(e+20|0,0,104),k=i[e+4>>2],t=k+1|0,i[e+4>>2]=t,i[e+56>>2]=0,i[e+60>>2]=0,i[e+44>>2]=99,i[e+48>>2]=99,i[e+32>>2]=3795,n=e- -64|0,i[n>>2]=0,i[n+4>>2]=0,i[e+132>>2]=0,i[e+124>>2]=0,i[e+128>>2]=0,i[e+84>>2]=1,i[e+88>>2]=1,i[e+72>>2]=e+76,i[e+92>>2]=0,i[e+96>>2]=0,i[e+100>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e+112>>2]=0,l[e+113|0]=0,l[e+114|0]=0,l[e+115|0]=0,l[e+116|0]=0,l[e+117|0]=0,l[e+118|0]=0,l[e+119|0]=0,l[e+120|0]=0,n=e+12|0,i[e+12>>2]=n,i[e+8>>2]=i[e+8>>2]+1,i[e+4>>2]=k,i[e+16>>2]=e,t||(V[i[i[e>>2]+8>>2]](e),g(e));i:{r:{if(k=i[r>>2],o=i[k+36>>2]-12|0,o>>>0>3||(t=i[k+24>>2],h=i[k+28>>2],k=h,i[n+36>>2]=i[(o<<2)+41172>>2],i[n+32>>2]=1,i[n+28>>2]=k,i[n+24>>2]=t,!J0(n,10,t,k,U0(i[r>>2],10))))break r;k=0,i[A+12>>2]=0,i[A+8>>2]=0,t=v0(i[r>>2],10,A+12|0),o=v0(n,10,A+8|0);e:{if((h|0)<=0||(r=i[A+8>>2],u=i[A+12>>2],u=(r|0)<(u|0)?r:u,(u|0)<=0))break e;for(;;){for(r=0;l[(o+m(i[A+8>>2],k)|0)+r|0]=s[((t+m(i[A+12>>2],k)|0)+r|0)+1|0],l[((o+m(i[A+8>>2],k)|0)+r|0)+1|0]=s[(t+m(i[A+12>>2],k)|0)+r|0],r=r+2|0,(u|0)>(r|0););if(k=k+1|0,(h|0)==(k|0))break}}i[f+4>>2]=e,i[f>>2]=n;break i}if(i[f>>2]=0,i[f+4>>2]=0,f=i[e+4>>2],i[e+4>>2]=f-1,f)break i;V[i[i[e>>2]+8>>2]](e),g(e)}B=A+16|0}function zw(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;for(f=B-272|0,B=f,i[f+264>>2]=r,i[f+268>>2]=e,u3(f+208|0,A,f+224|0,f+223|0,f+222|0),r=B-16|0,B=r,e=f+196|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+192>>2]=r,i[f+28>>2]=f+32,i[f+24>>2]=0,l[f+23|0]=1,l[f+22|0]=69;;){i:{if(J2(f+268|0,f+264|0))break i;t=i[f+192>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+192>>2]=A+r),t=f+268|0,A=i[t>>2],o=i[A+12>>2];r:{if((o|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=s[o|0]}if(EA(A<<24>>24,f+23|0,f+22|0,r,f+192|0,l[f+223|0],l[f+222|0],f+208|0,f+32|0,f+28|0,f+24|0,f+224|0))break i;E1(t);continue}break}s[f+219|0]>>>7|0?A=i[f+212>>2]:A=s[f+219|0]&127;i:{if(!A|s[f+23|0]!=1||(A=i[f+28>>2],(A-(f+32|0)|0)>159))break i;i[f+28>>2]=A+4,i[A>>2]=i[f+24>>2]}return Tn(f,r,i[f+192>>2],k),r=i[f>>2],A=i[f+4>>2],t=i[f+12>>2],i[n+8>>2]=i[f+8>>2],i[n+12>>2]=t,i[n>>2]=r,i[n+4>>2]=A,K1(f+208|0,f+32|0,i[f+28>>2],k),J2(f+268|0,f+264|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+268>>2],z0(e),z0(f+208|0),B=f+272|0,r|0}function Hw(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;for(f=B-384|0,B=f,i[f+376>>2]=r,i[f+380>>2]=e,l3(f+220|0,A,f+240|0,f+236|0,f+232|0),r=B-16|0,B=r,e=f+208|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+204>>2]=r,i[f+28>>2]=f+32,i[f+24>>2]=0,l[f+23|0]=1,l[f+22|0]=69;;){i:{if(g2(f+380|0,f+376|0))break i;t=i[f+204>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+204>>2]=A+r),t=f+380|0,A=i[t>>2],o=i[A+12>>2];r:{if((o|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=i[o>>2]}if(FA(A,f+23|0,f+22|0,r,f+204|0,i[f+236>>2],i[f+232>>2],f+220|0,f+32|0,f+28|0,f+24|0,f+240|0))break i;Y1(t);continue}break}s[f+231|0]>>>7|0?A=i[f+224>>2]:A=s[f+231|0]&127;i:{if(!A|s[f+23|0]!=1||(A=i[f+28>>2],(A-(f+32|0)|0)>159))break i;i[f+28>>2]=A+4,i[A>>2]=i[f+24>>2]}return Tn(f,r,i[f+204>>2],k),r=i[f>>2],A=i[f+4>>2],t=i[f+12>>2],i[n+8>>2]=i[f+8>>2],i[n+12>>2]=t,i[n>>2]=r,i[n+4>>2]=A,K1(f+220|0,f+32|0,i[f+28>>2],k),g2(f+380|0,f+376|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+380>>2],z0(e),z0(f+220|0),B=f+384|0,r|0}function Tw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;n=B+-64|0,B=n;i:{if(Q1(e,67512,0)){i[r>>2]=0,A=1;break i}r:{if(s[f+8|0]&24)k=1;else{if(!e||(t=N0(e,67148,67244),!t))break r;k=(s[t+8|0]&24)!=0}k=Q1(f,e,k)}if(k){if(A=1,f=i[r>>2],!f)break i;i[r>>2]=i[f>>2];break i}r:{if(!e)break r;if(t=N0(e,67148,67292),!t||(e=i[r>>2],e&&(i[r>>2]=i[e>>2]),k=i[t+8>>2],e=i[f+8>>2],k&(e^-1)&7|e&(k^-1)&96)||(A=1,Q1(i[f+12>>2],i[t+12>>2],0)))break i;if(Q1(i[f+12>>2],67500,0)){if(f=i[t+12>>2],!f)break i;A=!N0(f,67148,67344);break i}if(k=i[f+12>>2],!k)break r;if(A=0,e=N0(k,67148,67292),e){if(!(l[f+8|0]&1))break i;f=i[t+12>>2],r=0;e:{A:{for(;;){if(A=0,!f)break e;if(f=N0(f,67148,67292),!f|i[f+8>>2]&(i[e+8>>2]^-1))break A;if(A=1,Q1(i[e+12>>2],i[f+12>>2],0))break e;if(!(l[e+8|0]&1)||(A=i[e+12>>2],!A))break A;if(e=N0(A,67148,67292),e){f=i[f+12>>2];continue}break}if(e=N0(A,67148,67404),!e)break A;r=S9(e,i[f+12>>2])}A=r}break i}if(e=N0(k,67148,67404),e){if(!(l[f+8|0]&1))break i;A=S9(e,i[t+12>>2]);break i}if(k=N0(k,67148,67196),!k||(f=i[t+12>>2],!f)||(f=N0(f,67148,67196),!f))break i;e=i[r>>2],B0(n+8|0,0,56),l[n+59|0]=(e|0)!=0,i[n+16>>2]=-1,i[n+12>>2]=k,i[n+4>>2]=f,i[n+52>>2]=1,V[i[i[f>>2]+28>>2]](f,n+4|0,e,1),f=i[n+28>>2],(f|0)==1&&(i[r>>2]=e?i[n+20>>2]:0),A=(f|0)==1;break i}A=0}return B=n- -64|0,A|0}function aw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0;if(A=B-160|0,B=A,i[A+68>>2]=54820,t=i[13708],i[A+12>>2]=t,k=A+12|0,i[k+i[t-12>>2]>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),u=k,o=n,k=l[A+159|0],n=(k|0)<0,x(u,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],n=(k|0)<0,x(A+12|0,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),o=x(A+12|0,21043,10),k=l[e+67|0],n=(k|0)<0,k=x(x(o,n?i[e+56>>2]:e+56|0,n?i[e+60>>2]:k),31338,1),n=A+148|0,W0(n,r),o=n,r=l[A+159|0],n=(r|0)<0,x(k,n?i[A+148>>2]:o,n?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),x(k,19994,14),r=i[e+68>>2],h=i[e+72>>2],(r|0)!=(h|0))for(u=A+24|0;o=s[r|0],e=i[A+12>>2]-12|0,k=t+i[e>>2]|0,i[k>>2]=i[k>>2]&-75|8,i[i[e>>2]+u>>2]=2,k=i[e>>2]+(A+12|0)|0,i[k+76>>2]==-1&&(n=A+148|0,e=i[k+28>>2],i[n>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(n,100192),V[i[i[e>>2]+28>>2]](e,32)|0,O0(n)),i[k+76>>2]=48,x(H0(A+12|0,o),21741,1),r=r+1|0,(h|0)!=(r|0););e=A+12|0,x(e,31338,1),i2(f,t),f=i[13707],i[A+12>>2]=f,i[e+i[f-12>>2]>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function Nr(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0;v=B-128|0,B=v,i[v+124>>2]=e,i[v+16>>2]=1094,h=v+16|0,Z=o1(v+8|0,0,h);i:{r:{e:{if(_=(A-r|0)/12|0,_>>>0>=101){if(h=Z2(_),!h)break e;e=i[Z>>2],i[Z>>2]=h,e&&V[i[Z+4>>2]](e)}for(o=h,e=r;;)if((e|0)==(A|0))A:for(;;){if(e=v+124|0,y=J2(f,e),E=1,J=_,J?y:E)for(J2(f,e)&&(i[n>>2]=i[n>>2]|2);;){if((r|0)==(A|0))break r;if(s[h|0]==2)break i;h=h+1|0,r=r+12|0}e=i[f>>2],o=i[e+12>>2];f:{if((o|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break f}e=s[o|0]}for(W=e<<24>>24,t||(W=V[i[i[k>>2]+12>>2]](k,W)|0),u=C+1|0,I=0,o=h,e=r;;)if((e|0)==(A|0)){if(C=u,!I||(E1(f),o=h,e=r,_+p>>>0<2))continue A;for(;;){if((e|0)==(A|0))continue A;s[e+11|0]>>>7|0?u=i[e+4>>2]:u=s[e+11|0]&127,(u|0)==(C|0)|s[o|0]!=2||(l[o|0]=0,p=p-1|0),o=o+1|0,e=e+12|0}}else{f:{if(s[o|0]!=1)break f;s[e+11|0]>>>7|0?w=i[e>>2]:w=e,w=l[w+C|0],t||(w=V[i[i[k>>2]+12>>2]](k,w)|0);k:{if((W|0)==(w|0)){if(I=1,s[e+11|0]>>>7|0?w=i[e+4>>2]:w=s[e+11|0]&127,(w|0)!=(u|0))break f;l[o|0]=2,p=p+1|0;break k}l[o|0]=0}_=_-1|0}o=o+1|0,e=e+12|0;continue}}else{s[e+11|0]>>>7|0?u=i[e+4>>2]:u=s[e+11|0]&127,u=!u,l[o|0]=u?2:1,o=o+1|0,e=e+12|0,p=p+u|0,_=_-u|0;continue}}u1(),P()}i[n>>2]=i[n>>2]|4}return f=i[Z>>2],i[Z>>2]=0,f&&V[i[Z+4>>2]](f),B=v+128|0,r}function Sw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;u=B-32|0,B=u,o=i[e+56>>2],n=i[e+60>>2];i:{if((o|0)==(n|0))break i;for(;;){r:{if(s[o+4|0]!=1||(A=i[o+16>>2],t=i[o+20>>2],(A|0)==(t|0)))break r;for(;k=(i[A+28>>2]+k|0)-i[A+24>>2]|0,A=A+40|0,(t|0)!=(A|0););}if(o=o+32|0,(n|0)==(o|0))break}if(!k||(l2(r,k+8|0),l2(r,1768186228),k=i[e+56>>2],n=i[e+60>>2],(k|0)==(n|0)))break i;for(;;){r:{if(s[k+4|0]!=1||(A=i[k+16>>2],t=i[k+20>>2],(A|0)==(t|0)))break r;for(;D4(r,A+24|0),A=A+40|0,(t|0)!=(A|0););}if(k=k+32|0,(n|0)==(k|0))break}}if(h=V[i[i[e>>2]+32>>2]](e,r,0)|0,i[e+68>>2]=i[r+12>>2],n=s[e+48|0],t=n>>>0<2,k=t?4:6,A=i[e+56>>2],w=i[e+60>>2],(A|0)!=(w|0))for(_=s[e+75|0],v=(((n|0)!=0)<<1)+(t?6:8)|0,o=(n?s[e+76|0]:0)&255,n=s[e+73|0],t=s[e+74|0],Z=((_+(v+o|0)|0)+n|0)+t|0,o=t+(n+o|0)|0;n=i[A+16>>2],t=i[A+20>>2],(n|0)==(t|0)?k=(k+v|0)+_|0:k=(k+Z|0)+m(o,((t-n|0)-40>>>0)/40|0)|0,A=A+32|0,(w|0)!=(A|0););we(r,k),i[r+12>>2]=h,V[i[i[e>>2]+36>>2]](u+12|0,e,r,i[r+4>>2]-(h+i[r>>2]|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[u+31|0]<0&&G(i[u+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,e=f+8|0;i:{if(l[78275]>=0){f=i[19567],i[e>>2]=i[19566],i[e+4>>2]=f,i[e+8>>2]=i[19568];break i}_0(e,i[19566],i[19567])}B=u+32|0}function Rr(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0;v=B-128|0,B=v,i[v+124>>2]=e,i[v+16>>2]=1094,h=v+16|0,Z=o1(v+8|0,0,h);i:{r:{e:{if(_=(A-r|0)/12|0,_>>>0>=101){if(h=Z2(_),!h)break e;e=i[Z>>2],i[Z>>2]=h,e&&V[i[Z+4>>2]](e)}for(o=h,e=r;;)if((e|0)==(A|0))A:for(;;){if(e=v+124|0,y=g2(f,e),E=1,J=_,J?y:E)for(g2(f,e)&&(i[n>>2]=i[n>>2]|2);;){if((r|0)==(A|0))break r;if(s[h|0]==2)break i;h=h+1|0,r=r+12|0}e=i[f>>2],o=i[e+12>>2];f:{if((o|0)==i[e+16>>2]){u=V[i[i[e>>2]+36>>2]](e)|0;break f}u=i[o>>2]}for(t||(u=V[i[i[k>>2]+28>>2]](k,u)|0),C=W+1|0,I=0,o=h,e=r;;)if((e|0)==(A|0)){if(W=C,!I||(Y1(f),o=h,e=r,_+p>>>0<2))continue A;for(;;){if((e|0)==(A|0))continue A;s[e+11|0]>>>7|0?u=i[e+4>>2]:u=s[e+11|0]&127,(u|0)==(W|0)|s[o|0]!=2||(l[o|0]=0,p=p-1|0),o=o+1|0,e=e+12|0}}else{f:{if(s[o|0]!=1)break f;s[e+11|0]>>>7|0?w=i[e>>2]:w=e,w=i[w+(W<<2)>>2],t||(w=V[i[i[k>>2]+28>>2]](k,w)|0);k:{if((u|0)==(w|0)){if(I=1,s[e+11|0]>>>7|0?w=i[e+4>>2]:w=s[e+11|0]&127,(w|0)!=(C|0))break f;l[o|0]=2,p=p+1|0;break k}l[o|0]=0}_=_-1|0}o=o+1|0,e=e+12|0;continue}}else{s[e+11|0]>>>7|0?u=i[e+4>>2]:u=s[e+11|0]&127,u=!u,l[o|0]=u?2:1,o=o+1|0,e=e+12|0,p=u+p|0,_=_-u|0;continue}}u1(),P()}i[n>>2]=i[n>>2]|4}return f=i[Z>>2],i[Z>>2]=0,f&&V[i[Z+4>>2]](f),B=v+128|0,r}function Ow(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0;n=B-48|0,B=n;i:{if(!(k&&e)){i[f>>2]=5,i[f+4>>2]=2001,i[f+8>>2]=7049;break i}t=i[e>>2],o=i[t+48>>2],t=i[t+52>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),i[n+44>>2]=0,i[n+36>>2]=0,i[n+40>>2]=0,u=n+16|0,I1(u,o,r,n+36|0);r:{if(i[n+16>>2]){P0(f,u,i[e>>2]);break r}e:{if(A&&(r=A-1|0,e=i[n+36>>2],r>>>0>2]-e>>3>>>0))break e;i[f>>2]=5,i[f+4>>2]=2007,i[f+8>>2]=10388;break r}e=e+(r<<3)|0,r=i[e>>2],e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1);e:{A:{f:{if(!r||(r=N0(r,68572,68704),!r))break f;if(e&&(i[e+4>>2]=i[e+4>>2]+1),A=0,i[n+12>>2]=0,i[n+4>>2]=0,i[n+8>>2]=0,o=i[r+52>>2],r=i[r+48>>2],(o|0)!=(r|0)&&(A=o-r|0,(A|0)<0))break A;if(i[k>>2]=A,i[f+8>>2]=i[18412],r=i[18411],i[f>>2]=i[18410],i[f+4>>2]=r,!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break e;V[i[i[e>>2]+8>>2]](e),g(e);break e}i[f>>2]=5,i[f+4>>2]=2007,i[f+8>>2]=1956;break e}y0(),P()}if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break r;V[i[i[e>>2]+8>>2]](e),g(e)}if(l[n+35|0]<0&&G(i[n+24>>2]),r=i[n+36>>2],r){if(f=r,e=i[n+40>>2],(f|0)!=(e|0)){for(;;){f=i[e-4>>2];r:{if(!f||(A=i[f+4>>2],i[f+4>>2]=A-1,A))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(e=e-8|0,(r|0)==(e|0))break}f=i[n+36>>2]}i[n+40>>2]=r,G(f)}if(!t||(f=i[t+4>>2],i[t+4>>2]=f-1,f))break i;V[i[i[t>>2]+8>>2]](t),g(t)}B=n+48|0}function jw(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;o=B-16|0,B=o;i:{if(!f)break i;h=o+4|0,A=i[i[f>>2]+48>>2],f=B-160|0,B=f,i[f+24>>2]=54496,i[f+80>>2]=54516,r=i[13633],i[f+16>>2]=r,n=f+16|0,i[n+i[r-12>>2]>>2]=i[13634],i[f+20>>2]=0,r=n+i[i[f+16>>2]-12>>2]|0,k=f+28|0,b0(r,k),i[r+72>>2]=0,i[r+76>>2]=-1,r=i[13635],i[f+24>>2]=r,t=i[r-12>>2],r=f+24|0,i[t+r>>2]=i[13636],u=i[13632],i[f+16>>2]=u,i[n+i[u-12>>2]>>2]=i[13637],i[f+80>>2]=54516,i[f+16>>2]=54476,i[f+24>>2]=54496,n=$0(k),i[n>>2]=53552,i[f+68>>2]=0,i[f+72>>2]=0,i[f+60>>2]=0,i[f+64>>2]=0,i[f+76>>2]=24,k=i[A+8>>2],u=i[A+12>>2];r:{if((k|0)==(u|0)||(A=i[k>>2],t=i[i[A>>2]+8>>2],i[f+12>>2]=0,V[t|0](f,A,f+12|0),A=l[f+11|0],t=(A|0)<0,x(r,t?i[f>>2]:f,t?i[f+4>>2]:A),l[f+11|0]<0&&G(i[f>>2]),A=k+8|0,(u|0)==(A|0)))break r;for(;x(r,31338,1),i[f+12>>2]=0,k=i[A>>2],V[i[i[k>>2]+8>>2]](f,k,f+12|0),k=l[f+11|0],t=(k|0)<0,x(r,t?i[f>>2]:f,t?i[f+4>>2]:k),l[f+11|0]<0&&G(i[f>>2]),A=A+8|0,(u|0)!=(A|0););}if(i2(h,n),r=i[13631],i[f+16>>2]=r,i[i[r-12>>2]+(f+16|0)>>2]=i[13639],i[f+24>>2]=i[13640],i[n>>2]=53552,l[f+71|0]<0&&G(i[f+60>>2]),K0(n),T0(f+80|0),B=f+160|0,r=l[o+15|0],n=(r|0)<0,A=n?i[o+4>>2]:h,f=B-16|0,B=f,i[f+12>>2]=n?i[o+8>>2]:r,i[f+8>>2]=A,e=uA(e|0,f+8|0,1,f+4|0)|0,e&&(i[23944]=e),B=f+16|0,l[o+15|0]>=0)break i;G(i[o+4>>2])}B=o+16|0}function Pw(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;u=B-16|0,B=u,n=U(32),i[n+16>>2]=1,i[n+4>>2]=0,i[n+8>>2]=0,i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,i[n+12>>2]=73276,i[n>>2]=73528,h=n+12|0;i:{if(!A||(SA(n+20|0,A),(A|0)<=0))break i;if(o=i[n+20>>2],(A|0)!=1)for(p=A&2147483646;t=_<<3,w=t+o|0,v=r+t|0,i[w>>2]=i[v>>2],i[w+4>>2]=i[v+4>>2],t=t|8,w=t+o|0,t=r+t|0,i[w>>2]=i[t>>2],i[w+4>>2]=i[t+4>>2],_=_+2|0,Z=Z+2|0,(p|0)!=(Z|0););if(!(A&1))break i;A=_<<3,o=A+o|0,r=r+A|0,i[o>>2]=i[r>>2],i[o+4>>2]=i[r+4>>2]}l[n+16|0]=1,r=i[e+8>>2],i[u+12>>2]=n,i[u+8>>2]=h,i[n+4>>2]=i[n+4>>2]+1,A=i[r+16>>2];i:{r:{if(A>>>0>2]){i[A+4>>2]=n,i[A>>2]=h,i[n+4>>2]=i[n+4>>2]+1,i[r+16>>2]=A+8,A=n;break r}if(o=Q2(r+12|0,u+8|0),A=i[u+12>>2],i[r+16>>2]=o,!A)break i}if(r=i[A+4>>2],i[A+4>>2]=r-1,r)break i;V[i[i[A>>2]+8>>2]](A),g(A)}i:{if(!k||(i[n+4>>2]=i[n+4>>2]+1,r=U(24),i[n+4>>2]=i[n+4>>2]+1,i[r+20>>2]=n,i[r+16>>2]=h,h=i[e+8>>2],A=i[e+12>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+12>>2]=A,i[r+8>>2]=h,A=i[e>>2],e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[r+4>>2]=e,i[r>>2]=A,i[k>>2]=r,e=i[n+4>>2],i[n+4>>2]=e-1,e))break i;V[i[i[n>>2]+8>>2]](n),g(n)}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[n+4>>2],i[n+4>>2]=f-1,f||(V[i[i[n>>2]+8>>2]](n),g(n)),B=u+16|0}function Lw(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;u=B-16|0,B=u,n=U(32),i[n+16>>2]=1,i[n+4>>2]=0,i[n+8>>2]=0,i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,i[n+12>>2]=73276,i[n>>2]=73528,h=n+12|0;i:{if(!A||(SA(n+20|0,A),(A|0)<=0))break i;if(o=i[n+20>>2],(A|0)!=1)for(p=A&2147483646;t=_<<3,w=t+o|0,v=r+t|0,i[w>>2]=i[v>>2],i[w+4>>2]=i[v+4>>2],t=t|8,w=t+o|0,t=r+t|0,i[w>>2]=i[t>>2],i[w+4>>2]=i[t+4>>2],_=_+2|0,Z=Z+2|0,(p|0)!=(Z|0););if(!(A&1))break i;A=_<<3,o=A+o|0,r=r+A|0,i[o>>2]=i[r>>2],i[o+4>>2]=i[r+4>>2]}l[n+16|0]=0,r=i[e+8>>2],i[u+12>>2]=n,i[u+8>>2]=h,i[n+4>>2]=i[n+4>>2]+1,A=i[r+16>>2];i:{r:{if(A>>>0>2]){i[A+4>>2]=n,i[A>>2]=h,i[n+4>>2]=i[n+4>>2]+1,i[r+16>>2]=A+8,A=n;break r}if(o=Q2(r+12|0,u+8|0),A=i[u+12>>2],i[r+16>>2]=o,!A)break i}if(r=i[A+4>>2],i[A+4>>2]=r-1,r)break i;V[i[i[A>>2]+8>>2]](A),g(A)}i:{if(!k||(i[n+4>>2]=i[n+4>>2]+1,r=U(24),i[n+4>>2]=i[n+4>>2]+1,i[r+20>>2]=n,i[r+16>>2]=h,h=i[e+8>>2],A=i[e+12>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+12>>2]=A,i[r+8>>2]=h,A=i[e>>2],e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[r+4>>2]=e,i[r>>2]=A,i[k>>2]=r,e=i[n+4>>2],i[n+4>>2]=e-1,e))break i;V[i[i[n>>2]+8>>2]](n),g(n)}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[n+4>>2],i[n+4>>2]=f-1,f||(V[i[i[n>>2]+8>>2]](n),g(n)),B=u+16|0}function Kw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;k=B-16|0,B=k,n=i[e+12>>2],o=n;i:{r:{e:{if(A=i[e+8>>2],n|A){if(n=i[e+32>>2],u=n>>>0>A>>>0,u&!o)break e;if(t=A-n|0,n=o-u|0,A=t,!n&A>>>0>=2147483648|n){if(e=U(24),i[k+4>>2]=e,i[k+8>>2]=18,i[k+12>>2]=-2147483624,r=s[10373]|s[10374]<<8|(s[10375]<<16|s[10376]<<24),A=s[10369]|s[10370]<<8|(s[10371]<<16|s[10372]<<24),l[e|0]=A,l[e+1|0]=A>>>8,l[e+2|0]=A>>>16,l[e+3|0]=A>>>24,l[e+4|0]=r,l[e+5|0]=r>>>8,l[e+6|0]=r>>>16,l[e+7|0]=r>>>24,l[e+18|0]=0,r=s[10385]|s[10386]<<8,l[e+16|0]=r,l[e+17|0]=r>>>8,r=s[10381]|s[10382]<<8|(s[10383]<<16|s[10384]<<24),A=s[10377]|s[10378]<<8|(s[10379]<<16|s[10380]<<24),l[e+8|0]=A,l[e+9|0]=A>>>8,l[e+10|0]=A>>>16,l[e+11|0]=A>>>24,l[e+12|0]=r,l[e+13|0]=r>>>8,l[e+14|0]=r>>>16,l[e+15|0]=r>>>24,r0(f,2,1e3,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}n=i[e+48>>2],t=i[e+52>>2]-n|0;A:{if(A>>>0>t>>>0){L2(e+48|0,A-t|0),n=i[e+48>>2];break A}if(A>>>0>=t>>>0)break A;i[e+52>>2]=A+n}D6(r,n,A)}if(s[r+20|0]!=1)break r;if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,100,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,101,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+16|0}function qw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,k=i[13708],i[A+12>>2]=k,t=i[k-12>>2],k=A+12|0,i[t+k>>2]=i[13709],n=k+i[i[A+12>>2]-12>>2]|0,o=A+16|0,b0(n,o),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,o=$0(o),i[o>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),u=k,t=n,k=l[A+159|0],n=(k|0)<0,x(u,n?i[A+148>>2]:t,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]);i:{if(i[e+48>>2]){if(k=A+148|0,W0(k,r),t=k,k=l[A+159|0],n=(k|0)<0,x(A+12|0,n?i[A+148>>2]:t,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),u=x(A+12|0,20949,13),k=i[e+48>>2],n=V[i[i[k>>2]+8>>2]](k)|0,k=A+148|0,l[k+4|0]=0,l[k+11|0]=4,l[k+3|0]=n,l[k+2|0]=n>>>8,l[k+1|0]=n>>>16,l[k|0]=n>>>24,t=k,k=l[A+159|0],n=(k|0)<0,x(x(u,n?i[A+148>>2]:t,n?i[A+152>>2]:k),31338,1),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,e=i[e+48>>2],V[i[i[e>>2]+12>>2]](k,e,r),e=l[A+159|0],r=(e|0)<0,x(A+12|0,r?i[A+148>>2]:k,r?i[A+152>>2]:e),l[A+159|0]>=0)break i;G(i[A+148>>2]);break i}e=A+148|0,W0(e,r),k=e,e=l[A+159|0],r=(e|0)<0,x(A+12|0,r?i[A+148>>2]:k,r?i[A+152>>2]:e),l[A+159|0]<0&&G(i[A+148>>2]),e=A+12|0,x(e,31085,17),x(e,22231,17)}i2(f,o),f=i[13707],i[A+12>>2]=f,i[i[f-12>>2]+(A+12|0)>>2]=i[13710],i[o>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(o),T0(A+68|0),B=A+160|0}function Dr(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;t=B-48|0,B=t,k=i[f>>2],f=i[e+4>>2],e=i[e>>2],l[t+12|0]=0,l[t+23|0]=0,r=r0(t+24|0,e,f,t+12|0),f=i[k+116>>2];i:{if(f>>>0>2]){e=i[r+4>>2],i[f>>2]=i[r>>2],i[f+4>>2]=e,i[f+16>>2]=i[r+16>>2],e=i[r+12>>2],i[f+8>>2]=i[r+8>>2],i[f+12>>2]=e,i[r+16>>2]=0,i[r+8>>2]=0,i[r+12>>2]=0,i[k+116>>2]=f+20;break i}r:{e:{if(e=i[k+112>>2],n=(i[k+116>>2]-e|0)/20|0,f=n+1|0,f>>>0<214748365){if(e=(i[k+120>>2]-e|0)/20|0,u=e<<1,f=e>>>0>=107374182?214748364:f>>>0>>0?u:f,f){if(f>>>0>=214748365)break e;A=U(m(f,20))}e=m(n,20)+A|0,n=i[r+4>>2],i[e>>2]=i[r>>2],i[e+4>>2]=n,i[e+16>>2]=i[r+16>>2],n=i[r+12>>2],i[e+8>>2]=i[r+8>>2],i[e+12>>2]=n,i[r+16>>2]=0,i[r+8>>2]=0,i[r+12>>2]=0,w=m(f,20)+A|0,n=e+20|0,A=i[k+116>>2],o=i[k+112>>2];A:{if((A|0)==(o|0)){f=e;break A}for(;u=A-20|0,h=i[u+4>>2],f=e-20|0,i[f>>2]=i[u>>2],i[f+4>>2]=h,h=e-12|0,e=A-12|0,i[h+8>>2]=i[e+8>>2],A=i[e+4>>2],i[h>>2]=i[e>>2],i[h+4>>2]=A,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,e=f,A=u,(o|0)!=(A|0););A=i[k+116>>2],o=i[k+112>>2]}if(i[k+120>>2]=w,i[k+116>>2]=n,i[k+112>>2]=f,(A|0)!=(o|0))for(;l[A-1|0]<0&&G(i[A-12>>2]),A=A-20|0,(o|0)!=(A|0););o&&G(o);break r}y0(),P()}_2(),P()}if(f=l[r+19|0],i[k+116>>2]=n,(f|0)>=0)break i;G(i[r+8>>2])}l[t+23|0]<0&&G(i[t+12>>2]),B=t+48|0}function B8(f,e,r,A,k,n,t,o){var u=0,h=0,w=0,_=0,v=0;u=B-16|0,B=u,i[u+8>>2]=r,i[u+12>>2]=e,r=u+4|0,e=i[A+28>>2],i[r>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),h=x0(r,100192),O0(r),i[k>>2]=0,e=0;i:{for(;;){if(e|(t|0)==(o|0))break i;r:{if(J2(u+12|0,u+8|0))break r;e:{if((V[i[i[h>>2]+36>>2]](h,l[t|0],0)|0)==37){if((t+1|0)==(o|0))break r;r=0;A:{f:{if(e=V[i[i[h>>2]+36>>2]](h,l[t+1|0],0)|0,(e|0)==69||(w=1,(e&255)==48))break f;break A}if((t+2|0)==(o|0))break r;w=2,r=e,e=V[i[i[h>>2]+36>>2]](h,l[t+2|0],0)|0}_=u,v=V[i[i[f>>2]+36>>2]](f,i[u+12>>2],i[u+8>>2],A,k,n,e,r)|0,i[_+12>>2]=v,t=(t+w|0)+1|0;break e}if(e=l[t|0],(e|0)>=0?e=i[i[h+8>>2]+(e<<2)>>2]&1:e=0,e){for(;t=t+1|0,!!((o|0)!=(t|0)&&(e=l[t|0],(e|0)>=0?e=i[i[h+8>>2]+(e<<2)>>2]&1:e=0,e)););for(;;){if(r=u+12|0,J2(r,u+8|0))break e;e=i[r>>2],w=i[e+12>>2];A:{if((w|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break A}e=s[w|0]}if(e=e<<24>>24,(e|0)>=0?e=i[i[h+8>>2]+(e<<2)>>2]&1:e=0,!e)break e;E1(r)}}w=u+12|0,e=i[w>>2],r=i[e+12>>2];A:{if((r|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break A}e=s[r|0]}if((V[i[i[h>>2]+12>>2]](h,e<<24>>24)|0)==(V[i[i[h>>2]+12>>2]](h,l[t|0])|0)){t=t+1|0,E1(w);break e}i[k>>2]=4}e=i[k>>2];continue}break}i[k>>2]=4}return J2(u+12|0,u+8|0)&&(i[k>>2]=i[k>>2]|2),B=u+16|0,i[u+12>>2]}function nn(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0;f=B-16|0,B=f,i[f+12>>2]=r,i[f+8>>2]=n,i[f+12>>2]=r,i[f+8>>2]=n;i:{r:{for(;;){e:{if(e=i[f+12>>2],A>>>0<=e>>>0||(w=i[f+8>>2],w>>>0>=t>>>0))break e;n=l[e|0],r=n&255;A:{if((n|0)>=0){if(r>>>0>1114111)break r;n=1;break A}if(n>>>0<4294967234)break r;if(n>>>0<=4294967263){if(n=1,(A-e|0)<2||(n=2,u=s[e+1|0],(u&192)!=128))break i;r=u&63|r<<6&1984,n=2;break A}if(n>>>0<=4294967279){if(n=1,h=A-e|0,(h|0)<2)break i;u=s[e+1|0];f:{k:{if((r|0)!=237){if((r|0)!=224)break k;if((u&224)==160)break f;break r}if((u&224)==128)break f;break r}if((u&192)!=128)break r}if((h|0)==2)break i;if(n=s[e+2|0],(n&192)!=128)break r;r=n&63|(r<<12&61440|(u&63)<<6),n=3;break A}if(n>>>0>4294967284)break r;if(n=1,h=A-e|0,(h|0)<2)break i;u=s[e+1|0];f:{k:switch(r-240|0){case 0:if((u+112&255)>>>0>=48)break r;break f;case 4:if((u&240)!=128)break r;break f;default:break k}if((u&192)!=128)break r}if((h|0)==2)break i;if(_=s[e+2|0],(_&192)!=128)break r;if((h|0)==3)break i;if(h=s[e+3|0],(h&192)!=128)break r;if(n=2,r=h&63|(_<<6&4032|(r<<18&1835008|(u&63)<<12)),r>>>0>1114111)break i;n=4}i[w>>2]=r,i[f+12>>2]=e+n,i[f+8>>2]=i[f+8>>2]+4;continue}break}n=e>>>0>>0;break i}n=2}return i[k>>2]=i[f+12>>2],i[o>>2]=i[f+8>>2],B=f+16|0,n|0}function $w(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;n=B-32|0,B=n,t=V[i[i[e>>2]+32>>2]](e,r,0)|0,s[e+136|0]==1&&l2(r,i[e+56>>2]),s[e+137|0]==1&&l2(r,i[e+60>>2]),s[e+138|0]==1&&l2(r,i[e+64>>2]);i:{if(s[e+139|0]!=1)break i;if(s[e+68|0]==1){if(A=i0[e+72>>3],s[e+69|0]==1){A=A*1073741824;r:{if(d0(A)<2147483648){k=~~A;break r}k=-2147483648}l2(r,k),A=i0[e+80>>3]*1073741824;r:{if(d0(A)<2147483648){k=~~A;break r}k=-2147483648}if(l2(r,k),A=i0[e+88>>3]*1073741824,d0(A)<2147483648){l2(r,~~A);break i}l2(r,-2147483648);break i}A=A*16384;r:{if(d0(A)<2147483648){k=~~A;break r}k=-2147483648}w2(r,k),A=i0[e+80>>3]*16384;r:{if(d0(A)<2147483648){k=~~A;break r}k=-2147483648}if(w2(r,k),A=i0[e+88>>3]*16384,d0(A)<2147483648){w2(r,~~A);break i}w2(r,-2147483648);break i}A=i0[e+104>>3]*65536;r:{if(d0(A)<2147483648){k=~~A;break r}k=-2147483648}l2(r,k),A=i0[e+112>>3]*65536;r:{if(d0(A)<2147483648){k=~~A;break r}k=-2147483648}l2(r,k),A=i0[e+120>>3]*65536;r:{if(d0(A)<2147483648){k=~~A;break r}k=-2147483648}l2(r,k)}s[e+140|0]==1&&l2(r,i[e+128>>2]),i[r+12>>2]=t,V[i[i[e>>2]+36>>2]](n+12|0,e,r,i[r+4>>2]-(i[r>>2]+t|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[n+31|0]<0&&G(i[n+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=n+32|0}function tn(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0;f=B-16|0,B=f,i[f+12>>2]=r,i[f+8>>2]=n,i[f+12>>2]=r,i[f+8>>2]=n,r=i[f+12>>2];i:{r:{for(;;){if(r>>>0>=A>>>0){n=0;break i}n=2;e:{e=Q[r>>1];A:{if(e>>>0<=127){if(n=1,r=i[f+8>>2],(t-r|0)<=0)break i;i[f+8>>2]=r+1,l[r|0]=e;break A}if(e>>>0<=2047){if(r=i[f+8>>2],(t-r|0)<2)break r;i[f+8>>2]=r+1,l[r|0]=e>>>6|192,r=i[f+8>>2],i[f+8>>2]=r+1,l[r|0]=e&63|128;break A}if(e>>>0<=55295){if(r=i[f+8>>2],(t-r|0)<3)break r;i[f+8>>2]=r+1,l[r|0]=e>>>12|224,r=i[f+8>>2],i[f+8>>2]=r+1,l[r|0]=e>>>6&63|128,r=i[f+8>>2],i[f+8>>2]=r+1,l[r|0]=e&63|128;break A}if(e>>>0<=56319){if(n=1,(A-r|0)<3)break i;if(u=Q[r+2>>1],(u&64512)!=56320)break e;if((t-i[f+8>>2]|0)<4)break i;if(n=e&960,(u&1023|(e<<10&64512|n<<10))>>>0>1048575)break e;i[f+12>>2]=r+2,r=i[f+8>>2],i[f+8>>2]=r+1,h=r,r=(n>>>6|0)+1|0,l[h|0]=r>>>2|240,n=i[f+8>>2],i[f+8>>2]=n+1,l[n|0]=r<<4&48|e>>>2&15|128,r=i[f+8>>2],i[f+8>>2]=r+1,l[r|0]=u>>>6&15|e<<4&48|128,e=i[f+8>>2],i[f+8>>2]=e+1,l[e|0]=u&63|128;break A}if(e>>>0<57344)break i;if(r=i[f+8>>2],(t-r|0)<3)break r;i[f+8>>2]=r+1,l[r|0]=e>>>12|224,r=i[f+8>>2],i[f+8>>2]=r+1,l[r|0]=e>>>6&191,r=i[f+8>>2],i[f+8>>2]=r+1,l[r|0]=e&63|128}r=i[f+12>>2]+2|0,i[f+12>>2]=r;continue}break}n=2;break i}n=1}return i[k>>2]=i[f+12>>2],i[o>>2]=i[f+8>>2],B=f+16|0,n|0}function bw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-176|0,B=A,i[A+84>>2]=54820,k=i[13708],i[A+28>>2]=k,t=i[k-12>>2],k=A+28|0,i[t+k>>2]=i[13709],o=k+i[i[A+28>>2]-12>>2]|0,n=A+32|0,b0(o,n),i[o+72>>2]=0,i[o+76>>2]=-1,i[A+84>>2]=54820,i[A+28>>2]=54800,o=$0(n),i[o>>2]=53552,i[A+72>>2]=0,i[A+76>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+80>>2]=16,n=A+164|0,Hr(n,e,r),u=k,t=n,k=l[A+175|0],n=(k|0)<0,x(u,n?i[A+164>>2]:t,n?i[A+168>>2]:k),l[A+175|0]<0&&G(i[A+164>>2]),t=i[e+12>>2],n=i[e+32>>2],k=i[e+8>>2];i:{if(!t&n>>>0<=k>>>0|t){if(e=i[e+48>>2],X[A+20>>1]=s[21439]|s[21440]<<8,l[A+27|0]=6,i[A+16>>2]=s[21435]|s[21436]<<8|(s[21437]<<16|s[21438]<<24),l[A+22|0]=0,X[A+8>>1]=s[21740]|s[21741]<<8,l[A+15|0]=6,i[A+4>>2]=s[21736]|s[21737]<<8|(s[21738]<<16|s[21739]<<24),l[A+10|0]=0,r=A+164|0,ck(r,e,k-n|0,A+16|0,A+4|0),k=r,e=l[A+175|0],r=(e|0)<0,x(A+28|0,r?i[A+164>>2]:k,r?i[A+168>>2]:e),l[A+175|0]<0&&G(i[A+164>>2]),l[A+15|0]<0&&G(i[A+4>>2]),l[A+27|0]>=0)break i;G(i[A+16>>2]);break i}k=A+164|0,W0(k,r),t=k,r=l[A+175|0],k=(r|0)<0,x(A+28|0,k?i[A+164>>2]:t,k?i[A+168>>2]:r),l[A+175|0]<0&&G(i[A+164>>2]),x(n4(x(A+28|0,19092,17),i[e+8>>2],i[e+12>>2]),31151,23)}i2(f,o),f=i[13707],i[A+28>>2]=f,i[i[f-12>>2]+(A+28|0)>>2]=i[13710],i[o>>2]=53552,l[A+75|0]<0&&G(i[A+64>>2]),K0(o),T0(A+84|0),B=A+176|0}function dw(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;A=B+-64|0,B=A,i[A+60>>2]=0,i[A+56>>2]=0,$k(A+44|0,e,r,A+60|0,A+56|0);i:{if(i[A+44>>2]){e=i[A+48>>2],i[f>>2]=i[A+44>>2],i[f+4>>2]=e,i[f+8>>2]=i[A+52>>2];break i}r:{if((r|0)<12||(r=s[e+8|0],!r)||(n=s[e+9|0],!n)||(o=s[e+10|0],!o)||(e=s[e+11|0],!e))break r;k=e|(n<<16|r<<24|o<<8)}e=i[9233],i[A+24>>2]=i[9232],i[A+28>>2]=e,e=i[9231],i[A+16>>2]=i[9230],i[A+20>>2]=e,e=i[9229],i[A+8>>2]=i[9228],i[A+12>>2]=e,i[A+36>>2]=0,i[A+40>>2]=0,n=A+36|0,i[A+32>>2]=n,e=i[9227],i[A>>2]=i[9226],i[A+4>>2]=e,e=A+32|0,jr(e,A,e),o=i[A+36>>2];r:{e:{if(o){for(r=n,e=o;u=r,h=e,t=k0[e+16>>2]>>0,r=t?r:e,e=i[(t<<2)+e>>2],!!e;);if(!((r|0)!=(n|0)&k0[(t?u:h)+16>>2]<=k>>>0)){if(k=i[A+60>>2],_=i[A+56>>2],!o|(_|0)<=0)break e;for(t=0;;){for(v=i[(t<<2)+k>>2],r=n,e=o;u=r,h=e,w=k0[e+16>>2]>>0,r=w?r:e,e=i[(w<<2)+e>>2],!!e;);if(!((r|0)==(n|0)|k0[(w?u:h)+16>>2]>v>>>0)){k&&G(k),e=i[18553],i[f>>2]=i[18552],i[f+4>>2]=e,i[f+8>>2]=i[18554];break r}if(t=t+1|0,(_|0)==(t|0))break}break e}e=i[A+60>>2],e&&G(e),e=i[18553],i[f>>2]=i[18552],i[f+4>>2]=e,i[f+8>>2]=i[18554];break r}k=i[A+60>>2]}k&&G(k),i[f>>2]=2,i[f+4>>2]=3001,i[f+8>>2]=17987}P8(A+32|0,i[A+36>>2])}B=A- -64|0}function cw(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0,t=0,o=0,u=0;A=B-16|0,B=A;i:{r:{if(!i[f+64>>2])break r;if(!(s[f+92|0]&16)){i[f+16>>2]=0,i[f+12>>2]=0,i[f+8>>2]=0,r=i[f+52>>2];e:{if(r>>>0>=9){if(s[f+98|0]==1){n=r,r=i[f+32>>2],i[f+28>>2]=(n+r|0)-1,i[f+20>>2]=r,i[f+24>>2]=r;break e}r=i[f+56>>2],i[f+28>>2]=(r+i[f+60>>2]|0)-1,i[f+20>>2]=r,i[f+24>>2]=r;break e}i[f+28>>2]=0,i[f+20>>2]=0,i[f+24>>2]=0}i[f+92>>2]=16}if(t=i[f+20>>2],o=i[f+28>>2],(e|0)!=-1&&(i[f+24>>2]||(i[f+28>>2]=A+16,r=A+15|0,i[f+20>>2]=r,i[f+24>>2]=r),l[i[f+24>>2]]=e<<24>>24,i[f+24>>2]=i[f+24>>2]+1),k=i[f+24>>2],r=i[f+20>>2],(k|0)!=(r|0)){e:{if(s[f+98|0]==1){if(n=r,r=k-r|0,(F1(n,1,r,i[f+64>>2])|0)!=(r|0))break r;break e}for(i[A+8>>2]=i[f+32>>2],u=f+72|0;;){if(r=i[f+68>>2],r){if(k=i[f+32>>2],r=V[i[i[r>>2]+12>>2]](r,u,i[f+20>>2],i[f+24>>2],A+4|0,k,k+i[f+52>>2]|0,A+8|0)|0,i[f+20>>2]==i[A+4>>2])break r;if((r|0)==3){if(r=i[f+24>>2]-i[f+20>>2]|0,(F1(i[f+20>>2],1,r,i[f+64>>2])|0)!=(r|0))break r;break e}if(r>>>0>1||(n=i[f+32>>2],k=i[A+8>>2]-n|0,(F1(n,1,k,i[f+64>>2])|0)!=(k|0)))break r;if((r|0)!=1)break e;r=i[A+4>>2],i[f+28>>2]=i[f+24>>2],i[f+20>>2]=r,i[f+24>>2]=r,i[f+24>>2]=i[f+24>>2]+(i[f+28>>2]-i[f+20>>2]|0);continue}break}u1(),P()}i[f+28>>2]=o,i[f+20>>2]=t,i[f+24>>2]=t}f=(e|0)!=-1?e:0;break i}f=-1}return B=A+16|0,f|0}function Ur(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0;v=B-2048|0,B=v;i:{if((e|0)<2){h=-1,E=6,o=-2,J=32,u=5;break i}for(k=e;h=n,n=n+1|0,u=k>>>0>3,k=k>>>1|0,!!u;);for(n=0,k=e;t=n,n=n+1|0,u=k>>>0>3,k=k>>>1|0,!!u;);for(o=h-1|0,n=0,k=e;u=n,n=n+1|0,Z=k>>>0>3,k=k>>>1|0,!!Z;);J=64<>1],y=t,t=(w<<5)+43984|0,n=m(D,l[y+t|0])+(m(X[I+(m(A,k)<<1)>>1],l[k+t|0])+n|0)|0,k=k+2|0,_=_+2|0,(C|0)!=(_|0););if(t=(m(e,o)+W<<1)+v|0,Z&&(n=m(X[I+(m(A,k)<<1)>>1],l[((w<<5)+k|0)+43984|0])+n|0),X[t>>1]=n+p>>h,o=o+1|0,(o|0)==(e|0))break}if(W=W+1|0,(W|0)==(e|0))break}if((e|0)<=0)break i;for(C=e&2147483646,Z=e&1,h=0;;){for(w=m(e,h),t=(w<<1)+f|0,r=0;;){if(p=r<>1],y=A,A=(p<<5)+43984|0,n=m(o,l[y+A|0])+(m(X[(k+w<<1)+v>>1],l[A+k|0])+n|0)|0,k=k+2|0,_=_+2|0,(C|0)!=(_|0););if(A=t+(r<<1)|0,Z&&(n=m(X[(k+w<<1)+v>>1],l[((p<<5)+k|0)+43984|0])+n|0),X[A>>1]=n+J>>E,r=r+1|0,(r|0)==(e|0))break}if(h=h+1|0,(h|0)==(e|0))break}}B=v+2048|0}function i_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=Y(0);for(f=B-256|0,B=f,i[f+248>>2]=r,i[f+252>>2]=e,u3(f+192|0,A,f+208|0,f+207|0,f+206|0),r=B-16|0,B=r,e=f+180|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+176>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0,l[f+7|0]=1,l[f+6|0]=69;;){i:{if(J2(f+252|0,f+248|0))break i;t=i[f+176>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+176>>2]=A+r),t=f+252|0,A=i[t>>2],o=i[A+12>>2];r:{if((o|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=s[o|0]}if(EA(A<<24>>24,f+7|0,f+6|0,r,f+176|0,l[f+207|0],l[f+206|0],f+192|0,f+16|0,f+12|0,f+8|0,f+208|0))break i;E1(t);continue}break}s[f+203|0]>>>7|0?A=i[f+196>>2]:A=s[f+203|0]&127;i:{if(!A|s[f+7|0]!=1||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return u=n,h=r9(r,i[f+176>>2],k),Z0[u>>2]=h,K1(f+192|0,f+16|0,i[f+12>>2],k),J2(f+252|0,f+248|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+252>>2],z0(e),z0(f+192|0),B=f+256|0,r|0}function P2(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;if(k=i[f+4>>2],r=i[f+8>>2],k>>>0>>0){r=i[e+4>>2],i[k>>2]=i[e>>2],i[k+4>>2]=r,r=i[e+12>>2],i[k+8>>2]=i[e+8>>2],i[k+12>>2]=r,i[k+16>>2]=72992,i[k+20>>2]=i[e+20>>2],r=s[e+23|0]|s[e+24|0]<<8|(s[e+25|0]<<16|s[e+26|0]<<24),l[k+23|0]=r,l[k+24|0]=r>>>8,l[k+25|0]=r>>>16,l[k+26|0]=r>>>24,i[k+28>>2]=i[e+28>>2],i[f+4>>2]=k+32;return}i:{if(o=i[f>>2],t=k-o>>5,n=t+1|0,n>>>0<134217728){if(A=r-o|0,r=A>>4,u=A>>>0>=2147483616?134217727:r>>>0>n>>>0?r:n,u){if(u>>>0>=134217728)break i;n=U(u<<5)}else n=0;r=n+(t<<5)|0,A=i[e+4>>2],i[r>>2]=i[e>>2],i[r+4>>2]=A,t=i[e+12>>2],A=i[e+8>>2],i[r+16>>2]=72992,i[r+8>>2]=A,i[r+12>>2]=t,i[r+20>>2]=i[e+20>>2],A=s[e+23|0]|s[e+24|0]<<8|(s[e+25|0]<<16|s[e+26|0]<<24),l[r+23|0]=A,l[r+24|0]=A>>>8,l[r+25|0]=A>>>16,l[r+26|0]=A>>>24,i[r+28>>2]=i[e+28>>2],u=n+(u<<5)|0,h=r+32|0;r:{if((k|0)==(o|0)){e=r;break r}for(;n=k-32|0,A=i[n+4>>2],e=r-32|0,i[e>>2]=i[n>>2],i[e+4>>2]=A,A=i[n+12>>2],i[e+8>>2]=i[n+8>>2],i[e+12>>2]=A,i[r-16>>2]=72992,t=r-12|0,A=k-12|0,i[t>>2]=i[A>>2],A=s[A+3|0]|s[A+4|0]<<8|(s[A+5|0]<<16|s[A+6|0]<<24),l[t+3|0]=A,l[t+4|0]=A>>>8,l[t+5|0]=A>>>16,l[t+6|0]=A>>>24,i[r-4>>2]=i[k-4>>2],r=e,k=n,(k|0)!=(o|0););o=i[f>>2]}i[f+8>>2]=u,i[f+4>>2]=h,i[f>>2]=e,o&&G(o),i[f+4>>2]=h;return}y0(),P()}_2(),P()}function r_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0;for(f=B-256|0,B=f,i[f+248>>2]=r,i[f+252>>2]=e,u3(f+192|0,A,f+208|0,f+207|0,f+206|0),r=B-16|0,B=r,e=f+180|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+176>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0,l[f+7|0]=1,l[f+6|0]=69;;){i:{if(J2(f+252|0,f+248|0))break i;t=i[f+176>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+176>>2]=A+r),t=f+252|0,A=i[t>>2],o=i[A+12>>2];r:{if((o|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=s[o|0]}if(EA(A<<24>>24,f+7|0,f+6|0,r,f+176|0,l[f+207|0],l[f+206|0],f+192|0,f+16|0,f+12|0,f+8|0,f+208|0))break i;E1(t);continue}break}s[f+203|0]>>>7|0?A=i[f+196>>2]:A=s[f+203|0]&127;i:{if(!A|s[f+7|0]!=1||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return u=n,h=A9(r,i[f+176>>2],k),i0[u>>3]=h,K1(f+192|0,f+16|0,i[f+12>>2],k),J2(f+252|0,f+248|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+252>>2],z0(e),z0(f+192|0),B=f+256|0,r|0}function e_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=Y(0);for(f=B-368|0,B=f,i[f+360>>2]=r,i[f+364>>2]=e,l3(f+204|0,A,f+224|0,f+220|0,f+216|0),r=B-16|0,B=r,e=f+192|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+188>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0,l[f+7|0]=1,l[f+6|0]=69;;){i:{if(g2(f+364|0,f+360|0))break i;t=i[f+188>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+188>>2]=A+r),t=f+364|0,A=i[t>>2],o=i[A+12>>2];r:{if((o|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=i[o>>2]}if(FA(A,f+7|0,f+6|0,r,f+188|0,i[f+220>>2],i[f+216>>2],f+204|0,f+16|0,f+12|0,f+8|0,f+224|0))break i;Y1(t);continue}break}s[f+215|0]>>>7|0?A=i[f+208>>2]:A=s[f+215|0]&127;i:{if(!A|s[f+7|0]!=1||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return u=n,h=r9(r,i[f+188>>2],k),Z0[u>>2]=h,K1(f+204|0,f+16|0,i[f+12>>2],k),g2(f+364|0,f+360|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+364>>2],z0(e),z0(f+204|0),B=f+368|0,r|0}function A_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0;for(f=B-368|0,B=f,i[f+360>>2]=r,i[f+364>>2]=e,l3(f+204|0,A,f+224|0,f+220|0,f+216|0),r=B-16|0,B=r,e=f+192|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+188>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0,l[f+7|0]=1,l[f+6|0]=69;;){i:{if(g2(f+364|0,f+360|0))break i;t=i[f+188>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+188>>2]=A+r),t=f+364|0,A=i[t>>2],o=i[A+12>>2];r:{if((o|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=i[o>>2]}if(FA(A,f+7|0,f+6|0,r,f+188|0,i[f+220>>2],i[f+216>>2],f+204|0,f+16|0,f+12|0,f+8|0,f+224|0))break i;Y1(t);continue}break}s[f+215|0]>>>7|0?A=i[f+208>>2]:A=s[f+215|0]&127;i:{if(!A|s[f+7|0]!=1||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return u=n,h=A9(r,i[f+188>>2],k),i0[u>>3]=h,K1(f+204|0,f+16|0,i[f+12>>2],k),g2(f+364|0,f+360|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+364>>2],z0(e),z0(f+204|0),B=f+368|0,r|0}function on(f,e,r){var A=0,k=0,n=0;i:{r:{if(!r){if(i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,r=i[e+156>>2],e=i[e+152>>2],(r|0)==(e|0))break r;if(k=r-e|0,(k|0)<0)break i;for(A=U(k),i[f+4>>2]=A,i[f>>2]=A,i[f+8>>2]=A+k;i[A>>2]=i[e>>2],k=i[e+4>>2],i[A+4>>2]=k,k&&(i[k+4>>2]=i[k+4>>2]+1),A=A+8|0,e=e+8|0,(r|0)!=(e|0););i[f+4>>2]=A;return}if(i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,A=i[e+152>>2],k=i[e+156>>2],(A|0)==(k|0))break r;if(n=r&4,!(r&2)){if(e=0,!n)for(;;){e:{if(k0[f+8>>2]<=e>>>0){e=Q2(f,A);break e}i[e>>2]=i[A>>2],r=i[A+4>>2],i[e+4>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),e=e+8|0}if(i[f+4>>2]=e,A=A+8|0,(k|0)==(A|0))break r}for(;;){if(r=i[A>>2],!s[r+60|0]){e:{if(k0[f+8>>2]<=e>>>0){e=Q2(f,A);break e}i[e>>2]=r,r=i[A+4>>2],i[e+4>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),e=e+8|0}i[f+4>>2]=e}if(A=A+8|0,(k|0)==(A|0))break}break r}if(e=0,!n)for(;;){if(r=i[A>>2],!s[r+48|0]){e:{if(k0[f+8>>2]<=e>>>0){e=Q2(f,A);break e}i[e>>2]=r,r=i[A+4>>2],i[e+4>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),e=e+8|0}i[f+4>>2]=e}if(A=A+8|0,(k|0)==(A|0))break r}for(;;){if(r=i[A>>2],!(s[r+48|0]|s[r+60|0])){e:{if(k0[f+8>>2]>e>>>0){i[e>>2]=r,r=i[A+4>>2],i[e+4>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),e=e+8|0;break e}e=Q2(f,A)}i[f+4>>2]=e}if(A=A+8|0,(k|0)==(A|0))break}}return}y0(),P()}function f_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;k=B-32|0,B=k,yA(k+8|0,e,r);i:{if(i[k+8>>2]){e=i[k+12>>2],i[f>>2]=i[k+8>>2],i[f+4>>2]=e,i[f+16>>2]=i[k+24>>2],e=i[k+20>>2],i[f+8>>2]=i[k+16>>2],i[f+12>>2]=e,i[k+24>>2]=0,i[k+16>>2]=0,i[k+20>>2]=0;break i}p=e,W=t2(r),X[p+72>>1]=W,p=e,W=t2(r),X[p+74>>1]=W;r:{if(i[e+64>>2]==i[e+60>>2])break r;e:{for(;;){A:{h=t2(r),w=t2(r),_=t2(r),n=i[e+80>>2],A=i[e+84>>2];f:{if(n>>>0>>0){X[n+4>>1]=_,X[n+2>>1]=w,X[n>>1]=h,h=n+6|0;break f}if(o=i[e+76>>2],t=(n-o|0)/6|0,u=t+1|0,u>>>0>=715827883)break A;if(Z=m(t,6),A=(A-o|0)/6|0,t=A<<1,t=A>>>0>=357913941?715827882:t>>>0>u>>>0?t:u,t){if(t>>>0>=715827883)break e;u=U(m(t,6))}else u=0;if(A=Z+u|0,X[A+4>>1]=_,X[A+2>>1]=w,X[A>>1]=h,h=A+6|0,(n|0)!=(o|0)){for(;A=A-6|0,n=n-6|0,w=Q[n>>1]|Q[n+2>>1]<<16,X[A>>1]=w,X[A+2>>1]=w>>>16,X[A+4>>1]=Q[n+4>>1],(n|0)!=(o|0););o=i[e+76>>2]}if(i[e+84>>2]=u+m(t,6),i[e+80>>2]=h,i[e+76>>2]=A,!o)break f;G(o)}if(i[e+80>>2]=h,v=v+1|0,v>>>0>2]-i[e+60>>2]>>2>>>0)continue;break r}break}y0(),P()}_2(),P()}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}l[k+27|0]<0&&G(i[k+16>>2]),B=k+32|0}function k_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;for(f=B-256|0,B=f,i[f+248>>2]=r,i[f+252>>2]=e,e=B-16|0,B=e,o=f+196|0,i[o>>2]=0,i[o+4>>2]=0,i[o+8>>2]=0,B=e+16|0,t=f+16|0,e=i[A+28>>2],i[t>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(t,100192),V[i[i[e>>2]+32>>2]](e,60064,60090,f+208|0)|0,O0(t),e=B-16|0,B=e,r=f+184|0,i[r>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,B=e+16|0,h2(r,s[r+11|0]>>>7|0?(i[r+8>>2]&2147483647)-1|0:10),s[r+11|0]>>>7|0?e=i[r>>2]:e=r,i[f+180>>2]=e,i[f+12>>2]=t,i[f+8>>2]=0;;){i:{if(J2(f+252|0,f+248|0))break i;t=i[f+180>>2],s[r+11|0]>>>7|0?A=i[r+4>>2]:A=s[r+11|0]&127,(t|0)==(A+e|0)&&(s[r+11|0]>>>7|0?e=i[r+4>>2]:e=s[r+11|0]&127,s[r+11|0]>>>7|0?A=i[r+4>>2]:A=s[r+11|0]&127,h2(r,A<<1),h2(r,s[r+11|0]>>>7|0?(i[r+8>>2]&2147483647)-1|0:10),A=e,s[r+11|0]>>>7|0?e=i[r>>2]:e=r,i[f+180>>2]=A+e),u=f+252|0,A=i[u>>2],t=i[A+12>>2];r:{if((t|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=s[t|0]}if(Gi(A<<24>>24,16,e,f+180|0,f+8|0,0,o,f+16|0,f+12|0,f+208|0))break i;E1(u);continue}break}return h2(r,i[f+180>>2]-e|0),s[r+11|0]>>>7|0?e=i[r>>2]:e=r,A=M2(),i[f>>2]=n,(P9(e,A,f)|0)!=1&&(i[k>>2]=4),J2(f+252|0,f+248|0)&&(i[k>>2]=i[k>>2]|2),e=i[f+252>>2],z0(r),z0(o),B=f+256|0,e|0}function n_(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;h=B-16|0,B=h;i:{if((r|0)<0)break i;f=i[f>>2],n=i[f+48>>2],f=i[f+52>>2],f&&(i[f+4>>2]=i[f+4>>2]+1),o=i[n+76>>2],u=i[n+80>>2],u&&(i[u+4>>2]=i[u+4>>2]+1);r:{if(!f||(n=i[f+4>>2],i[f+4>>2]=n-1,n))break r;V[i[i[f>>2]+8>>2]](f),g(f)}r:{if(!o){n=0;break r}oe(h+4|0,o,e),f=i[h+8>>2],o=i[h+4>>2];e:{if(((f-o|0)/56|0)>(r|0)){r=o+m(r,56)|0,A&&(i[A>>2]=i[r+16>>2]);A:{if(!k){e=i[r+44>>2],n=i[r+48>>2];break A}if(e=i[r+48>>2]-i[r+44>>2]|0,w=U((e|0)<0?-1:e),i[k>>2]=w,e=i[r+44>>2],n=i[r+48>>2],(e|0)==(n|0)){e=n;break A}if(A=n-e>>2,t=A>>>0<=1?1:A,v=t&3,k=0,r=0,A>>>0>=4)for(Z=t&-4,A=0;t=r<<2,i[t+w>>2]=i[e+t>>2],_=t|4,i[_+w>>2]=i[e+_>>2],_=t|8,i[_+w>>2]=i[e+_>>2],t=t|12,i[t+w>>2]=i[e+t>>2],r=r+4|0,A=A+4|0,(Z|0)!=(A|0););if(!v)break A;for(;A=r<<2,i[A+w>>2]=i[e+A>>2],r=r+1|0,k=k+1|0,(v|0)!=(k|0););}n=n-e>>2;break e}if(n=0,!o)break r}if(r=o,(r|0)!=(f|0)){for(;e=i[f-12>>2],e&&(i[f-8>>2]=e,G(e)),e=f-56|0,i[e>>2]=68500,r=i[f-36>>2],r&&(i[f-32>>2]=r,G(r)),f=e,(o|0)!=(f|0););r=i[h+4>>2]}i[h+8>>2]=o,G(r)}if(!u||(f=i[u+4>>2],i[u+4>>2]=f-1,f))break i;V[i[i[u>>2]+8>>2]](u),g(u)}return B=h+16|0,n|0}function t_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;for(f=B-320|0,B=f,i[f+312>>2]=r,i[f+316>>2]=e,e=B-16|0,B=e,o=f+196|0,i[o>>2]=0,i[o+4>>2]=0,i[o+8>>2]=0,B=e+16|0,t=f+16|0,e=i[A+28>>2],i[t>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(t,100184),V[i[i[e>>2]+48>>2]](e,60064,60090,f+208|0)|0,O0(t),e=B-16|0,B=e,r=f+184|0,i[r>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,B=e+16|0,h2(r,s[r+11|0]>>>7|0?(i[r+8>>2]&2147483647)-1|0:10),s[r+11|0]>>>7|0?e=i[r>>2]:e=r,i[f+180>>2]=e,i[f+12>>2]=t,i[f+8>>2]=0;;){i:{if(g2(f+316|0,f+312|0))break i;t=i[f+180>>2],s[r+11|0]>>>7|0?A=i[r+4>>2]:A=s[r+11|0]&127,(t|0)==(A+e|0)&&(s[r+11|0]>>>7|0?e=i[r+4>>2]:e=s[r+11|0]&127,s[r+11|0]>>>7|0?A=i[r+4>>2]:A=s[r+11|0]&127,h2(r,A<<1),h2(r,s[r+11|0]>>>7|0?(i[r+8>>2]&2147483647)-1|0:10),A=e,s[r+11|0]>>>7|0?e=i[r>>2]:e=r,i[f+180>>2]=A+e),u=f+316|0,A=i[u>>2],t=i[A+12>>2];r:{if((t|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=i[t>>2]}if(Ci(A,16,e,f+180|0,f+8|0,0,o,f+16|0,f+12|0,f+208|0))break i;Y1(u);continue}break}return h2(r,i[f+180>>2]-e|0),s[r+11|0]>>>7|0?e=i[r>>2]:e=r,A=M2(),i[f>>2]=n,(P9(e,A,f)|0)!=1&&(i[k>>2]=4),g2(f+316|0,f+312|0)&&(i[k>>2]=i[k>>2]|2),e=i[f+316>>2],z0(r),z0(o),B=f+320|0,e|0}function o_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,k=i[13708],i[A+12>>2]=k,n=i[k-12>>2],k=A+12|0,i[n+k>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),u=k,o=n,k=l[A+159|0],n=(k|0)<0,x(u,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],n=(k|0)<0,x(A+12|0,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=x(L0(x(A+12|0,21348,13),i[e+56>>2]),31338,1),n=A+148|0,W0(n,r),o=n,n=l[A+159|0],u=(n|0)<0,x(k,u?i[A+148>>2]:o,u?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=x(k,20963,14),k=i[e+60>>2],l[A+11|0]=4,l[A+3|0]=k,l[A+2|0]=k>>>8,l[A+1|0]=k>>>16,l[A|0]=k>>>24,l[A+4|0]=0,k=x(x(n,A,4),31338,1),n=A+148|0,W0(n,r),o=n,r=l[A+159|0],n=(r|0)<0,x(k,n?i[A+148>>2]:o,n?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),n=x(k,21086,6),r=l[e+87|0],k=(r|0)<0,x(x(n,k?i[e+76>>2]:e+76|0,k?i[e+80>>2]:r),31338,1),l[A+11|0]<0&&G(i[A>>2]),i2(f,t),f=i[13707],i[A+12>>2]=f,i[i[f-12>>2]+(A+12|0)>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function l_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0;for(f=B-336|0,B=f,i[f+328>>2]=r,i[f+332>>2]=e,o=A8(A),h=x6(A,f+208|0),U6(f+196|0,A,f+324|0),r=B-16|0,B=r,e=f+184|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0;;){i:{if(g2(f+332|0,f+328|0))break i;t=i[f+180>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=A+r),t=f+332|0,A=i[t>>2],u=i[A+12>>2];r:{if((u|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=i[u>>2]}if(Ci(A,o,r,f+180|0,f+8|0,i[f+324>>2],f+196|0,f+16|0,f+12|0,h))break i;Y1(t);continue}break}s[f+207|0]>>>7|0?A=i[f+200>>2]:A=s[f+207|0]&127;i:{if(!A||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return w=n,_=d7(r,i[f+180>>2],k,o),i[w>>2]=_,i[n+4>>2]=w0,K1(f+196|0,f+16|0,i[f+12>>2],k),g2(f+332|0,f+328|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+332>>2],z0(e),z0(f+196|0),B=f+336|0,r|0}function u_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0;for(f=B-336|0,B=f,i[f+328>>2]=r,i[f+332>>2]=e,o=A8(A),h=x6(A,f+208|0),U6(f+196|0,A,f+324|0),r=B-16|0,B=r,e=f+184|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0;;){i:{if(g2(f+332|0,f+328|0))break i;t=i[f+180>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=A+r),t=f+332|0,A=i[t>>2],u=i[A+12>>2];r:{if((u|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=i[u>>2]}if(Ci(A,o,r,f+180|0,f+8|0,i[f+324>>2],f+196|0,f+16|0,f+12|0,h))break i;Y1(t);continue}break}s[f+207|0]>>>7|0?A=i[f+200>>2]:A=s[f+207|0]&127;i:{if(!A||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return w=n,_=D7(r,i[f+180>>2],k,o),i[w>>2]=_,i[n+4>>2]=w0,K1(f+196|0,f+16|0,i[f+12>>2],k),g2(f+332|0,f+328|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+332>>2],z0(e),z0(f+196|0),B=f+336|0,r|0}function s_(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0,Z=0;u=B-256|0,B=u,i[u+248>>2]=37,i[u+252>>2]=0,w=u+248|0,_=Ae(w|1,15076,i[r+4>>2]),h=u+208|0,i[u+204>>2]=h,f=M2();i:{if(_){Z=i[r+8>>2],v=u- -64|0,i[v>>2]=t,i[v+4>>2]=o,i[u+56>>2]=k,i[u+60>>2]=n,i[u+48>>2]=Z,f=b1(h,30,f,w,u+48|0);break i}i[u+80>>2]=k,i[u+84>>2]=n,i[u+88>>2]=t,i[u+92>>2]=o,f=b1(u+208|0,30,f,u+248|0,u+80|0)}i[u+128>>2]=1094,w=o1(u+196|0,0,u+128|0),h=u+208|0;i:{r:{if((f|0)>=30){f=M2();e:{if(_){h=i[r+8>>2],i[u+16>>2]=t,i[u+20>>2]=o,i[u+8>>2]=k,i[u+12>>2]=n,i[u>>2]=h,f=c4(u+204|0,f,u+248|0,u);break e}i[u+32>>2]=k,i[u+36>>2]=n,i[u+40>>2]=t,i[u+44>>2]=o,f=c4(u+204|0,f,u+248|0,u+32|0)}if((f|0)==-1)break r;k=i[w>>2],i[w>>2]=i[u+204>>2],k&&V[i[w+4>>2]](k),h=i[u+204>>2]}k=h,h=f+h|0,_=X4(k,h,r),i[u+128>>2]=1094,k=u+128|0,n=o1(u+120|0,0,k),t=i[u+204>>2];e:{if((t|0)==(u+208|0)){f=k;break e}if(f=Z2(f<<1),!f)break r;k=i[n>>2],i[n>>2]=f,k&&V[i[n+4>>2]](k),t=i[u+204>>2]}o=u+108|0,k=i[r+28>>2],i[o>>2]=k,(k|0)!=100008&&(i[k+4>>2]=i[k+4>>2]+1),dk(t,_,h,f,u+116|0,u+112|0,o),O0(o),f=G8(e,f,i[u+116>>2],i[u+112>>2],r,A),e=i[n>>2],i[n>>2]=0,e&&V[i[n+4>>2]](e),e=i[w>>2],i[w>>2]=0,e&&V[i[w+4>>2]](e),B=u+256|0;break i}u1(),P()}return f|0}function h_(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0,Z=0;u=B-416|0,B=u,i[u+408>>2]=37,i[u+412>>2]=0,w=u+408|0,_=Ae(w|1,15076,i[r+4>>2]),h=u+368|0,i[u+364>>2]=h,f=M2();i:{if(_){Z=i[r+8>>2],v=u- -64|0,i[v>>2]=t,i[v+4>>2]=o,i[u+56>>2]=k,i[u+60>>2]=n,i[u+48>>2]=Z,f=b1(h,30,f,w,u+48|0);break i}i[u+80>>2]=k,i[u+84>>2]=n,i[u+88>>2]=t,i[u+92>>2]=o,f=b1(u+368|0,30,f,u+408|0,u+80|0)}i[u+128>>2]=1094,w=o1(u+356|0,0,u+128|0),h=u+368|0;i:{r:{if((f|0)>=30){f=M2();e:{if(_){h=i[r+8>>2],i[u+16>>2]=t,i[u+20>>2]=o,i[u+8>>2]=k,i[u+12>>2]=n,i[u>>2]=h,f=c4(u+364|0,f,u+408|0,u);break e}i[u+32>>2]=k,i[u+36>>2]=n,i[u+40>>2]=t,i[u+44>>2]=o,f=c4(u+364|0,f,u+408|0,u+32|0)}if((f|0)==-1)break r;k=i[w>>2],i[w>>2]=i[u+364>>2],k&&V[i[w+4>>2]](k),h=i[u+364>>2]}k=h,h=f+h|0,_=X4(k,h,r),i[u+128>>2]=1094,k=u+128|0,n=o1(u+120|0,0,k),t=i[u+364>>2];e:{if((t|0)==(u+368|0)){f=k;break e}if(f=Z2(f<<3),!f)break r;k=i[n>>2],i[n>>2]=f,k&&V[i[n+4>>2]](k),t=i[u+364>>2]}o=u+108|0,k=i[r+28>>2],i[o>>2]=k,(k|0)!=100008&&(i[k+4>>2]=i[k+4>>2]+1),bk(t,_,h,f,u+116|0,u+112|0,o),O0(o),f=X8(e,f,i[u+116>>2],i[u+112>>2],r,A),e=i[n>>2],i[n>>2]=0,e&&V[i[n+4>>2]](e),e=i[w>>2],i[w>>2]=0,e&&V[i[w+4>>2]](e),B=u+416|0;break i}u1(),P()}return f|0}function Z8(f,e,r,A,k,n,t,o){var u=0,h=0,w=0,_=0,v=0;u=B-16|0,B=u,i[u+8>>2]=r,i[u+12>>2]=e,r=u+4|0,e=i[A+28>>2],i[r>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),h=x0(r,100184),O0(r),i[k>>2]=0,e=0;i:{for(;;){if(e|(t|0)==(o|0))break i;r:{if(g2(u+12|0,u+8|0))break r;e:{if((V[i[i[h>>2]+52>>2]](h,i[t>>2],0)|0)==37){if((t+4|0)==(o|0))break r;r=0;A:{f:{if(e=V[i[i[h>>2]+52>>2]](h,i[t+4>>2],0)|0,(e|0)==69||(w=4,(e&255)==48))break f;break A}if((t+8|0)==(o|0))break r;w=8,r=e,e=V[i[i[h>>2]+52>>2]](h,i[t+8>>2],0)|0}_=u,v=V[i[i[f>>2]+36>>2]](f,i[u+12>>2],i[u+8>>2],A,k,n,e,r)|0,i[_+12>>2]=v,t=(t+w|0)+4|0;break e}if(V[i[i[h>>2]+12>>2]](h,1,i[t>>2])|0){for(;t=t+4|0,!!((o|0)!=(t|0)&&V[i[i[h>>2]+12>>2]](h,1,i[t>>2])|0););for(;;){if(r=u+12|0,g2(r,u+8|0))break e;e=i[r>>2],w=i[e+12>>2];A:{if((w|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break A}e=i[w>>2]}if(!(V[i[i[h>>2]+12>>2]](h,1,e)|0))break e;Y1(r)}}w=u+12|0,e=i[w>>2],r=i[e+12>>2];A:{if((r|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break A}e=i[r>>2]}if((V[i[i[h>>2]+28>>2]](h,e)|0)==(V[i[i[h>>2]+28>>2]](h,i[t>>2])|0)){t=t+4|0,Y1(w);break e}i[k>>2]=4}e=i[k>>2];continue}break}i[k>>2]=4}return g2(u+12|0,u+8|0)&&(i[k>>2]=i[k>>2]|2),B=u+16|0,i[u+12>>2]}function ln(f,e){var r=0,A=0,k=0,n=0,t=0;i:{r:{e:{A:{f:{r=i[f+4>>2];k:{if((r|0)!=i[f+104>>2]){i[f+4>>2]=r+1,r=s[r|0];break k}r=I2(f)}switch(r-43|0){case 0:case 2:break f;default:break A}}t=(r|0)==45,e=!e,r=i[f+4>>2];f:{if((r|0)!=i[f+104>>2]){i[f+4>>2]=r+1,r=s[r|0];break f}r=I2(f)}if(A=r-58|0,e|A>>>0>4294967285)break e;if(i[f+116>>2]<0)break r;i[f+4>>2]=i[f+4>>2]-1;break r}A=r-58|0}if(A>>>0<4294967286)break r;e:{if(r-48>>>0>=10)break e;for(;;){k=(m(k,10)+r|0)-48|0,n=(k|0)<214748364,r=i[f+4>>2];A:{if((r|0)!=i[f+104>>2]){i[f+4>>2]=r+1,r=s[r|0];break A}r=I2(f)}if(e=r-48|0,!(n&e>>>0<=9))break}if(n=k>>31,e>>>0>=10)break e;for(;;){e=r,r=q0(k,n,10,0),A=e+r|0,e=w0,k=A-48|0,A=(r>>>0>A>>>0?e+1|0:e)-(A>>>0<48)|0,n=A,A=k>>>0<2061584302&(A|0)<=21474836|(A|0)<21474836,r=i[f+4>>2];A:{if((r|0)!=i[f+104>>2]){i[f+4>>2]=r+1,r=s[r|0];break A}r=I2(f)}if(e=r-48|0,!(A&e>>>0<=9))break}if(e>>>0>=10)break e;for(;;){e=i[f+4>>2];A:{if((e|0)!=i[f+104>>2]){i[f+4>>2]=e+1,e=s[e|0];break A}e=I2(f)}if(!(e-48>>>0<10))break}}e=i[f+116>>2],(e|0)>0?e=1:e=(e|0)>=0,e&&(i[f+4>>2]=i[f+4>>2]-1),f=k,k=t?0-f|0:f,n=t?0-(((f|0)!=0)+n|0)|0:n;break i}if(n=-2147483648,i[f+116>>2]<0)break i;return i[f+4>>2]=i[f+4>>2]-1,w0=-2147483648,0}return w0=n,k}function w_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0;for(f=B-256|0,B=f,i[f+248>>2]=r,i[f+252>>2]=e,o=A8(A),M6(f+196|0,A,f+247|0),r=B-16|0,B=r,e=f+184|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0;;){i:{if(J2(f+252|0,f+248|0))break i;t=i[f+180>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=A+r),t=f+252|0,A=i[t>>2],u=i[A+12>>2];r:{if((u|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=s[u|0]}if(Gi(A<<24>>24,o,r,f+180|0,f+8|0,l[f+247|0],f+196|0,f+16|0,f+12|0,60064))break i;E1(t);continue}break}s[f+207|0]>>>7|0?A=i[f+200>>2]:A=s[f+207|0]&127;i:{if(!A||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return h=n,w=d7(r,i[f+180>>2],k,o),i[h>>2]=w,i[n+4>>2]=w0,K1(f+196|0,f+16|0,i[f+12>>2],k),J2(f+252|0,f+248|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+252>>2],z0(e),z0(f+196|0),B=f+256|0,r|0}function __(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0;for(f=B-256|0,B=f,i[f+248>>2]=r,i[f+252>>2]=e,o=A8(A),M6(f+196|0,A,f+247|0),r=B-16|0,B=r,e=f+184|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0;;){i:{if(J2(f+252|0,f+248|0))break i;t=i[f+180>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=A+r),t=f+252|0,A=i[t>>2],u=i[A+12>>2];r:{if((u|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=s[u|0]}if(Gi(A<<24>>24,o,r,f+180|0,f+8|0,l[f+247|0],f+196|0,f+16|0,f+12|0,60064))break i;E1(t);continue}break}s[f+207|0]>>>7|0?A=i[f+200>>2]:A=s[f+207|0]&127;i:{if(!A||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return h=n,w=D7(r,i[f+180>>2],k,o),i[h>>2]=w,i[n+4>>2]=w0,K1(f+196|0,f+16|0,i[f+12>>2],k),J2(f+252|0,f+248|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+252>>2],z0(e),z0(f+196|0),B=f+256|0,r|0}function v_(f){f=f|0;var e=0,r=0,A=0,k=0;e=i[f+212>>2],e&&(i[f+216>>2]=e,G(e)),e=i[f+204>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+196>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(r=i[f+180>>2],r){if(e=r,A=i[f+184>>2],(e|0)!=(A|0)){for(;;){e=i[A-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(A=A-8|0,(r|0)==(A|0))break}e=i[f+180>>2]}i[f+184>>2]=r,G(e)}if(r=i[f+168>>2],r){if(e=r,A=i[f+172>>2],(e|0)!=(A|0)){for(;;){e=i[A-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(A=A-8|0,(r|0)==(A|0))break}e=i[f+168>>2]}i[f+172>>2]=r,G(e)}l[f+167|0]<0&&G(i[f+156>>2]),e=i[f+84>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+72>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(r=i[f+52>>2],r){if(e=r,A=i[f+56>>2],(e|0)!=(A|0)){for(;;){e=i[A-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(A=A-8|0,(r|0)==(A|0))break}e=i[f+52>>2]}i[f+56>>2]=r,G(e)}l[f+27|0]<0&&G(i[f+16>>2])}function un(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0;for(f=B-336|0,B=f,i[f+328>>2]=r,i[f+332>>2]=e,o=A8(A),h=x6(A,f+208|0),U6(f+196|0,A,f+324|0),r=B-16|0,B=r,e=f+184|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0;;){i:{if(g2(f+332|0,f+328|0))break i;t=i[f+180>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=A+r),t=f+332|0,A=i[t>>2],u=i[A+12>>2];r:{if((u|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=i[u>>2]}if(Ci(A,o,r,f+180|0,f+8|0,i[f+324>>2],f+196|0,f+16|0,f+12|0,h))break i;Y1(t);continue}break}s[f+207|0]>>>7|0?A=i[f+200>>2]:A=s[f+207|0]&127;i:{if(!A||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return w=n,_=T7(r,i[f+180>>2],k,o),i[w>>2]=_,K1(f+196|0,f+16|0,i[f+12>>2],k),g2(f+332|0,f+328|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+332>>2],z0(e),z0(f+196|0),B=f+336|0,r|0}function m_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0;for(f=B-336|0,B=f,i[f+328>>2]=r,i[f+332>>2]=e,o=A8(A),h=x6(A,f+208|0),U6(f+196|0,A,f+324|0),r=B-16|0,B=r,e=f+184|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0;;){i:{if(g2(f+332|0,f+328|0))break i;t=i[f+180>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=A+r),t=f+332|0,A=i[t>>2],u=i[A+12>>2];r:{if((u|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=i[u>>2]}if(Ci(A,o,r,f+180|0,f+8|0,i[f+324>>2],f+196|0,f+16|0,f+12|0,h))break i;Y1(t);continue}break}s[f+207|0]>>>7|0?A=i[f+200>>2]:A=s[f+207|0]&127;i:{if(!A||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return w=n,_=U7(r,i[f+180>>2],k,o),i[w>>2]=_,K1(f+196|0,f+16|0,i[f+12>>2],k),g2(f+332|0,f+328|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+332>>2],z0(e),z0(f+196|0),B=f+336|0,r|0}function B_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0;for(f=B-336|0,B=f,i[f+328>>2]=r,i[f+332>>2]=e,o=A8(A),h=x6(A,f+208|0),U6(f+196|0,A,f+324|0),r=B-16|0,B=r,e=f+184|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0;;){i:{if(g2(f+332|0,f+328|0))break i;t=i[f+180>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=A+r),t=f+332|0,A=i[t>>2],u=i[A+12>>2];r:{if((u|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=i[u>>2]}if(Ci(A,o,r,f+180|0,f+8|0,i[f+324>>2],f+196|0,f+16|0,f+12|0,h))break i;Y1(t);continue}break}s[f+207|0]>>>7|0?A=i[f+200>>2]:A=s[f+207|0]&127;i:{if(!A||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return w=n,_=M7(r,i[f+180>>2],k,o),X[w>>1]=_,K1(f+196|0,f+16|0,i[f+12>>2],k),g2(f+332|0,f+328|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+332>>2],z0(e),z0(f+196|0),B=f+336|0,r|0}function Z_(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0;f=B-624|0,B=f,i[f+616>>2]=r,i[f+620>>2]=e,i[f+16>>2]=1095,e=f+16|0,u=o1(f+200|0,f+208|0,e),h=f+192|0,o=i[k+28>>2],i[h>>2]=o,(o|0)!=100008&&(i[o+4>>2]=i[o+4>>2]+1),o=x0(h,100184),l[f+191|0]=0;i:{if(!Xk(f+620|0,r,A,h,i[k+4>>2],n,f+191|0,o,u,f+196|0,f+608|0))break i;r=s[16413]|s[16414]<<8|(s[16415]<<16|s[16416]<<24),l[f+183|0]=r,l[f+184|0]=r>>>8,l[f+185|0]=r>>>16,l[f+186|0]=r>>>24,r=s[16410]|s[16411]<<8|(s[16412]<<16|s[16413]<<24),i[f+176>>2]=s[16406]|s[16407]<<8|(s[16408]<<16|s[16409]<<24),i[f+180>>2]=r,V[i[i[o>>2]+48>>2]](o,f+176|0,f+186|0,f+128|0)|0,i[f+16>>2]=1094,A=o1(f+8|0,0,e),k=e;r:{if(e=i[f+196>>2]-i[u>>2]|0,(e|0)>=393&&(r=Z2((e>>2)+2|0),e=i[A>>2],i[A>>2]=r,e&&V[i[A+4>>2]](e),k=i[A>>2],!k))break r;for(s[f+191|0]==1&&(l[k|0]=45,k=k+1|0),r=i[u>>2];;){if(k0[f+196>>2]<=r>>>0)e:{if(l[k|0]=0,i[f>>2]=t,(Lt(f+16|0,f)|0)!=1)break e;e=i[A>>2],i[A>>2]=0,e&&V[i[A+4>>2]](e);break i}else{e=f+128|0,w=k,_=s[(f+176|0)+(H3(e,e+40|0,r)-e>>2)|0],l[w|0]=_,k=k+1|0,r=r+4|0;continue}break}u1(),P()}u1(),P()}return g2(f+620|0,f+616|0)&&(i[n>>2]=i[n>>2]|2),r=i[f+620>>2],O0(f+192|0),e=i[u>>2],i[u>>2]=0,e&&V[i[u+4>>2]](e),B=f+624|0,r|0}function p_(f){f=f|0;var e=0,r=0,A=0,k=0,n=0;k=B-16|0,B=k;i:{if(!i[f+64>>2])break i;r:{if(A=i[f+68>>2],A){if(r=i[f+92>>2],r&16){if(i[f+24>>2]!=i[f+20>>2]&&(e=-1,(V[i[i[f>>2]+52>>2]](f,-1)|0)==-1))break i;for(A=f+72|0;;){if(e=i[f+68>>2],r=i[f+32>>2],r=V[i[i[e>>2]+20>>2]](e,A,r,r+i[f+52>>2]|0,k+12|0)|0,n=i[f+32>>2],e=i[k+12>>2]-n|0,(F1(n,1,e,i[f+64>>2])|0)!=(e|0))break r;e:switch(r-1|0){case 1:break r;case 0:continue;default:break e}break}if(e=0,!x8(i[f+64>>2]))break i;break r}if(!(r&8))break i;e=i[f+84>>2],i[k>>2]=i[f+80>>2],i[k+4>>2]=e;e:{A:{f:{if(s[f+98|0]==1){e=i[f+16>>2]-i[f+12>>2]|0,A=e>>31;break f}if(r=V[i[i[A>>2]+24>>2]](A)|0,e=i[f+40>>2]-i[f+36>>2]|0,A=e>>31,(r|0)>0){r=m(r,i[f+16>>2]-i[f+12>>2]|0),A=A+(r>>31)|0,n=e,e=e+r|0,A=n>>>0>e>>>0?A+1|0:A;break f}if(i[f+12>>2]!=i[f+16>>2])break A}r=0;break e}r=i[f+68>>2],r=V[i[i[r>>2]+32>>2]](r,k,i[f+32>>2],i[f+36>>2],i[f+12>>2]-i[f+8>>2]|0)|0,r=i[f+36>>2]-(r+i[f+32>>2]|0)|0,A=A+(r>>31)|0,n=e,e=e+r|0,A=n>>>0>e>>>0?A+1|0:A,r=1}if(Ce(i[f+64>>2],0-e|0,0-(A+((e|0)!=0)|0)|0,1))break r;r&&(e=i[k+4>>2],i[f+72>>2]=i[k>>2],i[f+76>>2]=e),e=i[f+32>>2],i[f+40>>2]=e,i[f+36>>2]=e,e=0,i[f+16>>2]=0,i[f+12>>2]=0,i[f+8>>2]=0,i[f+92>>2]=0;break i}u1(),P()}e=-1}return B=k+16|0,e|0}function sn(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0;for(f=B-256|0,B=f,i[f+248>>2]=r,i[f+252>>2]=e,o=A8(A),M6(f+196|0,A,f+247|0),r=B-16|0,B=r,e=f+184|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0;;){i:{if(J2(f+252|0,f+248|0))break i;t=i[f+180>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=A+r),t=f+252|0,A=i[t>>2],u=i[A+12>>2];r:{if((u|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=s[u|0]}if(Gi(A<<24>>24,o,r,f+180|0,f+8|0,l[f+247|0],f+196|0,f+16|0,f+12|0,60064))break i;E1(t);continue}break}s[f+207|0]>>>7|0?A=i[f+200>>2]:A=s[f+207|0]&127;i:{if(!A||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return h=n,w=T7(r,i[f+180>>2],k,o),i[h>>2]=w,K1(f+196|0,f+16|0,i[f+12>>2],k),J2(f+252|0,f+248|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+252>>2],z0(e),z0(f+196|0),B=f+256|0,r|0}function W_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0;for(f=B-256|0,B=f,i[f+248>>2]=r,i[f+252>>2]=e,o=A8(A),M6(f+196|0,A,f+247|0),r=B-16|0,B=r,e=f+184|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0;;){i:{if(J2(f+252|0,f+248|0))break i;t=i[f+180>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=A+r),t=f+252|0,A=i[t>>2],u=i[A+12>>2];r:{if((u|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=s[u|0]}if(Gi(A<<24>>24,o,r,f+180|0,f+8|0,l[f+247|0],f+196|0,f+16|0,f+12|0,60064))break i;E1(t);continue}break}s[f+207|0]>>>7|0?A=i[f+200>>2]:A=s[f+207|0]&127;i:{if(!A||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return h=n,w=U7(r,i[f+180>>2],k,o),i[h>>2]=w,K1(f+196|0,f+16|0,i[f+12>>2],k),J2(f+252|0,f+248|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+252>>2],z0(e),z0(f+196|0),B=f+256|0,r|0}function X_(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0;for(f=B-256|0,B=f,i[f+248>>2]=r,i[f+252>>2]=e,o=A8(A),M6(f+196|0,A,f+247|0),r=B-16|0,B=r,e=f+184|0,i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,B=r+16|0,h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=r,i[f+12>>2]=f+16,i[f+8>>2]=0;;){i:{if(J2(f+252|0,f+248|0))break i;t=i[f+180>>2],s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,(t|0)==(A+r|0)&&(s[e+11|0]>>>7|0?r=i[e+4>>2]:r=s[e+11|0]&127,s[e+11|0]>>>7|0?A=i[e+4>>2]:A=s[e+11|0]&127,h2(e,A<<1),h2(e,s[e+11|0]>>>7|0?(i[e+8>>2]&2147483647)-1|0:10),A=r,s[e+11|0]>>>7|0?r=i[e>>2]:r=e,i[f+180>>2]=A+r),t=f+252|0,A=i[t>>2],u=i[A+12>>2];r:{if((u|0)==i[A+16>>2]){A=V[i[i[A>>2]+36>>2]](A)|0;break r}A=s[u|0]}if(Gi(A<<24>>24,o,r,f+180|0,f+8|0,l[f+247|0],f+196|0,f+16|0,f+12|0,60064))break i;E1(t);continue}break}s[f+207|0]>>>7|0?A=i[f+200>>2]:A=s[f+207|0]&127;i:{if(!A||(A=i[f+12>>2],(A-(f+16|0)|0)>159))break i;i[f+12>>2]=A+4,i[A>>2]=i[f+8>>2]}return h=n,w=M7(r,i[f+180>>2],k,o),X[h>>1]=w,K1(f+196|0,f+16|0,i[f+12>>2],k),J2(f+252|0,f+248|0)&&(i[k>>2]=i[k>>2]|2),r=i[f+252>>2],z0(e),z0(f+196|0),B=f+256|0,r|0}function G_(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0;f=B-272|0,B=f,i[f+264>>2]=r,i[f+268>>2]=e,i[f+16>>2]=1095,e=f+16|0,u=o1(f+152|0,f+160|0,e),h=f+144|0,o=i[k+28>>2],i[h>>2]=o,(o|0)!=100008&&(i[o+4>>2]=i[o+4>>2]+1),o=x0(h,100192),l[f+143|0]=0;i:{if(!pk(f+268|0,r,A,h,i[k+4>>2],n,f+143|0,o,u,f+148|0,f+260|0))break i;r=s[16413]|s[16414]<<8|(s[16415]<<16|s[16416]<<24),l[f+135|0]=r,l[f+136|0]=r>>>8,l[f+137|0]=r>>>16,l[f+138|0]=r>>>24,r=s[16410]|s[16411]<<8|(s[16412]<<16|s[16413]<<24),i[f+128>>2]=s[16406]|s[16407]<<8|(s[16408]<<16|s[16409]<<24),i[f+132>>2]=r,V[i[i[o>>2]+32>>2]](o,f+128|0,f+138|0,f+118|0)|0,i[f+16>>2]=1094,A=o1(f+8|0,0,e),k=e;r:{if(e=i[f+148>>2]-i[u>>2]|0,(e|0)>=99&&(r=Z2(e+2|0),e=i[A>>2],i[A>>2]=r,e&&V[i[A+4>>2]](e),k=i[A>>2],!k))break r;for(s[f+143|0]==1&&(l[k|0]=45,k=k+1|0),r=i[u>>2];;){if(k0[f+148>>2]<=r>>>0)e:{if(l[k|0]=0,i[f>>2]=t,(Lt(f+16|0,f)|0)!=1)break e;e=i[A>>2],i[A>>2]=0,e&&V[i[A+4>>2]](e);break i}else{e=f+118|0,w=k,_=s[((T3(e,e+10|0,r)-f|0)+f|0)+10|0],l[w|0]=_,k=k+1|0,r=r+1|0;continue}break}u1(),P()}u1(),P()}return J2(f+268|0,f+264|0)&&(i[n>>2]=i[n>>2]|2),r=i[f+268>>2],O0(f+144|0),e=i[u>>2],i[u>>2]=0,e&&V[i[u+4>>2]](e),B=f+272|0,r|0}function C_(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0;h=B-16|0,B=h,u=U(36),i[u+32>>2]=t,i[u+28>>2]=n,i[u+24>>2]=k,i[u+20>>2]=A,i[u+16>>2]=r,i[u+12>>2]=73320,i[u+4>>2]=0,i[u+8>>2]=0,i[u>>2]=73568,r=i[e+8>>2],i[h+12>>2]=u,n=u+12|0,i[h+8>>2]=n,i[u+4>>2]=i[u+4>>2]+1,A=i[r+16>>2];i:{r:{if(A>>>0>2]){i[A+4>>2]=u,i[A>>2]=n,i[u+4>>2]=i[u+4>>2]+1,i[r+16>>2]=A+8,k=u;break r}if(A=Q2(r+12|0,h+8|0),k=i[h+12>>2],i[r+16>>2]=A,!k)break i}if(r=i[k+4>>2],i[k+4>>2]=r-1,r)break i;V[i[i[k>>2]+8>>2]](k),g(k)}i:{if(!o||(i[u+4>>2]=i[u+4>>2]+1,r=U(24),i[u+4>>2]=i[u+4>>2]+1,i[r+20>>2]=u,i[r+16>>2]=n,k=i[e+8>>2],A=i[e+12>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+12>>2]=A,i[r+8>>2]=k,k=i[e>>2],A=i[e+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+4>>2]=A,i[r>>2]=k,i[o>>2]=r,r=i[u+4>>2],i[u+4>>2]=r-1,r))break i;V[i[i[u>>2]+8>>2]](u),g(u)}A=i[e>>2],r=i[e+4>>2];i:{if(r){if(i[r+4>>2]=i[r+4>>2]+1,z9(A,i[i[e+8>>2]>>2],t),i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,f=i[r+4>>2],i[r+4>>2]=f-1,f)break i;V[i[i[r>>2]+8>>2]](r),g(r);break i}z9(A,i[i[e+8>>2]>>2],t),i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}f=i[u+4>>2],i[u+4>>2]=f-1,f||(V[i[i[u>>2]+8>>2]](u),g(u)),B=h+16|0}function V_(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e,A=i[r+4>>2];i:{if(!(!s[k+12|0]|((A|0)==3|i[k+8>>2]==1))){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!(!(i[r>>2]|(A|0)!=1)&i[r+12>>2]>8)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(A=Q[r+24>>1],!(A>>>0>14|!(1<>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,i[e+48>>2]=8,l[e+44|0]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,i[e+36>>2]=99,i[e+40>>2]=99,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,i[e+36>>2]=1,A=s[r+8|0],l[e+44|0]=A,i[e+40>>2]=A?15:14,i[e+48>>2]=i[r+12>>2],A=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=A,A=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,A=i[e+40>>2],i[e>>2]=i[e+36>>2],i[e+4>>2]=A,i[e+16>>2]=72992,i[e+20>>2]=i[e+56>>2],i[e+28>>2]=11,P2(f,e),i[e+36>>2]=1,A=s[r+8|0],l[e+44|0]=A,i[e+40>>2]=A?13:12,i[e+48>>2]=i[r+12>>2],r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,r=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,r=i[e+40>>2],i[e>>2]=i[e+36>>2],i[e+4>>2]=r,i[e+16>>2]=72992,i[e+20>>2]=i[e+56>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function I_(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;i[f+4>>2]=1,A=i[f+8>>2],i[A+324>>2]=i[A+324>>2]-1,i[A+328>>2]=i[A+328>>2]+1,A=i[f+12>>2],n=A+1|0,r=i[f+8>>2],e=i[r+124>>2],u=i[e+16884>>2]/4|0,h=i[r+276>>2],o=i[e+16892>>2],k=o-1|0,t=i[r+272>>2],w=s[f+16|0];i:{if(w){e=i[e+16900>>2]-1|0,i8(r,f,k,(e|0)<(n|0)?e:n,1);break i}if((A|0)<=0?e=A:(i8(r,f,k,A-1|0,2),r=i[f+8>>2],e=i[f+12>>2]),i8(r,f,k,e,2),r=i[f+12>>2]+1|0,e=i[f+8>>2],(r|0)>=i[i[e+124>>2]+16900>>2])break i;i8(e,f,k,r,2)}e=i[f+12>>2],r=i[f+8>>2];i:{r:{if(s[f+16|0]==1){if(e=Jk(r,e),r=i[f+8>>2],l[(i[r+140>>2]+m(m(i[r+152>>2],i[f+12>>2]),24)|0)+21|0]=e,!e)break i;k=s[f+16|0];break r}if(k=0,s[(i[r+140>>2]+m(m(e,i[r+152>>2]),24)|0)+21|0]!=1)break i}A=m(A,u),e=m(n,u),e=(e|0)<(h|0)?e:h,GA(r,k&1,A,e,t),r=s[f+16|0],k=i[f+8>>2];r:{if(i[i[k+124>>2]+16832>>2]>=9){ZA(k,r&1,A,e,t);break r}pA(k,r&1,A,e,t)}if(r=i[f+8>>2],n=i[r+124>>2],!i[n+16848>>2])break i;if(k=s[f+16|0],i[n+16840>>2]>=9){WA(r,k&1,A,e,t);break i}XA(r,k&1,A,e,t)}if(r=0,(o|0)>0)for(A=w?2:3;e=i[f+8>>2],e=(i[e+320>>2]+m(r,76)|0)+m(m(i[f+12>>2],i[i[e+124>>2]+16892>>2]),76)|0,(A|0)>i[e>>2]&&(i[e>>2]=A),r=r+1|0,(o|0)!=(r|0););i[f+4>>2]=3,Ze(i[f+8>>2])}function g1(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;n=i[f+16>>2],o=i[f+20>>2],A=i[f>>2],r=i[f+24>>2],h=i[f+8>>2],t=h;i:{for(;;){if(!((r|0)>0)){r=64-r|0;r:{if(!t){t=0,k=r;break r}Z=0;e:{for(;;){if(_=A+1|0,i[f>>2]=_,A=s[A|0],t=t-1|0,i[f+8>>2]=t,k=r-8|0,v=k&31,h=f,(k&63)>>>0>=32?(u=A<>>32-v,A=A<>2]=n,o=o|u,i[h+20>>2]=o,(r|0)<=15)break e;if(Z=Z-(r>>>0<8)|0,r=r-8|0,A=_,!t)break}h=t,t=0,k=r;break r}h=t,A=_}r=64-k|0}if(_=o,k=r,r=r-1|0,i[f+24>>2]=r,u=_<<1|n>>>31,n=n<<1,i[f+16>>2]=n,o=u,i[f+20>>2]=o,(_|0)>0|(_|0)>=0){if(w=w+1|0,(w|0)!=21)continue;break i}break}if(p=e,w){if(!((k|0)>(w|0)|(k|0)>57)){for(r=65-k|0,Z=0;;){r:{if(v=r,!h){k=r;break r}if(t=A+1|0,i[f>>2]=t,e=s[A|0],h=h-1|0,i[f+8>>2]=h,k=v-8|0,A=k&31,(k&63)>>>0>=32?(u=e<>>32-A,e=e<>2]=n,i[f+20>>2]=e,e=r,r=r-8|0,Z=Z-(e>>>0<8)|0,A=t,(v|0)>15)continue}break}r=64-k|0}i[f+24>>2]=r-w,e=n,r=w&31,(w&63)>>>0>=32?(u=e<>>32-r|o<>2]=e,i[f+20>>2]=u,f=n,e=64-w|0,r=e&31,(e&63)>>>0>=32?f=o>>>r|0:f=((1<>>r,f=f+(-1<>2]=f}return _>>>31|0}function M0(f){var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;k=i[f+8>>2],r=i[f+12>>2],n=i[f+16>>2];i:{for(;;){r:{if((n|0)>0){e=r,A=n;break r}for(A=64-n|0,w=0,n=i[f+4>>2],e=r;;){e:{if(u=A,!n){t=A;break e}if(r=i[f>>2],i[f>>2]=r+1,r=s[r|0],n=n-1|0,i[f+4>>2]=n,_=f,v=k,t=u-8|0,k=t&31,(t&63)>>>0>=32?(h=r<>>32-k,r=r<>2]=k,i[_+12>>2]=e,r=A,A=r-8|0,w=w-(r>>>0<8)|0,(u|0)>15)continue}break}A=64-t|0}if(n=A-1|0,i[f+16>>2]=n,h=e<<1|k>>>31,k=k<<1,i[f+8>>2]=k,r=h,i[f+12>>2]=r,(e|0)<0)break i;if(o=o+1|0,(o|0)==21)break}return-99999}if(!o)return 0;if(!((A|0)>(o|0)|(A|0)>57)){for(A=65-A|0,w=0,n=i[f+4>>2];;){i:{if(_=A,!n){t=A;break i}if(e=i[f>>2],i[f>>2]=e+1,e=s[e|0],n=n-1|0,i[f+4>>2]=n,h=f,v=k,t=_-8|0,k=t&31,(t&63)>>>0>=32?(u=e<>>32-k,e=e<>2]=k,r=r|u,i[f+12>>2]=r,e=A,A=e-8|0,w=w-(e>>>0<8)|0,(_|0)>15)continue}break}n=64-t|0}if(i[f+16>>2]=n-o,A=k,e=o&31,(o&63)>>>0>=32?(u=k<>>32-e|r<>2]=A,i[f+12>>2]=u,f=k,A=64-o|0,e=A&31,(A&63)>>>0>=32?f=r>>>e|0:f=((1<>>e,f=f+(1<1)return f-1|0;C0(17126,13987,146,13779),P()}function Q_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-32|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(A,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(k=i[19565],i[A>>2]=i[19564],i[A+4>>2]=k,k=A+8|0,l[78275]>=0){n=i[19567],i[k>>2]=i[19566],i[k+4>>2]=n,i[k+8>>2]=i[19568];break i}_0(k,i[19566],i[19567])}l[A+19|0]<0&&G(i[A+8>>2]);i:{if(s[e+48|0]){h4(f,e,4563);break i}if(B4(A+20|0,r),l[e+67|0]<0&&G(i[e+56>>2]),k=i[A+24>>2],i[e+56>>2]=i[A+20>>2],i[e+60>>2]=k,i[e+64>>2]=i[A+28>>2],B4(A+20|0,r),l[e+79|0]<0&&G(i[e+68>>2]),k=i[A+24>>2],i[e+68>>2]=i[A+20>>2],i[e+72>>2]=k,i[e+76>>2]=i[A+28>>2],B4(A+20|0,r),l[e+91|0]<0&&G(i[e+80>>2]),k=i[A+24>>2],i[e+80>>2]=i[A+20>>2],i[e+84>>2]=k,i[e+88>>2]=i[A+28>>2],B4(A+20|0,r),l[e+103|0]<0&&G(i[e+92>>2]),k=i[A+24>>2],i[e+92>>2]=i[A+20>>2],i[e+96>>2]=k,i[e+100>>2]=i[A+28>>2],s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(f,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function hn(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;i:{r:{e:{A:{f:{k:{n:{t:{o:{u:{if(k=e,k){if(!r)break u;if(!A)break o;if(k=$2(A)-$2(k)|0,k>>>0<=31)break t;break r}if((A|0)==1|A>>>0>1)break r;return e=(f>>>0)/(r>>>0)|0,d8=f-m(e,r)|0,c8=0,w0=0,e}if(!f)break n;if(!A||(n=A-1|0,n&A))break k;return d8=f,c8=k&n,f=k>>>P6(A)|0,w0=0,f}if(n=r-1|0,!(n&r))break f;w=($2(r)+33|0)-$2(k)|0,t=0-w|0;break e}w=k+1|0,t=63-k|0;break e}return d8=0,f=(k>>>0)/(A>>>0)|0,c8=k-m(f,A)|0,w0=0,f}if(k=$2(A)-$2(k)|0,k>>>0<31)break A;break r}if(d8=f&n,c8=0,(r|0)==1)break i;return r=P6(r),A=r&31,(r&63)>>>0>=32?(k=0,f=e>>>A|0):(k=e>>>A|0,f=((1<>>A),w0=k,f}w=k+1|0,t=63-k|0}if(n=f,k=w&63,o=k&31,(k&63)>>>0>=32?(k=0,n=e>>>o|0):(k=e>>>o|0,n=((1<>>o),o=t&63,t=f,u=o&31,(o&63)>>>0>=32?(h=f<>>32-u|e<>>31,n=n<<1|e>>>31,_=k,u=t-(k+(n>>>0>o>>>0)|0)|0,v=u>>31,h=v,k=n,u=r&h,n=k-u|0,k=_-((A&h)+(k>>>0>>0)|0)|0,h=e<<1|f>>>31,f=Z|f<<1,e=h|p,_=v&1,Z=_,w=w-1|0,!!w;);return d8=n,c8=k,h=e<<1|f>>>31,f=_|f<<1,w0=h|p,f}d8=f,c8=e,f=0,e=0}return w0=e,f}function wn(f,e,r){var A=0,k=0,n=0,t=0,o=Y(0),u=Y(0),h=Y(0),w=Y(0),_=Y(0),v=Y(0),Z=Y(0),p=Y(0);A=B-16|0,B=A,i[r>>2]=0,k=Z2(52);i:{if(!k){if(l[A+4|0]=0,l[A+15|0]=0,r0(f,6,0,A+4|0),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(l[k+16|0]=1,i[k+12>>2]=6,i[k+4>>2]=1,i[k+8>>2]=13,l[k|0]=1,n=A+4|0,cA(n,k,Q[e+4>>1]),t=i[A+4>>2],t){if(e=i[A+8>>2],G(k),l[A+4|0]=0,l[A+15|0]=0,r0(f,t,e,n),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(n=A+4|0,i3(n,k,Q[e+6>>1]),t=i[A+4>>2],t){if(e=i[A+8>>2],G(k),l[A+4|0]=0,l[A+15|0]=0,r0(f,t,e,n),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(n=A+4|0,dA(n,k,Q[e+8>>1]),t=i[A+4>>2],t){if(e=i[A+8>>2],G(k),l[A+4|0]=0,l[A+15|0]=0,r0(f,t,e,n),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(l[k+16|0]=s[e+10|0],e=Q[k+4>>1]-1|0,(e&65535)>>>0<=21&&(e=e<<2&262140,o=Z0[e+36156>>2],u=Z0[e+35892>>2],h=Z0[e+35804>>2],w=Z0[e+35716>>2],_=Z0[e+35628>>2],v=Z0[e+35540>>2],Z=Z0[e+36068>>2],p=Z0[e+35980>>2]),Z0[k+48>>2]=o,Z0[k+44>>2]=Z,Z0[k+40>>2]=h,Z0[k+36>>2]=w,Z0[k+32>>2]=_,Z0[k+28>>2]=v,Z0[k+24>>2]=p,Z0[k+20>>2]=u,i[r>>2]=k,e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+16|0}function y_(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0;n=B-32|0,B=n;i:{if(!(k&&e)){i[f>>2]=5,i[f+4>>2]=2006,i[f+8>>2]=12607;break i}t=i[e>>2],o=i[t+48>>2],t=i[t+52>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,I1(n,o,r,n+20|0);r:{if(i[n>>2]){P0(f,n,i[e>>2]);break r}if(r=A-1|0,e=i[n+20>>2],r>>>0>=i[n+24>>2]-e>>3>>>0){i[f>>2]=5,i[f+4>>2]=2007,i[f+8>>2]=10388;break r}e:{if(e=e+(r<<3)|0,r=i[e>>2],!r||(r=N0(r,68572,70012),!r))break e;if(e=i[e+4>>2],e){if(i[e+4>>2]=i[e+4>>2]+1,A=U(80),i[k>>2]=A,F2(A,r+56|0,76),i[f+8>>2]=i[18412],r=i[18411],i[f>>2]=i[18410],i[f+4>>2]=r,f=i[e+4>>2],i[e+4>>2]=f-1,f)break r;V[i[i[e>>2]+8>>2]](e),g(e);break r}e=U(80),i[k>>2]=e,F2(e,r+56|0,76),i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e;break r}i[f>>2]=5,i[f+4>>2]=2007,i[f+8>>2]=9699}if(l[n+19|0]<0&&G(i[n+8>>2]),r=i[n+20>>2],r){if(f=r,e=i[n+24>>2],(f|0)!=(e|0)){for(;;){f=i[e-4>>2];r:{if(!f||(A=i[f+4>>2],i[f+4>>2]=A-1,A))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(e=e-8|0,(r|0)==(e|0))break}f=i[n+20>>2]}i[n+24>>2]=r,G(f)}if(!t||(f=i[t+4>>2],i[t+4>>2]=f-1,f))break i;V[i[i[t>>2]+8>>2]](t),g(t)}B=n+32|0}function F_(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0;if(Q1(f,i[e+8>>2],k)){i[e+28>>2]==1|i[e+4>>2]!=(r|0)||(i[e+28>>2]=A);return}i:{r:{if(Q1(f,i[e>>2],k)){if(!(i[e+16>>2]!=(r|0)&i[e+20>>2]!=(r|0))){if((A|0)!=1)break i;i[e+32>>2]=1;return}if(i[e+32>>2]=A,i[e+44>>2]==4)break r;for(n=f+16|0,t=n+(i[f+12>>2]<<3)|0,A=0;;){e:{A:{f:{k:{if(n>>>0>=t>>>0||(X[e+52>>1]=0,Y3(n,e,r,r,1,k),s[e+54|0]))break k;if(s[e+53|0]!=1)break e;if(s[e+52|0]==1){if(i[e+24>>2]==1||(A=1,o=1,!(s[f+8|0]&2)))break A;break e}if(A=1,l[f+8|0]&1)break e;f=3;break f}f=A?3:4}if(i[e+44>>2]=f,o)break i;break r}i[e+44>>2]=3;break i}n=n+8|0}}if(n=i[f+12>>2],t=f+16|0,Be(t,e,r,A,k),(n|0)<2)break i;if(t=t+(n<<3)|0,n=f+24|0,f=i[f+8>>2],!(!(f&2)&i[e+36>>2]!=1)){for(;;){if(s[e+54|0])break i;if(Be(n,e,r,A,k),n=n+8|0,!(t>>>0>n>>>0))break}break i}if(!(f&1))for(;;){if(s[e+54|0]|i[e+36>>2]==1)break i;if(Be(n,e,r,A,k),n=n+8|0,!(t>>>0>n>>>0))break i}for(;;){if(s[e+54|0]|i[e+36>>2]==1&i[e+24>>2]==1)break i;if(Be(n,e,r,A,k),n=n+8|0,!(t>>>0>n>>>0))break}break i}if(i[e+20>>2]=r,i[e+40>>2]=i[e+40>>2]+1,i[e+36>>2]!=1|i[e+24>>2]!=2)break i;l[e+54|0]=1}}function E_(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(!(i[r>>2]==1&(i[r+4>>2]&-4)==12)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,l[e+62|0]=1,i[e+56>>2]=131074,l[e+44|0]=0,i[e+36>>2]=99,i[e+40>>2]=99,i[e+48>>2]=8,i[e+52>>2]=72992,X[e+60>>1]=2,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969;r:{e:switch(A=i[r+4>>2],A-12|0){case 0:case 2:break e;default:break r}l[e+44|0]=0,i[e+36>>2]=1,i[e+40>>2]=(A|0)==14?12:14,i[e+48>>2]=i[r+12>>2],A=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=A,A=i[e+40>>2],i[e>>2]=i[e+36>>2],i[e+4>>2]=A,i[e+16>>2]=72992,A=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,A=i[e+56>>2],i[e+28>>2]=11,i[e+20>>2]=A,P2(f,e),A=i[r+4>>2]}r:switch(A-13|0){case 0:case 2:break r;default:break i}l[e+44|0]=1,i[e+36>>2]=1,i[e+40>>2]=(A|0)==15?13:15,i[e+48>>2]=i[r+12>>2],r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,r=i[e+40>>2],i[e>>2]=i[e+36>>2],i[e+4>>2]=r,i[e+16>>2]=72992,r=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,r=i[e+56>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)}B=e- -64|0}function Xi(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;_=B-16|0,B=_;i:{r:{e:{if((r|0)<=36){if(t=s[f|0],t)break e;n=f;break r}i[23944]=28,A=0,k=0;break i}n=f;e:{for(;;){if(o=t<<24>>24,!((o|0)==32|o-9>>>0<5))break e;if(t=s[n+1|0],n=n+1|0,!t)break}break r}e:switch(o=t&255,o-43|0){case 0:case 2:break e;default:break r}h=(o|0)==45?-1:0,n=n+1|0}r:{if(!((r|16)!=16|s[n|0]!=48)){if(Z=1,(s[n+1|0]&223)==88){n=n+2|0,v=16;break r}n=n+1|0,v=r||8;break r}v=r||10}for(r=0;;){r:{o=s[n|0],t=o-48|0;e:{if((t&255)>>>0<10)break e;if((o-97&255)>>>0<=25){t=o-87|0;break e}if((o-65&255)>>>0>25)break r;t=o-55|0}if(t=t&255,(t|0)>=(v|0))break r;U1(_,v,0,0,0,w,u,0,0),o=1;e:{if(i[_+8>>2]|i[_+12>>2]||(p=q0(w,u,v,0),W=w0,(W|0)==-1&(t^-1)>>>0

>>0))break e;u=W,w=t+p|0,u=w>>>0>>0?u+1|0:u,Z=1,o=r}n=n+1|0,r=o;continue}break}e&&(i[e>>2]=Z?n:f);r:{e:{if(r){i[23944]=68,f=A&1,h=f?0:h,w=A,u=k;break e}if((k|0)==(u|0)&A>>>0>w>>>0|k>>>0>u>>>0)break r;f=A&1}if(!(f|h)){i[23944]=68,f=A,A=f-1|0,k=k-!f|0;break i}if((k|0)==(u|0)&A>>>0>=w>>>0|k>>>0>u>>>0)break r;i[23944]=68;break i}f=h^w,A=f-h|0,e=h>>31,k=(e^u)-((f>>>0>>0)+e|0)|0}return B=_+16|0,w0=k,A}function _n(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;i[f>>2]=i[e>>2],X[f+4>>1]=Q[e+4>>1],i[f+16>>2]=0,i[f+8>>2]=0,i[f+12>>2]=0;i:{r:{e:{if(A=i[e+12>>2],r=i[e+8>>2],(A|0)!=(r|0)){if(n=A-r|0,(n|0)<0)break e;k=U(n),i[f+12>>2]=k,i[f+8>>2]=k,A=k+n|0,i[f+16>>2]=A,l0(k,r,n),i[f+12>>2]=A}i[f+28>>2]=0,i[f+20>>2]=0,i[f+24>>2]=0;A:{if(A=i[e+24>>2],!A)break A;if((A|0)>=0){if(r=(A-1>>>5|0)+1|0,A=U(r<<2),i[f+28>>2]=r,i[f+24>>2]=0,i[f+20>>2]=A,t=i[e+20>>2],r=i[e+24>>2],i[f+24>>2]=r,i[((r>>>0>=33?r-1>>>5|0:0)<<2)+A>>2]=0,!r)break A;for(n=r&31,k=(r>>>3&536870908)+t|0;r=1<>2]>>>o&1?r=r|i[A>>2]:r=i[A>>2]&(r^-1),i[A>>2]=r,r=(u|0)==31,u=r?0:u+1|0,A=(r<<2)+A|0,r=(o|0)==31,t=(r<<2)+t|0,o=r?0:o+1|0,!!((n|0)!=(o|0)|(k|0)!=(t|0)););break A}y0(),P()}if(i[f+40>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,A=i[e+36>>2],r=i[e+32>>2],(A|0)!=(r|0)){if(n=A-r|0,(n|0)<0)break r;k=U(n),i[f+36>>2]=k,i[f+32>>2]=k,A=k+n|0,i[f+40>>2]=A,l0(k,r,n),i[f+36>>2]=A}if(i[f+52>>2]=0,i[f+44>>2]=0,i[f+48>>2]=0,A=i[e+48>>2],r=i[e+44>>2],(A|0)!=(r|0)){if(k=A-r|0,(k|0)<0)break i;A=U(k),i[f+48>>2]=A,i[f+44>>2]=A,e=A+k|0,i[f+52>>2]=e,l0(A,r,k),i[f+48>>2]=e}return}y0(),P()}y0(),P()}y0(),P()}function Y_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0;A=B-32|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(A,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(k=i[19565],i[A>>2]=i[19564],i[A+4>>2]=k,k=A+8|0,l[78275]>=0){n=i[19567],i[k>>2]=i[19566],i[k+4>>2]=n,i[k+8>>2]=i[19568];break i}_0(k,i[19566],i[19567])}l[A+19|0]<0&&G(i[A+8>>2]);i:{if(s[e+48|0]){h4(f,e,8165);break i}if(k=B2(r),n=i[r>>2],t=V[i[i[n>>2]+8>>2]](n)|0,o=i[r>>2],n=w0,t=k+t|0,n=k>>>0>t>>>0?n+1|0:n,V[i[i[o>>2]+12>>2]](o,t,n)|0){if(l[A+20|0]=0,l[A+31|0]=0,r0(f,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}n=e+56|0,o=i[e+56>>2],t=i[e+60>>2]-o|0;r:{if(t>>>0>>0){L2(n,k-t|0);break r}if(k>>>0>=t>>>0)break r;i[e+60>>2]=k+o}if(k)for(e=0;t=B2(r),l[i[n>>2]+e|0]=t,e=e+1|0,(k|0)!=(e|0););if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(f,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function ri(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0;i:{r:{o=i[f+248>>2],u=e>>o;e:{if((u|0)<0||(h=i[f+252>>2],(h|0)<=(u|0)))break e;if(o=r>>o,(o|0)<0|(o|0)>=i[f+256>>2])break r;if(!(s[(u+i[f+240>>2]|0)+m(o,h)|0]>>>k&1)){u=A,A=e;break i}if(u=A-1|0,o=k+1|0,ri(f,e,r,u,o,n,t),k=1<>1,A=k+e|0,ri(f,A,r,u,o,16,t),r=r+k|0,ri(f,e,r,u,o,n,32),e=i[f+248>>2],k=A>>e,(k|0)<0)break e;for(e=r>>e;;){if(n=i[f+252>>2],(n|0)<=(k|0))break e;if((e|0)<0|i[f+256>>2]<=(e|0))break r;if(!(s[(i[f+240>>2]+k|0)+m(e,n)|0]>>>o&1)){n=16,t=32;break i}if(k=u-1|0,o=o+1|0,ri(f,A,r,k,o,16,32),e=1<>1,n=e+A|0,ri(f,n,r,k,o,16,32),r=e+r|0,ri(f,A,r,k,o,16,32),t=i[f+248>>2],e=r>>t,u=k,A=n,k=n>>t,!((k|0)>=0))break}}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}i:{if((u|0)==31)break i;for(e=1<>2],h=(r+o|0)/4|0,(k|0)>=(w|0)|(h|0)>=i[f+276>>2]||(h=(k+i[f+260>>2]|0)+m(h,w)|0,l[h|0]=s[h|0]|n),o=o+4|0,(e|0)>(o|0););if((u|0)==31)break i;for(k=(r|0)/4|0,r=0;n=(r+A|0)/4|0,u=i[f+272>>2],(n|0)>=(u|0)|(k|0)>=i[f+276>>2]||(n=(n+i[f+260>>2]|0)+m(k,u)|0,l[n|0]=s[n|0]|t),r=r+4|0,(e|0)>(r|0););}}function h6(f){var e=0;e=31;i:{if(f==0)break i;if(f=d0(f),!(f<1073741824))return 0;if(f=f+f,!(f<1073741824))return 1;if(f=f+f,!(f<1073741824))return 2;if(f=f+f,!(f<1073741824))return 3;if(f=f+f,!(f<1073741824))return 4;if(f=f+f,!(f<1073741824))return 5;if(f=f+f,!(f<1073741824))return 6;if(f=f+f,!(f<1073741824))return 7;if(f=f+f,!(f<1073741824))return 8;if(f=f+f,!(f<1073741824))return 9;if(f=f+f,!(f<1073741824))return 10;if(f=f+f,!(f<1073741824))return 11;if(f=f+f,!(f<1073741824))return 12;if(f=f+f,!(f<1073741824))return 13;if(f=f+f,!(f<1073741824))return 14;if(f=f+f,!(f<1073741824))return 15;if(f=f+f,!(f<1073741824))return 16;if(f=f+f,!(f<1073741824))return 17;if(f=f+f,!(f<1073741824))return 18;if(f=f+f,!(f<1073741824))return 19;if(f=f+f,!(f<1073741824))return 20;if(f=f+f,!(f<1073741824))return 21;if(f=f+f,!(f<1073741824))return 22;if(f=f+f,!(f<1073741824))return 23;if(f=f+f,!(f<1073741824))return 24;if(f=f+f,!(f<1073741824))return 25;if(f=f+f,!(f<1073741824))return 26;if(f=f+f,!(f<1073741824))return 27;if(f=f+f,!(f<1073741824))return 28;if(f=f+f,!(f<1073741824))return 29;if(f+f<1073741824)break i;e=30}return e}function vn(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;i:{if(r=i[f>>2],k=i[f+4>>2]-r>>5,t=k+1|0,t>>>0<134217728){if(A=i[f+8>>2]-r|0,r=A>>4,t=A>>>0>=2147483616?134217727:r>>>0>t>>>0?r:t,t){if(t>>>0>=134217728)break i;n=U(t<<5)}A=i[e+4>>2],r=(k<<5)+n|0,i[r>>2]=i[e>>2],i[r+4>>2]=A,k=i[e+8>>2],A=i[e+12>>2],i[r+24>>2]=0,i[r+16>>2]=0,i[r+20>>2]=0,i[r+8>>2]=k,i[r+12>>2]=A,A=i[e+16>>2],e=i[e+20>>2],br(r+16|0,A,e,(e-A|0)/40|0),t=(t<<5)+n|0,h=r+32|0,A=i[f+4>>2],o=i[f>>2];r:{if((A|0)==(o|0)){n=r;break r}for(;e=A-32|0,k=i[e+4>>2],n=r-32|0,i[n>>2]=i[e>>2],i[n+4>>2]=k,k=i[e+12>>2],i[n+8>>2]=i[e+8>>2],i[n+12>>2]=k,k=r-8|0,i[k>>2]=0,u=r-16|0,i[u>>2]=0,i[u+4>>2]=0,w=u,u=A-16|0,i[w>>2]=i[u>>2],i[r-12>>2]=i[A-12>>2],r=A-8|0,i[k>>2]=i[r>>2],i[r>>2]=0,i[u>>2]=0,i[u+4>>2]=0,r=n,A=e,(e|0)!=(o|0););A=i[f+4>>2],o=i[f>>2]}if(i[f+8>>2]=t,i[f+4>>2]=h,i[f>>2]=n,(A|0)!=(o|0))for(;;){if(k=A-16|0,f=i[k>>2],f){if(e=f,n=A-12|0,r=i[n>>2],(e|0)!=(r|0)){for(;e=i[r-16>>2],e&&(i[r-12>>2]=e,G(e)),r=r-40|0,(f|0)!=(r|0););e=i[k>>2]}i[n>>2]=f,G(e)}if(A=A-32|0,(o|0)==(A|0))break}return o&&G(o),h}y0(),P()}_2(),P()}function mn(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,t=i[13708],i[A+12>>2]=t,n=A+12|0,i[n+i[t-12>>2]>>2]=i[13709],t=n+i[i[A+12>>2]-12>>2]|0,k=A+16|0,b0(t,k),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(k),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,k=A+148|0,R2(k,e,r),o=n,u=k,n=l[A+159|0],k=(n|0)<0,x(o,k?i[A+148>>2]:u,k?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=A+148|0,W0(n,r),o=n,n=l[A+159|0],k=(n|0)<0,x(A+12|0,k?i[A+148>>2]:o,k?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=x(L0(x(A+12|0,21287,10),i[e+56>>2]),31338,1),k=A+148|0,W0(k,r),o=k,r=l[A+159|0],k=(r|0)<0,x(n,k?i[A+148>>2]:o,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),x(n,20132,12),r=i[e+60>>2],n=i[e+64>>2];i:{if((r|0)==(n|0)||(L0(A+12|0,i[r>>2]),e=r+4|0,(n|0)==(e|0)))break i;for(;r=i[e>>2],l[A+148|0]=32,k=A+12|0,x(k,A+148|0,1),L0(k,r),e=e+4|0,(n|0)!=(e|0););}e=A+12|0,x(e,31338,1),i2(f,t),f=i[13707],i[A+12>>2]=f,i[e+i[f-12>>2]>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function J_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;n=B-32|0,B=n;i:{r:{e:{if(!(i[e+52>>2]-i[e+48>>2]&255)){if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]<0)break e;e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}if(h=V[i[i[e>>2]+32>>2]](e,r,0)|0,w2(r,(i[e+64>>2]-i[e+60>>2]|0)/12&255),A2(r,i[e+52>>2]-i[e+48>>2]&255),A=i[e+48>>2],k=i[e+52>>2],(A|0)!=(k|0))for(;A2(r,s[A|0]),A=A+1|0,(k|0)!=(A|0););if(k=i[e+60>>2],u=i[e+64>>2],(k|0)==(u|0))break r;for(;;){if(i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,A=i[k+4>>2],t=i[k>>2],o=(A|0)==(t|0),!o){A:{if(A=A-t|0,(A|0)>=0){if(t=l0(U(A),t,A),o)break A;for(A=A>>>1|0,w=A>>>0<=1?1:A,A=0;;){o=Q[t+(A<<1)>>1];f:{if(s[i[e+48>>2]+A|0]<=8){A2(r,o&255);break f}w2(r,o)}if(A=A+1|0,(w|0)==(A|0))break}break A}y0(),P()}G(t)}if(k=k+12|0,(u|0)==(k|0))break}break r}_0(f,i[19566],i[19567]);break i}if(Y4(n,e,r,h),l[n+19|0]<0&&G(i[n+8>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=n+32|0}function g_(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0;e=B+-64|0,B=e,n=i[r+12>>2];i:{if((n|0)>=9){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if((n|0)!=8){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!(i[r>>2]==1&i[r+4>>2]==3)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(n=Q[A+24>>1],!(n>>>0>14|!(1<>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,l[e+44|0]=0,i[e+36>>2]=99,i[e+40>>2]=99,i[e+48>>2]=8,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,n=i[A+4>>2];r:{if(!((n|0)==3|(s[k+12|0]?i[k+4>>2]!=1:0))){i[e+40>>2]=n,i[e+36>>2]=0;break r}i[e+36>>2]=0,i[e+40>>2]=3}l[e+44|0]=s[r+8|0],i[e+48>>2]=i[r+12>>2],r=s[A+23|0]|s[A+24|0]<<8|(s[A+25|0]<<16|s[A+26|0]<<24),l[e+59|0]=r,l[e+60|0]=r>>>8,l[e+61|0]=r>>>16,l[e+62|0]=r>>>24,i[e+56>>2]=i[A+20>>2],r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,r=i[e+40>>2],i[e>>2]=i[e+36>>2],i[e+4>>2]=r,i[e+16>>2]=72992,r=s[A+23|0]|s[A+24|0]<<8|(s[A+25|0]<<16|s[A+26|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,r=i[A+20>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)}B=e- -64|0}function N_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,t=i[13708],i[A+12>>2]=t,n=A+12|0,i[n+i[t-12>>2]>>2]=i[13709],t=n+i[i[A+12>>2]-12>>2]|0,k=A+16|0,b0(t,k),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(k),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,k=A+148|0,W0(k,r),o=n,u=k,n=l[A+159|0],k=(n|0)<0,x(o,k?i[A+148>>2]:u,k?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=x(L0(x(A+12|0,20019,18),Q[e+4>>1]),31338,1),k=A+148|0,W0(k,r),u=k,k=l[A+159|0],o=(k|0)<0,x(n,o?i[A+148>>2]:u,o?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),n=x(L0(x(n,20105,26),Q[e+6>>1]),31338,1),k=A+148|0,W0(k,r),u=k,k=l[A+159|0],o=(k|0)<0,x(n,o?i[A+148>>2]:u,o?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),n=x(L0(x(n,19703,21),Q[e+8>>1]),31338,1),k=A+148|0,W0(k,r),u=k,r=l[A+159|0],k=(r|0)<0,x(n,k?i[A+148>>2]:u,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),x(re(x(n,20629,17),s[e+10|0]),31338,1),i2(f,t),f=i[13707],i[A+12>>2]=f,i[i[f-12>>2]+(A+12|0)>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function FA(f,e,r,A,k,n,t,o,u,h,w,_){var v=0;v=B-16|0,B=v,i[v+12>>2]=f;i:{r:{if((f|0)==(n|0)){if(s[e|0]!=1)break r;if(f=0,l[e|0]=0,e=i[k>>2],i[k>>2]=e+1,l[e|0]=46,s[o+11|0]>>>7|0?e=i[o+4>>2]:e=s[o+11|0]&127,!e||(e=i[h>>2],(e-u|0)>159))break i;r=i[w>>2],i[h>>2]=e+4,i[e>>2]=r;break i}e:{if(s[o+11|0]>>>7|0?n=i[o+4>>2]:n=s[o+11|0]&127,!(!n|(f|0)!=(t|0))){if(s[e|0]!=1)break r;if(f=i[h>>2],(f-u|0)>159)break e;e=i[w>>2],i[h>>2]=f+4,i[f>>2]=e,f=0,i[w>>2]=0;break i}if(f=H3(_,_+128|0,v+12|0)-_|0,t=f>>2,(t|0)>31)break r;n=l[t+60064|0];A:{f:{if(f=f&-5,(f|0)!=88){if((f|0)!=96)break f;if(e=i[k>>2],(e|0)!=(A|0)&&(f=-1,A=l[e-1|0],r=l[r|0],((A-97>>>0<26?A&95:A)|0)!=((r-97>>>0<26?r&95:r)|0)))break i;i[k>>2]=e+1,l[e|0]=n;break e}l[r|0]=80;break A}if(f=n-97>>>0<26?n&95:n,(f|0)!=l[r|0]||(l[r|0]=f-65>>>0<26?f|32:f,s[e|0]!=1)||(l[e|0]=0,s[o+11|0]>>>7|0?f=i[o+4>>2]:f=s[o+11|0]&127,!f)||(f=i[h>>2],(f-u|0)>159))break A;e=i[w>>2],i[h>>2]=f+4,i[f>>2]=e}if(f=i[k>>2],i[k>>2]=f+1,l[f|0]=n,f=0,(t|0)>21)break i;i[w>>2]=i[w>>2]+1;break i}f=0;break i}f=-1}return B=v+16|0,f}function EA(f,e,r,A,k,n,t,o,u,h,w,_){var v=0;v=B-16|0,B=v,l[v+15|0]=f;i:{r:{if((f|0)==(n|0)){if(s[e|0]!=1)break r;if(f=0,l[e|0]=0,e=i[k>>2],i[k>>2]=e+1,l[e|0]=46,s[o+11|0]>>>7|0?e=i[o+4>>2]:e=s[o+11|0]&127,!e||(e=i[h>>2],(e-u|0)>159))break i;r=i[w>>2],i[h>>2]=e+4,i[e>>2]=r;break i}e:{if(s[o+11|0]>>>7|0?n=i[o+4>>2]:n=s[o+11|0]&127,!(!n|(f|0)!=(t|0))){if(s[e|0]!=1)break r;if(f=i[h>>2],(f-u|0)>159)break e;e=i[w>>2],i[h>>2]=f+4,i[f>>2]=e,f=0,i[w>>2]=0;break i}if(t=T3(_,_+32|0,v+15|0)-_|0,(t|0)>31)break r;n=l[t+60064|0];A:{f:switch((t&-2)-22|0){case 2:if(e=i[k>>2],(e|0)!=(A|0)&&(f=-1,A=l[e-1|0],r=l[r|0],((A-97>>>0<26?A&95:A)|0)!=((r-97>>>0<26?r&95:r)|0)))break i;i[k>>2]=e+1,l[e|0]=n;break e;case 0:l[r|0]=80;break A;default:break f}if(f=n-97>>>0<26?n&95:n,(f|0)!=l[r|0]||(l[r|0]=f-65>>>0<26?f|32:f,s[e|0]!=1)||(l[e|0]=0,s[o+11|0]>>>7|0?f=i[o+4>>2]:f=s[o+11|0]&127,!f)||(f=i[h>>2],(f-u|0)>159))break A;e=i[w>>2],i[h>>2]=f+4,i[f>>2]=e}if(f=i[k>>2],i[k>>2]=f+1,l[f|0]=n,f=0,(t|0)>21)break i;i[w>>2]=i[w>>2]+1;break i}f=0;break i}f=-1}return B=v+16|0,f}function Bn(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;A=B-32|0,B=A;i:{if(s[f+52|0]==1){if(r=i[f+48>>2],!e)break i;l[f+52|0]=0,i[f+48>>2]=-1;break i}r:{if(s[f+53|0]==1){r=i[f+32>>2];e:{if(i[r+76>>2]<0){r=f7(r);break e}r=f7(r)}if((r|0)!=-1&&(i[A+24>>2]=r),(r|0)==-1)break r;r=i[A+24>>2];e:{if(!e){if(!O7(r,i[f+32>>2]))break r;break e}i[f+48>>2]=r}r=i[A+24>>2];break i}for(i[A+24>>2]=1,k=B-16|0,B=k,B=k+16|0,k=f+44|0,n=A+24|0,k=i[(i[n>>2]>2]?k:n)>>2],n=(k|0)>0?k:0;;){if((r|0)!=(n|0)){if(t=y6(i[f+32>>2]),(t|0)==-1)break r;l[(A+24|0)+r|0]=t,r=r+1|0;continue}break}h=A+24|0;e:{for(;;){A:{n=i[f+40>>2],r=i[n>>2],w=i[n+4>>2],o=A+24|0,t=o+k|0;f:switch(u=i[f+36>>2],(V[i[i[u>>2]+16>>2]](u,n,o,t,A+16|0,A+20|0,h,A+12|0)|0)-1|0){case 2:break A;case 0:break f;case 1:break r;default:break e}if(n=i[f+40>>2],i[n>>2]=r,i[n+4>>2]=w,(k|0)==8||(r=y6(i[f+32>>2]),(r|0)==-1))break r;l[t|0]=r,k=k+1|0;continue}break}i[A+20>>2]=l[A+24|0]}e:{if(!e)for(;;){if((k|0)<=0)break e;if(k=k-1|0,(gi(l[k+(A+24|0)|0],i[f+32>>2])|0)==-1)break r}i[f+48>>2]=i[A+20>>2]}r=i[A+20>>2];break i}r=-1}return B=A+32|0,r}function Mr(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;Z=B-16|0,B=Z,w=x0(t,100184),u=Z+4|0,t=x0(t,100256),V[i[i[t>>2]+20>>2]](u,t),s[u+11|0]>>>7|0?o=i[u+4>>2]:o=s[u+11|0]&127;i:{if(!o){V[i[i[w>>2]+48>>2]](w,f,r,A)|0,t=(r-f<<2)+A|0,i[n>>2]=t;break i}i[n>>2]=A;r:{e:switch(u=f,o=s[u|0],o-43|0){case 0:case 2:break e;default:break r}u=V[i[i[w>>2]+44>>2]](w,o<<24>>24)|0,o=i[n>>2],i[n>>2]=o+4,i[o>>2]=u,u=f+1|0}for(s[u|0]!=48|(r-u|0)<2|(s[u+1|0]|32)!=120||(o=V[i[i[w>>2]+44>>2]](w,48)|0,h=i[n>>2],i[n>>2]=h+4,i[h>>2]=o,o=V[i[i[w>>2]+44>>2]](w,l[u+1|0])|0,h=i[n>>2],i[n>>2]=h+4,i[h>>2]=o,u=u+2|0),li(u,r),p=V[i[i[t>>2]+16>>2]](t)|0,h=0,t=u;;){if(r>>>0<=t>>>0)te((u-f<<2)+A|0,i[n>>2]),t=i[n>>2];else{o=Z+4|0;r:{if(s[o+11|0]>>>7|0){_=i[o>>2];break r}_=o}W=!s[_+h|0],s[o+11|0]>>>7|0?_=i[o>>2]:_=o,W|l[_+h|0]!=(v|0)||(v=i[n>>2],i[n>>2]=v+4,i[v>>2]=p,s[o+11|0]>>>7|0?o=i[o+4>>2]:o=s[o+11|0]&127,h=(o-1>>>0>h>>>0)+h|0,v=0),o=V[i[i[w>>2]+44>>2]](w,l[t|0])|0,_=i[n>>2],i[n>>2]=_+4,i[_>>2]=o,t=t+1|0,v=v+1|0;continue}break}}i[k>>2]=(e|0)==(r|0)?t:(e-f<<2)+A|0,z0(Z+4|0),B=Z+16|0}function l0(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;if(r>>>0>=512)return Vs(f|0,e|0,r|0),f|0;A=f+r|0;i:{if(!((f^e)&3)){r:{if(!(f&3)){r=f;break r}if(!r){r=f;break r}for(r=f;;){if(l[r|0]=s[e|0],e=e+1|0,r=r+1|0,!(r&3))break r;if(!(r>>>0>>0))break}}k=A&-4;r:{if(A>>>0<64||(n=k+-64|0,n>>>0>>0))break r;for(;i[r>>2]=i[e>>2],i[r+4>>2]=i[e+4>>2],i[r+8>>2]=i[e+8>>2],i[r+12>>2]=i[e+12>>2],i[r+16>>2]=i[e+16>>2],i[r+20>>2]=i[e+20>>2],i[r+24>>2]=i[e+24>>2],i[r+28>>2]=i[e+28>>2],i[r+32>>2]=i[e+32>>2],i[r+36>>2]=i[e+36>>2],i[r+40>>2]=i[e+40>>2],i[r+44>>2]=i[e+44>>2],i[r+48>>2]=i[e+48>>2],i[r+52>>2]=i[e+52>>2],i[r+56>>2]=i[e+56>>2],i[r+60>>2]=i[e+60>>2],e=e- -64|0,r=r- -64|0,n>>>0>=r>>>0;);}if(r>>>0>=k>>>0)break i;for(;i[r>>2]=i[e>>2],e=e+4|0,r=r+4|0,k>>>0>r>>>0;);break i}if(A>>>0<4){r=f;break i}if(k=A-4|0,k>>>0>>0){r=f;break i}for(r=f;l[r|0]=s[e|0],l[r+1|0]=s[e+1|0],l[r+2|0]=s[e+2|0],l[r+3|0]=s[e+3|0],e=e+4|0,r=r+4|0,k>>>0>=r>>>0;);}if(r>>>0>>0)for(;l[r|0]=s[e|0],e=e+1|0,r=r+1|0,(A|0)!=(r|0););return f|0}function R_(f){f=f|0;var e=0,r=0,A=0,k=0;if(r=f+16|0,e=i[r+16>>2],k=r+20|0,(e|0)!=(k|0))for(;;){A=i[e+20>>2],f=i[e+24>>2];i:{if(!f){i7(A);break i}if(i[f+4>>2]=i[f+4>>2]+1,i7(A),A=i[f+4>>2],i[f+4>>2]=A-1,A)break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[e+4>>2];i:{if(f){for(;;)if(e=f,f=i[f>>2],!f)break i}for(;f=e,e=i[e+8>>2],(f|0)!=i[e>>2];);}if((e|0)==(k|0))break}if(A=i[r+72>>2],A){if(f=A,e=i[r+76>>2],(f|0)!=(e|0)){for(;;){f=i[e-4>>2];i:{if(!f||(k=i[f+4>>2],i[f+4>>2]=k-1,k))break i;V[i[i[f>>2]+8>>2]](f),g(f)}if(e=e-8|0,(A|0)==(e|0))break}f=i[r+72>>2]}i[r+76>>2]=A,G(f)}f=i[r+52>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[r+44>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}if(A=i[r+28>>2],A){if(f=A,e=i[r+32>>2],(f|0)!=(e|0)){for(;;){f=i[e-4>>2];i:{if(!f||(k=i[f+4>>2],i[f+4>>2]=k-1,k))break i;V[i[i[f>>2]+8>>2]](f),g(f)}if(e=e-8|0,(A|0)==(e|0))break}f=i[r+28>>2]}i[r+32>>2]=A,G(f)}H6(r+16|0,i[r+20>>2]),l[r+11|0]<0&&G(i[r>>2])}function D_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;t=B-16|0,B=t;i:{if(_=t2(r),!_)break i;r:{for(;;){if(s[r+20|0]|!i[r+16>>2])break i;h=t2(r),w=t2(r),v=t2(r);e:{k=i[e+52>>2],A=i[e+56>>2];A:{if(k>>>0>>0){X[k+4>>1]=v,X[k+2>>1]=w,X[k>>1]=h,h=k+6|0;break A}if(o=i[e+48>>2],n=(k-o|0)/6|0,u=n+1|0,u>>>0>=715827883)break e;if(p=m(n,6),A=(A-o|0)/6|0,n=A<<1,n=A>>>0>=357913941?715827882:n>>>0>u>>>0?n:u,n){if(n>>>0>=715827883)break r;u=U(m(n,6))}else u=0;if(A=p+u|0,X[A+4>>1]=v,X[A+2>>1]=w,X[A>>1]=h,h=A+6|0,(k|0)!=(o|0)){for(;A=A-6|0,k=k-6|0,w=Q[k>>1]|Q[k+2>>1]<<16,X[A>>1]=w,X[A+2>>1]=w>>>16,X[A+4>>1]=Q[k+4>>1],(k|0)!=(o|0););o=i[e+48>>2]}if(i[e+56>>2]=u+m(n,6),i[e+52>>2]=h,i[e+48>>2]=A,!o)break A;G(o)}if(i[e+52>>2]=h,Z=Z+1|0,(Z|0)!=(_|0))continue;break i}break}y0(),P()}_2(),P()}i:{if(s[r+20|0]==1){if(l[t+4|0]=0,l[t+15|0]=0,r0(f,2,100,t+4|0),l[t+15|0]>=0)break i;G(i[t+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=t+16|0}function xr(f,e,r,A,k,n,t){var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;Z=B-16|0,B=Z,w=x0(t,100192),u=Z+4|0,t=x0(t,100248),V[i[i[t>>2]+20>>2]](u,t),s[u+11|0]>>>7|0?o=i[u+4>>2]:o=s[u+11|0]&127;i:{if(!o){V[i[i[w>>2]+32>>2]](w,f,r,A)|0,t=(r-f|0)+A|0,i[n>>2]=t;break i}i[n>>2]=A;r:{e:switch(u=f,o=s[u|0],o-43|0){case 0:case 2:break e;default:break r}u=V[i[i[w>>2]+28>>2]](w,o<<24>>24)|0,o=i[n>>2],i[n>>2]=o+1,l[o|0]=u,u=f+1|0}for(s[u|0]!=48|(r-u|0)<2|(s[u+1|0]|32)!=120||(o=V[i[i[w>>2]+28>>2]](w,48)|0,h=i[n>>2],i[n>>2]=h+1,l[h|0]=o,o=V[i[i[w>>2]+28>>2]](w,l[u+1|0])|0,h=i[n>>2],i[n>>2]=h+1,l[h|0]=o,u=u+2|0),li(u,r),p=V[i[i[t>>2]+16>>2]](t)|0,h=0,t=u;;){if(r>>>0<=t>>>0)li((u-f|0)+A|0,i[n>>2]),t=i[n>>2];else{o=Z+4|0;r:{if(s[o+11|0]>>>7|0){_=i[o>>2];break r}_=o}W=!s[_+h|0],s[o+11|0]>>>7|0?_=i[o>>2]:_=o,W|l[_+h|0]!=(v|0)||(v=i[n>>2],i[n>>2]=v+1,l[v|0]=p,s[o+11|0]>>>7|0?o=i[o+4>>2]:o=s[o+11|0]&127,h=(o-1>>>0>h>>>0)+h|0,v=0),o=V[i[i[w>>2]+28>>2]](w,l[t|0])|0,_=i[n>>2],i[n>>2]=_+1,l[_|0]=o,t=t+1|0,v=v+1|0;continue}break}}i[k>>2]=(e|0)==(r|0)?t:(e-f|0)+A|0,z0(Z+4|0),B=Z+16|0}function U_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;t=B-16|0,B=t;i:{if(_=t2(r),!_)break i;r:{for(;;){if(s[r+20|0]|!i[r+16>>2])break i;h=t2(r),w=B2(r),v=t2(r);e:{k=i[e+60>>2],A=i[e+64>>2];A:{if(k>>>0>>0){X[k+4>>1]=v,l[k+2|0]=w,X[k>>1]=h,h=k+6|0;break A}if(o=i[e+56>>2],n=(k-o|0)/6|0,u=n+1|0,u>>>0>=715827883)break e;if(p=m(n,6),A=(A-o|0)/6|0,n=A<<1,n=A>>>0>=357913941?715827882:n>>>0>u>>>0?n:u,n){if(n>>>0>=715827883)break r;u=U(m(n,6))}else u=0;if(A=p+u|0,X[A+4>>1]=v,l[A+2|0]=w,X[A>>1]=h,h=A+6|0,(k|0)!=(o|0)){for(;A=A-6|0,k=k-6|0,w=Q[k>>1]|Q[k+2>>1]<<16,X[A>>1]=w,X[A+2>>1]=w>>>16,X[A+4>>1]=Q[k+4>>1],(k|0)!=(o|0););o=i[e+56>>2]}if(i[e+64>>2]=u+m(n,6),i[e+60>>2]=h,i[e+56>>2]=A,!o)break A;G(o)}if(i[e+60>>2]=h,Z=Z+1|0,(Z|0)!=(_|0))continue;break i}break}y0(),P()}_2(),P()}i:{if(s[r+20|0]==1){if(l[t+4|0]=0,l[t+15|0]=0,r0(f,2,100,t+4|0),l[t+15|0]>=0)break i;G(i[t+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=t+16|0}function M_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,t=i[13708],i[A+12>>2]=t,n=A+12|0,i[n+i[t-12>>2]>>2]=i[13709],t=n+i[i[A+12>>2]-12>>2]|0,k=A+16|0,b0(t,k),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(k),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,k=A+148|0,R2(k,e,r),o=n,u=k,n=l[A+159|0],k=(n|0)<0,x(o,k?i[A+148>>2]:u,k?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=A+148|0,W0(n,r),o=n,n=l[A+159|0],k=(n|0)<0,x(A+12|0,k?i[A+148>>2]:o,k?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=x(L0(x(A+12|0,21287,10),i[e+56>>2]),31338,1),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],u=(k|0)<0,x(n,u?i[A+148>>2]:o,u?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),n=x(L0(x(n,21594,15),i[i[e+60>>2]>>2]),31338,1),k=A+148|0,W0(k,r),o=k,r=l[A+159|0],k=(r|0)<0,x(n,k?i[A+148>>2]:o,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),x(L0(x(n,21577,16),i[i[e+60>>2]+4>>2]),31338,1),i2(f,t),f=i[13707],i[A+12>>2]=f,i[i[f-12>>2]+(A+12|0)>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function k1(f,e,r,A){var k=0,n=0,t=0;i:{r:switch(e-1|0){case 0:A2(f,r&255);return;case 1:e=i[f+12>>2],n=e+2|0,k=i[f>>2],t=i[f+4>>2]-k|0,n>>>0>t>>>0&&(L2(f,n-t|0),k=i[f>>2],e=i[f+12>>2]),i[f+12>>2]=e+1,l[e+k|0]=(A&255)<<24|r>>>8;break i;case 3:e=i[f+12>>2],n=e+4|0,k=i[f>>2],t=i[f+4>>2]-k|0,n>>>0>t>>>0&&(L2(f,n-t|0),k=i[f>>2],e=i[f+12>>2]),i[f+12>>2]=e+1,l[e+k|0]=(A&16777215)<<8|r>>>24,e=i[f+12>>2],i[f+12>>2]=e+1,l[e+i[f>>2]|0]=(A&65535)<<16|r>>>16,e=i[f+12>>2],i[f+12>>2]=e+1,l[e+i[f>>2]|0]=(A&255)<<24|r>>>8;break i;case 7:e=i[f+12>>2],n=e+8|0,k=i[f>>2],t=i[f+4>>2]-k|0,n>>>0>t>>>0&&(L2(f,n-t|0),k=i[f>>2],e=i[f+12>>2]),i[f+12>>2]=e+1,l[e+k|0]=A>>>24,e=i[f+12>>2],i[f+12>>2]=e+1,l[e+i[f>>2]|0]=A>>>16,e=i[f+12>>2],i[f+12>>2]=e+1,l[e+i[f>>2]|0]=A>>>8,e=i[f+12>>2],i[f+12>>2]=e+1,l[e+i[f>>2]|0]=A,e=i[f+12>>2],i[f+12>>2]=e+1,l[e+i[f>>2]|0]=(A&16777215)<<8|r>>>24,e=i[f+12>>2],i[f+12>>2]=e+1,l[e+i[f>>2]|0]=(A&65535)<<16|r>>>16,e=i[f+12>>2],i[f+12>>2]=e+1,l[e+i[f>>2]|0]=(A&255)<<24|r>>>8,e=i[f+12>>2],i[f+12>>2]=e+1,l[e+i[f>>2]|0]=r;break;default:break r}return}e=i[f+12>>2],i[f+12>>2]=e+1,l[e+i[f>>2]|0]=r}function x_(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0;o=B-16|0,B=o,t=B-16|0,B=t,u=i[e+8>>2],D8(t,i[u+48>>2],7077),n=i[t>>2],l[n+124|0]=1,i[n+52>>2]=i[n+52>>2]&-2|1,h=i[i[t>>2]+56>>2],n=U(36),i[n+32>>2]=0,i[n+24>>2]=0,i[n+28>>2]=0,i[n+20>>2]=A,i[n+16>>2]=r,i[n+12>>2]=h,i[n>>2]=72616,i[n+4>>2]=0,i[n+8>>2]=0,i[o+12>>2]=n,A=n+12|0,i[o+8>>2]=A,i[n+4>>2]=i[n+4>>2]+1,i[t+12>>2]=n,i[t+8>>2]=A,r=i[u+76>>2];i:{if(r>>>0>2]){i[r+4>>2]=n,i[r>>2]=A,i[u+76>>2]=r+8;break i}if(A=z2(u+72|0,t+8|0),r=i[t+12>>2],i[u+76>>2]=A,!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[t+4>>2];i:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r)}B=t+16|0,y7(i[e>>2],i[i[o+8>>2]>>2]),k&&(r=U(16),A=i[e+8>>2],e=i[e+12>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[r+4>>2]=e,i[r>>2]=A,A=i[o+8>>2],e=i[o+12>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[r+12>>2]=e,i[r+8>>2]=A,i[k>>2]=r),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[o+12>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=o+16|0}function z_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,t=i[13708],i[A+12>>2]=t,k=A+12|0,i[k+i[t-12>>2]>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),u=k,o=n,k=l[A+159|0],n=(k|0)<0,x(u,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],n=(k|0)<0,x(A+12|0,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(H0(x(H0(x(H0(x(H0(x(k,20901,16),i[e+48>>2]),17358,1),i[e+52>>2]),18734,3),i[e+56>>2]),17358,1),i[e+60>>2]),31338,1),n=A+148|0,W0(n,r),o=k,r=l[A+159|0],k=(r|0)<0,x(o,k?i[A+148>>2]:n,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(H0(x(H0(x(H0(x(H0(x(r,19634,8),i[e+64>>2]),17358,1),i[e+68>>2]),19321,3),i[e+72>>2]),17358,1),i[e+76>>2]),31338,1),i2(f,t),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function H_(f,e,r,A,k,n,t,o,u){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0;var h=0,w=0,_=0;_=B-16|0,B=_,h=U(44),i[h+40>>2]=0,i[h+32>>2]=0,i[h+36>>2]=0,i[h+12>>2]=73364,i[h+4>>2]=0,i[h+8>>2]=0,i[h+28>>2]=n,i[h+24>>2]=k,i[h+20>>2]=A,i[h+16>>2]=r,i[h>>2]=73608,A=h+12|0,o?(L2(h+32|0,o),w=i[h+36>>2],r=i[h+32>>2]):r=0,l0(r,t,w-r|0),k=i[e+8>>2],i[_+12>>2]=h,i[_+8>>2]=A,i[h+4>>2]=i[h+4>>2]+1,r=i[k+16>>2];i:{r:{if(r>>>0>2]){i[r+4>>2]=h,i[r>>2]=A,i[h+4>>2]=i[h+4>>2]+1,i[k+16>>2]=r+8,w=h;break r}if(r=Q2(k+12|0,_+8|0),w=i[_+12>>2],i[k+16>>2]=r,!w)break i}if(r=i[w+4>>2],i[w+4>>2]=r-1,r)break i;V[i[i[w>>2]+8>>2]](w),g(w)}i:{if(!u||(i[h+4>>2]=i[h+4>>2]+1,k=U(24),i[h+4>>2]=i[h+4>>2]+1,i[k+20>>2]=h,i[k+16>>2]=A,r=i[e+8>>2],A=i[e+12>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[k+12>>2]=A,i[k+8>>2]=r,r=i[e>>2],e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[k+4>>2]=e,i[k>>2]=r,i[u>>2]=k,e=i[h+4>>2],i[h+4>>2]=e-1,e))break i;V[i[i[h>>2]+8>>2]](h),g(h)}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[h+4>>2],i[h+4>>2]=f-1,f||(V[i[i[h>>2]+8>>2]](h),g(h)),B=_+16|0}function Zn(f,e,r,A,k,n,t,o,u,h){var w=0,_=0,v=0;w=B-16|0,B=w;i:{if(f){f=x0(r,99944);r:{if(e){e=w+4|0,V[i[i[f>>2]+44>>2]](e,f),r=i[w+4>>2],l[A|0]=r,l[A+1|0]=r>>>8,l[A+2|0]=r>>>16,l[A+3|0]=r>>>24,V[i[i[f>>2]+32>>2]](e,f);break r}e=w+4|0,V[i[i[f>>2]+40>>2]](e,f),r=i[w+4>>2],l[A|0]=r,l[A+1|0]=r>>>8,l[A+2|0]=r>>>16,l[A+3|0]=r>>>24,V[i[i[f>>2]+28>>2]](e,f)}r8(u,e),l1(e),_=k,v=V[i[i[f>>2]+12>>2]](f)|0,i[_>>2]=v,_=n,v=V[i[i[f>>2]+16>>2]](f)|0,i[_>>2]=v,e=w+4|0,V[i[i[f>>2]+20>>2]](e,f),q1(t,e),z0(e),V[i[i[f>>2]+24>>2]](e,f),r8(o,e),l1(e),f=V[i[i[f>>2]+36>>2]](f)|0;break i}f=x0(r,99936);r:{if(e){e=w+4|0,V[i[i[f>>2]+44>>2]](e,f),r=i[w+4>>2],l[A|0]=r,l[A+1|0]=r>>>8,l[A+2|0]=r>>>16,l[A+3|0]=r>>>24,V[i[i[f>>2]+32>>2]](e,f);break r}e=w+4|0,V[i[i[f>>2]+40>>2]](e,f),r=i[w+4>>2],l[A|0]=r,l[A+1|0]=r>>>8,l[A+2|0]=r>>>16,l[A+3|0]=r>>>24,V[i[i[f>>2]+28>>2]](e,f)}r8(u,e),l1(e),_=k,v=V[i[i[f>>2]+12>>2]](f)|0,i[_>>2]=v,_=n,v=V[i[i[f>>2]+16>>2]](f)|0,i[_>>2]=v,e=w+4|0,V[i[i[f>>2]+20>>2]](e,f),q1(t,e),z0(e),V[i[i[f>>2]+24>>2]](e,f),r8(o,e),l1(e),f=V[i[i[f>>2]+36>>2]](f)|0}i[h>>2]=f,B=w+16|0}function c1(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0;u=B-16|0,B=u,A=i[f+60>>2],k=i[f+56>>2],o=A-k>>4;i:{if((A|0)==(k|0))break i;for(t=o>>>0<=1?1:o;;){if(i[k+(n<<4)>>2]==(e|0))break i;if(n=n+1|0,(t|0)==(n|0))break}n=t}if((n|0)==(o|0)){k=f+56|0,i[u+12>>2]=0,i[u+4>>2]=0,i[u+8>>2]=0,i[u>>2]=e;i:{if(A>>>0>2]){i[A+12>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=e,i[f+60>>2]=A+16;break i}if(t=Nn(k,u),e=i[u+4>>2],i[f+60>>2]=t,!e)break i;i[u+8>>2]=e,G(e)}k=i[k>>2]}i:{r:{t=(n<<4)+k|0,n=i[t+8>>2],k=i[t+12>>2];e:{if(n>>>0>>0){f=Q[r>>1]|Q[r+2>>1]<<16,X[n>>1]=f,X[n+2>>1]=f>>>16,f=n+4|0;break e}if(e=i[t+4>>2],A=n-e>>2,f=A+1|0,f>>>0>=1073741824)break r;if(k=k-e|0,o=k>>1,o=k>>>0>=2147483644?1073741823:f>>>0>>0?o:f,o){if(o>>>0>=1073741824)break i;k=U(o<<2)}else k=0;if(A=k+(A<<2)|0,f=Q[r>>1]|Q[r+2>>1]<<16,X[A>>1]=f,X[A+2>>1]=f>>>16,f=A+4|0,(e|0)!=(n|0)){for(;A=A-4|0,n=n-4|0,r=Q[n>>1]|Q[n+2>>1]<<16,X[A>>1]=r,X[A+2>>1]=r>>>16,(e|0)!=(n|0););e=i[t+4>>2]}if(i[t+12>>2]=k+(o<<2),i[t+8>>2]=f,i[t+4>>2]=A,!e)break e;G(e)}i[t+8>>2]=f,B=u+16|0;return}y0(),P()}_2(),P()}function pn(f,e){var r=0,A=0;s[f|0]&&(r=f,A=u0(e,2),l[r+1|0]=A,r=f,A=u0(e,1),l[r+2|0]=A,r=f,A=u0(e,5),i[r+4>>2]=A,r=f,A=u0(e,1),l[r+8|0]=A,r=f,A=u0(e,1),l[r+9|0]=A,r=f,A=u0(e,1),l[r+10|0]=A,r=f,A=u0(e,1),l[r+11|0]=A,r=f,A=u0(e,1),l[r+12|0]=A,r=f,A=u0(e,1),l[r+13|0]=A,r=f,A=u0(e,1),l[r+14|0]=A,r=f,A=u0(e,1),l[r+15|0]=A,r=f,A=u0(e,1),l[r+16|0]=A,r=f,A=u0(e,1),l[r+17|0]=A,r=f,A=u0(e,1),l[r+18|0]=A,r=f,A=u0(e,1),l[r+19|0]=A,r=f,A=u0(e,1),l[r+20|0]=A,r=f,A=u0(e,1),l[r+21|0]=A,r=f,A=u0(e,1),l[r+22|0]=A,r=f,A=u0(e,1),l[r+23|0]=A,r=f,A=u0(e,1),l[r+24|0]=A,r=f,A=u0(e,1),l[r+25|0]=A,r=f,A=u0(e,1),l[r+26|0]=A,r=f,A=u0(e,1),l[r+27|0]=A,r=f,A=u0(e,1),l[r+28|0]=A,r=f,A=u0(e,1),l[r+29|0]=A,r=f,A=u0(e,1),l[r+30|0]=A,r=f,A=u0(e,1),l[r+31|0]=A,r=f,A=u0(e,1),l[r+32|0]=A,r=f,A=u0(e,1),l[r+33|0]=A,r=f,A=u0(e,1),l[r+34|0]=A,r=f,A=u0(e,1),l[r+35|0]=A,r=f,A=u0(e,1),l[r+36|0]=A,r=f,A=u0(e,1),l[r+37|0]=A,r=f,A=u0(e,1),l[r+38|0]=A,r=f,A=u0(e,1),l[r+39|0]=A,r=f,A=u0(e,1),l[r+40|0]=A,r=f,A=u0(e,1),l[r+41|0]=A,r=f,A=u0(e,1),l[r+42|0]=A,r=f,A=u0(e,1),l[r+43|0]=A,ni(e,44)),s[f+44|0]&&(r=f,A=u0(e,8),i[r+48>>2]=A)}function Wn(f,e,r,A,k,n,t,o,u,h){var w=0,_=0,v=0;w=B-16|0,B=w;i:{if(f){f=x0(r,99928);r:{if(e){e=w+4|0,V[i[i[f>>2]+44>>2]](e,f),r=i[w+4>>2],l[A|0]=r,l[A+1|0]=r>>>8,l[A+2|0]=r>>>16,l[A+3|0]=r>>>24,V[i[i[f>>2]+32>>2]](e,f);break r}e=w+4|0,V[i[i[f>>2]+40>>2]](e,f),r=i[w+4>>2],l[A|0]=r,l[A+1|0]=r>>>8,l[A+2|0]=r>>>16,l[A+3|0]=r>>>24,V[i[i[f>>2]+28>>2]](e,f)}q1(u,e),z0(e),_=k,v=V[i[i[f>>2]+12>>2]](f)|0,l[_|0]=v,_=n,v=V[i[i[f>>2]+16>>2]](f)|0,l[_|0]=v,e=w+4|0,V[i[i[f>>2]+20>>2]](e,f),q1(t,e),z0(e),V[i[i[f>>2]+24>>2]](e,f),q1(o,e),z0(e),f=V[i[i[f>>2]+36>>2]](f)|0;break i}f=x0(r,99920);r:{if(e){e=w+4|0,V[i[i[f>>2]+44>>2]](e,f),r=i[w+4>>2],l[A|0]=r,l[A+1|0]=r>>>8,l[A+2|0]=r>>>16,l[A+3|0]=r>>>24,V[i[i[f>>2]+32>>2]](e,f);break r}e=w+4|0,V[i[i[f>>2]+40>>2]](e,f),r=i[w+4>>2],l[A|0]=r,l[A+1|0]=r>>>8,l[A+2|0]=r>>>16,l[A+3|0]=r>>>24,V[i[i[f>>2]+28>>2]](e,f)}q1(u,e),z0(e),_=k,v=V[i[i[f>>2]+12>>2]](f)|0,l[_|0]=v,_=n,v=V[i[i[f>>2]+16>>2]](f)|0,l[_|0]=v,e=w+4|0,V[i[i[f>>2]+20>>2]](e,f),q1(t,e),z0(e),V[i[i[f>>2]+24>>2]](e,f),q1(o,e),z0(e),f=V[i[i[f>>2]+36>>2]](f)|0}i[h>>2]=f,B=w+16|0}function T_(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0;n=B-32|0,B=n,f=i[f>>2],o=i[f+48>>2],u=i[f+52>>2],u&&(i[u+4>>2]=i[u+4>>2]+1),i[n+28>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,I1(n,o,e,n+20|0);i:{if(i[n>>2]||(f=i[n+20>>2],h=i[n+24>>2],(f|0)==(h|0)))break i;e=!A;r:{if(!r){if(e)break r;for(o=1;r=e,(k|0)>(t|0)&&(i[(t<<2)+A>>2]=o,r=1),o=o+1|0,t=r+t|0,f=f+8|0,(h|0)!=(f|0););break i}if(!A){for(;;)if(t=(e&i[i[f>>2]+16>>2]==(r|0))+t|0,f=f+8|0,(h|0)==(f|0))break i}for(o=1;;){e:{if(i[i[f>>2]+16>>2]!=(r|0))break e;if((k|0)>(t|0)){i[(t<<2)+A>>2]=o,t=t+1|0;break e}t=e+t|0}if(o=o+1|0,f=f+8|0,(h|0)==(f|0))break}break i}t=((h-f|0)-8>>>3|0)+1|0}if(l[n+19|0]<0&&G(i[n+8>>2]),r=i[n+20>>2],r){if(f=i[n+24>>2],e=r,(f|0)!=(e|0)){for(;;){e=i[f-4>>2];i:{if(!e||(A=i[e+4>>2],i[e+4>>2]=A-1,A))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(f=f-8|0,(r|0)==(f|0))break}e=i[n+20>>2]}i[n+24>>2]=r,G(e)}i:{if(!u||(f=i[u+4>>2],i[u+4>>2]=f-1,f))break i;V[i[i[u>>2]+8>>2]](u),g(u)}return B=n+32|0,t|0}function a_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-32|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(A,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(k=i[19565],i[A>>2]=i[19564],i[A+4>>2]=k,k=A+8|0,l[78275]>=0){n=i[19567],i[k>>2]=i[19566],i[k+4>>2]=n,i[k+8>>2]=i[19568];break i}_0(k,i[19566],i[19567])}l[A+19|0]<0&&G(i[A+8>>2]);i:{if(s[e+48|0]){h4(f,e,7012);break i}n=i[e+52>>2]>>>8|0,i[e+104>>2]=n&31,k=1,t=+(1<>>0),o=e,u=+(D0(r)|0)/t,i0[o+56>>3]=u,o=e,u=+(D0(r)|0)/t,i0[o+64>>3]=u,o=e,u=+(D0(r)|0)/t,i0[o+72>>3]=u,n=i[e+52>>2];r:{if(n&1){n=n>>>16|0,i[e+108>>2]=n&31,o=e,u=+(D0(r)|0)/t,i0[o+88>>3]=u,t=+(D0(r)|0)/+(1<>>0);break r}i[e+88>>2]=0,i[e+92>>2]=0,k=0,t=0}if(i0[e+96>>3]=t,l[e+80|0]=k,s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(f,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function S_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;u=B-16|0,B=u;i:{r:{e:{if(!i[r+16>>2])break e;for(;;){if(s[r+20|0])break e;o=t2(r),w=B2(r),_=B2(r),k=i[e+52>>2],A=i[e+56>>2];A:{if(k>>>0>>0){n=o|(_<<24|w<<16),X[k>>1]=n,X[k+2>>1]=n>>>16,o=k+4|0;break A}if(h=i[e+48>>2],t=k-h>>2,n=t+1|0,n>>>0>=1073741824)break r;if(v=t<<2,A=A-h|0,t=A>>1,t=A>>>0>=2147483644?1073741823:t>>>0>n>>>0?t:n,t){if(t>>>0>=1073741824)break i;n=U(t<<2)}else n=0;if(A=v+n|0,o=o|(_<<24|w<<16),X[A>>1]=o,X[A+2>>1]=o>>>16,o=A+4|0,(k|0)!=(h|0)){for(;A=A-4|0,k=k-4|0,w=Q[k>>1]|Q[k+2>>1]<<16,X[A>>1]=w,X[A+2>>1]=w>>>16,(k|0)!=(h|0););h=i[e+48>>2]}if(i[e+56>>2]=n+(t<<2),i[e+52>>2]=o,i[e+48>>2]=A,!h)break A;G(h)}if(i[e+52>>2]=o,!i[r+16>>2])break}}e:{if(s[r+20|0]==1){if(l[u+4|0]=0,l[u+15|0]=0,r0(f,2,100,u+4|0),l[u+15|0]>=0)break e;G(i[u+4>>2]);break e}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break e}_0(f,i[19566],i[19567])}B=u+16|0;return}y0(),P()}_2(),P()}function Xn(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;A=B-32|0,B=A;i:{if(s[f+52|0]==1){if(r=i[f+48>>2],!e)break i;l[f+52|0]=0,i[f+48>>2]=-1;break i}r:{if(s[f+53|0]==1){if(r=y6(i[f+32>>2]),(r|0)!=-1&&(l[A+24|0]=r),(r|0)==-1)break r;r=s[A+24|0];e:{if(!e){if(!yo(r,i[f+32>>2]))break r;break e}i[f+48>>2]=r}r=s[A+24|0];break i}for(i[A+24>>2]=1,k=B-16|0,B=k,B=k+16|0,k=f+44|0,n=A+24|0,k=i[(i[n>>2]>2]?k:n)>>2],n=(k|0)>0?k:0;;){if((r|0)!=(n|0)){if(t=y6(i[f+32>>2]),(t|0)==-1)break r;l[(A+24|0)+r|0]=t,r=r+1|0;continue}break}h=A+24|0;e:{for(;;){A:{n=i[f+40>>2],r=i[n>>2],w=i[n+4>>2],o=A+24|0,t=o+k|0;f:switch(u=i[f+36>>2],(V[i[i[u>>2]+16>>2]](u,n,o,t,A+16|0,A+23|0,h,A+12|0)|0)-1|0){case 2:break A;case 0:break f;case 1:break r;default:break e}if(n=i[f+40>>2],i[n>>2]=r,i[n+4>>2]=w,(k|0)==8||(r=y6(i[f+32>>2]),(r|0)==-1))break r;l[t|0]=r,k=k+1|0;continue}break}l[A+23|0]=s[A+24|0]}e:{if(!e)for(;;){if((k|0)<=0)break e;if(k=k-1|0,(gi(s[k+(A+24|0)|0],i[f+32>>2])|0)==-1)break r}i[f+48>>2]=s[A+23|0]}r=s[A+23|0];break i}r=-1}return B=A+32|0,r}function YA(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0;t=B-32|0,B=t,k=A&65535,n=A>>>16&32767,u=n;i:{if(n-15361>>>0<=2045){k=k<<4|r>>>28,r=r<<4,n=k,k=e>>>28|r,r=n,n=u-15360|0,e=e&268435455;r:{if((e|0)==134217728&(f|0)!=0|e>>>0>134217728){k=k+1|0,r=k?r:r+1|0;break r}if(f|(e|0)!=134217728)break r;f=k,k=k+(k&1)|0,r=f>>>0>k>>>0?r+1|0:r}o=r>>>0>1048575,f=o?0:k,e=o?0:r,k=0,r=n+o|0,n=r>>>0>>0?1:k;break i}if(!(!(f|r|(e|k))|((n|0)!=32767|(o|0)!=0))){f=r,r=k<<4|r>>>28,f=f<<4|e>>>28,e=r|524288,r=2047,n=0;break i}if(u>>>0>17406){f=0,e=0,r=2047,n=0;break i}if(o=!(n|o),h=o?15360:15361,n=h-u|0,(n|0)>112){f=0,e=0,r=0,n=0;break i}k=o?k:k|65536,L1(t+16|0,f,e,r,k,128-n|0),ti(t,f,e,r,k,n),f=i[t+8>>2],o=f<<4,e=i[t+12>>2]<<4|f>>>28,f=i[t+4>>2],n=f,f=f>>>28|o,n=n&268435455,r=i[t>>2]|(u|0)!=(h|0)&(i[t+16>>2]|i[t+24>>2]|(i[t+20>>2]|i[t+28>>2]))!=0;r:{if((n|0)==134217728&(r|0)!=0|n>>>0>134217728){f=f+1|0,e=f?e:e+1|0;break r}if(r|(n|0)!=134217728)break r;k=e,e=f,f=f+(f&1)|0,e=e>>>0>f>>>0?k+1|0:k}r=e>>>0>1048575,e=r?e^1048576:e,n=0}return B=t+32|0,N2(0,f|0),N2(1,e|(A&-2147483648|r<<20)),+m1()}function O_(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=+k;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;n=B-208|0,B=n,i[n+200>>2]=37,i[n+204>>2]=0,t=n+200|0,o=Ae(t|1,31341,i[r+4>>2]),u=n+160|0,i[n+156>>2]=u,f=M2();i:{if(o){h=i[r+8>>2],i0[n+40>>3]=k,i[n+32>>2]=h,f=b1(u,30,f,t,n+32|0);break i}i0[n+48>>3]=k,f=b1(n+160|0,30,f,n+200|0,n+48|0)}i[n+80>>2]=1094,u=o1(n+148|0,0,n+80|0),t=n+160|0;i:{r:{if((f|0)>=30){f=M2();e:{if(o){t=i[r+8>>2],i0[n+8>>3]=k,i[n>>2]=t,f=c4(n+156|0,f,n+200|0,n);break e}i0[n+16>>3]=k,f=c4(n+156|0,f,n+200|0,n+16|0)}if((f|0)==-1)break r;t=i[u>>2],i[u>>2]=i[n+156>>2],t&&V[i[u+4>>2]](t),t=i[n+156>>2]}_=f+t|0,v=X4(t,_,r),i[n+80>>2]=1094,t=n+80|0,o=o1(n+72|0,0,t),h=i[n+156>>2];e:{if((h|0)==(n+160|0)){f=t;break e}if(f=Z2(f<<1),!f)break r;t=i[o>>2],i[o>>2]=f,t&&V[i[o+4>>2]](t),h=i[n+156>>2]}w=n+60|0,t=i[r+28>>2],i[w>>2]=t,(t|0)!=100008&&(i[t+4>>2]=i[t+4>>2]+1),dk(h,v,_,f,n+68|0,n- -64|0,w),O0(w),f=G8(e,f,i[n+68>>2],i[n+64>>2],r,A),e=i[o>>2],i[o>>2]=0,e&&V[i[o+4>>2]](e),e=i[u>>2],i[u>>2]=0,e&&V[i[u+4>>2]](e),B=n+208|0;break i}u1(),P()}return f|0}function j_(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=+k;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;n=B-368|0,B=n,i[n+360>>2]=37,i[n+364>>2]=0,t=n+360|0,o=Ae(t|1,31341,i[r+4>>2]),u=n+320|0,i[n+316>>2]=u,f=M2();i:{if(o){h=i[r+8>>2],i0[n+40>>3]=k,i[n+32>>2]=h,f=b1(u,30,f,t,n+32|0);break i}i0[n+48>>3]=k,f=b1(n+320|0,30,f,n+360|0,n+48|0)}i[n+80>>2]=1094,u=o1(n+308|0,0,n+80|0),t=n+320|0;i:{r:{if((f|0)>=30){f=M2();e:{if(o){t=i[r+8>>2],i0[n+8>>3]=k,i[n>>2]=t,f=c4(n+316|0,f,n+360|0,n);break e}i0[n+16>>3]=k,f=c4(n+316|0,f,n+360|0,n+16|0)}if((f|0)==-1)break r;t=i[u>>2],i[u>>2]=i[n+316>>2],t&&V[i[u+4>>2]](t),t=i[n+316>>2]}_=f+t|0,v=X4(t,_,r),i[n+80>>2]=1094,t=n+80|0,o=o1(n+72|0,0,t),h=i[n+316>>2];e:{if((h|0)==(n+320|0)){f=t;break e}if(f=Z2(f<<3),!f)break r;t=i[o>>2],i[o>>2]=f,t&&V[i[o+4>>2]](t),h=i[n+316>>2]}w=n+60|0,t=i[r+28>>2],i[w>>2]=t,(t|0)!=100008&&(i[t+4>>2]=i[t+4>>2]+1),bk(h,v,_,f,n+68|0,n- -64|0,w),O0(w),f=X8(e,f,i[n+68>>2],i[n+64>>2],r,A),e=i[o>>2],i[o>>2]=0,e&&V[i[o+4>>2]](e),e=i[u>>2],i[u>>2]=0,e&&V[i[u+4>>2]](e),B=n+368|0;break i}u1(),P()}return f|0}function P_(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0;e=B+-64|0,B=e;i:{if(i[r+12>>2]<=8){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!(i[r>>2]==1&i[r+4>>2]==3)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(n=Q[A+24>>1],!(n>>>0>14|!(1<>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,l[e+44|0]=0,i[e+36>>2]=99,i[e+40>>2]=99,i[e+48>>2]=8,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,n=i[A+4>>2];r:{if(!((n|0)==3|(s[k+12|0]?i[k+4>>2]!=1:0))){i[e+40>>2]=n,i[e+36>>2]=0;break r}i[e+36>>2]=0,i[e+40>>2]=3}l[e+44|0]=s[r+8|0],i[e+48>>2]=i[r+12>>2],r=s[A+23|0]|s[A+24|0]<<8|(s[A+25|0]<<16|s[A+26|0]<<24),l[e+59|0]=r,l[e+60|0]=r>>>8,l[e+61|0]=r>>>16,l[e+62|0]=r>>>24,i[e+56>>2]=i[A+20>>2],r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,r=i[e+40>>2],i[e>>2]=i[e+36>>2],i[e+4>>2]=r,i[e+16>>2]=72992,r=s[A+23|0]|s[A+24|0]<<8|(s[A+25|0]<<16|s[A+26|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,r=i[A+20>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)}B=e- -64|0}function L_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0;n=B-32|0,B=n,o=V[i[i[e>>2]+32>>2]](e,r,0)|0,A=s[e+48|0];i:{if(A>>>0<=1&&(w2(r,Q[e+56>>1]),w2(r,Q[e+60>>1]),R4(r,e+76|0),R4(r,e+88|0),R4(r,e+100|0),A=s[e+48|0],A>>>0<2))break i;r:{e:switch(A-2|0){case 0:w2(r,Q[e+56>>1]);break r;case 1:break e;default:break r}l2(r,i[e+56>>2])}if(w2(r,Q[e+60>>1]),A=e- -64|0,t=l[e+75|0],k=(t|0)<0,(k?i[e+68>>2]:t)?(k=k?i[A>>2]:A,k=l[k+1|0]<<16|s[k|0]<<24|l[k+2|0]<<8|l[k+3|0]):k=0,l2(r,k),R4(r,e+76|0),t=l[e+75|0],k=(t|0)<0,((k?i[e+68>>2]:t)|0)!=4)break i;A=k?i[A>>2]:A;r:{if((s[A|0]|s[A+1|0]<<8|(s[A+2|0]<<16|s[A+3|0]<<24))==1701669229){R4(r,e+88|0),A=100;break r}if((s[A|0]|s[A+1|0]<<8|(s[A+2|0]<<16|s[A+3|0]<<24))!=543781493)break i;A=112}R4(r,A+e|0)}i[r+12>>2]=o,V[i[i[e>>2]+36>>2]](n+12|0,e,r,i[r+4>>2]-(i[r>>2]+o|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[n+31|0]<0&&G(i[n+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=n+32|0}function Gn(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0;o=B-16|0,B=o;i:{r:{if(!r|(!f|!e))break r;if(f=i[f>>2],i[o+12>>2]=0,i[o+4>>2]=0,i[o+8>>2]=0,A=i[f+28>>2],n=i[f+32>>2],(A|0)!=(n|0)){if(f=n-A|0,(f|0)<0)break i;for(t=U(f),i[o+4>>2]=t,i[o+12>>2]=f+t,f=t;i[f>>2]=i[A>>2],k=i[A+4>>2],i[f+4>>2]=k,k&&(i[k+4>>2]=i[k+4>>2]+1),f=f+8|0,A=A+8|0,(n|0)!=(A|0););i[o+8>>2]=f,A=f-t>>3,k=(r|0)>(A|0)?A:r;e:{if((k|0)<=0)break e;if(r=0,A=0,k>>>0>=4)for(h=k&2147483644,n=0;i[(A<<2)+e>>2]=i[i[(A<<3)+t>>2]+20>>2],u=A|1,i[(u<<2)+e>>2]=i[i[(u<<3)+t>>2]+20>>2],u=A|2,i[(u<<2)+e>>2]=i[i[(u<<3)+t>>2]+20>>2],u=A|3,i[(u<<2)+e>>2]=i[i[(u<<3)+t>>2]+20>>2],A=A+4|0,n=n+4|0,(h|0)!=(n|0););if(n=k&3,!n)break e;for(;i[(A<<2)+e>>2]=i[i[(A<<3)+t>>2]+20>>2],A=A+1|0,r=r+1|0,(n|0)!=(r|0););}for(;;){e=f-8|0,f=i[f-4>>2];e:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break e;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=e,(t|0)==(f|0))break}G(i[o+4>>2]);break r}k=r>>31&r}return B=o+16|0,k|0}y0(),P()}function K_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0;t=B-16|0,B=t;i:{r:{if(!e){r=0;break r}if(f=i[f>>2],i[t+12>>2]=0,i[t+4>>2]=0,i[t+8>>2]=0,A=i[f+36>>2],k=i[f+40>>2],(A|0)!=(k|0)){if(f=k-A|0,(f|0)<0)break i;for(n=U(f),i[t+4>>2]=n,i[t+12>>2]=f+n,f=n;i[f>>2]=i[A>>2],o=i[A+4>>2],i[f+4>>2]=o,o&&(i[o+4>>2]=i[o+4>>2]+1),f=f+8|0,A=A+8|0,(k|0)!=(A|0););i[t+8>>2]=f,A=f-n>>3,r=(r|0)>(A|0)?A:r;e:{if((r|0)<=0)break e;if(o=0,A=0,r>>>0>=4)for(h=r&2147483644,k=0;i[(A<<2)+e>>2]=i[i[(A<<3)+n>>2]+20>>2],u=A|1,i[(u<<2)+e>>2]=i[i[(u<<3)+n>>2]+20>>2],u=A|2,i[(u<<2)+e>>2]=i[i[(u<<3)+n>>2]+20>>2],u=A|3,i[(u<<2)+e>>2]=i[i[(u<<3)+n>>2]+20>>2],A=A+4|0,k=k+4|0,(h|0)!=(k|0););if(k=r&3,!k)break e;for(;i[(A<<2)+e>>2]=i[i[(A<<3)+n>>2]+20>>2],A=A+1|0,o=o+1|0,(k|0)!=(o|0););}for(;;){e=f-8|0,f=i[f-4>>2];e:{if(!f||(A=i[f+4>>2],i[f+4>>2]=A-1,A))break e;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=e,(n|0)==(f|0))break}G(i[t+4>>2]);break r}r=r>>31&r}return B=t+16|0,r|0}y0(),P()}function q_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-80|0,B=A,n=-1;i:{if(!f|(e|0)<=0|(!r|!s[r|0])||!s[r+3|0]|(!s[r+1|0]|!s[r+2|0]))break i;k=U(48),i[k+4>>2]=0,i[k+8>>2]=0,i[k>>2]=72912,f=W3(k+16|0,f,e,0),i[A+52>>2]=k,i[A+48>>2]=f,i[k+4>>2]=i[k+4>>2]+1,f=i[A+52>>2],i[A+8>>2]=i[A+48>>2],i[A+12>>2]=f,t=_e(A+56|0,A+8|0,e,0),i[A+40>>2]=0,i[A+44>>2]=0,_r(A+20|0,t,A+40|0);r:{if(i[A+20>>2]){n=i[A+24>>2]==100?-1:-2;break r}if(n=-2,f=i[A+40>>2],!f||(e=N0(f,68572,68764),!e)||(f=i[A+44>>2],f&&(i[f+4>>2]=i[f+4>>2]+1),n=e,e=s[r|0]|s[r+1|0]<<8|(s[r+2|0]<<16|s[r+3|0]<<24),n=_i(n,e<<24|(e&65280)<<8|(e>>>8&65280|e>>>24)),!f)||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}l[A+39|0]<0&&G(i[A+28>>2]),f=i[A+44>>2];r:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[t+4>>2];r:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(f=i[k+4>>2],i[k+4>>2]=f-1,f)break i;V[i[i[k>>2]+8>>2]](k),g(k)}return B=A+80|0,n|0}function x(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;o=B-16|0,B=o,_=V1(o+4|0,f);i:{if(s[_|0]!=1)break i;u=e+r|0,t=i[i[f>>2]-12>>2]+f|0,h=(i[t+4>>2]&176)==32?u:e,k=i[t+24>>2],r=i[t+76>>2],(r|0)==-1&&(A=o+12|0,r=i[t+28>>2],i[A>>2]=r,(r|0)!=100008&&(i[r+4>>2]=i[r+4>>2]+1),r=x0(A,100192),r=V[i[i[r>>2]+28>>2]](r,32)|0,O0(A),i[t+76>>2]=r),v=r<<24>>24,r=0,A=B-16|0,B=A;r:{e:{A:{if(!k||(n=i[t+12>>2],w=h-e|0,(w|0)>0&&(V[i[i[k>>2]+48>>2]](k,e,w)|0)!=(w|0)))break A;if(e=u-e|0,e=(e|0)<(n|0)?n-e|0:0,(e|0)>0){if(e>>>0>=2147483640)break e;f:{if(e>>>0>=11){r=(e|7)+1|0,n=U(r),i[A+12>>2]=r|-2147483648,i[A+4>>2]=n,i[A+8>>2]=e;break f}l[A+15|0]=e,n=A+4|0}if(r=0,Z=B0(n,v,e)+e|0,p=0,l[Z|0]=p,n=V[i[i[k>>2]+48>>2]](k,l[A+15|0]<0?i[A+4>>2]:A+4|0,e)|0,l[A+15|0]<0&&G(i[A+4>>2]),(e|0)!=(n|0))break A}f:{if(e=u-h|0,(e|0)<=0||(V[i[i[k>>2]+48>>2]](k,h,e)|0)==(e|0))break f;break A}i[t+12>>2]=0,r=k}B=A+16|0;break r}c2(),P()}if(r)break i;e=i[i[f>>2]-12>>2]+f|0,z1(e,i[e+16>>2]|5)}return Z1(_),B=o+16|0,f}function Cn(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;i[f>>2]=0,i[f+4>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f+24>>2]=0,i[f+28>>2]=0,i[f+16>>2]=0,i[f+20>>2]=0,i[f+8>>2]=0,i[f+12>>2]=0;i:{if(s[e+12|0]==1){r=i0[e+24>>3],A=i0[e+32>>3],o=r*A,k=i0[e+16>>3],t=i0[e+40>>3],h=k*t,n=o-h,i0[f+40>>3]=n+n,n=k*r,w=A*t,u=n+w,i0[f+24>>3]=u+u,u=k*A,t=r*t,_=u+t,i0[f+16>>3]=_+_,n=n-w,i0[f+8>>3]=n+n,k=k*k,A=A*A,n=k+A,i0[f+32>>3]=1-(n+n),n=r*r,r=n+A,i0[f>>3]=1-(r+r),A=k+n,A=1-(A+A),k=o+h,k=k+k,r=u-t,r=r+r;break i}r=i0[e+56>>3]*.017453292519943295,k=A3(r),t=e3(r),A=i0[e+48>>3]*.017453292519943295,r=A3(A),A=e3(A),o=i0[e+64>>3],n=t*0,p=n+(0-k),h=p*0,w=k*0+(t+0),i0[f+24>>3]=h+(r*w+A*0),i0[f>>3]=h+(A*w+r*-0),o=o*.017453292519943295,h=e3(o),v=k*-0,o=A3(o),u=o*-0,W=t*h+(v+u),C=W*0,u=k*h+(n+u),_=h*0,Z=_+(0-o),i0[f+40>>3]=C+(r*u+A*Z),v=t*o+(v+_),I=v*0,k=k*o+(n+_),t=o*0+(h+0),i0[f+32>>3]=I+(r*k+A*t),i0[f+16>>3]=C+(A*u-Z*r),i0[f+8>>3]=I+(A*k-t*r),A=W+(u*0+Z*0),k=v+(k*0+t*0),r=p+(w*0+0)}i0[f+64>>3]=A,i0[f+56>>3]=k,i0[f+48>>3]=r}function Vn(f,e){var r=0,A=0,k=0,n=0,t=0;r=B-144|0,B=r;i:{r:{if(A=i[e+16>>2],(A|0)==1970628964){for(i[r+60>>2]=54820,A=i[13708],i[r+4>>2]=A,k=i[A-12>>2],A=r+4|0,i[k+A>>2]=i[13709],n=A+i[i[r+4>>2]-12>>2]|0,k=r+8|0,b0(n,k),i[n+72>>2]=0,i[n+76>>2]=-1,i[r+60>>2]=54820,i[r+4>>2]=54800,n=$0(k),i[n>>2]=53552,i[r+48>>2]=0,i[r+52>>2]=0,i[r+40>>2]=0,i[r+44>>2]=0,i[r+56>>2]=16,k=i[r+4>>2]-12|0,t=A+i[k>>2]|0,i[t+4>>2]=i[t+4>>2]&-75|8,k=A+i[k>>2]|0,i[k+76>>2]==-1&&(t=r+140|0,A=i[k+28>>2],i[t>>2]=A,(A|0)!=100008&&(i[A+4>>2]=i[A+4>>2]+1),A=x0(t,100192),V[i[i[A>>2]+28>>2]](A,32)|0,O0(t)),t=r+60|0,i[k+76>>2]=48,k=r+16|0,A=0;;){e:switch((A&13)-4|0){case 0:case 4:l[r+140|0]=45,x(r+4|0,r+140|0,1);break;default:break e}if(i[k+i[i[r+4>>2]-12>>2]>>2]=2,H0(r+4|0,s[i[e+20>>2]+A|0]),A=A+1|0,(A|0)==16)break}break r}l[f+4|0]=0,l[f+11|0]=4,l[f+3|0]=A,l[f+2|0]=A>>>8,l[f+1|0]=A>>>16,l[f|0]=A>>>24;break i}i2(f,n),f=i[13707],i[r+4>>2]=f,i[i[f-12>>2]+(r+4|0)>>2]=i[13710],i[n>>2]=53552,l[r+51|0]<0&&G(i[r+40>>2]),K0(n),T0(t)}B=r+144|0}function $_(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,t=i[13708],i[A+12>>2]=t,k=A+12|0,i[k+i[t-12>>2]>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),o=k,u=n,k=l[A+159|0],n=(k|0)<0,x(o,n?i[A+148>>2]:u,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=i[e+12>>2];i:{if(!k&k0[e+8>>2]>=k0[e+32>>2]|k){k=A+148|0,W0(k,r),n=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:n,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=x(A+12|0,19971,22),k=i[e+8>>2],n=i[e+32>>2],x(n4(r,k-n|0,i[e+12>>2]-(k>>>0>>0)|0),31338,1);break i}e=A+148|0,W0(e,r),k=e,e=l[A+159|0],r=(e|0)<0,x(A+12|0,r?i[A+148>>2]:k,r?i[A+152>>2]:e),l[A+159|0]<0&&G(i[A+148>>2]),x(A+12|0,22249,32)}i2(f,t),f=i[13707],i[A+12>>2]=f,i[i[f-12>>2]+(A+12|0)>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function b_(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0;o=B-160|0,B=o;i:{r:{if(u=i[e+16>>2],!u||(w=N0(u,72776,73212),!w))break r;if(u=i[e+20>>2],u&&(i[u+4>>2]=i[u+4>>2]+1),h=i[e>>2],i[o+104>>2]=i[h+48>>2],h=i[h+52>>2],i[o+108>>2]=h,h&&(i[h+4>>2]=i[h+4>>2]+1),e=i[e+8>>2],h=i[e+8>>2],_=i[e+4>>2],e=i[o+108>>2],i[o+32>>2]=i[o+104>>2],i[o+36>>2]=e,e=o+112|0,pr(e,o+32|0,r,_,h),i0[o+72>>3]=i[w+4>>2],i0[o+80>>3]=i[w+8>>2],r=i[o+84>>2],i[o+24>>2]=i[o+80>>2],i[o+28>>2]=r,r=i[o+76>>2],i[o+16>>2]=i[o+72>>2],i[o+20>>2]=r,me(o+88|0,e,o+16|0),i0[o+40>>3]=k0[w+12>>2],i0[o+48>>3]=k0[w+16>>2],r=i[o+52>>2],i[o+8>>2]=i[o+48>>2],i[o+12>>2]=r,r=i[o+44>>2],i[o>>2]=i[o+40>>2],i[o+4>>2]=r,It(o+56|0,e,o),i0[A>>3]=i0[o+88>>3],i0[k>>3]=i0[o+96>>3],i0[n>>3]=i0[o+56>>3],i0[t>>3]=i0[o+64>>3],i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,!u||(f=i[u+4>>2],i[u+4>>2]=f-1,f))break i;V[i[i[u>>2]+8>>2]](u),g(u);break i}e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560]}B=o+160|0}function d_(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0;o=B-160|0,B=o;i:{r:{if(u=i[e+16>>2],!u||(w=N0(u,72776,73256),!w))break r;if(u=i[e+20>>2],u&&(i[u+4>>2]=i[u+4>>2]+1),h=i[e>>2],i[o+104>>2]=i[h+48>>2],h=i[h+52>>2],i[o+108>>2]=h,h&&(i[h+4>>2]=i[h+4>>2]+1),e=i[e+8>>2],h=i[e+8>>2],_=i[e+4>>2],e=i[o+108>>2],i[o+32>>2]=i[o+104>>2],i[o+36>>2]=e,e=o+112|0,pr(e,o+32|0,r,_,h),i0[o+72>>3]=i[w+4>>2],i0[o+80>>3]=i[w+8>>2],r=i[o+84>>2],i[o+24>>2]=i[o+80>>2],i[o+28>>2]=r,r=i[o+76>>2],i[o+16>>2]=i[o+72>>2],i[o+20>>2]=r,me(o+88|0,e,o+16|0),i0[o+40>>3]=k0[w+12>>2],i0[o+48>>3]=k0[w+16>>2],r=i[o+52>>2],i[o+8>>2]=i[o+48>>2],i[o+12>>2]=r,r=i[o+44>>2],i[o>>2]=i[o+40>>2],i[o+4>>2]=r,It(o+56|0,e,o),i0[A>>3]=i0[o+88>>3],i0[k>>3]=i0[o+96>>3],i0[n>>3]=i0[o+56>>3],i0[t>>3]=i0[o+64>>3],i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,!u||(f=i[u+4>>2],i[u+4>>2]=f-1,f))break i;V[i[i[u>>2]+8>>2]](u),g(u);break i}e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560]}B=o+160|0}function D1(f,e){var r=0,A=0,k=0,n=0;k=(f|0)==(e|0),l[e+12|0]=k;i:{if(k)break i;for(;;){if(k=i[e+8>>2],s[k+12|0])break i;r:{if(r=i[k+8>>2],A=i[r>>2],(k|0)==(A|0)){if(n=i[r+4>>2],!(!n|s[n+12|0]==1)){A=n+12|0;break r}e:{if(i[k>>2]==(e|0)){e=k;break e}e=i[k+4>>2],A=i[e>>2],i[k+4>>2]=A,f=k,A&&(i[A+8>>2]=k,r=i[k+8>>2],f=i[r>>2]),i[e+8>>2]=r,i[(((f|0)!=(k|0))<<2)+r>>2]=e,i[e>>2]=k,i[k+8>>2]=e,r=i[e+8>>2],A=i[r>>2]}l[e+12|0]=1,l[r+12|0]=0,f=i[A+4>>2],i[r>>2]=f,f&&(i[f+8>>2]=r),f=i[r+8>>2],i[A+8>>2]=f,i[f+((i[f>>2]!=(r|0))<<2)>>2]=A,i[A+4>>2]=r,i[r+8>>2]=A;return}if(!(!A|s[A+12|0]==1)){A=A+12|0;break r}A=i[k>>2];e:{if((A|0)!=(e|0)){A=k;break e}f=i[A+4>>2],i[k>>2]=f,f&&(i[f+8>>2]=k,r=i[k+8>>2]),i[A+8>>2]=r,i[(((k|0)!=i[r>>2])<<2)+r>>2]=A,i[A+4>>2]=k,i[k+8>>2]=A,r=i[A+8>>2]}l[A+12|0]=1,l[r+12|0]=0,e=i[r+4>>2],f=i[e>>2],i[r+4>>2]=f,f&&(i[f+8>>2]=r),f=i[r+8>>2],i[e+8>>2]=f,i[f+((i[f>>2]!=(r|0))<<2)>>2]=e,i[e>>2]=r,i[r+8>>2]=e;break i}if(l[k+12|0]=1,l[r+12|0]=(f|0)==(r|0),l[A|0]=1,e=r,(f|0)==(r|0))break}}}function c_(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0;k=B-32|0,B=k,f=i[f>>2],o=i[f+48>>2],n=i[f+52>>2],n&&(i[n+4>>2]=i[n+4>>2]+1),i[k+28>>2]=0,i[k+20>>2]=0,i[k+24>>2]=0,I1(k,o,e,k+20|0);i:{if(i[k>>2]||(f=i[k+20>>2],o=i[k+24>>2],(f|0)==(o|0)))break i;if(e=!r,h=e,e){for(;;)if(e=i[i[f>>2]+16>>2],!((e|0)==1668047216|(e|0)==1769107316)&(e|0)!=1768778098||(t=t+h|0),f=f+8|0,(o|0)==(f|0))break i}for(e=1;;){u=i[i[f>>2]+16>>2];r:{if(!((u|0)==1668047216|(u|0)==1769107316)&(u|0)!=1768778098)break r;if((A|0)>(t|0)){i[(t<<2)+r>>2]=e,t=t+1|0;break r}t=t+h|0}if(e=e+1|0,f=f+8|0,(o|0)==(f|0))break}}if(l[k+19|0]<0&&G(i[k+8>>2]),r=i[k+20>>2],r){if(f=i[k+24>>2],e=r,(f|0)!=(e|0)){for(;;){e=i[f-4>>2];i:{if(!e||(A=i[e+4>>2],i[e+4>>2]=A-1,A))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(f=f-8|0,(r|0)==(f|0))break}e=i[k+20>>2]}i[k+24>>2]=r,G(e)}i:{if(!n||(f=i[n+4>>2],i[n+4>>2]=f-1,f))break i;V[i[i[n>>2]+8>>2]](n),g(n)}return B=k+32|0,t|0}function iv(f,e,r,A,k,n,t,o,u){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0;var h=0,w=0,_=0,v=0;h=B-32|0,B=h,w=i[f>>2],f=i[w+48>>2],w=i[w+52>>2],w&&(i[w+4>>2]=i[w+4>>2]+1),i[h+28>>2]=0,i[h+20>>2]=0,i[h+24>>2]=0,I1(h,f,e,h+20|0);i:{if(i[h>>2]||(f=r-1|0,e=i[h+20>>2],f>>>0>=i[h+24>>2]-e>>3>>>0)||(e=e+(f<<3)|0,f=i[e>>2],!f)||(f=N0(f,68572,69592),!f)||(e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),n&&(_=n,v=Ir(f,A),i[_>>2]=v),o&&(_=o,v=(Ln(f,A)^-1)+A|0,i[_>>2]=v),t&&(_=t,v=Vr(f,k),i[_>>2]=v),u&&(_=u,v=(Kn(f,k)^-1)+k|0,i[_>>2]=v),!e)||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(l[h+19|0]<0&&G(i[h+8>>2]),r=i[h+20>>2],r){if(f=i[h+24>>2],e=r,(f|0)!=(e|0)){for(;;){A=i[f-4>>2];i:{if(!A||(e=i[A+4>>2],i[A+4>>2]=e-1,e))break i;V[i[i[A>>2]+8>>2]](A),g(A)}if(f=f-8|0,(r|0)==(f|0))break}e=i[h+20>>2]}i[h+24>>2]=r,G(e)}i:{if(!w||(f=i[w+4>>2],i[w+4>>2]=f-1,f))break i;V[i[i[w>>2]+8>>2]](w),g(w)}B=h+32|0}function In(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0;k=B-112|0,B=k;i:{if(!A){e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560];break i}r:{if(n=i[e+16>>2],!n||(o=N0(n,72776,73300),!o))break r;if(n=i[e+20>>2],n&&(i[n+4>>2]=i[n+4>>2]+1),t=i[e>>2],i[k+56>>2]=i[t+48>>2],t=i[t+52>>2],i[k+60>>2]=t,t&&(i[t+4>>2]=i[t+4>>2]+1),e=i[e+8>>2],t=i[e+8>>2],e=i[e+4>>2],u=i[k+60>>2],i[k+16>>2]=i[k+56>>2],i[k+20>>2]=u,pr(k- -64|0,k+16|0,r,e,t),r=i[o+8>>2],(i[o+12>>2]-r|0)>0)for(e=0;r=(e<<3)+r|0,i0[k+24>>3]=i[r>>2],i0[k+32>>3]=i[r+4>>2],r=i[k+36>>2],i[k+8>>2]=i[k+32>>2],i[k+12>>2]=r,r=i[k+28>>2],i[k>>2]=i[k+24>>2],i[k+4>>2]=r,me(k+40|0,k- -64|0,k),r=(e<<4)+A|0,i0[r>>3]=i0[k+40>>3],i0[r+8>>3]=i0[k+48>>3],e=e+1|0,r=i[o+8>>2],(e|0)>2]-r>>3;);if(e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],!n||(f=i[n+4>>2],i[n+4>>2]=f-1,f))break i;V[i[i[n>>2]+8>>2]](n),g(n);break i}e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560]}B=k+112|0}function Qn(f,e,r){var A=Y(0),k=Y(0),n=Y(0),t=Y(0),o=Y(0),u=Y(0),h=Y(0),w=Y(0),_=Y(0),v=Y(0),Z=Y(0),p=Y(0),W=Y(0),C=Y(0),I=Y(0);i[f>>2]=0,i[f+4>>2]=0;i:{r:{if((e&65534)==12){if(e=r-1&65535,e>>>0<=21&&(e=e<<2,o=Z0[e+36156>>2],_=Z0[e+36068>>2],k=Z0[e+35980>>2],u=Z0[e+35892>>2],n=Z0[e+35804>>2],h=Z0[e+35716>>2],t=Z0[e+35628>>2],A=Z0[e+35540>>2]),w=Y(Y(1)-Y(A+t)),v=Y(Y(1)-Y(u+k)),W=Y(Y(k*w)-Y(v*t)),Z=Y(Y(1)-Y(h+n)),C=Y(Y(t*Z)-Y(w*n)),p=Y(o*Y(Y(h*W)+Y(Y(u*C)+Y(A*Y(Y(n*v)-Y(Z*k)))))),p==Y(0))break i;I=Y(Y(1)-Y(_+o)),Z0[f>>2]=Y(k*Y(Y(I*Y(Y(A*n)-Y(t*h)))+Y(Y(_*C)+Y(o*Y(Y(h*w)-Y(Z*A))))))/p,A=Y(Y(n*Y(Y(I*Y(Y(u*t)-Y(k*A)))+Y(Y(_*W)+Y(o*Y(Y(A*v)-Y(w*u))))))/p);break r}e:switch(e-1|0){case 0:i[f>>2]=1046066128,A=Y(.0722000002861023);break r;case 3:i[f>>2]=1050253722,A=Y(.10999999940395355);break r;case 4:case 5:i[f>>2]=1050220167,A=Y(.11400000005960464);break r;case 6:i[f>>2]=1046025863,A=Y(.08699999749660492);break r;case 8:case 9:break e;default:break i}i[f>>2]=1049002141,A=Y(.059300001710653305)}Z0[f+4>>2]=A}}function yn(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;i:{if(A=i[f>>2],k=i[f+4>>2]-A>>4,r=k+1|0,r>>>0<268435456){if(A=i[f+8>>2]-A|0,o=A>>3,A=A>>>0>=2147483632?268435455:r>>>0>>0?o:r,A){if(A>>>0>=268435456)break i;n=U(A<<4)}o=Q[e>>1],r=(k<<4)+n|0,i[r+12>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,X[r>>1]=o,k=i[e+4>>2],e=i[e+8>>2],qA(r+4|0,k,e,(e-k|0)/12|0),u=(A<<4)+n|0,o=r+16|0,A=i[f+4>>2],k=i[f>>2];r:{if((A|0)==(k|0)){n=r;break r}for(;e=A-16|0,h=Q[e>>1],w=r-4|0,i[w>>2]=0,t=r-12|0,i[t>>2]=0,i[t+4>>2]=0,n=r-16|0,X[n>>1]=h,h=t,t=A-12|0,i[h>>2]=i[t>>2],i[r-8>>2]=i[A-8>>2],r=A-4|0,i[w>>2]=i[r>>2],i[r>>2]=0,i[t>>2]=0,i[t+4>>2]=0,r=n,A=e,(k|0)!=(A|0););A=i[f+4>>2],k=i[f>>2]}if(i[f+8>>2]=u,i[f+4>>2]=o,i[f>>2]=n,(A|0)!=(k|0))for(;;){if(t=A-12|0,f=i[t>>2],f){if(u=A-8|0,e=i[u>>2],r=f,(e|0)!=(r|0)){for(;r=e-12|0,n=i[r>>2],n&&(i[e-8>>2]=n,G(n)),e=r,(r|0)!=(f|0););r=i[t>>2]}i[u>>2]=f,G(r)}if(A=A-16|0,(k|0)==(A|0))break}return k&&G(k),o}y0(),P()}_2(),P()}function rv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(!(!(i[r>>2]!=1|i[r+4>>2]!=3)&i[r+12>>2]==8)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,l[e+44|0]=0,i[e+36>>2]=99,i[e+40>>2]=99,i[e+48>>2]=8,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,s[r+8|0]||(l[e+44|0]=0,i[e+36>>2]=1,i[e+40>>2]=12,i[e+48>>2]=i[r+12>>2],A=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=A,i[e>>2]=1,i[e+4>>2]=12,i[e+16>>2]=72992,A=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,A=i[e+56>>2],i[e+28>>2]=11,i[e+20>>2]=A,P2(f,e)),l[e+44|0]=1,i[e+36>>2]=1,i[e+40>>2]=13,i[e+48>>2]=i[r+12>>2],r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,i[e>>2]=1,i[e+4>>2]=13,i[e+16>>2]=72992,r=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,r=i[e+56>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)}B=e- -64|0}function w6(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0;i[f+24>>2]=0,i[f+16>>2]=0,i[f+20>>2]=0,i[f+8>>2]=r,i[f+4>>2]=r,i[f>>2]=e,u=-64;i:{if(!r||(i[f>>2]=e+1,A=s[e|0],k=r-1|0,i[f+8>>2]=k,A=A<<24,n=A,i[f+16>>2]=0,i[f+20>>2]=A,!k)||(i[f>>2]=e+2,A=s[e+1|0],k=r-2|0,i[f+8>>2]=k,A=n|A<<16,t=A,i[f+16>>2]=o,i[f+20>>2]=A,!k)||(i[f>>2]=e+3,A=s[e+2|0],k=r-3|0,i[f+8>>2]=k,A=t|A<<8,t=A,i[f+16>>2]=o,i[f+20>>2]=A,!k)||(i[f>>2]=e+4,A=s[e+3|0],k=r-4|0,i[f+8>>2]=k,n=o,A=A|t,o=A,i[f+16>>2]=n,i[f+20>>2]=A,!k)||(i[f>>2]=e+5,A=s[e+4|0],k=r-5|0,i[f+8>>2]=k,t=n,n=A>>>8|0,A=t|A<<24,n=n|o,o=n,i[f+16>>2]=A,i[f+20>>2]=n,!k)||(i[f>>2]=e+6,n=s[e+5|0],k=r-6|0,i[f+8>>2]=k,t=A,A=n>>>16|0,n=t|n<<16,A=A|o,o=A,i[f+16>>2]=n,i[f+20>>2]=A,!k)||(i[f>>2]=e+7,A=s[e+6|0],k=r-7|0,i[f+8>>2]=k,t=n,n=A>>>24|0,A=t|A<<8,i[f+16>>2]=A,n=n|o,i[f+20>>2]=n,!k))break i;i[f>>2]=e+8,e=s[e+7|0],i[f+8>>2]=r-8,i[f+16>>2]=e|A,i[f+20>>2]=n,u=-56}return i[f+24>>2]=(((r>>>0>=7?7:r)<<3)+u|0)- -64,f}function ev(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(!(!(i[r>>2]!=1|i[r+4>>2]!=3)&i[r+12>>2]>8)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,l[e+44|0]=0,i[e+36>>2]=99,i[e+40>>2]=99,i[e+48>>2]=8,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,s[r+8|0]||(l[e+44|0]=0,i[e+36>>2]=1,i[e+40>>2]=12,i[e+48>>2]=i[r+12>>2],A=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=A,i[e>>2]=1,i[e+4>>2]=12,i[e+16>>2]=72992,A=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,A=i[e+56>>2],i[e+28>>2]=11,i[e+20>>2]=A,P2(f,e)),l[e+44|0]=1,i[e+36>>2]=1,i[e+40>>2]=13,i[e+48>>2]=i[r+12>>2],r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,i[e>>2]=1,i[e+4>>2]=13,i[e+16>>2]=72992,r=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,r=i[e+56>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)}B=e- -64|0}function Av(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,n=i[13708],i[A+12>>2]=n,k=A+12|0,i[k+i[n-12>>2]>>2]=i[13709],n=k+i[i[A+12>>2]-12>>2]|0,t=A+16|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,n=$0(t),i[n>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,t=A+148|0,R2(t,e,r),o=k,u=t,k=l[A+159|0],t=(k|0)<0,x(o,t?i[A+148>>2]:u,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:t,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(r,20449,18),k=i[e+56>>2];i:{if((k|0)==i[e+60>>2]||(H0(r,s[k|0]),r=1,i[e+60>>2]-i[e+56>>2]>>>0<=1))break i;for(;k=A+12|0,x(k,18140,1),H0(k,s[i[e+56>>2]+r|0]),r=r+1|0,r>>>0>2]-i[e+56>>2]>>>0;);}e=A+12|0,x(e,31338,1),i2(f,n),f=i[13707],i[A+12>>2]=f,i[e+i[f-12>>2]>>2]=i[13710],i[n>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(n),T0(A+68|0),B=A+160|0}function fv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0,E=0,J=0,R=0,D=0,z=0,H=0,a=0,S=0,q=0,d=0,A0=0,f0=0;A=m(r,6)+e|0,v=Q[A+6>>1],u=Q[e+6>>1],h=Q[e+2>>1],k=u+h|0,Z=Q[e+4>>1],w=Q[e>>1],t=Z+w|0,o=k+t|0,n=(r<<2)+e|0,p=Q[n+6>>1],W=Q[n+2>>1],C=p+W|0,y=Q[n>>1],n=Q[n+4>>1],I=y+n|0,_=C+I|0,E=o-_|0,e=(r<<1)+e|0,r=Q[e+6>>1],J=Q[e+2>>1],R=r+J|0,D=Q[e+4>>1],e=Q[e>>1],z=D+e|0,H=R+z|0,a=Q[A+2>>1],S=v+a|0,q=Q[A+4>>1],A=Q[A>>1],d=q+A|0,A0=S+d|0,f0=H-A0|0,X[f+24>>1]=E-f0,X[f+16>>1]=E+f0,o=o+_|0,_=H+A0|0,X[f+8>>1]=o-_,X[f>>1]=o+_,k=t-k|0,t=I-C|0,o=k-t|0,C=z-R|0,I=d-S|0,_=C-I|0,X[f+26>>1]=o-_,X[f+18>>1]=o+_,k=k+t|0,t=C+I|0,X[f+10>>1]=k-t,X[f+2>>1]=k+t,u=h-u|0,h=w-Z|0,k=u+h|0,Z=W-p|0,n=y-n|0,w=Z+n|0,t=k-w|0,r=J-r|0,e=e-D|0,o=r+e|0,v=a-v|0,A=A-q|0,p=v+A|0,W=o-p|0,X[f+28>>1]=t-W,X[f+20>>1]=t+W,k=k+w|0,w=o+p|0,X[f+12>>1]=k-w,X[f+4>>1]=k+w,u=h-u|0,n=n-Z|0,h=u-n|0,e=e-r|0,r=A-v|0,A=e-r|0,X[f+30>>1]=h-A,X[f+22>>1]=A+h,A=n+u|0,e=e+r|0,X[f+14>>1]=A-e,X[f+6>>1]=e+A}function kv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0;A=B-32|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(A,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(k=i[19565],i[A>>2]=i[19564],i[A+4>>2]=k,k=A+8|0,l[78275]>=0){n=i[19567],i[k>>2]=i[19566],i[k+4>>2]=n,i[k+8>>2]=i[19568];break i}_0(k,i[19566],i[19567])}l[A+19|0]<0&&G(i[A+8>>2]);i:{if(s[e+48|0]){h4(f,e,5473);break i}if(t=e,o=D0(r),i[t+56>>2]=o,t=e,o=D0(r),i[t+60>>2]=o,t=e,o=D0(r),i[t+64>>2]=o,t=e,o=D0(r),i[t+68>>2]=o,t=e,o=D0(r),i[t+72>>2]=o,B4(A+20|0,r),l[e+87|0]<0&&G(i[e+76>>2]),k=i[A+24>>2],i[e+76>>2]=i[A+20>>2],i[e+80>>2]=k,i[e+84>>2]=i[A+28>>2],s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(f,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function nv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(i[r>>2]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+4>>2]!=1){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[k+8>>2]!=2){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+12>>2]>=9){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(A=Q[r+24>>1],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,!A)break i;i[e+48>>2]=8,l[e+44|0]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,i[e+36>>2]=99,i[e+40>>2]=99,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,i[e+36>>2]=0,i[e+40>>2]=3,l[e+44|0]=s[r+8|0],i[e+48>>2]=i[r+12>>2],A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+59|0]=A,l[e+60|0]=A>>>8,l[e+61|0]=A>>>16,l[e+62|0]=A>>>24,i[e+56>>2]=i[r+20>>2],A=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=A,i[e>>2]=0,i[e+4>>2]=3,i[e+16>>2]=72992,A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,r=i[r+20>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)}B=e- -64|0}function tv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(i[r>>2]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+4>>2]!=1){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[k+8>>2]!=2){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+12>>2]<=8){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(A=Q[r+24>>1],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,!A)break i;i[e+48>>2]=8,l[e+44|0]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,i[e+36>>2]=99,i[e+40>>2]=99,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,i[e+36>>2]=0,i[e+40>>2]=3,l[e+44|0]=s[r+8|0],i[e+48>>2]=i[r+12>>2],A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+59|0]=A,l[e+60|0]=A>>>8,l[e+61|0]=A>>>16,l[e+62|0]=A>>>24,i[e+56>>2]=i[r+20>>2],A=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=A,i[e>>2]=0,i[e+4>>2]=3,i[e+16>>2]=72992,A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,r=i[r+20>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)}B=e- -64|0}function ov(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(i[r>>2]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+4>>2]!=2){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[k+8>>2]!=2){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+12>>2]>=9){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(A=Q[r+24>>1],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,!A)break i;i[e+48>>2]=8,l[e+44|0]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,i[e+36>>2]=99,i[e+40>>2]=99,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,i[e+36>>2]=0,i[e+40>>2]=3,l[e+44|0]=s[r+8|0],i[e+48>>2]=i[r+12>>2],A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+59|0]=A,l[e+60|0]=A>>>8,l[e+61|0]=A>>>16,l[e+62|0]=A>>>24,i[e+56>>2]=i[r+20>>2],A=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=A,i[e>>2]=0,i[e+4>>2]=3,i[e+16>>2]=72992,A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,r=i[r+20>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)}B=e- -64|0}function lv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(i[r>>2]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+4>>2]!=2){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[k+8>>2]!=2){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+12>>2]<=8){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(A=Q[r+24>>1],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,!A)break i;i[e+48>>2]=8,l[e+44|0]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,i[e+36>>2]=99,i[e+40>>2]=99,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,i[e+36>>2]=0,i[e+40>>2]=3,l[e+44|0]=s[r+8|0],i[e+48>>2]=i[r+12>>2],A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+59|0]=A,l[e+60|0]=A>>>8,l[e+61|0]=A>>>16,l[e+62|0]=A>>>24,i[e+56>>2]=i[r+20>>2],A=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=A,i[e>>2]=0,i[e+4>>2]=3,i[e+16>>2]=72992,A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,r=i[r+20>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)}B=e- -64|0}function uv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;if(A=B-160|0,B=A,i[A+68>>2]=54820,n=i[13708],i[A+12>>2]=n,k=A+12|0,i[k+i[n-12>>2]>>2]=i[13709],n=k+i[i[A+12>>2]-12>>2]|0,t=A+16|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,n=$0(t),i[n>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,t=A+148|0,R2(t,e,r),o=k,u=t,k=l[A+159|0],t=(k|0)<0,x(o,t?i[A+148>>2]:u,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:t,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,L0(x(r,21524,4),(i[e+64>>2]-i[e+60>>2]|0)/12|0),H0(x(r,21610,7),i[e+52>>2]-i[e+48>>2]&255),x(r,21618,5),r=i[e+48>>2],e=i[e+52>>2],(r|0)!=(e|0))for(;x(H0(A+12|0,s[r|0]),21692,2),r=r+1|0,(e|0)!=(r|0););e=A+12|0,x(e,31338,1),i2(f,n),f=i[13707],i[A+12>>2]=f,i[e+i[f-12>>2]>>2]=i[13710],i[n>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(n),T0(A+68|0),B=A+160|0}function Fn(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;i:{if(A=i[f>>2],n=i[f+4>>2]-A>>4,r=n+1|0,r>>>0<268435456){if(A=i[f+8>>2]-A|0,o=A>>3,A=A>>>0>=2147483632?268435455:r>>>0>>0?o:r,A){if(A>>>0>=268435456)break i;k=U(A<<4)}r=(n<<4)+k|0,X[r>>1]=Q[e>>1],i[r+4>>2]=i[e+4>>2],i[r+8>>2]=i[e+8>>2],i[r+12>>2]=i[e+12>>2],i[e+12>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,u=(A<<4)+k|0,o=r+16|0,A=i[f+4>>2],n=i[f>>2];r:{if((A|0)==(n|0)){k=r;break r}for(;e=A-16|0,t=Q[e>>1],h=r-4|0,i[h>>2]=0,k=r-16|0,X[k>>1]=t,t=A-12|0,i[r-12>>2]=i[t>>2],i[r-8>>2]=i[A-8>>2],r=A-4|0,i[h>>2]=i[r>>2],i[r>>2]=0,i[t>>2]=0,i[t+4>>2]=0,r=k,A=e,(n|0)!=(A|0););A=i[f+4>>2],n=i[f>>2]}if(i[f+8>>2]=u,i[f+4>>2]=o,i[f>>2]=k,(A|0)!=(n|0))for(;;){if(t=A-12|0,f=i[t>>2],f){if(u=A-8|0,e=i[u>>2],r=f,(e|0)!=(r|0)){for(;r=e-12|0,k=i[r>>2],k&&(i[e-8>>2]=k,G(k)),e=r,(r|0)!=(f|0););r=i[t>>2]}i[u>>2]=f,G(r)}if(A=A-16|0,(n|0)==(A|0))break}return n&&G(n),o}y0(),P()}_2(),P()}function zr(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0;if(o=B-16|0,B=o,u=f+2140|0,B9(u,1)){k=(l[i[f+1384>>2]+13|0]<<3)+f|0,t=i[k+728>>2],n=i[k+732>>2];i:{if(!n){i[o+12>>2]=0;break i}i[n+4>>2]=i[n+4>>2]+1,i[o+12>>2]=n,i[n+4>>2]=i[n+4>>2]+1}if(i[o+8>>2]=t,k=i[o+12>>2],i[o>>2]=i[o+8>>2],i[o+4>>2]=k,k=0,u=fn(u,o,f,0,0,0,0),(u|0)>=0){if(t=i[f+2152>>2],f=i[f+2148>>2],u>>>0>2>>>0&&(k=i[f+(u<<2)>>2]),f=1<>2]-1,t=1<>2]-1,(t|0)>=0&&B0(i[k+4>>2],t,m(i[k+28>>2],i[k+40>>2])),(f|0)>=0&&B0(i[k+8>>2],f,m(i[k+36>>2],i[k+44>>2])),(f|0)>=0&&B0(i[k+12>>2],f,m(i[k+36>>2],i[k+44>>2])),i[k+164>>2]>0)for(f=0;t=i[k+160>>2]+m(f,3)|0,h=(s[t|0]|s[t+1|0]<<8)&64767,l[t|0]=h,l[t+1|0]=h>>>8,f=f+1|0,(f|0)>2];);i[k+96>>2]=r,f=i[e+16868>>2],l[k+104|0]=0,l[k+312|0]=1,i[k+100>>2]=A?2:1,i[k+92>>2]=f-1&r}i:{if(!n||(f=i[n+4>>2],i[n+4>>2]=f-1,f))break i;V[i[i[n>>2]+8>>2]](n),g(n)}return B=o+16|0,u}C0(18302,13894,1425,9437),P()}function sv(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0;u=B-16|0,B=u,o=U(32),i[o+28>>2]=n,i[o+24>>2]=k,i[o+20>>2]=A,i[o+16>>2]=r,i[o+12>>2]=73188,i[o+4>>2]=0,i[o+8>>2]=0,i[o>>2]=73448,r=i[e+8>>2],i[u+12>>2]=o,n=o+12|0,i[u+8>>2]=n,i[o+4>>2]=i[o+4>>2]+1,A=i[r+16>>2];i:{r:{if(A>>>0>2]){i[A+4>>2]=o,i[A>>2]=n,i[o+4>>2]=i[o+4>>2]+1,i[r+16>>2]=A+8,k=o;break r}if(A=Q2(r+12|0,u+8|0),k=i[u+12>>2],i[r+16>>2]=A,!k)break i}if(r=i[k+4>>2],i[k+4>>2]=r-1,r)break i;V[i[i[k>>2]+8>>2]](k),g(k)}i:{if(!t||(i[o+4>>2]=i[o+4>>2]+1,r=U(24),i[o+4>>2]=i[o+4>>2]+1,i[r+20>>2]=o,i[r+16>>2]=n,k=i[e+8>>2],A=i[e+12>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+12>>2]=A,i[r+8>>2]=k,A=i[e>>2],e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[r+4>>2]=e,i[r>>2]=A,i[t>>2]=r,e=i[o+4>>2],i[o+4>>2]=e-1,e))break i;V[i[i[o>>2]+8>>2]](o),g(o)}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[o+4>>2],i[o+4>>2]=f-1,f||(V[i[i[o>>2]+8>>2]](o),g(o)),B=u+16|0}function hv(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0;u=B-16|0,B=u,o=U(32),i[o+28>>2]=n,i[o+24>>2]=k,i[o+20>>2]=A,i[o+16>>2]=r,i[o+12>>2]=73232,i[o+4>>2]=0,i[o+8>>2]=0,i[o>>2]=73488,r=i[e+8>>2],i[u+12>>2]=o,n=o+12|0,i[u+8>>2]=n,i[o+4>>2]=i[o+4>>2]+1,A=i[r+16>>2];i:{r:{if(A>>>0>2]){i[A+4>>2]=o,i[A>>2]=n,i[o+4>>2]=i[o+4>>2]+1,i[r+16>>2]=A+8,k=o;break r}if(A=Q2(r+12|0,u+8|0),k=i[u+12>>2],i[r+16>>2]=A,!k)break i}if(r=i[k+4>>2],i[k+4>>2]=r-1,r)break i;V[i[i[k>>2]+8>>2]](k),g(k)}i:{if(!t||(i[o+4>>2]=i[o+4>>2]+1,r=U(24),i[o+4>>2]=i[o+4>>2]+1,i[r+20>>2]=o,i[r+16>>2]=n,k=i[e+8>>2],A=i[e+12>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+12>>2]=A,i[r+8>>2]=k,A=i[e>>2],e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[r+4>>2]=e,i[r>>2]=A,i[t>>2]=r,e=i[o+4>>2],i[o+4>>2]=e-1,e))break i;V[i[i[o>>2]+8>>2]](o),g(o)}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[o+4>>2],i[o+4>>2]=f-1,f||(V[i[i[o>>2]+8>>2]](o),g(o)),B=u+16|0}function K4(f,e,r,A,k,n,t,o,u,h,w){var _=0;i:{r:{e:{A:{f:{if(!((e+A|0)<=(h|0)|(e|0)>(h|0)|(r|0)>(w|0))&&(r+A|0)>(w|0))break f;if(A=0,(h|w)<0||(e=i[f+124>>2],i[e+484>>2]<=(h|0)|i[e+488>>2]<=(w|0))||(t=i[f+132>>2],o=i[t+8496>>2],r=i[e+16936>>2],u=i[e+16924>>2],i[(o+(h>>>r<<2)|0)+(m(u,w>>>r|0)<<2)>>2]>i[(o+(k>>r<<2)|0)+(m(u,n>>r)<<2)>>2])||(u=i[f+140>>2],o=i[f+152>>2],r=i[e+16876>>2],n=n>>r,k=k>>r,_=w>>>r|0,r=h>>>r|0,Q[(u+m(m(o,n),24)|0)+m(k,24)>>1]!=Q[(u+m(m(o,_),24)|0)+m(r,24)>>1]))break e;if(o=k<<2,k=i[t+8484>>2],e=i[e+16892>>2],i[(o+k|0)+(m(e,n)<<2)>>2]==i[(k+(r<<2)|0)+(m(e,_)<<2)>>2])break A;break e}if(t<<1!=(A|0)|o<<1!=(A|0)|((u|0)!=1|(r+o|0)>(w|0)))break A;if(A=0,(e+t|0)>(h|0))break e}if(r=i[f+168>>2],e=h>>r,(e|0)<0||(A=i[f+172>>2],(A|0)<=(e|0)))break r;if(r=w>>r,(r|0)<0|(r|0)>=i[f+176>>2])break i;A=(s[((i[f+160>>2]+m(e,3)|0)+m(m(r,A),3)|0)+1|0]&3)!=0}return A}C0(3758,8473,118,3372),P()}C0(3720,8473,119,3372),P()}function Hr(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,t=i[13708],i[A+12>>2]=t,k=A+12|0,i[k+i[t-12>>2]>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,W0(n,r),o=k,u=n,k=l[A+159|0],n=(k|0)<0,x(o,n?i[A+148>>2]:u,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=x(A+12|0,19401,5),n=A+148|0,Vn(n,e),o=k,u=n,k=l[A+159|0],n=(k|0)<0,x(x(o,n?i[A+148>>2]:u,n?i[A+152>>2]:k),31077,7),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),n=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:n,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(L0(x(n4(x(r,20793,6),i[e+8>>2],i[e+12>>2]),20737,17),i[e+32>>2]),31337,2),i2(f,t),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function En(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,f=B-16|0,B=f,i[f+12>>2]=r,i[f+8>>2]=n,i[f+12>>2]=r,i[f+8>>2]=n,e=i[f+12>>2];i:{r:{for(;;){e:{if(e>>>0>=A>>>0){r=0;break e}if(r=2,e=i[e>>2],e>>>0>1114111|(e&-2048)==55296)break e;A:{if(e>>>0<=127){if(r=1,n=i[f+8>>2],(t-n|0)<=0)break e;i[f+8>>2]=n+1,l[n|0]=e;break A}if(e>>>0<=2047){if(r=i[f+8>>2],(t-r|0)<2)break r;i[f+8>>2]=r+1,l[r|0]=e>>>6|192,r=i[f+8>>2],i[f+8>>2]=r+1,l[r|0]=e&63|128;break A}if(r=i[f+8>>2],n=t-r|0,e>>>0<=65535){if((n|0)<3)break r;i[f+8>>2]=r+1,l[r|0]=e>>>12|224,r=i[f+8>>2],i[f+8>>2]=r+1,l[r|0]=e>>>6&63|128,r=i[f+8>>2],i[f+8>>2]=r+1,l[r|0]=e&63|128;break A}if((n|0)<4)break r;i[f+8>>2]=r+1,l[r|0]=e>>>18|240,r=i[f+8>>2],i[f+8>>2]=r+1,l[r|0]=e>>>12&63|128,r=i[f+8>>2],i[f+8>>2]=r+1,l[r|0]=e>>>6&63|128,r=i[f+8>>2],i[f+8>>2]=r+1,l[r|0]=e&63|128}e=i[f+12>>2]+4|0,i[f+12>>2]=e;continue}break}break i}r=1}return i[k>>2]=i[f+12>>2],i[o>>2]=i[f+8>>2],B=f+16|0,r|0}function JA(f){var e=0,r=0,A=0,k=0,n=0,t=0,o=0;i:{r=i[f+18592>>2];r:{e:{if(s[r+20|0]){if(e=i[f+18588>>2],n=i[e+52>>2],k=i[e+132>>2],r=i[r+24>>2],A=Q[(i[e+140>>2]+m(i[(i[k+8460>>2]+(i[i[k+8448>>2]+(r<<2)>>2]<<2)|0)-4>>2],24)|0)+2>>1],A>>>0>=i[e+56>>2]-n>>2>>>0)break r;if(n=i[n+(A<<2)>>2],A=i[i[e+124>>2]+16892>>2],e=(r|0)/(A|0)|0,e9(k,r-m(e,A)|0,e)){if(e=i[f+18592>>2],r=i[e+804>>2],r>>>0>=3)break i;k6(f+18572|0,r,i[e+800>>2]),l[f+18580|0]=0,l[f+18581|0]=0,l[f+18582|0]=0,l[f+18583|0]=0;break e}if(e=i[f+18596>>2],r=i[e+424>>2],k=i[e+428>>2]-r>>2,k>>>0<2)break r;for(A=i[f+18600>>2],e=1;;){if(t=r+(e<<2)|0,(A|0)!=i[t>>2]){if(e=e+1|0,(k|0)!=(e|0))continue;break r}break}if(e=i[t-4>>2],!e||(bt(e+44|0,i[e+120>>2]),s[n+1348|0]!=1))break r;e=f+18572|0,f=n+1340|0,Ii(e,f),F9(f);break e}if(e=i[r+804>>2],e>>>0>=3)break i;k6(f+18572|0,e,i[r+800>>2]),l[f+18580|0]=0,l[f+18581|0]=0,l[f+18582|0]=0,l[f+18583|0]=0}o=1}return o}C0(16898,14036,1520,4043),P()}function Tr(f,e,r,A){var k=0,n=0,t=0,o=0;k=i[r+4>>2],o=i[e+4>>2];i:{if((o|0)<=i[f+4>>2]){if((k|0)<=(o|0)||(n=i[e>>2],k=i[e+4>>2],t=i[r+4>>2],i[e>>2]=i[r>>2],i[e+4>>2]=t,i[r>>2]=n,i[r+4>>2]=k,i[e+4>>2]<=i[f+4>>2]))break i;n=i[f>>2],k=i[f+4>>2],t=i[e+4>>2],i[f>>2]=i[e>>2],i[f+4>>2]=t,i[e>>2]=n,i[e+4>>2]=k,k=i[r+4>>2];break i}if(t=i[f>>2],n=i[f+4>>2],(k|0)>(o|0)){k=i[r+4>>2],i[f>>2]=i[r>>2],i[f+4>>2]=k,i[r>>2]=t,i[r+4>>2]=n,k=n;break i}if(k=i[e+4>>2],i[f>>2]=i[e>>2],i[f+4>>2]=k,i[e>>2]=t,i[e+4>>2]=n,k=i[r+4>>2],(n|0)>=(k|0))break i;k=i[r+4>>2],i[e>>2]=i[r>>2],i[e+4>>2]=k,i[r>>2]=t,i[r+4>>2]=n,k=n}i:{if(i[A+4>>2]<=(k|0)||(n=i[r>>2],k=i[r+4>>2],t=i[A+4>>2],i[r>>2]=i[A>>2],i[r+4>>2]=t,i[A>>2]=n,i[A+4>>2]=k,i[r+4>>2]<=i[e+4>>2])||(A=i[e>>2],n=i[e+4>>2],k=i[r+4>>2],i[e>>2]=i[r>>2],i[e+4>>2]=k,i[r>>2]=A,i[r+4>>2]=n,i[e+4>>2]<=i[f+4>>2]))break i;r=i[f>>2],A=i[f+4>>2],n=i[e+4>>2],i[f>>2]=i[e>>2],i[f+4>>2]=n,i[e>>2]=r,i[e+4>>2]=A}}function wv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0;e=B+-64|0,B=e,A=i[r+12>>2],k=i[r+4>>2],n=i[r>>2],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,k|(n|0)!=2|(A|0)!=8||(l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,l[e+44|0]=0,i[e+36>>2]=99,i[e+40>>2]=99,i[e+48>>2]=8,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,s[r+8|0]||(i[e+48>>2]=8,l[e+44|0]=0,i[e+36>>2]=1,i[e+40>>2]=10,r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,i[e>>2]=1,i[e+4>>2]=10,i[e+16>>2]=72992,r=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,r=i[e+56>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)),i[e+48>>2]=8,l[e+44|0]=1,i[e+36>>2]=1,i[e+40>>2]=11,r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,i[e>>2]=1,i[e+4>>2]=11,i[e+16>>2]=72992,r=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,r=i[e+56>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)),B=e- -64|0}function _v(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0;e=B+-64|0,B=e,n=i[A+4>>2];i:{if(!(!s[k+12|0]|((n|0)==3|i[k+4>>2]==1))){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!(!(i[r>>2]!=1|(i[r+4>>2]&-4)!=12)&i[r+12>>2]>8)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(k=Q[A+24>>1],!(k>>>0>14|!(1<>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!s[A+26|0]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(n|0)!=1)break i;k=V8(e+36|0),i[k>>2]=0,i[k+4>>2]=1,l[k+8|0]=s[r+8|0],i[k+12>>2]=i[r+12>>2],i[k+20>>2]=i[A+20>>2],r=s[A+23|0]|s[A+24|0]<<8|(s[A+25|0]<<16|s[A+26|0]<<24),l[k+23|0]=r,l[k+24|0]=r>>>8,l[k+25|0]=r>>>16,l[k+26|0]=r>>>24,r=i[k+12>>2],i[e+8>>2]=i[k+8>>2],i[e+12>>2]=r,r=i[k+4>>2],i[e>>2]=i[k>>2],i[e+4>>2]=r,i[e+16>>2]=72992,r=s[A+23|0]|s[A+24|0]<<8|(s[A+25|0]<<16|s[A+26|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,i[e+20>>2]=i[A+20>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function vv(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0;r=i[f+16>>2],k=i[r+18588>>2],t=i[k+124>>2],o=i[t+16892>>2],i[f+4>>2]=1,i[k+324>>2]=i[k+324>>2]-1,i[k+328>>2]=i[k+328>>2]+1,A=i[r+18588>>2],n=i[A+124>>2],e=i[n+16908>>2],u=i[r+4>>2],(e|0)>(u|0)&&(e=i[i[i[A+132>>2]+8460>>2]+(u<<2)>>2]),A=i[n+16892>>2],i[r>>2]=e,n=(e|0)/(A|0)|0,i[r+12>>2]=n,i[r+8>>2]=e-m(A,n),A=(e|0)/(o|0)|0;i:{r:{if(s[f+8|0]!=1||JA(r))break r;if((o|0)<=0)break i;for(e=0,A=m(m(A,o),76);t=(A+i[k+320>>2]|0)+m(e,76)|0,i[t>>2]<=0&&(i[t>>2]=1),e=e+1|0,(o|0)!=(e|0););break i}if(Y6(r+18548|0),mr(r,1,!(s[f+8|0]!=1||s[i[r+18592>>2]+20|0])),(A|0)!=i[r+12>>2]||(e=i[r+8>>2],n=i[t+16892>>2],(e|0)>=(n|0)))break i;for(o=m(m(A,o),76);i[t+16892>>2]<=(e|0)|(A|0)>=i[t+16900>>2]||(u=(o+i[k+320>>2]|0)+m(e,76)|0,i[u>>2]<=0&&(i[u>>2]=1)),e=e+1|0,(n|0)!=(e|0););}i[f+4>>2]=3,f=i[r+18600>>2],i[f+44>>2]=i[f+44>>2]+1,Ze(k)}function mv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,t=i[13708],i[A+12>>2]=t,k=A+12|0,i[k+i[t-12>>2]>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),u=k,o=n,k=l[A+159|0],n=(k|0)<0,x(u,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],n=(k|0)<0,x(A+12|0,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(L0(x(k,20591,10),i[e+48>>2]),31338,1),n=A+148|0,W0(n,r),o=k,r=l[A+159|0],k=(r|0)<0,x(o,k?i[A+148>>2]:n,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(L0(x(r,20580,10),i[e+52>>2]),31338,1),i2(f,t),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function Bv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,t=i[13708],i[A+12>>2]=t,k=A+12|0,i[k+i[t-12>>2]>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),u=k,o=n,k=l[A+159|0],n=(k|0)<0,x(u,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),o=k,k=l[A+159|0],n=(k|0)<0,x(A+12|0,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+12|0,x(L0(x(k,20393,25),Q[e+48>>1]),31338,1),n=A+148|0,W0(n,r),o=k,r=l[A+159|0],k=(r|0)<0,x(o,k?i[A+148>>2]:n,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(L0(x(r,20419,29),Q[e+50>>1]),31338,1),i2(f,t),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function Zv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0;t=B-16|0,B=t,n=U(24),i[n+20>>2]=A,i[n+16>>2]=r,i[n+12>>2]=73144,i[n+4>>2]=0,i[n+8>>2]=0,i[n>>2]=73408,A=i[e+8>>2],i[t+12>>2]=n,o=n+12|0,i[t+8>>2]=o,i[n+4>>2]=i[n+4>>2]+1,r=i[A+16>>2];i:{r:{if(r>>>0>2]){i[r+4>>2]=n,i[r>>2]=o,i[n+4>>2]=i[n+4>>2]+1,i[A+16>>2]=r+8,r=n;break r}if(u=Q2(A+12|0,t+8|0),r=i[t+12>>2],i[A+16>>2]=u,!r)break i}if(A=i[r+4>>2],i[r+4>>2]=A-1,A)break i;V[i[i[r>>2]+8>>2]](r),g(r)}i:{if(!k||(i[n+4>>2]=i[n+4>>2]+1,r=U(24),i[n+4>>2]=i[n+4>>2]+1,i[r+20>>2]=n,i[r+16>>2]=o,o=i[e+8>>2],A=i[e+12>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+12>>2]=A,i[r+8>>2]=o,A=i[e>>2],e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[r+4>>2]=e,i[r>>2]=A,i[k>>2]=r,e=i[n+4>>2],i[n+4>>2]=e-1,e))break i;V[i[i[n>>2]+8>>2]](n),g(n)}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[n+4>>2],i[n+4>>2]=f-1,f||(V[i[i[n>>2]+8>>2]](n),g(n)),B=t+16|0}function pv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,t=i[13708],i[A+12>>2]=t,n=A+12|0,i[n+i[t-12>>2]>>2]=i[13709],t=n+i[i[A+12>>2]-12>>2]|0,k=A+16|0,b0(t,k),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(k),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,k=A+148|0,R2(k,e,r),o=n,u=k,n=l[A+159|0],k=(n|0)<0,x(o,k?i[A+148>>2]:u,k?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=A+148|0,W0(n,r),o=n,n=l[A+159|0],k=(n|0)<0,x(A+12|0,k?i[A+148>>2]:o,k?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),n=x(L0(x(A+12|0,20525,13),i[e+56>>2]),31338,1),k=A+148|0,W0(k,r),o=k,r=l[A+159|0],k=(r|0)<0,x(n,k?i[A+148>>2]:o,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),x(L0(x(n,19612,14),i[e+60>>2]),31338,1),i2(f,t),f=i[13707],i[A+12>>2]=f,i[i[f-12>>2]+(A+12|0)>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function Wv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e,A=i[r+12>>2],k=i[r+4>>2],r=i[r>>2],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(r|0)!=1|(k|0)!=3|(A|0)!=8||(l[e+44|0]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,i[e+48>>2]=8,i[e+36>>2]=99,i[e+40>>2]=99,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,l[e+44|0]=1,i[e+48>>2]=8,i[e+36>>2]=1,i[e+40>>2]=11,r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,r=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,i[e>>2]=1,i[e+4>>2]=11,i[e+16>>2]=72992,i[e+20>>2]=i[e+56>>2],i[e+28>>2]=11,P2(f,e),l[e+44|0]=0,i[e+36>>2]=1,i[e+40>>2]=10,i[e+48>>2]=8,r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,r=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,i[e>>2]=1,i[e+4>>2]=10,i[e+16>>2]=72992,i[e+20>>2]=i[e+56>>2],i[e+28>>2]=11,P2(f,e)),B=e- -64|0}function _6(f,e,r){var A=0,k=0,n=0,t=0,o=0;k=B-16|0,B=k,A=U(96),i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=71024,n=A+16|0,i[n+8>>2]=0,i[n+12>>2]=0,i[n+16>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,i[n+28>>2]=0,i[n+32>>2]=0,i[n>>2]=68500,i[A+52>>2]=0,i[A+56>>2]=0,i[A+68>>2]=0,l[A+57|0]=0,l[A+58|0]=0,l[A+59|0]=0,l[A+60|0]=0,l[A+61|0]=0,l[A+62|0]=0,l[A+63|0]=0,l[A+64|0]=0,i[n>>2]=69372,i[A+88>>2]=0,i[A+92>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+32>>2]=1635088451,t=A+72|0;i:{if((t|0)==(r|0))break i;if(l[r+11|0]>=0){o=i[r+4>>2],i[t>>2]=i[r>>2],i[t+4>>2]=o,i[t+8>>2]=i[r+8>>2];break i}i4(t,i[r>>2],i[r+4>>2])}r=i[f+44>>2],i[k+12>>2]=A,i[k+8>>2]=n,i[A+4>>2]=i[A+4>>2]+1,n=N4(r,k+8|0),r=i[k+12>>2];i:{if(!r||(t=i[r+4>>2],i[r+4>>2]=t-1,t))break i;V[i[i[r>>2]+8>>2]](r),g(r)}f=i[f+52>>2],l[k+4|0]=1,X[k+6>>1]=n+1,i[k>>2]=Q[k+4>>1]|Q[k+6>>1]<<16,c1(f,e,k),f=i[A+4>>2],i[A+4>>2]=f-1,f||(V[i[i[A>>2]+8>>2]](A),g(A)),B=k+16|0}function Xv(){var f=0,e=0,r=0,A=0;i:{r:{e:switch(f=i[19575],f|0){case 0:break i;case 1:break e;default:break r}if(f=i[19569],(f|0)!=78280)for(;;){e=i[i[f+16>>2]+12>>2],e&&V[e|0](),e=i[f+4>>2];e:{if(e){for(;;)if(f=e,e=i[f>>2],!e)break e}for(;e=f,f=i[f+8>>2],(e|0)!=i[f>>2];);}if((f|0)==78280)break}if(Ie(78276,i[19570]),i[19569]=78280,i[19570]=0,i[19571]=0,f=i[19572],(f|0)!=78292)for(;;){e=i[i[i[f+16>>2]>>2]+32>>2],e&&V[e|0](),e=i[f+4>>2];e:{if(e){for(;;)if(f=e,e=i[f>>2],!e)break e}for(;e=f,f=i[f+8>>2],(e|0)!=i[f>>2];);}if((f|0)==78292)break}if(Xe(78288,i[19573]),i[19572]=78292,i[19573]=0,i[19574]=0,l[78304]=1,e=i[19591],A=i[19590],(e|0)!=(A|0))for(;;){r=i[e-4>>2];e:{if(!r||(f=i[r+4>>2],i[r+4>>2]=f-1,f))break e;V[i[i[r>>2]+8>>2]](r),g(r)}if(e=e-8|0,(A|0)==(e|0))break}i[19591]=A,f=i[19575]}i[19575]=f-1}}function N0(f,e,r){var A=0,k=0,n=0,t=0,o=0;t=B-16|0,B=t,k=i[f>>2],n=i[k-8>>2],i[t+12>>2]=n,i[t+4>>2]=f+n,i[t+8>>2]=i[k-4>>2],n=i[t+8>>2],k=Q1(n,r,0),o=i[t+4>>2];i:{if(k){f=B+-64|0,B=f,B=f- -64|0,A=i[t+12>>2]?0:o;break i}if(k=B+-64|0,B=k,(f|0)>=(o|0)&&(i[k+28>>2]=0,i[k+32>>2]=0,i[k+36>>2]=0,i[k+40>>2]=0,i[k+44>>2]=0,i[k+48>>2]=0,i[k+20>>2]=0,i[k+24>>2]=0,i[k+16>>2]=0,i[k+12>>2]=r,i[k+4>>2]=n,i[k+60>>2]=0,i[k+52>>2]=1,i[k+56>>2]=16777216,i[k+8>>2]=f,V[i[i[n>>2]+20>>2]](n,k+4|0,o,o,1,0),A=i[k+28>>2]?f:0),B=k- -64|0,A)break i;A=B+-64|0,B=A,i[A+16>>2]=0,i[A+12>>2]=e,i[A+8>>2]=f,i[A+4>>2]=r,f=0,B0(A+20|0,0,39),i[A+60>>2]=0,l[A+59|0]=1,V[i[i[n>>2]+24>>2]](n,A+4|0,o,1,0);r:{e:switch(i[A+40>>2]){case 0:f=i[A+44>>2]==1&&i[A+32>>2]==1&&i[A+36>>2]==1?i[A+24>>2]:0;break r;case 1:break e;default:break r}if(i[A+28>>2]!=1&&i[A+44>>2]|i[A+32>>2]!=1|i[A+36>>2]!=1)break r;f=i[A+20>>2]}B=A- -64|0,A=f}return B=t+16|0,A}function Gv(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,e=i[r>>2],A=i[e+28>>2],k=i[e+24>>2],e=U(136),i[e>>2]=72792,i[e+4>>2]=0,i[e+8>>2]=0,B0(e+20|0,0,104),i[e+56>>2]=0,i[e+60>>2]=0,i[e+44>>2]=99,i[e+48>>2]=99,i[e+32>>2]=3795,n=e- -64|0,i[n>>2]=0,i[n+4>>2]=0,i[e+132>>2]=0,i[e+124>>2]=0,i[e+128>>2]=0,i[e+84>>2]=1,i[e+88>>2]=1,i[e+72>>2]=e+76,i[e+92>>2]=0,i[e+96>>2]=0,i[e+100>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e+112>>2]=0,l[e+113|0]=0,l[e+114|0]=0,l[e+115|0]=0,l[e+116|0]=0,l[e+117|0]=0,l[e+118|0]=0,l[e+119|0]=0,l[e+120|0]=0,i[f+4>>2]=e,n=e+12|0,i[f>>2]=n,i[e+12>>2]=n,i[e+8>>2]=i[e+8>>2]+1,i[e+16>>2]=e,i[e+4>>2]==-1&&(V[i[i[e>>2]+8>>2]](e),g(e)),e=i[r>>2],n=i[e+32>>2],f=i[f>>2],i[f+36>>2]=i[e+36>>2],i[f+32>>2]=n,i[f+28>>2]=A,i[f+24>>2]=k,H2(i[r>>2],0)&&U8(f,r,0,0),H2(i[r>>2],1)&&U8(f,r,1,1),H2(i[r>>2],2)&&U8(f,r,2,2),H2(i[r>>2],3)&&U8(f,r,3,3),H2(i[r>>2],4)&&U8(f,r,4,4),H2(i[r>>2],5)&&U8(f,r,5,5)}function ar(f,e,r,A,k,n){var t=0,o=0,u=0;u=B-16|0,B=u,t=U(96),i[t+4>>2]=0,i[t+8>>2]=0,i[t>>2]=71144,o=t+16|0,i[o+8>>2]=0,i[o+12>>2]=0,i[o+16>>2]=0,i[o+20>>2]=0,i[o+24>>2]=0,i[o+28>>2]=0,i[o+32>>2]=0,i[o>>2]=68500,i[t+60>>2]=0,i[t+52>>2]=0,i[t+56>>2]=0,i[o>>2]=69552,i[t+88>>2]=0,i[t+92>>2]=1,i[t+80>>2]=0,i[t+84>>2]=1,i[t+72>>2]=0,i[t+76>>2]=1,i[t+64>>2]=0,i[t+68>>2]=1,i[t+32>>2]=1668047216,i[o+56>>2]=A,i[o+60>>2]=1,i[o+48>>2]=r,i[o+52>>2]=1,A=A-n|0,n=A-65537>>>0<4294836223,i[o+72>>2]=n&0|(n?(A|0)/2|0:A),i[o+76>>2]=n?1:2,r=r-k|0,A=r-65537>>>0<4294836223,i[o+64>>2]=A&0|(A?(r|0)/2|0:r),i[o+68>>2]=A?1:2,r=i[f+44>>2],i[u+12>>2]=t,i[u+8>>2]=o,i[t+4>>2]=i[t+4>>2]+1,A=N4(r,u+8|0),r=i[u+12>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}f=i[f+52>>2],l[u+4|0]=1,X[u+6>>1]=A+1,i[u>>2]=Q[u+4>>1]|Q[u+6>>1]<<16,c1(f,e,u),f=i[t+4>>2],i[t+4>>2]=f-1,f||(V[i[i[t>>2]+8>>2]](t),g(t)),B=u+16|0}function Cv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;if(A=B-160|0,B=A,i[A+68>>2]=54820,k=i[13708],i[A+12>>2]=k,n=i[k-12>>2],k=A+12|0,i[n+k>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),u=k,o=n,k=l[A+159|0],n=(k|0)<0,x(u,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=i[e+48>>2],e=i[e+52>>2],(k|0)!=(e|0))for(;n=A+148|0,W0(n,r),u=n,n=l[A+159|0],o=(n|0)<0,x(A+12|0,o?i[A+148>>2]:u,o?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),x(L0(x(L0(x(L0(x(A+12|0,19449,15),Q[k>>1]),21009,16),Q[k+2>>1]),20243,23),Q[k+4>>1]),31338,1),k=k+6|0,(e|0)!=(k|0););i2(f,t),f=i[13707],i[A+12>>2]=f,i[i[f-12>>2]+(A+12|0)>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function Vv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;if(A=B-160|0,B=A,i[A+68>>2]=54820,k=i[13708],i[A+12>>2]=k,n=i[k-12>>2],k=A+12|0,i[n+k>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),u=k,o=n,k=l[A+159|0],n=(k|0)<0,x(u,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=i[e+56>>2],e=i[e+60>>2],(k|0)!=(e|0))for(;n=A+148|0,W0(n,r),u=n,n=l[A+159|0],o=(n|0)<0,x(A+12|0,o?i[A+148>>2]:u,o?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),x(L0(x(H0(x(L0(x(A+12|0,21276,10),Q[k>>1]),19823,18),s[k+2|0]),19805,17),Q[k+4>>1]),31338,1),k=k+6|0,(e|0)!=(k|0););i2(f,t),f=i[13707],i[A+12>>2]=f,i[i[f-12>>2]+(A+12|0)>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function Iv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;k=B-16|0,B=k,A=i[e+12>>2],o=A,n=i[e+8>>2];i:{r:{if(!(A|n)){for(e=r;i[e+16>>2]=0,e=i[e+8>>2],!!e;);break r}if(t=i[e+32>>2],A=n-t|0,n=o-(n>>>0>>0)|0,!n&A>>>0>=2147483648|n){if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,101,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(!T4(r,A)||(n=i[r>>2],A=i[r+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),o=i[e+8>>2],t=i[e+32>>2],u=o-t|0,e=i[e+12>>2]-(o>>>0>>0)|0,t=V[i[i[n>>2]+8>>2]](n)|0,o=t+u|0,e=w0+e|0,V[i[i[n>>2]+20>>2]](n,o,o>>>0>>0?e+1|0:e)|0,!A)||(e=i[A+4>>2],i[A+4>>2]=e-1,e))break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(s[r+20|0]==1){if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,100,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+16|0}function Qv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;if(A=B-160|0,B=A,i[A+68>>2]=54820,k=i[13708],i[A+12>>2]=k,n=i[k-12>>2],k=A+12|0,i[n+k>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),u=k,o=n,k=l[A+159|0],n=(k|0)<0,x(u,n?i[A+148>>2]:o,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=i[e+48>>2],e=i[e+52>>2],(k|0)!=(e|0))for(;n=A+148|0,W0(n,r),u=n,n=l[A+159|0],o=(n|0)<0,x(A+12|0,o?i[A+148>>2]:u,o?i[A+152>>2]:n),l[A+159|0]<0&&G(i[A+148>>2]),x(H0(x(H0(x(L0(x(A+12|0,19407,17),Q[k>>1]),21026,16),s[k+2|0]),20155,18),s[k+3|0]),31338,1),k=k+4|0,(e|0)!=(k|0););i2(f,t),f=i[13707],i[A+12>>2]=f,i[i[f-12>>2]+(A+12|0)>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function yv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0;e=B+-64|0,B=e,n=i[A+4>>2];i:{if(!(!s[k+12|0]|((n|0)==3|i[k+4>>2]==1))){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!(i[r>>2]==1&(i[r+4>>2]&-2)==10)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(n-1>>>0>=3){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(r=Q[A+24>>1],!(r>>>0>14|!(1<>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,r=V8(e+36|0),i[r>>2]=0,i[r+4>>2]=i[A+4>>2],k=s[A+8|0],i[r+12>>2]=8,l[r+8|0]=k,i[r+20>>2]=i[A+20>>2],k=s[A+23|0]|s[A+24|0]<<8|(s[A+25|0]<<16|s[A+26|0]<<24),l[r+23|0]=k,l[r+24|0]=k>>>8,l[r+25|0]=k>>>16,l[r+26|0]=k>>>24,k=i[r+12>>2],i[e+8>>2]=i[r+8>>2],i[e+12>>2]=k,k=i[r+4>>2],i[e>>2]=i[r>>2],i[e+4>>2]=k,i[e+16>>2]=72992,r=s[A+23|0]|s[A+24|0]<<8|(s[A+25|0]<<16|s[A+26|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,i[e+20>>2]=i[A+20>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function Fv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(i[r>>2]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+4>>2]!=3){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[k+4>>2]!=2){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+12>>2]>=9){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!Q[r+24>>1]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(A=i[A+4>>2],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(A|0)!=1)break i;A=V8(e+36|0),i[A>>2]=0,i[A+4>>2]=1,l[A+8|0]=s[r+8|0],i[A+12>>2]=i[r+12>>2],i[A+20>>2]=i[r+20>>2],k=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[A+23|0]=k,l[A+24|0]=k>>>8,l[A+25|0]=k>>>16,l[A+26|0]=k>>>24,k=i[A+12>>2],i[e+8>>2]=i[A+8>>2],i[e+12>>2]=k,k=i[A+4>>2],i[e>>2]=i[A>>2],i[e+4>>2]=k,i[e+16>>2]=72992,A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,i[e+20>>2]=i[r+20>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function Ev(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(i[r>>2]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+4>>2]!=3){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[k+4>>2]!=2){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+12>>2]<=8){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!Q[r+24>>1]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(A=i[A+4>>2],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(A|0)!=1)break i;A=V8(e+36|0),i[A>>2]=0,i[A+4>>2]=1,l[A+8|0]=s[r+8|0],i[A+12>>2]=i[r+12>>2],i[A+20>>2]=i[r+20>>2],k=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[A+23|0]=k,l[A+24|0]=k>>>8,l[A+25|0]=k>>>16,l[A+26|0]=k>>>24,k=i[A+12>>2],i[e+8>>2]=i[A+8>>2],i[e+12>>2]=k,k=i[A+4>>2],i[e>>2]=i[A>>2],i[e+4>>2]=k,i[e+16>>2]=72992,A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,i[e+20>>2]=i[r+20>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function Yv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(i[r>>2]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+4>>2]!=3){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[k+4>>2]!=2){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+12>>2]>=9){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!Q[r+24>>1]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(A=i[A+4>>2],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(A|0)!=2)break i;A=V8(e+36|0),i[A>>2]=0,i[A+4>>2]=2,l[A+8|0]=s[r+8|0],i[A+12>>2]=i[r+12>>2],i[A+20>>2]=i[r+20>>2],k=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[A+23|0]=k,l[A+24|0]=k>>>8,l[A+25|0]=k>>>16,l[A+26|0]=k>>>24,k=i[A+12>>2],i[e+8>>2]=i[A+8>>2],i[e+12>>2]=k,k=i[A+4>>2],i[e>>2]=i[A>>2],i[e+4>>2]=k,i[e+16>>2]=72992,A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,i[e+20>>2]=i[r+20>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function Jv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(i[r>>2]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+4>>2]!=3){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[k+4>>2]!=2){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r+12>>2]<=8){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!Q[r+24>>1]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(A=i[A+4>>2],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(A|0)!=2)break i;A=V8(e+36|0),i[A>>2]=0,i[A+4>>2]=2,l[A+8|0]=s[r+8|0],i[A+12>>2]=i[r+12>>2],i[A+20>>2]=i[r+20>>2],k=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[A+23|0]=k,l[A+24|0]=k>>>8,l[A+25|0]=k>>>16,l[A+26|0]=k>>>24,k=i[A+12>>2],i[e+8>>2]=i[A+8>>2],i[e+12>>2]=k,k=i[A+4>>2],i[e>>2]=i[A>>2],i[e+4>>2]=k,i[e+16>>2]=72992,A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,i[e+20>>2]=i[r+20>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function gv(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0;Z=n+7|0,p=n+4|0;i:{if((p|0)>=-2){if((k|0)<=0)break i;for(C=t+6|0,I=k&2147483644,W=k&3,v=-3,y=k>>>0<4;;){if(h=(v<<1)+C|0,u=(m(A,v)<<1)+r|0,w=0,!y)for(;X[h>>1]=Q[u>>1],_=h,h=Z<<1,_=_+h|0,X[_>>1]=Q[u+2>>1],_=h+_|0,X[_>>1]=Q[u+4>>1],_=h+_|0,X[_>>1]=Q[u+6>>1],h=h+_|0,u=u+8|0,w=w+4|0,(I|0)!=(w|0););if(w=0,W)for(;X[h>>1]=Q[u>>1],u=u+2|0,h=(Z<<1)+h|0,w=w+1|0,(W|0)!=(w|0););if(v=v+1|0,(p|0)==(v|0))break}}if((k|0)<=0|(n|0)<=0)break i;for(A=o-8|0,r=0,e=e<<1;;){for(h=(r<<1)+f|0,u=(m(r,Z)<<1)+t|0,w=0;X[h>>1]=(((((X[u+2>>1]<<2)-X[u>>1]|0)+m(X[u+8>>1]+X[u+6>>1]|0,40)|0)+(X[u+12>>1]<<2)|0)-X[u+14>>1]|0)+m(X[u+10>>1]+X[u+4>>1]|0,-11)>>A,u=u+2|0,h=e+h|0,w=w+1|0,(w|0)!=(n|0););if(r=r+1|0,(k|0)==(r|0))break}}}function Nv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0;t=B-32|0,B=t,k=U(24),i[k+4>>2]=0,i[k+8>>2]=0,i[k>>2]=74112,n=k+12|0,i[n+8>>2]=A,i[k+16>>2]=r,i[k+12>>2]=68424,u=i[e>>2],i[t+8>>2]=k,i[t+4>>2]=n,i[k+4>>2]=i[k+4>>2]+1,A=t+12|0,h=t+4|0,r=B-32|0,B=r,o=U(132),i[o+4>>2]=0,i[o+8>>2]=0,i[o>>2]=72576,w=u,_=Ge(o+12|0),i[w+48>>2]=_,n=i[u+52>>2],i[u+52>>2]=o;i:{if(!n||(o=i[n+4>>2],i[n+4>>2]=o-1,o))break i;V[i[i[n>>2]+8>>2]](n),g(n)}_A(r+8|0,i[u+48>>2],h);i:{if(i[r+8>>2]){n=i[r+12>>2],i[A>>2]=i[r+8>>2],i[A+4>>2]=n,n=i[r+20>>2],i[A+8>>2]=i[r+16>>2],i[A+12>>2]=n,i[A+16>>2]=i[r+24>>2];break i}if(hA(A,u),l[r+27|0]>=0)break i;G(i[r+16>>2])}B=r+32|0,r=i[t+8>>2];i:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r)}P0(f,t+12|0,i[e>>2]),l[t+31|0]<0&&G(i[t+20>>2]),f=i[k+4>>2],i[k+4>>2]=f-1,f||(V[i[i[k>>2]+8>>2]](k),g(k)),B=t+32|0}function Rv(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0;Z=n+6|0,p=n+3|0;i:{if((p|0)>=-2){if((k|0)<=0)break i;for(C=t+6|0,I=k&2147483644,W=k&3,v=-3,y=k>>>0<4;;){if(h=(v<<1)+C|0,u=(m(A,v)<<1)+r|0,w=0,!y)for(;X[h>>1]=Q[u>>1],_=h,h=Z<<1,_=_+h|0,X[_>>1]=Q[u+2>>1],_=h+_|0,X[_>>1]=Q[u+4>>1],_=h+_|0,X[_>>1]=Q[u+6>>1],h=h+_|0,u=u+8|0,w=w+4|0,(I|0)!=(w|0););if(w=0,W)for(;X[h>>1]=Q[u>>1],u=u+2|0,h=(Z<<1)+h|0,w=w+1|0,(W|0)!=(w|0););if(v=v+1|0,(p|0)==(v|0))break}}if((k|0)<=0|(n|0)<=0)break i;for(A=o-8|0,r=0,e=e<<1;;){for(h=(r<<1)+f|0,u=(m(r,Z)<<1)+t|0,w=0;X[h>>1]=X[u+12>>1]+((((((X[u+2>>1]<<2)-X[u>>1]|0)+m(X[u+4>>1],-10)|0)+m(X[u+6>>1],58)|0)+m(X[u+8>>1],17)|0)+m(X[u+10>>1],-5)|0)>>A,u=u+2|0,h=e+h|0,w=w+1|0,(w|0)!=(n|0););if(r=r+1|0,(k|0)==(r|0))break}}}function Dv(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0,y=0;Z=n+6|0,p=n+4|0;i:{if((p|0)>=-1){if((k|0)<=0)break i;for(C=t+4|0,I=k&2147483644,W=k&3,v=-2,y=k>>>0<4;;){if(h=(v<<1)+C|0,u=(m(A,v)<<1)+r|0,w=0,!y)for(;X[h>>1]=Q[u>>1],_=h,h=Z<<1,_=_+h|0,X[_>>1]=Q[u+2>>1],_=h+_|0,X[_>>1]=Q[u+4>>1],_=h+_|0,X[_>>1]=Q[u+6>>1],h=h+_|0,u=u+8|0,w=w+4|0,(I|0)!=(w|0););if(w=0,W)for(;X[h>>1]=Q[u>>1],u=u+2|0,h=(Z<<1)+h|0,w=w+1|0,(W|0)!=(w|0););if(v=v+1|0,(p|0)==(v|0))break}}if((k|0)<=0|(n|0)<=0)break i;for(A=o-8|0,r=0,e=e<<1;;){for(h=(r<<1)+f|0,u=(m(r,Z)<<1)+t|0,w=0;X[h>>1]=(((((X[u>>1]+m(X[u+2>>1],-5)|0)+m(X[u+4>>1],17)|0)+m(X[u+6>>1],58)|0)+m(X[u+8>>1],-10)|0)+(X[u+10>>1]<<2)|0)-X[u+12>>1]>>A,u=u+2|0,h=e+h|0,w=w+1|0,(w|0)!=(n|0););if(r=r+1|0,(k|0)==(r|0))break}}}function Yn(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0;f=r;i:if((A-f|0)<3)break i;for(;;){i:{if(k>>>0<=o>>>0|f>>>0>=A>>>0)break i;e=l[f|0],t=e&255,n=1;r:{if((e|0)>=0)break r;if(e>>>0<4294967234)break i;if(e>>>0<=4294967263){if((s[f+1|0]&192)!=128|(A-f|0)<2)break i;n=2;break r}if(e>>>0<=4294967279){if((A-f|0)<3)break i;n=s[f+2|0],e=s[f+1|0];e:{A:{if((t|0)!=237){if((t|0)!=224)break A;if((e&224)==160)break e;break i}if((e&224)!=128)break i;break e}if((e&192)!=128)break i}if((n&192)!=128)break i;n=3;break r}if((A-f|0)<4|e>>>0>4294967284)break i;n=s[f+3|0],u=s[f+2|0],e=s[f+1|0];e:{A:switch(t-240|0){case 0:if((e+112&255)>>>0>=48)break i;break e;case 4:if((e&240)!=128)break i;break e;default:break A}if((e&192)!=128)break i}if((u&192)!=128|(n&192)!=128|(n&63|(u<<6&4032|(t<<18&1835008|(e&63)<<12)))>>>0>1114111)break i;n=4}o=o+1|0,f=f+n|0;continue}break}return f-r|0}function Jn(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0;f=r;i:if((A-f|0)<3)break i;for(;;){i:{if(k>>>0<=t>>>0|f>>>0>=A>>>0)break i;e=s[f|0],n=f+1|0;r:{if(e<<24>>24>=0)break r;if(e>>>0<194)break i;if(e>>>0<=223){if((s[f+1|0]&192)!=128|(A-f|0)<2)break i;n=f+2|0;break r}if(e>>>0<=239){if((A-f|0)<3)break i;o=s[f+2|0],n=s[f+1|0];e:{A:{if((e|0)!=237){if((e|0)!=224)break A;if((n&224)==160)break e;break i}if((n&224)!=128)break i;break e}if((n&192)!=128)break i}if((o&192)!=128)break i;n=f+3|0;break r}if((A-f|0)<4|e>>>0>244|k-t>>>0<2)break i;o=s[f+3|0],u=s[f+2|0],n=s[f+1|0];e:{A:switch(e-240|0){case 0:if((n+112&255)>>>0>=48)break i;break e;case 4:if((n&240)!=128)break i;break e;default:break A}if((n&192)!=128)break i}if((u&192)!=128|(o&192)!=128|(o&63|(u<<6&4032|(e<<18&1835008|(n&63)<<12)))>>>0>1114111)break i;t=t+1|0,n=f+4|0}f=n,t=t+1|0;continue}break}return f-r|0}function gn(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0;t=B-32|0,B=t,n=A&65535,o=A>>>16&32767;i:{if(o-16257>>>0<=253){k=(n&33554431)<<7|r>>>25,n=0,r=r&33554431;r:{if(!(!n&(r|0)==16777216?!(f|e):!n&r>>>0<16777216)){k=k+1|0;break r}if(r^16777216|f|(e|n))break r;k=(k&1)+k|0}f=k>>>0>8388607,k=f?0:k,f=o+(f?-16255:-16256)|0;break i}if(!(!(f|r|(e|n))|((o|0)!=32767|(k|0)!=0))){k=(n&33554431)<<7|r>>>25|4194304,f=255;break i}if(o>>>0>16510){f=255;break i}if(k=!(k|o),h=k?16256:16257,u=h-o|0,(u|0)>112){k=0,f=0;break i}n=k?n:n|65536,L1(t+16|0,f,e,r,n,128-u|0),ti(t,f,e,r,n,u),f=i[t+8>>2],k=(i[t+12>>2]&33554431)<<7|f>>>25,r=i[t>>2]|(o|0)!=(h|0)&(i[t+16>>2]|i[t+24>>2]|(i[t+20>>2]|i[t+28>>2]))!=0,n=i[t+4>>2],e=0,f=f&33554431;r:{if(!(!e&(f|0)==16777216?!(r|n):!e&f>>>0<16777216)){k=k+1|0;break r}if(f^16777216|r|(e|n))break r;k=(k&1)+k|0}f=k>>>0>8388607,k=f?k^8388608:k}return B=t+32|0,N2(2,A&-2147483648|f<<23|k),l8()}function Nn(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;i:{r:{if(A=i[f+4>>2],o=i[f>>2],n=A-o>>4,t=n+1|0,t>>>0<268435456){if(k=i[f+8>>2]-o|0,r=k>>3,u=k>>>0>=2147483632?268435455:r>>>0>t>>>0?r:t,u){if(u>>>0>=268435456)break r;h=U(u<<4)}if(k=i[e>>2],r=(n<<4)+h|0,i[r+12>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,i[r>>2]=k,k=i[e+8>>2],n=i[e+4>>2],(k|0)!=(n|0)){if(t=k-n|0,(t|0)<0)break i;k=U(t),i[r+4>>2]=k,e=k+t|0,i[r+12>>2]=e,l0(k,n,t),i[r+8>>2]=e}t=(u<<4)+h|0,u=r+16|0;e:{if((A|0)==(o|0)){h=r;break e}for(;e=A-16|0,n=i[e>>2],k=r-4|0,i[k>>2]=0,h=r-16|0,i[h>>2]=n,n=A-12|0,i[r-12>>2]=i[n>>2],i[r-8>>2]=i[A-8>>2],r=A-4|0,i[k>>2]=i[r>>2],i[r>>2]=0,i[n>>2]=0,i[n+4>>2]=0,r=h,A=e,(o|0)!=(A|0););A=i[f+4>>2],o=i[f>>2]}if(i[f+8>>2]=t,i[f+4>>2]=u,i[f>>2]=h,(A|0)!=(o|0))for(;f=i[A-12>>2],f&&(i[A-8>>2]=f,G(f)),A=A-16|0,(o|0)!=(A|0););return o&&G(o),u}y0(),P()}_2(),P()}y0(),P()}function Uv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,n=i[13708],i[A+12>>2]=n,k=A+12|0,i[k+i[n-12>>2]>>2]=i[13709],n=k+i[i[A+12>>2]-12>>2]|0,t=A+16|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,n=$0(t),i[n>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,t=A+148|0,R2(t,e,r),o=k,u=t,k=l[A+159|0],t=(k|0)<0,x(o,t?i[A+148>>2]:u,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:t,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),x(A+12|0,20213,18);i:{r:switch(i[e+48>>2]+1|0){case 1:x(A+12|0,22079,9);break i;case 2:x(A+12|0,22067,11);break i;case 0:break r;default:break i}x(A+12|0,22273,8)}i2(f,n),f=i[13707],i[A+12>>2]=f,i[i[f-12>>2]+(A+12|0)>>2]=i[13710],i[n>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(n),T0(A+68|0),B=A+160|0}function J0(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0,_=0;n=1;i:{r:{e:{A:switch(t=i[f+36>>2],t|0){case 0:case 1:case 2:case 3:case 99:break i;case 11:case 13:case 15:break e;case 10:case 12:case 14:break A;default:break r}n=3;break i}n=4;break i}n=0}o=A+1|0,h=o>>>0<64?64:o&-2,o=r+1|0,w=o>>>0<64?64:o&-2,k=(k|0)==24&&(t|0)==10?8:k,_=(t|0)==11&&(k|0)==32?8:k,u=m(m(n,w),(_&255)+7>>>3|0)+15&-16,o=U(m(h,u)|15),n=i[f+64>>2];i:{r:{if(!n){t=f- -64|0,k=t;break r}for(;;){if(k=n,t=i[n+16>>2],(t|0)>(e|0)){if(t=n,n=i[n>>2],n)continue;break r}if((e|0)<=(t|0))break i;if(n=i[k+4>>2],!n)break}t=k+4|0}n=U(52),i[n+48>>2]=u,i[n+44>>2]=o,u=o,o=o&15,i[n+40>>2]=u+(o?16-o|0:0),i[n+36>>2]=h,i[n+32>>2]=w,i[n+28>>2]=A,i[n+24>>2]=r,l[n+20|0]=_,i[n+16>>2]=e,i[n+8>>2]=k,i[n>>2]=0,i[n+4>>2]=0,i[t>>2]=n,e=i[i[f+60>>2]>>2],e&&(i[f+60>>2]=e,n=i[t>>2]),D1(i[f+64>>2],n),i[f+68>>2]=i[f+68>>2]+1}return 1}function Sr(f,e,r){var A=0,k=0,n=0,t=0,o=0;i:{r:{if((e|0)==8){e=Z2(r);break r}if(A=28,e&3|e>>>0<4||(n=e>>>2|0,n-1&n))break i;if(-64-e>>>0>>0)return 48;n=16,e=e>>>0<=16?16:e,A=e>>>0<=16?16:e;e:{if(!(A-1&A)){e=A;break e}for(;e=n,n=e<<1,e>>>0>>0;);}e:{if(-64-e>>>0<=r>>>0){i[23944]=48,r=0;break e}if(n=r>>>0<11?16:r+11&-8,k=Z2((n+e|0)+12|0),r=0,!k)break e;r=k-8|0;A:{if(!(k&e-1)){e=r;break A}if(t=k-4|0,o=i[t>>2],A=e,e=((e+k|0)-1&0-e)-8|0,e=(e-r>>>0<=15?A:0)+e|0,A=e-r|0,k=(o&-8)-A|0,!(o&3)){r=i[r>>2],i[e+4>>2]=k,i[e>>2]=r+A;break A}i[e+4>>2]=k|i[e+4>>2]&1|2,k=e+k|0,i[k+4>>2]=i[k+4>>2]|1,i[t>>2]=A|i[t>>2]&1|2,k=r+A|0,i[k+4>>2]=i[k+4>>2]|1,Xr(r,A)}r=i[e+4>>2];A:{if(!(r&3)||(A=r&-8,A>>>0<=n+16>>>0))break A;i[e+4>>2]=n|r&1|2,r=e+n|0,n=A-n|0,i[r+4>>2]=n|3,A=e+A|0,i[A+4>>2]=i[A+4>>2]|1,Xr(r,n)}r=e+8|0}e=r}if(!e)return 48;i[f>>2]=e,A=0}return A}function Mv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(!(i[r>>2]==1&(i[r+4>>2]&-2)==10)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(Q[A+24>>1]){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(r=s[A+26|0],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(r|0)!=1)break i;l[e+44|0]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,i[e+48>>2]=8,i[e+36>>2]=99,i[e+40>>2]=99,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,i[e+36>>2]=0,i[e+40>>2]=3,l[e+44|0]=s[A+8|0],i[e+48>>2]=8,r=s[A+23|0]|s[A+24|0]<<8|(s[A+25|0]<<16|s[A+26|0]<<24),l[e+59|0]=r,l[e+60|0]=r>>>8,l[e+61|0]=r>>>16,l[e+62|0]=r>>>24,i[e+56>>2]=i[A+20>>2],r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,i[e>>2]=0,i[e+4>>2]=3,i[e+16>>2]=72992,r=s[A+23|0]|s[A+24|0]<<8|(s[A+25|0]<<16|s[A+26|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,r=i[A+20>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)}B=e- -64|0}function xv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0;n=B-112|0,B=n;i:{if(!(k&&A)){e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560];break i}r:{if(t=i[e+16>>2],!t||(h=N0(t,72776,73168),!h))break r;if(t=i[e+20>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),o=i[e>>2],i[n+56>>2]=i[o+48>>2],o=i[o+52>>2],i[n+60>>2]=o,o&&(i[o+4>>2]=i[o+4>>2]+1),e=i[e+8>>2],o=i[e+8>>2],e=i[e+4>>2],u=i[n+60>>2],i[n+16>>2]=i[n+56>>2],i[n+20>>2]=u,u=n- -64|0,pr(u,n+16|0,r,e,o),i0[n+24>>3]=i[h+4>>2],i0[n+32>>3]=i[h+8>>2],e=i[n+36>>2],i[n+8>>2]=i[n+32>>2],i[n+12>>2]=e,e=i[n+28>>2],i[n>>2]=i[n+24>>2],i[n+4>>2]=e,me(n+40|0,u,n),i0[A>>3]=i0[n+40>>3],i0[k>>3]=i0[n+48>>3],i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,!t||(f=i[t+4>>2],i[t+4>>2]=f-1,f))break i;V[i[i[t>>2]+8>>2]](t),g(t);break i}e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560]}B=n+112|0}function zv(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;v=n+7|0,Z=n+4|0;i:{if((Z|0)>=-2){if((k|0)<=0)break i;for(W=t+6|0,C=k&2147483644,p=k&3,_=-3,I=k>>>0<4;;){if(u=(_<<1)+W|0,o=m(A,_)+r|0,h=0,!I)for(;X[u>>1]=s[o|0],w=u,u=v<<1,w=w+u|0,X[w>>1]=s[o+1|0],w=u+w|0,X[w>>1]=s[o+2|0],w=u+w|0,X[w>>1]=s[o+3|0],u=u+w|0,o=o+4|0,h=h+4|0,(C|0)!=(h|0););if(h=0,p)for(;X[u>>1]=s[o|0],o=o+1|0,u=(v<<1)+u|0,h=h+1|0,(p|0)!=(h|0););if(_=_+1|0,(Z|0)==(_|0))break}}if((k|0)<=0|(n|0)<=0)break i;for(r=0,e=e<<1;;){for(u=(r<<1)+f|0,o=(m(r,v)<<1)+t|0,h=0;X[u>>1]=(((((Q[o+2>>1]<<2)-Q[o>>1]|0)+m(Q[o+8>>1]+Q[o+6>>1]|0,40)|0)+(Q[o+12>>1]<<2)|0)-Q[o+14>>1]|0)+m(Q[o+10>>1]+Q[o+4>>1]|0,-11),o=o+2|0,u=e+u|0,h=h+1|0,(h|0)!=(n|0););if(r=r+1|0,(k|0)==(r|0))break}}}function Hv(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;v=n+6|0,Z=n+3|0;i:{if((Z|0)>=-2){if((k|0)<=0)break i;for(W=t+6|0,C=k&2147483644,p=k&3,_=-3,I=k>>>0<4;;){if(u=(_<<1)+W|0,o=m(A,_)+r|0,h=0,!I)for(;X[u>>1]=s[o|0],w=u,u=v<<1,w=w+u|0,X[w>>1]=s[o+1|0],w=u+w|0,X[w>>1]=s[o+2|0],w=u+w|0,X[w>>1]=s[o+3|0],u=u+w|0,o=o+4|0,h=h+4|0,(C|0)!=(h|0););if(h=0,p)for(;X[u>>1]=s[o|0],o=o+1|0,u=(v<<1)+u|0,h=h+1|0,(p|0)!=(h|0););if(_=_+1|0,(Z|0)==(_|0))break}}if((k|0)<=0|(n|0)<=0)break i;for(r=0,e=e<<1;;){for(u=(r<<1)+f|0,o=(m(r,v)<<1)+t|0,h=0;X[u>>1]=Q[o+12>>1]+((((((Q[o+2>>1]<<2)-Q[o>>1]|0)+m(Q[o+4>>1],-10)|0)+m(Q[o+6>>1],58)|0)+m(Q[o+8>>1],17)|0)+m(Q[o+10>>1],-5)|0),o=o+2|0,u=e+u|0,h=h+1|0,(h|0)!=(n|0););if(r=r+1|0,(k|0)==(r|0))break}}}function Tv(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;v=n+6|0,Z=n+4|0;i:{if((Z|0)>=-1){if((k|0)<=0)break i;for(W=t+4|0,C=k&2147483644,p=k&3,_=-2,I=k>>>0<4;;){if(u=(_<<1)+W|0,o=m(A,_)+r|0,h=0,!I)for(;X[u>>1]=s[o|0],w=u,u=v<<1,w=w+u|0,X[w>>1]=s[o+1|0],w=u+w|0,X[w>>1]=s[o+2|0],w=u+w|0,X[w>>1]=s[o+3|0],u=u+w|0,o=o+4|0,h=h+4|0,(C|0)!=(h|0););if(h=0,p)for(;X[u>>1]=s[o|0],o=o+1|0,u=(v<<1)+u|0,h=h+1|0,(p|0)!=(h|0););if(_=_+1|0,(Z|0)==(_|0))break}}if((k|0)<=0|(n|0)<=0)break i;for(r=0,e=e<<1;;){for(u=(r<<1)+f|0,o=(m(r,v)<<1)+t|0,h=0;X[u>>1]=(((((Q[o>>1]+m(Q[o+2>>1],-5)|0)+m(Q[o+4>>1],17)|0)+m(Q[o+6>>1],58)|0)+m(Q[o+8>>1],-10)|0)+(Q[o+10>>1]<<2)|0)-Q[o+12>>1],o=o+2|0,u=e+u|0,h=h+1|0,(h|0)!=(n|0););if(r=r+1|0,(k|0)==(r|0))break}}}function Rn(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0;if(n=B-48|0,B=n,t=f+4|0,i[t>>2]=0,i[t+4>>2]=0,i[t+16>>2]=0,i[t+8>>2]=0,i[t+12>>2]=0,D8(n+40|0,e,18983),o=i[n+40>>2],t=o,l[t+124|0]=1,i[t+52>>2]=i[t+52>>2]&-2|1,t=G2(r),t>>>0<2147483640){i:{r:{if(t>>>0>=11){h=(t|7)+1|0,u=U(h),i[n+36>>2]=h|-2147483648,i[n+28>>2]=u,i[n+32>>2]=t;break r}if(l[n+39|0]=t,u=n+28|0,!t)break i}l0(u,r,t)}l[t+u|0]=0,r=o+112|0;i:{if((r|0)==(n+28|0))break i;if(t=l[n+39|0],l[o+123|0]>=0){if((t|0)>=0){t=i[n+32>>2],i[r>>2]=i[n+28>>2],i[r+4>>2]=t,i[r+8>>2]=i[n+36>>2];break i}i4(r,i[n+28>>2],i[n+32>>2]);break i}o=r,r=(t|0)<0,_4(o,r?i[n+28>>2]:n+28|0,r?i[n+32>>2]:t)}l[n+39|0]<0&&G(i[n+28>>2]),i[f>>2]=i[i[n+40>>2]+56>>2],MA(n+8|0,e,n+40|0,A,k,0),l[n+27|0]<0&&G(i[n+16>>2]),f=i[n+44>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=n+48|0;return}c2(),P()}function Dn(f,e,r,A,k,n){var t=0,o=0,u=0,h=0,w=0;if(t=B-48|0,B=t,o=f+4|0,i[o>>2]=0,i[o+4>>2]=0,i[o+16>>2]=0,i[o+8>>2]=0,i[o+12>>2]=0,D8(t+40|0,e,9980),u=i[t+40>>2],o=u,l[o+124|0]=1,i[o+52>>2]=i[o+52>>2]&-2|1,o=G2(r),o>>>0<2147483640){i:{r:{if(o>>>0>=11){w=(o|7)+1|0,h=U(w),i[t+36>>2]=w|-2147483648,i[t+28>>2]=h,i[t+32>>2]=o;break r}if(l[t+39|0]=o,h=t+28|0,!o)break i}l0(h,r,o)}l[o+h|0]=0,r=u+88|0;i:{if((r|0)==(t+28|0))break i;if(o=l[t+39|0],l[u+99|0]>=0){if((o|0)>=0){o=i[t+32>>2],i[r>>2]=i[t+28>>2],i[r+4>>2]=o,i[r+8>>2]=i[t+36>>2];break i}i4(r,i[t+28>>2],i[t+32>>2]);break i}u=r,r=(o|0)<0,_4(u,r?i[t+28>>2]:t+28|0,r?i[t+32>>2]:o)}l[t+39|0]<0&&G(i[t+28>>2]),i[f>>2]=i[i[t+40>>2]+56>>2],MA(t+8|0,e,t+40|0,k,n,A),l[t+27|0]<0&&G(i[t+16>>2]),f=i[t+44>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=t+48|0;return}c2(),P()}function Un(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;if(A=i[f+8>>2],r=i[f+4>>2],A-r>>3>>>0>=e>>>0){if(e)for(e=(e<<3)+r|0;i[r>>2]=0,i[r+4>>2]=0,r=r+8|0,(e|0)!=(r|0););i[f+4>>2]=r;return}i:{if(k=i[f>>2],n=r-k>>3,t=n+e|0,t>>>0<536870912){if(A=A-k|0,k=A>>2,t=A>>>0>=2147483640?536870911:t>>>0>>0?k:t,t){if(t>>>0>=536870912)break i;k=U(t<<3)}else k=0;for(A=k+(n<<3)|0,n=A+(e<<3)|0,e=A;i[e>>2]=0,i[e+4>>2]=0,e=e+8|0,(n|0)!=(e|0););if(r=i[f+4>>2],o=i[f>>2],(r|0)!=(o|0)){for(;A=A-8|0,r=r-8|0,u=B-16|0,B=u,s[79117]==1&&(i[u+4>>2]=r,i[u>>2]=A,f8(22036,u)),n=i[r+4>>2],n&&(i[n>>2]=i[n>>2]+1),i[A+4>>2]=n,i[A>>2]=i[r>>2],B=u+16|0,(r|0)!=(o|0););r=i[f+4>>2],o=i[f>>2]}if(i[f+4>>2]=e,i[f>>2]=A,i[f+8>>2]=(t<<3)+k,(r|0)!=(o|0))for(;r=C8(r-8|0),(o|0)!=(r|0););o&&G(o);return}y0(),P()}_2(),P()}function av(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;if(!(!e|!r)){A=Q[e>>1],Z0[r>>2]=(A+28535&65535)>>>0<28540?Y(0):Y(+(A>>>0)*2e-5),A=Q[e+6>>1],Z0[r+12>>2]=(A+23535&65535)>>>0<23540?Y(0):Y(+(A>>>0)*2e-5),A=Q[e+2>>1],Z0[r+4>>2]=(A+28535&65535)>>>0<28540?Y(0):Y(+(A>>>0)*2e-5),A=Q[e+8>>1],Z0[r+16>>2]=(A+23535&65535)>>>0<23540?Y(0):Y(+(A>>>0)*2e-5),A=Q[e+4>>1],Z0[r+8>>2]=(A+28535&65535)>>>0<28540?Y(0):Y(+(A>>>0)*2e-5),A=Q[e+10>>1],Z0[r+20>>2]=(A+23535&65535)>>>0<23540?Y(0):Y(+(A>>>0)*2e-5),A=Q[e+12>>1],Z0[r+24>>2]=(A+28535&65535)>>>0<28540?Y(0):Y(+(A>>>0)*2e-5),A=Q[e+14>>1],Z0[r+28>>2]=(A+23535&65535)>>>0<23540?Y(0):Y(+(A>>>0)*2e-5),A=i[e+16>>2],i0[r+32>>3]=A-100000001>>>0<4195017295?0:+(A>>>0)*1e-4,e=i[e+20>>2],i0[r+40>>3]=e-50001>>>0<4294917296?0:+(e>>>0)*1e-4,i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e;return}e=i[18414],i[f>>2]=i[18413],i[f+4>>2]=e,i[f+8>>2]=i[18415]}function Sv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e,A=i[r+4>>2];i:{if(!(!s[k+12|0]|((A|0)==3|i[k+8>>2]==1))){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!(!(i[r>>2]|(A|0)!=1)&i[r+12>>2]==8)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(A=Q[r+24>>1],!(A>>>0>14|!(1<>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(r=s[r+26|0],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(r|0)!=1)break i;l[e+44|0]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,i[e+48>>2]=8,i[e+36>>2]=99,i[e+40>>2]=99,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,l[e+44|0]=1,i[e+48>>2]=8,i[e+36>>2]=1,i[e+40>>2]=11,r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,r=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,i[e>>2]=1,i[e+4>>2]=11,i[e+16>>2]=72992,i[e+20>>2]=i[e+56>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function Ov(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0;e=B+-64|0,B=e;i:{if(!(!(!s[r+8|0]|k0[r+4>>2]>3)&s[A+8|0]!=1)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,i[e+44>>2]=8,l[e+40|0]=0,l[e+58|0]=1,X[e+56>>1]=2,i[e+52>>2]=131074,i[e+32>>2]=99,i[e+36>>2]=99,i[e+48>>2]=72992,l[e+58|0]=1,X[e+56>>1]=6,i[e+52>>2]=851969,A=i[r+12>>2],i[e+40>>2]=i[r+8>>2],i[e+44>>2]=A,n=i[r+4>>2],A=i[r>>2],i[e+32>>2]=A,i[e+36>>2]=n,k=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+55|0]=k,l[e+56|0]=k>>>8,l[e+57|0]=k>>>16,l[e+58|0]=k>>>24,k=i[r+20>>2],l[e+40|0]=0,i[e+52>>2]=k,k=i[e+44>>2],i[e+8>>2]=i[e+40>>2],i[e+12>>2]=k,i[e>>2]=A,i[e+4>>2]=n,i[e+16>>2]=72992,A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,r=i[r+20>>2],i[e+28>>2]=1,i[e+20>>2]=r,P2(f,e)}B=e- -64|0}function v6(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;i:{r:{if(n=i[f+4>>2],t=i[f>>2],o=(n-t|0)/12|0,r=o+1|0,r>>>0<357913942){if(A=(i[f+8>>2]-t|0)/12|0,k=A<<1,A=A>>>0>=178956970?357913941:r>>>0>>0?k:r,A){if(A>>>0>=357913942)break r;u=U(m(A,12))}if(r=m(o,12)+u|0,i[r+8>>2]=0,i[r>>2]=0,i[r+4>>2]=0,k=i[e+4>>2],o=i[e>>2],(k|0)!=(o|0)){if(e=k-o|0,(e|0)<0)break i;k=U(e),i[r>>2]=k,h=e+k|0,i[r+8>>2]=h,l0(k,o,e),i[r+4>>2]=h}o=m(A,12)+u|0,u=r+12|0;e:{if((n|0)==(t|0)){e=r;break e}for(;k=r-4|0,i[k>>2]=0,e=r-12|0,A=n-12|0,i[e>>2]=i[A>>2],i[r-8>>2]=i[n-8>>2],r=n-4|0,i[k>>2]=i[r>>2],i[r>>2]=0,i[A>>2]=0,i[A+4>>2]=0,r=e,n=A,(t|0)!=(A|0););n=i[f+4>>2],t=i[f>>2]}if(i[f+8>>2]=o,i[f+4>>2]=u,i[f>>2]=e,(n|0)!=(t|0))for(;f=n-12|0,e=i[f>>2],e&&(i[n-8>>2]=e,G(e)),n=f,(t|0)!=(f|0););return t&&G(t),u}y0(),P()}_2(),P()}y0(),P()}function jv(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0;e=B+-64|0,B=e;i:{if(!(i[r+12>>2]!=8&k0[r+4>>2]<=3)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(A=i[A+12>>2],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(A|0)!=8)break i;l[e+40|0]=0,l[e+58|0]=1,X[e+56>>1]=2,i[e+52>>2]=131074,i[e+44>>2]=8,i[e+32>>2]=99,i[e+36>>2]=99,i[e+48>>2]=72992,l[e+58|0]=1,X[e+56>>1]=6,i[e+52>>2]=851969,i[e+40>>2]=i[r+8>>2],n=i[r+4>>2],A=i[r>>2],i[e+32>>2]=A,i[e+36>>2]=n,k=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+55|0]=k,l[e+56|0]=k>>>8,l[e+57|0]=k>>>16,l[e+58|0]=k>>>24,i[e+52>>2]=i[r+20>>2],i[e+44>>2]=8,k=i[e+44>>2],i[e+8>>2]=i[e+40>>2],i[e+12>>2]=k,i[e>>2]=A,i[e+4>>2]=n,i[e+16>>2]=72992,A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,r=i[r+20>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)}B=e- -64|0}function Pv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-32|0,B=A,f=i[f>>2],n=i[f+48>>2],k=i[f+52>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),i[A+28>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,I1(A,n,e,A+20|0),n=-1;i:{if(i[A>>2]||(e=r-1|0,f=i[A+20>>2],e>>>0>=i[A+24>>2]-f>>3>>>0)||(f=f+(e<<3)|0,e=i[f>>2],!e)||(e=N0(e,68572,69532),!e))break i;if(f=i[f+4>>2],!f){n=i[e+48>>2];break i}if(r=i[f+4>>2],t=r+1|0,i[f+4>>2]=t,n=i[e+48>>2],i[f+4>>2]=r,t)break i;V[i[i[f>>2]+8>>2]](f),g(f)}if(l[A+19|0]<0&&G(i[A+8>>2]),r=i[A+20>>2],r){if(f=i[A+24>>2],e=r,(f|0)!=(e|0)){for(;;){e=i[f-4>>2];i:{if(!e||(t=i[e+4>>2],i[e+4>>2]=t-1,t))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(f=f-8|0,(r|0)==(f|0))break}e=i[A+20>>2]}i[A+24>>2]=r,G(e)}i:{if(!k||(f=i[k+4>>2],i[k+4>>2]=f-1,f))break i;V[i[i[k>>2]+8>>2]](k),g(k)}return B=A+32|0,n|0}function Lv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-32|0,B=A,f=i[f>>2],n=i[f+48>>2],k=i[f+52>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),i[A+28>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,I1(A,n,e,A+20|0),n=-1;i:{if(i[A>>2]||(e=r-1|0,f=i[A+20>>2],e>>>0>=i[A+24>>2]-f>>3>>>0)||(f=f+(e<<3)|0,e=i[f>>2],!e)||(e=N0(e,68572,69472),!e))break i;if(f=i[f+4>>2],!f){n=i[e+48>>2];break i}if(r=i[f+4>>2],t=r+1|0,i[f+4>>2]=t,n=i[e+48>>2],i[f+4>>2]=r,t)break i;V[i[i[f>>2]+8>>2]](f),g(f)}if(l[A+19|0]<0&&G(i[A+8>>2]),r=i[A+20>>2],r){if(f=i[A+24>>2],e=r,(f|0)!=(e|0)){for(;;){e=i[f-4>>2];i:{if(!e||(t=i[e+4>>2],i[e+4>>2]=t-1,t))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(f=f-8|0,(r|0)==(f|0))break}e=i[A+20>>2]}i[A+24>>2]=r,G(e)}i:{if(!k||(f=i[k+4>>2],i[k+4>>2]=f-1,f))break i;V[i[i[k>>2]+8>>2]](k),g(k)}return B=A+32|0,n|0}function Kv(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-32|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(A,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(k=i[19565],i[A>>2]=i[19564],i[A+4>>2]=k,k=A+8|0,l[78275]>=0){n=i[19567],i[k>>2]=i[19566],i[k+4>>2]=n,i[k+8>>2]=i[19568];break i}_0(k,i[19566],i[19567])}l[A+19|0]<0&&G(i[A+8>>2]);i:{if(s[e+48|0]){h4(f,e,7491);break i}if(B4(A+20|0,r),l[e+67|0]<0&&G(i[e+56>>2]),k=i[A+24>>2],i[e+56>>2]=i[A+20>>2],i[e+60>>2]=k,i[e+64>>2]=i[A+28>>2],s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(f,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function qv(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0;i:{if((n|0)<=0|(k|0)<=0)break i;for(_=o-8|0,v=r-6|0;;){for(r=(w<<1)+t|0,o=v+(m(A,w)<<1)|0,u=0;X[r>>1]=(((((Q[o+2>>1]<<2)-Q[o>>1]|0)+m(Q[o+8>>1]+Q[o+6>>1]|0,40)|0)+(Q[o+12>>1]<<2)|0)-Q[o+14>>1]|0)+m(Q[o+10>>1]+Q[o+4>>1]|0,-11)>>_,o=o+2|0,r=(n<<1)+r|0,u=u+1|0,(u|0)!=(k|0););if(w=w+1|0,(w|0)==(n|0))break}if((n|0)<=0)break i;for(_=n&2147483644,w=n&3,A=0,v=n>>>0<4;;){if(r=(A<<1)+f|0,o=(m(A,n)<<1)+t|0,u=0,!v)for(;X[r>>1]=Q[o>>1],h=r,r=e<<1,h=h+r|0,X[h>>1]=Q[o+2>>1],h=r+h|0,X[h>>1]=Q[o+4>>1],h=r+h|0,X[h>>1]=Q[o+6>>1],r=r+h|0,o=o+8|0,u=u+4|0,(_|0)!=(u|0););if(u=0,w)for(;X[r>>1]=Q[o>>1],o=o+2|0,r=(e<<1)+r|0,u=u+1|0,(w|0)!=(u|0););if(A=A+1|0,(k|0)==(A|0))break}}}function Or(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;i:{r:{if(o=i[19572],(o|0)!=78292)for(;;){w=i[o+16>>2],A=i[w>>2];e:{if(i[A+4>>2]!=(e|0)&&e||r&&v4(r,i[A+8>>2]))break e;t=i[f+8>>2];A:{if(t>>>0>n>>>0){i[n>>2]=w,n=n+4|0;break A}if(k=i[f>>2],h=n-k>>2,A=h+1|0,A>>>0>=1073741824)break r;if(_=h<<2,t=t-k|0,u=t>>1,u=t>>>0>=2147483644?1073741823:A>>>0>>0?u:A,u){if(u>>>0>=1073741824)break i;h=U(u<<2)}else h=0;if(t=_+h|0,i[t>>2]=w,A=t,(k|0)!=(n|0)){for(;A=A-4|0,n=n-4|0,i[A>>2]=i[n>>2],(k|0)!=(n|0););k=i[f>>2]}if(n=t+4|0,i[f+8>>2]=h+(u<<2),i[f>>2]=A,!k)break A;G(k)}i[f+4>>2]=n}k=i[o+4>>2];e:{if(k){for(;;)if(A=k,k=i[A>>2],!k)break e}for(;A=i[o+8>>2],k=i[A>>2]!=(o|0),o=A,!!k;);}if(o=A,(A|0)==78292)break}return}y0(),P()}_2(),P()}function gA(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0;if(!A){i[f>>2]=5,i[f+4>>2]=2001,i[f+8>>2]=31341;return}i:{r:{n=i[e>>2],t=i[n+20>>2];e:{if(!t)break e;for(o=n+20|0,n=o;k=k0[t+16>>2]>>0,n=k?n:t,t=i[(k<<2)+t>>2],!!t;);if(k=0,(n|0)==(o|0)|k0[n+16>>2]>r>>>0)break e;if(t=i[n+20>>2],k=i[n+24>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),t)break r}i[A>>2]=0,i[f+8>>2]=31341,i[f>>2]=5,i[f+4>>2]=2e3;break i}r=U(16),i[r+8>>2]=0,i[r+12>>2]=0,i[A>>2]=r,k&&(i[k+4>>2]=i[k+4>>2]+1),i[r+4>>2]=k,i[r>>2]=t,n=i[e>>2],r=i[A>>2],A=i[e+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[r+8>>2]=n,e=i[r+12>>2],i[r+12>>2]=A;r:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break r;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}i:{if(!k||(f=i[k+4>>2],i[k+4>>2]=f-1,f))break i;V[i[i[k>>2]+8>>2]](k),g(k)}}function $v(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0;i:{if((n|0)<=0|(k|0)<=0)break i;for(_=o-8|0,v=r-6|0;;){for(r=(w<<1)+t|0,o=v+(m(A,w)<<1)|0,u=0;X[r>>1]=Q[o+12>>1]+((((((Q[o+2>>1]<<2)-Q[o>>1]|0)+m(Q[o+4>>1],-10)|0)+m(Q[o+6>>1],58)|0)+m(Q[o+8>>1],17)|0)+m(Q[o+10>>1],-5)|0)>>_,o=o+2|0,r=(n<<1)+r|0,u=u+1|0,(u|0)!=(k|0););if(w=w+1|0,(w|0)==(n|0))break}if((n|0)<=0)break i;for(_=n&2147483644,w=n&3,A=0,v=n>>>0<4;;){if(r=(A<<1)+f|0,o=(m(A,n)<<1)+t|0,u=0,!v)for(;X[r>>1]=Q[o>>1],h=r,r=e<<1,h=h+r|0,X[h>>1]=Q[o+2>>1],h=r+h|0,X[h>>1]=Q[o+4>>1],h=r+h|0,X[h>>1]=Q[o+6>>1],r=r+h|0,o=o+8|0,u=u+4|0,(_|0)!=(u|0););if(u=0,w)for(;X[r>>1]=Q[o>>1],o=o+2|0,r=(e<<1)+r|0,u=u+1|0,(w|0)!=(u|0););if(A=A+1|0,(k|0)==(A|0))break}}}function bv(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0;i:{if((n|0)<=0|(k|0)<=0)break i;for(_=o-8|0,v=r-4|0;;){for(r=(w<<1)+t|0,o=v+(m(A,w)<<1)|0,u=0;X[r>>1]=(((((Q[o>>1]+m(Q[o+2>>1],-5)|0)+m(Q[o+4>>1],17)|0)+m(Q[o+6>>1],58)|0)+m(Q[o+8>>1],-10)|0)+(Q[o+10>>1]<<2)|0)-Q[o+12>>1]>>_,o=o+2|0,r=(n<<1)+r|0,u=u+1|0,(u|0)!=(k|0););if(w=w+1|0,(w|0)==(n|0))break}if((n|0)<=0)break i;for(_=n&2147483644,w=n&3,A=0,v=n>>>0<4;;){if(r=(A<<1)+f|0,o=(m(A,n)<<1)+t|0,u=0,!v)for(;X[r>>1]=Q[o>>1],h=r,r=e<<1,h=h+r|0,X[h>>1]=Q[o+2>>1],h=r+h|0,X[h>>1]=Q[o+4>>1],h=r+h|0,X[h>>1]=Q[o+6>>1],r=r+h|0,o=o+8|0,u=u+4|0,(_|0)!=(u|0););if(u=0,w)for(;X[r>>1]=Q[o>>1],o=o+2|0,r=(e<<1)+r|0,u=u+1|0,(w|0)!=(u|0););if(A=A+1|0,(k|0)==(A|0))break}}}function dv(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0,v=0;u=i[e+24>>2],u>>>0>k0[e+44>>2]&&(i[e+44>>2]=u),u=-1,v=-1,h=n&24;i:{if(!h|(k|0)==1&(h|0)==24)break i;h=i[e+44>>2],h&&(t=e+32|0,s[t+11|0]>>>7|0&&(t=i[t>>2]),t=h-t|0,w=t>>31);r:{e:switch(k|0){case 1:if(n&8){o=i[e+12>>2]-i[e+8>>2]|0,_=o>>31;break r}o=i[e+24>>2]-i[e+20>>2]|0,_=o>>31;break r;case 0:break r;case 2:break e;default:break i}o=t,_=w}if(A=A+_|0,r=r+o|0,A=o>>>0>r>>>0?A+1|0:A,(A|0)<0|(r>>>0>t>>>0&(A|0)>=(w|0)|(A|0)>(w|0)))break i;k=n&8;r:{if(!(r|A))break r;if(!i[e+12>>2]&&k)break i;if(!(n&16))break r;if(!i[e+24>>2])break i}k&&(k=i[e+8>>2],i[e+16>>2]=i[e+44>>2],i[e+12>>2]=r+k,i[e+8>>2]=k),n&16&&(k=i[e+20>>2],i[e+28>>2]=i[e+28>>2],i[e+20>>2]=k,i[e+24>>2]=k,i[e+24>>2]=r+i[e+24>>2]),u=r,v=A}i[f+8>>2]=u,i[f+12>>2]=v,i[f>>2]=0,i[f+4>>2]=0}function p8(f,e,r){var A=0,k=0,n=0,t=0;n=B-16|0,B=n,A=U(72),i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=71664,t=A+16|0,i[t+8>>2]=0,i[t+12>>2]=0,i[t+16>>2]=0,i[t+20>>2]=0,i[t+24>>2]=0,i[t+28>>2]=0,i[t+32>>2]=0,i[t>>2]=68500,i[A+60>>2]=0,i[A+52>>2]=0,i[A+56>>2]=0,i[t>>2]=73032,i[A+32>>2]=1668246642,i[A+64>>2]=0,i[A+68>>2]=0,k=i[r>>2],r=i[r+4>>2];i:{if(!r){i[A+68>>2]=r,i[A+64>>2]=k;break i}if(i[r+4>>2]=i[r+4>>2]+1,i[A+64>>2]=k,k=i[A+68>>2],i[A+68>>2]=r,!k||(r=i[k+4>>2],i[k+4>>2]=r-1,r))break i;V[i[i[k>>2]+8>>2]](k),g(k)}r=i[f+44>>2],i[n+12>>2]=A,i[n+8>>2]=t,i[A+4>>2]=i[A+4>>2]+1,t=N4(r,n+8|0),k=i[n+12>>2];i:{if(!k||(r=i[k+4>>2],i[k+4>>2]=r-1,r))break i;V[i[i[k>>2]+8>>2]](k),g(k)}f=i[f+52>>2],X[n+6>>1]=t+1,l[n+4|0]=0,i[n>>2]=Q[n+4>>1]|Q[n+6>>1]<<16,c1(f,e,n),f=i[A+4>>2],i[A+4>>2]=f-1,f||(V[i[i[A>>2]+8>>2]](A),g(A)),B=n+16|0}function cv(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;k=B-16|0,B=k,A=i[e+12>>2],f=i[e+4>>2],w=(A+f|0)-1|0,n=(w|0)%(A|0)|0,t=(A+((f|0)/s[r+50|0]|0)|0)-1|0,o=(t|0)%(A|0)|0,u=i[e+8>>2],h=(u|0)/s[r+51|0]|0;i:{r:{e:{if(f=s[r+48|0],(f-8&255)>>>0<9){if(A=s[r+49|0],(A-8&255)>>>0>=9)break e;if(e=0,i[k+4>>2]=0,_=u,u=w-n|0,f=Sr(k+4|0,16,m(m(_,u),(f+7&248)>>>3|0)),n=f?0:i[k+4>>2],!i[r+20>>2]){if(h=0,o=0,!n)break i;break r}if(i[k+8>>2]=0,o=t-o|0,f=m(m(h,o),(A+7&248)>>>3|0),A=Sr(k+8|0,16,f),e=i[k+8>>2],i[k+12>>2]=0,f=Sr(k+12|0,16,f),h=i[k+12>>2],t=f?0:h,f=A?0:e,!(!n||!f|!t))break r;if(n&&G(n),f&&G(f),e=0,!t)break i;G(t);break i}C0(16497,14027,117,5695),P()}C0(16543,14027,118,5695),P()}i[r+292>>2]=0,i[r+4>>2]=n,i[r+40>>2]=u,i[r+8>>2]=e,i[r+296>>2]=0,i[r+300>>2]=0,i[r+12>>2]=h,i[r+44>>2]=o,e=1}return B=k+16|0,e|0}function im(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;if(n=B-32|0,B=n,t=V[i[i[e>>2]+32>>2]](e,r,0)|0,l2(r,i[e+60>>2]-i[e+56>>2]>>4),A=i[e+56>>2],o=i[e+60>>2],(A|0)!=(o|0))for(;;){k=i[A>>2];i:{if(!s[e+48|0]){w2(r,k&65535);break i}l2(r,k)}if(A2(r,i[A+8>>2]-i[A+4>>2]>>>2&255),k=i[A+4>>2],u=i[A+8>>2],(k|0)!=(u|0))for(;;){h=Q[k+2>>1],w=s[k|0];i:{if(l[e+52|0]&1){w2(r,(h&32767|(w&1?-32768:0))&65535);break i}A2(r,(h&127|(w&1?-128:0))&255)}if(k=k+4|0,(u|0)==(k|0))break}if(A=A+16|0,(o|0)==(A|0))break}i[r+12>>2]=t,V[i[i[e>>2]+36>>2]](n+12|0,e,r,i[r+4>>2]-(i[r>>2]+t|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[n+31|0]<0&&G(i[n+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=n+32|0}function rm(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0;r=B-96|0,B=r;i:{r:{e:{if(i[f+16>>2]!=i[e+16>>2])break e;i[r+88>>2]=0,i[r+92>>2]=0,i[r+80>>2]=0,i[r+84>>2]=0,i[r+72>>2]=0,i[r+76>>2]=0,i[r+64>>2]=0,i[r+68>>2]=0,V[i[i[f>>2]+16>>2]](r+44|0,f,r+80|0),l[r+63|0]<0&&G(i[r+52>>2]),V[i[i[e>>2]+16>>2]](r+24|0,e,r- -64|0),l[r+43|0]<0&&G(i[r+32>>2]),i[r+20>>2]=0,i[r+12>>2]=0,i[r+16>>2]=0,f=i[r+84>>2],A=i[r+80>>2];A:{if((f|0)==(A|0)){e=0,A=0;break A}if(f=f-A|0,(f|0)<0)break r;e=U(f),A=l0(e,A,f)+f|0}i[r+8>>2]=0,i[r>>2]=0,i[r+4>>2]=0,f=i[r+68>>2],k=i[r+64>>2];A:{if((f|0)==(k|0)){f=0;break A}if(n=f-k|0,(n|0)<0)break i;f=U(n),n=l0(f,k,n)+n|0}if(k=0,A=A-e|0,(A|0)==(n-f|0)&&(k=!K2(e,f,A)),f&&G(f),e&&G(e),f=i[r+64>>2],f&&(i[r+68>>2]=f,G(f)),f=i[r+80>>2],!f)break e;i[r+84>>2]=f,G(f)}return B=r+96|0,k|0}y0(),P()}y0(),P()}function em(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0;t=B-32|0,B=t,o=V[i[i[e>>2]+32>>2]](e,r,0)|0,k=+(1<>2]>>>0),n=i0[e+56>>3]*k;i:{if(d0(n)<2147483648){A=~~n;break i}A=-2147483648}l2(r,A),n=i0[e+64>>3]*k;i:{if(d0(n)<2147483648){A=~~n;break i}A=-2147483648}l2(r,A),n=i0[e+72>>3]*k;i:{if(d0(n)<2147483648){A=~~n;break i}A=-2147483648}if(l2(r,A),l[e+52|0]&1){k=i0[e+88>>3]*k;i:{if(d0(k)<2147483648){A=~~k;break i}A=-2147483648}l2(r,A),k=i0[e+96>>3]*+(1<>2]>>>0);i:{if(d0(k)<2147483648){A=~~k;break i}A=-2147483648}l2(r,A)}i[r+12>>2]=o,V[i[i[e>>2]+36>>2]](t+12|0,e,r,i[r+4>>2]-(i[r>>2]+o|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[t+31|0]<0&&G(i[t+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=t+32|0}function Mn(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0;if(i[f>>2]=74936,A=i[f+128>>2],A){if(e=A,n=i[f+132>>2],(e|0)!=(n|0)){for(;;){if(o=n-12|0,k=i[o>>2],k){if(e=k,u=n-8|0,r=i[u>>2],(e|0)!=(r|0)){for(;e=r-12|0,t=i[e>>2],t&&(i[r-8>>2]=t,G(t)),r=e,(e|0)!=(k|0););e=i[o>>2]}i[u>>2]=k,G(e)}if(n=n-16|0,(A|0)==(n|0))break}e=i[f+128>>2]}i[f+132>>2]=A,G(e)}if(e=i[f+108>>2],e&&(i[f+112>>2]=e,G(e)),e=i[f+96>>2],e&&(i[f+100>>2]=e,G(e)),e=i[f+84>>2],e&&G(e),e=i[f+72>>2],e&&(i[f+76>>2]=e,G(e)),i[f>>2]=68616,A=i[f+36>>2],A){if(e=i[f+40>>2],r=A,(e|0)!=(r|0)){for(;;){r=i[e-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(e=e-8|0,(A|0)==(e|0))break}r=i[f+36>>2]}i[f+40>>2]=A,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function Am(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0;i:{if(n=V[i[i[e>>2]+68>>2]](i[e+4>>2])|0,k=i[n>>2],!k)break i;for(;;){if(v4(i[k+4>>2],r)){if(k=i[n+4>>2],n=n+4|0,k)continue;break i}break}r:switch(i[k+8>>2]-1|0){case 0:for(k=f,n=e,t=r;f=A,A=A+1|0,e=l[f|0],!!((e|0)==32|e-9>>>0<5););r=1;e:switch((e&255)-43|0){case 2:r=0;case 0:e=l[A|0],f=A;break;default:break e}if(A=0,e=e-48|0,e>>>0<=9)for(;A=m(A,10)-e|0,e=l[f+1|0],f=f+1|0,e=e-48|0,e>>>0<10;);k7(k,n,t,r?0-A|0:A);return;case 1:k=1;e:{if(!v4(A,9104)||(k=0,!v4(A,9349)|s[A|0]!=49))break e;k=!s[A+1|0]}V[i[i[e>>2]+80>>2]](f,i[e+4>>2],r,k);return;case 2:V[i[i[e>>2]+88>>2]](f,i[e+4>>2],r,A);return;default:break r}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412];return}V[i[i[e>>2]+88>>2]](f,i[e+4>>2],r,A)}function fm(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0;for(o=B-416|0,B=o,A=o+416|0,i[o+12>>2]=A,r=B-144|0,B=r,i[r+28>>2]=r+132,u=r+32|0,N9(f+8|0,u,r+28|0,k,n,t),i[r+16>>2]=0,i[r+20>>2]=0,i[r+12>>2]=u,k=o+16|0,t=i[o+12>>2]-k>>2,n=B-16|0,B=n,i[n+12>>2]=i[f+8>>2],f=S4(n+8|0,n+12|0),t=Ok(k,r+12|0,t,r+16|0),f=i[f>>2],f&&(i[23985]=(f|0)==-1?95820:f),B=n+16|0,(t|0)==-1&&(u1(),P()),i[o+12>>2]=k+(t<<2),B=r+144|0,t=B-16|0,B=t,f=B-32|0,B=f,pe(f+24|0,k,i[o+12>>2]),o=f+16|0,u=i[f+28>>2],r=B-16|0,B=r,n=i[f+24>>2],i[r+8>>2]=n,i[r+12>>2]=e;;){if((n|0)!=(u|0)){T9(r+12|0,i[n>>2]),n=n+4|0,i[r+8>>2]=n;continue}break}return i[o>>2]=i[r+8>>2],i[o+4>>2]=i[r+12>>2],B=r+16|0,i[f+12>>2]=k+(i[f+16>>2]-k|0),i[f+8>>2]=i[f+20>>2],i[t+8>>2]=i[f+12>>2],i[t+12>>2]=i[f+8>>2],B=f+32|0,B=t+16|0,B=A,i[t+12>>2]}function km(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,n=i[13708],i[A+12>>2]=n,k=A+12|0,i[k+i[n-12>>2]>>2]=i[13709],n=k+i[i[A+12>>2]-12>>2]|0,t=A+16|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,n=$0(t),i[n>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,t=A+148|0,R2(t,e,r),o=k,u=t,k=l[A+159|0],t=(k|0)<0,x(o,t?i[A+148>>2]:u,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:t,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(L0(x(L0(x(L0(x(r,14785,14),i[e+48>>2]),18140,1),i[e+52>>2]),18140,1),i[e+56>>2]),30511,2),i2(f,n),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[n>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(n),T0(A+68|0),B=A+160|0}function xn(f){var e=0,r=0,A=0,k=0,n=0;if(r=i[f+8>>2],!!r){if(e=i[f+4>>2],(e|0)==6){e=i[r+24>>2];i:{if((e|0)>2]){A=i[r+20>>2];break i}if(n=e+1|0,A=Z2(n),!A)return;k=i[r+20>>2],k&&(l0(A,k,e),G(k),e=i[r+24>>2]),i[r+28>>2]=n,i[r+20>>2]=A}l[e+A|0]=0,i[r+24>>2]=i[r+24>>2]+1,e=i[f+4>>2]}if((e|0)==7){A=i[r+24>>2],k=A+2|0;i:{if((k|0)<=i[r+28>>2]){e=i[r+20>>2];break i}if(e=Z2(k),!e)return;n=i[r+20>>2],n&&(l0(e,n,A),G(n),A=i[r+24>>2]),i[r+28>>2]=k,i[r+20>>2]=e}e=e+A|0,l[e|0]=0,l[e+1|0]=0,i[r+24>>2]=i[r+24>>2]+2,e=i[f+4>>2]}(e|0)>=5&&(k=i[f+32>>2],A=k+i[f+28>>2]|0,n=i[f+20>>2],e=i[f+16>>2],(A|0)==(((e|0)!=(n|0)?(n-e<<8)-1|0:0)|0)&&(Gr(f+12|0),k=i[f+32>>2],A=k+i[f+28>>2]|0,e=i[f+16>>2]),i[i[e+(A>>>8&16777212)>>2]+((A&1023)<<2)>>2]=r,i[f+32>>2]=k+1,e=i[r+24>>2],i[f+8>>2]=0,i[f+36>>2]=e+i[f+36>>2]),i[f+4>>2]=0}}function nm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,t=i[13708],i[A+12>>2]=t,k=A+12|0,i[k+i[t-12>>2]>>2]=i[13709],t=k+i[i[A+12>>2]-12>>2]|0,n=A+16|0,b0(t,n),i[t+72>>2]=0,i[t+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,t=$0(n),i[t>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,n=A+148|0,R2(n,e,r),o=k,u=n,k=l[A+159|0],n=(k|0)<0,x(o,n?i[A+148>>2]:u,n?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),n=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:n,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,o=x(r,20267,10),k=l[e+67|0],n=(k|0)<0,x(x(o,n?i[e+56>>2]:e+56|0,n?i[e+60>>2]:k),31338,1),i2(f,t),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[t>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(t),T0(A+68|0),B=A+160|0}function tm(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0,v=0;i:{if((n|0)<=0|(k|0)<=0)break i;for(w=r-3|0;;){for(u=(h<<1)+t|0,r=w+m(A,h)|0,o=0;X[u>>1]=(((((s[r+1|0]<<2)-s[r|0]|0)+m(s[r+4|0]+s[r+3|0]|0,40)|0)+(s[r+6|0]<<2)|0)-s[r+7|0]|0)+m(s[r+5|0]+s[r+2|0]|0,-11),r=r+1|0,u=(n<<1)+u|0,o=o+1|0,(o|0)!=(k|0););if(h=h+1|0,(h|0)==(n|0))break}if((n|0)<=0)break i;for(_=n&2147483644,w=n&3,A=0,v=n>>>0<4;;){if(u=(A<<1)+f|0,r=(m(A,n)<<1)+t|0,h=0,!v)for(;X[u>>1]=Q[r>>1],o=u,u=e<<1,o=o+u|0,X[o>>1]=Q[r+2>>1],o=u+o|0,X[o>>1]=Q[r+4>>1],o=u+o|0,X[o>>1]=Q[r+6>>1],u=u+o|0,r=r+8|0,h=h+4|0,(_|0)!=(h|0););if(o=0,w)for(;X[u>>1]=Q[r>>1],r=r+2|0,u=(e<<1)+u|0,o=o+1|0,(w|0)!=(o|0););if(A=A+1|0,(k|0)==(A|0))break}}}function om(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0,v=0;i:{if((n|0)<=0|(k|0)<=0)break i;for(w=r-2|0;;){for(u=(h<<1)+t|0,r=w+m(A,h)|0,o=0;X[u>>1]=(((((s[r|0]+m(s[r+1|0],-5)|0)+m(s[r+2|0],17)|0)+m(s[r+3|0],58)|0)+m(s[r+4|0],-10)|0)+(s[r+5|0]<<2)|0)-s[r+6|0],r=r+1|0,u=(n<<1)+u|0,o=o+1|0,(o|0)!=(k|0););if(h=h+1|0,(h|0)==(n|0))break}if((n|0)<=0)break i;for(_=n&2147483644,w=n&3,A=0,v=n>>>0<4;;){if(u=(A<<1)+f|0,r=(m(A,n)<<1)+t|0,h=0,!v)for(;X[u>>1]=Q[r>>1],o=u,u=e<<1,o=o+u|0,X[o>>1]=Q[r+2>>1],o=u+o|0,X[o>>1]=Q[r+4>>1],o=u+o|0,X[o>>1]=Q[r+6>>1],u=u+o|0,r=r+8|0,h=h+4|0,(_|0)!=(h|0););if(o=0,w)for(;X[u>>1]=Q[r>>1],r=r+2|0,u=(e<<1)+u|0,o=o+1|0,(w|0)!=(o|0););if(A=A+1|0,(k|0)==(A|0))break}}}function lm(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0,v=0;i:{if((n|0)<=0|(k|0)<=0)break i;for(w=r-3|0;;){for(u=(h<<1)+t|0,r=w+m(A,h)|0,o=0;X[u>>1]=s[r+6|0]+((((((s[r+1|0]<<2)-s[r|0]|0)+m(s[r+2|0],-10)|0)+m(s[r+3|0],58)|0)+m(s[r+4|0],17)|0)+m(s[r+5|0],-5)|0),r=r+1|0,u=(n<<1)+u|0,o=o+1|0,(o|0)!=(k|0););if(h=h+1|0,(h|0)==(n|0))break}if((n|0)<=0)break i;for(_=n&2147483644,w=n&3,A=0,v=n>>>0<4;;){if(u=(A<<1)+f|0,r=(m(A,n)<<1)+t|0,h=0,!v)for(;X[u>>1]=Q[r>>1],o=u,u=e<<1,o=o+u|0,X[o>>1]=Q[r+2>>1],o=u+o|0,X[o>>1]=Q[r+4>>1],o=u+o|0,X[o>>1]=Q[r+6>>1],u=u+o|0,r=r+8|0,h=h+4|0,(_|0)!=(h|0););if(o=0,w)for(;X[u>>1]=Q[r>>1],r=r+2|0,u=(e<<1)+u|0,o=o+1|0,(w|0)!=(o|0););if(A=A+1|0,(k|0)==(A|0))break}}}function zn(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;if(!r){e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560];return}i:{if(A=i[e+16>>2],!A||(n=N0(A,72776,73300),!n))break i;A=i[e+20>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),e=i[n+12>>2],n=i[n+8>>2],u=e-n|0,t=u>>3;r:{if((t|0)<=0)break r;if(e=0,(u|0)!=8)for(w=t&2147483646,t=0;k=e<<3,o=k+r|0,h=n+k|0,i[o>>2]=i[h>>2],i[o+4>>2]=i[h+4>>2],k=k|8,o=k+r|0,k=n+k|0,i[o>>2]=i[k>>2],i[o+4>>2]=i[k+4>>2],e=e+2|0,t=t+2|0,(w|0)!=(t|0););if(!(u&8))break r;e=e<<3,r=e+r|0,e=e+n|0,i[r>>2]=i[e>>2],i[r+4>>2]=i[e+4>>2]}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412];r:{if(!A||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break r;V[i[i[A>>2]+8>>2]](A),g(A)}return}e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560]}function um(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0;t=B-16|0,B=t;i:{if(!r)break i;on(t+4|0,i[f>>2],e),f=i[t+8>>2],e=i[t+4>>2],k=f-e>>3,k=(A|0)>(k|0)?k:A;r:{if((k|0)>0){if(A=0,k>>>0>=4)for(o=k&2147483644;i[(A<<2)+r>>2]=i[i[e+(A<<3)>>2]+20>>2],n=A|1,i[(n<<2)+r>>2]=i[i[e+(n<<3)>>2]+20>>2],n=A|2,i[(n<<2)+r>>2]=i[i[e+(n<<3)>>2]+20>>2],n=A|3,i[(n<<2)+r>>2]=i[i[e+(n<<3)>>2]+20>>2],A=A+4|0,u=u+4|0,(o|0)!=(u|0););if(o=k&3,!o)break r;for(;i[(A<<2)+r>>2]=i[i[e+(A<<3)>>2]+20>>2],A=A+1|0,h=h+1|0,(o|0)!=(h|0););break r}if(!e)break i}if(A=e,(A|0)!=(f|0)){for(;;){r=i[f-4>>2];r:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(f=f-8|0,(e|0)==(f|0))break}A=i[t+4>>2]}i[t+8>>2]=e,G(A)}return B=t+16|0,k|0}function Hn(f){var e=0,r=0,A=0,k=0,n=0;if(e=i[f+428>>2],r=i[f+424>>2],(e|0)!=(r|0))for(;;){if(k=i[(A<<2)+r>>2],k){if(w4(i[k+140>>2]+548|0,i[k>>2]),e=i[k+132>>2],e){if(n=e-4|0,r=i[n>>2],r)for(r=e+m(r,18608)|0;C8(r-36|0),r=r-18608|0,(e|0)!=(r|0););G(n)}G(k),r=i[f+424>>2],e=i[f+428>>2]}if(A=A+1|0,!(A>>>0>2>>>0))break}if(e=i[f+456>>2],A=i[f+460>>2],(e|0)!=(A|0))for(r=0;k=i[(r<<2)+e>>2],k&&(V[i[i[k>>2]+4>>2]](k),A=i[f+460>>2],e=i[f+456>>2]),r=r+1|0,r>>>0>2>>>0;);if(A=i[f+468>>2],A){if(e=A,r=i[f+472>>2],(e|0)!=(r|0)){for(;r=C8(r-8|0),(A|0)!=(r|0););e=i[f+468>>2]}i[f+472>>2]=A,G(e),e=i[f+456>>2]}return e&&(i[f+460>>2]=e,G(e)),e=i[f+436>>2],e&&(i[f+440>>2]=e,G(e)),e=i[f+424>>2],e&&(i[f+428>>2]=e,G(e)),zA(f+8|0),f}function sm(){var f=0,e=0,r=0;return f=s[5779]|s[5780]<<8|(s[5781]<<16|s[5782]<<24),i[19596]=s[5775]|s[5776]<<8|(s[5777]<<16|s[5778]<<24),i[19597]=f,f=s[5793]|s[5794]<<8|(s[5795]<<16|s[5796]<<24),e=s[5789]|s[5790]<<8|(s[5791]<<16|s[5792]<<24),X[39199]=e,X[39200]=e>>>16,X[39201]=f,X[39202]=f>>>16,f=s[5787]|s[5788]<<8|(s[5789]<<16|s[5790]<<24),i[19598]=s[5783]|s[5784]<<8|(s[5785]<<16|s[5786]<<24),i[19599]=f,G2(16615)+10>>>0<=79&&(f=G2(78384)+78384|0,e=s[18964]|s[18965]<<8|(s[18966]<<16|s[18967]<<24),r=s[18960]|s[18961]<<8|(s[18962]<<16|s[18963]<<24),l[f|0]=r,l[f+1|0]=r>>>8,l[f+2|0]=r>>>16,l[f+3|0]=r>>>24,l[f+4|0]=e,l[f+5|0]=e>>>8,l[f+6|0]=e>>>16,l[f+7|0]=e>>>24,e=s[18967]|s[18968]<<8|(s[18969]<<16|s[18970]<<24),l[f+7|0]=e,l[f+8|0]=e>>>8,l[f+9|0]=e>>>16,l[f+10|0]=e>>>24,Fi(G2(78384)+78384|0,16615)),78384}function hm(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0;e=B+-64|0,B=e,k=i[r+12>>2],n=i[r+4>>2],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(k|0)!=8|n>>>0>3||(i[e+44>>2]=8,l[e+40|0]=0,l[e+58|0]=1,X[e+56>>1]=2,i[e+52>>2]=131074,i[e+32>>2]=99,i[e+36>>2]=99,i[e+48>>2]=72992,l[e+58|0]=1,X[e+56>>1]=6,i[e+52>>2]=851969,i[e+40>>2]=i[r+8>>2],t=i[r+4>>2],k=i[r>>2],i[e+32>>2]=k,i[e+36>>2]=t,n=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+55|0]=n,l[e+56|0]=n>>>8,l[e+57|0]=n>>>16,l[e+58|0]=n>>>24,i[e+52>>2]=i[r+20>>2],i[e+44>>2]=i[A+12>>2],A=i[e+44>>2],i[e+8>>2]=i[e+40>>2],i[e+12>>2]=A,i[e>>2]=k,i[e+4>>2]=t,i[e+16>>2]=72992,A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,r=i[r+20>>2],i[e+28>>2]=11,i[e+20>>2]=r,P2(f,e)),B=e- -64|0}function Tn(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;u=B-32|0,B=u;i:{r:{e:{if((e|0)!=(r|0)){if(w=i[23944],i[23944]=0,t=B-16|0,B=t,M2(),n=B-16|0,B=n,k=B-16|0,B=k,h3(k,e,u+28|0,2),o=i[k>>2],h=i[k+4>>2],e=n,n=i[k+12>>2],i[e+8>>2]=i[k+8>>2],i[e+12>>2]=n,i[e>>2]=o,i[e+4>>2]=h,B=k+16|0,n=i[e>>2],o=i[e+4>>2],k=t,t=i[e+12>>2],i[k+8>>2]=i[e+8>>2],i[k+12>>2]=t,i[k>>2]=n,i[k+4>>2]=o,B=e+16|0,t=i[k>>2],n=i[k+4>>2],o=i[k+12>>2],e=u,i[e+16>>2]=i[k+8>>2],i[e+20>>2]=o,i[e+8>>2]=t,i[e+12>>2]=n,B=k+16|0,k=i[e+16>>2],n=i[e+20>>2],t=i[e+8>>2],o=i[e+12>>2],h=i[23944],!h)break e;if(i[e+28>>2]!=(r|0))break r;if(_=t,v=o,Z=k,p=n,(h|0)!=68)break i;break r}i[A>>2]=4;break i}if(i[23944]=w,i[u+28>>2]==(r|0))break i}i[A>>2]=4,t=_,o=v,k=Z,n=p}i[f>>2]=t,i[f+4>>2]=o,i[f+8>>2]=k,i[f+12>>2]=n,B=u+32|0}function wm(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e,A=i[r+4>>2];i:{if(!(!s[k+12|0]|((A|0)==3|i[k+8>>2]==1))){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!(!i[r>>2]&A-1>>>0<=2)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}r:switch(Q[r+24>>1]-11|0){case 0:case 3:i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i;default:break r}if(A=i[r+12>>2],(A|0)>=9){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(A|0)!=8)break i;A=V8(e+36|0),i[A>>2]=1,i[A+4>>2]=3,l[A+8|0]=s[r+8|0],i[A+12>>2]=i[r+12>>2],r=i[A+12>>2],i[e+8>>2]=i[A+8>>2],i[e+12>>2]=r,r=i[A+4>>2],i[e>>2]=i[A>>2],i[e+4>>2]=r,i[e+16>>2]=72992,r=s[A+23|0]|s[A+24|0]<<8|(s[A+25|0]<<16|s[A+26|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,i[e+20>>2]=i[A+20>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function an(){ys(67500,11841),Qs(67524,7515,1,0),u8(67536,5993,1,-128,127),u8(67560,5986,1,-128,127),u8(67548,5984,1,0,255),u8(67572,3039,2,-32768,32767),u8(67584,3030,2,0,65535),u8(67596,3054,4,-2147483648,2147483647),u8(67608,3045,4,0,-1),u8(67620,8520,4,-2147483648,2147483647),u8(67632,8511,4,0,-1),mo(67644,3548,-2147483648,2147483647),mo(67656,3547,0,-1),ek(67668,3380,4),ek(67680,10287,8),rk(73728,8551),rk(46300,16143),sA(46372,4,8525),sA(46448,2,8563),sA(46524,4,8578),Is(73828),R1(46564,0,16074),R1(46604,0,16176),R1(73936,1,16104),R1(46644,2,15639),R1(46684,3,15670),R1(46724,4,15710),R1(46764,5,15739),R1(46804,4,16213),R1(46844,5,16243),R1(46604,0,15841),R1(73936,1,15808),R1(46644,2,15907),R1(46684,3,15873),R1(46724,4,16041),R1(46764,5,16007),R1(46884,8,15974),R1(46924,9,15940),R1(46964,6,15777),R1(47004,7,16282)}function _m(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-32|0,B=A,f=i[f>>2],n=i[f+48>>2],k=i[f+52>>2],k&&(i[k+4>>2]=i[k+4>>2]+1),i[A+28>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,I1(A,n,e,A+20|0);i:{if(i[A>>2]||(e=r-1|0,f=i[A+20>>2],e>>>0>=i[A+24>>2]-f>>3>>>0))break i;if(f=f+(e<<3)|0,e=i[f>>2],f=i[f+4>>2],!f){t=i[e+16>>2];break i}if(r=i[f+4>>2],n=r+1|0,i[f+4>>2]=n,t=i[e+16>>2],i[f+4>>2]=r,n)break i;V[i[i[f>>2]+8>>2]](f),g(f)}if(l[A+19|0]<0&&G(i[A+8>>2]),r=i[A+20>>2],r){if(f=i[A+24>>2],e=r,(f|0)!=(e|0)){for(;;){e=i[f-4>>2];i:{if(!e||(n=i[e+4>>2],i[e+4>>2]=n-1,n))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(f=f-8|0,(r|0)==(f|0))break}e=i[A+20>>2]}i[A+24>>2]=r,G(e)}i:{if(!k||(f=i[k+4>>2],i[k+4>>2]=f-1,f))break i;V[i[i[k>>2]+8>>2]](k),g(k)}return B=A+32|0,t|0}function vm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0;A=B-32|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(A,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(k=i[19565],i[A>>2]=i[19564],i[A+4>>2]=k,k=A+8|0,l[78275]>=0){n=i[19567],i[k>>2]=i[19566],i[k+4>>2]=n,i[k+8>>2]=i[19568];break i}_0(k,i[19566],i[19567])}l[A+19|0]<0&&G(i[A+8>>2]);i:{if(s[e+48|0]){h4(f,e,9769);break i}if(t=e,o=D0(r),i[t+56>>2]=o,t=e,o=D0(r),i[t+60>>2]=o,s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(f,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function mm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-32|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(A,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(k=i[19565],i[A>>2]=i[19564],i[A+4>>2]=k,k=A+8|0,l[78275]>=0){n=i[19567],i[k>>2]=i[19566],i[k+4>>2]=n,i[k+8>>2]=i[19568];break i}_0(k,i[19566],i[19567])}l[A+19|0]<0&&G(i[A+8>>2]),k=s[e+48|0];i:{if(k>>>0>=2){h4(f,e,7091);break i}r:{if(!k){k=t2(r);break r}k=D0(r)}if(i[e+56>>2]=k,s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(f,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function ei(f,e,r){var A=0,k=0,n=0;A=B-32|0,B=A,i[A+28>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,I1(A,e,r,A+20|0);i:{if(i[A>>2]){i[f>>2]=0,i[f+4>>2]=0;break i}r:{if(r=i[A+20>>2],k=i[A+24>>2],(r|0)!=(k|0)){if(e=i[r>>2],e&&(n=i[f+4>>2],e=N0(e,68572,68596),e))break r;if(r=r+8|0,(k|0)!=(r|0))for(;;){if(e=i[r>>2],e&&(n=0,e=N0(e,68572,68596),e))break r;if(r=r+8|0,(k|0)==(r|0))break}i[f>>2]=0,i[f+4>>2]=0}i[f>>2]=0,i[f+4>>2]=0;break i}if(i[f+4>>2]=n,i[f>>2]=e,e=f,f=i[r+4>>2],i[e+4>>2]=f,!f)break i;i[f+4>>2]=i[f+4>>2]+1}if(l[A+19|0]<0&&G(i[A+8>>2]),f=i[A+20>>2],f){if(e=f,r=i[A+24>>2],(f|0)!=(r|0)){for(;;){e=i[r-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(r=r-8|0,(f|0)==(r|0))break}e=i[A+20>>2]}i[A+24>>2]=f,G(e)}B=A+32|0}function Sn(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;k=B-32|0,B=k;i:{if(!r){if(l[k|0]=0,l[k+11|0]=0,r=r0(k+12|0,5,2001,k),l[k+11|0]<0&&G(i[k>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break i;G(i[r+8>>2]);break i}if(A=i[e>>2],t=i[A+40>>2],A=i[A+44>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),!t){if(l[k|0]=0,l[k+11|0]=0,r=r0(k+12|0,2,124,k),l[k+11|0]<0&&G(i[k>>2]),P0(f,r,i[e>>2]),l[r+19|0]<0&&G(i[r+8>>2]),!A||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break i;V[i[i[A>>2]+8>>2]](A),g(A);break i}n=U(16),i[n+8>>2]=0,i[n+12>>2]=0,i[r>>2]=n,i[n+4>>2]=A,i[n>>2]=t,r=i[e>>2],A=i[e+4>>2];r:{if(!A){i[n+12>>2]=A,i[n+8>>2]=r;break r}if(i[A+4>>2]=i[A+4>>2]+1,i[n+8>>2]=r,r=i[n+12>>2],i[n+12>>2]=A,!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break r;V[i[i[r>>2]+8>>2]](r),g(r)}P0(f,78256,i[e>>2])}B=k+32|0}function NA(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;i:{if(r=i[f>>2],k=(i[f+4>>2]-r|0)/12|0,t=k+1|0,t>>>0<357913942){if(A=(i[f+8>>2]-r|0)/12|0,r=A<<1,r=A>>>0>=178956970?357913941:r>>>0>t>>>0?r:t,r){if(r>>>0>=357913942)break i;o=U(m(r,12))}A=m(k,12)+o|0,i[A>>2]=i[e>>2],i[A+4>>2]=i[e+4>>2],i[A+8>>2]=i[e+8>>2],i[e+8>>2]=0,i[e>>2]=0,i[e+4>>2]=0,t=m(r,12)+o|0,u=A+12|0,e=i[f+4>>2],n=i[f>>2];r:{if((e|0)==(n|0)){r=A;break r}for(;o=A-4|0,i[o>>2]=0,r=A-12|0,k=e-12|0,i[r>>2]=i[k>>2],i[A-8>>2]=i[e-8>>2],e=e-4|0,i[o>>2]=i[e>>2],i[e>>2]=0,i[k>>2]=0,i[k+4>>2]=0,A=r,e=k,(n|0)!=(e|0););e=i[f+4>>2],n=i[f>>2]}if(i[f+8>>2]=t,i[f+4>>2]=u,i[f>>2]=r,(e|0)!=(n|0))for(;f=e-12|0,r=i[f>>2],r&&(i[e-8>>2]=r,G(r)),e=f,(n|0)!=(e|0););return n&&G(n),u}y0(),P()}_2(),P()}function Bm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,n=i[13708],i[A+12>>2]=n,k=A+12|0,i[k+i[n-12>>2]>>2]=i[13709],n=k+i[i[A+12>>2]-12>>2]|0,t=A+16|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,n=$0(t),i[n>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,t=A+148|0,R2(t,e,r),o=k,u=t,k=l[A+159|0],t=(k|0)<0,x(o,t?i[A+148>>2]:u,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:t,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(L0(x(r,19959,11),i[e+52>>2]-i[e+48>>2]|0),31338,1),i2(f,n),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[n>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(n),T0(A+68|0),B=A+160|0}function On(f){var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;i:{r:{if(n=i[f+20>>2],e=i[f+24>>2],(n|0)!=(e|0)){if(A=e-n|0,r=A>>2,r>>>0<2)break i;if(e=1,k=r-1|0,_=k&1,r=i[i[n>>2]+96>>2],(A|0)==8){k=0;break r}for(u=k&-2,k=0,A=0;t=i[i[(e<<2)+n>>2]+96>>2],o=(t|0)<(r|0),h=e+1|0,w=i[i[(h<<2)+n>>2]+96>>2],r=o?t:r,t=(w|0)<(r|0),r=t?w:r,k=t?h:o?e:k,e=e+2|0,A=A+2|0,(u|0)!=(A|0););break r}C0(18471,14064,147,5718),P()}if(!_)break i;k=i[i[(e<<2)+n>>2]+96>>2]<(r|0)?e:k}A=i[f+52>>2],r=A+i[f+48>>2]|0,o=i[f+40>>2],e=i[f+36>>2],(r|0)==(((e|0)!=(o|0)?(o-e<<8)-1|0:0)|0)?(Gr(f+32|0),A=i[f+52>>2],r=A+i[f+48>>2]|0,u=i[f+36>>2]):u=e,e=k<<2,i[i[u+(r>>>8&16777212)>>2]+((r&1023)<<2)>>2]=i[e+n>>2],i[f+52>>2]=A+1,i[e+i[f+20>>2]>>2]=i[i[f+24>>2]-4>>2],i[f+24>>2]=i[f+24>>2]-4}function Zm(f,e){f=f|0,e=e|0;var r=0;i:{if((e|0)<12)break i;if(r=jn(f+8|0),(r&27)-1>>>0<2)return 13793;if(r=r-3|0,r>>>0>=16|!(50163>>>r&1))break i;return i[(r<<2)+74144>>2]}r=2;i:{if((e|0)<12)break i;r:{e:{if(s[f|0]!=255|s[f+1|0]!=216)break e;A:{if(s[f+2|0]!=255|s[f+3|0]!=224|(s[f+4|0]|s[f+5|0]!=16)||s[f+6|0]!=74|s[f+7|0]!=70|(s[f+8|0]!=73|s[f+9|0]!=70)||s[f+10|0])break A;if(r=1,s[f+11|0]==1)break r}if(s[f+2|0]!=255|s[f+3|0]!=225|(s[f+6|0]!=69|s[f+7|0]!=120)||s[f+8|0]!=105|s[f+9|0]!=102|(s[f+10|0]|s[f+11|0]))break e;r=1;break i}r=0}}if((r|0)==1)return 8704;i:{if(s[f|0]!=137|(e|0)<8|(s[f+1|0]!=80|s[f+2|0]!=78)||s[f+3|0]!=71|s[f+4|0]!=13|(s[f+5|0]!=10|s[f+6|0]!=26)||s[f+7|0]!=10)break i;return 8501}return 31341}function pm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0;n=B-32|0,B=n,A=i[f+28>>2],i[n+16>>2]=A,t=i[f+20>>2],i[n+28>>2]=r,i[n+24>>2]=e,e=t-A|0,i[n+20>>2]=e,t=e+r|0,u=2;i:{r:{e=n+16|0,A=uA(i[f+60>>2],e|0,2,n+12|0)|0,A?(i[23944]=A,A=-1):A=0;e:{A:{if(A){A=e;break A}for(;;){if(k=i[n+12>>2],(k|0)==(t|0))break e;if((k|0)<0){A=e;break r}if(o=i[e+4>>2],h=o>>>0>>0,A=(h<<3)+e|0,o=k-(h?o:0)|0,i[A>>2]=o+i[A>>2],e=(h?12:4)+e|0,i[e>>2]=i[e>>2]-o,t=t-k|0,e=A,u=u-h|0,k=uA(i[f+60>>2],e|0,u|0,n+12|0)|0,k?(i[23944]=k,k=-1):k=0,!!k)break}}if((t|0)!=-1)break r}e=i[f+44>>2],i[f+28>>2]=e,i[f+20>>2]=e,i[f+16>>2]=e+i[f+48>>2],f=r;break i}if(i[f+28>>2]=0,i[f+16>>2]=0,i[f+20>>2]=0,i[f>>2]=i[f>>2]|32,f=0,(u|0)==2)break i;f=r-i[A+4>>2]|0}return B=n+32|0,f|0}function I2(f){var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;e=i[f+112>>2],A=i[f+116>>2],u=(e|A)!=0,o=e,k=i[f+4>>2],n=i[f+44>>2],e=k-n|0,t=e,r=e+i[f+120>>2]|0,e=i[f+124>>2]+(e>>31)|0;i:{if(e=r>>>0>>0?e+1|0:e,!(((e|0)>=(A|0)&r>>>0>=o>>>0|(e|0)>(A|0))&u)){if(u=ve(f),(u|0)>=0)break i;k=i[f+4>>2],n=i[f+44>>2]}return i[f+112>>2]=-1,i[f+116>>2]=-1,i[f+104>>2]=k,t=r,r=n-k|0,A=t+r|0,e=(r>>31)+e|0,i[f+120>>2]=A,i[f+124>>2]=r>>>0>A>>>0?e+1|0:e,-1}A=r+1|0,e=A?e:e+1|0,o=i[f+4>>2],n=i[f+8>>2],r=i[f+116>>2],t=r,k=i[f+112>>2];i:{if(!(r|k)||(r=k-A|0,k=t-(e+(A>>>0>k>>>0)|0)|0,h=n-o|0,t=h>>31,(k|0)>=(t|0)&r>>>0>=h>>>0|(k|0)>(t|0)))break i;n=r+o|0}return i[f+104>>2]=n,r=i[f+44>>2],n=r-o|0,A=n+A|0,e=(n>>31)+e|0,i[f+120>>2]=A,i[f+124>>2]=A>>>0>>0?e+1|0:e,r>>>0>=o>>>0&&(l[o-1|0]=u),u}function Wm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,n=i[13708],i[A+12>>2]=n,k=A+12|0,i[k+i[n-12>>2]>>2]=i[13709],n=k+i[i[A+12>>2]-12>>2]|0,t=A+16|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,n=$0(t),i[n>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,t=A+148|0,R2(t,e,r),o=k,u=t,k=l[A+159|0],t=(k|0)<0,x(o,t?i[A+148>>2]:u,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:t,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(H0(x(r,20232,10),i[e+48>>2]),31324,15),i2(f,n),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[n>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(n),T0(A+68|0),B=A+160|0}function Xm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,n=i[13708],i[A+12>>2]=n,k=A+12|0,i[k+i[n-12>>2]>>2]=i[13709],n=k+i[i[A+12>>2]-12>>2]|0,t=A+16|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,n=$0(t),i[n>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,t=A+148|0,R2(t,e,r),o=k,u=t,k=l[A+159|0],t=(k|0)<0,x(o,t?i[A+148>>2]:u,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:t,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(L0(x(r,21276,10),Q[e+48>>1]),31338,1),i2(f,n),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[n>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(n),T0(A+68|0),B=A+160|0}function Gm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,n=i[13708],i[A+12>>2]=n,k=A+12|0,i[k+i[n-12>>2]>>2]=i[13709],n=k+i[i[A+12>>2]-12>>2]|0,t=A+16|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,n=$0(t),i[n>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,t=A+148|0,R2(t,e,r),o=k,u=t,k=l[A+159|0],t=(k|0)<0,x(o,t?i[A+148>>2]:u,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:t,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(H0(x(r,19502,10),s[e+48|0]),31338,1),i2(f,n),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[n>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(n),T0(A+68|0),B=A+160|0}function jn(f){var e=0,r=0,A=0,k=0,n=0;e=B-16|0,B=e;i:{if(!f||(A=s[f|0],!A)||(k=s[f+1|0],!k)||(n=s[f+2|0],!n)||(f=s[f+3|0],!f))break i;if(l[e+15|0]=0,l[e+14|0]=f,l[e+13|0]=n,l[e+12|0]=k,l[e+11|0]=A,!K2(e+11|0,13799,5)){r=1;break i}if(!K2(e+11|0,2453,5)){r=2;break i}if(!K2(e+11|0,13659,5)){r=3;break i}if(!K2(e+11|0,1504,5)){r=4;break i}if(r=5,f=e+11|0,!K2(f,7112,5))break i;if(!K2(f,4072,5)){r=6;break i}if(!K2(e+11|0,7086,5)){r=7;break i}if(!K2(e+11|0,3556,5)){r=8;break i}if(!K2(e+11|0,16939,5)){r=9;break i}if(!K2(e+11|0,16934,5)){r=10;break i}if(!K2(e+11|0,8791,5)){r=11;break i}if(!K2(e+11|0,4067,5)){r=12;break i}if(!K2(e+11|0,13788,5)){r=13;break i}if(!K2(e+11|0,8179,5)){r=17;break i}r=K2(e+11|0,4083,5)?0:18}return B=e+16|0,r}function Cm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,n=i[13708],i[A+12>>2]=n,k=A+12|0,i[k+i[n-12>>2]>>2]=i[13709],n=k+i[i[A+12>>2]-12>>2]|0,t=A+16|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,n=$0(t),i[n>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,t=A+148|0,R2(t,e,r),o=k,u=t,k=l[A+159|0],t=(k|0)<0,x(o,t?i[A+148>>2]:u,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:t,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(L0(x(r,21529,9),i[e+56>>2]),31338,1),i2(f,n),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[n>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(n),T0(A+68|0),B=A+160|0}function Vm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+68>>2]=54820,n=i[13708],i[A+12>>2]=n,k=A+12|0,i[k+i[n-12>>2]>>2]=i[13709],n=k+i[i[A+12>>2]-12>>2]|0,t=A+16|0,b0(n,t),i[n+72>>2]=0,i[n+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,n=$0(t),i[n>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,t=A+148|0,R2(t,e,r),o=k,u=t,k=l[A+159|0],t=(k|0)<0,x(o,t?i[A+148>>2]:u,t?i[A+152>>2]:k),l[A+159|0]<0&&G(i[A+148>>2]),k=A+148|0,W0(k,r),t=k,r=l[A+159|0],k=(r|0)<0,x(A+12|0,k?i[A+148>>2]:t,k?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(H0(x(r,20376,16),s[e+56|0]),31338,1),i2(f,n),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[n>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(n),T0(A+68|0),B=A+160|0}function Im(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0;if(n=B-32|0,B=n,t=V[i[i[e>>2]+32>>2]](e,r,0)|0,A=i[e+56>>2],o=i[e+60>>2],(A|0)!=(o|0))for(k=s[e+48|0],u=k?4:2,w=k?2:1;;){if(l2(r,((i[A+48>>2]-i[A+44>>2]>>2)+1<>2]),k1(r,u,i[A+40>>2],0),w2(r,i[A+48>>2]-i[A+44>>2]>>>2&65535),k=i[A+44>>2],h=i[A+48>>2],(k|0)!=(h|0))for(;k1(r,u,i[k>>2],0),k=k+4|0,(h|0)!=(k|0););if(A=A+56|0,(o|0)==(A|0))break}i[r+12>>2]=t,V[i[i[e>>2]+36>>2]](n+12|0,e,r,i[r+4>>2]-(i[r>>2]+t|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[n+31|0]<0&&G(i[n+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=n+32|0}function Gi(f,e,r,A,k,n,t,o,u,h){var w=0,_=0,v=0;w=B-16|0,B=w,l[w+15|0]=f;i:{r:{e:{if(_=i[A>>2],(_|0)!=(r|0))break e;if(v=f&255,(v|0)==s[h+24|0])f=43;else{if(s[h+25|0]!=(v|0))break e;f=45}i[A>>2]=_+1,l[_|0]=f;break r}if(s[t+11|0]>>>7|0?t=i[t+4>>2]:t=s[t+11|0]&127,!(!t|(f|0)!=(n|0))){if(f=0,e=i[u>>2],(e-o|0)>159)break i;f=i[k>>2],i[u>>2]=e+4,i[e>>2]=f;break r}if(f=-1,n=T3(h,h+26|0,w+15|0)-h|0,(n|0)>23)break i;e:{A:switch(e-8|0){case 0:case 2:if((e|0)>(n|0))break e;break i;case 1:break e;default:break A}if((e|0)!=16|(n|0)<22)break e;if(e=i[A>>2],(e|0)==(r|0)|(e-r|0)>2|s[e-1|0]!=48)break i;f=0,i[k>>2]=0,i[A>>2]=e+1,l[e|0]=s[n+60064|0];break i}f=i[A>>2],i[A>>2]=f+1,l[f|0]=s[n+60064|0],i[k>>2]=i[k>>2]+1,f=0;break i}f=0,i[k>>2]=0}return B=w+16|0,f}function RA(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;i:{r:{if(n=i[e+108>>2],o=e+112|0,(n|0)!=(o|0))for(;;){u=i[i[n+20>>2]+56>>2];e:{if(A>>>0>>0){i[A>>2]=u,r=A+4|0;break e}if(r=A-t>>2,e=r+1|0,e>>>0>=1073741824)break r;if(h=r<<2,r=k-t|0,k=r>>1,r=r>>>0>=2147483644?1073741823:e>>>0>>0?k:e,r){if(r>>>0>=1073741824)break i;k=U(r<<2)}else k=0;if(e=h+k|0,i[e>>2]=u,k=k+(r<<2)|0,r=e+4|0,(A|0)!=(t|0))for(;e=e-4|0,A=A-4|0,i[e>>2]=i[A>>2],(A|0)!=(t|0););i[f+8>>2]=k,i[f+4>>2]=r,i[f>>2]=e,t&&G(t),t=e}A=r,i[f+4>>2]=A,r=i[n+4>>2];e:{if(r){for(;;)if(e=r,r=i[e>>2],!r)break e}for(;e=i[n+8>>2],r=i[e>>2]!=(n|0),n=e,!!r;);}if(n=e,(e|0)==(o|0))break}return}y0(),P()}_2(),P()}function Pn(f,e){var r=0,A=0,k=0,n=0,t=0;k=B-16|0,B=k,t=i[23985],i[e+72>>2]<=0&&z3(e),i[23985]=i[e+136>>2];i:{r:{e:{if(f>>>0<=127){A:{if(i[e+80>>2]==(f|0)||(r=i[e+20>>2],(r|0)==i[e+16>>2]))break A;i[e+20>>2]=r+1,l[r|0]=f;break i}A=B-16|0,B=A,l[A+15|0]=f,r=i[e+16>>2];A:{if(!r){if(G3(e)){r=-1;break A}r=i[e+16>>2]}f:{if(n=i[e+20>>2],(r|0)==(n|0)||(r=f&255,(r|0)==i[e+80>>2]))break f;i[e+20>>2]=n+1,l[n|0]=f;break A}if((V[i[e+36>>2]](e,A+15|0,1)|0)!=1){r=-1;break A}r=s[A+15|0]}B=A+16|0,f=r;break e}if(r=i[e+20>>2],k0[e+16>>2]>r+4>>>0){if(r=ye(r,f),(r|0)<0)break r;i[e+20>>2]=r+i[e+20>>2];break e}if(A=k+12|0,r=ye(A,f),(r|0)<0||ee(A,r,e)>>>0>>0)break r}if((f|0)!=-1)break i}i[e>>2]=i[e>>2]|32,f=-1}return i[23985]=t,B=k+16|0,f}function Q2(f,e){var r=0,A=0,k=0,n=0,t=0,o=0;i:{if(A=i[f+4>>2],n=i[f>>2],o=A-n>>3,k=o+1|0,k>>>0<536870912){if(r=i[f+8>>2]-n|0,t=r>>2,r=r>>>0>=2147483640?536870911:k>>>0>>0?t:k,r){if(r>>>0>=536870912)break i;t=U(r<<3)}else t=0;k=t+(o<<3)|0,i[k>>2]=i[e>>2],e=i[e+4>>2],i[k+4>>2]=e,o=t+(r<<3)|0,t=k+8|0,e&&(i[e+4>>2]=i[e+4>>2]+1,n=i[f>>2],A=i[f+4>>2]);r:{if((A|0)==(n|0)){e=k;break r}for(;e=k-8|0,r=A-8|0,i[e>>2]=i[r>>2],i[k-4>>2]=i[A-4>>2],i[r>>2]=0,i[r+4>>2]=0,k=e,A=r,(r|0)!=(n|0););A=i[f+4>>2],n=i[f>>2]}if(i[f+8>>2]=o,i[f+4>>2]=t,i[f>>2]=e,(A|0)!=(n|0))for(;;){f=i[A-4>>2];r:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(A=A-8|0,(n|0)==(A|0))break}return n&&G(n),t}y0(),P()}_2(),P()}function Ci(f,e,r,A,k,n,t,o,u,h){var w=0,_=0;w=B-16|0,B=w,i[w+12>>2]=f;i:{r:{e:{if(_=i[A>>2],(_|0)!=(r|0))break e;if(i[h+96>>2]==(f|0))f=43;else{if(i[h+100>>2]!=(f|0))break e;f=45}i[A>>2]=_+1,l[_|0]=f;break r}if(s[t+11|0]>>>7|0?t=i[t+4>>2]:t=s[t+11|0]&127,!(!t|(f|0)!=(n|0))){if(f=0,e=i[u>>2],(e-o|0)>159)break i;f=i[k>>2],i[u>>2]=e+4,i[e>>2]=f;break r}if(f=-1,n=H3(h,h+104|0,w+12|0)-h>>2,(n|0)>23)break i;e:{A:switch(e-8|0){case 0:case 2:if((e|0)>(n|0))break e;break i;case 1:break e;default:break A}if((e|0)!=16|(n|0)<22)break e;if(e=i[A>>2],(e|0)==(r|0)|(e-r|0)>2|s[e-1|0]!=48)break i;f=0,i[k>>2]=0,i[A>>2]=e+1,l[e|0]=s[n+60064|0];break i}f=i[A>>2],i[A>>2]=f+1,l[f|0]=s[n+60064|0],i[k>>2]=i[k>>2]+1,f=0;break i}f=0,i[k>>2]=0}return B=w+16|0,f}function A2(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;i:{if(r=i[f+12>>2],o=i[f+4>>2],n=i[f>>2],u=o-n|0,(r|0)==(u|0)){k=i[f+8>>2];r:{if(k>>>0>o>>>0){l[o|0]=e,h=o+1|0;break r}if(t=r+1|0,(t|0)<0)break i;A=k-n|0,k=A<<1,t=A>>>0>=1073741823?2147483647:k>>>0>t>>>0?k:t,t?k=U(t):k=0,A=r+k|0,l[A|0]=e,t=k+t|0,h=A+1|0;e:{if((n|0)==(o|0)){k=A;break e}u=u&3;A:{if(!u){r=o;break A}for(e=0,r=o;A=A-1|0,r=r-1|0,l[A|0]=s[r|0],e=e+1|0,(u|0)!=(e|0););}if(n-o>>>0<=4294967292)for(;l[A-1|0]=s[r-1|0],l[A-2|0]=s[r-2|0],l[A-3|0]=s[r-3|0],A=A-4|0,r=r-4|0,l[A|0]=s[r|0],(r|0)!=(n|0););n=i[f>>2]}if(i[f+8>>2]=t,i[f+4>>2]=h,i[f>>2]=k,!n)break r;G(n)}i[f+4>>2]=h,i[f+12>>2]=i[f+12>>2]+1;return}i[f+12>>2]=r+1,l[r+n|0]=e;return}y0(),P()}function Qm(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e,A=i[r+4>>2];i:{if(!(!s[k+12|0]|((A|0)==3|i[k+8>>2]==1))){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}r:{if(!(i[r>>2]|(A|0)!=1|i[r+12>>2]!=8)&&s[r+8|0]!=1)break r;i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(A=Q[r+24>>1],!(A>>>0>14|!(1<>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(r=s[r+26|0],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(r|0)!=1)break i;r=V8(e+36|0),i[r+12>>2]=8,i[r>>2]=1,i[r+4>>2]=10,l[r+8|0]=0,A=i[r+12>>2],i[e+8>>2]=i[r+8>>2],i[e+12>>2]=A,A=i[r+4>>2],i[e>>2]=i[r>>2],i[e+4>>2]=A,i[e+16>>2]=72992,A=s[r+23|0]|s[r+24|0]<<8|(s[r+25|0]<<16|s[r+26|0]<<24),l[e+23|0]=A,l[e+24|0]=A>>>8,l[e+25|0]=A>>>16,l[e+26|0]=A>>>24,i[e+20>>2]=i[r+20>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function Ln(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;if(r=i[f+48>>2],n=i[f+52>>2],A=n,t=r-A|0,k=A>>31,r=(r>>31)-(k+(r>>>0>>0)|0)|0,u=r,(r-(t>>>0<2147483648)|0)!=-1){for(;n=k>>31,r=A+(n|1)|0,k=n+k|0,A=o2(r,r>>>0>>0?k+1|0:k,2,0),k=w0,n=u>>31,r=t+(n|1)|0,n=n+u|0,t=o2(r,r>>>0>>0?n+1|0:n,2,0),r=w0,u=r,(r-(t>>>0<2147483648)|0)!=-1;);n=A,k=A>>31}if(r=A,o=k,f=Ir(f,e),f=q0(r,k,f,f>>31),k=u+w0|0,A=f+t|0,k=A>>>0>>0?k+1|0:k,(k-(A>>>0<2147483648)|0)!=-1){for(;f=o>>31,e=r+(f|1)|0,f=f+o|0,r=o2(e,e>>>0>>0?f+1|0:f,2,0),o=w0,f=k>>31,n=f,f=A+(f|1)|0,n=n+k|0,A=o2(f,f>>>0>>0?n+1|0:n,2,0),f=w0,k=f,(f-(A>>>0<2147483648)|0)!=-1;);n=r,o=r>>31}return e=A,f=(n|0)/2|0,A=f,e=e+f|0,f=(f>>31)+k|0,o2(e,e>>>0>>0?f+1|0:f,r,o)}function Kn(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;if(r=i[f+56>>2],n=i[f+60>>2],A=n,t=r-A|0,k=A>>31,r=(r>>31)-(k+(r>>>0>>0)|0)|0,u=r,(r-(t>>>0<2147483648)|0)!=-1){for(;n=k>>31,r=A+(n|1)|0,k=n+k|0,A=o2(r,r>>>0>>0?k+1|0:k,2,0),k=w0,n=u>>31,r=t+(n|1)|0,n=n+u|0,t=o2(r,r>>>0>>0?n+1|0:n,2,0),r=w0,u=r,(r-(t>>>0<2147483648)|0)!=-1;);n=A,k=A>>31}if(r=A,o=k,f=Vr(f,e),f=q0(r,k,f,f>>31),k=u+w0|0,A=f+t|0,k=A>>>0>>0?k+1|0:k,(k-(A>>>0<2147483648)|0)!=-1){for(;f=o>>31,e=r+(f|1)|0,f=f+o|0,r=o2(e,e>>>0>>0?f+1|0:f,2,0),o=w0,f=k>>31,n=f,f=A+(f|1)|0,n=n+k|0,A=o2(f,f>>>0>>0?n+1|0:n,2,0),f=w0,k=f,(f-(A>>>0<2147483648)|0)!=-1;);n=r,o=r>>31}return e=A,f=(n|0)/2|0,A=f,e=e+f|0,f=(f>>31)+k|0,o2(e,e>>>0>>0?f+1|0:f,r,o)}function ym(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;if(k=B-32|0,B=k,t=V[i[i[e>>2]+32>>2]](e,r,0)|0,A2(r,s[e+48|0]),A2(r,s[e+49|0]),A2(r,s[e+50|0]),A2(r,s[e+51|0]),A2(r,(s[e+52|0]-1|252)&255),A2(r,((i[e+60>>2]-i[e+56>>2]|0)/12|224)&255),A=i[e+56>>2],n=i[e+60>>2],(A|0)!=(n|0))for(;w2(r,i[A+4>>2]-i[A>>2]&65535),D4(r,A),A=A+12|0,(n|0)!=(A|0););if(A2(r,(i[e+72>>2]-i[e+68>>2]|0)/12&255),A=i[e+68>>2],n=i[e+72>>2],(A|0)!=(n|0))for(;w2(r,i[A+4>>2]-i[A>>2]&65535),D4(r,A),A=A+12|0,(n|0)!=(A|0););Y4(k+12|0,e,r,t),l[k+31|0]<0&&G(i[k+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+32|0}function DA(f,e){var r=0,A=0,k=0,n=0,t=0,o=0;o=e+31|0,n=i[f+12>>2]<<7,A=Q[f+20>>1],r=i[f+16>>2];i:{for(;;){A=A+1|0,X[f+20>>1]=A,r=r<<1,i[f+16>>2]=r,A=A<<16>>16;r:{if((A|0)<0||(A=65528,X[f+20>>1]=65528,k=i[f+4>>2],k>>>0>=k0[f+8>>2]))break r;i[f+4>>2]=k+1,r=s[k|0]|r,i[f+16>>2]=r}if(r>>>0>>0)break i;if(r=r-n|0,i[f+16>>2]=r,t=(1<>1]=A,r=r<>2]=r,A=A<<16>>16;i:{if((A|0)<0||(k=i[f+4>>2],k>>>0>=k0[f+8>>2]))break i;i[f+4>>2]=k+1,k=s[k|0],X[f+20>>1]=A-8,r=k<>>0)/(n>>>0)|0,e=1<=(e|0)&&(A=e-1|0),i[f+16>>2]=r-m(A,n),A+t|0}for(r=e-8|0,e=_9(f);e=x1(f)|e<<1,r=r-1|0,!!r;);return e+t|0}function Fm(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;k=B-16|0,B=k;i:{if((e|0)!=-1){if(o=i[f+12>>2],u=i[f+8>>2],n=i[f+24>>2],(n|0)==i[f+28>>2]){if(r=-1,!(s[f+48|0]&16))break i;t=i[f+20>>2],h=i[f+44>>2],A=f+32|0,C6(A,0),h2(A,s[A+11|0]>>>7|0?(i[A+8>>2]&2147483647)-1|0:10),s[A+11|0]>>>7|0?r=i[A>>2]:r=A,s[A+11|0]>>>7|0?A=i[A+4>>2]:A=s[A+11|0]&127,i[f+28>>2]=A+r,i[f+20>>2]=r,i[f+24>>2]=r,i[f+24>>2]=i[f+24>>2]+(n-t|0),i[f+44>>2]=i[f+20>>2]+(h-t|0)}i[k+12>>2]=i[f+24>>2]+1,r=B-16|0,B=r,B=r+16|0,A=f+44|0,r=k+12|0,i[f+44>>2]=i[(k0[r>>2]>2]?A:r)>>2],s[f+48|0]&8&&(r=f+32|0,s[r+11|0]>>>7|0&&(r=i[r>>2]),i[f+16>>2]=i[f+44>>2],i[f+12>>2]=r+(o-u|0),i[f+8>>2]=r),r=lt(f,e<<24>>24);break i}r=(e|0)!=-1?e:0}return B=k+16|0,r|0}function Em(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;k=B-16|0,B=k,i[k+12>>2]=r,i[f+16>>2]=0,i[f+12>>2]=0,i[f+8>>2]=0,i[f+28>>2]=0,i[f+20>>2]=0,i[f+24>>2]=0;i:{if(s[f+96|0]!=1||(A=i[f+32>>2],!A))break i;G(A)}i:{if(s[f+97|0]!=1||(A=i[f+56>>2],!A))break i;G(A)}i[f+52>>2]=r;i:{r:{e:{A:{if(r>>>0>=9){if(A=s[f+98|0],!e||(n=A&1,!n))break A;if(l[f+96|0]=0,i[f+32>>2]=e,!n)break r;break e}if(l[f+96|0]=0,i[f+52>>2]=8,i[f+32>>2]=f+44,l[f+98|0]&1)break e;break r}if(r=U(r),l[f+96|0]=1,i[f+32>>2]=r,!(A&1))break r}e=0,i[f+60>>2]=0,r=0;break i}if(i[k+8>>2]=8,r=B-16|0,B=r,B=r+16|0,r=k+8|0,A=k+12|0,A=i[(i[A>>2]>2]?r:A)>>2],i[f+60>>2]=A,e&&(r=0,A>>>0>8))break i;e=U(A),r=1}return l[f+97|0]=r,i[f+56>>2]=e,B=k+16|0,f|0}function Ym(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e,A=i[r+4>>2];i:{if(!(!s[k+12|0]|((A|0)==3|i[k+8>>2]==1))){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}if(!(!i[r>>2]&A-1>>>0<=2)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}r:switch(Q[r+24>>1]-11|0){case 0:case 3:i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i;default:break r}if(A=i[r+12>>2],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,(A|0)<9)break i;A=V8(e+36|0),i[A>>2]=1,i[A+4>>2]=3,l[A+8|0]=s[r+8|0],i[A+12>>2]=i[r+12>>2],r=i[A+12>>2],i[e+8>>2]=i[A+8>>2],i[e+12>>2]=r,r=i[A+4>>2],i[e>>2]=i[A>>2],i[e+4>>2]=r,i[e+16>>2]=72992,r=s[A+23|0]|s[A+24|0]<<8|(s[A+25|0]<<16|s[A+26|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,i[e+20>>2]=i[A+20>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function h4(f,e,r){var A=0,k=0,n=0,t=0,o=0;A=B-160|0,B=A,i[A+24>>2]=54496,i[A+80>>2]=54516,k=i[13633],i[A+16>>2]=k,n=A+16|0,i[n+i[k-12>>2]>>2]=i[13634],i[A+20>>2]=0,k=i[i[A+16>>2]-12>>2]+n|0,t=A+28|0,b0(k,t),i[k+72>>2]=0,i[k+76>>2]=-1,k=i[13635],i[A+24>>2]=k,o=A+24|0,i[o+i[k-12>>2]>>2]=i[13636],k=i[13632],i[A+16>>2]=k,i[i[k-12>>2]+n>>2]=i[13637],i[A+80>>2]=54516,i[A+16>>2]=54476,i[A+24>>2]=54496,n=$0(t),i[n>>2]=53552,i[A+68>>2]=0,i[A+72>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+76>>2]=24,x(H0(x(x(o,r,G2(r)),18913,18),s[e+48|0]),3320,23),e=A+4|0,i2(e,n),r0(f,4,3002,e),l[A+15|0]<0&&G(i[A+4>>2]),f=i[13631],i[A+16>>2]=f,i[i[f-12>>2]+(A+16|0)>>2]=i[13639],i[A+24>>2]=i[13640],i[n>>2]=53552,l[A+71|0]<0&&G(i[A+60>>2]),K0(n),T0(A+80|0),B=A+160|0}function UA(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0;o=B-32|0,B=o,t=U(132),i[t+4>>2]=0,i[t+8>>2]=0,i[t>>2]=72576,h=e,w=Ge(t+12|0),i[h+48>>2]=w,n=i[e+52>>2],i[e+52>>2]=t;i:{if(!n||(t=i[n+4>>2],i[n+4>>2]=t-1,t))break i;V[i[i[n>>2]+8>>2]](n),g(n)}u=i[e+48>>2],t=B-16|0,B=t,n=U(48),i[n+4>>2]=0,i[n+8>>2]=0,i[n>>2]=72912,r=W3(n+16|0,r,A,k),i[t+12>>2]=n,i[t+8>>2]=r,i[n+4>>2]=i[n+4>>2]+1,_A(o+8|0,u,t+8|0),r=i[n+4>>2],i[n+4>>2]=r-1,r||(V[i[i[n>>2]+8>>2]](n),g(n)),r=i[n+4>>2],i[n+4>>2]=r-1,r||(V[i[i[n>>2]+8>>2]](n),g(n)),B=t+16|0;i:{if(i[o+8>>2]){e=i[o+12>>2],i[f>>2]=i[o+8>>2],i[f+4>>2]=e,e=i[o+20>>2],i[f+8>>2]=i[o+16>>2],i[f+12>>2]=e,i[f+16>>2]=i[o+24>>2];break i}if(hA(f,e),l[o+27|0]>=0)break i;G(i[o+16>>2])}B=o+32|0}function z2(f,e){var r=0,A=0,k=0,n=0,t=0,o=0;i:{if(n=i[f+4>>2],t=i[f>>2],o=n-t>>3,r=o+1|0,r>>>0<536870912){if(A=i[f+8>>2]-t|0,k=A>>2,A=A>>>0>=2147483640?536870911:r>>>0>>0?k:r,A){if(A>>>0>=536870912)break i;k=U(A<<3)}else k=0;r=k+(o<<3)|0,i[r>>2]=i[e>>2],i[r+4>>2]=i[e+4>>2],i[e>>2]=0,i[e+4>>2]=0,o=k+(A<<3)|0,k=r+8|0;r:{if((n|0)==(t|0)){e=r;break r}for(;e=r-8|0,A=n-8|0,i[e>>2]=i[A>>2],i[r-4>>2]=i[n-4>>2],i[A>>2]=0,i[A+4>>2]=0,r=e,n=A,(A|0)!=(t|0););}if(i[f+8>>2]=o,r=i[f>>2],i[f>>2]=e,e=i[f+4>>2],i[f+4>>2]=k,(e|0)!=(r|0))for(;;){f=i[e-4>>2];r:{if(!f||(n=i[f+4>>2],i[f+4>>2]=n-1,n))break r;V[i[i[f>>2]+8>>2]](f),g(f)}if(e=e-8|0,(r|0)==(e|0))break}return r&&G(r),k}y0(),P()}_2(),P()}function Jm(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0;if(!A){i[f>>2]=5,i[f+4>>2]=2001,i[f+8>>2]=3104;return}i:{if(n=i[e>>2],k=i[n+72>>2],t=i[n+76>>2],(k|0)!=(t|0))for(;;){if(n=i[k>>2],i[n>>2]==(r|0)){if(r=i[k+4>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),k=U(16),i[k+8>>2]=0,i[k+12>>2]=0,t=i[e>>2],e=i[e+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[k+4>>2]=e,i[k>>2]=t,r)break i;i[k+12>>2]=r,i[k+8>>2]=n,i[A>>2]=k,i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e;return}if(k=k+8|0,(t|0)==(k|0))break}i[f>>2]=5,i[f+4>>2]=2e3,i[f+8>>2]=2878;return}i[r+4>>2]=i[r+4>>2]+1,i[k+12>>2]=r,i[k+8>>2]=n,i[A>>2]=k,i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,f=i[r+4>>2],i[r+4>>2]=f-1,f||(V[i[i[r>>2]+8>>2]](r),g(r))}function Vi(f,e,r,A){var k=0,n=0,t=0;t=B-16|0,B=t,k=U(80),i[k+4>>2]=0,i[k+8>>2]=0,i[k>>2]=70984,n=k+16|0,i[n+8>>2]=0,i[n+12>>2]=0,i[n+16>>2]=0,i[n+20>>2]=0,i[n+24>>2]=0,i[n+28>>2]=0,i[n+32>>2]=0,i[n>>2]=68500,i[k+52>>2]=0,i[k+56>>2]=0,i[k+68>>2]=0,l[k+57|0]=0,l[k+58|0]=0,l[k+59|0]=0,l[k+60|0]=0,l[k+61|0]=0,l[k+62|0]=0,l[k+63|0]=0,l[k+64|0]=0,i[n>>2]=69264,i[k+76>>2]=A,i[k+72>>2]=r,i[k+32>>2]=1769173093,r=i[f+44>>2],i[t+12>>2]=k,i[t+8>>2]=n,i[k+4>>2]=i[k+4>>2]+1,A=N4(r,t+8|0),r=i[t+12>>2];i:{if(!r||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break i;V[i[i[r>>2]+8>>2]](r),g(r)}f=i[f+52>>2],X[t+6>>1]=A+1,l[t+4|0]=0,i[t>>2]=Q[t+4>>1]|Q[t+6>>1]<<16,c1(f,e,t),f=i[k+4>>2],i[k+4>>2]=f-1,f||(V[i[i[k>>2]+8>>2]](k),g(k)),B=t+16|0}function qn(f,e,r,A){i:switch(e-9|0){case 0:e=i[r>>2],i[r>>2]=e+4,i[f>>2]=i[e>>2];return;case 6:e=i[r>>2],i[r>>2]=e+4,e=X[e>>1],i[f>>2]=e,i[f+4>>2]=e>>31;return;case 7:e=i[r>>2],i[r>>2]=e+4,i[f>>2]=Q[e>>1],i[f+4>>2]=0;return;case 8:e=i[r>>2],i[r>>2]=e+4,e=l[e|0],i[f>>2]=e,i[f+4>>2]=e>>31;return;case 9:e=i[r>>2],i[r>>2]=e+4,i[f>>2]=s[e|0],i[f+4>>2]=0;return;case 16:e=i[r>>2]+7&-8,i[r>>2]=e+8,i0[f>>3]=i0[e>>3];return;case 17:V[A|0](f,r);default:return;case 1:case 4:case 14:e=i[r>>2],i[r>>2]=e+4,e=i[e>>2],i[f>>2]=e,i[f+4>>2]=e>>31;return;case 2:case 5:case 11:case 15:e=i[r>>2],i[r>>2]=e+4,i[f>>2]=i[e>>2],i[f+4>>2]=0;return;case 3:case 10:case 12:case 13:break i}e=i[r>>2]+7&-8,i[r>>2]=e+8,r=i[e+4>>2],i[f>>2]=i[e>>2],i[f+4>>2]=r}function gm(f){f=f|0;var e=0,r=0,A=0;if(r=f+12|0,f=i[r+60>>2],A=r- -64|0,(f|0)!=(A|0))for(;;){e=i[f+44>>2],e&&G(e),e=i[f+4>>2];i:{if(e){for(;;)if(f=e,e=i[f>>2],!e)break i}for(;e=f,f=i[f+8>>2],(e|0)!=i[f>>2];);}if((f|0)==(A|0))break}if(e=i[r+112>>2],e){if(A=e,f=i[r+116>>2],(e|0)!=(f|0)){for(;l[f-1|0]<0&&G(i[f-12>>2]),f=f-20|0,(e|0)!=(f|0););A=i[r+112>>2]}i[r+116>>2]=e,G(A)}q3(r+60|0,i[r+64>>2]),f=i[r+56>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}f=i[r+48>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}l[r+19|0]<0&&G(i[r+8>>2]),f=i[r+4>>2],f&&g(f)}function $n(f,e,r,A,k,n){var t=0;t=B-80|0,B=t;i:{if((n|0)>=16384){if(d2(t+32|0,e,r,A,k,0,0,0,2147352576),A=i[t+40>>2],k=i[t+44>>2],e=i[t+32>>2],r=i[t+36>>2],n>>>0<32767){n=n-16383|0;break i}d2(t+16|0,e,r,A,k,0,0,0,2147352576),n=(n>>>0>=49149?49149:n)-32766|0,A=i[t+24>>2],k=i[t+28>>2],e=i[t+16>>2],r=i[t+20>>2];break i}if((n|0)>-16383)break i;if(d2(t- -64|0,e,r,A,k,0,0,0,7471104),A=i[t+72>>2],k=i[t+76>>2],e=i[t+64>>2],r=i[t+68>>2],n>>>0>4294934644){n=n+16269|0;break i}d2(t+48|0,e,r,A,k,0,0,0,7471104),n=(n>>>0<=4294918376?-48920:n)+32538|0,A=i[t+56>>2],k=i[t+60>>2],e=i[t+48>>2],r=i[t+52>>2]}d2(t,e,r,A,k,0,0,0,n+16383<<16),e=i[t+12>>2],i[f+8>>2]=i[t+8>>2],i[f+12>>2]=e,e=i[t+4>>2],i[f>>2]=i[t>>2],i[f+4>>2]=e,B=t+80|0}function f2(f,e){var r=0,A=0,k=0,n=0;A=i[f+12>>2],r=s[((s[e|0]<<1&508)+(A>>>6|0)|0)+43084|0],A=A-r|0,i[f+12>>2]=A,k=i[f+16>>2],A=A<<7;i:{if(k>>>0>>0){if(k=e,r=s[e|0],e=r&1,l[k|0]=e|s[(r>>>1|0)+43344|0]<<1,A>>>0>32767||(i[f+12>>2]=A>>>6,A=i[f+16>>2]<<1,i[f+16>>2]=A,r=Q[f+20>>1]+1|0,X[f+20>>1]=r,(r|0)==(r&65535))||(X[f+20>>1]=65528,r=i[f+4>>2],r>>>0>=k0[f+8>>2]))break i;return i[f+4>>2]=r+1,i[f+16>>2]=A|s[r|0],e}if(n=s[(r>>>3|0)+43408|0],i[f+12>>2]=r<>2]=k-A<>>1|0)+43440|0]<<1|(A>>>0<2?e:k),r=n+Q[f+20>>1]|0,X[f+20>>1]=r,r=r<<16>>16,(r|0)<0)break i;A=i[f+4>>2],A>>>0>2]&&(i[f+4>>2]=A+1,i[f+16>>2]=i[f+16>>2]|s[A|0]<>1]=r-8}return e}function Nm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+80>>2]=54820,k=i[13708],i[A+24>>2]=k,n=A+24|0,i[n+i[k-12>>2]>>2]=i[13709],k=n+i[i[A+24>>2]-12>>2]|0,t=A+28|0,b0(k,t),i[k+72>>2]=0,i[k+76>>2]=-1,i[A+80>>2]=54820,i[A+24>>2]=54800,k=$0(t),i[k>>2]=53552,i[A+68>>2]=0,i[A+72>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+76>>2]=16,t=A+12|0,R2(t,e,r),o=n,u=t,n=l[A+23|0],t=(n|0)<0,x(o,t?i[A+12>>2]:u,t?i[A+16>>2]:n),l[A+23|0]<0&&G(i[A+12>>2]),n=A+12|0,rn(n,e,r,1),e=l[A+23|0],r=(e|0)<0,x(A+24|0,r?i[A+12>>2]:n,r?i[A+16>>2]:e),l[A+23|0]<0&&G(i[A+12>>2]),i2(f,k),f=i[13707],i[A+24>>2]=f,i[i[f-12>>2]+(A+24|0)>>2]=i[13710],i[k>>2]=53552,l[A+71|0]<0&&G(i[A+60>>2]),K0(k),T0(A+80|0),B=A+160|0}function Ai(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-160|0,B=A,i[A+80>>2]=54820,k=i[13708],i[A+24>>2]=k,n=A+24|0,i[n+i[k-12>>2]>>2]=i[13709],k=n+i[i[A+24>>2]-12>>2]|0,t=A+28|0,b0(k,t),i[k+72>>2]=0,i[k+76>>2]=-1,i[A+80>>2]=54820,i[A+24>>2]=54800,k=$0(t),i[k>>2]=53552,i[A+68>>2]=0,i[A+72>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+76>>2]=16,t=A+12|0,R2(t,e,r),o=n,u=t,n=l[A+23|0],t=(n|0)<0,x(o,t?i[A+12>>2]:u,t?i[A+16>>2]:n),l[A+23|0]<0&&G(i[A+12>>2]),n=A+12|0,rn(n,e,r,0),e=l[A+23|0],r=(e|0)<0,x(A+24|0,r?i[A+12>>2]:n,r?i[A+16>>2]:e),l[A+23|0]<0&&G(i[A+12>>2]),i2(f,k),f=i[13707],i[A+24>>2]=f,i[i[f-12>>2]+(A+24|0)>>2]=i[13710],i[k>>2]=53552,l[A+71|0]<0&&G(i[A+60>>2]),K0(k),T0(A+80|0),B=A+160|0}function F2(f,e,r){var A=0,k=0;i:{if((f|0)==(e|0))break i;if(k=f+r|0,e-k>>>0<=0-(r<<1)>>>0){l0(f,e,r);return}A=(f^e)&3;r:{e:{if(f>>>0>>0){if(A)break r;if(!(f&3))break e;for(;;){if(!r)break i;if(l[f|0]=s[e|0],e=e+1|0,r=r-1|0,f=f+1|0,!(f&3))break}break e}A:{if(A)break A;if(k&3)for(;;){if(!r)break i;if(r=r-1|0,A=r+f|0,l[A|0]=s[e+r|0],!(A&3))break}if(r>>>0<=3)break A;for(;r=r-4|0,i[r+f>>2]=i[e+r>>2],r>>>0>3;);}if(!r)break i;for(;r=r-1|0,l[r+f|0]=s[e+r|0],!!r;);break i}if(r>>>0<=3)break r;for(;i[f>>2]=i[e>>2],e=e+4|0,f=f+4|0,r=r-4|0,r>>>0>3;);}if(!r)break i;for(;l[f|0]=s[e|0],f=f+1|0,e=e+1|0,r=r-1|0,!!r;);}}function M2(){var f=0,e=0,r=0,A=0,k=0,n=0;if(s[100004])return i[25e3];r=B-32|0,B=r;i:{r:{for(;;){if(e=r+8|0,A=cn(f,1<>2]=A,(A|0)==-1)break r;if(f=f+1|0,(f|0)==6)break}if(f=55448,!K2(e,55448,24)||(f=55472,!K2(e,55472,24)))break i;if(f=0,!s[99656]){for(;k=(f<<2)+99608|0,n=cn(f,31341),i[k>>2]=n,f=f+1|0,(f|0)!=6;);l[99656]=1,i[24908]=i[24902]}if(f=99608,e=r+8|0,!K2(e,99608,24)||(f=99632,!K2(e,99632,24)))break i;if(f=Z2(24),!f)break r;e=i[r+12>>2],i[f>>2]=i[r+8>>2],i[f+4>>2]=e,e=i[r+28>>2],i[f+16>>2]=i[r+24>>2],i[f+20>>2]=e,e=i[r+20>>2],i[f+8>>2]=i[r+16>>2],i[f+12>>2]=e;break i}f=0}return B=r+32|0,l[100004]=1,i[25e3]=f,f}function Rm(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0;n=B-32|0,B=n;i:{r:{if(o=V[i[i[e>>2]+68>>2]](i[e+4>>2])|0,t=i[o>>2],!t)break r;for(;;){if(v4(i[t+4>>2],r)){if(t=i[o+4>>2],o=o+4|0,t)continue;break r}break}e:{A:switch(i[t+8>>2]-1|0){case 0:if(V[i[i[e>>2]+76>>2]](f,i[e+4>>2],r,n+28|0),i[f>>2])break i;i[n>>2]=i[n+28>>2],I8(A,k,13656,n);break e;case 1:if(V[i[i[e>>2]+84>>2]](f,i[e+4>>2],r,n+28|0),i[f>>2])break i;i[n+16>>2]=i[n+28>>2],I8(A,k,13656,n+16|0);break e;case 2:break A;default:break e}if(V[i[i[e>>2]+92>>2]](f,i[e+4>>2],r,A,k),i[f>>2])break i}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412];break i}e=i[18429],i[f>>2]=i[18428],i[f+4>>2]=e,i[f+8>>2]=i[18430]}B=n+32|0}function Dm(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;if(n=B-16|0,B=n,t=i[e+68>>2],t){t=V[i[i[t>>2]+24>>2]](t)|0;i:{r:{if(!(!i[e+64>>2]|(r|A)!=0&(t|0)<=0)&&!(V[i[i[e>>2]+24>>2]](e)|0))break r;i[f+8>>2]=-1,i[f+12>>2]=-1,i[f>>2]=0,i[f+4>>2]=0;break i}if(k>>>0>=3){i[f+8>>2]=-1,i[f+12>>2]=-1,i[f>>2]=0,i[f+4>>2]=0;break i}if(o=i[e+64>>2],A=q0(t,0,r,A),r=(t|0)>0,Ce(o,r?A:0,r?w0:0,k)){i[f+8>>2]=-1,i[f+12>>2]=-1,i[f>>2]=0,i[f+4>>2]=0;break i}r=i[e+64>>2];r:{if(i[r+76>>2]<0){r=C9(r),A=w0;break r}r=C9(r),A=w0}i[f+8>>2]=r,i[f+12>>2]=A,i[f>>2]=0,i[f+4>>2]=0,r=i[e+72>>2],e=i[e+76>>2],i[n>>2]=r,i[n+4>>2]=e,i[n+8>>2]=r,i[n+12>>2]=e,e=i[n+4>>2],i[f>>2]=i[n>>2],i[f+4>>2]=e}B=n+16|0;return}u1(),P()}function jr(f,e,r){var A=0,k=0,n=0,t=0,o=0;if((e|0)!=(r|0))for(o=f+4|0;;){t=i[f+4>>2];i:{r:{e:{if(A=o,(A|0)==i[f>>2])break e;n=A,k=t;A:{if(k){for(;;)if(A=k,k=i[A+4>>2],!k)break A}for(;A=i[n+8>>2],k=i[A>>2]==(n|0),n=A,!!k;);}if(k=i[e>>2],k>>>0>k0[A+16>>2])break e;if(n=o,A=n,!t)break r;for(;;){if(A=t,n=i[A+16>>2],n>>>0>k>>>0){if(n=A,t=i[A>>2],t)continue;break r}if(k>>>0<=n>>>0)break i;if(t=i[A+4>>2],!t)break}n=A+4|0;break r}if(n=t?A+4|0:o,i[n>>2])break i;A=t?A:o}k=U(20),t=i[e>>2],i[k+8>>2]=A,i[k>>2]=0,i[k+4>>2]=0,i[k+16>>2]=t,i[n>>2]=k,A=i[i[f>>2]>>2],A&&(i[f>>2]=A,k=i[n>>2]),D1(i[f+4>>2],k),i[f+8>>2]=i[f+8>>2]+1}if(e=e+4|0,(r|0)==(e|0))break}}function bn(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=75028,A=i[f+68>>2],A){if(e=i[f+72>>2],r=A,(e|0)!=(A|0)){for(;r=e-12|0,k=i[r>>2],k&&(i[e-8>>2]=k,G(k)),e=r,(A|0)!=(e|0););r=i[f+68>>2]}i[f+72>>2]=A,G(r)}if(A=i[f+56>>2],A){if(e=i[f+60>>2],r=A,(e|0)!=(A|0)){for(;r=e-12|0,k=i[r>>2],k&&(i[e-8>>2]=k,G(k)),e=r,(A|0)!=(e|0););r=i[f+56>>2]}i[f+60>>2]=A,G(r)}if(i[f>>2]=68616,A=i[f+36>>2],A){if(e=A,r=i[f+40>>2],(e|0)!=(r|0)){for(;;){e=i[r-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(r=r-8|0,(A|0)==(r|0))break}e=i[f+36>>2]}i[f+40>>2]=A,G(e)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function B0(f,e,r){var A=0,k=0,n=0,t=0;i:{if(!r||(l[f|0]=e,A=f+r|0,l[A-1|0]=e,r>>>0<3)||(l[f+2|0]=e,l[f+1|0]=e,l[A-3|0]=e,l[A-2|0]=e,r>>>0<7)||(l[f+3|0]=e,l[A-4|0]=e,r>>>0<9)||(A=0-f&3,k=A+f|0,e=m(e&255,16843009),i[k>>2]=e,A=r-A&-4,r=A+k|0,i[r-4>>2]=e,A>>>0<9)||(i[k+8>>2]=e,i[k+4>>2]=e,i[r-8>>2]=e,i[r-12>>2]=e,A>>>0<25)||(i[k+24>>2]=e,i[k+20>>2]=e,i[k+16>>2]=e,i[k+12>>2]=e,i[r-16>>2]=e,i[r-20>>2]=e,i[r-24>>2]=e,i[r-28>>2]=e,t=k&4|24,r=A-t|0,r>>>0<32))break i;for(A=q0(e,0,1,1),n=w0,e=k+t|0;i[e+24>>2]=A,i[e+28>>2]=n,i[e+16>>2]=A,i[e+20>>2]=n,i[e+8>>2]=A,i[e+12>>2]=n,i[e>>2]=A,i[e+4>>2]=n,e=e+32|0,r=r-32|0,r>>>0>31;);}return f}function Um(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0;n=B-32|0,B=n,k=i[e>>2],t=i[k+64>>2],k=i[k+68>>2],k&&(i[k+4>>2]=i[k+4>>2]+1);i:{if(i[t+20>>2]!=(r|0)){if(i[A>>2]=0,l[n|0]=0,l[n+11|0]=0,r=r0(n+12|0,5,2e3,n),l[n+11|0]<0&&G(i[n>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break i;G(i[r+8>>2]);break i}r=U(16),i[r+8>>2]=0,i[r+12>>2]=0,i[A>>2]=r,k&&(i[k+4>>2]=i[k+4>>2]+1),i[r+4>>2]=k,i[r>>2]=t,r=i[e+8>>2],A=i[A>>2],t=i[e+12>>2],t&&(i[t+4>>2]=i[t+4>>2]+1),i[A+8>>2]=r,r=i[A+12>>2],i[A+12>>2]=t;r:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break r;V[i[i[r>>2]+8>>2]](r),g(r)}P0(f,78256,i[e>>2])}i:{if(!k||(f=i[k+4>>2],i[k+4>>2]=f-1,f))break i;V[i[i[k>>2]+8>>2]](k),g(k)}B=n+32|0}function dn(f,e,r){i:{r:switch(e-1|0){case 0:e=i[f+20>>2],i[e+48>>2]=1751476579,i[e+52>>2]=0,Z4(e,1835623985),Z4(i[f+20>>2],1751476579);break i;case 3:e=i[f+20>>2],i[e+48>>2]=1635150182,i[e+52>>2]=0,Z4(e,1635150182),Z4(i[f+20>>2],1835623985);break i;case 4:e=i[f+20>>2],i[e+48>>2]=1987471715,i[e+52>>2]=0,Z4(e,1835623985),Z4(i[f+20>>2],1987471715);break i;case 2:e=i[f+20>>2],i[e+48>>2]=1785750887,i[e+52>>2]=0,Z4(e,1785750887),Z4(i[f+20>>2],1835623985);break i;case 7:e=i[f+20>>2],i[e+48>>2]=1835623986,i[e+52>>2]=0,Z4(e,1835623985);break i;case 6:case 9:break r;default:break i}e=i[f+20>>2],i[e+48>>2]=1781689193,i[e+52>>2]=0,Z4(e,1835623985),Z4(i[f+20>>2],1781689193)}r&&Z4(i[f+20>>2],1835622758)}function cn(f,e){var r=0,A=0,k=0;i:{if(s[e|0]||(e=OA(15058),s[e|0]&&e)||(e=OA(m(f,12)+56480|0),s[e|0]&&e)||(e=OA(15133),s[e|0]&&e))break i;e=16417}i:{for(;;){if(A=s[e+r|0],!(!A|(A|0)==47)){if(A=23,r=r+1|0,(r|0)!=23)continue;break i}break}A=r}k=16417;i:{r:{r=s[e|0];e:{A:{if(!(s[e+A|0]|(r|0)==46)&&(k=e,(r|0)!=67))break A;if(!s[k+1|0])break e}if(!v4(k,16417))break e;if(v4(k,14836))break r}if(!f&&(r=55412,s[k+1|0]==46))break i;return 0}if(r=i[24901],r)for(;;){if(!v4(k,r+8|0))break i;if(r=i[r+32>>2],!r)break}r=Z2(36),r&&(e=i[13854],i[r>>2]=i[13853],i[r+4>>2]=e,e=r+8|0,l0(e,k,A),l[e+A|0]=0,i[r+32>>2]=i[24901],i[24901]=r),r=f|r?r:55412}return r}function i7(f){var e=0,r=0,A=0,k=0;if(e=i[f+40>>2],A=i[f+36>>2],(e|0)!=(A|0))for(;;){r=i[e-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(e=e-8|0,(A|0)==(e|0))break}i[f+40>>2]=A,e=i[f+56>>2],i[f+52>>2]=0,i[f+56>>2]=0;i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+68>>2],i[f+64>>2]=0,i[f+68>>2]=0;i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(e=i[f+156>>2],A=i[f+152>>2],(e|0)!=(A|0))for(;;){r=i[e-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(e=e-8|0,(A|0)==(e|0))break}i[f+156>>2]=A}function r7(f,e,r,A,k,n,t,o){var u=0,h=0,w=0,_=0;if(h=B-16|0,B=h,(e^-1)+1073741815>>>0>=r>>>0){s[f+11|0]>>>7|0?u=i[f>>2]:u=f,w=u,u=h+4|0,_=u,e>>>0<536870899?(i[h+12>>2]=e<<1,i[h+4>>2]=e+r,r=B-16|0,B=r,B=r+16|0,r=h+12|0,r=i[(k0[u>>2]>2]?r:u)>>2],r>>>0>=2?(u=r+2&-2,r=u-1|0,r=(r|0)==2?u:r):r=1,r=r+1|0):r=1073741815,xi(_,r),r=i[h+4>>2],k&&ui(w,k,r),t&&ui(o,t,r+(k<<2)|0),u=k+n|0,o=A-u|0,(A|0)!=(u|0)&&(A=k<<2,ui((A+w|0)+(n<<2)|0,o,(r+A|0)+(t<<2)|0)),(e|0)!=1&&Q8(w,4),i[f>>2]=r,i[f+8>>2]=i[f+8>>2]&-2147483648|i[h+8>>2]&2147483647,i[f+8>>2]=i[f+8>>2]|-2147483648,e=f,f=o+(k+t|0)|0,i[e+4>>2]=f,i[h+12>>2]=0,i[r+(f<<2)>>2]=i[h+12>>2],B=h+16|0;return}o4(),P()}function e7(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0;if(i[f>>2]=74252,A=i[f+84>>2],A){if(e=A,n=i[f+88>>2],(e|0)!=(n|0)){for(;;){if(o=n-12|0,k=i[o>>2],k){if(e=k,u=n-8|0,r=i[u>>2],(e|0)!=(r|0)){for(;e=r-12|0,t=i[e>>2],t&&(i[r-8>>2]=t,G(t)),r=e,(e|0)!=(k|0););e=i[o>>2]}i[u>>2]=k,G(e)}if(n=n-16|0,(A|0)==(n|0))break}e=i[f+84>>2]}i[f+88>>2]=A,G(e)}if(i[f>>2]=68616,A=i[f+36>>2],A){if(e=i[f+40>>2],r=A,(e|0)!=(r|0)){for(;;){r=i[e-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(e=e-8|0,(A|0)==(e|0))break}r=i[f+36>>2]}i[f+40>>2]=A,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function W0(f,e){var r=0,A=0,k=0,n=0,t=0;if(r=B-144|0,B=r,i[r+8>>2]=54496,i[r+64>>2]=54516,A=i[13633],i[r>>2]=A,i[i[A-12>>2]+r>>2]=i[13634],i[r+4>>2]=0,A=i[i[r>>2]-12>>2]+r|0,k=r+12|0,b0(A,k),i[A+72>>2]=0,i[A+76>>2]=-1,A=i[13635],i[r+8>>2]=A,n=r+8|0,i[n+i[A-12>>2]>>2]=i[13636],A=i[13632],i[r>>2]=A,i[i[A-12>>2]+r>>2]=i[13637],i[r+64>>2]=54516,i[r>>2]=54476,i[r+8>>2]=54496,A=$0(k),i[A>>2]=53552,i[r+52>>2]=0,i[r+56>>2]=0,i[r+44>>2]=0,i[r+48>>2]=0,i[r+60>>2]=24,i[e>>2]>0)for(;x(n,18713,2),t=t+1|0,(t|0)>2];);i2(f,A),f=i[13631],i[r>>2]=f,i[i[f-12>>2]+r>>2]=i[13639],i[r+8>>2]=i[13640],i[A>>2]=53552,l[r+55|0]<0&&G(i[r+44>>2]),K0(A),T0(r- -64|0),B=r+144|0}function A7(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0,o=0;if(i[f>>2]=68964,A=i[f+56>>2],A){if(r=A,n=i[f+60>>2],(r|0)!=(n|0)){for(;;){if(t=n-16|0,k=i[t>>2],k){if(e=k,o=n-12|0,r=i[o>>2],(e|0)!=(r|0)){for(;e=i[r-16>>2],e&&(i[r-12>>2]=e,G(e)),r=r-40|0,(k|0)!=(r|0););e=i[t>>2]}i[o>>2]=k,G(e)}if(n=n-32|0,(A|0)==(n|0))break}r=i[f+56>>2]}i[f+60>>2]=A,G(r)}if(i[f>>2]=68616,k=i[f+36>>2],k){if(e=k,r=i[f+40>>2],(e|0)!=(r|0)){for(;;){A=i[r-4>>2];i:{if(!A||(e=i[A+4>>2],i[A+4>>2]=e-1,e))break i;V[i[i[A>>2]+8>>2]](A),g(A)}if(r=r-8|0,(k|0)==(r|0))break}e=i[f+36>>2]}i[f+40>>2]=k,G(e)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function Mm(f,e,r,A,k,n,t,o,u,h,w,_,v){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0,h=h|0,w=w|0,_=_|0,v=v|0;var Z=0,p=0,W=0,C=0,I=0,y=0,E=0;if((_|0)>0){if(!((t|0)<=0|(n|0)<=0))for(W=(u+w|0)+1<<_,C=_+1|0,u=-1<>1],o)+W|0)+m(X[v>>1],h)>>C,X[_>>1]=(Z|0)>=0?(u|0)>(Z|0)?Z:u:0,Z=(m(X[w+2>>1],o)+W|0)+m(X[v+2>>1],h)>>C,X[_+2>>1]=(Z|0)>=0?(u|0)>(Z|0)?Z:u:0,v=v+4|0,w=w+4|0,_=_+4|0,I=I+2|0,(y|0)!=(I|0););if(E&&(w=(m(X[w>>1],o)+W|0)+m(X[v>>1],h)>>C,X[_>>1]=(w|0)>=0?(u|0)>(w|0)?w:u:0),p=p+1|0,(p|0)==(t|0))break}return}C0(17004,13955,213,8045),P()}function q4(f,e,r,A,k){var n=0,t=0,o=0,u=0;u=B-16|0,B=u,i[u+12>>2]=e,e=0,o=6;i:{r:{if(J2(f,u+12|0))break r;n=i[f>>2],t=i[n+12>>2];e:{if((t|0)==i[n+16>>2]){n=V[i[i[n>>2]+36>>2]](n)|0;break e}n=s[t|0]}if(t=n<<24>>24,(t|0)>=0?n=(i[i[A+8>>2]+(t<<2)>>2]&64)!=0:n=0,o=4,!n)break r;for(e=V[i[i[A>>2]+36>>2]](A,t,0)|0;;){e:{if(E1(f),e=e-48|0,J2(f,u+12|0)|(k|0)<2)break e;n=i[f>>2],t=i[n+12>>2];A:{if((t|0)==i[n+16>>2]){n=V[i[i[n>>2]+36>>2]](n)|0;break A}n=s[t|0]}if(n=n<<24>>24,(n|0)>=0?o=(i[i[A+8>>2]+(n<<2)>>2]&64)!=0:o=0,!o)break i;k=k-1|0,e=(V[i[i[A>>2]+36>>2]](A,n,0)|0)+m(e,10)|0;continue}break}if(!J2(f,u+12|0))break i;o=2}i[r>>2]=o|i[r>>2]}return B=u+16|0,e}function xm(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;A=B-32|0,B=A;i:{if((e|0)==-1){if(s[f+52|0])break i;e=i[f+48>>2],l[f+52|0]=(e|0)!=-1;break i}r=s[f+52|0];r:{e:{A:{if(!s[f+53|0]){if(r&1)break A;break r}if(r=r&1,r){if(yo(i[f+48>>2],i[f+32>>2]))break r;break e}if(!r)break r}l[A+19|0]=i[f+48>>2]<<24>>24;A:{f:switch(r=i[f+36>>2],k=A+20|0,(V[i[i[r>>2]+12>>2]](r,i[f+40>>2],A+19|0,k,A+12|0,A+24|0,A+32|0,k)|0)-1|0){case 0:case 1:break e;case 2:break f;default:break A}r=i[f+48>>2],i[A+20>>2]=A+25,l[A+24|0]=r}for(;;){if(r=i[A+20>>2],r>>>0<=A+24>>>0)break r;if(r=r-1|0,i[A+20>>2]=r,(gi(l[r|0],i[f+32>>2])|0)==-1)break}}e=-1;break i}l[f+52|0]=1,i[f+48>>2]=e}return B=A+32|0,e|0}function zm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;if(!r)return 0;i:{r:{if(e=i[f>>2],s[e+60|0]==1){if(f=i[f+4>>2],f)break r;f=0;break i}if(f=i[e+68>>2],e=i[e+64>>2],f)break r;f=0;break i}i[f+4>>2]=i[f+4>>2]+1}s[e+72|0]==1&&(A=U(56),k=i[e+132>>2],i[A+48>>2]=i[e+128>>2],i[A+52>>2]=k,k=i[e+124>>2],i[A+40>>2]=i[e+120>>2],i[A+44>>2]=k,k=i[e+116>>2],i[A+32>>2]=i[e+112>>2],i[A+36>>2]=k,k=i[e+108>>2],i[A+24>>2]=i[e+104>>2],i[A+28>>2]=k,k=i[e+100>>2],i[A+16>>2]=i[e+96>>2],i[A+20>>2]=k,k=i[e+92>>2],i[A+8>>2]=i[e+88>>2],i[A+12>>2]=k,k=i[e+84>>2],i[A>>2]=i[e+80>>2],i[A+4>>2]=k,k=1),i[r>>2]=A;i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}return k|0}function B4(f,e){var r=0,A=0,k=0,n=0;r=B-32|0,B=r,i[r+24>>2]=0,i[r+16>>2]=0,i[r+20>>2]=0;i:{if(i[e+16>>2]){for(;;){if(!T4(e,1)){i[f>>2]=0,i[f+4>>2]=0,i[f+8>>2]=0;break i}k=i[e>>2],A=i[e+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1);r:{if(!(V[i[i[k>>2]+16>>2]](k,r+15|0,1)|0)){vi(e),i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,k=1;break r}if(n=l[r+15|0],k=2,!n)break r;C6(r+16|0,n),k=0}r:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break r;V[i[i[A>>2]+8>>2]](A),g(A)}if(k)break}if((k|0)!=2)break i;e=i[r+20>>2],i[f>>2]=i[r+16>>2],i[f+4>>2]=e,i[f+8>>2]=i[r+24>>2],i[r+24>>2]=0,i[r+16>>2]=0,i[r+20>>2]=0;break i}i[f>>2]=0,i[f+4>>2]=0,i[f+8>>2]=0}l[r+27|0]<0&&G(i[r+16>>2]),B=r+32|0}function Hm(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(!(!(i[r>>2]!=1|(i[r+4>>2]&-2)!=10)&i[r+12>>2]==8)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,i[e+48>>2]=8,l[e+44|0]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,i[e+36>>2]=99,i[e+40>>2]=99,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,i[e+36>>2]=1,i[e+40>>2]=3,l[e+44|0]=s[A+8|0],i[e+48>>2]=i[r+12>>2],r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,r=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,i[e>>2]=1,i[e+4>>2]=3,i[e+16>>2]=72992,i[e+20>>2]=i[e+56>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function Tm(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e;i:{if(!(!(i[r>>2]!=1|(i[r+4>>2]&-2)!=12)&i[r+12>>2]>8)){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;break i}i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,i[e+48>>2]=8,l[e+44|0]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,i[e+36>>2]=99,i[e+40>>2]=99,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,i[e+36>>2]=1,i[e+40>>2]=3,l[e+44|0]=s[A+8|0],i[e+48>>2]=i[r+12>>2],r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,r=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,i[e>>2]=1,i[e+4>>2]=3,i[e+16>>2]=72992,i[e+20>>2]=i[e+56>>2],i[e+28>>2]=11,P2(f,e)}B=e- -64|0}function am(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;A=B-32|0,B=A;i:{if((e|0)==-1){if(s[f+52|0])break i;e=i[f+48>>2],l[f+52|0]=(e|0)!=-1;break i}r=s[f+52|0];r:{e:{A:{if(!s[f+53|0]){if(r&1)break A;break r}if(r=r&1,r){if(O7(i[f+48>>2],i[f+32>>2]))break r;break e}if(!r)break r}i[A+16>>2]=i[f+48>>2];A:{f:switch(r=i[f+36>>2],k=A+20|0,(V[i[i[r>>2]+12>>2]](r,i[f+40>>2],A+16|0,k,A+12|0,A+24|0,A+32|0,k)|0)-1|0){case 0:case 1:break e;case 2:break f;default:break A}r=i[f+48>>2],i[A+20>>2]=A+25,l[A+24|0]=r}for(;;){if(r=i[A+20>>2],r>>>0<=A+24>>>0)break r;if(r=r-1|0,i[A+20>>2]=r,(gi(l[r|0],i[f+32>>2])|0)==-1)break}}e=-1;break i}l[f+52|0]=1,i[f+48>>2]=e}return B=A+32|0,e|0}function M8(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;if(k=i[f+24>>2],!((k|0)>=(e|0)|(k|0)>56)){for(A=64-k|0,n=i[f+16>>2],w=i[f+20>>2],k=i[f+8>>2],r=i[f>>2];;){i:{if(t=A,!k){u=A;break i}if(o=r+1|0,i[f>>2]=o,r=s[r|0],k=k-1|0,i[f+8>>2]=k,u=t-8|0,h=u&31,(u&63)>>>0>=32?(_=r<>>32-h,r=r<>2]=n,i[f+20>>2]=r,r=A,A=r-8|0,v=v-(r>>>0<8)|0,r=o,(t|0)>15)continue}break}k=64-u|0}return i[f+24>>2]=k-e,r=i[f+16>>2],A=f,A=f,f=i[f+20>>2],t=r,n=e&31,(e&63)>>>0>=32?(o=r<>>32-n|f<>2]=t,i[A+20>>2]=o,A=64-e|0,e=r,r=A&31,(A&63)>>>0>=32?f=f>>>r|0:f=((1<>>r,f&255}function g0(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;if(k=i[f+24>>2],!((k|0)>=(e|0)|(k|0)>56)){for(A=64-k|0,n=i[f+16>>2],w=i[f+20>>2],k=i[f+8>>2],r=i[f>>2];;){i:{if(t=A,!k){u=A;break i}if(o=r+1|0,i[f>>2]=o,r=s[r|0],k=k-1|0,i[f+8>>2]=k,u=t-8|0,h=u&31,(u&63)>>>0>=32?(_=r<>>32-h,r=r<>2]=n,i[f+20>>2]=r,r=A,A=r-8|0,v=v-(r>>>0<8)|0,r=o,(t|0)>15)continue}break}k=64-u|0}return i[f+24>>2]=k-e,r=i[f+16>>2],A=f,A=f,f=i[f+20>>2],t=r,n=e&31,(e&63)>>>0>=32?(o=r<>>32-n|f<>2]=t,i[A+20>>2]=o,A=64-e|0,e=r,r=A&31,(A&63)>>>0>=32?f=f>>>r|0:f=((1<>>r,f}function Sm(f,e,r,A,k,n,t,o,u,h,w,_){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0,h=h|0,w=w|0,_=_|0;var v=0,Z=0,p=0,W=0,C=0,I=0,y=0;if((_|0)>0){if(!((t|0)<=0|(n|0)<=0))for(p=(u+w|0)+1<<_,W=_+1|0,I=n&2147483646,y=n&1;;){if(_=m(e,Z)+f|0,u=m(k,Z)<<1,w=u+A|0,u=r+u|0,C=0,(n|0)!=1)for(;v=(m(X[u>>1],o)+p|0)+m(X[w>>1],h)>>W,v=(v|0)>=255?255:v,l[_|0]=(v|0)>0?v:0,v=(m(X[u+2>>1],o)+p|0)+m(X[w+2>>1],h)>>W,v=(v|0)>=255?255:v,l[_+1|0]=(v|0)>0?v:0,w=w+4|0,u=u+4|0,_=_+2|0,C=C+2|0,(I|0)!=(C|0););if(y&&(u=(m(X[u>>1],o)+p|0)+m(X[w>>1],h)>>W,u=(u|0)>=255?255:u,l[_|0]=(u|0)>0?u:0),Z=Z+1|0,(Z|0)==(t|0))break}return}C0(17004,13955,80,7893),P()}function Om(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-32|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(A,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(k=i[19565],i[A>>2]=i[19564],i[A+4>>2]=k,k=A+8|0,l[78275]>=0){n=i[19567],i[k>>2]=i[19566],i[k+4>>2]=n,i[k+8>>2]=i[19568];break i}_0(k,i[19566],i[19567])}l[A+19|0]<0&&G(i[A+8>>2]);i:{if(!s[e+48|0]){k=t2(r);break i}k=D0(r)}i:{if(!k){if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567]);break i}Yr(f,e,r,-1)}B=A+32|0}function Pr(f,e,r,A,k,n,t,o){var u=0,h=0,w=0,_=0;if(h=B-16|0,B=h,(e^-1)+2147483639>>>0>=r>>>0){s[f+11|0]>>>7|0?u=i[f>>2]:u=f,w=u,u=h+4|0,_=u,e>>>0<1073741811?(i[h+12>>2]=e<<1,i[h+4>>2]=e+r,r=B-16|0,B=r,B=r+16|0,r=h+12|0,r=i[(k0[u>>2]>2]?r:u)>>2],r>>>0>=11?(u=r+8&-8,r=u-1|0,r=(r|0)==11?u:r):r=10,r=r+1|0):r=2147483639,Mi(_,r),r=i[h+4>>2],k&&e8(w,k,r),t&&e8(o,t,r+k|0),u=k+n|0,o=A-u|0,(A|0)!=(u|0)&&e8((k+w|0)+n|0,o,(r+k|0)+t|0),(e|0)!=10&&Q8(w,1),i[f>>2]=r,i[f+8>>2]=i[f+8>>2]&-2147483648|i[h+8>>2]&2147483647,i[f+8>>2]=i[f+8>>2]|-2147483648,e=f,f=o+(k+t|0)|0,i[e+4>>2]=f,l[h+12|0]=0,l[f+r|0]=s[h+12|0],B=h+16|0;return}o4(),P()}function f7(f){var e=0,r=0,A=0,k=0,n=0;n=i[23985],i[f+72>>2]<=0&&z3(f),i[23985]=i[f+136>>2],r=B-32|0,B=r;i:{r:{e:{if(e=i[f+4>>2],A=i[f+8>>2],(e|0)==(A|0)||(e=h7(r+28|0,e,A-e|0),(e|0)==-1))break e;i[f+4>>2]=i[f+4>>2]+(e>>>0<=1?1:e);break r}for(i[r+16>>2]=0,i[r+20>>2]=0,e=0;;){A=e;e:{if(e=i[f+4>>2],(e|0)!=i[f+8>>2]){i[f+4>>2]=e+1,l[r+15|0]=s[e|0];break e}if(e=ve(f),l[r+15|0]=e,(e|0)>=0)break e;if(e=-1,!(A&1))break i;i[f>>2]=i[f>>2]|32,i[23944]=25;break i}if(e=1,k=B6(r+28|0,r+15|0,1,r+16|0),(k|0)!=-2)break}if(e=-1,(k|0)!=-1)break r;if(!(A&1))break i;i[f>>2]=i[f>>2]|32,gi(s[r+15|0],f);break i}e=i[r+28>>2]}return B=r+32|0,i[23985]=n,e}function MA(f,e,r,A,k,n){var t=0;t=B-32|0,B=t,i[t+8>>2]=0,i[t>>2]=0,i[t+4>>2]=0;i:{r:{if(n>>>0<2)break r;e:switch(n-3|0){case 1:if(l[t+12|0]=0,l[t+23|0]=0,r0(f,4,3005,t+12|0),l[t+23|0]>=0)break i;G(i[t+12>>2]);break i;case 0:break e;default:break r}if(l[t+12|0]=0,l[t+23|0]=0,r0(f,4,3005,t+12|0),l[t+23|0]>=0)break i;G(i[t+12>>2]);break i}if(k?(L2(t,k),n=i[t>>2]):n=0,l0(n,A,k),Wr(t+12|0,i[e+60>>2],i[i[r>>2]+56>>2],t,0),l[t+31|0]<0&&G(i[t+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}f=i[t>>2],f&&(i[t+4>>2]=f,G(f)),B=t+32|0}function L2(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;if(n=i[f+8>>2],A=i[f+4>>2],n-A>>>0>=e>>>0){e&&(A=B0(A,0,e)+e|0),i[f+4>>2]=A;return}if(k=i[f>>2],t=A-k|0,r=t+e|0,(r|0)>=0){n=n-k|0,o=n<<1,r=n>>>0>=1073741823?2147483647:r>>>0>>0?o:r,r&&(u=U(r)),n=r+u|0,o=e,r=t+u|0,e=B0(r,0,e),o=o+e|0;i:{if((A|0)==(k|0)){u=e;break i}h=t&3;r:{if(!h){e=A;break r}for(t=0,e=A;r=r-1|0,e=e-1|0,l[r|0]=s[e|0],t=t+1|0,(h|0)!=(t|0););}if(k-A>>>0<=4294967292)for(;l[r-1|0]=s[e-1|0],l[r-2|0]=s[e-2|0],l[r-3|0]=s[e-3|0],r=r-4|0,e=e-4|0,l[r|0]=s[e|0],(e|0)!=(k|0););k=i[f>>2]}i[f+8>>2]=n,i[f+4>>2]=o,i[f>>2]=u,k&&G(k);return}y0(),P()}function k7(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0,w=0;i:{if(n=V[i[i[e>>2]+68>>2]](i[e+4>>2])|0,k=i[n>>2],k)for(;;){o=n;r:{if(v4(i[k+4>>2],r))break r;e:{if(i[k+8>>2]==1){if(n=0,u=0,h=0,w=s[k+16|0],w&&(h=i[k+24>>2],u=i[k+20>>2]),t=i[k+32>>2],n=(t|0)>0?i[k+28>>2]:n,!(!w|!((A|0)<(u|0)|(A|0)>(h|0))))break i;if(k=0,(t|0)>0)break e;break r}i[f>>2]=5,e=i[18430],i[f+4>>2]=i[18429],i[f+8>>2]=e;return}for(;;){if(i[(k<<2)+n>>2]==(A|0))break r;if(k=k+1|0,(t|0)==(k|0))break}break i}if(n=o+4|0,k=i[o+4>>2],!k)break}V[i[i[e>>2]+72>>2]](f,i[e+4>>2],r,A);return}e=i[18426],i[f>>2]=i[18425],i[f+4>>2]=e,i[f+8>>2]=i[18427]}function n7(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;if(Ve(),r=i[19569],(r|0)==78280)return 0;i:{if(!e){for(;;){n=i[r+16>>2],e=V[i[n+16>>2]](f)|0,k=(e|0)>(t|0),A=i[r+4>>2];r:{if(A){for(;;)if(r=A,A=i[r>>2],!A)break r}for(;A=r,r=i[r+8>>2],(A|0)!=i[r>>2];);}if(t=k?e:t,u=k?n:u,(r|0)==78280)break}break i}for(;;){r:{if(o=i[r+16>>2],k=V[i[o+16>>2]](f)|0,(k|0)<=0|i[o>>2]<3||v4(e,i[o+40>>2]))break r;return o}n=(t|0)<(k|0),A=i[r+4>>2];r:{if(A){for(;;)if(r=A,A=i[r>>2],!A)break r}for(;A=r,r=i[r+8>>2],(A|0)!=i[r>>2];);}if(t=n?k:t,u=n?o:u,(r|0)==78280)break}}return u}function jm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0;A=B-160|0,B=A,i[A+68>>2]=54820,k=i[13708],i[A+12>>2]=k,n=A+12|0,i[n+i[k-12>>2]>>2]=i[13709],k=n+i[i[A+12>>2]-12>>2]|0,t=A+16|0,b0(k,t),i[k+72>>2]=0,i[k+76>>2]=-1,i[A+68>>2]=54820,i[A+12>>2]=54800,k=$0(t),i[k>>2]=53552,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+64>>2]=16,t=A+148|0,W0(t,r),o=n,r=l[A+159|0],n=(r|0)<0,x(o,n?i[A+148>>2]:t,n?i[A+152>>2]:r),l[A+159|0]<0&&G(i[A+148>>2]),r=A+12|0,x(L0(x(r,20785,14),i[e+12>>2]-i[e+8>>2]|0),31338,1),i2(f,k),f=i[13707],i[A+12>>2]=f,i[r+i[f-12>>2]>>2]=i[13710],i[k>>2]=53552,l[A+59|0]<0&&G(i[A+48>>2]),K0(k),T0(A+68|0),B=A+160|0}function t7(f,e,r,A,k){var n=0,t=0,o=0;if(n=U(24),i[n+20>>2]=e,l[n+8|0]=r,i[n>>2]=45868,i[n+4>>2]=0,i[n+16>>2]=k,i[n+12>>2]=A,i[e+18604>>2]=n,E6(f+1392|0,n),A=i[e+18596>>2],e=i[A+460>>2],r=i[A+464>>2],e>>>0>>0){i[e>>2]=n,i[A+460>>2]=e+4;return}i:{if(k=i[A+456>>2],t=e-k>>2,f=t+1|0,f>>>0<1073741824){if(o=t<<2,r=r-k|0,t=r>>1,t=r>>>0>=2147483644?1073741823:f>>>0>>0?t:f,t){if(t>>>0>=1073741824)break i;f=U(t<<2)}else f=0;if(r=o+f|0,i[r>>2]=n,n=r+4|0,(e|0)!=(k|0)){for(;r=r-4|0,e=e-4|0,i[r>>2]=i[e>>2],(e|0)!=(k|0););k=i[A+456>>2]}i[A+464>>2]=f+(t<<2),i[A+460>>2]=n,i[A+456>>2]=r,k&&G(k),i[A+460>>2]=n;return}y0(),P()}_2(),P()}function Pm(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;t=B-32|0,B=t,i[t+28>>2]=e;i:{if(!(i[A+4>>2]&1)){i[t>>2]=-1,e=V[i[i[f>>2]+16>>2]](f,e,r,A,k,t)|0;r:switch(i[t>>2]){case 0:l[n|0]=0;break i;case 1:l[n|0]=1;break i;default:break r}l[n|0]=1,i[k>>2]=4;break i}for(f=i[A+28>>2],i[t>>2]=f,(f|0)!=100008&&(i[f+4>>2]=i[f+4>>2]+1),e=x0(t,100192),O0(t),f=i[A+28>>2],i[t>>2]=f,(f|0)!=100008&&(i[f+4>>2]=i[f+4>>2]+1),f=x0(t,100248),O0(t),V[i[i[f>>2]+24>>2]](t,f),V[i[i[f>>2]+28>>2]](t|12,f),A=t+24|0,o=n,u=(Nr(t+28|0,r,t,A,e,k,1)|0)==(t|0),l[o|0]=u,e=i[t+28>>2];A=z0(A-12|0),(t|0)!=(A|0););}return B=t+32|0,e|0}function Lm(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;t=B-32|0,B=t,i[t+28>>2]=e;i:{if(!(i[A+4>>2]&1)){i[t>>2]=-1,e=V[i[i[f>>2]+16>>2]](f,e,r,A,k,t)|0;r:switch(i[t>>2]){case 0:l[n|0]=0;break i;case 1:l[n|0]=1;break i;default:break r}l[n|0]=1,i[k>>2]=4;break i}for(f=i[A+28>>2],i[t>>2]=f,(f|0)!=100008&&(i[f+4>>2]=i[f+4>>2]+1),e=x0(t,100184),O0(t),f=i[A+28>>2],i[t>>2]=f,(f|0)!=100008&&(i[f+4>>2]=i[f+4>>2]+1),f=x0(t,100256),O0(t),V[i[i[f>>2]+24>>2]](t,f),V[i[i[f>>2]+28>>2]](t|12,f),A=t+24|0,o=n,u=(Rr(t+28|0,r,t,A,e,k,1)|0)==(t|0),l[o|0]=u,e=i[t+28>>2];A=l1(A-12|0),(t|0)!=(A|0););}return B=t+32|0,e|0}function Km(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0,t=0,o=0;A=B-16|0,B=A,f=i[f>>2],i[A+12>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0;i:{if(r=i[f+28>>2],k=i[f+32>>2],(r|0)!=(k|0)){if(f=k-r|0,(f|0)<0)break i;for(n=U(f),i[A+4>>2]=n,i[A+12>>2]=f+n,f=n;i[f>>2]=i[r>>2],t=f,f=i[r+4>>2],i[t+4>>2]=f,f&&(i[f+4>>2]=i[f+4>>2]+1),f=t+8|0,r=r+8|0,(k|0)!=(r|0););for(i[A+8>>2]=f,r=n;o=i[i[r>>2]+20>>2]==(e|0),!!(!o&&(k=(r|0)!=(t|0),r=r+8|0,k)););for(;;){e=i[f-4>>2];r:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break r;V[i[i[e>>2]+8>>2]](e),g(e)}if(f=f-8|0,(n|0)==(f|0))break}G(i[A+4>>2])}return B=A+16|0,o|0}y0(),P()}function m6(f){var e=0,r=0,A=0,k=0,n=0,t=0,o=0;B0(f+38|0,0,2064),i[f+18524>>2]=-1,i[f+18528>>2]=-1;i:{r:{if(A=i[i[f+18592>>2]+24>>2],(A|0)>0){if(t=i[f+18588>>2],e=i[t+124>>2],k=i[e+484>>2]-1|0,n=i[t+132>>2],n=i[(i[n+8460>>2]+(i[i[n+8448>>2]+(A<<2)>>2]<<2)|0)-4>>2],r=i[e+16892>>2],A=(n|0)/(r|0)|0,r=(n-m(A,r)|0)+1|0,n=i[e+16876>>2],r=(r<>2],k=k>>r,(k|0)<0||(o=i[t+172>>2],(k|0)>=(o|0)))break r;if(e=i[e+488>>2]-1|0,A=(A+1<>r,(e|0)<0|(e|0)>=i[t+176>>2])break i;i[f+18520>>2]=l[((i[t+160>>2]+m(k,3)|0)+m(m(e,o),3)|0)+2|0]}return}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function qm(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;k=B-32|0,B=k;i:{if(!(r&&e)){i[f+8>>2]=0,i[f>>2]=5,i[f+4>>2]=2001;break i}if(!s[i[e>>2]+256|0]){if(l[k|0]=0,l[k+11|0]=0,r=r0(k+12|0,5,139,k),l[k+11|0]<0&&G(i[k>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break i;G(i[r+8>>2]);break i}A=U(80),i[A+16>>2]=0,i[A+20>>2]=0,X[A+12>>1]=1,i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+40>>2]=0,i[A+44>>2]=1072693248,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,n=A- -64|0,i[n>>2]=0,i[n+4>>2]=0,i[A+72>>2]=0,i[r>>2]=A,l0(A,i[e>>2]+264|0,76),i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}B=k+32|0}function Lr(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0;if(k=i[f+8>>2],n=i[f+4>>2],k-n>>>0>=e>>>0){e&&(n=B0(n,s[r|0],e)+e|0),i[f+4>>2]=n;return}if(t=i[f>>2],o=n-t|0,A=o+e|0,(A|0)>=0){if(k=k-t|0,u=k<<1,k=k>>>0>=1073741823?2147483647:A>>>0>>0?u:A,k?A=U(k):A=0,k=A+k|0,A=A+o|0,u=B0(A,s[r|0],e)+e|0,(n|0)!=(t|0)){o=o&3;i:{if(!o){e=n;break i}for(r=0,e=n;A=A-1|0,e=e-1|0,l[A|0]=s[e|0],r=r+1|0,(o|0)!=(r|0););}if(t-n>>>0<=4294967292)for(;l[A-1|0]=s[e-1|0],l[A-2|0]=s[e-2|0],l[A-3|0]=s[e-3|0],A=A-4|0,e=e-4|0,l[A|0]=s[e|0],(e|0)!=(t|0););t=i[f>>2]}i[f+8>>2]=k,i[f+4>>2]=u,i[f>>2]=A,t&&G(t);return}y0(),P()}function o7(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;if(r=B-48|0,k=r,B=r,t=r-48|0,B=t,l[t+33|0]=0,B0(t,46,33),u=t+16|0,l[u|0]=124,r=s[f+96|0],r)for(h=f- -64|0;;){n=r,r=r-1|0,o=s[h+r|0],A=X[(r<<1)+f>>1];i:{if(!((A|0)>=-16&(A|0)<=16)){i[k+32>>2]=A,i[k+36>>2]=o?88:111,c(e,19300,k+32|0);break i}if(A=A+u|0,o){l[A|0]=88;break i}l[A|0]=111}if(!(n>>>0>1))break}if(r=s[f+97|0],r)for(o=f+80|0,h=f+32|0;;){f=r,r=r-1|0,A=s[o+r|0],n=X[h+(r<<1)>>1];i:{if(!((n|0)>=-16&(n|0)<=16)){i[k+16>>2]=n,i[k+20>>2]=A?88:111,c(e,19300,k+16|0);break i}if(n=n+u|0,A){l[n|0]=88;break i}l[n|0]=111}if(!(f>>>0>1))break}i[k>>2]=t,c(e,21799,k),B=k+48|0}function l7(f,e){var r=0,A=0,k=0,n=0,t=0,o=0;if(i[f+4>>2]=0,i[f+8>>2]=0,t=f+4|0,i[f>>2]=t,A=i[e+60>>2],o=e- -64|0,(A|0)!=(o|0))for(;;){n=i[A+16>>2],k=t,e=k,r=i[e>>2];i:{r:{if(!r)break r;for(;;){if(e=r,r=i[r+16>>2],(r|0)>(n|0)){if(k=e,r=i[e>>2],r)continue;break r}if((r|0)>=(n|0))break i;if(r=i[e+4>>2],!r)break}k=e+4|0}r=U(20),i[r+8>>2]=e,i[r>>2]=0,i[r+4>>2]=0,i[r+16>>2]=n,i[k>>2]=r,e=i[i[f>>2]>>2],e&&(i[f>>2]=e,r=i[k>>2]),D1(i[f+4>>2],r),i[f+8>>2]=i[f+8>>2]+1}r=i[A+4>>2];i:{if(r){for(;;)if(e=r,r=i[r>>2],!r)break i}for(;e=i[A+8>>2],r=i[e>>2]!=(A|0),A=e,!!r;);}if(A=e,(e|0)==(o|0))break}}function u0(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;if(k=i[f+16>>2],!((k|0)>=(e|0)|(k|0)>56)){for(A=64-k|0,k=i[f+4>>2];;){i:{if(o=A,!k){n=A;break i}if(r=i[f>>2],i[f>>2]=r+1,r=s[r|0],k=k-1|0,i[f+4>>2]=k,t=i[f+12>>2],n=o-8|0,u=n&31,w=f,(n&63)>>>0>=32?(h=r<>>32-u,r=r<>2]=r|i[f+8>>2],i[f+12>>2]=t|h,r=A,A=r-8|0,_=_-(r>>>0<8)|0,(o|0)>15)continue}break}k=64-n|0}return i[f+16>>2]=k-e,r=i[f+8>>2],A=f,A=f,f=i[f+12>>2],n=r,t=e&31,(e&63)>>>0>=32?(o=r<>>32-t|f<>2]=n,i[A+12>>2]=o,A=64-e|0,e=r,r=A&31,(A&63)>>>0>=32?f=f>>>r|0:f=((1<>>r,f}function u7(f,e,r,A){var k=0,n=0,t=0,o=0;if(k=U(20),i[k+16>>2]=e,l[k+8|0]=r,i[k>>2]=45932,i[k+4>>2]=0,i[k+12>>2]=A,i[e+18604>>2]=k,E6(f+1392|0,k),t=i[e+18596>>2],e=i[t+460>>2],r=i[t+464>>2],e>>>0>>0){i[e>>2]=k,i[t+460>>2]=e+4;return}i:{if(A=i[t+456>>2],n=e-A>>2,f=n+1|0,f>>>0<1073741824){if(o=n<<2,r=r-A|0,n=r>>1,n=r>>>0>=2147483644?1073741823:f>>>0>>0?n:f,n){if(n>>>0>=1073741824)break i;f=U(n<<2)}else f=0;if(r=o+f|0,i[r>>2]=k,k=r+4|0,(e|0)!=(A|0)){for(;r=r-4|0,e=e-4|0,i[r>>2]=i[e>>2],(e|0)!=(A|0););A=i[t+456>>2]}i[t+464>>2]=f+(n<<2),i[t+460>>2]=k,i[t+456>>2]=r,A&&G(A),i[t+460>>2]=k;return}y0(),P()}_2(),P()}function $m(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0;k=B-16|0,B=k,n=i[r>>2],A=i[r+4>>2];i:{if(A){if(i[A+4>>2]=i[A+4>>2]+1,t=e,o=V[i[i[n>>2]+8>>2]](n)|0,i[t+56>>2]=o,i[e+60>>2]=w0,i[e+48>>2]=0,i[e+52>>2]=0,e=i[A+4>>2],i[A+4>>2]=e-1,e)break i;V[i[i[A>>2]+8>>2]](A),g(A);break i}t=e,o=V[i[i[n>>2]+8>>2]](n)|0,i[t+56>>2]=o,i[e+60>>2]=w0,i[e+48>>2]=0,i[e+52>>2]=0}i:{if(s[r+20|0]==1){if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,100,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+16|0}function bm(f,e){f=f|0,e=e|0;var r=0;if(V[i[i[f>>2]+24>>2]](f)|0,e=x0(e,100200),i[f+68>>2]=e,r=s[f+98|0],e=V[i[i[e>>2]+28>>2]](e)|0,l[f+98|0]=e,(e|0)!=(r|0)){if(i[f+16>>2]=0,i[f+12>>2]=0,i[f+8>>2]=0,i[f+28>>2]=0,i[f+20>>2]=0,i[f+24>>2]=0,e=s[f+96|0],s[f+98|0]==1){i:{if(!(e&1)||(e=i[f+32>>2],!e))break i;G(e)}l[f+96|0]=s[f+97|0],i[f+52>>2]=i[f+60>>2],e=i[f+56>>2],i[f+56>>2]=0,i[f+60>>2]=0,i[f+32>>2]=e,l[f+97|0]=0;return}i:{if(e&1||(e=i[f+32>>2],(e|0)==(f+44|0)))break i;l[f+97|0]=0,i[f+56>>2]=e,e=i[f+52>>2],i[f+60>>2]=e,e=U(e),l[f+96|0]=1,i[f+32>>2]=e;return}e=i[f+52>>2],i[f+60>>2]=e,e=U(e),l[f+97|0]=1,i[f+56>>2]=e}}function dm(f,e,r,A,k,n,t,o,u){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0;var h=0;i:{if(h=V[i[i[e>>2]+68>>2]](i[e+4>>2])|0,e=i[h>>2],!e)break i;for(;;){if(v4(i[e+4>>2],r)){if(e=i[h+4>>2],h=h+4|0,e)continue;break i}break}if(i[e+8>>2]!=1){e=i[18429],i[f>>2]=i[18428],i[f+4>>2]=e,i[f+8>>2]=i[18430];return}r:{if(!s[e+16|0]||(n&&(i[n>>2]=i[e+20>>2]),!t))break r;i[t>>2]=i[e+24>>2]}A&&(i[A>>2]=s[e+16|0]),k&&(i[k>>2]=s[e+16|0]),!u|i[e+32>>2]<=0||(i[u>>2]=i[e+28>>2]),o&&(i[o>>2]=i[e+32>>2]),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412];return}e=i[18429],i[f>>2]=i[18428],i[f+4>>2]=e,i[f+8>>2]=i[18430]}function cm(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0,t=0,o=0;r=B-32|0,B=r;i:{r:{e:{if((e|0)==-1)break e;if(A=e<<24>>24,l[r+23|0]=A,s[f+44|0]==1){if(k=i[f+32>>2],f=B-16|0,B=f,l[f+15|0]=A,A=F1(f+15|0,1,1,k),B=f+16|0,(A|0)!=1)break r;break e}for(n=r+24|0,i[r+16>>2]=n,o=r+32|0,A=r+23|0;;){if(k=i[f+36>>2],k=V[i[i[k>>2]+12>>2]](k,i[f+40>>2],A,n,r+12|0,r+24|0,o,r+16|0)|0,i[r+12>>2]==(A|0))break r;if((k|0)==3){if((F1(A,1,1,i[f+32>>2])|0)==1)break e;break r}if(k>>>0>1||(t=r+24|0,A=i[r+16>>2]-t|0,(F1(t,1,A,i[f+32>>2])|0)!=(A|0)))break r;if(A=i[r+12>>2],(k|0)!=1)break}}f=(e|0)!=-1?e:0;break i}f=-1}return B=r+32|0,f|0}function iB(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0;e=i[f+20>>2],k=i[e+18588>>2],i[f+4>>2]=1,i[k+324>>2]=i[k+324>>2]-1,i[k+328>>2]=i[k+328>>2]+1,r=i[e+18588>>2],n=i[r+124>>2],A=i[n+16908>>2],t=i[e+4>>2],(A|0)>(t|0)&&(A=i[i[i[r+132>>2]+8460>>2]+(t<<2)>>2]),r=i[n+16892>>2],i[e>>2]=A,n=(A|0)/(r|0)|0,i[e+12>>2]=n,i[e+8>>2]=A-m(r,n);i:{r:{e:{if(s[f+8|0]==1){if(JA(e))break e;break r}if(A=i[e+18592>>2],r=i[A+804>>2],r>>>0>=3)break i;k6(e+18572|0,r,i[A+800>>2]),l[e+18580|0]=0,l[e+18581|0]=0,l[e+18582|0]=0,l[e+18583|0]=0}Y6(e+18548|0),mr(e,0,s[f+8|0])}i[f+4>>2]=3,f=i[e+18600>>2],i[f+44>>2]=i[f+44>>2]+1,Ze(k);return}C0(16898,14036,1520,4043),P()}function rB(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0,v=0,Z=0,p=0;if(!((n|0)<=0|(k|0)<=0))for(t=k-1|0,v=t&4,Z=(t>>>2|0)+1&2147483646,p=k>>>0<5;;){if(k=m(A,w)+r|0,t=(m(e,w)<<1)+f|0,o=0,!p)for(;u=s[k|0],h=s[k+1|0],_=s[k+2|0],X[t+6>>1]=s[k+3|0]<<6,X[t+4>>1]=_<<6,X[t+2>>1]=h<<6,X[t>>1]=u<<6,u=s[k+4|0],h=s[k+5|0],_=s[k+6|0],X[t+14>>1]=s[k+7|0]<<6,X[t+12>>1]=_<<6,X[t+10>>1]=h<<6,X[t+8>>1]=u<<6,k=k+8|0,t=t+16|0,o=o+2|0,(Z|0)!=(o|0););if(v||(o=s[k|0],u=s[k+1|0],h=s[k+2|0],X[t+6>>1]=s[k+3|0]<<6,X[t+4>>1]=h<<6,X[t+2>>1]=u<<6,X[t>>1]=o<<6),w=w+1|0,(w|0)==(n|0))break}}function eB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-32|0,B=A;i:{if(!r){if(l[A|0]=0,l[A+11|0]=0,r=r0(A+12|0,5,2001,A),l[A+11|0]<0&&G(i[A>>2]),n=f,f=i[e>>2],P0(n,r,f?f+8|0:0),l[r+19|0]>=0)break i;G(i[r+8>>2]);break i}k=i[e>>2],n=i[k+44>>2],k=i[k+48>>2],k&&(i[k+4>>2]=i[k+4>>2]+1);r:{if(!n){if(l[A|0]=0,l[A+11|0]=0,r=r0(A+12|0,10,0,A),l[A+11|0]<0&&G(i[A>>2]),n=f,f=i[e>>2],P0(n,r,f?f+8|0:0),l[r+19|0]>=0)break r;G(i[r+8>>2]);break r}if(t=A+12|0,wn(t,n,r),r=f,f=i[e>>2],P0(r,t,f?f+8|0:0),l[A+31|0]>=0)break r;G(i[A+20>>2])}if(!k||(f=i[k+4>>2],i[k+4>>2]=f-1,f))break i;V[i[i[k>>2]+8>>2]](k),g(k)}B=A+32|0}function xA(f,e){var r=0,A=0,k=0,n=0,t=0;i:{if(r=i[f>>2],A=(i[f+4>>2]-r|0)/56|0,k=A+1|0,k>>>0<76695845){if(A=m(A,56),r=(i[f+8>>2]-r|0)/56|0,n=r<<1,n=r>>>0>=38347922?76695844:k>>>0>>0?n:k,n){if(n>>>0>=76695845)break i;k=U(m(n,56))}else k=0;if(A=A+k|0,Z6(A,e),t=A+56|0,e=i[f+4>>2],r=i[f>>2],(e|0)!=(r|0)){for(;A=A-56|0,e=e-56|0,Z6(A,e),(e|0)!=(r|0););r=i[f>>2],e=i[f+4>>2]}if(i[f+8>>2]=m(n,56)+k,i[f+4>>2]=t,i[f>>2]=A,(e|0)!=(r|0))for(;f=i[e-12>>2],f&&(i[e-8>>2]=f,G(f)),f=e-56|0,i[f>>2]=68500,k=i[e-36>>2],k&&(i[e-32>>2]=k,G(k)),e=f,(f|0)!=(r|0););return r&&G(r),t}y0(),P()}_2(),P()}function AB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0;k=B-32|0,B=k,n=V[i[i[e>>2]+32>>2]](e,r,0)|0,k1(r,s[e+48|0]?4:2,i[e+40>>2]-i[e+36>>2]>>3,0),A=i[e+36>>2],t=i[e+40>>2];i:{if((A|0)!=(t|0))for(;;){if(o=i[A>>2],V[i[i[o>>2]+16>>2]](f,o,r),i[f>>2])break i;if(l[f+19|0]<0&&G(i[f+8>>2]),A=A+8|0,(t|0)==(A|0))break}if(A=i[19565],i[f>>2]=i[19564],i[f+4>>2]=A,f=f+8|0,l[78275]>=0){A=i[19567],i[f>>2]=i[19566],i[f+4>>2]=A,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}i[r+12>>2]=n,V[i[i[e>>2]+36>>2]](k+12|0,e,r,i[r+4>>2]-(i[r>>2]+n|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[k+31|0]<0&&G(i[k+20>>2]),B=k+32|0}function fB(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0;n=B-192|0,B=n,i[n+112>>2]=55156,t=i[13792],i[n+8>>2]=t,o=i[t-12>>2],t=n+8|0,i[o+t>>2]=i[13793],o=t+i[i[n+8>>2]-12>>2]|0,u=n+12|0,b0(o,u),i[o+72>>2]=0,i[o+76>>2]=-1,i[n+112>>2]=55156,i[n+8>>2]=55136,o=z7(u),jk(o,k,20)||(k=t+i[i[n+8>>2]-12>>2]|0,z1(k,i[k+16>>2]|4)),t=B-16|0,B=t,k=n+8|0,V1(t+8|0,k);i:{if(!A|!s[t+8|0]||(u=i[(k+i[i[k>>2]-12>>2]|0)+24>>2],(V[i[i[u>>2]+48>>2]](u,r,A)|0)==(A|0)))break i;Oo(k+i[i[k>>2]-12>>2]|0,1)}Z1(t+8|0),B=t+16|0,P0(f,78256,i[e>>2]),f=i[13791],i[n+8>>2]=f,i[k+i[f-12>>2]>>2]=i[13794],I6(o),T0(n+112|0),B=n+192|0}function s7(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=U(24),l[A+22|0]=1,X[A+20>>1]=2,i[A+16>>2]=131074,i[A+12>>2]=72992,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=72832,k=A+12|0,l[k+10|0]=1,X[k+8>>1]=6,i[k+4>>2]=851969,X[A+16>>1]=i[r+4>>2],X[A+18>>1]=i[r+8>>2],X[A+20>>1]=i[r+12>>2],l[A+22|0]=s[r+16|0]!=0,r=i[e>>2],i[A+4>>2]=i[A+4>>2]+2,i[r+44>>2]=k,e=i[r+48>>2],i[r+48>>2]=A;i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[A+4>>2],i[A+4>>2]=e-1,e||(V[i[i[A>>2]+8>>2]](A),g(A)),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[A+4>>2],i[A+4>>2]=f-1,f||(V[i[i[A>>2]+8>>2]](A),g(A))}function kB(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;t=B-32|0,B=t,i[t+24>>2]=0,i[t+28>>2]=0,u=t+4|0,o=i[e>>2],Mk(u,o,r,i[o+24>>2]+(A^-1)|0,k,i[o+28>>2]+(n^-1)|0,t+24|0);i:{if(i[t+4>>2]){r=f,f=i[e>>2],P0(r,u,f?f+8|0:0);break i}r=i[t+24>>2],A=i[t+28>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[e>>2]=r,r=i[e+4>>2],i[e+4>>2]=A;r:{if(!r||(e=i[r+4>>2],i[r+4>>2]=e-1,e))break r;V[i[i[r>>2]+8>>2]](r),g(r)}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}l[t+23|0]<0&&G(i[t+12>>2]),f=i[t+28>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=t+32|0}function nB(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0,t=0,o=0;r=B-32|0,B=r;i:{r:{e:{if((e|0)==-1)break e;if(i[r+20>>2]=e,s[f+44|0]==1){f=i[f+32>>2];A:{if(i[f+76>>2]<0){f=Pn(e,f);break A}f=Pn(e,f)}if((f|0)==-1)break r;break e}for(n=r+24|0,i[r+16>>2]=n,o=r+32|0,A=r+20|0;;){if(k=i[f+36>>2],k=V[i[i[k>>2]+12>>2]](k,i[f+40>>2],A,n,r+12|0,r+24|0,o,r+16|0)|0,i[r+12>>2]==(A|0))break r;if((k|0)==3){if((F1(A,1,1,i[f+32>>2])|0)==1)break e;break r}if(k>>>0>1||(t=r+24|0,A=i[r+16>>2]-t|0,(F1(t,1,A,i[f+32>>2])|0)!=(A|0)))break r;if(A=i[r+12>>2],(k|0)!=1)break}}f=(e|0)!=-1?e:0;break i}f=-1}return B=r+32|0,f|0}function tB(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=B+-64|0,B=e,A=i[r+4>>2],k=i[r>>2],i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,A|(k|0)!=2||(i[e+48>>2]=8,l[e+44|0]=0,l[e+62|0]=1,X[e+60>>1]=2,i[e+56>>2]=131074,i[e+36>>2]=99,i[e+40>>2]=99,i[e+52>>2]=72992,l[e+62|0]=1,X[e+60>>1]=6,i[e+56>>2]=851969,i[e+36>>2]=0,i[e+40>>2]=1,l[e+44|0]=s[r+8|0],i[e+48>>2]=i[r+12>>2],r=i[e+48>>2],i[e+8>>2]=i[e+44>>2],i[e+12>>2]=r,r=s[e+59|0]|s[e+60|0]<<8|(s[e+61|0]<<16|s[e+62|0]<<24),l[e+23|0]=r,l[e+24|0]=r>>>8,l[e+25|0]=r>>>16,l[e+26|0]=r>>>24,i[e>>2]=0,i[e+4>>2]=1,i[e+16>>2]=72992,i[e+20>>2]=i[e+56>>2],i[e+28>>2]=6,P2(f,e)),B=e- -64|0}function h7(f,e,r){var A=0,k=0;if(!e)return 0;i:{r:{if(!r)break r;if(A=s[e|0],k=A<<24>>24,(k|0)>=0)return f&&(i[f>>2]=A),(k|0)!=0;if(!i[i[23985]>>2]){if(e=1,!f)break i;return i[f>>2]=k&57343,1}if(A=A-194|0,A>>>0>50||(A=i[(A<<2)+55504>>2],r>>>0<=3&&A<>>3|0,(k-16|k+(A>>26))>>>0>7))break r;if(r=r-128|A<<6,(r|0)>=0){if(e=2,!f)break i;return i[f>>2]=r,2}if(A=s[e+2|0]-128|0,A>>>0>63)break r;if(k=A,A=r<<6,r=k|A,(A|0)>=0){if(e=3,!f)break i;return i[f>>2]=r,3}if(A=s[e+3|0]-128|0,A>>>0>63)break r;if(e=4,!f)break i;return i[f>>2]=A|r<<6,4}i[23944]=25,e=-1}return e}function $4(f,e,r,A,k){var n=0,t=0,o=0;o=B-16|0,B=o,i[o+12>>2]=e,e=0,n=6;i:{r:{if(g2(f,o+12|0))break r;n=i[f>>2],t=i[n+12>>2];e:{if((t|0)==i[n+16>>2]){t=V[i[i[n>>2]+36>>2]](n)|0;break e}t=i[t>>2]}if(n=4,!(V[i[i[A>>2]+12>>2]](A,64,t)|0))break r;for(e=V[i[i[A>>2]+52>>2]](A,t,0)|0;;){e:{if(Y1(f),e=e-48|0,g2(f,o+12|0)|(k|0)<2)break e;n=i[f>>2],t=i[n+12>>2];A:{if((t|0)==i[n+16>>2]){n=V[i[i[n>>2]+36>>2]](n)|0;break A}n=i[t>>2]}if(!(V[i[i[A>>2]+12>>2]](A,64,n)|0))break i;k=k-1|0,e=(V[i[i[A>>2]+52>>2]](A,n,0)|0)+m(e,10)|0;continue}break}if(!g2(f,o+12|0))break i;n=2}i[r>>2]=n|i[r>>2]}return B=o+16|0,e}function w7(f,e){var r=0,A=0,k=0;k=e+24|0,A=i[e>>2]&63,l[k+A|0]=128,r=A+1|0,A=A^63,A>>>0<=7&&(B0(r+k|0,0,A),A=64,Br(e,k,64),r=0),B0(r+k|0,0,A-8|0),i[e+84>>2]=i[e+4>>2],r=i[e>>2],l[e+83|0]=r>>>21,l[e+82|0]=r>>>13,l[e+81|0]=r>>>5,r=r<<3,l[e+80|0]=r,i[e>>2]=r,Br(e,k,64),l[f|0]=i[e+8>>2],l[f+1|0]=i[e+8>>2]>>>8,l[f+2|0]=Q[e+10>>1],l[f+3|0]=s[e+11|0],l[f+4|0]=i[e+12>>2],l[f+5|0]=i[e+12>>2]>>>8,l[f+6|0]=Q[e+14>>1],l[f+7|0]=s[e+15|0],l[f+8|0]=i[e+16>>2],l[f+9|0]=i[e+16>>2]>>>8,l[f+10|0]=Q[e+18>>1],l[f+11|0]=s[e+19|0],l[f+12|0]=i[e+20>>2],l[f+13|0]=i[e+20>>2]>>>8,l[f+14|0]=Q[e+22>>1],l[f+15|0]=s[e+23|0],B0(e,0,152)}function zA(f){var e=0,r=0,A=0;if(aA(f),e=i[f+320>>2],e){if(A=e-4|0,r=i[A>>2],r)for(r=e+m(r,76)|0;r=r-76|0,(e|0)!=(r|0););G(A)}G(i[f+260>>2]),G(i[f+240>>2]),G(i[f+220>>2]),G(i[f+200>>2]),G(i[f+180>>2]),G(i[f+160>>2]),G(i[f+140>>2]),e=i[f+136>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+128>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+120>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}return e=i[f+52>>2],e&&(i[f+56>>2]=e,G(e)),f}function fi(f,e,r,A,k,n,t,o){var u=0,h=0,w=0,_=0;w=1,u=A&2147483647,h=u,_=(u|0)==2147418112;i:{if((_&!r?f|e:_&(r|0)!=0|u>>>0>2147418112)||(u=o&2147483647,!t&(u|0)==2147418112?k|n:(u|0)==2147418112&(t|0)!=0|u>>>0>2147418112))break i;if(!(f|k|(r|t)|(e|n|(u|h))))return 0;if(u=A&o,(u|0)>0?h=1:h=(u|0)>=0,h)return((r|0)==(t|0)&(A|0)==(o|0)?(e|0)==(n|0)&f>>>0>>0|e>>>0>>0:r>>>0>>0&(A|0)<=(o|0)|(A|0)<(o|0))?-1:(f^k|r^t|(e^n|A^o))!=0;if((r|0)==(t|0)&(A|0)==(o|0)?(e|0)==(n|0)&f>>>0>k>>>0|e>>>0>n>>>0:r>>>0>t>>>0&(A|0)>=(o|0)|(A|0)>(o|0))return-1;w=(f^k|r^t|(e^n|A^o))!=0}return w}function B6(f,e,r,A){var k=0,n=0,t=0,o=0;t=A||98552,A=i[t>>2];i:{r:{e:{if(!e){if(A)break e;return 0}if(k=-2,!r)break r;A:{if(A){k=r;break A}if(A=s[e|0],n=A<<24>>24,(n|0)>=0)return f&&(i[f>>2]=A),(n|0)!=0;if(!i[i[23985]>>2]){if(k=1,!f)break r;return i[f>>2]=n&57343,1}if(A=A-194|0,A>>>0>50)break e;if(A=i[(A<<2)+55504>>2],k=r-1|0,!k)break i;e=e+1|0}if(n=s[e|0],o=n>>>3|0,(o-16|(A>>26)+o)>>>0>7)break e;for(;;){if(k=k-1|0,A=n-128|A<<6,(A|0)>=0)return i[t>>2]=0,f&&(i[f>>2]=A),r-k|0;if(!k)break i;if(e=e+1|0,n=s[e|0],(n&192)!=128)break}}i[t>>2]=0,i[23944]=25,k=-1}return k}return i[t>>2]=A,-2}function oB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-48|0,B=A,n=V[i[i[e>>2]+32>>2]](e,r,0)|0,k=i[e+48>>2],l2(r,V[i[i[k>>2]+8>>2]](k)|0),k=i[e+48>>2],V[i[i[k>>2]+16>>2]](A+24|0,k,r);i:{if(i[A+24>>2]){e=i[A+28>>2],i[f>>2]=i[A+24>>2],i[f+4>>2]=e,i[f+16>>2]=i[A+40>>2],e=i[A+36>>2],i[f+8>>2]=i[A+32>>2],i[f+12>>2]=e,i[A+40>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0;break i}if(Y4(A+4|0,e,r,n),l[A+23|0]<0&&G(i[A+12>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}l[A+43|0]<0&&G(i[A+32>>2]),B=A+48|0}function _7(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;i:{k=i[f+4>>2],o=i[f>>2];r:{if((k|0)!=(o|0)){r=k;break r}if(A=i[f+8>>2],r=i[f+12>>2],A>>>0>>0){n=((r-A>>2)+1|0)/2<<2,t=A-k|0,r=(n+A|0)-t|0,(A|0)!=(k|0)&&(F2(r,k,t),A=i[f+8>>2]),i[f+4>>2]=r,i[f+8>>2]=A+n;break r}if(r=(r|0)==(k|0)?1:r-k>>1,r>>>0>=1073741824)break i;if(n=r<<2,t=U(n),u=n+t|0,r=t+(r+3&-4)|0,n=r,(A|0)!=(k|0))for(h=(A-k|0)+r|0,A=k;i[n>>2]=i[A>>2],A=A+4|0,n=n+4|0,(h|0)!=(n|0););if(i[f+12>>2]=u,i[f+8>>2]=n,i[f+4>>2]=r,i[f>>2]=t,!k)break r;G(o),r=i[f+4>>2]}i[r-4>>2]=i[e>>2],i[f+4>>2]=i[f+4>>2]-4;return}_2(),P()}function Ii(f,e){var r=0,A=0,k=0;A=B-48|0,B=A,s[79117]==1&&(i[A+36>>2]=e,i[A+32>>2]=f,f8(22051,A+32|0)),r=i[e+4>>2];i:{if(!r){if(s[79117]==1&&(i[A+4>>2]=i[f+4>>2],i[A>>2]=f,f8(22011,A)),e=i[f+4>>2],!e)break i;r=i[e>>2]-1|0,i[e>>2]=r;r:{if(r||(r=i[f>>2],r&&(G(r),e=i[f+4>>2],!e)))break r;G(e)}i[f>>2]=0,i[f+4>>2]=0;break i}if(i[r>>2]=i[r>>2]+1,s[79117]==1&&(i[A+20>>2]=i[f+4>>2],i[A+16>>2]=f,f8(22011,A+16|0)),r=i[f+4>>2],r){k=i[r>>2]-1|0,i[r>>2]=k;r:{if(k||(k=i[f>>2],k&&(G(k),r=i[f+4>>2],!r)))break r;G(r)}i[f>>2]=0,i[f+4>>2]=0}i[f>>2]=i[e>>2],i[f+4>>2]=i[e+4>>2]}B=A+48|0}function lB(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0;i:{if(!(!k|(!r|!A))&&n)break i;e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560];return}i:{if(o=i[e+16>>2],!o||(o=N0(o,72776,73388),!o))break i;e=i[e+20>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[r>>2]=i[o+4>>2],i[A>>2]=i[o+8>>2],i[k>>2]=i[o+12>>2],i[n>>2]=i[o+16>>2],r=i[o+20>>2],l0(t,r,i[o+24>>2]-r|0),i[f+8>>2]=i[18412],r=i[18411],i[f>>2]=i[18410],i[f+4>>2]=r;r:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break r;V[i[i[e>>2]+8>>2]](e),g(e)}return}e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560]}function uB(f,e,r,A,k,n,t,o,u,h){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0,h=h|0;var w=0,_=0,v=0,Z=0,p=0,W=0,C=0,I=0;if((u|0)>0){if(!((n|0)<=0|(k|0)<=0))for(p=1<>1],t)+p>>u)+o|0,X[h>>1]=(w|0)>=0?(_|0)>(w|0)?w:_:0,w=(m(X[v+2>>1],t)+p>>u)+o|0,X[h+2>>1]=(w|0)>=0?(_|0)>(w|0)?w:_:0,v=v+4|0,h=h+4|0,W=W+2|0,(C|0)!=(W|0););if(I&&(w=h,h=(m(X[v>>1],t)+p>>u)+o|0,X[w>>1]=(h|0)>=0?(h|0)<(_|0)?h:_:0),Z=Z+1|0,(Z|0)==(n|0))break}return}C0(17004,13955,193,8109),P()}function Kr(f,e,r){var A=Y(0),k=Y(0),n=0,t=Y(0),o=Y(0),u=Y(0),h=Y(0),w=Y(0);n=B-16|0,B=n,Qn(n+8|0,e,r),A=Z0[n+12>>2],t=Z0[n+8>>2];i:{if(!(A!=Y(0)|t!=Y(0))){w=Y(-.41868799924850464),o=Y(-.3312639892101288),A=Y(.11400000005960464),h=Y(.5870000123977661),t=Y(.29899999499320984),k=Y(-.08131200075149536),u=Y(-.16873499751091003);break i}k=Y(Y(1)-t),h=Y(k-A),o=Y(-h),w=Y(Y(o/k)*Y(.5)),u=Y(Y(1)-A),o=Y(Y(o/u)*Y(.5)),k=Y(Y(Y(-A)/k)*Y(.5)),u=Y(Y(Y(-t)/u)*Y(.5))}Z0[f+36>>2]=k,Z0[f+32>>2]=w,i[f+24>>2]=1056964608,i[f+28>>2]=1056964608,Z0[f+20>>2]=o,Z0[f+16>>2]=u,Z0[f+12>>2]=A,Z0[f+8>>2]=h,Z0[f+4>>2]=t,l[f|0]=1,B=n+16|0}function sB(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0;k=B-32|0,B=k;i:{r:{if(t=i[e>>2],n=i[t+164>>2],u=i[t+168>>2],(n|0)==(u|0))break r;for(;;){if(o=i[n>>2],i[o>>2]!=(r|0)){if(n=n+8|0,(u|0)!=(n|0))continue;break r}break}if(r=i[o+40>>2],n=i[o+44>>2],(r|0)!=(n|0)){if(!A){if(l[k|0]=0,l[k+11|0]=0,r=r0(k+12|0,5,2001,k),l[k+11|0]<0&&G(i[k>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break i;G(i[r+8>>2]);break i}l0(A,r,n-r|0),t=i[e>>2]}P0(f,78256,t);break i}if(l[k|0]=0,l[k+11|0]=0,r=r0(k+12|0,5,2e3,k),l[k+11|0]<0&&G(i[k>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break i;G(i[r+8>>2])}B=k+32|0}function hB(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0;n=B-32|0,B=n,i[n+24>>2]=0,i[n+28>>2]=0,t=n+4|0,vA(t,i[e>>2],n+24|0,A,k);i:{if(i[n+4>>2])break i;t=U(8),i[t>>2]=0,i[t+4>>2]=0,i[r>>2]=t,r=i[n+24>>2],A=i[n+28>>2];r:{if(!A){i[t+4>>2]=0,i[t>>2]=r;break r}if(i[A+4>>2]=i[A+4>>2]+1,i[t>>2]=r,k=i[t+4>>2],i[t+4>>2]=A,t=78256,!k||(r=i[k+4>>2],i[k+4>>2]=r-1,r))break i;V[i[i[k>>2]+8>>2]](k),g(k)}t=78256}r=f,f=i[e>>2],P0(r,t,f?f+8|0:0),l[n+23|0]<0&&G(i[n+12>>2]),e=i[n+28>>2];i:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}B=n+32|0}function qr(f,e,r,A,k){var n=0,t=0,o=0,u=0;n=B-208|0,B=n,i[n+204>>2]=r,r=n+160|0,B0(r,0,40),i[n+200>>2]=i[n+204>>2];i:{if((Vk(0,e,n+200|0,n+80|0,r,A,k)|0)<0){k=-1;break i}u=i[f+76>>2]<0,t=i[f>>2],i[f>>2]=t&-33;r:{e:{A:{if(!i[f+48>>2]){i[f+48>>2]=80,i[f+28>>2]=0,i[f+16>>2]=0,i[f+20>>2]=0,o=i[f+44>>2],i[f+44>>2]=n;break A}if(i[f+16>>2])break e}if(r=-1,G3(f))break r}r=Vk(f,e,n+200|0,n+80|0,n+160|0,A,k)}if(o&&(V[i[f+36>>2]](f,0,0)|0,i[f+48>>2]=0,i[f+44>>2]=o,i[f+28>>2]=0,e=i[f+20>>2],i[f+16>>2]=0,i[f+20>>2]=0,r=e?r:-1),e=f,f=i[f>>2],i[e>>2]=f|t&32,k=f&32?-1:r,u)break i}return B=n+208|0,k}function Z4(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;r=i[f+56>>2],k=i[f+60>>2],r=U3(r,e,k-r>>2),o=r||k;i:{r:{if(k=i[f+60>>2],(o|0)==(k|0)){A=i[f+64>>2];e:{if(A>>>0>o>>>0){i[k>>2]=e,e=k+4|0;break e}if(t=i[f+56>>2],n=o-t>>2,r=n+1|0,r>>>0>=1073741824)break r;if(u=n<<2,A=A-t|0,n=A>>1,n=A>>>0>=2147483644?1073741823:r>>>0>>0?n:r,n){if(n>>>0>=1073741824)break i;r=U(n<<2)}else r=0;if(A=u+r|0,i[A>>2]=e,e=A+4|0,(t|0)!=(o|0))for(;A=A-4|0,k=k-4|0,i[A>>2]=i[k>>2],(k|0)!=(t|0););if(i[f+64>>2]=r+(n<<2),i[f+60>>2]=e,i[f+56>>2]=A,!t)break e;G(t)}i[f+60>>2]=e}return}y0(),P()}_2(),P()}function wB(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0;i:{if(!(!r|!A|(!k|!n))&&t)break i;e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560];return}i:{if(o=i[e+16>>2],!o||(o=N0(o,72776,73344),!o))break i;e=i[e+20>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[r>>2]=i[o+4>>2],i[A>>2]=i[o+8>>2],i[k>>2]=i[o+12>>2],i[n>>2]=i[o+16>>2],i[t>>2]=i[o+20>>2],i[f+8>>2]=i[18412],r=i[18411],i[f>>2]=i[18410],i[f+4>>2]=r;r:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break r;V[i[i[e>>2]+8>>2]](e),g(e)}return}e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560]}function _B(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-32|0,B=A;i:{if(!r){if(l[A|0]=0,l[A+11|0]=0,r=r0(A+12|0,5,2001,A),l[A+11|0]<0&&G(i[A>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break i;G(i[r+8>>2]);break i}k=i[e>>2],n=i[k+176>>2],k=i[k+180>>2],k&&(i[k+4>>2]=i[k+4>>2]+1);r:{if(!n){if(l[A|0]=0,l[A+11|0]=0,r=r0(A+12|0,10,0,A),l[A+11|0]<0&&G(i[A>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break r;G(i[r+8>>2]);break r}if(t=A+12|0,wn(t,n,r),P0(f,t,i[e>>2]),l[A+31|0]>=0)break r;G(i[A+20>>2])}if(!k||(f=i[k+4>>2],i[k+4>>2]=f-1,f))break i;V[i[i[k>>2]+8>>2]](k),g(k)}B=A+32|0}function v7(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=69612,k=i[f+56>>2],k){if(e=k,r=i[f+60>>2],(e|0)!=(r|0)){for(;e=i[r-12>>2],e&&(i[r-8>>2]=e,G(e)),e=r-56|0,i[e>>2]=68500,A=i[r-36>>2],A&&(i[r-32>>2]=A,G(A)),r=e,(e|0)!=(k|0););e=i[f+56>>2]}i[f+60>>2]=k,G(e)}if(i[f>>2]=68616,k=i[f+36>>2],k){if(e=k,r=i[f+40>>2],(e|0)!=(r|0)){for(;;){A=i[r-4>>2];i:{if(!A||(e=i[A+4>>2],i[A+4>>2]=e-1,e))break i;V[i[i[A>>2]+8>>2]](A),g(A)}if(r=r-8|0,(k|0)==(r|0))break}e=i[f+36>>2]}i[f+40>>2]=k,G(e)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function vB(f,e,r,A,k,n,t,o,u){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0;var h=0,w=0,_=0,v=0,Z=0,p=0,W=0,C=0;if((u|0)>0){if(!((n|0)<=0|(k|0)<=0))for(p=1<>1],t)+p>>u)+o|0,w=(w|0)>=255?255:w,l[h|0]=(w|0)>0?w:0,w=(m(X[_+2>>1],t)+p>>u)+o|0,w=(w|0)>=255?255:w,l[h+1|0]=(w|0)>0?w:0,_=_+4|0,h=h+2|0,v=v+2|0,(W|0)!=(v|0););if(C&&(v=h,h=(m(X[_>>1],t)+p>>u)+o|0,h=(h|0)>=255?255:h,l[v|0]=(h|0)>0?h:0),Z=Z+1|0,(Z|0)==(n|0))break}return}C0(17004,13955,60,7955),P()}function mB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-16|0,B=A,k=e,n=t2(r),X[k+48>>1]=n,k=e,n=t2(r),X[k+54>>1]=n,k=e,n=t2(r),X[k+50>>1]=n,k=e,n=t2(r),X[k+56>>1]=n,k=e,n=t2(r),X[k+52>>1]=n,k=e,n=t2(r),X[k+58>>1]=n,k=e,n=t2(r),X[k+60>>1]=n,k=e,n=t2(r),X[k+62>>1]=n,k=e,n=D0(r),i[k+64>>2]=n,k=e,n=D0(r),i[k+68>>2]=n;i:{if(s[r+20|0]==1){if(l[A+4|0]=0,l[A+15|0]=0,r0(f,2,100,A+4|0),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+16|0}function BB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0;k=B-32|0,B=k,n=V[i[i[e>>2]+32>>2]](e,r,0)|0,A=i[e+36>>2],t=i[e+40>>2];i:{if((A|0)!=(t|0))for(;;){if(o=i[A>>2],V[i[i[o>>2]+16>>2]](f,o,r),i[f>>2])break i;if(l[f+19|0]<0&&G(i[f+8>>2]),A=A+8|0,(t|0)==(A|0))break}if(A=i[19565],i[f>>2]=i[19564],i[f+4>>2]=A,f=f+8|0,l[78275]>=0){A=i[19567],i[f>>2]=i[19566],i[f+4>>2]=A,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}i[r+12>>2]=n,V[i[i[e>>2]+36>>2]](k+12|0,e,r,i[r+4>>2]-(i[r>>2]+n|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[k+31|0]<0&&G(i[k+20>>2]),B=k+32|0}function R2(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-160|0,B=A,i[A+80>>2]=54820,k=i[13708],i[A+24>>2]=k,t=A+24|0,i[t+i[k-12>>2]>>2]=i[13709],k=i[i[A+24>>2]-12>>2]+t|0,n=A+28|0,b0(k,n),i[k+72>>2]=0,i[k+76>>2]=-1,i[A+80>>2]=54820,i[A+24>>2]=54800,k=$0(n),i[k>>2]=53552,i[A+68>>2]=0,i[A+72>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+76>>2]=16,n=A+12|0,Hr(n,e,r),e=l[A+23|0],r=(e|0)<0,x(t,r?i[A+12>>2]:n,r?i[A+16>>2]:e),l[A+23|0]<0&&G(i[A+12>>2]),i2(f,k),f=i[13707],i[A+24>>2]=f,i[i[f-12>>2]+(A+24|0)>>2]=i[13710],i[k>>2]=53552,l[A+71|0]<0&&G(i[A+60>>2]),K0(k),T0(A+80|0),B=A+160|0}function $r(f,e,r){var A=0,k=0;A=U(24),l[A+22|0]=1,X[A+20>>1]=2,i[A+16>>2]=131074,i[A+12>>2]=72992,i[A+4>>2]=0,i[A+8>>2]=0,i[A>>2]=72832,k=A+12|0,l[k+10|0]=1,X[k+8>>1]=6,i[k+4>>2]=851969,i[f+4>>2]=A,i[f>>2]=k;i:{if(r){Jt(k,r);break i}e=i[e>>2],r=i[e+44>>2],e=i[e+48>>2],e&&(i[e+4>>2]=i[e+4>>2]+1);r:{if(r){i[A+16>>2]=i[r+4>>2],r=s[r+7|0]|s[r+8|0]<<8|(s[r+9|0]<<16|s[r+10|0]<<24),l[A+19|0]=r,l[A+20|0]=r>>>8,l[A+21|0]=r>>>16,l[A+22|0]=r>>>24;break r}l[k+10|0]=1,X[k+8>>1]=2,i[k+4>>2]=131074}if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}Dt(i[f>>2])}function m7(f){var e=0;e=U(160),i[e+68>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,i[e+24>>2]=0,i[e+28>>2]=0,i[e+88>>2]=0,i[e+92>>2]=0,X[e+84>>1]=1,i[e+80>>2]=0,i[e+72>>2]=0,i[e+76>>2]=0,i[e+112>>2]=0,i[e+116>>2]=1072693248,i[e+120>>2]=0,i[e+124>>2]=0,i[e>>2]=72024,i[e+32>>2]=0,i[e+36>>2]=0,i[e+40>>2]=0,i[e+44>>2]=0,i[e+48>>2]=0,i[e+52>>2]=0,i[e+56>>2]=0,i[e+60>>2]=0,l[e- -64|0]=0,i[e+16>>2]=69972,i[e+96>>2]=0,i[e+100>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e+144>>2]=0,i[e+136>>2]=0,i[e+140>>2]=0,i[e+128>>2]=0,i[e+132>>2]=0,l[e+156|0]=0,i[e+152>>2]=0,i[e+32>>2]=1668113784,i[f+4>>2]=e,i[f>>2]=e+16}function ZB(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0,_=0;if(Q1(f,i[e+8>>2],n)){n3(e,r,A,k);return}o=s[e+53|0],t=i[f+12>>2],l[e+53|0]=0,u=s[e+52|0],l[e+52|0]=0,h=f+16|0,Y3(h,e,r,A,k,n),w=s[e+52|0],u=u|w,_=s[e+53|0],o=o|_;i:{if((t|0)<2)break i;for(h=h+(t<<3)|0,t=f+24|0;;){if(s[e+54|0])break i;r:{if(w&1){if(i[e+24>>2]==1)break i;if(s[f+8|0]&2)break r;break i}if(!(_&1))break r;if(!(l[f+8|0]&1))break i}if(X[e+52>>1]=0,Y3(t,e,r,A,k,n),_=s[e+53|0],o=(_|o)&1,w=s[e+52|0],u=(w|u)&1,t=t+8|0,!(h>>>0>t>>>0))break}}l[e+53|0]=o&1,l[e+52|0]=u&1}function p2(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;if(k=i[f+24>>2],(k|0)>=(e|0)|(k|0)>56)r=k;else{for(r=64-k|0,t=i[f+16>>2],u=i[f+20>>2],k=i[f+8>>2],A=i[f>>2];;){i:{if(h=r,!k){n=r;break i}if(w=A+1|0,i[f>>2]=w,A=s[A|0],k=k-1|0,i[f+8>>2]=k,n=h-8|0,o=n&31,(n&63)>>>0>=32?(_=A<>>32-o,A=A<>2]=t,i[f+20>>2]=A,A=r,r=A-8|0,v=v-(A>>>0<8)|0,A=w,(h|0)>15)continue}break}r=64-n|0}i[f+24>>2]=r-e,t=i[f+20>>2],n=i[f+16>>2],r=e&31,(e&63)>>>0>=32?(e=n<>>32-r|t<>2]=r,i[f+20>>2]=e}function pB(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;A=B-16|0,B=A;i:{if(!(s[n+11|0]>>>7|0)){i[f+8>>2]=i[n+8>>2],e=i[n+4>>2],i[f>>2]=i[n>>2],i[f+4>>2]=e;break i}r=i[n>>2],k=B-16|0,B=k;r:{e:{n=i[n+4>>2];A:{if(n>>>0<2){e=f,l[f+11|0]=s[f+11|0]&128|n&127,l[f+11|0]=s[f+11|0]&127;break A}if(n>>>0>1073741815)break e;o=k+8|0,n>>>0>=2?(t=n+2&-2,e=t-1|0,e=(e|0)==2?t:e):e=1,xi(o,e+1|0),e=i[k+8>>2],i[f>>2]=e,i[f+8>>2]=i[f+8>>2]&-2147483648|i[k+12>>2]&2147483647,i[f+8>>2]=i[f+8>>2]|-2147483648,i[f+4>>2]=n}De(e,r,n+1|0),B=k+16|0;break r}o4(),P()}}B=A+16|0}function WB(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;r=B-16|0,B=r,n=d5()|0;i:{r:{if(!e||(A=TA(e),(A|0)<=0))break r;if(t=Z2(A<<2),t){o=Gn(e,t,A);e:{if(!o||(e=0,(o|0)<=0))break e;for(;i[r+8>>2]=e,k=r+8|0,A=j1(67596,k|0)|0,i[r+8>>2]=i[(e<<2)+t>>2],k=j1(67608,k|0)|0,g4(n|0,A|0,k|0),k>>>0>=9&&t1(k|0),A>>>0>=9&&t1(A|0),e=e+1|0,(o|0)!=(e|0););}G(t);break r}if(e=U(12),i[e>>2]=6,i[e+4>>2]=1e3,i[r+8>>2]=e,u=f,h=j1(73788,r+8|0)|0,i[u+4>>2]=h,i[f>>2]=95844,n>>>0<9)break i;t1(n|0);break i}i[f+4>>2]=n,i[f>>2]=95844}B=r+16|0}function ki(f,e,r,A){var k=0,n=0,t=0;if(k=i[f+8>>2],n=i[f>>2],k-n>>2>>>0>=A>>>0){if(t=A,k=i[f+4>>2],A=k-n|0,t>>>0>A>>2>>>0){(k|0)!=(n|0)&&(F2(n,e,A),k=i[f+4>>2]),e=e+A|0,A=r-e|0,(e|0)!=(r|0)&&F2(k,e,A),i[f+4>>2]=A+k;return}A=r-e|0,(e|0)!=(r|0)&&F2(n,e,A),i[f+4>>2]=A+n;return}n&&(i[f+4>>2]=n,G(n),i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,k=0);i:{if(A>>>0>=1073741824||(n=k>>1,A=k>>>0>=2147483644?1073741823:A>>>0>>0?n:A,A>>>0>=1073741824))break i;k=A<<2,A=U(k),i[f+4>>2]=A,i[f>>2]=A,i[f+8>>2]=A+k,k=r-e|0,(e|0)!=(r|0)&&l0(A,e,k),i[f+4>>2]=A+k;return}y0(),P()}function Z6(f,e){var r=0,A=0,k=0,n=0;i[f>>2]=68500,r=i[e+12>>2],A=i[e+8>>2],i[f+8>>2]=A,i[f+12>>2]=r,i[f+16>>2]=i[e+16>>2],i[f+28>>2]=0,i[f+20>>2]=0,i[f+24>>2]=0;i:{r:{if(r=i[e+24>>2],k=i[e+20>>2],(r|0)!=(k|0)){if(r=r-k|0,(r|0)<0)break r;A=U(r),i[f+24>>2]=A,i[f+20>>2]=A,n=r+A|0,i[f+28>>2]=n,l0(A,k,r),i[f+24>>2]=n}if(i[f+32>>2]=i[e+32>>2],r=i[e+40>>2],i[f+52>>2]=0,i[f+44>>2]=0,i[f+48>>2]=0,i[f+40>>2]=r,r=i[e+48>>2],A=i[e+44>>2],(r|0)!=(A|0)){if(e=r-A|0,(e|0)<0)break i;r=U(e),i[f+48>>2]=r,i[f+44>>2]=r,k=e+r|0,i[f+52>>2]=k,l0(r,A,e),i[f+48>>2]=k}return}y0(),P()}y0(),P()}function XB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-32|0,B=A;i:{if(!r){if(l[A|0]=0,l[A+11|0]=0,r=r0(A+12|0,5,2001,A),l[A+11|0]<0&&G(i[A>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break i;G(i[r+8>>2]);break i}k=i[e>>2],n=i[k+184>>2],k=i[k+188>>2],k&&(i[k+4>>2]=i[k+4>>2]+1);r:{if(n){t=r,r=i[n+8>>2],l0(t,r,i[n+12>>2]-r|0),P0(f,78256,i[e>>2]);break r}if(l[A|0]=0,l[A+11|0]=0,r=r0(A+12|0,10,0,A),l[A+11|0]<0&&G(i[A>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break r;G(i[r+8>>2])}if(!k||(f=i[k+4>>2],i[k+4>>2]=f-1,f))break i;V[i[i[k>>2]+8>>2]](k),g(k)}B=A+32|0}function B7(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=74728,r=i[f+60>>2],r){if(A=r,e=i[f+64>>2],(r|0)!=(e|0)){for(;k=e-12|0,A=i[k>>2],A&&(i[e-8>>2]=A,G(A)),e=k,(r|0)!=(e|0););A=i[f+60>>2]}i[f+64>>2]=r,G(A)}if(e=i[f+48>>2],e&&(i[f+52>>2]=e,G(e)),i[f>>2]=68616,k=i[f+36>>2],k){if(e=k,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(e=i[r+4>>2],i[r+4>>2]=e-1,e))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(k|0)==(A|0))break}e=i[f+36>>2]}i[f+40>>2]=k,G(e)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function Z7(f,e,r,A,k){var n=0,t=0,o=0,u=0;t=B-16|0,B=t;i:{if(1073741815-e>>>0>=r>>>0){s[f+11|0]>>>7|0?n=i[f>>2]:n=f,o=n,n=t+4|0,u=n,e>>>0<536870899?(i[t+12>>2]=e<<1,i[t+4>>2]=e+r,r=B-16|0,B=r,B=r+16|0,r=t+12|0,r=i[(k0[n>>2]>2]?r:n)>>2],r>>>0>=2?(n=r+2&-2,r=n-1|0,r=(r|0)==2?n:r):r=1,r=r+1|0):r=1073741815,xi(u,r),r=i[t+4>>2],k&&De(r,o,k),(A|0)!=(k|0)&&(n=k<<2,De(n+r|0,n+o|0,A-k|0)),(e|0)!=1&&Q8(o,4),i[f>>2]=r,i[f+8>>2]=i[f+8>>2]&-2147483648|i[t+8>>2]&2147483647,i[f+8>>2]=i[f+8>>2]|-2147483648,B=t+16|0;break i}o4(),P()}i[f+4>>2]=A}function HA(f,e,r,A,k){var n=0,t=0,o=0,u=0;t=B-16|0,B=t;i:{if(2147483639-e>>>0>=r>>>0){s[f+11|0]>>>7|0?n=i[f>>2]:n=f,o=n,n=t+4|0,u=n,e>>>0<1073741811?(i[t+12>>2]=e<<1,i[t+4>>2]=e+r,r=B-16|0,B=r,B=r+16|0,r=t+12|0,r=i[(k0[n>>2]>2]?r:n)>>2],r>>>0>=11?(n=r+8&-8,r=n-1|0,r=(r|0)==11?n:r):r=10,r=r+1|0):r=2147483639,Mi(u,r),r=i[t+4>>2],k&&of(r,o,k),(A|0)!=(k|0)&&of(r+k|0,k+o|0,A-k|0),(e|0)!=10&&Q8(o,1),i[f>>2]=r,i[f+8>>2]=i[f+8>>2]&-2147483648|i[t+8>>2]&2147483647,i[f+8>>2]=i[f+8>>2]|-2147483648,B=t+16|0;break i}o4(),P()}i[f+4>>2]=A}function br(f,e,r,A){var k=0,n=0,t=0,o=0;i:{r:{if(A){if(A>>>0>=107374183)break r;if(k=m(A,40),A=U(k),i[f+4>>2]=A,i[f>>2]=A,i[f+8>>2]=A+k,(e|0)!=(r|0))for(;;){if(k=i[e+4>>2],i[A>>2]=i[e>>2],i[A+4>>2]=k,k=i[e+20>>2],i[A+16>>2]=i[e+16>>2],i[A+20>>2]=k,k=i[e+12>>2],i[A+8>>2]=i[e+8>>2],i[A+12>>2]=k,i[A+32>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,t=i[e+24>>2],k=i[e+28>>2],(t|0)!=(k|0)){if(k=k-t|0,(k|0)<0)break i;n=U(k),i[A+28>>2]=n,i[A+24>>2]=n,o=k+n|0,i[A+32>>2]=o,l0(n,t,k),i[A+28>>2]=o}if(A=A+40|0,e=e+40|0,(r|0)==(e|0))break}i[f+4>>2]=A}return}y0(),P()}y0(),P()}function GB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,w2(r,Q[e+48>>1]),w2(r,Q[e+54>>1]),w2(r,Q[e+50>>1]),w2(r,Q[e+56>>1]),w2(r,Q[e+52>>1]),w2(r,Q[e+58>>1]),w2(r,Q[e+60>>1]),w2(r,Q[e+62>>1]),l2(r,i[e+64>>2]),l2(r,i[e+68>>2]),i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function p7(f,e,r,A,k){var n=0,t=0,o=0,u=0,h=0,w=0;i:{if((A|k)<0||(o=i[f+124>>2],i[o+484>>2]<=(A|0)|i[o+488>>2]<=(k|0))||(h=i[f+132>>2],t=i[h+8496>>2],n=i[o+16936>>2],u=i[o+16924>>2],i[(t+(A>>>n<<2)|0)+(m(u,k>>>n|0)<<2)>>2]>i[(t+(e>>n<<2)|0)+(m(r>>n,u)<<2)>>2])||(n=i[f+152>>2],t=r,r=i[o+16876>>2],t=t>>r,f=i[f+140>>2],e=e>>r,u=Q[(m(m(n,t),24)+f|0)+m(e,24)>>1],k=k>>>r|0,n=f+m(m(k,n),24)|0,f=A>>>r|0,(u|0)!=Q[n+m(f,24)>>1]))break i;A=e<<2,e=i[h+8484>>2],r=i[o+16892>>2],w=i[(A+e|0)+(m(r,t)<<2)>>2]==i[(e+(f<<2)|0)+(m(r,k)<<2)>>2]}return w}function W7(f,e,r){var A=0,k=0,n=0,t=0,o=0;o=B-16|0,B=o,k=B-16|0,B=k,A=f;i:{if(e>>>0<=1073741815){r:{if(e>>>0<2){l[A+11|0]=s[A+11|0]&128|e&127,l[A+11|0]=s[A+11|0]&127;break r}t=k+8|0,e>>>0>=2?(n=e+2&-2,f=n-1|0,f=(f|0)==2?n:f):f=1,xi(t,f+1|0),f=i[k+8>>2],i[A>>2]=f,i[A+8>>2]=i[A+8>>2]&-2147483648|i[k+12>>2]&2147483647,i[A+8>>2]=i[A+8>>2]|-2147483648,i[A+4>>2]=e}for(n=B-16|0,B=n,i[n+12>>2]=r,r=f,t=e;;){if(t){i[r>>2]=i[n+12>>2],t=t-1|0,r=r+4|0;continue}break}B=n+16|0,i[k+4>>2]=0,i[(e<<2)+f>>2]=i[k+4>>2],B=k+16|0;break i}o4(),P()}return B=o+16|0,A}function dr(f,e,r,A,k,n,t,o,u,h,w){var _=0,v=0,Z=0,p=0;if(!s[r+332|0]){X[h>>1]=0,X[h+2>>1]=0,l[w|0]=0;return}if(v=i[i[e+124>>2]+16876>>2],i[r+28>>2]|s[r+380|0]?_=924:_=988,_=i[(_+r|0)+(i[r+384>>2]<<2)>>2],!(V[i[i[f>>2]+12>>2]](f,_)|0)){X[h>>1]=0,X[h+2>>1]=0,l[w|0]=0,v2(f+4|0,1012,0);return}i:{r:{e:{Z=k+t|0;A:{if(k>>v!=Z>>v||(p=A+n|0,v=i[e+124>>2],(p|0)>=i[v+484>>2]))break A;if(i[v+488>>2]>(Z|0))break e}X[h>>1]=0,X[h+2>>1]=0,l[w|0]=0;break r}if(ak(f,e,r,_,p&-16,Z&-16,o,u,h,w),s[w|0])break i}ak(f,e,r,_,(n>>1)+A&-16,(t>>1)+k&-16,o,u,h,w)}}function CB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;if((r|0)>0)for(_=r&2147483644,h=r&3,v=r>>>0<4;;){if(w=m(r,u),o=0,A=0,t=0,!v)for(;n=A,A=o+w|0,k=n+X[(A<<1)+e>>1]|0,i[(A<<2)+f>>2]=k,n=A+1|0,k=k+X[(n<<1)+e>>1]|0,i[(n<<2)+f>>2]=k,n=A+2|0,k=k+X[(n<<1)+e>>1]|0,i[(n<<2)+f>>2]=k,n=A+3|0,A=k+X[(n<<1)+e>>1]|0,i[(n<<2)+f>>2]=A,o=o+4|0,t=t+4|0,(_|0)!=(t|0););if(t=0,h)for(;k=o+w|0,A=X[(k<<1)+e>>1]+A|0,i[(k<<2)+f>>2]=A,o=o+1|0,t=t+1|0,(h|0)!=(t|0););if(u=u+1|0,(u|0)==(r|0))break}}function TA(f){f=f|0;var e=0,r=0,A=0,k=0,n=0;A=B-16|0,B=A,f=i[f>>2],i[A+12>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0;i:{if(e=i[f+28>>2],n=i[f+32>>2],(e|0)!=(n|0)){if(f=n-e|0,(f|0)<0)break i;for(k=U(f),i[A+4>>2]=k,i[A+12>>2]=f+k,f=k;i[f>>2]=i[e>>2],r=i[e+4>>2],i[f+4>>2]=r,r&&(i[r+4>>2]=i[r+4>>2]+1),f=f+8|0,e=e+8|0,(n|0)!=(e|0););for(i[A+8>>2]=f,e=f;;){r=i[e-4>>2];r:{if(!r||(n=i[r+4>>2],i[r+4>>2]=n-1,n))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(e=e-8|0,(k|0)==(e|0))break}G(i[A+4>>2]),k=f-k>>3}return B=A+16|0,k|0}y0(),P()}function VB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;if(A=B-32|0,B=A,t=V[i[i[e>>2]+32>>2]](e,r,0)|0,A2(r,i[e+60>>2]-i[e+56>>2]&255),k=i[e+56>>2],(k|0)!=i[e+60>>2])for(;A2(r,s[k+n|0]),n=n+1|0,k=i[e+56>>2],n>>>0>2]-k>>>0;);i[r+12>>2]=t,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+t|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function IB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-32|0,B=A;i:{if(!r){if(l[A|0]=0,l[A+11|0]=0,r=f,f=r0(A+12|0,5,2001,A),P0(r,f,i[e>>2]),l[f+19|0]<0&&G(i[f+8>>2]),l[A+11|0]>=0)break i;G(i[A>>2]);break i}k=i[e>>2],n=i[k+40>>2],k=i[k+44>>2],k&&(i[k+4>>2]=i[k+4>>2]+1);r:{if(!n){if(l[A|0]=0,l[A+11|0]=0,r=f,f=r0(A+12|0,2,124,A),P0(r,f,i[e>>2]),l[f+19|0]<0&&G(i[f+8>>2]),l[A+11|0]>=0)break r;G(i[A>>2]);break r}i[r>>2]=i[n+20>>2],P0(f,78256,i[e>>2])}if(!k||(f=i[k+4>>2],i[k+4>>2]=f-1,f))break i;V[i[i[k>>2]+8>>2]](k),g(k)}B=A+32|0}function X7(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0;k=B-16|0,B=k,l2(r,A),l2(r,i[e+16>>2]);i:{r:{if(i[e+16>>2]!=1970628964)break r;if(i[k+12>>2]=0,i[k+4>>2]=0,i[k+8>>2]=0,n=i[e+24>>2],A=i[e+20>>2],(n|0)!=(A|0)){if(e=n-A|0,(e|0)<0)break i;n=U(e),i[k+4>>2]=n,t=e+n|0,i[k+12>>2]=t,l0(n,A,e),i[k+8>>2]=t}if(D4(r,k+4|0),e=i[k+4>>2],!e)break r;i[k+8>>2]=e,G(e)}e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;r:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break r}_0(f,i[19566],i[19567])}B=k+16|0;return}y0(),P()}function QB(f,e,r,A,k){if(f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,Q1(f,i[e+8>>2],k)){i[e+28>>2]==1|i[e+4>>2]!=(r|0)||(i[e+28>>2]=A);return}i:{if(Q1(f,i[e>>2],k)){if(!(i[e+16>>2]!=(r|0)&i[e+20>>2]!=(r|0))){if((A|0)!=1)break i;i[e+32>>2]=1;return}i[e+32>>2]=A;r:{if(i[e+44>>2]==4)break r;if(X[e+52>>1]=0,f=i[f+8>>2],V[i[i[f>>2]+20>>2]](f,e,r,r,1,k),s[e+53|0]==1){if(i[e+44>>2]=3,!s[e+52|0])break r;break i}i[e+44>>2]=4}if(i[e+20>>2]=r,i[e+40>>2]=i[e+40>>2]+1,i[e+36>>2]!=1|i[e+24>>2]!=2)break i;l[e+54|0]=1;return}f=i[f+8>>2],V[i[i[f>>2]+24>>2]](f,e,r,A,k)}}function G7(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;if(e)for(A=i[f+16>>2],k=i[f+20>>2],n=i[f+8>>2],r=i[f+24>>2],t=i[f>>2];;){if((r|0)<=7){for(o=64-r|0,_=0,r=t;;){i:{if(v=o,!n){n=0,t=r,u=o;break i}if(t=r+1|0,i[f>>2]=t,r=s[r|0],n=n-1|0,i[f+8>>2]=n,u=v-8|0,h=u&31,(u&63)>>>0>=32?(w=r<>>32-h,r=r<>2]=A,i[f+20>>2]=r,r=o,o=r-8|0,_=_-(r>>>0<8)|0,r=t,(v|0)>15)continue}break}r=64-u|0}if(r=r-8|0,i[f+24>>2]=r,w=k<<8|A>>>24,A=A<<8,i[f+16>>2]=A,k=w,i[f+20>>2]=k,e=e-1|0,!e)break}}function p4(f,e,r,A,k){var n=0,t=0,o=0;i:{r:{if(n=i[A>>2],A=i[n+56>>2],n=i[n+60>>2],(A|0)!=(n|0))for(;;){if(i[A>>2]==(r|0))break r;if(A=A+16|0,(n|0)==(A|0))break}break i}r:{e:{if(r=i[A+4>>2],A=i[A+8>>2],(r|0)==(A|0))break e;for(n=i[e+36>>2],o=i[e+40>>2]-n>>3;;){if(e=Q[r+2>>1],!(e>>>0<=o>>>0&&e))break i;if(e=n+(e<<3)|0,t=i[e-8>>2],i[t+16>>2]!=(k|0)){if(r=r+4|0,(A|0)==(r|0))break e;continue}break}if(i[f>>2]=t,r=f,f=i[e-4>>2],i[r+4>>2]=f,!f)break r;i[f+4>>2]=i[f+4>>2]+1;return}i[f>>2]=0,i[f+4>>2]=0}return}i[f>>2]=0,i[f+4>>2]=0}function aA(f){var e=0,r=0,A=0,k=0;if(i[f+4>>2]&&(e=i[f+308>>2],r=i[f+112>>2],r&&(A=i[r+544>>2]),V[e|0](r,f,A),i[f+12>>2]=0,i[f+4>>2]=0,i[f+8>>2]=0,i[f+72>>2]=0,i[f+64>>2]=0,i[f+68>>2]=0),e=i[f+52>>2],k=i[f+56>>2],(e|0)!=(k|0))for(A=0;;){if(r=i[(A<<2)+e>>2],r){e=i[r+1352>>2],e&&(i[r+1356>>2]=e,G(e)),C8(r+1340|0),e=i[r+784>>2],e&&(i[r+788>>2]=e,G(e)),e=i[r+8>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}G(r),k=i[f+56>>2],e=i[f+52>>2]}if(A=A+1|0,!(A>>>0>2>>>0))break}i[f+56>>2]=e}function w4(f,e){var r=0,A=0,k=0,n=0,t=0,o=0;i:{if(e){if(A=i[f+44>>2],t=i[f+40>>2],k=A-t|0,r=k>>2,r>>>0<=15){if(n=i[f+48>>2],n>>>0>A>>>0){i[A>>2]=e,i[f+44>>2]=A+4;return}if(n=n-t|0,o=n>>1,r=r+1|0,r=n>>>0>=2147483644?1073741823:r>>>0>>0?o:r,r>>>0>=1073741824)break i;if(r=r<<2,n=U(r),k=n+k|0,i[k>>2]=e,e=k+4|0,(A|0)!=(t|0))for(;k=k-4|0,A=A-4|0,i[k>>2]=i[A>>2],(A|0)!=(t|0););i[f+48>>2]=r+n,i[f+44>>2]=e,i[f+40>>2]=k,t&&G(t),i[f+44>>2]=e;return}G(i[e+20>>2]),f=i[e+32>>2],f&&(i[e+36>>2]=f,G(f)),G(e)}return}_2(),P()}function yB(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0;i:{n=i[f>>2],f=i[n+164>>2],u=i[n+168>>2];r:{if((f|0)==(u|0))break r;if(e)for(;;){n=G2(e),o=i[f>>2],t=l[o+15|0],h=(t|0)<0;e:{if(((h?i[o+8>>2]:t)|0)!=(n|0))break e;if((n|0)==-1)break i;if(t=o+4|0,K2(h?i[t>>2]:t,e,n))break e;if((A|0)<=(k|0))break r;i[(k<<2)+r>>2]=i[o>>2],k=k+1|0}if(f=f+8|0,(u|0)==(f|0))break r}for(e=(A|0)>0?A:0;;){if((e|0)==(k|0))return e|0;if(i[(k<<2)+r>>2]=i[i[f>>2]>>2],k=k+1|0,f=f+8|0,(u|0)==(f|0))break}}return k|0}O3(),P()}function C7(f,e,r,A){var k=0,n=0;i:{if(!r){e=Q[e>>1]|Q[e+2>>1]<<16,X[f>>1]=e,X[f+2>>1]=e>>>16;break i}k=(r|0)>=127?127:r,k=(k|0)<=-128?-128:k,n=k>>31,A=(A|0)>=127?127:A,A=m(((k^n)-n>>>1|16384)/(k|0)<<16>>16,(A|0)<=-128?-128:A)+32>>6,A=(A|0)>=4095?4095:A,n=(A|0)<=-4096?-4096:A,A=m(n,X[e>>1]),k=A>>31,A=m(((A^k)-k|0)+127>>>8|0,(A|0)<0?-1:(A|0)!=0),A=(A|0)>=32767?32767:A,X[f>>1]=(A|0)<=-32768?-32768:A,e=m(n,X[e+2>>1]),A=e>>31,k=f,f=m(((e^A)-A|0)+127>>>8|0,(e|0)<0?-1:(e|0)!=0),f=(f|0)>=32767?32767:f,X[k+2>>1]=(f|0)<=-32768?-32768:f}return(r|0)!=0}function FB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;if(A=B-32|0,B=A,n=V[i[i[e>>2]+32>>2]](e,r,0)|0,l2(r,i[e+48>>2]),l2(r,i[e+52>>2]),k=i[e+56>>2],t=i[e+60>>2],(k|0)!=(t|0))for(;l2(r,i[k>>2]),k=k+4|0,(t|0)!=(k|0););i[r+12>>2]=n,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+n|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function EB(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0;for(r=B-128|0,B=r,i[r+12>>2]=r+116,A=r+16|0,N9(f+8|0,A,r+12|0,k,n,t),t=B-16|0,B=t,f=B-32|0,B=f,pe(f+24|0,A,i[r+12>>2]),o=f+16|0,u=i[f+28>>2],k=B-16|0,B=k,n=i[f+24>>2],i[k+8>>2]=n,i[k+12>>2]=e;;){if((n|0)!=(u|0)){S3(k+12|0,l[n|0]),n=n+1|0,i[k+8>>2]=n;continue}break}return i[o>>2]=i[k+8>>2],i[o+4>>2]=i[k+12>>2],B=k+16|0,i[f+12>>2]=(i[f+16>>2]-A|0)+A,i[f+8>>2]=i[f+20>>2],i[t+8>>2]=i[f+12>>2],i[t+12>>2]=i[f+8>>2],B=f+32|0,B=t+16|0,B=r+128|0,i[t+12>>2]}function ni(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0;if(k=i[f+16>>2],!((k|0)>=(e|0)|(k|0)>56)){for(n=64-k|0,k=i[f+4>>2];;){i:{if(A=n,!k){t=A;break i}if(r=i[f>>2],i[f>>2]=r+1,r=s[r|0],k=k-1|0,i[f+4>>2]=k,h=i[f+12>>2],t=A-8|0,o=t&31,w=f,(t&63)>>>0>=32?(u=r<>>32-o,r=r<>2]=r|i[f+8>>2],i[f+12>>2]=u|h,r=n,n=r-8|0,_=_-(r>>>0<8)|0,(A|0)>15)continue}break}k=64-t|0}i[f+16>>2]=k-e,n=i[f+12>>2],r=i[f+8>>2],A=e&31,(e&63)>>>0>=32?(e=r<>>32-A|n<>2]=A,i[f+12>>2]=e}function YB(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;if((A|0)>0)for(v=A&2147483646,Z=A&1,t=-1<>2]+Q[u>>1]|0,X[u>>1]=(n|0)>=0?(n|0)<(t|0)?n:t:0,n=k|1,u=w+(n<<1)|0,n=i[(n<<2)+o>>2]+Q[u>>1]|0,X[u>>1]=(n|0)>=0?(n|0)<(t|0)?n:t:0,k=k+2|0,_=_+2|0,(v|0)!=(_|0););if(Z&&(n=i[(k<<2)+o>>2],o=w+(k<<1)|0,k=n+Q[o>>1]|0,X[o>>1]=(k|0)>=0?(k|0)<(t|0)?k:t:0),h=h+1|0,(h|0)==(A|0))break}}function JB(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0;n=B-32|0,B=n,i[n+28>>2]=e;i:{if(!(i[r+4>>2]&1)){r=V[i[i[f>>2]+24>>2]](f,e,r,A,k)|0;break i}e=n+16|0,f=i[r+28>>2],i[e>>2]=f,(f|0)!=100008&&(i[f+4>>2]=i[f+4>>2]+1),f=x0(e,100256),O0(e);r:{if(k){V[i[i[f>>2]+24>>2]](e,f);break r}V[i[i[f>>2]+28>>2]](n+16|0,f)}for(t=n,o=C4(n+16|0),i[t+12>>2]=o;;){if(f=n+16|0,t=n,o=a8(f),i[t+8>>2]=o,e=i[n+12>>2],(e|0)!=i[n+8>>2]){T9(n+28|0,i[e>>2]),i[n+12>>2]=i[n+12>>2]+4;continue}else r=i[n+28>>2],l1(f);break}}return B=n+32|0,r|0}function gB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,n=i[e+12>>2];i:{if(!n&k0[e+8>>2]>=k0[e+32>>2]|n){if(D4(r,e+48|0),i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567]);break i}if(l[A|0]=0,l[A+11|0]=0,r0(f,2,101,A),l[A+11|0]>=0)break i;G(i[A>>2])}B=A+32|0}function NB(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0;n=B-32|0,B=n,i[n+28>>2]=e;i:{if(!(i[r+4>>2]&1)){r=V[i[i[f>>2]+24>>2]](f,e,r,A,k)|0;break i}e=n+16|0,f=i[r+28>>2],i[e>>2]=f,(f|0)!=100008&&(i[f+4>>2]=i[f+4>>2]+1),f=x0(e,100248),O0(e);r:{if(k){V[i[i[f>>2]+24>>2]](e,f);break r}V[i[i[f>>2]+28>>2]](n+16|0,f)}for(t=n,o=C4(n+16|0),i[t+12>>2]=o;;){if(f=n+16|0,t=n,o=S8(f),i[t+8>>2]=o,e=i[n+12>>2],(e|0)!=i[n+8>>2]){S3(n+28|0,l[e|0]),i[n+12>>2]=i[n+12>>2]+1;continue}else r=i[n+28>>2],z0(f);break}}return B=n+32|0,r|0}function SA(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;if(A=i[f+8>>2],r=i[f+4>>2],A-r>>3>>>0>=e>>>0){e&&(e=e<<3,r=B0(r,0,e)+e|0),i[f+4>>2]=r;return}i:{if(n=i[f>>2],t=r-n>>3,k=t+e|0,k>>>0<536870912){if(A=A-n|0,o=A>>2,A=A>>>0>=2147483640?536870911:k>>>0>>0?o:k,A){if(A>>>0>=536870912)break i;u=U(A<<3)}if(k=(t<<3)+u|0,e=e<<3,e=B0(k,0,e)+e|0,(r|0)!=(n|0)){for(;r=r-8|0,t=i[r+4>>2],k=k-8|0,i[k>>2]=i[r>>2],i[k+4>>2]=t,(r|0)!=(n|0););n=i[f>>2]}i[f+8>>2]=(A<<3)+u,i[f+4>>2]=e,i[f>>2]=k,n&&G(n);return}y0(),P()}_2(),P()}function V7(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=69312,A=i[f+56>>2],A){if(e=A,r=i[f+60>>2],(e|0)!=(r|0)){for(;e=i[r-12>>2],e&&(i[r-8>>2]=e,G(e)),r=r-16|0,(A|0)!=(r|0););e=i[f+56>>2]}i[f+60>>2]=A,G(e)}if(i[f>>2]=68616,A=i[f+36>>2],A){if(e=A,r=i[f+40>>2],(e|0)!=(r|0)){for(;;){e=i[r-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(r=r-8|0,(A|0)==(r|0))break}e=i[f+36>>2]}i[f+40>>2]=A,G(e)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function RB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,l2(r,i[e+48>>2]),l2(r,i[e+52>>2]),l2(r,i[e+56>>2]),l2(r,i[e+60>>2]),l2(r,i[e+64>>2]),l2(r,i[e+68>>2]),l2(r,i[e+72>>2]),l2(r,i[e+76>>2]),i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function DB(f){return f=f|0,s[100292]?i[25072]:(s[101360]||(l[101360]=1),E2(101072,66328),E2(101084,66360),E2(101096,66396),E2(101108,66420),E2(101120,66444),E2(101132,66460),E2(101144,66480),E2(101156,66500),E2(101168,66528),E2(101180,66568),E2(101192,66600),E2(101204,66636),E2(101216,66672),E2(101228,66688),E2(101240,66704),E2(101252,66720),E2(101264,66444),E2(101276,66736),E2(101288,66752),E2(101300,66768),E2(101312,66784),E2(101324,66800),E2(101336,66816),E2(101348,66832),l[100292]=1,i[25072]=101072,101072)}function UB(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0;i:{if(t=V[i[i[e>>2]+68>>2]](i[e+4>>2])|0,e=i[t>>2],!e)break i;for(;;){if(v4(i[e+4>>2],r)){if(e=i[t+4>>2],t=t+4|0,e)continue;break i}break}if(i[e+8>>2]!=1){e=i[18429],i[f>>2]=i[18428],i[f+4>>2]=e,i[f+8>>2]=i[18430];return}r:{if(!s[e+16|0]||(k&&(i[k>>2]=i[e+20>>2]),!n))break r;i[n>>2]=i[e+24>>2]}A&&(i[A>>2]=s[e+16|0]),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412];return}e=i[18429],i[f>>2]=i[18428],i[f+4>>2]=e,i[f+8>>2]=i[18430]}function MB(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;t=B-16|0,B=t,i[t+12>>2]=0,i[t+4>>2]=0,i[t+8>>2]=0;i:{if(n){if((n|0)<0)break i;n=n<<2,o=U(n),i[t+4>>2]=o,u=n+o|0,i[t+12>>2]=u,l0(o,k,n),i[t+8>>2]=u}e=i[e>>2],k=i[e+48>>2],e=i[e+52>>2];r:{if(!e){P1(k,A,r,t+4|0);break r}if(i[e+4>>2]=i[e+4>>2]+1,P1(k,A,r,t+4|0),r=i[e+4>>2],i[e+4>>2]=r-1,r)break r;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],f=i[t+4>>2],f&&(i[t+8>>2]=f,G(f)),B=t+16|0;return}y0(),P()}function xB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;if(A=B-32|0,B=A,n=V[i[i[e>>2]+32>>2]](e,r,0)|0,R4(r,e+56|0),k=i[e+68>>2],t=i[e+72>>2],(k|0)!=(t|0))for(;A2(r,s[k|0]),k=k+1|0,(t|0)!=(k|0););i[r+12>>2]=n,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+n|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function zB(f,e,r,A,k,n,t,o,u,h){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0,h=h|0;var w=0,_=0,v=0;if(!((n|0)<=0|(k|0)<=0))for(t=14-h|0,_=k&2147483644,w=k&3,u=0,v=k>>>0<4;;){if(k=(m(A,u)<<1)+r|0,h=(m(e,u)<<1)+f|0,o=0,!v)for(;X[h>>1]=Q[k>>1]<>1]=Q[k+2>>1]<>1]=Q[k+4>>1]<>1]=Q[k+6>>1]<>1]=Q[k>>1]<>2]=69024,l[f+123|0]<0&&G(i[f+112>>2]),l[f+111|0]<0&&G(i[f+100>>2]),l[f+99|0]<0&&G(i[f+88>>2]),l[f+87|0]<0&&G(i[f+76>>2]),l[f+75|0]<0&&G(i[f+64>>2]),i[f>>2]=68616,r=i[f+36>>2],r){if(e=r,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){e=i[A-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(A=A-8|0,(r|0)==(A|0))break}e=i[f+36>>2]}i[f+40>>2]=r,G(e)}return i[f>>2]=68500,r=i[f+20>>2],r&&(i[f+24>>2]=r,G(r)),f|0}function HB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-32|0,B=A,n=V[i[i[e>>2]+32>>2]](e,r,0)|0;i:{r:{if(!(k0[e+48>>2]>65535|k0[e+52>>2]>65535)){if(k=k0[e+56>>2]>65535,A2(r,k),k)break r;w2(r,Q[e+48>>1]),w2(r,Q[e+52>>1]),w2(r,Q[e+56>>1]);break i}A2(r,1)}l2(r,i[e+48>>2]),l2(r,i[e+52>>2]),l2(r,i[e+56>>2])}Y4(A+12|0,e,r,n),l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function Q7(f,e,r,A,k,n){var t=0,o=0;i:{r:{e:{if(A=A-i[f+208>>2]|0,(A|0)!=31)for(o=r,r=i[f+124>>2],t=i[r+16944>>2],r=m(o>>t,i[r+16948>>2])+(e>>t)|0,n=n?k|-128:k,e=1<>2],i[t+16948>>2]<=(k|0))break e;if(i[t+16952>>2]<=(A|0))break r;if(t=(r+k|0)+m(i[f+232>>2],A)|0,(t|0)>=i[f+224>>2])break i;if(l[t+i[f+220>>2]|0]=n,k=k+1|0,(e|0)==(k|0))break}if(A=A+1|0,(e|0)==(A|0))break}return}C0(4828,8453,690,15399),P()}C0(4803,8453,691,15399),P()}C0(8891,8453,694,15399),P()}function y7(f,e){var r=0,A=0,k=0,n=0,t=0,o=0;if(k=i[f+200>>2],r=i[f+204>>2],k>>>0>>0){i[k>>2]=e,i[f+200>>2]=k+4;return}i:{if(t=i[f+196>>2],A=k-t>>2,n=A+1|0,n>>>0<1073741824){if(o=A<<2,r=r-t|0,A=r>>1,A=r>>>0>=2147483644?1073741823:A>>>0>n>>>0?A:n,A){if(A>>>0>=1073741824)break i;n=U(A<<2)}else n=0;if(r=o+n|0,i[r>>2]=e,e=r+4|0,(k|0)!=(t|0))for(;r=r-4|0,k=k-4|0,i[r>>2]=i[k>>2],(k|0)!=(t|0););i[f+204>>2]=n+(A<<2),i[f+200>>2]=e,i[f+196>>2]=r,t&&G(t),i[f+200>>2]=e;return}y0(),P()}_2(),P()}function p6(f,e,r,A){var k=0;k=1;i:{if(f){f=r;break i}if(!A){f=r;break i}r:{if(e){f=r;break r}if(f=U(24),l[f+22|0]=1,X[f+20>>1]=2,i[f+16>>2]=131074,i[f+12>>2]=72992,i[f+4>>2]=0,i[f+8>>2]=0,i[f>>2]=72832,e=f+12|0,l[e+10|0]=1,X[e+8>>1]=6,i[e+4>>2]=851969,!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(k=0,s[e+10|0]==(!s[A+16|0]|0)|i[A+12>>2]!=Q[e+8>>1])break i;k=i[A+4>>2]==Q[e+4>>1]}i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}return k}function W6(f,e,r){var A=0,k=0,n=0;i:{r:{k=i[e+112>>2];e:{if(!k)break e;for(n=e+112|0,e=n;A=k0[k+16>>2]>>0,e=A?e:k,k=i[(A<<2)+k>>2],!!k;);if(A=0,(e|0)==(n|0)|k0[e+16>>2]>r>>>0)break e;if(r=i[e+20>>2],A=i[e+24>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),r)break r}l[f|0]=0,l[f+11|0]=0;break i}if(l[r+75|0]>=0){e=r- -64|0,r=i[e+4>>2],i[f>>2]=i[e>>2],i[f+4>>2]=r,i[f+8>>2]=i[e+8>>2];break i}_0(f,i[r+64>>2],i[r+68>>2])}i:{if(!A||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break i;V[i[i[A>>2]+8>>2]](A),g(A)}}function TB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;for(n=B-16|0,B=n;;){i:{if((r|0)<=(t|0))break i;A=i[f+12>>2],k=i[f+16>>2];r:{if(A>>>0>>0){i[n+12>>2]=2147483647,i[n+8>>2]=k-A>>2,i[n+4>>2]=r-t,A=B-16|0,B=A,B=A+16|0,A=B-16|0,B=A,B=A+16|0,A=n+4|0,k=n+8|0,A=i[A>>2]>2]?A:k,k=n+12|0,A=i[(i[A>>2]>2]?A:k)>>2],ui(i[f+12>>2],A,e),k=A<<2,i[f+12>>2]=k+i[f+12>>2],e=e+k|0;break r}if(A=V[i[i[f>>2]+40>>2]](f)|0,(A|0)==-1)break i;i[e>>2]=A,A=1,e=e+4|0}t=A+t|0;continue}break}return B=n+16|0,t|0}function aB(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0,Z=0,p=0,W=0;if(!(n&1)){if(!((t|0)<=0|(n|0)<=0))for(p=15-o|0,W=1<<14-o,w=-1<>1]+(X[u>>1]+W|0)>>p,X[o>>1]=(h|0)>=0?(h|0)<(w|0)?h:w:0,h=X[v+2>>1]+(X[u+2>>1]+W|0)>>p,X[o+2>>1]=(h|0)>=0?(h|0)<(w|0)?h:w:0,v=v+4|0,u=u+4|0,o=o+4|0,Z=Z+2|0,(Z|0)<(n|0););if(_=_+1|0,(_|0)==(t|0))break}return}C0(17190,13955,238,8011),P()}function cr(f,e,r){var A=0,k=0,n=0;i:{r:{k=i[e+112>>2];e:{if(!k)break e;for(n=e+112|0,e=n;A=k0[k+16>>2]>>0,e=A?e:k,k=i[(A<<2)+k>>2],!!k;);if(A=0,(e|0)==(n|0)|k0[e+16>>2]>r>>>0)break e;if(r=i[e+20>>2],A=i[e+24>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),r)break r}l[f|0]=0,l[f+11|0]=0;break i}if(l[r+99|0]>=0){e=r+88|0,r=i[e+4>>2],i[f>>2]=i[e>>2],i[f+4>>2]=r,i[f+8>>2]=i[e+8>>2];break i}_0(f,i[r+88>>2],i[r+92>>2])}i:{if(!A||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break i;V[i[i[A>>2]+8>>2]](A),g(A)}}function W8(f,e,r,A){var k=0,n=0,t=0;if(k=i[f+8>>2],n=i[f>>2],k-n>>>0>=A>>>0){if(t=A,k=i[f+4>>2],A=k-n|0,t>>>0>A>>>0){(k|0)!=(n|0)&&(F2(n,e,A),k=i[f+4>>2]),e=e+A|0,A=r-e|0,(e|0)!=(r|0)&&F2(k,e,A),i[f+4>>2]=A+k;return}A=r-e|0,(e|0)!=(r|0)&&F2(n,e,A),i[f+4>>2]=A+n;return}if(n&&(i[f+4>>2]=n,G(n),i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,k=0),(A|0)>=0){n=k<<1,k=k>>>0>=1073741823?2147483647:A>>>0>>0?n:A,A=U(k),i[f+4>>2]=A,i[f>>2]=A,i[f+8>>2]=A+k,k=r-e|0,(e|0)!=(r|0)&&l0(A,e,k),i[f+4>>2]=A+k;return}y0(),P()}function SB(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;if((A|0)>0)for(v=A&2147483646,Z=A&1,t=-1<>2]+s[u|0]|0,l[u|0]=(n|0)>=0?(n|0)<(t|0)?n:t:0,n=k|1,u=n+o|0,n=i[(n<<2)+w>>2]+s[u|0]|0,l[u|0]=(n|0)>=0?(n|0)<(t|0)?n:t:0,k=k+2|0,_=_+2|0,(v|0)!=(_|0););if(Z&&(o=k+o|0,k=i[(k<<2)+w>>2]+s[o|0]|0,l[o|0]=(k|0)>=0?(k|0)<(t|0)?k:t:0),h=h+1|0,(h|0)==(A|0))break}}function OB(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0;var u=0,h=0,w=0,_=0,v=0;if(!((n|0)<=0|(k|0)<=0))for(t=14-o|0,_=k&2147483644,w=k&3,v=k>>>0<4;;){if(k=(m(e,h)<<1)+f|0,o=(m(A,h)<<1)+r|0,u=0,!v)for(;X[k>>1]=Q[o>>1]<>1]=Q[o+2>>1]<>1]=Q[o+4>>1]<>1]=Q[o+6>>1]<>1]=Q[o>>1]<0)for(w=r&2147483644,u=r&3,_=r>>>0<4;;){if(h=m(r,o),k=0,n=0,!_)for(;A=k+h|0,i[(A<<2)+f>>2]=X[(A<<1)+e>>1],t=A+1|0,i[(t<<2)+f>>2]=X[(t<<1)+e>>1],t=A+2|0,i[(t<<2)+f>>2]=X[(t<<1)+e>>1],A=A+3|0,i[(A<<2)+f>>2]=X[(A<<1)+e>>1],k=k+4|0,n=n+4|0,(w|0)!=(n|0););if(A=0,u)for(;n=k+h|0,i[(n<<2)+f>>2]=X[(n<<1)+e>>1],k=k+1|0,A=A+1|0,(u|0)!=(A|0););if(o=o+1|0,(o|0)==(r|0))break}}function Qi(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;if(r=i[f+8>>2],A=i[f+4>>2],r-A>>2>>>0>=e>>>0){e&&(e=e<<2,A=B0(A,0,e)+e|0),i[f+4>>2]=A;return}i:{if(n=i[f>>2],t=A-n>>2,k=t+e|0,k>>>0<1073741824){if(r=r-n|0,o=r>>1,k=r>>>0>=2147483644?1073741823:k>>>0>>0?o:k,k){if(k>>>0>=1073741824)break i;u=U(k<<2)}if(r=(t<<2)+u|0,e=e<<2,e=B0(r,0,e)+e|0,(A|0)!=(n|0))for(;r=r-4|0,A=A-4|0,i[r>>2]=i[A>>2],(A|0)!=(n|0););i[f+8>>2]=(k<<2)+u,i[f+4>>2]=e,i[f>>2]=r,n&&G(n);return}y0(),P()}_2(),P()}function PB(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0;i:{if(!(A&&r)||(k=i[e+16>>2],!k)||(k=N0(k,72776,73168),!k))break i;if(e=i[e+20>>2],!e){i[r>>2]=i[k+4>>2],i[A>>2]=i[k+8>>2],i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e;return}i[e+4>>2]=i[e+4>>2]+1,i[r>>2]=i[k+4>>2],i[A>>2]=i[k+8>>2],i[f+8>>2]=i[18412],r=i[18411],i[f>>2]=i[18410],i[f+4>>2]=r,f=i[e+4>>2],i[e+4>>2]=f-1,f||(V[i[i[e>>2]+8>>2]](e),g(e));return}e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560]}function LB(f){return f=f|0,s[100284]?i[25070]:(s[101056]||(l[101056]=1),Y2(100768,1421),Y2(100780,1412),Y2(100792,8436),Y2(100804,7543),Y2(100816,1491),Y2(100828,9774),Y2(100840,1429),Y2(100852,2799),Y2(100864,5930),Y2(100876,5823),Y2(100888,5921),Y2(100900,5940),Y2(100912,7082),Y2(100924,14100),Y2(100936,6046),Y2(100948,4913),Y2(100960,1491),Y2(100972,6176),Y2(100984,7487),Y2(100996,8497),Y2(101008,6118),Y2(101020,3376),Y2(101032,2549),Y2(101044,13890),l[100284]=1,i[25070]=100768,100768)}function KB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;for(k=B-16|0,B=k;;){i:{if((r|0)<=(t|0))break i;A=i[f+12>>2],n=i[f+16>>2];r:{if(A>>>0>>0){i[k+12>>2]=2147483647,i[k+8>>2]=n-A,i[k+4>>2]=r-t,A=B-16|0,B=A,B=A+16|0,A=B-16|0,B=A,B=A+16|0,A=k+4|0,n=k+8|0,A=i[A>>2]>2]?A:n,n=k+12|0,A=i[(i[A>>2]>2]?A:n)>>2],e8(i[f+12>>2],A,e),i[f+12>>2]=i[f+12>>2]+A;break r}if(A=V[i[i[f>>2]+40>>2]](f)|0,(A|0)==-1)break i;l[e|0]=A<<24>>24,A=1}e=e+A|0,t=A+t|0;continue}break}return B=k+16|0,t|0}function qB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,A2(r,s[e+48|0]|128),A2(r,s[e+50|0]&31|s[e+49|0]<<5&224),A2(r,s[e+57|0]&3|((s[e+52|0]!=0)<<6|(s[e+51|0]!=0)<<7|(s[e+53|0]!=0)<<5|(s[e+54|0]!=0)<<4|(s[e+55|0]!=0)<<3|(s[e+56|0]!=0)<<2)),A2(r,0),Y4(A+12|0,e,r,k),l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function ti(f,e,r,A,k,n){var t=0,o=0,u=0,h=0;i:{if(n&64){r=n+-64|0,e=r&31,(r&63)>>>0>=32?(r=0,e=k>>>e|0):(r=k>>>e|0,e=((1<>>e),A=0,k=0;break i}if(!n)break i;u=A,o=64-n|0,t=o&31,(o&63)>>>0>=32?(o=A<>>32-t|k<>>0>=32?(t=0,e=r>>>e|0):(t=r>>>e|0,e=((1<>>e),e=h|e,r=t|o,t=A,A=n&31,(n&63)>>>0>=32?(o=0,A=k>>>A|0):(o=k>>>A|0,A=((1<>>A),k=o}i[f>>2]=e,i[f+4>>2]=r,i[f+8>>2]=A,i[f+12>>2]=k}function $B(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;if(k=B-32|0,B=k,t=V[i[i[e>>2]+32>>2]](e,r,0)|0,w2(r,(i[e+52>>2]-i[e+48>>2]|0)/6&65535),A=i[e+48>>2],n=i[e+52>>2],(A|0)!=(n|0))for(;w2(r,Q[A>>1]),w2(r,Q[A+2>>1]),w2(r,Q[A+4>>1]),A=A+6|0,(n|0)!=(A|0););Y4(k+12|0,e,r,t),l[k+31|0]<0&&G(i[k+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+32|0}function F7(f,e,r){var A=0,k=0,n=0,t=0,o=0;i:{if(k=B-16|0,B=k,n=r-e>>2,n>>>0<=1073741815){r:{if(n>>>0<2){l[f+11|0]=s[f+11|0]&128|n&127,l[f+11|0]=s[f+11|0]&127,A=f;break r}o=k+8|0,n>>>0>=2?(t=n+2&-2,A=t-1|0,A=(A|0)==2?t:A):A=1,xi(o,A+1|0),A=i[k+8>>2],i[f>>2]=A,i[f+8>>2]=i[f+8>>2]&-2147483648|i[k+12>>2]&2147483647,i[f+8>>2]=i[f+8>>2]|-2147483648,i[f+4>>2]=n}for(;;){if((e|0)!=(r|0)){i[A>>2]=i[e>>2],A=A+4|0,e=e+4|0;continue}break}i[k+4>>2]=0,i[A>>2]=i[k+4>>2],B=k+16|0;break i}o4(),P()}}function bB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;if(k=B-32|0,B=k,t=V[i[i[e>>2]+32>>2]](e,r,0)|0,w2(r,(i[e+60>>2]-i[e+56>>2]|0)/6&65535),A=i[e+56>>2],n=i[e+60>>2],(A|0)!=(n|0))for(;w2(r,Q[A>>1]),A2(r,s[A+2|0]),w2(r,Q[A+4>>1]),A=A+6|0,(n|0)!=(A|0););Y4(k+12|0,e,r,t),l[k+31|0]<0&&G(i[k+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+32|0}function dB(f,e,r,A,k,n,t,o,u){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0;var h=0,w=0,_=0;if(!((n|0)<=0|(k|0)<=0))for(w=k&2147483644,h=k&3,u=0,_=k>>>0<4;;){if(k=m(A,u)+r|0,t=(m(e,u)<<1)+f|0,o=0,!_)for(;X[t>>1]=s[k|0]<<6,X[t+2>>1]=s[k+1|0]<<6,X[t+4>>1]=s[k+2|0]<<6,X[t+6>>1]=s[k+3|0]<<6,k=k+4|0,t=t+8|0,o=o+4|0,(w|0)!=(o|0););if(o=0,h)for(;X[t>>1]=s[k|0]<<6,k=k+1|0,t=t+2|0,o=o+1|0,(h|0)!=(o|0););if(u=u+1|0,(u|0)==(n|0))break}}function cB(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-16|0,B=A;i:{if(B2(r)&1){n=e,t=D0(r),i[n+48>>2]=t,n=e,t=D0(r),i[n+52>>2]=t,k=D0(r);break i}n=e,t=t2(r),i[n+48>>2]=t,n=e,t=t2(r),i[n+52>>2]=t,k=t2(r)}i[e+56>>2]=k;i:{if(s[r+20|0]==1){if(l[A+4|0]=0,l[A+15|0]=0,r0(f,2,100,A+4|0),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+16|0}function iZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-32|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(A,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(k=i[19565],i[A>>2]=i[19564],i[A+4>>2]=k,k=A+8|0,l[78275]>=0){n=i[19567],i[k>>2]=i[19566],i[k+4>>2]=n,i[k+8>>2]=i[19568];break i}_0(k,i[19566],i[19567])}l[A+19|0]<0&&G(i[A+8>>2]);i:{if(s[e+48|0]){h4(f,e,14139);break i}Yr(f,e,r,-1)}B=A+32|0}function rZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;A=B-32|0,B=A;i:{if(!(r&&e)){i[f+8>>2]=0,i[f>>2]=5,i[f+4>>2]=2001;break i}if(k=i[e>>2],!s[k+208|0]){if(l[A|0]=0,l[A+11|0]=0,r=r0(A+12|0,5,138,A),l[A+11|0]<0&&G(i[A>>2]),P0(f,r,i[e>>2]),l[r+19|0]>=0)break i;G(i[r+8>>2]);break i}n=i0[k+216>>3],t=i0[k+224>>3],o=i0[k+232>>3],u=i0[k+240>>3],i0[r+32>>3]=i0[k+248>>3],i0[r+24>>3]=u,i0[r+16>>3]=o,i0[r+8>>3]=t,i0[r>>3]=n,i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}B=A+32|0}function eZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,l2(r,i[e+56>>2]),l2(r,i[e+60>>2]),l2(r,i[e+64>>2]),l2(r,i[e+68>>2]),l2(r,i[e+72>>2]),R4(r,e+76|0),i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function E7(f,e,r){var A=0,k=0,n=0,t=0,o=0;i:{if(k=B-16|0,B=k,n=r-e|0,n>>>0<=2147483639){r:{if(n>>>0<11){l[f+11|0]=s[f+11|0]&128|n&127,l[f+11|0]=s[f+11|0]&127,A=f;break r}o=k+8|0,n>>>0>=11?(t=n+8&-8,A=t-1|0,A=(A|0)==11?t:A):A=10,Mi(o,A+1|0),A=i[k+8>>2],i[f>>2]=A,i[f+8>>2]=i[f+8>>2]&-2147483648|i[k+12>>2]&2147483647,i[f+8>>2]=i[f+8>>2]|-2147483648,i[f+4>>2]=n}for(;;){if((e|0)!=(r|0)){l[A|0]=s[e|0],A=A+1|0,e=e+1|0;continue}break}l[k+7|0]=0,l[A|0]=s[k+7|0],B=k+16|0;break i}o4(),P()}}function X6(f,e,r,A){var k=0,n=0,t=0,o=0;i:{r:{if(!A){k=i[f+12>>2],A=i[f+8>>2],f=k-A>>2;break r}if(k=i[f+12>>2],A=i[f+8>>2],f=k-A>>2,(A|0)==(k|0))break r;for(o=f>>>0<=1?1:f;;){if(t=i[(n<<2)+A>>2],!(i[t+96>>2]!=(e|0)|i[t+108>>2]<=(r|0))&i[t+100>>2]==2)break i;if(n=n+1|0,(o|0)==(n|0))break}}if(n=-1,(A|0)==(k|0))break i;for(t=f>>>0<=1?1:f,f=0;;){if(k=i[(f<<2)+A>>2],!(i[k+96>>2]!=(e|0)|i[k+108>>2]<=(r|0)|!i[k+100>>2]))return f;if(f=f+1|0,(t|0)==(f|0))break}}return n}function AZ(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0;k=B-32|0,B=k;i:{if(!A){if(l[k|0]=0,l[k+11|0]=0,r=r0(k+12|0,5,2001,k),l[k+11|0]<0&&G(i[k>>2]),P0(f,r,e?i[e>>2]:0),l[r+19|0]>=0)break i;G(i[r+8>>2]);break i}Or(k+12|0,r,0),n=i[k+12>>2];r:{if((n|0)!=i[k+16>>2]){e=U(8),r=i[i[n>>2]>>2],i[e+4>>2]=0,i[e>>2]=r,i[A>>2]=e,wt(f,e);break r}if(l[k|0]=0,l[k+11|0]=0,r=r0(k+12|0,3,0,k),l[k+11|0]<0&&G(i[k>>2]),P0(f,r,e?i[e>>2]:0),l[r+19|0]<0&&G(i[r+8>>2]),!n)break i}G(n)}B=k+32|0}function Y7(f,e){var r=0,A=0,k=0;i:{r:{e:{if(A=e&255,A){if(f&3)for(;;){if(r=s[f|0],!r|(r|0)==(A|0))break i;if(f=f+1|0,!(f&3))break}if(r=i[f>>2],((r|16843008-r)&-2139062144)!=-2139062144)break e;for(k=m(A,16843009);;){if(A=r^k,((16843008-A|A)&-2139062144)!=-2139062144)break e;if(r=i[f+4>>2],A=f+4|0,f=A,((16843008-r|r)&-2139062144)!=-2139062144)break}break r}return G2(f)+f|0}A=f}for(;;){if(f=A,r=s[f|0],!r)break i;if(A=f+1|0,(r|0)==(e&255))break}}return f}function J7(f,e){var r=0,A=0,k=0,n=0,t=0;r=B-32|0,B=r,i[r+28>>2]=0,i[r+20>>2]=0,i[r+24>>2]=0,w8(r,f,e,r+20|0),f=-1;i:{if(i[r>>2]||(A=i[r+20>>2],k=i[r+24>>2]-A|0,f=-1,k>>>0<2))break i;for(e=1;;){t=n,n=e;r:{if(s[A+t|0]!=255||(f=s[e+A|0],(f&240)!=192|s[(f&15)+35200|0]!=1))break r;if(e=t+4|0,f=-1,e>>>0>=k>>>0)break i;f=s[e+A|0];break i}if(e=n+1|0,(k|0)==(e|0))break}f=-1}return l[r+19|0]<0&&G(i[r+8>>2]),e=i[r+20>>2],e&&(i[r+24>>2]=e,G(e)),B=r+32|0,f}function g7(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=70032,l[f+103|0]<0&&G(i[f+92>>2]),l[f+91|0]<0&&G(i[f+80>>2]),l[f+79|0]<0&&G(i[f+68>>2]),l[f+67|0]<0&&G(i[f+56>>2]),i[f>>2]=68616,r=i[f+36>>2],r){if(e=r,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){e=i[A-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(A=A-8|0,(r|0)==(A|0))break}e=i[f+36>>2]}i[f+40>>2]=r,G(e)}return i[f>>2]=68500,r=i[f+20>>2],r&&(i[f+24>>2]=r,G(r)),f|0}function fZ(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,k=B-32|0,B=k,X7(k+8|0,e,r,A,0);i:{if(i[k+8>>2]){e=i[k+12>>2],i[f>>2]=i[k+8>>2],i[f+4>>2]=e,i[f+16>>2]=i[k+24>>2],e=i[k+20>>2],i[f+8>>2]=i[k+16>>2],i[f+12>>2]=e,i[k+24>>2]=0,i[k+16>>2]=0,i[k+20>>2]=0;break i}if(l2(r,i[e+52>>2]|s[e+48|0]<<24),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}l[k+27|0]<0&&G(i[k+16>>2]),B=k+32|0}function kZ(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;if((e|0)>=2)for(w=(e|0)/2|0,_=e&2147483646,v=e&1;;){for(n=(m(e,k)<<1)+f|0,o=(m(e-k|0,e)<<1)+f|0,r=0,u=0;A=n+(r<<1)|0,h=Q[A>>1],t=((r^-1)<<1)+o|0,X[A>>1]=Q[t>>1],X[t>>1]=h,h=Q[A+2>>1],t=A,A=((r^2147483646)<<1)+o|0,X[t+2>>1]=Q[A>>1],X[A>>1]=h,r=r+2|0,u=u+2|0,(_|0)!=(u|0););if(v&&(A=n+(r<<1)|0,n=Q[A>>1],r=((r^-1)<<1)+o|0,X[A>>1]=Q[r>>1],X[r>>1]=n),k=k+1|0,(w|0)==(k|0))break}}function nZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;k=B-16|0,B=k;i:{if(!e)break i;f=i[f>>2],A=i[f+48>>2],f=i[f+52>>2];r:{if(!f){RA(k+4|0,A);break r}if(i[f+4>>2]=i[f+4>>2]+1,RA(k+4|0,A),A=i[f+4>>2],i[f+4>>2]=A-1,A)break r;V[i[i[f>>2]+8>>2]](f),g(f)}r:{e:{if(n=i[k+4>>2],A=i[k+8>>2]-n>>2,(A|0)<=0)break e;for(f=0;;){if((f|0)==(r|0)){A=r;break e}if(t=f<<2,i[t+e>>2]=i[n+t>>2],f=f+1|0,(A|0)==(f|0))break}break r}if(!n)break i}i[k+8>>2]=n,G(n)}return B=k+16|0,A|0}function OA(f){var e=0,r=0,A=0,k=0,n=0,t=0,o=0,u=0;if(e=Y7(f,61),(e|0)==(f|0))return 0;k=e-f|0;i:{if(s[k+f|0]||(A=i[24899],!A)||(r=i[A>>2],!r))break i;for(;;){r:{n=f,t=k,e=0;e:{if(!k)break e;if(e=s[f|0],e)A:{for(;;){if(o=s[r|0],(o|0)!=(e|0)|!o||(t=t-1|0,!t))break A;if(r=r+1|0,e=s[n+1|0],n=n+1|0,!e)break}e=0}else e=0;e=e-s[r|0]|0}if(!e&&(e=i[A>>2]+k|0,s[e|0]==61))break r;if(r=i[A+4>>2],A=A+4|0,r)continue;break i}break}u=e+1|0}return u}function L1(f,e,r,A,k,n){var t=0,o=0,u=0;i:{if(n&64){k=n+-64|0,n=e,A=k&31,(k&63)>>>0>=32?(k=n<>>32-A|r<>>0>=32?(u=A<>>32-t|k<>>0>=32?(k=0,A=r>>>A|0):(k=r>>>A|0,A=((1<>>A),A=o|A,k=k|u,o=e,t=n&31,(n&63)>>>0>=32?(u=e<>>32-t|r<>2]=e,i[f+4>>2]=r,i[f+8>>2]=A,i[f+12>>2]=k}function N7(f){return l[f+316|0]=0,X[f+314>>1]=0,i[f+60>>2]=0,i[f+52>>2]=0,i[f+56>>2]=0,B0(f+116|0,0,164),i[f+108>>2]=0,i[f+112>>2]=0,i[f>>2]=-1,i[f+4>>2]=0,i[f+8>>2]=0,i[f+12>>2]=0,i[f+64>>2]=0,i[f+68>>2]=0,i[f+72>>2]=0,i[f+320>>2]=0,i[f+24>>2]=0,i[f+28>>2]=0,i[f+280>>2]=0,i[f+284>>2]=0,i[f+288>>2]=0,i[f+292>>2]=0,i[f+296>>2]=0,i[f+300>>2]=0,l[f+312|0]=2,l[f+104|0]=0,i[f+100>>2]=0,i[f+92>>2]=-1,i[f+96>>2]=-1,i[f+340>>2]=0,i[f+332>>2]=0,i[f+336>>2]=0,i[f+324>>2]=0,i[f+328>>2]=0,f}function b4(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0,h=0;k=B-16|0,B=k,U2(+e),A=j0(1)|0,n=j0(0)|0,h=A,r=A&1048575,A=A>>>20&2047;i:{if(A|0){if((A|0)!=2047|t){o=(r&15)<<28|n>>>4,u=r>>>4|0,t=A+15360|0,A=n<<28,r=0;break i}o=(r&15)<<28|n>>>4,u=r>>>4|0,t=32767,A=n<<28,r=0;break i}if(!(r|n)){A=0,r=0;break i}A=r,r=r?$2(r):$2(n)+32|0,L1(k,n,A,0,0,r+49|0),t=15372-r|0,o=i[k+8>>2],u=i[k+12>>2]^65536,A=i[k+4>>2],r=i[k>>2]}i[f>>2]=r,i[f+4>>2]=A,i[f+8>>2]=o,i[f+12>>2]=u|(h&-2147483648|t<<16),B=k+16|0}function jA(f,e){var r=0,A=0,k=0;i:{if(r=i[e>>2],!r)break i;if(k=N0(r,72560,72972),k){A=i[e+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[f+184>>2]=k,r=i[f+188>>2],i[f+188>>2]=A;r:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break r;V[i[i[r>>2]+8>>2]](r),g(r)}if(r=i[e>>2],!r)break i}if(A=N0(r,72560,73012),!A||(r=i[e+4>>2],r&&(i[r+4>>2]=i[r+4>>2]+1),i[f+176>>2]=A,e=i[f+180>>2],i[f+180>>2]=r,!e)||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}}function x8(f){var e=0,r=0,A=0;if(!f){if(f=i[19518],f&&(e=x8(f)),f=i[19480],f&&(e=x8(f)|e),f=i[23946],f)for(;i[f+20>>2]!=i[f+28>>2]&&(e=x8(f)|e),f=i[f+56>>2],!!f;);return e}A=i[f+76>>2]<0;i:{r:{if(i[f+20>>2]==i[f+28>>2]||(V[i[f+36>>2]](f,0,0)|0,i[f+20>>2]))break r;e=-1;break i}if(e=i[f+8>>2],r=i[f+4>>2],(e|0)!=(r|0)&&(e=r-e|0,V[i[f+40>>2]](f,e,e>>31,1)|0),e=0,i[f+28>>2]=0,i[f+16>>2]=0,i[f+20>>2]=0,i[f+4>>2]=0,i[f+8>>2]=0,A)break i}return e}function tZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;k=B-32|0,B=k,i[k+16>>2]=e,A=i[f+48>>2],i[k+20>>2]=r-((A|0)!=0),t=i[f+44>>2],i[k+28>>2]=A,i[k+24>>2]=t;i:{r:{if(A=ps(i[f+60>>2],k+16|0,2,k+12|0)|0,A?(i[23944]=A,A=-1):A=0,A)e=32;else{if(A=i[k+12>>2],(A|0)>0)break r;e=A?32:16}i[f>>2]=e|i[f>>2];break i}if(n=A,t=i[k+20>>2],t>>>0>=A>>>0)break i;n=i[f+44>>2],i[f+4>>2]=n,i[f+8>>2]=n+(A-t|0),i[f+48>>2]&&(i[f+4>>2]=n+1,l[(e+r|0)-1|0]=s[n|0]),n=r}return B=k+32|0,n|0}function PA(f,e,r){var A=0,k=0;A=(r|0)!=0;i:{r:{e:{if(!(f&3)|!r)break e;for(k=e&255;;){if((k|0)==s[f|0])break r;if(r=r-1|0,A=(r|0)!=0,f=f+1|0,!(f&3))break e;if(!r)break}}if(!A)break i;if(A=e&255,!((A|0)==s[f|0]|r>>>0<4))for(A=m(A,16843009);;){if(k=A^i[f>>2],((16843008-k|k)&-2139062144)!=-2139062144)break r;if(f=f+4|0,r=r-4|0,!(r>>>0>3))break}if(!r)break i}for(e=e&255;;){if((e|0)==s[f|0])return f;if(f=f+1|0,r=r-1|0,!r)break}}return 0}function oZ(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0,v=0;if(!(n&1)){if(!((t|0)<=0|(n|0)<=0))for(;;){for(w=m(e,h)+f|0,u=m(k,h)<<1,_=u+A|0,u=r+u|0,v=0;o=(X[u>>1]+X[_>>1]|0)- -64>>7,o=(o|0)>=255?255:o,l[w|0]=(o|0)>0?o:0,o=(X[u+2>>1]+X[_+2>>1]|0)- -64>>7,o=(o|0)>=255?255:o,l[w+1|0]=(o|0)>0?o:0,_=_+4|0,u=u+4|0,w=w+2|0,v=v+2|0,(v|0)<(n|0););if(h=h+1|0,(h|0)==(t|0))break}return}C0(17190,13955,105,7860),P()}function R7(f){var e=0,r=0;e=U(128),r=e+32|0,i[r>>2]=0,i[r+4>>2]=0,i[e+68>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,i[e+24>>2]=0,i[e+28>>2]=0,i[e+72>>2]=0,i[e+76>>2]=0,i[e+104>>2]=0,i[e+108>>2]=0,i[e>>2]=71984,i[e+40>>2]=0,i[e+44>>2]=0,i[e+48>>2]=0,i[e+52>>2]=0,i[e+56>>2]=0,i[e+60>>2]=0,l[e- -64|0]=0,i[e+16>>2]=69912,i[e+80>>2]=0,i[e+84>>2]=0,i[e+88>>2]=0,i[e+92>>2]=0,l[e+96|0]=0,i[e+112>>2]=0,i[e+116>>2]=0,i[e+120>>2]=0,i[e+124>>2]=0,i[e+32>>2]=1668114798,i[f+4>>2]=e,i[f>>2]=e+16}function lZ(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0;A=B-16|0,B=A;i:{r:{if(i[e+64>>2]&&!(V[i[i[e>>2]+24>>2]](e)|0))break r;i[f+8>>2]=-1,i[f+12>>2]=-1,i[f>>2]=0,i[f+4>>2]=0;break i}if(Ce(i[e+64>>2],i[r+8>>2],i[r+12>>2],0)){i[f+8>>2]=-1,i[f+12>>2]=-1,i[f>>2]=0,i[f+4>>2]=0;break i}k=i[r+4>>2],i[A+8>>2]=i[r>>2],i[A+12>>2]=k,k=i[A+12>>2],i[e+72>>2]=i[A+8>>2],i[e+76>>2]=k,e=i[r+12>>2],i[f+8>>2]=i[r+8>>2],i[f+12>>2]=e,e=i[r+4>>2],i[f>>2]=i[r>>2],i[f+4>>2]=e}B=A+16|0}function uZ(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0,t=0,o=0;i:{r:{e:{if(r=i[f>>2],f=i[r+164>>2],A=i[r+168>>2],(f|0)!=(A|0)){if(!e)return((A-f|0)-8>>>3|0)+1|0;if(n=G2(e),(n|0)!=-1)break e;for(;;){if(e=i[f>>2],l[e+15|0]<0&i[e+8>>2]==-1)break r;if(f=f+8|0,(A|0)==(f|0))break}}r=0;break i}for(r=0;k=i[f>>2],t=l[k+15|0],o=(t|0)<0,((o?i[k+8>>2]:t)|0)==(n|0)&&(r=!K2(o?i[k+4>>2]:k+4|0,e,n)+r|0),f=f+8|0,(A|0)!=(f|0););break i}O3(),P()}return r|0}function D7(f,e,r,A){var k=0,n=0,t=0,o=0;k=B-16|0,B=k;i:{r:{e:{if((f|0)!=(e|0))A:{f:{if(n=s[f|0],(n|0)!=45||(f=f+1|0,(e|0)!=(f|0)))break f;break A}o=i[23944],i[23944]=0,M2(),f=Xi(f,k+12|0,A,-1,-1),A=w0,t=i[23944];f:{if(t){if(i[k+12>>2]!=(e|0))break f;if((t|0)==68)break e;break r}if(i[23944]=o,i[k+12>>2]==(e|0))break r}}i[r>>2]=4,f=0,e=0;break i}i[r>>2]=4,f=-1,e=-1;break i}e=f,r=(n|0)==45,f=r?0-e|0:e,e=r?0-(A+((e|0)!=0)|0)|0:A}return B=k+16|0,w0=e,f}function sZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;k=B-32|0,B=k;i:{if(!r){if(l[k|0]=0,l[k+11|0]=0,r=r0(k+12|0,5,2001,k),l[k+11|0]<0&&G(i[k>>2]),n=f,f=i[e>>2],P0(n,r,f?f+8|0:0),l[r+19|0]>=0)break i;G(i[r+8>>2]);break i}if(A=i[e>>2],t=i[A+52>>2],A=i[A+56>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),t&&(n=r,r=i[t+8>>2],l0(n,r,i[t+12>>2]-r|0)),r=f,f=i[e>>2],P0(r,78256,f?f+8|0:0),!A||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break i;V[i[i[A>>2]+8>>2]](A),g(A)}B=k+32|0}function hZ(f){f=f|0;var e=0,r=0,A=0;if(e=l[f+11|0],r=(e|0)<0,e=r?i[f+4>>2]:e,(e|0)<8)return 3;i:{f=r?i[f>>2]:f;r:{if(s[f+4|0]!=102|s[f+5|0]!=116|(s[f+6|0]!=121|s[f+7|0]!=112))break r;if(e>>>0<12)return 3;A=1,f=p3(f,e);e:{if((f|0)<=1781689192){if((f|0)==1635150182|(f|0)==1751476579)break r;if((f|0)!=1751476600)break e;break r}A:switch(f-1835623985|0){case 0:case 1:break i;default:break A}if((f|0)==1781689193|(f|0)==1785750887)break r}A=2}return A|0}return 3}function wZ(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0,w=0,_=0,v=0,Z=0;if(!(k&1)){if(!((n|0)<=0|(k|0)<=0))for(v=(t|0)<14?1<<13-t:0,Z=14-t|0,u=-1<>1]+v>>Z,X[t>>1]=(o|0)>=0?(o|0)<(u|0)?o:u:0,o=X[w+2>>1]+v>>Z,X[t+2>>1]=(o|0)>=0?(o|0)<(u|0)?o:u:0,w=w+4|0,t=t+4|0,_=_+2|0,(_|0)<(k|0););if(h=h+1|0,(h|0)==(n|0))break}return}C0(17190,13955,172,8077),P()}function U7(f,e,r,A){var k=0,n=0,t=0;k=B-16|0,B=k;i:{r:{e:{if((f|0)!=(e|0)){t=i[23944],i[23944]=0,M2(),A=Xi(f,k+12|0,A,0,-2147483648),f=w0,n=i[23944];A:{if(n){if(i[k+12>>2]!=(e|0))break A;if((n|0)==68)break r;break e}if(i[23944]=t,i[k+12>>2]==(e|0))break e}}i[r>>2]=4,e=0;break i}if((f|0)<0&A>>>0<2147483648|(f|0)<-1|(A>>>0>2147483647&(f|0)>=0|(f|0)>0))break r;e=A;break i}if(i[r>>2]=4,e=2147483647,!!A&(f|0)>=0|(f|0)>0)break i;e=-2147483648}return B=k+16|0,e}function yi(f,e){var r=0,A=0,k=0,n=0,t=0,o=0;n=B-16|0,B=n,A=Ot(e),k=B-16|0,B=k;i:{if(A>>>0<=1073741815){r:{if(A>>>0<2){l[f+11|0]=s[f+11|0]&128|A&127,l[f+11|0]=s[f+11|0]&127,r=f;break r}o=k+8|0,A>>>0>=2?(t=A+2&-2,r=t-1|0,r=(r|0)==2?t:r):r=1,xi(o,r+1|0),r=i[k+8>>2],i[f>>2]=r,i[f+8>>2]=i[f+8>>2]&-2147483648|i[k+12>>2]&2147483647,i[f+8>>2]=i[f+8>>2]|-2147483648,i[f+4>>2]=A}De(r,e,A),i[k+4>>2]=0,i[(A<<2)+r>>2]=i[k+4>>2],B=k+16|0;break i}o4(),P()}B=n+16|0}function _Z(f){f=f|0;var e=0,r=0,A=0,k=0;i[f>>2]=73032,e=i[f+52>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function vZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,n=i[e+56>>2];i:{if(!s[e+48|0]){w2(r,n&65535);break i}l2(r,n)}i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function M7(f,e,r,A){var k=0,n=0,t=0,o=0;k=B-16|0,B=k;i:{r:{e:{A:{if((f|0)!=(e|0))f:{k:{if(n=s[f|0],(n|0)!=45||(f=f+1|0,(e|0)!=(f|0)))break k;break f}o=i[23944],i[23944]=0,M2(),f=Xi(f,k+12|0,A,-1,-1),A=w0,t=i[23944];k:{if(t){if(i[k+12>>2]!=(e|0))break k;if((t|0)==68)break e;break A}if(i[23944]=o,i[k+12>>2]==(e|0))break A}}i[r>>2]=4,f=0;break i}if(!A&f>>>0<=65535)break r}i[r>>2]=4,f=65535;break i}f=(n|0)==45?0-f|0:f}return B=k+16|0,f&65535}function G6(f,e){var r=0,A=0,k=0,n=0,t=0,o=0;n=B-16|0,B=n,A=G2(e),k=B-16|0,B=k;i:{if(A>>>0<=2147483639){r:{if(A>>>0<11){l[f+11|0]=s[f+11|0]&128|A&127,l[f+11|0]=s[f+11|0]&127,r=f;break r}o=k+8|0,A>>>0>=11?(t=A+8&-8,r=t-1|0,r=(r|0)==11?t:r):r=10,Mi(o,r+1|0),r=i[k+8>>2],i[f>>2]=r,i[f+8>>2]=i[f+8>>2]&-2147483648|i[k+12>>2]&2147483647,i[f+8>>2]=i[f+8>>2]|-2147483648,i[f+4>>2]=A}of(r,e,A),l[k+7|0]=0,l[A+r|0]=s[k+7|0],B=k+16|0;break i}o4(),P()}B=n+16|0}function mZ(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0;i:{if(t=i[e+16>>2],!t||(t=N0(t,72776,73212),!t))break i;e=i[e+20>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[r>>2]=i[t+4>>2],i[A>>2]=i[t+8>>2],i[k>>2]=i[t+12>>2],i[n>>2]=i[t+16>>2],i[f+8>>2]=i[18412],r=i[18411],i[f>>2]=i[18410],i[f+4>>2]=r;r:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break r;V[i[i[e>>2]+8>>2]](e),g(e)}return}e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560]}function BZ(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0;i:{if(t=i[e+16>>2],!t||(t=N0(t,72776,73256),!t))break i;e=i[e+20>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),i[r>>2]=i[t+4>>2],i[A>>2]=i[t+8>>2],i[k>>2]=i[t+12>>2],i[n>>2]=i[t+16>>2],i[f+8>>2]=i[18412],r=i[18411],i[f>>2]=i[18410],i[f+4>>2]=r;r:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break r;V[i[i[e>>2]+8>>2]](e),g(e)}return}e=i[18559],i[f>>2]=i[18558],i[f+4>>2]=e,i[f+8>>2]=i[18560]}function x7(f,e,r){var A=0,k=0,n=0,t=0,o=0;n=B-16|0,B=n,k=B-16|0,B=k;i:{if(e>>>0<=2147483639){r:{if(e>>>0<11){l[f+11|0]=s[f+11|0]&128|e&127,l[f+11|0]=s[f+11|0]&127,A=f;break r}o=k+8|0,e>>>0>=11?(t=e+8&-8,A=t-1|0,A=(A|0)==11?t:A):A=10,Mi(o,A+1|0),A=i[k+8>>2],i[f>>2]=A,i[f+8>>2]=i[f+8>>2]&-2147483648|i[k+12>>2]&2147483647,i[f+8>>2]=i[f+8>>2]|-2147483648,i[f+4>>2]=e}_t(A,e,r),l[k+7|0]=0,l[e+A|0]=s[k+7|0],B=k+16|0;break i}o4(),P()}return B=n+16|0,f}function LA(f){var e=0,r=0,A=0,k=0;if(i[f+20>>2]=0,r=i[f+8>>2],e=i[f+4>>2],A=r-e>>2,A>>>0>=3)for(;G(i[e>>2]),e=i[f+4>>2]+4|0,i[f+4>>2]=e,r=i[f+8>>2],A=r-e>>2,A>>>0>2;);k=512;i:switch(A-1|0){case 1:k=1024;case 0:i[f+16>>2]=k;break;default:break i}i:{if((e|0)==(r|0))break i;for(;G(i[e>>2]),e=e+4|0,(r|0)!=(e|0););if(e=i[f+8>>2],r=i[f+4>>2],(e|0)==(r|0))break i;i[f+8>>2]=e+((r-e|0)+3&-4)}f=i[f>>2],f&&G(f)}function ZZ(f){f=f|0;var e=0,r=0,A=0,k=0;i[f>>2]=73032,e=i[f+52>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function pZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;if(k=B-32|0,B=k,t=V[i[i[e>>2]+32>>2]](e,r,0)|0,A=i[e+48>>2],n=i[e+52>>2],(A|0)!=(n|0))for(;w2(r,Q[A>>1]),A2(r,s[A+2|0]),A2(r,s[A+3|0]),A=A+4|0,(n|0)!=(A|0););Y4(k+12|0,e,r,t),l[k+31|0]<0&&G(i[k+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+32|0}function WZ(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;if((r|0)>0)for(h=1<>1]<>k)+t|0,i[(u<<2)+f>>2]=t,u=m(n|1,r)+o|0,t=t+((X[(u<<1)+e>>1]<>k)|0,i[(u<<2)+f>>2]=t,n=n+2|0,w=w+2|0,(_|0)!=(w|0););if(v&&(n=m(r,n)+o|0,i[(n<<2)+f>>2]=((X[(n<<1)+e>>1]<>k)+t),o=o+1|0,(o|0)==(r|0))break}}function z7(f){var e=0,r=0,A=0,k=0,n=0;return A=B-16|0,B=A,f=$0(f),i[f+40>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,i[f>>2]=53616,B0(f+52|0,0,47),r=A+12|0,e=i[f+4>>2],i[r>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=St(i[r>>2],r1(100200)),O0(r),e&&(r=A+8|0,e=i[f+4>>2],i[r>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),k=f,n=x0(r,100200),i[k+68>>2]=n,O0(r),e=i[f+68>>2],k=f,n=V[i[i[e>>2]+28>>2]](e)|0,l[k+98|0]=n),V[i[i[f>>2]+12>>2]](f,0,4096)|0,B=A+16|0,f}function XZ(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0,h=0;u=B-32|0,B=u,o=i[e>>2],h=i[o+48>>2],o=i[o+52>>2];i:{if(!o){Dn(u+8|0,h,r,A,k,n);break i}if(i[o+4>>2]=i[o+4>>2]+1,Dn(u+8|0,h,r,A,k,n),r=i[o+4>>2],i[o+4>>2]=r-1,r)break i;V[i[i[o>>2]+8>>2]](o),g(o)}i:{if(!(i[u+12>>2]|!t)){i[t>>2]=i[u+8>>2],i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e;break i}P0(f,u+12|0,i[e>>2])}l[u+31|0]<0&&G(i[u+20>>2]),B=u+32|0}function GZ(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=70344,e=i[f+76>>2],e&&(i[f+80>>2]=e,G(e)),i[f>>2]=70224,e=i[f+60>>2],e&&(i[f+64>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function CZ(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0,Z=0;if((r|0)>0)for(u=1<>1]<>k)+t|0,i[(n<<2)+f>>2]=t,n=n+1|0,t=t+((X[(n<<1)+e>>1]<>k)|0,i[(n<<2)+f>>2]=t,o=o+2|0,w=w+2|0,(v|0)!=(w|0););if(Z&&(n=o+_|0,i[(n<<2)+f>>2]=((X[(n<<1)+e>>1]<>k)+t),h=h+1|0,(h|0)==(r|0))break}}function H7(f,e,r,A,k){var n=0,t=0,o=0;o=-1,t=A&2147483647,n=(t|0)==2147418112;i:{if((n&!r?f|e:n&(r|0)!=0|t>>>0>2147418112)||(n=k&2147483647,((n|0)==2147418112&0|n>>>0>2147418112)&(n|0)!=2147418112))break i;if(!(f|r|(n|t|e)))return 0;if(n=A&k,(n|0)>0?n=1:n=(n|0)>=0,n){if(((r|0)!=0|(A|0)!=(k|0))&(A|0)<(k|0))break i;return(f|r|(A^k|e))!=0}if(!r&(A|0)==(k|0)?f|e:(r|0)!=0&(A|0)>=(k|0)|(A|0)>(k|0))break i;o=(f|r|(A^k|e))!=0}return o}function VZ(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=70344,e=i[f+76>>2],e&&(i[f+80>>2]=e,G(e)),i[f>>2]=70224,e=i[f+60>>2],e&&(i[f+64>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function IZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,R4(r,e+56|0),R4(r,e+68|0),R4(r,e+80|0),R4(r,e+92|0),i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function h2(f,e){var r=0,A=0,k=0,n=0;i:{if(s[f+11|0]>>>7|0?r=i[f+4>>2]:r=s[f+11|0]&127,r>>>0>>0){k=B-16|0,B=k,r=e-r|0,r&&(A=s[f+11|0]>>>7|0?(i[f+8>>2]&2147483647)-1|0:10,s[f+11|0]>>>7|0?e=i[f+4>>2]:e=s[f+11|0]&127,A-e>>>0>>0&&HA(f,A,e+(r-A|0)|0,e,e),s[f+11|0]>>>7|0?A=i[f>>2]:A=f,_t(A+e|0,r,0),n=f,f=e+r|0,wi(n,f),l[k+15|0]=0,l[f+A|0]=s[k+15|0]),B=k+16|0;break i}r=f,s[f+11|0]>>>7|0&&(f=i[f>>2]),Zt(r,f,e)}}function X8(f,e,r,A,k,n){var t=0,o=0,u=0;o=B-16|0,B=o;i:{r:{if(!f||(t=i[k+12>>2],u=r-e>>2,(u|0)>0&&(V[i[i[f>>2]+48>>2]](f,e,u)|0)!=(u|0)))break r;if(e=A-e>>2,t=(e|0)<(t|0)?t-e|0:0,(t|0)>0){e=W7(o+4|0,t,n);e:{if(s[e+11|0]>>>7|0){n=i[e>>2];break e}n=e}if(n=V[i[i[f>>2]+48>>2]](f,n,t)|0,l1(e),(n|0)!=(t|0))break r}if(e=A-r>>2,(e|0)>0&&(V[i[i[f>>2]+48>>2]](f,r,e)|0)!=(e|0))break r;i[k+12>>2]=0;break i}f=0}return B=o+16|0,f}function QZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0;return n=V[i[i[f>>2]+8>>2]](f)|0,A=w0,n=r+n|0,A=n>>>0>>0?A+1|0:A,o=i[f+12>>2],k=o,u=i[f+8>>2],(A|0)<=(k|0)&u>>>0>=n>>>0|(A|0)<(k|0)&&(k=B-16|0,B=k,f=i[f+4>>2],i[f+4>>2]=0,X3(k+15|0,f),t=4,s[k+15|0]&&(t=i[(f+i[i[f>>2]-12>>2]|0)+24>>2],e=V[i[i[t>>2]+32>>2]](t,e,r)|0,i[f+4>>2]=e,t=(e|0)!=(r|0)?6:0),Oo(f+i[i[f>>2]-12>>2]|0,t),B=k+16|0),(A|0)<=(o|0)&n>>>0<=u>>>0|(A|0)<(o|0)}function G8(f,e,r,A,k,n){var t=0,o=0,u=0;o=B-16|0,B=o;i:{r:{if(!f||(t=i[k+12>>2],u=r-e|0,(u|0)>0&&(V[i[i[f>>2]+48>>2]](f,e,u)|0)!=(u|0)))break r;if(e=A-e|0,t=(e|0)<(t|0)?t-e|0:0,(t|0)>0){e=x7(o+4|0,t,n);e:{if(s[e+11|0]>>>7|0){n=i[e>>2];break e}n=e}if(n=V[i[i[f>>2]+48>>2]](f,n,t)|0,z0(e),(n|0)!=(t|0))break r}if(e=A-r|0,(e|0)>0&&(V[i[i[f>>2]+48>>2]](f,r,e)|0)!=(e|0))break r;i[k+12>>2]=0;break i}f=0}return B=o+16|0,f}function yZ(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;o=B-32|0,B=o,t=i[e>>2],u=i[t+48>>2],t=i[t+52>>2];i:{if(!t){f9(o+8|0,u,r,A,k);break i}if(i[t+4>>2]=i[t+4>>2]+1,f9(o+8|0,u,r,A,k),r=i[t+4>>2],i[t+4>>2]=r-1,r)break i;V[i[i[t>>2]+8>>2]](t),g(t)}i:{if(!(i[o+12>>2]|!n)){i[n>>2]=i[o+8>>2],i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e;break i}P0(f,o+12|0,i[e>>2])}l[o+31|0]<0&&G(i[o+20>>2]),B=o+32|0}function FZ(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;o=B-32|0,B=o,t=i[e>>2],u=i[t+48>>2],t=i[t+52>>2];i:{if(!t){Rn(o+8|0,u,r,A,k);break i}if(i[t+4>>2]=i[t+4>>2]+1,Rn(o+8|0,u,r,A,k),r=i[t+4>>2],i[t+4>>2]=r-1,r)break i;V[i[i[t>>2]+8>>2]](t),g(t)}i:{if(!(i[o+12>>2]|!n)){i[n>>2]=i[o+8>>2],i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e;break i}P0(f,o+12|0,i[e>>2])}l[o+31|0]<0&&G(i[o+20>>2]),B=o+32|0}function KA(f,e){var r=0,A=0,k=0;A=B-16|0,B=A,i[A+12>>2]=e;i:{r:{r=s[f+11|0],k=r>>>7|0;e:{if(!k){r=r&127,e=1;break e}r=i[f+4>>2],e=(i[f+8>>2]&2147483647)-1|0}if((e|0)==(r|0)){Z7(f,e,1,e,e);e:if(s[f+11|0]>>>7|0)break e;break r}e:if(s[f+11|0]>>>7|0)break e;if(k)break r;e=f,l[f+11|0]=s[f+11|0]&128|r+1&127,l[f+11|0]=s[f+11|0]&127;break i}e=i[f>>2],i[f+4>>2]=r+1}f=(r<<2)+e|0,i[f>>2]=i[A+12>>2],i[A+8>>2]=0,i[f+4>>2]=i[A+8>>2],B=A+16|0}function T7(f,e,r,A){var k=0,n=0,t=0,o=0;k=B-16|0,B=k;i:{r:{e:{A:{if((f|0)!=(e|0))f:{k:{if(n=s[f|0],(n|0)!=45||(f=f+1|0,(e|0)!=(f|0)))break k;break f}o=i[23944],i[23944]=0,M2(),f=Xi(f,k+12|0,A,-1,-1),A=w0,t=i[23944];k:{if(t){if(i[k+12>>2]!=(e|0))break k;if((t|0)==68)break e;break A}if(i[23944]=o,i[k+12>>2]==(e|0))break A}}i[r>>2]=4,f=0;break i}if(!A)break r}i[r>>2]=4,f=-1;break i}f=(n|0)==45?0-f|0:f}return B=k+16|0,f}function ie(f,e){i:{if(f){if(e>>>0<=127)break i;r:{if(!i[i[23985]>>2]){if((e&-128)==57216)break i;break r}if(e>>>0<=2047)return l[f+1|0]=e&63|128,l[f|0]=e>>>6|192,2;if(!((e&-8192)!=57344&e>>>0>=55296))return l[f+2|0]=e&63|128,l[f|0]=e>>>12|224,l[f+1|0]=e>>>6&63|128,3;if(e-65536>>>0<=1048575)return l[f+3|0]=e&63|128,l[f|0]=e>>>18|240,l[f+2|0]=e>>>6&63|128,l[f+1|0]=e>>>12&63|128,4}i[23944]=25,f=-1}else f=1;return f}return l[f|0]=e,1}function EZ(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0;if((e|0)>0)for(;;){if(k=i[(n<<2)+f>>2],k){r=i[k+20>>2];i:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[k+12>>2];i:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r)}r=i[k+4>>2];i:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r)}G(k)}if(n=n+1|0,(n|0)==(e|0))break}}function Fi(f,e){var r=0,A=0;A=f;i:{r:{if((A^e)&3){r=s[e|0];break r}if(e&3)for(;;){if(r=s[e|0],l[A|0]=r,!r)break i;if(A=A+1|0,e=e+1|0,!(e&3))break}if(r=i[e>>2],((r|16843008-r)&-2139062144)!=-2139062144)break r;for(;i[A>>2]=r,A=A+4|0,r=i[e+4>>2],e=e+4|0,((16843008-r|r)&-2139062144)==-2139062144;);}if(l[A|0]=r,!(r&255))break i;for(;r=s[e+1|0],l[A+1|0]=r,A=A+1|0,e=e+1|0,!!r;);}return f}function a7(f,e,r){var A=0,k=0,n=0,t=0,o=0;A=i[f+12>>2],k=i[f+8>>2],f=A-k>>2;i:{if((A|0)!=(k|0))for(o=f>>>0<=1?1:f;;){if(t=i[(n<<2)+k>>2],!(i[t+92>>2]!=(e|0)|i[t+108>>2]<=(r|0))&i[t+100>>2]==2)break i;if(n=n+1|0,(o|0)==(n|0))break}if(n=-1,(A|0)==(k|0))break i;for(t=f>>>0<=1?1:f,f=0;;){if(A=i[(f<<2)+k>>2],!(i[A+92>>2]!=(e|0)|i[A+108>>2]<=(r|0)|!i[A+100>>2]))return f;if(f=f+1|0,(t|0)==(f|0))break}}return n}function YZ(f){f=f|0;var e=0,r=0,A=0;r=i[f>>2],e=i[r+184>>2],r=i[r+188>>2],r&&(i[r+4>>2]=i[r+4>>2]+1);i:{if(e){f=V[i[i[e>>2]+8>>2]](e)|0;break i}if(e=i[f>>2],f=i[e+176>>2],e=i[e+180>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),f?f=V[i[i[f>>2]+8>>2]](f)|0:f=0,!e||(A=i[e+4>>2],i[e+4>>2]=A-1,A))break i;V[i[i[e>>2]+8>>2]](e),g(e)}i:{if(!r||(e=i[r+4>>2],i[r+4>>2]=e-1,e))break i;V[i[i[r>>2]+8>>2]](r),g(r)}return f|0}function C6(f,e){var r=0,A=0,k=0;A=B-16|0,B=A,l[A+15|0]=e;i:{r:{r=s[f+11|0],k=r>>>7|0;e:{if(!k){r=r&127,e=10;break e}r=i[f+4>>2],e=(i[f+8>>2]&2147483647)-1|0}if((e|0)==(r|0)){HA(f,e,1,e,e);e:if(s[f+11|0]>>>7|0)break e;break r}e:if(s[f+11|0]>>>7|0)break e;if(k)break r;e=f,l[f+11|0]=s[f+11|0]&128|r+1&127,l[f+11|0]=s[f+11|0]&127;break i}e=i[f>>2],i[f+4>>2]=r+1}f=e+r|0,l[f|0]=s[A+15|0],l[A+14|0]=0,l[f+1|0]=s[A+14|0],B=A+16|0}function JZ(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=69372,e=i[f+68>>2],e&&(i[f+72>>2]=e,G(e)),l[f+67|0]<0&&G(i[f+56>>2]),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function K1(f,e,r,A){var k=0,n=0;i:{if(s[f+11|0]>>>7|0?k=i[f+4>>2]:k=s[f+11|0]&127,!k|(r-e|0)<5)break i;te(e,r),n=r-4|0,s[f+11|0]>>>7|0?k=i[f+4>>2]:k=s[f+11|0]&127,s[f+11|0]>>>7|0&&(f=i[f>>2]),r=f,f=k+f|0;r:{for(;;){e:{if(k=l[r|0],e>>>0>=n>>>0)break e;if(!((k|0)<=0|(k|0)>=127)&(k|0)!=i[e>>2])break r;e=e+4|0,r=((f-r|0)>1)+r|0;continue}break}if((k|0)<=0|(k|0)>=127|l[r|0]>>>0>i[n>>2]-1>>>0)break i}i[A>>2]=4}}function gZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,w2(r,Q[e+48>>1]),w2(r,Q[e+50>>1]),i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function NZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,l2(r,i[e+56>>2]),l2(r,i[e+60>>2]),i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function RZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,l2(r,i[e+48>>2]),l2(r,i[e+52>>2]),i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function DZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;for(n=B-16|0,B=n;;){i:{if((r|0)<=(t|0))break i;if(A=i[f+24>>2],k=i[f+28>>2],A>>>0>=k>>>0){if((V[i[i[f>>2]+52>>2]](f,i[e>>2])|0)==-1)break i;t=t+1|0,e=e+4|0}else i[n+12>>2]=k-A>>2,i[n+8>>2]=r-t,A=B-16|0,B=A,B=A+16|0,A=n+8|0,k=n+12|0,A=i[(i[A>>2]>2]?A:k)>>2],ui(e,A,i[f+24>>2]),k=A<<2,i[f+24>>2]=k+i[f+24>>2],t=A+t|0,e=e+k|0;continue}break}return B=n+16|0,t|0}function UZ(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=69372,e=i[f+68>>2],e&&(i[f+72>>2]=e,G(e)),l[f+67|0]<0&&G(i[f+56>>2]),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function N4(f,e){var r=0,A=0,k=0,n=0,t=0;r=i[f+40>>2],k=i[f+36>>2];i:{if((r-k|0)>0)for(;;){n=i[(A<<3)+k>>2];r:{if(!n||(t=i[e>>2],!t))break r;if(V[i[i[n>>2]+24>>2]](n,t)|0)break i;k=i[f+36>>2],r=i[f+40>>2]}if(A=A+1|0,!((A|0)>3))break}r:{if(k0[f+44>>2]>r>>>0){i[r>>2]=i[e>>2],e=i[e+4>>2],i[r+4>>2]=e,e&&(i[e+4>>2]=i[e+4>>2]+1),e=r+8|0;break r}e=Q2(f+36|0,e)}i[f+40>>2]=e,A=(e-i[f+36>>2]>>3)-1|0}return A}function U1(f,e,r,A,k,n,t,o,u){var h=0,w=0,_=0,v=0;u=q0(e,r,o,u),o=w0,k=q0(A,k,n,t),u=k+u|0,A=w0+o|0,o=k>>>0>u>>>0?A+1|0:A,h=t,k=0,w=r,A=0,r=q0(t,k,r,A),t=r+u|0,u=w0+o|0,_=t,r=r>>>0>t>>>0?u+1|0:u,t=q0(n,0,e,0),o=w0,u=0,A=q0(n,u,w,A),o=o+A|0,n=w0+u|0,n=A>>>0>o>>>0?n+1|0:n,u=n+_|0,A=r,n=n>>>0>u>>>0?A+1|0:A,e=q0(e,v,h,k)+o|0,k=w0,k=e>>>0>>0?k+1|0:k,o=k+u|0,u=n,i[f+8>>2]=o,i[f+12>>2]=k>>>0>o>>>0?u+1|0:u,i[f>>2]=t,i[f+4>>2]=e}function S7(f,e){var r=0,A=0;if((f|0)==14)return i[e>>2]?16419:15105;if(r=f&65535,A=f>>16,!((r|0)!=65535|(A|0)>5))return f=i[(A<<2)+e>>2],f?f+8|0:15510;f=31341;i:{r:{e:switch(A-1|0){case 0:if(r>>>0>1)break i;f=56612;break r;case 1:if(r>>>0>49)break i;f=56624;break r;case 4:break e;default:break i}if(r>>>0>3)break i;f=56944}if(!r)return f;for(;e=s[f|0],f=f+1|0,!(!e&&(r=r-1|0,!r)););}return f}function MZ(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0;i:{if(k=V[i[i[e>>2]+68>>2]](i[e+4>>2])|0,e=i[k>>2],!e)break i;for(;;){if(v4(i[e+4>>2],r)){if(e=i[k+4>>2],k=k+4|0,e)continue;break i}break}if(i[e+8>>2]!=3){e=i[18429],i[f>>2]=i[18428],i[f+4>>2]=e,i[f+8>>2]=i[18430];return}A&&(i[A>>2]=i[e+16>>2]),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412];return}e=i[18429],i[f>>2]=i[18428],i[f+4>>2]=e,i[f+8>>2]=i[18430]}function xZ(f){f=f|0;var e=0,r=0,A=0;e=i[f>>2],r=i[e+52>>2],e=i[e+56>>2],e&&(i[e+4>>2]=i[e+4>>2]+1);i:{r:{if(r){f=e;break r}f=i[f>>2],r=i[f+44>>2],f=i[f+48>>2],f&&(i[f+4>>2]=i[f+4>>2]+1);e:{if(!e||(A=i[e+4>>2],i[e+4>>2]=A-1,A))break e;V[i[i[e>>2]+8>>2]](e),g(e)}if(r)break r;e=0;break i}e=V[i[i[r>>2]+8>>2]](r)|0}i:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break i;V[i[i[f>>2]+8>>2]](f),g(f)}return e|0}function qA(f,e,r,A){var k=0,n=0,t=0,o=0;i:{r:{if(A){if(A>>>0>=357913942)break r;if(k=m(A,12),A=U(k),i[f+4>>2]=A,i[f>>2]=A,i[f+8>>2]=A+k,(e|0)!=(r|0))for(;;){if(i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,t=i[e>>2],k=i[e+4>>2],(t|0)!=(k|0)){if(k=k-t|0,(k|0)<0)break i;n=U(k),i[A+4>>2]=n,i[A>>2]=n,o=k+n|0,i[A+8>>2]=o,l0(n,t,k),i[A+4>>2]=o}if(A=A+12|0,e=e+12|0,(r|0)==(e|0))break}i[f+4>>2]=A}return}y0(),P()}y0(),P()}function zZ(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0;n=B-16|0,B=n,e=i[e>>2],u=i[e+48>>2],e=i[e+52>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),t=U(4),i[n+4>>2]=t,o=t+4|0,i[n+12>>2]=o,i[t>>2]=k,i[n+8>>2]=o,P1(u,A,r,n+4|0),r=i[n+4>>2],r&&(i[n+8>>2]=r,G(r));i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412],B=n+16|0}function HZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,A2(r,i[e+48>>2]/90&255),i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function TZ(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0;i:{if(A)for(;;){if(A-k>>>0<=3||(n=k+4|0,k=r+k|0,k=s[k|0]|s[k+1|0]<<8|(s[k+2|0]<<16|s[k+3|0]<<24),k=k<<24|(k&65280)<<8|(k>>>8&65280|k>>>24),A-n>>>0>>0))break i;if(Tk(i[e>>2],r+n|0,k,0,0,0),k=k+n|0,!(k>>>0>>0))break}e=i[19372],i[f>>2]=i[19371],i[f+4>>2]=e,i[f+8>>2]=i[19373];return}e=i[19369],i[f>>2]=i[19368],i[f+4>>2]=e,i[f+8>>2]=i[19370]}function n4(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0,h=0;A=B-16|0,B=A,V1(A+8|0,f);i:{if(!s[A+8|0]||(n=A+4|0,k=i[(i[i[f>>2]-12>>2]+f|0)+28>>2],i[n>>2]=k,(k|0)!=100008&&(i[k+4>>2]=i[k+4>>2]+1),k=x0(n,99872),O0(n),i[A>>2]=i[(i[i[f>>2]-12>>2]+f|0)+24>>2],t=i[i[f>>2]-12>>2]+f|0,o=J6(t),u=A,h=V[i[i[k>>2]+28>>2]](k,i[A>>2],t,o,e,r)|0,i[u+4>>2]=h,i[n>>2]))break i;J4(i[i[f>>2]-12>>2]+f|0,5)}return Z1(A+8|0),B=A+16|0,f}function aZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;for(k=B-16|0,B=k;;){i:{if((r|0)<=(n|0))break i;if(A=i[f+24>>2],t=i[f+28>>2],A>>>0>=t>>>0){if((V[i[i[f>>2]+52>>2]](f,s[e|0])|0)==-1)break i;n=n+1|0,e=e+1|0}else i[k+12>>2]=t-A,i[k+8>>2]=r-n,A=B-16|0,B=A,B=A+16|0,A=k+8|0,t=k+12|0,A=i[(i[A>>2]>2]?A:t)>>2],e8(e,A,i[f+24>>2]),i[f+24>>2]=A+i[f+24>>2],n=A+n|0,e=e+A|0;continue}break}return B=k+16|0,n|0}function SZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;if(A=B-32|0,B=A,k=i[r>>2],k>>>0<2147483640){i:{r:{if(k>>>0>=11){t=(k|7)+1|0,n=U(t),i[A+16>>2]=t|-2147483648,i[A+8>>2]=n,i[A+12>>2]=k;break r}if(l[A+19|0]=k,n=A+8|0,!k)break i}l0(n,r+4|0,k)}return l[k+n|0]=0,V[f|0](A+20|0,e,A+8|0),f=U(12),i[f+8>>2]=i[A+28>>2],e=i[A+24>>2],i[f>>2]=i[A+20>>2],i[f+4>>2]=e,l[A+19|0]<0&&G(i[A+8>>2]),B=A+32|0,f|0}c2(),P()}function $A(f){var e=0,r=0,A=0,k=0;r=53,k=i[f+24>>2],e=i[f+28>>2],A=k-e|0,e=(((e-((k+6>>>0)%7|0)|0)+7>>>0)/7|0)+((A+369>>>0)%7>>>0<3)|0;i:{if((e|0)!=53){if(r=e,e)break i;r=52;r:switch(((A+6>>>0)%7|0)-4|0){case 1:if(!Vt((i[f+20>>2]%400|0)-1|0))break i;break;case 0:break r;default:break i}return 53}r:switch(((A+371>>>0)%7|0)-3|0){case 0:if(Vt(i[f+20>>2]))break i;break;case 1:break i;default:break r}r=1}return r}function OZ(f,e,r,A,k,n,t,o){if(f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,i[e+8>>2]!=1){e=i[18429],i[f>>2]=i[18428],i[f+4>>2]=e,i[f+8>>2]=i[18430];return}i:{if(!s[e+16|0]||(k&&(i[k>>2]=i[e+20>>2]),!n))break i;i[n>>2]=i[e+24>>2]}r&&(i[r>>2]=s[e+16|0]),A&&(i[A>>2]=s[e+16|0]),!o|i[e+32>>2]<=0||(i[o>>2]=i[e+28>>2]),t&&(i[t>>2]=i[e+32>>2]),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}function jZ(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;if((r|0)>0)for(o=1<>2]=(X[(t<<1)+e>>1]<>k,t=t+1|0,i[(t<<2)+f>>2]=(X[(t<<1)+e>>1]<>k,n=n+2|0,h=h+2|0,(_|0)!=(h|0););if(v&&(n=n+w|0,i[(n<<2)+f>>2]=(X[(n<<1)+e>>1]<>k),u=u+1|0,(u|0)==(r|0))break}}function PZ(f,e){f=f|0,e=e|0;var r=0;if((e|0)<8)return 3;i:{r:{if(s[f+4|0]!=102|s[f+5|0]!=116|(s[f+6|0]!=121|s[f+7|0]!=112))break r;if(e>>>0<12)return 3;r=1,f=p3(f,e);e:{if((f|0)<=1781689192){if((f|0)==1635150182|(f|0)==1751476579)break r;if((f|0)!=1751476600)break e;break r}A:switch(f-1835623985|0){case 0:case 1:break i;default:break A}if((f|0)==1781689193|(f|0)==1785750887)break r}r=2}return r|0}return 3}function L0(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;r=B-16|0,B=r,V1(r+8|0,f);i:{if(!s[r+8|0]||(k=r+4|0,A=i[(i[i[f>>2]-12>>2]+f|0)+28>>2],i[k>>2]=A,(A|0)!=100008&&(i[A+4>>2]=i[A+4>>2]+1),A=x0(k,99872),O0(k),i[r>>2]=i[(i[i[f>>2]-12>>2]+f|0)+24>>2],n=i[i[f>>2]-12>>2]+f|0,t=J6(n),o=r,u=V[i[i[A>>2]+24>>2]](A,i[r>>2],n,t,e)|0,i[o+4>>2]=u,i[k>>2]))break i;J4(i[i[f>>2]-12>>2]+f|0,5)}return Z1(r+8|0),B=r+16|0,f}function re(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;r=B-16|0,B=r,V1(r+8|0,f);i:{if(!s[r+8|0]||(k=r+4|0,A=i[(i[i[f>>2]-12>>2]+f|0)+28>>2],i[k>>2]=A,(A|0)!=100008&&(i[A+4>>2]=i[A+4>>2]+1),A=x0(k,99872),O0(k),i[r>>2]=i[(i[i[f>>2]-12>>2]+f|0)+24>>2],n=i[i[f>>2]-12>>2]+f|0,t=J6(n),o=r,u=V[i[i[A>>2]+12>>2]](A,i[r>>2],n,t,e)|0,i[o+4>>2]=u,i[k>>2]))break i;J4(i[i[f>>2]-12>>2]+f|0,5)}return Z1(r+8|0),B=r+16|0,f}function H0(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;r=B-16|0,B=r,V1(r+8|0,f);i:{if(!s[r+8|0]||(k=r+4|0,A=i[(i[i[f>>2]-12>>2]+f|0)+28>>2],i[k>>2]=A,(A|0)!=100008&&(i[A+4>>2]=i[A+4>>2]+1),A=x0(k,99872),O0(k),i[r>>2]=i[(i[i[f>>2]-12>>2]+f|0)+24>>2],n=i[i[f>>2]-12>>2]+f|0,t=J6(n),o=r,u=V[i[i[A>>2]+16>>2]](A,i[r>>2],n,t,e)|0,i[o+4>>2]=u,i[k>>2]))break i;J4(i[i[f>>2]-12>>2]+f|0,5)}return Z1(r+8|0),B=r+16|0,f}function Q4(f,e){var r=0,A=0,k=0,n=0,t=0,o=0,u=0;r=B-16|0,B=r,V1(r+8|0,f);i:{if(!s[r+8|0]||(k=r+4|0,A=i[(i[i[f>>2]-12>>2]+f|0)+28>>2],i[k>>2]=A,(A|0)!=100008&&(i[A+4>>2]=i[A+4>>2]+1),A=x0(k,99872),O0(k),i[r>>2]=i[(i[i[f>>2]-12>>2]+f|0)+24>>2],n=i[i[f>>2]-12>>2]+f|0,t=J6(n),o=r,u=V[i[i[A>>2]+32>>2]](A,i[r>>2],n,t,e)|0,i[o+4>>2]=u,i[k>>2]))break i;J4(i[i[f>>2]-12>>2]+f|0,5)}return Z1(r+8|0),B=r+16|0,f}function d4(f,e){var r=0,A=0,k=0;if((e|0)<=8){if(!e)return 0;A=i[f+16>>2]<>2]=A,r=Q[f+20>>1]+e|0,X[f+20>>1]=r,r=r<<16>>16;i:{if((r|0)<0||(k=i[f+4>>2],k>>>0>=k0[f+8>>2]))break i;i[f+4>>2]=k+1,k=s[k|0],X[f+20>>1]=r-8,A=k<>2]<<7,r=(A>>>0)/(k>>>0)|0,e=1<=(e|0)&&(r=e-1|0),i[f+16>>2]=A-m(r,k),r}for(A=e-8|0,e=_9(f);e=x1(f)|e<<1,A=A-1|0,!!A;);return e}function O7(f,e){var r=0,A=0,k=0,n=0,t=0;k=B-16|0,B=k,t=i[23985],i[e+72>>2]<=0&&z3(e),i[23985]=i[e+136>>2],r=-1,i[e+4>>2]||(g6(e),A=!i[e+4>>2]);i:{if(A|(f|0)==-1||(A=ie(k+12|0,f),(A|0)<0)||(n=i[e+4>>2],n>>>0<(A+i[e+44>>2]|0)-8>>>0))break i;r:{if(f>>>0<=127){r=n-1|0,i[e+4>>2]=r,l[r|0]=f;break r}r=n-A|0,i[e+4>>2]=r,l0(r,k+12|0,A)}i[e>>2]=i[e>>2]&-17,r=f}return i[23985]=t,B=k+16|0,(r|0)!=-1}function LZ(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0,h=0,w=0;if(!(k&1)){if(!((n|0)<=0|(k|0)<=0))for(;;){for(u=m(e,o)+f|0,h=(m(A,o)<<1)+r|0,w=0;t=X[h>>1]+32>>6,t=(t|0)>=255?255:t,l[u|0]=(t|0)>0?t:0,t=X[h+2>>1]+32>>6,t=(t|0)>=255?255:t,l[u+1|0]=(t|0)>0?t:0,h=h+4|0,u=u+2|0,w=w+2|0,(w|0)<(k|0););if(o=o+1|0,(o|0)==(n|0))break}return}C0(17190,13955,40,7924),P()}function KZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,w2(r,Q[e+48>>1]),i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function qZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,A2(r,s[e+48|0]),i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function $Z(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,D4(r,e- -64|0),i[r+12>>2]=k,V[i[i[e>>2]+36>>2]](A+12|0,e,r,i[r+4>>2]-(i[r>>2]+k|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2],l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function V6(f,e,r){var A=Y(0),k=Y(0),n=Y(0),t=Y(0),o=0,u=Y(0);o=B-16|0,B=o,Qn(o+8|0,e,r),A=Z0[o+12>>2],k=Z0[o+8>>2];i:{if(!(A!=Y(0)|k!=Y(0))){k=Y(-.714136004447937),A=Y(-.34413599967956543),n=Y(1.7719999551773071),t=Y(1.4019999504089355);break i}t=Y(Y(1)-k),u=Y(Y(A+k)+Y(-1)),k=Y(Y(Y(k+k)*t)/u),n=Y(Y(1)-A),A=Y(Y(Y(A+A)*n)/u),n=Y(n+n),t=Y(t+t)}Z0[f+16>>2]=n,Z0[f+12>>2]=k,Z0[f+8>>2]=A,Z0[f+4>>2]=t,l[f|0]=1,B=o+16|0}function j7(f){var e=0,r=0,A=0,k=0;e=i[f+28>>2],e&&V[e|0](),e=U(4),i[e>>2]=f,r=U(20),i[r+16>>2]=e,A=i[19573];i:{if(!A){f=78292,e=78292;break i}for(k=i[f+12>>2];;){if(f=A,i[i[i[f+16>>2]>>2]+12>>2]<(k|0)){if(e=f,A=i[f>>2],A)continue;break i}if(A=i[f+4>>2],!A)break}e=f+4|0}i[r+8>>2]=f,i[r>>2]=0,i[r+4>>2]=0,i[e>>2]=r,f=i[i[19572]>>2],f&&(i[19572]=f,r=i[e>>2]),D1(i[19573],r),i[19574]=i[19574]+1}function bZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;k=i[f>>2],A=i[k+72>>2],k=i[k+76>>2];i:{if((A|0)!=(k|0))for(n=i[i[f+8>>2]>>2];;){if(f=i[A>>2],i[f>>2]==(n|0)){if(A=i[A+4>>2],!A){A=0;break i}i[A+4>>2]=i[A+4>>2]+1;break i}if(A=A+8|0,(k|0)==(A|0))break}A=0,f=0}e&&(i[e>>2]=i[f+4>>2]),r&&(i[r>>2]=i[f+8>>2]);i:{if(!A||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break i;V[i[i[A>>2]+8>>2]](A),g(A)}}function bA(){var f=0,e=0,r=0;f=i[19359],f&&V[f|0](),f=i[19570];i:{r:{if(!f){e=78280,r=78280;break r}for(;;){if(r=f,e=i[f+16>>2],e>>>0>77428){if(e=f,f=i[f>>2],f)continue;break r}if(e>>>0>=77428)break i;if(f=i[r+4>>2],!f)break}e=r+4|0}f=U(20),i[f+8>>2]=r,i[f>>2]=0,i[f+4>>2]=0,i[f+16>>2]=77428,i[e>>2]=f,r=i[i[19569]>>2],r&&(i[19569]=r,f=i[e>>2]),D1(i[19570],f),i[19571]=i[19571]+1}j7(77496)}function I6(f){f=f|0;var e=0,r=0,A=0;i[f>>2]=53616,r=B-16|0,B=r,e=i[f+64>>2],e&&(i[r+4>>2]=980,e=o1(r+8|0,e,r+4|0),V[i[i[f>>2]+24>>2]](f)|0,A=i[e>>2],i[e>>2]=0,B3(A),i[f+64>>2]=0,V[i[i[f>>2]+12>>2]](f,0,0)|0,A=i[e>>2],i[e>>2]=0,A&&V[i[e+4>>2]](A)|0),B=r+16|0;i:{if(s[f+96|0]!=1||(e=i[f+32>>2],!e))break i;G(e)}i:{if(s[f+97|0]!=1||(e=i[f+56>>2],!e))break i;G(e)}return K0(f)|0}function oi(f,e,r){var A=0,k=0;i:{A=i[e+56>>2],e=i[e+60>>2];r:{if((A|0)!=(e|0))for(;;){if(!(i[A+40>>2]!=(r|0)|i[A+16>>2]!=1684630887)){if(i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,e=i[A+48>>2],r=i[A+44>>2],(e|0)==(r|0))break r;if(e=e-r|0,(e|0)<0)break i;A=U(e),i[f>>2]=A,k=e+A|0,i[f+8>>2]=k,l0(A,r,e),i[f+4>>2]=k;return}if(A=A+56|0,(e|0)==(A|0))break}i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0}return}y0(),P()}function dA(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-32|0,B=A;i:{r:{if(k=i[19586],!k)break r;for(n=78344;t=k0[k+16>>2]>>0,n=t?n:k,k=i[(t<<2)+k>>2],!!k;);if((n|0)==78344|k0[n+16>>2]>r>>>0)break r;i[e+12>>2]=r,P0(f,78256,0);break i}if(i[e+12>>2]=2,l[A|0]=0,l[A+11|0]=0,e=f,f=r0(A+12|0,2,135,A),P0(e,f,0),l[f+19|0]<0&&G(i[f+8>>2]),l[A+11|0]>=0)break i;G(i[A>>2])}B=A+32|0}function dZ(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0;n=B-16|0,B=n,o=i[f>>2],t=i[o+112>>2],k=(i[o+116>>2]-t|0)/20|0;i:{if(!A||(A=(e|0)>=(k|0),k=0,A))break i;for(;A=i[f>>2],P0(n+4|0,m(e+k|0,20)+t|0,A?A+8|0:0),A=m(k,12)+r|0,i[A+8>>2]=i[n+12>>2],t=i[n+8>>2],i[A>>2]=i[n+4>>2],i[A+4>>2]=t,k=k+1|0,t=i[o+112>>2],(k+e|0)<((i[o+116>>2]-t|0)/20|0););}return B=n+16|0,k|0}function cZ(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-32|0,B=A,c7(A,e,r),l[A+19|0]<0&&G(i[A+8>>2]),k=e,n=B2(r),l[k+56|0]=n;i:{if(s[r+20|0]==1){if(l[A+20|0]=0,l[A+31|0]=0,r0(f,2,100,A+20|0),l[A+31|0]>=0)break i;G(i[A+20>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function Q6(f,e){var r=0,A=0,k=0,n=0,t=0;i:{if((e|0)<=0)break i;for(t=i[f+12>>2]<<7,A=Q[f+20>>1],r=i[f+16>>2];;){A=A+1|0,X[f+20>>1]=A,r=r<<1,i[f+16>>2]=r,A=A<<16>>16;r:{if((A|0)<0||(A=65528,X[f+20>>1]=65528,n=i[f+4>>2],n>>>0>=k0[f+8>>2]))break r;i[f+4>>2]=n+1,r=s[n|0]|r,i[f+16>>2]=r}if(r>>>0>>0)break i;if(r=r-t|0,i[f+16>>2]=r,k=k+1|0,(k|0)==(e|0))break}k=e}return(e|0)>(k|0)?k:e}function cA(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-32|0,B=A;i:{r:{if(k=i[19580],!k)break r;for(n=78320;t=k0[k+16>>2]>>0,n=t?n:k,k=i[(t<<2)+k>>2],!!k;);if((n|0)==78320|k0[n+16>>2]>r>>>0)break r;i[e+4>>2]=r,P0(f,78256,0);break i}if(i[e+4>>2]=2,l[A|0]=0,l[A+11|0]=0,e=f,f=r0(A+12|0,2,133,A),P0(e,f,0),l[f+19|0]<0&&G(i[f+8>>2]),l[A+11|0]>=0)break i;G(i[A>>2])}B=A+32|0}function R4(f,e){var r=0,A=0,k=0,n=0,t=0;if(A=i[e+4>>2],r=l[e+11|0],t=(i[f+12>>2]+((r|0)<0?A:r)|0)+1|0,k=i[f+4>>2]-i[f>>2]|0,t>>>0>k>>>0&&(L2(f,t-k|0),A=i[e+4>>2],r=s[e+11|0]),k=r,r=r<<24>>24<0,r?A:k)for(;r=s[(r?i[e>>2]:e)+n|0],A=i[f+12>>2],i[f+12>>2]=A+1,l[A+i[f>>2]|0]=r,A=l[e+11|0],r=A>>>31|0,n=n+1|0,n>>>0<((A|0)<0?i[e+4>>2]:A)>>>0;);e=i[f+12>>2],i[f+12>>2]=e+1,l[e+i[f>>2]|0]=0}function i3(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-32|0,B=A;i:{r:{if(k=i[19583],!k)break r;for(n=78332;t=k0[k+16>>2]>>0,n=t?n:k,k=i[(t<<2)+k>>2],!!k;);if((n|0)==78332|k0[n+16>>2]>r>>>0)break r;i[e+8>>2]=r,P0(f,78256,0);break i}if(i[e+8>>2]=2,l[A|0]=0,l[A+11|0]=0,e=f,f=r0(A+12|0,2,134,A),P0(e,f,0),l[f+19|0]<0&&G(i[f+8>>2]),l[A+11|0]>=0)break i;G(i[A>>2])}B=A+32|0}function ip(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;return f=B-256|0,B=f,i[f+248>>2]=37,i[f+252>>2]=0,t=f+248|0,H8(t|1,7540,1,i[r+4>>2]),o=M2(),i[f>>2]=k,i[f+4>>2]=n,k=f+224|0,t=b1(k,24,o,t,f)+k|0,u=X4(k,t,r),o=f+20|0,n=i[r+28>>2],i[o>>2]=n,(n|0)!=100008&&(i[n+4>>2]=i[n+4>>2]+1),n=k,k=f+32|0,Mr(n,u,t,k,f+28|0,f+24|0,o),O0(o),e=X8(e,k,i[f+28>>2],i[f+24>>2],r,A),B=f+256|0,e|0}function rp(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;return f=B-256|0,B=f,i[f+248>>2]=37,i[f+252>>2]=0,t=f+248|0,H8(t|1,7540,0,i[r+4>>2]),o=M2(),i[f>>2]=k,i[f+4>>2]=n,k=f+224|0,t=b1(k,24,o,t,f)+k|0,u=X4(k,t,r),o=f+20|0,n=i[r+28>>2],i[o>>2]=n,(n|0)!=100008&&(i[n+4>>2]=i[n+4>>2]+1),n=k,k=f+32|0,Mr(n,u,t,k,f+28|0,f+24|0,o),O0(o),e=X8(e,k,i[f+28>>2],i[f+24>>2],r,A),B=f+256|0,e|0}function ep(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;return f=B-112|0,B=f,i[f+104>>2]=37,i[f+108>>2]=0,t=f+104|0,H8(t|1,7540,1,i[r+4>>2]),o=M2(),i[f>>2]=k,i[f+4>>2]=n,k=f+80|0,t=b1(k,24,o,t,f)+k|0,u=X4(k,t,r),o=f+20|0,n=i[r+28>>2],i[o>>2]=n,(n|0)!=100008&&(i[n+4>>2]=i[n+4>>2]+1),n=k,k=f+32|0,xr(n,u,t,k,f+28|0,f+24|0,o),O0(o),e=G8(e,k,i[f+28>>2],i[f+24>>2],r,A),B=f+112|0,e|0}function Ap(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;return f=B-112|0,B=f,i[f+104>>2]=37,i[f+108>>2]=0,t=f+104|0,H8(t|1,7540,0,i[r+4>>2]),o=M2(),i[f>>2]=k,i[f+4>>2]=n,k=f+80|0,t=b1(k,24,o,t,f)+k|0,u=X4(k,t,r),o=f+20|0,n=i[r+28>>2],i[o>>2]=n,(n|0)!=100008&&(i[n+4>>2]=i[n+4>>2]+1),n=k,k=f+32|0,xr(n,u,t,k,f+28|0,f+24|0,o),O0(o),e=G8(e,k,i[f+28>>2],i[f+24>>2],r,A),B=f+112|0,e|0}function _0(f,e,r){var A=0,k=0,n=0,t=0;k=B-16|0,B=k;i:{r:{if(r>>>0<11){A=f,l[f+11|0]=s[f+11|0]&128|r&127,l[f+11|0]=s[f+11|0]&127;break r}if(r>>>0>2147483639)break i;t=k+8|0,r>>>0>=11?(n=r+8&-8,A=n-1|0,A=(A|0)==11?n:A):A=10,Mi(t,A+1|0),A=i[k+8>>2],i[f>>2]=A,i[f+8>>2]=i[f+8>>2]&-2147483648|i[k+12>>2]&2147483647,i[f+8>>2]=i[f+8>>2]|-2147483648,i[f+4>>2]=r}e8(e,r+1|0,A),B=k+16|0;return}o4(),P()}function P7(f,e,r,A){var k=0,n=0;i:{if(A>>>0>=3){i[23944]=28;break i}r:{if((A|0)!=1||(k=i[f+8>>2],!k))break r;n=e,k=k-i[f+4>>2]|0,e=e-k|0,r=r-((k>>31)+(k>>>0>n>>>0)|0)|0}if(i[f+20>>2]!=i[f+28>>2]&&(V[i[f+36>>2]](f,0,0)|0,!i[f+20>>2])||(i[f+28>>2]=0,i[f+16>>2]=0,i[f+20>>2]=0,V[i[f+40>>2]](f,e,r,A)|0,(w0|0)<0))break i;return i[f+4>>2]=0,i[f+8>>2]=0,i[f>>2]=i[f>>2]&-17,0}return-1}function L7(f,e){var r=0,A=0,k=0;i:{if((f|0)!=(e|0)){r=i[e+4>>2];r:{if(!r){r=0;break r}if(i[f+8>>2]<<5>>>0>>0){if(A=i[f>>2],A&&(G(A),i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,r=i[e+4>>2]),(r|0)<0)break i;r=(r-1>>>5|0)+1|0,A=U(r<<2),i[f+8>>2]=r,i[f+4>>2]=0,i[f>>2]=A,r=i[e+4>>2]}if(A=i[e>>2],k=(A+(r-1>>>3&536870908)|0)+4|0,(k|0)==(A|0))break r;F2(i[f>>2],A,k-A|0),r=i[e+4>>2]}i[f+4>>2]=r}return}y0(),P()}function fp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=69672,e=i[f+56>>2],e&&(i[f+60>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function kp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=70104,e=i[f+64>>2],e&&(i[f+68>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function np(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=70224,e=i[f+60>>2],e&&(i[f+64>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function tp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=74368,e=i[f+60>>2],e&&(i[f+64>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function op(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=74548,e=i[f+48>>2],e&&(i[f+52>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function lp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=74608,e=i[f+48>>2],e&&(i[f+52>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function up(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=74668,e=i[f+48>>2],e&&(i[f+52>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function sp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=74788,e=i[f+56>>2],e&&(i[f+60>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function hp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=68664,e=i[f+48>>2],e&&(i[f+52>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function wp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=68724,e=i[f+56>>2],e&&(i[f+60>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function K7(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0;l[f+44|0]=1,l[f|0]=1,pn(f,e);i:{if((r|0)<2)break i;for(k=r-1|0,t=f+52|0;n=m(A,52)+t|0,o=n,u=u0(e,1),l[o|0]=u,o=n,u=u0(e,1),l[o+44|0]=u,A=A+1|0,(k|0)!=(A|0););if(r-2>>>0<7)for(A=k;ni(e,2),A=A+1|0,(A|0)!=8;);if((r|0)<2)break i;for(f=f+52|0,A=0;pn(f+m(A,52)|0,e),A=A+1|0,(k|0)!=(A|0););}}function _p(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=69672,e=i[f+56>>2],e&&(i[f+60>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function vp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=70104,e=i[f+64>>2],e&&(i[f+68>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function mp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=74368,e=i[f+60>>2],e&&(i[f+64>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function Bp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=74548,e=i[f+48>>2],e&&(i[f+52>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function q7(f){var e=0,r=0,A=0;e=i[f+8>>2],e&&V[e|0](),e=i[19570];i:{r:{if(!e){r=78280,A=78280;break r}for(;;){if(A=e,r=i[e+16>>2],r>>>0>f>>>0){if(r=e,e=i[e>>2],e)continue;break r}if(f>>>0<=r>>>0)break i;if(e=i[A+4>>2],!e)break}r=A+4|0}e=U(20),i[e+8>>2]=A,i[e>>2]=0,i[e+4>>2]=0,i[e+16>>2]=f,i[r>>2]=e,f=i[i[19569]>>2],f&&(i[19569]=f,e=i[r>>2]),D1(i[19570],e),i[19571]=i[19571]+1}}function Zp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=74608,e=i[f+48>>2],e&&(i[f+52>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function pp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=74668,e=i[f+48>>2],e&&(i[f+52>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function Wp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=74788,e=i[f+56>>2],e&&(i[f+60>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function ee(f,e,r){var A=0,k=0,n=0;A=i[r+16>>2];i:{if(!A){if(G3(r))break i;A=i[r+16>>2]}if(k=i[r+20>>2],A-k>>>0>>0)return V[i[r+36>>2]](r,f,e)|0;r:{e:{if(!e|i[r+80>>2]<0)break e;for(A=e;;){if(n=f+A|0,s[n-1|0]!=10){if(A=A-1|0,A)continue;break e}break}if(k=V[i[r+36>>2]](r,f,A)|0,k>>>0>>0)break i;e=e-A|0,k=i[r+20>>2];break r}n=f,A=0}l0(k,n,e),i[r+20>>2]=i[r+20>>2]+e,k=e+A|0}return k}function $7(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=70224,e=i[f+60>>2],e&&(i[f+64>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function Xp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=68664,e=i[f+48>>2],e&&(i[f+52>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function Gp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=68724,e=i[f+56>>2],e&&(i[f+60>>2]=e,G(e)),i[f>>2]=68616,e=i[f+36>>2],e){if(r=e,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){r=i[A-4>>2];i:{if(!r||(k=i[r+4>>2],i[r+4>>2]=k-1,k))break i;V[i[i[r>>2]+8>>2]](r),g(r)}if(A=A-8|0,(e|0)==(A|0))break}r=i[f+36>>2]}i[f+40>>2]=e,G(r)}i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function Cp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=70524,l[f+67|0]<0&&G(i[f+56>>2]),i[f>>2]=68616,r=i[f+36>>2],r){if(e=r,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){e=i[A-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(A=A-8|0,(r|0)==(A|0))break}e=i[f+36>>2]}i[f+40>>2]=r,G(e)}return i[f>>2]=68500,r=i[f+20>>2],r&&(i[f+24>>2]=r,G(r)),f|0}function Vp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=68844,l[f+87|0]<0&&G(i[f+76>>2]),i[f>>2]=68616,r=i[f+36>>2],r){if(e=r,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){e=i[A-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(A=A-8|0,(r|0)==(A|0))break}e=i[f+36>>2]}i[f+40>>2]=r,G(e)}return i[f>>2]=68500,r=i[f+20>>2],r&&(i[f+24>>2]=r,G(r)),f|0}function b7(f,e,r,A){var k=0,n=0,t=0;k=B-16|0,B=k,t=i[e+48>>2],A=i[i[A>>2]+20>>2],r=i[i[r>>2]+20>>2],e=U(4),i[k+4>>2]=e,n=e+4|0,i[k+12>>2]=n,i[e>>2]=r,i[k+8>>2]=n,P1(t,A,1953000802,k+4|0),e=i[k+4>>2],e&&(i[k+8>>2]=e,G(e)),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=k+16|0}function Ip(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;for(var n=0,t=0,o=0,u=0,h=0,w=0;;){i:{if((r|0)==(A|0)|k>>>0<=u>>>0)break i;o=1,n=B-16|0,B=n,i[n+12>>2]=i[f+8>>2],t=S4(n+8|0,n+12|0),h=B6(0,r,A-r|0,e||99836),t=i[t>>2],t&&(i[23985]=(t|0)==-1?95820:t),B=n+16|0;r:switch(h+2|0){default:o=h;break;case 0:case 1:break i;case 2:break r}u=u+1|0,w=o+w|0,r=r+o|0;continue}break}return w|0}function Qp(f,e){f=f|0,e=e|0;var r=0,A=0;r=i[f+24>>2],r>>>0>k0[f+44>>2]&&(i[f+44>>2]=r);i:{if(r=i[f+8>>2],A=i[f+12>>2],r>>>0>=A>>>0)break i;if((e|0)==-1)return i[f+16>>2]=i[f+44>>2],i[f+12>>2]=A-1,i[f+8>>2]=r,((e|0)!=-1?e:0)|0;if(A=i[f+12>>2]-1|0,!(s[f+48|0]&16)&s[A|0]!=(e&255))break i;return r=i[f+8>>2],i[f+16>>2]=i[f+44>>2],i[f+12>>2]=A,i[f+8>>2]=r,l[i[f+12>>2]]=e<<24>>24,e|0}return-1}function yp(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0,u=0,h=0;if((r|0)>0)for(u=r&2147483646,h=r&1;;){if(A=0,k=0,o=0,(r|0)!=1)for(;t=m(r,A)+n|0,k=X[(t<<1)+e>>1]+k|0,i[(t<<2)+f>>2]=k,t=m(A|1,r)+n|0,k=k+X[(t<<1)+e>>1]|0,i[(t<<2)+f>>2]=k,A=A+2|0,o=o+2|0,(u|0)!=(o|0););if(h&&(A=m(r,A)+n|0,i[(A<<2)+f>>2]=X[(A<<1)+e>>1]+k),n=n+1|0,(n|0)==(r|0))break}}function Fp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=70524,l[f+67|0]<0&&G(i[f+56>>2]),i[f>>2]=68616,r=i[f+36>>2],r){if(e=r,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){e=i[A-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(A=A-8|0,(r|0)==(A|0))break}e=i[f+36>>2]}i[f+40>>2]=r,G(e)}i[f>>2]=68500,r=i[f+20>>2],r&&(i[f+24>>2]=r,G(r)),G(f)}function Ep(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-16|0,B=A,k=e,n=D0(r),i[k+48>>2]=n,k=e,n=D0(r),i[k+52>>2]=n;i:{if(s[r+20|0]==1){if(l[A+4|0]=0,l[A+15|0]=0,r0(f,2,100,A+4|0),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+16|0}function Yp(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-16|0,B=A,k=e,n=t2(r),X[k+48>>1]=n,k=e,n=t2(r),X[k+50>>1]=n;i:{if(s[r+20|0]==1){if(l[A+4|0]=0,l[A+15|0]=0,r0(f,2,100,A+4|0),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+16|0}function Jp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=68844,l[f+87|0]<0&&G(i[f+76>>2]),i[f>>2]=68616,r=i[f+36>>2],r){if(e=r,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){e=i[A-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(A=A-8|0,(r|0)==(A|0))break}e=i[f+36>>2]}i[f+40>>2]=r,G(e)}i[f>>2]=68500,r=i[f+20>>2],r&&(i[f+24>>2]=r,G(r)),G(f)}function d7(f,e,r,A){var k=0,n=0,t=0;k=B-16|0,B=k;i:{r:{if((f|0)!=(e|0)){t=i[23944],i[23944]=0,M2(),f=Xi(f,k+12|0,A,0,-2147483648),A=w0,n=i[23944];e:{if(n){if(i[k+12>>2]!=(e|0))break e;if((n|0)==68)break r;break i}if(i[23944]=t,i[k+12>>2]==(e|0))break i}}i[r>>2]=4,f=0,A=0;break i}if(i[r>>2]=4,!!f&(A|0)>=0|(A|0)>0){f=-1,A=2147483647;break i}f=0,A=-2147483648}return B=k+16|0,w0=A,f}function c7(f,e,r){var A=0,k=0;A=B-16|0,B=A,k=D0(r),i[e+52>>2]=k&16777215,l[e+48|0]=k>>>24,i[e+32>>2]=i[e+32>>2]+4;i:{if(s[r+20|0]==1){if(l[A+4|0]=0,l[A+15|0]=0,r0(f,2,100,A+4|0),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+16|0}function i9(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0;k=B-16|0,B=k,n=i[f+4>>2],A=i[r>>2]-i[f>>2]|0;i:{if(A>>>0<2147483647){A=A<<1;break i}A=-1}if(t=A>>>0<=1?1:A,o=i[e>>2],u=i[f>>2],A=Er((n|0)!=1095?i[f>>2]:0,t),A){(n|0)!=1095&&(i[f>>2]=0),i[k+4>>2]=1094,A=o1(k+8|0,A,k+4|0),yt(f,A),n=i[A>>2],i[A>>2]=0,n&&V[i[A+4>>2]](n),i[e>>2]=i[f>>2]+(o-u|0),i[r>>2]=t+i[f>>2],B=k+16|0;return}u1(),P()}function r3(f,e){var r=0,A=0,k=0,n=0;i:{if((e|0)==10){if(A=255,f=i[f+36>>2]-10|0,f>>>0>=6)break i;e=f<<3,f=e&31,(e&63)>>>0>=32?A=16432>>>f|0:A=((1<>>f;break i}if(r=i[f+64>>2],!r)break i;for(k=f- -64|0,f=k;n=i[r+16>>2]<(e|0),f=n?f:r,r=i[(n<<2)+r>>2],!!r;);if((f|0)==(k|0)|i[f+16>>2]>(e|0))break i;A=s[f+20|0]+7&-8}return A&255}function T4(f,e){var r=0,A=0,k=0;if(r=i[f+16>>2],r>>>0>>0){if(r){if(e=i[f+8>>2],e){for(;i[e+16>>2]=i[e+16>>2]-r,e=i[e+8>>2],!!e;);r=i[f+16>>2]}A=i[f>>2],e=V[i[i[A>>2]+8>>2]](A)|0,k=w0,e=e+r|0,k=e>>>0>>0?k+1|0:k,V[i[i[A>>2]+20>>2]](A,e,k)|0,i[f+16>>2]=0}return l[f+20|0]=1,0}A=i[f+8>>2];i:{if(A){if(r=0,!T4(A,e))break i;r=i[f+16>>2]}i[f+16>>2]=r-e,r=1}return r}function r9(f,e,r){var A=0,k=0,n=Y(0),t=0;k=B-16|0,B=k;i:{r:{e:{if((f|0)!=(e|0)){t=i[23944],i[23944]=0,M2(),A=B-16|0,B=A,h3(A,f,k+12|0,0),n=gn(i[A>>2],i[A+4>>2],i[A+8>>2],i[A+12>>2]),B=A+16|0;A:{if(f=i[23944],f){if(i[k+12>>2]==(e|0))break A;break e}if(i[23944]=t,i[k+12>>2]!=(e|0))break e;break i}if((f|0)!=68)break i;break r}i[r>>2]=4;break i}n=Y(0)}i[r>>2]=4}return B=k+16|0,n}function Ei(f,e,r){var A=0,k=0,n=0,t=0,o=0,u=0;k=B-16|0,B=k,n=i[f+4>>2],A=i[r>>2]-i[f>>2]|0;i:{if(A>>>0<2147483647){A=A<<1;break i}A=-1}if(t=A||4,o=i[e>>2],u=i[f>>2],A=Er((n|0)!=1095?i[f>>2]:0,t),A){(n|0)!=1095&&(i[f>>2]=0),i[k+4>>2]=1094,A=o1(k+8|0,A,k+4|0),yt(f,A),n=i[A>>2],i[A>>2]=0,n&&V[i[A+4>>2]](n),i[e>>2]=i[f>>2]+(o-u|0),i[r>>2]=i[f>>2]+(t&-4),B=k+16|0;return}u1(),P()}function gp(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0;return f=B-144|0,B=f,i[f+136>>2]=37,i[f+140>>2]=0,n=f+136|0,H8(n|1,7810,1,i[r+4>>2]),t=M2(),i[f>>2]=k,k=f+123|0,t=b1(k,13,t,n,f)+k|0,u=X4(k,t,r),o=f+4|0,n=i[r+28>>2],i[o>>2]=n,(n|0)!=100008&&(i[n+4>>2]=i[n+4>>2]+1),n=k,k=f+16|0,Mr(n,u,t,k,f+12|0,f+8|0,o),O0(o),e=X8(e,k,i[f+12>>2],i[f+8>>2],r,A),B=f+144|0,e|0}function Np(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0;return f=B-144|0,B=f,i[f+136>>2]=37,i[f+140>>2]=0,n=f+136|0,H8(n|1,7810,0,i[r+4>>2]),t=M2(),i[f>>2]=k,k=f+123|0,t=b1(k,13,t,n,f)+k|0,u=X4(k,t,r),o=f+4|0,n=i[r+28>>2],i[o>>2]=n,(n|0)!=100008&&(i[n+4>>2]=i[n+4>>2]+1),n=k,k=f+16|0,Mr(n,u,t,k,f+12|0,f+8|0,o),O0(o),e=X8(e,k,i[f+12>>2],i[f+8>>2],r,A),B=f+144|0,e|0}function e9(f,e,r){var A=0,k=0,n=0;i:{if(s[f+46|0]){if(n=1,k=i[f+48>>2],(k|0)<=0)break i;if(i[f+8360>>2]!=(e|0)){for(n=f+8360|0;;){if(A=A+1|0,(k|0)==(A|0))break i;if(i[n+(A<<2)>>2]==(e|0))break}n=(A|0)<(k|0)}if(A=0,e=i[f+52>>2],(e|0)>0)for(k=f+8404|0;f=i[k+(A<<2)>>2]==(r|0),!f&&(A=A+1|0,(e|0)!=(A|0)););else f=0;return f&n}return!(e|r)}return 0}function Rp(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0;return f=B+-64|0,B=f,i[f+56>>2]=37,i[f+60>>2]=0,n=f+56|0,H8(n|1,7810,1,i[r+4>>2]),t=M2(),i[f>>2]=k,k=f+43|0,t=b1(k,13,t,n,f)+k|0,u=X4(k,t,r),o=f+4|0,n=i[r+28>>2],i[o>>2]=n,(n|0)!=100008&&(i[n+4>>2]=i[n+4>>2]+1),n=k,k=f+16|0,xr(n,u,t,k,f+12|0,f+8|0,o),O0(o),e=G8(e,k,i[f+12>>2],i[f+8>>2],r,A),B=f- -64|0,e|0}function Dp(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0;return f=B+-64|0,B=f,i[f+56>>2]=37,i[f+60>>2]=0,n=f+56|0,H8(n|1,7810,0,i[r+4>>2]),t=M2(),i[f>>2]=k,k=f+43|0,t=b1(k,13,t,n,f)+k|0,u=X4(k,t,r),o=f+4|0,n=i[r+28>>2],i[o>>2]=n,(n|0)!=100008&&(i[n+4>>2]=i[n+4>>2]+1),n=k,k=f+16|0,xr(n,u,t,k,f+12|0,f+8|0,o),O0(o),e=G8(e,k,i[f+12>>2],i[f+8>>2],r,A),B=f- -64|0,e|0}function D0(f){var e=0,r=0,A=0;r=B-16|0,B=r;i:{if(!T4(f,4))break i;A=i[f>>2],e=i[f+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1);r:{if(!(V[i[i[A>>2]+16>>2]](A,r+12|0,4)|0)){vi(f),A=0;break r}f=s[r+12|0]|s[r+13|0]<<8|(s[r+14|0]<<16|s[r+15|0]<<24),A=f<<24|(f&65280)<<8|(f>>>8&65280|f>>>24)}if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}return B=r+16|0,A}function A9(f,e,r){var A=0,k=0,n=0,t=0;k=B-16|0,B=k;i:{r:{e:{if((f|0)!=(e|0)){t=i[23944],i[23944]=0,M2(),A=B-16|0,B=A,h3(A,f,k+12|0,1),n=YA(i[A>>2],i[A+4>>2],i[A+8>>2],i[A+12>>2]),B=A+16|0;A:{if(f=i[23944],f){if(i[k+12>>2]==(e|0))break A;break e}if(i[23944]=t,i[k+12>>2]!=(e|0))break e;break i}if((f|0)!=68)break i;break r}i[r>>2]=4;break i}n=0}i[r>>2]=4}return B=k+16|0,n}function Up(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0;return f=B-208|0,B=f,n=M2(),i[f>>2]=k,t=f+176|0,u=b1(t,20,n,6131,f),o=t+u|0,h=X4(t,o,r),k=f+16|0,n=i[r+28>>2],i[k>>2]=n,(n|0)!=100008&&(i[n+4>>2]=i[n+4>>2]+1),n=x0(k,100184),O0(k),V[i[i[n>>2]+48>>2]](n,t,o,k)|0,n=e,e=k+(u<<2)|0,e=X8(n,k,(o|0)==(h|0)?e:((h-f<<2)+f|0)-688|0,e,r,A),B=f+208|0,e|0}function Mp(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0;n=B-16|0,B=n;i:{if(A&&(f=0,(k|0)<=0))break i;Or(n+4|0,e,r),t=i[n+8>>2],r=i[n+4>>2],e=t-r>>2;r:{e:{if(!A){f=e;break e}if(f=0,(r|0)==(t|0)|(k|0)<=0)break e;for(;;){if(t=f<<2,i[t+A>>2]=i[r+t>>2],f=f+1|0,(k|0)<=(f|0))break r;if(!(f>>>0>>0))break}break r}if(!r)break i}G(r)}return B=n+16|0,f|0}function xp(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=hr()|0;i:{if(!e){i[f+4>>2]=k,i[f>>2]=95844;break i}gA(A+8|0,e,r,A+20|0);r:{if(i[A+8>>2]){e=U(12),i[e+8>>2]=i[A+16>>2],r=i[A+12>>2],i[e>>2]=i[A+8>>2],i[e+4>>2]=r,i[A+24>>2]=e,e=j1(73788,A+24|0)|0;break r}i[A+24>>2]=i[A+20>>2],e=j1(73856,A+24|0)|0}if(i[f+4>>2]=e,i[f>>2]=95844,k>>>0<9)break i;t1(k|0)}B=A+32|0}function e3(f){var e=0,r=0,A=0;A=B-16|0,B=A,U2(+f),r=j0(1)|0,j0(0)|0,r=r&2147483647;i:{if(r>>>0<=1072243195){if(e=1,r>>>0<1044816030)break i;e=R6(f,0);break i}if(e=f-f,r>>>0>=2146435072)break i;r=Ck(f,A),f=i0[A+8>>3],e=i0[A>>3];r:switch((r&3)-1|0){default:e=R6(e,f);break i;case 0:e=-F6(e,f,1);break i;case 1:e=-R6(e,f);break i;case 2:break r}e=F6(e,f,1)}return B=A+16|0,e}function zp(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-16|0,B=A,k=e,n=m(B2(r)&3,90),i[k+48>>2]=n;i:{if(s[r+20|0]==1){if(l[A+4|0]=0,l[A+15|0]=0,r0(f,2,100,A+4|0),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+16|0}function A3(f){var e=0,r=0,A=0;r=B-16|0,B=r,U2(+f),e=j0(1)|0,j0(0)|0,e=e&2147483647;i:{if(e>>>0<=1072243195){if(e>>>0<1045430272)break i;f=F6(f,0,0);break i}if(e>>>0>=2146435072){f=f-f;break i}e=Ck(f,r),f=i0[r+8>>3],A=i0[r>>3];r:switch((e&3)-1|0){default:f=F6(A,f,1);break i;case 0:f=R6(A,f);break i;case 1:f=-F6(A,f,1);break i;case 2:break r}f=-R6(A,f)}return B=r+16|0,f}function f9(f,e,r,A,k){var n=0,t=0;n=B-32|0,B=n,t=f+4|0,i[t>>2]=0,i[t+4>>2]=0,i[t+16>>2]=0,i[t+8>>2]=0,i[t+12>>2]=0,t=n+24|0,D8(t,e,r),r=i[n+24>>2],l[r+124|0]=1,i[r+52>>2]=i[r+52>>2]&-2|1,i[f>>2]=i[r+56>>2],MA(n+4|0,e,t,A,k,0),l[n+23|0]<0&&G(i[n+12>>2]),f=i[n+28>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}B=n+32|0}function Hp(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;r=B-32|0,B=r,A=hr()|0;i:{if(!e){i[f+4>>2]=A,i[f>>2]=95844;break i}Sn(r+8|0,e,r+20|0);r:{if(i[r+8>>2]){e=U(12),i[e+8>>2]=i[r+16>>2],k=i[r+12>>2],i[e>>2]=i[r+8>>2],i[e+4>>2]=k,i[r+24>>2]=e,e=j1(73788,r+24|0)|0;break r}i[r+24>>2]=i[r+20>>2],e=j1(73856,r+24|0)|0}if(i[f+4>>2]=e,i[f>>2]=95844,A>>>0<9)break i;t1(A|0)}B=r+32|0}function k9(f,e,r){var A=0,k=0,n=0,t=0;return k=B-16|0,B=k,A=B-32|0,B=A,ft(A+24|0,f,e),At(A+16|0,i[A+24>>2],i[A+28>>2],r),t=i[A+16>>2],e=B-16|0,B=e,i[e+12>>2]=f,f=B-16|0,B=f,n=e+12|0,i[f+12>>2]=i[n>>2],B=f+16|0,f=J3(n,t-i[f+12>>2]>>2),B=e+16|0,i[A+12>>2]=f,i[A+8>>2]=(i[A+20>>2]-r|0)+r,i[k+8>>2]=i[A+12>>2],i[k+12>>2]=i[A+8>>2],B=A+32|0,B=k+16|0,i[k+12>>2]}function Tp(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0,u=0,h=0;return f=B-96|0,B=f,n=M2(),i[f>>2]=k,t=f- -64|0,u=b1(t,20,n,6131,f),o=t+u|0,h=X4(t,o,r),k=f+16|0,n=i[r+28>>2],i[k>>2]=n,(n|0)!=100008&&(i[n+4>>2]=i[n+4>>2]+1),n=x0(k,100192),O0(k),V[i[i[n>>2]+32>>2]](n,t,o,k)|0,n=e,e=k+u|0,e=G8(n,k,(o|0)==(h|0)?e:((h-f|0)+f|0)-48|0,e,r,A),B=f+96|0,e|0}function ap(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-16|0,B=A,k=e,n=B2(r)&1,i[k+48>>2]=n;i:{if(s[r+20|0]==1){if(l[A+4|0]=0,l[A+15|0]=0,r0(f,2,100,A+4|0),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+16|0}function n9(f,e,r){var A=0,k=0,n=0,t=0;return k=B-16|0,B=k,A=B-32|0,B=A,ft(A+24|0,f,e),kt(A+16|0,i[A+24>>2],i[A+28>>2],r),t=i[A+16>>2],e=B-16|0,B=e,i[e+12>>2]=f,f=B-16|0,B=f,n=e+12|0,i[f+12>>2]=i[n>>2],B=f+16|0,f=R3(n,t-i[f+12>>2]|0),B=e+16|0,i[A+12>>2]=f,i[A+8>>2]=(i[A+20>>2]-r|0)+r,i[k+8>>2]=i[A+12>>2],i[k+12>>2]=i[A+8>>2],B=A+32|0,B=k+16|0,i[k+12>>2]}function Ae(f,e,r){var A=0,k=0;for(r&2048&&(l[f|0]=43,f=f+1|0),r&1024&&(l[f|0]=35,f=f+1|0),A=r&260,(A|0)!=260&&(l[f|0]=46,l[f+1|0]=42,f=f+2|0),r=r&16384;;){if(k=s[e|0],k){l[f|0]=k,f=f+1|0,e=e+1|0;continue}break}i:{r:{if((A|0)!=256){if((A|0)!=4)break r;e=r?70:102;break i}e=r?69:101;break i}if(e=r?65:97,(A|0)==260)break i;e=r?71:103}return l[f|0]=e,(A|0)!=260}function Sp(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-16|0,B=A,k=e,n=t2(r),X[k+48>>1]=n;i:{if(s[r+20|0]==1){if(l[A+4|0]=0,l[A+15|0]=0,r0(f,2,100,A+4|0),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+16|0}function Op(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;A=B-16|0,B=A,k=e,n=B2(r),l[k+48|0]=n;i:{if(s[r+20|0]==1){if(l[A+4|0]=0,l[A+15|0]=0,r0(f,2,100,A+4|0),l[A+15|0]>=0)break i;G(i[A+4>>2]);break i}if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+16|0}function jp(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0;n=B-16|0,B=n;i:{if((A|0)<=0&&r)break i;Or(n+4|0,f,e),t=i[n+8>>2],e=i[n+4>>2],f=t-e>>2;r:{e:{if(!r){k=f;break e}if((e|0)==(t|0)|(A|0)<=0)break e;for(;;){if(t=k<<2,i[t+r>>2]=i[e+t>>2],k=k+1|0,(k|0)>=(A|0))break r;if(!(f>>>0>k>>>0))break}break r}if(!e)break i}G(e)}return B=n+16|0,k|0}function Pp(f,e,r,A,k){if(f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,Q1(f,i[e+8>>2],k)){i[e+28>>2]==1|i[e+4>>2]!=(r|0)||(i[e+28>>2]=A);return}i:{if(!Q1(f,i[e>>2],k))break i;if(!(i[e+16>>2]!=(r|0)&i[e+20>>2]!=(r|0))){if((A|0)!=1)break i;i[e+32>>2]=1;return}i[e+20>>2]=r,i[e+32>>2]=A,i[e+40>>2]=i[e+40>>2]+1,i[e+36>>2]!=1|i[e+24>>2]!=2||(l[e+54|0]=1),i[e+44>>2]=4}}function Lp(f){return f=f|0,s[100276]?i[25068]:(s[100760]||(l[100760]=1),E2(100592,65988),E2(100604,66016),E2(100616,66044),E2(100628,66076),E2(100640,66116),E2(100652,66152),E2(100664,66180),E2(100676,66216),E2(100688,66232),E2(100700,66248),E2(100712,66264),E2(100724,66280),E2(100736,66296),E2(100748,66312),l[100276]=1,i[25068]=100592,100592)}function t9(f){f=f|0;var e=0,r=0,A=0,k=0;for(i[f>>2]=60312,k=f+8|0;;){if(e=i[f+8>>2],i[f+12>>2]-e>>2>>>0>r>>>0){e=i[e+(r<<2)>>2],e&&(A=i[e+4>>2]-1|0,i[e+4>>2]=A,(A|0)==-1&&V[i[i[e>>2]+8>>2]](e)),r=r+1|0;continue}break}return z0(f+144|0),e=B-16|0,B=e,i[e+12>>2]=k,r=i[e+12>>2],i[r>>2]&&(ao(r),Mt(i[e+12>>2]+12|0,i[i[e+12>>2]>>2])),B=e+16|0,f|0}function Kp(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B+-64|0,B=A,k=1;i:{if(Q1(f,e,0)||(k=0,!e)||(e=N0(e,67148,67196),k=0,!e))break i;B0(A+8|0,0,56),l[A+59|0]=1,i[A+16>>2]=-1,i[A+12>>2]=f,i[A+4>>2]=e,i[A+52>>2]=1,V[i[i[e>>2]+28>>2]](e,A+4|0,i[r>>2],1),f=i[A+28>>2],(f|0)==1&&(i[r>>2]=i[A+20>>2]),k=(f|0)==1}return f=k,B=A- -64|0,f|0}function qp(f){f=f|0;var e=0,r=0;r=f+12|0,e=i[r+8496>>2],e&&(i[r+8500>>2]=e,G(e)),e=i[r+8484>>2],e&&(i[r+8488>>2]=e,G(e)),e=i[r+8472>>2],e&&(i[r+8476>>2]=e,G(e)),e=i[r+8460>>2],e&&(i[r+8464>>2]=e,G(e)),e=i[r+8448>>2],e&&(i[r+8452>>2]=e,G(e)),f=i[f+20>>2];i:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break i;V[i[i[f>>2]+8>>2]](f),g(f)}}function $p(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0;return k=i[f+84>>2],n=i[k>>2],A=i[k+4>>2],o=i[f+28>>2],t=i[f+20>>2]-o|0,t=A>>>0>>0?A:t,t&&(l0(n,o,t),n=t+i[k>>2]|0,i[k>>2]=n,A=i[k+4>>2]-t|0,i[k+4>>2]=A),A=r>>>0>A>>>0?A:r,A&&(l0(n,e,A),n=A+i[k>>2]|0,i[k>>2]=n,i[k+4>>2]=i[k+4>>2]-A),l[n|0]=0,e=i[f+44>>2],i[f+28>>2]=e,i[f+20>>2]=e,r|0}function bp(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=68616,r=i[f+36>>2],r){if(e=r,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){e=i[A-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(A=A-8|0,(r|0)==(A|0))break}e=i[f+36>>2]}i[f+40>>2]=r,G(e)}return i[f>>2]=68500,r=i[f+20>>2],r&&(i[f+24>>2]=r,G(r)),f|0}function f3(f,e,r,A){var k=0,n=0,t=0,o=0;k=B-48|0,B=k,n=i[i[f>>2]-12>>2]+f|0,t=i[n+16>>2]&-3,z1(n,t),X3(k+47|0,f),s[k+47|0]&&(n=k+24|0,o=i[(i[i[f>>2]-12>>2]+f|0)+24>>2],V[i[i[o>>2]+16>>2]](n,o,e,r,A,8),e=k+8|0,i[e+8>>2]=-1,i[e+12>>2]=-1,i[e>>2]=0,i[e+4>>2]=0,J4(i[i[f>>2]-12>>2]+f|0,i[e+8>>2]==i[n+8>>2]&i[n+12>>2]==i[e+12>>2]?t|4:t)),B=k+48|0}function dp(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;if((r|0)!=31)for(w=r+5|0,u=1<>1]<>12)+o|0,h=k+_|0,n=o+s[h|0]|0,n=(n|0)>=255?255:n,l[h|0]=(n|0)>0?n:0,k=k+1|0,(u|0)!=(k|0););if(t=t+1|0,(u|0)==(t|0))break}}function E2(f,e){var r=0,A=0,k=0;i:{if(A=Ot(e),r=s[f+11|0]>>>7|0?(i[f+8>>2]&2147483647)-1|0:1,s[f+11|0]>>>7|0?k=i[f+4>>2]:k=s[f+11|0]&127,A>>>0<=r>>>0){s[f+11|0]>>>7|0?r=i[f>>2]:r=f,Qo(r,e,A),e=B-16|0,B=e;r:if(s[f+11|0]>>>7|0)break r;wi(f,A),i[e+12>>2]=0,i[r+(A<<2)>>2]=i[e+12>>2],B=e+16|0;break i}r7(f,r,A-r|0,k,0,k,A,e)}}function cp(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0,t=0,o=0,u=0,h=0,w=0,_=0,v=0;if((r|0)!=31)for(w=r+5|0,u=1<>1]<>12)+o|0,h=m(A,k)+_|0,n=o+s[h|0]|0,n=(n|0)>=255?255:n,l[h|0]=(n|0)>0?n:0,k=k+1|0,(u|0)!=(k|0););if(t=t+1|0,(u|0)==(t|0))break}}function k3(f){var e=0,r=0;if(e=B-16|0,B=e,i[(i[i[f>>2]-12>>2]+f|0)+24>>2]){i[e+12>>2]=f,l[e+8|0]=0,i[(i[i[f>>2]-12>>2]+f|0)+16>>2]||(r=i[(i[i[f>>2]-12>>2]+f|0)+72>>2],r&&k3(r),l[e+8|0]=1);i:{if(!s[e+8|0]||(r=i[(i[i[f>>2]-12>>2]+f|0)+24>>2],(V[i[i[r>>2]+24>>2]](r)|0)!=-1))break i;J4(i[i[f>>2]-12>>2]+f|0,1)}Z1(e+8|0)}B=e+16|0}function G1(f){f=f|0;var e=0,r=0,A=0,k=0;if(i[f>>2]=68616,r=i[f+36>>2],r){if(e=r,A=i[f+40>>2],(e|0)!=(A|0)){for(;;){e=i[A-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(A=A-8|0,(r|0)==(A|0))break}e=i[f+36>>2]}i[f+40>>2]=r,G(e)}i[f>>2]=68500,r=i[f+20>>2],r&&(i[f+24>>2]=r,G(r)),G(f)}function n3(f,e,r,A){l[f+53|0]=1;i:{if(i[f+4>>2]!=(r|0))break i;l[f+52|0]=1,r=i[f+16>>2];r:{if(!r){if(i[f+36>>2]=1,i[f+24>>2]=A,i[f+16>>2]=e,(A|0)!=1)break i;if(i[f+48>>2]==1)break r;break i}if((e|0)==(r|0)){if(r=i[f+24>>2],(r|0)==2&&(i[f+24>>2]=A,r=A),i[f+48>>2]!=1)break i;if((r|0)==1)break r;break i}i[f+36>>2]=i[f+36>>2]+1}l[f+54|0]=1}}function iW(f){f=f|0;var e=0,r=0;if(f){e=i[f+20>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+12>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+4>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}G(f)}}function rW(f){return f=f|0,s[100268]?i[25066]:(s[100584]||(l[100584]=1),Y2(100416,1470),Y2(100428,1477),Y2(100440,1443),Y2(100452,1451),Y2(100464,1434),Y2(100476,1484),Y2(100488,1461),Y2(100500,6172),Y2(100512,7008),Y2(100524,9257),Y2(100536,13565),Y2(100548,2553),Y2(100560,8170),Y2(100572,3543),l[100268]=1,i[25066]=100416,100416)}function M1(f,e){i:{if((e|0)>=1024){if(f=f*898846567431158e293,e>>>0<2047){e=e-1023|0;break i}f=f*898846567431158e293,e=(e>>>0>=3069?3069:e)-2046|0;break i}if((e|0)>-1023)break i;if(f=f*2004168360008973e-307,e>>>0>4294965304){e=e+969|0;break i}f=f*2004168360008973e-307,e=(e>>>0<=4294964336?-2960:e)+1938|0}return N2(0,0),N2(1,e+1023<<20),f*+m1()}function eW(f,e){f=f|0,e=e|0;var r=0,A=0;f=i[f>>2],r=i[f+48>>2],f=i[f+52>>2],f&&(i[f+4>>2]=i[f+4>>2]+1),A=i[r+20>>2],r=i[r+24>>2];i:{if(!r){Z4(A,e);break i}if(i[r+4>>2]=i[r+4>>2]+1,Z4(A,e),e=i[r+4>>2],i[r+4>>2]=e-1,e)break i;V[i[i[r>>2]+8>>2]](r),g(r)}i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}}function AW(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;if(A=B-16|0,B=A,k=i[r>>2],k>>>0<2147483640){t=i[f>>2];i:{r:{if(k>>>0>=11){n=(k|7)+1|0,f=U(n),i[A+12>>2]=n|-2147483648,i[A+4>>2]=f,i[A+8>>2]=k;break r}if(l[A+15|0]=k,f=A+4|0,!k)break i}l0(f,r+4|0,k)}l[f+k|0]=0,V[t|0](e,A+4|0),l[A+15|0]<0&&G(i[A+4>>2]),B=A+16|0;return}c2(),P()}function o9(f,e){var r=0,A=0,k=0,n=0,t=0,o=0;A=f+18548|0,r=f2(A,i[f+18572>>2]+150|0),k=1,n=f2(A,i[f+18572>>2]+150|0),t=1,r&&(t=!f2(A,i[f+18572>>2]+151|0)),n&&(k=!f2(A,i[f+18572>>2]+151|0)),r&&(r=-1,t||(r=DA(A,1)),o=x1(A)?65534-r|0:r+2|0),e=(e<<2)+f|0,n?(r=-1,k||(r=DA(A,1)),f=x1(A)?65534-r|0:r+2|0):f=0,X[e+20>>1]=f,X[e+18>>1]=o}function fW(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0;if(r=B-16|0,B=r,on(r+4|0,i[f>>2],e),k=i[r+8>>2],e=i[r+4>>2],e){if(f=e,(e|0)!=(k|0)){for(f=k;;){A=i[f-4>>2];i:{if(!A||(n=i[A+4>>2],i[A+4>>2]=n-1,n))break i;V[i[i[A>>2]+8>>2]](A),g(A)}if(f=f-8|0,(e|0)==(f|0))break}f=i[r+4>>2]}i[r+8>>2]=e,G(f)}return B=r+16|0,k-e>>3}function kW(f){f=f|0;var e=0,r=0,A=0,k=0;if(l[f+73|0]=0,l[f+74|0]=0,l[f+75|0]=0,l[f+76|0]=0,e=s[f+72|0],k=e>>>0<=2?2:e,r=e,A=i[f+60>>2],e=i[f+56>>2],r=A-e>>>0>2097120?k:r,(e|0)!=(A|0))for(;r=k0[e>>2]>65535&&(r|0)<=2?2:r,r=s[e+4|0]&&(r|0)<=1?1:r,e=e+32|0,(A|0)!=(e|0););l[f+75|0]=4,l[f+73|0]=4,l[f+74|0]=4,l[f+48|0]=r}function t3(f){var e=0,r=0,A=0;e=i[f+12>>2]-2|0,i[f+12>>2]=e,A=1,r=i[f+16>>2],e=e<<7;i:{if(r>>>0>=e>>>0||(A=0,e>>>0>32767)||(r=r<<1,i[f+16>>2]=r,i[f+12>>2]=e>>>6,e=Q[f+20>>1]+1|0,X[f+20>>1]=e,(e|0)==(e&65535))||(X[f+20>>1]=65528,e=i[f+4>>2],e>>>0>=k0[f+8>>2]))break i;i[f+4>>2]=e+1,i[f+16>>2]=r+s[e|0]}return A}function l9(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0;e=B-16|0,B=e,k=e+16|0;i:{for(;;){if(A=i[f+36>>2],r=e+8|0,n=V[i[i[A>>2]+20>>2]](A,i[f+40>>2],r,k,e+4|0)|0,A=-1,t=r,r=i[e+4>>2]-r|0,(F1(t,1,r,i[f+32>>2])|0)!=(r|0))break i;r:switch(n-1|0){case 1:break i;case 0:continue;default:break r}break}A=x8(i[f+32>>2])?-1:0}return B=e+16|0,A|0}function nW(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;if(A=B-128|0,B=A,r=i[e+16>>2],i[A>>2]=i[e+12>>2],i[A+4>>2]=r,e=A+16|0,ke(e,13597,A),r=G2(e),r>>>0<2147483640){i:{r:{if(r>>>0>=11){k=(r|7)+1|0,e=U(k),i[f+8>>2]=k|-2147483648,i[f>>2]=e,i[f+4>>2]=r,f=e;break r}if(l[f+11|0]=r,!r)break i}l0(f,A+16|0,r)}l[f+r|0]=0,B=A+128|0;return}c2(),P()}function c4(f,e,r,A){var k=0,n=0,t=0,o=0;k=B-16|0,B=k,i[k+12>>2]=e,i[k+8>>2]=A,t=S4(k+4|0,k+12|0),e=B-16|0,B=e,A=i[k+8>>2],i[e+12>>2]=A,i[e+8>>2]=A,n=-1,A=le(0,0,r,A);i:{if((A|0)<0||(o=f,A=A+1|0,f=Z2(A),i[o>>2]=f,!f))break i;n=le(f,A,r,i[e+12>>2])}return B=e+16|0,f=i[t>>2],f&&(i[23985]=(f|0)==-1?95820:f),B=k+16|0,n}function tW(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0;if(r=B-16|0,B=r,A=i[e>>2],A>>>0<2147483640){i:{r:{if(A>>>0>=11){n=(A|7)+1|0,k=U(n),i[r+12>>2]=n|-2147483648,i[r+4>>2]=k,i[r+8>>2]=A;break r}if(l[r+15|0]=A,k=r+4|0,!A)break i}l0(k,e+4|0,A)}return l[A+k|0]=0,f=V[f|0](r+4|0)|0,l[r+15|0]<0&&G(i[r+4>>2]),B=r+16|0,f|0}c2(),P()}function o3(f){var e=0,r=0,A=0;r=B-16|0,B=r;i:{if(!T4(f,2))break i;A=i[f>>2],e=i[f+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1);r:{if(!(V[i[i[A>>2]+16>>2]](A,r+14|0,2)|0)){vi(f),A=0;break r}f=s[r+14|0]|s[r+15|0]<<8,A=f<<8|f>>>8}if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}return B=r+16|0,A<<16>>16}function oW(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A;i:{if(!e){if(l[A|0]=0,l[A+11|0]=0,e=f,f=r0(A+12|0,5,2001,A),P0(e,f,0),l[f+19|0]<0&&G(i[f+8>>2]),l[A+11|0]>=0)break i;G(i[A>>2]);break i}if(k=i[i[e>>2]+60>>2],k){V[k|0](f,i[e+4>>2],r);break i}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}B=A+32|0}function t2(f){var e=0,r=0,A=0;r=B-16|0,B=r;i:{if(!T4(f,2))break i;A=i[f>>2],e=i[f+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1);r:{if(!(V[i[i[A>>2]+16>>2]](A,r+14|0,2)|0)){vi(f),A=0;break r}f=s[r+14|0]|s[r+15|0]<<8,A=f<<8|f>>>8}if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}return B=r+16|0,A&65535}function lW(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,A2(r,s[e+48|0]),Y4(A+12|0,e,r,k),l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function uW(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;t=B-16|0,B=t;i:{if(!e){i[f>>2]=5,i[f+4>>2]=2006,i[f+8>>2]=2383;break i}o=i0[e>>3]*+(r|0),i0[t+8>>3]=o,i0[t>>3]=s[e+24|0]?i0[e+32>>3]*+(A|0):o,k&&(i0[k>>3]=i0[t+8>>3]),n&&(i0[n>>3]=i0[t>>3]),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}B=t+16|0}function sW(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,A2(r,s[e+56|0]),Y4(A+12|0,e,r,k),l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function hW(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0,o=0;return A=i[f+20>>2],k=i[f+16>>2],t=r+k|0,A=t>>>0>>0?A+1|0:A,n=i[f+12>>2],o=i[f+8>>2],(A|0)<=(n|0)&o>>>0>=t>>>0|(A|0)<(n|0)&&(l0(e,i[f+4>>2]+k|0,r),k=i[f+20>>2],e=r+i[f+16>>2]|0,k=e>>>0>>0?k+1|0:k,i[f+16>>2]=e,i[f+20>>2]=k),(A|0)<=(n|0)&t>>>0<=o>>>0|(A|0)<(n|0)}function wW(f){f=f|0;var e=0,r=0,A=0,k=0,n=0;if(n=B-16|0,B=n,e=i[f+652>>2],e&&(i[f+656>>2]=e,G(e)),e=i[f+640>>2],e&&(i[f+644>>2]=e,G(e)),e=i[f+604>>2],e){if(r=e,A=i[f+608>>2],(e|0)!=(A|0)){for(;r=A-12|0,k=i[r>>2],k&&(i[A-8>>2]=k,G(k)),A=r,(e|0)!=(A|0););r=i[f+604>>2]}i[f+608>>2]=e,G(r)}B=n+16|0}function l3(f,e,r,A,k){var n=0,t=0,o=0,u=0;t=B-16|0,B=t,n=t+12|0,e=i[e+28>>2],i[n>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(n,100184),V[i[i[e>>2]+48>>2]](e,60064,60096,r)|0,e=x0(n,100256),o=A,u=V[i[i[e>>2]+12>>2]](e)|0,i[o>>2]=u,o=k,u=V[i[i[e>>2]+16>>2]](e)|0,i[o>>2]=u,V[i[i[e>>2]+20>>2]](f,e),O0(n),B=t+16|0}function _W(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-32|0,B=A,k=V[i[i[e>>2]+32>>2]](e,r,0)|0,D4(r,e+48|0),Y4(A+12|0,e,r,k),l[A+31|0]<0&&G(i[A+20>>2]),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0;i:{if(l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];break i}_0(f,i[19566],i[19567])}B=A+32|0}function u3(f,e,r,A,k){var n=0,t=0,o=0,u=0;t=B-16|0,B=t,n=t+12|0,e=i[e+28>>2],i[n>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(n,100192),V[i[i[e>>2]+32>>2]](e,60064,60096,r)|0,e=x0(n,100248),o=A,u=V[i[i[e>>2]+12>>2]](e)|0,l[o|0]=u,o=k,u=V[i[i[e>>2]+16>>2]](e)|0,l[o|0]=u,V[i[i[e>>2]+20>>2]](f,e),O0(n),B=t+16|0}function vW(f){f=f|0;var e=0,r=0,A=0,k=0,n=0;if(e=i[f+56>>2],A=i[f+60>>2],(e|0)!=(A|0))for(;;){if(k0[e+40>>2]>65535){l[f+48|0]=1;return}r=i[e+44>>2],k=i[e+48>>2];i:{if((r|0)==(k|0))break i;for(;;){if(k0[r>>2]<65536){if(r=r+4|0,(k|0)!=(r|0))continue;break i}break}n=1}if(e=e+56|0,(A|0)==(e|0))break}l[f+48|0]=n}function u9(f,e,r){var A=0,k=0,n=0;if(A=i[r+72>>2],i[r+72>>2]=A-1|A,A=i[r+4>>2],k=i[r+8>>2],(A|0)==(k|0)?A=e:(n=A,A=k-A|0,A=e>>>0>A>>>0?A:e,l0(f,n,A),i[r+4>>2]=A+i[r+4>>2],f=f+A|0,A=e-A|0),A)for(;;){i:{if(!g6(r)&&(k=V[i[r+32>>2]](r,f,A)|0,k))break i;return e-A|0}if(f=f+k|0,A=A-k|0,!A)break}return e}function fe(f,e,r){var A=0,k=0,n=0;i:{A=i[e+112>>2];r:{if(!A)break r;for(k=e+112|0,e=k;n=k0[A+16>>2]>>0,e=n?e:A,A=i[(n<<2)+A>>2],!!A;);if((e|0)==(k|0))break r;if(k0[e+16>>2]<=r>>>0)break i}i[f>>2]=0,i[f+4>>2]=0;return}i[f>>2]=i[e+20>>2],r=f,f=i[e+24>>2],i[r+4>>2]=f,f&&(i[f+4>>2]=i[f+4>>2]+1)}function s9(f,e){var r=0,A=0;r=B-32|0,B=r,i[f+8>>2]=-1,i[f+12>>2]=-1,i[f>>2]=0,i[f+4>>2]=0,X3(r+31|0,e),s[r+31|0]&&(A=i[(i[i[e>>2]-12>>2]+e|0)+24>>2],V[i[i[A>>2]+16>>2]](r+8|0,A,0,0,1,8),A=i[r+20>>2],i[f+8>>2]=i[r+16>>2],i[f+12>>2]=A,A=i[r+12>>2],i[f>>2]=i[r+8>>2],i[f+4>>2]=A,J4(i[i[e>>2]-12>>2]+e|0,0)),B=r+32|0}function v2(f,e,r){var A=0,k=0;i:{r:{if(!r)break r;if(A=i[f+164>>2],(A|0)>0){for(k=f+84|0,r=0;;){if(i[(r<<2)+k>>2]==(e|0))break i;if(r=r+1|0,(A|0)==(r|0))break}if((A|0)>19)break r}i[f+164>>2]=A+1,i[((A<<2)+f|0)+84>>2]=e}if(r=i[f+80>>2],(r|0)==20){i[f+76>>2]=1001;return}i[f+80>>2]=r+1,i[(r<<2)+f>>2]=e}}function h9(f,e,r){var A=0,k=0,n=0;if(i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,A=i[e+36>>2],n=i[e+40>>2],(A|0)!=(n|0))for(;;){if(e=i[A>>2],i[e+16>>2]==(r|0)){i:{if(k0[f+8>>2]>k>>>0){i[k>>2]=e,e=i[A+4>>2],i[k+4>>2]=e,e&&(i[e+4>>2]=i[e+4>>2]+1),k=k+8|0;break i}k=Q2(f,A)}i[f+4>>2]=k}if(A=A+8|0,(n|0)==(A|0))break}}function mW(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;i:{r:{if(f=i[f+4>>2],A=i[f+168>>2],e=e>>A,(e|0)<0||(k=i[f+172>>2],(e|0)>=(k|0)))break r;if(r=r>>A,(r|0)<0|(r|0)>=i[f+176>>2])break i;return f=(i[f+160>>2]+m(e,3)|0)+m(m(r,k),3)|0,(s[f|0]|s[f+1|0]<<8)>>>3&7}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function z8(f){var e=Y(0),r=0,A=0;if(r=(s1(f),j0(2)),A=r>>>23&255,A>>>0<=149)if(A>>>0<=125)f=Y(f*Y(0));else{f=Y(d0(f)),e=Y(Y(Y(f+Y(8388608))+Y(-8388608))-f);i:{if(e>Y(.5)){f=Y(Y(f+e)+Y(-1));break i}if(f=Y(f+e),!(e<=Y(-.5)))break i;f=Y(f+Y(1))}f=(r|0)<0?Y(-f):f}return Y(d0(f))>2],f=0,i[n+12>>2]=0,i[n+4>>2]=0,i[n+8>>2]=0;i:{if(A=i[k+200>>2],k=i[k+196>>2],(A|0)==(k|0))A=0;else{if(A=A-k|0,(A|0)<0)break i;f=U(A),A=l0(f,k,A)+A|0}return k=e,e=A-f>>2,e=(e|0)<(r|0)?e:r,l0(k,f,e<<2),f&&G(f),B=n+16|0,e|0}y0(),P()}function ZW(f){f=f|0;var e=0,r=0,A=0,k=0,n=0,t=0,o=0;if(e=i[f+56>>2],k=i[f+60>>2],(e|0)!=(k|0)){for(;;){if(o=k0[e>>2]>65535,r=i[e+4>>2],n=i[e+8>>2],(r|0)!=(n|0))for(;t=Q[r+2>>1]>127|t,r=r+4|0,(n|0)!=(r|0););if(A=o?1:A,e=e+16|0,(k|0)==(e|0))break}r=A,A=t&1}i[f+52>>2]=A,l[f+48|0]=r}function pW(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;if(A=B-128|0,B=A,i[A>>2]=i[e+12>>2],e=A+16|0,ke(e,13644,A),r=G2(e),r>>>0<2147483640){i:{r:{if(r>>>0>=11){k=(r|7)+1|0,e=U(k),i[f+8>>2]=k|-2147483648,i[f>>2]=e,i[f+4>>2]=r,f=e;break r}if(l[f+11|0]=r,!r)break i}l0(f,A+16|0,r)}l[f+r|0]=0,B=A+128|0;return}c2(),P()}function WW(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;if(A=B-128|0,B=A,i[A>>2]=i[e+12>>2],e=A+16|0,ke(e,13617,A),r=G2(e),r>>>0<2147483640){i:{r:{if(r>>>0>=11){k=(r|7)+1|0,e=U(k),i[f+8>>2]=k|-2147483648,i[f>>2]=e,i[f+4>>2]=r,f=e;break r}if(l[f+11|0]=r,!r)break i}l0(f,A+16|0,r)}l[f+r|0]=0,B=A+128|0;return}c2(),P()}function XW(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;return t=B-32|0,B=t,o=i[15075],i[t+24>>2]=i[15074],i[t+28>>2]=o,o=i[15073],i[t+16>>2]=i[15072],i[t+20>>2]=o,o=i[15071],i[t+8>>2]=i[15070],i[t+12>>2]=o,o=i[15069],i[t>>2]=i[15068],i[t+4>>2]=o,o=f,f=t+32|0,e=Z8(o,e,r,A,k,n,t,f),B=f,e|0}function GW(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;if(A=B-128|0,B=A,i[A>>2]=i[e+8>>2],e=A+16|0,ke(e,13628,A),r=G2(e),r>>>0<2147483640){i:{r:{if(r>>>0>=11){k=(r|7)+1|0,e=U(k),i[f+8>>2]=k|-2147483648,i[f>>2]=e,i[f+4>>2]=r,f=e;break r}if(l[f+11|0]=r,!r)break i}l0(f,A+16|0,r)}l[f+r|0]=0,B=A+128|0;return}c2(),P()}function w9(f,e){var r=0,A=0,k=0;if(e>>>0>8){for(e=e>>>0<=4?4:e,A=f>>>0<=1?1:f;;){i:{if(f=0,r=(e+A|0)-1&0-e,k=r>>>0>A>>>0?r:A,r=B-16|0,B=r,(k>>>0)%(e>>>0)|e&3||(f=Sr(r+12|0,e,k),f=f?0:i[r+12>>2]),B=r+16|0,f||(r=i[25435],!r))break i;V[r|0]();continue}break}return f||o4(),f}return U(f)}function CW(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0;t=B-16|0,B=t;i:{if(!e){i[f>>2]=5,i[f+4>>2]=2006,i[f+8>>2]=2383;break i}i0[t+8>>3]=i0[e+8>>3]*+(r|0),i0[t>>3]=i0[e+16>>3]*+(A|0),k&&(i0[k>>3]=i0[t+8>>3]),n&&(i0[n>>3]=i0[t>>3]),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}B=t+16|0}function l2(f,e){var r=0,A=0,k=0,n=0;r=i[f+12>>2],k=r+4|0,A=i[f>>2],n=i[f+4>>2]-A|0,k>>>0>n>>>0&&(L2(f,k-n|0),A=i[f>>2],r=i[f+12>>2]),i[f+12>>2]=r+1,l[r+A|0]=e>>>24,r=i[f+12>>2],i[f+12>>2]=r+1,l[r+i[f>>2]|0]=e>>>16,r=i[f+12>>2],i[f+12>>2]=r+1,l[r+i[f>>2]|0]=e>>>8,r=i[f+12>>2],i[f+12>>2]=r+1,l[r+i[f>>2]|0]=e}function ke(f,e,r){var A=0,k=0,n=0,t=0;n=B-16|0,B=n,i[n+12>>2]=r,A=B-160|0,B=A,t=A+8|0,l0(t,52608,144),i[A+52>>2]=f,i[A+28>>2]=f,k=-2-f|0,k=k>>>0>2147483647?2147483647:k,i[A+56>>2]=k,k=f+k|0,i[A+36>>2]=k,i[A+24>>2]=k,No(t,e,r),(f|0)!=-2&&(f=i[A+28>>2],l[f-((f|0)==i[A+24>>2])|0]=0),B=A+160|0,B=n+16|0}function y6(f){var e=0,r=0;e=i[f+76>>2];i:{if(!((e|0)>=0&(!e|i[23967]!=(e&1073741823)))){if(e=i[f+4>>2],(e|0)!=i[f+8>>2]){i[f+4>>2]=e+1,f=s[e|0];break i}f=ve(f);break i}e=f+76|0,r=i[e>>2],i[e>>2]=r||1073741823,r=i[f+4>>2];r:{if((r|0)!=i[f+8>>2]){i[f+4>>2]=r+1,f=s[r|0];break r}f=ve(f)}i[e>>2]=0}return f}function H8(f,e,r,A){var k=0;i:{if(!(A&2048)||(k=A&74,!r|((k|0)==8|(k|0)==64)))break i;l[f|0]=43,f=f+1|0}for(A&512&&(l[f|0]=35,f=f+1|0);;){if(k=s[e|0],k){l[f|0]=k,f=f+1|0,e=e+1|0;continue}break}k=A&74,e=111;i:{if((k|0)==64||(e=A&16384?88:120,(k|0)==8))break i;e=r?100:117}l[f|0]=e}function VW(f,e,r,A,k){if(f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,i[e+8>>2]!=1){e=i[18429],i[f>>2]=i[18428],i[f+4>>2]=e,i[f+8>>2]=i[18430];return}i:{if(!s[e+16|0]||(A&&(i[A>>2]=i[e+20>>2]),!k))break i;i[k>>2]=i[e+24>>2]}r&&(i[r>>2]=s[e+16|0]),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}function G2(f){var e=0,r=0,A=0;i:{r:{if(e=f,!(e&3))break r;if(!s[e|0])return 0;for(;;){if(e=e+1|0,!(e&3))break r;if(!s[e|0])break}break i}for(;r=e,e=e+4|0,A=i[r>>2],((A|16843008-A)&-2139062144)==-2139062144;);for(;e=r,r=e+1|0,!!s[e|0];);}return e-f|0}function IW(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0;t=B-16|0,B=t,i[k>>2]=r,n=t+12|0,f=y3(n,0,i[f+8>>2]),e=2;i:{if(f+1>>>0<2||(r=f-1|0,e=1,r>>>0>A-i[k>>2]>>>0))break i;for(;;){if(r){f=s[n|0],e=i[k>>2],i[k>>2]=e+1,l[e|0]=f,r=r-1|0,n=n+1|0;continue}break}e=0}return B=t+16|0,e|0}function QW(f){f=f|0;var e=0,r=0,A=0;i:{if(!f||(f=i[f>>2],!f))break i;r=B-16|0,B=r,ei(r+8|0,i[i[f+16>>2]+48>>2],i[f+20>>2]),f=i[r+8>>2],f?f=i[f+56>>2]:f=0,e=i[r+12>>2];r:{if(!e||(A=i[e+4>>2],i[e+4>>2]=A-1,A))break r;V[i[i[e>>2]+8>>2]](e),g(e)}B=r+16|0,e=f}return e|0}function yW(f){f=f|0;var e=0,r=0,A=0;i:{if(!f||(f=i[f>>2],!f))break i;r=B-16|0,B=r,ei(r+8|0,i[i[f+16>>2]+48>>2],i[f+20>>2]),f=i[r+8>>2],f?f=i[f+60>>2]:f=0,e=i[r+12>>2];r:{if(!e||(A=i[e+4>>2],i[e+4>>2]=A-1,A))break r;V[i[i[e>>2]+8>>2]](e),g(e)}B=r+16|0,e=f}return e|0}function _9(f){var e=0,r=0,A=0;A=i[f+16>>2]<<8,i[f+16>>2]=A,e=Q[f+20>>1]+8|0,X[f+20>>1]=e,e=e<<16>>16;i:{if((e|0)<0||(r=i[f+4>>2],r>>>0>=k0[f+8>>2]))break i;i[f+4>>2]=r+1,r=s[r|0],X[f+20>>1]=e-8,A=r<>2]<<7,e=(A>>>0)/(r>>>0)|0,(e|0)>=256&&(e=255),i[f+16>>2]=A-m(e,r),e}function FW(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;t=f,o=e,f=V[i[i[f+8>>2]+20>>2]](f+8|0)|0;i:{if(s[f+11|0]>>>7|0){e=i[f>>2];break i}e=f}return u=e,s[f+11|0]>>>7|0?e=i[f>>2]:e=f,s[f+11|0]>>>7|0?f=i[f+4>>2]:f=s[f+11|0]&127,Z8(t,o,r,A,k,n,u,e+(f<<2)|0)|0}function ne(f,e){var r=0,A=0,k=0;r=i[f+112>>2];i:{if(!r)break i;for(k=f+112|0,f=k;A=k0[r+16>>2]>>0,f=A?f:r,r=i[(A<<2)+r>>2],!!r;);if(A=0,(f|0)==(k|0)|k0[f+16>>2]>e>>>0||(A=i[f+20>>2],f=i[f+24>>2],!f|i[f+4>>2]!=-1))break i;V[i[i[f>>2]+8>>2]](f),g(f)}return(A|0)!=0}function B2(f){var e=0,r=0,A=0;A=B-16|0,B=A;i:{if(!T4(f,1))break i;r=i[f>>2],e=i[f+4>>2],e&&(i[e+4>>2]=i[e+4>>2]+1);r:{if(!(V[i[i[r>>2]+16>>2]](r,A+15|0,1)|0)){vi(f),r=0;break r}r=s[A+15|0]}if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}return B=A+16|0,r}function K2(f,e,r){var A=0,k=0;i:{r:{if(r>>>0>=4){if((f|e)&3)break r;for(;;){if(i[f>>2]!=i[e>>2])break r;if(e=e+4|0,f=f+4|0,r=r-4|0,!(r>>>0>3))break}}if(!r)break i}for(;;){if(A=s[f|0],k=s[e|0],(A|0)==(k|0)){if(e=e+1|0,f=f+1|0,r=r-1|0,r)continue;break i}break}return A-k|0}return 0}function W4(f,e){var r=0,A=0,k=0,n=0;A=B-16|0,B=A;i:{if(!e){e=0;break i}r=e>>31,k=(r^e)-r|0,r=$2(k),L1(A,k,0,0,0,r+81|0),k=0+i[A+8>>2]|0,r=(i[A+12>>2]^65536)+(16414-r<<16)|0,r=k>>>0>>0?r+1|0:r,n=e&-2147483648|r,r=i[A+4>>2],e=i[A>>2]}i[f>>2]=e,i[f+4>>2]=r,i[f+8>>2]=k,i[f+12>>2]=n,B=A+16|0}function s3(f,e){var r=0,A=0;r=i[f+40>>2],r&&(l[r+32|0]=0),r=i[e>>2],l[r+32|0]=1,A=i[e+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),i[f+40>>2]=r,r=i[f+44>>2],i[f+44>>2]=A;i:{if(!r||(A=i[r+4>>2],i[r+4>>2]=A-1,A))break i;V[i[i[r>>2]+8>>2]](r),g(r)}i[i[i[f+48>>2]+84>>2]+56>>2]=i[i[e>>2]+20>>2]}function EW(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0,u=0;t=f,o=e,f=V[i[i[f+8>>2]+20>>2]](f+8|0)|0;i:{if(s[f+11|0]>>>7|0){e=i[f>>2];break i}e=f}return u=e,s[f+11|0]>>>7|0?e=i[f>>2]:e=f,s[f+11|0]>>>7|0?f=i[f+4>>2]:f=s[f+11|0]&127,B8(t,o,r,A,k,n,u,e+f|0)|0}function I1(f,e,r,A){var k=0,n=0;k=B-16|0,B=k,n=i[e+44>>2];i:{if(!n){if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,108,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}if(!i[e+52>>2]){if(l[k+4|0]=0,l[k+15|0]=0,r0(f,2,109,k+4|0),l[k+15|0]>=0)break i;G(i[k+4>>2]);break i}ii(f,n,r,e+52|0,A)}B=k+16|0}function YW(f){f=f|0;var e=0,r=0,A=0,k=0;if(e=i[f+16>>2],!e)return 0;e=N0(e,72776,73388);i:{if(!e)break i;if(f=i[f+20>>2],!f)return i[e+24>>2]-i[e+20>>2]|0;if(r=i[f+4>>2],A=r+1|0,i[f+4>>2]=A,k=i[e+20>>2],e=i[e+24>>2],i[f+4>>2]=r,r=e-k|0,A)break i;V[i[i[f>>2]+8>>2]](f),g(f)}return r|0}function v9(f){f=f|0;var e=0,r=0,A=0,k=0;if(e=i[f+16>>2],!e)return 0;e=N0(e,72776,73300);i:{if(!e)break i;if(f=i[f+20>>2],!f)return i[e+12>>2]-i[e+8>>2]>>3;if(r=i[f+4>>2],A=r+1|0,i[f+4>>2]=A,k=i[e+8>>2],e=i[e+12>>2],i[f+4>>2]=r,r=e-k>>3,A)break i;V[i[i[f>>2]+8>>2]](f),g(f)}return r|0}function m9(f,e,r,A){var k=0;k=B-32|0,B=k,i[k+8>>2]=0,i[k>>2]=0,i[k+4>>2]=0,L2(k,A+4|0),l[i[k>>2]]=A>>>24,l[i[k>>2]+1|0]=A>>>16,l[i[k>>2]+2|0]=A>>>8,l[i[k>>2]+3|0]=A,l0(i[k>>2]+4|0,r,A),Wr(k+12|0,i[f+60>>2],e,k,0),l[k+31|0]<0&&G(i[k+20>>2]),f=i[k>>2],f&&(i[k+4>>2]=f,G(f)),B=k+32|0}function h3(f,e,r,A){var k=0,n=0,t=0,o=0;k=B-160|0,B=k,i[k+60>>2]=e,i[k+20>>2]=e,i[k+24>>2]=-1,n=k+16|0,a4(n,0,0),tk(k,n,A,1),A=i[k+8>>2],t=i[k+12>>2],n=i[k>>2],o=i[k+4>>2],r&&(i[r>>2]=i[k+136>>2]+((i[k+20>>2]-i[k+60>>2]|0)+e|0)),i[f+8>>2]=A,i[f+12>>2]=t,i[f>>2]=n,i[f+4>>2]=o,B=k+160|0}function JW(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0;k=B-32|0,B=k;i:{if(!(A&&r)){if(l[k|0]=0,l[k+11|0]=0,r=r0(k+12|0,5,2001,k),l[k+11|0]<0&&G(i[k>>2]),P0(f,r,e?i[e>>2]:0),l[r+19|0]>=0)break i;G(i[r+8>>2]);break i}e=U(8),r=i[r>>2],i[e+4>>2]=0,i[e>>2]=r,i[A>>2]=e,wt(f,e)}B=k+32|0}function gW(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;i:{r:{if(f=i[f+4>>2],A=i[f+188>>2],e=e>>A,(e|0)<0||(k=i[f+192>>2],(e|0)>=(k|0)))break r;if(r=r>>A,(r|0)<0|(r|0)>=i[f+196>>2])break i;return(i[f+180>>2]+m(e,12)|0)+m(m(r,k),12)|0}C0(3758,8453,118,3372),P()}C0(3720,8453,119,3372),P()}function B9(f,e){var r=0,A=0,k=0;A=1;i:{if(e||(r=i[f+12>>2],k=i[f+8>>2],e=r-k>>2,e>>>0>2]))break i;if((r|0)==(k|0))return 0;for(A=e>>>0<=1?1:e,f=0;;){if(r=i[(f<<2)+k>>2],!(s[r+104|0]|i[r+100>>2]))return 1;if(f=f+1|0,(A|0)==(f|0))break}A=f>>>0>>0}return A}function NW(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0,u=0;o=B-32|0,B=o,u=o+12|0,u6(u,i[e>>2],r,A,k,n,t,0,0);i:{if(i[o+12>>2]!=i[19564]){P0(f,u,i[e>>2]);break i}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}l[o+31|0]<0&&G(i[o+20>>2]),B=o+32|0}function RW(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0;var o=0;n=B-32|0,B=n,o=n+12|0,u6(o,i[e>>2],r,A,k,18983,0,0,t);i:{if(i[n+12>>2]!=i[19564]){P0(f,o,i[e>>2]);break i}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}l[n+31|0]<0&&G(i[n+20>>2]),B=n+32|0}function Z9(f,e){var r=0,A=0,k=0;if(i[e+16>>2]!=1970628964){i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;return}i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;i:{if(r=i[e+20>>2],e=i[e+24>>2],(r|0)!=(e|0)){if(e=e-r|0,(e|0)<0)break i;A=U(e),i[f>>2]=A,k=e+A|0,i[f+8>>2]=k,l0(A,r,e),i[f+4>>2]=k}return}y0(),P()}function DW(f){f=f|0;var e=0,r=0,A=0;e=i[f+24>>2],e>>>0>k0[f+44>>2]&&(i[f+44>>2]=e);i:{if(!(s[f+48|0]&8)||(e=i[f+44>>2],e>>>0>k0[f+16>>2]&&(r=i[f+8>>2],A=i[f+12>>2],i[f+16>>2]=e,i[f+12>>2]=A,i[f+8>>2]=r),e=i[f+16>>2],f=i[f+12>>2],e>>>0<=f>>>0))break i;return s[f|0]}return-1}function UW(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;t=B-32|0,B=t,o=t+12|0,u6(o,i[e>>2],r,A,k,9980,7520,n,0);i:{if(i[t+12>>2]!=i[19564]){P0(f,o,i[e>>2]);break i}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}l[t+31|0]<0&&G(i[t+20>>2]),B=t+32|0}function C8(f){var e=0,r=0,A=0;r=B-32|0,B=r,s[79117]==1&&(i[r+16>>2]=f,f8(21996,r+16|0)),e=i[f+4>>2];i:{if(!e||(A=e,e=i[e>>2]-1|0,i[A>>2]=e,e)||(s[79117]==1&&(i[r>>2]=i[f>>2],f8(22026,r)),e=i[f>>2],e&&G(e),e=i[f+4>>2],!e))break i;G(e)}return B=r+32|0,f}function p9(f,e,r){var A=0;if(r-65537>>>0<4294836223)for(;e=(e|0)/2|0,r=(r|0)/2|0,r-65537>>>0<4294836223;);i:{if((r|0)<=1)break i;for(;;){if(e-65537>>>0>4294836222)break i;if(e=(e|0)/2|0,A=r>>>0>3,r=r>>>1|0,!A)break}}return i[f>>2]=e,i[f+4>>2]=r,f}function W9(f,e){var r=0,A=0;r=s[f|0];i:{if((r|0)!=s[e|0]||r&&Q[f+4>>1]!=Q[e+4>>1]|Q[f+6>>1]!=Q[e+6>>1]|s[f+2|0]!=s[e+2|0]||(r=s[f+1|0],(r|0)!=s[e+1|0])||r&&Q[f+8>>1]!=Q[e+8>>1]|Q[f+10>>1]!=Q[e+10>>1]|s[f+3|0]!=s[e+3|0])break i;A=1}return A}function X9(f){var e=0,r=0,A=0,k=0;if(e=B-16|0,B=e,s[79117]==1&&(i[e+4>>2]=i[f+4>>2],i[e>>2]=f,f8(31175,e)),r=i[f+4>>2],r){A=i[r>>2],(A|0)>=2&&(i[r>>2]=A-1,r=i[f>>2],A=U(172),i[f>>2]=A,k=f,f=U(4),i[k+4>>2]=f,i[f>>2]=1,l0(A,r,172)),B=e+16|0;return}C0(3118,14e3,95,9985),P()}function x1(f){var e=0,r=0;r=i[f+16>>2]<<1,i[f+16>>2]=r,e=Q[f+20>>1]+1|0,X[f+20>>1]=e;i:{if(e<<16>>16<0||(X[f+20>>1]=65528,e=i[f+4>>2],e>>>0>=k0[f+8>>2]))break i;i[f+4>>2]=e+1,r=s[e|0]|r,i[f+16>>2]=r}return e=i[f+12>>2]<<7,e>>>0<=r>>>0?(i[f+16>>2]=r-e,f=1):f=0,f}function MW(f,e){f=f|0,e=e|0;var r=0;i:{if(!i[f+64>>2]||(r=i[f+12>>2],r>>>0<=k0[f+8>>2]))break i;if((e|0)==-1)return i[f+12>>2]=r-1,((e|0)!=-1?e:0)|0;if(r=i[f+12>>2]-1|0,!(s[f+88|0]&16)&s[r|0]!=(e&255))break i;return i[f+12>>2]=r,l[i[f+12>>2]]=e<<24>>24,e|0}return-1}function Yi(f,e,r){var A=0,k=0,n=0,t=0;i:{if(!e){A=e;break i}for(;r=r-1|0,k=f,f=K6(f,e,10,0),A=w0,n=r,t=k-q0(f,A,10,0)|48,l[n|0]=t,k=e>>>0>9,e=A,!!k;);}if(f|A)for(;r=r-1|0,e=(f>>>0)/10|0,l[r|0]=f-m(e,10)|48,A=f>>>0>9,f=e,!!A;);return r}function xW(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0;n=B-32|0,B=n,t=n+12|0,u6(t,i[e>>2],r,A,k,9980,7520,0,0);i:{if(i[n+12>>2]!=i[19564]){P0(f,t,i[e>>2]);break i}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}l[n+31|0]<0&&G(i[n+20>>2]),B=n+32|0}function zW(f){f=f|0;var e=0,r=0,A=0,k=0;if(A=i[f+24>>2],A){if(e=A,r=i[f+28>>2],(e|0)!=(r|0)){for(;;){e=i[r-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(r=r-8|0,(r|0)==(A|0))break}e=i[f+24>>2]}i[f+28>>2]=A,G(e)}}function w3(f,e,r){var A=0,k=0,n=0;if(A=i[f>>2],k=A+r&536870911,i[f>>2]=k,i[f+4>>2]=i[f+4>>2]+(A>>>0>k>>>0)+(r>>>29),A=A&63,A){if(n=f+24|0,k=A+n|0,A=64-A|0,A>>>0>r>>>0){l0(k,e,r);return}l0(k,e,A),Br(f,n,64),r=r-A|0,e=e+A|0}r>>>0>=64&&(e=Br(f,e,r&-64),r=r&63),l0(f+24|0,e,r)}function HW(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=+A,k=+k,n=+n,t=+t,o=+o;var u=0,h=0;if(f){u=+(e|0),h=A/u;i:{if(!(A!=k|o!=0)){i0[f>>3]=h,l[f+24|0]=0,i0[f+8>>3]=n/u,o=t/+(r|0),e=16;break i}i0[f>>3]=h,l[f+24|0]=1,i0[f+32>>3]=k/u,i0[f+8>>3]=n/u,i0[f+16>>3]=t/+(r|0),e=40}i0[e+f>>3]=o}}function G9(f,e,r){var A=0,k=0,n=0,t=0,o=0;for(n=B-16|0,B=n,l[n+14|0]=0,A=B-16|0,B=A,e=e-f>>2;;){if(e){i[A+12>>2]=f,k=e>>>1|0,i[A+12>>2]=i[A+12>>2]+(k<<2),o=(k^-1)+e|0,e=k,k=i[A+12>>2],t=k0[k>>2]>2],e=t?o:e,f=t?k+4|0:f;continue}break}return B=A+16|0,B=n+16|0,f}function TW(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0,o=0;o=(k-A|0)+e|0;i:{for(;;){if((A|0)!=(k|0)){if(f=-1,(e|0)==(r|0)||(n=l[e|0],t=l[A|0],(n|0)<(t|0)))break i;if((n|0)>(t|0))return 1;A=A+1|0,e=e+1|0;continue}break}f=(r|0)!=(o|0)}return f|0}function C9(f){var e=0,r=0,A=0,k=0;e=i[f+40>>2],r=V[e|0](f,0,0,s[f|0]&128?i[f+20>>2]==i[f+28>>2]?1:2:1)|0,e=w0;i:{if((e|0)<0)break i;if(A=i[f+8>>2],A)k=4;else{if(A=i[f+28>>2],!A)break i;k=20}f=i[k+f>>2]-A|0,r=f+r|0,e=(f>>31)+e|0,e=f>>>0>r>>>0?e+1|0:e}return w0=e,r}function V9(f){var e=0,r=0,A=0,k=0;i:{r:{if(r=i[f+64>>2],!r)break r;for(A=f- -64|0,e=A;k=i[r+16>>2]<6,e=k?e:r,r=i[(k<<2)+r>>2],!!r;);if((e|0)==(A|0)|i[e+16>>2]>=7)break r;e=1;break i}if(f=i[f+36>>2],e=0,f>>>0>15)break i;e=43008>>>f|0}return e&1}function I9(f){f=f|0;var e=0,r=0;if(i[f+1884>>2]>0&&(e=f+1392|0,l[e|0]=1,i[e+156>>2]>0))for(;r=r+1|0,(r|0)>2];);return V[i[i[f>>2]+4>>2]](f),s[79116]||(l[79116]=1),f=i[19772],(f|0)<=0?12:(f=f-1|0,i[19772]=f,f||Eo(),0)}function F6(f,e,r){var A=0,k=0,n=0;return A=f*f,n=A*(A*A)*(A*158969099521155e-24+-25050760253406863e-24)+(A*(A*27557313707070068e-22+-.0001984126982985795)+.00833333333332249),k=A*f,r?f-(A*(e*.5-n*k)-e+k*.16666666666666632):k*(A*n+-.16666666666666632)+f}function te(f,e){var r=0,A=0;r=B-16|0,B=r,i[r+12>>2]=f;i:{if((f|0)==(e|0))break i;for(;;){if(e=e-4|0,i[r+8>>2]=e,f>>>0>=e>>>0)break i;f=i[r+12>>2],e=i[f>>2],A=f,f=i[r+8>>2],i[A>>2]=i[f>>2],i[f>>2]=e,f=i[r+12>>2]+4|0,i[r+12>>2]=f,e=i[r+8>>2]}}B=r+16|0}function Ji(f,e){var r=0,A=0,k=0,n=0;r=B-16|0,B=r;i:{if(!e){e=0;break i}A=e,e=$2(e),L1(r,A,0,0,0,112-(e^31)|0),A=0+i[r+8>>2]|0,e=(i[r+12>>2]^65536)+(16414-e<<16)|0,n=k>>>0>A>>>0?e+1|0:e,k=i[r+4>>2],e=i[r>>2]}i[f>>2]=e,i[f+4>>2]=k,i[f+8>>2]=A,i[f+12>>2]=n,B=r+16|0}function i8(f,e,r,A,k){r=m(i[i[f+124>>2]+16892>>2],A)+r|0;i:{if(!e||(r=i[f+320>>2]+m(r,76)|0,i[r>>2]>=(k|0)))break i;i[f+328>>2]=i[f+328>>2]-1,i[f+332>>2]=i[f+332>>2]+1,i[e+4>>2]=2,bt(r,k),i[e+4>>2]=1,i[f+332>>2]=i[f+332>>2]-1,i[f+328>>2]=i[f+328>>2]+1}}function E6(f,e){var r=0,A=0,k=0,n=0;s[f|0]||(r=i[f+24>>2],A=r+i[f+20>>2]|0,n=i[f+12>>2],k=i[f+8>>2],(A|0)==(((k|0)!=(n|0)?(n-k<<8)-1|0:0)|0)&&(Gr(f+4|0),k=i[f+8>>2],r=i[f+24>>2],A=r+i[f+20>>2]|0),i[i[(A>>>8&16777212)+k>>2]+((A&1023)<<2)>>2]=e,i[f+24>>2]=r+1)}function T8(f,e,r){var A=0,k=0;i:{if(A=i[e+36>>2],e=i[e+40>>2],(A|0)!=(e|0))for(;;){if(k=i[A>>2],i[k+16>>2]==(r|0)){if(i[f>>2]=k,e=f,f=i[A+4>>2],i[e+4>>2]=f,!f)break i;i[f+4>>2]=i[f+4>>2]+1;return}if(A=A+8|0,(e|0)==(A|0))break}i[f>>2]=0,i[f+4>>2]=0}}function i2(f,e){var r=0,A=0;A=B-16|0,B=A,r=i[e+48>>2];i:{if(r&16){r=i[e+24>>2],r>>>0>k0[e+44>>2]&&(i[e+44>>2]=r),j3(f,i[e+20>>2],i[e+44>>2]);break i}if(r&8){j3(f,i[e+8>>2],i[e+16>>2]);break i}e=B-16|0,B=e,i[f>>2]=0,i[f+4>>2]=0,i[f+8>>2]=0,B=e+16|0}B=A+16|0}function aW(f){f=f|0;var e=0,r=0,A=0;if(f=i[19590],f){if(e=f,r=i[19591],(e|0)!=(r|0)){for(;;){e=i[r-4>>2];i:{if(!e||(A=i[e+4>>2],i[e+4>>2]=A-1,A))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(r=r-8|0,(r|0)==(f|0))break}e=i[19590]}i[19591]=f,G(e)}}function li(f,e){var r=0,A=0;r=B-16|0,B=r,i[r+12>>2]=f;i:{if((f|0)==(e|0))break i;for(;;){if(e=e-1|0,i[r+8>>2]=e,f>>>0>=e>>>0)break i;f=i[r+12>>2],e=s[f|0],A=f,f=i[r+8>>2],l[A|0]=s[f|0],l[f|0]=e,f=i[r+12>>2]+1|0,i[r+12>>2]=f,e=i[r+8>>2]}}B=r+16|0}function oe(f,e,r){var A=0,k=0,n=0;if(i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0,A=i[e+56>>2],e=i[e+60>>2],(A|0)!=(e|0))for(n=f+8|0;;){if(i[A+40>>2]==(r|0)){i:{if(k0[n>>2]>k>>>0){Z6(k,A),k=k+56|0;break i}k=xA(f,A)}i[f+4>>2]=k}if(A=A+56|0,(e|0)==(A|0))break}}function gi(f,e){var r=0,A=0,k=0;A=-1;i:{if((f|0)==-1)break i;k=i[e+76>>2]<0;r:{r=i[e+4>>2];e:{if(!r&&(g6(e),r=i[e+4>>2],!r))break e;if(i[e+44>>2]-8>>>0>>0)break r}if(k)break i;return-1}r=r-1|0,i[e+4>>2]=r,l[r|0]=f,i[e>>2]=i[e>>2]&-17,A=f&255}return A}function SW(f,e,r){if(f=f|0,e=e|0,r=r|0,w2(r,Q[e+4>>1]),w2(r,Q[e+6>>1]),w2(r,Q[e+8>>1]),A2(r,s[e+10|0]?128:0),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];return}_0(f,i[19566],i[19567])}function Q9(f,e,r){var A=0,k=0,n=0,t=0;A=B-16|0,B=A,f=$0(f),i[f+32>>2]=e,i[f>>2]=55816,k=A+12|0,e=i[f+4>>2],i[k>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(k,100200),O0(k),i[f+40>>2]=r,i[f+36>>2]=e,n=f,t=V[i[i[e>>2]+28>>2]](e)|0,l[n+44|0]=t,B=A+16|0}function y9(f,e,r){var A=0,k=0,n=0,t=0;A=B-16|0,B=A,f=vt(f),i[f+32>>2]=e,i[f>>2]=56020,k=A+12|0,e=i[f+4>>2],i[k>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(k,100208),O0(k),i[f+40>>2]=r,i[f+36>>2]=e,n=f,t=V[i[i[e>>2]+28>>2]](e)|0,l[n+44|0]=t,B=A+16|0}function _3(f){var e=0,r=0,A=0,k=0;if(A=i[f>>2],A){if(e=A,r=i[f+4>>2],(e|0)!=(r|0)){for(;;){e=i[r-4>>2];i:{if(!e||(k=i[e+4>>2],i[e+4>>2]=k-1,k))break i;V[i[i[e>>2]+8>>2]](e),g(e)}if(r=r-8|0,(r|0)==(A|0))break}e=i[f>>2]}i[f+4>>2]=A,G(e)}}function r8(f,e){var r=0,A=0;r=B-16|0,B=r,s[f+11|0]>>>7|0&&Q8(i[f>>2],4);i:if(s[e+11|0]>>>7|0)break i;i[f+8>>2]=i[e+8>>2],A=i[e+4>>2],i[f>>2]=i[e>>2],i[f+4>>2]=A,l[e+11|0]=s[e+11|0]&128,l[e+11|0]=s[e+11|0]&127,i[r+12>>2]=0,i[e>>2]=i[r+12>>2],B=r+16|0}function OW(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0;if(Q1(f,i[e+8>>2],0)){v3(e,r,A);return}k=i[f+12>>2],n=f+16|0,g9(n,e,r,A);i:{if((k|0)<2)break i;for(k=(k<<3)+n|0,f=f+24|0;;){if(g9(f,e,r,A),s[e+54|0])break i;if(f=f+8|0,!(k>>>0>f>>>0))break}}}function Y6(f){var e=0,r=0,A=0;X[f+20>>1]=8,i[f+12>>2]=510,i[f+16>>2]=0,e=i[f+4>>2],A=i[f+8>>2]-e|0;i:{if((A|0)<=0||(i[f+4>>2]=e+1,r=s[e|0],X[f+20>>1]=0,r=r<<8,i[f+16>>2]=r,(A|0)==1))break i;i[f+4>>2]=e+2,e=s[e+1|0],X[f+20>>1]=65528,i[f+16>>2]=e|r}}function r1(f){var e=0,r=0,A=0,k=0;if(r=B-16|0,B=r,i[r+12>>2]=f,A=B-16|0,B=A,i[f>>2]!=-1){for(e=A+12|0,i[e>>2]=r+12,k=A+8|0,i[k>>2]=e;e=i[f>>2],(e|0)==1;);e||(i[f>>2]=1,Pt(k),i[f>>2]=-1)}return B=A+16|0,B=r+16|0,i[f+4>>2]-1|0}function q1(f,e){var r=0,A=0;r=B-16|0,B=r,s[f+11|0]>>>7|0&&Q8(i[f>>2],1);i:if(s[e+11|0]>>>7|0)break i;i[f+8>>2]=i[e+8>>2],A=i[e+4>>2],i[f>>2]=i[e>>2],i[f+4>>2]=A,l[e+11|0]=s[e+11|0]&128,l[e+11|0]=s[e+11|0]&127,l[r+15|0]=0,l[e|0]=s[r+15|0],B=r+16|0}function J6(f){var e=0,r=0,A=0;e=i[f+76>>2];i:{if((e|0)!=-1){f=e;break i}e=f,r=B-16|0,B=r,A=r+12|0,f=i[f+28>>2],i[A>>2]=f,(f|0)!=100008&&(i[f+4>>2]=i[f+4>>2]+1),f=x0(A,100192),f=V[i[i[f>>2]+28>>2]](f,32)|0,O0(A),B=r+16|0,i[e+76>>2]=f}return f<<24>>24}function jW(f,e,r){if(f=f|0,e=e|0,r=r|0,!r){e=i[18414],i[f>>2]=i[18413],i[f+4>>2]=e,i[f+8>>2]=i[18415];return}if(i[r>>2]>=4){e=i[18423],i[f>>2]=i[18422],i[f+4>>2]=e,i[f+8>>2]=i[18424];return}q7(r),i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}function PW(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0,t=0;i:{for(;;){if((A|0)!=(k|0)){if(f=-1,(e|0)==(r|0)||(n=i[e>>2],t=i[A>>2],(n|0)<(t|0)))break i;if((n|0)>(t|0))return 1;A=A+4|0,e=e+4|0;continue}break}f=(e|0)!=(r|0)}return f|0}function g6(f){var e=0,r=0;return e=i[f+72>>2],i[f+72>>2]=e-1|e,i[f+20>>2]!=i[f+28>>2]&&V[i[f+36>>2]](f,0,0)|0,i[f+28>>2]=0,i[f+16>>2]=0,i[f+20>>2]=0,e=i[f>>2],e&4?(i[f>>2]=e|32,-1):(r=i[f+44>>2]+i[f+48>>2]|0,i[f+8>>2]=r,i[f+4>>2]=r,e<<27>>31)}function Y2(f,e){var r=0,A=0,k=0;i:{if(A=G2(e),r=s[f+11|0]>>>7|0?(i[f+8>>2]&2147483647)-1|0:10,s[f+11|0]>>>7|0?k=i[f+4>>2]:k=s[f+11|0]&127,A>>>0<=r>>>0){s[f+11|0]>>>7|0?r=i[f>>2]:r=f,Jo(r,e,A),Zt(f,r,A);break i}Pr(f,r,A-r|0,k,0,k,A,e)}}function le(f,e,r,A){var k=0,n=0;return k=B-160|0,B=k,n=e?f:k+158|0,i[k+148>>2]=n,f=e-1|0,i[k+152>>2]=f>>>0<=e>>>0?f:0,f=B0(k,0,144),i[f+76>>2]=-1,i[f+36>>2]=978,i[f+80>>2]=-1,i[f+44>>2]=f+159,i[f+84>>2]=f+148,l[n|0]=0,e=qr(f,r,A,976,977),B=f+160|0,e}function D4(f,e){var r=0,A=0,k=0,n=0,t=0,o=0;r=i[e>>2],A=i[e+4>>2]-r|0,k=i[f+12>>2],t=A+k|0,n=i[f>>2],o=i[f+4>>2]-n|0,t>>>0>o>>>0&&(L2(f,t-o|0),k=i[f+12>>2],n=i[f>>2],r=i[e>>2],A=i[e+4>>2]-r|0),l0(k+n|0,r,A),i[f+12>>2]=i[f+12>>2]+(i[e+4>>2]-i[e>>2]|0)}function v3(f,e,r){var A=0;if(A=i[f+36>>2],!A){i[f+24>>2]=r,i[f+16>>2]=e,i[f+36>>2]=1,i[f+20>>2]=i[f+56>>2];return}i:{if(!(i[f+20>>2]!=i[f+56>>2]|i[f+16>>2]!=(e|0))){if(i[f+24>>2]!=2)break i;i[f+24>>2]=r;return}l[f+54|0]=1,i[f+24>>2]=2,i[f+36>>2]=A+1}}function F9(f){var e=0,r=0,A=0;if(r=B-16|0,B=r,s[79117]==1&&(i[r+4>>2]=i[f+4>>2],i[r>>2]=f,f8(22011,r)),e=i[f+4>>2],e){A=i[e>>2]-1|0,i[e>>2]=A;i:{if(A||(A=i[f>>2],A&&(G(A),e=i[f+4>>2],!e)))break i;G(e)}i[f>>2]=0,i[f+4>>2]=0}B=r+16|0}function LW(f){f=f|0;var e=0;i:{if(e=i[f+12>>2],f=i[f+8>>2],e-f>>>0>524280)break i;if((f|0)==(e|0))return 0;for(;;){if(i[f>>2]-32768>>>0<4294901760|i[f+4>>2]-32768>>>0<=4294901759)break i;if(f=f+8|0,(e|0)==(f|0))break}return 0}return 1}function a4(f,e,r){var A=0,k=0,n=0,t=0;i[f+112>>2]=e,i[f+116>>2]=r,k=i[f+4>>2],A=i[f+44>>2]-k|0,i[f+120>>2]=A,i[f+124>>2]=A>>31,A=i[f+8>>2];i:{if(!(e|r)||(n=A-k|0,t=n>>31,(r|0)>=(t|0)&e>>>0>=n>>>0|(r|0)>(t|0)))break i;A=e+k|0}i[f+104>>2]=A}function KW(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;if(A2(e,s[f+4|0]?3:6),k1(e,r,i[f+12>>2]-i[f+8>>2]>>3,0),A=i[f+8>>2],k=i[f+12>>2],(A|0)!=(k|0))for(;f=i[A>>2],k1(e,r,f,f>>31),f=i[A+4>>2],k1(e,r,f,f>>31),A=A+8|0,(k|0)!=(A|0););}function qW(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;if(A=i[e+8>>2],r=G2(A),r>>>0<2147483640){i:{r:{if(r>>>0>=11){k=(r|7)+1|0,e=U(k),i[f+8>>2]=k|-2147483648,i[f>>2]=e,i[f+4>>2]=r,f=e;break r}if(l[f+11|0]=r,!r)break i}l0(f,A,r)}l[f+r|0]=0;return}c2(),P()}function $W(f,e){if(f=f|0,e=e|0,!e){e=i[18414],i[f>>2]=i[18413],i[f+4>>2]=e,i[f+8>>2]=i[18415];return}if(i[e>>2]>=4){e=i[18423],i[f>>2]=i[18422],i[f+4>>2]=e,i[f+8>>2]=i[18424];return}q7(e),i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}function bW(f,e){if(f=f|0,e=e|0,!e){e=i[18414],i[f>>2]=i[18413],i[f+4>>2]=e,i[f+8>>2]=i[18415];return}if(i[e>>2]>=4){e=i[18423],i[f>>2]=i[18422],i[f+4>>2]=e,i[f+8>>2]=i[18424];return}j7(e),i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}function v0(f,e,r){var A=0,k=0,n=0,t=0;A=i[f+64>>2];i:{if(!A)break i;for(k=f- -64|0,f=k;n=i[A+16>>2]<(e|0),f=n?f:A,A=i[(n<<2)+A>>2],!!A;);if((f|0)==(k|0)|i[f+16>>2]>(e|0))break i;r&&(i[r>>2]=i[f+48>>2]),t=i[f+40>>2]}return t}function dW(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;A=B-32|0,B=A;i:{if(!e){if(l[A|0]=0,l[A+11|0]=0,e=f,f=r0(A+12|0,5,2001,A),P0(e,f,0),l[f+19|0]<0&&G(i[f+8>>2]),l[A+11|0]>=0)break i;G(i[A>>2]);break i}V[i[i[e>>2]+44>>2]](f,i[e+4>>2],r)}B=A+32|0}function cW(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;A=B-32|0,B=A;i:{if(!e){if(l[A|0]=0,l[A+11|0]=0,e=f,f=r0(A+12|0,5,2001,A),P0(e,f,0),l[f+19|0]<0&&G(i[f+8>>2]),l[A+11|0]>=0)break i;G(i[A>>2]);break i}V[i[i[e>>2]+52>>2]](f,i[e+4>>2],r)}B=A+32|0}function E9(f){var e=0,r=0,A=0,k=0,n=0;if(A=i[f>>2],e=l[A|0]-48|0,e>>>0>9)return 0;for(;k=-1,r>>>0<=214748364&&(r=m(r,10),k=(r^2147483647)>>>0>>0?-1:r+e|0),e=A+1|0,i[f>>2]=e,n=l[A+1|0],r=k,A=e,e=n-48|0,e>>>0<10;);return r}function iX(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;return t=B-16|0,B=t,i[t+12>>2]=e,o=t+8|0,e=i[A+28>>2],i[o>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(o,100192),O0(o),mt(f,n+24|0,t+12|0,r,k,e),B=t+16|0,i[t+12>>2]}function rX(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;f=i[f>>2],A=i[f+64>>2],f=i[f+68>>2],f&&(i[f+4>>2]=i[f+4>>2]+1),!r|!A||(i[e>>2]=i[A+20>>2],k=1);i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}return k|0}function eX(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;return t=B-16|0,B=t,i[t+12>>2]=e,o=t+8|0,e=i[A+28>>2],i[o>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(o,100192),O0(o),st(f,n+16|0,t+12|0,r,k,e),B=t+16|0,i[t+12>>2]}function AX(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;return t=B-16|0,B=t,i[t+12>>2]=e,o=t+8|0,e=i[A+28>>2],i[o>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(o,100184),O0(o),Bt(f,n+24|0,t+12|0,r,k,e),B=t+16|0,i[t+12>>2]}function fX(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;return t=B-16|0,B=t,i[t+12>>2]=e,o=t+8|0,e=i[A+28>>2],i[o>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(o,100184),O0(o),ht(f,n+16|0,t+12|0,r,k,e),B=t+16|0,i[t+12>>2]}function Y9(f,e){var r=0,A=0,k=0;if(U2(+f),A=j0(1)|0,k=j0(0)|0,r=A>>>20&2047,(r|0)!=2047){if(!r)return f==0?r=0:(f=Y9(f*18446744073709552e3,e),r=i[e>>2]+-64|0),i[e>>2]=r,f;i[e>>2]=r-1022,N2(0,k|0),N2(1,A&-2146435073|1071644672),f=+m1()}return f}function U0(f,e){var r=0,A=0,k=0;A=i[f+64>>2],r=255;i:{if(!A)break i;for(k=f- -64|0,f=k;r=i[A+16>>2]<(e|0),f=r?f:A,A=i[(r<<2)+A>>2],!!A;);if(r=255,(f|0)==(k|0)||(r=255,i[f+16>>2]>(e|0)))break i;r=s[f+20|0]}return r}function N6(f){f=f|0;var e=0,r=0;if(f){e=i[f+12>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}e=i[f+4>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}G(f)}}function J9(f){var e=0,r=0;for(e=B-16|0,B=e,i[e+4>>2]=100016,r=i[25005],i[e+8>>2]=r,i[e+12>>2]=r+(f<<2),f=i[e+8>>2],r=i[e+12>>2];;){if((f|0)==(r|0))i[i[e+4>>2]+4>>2]=i[e+8>>2],B=e+16|0;else{i[f>>2]=0,f=f+4|0,i[e+8>>2]=f;continue}break}}function R6(f,e){var r=0,A=0,k=0,n=0;return r=f*f,A=r*.5,k=1-A,n=1-k-A,A=r*r,k+(n+(r*(r*(r*(r*2480158728947673e-20+-.001388888888887411)+.0416666666666666)+A*A*(r*(r*-11359647557788195e-27+2087572321298175e-24)+-27557314351390663e-23))-f*e))}function Z1(f){var e=0,r=0;i:{if(e=i[f+4>>2],r=i[i[e>>2]-12>>2],r=e+r|0,!i[r+24>>2]|(i[r+16>>2]|!(i[r+4>>2]&8192))||(e=i[(e+i[i[e>>2]-12>>2]|0)+24>>2],(V[i[i[e>>2]+24>>2]](e)|0)!=-1))break i;f=i[f+4>>2],J4(i[i[f>>2]-12>>2]+f|0,1)}}function g9(f,e,r,A){var k=0,n=0,t=0;n=i[f+4>>2],t=n&1;i:{if(s[e+55|0]==1){if(k=n>>8,!t)break i;k=i[i[r>>2]+k>>2];break i}if(k=n>>8,!t)break i;i[e+56>>2]=i[i[f>>2]+4>>2],n=i[f+4>>2],r=0,k=0}f=i[f>>2],V[i[i[f>>2]+28>>2]](f,e,r+k|0,n&2?A:2)}function ui(f,e,r){var A=0,k=0;k=B-16|0,B=k,A=B-32|0,B=A,pe(A+24|0,f,(e<<2)+f|0),At(A+16|0,i[A+24>>2],i[A+28>>2],r),i[A+12>>2]=(i[A+16>>2]-f|0)+f,i[A+8>>2]=(i[A+20>>2]-r|0)+r,i[k+8>>2]=i[A+12>>2],i[k+12>>2]=i[A+8>>2],B=A+32|0,B=k+16|0}function kX(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0;return f=B-16|0,B=f,i[f+12>>2]=e,t=f+8|0,e=i[A+28>>2],i[t>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(t,100192),O0(t),Et(n+20|0,f+12|0,r,k,e),B=f+16|0,i[f+12>>2]}function nX(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0;return f=B-16|0,B=f,i[f+12>>2]=e,t=f+8|0,e=i[A+28>>2],i[t>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(t,100184),O0(t),Yt(n+20|0,f+12|0,r,k,e),B=f+16|0,i[f+12>>2]}function tX(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;r=i[f>>2],f=i[r+164>>2],A=i[r+168>>2];i:{if((f|0)==(A|0))break i;for(;;){if(r=i[f>>2],i[r>>2]!=(e|0)){if(f=f+8|0,(A|0)!=(f|0))continue;break i}break}k=l[r+27|0]<0?i[r+16>>2]:r+16|0}return k|0}function oX(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;r=i[f>>2],f=i[r+164>>2],A=i[r+168>>2];i:{if((f|0)==(A|0))break i;for(;;){if(r=i[f>>2],i[r>>2]!=(e|0)){if(f=f+8|0,(A|0)!=(f|0))continue;break i}break}k=l[r+39|0]<0?i[r+28>>2]:r+28|0}return k|0}function Ni(f){var e=0,r=0;if(e=B-16|0,B=e,i[(i[i[f>>2]-12>>2]+f|0)+24>>2]){V1(e+8|0,f);i:{if(!s[e+8|0]||(r=i[(i[i[f>>2]-12>>2]+f|0)+24>>2],(V[i[i[r>>2]+24>>2]](r)|0)!=-1))break i;J4(i[i[f>>2]-12>>2]+f|0,1)}Z1(e+8|0)}B=e+16|0}function lX(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;r=i[f>>2],f=i[r+164>>2],A=i[r+168>>2];i:{if((f|0)==(A|0))break i;for(;;){if(r=i[f>>2],i[r>>2]!=(e|0)){if(f=f+8|0,(A|0)!=(f|0))continue;break i}break}k=l[r+15|0]<0?i[r+4>>2]:r+4|0}return k|0}function e8(f,e,r){var A=0,k=0;k=B-16|0,B=k,A=B-32|0,B=A,pe(A+24|0,f,f+e|0),kt(A+16|0,i[A+24>>2],i[A+28>>2],r),i[A+12>>2]=(i[A+16>>2]-f|0)+f,i[A+8>>2]=(i[A+20>>2]-r|0)+r,i[k+8>>2]=i[A+12>>2],i[k+12>>2]=i[A+8>>2],B=A+32|0,B=k+16|0}function H2(f,e){var r=0,A=0,k=0;A=f- -64|0,f=i[f+64>>2];i:{r:{if(!f)break r;for(r=A;k=i[f+16>>2]<(e|0),r=k?r:f,f=i[(k<<2)+f>>2],!!f;);if((r|0)==(A|0))break r;if(i[r+16>>2]<=(e|0))break i}r=A}return(r|0)!=(A|0)}function T0(f){f=f|0;var e=0,r=0;for(i[f>>2]=55348,e=i[f+40>>2];;){if(e){e=e-1|0,r=e<<2,V[i[i[f+32>>2]+r>>2]](0,f,i[r+i[f+36>>2]>>2]);continue}break}return O0(f+28|0),G(i[f+32>>2]),G(i[f+36>>2]),G(i[f+48>>2]),G(i[f+60>>2]),f|0}function uX(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;r=i[f>>2],f=i[r+164>>2],A=i[r+168>>2];i:{if((f|0)==(A|0))break i;for(;;){if(r=i[f>>2],i[r>>2]!=(e|0)){if(f=f+8|0,(A|0)!=(f|0))continue;break i}break}k=i[r+44>>2]-i[r+40>>2]|0}return k|0}function D6(f,e,r){var A=0,k=0;i:{if(!T4(f,r)||(k=i[f>>2],A=i[f+4>>2],A&&(i[A+4>>2]=i[A+4>>2]+1),V[i[i[k>>2]+16>>2]](k,e,r)|0||vi(f),!A)||(f=i[A+4>>2],i[A+4>>2]=f-1,f))break i;V[i[i[A>>2]+8>>2]](A),g(A)}}function X4(f,e,r){if(r=i[r+4>>2]&176,(r|0)==32)return e;i:{if((r|0)!=16)break i;r:{e:switch(r=s[f|0],r-43|0){case 0:case 2:break e;default:break r}return f+1|0}if((r|0)!=48|(e-f|0)<2|(s[f+1|0]|32)!=120)break i;f=f+2|0}return f}function sX(f,e){f=f|0,e=e|0;var r=0,A=0;r=V[i[i[f>>2]+68>>2]](i[f+4>>2])|0,f=i[r>>2];i:{if(!f)break i;for(;;){if(v4(i[f+4>>2],e)){if(f=i[r+4>>2],r=r+4|0,f)continue;break i}break}if(A=1,i[f>>2]<2)break i;A=i[f+36>>2]}return A|0}function hX(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;i:{if(!s[f+44|0])for(r=(r|0)>0?r:0;;){if((r|0)==(A|0))break i;if((V[i[i[f>>2]+52>>2]](f,i[e>>2])|0)==-1)return A|0;e=e+4|0,A=A+1|0}r=F1(e,4,r,i[f+32>>2])}return r|0}function wX(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;i:{if(!s[f+44|0])for(r=(r|0)>0?r:0;;){if((r|0)==(A|0))break i;if((V[i[i[f>>2]+52>>2]](f,s[e|0])|0)==-1)return A|0;e=e+1|0,A=A+1|0}r=F1(e,1,r,i[f+32>>2])}return r|0}function C1(f,e){var r=0,A=0,k=0;if(r=G2(e),r>>>0<2147483640){i:{r:{if(r>>>0>=11){k=(r|7)+1|0,A=U(k),i[f+8>>2]=k|-2147483648,i[f>>2]=A,i[f+4>>2]=r;break r}if(l[f+11|0]=r,A=f,!r)break i}F2(A,e,r)}return l[r+A|0]=0,f}c2(),P()}function _X(f){f=f|0;var e=0,r=0;e=i[f>>2],f=i[e+184>>2],e=i[e+188>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),f=f?i[f+12>>2]-i[f+8>>2]|0:0;i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}return f|0}function y4(f,e){var r=0,A=0,k=0,n=0;A=-1,r=i[f+64>>2];i:{if(!r)break i;for(k=f- -64|0,f=k;n=i[r+16>>2]<(e|0),f=n?f:r,r=i[(n<<2)+r>>2],!!r;);if((f|0)==(k|0)|i[f+16>>2]>(e|0))break i;A=i[f+24>>2]}return A}function F4(f,e){var r=0,A=0,k=0,n=0;A=-1,r=i[f+64>>2];i:{if(!r)break i;for(k=f- -64|0,f=k;n=i[r+16>>2]<(e|0),f=n?f:r,r=i[(n<<2)+r>>2],!!r;);if((f|0)==(k|0)|i[f+16>>2]>(e|0))break i;A=i[f+28>>2]}return A}function U6(f,e,r){var A=0,k=0,n=0,t=0;A=B-16|0,B=A,k=A+12|0,e=i[e+28>>2],i[k>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(k,100256),n=r,t=V[i[i[e>>2]+16>>2]](e)|0,i[n>>2]=t,V[i[i[e>>2]+20>>2]](f,e),O0(k),B=A+16|0}function m3(f,e,r){f=f|0,e=e|0,r=r|0;i:switch(e|0){case 6:l[f+514|0]=(r|0)!=0;return;case 7:l[f+532|0]=(r|0)!=0;return;case 8:l[f+533|0]=(r|0)!=0;return;default:C0(9349,14071,535,7495),P();case 0:break i}l[f+512|0]=(r|0)!=0}function vX(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-80|0,B=A;i:{if(!(r&&e)){i[f>>2]=5,i[f+4>>2]=2006,i[f+8>>2]=12607;break i}k=A+8|0,Cn(k,e),l0(r,k,72),i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}B=A+80|0}function mX(f){f=f|0;var e=0,r=0;e=i[f>>2],f=i[e+52>>2],e=i[e+56>>2],e&&(i[e+4>>2]=i[e+4>>2]+1),f=f?i[f+12>>2]-i[f+8>>2]|0:0;i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}return f|0}function o2(f,e,r,A){var k=0,n=0,t=0,o=0;return n=e^A,t=n>>31,k=e>>31,f=f^k,o=f-k|0,k=(e^k)-((f>>>0>>0)+k|0)|0,f=A>>31,e=r^f,n=n>>31,f=K6(o,k,e-f|0,(f^A)-((f>>>0>e>>>0)+f|0)|0)^n,e=f-n|0,w0=(t^w0)-((f>>>0>>0)+t|0)|0,e}function M6(f,e,r){var A=0,k=0,n=0,t=0;A=B-16|0,B=A,k=A+12|0,e=i[e+28>>2],i[k>>2]=e,(e|0)!=100008&&(i[e+4>>2]=i[e+4>>2]+1),e=x0(k,100248),n=r,t=V[i[i[e>>2]+16>>2]](e)|0,l[n|0]=t,V[i[i[e>>2]+20>>2]](f,e),O0(k),B=A+16|0}function BX(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;A=B-80|0,B=A;i:{if(!(r&&e)){i[f+8>>2]=0,i[f>>2]=5,i[f+4>>2]=2001;break i}k=A+8|0,Cn(k,e),l0(r,k,72),i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}B=A+80|0}function ZX(f){f=f|0;var e=0,r=0,A=0;return e=B-16|0,B=e,i[e+12>>2]=i[f+8>>2],r=S4(e+8|0,e+12|0),A=h7(0,0,4),r=i[r>>2],r&&(i[23985]=(r|0)==-1?95820:r),B=e+16|0,A?-1:(f=i[f+8>>2],f?($9(f)|0)==1|0:1)}function ue(f,e){var r=0,A=0,k=0;i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;i:{if(r=i[e+4>>2],r){if(r>>>0>=1073741824)break i;A=r<<2,r=U(A),i[f+4>>2]=r,i[f>>2]=r,k=r+A|0,i[f+8>>2]=k,F2(r,i[e>>2],A),i[f+4>>2]=k}return f}y0(),P()}function N9(f,e,r,A,k,n){var t=0,o=0,u=0;t=B-16|0,B=t,l[t+15|0]=0,l[t+14|0]=n,l[t+13|0]=k,l[t+12|0]=37,n&&(k=s[t+13|0],l[t+13|0]=s[t+14|0],l[t+14|0]=k),o=r,u=Wk(e,i[r>>2]-e|0,t+12|0,A,i[f>>2])+e|0,i[o>>2]=u,B=t+16|0}function _4(f,e,r){var A=0,k=0,n=0;k=B-16|0,B=k,A=i[f+4>>2],n=i[f+8>>2]&2147483647;i:{if(n>>>0>r>>>0){A=i[f>>2],i[f+4>>2]=r,e8(e,r,A),l[k+15|0]=0,l[r+A|0]=s[k+15|0];break i}Pr(f,n-1|0,(r-n|0)+1|0,A,0,A,r,e)}B=k+16|0}function i4(f,e,r){var A=0,k=0,n=0;A=B-16|0,B=A,k=s[f+11|0],n=k&127;i:{if(r>>>0<=10){l[f+11|0]=k&128|r&127,l[f+11|0]=s[f+11|0]&127,e8(e,r,f),l[A+15|0]=0,l[f+r|0]=s[A+15|0];break i}Pr(f,10,r-10|0,n,0,n,r,e)}B=A+16|0}function q0(f,e,r,A){var k=0,n=0,t=0,o=0,u=0,h=0;return k=r>>>16|0,n=f>>>16|0,h=m(k,n),t=r&65535,o=f&65535,u=m(t,o),n=(u>>>16|0)+m(n,t)|0,k=(n&65535)+m(k,o)|0,w0=(m(e,r)+h|0)+m(f,A)+(n>>>16)+(k>>>16)|0,u&65535|k<<16}function B3(f){f=f|0;var e=0,r=0,A=0,k=0;return A=x8(f),k=V[i[f+12>>2]](f)|0,l[f|0]&1||(e=i[f+56>>2],r=i[f+52>>2],r&&(i[r+56>>2]=e),e&&(i[e+52>>2]=r),i[23946]==(f|0)&&(i[23946]=e),G(i[f+96>>2]),G(f)),A|k}function pX(f,e,r){if(f=f|0,e=e|0,r=r|0,!(r&&e)){i[f>>2]=5,i[f+4>>2]=2006,i[f+8>>2]=12607;return}i[r>>2]=i[e>>2],i[r+4>>2]=i[e+4>>2],i[r+8>>2]=i[e+8>>2],i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}function WX(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0,t=0;f=i[f>>2],r=i[f+92>>2],A=i[f+96>>2],k=i[f+84>>2],n=i[f+88>>2],t=i[f+104>>2],i[e+16>>2]=i[f+100>>2],i[e+20>>2]=t,i[e+8>>2]=r,i[e+12>>2]=A,i[e>>2]=k,i[e+4>>2]=n}function XX(f,e){f=f|0,e=e|0;var r=0,A=0,k=0,n=0;return r=B-16|0,B=r,k=r+4|0,V[i[f>>2]](k,e),e=l[r+15|0],f=(e|0)<0,e=f?i[r+8>>2]:e,A=Z2(e+4|0),i[A>>2]=e,n=i[r+4>>2],l0(A+4|0,f?n:k,e),f&&G(n),B=r+16|0,A|0}function Z3(f,e,r,A,k,n){if(f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,!J0(i[e>>2],r,A,k,n)){e=i[18417],i[f>>2]=i[18416],i[f+4>>2]=e,i[f+8>>2]=i[18418];return}e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}function w2(f,e){var r=0,A=0,k=0,n=0;r=i[f+12>>2],k=r+2|0,A=i[f>>2],n=i[f+4>>2]-A|0,k>>>0>n>>>0&&(L2(f,k-n|0),A=i[f>>2],r=i[f+12>>2]),i[f+12>>2]=r+1,l[r+A|0]=e>>>8,r=i[f+12>>2],i[f+12>>2]=r+1,l[r+i[f>>2]|0]=e}function p3(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;i:{if((e|0)<12||(e=s[f+8|0],!e)||(r=s[f+9|0],!r)||(A=s[f+10|0],!A)||(f=s[f+11|0],!f))break i;k=f|(r<<16|e<<24|A<<8)}return k|0}function GX(f){f=f|0;var e=0;l[f+11|0]=6,l[f+6|0]=0,e=s[16835]|s[16836]<<8|(s[16837]<<16|s[16838]<<24),l[f|0]=e,l[f+1|0]=e>>>8,l[f+2|0]=e>>>16,l[f+3|0]=e>>>24,e=s[16839]|s[16840]<<8,l[f+4|0]=e,l[f+5|0]=e>>>8}function CX(f,e){f=f|0,e=e|0;var r=0;e&&(r=i[e+4>>2],f=i[f>>2],i[f+84>>2]=i[e>>2],i[f+88>>2]=r,r=i[e+20>>2],i[f+100>>2]=i[e+16>>2],i[f+104>>2]=r,r=i[e+12>>2],i[f+92>>2]=i[e+8>>2],i[f+96>>2]=r,l[f+108|0]=1)}function VX(f){f=f|0;var e=0,r=0,A=0;return f=i[f>>2],e=i[f+48>>2],f=i[f+52>>2],f?(r=i[f+4>>2],A=r+1|0,i[f+4>>2]=A,e=i[e+116>>2],i[f+4>>2]=r,A||(V[i[i[f>>2]+8>>2]](f),g(f)),e|0):i[e+116>>2]}function R9(f,e){var r=0,A=0,k=0;i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0;i:{if(r=i[e+4>>2],r){if((r|0)<0)break i;A=U(r),i[f+4>>2]=A,i[f>>2]=A,k=r+A|0,i[f+8>>2]=k,F2(A,i[e>>2],r),i[f+4>>2]=k}return f}y0(),P()}function D9(f,e){var r=0,A=0;r=B-16|0,B=r,V1(r+8|0,f);i:{if(!s[r+8|0]||(A=r+4|0,i[A>>2]=i[(i[i[f>>2]-12>>2]+f|0)+24>>2],S3(A,e),i[A>>2]))break i;J4(i[i[f>>2]-12>>2]+f|0,1)}Z1(r+8|0),B=r+16|0}function IX(f,e,r){if(f=f|0,e=e|0,r=r|0,i[e+8>>2]!=3){e=i[18429],i[f>>2]=i[18428],i[f+4>>2]=e,i[f+8>>2]=i[18430];return}r&&(i[r>>2]=i[e+16>>2]),e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e,i[f+8>>2]=i[18412]}function QX(f){f=f|0;var e=0,r=0,A=0;e=B-16|0,B=e,Ve(),Or(e+4|0,f,0),r=i[e+8>>2],f=i[e+4>>2];i:{r:{if((r|0)!=(f|0)){A=i[i[f>>2]>>2];break r}if(!r)break i}i[e+8>>2]=f,G(f)}return B=e+16|0,(A|0)!=0|0}function yX(f,e,r){if(f=f|0,e=e|0,r=r|0,D4(r,e+8|0),e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];return}_0(f,i[19566],i[19567])}function FX(f){f=f|0;var e=0,r=0,A=0,k=0,n=0;return e=B-16|0,B=e,k=e+4|0,V[f|0](k),r=l[e+15|0],f=(r|0)<0,r=f?i[e+8>>2]:r,A=Z2(r+4|0),i[A>>2]=r,n=i[e+4>>2],l0(A+4|0,f?n:k,r),f&&G(n),B=e+16|0,A|0}function EX(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0,t=0;A=B-32|0,B=A,k=A+12|0,n=l[r+11|0],t=(n|0)<0,UA(k,i[e>>2],t?i[r>>2]:r,t?i[r+4>>2]:n,1),P0(f,k,i[e>>2]),l[A+31|0]<0&&G(i[A+20>>2]),B=A+32|0}function U9(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;if(e>>>0<3)return A=i[((e<<2)+f|0)- -64>>2],r&&(i[r>>2]=m(i[(e?44:40)+f>>2],(i[i[f+124>>2]+(e?16840:16832)>>2]+7|0)/8|0)),A|0;C0(16871,14071,671,9800),P()}function $1(f,e,r,A,k){var n=0;if(n=B-256|0,B=n,!(k&73728|(r|0)<=(A|0))){if(A=r-A|0,r=A>>>0<256,B0(n,e,r?A:256),!r)for(;H1(f,n,256),A=A-256|0,A>>>0>255;);H1(f,n,A)}B=n+256|0}function YX(f,e){f=f|0,e=e|0;var r=0,A=0;e=x0(e,100200),i[f+36>>2]=e,r=f,A=V[i[i[e>>2]+24>>2]](e)|0,i[r+44>>2]=A,e=i[f+36>>2],r=f,A=V[i[i[e>>2]+28>>2]](e)|0,l[r+53|0]=A,i[f+44>>2]>=9&&(u1(),P())}function M9(f,e){var r=0,A=0;if(r=i[f+8>>2],f=i[f+12>>2],(r|0)!=(f|0))for(f=f-r>>2,A=f>>>0<=1?1:f,f=0;;){if(i[i[(f<<2)+r>>2]>>2]==(e|0))return f;if(f=f+1|0,(A|0)==(f|0))break}return-1}function JX(f,e){f=f|0,e=e|0;var r=0,A=0;e=x0(e,100208),i[f+36>>2]=e,r=f,A=V[i[i[e>>2]+24>>2]](e)|0,i[r+44>>2]=A,e=i[f+36>>2],r=f,A=V[i[i[e>>2]+28>>2]](e)|0,l[r+53|0]=A,i[f+44>>2]>=9&&(u1(),P())}function x9(f,e,r,A,k,n){var t=0,o=0;if(r-1>>>0<=1){r=0,o=A>>>0>3,t=o?t:i[(A<<2)+36244>>2],r=o?r:i[(A<<2)+36260>>2],i[k>>2]=((f+t|0)-1|0)/(t|0),i[n>>2]=((e+r|0)-1|0)/(r|0);return}i[k>>2]=f,i[n>>2]=e}function Ri(f,e){var r=0,A=0;r=B-16|0,B=r,D8(r+8|0,f,e),e=i[i[r+8>>2]+56>>2],f=i[r+12>>2];i:{if(!f||(A=i[f+4>>2],i[f+4>>2]=A-1,A))break i;V[i[i[f>>2]+8>>2]](f),g(f)}return B=r+16|0,e}function W3(f,e,r,A){var k=0,n=0;return i[f+24>>2]=0,i[f+16>>2]=0,i[f+20>>2]=0,i[f+8>>2]=r,i[f+12>>2]=0,i[f>>2]=68392,A?(A=U(r),i[f+24>>2]=A,k=f,n=l0(A,e,r),i[k+4>>2]=n,f):(i[f+4>>2]=e,f)}function gX(){var f=0;return f=U(36),X[f+2>>1]=0,X[f+4>>1]=0,X[f>>1]=263,l[f+32|0]=1,l[f+28|0]=0,i[f+20>>2]=2,i[f+24>>2]=2,l[f+16|0]=1,i[f+12>>2]=1,l[f+5|0]=0,l[f+6|0]=0,l[f+7|0]=0,l[f+8|0]=0,f|0}function z9(f,e,r){var A=0,k=0,n=0;A=B-16|0,B=A,n=i[f+48>>2],f=U(4),i[A+4>>2]=f,k=f+4|0,i[A+12>>2]=k,i[f>>2]=r,i[A+8>>2]=k,P1(n,e,1835103083,A+4|0),f=i[A+4>>2],f&&(i[A+8>>2]=f,G(f)),B=A+16|0}function x6(f,e){var r=0,A=0;return r=B-16|0,B=r,A=r+12|0,f=i[f+28>>2],i[A>>2]=f,(f|0)!=100008&&(i[f+4>>2]=i[f+4>>2]+1),f=x0(A,100184),V[i[i[f>>2]+48>>2]](f,60064,60090,e)|0,O0(A),B=r+16|0,e}function si(f,e){var r=0,A=0;r=i[e>>2],A=i[e+4>>2],i[e>>2]=0,i[e+4>>2]=0,e=i[f+4>>2],i[f>>2]=r,i[f+4>>2]=A;i:{if(!e||(f=i[e+4>>2],i[e+4>>2]=f-1,f))break i;V[i[i[e>>2]+8>>2]](e),g(e)}}function NX(f){f=f|0;var e=0,r=0,A=0,k=0;i:{if(!f||(e=s[f|0],!e)||(r=s[f+1|0],!r)||(A=s[f+2|0],!A)||(f=s[f+3|0],!f))break i;k=f|(r<<16|e<<24|A<<8)}return k|0}function H9(f){f=f|0;var e=0,r=0;i:{if(i[f+2192>>2]<=0||(e=i[f+2188>>2],e=i[i[i[f+2176>>2]+(e>>>8&16777212)>>2]+((e&1023)<<2)>>2],!e))break i;l[e+104|0]=0,K9(f+2140|0),r=e}return r|0}function RX(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0;return k=B-16|0,B=k,f=_s(i[f+60>>2],e|0,r|0,A&255,k+8|0)|0,f?(i[23944]=f,f=-1):f=0,B=k+16|0,w0=f?-1:i[k+12>>2],(f?-1:i[k+8>>2])|0}function X3(f,e){var r=0,A=0;A=B-16|0,B=A,l[f|0]=0,r=i[i[e>>2]-12>>2]+e|0;i:{if(!i[r+16>>2]){i[r+72>>2]&&Ni(i[r+72>>2]),l[f|0]=!i[(i[i[e>>2]-12>>2]+e|0)+16>>2];break i}J4(r,4)}B=A+16|0}function T9(f,e){var r=0,A=0;i:{if(r=i[f>>2],!r)break i;A=i[r+24>>2];r:{if((A|0)==i[r+28>>2]){e=V[i[i[r>>2]+52>>2]](r,e)|0;break r}i[r+24>>2]=A+4,i[A>>2]=e}if((e|0)!=-1)break i;i[f>>2]=0}}function a9(f,e,r,A){i:{if(!f)break i;r:switch(e+2|0){case 0:l[f|0]=r;return;case 1:X[f>>1]=r;return;case 2:case 3:i[f>>2]=r;return;case 5:break r;default:break i}i[f>>2]=r,i[f+4>>2]=A}}function G3(f){var e=0;return e=i[f+72>>2],i[f+72>>2]=e-1|e,e=i[f>>2],e&8?(i[f>>2]=e|32,-1):(i[f+4>>2]=0,i[f+8>>2]=0,e=i[f+44>>2],i[f+28>>2]=e,i[f+20>>2]=e,i[f+16>>2]=e+i[f+48>>2],0)}function C3(f,e,r,A,k,n,t,o,u){var h=0;h=B-16|0,B=h,s4(h,e,r,A,k,n,t,o,u^-2147483648),A=i[h>>2],r=i[h+4>>2],e=i[h+12>>2],i[f+8>>2]=i[h+8>>2],i[f+12>>2]=e,i[f>>2]=A,i[f+4>>2]=r,B=h+16|0}function DX(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0,n=0;return k=i[f+84>>2],A=r+256|0,n=PA(k,0,A),A=n?n-k|0:A,r=r>>>0>A>>>0?A:r,l0(e,k,r),e=k+A|0,i[f+84>>2]=e,i[f+8>>2]=e,i[f+4>>2]=r+k,r|0}function v4(f,e){var r=0,A=0;r=s[f|0],A=s[e|0];i:{if(!r|(r|0)!=(A|0))break i;for(;;){if(A=s[e+1|0],r=s[f+1|0],!r)break i;if(e=e+1|0,f=f+1|0,(r|0)!=(A|0))break}}return r-A|0}function UX(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0;var t=0,o=0;return t=B-16|0,B=t,i[t+8>>2]=624576549,i[t+12>>2]=1394948685,o=f,f=t+16|0,e=B8(o,e,r,A,k,n,t+8|0,f),B=f,e|0}function S9(f,e){var r=0;i:{if(!e||(e=N0(e,67148,67404),!e|i[e+8>>2]&(i[f+8>>2]^-1))||!Q1(i[f+12>>2],i[e+12>>2],0))break i;r=Q1(i[f+16>>2],i[e+16>>2],0)}return r}function MX(f,e,r,A,k){return f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,f=B-16|0,B=f,i[f+12>>2]=k,i[f+8>>2]=A-r,e=B-16|0,B=e,B=e+16|0,B=f+16|0,e=f+8|0,f=f+12|0,i[(k0[e>>2]>2]?e:f)>>2]}function a8(f){var e=0,r=0;return s[f+11|0]>>>7|0?e=i[f>>2]:e=f,s[f+11|0]>>>7|0?r=i[f+4>>2]:r=s[f+11|0]&127,f=B-16|0,B=f,i[f+12>>2]=(r<<2)+e,B=f+16|0,i[f+12>>2]}function xX(f,e,r){f=f|0,e=e|0,r=r|0;var A=0,k=0;return A=i[f+12>>2],k=i[f+8>>2],(A|0)>=(r|0)&k>>>0>=e>>>0|(r|0)<(A|0)&&f3(i[f+4>>2],e,r,0),(r|0)<=(A|0)&e>>>0<=k>>>0|(r|0)<(A|0)}function z6(f){f=f|0;var e=0;return e=i[13631],i[f>>2]=e,i[i[e-12>>2]+f>>2]=i[13639],i[f+12>>2]=53552,i[f+8>>2]=i[13640],l[f+55|0]<0&&G(i[f+44>>2]),K0(f+12|0),T0(f- -64|0),f|0}function zX(){var f=0;return f=U(48),i[f>>2]=0,i[f+4>>2]=0,i[f+32>>2]=0,i[f+36>>2]=0,l[f+24|0]=0,i[f+16>>2]=0,i[f+20>>2]=0,i[f+8>>2]=0,i[f+12>>2]=0,i[f+40>>2]=0,i[f+44>>2]=0,f|0}function HX(){var f=0;return f=U(44),i[f+24>>2]=0,X[f>>1]=5,i[f+4>>2]=0,i[f+8>>2]=0,l[f+40|0]=0,i[f+32>>2]=2,i[f+36>>2]=2,l[f+28|0]=1,i[f+12>>2]=0,i[f+16>>2]=0,X[f+20>>1]=0,f|0}function se(f,e,r,A){var k=0;return k=B-16|0,B=k,r=N4(i[f+44>>2],r),f=i[f+52>>2],r=r+1|0,X[k+14>>1]=r,l[k+12|0]=A,i[k+8>>2]=Q[k+12>>1]|Q[k+14>>1]<<16,c1(f,e,k+8|0),B=k+16|0,r}function TX(f,e,r,A){for(f=f|0,e=e|0,r=r|0,A=A|0;;){if((e|0)!=(r|0)){f=i[e>>2],f>>>0<=127?f=i[(f<<2)+60384>>2]:f=0,i[A>>2]=f,A=A+4|0,e=e+4|0;continue}break}return e|0}function Di(f){var e=0,r=0;e=i[19519],r=f+7&-8,f=e+r|0;i:{if(!(f>>>0<=e>>>0&&r)&&(f>>>0<=jo()<<16>>>0||Cs(f|0)|0))break i;return i[23944]=48,-1}return i[19519]=f,e}function aX(f,e){f=f|0,e=e|0;var r=0,A=0;r=U(8),i[r>>2]=0,i[r+4>>2]=0,A=i[19372],i[f>>2]=i[19371],i[f+4>>2]=A,i[f+8>>2]=i[19373],f=gk(),i[r>>2]=f,m3(f,7,1),m3(f,8,1),i[e>>2]=r}function S8(f){var e=0,r=0;return s[f+11|0]>>>7|0?e=i[f>>2]:e=f,s[f+11|0]>>>7|0?r=i[f+4>>2]:r=s[f+11|0]&127,f=B-16|0,B=f,i[f+12>>2]=e+r,B=f+16|0,i[f+12>>2]}function V3(f){var e=0;if(e=i[19565],i[f>>2]=i[19564],i[f+4>>2]=e,f=f+8|0,l[78275]>=0){e=i[19567],i[f>>2]=i[19566],i[f+4>>2]=e,i[f+8>>2]=i[19568];return}_0(f,i[19566],i[19567])}function SX(f,e,r){if(f=f|0,e=e|0,r=r|0,!(r&&e)){i[f>>2]=5,i[f+4>>2]=2006,i[f+8>>2]=12607;return}i0[r>>3]=i0[e+40>>3],i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}function OX(f,e,r){if(f=f|0,e=e|0,r=r|0,!(r&&e)){i[f>>2]=5,i[f+4>>2]=2006,i[f+8>>2]=12607;return}i[r>>2]=i[e+72>>2],i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}function V8(f){return l[f+26|0]=1,X[f+24>>1]=2,i[f+20>>2]=131074,i[f+12>>2]=8,l[f+8|0]=0,i[f>>2]=99,i[f+4>>2]=99,i[f+16>>2]=72992,l[f+26|0]=1,X[f+24>>1]=6,i[f+20>>2]=851969,f}function O9(f){var e=0,r=0;if(e=i[f>>2],e){r=i[e+12>>2];i:{if((r|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break i}e=i[r>>2]}if((e|0)!=-1)return!i[f>>2];i[f>>2]=0}return 1}function j9(f){var e=0,r=0;if(e=i[f>>2],e){r=i[e+12>>2];i:{if((r|0)==i[e+16>>2]){e=V[i[i[e>>2]+36>>2]](e)|0;break i}e=s[r|0]}if((e|0)!=-1)return!i[f>>2];i[f>>2]=0}return 1}function b1(f,e,r,A,k){var n=0;return n=B-16|0,B=n,i[n+12>>2]=r,i[n+8>>2]=k,r=S4(n+4|0,n+12|0),e=le(f,e,A,i[n+8>>2]),f=i[r>>2],f&&(i[23985]=(f|0)==-1?95820:f),B=n+16|0,e}function jX(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;A2(e,5),A=i[f+4>>2],k1(e,r,A,A>>31),A=i[f+8>>2],k1(e,r,A,A>>31),k1(e,r,i[f+12>>2],0),k1(e,r,i[f+16>>2],0),A2(e,0),D4(e,f+20|0)}function I3(f,e){var r=0,A=0;r=B-16|0,B=r;i:{if(!(s[e+11|0]>>>7|0)){i[f+8>>2]=i[e+8>>2],A=i[e+4>>2],i[f>>2]=i[e>>2],i[f+4>>2]=A;break i}_0(f,i[e>>2],i[e+4>>2])}B=r+16|0}function PX(f,e,r,A){for(f=f|0,e=e|0,r=r|0,A=A|0;;){i:{if((r|0)==(A|0)||(f=i[r>>2],i[(f<<2)+60384>>2]&e&&f>>>0<=127))break i;r=r+4|0;continue}break}return r|0}function LX(f,e,r,A){for(f=f|0,e=e|0,r=r|0,A=A|0;;){i:{if((r|0)==(A|0)||(f=i[r>>2],f>>>0>127|!(i[(f<<2)+60384>>2]&e)))break i;r=r+4|0;continue}break}return r|0}function P9(f,e,r){var A=0;return A=B-16|0,B=A,i[A+12>>2]=e,i[A+8>>2]=r,e=S4(A+4|0,A+12|0),r=sk(f,6131,i[A+8>>2]),f=i[e>>2],f&&(i[23985]=(f|0)==-1?95820:f),B=A+16|0,r}function L9(){var f=0,e=0;return f=B-16|0,B=f,i[f+12>>2]=1073741823,i[f+8>>2]=2147483647,e=B-16|0,B=e,B=e+16|0,B=f+16|0,e=f+8|0,f=f+12|0,i[(k0[e>>2]>2]?e:f)>>2]}function r0(f,e,r,A){return i[f+4>>2]=r,i[f>>2]=e,e=f+8|0,l[A+11|0]>=0?(r=i[A+4>>2],i[e>>2]=i[A>>2],i[e+4>>2]=r,i[e+8>>2]=i[A+8>>2],f):(_0(e,i[A>>2],i[A+4>>2]),f)}function E4(f,e){var r=0,A=0,k=0;r=G2(e),A=l[f+11|0],k=(A|0)<0;i:{if(((k?i[f+4>>2]:A)|0)==(r|0)){if((r|0)==-1)break i;f=!K2(k?i[f>>2]:f,e,r)}else f=0;return f}O3(),P()}function H6(f,e){var r=0;if(e){H6(f,i[e>>2]),H6(f,i[e+4>>2]),f=i[e+24>>2];i:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break i;V[i[i[f>>2]+8>>2]](f),g(f)}G(e)}}function he(f,e){var r=0;if(e){he(f,i[e>>2]),he(f,i[e+4>>2]),f=i[e+24>>2];i:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break i;V[i[i[f>>2]+8>>2]](f),g(f)}G(e)}}function K9(f){var e=0;i[f+52>>2]=i[f+52>>2]-1,e=i[f+48>>2]+1|0,i[f+48>>2]=e,e>>>0>=2048&&(G(i[i[f+36>>2]>>2]),i[f+36>>2]=i[f+36>>2]+4,i[f+48>>2]=i[f+48>>2]-1024)}function KX(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;return A=i[f+12>>2],A=((r|0)<=(A|0)&e>>>0<=k0[f+8>>2]|(r|0)<(A|0))&((r|0)>0|(r|0)>=0),A&&(i[f+16>>2]=e,i[f+20>>2]=r),A|0}function q9(f,e){var r=0,A=0,k=0,n=0;return i[f>>2]=68064,i[f>>2]=68176,r=G2(e),A=U(r+13|0),i[A+8>>2]=0,i[A+4>>2]=r,i[A>>2]=r,k=f,n=l0(A+12|0,e,r+1|0),i[k+4>>2]=n,f}function we(f,e){var r=0,A=0,k=0;k=i[f>>2],r=i[f+4>>2]-k|0,A=r+e|0;i:{if(A>>>0>r>>>0){L2(f,e);break i}if(A>>>0>=r>>>0)break i;i[f+4>>2]=A+k}i[f+12>>2]=i[f+12>>2]+e}function qX(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0;k=B-32|0,B=k,n=k+12|0,UA(n,i[e>>2],r,A,1),P0(f,n,i[e>>2]),l[k+31|0]<0&&G(i[k+20>>2]),B=k+32|0}function $X(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;var n=0;k=B-32|0,B=k,n=k+12|0,UA(n,i[e>>2],r,A,0),P0(f,n,i[e>>2]),l[k+31|0]<0&&G(i[k+20>>2]),B=k+32|0}function bX(f){f=f|0;var e=0;e=i[f+52>>2],e&&(i[f+56>>2]=e,G(e)),l[f+51|0]<0&&G(i[f+40>>2]),l[f+39|0]<0&&G(i[f+28>>2]),l[f+27|0]<0&&G(i[f+16>>2])}function dX(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;for(f=0;;){if((e|0)!=(r|0)){f=i[e>>2]+(f<<4)|0,A=f&-268435456,f=(A|A>>>24)^f,e=e+4|0;continue}break}return f|0}function $9(f){var e=0,r=0;return e=B-16|0,B=e,i[e+12>>2]=f,f=S4(e+8|0,e+12|0),r=i[i[23985]>>2]?4:1,f=i[f>>2],f&&(i[23985]=(f|0)==-1?95820:f),B=e+16|0,r}function cX(f,e){f=f|0,e=e|0;var r=0;r=-1;i:{if(!f|(e|0)<4||(r=0,s[f|0]!=255|s[f+1|0]!=216|s[f+2|0]!=255))break i;r=(s[f+3|0]&240)==224}return r|0}function iG(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;for(f=0;;){if((e|0)!=(r|0)){f=l[e|0]+(f<<4)|0,A=f&-268435456,f=(A|A>>>24)^f,e=e+1|0;continue}break}return f|0}function rG(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0,n=0;k=B-32|0,B=k,n=k+12|0,b7(n,i[e>>2],A,r),P0(f,n,i[e>>2]),l[k+31|0]<0&&G(i[k+20>>2]),B=k+32|0}function b9(){var f=0,e=0;s[79116]||(l[79116]=1),f=i[19772],i[19772]=f+1;i:{if((f|0)>0||(_k(),Zk()))break i;i[19772]=i[19772]-1,e=11}return e|0}function eG(f,e,r){for(f=f|0,e=e|0,r=r|0;;){if((e|0)!=(r|0)){f=i[e>>2],f>>>0<=127&&(f=i[i[14241]+(f<<2)>>2]),i[e>>2]=f,e=e+4|0;continue}break}return e|0}function AG(f,e,r){for(f=f|0,e=e|0,r=r|0;;){if((e|0)!=(r|0)){f=i[e>>2],f>>>0<=127&&(f=i[i[14628]+(f<<2)>>2]),i[e>>2]=f,e=e+4|0;continue}break}return e|0}function d9(f,e,r,A,k){var n=0;return n=B-16|0,B=n,i[n+12>>2]=k,k=S4(n+8|0,n+12|0),e=B6(f,e,r,A),f=i[k>>2],f&&(i[23985]=(f|0)==-1?95820:f),B=n+16|0,e}function c9(f,e,r){var A=0;return A=B-16|0,B=A,i[A+8>>2]=e,i[A+12>>2]=f,i[A+4>>2]=r,e=0,B=A+16|0,f=A+4|0,k0[f>>2]>=k0[A+12>>2]&&(e=k0[f>>2]>2]),e}function it(f){var e=0;l[f+27|0]<0&&G(i[f+16>>2]),f=i[f+4>>2];i:{if(!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}}function fG(f){return f=f|0,s[100300]?i[25074]:(s[101400]||(l[101400]=1),Y2(101376,15001),Y2(101388,14995),l[100300]=1,i[25074]=101376,101376)}function kG(f){return f=f|0,s[100308]?i[25076]:(s[101432]||(l[101432]=1),E2(101408,66848),E2(101420,66860),l[100308]=1,i[25076]=101408,101408)}function rt(f){var e=0;if(V[i[i[f>>2]+20>>2]](f),e=i[f+36>>2],f=i[f+40>>2],(e|0)!=(f|0))for(;rt(i[e>>2]),e=e+8|0,(f|0)!=(e|0););}function nG(f,e,r,A,k){for(f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;;){if((e|0)!=(r|0)){f=i[e>>2],l[k|0]=f>>>0<128?f:A,k=k+1|0,e=e+4|0;continue}break}return e|0}function tG(f,e,r){for(f=f|0,e=e|0,r=r|0;;){if((e|0)!=(r|0)){f=l[e|0],(f|0)>=0&&(f=i[i[14241]+(f<<2)>>2]),l[e|0]=f,e=e+1|0;continue}break}return e|0}function oG(f,e,r){for(f=f|0,e=e|0,r=r|0;;){if((e|0)!=(r|0)){f=l[e|0],(f|0)>=0&&(f=i[i[14628]+(f<<2)>>2]),l[e|0]=f,e=e+1|0;continue}break}return e|0}function Q3(f,e,r,A){e=se(i[f+48>>2],e,r,A),f=i[r+4>>2];i:{if(!f||(r=i[f+4>>2],i[f+4>>2]=r-1,r))break i;V[i[i[f>>2]+8>>2]](f),g(f)}return e}function lG(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;A2(e,1),A=i[f+4>>2],k1(e,r,A,A>>31),A=i[f+8>>2],k1(e,r,A,A>>31),k1(e,r,i[f+12>>2],0),k1(e,r,i[f+16>>2],0)}function uG(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;A2(e,2),A=i[f+4>>2],k1(e,r,A,A>>31),A=i[f+8>>2],k1(e,r,A,A>>31),k1(e,r,i[f+12>>2],0),k1(e,r,i[f+16>>2],0)}function sG(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;A2(e,4),A=i[f+4>>2],k1(e,r,A,A>>31),A=i[f+8>>2],k1(e,r,A,A>>31),k1(e,r,i[f+12>>2],0),k1(e,r,i[f+16>>2],0)}function _e(f,e,r,A){return i[f>>2]=i[e>>2],e=i[e+4>>2],l[f+20|0]=0,i[f+16>>2]=r,i[f+12>>2]=0,i[f+8>>2]=A,i[f+4>>2]=e,A&&(i[f+12>>2]=i[A+12>>2]+1),f}function hG(f,e,r,A,k){for(f=f|0,e=e|0,r=r|0,A=A|0,k=k|0;;){if((e|0)!=(r|0)){f=l[e|0],l[k|0]=(f|0)<0?A:f,k=k+1|0,e=e+1|0;continue}break}return e|0}function et(f){f=f|0;var e=0;return e=1,i[f+4>>2]-32768>>>0<4294901760|i[f+8>>2]-32768>>>0<4294901760|k0[f+12>>2]>65535||(e=k0[f+16>>2]>65535),e|0}function At(f,e,r,A){var k=0,n=0;k=B-16|0,B=k,i[k+12>>2]=r,n=e,e=r-e|0,Qo(A,n,e>>2),i[k+8>>2]=e+A,i[f>>2]=i[k+12>>2],i[f+4>>2]=i[k+8>>2],B=k+16|0}function wG(f,e,r,A,k,n,t,o,u,h){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0,h=h|0;var w=0;return w=e,e=0,V[f|0](w,r,A,k,n,e|t,o,e|u,h)|0}function _G(f,e,r,A,k,n){if(f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,Q1(f,i[e+8>>2],n)){n3(e,r,A,k);return}f=i[f+8>>2],V[i[i[f>>2]+20>>2]](f,e,r,A,k,n)}function ft(f,e,r){var A=0,k=0,n=0;A=B-16|0,B=A,k=A,n=O8(e),i[k+12>>2]=n,k=A,n=O8(r),i[k+8>>2]=n,i[f>>2]=i[A+12>>2],i[f+4>>2]=i[A+8>>2],B=A+16|0}function c(f,e,r){var A=0,k=0,n=0;A=B-16|0,B=A,k=i[12469],n=s[e|0]==42,n||F1(21517,6,1,k),i[A+12>>2]=r,qr(f,e+n|0,r,976,977),x8(k),B=A+16|0}function U(f){var e=0,r=0;for(r=f>>>0<=1?1:f;;){i:{if(f=Z2(r),f||(e=i[25435],!e))break i;V[e|0]();continue}break}return f||o4(),f}function kt(f,e,r,A){var k=0,n=0;k=B-16|0,B=k,i[k+12>>2]=r,n=e,e=r-e|0,Jo(A,n,e),i[k+8>>2]=e+A,i[f>>2]=i[k+12>>2],i[f+4>>2]=i[k+8>>2],B=k+16|0}function y3(f,e,r){var A=0;return A=B-16|0,B=A,i[A+12>>2]=r,r=S4(A+8|0,A+12|0),e=ie(f,e),f=i[r>>2],f&&(i[23985]=(f|0)==-1?95820:f),B=A+16|0,e}function ve(f){var e=0,r=0;e=B-16|0,B=e,r=-1;i:{if(g6(f)||(V[i[f+32>>2]](f,e+15|0,1)|0)!=1)break i;r=s[e+15|0]}return B=e+16|0,r}function nt(f,e){var r=0;return r=e>>31,f=f^r,hn(f-r|0,(e^r)-((f>>>0>>0)+r|0)|0,100,0),w0=c8,f=r^d8,e=f-r|0,w0=(r^w0)-((f>>>0>>0)+r|0)|0,e}function G4(f){f=f|0;var e=0,r=0;if(f){e=i[f+4>>2];i:{if(!e||(r=i[e+4>>2],i[e+4>>2]=r-1,r))break i;V[i[i[e>>2]+8>>2]](e),g(e)}G(f)}}function F1(f,e,r,A){var k=0;k=m(e,r);i:{if(i[A+76>>2]<0){f=ee(f,k,A);break i}f=ee(f,k,A)}return(k|0)==(f|0)?e?r:0:(f>>>0)/(e>>>0)|0}function F3(f,e,r,A,k,n,t,o,u,h,w,_,v,Z){if((Z|0)<=8){V[i[f+12>>2]](e,r,A,k,n,t,o,u,h,w,_,v);return}V[i[f+28>>2]](e,r,A,k,n,t,o,u,h,w,_,v,Z)}function vG(f,e){f=f|0,e=e|0;i:{if(i[19575]||(mA(),!s[78304]))break i;bA()}i[19575]=i[19575]+1,i[f+8>>2]=34640,i[f>>2]=0,i[f+4>>2]=0}function tt(f){f=f|0;var e=0;i[f+2192>>2]&&(e=i[f+2188>>2],l[i[i[i[f+2176>>2]+(e>>>8&16777212)>>2]+((e&1023)<<2)>>2]+104|0]=0,K9(f+2140|0))}function mG(f){f=f|0;var e=0,r=0,A=0;r=f,e=k0[f+56>>2]>65535?3:s[f+124|0]?2:0,A=i[f+68>>2],f=l[f+75|0],l[r+48|0]=((f|0)<0?A:f)&&e>>>0<=2?2:e}function E3(f,e,r){var A=0;A=1;i:switch(r|0){case 2:return!(f&1);case 1:return!((f|e)&1);default:A=0;break;case 0:case 3:break i}return A}function BG(f){f=f|0;var e=0;f&&(e=i[f+4>>2],e&&G(e),e=i[f+8>>2],e&&G(e),e=i[f+12>>2],e&&G(e),e=i[f+16>>2],e&&G(e),G(f))}function ZG(f,e){f=f|0,e=e|0;var r=0,A=0;V[i[i[f>>2]+24>>2]](f)|0,e=x0(e,100200),i[f+36>>2]=e,r=f,A=V[i[i[e>>2]+28>>2]](e)|0,l[r+44|0]=A}function pG(f,e){f=f|0,e=e|0;var r=0,A=0;V[i[i[f>>2]+24>>2]](f)|0,e=x0(e,100208),i[f+36>>2]=e,r=f,A=V[i[i[e>>2]+28>>2]](e)|0,l[r+44|0]=A}function WG(f,e,r,A,k,n,t,o,u){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,u=u|0;var h=0;return h=e,e=0,V[f|0](h,r,A,k,e|n,t,e|o,u)|0}function ot(f){var e=0;e=i[f+60>>2],e&&(i[f+64>>2]=e,G(e)),e=i[f+48>>2],e&&(i[f+52>>2]=e,G(e)),e=i[f+36>>2],e&&(i[f+40>>2]=e,G(e))}function me(f,e,r){var A=0;A=i0[r>>3],i0[f>>3]=i0[e+32>>3]+(A*i0[e>>3]+A*i0[e+8>>3]),i0[f+8>>3]=i0[e+40>>3]+(A*i0[e+16>>3]+i0[r+8>>3]*i0[e+24>>3])}function XG(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;r=e,e=i[e>>2]+7&-8,i[r>>2]=e+16,A=f,k=YA(i[e>>2],i[e+4>>2],i[e+8>>2],i[e+12>>2]),i0[A>>3]=k}function lt(f,e){var r=0;return r=i[f+24>>2],(r|0)==i[f+28>>2]?V[i[i[f>>2]+52>>2]](f,e&255)|0:(i[f+24>>2]=r+1,l[r|0]=e,e&255)}function GG(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=+A,k=+k,n=+n,f&&(l[f+24|0]=0,i0[f+16>>3]=n/+(r|0),n=k,k=+(e|0),i0[f+8>>3]=n/k,i0[f>>3]=A/k)}function Y3(f,e,r,A,k,n){var t=0,o=0;t=i[f+4>>2],o=t>>8,f=i[f>>2],t&1&&(o=i[i[A>>2]+o>>2]),V[i[i[f>>2]+20>>2]](f,e,r,A+o|0,t&2?k:2,n)}function CG(f){f=f|0;var e=0;return f=i[f>>2],e=i[f+64>>2],f=i[f+68>>2],!f|i[f+4>>2]!=-1||(V[i[i[f>>2]+8>>2]](f),g(f)),(e|0)!=0|0}function ut(f,e,r){var A=0;A=B-16|0,B=A;i:{if(!(l[e+120|0]&1|r>>>0>30)){l[e+120|0]=1;break i}e=eo(r)}B=A+16|0,i[f+4>>2]=r,i[f>>2]=e}function VG(f,e){f=f|0,e=e|0,e&&(f=f<<24|(f&65280)<<8|(f>>>8&65280|f>>>24),l[e|0]=f,l[e+1|0]=f>>>8,l[e+2|0]=f>>>16,l[e+3|0]=f>>>24)}function Be(f,e,r,A,k){var n=0,t=0;n=i[f+4>>2],t=n>>8,f=i[f>>2],n&1&&(t=i[i[r>>2]+t>>2]),V[i[i[f>>2]+24>>2]](f,e,r+t|0,n&2?A:2,k)}function st(f,e,r,A,k,n){f=V[i[i[f+8>>2]+4>>2]](f+8|0)|0,f=Nr(r,A,f,f+288|0,n,k,0)-f|0,(f|0)<=287&&(i[e>>2]=((f|0)/12|0)%12)}function ht(f,e,r,A,k,n){f=V[i[i[f+8>>2]+4>>2]](f+8|0)|0,f=Rr(r,A,f,f+288|0,n,k,0)-f|0,(f|0)<=287&&(i[e>>2]=((f|0)/12|0)%12)}function wt(f,e){if(!i[e+4>>2]){V[i[i[e>>2]+36>>2]](f,e+4|0);return}e=i[18138],i[f>>2]=i[18137],i[f+4>>2]=e,i[f+8>>2]=i[18139]}function IG(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,A&&(i[A>>2]=0),e=i[18282],i[f>>2]=i[18281],i[f+4>>2]=e,i[f+8>>2]=i[18283]}function QG(f,e,r,A){for(f=f|0,e=e|0,r=r|0,A=A|0;;){if((e|0)!=(r|0)){i[A>>2]=l[e|0],A=A+4|0,e=e+1|0;continue}break}return e|0}function yG(f,e,r,A){for(f=f|0,e=e|0,r=r|0,A=A|0;;){if((e|0)!=(r|0)){l[A|0]=s[e|0],A=A+1|0,e=e+1|0;continue}break}return e|0}function FG(f){f=f|0;var e=0,r=0;return e=U(8),r=i[f+8>>2],f=i[f+12>>2],f&&(i[f+4>>2]=i[f+4>>2]+1),i[e+4>>2]=f,i[e>>2]=r,e|0}function _t(f,e,r){var A=0;for(A=B-16|0,B=A,l[A+15|0]=r;;){if(e){l[f|0]=s[A+15|0],e=e-1|0,f=f+1|0;continue}break}B=A+16|0}function EG(f,e,r,A){if(f=f|0,e=e|0,r=r|0,A=A|0,Q1(f,i[e+8>>2],0)){v3(e,r,A);return}f=i[f+8>>2],V[i[i[f>>2]+28>>2]](f,e,r,A)}function O8(f){var e=0;return e=B-16|0,B=e,i[e+12>>2]=f,f=B-16|0,B=f,i[f+12>>2]=i[e+12>>2],B=f+16|0,B=e+16|0,i[f+12>>2]}function YG(f,e){f=f|0,e=e|0;var r=0;return e=N0(e,68572,68596),!e|i[f+56>>2]!=i[e+56>>2]||(r=i[f+60>>2]==i[e+60>>2]),r|0}function g(f){var e=0,r=0;i:{if(e=f+8|0,i[e>>2]&&(r=e,e=i[e>>2]-1|0,i[r>>2]=e,(e|0)!=-1))break i;V[i[i[f>>2]+16>>2]](f)}}function Ze(f){var e=0;e=i[f+328>>2],i[f+328>>2]=e-1,i[f+336>>2]=i[f+336>>2]+1,!((e|0)>0)&&(C0(17278,14027,677,4391),P())}function vt(f){return i[f>>2]=53392,CA(f+4|0),i[f+24>>2]=0,i[f+28>>2]=0,i[f+16>>2]=0,i[f+20>>2]=0,i[f+8>>2]=0,i[f+12>>2]=0,f}function mt(f,e,r,A,k,n){f=V[i[i[f+8>>2]>>2]](f+8|0)|0,f=Nr(r,A,f,f+168|0,n,k,0)-f|0,(f|0)<=167&&(i[e>>2]=((f|0)/12|0)%7)}function Bt(f,e,r,A,k,n){f=V[i[i[f+8>>2]>>2]](f+8|0)|0,f=Rr(r,A,f,f+168|0,n,k,0)-f|0,(f|0)<=167&&(i[e>>2]=((f|0)/12|0)%7)}function JG(f,e){f=f|0,e=e|0;var r=0;return r=i[f+2152>>2],f=i[f+2148>>2],r-f>>2>>>0>e>>>0?f=i[f+(e<<2)>>2]:f=0,f|0}function $0(f){return i[f>>2]=53144,CA(f+4|0),i[f+24>>2]=0,i[f+28>>2]=0,i[f+16>>2]=0,i[f+20>>2]=0,i[f+8>>2]=0,i[f+12>>2]=0,f}function b0(f,e){i[f+20>>2]=0,i[f+24>>2]=e,i[f+12>>2]=0,i[f+4>>2]=4098,i[f+8>>2]=6,i[f+16>>2]=!e,B0(f+32|0,0,40),CA(f+28|0)}function v1(f){var e=0;i:{if(f=i[f+4>>2],!f||(e=i[f+4>>2],i[f+4>>2]=e-1,e))break i;V[i[i[f>>2]+8>>2]](f),g(f)}}function Zt(f,e,r){var A=0;A=B-16|0,B=A;i:if(s[f+11|0]>>>7|0)break i;wi(f,r),l[A+15|0]=0,l[e+r|0]=s[A+15|0],B=A+16|0}function gG(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;return A=i[e+12>>2],f=i[f+16>>2]==1970628964?24:8,we(e,r?f+8|0:f),we(e,4),A|0}function pt(f){var e=0;return e=i[f+12>>2],(e|0)==i[f+16>>2]?V[i[i[f>>2]+40>>2]](f)|0:(i[f+12>>2]=e+4,i[e>>2])}function NG(f){f=f|0;var e=0;return(V[i[i[f>>2]+36>>2]](f)|0)==-1?-1:(e=f,f=i[f+12>>2],i[e+12>>2]=f+4,i[f>>2])}function Wt(){var f=0;return s[79116]||(l[79116]=1),f=i[19772],(f|0)<=0?12:(f=f-1|0,i[19772]=f,f||Eo(),0)}function Xt(f){f=f|0;var e=0,r=0;return i[f>>2]=68176,e=i[f+4>>2]-12|0,r=i[e+8>>2]-1|0,i[e+8>>2]=r,(r|0)<0&&G(e),f|0}function Gt(f){var e=0;i[f+8>>2]=0,i[f+12>>2]=0,e=i[f+16>>2],i[f+16>>2]=0,e=e>>3,i[f>>2]=i[f>>2]-e,i[f+4>>2]=e+i[f+4>>2]}function V1(f,e){return i[f+4>>2]=e,l[f|0]=0,e=i[i[e>>2]-12>>2]+e|0,i[e+16>>2]||(e=i[e+72>>2],e&&Ni(e),l[f|0]=1),f}function RG(f){f=f|0;var e=0;return(V[i[i[f>>2]+36>>2]](f)|0)==-1?-1:(e=f,f=i[f+12>>2],i[e+12>>2]=f+1,s[f|0])}function Ct(f){var e=0;return e=i[f+12>>2],(e|0)==i[f+16>>2]?V[i[i[f>>2]+40>>2]](f)|0:(i[f+12>>2]=e+1,s[e|0])}function Vt(f){return f=(f|0)>2147481747?f-2e3|0:f,f&3?0:(f=f+1900|0,(f|0)%100|0?1:!((f|0)%400|0))}function It(f,e,r){var A=0,k=0;A=i0[r>>3],k=i0[r+8>>3],i0[f>>3]=A*i0[e>>3]+k*i0[e+8>>3],i0[f+8>>3]=A*i0[e+16>>3]+k*i0[e+24>>3]}function Y4(f,e,r,A){i[r+12>>2]=A,V[i[i[e>>2]+36>>2]](f,e,r,i[r+4>>2]-(i[r>>2]+A|0)|0,0),i[r+12>>2]=i[r+4>>2]-i[r>>2]}function O0(f){var e=0;f=i[f>>2],(f|0)!=100008&&(e=i[f+4>>2]-1|0,i[f+4>>2]=e,(e|0)==-1&&V[i[i[f>>2]+8>>2]](f))}function DG(f,e){f=f|0,e=e|0;var r=0,A=0;r=U(1),i[f+8>>2]=i[18554],A=i[18553],i[f>>2]=i[18552],i[f+4>>2]=A,i[e>>2]=r}function UG(f){f=f|0;var e=0,r=0;if(e=i[f>>2],e)for(;G(e),r=r+1|0,e=i[(r<<2)+f>>2],!!e;);G(f)}function MG(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0;var k=0;return k=B-16|0,B=k,V[f|0](k+8|0,e,r,A),B=k+16|0,i[k+12>>2]}function Qt(f,e,r,A,k,n){i[f>>2]=e,i[f+4>>2]=r,i[f+8>>2]=A,i[f+12>>2]=k&65535|(n>>>16&32768|(k&2147418112)>>>16)<<16}function pe(f,e,r){var A=0;A=B-16|0,B=A,i[A+12>>2]=e,i[A+8>>2]=r,i[f>>2]=i[A+12>>2],i[f+4>>2]=i[A+8>>2],B=A+16|0}function J3(f,e){var r=0;return r=B-16|0,B=r,i[r+12>>2]=i[f>>2],i[r+12>>2]=i[r+12>>2]+(e<<2),B=r+16|0,i[r+12>>2]}function xG(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;return A=i[e+12>>2],f=i[f+16>>2]==1970628964?24:8,we(e,r?f+8|0:f),A|0}function S4(f,e){var r=0;return r=i[23985],e=i[e>>2],e&&(i[23985]=(e|0)==-1?95820:e),i[f>>2]=(r|0)==95820?-1:r,f}function zG(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;A=B-16|0,B=A,i[A+8>>2]=1,i[A+12>>2]=485,Qk(f,e,A+8|0,r),B=A+16|0}function hi(f,e,r,A){var k=0;k=B-32|0,B=k,Wr(k+12|0,i[f+60>>2],e,r,A),l[k+31|0]<0&&G(i[k+20>>2]),B=k+32|0}function A8(f){i:{if(f=i[f+4>>2]&74,f){if((f|0)==64)return 8;if((f|0)!=8)break i;return 16}return 0}return 10}function HG(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=i[18556],i[f>>2]=i[18555],i[f+4>>2]=e,i[f+8>>2]=i[18557]}function TG(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,e=i[18553],i[f>>2]=i[18552],i[f+4>>2]=e,i[f+8>>2]=i[18554]}function yt(f,e){var r=0,A=0;A=i[e>>2],i[e>>2]=0,r=i[f>>2],i[f>>2]=A,r&&V[i[f+4>>2]](r),i[f+4>>2]=i[e+4>>2]}function Q1(f,e,r){return r?(f|0)==(e|0)?1:!v4(i[f+4>>2],i[e+4>>2]):i[f+4>>2]==i[e+4>>2]}function g3(f){f=f|0;var e=0;return e=i[13752],i[f>>2]=e,i[i[e-12>>2]+f>>2]=i[13755],I6(f+8|0),T0(f+108|0),f|0}function N3(f){f=f|0;var e=0;return e=i[13791],i[f>>2]=e,i[i[e-12>>2]+f>>2]=i[13794],I6(f+4|0),T0(f+104|0),f|0}function o1(f,e,r){var A=0;return A=B-16|0,B=A,i[A+12>>2]=e,i[f>>2]=i[A+12>>2],i[f+4>>2]=i[r>>2],B=A+16|0,f}function aG(f,e,r){f=f|0,e=e|0,r=r|0,f=i[e+4>>2],f&&G(f),f=i[e+8>>2],f&&G(f),f=i[e+12>>2],f&&G(f)}function R3(f,e){var r=0;return r=B-16|0,B=r,i[r+12>>2]=i[f>>2],i[r+12>>2]=i[r+12>>2]+e,B=r+16|0,i[r+12>>2]}function SG(f,e,r){f=f|0,e=e|0,r=r|0,s3(i[e>>2],r),i[f+8>>2]=i[18412],e=i[18411],i[f>>2]=i[18410],i[f+4>>2]=e}function Ft(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,i[f+8>>2]=-1,i[f+12>>2]=-1,i[f>>2]=0,i[f+4>>2]=0}function D3(f){f=f|0;var e=0;return e=i[13707],i[f>>2]=e,i[i[e-12>>2]+f>>2]=i[13710],K3(f+4|0),T0(f+56|0),f|0}function wi(f,e){if(s[f+11|0]>>>7|0){i[f+4>>2]=e;return}l[f+11|0]=s[f+11|0]&128|e&127,l[f+11|0]=s[f+11|0]&127}function OG(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;A2(e,0),A=i[f+4>>2],k1(e,r,A,A>>31),f=i[f+8>>2],k1(e,r,f,f>>31)}function C4(f){var e=0;return s[f+11|0]>>>7|0&&(f=i[f>>2]),e=B-16|0,B=e,i[e+12>>2]=f,B=e+16|0,i[e+12>>2]}function Et(f,e,r,A,k){e=q4(e,r,A,k,4),s[A|0]&4||(i[f>>2]=((e|0)<69?e+2e3|0:e>>>0<100?e+1900|0:e)-1900)}function Yt(f,e,r,A,k){e=$4(e,r,A,k,4),s[A|0]&4||(i[f>>2]=((e|0)<69?e+2e3|0:e>>>0<100?e+1900|0:e)-1900)}function T6(f,e,r){f=f|0,e=e|0,r=r|0;i:{if(f&&(f=i[f>>2],f))break i;return i[r>>2]=0,0}return v0(f,e,r)|0}function U3(f,e,r){if(r)for(;;){if(i[f>>2]==(e|0))return f;if(f=f+4|0,r=r-1|0,!r)break}return 0}function jG(f,e){f=f|0,e=e|0;var r=0,A=0,k=0;f=i[f>>2],r=e>>31,A=f,k=q0(e,r,e,r),i[A+64>>2]=k,i[f+68>>2]=w0}function M3(f,e){var r=0;r=f+4|0,i[r>>2]=55348,i[r>>2]=53680,i[f>>2]=53260,i[r>>2]=53280,Qe(i[13312]+f|0,e)}function x3(f,e){var r=0;r=f+4|0,i[r>>2]=55348,i[r>>2]=54116,i[f>>2]=53508,i[r>>2]=53528,Qe(i[13374]+f|0,e)}function Jt(f,e){e&&(X[f+4>>1]=i[e+4>>2],X[f+6>>1]=i[e+8>>2],X[f+8>>1]=i[e+12>>2],l[f+10|0]=s[e+16|0]!=0)}function PG(f,e,r){f=f|0,e=e|0,r=r|0,i[r>>2]=100,i[f+8>>2]=i[18554],e=i[18553],i[f>>2]=i[18552],i[f+4>>2]=e}function LG(f){f=f|0;var e=0;return e=i[f+4>>2],i[f+4>>2]=0,i[f>>2]=68360,e&&V[i[i[e>>2]+4>>2]](e),f|0}function KG(f,e,r){f=f|0,e=e|0,r=r|0;var A=0;return A=B-16|0,B=A,V[f|0](A+8|0,e,r),B=A+16|0,i[A+12>>2]}function gt(){var f=0;return f=Z2(52),f&&(l[f+16|0]=1,i[f+12>>2]=6,i[f+4>>2]=1,i[f+8>>2]=13,l[f|0]=1),f|0}function Nt(f,e,r,A,k,n,t,o){return f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,i[k>>2]=r,i[o>>2]=n,3}function _i(f,e){var r=0,A=0;return r=i[f+56>>2],A=e,e=i[f+60>>2],r=U3(r,A,e-r>>2),((r||e)|0)!=i[f+60>>2]}function qG(f,e,r){f=f|0,e=e|0,r=r|0,i[r>>2]=1,i[f+8>>2]=i[18554],e=i[18553],i[f>>2]=i[18552],i[f+4>>2]=e}function $G(f,e,r){f=f|0,e=e|0,r=r|0,i[r>>2]=0,i[f+8>>2]=i[18554],e=i[18553],i[f>>2]=i[18552],i[f+4>>2]=e}function Rt(f,e,r){return f=f|0,e=e|0,r=r|0,e=e>>>0>k0[f+8>>2],f=i[f+12>>2],(e&(r|0)>=(f|0)|(f|0)<(r|0))<<1}function Dt(f){Q[f+8>>1]==2&&(X[f+8>>1]=6),Q[f+4>>1]==2&&(X[f+4>>1]=1),Q[f+6>>1]==2&&(X[f+6>>1]=13)}function bG(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,e=i[18553],i[f>>2]=i[18552],i[f+4>>2]=e,i[f+8>>2]=i[18554]}function a6(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,e=i[18556],i[f>>2]=i[18555],i[f+4>>2]=e,i[f+8>>2]=i[18557]}function dG(f){f=f|0;var e=0,r=0;return f=i[f+4>>2],e=G2(f)+1|0,r=Z2(e),r?f=l0(r,f,e):f=0,f|0}function cG(f){f=f|0;var e=0;e=i[f+4>>2],i[f+4>>2]=0,i[f>>2]=68360,e&&V[i[i[e>>2]+4>>2]](e),G(f)}function iC(f,e,r){return f=f|0,e=e|0,r=r|0,f=V[i[i[f+4>>2]+16>>2]](e,r,i[f+8>>2])|0,(f>>>0>=2?2:f)|0}function Ut(f){if(i[f+20>>2]!=i[f+24>>2])for(;On(f),i[f+20>>2]!=i[f+24>>2];);}function z3(f){i[f+136>>2]||(i[f+136>>2]=i[i[23985]>>2]?55472:55448),i[f+72>>2]||(i[f+72>>2]=1)}function rC(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,v8(f,e,r,A,k,n,t,1,1,o)}function eC(f){f=f|0;var e=0;return e=B-16|0,B=e,s9(e,i[f+4>>2]),B=e+16|0,w0=i[e+12>>2],i[e+8>>2]}function AC(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,v8(f,e,r,A,k,n,t,1,2,o)}function fC(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,v8(f,e,r,A,k,n,t,1,3,o)}function kC(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,v8(f,e,r,A,k,n,t,2,1,o)}function nC(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,v8(f,e,r,A,k,n,t,2,2,o)}function tC(f,e){return f=f|0,e=e|0,e>>>0<=2?f=i[i[f+124>>2]+i[(e<<2)+41368>>2]>>2]:f=0,f|0}function oC(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,v8(f,e,r,A,k,n,t,2,3,o)}function lC(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,v8(f,e,r,A,k,n,t,3,1,o)}function uC(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,v8(f,e,r,A,k,n,t,3,3,o)}function sC(){i[19641]=1,i[19635]=5952,i[19634]=3,i[19633]=9093,i[19632]=2,i[19617]=0,i[19616]=78528}function hC(f,e,r,A,k,n,t,o){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,o=o|0,v8(f,e,r,A,k,n,t,3,2,o)}function wC(f,e,r){return f=f|0,e=e|0,r=r|0,r>>>0<=127?f=(i[(r<<2)+60384>>2]&e)!=0:f=0,f|0}function Mt(f,e){var r=0;r=B-16|0,B=r;i:{if((f|0)==(e|0)){l[f+120|0]=0;break i}Q8(e,4)}B=r+16|0}function H3(f,e,r){var A=0;return A=B-16|0,B=A,r=U3(f,i[r>>2],e-f>>2),B=A+16|0,((r||e)-f|0)+f|0}function _C(f,e,r,A,k,n,t){return f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,V[f|0](e,r,A,k,n,t)|0}function We(f){if(i[f+336>>2]!=i[f+340>>2])for(;i[f+336>>2]!=i[f+340>>2];);}function Xe(f,e){e&&(Xe(f,i[e>>2]),Xe(f,i[e+4>>2]),f=i[e+16>>2],i[e+16>>2]=0,f&&G(f),G(e))}function xt(f,e){var r=0;for(r=i[f+4>>2];;){if((e|0)!=(r|0)){r=r-4|0;continue}break}i[f+4>>2]=e}function vC(f,e){f=f|0,e=e|0;var r=0;return r=B-16|0,B=r,V[f|0](r+8|0,e),B=r+16|0,i[r+12>>2]}function T3(f,e,r){var A=0;return A=B-16|0,B=A,r=PA(f,l[r|0],e-f|0),B=A+16|0,((r||e)-f|0)+f|0}function mC(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,Q1(f,i[e+8>>2],n)&&n3(e,r,A,k)}function a3(f,e,r){f=f|0,e=e|0,r=r|0,e=i[18553],i[f>>2]=i[18552],i[f+4>>2]=e,i[f+8>>2]=i[18554]}function BC(f){f=f|0;var e=0;f&&(e=i[f+4>>2],e&&(V[i[i[f>>2]+40>>2]](e),i[f+4>>2]=0),G(f))}function ZC(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,V[i[i[e>>2]+16>>2]](f,e,i[r+8>>2],i[r+12>>2],0,A)}function zt(f){f=f|0;var e=0;i:{if(!f||(f=i[f>>2],!f))break i;e=i[f+24>>2]}return e|0}function Ht(f){f=f|0;var e=0;i:{if(!f||(f=i[f>>2],!f))break i;e=i[f+28>>2]}return e|0}function pC(f,e,r){f=f|0,e=e|0,r=r|0,e=i[18282],i[f>>2]=i[18281],i[f+4>>2]=e,i[f+8>>2]=i[18283]}function S6(f,e,r){(r|0)<0&&(C0(17266,14055,138,5756),P()),i[f+4>>2]=e,i[f>>2]=e,i[f+8>>2]=e+r}function Tt(f){f=f|0;var e=0;return i[f>>2]=60332,e=i[f+8>>2],!e|s[f+12|0]!=1||G(e),f|0}function WC(f){f=f|0;var e=0;return f=i[f>>2],i[f+32>>2]==1&&(e=i[f+36>>2]==3?4:10),y4(f,e)|0}function XC(f){f=f|0;var e=0;return f=i[f>>2],i[f+32>>2]==1&&(e=i[f+36>>2]==3?4:10),F4(f,e)|0}function at(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,i[f+8>>2]=-1,i[f+12>>2]=-1,i[f>>2]=0,i[f+4>>2]=0}function St(f,e){var r=0;return r=f+8|0,f=i[r>>2],i[f+(e<<2)>>2]!=0&i[r+4>>2]-f>>2>>>0>e>>>0}function Ot(f){var e=0,r=0;for(r=f;e=r,r=e+4|0,!!i[e>>2];);return e-f>>2}function GC(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,V[i[i[e>>2]+92>>2]](f,i[e+4>>2],r,A,k)}function _2(){var f=0;f=Ne(4),i[f>>2]=68064,i[f>>2]=68024,i[f>>2]=68044,wr(f|0,68156,20),P()}function S3(f,e){var r=0;i:{if(r=i[f>>2],!r||(lt(r,e)|0)!=-1)break i;i[f>>2]=0}}function CC(f){f=f|0;var e=0;return i[f>>2]=73364,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function VC(f){f=f|0;var e=0;return i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),f|0}function IC(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,m8(f,e,r,A,k,n,t,1,1)}function QC(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,m8(f,e,r,A,k,n,t,1,2)}function yC(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,m8(f,e,r,A,k,n,t,1,3)}function FC(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,m8(f,e,r,A,k,n,t,2,1)}function EC(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,m8(f,e,r,A,k,n,t,2,2)}function YC(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,m8(f,e,r,A,k,n,t,2,3)}function JC(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,m8(f,e,r,A,k,n,t,3,1)}function gC(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,m8(f,e,r,A,k,n,t,3,2)}function NC(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,m8(f,e,r,A,k,n,t,3,3)}function RC(f){f=f|0;var e=0;return i[f>>2]=73276,e=i[f+8>>2],e&&(i[f+12>>2]=e,G(e)),f|0}function DC(f){f=f|0;var e=0;return i[f>>2]=72952,e=i[f+8>>2],e&&(i[f+12>>2]=e,G(e)),f|0}function UC(f){return f=f|0,i[f+4>>2]-32768>>>0<4294901760|i[f+8>>2]-32768>>>0<4294901760}function MC(f,e,r,A,k,n,t){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,t=t|0,V[f|0](e,r,A,k,n,t)}function jt(f,e){f=f|0,e=e|0;i:{if(!e||(f=i[e>>2],!f))break i;G(f),i[e>>2]=0}}function I8(f,e,r,A){var k=0;return k=B-16|0,B=k,i[k+12>>2]=A,f=le(f,e,r,A),B=k+16|0,f}function Pt(f){f=f|0;var e=0;f=i[i[i[f>>2]>>2]>>2],e=i[25045]+1|0,i[25045]=e,i[f+4>>2]=e}function a0(f,e){var r=0,A=0;return r=e&31,A=(-1>>>r&f)<>>f}function U4(f,e){f=f|0,e=e|0,e=B-16|0,B=e,i[f>>2]=0,i[f+4>>2]=0,i[f+8>>2]=0,B=e+16|0}function xC(f,e,r){return f=f|0,e=e|0,r=r|0,!(V[i[i[f+4>>2]+12>>2]](e,r,i[f+8>>2])|0)|0}function zC(f,e){f=f|0,e=e|0,e=i[18282],i[f>>2]=i[18281],i[f+4>>2]=e,i[f+8>>2]=i[18283]}function x0(f,e){return f=i[f>>2],e=r1(e),St(f,e)||(u1(),P()),i[i[f+8>>2]+(e<<2)>>2]}function Lt(f,e){var r=0;return r=B-16|0,B=r,i[r+12>>2]=e,f=sk(f,8823,e),B=r+16|0,f}function Kt(f){(f|0)!=0&(f|0)!=55448&(f|0)!=55472&(f|0)!=99608&(f|0)!=99632&&G(f)}function HC(f){f=f|0;var e=0;i[f>>2]=73364,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function TC(f,e,r,A,k){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,i[f+8>>2]=0,i[f>>2]=0,i[f+4>>2]=0}function aC(f,e,r){return f=f|0,e=e|0,r=r|0,!(V[i[i[f+4>>2]+8>>2]](e,r,i[f+8>>2])|0)|0}function SC(f){f=f|0;var e=0;i[f>>2]=68500,e=i[f+20>>2],e&&(i[f+24>>2]=e,G(e)),G(f)}function OC(f){f=f|0;var e=0;i[f>>2]=73276,e=i[f+8>>2],e&&(i[f+12>>2]=e,G(e)),G(f)}function jC(f){for(f=f|0,f=100584;f=z0(f-12|0),(f|0)!=100416;);}function PC(f){for(f=f|0,f=100760;f=l1(f-12|0),(f|0)!=100592;);}function LC(f){for(f=f|0,f=101056;f=z0(f-12|0),(f|0)!=100768;);}function KC(f){for(f=f|0,f=101360;f=l1(f-12|0),(f|0)!=101072;);}function qC(f){for(f=f|0,f=101400;f=z0(f-12|0),(f|0)!=101376;);}function $C(f){f=f|0;var e=0;i[f>>2]=72952,e=i[f+8>>2],e&&(i[f+12>>2]=e,G(e)),G(f)}function bC(f){for(f=f|0,f=101432;f=l1(f-12|0),(f|0)!=101408;);}function dC(f,e,r,A,k,n){return f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,Tk(f,e,r,A,k,n)|0}function cC(f,e,r){f=f|0,e=e|0,r=r|0,f=i[f>>2],i[e>>2]=i[f+72>>2],i[r>>2]=i[f+76>>2]}function qt(f){return f=f|0,i[f>>2]=61416,i[f+8>>2]!=(M2()|0)&&Kt(i[f+8>>2]),f|0}function Ge(f){return i[f+112>>2]=0,i[f+116>>2]=0,f=B0(f,0,108),i[f+108>>2]=f+112,f}function $t(f,e){for(;i[f+16>>2]=i[f+16>>2]-e,f=i[f+8>>2],!!f;);}function iV(f,e){return f=f|0,e=e|0,(e|0)>=0&&(e=i[i[14241]+(e<<2)>>2]),e<<24>>24}function rV(f,e){return f=f|0,e=e|0,(e|0)>=0&&(e=i[i[14628]+(e<<2)>>2]),e<<24>>24}function eV(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,i[f>>2]=0,i[f+4>>2]=0}function AV(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,V[i[i[e>>2]+76>>2]](f,i[e+4>>2],r,A)}function fV(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,V[i[i[e>>2]+80>>2]](f,i[e+4>>2],r,A)}function kV(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,V[i[i[e>>2]+84>>2]](f,i[e+4>>2],r,A)}function nV(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,V[i[i[e>>2]+88>>2]](f,i[e+4>>2],r,A)}function tV(f,e){f=f|0,e=e|0,e&&(f=i[i[f>>2]+80>>2],X[e>>1]=f,X[e+2>>1]=f>>>16)}function oV(f){return f=f|0,f=ik(i[f+60>>2])|0,f?(i[23944]=f,f=-1):f=0,f|0}function lV(f){f=f|0;var e=0;e=f+12|0,f=i[e+8816>>2],f&&(i[e+8820>>2]=f,G(f))}function _1(f){return f=M0(f),(f|0)==-99999|!f||(f=f&1?f+1>>1:0-(f>>1)|0),f}function uV(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,e=B-16|0,B=e,E7(f,r,A),B=e+16|0}function sV(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,e=B-16|0,B=e,F7(f,r,A),B=e+16|0}function hV(f,e){return f=f|0,e=e|0,i[f+2152>>2]-i[f+2148>>2]>>2>(e|0)&(e|0)>=0}function wV(f){return f=f|0,s[100404]||(yi(100392,61736),l[100404]=1),100392}function _V(f,e,r,A,k){return f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,V[f|0](e,r,A,k)|0}function bt(f,e){if(i[f>>2]<(e|0))for(;i[f>>2]<(e|0););}function vV(f){f=f|0;var e=0;return i[f>>2]=68392,e=i[f+24>>2],e&&G(e),f|0}function mV(f){return f=f|0,s[100324]||(yi(100312,61580),l[100324]=1),100312}function BV(f,e){return f=f|0,e=e|0,e>>>0<=127&&(e=i[i[14241]+(e<<2)>>2]),e|0}function ZV(f){return f=f|0,s[100340]||(yi(100328,61616),l[100340]=1),100328}function pV(f,e){return f=f|0,e=e|0,e>>>0<=127&&(e=i[i[14628]+(e<<2)>>2]),e|0}function WV(f){return f=f|0,s[100356]||(G6(100344,14815),l[100356]=1),100344}function XV(f){return f=f|0,s[100372]||(yi(100360,61652),l[100372]=1),100360}function GV(f){return f=f|0,s[100388]||(G6(100376,6122),l[100388]=1),100376}function Ui(f){for(var e=0;;){if(f){f=f-1&f,e=e+1|0;continue}break}return e}function CV(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,Q1(f,i[e+8>>2],0)&&v3(e,r,A)}function f8(f,e){var r=0;r=B-16|0,B=r,i[r+12>>2]=e,No(77928,f,e),B=r+16|0}function VV(f,e){return f=f|0,e=e|0,(e>>>0<=2?i[i[(e<<2)+41344>>2]+f>>2]:0)|0}function IV(f,e){return f=f|0,e=e|0,(e>>>0<=2?i[i[(e<<2)+41356>>2]+f>>2]:0)|0}function Ce(f,e,r,A){return i[f+76>>2]<0,P7(f,e,r,A)}function QV(){var f=0;return f=U(12),i[f>>2]=0,i[f+4>>2]=0,i[f+8>>2]=0,f|0}function yV(f,e){f=f|0,e=e|0,e&&(i[i[f>>2]+80>>2]=Q[e>>1]|Q[e+2>>1]<<16)}function FV(f,e){return f=f|0,e=e|0,(e|0)>=12?f=jn(f+8|0):f=0,f|0}function EV(f){f=f|0;var e=0;i[f>>2]=68392,e=i[f+24>>2],e&&G(e),G(f)}function dt(f,e){var r=0;r=Ct(i[e>>2]),i[f+4>>2]=i[e>>2],l[f|0]=r<<24>>24}function z1(f,e){e=!i[f+24>>2]|e,i[f+16>>2]=e,e&i[f+20>>2]&&(u1(),P())}function YV(f,e,r){f=f|0,e=e|0,r=r|0,f=i[f>>2],i[f+76>>2]=r,i[f+72>>2]=e}function ct(f){f=f|0;var e=0;return e=f+548|0,xn(e),xn(e),l[f+548|0]=1,0}function O3(){var f=0;f=q9(Ne(8),8538),i[f>>2]=68276,wr(f|0,68308,1),P()}function vi(f){var e=0;i[f+16>>2]=0,e=i[f+8>>2],e&&vi(e),l[f+20|0]=1}function O6(f,e,r,A,k){return f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,i[k>>2]=r,3}function Ve(){i[19575]||(mA(),s[78304]&&bA(),i[19575]=i[19575]+1)}function JV(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,C0(17356,13904,68,7984),P()}function j3(f,e,r){var A=0;return A=B-16|0,B=A,E7(f,e,r),B=A+16|0,f}function j8(f,e){f=f|0,e=e|0,l[f|0]=2,l[f+1|0]=3,l[f+2|0]=0,l[f+3|0]=4}function gV(f){return f=f|0,f?(N0(f,67148,67292)|0)!=0|0:0}function P3(f){return f=f|0,i[f+8>>2]!=(M2()|0)&&Kt(i[f+8>>2]),f|0}function NV(f){return f=f|0,f=V[i[i[f+4>>2]+4>>2]](i[f+8>>2])|0,f|0}function RV(f,e,r,A){return f=f|0,e=e|0,r=r|0,A=A|0,V[f|0](e,r,A)|0}function DV(f,e,r,A,k,n){f=f|0,e=e|0,r=r|0,A=A|0,k=k|0,n=n|0,I3(f,n)}function io(f,e){f=f|0,e=e|0,e&&(f=i[e>>2],f&&G(f),i[e>>2]=0)}function UV(f,e,r){return f=f|0,e=e|0,r=r|0,(e>>>0<128?e:r)<<24>>24}function ro(f,e){var r=0;r=pt(i[e>>2]),i[f+4>>2]=i[e>>2],i[f>>2]=r}function MV(f){return f=f|0,f=i[f+16>>2],V[i[i[f>>2]+8>>2]](f)|0}function xV(f){return f=f|0,f=i[f>>2],(Q[f+80>>1]|Q[f+82>>1])!=0|0}function zV(f){return f=f|0,f=i[f>>2],i[f+200>>2]-i[f+196>>2]>>2}function HV(f){return f=f|0,f=i[f+8>>2],i[f+16>>2]-i[f+12>>2]>>3}function TV(f){return f=f|0,f=i[f+8>>2],f?$9(f)|0:1}function aV(f){f=f|0,l[f+48|0]=i[f+40>>2]-i[f+36>>2]>>>0>524280}function SV(f,e,r){f=f|0,e=e|0,r=r|0,C0(17356,13904,51,7834),P()}function OV(f){return f=f|0,f=i[f>>2],i[f+40>>2]-i[f+36>>2]>>3}function L3(f){f=q9(Ne(8),f),i[f>>2]=68224,wr(f|0,68256,1),P()}function eo(f){return f>>>0>1073741823&&(u1(),P()),w9(f<<2,4)}function jV(f){return f=f|0,V[i[i[f>>2]+68>>2]](i[f+4>>2])|0}function PV(f){f=f|0,Ni(98732),Ni(99068),k3(98816),k3(99152)}function LV(f){return f=f|0,f?s[i[f>>2]+208|0]:0}function K3(f){return f=f|0,i[f>>2]=53552,z0(f+32|0),K0(f)|0}function KV(f){return f=f|0,f?s[i[f>>2]+256|0]:0}function qV(f,e){f=f|0,e=e|0,i[f+8>>2]=l[e+11|0]<0?i[e>>2]:e}function $V(f,e){f=f|0,e=e|0,f&&(l[i[f>>2]+40|0]=(e|0)!=0)}function bV(f){return f=f|0,s[100309]||(l[100309]=1),78224}function dV(f){return f=f|0,s[100325]||(l[100325]=1),78236}function q3(f,e){e&&(q3(f,i[e>>2]),q3(f,i[e+4>>2]),G(e))}function cV(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,yr(f,16,e,r,A)}function iI(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,yr(f,32,e,r,A)}function rI(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,Qr(f,r,16,e,A)}function eI(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,Qr(f,r,32,e,A)}function j6(f,e){e&&(j6(f,i[e>>2]),j6(f,i[e+4>>2]),G(e))}function P8(f,e){e&&(P8(f,i[e>>2]),P8(f,i[e+4>>2]),G(e))}function Ie(f,e){e&&(Ie(f,i[e>>2]),Ie(f,i[e+4>>2]),G(e))}function AI(f){return f=f|0,f?s[i[f>>2]+40|0]:0}function fI(f){return f=f|0,f?i[i[f+8>>2]>>2]:-1}function kI(f,e,r){return f=f|0,e=e|0,r=r|0,((e|0)<0?r:e)|0}function nI(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,yr(f,4,e,r,A)}function tI(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,yr(f,8,e,r,A)}function oI(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,Qr(f,r,4,e,A)}function lI(f,e,r,A){f=f|0,e=e|0,r=r|0,A=A|0,Qr(f,r,8,e,A)}function uI(f,e,r,A){return f=f|0,e=e|0,r=r|0,A=A|0,w0=0,0}function z0(f){return s[f+11|0]>>>7|0&&Q8(i[f>>2],1),f}function l1(f){return s[f+11|0]>>>7|0&&Q8(i[f>>2],4),f}function Ao(f){return f=f|0,i[f>>2]=61464,z0(f+12|0),f|0}function fo(f){return f=f|0,i[f>>2]=61504,z0(f+16|0),f|0}function Mi(f,e){var r=0;r=w9(e,1),i[f+4>>2]=e,i[f>>2]=r}function K0(f){return f=f|0,i[f>>2]=53144,O0(f+4|0),f|0}function $3(f){return f=f|0,i[f>>2]=53392,O0(f+4|0),f|0}function ko(f,e,r){return f=f|0,e=e|0,r=r|0,Q1(f,e,0)|0}function xi(f,e){var r=0;r=eo(e),i[f+4>>2]=e,i[f>>2]=r}function no(f){return f=f|0,Ee(i[i[f>>2]-12>>2]+f|0)|0}function to(f,e,r){f=f|0,e=e|0,r=r|0,i[i[f>>2]+e>>2]=r}function sI(f){return f=f|0,Fe(i[i[f>>2]-12>>2]+f|0)|0}function oo(f){return f=f|0,Ye(i[i[f>>2]-12>>2]+f|0)|0}function hI(f){return f=f|0,z6(i[i[f>>2]-12>>2]+f|0)|0}function wI(f){return f=f|0,D3(i[i[f>>2]-12>>2]+f|0)|0}function _I(f){return f=f|0,g3(i[i[f>>2]-12>>2]+f|0)|0}function vI(f){return f=f|0,N3(i[i[f>>2]-12>>2]+f|0)|0}function mI(f){return f=f|0,(i[f>>2]>=3?i[f+40>>2]:0)|0}function zi(f,e){return f=Y7(f,e),s[f|0]==(e&255)?f:0}function lo(f){return f=f|0,V[i[i[f>>2]+24>>2]]()|0}function BI(f){return f=f|0,w0=i[f+20>>2],i[f+16>>2]}function Qe(f,e){b0(f,e),i[f+72>>2]=0,i[f+76>>2]=-1}function uo(f,e){return f=f|0,e=e|0,i[i[f>>2]+e>>2]}function P6(f){return f?31-$2(f-1^f)|0:32}function D2(f){f=f|0,V[i[i[f+12>>2]>>2]](f+12|0)|0}function ZI(f,e){return f=f|0,e=e|0,r3(i[f>>2],e)|0}function pI(f,e){return f=f|0,e=e|0,U0(i[f>>2],e)|0}function m2(f){f=f|0,V[i[i[f+16>>2]>>2]](f+16|0)|0}function so(f,e){return f=f|0,e=e|0,y4(i[f>>2],e)|0}function ho(f,e){return f=f|0,e=e|0,F4(i[f>>2],e)|0}function wo(f,e){return f=f|0,e=e|0,H2(i[f>>2],e)|0}function WI(){var f=0;return f=U(4),i[f>>2]=0,f|0}function L6(f,e,r){f=f|0,e=e|0,r=r|0,Yr(f,e,r,-1)}function XI(f){f=f|0,l[78275]<0&&G(i[19566])}function GI(f){return f=f|0,i[i[f>>2]+64>>2]!=0|0}function CI(f,e,r){f=f|0,e=e|0,r=r|0,Fr(f,r,16,e)}function VI(f,e,r){f=f|0,e=e|0,r=r|0,Fr(f,r,32,e)}function II(f){return f=f|0,s[i[f+124>>2]+9016|0]}function QI(f){return f=f|0,s[i[f+124>>2]+9019|0]}function yI(f){return f=f|0,s[i[f+124>>2]+9020|0]}function FI(f,e,r){f=f|0,e=e|0,r=r|0,Ur(f,16,e,r)}function EI(f,e,r){f=f|0,e=e|0,r=r|0,Ur(f,32,e,r)}function YI(f,e,r){f=f|0,e=e|0,r=r|0,Rk(f,16,e,r)}function JI(f,e,r){f=f|0,e=e|0,r=r|0,Rk(f,32,e,r)}function gI(f){return f=f|0,s[i[f+124>>2]+9018|0]}function b3(f,e){return f=f|0,e=e|0,V[f|0](e)|0}function NI(f,e,r){f=f|0,e=e|0,r=r|0,Fr(f,r,4,e)}function RI(f,e,r){f=f|0,e=e|0,r=r|0,Fr(f,r,8,e)}function DI(f,e,r){f=f|0,e=e|0,r=r|0,Ur(f,8,e,r)}function UI(f,e,r){f=f|0,e=e|0,r=r|0,Ur(f,4,e,r)}function _o(f,e,r){return f=f|0,e=e|0,r=r|0,f|0}function MI(f,e){f=f|0,e=e|0,i[i[f>>2]+56>>2]=e}function vo(f){var e=0,r=0;e=f,r=M2(),i[e>>2]=r}function mo(f,e,r,A){vs(f|0,e|0,8,0,r|0,-1,A|0)}function Q8(f,e){if(e>>>0>8){G(f);return}G(f)}function ye(f,e){return f?ie(f,e):0}function xI(f){f=f|0,l[f+48|0]=k0[f+56>>2]>65535}function zI(f,e){f=f|0,e=e|0,l[f+4|0]=(e|0)!=0}function H1(f,e,r){s[f|0]&32||ee(e,r,f)}function HI(f){return f=f|0,i[f>>2]=72424,f|0}function TI(f){return f=f|0,i[f>>2]=74312,f|0}function aI(f){return f=f|0,i[f>>2]=71384,f|0}function SI(f){return f=f|0,i[f>>2]=75196,f|0}function OI(f){return f=f|0,i[f>>2]=76520,f|0}function jI(f){return f=f|0,i[f>>2]=72464,f|0}function PI(f){return f=f|0,i[f>>2]=71424,f|0}function LI(f){return f=f|0,i[f>>2]=75236,f|0}function KI(f){return f=f|0,i[f>>2]=76596,f|0}function qI(f){return f=f|0,i[f>>2]=71464,f|0}function $I(f){return f=f|0,i[f>>2]=72576,f|0}function bI(f){return f=f|0,i[f>>2]=75312,f|0}function dI(f){return f=f|0,i[f>>2]=76672,f|0}function cI(f){return f=f|0,i[f>>2]=71504,f|0}function iQ(f){return f=f|0,i[f>>2]=75388,f|0}function rQ(f){return f=f|0,i[f>>2]=76748,f|0}function eQ(f){return f=f|0,i[f>>2]=72616,f|0}function AQ(f){return f=f|0,i[f>>2]=71544,f|0}function fQ(f){return f=f|0,i[f>>2]=75428,f|0}function kQ(f){return f=f|0,i[f>>2]=71584,f|0}function nQ(f){return f=f|0,i[f>>2]=72656,f|0}function tQ(f){return f=f|0,i[f>>2]=75468,f|0}function Bo(f){f=f|0,Af(i[i[f>>2]-12>>2]+f|0)}function oQ(f){return f=f|0,i[f>>2]=71624,f|0}function lQ(f){return f=f|0,i[f>>2]=75508,f|0}function uQ(f){return f=f|0,i[f>>2]=71664,f|0}function sQ(f){return f=f|0,i[f>>2]=72744,f|0}function hQ(f){return f=f|0,i[f>>2]=70584,f|0}function wQ(f){return f=f|0,i[f>>2]=75548,f|0}function _Q(f){return f=f|0,i[f>>2]=71704,f|0}function vQ(f){return f=f|0,i[f>>2]=70624,f|0}function mQ(f){return f=f|0,i[f>>2]=72792,f|0}function BQ(f){return f=f|0,i[f>>2]=75588,f|0}function ZQ(f){f=f|0,kf(i[i[f>>2]-12>>2]+f|0)}function pQ(f){return f=f|0,i[f>>2]=71744,f|0}function Zo(f){f=f|0,ff(i[i[f>>2]-12>>2]+f|0)}function WQ(f){return f=f|0,i[f>>2]=70664,f|0}function XQ(f,e){return f=f|0,e=e|0,Ak(f,e)|0}function GQ(f){return f=f|0,i[f>>2]=71784,f|0}function CQ(f){return f=f|0,i[f>>2]=72832,f|0}function VQ(f){return f=f|0,i[f>>2]=73408,f|0}function IQ(f){return f=f|0,i[f>>2]=75628,f|0}function QQ(f){return f=f|0,i[f>>2]=70704,f|0}function yQ(f){return f=f|0,i[f>>2]=71824,f|0}function FQ(f){return f=f|0,i[f>>2]=73448,f|0}function EQ(f){return f=f|0,i[f>>2]=75668,f|0}function YQ(f){return f=f|0,i[f>>2]=70744,f|0}function JQ(f){return f=f|0,i[f>>2]=71864,f|0}function gQ(f){return f=f|0,i[f>>2]=73488,f|0}function NQ(f){return f=f|0,V[i[f+4>>2]]()|0}function RQ(f){return f=f|0,i[f>>2]=75708,f|0}function DQ(f){return f=f|0,i[f>>2]=70784,f|0}function UQ(f){return f=f|0,i[f>>2]=70824,f|0}function MQ(f){return f=f|0,i[f>>2]=71904,f|0}function xQ(f){return f=f|0,i[f>>2]=73528,f|0}function zQ(f){return f=f|0,i[f>>2]=75748,f|0}function HQ(f){return f=f|0,i[f>>2]=72912,f|0}function TQ(f){return f=f|0,i[f>>2]=70864,f|0}function aQ(f){return f=f|0,i[f>>2]=71944,f|0}function SQ(f){return f=f|0,i[f>>2]=73568,f|0}function OQ(f){return f=f|0,i[f>>2]=75788,f|0}function jQ(f){return f=f|0,i[f>>2]=70904,f|0}function PQ(f){return f=f|0,i[f>>2]=71984,f|0}function LQ(f){return f=f|0,i[f>>2]=73608,f|0}function KQ(f){return f=f|0,i[f>>2]=75864,f|0}function qQ(f){return f=f|0,i[f>>2]=70944,f|0}function $Q(f){return f=f|0,i[f>>2]=75940,f|0}function bQ(f){return f=f|0,i[f>>2]=72024,f|0}function dQ(f){return f=f|0,i[f>>2]=74072,f|0}function cQ(f){return f=f|0,i[f>>2]=70984,f|0}function iy(f){return f=f|0,i[f>>2]=75980,f|0}function ry(f){return f=f|0,i[f>>2]=72064,f|0}function ey(f){return f=f|0,i[f>>2]=71024,f|0}function Ay(f){return f=f|0,i[f>>2]=74112,f|0}function fy(f){return f=f|0,i[f>>2]=76020,f|0}function ky(f){return f=f|0,i[f>>2]=72104,f|0}function ny(f){return f=f|0,i[f>>2]=43652,f|0}function ty(f){return f=f|0,i[f>>2]=71064,f|0}function oy(f){return f=f|0,i[f>>2]=76060,f|0}function ly(f){return f=f|0,i[f>>2]=72144,f|0}function uy(f){return f=f|0,i[f>>2]=71104,f|0}function sy(f){return f=f|0,i[f>>2]=76100,f|0}function hy(f){return f=f|0,i[f>>2]=43768,f|0}function wy(f){return f=f|0,i[f>>2]=72184,f|0}function _y(f){return f=f|0,i[f>>2]=71144,f|0}function vy(f){return f=f|0,i[f>>2]=76140,f|0}function my(f){return f=f|0,i[f>>2]=72224,f|0}function By(f){return f=f|0,i[f>>2]=43880,f|0}function Zy(f){return f=f|0,i[f>>2]=71184,f|0}function py(f){return f=f|0,i[f>>2]=76216,f|0}function Wy(f){f=f|0,nf(i[i[f>>2]-12>>2]+f|0)}function Xy(f){return f=f|0,i[f>>2]=72264,f|0}function Gy(f){return f=f|0,i[f>>2]=73092,f|0}function Cy(f){return f=f|0,i[f>>2]=71224,f|0}function Vy(f){return f=f|0,i[f>>2]=76292,f|0}function Iy(f){f=f|0,Do(i[i[f>>2]-12>>2]+f|0)}function Qy(f){return f=f|0,i[f>>2]=72304,f|0}function yy(f){return f=f|0,i[f>>2]=71264,f|0}function Fy(f){return f=f|0,i[f>>2]=76368,f|0}function Ey(f){f=f|0,Uo(i[i[f>>2]-12>>2]+f|0)}function Yy(f){return f=f|0,i[f>>2]=72344,f|0}function Jy(f){return f=f|0,i[f>>2]=71304,f|0}function gy(f){return f=f|0,i[f>>2]=72384,f|0}function Ny(f){f=f|0,Mo(i[i[f>>2]-12>>2]+f|0)}function Ry(f){return f=f|0,i[f>>2]=71344,f|0}function Dy(f){return f=f|0,i[f>>2]=75148,f|0}function Uy(f){return f=f|0,i[f>>2]=76444,f|0}function po(f,e,r){return f=f|0,e=e|0,r=r|0,-1}function My(f){return f=f|0,i[f>>2]=72872,f|0}function xy(f){return f=f|0,((f|0)==1?100:0)|0}function Wo(f){return f=f|0,i[i[f>>2]+16>>2]}function d3(f){return f=f|0,i[i[f>>2]+20>>2]}function zy(f){return f=f|0,i[i[f>>2]+32>>2]}function Hy(f){return f=f|0,i[i[f>>2]+36>>2]}function Ty(f){return f=f|0,s[i[f>>2]+108|0]}function K6(f,e,r,A){return f=hn(f,e,r,A),f}function ay(f){return f=f|0,s[i[f>>2]+49|0]}function Sy(f){return f=f|0,(s[f+4|0]?3:6)|0}function Oy(f){return f=f|0,i[i[f>>2]+8>>2]}function jy(f){return f=f|0,i[i[f>>2]+4>>2]}function Py(f){return f=f|0,(n7(f,0)|0)!=0|0}function Xo(f){return f=f|0,s[i[f>>2]+32|0]}function Ly(f){f=f|0,V[i[i[f>>2]+4>>2]](f)}function Fe(f){return f=f|0,T0(f+12|0),f|0}function Ee(f){return f=f|0,T0(f+8|0),f|0}function Ye(f){return f=f|0,T0(f+4|0),f|0}function Ky(f){return f=f|0,Ek(i[f>>2])|0}function qy(f,e){f=f|0,e=e|0,I3(f,e+12|0)}function $y(f,e){f=f|0,e=e|0,I3(f,e+16|0)}function by(f){f=f|0,i[f>>2]=71344,G(f)}function dy(f){f=f|0,i[f>>2]=75148,G(f)}function cy(f){f=f|0,i[f>>2]=76444,G(f)}function iF(f){f=f|0,i[f>>2]=72424,G(f)}function rF(f){f=f|0,i[f>>2]=74312,G(f)}function eF(f){f=f|0,i[f>>2]=71384,G(f)}function AF(f){f=f|0,i[f>>2]=75196,G(f)}function fF(f){f=f|0,i[f>>2]=76520,G(f)}function kF(f){f=f|0,i[f>>2]=72464,G(f)}function nF(f){f=f|0,i[f>>2]=71424,G(f)}function tF(f){f=f|0,i[f>>2]=75236,G(f)}function oF(f){f=f|0,i[f>>2]=76596,G(f)}function lF(f){f=f|0,i[f>>2]=71464,G(f)}function uF(f){f=f|0,i[f>>2]=72576,G(f)}function sF(f){f=f|0,i[f>>2]=75312,G(f)}function hF(f){f=f|0,i[f>>2]=76672,G(f)}function wF(f){f=f|0,i[f>>2]=71504,G(f)}function _F(f){f=f|0,i[f>>2]=75388,G(f)}function vF(f){f=f|0,i[f>>2]=76748,G(f)}function mF(f){f=f|0,i[f>>2]=72616,G(f)}function BF(f){f=f|0,i[f>>2]=71544,G(f)}function ZF(f){f=f|0,i[f>>2]=75428,G(f)}function pF(f){f=f|0,i[f>>2]=71584,G(f)}function WF(f){f=f|0,i[f>>2]=72656,G(f)}function XF(f){f=f|0,i[f>>2]=75468,G(f)}function GF(f){f=f|0,i[f>>2]=71624,G(f)}function CF(f){f=f|0,i[f>>2]=75508,G(f)}function VF(f){f=f|0,i[f>>2]=71664,G(f)}function IF(f){f=f|0,i[f>>2]=72744,G(f)}function QF(f){f=f|0,i[f>>2]=70584,G(f)}function yF(f){f=f|0,i[f>>2]=75548,G(f)}function FF(f){f=f|0,i[f>>2]=71704,G(f)}function EF(f){f=f|0,i[f>>2]=70624,G(f)}function YF(f){f=f|0,i[f>>2]=72792,G(f)}function JF(f){f=f|0,i[f>>2]=75588,G(f)}function gF(f){f=f|0,i[f>>2]=71744,G(f)}function NF(f){f=f|0,i[f>>2]=70664,G(f)}function RF(f){f=f|0,i[f>>2]=71784,G(f)}function DF(f){f=f|0,i[f>>2]=73408,G(f)}function UF(f){f=f|0,i[f>>2]=75628,G(f)}function MF(f){f=f|0,i[f>>2]=70704,G(f)}function xF(f){f=f|0,i[f>>2]=72832,G(f)}function zF(f){f=f|0,i[f>>2]=71824,G(f)}function HF(f){f=f|0,i[f>>2]=73448,G(f)}function TF(f){f=f|0,i[f>>2]=75668,G(f)}function aF(f){f=f|0,i[f>>2]=70744,G(f)}function SF(f){f=f|0,i[f>>2]=72872,G(f)}function OF(f){f=f|0,i[f>>2]=70824,G(f)}function jF(f){f=f|0,i[f>>2]=71904,G(f)}function PF(f){f=f|0,i[f>>2]=73528,G(f)}function LF(f){f=f|0,i[f>>2]=75748,G(f)}function KF(f,e){f=f|0,e=e|0,yi(f,61556)}function qF(f){f=f|0,i[f>>2]=72912,G(f)}function $F(f){f=f|0,i[f>>2]=70864,G(f)}function bF(f){f=f|0,i[f>>2]=71944,G(f)}function dF(f){f=f|0,i[f>>2]=73568,G(f)}function cF(f){f=f|0,i[f>>2]=75788,G(f)}function iE(f){f=f|0,i[f>>2]=70904,G(f)}function rE(f){f=f|0,i[f>>2]=71984,G(f)}function eE(f){f=f|0,i[f>>2]=73608,G(f)}function AE(f){f=f|0,i[f>>2]=75864,G(f)}function fE(f){f=f|0,i[f>>2]=70944,G(f)}function kE(f){f=f|0,i[f>>2]=75940,G(f)}function nE(f){f=f|0,i[f>>2]=72024,G(f)}function tE(f){f=f|0,i[f>>2]=74072,G(f)}function oE(f){f=f|0,i[f>>2]=70984,G(f)}function lE(f){f=f|0,i[f>>2]=75980,G(f)}function uE(f){f=f|0,i[f>>2]=72064,G(f)}function sE(f){f=f|0,i[f>>2]=71024,G(f)}function hE(f){f=f|0,i[f>>2]=74112,G(f)}function wE(f){f=f|0,i[f>>2]=76020,G(f)}function _E(f){f=f|0,i[f>>2]=72104,G(f)}function vE(f){f=f|0,i[f>>2]=43652,G(f)}function mE(f){f=f|0,i[f>>2]=71064,G(f)}function BE(f){f=f|0,i[f>>2]=76060,G(f)}function ZE(f){f=f|0,i[f>>2]=72144,G(f)}function pE(f){f=f|0,i[f>>2]=71104,G(f)}function WE(f){f=f|0,i[f>>2]=76100,G(f)}function XE(f){f=f|0,i[f>>2]=43768,G(f)}function GE(f){f=f|0,i[f>>2]=72184,G(f)}function CE(f){f=f|0,i[f>>2]=71144,G(f)}function VE(f){f=f|0,i[f>>2]=76140,G(f)}function IE(f){f=f|0,i[f>>2]=72224,G(f)}function QE(f){f=f|0,i[f>>2]=43880,G(f)}function yE(f){f=f|0,i[f>>2]=71184,G(f)}function FE(f){f=f|0,i[f>>2]=76216,G(f)}function EE(f){f=f|0,i[f>>2]=72264,G(f)}function YE(f){f=f|0,i[f>>2]=73092,G(f)}function JE(f){f=f|0,i[f>>2]=71224,G(f)}function gE(f){f=f|0,i[f>>2]=76292,G(f)}function NE(f){f=f|0,i[f>>2]=72304,G(f)}function RE(f){f=f|0,i[f>>2]=71264,G(f)}function DE(f){f=f|0,i[f>>2]=76368,G(f)}function UE(f){f=f|0,i[f>>2]=72344,G(f)}function ME(f){f=f|0,i[f>>2]=71304,G(f)}function xE(f){f=f|0,i[f>>2]=72384,G(f)}function zE(f){f=f|0,i[f>>2]=70784,G(f)}function HE(f){f=f|0,i[f>>2]=71864,G(f)}function TE(f){f=f|0,i[f>>2]=73488,G(f)}function aE(f){f=f|0,i[f>>2]=75708,G(f)}function SE(f,e){f=f|0,e=e|0,yi(f,61536)}function Go(f,e){return f=f|0,e=e|0,e|0}function OE(f){f=f|0,P8(78316,i[19580])}function jE(f){f=f|0,P8(78328,i[19583])}function PE(f){f=f|0,P8(78340,i[19586])}function Co(f){return f=f|0,V[f|0]()|0}function LE(f){return f=f|0,Fe(f-8|0)|0}function c3(f,e){f=f|0,e=e|0,V[f|0](e)}function KE(f,e){f=f|0,e=e|0,G6(f,9104)}function qE(f,e){f=f|0,e=e|0,G6(f,9349)}function $E(f){f=f|0,Ie(78276,i[19570])}function bE(f){f=f|0,Xe(78288,i[19573])}function Vo(f,e){f=f|0,e=e|0,x7(f,1,45)}function Io(f,e){f=f|0,e=e|0,W7(f,1,45)}function dE(f){return f=f|0,z6(f-8|0)|0}function Je(f){return f=f|0,2147483647}function cE(f){return f=f|0,i[f+20>>2]}function iY(f){return f=f|0,i[f+12>>2]}function rY(f){f=f|0,I9(i[f>>2]),G(f)}function Qo(f,e,r){r&&F2(f,e,r<<2)}function eY(f){return f=f|0,1852009592}function yo(f,e){return(gi(f,e)|0)!=-1}function ge(f,e){return f=f|0,e=e|0,-1}function Fo(f){return f=f|0,i[f+8>>2]}function AY(f){return f=f|0,Xn(f,0)|0}function fY(f){return f=f|0,Xn(f,1)|0}function rf(f){return f=f|0,i[f+4>>2]}function kY(f){return f=f|0,Bn(f,0)|0}function nY(f){return f=f|0,Bn(f,1)|0}function Ne(f){return Z2(f+80|0)+80|0}function J2(f,e){return j9(f)^j9(e)^1}function g2(f,e){return O9(f)^O9(e)^1}function Eo(){G(i[23872]),i[23872]=0}function tY(f,e){return f=f|0,e=e|0,0}function oY(f){return f=f|0,l[f+8|0]}function lY(f){return f=f|0,l[f+9|0]}function uY(f,e,r){f=f|0,e=e|0,r=r|0}function Yo(f){return f=f|0,T0(f)|0}function E1(f){return Ct(i[f>>2]),f}function Y1(f){return pt(i[f>>2]),f}function J4(f,e){z1(f,i[f+16>>2]|e)}function Jo(f,e,r){r&&F2(f,e,r)}function y8(f){f=f|0,f&&G(f)}function sY(f){return f=f|0,13683}function hY(f){return f=f|0,73848}function wY(f){return f=f|0,73904}function _Y(f){return f=f|0,78464}function vY(f){return f=f|0,73744}function go(f){f=f|0,T0(f),G(f)}function mY(f){return f=f|0,4900}function BY(f){f=f|0,K0(f),G(f)}function ZY(f){f=f|0,$3(f),G(f)}function pY(f){return f=f|0,6180}function WY(f){return f=f|0,8382}function XY(f){f=f|0,I6(f),G(f)}function ef(f){f=f|0,Xt(f),G(f)}function GY(f){f=f|0,l[f+48|0]=0}function No(f,e,r){qr(f,e,r,0,0)}function CY(f){f=f|0,l1(100360)}function VY(f){f=f|0,z0(100376)}function IY(f){f=f|0,l1(100392)}function Re(f){return f=f|0,127}function t4(f){return f=f|0,f|0}function QY(f){f=f|0,l1(100312)}function yY(f){f=f|0,l1(100328)}function FY(f){f=f|0,z0(100344)}function EY(f){f=f|0,G(T0(f))}function YY(f){f=f|0,G(V7(f))}function Af(f){f=f|0,G(Ee(f))}function JY(f){f=f|0,G(Tt(f))}function gY(f){f=f|0,G(v7(f))}function ff(f){f=f|0,G(Ye(f))}function kf(f){f=f|0,G(Fe(f))}function NY(f){f=f|0,G(g7(f))}function nf(f){f=f|0,G(z6(f))}function RY(f){f=f|0,G(qt(f))}function DY(f){f=f|0,kf(f-8|0)}function Ro(f){f=f|0,G(P3(f))}function UY(f){f=f|0,G(Ao(f))}function MY(f){f=f|0,G(fo(f))}function Do(f){f=f|0,G(D3(f))}function Uo(f){f=f|0,G(g3(f))}function Mo(f){f=f|0,G(N3(f))}function xY(f){f=f|0,G(Ik(f))}function zY(f){f=f|0,G(B7(f))}function HY(f){f=f|0,G(K3(f))}function TY(f){f=f|0,nf(f-8|0)}function aY(f){f=f|0,G(t9(f))}function SY(f){f=f|0,G(Mn(f))}function xo(f){f=f|0,G(K0(f))}function OY(f){f=f|0,z0(78224)}function zo(f){f=f|0,G($3(f))}function jY(f){f=f|0,G(bn(f))}function PY(f){f=f|0,z0(78236)}function LY(f){f=f|0,G(A7(f))}function KY(f){f=f|0,G(e7(f))}function qY(f){f=f|0,G(I7(f))}function J1(f){return f=f|0,0}function Ho(f){return f=f|0,-1}function tf(f){return f=f|0,2}function $Y(f){return f=f|0,5}function q6(f){return f=f|0,1}function To(){return 17957376}function $6(f){return f=f|0,4}function of(f,e,r){e8(e,r,f)}function ao(f){xt(f,i[f>>2])}function De(f,e,r){ui(e,r,f)}function b6(f,e){f=f|0,e=e|0}function y0(){L3(4917),P()}function m0(f){f=f|0,G(f)}function c2(){L3(8538),P()}function bY(){return 16835}function Ue(f){B0(f,0,100)}function dY(){return 16615}function So(f){f=f|0,P()}function cY(){return 7829}function Oo(f,e){J4(f,e)}function iJ(){return 18}function u1(){Gs(),P()}function rJ(){return 1}function eJ(){return 2}function o4(){u1(),P()}function L8(f){f=f|0}function AJ(){b9()}function fJ(){Wt()}function kJ(){}K=s,E0(n1);var V=$([null,Xt,LG,cG,eC,Rt,QZ,xX,vV,EV,BI,Rt,hW,KX,t4,m0,NV,iC,aC,xC,t4,VC,SC,Hr,J1,bp,G1,Jw,GB,L8,rm,mB,xG,X7,G1,R2,BB,Iv,hp,Xp,bw,gB,Kw,wp,Gp,mw,FB,Uh,G1,Ai,q6,GY,iZ,gG,fZ,Vp,Jp,o_,eZ,kv,G1,Cm,vZ,xI,mm,A7,LY,ih,Sw,kW,xs,I7,qY,Fh,L_,mG,fw,G1,Ai,AB,aV,Om,G1,Ai,L6,G1,Nm,L6,G1,pv,NZ,YG,vm,V7,YY,ds,im,ZW,ch,JZ,UZ,aw,xB,Gw,G1,Wm,HZ,zp,G1,Uv,qZ,ap,G1,z_,RB,Oh,v7,gY,iw,Im,vW,Ts,fp,_p,Av,VB,Y_,G1,mv,RZ,Ep,G1,Xm,KZ,Sp,G1,Bv,gZ,Yp,G1,Ew,em,a_,G1,Aw,$w,_h,g7,NY,gw,IZ,Q_,kp,vp,$_,$Z,$m,G1,Ai,L6,np,$7,mn,yA,$7,M_,bh,GZ,VZ,Uw,f_,G1,Ai,L6,G1,Ai,Qw,Cp,Fp,nm,Kv,hQ,QF,m2,tY,m0,vQ,EF,m2,m0,WQ,NF,m2,m0,QQ,MF,m2,m0,YQ,aF,m2,m0,DQ,zE,m2,m0,UQ,OF,m2,m0,TQ,$F,m2,m0,jQ,iE,m2,m0,qQ,fE,m2,m0,cQ,oE,m2,m0,ey,sE,m2,m0,ty,mE,m2,m0,uy,pE,m2,m0,_y,CE,m2,m0,Zy,yE,m2,m0,Cy,JE,m2,m0,yy,RE,m2,m0,Jy,ME,m2,m0,Ry,by,m2,m0,aI,eF,m2,m0,PI,nF,m2,m0,qI,lF,m2,m0,cI,wF,m2,m0,AQ,BF,m2,m0,kQ,pF,m2,m0,oQ,GF,m2,m0,uQ,VF,m2,m0,_Q,FF,m2,m0,pQ,gF,m2,m0,GQ,RF,m2,m0,yQ,zF,m2,m0,JQ,HE,m2,m0,MQ,jF,m2,m0,aQ,bF,m2,m0,PQ,rE,m2,m0,bQ,nE,m2,m0,ry,uE,m2,m0,ky,_E,m2,m0,ly,ZE,m2,m0,wy,GE,m2,m0,my,IE,m2,m0,Xy,EE,m2,m0,Qy,NE,m2,m0,Yy,UE,m2,m0,gy,xE,m2,m0,HI,iF,m2,m0,jI,kF,m2,m0,XI,$I,uF,Yw,m0,eQ,mF,zW,m0,nQ,WF,v_,m0,sQ,IF,bX,m0,mQ,YF,gm,m0,CQ,xF,D2,m0,My,SF,m2,m0,HQ,qF,m2,m0,t4,$E,bE,DC,$C,rf,jm,yX,t4,m0,eY,N_,SW,_Z,ZZ,qw,oB,Ks,Gy,YE,D2,m0,t4,m0,J1,kw,UC,OG,m0,q6,Mh,et,lG,m0,tf,xh,et,uG,RC,OC,Sy,oh,LW,KW,m0,$6,yh,J1,sG,CC,HC,$Y,zs,jX,VQ,DF,D2,m0,FQ,HF,D2,m0,gQ,TE,D2,m0,xQ,PF,D2,m0,SQ,dF,D2,m0,LQ,eE,D2,m0,fB,FX,GX,Co,To,Co,hk,c3,G4,SZ,EX,tW,hZ,b3,TA,vC,WB,KG,xp,Hp,MG,Sh,c3,N6,b3,zt,Ht,Xo,c3,G4,vY,G4,hY,N6,wY,G4,QV,y8,uo,to,uo,to,qW,qV,XX,AW,Nk,OE,jE,PE,dQ,tE,R_,m0,Ay,hE,D2,m0,e7,KY,Ns,Ww,hh,TI,rF,m2,m0,t4,m0,tp,mp,Vh,qB,hw,G1,Gm,lW,Op,G1,km,HB,cB,op,Bp,Bm,_W,Xh,lp,Zp,Cv,$B,D_,up,pp,Qv,pZ,S_,B7,zY,uv,J_,rh,sp,Wp,Vv,bB,U_,G1,Ai,L6,Mn,SY,Hs,kh,Us,bn,jY,Rs,ym,Cw,G1,Vm,sW,cZ,aW,Dy,dy,D2,m0,SI,AF,D2,m0,LI,tF,D2,m0,t4,m0,Ym,$s,bI,sF,D2,m0,m0,wm,bs,iQ,_F,D2,m0,fQ,ZF,D2,m0,tQ,XF,D2,m0,lQ,CF,D2,m0,wQ,yF,D2,m0,BQ,JF,D2,m0,IQ,UF,D2,m0,EQ,TF,D2,m0,RQ,aE,D2,m0,zQ,LF,D2,m0,OQ,cF,D2,m0,m0,g_,Ss,KQ,AE,D2,m0,m0,P_,as,$Q,kE,D2,m0,iy,lE,D2,m0,fy,wE,D2,m0,oy,BE,D2,m0,sy,WE,D2,m0,vy,VE,D2,m0,m0,nv,qs,py,FE,D2,m0,m0,tv,Ps,Vy,gE,D2,m0,m0,ov,Zh,Fy,DE,D2,m0,m0,lv,uh,Uy,cy,D2,m0,m0,Fv,vh,OI,fF,D2,m0,m0,Ev,sh,KI,oF,D2,m0,m0,Yv,Ih,dI,hF,D2,m0,m0,Jv,mh,rQ,vF,D2,m0,m0,_v,th,m0,yv,gs,m0,Mv,Lh,m0,TC,eV,m0,Qm,zh,m0,Sv,Dh,m0,V_,Bh,m0,Wv,Eh,m0,ev,Hh,m0,rv,gh,m0,Tm,Qh,m0,Hm,Th,m0,E_,xw,m0,tB,ph,m0,wv,Rh,m0,hm,pw,m0,jv,jh,m0,Ov,Gv,sm,AJ,fJ,xy,aX,rY,TZ,nw,zI,cY,sC,kJ,DG,y8,a3,PG,a3,qG,a3,$G,_Y,a6,a6,a6,a6,a6,HG,b6,bG,TG,uY,L8,t4,m0,I_,pW,t4,So,u1,Ik,xY,JG,hV,ny,vE,wW,m0,hy,XE,lV,m0,By,QE,qp,m0,dp,SV,uC,hC,lC,bv,oC,nC,kC,qv,fC,AC,rC,$v,Dv,gv,Rv,OB,eh,zB,NC,gC,JC,om,YC,EC,FC,tm,yC,QC,IC,lm,Tv,zv,Hv,rB,Ah,dB,Mm,uB,wZ,aB,Sm,vB,LZ,oZ,CB,cp,jB,yp,js,NI,RI,CI,VI,JV,wh,oI,lI,rI,eI,kZ,SB,YB,CZ,jZ,WZ,JI,YI,Ls,fv,EI,FI,DI,UI,Gh,iI,cV,tI,nI,Ch,cv,aG,m0,Yh,GW,mW,gW,m0,iB,nW,m0,vv,WW,an,oV,pm,RX,J1,uI,Os,XG,$p,tZ,B3,K0,BY,b6,_o,Ft,at,J1,J1,KB,Ho,RG,ge,aZ,ge,Ee,Af,no,Bo,Ye,ff,oo,Zo,Fe,kf,LE,DY,sI,ZQ,$3,ZY,b6,_o,Ft,at,J1,J1,TB,Ho,NG,ge,DZ,ge,Ee,Af,no,Bo,Ye,ff,oo,Zo,K3,HY,dv,ZC,DW,Qp,Fm,I6,XY,bm,Em,Dm,lZ,p_,Xw,MW,cw,Yo,go,Yo,go,z6,nf,dE,TY,hI,Wy,D3,Do,wI,Iy,g3,Uo,_I,Ey,N3,Mo,vI,Ny,T0,EY,PV,xo,YX,AY,fY,xm,xo,ZG,l9,wX,cm,zo,JX,kY,nY,am,zo,pG,l9,hX,nB,DX,G,L8,L8,L8,L8,Pt,jC,PC,LC,KC,qC,bC,OY,QY,PY,yY,FY,CY,VY,IY,t9,aY,Ly,Tt,JY,iV,tG,rV,oG,Go,yG,kI,hG,qt,RY,Dw,ww,IW,ZX,J1,Ip,TV,Ao,UY,oY,lY,qy,KE,qE,fo,MY,Fo,iY,$y,SE,KF,t4,m0,m0,wC,TX,PX,LX,BV,eG,pV,AG,Go,QG,UV,nG,m0,Nt,Nt,O6,q6,q6,MX,q6,m0,tn,en,O6,J1,J1,Jn,$6,m0,tn,en,O6,J1,J1,Jn,$6,m0,En,nn,O6,J1,J1,Yn,$6,m0,En,nn,O6,J1,J1,Yn,$6,t4,m0,TW,uV,iG,t4,m0,PW,sV,dX,m0,Pm,W_,w_,X_,sn,sn,__,i_,r_,zw,k_,m0,Lm,m_,l_,B_,un,un,u_,e_,A_,Hw,t_,m0,NB,Rp,ep,Dp,Ap,O_,s_,Tp,m0,JB,gp,ip,Np,rp,j_,h_,Up,t4,m0,tf,UX,EW,iX,eX,kX,lh,rW,LB,fG,WV,GV,bV,dV,t4,m0,tf,XW,FW,AX,fX,nX,nh,Lp,DB,kG,XV,wV,mV,ZV,P3,Ro,EB,P3,Ro,fm,m0,Re,Re,U4,U4,U4,Vo,J1,j8,j8,m0,Re,Re,U4,U4,U4,Vo,J1,j8,j8,m0,Je,Je,U4,U4,U4,Io,J1,j8,j8,m0,Je,Je,U4,U4,U4,Io,J1,j8,j8,m0,G_,lw,m0,Z_,tw,m0,sw,Iw,m0,uw,Vw,m0,po,DV,b6,m0,po,pB,b6,t4,So,m0,mY,t4,m0,L8,L8,ko,m0,ko,m0,Kp,mC,Pp,CV,m0,_G,QB,EG,m0,ZB,F_,OW,m0,Tw,m0,sY,m0,WY,m0,pY,ef,rf,ef,ef]);function jo(){return C2.byteLength/65536|0}function nJ(f){f=f|0;var e=jo()|0,r=e+f|0;if(eF.startsWith(fl),Se=F=>F.startsWith("file://");function nl(){var F="libheif.wasm";return kl(F)?F:Ko(F)}var er;function tl(F){if(F==er&&d6)return new Uint8Array(d6);if(Oi)return Oi(F);throw\'sync fetching of the wasm failed: you can preload it to Module["wasmBinary"] manually, or emcc.py will do that for you when generating HTML (but not JS)\'}function ol(F,N){var M,T=tl(F);M=new Pi.Module(T);var $=new Pi.Instance(M,N);return[$,M]}function ll(){return{a:ks}}function ul(){var F=ll();function N(T,$){return e0=T.exports,c6=e0.P,G5(),x5=e0.R,el(e0.Q),ir("wasm-instantiate"),e0}if(ae("wasm-instantiate"),O.instantiateWasm)try{return O.instantiateWasm(F,N)}catch(T){ji(`Module.instantiateWasm callback failed with error: ${T}`),E8(T)}er||(er=nl());var M=ol(er,F);return N(M[0])}var S2,O1,Oe=F=>{for(;F.length>0;)F.shift()(O)},_J=O.noExitRuntime||!0,Q5=typeof TextDecoder!="undefined"?new TextDecoder:void 0,mi=(F,N,M)=>{for(var T=N+M,$=N;F[$]&&!($>=T);)++$;if($-N>16&&F.buffer&&Q5)return Q5.decode(F.subarray(N,$));for(var K="";N<$;){var o0=F[N++];if(!(o0&128)){K+=String.fromCharCode(o0);continue}var s0=F[N++]&63;if((o0&224)==192){K+=String.fromCharCode((o0&31)<<6|s0);continue}var t0=F[N++]&63;if((o0&240)==224?o0=(o0&15)<<12|s0<<6|t0:o0=(o0&7)<<18|s0<<12|t0<<6|F[N++]&63,o0<65536)K+=String.fromCharCode(o0);else{var E0=o0-65536;K+=String.fromCharCode(55296|E0>>10,56320|E0&1023)}}return K},qi=(F,N)=>F?mi(A4,F,N):"",sl=(F,N,M,T)=>{rr(`Assertion failed: ${qi(F)}, at: `+[N?qi(N):"unknown filename",M,T?qi(T):"unknown function"])};class hl{constructor(N){this.excPtr=N,this.ptr=N-24}set_type(N){j2[this.ptr+4>>2]=N}get_type(){return j2[this.ptr+4>>2]}set_destructor(N){j2[this.ptr+8>>2]=N}get_destructor(){return j2[this.ptr+8>>2]}set_caught(N){N=N?1:0,S1[this.ptr+12]=N}get_caught(){return S1[this.ptr+12]!=0}set_rethrown(N){N=N?1:0,S1[this.ptr+13]=N}get_rethrown(){return S1[this.ptr+13]!=0}init(N,M){this.set_adjusted_ptr(0),this.set_type(N),this.set_destructor(M)}set_adjusted_ptr(N){j2[this.ptr+16>>2]=N}get_adjusted_ptr(){return j2[this.ptr+16>>2]}get_exception_ptr(){var N=ts(this.get_type());if(N)return j2[this.excPtr>>2];var M=this.get_adjusted_ptr();return M!==0?M:this.excPtr}}var y5=0,wl=0,_l=(F,N,M)=>{var T=new hl(F);throw T.init(N,M),y5=F,wl++,y5};function Ar(){var F=a2[+m4.varargs>>2];return m4.varargs+=4,F}var Bi=Ar,w1={isAbs:F=>F.charAt(0)==="/",splitPath:F=>{var N=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return N.exec(F).slice(1)},normalizeArray:(F,N)=>{for(var M=0,T=F.length-1;T>=0;T--){var $=F[T];$==="."?F.splice(T,1):$===".."?(F.splice(T,1),M++):M&&(F.splice(T,1),M--)}if(N)for(;M;M--)F.unshift("..");return F},normalize:F=>{var N=w1.isAbs(F),M=F.substr(-1)==="/";return F=w1.normalizeArray(F.split("/").filter(T=>!!T),!N).join("/"),!F&&!N&&(F="."),F&&M&&(F+="/"),(N?"/":"")+F},dirname:F=>{var N=w1.splitPath(F),M=N[0],T=N[1];return!M&&!T?".":(T&&(T=T.substr(0,T.length-1)),M+T)},basename:F=>{if(F==="/")return"/";F=w1.normalize(F),F=F.replace(/\\/$/,"");var N=F.lastIndexOf("/");return N===-1?F:F.substr(N+1)},join:(...F)=>w1.normalize(F.join("/")),join2:(F,N)=>w1.normalize(F+"/"+N)},vl=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return T=>crypto.getRandomValues(T);if(q8)try{var F=h5("crypto"),N=F.randomFillSync;if(N)return T=>F.randomFillSync(T);var M=F.randomBytes;return T=>(T.set(M(T.byteLength)),T)}catch(T){}rr("initRandomDevice")},F5=F=>(F5=vl())(F),n8={resolve:(...F)=>{for(var N="",M=!1,T=F.length-1;T>=-1&&!M;T--){var $=T>=0?F[T]:b.cwd();if(typeof $!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!$)return"";N=$+"/"+N,M=w1.isAbs($)}return N=w1.normalizeArray(N.split("/").filter(K=>!!K),!M).join("/"),(M?"/":"")+N||"."},relative:(F,N)=>{F=n8.resolve(F).substr(1),N=n8.resolve(N).substr(1);function M(E0){for(var R0=0;R0=0&&E0[e2]==="";e2--);return R0>e2?[]:E0.slice(R0,e2-R0+1)}for(var T=M(F.split("/")),$=M(N.split("/")),K=Math.min(T.length,$.length),o0=K,s0=0;s0{for(var N=0,M=0;M=55296&&T<=57343?(N+=4,++M):N+=3}return N},Le=(F,N,M,T)=>{if(!(T>0))return 0;for(var $=M,K=M+T-1,o0=0;o0=55296&&s0<=57343){var t0=F.charCodeAt(++o0);s0=65536+((s0&1023)<<10)|t0&1023}if(s0<=127){if(M>=K)break;N[M++]=s0}else if(s0<=2047){if(M+1>=K)break;N[M++]=192|s0>>6,N[M++]=128|s0&63}else if(s0<=65535){if(M+2>=K)break;N[M++]=224|s0>>12,N[M++]=128|s0>>6&63,N[M++]=128|s0&63}else{if(M+3>=K)break;N[M++]=240|s0>>18,N[M++]=128|s0>>12&63,N[M++]=128|s0>>6&63,N[M++]=128|s0&63}}return N[M]=0,M-$};function E5(F,N,M){var T=M>0?M:Pe(F)+1,$=new Array(T),K=Le(F,$,0,$.length);return N&&($.length=K),$}var ml=()=>{if(!je.length){var F=null;if(q8){var N=256,M=Buffer.alloc(N),T=0,$=process.stdin.fd;try{T=ze.readSync($,M,0,N)}catch(K){if(K.toString().includes("EOF"))T=0;else throw K}T>0&&(F=M.slice(0,T).toString("utf-8"))}else typeof window!="undefined"&&typeof window.prompt=="function"&&(F=window.prompt("Input: "),F!==null&&(F+=`\n`));if(!F)return null;je=E5(F,!0)}return je.shift()},Y8={ttys:[],init(){},shutdown(){},register(F,N){Y8.ttys[F]={input:[],output:[],ops:N},b.registerDevice(F,Y8.stream_ops)},stream_ops:{open(F){var N=Y8.ttys[F.node.rdev];if(!N)throw new b.ErrnoError(43);F.tty=N,F.seekable=!1},close(F){F.tty.ops.fsync(F.tty)},fsync(F){F.tty.ops.fsync(F.tty)},read(F,N,M,T,$){if(!F.tty||!F.tty.ops.get_char)throw new b.ErrnoError(60);for(var K=0,o0=0;o00&&(He(mi(F.output,0)),F.output=[])},ioctl_tcgets(F){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(F,N,M){return 0},ioctl_tiocgwinsz(F){return[24,80]}},default_tty1_ops:{put_char(F,N){N===null||N===10?(ji(mi(F.output,0)),F.output=[]):N!=0&&F.output.push(N)},fsync(F){F.output&&F.output.length>0&&(ji(mi(F.output,0)),F.output=[])}}},Y5=F=>{rr()},X2={ops_table:null,mount(F){return X2.createNode(null,"/",16895,0)},createNode(F,N,M,T){if(b.isBlkdev(M)||b.isFIFO(M))throw new b.ErrnoError(63);X2.ops_table||(X2.ops_table={dir:{node:{getattr:X2.node_ops.getattr,setattr:X2.node_ops.setattr,lookup:X2.node_ops.lookup,mknod:X2.node_ops.mknod,rename:X2.node_ops.rename,unlink:X2.node_ops.unlink,rmdir:X2.node_ops.rmdir,readdir:X2.node_ops.readdir,symlink:X2.node_ops.symlink},stream:{llseek:X2.stream_ops.llseek}},file:{node:{getattr:X2.node_ops.getattr,setattr:X2.node_ops.setattr},stream:{llseek:X2.stream_ops.llseek,read:X2.stream_ops.read,write:X2.stream_ops.write,allocate:X2.stream_ops.allocate,mmap:X2.stream_ops.mmap,msync:X2.stream_ops.msync}},link:{node:{getattr:X2.node_ops.getattr,setattr:X2.node_ops.setattr,readlink:X2.node_ops.readlink},stream:{}},chrdev:{node:{getattr:X2.node_ops.getattr,setattr:X2.node_ops.setattr},stream:b.chrdev_stream_ops}});var $=b.createNode(F,N,M,T);return b.isDir($.mode)?($.node_ops=X2.ops_table.dir.node,$.stream_ops=X2.ops_table.dir.stream,$.contents={}):b.isFile($.mode)?($.node_ops=X2.ops_table.file.node,$.stream_ops=X2.ops_table.file.stream,$.usedBytes=0,$.contents=null):b.isLink($.mode)?($.node_ops=X2.ops_table.link.node,$.stream_ops=X2.ops_table.link.stream):b.isChrdev($.mode)&&($.node_ops=X2.ops_table.chrdev.node,$.stream_ops=X2.ops_table.chrdev.stream),$.timestamp=Date.now(),F&&(F.contents[N]=$,F.timestamp=$.timestamp),$},getFileDataAsTypedArray(F){return F.contents?F.contents.subarray?F.contents.subarray(0,F.usedBytes):new Uint8Array(F.contents):new Uint8Array(0)},expandFileStorage(F,N){var M=F.contents?F.contents.length:0;if(!(M>=N)){var T=1024*1024;N=Math.max(N,M*(M>>0),M!=0&&(N=Math.max(N,256));var $=F.contents;F.contents=new Uint8Array(N),F.usedBytes>0&&F.contents.set($.subarray(0,F.usedBytes),0)}},resizeFileStorage(F,N){if(F.usedBytes!=N)if(N==0)F.contents=null,F.usedBytes=0;else{var M=F.contents;F.contents=new Uint8Array(N),M&&F.contents.set(M.subarray(0,Math.min(N,F.usedBytes))),F.usedBytes=N}},node_ops:{getattr(F){var N={};return N.dev=b.isChrdev(F.mode)?F.id:1,N.ino=F.id,N.mode=F.mode,N.nlink=1,N.uid=0,N.gid=0,N.rdev=F.rdev,b.isDir(F.mode)?N.size=4096:b.isFile(F.mode)?N.size=F.usedBytes:b.isLink(F.mode)?N.size=F.link.length:N.size=0,N.atime=new Date(F.timestamp),N.mtime=new Date(F.timestamp),N.ctime=new Date(F.timestamp),N.blksize=4096,N.blocks=Math.ceil(N.size/N.blksize),N},setattr(F,N){N.mode!==void 0&&(F.mode=N.mode),N.timestamp!==void 0&&(F.timestamp=N.timestamp),N.size!==void 0&&X2.resizeFileStorage(F,N.size)},lookup(F,N){throw b.genericErrors[44]},mknod(F,N,M,T){return X2.createNode(F,N,M,T)},rename(F,N,M){if(b.isDir(F.mode)){var T;try{T=b.lookupNode(N,M)}catch(K){}if(T)for(var $ in T.contents)throw new b.ErrnoError(55)}delete F.parent.contents[F.name],F.parent.timestamp=Date.now(),F.name=M,N.contents[M]=F,N.timestamp=F.parent.timestamp},unlink(F,N){delete F.contents[N],F.timestamp=Date.now()},rmdir(F,N){var M=b.lookupNode(F,N);for(var T in M.contents)throw new b.ErrnoError(55);delete F.contents[N],F.timestamp=Date.now()},readdir(F){var N=[".",".."];for(var M of Object.keys(F.contents))N.push(M);return N},symlink(F,N,M){var T=X2.createNode(F,N,41471,0);return T.link=M,T},readlink(F){if(!b.isLink(F.mode))throw new b.ErrnoError(28);return F.link}},stream_ops:{read(F,N,M,T,$){var K=F.node.contents;if($>=F.node.usedBytes)return 0;var o0=Math.min(F.node.usedBytes-$,T);if(o0>8&&K.subarray)N.set(K.subarray($,$+o0),M);else for(var s0=0;s00||M+N{var $=T?"":`al ${F}`;xe(F).then(K=>{N(new Uint8Array(K)),$&&ir($)},K=>{if(M)M();else throw`Loading data file "${F}" failed.`}),$&&ae($)},Zl=(F,N,M,T,$,K)=>{b.createDataFile(F,N,M,T,$,K)},pl=O.preloadPlugins||[],Wl=(F,N,M,T)=>{typeof Browser!="undefined"&&Browser.init();var $=!1;return pl.forEach(K=>{$||K.canHandle(N)&&(K.handle(F,N,M,T),$=!0)}),$},Xl=(F,N,M,T,$,K,o0,s0,t0,E0)=>{var R0=N?n8.resolve(w1.join2(F,N)):F,e2=`cp ${R0}`;function u2(k2){function j0(N2){E0==null||E0(),s0||Zl(F,N,N2,T,$,t0),K==null||K(),ir(e2)}Wl(k2,R0,j0,()=>{o0==null||o0(),ir(e2)})||j0(k2)}ae(e2),typeof M=="string"?Bl(M,u2,o0):u2(M)},Gl=F=>{var N={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},M=N[F];if(typeof M=="undefined")throw new Error(`Unknown file open mode: ${F}`);return M},Ke=(F,N)=>{var M=0;return F&&(M|=365),N&&(M|=146),M},b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(F){this.name="ErrnoError",this.errno=F}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(F){this.node=F}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(F){this.shared.flags=F}get position(){return this.shared.position}set position(F){this.shared.position=F}},FSNode:class{constructor(F,N,M,T){F||(F=this),this.parent=F,this.mount=F.mount,this.mounted=null,this.id=b.nextInode++,this.name=N,this.mode=M,this.node_ops={},this.stream_ops={},this.rdev=T,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(F){F?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(F){F?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return b.isDir(this.mode)}get isDevice(){return b.isChrdev(this.mode)}},lookupPath(F,N={}){if(F=n8.resolve(F),!F)return{path:"",node:null};var M={follow_mount:!0,recurse_count:0};if(N=Object.assign(M,N),N.recurse_count>8)throw new b.ErrnoError(32);for(var T=F.split("/").filter(e2=>!!e2),$=b.root,K="/",o0=0;o040)throw new b.ErrnoError(32)}}return{path:K,node:$}},getPath(F){for(var N;;){if(b.isRoot(F)){var M=F.mount.mountpoint;return N?M[M.length-1]!=="/"?`${M}/${N}`:M+N:M}N=N?`${F.name}/${N}`:F.name,F=F.parent}},hashName(F,N){for(var M=0,T=0;T>>0)%b.nameTable.length},hashAddNode(F){var N=b.hashName(F.parent.id,F.name);F.name_next=b.nameTable[N],b.nameTable[N]=F},hashRemoveNode(F){var N=b.hashName(F.parent.id,F.name);if(b.nameTable[N]===F)b.nameTable[N]=F.name_next;else for(var M=b.nameTable[N];M;){if(M.name_next===F){M.name_next=F.name_next;break}M=M.name_next}},lookupNode(F,N){var M=b.mayLookup(F);if(M)throw new b.ErrnoError(M);for(var T=b.hashName(F.id,N),$=b.nameTable[T];$;$=$.name_next){var K=$.name;if($.parent.id===F.id&&K===N)return $}return b.lookup(F,N)},createNode(F,N,M,T){var $=new b.FSNode(F,N,M,T);return b.hashAddNode($),$},destroyNode(F){b.hashRemoveNode(F)},isRoot(F){return F===F.parent},isMountpoint(F){return!!F.mounted},isFile(F){return(F&61440)===32768},isDir(F){return(F&61440)===16384},isLink(F){return(F&61440)===40960},isChrdev(F){return(F&61440)===8192},isBlkdev(F){return(F&61440)===24576},isFIFO(F){return(F&61440)===4096},isSocket(F){return(F&49152)===49152},flagsToPermissionString(F){var N=["r","w","rw"][F&3];return F&512&&(N+="w"),N},nodePermissions(F,N){return b.ignorePermissions?0:N.includes("r")&&!(F.mode&292)||N.includes("w")&&!(F.mode&146)||N.includes("x")&&!(F.mode&73)?2:0},mayLookup(F){if(!b.isDir(F.mode))return 54;var N=b.nodePermissions(F,"x");return N||(F.node_ops.lookup?0:2)},mayCreate(F,N){try{var M=b.lookupNode(F,N);return 20}catch(T){}return b.nodePermissions(F,"wx")},mayDelete(F,N,M){var T;try{T=b.lookupNode(F,N)}catch(K){return K.errno}var $=b.nodePermissions(F,"wx");if($)return $;if(M){if(!b.isDir(T.mode))return 54;if(b.isRoot(T)||b.getPath(T)===b.cwd())return 10}else if(b.isDir(T.mode))return 31;return 0},mayOpen(F,N){return F?b.isLink(F.mode)?32:b.isDir(F.mode)&&(b.flagsToPermissionString(N)!=="r"||N&512)?31:b.nodePermissions(F,b.flagsToPermissionString(N)):44},MAX_OPEN_FDS:4096,nextfd(){for(var F=0;F<=b.MAX_OPEN_FDS;F++)if(!b.streams[F])return F;throw new b.ErrnoError(33)},getStreamChecked(F){var N=b.getStream(F);if(!N)throw new b.ErrnoError(8);return N},getStream:F=>b.streams[F],createStream(F,N=-1){return F=Object.assign(new b.FSStream,F),N==-1&&(N=b.nextfd()),F.fd=N,b.streams[N]=F,F},closeStream(F){b.streams[F]=null},dupStream(F,N=-1){var T,$;var M=b.createStream(F,N);return($=(T=M.stream_ops)==null?void 0:T.dup)==null||$.call(T,M),M},chrdev_stream_ops:{open(F){var M,T;var N=b.getDevice(F.node.rdev);F.stream_ops=N.stream_ops,(T=(M=F.stream_ops).open)==null||T.call(M,F)},llseek(){throw new b.ErrnoError(70)}},major:F=>F>>8,minor:F=>F&255,makedev:(F,N)=>F<<8|N,registerDevice(F,N){b.devices[F]={stream_ops:N}},getDevice:F=>b.devices[F],getMounts(F){for(var N=[],M=[F];M.length;){var T=M.pop();N.push(T),M.push(...T.mounts)}return N},syncfs(F,N){typeof F=="function"&&(N=F,F=!1),b.syncFSRequests++,b.syncFSRequests>1&&ji(`warning: ${b.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var M=b.getMounts(b.root.mount),T=0;function $(o0){return b.syncFSRequests--,N(o0)}function K(o0){if(o0)return K.errored?void 0:(K.errored=!0,$(o0));++T>=M.length&&$(null)}M.forEach(o0=>{if(!o0.type.syncfs)return K(null);o0.type.syncfs(o0,F,K)})},mount(F,N,M){var T=M==="/",$=!M,K;if(T&&b.root)throw new b.ErrnoError(10);if(!T&&!$){var o0=b.lookupPath(M,{follow_mount:!1});if(M=o0.path,K=o0.node,b.isMountpoint(K))throw new b.ErrnoError(10);if(!b.isDir(K.mode))throw new b.ErrnoError(54)}var s0={type:F,opts:N,mountpoint:M,mounts:[]},t0=F.mount(s0);return t0.mount=s0,s0.root=t0,T?b.root=t0:K&&(K.mounted=s0,K.mount&&K.mount.mounts.push(s0)),t0},unmount(F){var N=b.lookupPath(F,{follow_mount:!1});if(!b.isMountpoint(N.node))throw new b.ErrnoError(28);var M=N.node,T=M.mounted,$=b.getMounts(T);Object.keys(b.nameTable).forEach(o0=>{for(var s0=b.nameTable[o0];s0;){var t0=s0.name_next;$.includes(s0.mount)&&b.destroyNode(s0),s0=t0}}),M.mounted=null;var K=M.mount.mounts.indexOf(T);M.mount.mounts.splice(K,1)},lookup(F,N){return F.node_ops.lookup(F,N)},mknod(F,N,M){var T=b.lookupPath(F,{parent:!0}),$=T.node,K=w1.basename(F);if(!K||K==="."||K==="..")throw new b.ErrnoError(28);var o0=b.mayCreate($,K);if(o0)throw new b.ErrnoError(o0);if(!$.node_ops.mknod)throw new b.ErrnoError(63);return $.node_ops.mknod($,K,N,M)},create(F,N){return N=N!==void 0?N:438,N&=4095,N|=32768,b.mknod(F,N,0)},mkdir(F,N){return N=N!==void 0?N:511,N&=1023,N|=16384,b.mknod(F,N,0)},mkdirTree(F,N){for(var M=F.split("/"),T="",$=0;$b.currentPath,chdir(F){var N=b.lookupPath(F,{follow:!0});if(N.node===null)throw new b.ErrnoError(44);if(!b.isDir(N.node.mode))throw new b.ErrnoError(54);var M=b.nodePermissions(N.node,"x");if(M)throw new b.ErrnoError(M);b.currentPath=N.path},createDefaultDirectories(){b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices(){b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:()=>0,write:(T,$,K,o0,s0)=>o0}),b.mkdev("/dev/null",b.makedev(1,3)),Y8.register(b.makedev(5,0),Y8.default_tty_ops),Y8.register(b.makedev(6,0),Y8.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var F=new Uint8Array(1024),N=0,M=()=>(N===0&&(N=F5(F).byteLength),F[--N]);b.createDevice("/dev","random",M),b.createDevice("/dev","urandom",M),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories(){b.mkdir("/proc");var F=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount(){var N=b.createNode(F,"fd",16895,73);return N.node_ops={lookup(M,T){var $=+T,K=b.getStreamChecked($),o0={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>K.path}};return o0.parent=o0,o0}},N}},{},"/proc/self/fd")},createStandardStreams(){O.stdin?b.createDevice("/dev","stdin",O.stdin):b.symlink("/dev/tty","/dev/stdin"),O.stdout?b.createDevice("/dev","stdout",null,O.stdout):b.symlink("/dev/tty","/dev/stdout"),O.stderr?b.createDevice("/dev","stderr",null,O.stderr):b.symlink("/dev/tty1","/dev/stderr");var F=b.open("/dev/stdin",0),N=b.open("/dev/stdout",1),M=b.open("/dev/stderr",1)},staticInit(){[44].forEach(F=>{b.genericErrors[F]=new b.ErrnoError(F),b.genericErrors[F].stack=""}),b.nameTable=new Array(4096),b.mount(X2,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:X2}},init(F,N,M){b.init.initialized=!0,O.stdin=F||O.stdin,O.stdout=N||O.stdout,O.stderr=M||O.stderr,b.createStandardStreams()},quit(){b.init.initialized=!1;for(var F=0;Fthis.length-1||k2<0)){var j0=k2%this.chunkSize,N2=k2/this.chunkSize|0;return this.getter(N2)[j0]}}setDataGetter(k2){this.getter=k2}cacheLength(){var k2=new XMLHttpRequest;if(k2.open("HEAD",M,!1),k2.send(null),!(k2.status>=200&&k2.status<300||k2.status===304))throw new Error("Couldn\'t load "+M+". Status: "+k2.status);var j0=Number(k2.getResponseHeader("Content-length")),N2,m1=(N2=k2.getResponseHeader("Accept-Ranges"))&&N2==="bytes",U2=(N2=k2.getResponseHeader("Content-Encoding"))&&N2==="gzip",P=1024*1024;m1||(P=j0);var s1=(u4,n1)=>{if(u4>n1)throw new Error("invalid range ("+u4+", "+n1+") or no bytes requested!");if(n1>j0-1)throw new Error("only "+j0+" bytes available! programmer error!");var C2=new XMLHttpRequest;if(C2.open("GET",M,!1),j0!==P&&C2.setRequestHeader("Range","bytes="+u4+"-"+n1),C2.responseType="arraybuffer",C2.overrideMimeType&&C2.overrideMimeType("text/plain; charset=x-user-defined"),C2.send(null),!(C2.status>=200&&C2.status<300||C2.status===304))throw new Error("Couldn\'t load "+M+". Status: "+C2.status);return C2.response!==void 0?new Uint8Array(C2.response||[]):E5(C2.responseText||"",!0)},l8=this;l8.setDataGetter(u4=>{var n1=u4*P,C2=(u4+1)*P-1;if(C2=Math.min(C2,j0-1),typeof l8.chunks[u4]=="undefined"&&(l8.chunks[u4]=s1(n1,C2)),typeof l8.chunks[u4]=="undefined")throw new Error("doXHR failed!");return l8.chunks[u4]}),(U2||!j0)&&(P=j0=1,j0=this.getter(0).length,P=j0,He("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=j0,this._chunkSize=P,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!O4)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var o0=new K,s0={isDevice:!1,contents:o0}}else var s0={isDevice:!1,url:M};var t0=b.createFile(F,N,s0,T,$);s0.contents?t0.contents=s0.contents:s0.url&&(t0.contents=null,t0.url=s0.url),Object.defineProperties(t0,{usedBytes:{get:function(){return this.contents.length}}});var E0={},R0=Object.keys(t0.stream_ops);R0.forEach(u2=>{var k2=t0.stream_ops[u2];E0[u2]=(...j0)=>(b.forceLoadFile(t0),k2(...j0))});function e2(u2,k2,j0,N2,m1){var U2=u2.node.contents;if(m1>=U2.length)return 0;var P=Math.min(U2.length-m1,N2);if(U2.slice)for(var s1=0;s1(b.forceLoadFile(t0),e2(u2,k2,j0,N2,m1)),E0.mmap=(u2,k2,j0,N2,m1)=>{b.forceLoadFile(t0);var U2=Y5(k2);if(!U2)throw new b.ErrnoError(48);return e2(u2,S1,U2,k2,j0),{ptr:U2,allocated:!0}},t0.stream_ops=E0,t0}},m4={DEFAULT_POLLMASK:5,calculateAt(F,N,M){if(w1.isAbs(N))return N;var T;if(F===-100)T=b.cwd();else{var $=m4.getStreamFromFD(F);T=$.path}if(N.length==0){if(!M)throw new b.ErrnoError(44);return T}return w1.join2(T,N)},doStat(F,N,M){var T=F(N);a2[M>>2]=T.dev,a2[M+4>>2]=T.mode,j2[M+8>>2]=T.nlink,a2[M+12>>2]=T.uid,a2[M+16>>2]=T.gid,a2[M+20>>2]=T.rdev,O1=[T.size>>>0,(S2=T.size,+Math.abs(S2)>=1?S2>0?+Math.floor(S2/4294967296)>>>0:~~+Math.ceil((S2-+(~~S2>>>0))/4294967296)>>>0:0)],a2[M+24>>2]=O1[0],a2[M+28>>2]=O1[1],a2[M+32>>2]=4096,a2[M+36>>2]=T.blocks;var $=T.atime.getTime(),K=T.mtime.getTime(),o0=T.ctime.getTime();return O1=[Math.floor($/1e3)>>>0,(S2=Math.floor($/1e3),+Math.abs(S2)>=1?S2>0?+Math.floor(S2/4294967296)>>>0:~~+Math.ceil((S2-+(~~S2>>>0))/4294967296)>>>0:0)],a2[M+40>>2]=O1[0],a2[M+44>>2]=O1[1],j2[M+48>>2]=$%1e3*1e3,O1=[Math.floor(K/1e3)>>>0,(S2=Math.floor(K/1e3),+Math.abs(S2)>=1?S2>0?+Math.floor(S2/4294967296)>>>0:~~+Math.ceil((S2-+(~~S2>>>0))/4294967296)>>>0:0)],a2[M+56>>2]=O1[0],a2[M+60>>2]=O1[1],j2[M+64>>2]=K%1e3*1e3,O1=[Math.floor(o0/1e3)>>>0,(S2=Math.floor(o0/1e3),+Math.abs(S2)>=1?S2>0?+Math.floor(S2/4294967296)>>>0:~~+Math.ceil((S2-+(~~S2>>>0))/4294967296)>>>0:0)],a2[M+72>>2]=O1[0],a2[M+76>>2]=O1[1],j2[M+80>>2]=o0%1e3*1e3,O1=[T.ino>>>0,(S2=T.ino,+Math.abs(S2)>=1?S2>0?+Math.floor(S2/4294967296)>>>0:~~+Math.ceil((S2-+(~~S2>>>0))/4294967296)>>>0:0)],a2[M+88>>2]=O1[0],a2[M+92>>2]=O1[1],0},doMsync(F,N,M,T,$){if(!b.isFile(N.node.mode))throw new b.ErrnoError(43);if(T&2)return 0;var K=A4.slice(F,F+M);b.msync(N,K,$,M,T)},getStreamFromFD(F){var N=b.getStreamChecked(F);return N},varargs:void 0,getStr(F){var N=qi(F);return N}};function Cl(F,N,M){m4.varargs=M;try{var T=m4.getStreamFromFD(F);switch(N){case 0:{var $=Ar();if($<0)return-28;for(;b.streams[$];)$++;var K;return K=b.dupStream(T,$),K.fd}case 1:case 2:return 0;case 3:return T.flags;case 4:{var $=Ar();return T.flags|=$,0}case 12:{var $=Bi(),o0=0;return k8[$+o0>>1]=2,0}case 13:case 14:return 0}return-28}catch(s0){if(typeof b=="undefined"||s0.name!=="ErrnoError")throw s0;return-s0.errno}}function Vl(F,N,M){m4.varargs=M;try{var T=m4.getStreamFromFD(F);switch(N){case 21509:return T.tty?0:-59;case 21505:{if(!T.tty)return-59;if(T.tty.ops.ioctl_tcgets){var $=T.tty.ops.ioctl_tcgets(T),K=Bi();a2[K>>2]=$.c_iflag||0,a2[K+4>>2]=$.c_oflag||0,a2[K+8>>2]=$.c_cflag||0,a2[K+12>>2]=$.c_lflag||0;for(var o0=0;o0<32;o0++)S1[K+o0+17]=$.c_cc[o0]||0;return 0}return 0}case 21510:case 21511:case 21512:return T.tty?0:-59;case 21506:case 21507:case 21508:{if(!T.tty)return-59;if(T.tty.ops.ioctl_tcsets){for(var K=Bi(),s0=a2[K>>2],t0=a2[K+4>>2],E0=a2[K+8>>2],R0=a2[K+12>>2],e2=[],o0=0;o0<32;o0++)e2.push(S1[K+o0+17]);return T.tty.ops.ioctl_tcsets(T.tty,N,{c_iflag:s0,c_oflag:t0,c_cflag:E0,c_lflag:R0,c_cc:e2})}return 0}case 21519:{if(!T.tty)return-59;var K=Bi();return a2[K>>2]=0,0}case 21520:return T.tty?-28:-59;case 21531:{var K=Bi();return b.ioctl(T,N,K)}case 21523:{if(!T.tty)return-59;if(T.tty.ops.ioctl_tiocgwinsz){var u2=T.tty.ops.ioctl_tiocgwinsz(T.tty),K=Bi();k8[K>>1]=u2[0],k8[K+2>>1]=u2[1]}return 0}case 21524:return T.tty?0:-59;case 21515:return T.tty?0:-59;default:return-28}}catch(k2){if(typeof b=="undefined"||k2.name!=="ErrnoError")throw k2;return-k2.errno}}function Il(F,N,M,T){m4.varargs=T;try{N=m4.getStr(N),N=m4.calculateAt(F,N);var $=T?Ar():0;return b.open(N,M,$).fd}catch(K){if(typeof b=="undefined"||K.name!=="ErrnoError")throw K;return-K.errno}}var Ql=()=>{rr("")},fr={},qe=F=>{for(;F.length;){var N=F.pop(),M=F.pop();M(N)}};function $i(F){return this.fromWireType(j2[F>>2])}var Zi={},b8={},kr={},J5,nr=F=>{throw new J5(F)},$e=(F,N,M)=>{F.forEach(function(s0){kr[s0]=N});function T(s0){var t0=M(s0);t0.length!==F.length&&nr("Mismatched type converter count");for(var E0=0;E0{b8.hasOwnProperty(s0)?$[t0]=b8[s0]:(K.push(s0),Zi.hasOwnProperty(s0)||(Zi[s0]=[]),Zi[s0].push(()=>{$[t0]=b8[s0],++o0,o0===K.length&&T($)}))}),K.length===0&&T($)},yl=F=>{var N=fr[F];delete fr[F];var M=N.rawConstructor,T=N.rawDestructor,$=N.fields,K=$.map(o0=>o0.getterReturnType).concat($.map(o0=>o0.setterArgumentType));$e([F],K,o0=>{var s0={};return $.forEach((t0,E0)=>{var R0=t0.fieldName,e2=o0[E0],u2=t0.getter,k2=t0.getterContext,j0=o0[E0+$.length],N2=t0.setter,m1=t0.setterContext;s0[R0]={read:U2=>e2.fromWireType(u2(k2,U2)),write:(U2,P)=>{var s1=[];N2(m1,U2,j0.toWireType(s1,P)),qe(s1)}}}),[{name:N.name,fromWireType:t0=>{var E0={};for(var R0 in s0)E0[R0]=s0[R0].read(t0);return T(t0),E0},toWireType:(t0,E0)=>{for(var R0 in s0)if(!(R0 in E0))throw new TypeError(`Missing field: "${R0}"`);var e2=M();for(R0 in s0)s0[R0].write(e2,E0[R0]);return t0!==null&&t0.push(T,e2),e2},argPackAdvance:P4,readValueFromPointer:$i,destructorFunction:T}]})},Fl=(F,N,M,T,$)=>{},El=()=>{for(var F=new Array(256),N=0;N<256;++N)F[N]=String.fromCharCode(N);g5=F},g5,f4=F=>{for(var N="",M=F;A4[M];)N+=g5[A4[M++]];return N},bi,i1=F=>{throw new bi(F)};function Yl(F,N,M={}){var T=N.name;if(F||i1(`type "${T}" must have a positive integer typeid pointer`),b8.hasOwnProperty(F)){if(M.ignoreDuplicateRegistrations)return;i1(`Cannot register type \'${T}\' twice`)}if(b8[F]=N,delete kr[F],Zi.hasOwnProperty(F)){var $=Zi[F];delete Zi[F],$.forEach(K=>K())}}function j4(F,N,M={}){if(!("argPackAdvance"in N))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Yl(F,N,M)}var P4=8,Jl=(F,N,M,T)=>{N=f4(N),j4(F,{name:N,fromWireType:function($){return!!$},toWireType:function($,K){return K?M:T},argPackAdvance:P4,readValueFromPointer:function($){return this.fromWireType(A4[$])},destructorFunction:null})},gl=F=>({count:F.count,deleteScheduled:F.deleteScheduled,preservePointerOnDelete:F.preservePointerOnDelete,ptr:F.ptr,ptrType:F.ptrType,smartPtr:F.smartPtr,smartPtrType:F.smartPtrType}),be=F=>{function N(M){return M.$$.ptrType.registeredClass.name}i1(N(F)+" instance already deleted")},de=!1,N5=F=>{},Nl=F=>{F.smartPtr?F.smartPtrType.rawDestructor(F.smartPtr):F.ptrType.registeredClass.rawDestructor(F.ptr)},R5=F=>{F.count.value-=1;var N=F.count.value===0;N&&Nl(F)},D5=(F,N,M)=>{if(N===M)return F;if(M.baseClass===void 0)return null;var T=D5(F,N,M.baseClass);return T===null?null:M.downcast(T)},U5={},Rl=()=>Object.keys(i6).length,Dl=()=>{var F=[];for(var N in i6)i6.hasOwnProperty(N)&&F.push(i6[N]);return F},di=[],ce=()=>{for(;di.length;){var F=di.pop();F.$$.deleteScheduled=!1,F.delete()}},ci,Ul=F=>{ci=F,di.length&&ci&&ci(ce)},Ml=()=>{O.getInheritedInstanceCount=Rl,O.getLiveInheritedInstances=Dl,O.flushPendingDeletes=ce,O.setDelayFunction=Ul},i6={},xl=(F,N)=>{for(N===void 0&&i1("ptr should not be undefined");F.baseClass;)N=F.upcast(N),F=F.baseClass;return N},zl=(F,N)=>(N=xl(F,N),i6[N]),tr=(F,N)=>{(!N.ptrType||!N.ptr)&&nr("makeClassHandle requires ptr and ptrType");var M=!!N.smartPtrType,T=!!N.smartPtr;return M!==T&&nr("Both smartPtrType and smartPtr must be specified"),N.count={value:1},r6(Object.create(F,{$$:{value:N,writable:!0}}))};function Hl(F){var N=this.getPointee(F);if(!N)return this.destructor(F),null;var M=zl(this.registeredClass,N);if(M!==void 0){if(M.$$.count.value===0)return M.$$.ptr=N,M.$$.smartPtr=F,M.clone();var T=M.clone();return this.destructor(F),T}function $(){return this.isSmartPointer?tr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:N,smartPtrType:this,smartPtr:F}):tr(this.registeredClass.instancePrototype,{ptrType:this,ptr:F})}var K=this.registeredClass.getActualType(N),o0=U5[K];if(!o0)return $.call(this);var s0;this.isConst?s0=o0.constPointerType:s0=o0.pointerType;var t0=D5(N,this.registeredClass,s0.registeredClass);return t0===null?$.call(this):this.isSmartPointer?tr(s0.registeredClass.instancePrototype,{ptrType:s0,ptr:t0,smartPtrType:this,smartPtr:F}):tr(s0.registeredClass.instancePrototype,{ptrType:s0,ptr:t0})}var r6=F=>typeof FinalizationRegistry=="undefined"?(r6=N=>N,F):(de=new FinalizationRegistry(N=>{R5(N.$$)}),r6=N=>{var M=N.$$,T=!!M.smartPtr;if(T){var $={$$:M};de.register(N,$,N)}return N},N5=N=>de.unregister(N),r6(F)),Tl=()=>{Object.assign(or.prototype,{isAliasOf(F){if(!(this instanceof or)||!(F instanceof or))return!1;var N=this.$$.ptrType.registeredClass,M=this.$$.ptr;F.$$=F.$$;for(var T=F.$$.ptrType.registeredClass,$=F.$$.ptr;N.baseClass;)M=N.upcast(M),N=N.baseClass;for(;T.baseClass;)$=T.upcast($),T=T.baseClass;return N===T&&M===$},clone(){if(this.$$.ptr||be(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var F=r6(Object.create(Object.getPrototypeOf(this),{$$:{value:gl(this.$$)}}));return F.$$.count.value+=1,F.$$.deleteScheduled=!1,F},delete(){this.$$.ptr||be(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&i1("Object already scheduled for deletion"),N5(this),R5(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||be(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&i1("Object already scheduled for deletion"),di.push(this),di.length===1&&ci&&ci(ce),this.$$.deleteScheduled=!0,this}})};function or(){}var pi=(F,N)=>Object.defineProperty(N,"name",{value:F}),al=(F,N,M)=>{if(F[N].overloadTable===void 0){var T=F[N];F[N]=function(...$){return F[N].overloadTable.hasOwnProperty($.length)||i1(`Function \'${M}\' called with an invalid number of arguments (${$.length}) - expects one of (${F[N].overloadTable})!`),F[N].overloadTable[$.length].apply(this,$)},F[N].overloadTable=[],F[N].overloadTable[T.argCount]=T}},iA=(F,N,M)=>{O.hasOwnProperty(F)?((M===void 0||O[F].overloadTable!==void 0&&O[F].overloadTable[M]!==void 0)&&i1(`Cannot register public name \'${F}\' twice`),al(O,F,F),O.hasOwnProperty(M)&&i1(`Cannot register multiple overloads of a function with the same number of arguments (${M})!`),O[F].overloadTable[M]=N):(O[F]=N,M!==void 0&&(O[F].numArguments=M))},Sl=48,Ol=57,jl=F=>{if(F===void 0)return"_unknown";F=F.replace(/[^a-zA-Z0-9_]/g,"$");var N=F.charCodeAt(0);return N>=Sl&&N<=Ol?`_${F}`:F};function Pl(F,N,M,T,$,K,o0,s0){this.name=F,this.constructor=N,this.instancePrototype=M,this.rawDestructor=T,this.baseClass=$,this.getActualType=K,this.upcast=o0,this.downcast=s0,this.pureVirtualFunctions=[]}var rA=(F,N,M)=>{for(;N!==M;)N.upcast||i1(`Expected null or instance of ${M.name}, got an instance of ${N.name}`),F=N.upcast(F),N=N.baseClass;return F};function Ll(F,N){if(N===null)return this.isReference&&i1(`null is not a valid ${this.name}`),0;N.$$||i1(`Cannot pass "${kA(N)}" as a ${this.name}`),N.$$.ptr||i1(`Cannot pass deleted object as a pointer of type ${this.name}`);var M=N.$$.ptrType.registeredClass,T=rA(N.$$.ptr,M,this.registeredClass);return T}function Kl(F,N){var M;if(N===null)return this.isReference&&i1(`null is not a valid ${this.name}`),this.isSmartPointer?(M=this.rawConstructor(),F!==null&&F.push(this.rawDestructor,M),M):0;(!N||!N.$$)&&i1(`Cannot pass "${kA(N)}" as a ${this.name}`),N.$$.ptr||i1(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&N.$$.ptrType.isConst&&i1(`Cannot convert argument of type ${N.$$.smartPtrType?N.$$.smartPtrType.name:N.$$.ptrType.name} to parameter type ${this.name}`);var T=N.$$.ptrType.registeredClass;if(M=rA(N.$$.ptr,T,this.registeredClass),this.isSmartPointer)switch(N.$$.smartPtr===void 0&&i1("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:N.$$.smartPtrType===this?M=N.$$.smartPtr:i1(`Cannot convert argument of type ${N.$$.smartPtrType?N.$$.smartPtrType.name:N.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:M=N.$$.smartPtr;break;case 2:if(N.$$.smartPtrType===this)M=N.$$.smartPtr;else{var $=N.clone();M=this.rawShare(M,I4.toHandle(()=>$.delete())),F!==null&&F.push(this.rawDestructor,M)}break;default:i1("Unsupporting sharing policy")}return M}function ql(F,N){if(N===null)return this.isReference&&i1(`null is not a valid ${this.name}`),0;N.$$||i1(`Cannot pass "${kA(N)}" as a ${this.name}`),N.$$.ptr||i1(`Cannot pass deleted object as a pointer of type ${this.name}`),N.$$.ptrType.isConst&&i1(`Cannot convert argument of type ${N.$$.ptrType.name} to parameter type ${this.name}`);var M=N.$$.ptrType.registeredClass,T=rA(N.$$.ptr,M,this.registeredClass);return T}var $l=()=>{Object.assign(lr.prototype,{getPointee(F){return this.rawGetPointee&&(F=this.rawGetPointee(F)),F},destructor(F){var N;(N=this.rawDestructor)==null||N.call(this,F)},argPackAdvance:P4,readValueFromPointer:$i,fromWireType:Hl})};function lr(F,N,M,T,$,K,o0,s0,t0,E0,R0){this.name=F,this.registeredClass=N,this.isReference=M,this.isConst=T,this.isSmartPointer=$,this.pointeeType=K,this.sharingPolicy=o0,this.rawGetPointee=s0,this.rawConstructor=t0,this.rawShare=E0,this.rawDestructor=R0,!$&&N.baseClass===void 0?T?(this.toWireType=Ll,this.destructorFunction=null):(this.toWireType=ql,this.destructorFunction=null):this.toWireType=Kl}var M5=(F,N,M)=>{O.hasOwnProperty(F)||nr("Replacing nonexistent public symbol"),O[F].overloadTable!==void 0&&M!==void 0?O[F].overloadTable[M]=N:(O[F]=N,O[F].argCount=M)},bl=(F,N,M)=>{F=F.replace(/p/g,"i");var T=O["dynCall_"+F];return T(N,...M)},ur=[],x5,z5=F=>{var N=ur[F];return N||(F>=ur.length&&(ur.length=F+1),ur[F]=N=x5.get(F)),N},dl=(F,N,M=[])=>{if(F.includes("j"))return bl(F,N,M);var T=z5(N)(...M);return T},cl=(F,N)=>(...M)=>dl(F,N,M),t8=(F,N)=>{F=f4(F);function M(){return F.includes("j")?cl(F,N):z5(N)}var T=M();return typeof T!="function"&&i1(`unknown function pointer with signature ${F}: ${N}`),T},iu=(F,N)=>{var M=pi(N,function(T){this.name=N,this.message=T;var $=new Error(T).stack;$!==void 0&&(this.stack=this.toString()+`\n`+$.replace(/^Error(:[^\\n]*)?\\n/,""))});return M.prototype=Object.create(F.prototype),M.prototype.constructor=M,M.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},M},H5,T5=F=>{var N=ns(F),M=f4(N);return J8(N),M},a5=(F,N)=>{var M=[],T={};function $(K){if(!T[K]&&!b8[K]){if(kr[K]){kr[K].forEach($);return}M.push(K),T[K]=!0}}throw N.forEach($),new H5(`${F}: `+M.map(T5).join([", "]))},ru=(F,N,M,T,$,K,o0,s0,t0,E0,R0,e2,u2)=>{R0=f4(R0),K=t8($,K),s0&&(s0=t8(o0,s0)),E0&&(E0=t8(t0,E0)),u2=t8(e2,u2);var k2=jl(R0);iA(k2,function(){a5(`Cannot construct ${R0} due to unbound types`,[T])}),$e([F,N,M],T?[T]:[],j0=>{var C2,l;j0=j0[0];var N2,m1;T?(N2=j0.registeredClass,m1=N2.instancePrototype):m1=or.prototype;var U2=pi(R0,function(...X){if(Object.getPrototypeOf(this)!==P)throw new bi("Use \'new\' to construct "+R0);if(s1.constructor_body===void 0)throw new bi(R0+" has no accessible constructor");var i=s1.constructor_body[X.length];if(i===void 0)throw new bi(`Tried to invoke ctor of ${R0} with invalid number of parameters (${X.length}) - expected (${Object.keys(s1.constructor_body).toString()}) parameters instead!`);return i.apply(this,X)}),P=Object.create(m1,{constructor:{value:U2}});U2.prototype=P;var s1=new Pl(R0,U2,P,u2,N2,K,s0,E0);s1.baseClass&&((l=(C2=s1.baseClass).__derivedClasses)!=null||(C2.__derivedClasses=[]),s1.baseClass.__derivedClasses.push(s1));var l8=new lr(R0,s1,!0,!1,!1),u4=new lr(R0+"*",s1,!1,!1,!1),n1=new lr(R0+" const*",s1,!1,!0,!1);return U5[F]={pointerType:u4,constPointerType:n1},M5(k2,U2),[l8,u4,n1]})},eA=[],o8=[],AA=F=>{F>9&&--o8[F+1]===0&&(o8[F]=void 0,eA.push(F))},eu=()=>o8.length/2-5-eA.length,Au=()=>{o8.push(0,1,void 0,1,null,1,!0,1,!1,1),O.count_emval_handles=eu},I4={toValue:F=>(F||i1("Cannot use deleted val. handle = "+F),o8[F]),toHandle:F=>{switch(F){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let N=eA.pop()||o8.length;return o8[N]=F,o8[N+1]=1,N}}}},fu={name:"emscripten::val",fromWireType:F=>{var N=I4.toValue(F);return AA(F),N},toWireType:(F,N)=>I4.toHandle(N),argPackAdvance:P4,readValueFromPointer:$i,destructorFunction:null},ku=F=>j4(F,fu),nu=(F,N,M)=>{switch(N){case 1:return M?function(T){return this.fromWireType(S1[T])}:function(T){return this.fromWireType(A4[T])};case 2:return M?function(T){return this.fromWireType(k8[T>>1])}:function(T){return this.fromWireType(Li[T>>1])};case 4:return M?function(T){return this.fromWireType(a2[T>>2])}:function(T){return this.fromWireType(j2[T>>2])};default:throw new TypeError(`invalid integer width (${N}): ${F}`)}},tu=(F,N,M,T)=>{N=f4(N);function $(){}$.values={},j4(F,{name:N,constructor:$,fromWireType:function(K){return this.constructor.values[K]},toWireType:(K,o0)=>o0.value,argPackAdvance:P4,readValueFromPointer:nu(N,M,T),destructorFunction:null}),iA(N,$)},fA=(F,N)=>{var M=b8[F];return M===void 0&&i1(`${N} has unknown type ${T5(F)}`),M},ou=(F,N,M)=>{var T=fA(F,"enum");N=f4(N);var $=T.constructor,K=Object.create(T.constructor.prototype,{value:{value:M},constructor:{value:pi(`${T.name}_${N}`,function(){})}});$.values[M]=K,$[N]=K},kA=F=>{if(F===null)return"null";var N=typeof F;return N==="object"||N==="array"||N==="function"?F.toString():""+F},lu=(F,N)=>{switch(N){case 4:return function(M){return this.fromWireType(W5[M>>2])};case 8:return function(M){return this.fromWireType(X5[M>>3])};default:throw new TypeError(`invalid float width (${N}): ${F}`)}},uu=(F,N,M)=>{N=f4(N),j4(F,{name:N,fromWireType:T=>T,toWireType:(T,$)=>$,argPackAdvance:P4,readValueFromPointer:lu(N,M),destructorFunction:null})};function S5(F){for(var N=1;N0?", ":"")+s0),E0+=(M||T?"var rv = ":"")+"invoker(fn"+(s0.length>0?", ":"")+s0+`);\n`,$)E0+=`runDestructors(destructors);\n`;else for(var t0=N?1:2;t0{for(var M=[],T=0;T>2]);return M},_u=F=>{F=F.trim();let N=F.indexOf("(");return N!==-1?F.substr(0,N):F},vu=(F,N,M,T,$,K,o0)=>{var s0=wu(N,M);F=f4(F),F=_u(F),$=t8(T,$),iA(F,function(){a5(`Cannot call ${F} due to unbound types`,s0)},N-1),$e([],s0,t0=>{var E0=[t0[0],null].concat(t0.slice(1));return M5(F,hu(F,E0,null,$,K,o0),N-1),[]})},mu=(F,N,M)=>{switch(N){case 1:return M?T=>S1[T]:T=>A4[T];case 2:return M?T=>k8[T>>1]:T=>Li[T>>1];case 4:return M?T=>a2[T>>2]:T=>j2[T>>2];default:throw new TypeError(`invalid integer width (${N}): ${F}`)}},Bu=(F,N,M,T,$)=>{N=f4(N),$===-1&&($=4294967295);var K=R0=>R0;if(T===0){var o0=32-8*M;K=R0=>R0<>>o0}var s0=N.includes("unsigned"),t0=(R0,e2)=>{},E0;s0?E0=function(R0,e2){return t0(e2,this.name),e2>>>0}:E0=function(R0,e2){return t0(e2,this.name),e2},j4(F,{name:N,fromWireType:K,toWireType:E0,argPackAdvance:P4,readValueFromPointer:mu(N,M,T!==0),destructorFunction:null})},Zu=(F,N,M)=>{var T=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],$=T[N];function K(o0){var s0=j2[o0>>2],t0=j2[o0+4>>2];return new $(S1.buffer,t0,s0)}M=f4(M),j4(F,{name:M,fromWireType:K,argPackAdvance:P4,readValueFromPointer:K},{ignoreDuplicateRegistrations:!0})},e6=(F,N,M)=>Le(F,A4,N,M),pu=(F,N)=>{N=f4(N);var M=N==="std::string";j4(F,{name:N,fromWireType(T){var $=j2[T>>2],K=T+4,o0;if(M)for(var s0=K,t0=0;t0<=$;++t0){var E0=K+t0;if(t0==$||A4[E0]==0){var R0=E0-s0,e2=qi(s0,R0);o0===void 0?o0=e2:(o0+="\\0",o0+=e2),s0=E0+1}}else{for(var u2=new Array($),t0=0;t0<$;++t0)u2[t0]=String.fromCharCode(A4[K+t0]);o0=u2.join("")}return J8(T),o0},toWireType(T,$){$ instanceof ArrayBuffer&&($=new Uint8Array($));var K,o0=typeof $=="string";o0||$ instanceof Uint8Array||$ instanceof Uint8ClampedArray||$ instanceof Int8Array||i1("Cannot pass non-string to std::string"),M&&o0?K=Pe($):K=$.length;var s0=L5(4+K+1),t0=s0+4;if(j2[s0>>2]=K,M&&o0)e6($,t0,K+1);else if(o0)for(var E0=0;E0255&&(J8(t0),i1("String has UTF-16 code units that do not fit in 8 bits")),A4[t0+E0]=R0}else for(var E0=0;E0{for(var M=F,T=M>>1,$=T+N/2;!(T>=$)&&Li[T];)++T;if(M=T<<1,M-F>32&&j5)return j5.decode(A4.subarray(F,M));for(var K="",o0=0;!(o0>=N/2);++o0){var s0=k8[F+o0*2>>1];if(s0==0)break;K+=String.fromCharCode(s0)}return K},Xu=(F,N,M)=>{if(M!=null||(M=2147483647),M<2)return 0;M-=2;for(var T=N,$=M>1]=o0,N+=2}return k8[N>>1]=0,N-T},Gu=F=>F.length*2,Cu=(F,N)=>{for(var M=0,T="";!(M>=N/4);){var $=a2[F+M*4>>2];if($==0)break;if(++M,$>=65536){var K=$-65536;T+=String.fromCharCode(55296|K>>10,56320|K&1023)}else T+=String.fromCharCode($)}return T},Vu=(F,N,M)=>{if(M!=null||(M=2147483647),M<4)return 0;for(var T=N,$=T+M-4,K=0;K=55296&&o0<=57343){var s0=F.charCodeAt(++K);o0=65536+((o0&1023)<<10)|s0&1023}if(a2[N>>2]=o0,N+=4,N+4>$)break}return a2[N>>2]=0,N-T},Iu=F=>{for(var N=0,M=0;M=55296&&T<=57343&&++M,N+=4}return N},Qu=(F,N,M)=>{M=f4(M);var T,$,K,o0;N===2?(T=Wu,$=Xu,o0=Gu,K=s0=>Li[s0>>1]):N===4&&(T=Cu,$=Vu,o0=Iu,K=s0=>j2[s0>>2]),j4(F,{name:M,fromWireType:s0=>{for(var t0=j2[s0>>2],E0,R0=s0+4,e2=0;e2<=t0;++e2){var u2=s0+4+e2*N;if(e2==t0||K(u2)==0){var k2=u2-R0,j0=T(R0,k2);E0===void 0?E0=j0:(E0+="\\0",E0+=j0),R0=u2+N}}return J8(s0),E0},toWireType:(s0,t0)=>{typeof t0!="string"&&i1(`Cannot pass non-string to C++ string type ${M}`);var E0=o0(t0),R0=L5(4+E0+N);return j2[R0>>2]=E0/N,$(t0,R0+4,E0+N),s0!==null&&s0.push(J8,R0),R0},argPackAdvance:P4,readValueFromPointer:$i,destructorFunction(s0){J8(s0)}})},yu=(F,N,M,T,$,K)=>{fr[F]={name:f4(N),rawConstructor:t8(M,T),rawDestructor:t8($,K),fields:[]}},Fu=(F,N,M,T,$,K,o0,s0,t0,E0)=>{fr[F].fields.push({fieldName:f4(N),getterReturnType:M,getter:t8(T,$),getterContext:K,setterArgumentType:o0,setter:t8(s0,t0),setterContext:E0})},Eu=(F,N)=>{N=f4(N),j4(F,{isVoid:!0,name:N,argPackAdvance:0,fromWireType:()=>{},toWireType:(M,T)=>{}})},Yu=(F,N,M)=>A4.copyWithin(F,N,N+M),Ju={},P5=F=>{var N=Ju[F];return N===void 0?f4(F):N},nA=[],gu=(F,N,M,T,$)=>(F=nA[F],N=I4.toValue(N),M=P5(M),F(N,N[M],T,$)),Nu=F=>{var N=nA.length;return nA.push(F),N},Ru=(F,N)=>{for(var M=new Array(F),T=0;T>2],"parameter "+T);return M},vJ=Reflect.construct,Du=(F,N,M)=>{var T=[],$=F.toWireType(T,M);return T.length&&(j2[N>>2]=I4.toHandle(T)),$},Uu=(F,N,M)=>{var T=Ru(F,N),$=T.shift();F--;var K=`return function (obj, func, destructorsRef, args) {\n`,o0=0,s0=[];M===0&&s0.push("obj");for(var t0=["retType"],E0=[$],R0=0;R0j0.name).join(", ")}) => ${$.name}>`;return Nu(pi(k2,u2))},Mu=F=>{F>9&&(o8[F+1]+=1)},xu=()=>I4.toHandle([]),zu=F=>I4.toHandle(P5(F)),Hu=()=>I4.toHandle({}),Tu=F=>{var N=I4.toValue(F);qe(N),AA(F)},au=(F,N,M)=>{F=I4.toValue(F),N=I4.toValue(N),M=I4.toValue(M),F[N]=M},Su=(F,N)=>{F=fA(F,"_emval_take_value");var M=F.readValueFromPointer(N);return I4.toHandle(M)},Ou=(F,N,M,T)=>{var $=new Date().getFullYear(),K=new Date($,0,1),o0=new Date($,6,1),s0=K.getTimezoneOffset(),t0=o0.getTimezoneOffset(),E0=Math.max(s0,t0);j2[F>>2]=E0*60,a2[N>>2]=+(s0!=t0);var R0=k2=>{var j0=k2>=0?"-":"+",N2=Math.abs(k2),m1=String(Math.floor(N2/60)).padStart(2,"0"),U2=String(N2%60).padStart(2,"0");return`UTC${j0}${m1}${U2}`},e2=R0(s0),u2=R0(t0);t02147483648,Pu=F=>{var N=c6.buffer,M=(F-N.byteLength+65535)/65536;try{return c6.grow(M),G5(),1}catch(T){}},Lu=F=>{var N=A4.length;F>>>=0;var M=ju();if(F>M)return!1;for(var T=(t0,E0)=>t0+(E0-t0%E0)%E0,$=1;$<=4;$*=2){var K=N*(1+.2/$);K=Math.min(K,F+100663296);var o0=Math.min(M,T(Math.max(F,K),65536)),s0=Pu(o0);if(s0)return!0}return!1},tA={},Ku=()=>Me||"./this.program",A6=()=>{if(!A6.strings){var F=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",N={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:F,_:Ku()};for(var M in tA)tA[M]===void 0?delete N[M]:N[M]=tA[M];var T=[];for(var M in N)T.push(`${M}=${N[M]}`);A6.strings=T}return A6.strings},qu=(F,N)=>{for(var M=0;M{var M=0;return A6().forEach((T,$)=>{var K=N+M;j2[F+$*4>>2]=K,qu(T,K),M+=T.length+1}),0},bu=(F,N)=>{var M=A6();j2[F>>2]=M.length;var T=0;return M.forEach($=>T+=$.length+1),j2[N>>2]=T,0};function du(F){try{var N=m4.getStreamFromFD(F);return b.close(N),0}catch(M){if(typeof b=="undefined"||M.name!=="ErrnoError")throw M;return M.errno}}var cu=(F,N,M,T)=>{for(var $=0,K=0;K>2],s0=j2[N+4>>2];N+=8;var t0=b.read(F,S1,o0,s0,T);if(t0<0)return-1;if($+=t0,t0>2]=K,0}catch(o0){if(typeof b=="undefined"||o0.name!=="ErrnoError")throw o0;return o0.errno}}var rs=(F,N)=>N+2097152>>>0<4194305-!!F?(F>>>0)+N*4294967296:NaN;function es(F,N,M,T,$){var K=rs(N,M);try{if(isNaN(K))return 61;var o0=m4.getStreamFromFD(F);return b.llseek(o0,K,T),O1=[o0.position>>>0,(S2=o0.position,+Math.abs(S2)>=1?S2>0?+Math.floor(S2/4294967296)>>>0:~~+Math.ceil((S2-+(~~S2>>>0))/4294967296)>>>0:0)],a2[$>>2]=O1[0],a2[$+4>>2]=O1[1],o0.getdents&&K===0&&T===0&&(o0.getdents=null),0}catch(s0){if(typeof b=="undefined"||s0.name!=="ErrnoError")throw s0;return s0.errno}}var As=(F,N,M,T)=>{for(var $=0,K=0;K>2],s0=j2[N+4>>2];N+=8;var t0=b.write(F,S1,o0,s0,T);if(t0<0)return-1;$+=t0,typeof T!="undefined"&&(T+=t0)}return $};function fs(F,N,M,T){try{var $=m4.getStreamFromFD(F),K=As($,N,M);return j2[T>>2]=K,0}catch(o0){if(typeof b=="undefined"||o0.name!=="ErrnoError")throw o0;return o0.errno}}b.createPreloadedFile=Xl,b.staticInit(),J5=O.InternalError=class extends Error{constructor(N){super(N),this.name="InternalError"}},El(),bi=O.BindingError=class extends Error{constructor(N){super(N),this.name="BindingError"}},Tl(),Ml(),$l(),H5=O.UnboundTypeError=iu(Error,"UnboundTypeError"),Au();var ks={a:sl,l:_l,r:Cl,D:Vl,E:Il,F:Ql,v:yl,y:Fl,J:Jl,n:ru,I:ku,j:tu,b:ou,u:uu,f:vu,i:Bu,d:Zu,t:pu,p:Qu,w:yu,m:Fu,K:Eu,H:Yu,M:gu,c:AA,N:Uu,O:Mu,q:xu,h:zu,k:Hu,L:Tu,g:au,e:Su,z:Ou,G:Lu,A:$u,B:bu,s:du,C:is,x:es,o:fs},e0=ul(),mJ=e0.Q,BJ=O._memcpy=e0.S,ZJ=O._heif_image_release=e0.T,L5=O._malloc=e0.U,pJ=O._heif_nclx_color_profile_set_color_primaries=e0.V,J8=O._free=e0.W,WJ=O._heif_nclx_color_profile_set_transfer_characteristics=e0.X,XJ=O._heif_nclx_color_profile_set_matrix_coefficients=e0.Y,GJ=O._heif_init=e0.Z,CJ=O._heif_deinit=e0._,VJ=O._heif_load_plugin=e0.$,IJ=O._heif_unload_plugin=e0.aa,QJ=O._heif_load_plugins=e0.ba,yJ=O._heif_get_plugin_directories=e0.ca,FJ=O._heif_free_plugin_directories=e0.da,EJ=O._heif_get_version=e0.ea,YJ=O._heif_get_version_number=e0.fa,JJ=O._heif_get_version_number_major=e0.ga,gJ=O._heif_get_version_number_minor=e0.ha,NJ=O._heif_get_version_number_maintenance=e0.ia,RJ=O._heif_check_filetype=e0.ja,DJ=O._heif_read_main_brand=e0.ka,UJ=O._heif_has_compatible_filetype=e0.la,MJ=O._heif_list_compatible_brands=e0.ma,xJ=O._heif_free_list_of_compatible_brands=e0.na,zJ=O._heif_check_jpeg_filetype=e0.oa,HJ=O._heif_main_brand=e0.pa,TJ=O._heif_fourcc_to_brand=e0.qa,aJ=O._heif_brand_to_fourcc=e0.ra,SJ=O._heif_has_compatible_brand=e0.sa,OJ=O._heif_get_file_mime_type=e0.ta,jJ=O._heif_context_alloc=e0.ua,PJ=O._heif_context_free=e0.va,LJ=O._heif_context_read_from_file=e0.wa,KJ=O._heif_context_read_from_memory=e0.xa,qJ=O._heif_context_read_from_memory_without_copy=e0.ya,$J=O._heif_context_read_from_reader=e0.za,bJ=O._heif_context_debug_dump_boxes_to_file=e0.Aa,dJ=O._heif_context_get_primary_image_handle=e0.Ba,cJ=O._heif_context_get_primary_image_ID=e0.Ca,ig=O._heif_context_is_top_level_image_ID=e0.Da,rg=O._heif_context_get_number_of_top_level_images=e0.Ea,eg=O._heif_context_get_list_of_top_level_image_IDs=e0.Fa,Ag=O._heif_context_get_image_handle=e0.Ga,fg=O._heif_image_handle_is_primary_image=e0.Ha,kg=O._heif_image_handle_get_item_id=e0.Ia,ng=O._heif_image_handle_get_number_of_thumbnails=e0.Ja,tg=O._heif_image_handle_get_list_of_thumbnail_IDs=e0.Ka,og=O._heif_image_handle_get_thumbnail=e0.La,lg=O._heif_image_handle_get_number_of_auxiliary_images=e0.Ma,ug=O._heif_image_handle_get_list_of_auxiliary_image_IDs=e0.Na,sg=O._heif_image_handle_get_auxiliary_type=e0.Oa,hg=O._heif_image_handle_release_auxiliary_type=e0.Pa,wg=O._heif_image_handle_free_auxiliary_types=e0.Qa,_g=O._heif_image_handle_get_auxiliary_image_handle=e0.Ra,vg=O._heif_image_handle_get_width=e0.Sa,mg=O._heif_image_handle_get_height=e0.Ta,Bg=O._heif_image_handle_get_ispe_width=e0.Ua,Zg=O._heif_image_handle_get_ispe_height=e0.Va,pg=O._heif_image_handle_get_context=e0.Wa,Wg=O._heif_image_handle_get_preferred_decoding_colorspace=e0.Xa,Xg=O._heif_image_handle_has_alpha_channel=e0.Ya,Gg=O._heif_image_handle_is_premultiplied_alpha=e0.Za,Cg=O._heif_image_handle_get_luma_bits_per_pixel=e0._a,Vg=O._heif_image_handle_get_chroma_bits_per_pixel=e0.$a,Ig=O._heif_image_handle_has_depth_image=e0.ab,Qg=O._heif_depth_representation_info_free=e0.bb,yg=O._heif_image_handle_get_depth_image_representation_info=e0.cb,Fg=O._heif_image_handle_get_number_of_depth_images=e0.db,Eg=O._heif_image_handle_get_list_of_depth_image_IDs=e0.eb,Yg=O._heif_image_handle_get_depth_image_handle=e0.fb,Jg=O._heif_decoding_options_alloc=e0.gb,gg=O._heif_decoding_options_free=e0.hb,Ng=O._heif_decode_image=e0.ib,Rg=O._heif_image_create=e0.jb,Dg=O._heif_image_get_decoding_warnings=e0.kb,Ug=O._heif_image_add_decoding_warning=e0.lb,Mg=O._heif_image_has_content_light_level=e0.mb,xg=O._heif_image_get_content_light_level=e0.nb,zg=O._heif_image_set_content_light_level=e0.ob,Hg=O._heif_image_has_mastering_display_colour_volume=e0.pb,Tg=O._heif_image_get_mastering_display_colour_volume=e0.qb,ag=O._heif_image_set_mastering_display_colour_volume=e0.rb,Sg=O._heif_mastering_display_colour_volume_decode=e0.sb,Og=O._heif_image_get_pixel_aspect_ratio=e0.tb,jg=O._heif_image_set_pixel_aspect_ratio=e0.ub,Pg=O._heif_image_handle_release=e0.vb,Lg=O._heif_image_get_colorspace=e0.wb,Kg=O._heif_image_get_chroma_format=e0.xb,qg=O._heif_image_get_width=e0.yb,$g=O._heif_image_get_height=e0.zb,bg=O._heif_image_get_primary_width=e0.Ab,dg=O._heif_image_get_primary_height=e0.Bb,cg=O._heif_image_crop=e0.Cb,iN=O._heif_image_get_bits_per_pixel=e0.Db,rN=O._heif_image_get_bits_per_pixel_range=e0.Eb,eN=O._heif_image_has_channel=e0.Fb,AN=O._heif_image_add_plane=e0.Gb,fN=O._heif_image_get_plane_readonly=e0.Hb,kN=O._heif_image_get_plane=e0.Ib,nN=O._heif_image_set_premultiplied_alpha=e0.Jb,tN=O._heif_image_is_premultiplied_alpha=e0.Kb,oN=O._heif_image_extend_padding_to_size=e0.Lb,lN=O._heif_image_scale_image=e0.Mb,uN=O._heif_image_set_raw_color_profile=e0.Nb,sN=O._heif_image_set_nclx_color_profile=e0.Ob,hN=O._heif_image_handle_get_number_of_metadata_blocks=e0.Pb,wN=O._heif_image_handle_get_list_of_metadata_block_IDs=e0.Qb,_N=O._heif_image_handle_get_metadata_type=e0.Rb,vN=O._heif_image_handle_get_metadata_content_type=e0.Sb,mN=O._heif_image_handle_get_metadata_item_uri_type=e0.Tb,BN=O._heif_image_handle_get_metadata_size=e0.Ub,ZN=O._heif_image_handle_get_metadata=e0.Vb,pN=O._heif_image_handle_get_color_profile_type=e0.Wb,WN=O._heif_image_handle_get_raw_color_profile_size=e0.Xb,XN=O._heif_image_handle_get_nclx_color_profile=e0.Yb,GN=O._heif_image_handle_get_raw_color_profile=e0.Zb,CN=O._heif_image_get_color_profile_type=e0._b,VN=O._heif_image_get_raw_color_profile_size=e0.$b,IN=O._heif_image_get_raw_color_profile=e0.ac,QN=O._heif_image_get_nclx_color_profile=e0.bc,yN=O._heif_nclx_color_profile_alloc=e0.cc,FN=O._heif_nclx_color_profile_free=e0.dc,EN=O._heif_image_handle_has_camera_intrinsic_matrix=e0.ec,YN=O._heif_image_handle_get_camera_intrinsic_matrix=e0.fc,JN=O._heif_image_handle_has_camera_extrinsic_matrix=e0.gc,gN=O._heif_image_handle_get_camera_extrinsic_matrix=e0.hc,NN=O._heif_camera_extrinsic_matrix_release=e0.ic,RN=O._heif_camera_extrinsic_matrix_get_rotation_matrix=e0.jc,DN=O._heif_register_decoder=e0.kc,UN=O._heif_register_decoder_plugin=e0.lc,MN=O._heif_register_encoder_plugin=e0.mc,xN=O._heif_context_write_to_file=e0.nc,zN=O._heif_context_write=e0.oc,HN=O._heif_context_add_compatible_brand=e0.pc,TN=O._heif_context_get_encoder_descriptors=e0.qc,aN=O._heif_get_encoder_descriptors=e0.rc,SN=O._heif_encoder_descriptor_get_name=e0.sc,ON=O._heif_encoder_descriptor_get_id_name=e0.tc,jN=O._heif_get_decoder_descriptors=e0.uc,PN=O._heif_decoder_descriptor_get_name=e0.vc,LN=O._heif_decoder_descriptor_get_id_name=e0.wc,KN=O._heif_encoder_descriptor_get_compression_format=e0.xc,qN=O._heif_encoder_descriptor_supports_lossy_compression=e0.yc,$N=O._heif_encoder_descriptor_supports_lossless_compression=e0.zc,bN=O._heif_encoder_descriptor_supportes_lossy_compression=e0.Ac,dN=O._heif_encoder_descriptor_supportes_lossless_compression=e0.Bc,cN=O._heif_encoder_get_name=e0.Cc,iR=O._heif_context_get_encoder=e0.Dc,rR=O._heif_have_decoder_for_format=e0.Ec,eR=O._heif_have_encoder_for_format=e0.Fc,AR=O._heif_context_get_encoder_for_format=e0.Gc,fR=O._heif_encoder_release=e0.Hc,kR=O._heif_encoder_set_lossy_quality=e0.Ic,nR=O._heif_encoder_set_lossless=e0.Jc,tR=O._heif_encoder_set_logging_level=e0.Kc,oR=O._heif_encoder_list_parameters=e0.Lc,lR=O._heif_encoder_parameter_get_name=e0.Mc,uR=O._heif_encoder_parameter_get_type=e0.Nc,sR=O._heif_encoder_set_parameter_integer=e0.Oc,hR=O._heif_encoder_parameter_get_valid_integer_values=e0.Pc,wR=O._heif_encoder_get_parameter_integer=e0.Qc,_R=O._heif_encoder_parameter_get_valid_integer_range=e0.Rc,vR=O._heif_encoder_parameter_get_valid_string_values=e0.Sc,mR=O._heif_encoder_parameter_integer_valid_range=e0.Tc,BR=O._heif_encoder_set_parameter_boolean=e0.Uc,ZR=O._heif_encoder_get_parameter_boolean=e0.Vc,pR=O._heif_encoder_set_parameter_string=e0.Wc,WR=O._heif_encoder_get_parameter_string=e0.Xc,XR=O._heif_encoder_parameter_string_valid_values=e0.Yc,GR=O._heif_encoder_parameter_integer_valid_values=e0.Zc,CR=O._heif_encoder_set_parameter=e0._c,VR=O._heif_encoder_get_parameter=e0.$c,IR=O._heif_encoder_has_default=e0.ad,QR=O._heif_encoding_options_alloc=e0.bd,yR=O._heif_encoding_options_free=e0.cd,FR=O._heif_context_encode_image=e0.dd,ER=O._heif_context_encode_grid=e0.ed,YR=O._heif_context_assign_thumbnail=e0.fd,JR=O._heif_context_encode_thumbnail=e0.gd,gR=O._heif_context_set_primary_image=e0.hd,NR=O._heif_context_add_exif_metadata=e0.id,RR=O._heif_context_add_XMP_metadata=e0.jd,DR=O._heif_context_add_XMP_metadata2=e0.kd,UR=O._heif_context_add_generic_metadata=e0.ld,MR=O._heif_context_add_generic_uri_metadata=e0.md,xR=O._heif_context_set_maximum_image_size_limit=e0.nd,zR=O._heif_context_set_max_decoding_threads=e0.od,HR=O._heif_image_handle_get_number_of_region_items=e0.pd,TR=O._heif_image_handle_get_list_of_region_item_ids=e0.qd,aR=O._heif_context_get_region_item=e0.rd,SR=O._heif_region_item_get_id=e0.sd,OR=O._heif_region_item_release=e0.td,jR=O._heif_region_item_get_reference_size=e0.ud,PR=O._heif_region_item_get_number_of_regions=e0.vd,LR=O._heif_region_item_get_list_of_regions=e0.wd,KR=O._heif_image_handle_add_region_item=e0.xd,qR=O._heif_region_item_add_region_point=e0.yd,$R=O._heif_region_item_add_region_rectangle=e0.zd,bR=O._heif_region_item_add_region_ellipse=e0.Ad,dR=O._heif_region_item_add_region_polygon=e0.Bd,cR=O._heif_region_item_add_region_polyline=e0.Cd,iD=O._heif_region_item_add_region_referenced_mask=e0.Dd,rD=O._heif_region_item_add_region_inline_mask_data=e0.Ed,eD=O._heif_region_item_add_region_inline_mask=e0.Fd,AD=O._heif_region_release=e0.Gd,fD=O._heif_region_release_many=e0.Hd,kD=O._heif_region_get_type=e0.Id,nD=O._heif_region_get_point=e0.Jd,tD=O._heif_region_get_point_transformed=e0.Kd,oD=O._heif_region_get_rectangle=e0.Ld,lD=O._heif_region_get_rectangle_transformed=e0.Md,uD=O._heif_region_get_ellipse=e0.Nd,sD=O._heif_region_get_ellipse_transformed=e0.Od,hD=O._heif_region_get_polygon_num_points=e0.Pd,wD=O._heif_region_get_polyline_num_points=e0.Qd,_D=O._heif_region_get_polygon_points=e0.Rd,vD=O._heif_region_get_polyline_points=e0.Sd,mD=O._heif_region_get_polygon_points_transformed=e0.Td,BD=O._heif_region_get_polyline_points_transformed=e0.Ud,ZD=O._heif_region_get_referenced_mask_ID=e0.Vd,pD=O._heif_region_get_inline_mask_data_len=e0.Wd,WD=O._heif_region_get_inline_mask_data=e0.Xd,XD=O._heif_region_get_mask_image=e0.Yd,GD=O._heif_item_get_properties_of_type=e0.Zd,CD=O._heif_item_get_transformation_properties=e0._d,VD=O._heif_item_get_property_type=e0.$d,ID=O._heif_item_get_property_user_description=e0.ae,QD=O._heif_item_add_property_user_description=e0.be,yD=O._heif_item_get_property_transform_mirror=e0.ce,FD=O._heif_item_get_property_transform_rotation_ccw=e0.de,ED=O._heif_item_get_property_transform_crop_borders=e0.ee,YD=O._heif_property_user_description_release=e0.fe,JD=O._heif_item_add_raw_property=e0.ge,gD=O._heif_item_get_property_raw_size=e0.he,ND=O._heif_item_get_property_raw_data=e0.ie,RD=O._heif_context_get_number_of_items=e0.je,DD=O._heif_context_get_list_of_item_IDs=e0.ke,UD=O._heif_release_item_data=e0.le,MD=O._heif_context_get_item_references=e0.me,xD=O._heif_release_item_references=e0.ne,zD=O._heif_context_add_item=e0.oe,HD=O._heif_context_add_mime_item=e0.pe,TD=O._heif_context_add_precompressed_mime_item=e0.qe,aD=O._heif_context_add_uri_item=e0.re,SD=O._heif_context_add_item_reference=e0.se,OD=O._heif_context_add_item_references=e0.te,jD=O._heif_item_get_property_camera_intrinsic_matrix=e0.ue,PD=O._heif_property_camera_intrinsic_matrix_release=e0.ve,LD=O._heif_property_camera_intrinsic_matrix_get_focal_length=e0.we,KD=O._heif_property_camera_intrinsic_matrix_get_principal_point=e0.xe,qD=O._heif_property_camera_intrinsic_matrix_get_skew=e0.ye,$D=O._heif_property_camera_intrinsic_matrix_alloc=e0.ze,bD=O._heif_property_camera_intrinsic_matrix_set_simple=e0.Ae,dD=O._heif_property_camera_intrinsic_matrix_set_full=e0.Be,cD=O._heif_item_add_property_camera_intrinsic_matrix=e0.Ce,iU=O._heif_item_get_property_camera_extrinsic_matrix=e0.De,rU=O._heif_property_camera_extrinsic_matrix_release=e0.Ee,eU=O._heif_property_camera_extrinsic_matrix_get_rotation_matrix=e0.Fe,AU=O._heif_property_camera_extrinsic_matrix_get_position_vector=e0.Ge,fU=O._heif_property_camera_extrinsic_matrix_get_world_coordinate_system_id=e0.He,kU=O._de265_get_version=e0.Ie,nU=O._de265_init=e0.Je,tU=O._de265_free=e0.Ke,oU=O._de265_new_decoder=e0.Le,lU=O._de265_set_parameter_bool=e0.Me,uU=O._de265_free_decoder=e0.Ne,sU=O._de265_push_NAL=e0.Oe,hU=O._de265_flush_data=e0.Pe,wU=O._de265_decode=e0.Qe,_U=O._de265_get_next_picture=e0.Re,vU=O._de265_get_chroma_format=e0.Se,mU=O._de265_get_image_width=e0.Te,BU=O._de265_get_image_height=e0.Ue,ZU=O._de265_get_bits_per_pixel=e0.Ve,pU=O._de265_get_image_plane=e0.We,WU=O._de265_get_image_colour_primaries=e0.Xe,XU=O._de265_get_image_transfer_characteristics=e0.Ye,GU=O._de265_get_image_matrix_coefficients=e0.Ze,CU=O._de265_get_image_full_range_flag=e0._e,VU=O._de265_release_next_picture=e0.$e,ns=e0.af,ts=e0.bf,IU=O.dynCall_ji=e0.cf,QU=O.dynCall_iij=e0.df,yU=O.dynCall_jiji=e0.ef,FU=O.dynCall_viijii=e0.ff,EU=O.dynCall_iiiiij=e0.gf,YU=O.dynCall_iiiiijj=e0.hf,JU=O.dynCall_iiiiiijj=e0.jf,gU=O._heif_error_ok=74208,NU=O._heif_error_success=73640,RU=O._heif_error_invalid_parameter_value=74232,DU=O._heif_error_unsupported_parameter=74220,sr;Ki=function F(){sr||K5(),sr||(Ki=F)};function K5(){if($8>0||(bo(),$8>0))return;function F(){var N;sr||(sr=!0,O.calledRun=!0,!p5&&(co(),K8(O),(N=O.onRuntimeInitialized)==null||N.call(O),il()))}O.setStatus?(O.setStatus("Running..."),setTimeout(function(){setTimeout(function(){O.setStatus("")},1),F()},1)):F()}if(O.preInit)for(typeof O.preInit=="function"&&(O.preInit=[O.preInit]);O.preInit.length>0;)O.preInit.pop()();K5();function q5(F){for(var N=new ArrayBuffer(F.length),M=new Uint8Array(N),T=0,$=F.length;T<$;T++)M[T]=F.charCodeAt(T);return N}var g8=function(F){this.handle=F,this.img=null};g8.prototype.free=function(){this.handle&&(O.heif_image_handle_release(this.handle),this.handle=null)},g8.prototype._ensureImage=function(){if(!this.img){var F=O.heif_js_decode_image(this.handle,O.heif_colorspace.heif_colorspace_YCbCr,O.heif_chroma.heif_chroma_420);if(!F||F.code){console.log("Decoding image failed",this.handle,F);return}this.data=new Uint8Array(q5(F.data)),delete F.data,this.img=F,F.alpha!==void 0&&(this.alpha=new Uint8Array(q5(F.alpha)),delete F.alpha)}},g8.prototype.get_width=function(){return O.heif_image_handle_get_width(this.handle)},g8.prototype.get_height=function(){return O.heif_image_handle_get_height(this.handle)},g8.prototype.is_primary=function(){return!!heif_image_handle_is_primary_image(this.handle)},g8.prototype.display=function(F,N){var M=this.get_width(),T=this.get_height();setTimeout(function(){if(!this.img){var $=O.heif_js_decode_image2(this.handle,O.heif_colorspace.heif_colorspace_RGB,O.heif_chroma.heif_chroma_interleaved_RGBA);if(!$||$.code){console.log("Decoding image failed",this.handle,$),N(null);return}for(let K of $.channels)if(K.id==O.heif_channel.heif_channel_interleaved)if(K.stride==K.width*4)F.data.set(K.data);else for(let o0=0;o0{Lo();var uJ=Po(),sJ=y1=>w5(_5,null,function*(){let a1=new uJ.HeifDecoder().decode(y1);if(!a1.length)throw new Error("HEIF image not found");let F8=a1[0],O=F8.get_width(),K8=F8.get_height(),E8=new ImageData(O,K8);for(let l4=0;l4{F8.display(E8,q8=>{if(!q8)return O4(new Error("HEIF processing error"));l4(q8)})})});onmessage=y1=>w5(_5,null,function*(){let T1=y1.data.id;try{let a1=yield sJ(y1.data.buffer);postMessage({id:T1,imageData:a1,error:""})}catch(a1){postMessage({id:T1,imageData:null,error:a1&&a1.toString?a1.toString():a1})}})});hJ();})();\n',Zs=new Blob([xs],{type:"application/javascript"}),Ef=new Worker(URL.createObjectURL(Zs)),Is=s=>et(void 0,null,function*(){return new Promise((i,e)=>{let r=(Math.random()*new Date().getTime()).toString(),t={id:r,buffer:s};Ef.postMessage(t),Ef.addEventListener("message",n=>{if(n.data.id===r)return n.data.error?e(n.data.error):i(n.data.imageData)})})}),Es=s=>et(void 0,null,function*(){let i=yield Is(s),e=document.createElement("canvas");return e.width=i.width,e.height=i.height,e.getContext("2d").putImageData(i,0,0),e}),Ws=s=>et(void 0,[s],function*({blob:i,type:e,quality:r}){let t=yield i.arrayBuffer(),n=yield Es(t);return yield new Promise((f,o)=>n.toBlob(a=>{a!=null?f(a):o("Can't convert canvas to blob.")},e,r))})});var Ml={};rf(Ml,{default:()=>kn});module.exports=Ka(Ml);var k0=require("obsidian");var Dr=class{constructor(i){this.app=i;this.supportedMimeTypes=new Map([["image/jpeg",!0],["image/png",!0],["image/webp",!0],["image/heic",!0],["image/heif",!0],["image/avif",!0],["image/tiff",!0],["image/bmp",!0],["image/svg+xml",!0],["image/gif",!0]]);this.supportedExtensions=new Set(["jpg","jpeg","png","webp","heic","heif","avif","tif","tiff","bmp","svg","gif"]);this.extensionToMime=new Map([["jpg",["image/jpeg"]],["jpeg",["image/jpeg"]],["png",["image/png"]],["webp",["image/webp"]],["heic",["image/heic","image/heif"]],["heif",["image/heic","image/heif"]],["avif",["image/avif"]],["tif",["image/tiff"]],["tiff",["image/tiff"]],["bmp",["image/bmp"]],["svg",["image/svg+xml"]],["gif",["image/gif"]]])}isSupported(i,e){var r;if(i&&this.supportedMimeTypes.has(i))return!0;if(e){let t=(r=e.split(".").pop())==null?void 0:r.toLowerCase();if(t&&this.supportedExtensions.has(t))return(t==="heic"||t==="heif")&&(!i||!this.supportedMimeTypes.has(i)),!0}return!1}getMimeTypeFromCache(i){var r,t;let e=this.app.metadataCache.getFileCache(i);return((r=e==null?void 0:e.frontmatter)==null?void 0:r.mime)||((t=e==null?void 0:e.frontmatter)==null?void 0:t.type)}getExtensionsFromMimeType(i){let e=[];return this.extensionToMime.forEach((r,t)=>{r.includes(i)&&e.push(t)}),e.length>0?e:void 0}async getMimeTypeFromFile(i){let e=new FileReader,r=new Promise((t,n)=>{e.onloadend=()=>{e.result instanceof ArrayBuffer?t(e.result):n(new Error("Failed to read file as ArrayBuffer."))},e.onerror=()=>{n(new Error("Error occurred while reading the file."))},e.readAsArrayBuffer(i.slice(0,12))});try{let t=await r,n=new Uint8Array(t).subarray(0,12),f="";for(let o=0;o>24&255,t>>16&255,t>>8&255,t&255).trim()}};var V0=require("obsidian"),Be=_2(require("path")),Sr=class{constructor(i,e,r,t){this.app=i;this.settings=e;this.supportedImageFormats=r;this.variableProcessor=t}async determineDestination(i,e,r,t,n){let f=await this.getDestinationDirectory(n,i,e),o,a=!1;return t&&this.should_skip_rename(i.name,t)?(o=i.name.substring(0,i.name.lastIndexOf(".")),a=!0):o=await this.generateNewFilename(t,i,e),a||(o=await this.handleNameConflicts(f,o,(t==null?void 0:t.conflictResolution)||"reuse")),o=this.addCorrectExtension(o,i,r),{destinationPath:f,newFilename:o}}async getDestinationDirectory(i,e,r){var n;let t="";switch(i==null?void 0:i.type){case"DEFAULT":t=this.getDefaultAttachmentFolderPath(r);break;case"ROOT":t=this.app.vault.getRoot().path;break;case"CURRENT":t=((n=r.parent)==null?void 0:n.path)||"";break;case"SUBFOLDER":{let f=this.settings.subfolderTemplate?await this.processSubfolderVariables(this.settings.subfolderTemplate,e,r):r.basename;t=r.parent?(0,V0.normalizePath)(r.parent.path+"/"+f):f;break}case"CUSTOM":i.customTemplate?t=await this.processSubfolderVariables(i.customTemplate,e,r):(new V0.Notice("Custom folder template is not defined."),t=this.getDefaultAttachmentFolderPath(r));break;default:t=this.getDefaultAttachmentFolderPath(r)}return t}combinePath(i,e){return i==="/"?(0,V0.normalizePath)("/"+e):(0,V0.normalizePath)(i+"/"+e)}async ensureFolderExists(i){let e=(0,V0.normalizePath)(i);if(!await this.app.vault.adapter.exists(e)){let r=e.split("/").filter(Boolean),t="";for(let n of r)if(t+=(t?"/":"")+n,await this.app.vault.adapter.exists(t)){let f=await this.app.vault.getAbstractFileByPath(t);if(f&&f.name!==n){let o=t.substring(0,t.lastIndexOf("/"))+"/"+f.name;await this.app.vault.adapter.exists(o)?t=o:new V0.Notice(`Warning: Inconsistent folder casing detected. Using original path: ${t}`)}}else{let o=this.app.vault.getAllLoadedFiles().find(a=>a.path.toLowerCase()===t.toLowerCase()&&a instanceof V0.TFolder);o?t=o.path:await this.app.vault.createFolder(t)}}}getDefaultAttachmentFolderPath(i){var r;let e=this.app.vault.getConfig("attachmentFolderPath");return e.startsWith("./")?(r=i.parent)!=null&&r.path?(0,V0.normalizePath)(i.parent.path+"/"+e.substring(2)):e.substring(2):(0,V0.normalizePath)(e)}async handleNameConflicts(i,e,r="reuse"){let t=(0,V0.normalizePath)(i),n=e.lastIndexOf("."),f=n>-1?e.substring(0,n):e,o=n>-1?e.substring(n):"",a=e;if(r==="reuse")return a;if(await this.app.vault.adapter.exists(`${t}/${a}`)){let A=1;for(;await this.app.vault.adapter.exists(`${t}/${f}-${A}${o}`);)A++;a=`${f}-${A}${o}`}return a}async generateNewFilename(i,e,r,t){let n=e.name;return i&&i.customTemplate?(n=await this.processSubfolderVariables(i.customTemplate,e,r),n=await this.validateAndRemoveExtension(n,e)):n=e.name.substring(0,e.name.lastIndexOf(".")),n}async validateAndRemoveExtension(i,e){let r=i.lastIndexOf(".");if(r===-1)return i;let t=i.substring(r+1).toLowerCase();if(this.supportedImageFormats.supportedExtensions.has(t)){let n=await this.supportedImageFormats.getMimeTypeFromFile(e);if(n!=="unknown"){let f=this.supportedImageFormats.getExtensionsFromMimeType(n);return f&&f.includes(t)?i.substring(0,r):(console.warn(`Mismatched extension for file: ${i}, based on mime type: ${n}. Keeping original filename.`),i)}else return console.warn(`Unknown mime type for file: ${i}. Removing potential extension.`),i.substring(0,r)}return i}addCorrectExtension(i,e,r){let t=e.name.substring(e.name.lastIndexOf(".")).toLowerCase();if(r&&this.should_skip_conversion(e.name,r))return i+t;switch(r?r.outputFormat:this.settings.outputFormat){case"WEBP":return i+".webp";case"JPEG":return i+".jpeg";case"PNG":return i+".png";case"AVIF":return i+".avif";case"ORIGINAL":case"NONE":default:return i+t}}sanitizeFilename(i){i=i.trim();let e=i.lastIndexOf("."),r=e!==-1?i.substring(e):"",n=(e!==-1?i.substring(0,e):i).replace(/[\\/:"*?<>|]/g,"_").replace(/[()[\]]/g,"_").replace(/^\s+|\s+$/g,"");return["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"].includes(n.toUpperCase())&&(n+="_"),n=n.replace(/^\.+|\.+$/g,""),n.length>250&&(n=n.substring(0,250)),n+r}should_skip_conversion(i,e){return this.matches_patterns(i,e.skipConversionPatterns)}should_skip_rename(i,e){return this.matches_patterns(i,e.skipRenamePatterns)}matches_patterns(i,e){return e.trim()?e.split(",").map(t=>t.trim()).filter(t=>t.length>0).some(t=>{try{if(t.startsWith("/")&&t.endsWith("/")){let n=t.slice(1,-1);return new RegExp(n,"i").test(i)}else if(t.startsWith("r/")&&t.endsWith("/")){let n=t.slice(2,-1);return new RegExp(n,"i").test(i)}else if(t.startsWith("regex:")){let n=t.slice(6);return new RegExp(n,"i").test(i)}else{let n=t.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${n}$`,"i").test(i)}}catch(n){return console.error(`Invalid pattern: ${t}`,n),!1}}):!1}async processSubfolderVariables(i,e,r){let t={file:e,activeFile:r},n=await this.variableProcessor.processTemplate(i,t);return n=n.replace(/\/+/g,"/"),n=n.split("/").map(f=>this.sanitizeFilename(f)).join("/"),n=n.replace(/^\/+|\/+$/g,""),(0,V0.normalizePath)(n)}getImagePath(i){var e;try{let r=i.getAttribute("src");if(!r)return null;let t=this.app.vault.getAbstractFileByPath(r);if(t instanceof V0.TFile)return t.path;if(r.startsWith("app://")){let a=r.substring(6).split("/");if(a.length>1){let A=a.slice(1).join("/");process.platform!=="win32"&&!A.startsWith("/")&&(A="/"+A);let l=A.split("?")[0],k=decodeURIComponent(l);k=k.replace(/\\/g,"/");let u=null;if(this.app.vault.adapter instanceof V0.FileSystemAdapter&&(u=this.app.vault.adapter.getBasePath(),u=u.replace(/\\/g,"/")),u&&k.startsWith(u)){let h=k.substring(u.length);return(0,V0.normalizePath)(h)}else return k}}if(r.startsWith("app://local/")){let a=decodeURIComponent(r.substring(12).split("?")[0]);if(t=this.app.vault.getAbstractFileByPath(a),t instanceof V0.TFile)return t.path}let n=this.app.workspace.getActiveFile();if(console.log("activeFile:",n),n){let a=((e=n.parent)==null?void 0:e.path)||"",A=(0,V0.normalizePath)(Be.join(a,r));if(t=this.app.vault.getAbstractFileByPath(A),t instanceof V0.TFile)return t.path}let f=this.app.vault.getRoot().path,o=(0,V0.normalizePath)(Be.join(f,r));return t=this.app.vault.getAbstractFileByPath(o),t instanceof V0.TFile?t.path:(console.warn(`Could not resolve image path for src: ${r}`),null)}catch(r){return console.error("Error getting image path:",r),null}}async safeRenameFile(i,e){let r=Be.dirname(e),t=Be.basename(e),n=(0,V0.normalizePath)(Be.join(r,`temp-${Date.now()}-${t}`));try{await this.app.fileManager.renameFile(i,n);let f=this.app.vault.getAbstractFileByPath(n);return f instanceof V0.TFile?(await this.app.fileManager.renameFile(f,e),!0):(new V0.Notice("Error: Temporary file not found after renaming."),!1)}catch(f){return console.error("Error during safe rename:",f),new V0.Notice(`Error renaming file: ${f.message}`),!1}}};var Je=require("obsidian"),lr=require("child_process");var L=require("obsidian");var Mr=class{constructor(){this.linkFormatPresets=[{name:"Default (Wikilink, Shortest)",linkFormat:"wikilink",pathFormat:"shortest",prependCurrentDir:!1,hideFolders:!1},{name:"Markdown, Relative",linkFormat:"markdown",pathFormat:"relative",prependCurrentDir:!0,hideFolders:!1}],this.selectedLinkFormatPreset="Default (Wikilink, Shortest)"}};var Tr=class{constructor(){this.resizePresets=[{name:"Default (No Resize)",resizeDimension:"none",resizeScaleMode:"auto",respectEditorMaxWidth:!0,maintainAspectRatio:!0,resizeUnits:"pixels"},{name:"Width 500px",resizeDimension:"width",width:500,resizeScaleMode:"auto",respectEditorMaxWidth:!0,maintainAspectRatio:!0,resizeUnits:"pixels"},{name:"Height 800px",resizeDimension:"height",height:800,resizeScaleMode:"auto",respectEditorMaxWidth:!0,maintainAspectRatio:!0,resizeUnits:"pixels"},{name:"50% Width",resizeDimension:"width",width:50,resizeScaleMode:"auto",respectEditorMaxWidth:!0,maintainAspectRatio:!0,resizeUnits:"percentage"},{name:"Longest Edge 1000px",resizeDimension:"longest-edge",longestEdge:1e3,resizeScaleMode:"auto",respectEditorMaxWidth:!0,maintainAspectRatio:!0,resizeUnits:"pixels"},{name:"Fit Editor",resizeDimension:"editor-max-width",resizeScaleMode:"auto",respectEditorMaxWidth:!0,maintainAspectRatio:!0,resizeUnits:"pixels"},{name:"Original Width",resizeDimension:"original-width",resizeScaleMode:"auto",respectEditorMaxWidth:!1,maintainAspectRatio:!0,resizeUnits:"pixels"},{name:"Custom (Distort)",resizeDimension:"both",customValue:"300x100",resizeScaleMode:"auto",respectEditorMaxWidth:!1,maintainAspectRatio:!1,resizeUnits:"pixels"}],this.selectedResizePreset="Default (No Resize)"}};function nf(s,i){var e=Object.keys(s);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(s);i&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(s,t).enumerable})),e.push.apply(e,r)}return e}function ne(s){for(var i=1;i=0)&&(e[t]=s[t]);return e}function rs(s,i){if(s==null)return{};var e=es(s,i),r,t;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(s);for(t=0;t=0)&&Object.prototype.propertyIsEnumerable.call(s,r)&&(e[r]=s[r])}return e}var ts="1.15.6";function le(s){if(typeof window!="undefined"&&window.navigator)return!!navigator.userAgent.match(s)}var ue=le(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),ar=le(/Edge/i),ff=le(/firefox/i),rr=le(/safari/i)&&!le(/chrome/i)&&!le(/android/i),xn=le(/iP(ad|od|hone)/i),hf=le(/chrome/i)&&le(/android/i),cf={capture:!1,passive:!1};function C0(s,i,e){s.addEventListener(i,e,!ue&&cf)}function m0(s,i,e){s.removeEventListener(i,e,!ue&&cf)}function Ur(s,i){if(i){if(i[0]===">"&&(i=i.substring(1)),s)try{if(s.matches)return s.matches(i);if(s.msMatchesSelector)return s.msMatchesSelector(i);if(s.webkitMatchesSelector)return s.webkitMatchesSelector(i)}catch(e){return!1}return!1}}function df(s){return s.host&&s!==document&&s.host.nodeType?s.host:s.parentNode}function Ji(s,i,e,r){if(s){e=e||document;do{if(i!=null&&(i[0]===">"?s.parentNode===e&&Ur(s,i):Ur(s,i))||r&&s===e)return s;if(s===e)break}while(s=df(s))}return null}var of=/\s+/g;function Zi(s,i,e){if(s&&i)if(s.classList)s.classList[e?"add":"remove"](i);else{var r=(" "+s.className+" ").replace(of," ").replace(" "+i+" "," ");s.className=(r+(e?" "+i:"")).replace(of," ")}}function A0(s,i,e){var r=s&&s.style;if(r){if(e===void 0)return document.defaultView&&document.defaultView.getComputedStyle?e=document.defaultView.getComputedStyle(s,""):s.currentStyle&&(e=s.currentStyle),i===void 0?e:e[i];!(i in r)&&i.indexOf("webkit")===-1&&(i="-webkit-"+i),r[i]=e+(typeof e=="string"?"":"px")}}function Z2(s,i){var e="";if(typeof s=="string")e=s;else do{var r=A0(s,"transform");r&&r!=="none"&&(e=r+" "+e)}while(!i&&(s=s.parentNode));var t=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return t&&new t(e)}function bf(s,i,e){if(s){var r=s.getElementsByTagName(i),t=0,n=r.length;if(e)for(;t=n:f=t<=n,!f)return r;if(r===te())break;r=Ie(r,!1)}return!1}function I2(s,i,e,r){for(var t=0,n=0,f=s.children;n2&&arguments[2]!==void 0?arguments[2]:{},t=r.evt,n=rs(r,ks);sr.pluginEvent.bind(l0)(i,e,ne({dragEl:e0,parentEl:O0,ghostEl:u0,rootEl:R0,nextEl:ze,lastDownEl:Or,cloneEl:Y0,cloneHidden:Ze,dragStarted:K2,putSortable:oi,activeSortable:l0.active,originalEvent:t,oldIndex:x2,oldDraggableIndex:nr,newIndex:Ii,newDraggableIndex:xe,hideGhostForTarget:yf,unhideGhostForTarget:Bf,cloneNowHidden:function(){Ze=!0},cloneNowShown:function(){Ze=!1},dispatchSortableEvent:function(o){ui({sortable:e,name:o,originalEvent:t})}},n))};function ui(s){ls(ne({putSortable:oi,cloneEl:Y0,targetEl:e0,rootEl:R0,oldIndex:x2,oldDraggableIndex:nr,newIndex:Ii,newDraggableIndex:xe},s))}var e0,O0,u0,R0,ze,Or,Y0,Ze,x2,Ii,nr,xe,Rr,oi,B2=!1,jr=!1,Lr=[],Ye,zi,dn,bn,Af,lf,K2,y2,fr,or=!1,Pr=!1,zr,li,gn=[],_n=!1,$r=[],Kr=typeof document!="undefined",Nr=xn,kf=ar||ue?"cssFloat":"float",us=Kr&&!hf&&!xn&&"draggable"in document.createElement("div"),wf=function(){if(Kr){if(ue)return!1;var s=document.createElement("x");return s.style.cssText="pointer-events:auto",s.style.pointerEvents==="auto"}}(),_f=function(i,e){var r=A0(i),t=parseInt(r.width)-parseInt(r.paddingLeft)-parseInt(r.paddingRight)-parseInt(r.borderLeftWidth)-parseInt(r.borderRightWidth),n=I2(i,0,e),f=I2(i,1,e),o=n&&A0(n),a=f&&A0(f),A=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+ii(n).width,l=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+ii(f).width;if(r.display==="flex")return r.flexDirection==="column"||r.flexDirection==="column-reverse"?"vertical":"horizontal";if(r.display==="grid")return r.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(n&&o.float&&o.float!=="none"){var k=o.float==="left"?"left":"right";return f&&(a.clear==="both"||a.clear===k)?"vertical":"horizontal"}return n&&(o.display==="block"||o.display==="flex"||o.display==="table"||o.display==="grid"||A>=t&&r[kf]==="none"||f&&r[kf]==="none"&&A+l>t)?"vertical":"horizontal"},hs=function(i,e,r){var t=r?i.left:i.top,n=r?i.right:i.bottom,f=r?i.width:i.height,o=r?e.left:e.top,a=r?e.right:e.bottom,A=r?e.width:e.height;return t===o||n===a||t+f/2===o+A/2},cs=function(i,e){var r;return Lr.some(function(t){var n=t[_i].options.emptyInsertThreshold;if(!(!n||Zn(t))){var f=ii(t),o=i>=f.left-n&&i<=f.right+n,a=e>=f.top-n&&e<=f.bottom+n;if(o&&a)return r=t}}),r},Cf=function(i){function e(n,f){return function(o,a,A,l){var k=o.options.group.name&&a.options.group.name&&o.options.group.name===a.options.group.name;if(n==null&&(f||k))return!0;if(n==null||n===!1)return!1;if(f&&n==="clone")return n;if(typeof n=="function")return e(n(o,a,A,l),f)(o,a,A,l);var u=(f?o:a).options.group.name;return n===!0||typeof n=="string"&&n===u||n.join&&n.indexOf(u)>-1}}var r={},t=i.group;(!t||Yr(t)!="object")&&(t={name:t}),r.name=t.name,r.checkPull=e(t.pull,!0),r.checkPut=e(t.put),r.revertClone=t.revertClone,i.group=r},yf=function(){!wf&&u0&&A0(u0,"display","none")},Bf=function(){!wf&&u0&&A0(u0,"display","")};Kr&&!hf&&document.addEventListener("click",function(s){if(jr)return s.preventDefault(),s.stopPropagation&&s.stopPropagation(),s.stopImmediatePropagation&&s.stopImmediatePropagation(),jr=!1,!1},!0);var Oe=function(i){if(e0){i=i.touches?i.touches[0]:i;var e=cs(i.clientX,i.clientY);if(e){var r={};for(var t in i)i.hasOwnProperty(t)&&(r[t]=i[t]);r.target=r.rootEl=e,r.preventDefault=void 0,r.stopPropagation=void 0,e[_i]._onDragOver(r)}}},ds=function(i){e0&&e0.parentNode[_i]._isOutsideThisEl(i.target)};function l0(s,i){if(!(s&&s.nodeType&&s.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(s));this.el=s,this.options=i=ke({},i),s[_i]=this;var e={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(s.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return _f(s,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(f,o){f.setData("Text",o.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:l0.supportPointer!==!1&&"PointerEvent"in window&&(!rr||xn),emptyInsertThreshold:5};sr.initializePlugins(this,s,e);for(var r in e)!(r in i)&&(i[r]=e[r]);Cf(i);for(var t in this)t.charAt(0)==="_"&&typeof this[t]=="function"&&(this[t]=this[t].bind(this));this.nativeDraggable=i.forceFallback?!1:us,this.nativeDraggable&&(this.options.touchStartThreshold=1),i.supportPointer?C0(s,"pointerdown",this._onTapStart):(C0(s,"mousedown",this._onTapStart),C0(s,"touchstart",this._onTapStart)),this.nativeDraggable&&(C0(s,"dragover",this),C0(s,"dragenter",this)),Lr.push(this.el),i.store&&i.store.get&&this.sort(i.store.get(this)||[]),ke(this,as())}l0.prototype={constructor:l0,_isOutsideThisEl:function(i){!this.el.contains(i)&&i!==this.el&&(y2=null)},_getDirection:function(i,e){return typeof this.options.direction=="function"?this.options.direction.call(this,i,e,e0):this.options.direction},_onTapStart:function(i){if(i.cancelable){var e=this,r=this.el,t=this.options,n=t.preventOnFilter,f=i.type,o=i.touches&&i.touches[0]||i.pointerType&&i.pointerType==="touch"&&i,a=(o||i).target,A=i.target.shadowRoot&&(i.path&&i.path[0]||i.composedPath&&i.composedPath()[0])||a,l=t.filter;if(Cs(r),!e0&&!(/mousedown|pointerdown/.test(f)&&i.button!==0||t.disabled)&&!A.isContentEditable&&!(!this.nativeDraggable&&rr&&a&&a.tagName.toUpperCase()==="SELECT")&&(a=Ji(a,t.draggable,r,!1),!(a&&a.animated)&&Or!==a)){if(x2=Di(a),nr=Di(a,t.draggable),typeof l=="function"){if(l.call(this,i,a,this)){ui({sortable:e,rootEl:A,name:"filter",targetEl:a,toEl:r,fromEl:r}),wi("filter",e,{evt:i}),n&&i.preventDefault();return}}else if(l&&(l=l.split(",").some(function(k){if(k=Ji(A,k.trim(),r,!1),k)return ui({sortable:e,rootEl:k,name:"filter",targetEl:a,fromEl:r,toEl:r}),wi("filter",e,{evt:i}),!0}),l)){n&&i.preventDefault();return}t.handle&&!Ji(A,t.handle,r,!1)||this._prepareDragStart(i,o,a)}}},_prepareDragStart:function(i,e,r){var t=this,n=t.el,f=t.options,o=n.ownerDocument,a;if(r&&!e0&&r.parentNode===n){var A=ii(r);if(R0=n,e0=r,O0=e0.parentNode,ze=e0.nextSibling,Or=r,Rr=f.group,l0.dragged=e0,Ye={target:e0,clientX:(e||i).clientX,clientY:(e||i).clientY},Af=Ye.clientX-A.left,lf=Ye.clientY-A.top,this._lastX=(e||i).clientX,this._lastY=(e||i).clientY,e0.style["will-change"]="all",a=function(){if(wi("delayEnded",t,{evt:i}),l0.eventCanceled){t._onDrop();return}t._disableDelayedDragEvents(),!ff&&t.nativeDraggable&&(e0.draggable=!0),t._triggerDragStart(i,e),ui({sortable:t,name:"choose",originalEvent:i}),Zi(e0,f.chosenClass,!0)},f.ignore.split(",").forEach(function(l){bf(e0,l.trim(),pn)}),C0(o,"dragover",Oe),C0(o,"mousemove",Oe),C0(o,"touchmove",Oe),f.supportPointer?(C0(o,"pointerup",t._onDrop),!this.nativeDraggable&&C0(o,"pointercancel",t._onDrop)):(C0(o,"mouseup",t._onDrop),C0(o,"touchend",t._onDrop),C0(o,"touchcancel",t._onDrop)),ff&&this.nativeDraggable&&(this.options.touchStartThreshold=4,e0.draggable=!0),wi("delayStart",this,{evt:i}),f.delay&&(!f.delayOnTouchOnly||e)&&(!this.nativeDraggable||!(ar||ue))){if(l0.eventCanceled){this._onDrop();return}f.supportPointer?(C0(o,"pointerup",t._disableDelayedDrag),C0(o,"pointercancel",t._disableDelayedDrag)):(C0(o,"mouseup",t._disableDelayedDrag),C0(o,"touchend",t._disableDelayedDrag),C0(o,"touchcancel",t._disableDelayedDrag)),C0(o,"mousemove",t._delayedDragTouchMoveHandler),C0(o,"touchmove",t._delayedDragTouchMoveHandler),f.supportPointer&&C0(o,"pointermove",t._delayedDragTouchMoveHandler),t._dragStartTimer=setTimeout(a,f.delay)}else a()}},_delayedDragTouchMoveHandler:function(i){var e=i.touches?i.touches[0]:i;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){e0&&pn(e0),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var i=this.el.ownerDocument;m0(i,"mouseup",this._disableDelayedDrag),m0(i,"touchend",this._disableDelayedDrag),m0(i,"touchcancel",this._disableDelayedDrag),m0(i,"pointerup",this._disableDelayedDrag),m0(i,"pointercancel",this._disableDelayedDrag),m0(i,"mousemove",this._delayedDragTouchMoveHandler),m0(i,"touchmove",this._delayedDragTouchMoveHandler),m0(i,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(i,e){e=e||i.pointerType=="touch"&&i,!this.nativeDraggable||e?this.options.supportPointer?C0(document,"pointermove",this._onTouchMove):e?C0(document,"touchmove",this._onTouchMove):C0(document,"mousemove",this._onTouchMove):(C0(e0,"dragend",this),C0(R0,"dragstart",this._onDragStart));try{document.selection?Jr(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(r){}},_dragStarted:function(i,e){if(B2=!1,R0&&e0){wi("dragStarted",this,{evt:e}),this.nativeDraggable&&C0(document,"dragover",ds);var r=this.options;!i&&Zi(e0,r.dragClass,!1),Zi(e0,r.ghostClass,!0),l0.active=this,i&&this._appendGhost(),ui({sortable:this,name:"start",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(zi){this._lastX=zi.clientX,this._lastY=zi.clientY,yf();for(var i=document.elementFromPoint(zi.clientX,zi.clientY),e=i;i&&i.shadowRoot&&(i=i.shadowRoot.elementFromPoint(zi.clientX,zi.clientY),i!==e);)e=i;if(e0.parentNode[_i]._isOutsideThisEl(i),e)do{if(e[_i]){var r=void 0;if(r=e[_i]._onDragOver({clientX:zi.clientX,clientY:zi.clientY,target:i,rootEl:e}),r&&!this.options.dragoverBubble)break}i=e}while(e=df(e));Bf()}},_onTouchMove:function(i){if(Ye){var e=this.options,r=e.fallbackTolerance,t=e.fallbackOffset,n=i.touches?i.touches[0]:i,f=u0&&Z2(u0,!0),o=u0&&f&&f.a,a=u0&&f&&f.d,A=Nr&&li&&sf(li),l=(n.clientX-Ye.clientX+t.x)/(o||1)+(A?A[0]-gn[0]:0)/(o||1),k=(n.clientY-Ye.clientY+t.y)/(a||1)+(A?A[1]-gn[1]:0)/(a||1);if(!l0.active&&!B2){if(r&&Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))=0&&(ui({rootEl:O0,name:"add",toEl:O0,fromEl:R0,originalEvent:i}),ui({sortable:this,name:"remove",toEl:O0,originalEvent:i}),ui({rootEl:O0,name:"sort",toEl:O0,fromEl:R0,originalEvent:i}),ui({sortable:this,name:"sort",toEl:O0,originalEvent:i})),oi&&oi.save()):Ii!==x2&&Ii>=0&&(ui({sortable:this,name:"update",toEl:O0,originalEvent:i}),ui({sortable:this,name:"sort",toEl:O0,originalEvent:i})),l0.active&&((Ii==null||Ii===-1)&&(Ii=x2,xe=nr),ui({sortable:this,name:"end",toEl:O0,originalEvent:i}),this.save()))),this._nulling()},_nulling:function(){wi("nulling",this),R0=e0=O0=u0=ze=Y0=Or=Ze=Ye=zi=K2=Ii=xe=x2=nr=y2=fr=oi=Rr=l0.dragged=l0.ghost=l0.clone=l0.active=null,$r.forEach(function(i){i.checked=!0}),$r.length=dn=bn=0},handleEvent:function(i){switch(i.type){case"drop":case"dragend":this._onDrop(i);break;case"dragenter":case"dragover":e0&&(this._onDragOver(i),bs(i));break;case"selectstart":i.preventDefault();break}},toArray:function(){for(var i=[],e,r=this.el.children,t=0,n=r.length,f=this.options;tt.right+n||s.clientY>r.bottom&&s.clientX>r.left:s.clientY>t.bottom+n||s.clientX>r.right&&s.clientY>r.top}function vs(s,i,e,r,t,n,f,o){var a=r?s.clientY:s.clientX,A=r?e.height:e.width,l=r?e.top:e.left,k=r?e.bottom:e.right,u=!1;if(!f){if(o&&zrl+A*n/2:ak-zr)return-fr}else if(a>l+A*(1-t)/2&&ak-A*n/2)?a>l+A/2?1:-1:0}function ws(s){return Di(e0)r.setValue(this.plugin.settings.enableContextMenu).onChange(async t=>{this.plugin.settings.enableContextMenu=t,await this.plugin.saveSettings(),t?new L.Notice("Context menu enabled. Reload Obsidian to see changes.",5e3):new L.Notice("Context menu disabled. Reload Obsidian to see changes.",5e3)})),new L.Setting(e).setName("Cursor position after drop/paste \u{1F6C8}").setTooltip("Where to place the cursor after dropping or pasting the image").addDropdown(r=>{r.addOption("front","At the front of the link").addOption("back","At the back of the link").setValue(this.plugin.settings.dropPasteCursorLocation).onChange(async t=>{this.plugin.settings.dropPasteCursorLocation=t,await this.plugin.saveSettings()})}),new L.Setting(e).setName("Never process these filenames \u{1F6C8}").setTooltip("A comma-separated list of file names or patterns that the plugin should never process. Supports glob (*) and regex (enclosed in `/` or `r/` or `regex:`). E.g., `old.png, /^_/, r/temp-.*\\.jpg$/` . Or simply skip all cat images e.g.: /cat/ or all gif images *.gif").addTextArea(r=>{r.setValue(this.plugin.settings.neverProcessFilenames).onChange(async t=>{this.plugin.settings.neverProcessFilenames=t,await this.plugin.saveSettings()}),r.inputEl.setAttr("spellcheck","false")}),new L.Setting(e).setName("Show notification for image size changes \u{1F6C8}").setTooltip("Display a notification showing how much space was saved after processing an image.").addToggle(r=>r.setValue(this.plugin.settings.showSpaceSavedNotification).onChange(async t=>{this.plugin.settings.showSpaceSavedNotification=t,await this.plugin.saveSettings()})),new L.Setting(e).setName("Show window").setDesc("Choose whether to show processing options on each image drop/paste").addDropdown(r=>{r.addOption("always","Always show").addOption("never","Never show").addOption("ask","Ask each time").setValue(this.plugin.settings.modalBehavior).onChange(async t=>{this.plugin.settings.modalBehavior=t,await this.plugin.saveSettings()})})}initializeFormContainer(){let e=this.containerEl.querySelector(".image-converter-tab-content-wrapper");this.formContainer=this.containerEl.querySelector(".image-converter-form-container"),this.formContainer||(this.formContainer=this.containerEl.createDiv("image-converter-form-container")),e&&!e.contains(this.formContainer)&&e.appendChild(this.formContainer)}renderGlobalPresetSelector(){let{containerEl:e}=this,r=e.createDiv("image-converter-global-preset-container"),t=r.createDiv("image-converter-global-preset-toggle"),n=t.createEl("i");(0,L.setIcon)(n,"chevron-down"),n.addClass("image-converter-chevron-icon");let f=t.createEl("span",{text:"Drop/paste presets",cls:"settings-section-title"});t.onClickEvent(o=>{o.stopPropagation(),this.presetUIState.globalPresetVisible=!this.presetUIState.globalPresetVisible,this.presetUIState.globalPresetVisible?((0,L.setIcon)(n,"chevron-down"),f.textContent="Drop/paste presets"):((0,L.setIcon)(n,"chevron-right"),f.textContent="Drop/paste presets"),this.display()}),new L.Setting(r).setDesc("Quickly apply a combination of presets").addDropdown(o=>{o.addOption("","None"),this.plugin.settings.globalPresets.forEach(a=>{o.addOption(a.name,a.name)}),o.setValue(this.plugin.settings.selectedGlobalPreset),o.onChange(async a=>{if(this.plugin.settings.selectedGlobalPreset=a,a){let A=this.plugin.settings.globalPresets.find(l=>l.name===a);A&&(this.plugin.settings.selectedFolderPreset=A.folderPreset,this.plugin.settings.selectedFilenamePreset=A.filenamePreset,this.plugin.settings.selectedConversionPreset=A.conversionPreset,this.plugin.settings.linkFormatSettings.selectedLinkFormatPreset=A.linkFormatPreset,this.plugin.settings.nonDestructiveResizeSettings.selectedResizePreset=A.resizePreset)}else this.plugin.settings.selectedFolderPreset=Ci.selectedFolderPreset,this.plugin.settings.selectedFilenamePreset=Ci.selectedFilenamePreset,this.plugin.settings.selectedConversionPreset=Ci.selectedConversionPreset,this.plugin.settings.linkFormatSettings.selectedLinkFormatPreset=Ci.linkFormatSettings.selectedLinkFormatPreset,this.plugin.settings.nonDestructiveResizeSettings.selectedResizePreset=Ci.nonDestructiveResizeSettings.selectedResizePreset;await this.plugin.saveSettings(),this.display()})}),new L.ButtonComponent(r).setIcon("plus").setTooltip("Save current selection as a new Global Preset").onClick(o=>{o.stopPropagation(),new Wn(this.app,this.plugin,a=>{let A={name:a,folderPreset:this.plugin.settings.selectedFolderPreset,filenamePreset:this.plugin.settings.selectedFilenamePreset,conversionPreset:this.plugin.settings.selectedConversionPreset,linkFormatPreset:this.plugin.settings.linkFormatSettings.selectedLinkFormatPreset,resizePreset:this.plugin.settings.nonDestructiveResizeSettings.selectedResizePreset};this.plugin.settings.globalPresets.push(A),this.plugin.settings.selectedGlobalPreset=a,this.plugin.saveSettings().then(()=>this.display())}).open()}),this.plugin.settings.selectedGlobalPreset&&new L.ButtonComponent(r).setIcon("trash").setClass("danger").setTooltip("Delete selected Global Preset").onClick(async o=>{o.stopPropagation(),new Ei(this.app,"Confirm Delete",`Are you sure you want to delete the global preset "${this.plugin.settings.selectedGlobalPreset}"?`,"Delete",async()=>{this.plugin.settings.globalPresets=this.plugin.settings.globalPresets.filter(a=>a.name!==this.plugin.settings.selectedGlobalPreset),this.plugin.settings.selectedGlobalPreset="",await this.plugin.saveSettings(),this.display()}).open()})}renderImageAlignmentSettingsSection(e){let r=e.createDiv("image-converter-settings-section");r.addClass("image-alignment-settings-section"),this.plugin.settings.isImageAlignmentEnabled?r.addClass("image-alignment-enabled"):r.removeClass("image-alignment-enabled");let t=r.createDiv("settings-section-header"),n=t.createEl("i");(0,L.setIcon)(n,"chevron-down"),n.addClass("settings-section-chevron-icon"),t.createEl("span",{text:"Image alignment",cls:"settings-section-title"}),new L.Setting(t).addToggle(o=>o.setValue(this.plugin.settings.isImageAlignmentEnabled).onChange(async a=>{this.plugin.settings.isImageAlignmentEnabled=a,await this.plugin.saveSettings(),a?new L.Notice("Image alignment enabled. Reload Obsidian to see changes.",5e3):new L.Notice("Image alignment disabled. Reload Obsidian to see changes.",5e3),this.display()})).settingEl.addClass("settings-section-toggle-button"),this.presetUIState.imageAlignmentSectionCollapsed&&(r.addClass("settings-section-collapsed"),(0,L.setIcon)(n,"chevron-right")),t.onClickEvent(o=>{o.stopPropagation(),this.presetUIState.imageAlignmentSectionCollapsed=!this.presetUIState.imageAlignmentSectionCollapsed,r.toggleClass("settings-section-collapsed",this.presetUIState.imageAlignmentSectionCollapsed),this.presetUIState.imageAlignmentSectionCollapsed?(0,L.setIcon)(n,"chevron-right"):(0,L.setIcon)(n,"chevron-down")}),this.plugin.settings.isImageAlignmentEnabled&&(new L.Setting(r).setName("Image alignment cache location \u{1F6C8}").setDesc("Choose where to store the cache file for image alignments. Note: App reload required.").setTooltip("If you use Obsidian Sync, it is strongly recommended to use the SAME location on all your devices to ensure consistent behavior. Default: .obsidian (syncable).").addDropdown(o=>o.addOptions({".obsidian":"Within .obsidian folder (syncable)",plugin:"Within plugin folder (not syncable)"}).setValue(this.plugin.settings.imageAlignment_cacheLocation).onChange(async a=>{var A,l;this.plugin.settings.imageAlignment_cacheLocation=a,await this.plugin.saveSettings(),(A=this.plugin.ImageAlignmentManager)==null||A.updateCacheFilePath(),(l=this.plugin.ImageAlignmentManager)==null||l.loadCache()})),new L.Setting(r).setName("Image alignment cache cleanup interval").setDesc("Interval (in minutes) to clean up redundant entries from image alignment cache. Default: 1 hour (0 to disable)").addSlider(o=>o.setLimits(0,120,5).setValue(this.plugin.settings.imageAlignment_cacheCleanupInterval/(60*1e3)).setDynamicTooltip().onChange(async a=>{var l;let A=a;this.plugin.settings.imageAlignment_cacheCleanupInterval=A*60*1e3,await this.plugin.saveSettings(),(l=this.plugin.ImageAlignmentManager)==null||l.scheduleCacheCleanup()})))}renderImageDragResizeSettingsSection(e){let r=e.createDiv("image-converter-settings-section");r.addClass("image-drag-resize-settings-section"),this.plugin.settings.isImageResizeEnbaled?r.addClass("image-drag-resize-enabled"):r.removeClass("image-drag-resize-enabled");let t=r.createDiv("settings-section-header"),n=t.createEl("i");if((0,L.setIcon)(n,"chevron-down"),n.addClass("settings-section-chevron-icon"),t.createEl("span",{text:"Drag & Scroll resize",cls:"settings-section-title"}),new L.Setting(t).addToggle(o=>o.setValue(this.plugin.settings.isImageResizeEnbaled).onChange(async a=>{this.plugin.settings.isImageResizeEnbaled=a,await this.plugin.saveSettings(),a?new L.Notice("Image resizing enabled. Reload Obsidian to see changes.",5e3):new L.Notice("Image resizing disabled. Reload Obsidian to see changes.",5e3),this.display()})).settingEl.addClass("settings-section-toggle-button"),this.presetUIState.imageDragResizeSectionCollapsed&&(r.addClass("settings-section-collapsed"),(0,L.setIcon)(n,"chevron-right")),t.onClickEvent(o=>{o.stopPropagation(),this.presetUIState.imageDragResizeSectionCollapsed=!this.presetUIState.imageDragResizeSectionCollapsed,r.toggleClass("settings-section-collapsed",this.presetUIState.imageDragResizeSectionCollapsed),this.presetUIState.imageDragResizeSectionCollapsed?(0,L.setIcon)(n,"chevron-right"):(0,L.setIcon)(n,"chevron-down")}),this.plugin.settings.isImageResizeEnbaled){if(new L.Setting(r).setName("Enable drag resize \u{1F6C8}").setDesc("Allow resizing images by dragging edges of the image.").setTooltip("This creates a new

under the image to show resizing HANDLES. But this might cause some incompatibility with certain themes and cause images to jump around.").addToggle(o=>o.setValue(this.plugin.settings.isDragResizeEnabled).onChange(async a=>{this.plugin.settings.isDragResizeEnabled=a,await this.plugin.saveSettings()})),new L.Setting(r).setName("Enable scroll-wheel resize").setDesc("Allow resizing images using the scroll wheel").addToggle(o=>o.setValue(this.plugin.settings.isScrollResizeEnabled).onChange(async a=>{this.plugin.settings.isScrollResizeEnabled=a,await this.plugin.saveSettings(),this.display()})),this.plugin.settings.isScrollResizeEnabled){let o=r.createDiv("scroll-resize-settings");new L.Setting(o).setName("Scroll-wheel modifier key").setDesc("Key that must be held while using scroll-wheel to resize").addDropdown(a=>a.addOptions({None:"None",Shift:"Shift",Control:"Control",Alt:"Alt",Meta:"Meta"}).setValue(this.plugin.settings.scrollwheelModifier).onChange(async A=>{this.plugin.settings.scrollwheelModifier=A,await this.plugin.saveSettings()})),new L.Setting(o).setName("Scroll-wheel resize sensitivity").setDesc("Adjust how sensitive the scroll-wheel resize is (0.01-1.0)").addSlider(a=>a.setLimits(.01,1,.01).setValue(this.plugin.settings.resizeSensitivity).setDynamicTooltip().onChange(async A=>{this.plugin.settings.resizeSensitivity=A,await this.plugin.saveSettings()}))}new L.Setting(r).setName("Cursor position during resize \u{1F6C8}").setTooltip("Where to place the cursor when resizing an image. Note: 'Don't move cursor' - will try to keep your exisiting cursor in place but if you DRAG-RESIZE and cursor is still over the image when you finish resizing, it will get the text selected.").addDropdown(o=>{o.addOption("front","At the front of the link").addOption("back","At the back of the link").addOption("below","1 line below the image").addOption("none","Don't move cursor").setValue(this.plugin.settings.resizeCursorLocation).onChange(async a=>{this.plugin.settings.resizeCursorLocation=a,await this.plugin.saveSettings()})}),new L.Setting(r).setName("Allow resizing in Reading mode").setDesc("Non-destructive resizing in Reading Mode is only visual, thus if it is too distractive you can disable it.").addToggle(o=>o.setValue(this.plugin.settings.isResizeInReadingModeEnabled).onChange(async a=>{this.plugin.settings.isResizeInReadingModeEnabled=a,await this.plugin.saveSettings()}))}}renderImageCaptionSettingsSection(e){let r=e.createDiv("image-converter-settings-section");r.addClass("image-caption-settings-section"),this.plugin.settings.enableImageCaptions?r.addClass("image-caption-enabled"):r.removeClass("image-caption-enabled");let t=r.createDiv("settings-section-header"),n=t.createEl("i");(0,L.setIcon)(n,"chevron-down"),n.addClass("settings-section-chevron-icon"),t.createEl("span",{text:"Captions",cls:"settings-section-title"}),new L.Setting(t).addToggle(o=>o.setValue(this.plugin.settings.enableImageCaptions).onChange(async a=>{this.plugin.settings.enableImageCaptions=a,await this.plugin.saveSettings(),a?new L.Notice("Image captions enabled. Reload Obsidian to see changes.",5e3):new L.Notice("Image captions disabled. Reload Obsidian to see changes.",5e3),this.display()})).settingEl.addClass("settings-section-toggle-button"),this.presetUIState.imageCaptionSectionCollapsed&&(r.addClass("settings-section-collapsed"),(0,L.setIcon)(n,"chevron-right")),t.onClickEvent(o=>{o.stopPropagation(),this.presetUIState.imageCaptionSectionCollapsed=!this.presetUIState.imageCaptionSectionCollapsed,r.toggleClass("settings-section-collapsed",this.presetUIState.imageCaptionSectionCollapsed),this.presetUIState.imageCaptionSectionCollapsed?(0,L.setIcon)(n,"chevron-right"):(0,L.setIcon)(n,"chevron-down")}),this.plugin.settings.enableImageCaptions&&(new L.Setting(r).setName("Text alignment within caption").addDropdown(o=>o.addOptions({left:"Left",center:"Center",right:"Right"}).setValue(this.plugin.settings.captionAlignment).onChange(async a=>{this.plugin.settings.captionAlignment=a,await this.plugin.saveSettings(),this.plugin.captionManager.applyCaptionStyles()})),new L.Setting(r).setName("Text transform").setDesc("Set text transformation").addDropdown(o=>o.addOptions({none:"None",uppercase:"UPPERCASE",lowercase:"lowercase",capitalize:"Capitalize"}).setValue(this.plugin.settings.captionTextTransform).onChange(async a=>{this.plugin.settings.captionTextTransform=a,await this.plugin.saveSettings(),this.plugin.captionManager.applyCaptionStyles()})),new L.Setting(r).setName("Font size").setDesc("Set the font size for image captions (e.g., 12px, 1.2em).").addText(o=>o.setValue(this.plugin.settings.captionFontSize).onChange(async a=>{this.plugin.settings.captionFontSize=a,await this.plugin.saveSettings(),this.plugin.captionManager.applyCaptionStyles()})),new L.Setting(r).setName("Weight").setDesc("Set font weight (e.g., normal, bold, 600)").addDropdown(o=>o.addOptions({normal:"Normal",bold:"Bold",300:"Light",400:"Regular",500:"Medium",600:"Semi-bold",700:"Bold"}).setValue(this.plugin.settings.captionFontWeight).onChange(async a=>{this.plugin.settings.captionFontWeight=a,await this.plugin.saveSettings(),this.plugin.captionManager.applyCaptionStyles()})),new L.Setting(r).setName("Color").setDesc("Choose a color for image captions e.g.: red, grey, white, black, hsl(50, 50%, 50%), rgb(50%, 75%, 100%) ").addText(o=>o.setValue(this.plugin.settings.captionColor).onChange(async a=>{this.plugin.settings.captionColor=a,await this.plugin.saveSettings(),this.plugin.captionManager.applyCaptionStyles()})),new L.Setting(r).setName("Font style").setDesc("Set the font style (e.g., italic, normal).").addDropdown(o=>o.addOptions({italic:"Italic",normal:"Normal"}).setValue(this.plugin.settings.captionFontStyle).onChange(async a=>{this.plugin.settings.captionFontStyle=a,await this.plugin.saveSettings(),this.plugin.captionManager.applyCaptionStyles()})),new L.Setting(r).setName("Background color").setDesc("Choose a background color for image captions (e.g.: transparent, #f5f5f5, rgba(255,255,255,0.8))").addText(o=>o.setValue(this.plugin.settings.captionBackgroundColor).onChange(async a=>{this.plugin.settings.captionBackgroundColor=a,await this.plugin.saveSettings(),this.plugin.captionManager.applyCaptionStyles()})),new L.Setting(r).setName("Border").setDesc("Set border style (e.g., 1px solid gray)").addText(o=>o.setValue(this.plugin.settings.captionBorder).onChange(async a=>{this.plugin.settings.captionBorder=a,await this.plugin.saveSettings(),this.plugin.captionManager.applyCaptionStyles()})),new L.Setting(r).setName("Border corner radius").setDesc("Set border radius for caption (e.g., make it slightly rounded: 4px)").addText(o=>o.setValue(this.plugin.settings.captionBorderRadius).onChange(async a=>{this.plugin.settings.captionBorderRadius=a,await this.plugin.saveSettings(),this.plugin.captionManager.applyCaptionStyles()})),new L.Setting(r).setName("Space at the top").setDesc("Set space between image and caption (e.g., 4px, 8px)").addText(o=>o.setValue(this.plugin.settings.captionMarginTop).onChange(async a=>{this.plugin.settings.captionMarginTop=a,await this.plugin.saveSettings(),this.plugin.captionManager.applyCaptionStyles()})),new L.Setting(r).setName("Padding").setDesc("Set padding around caption (e.g., 4px 8px)").addText(o=>o.setValue(this.plugin.settings.captionPadding).onChange(async a=>{this.plugin.settings.captionPadding=a,await this.plugin.saveSettings(),this.plugin.captionManager.applyCaptionStyles()})),new L.Setting(r).setName("Skip caption extensions").setDesc("Comma-separated list of image extensions to exclude from captions (e.g., png,jpg).").addText(o=>{o.setValue(this.plugin.settings.skipCaptionExtensions).onChange(async a=>{this.plugin.settings.skipCaptionExtensions=a,await this.plugin.saveSettings()}),o.inputEl.setAttr("spellcheck","false")}))}renderTabs(){let{containerEl:e}=this,r=e.querySelector(".image-converter-setting-tabs");r||(r=e.createDiv("image-converter-setting-tabs")),r.children.length===0&&(this.createTab("folder","folder","Folder"),this.createTab("filename","pencil","Filename"),this.createTab("conversion","settings","Conversion"),this.createTab("linkformat","link","Link format"),this.createTab("resize","frame","Resize")),r.querySelectorAll(".image-converter-tab").forEach(f=>f.removeClass("image-converter-tab-active"));let n=r.querySelector(`.image-converter-tab-${this.activeTab}`);n&&n.addClass("image-converter-tab-active")}createTab(e,r,t){let{containerEl:n}=this,f=n.querySelector(".image-converter-setting-tabs");f||(f=n.createDiv("image-converter-setting-tabs"));let o=f.createDiv(`image-converter-tab image-converter-tab-${e}`);(0,L.setIcon)(o,r),o.createSpan({text:t,cls:"image-converter-tab-label"}),o.onclick=()=>{this.formContainer&&(this.formContainer.removeClass("visible"),this.formContainer.empty()),this.editingPresetKey=null,this.presetUIState[e].editingPreset=null,this.presetUIState[e].newPreset=null,this.activeTab=e,this.display()}}renderPresetGroup(e,r,t,n){let{containerEl:f}=this,o=f.createDiv("image-converter-tab-content-wrapper"),a=o.createDiv("image-converter-preset-group"),A=a.createDiv("image-converter-preset-group-header");A.createEl("h3",{text:e,cls:"image-converter-preset-group-title"});let l=this.getPresetGroupDescription(t);l&&A.createEl("p",{text:l,cls:"image-converter-preset-group-description"});let k=a.createDiv("image-converter-preset-cards");new Zf(k,{animation:150,handle:".image-converter-preset-card-header",draggable:".image-converter-preset-card",ghostClass:"image-converter-sortable-ghost",onEnd:async u=>{if(u.oldIndex!==void 0&&u.newIndex!==void 0){if(t==="selectedFolderPreset"){let h=this.arrayMove(this.plugin.settings.folderPresets,u.oldIndex,u.newIndex);this.plugin.settings.folderPresets=h,await this.plugin.saveSettings(),this.display()}else if(t==="selectedFilenamePreset"){let h=this.arrayMove(this.plugin.settings.filenamePresets,u.oldIndex,u.newIndex);this.plugin.settings.filenamePresets=h,await this.plugin.saveSettings(),this.display()}else if(t==="selectedConversionPreset"){let h=this.arrayMove(this.plugin.settings.conversionPresets,u.oldIndex,u.newIndex);this.plugin.settings.conversionPresets=h,await this.plugin.saveSettings(),this.display()}else if(t==="selectedLinkFormatPreset"){let h=this.arrayMove(this.plugin.settings.linkFormatSettings.linkFormatPresets,u.oldIndex,u.newIndex);this.plugin.settings.linkFormatSettings.linkFormatPresets=h,await this.plugin.saveSettings(),this.display()}else if(t==="selectedResizePreset"){let h=this.arrayMove(this.plugin.settings.nonDestructiveResizeSettings.resizePresets,u.oldIndex,u.newIndex);this.plugin.settings.nonDestructiveResizeSettings.resizePresets=h,await this.plugin.saveSettings(),this.display()}}}});for(let u of r){let h=n.editingPreset===u,c=u.name===this.getSelectedPresetName(t);this.renderPresetCard(k,u,t,h,c,n)}this.formContainer instanceof Node&&o.appendChild(this.formContainer),n.newPreset?this.renderPresetForm(this.formContainer,n.newPreset,!0,t,n):this.addAddNewPresetCard(k,t,n)}getPresetGroupDescription(e){switch(e){case"selectedFolderPreset":return"Define where converted images will be stored. Choose from predefined locations or create custom paths using variables.";case"selectedFilenamePreset":return"Control how converted images are named. Use variables like {notename}, {timestamp}, {MD5}, {UUID} to create unique filenames.";case"selectedConversionPreset":return"Control the output format, quality, and resizing options for converted images. This allows to significantly reduce file size and keep vault size small.";case"selectedLinkFormatPreset":return"Determine how image links are inserted into notes. Choose between Wikilinks and Markdown links, and specify how the file path should be formatted. This allows to use a different link style for images than your vault's default, offering better cross-compatibility with other applications.";case"selectedResizePreset":return"Configure non-destructive resizing options for images directly within the editor. This allows to adjust the display size without altering the original file.";default:return""}}getPresetKey(e){return"type"in e?`${e.name}-${e.type}`:"linkFormat"in e?`${e.name}-${e.linkFormat}`:`${e.name}`}getTabContentWrapper(){let{containerEl:e}=this;return e.querySelector(".image-converter-tab-content-wrapper")}arrayMove(e,r,t){let n=e.slice(),[f]=n.splice(r,1);return n.splice(t,0,f),n}renderPresetCard(e,r,t,n,f,o){let a=e.createDiv({cls:`image-converter-preset-card ${this.isDefaultPreset(r,t)?"image-converter-default-preset":""} ${f?"image-converter-active-preset":""}`}),A=this.getPresetKey(r),l=this.editingPresetKey===A;if(n||l){this.renderPresetForm(this.formContainer,r,!1,t,o);return}let k=a.createDiv("image-converter-preset-card-header");if(k.createEl("h4",{text:r.name,cls:"image-converter-preset-card-title",title:r.name}),!this.isDefaultPreset(r,t)){let h=k.createDiv("image-converter-preset-card-actions");new L.ButtonComponent(h).setIcon("pencil").setTooltip("Edit").onClick(()=>{let c=t;r.hasOwnProperty("linkFormat")&&(c="selectedLinkFormatPreset"),o.editingPreset=r,this.showPresetForm(r,!1,c,o)}),new L.ButtonComponent(h).setIcon("trash").setClass("danger").setTooltip("Delete").onClick(async()=>{new Ei(this.app,"Confirm Delete",`Are you sure you want to delete the preset "${r.name}"?`,"Delete",async()=>{t==="selectedFolderPreset"?(this.plugin.settings.folderPresets=this.plugin.settings.folderPresets.filter(c=>c.name!==r.name),this.plugin.settings.selectedFolderPreset=Ci.selectedFolderPreset):t==="selectedFilenamePreset"?(this.plugin.settings.filenamePresets=this.plugin.settings.filenamePresets.filter(c=>c.name!==r.name),this.plugin.settings.selectedFilenamePreset=Ci.selectedFilenamePreset):t==="selectedConversionPreset"?(this.plugin.settings.conversionPresets=this.plugin.settings.conversionPresets.filter(c=>c.name!==r.name),this.plugin.settings.selectedConversionPreset=Ci.selectedConversionPreset):t==="selectedLinkFormatPreset"?(this.plugin.settings.linkFormatSettings.linkFormatPresets=this.plugin.settings.linkFormatSettings.linkFormatPresets.filter(c=>c.name!==r.name),this.plugin.settings.linkFormatSettings.selectedLinkFormatPreset===r.name&&(this.plugin.settings.linkFormatSettings.selectedLinkFormatPreset=Ci.linkFormatSettings.selectedLinkFormatPreset)):t==="selectedResizePreset"&&(this.plugin.settings.nonDestructiveResizeSettings.resizePresets=this.plugin.settings.nonDestructiveResizeSettings.resizePresets.filter(c=>c.name!==r.name),this.plugin.settings.nonDestructiveResizeSettings.selectedResizePreset===r.name&&(this.plugin.settings.nonDestructiveResizeSettings.selectedResizePreset=Ci.nonDestructiveResizeSettings.selectedResizePreset)),await this.plugin.saveSettings(),this.display()}).open()})}let u=a.createDiv("image-converter-preset-card-body");t==="selectedFolderPreset"?this.generateFolderPresetSummary(u,r):t==="selectedFilenamePreset"?this.generateFilenamePresetSummary(u,r):t==="selectedLinkFormatPreset"?u.createEl("p",{text:this.getLinkFormatPresetSummary(r)}):t==="selectedResizePreset"?u.appendChild(this.getResizePresetSummary(r)):u.appendChild(this.getConversionPresetSummary(r)),a.onClickEvent(async()=>{if(!f){switch(t){case"selectedFolderPreset":this.plugin.settings.selectedFolderPreset=r.name;break;case"selectedFilenamePreset":this.plugin.settings.selectedFilenamePreset=r.name;break;case"selectedConversionPreset":this.plugin.settings.selectedConversionPreset=r.name;break;case"selectedLinkFormatPreset":this.plugin.settings.linkFormatSettings.selectedLinkFormatPreset=r.name;break;case"selectedResizePreset":this.plugin.settings.nonDestructiveResizeSettings.selectedResizePreset=r.name;break}await this.plugin.saveSettings(),this.display()}})}showAvailableVariables(){new Ar(this.app,this.plugin.variableProcessor).open()}showPresetForm(e,r,t,n){this.formContainer||this.initializeFormContainer(),this.formContainer.addClass("visible"),this.editingPresetKey=r?"new":this.getPresetKey(e),this.formContainer.empty(),this.renderPresetForm(this.formContainer,e,r,t,n),this.formContainer.scrollIntoView({behavior:"smooth",block:"start"})}renderPresetForm(e,r,t,n,f){e.empty();let o=t?!1:this.isDefaultPreset(r,n),a=e.createDiv("image-converter-preset-form");new L.Setting(a).setName("Preset name").addText(l=>{l.setValue(r.name).onChange(k=>{r.name=k}),l.inputEl.setAttr("spellcheck","false"),!t&&o&&l.setDisabled(!0)}),n==="selectedFolderPreset"?this.renderFolderPresetFormFields(a,r,o,()=>this.showAvailableVariables()):n==="selectedFilenamePreset"?(this.addCustomTemplateSetting(a,r,()=>this.showAvailableVariables()),this.addSkipPatternsSetting(a,r,"skipRenamePatterns","Skip rename patterns")):n==="selectedLinkFormatPreset"?this.renderLinkFormatFormFields(a,r):n==="selectedResizePreset"?this.renderResizePresetFormFields(a,r):(this.renderConversionPresetFormFields(a,r),this.addSkipPatternsSetting(a,r,"skipConversionPatterns","Skip conversion patterns"));let A=a.createDiv("image-converter-form-buttons");this.addSaveButton(A,r,t,n,f),this.addCancelButton(A,f,t)}addCustomTemplateSetting(e,r,t){let n=e.querySelector(".image-converter-form-buttons"),f=e.createDiv("image-converter-custom-template-setting-wrapper"),o=new L.Setting(f).setName("Custom imagename").setClass("image-converter-custom-template-setting"),a=o.controlEl.createDiv("image-converter-input-button-container"),A;o.addText(h=>(A=h,h.setPlaceholder("e.g., {notename}-{timestamp}").setValue(r.customTemplate||"").onChange(c=>{r.customTemplate=c,u()}),h.inputEl.setAttr("spellcheck","false"),h)),new L.ButtonComponent(a).setIcon("help-circle").setTooltip("Show available variables").onClick(t);let l=f.createDiv("image-converter-preview-container");l.createEl("div",{text:"Preview:",cls:"image-converter-preview-label"});let k=l.createDiv("image-converter-preview-path"),u=async()=>{if(!A)return;let h=A.getValue();if(!h){k.empty();return}try{let c=this.app.workspace.getActiveFile(),d=this.app.vault.getFiles().find(v=>v.extension.match(/^(jpg|jpeg|png|gif|webp)$/i));if(!c&&!d){k.setText("No file available for preview.");return}let b=c&&c.extension.match(/^(jpg|jpeg|png|gif|webp)$/i)?c:d,g=await this.plugin.variableProcessor.processTemplate(h,{file:b,activeFile:c});k.setText(g)}catch(c){console.error("Preview generation error:",c),k.setText("Error generating preview")}};u(),new L.Setting(f).setName("If an output file already exists").setDesc("Choose how to handle filename conflicts").addDropdown(h=>{h.addOptions({reuse:"Reuse existing file in vault (if any)",increment:"Add number suffix (-1, -2, etc.)"}).setValue(r.conflictResolution||"reuse").onChange(c=>{r.conflictResolution=c})}),n?e.insertBefore(f,n):e.appendChild(f)}renderFolderPresetFormFields(e,r,t,n){let f={SUBFOLDER:"In subfolder under current note",CUSTOM:"Custom"},o={DEFAULT:"Default (Obsidian setting)",ROOT:"Root folder",CURRENT:"Same folder as current note",...f};new L.Setting(e).setName("Location").addDropdown(a=>{a.addOptions(t||!this.presetUIState.folder.newPreset?o:f).setValue(r.type||"DEFAULT").onChange(A=>{r.type=A,this.updateFolderPresetFormFields(e,r,t,n)}),t&&a.setDisabled(!0)}),this.updateFolderPresetFormFields(e,r,t,n)}updateFolderPresetFormFields(e,r,t,n){let f=e.querySelector(".image-converter-subfolder-name-setting-wrapper"),o=e.querySelector(".image-converter-custom-path-setting-wrapper"),a=e.querySelector(".image-converter-form-buttons");if(f==null||f.remove(),o==null||o.remove(),r.type==="SUBFOLDER"){let A=e.createDiv("image-converter-subfolder-name-setting-wrapper"),l=new L.Setting(A).setName("Subfolder name").setDesc("Enter a custom subfolder name or path.").setClass("image-converter-subfolder-name-setting"),k=l.controlEl.createDiv("image-converter-input-button-container"),u;l.addText(b=>{u=b,b.setPlaceholder("e.g., {YYYY}/{MM}/{imagename}").setValue(this.plugin.settings.subfolderTemplate).onChange(async g=>{this.plugin.settings.subfolderTemplate=g,d()}),b.inputEl.setAttr("spellcheck","false"),t&&b.setDisabled(!0)}),new L.ButtonComponent(k).setIcon("help-circle").setTooltip("Show available variables").onClick(n);let h=A.createDiv("image-converter-preview-container");h.createEl("div",{text:"Preview:",cls:"image-converter-preview-label"});let c=h.createDiv("image-converter-preview-path"),d=async()=>{if(!u)return;let b=u.getValue();if(!b){c.empty();return}try{let g=this.app.workspace.getActiveFile(),v=this.app.vault.getFiles().find(m=>m.extension.match(/^(jpg|jpeg|png|gif|webp)$/i));if(!g&&!v){c.setText("No file available for preview.");return}let w=g&&g.extension.match(/^(jpg|jpeg|png|gif|webp)$/i)?g:v,p=await this.plugin.variableProcessor.processTemplate(b,{file:w,activeFile:g});c.setText(p)}catch(g){console.error("Preview generation error:",g),c.setText("Error generating preview")}};d(),a?e.insertBefore(A,a):e.appendChild(A)}else if(r.type==="CUSTOM"){let A=e.createDiv("image-converter-custom-path-setting-wrapper"),l=new L.Setting(A).setName("Custom path").setDesc("Enter a custom path.").setClass("image-converter-custom-template-setting"),k=l.controlEl.createDiv("image-converter-input-button-container"),u;l.addText(b=>{u=b,b.setPlaceholder("e.g., {YYYY}/{MM}/{imagename}").setValue(r.customTemplate||"").onChange(g=>{r.customTemplate=g,d()}),b.inputEl.setAttr("spellcheck","false"),t&&b.setDisabled(!0)}),new L.ButtonComponent(k).setIcon("help-circle").setTooltip("Show available variables").onClick(n);let h=A.createDiv("image-converter-preview-container");h.createEl("div",{text:"Preview:",cls:"image-converter-preview-label"});let c=h.createDiv("image-converter-preview-path"),d=async()=>{if(!u)return;let b=u.getValue();if(!b){c.empty();return}try{let g=this.app.workspace.getActiveFile(),v=this.app.vault.getFiles().find(m=>m.extension.match(/^(jpg|jpeg|png|gif|webp)$/i));if(!g&&!v){c.setText("No file available for preview.");return}let w=g&&g.extension.match(/^(jpg|jpeg|png|gif|webp)$/i)?g:v,p=await this.plugin.variableProcessor.processTemplate(b,{file:w,activeFile:g});c.setText(p)}catch(g){console.error("Preview generation error:",g),c.setText("Error generating preview")}};d(),a?e.insertBefore(A,a):e.appendChild(A)}}renderConversionPresetFormFields(e,r){let t=new L.Setting(e).setName("Output format").addDropdown(n=>{n.addOptions({WEBP:"WEBP",JPEG:"JPEG",PNG:"PNG",ORIGINAL:"Original (Compress)",NONE:"None (No Conversion/Compression)",PNGQUANT:"pngquant (Compression for PNG only))",AVIF:"AVIF (via ffmpeg)"}).setValue(r.outputFormat).onChange(f=>{r.outputFormat=f,this.updateConversionPresetFormFields(e,r,t)})});this.updateConversionPresetFormFields(e,r,t)}updateConversionPresetFormFields(e,r,t){let n=e.querySelector(".image-converter-quality-setting"),f=e.querySelector(".image-converter-color-depth-setting"),o=e.querySelector(".image-converter-resize-mode-setting"),a=e.querySelector(".image-converter-desired-width-setting"),A=e.querySelector(".image-converter-desired-height-setting"),l=e.querySelector(".image-converter-desired-longest-edge-setting"),k=e.querySelector(".image-converter-enlarge-or-reduce-setting"),u=e.querySelector(".image-converter-revert-to-original"),h=e.querySelector(".image-converter-pngquant-executable-path"),c=e.querySelector(".image-converter-pngquant-quality"),d=e.querySelector(".image-converter-ffmpeg-executable-path"),b=e.querySelector(".image-converter-ffmpeg-crf"),g=e.querySelector(".image-converter-ffmpeg-preset");if(n==null||n.remove(),f==null||f.remove(),o==null||o.remove(),a==null||a.remove(),A==null||A.remove(),l==null||l.remove(),k==null||k.remove(),u==null||u.remove(),h==null||h.remove(),c==null||c.remove(),d==null||d.remove(),b==null||b.remove(),g==null||g.remove(),["WEBP","JPEG","ORIGINAL"].includes(r.outputFormat)){let m=new L.Setting(e).setName("Quality").setClass("image-converter-quality-setting").addSlider(C=>{C.setLimits(0,100,1).setValue(r.quality).setDynamicTooltip().onChange(async y=>{r.quality=y})});t.settingEl.insertAdjacentElement("afterend",m.settingEl)}if(r.outputFormat==="PNG"){let m=new L.Setting(e).setName("Color depth").setClass("image-converter-color-depth-setting").addSlider(y=>{y.setLimits(0,1,.1).setValue(r.colorDepth).setDynamicTooltip().onChange(async Z=>{r.colorDepth=Z})}),C=e.querySelector(".image-converter-quality-setting");C?C.insertAdjacentElement("afterend",m.settingEl):t.settingEl.insertAdjacentElement("afterend",m.settingEl)}if(r.outputFormat==="PNGQUANT"){let m=new L.Setting(e).setName("pngquant executable path \u{1F6C8}").setTooltip("Provide full-path to the binary file. It can be inside vault or anywhere in your file system.").setClass("image-converter-pngquant-executable-path").addText(y=>{y.setValue(r.pngquantExecutablePath||"").onChange(Z=>{r.pngquantExecutablePath=Z,this.plugin.saveSettings()}),y.inputEl.setAttr("spellcheck","false")});t.settingEl.insertAdjacentElement("afterend",m.settingEl);let C=new L.Setting(e).setName("pngquant quality range").setDesc("Quality setting for pngquant (e.g., 65-80). Both min-max values must be provided.").setClass("image-converter-pngquant-quality").addText(y=>{y.setValue(r.pngquantQuality||"").onChange(Z=>{r.pngquantQuality=Z,this.plugin.saveSettings()}),y.inputEl.setAttr("spellcheck","false")});m.settingEl.insertAdjacentElement("afterend",C.settingEl)}if(r.outputFormat==="AVIF"){let m=new L.Setting(e).setName("FFmpeg executable path \u{1F6C8}").setTooltip("Provide full-path to the binary file. It can be inside vault or anywhere in your file system.").setClass("image-converter-ffmpeg-executable-path").addText(Z=>{Z.setValue(r.ffmpegExecutablePath||"").onChange(_=>{r.ffmpegExecutablePath=_,this.plugin.saveSettings()}),Z.inputEl.setAttr("spellcheck","false")});t.settingEl.insertAdjacentElement("afterend",m.settingEl);let C=new L.Setting(e).setName("FFmpeg CRF").setDesc("Constant Rate Factor for AVIF (0-63, lower is better quality).").setClass("image-converter-ffmpeg-crf").addText(Z=>{var _;Z.setValue(((_=r.ffmpegCrf)==null?void 0:_.toString())||"").onChange(x=>{let B=parseInt(x,10);r.ffmpegCrf=isNaN(B)?void 0:B,this.plugin.saveSettings()}),Z.inputEl.setAttr("spellcheck","false")});m.settingEl.insertAdjacentElement("afterend",C.settingEl);let y=new L.Setting(e).setName("FFmpeg Preset").setDesc("Encoding preset (speed vs. compression)").setClass("image-converter-ffmpeg-preset").addDropdown(Z=>{Z.addOptions({ultrafast:"ultrafast",superfast:"superfast",veryfast:"veryfast",faster:"faster",fast:"fast",medium:"medium",slow:"slow",slower:"slower",veryslow:"veryslow",placebo:"placebo"}).setValue(r.ffmpegPreset||"medium").onChange(_=>{r.ffmpegPreset=_,this.plugin.saveSettings()})});C.settingEl.insertAdjacentElement("afterend",y.settingEl)}let v=e.querySelector(".image-converter-color-depth-setting")||e.querySelector(".image-converter-quality-setting");v||(v=t.settingEl);let w=new L.Setting(e).setName("Resize mode").setClass("image-converter-resize-mode-setting").addDropdown(m=>{m.addOptions({None:"None",Fit:"Fit",Fill:"Fill",LongestEdge:"Longest Edge",ShortestEdge:"Shortest Edge",Width:"Width",Height:"Height"}).setValue(r.resizeMode).onChange(C=>{r.resizeMode=C,this.updateConversionPresetFormFields(e,r,t)})});if(v&&v.insertAdjacentElement("afterend",w.settingEl),v=w.settingEl,["Fit","Fill","Width"].includes(r.resizeMode)){let m=new L.Setting(e).setName("Desired width").setClass("image-converter-desired-width-setting").addText(C=>{C.setValue(r.desiredWidth.toString()).onChange(y=>{r.desiredWidth=parseInt(y,10)}),C.inputEl.setAttr("spellcheck","false")});v.insertAdjacentElement("afterend",m.settingEl),v=m.settingEl}if(["Fit","Fill","Height"].includes(r.resizeMode)){let m=new L.Setting(e).setName("Desired height").setClass("image-converter-desired-height-setting").addText(C=>{C.setValue(r.desiredHeight.toString()).onChange(y=>{r.desiredHeight=parseInt(y,10)}),C.inputEl.setAttr("spellcheck","false")});v.insertAdjacentElement("afterend",m.settingEl),v=m.settingEl}if(["LongestEdge","ShortestEdge"].includes(r.resizeMode)){let m=e.querySelector(".image-converter-desired-longest-edge-setting, .image-converter-desired-shortest-edge-setting");m==null||m.remove();let C=new L.Setting(e).setName(r.resizeMode==="LongestEdge"?"Desired longest edge":"Desired shortest edge").setClass(r.resizeMode==="LongestEdge"?"image-converter-desired-longest-edge-setting":"image-converter-desired-shortest-edge-setting").addText(y=>{y.setValue(r.desiredLongestEdge.toString()).onChange(Z=>{r.desiredLongestEdge=parseInt(Z,10)}),y.inputEl.setAttr("spellcheck","false")});v.insertAdjacentElement("afterend",C.settingEl),v=C.settingEl}if(r.resizeMode!=="None"){let m=new L.Setting(e).setName("Scale mode").setClass("image-converter-enlarge-or-reduce-setting").addDropdown(C=>{C.addOptions({Auto:"Auto",Reduce:"Only Reduce",Enlarge:"Only Enlarge"}).setValue(r.enlargeOrReduce).onChange(y=>{r.enlargeOrReduce=y})});v.insertAdjacentElement("afterend",m.settingEl),v=m.settingEl}let p=new L.Setting(e).setName("Revert to original if larger").setClass("image-converter-revert-to-original").setDesc("If the processed image filesize is larger than the original, use the original image instead.").addToggle(m=>m.setValue(this.plugin.settings.revertToOriginalIfLarger).onChange(async C=>{this.plugin.settings.revertToOriginalIfLarger=C,await this.plugin.saveSettings()}));v.insertAdjacentElement("afterend",p.settingEl),v=p.settingEl}renderLinkFormatSettings(){let{containerEl:e}=this;e.createDiv("image-converter-tab-content-wrapper"),this.renderPresetGroup("Link format presets",this.plugin.settings.linkFormatSettings.linkFormatPresets,"selectedLinkFormatPreset",this.presetUIState.linkformat)}renderLinkFormatFormFields(e,r){new L.Setting(e).setName("Link format").setDesc("Choose between Wikilink and Markdown format").addDropdown(n=>{n.addOptions({wikilink:"Wikilink",markdown:"Markdown"}).setValue(r.linkFormat).onChange(f=>{r.linkFormat=f,this.updateExamples(e,r)})}),new L.Setting(e).setName("Path format").setDesc("Choose how paths should be formatted").addDropdown(n=>{n.addOptions({shortest:"Shortest",relative:"Relative",absolute:"Absolute"}).setValue(r.pathFormat).onChange(f=>{r.pathFormat=f,this.updateExamples(e,r)})});let t=e.createEl("details",{cls:"image-converter-format-examples-section"});t.createEl("summary",{text:"Examples"}),t.createEl("div",{cls:"image-converter-format-examples-content"}),this.updateExamples(e,r)}updateExamples(e,r){let t=e.querySelector(".image-converter-format-examples-section");if(!t)return;let n=t.querySelector(".image-converter-format-examples-content");n.empty();let f=n.createEl("table",{cls:"image-converter-format-examples-table"}),o=c=>{let d=r.linkFormat;switch(c){case"shortest":return d==="wikilink"?"![[image.jpg]]":"![](image.jpg)";case"relative":return d==="wikilink"?"![[./subfolder/image.jpg]]":"![](./subfolder/image.jpg)";case"absolute":return d==="wikilink"?"![[/subfolder/image.jpg]]":"![](/subfolder/image.jpg)";default:return""}};[["Shortest",`Uses just the file name without any path: +
    +
  • Wikilink: ![[image.jpg]]
  • +
  • Markdown: ![](image.jpg)
  • +
`,o("shortest")],["Relative",`Uses the path relative to the current note: +
    +
  • Same folder: starts with ./ (e.g., ./image.jpg)
  • +
  • Parent folder: starts with ../ (e.g., ../image.jpg)
  • +
  • Subfolder: includes folder path (e.g., ./subfolder/image.jpg)
  • +
`,o("relative")],["Absolute",`Uses the complete path from your vault root, always starting with /. + This ensures the link works from any note in your vault, regardless of its location.`,o("absolute")]].forEach(([c,d,b])=>{let g=f.createEl("tr");g.createEl("td",{cls:"image-converter-format-label",text:c}),g.createEl("td",{cls:"image-converter-format-description"}).innerHTML=d,g.createEl("td",{cls:"image-converter-format-example",text:b})});let A=n.createEl("div",{cls:"image-converter-format-scenario"}),l=A.createEl("div",{cls:"image-converter-format-paths"});l.createEl("div",{cls:"image-converter-path-label"}).setText("\u{1F4C4} Note location:"),l.createEl("div",{cls:"image-converter-path-value"}).setText("/Folder/Subfolder1/note.md"),l.createEl("div",{cls:"image-converter-path-label"}).setText("\u{1F5BC}\uFE0F Image location:"),l.createEl("div",{cls:"image-converter-path-value"}).setText("/Folder/Subfolder2/image.jpg");let k=A.createEl("div",{cls:"image-converter-format-result"});k.createEl("div",{cls:"image-converter-result-label"}).setText("\u2192 Path becomes:");let u=k.createEl("div",{cls:"image-converter-result-value"});(()=>{let c=r.linkFormat;u.empty();let d=u.createEl("table"),b=(g,v)=>{let w=d.createEl("tr");w.createEl("td",{text:g,cls:"format-label"}),w.createEl("td",{text:v,cls:"format-value"})};c==="wikilink"?(b("Shortest:","![[B\xE4ume.jpg]]"),b("Relative:","![[../Subfolder2/B\xE4ume.jpg]]"),b("Absolute:","![[/Folder/Subfolder2/B\xE4ume.jpg]]")):(b("Shortest:","![](B\xE4ume.jpg)"),b("Relative:","![](../Subfolder2/B\xE4ume.jpg)"),b("Absolute:","![](/Folder/Subfolder2/B\xE4ume.jpg)"))})()}isDefaultPreset(e,r){var n;return(n={selectedFolderPreset:["Default (Obsidian setting)","Root folder","Same folder as current note"],selectedFilenamePreset:["Keep original name","NoteName-Timestamp"],selectedConversionPreset:["None","WEBP (75, no resizing)"],selectedLinkFormatPreset:["Default (Wikilink, Shortest)","Markdown, Relative"],selectedResizePreset:["Default (No Resize)"]}[r])==null?void 0:n.includes(e.name)}addAddNewPresetCard(e,r,t){let n=e.createDiv({cls:"image-converter-preset-card image-converter-add-new-preset"});n.createEl("div",{text:"+ Add New",cls:"image-converter-add-new-preset-text"}),n.onClickEvent(()=>{r==="selectedFolderPreset"?t.newPreset={name:"",type:"SUBFOLDER"}:r==="selectedFilenamePreset"?t.newPreset={name:"",customTemplate:"",skipRenamePatterns:""}:r==="selectedLinkFormatPreset"?t.newPreset={name:"",linkFormat:"wikilink",pathFormat:"shortest"}:r==="selectedConversionPreset"?t.newPreset={name:"",outputFormat:"NONE",quality:100,colorDepth:1,resizeMode:"None",desiredWidth:800,desiredHeight:600,desiredLongestEdge:1e3,enlargeOrReduce:"Auto",allowLargerFiles:!1,skipConversionPatterns:"",ffmpegExecutablePath:"",ffmpegCrf:23,ffmpegPreset:"medium"}:r==="selectedResizePreset"&&(t.newPreset={name:"",resizeDimension:"none"}),t.newPreset!==null?(this.formContainer||this.initializeFormContainer(),this.showPresetForm(t.newPreset,!0,r,t)):console.error("Error: newPreset is null.")})}async generateFolderPresetSummary(e,r){e.empty();let t=document.createDocumentFragment(),n=o=>{t.createEl("p",{text:o})},f=async o=>{let a=t.createEl("p",{cls:"image-converter-summary-example"});a.textContent="Example: Loading...";try{let A=this.app.workspace.getActiveFile(),l=this.app.vault.getFiles().find(h=>h.extension.match(/^(jpg|jpeg|png|gif|webp)$/i));if(!A&&!l){a.textContent="Example: No file available for preview.";return}let k=A&&A.extension.match(/^(jpg|jpeg|png|gif|webp)$/i)?A:l,u=await this.plugin.variableProcessor.processTemplate(o,{file:k,activeFile:A});a.textContent=`Example: ${u}`}catch(A){console.error("Preview generation error:",A),a.textContent="Example: Error generating preview"}};switch(r.type){case"DEFAULT":n("Default (Using Obsidian's configured setting for attachments)"),f("Assets/{notename}/{imagename}");break;case"ROOT":n("Root folder of the vault (Top-level folder)."),f("{imagename}");break;case"CURRENT":n("Same folder as the note you're currently editing."),f("{notepath}/{imagename}");break;case"SUBFOLDER":n(`In subfolder: ${this.plugin.settings.subfolderTemplate}`),f(this.plugin.settings.subfolderTemplate);break;case"CUSTOM":n(`Custom location: ${r.customTemplate}`),f(r.customTemplate||"");break;default:n("Unknown location");break}e.appendChild(t)}async generateFilenamePresetSummary(e,r){e.empty();let t=document.createDocumentFragment(),n=o=>{t.createEl("p",{text:o})};(async o=>{let a=t.createEl("p",{cls:"image-converter-summary-example"});a.textContent="Example: Loading...";try{let A=this.app.workspace.getActiveFile(),l=this.app.vault.getFiles().find(h=>h.extension.match(/^(jpg|jpeg|png|gif|webp)$/i));if(!A&&!l){a.textContent="Example: No file available for preview.";return}let k=A&&A.extension.match(/^(jpg|jpeg|png|gif|webp)$/i)?A:l,u=await this.plugin.variableProcessor.processTemplate(o,{file:k,activeFile:A});a.textContent=`Example: ${u}`}catch(A){console.error("Preview generation error:",A),a.textContent="Example: Error generating preview"}})(r.customTemplate||"{imagename}"),r.skipRenamePatterns&&n(`Skip rename patterns: ${r.skipRenamePatterns}`),r.conflictResolution&&n(`If an output file already exists: ${r.conflictResolution}`),e.appendChild(t)}getLinkFormatPresetSummary(e){return`Link Type: ${e.linkFormat}, Path Type: ${e.pathFormat}`}getConversionPresetSummary(e){let r=document.createDocumentFragment(),t=n=>{r.createEl("p",{text:n})};if(t(`Format: ${e.outputFormat}`),e.outputFormat!=="NONE"){switch(t(`Quality: ${e.quality}`),e.outputFormat==="PNG"&&t(`Color Depth: ${e.colorDepth}`),e.outputFormat==="AVIF"&&(t(`FFmpeg CRF: ${e.ffmpegCrf}`),t(`FFmpeg Preset: ${e.ffmpegPreset}`)),t(`Resize: ${e.resizeMode}`),e.resizeMode){case"Fit":case"Fill":t(`(${e.desiredWidth}x${e.desiredHeight})`);break;case"Width":t(`(Width: ${e.desiredWidth})`);break;case"Height":t(`(Height: ${e.desiredHeight})`);break;case"LongestEdge":t(`(Longest Edge: ${e.desiredLongestEdge})`);break;case"ShortestEdge":t(`(Shortest Edge: ${e.desiredLongestEdge})`);break;default:break}e.resizeMode!=="None"&&t(`Enlarge/Reduce: ${e.enlargeOrReduce}`),t(`Allow Larger Files: ${e.allowLargerFiles?"Yes":"No"}`)}return e.skipConversionPatterns&&t(`Skip Patterns: ${e.skipConversionPatterns}`),r}addSkipPatternsSetting(e,r,t,n){new L.Setting(e).setName(n).setDesc("Comma-separated list of patterns to skip (glob or regex). Regex patterns must be enclosed in `/` or `r/` or `regex:` E.g. do not proecss images which include word CAT in them /CAT/").setTooltip(`Supports multiple pattern types: + +1. Glob patterns: + *.png, draft-*, test-?.jpg + * = any characters + ? = single character + +2. Regular expressions: + /pattern/ or r/pattern/ or regex:pattern + +Examples: + *.png (all PNG files) + draft-* (files starting with draft-) + /^IMG_\\d{4}\\./ (IMG_ followed by 4 digits) + r/\\.(jpe?g|png)$/ (files ending in .jpg/.jpeg/.png) + regex:^(draft|temp)- (files starting with draft- or temp-)`).addTextArea(f=>{f.setPlaceholder("e.g., *.png, draft-*, /^IMG_\\d{4}\\./)").setValue(r[t]).onChange(async o=>{r[t]=o.trim()?o:""}),f.inputEl.setAttr("spellcheck","false")})}getResizePresetSummary(e){let r=document.createDocumentFragment(),t=c=>{r.appendChild(createEl("p",{text:c}))},n=`${e.width}${e.resizeUnits==="percentage"?"%":"px"}`,f=`${e.height}${e.resizeUnits==="percentage"?"%":"px"}`,o=e.customValue,a=`${e.longestEdge}${e.resizeUnits==="percentage"?"%":"px"}`,A=`${e.shortestEdge}${e.resizeUnits==="percentage"?"%":"px"}`,l=`${e.editorMaxWidthValue}${e.resizeUnits==="percentage"?"%":"px"}`,k=e.resizeScaleMode,u=e.respectEditorMaxWidth?"Yes":"No",h=e.maintainAspectRatio?"Yes":"No";switch(e.resizeDimension){case"none":t("No resizing");break;case"width":t(`Width: ${n}`),t(`Scale Mode: ${k}`),t(`Respect Editor Max Width: ${u}`),t(`Maintain Aspect Ratio: ${h}`);break;case"height":t(`Height: ${f}`),t(`Scale Mode: ${k}`),t(`Respect Editor Max Width: ${u}`),t(`Maintain Aspect Ratio: ${h}`);break;case"both":t(`Custom: ${o}`),t(`Scale Mode: ${k}`),t(`Respect Editor Max Width: ${u}`),t(`Maintain Aspect Ratio: ${h}`);break;case"longest-edge":t(`Longest Edge: ${a}`),t(`Scale Mode: ${k}`),t(`Respect Editor Max Width: ${u}`),t(`Maintain Aspect Ratio: ${h}`);break;case"shortest-edge":t(`Shortest Edge: ${A}`),t(`Scale Mode: ${k}`),t(`Respect Editor Max Width: ${u}`),t(`Maintain Aspect Ratio: ${h}`);break;case"original-width":t("Original Width"),t(`Scale Mode: ${k}`),t(`Respect Editor Max Width: ${u}`);break;case"original-height":t("Original Height"),t(`Scale Mode: ${k}`),t(`Respect Editor Max Width: ${u}`);break;case"editor-max-width":t(`Editor Max Width: ${l}`),t(`Scale Mode: ${k}`),t(`Respect Editor Max Width: ${u}`);break}return r}renderResizePresetFormFields(e,r){new L.Setting(e).setName("Resize dimension").setDesc("Choose how to resize the image").addDropdown(t=>{t.addOptions({none:"None",width:"Width",height:"Height",both:"WidthxHeight (Custom)","longest-edge":"Longest edge","shortest-edge":"Shortest edge","original-width":"Apply original image width","original-height":"Apply original image height","editor-max-width":"Fit editor max-width"}).setValue(r.resizeDimension).onChange(n=>{r.resizeDimension=n,this.updateResizePresetFormFields(e,r)})}),this.updateResizePresetFormFields(e,r)}updateResizePresetFormFields(e,r){e.querySelectorAll(".image-converter-resize-width-setting, .image-converter-resize-height-setting, .image-converter-resize-custom-setting, .image-converter-resize-scale-mode-setting, .image-converter-resize-respect-width-setting, .image-converter-resize-units-setting, .image-converter-maintain-aspect-ratio-setting, .image-converter-resize-longest-edge-setting, .image-converter-resize-shortest-edge-setting, .image-converter-resize-editor-max-width-value-setting").forEach(A=>A.remove());let t=e.querySelector(".image-converter-form-buttons"),n=(A,l,k,u,h=!1)=>{let c=new L.Setting(e).setName(A).setClass(l).addText(d=>{d.setValue((k==null?void 0:k.toString())||"").onChange(u),d.setPlaceholder(r.resizeUnits==="percentage"?`${A} (%)`:`${A} (px)`)});return h&&c.addDropdown(d=>{d.addOptions({pixels:"px",percentage:"%"}).setValue(r.resizeUnits).onChange(b=>{r.resizeUnits=b,c.components[0].setPlaceholder(b==="percentage"?`${A} (%)`:`${A} (px)`)}),d.selectEl.addClass("image-converter-resize-units-dropdown")}),t&&e.insertBefore(c.settingEl,t),c},f,o;switch(r.resizeDimension){case"width":n("Width","image-converter-resize-width-setting",r.width,A=>{let l=parseFloat(A);r.width=isNaN(l)?void 0:l},!0).setDesc("Set new custom width");break;case"height":n("Height","image-converter-resize-height-setting",r.height,A=>{let l=parseFloat(A);r.height=isNaN(l)?void 0:l},!0).setDesc("Set new custom height");break;case"longest-edge":n("Longest edge","image-converter-resize-longest-edge-setting",r.longestEdge,A=>{let l=parseFloat(A);r.longestEdge=isNaN(l)?void 0:l},!0).setDesc("Plugin automatically reads the original image dimensions and applies the provided value to the longer of the width or height. The other dimension is then calculated automatically if 'Maintain aspect ratio' is enabled.");break;case"shortest-edge":n("Shortest edge","image-converter-resize-shortest-edge-setting",r.shortestEdge,A=>{let l=parseFloat(A);r.shortestEdge=isNaN(l)?void 0:l},!0).setDesc("Plugin automatically reads the original image dimensions and applies the provided value to the shorter of the width or height. The other dimension is then calculated automatically if 'Maintain aspect ratio' is enabled.");break;case"both":f=new L.Setting(e).setName("Custom value").setClass("image-converter-resize-custom-setting").addText(A=>{A.setValue(r.customValue||"").onChange(l=>{/^\|?\d*(?:\.\d+)?(?:x\d*(?:\.\d+)?)?%?$/.test(l)||r.resizeUnits==="percentage"&&/^\d*(?:\.\d+)?x\d*(?:\.\d+)?%$/.test(l)?r.customValue=l:new L.Notice("Invalid custom value format. Use |widthxheight or percentage format (e.g., 50x75%).")}),A.setPlaceholder(r.resizeUnits==="percentage"?"e.g. 50x75":"widthxheight")}).setDesc("Set both width and height using the format |widthxheight (e.g., 300x200) or percentage format (e.g., 50x75). This does not preserve Aspect Ratio."),t&&e.insertBefore(f.settingEl,t);break;case"editor-max-width":o=new L.Setting(e).setName("Max width value").setClass("image-converter-resize-editor-max-width-value-setting").addText(A=>{var l;A.setValue(((l=r.editorMaxWidthValue)==null?void 0:l.toString())||"").onChange(k=>{let u=parseFloat(k);r.editorMaxWidthValue=isNaN(u)?void 0:u}),A.setPlaceholder(r.resizeUnits==="percentage"?"e.g. 50%":"e.g. 200px")}).addDropdown(A=>{A.addOptions({pixels:"px",percentage:"%"}).setValue(r.resizeUnits).onChange(l=>{var k;r.resizeUnits=l,(k=o==null?void 0:o.components[0])==null||k.setPlaceholder(l==="percentage"?"e.g. 50%":"e.g. 200px")}),A.selectEl.addClass("image-converter-resize-units-dropdown")}).setDesc("Set the maximum width of the image to fit within the editor's width. You can specify a percentage or a fixed pixel value."),t&&e.insertBefore(o.settingEl,t);break}let a;if(r.resizeDimension!=="none"&&r.resizeDimension!=="both"&&(a=new L.Setting(e).setName("Maintain aspect ratio").setClass("image-converter-maintain-aspect-ratio-setting").setDesc("Preserve the image's original proportions when resizing.").addToggle(A=>{A.setValue(r.maintainAspectRatio).onChange(l=>{r.maintainAspectRatio=l})}),t&&e.insertBefore(a.settingEl,t)),r.resizeDimension==="original-width"||r.resizeDimension==="original-height"||r.resizeDimension==="editor-max-width"?a==null||a.settingEl.hide():a==null||a.settingEl.show(),r.resizeDimension!=="editor-max-width"&&(o==null||o.settingEl.hide()),r.resizeDimension!=="none"&&r.resizeDimension!=="original-width"&&r.resizeDimension!=="original-height"&&r.resizeDimension!=="editor-max-width"){let A=new L.Setting(e).setName("Scale mode").setClass("image-converter-resize-scale-mode-setting").setDesc(`Controls how images are adjusted relative to target size: +- Auto: Adjusts image to fit specified dimensions +- Reduce Only: Only shrinks images larger than target +- Enlarge Only: Only enlarges images smaller than target`).addDropdown(l=>{l.addOptions({auto:"Auto",reduce:"Reduce Only",enlarge:"Enlarge Only"}).setValue(r.resizeScaleMode).onChange(k=>{r.resizeScaleMode=k})});t&&e.insertBefore(A.settingEl,t)}if(r.resizeDimension!=="editor-max-width"&&r.resizeDimension!=="none"){let A=new L.Setting(e).setName("Respect editor max width").setClass("image-converter-resize-respect-width-setting").setDesc("When calculating dimensions, prevent the image from exceeding the editor's width.").addToggle(l=>{l.setValue(r.respectEditorMaxWidth).onChange(k=>{r.respectEditorMaxWidth=k})});t&&e.insertBefore(A.settingEl,t)}}getSelectedPresetName(e){switch(e){case"selectedFolderPreset":return this.plugin.settings.selectedFolderPreset;case"selectedFilenamePreset":return this.plugin.settings.selectedFilenamePreset;case"selectedConversionPreset":return this.plugin.settings.selectedConversionPreset;case"selectedLinkFormatPreset":return this.plugin.settings.linkFormatSettings.selectedLinkFormatPreset;case"selectedResizePreset":return this.plugin.settings.nonDestructiveResizeSettings.selectedResizePreset;default:return}}addSaveButton(e,r,t,n,f){new L.ButtonComponent(e).setButtonText(t?"Add":"Save").setCta().onClick(async()=>{if(!r.name){new L.Notice("Preset name cannot be empty.");return}if(!this.isDefaultPreset(r,n)&&(n==="selectedFolderPreset"&&this.plugin.settings.folderPresets.some(o=>o.name===r.name&&o!==r)||n==="selectedFilenamePreset"&&this.plugin.settings.filenamePresets.some(o=>o.name===r.name&&o!==r)||n==="selectedConversionPreset"&&this.plugin.settings.conversionPresets.some(o=>o.name===r.name&&o!==r)||n==="selectedLinkFormatPreset"&&this.plugin.settings.linkFormatSettings.linkFormatPresets.some(o=>o.name===r.name&&o!==r)||n==="selectedResizePreset"&&this.plugin.settings.nonDestructiveResizeSettings.resizePresets.some(o=>o.name===r.name&&o!==r))){new L.Notice("A preset with this name already exists.");return}t&&(n==="selectedFolderPreset"?this.plugin.settings.folderPresets.push(r):n==="selectedFilenamePreset"?this.plugin.settings.filenamePresets.push(r):n==="selectedConversionPreset"?this.plugin.settings.conversionPresets.push(r):n==="selectedLinkFormatPreset"?this.plugin.settings.linkFormatSettings.linkFormatPresets.push(r):n==="selectedResizePreset"&&this.plugin.settings.nonDestructiveResizeSettings.resizePresets.push(r)),await this.plugin.saveSettings(),f.editingPreset=null,f.newPreset=null,this.editingPresetKey=null,this.display()})}addCancelButton(e,r,t){new L.ButtonComponent(e).setButtonText("Cancel").onClick(()=>{r.editingPreset=null,r.newPreset=null,this.editingPresetKey=null,this.formContainer.removeClass("visible"),this.display()})}onClose(){this.formContainer&&(this.formContainer.removeClass("visible"),this.formContainer.empty()),this.editingPresetKey=null,this.presetUIState={folder:{editingPreset:null,newPreset:null},filename:{editingPreset:null,newPreset:null},conversion:{editingPreset:null,newPreset:null},linkformat:{editingPreset:null,newPreset:null},resize:{editingPreset:null,newPreset:null},globalPresetVisible:!0,imageAlignmentSectionCollapsed:!1,imageDragResizeSectionCollapsed:!1,imageCaptionSectionCollapsed:!1}}},Ei=class extends L.Modal{constructor(e,r,t,n,f){super(e);this.titleEl.setText(r),this.message=t,this.confirmText=n,this.callback=f}onOpen(){let{contentEl:e}=this;typeof this.message=="string"?e.setText(this.message):(e.empty(),e.appendChild(this.message));let r=e.createDiv("image-converter-confirm-modal-buttons");new L.ButtonComponent(r).setButtonText("Cancel").onClick(()=>this.close()),new L.ButtonComponent(r).setButtonText(this.confirmText).setCta().onClick(()=>{this.close(),this.callback()})}onClose(){let{contentEl:e}=this;e.empty()}},Wn=class extends L.Modal{constructor(e,r,t){super(e);this.presetName="";this.plugin=r,this.callback=t}onOpen(){let{contentEl:e}=this;e.createEl("h2",{text:"Save global preset"}),new L.Setting(e).setName("Preset Name").addText(t=>{t.setPlaceholder("Enter preset name").setValue(this.presetName).onChange(n=>{this.presetName=n})});let r=e.createEl("div",{cls:"image-converter-preset-summary"});this.updateSummary(r),new L.Setting(e).addButton(t=>t.setButtonText("Save").setCta().onClick(()=>{this.presetName?(this.callback(this.presetName),this.close()):new L.Notice("Please enter a preset name.")})).addButton(t=>t.setButtonText("Cancel").onClick(()=>{this.close()}))}updateSummary(e){e.empty(),e.createEl("h4",{text:"Summary"});let r=this.plugin.settings.folderPresets.find(u=>u.name===this.plugin.settings.selectedFolderPreset),t=this.plugin.settings.filenamePresets.find(u=>u.name===this.plugin.settings.selectedFilenamePreset),n=this.plugin.settings.conversionPresets.find(u=>u.name===this.plugin.settings.selectedConversionPreset),f=this.plugin.settings.linkFormatSettings.linkFormatPresets.find(u=>u.name===this.plugin.settings.linkFormatSettings.selectedLinkFormatPreset),o=this.plugin.settings.nonDestructiveResizeSettings.resizePresets.find(u=>u.name===this.plugin.settings.nonDestructiveResizeSettings.selectedResizePreset),a=document.createDocumentFragment(),A=u=>{let h=document.createElement("div");return h.classList.add("summary-section-title"),h.textContent=u,h},l=(u,h,c=!1)=>{let d=document.createElement("div");return d.classList.add("summary-item"),d.createEl("span",{text:`${u}: `,cls:"summary-label"}),d.createEl("span",{text:h!=null?h.toString():"None",cls:c?"summary-value-bold":"summary-value"}),d},k=(u,h)=>{if(h){let c=document.createElement("div");switch(c.classList.add("summary-section"),c.appendChild(A(`${u} Preset: ${h.name}`)),u){case"Folder":c.appendChild(l("Type",h.type)),h.type==="SUBFOLDER"?c.appendChild(l("Subfolder template",this.plugin.settings.subfolderTemplate)):h.type==="CUSTOM"&&c.appendChild(l("Custom template",h.customTemplate));break;case"Filename":c.appendChild(l("Template",h.customTemplate));break;case"Conversion":if(c.appendChild(l("Output format",h.outputFormat)),h.outputFormat!=="NONE"){switch(c.appendChild(l("Quality",h.quality)),h.outputFormat==="PNG"&&c.appendChild(l("Color depth",h.colorDepth)),c.appendChild(l("Resize mode",h.resizeMode)),h.resizeMode){case"Fit":case"Fill":c.appendChild(l("Dimensions",`${h.desiredWidth}x${h.desiredHeight}`));break;case"Width":c.appendChild(l("Width",h.desiredWidth));break;case"Height":c.appendChild(l("Height",h.desiredHeight));break;case"LongestEdge":case"ShortestEdge":c.appendChild(l("Edge",h.desiredLongestEdge));break}h.resizeMode!=="None"&&c.appendChild(l("Scale",h.enlargeOrReduce)),c.appendChild(l("Allow larger files",h.allowLargerFiles?"Yes":"No")),c.appendChild(l("Skip patterns",h.skipConversionPatterns))}break;case"Link format":c.appendChild(l("Link type",h.linkFormat)),c.appendChild(l("Path format",h.pathFormat));break;case"Resize":if(o){let d="";switch(o.resizeDimension){case"width":d=`Width: ${o.width}${o.resizeUnits==="percentage"?"%":"px"}`;break;case"height":d=`Height: ${o.height}${o.resizeUnits==="percentage"?"%":"px"}`;break;case"both":d=`Custom: ${o.customValue}`;break;case"longest-edge":d=`Longest edge: ${o.longestEdge}${o.resizeUnits==="percentage"?"%":"px"}`;break;case"shortest-edge":d=`Shortest edge: ${o.shortestEdge}${o.resizeUnits==="percentage"?"%":"px"}`;break;case"original-width":d="Original width";break;case"original-height":d="Original height";break;case"editor-max-width":d=`Editor max width: ${o.editorMaxWidthValue}${o.resizeUnits==="percentage"?"%":"px"}`;break;case"none":d="No resizing";break}c.appendChild(l("Dimension",d)),o.resizeDimension!=="none"&&(c.appendChild(l("Scale mode",o.resizeScaleMode)),c.appendChild(l("Respect editor max width",o.respectEditorMaxWidth?"Yes":"No")),o.resizeDimension!=="original-width"&&o.resizeDimension!=="original-height"&&o.resizeDimension!=="editor-max-width"&&c.appendChild(l("Maintain aspect ratio",o.maintainAspectRatio?"Yes":"No")))}break}a.appendChild(c)}};k("Folder",r),k("Filename",t),k("Conversion",n),k("Link format",f),k("Resize",o),e.appendChild(a)}onClose(){let{contentEl:e}=this;e.empty()}},Ar=class extends L.Modal{constructor(e,r){super(e);this.modalClass="image-converter-available-variables-modal";this.variableProcessor=r}onOpen(){this.modalEl.addClass(this.modalClass);let{contentEl:e}=this;e.createEl("h2",{text:"Available variables"});let r=this.variableProcessor.getCategorizedVariables();for(let[t,n]of Object.entries(r)){e.createEl("h4",{text:t});let o=e.createEl("table").createTBody();for(let a of n){let A=o.createEl("tr");A.createEl("td",{text:a.name}),A.createEl("td",{text:a.description}),A.createEl("td",{text:a.example})}}}onClose(){let{contentEl:e}=this;e.empty(),this.modalEl.removeClass(this.modalClass)}};var E2=_2(require("fs/promises")),Xf=_2(require("os")),Vf=_2(require("path")),rt=class{constructor(i){this.supportedImageFormats=i}async processImage(i,e,r,t,n,f,o,a,A,l,k,u){this.preset=k,this.settings=u||Ci;try{if(e==="NONE"&&n!=="None")return this.resizeImage(i,n,f,o,a,A);if(e==="NONE")return i.arrayBuffer();if(e==="ORIGINAL")return this.compressOriginalImage(i,r,n,f,o,a,A);let h=i.type,c=i instanceof File?i.name:"image";switch((!h||h==="unknown"||!this.supportedImageFormats.isSupported(h,c))&&(h=await this.supportedImageFormats.getMimeTypeFromFile(i)),h){case"image/tiff":case"image/tif":{let d=await this.handleTiff(await i.arrayBuffer());return this.convertAndCompress(d,e,r,t,n,f,o,a,A,l)}case"image/heic":case"image/heif":{let d=await this.handleHeic(await i.arrayBuffer(),e==="JPEG"?"JPEG":"PNG",e==="JPEG"?r:1);return this.convertAndCompress(d,e,r,t,n,f,o,a,A,l)}default:return this.convertAndCompress(i,e,r,t,n,f,o,a,A,l)}}catch(h){return console.error("Error processing image:",h),new Je.Notice(`Failed to process image: ${h.message}`),i.arrayBuffer()}}async handleTiff(i){try{let e=await Promise.resolve().then(()=>_2(If())).then(A=>A.default),r=new Uint8Array(i),t=e.decode(r);e.decodeImage(r,t[0]);let n=e.toRGBA8(t[0]),f=document.createElement("canvas");f.width=t[0].width,f.height=t[0].height;let o=f.getContext("2d"),a=o.createImageData(f.width,f.height);return a.data.set(n),o.putImageData(a,0,0),new Promise((A,l)=>{f.toBlob(k=>{k?A(k):l(new Error("Failed to convert canvas to Blob"))},"image/png")})}catch(e){throw console.error("Error processing TIFF image:",e),new Error("Failed to process TIFF image")}}async handleHeic(i,e,r){try{let{heicTo:t}=await Promise.resolve().then(()=>(Ff(),Wf)),n=new Blob([i],{type:"image/heic"});return await t({blob:n,type:e==="JPEG"?"image/jpeg":"image/png",quality:r})}catch(t){throw console.error("Error converting HEIC:",t),new Error(`Failed to convert HEIC image: ${t.message}`)}}async convertAndCompress(i,e,r,t,n,f,o,a,A,l){var k,u,h,c,d,b,g;switch(e){case"WEBP":return this.convertToWebP(i,r,n,f,o,a,A,l);case"JPEG":return this.convertToJPG(i,r,n,f,o,a,A,l);case"PNG":return this.convertToPNG(i,t,n,f,o,a,A,l);case"PNGQUANT":{let v=((k=this.preset)==null?void 0:k.pngquantExecutablePath)||((u=this.settings.singleImageModalSettings)==null?void 0:u.pngquantExecutablePath),w=((h=this.preset)==null?void 0:h.pngquantQuality)||this.settings.pngquantQuality;return v?this.processWithPngquant(i,v,w,n,f,o,a,A):(new Je.Notice("PNGQUANT executable path is not set. Please configure it in the plugin settings."),i.arrayBuffer())}case"AVIF":{let v=((c=this.preset)==null?void 0:c.ffmpegExecutablePath)||((d=this.settings.singleImageModalSettings)==null?void 0:d.ffmpegExecutablePath),w=((b=this.preset)==null?void 0:b.ffmpegCrf)||this.settings.ffmpegCrf,p=((g=this.preset)==null?void 0:g.ffmpegPreset)||this.settings.ffmpegPreset;return v?this.processWithFFmpeg(i,v,w,p,n,f,o,a,A):(new Je.Notice("FFmpeg executable path is not set. Please configure it in the plugin settings."),i.arrayBuffer())}default:return i.arrayBuffer()}}async processWithFFmpeg(i,e,r,t,n,f,o,a,A){let l=i;if(n!=="None"){let g=await this.resizeImage(i,n,f,o,a,A);l=new Blob([g],{type:i.type})}let k=await this.getImageDimensions(l),u=await l.arrayBuffer(),h=await this.checkForTransparency(l),c=Xf.tmpdir(),d=`obsidian_image_converter_${Date.now()}.avif`,b=Vf.join(c,d);return new Promise((g,v)=>{var y,Z,_;let w=this.buildScaleFilter(n,k,f,o,a),p;if(h){let x="format=rgba";w&&(x+=","+w),p=["-i","pipe:0","-map","0","-map","0","-filter:v:0",x,"-filter:v:1","alphaextract","-c:v","libaom-av1","-crf",r.toString(),"-preset",t,"-still-picture","1","-y","-f","avif",b]}else{let x="format=yuv420p";w&&(x+=","+w),p=["-i","pipe:0","-filter:v",x,"-c:v","libaom-av1","-crf",r.toString(),"-preset",t,"-still-picture","1","-y","-f","avif",b]}let m=null;try{Je.Platform.isWin?m=(0,lr.spawn)(e,p,{windowsHide:!0}):m=(0,lr.spawn)(e,p)}catch(x){let B=`Failed to spawn FFmpeg: ${x.message}`;console.error(B),v(new Error(B));return}if(!m){v(new Error("Failed to spawn FFmpeg process."));return}let C="";(y=m.stderr)==null||y.on("data",x=>{C+=x.toString()}),m.on("close",async x=>{if(x!==0){let B=`FFmpeg failed with code ${x}: ${C}`;console.error(B);try{await E2.unlink(b)}catch(I){}v(new Error(B));return}try{let B=await E2.readFile(b);g(B)}catch(B){console.error("Error reading temporary file:",B),v(new Error(`Failed to read the processed image from the temporary file: ${B}`))}finally{try{await E2.unlink(b)}catch(B){console.error("Error deleting temporary file:",B)}}}),m.on("error",x=>{let B=`Error with FFmpeg process: ${x.message}`;console.error(B),E2.unlink(b).catch(I=>{}),v(new Error(B))}),(Z=m.stdin)==null||Z.write(Buffer.from(u)),(_=m.stdin)==null||_.end()})}async checkForTransparency(i){return new Promise(e=>{let r=new Image;r.onload=()=>{let n=document.createElement("canvas");n.width=r.width,n.height=r.height;let f=n.getContext("2d");if(!f){e(!1);return}f.drawImage(r,0,0);let a=f.getImageData(0,0,n.width,n.height).data;for(let A=3;Ae(!1);let t=new FileReader;t.onload=n=>{var f;r.src=(f=n.target)==null?void 0:f.result},t.onerror=()=>e(!1),t.readAsDataURL(i)})}async getImageDimensions(i){return new Promise((e,r)=>{let t=new Image;t.onload=()=>{e({width:t.naturalWidth,height:t.naturalHeight})},t.onerror=()=>{r(new Error("Failed to load image to get dimensions."))},t.src=URL.createObjectURL(i)})}buildScaleFilter(i,e,r,t,n){let{width:f,height:o}=e,a=f/o,A,l;switch(i){case"None":return null;case"Fit":a>r/t?(A=r,l=Math.round(r/a)):(l=t,A=Math.round(t*a));break;case"Fill":a>r/t?(l=t,A=Math.round(t*a)):(A=r,l=Math.round(r/a));break;case"LongestEdge":f>o?(A=n,l=Math.round(n/a)):(l=n,A=Math.round(n*a));break;case"ShortestEdge":fnew Promise((k,u)=>{let h=new Image;h.onload=()=>{let{imageWidth:c,imageHeight:d}=this.calculateDesiredDimensions(h,r,t,n,f,o),b=document.createElement("canvas"),g=b.getContext("2d",{willReadFrequently:!1});if(!g){u(new Error("Failed to get canvas context"));return}b.width=c,b.height=d;let v=0,w=0,p=h.naturalWidth,m=h.naturalHeight;if(r==="Fill"){let C=Math.max(c/h.naturalWidth,d/h.naturalHeight);p=c/C,m=d/C,v=(h.naturalWidth-p)/2,w=(h.naturalHeight-m)/2}g.drawImage(h,v,w,p,m,0,0,c,d),k({canvas:b,context:g})},h.onerror=c=>{console.error("WebP conversion error:",c),u(new Error("Failed to load image"))},h.src=l});try{let l=await new Promise((b,g)=>{let v=new FileReader;v.onloadend=w=>{var p;return b((p=w.target)==null?void 0:p.result)},v.onerror=()=>g(new Error("Failed to read file")),v.readAsDataURL(i)}),{canvas:k}=await A(l),[u,h]=await Promise.all([new Promise(b=>{k.toBlob(async g=>{if(!g){b(new ArrayBuffer(0));return}b(await g.arrayBuffer())},"image/webp",e)}),new Promise(b=>{let g=k.toDataURL("image/webp",e);b(this.base64ToArrayBuffer(g))})]),c=await this.compressOriginalImage(i,e,r,t,n,f,o),d=[{type:"blob",data:u,size:u.byteLength},{type:"dataUrl",data:h,size:h.byteLength},{type:"original",data:c,size:c.byteLength}].filter(b=>b.size>0);return d.sort((b,g)=>b.size-g.size),d[0].data}catch(l){return console.error("WebP conversion error:",l),i.arrayBuffer()}}async convertToJPG(i,e,r,t,n,f,o,a){if(e===1&&r==="None")return i.arrayBuffer();let A=async l=>new Promise((k,u)=>{let h=new Image;h.onload=()=>{let{imageWidth:c,imageHeight:d}=this.calculateDesiredDimensions(h,r,t,n,f,o),b=document.createElement("canvas"),g=b.getContext("2d",{willReadFrequently:!1,alpha:!1});if(!g){u(new Error("Failed to get canvas context"));return}b.width=c,b.height=d;let v=0,w=0,p=h.naturalWidth,m=h.naturalHeight;if(r==="Fill"){let C=Math.max(c/h.naturalWidth,d/h.naturalHeight);p=c/C,m=d/C,v=(h.naturalWidth-p)/2,w=(h.naturalHeight-m)/2}g.drawImage(h,v,w,p,m,0,0,c,d),k({canvas:b,context:g})},h.onerror=c=>{console.error("JPEG conversion error:",c),u(new Error("Failed to load image"))},h.src=l});try{let l=await new Promise((b,g)=>{let v=new FileReader;v.onloadend=w=>{var p;return b((p=w.target)==null?void 0:p.result)},v.onerror=()=>g(new Error("Failed to read file")),v.readAsDataURL(i)}),{canvas:k}=await A(l),[u,h]=await Promise.all([new Promise(b=>{k.toBlob(async g=>{if(!g){b(new ArrayBuffer(0));return}b(await g.arrayBuffer())},"image/jpeg",e)}),new Promise(b=>{let g=k.toDataURL("image/jpeg",e);b(this.base64ToArrayBuffer(g))})]),c=await this.compressOriginalImage(i,e,r,t,n,f,o),d=[{type:"blob",data:u,size:u.byteLength},{type:"dataUrl",data:h,size:h.byteLength},...i.type!=="image/jpeg"?[{type:"original",data:c,size:c.byteLength}]:[]].filter(b=>b.size>0);return d.sort((b,g)=>b.size-g.size),d[0].data}catch(l){return console.error("JPEG conversion error:",l),i.arrayBuffer()}}async convertToPNG(i,e,r,t,n,f,o,a){if(e===1&&r==="None")return i.arrayBuffer();let A=async l=>new Promise((k,u)=>{let h=new Image;h.onload=()=>{let{imageWidth:c,imageHeight:d}=this.calculateDesiredDimensions(h,r,t,n,f,o),b=document.createElement("canvas"),g=b.getContext("2d",{willReadFrequently:e<1,alpha:!0});if(!g){u(new Error("Failed to get canvas context"));return}b.width=c,b.height=d;let v=0,w=0,p=h.naturalWidth,m=h.naturalHeight;if(r==="Fill"){let C=Math.max(c/h.naturalWidth,d/h.naturalHeight);p=c/C,m=d/C,v=(h.naturalWidth-p)/2,w=(h.naturalHeight-m)/2}if(g.drawImage(h,v,w,p,m,0,0,c,d),e<1){let C=g.getImageData(0,0,b.width,b.height),y=this.reduceColorDepth(C,e);g.putImageData(y,0,0)}k({canvas:b,context:g})},h.onerror=c=>{console.error("PNG conversion error:",c),u(new Error("Failed to load image"))},h.src=l});try{let l=await new Promise((b,g)=>{let v=new FileReader;v.onloadend=w=>{var p;return b((p=w.target)==null?void 0:p.result)},v.onerror=()=>g(new Error("Failed to read file")),v.readAsDataURL(i)}),{canvas:k}=await A(l),[u,h]=await Promise.all([new Promise(b=>{k.toBlob(async g=>{if(!g){b(new ArrayBuffer(0));return}b(await g.arrayBuffer())},"image/png")}),new Promise(b=>{let g=k.toDataURL("image/png");b(this.base64ToArrayBuffer(g))})]),c=[{type:"blob",data:u,size:u.byteLength},{type:"dataUrl",data:h,size:h.byteLength}];if(i.type!=="image/png"){let b=await this.compressOriginalImage(i,1,r,t,n,f,o);c.push({type:"original",data:b,size:b.byteLength})}return c.filter(b=>b.size>0).sort((b,g)=>b.size-g.size)[0].data}catch(l){return console.error("PNG conversion error:",l),i.arrayBuffer()}}async processWithPngquant(i,e,r,t,n,f,o,a){let A=i;if(t!=="None"){let k=await this.resizeImage(i,t,n,f,o,a);A=new Blob([k],{type:i.type})}let l=await A.arrayBuffer();return new Promise((k,u)=>{var g,v,w,p;let h=["--quality",r,"-"],c=null;try{Je.Platform.isWin?c=(0,lr.spawn)(e,h,{windowsHide:!0}):c=(0,lr.spawn)(e,h)}catch(m){let C=`Failed to spawn pngquant: ${m.message}`;console.error(C),u(new Error(C));return}if(!c){u(new Error("Failed to spawn pngquant process."));return}let d=[],b="";(g=c.stdout)==null||g.on("data",m=>{d.push(m)}),(v=c.stderr)==null||v.on("data",m=>{b+=m.toString()}),c.on("close",m=>{if(m!==0){let y=`pngquant failed with code ${m}: ${b}`;console.error(y),u(new Error(y));return}let C=Buffer.concat(d);k(C)}),c.on("error",m=>{let C=`Error with pngquant process: ${m.message}`;console.error(C),u(new Error(C))}),(w=c.stdin)==null||w.write(Buffer.from(l)),(p=c.stdin)==null||p.end()})}async compressOriginalImage(i,e,r,t,n,f,o){return new Promise((a,A)=>{let l=new Image,k=new FileReader;k.onload=u=>{var h;l.onload=()=>{let{imageWidth:c,imageHeight:d}=this.calculateDesiredDimensions(l,r,t,n,f,o),b=document.createElement("canvas");b.width=c,b.height=d;let g=b.getContext("2d");if(!g){A(new Error("Failed to get canvas context"));return}let v=0,w=0,p=l.naturalWidth,m=l.naturalHeight;if(r==="Fill"){let y=Math.max(c/l.naturalWidth,d/l.naturalHeight);p=c/y,m=d/y,v=(l.naturalWidth-p)/2,w=(l.naturalHeight-m)/2}g.drawImage(l,v,w,p,m,0,0,c,d);let C=i.type||"image/jpeg";b.toBlob(y=>{if(!y){A(new Error("Failed to create blob"));return}y.arrayBuffer().then(a).catch(A)},C,e)},l.onerror=c=>{console.error("Original Compression error:",c),A(new Error("Failed to load image"))},l.src=(h=u.target)==null?void 0:h.result},k.onerror=()=>A(new Error("Failed to read file")),k.readAsDataURL(i)})}async resizeImage(i,e,r,t,n,f){return new Promise((o,a)=>{let A=new Image,l=new FileReader;l.onload=k=>{var u;A.onload=()=>{let{imageWidth:h,imageHeight:c}=this.calculateDesiredDimensions(A,e,r,t,n,f),d=document.createElement("canvas");d.width=h,d.height=c;let b=d.getContext("2d");if(!b){a(new Error("Failed to get canvas context"));return}b.drawImage(A,0,0,h,c),d.toBlob(g=>{if(!g){a(new Error("Failed to create blob"));return}g.arrayBuffer().then(o).catch(a)},i.type)},A.onerror=h=>{console.error("Image resizing error:",h),a(new Error("Failed to load image for resizing"))},A.src=(u=k.target)==null?void 0:u.result},l.onerror=()=>a(new Error("Failed to read file for resizing")),l.readAsDataURL(i)})}calculateDesiredDimensions(i,e,r,t,n,f){let o=i.naturalWidth,a=i.naturalHeight,A=o/a;switch(e){case"None":break;case"Fit":A>r/t?(o=r,a=o/A):(a=t,o=a*A);break;case"Fill":A>r/t?(a=t,o=a*A):(o=r,a=o/A);break;case"LongestEdge":o>a?(o=n,a=o/A):(a=n,o=a*A);break;case"ShortestEdge":oo||i.naturalHeight>a||(o=i.naturalWidth,a=i.naturalHeight);break;case"Enlarge":i.naturalWidth 2023-12"},{name:"{time}",description:"The current time (HH-mm-ss).",example:"14-30-00"},{name:"{YYYY}",description:"The current year.",example:"2023"},{name:"{MM}",description:"The current month (01-12).",example:"12"},{name:"{DD}",description:"The current day of the month (01-31).",example:"28"},{name:"{HH}",description:"The current hour (00-23).",example:"14"},{name:"{mm}",description:"The current minute (00-59).",example:"30"},{name:"{ss}",description:"The current second (00-59).",example:"00"},{name:"{weekday}",description:"The current day of the week.",example:"Thursday"},{name:"{month}",description:"The current month name.",example:"December"},{name:"{calendar}",description:"A calendar view of the current date/time.",example:"12/28/2023 2:30 PM"},{name:"{today}",description:"The current date (YYYY-MM-DD).",example:"2023-12-28"},{name:"{YYYY-MM-DD}",description:"The current date (YYYY-MM-DD).",example:"2023-12-28"},{name:"{tomorrow}",description:"Tomorrow's date (YYYY-MM-DD).",example:"2023-12-29"},{name:"{yesterday}",description:"Yesterday's date (YYYY-MM-DD).",example:"2023-12-27"},{name:"{startofweek}",description:"The start of the current week (YYYY-MM-DD).",example:"2023-12-24"},{name:"{endofweek}",description:"The end of the current week (YYYY-MM-DD).",example:"2023-12-30"},{name:"{startofmonth}",description:"The start of the current month (YYYY-MM-DD).",example:"2023-12-01"},{name:"{endofmonth}",description:"The end of the current month (YYYY-MM-DD).",example:"2023-12-31"},{name:"{nextweek}",description:"The date of next week (YYYY-MM-DD).",example:"2024-01-04"},{name:"{lastweek}",description:"The date of last week (YYYY-MM-DD).",example:"2023-12-21"},{name:"{nextmonth}",description:"The date of next month (YYYY-MM-DD).",example:"2024-01-28"},{name:"{lastmonth}",description:"The date of last month (YYYY-MM-DD).",example:"2023-11-28"},{name:"{daysinmonth}",description:"The number of days in the current month.",example:"31"},{name:"{weekofyear}",description:"The week number of the current year.",example:"52"},{name:"{quarterofyear}",description:"The quarter of the current year.",example:"4"},{name:"{week}",description:"The current week number (alias for {weekofyear}).",example:"52"},{name:"{w}",description:"The current week number (alias for {weekofyear}).",example:"52"},{name:"{quarter}",description:"The current quarter (alias for {quarterofyear}).",example:"4"},{name:"{Q}",description:"The current quarter (alias for {quarterofyear}).",example:"4"},{name:"{dayofyear}",description:"The day of the year (1-366).",example:"362"},{name:"{DDD}",description:"The day of the year (1-366).",example:"362"},{name:"{monthname}",description:"The name of the current month.",example:"December"},{name:"{MMMM}",description:"The name of the current month.",example:"December"},{name:"{dayname}",description:"The name of the current day of the week.",example:"Thursday"},{name:"{dddd}",description:"The name of the current day of the week.",example:"Thursday"},{name:"{dateordinal}",description:"The current date with ordinal suffix (e.g., 28th).",example:"28th"},{name:"{Do}",description:"The current date with ordinal suffix (e.g., 28th).",example:"28th"},{name:"{relativetime}",description:"The relative time from now.",example:"in a few seconds"},{name:"{currentdate}",description:"The current date (YYYY-MM-DD).",example:"2023-12-28"},{name:"{yyyy}",description:"The current year.",example:"2023"},{name:"{timestamp}",description:"The current timestamp in milliseconds.",example:"1672234800000"},{name:"{vaultname}",description:"The name of the vault.",example:"MyVault"},{name:"{vaultpath}",description:"The root path of the vault.",example:"/Users/username/Documents/MyVault"},{name:"{parentfolder}",description:"The name of the immediate parent folder of the note.",example:"Project"},{name:"{notefolder}",description:"The name of the immediate parent folder of the note.",example:"Project"},{name:"{notepath}",description:"The full path of the current note.",example:"Project/MeetingNotes"},{name:"{width}",description:"The width of the image in pixels.",example:"800"},{name:"{height}",description:"The height of the image in pixels.",example:"600"},{name:"{aspectratio}",description:"The aspect ratio of the image (width/height, 2 decimal places).",example:"1.33"},{name:"{orientation}",description:"The orientation of the image (landscape, portrait, or square).",example:"landscape"},{name:"{resolution}",description:"The resolution of the image (width x height).",example:"800x600"},{name:"{ratio}",description:"The aspect ratio of the image, same as {aspectratio}.",example:"1.33"},{name:"{quality}",description:"The quality setting for image conversion/compression.",example:"75"},{name:"{megapixels}",description:"The size of the image in megapixels (2 decimal places).",example:"0.48"},{name:"{issquare}",description:"Whether the image is a perfect square (true/false).",example:"false"},{name:"{pixelcount}",description:"The total number of pixels in the image.",example:"480000"},{name:"{aspectratiotype}",description:"A common aspect ratio category (e.g., 4:3, 16:9, custom).",example:"4:3"},{name:"{resolutioncategory}",description:"A category based on pixel count (tiny, small, medium, large, very-large).",example:"small"},{name:"{filesizecategory}",description:"A category based on file size (e.g., 0-50KB, 51-200KB, etc.).",example:"0-50KB"},{name:"{dominantdimension}",description:"Whether the width or height is larger, or if they are equal.",example:"width"},{name:"{dimensiondifference}",description:"The absolute difference between width and height.",example:"200"},{name:"{bytesperpixel}",description:"The average number of bytes per pixel (2 decimal places).",example:"0.50"},{name:"{compressionratio}",description:"An estimate of the image compression ratio (2 decimal places).",example:"0.33"},{name:"{maxdimension}",description:"The larger dimension (width or height) of the image.",example:"800"},{name:"{mindimension}",description:"The smaller dimension (width or height) of the image.",example:"600"},{name:"{diagonalpixels}",description:"The diagonal pixel length of the image.",example:"1000"},{name:"{aspectratiosimplified}",description:"The aspect ratio in its simplest whole number form.",example:"4:3"},{name:"{screenfitcategory}",description:"A category based on whether the image fits within common screen sizes (e.g., fits-1080p, fits-1440p, fits-4k, above-4k).",example:"fits-1080p"},{name:"{random}",description:"A random alphanumeric string (6 characters).",example:"a8f7n2"},{name:"{randomHex:X}",description:"A random hexadecimal string of X characters.",example:"{randomHex:8} -> 3e4a7f9b"},{name:"{counter:00X}",description:"An auto-incrementing counter (padded with zeros) for the folder. X determines the padding.",example:"{counter:001} -> 005 (if it's the fifth image in the folder)"},{name:"{MD5:type}",description:"The first 8 characters of the MD5 hash of the specified type. Supports: filename, fullpath, parentfolder, rootfolder, extension, notename, notefolder, notepath.",example:"{MD5:filename} -> 7a3b9e2c"},{name:"{MD5:type:X}",description:"The first X characters of the MD5 hash of the specified type. Supports the same types as {MD5:type}.",example:"{MD5:fullpath:10} -> 7a3b9e2c1d"},{name:"{MD5:custom text}",description:"The full MD5 hash of a custom text.",example:"{MD5:MyCustomText} -> 5f9e2b8a3c7d1f6a4e8b2c9d"},{name:"{size:UNIT:DECIMALS}",description:"Image size in a specific unit (B, KB, MB) with custom decimal places.",example:"{size:KB:3} -> 24.000"},{name:"{sha256:image}",description:"The SHA-256 hash of the image content.",example:"{sha256:image} -> full hash, {sha256:image:8} -> e3b0c442"},{name:"{sha256:type}",description:"The SHA-256 hash of the specified type. Supports: filename, fullpath, parentfolder, rootfolder, extension, notename, notefolder, notepath.",example:"{sha256:filename} -> e3b0c442"},{name:"{sha256:type:X}",description:"The first X characters of the SHA-256 hash of the specified type. Supports the same types as {sha256:type}.",example:"{sha256:fullpath:10} -> e3b0c44298"},{name:"{uuid}",description:"A universally unique identifier (UUID).",example:"a1b2c3d4-e5f6-7890-1234-567890abcdef"}]}async processTemplate(i,e){let r=await this.getAvailableVariables(e,i),t=i;for(let[n,f]of Object.entries(r)){let o=new RegExp(this.escapeRegExp(n),"gi");t=t.replace(o,f)}return t}getAllVariables(){return this.allVariables}getCategorizedVariables(){return this.groupVariablesByCategory(this.allVariables)}groupVariablesByCategory(i){let e={Basic:[],"Date & Time":[],"File & Vault":[],"Image Metadata":[],"Calculated Image Properties":[],Advanced:[]};for(let r of i)r.name.startsWith("{date")||["{YYYY}","{MM}","{DD}","{HH}","{mm}","{ss}","{weekday}","{month}","{calendar}","{today}","{YYYY-MM-DD}","{tomorrow}","{yesterday}","{startofweek}","{endofweek}","{startofmonth}","{endofmonth}","{nextweek}","{lastweek}","{nextmonth}","{lastmonth}","{daysinmonth}","{weekofyear}","{quarterofyear}","{week}","{w}","{quarter}","{Q}","{dayofyear}","{DDD}","{monthname}","{MMMM}","{dayname}","{dddd}","{dateordinal}","{Do}","{relativetime}","{currentdate}","{yyyy}","{time}","{timestamp}"].includes(r.name)?e["Date & Time"].push(r):["{vaultname}","{vaultpath}","{parentfolder}","{notefolder}","{notepath}"].includes(r.name)?e["File & Vault"].push(r):["{imagename}","{filetype}","{sizeb}","{sizekb}","{sizemb}","{notename}"].includes(r.name)?e.Basic.push(r):["{width}","{height}","{aspectratio}","{orientation}","{resolution}"].includes(r.name)?e["Image Metadata"].push(r):["{ratio}","{quality}","{megapixels}","{issquare}","{pixelcount}","{aspectratiotype}","{resolutioncategory}","{filesizecategory}","{dominantdimension}","{dimensiondifference}","{bytesperpixel}","{compressionratio}","{maxdimension}","{mindimension}","{diagonalpixels}","{aspectratiosimplified}","{screenfitcategory}"].includes(r.name)?e["Calculated Image Properties"].push(r):e.Advanced.push(r);return e}async getAvailableVariables(i,e){var o,a,A;let{file:r,activeFile:t}=i,n=window.moment,f={};if(f["{random}"]=Math.random().toString(36).substring(2,8),f["{uuid}"]=crypto.randomUUID(),r instanceof W2.TFile){f["{imagename}"]=r.basename,f["{filetype}"]=r.extension;try{let l=await this.app.vault.adapter.stat(r.path);if(l)f["{sizeb}"]=l.size.toString(),f["{sizekb}"]=(l.size/1024).toFixed(2),f["{sizemb}"]=(l.size/(1024*1024)).toFixed(2);else throw new Error("File stats not available")}catch(l){console.error("Error getting file stats:",l),f["{sizeb}"]="unknown",f["{sizekb}"]="unknown",f["{sizemb}"]="unknown"}if(!["heic","heif","tiff","tif"].includes(r.extension.toLowerCase()))try{let l=await this.getImageMetadata(r);Object.assign(f,l)}catch(l){console.debug("Image metadata extraction failed:",l)}}else{f["{imagename}"]=r.name.substring(0,r.name.lastIndexOf(".")),f["{filetype}"]=r.name.substring(r.name.lastIndexOf(".")+1),f["{sizeb}"]=r.size.toString(),f["{sizekb}"]=(r.size/1024).toFixed(2),f["{sizemb}"]=(r.size/(1024*1024)).toFixed(2);let l=((o=r.name.split(".").pop())==null?void 0:o.toLowerCase())||"";if(!["heic","heif","tiff","tif"].includes(l))try{let k=await this.getImageMetadata(r);Object.assign(f,k)}catch(k){console.debug("Image metadata extraction failed:",k)}}f["{notename}"]=t.basename,f["{notepath}"]=t.path,f["{parentfolder}"]=((a=t.parent)==null?void 0:a.name)||"",f["{notefolder}"]=((A=t.parent)==null?void 0:A.name)||"",f["{vaultname}"]=this.app.vault.getName(),f["{vaultpath}"]=this.app.vault.getRoot().path,f["{timezone}"]=Intl.DateTimeFormat().resolvedOptions().timeZone,f["{locale}"]=navigator.language,f["{platform}"]=navigator.platform,f["{useragent}"]=navigator.userAgent,f["{YYYY}"]=n().format("YYYY"),f["{MM}"]=n().format("MM"),f["{DD}"]=n().format("DD"),f["{HH}"]=n().format("HH"),f["{mm}"]=n().format("mm"),f["{ss}"]=n().format("ss"),f["{date}"]=n().format("YYYY-MM-DD"),f["{weekday}"]=n().format("dddd"),f["{month}"]=n().format("MMMM"),f["{calendar}"]=n().calendar(),f["{today}"]=n().format("YYYY-MM-DD"),f["{YYYY-MM-DD}"]=n().format("YYYY-MM-DD"),f["{tomorrow}"]=n().add(1,"day").format("YYYY-MM-DD"),f["{yesterday}"]=n().subtract(1,"day").format("YYYY-MM-DD"),f["{startofweek}"]=n().startOf("week").format("YYYY-MM-DD"),f["{endofweek}"]=n().endOf("week").format("YYYY-MM-DD"),f["{startofmonth}"]=n().startOf("month").format("YYYY-MM-DD"),f["{endofmonth}"]=n().endOf("month").format("YYYY-MM-DD"),f["{nextweek}"]=n().add(1,"week").format("YYYY-MM-DD"),f["{lastweek}"]=n().subtract(1,"week").format("YYYY-MM-DD"),f["{nextmonth}"]=n().add(1,"month").format("YYYY-MM-DD"),f["{lastmonth}"]=n().subtract(1,"month").format("YYYY-MM-DD"),f["{daysinmonth}"]=n().daysInMonth().toString(),f["{weekofyear}"]=n().week().toString(),f["{quarterofyear}"]=n().quarter().toString(),f["{week}"]=n().format("w"),f["{w}"]=n().format("w"),f["{quarter}"]=n().format("Q"),f["{Q}"]=n().format("Q"),f["{dayofyear}"]=n().format("DDD"),f["{DDD}"]=n().format("DDD"),f["{monthname}"]=n().format("MMMM"),f["{MMMM}"]=n().format("MMMM"),f["{dayname}"]=n().format("dddd"),f["{dddd}"]=n().format("dddd"),f["{dateordinal}"]=n().format("Do"),f["{Do}"]=n().format("Do"),f["{relativetime}"]=n().fromNow(),f["{currentdate}"]=n().format("YYYY-MM-DD"),f["{yyyy}"]=n().format("YYYY"),f["{time}"]=n().format("HH-mm-ss"),f["{timestamp}"]=Date.now().toString(),f=await this.processDynamicVariables(e,i,f);try{let l=await this.getImageMetadata(r);Object.assign(f,l)}catch(l){console.debug("Image metadata extraction failed:",l)}return f}async processDynamicVariables(i,e,r){var p,m,C,y,Z;let{file:t,activeFile:n}=e,f=window.moment,o=/{randomHex:(\d+)}/g,a;for(;(a=o.exec(i))!==null;){let _=parseInt(a[1]);r[a[0]]=this.generateRandomHex(_)}let A=/{counter:(\d+)}/g,l;for(;(l=A.exec(i))!==null;){let _=l[1].length;r[l[0]]=await this.getNextCounter(((p=n.parent)==null?void 0:p.path)||"",_)}let k=/{date:(.*?)}/g,u;for(;(u=k.exec(i))!==null;)if(u[1]){let _=u[1];try{r[u[0]]=f().format(_)}catch(x){console.error(`Invalid date format: ${_}`,x),r[u[0]]=f().format("YYYY-MM-DD")}}let h=/{size:(MB|KB|B):(\d+)}/g,c,d;if(t instanceof W2.TFile)try{let _=await this.app.vault.adapter.stat(t.path);if(_)d=_.size;else throw new Error("File stats not available for size variables")}catch(_){console.error("Error getting file stats for size variables:",_),d=0}else d=t.size;for(;(c=h.exec(i))!==null;){let _=c[1],x=parseInt(c[2]);r[c[0]]=this.formatSize(d,_,x)}let b=/{MD5:([\w\-./]+?)(?::(\d+))?}/g,g;for(;(g=b.exec(i))!==null;){let _=g[1].toLowerCase(),x=g[2]?parseInt(g[2]):void 0,B="";switch(_){case"filename":B=t.name.substring(0,t.name.lastIndexOf("."));break;case"imagepath":case"fullpath":{B=t.name;break}case"parentfolder":B=((m=n.parent)==null?void 0:m.name)||"";break;case"rootfolder":B=this.app.vault.getRoot().path;break;case"extension":B=t.name.substring(t.name.lastIndexOf(".")+1);break;case"notename":B=n.basename;break;case"notefolder":B=((C=n.parent)==null?void 0:C.name)||"";break;case"notepath":B=n.path;break;default:B=_}let I=await this.generateMD5(B);x&&(I=I.substring(0,x)),r[`{MD5:${_}${x?":"+x:""}}`]=I}let v=/{sha256:([\w\-./]+?)(?::(\d+))?}/g,w;for(;(w=v.exec(i))!==null;){let _=w[1].toLowerCase(),x=w[2]?parseInt(w[2]):void 0,B;if(_==="image")B=await this.generateFileContentSHA256(t);else{let I="";switch(_){case"filename":I=t.name.substring(0,t.name.lastIndexOf("."));break;case"imagepath":case"fullpath":{I=t.name;break}case"parentfolder":I=((y=n.parent)==null?void 0:y.name)||"";break;case"rootfolder":I=this.app.vault.getRoot().path;break;case"extension":I=t.name.substring(t.name.lastIndexOf(".")+1);break;case"notename":I=n.basename;break;case"notefolder":I=((Z=n.parent)==null?void 0:Z.name)||"";break;case"notepath":I=n.path;break;default:I=_}B=await this.generateSHA256(I)}x&&(B=B.substring(0,x)),r[`{sha256:${_}${x?":"+x:""}}`]=B}return r}async getImageMetadata(i){var n;let e={},r=i instanceof W2.TFile?i.extension.toLowerCase():((n=i.name.split(".").pop())==null?void 0:n.toLowerCase())||"";if(["heic","heif","tiff","tif"].includes(r))return e;if(i instanceof W2.TFile)try{let f=await this.app.vault.readBinary(i),o=new Blob([f],{type:`image/${i.extension}`}),a=new Image;a.src=URL.createObjectURL(o),await new Promise((d,b)=>{a.onload=()=>d(a),a.onerror=g=>{console.error("Error extracting image metadata for File: ",g),b(g)}});let{width:A,height:l}=a;e["{width}"]=A.toString(),e["{height}"]=l.toString(),e["{aspectratio}"]=(A/l).toFixed(2),e["{orientation}"]=A>l?"landscape":Au?"1:1":Math.abs(k-1.33)<.1?"4:3":Math.abs(k-1.78)<.1?"16:9":Math.abs(k-1.6)<.1?"16:10":"custom")(),"{resolutioncategory}":(()=>h<1e5?"tiny":h<5e5?"small":h<2e6?"medium":h<8e6?"large":"very-large")(),"{filesizecategory}":(()=>c<50*1024?"0-50KB":c<200*1024?"51-200KB":c<1024*1024?"201-1024KB":c<5*1024*1024?"1025KB-5MB":c<10*1024*1024?"5MB-10MB":"10MB+")(),"{dominantdimension}":A>l?"width":A{let d=(w,p)=>p?d(p,w%p):w,b=A,g=l,v=d(b,g);return`${b/v}:${g/v}`})(),"{screenfitcategory}":(()=>A<=1920&&l<=1080?"fits-1080p":A<=2560&&l<=1440?"fits-1440p":A<=3840&&l<=2160?"fits-4k":"above-4k")()}),URL.revokeObjectURL(a.src)}catch(f){console.error("Error extracting image metadata for TFile:",f)}else try{let f=new Image;f.src=URL.createObjectURL(i),await new Promise((h,c)=>{f.onload=()=>h(f),f.onerror=d=>{console.error("Error extracting image metadata for File:",d),c(d)}});let{width:o,height:a}=f;e["{width}"]=o.toString(),e["{height}"]=a.toString(),e["{aspectratio}"]=(o/a).toFixed(2),e["{orientation}"]=o>a?"landscape":ol?"1:1":Math.abs(A-1.33)<.1?"4:3":Math.abs(A-1.78)<.1?"16:9":Math.abs(A-1.6)<.1?"16:10":"custom")(),"{resolutioncategory}":(()=>k<1e5?"tiny":k<5e5?"small":k<2e6?"medium":k<8e6?"large":"very-large")(),"{filesizecategory}":(()=>u<50*1024?"0-50KB":u<200*1024?"51-200KB":u<1024*1024?"201-1024KB":u<5*1024*1024?"1025KB-5MB":u<10*1024*1024?"5MB-10MB":"10MB+")(),"{dominantdimension}":o>a?"width":o{let h=(g,v)=>v?h(v,g%v):g,c=o,d=a,b=h(c,d);return`${c/b}:${d/b}`})(),"{screenfitcategory}":(()=>o<=1920&&a<=1080?"fits-1080p":o<=2560&&a<=1440?"fits-1440p":o<=3840&&a<=2160?"fits-4k":"above-4k")()}),URL.revokeObjectURL(f.src)}catch(f){console.error("Error extracting image metadata for File:",f)}return e}formatSize(i,e,r){switch(e){case"MB":return(i/(1024*1024)).toFixed(r);case"KB":return(i/1024).toFixed(r);case"B":return i.toFixed(r);default:return i.toString()}}generateRandomHex(i){let e=new Uint8Array(Math.ceil(i/2));return window.crypto.getRandomValues(e),Array.from(e).map(r=>r.toString(16).padStart(2,"0")).join("").substring(0,i)}async getNextCounter(i,e){let r=`counter-${i}`,t=this.counters.get(r)||0;return t++,this.counters.set(r,t),t.toString().padStart(e,"0")}async generateMD5(i){function e(r){function t(O,H){return O<>>32-H}function n(O,H){let j=O&2147483648,J=H&2147483648,U=O&1073741824,i0=H&1073741824,$=(O&1073741823)+(H&1073741823);return U&i0?$^2147483648^j^J:U|i0?$&1073741824?$^3221225472^j^J:$^1073741824^j^J:$^j^J}function f(O,H,j){return O&H|~O&j}function o(O,H,j){return O&j|H&~j}function a(O,H,j){return O^H^j}function A(O,H,j){return H^(O|~j)}function l(O,H,j,J,U,i0,$){return O=n(O,n(n(f(H,j,J),U),$)),n(t(O,i0),H)}function k(O,H,j,J,U,i0,$){return O=n(O,n(n(o(H,j,J),U),$)),n(t(O,i0),H)}function u(O,H,j,J,U,i0,$){return O=n(O,n(n(a(H,j,J),U),$)),n(t(O,i0),H)}function h(O,H,j,J,U,i0,$){return O=n(O,n(n(A(H,j,J),U),$)),n(t(O,i0),H)}function c(O){let H,j=O.length,J=j+8,i0=((J-J%64)/64+1)*16,$=Array(i0-1),t0=0,f0=0;for(;f0>>29,$}function d(O){let H="",j="",J,U;for(U=0;U<=3;U++)J=O>>>U*8&255,j="0"+J.toString(16),H=H+j.substr(j.length-2,2);return H}let b=c(r),g,v,w,p,m,C,y,Z,_,x=7,B=12,I=17,W=22,F=5,X=9,E=14,S=20,M=4,T=11,z=16,R=23,P=6,G=10,Q=15,Y=21;for(C=1732584193,y=4023233417,Z=2562383102,_=271733878,g=0;go.toString(16).padStart(2,"0")).join("")}async generateFileContentSHA256(i){try{let e;i instanceof W2.TFile?e=await this.app.vault.readBinary(i):e=await i.arrayBuffer();let r=await crypto.subtle.digest("SHA-256",e);return Array.from(new Uint8Array(r)).map(f=>f.toString(16).padStart(2,"0")).join("")}catch(e){return console.error("Error generating SHA-256 hash of file content:",e),"error"}}};var Ee=require("obsidian"),nt=class{constructor(i){this.app=i}async formatLink(i,e,r,t,n){try{if(!i)throw new Error("Link path cannot be empty.");let f=this.app.vault.getAbstractFileByPath(i);if(!(f instanceof Ee.TFile))throw new Error(`No file found at path: ${i}`);let o=this.formatPath(f,e,r,t),a="";return n&&(a=await this.getResizeParams(n,f)),e==="wikilink"?`![[${o}${a}]]`:`![${a}](${this.encodeMarkdownPath(o)})`}catch(f){return f instanceof Error?new Ee.Notice(`Error formatting link: ${f.message}`):new Ee.Notice("An unexpected error occurred while formatting the link."),console.error("Error in LinkFormatter:",f),""}}encodeMarkdownPath(i){return i.replace(/\s/g,"%20")}formatPath(i,e,r,t){switch(r){case"shortest":return i.name;case"absolute":return this.formatAbsolutePath(i);case"relative":return this.formatRelativePath(i,t);default:throw new Error(`Invalid path format: ${r}`)}}formatAbsolutePath(i){return"/"+i.path}formatRelativePath(i,e){if(!e)throw new Error("Cannot format relative path without an active file.");if(!e.parent)throw new Error("Active file does not have a parent directory.");let r=this.getRelativePath(e.path,i.path);return!r.startsWith("../")&&!r.startsWith("./")?"./"+r:r}getRelativePath(i,e){let r=i.split("/").slice(0,-1),t=e.split("/"),n=0;for(;n=t.height?(n=o,f=Math.round((n!=null?n:0)*t.height/t.width)):(f=o,n=Math.round((f!=null?f:0)*t.width/t.height)):(n=t.width>=t.height?o:void 0,f=t.height>t.width?o:void 0);break;case"shortest-edge":a=this.getDimensionValue(i.shortestEdge,Math.min(t.width,t.height),i.resizeUnits),i.maintainAspectRatio?t.width0){let k=l/t.width;f=Math.round(t.height*k),i.maintainAspectRatio&&f/n>2&&(f=Math.round(n*2),n=Math.round(f*(t.width/t.height)))}else f=Math.round(n*.75);break}case"none":default:return""}if(n!==void 0&&(n=this.applyScaleModeToDimension(n,t.width,i.resizeScaleMode)),f!==void 0&&(f=this.applyScaleModeToDimension(f,t.height,i.resizeScaleMode)),i.respectEditorMaxWidth&&n!==void 0){let A=this.getEditorMaxWidth();n>A&&(i.maintainAspectRatio&&f!==void 0&&(f=Math.round(A*t.height/t.width)),n=A)}if(i.maintainAspectRatio||(n===void 0&&f!==void 0?n=t?t.width:100:n===void 0&&(n=100),f===void 0&&n!==void 0?f=t?t.height:100:f===void 0&&(f=100)),n!==void 0||f!==void 0){let A=n!==void 0?Math.round(n):void 0,l=f!==void 0?Math.round(f):void 0;r=`|${A!=null?A:""}x${l!=null?l:""}`}else r="";return r}getDimensionValue(i,e,r){if(i!==void 0)return r==="percentage"?Math.round(e*i/100):i}parseCustomDimensions(i,e,r){let t=i.match(/(\d*(?:\.\d+)?)(%)?x(\d*(?:\.\d+)?)(%)?/);if(!t)return{width:void 0,height:void 0};let n=t[1]?parseFloat(t[1]):void 0,f=t[3]?parseFloat(t[3]):void 0;return r==="percentage"&&(n!==void 0&&(n=Math.round(e.width*n/100)),f!==void 0&&(f=Math.round(e.height*f/100))),{width:n,height:f}}applyScaleModeToDimension(i,e,r){return r==="reduce"&&i>e||r==="enlarge"&&i{let r=new Image;r.onload=()=>{e({width:r.width,height:r.height})},r.onerror=n=>{new Ee.Notice(`Failed to load image dimensions for ${i.name}`),e(null)};let t=this.app.vault.getResourcePath(i);r.src=t})}};var q=require("obsidian"),Qe=_2(require("path"));var y0=require("obsidian");function V(s,i,e){return(i=function(r){var t=function(n,f){if(typeof n!="object"||!n)return n;var o=n[Symbol.toPrimitive];if(o!==void 0){var a=o.call(n,f||"default");if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(f==="string"?String:Number)(n)}(r,"string");return typeof t=="symbol"?t:t+""}(i))in s?Object.defineProperty(s,i,{value:e,enumerable:!0,configurable:!0,writable:!0}):s[i]=e,s}function Gf(s,i){var e=Object.keys(s);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(s);i&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(s,t).enumerable})),e.push.apply(e,r)}return e}function D(s){for(var i=1;i=0)continue;a[A]=f[A]}return a}(s,i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(s);for(r=0;r=0||{}.propertyIsEnumerable.call(s,e)&&(t[e]=s[e])}return t}function Te(s,i){return i||(i=s.slice(0)),Object.freeze(Object.defineProperties(s,{raw:{value:Object.freeze(i)}}))}var ct=class{constructor(){V(this,"browserShadowBlurConstant",1),V(this,"DPI",96),V(this,"devicePixelRatio",typeof window!="undefined"?window.devicePixelRatio:1),V(this,"perfLimitSizeTotal",2097152),V(this,"maxCacheSideLimit",4096),V(this,"minCacheSideLimit",256),V(this,"disableStyleCopyPaste",!1),V(this,"enableGLFiltering",!0),V(this,"textureSize",4096),V(this,"forceGLPutImageData",!1),V(this,"cachesBoundsOfCurve",!1),V(this,"fontPaths",{}),V(this,"NUM_FRACTION_DIGITS",4)}},x0=new class extends ct{constructor(s){super(),this.configure(s)}configure(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Object.assign(this,s)}addFonts(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.fontPaths=D(D({},this.fontPaths),s)}removeFonts(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(s=>{delete this.fontPaths[s]})}clearFonts(){this.fontPaths={}}restoreDefaults(s){let i=new ct,e=(s==null?void 0:s.reduce((r,t)=>(r[t]=i[t],r),{}))||i;this.configure(e)}},Ge=function(s){for(var i=arguments.length,e=new Array(i>1?i-1:0),r=1;rthis.testPrecision(e,r)),e.getExtension("WEBGL_lose_context").loseContext(),Ge("log","WebGL: max texture size ".concat(this.maxTextureSize)))}isSupported(i){return!!this.maxTextureSize&&this.maxTextureSize>=i}},Fs={},Df;var ae=()=>Df||(Df={document,window,isTouchSupported:"ontouchstart"in window||"ontouchstart"in document||window&&window.navigator&&window.navigator.maxTouchPoints>0,WebGLProbe:new zn,dispose(){},copyPasteData:Fs}),z2=()=>ae().document,Rt=()=>ae().window,lo=()=>{var s;return Math.max((s=x0.devicePixelRatio)!==null&&s!==void 0?s:Rt().devicePixelRatio,1)},cr=new class{constructor(){V(this,"charWidthsCache",{}),V(this,"boundsOfCurveCache",{})}getFontCache(s){let{fontFamily:i,fontStyle:e,fontWeight:r}=s;i=i.toLowerCase(),this.charWidthsCache[i]||(this.charWidthsCache[i]={});let t=this.charWidthsCache[i],n="".concat(e.toLowerCase(),"_").concat((r+"").toLowerCase());return t[n]||(t[n]={}),t[n]}clearFontCache(s){(s=(s||"").toLowerCase())?this.charWidthsCache[s]&&delete this.charWidthsCache[s]:this.charWidthsCache={}}limitDimsByArea(s){let{perfLimitSizeTotal:i}=x0,e=Math.sqrt(i*s);return[Math.floor(e),Math.floor(i/e)]}},Jn="6.5.4";function k2(){}var De=Math.PI/2,ve=2*Math.PI,C1=Math.PI/180,bi=Object.freeze([1,0,0,1,0,0]),y1=16,We=.4477152502,d0="center",E0="left",yi="top",Hn="bottom",$0="right",Bi="none",B1=/\r?\n/,ko="moving",Pt="scaling",uo="rotating",x1="rotate",ho="skewing",mr="resizing",co="modifyPoly",Xs="modifyPath",bt="changed",Nt="scale",gi="scaleX",Gi="scaleY",J2="skewX",H2="skewY",ri="fill",xi="stroke",gt="modified",F2="json",Xn="svg",r0=new class{constructor(){this[F2]=new Map,this[Xn]=new Map}has(s){return this[F2].has(s)}getClass(s){let i=this[F2].get(s);if(!i)throw new Ri("No class registered for ".concat(s));return i}setClass(s,i){i?this[F2].set(i,s):(this[F2].set(s.type,s),this[F2].set(s.type.toLowerCase(),s))}getSVGClass(s){return this[Xn].get(s)}setSVGClass(s,i){this[Xn].set(i!=null?i:s.type.toLowerCase(),s)}},pt=new class extends Array{remove(s){let i=this.indexOf(s);i>-1&&this.splice(i,1)}cancelAll(){let s=this.splice(0);return s.forEach(i=>i.abort()),s}cancelByCanvas(s){if(!s)return[];let i=this.filter(e=>{var r;return e.target===s||typeof e.target=="object"&&((r=e.target)===null||r===void 0?void 0:r.canvas)===s});return i.forEach(e=>e.abort()),i}cancelByTarget(s){if(!s)return[];let i=this.filter(e=>e.target===s);return i.forEach(e=>e.abort()),i}},Un=class{constructor(){V(this,"__eventListeners",{})}on(i,e){if(this.__eventListeners||(this.__eventListeners={}),typeof i=="object")return Object.entries(i).forEach(r=>{let[t,n]=r;this.on(t,n)}),()=>this.off(i);if(e){let r=i;return this.__eventListeners[r]||(this.__eventListeners[r]=[]),this.__eventListeners[r].push(e),()=>this.off(r,e)}return()=>!1}once(i,e){if(typeof i=="object"){let r=[];return Object.entries(i).forEach(t=>{let[n,f]=t;r.push(this.once(n,f))}),()=>r.forEach(t=>t())}if(e){let r=this.on(i,function(){for(var t=arguments.length,n=new Array(t),f=0;f!1}_removeEventListener(i,e){if(this.__eventListeners[i])if(e){let r=this.__eventListeners[i],t=r.indexOf(e);t>-1&&r.splice(t,1)}else this.__eventListeners[i]=[]}off(i,e){if(this.__eventListeners)if(i===void 0)for(let r in this.__eventListeners)this._removeEventListener(r);else typeof i=="object"?Object.entries(i).forEach(r=>{let[t,n]=r;this._removeEventListener(t,n)}):this._removeEventListener(i,e)}fire(i,e){var r;if(!this.__eventListeners)return;let t=(r=this.__eventListeners[i])===null||r===void 0?void 0:r.concat();if(t)for(let n=0;n{let e=s.indexOf(i);return e!==-1&&s.splice(e,1),s},ie=s=>{if(s===0)return 1;switch(Math.abs(s)/De){case 1:case 3:return 0;case 2:return-1}return Math.cos(s)},ee=s=>{if(s===0)return 0;let i=s/De,e=Math.sign(s);switch(i){case 1:return e;case 2:return 0;case 3:return-e}return Math.sin(s)},N=class{constructor(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;typeof i=="object"?(this.x=i.x,this.y=i.y):(this.x=i,this.y=e)}add(i){return new N(this.x+i.x,this.y+i.y)}addEquals(i){return this.x+=i.x,this.y+=i.y,this}scalarAdd(i){return new N(this.x+i,this.y+i)}scalarAddEquals(i){return this.x+=i,this.y+=i,this}subtract(i){return new N(this.x-i.x,this.y-i.y)}subtractEquals(i){return this.x-=i.x,this.y-=i.y,this}scalarSubtract(i){return new N(this.x-i,this.y-i)}scalarSubtractEquals(i){return this.x-=i,this.y-=i,this}multiply(i){return new N(this.x*i.x,this.y*i.y)}scalarMultiply(i){return new N(this.x*i,this.y*i)}scalarMultiplyEquals(i){return this.x*=i,this.y*=i,this}divide(i){return new N(this.x/i.x,this.y/i.y)}scalarDivide(i){return new N(this.x/i,this.y/i)}scalarDivideEquals(i){return this.x/=i,this.y/=i,this}eq(i){return this.x===i.x&&this.y===i.y}lt(i){return this.xi.x&&this.y>i.y}gte(i){return this.x>=i.x&&this.y>=i.y}lerp(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:.5;return e=Math.max(Math.min(1,e),0),new N(this.x+(i.x-this.x)*e,this.y+(i.y-this.y)*e)}distanceFrom(i){let e=this.x-i.x,r=this.y-i.y;return Math.sqrt(e*e+r*r)}midPointFrom(i){return this.lerp(i)}min(i){return new N(Math.min(this.x,i.x),Math.min(this.y,i.y))}max(i){return new N(Math.max(this.x,i.x),Math.max(this.y,i.y))}toString(){return"".concat(this.x,",").concat(this.y)}setXY(i,e){return this.x=i,this.y=e,this}setX(i){return this.x=i,this}setY(i){return this.y=i,this}setFromPoint(i){return this.x=i.x,this.y=i.y,this}swap(i){let e=this.x,r=this.y;this.x=i.x,this.y=i.y,i.x=e,i.y=r}clone(){return new N(this.x,this.y)}rotate(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Z1,r=ee(i),t=ie(i),n=this.subtract(e);return new N(n.x*t-n.y*r,n.x*r+n.y*t).add(e)}transform(i){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return new N(i[0]*this.x+i[2]*this.y+(e?0:i[4]),i[1]*this.x+i[3]*this.y+(e?0:i[5]))}},Z1=new N(0,0),ut=s=>!!s&&Array.isArray(s._objects);function bo(s){class i extends s{constructor(){super(...arguments),V(this,"_objects",[])}_onObjectAdded(r){}_onObjectRemoved(r){}_onStackOrderChanged(r){}add(){for(var r=arguments.length,t=new Array(r),n=0;nthis._onObjectAdded(o)),f}insertAt(r){for(var t=arguments.length,n=new Array(t>1?t-1:0),f=1;fthis._onObjectAdded(o)),this._objects.length}remove(){let r=this._objects,t=[];for(var n=arguments.length,f=new Array(n),o=0;o{let A=r.indexOf(a);A!==-1&&(r.splice(A,1),t.push(a),this._onObjectRemoved(a))}),t}forEachObject(r){this.getObjects().forEach((t,n,f)=>r(t,n,f))}getObjects(){for(var r=arguments.length,t=new Array(r),n=0;nf.isType(...t))}item(r){return this._objects[r]}isEmpty(){return this._objects.length===0}size(){return this._objects.length}contains(r,t){return!!this._objects.includes(r)||!!t&&this._objects.some(n=>n instanceof i&&n.contains(r,!0))}complexity(){return this._objects.reduce((r,t)=>r+=t.complexity?t.complexity():0,0)}sendObjectToBack(r){return!(!r||r===this._objects[0])&&(He(this._objects,r),this._objects.unshift(r),this._onStackOrderChanged(r),!0)}bringObjectToFront(r){return!(!r||r===this._objects[this._objects.length-1])&&(He(this._objects,r),this._objects.push(r),this._onStackOrderChanged(r),!0)}sendObjectBackwards(r,t){if(!r)return!1;let n=this._objects.indexOf(r);if(n!==0){let f=this.findNewLowerIndex(r,n,t);return He(this._objects,r),this._objects.splice(f,0,r),this._onStackOrderChanged(r),!0}return!1}bringObjectForward(r,t){if(!r)return!1;let n=this._objects.indexOf(r);if(n!==this._objects.length-1){let f=this.findNewUpperIndex(r,n,t);return He(this._objects,r),this._objects.splice(f,0,r),this._onStackOrderChanged(r),!0}return!1}moveObjectTo(r,t){return r!==this._objects[t]&&(He(this._objects,r),this._objects.splice(t,0,r),this._onStackOrderChanged(r),!0)}findNewLowerIndex(r,t,n){let f;if(n){f=t;for(let o=t-1;o>=0;--o)if(r.isOverlapping(this._objects[o])){f=o;break}}else f=t-1;return f}findNewUpperIndex(r,t,n){let f;if(n){f=t;for(let o=t+1;o1&&arguments[1]!==void 0?arguments[1]:{},A=[],l=new N(t,n),k=l.add(new N(f,o));for(let u=this._objects.length-1;u>=0;u--){let h=this._objects[u];h.selectable&&h.visible&&(a&&h.intersectsWithRect(l,k)||h.isContainedWithinRect(l,k)||a&&h.containsPoint(l)||a&&h.containsPoint(k))&&A.push(h)}return A}}return i}var mt=class extends Un{_setOptions(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};for(let e in i)this.set(e,i[e])}_setObject(i){for(let e in i)this._set(e,i[e])}set(i,e){return typeof i=="object"?this._setObject(i):this._set(i,e),this}_set(i,e){this[i]=e}toggle(i){let e=this.get(i);return typeof e=="boolean"&&this.set(i,!e),this}get(i){return this[i]}};function dr(s){return Rt().requestAnimationFrame(s)}function go(s){return Rt().cancelAnimationFrame(s)}var Vs=0,Se=()=>Vs++,Ni=()=>{let s=z2().createElement("canvas");if(!s||s.getContext===void 0)throw new Ri("Failed to create `canvas` element");return s},po=()=>z2().createElement("img"),re=s=>{let i=Ni();return i.width=s.width,i.height=s.height,i},I1=(s,i,e)=>s.toDataURL("image/".concat(i),e),z0=s=>s*C1,Me=s=>s/C1,mo=s=>s.every((i,e)=>i===bi[e]),ki=(s,i,e)=>new N(s).transform(i,e),Vi=s=>{let i=1/(s[0]*s[3]-s[1]*s[2]),e=[i*s[3],-i*s[1],-i*s[2],i*s[0],0,0],{x:r,y:t}=new N(s[4],s[5]).transform(e,!0);return e[4]=-r,e[5]=-t,e},J0=(s,i,e)=>[s[0]*i[0]+s[2]*i[1],s[1]*i[0]+s[3]*i[1],s[0]*i[2]+s[2]*i[3],s[1]*i[2]+s[3]*i[3],e?0:s[0]*i[4]+s[2]*i[5]+s[4],e?0:s[1]*i[4]+s[3]*i[5]+s[5]],Qt=(s,i)=>s.reduceRight((e,r)=>r&&e?J0(r,e,i):r||e,void 0)||bi.concat(),vo=s=>{let[i,e]=s;return Math.atan2(e,i)},R2=s=>{let i=vo(s),e=Math.pow(s[0],2)+Math.pow(s[1],2),r=Math.sqrt(e),t=(s[0]*s[3]-s[2]*s[1])/r,n=Math.atan2(s[0]*s[2]+s[1]*s[3],e);return{angle:Me(i),scaleX:r,scaleY:t,skewX:Me(n),skewY:0,translateX:s[4]||0,translateY:s[5]||0}},U2=function(s){return[1,0,0,1,s,arguments.length>1&&arguments[1]!==void 0?arguments[1]:0]};function j2(){let{angle:s=0}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{x:i=0,y:e=0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=z0(s),t=ie(r),n=ee(r);return[t,n,-n,t,i?i-(t*i-n*e):0,e?e-(n*i+t*e):0]}var Yt=function(s){return[s,0,0,arguments.length>1&&arguments[1]!==void 0?arguments[1]:s,0,0]},wo=s=>Math.tan(z0(s)),E1=s=>[1,0,wo(s),1,0,0],W1=s=>[1,wo(s),0,1,0,0],Br=s=>{let{scaleX:i=1,scaleY:e=1,flipX:r=!1,flipY:t=!1,skewX:n=0,skewY:f=0}=s,o=Yt(r?-i:i,t?-e:e);return n&&(o=J0(o,E1(n),!0)),f&&(o=J0(o,W1(f),!0)),o},_o=s=>{let{translateX:i=0,translateY:e=0,angle:r=0}=s,t=U2(i,e);r&&(t=J0(t,j2({angle:r})));let n=Br(s);return mo(n)||(t=J0(t,n)),t},br=function(s){let{signal:i,crossOrigin:e=null}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise(function(r,t){if(i&&i.aborted)return t(new dt("loadImage"));let n=po(),f;i&&(f=function(a){n.src="",t(a)},i.addEventListener("abort",f,{once:!0}));let o=function(){n.onload=n.onerror=null,f&&(i==null||i.removeEventListener("abort",f)),r(n)};s?(n.onload=o,n.onerror=function(){f&&(i==null||i.removeEventListener("abort",f)),t(new Ri("Error loading ".concat(n.src)))},e&&(n.crossOrigin=e),n.src=s):o()})},P2=function(s){let{signal:i,reviver:e=k2}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise((r,t)=>{let n=[];i&&i.addEventListener("abort",t,{once:!0}),Promise.all(s.map(f=>r0.getClass(f.type).fromObject(f,{signal:i}).then(o=>(e(f,o),n.push(o),o)))).then(r).catch(f=>{n.forEach(o=>{o.dispose&&o.dispose()}),t(f)}).finally(()=>{i&&i.removeEventListener("abort",t)})})},xr=function(s){let{signal:i}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise((e,r)=>{let t=[];i&&i.addEventListener("abort",r,{once:!0});let n=Object.values(s).map(o=>o&&o.type&&r0.has(o.type)?P2([o],{signal:i}).then(a=>{let[A]=a;return t.push(A),A}):o),f=Object.keys(s);Promise.all(n).then(o=>o.reduce((a,A,l)=>(a[f[l]]=A,a),{})).then(e).catch(o=>{t.forEach(a=>{a.dispose&&a.dispose()}),r(o)}).finally(()=>{i&&i.removeEventListener("abort",r)})})},g2=function(s){return(arguments.length>1&&arguments[1]!==void 0?arguments[1]:[]).reduce((i,e)=>(e in s&&(i[e]=s[e]),i),{})},F1=(s,i)=>Object.keys(s).reduce((e,r)=>(i(s[r],r,s)&&(e[r]=s[r]),e),{}),Sf={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#0FF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000",blanchedalmond:"#FFEBCD",blue:"#00F",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#0FF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",darkgreen:"#006400",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#F0F",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",lightgreen:"#90EE90",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#789",lightslategrey:"#789",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#0F0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#F0F",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",rebeccapurple:"#639",red:"#F00",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFF",whitesmoke:"#F5F5F5",yellow:"#FF0",yellowgreen:"#9ACD32"},Vn=(s,i,e)=>(e<0&&(e+=1),e>1&&(e-=1),e<1/6?s+6*(i-s)*e:e<.5?i:e<2/3?s+(i-s)*(2/3-e)*6:s),Mf=(s,i,e,r)=>{s/=255,i/=255,e/=255;let t=Math.max(s,i,e),n=Math.min(s,i,e),f,o,a=(t+n)/2;if(t===n)f=o=0;else{let A=t-n;switch(o=a>.5?A/(2-t-n):A/(t+n),t){case s:f=(i-e)/A+(i0&&arguments[0]!==void 0?arguments[0]:"1";return parseFloat(s)/(s.endsWith("%")?100:1)},ft=s=>Math.min(Math.round(s),255).toString(16).toUpperCase().padStart(2,"0"),Rf=s=>{let[i,e,r,t=1]=s,n=Math.round(.3*i+.59*e+.11*r);return[n,n,n,t]},Z0=class{constructor(i){if(V(this,"isUnrecognised",!1),i)if(i instanceof Z0)this.setSource([...i._source]);else if(Array.isArray(i)){let[e,r,t,n=1]=i;this.setSource([e,r,t,n])}else this.setSource(this._tryParsingColor(i));else this.setSource([0,0,0,1])}_tryParsingColor(i){return(i=i.toLowerCase())in Sf&&(i=Sf[i]),i==="transparent"?[255,255,255,0]:Z0.sourceFromHex(i)||Z0.sourceFromRgb(i)||Z0.sourceFromHsl(i)||(this.isUnrecognised=!0)&&[0,0,0,1]}getSource(){return this._source}setSource(i){this._source=i}toRgb(){let[i,e,r]=this.getSource();return"rgb(".concat(i,",").concat(e,",").concat(r,")")}toRgba(){return"rgba(".concat(this.getSource().join(","),")")}toHsl(){let[i,e,r]=Mf(...this.getSource());return"hsl(".concat(i,",").concat(e,"%,").concat(r,"%)")}toHsla(){let[i,e,r,t]=Mf(...this.getSource());return"hsla(".concat(i,",").concat(e,"%,").concat(r,"%,").concat(t,")")}toHex(){return this.toHexa().slice(0,6)}toHexa(){let[i,e,r,t]=this.getSource();return"".concat(ft(i)).concat(ft(e)).concat(ft(r)).concat(ft(Math.round(255*t)))}getAlpha(){return this.getSource()[3]}setAlpha(i){return this._source[3]=i,this}toGrayscale(){return this.setSource(Rf(this.getSource())),this}toBlackWhite(i){let[e,,,r]=Rf(this.getSource()),t=e<(i||127)?0:255;return this.setSource([t,t,t,r]),this}overlayWith(i){i instanceof Z0||(i=new Z0(i));let e=this.getSource(),r=i.getSource(),[t,n,f]=e.map((o,a)=>Math.round(.5*o+.5*r[a]));return this.setSource([t,n,f,e[3]]),this}static fromRgb(i){return Z0.fromRgba(i)}static fromRgba(i){return new Z0(Z0.sourceFromRgb(i))}static sourceFromRgb(i){let e=i.match(/^rgba?\(\s*(\d{0,3}(?:\.\d+)?%?)\s*[\s|,]\s*(\d{0,3}(?:\.\d+)?%?)\s*[\s|,]\s*(\d{0,3}(?:\.\d+)?%?)\s*(?:\s*[,/]\s*(\d{0,3}(?:\.\d+)?%?)\s*)?\)$/i);if(e){let[r,t,n]=e.slice(1,4).map(f=>{let o=parseFloat(f);return f.endsWith("%")?Math.round(2.55*o):o});return[r,t,n,Tf(e[4])]}}static fromHsl(i){return Z0.fromHsla(i)}static fromHsla(i){return new Z0(Z0.sourceFromHsl(i))}static sourceFromHsl(i){let e=i.match(/^hsla?\(\s*([+-]?\d{0,3}(?:\.\d+)?(?:deg|turn|rad)?)\s*[\s|,]\s*(\d{0,3}(?:\.\d+)?%?)\s*[\s|,]\s*(\d{0,3}(?:\.\d+)?%?)\s*(?:\s*[,/]\s*(\d*(?:\.\d+)?%?)\s*)?\)$/i);if(!e)return;let r=(Z0.parseAngletoDegrees(e[1])%360+360)%360/360,t=parseFloat(e[2])/100,n=parseFloat(e[3])/100,f,o,a;if(t===0)f=o=a=n;else{let A=n<=.5?n*(t+1):n+t-n*t,l=2*n-A;f=Vn(l,A,r+1/3),o=Vn(l,A,r),a=Vn(l,A,r-1/3)}return[Math.round(255*f),Math.round(255*o),Math.round(255*a),Tf(e[4])]}static fromHex(i){return new Z0(Z0.sourceFromHex(i))}static sourceFromHex(i){if(i.match(/^#?(([0-9a-f]){3,4}|([0-9a-f]{2}){3,4})$/i)){let e=i.slice(i.indexOf("#")+1),r;r=e.length<=4?e.split("").map(a=>a+a):e.match(/.{2}/g);let[t,n,f,o=255]=r.map(a=>parseInt(a,16));return[t,n,f,o/255]}}static parseAngletoDegrees(i){let e=i.toLowerCase(),r=parseFloat(e);return e.includes("rad")?Me(r):e.includes("turn")?360*r:r}},P0=(s,i)=>parseFloat(Number(s).toFixed(i)),u2=function(s){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:y1,e=/\D{0,2}$/.exec(s),r=parseFloat(s),t=x0.DPI;switch(e==null?void 0:e[0]){case"mm":return r*t/25.4;case"cm":return r*t/2.54;case"in":return r*t;case"pt":return r*t/72;case"pc":return r*t/72*12;case"em":return r*i;default:return r}},Co=s=>{let[i,e]=s.trim().split(" "),[r,t]=(n=i)&&n!==Bi?[n.slice(1,4),n.slice(5,8)]:n===Bi?[n,n]:["Mid","Mid"];var n;return{meetOrSlice:e||"meet",alignX:r,alignY:t}},vr=s=>"matrix("+s.map(i=>P0(i,x0.NUM_FRACTION_DIGITS)).join(" ")+")",wr=function(s,i){let e,r,t=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2];if(i)if(i.toLive)e="url(#SVGID_".concat(i.id,")");else{let n=new Z0(i),f=n.getAlpha();e=n.toRgb(),f!==1&&(r=f.toString())}else e="none";return t?"".concat(s,": ").concat(e,"; ").concat(r?"".concat(s,"-opacity: ").concat(r,"; "):""):"".concat(s,'="').concat(e,'" ').concat(r?"".concat(s,'-opacity="').concat(r,'" '):"")},Ti=s=>!!s&&s.toLive!==void 0,Pf=s=>!!s&&typeof s.toObject=="function",Nf=s=>!!s&&s.offsetX!==void 0&&"source"in s,Ue=s=>!!s&&"multiSelectionStacking"in s;function yo(s){let i=s&&Li(s),e=0,r=0;if(!s||!i)return{left:e,top:r};let t=s,n=i.documentElement,f=i.body||{scrollLeft:0,scrollTop:0};for(;t&&(t.parentNode||t.host)&&(t=t.parentNode||t.host,t===i?(e=f.scrollLeft||n.scrollLeft||0,r=f.scrollTop||n.scrollTop||0):(e+=t.scrollLeft||0,r+=t.scrollTop||0),t.nodeType!==1||t.style.position!=="fixed"););return{left:e,top:r}}var Li=s=>s.ownerDocument||null,Bo=s=>{var i;return((i=s.ownerDocument)===null||i===void 0?void 0:i.defaultView)||null},xo=function(s,i,e){let{width:r,height:t}=e,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;s.width=r,s.height=t,n>1&&(s.setAttribute("width",(r*n).toString()),s.setAttribute("height",(t*n).toString()),i.scale(n,n))},jn=(s,i)=>{let{width:e,height:r}=i;e&&(s.style.width=typeof e=="number"?"".concat(e,"px"):e),r&&(s.style.height=typeof r=="number"?"".concat(r,"px"):r)};function Qf(s){return s.onselectstart!==void 0&&(s.onselectstart=()=>!1),s.style.userSelect=Bi,s}var vt=class{constructor(i){V(this,"_originalCanvasStyle",void 0),V(this,"lower",void 0);let e=this.createLowerCanvas(i);this.lower={el:e,ctx:e.getContext("2d")}}createLowerCanvas(i){let e=(r=i)&&r.getContext!==void 0?i:i&&z2().getElementById(i)||Ni();var r;if(e.hasAttribute("data-fabric"))throw new Ri("Trying to initialize a canvas that has already been initialized. Did you forget to dispose the canvas?");return this._originalCanvasStyle=e.style.cssText,e.setAttribute("data-fabric","main"),e.classList.add("lower-canvas"),e}cleanupDOM(i){let{width:e,height:r}=i,{el:t}=this.lower;t.classList.remove("lower-canvas"),t.removeAttribute("data-fabric"),t.setAttribute("width","".concat(e)),t.setAttribute("height","".concat(r)),t.style.cssText=this._originalCanvasStyle||"",this._originalCanvasStyle=void 0}setDimensions(i,e){let{el:r,ctx:t}=this.lower;xo(r,t,i,e)}setCSSDimensions(i){jn(this.lower.el,i)}calcOffset(){return function(i){var e;let r=i&&Li(i),t={left:0,top:0};if(!r)return t;let n=((e=Bo(i))===null||e===void 0?void 0:e.getComputedStyle(i,null))||{};t.left+=parseInt(n.borderLeftWidth,10)||0,t.top+=parseInt(n.borderTopWidth,10)||0,t.left+=parseInt(n.paddingLeft,10)||0,t.top+=parseInt(n.paddingTop,10)||0;let f={left:0,top:0},o=r.documentElement;i.getBoundingClientRect!==void 0&&(f=i.getBoundingClientRect());let a=yo(i);return{left:f.left+a.left-(o.clientLeft||0)+t.left,top:f.top+a.top-(o.clientTop||0)+t.top}}(this.lower.el)}dispose(){ae().dispose(this.lower.el),delete this.lower}},Gs={backgroundVpt:!0,backgroundColor:"",overlayVpt:!0,overlayColor:"",includeDefaultValues:!0,svgViewportTransformation:!0,renderOnAddRemove:!0,skipOffscreen:!0,enableRetinaScaling:!0,imageSmoothingEnabled:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,viewportTransform:[...bi]},h2=class extends bo(mt){get lowerCanvasEl(){var i;return(i=this.elements.lower)===null||i===void 0?void 0:i.el}get contextContainer(){var i;return(i=this.elements.lower)===null||i===void 0?void 0:i.ctx}static getDefaults(){return h2.ownDefaults}constructor(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),Object.assign(this,this.constructor.getDefaults()),this.set(e),this.initElements(i),this._setDimensionsImpl({width:this.width||this.elements.lower.el.width||0,height:this.height||this.elements.lower.el.height||0}),this.skipControlsDrawing=!1,this.viewportTransform=[...this.viewportTransform],this.calcViewportBoundaries()}initElements(i){this.elements=new vt(i)}add(){let i=super.add(...arguments);return arguments.length>0&&this.renderOnAddRemove&&this.requestRenderAll(),i}insertAt(i){for(var e=arguments.length,r=new Array(e>1?e-1:0),t=1;t0&&this.renderOnAddRemove&&this.requestRenderAll(),n}remove(){let i=super.remove(...arguments);return i.length>0&&this.renderOnAddRemove&&this.requestRenderAll(),i}_onObjectAdded(i){i.canvas&&i.canvas!==this&&(Ge("warn",`Canvas is trying to add an object that belongs to a different canvas. +Resulting to default behavior: removing object from previous canvas and adding to new canvas`),i.canvas.remove(i)),i._set("canvas",this),i.setCoords(),this.fire("object:added",{target:i}),i.fire("added",{target:this})}_onObjectRemoved(i){i._set("canvas",void 0),this.fire("object:removed",{target:i}),i.fire("removed",{target:this})}_onStackOrderChanged(){this.renderOnAddRemove&&this.requestRenderAll()}getRetinaScaling(){return this.enableRetinaScaling?lo():1}calcOffset(){return this._offset=this.elements.calcOffset()}getWidth(){return this.width}getHeight(){return this.height}setWidth(i,e){return this.setDimensions({width:i},e)}setHeight(i,e){return this.setDimensions({height:i},e)}_setDimensionsImpl(i){let{cssOnly:e=!1,backstoreOnly:r=!1}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!e){let t=D({width:this.width,height:this.height},i);this.elements.setDimensions(t,this.getRetinaScaling()),this.hasLostContext=!0,this.width=t.width,this.height=t.height}r||this.elements.setCSSDimensions(i),this.calcOffset()}setDimensions(i,e){this._setDimensionsImpl(i,e),e&&e.cssOnly||this.requestRenderAll()}getZoom(){return this.viewportTransform[0]}setViewportTransform(i){this.viewportTransform=i,this.calcViewportBoundaries(),this.renderOnAddRemove&&this.requestRenderAll()}zoomToPoint(i,e){let r=i,t=[...this.viewportTransform],n=ki(i,Vi(t));t[0]=e,t[3]=e;let f=ki(n,t);t[4]+=r.x-f.x,t[5]+=r.y-f.y,this.setViewportTransform(t)}setZoom(i){this.zoomToPoint(new N(0,0),i)}absolutePan(i){let e=[...this.viewportTransform];return e[4]=-i.x,e[5]=-i.y,this.setViewportTransform(e)}relativePan(i){return this.absolutePan(new N(-i.x-this.viewportTransform[4],-i.y-this.viewportTransform[5]))}getElement(){return this.elements.lower.el}clearContext(i){i.clearRect(0,0,this.width,this.height)}getContext(){return this.elements.lower.ctx}clear(){this.remove(...this.getObjects()),this.backgroundImage=void 0,this.overlayImage=void 0,this.backgroundColor="",this.overlayColor="",this.clearContext(this.getContext()),this.fire("canvas:cleared"),this.renderOnAddRemove&&this.requestRenderAll()}renderAll(){this.cancelRequestedRender(),this.destroyed||this.renderCanvas(this.getContext(),this._objects)}renderAndReset(){this.nextRenderHandle=0,this.renderAll()}requestRenderAll(){this.nextRenderHandle||this.disposed||this.destroyed||(this.nextRenderHandle=dr(()=>this.renderAndReset()))}calcViewportBoundaries(){let i=this.width,e=this.height,r=Vi(this.viewportTransform),t=ki({x:0,y:0},r),n=ki({x:i,y:e},r),f=t.min(n),o=t.max(n);return this.vptCoords={tl:f,tr:new N(o.x,f.y),bl:new N(f.x,o.y),br:o}}cancelRequestedRender(){this.nextRenderHandle&&(go(this.nextRenderHandle),this.nextRenderHandle=0)}drawControls(i){}renderCanvas(i,e){if(this.destroyed)return;let r=this.viewportTransform,t=this.clipPath;this.calcViewportBoundaries(),this.clearContext(i),i.imageSmoothingEnabled=this.imageSmoothingEnabled,i.patternQuality="best",this.fire("before:render",{ctx:i}),this._renderBackground(i),i.save(),i.transform(r[0],r[1],r[2],r[3],r[4],r[5]),this._renderObjects(i,e),i.restore(),this.controlsAboveOverlay||this.skipControlsDrawing||this.drawControls(i),t&&(t._set("canvas",this),t.shouldCache(),t._transformDone=!0,t.renderCache({forClipping:!0}),this.drawClipPathOnCanvas(i,t)),this._renderOverlay(i),this.controlsAboveOverlay&&!this.skipControlsDrawing&&this.drawControls(i),this.fire("after:render",{ctx:i}),this.__cleanupTask&&(this.__cleanupTask(),this.__cleanupTask=void 0)}drawClipPathOnCanvas(i,e){let r=this.viewportTransform;i.save(),i.transform(...r),i.globalCompositeOperation="destination-in",e.transform(i),i.scale(1/e.zoomX,1/e.zoomY),i.drawImage(e._cacheCanvas,-e.cacheTranslationX,-e.cacheTranslationY),i.restore()}_renderObjects(i,e){for(let r=0,t=e.length;r!n.excludeFromExport).map(n=>this._toObject(n,i,e))},this.__serializeBgOverlay(i,e)),t?{clipPath:t}:null)}_toObject(i,e,r){let t;this.includeDefaultValues||(t=i.includeDefaultValues,i.includeDefaultValues=!1);let n=i[e](r);return this.includeDefaultValues||(i.includeDefaultValues=!!t),n}__serializeBgOverlay(i,e){let r={},t=this.backgroundImage,n=this.overlayImage,f=this.backgroundColor,o=this.overlayColor;return Ti(f)?f.excludeFromExport||(r.background=f.toObject(e)):f&&(r.background=f),Ti(o)?o.excludeFromExport||(r.overlay=o.toObject(e)):o&&(r.overlay=o),t&&!t.excludeFromExport&&(r.backgroundImage=this._toObject(t,i,e)),n&&!n.excludeFromExport&&(r.overlayImage=this._toObject(n,i,e)),r}toSVG(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;i.reviver=e;let r=[];return this._setSVGPreamble(r,i),this._setSVGHeader(r,i),this.clipPath&&r.push(' +`)),this._setSVGBgOverlayColor(r,"background"),this._setSVGBgOverlayImage(r,"backgroundImage",e),this._setSVGObjects(r,e),this.clipPath&&r.push(` +`),this._setSVGBgOverlayColor(r,"overlay"),this._setSVGBgOverlayImage(r,"overlayImage",e),r.push(""),r.join("")}_setSVGPreamble(i,e){e.suppressPreamble||i.push(' +`,' +`)}_setSVGHeader(i,e){let r=e.width||"".concat(this.width),t=e.height||"".concat(this.height),n=x0.NUM_FRACTION_DIGITS,f=e.viewBox,o;if(f)o='viewBox="'.concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height,'" ');else if(this.svgViewportTransformation){let a=this.viewportTransform;o='viewBox="'.concat(P0(-a[4]/a[0],n)," ").concat(P0(-a[5]/a[3],n)," ").concat(P0(this.width/a[0],n)," ").concat(P0(this.height/a[3],n),'" ')}else o='viewBox="0 0 '.concat(this.width," ").concat(this.height,'" ');i.push(" +`,"Created with Fabric.js ",Jn,` +`,` +`,this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(e),` +`)}createSVGClipPathMarkup(i){let e=this.clipPath;return e?(e.clipPathId="CLIPPATH_".concat(Se()),' +`).concat(e.toClipPathSVG(i.reviver),` +`)):""}createSVGRefElementsMarkup(){return["background","overlay"].map(i=>{let e=this["".concat(i,"Color")];if(Ti(e)){let r=this["".concat(i,"Vpt")],t=this.viewportTransform,n={isType:()=>!1,width:this.width/(r?t[0]:1),height:this.height/(r?t[3]:1)};return e.toSVG(n,{additionalTransform:r?vr(t):""})}}).join("")}createSVGFontFacesMarkup(){let i=[],e={},r=x0.fontPaths;this._objects.forEach(function n(f){i.push(f),ut(f)&&f._objects.forEach(n)}),i.forEach(n=>{if(!(f=n)||typeof f._renderText!="function")return;var f;let{styles:o,fontFamily:a}=n;!e[a]&&r[a]&&(e[a]=!0,o&&Object.values(o).forEach(A=>{Object.values(A).forEach(l=>{let{fontFamily:k=""}=l;!e[k]&&r[k]&&(e[k]=!0)})}))});let t=Object.keys(e).map(n=>` @font-face { + font-family: '`.concat(n,`'; + src: url('`).concat(r[n],`'); + } +`)).join("");return t?` +`):""}_setSVGObjects(i,e){this.forEachObject(r=>{r.excludeFromExport||this._setSVGObject(i,r,e)})}_setSVGObject(i,e,r){i.push(e.toSVG(r))}_setSVGBgOverlayImage(i,e,r){let t=this[e];t&&!t.excludeFromExport&&t.toSVG&&i.push(t.toSVG(r))}_setSVGBgOverlayColor(i,e){let r=this["".concat(e,"Color")];if(r)if(Ti(r)){let t=r.repeat||"",n=this.width,f=this.height,o=this["".concat(e,"Vpt")]?vr(Vi(this.viewportTransform)):"";i.push(' +`))}else i.push(' +`)}loadFromJSON(i,e){let{signal:r}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!i)return Promise.reject(new Ri("`json` is undefined"));let t=typeof i=="string"?JSON.parse(i):i,{objects:n=[],backgroundImage:f,background:o,overlayImage:a,overlay:A,clipPath:l}=t,k=this.renderOnAddRemove;return this.renderOnAddRemove=!1,Promise.all([P2(n,{reviver:e,signal:r}),xr({backgroundImage:f,backgroundColor:o,overlayImage:a,overlayColor:A,clipPath:l},{signal:r})]).then(u=>{let[h,c]=u;return this.clear(),this.add(...h),this.set(t),this.set(c),this.renderOnAddRemove=k,this})}clone(i){let e=this.toObject(i);return this.cloneWithoutData().loadFromJSON(e)}cloneWithoutData(){let i=re(this);return new this.constructor(i)}toDataURL(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{format:e="png",quality:r=1,multiplier:t=1,enableRetinaScaling:n=!1}=i,f=t*(n?this.getRetinaScaling():1);return I1(this.toCanvasElement(f,i),e,r)}toCanvasElement(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1,{width:e,height:r,left:t,top:n,filter:f}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=(e||this.width)*i,a=(r||this.height)*i,A=this.getZoom(),l=this.width,k=this.height,u=this.skipControlsDrawing,h=A*i,c=this.viewportTransform,d=[h,0,0,h,(c[4]-(t||0))*i,(c[5]-(n||0))*i],b=this.enableRetinaScaling,g=re({width:o,height:a}),v=f?this._objects.filter(w=>f(w)):this._objects;return this.enableRetinaScaling=!1,this.viewportTransform=d,this.width=o,this.height=a,this.skipControlsDrawing=!0,this.calcViewportBoundaries(),this.renderCanvas(g.getContext("2d"),v),this.viewportTransform=c,this.width=l,this.height=k,this.calcViewportBoundaries(),this.enableRetinaScaling=b,this.skipControlsDrawing=u,g}dispose(){return!this.disposed&&this.elements.cleanupDOM({width:this.width,height:this.height}),pt.cancelByCanvas(this),this.disposed=!0,new Promise((i,e)=>{let r=()=>{this.destroy(),i(!0)};r.kill=e,this.__cleanupTask&&this.__cleanupTask.kill("aborted"),this.destroyed?i(!1):this.nextRenderHandle?this.__cleanupTask=r:r()})}destroy(){this.destroyed=!0,this.cancelRequestedRender(),this.forEachObject(i=>i.dispose()),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose(),this.backgroundImage=void 0,this.overlayImage&&this.overlayImage.dispose(),this.overlayImage=void 0,this.elements.dispose()}toString(){return"#")}};V(h2,"ownDefaults",Gs);var Ds=["touchstart","touchmove","touchend"],Zo=s=>{let i=yo(s.target),e=function(r){let t=r.changedTouches;return t&&t[0]?t[0]:r}(s);return new N(e.clientX+i.left,e.clientY+i.top)},wt=s=>Ds.includes(s.type)||s.pointerType==="touch",Ln=s=>{s.preventDefault(),s.stopPropagation()},oe=s=>{let i=0,e=0,r=0,t=0;for(let n=0,f=s.length;nr||!n)&&(r=o),(ot||!n)&&(t=a),(aN2(s,J0(i,s.calcOwnMatrix())),N2=(s,i)=>{let e=R2(i),{translateX:r,translateY:t,scaleX:n,scaleY:f}=e,o=N0(e,Ss),a=new N(r,t);s.flipX=!1,s.flipY=!1,Object.assign(s,o),s.set({scaleX:n,scaleY:f}),s.setPositionByOrigin(a,d0,d0)},Eo=s=>{s.scaleX=1,s.scaleY=1,s.skewX=0,s.skewY=0,s.flipX=!1,s.flipY=!1,s.rotate(0)},X1=s=>({scaleX:s.scaleX,scaleY:s.scaleY,skewX:s.skewX,skewY:s.skewY,angle:s.angle,left:s.left,flipX:s.flipX,flipY:s.flipY,top:s.top}),Ot=(s,i,e)=>{let r=s/2,t=i/2,n=[new N(-r,-t),new N(r,-t),new N(-r,t),new N(r,t)].map(o=>o.transform(e)),f=oe(n);return new N(f.width,f.height)},Zr=function(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:bi;return J0(Vi(arguments.length>1&&arguments[1]!==void 0?arguments[1]:bi),s)},me=function(s){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:bi,e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:bi;return s.transform(Zr(i,e))},Wo=function(s){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:bi,e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:bi;return s.transform(Zr(i,e),!0)},$n=(s,i,e)=>{let r=Zr(i,e);return N2(s,J0(r,s.calcOwnMatrix())),r},V1=(s,i)=>{var e;let{transform:{target:r}}=i;(e=r.canvas)===null||e===void 0||e.fire("object:".concat(s),D(D({},i),{},{target:r})),r.fire(s,i)},Ms={left:-.5,top:-.5,center:0,bottom:.5,right:.5},ei=s=>typeof s=="string"?Ms[s]:s-.5,_t="not-allowed";function Fo(s){return ei(s.originX)===ei(d0)&&ei(s.originY)===ei(d0)}function Yf(s){return .5-ei(s)}var qi=(s,i)=>s[i],G1=(s,i,e,r)=>({e:s,transform:i,pointer:new N(e,r)});function Xo(s,i){let e=s.getTotalAngle()+Me(Math.atan2(i.y,i.x))+360;return Math.round(e%360/45)}function zt(s,i,e,r,t){var n;let{target:f,corner:o}=s,a=f.controls[o],A=((n=f.canvas)===null||n===void 0?void 0:n.getZoom())||1,l=f.padding/A,k=function(u,h,c,d){let b=u.getRelativeCenterPoint(),g=c!==void 0&&d!==void 0?u.translateToGivenOrigin(b,d0,d0,c,d):new N(u.left,u.top);return(u.angle?h.rotate(-z0(u.angle),b):h).subtract(g)}(f,new N(r,t),i,e);return k.x>=l&&(k.x-=l),k.x<=-l&&(k.x+=l),k.y>=l&&(k.y-=l),k.y<=l&&(k.y+=l),k.x-=a.offsetX,k.y-=a.offsetY,k}var Vo=(s,i,e,r)=>{let{target:t,offsetX:n,offsetY:f}=i,o=e-n,a=r-f,A=!qi(t,"lockMovementX")&&t.left!==o,l=!qi(t,"lockMovementY")&&t.top!==a;return A&&t.set(E0,o),l&&t.set(yi,a),(A||l)&&V1(ko,G1(s,i,e,r)),A||l},Ct=class{getSvgStyles(i){let e=this.fillRule?this.fillRule:"nonzero",r=this.strokeWidth?this.strokeWidth:"0",t=this.strokeDashArray?this.strokeDashArray.join(" "):Bi,n=this.strokeDashOffset?this.strokeDashOffset:"0",f=this.strokeLineCap?this.strokeLineCap:"butt",o=this.strokeLineJoin?this.strokeLineJoin:"miter",a=this.strokeMiterLimit?this.strokeMiterLimit:"4",A=this.opacity!==void 0?this.opacity:"1",l=this.visible?"":" visibility: hidden;",k=i?"":this.getSvgFilter(),u=wr(ri,this.fill);return[wr(xi,this.stroke),"stroke-width: ",r,"; ","stroke-dasharray: ",t,"; ","stroke-linecap: ",f,"; ","stroke-dashoffset: ",n,"; ","stroke-linejoin: ",o,"; ","stroke-miterlimit: ",a,"; ",u,"fill-rule: ",e,"; ","opacity: ",A,";",k,l].join("")}getSvgFilter(){return this.shadow?"filter: url(#SVGID_".concat(this.shadow.id,");"):""}getSvgCommons(){return[this.id?'id="'.concat(this.id,'" '):"",this.clipPath?'clip-path="url(#'.concat(this.clipPath.clipPathId,')" '):""].join("")}getSvgTransform(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r=i?this.calcTransformMatrix():this.calcOwnMatrix(),t='transform="'.concat(vr(r));return"".concat(t).concat(e,'" ')}_toSVG(i){return[""]}toSVG(i){return this._createBaseSVGMarkup(this._toSVG(i),{reviver:i})}toClipPathSVG(i){return" "+this._createBaseClipPathSVGMarkup(this._toSVG(i),{reviver:i})}_createBaseClipPathSVGMarkup(i){let{reviver:e,additionalTransform:r=""}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=[this.getSvgTransform(!0,r),this.getSvgCommons()].join(""),n=i.indexOf("COMMON_PARTS");return i[n]=t,e?e(i.join("")):i.join("")}_createBaseSVGMarkup(i){let{noStyle:e,reviver:r,withShadow:t,additionalTransform:n}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},f=e?"":'style="'.concat(this.getSvgStyles(),'" '),o=t?'style="'.concat(this.getSvgFilter(),'" '):"",a=this.clipPath,A=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",l=a&&a.absolutePositioned,k=this.stroke,u=this.fill,h=this.shadow,c=[],d=i.indexOf("COMMON_PARTS"),b;a&&(a.clipPathId="CLIPPATH_".concat(Se()),b=' +`).concat(a.toClipPathSVG(r),` +`)),l&&c.push(" +`),c.push(" +`);let g=[f,A,e?"":this.addPaintOrder()," ",n?'transform="'.concat(n,'" '):""].join("");return i[d]=g,Ti(u)&&c.push(u.toSVG(this)),Ti(k)&&c.push(k.toSVG(this)),h&&c.push(h.toSVG(this)),a&&c.push(b),c.push(i.join("")),c.push(` +`),l&&c.push(` +`),r?r(c.join("")):c.join("")}addPaintOrder(){return this.paintFirst!==ri?' paint-order="'.concat(this.paintFirst,'" '):""}};function Jt(s){return new RegExp("^("+s.join("|")+")\\b","i")}var Of,$i=String.raw(Of||(Of=Te(["(?:[-+]?(?:d*.d+|d+.?)(?:[eE][-+]?d+)?)"],["(?:[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?)"])));var Ts=new RegExp("(normal|italic)?\\s*(normal|small-caps)?\\s*(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\s*("+$i+"(?:px|cm|mm|em|pt|pc|in)*)(?:\\/(normal|"+$i+"))?\\s+(.*)"),Rs={cx:E0,x:E0,r:"radius",cy:yi,y:yi,display:"visible",visibility:"visible",transform:"transformMatrix","fill-opacity":"fillOpacity","fill-rule":"fillRule","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","letter-spacing":"charSpacing","paint-order":"paintFirst","stroke-dasharray":"strokeDashArray","stroke-dashoffset":"strokeDashOffset","stroke-linecap":"strokeLineCap","stroke-linejoin":"strokeLineJoin","stroke-miterlimit":"strokeMiterLimit","stroke-opacity":"strokeOpacity","stroke-width":"strokeWidth","text-decoration":"textDecoration","text-anchor":"textAnchor",opacity:"opacity","clip-path":"clipPath","clip-rule":"clipRule","vector-effect":"strokeUniform","image-rendering":"imageSmoothing"},Gn="font-size",Dn="clip-path",c4=Jt(["path","circle","polygon","polyline","ellipse","rect","line","image","text"]),d4=Jt(["symbol","image","marker","pattern","view","svg"]),zf=Jt(["symbol","g","a","svg","clipPath","defs"]),b4=new RegExp("^\\s*("+$i+"+)\\s*,?\\s*("+$i+"+)\\s*,?\\s*("+$i+"+)\\s*,?\\s*("+$i+"+)\\s*$"),Ps=new N(1,0),Go=new N,D1=(s,i)=>s.rotate(i),yt=(s,i)=>new N(i).subtract(s),Bt=s=>s.distanceFrom(Go),xt=(s,i)=>Math.atan2(M2(s,i),So(s,i)),Do=s=>xt(Ps,s),Ht=s=>s.eq(Go)?s:s.scalarDivide(Bt(s)),S1=function(s){let i=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return Ht(new N(-s.y,s.x).scalarMultiply(i?1:-1))},M2=(s,i)=>s.x*i.y-s.y*i.x,So=(s,i)=>s.x*i.x+s.y*i.y,qn=(s,i,e)=>{if(s.eq(i)||s.eq(e))return!0;let r=M2(i,e),t=M2(i,s),n=M2(e,s);return r>=0?t>=0&&n<=0:!(t<=0&&n>=0)},Jf="(-?\\d+(?:\\.\\d*)?(?:px)?(?:\\s?|$))?",Hf=new RegExp("(?:\\s|^)"+Jf+Jf+"("+$i+"?(?:px)?)?(?:\\s?|$)(?:$|\\s)"),Pi=class{constructor(i){let e=typeof i=="string"?Pi.parseShadow(i):i;Object.assign(this,Pi.ownDefaults,e),this.id=Se()}static parseShadow(i){let e=i.trim(),[,r=0,t=0,n=0]=(Hf.exec(e)||[]).map(f=>parseFloat(f)||0);return{color:(e.replace(Hf,"")||"rgb(0,0,0)").trim(),offsetX:r,offsetY:t,blur:n}}toString(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")}toSVG(i){let e=D1(new N(this.offsetX,this.offsetY),z0(-i.angle)),r=new Z0(this.color),t=40,n=40;return i.width&&i.height&&(t=100*P0((Math.abs(e.x)+this.blur)/i.width,x0.NUM_FRACTION_DIGITS)+20,n=100*P0((Math.abs(e.y)+this.blur)/i.height,x0.NUM_FRACTION_DIGITS)+20),i.flipX&&(e.x*=-1),i.flipY&&(e.y*=-1),' + + + + + + + + + +`)}toObject(){let i={color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling,type:this.constructor.type},e=Pi.ownDefaults;return this.includeDefaultValues?i:F1(i,(r,t)=>r!==e[t])}static async fromObject(i){return new this(i)}};V(Pi,"ownDefaults",{color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1}),V(Pi,"type","shadow"),r0.setClass(Pi,"shadow");var c2=(s,i,e)=>Math.max(s,Math.min(i,e)),Ns=[yi,E0,gi,Gi,"flipX","flipY","originX","originY","angle","opacity","globalCompositeOperation","shadow","visible",J2,H2],_e=[ri,xi,"strokeWidth","strokeDashArray","width","height","paintFirst","strokeUniform","strokeLineCap","strokeDashOffset","strokeLineJoin","strokeMiterLimit","backgroundColor","clipPath"],Qs={top:0,left:0,width:0,height:0,angle:0,flipX:!1,flipY:!1,scaleX:1,scaleY:1,minScaleLimit:0,skewX:0,skewY:0,originX:E0,originY:yi,strokeWidth:1,strokeUniform:!1,padding:0,opacity:1,paintFirst:ri,fill:"rgb(0,0,0)",fillRule:"nonzero",stroke:null,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:4,globalCompositeOperation:"source-over",backgroundColor:"",shadow:null,visible:!0,includeDefaultValues:!0,excludeFromExport:!1,objectCaching:!0,clipPath:void 0,inverted:!1,absolutePositioned:!1,centeredRotation:!0,centeredScaling:!1,dirty:!0},Sn=(s,i,e,r)=>(ss*Math.pow(2,10*(r-=1))*Math.sin((r*t-i)*ve/e),Mo=(s,i,e,r)=>-e*Math.cos(s/r*De)+e+i,Kn=(s,i,e,r)=>(s/=r)<1/2.75?e*(7.5625*s*s)+i:s<2/2.75?e*(7.5625*(s-=1.5/2.75)*s+.75)+i:s<2.5/2.75?e*(7.5625*(s-=2.25/2.75)*s+.9375)+i:e*(7.5625*(s-=2.625/2.75)*s+.984375)+i,jf=(s,i,e,r)=>e-Kn(r-s,0,e,r)+i,Ys=Object.freeze({__proto__:null,defaultEasing:Mo,easeInBack:function(s,i,e,r){let t=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1.70158;return e*(s/=r)*s*((t+1)*s-t)+i},easeInBounce:jf,easeInCirc:(s,i,e,r)=>-e*(Math.sqrt(1-(s/=r)*s)-1)+i,easeInCubic:(s,i,e,r)=>e*(s/r)**3+i,easeInElastic:(s,i,e,r)=>{let t=e,n=0;if(s===0)return i;if((s/=r)===1)return i+e;n||(n=.3*r);let{a:f,s:o,p:a}=Sn(t,e,n,1.70158);return-Uf(f,o,a,s,r)+i},easeInExpo:(s,i,e,r)=>s===0?i:e*2**(10*(s/r-1))+i,easeInOutBack:function(s,i,e,r){let t=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1.70158;return(s/=r/2)<1?e/2*(s*s*((1+(t*=1.525))*s-t))+i:e/2*((s-=2)*s*((1+(t*=1.525))*s+t)+2)+i},easeInOutBounce:(s,i,e,r)=>s(s/=r/2)<1?-e/2*(Math.sqrt(1-s**2)-1)+i:e/2*(Math.sqrt(1-(s-=2)*s)+1)+i,easeInOutCubic:(s,i,e,r)=>(s/=r/2)<1?e/2*s**3+i:e/2*((s-2)**3+2)+i,easeInOutElastic:(s,i,e,r)=>{let t=e,n=0;if(s===0)return i;if((s/=r/2)===2)return i+e;n||(n=r*(.3*1.5));let{a:f,s:o,p:a,c:A}=Sn(t,e,n,1.70158);return s<1?-.5*Uf(f,o,a,s,r)+i:f*Math.pow(2,-10*(s-=1))*Math.sin((s*r-o)*ve/a)*.5+A+i},easeInOutExpo:(s,i,e,r)=>s===0?i:s===r?i+e:(s/=r/2)<1?e/2*2**(10*(s-1))+i:e/2*-(2**(-10*--s)+2)+i,easeInOutQuad:(s,i,e,r)=>(s/=r/2)<1?e/2*s**2+i:-e/2*(--s*(s-2)-1)+i,easeInOutQuart:(s,i,e,r)=>(s/=r/2)<1?e/2*s**4+i:-e/2*((s-=2)*s**3-2)+i,easeInOutQuint:(s,i,e,r)=>(s/=r/2)<1?e/2*s**5+i:e/2*((s-2)**5+2)+i,easeInOutSine:(s,i,e,r)=>-e/2*(Math.cos(Math.PI*s/r)-1)+i,easeInQuad:(s,i,e,r)=>e*(s/=r)*s+i,easeInQuart:(s,i,e,r)=>e*(s/=r)*s**3+i,easeInQuint:(s,i,e,r)=>e*(s/r)**5+i,easeInSine:(s,i,e,r)=>-e*Math.cos(s/r*De)+e+i,easeOutBack:function(s,i,e,r){let t=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1.70158;return e*((s=s/r-1)*s*((t+1)*s+t)+1)+i},easeOutBounce:Kn,easeOutCirc:(s,i,e,r)=>e*Math.sqrt(1-(s=s/r-1)*s)+i,easeOutCubic:(s,i,e,r)=>e*((s/r-1)**3+1)+i,easeOutElastic:(s,i,e,r)=>{let t=e,n=0;if(s===0)return i;if((s/=r)===1)return i+e;n||(n=.3*r);let{a:f,s:o,p:a,c:A}=Sn(t,e,n,1.70158);return f*2**(-10*s)*Math.sin((s*r-o)*ve/a)+A+i},easeOutExpo:(s,i,e,r)=>s===r?i+e:e*-(2**(-10*s/r)+1)+i,easeOutQuad:(s,i,e,r)=>-e*(s/=r)*(s-2)+i,easeOutQuart:(s,i,e,r)=>-e*((s=s/r-1)*s**3-1)+i,easeOutQuint:(s,i,e,r)=>e*((s/r-1)**5+1)+i,easeOutSine:(s,i,e,r)=>e*Math.sin(s/r*De)+i}),Os=()=>!1,_r=class{constructor(i){let{startValue:e,byValue:r,duration:t=500,delay:n=0,easing:f=Mo,onStart:o=k2,onChange:a=k2,onComplete:A=k2,abort:l=Os,target:k}=i;V(this,"_state","pending"),V(this,"durationProgress",0),V(this,"valueProgress",0),this.tick=this.tick.bind(this),this.duration=t,this.delay=n,this.easing=f,this._onStart=o,this._onChange=a,this._onComplete=A,this._abort=l,this.target=k,this.startValue=e,this.byValue=r,this.value=this.startValue,this.endValue=Object.freeze(this.calculate(this.duration).value)}get state(){return this._state}isDone(){return this._state==="aborted"||this._state==="completed"}start(){let i=e=>{this._state==="pending"&&(this.startTime=e||+new Date,this._state="running",this._onStart(),this.tick(this.startTime))};this.register(),this.delay>0?setTimeout(()=>dr(i),this.delay):dr(i)}tick(i){let e=(i||+new Date)-this.startTime,r=Math.min(e,this.duration);this.durationProgress=r/this.duration;let{value:t,valueProgress:n}=this.calculate(r);this.value=Object.freeze(t),this.valueProgress=n,this._state!=="aborted"&&(this._abort(this.value,this.valueProgress,this.durationProgress)?(this._state="aborted",this.unregister()):e>=this.duration?(this.durationProgress=this.valueProgress=1,this._onChange(this.endValue,this.valueProgress,this.durationProgress),this._state="completed",this._onComplete(this.endValue,this.valueProgress,this.durationProgress),this.unregister()):(this._onChange(this.value,this.valueProgress,this.durationProgress),dr(this.tick)))}register(){pt.push(this)}unregister(){pt.remove(this)}abort(){this._state="aborted",this.unregister()}},zs=["startValue","endValue"],i1=class extends _r{constructor(i){let{startValue:e=0,endValue:r=100}=i;super(D(D({},N0(i,zs)),{},{startValue:e,byValue:r-e}))}calculate(i){let e=this.easing(i,this.startValue,this.byValue,this.duration);return{value:e,valueProgress:Math.abs((e-this.startValue)/this.byValue)}}},Js=["startValue","endValue"],e1=class extends _r{constructor(i){let{startValue:e=[0],endValue:r=[100]}=i;super(D(D({},N0(i,Js)),{},{startValue:e,byValue:r.map((t,n)=>t-e[n])}))}calculate(i){let e=this.startValue.map((r,t)=>this.easing(i,r,this.byValue[t],this.duration,t));return{value:e,valueProgress:Math.abs((e[0]-this.startValue[0])/this.byValue[0])}}},Hs=["startValue","endValue","easing","onChange","onComplete","abort"],Us=(s,i,e,r)=>i+e*(1-Math.cos(s/r*De)),Mn=s=>s&&((i,e,r)=>s(new Z0(i).toRgba(),e,r)),r1=class extends _r{constructor(i){let{startValue:e,endValue:r,easing:t=Us,onChange:n,onComplete:f,abort:o}=i,a=N0(i,Hs),A=new Z0(e).getSource(),l=new Z0(r).getSource();super(D(D({},a),{},{startValue:A,byValue:l.map((k,u)=>k-A[u]),easing:t,onChange:Mn(n),onComplete:Mn(f),abort:Mn(o)}))}calculate(i){let[e,r,t,n]=this.startValue.map((o,a)=>this.easing(i,o,this.byValue[a],this.duration,a)),f=[...[e,r,t].map(Math.round),c2(0,n,1)];return{value:f,valueProgress:f.map((o,a)=>this.byValue[a]!==0?Math.abs((o-this.startValue[a])/this.byValue[a]):0).find(o=>o!==0)||0}}};function M1(s){let i=(e=>Array.isArray(e.startValue)||Array.isArray(e.endValue))(s)?new e1(s):new i1(s);return i.start(),i}function To(s){let i=new r1(s);return i.start(),i}var S0=class{constructor(i){this.status=i,this.points=[]}includes(i){return this.points.some(e=>e.eq(i))}append(){for(var i=arguments.length,e=new Array(i),r=0;r!this.includes(t))),this}static isPointContained(i,e,r){let t=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(e.eq(r))return i.eq(e);if(e.x===r.x)return i.x===e.x&&(t||i.y>=Math.min(e.y,r.y)&&i.y<=Math.max(e.y,r.y));if(e.y===r.y)return i.y===e.y&&(t||i.x>=Math.min(e.x,r.x)&&i.x<=Math.max(e.x,r.x));{let n=yt(e,r),f=yt(e,i).divide(n);return t?Math.abs(f.x)===Math.abs(f.y):f.x===f.y&&f.x>=0&&f.x<=1}}static isPointInPolygon(i,e){let r=new N(i).setX(Math.min(i.x-1,...e.map(n=>n.x))),t=0;for(let n=0;n4&&arguments[4]!==void 0)||arguments[4],f=!(arguments.length>5&&arguments[5]!==void 0)||arguments[5],o=e.x-i.x,a=e.y-i.y,A=t.x-r.x,l=t.y-r.y,k=i.x-r.x,u=i.y-r.y,h=A*u-l*k,c=o*u-a*k,d=l*o-A*a;if(d!==0){let b=h/d,g=c/d;return(n||0<=b&&b<=1)&&(f||0<=g&&g<=1)?new S0("Intersection").append(new N(i.x+b*o,i.y+b*a)):new S0}if(h===0||c===0){let b=n||f||S0.isPointContained(i,r,t)||S0.isPointContained(e,r,t)||S0.isPointContained(r,i,e)||S0.isPointContained(t,i,e);return new S0(b?"Coincident":void 0)}return new S0("Parallel")}static intersectSegmentLine(i,e,r,t){return S0.intersectLineLine(i,e,r,t,!1,!0)}static intersectSegmentSegment(i,e,r,t){return S0.intersectLineLine(i,e,r,t,!1,!1)}static intersectLinePolygon(i,e,r){let t=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],n=new S0,f=r.length;for(let o,a,A,l=0;l0&&(n.status="Intersection"),n}static intersectSegmentPolygon(i,e,r){return S0.intersectLinePolygon(i,e,r,!1)}static intersectPolygonPolygon(i,e){let r=new S0,t=i.length,n=[];for(let f=0;f0&&n.length===i.length?new S0("Coincident"):(r.points.length>0&&(r.status="Intersection"),r)}static intersectPolygonRectangle(i,e,r){let t=e.min(r),n=e.max(r),f=new N(n.x,t.y),o=new N(t.x,n.y);return S0.intersectPolygonPolygon(i,[t,f,n,o])}},t1=class extends mt{getX(){return this.getXY().x}setX(i){this.setXY(this.getXY().setX(i))}getY(){return this.getXY().y}setY(i){this.setXY(this.getXY().setY(i))}getRelativeX(){return this.left}setRelativeX(i){this.left=i}getRelativeY(){return this.top}setRelativeY(i){this.top=i}getXY(){let i=this.getRelativeXY();return this.group?ki(i,this.group.calcTransformMatrix()):i}setXY(i,e,r){this.group&&(i=ki(i,Vi(this.group.calcTransformMatrix()))),this.setRelativeXY(i,e,r)}getRelativeXY(){return new N(this.left,this.top)}setRelativeXY(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.originX,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.originY;this.setPositionByOrigin(i,e,r)}isStrokeAccountedForInDimensions(){return!1}getCoords(){let{tl:i,tr:e,br:r,bl:t}=this.aCoords||(this.aCoords=this.calcACoords()),n=[i,e,r,t];if(this.group){let f=this.group.calcTransformMatrix();return n.map(o=>ki(o,f))}return n}intersectsWithRect(i,e){return S0.intersectPolygonRectangle(this.getCoords(),i,e).status==="Intersection"}intersectsWithObject(i){let e=S0.intersectPolygonPolygon(this.getCoords(),i.getCoords());return e.status==="Intersection"||e.status==="Coincident"||i.isContainedWithinObject(this)||this.isContainedWithinObject(i)}isContainedWithinObject(i){return this.getCoords().every(e=>i.containsPoint(e))}isContainedWithinRect(i,e){let{left:r,top:t,width:n,height:f}=this.getBoundingRect();return r>=i.x&&r+n<=e.x&&t>=i.y&&t+f<=e.y}isOverlapping(i){return this.intersectsWithObject(i)||this.isContainedWithinObject(i)||i.isContainedWithinObject(this)}containsPoint(i){return S0.isPointInPolygon(i,this.getCoords())}isOnScreen(){if(!this.canvas)return!1;let{tl:i,br:e}=this.canvas.vptCoords;return!!this.getCoords().some(r=>r.x<=e.x&&r.x>=i.x&&r.y<=e.y&&r.y>=i.y)||!!this.intersectsWithRect(i,e)||this.containsPoint(i.midPointFrom(e))}isPartiallyOnScreen(){if(!this.canvas)return!1;let{tl:i,br:e}=this.canvas.vptCoords;return this.intersectsWithRect(i,e)?!0:this.getCoords().every(r=>(r.x>=e.x||r.x<=i.x)&&(r.y>=e.y||r.y<=i.y))&&this.containsPoint(i.midPointFrom(e))}getBoundingRect(){return oe(this.getCoords())}getScaledWidth(){return this._getTransformedDimensions().x}getScaledHeight(){return this._getTransformedDimensions().y}scale(i){this._set(gi,i),this._set(Gi,i),this.setCoords()}scaleToWidth(i){let e=this.getBoundingRect().width/this.getScaledWidth();return this.scale(i/this.width/e)}scaleToHeight(i){let e=this.getBoundingRect().height/this.getScaledHeight();return this.scale(i/this.height/e)}getCanvasRetinaScaling(){var i;return((i=this.canvas)===null||i===void 0?void 0:i.getRetinaScaling())||1}getTotalAngle(){return this.group?Me(vo(this.calcTransformMatrix())):this.angle}getViewportTransform(){var i;return((i=this.canvas)===null||i===void 0?void 0:i.viewportTransform)||bi.concat()}calcACoords(){let i=j2({angle:this.angle}),{x:e,y:r}=this.getRelativeCenterPoint(),t=U2(e,r),n=J0(t,i),f=this._getTransformedDimensions(),o=f.x/2,a=f.y/2;return{tl:ki({x:-o,y:-a},n),tr:ki({x:o,y:-a},n),bl:ki({x:-o,y:a},n),br:ki({x:o,y:a},n)}}setCoords(){this.aCoords=this.calcACoords()}transformMatrixKey(){let i=arguments.length>0&&arguments[0]!==void 0&&arguments[0],e=[];return!i&&this.group&&(e=this.group.transformMatrixKey(i)),e.push(this.top,this.left,this.width,this.height,this.scaleX,this.scaleY,this.angle,this.strokeWidth,this.skewX,this.skewY,+this.flipX,+this.flipY,ei(this.originX),ei(this.originY)),e}calcTransformMatrix(){let i=arguments.length>0&&arguments[0]!==void 0&&arguments[0],e=this.calcOwnMatrix();if(i||!this.group)return e;let r=this.transformMatrixKey(i),t=this.matrixCache;return t&&t.key.every((n,f)=>n===r[f])?t.value:(this.group&&(e=J0(this.group.calcTransformMatrix(!1),e)),this.matrixCache={key:r,value:e},e)}calcOwnMatrix(){let i=this.transformMatrixKey(!0),e=this.ownMatrixCache;if(e&&e.key===i)return e.value;let r=this.getRelativeCenterPoint(),t={angle:this.angle,translateX:r.x,translateY:r.y,scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,flipX:this.flipX,flipY:this.flipY},n=_o(t);return this.ownMatrixCache={key:i,value:n},n}_getNonTransformedDimensions(){return new N(this.width,this.height).scalarAdd(this.strokeWidth)}_calculateCurrentDimensions(i){return this._getTransformedDimensions(i).transform(this.getViewportTransform(),!0).scalarAdd(2*this.padding)}_getTransformedDimensions(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=D({scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,width:this.width,height:this.height,strokeWidth:this.strokeWidth},i),r=e.strokeWidth,t=r,n=0;this.strokeUniform&&(t=0,n=r);let f=e.width+t,o=e.height+t,a;return a=e.skewX===0&&e.skewY===0?new N(f*e.scaleX,o*e.scaleY):Ot(f,o,Br(e)),a.scalarAdd(n)}translateToGivenOrigin(i,e,r,t,n){let f=i.x,o=i.y,a=ei(t)-ei(e),A=ei(n)-ei(r);if(a||A){let l=this._getTransformedDimensions();f+=a*l.x,o+=A*l.y}return new N(f,o)}translateToCenterPoint(i,e,r){if(e===d0&&r===d0)return i;let t=this.translateToGivenOrigin(i,e,r,d0,d0);return this.angle?t.rotate(z0(this.angle),i):t}translateToOriginPoint(i,e,r){let t=this.translateToGivenOrigin(i,d0,d0,e,r);return this.angle?t.rotate(z0(this.angle),i):t}getCenterPoint(){let i=this.getRelativeCenterPoint();return this.group?ki(i,this.group.calcTransformMatrix()):i}getRelativeCenterPoint(){return this.translateToCenterPoint(new N(this.left,this.top),this.originX,this.originY)}getPointByOrigin(i,e){return this.translateToOriginPoint(this.getRelativeCenterPoint(),i,e)}setPositionByOrigin(i,e,r){let t=this.translateToCenterPoint(i,e,r),n=this.translateToOriginPoint(t,this.originX,this.originY);this.set({left:n.x,top:n.y})}_getLeftTopCoords(){return this.translateToOriginPoint(this.getRelativeCenterPoint(),E0,yi)}},js=["type"],Ls=["extraParam"],he=class ht extends t1{static getDefaults(){return ht.ownDefaults}get type(){let i=this.constructor.type;return i==="FabricObject"?"object":i.toLowerCase()}set type(i){Ge("warn","Setting type has no effect",i)}constructor(i){super(),V(this,"_cacheContext",null),Object.assign(this,ht.ownDefaults),this.setOptions(i)}_createCacheCanvas(){this._cacheCanvas=Ni(),this._cacheContext=this._cacheCanvas.getContext("2d"),this._updateCacheCanvas(),this.dirty=!0}_limitCacheSize(i){let e=i.width,r=i.height,t=x0.maxCacheSideLimit,n=x0.minCacheSideLimit;if(e<=t&&r<=t&&e*r<=x0.perfLimitSizeTotal)return eA&&(i.zoomX/=e/A,i.width=A,i.capped=!0),r>l&&(i.zoomY/=r/l,i.height=l,i.capped=!0),i}_getCacheCanvasDimensions(){let i=this.getTotalObjectScaling(),e=this._getTransformedDimensions({skewX:0,skewY:0}),r=e.x*i.x/this.scaleX,t=e.y*i.y/this.scaleY;return{width:Math.ceil(r+2),height:Math.ceil(t+2),zoomX:i.x,zoomY:i.y,x:r,y:t}}_updateCacheCanvas(){let i=this._cacheCanvas,e=this._cacheContext,{width:r,height:t,zoomX:n,zoomY:f,x:o,y:a}=this._limitCacheSize(this._getCacheCanvasDimensions()),A=r!==i.width||t!==i.height,l=this.zoomX!==n||this.zoomY!==f;if(!i||!e)return!1;if(A||l){r!==i.width||t!==i.height?(i.width=r,i.height=t):(e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,i.width,i.height));let k=o/2,u=a/2;return this.cacheTranslationX=Math.round(i.width/2-k)+k,this.cacheTranslationY=Math.round(i.height/2-u)+u,e.translate(this.cacheTranslationX,this.cacheTranslationY),e.scale(n,f),this.zoomX=n,this.zoomY=f,!0}return!1}setOptions(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setOptions(i)}transform(i){let e=this.group&&!this.group._transformDone||this.group&&this.canvas&&i===this.canvas.contextTop,r=this.calcTransformMatrix(!e);i.transform(r[0],r[1],r[2],r[3],r[4],r[5])}getObjectScaling(){if(!this.group)return new N(Math.abs(this.scaleX),Math.abs(this.scaleY));let i=R2(this.calcTransformMatrix());return new N(Math.abs(i.scaleX),Math.abs(i.scaleY))}getTotalObjectScaling(){let i=this.getObjectScaling();if(this.canvas){let e=this.canvas.getZoom(),r=this.getCanvasRetinaScaling();return i.scalarMultiply(e*r)}return i}getObjectOpacity(){let i=this.opacity;return this.group&&(i*=this.group.getObjectOpacity()),i}_constrainScale(i){return Math.abs(i){n.transform(t)}),e.parentClipPaths.push(i),i.absolutePositioned){let n=Vi(this.calcTransformMatrix());t.transform(n[0],n[1],n[2],n[3],n[4],n[5])}return i.transform(t),i.drawObject(t,!0,e),r}_drawClipPath(i,e,r){if(!e)return;e._transformDone=!0;let t=this.createClipPathLayer(e,r);this.drawClipPathOnCache(i,e,t)}drawCacheOnCanvas(i){i.scale(1/this.zoomX,1/this.zoomY),i.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)}isCacheDirty(){let i=arguments.length>0&&arguments[0]!==void 0&&arguments[0];if(this.isNotVisible())return!1;let e=this._cacheCanvas,r=this._cacheContext;return!(!e||!r||i||!this._updateCacheCanvas())||!!(this.dirty||this.clipPath&&this.clipPath.absolutePositioned)&&(e&&r&&!i&&(r.save(),r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,e.width,e.height),r.restore()),!0)}_renderBackground(i){if(!this.backgroundColor)return;let e=this._getNonTransformedDimensions();i.fillStyle=this.backgroundColor,i.fillRect(-e.x/2,-e.y/2,e.x,e.y),this._removeShadow(i)}_setOpacity(i){this.group&&!this.group._transformDone?i.globalAlpha=this.getObjectOpacity():i.globalAlpha*=this.opacity}_setStrokeStyles(i,e){let r=e.stroke;r&&(i.lineWidth=e.strokeWidth,i.lineCap=e.strokeLineCap,i.lineDashOffset=e.strokeDashOffset,i.lineJoin=e.strokeLineJoin,i.miterLimit=e.strokeMiterLimit,Ti(r)?r.gradientUnits==="percentage"||r.gradientTransform||r.patternTransform?this._applyPatternForTransformedGradient(i,r):(i.strokeStyle=r.toLive(i),this._applyPatternGradientTransform(i,r)):i.strokeStyle=e.stroke)}_setFillStyles(i,e){let{fill:r}=e;r&&(Ti(r)?(i.fillStyle=r.toLive(i),this._applyPatternGradientTransform(i,r)):i.fillStyle=r)}_setClippingProperties(i){i.globalAlpha=1,i.strokeStyle="transparent",i.fillStyle="#000000"}_setLineDash(i,e){e&&e.length!==0&&i.setLineDash(e)}_setShadow(i){if(!this.shadow)return;let e=this.shadow,r=this.canvas,t=this.getCanvasRetinaScaling(),[n,,,f]=(r==null?void 0:r.viewportTransform)||bi,o=n*t,a=f*t,A=e.nonScaling?new N(1,1):this.getObjectScaling();i.shadowColor=e.color,i.shadowBlur=e.blur*x0.browserShadowBlurConstant*(o+a)*(A.x+A.y)/4,i.shadowOffsetX=e.offsetX*o*A.x,i.shadowOffsetY=e.offsetY*a*A.y}_removeShadow(i){this.shadow&&(i.shadowColor="",i.shadowBlur=i.shadowOffsetX=i.shadowOffsetY=0)}_applyPatternGradientTransform(i,e){if(!Ti(e))return{offsetX:0,offsetY:0};let r=e.gradientTransform||e.patternTransform,t=-this.width/2+e.offsetX||0,n=-this.height/2+e.offsetY||0;return e.gradientUnits==="percentage"?i.transform(this.width,0,0,this.height,t,n):i.transform(1,0,0,1,t,n),r&&i.transform(r[0],r[1],r[2],r[3],r[4],r[5]),{offsetX:t,offsetY:n}}_renderPaintInOrder(i){this.paintFirst===xi?(this._renderStroke(i),this._renderFill(i)):(this._renderFill(i),this._renderStroke(i))}_render(i){}_renderFill(i){this.fill&&(i.save(),this._setFillStyles(i,this),this.fillRule==="evenodd"?i.fill("evenodd"):i.fill(),i.restore())}_renderStroke(i){if(this.stroke&&this.strokeWidth!==0){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(i),i.save(),this.strokeUniform){let e=this.getObjectScaling();i.scale(1/e.x,1/e.y)}this._setLineDash(i,this.strokeDashArray),this._setStrokeStyles(i,this),i.stroke(),i.restore()}}_applyPatternForTransformedGradient(i,e){var r;let t=this._limitCacheSize(this._getCacheCanvasDimensions()),n=this.getCanvasRetinaScaling(),f=t.x/this.scaleX/n,o=t.y/this.scaleY/n,a=re({width:Math.ceil(f),height:Math.ceil(o)}),A=a.getContext("2d");A&&(A.beginPath(),A.moveTo(0,0),A.lineTo(f,0),A.lineTo(f,o),A.lineTo(0,o),A.closePath(),A.translate(f/2,o/2),A.scale(t.zoomX/this.scaleX/n,t.zoomY/this.scaleY/n),this._applyPatternGradientTransform(A,e),A.fillStyle=e.toLive(i),A.fill(),i.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),i.scale(n*this.scaleX/t.zoomX,n*this.scaleY/t.zoomY),i.strokeStyle=(r=A.createPattern(a,"no-repeat"))!==null&&r!==void 0?r:"")}_findCenterFromElement(){return new N(this.left+this.width/2,this.top+this.height/2)}clone(i){let e=this.toObject(i);return this.constructor.fromObject(e)}cloneAsImage(i){let e=this.toCanvasElement(i);return new(r0.getClass("image"))(e)}toCanvasElement(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=X1(this),r=this.group,t=this.shadow,n=Math.abs,f=i.enableRetinaScaling?lo():1,o=(i.multiplier||1)*f,a=i.canvasProvider||(v=>new h2(v,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1}));delete this.group,i.withoutTransform&&Eo(this),i.withoutShadow&&(this.shadow=null),i.viewportTransform&&$n(this,this.getViewportTransform()),this.setCoords();let A=Ni(),l=this.getBoundingRect(),k=this.shadow,u=new N;if(k){let v=k.blur,w=k.nonScaling?new N(1,1):this.getObjectScaling();u.x=2*Math.round(n(k.offsetX)+v)*n(w.x),u.y=2*Math.round(n(k.offsetY)+v)*n(w.y)}let h=l.width+u.x,c=l.height+u.y;A.width=Math.ceil(h),A.height=Math.ceil(c);let d=a(A);i.format==="jpeg"&&(d.backgroundColor="#fff"),this.setPositionByOrigin(new N(d.width/2,d.height/2),d0,d0);let b=this.canvas;d._objects=[this],this.set("canvas",d),this.setCoords();let g=d.toCanvasElement(o||1,i);return this.set("canvas",b),this.shadow=t,r&&(this.group=r),this.set(e),this.setCoords(),d._objects=[],d.destroy(),g}toDataURL(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return I1(this.toCanvasElement(i),i.format||"png",i.quality||1)}isType(){for(var i=arguments.length,e=new Array(i),r=0;r{let[n,f]=t;return r[n]=this._animate(n,f,e),r},{})}_animate(i,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},t=i.split("."),n=this.constructor.colorProperties.includes(t[t.length-1]),{abort:f,startValue:o,onChange:a,onComplete:A}=r,l=D(D({},r),{},{target:this,startValue:o!=null?o:t.reduce((k,u)=>k[u],this),endValue:e,abort:f==null?void 0:f.bind(this),onChange:(k,u,h)=>{t.reduce((c,d,b)=>(b===t.length-1&&(c[d]=k),c[d]),this),a&&a(k,u,h)},onComplete:(k,u,h)=>{this.setCoords(),A&&A(k,u,h)}});return n?To(l):M1(l)}isDescendantOf(i){let{parent:e,group:r}=this;return e===i||r===i||!!e&&e.isDescendantOf(i)||!!r&&r!==e&&r.isDescendantOf(i)}getAncestors(){let i=[],e=this;do e=e.parent,e&&i.push(e);while(e);return i}findCommonAncestors(i){if(this===i)return{fork:[],otherFork:[],common:[this,...this.getAncestors()]};let e=this.getAncestors(),r=i.getAncestors();if(e.length===0&&r.length>0&&this===r[r.length-1])return{fork:[],otherFork:[i,...r.slice(0,r.length-1)],common:[this]};for(let t,n=0;n-1&&f>o}toObject(){let i=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).concat(ht.customProperties,this.constructor.customProperties||[]),e,r=x0.NUM_FRACTION_DIGITS,{clipPath:t,fill:n,stroke:f,shadow:o,strokeDashArray:a,left:A,top:l,originX:k,originY:u,width:h,height:c,strokeWidth:d,strokeLineCap:b,strokeDashOffset:g,strokeLineJoin:v,strokeUniform:w,strokeMiterLimit:p,scaleX:m,scaleY:C,angle:y,flipX:Z,flipY:_,opacity:x,visible:B,backgroundColor:I,fillRule:W,paintFirst:F,globalCompositeOperation:X,skewX:E,skewY:S}=this;t&&!t.excludeFromExport&&(e=t.toObject(i.concat("inverted","absolutePositioned")));let M=z=>P0(z,r),T=D(D({},g2(this,i)),{},{type:this.constructor.type,version:Jn,originX:k,originY:u,left:M(A),top:M(l),width:M(h),height:M(c),fill:Pf(n)?n.toObject():n,stroke:Pf(f)?f.toObject():f,strokeWidth:M(d),strokeDashArray:a&&a.concat(),strokeLineCap:b,strokeDashOffset:g,strokeLineJoin:v,strokeUniform:w,strokeMiterLimit:M(p),scaleX:M(m),scaleY:M(C),angle:M(y),flipX:Z,flipY:_,opacity:M(x),shadow:o&&o.toObject(),visible:B,backgroundColor:I,fillRule:W,paintFirst:F,globalCompositeOperation:X,skewX:M(E),skewY:M(S)},e?{clipPath:e}:null);return this.includeDefaultValues?T:this._removeDefaultValues(T)}toDatalessObject(i){return this.toObject(i)}_removeDefaultValues(i){let e=this.constructor.getDefaults(),r=Object.keys(e).length>0?e:Object.getPrototypeOf(this);return F1(i,(t,n)=>{if(n===E0||n===yi||n==="type")return!0;let f=r[n];return t!==f&&!(Array.isArray(t)&&Array.isArray(f)&&t.length===0&&f.length===0)})}toString(){return"#<".concat(this.constructor.type,">")}static _fromObject(i){let e=N0(i,js),r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{extraParam:t}=r,n=N0(r,Ls);return xr(e,n).then(f=>t?(delete f[t],new this(e[t],f)):new this(f))}static fromObject(i,e){return this._fromObject(i,e)}};V(he,"stateProperties",Ns),V(he,"cacheProperties",_e),V(he,"ownDefaults",Qs),V(he,"type","FabricObject"),V(he,"colorProperties",[ri,xi,"backgroundColor"]),V(he,"customProperties",[]),r0.setClass(he),r0.setClass(he,"object");var Re=(s,i,e)=>(r,t,n,f)=>{let o=i(r,t,n,f);return o&&V1(s,D(D({},G1(r,t,n,f)),e)),o};function p2(s){return(i,e,r,t)=>{let{target:n,originX:f,originY:o}=e,a=n.getRelativeCenterPoint(),A=n.translateToOriginPoint(a,f,o),l=s(i,e,r,t);return n.setPositionByOrigin(A,e.originX,e.originY),l}}var n1=Re(mr,p2((s,i,e,r)=>{let t=zt(i,i.originX,i.originY,e,r);if(ei(i.originX)===ei(d0)||ei(i.originX)===ei($0)&&t.x<0||ei(i.originX)===ei(E0)&&t.x>0){let{target:n}=i,f=n.strokeWidth/(n.strokeUniform?n.scaleX:1),o=Fo(i)?2:1,a=n.width,A=Math.abs(t.x*o/n.scaleX)-f;return n.set("width",Math.max(A,1)),a!==n.width}return!1}));function Ro(s,i,e,r,t){r=r||{};let n=this.sizeX||r.cornerSize||t.cornerSize,f=this.sizeY||r.cornerSize||t.cornerSize,o=r.transparentCorners!==void 0?r.transparentCorners:t.transparentCorners,a=o?xi:ri,A=!o&&(r.cornerStrokeColor||t.cornerStrokeColor),l,k=i,u=e;s.save(),s.fillStyle=r.cornerColor||t.cornerColor||"",s.strokeStyle=r.cornerStrokeColor||t.cornerStrokeColor||"",n>f?(l=n,s.scale(1,f/n),u=e*n/f):f>n?(l=f,s.scale(n/f,1),k=i*f/n):l=n,s.beginPath(),s.arc(k,u,l/2,0,ve,!1),s[a](),A&&s.stroke(),s.restore()}function Po(s,i,e,r,t){r=r||{};let n=this.sizeX||r.cornerSize||t.cornerSize,f=this.sizeY||r.cornerSize||t.cornerSize,o=r.transparentCorners!==void 0?r.transparentCorners:t.transparentCorners,a=o?xi:ri,A=!o&&(r.cornerStrokeColor||t.cornerStrokeColor),l=n/2,k=f/2;s.save(),s.fillStyle=r.cornerColor||t.cornerColor||"",s.strokeStyle=r.cornerStrokeColor||t.cornerStrokeColor||"",s.translate(i,e);let u=t.getTotalAngle();s.rotate(z0(u)),s["".concat(a,"Rect")](-l,-k,n,f),A&&s.strokeRect(-l,-k,n,f),s.restore()}var hi=class{constructor(i){V(this,"visible",!0),V(this,"actionName",Nt),V(this,"angle",0),V(this,"x",0),V(this,"y",0),V(this,"offsetX",0),V(this,"offsetY",0),V(this,"sizeX",0),V(this,"sizeY",0),V(this,"touchSizeX",0),V(this,"touchSizeY",0),V(this,"cursorStyle","crosshair"),V(this,"withConnection",!1),Object.assign(this,i)}shouldActivate(i,e,r,t){var n;let{tl:f,tr:o,br:a,bl:A}=t;return((n=e.canvas)===null||n===void 0?void 0:n.getActiveObject())===e&&e.isControlVisible(i)&&S0.isPointInPolygon(r,[f,o,a,A])}getActionHandler(i,e,r){return this.actionHandler}getMouseDownHandler(i,e,r){return this.mouseDownHandler}getMouseUpHandler(i,e,r){return this.mouseUpHandler}cursorStyleHandler(i,e,r){return e.cursorStyle}getActionName(i,e,r){return e.actionName}getVisibility(i,e){var r,t;return(r=(t=i._controlsVisibility)===null||t===void 0?void 0:t[e])!==null&&r!==void 0?r:this.visible}setVisibility(i,e,r){this.visible=i}positionHandler(i,e,r,t){return new N(this.x*i.x+this.offsetX,this.y*i.y+this.offsetY).transform(e)}calcCornerCoords(i,e,r,t,n,f){let o=Qt([U2(r,t),j2({angle:i}),Yt((n?this.touchSizeX:this.sizeX)||e,(n?this.touchSizeY:this.sizeY)||e)]);return{tl:new N(-.5,-.5).transform(o),tr:new N(.5,-.5).transform(o),br:new N(.5,.5).transform(o),bl:new N(-.5,.5).transform(o)}}render(i,e,r,t,n){((t=t||{}).cornerStyle||n.cornerStyle)==="circle"?Ro.call(this,i,e,r,t,n):Po.call(this,i,e,r,t,n)}},No=(s,i,e)=>e.lockRotation?_t:i.cursorStyle,Qo=Re(uo,p2((s,i,e,r)=>{let{target:t,ex:n,ey:f,theta:o,originX:a,originY:A}=i,l=t.translateToOriginPoint(t.getRelativeCenterPoint(),a,A);if(qi(t,"lockRotation"))return!1;let k=Math.atan2(f-l.y,n-l.x),u=Math.atan2(r-l.y,e-l.x),h=Me(u-k+o);if(t.snapAngle&&t.snapAngle>0){let d=t.snapAngle,b=t.snapThreshold||d,g=Math.ceil(h/d)*d,v=Math.floor(h/d)*d;Math.abs(h-v){let r=Yo(s,e);if(Oo(e,i.x!==0&&i.y===0?"x":i.x===0&&i.y!==0?"y":"",r))return _t;let t=Xo(e,i);return"".concat($s[t],"-resize")};function T1(s,i,e,r){let t=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{},n=i.target,f=t.by,o=Yo(s,n),a,A,l,k,u,h;if(Oo(n,f,o))return!1;if(i.gestureScale)A=i.scaleX*i.gestureScale,l=i.scaleY*i.gestureScale;else{if(a=zt(i,i.originX,i.originY,e,r),u=f!=="y"?Math.sign(a.x||i.signX||1):1,h=f!=="x"?Math.sign(a.y||i.signY||1):1,i.signX||(i.signX=u),i.signY||(i.signY=h),qi(n,"lockScalingFlip")&&(i.signX!==u||i.signY!==h))return!1;if(k=n._getTransformedDimensions(),o&&!f){let b=Math.abs(a.x)+Math.abs(a.y),{original:g}=i,v=b/(Math.abs(k.x*g.scaleX/n.scaleX)+Math.abs(k.y*g.scaleY/n.scaleY));A=g.scaleX*v,l=g.scaleY*v}else A=Math.abs(a.x*n.scaleX/k.x),l=Math.abs(a.y*n.scaleY/k.y);Fo(i)&&(A*=2,l*=2),i.signX!==u&&f!=="y"&&(i.originX=Yf(i.originX),A*=-1,i.signX=u),i.signY!==h&&f!=="x"&&(i.originY=Yf(i.originY),l*=-1,i.signY=h)}let c=n.scaleX,d=n.scaleY;return f?(f==="x"&&n.set(gi,A),f==="y"&&n.set(Gi,l)):(!qi(n,"lockScalingX")&&n.set(gi,A),!qi(n,"lockScalingY")&&n.set(Gi,l)),c!==n.scaleX||d!==n.scaleY}var ur=Re(Pt,p2((s,i,e,r)=>T1(s,i,e,r))),zo=Re(Pt,p2((s,i,e,r)=>T1(s,i,e,r,{by:"x"}))),Jo=Re(Pt,p2((s,i,e,r)=>T1(s,i,e,r,{by:"y"}))),qs=["target","ex","ey","skewingSide"],Tn={x:{counterAxis:"y",scale:gi,skew:J2,lockSkewing:"lockSkewingX",origin:"originX",flip:"flipX"},y:{counterAxis:"x",scale:Gi,skew:H2,lockSkewing:"lockSkewingY",origin:"originY",flip:"flipY"}},Ks=["ns","nesw","ew","nwse"],Ho=(s,i,e)=>{if(i.x!==0&&qi(e,"lockSkewingY")||i.y!==0&&qi(e,"lockSkewingX"))return _t;let r=Xo(e,i)%4;return"".concat(Ks[r],"-resize")};function Uo(s,i,e,r,t){let{target:n}=e,{counterAxis:f,origin:o,lockSkewing:a,skew:A,flip:l}=Tn[s];if(qi(n,a))return!1;let{origin:k,flip:u}=Tn[f],h=ei(e[k])*(n[u]?-1:1),c=-Math.sign(h)*(n[l]?-1:1),d=.5*-((n[A]===0&&zt(e,d0,d0,r,t)[s]>0||n[A]>0?1:-1)*c)+.5;return Re(ho,p2((g,v,w,p)=>function(m,C,y){let{target:Z,ex:_,ey:x,skewingSide:B}=C,I=N0(C,qs),{skew:W}=Tn[m],F=y.subtract(new N(_,x)).divide(new N(Z.scaleX,Z.scaleY))[m],X=Z[W],E=I[W],S=Math.tan(z0(E)),M=m==="y"?Z._getTransformedDimensions({scaleX:1,scaleY:1,skewX:0}).x:Z._getTransformedDimensions({scaleX:1,scaleY:1}).y,T=2*F*B/Math.max(M,1)+S,z=Me(Math.atan(T));Z.set(W,z);let R=X!==Z[W];if(R&&m==="y"){let{skewX:P,scaleX:G}=Z,Q=Z._getTransformedDimensions({skewY:X}),Y=Z._getTransformedDimensions(),K=P!==0?Q.x/Y.x:1;K!==1&&Z.set(gi,K*G)}return R}(s,v,new N(w,p))))(i,D(D({},e),{},{[o]:d,skewingSide:c}),r,t)}var jo=(s,i,e,r)=>Uo("x",s,i,e,r),Lo=(s,i,e,r)=>Uo("y",s,i,e,r);function Ut(s,i){return s[i.canvas.altActionKey]}var hr=(s,i,e)=>{let r=Ut(s,e);return i.x===0?r?J2:Gi:i.y===0?r?H2:gi:""},je=(s,i,e)=>Ut(s,e)?Ho(0,i,e):V2(s,i,e),f1=(s,i,e,r)=>Ut(s,i.target)?Lo(s,i,e,r):zo(s,i,e,r),o1=(s,i,e,r)=>Ut(s,i.target)?jo(s,i,e,r):Jo(s,i,e,r),R1=()=>({ml:new hi({x:-.5,y:0,cursorStyleHandler:je,actionHandler:f1,getActionName:hr}),mr:new hi({x:.5,y:0,cursorStyleHandler:je,actionHandler:f1,getActionName:hr}),mb:new hi({x:0,y:.5,cursorStyleHandler:je,actionHandler:o1,getActionName:hr}),mt:new hi({x:0,y:-.5,cursorStyleHandler:je,actionHandler:o1,getActionName:hr}),tl:new hi({x:-.5,y:-.5,cursorStyleHandler:V2,actionHandler:ur}),tr:new hi({x:.5,y:-.5,cursorStyleHandler:V2,actionHandler:ur}),bl:new hi({x:-.5,y:.5,cursorStyleHandler:V2,actionHandler:ur}),br:new hi({x:.5,y:.5,cursorStyleHandler:V2,actionHandler:ur}),mtr:new hi({x:0,y:-.5,actionHandler:Qo,cursorStyleHandler:No,offsetY:-40,withConnection:!0,actionName:x1})}),$o=()=>({mr:new hi({x:.5,y:0,actionHandler:n1,cursorStyleHandler:je,actionName:mr}),ml:new hi({x:-.5,y:0,actionHandler:n1,cursorStyleHandler:je,actionName:mr})}),qo=()=>D(D({},R1()),$o()),d2=class extends he{static getDefaults(){return D(D({},super.getDefaults()),d2.ownDefaults)}constructor(i){super(),Object.assign(this,this.constructor.createControls(),d2.ownDefaults),this.setOptions(i)}static createControls(){return{controls:R1()}}_updateCacheCanvas(){let i=this.canvas;if(this.noScaleCache&&i&&i._currentTransform){let e=i._currentTransform,r=e.target,t=e.action;if(this===r&&t&&t.startsWith(Nt))return!1}return super._updateCacheCanvas()}getActiveControl(){let i=this.__corner;return i?{key:i,control:this.controls[i],coord:this.oCoords[i]}:void 0}findControl(i){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(!this.hasControls||!this.canvas)return;this.__corner=void 0;let r=Object.entries(this.oCoords);for(let t=r.length-1;t>=0;t--){let[n,f]=r[t],o=this.controls[n];if(o.shouldActivate(n,this,i,e?f.touchCorner:f.corner))return this.__corner=n,{key:n,control:o,coord:this.oCoords[n]}}}calcOCoords(){let i=this.getViewportTransform(),e=this.getCenterPoint(),r=U2(e.x,e.y),t=j2({angle:this.getTotalAngle()-(this.group&&this.flipX?180:0)}),n=J0(r,t),f=J0(i,n),o=J0(f,[1/i[0],0,0,1/i[3],0,0]),a=this.group?R2(this.calcTransformMatrix()):void 0;a&&(a.scaleX=Math.abs(a.scaleX),a.scaleY=Math.abs(a.scaleY));let A=this._calculateCurrentDimensions(a),l={};return this.forEachControl((k,u)=>{let h=k.positionHandler(A,o,this,k);l[u]=Object.assign(h,this._calcCornerCoords(k,h))}),l}_calcCornerCoords(i,e){let r=this.getTotalAngle();return{corner:i.calcCornerCoords(r,this.cornerSize,e.x,e.y,!1,this),touchCorner:i.calcCornerCoords(r,this.touchCornerSize,e.x,e.y,!0,this)}}setCoords(){super.setCoords(),this.canvas&&(this.oCoords=this.calcOCoords())}forEachControl(i){for(let e in this.controls)i(this.controls[e],e,this)}drawSelectionBackground(i){if(!this.selectionBackgroundColor||this.canvas&&this.canvas._activeObject!==this)return;i.save();let e=this.getRelativeCenterPoint(),r=this._calculateCurrentDimensions(),t=this.getViewportTransform();i.translate(e.x,e.y),i.scale(1/t[0],1/t[3]),i.rotate(z0(this.angle)),i.fillStyle=this.selectionBackgroundColor,i.fillRect(-r.x/2,-r.y/2,r.x,r.y),i.restore()}strokeBorders(i,e){i.strokeRect(-e.x/2,-e.y/2,e.x,e.y)}_drawBorders(i,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},t=D({hasControls:this.hasControls,borderColor:this.borderColor,borderDashArray:this.borderDashArray},r);i.save(),i.strokeStyle=t.borderColor,this._setLineDash(i,t.borderDashArray),this.strokeBorders(i,e),t.hasControls&&this.drawControlsConnectingLines(i,e),i.restore()}_renderControls(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{hasBorders:r,hasControls:t}=this,n=D({hasBorders:r,hasControls:t},e),f=this.getViewportTransform(),o=n.hasBorders,a=n.hasControls,A=J0(f,this.calcTransformMatrix()),l=R2(A);i.save(),i.translate(l.translateX,l.translateY),i.lineWidth=this.borderScaleFactor,this.group===this.parent&&(i.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),this.flipX&&(l.angle-=180),i.rotate(z0(this.group?l.angle:this.angle)),o&&this.drawBorders(i,l,e),a&&this.drawControls(i,e),i.restore()}drawBorders(i,e,r){let t;if(r&&r.forActiveSelection||this.group){let n=Ot(this.width,this.height,Br(e)),f=this.isStrokeAccountedForInDimensions()?Z1:(this.strokeUniform?new N().scalarAdd(this.canvas?this.canvas.getZoom():1):new N(e.scaleX,e.scaleY)).scalarMultiply(this.strokeWidth);t=n.add(f).scalarAdd(this.borderScaleFactor).scalarAdd(2*this.padding)}else t=this._calculateCurrentDimensions().scalarAdd(this.borderScaleFactor);this._drawBorders(i,t,r)}drawControlsConnectingLines(i,e){let r=!1;i.beginPath(),this.forEachControl((t,n)=>{t.withConnection&&t.getVisibility(this,n)&&(r=!0,i.moveTo(t.x*e.x,t.y*e.y),i.lineTo(t.x*e.x+t.offsetX,t.y*e.y+t.offsetY))}),r&&i.stroke()}drawControls(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};i.save();let r=this.getCanvasRetinaScaling(),{cornerStrokeColor:t,cornerDashArray:n,cornerColor:f}=this,o=D({cornerStrokeColor:t,cornerDashArray:n,cornerColor:f},e);i.setTransform(r,0,0,r,0,0),i.strokeStyle=i.fillStyle=o.cornerColor,this.transparentCorners||(i.strokeStyle=o.cornerStrokeColor),this._setLineDash(i,o.cornerDashArray),this.forEachControl((a,A)=>{if(a.getVisibility(this,A)){let l=this.oCoords[A];a.render(i,l.x,l.y,o,this)}}),i.restore()}isControlVisible(i){return this.controls[i]&&this.controls[i].getVisibility(this,i)}setControlVisible(i,e){this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[i]=e}setControlsVisibility(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Object.entries(i).forEach(e=>{let[r,t]=e;return this.setControlVisible(r,t)})}clearContextTop(i){if(!this.canvas)return;let e=this.canvas.contextTop;if(!e)return;let r=this.canvas.viewportTransform;e.save(),e.transform(r[0],r[1],r[2],r[3],r[4],r[5]),this.transform(e);let t=this.width+4,n=this.height+4;return e.clearRect(-t/2,-n/2,t,n),i||e.restore(),e}onDeselect(i){return!1}onSelect(i){return!1}shouldStartDragging(i){return!1}onDragStart(i){return!1}canDrop(i){return!1}renderDragSourceEffect(i){}renderDropTargetEffect(i){}};function Ko(s,i){return i.forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(r=>{r!=="constructor"&&Object.defineProperty(s.prototype,r,Object.getOwnPropertyDescriptor(e.prototype,r)||Object.create(null))})}),s}V(d2,"ownDefaults",{noScaleCache:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,cornerSize:13,touchCornerSize:24,transparentCorners:!0,cornerColor:"rgb(178,204,255)",cornerStrokeColor:"",cornerStyle:"rect",cornerDashArray:null,hasControls:!0,borderColor:"rgb(178,204,255)",borderDashArray:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,hasBorders:!0,selectionBackgroundColor:"",selectable:!0,evented:!0,perPixelTargetFind:!1,activeOn:"down",hoverCursor:null,moveCursor:null});var q0=class extends d2{};Ko(q0,[Ct]),r0.setClass(q0),r0.setClass(q0,"object");var ia=(s,i,e,r)=>{let t=2*(r=Math.round(r))+1,{data:n}=s.getImageData(i-r,e-r,t,t);for(let f=3;f0)return!1;return!0},Zt=class{constructor(i){this.options=i,this.strokeProjectionMagnitude=this.options.strokeWidth/2,this.scale=new N(this.options.scaleX,this.options.scaleY),this.strokeUniformScalar=this.options.strokeUniform?new N(1/this.options.scaleX,1/this.options.scaleY):new N(1,1)}createSideVector(i,e){let r=yt(i,e);return this.options.strokeUniform?r.multiply(this.scale):r}projectOrthogonally(i,e,r){return this.applySkew(i.add(this.calcOrthogonalProjection(i,e,r)))}isSkewed(){return this.options.skewX!==0||this.options.skewY!==0}applySkew(i){let e=new N(i);return e.y+=e.x*Math.tan(z0(this.options.skewY)),e.x+=e.y*Math.tan(z0(this.options.skewX)),e}scaleUnitVector(i,e){return i.multiply(this.strokeUniformScalar).scalarMultiply(e)}},iA=new N,Xe=class extends Zt{static getOrthogonalRotationFactor(i,e){let r=e?xt(i,e):Do(i);return Math.abs(r)2&&arguments[2]!==void 0?arguments[2]:this.strokeProjectionMagnitude,t=this.createSideVector(i,e),n=S1(t),f=Xe.getOrthogonalRotationFactor(n,this.bisector);return this.scaleUnitVector(n,r*f)}projectBevel(){let i=[];return(this.alpha%ve==0?[this.B]:[this.B,this.C]).forEach(e=>{i.push(this.projectOrthogonally(this.A,e)),i.push(this.projectOrthogonally(this.A,e,-this.strokeProjectionMagnitude))}),i}projectMiter(){let i=[],e=Math.abs(this.alpha),r=1/Math.sin(e/2),t=this.scaleUnitVector(this.bisector,-this.strokeProjectionMagnitude*r),n=this.options.strokeUniform?Bt(this.scaleUnitVector(this.bisector,this.options.strokeMiterLimit)):this.options.strokeMiterLimit;return Bt(t)/this.strokeProjectionMagnitude<=n&&i.push(this.applySkew(this.A.add(t))),i.push(...this.projectBevel()),i}projectRoundNoSkew(i,e){let r=[],t=new N(Xe.getOrthogonalRotationFactor(this.bisector),Xe.getOrthogonalRotationFactor(new N(this.bisector.y,this.bisector.x)));return[new N(1,0).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar).multiply(t),new N(0,1).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar).multiply(t)].forEach(n=>{qn(n,i,e)&&r.push(this.A.add(n))}),r}projectRoundWithSkew(i,e){let r=[],{skewX:t,skewY:n,scaleX:f,scaleY:o,strokeUniform:a}=this.options,A=new N(Math.tan(z0(t)),Math.tan(z0(n))),l=this.strokeProjectionMagnitude,k=a?l/o/Math.sqrt(1/o**2+1/f**2*A.y**2):l/Math.sqrt(1+A.y**2),u=new N(Math.sqrt(Math.max(l**2-k**2,0)),k),h=a?l/Math.sqrt(1+A.x**2*(1/o)**2/(1/f+1/f*A.x*A.y)**2):l/Math.sqrt(1+A.x**2/(1+A.x*A.y)**2),c=new N(h,Math.sqrt(Math.max(l**2-h**2,0)));return[c,c.scalarMultiply(-1),u,u.scalarMultiply(-1)].map(d=>this.applySkew(a?d.multiply(this.strokeUniformScalar):d)).forEach(d=>{qn(d,i,e)&&r.push(this.applySkew(this.A).add(d))}),r}projectRound(){let i=[];i.push(...this.projectBevel());let e=this.alpha%ve==0,r=this.applySkew(this.A),t=i[e?0:2].subtract(r),n=i[e?1:0].subtract(r),f=e?this.applySkew(this.AB.scalarMultiply(-1)):this.applySkew(this.bisector.multiply(this.strokeUniformScalar).scalarMultiply(-1)),o=M2(t,f)>0,a=o?t:n,A=o?n:t;return this.isSkewed()?i.push(...this.projectRoundWithSkew(a,A)):i.push(...this.projectRoundNoSkew(a,A)),i}projectPoints(){switch(this.options.strokeLineJoin){case"miter":return this.projectMiter();case"round":return this.projectRound();default:return this.projectBevel()}}project(){return this.projectPoints().map(i=>({originPoint:this.A,projectedPoint:i,angle:this.alpha,bisector:this.bisector}))}},It=class extends Zt{constructor(i,e,r){super(r),this.A=new N(i),this.T=new N(e)}calcOrthogonalProjection(i,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.strokeProjectionMagnitude,t=this.createSideVector(i,e);return this.scaleUnitVector(S1(t),r)}projectButt(){return[this.projectOrthogonally(this.A,this.T,this.strokeProjectionMagnitude),this.projectOrthogonally(this.A,this.T,-this.strokeProjectionMagnitude)]}projectRound(){let i=[];if(!this.isSkewed()&&this.A.eq(this.T)){let e=new N(1,1).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar);i.push(this.applySkew(this.A.add(e)),this.applySkew(this.A.subtract(e)))}else i.push(...new Xe(this.A,this.T,this.T,this.options).projectRound());return i}projectSquare(){let i=[];if(this.A.eq(this.T)){let e=new N(1,1).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar);i.push(this.A.add(e),this.A.subtract(e))}else{let e=this.calcOrthogonalProjection(this.A,this.T,this.strokeProjectionMagnitude),r=this.scaleUnitVector(Ht(this.createSideVector(this.A,this.T)),-this.strokeProjectionMagnitude),t=this.A.add(r);i.push(t.add(e),t.subtract(e))}return i.map(e=>this.applySkew(e))}projectPoints(){switch(this.options.strokeLineCap){case"round":return this.projectRound();case"square":return this.projectSquare();default:return this.projectButt()}}project(){return this.projectPoints().map(i=>({originPoint:this.A,projectedPoint:i}))}},ea=function(s,i){let e=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=[];if(s.length===0)return r;let t=s.reduce((n,f)=>(n[n.length-1].eq(f)||n.push(new N(f)),n),[new N(s[0])]);if(t.length===1)e=!0;else if(!e){let n=t[0],f=((o,a)=>{for(let A=o.length-1;A>=0;A--)if(a(o[A],A,o))return A;return-1})(t,o=>!o.eq(n));t.splice(f+1)}return t.forEach((n,f,o)=>{let a,A;f===0?(A=o[1],a=e?n:o[o.length-1]):f===o.length-1?(a=o[f-1],A=e?n:o[0]):(a=o[f-1],A=o[f+1]),e&&o.length===1?r.push(...new It(n,n,i).project()):!e||f!==0&&f!==o.length-1?r.push(...new Xe(n,a,A,i).project()):r.push(...new It(n,f===0?A:a,i).project())}),r},P1=s=>{let i={};return Object.keys(s).forEach(e=>{i[e]={},Object.keys(s[e]).forEach(r=>{i[e][r]=D({},s[e][r])})}),i},ra=s=>s.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">"),jt=s=>{let i=[];for(let e,r=0;r{let e=s.charCodeAt(i);if(isNaN(e))return"";if(e<55296||e>57343)return s.charAt(i);if(55296<=e&&e<=56319){if(s.length<=i+1)throw"High surrogate without following low surrogate";let t=s.charCodeAt(i+1);if(56320>t||t>57343)throw"High surrogate without following low surrogate";return s.charAt(i)+s.charAt(i+1)}if(i===0)throw"Low surrogate without preceding high surrogate";let r=s.charCodeAt(i-1);if(55296>r||r>56319)throw"Low surrogate without preceding high surrogate";return!1},rA=Object.freeze({__proto__:null,capitalize:function(s){let i=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return"".concat(s.charAt(0).toUpperCase()).concat(i?s.slice(1):s.slice(1).toLowerCase())},escapeXml:ra,graphemeSplit:jt}),Lt=function(s,i){let e=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return s.fill!==i.fill||s.stroke!==i.stroke||s.strokeWidth!==i.strokeWidth||s.fontSize!==i.fontSize||s.fontFamily!==i.fontFamily||s.fontWeight!==i.fontWeight||s.fontStyle!==i.fontStyle||s.textBackgroundColor!==i.textBackgroundColor||s.deltaY!==i.deltaY||e&&(s.overline!==i.overline||s.underline!==i.underline||s.linethrough!==i.linethrough)},ta=(s,i)=>{let e=i.split(` +`),r=[],t=-1,n={};s=P1(s);for(let f=0;f0&&(Lt(n,A,!0)?r.push({start:t,end:t+1,style:A}):r[r.length-1].end++),n=A||{}}else t+=o.length,n={}}return r},na=(s,i)=>{if(!Array.isArray(s))return P1(s);let e=i.split(B1),r={},t=-1,n=0;for(let f=0;f{var i;return(i=Rs[s])!==null&&i!==void 0?i:s},fA=new RegExp("(".concat($i,")"),"gi"),oA=s=>s.replace(fA," $1 ").replace(/,/gi," ").replace(/\s+/gi," "),$f,qf,Kf,io,eo,ro,to,ci="(".concat($i,")"),aA=String.raw($f||($f=Te(["(skewX)(",")"],["(skewX)\\(","\\)"])),ci),sA=String.raw(qf||(qf=Te(["(skewY)(",")"],["(skewY)\\(","\\)"])),ci),AA=String.raw(Kf||(Kf=Te(["(rotate)(","(?: "," ",")?)"],["(rotate)\\(","(?: "," ",")?\\)"])),ci,ci,ci),lA=String.raw(io||(io=Te(["(scale)(","(?: ",")?)"],["(scale)\\(","(?: ",")?\\)"])),ci,ci),kA=String.raw(eo||(eo=Te(["(translate)(","(?: ",")?)"],["(translate)\\(","(?: ",")?\\)"])),ci,ci),uA=String.raw(ro||(ro=Te(["(matrix)("," "," "," "," "," ",")"],["(matrix)\\("," "," "," "," "," ","\\)"])),ci,ci,ci,ci,ci,ci),N1="(?:".concat(uA,"|").concat(kA,"|").concat(AA,"|").concat(lA,"|").concat(aA,"|").concat(sA,")"),hA="(?:".concat(N1,"*)"),cA=String.raw(to||(to=Te(["^s*(?:","?)s*$"],["^\\s*(?:","?)\\s*$"])),hA),dA=new RegExp(cA),bA=new RegExp(N1),gA=new RegExp(N1,"g");function a1(s){let i=[];if(!(s=oA(s).replace(/\s*([()])\s*/gi,"$1"))||s&&!dA.test(s))return[...bi];for(let e of s.matchAll(gA)){let r=bA.exec(e[0]);if(!r)continue;let t=bi,n=r.filter(c=>!!c),[,f,...o]=n,[a,A,l,k,u,h]=o.map(c=>parseFloat(c));switch(f){case"translate":t=U2(a,A);break;case x1:t=j2({angle:a},{x:A,y:l});break;case Nt:t=Yt(a,A);break;case J2:t=E1(a);break;case H2:t=W1(a);break;case"matrix":t=[a,A,l,k,u,h]}i.push(t)}return Qt(i)}function pA(s,i,e,r){let t=Array.isArray(i),n,f=i;if(s!==ri&&s!==xi||i!==Bi){if(s==="strokeUniform")return i==="non-scaling-stroke";if(s==="strokeDashArray")f=i===Bi?null:i.replace(/,/g," ").split(/\s+/).map(parseFloat);else if(s==="transformMatrix")f=e&&e.transformMatrix?J0(e.transformMatrix,a1(i)):a1(i);else if(s==="visible")f=i!==Bi&&i!=="hidden",e&&e.visible===!1&&(f=!1);else if(s==="opacity")f=parseFloat(i),e&&e.opacity!==void 0&&(f*=e.opacity);else if(s==="textAnchor")f=i==="start"?E0:i==="end"?$0:d0;else if(s==="charSpacing")n=u2(i,r)/r*1e3;else if(s==="paintFirst"){let o=i.indexOf(ri),a=i.indexOf(xi);f=ri,(o>-1&&a>-1&&a-1)&&(f=xi)}else{if(s==="href"||s==="xlink:href"||s==="font"||s==="id")return i;if(s==="imageSmoothing")return i==="optimizeQuality";n=t?i.map(u2):u2(i,r)}}else f="";return!t&&isNaN(n)?f:n}function mA(s,i){let e=s.match(Ts);if(!e)return;let r=e[1],t=e[3],n=e[4],f=e[5],o=e[6];r&&(i.fontStyle=r),t&&(i.fontWeight=isNaN(parseFloat(t))?t:parseFloat(t)),n&&(i.fontSize=u2(n)),o&&(i.fontFamily=o),f&&(i.lineHeight=f==="normal"?1:f)}function vA(s,i){s.replace(/;\s*$/,"").split(";").forEach(e=>{if(!e)return;let[r,t]=e.split(":");i[r.trim().toLowerCase()]=t.trim()})}function wA(s){let i={},e=s.getAttribute("style");return e&&(typeof e=="string"?vA(e,i):function(r,t){Object.entries(r).forEach(n=>{let[f,o]=n;o!==void 0&&(t[f.toLowerCase()]=o)})}(e,i)),i}var _A={stroke:"strokeOpacity",fill:"fillOpacity"};function Ce(s,i,e){if(!s)return{};let r,t={},n=y1;s.parentNode&&zf.test(s.parentNode.nodeName)&&(t=Ce(s.parentElement,i,e),t.fontSize&&(r=n=u2(t.fontSize)));let f=D(D(D({},i.reduce((A,l)=>{let k=s.getAttribute(l);return k&&(A[l]=k),A},{})),function(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},k={};for(let u in l)tA(A,u.split(" "))&&(k=D(D({},k),l[u]));return k}(s,e)),wA(s));f[Dn]&&s.setAttribute(Dn,f[Dn]),f[Gn]&&(r=u2(f[Gn],n),f[Gn]="".concat(r));let o={};for(let A in f){let l=nA(A),k=pA(l,f[A],t,r);o[l]=k}o&&o.font&&mA(o.font,o);let a=D(D({},t),o);return zf.test(s.nodeName)?a:function(A){let l=q0.getDefaults();return Object.entries(_A).forEach(k=>{let[u,h]=k;if(A[h]===void 0||A[u]==="")return;if(A[u]===void 0){if(!l[u])return;A[u]=l[u]}if(A[u].indexOf("url(")===0)return;let c=new Z0(A[u]);A[u]=c.setAlpha(P0(c.getAlpha()*A[h],2)).toRgba()}),A}(a)}var CA=["left","top","width","height","visible"],fa=["rx","ry"],Mi=class extends q0{static getDefaults(){return D(D({},super.getDefaults()),Mi.ownDefaults)}constructor(i){super(),Object.assign(this,Mi.ownDefaults),this.setOptions(i),this._initRxRy()}_initRxRy(){let{rx:i,ry:e}=this;i&&!e?this.ry=i:e&&!i&&(this.rx=e)}_render(i){let{width:e,height:r}=this,t=-e/2,n=-r/2,f=this.rx?Math.min(this.rx,e/2):0,o=this.ry?Math.min(this.ry,r/2):0,a=f!==0||o!==0;i.beginPath(),i.moveTo(t+f,n),i.lineTo(t+e-f,n),a&&i.bezierCurveTo(t+e-We*f,n,t+e,n+We*o,t+e,n+o),i.lineTo(t+e,n+r-o),a&&i.bezierCurveTo(t+e,n+r-We*o,t+e-We*f,n+r,t+e-f,n+r),i.lineTo(t+f,n+r),a&&i.bezierCurveTo(t+We*f,n+r,t,n+r-We*o,t,n+r-o),i.lineTo(t,n+o),a&&i.bezierCurveTo(t,n+We*o,t+We*f,n,t+f,n),i.closePath(),this._renderPaintInOrder(i)}toObject(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return super.toObject([...fa,...i])}_toSVG(){let{width:i,height:e,rx:r,ry:t}=this;return[" +`)]}static async fromElement(i,e,r){let t=Ce(i,this.ATTRIBUTE_NAMES,r),{left:n=0,top:f=0,width:o=0,height:a=0,visible:A=!0}=t,l=N0(t,CA);return new this(D(D(D({},e),l),{},{left:n,top:f,width:o,height:a,visible:Boolean(A&&o&&a)}))}};V(Mi,"type","Rect"),V(Mi,"cacheProperties",[..._e,...fa]),V(Mi,"ownDefaults",{rx:0,ry:0}),V(Mi,"ATTRIBUTE_NAMES",[...Pe,"x","y","rx","ry","width","height"]),r0.setClass(Mi),r0.setSVGClass(Mi);var de="initialization",Et="added",Q1="removed",Wt="imperative",oa=(s,i)=>{let{strokeUniform:e,strokeWidth:r,width:t,height:n,group:f}=i,o=f&&f!==s?Zr(f.calcTransformMatrix(),s.calcTransformMatrix()):null,a=o?i.getRelativeCenterPoint().transform(o):i.getRelativeCenterPoint(),A=!i.isStrokeAccountedForInDimensions(),l=e&&A?Wo(new N(r,r),void 0,s.calcTransformMatrix()):Z1,k=!e&&A?r:0,u=Ot(t+k,n+k,Qt([o,i.calcOwnMatrix()],!0)).add(l).scalarDivide(2);return[a.subtract(u),a.add(u)]},Q2=class{calcLayoutResult(i,e){if(this.shouldPerformLayout(i))return this.calcBoundingBox(e,i)}shouldPerformLayout(i){let{type:e,prevStrategy:r,strategy:t}=i;return e===de||e===Wt||!!r&&t!==r}shouldLayoutClipPath(i){let{type:e,target:{clipPath:r}}=i;return e!==de&&r&&!r.absolutePositioned}getInitialSize(i,e){return e.size}calcBoundingBox(i,e){let{type:r,target:t}=e;if(r===Wt&&e.overrides)return e.overrides;if(i.length===0)return;let{left:n,top:f,width:o,height:a}=oe(i.map(k=>oa(t,k)).reduce((k,u)=>k.concat(u),[])),A=new N(o,a),l=new N(n,f).add(A.scalarDivide(2));if(r===de){let k=this.getInitialSize(e,{size:A,center:l});return{center:l,relativeCorrection:new N(0,0),size:k}}return{center:l.transform(t.calcOwnMatrix()),size:A}}};V(Q2,"type","strategy");var Cr=class extends Q2{shouldPerformLayout(i){return!0}};V(Cr,"type","fit-content"),r0.setClass(Cr);var yA=["strategy"],BA=["target","strategy","bubbles","prevStrategy"],aa="layoutManager",b2=class{constructor(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:new Cr;V(this,"strategy",void 0),this.strategy=i,this._subscriptions=new Map}performLayout(i){let e=D(D({bubbles:!0,strategy:this.strategy},i),{},{prevStrategy:this._prevLayoutStrategy,stopPropagation(){this.bubbles=!1}});this.onBeforeLayout(e);let r=this.getLayoutResult(e);r&&this.commitLayout(e,r),this.onAfterLayout(e,r),this._prevLayoutStrategy=e.strategy}attachHandlers(i,e){let{target:r}=e;return[gt,ko,mr,uo,Pt,ho,bt,co,Xs].map(t=>i.on(t,n=>this.performLayout(t===gt?{type:"object_modified",trigger:t,e:n,target:r}:{type:"object_modifying",trigger:t,e:n,target:r})))}subscribe(i,e){this.unsubscribe(i,e);let r=this.attachHandlers(i,e);this._subscriptions.set(i,r)}unsubscribe(i,e){(this._subscriptions.get(i)||[]).forEach(r=>r()),this._subscriptions.delete(i)}unsubscribeTargets(i){i.targets.forEach(e=>this.unsubscribe(e,i))}subscribeTargets(i){i.targets.forEach(e=>this.subscribe(e,i))}onBeforeLayout(i){let{target:e,type:r}=i,{canvas:t}=e;if(r===de||r===Et?this.subscribeTargets(i):r===Q1&&this.unsubscribeTargets(i),e.fire("layout:before",{context:i}),t&&t.fire("object:layout:before",{target:e,context:i}),r===Wt&&i.deep){let n=N0(i,yA);e.forEachObject(f=>f.layoutManager&&f.layoutManager.performLayout(D(D({},n),{},{bubbles:!1,target:f})))}}getLayoutResult(i){let{target:e,strategy:r,type:t}=i,n=r.calcLayoutResult(i,e.getObjects());if(!n)return;let f=t===de?new N:e.getRelativeCenterPoint(),{center:o,correction:a=new N,relativeCorrection:A=new N}=n,l=f.subtract(o).add(a).transform(t===de?bi:Vi(e.calcOwnMatrix()),!0).add(A);return{result:n,prevCenter:f,nextCenter:o,offset:l}}commitLayout(i,e){let{target:r}=i,{result:{size:t},nextCenter:n}=e;var f,o;r.set({width:t.x,height:t.y}),this.layoutObjects(i,e),i.type===de?r.set({left:(f=i.x)!==null&&f!==void 0?f:n.x+t.x*ei(r.originX),top:(o=i.y)!==null&&o!==void 0?o:n.y+t.y*ei(r.originY)}):(r.setPositionByOrigin(n,d0,d0),r.setCoords(),r.set("dirty",!0))}layoutObjects(i,e){let{target:r}=i;r.forEachObject(t=>{t.group===r&&this.layoutObject(i,e,t)}),i.strategy.shouldLayoutClipPath(i)&&this.layoutObject(i,e,r.clipPath)}layoutObject(i,e,r){let{offset:t}=e;r.set({left:r.left+t.x,top:r.top+t.y})}onAfterLayout(i,e){let{target:r,strategy:t,bubbles:n,prevStrategy:f}=i,o=N0(i,BA),{canvas:a}=r;r.fire("layout:after",{context:i,result:e}),a&&a.fire("object:layout:after",{context:i,result:e,target:r});let A=r.parent;n&&A!=null&&A.layoutManager&&((o.path||(o.path=[])).push(r),A.layoutManager.performLayout(D(D({},o),{},{target:A}))),r.set("dirty",!0)}dispose(){let{_subscriptions:i}=this;i.forEach(e=>e.forEach(r=>r())),i.clear()}toObject(){return{type:aa,strategy:this.strategy.constructor.type}}toJSON(){return this.toObject()}};r0.setClass(b2,aa);var xA=["type","objects","layoutManager"],s1=class extends b2{performLayout(){}},Ki=class extends bo(q0){static getDefaults(){return D(D({},super.getDefaults()),Ki.ownDefaults)}constructor(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),V(this,"_activeObjects",[]),V(this,"__objectSelectionTracker",void 0),V(this,"__objectSelectionDisposer",void 0),Object.assign(this,Ki.ownDefaults),this.setOptions(e),this.groupInit(i,e)}groupInit(i,e){var r;this._objects=[...i],this.__objectSelectionTracker=this.__objectSelectionMonitor.bind(this,!0),this.__objectSelectionDisposer=this.__objectSelectionMonitor.bind(this,!1),this.forEachObject(t=>{this.enterGroup(t,!1)}),this.layoutManager=(r=e.layoutManager)!==null&&r!==void 0?r:new b2,this.layoutManager.performLayout({type:de,target:this,targets:[...i],x:e.left,y:e.top})}canEnterGroup(i){return i===this||this.isDescendantOf(i)?(Ge("error","Group: circular object trees are not supported, this call has no effect"),!1):this._objects.indexOf(i)===-1||(Ge("error","Group: duplicate objects are not supported inside group, this call has no effect"),!1)}_filterObjectsBeforeEnteringGroup(i){return i.filter((e,r,t)=>this.canEnterGroup(e)&&t.indexOf(e)===r)}add(){for(var i=arguments.length,e=new Array(i),r=0;r1?e-1:0),t=1;t{t._set(i,e)}),this}_shouldSetNestedCoords(){return this.subTargetCheck}removeAll(){return this._activeObjects=[],this.remove(...this._objects)}__objectSelectionMonitor(i,e){let{target:r}=e,t=this._activeObjects;if(i)t.push(r),this._set("dirty",!0);else if(t.length>0){let n=t.indexOf(r);n>-1&&(t.splice(n,1),this._set("dirty",!0))}}_watchObject(i,e){i&&this._watchObject(!1,e),i?(e.on("selected",this.__objectSelectionTracker),e.on("deselected",this.__objectSelectionDisposer)):(e.off("selected",this.__objectSelectionTracker),e.off("deselected",this.__objectSelectionDisposer))}enterGroup(i,e){i.group&&i.group.remove(i),i._set("parent",this),this._enterGroup(i,e)}_enterGroup(i,e){e&&N2(i,J0(Vi(this.calcTransformMatrix()),i.calcTransformMatrix())),this._shouldSetNestedCoords()&&i.setCoords(),i._set("group",this),i._set("canvas",this.canvas),this._watchObject(!0,i);let r=this.canvas&&this.canvas.getActiveObject&&this.canvas.getActiveObject();r&&(r===i||i.isDescendantOf(r))&&this._activeObjects.push(i)}exitGroup(i,e){this._exitGroup(i,e),i._set("parent",void 0),i._set("canvas",void 0)}_exitGroup(i,e){i._set("group",void 0),e||(N2(i,J0(this.calcTransformMatrix(),i.calcTransformMatrix())),i.setCoords()),this._watchObject(!1,i);let r=this._activeObjects.length>0?this._activeObjects.indexOf(i):-1;r>-1&&this._activeObjects.splice(r,1)}shouldCache(){let i=q0.prototype.shouldCache.call(this);if(i){for(let e=0;ei.setCoords())}triggerLayout(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.layoutManager.performLayout(D({target:this,type:Wt},i))}render(i){this._transformDone=!0,super.render(i),this._transformDone=!1}__serializeObjects(i,e){let r=this.includeDefaultValues;return this._objects.filter(function(t){return!t.excludeFromExport}).map(function(t){let n=t.includeDefaultValues;t.includeDefaultValues=r;let f=t[i||"toObject"](e);return t.includeDefaultValues=n,f})}toObject(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=this.layoutManager.toObject();return D(D(D({},super.toObject(["subTargetCheck","interactive",...i])),e.strategy!=="fit-content"||this.includeDefaultValues?{layoutManager:e}:{}),{},{objects:this.__serializeObjects("toObject",i)})}toString(){return"#")}dispose(){this.layoutManager.unsubscribeTargets({targets:this.getObjects(),target:this}),this._activeObjects=[],this.forEachObject(i=>{this._watchObject(!1,i),i.dispose()}),super.dispose()}_createSVGBgRect(i){if(!this.backgroundColor)return"";let e=Mi.prototype._toSVG.call(this),r=e.indexOf("COMMON_PARTS");e[r]='for="group" ';let t=e.join("");return i?i(t):t}_toSVG(i){let e=[" +`],r=this._createSVGBgRect(i);r&&e.push(" ",r);for(let t=0;t +`),e}getSvgStyles(){let i=this.opacity!==void 0&&this.opacity!==1?"opacity: ".concat(this.opacity,";"):"",e=this.visible?"":" visibility: hidden;";return[i,this.getSvgFilter(),e].join("")}toClipPathSVG(i){let e=[],r=this._createSVGBgRect(i);r&&e.push(" ",r);for(let t=0;t{let[a,A]=o,l=new this(a,D(D(D({},f),A),{},{layoutManager:new s1}));if(n){let k=r0.getClass(n.type),u=r0.getClass(n.strategy);l.layoutManager=new k(new u)}else l.layoutManager=new b2;return l.layoutManager.subscribeTargets({type:de,target:l,targets:l.getObjects()}),l.setCoords(),l})}};V(Ki,"type","Group"),V(Ki,"ownDefaults",{strokeWidth:0,subTargetCheck:!1,interactive:!1}),r0.setClass(Ki);var sa=(s,i)=>Math.min(i.width/s.width,i.height/s.height),Aa=(s,i)=>Math.max(i.width/s.width,i.height/s.height),A1="\\s*,?\\s*",kr="".concat(A1,"(").concat($i,")"),ZA="".concat(kr).concat(kr).concat(kr).concat(A1,"([01])").concat(A1,"([01])").concat(kr).concat(kr),IA={m:"l",M:"L"},EA=(s,i,e,r,t,n,f,o,a,A,l)=>{let k=ie(s),u=ee(s),h=ie(i),c=ee(i),d=e*t*h-r*n*c+f,b=r*t*h+e*n*c+o;return["C",A+a*(-e*t*u-r*n*k),l+a*(-r*t*u+e*n*k),d+a*(e*t*c+r*n*h),b+a*(r*t*c-e*n*h),d,b]},no=(s,i,e,r)=>{let t=Math.atan2(i,s),n=Math.atan2(r,e);return n>=t?n-t:2*Math.PI-(t-n)};function l1(s,i,e,r,t,n,f,o){let a;if(x0.cachesBoundsOfCurve&&(a=[...arguments].join(),cr.boundsOfCurveCache[a]))return cr.boundsOfCurveCache[a];let A=Math.sqrt,l=Math.abs,k=[],u=[[0,0],[0,0]],h=6*s-12*e+6*t,c=-3*s+9*e-9*t+3*f,d=3*e-3*s;for(let p=0;p<2;++p){if(p>0&&(h=6*i-12*r+6*n,c=-3*i+9*r-9*n+3*o,d=3*r-3*i),l(c)<1e-12){if(l(h)<1e-12)continue;let _=-d/h;0<_&&_<1&&k.push(_);continue}let m=h*h-4*d*c;if(m<0)continue;let C=A(m),y=(-h+C)/(2*c);0{let[r,t,n,f,o,a,A,l]=e,k=((u,h,c,d,b,g,v)=>{if(c===0||d===0)return[];let w=0,p=0,m=0,C=Math.PI,y=v*C1,Z=ee(y),_=ie(y),x=.5*(-_*u-Z*h),B=.5*(-_*h+Z*u),I=c**2,W=d**2,F=B**2,X=x**2,E=I*W-I*F-W*X,S=Math.abs(c),M=Math.abs(d);if(E<0){let J=Math.sqrt(1-E/(I*W));S*=J,M*=J}else m=(b===g?-1:1)*Math.sqrt(E/(I*F+W*X));let T=m*S*B/M,z=-m*M*x/S,R=_*T-Z*z+.5*u,P=Z*T+_*z+.5*h,G=no(1,0,(x-T)/S,(B-z)/M),Q=no((x-T)/S,(B-z)/M,(-x-T)/S,(-B-z)/M);g===0&&Q>0?Q-=2*C:g===1&&Q<0&&(Q+=2*C);let Y=Math.ceil(Math.abs(Q/C*2)),K=[],O=Q/Y,H=8/3*Math.sin(O/4)*Math.sin(O/4)/Math.sin(O/2),j=G+O;for(let J=0;J{let i=0,e=0,r=0,t=0,n=[],f,o=0,a=0;for(let A of s){let l=[...A],k;switch(l[0]){case"l":l[1]+=i,l[2]+=e;case"L":i=l[1],e=l[2],k=["L",i,e];break;case"h":l[1]+=i;case"H":i=l[1],k=["L",i,e];break;case"v":l[1]+=e;case"V":e=l[1],k=["L",i,e];break;case"m":l[1]+=i,l[2]+=e;case"M":i=l[1],e=l[2],r=l[1],t=l[2],k=["M",i,e];break;case"c":l[1]+=i,l[2]+=e,l[3]+=i,l[4]+=e,l[5]+=i,l[6]+=e;case"C":o=l[3],a=l[4],i=l[5],e=l[6],k=["C",l[1],l[2],o,a,i,e];break;case"s":l[1]+=i,l[2]+=e,l[3]+=i,l[4]+=e;case"S":f==="C"?(o=2*i-o,a=2*e-a):(o=i,a=e),i=l[3],e=l[4],k=["C",o,a,l[1],l[2],i,e],o=k[3],a=k[4];break;case"q":l[1]+=i,l[2]+=e,l[3]+=i,l[4]+=e;case"Q":o=l[1],a=l[2],i=l[3],e=l[4],k=["Q",o,a,i,e];break;case"t":l[1]+=i,l[2]+=e;case"T":f==="Q"?(o=2*i-o,a=2*e-a):(o=i,a=e),i=l[1],e=l[2],k=["Q",o,a,i,e];break;case"a":l[6]+=i,l[7]+=e;case"A":WA(i,e,l).forEach(u=>n.push(u)),i=l[6],e=l[7];break;case"z":case"Z":i=r,e=t,k=["Z"]}k?(n.push(k),f=k[0]):f=""}return n},Ft=(s,i,e,r)=>Math.sqrt((e-s)**2+(r-i)**2),ka=(s,i,e,r,t,n,f,o)=>a=>{let A=a**3,l=(h=>3*h**2*(1-h))(a),k=(h=>3*h*(1-h)**2)(a),u=(h=>(1-h)**3)(a);return new N(f*A+t*l+e*k+s*u,o*A+n*l+r*k+i*u)},ua=s=>s**2,ha=s=>2*s*(1-s),ca=s=>(1-s)**2,FA=(s,i,e,r,t,n,f,o)=>a=>{let A=ua(a),l=ha(a),k=ca(a),u=3*(k*(e-s)+l*(t-e)+A*(f-t)),h=3*(k*(r-i)+l*(n-r)+A*(o-n));return Math.atan2(h,u)},XA=(s,i,e,r,t,n)=>f=>{let o=ua(f),a=ha(f),A=ca(f);return new N(t*o+e*a+s*A,n*o+r*a+i*A)},VA=(s,i,e,r,t,n)=>f=>{let o=1-f,a=2*(o*(e-s)+f*(t-e)),A=2*(o*(r-i)+f*(n-r));return Math.atan2(A,a)},fo=(s,i,e)=>{let r=new N(i,e),t=0;for(let n=1;n<=100;n+=1){let f=s(n/100);t+=Ft(r.x,r.y,f.x,f.y),r=f}return t},GA=(s,i)=>{let e,r=0,t=0,n={x:s.x,y:s.y},f=D({},n),o=.01,a=0,A=s.iterator,l=s.angleFinder;for(;t1e-4;)f=A(r),a=r,e=Ft(n.x,n.y,f.x,f.y),e+t>i?(r-=o,o/=2):(n=f,r+=o,t+=e);return D(D({},f),{},{angle:l(a)})},Y1=s=>{let i,e,r=0,t=0,n=0,f=0,o=0,a=[];for(let A of s){let l={x:t,y:n,command:A[0],length:0};switch(A[0]){case"M":e=l,e.x=f=t=A[1],e.y=o=n=A[2];break;case"L":e=l,e.length=Ft(t,n,A[1],A[2]),t=A[1],n=A[2];break;case"C":i=ka(t,n,A[1],A[2],A[3],A[4],A[5],A[6]),e=l,e.iterator=i,e.angleFinder=FA(t,n,A[1],A[2],A[3],A[4],A[5],A[6]),e.length=fo(i,t,n),t=A[5],n=A[6];break;case"Q":i=XA(t,n,A[1],A[2],A[3],A[4]),e=l,e.iterator=i,e.angleFinder=VA(t,n,A[1],A[2],A[3],A[4]),e.length=fo(i,t,n),t=A[3],n=A[4];break;case"Z":e=l,e.destX=f,e.destY=o,e.length=Ft(t,n,f,o),t=f,n=o}r+=e.length,a.push(e)}return a.push({length:r,x:t,y:n}),a},da=function(s,i){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Y1(s),r=0;for(;i-e[r].length>0&&r{var i;let e=[],r=(i=s.match(DA))!==null&&i!==void 0?i:[];for(let t of r){let n=t[0];if(n==="z"||n==="Z"){e.push([n]);continue}let f=MA[n.toLowerCase()],o=[];if(n==="a"||n==="A"){oo.lastIndex=0;for(let a=null;a=oo.exec(t);)o.push(...a.slice(1))}else o=t.match(SA)||[];for(let a=0;a0&&l?l:n;for(let k=0;k1&&arguments[1]!==void 0?arguments[1]:0,e=new N(s[0]),r=new N(s[1]),t=1,n=0,f=[],o=s.length,a=o>2,A;for(a&&(t=s[2].xs[A-2].x?1:e.x===s[A-2].x?0:-1,n=e.y>s[A-2].y?1:e.y===s[A-2].y?0:-1),f.push(["L",e.x+t*i,e.y+n*i]),f},O1=(s,i)=>s.map(e=>e.map((r,t)=>t===0||i===void 0?r:P0(r,i)).join(" ")).join(" ");function Xt(s,i){let e=s.style;e&&i&&(typeof i=="string"?e.cssText+=";"+i:Object.entries(i).forEach(r=>{let[t,n]=r;return e.setProperty(t,n)}))}var TA=(s,i)=>Math.floor(Math.random()*(i-s+1))+s;function RA(s){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e=i.onComplete||k2,r=new(Rt()).XMLHttpRequest,t=i.signal,n=function(){r.abort()},f=function(){t&&t.removeEventListener("abort",n),r.onerror=r.ontimeout=k2};if(t&&t.aborted)throw new dt("request");return t&&t.addEventListener("abort",n,{once:!0}),r.onreadystatechange=function(){r.readyState===4&&(f(),e(r),r.onreadystatechange=k2)},r.onerror=r.ontimeout=f,r.open("get",s,!0),r.send(),r}var PA=(s,i)=>{let e=s._findCenterFromElement();s.transformMatrix&&((r=>{if(r.transformMatrix){let{scaleX:t,scaleY:n,angle:f,skewX:o}=R2(r.transformMatrix);r.flipX=!1,r.flipY=!1,r.set(gi,t),r.set(Gi,n),r.angle=f,r.skewX=o,r.skewY=0}})(s),e=e.transform(s.transformMatrix)),delete s.transformMatrix,i&&(s.scaleX*=i.scaleX,s.scaleY*=i.scaleY,s.cropX=i.cropX,s.cropY=i.cropY,e.x+=i.offsetLeft,e.y+=i.offsetTop,s.width=i.width,s.height=i.height),s.setPositionByOrigin(e,d0,d0)},z1=Object.freeze({__proto__:null,addTransformToObject:Io,animate:M1,animateColor:To,applyTransformToObject:N2,calcAngleBetweenVectors:xt,calcDimensionsMatrix:Br,calcPlaneChangeMatrix:Zr,calcVectorRotation:Do,cancelAnimFrame:go,capValue:c2,composeMatrix:_o,copyCanvasElement:s=>{var i;let e=re(s);return(i=e.getContext("2d"))===null||i===void 0||i.drawImage(s,0,0),e},cos:ie,createCanvasElement:Ni,createImage:po,createRotateMatrix:j2,createScaleMatrix:Yt,createSkewXMatrix:E1,createSkewYMatrix:W1,createTranslateMatrix:U2,createVector:yt,crossProduct:M2,degreesToRadians:z0,dotProduct:So,ease:Ys,enlivenObjectEnlivables:xr,enlivenObjects:P2,findScaleToCover:Aa,findScaleToFit:sa,getBoundsOfCurve:l1,getOrthonormalVector:S1,getPathSegmentsInfo:Y1,getPointOnPath:da,getPointer:Zo,getRandomInt:TA,getRegularPolygonPath:(s,i)=>{let e=2*Math.PI/s,r=-De;s%2==0&&(r+=e/2);let t=new Array(s+1);for(let n=0;n{let i=["instantiated_by_use","style","id","class"];switch(s){case"linearGradient":return i.concat(["x1","y1","x2","y2","gradientUnits","gradientTransform"]);case"radialGradient":return i.concat(["gradientUnits","gradientTransform","cx","cy","r","fx","fy","fr"]);case"stop":return i.concat(["offset","stop-color","stop-opacity"])}return i},getUnitVector:Ht,groupSVGElements:(s,i)=>s&&s.length===1?s[0]:new Ki(s,i),hasStyleChanged:Lt,invertTransform:Vi,isBetweenVectors:qn,isIdentityMatrix:mo,isTouchEvent:wt,isTransparent:ia,joinPath:O1,loadImage:br,magnitude:Bt,makeBoundingBoxFromPoints:oe,makePathSimpler:la,matrixToSVG:vr,mergeClipPaths:(s,i)=>{var e;let r=s,t=i;r.inverted&&!t.inverted&&(r=i,t=s),$n(t,(e=t.group)===null||e===void 0?void 0:e.calcTransformMatrix(),r.calcTransformMatrix());let n=r.inverted&&t.inverted;return n&&(r.inverted=t.inverted=!1),new Ki([r],{clipPath:t,inverted:n})},multiplyTransformMatrices:J0,multiplyTransformMatrixArray:Qt,parsePath:ba,parsePreserveAspectRatioAttribute:Co,parseUnit:u2,pick:g2,projectStrokeOnPoints:ea,qrDecompose:R2,radiansToDegrees:Me,removeFromArray:He,removeTransformFromObject:(s,i)=>{let e=Vi(i),r=J0(e,s.calcOwnMatrix());N2(s,r)},removeTransformMatrixForSvgParsing:PA,request:RA,requestAnimFrame:dr,resetObjectTransform:Eo,rotatePoint:(s,i,e)=>s.rotate(e,i),rotateVector:D1,saveObjectTransform:X1,sendObjectToPlane:$n,sendPointToPlane:me,sendVectorToPlane:Wo,setStyle:Xt,sin:ee,sizeAfterTransform:Ot,string:rA,stylesFromArray:na,stylesToArray:ta,toDataURL:I1,toFixed:P0,transformPath:(s,i,e)=>(e&&(i=J0(i,[1,0,0,1,-e.x,-e.y])),s.map(r=>{let t=[...r];for(let n=1;n1&&arguments[1]!==void 0?arguments[1]:{};super(i),V(this,"upper",void 0),V(this,"container",void 0);let{el:t}=this.lower,n=this.createUpperCanvas();this.upper={el:n,ctx:n.getContext("2d")},this.applyCanvasStyle(t,{allowTouchScrolling:e}),this.applyCanvasStyle(n,{allowTouchScrolling:e,styles:{position:"absolute",left:"0",top:"0"}});let f=this.createContainerElement();f.classList.add(r),t.parentNode&&t.parentNode.replaceChild(f,t),f.append(t,n),this.container=f}createUpperCanvas(){let{el:i}=this.lower,e=Ni();return e.className=i.className,e.classList.remove("lower-canvas"),e.classList.add("upper-canvas"),e.setAttribute("data-fabric","top"),e.style.cssText=i.style.cssText,e.setAttribute("draggable","true"),e}createContainerElement(){let i=z2().createElement("div");return i.setAttribute("data-fabric","wrapper"),Xt(i,{position:"relative"}),Qf(i),i}applyCanvasStyle(i,e){let{styles:r,allowTouchScrolling:t}=e;Xt(i,D(D({},r),{},{"touch-action":t?"manipulation":Bi})),Qf(i)}setDimensions(i,e){super.setDimensions(i,e);let{el:r,ctx:t}=this.upper;xo(r,t,i,e)}setCSSDimensions(i){super.setCSSDimensions(i),jn(this.upper.el,i),jn(this.container,i)}cleanupDOM(i){let e=this.container,{el:r}=this.lower,{el:t}=this.upper;super.cleanupDOM(i),e.removeChild(t),e.removeChild(r),e.parentNode&&e.parentNode.replaceChild(r,e)}dispose(){super.dispose(),ae().dispose(this.upper.el),delete this.upper,delete this.container}},Y2=class extends h2{constructor(){super(...arguments),V(this,"targets",[]),V(this,"_hoveredTargets",[]),V(this,"_objectsToRender",void 0),V(this,"_currentTransform",null),V(this,"_groupSelector",null),V(this,"contextTopDirty",!1)}static getDefaults(){return D(D({},super.getDefaults()),Y2.ownDefaults)}get upperCanvasEl(){var i;return(i=this.elements.upper)===null||i===void 0?void 0:i.el}get contextTop(){var i;return(i=this.elements.upper)===null||i===void 0?void 0:i.ctx}get wrapperEl(){return this.elements.container}initElements(i){this.elements=new k1(i,{allowTouchScrolling:this.allowTouchScrolling,containerClass:this.containerClass}),this._createCacheCanvas()}_onObjectAdded(i){this._objectsToRender=void 0,super._onObjectAdded(i)}_onObjectRemoved(i){this._objectsToRender=void 0,i===this._activeObject&&(this.fire("before:selection:cleared",{deselected:[i]}),this._discardActiveObject(),this.fire("selection:cleared",{deselected:[i]}),i.fire("deselected",{target:i})),i===this._hoveredTarget&&(this._hoveredTarget=void 0,this._hoveredTargets=[]),super._onObjectRemoved(i)}_onStackOrderChanged(){this._objectsToRender=void 0,super._onStackOrderChanged()}_chooseObjectsToRender(){let i=this._activeObject;return!this.preserveObjectStacking&&i?this._objects.filter(e=>!e.group&&e!==i).concat(i):this._objects}renderAll(){this.cancelRequestedRender(),this.destroyed||(!this.contextTopDirty||this._groupSelector||this.isDrawingMode||(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&(this.renderTopLayer(this.contextTop),this.hasLostContext=!1),!this._objectsToRender&&(this._objectsToRender=this._chooseObjectsToRender()),this.renderCanvas(this.getContext(),this._objectsToRender))}renderTopLayer(i){i.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.freeDrawingBrush&&this.freeDrawingBrush._render(),this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(i),this.contextTopDirty=!0),i.restore()}renderTop(){let i=this.contextTop;this.clearContext(i),this.renderTopLayer(i),this.fire("after:render",{ctx:i})}setTargetFindTolerance(i){i=Math.round(i),this.targetFindTolerance=i;let e=this.getRetinaScaling(),r=Math.ceil((2*i+1)*e);this.pixelFindCanvasEl.width=this.pixelFindCanvasEl.height=r,this.pixelFindContext.scale(e,e)}isTargetTransparent(i,e,r){let t=this.targetFindTolerance,n=this.pixelFindContext;this.clearContext(n),n.save(),n.translate(-e+t,-r+t),n.transform(...this.viewportTransform);let f=i.selectionBackgroundColor;i.selectionBackgroundColor="",i.render(n),i.selectionBackgroundColor=f,n.restore();let o=Math.round(t*this.getRetinaScaling());return ia(n,o,o,o)}_isSelectionKeyPressed(i){let e=this.selectionKey;return!!e&&(Array.isArray(e)?!!e.find(r=>!!r&&i[r]===!0):i[e])}_shouldClearSelection(i,e){let r=this.getActiveObjects(),t=this._activeObject;return!!(!e||e&&t&&r.length>1&&r.indexOf(e)===-1&&t!==e&&!this._isSelectionKeyPressed(i)||e&&!e.evented||e&&!e.selectable&&t&&t!==e)}_shouldCenterTransform(i,e,r){if(!i)return;let t;return e===Nt||e===gi||e===Gi||e===mr?t=this.centeredScaling||i.centeredScaling:e===x1&&(t=this.centeredRotation||i.centeredRotation),t?!r:r}_getOriginFromCorner(i,e){let r={x:i.originX,y:i.originY};return e&&(["ml","tl","bl"].includes(e)?r.x=$0:["mr","tr","br"].includes(e)&&(r.x=E0),["tl","mt","tr"].includes(e)?r.y=Hn:["bl","mb","br"].includes(e)&&(r.y=yi)),r}_setupCurrentTransform(i,e,r){var t;let n=e.group?me(this.getScenePoint(i),void 0,e.group.calcTransformMatrix()):this.getScenePoint(i),{key:f="",control:o}=e.getActiveControl()||{},a=r&&o?(t=o.getActionHandler(i,e,o))===null||t===void 0?void 0:t.bind(o):Vo,A=((h,c,d,b)=>{if(!c||!h)return"drag";let g=b.controls[c];return g.getActionName(d,g,b)})(r,f,i,e),l=i[this.centeredKey],k=this._shouldCenterTransform(e,A,l)?{x:d0,y:d0}:this._getOriginFromCorner(e,f),u={target:e,action:A,actionHandler:a,actionPerformed:!1,corner:f,scaleX:e.scaleX,scaleY:e.scaleY,skewX:e.skewX,skewY:e.skewY,offsetX:n.x-e.left,offsetY:n.y-e.top,originX:k.x,originY:k.y,ex:n.x,ey:n.y,lastX:n.x,lastY:n.y,theta:z0(e.angle),width:e.width,height:e.height,shiftKey:i.shiftKey,altKey:l,original:D(D({},X1(e)),{},{originX:k.x,originY:k.y})};this._currentTransform=u,this.fire("before:transform",{e:i,transform:u})}setCursor(i){this.upperCanvasEl.style.cursor=i}_drawSelection(i){let{x:e,y:r,deltaX:t,deltaY:n}=this._groupSelector,f=new N(e,r).transform(this.viewportTransform),o=new N(e+t,r+n).transform(this.viewportTransform),a=this.selectionLineWidth/2,A=Math.min(f.x,o.x),l=Math.min(f.y,o.y),k=Math.max(f.x,o.x),u=Math.max(f.y,o.y);this.selectionColor&&(i.fillStyle=this.selectionColor,i.fillRect(A,l,k-A,u-l)),this.selectionLineWidth&&this.selectionBorderColor&&(i.lineWidth=this.selectionLineWidth,i.strokeStyle=this.selectionBorderColor,A+=a,l+=a,k-=a,u-=a,q0.prototype._setLineDash.call(this,i,this.selectionDashArray),i.strokeRect(A,l,k-A,u-l))}findTarget(i){if(this.skipTargetFind)return;let e=this.getViewportPoint(i),r=this._activeObject,t=this.getActiveObjects();if(this.targets=[],r&&t.length>=1){if(r.findControl(e,wt(i))||t.length>1&&this.searchPossibleTargets([r],e))return r;if(r===this.searchPossibleTargets([r],e)){if(this.preserveObjectStacking){let n=this.targets;this.targets=[];let f=this.searchPossibleTargets(this._objects,e);return i[this.altSelectionKey]&&f&&f!==r?(this.targets=n,r):f}return r}}return this.searchPossibleTargets(this._objects,e)}_pointIsInObjectSelectionArea(i,e){let r=i.getCoords(),t=this.getZoom(),n=i.padding/t;if(n){let[f,o,a,A]=r,l=Math.atan2(o.y-f.y,o.x-f.x),k=ie(l)*n,u=ee(l)*n,h=k+u,c=k-u;r=[new N(f.x-c,f.y-h),new N(o.x+h,o.y-c),new N(a.x+c,a.y+h),new N(A.x-h,A.y+c)]}return S0.isPointInPolygon(e,r)}_checkTarget(i,e){return!!(i&&i.visible&&i.evented&&this._pointIsInObjectSelectionArea(i,me(e,void 0,this.viewportTransform))&&(!this.perPixelTargetFind&&!i.perPixelTargetFind||i.isEditing||!this.isTargetTransparent(i,e.x,e.y)))}_searchPossibleTargets(i,e){let r=i.length;for(;r--;){let t=i[r];if(this._checkTarget(t,e)){if(ut(t)&&t.subTargetCheck){let n=this._searchPossibleTargets(t._objects,e);n&&this.targets.push(n)}return t}}}searchPossibleTargets(i,e){let r=this._searchPossibleTargets(i,e);if(r&&ut(r)&&r.interactive&&this.targets[0]){let t=this.targets;for(let n=t.length-1;n>0;n--){let f=t[n];if(!ut(f)||!f.interactive)return f}return t[0]}return r}getViewportPoint(i){return this._pointer?this._pointer:this.getPointer(i,!0)}getScenePoint(i){return this._absolutePointer?this._absolutePointer:this.getPointer(i)}getPointer(i){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],r=this.upperCanvasEl,t=r.getBoundingClientRect(),n=Zo(i),f=t.width||0,o=t.height||0;f&&o||(yi in t&&Hn in t&&(o=Math.abs(t.top-t.bottom)),$0 in t&&E0 in t&&(f=Math.abs(t.right-t.left))),this.calcOffset(),n.x=n.x-this._offset.left,n.y=n.y-this._offset.top,e||(n=me(n,void 0,this.viewportTransform));let a=this.getRetinaScaling();a!==1&&(n.x/=a,n.y/=a);let A=f===0||o===0?new N(1,1):new N(r.width/f,r.height/o);return n.multiply(A)}_setDimensionsImpl(i,e){this._resetTransformEventData(),super._setDimensionsImpl(i,e),this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(this.contextTop)}_createCacheCanvas(){this.pixelFindCanvasEl=Ni(),this.pixelFindContext=this.pixelFindCanvasEl.getContext("2d",{willReadFrequently:!0}),this.setTargetFindTolerance(this.targetFindTolerance)}getTopContext(){return this.elements.upper.ctx}getSelectionContext(){return this.elements.upper.ctx}getSelectionElement(){return this.elements.upper.el}getActiveObject(){return this._activeObject}getActiveObjects(){let i=this._activeObject;return Ue(i)?i.getObjects():i?[i]:[]}_fireSelectionEvents(i,e){let r=!1,t=!1,n=this.getActiveObjects(),f=[],o=[];i.forEach(a=>{n.includes(a)||(r=!0,a.fire("deselected",{e,target:a}),o.push(a))}),n.forEach(a=>{i.includes(a)||(r=!0,a.fire("selected",{e,target:a}),f.push(a))}),i.length>0&&n.length>0?(t=!0,r&&this.fire("selection:updated",{e,selected:f,deselected:o})):n.length>0?(t=!0,this.fire("selection:created",{e,selected:f})):i.length>0&&(t=!0,this.fire("selection:cleared",{e,deselected:o})),t&&(this._objectsToRender=void 0)}setActiveObject(i,e){let r=this.getActiveObjects(),t=this._setActiveObject(i,e);return this._fireSelectionEvents(r,e),t}_setActiveObject(i,e){let r=this._activeObject;return r!==i&&!(!this._discardActiveObject(e,i)&&this._activeObject)&&!i.onSelect({e})&&(this._activeObject=i,Ue(i)&&r!==i&&i.set("canvas",this),i.setCoords(),!0)}_discardActiveObject(i,e){let r=this._activeObject;return!!r&&!r.onDeselect({e:i,object:e})&&(this._currentTransform&&this._currentTransform.target===r&&this.endCurrentTransform(i),Ue(r)&&r===this._hoveredTarget&&(this._hoveredTarget=void 0),this._activeObject=void 0,!0)}discardActiveObject(i){let e=this.getActiveObjects(),r=this.getActiveObject();e.length&&this.fire("before:selection:cleared",{e:i,deselected:[r]});let t=this._discardActiveObject(i);return this._fireSelectionEvents(e,i),t}endCurrentTransform(i){let e=this._currentTransform;this._finalizeCurrentTransform(i),e&&e.target&&(e.target.isMoving=!1),this._currentTransform=null}_finalizeCurrentTransform(i){let e=this._currentTransform,r=e.target,t={e:i,target:r,transform:e,action:e.action};r._scaling&&(r._scaling=!1),r.setCoords(),e.actionPerformed&&(this.fire("object:modified",t),r.fire(gt,t))}setViewportTransform(i){super.setViewportTransform(i);let e=this._activeObject;e&&e.setCoords()}destroy(){let i=this._activeObject;Ue(i)&&(i.removeAll(),i.dispose()),delete this._activeObject,super.destroy(),this.pixelFindContext=null,this.pixelFindCanvasEl=void 0}clear(){this.discardActiveObject(),this._activeObject=void 0,this.clearContext(this.contextTop),super.clear()}drawControls(i){let e=this._activeObject;e&&e._renderControls(i)}_toObject(i,e,r){let t=this._realizeGroupTransformOnObject(i),n=super._toObject(i,e,r);return i.set(t),n}_realizeGroupTransformOnObject(i){let{group:e}=i;if(e&&Ue(e)&&this._activeObject===e){let r=g2(i,["angle","flipX","flipY",E0,gi,Gi,J2,H2,yi]);return Io(i,e.calcOwnMatrix()),r}return{}}_setSVGObject(i,e,r){let t=this._realizeGroupTransformOnObject(e);super._setSVGObject(i,e,r),e.set(t)}};V(Y2,"ownDefaults",{uniformScaling:!0,uniScaleKey:"shiftKey",centeredScaling:!1,centeredRotation:!1,centeredKey:"altKey",altActionKey:"shiftKey",selection:!0,selectionKey:"shiftKey",selectionColor:"rgba(100, 100, 255, 0.3)",selectionDashArray:[],selectionBorderColor:"rgba(255, 255, 255, 0.3)",selectionLineWidth:1,selectionFullyContained:!1,hoverCursor:"move",moveCursor:"move",defaultCursor:"default",freeDrawingCursor:"crosshair",notAllowedCursor:"not-allowed",perPixelTargetFind:!1,targetFindTolerance:0,skipTargetFind:!1,stopContextMenu:!1,fireRightClick:!1,fireMiddleClick:!1,enablePointerEvents:!1,containerClass:"canvas-container",preserveObjectStacking:!1});var u1=class{constructor(i){V(this,"targets",[]),V(this,"__disposer",void 0);let e=()=>{let{hiddenTextarea:t}=i.getActiveObject()||{};t&&t.focus()},r=i.upperCanvasEl;r.addEventListener("click",e),this.__disposer=()=>r.removeEventListener("click",e)}exitTextEditing(){this.target=void 0,this.targets.forEach(i=>{i.isEditing&&i.exitEditing()})}add(i){this.targets.push(i)}remove(i){this.unregister(i),He(this.targets,i)}register(i){this.target=i}unregister(i){i===this.target&&(this.target=void 0)}onMouseMove(i){var e;!((e=this.target)===null||e===void 0)&&e.isEditing&&this.target.updateSelectionOnMouseMove(i)}clear(){this.targets=[],this.target=void 0}dispose(){this.clear(),this.__disposer(),delete this.__disposer}},NA=["target","oldTarget","fireCanvas","e"],Wi={passive:!1},X2=(s,i)=>{let e=s.getViewportPoint(i),r=s.getScenePoint(i);return{viewportPoint:e,scenePoint:r,pointer:e,absolutePointer:r}},Fe=function(s){for(var i=arguments.length,e=new Array(i>1?i-1:0),r=1;r1?i-1:0),r=1;r1&&arguments[1]!==void 0?arguments[1]:{}),V(this,"_isClick",void 0),V(this,"textEditingManager",new u1(this)),["_onMouseDown","_onTouchStart","_onMouseMove","_onMouseUp","_onTouchEnd","_onResize","_onMouseWheel","_onMouseOut","_onMouseEnter","_onContextMenu","_onDoubleClick","_onDragStart","_onDragEnd","_onDragProgress","_onDragOver","_onDragEnter","_onDragLeave","_onDrop"].forEach(e=>{this[e]=this[e].bind(this)}),this.addOrRemove(Fe,"add")}_getEventPrefix(){return this.enablePointerEvents?"pointer":"mouse"}addOrRemove(i,e){let r=this.upperCanvasEl,t=this._getEventPrefix();i(Bo(r),"resize",this._onResize),i(r,t+"down",this._onMouseDown),i(r,"".concat(t,"move"),this._onMouseMove,Wi),i(r,"".concat(t,"out"),this._onMouseOut),i(r,"".concat(t,"enter"),this._onMouseEnter),i(r,"wheel",this._onMouseWheel),i(r,"contextmenu",this._onContextMenu),i(r,"dblclick",this._onDoubleClick),i(r,"dragstart",this._onDragStart),i(r,"dragend",this._onDragEnd),i(r,"dragover",this._onDragOver),i(r,"dragenter",this._onDragEnter),i(r,"dragleave",this._onDragLeave),i(r,"drop",this._onDrop),this.enablePointerEvents||i(r,"touchstart",this._onTouchStart,Wi)}removeListeners(){this.addOrRemove(Si,"remove");let i=this._getEventPrefix(),e=Li(this.upperCanvasEl);Si(e,"".concat(i,"up"),this._onMouseUp),Si(e,"touchend",this._onTouchEnd,Wi),Si(e,"".concat(i,"move"),this._onMouseMove,Wi),Si(e,"touchmove",this._onMouseMove,Wi),clearTimeout(this._willAddMouseDown)}_onMouseWheel(i){this.__onMouseWheel(i)}_onMouseOut(i){let e=this._hoveredTarget,r=D({e:i},X2(this,i));this.fire("mouse:out",D(D({},r),{},{target:e})),this._hoveredTarget=void 0,e&&e.fire("mouseout",D({},r)),this._hoveredTargets.forEach(t=>{this.fire("mouse:out",D(D({},r),{},{target:t})),t&&t.fire("mouseout",D({},r))}),this._hoveredTargets=[]}_onMouseEnter(i){this._currentTransform||this.findTarget(i)||(this.fire("mouse:over",D({e:i},X2(this,i))),this._hoveredTarget=void 0,this._hoveredTargets=[])}_onDragStart(i){this._isClick=!1;let e=this.getActiveObject();if(e&&e.onDragStart(i)){this._dragSource=e;let r={e:i,target:e};return this.fire("dragstart",r),e.fire("dragstart",r),void Fe(this.upperCanvasEl,"drag",this._onDragProgress)}Ln(i)}_renderDragEffects(i,e,r){let t=!1,n=this._dropTarget;n&&n!==e&&n!==r&&(n.clearContextTop(),t=!0),e==null||e.clearContextTop(),r!==e&&(r==null||r.clearContextTop());let f=this.contextTop;f.save(),f.transform(...this.viewportTransform),e&&(f.save(),e.transform(f),e.renderDragSourceEffect(i),f.restore(),t=!0),r&&(f.save(),r.transform(f),r.renderDropTargetEffect(i),f.restore(),t=!0),f.restore(),t&&(this.contextTopDirty=!0)}_onDragEnd(i){let e=!!i.dataTransfer&&i.dataTransfer.dropEffect!==Bi,r=e?this._activeObject:void 0,t={e:i,target:this._dragSource,subTargets:this.targets,dragSource:this._dragSource,didDrop:e,dropTarget:r};Si(this.upperCanvasEl,"drag",this._onDragProgress),this.fire("dragend",t),this._dragSource&&this._dragSource.fire("dragend",t),delete this._dragSource,this._onMouseUp(i)}_onDragProgress(i){let e={e:i,target:this._dragSource,dragSource:this._dragSource,dropTarget:this._draggedoverTarget};this.fire("drag",e),this._dragSource&&this._dragSource.fire("drag",e)}findDragTargets(i){return this.targets=[],{target:this._searchPossibleTargets(this._objects,this.getViewportPoint(i)),targets:[...this.targets]}}_onDragOver(i){let e="dragover",{target:r,targets:t}=this.findDragTargets(i),n=this._dragSource,f={e:i,target:r,subTargets:t,dragSource:n,canDrop:!1,dropTarget:void 0},o;this.fire(e,f),this._fireEnterLeaveEvents(r,f),r&&(r.canDrop(i)&&(o=r),r.fire(e,f));for(let a=0;a0)return;this.__onMouseUp(i),this._resetTransformEventData(),delete this.mainTouchId;let e=this._getEventPrefix(),r=Li(this.upperCanvasEl);Si(r,"touchend",this._onTouchEnd,Wi),Si(r,"touchmove",this._onMouseMove,Wi),this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout(()=>{Fe(this.upperCanvasEl,"".concat(e,"down"),this._onMouseDown),this._willAddMouseDown=0},400)}_onMouseUp(i){this.__onMouseUp(i),this._resetTransformEventData();let e=this.upperCanvasEl,r=this._getEventPrefix();if(this._isMainEvent(i)){let t=Li(this.upperCanvasEl);Si(t,"".concat(r,"up"),this._onMouseUp),Si(t,"".concat(r,"move"),this._onMouseMove,Wi),Fe(e,"".concat(r,"move"),this._onMouseMove,Wi)}}_onMouseMove(i){let e=this.getActiveObject();!this.allowTouchScrolling&&(!e||!e.shouldStartDragging(i))&&i.preventDefault&&i.preventDefault(),this.__onMouseMove(i)}_onResize(){this.calcOffset(),this._resetTransformEventData()}_shouldRender(i){let e=this.getActiveObject();return!!e!=!!i||e&&i&&e!==i}__onMouseUp(i){var e;this._cacheTransformEventData(i),this._handleEvent(i,"up:before");let r=this._currentTransform,t=this._isClick,n=this._target,{button:f}=i;if(f)return(this.fireMiddleClick&&f===1||this.fireRightClick&&f===2)&&this._handleEvent(i,"up"),void this._resetTransformEventData();if(this.isDrawingMode&&this._isCurrentlyDrawing)return void this._onMouseUpInDrawingMode(i);if(!this._isMainEvent(i))return;let o,a,A=!1;if(r&&(this._finalizeCurrentTransform(i),A=r.actionPerformed),!t){let l=n===this._activeObject;this.handleSelection(i),A||(A=this._shouldRender(n)||!l&&n===this._activeObject)}if(n){let l=n.findControl(this.getViewportPoint(i),wt(i)),{key:k,control:u}=l||{};if(a=k,n.selectable&&n!==this._activeObject&&n.activeOn==="up")this.setActiveObject(n,i),A=!0;else if(u){let h=u.getMouseUpHandler(i,n,u);h&&(o=this.getScenePoint(i),h.call(u,i,r,o.x,o.y))}n.isMoving=!1}if(r&&(r.target!==n||r.corner!==a)){let l=r.target&&r.target.controls[r.corner],k=l&&l.getMouseUpHandler(i,r.target,l);o=o||this.getScenePoint(i),k&&k.call(l,i,r,o.x,o.y)}this._setCursorFromEvent(i,n),this._handleEvent(i,"up"),this._groupSelector=null,this._currentTransform=null,n&&(n.__corner=void 0),A?this.requestRenderAll():t||(e=this._activeObject)!==null&&e!==void 0&&e.isEditing||this.renderTop()}_basicEventHandler(i,e){let{target:r,subTargets:t=[]}=e;this.fire(i,e),r&&r.fire(i,e);for(let n=0;n{r=f.hoverCursor||r}),this.setCursor(r)}handleMultiSelection(i,e){let r=this._activeObject,t=Ue(r);if(r&&this._isSelectionKeyPressed(i)&&this.selection&&e&&e.selectable&&(r!==e||t)&&(t||!e.isDescendantOf(r)&&!r.isDescendantOf(e))&&!e.onSelect({e:i})&&!r.getActiveControl()){if(t){let n=r.getObjects();if(e===r){let f=this.getViewportPoint(i);if(!(e=this.searchPossibleTargets(n,f)||this.searchPossibleTargets(this._objects,f))||!e.selectable)return!1}e.group===r?(r.remove(e),this._hoveredTarget=e,this._hoveredTargets=[...this.targets],r.size()===1&&this._setActiveObject(r.item(0),i)):(r.multiSelectAdd(e),this._hoveredTarget=r,this._hoveredTargets=[...this.targets]),this._fireSelectionEvents(n,i)}else{r.isEditing&&r.exitEditing();let n=new(r0.getClass("ActiveSelection"))([],{canvas:this});n.multiSelectAdd(r,e),this._hoveredTarget=n,this._setActiveObject(n,i),this._fireSelectionEvents([r],i)}return!0}return!1}handleSelection(i){if(!this.selection||!this._groupSelector)return!1;let{x:e,y:r,deltaX:t,deltaY:n}=this._groupSelector,f=new N(e,r),o=f.add(new N(t,n)),a=f.min(o),A=f.max(o).subtract(a),l=this.collectObjects({left:a.x,top:a.y,width:A.x,height:A.y},{includeIntersecting:!this.selectionFullyContained}),k=f.eq(o)?l[0]?[l[0]]:[]:l.length>1?l.filter(u=>!u.onSelect({e:i})).reverse():l;if(k.length===1)this.setActiveObject(k[0],i);else if(k.length>1){let u=r0.getClass("ActiveSelection");this.setActiveObject(new u(k,{canvas:this}),i)}return this._groupSelector=null,!0}clear(){this.textEditingManager.clear(),super.clear()}destroy(){this.removeListeners(),this.textEditingManager.dispose(),super.destroy()}},pa={x1:0,y1:0,x2:0,y2:0},YA=D(D({},pa),{},{r1:0,r2:0}),G2=(s,i)=>isNaN(s)&&typeof i=="number"?i:s,OA=/^(\d+\.\d+)%|(\d+)%$/;function ma(s){return s&&OA.test(s)}function va(s,i){let e=typeof s=="number"?s:typeof s=="string"?parseFloat(s)/(ma(s)?100:1):NaN;return c2(0,G2(e,i),1)}var zA=/\s*;\s*/,JA=/\s*:\s*/;function HA(s,i){let e,r,t=s.getAttribute("style");if(t){let f=t.split(zA);f[f.length-1]===""&&f.pop();for(let o=f.length;o--;){let[a,A]=f[o].split(JA).map(l=>l.trim());a==="stop-color"?e=A:a==="stop-opacity"&&(r=A)}}let n=new Z0(e||s.getAttribute("stop-color")||"rgb(0,0,0)");return{offset:va(s.getAttribute("offset"),0),color:n.toRgb(),opacity:G2(parseFloat(r||s.getAttribute("stop-opacity")||""),1)*n.getAlpha()*i}}function UA(s,i){let e=[],r=s.getElementsByTagName("stop"),t=va(i,1);for(let n=r.length;n--;)e.push(HA(r[n],t));return e}function wa(s){return s.nodeName==="linearGradient"||s.nodeName==="LINEARGRADIENT"?"linear":"radial"}function _a(s){return s.getAttribute("gradientUnits")==="userSpaceOnUse"?"pixels":"percentage"}function Hi(s,i){return s.getAttribute(i)}function jA(s,i){return function(e,r){let t,{width:n,height:f,gradientUnits:o}=r;return Object.keys(e).reduce((a,A)=>{let l=e[A];return l==="Infinity"?t=1:l==="-Infinity"?t=0:(t=typeof l=="string"?parseFloat(l):l,typeof l=="string"&&ma(l)&&(t*=.01,o==="pixels"&&(A!=="x1"&&A!=="x2"&&A!=="r2"||(t*=n),A!=="y1"&&A!=="y2"||(t*=f)))),a[A]=t,a},{})}(wa(s)==="linear"?function(e){return{x1:Hi(e,"x1")||0,y1:Hi(e,"y1")||0,x2:Hi(e,"x2")||"100%",y2:Hi(e,"y2")||0}}(s):function(e){return{x1:Hi(e,"fx")||Hi(e,"cx")||"50%",y1:Hi(e,"fy")||Hi(e,"cy")||"50%",r1:0,x2:Hi(e,"cx")||"50%",y2:Hi(e,"cy")||"50%",r2:Hi(e,"r")||"50%"}}(s),D(D({},i),{},{gradientUnits:_a(s)}))}var D2=class{constructor(i){let{type:e="linear",gradientUnits:r="pixels",coords:t={},colorStops:n=[],offsetX:f=0,offsetY:o=0,gradientTransform:a,id:A}=i||{};Object.assign(this,{type:e,gradientUnits:r,coords:D(D({},e==="radial"?YA:pa),t),colorStops:n,offsetX:f,offsetY:o,gradientTransform:a,id:A?"".concat(A,"_").concat(Se()):Se()})}addColorStop(i){for(let e in i){let r=new Z0(i[e]);this.colorStops.push({offset:parseFloat(e),color:r.toRgb(),opacity:r.getAlpha()})}return this}toObject(i){return D(D({},g2(this,i)),{},{type:this.type,coords:D({},this.coords),colorStops:this.colorStops.map(e=>D({},e)),offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?[...this.gradientTransform]:void 0})}toSVG(i){let{additionalTransform:e}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=[],t=this.gradientTransform?this.gradientTransform.concat():bi.concat(),n=this.gradientUnits==="pixels"?"userSpaceOnUse":"objectBoundingBox",f=this.colorStops.map(k=>D({},k)).sort((k,u)=>k.offset-u.offset),o=-this.offsetX,a=-this.offsetY;var A;n==="objectBoundingBox"?(o/=i.width,a/=i.height):(o+=i.width/2,a+=i.height/2),(A=i)&&typeof A._renderPathCommands=="function"&&this.gradientUnits!=="percentage"&&(o-=i.pathOffset.x,a-=i.pathOffset.y),t[4]-=o,t[5]-=a;let l=['id="SVGID_'.concat(this.id,'"'),'gradientUnits="'.concat(n,'"'),'gradientTransform="'.concat(e?e+" ":"").concat(vr(t),'"'),""].join(" ");if(this.type==="linear"){let{x1:k,y1:u,x2:h,y2:c}=this.coords;r.push(" +`)}else if(this.type==="radial"){let{x1:k,y1:u,x2:h,y2:c,r1:d,r2:b}=this.coords,g=d>b;r.push(" +`),g&&(f.reverse(),f.forEach(w=>{w.offset=1-w.offset}));let v=Math.min(d,b);if(v>0){let w=v/Math.max(d,b);f.forEach(p=>{p.offset+=w*(1-p.offset)})}}return f.forEach(k=>{let{color:u,offset:h,opacity:c}=k;r.push(" +`)}),r.push(this.type==="linear"?"":"",` +`),r.join("")}toLive(i){let{x1:e,y1:r,x2:t,y2:n,r1:f,r2:o}=this.coords,a=this.type==="linear"?i.createLinearGradient(e,r,t,n):i.createRadialGradient(e,r,f,t,n,o);return this.colorStops.forEach(A=>{let{color:l,opacity:k,offset:u}=A;a.addColorStop(u,k!==void 0?new Z0(l).setAlpha(k).toRgba():l)}),a}static async fromObject(i){let{colorStops:e,gradientTransform:r}=i;return new this(D(D({},i),{},{colorStops:e?e.map(t=>D({},t)):void 0,gradientTransform:r?[...r]:void 0}))}static fromElement(i,e,r){let t=_a(i),n=e._findCenterFromElement();return new this(D({id:i.getAttribute("id")||void 0,type:wa(i),coords:jA(i,{width:r.viewBoxWidth||r.width,height:r.viewBoxHeight||r.height}),colorStops:UA(i,r.opacity),gradientUnits:t,gradientTransform:a1(i.getAttribute("gradientTransform")||"")},t==="pixels"?{offsetX:e.width/2-n.x,offsetY:e.height/2-n.y}:{offsetX:0,offsetY:0}))}};V(D2,"type","Gradient"),r0.setClass(D2,"gradient"),r0.setClass(D2,"linear"),r0.setClass(D2,"radial");var LA=["type","source","patternTransform"],Ve=class{get type(){return"pattern"}set type(i){Ge("warn","Setting type has no effect",i)}constructor(i){V(this,"repeat","repeat"),V(this,"offsetX",0),V(this,"offsetY",0),V(this,"crossOrigin",""),this.id=Se(),Object.assign(this,i)}isImageSource(){return!!this.source&&typeof this.source.src=="string"}isCanvasSource(){return!!this.source&&!!this.source.toDataURL}sourceToString(){return this.isImageSource()?this.source.src:this.isCanvasSource()?this.source.toDataURL():""}toLive(i){return this.source&&(!this.isImageSource()||this.source.complete&&this.source.naturalWidth!==0&&this.source.naturalHeight!==0)?i.createPattern(this.source,this.repeat):null}toObject(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],{repeat:e,crossOrigin:r}=this;return D(D({},g2(this,i)),{},{type:"pattern",source:this.sourceToString(),repeat:e,crossOrigin:r,offsetX:P0(this.offsetX,x0.NUM_FRACTION_DIGITS),offsetY:P0(this.offsetY,x0.NUM_FRACTION_DIGITS),patternTransform:this.patternTransform?[...this.patternTransform]:null})}toSVG(i){let{width:e,height:r}=i,{source:t,repeat:n,id:f}=this,o=G2(this.offsetX/e,0),a=G2(this.offsetY/r,0),A=n==="repeat-y"||n==="no-repeat"?1+Math.abs(o||0):G2(t.width/e,0),l=n==="repeat-x"||n==="no-repeat"?1+Math.abs(a||0):G2(t.height/r,0);return[''),''),"",""].join(` +`)}static async fromObject(i,e){let{type:r,source:t,patternTransform:n}=i,f=N0(i,LA),o=await br(t,D(D({},e),{},{crossOrigin:f.crossOrigin}));return new this(D(D({},f),{},{patternTransform:n&&n.slice(0),source:o}))}};V(Ve,"type","Pattern"),r0.setClass(Ve),r0.setClass(Ve,"pattern");var h1=class{constructor(i){V(this,"color","rgb(0, 0, 0)"),V(this,"width",1),V(this,"shadow",null),V(this,"strokeLineCap","round"),V(this,"strokeLineJoin","round"),V(this,"strokeMiterLimit",10),V(this,"strokeDashArray",null),V(this,"limitedToCanvasSize",!1),this.canvas=i}_setBrushStyles(i){i.strokeStyle=this.color,i.lineWidth=this.width,i.lineCap=this.strokeLineCap,i.miterLimit=this.strokeMiterLimit,i.lineJoin=this.strokeLineJoin,i.setLineDash(this.strokeDashArray||[])}_saveAndTransform(i){let e=this.canvas.viewportTransform;i.save(),i.transform(e[0],e[1],e[2],e[3],e[4],e[5])}needsFullRender(){return new Z0(this.color).getAlpha()<1||!!this.shadow}_setShadow(){if(!this.shadow||!this.canvas)return;let i=this.canvas,e=this.shadow,r=i.contextTop,t=i.getZoom()*i.getRetinaScaling();r.shadowColor=e.color,r.shadowBlur=e.blur*t,r.shadowOffsetX=e.offsetX*t,r.shadowOffsetY=e.offsetY*t}_resetShadow(){let i=this.canvas.contextTop;i.shadowColor="",i.shadowBlur=i.shadowOffsetX=i.shadowOffsetY=0}_isOutSideCanvas(i){return i.x<0||i.x>this.canvas.getWidth()||i.y<0||i.y>this.canvas.getHeight()}},$A=["path","left","top"],qA=["d"],Xi=class extends q0{constructor(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{path:r,left:t,top:n}=e,f=N0(e,$A);super(),Object.assign(this,Xi.ownDefaults),this.setOptions(f),this._setPath(i||[],!0),typeof t=="number"&&this.set(E0,t),typeof n=="number"&&this.set(yi,n)}_setPath(i,e){this.path=la(Array.isArray(i)?i:ba(i)),this.setBoundingBox(e)}_findCenterFromElement(){let i=this._calcBoundsFromPath();return new N(i.left+i.width/2,i.top+i.height/2)}_renderPathCommands(i){let e=-this.pathOffset.x,r=-this.pathOffset.y;i.beginPath();for(let t of this.path)switch(t[0]){case"L":i.lineTo(t[1]+e,t[2]+r);break;case"M":i.moveTo(t[1]+e,t[2]+r);break;case"C":i.bezierCurveTo(t[1]+e,t[2]+r,t[3]+e,t[4]+r,t[5]+e,t[6]+r);break;case"Q":i.quadraticCurveTo(t[1]+e,t[2]+r,t[3]+e,t[4]+r);break;case"Z":i.closePath()}}_render(i){this._renderPathCommands(i),this._renderPaintInOrder(i)}toString(){return"#")}toObject(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return D(D({},super.toObject(i)),{},{path:this.path.map(e=>e.slice())})}toDatalessObject(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=this.toObject(i);return this.sourcePath&&(delete e.path,e.sourcePath=this.sourcePath),e}_toSVG(){let i=O1(this.path,x0.NUM_FRACTION_DIGITS);return[" +`)]}_getOffsetTransform(){let i=x0.NUM_FRACTION_DIGITS;return" translate(".concat(P0(-this.pathOffset.x,i),", ").concat(P0(-this.pathOffset.y,i),")")}toClipPathSVG(i){let e=this._getOffsetTransform();return" "+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:i,additionalTransform:e})}toSVG(i){let e=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:i,additionalTransform:e})}complexity(){return this.path.length}setDimensions(){this.setBoundingBox()}setBoundingBox(i){let{width:e,height:r,pathOffset:t}=this._calcDimensions();this.set({width:e,height:r,pathOffset:t}),i&&this.setPositionByOrigin(t,d0,d0)}_calcBoundsFromPath(){let i=[],e=0,r=0,t=0,n=0;for(let f of this.path)switch(f[0]){case"L":t=f[1],n=f[2],i.push({x:e,y:r},{x:t,y:n});break;case"M":t=f[1],n=f[2],e=t,r=n;break;case"C":i.push(...l1(t,n,f[1],f[2],f[3],f[4],f[5],f[6])),t=f[5],n=f[6];break;case"Q":i.push(...l1(t,n,f[1],f[2],f[1],f[2],f[3],f[4])),t=f[3],n=f[4];break;case"Z":t=e,n=r}return oe(i)}_calcDimensions(){let i=this._calcBoundsFromPath();return D(D({},i),{},{pathOffset:new N(i.left+i.width/2,i.top+i.height/2)})}static fromObject(i){return this._fromObject(i,{extraParam:"path"})}static async fromElement(i,e,r){let t=Ce(i,this.ATTRIBUTE_NAMES,r),{d:n}=t;return new this(n,D(D(D({},N0(t,qA)),e),{},{left:void 0,top:void 0}))}};V(Xi,"type","Path"),V(Xi,"cacheProperties",[..._e,"path","fillRule"]),V(Xi,"ATTRIBUTE_NAMES",[...Pe,"d"]),r0.setClass(Xi),r0.setSVGClass(Xi);var we=class extends h1{constructor(i){super(i),V(this,"decimate",.4),V(this,"drawStraightLine",!1),V(this,"straightLineKey","shiftKey"),this._points=[],this._hasStraightLine=!1}needsFullRender(){return super.needsFullRender()||this._hasStraightLine}static drawSegment(i,e,r){let t=e.midPointFrom(r);return i.quadraticCurveTo(e.x,e.y,t.x,t.y),t}onMouseDown(i,e){let{e:r}=e;this.canvas._isMainEvent(r)&&(this.drawStraightLine=!!this.straightLineKey&&r[this.straightLineKey],this._prepareForDrawing(i),this._addPoint(i),this._render())}onMouseMove(i,e){let{e:r}=e;if(this.canvas._isMainEvent(r)&&(this.drawStraightLine=!!this.straightLineKey&&r[this.straightLineKey],(this.limitedToCanvasSize!==!0||!this._isOutSideCanvas(i))&&this._addPoint(i)&&this._points.length>1))if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{let t=this._points,n=t.length,f=this.canvas.contextTop;this._saveAndTransform(f),this.oldEnd&&(f.beginPath(),f.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=we.drawSegment(f,t[n-2],t[n-1]),f.stroke(),f.restore()}}onMouseUp(i){let{e}=i;return!this.canvas._isMainEvent(e)||(this.drawStraightLine=!1,this.oldEnd=void 0,this._finalizeAndAddPath(),!1)}_prepareForDrawing(i){this._reset(),this._addPoint(i),this.canvas.contextTop.moveTo(i.x,i.y)}_addPoint(i){return!(this._points.length>1&&i.eq(this._points[this._points.length-1]))&&(this.drawStraightLine&&this._points.length>1&&(this._hasStraightLine=!0,this._points.pop()),this._points.push(i),!0)}_reset(){this._points=[],this._setBrushStyles(this.canvas.contextTop),this._setShadow(),this._hasStraightLine=!1}_render(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.canvas.contextTop,e=this._points[0],r=this._points[1];if(this._saveAndTransform(i),i.beginPath(),this._points.length===2&&e.x===r.x&&e.y===r.y){let t=this.width/1e3;e.x-=t,r.x+=t}i.moveTo(e.x,e.y);for(let t=1;t=f&&(t=i[A],a.push(t));return a.push(i[o]),a}_finalizeAndAddPath(){this.canvas.contextTop.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));let i=this.convertPointsToSVGPath(this._points);if(function(r){return O1(r)==="M 0 0 Q 0 0 0 0 L 0 0"}(i))return void this.canvas.requestRenderAll();let e=this.createPath(i);this.canvas.clearContext(this.canvas.contextTop),this.canvas.fire("before:path:created",{path:e}),this.canvas.add(e),this.canvas.requestRenderAll(),e.setCoords(),this._resetShadow(),this.canvas.fire("path:created",{path:e})}},KA=["left","top","radius"],Ca=["radius","startAngle","endAngle","counterClockwise"],Ui=class extends q0{static getDefaults(){return D(D({},super.getDefaults()),Ui.ownDefaults)}constructor(i){super(),Object.assign(this,Ui.ownDefaults),this.setOptions(i)}_set(i,e){return super._set(i,e),i==="radius"&&this.setRadius(e),this}_render(i){i.beginPath(),i.arc(0,0,this.radius,z0(this.startAngle),z0(this.endAngle),this.counterClockwise),this._renderPaintInOrder(i)}getRadiusX(){return this.get("radius")*this.get(gi)}getRadiusY(){return this.get("radius")*this.get(Gi)}setRadius(i){this.radius=i,this.set({width:2*i,height:2*i})}toObject(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return super.toObject([...Ca,...i])}_toSVG(){let i=(this.endAngle-this.startAngle)%360;if(i===0)return[" +`];{let{radius:e}=this,r=z0(this.startAngle),t=z0(this.endAngle),n=ie(r)*e,f=ee(r)*e,o=ie(t)*e,a=ee(t)*e,A=i>180?1:0,l=this.counterClockwise?0:1;return[' +`]}}static async fromElement(i,e,r){let t=Ce(i,this.ATTRIBUTE_NAMES,r),{left:n=0,top:f=0,radius:o=0}=t;return new this(D(D({},N0(t,KA)),{},{radius:o,left:n-o,top:f-o}))}static fromObject(i){return super._fromObject(i)}};V(Ui,"type","Circle"),V(Ui,"cacheProperties",[..._e,...Ca]),V(Ui,"ownDefaults",{radius:0,startAngle:0,endAngle:360,counterClockwise:!1}),V(Ui,"ATTRIBUTE_NAMES",["cx","cy","r",...Pe]),r0.setClass(Ui),r0.setSVGClass(Ui);var il=["x1","y1","x2","y2"],el=["x1","y1","x2","y2"],c1=["x1","x2","y1","y2"],ce=class extends q0{constructor(){let[i,e,r,t]=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[0,0,0,0],n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),Object.assign(this,ce.ownDefaults),this.setOptions(n),this.x1=i,this.x2=r,this.y1=e,this.y2=t,this._setWidthHeight();let{left:f,top:o}=n;typeof f=="number"&&this.set(E0,f),typeof o=="number"&&this.set(yi,o)}_setWidthHeight(){let{x1:i,y1:e,x2:r,y2:t}=this;this.width=Math.abs(r-i),this.height=Math.abs(t-e);let{left:n,top:f,width:o,height:a}=oe([{x:i,y:e},{x:r,y:t}]),A=new N(n+o/2,f+a/2);this.setPositionByOrigin(A,d0,d0)}_set(i,e){return super._set(i,e),c1.includes(i)&&this._setWidthHeight(),this}_render(i){i.beginPath();let e=this.calcLinePoints();i.moveTo(e.x1,e.y1),i.lineTo(e.x2,e.y2),i.lineWidth=this.strokeWidth;let r=i.strokeStyle;var t;Ti(this.stroke)?i.strokeStyle=this.stroke.toLive(i):i.strokeStyle=(t=this.stroke)!==null&&t!==void 0?t:i.fillStyle,this.stroke&&this._renderStroke(i),i.strokeStyle=r}_findCenterFromElement(){return new N((this.x1+this.x2)/2,(this.y1+this.y2)/2)}toObject(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return D(D({},super.toObject(i)),this.calcLinePoints())}_getNonTransformedDimensions(){let i=super._getNonTransformedDimensions();return this.strokeLineCap==="butt"&&(this.width===0&&(i.y-=this.strokeWidth),this.height===0&&(i.x-=this.strokeWidth)),i}calcLinePoints(){let{x1:i,x2:e,y1:r,y2:t,width:n,height:f}=this,o=i<=e?-1:1,a=r<=t?-1:1;return{x1:o*n/2,x2:o*-n/2,y1:a*f/2,y2:a*-f/2}}_toSVG(){let{x1:i,x2:e,y1:r,y2:t}=this.calcLinePoints();return[" +`)]}static async fromElement(i,e,r){let t=Ce(i,this.ATTRIBUTE_NAMES,r),{x1:n=0,y1:f=0,x2:o=0,y2:a=0}=t;return new this([n,f,o,a],N0(t,il))}static fromObject(i){let{x1:e,y1:r,x2:t,y2:n}=i,f=N0(i,el);return this._fromObject(D(D({},f),{},{points:[e,r,t,n]}),{extraParam:"points"})}};V(ce,"type","Line"),V(ce,"cacheProperties",[..._e,...c1]),V(ce,"ATTRIBUTE_NAMES",Pe.concat(c1)),r0.setClass(ce),r0.setSVGClass(ce);var be=class extends q0{static getDefaults(){return D(D({},super.getDefaults()),be.ownDefaults)}constructor(i){super(),Object.assign(this,be.ownDefaults),this.setOptions(i)}_render(i){let e=this.width/2,r=this.height/2;i.beginPath(),i.moveTo(-e,r),i.lineTo(0,-r),i.lineTo(e,r),i.closePath(),this._renderPaintInOrder(i)}_toSVG(){let i=this.width/2,e=this.height/2;return["']}};V(be,"type","Triangle"),V(be,"ownDefaults",{width:100,height:100}),r0.setClass(be),r0.setSVGClass(be);var ya=["rx","ry"],ji=class extends q0{static getDefaults(){return D(D({},super.getDefaults()),ji.ownDefaults)}constructor(i){super(),Object.assign(this,ji.ownDefaults),this.setOptions(i)}_set(i,e){switch(super._set(i,e),i){case"rx":this.rx=e,this.set("width",2*e);break;case"ry":this.ry=e,this.set("height",2*e)}return this}getRx(){return this.get("rx")*this.get(gi)}getRy(){return this.get("ry")*this.get(Gi)}toObject(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return super.toObject([...ya,...i])}_toSVG(){return[" +`)]}_render(i){i.beginPath(),i.save(),i.transform(1,0,0,this.ry/this.rx,0,0),i.arc(0,0,this.rx,0,ve,!1),i.restore(),this._renderPaintInOrder(i)}static async fromElement(i,e,r){let t=Ce(i,this.ATTRIBUTE_NAMES,r);return t.left=(t.left||0)-t.rx,t.top=(t.top||0)-t.ry,new this(t)}};function rl(s){if(!s)return[];let i=s.replace(/,/g," ").trim().split(/\s+/),e=[];for(let r=0;r0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),V(this,"strokeDiff",void 0),Object.assign(this,Fi.ownDefaults),this.setOptions(e),this.points=i;let{left:r,top:t}=e;this.initialized=!0,this.setBoundingBox(!0),typeof r=="number"&&this.set(E0,r),typeof t=="number"&&this.set(yi,t)}isOpen(){return!0}_projectStrokeOnPoints(i){return ea(this.points,i,this.isOpen())}_calcDimensions(i){i=D({scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,strokeLineCap:this.strokeLineCap,strokeLineJoin:this.strokeLineJoin,strokeMiterLimit:this.strokeMiterLimit,strokeUniform:this.strokeUniform,strokeWidth:this.strokeWidth},i||{});let e=this.exactBoundingBox?this._projectStrokeOnPoints(i).map(A=>A.projectedPoint):this.points;if(e.length===0)return{left:0,top:0,width:0,height:0,pathOffset:new N,strokeOffset:new N,strokeDiff:new N};let r=oe(e),t=Br(D(D({},i),{},{scaleX:1,scaleY:1})),n=oe(this.points.map(A=>ki(A,t,!0))),f=new N(this.scaleX,this.scaleY),o=r.left+r.width/2,a=r.top+r.height/2;return this.exactBoundingBox&&(o-=a*Math.tan(z0(this.skewX)),a-=o*Math.tan(z0(this.skewY))),D(D({},r),{},{pathOffset:new N(o,a),strokeOffset:new N(n.left,n.top).subtract(new N(r.left,r.top)).multiply(f),strokeDiff:new N(r.width,r.height).subtract(new N(n.width,n.height)).multiply(f)})}_findCenterFromElement(){let i=oe(this.points);return new N(i.left+i.width/2,i.top+i.height/2)}setDimensions(){this.setBoundingBox()}setBoundingBox(i){let{left:e,top:r,width:t,height:n,pathOffset:f,strokeOffset:o,strokeDiff:a}=this._calcDimensions();this.set({width:t,height:n,pathOffset:f,strokeOffset:o,strokeDiff:a}),i&&this.setPositionByOrigin(new N(e+t/2,r+n/2),d0,d0)}isStrokeAccountedForInDimensions(){return this.exactBoundingBox}_getNonTransformedDimensions(){return this.exactBoundingBox?new N(this.width,this.height):super._getNonTransformedDimensions()}_getTransformedDimensions(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.exactBoundingBox){let f;if(Object.keys(i).some(o=>this.strokeUniform||this.constructor.layoutProperties.includes(o))){var e,r;let{width:o,height:a}=this._calcDimensions(i);f=new N((e=i.width)!==null&&e!==void 0?e:o,(r=i.height)!==null&&r!==void 0?r:a)}else{var t,n;f=new N((t=i.width)!==null&&t!==void 0?t:this.width,(n=i.height)!==null&&n!==void 0?n:this.height)}return f.multiply(new N(i.scaleX||this.scaleX,i.scaleY||this.scaleY))}return super._getTransformedDimensions(i)}_set(i,e){let r=this.initialized&&this[i]!==e,t=super._set(i,e);return this.exactBoundingBox&&r&&((i===gi||i===Gi)&&this.strokeUniform&&this.constructor.layoutProperties.includes("strokeUniform")||this.constructor.layoutProperties.includes(i))&&this.setDimensions(),t}toObject(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return D(D({},super.toObject(i)),{},{points:this.points.map(e=>{let{x:r,y:t}=e;return{x:r,y:t}})})}_toSVG(){let i=[],e=this.pathOffset.x,r=this.pathOffset.y,t=x0.NUM_FRACTION_DIGITS;for(let n=0,f=this.points.length;n +`)]}_render(i){let e=this.points.length,r=this.pathOffset.x,t=this.pathOffset.y;if(e&&!isNaN(this.points[e-1].y)){i.beginPath(),i.moveTo(this.points[0].x-r,this.points[0].y-t);for(let n=0;nf!==void 0);this._setStyleDeclaration(r,t,n)}getSelectionStyles(i,e,r){let t=[];for(let n=i;n<(e||i);n++)t.push(this.getStyleAtPosition(n,r));return t}getStyleAtPosition(i,e){let{lineIndex:r,charIndex:t}=this.get2DCursorLocation(i);return e?this.getCompleteStyleDeclaration(r,t):this._getStyleDeclaration(r,t)}setSelectionStyles(i,e,r){for(let t=e;t<(r||e);t++)this._extendStyles(t,i);this._forceClearCache=!0}_getStyleDeclaration(i,e){var r;let t=this.styles&&this.styles[i];return t&&(r=t[e])!==null&&r!==void 0?r:{}}getCompleteStyleDeclaration(i,e){return D(D({},g2(this,this.constructor._styleProperties)),this._getStyleDeclaration(i,e))}_setStyleDeclaration(i,e,r){this.styles[i][e]=r}_deleteStyleDeclaration(i,e){delete this.styles[i][e]}_getLineStyle(i){return!!this.styles[i]}_setLineStyle(i){this.styles[i]={}}_deleteLineStyle(i){delete this.styles[i]}};V(Gt,"_styleProperties",nl);var ol=/ +/g,al=/"/g;function Rn(s,i,e,r,t){return" ".concat(function(n,f){let{left:o,top:a,width:A,height:l}=f,k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:x0.NUM_FRACTION_DIGITS,u=wr(ri,n,!1),[h,c,d,b]=[o,a,A,l].map(g=>P0(g,k));return"')}(s,{left:i,top:e,width:r,height:t}),` +`)}var sl=["textAnchor","textDecoration","dx","dy","top","left","fontSize","strokeWidth"],Pn,ai=class extends Gt{static getDefaults(){return D(D({},super.getDefaults()),ai.ownDefaults)}constructor(i,e){super(),V(this,"__charBounds",[]),Object.assign(this,ai.ownDefaults),this.setOptions(e),this.styles||(this.styles={}),this.text=i,this.initialized=!0,this.path&&this.setPathInfo(),this.initDimensions(),this.setCoords()}setPathInfo(){let i=this.path;i&&(i.segmentsInfo=Y1(i.path))}_splitText(){let i=this._splitTextIntoLines(this.text);return this.textLines=i.lines,this._textLines=i.graphemeLines,this._unwrappedTextLines=i._unwrappedLines,this._text=i.graphemeText,i}initDimensions(){this._splitText(),this._clearCache(),this.dirty=!0,this.path?(this.width=this.path.width,this.height=this.path.height):(this.width=this.calcTextWidth()||this.cursorWidth||this.MIN_TEXT_WIDTH,this.height=this.calcTextHeight()),this.textAlign.includes(fe)&&this.enlargeSpaces()}enlargeSpaces(){let i,e,r,t,n,f,o;for(let a=0,A=this._textLines.length;a')}_getCacheCanvasDimensions(){let i=super._getCacheCanvasDimensions(),e=this.fontSize;return i.width+=e*i.zoomX,i.height+=e*i.zoomY,i}_render(i){let e=this.path;e&&!e.isNotVisible()&&e._render(i),this._setTextStyles(i),this._renderTextLinesBackground(i),this._renderTextDecoration(i,"underline"),this._renderText(i),this._renderTextDecoration(i,"overline"),this._renderTextDecoration(i,"linethrough")}_renderText(i){this.paintFirst===xi?(this._renderTextStroke(i),this._renderTextFill(i)):(this._renderTextFill(i),this._renderTextStroke(i))}_setTextStyles(i,e,r){if(i.textBaseline="alphabetic",this.path)switch(this.pathAlign){case d0:i.textBaseline="middle";break;case"ascender":i.textBaseline=yi;break;case"descender":i.textBaseline=Hn}i.font=this._getFontDeclaration(e,r)}calcTextWidth(){let i=this.getLineWidth(0);for(let e=1,r=this._textLines.length;ei&&(i=t)}return i}_renderTextLine(i,e,r,t,n,f){this._renderChars(i,e,r,t,n,f)}_renderTextLinesBackground(i){if(!this.textBackgroundColor&&!this.styleHas("textBackgroundColor"))return;let e=i.fillStyle,r=this._getLeftOffset(),t=this._getTopOffset();for(let n=0,f=this._textLines.length;n=0:uk?l%=k:l<0&&(l+=k),this._setGraphemeOnPath(l,r),l+=r.kernedWidth}return{width:t,numOfSpaces:0}}_setGraphemeOnPath(i,e){let r=i+e.kernedWidth/2,t=this.path,n=da(t.path,r,t.segmentsInfo);e.renderLeft=n.x-t.pathOffset.x,e.renderTop=n.y-t.pathOffset.y,e.angle=n.angle+(this.pathSide===$0?Math.PI:0)}_getGraphemeBox(i,e,r,t,n){let f=this.getCompleteStyleDeclaration(e,r),o=t?this.getCompleteStyleDeclaration(e,r-1):{},a=this._measureChar(i,f,t,o),A,l=a.kernedWidth,k=a.width;this.charSpacing!==0&&(A=this._getWidthOfCharSpacing(),k+=A,l+=A);let u={width:k,left:0,height:f.fontSize,kernedWidth:l,deltaY:f.deltaY};if(r>0&&!n){let h=this.__charBounds[e][r-1];u.left=h.left+h.width+a.kernedWidth-a.width}return u}getHeightOfLine(i){if(this.__lineHeights[i])return this.__lineHeights[i];let e=this.getHeightOfChar(i,0);for(let r=1,t=this._textLines[i].length;r0){let W=t+h+b;this.direction==="rtl"&&(W=this.width-W-g),v&&w&&(i.fillStyle=w,i.fillRect(W,p+o*m+C,g,this.fontSize/15)),b=x.left,g=x.width,v=c,w=d,m=B,C=I}else g+=x.kernedWidth}let y=t+h+b;this.direction==="rtl"&&(y=this.width-y-g),i.fillStyle=d,c&&d&&i.fillRect(y,p+o*m+C,g-f,this.fontSize/15),r+=l}this._removeShadow(i)}_getFontDeclaration(){let{fontFamily:i=this.fontFamily,fontStyle:e=this.fontStyle,fontWeight:r=this.fontWeight,fontSize:t=this.fontSize}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,f=i.includes("'")||i.includes('"')||i.includes(",")||ai.genericFonts.includes(i.toLowerCase())?i:'"'.concat(i,'"');return[e,r,"".concat(n?this.CACHE_FONT_SIZE:t,"px"),f].join(" ")}render(i){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._forceClearCache&&this.initDimensions(),super.render(i)))}graphemeSplit(i){return jt(i)}_splitTextIntoLines(i){let e=i.split(this._reNewline),r=new Array(e.length),t=[` +`],n=[];for(let f=0;f0&&arguments[0]!==void 0?arguments[0]:[];return D(D({},super.toObject([...Ea,...i])),{},{styles:ta(this.styles,this.text)},this.path?{path:this.path.toObject()}:{})}set(i,e){let{textLayoutProperties:r}=this.constructor;super.set(i,e);let t=!1,n=!1;if(typeof i=="object")for(let f in i)f==="path"&&this.setPathInfo(),t=t||r.includes(f),n=n||f==="path";else t=r.includes(i),n=i==="path";return n&&this.setPathInfo(),t&&this.initialized&&(this.initDimensions(),this.setCoords()),this}complexity(){return 1}static async fromElement(i,e,r){let t=Ce(i,ai.ATTRIBUTE_NAMES,r),n=D(D({},e),t),{textAnchor:f=E0,textDecoration:o="",dx:a=0,dy:A=0,top:l=0,left:k=0,fontSize:u=y1,strokeWidth:h=1}=n,c=N0(n,sl),d=new this((i.textContent||"").replace(/^\s+|\s+$|\n+/g,"").replace(/\s+/g," "),D({left:k+a,top:l+A,underline:o.includes("underline"),overline:o.includes("overline"),linethrough:o.includes("line-through"),strokeWidth:0,fontSize:u},c)),b=d.getScaledHeight()/d.height,g=((d.height+d.strokeWidth)*d.lineHeight-d.height)*b,v=d.getScaledHeight()+g,w=0;return f===d0&&(w=d.getScaledWidth()/2),f===$0&&(w=d.getScaledWidth()),d.set({left:d.left-w,top:d.top-(v-d.fontSize*(.07+d._fontSizeFraction))/d.lineHeight,strokeWidth:h}),d}static fromObject(i){return this._fromObject(D(D({},i),{},{styles:na(i.styles||{},i.text)}),{extraParam:"text"})}};V(ai,"textLayoutProperties",Ia),V(ai,"cacheProperties",[..._e,...Ea]),V(ai,"ownDefaults",fl),V(ai,"type","Text"),V(ai,"genericFonts",["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]),V(ai,"ATTRIBUTE_NAMES",Pe.concat("x","y","dx","dy","font-family","font-style","font-weight","font-size","letter-spacing","text-decoration","text-anchor")),Ko(ai,[class extends Ct{_toSVG(){let s=this._getSVGLeftTopOffsets(),i=this._getSVGTextAndBg(s.textTop,s.textLeft);return this._wrapSVGTextAndBg(i)}toSVG(s){return this._createBaseSVGMarkup(this._toSVG(),{reviver:s,noStyle:!0,withShadow:!0})}_getSVGLeftTopOffsets(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}}_wrapSVGTextAndBg(s){let{textBgRects:i,textSpans:e}=s,r=this.getSvgTextDecoration(this);return[i.join(""),' ",e.join(""),` +`]}_getSVGTextAndBg(s,i){let e=[],r=[],t,n=s;this.backgroundColor&&r.push(...Rn(this.backgroundColor,-this.width/2,-this.height/2,this.width,this.height));for(let f=0,o=this._textLines.length;f").concat(ra(s),"")}_setSVGTextLineText(s,i,e,r){let t=this.getHeightOfLine(i),n=this.textAlign.includes(fe),f=this._textLines[i],o,a,A,l,k,u="",h=0;r+=t*(1-this._fontSizeFraction)/this.lineHeight;for(let c=0,d=f.length-1;c<=d;c++)k=c===d||this.charSpacing,u+=f[c],A=this.__charBounds[i][c],h===0?(e+=A.kernedWidth-A.width,h+=A.width):h+=A.kernedWidth,n&&!k&&this._reSpaceAndTab.test(f[c])&&(k=!0),k||(o=o||this.getCompleteStyleDeclaration(i,c),a=this.getCompleteStyleDeclaration(i,c+1),k=Lt(o,a,!0)),k&&(l=this._getStyleDeclaration(i,c),s.push(this._createTextCharSpan(u,l,e,r)),u="",o=a,this.direction==="rtl"?e-=h:e+=h,h=0)}_setSVGTextLineBg(s,i,e,r){let t=this._textLines[i],n=this.getHeightOfLine(i)/this.lineHeight,f,o=0,a=0,A=this.getValueOfPropertyAt(i,0,"textBackgroundColor");for(let l=0;ls[i.replace("-","")]).join(" ")}}]),r0.setClass(ai),r0.setSVGClass(ai);var d1=class{constructor(i){V(this,"target",void 0),V(this,"__mouseDownInPlace",!1),V(this,"__dragStartFired",!1),V(this,"__isDraggingOver",!1),V(this,"__dragStartSelection",void 0),V(this,"__dragImageDisposer",void 0),V(this,"_dispose",void 0),this.target=i;let e=[this.target.on("dragenter",this.dragEnterHandler.bind(this)),this.target.on("dragover",this.dragOverHandler.bind(this)),this.target.on("dragleave",this.dragLeaveHandler.bind(this)),this.target.on("dragend",this.dragEndHandler.bind(this)),this.target.on("drop",this.dropHandler.bind(this))];this._dispose=()=>{e.forEach(r=>r()),this._dispose=void 0}}isPointerOverSelection(i){let e=this.target,r=e.getSelectionStartFromPointer(i);return e.isEditing&&r>=e.selectionStart&&r<=e.selectionEnd&&e.selectionStart{p.remove()},Li(i.target||this.target.hiddenTextarea).body.appendChild(p),(r=i.dataTransfer)===null||r===void 0||r.setDragImage(p,b.x,b.y)}onDragStart(i){this.__dragStartFired=!0;let e=this.target,r=this.isActive();if(r&&i.dataTransfer){let t=this.__dragStartSelection={selectionStart:e.selectionStart,selectionEnd:e.selectionEnd},n=e._text.slice(t.selectionStart,t.selectionEnd).join(""),f=D({text:e.text,value:n},t);i.dataTransfer.setData("text/plain",n),i.dataTransfer.setData("application/fabric",JSON.stringify({value:n,styles:e.getSelectionStyles(t.selectionStart,t.selectionEnd,!0)})),i.dataTransfer.effectAllowed="copyMove",this.setDragImage(i,f)}return e.abortCursorAnimation(),r}canDrop(i){if(this.target.editable&&!this.target.getActiveControl()&&!i.defaultPrevented){if(this.isActive()&&this.__dragStartSelection){let e=this.target.getSelectionStartFromPointer(i),r=this.__dragStartSelection;return er.selectionEnd}return!0}return!1}targetCanDrop(i){return this.target.canDrop(i)}dragEnterHandler(i){let{e}=i,r=this.targetCanDrop(e);!this.__isDraggingOver&&r&&(this.__isDraggingOver=!0)}dragOverHandler(i){let{e}=i,r=this.targetCanDrop(e);!this.__isDraggingOver&&r?this.__isDraggingOver=!0:this.__isDraggingOver&&!r&&(this.__isDraggingOver=!1),this.__isDraggingOver&&(e.preventDefault(),i.canDrop=!0,i.dropTarget=this.target)}dragLeaveHandler(){(this.__isDraggingOver||this.isActive())&&(this.__isDraggingOver=!1)}dropHandler(i){var e;let{e:r}=i,t=r.defaultPrevented;this.__isDraggingOver=!1,r.preventDefault();let n=(e=r.dataTransfer)===null||e===void 0?void 0:e.getData("text/plain");if(n&&!t){let f=this.target,o=f.canvas,a=f.getSelectionStartFromPointer(r),{styles:A}=r.dataTransfer.types.includes("application/fabric")?JSON.parse(r.dataTransfer.getData("application/fabric")):{},l=n[Math.max(0,n.length-1)],k=0;if(this.__dragStartSelection){let u=this.__dragStartSelection.selectionStart,h=this.__dragStartSelection.selectionEnd;a>u&&a<=h?a=u:a>h&&(a-=h-u),f.removeChars(u,h),delete this.__dragStartSelection}f._reNewline.test(l)&&(f._reNewline.test(f._text[a])||a===f._text.length)&&(n=n.trimEnd()),i.didDrop=!0,i.dropTarget=f,f.insertChars(n,A,a),o.setActiveObject(f),f.enterEditing(r),f.selectionStart=Math.min(a+k,f._text.length),f.selectionEnd=Math.min(f.selectionStart+n.length,f._text.length),f.hiddenTextarea.value=f.text,f._updateTextarea(),f.hiddenTextarea.focus(),f.fire(bt,{index:a+k,action:"drop"}),o.fire("text:changed",{target:f}),o.contextTopDirty=!0,o.requestRenderAll()}}dragEndHandler(i){let{e}=i;if(this.isActive()&&this.__dragStartFired&&this.__dragStartSelection){var r;let t=this.target,n=this.target.canvas,{selectionStart:f,selectionEnd:o}=this.__dragStartSelection,a=((r=e.dataTransfer)===null||r===void 0?void 0:r.dropEffect)||Bi;a===Bi?(t.selectionStart=f,t.selectionEnd=o,t._updateTextarea(),t.hiddenTextarea.focus()):(t.clearContextTop(),a==="move"&&(t.removeChars(f,o),t.selectionStart=t.selectionEnd=f,t.hiddenTextarea&&(t.hiddenTextarea.value=t.text),t._updateTextarea(),t.fire(bt,{index:f,action:"dragend"}),n.fire("text:changed",{target:t}),n.requestRenderAll()),t.exitEditing())}this.__dragImageDisposer&&this.__dragImageDisposer(),delete this.__dragImageDisposer,delete this.__dragStartSelection,this.__isDraggingOver=!1}dispose(){this._dispose&&this._dispose()}},ao=/[ \n\.,;!\?\-]/,b1=class extends ai{constructor(){super(...arguments),V(this,"_currentCursorOpacity",1)}initBehavior(){this._tick=this._tick.bind(this),this._onTickComplete=this._onTickComplete.bind(this),this.updateSelectionOnMouseMove=this.updateSelectionOnMouseMove.bind(this)}onDeselect(i){return this.isEditing&&this.exitEditing(),this.selected=!1,super.onDeselect(i)}_animateCursor(i){let{toValue:e,duration:r,delay:t,onComplete:n}=i;return M1({startValue:this._currentCursorOpacity,endValue:e,duration:r,delay:t,onComplete:n,abort:()=>!this.canvas||this.selectionStart!==this.selectionEnd,onChange:f=>{this._currentCursorOpacity=f,this.renderCursorOrSelection()}})}_tick(i){this._currentTickState=this._animateCursor({toValue:0,duration:this.cursorDuration/2,delay:Math.max(i||0,100),onComplete:this._onTickComplete})}_onTickComplete(){var i;(i=this._currentTickCompleteState)===null||i===void 0||i.abort(),this._currentTickCompleteState=this._animateCursor({toValue:1,duration:this.cursorDuration,onComplete:this._tick})}initDelayedCursor(i){this.abortCursorAnimation(),this._tick(i?0:this.cursorDelay)}abortCursorAnimation(){let i=!1;[this._currentTickState,this._currentTickCompleteState].forEach(e=>{e&&!e.isDone()&&(i=!0,e.abort())}),this._currentCursorOpacity=1,i&&this.clearContextTop()}restartCursorIfNeeded(){[this._currentTickState,this._currentTickCompleteState].some(i=>!i||i.isDone())&&this.initDelayedCursor()}selectAll(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this}getSelectedText(){return this._text.slice(this.selectionStart,this.selectionEnd).join("")}findWordBoundaryLeft(i){let e=0,r=i-1;if(this._reSpace.test(this._text[r]))for(;this._reSpace.test(this._text[r]);)e++,r--;for(;/\S/.test(this._text[r])&&r>-1;)e++,r--;return i-e}findWordBoundaryRight(i){let e=0,r=i;if(this._reSpace.test(this._text[r]))for(;this._reSpace.test(this._text[r]);)e++,r++;for(;/\S/.test(this._text[r])&&r-1;)e++,r--;return i-e}findLineBoundaryRight(i){let e=0,r=i;for(;!/\n/.test(this._text[r])&&r0&&this._reSpace.test(r[i])&&(e===-1||!B1.test(r[i-1]))?i-1:i,n=r[t];for(;t>0&&tthis.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=r):(this.selectionStart=r,this.selectionEnd=this.__selectionStartOnMouseDown),this.selectionStart===t&&this.selectionEnd===n||(this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}_setEditingProps(){this.hoverCursor="text",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor="text"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0}fromStringToGraphemeSelection(i,e,r){let t=r.slice(0,i),n=this.graphemeSplit(t).length;if(i===e)return{selectionStart:n,selectionEnd:n};let f=r.slice(i,e);return{selectionStart:n,selectionEnd:n+this.graphemeSplit(f).length}}fromGraphemeToStringSelection(i,e,r){let t=r.slice(0,i).join("").length;return i===e?{selectionStart:t,selectionEnd:t}:{selectionStart:t,selectionEnd:t+r.slice(i,e).join("").length}}_updateTextarea(){if(this.cursorOffsetCache={},this.hiddenTextarea){if(!this.inCompositionMode){let i=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=i.selectionStart,this.hiddenTextarea.selectionEnd=i.selectionEnd}this.updateTextareaPosition()}}updateFromTextArea(){if(!this.hiddenTextarea)return;this.cursorOffsetCache={};let i=this.hiddenTextarea;this.text=i.value,this.set("dirty",!0),this.initDimensions(),this.setCoords();let e=this.fromStringToGraphemeSelection(i.selectionStart,i.selectionEnd,i.value);this.selectionEnd=this.selectionStart=e.selectionEnd,this.inCompositionMode||(this.selectionStart=e.selectionStart),this.updateTextareaPosition()}updateTextareaPosition(){if(this.selectionStart===this.selectionEnd){let i=this._calcTextareaPosition();this.hiddenTextarea.style.left=i.left,this.hiddenTextarea.style.top=i.top}}_calcTextareaPosition(){if(!this.canvas)return{left:"1px",top:"1px"};let i=this.inCompositionMode?this.compositionStart:this.selectionStart,e=this._getCursorBoundaries(i),r=this.get2DCursorLocation(i),t=r.lineIndex,n=r.charIndex,f=this.getValueOfPropertyAt(t,n,"fontSize")*this.lineHeight,o=e.leftOffset,a=this.getCanvasRetinaScaling(),A=this.canvas.upperCanvasEl,l=A.width/a,k=A.height/a,u=l-f,h=k-f,c=new N(e.left+o,e.top+e.topOffset+f).transform(this.calcTransformMatrix()).transform(this.canvas.viewportTransform).multiply(new N(A.clientWidth/l,A.clientHeight/k));return c.x<0&&(c.x=0),c.x>u&&(c.x=u),c.y<0&&(c.y=0),c.y>h&&(c.y=h),c.x+=this.canvas._offset.left,c.y+=this.canvas._offset.top,{left:"".concat(c.x,"px"),top:"".concat(c.y,"px"),fontSize:"".concat(f,"px"),charHeight:f}}_saveEditingProps(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,selectable:this.selectable,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}}_restoreEditingProps(){this._savedProps&&(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor||this.canvas.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor||this.canvas.moveCursor),delete this._savedProps)}_exitEditing(){let i=this.hiddenTextarea;this.selected=!1,this.isEditing=!1,i&&(i.blur&&i.blur(),i.parentNode&&i.parentNode.removeChild(i)),this.hiddenTextarea=null,this.abortCursorAnimation(),this.selectionStart!==this.selectionEnd&&this.clearContextTop()}exitEditingImpl(){this._exitEditing(),this.selectionEnd=this.selectionStart,this._restoreEditingProps(),this._forceClearCache&&(this.initDimensions(),this.setCoords())}exitEditing(){let i=this._textBeforeEdit!==this.text;return this.exitEditingImpl(),this.fire("editing:exited"),i&&this.fire(gt),this.canvas&&(this.canvas.fire("text:editing:exited",{target:this}),i&&this.canvas.fire("object:modified",{target:this})),this}_removeExtraneousStyles(){for(let i in this.styles)this._textLines[i]||delete this.styles[i]}removeStyleFromTo(i,e){let{lineIndex:r,charIndex:t}=this.get2DCursorLocation(i,!0),{lineIndex:n,charIndex:f}=this.get2DCursorLocation(e,!0);if(r!==n){if(this.styles[r])for(let o=t;o=f&&(o[l-a]=o[A],delete o[A])}}}shiftLineStyles(i,e){let r=Object.assign({},this.styles);for(let t in this.styles){let n=parseInt(t,10);n>i&&(this.styles[n+e]=r[n],r[n-e]||delete this.styles[n])}}insertNewlineStyleObject(i,e,r,t){let n={},f=this._unwrappedTextLines[i].length,o=f===e,a=!1;r||(r=1),this.shiftLineStyles(i,r);let A=this.styles[i]?this.styles[i][e===0?e:e-1]:void 0;for(let k in this.styles[i]){let u=parseInt(k,10);u>=e&&(a=!0,n[u-e]=this.styles[i][k],o&&e===0||delete this.styles[i][k])}let l=!1;for(a&&!o&&(this.styles[i+r]=n,l=!0),(l||f>e)&&r--;r>0;)t&&t[r-1]?this.styles[i+r]={0:D({},t[r-1])}:A?this.styles[i+r]={0:D({},A)}:delete this.styles[i+r],r--;this._forceClearCache=!0}insertCharStyleObject(i,e,r,t){this.styles||(this.styles={});let n=this.styles[i],f=n?D({},n):{};r||(r=1);for(let a in f){let A=parseInt(a,10);A>=e&&(n[A+r]=f[A],f[A-r]||delete n[A])}if(this._forceClearCache=!0,t){for(;r--;)Object.keys(t[r]).length&&(this.styles[i]||(this.styles[i]={}),this.styles[i][e+r]=D({},t[r]));return}if(!n)return;let o=n[e?e-1:1];for(;o&&r--;)this.styles[i][e+r]=D({},o)}insertNewStyleBlock(i,e,r){let t=this.get2DCursorLocation(e,!0),n=[0],f,o=0;for(let a=0;a0&&(this.insertCharStyleObject(t.lineIndex,t.charIndex,n[0],r),r=r&&r.slice(n[0]+1)),o&&this.insertNewlineStyleObject(t.lineIndex,t.charIndex+n[0],o),f=1;f0?this.insertCharStyleObject(t.lineIndex+f,0,n[f],r):r&&this.styles[t.lineIndex+f]&&r[0]&&(this.styles[t.lineIndex+f][0]=r[0]),r=r&&r.slice(n[f]+1);n[f]>0&&this.insertCharStyleObject(t.lineIndex+f,0,n[f],r)}removeChars(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:i+1;this.removeStyleFromTo(i,e),this._text.splice(i,e-i),this.text=this._text.join(""),this.set("dirty",!0),this.initDimensions(),this.setCoords(),this._removeExtraneousStyles()}insertChars(i,e,r){let t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:r;t>r&&this.removeStyleFromTo(r,t);let n=this.graphemeSplit(i);this.insertNewStyleBlock(n,r,e),this._text=[...this._text.slice(0,r),...n,...this._text.slice(t)],this.text=this._text.join(""),this.set("dirty",!0),this.initDimensions(),this.setCoords(),this._removeExtraneousStyles()}setSelectionStartEndWithShift(i,e,r){r<=i?(e===i?this._selectionDirection=E0:this._selectionDirection===$0&&(this._selectionDirection=E0,this.selectionEnd=i),this.selectionStart=r):r>i&&r{let[o,a]=f;return e.setAttribute(o,a)});let{top:r,left:t,fontSize:n}=this._calcTextareaPosition();e.style.cssText="position: absolute; top: ".concat(r,"; left: ").concat(t,"; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: ").concat(n,";"),(this.hiddenTextareaContainer||i.body).appendChild(e),Object.entries({blur:"blur",keydown:"onKeyDown",keyup:"onKeyUp",input:"onInput",copy:"copy",cut:"copy",paste:"paste",compositionstart:"onCompositionStart",compositionupdate:"onCompositionUpdate",compositionend:"onCompositionEnd"}).map(f=>{let[o,a]=f;return e.addEventListener(o,this[a].bind(this))}),this.hiddenTextarea=e}blur(){this.abortCursorAnimation()}onKeyDown(i){if(!this.isEditing)return;let e=this.direction==="rtl"?this.keysMapRtl:this.keysMap;if(i.keyCode in e)this[e[i.keyCode]](i);else{if(!(i.keyCode in this.ctrlKeysMapDown)||!i.ctrlKey&&!i.metaKey)return;this[this.ctrlKeysMapDown[i.keyCode]](i)}i.stopImmediatePropagation(),i.preventDefault(),i.keyCode>=33&&i.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}onKeyUp(i){!this.isEditing||this._copyDone||this.inCompositionMode?this._copyDone=!1:i.keyCode in this.ctrlKeysMapUp&&(i.ctrlKey||i.metaKey)&&(this[this.ctrlKeysMapUp[i.keyCode]](i),i.stopImmediatePropagation(),i.preventDefault(),this.canvas&&this.canvas.requestRenderAll())}onInput(i){let e=this.fromPaste;if(this.fromPaste=!1,i&&i.stopPropagation(),!this.isEditing)return;let r=()=>{this.updateFromTextArea(),this.fire(bt),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll())};if(this.hiddenTextarea.value==="")return this.styles={},void r();let t=this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,n=this._text.length,f=t.length,o=this.selectionStart,a=this.selectionEnd,A=o!==a,l,k,u,h,c=f-n,d=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),b=o>d.selectionStart;A?(k=this._text.slice(o,a),c+=a-o):fl[0])),A?(u=o,h=a):b?(u=a-k.length,h=a):(u=a,h=a+k.length),this.removeStyleFromTo(u,h)),g.length){let{copyPasteData:v}=ae();e&&g.join("")===v.copiedText&&!x0.disableStyleCopyPaste&&(l=v.copiedTextStyle),this.insertNewStyleBlock(g,o,l)}r()}onCompositionStart(){this.inCompositionMode=!0}onCompositionEnd(){this.inCompositionMode=!1}onCompositionUpdate(i){let{target:e}=i,{selectionStart:r,selectionEnd:t}=e;this.compositionStart=r,this.compositionEnd=t,this.updateTextareaPosition()}copy(){if(this.selectionStart===this.selectionEnd)return;let{copyPasteData:i}=ae();i.copiedText=this.getSelectedText(),x0.disableStyleCopyPaste?i.copiedTextStyle=void 0:i.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0}paste(){this.fromPaste=!0}_getWidthBeforeCursor(i,e){let r,t=this._getLineLeftOffset(i);return e>0&&(r=this.__charBounds[i][e-1],t+=r.left+r.width),t}getDownCursorOffset(i,e){let r=this._getSelectionForOffset(i,e),t=this.get2DCursorLocation(r),n=t.lineIndex;if(n===this._textLines.length-1||i.metaKey||i.keyCode===34)return this._text.length-r;let f=t.charIndex,o=this._getWidthBeforeCursor(n,f),a=this._getIndexOnLine(n+1,o);return this._textLines[n].slice(f).length+a+1+this.missingNewlineOffset(n)}_getSelectionForOffset(i,e){return i.shiftKey&&this.selectionStart!==this.selectionEnd&&e?this.selectionEnd:this.selectionStart}getUpCursorOffset(i,e){let r=this._getSelectionForOffset(i,e),t=this.get2DCursorLocation(r),n=t.lineIndex;if(n===0||i.metaKey||i.keyCode===33)return-r;let f=t.charIndex,o=this._getWidthBeforeCursor(n,f),a=this._getIndexOnLine(n-1,o),A=this._textLines[n].slice(0,f),l=this.missingNewlineOffset(n-1);return-this._textLines[n-1].length+a-A.length+(1-l)}_getIndexOnLine(i,e){let r=this._textLines[i],t,n,f=this._getLineLeftOffset(i),o=0;for(let a=0,A=r.length;ae){n=!0;let l=f-t,k=f,u=Math.abs(l-e);o=Math.abs(k-e)=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",i)}moveCursorUp(i){this.selectionStart===0&&this.selectionEnd===0||this._moveCursorUpOrDown("Up",i)}_moveCursorUpOrDown(i,e){let r=this["get".concat(i,"CursorOffset")](e,this._selectionDirection===$0);if(e.shiftKey?this.moveCursorWithShift(r):this.moveCursorWithoutShift(r),r!==0){let t=this.text.length;this.selectionStart=c2(0,this.selectionStart,t),this.selectionEnd=c2(0,this.selectionEnd,t),this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea()}}moveCursorWithShift(i){let e=this._selectionDirection===E0?this.selectionStart+i:this.selectionEnd+i;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,e),i!==0}moveCursorWithoutShift(i){return i<0?(this.selectionStart+=i,this.selectionEnd=this.selectionStart):(this.selectionEnd+=i,this.selectionStart=this.selectionEnd),i!==0}moveCursorLeft(i){this.selectionStart===0&&this.selectionEnd===0||this._moveCursorLeftOrRight("Left",i)}_move(i,e,r){let t;if(i.altKey)t=this["findWordBoundary".concat(r)](this[e]);else{if(!i.metaKey&&i.keyCode!==35&&i.keyCode!==36)return this[e]+=r==="Left"?-1:1,!0;t=this["findLineBoundary".concat(r)](this[e])}return t!==void 0&&this[e]!==t&&(this[e]=t,!0)}_moveLeft(i,e){return this._move(i,e,"Left")}_moveRight(i,e){return this._move(i,e,"Right")}moveCursorLeftWithoutShift(i){let e=!0;return this._selectionDirection=E0,this.selectionEnd===this.selectionStart&&this.selectionStart!==0&&(e=this._moveLeft(i,"selectionStart")),this.selectionEnd=this.selectionStart,e}moveCursorLeftWithShift(i){return this._selectionDirection===$0&&this.selectionStart!==this.selectionEnd?this._moveLeft(i,"selectionEnd"):this.selectionStart!==0?(this._selectionDirection=E0,this._moveLeft(i,"selectionStart")):void 0}moveCursorRight(i){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",i)}_moveCursorLeftOrRight(i,e){let r="moveCursor".concat(i).concat(e.shiftKey?"WithShift":"WithoutShift");this._currentCursorOpacity=1,this[r](e)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())}moveCursorRightWithShift(i){return this._selectionDirection===E0&&this.selectionStart!==this.selectionEnd?this._moveRight(i,"selectionStart"):this.selectionEnd!==this._text.length?(this._selectionDirection=$0,this._moveRight(i,"selectionEnd")):void 0}moveCursorRightWithoutShift(i){let e=!0;return this._selectionDirection=$0,this.selectionStart===this.selectionEnd?(e=this._moveRight(i,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,e}},Nn=s=>!!s.button,p1=class extends g1{constructor(){super(...arguments),V(this,"draggableTextDelegate",void 0)}initBehavior(){this.on("mousedown",this._mouseDownHandler),this.on("mousedown:before",this._mouseDownHandlerBefore),this.on("mouseup",this.mouseUpHandler),this.on("mousedblclick",this.doubleClickHandler),this.on("tripleclick",this.tripleClickHandler),this.__lastClickTime=+new Date,this.__lastLastClickTime=+new Date,this.__lastPointer={},this.on("mousedown",this.onMouseDown),this.draggableTextDelegate=new d1(this),super.initBehavior()}shouldStartDragging(){return this.draggableTextDelegate.isActive()}onDragStart(i){return this.draggableTextDelegate.onDragStart(i)}canDrop(i){return this.draggableTextDelegate.canDrop(i)}onMouseDown(i){if(!this.canvas)return;this.__newClickTime=+new Date;let e=i.pointer;this.isTripleClick(e)&&(this.fire("tripleclick",i),Ln(i.e)),this.__lastLastClickTime=this.__lastClickTime,this.__lastClickTime=this.__newClickTime,this.__lastPointer=e,this.__lastSelected=this.selected&&!this.getActiveControl()}isTripleClick(i){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===i.x&&this.__lastPointer.y===i.y}doubleClickHandler(i){this.isEditing&&this.selectWord(this.getSelectionStartFromPointer(i.e))}tripleClickHandler(i){this.isEditing&&this.selectLine(this.getSelectionStartFromPointer(i.e))}_mouseDownHandler(i){let{e}=i;this.canvas&&this.editable&&!Nn(e)&&!this.getActiveControl()&&(this.draggableTextDelegate.start(e)||(this.canvas.textEditingManager.register(this),this.selected&&(this.inCompositionMode=!1,this.setCursorByClick(e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection())))}_mouseDownHandlerBefore(i){let{e}=i;this.canvas&&this.editable&&!Nn(e)&&(this.selected=this===this.canvas._activeObject)}mouseUpHandler(i){let{e,transform:r}=i,t=this.draggableTextDelegate.end(e);if(this.canvas){this.canvas.textEditingManager.unregister(this);let n=this.canvas._activeObject;if(n&&n!==this)return}!this.editable||this.group&&!this.group.interactive||r&&r.actionPerformed||Nn(e)||t||(this.__lastSelected&&!this.getActiveControl()?(this.selected=!1,this.__lastSelected=!1,this.enterEditing(e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection()):this.selected=!0)}setCursorByClick(i){let e=this.getSelectionStartFromPointer(i),r=this.selectionStart,t=this.selectionEnd;i.shiftKey?this.setSelectionStartEndWithShift(r,t,e):(this.selectionStart=e,this.selectionEnd=e),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())}getSelectionStartFromPointer(i){let e=this.canvas.getScenePoint(i).transform(Vi(this.calcTransformMatrix())).add(new N(-this._getLeftOffset(),-this._getTopOffset())),r=0,t=0,n=0;for(let A=0;A0&&(t+=this._textLines[A-1].length+this.missingNewlineOffset(A-1));let f=Math.abs(this._getLineLeftOffset(n)),o=this._textLines[n].length,a=this.__charBounds[n];for(let A=0;A0&&arguments[0]!==void 0?arguments[0]:this.selectionStart||0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selectionEnd,r=arguments.length>2?arguments[2]:void 0;return super.getSelectionStyles(i,e,r)}setSelectionStyles(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selectionStart||0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.selectionEnd;return super.setSelectionStyles(i,e,r)}get2DCursorLocation(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.selectionStart,e=arguments.length>1?arguments[1]:void 0;return super.get2DCursorLocation(i,e)}render(i){super.render(i),this.cursorOffsetCache={},this.renderCursorOrSelection()}toCanvasElement(i){let e=this.isEditing;this.isEditing=!1;let r=super.toCanvasElement(i);return this.isEditing=e,r}renderCursorOrSelection(){if(!this.isEditing)return;let i=this.clearContextTop(!0);if(!i)return;let e=this._getCursorBoundaries();this.selectionStart!==this.selectionEnd||this.inCompositionMode?this.renderSelection(i,e):this.renderCursor(i,e),this.canvas.contextTopDirty=!0,i.restore()}_getCursorBoundaries(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.selectionStart,e=arguments.length>1?arguments[1]:void 0,r=this._getLeftOffset(),t=this._getTopOffset(),n=this._getCursorBoundariesOffsets(i,e);return{left:r,top:t,leftOffset:n.left,topOffset:n.top}}_getCursorBoundariesOffsets(i,e){return e?this.__getCursorBoundariesOffsets(i):this.cursorOffsetCache&&"top"in this.cursorOffsetCache?this.cursorOffsetCache:this.cursorOffsetCache=this.__getCursorBoundariesOffsets(i)}__getCursorBoundariesOffsets(i){let e=0,r=0,{charIndex:t,lineIndex:n}=this.get2DCursorLocation(i);for(let A=0;A0?r:0)};return this.direction==="rtl"&&(this.textAlign===$0||this.textAlign===fe||this.textAlign===gr?a.left*=-1:this.textAlign===E0||this.textAlign===Vt?a.left=f-(r>0?r:0):this.textAlign!==d0&&this.textAlign!==pr||(a.left=f-(r>0?r:0))),a}renderCursorAt(i){this._renderCursor(this.canvas.contextTop,this._getCursorBoundaries(i,!0),i)}renderCursor(i,e){this._renderCursor(i,e,this.selectionStart)}getCursorRenderingData(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.selectionStart,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._getCursorBoundaries(i),r=this.get2DCursorLocation(i),t=r.lineIndex,n=r.charIndex>0?r.charIndex-1:0,f=this.getValueOfPropertyAt(t,n,"fontSize"),o=this.getObjectScaling().x*this.canvas.getZoom(),a=this.cursorWidth/o,A=this.getValueOfPropertyAt(t,n,"deltaY"),l=e.topOffset+(1-this._fontSizeFraction)*this.getHeightOfLine(t)/this.lineHeight-f*(1-this._fontSizeFraction);return{color:this.cursorColor||this.getValueOfPropertyAt(t,n,"fill"),opacity:this._currentCursorOpacity,left:e.left+e.leftOffset-a/2,top:l+e.top+A,width:a,height:f}}_renderCursor(i,e,r){let{color:t,opacity:n,left:f,top:o,width:a,height:A}=this.getCursorRenderingData(r,e);i.fillStyle=t,i.globalAlpha=n,i.fillRect(f,o,a,A)}renderSelection(i,e){let r={selectionStart:this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,selectionEnd:this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd};this._renderSelection(i,r,e)}renderDragSourceEffect(){let i=this.draggableTextDelegate.getDragStartSelection();this._renderSelection(this.canvas.contextTop,i,this._getCursorBoundaries(i.selectionStart,!0))}renderDropTargetEffect(i){let e=this.getSelectionStartFromPointer(i);this.renderCursorAt(e)}_renderSelection(i,e,r){let t=e.selectionStart,n=e.selectionEnd,f=this.textAlign.includes(fe),o=this.get2DCursorLocation(t),a=this.get2DCursorLocation(n),A=o.lineIndex,l=a.lineIndex,k=o.charIndex<0?0:o.charIndex,u=a.charIndex<0?0:a.charIndex;for(let h=A;h<=l;h++){let c=this._getLineLeftOffset(h)||0,d=this.getHeightOfLine(h),b=0,g=0,v=0;if(h===A&&(g=this.__charBounds[A][k].left),h>=A&&h1)&&(d/=this.lineHeight);let w=r.left+c+g,p=d,m=0,C=v-g;this.inCompositionMode?(i.fillStyle=this.compositionColor||"black",p=1,m=d):i.fillStyle=this.selectionColor,this.direction==="rtl"&&(this.textAlign===$0||this.textAlign===fe||this.textAlign===gr?w=this.width-w-C:this.textAlign===E0||this.textAlign===Vt?w=r.left+c-v:this.textAlign!==d0&&this.textAlign!==pr||(w=r.left+c-v)),i.fillRect(w,r.top+r.topOffset+m,C,p),r.topOffset+=b}}getCurrentCharFontSize(){let i=this._getCurrentCharIndex();return this.getValueOfPropertyAt(i.l,i.c,"fontSize")}getCurrentCharColor(){let i=this._getCurrentCharIndex();return this.getValueOfPropertyAt(i.l,i.c,ri)}_getCurrentCharIndex(){let i=this.get2DCursorLocation(this.selectionStart,!0),e=i.charIndex>0?i.charIndex-1:0;return{l:i.lineIndex,c:e}}dispose(){this.exitEditingImpl(),this.draggableTextDelegate.dispose(),super.dispose()}};V(h0,"ownDefaults",Al),V(h0,"type","IText"),r0.setClass(h0),r0.setClass(h0,"i-text");var ge=class extends h0{static getDefaults(){return D(D({},super.getDefaults()),ge.ownDefaults)}constructor(i,e){super(i,D(D({},ge.ownDefaults),e))}static createControls(){return{controls:qo()}}initDimensions(){this.initialized&&(this.isEditing&&this.initDelayedCursor(),this._clearCache(),this.dynamicMinWidth=0,this._styleMap=this._generateStyleMap(this._splitText()),this.dynamicMinWidth>this.width&&this._set("width",this.dynamicMinWidth),this.textAlign.includes(fe)&&this.enlargeSpaces(),this.height=this.calcTextHeight())}_generateStyleMap(i){let e=0,r=0,t=0,n={};for(let f=0;f0?(r=0,t++,e++):!this.splitByGrapheme&&this._reSpaceAndTab.test(i.graphemeText[t])&&f>0&&(r++,t++),n[f]={line:e,offset:r},t+=i.graphemeLines[f].length,r+=i.graphemeLines[f].length;return n}styleHas(i,e){if(this._styleMap&&!this.isWrapping){let r=this._styleMap[e];r&&(e=r.line)}return super.styleHas(i,e)}isEmptyStyles(i){if(!this.styles)return!0;let e,r=0,t=i+1,n=!1,f=this._styleMap[i],o=this._styleMap[i+1];f&&(i=f.line,r=f.offset),o&&(t=o.line,n=t===i,e=o.offset);let a=i===void 0?this.styles:{line:this.styles[i]};for(let A in a)for(let l in a[A]){let k=parseInt(l,10);if(k>=r&&(!n||k{let o=0,a=e?this.graphemeSplit(n):this.wordSplit(n);return a.length===0?[{word:[],width:0}]:a.map(A=>{let l=e?[A]:this.graphemeSplit(A),k=this._measureWord(l,f,o);return t=Math.max(k,t),o+=l.length+r.length,{word:l,width:k}})}),largestWordWidth:t}}_measureWord(i,e){let r,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=0;for(let f=0,o=i.length;f3&&arguments[3]!==void 0?arguments[3]:0,o=this._getWidthOfCharSpacing(),a=this.splitByGrapheme,A=[],l=a?"":" ",k=0,u=[],h=0,c=0,d=!0;e-=f;let b=Math.max(e,t,this.dynamicMinWidth),g=n[i],v;for(h=0,v=0;vb&&!d?(A.push(u),u=[],k=p,d=!0):k+=o,d||a||u.push(l),u=u.concat(w),c=a?0:this._measureWord([l],i,h),h++,d=!1}return v&&A.push(u),t+f>this.dynamicMinWidth&&(this.dynamicMinWidth=t-o+f),A}isEndOfWrapping(i){return!this._styleMap[i+1]||this._styleMap[i+1].line!==this._styleMap[i].line}missingNewlineOffset(i,e){return this.splitByGrapheme&&!e?this.isEndOfWrapping(i)?1:0:1}_splitTextIntoLines(i){let e=super._splitTextIntoLines(i),r=this._wrapText(e.lines,this.width),t=new Array(r.length);for(let n=0;n0&&arguments[0]!==void 0?arguments[0]:[];return super.toObject(["minWidth","splitByGrapheme",...i])}};V(ge,"type","Textbox"),V(ge,"textLayoutProperties",[...h0.textLayoutProperties,"width"]),V(ge,"ownDefaults",{minWidth:20,dynamicMinWidth:2,lockScalingFlip:!0,noScaleCache:!1,_wordJoiners:/[ \t\r]/,splitByGrapheme:!1}),r0.setClass(ge);var Dt=class extends Q2{shouldPerformLayout(i){return!!i.target.clipPath&&super.shouldPerformLayout(i)}shouldLayoutClipPath(){return!1}calcLayoutResult(i,e){let{target:r}=i,{clipPath:t,group:n}=r;if(!t||!this.shouldPerformLayout(i))return;let{width:f,height:o}=oe(oa(r,t)),a=new N(f,o);if(t.absolutePositioned)return{center:me(t.getRelativeCenterPoint(),void 0,n?n.calcTransformMatrix():void 0),size:a};{let A=t.getRelativeCenterPoint().transform(r.calcOwnMatrix(),!0);if(this.shouldPerformLayout(i)){let{center:l=new N,correction:k=new N}=this.calcBoundingBox(e,i)||{};return{center:l.add(A),correction:k.subtract(A),size:a}}return{center:r.getRelativeCenterPoint().add(A),size:a}}}};V(Dt,"type","clip-path"),r0.setClass(Dt);var St=class extends Q2{getInitialSize(i,e){let{target:r}=i,{size:t}=e;return new N(r.width||t.x,r.height||t.y)}};V(St,"type","fixed"),r0.setClass(St);var m1=class extends b2{subscribeTargets(i){let e=i.target;i.targets.reduce((r,t)=>(t.parent&&r.add(t.parent),r),new Set).forEach(r=>{r.layoutManager.subscribeTargets({target:r,targets:[e]})})}unsubscribeTargets(i){let e=i.target,r=e.getObjects();i.targets.reduce((t,n)=>(n.parent&&t.add(n.parent),t),new Set).forEach(t=>{!r.some(n=>n.parent===t)&&t.layoutManager.unsubscribeTargets({target:t,targets:[e]})})}},di=class extends Ki{static getDefaults(){return D(D({},super.getDefaults()),di.ownDefaults)}constructor(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),Object.assign(this,di.ownDefaults),this.setOptions(e);let{left:r,top:t,layoutManager:n}=e;this.groupInit(i,{left:r,top:t,layoutManager:n!=null?n:new m1})}_shouldSetNestedCoords(){return!0}__objectSelectionMonitor(){}multiSelectAdd(){for(var i=arguments.length,e=new Array(i),r=0;r{let n=this._objects.findIndex(o=>o.isInFrontOf(t)),f=n===-1?this.size():n;this.insertAt(f,t)})}canEnterGroup(i){return this.getObjects().some(e=>e.isDescendantOf(i)||i.isDescendantOf(e))?(Ge("error","ActiveSelection: circular object trees are not supported, this call has no effect"),!1):super.canEnterGroup(i)}enterGroup(i,e){i.parent&&i.parent===i.group?i.parent._exitGroup(i):i.group&&i.parent!==i.group&&i.group.remove(i),this._enterGroup(i,e)}exitGroup(i,e){this._exitGroup(i,e),i.parent&&i.parent._enterGroup(i,!0)}_onAfterObjectsChange(i,e){super._onAfterObjectsChange(i,e);let r=new Set;e.forEach(t=>{let{parent:n}=t;n&&r.add(n)}),i===Q1?r.forEach(t=>{t._onAfterObjectsChange(Et,e)}):r.forEach(t=>{t._set("dirty",!0)})}onDeselect(){return this.removeAll(),!1}toString(){return"#")}shouldCache(){return!1}isOnACache(){return!1}_renderControls(i,e,r){i.save(),i.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1;let t=D(D({hasControls:!1},r),{},{forActiveSelection:!0});for(let n=0;n{A.applyTo(o)});let{imageData:a}=o;return a.width===r&&a.height===t||(n.width=a.width,n.height=a.height),f.putImageData(a,0,0),o}},Mt=class{constructor(){let{tileSize:i=x0.textureSize}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};V(this,"aPosition",new Float32Array([0,0,0,1,1,0,1,1])),V(this,"resources",{}),this.tileSize=i,this.setupGLContext(i,i),this.captureGPUInfo()}setupGLContext(i,e){this.dispose(),this.createWebGLCanvas(i,e)}createWebGLCanvas(i,e){let r=re({width:i,height:e}),t=r.getContext("webgl",{alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1});t&&(t.clearColor(0,0,0,0),this.canvas=r,this.gl=t)}applyFilters(i,e,r,t,n,f){let o=this.gl,a=n.getContext("2d");if(!o||!a)return;let A;f&&(A=this.getCachedTexture(f,e));let l={originalWidth:e.width||e.naturalWidth||0,originalHeight:e.height||e.naturalHeight||0,sourceWidth:r,sourceHeight:t,destinationWidth:r,destinationHeight:t,context:o,sourceTexture:this.createTexture(o,r,t,A?void 0:e),targetTexture:this.createTexture(o,r,t),originalTexture:A||this.createTexture(o,r,t,A?void 0:e),passes:i.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:n},k=o.createFramebuffer();return o.bindFramebuffer(o.FRAMEBUFFER,k),i.forEach(u=>{u&&u.applyTo(l)}),function(u){let h=u.targetCanvas,c=h.width,d=h.height,b=u.destinationWidth,g=u.destinationHeight;c===b&&d===g||(h.width=b,h.height=g)}(l),this.copyGLTo2D(o,l),o.bindTexture(o.TEXTURE_2D,null),o.deleteTexture(l.sourceTexture),o.deleteTexture(l.targetTexture),o.deleteFramebuffer(k),a.setTransform(1,0,0,1,0,0),l}dispose(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()}clearWebGLCaches(){this.programCache={},this.textureCache={}}createTexture(i,e,r,t,n){let{NEAREST:f,TEXTURE_2D:o,RGBA:a,UNSIGNED_BYTE:A,CLAMP_TO_EDGE:l,TEXTURE_MAG_FILTER:k,TEXTURE_MIN_FILTER:u,TEXTURE_WRAP_S:h,TEXTURE_WRAP_T:c}=i,d=i.createTexture();return i.bindTexture(o,d),i.texParameteri(o,k,n||f),i.texParameteri(o,u,n||f),i.texParameteri(o,h,l),i.texParameteri(o,c,l),t?i.texImage2D(o,0,a,a,A,t):i.texImage2D(o,0,a,e,r,0,a,A,null),d}getCachedTexture(i,e,r){let{textureCache:t}=this;if(t[i])return t[i];{let n=this.createTexture(this.gl,e.width,e.height,e,r);return n&&(t[i]=n),n}}evictCachesForKey(i){this.textureCache[i]&&(this.gl.deleteTexture(this.textureCache[i]),delete this.textureCache[i])}copyGLTo2D(i,e){let r=i.canvas,t=e.targetCanvas,n=t.getContext("2d");if(!n)return;n.translate(0,t.height),n.scale(1,-1);let f=r.height-t.height;n.drawImage(r,0,f,t.width,t.height,0,0,t.width,t.height)}copyGLTo2DPutImageData(i,e){let r=e.targetCanvas.getContext("2d"),t=e.destinationWidth,n=e.destinationHeight,f=t*n*4;if(!r)return;let o=new Uint8Array(this.imageBuffer,0,f),a=new Uint8ClampedArray(this.imageBuffer,0,f);i.readPixels(0,0,t,n,i.RGBA,i.UNSIGNED_BYTE,o);let A=new ImageData(a,t,n);r.putImageData(A,0,0)}captureGPUInfo(){if(this.gpuInfo)return this.gpuInfo;let i=this.gl,e={renderer:"",vendor:""};if(!i)return e;let r=i.getExtension("WEBGL_debug_renderer_info");if(r){let t=i.getParameter(r.UNMASKED_RENDERER_WEBGL),n=i.getParameter(r.UNMASKED_VENDOR_WEBGL);t&&(e.renderer=t.toLowerCase()),n&&(e.vendor=n.toLowerCase())}return this.gpuInfo=e,e}},Qn;function ll(){let{WebGLProbe:s}=ae();return s.queryWebGL(Ni()),x0.enableGLFiltering&&s.isSupported(x0.textureSize)?new Mt({tileSize:x0.textureSize}):new v1}function Yn(){return!Qn&&(!(arguments.length>0&&arguments[0]!==void 0)||arguments[0])&&(Qn=ll()),Qn}var kl=["filters","resizeFilter","src","crossOrigin","type"],Wa=["cropX","cropY"],M0=class extends q0{static getDefaults(){return D(D({},super.getDefaults()),M0.ownDefaults)}constructor(i,e){super(),V(this,"_lastScaleX",1),V(this,"_lastScaleY",1),V(this,"_filterScalingX",1),V(this,"_filterScalingY",1),this.filters=[],Object.assign(this,M0.ownDefaults),this.setOptions(e),this.cacheKey="texture".concat(Se()),this.setElement(typeof i=="string"?(this.canvas&&Li(this.canvas.getElement())||z2()).getElementById(i):i,e)}getElement(){return this._element}setElement(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.removeTexture(this.cacheKey),this.removeTexture("".concat(this.cacheKey,"_filtered")),this._element=i,this._originalElement=i,this._setWidthHeight(e),i.classList.add(M0.CSS_CANVAS),this.filters.length!==0&&this.applyFilters(),this.resizeFilter&&this.applyResizeFilters()}removeTexture(i){let e=Yn(!1);e instanceof Mt&&e.evictCachesForKey(i)}dispose(){super.dispose(),this.removeTexture(this.cacheKey),this.removeTexture("".concat(this.cacheKey,"_filtered")),this._cacheContext=null,["_originalElement","_element","_filteredEl","_cacheCanvas"].forEach(i=>{let e=this[i];e&&ae().dispose(e),this[i]=void 0})}getCrossOrigin(){return this._originalElement&&(this._originalElement.crossOrigin||null)}getOriginalSize(){let i=this.getElement();return i?{width:i.naturalWidth||i.width,height:i.naturalHeight||i.height}:{width:0,height:0}}_stroke(i){if(!this.stroke||this.strokeWidth===0)return;let e=this.width/2,r=this.height/2;i.beginPath(),i.moveTo(-e,-r),i.lineTo(e,-r),i.lineTo(e,r),i.lineTo(-e,r),i.lineTo(-e,-r),i.closePath()}toObject(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=[];return this.filters.forEach(r=>{r&&e.push(r.toObject())}),D(D({},super.toObject([...Wa,...i])),{},{src:this.getSrc(),crossOrigin:this.getCrossOrigin(),filters:e},this.resizeFilter?{resizeFilter:this.resizeFilter.toObject()}:{})}hasCrop(){return!!this.cropX||!!this.cropY||this.width +`,' +`,` +`),o=' clip-path="url(#imageCrop_'+A+')" '}if(this.imageSmoothing||(a=' image-rendering="optimizeSpeed"'),i.push(" +`)),this.stroke||this.strokeDashArray){let A=this.fill;this.fill=null,f=[' +`)],this.fill=A}return n=this.paintFirst!==ri?n.concat(f,i):n.concat(i,f),n}getSrc(i){let e=i?this._element:this._originalElement;return e?e.toDataURL?e.toDataURL():this.srcFromAttribute?e.getAttribute("src")||"":e.src:this.src||""}getSvgSrc(i){return this.getSrc(i)}setSrc(i){let{crossOrigin:e,signal:r}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return br(i,{crossOrigin:e,signal:r}).then(t=>{e!==void 0&&this.set({crossOrigin:e}),this.setElement(t)})}toString(){return'#')}applyResizeFilters(){let i=this.resizeFilter,e=this.minimumScaleTrigger,r=this.getTotalObjectScaling(),t=r.x,n=r.y,f=this._filteredEl||this._originalElement;if(this.group&&this.set("dirty",!0),!i||t>e&&n>e)return this._element=f,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=t,void(this._lastScaleY=n);let o=re(f),{width:a,height:A}=f;this._element=o,this._lastScaleX=i.scaleX=t,this._lastScaleY=i.scaleY=n,Yn().applyFilters([i],f,a,A,this._element),this._filterScalingX=o.width/this._originalElement.width,this._filterScalingY=o.height/this._originalElement.height}applyFilters(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.filters||[];if(i=i.filter(n=>n&&!n.isNeutralState()),this.set("dirty",!0),this.removeTexture("".concat(this.cacheKey,"_filtered")),i.length===0)return this._element=this._originalElement,this._filteredEl=void 0,this._filterScalingX=1,void(this._filterScalingY=1);let e=this._originalElement,r=e.naturalWidth||e.width,t=e.naturalHeight||e.height;if(this._element===this._originalElement){let n=re({width:r,height:t});this._element=n,this._filteredEl=n}else this._filteredEl&&(this._element=this._filteredEl,this._filteredEl.getContext("2d").clearRect(0,0,r,t),this._lastScaleX=1,this._lastScaleY=1);Yn().applyFilters(i,this._originalElement,r,t,this._element),this._originalElement.width===this._element.width&&this._originalElement.height===this._element.height||(this._filterScalingX=this._element.width/this._originalElement.width,this._filterScalingY=this._element.height/this._originalElement.height)}_render(i){i.imageSmoothingEnabled=this.imageSmoothing,this.isMoving!==!0&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(i),this._renderPaintInOrder(i)}drawCacheOnCanvas(i){i.imageSmoothingEnabled=this.imageSmoothing,super.drawCacheOnCanvas(i)}shouldCache(){return this.needsItsOwnCache()}_renderFill(i){let e=this._element;if(!e)return;let r=this._filterScalingX,t=this._filterScalingY,n=this.width,f=this.height,o=Math.max(this.cropX,0),a=Math.max(this.cropY,0),A=e.naturalWidth||e.width,l=e.naturalHeight||e.height,k=o*r,u=a*t,h=Math.min(n*r,A-k),c=Math.min(f*t,l-u),d=-n/2,b=-f/2,g=Math.min(n,A/r-o),v=Math.min(f,l/t-a);e&&i.drawImage(e,k,u,h,c,d,b,g,v)}_needsResize(){let i=this.getTotalObjectScaling();return i.x!==this._lastScaleX||i.y!==this._lastScaleY}_resetWidthHeight(){this.set(this.getOriginalSize())}_setWidthHeight(){let{width:i,height:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this.getOriginalSize();this.width=i||r.width,this.height=e||r.height}parsePreserveAspectRatioAttribute(){let i=Co(this.preserveAspectRatio||""),e=this.width,r=this.height,t={width:e,height:r},n,f=this._element.width,o=this._element.height,a=1,A=1,l=0,k=0,u=0,h=0;return!i||i.alignX===Bi&&i.alignY===Bi?(a=e/f,A=r/o):(i.meetOrSlice==="meet"&&(a=A=sa(this._element,t),n=(e-f*a)/2,i.alignX==="Min"&&(l=-n),i.alignX==="Max"&&(l=n),n=(r-o*A)/2,i.alignY==="Min"&&(k=-n),i.alignY==="Max"&&(k=n)),i.meetOrSlice==="slice"&&(a=A=Aa(this._element,t),n=f-e/a,i.alignX==="Mid"&&(u=n/2),i.alignX==="Max"&&(u=n),n=o-r/A,i.alignY==="Mid"&&(h=n/2),i.alignY==="Max"&&(h=n),f=e/a,o=r/A)),{width:f,height:o,scaleX:a,scaleY:A,offsetLeft:l,offsetTop:k,cropX:u,cropY:h}}static fromObject(i,e){let{filters:r,resizeFilter:t,src:n,crossOrigin:f,type:o}=i,a=N0(i,kl);return Promise.all([br(n,D(D({},e),{},{crossOrigin:f})),r&&P2(r,e),t&&P2([t],e),xr(a,e)]).then(A=>{let[l,k=[],[u]=[],h={}]=A;return new this(l,D(D({},a),{},{src:n,filters:k,resizeFilter:u},h))})}static fromURL(i){let{crossOrigin:e=null,signal:r}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2?arguments[2]:void 0;return br(i,{crossOrigin:e,signal:r}).then(n=>new this(n,t))}static async fromElement(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,t=Ce(i,this.ATTRIBUTE_NAMES,r);return this.fromURL(t["xlink:href"],e,t).catch(n=>(Ge("log","Unable to parse Image",n),null))}};V(M0,"type","Image"),V(M0,"cacheProperties",[..._e,...Wa]),V(M0,"ownDefaults",{strokeWidth:0,srcFromAttribute:!1,minimumScaleTrigger:.5,cropX:0,cropY:0,imageSmoothing:!0}),V(M0,"CSS_CANVAS","canvas-img"),V(M0,"ATTRIBUTE_NAMES",[...Pe,"x","y","width","height","preserveAspectRatio","xlink:href","crossOrigin","image-rendering"]),r0.setClass(M0),r0.setSVGClass(M0);var g4=Jt(["pattern","defs","symbol","metadata","clipPath","mask","desc"]);var Fa=co,so=s=>function(i,e,r){let{points:t,pathOffset:n}=r;return new N(t[s]).subtract(n).transform(J0(r.getViewportTransform(),r.calcTransformMatrix()))},Xa=(s,i,e,r)=>{let{target:t,pointIndex:n}=i,f=t,o=me(new N(e,r),void 0,f.calcOwnMatrix());return f.points[n]=o.add(f.pathOffset),f.setDimensions(),!0},Va=(s,i)=>function(e,r,t,n){let f=r.target,o=new N(f.points[(s>0?s:f.points.length)-1]),a=o.subtract(f.pathOffset).transform(f.calcOwnMatrix()),A=i(e,D(D({},r),{},{pointIndex:s}),t,n),l=o.subtract(f.pathOffset).transform(f.calcOwnMatrix()).subtract(a);return f.left-=l.x,f.top-=l.y,A},Ao=s=>Re(Fa,Va(s,Xa)),w1=(s,i,e)=>{let{path:r,pathOffset:t}=s,n=r[i];return new N(n[e]-t.x,n[e+1]-t.y).transform(J0(s.getViewportTransform(),s.calcTransformMatrix()))};function ul(s,i,e){let{commandIndex:r,pointIndex:t}=this;return w1(e,r,t)}function hl(s,i,e,r){let{target:t}=i,{commandIndex:n,pointIndex:f}=this,o=((a,A,l,k,u)=>{let{path:h,pathOffset:c}=a,d=h[(k>0?k:h.length)-1],b=new N(d[u],d[u+1]),g=b.subtract(c).transform(a.calcOwnMatrix()),v=me(new N(A,l),void 0,a.calcOwnMatrix());h[k][u]=v.x+c.x,h[k][u+1]=v.y+c.y,a.setDimensions();let w=b.subtract(a.pathOffset).transform(a.calcOwnMatrix()).subtract(g);return a.left-=w.x,a.top-=w.y,a.set("dirty",!0),!0})(t,e,r,n,f);return V1(this.actionName,D(D({},G1(s,i,e,r)),{},{commandIndex:n,pointIndex:f})),o}var Tt=class extends hi{constructor(i){super(i)}render(i,e,r,t,n){let f=D(D({},t),{},{cornerColor:this.controlFill,cornerStrokeColor:this.controlStroke,transparentCorners:!this.controlFill});super.render(i,e,r,f,n)}},_1=class extends Tt{constructor(i){super(i)}render(i,e,r,t,n){let{path:f}=n,{commandIndex:o,pointIndex:a,connectToCommandIndex:A,connectToPointIndex:l}=this;i.save(),i.strokeStyle=this.controlStroke,this.connectionDashArray&&i.setLineDash(this.connectionDashArray);let[k]=f[o],u=w1(n,A,l);if(k==="Q"){let h=w1(n,o,a+2);i.moveTo(h.x,h.y),i.lineTo(e,r)}else i.moveTo(e,r);i.lineTo(u.x,u.y),i.stroke(),i.restore(),super.render(i,e,r,t,n)}},kt=(s,i,e,r,t,n)=>new(e?_1:Tt)(D(D({commandIndex:s,pointIndex:i,actionName:"modifyPath",positionHandler:ul,actionHandler:hl,connectToCommandIndex:t,connectToPointIndex:n},r),e?r.controlPointStyle:r.pointStyle)),p4=Object.freeze({__proto__:null,changeWidth:n1,createObjectDefaultControls:R1,createPathControls:function(s){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e={},r="M";return s.path.forEach((t,n)=>{let f=t[0];switch(f!=="Z"&&(e["c_".concat(n,"_").concat(f)]=kt(n,t.length-2,!1,i)),f){case"C":e["c_".concat(n,"_C_CP_1")]=kt(n,1,!0,i,n-1,(o=>o==="C"?5:o==="Q"?3:1)(r)),e["c_".concat(n,"_C_CP_2")]=kt(n,3,!0,i,n,5);break;case"Q":e["c_".concat(n,"_Q_CP_1")]=kt(n,1,!0,i,n,3)}r=f}),e},createPolyActionHandler:Ao,createPolyControls:function(s){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e={};for(let r=0;r<(typeof s=="number"?s:s.points.length);r++)e["p".concat(r)]=new hi(D({actionName:Fa,positionHandler:so(r),actionHandler:Ao(r)},i));return e},createPolyPositionHandler:so,createResizeControls:$o,createTextboxDefaultControls:qo,dragHandler:Vo,factoryPolyActionHandler:Va,getLocalPoint:zt,polyActionHandler:Xa,renderCircleControl:Ro,renderSquareControl:Po,rotationStyleHandler:No,rotationWithSnapping:Qo,scaleCursorStyleHandler:V2,scaleOrSkewActionName:hr,scaleSkewCursorStyleHandler:je,scalingEqually:ur,scalingX:zo,scalingXOrSkewingY:f1,scalingY:Jo,scalingYOrSkewingX:o1,skewCursorStyleHandler:Ho,skewHandlerX:jo,skewHandlerY:Lo,wrapWithFireEvent:Re,wrapWithFixedAnchor:p2}),$t=s=>s.webgl!==void 0;var J1="precision highp float",cl=` + `.concat(J1,`; + varying vec2 vTexCoord; + uniform sampler2D uTexture; + void main() { + gl_FragColor = texture2D(uTexture, vTexCoord); + }`),dl=["type"],bl=["type"],gl=new RegExp(J1,"g"),H0=class{get type(){return this.constructor.type}constructor(){let i=N0(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},dl);Object.assign(this,this.constructor.defaults,i)}getFragmentSource(){return cl}getVertexSource(){return` + attribute vec2 aPosition; + varying vec2 vTexCoord; + void main() { + vTexCoord = aPosition; + gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0); + }`}createProgram(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.getFragmentSource(),r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.getVertexSource(),{WebGLProbe:{GLPrecision:t="highp"}}=ae();t!=="highp"&&(e=e.replace(gl,J1.replace("highp",t)));let n=i.createShader(i.VERTEX_SHADER),f=i.createShader(i.FRAGMENT_SHADER),o=i.createProgram();if(!n||!f||!o)throw new Ri("Vertex, fragment shader or program creation error");if(i.shaderSource(n,r),i.compileShader(n),!i.getShaderParameter(n,i.COMPILE_STATUS))throw new Ri("Vertex shader compile error for ".concat(this.type,": ").concat(i.getShaderInfoLog(n)));if(i.shaderSource(f,e),i.compileShader(f),!i.getShaderParameter(f,i.COMPILE_STATUS))throw new Ri("Fragment shader compile error for ".concat(this.type,": ").concat(i.getShaderInfoLog(f)));if(i.attachShader(o,n),i.attachShader(o,f),i.linkProgram(o),!i.getProgramParameter(o,i.LINK_STATUS))throw new Ri('Shader link error for "'.concat(this.type,'" ').concat(i.getProgramInfoLog(o)));let a=this.getUniformLocations(i,o)||{};return a.uStepW=i.getUniformLocation(o,"uStepW"),a.uStepH=i.getUniformLocation(o,"uStepH"),{program:o,attributeLocations:this.getAttributeLocations(i,o),uniformLocations:a}}getAttributeLocations(i,e){return{aPosition:i.getAttribLocation(e,"aPosition")}}getUniformLocations(i,e){let r=this.constructor.uniformLocations,t={};for(let n=0;n1){let r=i.destinationWidth,t=i.destinationHeight;i.sourceWidth===r&&i.sourceHeight===t||(e.deleteTexture(i.targetTexture),i.targetTexture=i.filterBackend.createTexture(e,r,t)),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,i.targetTexture,0)}else e.bindFramebuffer(e.FRAMEBUFFER,null),e.finish()}_swapTextures(i){i.passes--,i.pass++;let e=i.targetTexture;i.targetTexture=i.sourceTexture,i.sourceTexture=e}isNeutralState(i){return!1}applyTo(i){$t(i)?(this._setupFrameBuffer(i),this.applyToWebGL(i),this._swapTextures(i)):this.applyTo2d(i)}applyTo2d(i){}getCacheKey(){return this.type}retrieveShader(i){let e=this.getCacheKey();return i.programCache[e]||(i.programCache[e]=this.createProgram(i.context)),i.programCache[e]}applyToWebGL(i){let e=i.context,r=this.retrieveShader(i);i.pass===0&&i.originalTexture?e.bindTexture(e.TEXTURE_2D,i.originalTexture):e.bindTexture(e.TEXTURE_2D,i.sourceTexture),e.useProgram(r.program),this.sendAttributeData(e,r.attributeLocations,i.aPosition),e.uniform1f(r.uniformLocations.uStepW,1/i.sourceWidth),e.uniform1f(r.uniformLocations.uStepH,1/i.sourceHeight),this.sendUniformData(e,r.uniformLocations),e.viewport(0,0,i.destinationWidth,i.destinationHeight),e.drawArrays(e.TRIANGLE_STRIP,0,4)}bindAdditionalTexture(i,e,r){i.activeTexture(r),i.bindTexture(i.TEXTURE_2D,e),i.activeTexture(i.TEXTURE0)}unbindAdditionalTexture(i,e){i.activeTexture(e),i.bindTexture(i.TEXTURE_2D,null),i.activeTexture(i.TEXTURE0)}sendUniformData(i,e){}createHelpLayer(i){if(!i.helpLayer){let{sourceWidth:e,sourceHeight:r}=i,t=re({width:e,height:r});i.helpLayer=t}}toObject(){let i=Object.keys(this.constructor.defaults||{});return D({type:this.type},i.reduce((e,r)=>(e[r]=this[r],e),{}))}toJSON(){return this.toObject()}static async fromObject(i,e){return new this(N0(i,bl))}};V(H0,"type","BaseFilter"),V(H0,"uniformLocations",[]);var pl={multiply:`gl_FragColor.rgb *= uColor.rgb; +`,screen:`gl_FragColor.rgb = 1.0 - (1.0 - gl_FragColor.rgb) * (1.0 - uColor.rgb); +`,add:`gl_FragColor.rgb += uColor.rgb; +`,difference:`gl_FragColor.rgb = abs(gl_FragColor.rgb - uColor.rgb); +`,subtract:`gl_FragColor.rgb -= uColor.rgb; +`,lighten:`gl_FragColor.rgb = max(gl_FragColor.rgb, uColor.rgb); +`,darken:`gl_FragColor.rgb = min(gl_FragColor.rgb, uColor.rgb); +`,exclusion:`gl_FragColor.rgb += uColor.rgb - 2.0 * (uColor.rgb * gl_FragColor.rgb); +`,overlay:` + if (uColor.r < 0.5) { + gl_FragColor.r *= 2.0 * uColor.r; + } else { + gl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r); + } + if (uColor.g < 0.5) { + gl_FragColor.g *= 2.0 * uColor.g; + } else { + gl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g); + } + if (uColor.b < 0.5) { + gl_FragColor.b *= 2.0 * uColor.b; + } else { + gl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b); + } + `,tint:` + gl_FragColor.rgb *= (1.0 - uColor.a); + gl_FragColor.rgb += uColor.rgb; + `},Le=class extends H0{getCacheKey(){return"".concat(this.type,"_").concat(this.mode)}getFragmentSource(){return` + precision highp float; + uniform sampler2D uTexture; + uniform vec4 uColor; + varying vec2 vTexCoord; + void main() { + vec4 color = texture2D(uTexture, vTexCoord); + gl_FragColor = color; + if (color.a > 0.0) { + `.concat(pl[this.mode],` + } + } + `)}applyTo2d(i){let{imageData:{data:e}}=i,r=new Z0(this.color).getSource(),t=this.alpha,n=r[0]*t,f=r[1]*t,o=r[2]*t,a=1-t;for(let A=0;Anew this(D(D({},n),{},{image:f})))}};V($e,"type","BlendImage"),V($e,"defaults",{mode:"multiply",alpha:1}),V($e,"uniformLocations",["uTransformMatrix","uImage"]),r0.setClass($e);var qe=class extends H0{getFragmentSource(){return` + precision highp float; + uniform sampler2D uTexture; + uniform vec2 uDelta; + varying vec2 vTexCoord; + const float nSamples = 15.0; + vec3 v3offset = vec3(12.9898, 78.233, 151.7182); + float random(vec3 scale) { + /* use the fragment position for a different seed per-pixel */ + return fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453); + } + void main() { + vec4 color = vec4(0.0); + float total = 0.0; + float offset = random(v3offset); + for (float t = -nSamples; t <= nSamples; t++) { + float percent = (t + offset - 0.5) / nSamples; + float weight = 1.0 - abs(percent); + color += texture2D(uTexture, vTexCoord + uDelta * percent) * weight; + total += weight; + } + gl_FragColor = color / total; + } + `}applyTo(i){$t(i)?(this.aspectRatio=i.sourceWidth/i.sourceHeight,i.passes++,this._setupFrameBuffer(i),this.horizontal=!0,this.applyToWebGL(i),this._swapTextures(i),this._setupFrameBuffer(i),this.horizontal=!1,this.applyToWebGL(i),this._swapTextures(i)):this.applyTo2d(i)}applyTo2d(i){i.imageData=this.simpleBlur(i)}simpleBlur(i){let{ctx:e,imageData:r,filterBackend:{resources:t}}=i,{width:n,height:f}=r;t.blurLayer1||(t.blurLayer1=Ni(),t.blurLayer2=Ni());let o=t.blurLayer1,a=t.blurLayer2;o.width===n&&o.height===f||(a.width=o.width=n,a.height=o.height=f);let A=o.getContext("2d"),l=a.getContext("2d"),k=15,u=.06*this.blur*.5,h,c,d,b;for(A.putImageData(r,0,0),l.clearRect(0,0,n,f),b=-15;b<=k;b++)h=(Math.random()-.5)/4,c=b/k,d=u*c*n+h,l.globalAlpha=1-Math.abs(c),l.drawImage(o,d,h),A.drawImage(a,0,0),l.globalAlpha=1,l.clearRect(0,0,a.width,a.height);for(b=-15;b<=k;b++)h=(Math.random()-.5)/4,c=b/k,d=u*c*f+h,l.globalAlpha=1-Math.abs(c),l.drawImage(o,h,d),A.drawImage(a,0,0),l.globalAlpha=1,l.clearRect(0,0,a.width,a.height);e.drawImage(o,0,0);let g=e.getImageData(0,0,o.width,o.height);return A.globalAlpha=1,A.clearRect(0,0,o.width,o.height),g}sendUniformData(i,e){let r=this.chooseRightDelta();i.uniform2fv(e.uDelta,r)}isNeutralState(){return this.blur===0}chooseRightDelta(){let i=1,e=[0,0];this.horizontal?this.aspectRatio>1&&(i=1/this.aspectRatio):this.aspectRatio<1&&(i=this.aspectRatio);let r=i*this.blur*.12;return this.horizontal?e[0]=r:e[1]=r,e}};V(qe,"type","Blur"),V(qe,"defaults",{blur:0}),V(qe,"uniformLocations",["uDelta"]),r0.setClass(qe);var Ke=class extends H0{getFragmentSource(){return` + precision highp float; + uniform sampler2D uTexture; + uniform float uBrightness; + varying vec2 vTexCoord; + void main() { + vec4 color = texture2D(uTexture, vTexCoord); + color.rgb += uBrightness; + gl_FragColor = color; + } +`}applyTo2d(i){let{imageData:{data:e}}=i,r=Math.round(255*this.brightness);for(let t=0;t0&&arguments[0]!==void 0?arguments[0]:{};super(i),this.subFilters=i.subFilters||[]}applyTo(i){$t(i)&&(i.passes+=this.subFilters.length-1),this.subFilters.forEach(e=>{e.applyTo(i)})}toObject(){return{type:this.type,subFilters:this.subFilters.map(i=>i.toObject())}}isNeutralState(){return!this.subFilters.some(i=>!i.isNeutralState())}static fromObject(i,e){return Promise.all((i.subFilters||[]).map(r=>r0.getClass(r.type).fromObject(r,e))).then(r=>new this({subFilters:r}))}};V(yr,"type","Composed"),r0.setClass(yr);var i2=class extends H0{getFragmentSource(){return` + precision highp float; + uniform sampler2D uTexture; + uniform float uContrast; + varying vec2 vTexCoord; + void main() { + vec4 color = texture2D(uTexture, vTexCoord); + float contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast)); + color.rgb = contrastF * (color.rgb - 0.5) + 0.5; + gl_FragColor = color; + }`}isNeutralState(){return this.contrast===0}applyTo2d(i){let{imageData:{data:e}}=i,r=Math.floor(255*this.contrast),t=259*(r+255)/(255*(259-r));for(let n=0;n=a||g<0||g>=o||(w=4*(v*o+g),p=t[Z*n+y],u+=r[w]*p,h+=r[w+1]*p,c+=r[w+2]*p,k||(d+=r[w+3]*p));l[b]=u,l[b+1]=h,l[b+2]=c,l[b+3]=k?r[b+3]:d}i.imageData=A}sendUniformData(i,e){i.uniform1fv(e.uMatrix,this.matrix)}toObject(){return D(D({},super.toObject()),{},{opaque:this.opaque,matrix:[...this.matrix]})}};V(e2,"type","Convolute"),V(e2,"defaults",{opaque:!1,matrix:[0,0,0,0,1,0,0,0,0]}),V(e2,"uniformLocations",["uMatrix","uOpaque","uHalfSize","uSize"]),r0.setClass(e2);var Da="Gamma",r2=class extends H0{getFragmentSource(){return` + precision highp float; + uniform sampler2D uTexture; + uniform vec3 uGamma; + varying vec2 vTexCoord; + void main() { + vec4 color = texture2D(uTexture, vTexCoord); + vec3 correction = (1.0 / uGamma); + color.r = pow(color.r, correction.r); + color.g = pow(color.g, correction.g); + color.b = pow(color.b, correction.b); + gl_FragColor = color; + gl_FragColor.rgb *= color.a; + } +`}constructor(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};super(i),this.gamma=i.gamma||this.constructor.defaults.gamma.concat()}applyTo2d(i){let{imageData:{data:e}}=i,r=this.gamma,t=1/r[0],n=1/r[1],f=1/r[2];this.rgbValues||(this.rgbValues={r:new Uint8Array(256),g:new Uint8Array(256),b:new Uint8Array(256)});let o=this.rgbValues;for(let a=0;a<256;a++)o.r[a]=255*Math.pow(a/255,t),o.g[a]=255*Math.pow(a/255,n),o.b[a]=255*Math.pow(a/255,f);for(let a=0;an[0]&&A>n[1]&&l>n[2]&&a` + color += texture2D(uTexture, vTexCoord + `.concat(r,") * uTaps[").concat(t,"] + texture2D(uTexture, vTexCoord - ").concat(r,") * uTaps[").concat(t,`]; + sum += 2.0 * uTaps[`).concat(t,`]; + `)).join(` +`),` + gl_FragColor = color / sum; + } + `)}applyToForWebgl(i){i.passes++,this.width=i.sourceWidth,this.horizontal=!0,this.dW=Math.round(this.width*this.scaleX),this.dH=i.sourceHeight,this.tempScale=this.dW/this.width,this.taps=this.getTaps(),i.destinationWidth=this.dW,super.applyTo(i),i.sourceWidth=i.destinationWidth,this.height=i.sourceHeight,this.horizontal=!1,this.dH=Math.round(this.height*this.scaleY),this.tempScale=this.dH/this.height,this.taps=this.getTaps(),i.destinationHeight=this.dH,super.applyTo(i),i.sourceHeight=i.destinationHeight}applyTo(i){$t(i)?this.applyToForWebgl(i):this.applyTo2d(i)}isNeutralState(){return this.scaleX===1&&this.scaleY===1}lanczosCreate(i){return e=>{if(e>=i||e<=-i)return 0;if(e<11920929e-14&&e>-11920929e-14)return 1;let r=(e*=Math.PI)/i;return Math.sin(e)/e*Math.sin(r)/r}}applyTo2d(i){let e=i.imageData,r=this.scaleX,t=this.scaleY;this.rcpScaleX=1/r,this.rcpScaleY=1/t;let n=e.width,f=e.height,o=Math.round(n*r),a=Math.round(f*t),A;A=this.resizeType==="sliceHack"?this.sliceByTwo(i,n,f,o,a):this.resizeType==="hermite"?this.hermiteFastResize(i,n,f,o,a):this.resizeType==="bilinear"?this.bilinearFiltering(i,n,f,o,a):this.resizeType==="lanczos"?this.lanczosResize(i,n,f,o,a):new ImageData(o,a),i.imageData=A}sliceByTwo(i,e,r,t,n){let f=i.imageData,o=.5,a=!1,A=!1,l=e*o,k=r*o,u=i.filterBackend.resources,h=0,c=0,d=e,b=0;u.sliceByTwo||(u.sliceByTwo=Ni());let g=u.sliceByTwo;(g.width<1.5*e||g.height=e)){F=Math.floor(1e3*Math.abs(C-g.x)),b[F]||(b[F]={});for(let E=v.y-d;E<=v.y+d;E++)E<0||E>=r||(X=Math.floor(1e3*Math.abs(E-g.y)),b[F][X]||(b[F][X]=A(Math.sqrt(Math.pow(F*u,2)+Math.pow(X*h,2))/1e3)),y=b[F][X],y>0&&(Z=4*(E*e+C),_+=y,x+=y*f[Z],B+=y*f[Z+1],I+=y*f[Z+2],W+=y*f[Z+3]))}Z=4*(m*t+p),a[Z]=x/_,a[Z+1]=B/_,a[Z+2]=I/_,a[Z+3]=W/_}return++p1&&F<-1||(b=2*F*F*F-3*F*F+1,b>0&&(W=4*(I+Z*e),C+=b*l[W+3],v+=b,l[W+3]<255&&(b=b*l[W+3]/250),w+=b*l[W],p+=b*l[W+1],m+=b*l[W+2],g+=b))}}u[d]=w/g,u[d+1]=p/g,u[d+2]=m/g,u[d+3]=C/v}return k}};V(s2,"type","Resize"),V(s2,"defaults",{resizeType:"hermite",scaleX:1,scaleY:1,lanczosLobes:3}),V(s2,"uniformLocations",["uDelta","uTaps"]),r0.setClass(s2);var A2=class extends H0{getFragmentSource(){return` + precision highp float; + uniform sampler2D uTexture; + uniform float uSaturation; + varying vec2 vTexCoord; + void main() { + vec4 color = texture2D(uTexture, vTexCoord); + float rgMax = max(color.r, color.g); + float rgbMax = max(rgMax, color.b); + color.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00; + color.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00; + color.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00; + gl_FragColor = color; + } +`}applyTo2d(i){let{imageData:{data:e}}=i,r=-this.saturation;for(let t=0;tf.toLowerCase()),Qi(this,v2,"f").has(e)||Qi(this,v2,"f").set(e,new Set);let t=Qi(this,v2,"f").get(e),n=!0;for(let f of r){let o=f.startsWith("*");if(f=o?f.slice(1):f,t==null||t.add(f),n&&Qi(this,Ir,"f").set(e,f),n=!1,o)continue;let a=Qi(this,L2,"f").get(f);if(a&&a!=e&&!i)throw new Error(`"${e} -> ${f}" conflicts with "${a} -> ${f}". Pass \`force=true\` to override this definition.`);Qi(this,L2,"f").set(f,e)}}return this}getType(s){var t;if(typeof s!="string")return null;let i=s.replace(/^.*[/\\]/,"").toLowerCase(),e=i.replace(/^.*\./,"").toLowerCase(),r=i.length{throw new Error("define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances")},Object.freeze(this);for(let s of Qi(this,v2,"f").values())Object.freeze(s);return this}_getTestState(){return{types:Qi(this,L2,"f"),extensions:Qi(this,Ir,"f")}}};L2=new WeakMap,Ir=new WeakMap,v2=new WeakMap;var Gl=Vl,Ta=new Gl(Xl,Fl)._freeze();var qt=class extends y0.Modal{constructor(e,r,t){super(e);this.plugin=r;this.file=t;this.componentContainer=new y0.Component;this.currentTool=0;this.drawButton=void 0;this.resizeHandle=null;this.backgroundDropdown=null;this.textBackgroundControls=null;this.isDrawingMode=!1;this.isTextMode=!1;this.isArrowMode=!1;this.isTextEditingBlocked=!1;this._previousStates=null;this.isResizing=!1;this.isPanning=!1;this.isSpacebarDown=!1;this.isUndoRedoAction=!1;this.preserveObjectStacking=!0;this.brushSizes=[2,4,8,12,16,24];this.brushOpacities=[.2,.4,.6,.8,.9,1];this.currentBrushSizeIndex=2;this.currentOpacityIndex=5;this.currentBlendMode="source-over";this.currentBackground="transparent";this.minWidth=400;this.minHeight=300;this.minZoom=.1;this.maxZoom=10;this.currentZoom=1;this.lastPanPoint=null;this.undoStack=[];this.redoStack=[];this.blendModes=["source-over","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion"];this.backgroundOptions=["transparent","#ffffff","#000000","grid","dots"];this.dominantColors=[];this.complementaryColors=[];this.setupModal(),this.setupEventHandlers()}setupModal(){this.componentContainer.load(),this.modalEl.addClass("image-converter-annotation-tool-image-annotation-modal"),this.setupCloseButton()}setupEventHandlers(){this.boundKeyDownHandler=this.handleKeyDown.bind(this),this.boundKeyUpHandler=this.handleKeyUp.bind(this),this.scope=new y0.Scope,this.registerShortcuts(),this.preventDefaultHandlers()}setupCloseButton(){let e=this.modalEl.querySelector(".modal-close-button");e&&this.componentContainer.registerDomEvent(e,"click",r=>{r.stopPropagation(),this.close()})}registerShortcuts(){this.scope.register([],"Escape",e=>{var t;e.preventDefault(),e.stopPropagation();let r=(t=this.canvas)==null?void 0:t.getActiveObject();return r instanceof h0&&r.isEditing&&r.exitEditing(),!1})}async onOpen(){let{contentEl:e}=this;e.style.padding="0",e.style.overflow="hidden";let r=e.createDiv("image-converter-annotation-tool-modal-container");this.setupResizable(),this.setupToolbar(r);let n=r.createDiv("image-converter-annotation-tool-canvas-container").createEl("canvas");try{let f=await this.app.vault.readBinary(this.file),o=new Blob([f]),a=URL.createObjectURL(o),A=new Image;A.onload=()=>{this.undoStack=[JSON.stringify([])],this.redoStack=[];let l=80,k=60,u=window.innerWidth*.9-l,h=window.innerHeight*.9-l-k,c=u,d=h;this.canvas=new O2(n,{width:c,height:d,backgroundColor:"transparent",isDrawingMode:!1,preserveObjectStacking:this.preserveObjectStacking});let b=Math.min(c/A.width,d/A.height)*.8,g=new M0(A,{selectable:!1,evented:!1,scaleX:b,scaleY:b,objectCaching:!0,opacity:1,erasable:!1,crossOrigin:"anonymous",strokeWidth:0});this.canvas.add(g),this.centerFabricImage(g),this.modalEl.style.width=`${c+l}px`,this.modalEl.style.height=`${d+l+k}px`,this.analyzeImageColors(A),this.setupZoomAndPan(),this.initializeUndoRedo(),this.initializeCanvasEventHandlers(),this.componentContainer.registerDomEvent(this.modalEl,"mousedown",v=>{v.target===this.modalEl&&(v.preventDefault(),v.stopPropagation())}),this.componentContainer.registerDomEvent(this.modalEl,"keydown",v=>{v.preventDefault(),v.stopPropagation()},!0),this.componentContainer.registerDomEvent(this.modalEl,"keyup",v=>{v.preventDefault(),v.stopPropagation()},!0),this.setupSelectionEvents(),URL.revokeObjectURL(a),this.canvas.renderAll()},A.src=a}catch(f){console.error("Error loading image:",f),new y0.Notice("Error loading image");return}}centerFabricImage(e){var k,u,h,c,d,b;if(!this.canvas)return;let r=(k=this.canvas.width)!=null?k:0,t=(u=this.canvas.height)!=null?u:0,n=(h=e.width)!=null?h:0,f=(c=e.height)!=null?c:0,o=(d=e.scaleX)!=null?d:1,a=(b=e.scaleY)!=null?b:1,A=(r-n*o)/2,l=(t-f*a)/2;e.set({left:A,top:l})}updateDrawingModeUI(e){this.isDrawingMode=e,this.canvas.isDrawingMode=e,this.updateObjectInteractivity(),this.drawButton&&(e?this.drawButton.buttonEl.addClass("is-active"):this.drawButton.buttonEl.removeClass("is-active")),this.canvas.requestRenderAll()}updateObjectInteractivity(){this.canvas&&(this.canvas.forEachObject(e=>{e instanceof M0?(e.selectable=!1,e.evented=!1):e instanceof h0?this.isDrawingMode?(e.selectable=!1,e.evented=!1,e.editable=!1):(e.selectable=!0,e.evented=!0,e.editable=!0):this.isTextMode?(e.selectable=!1,e.evented=!1):(e.selectable=!this.isDrawingMode,e.evented=!this.isDrawingMode)}),this.canvas.selection=!this.isDrawingMode&&!this.isTextMode,this.canvas.requestRenderAll())}createColorSwatches(){let e=this.modalEl.querySelector(".image-converter-annotation-tool-color-picker-wrapper");if(!e)return;let r=g=>{let v=this.modalEl.querySelector(".color-picker");if(v&&(v.value=g,this.updateBrushColor(),this.canvas)){let w=this.canvas.getActiveObject();w&&(w.type==="activeselection"?w.getObjects().forEach(m=>{m instanceof h0?m.set("fill",g):m.set("stroke",this.hexToRgba(g,this.brushOpacities[this.currentOpacityIndex]))}):w instanceof h0?w.set("fill",g):w.set("stroke",this.hexToRgba(g,this.brushOpacities[this.currentOpacityIndex])),this.canvas.requestRenderAll())}},t=e.querySelector(".image-converter-annotation-tool-color-swatches");t&&t.remove();let n=e.createDiv("image-converter-annotation-tool-color-swatches"),f=["#000000","#ffffff","#d1d3d4","#a7a9acCC","#808285","#58595b"],o=["#ff80ff","#ffc680","#ffff80","#80ff9e","#80d6ff","#bcb3ff"],a=n.createDiv("image-converter-annotation-tool-color-row");a.createSpan("image-converter-annotation-tool-row-label").setText("Grayscale:");let A=a.createDiv("image-converter-annotation-tool-swatches-container");f.forEach(g=>{let v=A.createDiv("color-swatch preset");v.style.backgroundColor=g,v.setAttribute("title",g),this.componentContainer.registerDomEvent(v,"click",()=>r(g))});let l=n.createDiv("image-converter-annotation-tool-color-row");l.createSpan("image-converter-annotation-tool-row-label").setText("Palette:");let k=l.createDiv("image-converter-annotation-tool-swatches-container");o.forEach(g=>{let v=k.createDiv("color-swatch preset");v.style.backgroundColor=g,v.setAttribute("title",g),this.componentContainer.registerDomEvent(v,"click",()=>r(g))});let u=this.dominantColors.map((g,v)=>({dominant:g,complementary:this.complementaryColors[v][0],luminosity:this.getLuminosity(g)})).sort((g,v)=>g.luminosity-v.luminosity),h=n.createDiv("image-converter-annotation-tool-color-row");h.createSpan("image-converter-annotation-tool-row-label").setText("Dominant:");let c=h.createDiv("image-converter-annotation-tool-swatches-container");u.forEach(g=>{let v=c.createDiv("color-swatch dominant");v.style.backgroundColor=g.dominant,v.setAttribute("title",g.dominant),this.componentContainer.registerDomEvent(v,"click",()=>r(g.dominant))});let d=n.createDiv("image-converter-annotation-tool-color-row");d.createSpan("image-converter-annotation-tool-row-label").setText("180:");let b=d.createDiv("image-converter-annotation-tool-swatches-container");u.forEach(g=>{let v=b.createDiv("color-swatch complementary");v.style.backgroundColor=g.complementary,v.setAttribute("title",g.complementary),this.componentContainer.registerDomEvent(v,"click",()=>{let w=this.hslToRgb(g.complementary),p=this.rgbToHex(w.r,w.g,w.b);r(p)})}),this.createPresetButtons(n)}updateBrushColor(){var n;if(!((n=this.canvas)!=null&&n.freeDrawingBrush))return;let e=this.modalEl.querySelector(".color-picker");if(!e)return;let r=e.value,t=this.brushOpacities[this.currentOpacityIndex];this.canvas.freeDrawingBrush.color=this.hexToRgba(r,t),this.canvas.freeDrawingBrush.width=this.brushSizes[this.currentBrushSizeIndex]}createTextBackgroundControls(e){let r=e.createDiv("image-converter-annotation-tool-control-group");r.createDiv("control-label").setText("Text Background:");let t=r.createDiv("image-converter-annotation-tool-button-group"),n=t.createDiv("image-converter-annotation-tool-background-color-wrapper"),f=n.createEl("input",{type:"color",cls:"background-color-picker",value:"#ffffff"}),o=n.createEl("input",{type:"range",cls:"background-alpha-slider",attr:{min:"0",max:"100",value:"70"}});new y0.ButtonComponent(t).setTooltip("Transparent").setIcon("eraser").onClick(()=>{this.setTextBackground("transparent")}),new y0.ButtonComponent(t).setTooltip("Semi-transparent white").setIcon("square").onClick(()=>{this.setTextBackground("rgba(255, 255, 255, 0.7)")}).buttonEl.addClass("bg-white-semi"),new y0.ButtonComponent(t).setTooltip("Semi-transparent black").setIcon("square").onClick(()=>{this.setTextBackground("rgba(0, 0, 0, 0.7)")}).buttonEl.addClass("bg-black-semi");let a=()=>{let A=f.value,l=parseInt(o.value)/100,k=this.hexToRgba(A,l);this.setTextBackground(k)};this.componentContainer.registerDomEvent(f,"input",a),this.componentContainer.registerDomEvent(o,"input",a)}setTextBackground(e){if(!this.canvas)return;let r=this.canvas.getActiveObject();r&&(r instanceof h0?r.set("backgroundColor",e):r instanceof di&&r.getObjects().forEach(t=>{t instanceof h0&&t.set("backgroundColor",e)}),this.canvas.requestRenderAll(),this.saveState())}createAndAddText(e,r,t){var n,f,o;if(this.isTextEditingBlocked){console.debug("Text creation blocked");return}try{let a=this.modalEl.querySelector(".background-color-picker"),A=this.modalEl.querySelector(".background-alpha-slider"),l="transparent";if(a&&A){let u=parseInt(A.value)/100;l=this.hexToRgba(a.value,u)}let k=new h0("Type here",{left:r,top:t,fontSize:20,fill:e,backgroundColor:l,selectable:!0,evented:!0,editable:!0,hasControls:!0,hasBorders:!0,centeredScaling:!0,originX:"center",originY:"center"});(n=this.canvas)==null||n.add(k),(f=this.canvas)==null||f.setActiveObject(k),(o=this.canvas)==null||o.requestRenderAll(),setTimeout(()=>{var u;k.enterEditing(),k.selectAll(),(u=this.canvas)==null||u.requestRenderAll()},50)}catch(a){console.error("Error in createAndAddText:",a),this.isTextEditingBlocked=!1}}registerHotkeys(){this.scope.register(["Mod"],"S",e=>{e.preventDefault(),this.saveAnnotation()}),this.scope.register(["Mod"],"A",e=>{if(this.canvas){let r=this.canvas.getActiveObject();if(r instanceof h0&&r.isEditing)return!0}return e.preventDefault(),this.selectAll(),!1}),this.scope.register(["Mod"],"Z",e=>(e.preventDefault(),e.shiftKey?this.redo():this.undo(),!1)),this.scope.register(["Mod","Shift"],"Z",e=>(e.preventDefault(),this.redo(),!1)),this.scope.register([],"A",e=>this.isTextEditing()?!0:(e.preventDefault(),this.switchTool(this.currentTool===3?0:3),!1)),this.scope.register([],"B",e=>{if(this.canvas){let r=this.canvas.getActiveObject();if(r instanceof h0&&r.isEditing)return!0}return e.preventDefault(),this.isTextMode&&this.toggleTextMode(),this.toggleDrawingMode(this.drawButton),!1}),this.scope.register([],"T",e=>{if(this.canvas){let r=this.canvas.getActiveObject();if(r instanceof h0&&r.isEditing)return!0}return e.preventDefault(),this.isDrawingMode&&this.updateDrawingModeUI(!1),this.toggleTextMode(),!1}),this.scope.register([],"Delete",e=>(e.preventDefault(),this.deleteSelectedObjects(),!1)),this.scope.register([],"Backspace",e=>{var t;let r=(t=this.canvas)==null?void 0:t.getActiveObject();return r instanceof h0&&r.isEditing?!0:(e.preventDefault(),this.deleteSelectedObjects(),!1)})}switchTool(e){switch(this.isDrawingMode=!1,this.isTextMode=!1,this.isArrowMode=!1,this.drawButton&&this.drawButton.buttonEl.removeClass("is-active"),this.textButton&&this.textButton.buttonEl.removeClass("is-active"),this.arrowButton&&this.arrowButton.buttonEl.removeClass("is-active"),e){case 1:this.isDrawingMode=!0,this.drawButton&&this.drawButton.buttonEl.addClass("is-active"),this.canvas&&(this.canvas.isDrawingMode=!0,this.canvas.freeDrawingBrush=new we(this.canvas),this.updateBrushColor(),this.canvas.freeDrawingBrush.width=this.brushSizes[this.currentBrushSizeIndex]);break;case 2:this.isTextMode=!0,this.textButton&&this.textButton.buttonEl.addClass("is-active"),this.canvas&&(this.canvas.isDrawingMode=!1);break;case 3:if(this.isArrowMode=!0,this.arrowButton&&this.arrowButton.buttonEl.addClass("is-active"),this.canvas){this.canvas.isDrawingMode=!0;let n=new H1(this.canvas);this.canvas.freeDrawingBrush=n,this.updateBrushColor(),n.width=this.brushSizes[this.currentBrushSizeIndex]}break;case 0:this.canvas&&(this.canvas.isDrawingMode=!1);break}this.currentTool=e,this.updateObjectInteractivity();let r=this.modalEl.querySelector(".text-background-controls");r instanceof HTMLElement&&(r.style.display=e===2?"flex":"none");let t=this.modalEl.querySelector(".image-converter-annotation-tool-preset-buttons");t instanceof HTMLElement&&(t.style.display=e===0?"none":"flex",this.updatePresetButtons())}toggleDrawingMode(e){let r=this.currentTool===1?0:1;this.switchTool(r)}toggleTextMode(){let e=this.currentTool===2?0:2;this.switchTool(e)}toggleArrowMode(e){let r=this.currentTool===3?0:3;this.switchTool(r)}createPresetButtons(e){let t=e.createDiv("image-converter-annotation-tool-preset-buttons");t.style.display="none";for(let n=0;n<3;n++){let f=t.createDiv(`preset-button preset-${n+1}`);f.createDiv("image-converter-annotation-tool-preset-color"),f.createSpan("preset-number").setText(`${n+1}`),this.componentContainer.registerDomEvent(f,"click",o=>{o.shiftKey?this.savePreset(n):this.loadPreset(n)}),f.setAttribute("title","Click to load, Shift+Click to save")}return t}async savePreset(e){let r=this.modalEl.querySelector(".color-picker"),t=this.modalEl.querySelector(".background-color-picker"),n=this.modalEl.querySelector(".background-alpha-slider");if(!r)return;let f={size:this.brushSizes[this.currentBrushSizeIndex],color:r.value,opacity:this.brushOpacities[this.currentOpacityIndex],blendMode:this.currentBlendMode,backgroundColor:t==null?void 0:t.value,backgroundOpacity:n?parseInt(n.value)/100:void 0};this.isDrawingMode?this.plugin.settings.annotationPresets.drawing[e]=f:this.isArrowMode?this.plugin.settings.annotationPresets.arrow[e]=f:this.isTextMode&&(this.plugin.settings.annotationPresets.text[e]=f),await this.plugin.saveSettings(),this.updatePresetButtons(),new y0.Notice(`Preset ${e+1} saved`)}loadPreset(e){var a,A,l,k,u,h,c;let r;if(this.isDrawingMode)r=this.plugin.settings.annotationPresets.drawing[e];else if(this.isArrowMode)r=this.plugin.settings.annotationPresets.arrow[e];else if(this.isTextMode)r=this.plugin.settings.annotationPresets.text[e];else return;if(!r)return;let t=this.modalEl.querySelector(".color-picker");if(t&&(t.value=r.color),this.isTextMode){let d=this.modalEl.querySelector(".background-color-picker"),b=this.modalEl.querySelector(".background-alpha-slider");d&&r.backgroundColor&&(d.value=r.backgroundColor),b&&r.backgroundOpacity!==void 0&&(b.value=(r.backgroundOpacity*100).toString());let g=(a=this.canvas)==null?void 0:a.getActiveObject();if(g)if(g instanceof h0){if(g.set("fill",r.color),r.backgroundColor){let v=this.hexToRgba(r.backgroundColor,(A=r.backgroundOpacity)!=null?A:1);g.set("backgroundColor",v)}(l=this.canvas)==null||l.requestRenderAll()}else g instanceof di&&(g.getObjects().forEach(v=>{var w;if(v instanceof h0&&(v.set("fill",r.color),r.backgroundColor)){let p=this.hexToRgba(r.backgroundColor,(w=r.backgroundOpacity)!=null?w:1);v.set("backgroundColor",p)}}),(k=this.canvas)==null||k.requestRenderAll())}else{let d=(u=this.canvas)==null?void 0:u.getActiveObject();d&&(d instanceof di?d.getObjects().forEach(b=>{var g;b instanceof h0||b.set("stroke",this.hexToRgba(r.color,(g=r.opacity)!=null?g:1))}):d instanceof h0||d.set("stroke",this.hexToRgba(r.color,(h=r.opacity)!=null?h:1)),(c=this.canvas)==null||c.requestRenderAll())}let n=this.brushOpacities.indexOf(r.opacity);if(n!==-1){this.currentOpacityIndex=n;let b=this.modalEl.querySelectorAll(".opacity-buttons-container button")[n];b instanceof HTMLElement&&b.click()}let f=this.brushSizes.indexOf(r.size);if(f!==-1){this.currentBrushSizeIndex=f;let b=this.modalEl.querySelectorAll(".size-buttons-container button")[f];b instanceof HTMLElement&&b.click()}this.currentBlendMode=r.blendMode;let o=this.modalEl.querySelector(".blend-modes-container select");o&&(o.value=r.blendMode),this.updateBrushColor()}updatePresetButtons(){let e=this.modalEl.querySelectorAll(".preset-button"),r=this.isDrawingMode?this.plugin.settings.annotationPresets.drawing:this.isArrowMode?this.plugin.settings.annotationPresets.arrow:this.isTextMode?this.plugin.settings.annotationPresets.text:null;r&&e.forEach((t,n)=>{var o,a;let f=t.querySelector(".image-converter-annotation-tool-preset-color");f&&(this.isTextMode&&r[n].backgroundColor?(f.style.backgroundColor=(o=r[n].backgroundColor)!=null?o:"transparent",f.style.opacity=((a=r[n].backgroundOpacity)!=null?a:1).toString(),f.style.border=`2px solid ${r[n].color}`):(f.style.backgroundColor=r[n].color,f.style.opacity=r[n].opacity.toString(),f.style.border="none"))})}setupToolbar(e){let r=e.createDiv("image-converter-annotation-tool-annotation-toolbar"),t=r.createDiv("annotation-toolbar-group drawing-group"),n=r.createDiv("annotation-toolbar-group brush-controls"),f=r.createDiv("annotation-toolbar-group"),o=t.createDiv("image-converter-annotation-tool-left-section"),a=o.createDiv("image-converter-annotation-tool-drawing-tools-column");this.drawButton=new y0.ButtonComponent(a).setTooltip("Draw (B)").setIcon("pencil").onClick(()=>{this.toggleDrawingMode(this.drawButton)});let A=new y0.ButtonComponent(a).setTooltip("Arrow (A)").setIcon("arrow-right").onClick(()=>{this.toggleArrowMode(A)});this.arrowButton=A,this.textButton=new y0.ButtonComponent(a).setTooltip("Add Text (T)").setIcon("type").onClick(()=>{this.toggleTextMode()}),new y0.ButtonComponent(a).setTooltip("Reset Zoom (1:1)").setIcon("search").onClick(()=>this.resetZoom());let k=o.createDiv("image-converter-annotation-tool-color-picker-wrapper").createEl("input",{type:"color",value:"#ff0000"});k.addClass("color-picker"),this.componentContainer.registerDomEvent(k,"input",b=>{let g=b.target.value;this.updateColorForSelectedObjects(g),this.updateBrushColor()});let u=n.createDiv("brush-controls-column");this.createSizeButtons(u),this.createOpacityButtons(u),this.createBlendModeButtons(u);let h=u.createDiv("layer-controls");h.createDiv("control-label").setText("Layer:");let c=h.createDiv("image-converter-annotation-tool-button-group");new y0.ButtonComponent(c).setTooltip("Bring to Front").setIcon("arrow-up-to-line").onClick(()=>this.bringToFront()),new y0.ButtonComponent(c).setTooltip("Bring Forward").setIcon("arrow-up").onClick(()=>this.bringForward()),new y0.ButtonComponent(c).setTooltip("Send Backward").setIcon("arrow-down").onClick(()=>this.sendBackward()),new y0.ButtonComponent(c).setTooltip("Send to Back").setIcon("arrow-down-to-line").onClick(()=>this.sendToBack()),this.textBackgroundControls=u.createDiv("text-background-controls"),this.textBackgroundControls.style.display="none",this.createTextBackgroundControls(this.textBackgroundControls),new y0.ButtonComponent(f).setTooltip("Clear All").setIcon("trash").onClick(()=>this.clearAll()),this.createBackgroundControls(f),new y0.ButtonComponent(f).setTooltip("Save (Ctrl/Cmd + S)").setIcon("checkmark").onClick(()=>this.saveAnnotation()).buttonEl.addClass("mod-cta"),this.registerHotkeys()}createSizeButtons(e){let t=e.createDiv("brush-controls-column").createDiv("size-buttons-container");t.createDiv("control-label").setText("Size:");let f=t.createDiv("image-converter-annotation-tool-button-group");this.brushSizes.forEach((o,a)=>{let A=new y0.ButtonComponent(f).setButtonText(o.toString()).onClick(()=>{var l;this.currentBrushSizeIndex=a,(l=this.canvas)!=null&&l.freeDrawingBrush&&(this.canvas.freeDrawingBrush.width=this.brushSizes[this.currentBrushSizeIndex]),f.querySelectorAll("button").forEach(k=>k.removeClass("is-active")),A.buttonEl.addClass("is-active")});a===this.currentBrushSizeIndex&&A.buttonEl.addClass("is-active")})}createOpacityButtons(e){let r=e.querySelector(".brush-controls-column");r||(r=e.createDiv("brush-controls-column"));let t=r.createDiv("opacity-buttons-container");t.createDiv("control-label").setText("Opacity:");let f=t.createDiv("image-converter-annotation-tool-button-group");this.brushOpacities.forEach((o,a)=>{let A=new y0.ButtonComponent(f).setButtonText((o*100).toString()+"").onClick(()=>{if(this.currentOpacityIndex=a,this.updateBrushColor(),this.canvas){let l=this.canvas.getActiveObject();if(l){if(l.type==="activeselection"){let k=l;k.getObjects().forEach(u=>{this.updateObjectOpacity(u,o)}),k.dirty=!0}else this.updateObjectOpacity(l,o);this.canvas.requestRenderAll()}}f.querySelectorAll("button").forEach(l=>l.removeClass("is-active")),A.buttonEl.addClass("is-active")});a===this.currentOpacityIndex&&A.buttonEl.addClass("is-active")})}updateObjectOpacity(e,r){if(e instanceof h0){let t=e.get("fill");t.startsWith("rgba")?e.set("fill",this.updateRgbaOpacity(t,r)):e.set("fill",this.hexToRgba(t,r))}else{let t=e.get("stroke");t.startsWith("rgba")?e.set("stroke",this.updateRgbaOpacity(t,r)):e.set("stroke",this.hexToRgba(t,r))}e.dirty=!0}updateRgbaOpacity(e,r){let t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*[\d.]+)?\)/);if(t){let[,n,f,o]=t;return`rgba(${n}, ${f}, ${o}, ${r})`}return e}createBlendModeButtons(e){let r=e.createDiv("blend-modes-container");r.createDiv("control-label").setText("Blend:");let n=r.createDiv("dropdown-container"),f={"source-over":"Normal",multiply:"Multiply",screen:"Screen",overlay:"Overlay",darken:"Darken",lighten:"Lighten","color-dodge":"Dodge","color-burn":"Burn","hard-light":"Hard Light","soft-light":"Soft Light",difference:"Difference",exclusion:"Exclusion"},o=new y0.DropdownComponent(n);this.blendModes.forEach(a=>{o.addOption(a,f[a])}),o.setValue(this.currentBlendMode),o.onChange(a=>{var l;let A=a;if(this.currentBlendMode=A,(l=this.canvas)!=null&&l.freeDrawingBrush&&(this.canvas.freeDrawingBrush.globalCompositeOperation=A),this.canvas){let k=this.canvas.getActiveObject();if(k){if(k.type==="activeselection"){let u=k;u.getObjects().forEach(h=>{h instanceof M0||(h.globalCompositeOperation=A)}),u.dirty=!0}else k instanceof M0||(k.globalCompositeOperation=A);this.canvas.requestRenderAll()}}})}bringToFront(){if(!this.canvas)return;let e=this.canvas.getActiveObject();if(e){if(e.type==="activeselection"){let r=e;r.getObjects().forEach(t=>{var n;(n=this.canvas)==null||n.bringObjectToFront(t)}),this.canvas.bringObjectToFront(r)}else this.canvas.bringObjectToFront(e);this.canvas.requestRenderAll(),this.saveState()}}bringForward(){if(!this.canvas)return;let e=this.canvas.getActiveObject();if(e){if(e.type==="activeselection"){let r=e;r.getObjects().forEach(t=>{var n;(n=this.canvas)==null||n.bringObjectForward(t)}),this.canvas.bringObjectForward(r)}else this.canvas.bringObjectForward(e);this.canvas.requestRenderAll(),this.saveState()}}sendBackward(){if(!this.canvas)return;let e=this.canvas.getActiveObject();if(e){if(e.type==="activeselection"){let r=e;r.getObjects().reverse().forEach(t=>{var n;(n=this.canvas)==null||n.sendObjectBackwards(t)}),this.canvas.sendObjectBackwards(r)}else this.canvas.sendObjectBackwards(e);this.canvas.requestRenderAll(),this.saveState()}}sendToBack(){if(!this.canvas)return;let e=this.canvas.getActiveObject();if(e){if(e.type==="activeselection"){let r=e;r.getObjects().reverse().forEach(t=>{var n,f,o;(n=this.canvas)==null||n.sendObjectToBack(t),t!==r&&(((f=this.canvas)==null?void 0:f.getObjects())||[]).indexOf(t)>1&&((o=this.canvas)==null||o.moveObjectTo(t,1))}),this.canvas.sendObjectToBack(r)}else this.canvas.sendObjectToBack(e),this.canvas.getObjects().indexOf(e)>1&&this.canvas.moveObjectTo(e,1);this.canvas.requestRenderAll(),this.saveState()}}setupSelectionEvents(){if(!this.canvas)return;this.canvas.on("selection:created",r=>{let t=r;this.syncColorPickerWithSelection(t)}),this.canvas.on("selection:updated",r=>{let t=r;this.syncColorPickerWithSelection(t)});let e=this.modalEl.querySelector(".color-picker");e&&this.componentContainer.registerDomEvent(e,"input",r=>{let t=r.target.value;this.updateColorForSelectedObjects(t),this.updateBrushColor()})}deleteSelectedObjects(){if(!this.canvas)return;let e=this.canvas.getActiveObject();e&&(e instanceof h0&&e.isEditing||(e.type==="activeselection"?(e.getObjects().forEach(n=>{var f;n instanceof M0||(f=this.canvas)==null||f.remove(n)}),this.canvas.discardActiveObject()):e instanceof M0||this.canvas.remove(e),this.canvas.requestRenderAll()))}initializeCanvasEventHandlers(){if(!this.canvas)return;this.canvas.freeDrawingBrush=new we(this.canvas),this.canvas.freeDrawingBrush.width=this.brushSizes[this.currentBrushSizeIndex],this.canvas.freeDrawingBrush.globalCompositeOperation=this.currentBlendMode,this.modalEl.querySelector(".color-picker")&&this.updateBrushColor(),this.canvas.on("path:created",r=>{var t;this.isUndoRedoAction||(r.path&&(r.path.globalCompositeOperation=this.currentBlendMode,(t=this.canvas)==null||t.requestRenderAll()),this.saveState())}),this.canvas.on("object:added",r=>{this.updateObjectInteractivity(),!(r.target instanceof M0||this.isUndoRedoAction)&&r.target.type!=="path"&&this.saveState()}),this.canvas.on("object:modified",r=>{r.target instanceof M0||this.isUndoRedoAction||this.saveState()}),this.canvas.on("object:removed",r=>{r.target instanceof M0||this.isUndoRedoAction||this.saveState()}),this.canvas.on("mouse:down",r=>{let t=r.target;t instanceof h0&&(this.updateDrawingModeUI(!1),this.isTextEditingBlocked=!1,t.selectable=!0,t.evented=!0)}),this.canvas.on("text:editing:entered",r=>{let t=r.target;t&&(this.isTextEditingBlocked=!1,this.updateDrawingModeUI(!1),t.selectable=!0,t.evented=!0)}),this.canvas.on("text:editing:exited",r=>{let t=r.target;t&&(this.isTextEditingBlocked=!1,t.selectable=!0,t.evented=!0)}),this.canvas.on("mouse:dblclick",r=>{var n;if(!this.isTextMode||this.isDrawingMode||this.isTextEditingBlocked){console.debug("Blocked text creation - not in text mode or text editing blocked");return}let t=r.target;if(t instanceof h0){this.isTextEditingBlocked=!1,t.enterEditing(),t.selectAll(),(n=this.canvas)==null||n.requestRenderAll();return}try{let f=this.canvas.getScenePoint(r.e),o=this.modalEl.querySelector(".color-picker"),a=o?o.value:"#ff0000";this.createAndAddText(a,f.x,f.y)}catch(f){console.error("Error creating text:",f),this.isTextEditingBlocked=!1}}),setInterval(()=>{var t;let r=(t=this.canvas)==null?void 0:t.getActiveObject();r instanceof h0&&!r.isEditing&&this.isTextEditingBlocked&&(console.debug("Resetting blocked text editing state"),this.isTextEditingBlocked=!1)},5e3)}preventDefaultHandlers(){let e=n=>{var a;let f=n.target,o=(a=this.canvas)==null?void 0:a.getActiveObject();return o instanceof h0&&o.isEditing&&n instanceof KeyboardEvent?!0:f.tagName.toLowerCase()==="canvas"||f.closest(".image-converter-annotation-tool-annotation-toolbar")!==null||f.closest(".image-converter-annotation-tool-color-picker-wrapper")!==null||f.closest(".modal-close-button")!==null||f.hasClass("modal-close-button")},r=n=>{e(n)||n.stopPropagation()},t=n=>{var o;let f=(o=this.canvas)==null?void 0:o.getActiveObject();if(f instanceof h0&&f.isEditing){(n.ctrlKey||n.metaKey)&&n.key.toLowerCase()==="s"&&(n.preventDefault(),n.stopPropagation());return}if(this.isHandledKey(n)){n.preventDefault(),n.stopPropagation();return}e(n)||n.stopPropagation()};this.componentContainer.registerDomEvent(this.modalEl,"mousedown",r,!0),this.componentContainer.registerDomEvent(this.modalEl,"mousemove",r,!0),this.componentContainer.registerDomEvent(this.modalEl,"mouseup",r,!0),this.componentContainer.registerDomEvent(this.modalEl,"click",r,!0),this.componentContainer.registerDomEvent(this.modalEl,"dblclick",r,!0),this.componentContainer.registerDomEvent(this.modalEl,"keydown",t,!0),this.componentContainer.registerDomEvent(this.modalEl,"keyup",t,!0)}isHandledKey(e){var t;let r=(t=this.canvas)==null?void 0:t.getActiveObject();return r instanceof h0&&r.isEditing?!1:(e.ctrlKey||e.metaKey)&&(e.key.toLowerCase()==="s"||e.key.toLowerCase()==="a")||e.key==="Escape"||!this.isTextEditing()&&(e.key==="Delete"||e.key==="Backspace"||e.key.toLowerCase()==="b"||e.key.toLowerCase()==="t"||e.key.toLowerCase()==="a")}isTextEditing(){var r;let e=(r=this.canvas)==null?void 0:r.getActiveObject();return!!(e instanceof h0&&e.isEditing)}syncColorPickerWithSelection(e){let r=this.modalEl.querySelector(".color-picker"),t=this.modalEl.querySelector(".background-color-picker"),n=this.modalEl.querySelector(".background-alpha-slider");if(!r||!t||!n||e.selected.length===0)return;let f=e.selected[0];if(f instanceof h0){let o=f.fill;o&&o!==r.value&&(r.value=this.rgbaToHex(o));let a=f.backgroundColor;if(a&&a!=="transparent"){let{hex:A,alpha:l}=this.rgbaToHexWithAlpha(a);A!==t.value&&(t.value=A);let k=Math.round(l*100).toString();k!==n.value&&(n.value=k)}}}updateColorForSelectedObjects(e){if(!this.canvas)return;let r=this.canvas.getActiveObject();if(!r)return;let t=this.brushOpacities[this.currentOpacityIndex];if(r instanceof di){let n=r;n.forEachObject(f=>{f instanceof h0?f.set("fill",e):f.set("stroke",this.hexToRgba(e,t))}),n.dirty=!0}else r instanceof h0?r.set("fill",e):r.set("stroke",this.hexToRgba(e,t));this.canvas.requestRenderAll()}rgbaToHex(e){let r=e.match(/rgba?\((\d+), (\d+), (\d+)/);if(!r)return"#ff0000";let[,t,n,f]=r.map(Number);return`#${((1<<24)+(t<<16)+(n<<8)+f).toString(16).slice(1)}`}rgbaToHexWithAlpha(e){let r=e.match(/rgba\((\d+), (\d+), (\d+), ([0-9.]+)\)/);if(!r)return{hex:"#ffffff",alpha:1};let[,t,n,f,o]=r.map((A,l)=>l===4?parseFloat(A):Number(A));return{hex:`#${((1<<24)+(t<<16)+(n<<8)+f).toString(16).slice(1)}`,alpha:o}}hexToRgba(e,r){e=e.replace("#","");let t=parseInt(e.substring(0,2),16),n=parseInt(e.substring(2,4),16),f=parseInt(e.substring(4,6),16);return`rgba(${t}, ${n}, ${f}, ${r})`}async analyzeImageColors(e){let r=document.createElement("canvas"),t=r.getContext("2d");if(!t)return;r.width=e.width,r.height=e.height,t.drawImage(e,0,0);let f=t.getImageData(0,0,r.width,r.height).data,o=new Map;for(let A=0;A({color:A,count:l})).sort((A,l)=>l.count-A.count).slice(0,6).map(A=>A.color);this.dominantColors=a,this.complementaryColors=a.map(A=>this.getComplementaryColors(A)),this.createColorSwatches()}getLuminosity(e){let r=this.hexToRgb(e);return .299*r.r+.587*r.g+.114*r.b}rgbToHex(e,r,t){return"#"+[e,r,t].map(n=>{let f=n.toString(16);return f.length===1?"0"+f:f}).join("")}hexToRgb(e){let r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return r?{r:parseInt(r[1],16),g:parseInt(r[2],16),b:parseInt(r[3],16)}:{r:0,g:0,b:0}}getComplementaryColors(e){let r=this.hexToRgb(e),t=this.rgbToHsl(r.r,r.g,r.b);return[this.hslToString((t.h+180)%360,t.s,t.l)]}rgbToHsl(e,r,t){e/=255,r/=255,t/=255;let n=Math.max(e,r,t),f=Math.min(e,r,t),o=0,a=0,A=(n+f)/2;if(n!==f){let k=n-f;switch(a=A>.5?k/(2-n-f):k/(n+f),n){case e:o=(r-t)/k+(r(d<0&&(d+=1),d>1&&(d-=1),d<.16666666666666666?h+(c-h)*6*d:d<.5?c:d<.6666666666666666?h+(c-h)*(.6666666666666666-d)*6:h),k=f<.5?f*(1+n):f+n-f*n,u=2*f-k;o=l(u,k,t+1/3),a=l(u,k,t),A=l(u,k,t-1/3)}return{r:Math.round(o*255),g:Math.round(a*255),b:Math.round(A*255)}}setupResizable(){this.resizeHandle=this.modalEl.createDiv("modal-resize-handle"),this.resizeHandle.innerHTML="\u22EE\u22EE",this.componentContainer.registerDomEvent(this.resizeHandle,"mousedown",this.startResize.bind(this)),this.componentContainer.registerDomEvent(document,"mousemove",this.resize.bind(this)),this.componentContainer.registerDomEvent(document,"mouseup",this.stopResize.bind(this)),this.modalEl.addClass("resizable-modal")}startResize(e){this.isResizing=!0,this.modalEl.addClass("is-resizing"),e.preventDefault()}resize(e){var u,h,c,d,b;if(!this.isResizing||!this.canvas)return;let r=this.modalEl.getBoundingClientRect(),t=Math.max(this.minWidth,e.clientX-r.left),n=Math.max(this.minHeight,e.clientY-r.top);this.modalEl.style.width=`${t}px`,this.modalEl.style.height=`${n}px`;let f=this.modalEl.querySelector(".image-converter-annotation-tool-annotation-toolbar"),o=(u=f==null?void 0:f.offsetHeight)!=null?u:0,a=40;this.canvas.setDimensions({width:t-a,height:n-o-a});let A=this.canvas.getObjects()[0];if(A){let g=(h=A.width)!=null?h:1,v=(c=A.height)!=null?c:1,w=Math.min((t-a)/g,(n-o-a)/v)*.8;A.set({scaleX:w,scaleY:w})}let l=(d=this.canvas.width)!=null?d:0,k=(b=this.canvas.height)!=null?b:0;this.canvas.getObjects().slice(1).forEach(g=>{let v=g.getBoundingRect();v.left<0&&g.set("left",0),v.top<0&&g.set("top",0),v.left+v.width>l&&g.set("left",Math.max(0,l-v.width)),v.top+v.height>k&&g.set("top",Math.max(0,k-v.height))}),this.canvas.requestRenderAll()}stopResize(){this.isResizing=!1,this.modalEl.removeClass("is-resizing")}setupZoomAndPan(){this.canvas&&(this.canvas.on("mouse:wheel",e=>{let r=e.e;r.preventDefault(),r.stopPropagation();let t=this.canvas.getScenePoint(r),n=r.deltaY,f=this.currentZoom*(n>0?.95:1.05);if(f=Math.min(Math.max(f,this.minZoom),this.maxZoom),f!==this.currentZoom){let o=this.canvas.getObjects()[0];o&&(o.objectCaching=!1),this.zoomToPoint(t,f),setTimeout(()=>{var a;o&&(o.objectCaching=!0,(a=this.canvas)==null||a.requestRenderAll())},100)}}),this.componentContainer.registerDomEvent(document,"keydown",this.boundKeyDownHandler),this.componentContainer.registerDomEvent(document,"keyup",this.boundKeyUpHandler),this.canvas.on("mouse:down",e=>{if(this.isSpacebarDown&&e.e){this.isPanning=!0,this.canvas.defaultCursor="grabbing";let r=e.e;this.lastPanPoint={x:r.clientX,y:r.clientY}}}),this.canvas.on("mouse:move",e=>{if(!this.isPanning||!this.lastPanPoint||!e.e)return;let r=e.e,t={x:r.clientX,y:r.clientY},n=t.x-this.lastPanPoint.x,f=t.y-this.lastPanPoint.y;this.canvas.relativePan(new N(n,f)),this.lastPanPoint=t}),this.canvas.on("mouse:up",()=>{this.isPanning&&(this.isPanning=!1,this.lastPanPoint=null,this.canvas.defaultCursor=this.isSpacebarDown?"grab":"default")}))}handleKeyDown(e){var r;if(e.code==="Space"){let t=(r=this.canvas)==null?void 0:r.getActiveObject();if(t instanceof h0&&t.isEditing)return;if(!this.isSpacebarDown){e.preventDefault(),this.isSpacebarDown=!0,this.canvas.defaultCursor="grab";let n=this.isDrawingMode;this.isDrawingMode&&(this.canvas.isDrawingMode=!1),this._previousStates={drawingMode:n}}}(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="z"&&(e.preventDefault(),e.stopPropagation(),e.shiftKey?this.redo():this.undo())}handleKeyUp(e){var r,t;if(e.code==="Space"){let n=(r=this.canvas)==null?void 0:r.getActiveObject();if(n instanceof h0&&n.isEditing)return;e.preventDefault(),this.isSpacebarDown=!1,this.isPanning=!1,this.lastPanPoint=null,this.canvas.defaultCursor="default",(t=this._previousStates)!=null&&t.drawingMode&&(this.canvas.isDrawingMode=!0,this.isDrawingMode=!0),this._previousStates=null}}zoomToPoint(e,r){if(!this.canvas)return;let t=r/this.currentZoom;this.currentZoom=r;let n=[...this.canvas.viewportTransform];if(!n)return;let f={x:e.x-n[4],y:e.y-n[5]},o=[r,0,0,r,e.x-f.x*t,e.y-f.y*t];this.canvas.setViewportTransform(o),this.enforceViewportBounds();let a=this.canvas.getObjects()[0];a&&a.setCoords(),this.canvas.requestRenderAll(),setTimeout(()=>{var A;(A=this.canvas)==null||A.requestRenderAll()},50)}enforceViewportBounds(){var a,A;if(!this.canvas)return;let e=this.canvas.viewportTransform;if(!e)return;let r=(a=this.canvas.width)!=null?a:0,t=(A=this.canvas.height)!=null?A:0,n=this.currentZoom,f=r*(1-n),o=t*(1-n);e[4]=Math.min(Math.max(e[4],f),0),e[5]=Math.min(Math.max(e[5],o),0),this.canvas.setViewportTransform(e)}resetZoom(){this.canvas&&(this.currentZoom=1,this.canvas.setViewportTransform([1,0,0,1,0,0]),this.canvas.requestRenderAll())}createBackgroundControls(e){let r=new y0.ButtonComponent(e).setTooltip("Background").setIcon("layout-template").onClick(t=>{t.stopPropagation(),this.toggleBackgroundDropdown(r.buttonEl)});this.backgroundDropdown=e.createDiv("background-dropdown"),this.backgroundDropdown.style.display="none",this.backgroundOptions.forEach(t=>{let n=this.backgroundDropdown.createDiv("background-option");switch(t){case"transparent":{n.createDiv("option-icon").innerHTML=` + + + `;break}case"grid":{n.createDiv("option-icon").innerHTML=` + + `;break}case"dots":{n.createDiv("option-icon").innerHTML=` + + `;break}default:{let f=n.createDiv("color-preview");f.style.backgroundColor=t}}this.componentContainer.registerDomEvent(n,"click",f=>{var a;f.stopPropagation();let o=(a=this.canvas)==null?void 0:a.getActiveObject();o instanceof h0&&o.isEditing||(this.setBackground(t),this.hideBackgroundDropdown())}),t===this.currentBackground&&n.addClass("is-active")}),this.componentContainer.registerDomEvent(document,"click",()=>{this.hideBackgroundDropdown()})}createBackgroundPattern(e){if(e==="grid"||e==="dots"){let r=document.createElement("canvas"),t=r.getContext("2d");if(!t)return"transparent";switch(r.width=20,r.height=20,e){case"grid":return t.strokeStyle="#ddd",t.lineWidth=1,t.beginPath(),t.moveTo(0,0),t.lineTo(20,0),t.moveTo(0,0),t.lineTo(0,20),t.stroke(),new Ve({source:r,repeat:"repeat"});case"dots":return t.fillStyle="#ddd",t.beginPath(),t.arc(10,10,1,0,Math.PI*2),t.fill(),new Ve({source:r,repeat:"repeat"})}}return e}toggleBackgroundDropdown(e){if(this.backgroundDropdown)if(this.backgroundDropdown.style.display==="none"){let r=e.getBoundingClientRect();this.backgroundDropdown.style.top=`${r.bottom+5}px`,this.backgroundDropdown.style.left=`${r.left}px`,this.backgroundDropdown.style.display="block"}else this.hideBackgroundDropdown()}hideBackgroundDropdown(){this.backgroundDropdown&&(this.backgroundDropdown.style.display="none")}setBackground(e){var n;if(!this.canvas)return;let r=this.createBackgroundPattern(e);this.canvas.backgroundColor=r,this.canvas.requestRenderAll(),this.currentBackground=e;let t=this.modalEl.querySelectorAll(".background-controls .image-converter-annotation-tool-button-group button");t.forEach(f=>f.removeClass("is-active")),(n=t[this.backgroundOptions.indexOf(e)])==null||n.addClass("is-active")}initializeUndoRedo(){this.undoStack=[JSON.stringify([])],this.redoStack=[]}saveState(){if(!this.canvas||this.isUndoRedoAction)return;this.undoStack.length===0&&this.undoStack.push(JSON.stringify([]));let e=this.canvas.getObjects().slice(1),r=JSON.stringify(e.map(t=>t.toObject()));this.undoStack[this.undoStack.length-1]!==r&&(this.undoStack.push(r),this.redoStack=[])}async undo(){if(!(!this.canvas||this.undoStack.length<=1)){this.isUndoRedoAction=!0;try{let e=this.undoStack.pop();e&&this.redoStack.push(e);let r=this.undoStack[this.undoStack.length-1];if(this.canvas.getObjects().slice(1).forEach(n=>this.canvas.remove(n)),r){let n=JSON.parse(r);for(let f of n)(await z1.enlivenObjects([f])).forEach(a=>{a instanceof q0&&this.canvas.add(a)})}this.canvas.requestRenderAll()}catch(e){console.error("Error during undo:",e)}finally{this.isUndoRedoAction=!1}}}async redo(){if(!(!this.canvas||this.redoStack.length===0)){this.isUndoRedoAction=!0;try{let e=this.redoStack.pop();if(!e)return;let r=this.canvas.getObjects().slice(1),t=JSON.stringify(r.map(o=>o.toObject()));this.undoStack.push(t),this.canvas.getObjects().slice(1).forEach(o=>this.canvas.remove(o));let f=JSON.parse(e);for(let o of f)(await z1.enlivenObjects([o])).forEach(A=>{A instanceof q0&&this.canvas.add(A)});this.canvas.requestRenderAll()}catch(e){console.error("Error during redo:",e)}finally{this.isUndoRedoAction=!1}}}clearAll(){if(!this.canvas)return;let e="Are you sure you want to clear all annotations?",r="Clear";new Ei(this.app,"Clear Annotations",e,r,()=>{this.canvas.getObjects().slice(1).forEach(n=>this.canvas.remove(n)),this.canvas.requestRenderAll(),this.saveState()}).open()}selectAll(){if(!this.canvas)return;let e=this.canvas.getObjects().slice(1);if(e.length===0)return;let r=this.isDrawingMode,t=this.isTextMode;if(r&&this.updateDrawingModeUI(!1),t&&this.toggleTextMode(),e.length===1)this.canvas.setActiveObject(e[0]);else{let n=new di(e,{canvas:this.canvas});this.canvas.setActiveObject(n)}this.canvas.requestRenderAll(),r&&this.updateDrawingModeUI(!0),t&&this.toggleTextMode()}async saveAnnotation(){var e,r,t,n,f,o;if(this.canvas)try{let a=this.canvas.preserveObjectStacking;this.canvas.preserveObjectStacking=!1;let A=Ta.getType(this.file.name)||`image/${this.file.extension}`;if(!A)throw new Error("Unable to determine file type");let l="png";A==="image/jpeg"||A==="image/jpg"?l="jpeg":A==="image/png"?l="png":A==="image/webp"?l="webp":A==="image/avif"&&(l="avif");let k=this.canvas.getObjects();if(k.length===0)return;let u=k.find(M=>M instanceof M0);if(!u)return;this.canvas.renderAll(),await new Promise(M=>setTimeout(M,100));let h=(e=u.width)!=null?e:0,c=(r=u.height)!=null?r:0,d={x:(t=u.scaleX)!=null?t:1,y:(n=u.scaleY)!=null?n:1},b=h*d.x,g=c*d.y,v=(f=u.left)!=null?f:0,w=(o=u.top)!=null?o:0,p=v+b,m=w+g,C=v,y=w,Z=p,_=m,x=k.filter(M=>M!==u);x.length>0&&x.forEach(M=>{if(!M.visible)return;let T=M.getBoundingRect();isFinite(T.left)&&(C=Math.min(C,T.left)),isFinite(T.top)&&(y=Math.min(y,T.top)),isFinite(T.width)&&(Z=Math.max(Z,T.left+T.width)),isFinite(T.height)&&(_=Math.max(_,T.top+T.height))}),C=Math.min(C,v),y=Math.min(y,w),Z=Math.max(Z,p),_=Math.max(_,m);let B=Z-C,I=_-y;if(B<=0||I<=0)throw new Error("Invalid export dimensions");let W=Math.max(h/b,c/g),F=[...this.canvas.viewportTransform];this.canvas.setViewportTransform([1,0,0,1,0,0]),this.canvas.setZoom(1),k.forEach(M=>{M.setCoords(),M.visible=!0}),this.canvas.renderAll(),await new Promise(M=>setTimeout(M,100));let X=null;try{let M=this.canvas.toCanvasElement(W),T=document.createElement("canvas");T.width=B*W,T.height=I*W;let z=T.getContext("2d");z&&(z.drawImage(M,C*W,y*W,B*W,I*W,0,0,T.width,T.height),X=await new Promise((R,P)=>{T.toBlob(G=>{G?G.arrayBuffer().then(R).catch(P):P(new Error("Blob creation failed"))},A,1)}))}catch(M){console.log("toCanvasElement method failed, trying alternative...",M)}if(!X)try{let M=this.canvas.toDataURL({format:l,quality:1,multiplier:W,left:C,top:y,width:B,height:I,enableRetinaScaling:!0});if(!M||M==="data:,")throw new Error("Invalid data URL");X=Dl(M)}catch(M){console.log("toDataURL method failed, trying alternative...",M)}if(!X){new y0.Notice("6");try{let M=this.canvas.getElement(),T=document.createElement("canvas");T.width=B*W,T.height=I*W;let z=T.getContext("2d");new y0.Notice("7"),z&&(new y0.Notice("8"),z.drawImage(M,C,y,B,I,0,0,T.width,T.height),X=await(await new Promise((P,G)=>{T.toBlob(Q=>{Q?P(Q):G(new Error("Blob creation failed"))},A,1)})).arrayBuffer())}catch(M){console.log("Native canvas fallback failed",M)}}if(!X)throw new Error("All export methods failed");if(this.canvas.setViewportTransform(F),this.canvas.renderAll(),await this.app.vault.modifyBinary(this.file,X),new y0.Notice("Image saved successfully"),!this.app.workspace.getActiveViewOfType(y0.MarkdownView))return;let S=this.app.workspace.getMostRecentLeaf();if(S){let M=S.getViewState();await S.setViewState({type:"empty",state:{}}),await S.setViewState(M)}this.canvas.preserveObjectStacking=a,this.canvas.requestRenderAll(),this.close()}catch(a){console.error("Save error:",a),new y0.Notice("Error saving image")}}cleanup(){this.canvas&&(this.canvas.off(),this.canvas.dispose()),this.componentContainer.unload(),this.isTextEditingBlocked=!1,this.isDrawingMode=!1,this.isTextMode=!1,this._previousStates=null,this.drawButton&&this.drawButton.buttonEl.removeClass("is-active"),this.textButton&&this.textButton.buttonEl.removeClass("is-active"),this.canvas&&this.resetZoom(),this.isPanning=!1,this.isSpacebarDown=!1,this.lastPanPoint=null,this.canvas&&(this.canvas.defaultCursor="default"),this.undoStack=[],this.redoStack=[],this.isUndoRedoAction=!1,this.isArrowMode=!1,this.arrowButton&&this.arrowButton.buttonEl.removeClass("is-active")}onClose(){let{contentEl:e}=this;e.empty(),this.cleanup(),this.componentContainer.registerDomEvent(document,"mousemove",this.resize.bind(this)),this.componentContainer.registerDomEvent(document,"mouseup",this.stopResize.bind(this)),this.componentContainer.unload(),super.onClose()}},H1=class extends we{constructor(e){super(e);this.points=[];this.minDistance=3;this.currentPath=null;this.currentArrowHead=null;this.width||(this.width=8)}onMouseDown(e,r){this.points=[e],this.currentPath=null,this.currentArrowHead=null}onMouseMove(e,r){if(!this.points.length)return;let t=this.points[this.points.length-1];Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))>=this.minDistance&&(this.points.push(e),this.currentPath&&this.canvas.remove(this.currentPath),this.currentArrowHead&&this.canvas.remove(this.currentArrowHead),this.currentPath=this.createSmoothedPath(),this.currentArrowHead=this.createArrowHead(),this.currentPath&&this.canvas.add(this.currentPath),this.currentArrowHead&&this.canvas.add(this.currentArrowHead),this.canvas.requestRenderAll())}onMouseUp({e}){if(this.points.length>=2){this.currentPath&&this.canvas.remove(this.currentPath),this.currentArrowHead&&this.canvas.remove(this.currentArrowHead);let r=this.createSmoothedPath(),t=this.createArrowHead();r&&this.canvas.add(r),t&&this.canvas.add(t),this.canvas.requestRenderAll()}return this.points=[],this.currentPath=null,this.currentArrowHead=null,!1}createSmoothedPath(){if(this.points.length<2)return null;try{let e=this.simplifyPoints(this.points,50),r=this.getControlPoints(e),t=`M ${e[0].x} ${e[0].y}`;for(let n=0;nr&&(t.push(o),n=o)}return t.push(e[e.length-1]),t}getControlPoints(e){let t=[];for(let n=0;n{if(e.target===this.originalImage){this.isDrawing=!0;let r=this.cropContainer.getBoundingClientRect();this.startX=e.clientX-r.left,this.startY=e.clientY-r.top,this.selectionArea.style.display="block",this.selectionArea.style.left=`${this.startX}px`,this.selectionArea.style.top=`${this.startY}px`,this.selectionArea.style.width="0",this.selectionArea.style.height="0"}}),this.componentContainer.registerDomEvent(this.cropContainer,"mousemove",e=>{if(!this.isDrawing)return;let r=this.cropContainer.getBoundingClientRect(),t=e.clientX-r.left,n=e.clientY-r.top;this.updateSelectionSize(t,n)}),this.componentContainer.registerDomEvent(this.cropContainer,"mouseup",e=>{this.isDrawing=!1,this.makeSelectionMovable()}),this.componentContainer.registerDomEvent(this.cropContainer,"mouseleave",e=>{this.isDrawing=!1})}async onOpen(){let{contentEl:e}=this;e.empty();let r=e.createDiv("crop-modal-wrapper"),t=r.createDiv("crop-modal-header");t.createEl("h2",{text:"Crop image"});let n=r.createDiv("crop-modal-content");this.cropContainer=n.createDiv("crop-container"),this.selectionArea=this.cropContainer.createDiv("selection-area"),this.selectionArea.style.display="none";let f=r.createDiv("crop-modal-buttons"),o=f.createEl("button",{text:"Save"}),a=f.createEl("button",{text:"Cancel"}),A=f.createEl("button",{text:"Reset"}),l=t.createDiv("aspect-ratio-controls");this.createTransformControls(l),l.createEl("span",{text:" "});let k=l.createDiv("ratio-buttons-container");[{name:"free",ratio:null,label:"Free"},{name:"square",ratio:1,label:"1:1"},{name:"16:9",ratio:16/9,label:"16:9"},{name:"4:3",ratio:4/3,label:"4:3"}].forEach(({name:b,ratio:g,label:v})=>{let w=k.createEl("button",{text:v,cls:"aspect-ratio-button"});this.componentContainer.registerDomEvent(w,"click",()=>{l.querySelectorAll(".aspect-ratio-button").forEach(p=>p.removeClass("active")),w.addClass("active"),g!==null&&(h.value="",c.value=""),this.currentAspectRatio=g,this.selectionArea.style.display!=="none"&&this.adjustSelectionToAspectRatio()}),b==="free"&&w.addClass("active")});let u=l.createDiv("custom-ratio-container"),h=u.createEl("input",{type:"number",placeholder:"W",cls:"custom-ratio-input"});u.createEl("span",{text:":"});let c=u.createEl("input",{type:"number",placeholder:"H",cls:"custom-ratio-input"}),d=()=>{let b=parseFloat(h.value),g=parseFloat(c.value);b>0&&g>0&&(l.querySelectorAll(".aspect-ratio-button").forEach(v=>v.removeClass("active")),this.currentAspectRatio=b/g,this.selectionArea.style.display!=="none"&&this.adjustSelectionToAspectRatio())};this.componentContainer.registerDomEvent(h,"input",d),this.componentContainer.registerDomEvent(c,"input",d),this.createImageControls(t);try{await this.loadImage(),this.setupEventListeners(),this.componentContainer.registerDomEvent(o,"click",()=>this.saveImage()),this.componentContainer.registerDomEvent(a,"click",()=>this.close()),this.componentContainer.registerDomEvent(A,"click",()=>this.resetSelection()),this.componentContainer.registerDomEvent(document,"keydown",b=>{b.key==="Escape"&&(this.resetSelection(),b.stopPropagation())})}catch(b){new Ne.Notice("Error loading image for cropping"),console.error("Crop modal error:",b),this.close()}}async loadImage(){this.originalArrayBuffer=await this.app.vault.readBinary(this.imageFile);let e=new Blob([this.originalArrayBuffer]),r=URL.createObjectURL(e);return this.originalImage=document.createElement("img"),this.originalImage.className="crop-original-image",new Promise((t,n)=>{this.originalImage.onload=()=>{this.adjustModalSize(),this.imageScale.x=this.originalImage.naturalWidth/this.originalImage.clientWidth,this.imageScale.y=this.originalImage.naturalHeight/this.originalImage.clientHeight,this.cropContainer.appendChild(this.originalImage),t()},this.originalImage.onerror=n,this.originalImage.src=r})}adjustModalSize(){if(!this.originalImage)return;let e=this.containerEl.querySelector(".modal");if(!e)return;let r=window.innerWidth<=768,t=this.originalImage.naturalWidth,n=this.originalImage.naturalHeight,f=t/n,o,a;if(r)o=window.innerWidth-this.MODAL_PADDING*2,a=Math.min(window.innerHeight-this.MODAL_PADDING*2,o/f+this.CHROME_HEIGHT);else{o=window.innerWidth*this.STATIC_DESKTOP_WIDTH_RATIO,a=window.innerHeight*this.STATIC_DESKTOP_HEIGHT_RATIO;let A=a-this.CHROME_HEIGHT;f>o/A?a=o/f+this.CHROME_HEIGHT:o=A*f}o=Math.max(this.MIN_WIDTH,o),a=Math.max(this.MIN_HEIGHT,a),e.style.width=`${o}px`,e.style.height=`${a}px`,e.style.top="50%",e.style.left="50%",e.style.transform="translate(-50%, -50%)"}createTransformControls(e){let r=e.createDiv({cls:"transform-controls"}),t=r.createDiv({cls:"rotate-container"}),n=t.createEl("button",{cls:"transform-button",text:"\u21BA",attr:{title:"90\xB0 Counter Clockwise"}}),f=t.createEl("button",{cls:"transform-button",text:"\u21BB",attr:{title:"90\xB0 Clockwise"}}),o=r.createDiv({cls:"flip-container"}),a=o.createEl("button",{cls:"transform-button",text:"\u2194",attr:{title:"Flip Horizontally"}}),A=o.createEl("button",{cls:"transform-button",text:"\u2195",attr:{title:"Flip Vertically"}});this.componentContainer.registerDomEvent(n,"click",()=>this.rotate(-90)),this.componentContainer.registerDomEvent(f,"click",()=>this.rotate(90)),this.componentContainer.registerDomEvent(a,"click",()=>this.flip("horizontal")),this.componentContainer.registerDomEvent(A,"click",()=>this.flip("vertical"))}rotate(e){this.currentRotation=(this.currentRotation+e)%360,this.applyTransforms()}flip(e){e==="horizontal"?this.isFlippedX=!this.isFlippedX:this.isFlippedY=!this.isFlippedY,this.applyTransforms()}createImageControls(e){let r=e.createDiv({cls:"image-controls"}),t=r.createDiv({cls:"control-group rotation-controls"});t.createEl("span",{text:"Rotation: ",cls:"control-label"});let n=t.createEl("span",{text:"0\xB0",cls:"rotation-value"}),f=t.createEl("input",{type:"range",cls:"slider rotation-slider",attr:{min:"0",max:"360",value:"0"}}),o=r.createDiv({cls:"control-group zoom-controls"});o.createEl("span",{text:"Zoom: ",cls:"control-label"});let a=o.createEl("span",{text:"100%",cls:"zoom-value"}),A=o.createEl("input",{type:"range",cls:"slider zoom-slider",attr:{min:String(this.MIN_ZOOM*100),max:String(this.MAX_ZOOM*100),value:"100"}});this.componentContainer.registerDomEvent(f,"input",l=>{let k=parseInt(l.target.value);this.currentRotation=k,n.textContent=`${k}\xB0`,this.applyTransforms()}),this.componentContainer.registerDomEvent(A,"input",l=>{let k=parseInt(l.target.value);this.zoom=k/100,a.textContent=`${k}%`,this.applyTransforms()}),this.cropContainer&&this.componentContainer.registerDomEvent(this.cropContainer,"wheel",l=>{l.preventDefault();let k=-Math.sign(l.deltaY)*this.ZOOM_STEP,u=Math.max(this.MIN_ZOOM,Math.min(this.MAX_ZOOM,this.zoom+k));u!==this.zoom&&(this.zoom=u,A.value=String(this.zoom*100),a.textContent=`${Math.round(this.zoom*100)}%`,this.applyTransforms())})}applyTransforms(){let e=[];this.zoom!==1&&e.push(`scale(${this.zoom})`),this.currentRotation!==0&&e.push(`rotate(${this.currentRotation}deg)`),this.isFlippedX&&e.push("scaleX(-1)"),this.isFlippedY&&e.push("scaleY(-1)"),this.originalImage.style.transform=e.join(" "),(Math.abs(this.currentRotation)===90||Math.abs(this.currentRotation)===270||this.zoom!==1)&&this.adjustModalSize()}makeSelectionMovable(){this.addResizeHandles(),this.setupResizeHandlers();let e=!1,r=0,t=0,n=0,f=0;this.componentContainer.registerDomEvent(this.selectionArea,"mousedown",o=>{o.stopPropagation(),e=!0,n=parseInt(this.selectionArea.style.left)||0,f=parseInt(this.selectionArea.style.top)||0,r=o.clientX,t=o.clientY,this.selectionArea.style.cursor="move"}),this.componentContainer.registerDomEvent(document,"mousemove",o=>{if(!e)return;let a=o.clientX-r,A=o.clientY-t,l=n+a,k=f+A,u=this.cropContainer.getBoundingClientRect(),h=this.selectionArea.getBoundingClientRect();l=Math.max(0,Math.min(l,u.width-h.width)),k=Math.max(0,Math.min(k,u.height-h.height)),this.selectionArea.style.left=`${l}px`,this.selectionArea.style.top=`${k}px`}),this.componentContainer.registerDomEvent(document,"mouseup",o=>{e=!1,this.selectionArea.style.cursor="move"})}updateSelectionSize(e,r){let t=e-this.startX,n=r-this.startY;if(this.currentAspectRatio){let f=Math.abs(t),o=Math.abs(n);f/o>this.currentAspectRatio?t=Math.sign(t)*o*this.currentAspectRatio:n=Math.sign(n)*f/this.currentAspectRatio}t<0?(this.selectionArea.style.left=`${this.startX+t}px`,this.selectionArea.style.width=`${Math.abs(t)}px`):(this.selectionArea.style.left=`${this.startX}px`,this.selectionArea.style.width=`${t}px`),n<0?(this.selectionArea.style.top=`${this.startY+n}px`,this.selectionArea.style.height=`${Math.abs(n)}px`):(this.selectionArea.style.top=`${this.startY}px`,this.selectionArea.style.height=`${n}px`)}adjustSelectionToAspectRatio(){if(!this.currentAspectRatio)return;let e=parseInt(this.selectionArea.style.width),r=parseInt(this.selectionArea.style.height);if(e/r>this.currentAspectRatio){let t=r*this.currentAspectRatio;this.selectionArea.style.width=`${t}px`}else{let t=e/this.currentAspectRatio;this.selectionArea.style.height=`${t}px`}}addResizeHandles(){["nw","n","ne","w","e","sw","s","se"].forEach(r=>{let t=document.createElement("div");t.className=`resize-handle ${r}-resize`,this.selectionArea.appendChild(t)})}setupResizeHandlers(){let e=!1,r=null,t=0,n=0,f=0,o=0,a=0,A=0;this.selectionArea.querySelectorAll(".resize-handle").forEach(k=>{this.componentContainer.registerDomEvent(k,"mousedown",u=>{u.stopPropagation(),e=!0,r=k.className.split(" ")[1].split("-")[0],t=u.clientX,n=u.clientY,f=this.selectionArea.offsetWidth,o=this.selectionArea.offsetHeight,a=this.selectionArea.offsetLeft,A=this.selectionArea.offsetTop})}),this.componentContainer.registerDomEvent(document,"mousemove",k=>{if(!e)return;let u=k.clientX-t,h=k.clientY-n,c=f,d=o,b=a,g=A;switch(r){case"se":c=f+u,d=this.currentAspectRatio?c/this.currentAspectRatio:o+h;break;case"sw":c=f-u,d=this.currentAspectRatio?c/this.currentAspectRatio:o+h,b=a+u;break;case"ne":c=f+u,d=this.currentAspectRatio?c/this.currentAspectRatio:o-h,g=A+(o-d);break;case"nw":c=f-u,d=this.currentAspectRatio?c/this.currentAspectRatio:o-h,b=a+u,g=A+(o-d);break;case"n":d=o-h,this.currentAspectRatio&&(c=d*this.currentAspectRatio,b=a+(f-c)/2),g=A+h;break;case"s":d=o+h,this.currentAspectRatio&&(c=d*this.currentAspectRatio,b=a+(f-c)/2);break;case"e":c=f+u,this.currentAspectRatio&&(d=c/this.currentAspectRatio,g=A+(o-d)/2);break;case"w":c=f-u,this.currentAspectRatio&&(d=c/this.currentAspectRatio,g=A+(o-d)/2),b=a+u;break}let v=this.cropContainer.getBoundingClientRect();c=Math.max(20,Math.min(c,v.width-b)),d=Math.max(20,Math.min(d,v.height-g)),b=Math.max(0,Math.min(b,v.width-c)),g=Math.max(0,Math.min(g,v.height-d)),this.selectionArea.style.width=`${c}px`,this.selectionArea.style.height=`${d}px`,this.selectionArea.style.left=`${b}px`,this.selectionArea.style.top=`${g}px`}),this.componentContainer.registerDomEvent(document,"mouseup",k=>{e=!1,r=null})}resetSelection(){this.selectionArea.style.display="none",this.selectionArea.style.width="0",this.selectionArea.style.height="0"}async saveImage(){try{let e=document.createElement("canvas"),r=e.getContext("2d");if(!r)throw new Error("Could not get canvas context");e.width=this.originalImage.naturalWidth,e.height=this.originalImage.naturalHeight,r.drawImage(this.originalImage,0,0);let t=document.createElement("canvas"),n=t.getContext("2d");if(!n)throw new Error("Could not get canvas context for rotation");t.width=Math.abs(this.currentRotation)===90||Math.abs(this.currentRotation)===270?e.height:e.width,t.height=Math.abs(this.currentRotation)===90||Math.abs(this.currentRotation)===270?e.width:e.height,n.translate(t.width/2,t.height/2),n.rotate(this.currentRotation*Math.PI/180),n.scale(this.isFlippedX?-1:1,this.isFlippedY?-1:1),n.drawImage(e,-e.width/2,-e.height/2);let f=document.createElement("canvas"),o=f.getContext("2d");if(!o)throw new Error("Could not get canvas context for cropping");if(this.selectionArea.style.display!=="none"&&this.selectionArea.offsetWidth){let c=this.selectionArea.getBoundingClientRect(),d=this.originalImage.getBoundingClientRect(),b=(c.left-d.left)*(this.originalImage.naturalWidth/d.width),g=(c.top-d.top)*(this.originalImage.naturalHeight/d.height),v=c.width*(this.originalImage.naturalWidth/d.width),w=c.height*(this.originalImage.naturalHeight/d.height),p=this.currentRotation*Math.PI/180,C=[{x:b,y:g},{x:b+v,y:g},{x:b,y:g+w},{x:b+v,y:g+w}].map(X=>{let E=X.x-e.width/2,S=X.y-e.height/2,M=E*Math.cos(p)-S*Math.sin(p),T=E*Math.sin(p)+S*Math.cos(p);return{x:M+t.width/2,y:T+t.height/2}}),y=Math.min(...C.map(X=>X.x)),Z=Math.max(...C.map(X=>X.x)),_=Math.min(...C.map(X=>X.y)),x=Math.max(...C.map(X=>X.y)),B=y,I=_,W=Z-y,F=x-_;f.width=Math.round(W),f.height=Math.round(F),o.drawImage(t,Math.round(B),Math.round(I),Math.round(W),Math.round(F),0,0,Math.round(W),Math.round(F))}else f.width=t.width,f.height=t.height,o.drawImage(t,0,0);let a=this.imageFile.extension.toLowerCase(),A="png",l=1;switch(a){case"jpg":case"jpeg":A="jpeg",l=.92;break;case"webp":A="webp",l=.92;break;case"avif":A="avif",l=.85;break;case"png":A="png";break}let k=await new Promise((c,d)=>{f.toBlob(b=>{b?c(b):d(new Error("Failed to create blob from canvas"))},`image/${A}`,l)});if(!k)throw new Error("Failed to create image blob");let u=await k.arrayBuffer();if(!u)throw new Error("Failed to create array buffer from blob");await this.app.vault.modifyBinary(this.imageFile,u),new Ne.Notice("Image saved successfully");let h=this.app.workspace.getMostRecentLeaf();if(h){let c=h.getViewState();await h.setViewState({type:"empty",state:{}}),await h.setViewState(c)}this.close()}catch(e){console.error("Save error:",e),new Ne.Notice(`Error saving image: ${e.message}`)}}onClose(){var r;(r=this.originalImage)!=null&&r.src&&URL.revokeObjectURL(this.originalImage.src),this.containerEl.querySelectorAll("canvas").forEach(t=>{let n=t.getContext("2d");n&&n.clearRect(0,0,t.width,t.height),t.width=0,t.height=0}),this.originalArrayBuffer=null,this.componentContainer.unload(),this.contentEl.empty()}};var W0=require("obsidian"),$2=class extends W0.Modal{constructor(e,r,t){super(e);this.plugin=r;this.previewImageUrl=null;this.imageFile=t,this.loadModalSettings(),this.titleEl.setText(`Process Image: ${t.name}`)}loadModalSettings(){let e=this.plugin.settings.singleImageModalSettings;if(e)this.modalSettings={...e};else{let r=this.plugin.settings.conversionPresets.find(n=>n.outputFormat==="AVIF"),t=this.plugin.settings.conversionPresets.find(n=>n.outputFormat==="PNGQUANT");this.modalSettings={conversionPresetName:this.plugin.settings.selectedConversionPreset,outputFormat:this.plugin.settings.outputFormat,quality:this.plugin.settings.quality,colorDepth:this.plugin.settings.colorDepth,resizeMode:this.plugin.settings.resizeMode,desiredWidth:this.plugin.settings.desiredWidth,desiredHeight:this.plugin.settings.desiredHeight,desiredLongestEdge:this.plugin.settings.desiredLongestEdge,enlargeOrReduce:this.plugin.settings.enlargeOrReduce,allowLargerFiles:this.plugin.settings.allowLargerFiles,pngquantExecutablePath:(t==null?void 0:t.pngquantExecutablePath)||"",pngquantQuality:(t==null?void 0:t.pngquantQuality)||"",ffmpegExecutablePath:(r==null?void 0:r.ffmpegExecutablePath)||"",ffmpegCrf:(r==null?void 0:r.ffmpegCrf)!==void 0?r.ffmpegCrf:this.plugin.settings.ffmpegCrf!==void 0?this.plugin.settings.ffmpegCrf:23,ffmpegPreset:(r==null?void 0:r.ffmpegPreset)||this.plugin.settings.ffmpegPreset||"medium"}}}saveModalSettings(){this.plugin.settings.singleImageModalSettings={...this.modalSettings},this.plugin.saveSettings()}async onOpen(){this.contentEl.empty(),this.contentEl.addClass("process-single-image-modal"),this.previewContainer=this.contentEl.createDiv("preview-image-container"),this.previewContainer.setCssStyles({border:"1px solid #ccc",padding:"10px",margin:"1em 0",textAlign:"center",maxHeight:"400px",overflowY:"auto",overflowX:"hidden"}),this.conversionSettingsContainer=this.contentEl.createDiv("conversion-settings-container"),this.resizeSettingsContainer=this.contentEl.createDiv("resize-settings-container"),this.buttonContainer=this.contentEl.createDiv("process-single-image-modal-buttons");let e=window.innerWidth,r=800,t=Math.min(e*.9,r);this.modalEl.setCssStyles({width:`${t}px`}),this.renderSettings(),await this.generatePreview(),this.renderActionButtons()}renderSettings(){this.renderConversionSettings(),this.renderResizeSettings()}renderConversionSettings(){this.conversionSettingsContainer.empty();let e=this.plugin.getPresetByName(this.modalSettings.conversionPresetName,this.plugin.settings.conversionPresets,"Conversion");new W0.Setting(this.conversionSettingsContainer).setName("Output Format").addDropdown(r=>{Object.entries({WEBP:"WEBP",JPEG:"JPEG",PNG:"PNG",ORIGINAL:"Original (Compress)",NONE:"None (No Conversion)",PNGQUANT:"pngquant (PNG Only)",AVIF:"AVIF (via ffmpeg)"}).forEach(([n,f])=>{r.addOption(n,f)}),r.setValue(this.modalSettings.outputFormat),r.onChange(async n=>{let f=this.modalSettings.pngquantExecutablePath,o=this.modalSettings.ffmpegExecutablePath;this.modalSettings.outputFormat=n,this.modalSettings.pngquantExecutablePath=f,this.modalSettings.ffmpegExecutablePath=o,this.renderConversionSettings(),await this.generatePreview()})}),["WEBP","JPEG","ORIGINAL"].includes(this.modalSettings.outputFormat)&&new W0.Setting(this.conversionSettingsContainer).setName("Quality").addSlider(r=>{r.setLimits(1,100,1).setValue(this.modalSettings.quality).setDynamicTooltip().onChange(async t=>{this.modalSettings.quality=t,await this.generatePreview()})}),this.modalSettings.outputFormat==="PNG"&&new W0.Setting(this.conversionSettingsContainer).setName("Color depth").addSlider(r=>{r.setLimits(0,1,.1).setValue(this.modalSettings.colorDepth).setDynamicTooltip().onChange(async t=>{this.modalSettings.colorDepth=t,await this.generatePreview()})}),this.modalSettings.outputFormat==="PNGQUANT"&&(new W0.Setting(this.conversionSettingsContainer).setName("pngquant executable path \u{1F6C8}").setTooltip("Provide full-path to the binary file. It can be inside vault or anywhere in your file system.").addText(r=>{let t=this.plugin.settings.conversionPresets.find(n=>n.outputFormat==="PNGQUANT");t!=null&&t.pngquantExecutablePath,r.setValue(this.modalSettings.pngquantExecutablePath).onChange(async n=>{e&&(e.pngquantExecutablePath=n),this.modalSettings.pngquantExecutablePath=n}),r.inputEl.setAttr("spellcheck","false")}),new W0.Setting(this.conversionSettingsContainer).setName("Quality min-max range \u{1F6C8}").setTooltip("Instructs pngquant to use the least amount of colors required to meet or exceed the max quality. min and max are numbers in range 0 (worst) to 100 (perfect).").addText(r=>{r.setValue(this.modalSettings.pngquantQuality).onChange(async t=>{this.modalSettings.pngquantQuality=t}),r.inputEl.setAttr("spellcheck","false")})),this.modalSettings.outputFormat==="AVIF"&&(new W0.Setting(this.conversionSettingsContainer).setName("FFmpeg executable path \u{1F6C8}").setTooltip("Provide full-path to the binary file. It can be inside vault or anywhere in your file system.").addText(r=>{let t=this.plugin.settings.conversionPresets.find(n=>n.outputFormat==="AVIF");t!=null&&t.ffmpegExecutablePath,r.setValue(this.modalSettings.ffmpegExecutablePath).onChange(async n=>{e&&(e.ffmpegExecutablePath=n),this.modalSettings.ffmpegExecutablePath=n}),r.inputEl.setAttr("spellcheck","false")}),new W0.Setting(this.conversionSettingsContainer).setName("FFmpeg CRF").setDesc("Lower values mean better quality (larger file size). 0 is lossless.").addSlider(r=>{r.setLimits(0,63,1).setValue(this.modalSettings.ffmpegCrf).setDynamicTooltip().onChange(async t=>{this.modalSettings.ffmpegCrf=t})}),new W0.Setting(this.conversionSettingsContainer).setName("FFmpeg Preset").addDropdown(r=>{r.addOptions({ultrafast:"ultrafast",superfast:"superfast",veryfast:"veryfast",faster:"faster",fast:"fast",medium:"medium",slow:"slow",slower:"slower",veryslow:"veryslow",placebo:"placebo"}),r.setValue(this.modalSettings.ffmpegPreset),r.onChange(async t=>{this.modalSettings.ffmpegPreset=t})}))}renderResizeSettings(){this.resizeSettingsContainer.empty(),new W0.Setting(this.resizeSettingsContainer).setName("Resize Mode").addDropdown(e=>{Object.entries({None:"None",Fit:"Fit",Fill:"Fill",LongestEdge:"Longest Edge",ShortestEdge:"Shortest Edge",Width:"Width",Height:"Height"}).forEach(([t,n])=>{e.addOption(t,n)}),e.setValue(this.modalSettings.resizeMode).onChange(async t=>{this.modalSettings.resizeMode=t,this.renderResizeSettings(),await this.generatePreview()})}),["Fit","Fill","Width","Height","LongestEdge","ShortestEdge"].includes(this.modalSettings.resizeMode)&&(["Fit","Fill","Width"].includes(this.modalSettings.resizeMode)&&new W0.Setting(this.resizeSettingsContainer).setName("Desired Width").addText(e=>{e.setValue(this.modalSettings.desiredWidth.toString()).onChange(async r=>{this.modalSettings.desiredWidth=parseInt(r,10)||0,["PNGQUANT","AVIF"].includes(this.modalSettings.outputFormat)||await this.generatePreview()}),e.inputEl.setAttr("spellcheck","false")}),["Fit","Fill","Height"].includes(this.modalSettings.resizeMode)&&new W0.Setting(this.resizeSettingsContainer).setName("Desired Height").addText(e=>{e.setValue(this.modalSettings.desiredHeight.toString()).onChange(async r=>{this.modalSettings.desiredHeight=parseInt(r,10)||0,["PNGQUANT","AVIF"].includes(this.modalSettings.outputFormat)||await this.generatePreview()}),e.inputEl.setAttr("spellcheck","false")}),["LongestEdge","ShortestEdge"].includes(this.modalSettings.resizeMode)&&new W0.Setting(this.resizeSettingsContainer).setName(this.modalSettings.resizeMode==="LongestEdge"?"Desired Longest Edge":"Desired Shortest Edge").addText(e=>{e.setValue(this.modalSettings.desiredLongestEdge.toString()).onChange(async r=>{this.modalSettings.desiredLongestEdge=parseInt(r,10)||0,["PNGQUANT","AVIF"].includes(this.modalSettings.outputFormat)||await this.generatePreview()}),e.inputEl.setAttr("spellcheck","false")}),new W0.Setting(this.resizeSettingsContainer).setName("Enlarge/Reduce").addDropdown(e=>{Object.entries({Auto:"Auto",Reduce:"Only Reduce",Enlarge:"Only Enlarge"}).forEach(([t,n])=>{e.addOption(t,n)}),e.setValue(this.modalSettings.enlargeOrReduce).onChange(async t=>{this.modalSettings.enlargeOrReduce=t,["PNGQUANT","AVIF"].includes(this.modalSettings.outputFormat)||await this.generatePreview()})}))}renderActionButtons(){this.buttonContainer.empty(),new W0.Setting(this.buttonContainer).addButton(e=>{e.setButtonText("Process").setCta().onClick(()=>this.processImage())}).addButton(e=>{e.setButtonText("Cancel").onClick(()=>this.close())})}async generatePreview(){if(this.modalSettings.outputFormat==="PNGQUANT"||this.modalSettings.outputFormat==="AVIF"){this.previewContainer.empty(),this.previewContainer.createEl("p",{text:"Preview not available for this format."});return}this.previewContainer.empty();let e=this.previewContainer.createEl("p",{text:"Generating preview..."});try{let r=await this.app.vault.readBinary(this.imageFile),t=new Blob([r],{type:this.imageFile.extension?`image/${this.imageFile.extension}`:"application/octet-stream"}),n=await this.plugin.imageProcessor.processImage(t,this.modalSettings.outputFormat,this.modalSettings.quality/100,this.modalSettings.colorDepth,this.modalSettings.resizeMode,this.modalSettings.desiredWidth,this.modalSettings.desiredHeight,this.modalSettings.desiredLongestEdge,this.modalSettings.enlargeOrReduce,this.modalSettings.allowLargerFiles,void 0,this.plugin.settings),f=new Blob([n],{type:`image/${this.modalSettings.outputFormat.toLowerCase()}`});this.previewImageUrl=URL.createObjectURL(f),this.previewContainer.createEl("img",{attr:{src:this.previewImageUrl},cls:"preview-image"}).setCssStyles({maxWidth:"100%",maxHeight:"350px",height:"auto",display:"block",margin:"0 auto"}),e.remove()}catch(r){e.setText(`Preview failed: ${r.message}`),console.error("Preview generation failed:",r)}}async processImage(){var e,r;try{let t=await this.app.vault.readBinary(this.imageFile),n=new File([t],this.imageFile.name,{type:this.imageFile.extension?`image/${this.imageFile.extension}`:"application/octet-stream"}),f=((e=this.imageFile.parent)==null?void 0:e.path)||"",o=this.modalSettings.outputFormat==="NONE"||this.modalSettings.outputFormat==="ORIGINAL"?this.imageFile.name:this.imageFile.name.substring(0,this.imageFile.name.lastIndexOf("."))+"."+this.modalSettings.outputFormat.toLowerCase();this.modalSettings.outputFormat==="PNGQUANT"&&(o=this.imageFile.name.substring(0,this.imageFile.name.lastIndexOf("."))+".png");let a=this.plugin.folderAndFilenameManagement.combinePath(f,o),A=this.plugin.getPresetByName(this.modalSettings.conversionPresetName,this.plugin.settings.conversionPresets,"Conversion");if(this.modalSettings.outputFormat==="NONE"&&this.modalSettings.resizeMode==="None"){new W0.Notice(`No processing needed for "${this.imageFile.name}".`,1e3),this.close();return}if(A&&this.plugin.folderAndFilenameManagement.should_skip_conversion(this.imageFile.name,A)){new W0.Notice(`Skipped conversion of image "${this.imageFile.name}" due to skip pattern match in the conversion preset.`,2e3),this.close();return}let l=this.imageFile.stat.size,k;if(this.modalSettings.outputFormat==="NONE"&&this.modalSettings.resizeMode!=="None")k=await this.plugin.imageProcessor.resizeImage(n,this.modalSettings.resizeMode,this.modalSettings.desiredWidth,this.modalSettings.desiredHeight,this.modalSettings.desiredLongestEdge,this.modalSettings.enlargeOrReduce);else if(this.modalSettings.outputFormat==="ORIGINAL")k=await this.plugin.imageProcessor.compressOriginalImage(n,this.modalSettings.quality/100,this.modalSettings.resizeMode,this.modalSettings.desiredWidth,this.modalSettings.desiredHeight,this.modalSettings.desiredLongestEdge,this.modalSettings.enlargeOrReduce);else{let h=this.plugin.settings.conversionPresets.find(c=>c.outputFormat==="AVIF");k=await this.plugin.imageProcessor.processImage(n,this.modalSettings.outputFormat,this.modalSettings.outputFormat==="AVIF"?100:this.modalSettings.quality/100,this.modalSettings.colorDepth,this.modalSettings.resizeMode,this.modalSettings.desiredWidth,this.modalSettings.desiredHeight,this.modalSettings.desiredLongestEdge,this.modalSettings.enlargeOrReduce,this.modalSettings.allowLargerFiles,this.modalSettings.outputFormat==="PNGQUANT"?{name:"temp",outputFormat:"PNGQUANT",quality:100,colorDepth:1,resizeMode:"None",desiredWidth:0,desiredHeight:0,desiredLongestEdge:0,enlargeOrReduce:"Auto",allowLargerFiles:!1,skipConversionPatterns:"",pngquantExecutablePath:this.modalSettings.pngquantExecutablePath,pngquantQuality:this.modalSettings.pngquantQuality}:this.modalSettings.outputFormat==="AVIF"?{name:"temp",outputFormat:"AVIF",quality:100,colorDepth:1,resizeMode:"None",desiredWidth:0,desiredHeight:0,desiredLongestEdge:0,enlargeOrReduce:"Auto",allowLargerFiles:!1,skipConversionPatterns:"",ffmpegExecutablePath:(h==null?void 0:h.ffmpegExecutablePath)||"",ffmpegCrf:this.modalSettings.ffmpegCrf,ffmpegPreset:this.modalSettings.ffmpegPreset}:void 0,this.plugin.settings)}if(k&&this.plugin.settings.revertToOriginalIfLarger&&k.byteLength>l)this.plugin.showSizeComparisonNotification(l,k.byteLength),new W0.Notice(`Using original image for "${this.imageFile.name}" as processed image is larger.`,1e3);else if(k)if(this.plugin.showSizeComparisonNotification(l,k.byteLength),this.imageFile.path!==a){await this.app.fileManager.renameFile(this.imageFile,a);let h=this.app.vault.getAbstractFileByPath(a);if(h instanceof W0.TFile)await this.app.vault.modifyBinary(h,k);else{new W0.Notice(`Error: Could not find renamed file at ${a}`);return}}else await this.app.vault.modifyBinary(this.imageFile,k);let u=this.app.workspace.getActiveViewOfType(W0.MarkdownView);if(u){let h=u.editor,c=h.getValue(),d=this.imageFile.name.replace(/[[\]]/g,"\\$&"),b=new RegExp(`!\\[\\[${d}(?:\\|[^\\]]+)?\\]\\[\\]|!\\[.*?\\]\\((${d})(?:\\?[^)]*)?\\)`,"g"),g=`![[${o}]]`,v=c.replace(b,g);v!==c&&(h.setValue(v),new W0.Notice(`Link updated in "${(r=u.file)==null?void 0:r.name}"`,1e3))}this.refreshActiveNote(),new W0.Notice(`Image "${this.imageFile.name}" processed`,1e3),this.close()}catch(t){console.error("Error processing image:",t),new W0.Notice(`Failed to process image: ${t.message}`,2e3)}finally{this.previewImageUrl&&(URL.revokeObjectURL(this.previewImageUrl),this.previewImageUrl=null)}}async refreshActiveNote(){let e=this.app.workspace.getActiveFile();if(e){let r=this.app.workspace.getLeaf();if(r){let t=this.app.workspace.getMostRecentLeaf();if(t){let n=t.getViewState();await t.setViewState({type:"empty",state:{}}),await t.setViewState(n)}await r.openFile(e,{active:!0})}}}onClose(){this.saveModalSettings(),this.previewImageUrl&&(URL.revokeObjectURL(this.previewImageUrl),this.previewImageUrl=null),this.contentEl.empty()}};var en=class extends q.Component{constructor(e,r,t,n){super();this.app=e;this.plugin=r;this.folderAndFilenameManagement=t;this.variableProcessor=n;this.contextMenuRegistered=!1;this.currentMenu=null;this.stopPropagationHandler=e=>e.stopPropagation();this.documentClickHandler=e=>{var r;!e.target.closest(".image-converter-contextmenu-info-container")&&!e.target.closest(".menu-item")&&((r=this.currentMenu)==null||r.hide())};this.handleContextMenuEvent=e=>{let r=e.target,t=this.app.workspace.getActiveViewOfType(q.View);if((t==null?void 0:t.getViewType())==="canvas")return;let f=r instanceof HTMLImageElement?r:r.closest("img");if(!f)return;if(!!!(f.closest(".markdown-preview-view")||f.closest(".markdown-source-view")))return r.closest(".map-view-main"),void 0;e.preventDefault(),e.stopPropagation();let a=new q.Menu,A=this.app.workspace.getActiveFile();A&&this.createContextMenuItems(a,f,A,e),a.showAtMouseEvent(e)};this.handleRenameAndMove=async(e,r,t,n,f,o,a,A,l,k)=>{if(!f)return;let u=r.value,h=t.value,c={file:l,activeFile:k};if(u=await this.variableProcessor.processTemplate(u,c),h=await this.variableProcessor.processTemplate(h,c),!u.trim()){new q.Notice("Please enter a new file name.");return}if(u=this.folderAndFilenameManagement.sanitizeFilename(u),/^[.]+$/.test(u.trim())){new q.Notice("Please enter a valid file name");return}if(!h.trim()){new q.Notice("Please enter a new path.");return}if(A)try{if(u&&u!==o){let v=(0,q.normalizePath)(Qe.join(h,`${u}${a}`)),w=this.app.vault.getAbstractFileByPath(A);w instanceof q.TFile&&(await this.folderAndFilenameManagement.ensureFolderExists(h),await this.app.fileManager.renameFile(w,v),n.src=this.app.vault.getResourcePath(w),new q.Notice("Image name updated successfully"))}let d=`${u}${a}`,b=A,g=(0,q.normalizePath)(Qe.join(h,d));if(g!==b){let v=this.app.vault.getAbstractFileByPath(b);if(v instanceof q.TFile){await this.folderAndFilenameManagement.ensureFolderExists(h),b.toLowerCase()===g.toLowerCase()?await this.folderAndFilenameManagement.safeRenameFile(v,g)?new q.Notice("Image path updated (case-sensitive change)."):new q.Notice("Image path update failed (case-sensitive change)."):(await this.app.fileManager.renameFile(v,g),new q.Notice("Image path updated successfully")),n.src=this.app.vault.getResourcePath(v);let w=this.app.workspace.getMostRecentLeaf();if(w){let p=w.getViewState();await w.setViewState({type:"empty",state:{}}),await w.setViewState(p)}}}}catch(d){console.error("Failed to update image path:",d),new q.Notice("Failed to update image path")}e.hide()};this.registerContextMenuListener()}registerContextMenuListener(){this.contextMenuRegistered||(this.plugin.registerDomEvent(document,"contextmenu",this.handleContextMenuEvent,!0),this.contextMenuRegistered=!0)}createContextMenuItems(e,r,t,n){return this.currentMenu=e,this.addRenameAndMoveInputs(e,r,t),e.addSeparator(),q.Platform.isMobile||(this.addOpenInNewWindowMenuItem(e,r),e.addSeparator(),this.addCutImageMenuItem(e,n)),this.addCopyImageMenuItem(e,n),this.addCopyBase64ImageMenuItem(e,n),e.addSeparator(),this.plugin.settings.isImageAlignmentEnabled&&this.plugin.ImageAlignmentManager&&this.plugin.ImageAlignmentManager.addAlignmentOptionsToContextMenu(e,r,t),this.addProcessImageMenuItem(e,r,n),this.addCropRotateFlipMenuItem(e,r),this.addAnnotateImageMenuItem(e,r),e.addSeparator(),q.Platform.isMobile||(this.addShowInNavigationMenuItem(e,r),this.addShowInSystemExplorerMenuItem(e,r)),e.addSeparator(),this.addDeleteImageAndLinkMenuItem(e,n),!0}async loadCurrentCaption(e,r){try{let t=this.folderAndFilenameManagement.getImagePath(e);if(!t)return"";let n=this.app.workspace.getActiveViewOfType(q.MarkdownView);if(!n)return"";let f=n.editor,o=!t,a=await this.findImageMatches(f,t,o);if(a&&a.length>0){let A=a[0],l=A.fullMatch.match(/!\[\[([^\]]+?)(?:\|([^|\]]+?))?\s*(?:\|([^|\]]+?))?\]\]/);if(l){let u=l[2]||"",h=l[3]||"",c=d=>/^\s*\d+x\d+\s*$/.test(d);return h&&!c(u)||u&&!c(u)?u.trim():""}let k=A.fullMatch.match(/!\[([^|\]]*?)(?:\|(\d+x\d+))?\]\(([^)]+)\)/);if(k)return(k[1]||"").trim()}return""}catch(t){return console.error("Error loading caption:",t),""}}async loadCurrentDimensions(e,r){try{let t=this.folderAndFilenameManagement.getImagePath(e);if(!t)return{width:"",height:""};let n=this.app.workspace.getActiveViewOfType(q.MarkdownView);if(!n)return{width:"",height:""};let f=n.editor,o=!t,a=await this.findImageMatches(f,t,o);if(a&&a.length>0){let A=a[0],l=A.fullMatch.match(/!\[\[([^\]]+?)(?:\|([^|\]]+?))?\s*(?:\|([^|\]]+?))?\]\]/);if(l){let u=l[2]||"",h=l[3]||"",c=b=>/^\s*\d+(?:x\d+)?\s*$/.test(b),d="";if(c(h)?d=h.trim():c(u)&&(d=u.trim()),d){let b=d.split("x");return{width:b[0],height:b.length>1?b[1]:""}}}let k=A.fullMatch.match(/!\[([^|\]]*?)(?:\|(\d+(?:x\d+)?))?\]\(([^)]+)\)/);if(k&&k[2]){let u=k[2].split("x");return{width:u[0],height:u.length>1?u[1]:""}}}return{width:"",height:""}}catch(t){return console.error("Error loading dimensions:",t),{width:"",height:""}}}async updateImageLinkWithDimensions(e,r,t,n,f){let o=n?f?`${n}x${f}`:n:"",a=r.line;return a.includes("![[")?a.replace(/!\[\[([^\]]+?)(?:\|([^|\]]+?))?\s*(?:\|([^|\]]+?))?\]\]/g,(A,l)=>t&&o?`![[${l}|${t}|${o}]]`:t?`![[${l}|${t}]]`:o?`![[${l}|${o}]]`:`![[${l}]]`):a.replace(/!\[([^|\]]*?)(?:\|(\d+(?:x\d+)?))?\]\(([^)]+)\)/g,(A,l,k,u)=>t&&o?`![${t}|${o}](${u})`:t?`![${t}](${u})`:o?`![|${o}](${u})`:`![](${u})`)}async handleDimensionsAndCaptionUpdate(e,r,t,n,f,o,a){if(!a)return;let A=r.value.trim(),l=t.value.trim(),k=n.value.trim();if(l&&!/^\d+$/.test(l)||k&&!/^\d+$/.test(k)){new q.Notice("Dimensions must be positive numbers");return}let u=this.app.workspace.getActiveViewOfType(q.MarkdownView);if(!u)return;let h=u.editor,c=this.folderAndFilenameManagement.getImagePath(f),d=!c,b=await this.findImageMatches(h,c,d);if(b.length===0){new q.Notice("Failed to find image link in the current note.");return}let g=async()=>{var v;for(let w of b){let p=await this.updateImageLinkWithDimensions(h,w,A,l,k);h.setLine(w.lineNumber,p)}new q.Notice("Image caption and dimensions updated successfully."),(v=this.plugin.captionManager)==null||v.refresh()};b.length>1?new Ei(this.app,"Confirm Updates",`Found ${b.length} matching image links. Update all?`,"Update",g).open():await g(),e.hide()}addRenameAndMoveInputs(e,r,t){if(!this.app.vault.getConfig("nativeMenus")&&!q.Platform.isMobile){let f=this.folderAndFilenameManagement.getImagePath(r),o=f!==null,a="",A="",l="",k,u;if(o){let h=Qe.parse(f);a=h.name,A=h.dir,l=h.ext,k=f,A||(A="/");let c=this.app.vault.getAbstractFileByPath(f);u=c instanceof q.TFile?c:new File([""],f)}e.addItem(h=>{let c=h,d=document.createElement("div");d.className="image-converter-contextmenu-info-container";let b=document.createElement("div");b.className="image-converter-contextmenu-input-group";let g=document.createElement("div");g.className="image-converter-contextmenu-icon-container",(0,q.setIcon)(g,"file-text"),b.appendChild(g);let v=document.createElement("label");v.textContent="Name:",v.setAttribute("for","image-converter-name-input"),b.appendChild(v);let w=document.createElement("input");w.type="text",w.value=a,w.placeholder="Enter a new image name",w.className="image-converter-contextmenu-name-input",w.id="image-converter-name-input",o||w.classList.add("image-converter-contextmenu-disabled"),b.appendChild(w);let p=document.createElement("div");p.className="image-converter-contextmenu-input-group";let m=document.createElement("div");m.className="image-converter-contextmenu-icon-container",(0,q.setIcon)(m,"folder"),p.appendChild(m);let C=document.createElement("label");C.textContent="Folder:",C.setAttribute("for","image-converter-path-input"),p.appendChild(C);let y=document.createElement("input");y.type="text",y.value=A,y.placeholder="Enter a new path for the image",y.className="image-converter-contextmenu-path-input",y.id="image-converter-path-input",o||y.classList.add("image-converter-contextmenu-disabled"),p.appendChild(y);let Z=document.createElement("div");Z.className="image-converter-contextmenu-input-group";let _=document.createElement("div");_.className="image-converter-contextmenu-icon-container",(0,q.setIcon)(_,"subtitles"),Z.appendChild(_);let x=document.createElement("label");x.textContent="Caption:",x.setAttribute("for","image-converter-caption-input"),Z.appendChild(x);let B=document.createElement("input");B.type="text",B.placeholder="Loading caption...",B.className="image-converter-contextmenu-caption-input",B.id="image-converter-caption-input",Z.appendChild(B);let I=document.createElement("div");I.className="image-converter-contextmenu-input-group";let W=document.createElement("div");W.className="image-converter-contextmenu-icon-container",(0,q.setIcon)(W,"aspect-ratio"),I.appendChild(W);let F=document.createElement("label");F.textContent="Size:",F.setAttribute("for","image-converter-width-input"),I.appendChild(F);let X=document.createElement("input");X.type="number",X.min="1",X.placeholder="W",X.className="image-converter-contextmenu-dimension-input",X.id="image-converter-width-input";let E=document.createElement("input");E.type="number",E.min="1",E.placeholder="H",E.className="image-converter-contextmenu-dimension-input",E.id="image-converter-height-input";let S=document.createElement("div");S.className="image-converter-contextmenu-dimension-inputs",S.appendChild(X),S.appendChild(document.createTextNode("\xD7")),S.appendChild(E),I.appendChild(S),this.loadCurrentDimensions(r,t).then(({width:T,height:z})=>{X.value=T,E.value=z}),d.appendChild(b),d.appendChild(p),d.appendChild(Z),d.appendChild(I);let M=document.createElement("div");M.className="image-converter-contextmenu-button image-converter-contextmenu-confirm",(0,q.setIcon)(M,"check"),d.appendChild(M),[w,y,B,X,E].forEach(T=>{this.registerDomEvent(T,"mousedown",this.stopPropagationHandler),this.registerDomEvent(T,"click",this.stopPropagationHandler),this.registerDomEvent(T,"keydown",this.stopPropagationHandler)}),this.registerDomEvent(document,"click",this.documentClickHandler),this.loadCurrentCaption(r,t).then(T=>{B.value=T,B.placeholder="Enter a custom caption"}),this.registerDomEvent(M,"click",async()=>{o&&(await this.handleRenameAndMove(e,w,y,r,o,a,l,k,u,t),await this.handleDimensionsAndCaptionUpdate(e,B,X,E,r,t,o))}),c.dom.empty(),c.dom.appendChild(d)})}}addOpenInNewWindowMenuItem(e,r){e.addItem(t=>{t.setTitle("Open in new window").setIcon("square-arrow-out-up-right").onClick(async()=>{try{let n=this.folderAndFilenameManagement.getImagePath(r);if(n){let f=this.app.vault.getAbstractFileByPath(n);if(f instanceof q.TFile){let o=this.app.workspace.getLeaf("window");o&&await o.openFile(f)}}}catch(n){new q.Notice("Failed to open in new window"),console.error(n)}})})}normalizeImagePath(e){if(!e)return"";let r=decodeURIComponent(e);return r=r.split("?")[0],r=r.replace(/\\/g,"/"),r=r.replace(/%20/g," "),r.startsWith("/")||(r="/"+r),r=(0,q.normalizePath)(r),r.toLowerCase()}findFrontmatterEnd(e){let r=!1,t=e.getDoc().lineCount();for(let n=0;n{let u=Qe.dirname(k);return l.startsWith("./")||l.startsWith("../")?(0,q.normalizePath)(Qe.join(u,l)):(0,q.normalizePath)(l)},f=e.getDoc().lineCount(),o=this.findFrontmatterEnd(e),a=[],A=this.app.workspace.getActiveFile();if(!A)return a;for(let l=o+1;l/g)];for(let A of a)if(A[0].includes(r))return await t(e,f,o,A[0]),!0}return!1}async removeImageLinkFromEditor(e,r,t,n,f){f&&await navigator.clipboard.writeText(n);let o={line:r,ch:t.indexOf(n)},a={line:r,ch:o.ch+n.length},A=0;for(;t[a.ch+A]===" "||t[a.ch+A]===" ";)A++;t.trim()===n.trim()?e.replaceRange("",{line:r,ch:0},{line:r+1,ch:0}):e.replaceRange("",o,{line:r,ch:a.ch+A})}addCutImageMenuItem(e,r){e.addItem(t=>{t.setTitle("Cut").setIcon("scissors").onClick(async()=>{await this.cutImageAndLinkFromNote(r)})})}async cutImageAndLinkFromNote(e){let r=e.target,t=r.getAttribute("src");if(!t)return;let n=this.app.workspace.getActiveViewOfType(q.MarkdownView);if(!n){new q.Notice("No active Markdown view found");return}try{let f=n.editor;if(t.startsWith("data:image/")){await this.processBase64Image(f,t,async(u,h,c,d)=>{await this.removeImageLinkFromEditor(u,h,c,d,!0)})||new q.Notice("Failed to find Base64 image link");return}let o=t.startsWith("http://")||t.startsWith("https://")?null:this.folderAndFilenameManagement.getImagePath(r),a=!o,A=await this.findImageMatches(f,o,a);if(A.length===0){new q.Notice("Failed to find image link in the current note.");return}let l=async()=>{for(let k of A)await this.removeImageLinkFromEditor(f,k.lineNumber,k.line,k.fullMatch,!0);new q.Notice("Image link(s) cut from note and copied to clipboard")};A.length>1?new Ei(this.app,"Confirm Cut",`Found ${A.length} matching image links inside current note. Do you want to cut all of them?`,"Cut",async()=>{for(let k of A)await this.removeImageLinkFromEditor(f,k.lineNumber,k.line,k.fullMatch,!0);new q.Notice("Image link(s) cut from note and copied to clipboard")}).open():await l()}catch(f){console.error("Error cutting image:",f),new q.Notice("Failed to cut image. Check console for details.")}}addCopyImageMenuItem(e,r){e.addItem(t=>t.setTitle("Copy image").setIcon("copy").onClick(async()=>{await this.copyImageToClipboard(r)}))}async copyImageToClipboard(e){let r=new Image;r.crossOrigin="anonymous";let t=e.target;this.registerDomEvent(r,"load",async()=>{try{let n=document.createElement("canvas");n.width=r.naturalWidth,n.height=r.naturalHeight;let f=n.getContext("2d");if(!f){new q.Notice("Failed to get canvas context");return}f.drawImage(r,0,0);let o=n.toDataURL(),A=await(await fetch(o)).blob(),l=new ClipboardItem({[A.type]:A});await navigator.clipboard.write([l]),new q.Notice("Image copied to clipboard")}catch(n){console.error("Failed to copy image:",n),new q.Notice("Failed to copy image to clipboard")}}),r.src=t.src}addCopyBase64ImageMenuItem(e,r){e.addItem(t=>t.setTitle("Copy as Base64 encoded image").setIcon("copy").onClick(()=>{this.copyImageAsBase64(r)}))}async copyImageAsBase64(e){let r=e.target,t=new Image;t.crossOrigin="anonymous",this.registerDomEvent(t,"load",async()=>{try{let n=document.createElement("canvas");n.width=t.naturalWidth,n.height=t.naturalHeight;let f=n.getContext("2d");if(!f){new q.Notice("Failed to get canvas context");return}f.drawImage(t,0,0);let o=n.toDataURL();await navigator.clipboard.writeText(``),new q.Notice("Image copied to clipboard as Base64")}catch(n){console.error("Failed to copy image as Base64:",n),new q.Notice("Failed to copy image as Base64")}}),t.src=r.src}addProcessImageMenuItem(e,r,t){e.addItem(n=>{n.setTitle("Convert/compress...").setIcon("cog").onClick(async()=>{try{let f=this.app.workspace.getActiveViewOfType(q.MarkdownView);if(!f){new q.Notice("No active markdown view");return}let o=f.file;if(!o){new q.Notice("No current file found");return}let a=r.getAttribute("src");if(!a){new q.Notice("No source attribute found on the image");return}let A=decodeURIComponent(a.split("?")[0].split("/").pop()||"");if(!A){new q.Notice("Unable to extract filename from the image source");return}let l=this.app.vault.getFiles().filter(u=>u.name===A);if(l.length===0){console.error("No matching files found for:",A),new q.Notice(`Unable to find image: ${A}`);return}let k=l.length===1?l[0]:l.find(u=>{var c;let h=(c=o.parent)==null?void 0:c.path;return h?u.path.startsWith(h):!1})||l[0];k instanceof q.TFile?new $2(this.app,this.plugin,k).open():new q.Notice("Error: Not a valid image file.")}catch(f){console.error("Error processing image:",f),new q.Notice("Error processing image")}})})}addCropRotateFlipMenuItem(e,r){e.addItem(t=>{t.setTitle("Crop/Rotate/Flip").setIcon("scissors").onClick(async()=>{let n=this.app.workspace.getActiveViewOfType(q.MarkdownView);if(!n){new q.Notice("No active markdown view");return}let f=n.file;if(!f){new q.Notice("No current file found");return}let o=r.getAttribute("src");if(!o){new q.Notice("No source attribute found");return}let a=decodeURIComponent(o.split("?")[0].split("/").pop()||""),A=this.app.vault.getFiles().filter(k=>k.name===a);if(A.length===0){console.error("No matching files found for:",a),new q.Notice(`Unable to find image: ${a}`);return}let l=A.length===1?A[0]:A.find(k=>{var h;let u=(h=f.parent)==null?void 0:h.path;return u?k.path.startsWith(u):!1})||A[0];l instanceof q.TFile?new Kt(this.app,l).open():new q.Notice("Unable to locate image file")})})}addAnnotateImageMenuItem(e,r){e.addItem(t=>{t.setTitle("Annotate image").setIcon("pencil").onClick(async()=>{try{let n=this.app.workspace.getActiveViewOfType(q.MarkdownView);if(!n){new q.Notice("No active markdown view");return}let f=n.file;if(!f){new q.Notice("No current file found");return}let o=r.getAttribute("src");if(!o){new q.Notice("No source attribute found");return}let a=decodeURIComponent(o.split("?")[0].split("/").pop()||""),A=this.app.vault.getFiles().filter(k=>k.name===a);if(A.length===0){console.error("No matching files found for:",a),new q.Notice(`Unable to find image: ${a}`);return}let l=A.length===1?A[0]:A.find(k=>{var h;let u=(h=f.parent)==null?void 0:h.path;return u?k.path.startsWith(u):!1})||A[0];l instanceof q.TFile?new qt(this.app,this.plugin,l).open():new q.Notice("Unable to locate image file")}catch(n){console.error("Image location error:",n),new q.Notice("Error processing image path")}})})}addShowInNavigationMenuItem(e,r){e.addItem(t=>{t.setTitle("Show in navigation").setIcon("folder-open").onClick(async()=>{await this.showImageInNavigation(r)})})}async showImageInNavigation(e){try{let r=this.folderAndFilenameManagement.getImagePath(e);if(r){let t=this.app.vault.getAbstractFileByPath(r);if(t instanceof q.TFile){let n=this.app.workspace.getLeavesOfType("file-explorer")[0];if(!n){let f=this.app.workspace.getLeftLeaf(!1);f&&(await f.setViewState({type:"file-explorer"}),n=f)}if(n){this.app.workspace.leftSplit&&this.app.workspace.leftSplit.expand();let f=n.view;f&&f.revealInFolder(t)}}}}catch(r){new q.Notice("Failed to show in navigation"),console.error(r)}}addShowInSystemExplorerMenuItem(e,r){e.addItem(t=>{t.setTitle("Show in system explorer").setIcon("arrow-up-right").onClick(async()=>{await this.showImageInSystemExplorer(r)})})}async showImageInSystemExplorer(e){try{let r=this.folderAndFilenameManagement.getImagePath(e);r&&await this.app.showInFolder(r)}catch(r){new q.Notice("Failed to show in system explorer"),console.error(r)}}addDeleteImageAndLinkMenuItem(e,r){e.addItem(t=>{t.setTitle("Delete Image and Link").setIcon("trash").onClick(async()=>{await this.deleteImageAndLinkFromNote(r)})})}async deleteImageAndLinkFromNote(e){let r=e.target,t=r.getAttribute("src");if(!t)return;let n=this.app.workspace.getActiveViewOfType(q.MarkdownView);if(!n){new q.Notice("No active Markdown view found");return}try{let f=n.editor;if(t.startsWith("data:image/")){await this.processBase64Image(f,t,async(c,d,b,g)=>{await this.removeImageLinkFromEditor(c,d,b,g,!1)})||new q.Notice("Failed to find Base64 image link");return}let o=t.startsWith("http://")||t.startsWith("https://")?null:this.folderAndFilenameManagement.getImagePath(r),a=!o,A=await this.findImageMatches(f,o,a);if(A.length===0){new q.Notice("Failed to find image link in the current note.");return}let l=new Map;for(let h of A){let c=`${h.lineNumber}-${h.line}-${h.fullMatch}`;l.has(c)||l.set(c,h)}let k=Array.from(l.values());if(k.length===0){new q.Notice("Failed to find unique image links in the current note.");return}let u=async()=>{let h=k.sort((c,d)=>d.lineNumber-c.lineNumber);for(let c of h)await this.removeImageLinkFromEditor(f,c.lineNumber,c.line,c.fullMatch,!1);if(new q.Notice("Image link(s) removed from note"),o){let c=this.app.vault.getAbstractFileByPath(o);c instanceof q.TFile&&(await this.app.vault.trash(c,!0),new q.Notice("Image file moved to trash"))}};if(k.length>1){let h=document.createDocumentFragment(),c=document.createElement("div");h.appendChild(c);let d=document.createElement("p");d.textContent=`Found ${k.length} unique matching image links inside current note. Do you want to delete all of them?`,c.appendChild(d),k.forEach((b,g)=>{let v=b.lineNumber+1,w=b.line.trim(),p=document.createElement("div");p.style.marginBottom="5px",p.innerHTML=` ${g+1}. Line ${v}: ${w}`,c.appendChild(p)}),new Ei(this.app,"Confirm Delete",h,"Delete",u).open()}else k.length===1?await u():new q.Notice("No unique image links found to delete.")}catch(f){console.error("Error deleting image:",f),new q.Notice("Failed to delete image. Check console for details.")}}onunload(){super.onunload(),this.currentMenu&&(this.currentMenu.hide(),this.currentMenu=null),this.contextMenuRegistered=!1}};var w2=require("obsidian");var Ra=require("obsidian"),rn=class extends Ra.Component{constructor(e,r,t){super();this.app=e;this.plugin=r;this.imageAlignmentManager=t}addAlignmentOptionsToContextMenu(e,r,t){e.addItem(n=>{n.setTitle("Align image").setIcon("align-justify").setSubmenu().addItem(f=>{let o=this.getCurrentImageAlignment(r);f.setTitle("Left").setIcon("align-left").setChecked(o.align==="left").onClick(async()=>{await this.updateImageAlignment(r,{align:o.align==="left"?"none":"left",wrap:o.wrap})})}).addItem(f=>{let o=this.getCurrentImageAlignment(r);f.setTitle("Center").setIcon("align-center").setChecked(o.align==="center").onClick(async()=>{await this.updateImageAlignment(r,{align:o.align==="center"?"none":"center",wrap:o.wrap})})}).addItem(f=>{let o=this.getCurrentImageAlignment(r);f.setTitle("Right").setIcon("align-right").setChecked(o.align==="right").onClick(async()=>{await this.updateImageAlignment(r,{align:o.align==="right"?"none":"right",wrap:o.wrap})})}).addSeparator().addItem(f=>{let o=this.getCurrentImageAlignment(r);f.setTitle("Wrap Text").setChecked(o.wrap).onClick(async()=>{let a=o.align==="none"?"left":o.align;await this.updateImageAlignment(r,{align:a,wrap:!o.wrap})})})})}applyAlignmentToImage(e,r){if(!r){console.error("No position data provided for image:",e.src);return}let t=e.matchParent(".internal-embed.image-embed");t&&(t.removeClass("image-position-left","image-position-center","image-position-right","image-wrap","image-no-wrap"),r.position!=="none"&&(t.addClass(`image-position-${r.position}`,"image-converter-aligned"),t.addClass(r.wrap?"image-wrap":"image-no-wrap"))),e.removeClass("image-position-left","image-position-center","image-position-right","image-wrap","image-no-wrap","image-converter-aligned"),r.position!=="none"&&(e.addClass("image-converter-aligned"),e.addClass(`image-position-${r.position}`),e.addClass(r.wrap?"image-wrap":"image-no-wrap"),r.width&&e.setCssStyles({width:r.width}),r.height&&e.setCssStyles({height:r.height}))}async updateImageAlignment(e,r){let t=this.app.workspace.getActiveFile();if(!t)return;let n=e.getAttribute("src");if(!n)return;let f=this.imageAlignmentManager.getRelativePath(n);e.removeClass("image-position-left","image-position-center","image-position-right","image-wrap","image-no-wrap","image-converter-aligned"),r.align!=="none"&&(e.addClass(`image-position-${r.align}`,"image-converter-aligned"),e.addClass(r.wrap?"image-wrap":"image-no-wrap"));let o=e.matchParent(".internal-embed.image-embed");o&&(o.removeClass("image-position-left","image-position-center","image-position-right","image-wrap","image-no-wrap","image-converter-aligned"),r.align!=="none"&&(o.addClass(`image-position-${r.align}`),o.addClass(r.wrap?"image-wrap":"image-no-wrap"))),r.align==="none"?this.plugin.ImageAlignmentManager.removeImageFromCache(t.path,f):this.plugin.ImageAlignmentManager.saveImageAlignmentToCache(t.path,f,r.align,e.style.width,e.style.height,r.wrap)}getCurrentImageAlignment(e){let r=this.app.workspace.getActiveFile();if(!r)return{align:"none",wrap:!1};let t=e.getAttr("src");if(!t)return{align:"none",wrap:!1};let n=this.imageAlignmentManager.getImageAlignment(r.path,t);if(n)return{align:n.position,wrap:n.wrap};let f=Array.from(e.classList).find(A=>A.startsWith("image-position-")),o=f?f.replace("image-position-",""):"none",a=e.hasClass("image-wrap");return{align:o,wrap:a}}};var tn=class{constructor(){this.locks=new Map}async acquire(i,e){let r=await this.acquireLock(i);try{return await e()}finally{r()}}async acquireLock(i){for(;this.locks.has(i);)await this.locks.get(i);let e,r=new Promise(t=>e=t);return this.locks.set(i,r),()=>{this.locks.delete(i),e()}}};var nn=class{constructor(i,e,r){this.app=i;this.plugin=e;this.supportedImageFormats=r;this.cache={};this.imageObserver=null;this.lock=new tn;this.imageStates=new Map;this.eventRefs=[];this.cleanupIntervalId=null;this.pluginDir=this.getPluginDir(),this.updateCacheFilePath(),this.imageAlignment=new rn(this.app,this.plugin,this),this.debouncedValidateNoteCache=(0,w2.debounce)(this.validateNoteCache.bind(this),300,!0)}async initialize(){await this.loadCache(),this.registerEvents(),this.scheduleCacheCleanup();let i=this.app.workspace.getActiveFile();i&&this.applyAlignmentsToNote(i.path)}addAlignmentOptionsToContextMenu(i,e,r){this.imageAlignment.addAlignmentOptionsToContextMenu(i,e,r)}updateCacheFilePath(){this.plugin.settings.imageAlignment_cacheLocation===".obsidian"?this.cacheFilePath=".obsidian/image-converter-image-alignments.json":this.cacheFilePath=`${this.pluginDir}/image-converter-image-alignments.json`}getPluginDir(){let i=this.plugin.manifest.dir;return i||(console.error("Could not determine plugin directory"),"")}getCache(){return this.cache}async loadCache(){try{let i=this.app.vault.adapter;if(await i.exists(this.cacheFilePath)){let e=await i.read(this.cacheFilePath);this.cache=JSON.parse(e)}}catch(i){console.error("Error loading image alignment cache:",i),this.cache={}}}async saveCache(){try{if(!this.pluginDir){console.error("Plugin directory not found");return}await this.app.vault.adapter.write(this.cacheFilePath,JSON.stringify(this.cache,null,2))}catch(i){console.error("Error saving image alignment cache:",i)}}registerEvents(){this.eventRefs.push(this.app.vault.on("delete",async i=>{if(i instanceof w2.TFile){if(i.extension==="md")await this.removeNoteFromCache(i.path);else if(this.supportedImageFormats.isSupported(void 0,i.name)){let r=Object.keys(this.getCache());for(let t of r){let n=this.getImageHash(t,i.path);await this.removeImageFromCache(t,n)}}let e=this.app.workspace.getActiveFile();if(e&&e.extension==="md"){let r=await this.app.vault.cachedRead(e);this.validateNoteCache(e.path,r)}}})),this.eventRefs.push(this.app.vault.on("rename",async(i,e)=>{if(i instanceof w2.TFile){if(i.extension==="md")this.cache[e]&&(this.cache[i.path]=this.cache[e],delete this.cache[e],await this.saveCache());else if(this.supportedImageFormats.isSupported(void 0,i.name)){let t=Object.keys(this.cache);for(let n of t){let f=this.getImageHash(n,e),o=this.getImageHash(n,i.path);this.cache[n][f]&&(this.cache[n][o]=this.cache[n][f],delete this.cache[n][f])}await this.saveCache()}let r=this.app.workspace.getActiveFile();if(r&&r.extension==="md"){let t=await this.app.vault.cachedRead(r);this.validateNoteCache(r.path,t)}}}))}async saveImageAlignmentToCache(i,e,r,t,n,f=!1){try{await this.lock.acquire("cacheOperation",async()=>{let o=this.getRelativePath(e),a=this.getImageHash(i,o);this.cache[i]||(this.cache[i]={}),this.cache[i][a]={position:r,width:t||"",height:n||"",wrap:f},await this.saveCache()})}catch(o){console.error("Error in saveImageAlignmentToCache:",o)}}getImageHash(i,e){let r=this.getRelativePath(e),t=`${i}:${r}`;return Sl(t,0)}getImageAlignment(i,e){var n;let r=this.getImageHash(i,e);return(n=this.cache[i])==null?void 0:n[r]}getRelativePath(i){if(i.startsWith("http://")||i.startsWith("https://"))return i;if(i=i.split("?")[0],i.startsWith("app://")||i.startsWith("file:///")){let t="";if(i.startsWith("app://")){let n=i.substring(6).split("/");n.length>1&&(t=decodeURIComponent(n.slice(1).join("/")))}else i.startsWith("file:///")&&(t=decodeURIComponent(i.substring(8)));if(t){let n=null;if(this.app.vault.adapter instanceof w2.FileSystemAdapter&&(n=this.app.vault.adapter.getBasePath()),n){let f=n.toLowerCase().replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");if(t.toLowerCase().replace(/\\/g,"/").replace(/^\/+/,"").startsWith(f)){let a=t.substring(n.length);return a=a.replace(/^\/+/,""),a}}}}let r=this.app.vault.getFiles().find(t=>t.path.endsWith(i));return r?r.path:i}async applyAlignmentsToNote(i){try{await this.lock.acquire("applyAlignments",async()=>{let e=this.cache[i];if(!e)return;document.querySelectorAll("img").forEach(t=>{let n=t.getAttr("src");if(!n)return;let f=this.getImageHash(i,n),o=e[f];o&&this.imageAlignment.applyAlignmentToImage(t,o)})})}catch(e){console.error("Error in applyAlignmentsToNote:",e)}}async cleanCache(){await this.lock.acquire("cacheCleanup",async()=>{console.time("Cache cleanup time");let i={};for(let e in this.cache)if(this.app.vault.getAbstractFileByPath(e)){i[e]={};for(let t in this.cache[e]){let n=!1,f=this.app.vault.getFiles();for(let o of f)if(this.supportedImageFormats.isSupported(void 0,o.name)&&this.getImageHash(e,o.path)===t){n=!0;break}n&&(i[e][t]=this.cache[e][t])}Object.keys(i[e]).length===0&&delete i[e]}this.cache=i,await this.saveCache(),console.timeEnd("Cache cleanup time"),console.log("Cache cleaned:",this.cache)})}async validateNoteCache(i,e){await this.lock.acquire("validateCache",async()=>{if(!this.cache[i])return;let r=this.extractImageLinks(e);if(r.length===0){this.cache[i]&&(delete this.cache[i],await this.saveCache());return}let t=Object.keys(this.cache[i]),n=r.map(o=>this.getImageHash(i,o)),f=t.filter(o=>!n.includes(o));for(let o of f)delete this.cache[i][o];Object.keys(this.cache[i]).length===0&&delete this.cache[i],await this.saveCache()})}extractImageLinks(i){let e=[],r=/!\[[^\]]*?(?:\|\d+(?:\|\d+)?)?\]\(([^)\s"]+)(?:\s+"[^"]*")?\)/g,t=/!\[\[([^\]]+?)(?:\|[^\]]+?)?\]\]/g,n;for(;(n=r.exec(i))!==null;)e.push(n[1]);for(;(n=t.exec(i))!==null;)e.push(n[1]);return e}async removeImageFromCache(i,e){await this.lock.acquire("cacheOperation",async()=>{let r=this.getRelativePath(e),t=this.getImageHash(i,r);this.cache[i]&&this.cache[i][t]&&(delete this.cache[i][t],Object.keys(this.cache[i]).length===0&&delete this.cache[i],await this.saveCache())})}async removeNoteFromCache(i){this.cache[i]&&(delete this.cache[i],await this.saveCache())}scheduleCacheCleanup(){this.cleanupIntervalId&&window.clearInterval(this.cleanupIntervalId);let i=this.plugin.settings.imageAlignment_cacheCleanupInterval;i>0&&(this.cleanupIntervalId=window.setInterval(()=>{this.cleanCache()},i))}cleanupObserver(){this.imageObserver&&(this.imageObserver.disconnect(),this.imageObserver=null)}onunload(){var i;this.cleanupObserver(),this.eventRefs.forEach(e=>this.app.workspace.offref(e)),this.eventRefs=[],this.cleanupIntervalId&&(window.clearInterval(this.cleanupIntervalId),this.cleanupIntervalId=null),this.imageAlignment&&this.imageAlignment.onunload(),this.imageObserver=null,this.cache={},this.imageStates.clear(),(i=this.debouncedValidateNoteCache)==null||i.cancel()}};function Sl(s,i){let e=i>>>0,r=i>>>0,t=i>>>0,n=i>>>0,f=2277735313,o=1291169091,a=s.length,A=a>>>4;for(let b=0;b>>17,v=Math.imul(v,o),e^=v,e=e<<19|e>>>13,e=Math.imul(e,5)+3864292196>>>0,w=Math.imul(w,f),w=w<<15|w>>>17,w=Math.imul(w,o),r^=w,r=r<<17|r>>>15,r=Math.imul(r,5)+3864292196>>>0,p=Math.imul(p,f),p=p<<15|p>>>17,p=Math.imul(p,o),t^=p,t=t<<15|t>>>17,t=Math.imul(t,5)+3864292196>>>0,m=Math.imul(m,f),m=m<<15|m>>>17,m=Math.imul(m,o),n^=m,n=n<<13|n>>>19,n=Math.imul(n,5)+3864292196>>>0}let l=0,k=0,u=0,h=0,c=A*16,d=a%16;if(d>0)switch(d){case 15:h^=(s.charCodeAt(c+14)&255)<<16;case 14:h^=(s.charCodeAt(c+13)&255)<<8;case 13:h^=(s.charCodeAt(c+12)&255)<<0,h=Math.imul(h,f),h=h<<15|h>>>17,h=Math.imul(h,o),n^=h;case 12:u^=(s.charCodeAt(c+11)&255)<<24;case 11:u^=(s.charCodeAt(c+10)&255)<<16;case 10:u^=(s.charCodeAt(c+9)&255)<<8;case 9:u^=(s.charCodeAt(c+8)&255)<<0,u=Math.imul(u,f),u=u<<15|u>>>17,u=Math.imul(u,o),t^=u;case 8:k^=(s.charCodeAt(c+7)&255)<<24;case 7:k^=(s.charCodeAt(c+6)&255)<<16;case 6:k^=(s.charCodeAt(c+5)&255)<<8;case 5:k^=(s.charCodeAt(c+4)&255)<<0,k=Math.imul(k,f),k=k<<15|k>>>17,k=Math.imul(k,o),r^=k;case 4:l^=(s.charCodeAt(c+3)&255)<<24;case 3:l^=(s.charCodeAt(c+2)&255)<<16;case 2:l^=(s.charCodeAt(c+1)&255)<<8;case 1:l^=(s.charCodeAt(c+0)&255)<<0,l=Math.imul(l,f),l=l<<15|l>>>17,l=Math.imul(l,o),e^=l}return e^=a,r^=a,t^=a,n^=a,e=e+r>>>0,e=e+t>>>0,e=e+n>>>0,r=r+e>>>0,r=r+t>>>0,r=r+n>>>0,t=t+e>>>0,t=t+r>>>0,t=t+n>>>0,n=n+e>>>0,n=n+r>>>0,n=n+t>>>0,e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),e^=e>>>16,r^=r>>>16,r=Math.imul(r,2246822507),r^=r>>>13,r=Math.imul(r,3266489909),r^=r>>>16,t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,n^=n>>>16,n=Math.imul(n,2246822507),n^=n>>>13,n=Math.imul(n,3266489909),n^=n>>>16,("00000000"+(n>>>0).toString(16)).slice(-8)+("00000000"+(t>>>0).toString(16)).slice(-8)+("00000000"+(r>>>0).toString(16)).slice(-8)+("00000000"+(e>>>0).toString(16)).slice(-8)}var on=require("obsidian"),fn=class{constructor(i){this.plugin=i;this.editor=null;this.markdownView=null;this.handles=[];this.activeImage=null;this.handleSize=8;this.startX=0;this.startY=0;this.initialWidth=0;this.initialHeight=0;this.currentHandle=null;this.initialAspectRatio=1;this.rafId=null;this.resizeState={isResizing:!1,isDragging:!1,isScrolling:!1};this.resizeBuffer={};this.scrollTimeout=null;this.SCROLL_DEBOUNCE_MS=300;this.lastMouseEvent=null;this.EDGE_SIZE=30;this.handleImageHover=i=>{if(this.resizeState.isScrolling)return;if(!this.isResizingPermitted("drag")){this.cleanupHandles();return}let e=i.target;if(this.lastMouseEvent=i,!e.instanceOf(HTMLImageElement)&&!e.hasClass("image-resize-handle")){this.cleanupHandles();return}let r=this.plugin.app.workspace.getActiveViewOfType(on.MarkdownView);if(!r||!r.containerEl.contains(e)){this.cleanupHandles();return}if(e.matchParent(".map-view-main")){this.cleanupHandles();return}if(!this.resizeState.isResizing){if(e.instanceOf(HTMLImageElement)&&this.isExternalLink(e.src)){this.activeImage=e,e.addClass("image-resize-border"),this.handleEdgeDetection(i,e);return}if(e.instanceOf(HTMLImageElement)&&!this.isExternalLink(e.src)){this.activeImage=e,this.createHandles(e);return}}};this.handleMouseDown=i=>{if(!this.isResizingPermitted("drag"))return;let e=i.target;if(e.hasClass("image-resize-handle")){i.preventDefault(),i.stopPropagation(),this.startResize(i,e),this.resizeState.isDragging=!0;return}if(e.instanceOf(HTMLImageElement)&&e.hasClass("image-resize-border")){i.preventDefault(),i.stopPropagation(),this.startResize(i,e),this.resizeState.isDragging=!0;return}};this.handleMouseMove=i=>{this.resizeState.isDragging&&(this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=requestAnimationFrame(()=>{if(this.activeImage&&this.activeImage.hasClass("image-resize-border")&&this.handleEdgeDetection(i,this.activeImage),!this.resizeState.isResizing||!this.activeImage||!this.editor)return;let e=i.clientX-this.startX,r=i.clientY-this.startY,t=this.initialWidth,n=this.initialHeight,f=10;if(this.currentHandle==="border"){let o=Math.max((this.initialWidth+e)/this.initialWidth,(this.initialHeight+r)/this.initialHeight);t=Math.max(f,this.initialWidth*o),n=Math.max(f,this.initialHeight*o)}else switch(this.currentHandle){case"n":n=Math.max(f,this.initialHeight-r);break;case"s":n=Math.max(f,this.initialHeight+r);break;case"e":t=Math.max(f,this.initialWidth+e);break;case"w":t=Math.max(f,this.initialWidth-e);break;case"nw":case"sw":t=Math.max(f,this.initialWidth-e),n=t/this.initialAspectRatio;break;case"ne":case"se":t=Math.max(f,this.initialWidth+e),n=t/this.initialAspectRatio;break}this.activeImage.style.width=`${Math.round(t)}px`,this.activeImage.style.height=`${Math.round(n)}px`,this.throttledUpdateImageLink(this.activeImage,t,n,this.currentHandle),this.updateCursorPositionDuringResize()}))};this.handleMouseUp=()=>{if(!this.resizeState.isResizing||this.resizeState.isScrolling||!this.activeImage)return;if(this.activeImage.hasClass("image-resize-border"))this.activeImage.removeClass("resizing");else{let r=this.activeImage.matchParent(".image-resize-container");r&&r.removeClass("resizing")}this.currentHandle=null;let i=Math.round(this.activeImage.offsetWidth),e=Math.round(this.activeImage.offsetHeight);this.updateMarkdownLink(this.activeImage,i,e,this.currentHandle),this.cleanupHandles(),this.resizeState.isDragging=!1,this.resizeState.isResizing=!1};this.handleMouseWheel=i=>{var c;if(!this.plugin.settings.isScrollResizeEnabled||!this.checkModifierKey(i))return;let e=i.target,r=null;if(e.tagName==="IMG")r=e;else if(e.hasClass("image-resize-handle")){let d=e.closest(".image-resize-container");d&&(r=d.querySelector("img"))}if(!r||!((c=this.markdownView)!=null&&c.containerEl.contains(r)))return;i.preventDefault(),i.stopPropagation(),this.resizeState.isScrolling=!0,this.activeImage=r;let t=r.getBoundingClientRect();if(!t)return;this.initialWidth=t.width,this.initialHeight=t.height,this.initialAspectRatio=this.initialWidth/this.initialHeight;let{newWidth:n,newHeight:f}=this.resizeImageScrollWheel(i,r);getComputedStyle(r).width.endsWith("%")?r.style.width=`${n}%`:r.style.width=`${n}px`,r.style.height=`${f}px`;let a=this.plugin.app.workspace.getActiveFile();if(!a){console.warn("Could not get active file for image:",r);return}let A=a.path,l=this.getImageName(r);if(!l)return;let k=this.plugin.settings.isImageAlignmentEnabled,u=null;k&&this.plugin.ImageAlignmentManager&&(u=this.plugin.ImageAlignmentManager.getImageHash(A,l));let h=k&&Array.from(r.classList).some(d=>d.startsWith("image-position-"));k&&(this.resizeBuffer[u]={width:n,height:f}),(!k||!h)&&this.throttledUpdateImageLink(r,n,f,null),k&&this.debouncedSaveToCache(r,n,f),this.scrollTimeout&&clearTimeout(this.scrollTimeout),this.scrollTimeout=window.setTimeout(()=>{this.resizeState.isScrolling=!1,this.activeImage=null},this.SCROLL_DEBOUNCE_MS)};this.saveDimensionsToCache=async(i,e,r)=>{this.updateMarkdownLink(i,e,r,null);let t=this.plugin.app.workspace.getActiveFile();if(!t)return;let n=t.path,f=this.getImageName(i);if(!f)return;let o=this.plugin.ImageAlignmentManager.getImageHash(n,f),a=this.resizeBuffer[o];if(a&&this.plugin.settings.isImageAlignmentEnabled&&this.plugin.ImageAlignmentManager){let A=this.plugin.ImageAlignmentManager.getImageAlignment(n,f);A&&await this.plugin.ImageAlignmentManager.saveImageAlignmentToCache(n,f,A.position,`${Math.round(a.width)}px`,`${Math.round(a.height)}px`,A.wrap),delete this.resizeBuffer[o]}};this.throttledUpdateImageLink=this.throttle((e,r,t,n)=>{this.updateMarkdownLink(e,r,t,n)},100),this.resizeSensitivity=this.plugin.settings.resizeSensitivity,this.scrollwheelModifier=this.plugin.settings.scrollwheelModifier,this.debouncedSaveToCache=(0,on.debounce)(this.saveDimensionsToCache,this.SCROLL_DEBOUNCE_MS,!0)}onload(i){this.markdownView=i,this.editor=i.editor,this.plugin.settings.isImageResizeEnbaled&&this.registerEditorEvents()}onunload(){var i;this.rafId&&(cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollTimeout&&(clearTimeout(this.scrollTimeout),this.scrollTimeout=null),(i=this.debouncedSaveToCache)!=null&&i.cancel&&this.debouncedSaveToCache.cancel(),this.cleanupHandles(),this.resizeState={isResizing:!1,isDragging:!1,isScrolling:!1},this.activeImage=null,this.lastMouseEvent=null,this.currentHandle=null,this.handles=[],this.editor=null,this.markdownView=null}onLayoutChange(i){this.cleanupHandles(),this.onload(i),this.lastMouseEvent&&this.handleImageHover(this.lastMouseEvent)}registerEditorEvents(){!this.editor||!this.markdownView||(this.plugin.registerDomEvent(this.markdownView.containerEl,"mouseover",this.handleImageHover),this.plugin.registerDomEvent(document,"mousedown",this.handleMouseDown),this.plugin.registerDomEvent(document,"mousemove",this.handleMouseMove),this.plugin.registerDomEvent(document,"mouseup",this.handleMouseUp),this.plugin.registerDomEvent(this.markdownView.containerEl,"wheel",this.handleMouseWheel,{passive:!1}))}handleEdgeDetection(i,e){if(this.resizeState.isScrolling||i.target&&i.target.hasClass("image-resize-handle"))return;let r=e.getBoundingClientRect(),t=i.clientX-r.left,n=i.clientY-r.top,f=n<=this.EDGE_SIZE,o=n>=r.height-this.EDGE_SIZE,a=t<=this.EDGE_SIZE,A=t>=r.width-this.EDGE_SIZE;f||o||a||A?f&&a||o&&A?e.style.cursor="nwse-resize":f&&A||o&&a?e.style.cursor="nesw-resize":f||o?e.style.cursor="ns-resize":a||A?e.style.cursor="ew-resize":e.style.cursor="se-resize":e.style.cursor="news-resize"}cleanupHandles(){var e;if(this.resizeState.isResizing||!this.activeImage)return;let i=this.activeImage.matchParent(".image-resize-container");if(i){let r=["image-position-left","image-position-center","image-position-right","image-wrap","image-no-wrap","image-converter-aligned"];for(let t of r)i.hasClass(t)&&(this.activeImage.addClass(t),i.removeClass(t));(e=i.parentNode)==null||e.insertBefore(this.activeImage,i),i.detach(),this.handles=[]}this.activeImage.hasClass("image-resize-border")&&(this.activeImage.removeClass("image-resize-border"),this.activeImage.style.cursor="default"),this.activeImage=null,this.lastMouseEvent=null}createHandles(i){var n;this.cleanupHandles(),this.activeImage=i;let e=createEl("div",{cls:"image-resize-container"}),r=["image-position-left","image-position-center","image-position-right","image-wrap","image-no-wrap","image-converter-aligned"];for(let f of r)i.hasClass(f)&&e.addClass(f);(n=i.parentNode)==null||n.insertBefore(e,i),e.appendChild(i);let t=["nw","ne","sw","se","n","s","e","w"];this.handles=t.map(f=>e.createEl("div",{cls:`image-resize-handle image-resize-handle-${f}`,attr:{"data-handle-type":f}}))}startResize(i,e){if(this.resizeState.isResizing=!0,this.activeImage=this.activeImage||e.matchParent("img"),this.activeImage)if(this.activeImage.hasClass("image-resize-border"))this.activeImage.addClass("resizing");else{let t=this.activeImage.matchParent(".image-resize-container");t&&t.addClass("resizing")}else{this.resizeState.isResizing=!1;return}this.currentHandle=e.hasClass("image-resize-border")?"border":e.getAttr("data-handle-type")||null;let r=this.activeImage.getBoundingClientRect();r?(this.startX=i.clientX,this.startY=i.clientY,this.initialWidth=r.width,this.initialHeight=r.height,this.initialAspectRatio=this.initialWidth/this.initialHeight):this.resizeState.isResizing=!1}checkModifierKey(i){if(!this.isResizingPermitted("scroll"))return!1;switch(this.scrollwheelModifier){case"Shift":return i.shiftKey;case"Control":return i.ctrlKey;case"Alt":return i.altKey;case"Meta":return i.metaKey;case"None":return!0;default:return!1}}resizeImageScrollWheel(i,e){let r=Math.sign(i.deltaY),t=this.plugin.settings.resizeSensitivity,n=r<0?1+t:1/(1+t),f,o=getComputedStyle(e).width;e instanceof HTMLVideoElement&&o.endsWith("%")?(f=parseFloat(o)*n,f=Math.max(1,Math.min(f,100))):(f=e.clientWidth*n,f=Math.max(22,f));let a=e.clientWidth/e.clientHeight,A=Math.max(22,f/a);return f=Math.round(f),A=Math.round(A),{newWidth:f,newHeight:A,newLeft:0,newTop:0}}getEndLineOfLink(i,e,r,t){let n=i.getLine(e).substring(r,t),f=e;for(;!n.match(/\]\]|\)/)&&f"))return e;let n=t.trimStart()[0];for(;r{if(this.isFrontmatter(b,a))return;this.findAllMatches(d).filter(v=>(this.isBase64Image(v.path)?v.path:this.getFilenameFromPath(v.path))===A).forEach(v=>{let w="",p="",m="",C=this.plugin.settings.isImageAlignmentEnabled&&this.plugin.ImageAlignmentManager?this.plugin.ImageAlignmentManager.getImageAlignment(k,o):null,y=(C==null?void 0:C.width)||void 0,Z=(C==null?void 0:C.height)||void 0,_=`${Math.round(e)}x${Math.round(r)}`;if(v.type==="md")this.currentHandle==="border"?(w=`${Math.round(e)}x`,p=`${Math.round(r)}`):["n","s"].includes(t||"")?(w=y||(v.existingWidth!==void 0?`${v.existingWidth}x`:"x"),p=`${Math.round(r)}`,w==="x"&&(w=`${this.initialWidth}x`)):["e","w"].includes(t||"")?(w=`${Math.round(e)}x`,p=Z||(v.existingHeight!==void 0?`${v.existingHeight}`:""),p===""&&(p=`${this.initialHeight}`)):(w=`${Math.round(e)}x`,p=`${Math.round(r)}`),v.caption?m=`![${v.altText||""}${v.spacing.beforeFirstPipe}|${v.caption}${v.spacing.beforeSecondPipe}|${_}](${v.path})`:m=`![${v.altText||""}${v.spacing.beforeFirstPipe}|${_}](${v.path})`;else{this.currentHandle==="border"?(w=`${Math.round(e)}x`,p=`${Math.round(r)}`):["n","s"].includes(t||"")?(w=y||(v.existingWidth!==void 0?`${v.existingWidth}x`:"x"),p=`${Math.round(r)}`,w==="x"&&(w=`${this.initialWidth}x`)):["e","w"].includes(t||"")?(w=`${Math.round(e)}x`,p=Z||(v.existingHeight!==void 0?`${v.existingHeight}`:""),p===""&&(p=`${this.initialHeight}`)):(w=`${Math.round(e)}x`,p=`${Math.round(r)}`);let x=`${Math.round(e)}x${Math.round(r)}`;v.caption?m=`![[${v.path}${v.spacing.beforeFirstPipe}|${v.caption}${v.spacing.beforeSecondPipe}|${x}]]`:m=`![[${v.path}${v.spacing.beforeFirstPipe}|${x}]]`}if(m){let x=v.index,B=x+v.fullMatch.length;u.push({from:{line:b,ch:x},to:{line:b,ch:B},text:m});let I=b;c==="front"?h={line:b,ch:x}:c==="back"?h={line:b,ch:x+m.length}:c==="below"&&(I=this.getEndLineOfLink(a,b,x,B),I=this.getEndOfCallout(a,I),h={line:I+1,ch:0})}})}),u.length>0&&(a.transaction({changes:u}),h&&this.plugin.settings.resizeCursorLocation!=="none"&&a.setCursor(h))}updateCursorPositionDuringResize(){if(this.plugin.settings.resizeCursorLocation==="none"||!this.markdownView||!this.activeImage||!this.editor)return;let i=this.editor,e=i.getCursor(),r=i.getLine(e.line),t=this.getImageName(this.activeImage);if(!t||!r.includes(t))return;let n=r.indexOf("![["),f=r.indexOf("!["),o=r.search(/\]\]|\)/),a;if(this.plugin.settings.resizeCursorLocation==="front")if(n!==-1||f!==-1)a={line:e.line,ch:Math.max(0,Math.max(n,f))};else return;else if(this.plugin.settings.resizeCursorLocation==="back")if(o!==-1)a={line:e.line,ch:o+(r[o]==="]"?2:1)};else return;else this.plugin.settings.resizeCursorLocation==="below"&&o!==-1&&(a={line:this.getEndLineOfLink(i,e.line,n!==-1?n:f,o)+1,ch:0});a&&!this.areEditorPositionsEqual(e,a)&&i.setCursor(a)}areEditorPositionsEqual(i,e){return i.line===e.line&&i.ch===e.ch}normalizePath(i){try{return decodeURIComponent(i).replace(/\\/g,"/")}catch(e){return i.replace(/\\/g,"/")}}getFilenameFromPath(i){let e=this.normalizePath(i);return e.split("/").pop()||e}isFrontmatter(i,e){let r=!1,t=!1;for(let n=0;n<=i;n++){let f=e.getLine(n);if(n===0&&f==="---"){r=!0,t=!0;continue}if(r&&f==="---"){r=!1;continue}if(n===i&&r&&t)return!0}return!1}findAllMatches(i){var a,A,l,k,u,h,c,d,b;let e=[],r=g=>/^\d+x\d+$/.test(g.trim()),t=/!\[\[([^|\]]+?)(?:\s*\|([^|\]]*?))?(?:\s*\|([^|\]]*))?\]\]/g,n;for(;(n=t.exec(i))!==null;){let g=n[1].trim(),v=(a=n[2])==null?void 0:a.trim(),w=(A=n[3])==null?void 0:A.trim();v&&!w&&r(v)&&(w=v,v=void 0);let p,m;if(w){let C=w.match(/^(\d+)x(\d+)$/);C&&(p=parseInt(C[1],10),m=parseInt(C[2],10))}e.push({type:"wiki",fullMatch:n[0],index:n.index,path:g,caption:v,existingWidth:p,existingHeight:m,spacing:{beforeFirstPipe:((l=n[0].match(/\[\[[^|]+?(\s*)\|/))==null?void 0:l[1])||"",beforeSecondPipe:((k=n[0].match(/\|[^|]*?(\s*)\|/))==null?void 0:k[1])||""}})}let f=/!\[([^\]]*?)(?:\s*\|([^\]|]*?))?(?:\s*\|([^\]|]*))?\]\(([^)]+)\)/g,o;for(;(o=f.exec(i))!==null;){let g=(u=o[1])==null?void 0:u.trim(),v=(h=o[2])==null?void 0:h.trim(),w=(c=o[3])==null?void 0:c.trim(),p=o[4].trim();v&&!w&&r(v)&&(w=v,v=void 0);let m,C;if(w){let y=w.match(/^(\d+)x(\d+)$/);y&&(m=parseInt(y[1],10),C=parseInt(y[2],10))}e.push({type:"md",fullMatch:o[0],index:o.index,path:p,altText:g,caption:v,existingWidth:m,existingHeight:C,spacing:{beforeFirstPipe:((d=o[0].match(/\[([^\]]*?)(\s*)\|/))==null?void 0:d[2])||"",beforeSecondPipe:((b=o[0].match(/\|[^|]*?(\s*)\|/))==null?void 0:b[1])||""}})}return e}getImageName(i){if(!i)return null;let e=i.getAttribute("src");if(!e)return null;if(this.isBase64Image(e)||this.isExternalLink(e))return e;try{e=decodeURIComponent(e);let r=e.split(/[/\\]/);return r[r.length-1].split("?")[0]}catch(r){return console.error("Error processing image path:",r),null}}isExternalLink(i){return i.startsWith("http://")||i.startsWith("https://")}isBase64Image(i){return i.startsWith("data:image")}isResizingPermitted(i){return!this.markdownView||!this.plugin.settings.isImageResizeEnbaled||this.markdownView.getState().mode==="preview"&&!this.plugin.settings.isResizeInReadingModeEnabled?!1:i==="drag"?this.plugin.settings.isDragResizeEnabled:i==="scroll"?this.plugin.settings.isScrollResizeEnabled:!1}throttle(i,e){let r;return(...t)=>{r||(i(...t),r=!0,window.setTimeout(()=>r=!1,e))}}};var G0=require("obsidian"),an=class{constructor(i,e,r,t){this.app=i;this.plugin=e;this.imageProcessor=r;this.folderAndFilenameManagement=t}async processImagesInNote(i){try{let{ProcessCurrentNoteconvertTo:e,ProcessCurrentNotequality:r,ProcessCurrentNoteResizeModalresizeMode:t,ProcessCurrentNoteresizeModaldesiredWidth:n,ProcessCurrentNoteresizeModaldesiredHeight:f,ProcessCurrentNoteresizeModaldesiredLength:o,ProcessCurrentNoteEnlargeOrReduce:a,allowLargerFiles:A,ProcessCurrentNoteSkipFormats:l,ProcessCurrentNoteskipImagesInTargetFormat:k}=this.plugin.settings,u=e==="disabled",h=r===1,c=t==="None",d=e,b=e==="disabled"?"ORIGINAL":e.toUpperCase(),g=1,v=l.toLowerCase().split(",").map(B=>B.trim()).filter(B=>B.length>0),w=[];if(i.extension==="canvas"?w=await this.getImageFilesFromCanvas(i):w=this.getLinkedImageFiles(i),w.length===0){new G0.Notice("No images found in the note.");return}if(w.every(B=>B.extension===(u?B.extension:d)||v.includes(B.extension.toLowerCase()))&&h&&c){u?new G0.Notice("No processing needed: All images are either in skip list or kept in original format with no compression or resizing."):new G0.Notice(`No processing needed: All images are either in skip list or already in ${d.toUpperCase()} format with no compression or resizing.`);return}if(u&&h&&c){new G0.Notice("No processing needed: Original format selected with no compression or resizing.");return}let m=w.filter(B=>this.shouldProcessImage(B,u,d,v,k));if(m.length===0){k?new G0.Notice(`No processing needed: All images are already in ${u?"their original":d.toUpperCase()} format.`):new G0.Notice("No images found that need processing.");return}let C=0,y=this.plugin.addStatusBarItem(),Z=Date.now(),_=m.length;for(let B of m){C++;let I=await this.app.vault.readBinary(B),W=new Blob([I],{type:`image/${B.extension}`}),F=await this.imageProcessor.processImage(W,b,r,g,t,n,f,o,a,A),X=B.basename+"."+b.toLowerCase(),E=B.path.replace(B.name,X);B.path!==E&&await this.app.fileManager.renameFile(B,E);let S=this.app.vault.getAbstractFileByPath(E);if(!S){console.error("Failed to find renamed file:",E);continue}await this.app.vault.modifyBinary(S,F),B.path!==E&&await this.updateLinksInNote(i,B.path,E);let M=((Date.now()-Z)/1e3).toFixed(2);y.setText(`Processing image ${C} of ${_}, elapsed time: ${M} seconds`)}let x=((Date.now()-Z)/1e3).toFixed(2);y.setText(`Finished processing ${C} images, total time: ${x} seconds`),window.setTimeout(()=>{y.remove()},5e3)}catch(e){console.error("Error processing images in current note:",e),new G0.Notice(`Error processing images: ${e.message}`)}}async getImageFilesFromCanvas(i){let e=await this.app.vault.read(i),r=JSON.parse(e),t=[],n=f=>{for(let o of f){if(o.type==="file"&&o.file){let a=this.app.vault.getAbstractFileByPath(o.file);a instanceof G0.TFile&&this.plugin.supportedImageFormats.isSupported(void 0,a.name)&&t.push(a)}o.children&&Array.isArray(o.children)&&n(o.children)}};return r.nodes&&Array.isArray(r.nodes)&&n(r.nodes),t}getLinkedImageFiles(i){let r=this.app.metadataCache.resolvedLinks[i.path];return Object.keys(r).map(t=>this.app.vault.getAbstractFileByPath(t)).filter(t=>t instanceof G0.TFile&&this.plugin.supportedImageFormats.isSupported(void 0,t.name))}async processImagesInFolder(i,e){try{let r=this.app.vault.getAbstractFileByPath(i);if(!(r instanceof G0.TFolder)){new G0.Notice("Error: Invalid folder path.");return}let{ProcessCurrentNoteconvertTo:t,ProcessCurrentNotequality:n,ProcessCurrentNoteResizeModalresizeMode:f,ProcessCurrentNoteresizeModaldesiredWidth:o,ProcessCurrentNoteresizeModaldesiredHeight:a,ProcessCurrentNoteresizeModaldesiredLength:A,ProcessCurrentNoteEnlargeOrReduce:l,allowLargerFiles:k,ProcessCurrentNoteSkipFormats:u}=this.plugin.settings,h=t==="disabled"?"ORIGINAL":t.toUpperCase(),c=1,d=u.toLowerCase().split(",").map(C=>C.trim()).filter(C=>C.length>0),b=this.getImageFiles(r,e);if(b.length===0){new G0.Notice("No images found in the folder.");return}let g=0,v=this.plugin.addStatusBarItem(),w=Date.now(),p=b.length;for(let C of b){if(d.includes(C.extension.toLowerCase())){console.log(`Skipping image ${C.name} (format in skip list)`);continue}g++;let y=C.basename+"."+h.toLowerCase(),Z=C.path.replace(C.name,y),_=await this.app.vault.readBinary(C),x=new Blob([_],{type:`image/${C.extension}`}),B=await this.imageProcessor.processImage(x,h,n,c,f,o,a,A,l,k);C.path!==Z&&await this.app.fileManager.renameFile(C,Z);let I=this.app.vault.getAbstractFileByPath(Z);if(!I){console.error("Failed to find renamed file:",Z);continue}await this.app.vault.modifyBinary(I,B);let W=((Date.now()-w)/1e3).toFixed(2);v.setText(`Processing image ${g} of ${p}, elapsed time: ${W} seconds`)}let m=((Date.now()-w)/1e3).toFixed(2);v.setText(`Finished processing ${g} images, total time: ${m} seconds`),window.setTimeout(()=>{v.remove()},5e3)}catch(r){console.error("Error processing images in folder:",r),new G0.Notice(`Error processing images: ${r.message}`)}}getImageFiles(i,e){let r=[];return i.children.forEach(t=>{t instanceof G0.TFile&&this.plugin.supportedImageFormats.isSupported(void 0,t.name)?r.push(t):e&&t instanceof G0.TFolder&&(r=r.concat(this.getImageFiles(t,e)))}),r}async processAllVaultImages(){var i;try{let{ProcessAllVaultconvertTo:e,ProcessAllVaultquality:r,ProcessAllVaultResizeModalresizeMode:t,ProcessAllVaultResizeModaldesiredWidth:n,ProcessAllVaultResizeModaldesiredHeight:f,ProcessAllVaultResizeModaldesiredLength:o,ProcessAllVaultEnlargeOrReduce:a,allowLargerFiles:A,ProcessAllVaultSkipFormats:l,ProcessAllVaultskipImagesInTargetFormat:k}=this.plugin.settings,u=e==="disabled",h=r===1,c=t==="None",d=e,b=e==="disabled"?"ORIGINAL":e.toUpperCase(),g=1,v=l.toLowerCase().split(",").map(B=>B.trim()).filter(B=>B.length>0),w=await this.getAllImageFiles();if(w.length===0){new G0.Notice("No images found in the vault.");return}if(w.every(B=>B.extension===(u?B.extension:d)||v.includes(B.extension.toLowerCase()))&&h&&c){u?new G0.Notice("No processing needed: All vault images are either in skip list or kept in original format with no compression or resizing."):new G0.Notice(`No processing needed: All vault images are either in skip list or already in ${d.toUpperCase()} format with no compression or resizing.`);return}let m=w.filter(B=>this.shouldProcessImage(B,u,d,v,k));if(m.length===0){k?new G0.Notice(`No processing needed: All vault images are either in ${u?"their original":d.toUpperCase()} format or in skip list.`):new G0.Notice("No images found that need processing.");return}let C=0,y=this.plugin.addStatusBarItem(),Z=Date.now(),_=m.length;for(let B of m){C++;let I=await this.app.vault.readBinary(B),W=new Blob([I],{type:`image/${B.extension}`}),F=await this.imageProcessor.processImage(W,b,r,g,t,n,f,o,a,A),X=B.basename+"."+b.toLowerCase(),E=B.path.replace(B.name,X);B.path!==E&&this.app.vault.getAbstractFileByPath(E)&&(E=await this.folderAndFilenameManagement.handleNameConflicts(((i=B.parent)==null?void 0:i.path)||"",X)),B.path!==E&&await this.app.fileManager.renameFile(B,E);let S=this.app.vault.getAbstractFileByPath(E);if(!S){console.error("Failed to find renamed file:",E);continue}await this.app.vault.modifyBinary(S,F),await this.updateLinksInAllNotes(B.path,E);let M=((Date.now()-Z)/1e3).toFixed(2);y.setText(`Processing image ${C} of ${_}, elapsed time: ${M} seconds`)}let x=((Date.now()-Z)/1e3).toFixed(2);y.setText(`Finished processing ${C} images, total time: ${x} seconds`),window.setTimeout(()=>{y.remove()},5e3)}catch(e){console.error("Error processing images:",e),new G0.Notice(`Error processing images: ${e.message}`)}}async getAllImageFiles(){let i=this.app.vault.getFiles(),e=i.filter(t=>this.plugin.supportedImageFormats.isSupported(void 0,t.name)),r=i.filter(t=>t instanceof G0.TFile&&t.extension==="canvas");for(let t of r){let n=await this.getImagesFromCanvas(t);for(let f of n){let o=this.app.vault.getAbstractFileByPath(f);o instanceof G0.TFile&&this.plugin.supportedImageFormats.isSupported(void 0,o.name)&&(e.find(a=>a.path===o.path)||e.push(o))}}return e}async getImagesFromCanvas(i){let e=[],r=await this.app.vault.read(i),t=JSON.parse(r);if(t.nodes&&Array.isArray(t.nodes))for(let n of t.nodes)n.type==="file"&&n.file&&e.push(n.file);return e}shouldProcessImage(i,e,r,t,n){let f=e?i.extension:r;return t.includes(i.extension.toLowerCase())?(console.log(`Skipping ${i.name}: Format ${i.extension} is in skip list`),!1):n&&i.extension===f?(console.log(`Skipping ${i.name}: Already in ${f} format`),!1):!0}async updateLinksInAllNotes(i,e){let r=this.app.vault.getMarkdownFiles();for(let n of r)await this.updateLinksInNote(n,i,e);let t=this.app.vault.getFiles().filter(n=>n.extension==="canvas");for(let n of t)await this.updateCanvasFileLinks(n,i,e)}async updateLinksInNote(i,e,r){let t=this.escapeRegexCharacters(e),n=this.escapeRegexCharacters(r),f=await this.app.vault.read(i),o=f.replace(new RegExp(t,"g"),n);f!==o&&(await this.app.vault.modify(i,o),console.log(`Links updated in ${i.path}`))}escapeRegexCharacters(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}async updateCanvasFileLinks(i,e,r){try{let t=await this.app.vault.read(i),n=JSON.parse(t),f=o=>{for(let a of o)a.type==="file"&&a.file===e&&(a.file=r),a.children&&Array.isArray(a.children)&&f(a.children)};n.nodes&&Array.isArray(n.nodes)&&(f(n.nodes),await this.app.vault.modify(i,JSON.stringify(n,null,2)))}catch(t){console.error("Error updating canvas file links:",t)}}};var F0=require("obsidian");var sn=class extends F0.Modal{constructor(e,r,t,n){super(e);this.plugin=r;this.folderPath=t;this.batchImageProcessor=n;this.recursive=!1;this.selectedImageSource="direct";this.imageSourceSetting=null;this.qualitySetting=null;this.convertToSetting=null;this.skipFormatsSetting=null;this.resizeModeSetting=null;this.resizeInputSettings=null;this.enlargeReduceSettings=null;this.skipTargetFormatSetting=null;this.resizeInputsDiv=null;this.enlargeReduceDiv=null;this.imageCount=0;this.processedCount=0;this.skippedCount=0;this.updateImageSourceDescription=null}async onOpen(){let{contentEl:e}=this;e.addClass("image-convert-modal"),await this.createUI(e),await this.updateImageCountsAndDisplay()}onClose(){this.imageSourceSetting=null,this.qualitySetting=null,this.convertToSetting=null,this.skipFormatsSetting=null,this.resizeModeSetting=null,this.resizeInputSettings=null,this.enlargeReduceSettings=null,this.skipTargetFormatSetting=null,this.resizeInputsDiv=null,this.enlargeReduceDiv=null,this.updateImageSourceDescription=null;let{contentEl:e}=this;e.empty()}async createUI(e){this.createHeader(e),this.createWarningMessage(e),this.createImageCountsDisplay(e);let r=e.createDiv({cls:"settings-container"});this.createImageSourceSettings(r);let t=r.createDiv({cls:"format-quality-container"});this.createGeneralSettings(t);let n=r.createDiv({cls:"resize-container"});this.createResizeSettings(n);let f=r.createDiv({cls:"skip-container"});this.createSkipSettings(f),this.createProcessButton(r)}createHeader(e){let r=this.folderPath.split("/").pop()||this.folderPath,t=e.createDiv({cls:"modal-header"});t.createEl("h2",{text:"Convert, compress and resize"}),t.createEl("h6",{text:`all images in: /${r}`,cls:"modal-subtitle"})}createWarningMessage(e){e.createEl("p",{cls:"modal-warning",text:"\u26A0\uFE0F This will modify all images in the selected folder and subfolders (if recursive is enabled). Please ensure you have backups."})}createImageCountsDisplay(e){let r=e.createDiv({cls:"image-counts-display-container"}),t=r.createDiv({cls:"image-source-description"});t.id="image-source-description";let n=f=>{let o="No selection.";f==="direct"?o="Processing images directly in the folder.":f==="linked"&&(o="Processing images linked in notes or Canvas files."),t.setText(o)};this.updateImageSourceDescription=n,n(this.selectedImageSource),r.createEl("span",{text:"Total images found: "}),this.imageCountDisplay=r.createEl("span",{text:this.imageCount.toString()}),r.createEl("br"),r.createEl("span",{text:"To be skipped: "}),this.skippedCountDisplay=r.createEl("span",{text:this.skippedCount.toString()}),r.createEl("br"),r.createEl("span",{text:"To be processed: "}),this.processedCountDisplay=r.createEl("span",{text:this.processedCount.toString()})}createImageSourceSettings(e){e.createEl("h4",{text:"Image source"}),new F0.Setting(e).setName("Recursive").setDesc("Process images in all subfolders as well").addToggle(f=>f.setValue(this.recursive).onChange(async o=>{this.recursive=o,await this.updateImageCountsAndDisplay()}));let r=e.createDiv();r.addClass("image-source-setting-container");let t={["direct"]:null,["linked"]:null},n=()=>{Object.entries(t).forEach(([f,o])=>{o&&o.setIcon(this.selectedImageSource===f?"lucide-check-circle":"lucide-circle")})};new F0.Setting(r).setName("Direct images").setDesc("Images directly in the folder").addExtraButton(f=>{t["direct"]=f,f.setIcon(this.selectedImageSource==="direct"?"lucide-check-circle":"lucide-circle").setTooltip(this.selectedImageSource==="direct"?"Selected":"Select").onClick(async()=>{this.selectedImageSource="direct",this.updateImageSourceDescription&&this.updateImageSourceDescription(this.selectedImageSource),await this.updateImageCountsAndDisplay(),n()})}),new F0.Setting(r).setName("Linked images").setDesc("Images linked in notes or Canvas").addExtraButton(f=>{t["linked"]=f,f.setIcon(this.selectedImageSource==="linked"?"lucide-check-circle":"lucide-circle").setTooltip(this.selectedImageSource==="linked"?"Selected":"Select").onClick(async()=>{this.selectedImageSource="linked",this.updateImageSourceDescription&&this.updateImageSourceDescription(this.selectedImageSource),await this.updateImageCountsAndDisplay(),n()})}),e.appendChild(r),this.updateImageSourceDescription&&this.updateImageSourceDescription(this.selectedImageSource),n()}async createGeneralSettings(e){e.createEl("h4",{text:"General"}),this.convertToSetting=new F0.Setting(e).setName("Convert to \u24D8").setDesc("Choose output format. 'Same as original' applies compression/resizing to current format.").setTooltip("Same as original: preserves current format while applying compression/resizing").addDropdown(r=>{r.addOption("disabled","Same as original").addOptions({webp:"WebP",jpg:"JPG",png:"PNG"}).setValue(this.plugin.settings.ProcessCurrentNoteconvertTo).onChange(async t=>{this.plugin.settings.ProcessCurrentNoteconvertTo=t,await this.plugin.saveSettings(),await this.updateImageCountsAndDisplay()})}),this.qualitySetting=new F0.Setting(e).setName("Quality \u24D8").setDesc("Compression level (0-100)").setTooltip(`100: No compression (original quality) +75: Recommended (good balance) +0-50: High compression (lower quality)`).addText(r=>{r.setPlaceholder("Enter quality (0-100)").setValue((this.plugin.settings.ProcessCurrentNotequality*100).toString()).onChange(async t=>{let n=parseInt(t,10);!isNaN(n)&&n>=0&&n<=100&&(this.plugin.settings.ProcessCurrentNotequality=n/100,await this.plugin.saveSettings(),await this.updateImageCountsAndDisplay())})})}createSkipSettings(e){e.createEl("h4",{text:"Skip"}),this.skipFormatsSetting=new F0.Setting(e).setName("Skip formats \u24D8").setDesc("Comma-separated list (no dots or spaces, e.g., png,gif).").setTooltip("Comma-separated list of file formats to skip (e.g., tif,tiff,heic). Leave empty to process all formats.").addText(r=>{r.setPlaceholder("png,gif").setValue(this.plugin.settings.ProcessCurrentNoteSkipFormats).onChange(async t=>{this.plugin.settings.ProcessCurrentNoteSkipFormats=t,await this.plugin.saveSettings(),await this.updateImageCountsAndDisplay()})}),this.skipTargetFormatSetting=new F0.Setting(e).setName("Skip images in target format \u24D8").setDesc("Skip compression/resizing if image is already in target format.").setTooltip("If image is already in target format, this allows you to skip its compression, conversion and resizing. Processing of all other formats will be still performed.").addToggle(r=>{r.setValue(this.plugin.settings.ProcessCurrentNoteskipImagesInTargetFormat).onChange(async t=>{this.plugin.settings.ProcessCurrentNoteskipImagesInTargetFormat=t,await this.plugin.saveSettings(),await this.updateImageCountsAndDisplay()})})}async createResizeSettings(e){e.createEl("h4",{text:"Resize"}),this.resizeModeSetting=new F0.Setting(e).setName("Resize mode \u24D8").setDesc("Choose how images should be resized. Note: Results are permanent").setTooltip(`Fit: Maintains aspect ratio within dimensions +Fill: Exactly matches dimensions +Longest Edge: Limits the longest side +Shortest Edge: Limits the shortest side +Width/Height: Constrains single dimension`).addDropdown(r=>{r.addOptions({None:"None",Fit:"Fit (maintain aspect ratio within dimensions)",Fill:"Fill (exactly match dimensions)",LongestEdge:"Longest edge",ShortestEdge:"Shortest edge",Width:"Width",Height:"Height"}).setValue(this.plugin.settings.ProcessCurrentNoteResizeModalresizeMode).onChange(async t=>{this.plugin.settings.ProcessCurrentNoteResizeModalresizeMode=t,await this.plugin.saveSettings(),this.updateResizeInputVisibility(t),await this.updateImageCountsAndDisplay()})}),this.createEnlargeReduceInputs(e),this.resizeInputsDiv=e.createDiv({cls:"resize-inputs"}),this.updateResizeInputVisibility(this.plugin.settings.ProcessCurrentNoteResizeModalresizeMode)}createEnlargeReduceInputs(e){this.enlargeReduceDiv=e.createDiv({cls:"enlarge-reduce-settings"}),this.createEnlargeReduceSettings()}createProcessButton(e){let r=e.createDiv({cls:"button-container"});new F0.ButtonComponent(r).setButtonText("Process").setCta().onClick(async()=>{this.close(),await this.batchImageProcessor.processImagesInFolder(this.folderPath,this.recursive)})}updateResizeInputVisibility(e){var r,t,n;e==="None"?((r=this.resizeInputsDiv)==null||r.empty(),(t=this.enlargeReduceDiv)==null||t.hide(),this.resizeInputSettings=null,this.enlargeReduceSettings=null):(this.resizeInputSettings?this.updateResizeInputSettings(e):this.createResizeInputSettings(e),this.enlargeReduceSettings||this.createEnlargeReduceSettings(),(n=this.enlargeReduceDiv)==null||n.show())}createEnlargeReduceSettings(){this.enlargeReduceDiv&&(this.enlargeReduceDiv.empty(),this.enlargeReduceSettings=new F0.Setting(this.enlargeReduceDiv).setClass("enlarge-reduce-setting").setName("Enlarge or Reduce \u24D8").setDesc("Reduce and Enlarge: Adjusts all images. Reduce only: Shrinks larger images. Enlarge only: Enlarges smaller images.").setTooltip(`\u2022 Reduce and Enlarge: Adjusts all images to fit specified dimensions +\u2022 Reduce only: Only shrinks images larger than target +\u2022 Enlarge only: Only enlarges images smaller than target`).addDropdown(e=>{e.addOptions({Always:"Reduce and Enlarge",Reduce:"Reduce only",Enlarge:"Enlarge only"}).setValue(this.plugin.settings.ProcessCurrentNoteEnlargeOrReduce).onChange(async r=>{this.plugin.settings.ProcessCurrentNoteEnlargeOrReduce=r,await this.plugin.saveSettings()})}))}createResizeInputSettings(e){this.resizeInputsDiv&&(this.resizeInputsDiv.empty(),this.resizeInputSettings=new F0.Setting(this.resizeInputsDiv).setClass("resize-input-setting"),this.updateResizeInputSettings(e))}updateResizeInputSettings(e){if(!this.resizeInputSettings)return;this.resizeInputSettings.clear();let r="",t="";if(["Fit","Fill"].includes(e))r="Resize dimensions",t="Enter the desired width and height in pixels",this.resizeInputSettings.setName(r).setDesc(t).addText(n=>n.setPlaceholder("Width").setValue(this.plugin.settings.ProcessCurrentNoteresizeModaldesiredWidth.toString()).onChange(async f=>{let o=parseInt(f);/^\d+$/.test(f)&&o>0&&(this.plugin.settings.ProcessCurrentNoteresizeModaldesiredWidth=o,await this.plugin.saveSettings())})).addText(n=>n.setPlaceholder("Height").setValue(this.plugin.settings.ProcessCurrentNoteresizeModaldesiredHeight.toString()).onChange(async f=>{let o=parseInt(f);/^\d+$/.test(f)&&o>0&&(this.plugin.settings.ProcessCurrentNoteresizeModaldesiredHeight=o,await this.plugin.saveSettings())}));else{switch(e){case"LongestEdge":case"ShortestEdge":r=`${e}`,t="Enter the desired length in pixels";break;case"Width":r="Width",t="Enter the desired width in pixels";break;case"Height":r="Height",t="Enter the desired height in pixels";break}this.resizeInputSettings.setName(r).setDesc(t).addText(n=>n.setPlaceholder("").setValue(this.getInitialValue(e).toString()).onChange(async f=>{let o=parseInt(f);/^\d+$/.test(f)&&o>0&&await this.updateSettingValue(e,o)}))}}getInitialValue(e){switch(e){case"LongestEdge":case"ShortestEdge":return this.plugin.settings.ProcessCurrentNoteresizeModaldesiredLength;case"Width":return this.plugin.settings.ProcessCurrentNoteresizeModaldesiredWidth;case"Height":return this.plugin.settings.ProcessCurrentNoteresizeModaldesiredHeight;default:return 0}}async updateSettingValue(e,r){switch(e){case"LongestEdge":case"ShortestEdge":this.plugin.settings.ProcessCurrentNoteresizeModaldesiredLength=r;break;case"Width":this.plugin.settings.ProcessCurrentNoteresizeModaldesiredWidth=r;break;case"Height":this.plugin.settings.ProcessCurrentNoteresizeModaldesiredHeight=r;break}await this.plugin.saveSettings()}async updateImageCountsAndDisplay(){let e=await this.updateImageCounts();this.updateCountDisplays(e)}async updateImageCounts(){let e=this.app.vault.getAbstractFileByPath(this.folderPath);if(!(e instanceof F0.TFolder))return new F0.Notice("Error: Invalid folder path."),{total:0,processed:0,skipped:0};let r=this.plugin.settings.ProcessCurrentNoteSkipFormats.toLowerCase().split(",").map(k=>k.trim()).filter(k=>k.length>0),t=this.plugin.settings.ProcessCurrentNoteconvertTo,n=this.plugin.settings.ProcessCurrentNoteskipImagesInTargetFormat,{directImages:f,linkedImages:o}=await this.getImageFiles(e,this.recursive,this.selectedImageSource),a=0,A=0,l=0;for(let k of f)a++,r.includes(k.extension.toLowerCase())||n&&k.extension.toLowerCase()===t?l++:A++;for(let k of o)a++,r.includes(k.extension.toLowerCase())||n&&k.extension.toLowerCase()===t?l++:A++;return console.log("updateImageCounts:",{total:a,processed:A,skipped:l,directImages:f,linkedImages:o}),{total:a,processed:A,skipped:l}}async getImageFiles(e,r,t){let n=[],f=[];for(let o of e.children)if(o instanceof F0.TFolder){if(r){let{directImages:a,linkedImages:A}=await this.getImageFiles(o,r,t);n.push(...a),f.push(...A)}}else if(o instanceof F0.TFile){if(t==="direct"&&this.plugin.supportedImageFormats.isSupported(void 0,o.name))n.push(o);else if(t==="linked"&&o.extension==="md"){let a=await this.getImagesFromMarkdownFile(o);f.push(...a)}else if(t==="linked"&&o.extension==="canvas"){let a=await this.getImagesFromCanvasFile(o);f.push(...a)}}return console.log("Images found in folder",e.path,":",{directImages:n,linkedImages:f},"recursive:",r,"selectedImageSource:",t),{directImages:n,linkedImages:f}}async getImagesFromMarkdownFile(e){console.log("Getting images from Markdown file:",e.path);let r=[],t=await this.app.vault.read(e),n=this.app.vault,f=/!\[\[([^\]]+?)(?:\|[^\]]+?)?\]\]/g,o;for(;(o=f.exec(t))!==null;){let A=o[1],l=this.app.metadataCache.getFirstLinkpathDest(A,e.path);l instanceof F0.TFile&&this.plugin.supportedImageFormats.isSupported(void 0,l.name)&&r.push(l)}let a=/!\[.*?\]\(([^)]+?)\)/g;for(;(o=a.exec(t))!==null;){let A=o[1];if(!A.startsWith("http")){let l=(0,F0.normalizePath)(n.getRoot().path+"/"+A),k=n.getAbstractFileByPath(l);k instanceof F0.TFile&&this.plugin.supportedImageFormats.isSupported(void 0,k.name)&&(console.log("Found relative linked image:",k.path),r.push(k))}}return console.log("Images found in Markdown file:",r.map(A=>A.path)),r}extractLinkedImageNames(e){let r=/!\[\[([^\]]+?)(?:\|[^\]]+?)?\]\]/g,t=/!\[.*?\]\(([^)]+?)\)/g,n=[],f;for(;(f=r.exec(e))!==null;)n.push(f[1]);for(;(f=t.exec(e))!==null;)n.push(f[1]);return console.log("Image names extracted from Markdown:",n),n}getFullPath(e,r){return e?(0,F0.normalizePath)(e.path+"/"+r):(0,F0.normalizePath)(r)}async getImagesFromCanvasFile(e){let r=[],t=await this.app.vault.read(e),n=JSON.parse(t);if(n.nodes&&Array.isArray(n.nodes)){for(let f of n.nodes)if(f.type==="file"&&f.file){let o=this.app.vault.getAbstractFileByPath(f.file);if(!o){console.warn("Could not find file:",f.file);continue}o instanceof F0.TFile&&this.plugin.supportedImageFormats.isSupported(void 0,o.name)&&r.push(o)}}return r}updateCountDisplays(e){this.imageCount=e.total,this.processedCount=e.processed,this.skippedCount=e.skipped,this.imageCountDisplay.setText(e.total.toString()),this.processedCountDisplay.setText(e.processed.toString()),this.skippedCountDisplay.setText(e.skipped.toString())}};var si=require("obsidian"),Er=class extends si.Modal{constructor(e,r,t,n){super(e);this.plugin=r;this.activeFile=t;this.batchImageProcessor=n;this.imageCount=0;this.processedCount=0;this.skippedCount=0;this.enlargeReduceSettings=null;this.resizeInputSettings=null;this.submitButton=null;this.resizeInputsDiv=null;this.enlargeReduceDiv=null}async onOpen(){let{contentEl:e}=this,r=e.createDiv({cls:"image-convert-modal"}),t=r.createDiv({cls:"modal-header"});t.createEl("h2",{text:"Convert, compress and resize"}),t.createEl("h6",{text:`all images in: ${this.activeFile.basename}.${this.activeFile.extension}`,cls:"modal-subtitle"}),await this.updateImageCounts();let n=e.createDiv({cls:"image-counts-display"});n.createEl("span",{text:"Total Images Found: "}),this.imageCountDisplay=n.createEl("span"),n.createEl("br"),n.createEl("span",{text:"To be Processed: "}),this.processedCountDisplay=n.createEl("span"),n.createEl("br"),n.createEl("span",{text:"Skipped: "}),this.skippedCountDisplay=n.createEl("span"),t.createEl("p",{cls:"modal-warning",text:"\u26A0\uFE0F This will modify all images in the current note. Please ensure you have backups."});let f=r.createDiv({cls:"settings-container"}),o=f.createDiv({cls:"format-quality-container"});this.convertToSetting=new si.Setting(o).setName("Convert to \u24D8 ").setDesc("Choose output format for your images").setTooltip("Same as original: preserves current format while applying compression/resizing").addDropdown(k=>k.addOptions({disabled:"Same as original",webp:"WebP",jpg:"JPG",png:"PNG"}).setValue(this.plugin.settings.ProcessCurrentNoteconvertTo).onChange(async u=>{this.plugin.settings.ProcessCurrentNoteconvertTo=u,await this.plugin.saveSettings(),this.updateImageCountsAndDisplay()})),new si.Setting(o).setName("Quality \u24D8").setDesc("Compression level (0-100)").setTooltip(`100: No compression (original quality) +75: Recommended (good balance) +0-50: High compression (lower quality)`).addText(k=>k.setPlaceholder("Enter quality (0-100)").setValue((this.plugin.settings.ProcessCurrentNotequality*100).toString()).onChange(async u=>{let h=parseInt(u);/^\d+$/.test(u)&&h>=0&&h<=100&&(this.plugin.settings.ProcessCurrentNotequality=h/100,await this.plugin.saveSettings())}));let a=f.createDiv({cls:"resize-container"});this.resizeModeSetting=new si.Setting(a).setName("Resize Mode \u24D8").setDesc("Choose how images should be resized. Note: Results are permanent.").setTooltip(`Fit: Maintains aspect ratio within dimensions +Fill: Exactly matches dimensions +Longest Edge: Limits the longest side +Shortest Edge: Limits the shortest side +Width/Height: Constrains single dimension`).addDropdown(k=>k.addOptions({None:"None",LongestEdge:"Longest Edge",ShortestEdge:"Shortest Edge",Width:"Width",Height:"Height",Fit:"Fit",Fill:"Fill"}).setValue(this.plugin.settings.ProcessCurrentNoteResizeModalresizeMode).onChange(async u=>{this.plugin.settings.ProcessCurrentNoteResizeModalresizeMode=u,await this.plugin.saveSettings(),this.updateResizeInputVisibility(u),this.updateImageCountsAndDisplay()})),this.resizeInputsDiv=a.createDiv({cls:"resize-inputs"}),this.enlargeReduceDiv=a.createDiv({cls:"enlarge-reduce-settings"});let A=f.createDiv({cls:"skip-container"});this.skipFormatsSetting=new si.Setting(A).setName("Skip File Formats \u24D8").setTooltip("Comma-separated list of file formats to skip (e.g., tif,tiff,heic). Leave empty to process all formats.").addText(k=>k.setPlaceholder("tif,tiff,heic").setValue(this.plugin.settings.ProcessCurrentNoteSkipFormats).onChange(async u=>{this.plugin.settings.ProcessCurrentNoteSkipFormats=u,await this.plugin.saveSettings(),this.updateImageCountsAndDisplay()})),this.skipTargetFormatSetting=new si.Setting(A).setName("Skip images in target format \u24D8").setTooltip("If image is already in target format, this allows you to skip its compression, conversion and resizing. Processing of all other formats will be still performed.").addToggle(k=>k.setValue(this.plugin.settings.ProcessCurrentNoteskipImagesInTargetFormat).onChange(async u=>{this.plugin.settings.ProcessCurrentNoteskipImagesInTargetFormat=u,await this.plugin.saveSettings(),this.updateImageCountsAndDisplay()})),this.updateResizeInputVisibility(this.plugin.settings.ProcessCurrentNoteResizeModalresizeMode),await this.updateImageCountsAndDisplay();let l=f.createDiv({cls:"button-container"});this.submitButton=new si.ButtonComponent(l).setButtonText("Submit").onClick(async()=>{this.close(),this.activeFile.extension==="md"||this.activeFile.extension==="canvas"?(await this.batchImageProcessor.processImagesInNote(this.activeFile),await this.refreshActiveNote()):new si.Notice("Error: Active file must be a markdown or canvas file.")})}updateResizeInputVisibility(e){var r,t,n;e==="None"?((r=this.resizeInputsDiv)==null||r.empty(),(t=this.enlargeReduceDiv)==null||t.hide(),this.resizeInputSettings=null,this.enlargeReduceSettings=null):(this.resizeInputSettings?this.updateResizeInputSettings(e):this.createResizeInputSettings(e),this.enlargeReduceSettings||this.createEnlargeReduceSettings(),(n=this.enlargeReduceDiv)==null||n.show())}createEnlargeReduceSettings(){this.enlargeReduceDiv&&(this.enlargeReduceDiv.empty(),this.enlargeReduceSettings=new si.Setting(this.enlargeReduceDiv).setClass("enlarge-reduce-setting").setName("Enlarge or Reduce \u24D8").setDesc("Controls how images are adjusted relative to target size:").setTooltip(`\u2022 Reduce and Enlarge: Adjusts all images to fit specified dimensions +\u2022 Reduce only: Only shrinks images larger than target +\u2022 Enlarge only: Only enlarges images smaller than target`).addDropdown(e=>{e.addOptions({Always:"Reduce and Enlarge",Reduce:"Reduce only",Enlarge:"Enlarge only"}).setValue(this.plugin.settings.ProcessCurrentNoteEnlargeOrReduce).onChange(async r=>{this.plugin.settings.ProcessCurrentNoteEnlargeOrReduce=r,await this.plugin.saveSettings()})}))}createResizeInputSettings(e){this.resizeInputsDiv&&(this.resizeInputsDiv.empty(),this.resizeInputSettings=new si.Setting(this.resizeInputsDiv).setClass("resize-input-setting"),this.updateResizeInputSettings(e))}updateResizeInputSettings(e){if(!this.resizeInputSettings)return;this.resizeInputSettings.clear();let r="",t="";if(["Fit","Fill"].includes(e))r="Resize dimensions",t="Enter the desired width and height in pixels",this.resizeInputSettings.setName(r).setDesc(t).addText(n=>n.setPlaceholder("Width").setValue(this.plugin.settings.ProcessCurrentNoteresizeModaldesiredWidth.toString()).onChange(async f=>{let o=parseInt(f);/^\d+$/.test(f)&&o>0&&(this.plugin.settings.ProcessCurrentNoteresizeModaldesiredWidth=o,await this.plugin.saveSettings())})).addText(n=>n.setPlaceholder("Height").setValue(this.plugin.settings.ProcessCurrentNoteresizeModaldesiredHeight.toString()).onChange(async f=>{let o=parseInt(f);/^\d+$/.test(f)&&o>0&&(this.plugin.settings.ProcessCurrentNoteresizeModaldesiredHeight=o,await this.plugin.saveSettings())}));else{switch(e){case"LongestEdge":case"ShortestEdge":r=`${e}`,t="Enter the desired length in pixels";break;case"Width":r="Width",t="Enter the desired width in pixels";break;case"Height":r="Height",t="Enter the desired height in pixels";break}this.resizeInputSettings.setName(r).setDesc(t).addText(n=>n.setPlaceholder("").setValue(this.getInitialValue(e).toString()).onChange(async f=>{let o=parseInt(f);/^\d+$/.test(f)&&o>0&&await this.updateSettingValue(e,o)}))}this.enlargeReduceSettings||this.createEnlargeReduceSettings()}getInitialValue(e){switch(e){case"LongestEdge":case"ShortestEdge":return this.plugin.settings.ProcessCurrentNoteresizeModaldesiredLength;case"Width":return this.plugin.settings.ProcessCurrentNoteresizeModaldesiredWidth;case"Height":return this.plugin.settings.ProcessCurrentNoteresizeModaldesiredHeight;default:return 0}}async updateSettingValue(e,r){switch(e){case"LongestEdge":case"ShortestEdge":this.plugin.settings.ProcessCurrentNoteresizeModaldesiredLength=r;break;case"Width":this.plugin.settings.ProcessCurrentNoteresizeModaldesiredWidth=r;break;case"Height":this.plugin.settings.ProcessCurrentNoteresizeModaldesiredHeight=r;break}await this.plugin.saveSettings()}async updateImageCountsAndDisplay(){await this.updateImageCounts(),this.updateCountDisplays()}async updateImageCounts(){if(!this.activeFile)return;let e=this.plugin.settings.ProcessCurrentNoteSkipFormats.toLowerCase().split(",").map(n=>n.trim()).filter(n=>n.length>0),r=this.plugin.settings.ProcessCurrentNoteconvertTo.toLowerCase(),t=this.plugin.settings.ProcessCurrentNoteskipImagesInTargetFormat;if(this.activeFile.extension==="canvas"){let n=JSON.parse(await this.app.vault.read(this.activeFile)),f=this.getImagePathsFromCanvas(n);this.imageCount=f.length,this.processedCount=f.filter(o=>{let a=this.app.vault.getAbstractFileByPath(o);return!(!(a instanceof si.TFile)||e.includes(a.extension.toLowerCase())||t&&a.extension.toLowerCase()===r)}).length,this.skippedCount=this.imageCount-this.processedCount}else{let n=this.getLinkedImageFiles(this.activeFile);this.imageCount=n.length,this.processedCount=n.filter(f=>!(e.includes(f.extension.toLowerCase())||t&&f.extension.toLowerCase()===r)).length,this.skippedCount=this.imageCount-this.processedCount}}getImagePathsFromCanvas(e){let r=[];for(let t of e.nodes||[])t.type==="file"&&t.file&&r.push(t.file),t.children&&Array.isArray(t.children)&&(r=r.concat(this.getImagePathsFromCanvas(t)));return r}async refreshActiveNote(){let e=this.app.workspace.getActiveFile();if(e){let r=this.app.workspace.getLeaf();if(r){let t=this.app.workspace.getMostRecentLeaf();if(t){let n=t.getViewState();await t.setViewState({type:"empty",state:{}}),await t.setViewState(n)}await r.openFile(e,{active:!0})}}}getLinkedImageFiles(e){let t=this.app.metadataCache.resolvedLinks[e.path];return Object.keys(t).map(n=>this.app.vault.getAbstractFileByPath(n)).filter(n=>n instanceof si.TFile&&this.plugin.supportedImageFormats.isSupported(void 0,n.name))}updateCountDisplays(){this.imageCountDisplay.setText(this.imageCount.toString()),this.processedCountDisplay.setText(this.processedCount.toString()),this.skippedCountDisplay.setText(this.skippedCount.toString())}onClose(){this.enlargeReduceSettings=null,this.resizeInputSettings=null,this.submitButton=null,this.resizeInputsDiv=null,this.enlargeReduceDiv=null;let{contentEl:e}=this;e.empty()}};var Yi=require("obsidian"),An=class extends Yi.Modal{constructor(e,r,t){super(e);this.plugin=r;this.batchImageProcessor=t;this.enlargeReduceSettings=null;this.resizeInputSettings=null;this.resizeInputsDiv=null;this.enlargeReduceDiv=null;this.modalEl.addClass("image-convert-modal")}onOpen(){let{contentEl:e}=this;this.createUI(e)}onClose(){this.enlargeReduceSettings=null,this.resizeInputSettings=null,this.resizeInputsDiv=null,this.enlargeReduceDiv=null;let{contentEl:e}=this;e.empty()}createUI(e){this.createHeader(e),this.createWarningMessage(e);let r=e.createDiv({cls:"settings-container"}),t=r.createDiv({cls:"format-quality-container"});this.createGeneralSettings(t);let n=r.createDiv({cls:"resize-container"});this.createResizeSettings(n);let f=r.createDiv({cls:"skip-container"});this.createSkipSettings(f),this.createProcessButton(r)}createHeader(e){let r=e.createDiv({cls:"modal-header"});r.createEl("h2",{text:"Convert, compress and resize all images"}),r.createEl("h6",{text:"in the Vault",cls:"modal-subtitle"})}createWarningMessage(e){e.createEl("p",{cls:"modal-warning",text:"\u26A0\uFE0F This will modify all images in the Vault. Please ensure you have backups."})}createGeneralSettings(e){new Yi.Setting(e).setName("Convert to \u24D8").setDesc("Choose output format. 'Same as original' applies compression/resizing to current format.").setTooltip("Same as original: preserves current format while applying compression/resizing").addDropdown(r=>{r.addOption("disabled","Same as original").addOptions({webp:"WebP",jpg:"JPG",png:"PNG"}).setValue(this.plugin.settings.ProcessAllVaultconvertTo).onChange(async t=>{this.plugin.settings.ProcessAllVaultconvertTo=t,await this.plugin.saveSettings()})}),new Yi.Setting(e).setName("Quality \u24D8").setDesc("Compression level (0-100)").setTooltip(`100: No compression (original quality) +75: Recommended (good balance) +0-50: High compression (lower quality)`).addText(r=>{r.setPlaceholder("Enter quality (0-100)").setValue((this.plugin.settings.ProcessAllVaultquality*100).toString()).onChange(async t=>{let n=parseInt(t,10);!isNaN(n)&&n>=0&&n<=100&&(this.plugin.settings.ProcessAllVaultquality=n/100,await this.plugin.saveSettings())})})}createResizeSettings(e){new Yi.Setting(e).setName("Resize mode \u24D8").setDesc("Choose how images should be resized. Note: Results are permanent.").setTooltip(`Fit: Maintains aspect ratio within dimensions +Fill: Exactly matches dimensions +Longest Edge: Limits the longest side +Shortest Edge: Limits the shortest side +Width/Height: Constrains single dimension`).addDropdown(r=>{r.addOptions({None:"None",Fit:"Fit",Fill:"Fill",LongestEdge:"Longest Edge",ShortestEdge:"Shortest Edge",Width:"Width",Height:"Height"}).setValue(this.plugin.settings.ProcessAllVaultResizeModalresizeMode).onChange(async t=>{this.plugin.settings.ProcessAllVaultResizeModalresizeMode=t,await this.plugin.saveSettings(),this.updateResizeInputVisibility(t)})}),this.resizeInputsDiv=e.createDiv({cls:"resize-inputs"}),this.enlargeReduceDiv=e.createDiv({cls:"enlarge-reduce-settings"}),this.updateResizeInputVisibility(this.plugin.settings.ProcessAllVaultResizeModalresizeMode)}createSkipSettings(e){new Yi.Setting(e).setName("Skip formats \u24D8").setDesc("Comma-separated list (no dots or spaces, e.g., png,gif).").setTooltip("Comma-separated list of file formats to skip (e.g., tif,tiff,heic). Leave empty to process all formats.").addText(r=>{r.setPlaceholder("png,gif").setValue(this.plugin.settings.ProcessAllVaultSkipFormats).onChange(async t=>{this.plugin.settings.ProcessAllVaultSkipFormats=t,await this.plugin.saveSettings()})}),new Yi.Setting(e).setName("Skip images in target format \u24D8").setDesc("Skip compression/resizing if image is already in target format.").setTooltip("If image is already in target format, this allows you to skip its compression, conversion and resizing. Processing of all other formats will be still performed.").addToggle(r=>{r.setValue(this.plugin.settings.ProcessAllVaultskipImagesInTargetFormat).onChange(async t=>{this.plugin.settings.ProcessAllVaultskipImagesInTargetFormat=t,await this.plugin.saveSettings()})})}createProcessButton(e){let r=e.createDiv({cls:"button-container"});new Yi.ButtonComponent(r).setButtonText("Process All Images").setCta().onClick(async()=>{this.close(),await this.batchImageProcessor.processAllVaultImages()})}updateResizeInputVisibility(e){var r,t,n;e==="None"?((r=this.resizeInputsDiv)==null||r.empty(),(t=this.enlargeReduceDiv)==null||t.hide(),this.resizeInputSettings=null,this.enlargeReduceSettings=null):(this.resizeInputSettings?this.updateResizeInputSettings(e):this.createResizeInputSettings(e),this.enlargeReduceSettings||this.createEnlargeReduceSettings(),(n=this.enlargeReduceDiv)==null||n.show())}createEnlargeReduceSettings(){this.enlargeReduceDiv&&(this.enlargeReduceDiv.empty(),this.enlargeReduceSettings=new Yi.Setting(this.enlargeReduceDiv).setClass("enlarge-reduce-setting").setName("Enlarge or Reduce \u24D8").setDesc("Reduce and Enlarge: Adjusts all images. Reduce only: Shrinks larger images. Enlarge only: Enlarges smaller images.").setTooltip(`\u2022 Reduce and Enlarge: Adjusts all images to fit specified dimensions +\u2022 Reduce only: Only shrinks images larger than target +\u2022 Enlarge only: Only enlarges images smaller than target`).addDropdown(e=>{e.addOptions({Always:"Reduce and Enlarge",Reduce:"Reduce only",Enlarge:"Enlarge only"}).setValue(this.plugin.settings.ProcessAllVaultEnlargeOrReduce).onChange(async r=>{this.plugin.settings.ProcessAllVaultEnlargeOrReduce=r,await this.plugin.saveSettings()})}))}createResizeInputSettings(e){this.resizeInputsDiv&&(this.resizeInputsDiv.empty(),this.resizeInputSettings=new Yi.Setting(this.resizeInputsDiv).setClass("resize-input-setting"),this.updateResizeInputSettings(e))}updateResizeInputSettings(e){if(!this.resizeInputSettings)return;this.resizeInputSettings.clear();let r="",t="";if(["Fit","Fill"].includes(e))r="Resize dimensions",t="Enter the desired width and height in pixels",this.resizeInputSettings.setName(r).setDesc(t).addText(n=>n.setPlaceholder("Width").setValue(this.plugin.settings.ProcessAllVaultResizeModaldesiredWidth.toString()).onChange(async f=>{let o=parseInt(f);/^\d+$/.test(f)&&o>0&&(this.plugin.settings.ProcessAllVaultResizeModaldesiredWidth=o,await this.plugin.saveSettings())})).addText(n=>n.setPlaceholder("Height").setValue(this.plugin.settings.ProcessAllVaultResizeModaldesiredHeight.toString()).onChange(async f=>{let o=parseInt(f);/^\d+$/.test(f)&&o>0&&(this.plugin.settings.ProcessAllVaultResizeModaldesiredHeight=o,await this.plugin.saveSettings())}));else{switch(e){case"LongestEdge":case"ShortestEdge":r=`${e}`,t="Enter the desired length in pixels";break;case"Width":r="Width",t="Enter the desired width in pixels";break;case"Height":r="Height",t="Enter the desired height in pixels";break}this.resizeInputSettings.setName(r).setDesc(t).addText(n=>n.setPlaceholder("").setValue(this.getInitialValue(e).toString()).onChange(async f=>{let o=parseInt(f);/^\d+$/.test(f)&&o>0&&await this.updateSettingValue(e,o)}))}}getInitialValue(e){switch(e){case"LongestEdge":case"ShortestEdge":return this.plugin.settings.ProcessAllVaultResizeModaldesiredLength;case"Width":return this.plugin.settings.ProcessAllVaultResizeModaldesiredWidth;case"Height":return this.plugin.settings.ProcessAllVaultResizeModaldesiredHeight;default:return 0}}async updateSettingValue(e,r){switch(e){case"LongestEdge":case"ShortestEdge":this.plugin.settings.ProcessAllVaultResizeModaldesiredLength=r;break;case"Width":this.plugin.settings.ProcessAllVaultResizeModaldesiredWidth=r;break;case"Height":this.plugin.settings.ProcessAllVaultResizeModaldesiredHeight=r;break}await this.plugin.saveSettings()}};var U1=require("obsidian"),ln=class{constructor(i){this.plugin=i;this.observer=null;this.observerTimeout=null;this.processing=!1;this.initializeObserver(),this.applyCaptionStyles(),this.applyCaptionClass()}initializeObserver(){this.cleanup(),this.observer=new MutationObserver(this.handleMutations.bind(this)),this.startObserving()}startObserving(){if(!this.observer)return;let i={childList:!0,subtree:!0,attributes:!0,attributeFilter:["alt","src","class"]},e=this.plugin.app.workspace.getActiveViewOfType(U1.MarkdownView);e&&this.observer.observe(e.contentEl,i)}handleMutations(i){if(this.processing)return;this.processing=!0,this.observerTimeout&&clearTimeout(this.observerTimeout);let e=i.filter(r=>{let t=r.target;return r.type==="childList"?Array.from(r.addedNodes).some(n=>this.isRelevantNode(n)):r.type==="attributes"?this.isRelevantNode(t):!1});this.observerTimeout=setTimeout(()=>{try{e.length>0&&this.processImageCaptions()}catch(r){console.error("Error processing mutations:",r)}finally{this.processing=!1}},100)}isRelevantNode(i){if(!(i instanceof Element))return!1;let e=i.className;return typeof e!="string"||e.includes("cm-")||e.includes("image-resize")||e.includes("cm-content cm-lineWrapping")?!1:i.matches("div.image-embed, div.callout")||!!i.querySelector("div.image-embed, div.callout")}processImageCaptions(){var i;(i=this.observer)==null||i.disconnect();try{let e=this.plugin.app.workspace.getActiveViewOfType(U1.MarkdownView);e&&e.contentEl.querySelectorAll(".image-embed").forEach(r=>{this.processImageEmbed(r)}),document.querySelectorAll(".callout .image-embed").forEach(r=>{this.processImageEmbed(r,!0)})}finally{this.startObserving()}}processImageEmbed(i,e=!1){var h,c;let r=i.querySelector("img");if(!r)return;let{enableImageCaptions:t,skipCaptionExtensions:n}=this.plugin.settings;if(!t)return;let f=r.width||r.getAttribute("width");f&&i.style.setProperty("--img-width",`${f}px`);let o=i.getAttribute("src")||"",a=r.getAttribute("alt")||"",A=((c=(h=o.split(".").pop())==null?void 0:h.split("?")[0])==null?void 0:c.toLowerCase())||"",l=n.split(",").map(d=>d.trim().toLowerCase()),k=a.trim().toLowerCase()===o.trim().toLowerCase();l.includes(A)||k?(i.removeAttribute("alt"),r.removeAttribute("alt")):e&&(i.setAttribute("data-in-callout","true"),a&&i.setAttribute("alt",a))}applyCaptionClass(){let{enableImageCaptions:i,skipCaptionExtensions:e}=this.plugin.settings,r=e.split(",").map(t=>t.trim().toLowerCase());i?(document.body.classList.add("image-captions-enabled"),document.querySelectorAll(".image-embed").forEach(t=>{var f,o,a,A,l;let n=t.querySelector("img");if(n){let k=(f=t.getAttribute("src"))!=null?f:"",u=(o=n.getAttribute("alt"))!=null?o:"",h=(l=(A=(a=k.split(".").pop())==null?void 0:a.split("?")[0])==null?void 0:A.toLowerCase())!=null?l:"",c=u.trim().toLowerCase()===k.trim().toLowerCase();(r.includes(h)||c)&&(t.removeAttribute("alt"),n.removeAttribute("alt"))}})):document.body.classList.remove("image-captions-enabled")}applyCaptionStyles(){let i="image-caption-styles",e=document.getElementById(i);e||(e=document.createElement("style"),e.id=i,document.head.appendChild(e));let{captionFontSize:r,captionColor:t,captionFontStyle:n,captionBackgroundColor:f,captionPadding:o,captionBorderRadius:a,captionMarginTop:A,captionOpacity:l,captionFontWeight:k,captionTextTransform:u,captionLetterSpacing:h,captionBorder:c,captionAlignment:d}=this.plugin.settings;e.textContent=` + /* Container styling */ + .image-captions-enabled .internal-embed.image-embed[alt] { + display: flex !important; + flex-direction: column; + align-items: ${d==="center"?"center":d==="left"?"flex-start":"flex-end"}; + justify-content: center; + width: fit-content; + } + + /* Caption styling */ + .image-captions-enabled .image-embed[alt]:after { + display: block; + width: var(--img-width); + font-family: var(--font-interface); + font-size: ${r||"var(--font-smaller)"}; + color: ${t||"var(--text-gray)"}; + background-color: ${f||"transparent"}; + opacity: ${l||"1"}; + content: attr(alt); + margin-top: ${A||"4px"}; + padding: ${o||"2px 4px"}; + border-radius: ${a||"0"}; + font-style: ${n||"italic"}; + font-weight: ${k||"normal"}; + text-transform: ${u||"none"}; + letter-spacing: ${h||"normal"}; + border: ${c||"none"}; + text-align: ${d||"center"}; + transition: all 0.2s ease; + box-sizing: border-box; + } + + /* Image styling */ + .image-captions-enabled .image-embed[alt] img { + display: block; + max-width: 100%; + height: auto; + } + `}refresh(){this.processImageCaptions(),this.applyCaptionClass(),this.applyCaptionStyles()}updateStyles(){this.applyCaptionStyles()}cleanup(){this.observer&&(this.observer.disconnect(),this.observer=null),this.observerTimeout&&(clearTimeout(this.observerTimeout),this.observerTimeout=null)}};var pi=require("obsidian");var Wr=class extends pi.Modal{constructor(e,r,t,n,f){super(e);this.settings=r;this.onApply=t;this.plugin=n;this.conversionQualitySetting=null;this.conversionColorDepthSetting=null;this.selectedGlobalPreset=null;this.customFilenameSetting=null;this.customFilenameText=null;this.customFolderSetting=null;this.customFolderText=null;this.previewContainer=null;this.updateTimeout=null;this.updatePreviews=async()=>{!this.previewContainer||!this.customFolderText||!this.customFilenameText||(this.updateTimeout&&window.clearTimeout(this.updateTimeout),this.updateTimeout=window.setTimeout(async()=>{var e,r;if(this.previewContainer)try{let t=this.app.workspace.getActiveFile(),n=this.app.vault.getFiles().find(l=>l.extension.match(/^(jpg|jpeg|png|gif|webp)$/i)),f=t!=null&&t.extension.match(/^(jpg|jpeg|png|gif|webp)$/i)?t:n,o=((e=this.customFolderText)==null?void 0:e.getValue())||"",a=((r=this.customFilenameText)==null?void 0:r.getValue())||"",A=createEl("div");if(o||a){let l=o?await this.variableProcessor.processTemplate(o,{file:f,activeFile:t}):"",k=a?await this.variableProcessor.processTemplate(a,{file:f,activeFile:t}):"",u=A.createDiv("image-converter-preview-path"),h=[l,k].filter(Boolean).join("/");if(u.createEl("div",{text:"Full path: ",cls:"image-converter-preview-label"}),u.createEl("div",{text:h||"No path specified",cls:"image-converter-preview-value"}),o&&a){let c=u.createEl("div",{cls:"image-converter-preview-component"});c.createEl("span",{text:"Folder: ",cls:"image-converter-preview-label"}),c.createEl("span",{text:l,cls:"image-converter-preview-value"});let d=u.createEl("div",{cls:"image-converter-preview-component"});d.createEl("span",{text:"Filename: ",cls:"image-converter-preview-label"}),d.createEl("span",{text:k,cls:"image-converter-preview-value"})}}else A.createEl("div",{text:"Enter a template to see preview",cls:"image-converter-preview-empty"});this.previewContainer&&(this.previewContainer.empty(),this.previewContainer.append(A))}catch(t){console.error("Preview generation error:",t),this.previewContainer&&(this.previewContainer.empty(),this.previewContainer.createEl("div",{text:"Error generating preview",cls:"image-converter-preview-error"}))}},150))};this.updateFolderPreview=async()=>{var t;if(!this.customFolderText)return;let e=this.customFolderText.getValue(),r=(t=this.customFolderSetting)==null?void 0:t.controlEl.querySelector(".image-converter-image-converter-preview-path");if(!e){r.empty();return}try{let n=this.app.workspace.getActiveFile(),f=this.app.vault.getFiles().find(A=>A.extension.match(/^(jpg|jpeg|png|gif|webp)$/i)),o=n&&n.extension.match(/^(jpg|jpeg|png|gif|webp)$/i)?n:f,a=await this.variableProcessor.processTemplate(e,{file:o,activeFile:n});r.setText(a)}catch(n){console.error("Preview generation error:",n),r.setText("Error generating preview")}};this.variableProcessor=f,this.selectedConversionPreset=this.plugin.getPresetByName(this.settings.selectedConversionPreset,this.settings.conversionPresets,"Conversion"),this.selectedFilenamePreset=this.plugin.getPresetByName(this.settings.selectedFilenamePreset,this.settings.filenamePresets,"Filename"),this.selectedFolderPreset=this.plugin.getPresetByName(this.settings.selectedFolderPreset,this.settings.folderPresets,"Folder"),this.selectedLinkFormatPreset=this.plugin.getPresetByName(this.settings.linkFormatSettings.selectedLinkFormatPreset,this.settings.linkFormatSettings.linkFormatPresets,"LinkFormat"),this.selectedResizePreset=this.plugin.getPresetByName(this.settings.nonDestructiveResizeSettings.selectedResizePreset,this.settings.nonDestructiveResizeSettings.resizePresets,"Resize")}onOpen(){let{contentEl:e}=this;e.empty(),e.addClass("image-converter-preset-selection-modal");let t=e.createDiv("image-converter-main-container").createDiv("image-converter-settings-column");t.createEl("h2",{text:"Image Processing"});let n=t.createDiv("image-converter-preset-section");n.createEl("h3",{text:""}),this.createGlobalPresetDropdown(n);let f=t.createDiv("image-converter-preset-section"),a=f.createDiv("image-converter-section-header").createDiv("image-converter-title-group");a.createEl("h3",{text:"File organization"}),new pi.ButtonComponent(a).setIcon("help-circle").setTooltip("Show available variables").setClass("image-converter-help-button").onClick(()=>this.showAvailableVariables()),f.createEl("p",{cls:"image-converter-section-description",text:"Some default presets are already pre-defined. You can create more presets in the main plugin settings window. After selecting custom made preset a new input field will show pre-filled with template from the preset which you can always manually overwrite."});let A=f.createDiv("image-converter-inputs-container"),l=A.createDiv("image-converter-input-group");this.folderPresetDropdown=this.createPresetDropdown(l,"Folder",this.settings.folderPresets,this.selectedFolderPreset,v=>{this.selectedFolderPreset=this.settings.folderPresets.find(w=>w.name===v)||this.settings.folderPresets[0],this.updatePreviews(),this.updateFolderInputFieldVisibility()}),this.customFolderSetting=new pi.Setting(l).addText(v=>(this.customFolderText=v,v.setPlaceholder("e.g., {YYYY}/{MM}/{notename}").setValue(this.selectedFolderPreset.customTemplate||"").onChange(()=>this.updatePreviews()),v.inputEl.setAttr("spellcheck","false"),v)),this.updateFolderInputFieldVisibility();let k=A.createDiv("image-converter-input-group");this.filenamePresetDropdown=this.createPresetDropdown(k,"Filename",this.settings.filenamePresets,this.selectedFilenamePreset,v=>{this.selectedFilenamePreset=this.settings.filenamePresets.find(w=>w.name===v)||this.settings.filenamePresets[0],this.customFilenameText&&this.customFilenameText.setValue(this.selectedFilenamePreset.customTemplate||""),this.updatePreviews(),this.updateFilenameInputFieldVisibility()}),this.customFilenameSetting=new pi.Setting(k).addText(v=>(this.customFilenameText=v,v.setPlaceholder("e.g., {imagename}-{timestamp}").setValue(this.selectedFilenamePreset.customTemplate||"").onChange(()=>this.updatePreviews()),v.inputEl.setAttr("spellcheck","false"),v)),this.updateFilenameInputFieldVisibility();let u=f.createDiv("image-converter-preview-section"),h=u.createDiv("image-converter-preview-header");h.createEl("span",{cls:"image-converter-preview-icon",text:""}),h.createEl("span",{text:"Path preview",cls:"image-converter-preview-title"}),this.previewContainer=u.createDiv("image-converter-modal-preview-container");let c=t.createDiv("image-converter-preset-section");c.createEl("h3",{text:"Image conversion"});let d=c.createDiv("image-converter-conversion-container");this.conversionPresetDropdown=this.createPresetDropdown(d,"Format",this.settings.conversionPresets,this.selectedConversionPreset,v=>{this.selectedConversionPreset=this.settings.conversionPresets.find(w=>w.name===v)||this.settings.conversionPresets[0],this.updateConversionSettings(d)}),this.updateConversionSettings(d);let b=t.createDiv("image-converter-preset-section");b.createEl("h3",{text:"Additional settings"}),this.linkFormatPresetDropdown=this.createPresetDropdown(b,"Link format",this.settings.linkFormatSettings.linkFormatPresets,this.selectedLinkFormatPreset,v=>{this.selectedLinkFormatPreset=this.settings.linkFormatSettings.linkFormatPresets.find(w=>w.name===v)||this.settings.linkFormatSettings.linkFormatPresets[0]}),this.resizePresetDropdown=this.createPresetDropdown(b,"Resize (non-destructive)",this.settings.nonDestructiveResizeSettings.resizePresets,this.selectedResizePreset,v=>{this.selectedResizePreset=this.settings.nonDestructiveResizeSettings.resizePresets.find(w=>w.name===v)||this.settings.nonDestructiveResizeSettings.resizePresets[0]});let g=t.createDiv("image-converter-action-section");new pi.Setting(g).addButton(v=>{v.setButtonText("Edit presets").onClick(()=>{this.close();let w=this.app.setting;w?(w.open(),w.openTabById(this.plugin.manifest.id)):new pi.Notice("Unable to open settings.")})}),new pi.Setting(g).addButton(v=>{v.setButtonText("Apply").setCta().onClick(()=>{this.onApply(this.selectedConversionPreset,this.selectedFilenamePreset,this.selectedFolderPreset,this.selectedLinkFormatPreset,this.selectedResizePreset),this.close()})})}createPresetDropdown(e,r,t,n,f){return new pi.Setting(e).setName(r).addDropdown(a=>{t.forEach(A=>{a.addOption(A.name,A.name)}),a.setValue(n.name),a.onChange(f)})}updateConversionSettings(e){let r=document.querySelector(".image-converter-conversion-quality-container");r&&r.remove(),this.conversionQualitySetting&&(this.conversionQualitySetting.settingEl.remove(),this.conversionQualitySetting=null),this.conversionColorDepthSetting&&(this.conversionColorDepthSetting.settingEl.remove(),this.conversionColorDepthSetting=null);let t=e.createDiv("image-converter-conversion-quality-container");this.conversionQualitySetting=new pi.Setting(t).setName("Quality").setDesc(`Current: ${this.selectedConversionPreset.quality}%`).addSlider(n=>{n.setLimits(0,100,1).setValue(this.selectedConversionPreset.quality).setDynamicTooltip().onChange(f=>{var o;this.selectedConversionPreset.quality=f,(o=this.conversionQualitySetting)==null||o.setDesc(`Current: ${f}%`)})}),this.selectedConversionPreset.outputFormat==="PNG"&&(this.conversionColorDepthSetting=new pi.Setting(t).setName("Color depth").setDesc(`Current: ${this.selectedConversionPreset.colorDepth*100}%`).addSlider(n=>{n.setLimits(0,1,.1).setValue(this.selectedConversionPreset.colorDepth).setDynamicTooltip().onChange(f=>{var o;this.selectedConversionPreset.colorDepth=f,(o=this.conversionColorDepthSetting)==null||o.setDesc(`Current: ${f*100}%`)})}))}createGlobalPresetDropdown(e){new pi.Setting(e).setName("Global preset").setDesc("Select a global preset to apply multiple settings at once").addDropdown(r=>{r.addOption("none","None"),this.settings.globalPresets.forEach(t=>{r.addOption(t.name,t.name)}),r.setValue(this.selectedGlobalPreset?this.selectedGlobalPreset.name:"none"),r.onChange(t=>{var f;t==="none"?(this.selectedGlobalPreset=null,this.selectedConversionPreset=this.settings.conversionPresets.find(o=>o.name===this.settings.selectedConversionPreset)||this.settings.conversionPresets[0],this.selectedFilenamePreset=this.settings.filenamePresets.find(o=>o.name===this.settings.selectedFilenamePreset)||this.settings.filenamePresets[0],this.selectedFolderPreset=this.settings.folderPresets.find(o=>o.name===this.settings.selectedFolderPreset)||this.settings.folderPresets[0],this.selectedLinkFormatPreset=this.settings.linkFormatSettings.linkFormatPresets.find(o=>o.name===this.settings.linkFormatSettings.selectedLinkFormatPreset)||this.settings.linkFormatSettings.linkFormatPresets[0],this.selectedResizePreset=this.settings.nonDestructiveResizeSettings.resizePresets.find(o=>o.name===this.settings.nonDestructiveResizeSettings.selectedResizePreset)||this.settings.nonDestructiveResizeSettings.resizePresets[0]):(this.selectedGlobalPreset=this.settings.globalPresets.find(o=>o.name===t)||null,this.selectedGlobalPreset&&(this.selectedConversionPreset=this.settings.conversionPresets.find(o=>o.name===this.selectedGlobalPreset.conversionPreset)||this.settings.conversionPresets[0],this.selectedFilenamePreset=this.settings.filenamePresets.find(o=>o.name===this.selectedGlobalPreset.filenamePreset)||this.settings.filenamePresets[0],this.selectedFolderPreset=this.settings.folderPresets.find(o=>o.name===this.selectedGlobalPreset.folderPreset)||this.settings.folderPresets[0],this.selectedLinkFormatPreset=this.settings.linkFormatSettings.linkFormatPresets.find(o=>o.name===this.selectedGlobalPreset.linkFormatPreset)||this.settings.linkFormatSettings.linkFormatPresets[0],this.selectedResizePreset=this.settings.nonDestructiveResizeSettings.resizePresets.find(o=>o.name===this.selectedGlobalPreset.resizePreset)||this.settings.nonDestructiveResizeSettings.resizePresets[0])),this.folderPresetDropdown.components[0].setValue(this.selectedFolderPreset.name),this.filenamePresetDropdown.components[0].setValue(this.selectedFilenamePreset.name),this.conversionPresetDropdown.components[0].setValue(this.selectedConversionPreset.name),this.linkFormatPresetDropdown.components[0].setValue(this.selectedLinkFormatPreset.name),this.resizePresetDropdown.components[0].setValue(this.selectedResizePreset.name);let n=(f=this.conversionPresetDropdown.settingEl.parentElement)==null?void 0:f.querySelector(".image-converter-conversion-quality-container");n&&this.updateConversionSettings(n),this.updateFilenameSettings(e),this.updateFolderPreview(),this.updateFolderInputFieldVisibility(),this.updateFilenameInputFieldVisibility()})})}updateFilenameSettings(e){this.customFilenameText&&this.customFilenameText.setValue(this.selectedFilenamePreset.customTemplate||"")}showAvailableVariables(){new Ar(this.app,this.variableProcessor).open()}updateFolderInputFieldVisibility(){this.customFolderSetting&&(this.selectedFolderPreset.type==="DEFAULT"||this.selectedFolderPreset.type==="ROOT"||this.selectedFolderPreset.type==="CURRENT"||this.selectedFolderPreset.type==="SUBFOLDER"?this.customFolderSetting.settingEl.hide():this.customFolderSetting.settingEl.show())}updateFilenameInputFieldVisibility(){this.customFilenameSetting&&(this.selectedFilenamePreset.name==="Keep original name"||this.selectedFilenamePreset.name==="NoteName-Timestamp"?this.customFilenameSetting.settingEl.hide():this.customFilenameSetting.settingEl.show())}onClose(){this.updateTimeout&&(window.clearTimeout(this.updateTimeout),this.updateTimeout=null),this.conversionQualitySetting=null,this.conversionColorDepthSetting=null,this.customFilenameSetting=null,this.customFilenameText=null,this.customFolderSetting=null,this.customFolderText=null,this.previewContainer=null;let{contentEl:e}=this;e.empty()}};var kn=class extends k0.Plugin{constructor(){super(...arguments);this.ImageAlignmentManager=null;this.imageResizer=null;this.processedImage=null;this.temporaryBuffers=[]}async onload(){await this.loadSettings(),this.addSettingTab(new it(this.app,this)),this.supportedImageFormats=new Dr(this.app),this.settings.enableImageCaptions&&(this.captionManager=new ln(this),this.register(()=>this.captionManager.cleanup())),this.settings.isImageAlignmentEnabled&&(this.ImageAlignmentManager=new nn(this.app,this,this.supportedImageFormats),await this.ImageAlignmentManager.initialize(),this.registerEvent(this.app.workspace.on("file-open",e=>{var r;e&&((r=this.ImageAlignmentManager)==null||r.applyAlignmentsToNote(e.path),this.settings.enableImageCaptions&&this.captionManager.refresh())}))),this.app.workspace.onLayoutReady(()=>{this.initializeComponents(),(this.settings.isImageAlignmentEnabled||this.settings.isImageResizeEnbaled)&&this.registerEvent(this.app.workspace.on("layout-change",()=>{var e,r;if(this.settings.isImageAlignmentEnabled){let t=this.app.workspace.getActiveFile();t&&((e=this.ImageAlignmentManager)==null||e.applyAlignmentsToNote(t.path))}if(this.settings.isImageResizeEnbaled){let t=this.app.workspace.getActiveViewOfType(k0.MarkdownView);t&&((r=this.imageResizer)==null||r.onLayoutChange(t))}this.settings.enableImageCaptions&&this.captionManager.refresh()}))})}async initializeComponents(){if(this.variableProcessor=new tt(this.app,this.settings),this.linkFormatter=new nt(this.app),this.imageProcessor=new rt(this.supportedImageFormats),this.settings.isImageResizeEnbaled){this.imageResizer=new fn(this);let e=this.app.workspace.getActiveViewOfType(k0.MarkdownView);e&&this.imageResizer.onload(e)}this.folderAndFilenameManagement=new Sr(this.app,this.settings,this.supportedImageFormats,this.variableProcessor),this.batchImageProcessor=new an(this.app,this,this.imageProcessor,this.folderAndFilenameManagement),this.settings.enableContextMenu&&(this.contextMenu=new en(this.app,this,this.folderAndFilenameManagement,this.variableProcessor)),this.dropPaste_registerEvents(),this.registerEvent(this.app.workspace.on("file-menu",(e,r)=>{r instanceof k0.TFile&&this.supportedImageFormats.isSupported(void 0,r.name)?e.addItem(t=>{t.setTitle("Process image").setIcon("cog").onClick(()=>{new $2(this.app,this,r).open()})}):r instanceof k0.TFolder?e.addItem(t=>{t.setTitle("Process all images in Folder").setIcon("cog").onClick(()=>{new sn(this.app,this,r.path,this.batchImageProcessor).open()})}):r instanceof k0.TFile&&(r.extension==="md"||r.extension==="canvas")&&e.addItem(t=>{t.setTitle(`Process all images in ${r.extension==="md"?"Note":"Canvas"}`).setIcon("cog").onClick(()=>{new Er(this.app,this,r,this.batchImageProcessor).open()})})})),this.addCommand({id:"process-all-vault-images",name:"Process all vault images",callback:()=>{new An(this.app,this,this.batchImageProcessor).open()}}),this.addCommand({id:"process-all-images-current-note",name:"Process all images in current note",callback:()=>{let e=this.app.workspace.getActiveFile();e?new Er(this.app,this,e,this.batchImageProcessor).open():new k0.Notice("Error: No active file found.")}}),this.addCommand({id:"open-image-converter-settings",name:"Open Image Converter Settings",callback:()=>this.command_openSettingsTab()}),this.addReloadCommand()}async onunload(){this.ImageAlignmentManager&&(this.ImageAlignmentManager.onunload(),this.ImageAlignmentManager=null),this.imageResizer&&(this.imageResizer.onunload(),this.imageResizer=null),this.contextMenu&&this.contextMenu.onunload(),[this.processSingleImageModal,this.processFolderModal,this.processCurrentNote,this.processAllVaultModal].forEach(e=>{e!=null&&e.close&&e.close()}),[this.processSingleImageModal,this.processFolderModal,this.processCurrentNote,this.processAllVaultModal].forEach(e=>{e!=null&&e.close&&e.close()}),document.body.classList.remove("image-captions-enabled")}async loadSettings(){this.settings=Object.assign({},Ci,await this.loadData())}async saveSettings(){await this.saveData(this.settings)}async command_openSettingsTab(){let e=this.app.setting;e?(await e.open(),e.openTabById(this.manifest.id)):new k0.Notice("Unable to open settings. Please check if the settings plugin is enabled.")}addReloadCommand(){this.addCommand({id:"reload-plugin",name:"Reload plugin",callback:async()=>{new k0.Notice("Reloading Image Converter plugin...");try{let e=this.app.plugins;if(e&&e.disablePlugin)await e.disablePlugin(this.manifest.id);else{console.error("Plugins API is not accessible."),new k0.Notice("Failed to reload plugin: Plugins API unavailable.");return}if(await new Promise(r=>setTimeout(r,500)),e&&e.enablePlugin)await e.enablePlugin(this.manifest.id);else{console.error("Plugins API is not accessible."),new k0.Notice("Failed to reload plugin: Plugins API unavailable.");return}new k0.Notice("Image Converter plugin reloaded!")}catch(e){console.error("Error reloading plugin:",e),new k0.Notice("Failed to reload plugin. See console for details.")}}})}dropPaste_registerEvents(){k0.Platform.isMobile||(this.registerEvent(this.app.workspace.on("editor-drop",async(e,r)=>{if(!e.dataTransfer){console.warn("DataTransfer object is null initially. Cannot process drop event.");return}let t=r.posAtMouse(e);if(!t){console.warn("Could not determine drop position");return}let n=[];for(let o=0;othis.supportedImageFormats.isSupported(o.type,o.name)&&!this.folderAndFilenameManagement.matches_patterns(o.name,this.settings.neverProcessFilenames))&&(e.preventDefault(),await this.handleDrop(n,r,e,t))})),this.registerEvent(this.app.workspace.on("editor-paste",async(e,r)=>{if(!e.clipboardData){console.warn("ClipboardData object is null. Cannot process paste event.");return}let t=r.getCursor(),n=[];for(let o=0;oo.kind==="file"&&o.file&&this.supportedImageFormats.isSupported(o.type,o.file.name)&&!this.folderAndFilenameManagement.matches_patterns(o.file.name,this.settings.neverProcessFilenames))&&(e.preventDefault(),await this.handlePaste(n,r,t))})))}async handleDrop(e,r,t,n){let f=e.filter(A=>this.supportedImageFormats.isSupported(A.type,A.name)).map(A=>A.file);if(f.length===0)return;let o=this.app.workspace.getActiveFile();if(!o){new k0.Notice("No active file detected.");return}let a=f.map(async A=>{try{let l=this.settings.modalBehavior,k=l==="always";l==="ask"&&(k=await new Promise(y=>{new Ei(this.app,"Show Preset Selection Modal?","Do you want to select presets for this image?","Yes",()=>y(!0)).open()}));let u,h,c,d,b;k?{selectedConversionPreset:u,selectedFilenamePreset:h,selectedFolderPreset:c,selectedLinkFormatPreset:d,selectedResizePreset:b}=await new Promise(y=>{new Wr(this.app,this.settings,(Z,_,x,B,I)=>{y({selectedConversionPreset:Z,selectedFilenamePreset:_,selectedFolderPreset:x,selectedLinkFormatPreset:B,selectedResizePreset:I})},this,this.variableProcessor).open()}):(u=this.getPresetByName(this.settings.selectedConversionPreset,this.settings.conversionPresets,"Conversion"),h=this.getPresetByName(this.settings.selectedFilenamePreset,this.settings.filenamePresets,"Filename"),c=this.getPresetByName(this.settings.selectedFolderPreset,this.settings.folderPresets,"Folder"),d=this.getPresetByName(this.settings.linkFormatSettings.selectedLinkFormatPreset,this.settings.linkFormatSettings.linkFormatPresets,"Link Format"),b=this.getPresetByName(this.settings.nonDestructiveResizeSettings.selectedResizePreset,this.settings.nonDestructiveResizeSettings.resizePresets,"Resize"));let g,v;try{let y=await this.folderAndFilenameManagement.determineDestination(A,o,u,h,c);g=y.destinationPath,v=y.newFilename}catch(y){console.error("Error determining destination and filename:",y),new k0.Notice(`Failed to determine destination or filename for "${A.name}". Check console for details.`);return}try{await this.folderAndFilenameManagement.ensureFolderExists(g)}catch(y){if(!y.message.startsWith("Folder already exists")){console.error("Error creating folder:",y),new k0.Notice(`Failed to create folder "${g}". Check console for details.`);return}}let w=`${g}/${v}`,p=this.app.vault.getAbstractFileByPath(w),m=!1;if(h&&this.folderAndFilenameManagement.should_skip_rename(A.name,h))new k0.Notice(`Skipped renaming/conversion of image "${A.name}" due to skip pattern match.`),m=!0;else if(h&&h.conflictResolution==="increment")try{v=await this.folderAndFilenameManagement.handleNameConflicts(g,v,"increment"),p=this.app.vault.getAbstractFileByPath(`${g}/${v}`)}catch(y){console.error("Error handling filename conflicts:",y),new k0.Notice(`Error incrementing filename for "${A.name}". Check console for details.`);return}let C=this.folderAndFilenameManagement.combinePath(g,v);if(m)p&&this.insertLinkAtCursorPosition(r,p.path,n,d,b);else{if(p&&h&&h.conflictResolution==="reuse"){this.insertLinkAtCursorPosition(r,p.path,n,d,b);return}if(u&&this.folderAndFilenameManagement.should_skip_conversion(A.name,u)){new k0.Notice(`Skipped conversion of image "${A.name}" due to skip pattern match in the conversion preset.`);let y=await A.arrayBuffer(),Z=await this.app.vault.createBinary(C,y);if(!Z){new k0.Notice(`Failed to create file "${v}". Check console for details.`);return}this.insertLinkAtCursorPosition(r,Z.path,n,d,b)}else try{let y=A.size;this.processedImage=await this.imageProcessor.processImage(A,u?u.outputFormat:this.settings.outputFormat,u?u.quality/100:this.settings.quality/100,u?u.colorDepth:this.settings.colorDepth,u?u.resizeMode:this.settings.resizeMode,u?u.desiredWidth:this.settings.desiredWidth,u?u.desiredHeight:this.settings.desiredHeight,u?u.desiredLongestEdge:this.settings.desiredLongestEdge,u?u.enlargeOrReduce:this.settings.enlargeOrReduce,u?u.allowLargerFiles:this.settings.allowLargerFiles,u,this.settings);let Z;if(this.settings.revertToOriginalIfLarger&&this.processedImage.byteLength>y){this.showSizeComparisonNotification(y,this.processedImage.byteLength),new k0.Notice(`Using original image for "${A.name}" as processed image is larger.`);let _=await A.arrayBuffer();Z=await this.app.vault.createBinary(C,_)}else this.showSizeComparisonNotification(y,this.processedImage.byteLength),Z=await this.app.vault.createBinary(C,this.processedImage);await this.insertLinkAtCursorPosition(r,Z.path,n,d,b)}catch(y){console.error("Image processing failed:",y),y instanceof Error?y.message.includes("File already exists")?new k0.Notice(`Failed to process image: File "${v}" already exists.`):y.message.includes("Invalid input file type")?new k0.Notice(`Failed to process image: Invalid input file type for "${A.name}".`):new k0.Notice(`Failed to process image "${A.name}": ${y.message}. Check console for details.`):new k0.Notice(`Failed to process image "${A.name}". Check console for details.`);return}finally{this.clearMemory()}}}catch(l){console.error("An unexpected error occurred:",l),new k0.Notice("An unexpected error occurred. Check console for details.")}});await Promise.all(a),this.settings.enableImageCaptions&&this.captionManager.refresh()}async handlePaste(e,r,t){let n=e.filter(a=>a.kind==="file"&&a.file&&this.supportedImageFormats.isSupported(a.type,a.file.name)).map(a=>a.file).filter(a=>a!==null);if(n.length===0)return;let f=this.app.workspace.getActiveFile();if(!f){new k0.Notice("No active file found!");return}let o=n.map(async a=>{let A=this.settings.modalBehavior,l=A==="always";A==="ask"&&(l=await new Promise(b=>{new Ei(this.app,"Show Preset Selection Modal?","Do you want to select presets for this image?","Yes",()=>b(!0)).open()}));let k,u,h,c,d;l?{selectedConversionPreset:k,selectedFilenamePreset:u,selectedFolderPreset:h,selectedLinkFormatPreset:c,selectedResizePreset:d}=await new Promise(b=>{new Wr(this.app,this.settings,(g,v,w,p,m)=>{b({selectedConversionPreset:g,selectedFilenamePreset:v,selectedFolderPreset:w,selectedLinkFormatPreset:p,selectedResizePreset:m})},this,this.variableProcessor).open()}):(k=this.getPresetByName(this.settings.selectedConversionPreset,this.settings.conversionPresets,"Conversion"),u=this.getPresetByName(this.settings.selectedFilenamePreset,this.settings.filenamePresets,"Filename"),h=this.getPresetByName(this.settings.selectedFolderPreset,this.settings.folderPresets,"Folder"),c=this.getPresetByName(this.settings.linkFormatSettings.selectedLinkFormatPreset,this.settings.linkFormatSettings.linkFormatPresets,"Link Format"),d=this.getPresetByName(this.settings.nonDestructiveResizeSettings.selectedResizePreset,this.settings.nonDestructiveResizeSettings.resizePresets,"Resize"));try{let b,g;try{let C=await this.folderAndFilenameManagement.determineDestination(a,f,k,u,h);b=C.destinationPath,g=C.newFilename}catch(C){console.error("Error determining destination and filename:",C),new k0.Notice(`Failed to determine destination or filename for "${a.name}". Check console for details.`);return}try{await this.folderAndFilenameManagement.ensureFolderExists(b)}catch(C){if(!C.message.startsWith("Folder already exists")){console.error("Error creating folder:",C),new k0.Notice(`Failed to create folder: ${b}`);return}}let v=`${b}/${g}`,w=this.app.vault.getAbstractFileByPath(v),p=!1;if(u&&this.folderAndFilenameManagement.should_skip_rename(a.name,u))new k0.Notice(`Skipped renaming/conversion of image "${a.name}" due to skip pattern match.`),p=!0;else if(u&&u.conflictResolution==="increment")try{g=await this.folderAndFilenameManagement.handleNameConflicts(b,g,"increment"),w=this.app.vault.getAbstractFileByPath(`${b}/${g}`)}catch(C){console.error("Error handling filename conflicts:",C),new k0.Notice(`Error incrementing filename for "${a.name}". Check console for details.`);return}let m=this.folderAndFilenameManagement.combinePath(b,g);if(p)w&&this.insertLinkAtCursorPosition(r,w.path,t,c,d);else{if(w&&u&&u.conflictResolution==="reuse"){this.insertLinkAtCursorPosition(r,w.path,t,c,d);return}if(k&&this.folderAndFilenameManagement.should_skip_conversion(a.name,k)){new k0.Notice(`Skipped conversion of image "${a.name}" due to skip pattern match in the conversion preset.`);let C=await a.arrayBuffer(),y=await this.app.vault.createBinary(m,C);if(!y){new k0.Notice(`Failed to create file: ${g}`);return}this.insertLinkAtCursorPosition(r,y.path,t,c,d)}else try{let C=a.size;this.processedImage=await this.imageProcessor.processImage(a,k?k.outputFormat:this.settings.outputFormat,k?k.quality/100:this.settings.quality/100,k?k.colorDepth:this.settings.colorDepth,k?k.resizeMode:this.settings.resizeMode,k?k.desiredWidth:this.settings.desiredWidth,k?k.desiredHeight:this.settings.desiredHeight,k?k.desiredLongestEdge:this.settings.desiredLongestEdge,k?k.enlargeOrReduce:this.settings.enlargeOrReduce,k?k.allowLargerFiles:this.settings.allowLargerFiles,k,this.settings);let y;if(this.settings.revertToOriginalIfLarger&&this.processedImage.byteLength>C){this.showSizeComparisonNotification(C,this.processedImage.byteLength),new k0.Notice(`Using original image for "${a.name}" as processed image is larger.`);let Z=await a.arrayBuffer();y=await this.app.vault.createBinary(m,Z)}else this.showSizeComparisonNotification(C,this.processedImage.byteLength),y=await this.app.vault.createBinary(m,this.processedImage);if(!y){new k0.Notice(`Failed to create file "${g}". Check console for details.`);return}this.insertLinkAtCursorPosition(r,y.path,t,c,d)}catch(C){console.error("Image processing failed:",C),C instanceof Error?C.message.includes("File already exists")?new k0.Notice(`Failed to process image: File "${g}" already exists.`):C.message.includes("Invalid input file type")?new k0.Notice(`Failed to process image: Invalid input file type for "${a.name}".`):new k0.Notice(`Failed to process image "${a.name}": ${C.message}. Check console for details.`):new k0.Notice(`Failed to process image "${a.name}". Check console for details.`);return}}}catch(b){console.error("An unexpected error occurred:",b),new k0.Notice("An unexpected error occurred. Check console for details.")}finally{this.clearMemory()}});await Promise.all(o),this.settings.enableImageCaptions&&this.captionManager.refresh()}async insertLinkAtCursorPosition(e,r,t,n,f){let o=this.app.workspace.getActiveFile(),a=n||this.settings.linkFormatSettings.linkFormatPresets.find(k=>k.name===this.settings.linkFormatSettings.selectedLinkFormatPreset),A=f||this.settings.nonDestructiveResizeSettings.resizePresets.find(k=>k.name===this.settings.nonDestructiveResizeSettings.selectedResizePreset),l=await this.linkFormatter.formatLink(r,(a==null?void 0:a.linkFormat)||"wikilink",(a==null?void 0:a.pathFormat)||"shortest",o,A);e.replaceRange(l,t),this.settings.dropPasteCursorLocation==="back"&&e.setCursor({line:t.line,ch:t.ch+l.length})}formatFileSize(e){return e<1024?`${e} bytes`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}showSizeComparisonNotification(e,r){if(!this.settings.showSpaceSavedNotification)return;let t=this.formatFileSize(e),n=this.formatFileSize(r),f=((r-e)/e*100).toFixed(1),o=r>e?"+":"",a=`${t} \u2192 ${n} (${o}${f}%)`;new k0.Notice(a)}getPresetByName(e,r,t){let n=r.find(f=>f.name===e);return n||(console.warn(`${t} preset "${e}" not found, using default`),r[0])}clearMemory(){this.processedImage&&(this.processedImage=null),this.temporaryBuffers&&(this.temporaryBuffers.forEach(e=>{e=null}),this.temporaryBuffers=[])}}; +/*! Bundled license information: + +sortablejs/modular/sortable.esm.js: + (**! + * Sortable 1.15.6 + * @author RubaXa + * @author owenm + * @license MIT + *) +*/ + +/* nosourcemap */ \ No newline at end of file diff --git a/public/vaults/Publish/.obsidian/plugins/image-converter/manifest.json b/public/vaults/Publish/.obsidian/plugins/image-converter/manifest.json new file mode 100644 index 0000000..bf29b32 --- /dev/null +++ b/public/vaults/Publish/.obsidian/plugins/image-converter/manifest.json @@ -0,0 +1,11 @@ +{ + "id": "image-converter", + "name": "Image Converter", + "version": "1.3.10", + "minAppVersion": "0.15.0", + "description": "Convert, compress, resize, annotate, markup, draw, crop, rotate, flip, align images directly in Obsidian. Drag-resize, rename with variables, batch process. WEBP, JPG, PNG, HEIC, TIF.", + "author": "xRyul", + "authorUrl": "https://github.com/xryul", + "isDesktopOnly": false, + "fundingUrl": "https://ko-fi.com/xryul" +} diff --git a/public/vaults/Publish/.obsidian/plugins/image-converter/styles.css b/public/vaults/Publish/.obsidian/plugins/image-converter/styles.css new file mode 100644 index 0000000..bfc3c2e --- /dev/null +++ b/public/vaults/Publish/.obsidian/plugins/image-converter/styles.css @@ -0,0 +1,2711 @@ +/* go beyond the line width */ +/* .markdown-reading-view img, +.markdown-source-view img, +.internal-embed.image-embed { + max-width: 100%; + height: auto; +} */ + + +/* Preserve image dimensions - with consideration for Image Gallery plugin*/ +/* .markdown-reading-view img[style*="width"]:not(.grid-item img), +.markdown-source-view img[style*="width"]:not(.grid-item img) { + height: auto !important; +} */ + + + +/* --- Image Converter Settings --- */ +/* Remove X icon and get use all available space*/ +.image-converter-settings-tab { + padding: 20px; + position: relative; + /* Relative positioning for child elements */ + height: 100%; + /* Occupy full height */ + overflow: auto; + /* Enable scrolling if content overflows */ +} + +/* ------------------- Tabs ------------------------------ */ +.image-converter-setting-tabs { + display: flex; + margin-bottom: 15px; + border-bottom: 1px solid var(--background-modifier-border); + justify-content: center; + overflow-x: auto; + /* Horizontal scrolling for many tabs */ +} + +.image-converter-setting-tabs::-webkit-scrollbar { + display: none; + /* Hide scrollbar */ +} + +.image-converter-tab { + padding: 8px 12px; + margin-right: 5px; + margin-bottom: -1px; + /* Overlap the bottom border slightly */ + border: 1px solid transparent; + border-radius: 5px 5px 0 0; + /* Rounded corners at the top */ + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + font-size: var(--font-adaptive-normal); + transition: background-color 0.1s ease-in-out; + /* Smooth hover effect */ + border-bottom: 3px solid transparent; +} + +/* Remove left margin for the first tab */ +.image-converter-tab:first-child { + margin-left: 0; +} + +/* Remove right margin for the last tab */ +.image-converter-tab:last-child { + margin-right: 0; +} + +.image-converter-tab:hover { + /* Remove background color on hover */ + /* background-color: var(--background-modifier-hover); */ + + /* Add underline on hover */ + border-bottom-color: var(--interactive-accent); + /* Use an accent color for the underline */ +} + +/* Active tab styling */ +.image-converter-tab-active { + /* Remove background color */ + /* border-color: var(--background-modifier-border); */ + /* border-bottom-color: var(--background-primary); */ + /* background-color: var(--background-primary); */ + + font-weight: 600; + + /* Add underline for active tab */ + border-bottom-color: var(--interactive-accent); + /* Match the hover underline color */ +} + +.image-converter-tab>svg { + width: 1.2em; + height: 1.2em; + margin-right: 6px; + stroke-width: 1.5; +} + +/* Tab label text - inherit font weight (normal or slightly bolder) */ +.image-converter-tab-label { + /* No specific styles needed here - inherits from parent */ +} + +/* ------------------- Preset Group --------------------- */ +.image-converter-preset-group { + margin-bottom: 20px; + position: relative; + /* For absolute positioning of child elements */ + z-index: 1; + /* Ensure preset group is above other elements */ + transition: transform 0.3s ease, filter 0.3s ease, opacity 0.3s ease; + transform-origin: top center; + transform: scale(1); + /* Initially no scaling */ + filter: brightness(1) blur(0); + /* No initial filter */ + opacity: 1; + /* Fully opaque */ +} + +.image-converter-preset-group-title { + margin-bottom: 15px; + font-size: 1.2em; + font-weight: 600; + border-bottom: 2px solid var(--background-modifier-border); + padding-bottom: 5px; + display: none; + /* HIDDEN - Remove this to show titles */ +} + +.image-converter-preset-group-description { + font-size: var(--font-ui-smaller); + color: var(--text-muted); + margin-bottom: 1em; +} + +/* ---------------------- Preset Card ------------------------------- */ +.image-converter-preset-card { + border: 1px solid var(--background-modifier-border); + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); + /* Subtle shadow */ + padding: 14px 20px; + display: flex; + flex-direction: column; + background-color: var(--background-primary); + height: auto; + transition: opacity 0.3s ease; + overflow: hidden; + /* Prevent content from spilling out */ +} + +/* "Grabbing" cursor when dragging */ +.image-converter-preset-card:active { + cursor: grabbing; +} + +/* Pointer cursor for non-add-new cards */ +.image-converter-preset-card:not(.image-converter-add-new-preset) { + cursor: pointer; +} + +.image-converter-preset-card-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 15px; + margin-top: -20px; + cursor: move; + /* Indicate draggable */ +} + +.image-converter-preset-card-title { + font-size: calc(var(--font-ui-small) + 1px); + font-weight: 600; + color: var(--text-normal); + overflow: hidden; + text-overflow: ellipsis; + /* Add ellipsis (...) for long titles */ + white-space: nowrap; +} + +/* --- Button Styling --- */ +.image-converter-preset-card-actions { + display: flex; + gap: 2px; + margin-right: -16px; +} + +.image-converter-preset-card-actions .clickable-icon { + color: var(--text-muted); + transition: color 0.2s ease; +} + +.image-converter-preset-card-actions .clickable-icon:hover { + color: var(--text-accent); +} + +/* --- Danger Button (e.g., DELETE) --- */ +.image-converter-preset-card-actions .danger { + color: var(--text-error); +} + +/* --- SortableJS Ghost Styling --- */ +.image-converter-sortable-ghost { + opacity: 0.5; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); +} + +.image-converter-preset-card-body { + color: var(--text-mute); + font-size: 0.75em; + line-height: 1.4; + overflow: hidden; + text-overflow: ellipsis; + white-space: wrap; + margin-top: -22px; +} + +.image-converter-preset-card-body p { + margin-block-start: 0; + margin-block-end: 0; + line-height: 1.4; +} + +/* --- Preset Cards Grid --- */ +.image-converter-preset-cards { + display: grid; + gap: 15px; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + /* Responsive grid */ + cursor: grab; + /* Indicate draggable */ +} + +/* Media Query for 3-column layout on larger screens */ +@media (min-width: 1000px) { + .image-converter-preset-cards { + grid-template-columns: repeat(3, 1fr); + } +} + +/* --- Active and Default Preset Styling --- */ +.image-converter-active-preset { + border-color: var(--interactive-accent); + box-shadow: 0 0 5px var(--interactive-accent); +} + +.image-converter-default-preset { + background-color: var(--background-modifier-hover); +} + +/* --- Custom Variables for Default Preset Background --- */ +:root { + --image-converter-default-bg: #f5f5f5; + /* Light mode default */ +} + +html[data-theme='dark'] { + --image-converter-default-bg: #2b2b2b; + /* Dark mode default */ +} + +/* ----------------------------- Preset Form ------------ */ +.image-converter-preset-form { + display: flex; + flex-direction: column; + gap: 10px; +} + +.image-converter-form-buttons { + display: flex; + justify-content: flex-end; + /* Align buttons to the right */ + gap: 10px; + margin-top: 10px; +} + +/* ------------------- Add New Preset Card --------------- */ +.image-converter-add-new-preset { + display: flex; + justify-content: center; + align-items: center; + border: 1px dashed var(--background-modifier-border); + min-height: 100px; + height: 100%; + cursor: pointer; + transition: background-color 0.2s ease; + text-align: center; +} + +.image-converter-add-new-preset:hover { + background-color: var(--background-modifier-hover); +} + +.image-converter-add-new-preset-text { + font-weight: 500; + color: var(--text-accent); +} + +/* ----------- Modal Styling --------------------------*/ +.image-converter-confirm-modal-buttons { + display: flex; + justify-content: flex-end; + gap: 0.5em; + margin-top: 1em; +} + +/* --------- GLOBAL PRESET ------------------------------ */ +.image-converter-global-preset-container { + display: flex; + align-items: center; + gap: 10px; + /* margin-bottom: 20px; */ + cursor: pointer; +} + +.image-converter-global-preset-container .image-converter-global-preset-title { + width: 135px; +} + +/* --- Dropdown --- */ +.image-converter-global-preset-container .setting-item { + display: flex; + align-items: center; + gap: 10px; + flex-grow: 1; + width: 100%; + border-top: none; + min-width: 112px; +} + +.image-converter-global-preset-container .settings-section-title { + margin-left: 0.5em; + margin-bottom: 1px; + font-weight: 600; + width: 130px; +} + +.image-converter-global-preset-container .setting-item-name { + flex: 0 0 auto; + /* Prevent label from shrinking */ +} + +/* --- Clickable Toggle Area --- */ +.image-converter-global-preset-toggle { + display: flex; + align-items: center; + margin-right: 10px; + font-weight: 600; +} + +.image-converter-chevron-icon { + margin-right: 5px; + transition: transform 0.2s ease; +} + +/* Rotate chevron when collapsed */ +.image-converter-settings-tab:not(.global-presets-visible) .image-converter-chevron-icon { + transform: rotate(-90deg); +} + + + + + +/* --------------- IMAGE ALIGNMENT SETTINGS ------------------------------ */ +/* ----------------------------------------------------------------------- */ + +/* --- Section Container --- */ +.image-converter-settings-tab .image-alignment-settings-section { + display: flex; + /* align-items: center; */ + gap: 10px; + /* margin-bottom: 10px; */ + cursor: pointer; + flex-direction: column; +} + + +/* --- Section Header (Clickable Toggle Area) --- */ +.image-converter-settings-tab .image-alignment-settings-section .settings-section-header { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + padding: 8px 0; +} + + +.image-converter-settings-tab .image-alignment-settings-section .settings-section-title { + /* flex-grow: 1; */ + margin-left: 0.5em; + font-weight: 600; + margin-bottom: 5px; +} + +.image-converter-settings-tab .image-alignment-settings-section .settings-section-toggle-button { + margin-left: auto; + margin-right: 0; +} + + +/* --- Chevron Icon --- */ +.image-converter-settings-tab .image-alignment-settings-section .settings-section-chevron-icon { + margin-right: 5px; + transition: transform 0.2s ease; +} + + +/* --- HIDE CHEVRON WHEN IMAGE ALIGNMENT IS DISABLED --- */ +.image-converter-settings-tab .image-alignment-settings-section:not(.image-alignment-enabled) .settings-section-chevron-icon { + /* Refined selector */ + display: none; + /* Hide chevron when image alignment section is disabled */ +} + + +/* --- Indentation for Settings within Section --- */ +.image-converter-settings-tab .image-alignment-settings-section .setting-item { + padding-left: 1.5em; + border-top: none; + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +/* --- Hide Settings when Section is Collapsed --- */ +.image-converter-settings-tab .image-alignment-settings-section.settings-section-collapsed>*:not(.settings-section-header) { + display: none; +} + +.settings-section-clarification-text { + margin-left: 19px; + color: var(--text-muted); + font-size: var(--font-ui-smaller); + padding-top: var(--size-4-1); + line-height: var(--line-height-tight); +} + +/* ----------------------------------------------------------------------- */ +/* ----------------------------------------------------------------------- */ + + + +/* --------- Image Drag & Resize Settings Section --------- */ + +/* --- Main Container --- */ +.image-drag-resize-settings-section { + display: flex; + /* align-items: center; */ + gap: 10px; + /* margin-bottom: 10px; */ + cursor: pointer; + flex-direction: column; +} + +/* --- Collapsible Section Header --- */ +.image-drag-resize-settings-section .settings-section-header { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + padding: 8px 0; +} + +/* --- Section Title --- */ +.image-drag-resize-settings-section .settings-section-title { + /* flex-grow: 1; */ + margin-left: 0.5em; + margin-bottom: 5px; + font-weight: 600; +} + +/* --- Toggle Switch --- */ +.image-drag-resize-settings-section .settings-section-toggle-button { + margin-left: auto; + margin-right: 0; +} + + +/* --- Chevron Icon --- */ +.image-drag-resize-settings-section .settings-section-chevron-icon { + margin-right: 5px; + transition: transform 0.2s ease; +} + +/* --- HIDE CHEVRON WHEN IMAGE ALIGNMENT IS DISABLED --- */ +.image-converter-settings-tab .image-drag-resize-settings-section:not(.image-drag-resize-enabled) .settings-section-chevron-icon { + /* Refined selector */ + display: none; + /* Hide chevron when image alignment section is disabled */ +} + +/* --- Indentation for Settings within Section --- */ +.image-converter-settings-tab .image-drag-resize-settings-section .setting-item { + padding-left: 1.5em; + border-top: none; + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +/* --- Hide Settings when Section is Collapsed --- */ +.image-converter-settings-tab .image-drag-resize-settings-section.settings-section-collapsed>*:not(.settings-section-header) { + display: none; +} + +/* ----------------------------------------------------------------------- */ +/* ----------------------------------------------------------------------- */ + + + +/* --- Hide Tabs and Content --- */ +/* Hide tabs and preset groups when global presets are not visible */ +.image-converter-settings-tab:not(.global-presets-visible) .image-converter-setting-tabs, +.image-converter-settings-tab:not(.global-presets-visible) .image-converter-tab-content-wrapper { + display: none; +} + +/* ------- Preset Summary in Modal ----------------------*/ +.image-converter-preset-summary { + margin-top: 10px; +} + +.image-converter-preset-summary .summary-section { + margin-bottom: 15px; +} + +.image-converter-preset-summary .summary-section-title { + font-weight: bold; + font-size: 1.1em; + margin-bottom: 5px; +} + +.image-converter-preset-summary .summary-item { + margin-left: 20px; + margin-bottom: 3px; +} + +.image-converter-preset-summary .summary-label { + font-weight: 600; +} + +.image-converter-preset-summary .summary-value { + font-style: italic; +} + +.image-converter-preset-summary .summary-value-bold { + font-weight: bold; +} + +.image-converter-summary-example { + font-style: italic; +} + +/* --------------------------- Form Container ----------- */ +.image-converter-form-container { + margin-top: 20px; + padding: 20px; + border: 1px solid var(--background-modifier-border); + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); + background-color: var(--background-primary); + display: none; + z-index: 2; + /* Ensure form is above preset group */ + position: relative; +} + +/* Class to make the form container visible */ +.image-converter-form-container.visible { + display: block; + border: var(--interactive-accent); + box-shadow: 0 0 5px var(--interactive-accent); + animation: slideDown 0.3s ease forwards; +} + + +/* --- Responsive Design --- */ +@media (max-width: 600px) { + .image-converter-available-variables-modal { + width: 95vw; + } + + .image-converter-available-variables-modal th, + .image-converter-available-variables-modal td { + font-size: 0.9em; + padding: 8px; + } +} + +/* --- Animation --- */ +@keyframes slideDown { + from { + opacity: 0; + transform: translateY(-10px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +/* ------------- VARIABLES Modal -----------------------*/ +.image-converter-available-variables-modal { + width: 90vw; + max-width: 800px; +} + +.image-converter-available-variables-modal .modal-content { + padding: 0px; + /* Remove padding */ +} + +.image-converter-available-variables-modal .modal-title { + margin-bottom: 20px; + font-size: 1.4em; + font-weight: 600; +} + +.image-converter-available-variables-modal h4 { + margin-top: 20px; + margin-bottom: 10px; + font-size: 1.2em; + font-weight: 600; + color: var(--text-normal); +} + +.image-converter-available-variables-modal table { + width: 100%; + border-collapse: collapse; +} + +.image-converter-available-variables-modal th, +.image-converter-available-variables-modal td { + border: 1px solid var(--background-modifier-border); + padding: 10px; + text-align: left; + font-size: 0.95em; + vertical-align: top; +} + +.image-converter-available-variables-modal th { + background-color: var(--background-secondary); + font-weight: 600; +} + +.image-converter-available-variables-modal td:first-child { + font-family: monospace; + font-weight: 600; + color: var(--text-accent); + white-space: nowrap; +} + +.image-converter-available-variables-modal td:nth-child(2) { + /* width: 60%; */ + /* Adjust width ratio as needed */ +} + +.image-converter-available-variables-modal td:last-child { + font-family: monospace; + color: var(--text-muted); +} + +/* -------------- Link FORMATS --------------------- */ +.image-converter-format-examples-section { + margin-top: 20px; + margin-bottom: 20px; + border: 1px solid var(--background-modifier-border); + border-radius: 6px; +} + +/* --- Summary (Clickable Part) --- */ +.image-converter-format-examples-section summary { + padding: 10px; + cursor: pointer; + display: flex; + justify-content: space-between; + align-items: center; + color: var(--text-muted); + user-select: none; + list-style: none; + /* Remove default list-style */ +} + +.image-converter-format-examples-section summary::-webkit-details-marker { + display: none; + /* Remove default WebKit marker */ +} + +.image-converter-format-examples-section summary:hover { + background-color: var(--background-secondary); +} + +/* --- Arrow --- */ +.image-converter-format-examples-section summary::after { + content: '▼'; + /* Downward arrow */ + transition: transform 0.2s ease; + transform-origin: center; + font-size: 0.8em; + margin-left: 5px; + display: inline-block; +} + +/* Rotate arrow when details is open */ +.image-converter-format-examples-section[open] summary::after { + transform: rotate(90deg); +} + +/* --- Content --- */ +.image-converter-format-examples-content { + padding: 10px; + border-top: 1px solid var(--background-modifier-border); +} + +.image-converter-format-examples-table { + width: 100%; + margin-top: 10px; + border-collapse: collapse; +} + +.image-converter-format-label, +.image-converter-format-example, +.image-converter-format-description { + border: 1px solid var(--background-modifier-border); + padding: 8px; + text-align: left; + vertical-align: middle; +} + +.image-converter-format-label { + font-weight: bold; + width: 15%; +} + +.image-converter-format-description { + width: 60%; +} + +/* Styling for the
]]> + + + 2025-05-02T02:27:02Z + + + 105.4089937,32.0118974,649.8 + + + + 0 + + + 0.6933308 + + + 1.0 + + + 1746152822431 + + + + + + 1431249940 + + + 2980053 + + + 0 + + + + + + #MarkerStylePicture +

]]> + + + 2025-05-02T02:28:38Z + + + 105.4099675,32.0118284,649.1 + + + + 0 + + + 0.7139197 + + + 1.1 + + + 1746152918429 + + + + + + 1431249932 + + + 1760288 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T02:28:38Z + + + 105.4099675,32.0118284,649.1 + + + + 0 + + + 0.7139197 + + + 1.1 + + + 1746152918429 + + + + + + 1431249929 + + + 2795745 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T02:35:16Z + + + 105.4111555,32.0122912,643.7 + + + + 0 + + + 0.6161225 + + + 1.2 + + + 1746153316449 + + + + + + 1431249923 + + + 7172889 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T02:47:02Z + + + 105.4147275,32.0131278,633.3 + + + + 0 + + + 0.5996514 + + + 1.4 + + + 1746154022458 + + + + + + 1431249919 + + + 6506770 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T03:13:37Z + + + 105.4298054,32.0126898,541.6 + + + + 0 + + + 0.0 + + + 1.2 + + + 1746155617454 + + + + + + 1431249910 + + + 8975799 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T03:19:39Z + + + 105.4324717,32.013114,503.3 + + + + 0 + + + 0.95841277 + + + 1.1 + + + 1746155979448 + + + + + + 1431249902 + + + 8334818 + + + 0 + + + + + + #MarkerStylePicture +
]]> + + + 2025-05-02T04:32:09Z + + + 105.4492512,32.0326423,510.5 + + + + 0 + + + 0.0 + + + 1.0 + + + 1746160329563 + + + + + + 1431249896 + + + 4628942 + + + 0 + + + + + + 轨迹 + + 轨迹片段1 + +
通过“两步路”生成,http://www.2bulu.com
+
上传者:神经蛙_LBL5693567
+
开始时间:2025-05-02 10:01:25
+
结束时间:2025-05-02 12:42:26
+
轨迹点数:768
+
本段里程:8138.0637112146305米
+
最高海拔:693.1463513598043米
+
最低海拔:474.10869380974873米
+
累计爬升:144.71449502117645米
+
累计下降:360.32921432958284米
+
+ + 105.3922978 32.0089378 692.2 + 105.3924152 32.0089706 692.2 + 105.3925258 32.0089922 693.15 + 105.392637 32.0090068 692.78 + 105.3927416 32.0090243 691.41 + 105.3928491 32.0090458 690.16 + 105.3929482 32.0090865 689.02 + 105.3930368 32.0091429 687.5 + 105.3930746 32.0091763 686.56 + 105.3930746 32.0091763 686.56 + 105.393145 32.009235 686.57 + 105.393145 32.009235 686.57 + 105.393225 32.0092983 687.19 + 105.3932754 32.0093828 687.45 + 105.3933282 32.0094633 687.73 + 105.3933755 32.0095452 686.64 + 105.393456 32.0096212 685.89 + 105.3935518 32.0096985 685.59 + 105.3936167 32.0097815 685.12 + 105.3936962 32.0098492 683.61 + 105.3937956 32.0099108 682.62 + 105.3939044 32.0099773 682.14 + 105.3940042 32.0100412 681.91 + 105.3941082 32.0100817 682.46 + 105.3942186 32.0101239 683.47 + 105.3943172 32.0101731 684.08 + 105.3944311 32.0102305 684.95 + 105.394541 32.0102921 686.13 + 105.3946274 32.0103648 687.02 + 105.3947101 32.0104273 687.18 + 105.3948216 32.0104802 685.56 + 105.3949368 32.0105259 682.56 + 105.3950548 32.0105658 678.84 + 105.395158 32.0106094 674.3 + 105.3952578 32.0106586 670.86 + 105.3953605 32.0107102 669.29 + 105.395446 32.0107824 668.52 + 105.3955215 32.0108719 667.69 + 105.3956068 32.0109427 666.75 + 105.3957044 32.0110063 665.82 + 105.3958102 32.0110498 665.08 + 105.3959183 32.0110866 664.49 + 105.3960265 32.0110947 664.36 + 105.3961405 32.0110821 665.07 + 105.3962512 32.0110641 666.76 + 105.3963728 32.0110814 668.63 + 105.3964846 32.0110832 670.46 + 105.3966021 32.0110981 671.94 + 105.3967206 32.0111331 672.87 + 105.3968356 32.0111586 673.06 + 105.3969504 32.0111905 672.17 + 105.3969504 32.0111905 672.17 + 105.3971333 32.0112467 668.0 + 105.3971333 32.0112467 668.0 + 105.3972333 32.01128 668.0 + 105.3973517 32.011326 667.91 + 105.3974655 32.011346 667.43 + 105.3975668 32.0113867 667.81 + 105.3976359 32.0114543 669.18 + 105.3977338 32.0114962 671.25 + 105.3978368 32.0115306 672.52 + 105.3979537 32.0115729 672.77 + 105.3980651 32.0116048 671.23 + 105.398176 32.0116392 668.51 + 105.3982815 32.0116712 667.13 + 105.3983886 32.0116988 666.0 + 105.3984953 32.0116961 665.7 + 105.3986056 32.0116903 666.09 + 105.3987148 32.0116601 666.74 + 105.3988222 32.0116146 667.71 + 105.3989263 32.0115718 668.57 + 105.3990269 32.0115243 668.84 + 105.3991226 32.0114684 668.95 + 105.3992244 32.0114239 668.8 + 105.39932 32.0113794 668.33 + 105.3994359 32.0113485 669.35 + 105.3995569 32.01134 671.0 + 105.3996826 32.0113402 673.02 + 105.3997967 32.0113494 674.78 + 105.3999033 32.0113743 675.99 + 105.4000101 32.0114112 676.86 + 105.4001162 32.0114373 677.74 + 105.4002298 32.0114554 679.1 + 105.4003489 32.0114617 679.74 + 105.4004596 32.0114552 680.15 + 105.4005731 32.0114424 679.92 + 105.4006815 32.0114322 678.83 + 105.4007994 32.0114326 677.61 + 105.4009171 32.0114211 675.33 + 105.4010408 32.0114172 673.38 + 105.4010987 32.0114104 672.44 + 105.4012024 32.0114223 671.82 + 105.4013211 32.0114475 673.32 + 105.4014583 32.0114676 675.2 + 105.4015836 32.0114923 675.63 + 105.401708 32.0114969 675.14 + 105.4018216 32.0114999 674.05 + 105.4019464 32.011502 672.39 + 105.4020745 32.0115069 669.56 + 105.4021898 32.0115168 668.07 + 105.402305 32.0115323 667.48 + 105.4024145 32.0115271 667.23 + 105.4024131 32.0114513 666.79 + 105.402492 32.0114106 666.15 + 105.402594 32.0114235 665.91 + 105.4027222 32.011445 665.35 + 105.4028343 32.0114795 665.8 + 105.4029494 32.0114793 666.14 + 105.4030715 32.0114834 666.3 + 105.4031907 32.0114938 666.43 + 105.4033171 32.0115056 667.75 + 105.4034322 32.0115239 668.89 + 105.4035465 32.0115407 669.15 + 105.403667 32.0115552 668.87 + 105.4037789 32.01156 667.34 + 105.4038923 32.011555 665.99 + 105.4040117 32.0115545 664.14 + 105.4041234 32.0115602 661.63 + 105.4042382 32.0115559 660.07 + 105.4043482 32.0115614 659.82 + 105.4044589 32.011571 659.9 + 105.4045651 32.011588 659.86 + 105.4046811 32.0116173 660.48 + 105.4048034 32.0116204 660.53 + 105.4049201 32.0116193 659.83 + 105.405038 32.0116087 659.26 + 105.4051588 32.0116005 659.28 + 105.405277 32.0116102 659.67 + 105.4053939 32.0116268 660.2 + 105.4055167 32.0116201 660.07 + 105.4056279 32.0116104 660.43 + 105.4057422 32.0116167 660.16 + 105.4058556 32.0116069 660.09 + 105.4059737 32.0115969 658.55 + 105.406095 32.0116138 657.49 + 105.4062121 32.0116471 656.55 + 105.4063413 32.011665 655.28 + 105.4064573 32.0116644 654.47 + 105.406573 32.0116834 654.87 + 105.4066865 32.0116981 656.0 + 105.4068018 32.0116918 656.43 + 105.4069231 32.0116791 656.55 + 105.4070454 32.0116776 657.3 + 105.4071551 32.0116913 658.25 + 105.4072814 32.0116891 658.14 + 105.4073992 32.0117065 657.78 + 105.4075121 32.0117264 655.59 + 105.4076308 32.0117564 653.36 + 105.4077421 32.0117682 652.13 + 105.4078504 32.0117738 652.16 + 105.4079617 32.0117701 652.39 + 105.4080721 32.0117849 652.01 + 105.4081795 32.0118061 651.36 + 105.408296 32.0118115 650.22 + 105.4084209 32.0118242 648.62 + 105.4085361 32.0118252 647.1 + 105.4086633 32.0118304 647.53 + 105.4087825 32.0118454 649.45 + 105.408887 32.0118752 650.81 + 105.4089937 32.0118974 651.06 + 105.4090721 32.0118419 650.52 + 105.4091543 32.0117804 649.61 + 105.4092571 32.0117559 649.05 + 105.4093832 32.0117613 648.51 + 105.409507 32.0117756 647.86 + 105.4096334 32.0117863 647.15 + 105.4097524 32.0117752 647.13 + 105.4098606 32.0118057 646.77 + 105.4099675 32.0118284 646.83 + 105.4099675 32.0118284 646.83 + 105.4099675 32.0118284 646.83 + 105.4099675 32.0118284 646.83 + 105.4100683 32.01188 647.8 + 105.4100683 32.01188 647.8 + 105.4101517 32.0119667 647.54 + 105.4102583 32.012 649.85 + 105.4103594 32.0120573 651.94 + 105.4104645 32.0121124 653.3 + 105.4105333 32.0121344 653.81 + 105.4106316 32.0121867 653.38 + 105.4107461 32.0122014 651.92 + 105.410861 32.0121829 651.44 + 105.4109661 32.0121988 651.38 + 105.4110608 32.0122464 650.06 + 105.4111555 32.0122912 649.04 + 105.4112572 32.0123168 646.74 + 105.411373 32.012327 645.0 + 105.4114838 32.0123233 643.5 + 105.4115694 32.0123708 642.85 + 105.4116769 32.0123983 643.09 + 105.4117748 32.0124515 643.48 + 105.4118613 32.0125266 644.78 + 105.4119613 32.012607 646.34 + 105.412052 32.0126736 647.7 + 105.4121289 32.0127414 648.64 + 105.4122475 32.0127697 648.97 + 105.4122345 32.012717 647.74 + 105.4122345 32.012717 647.74 + 105.4122592 32.0127571 646.77 + 105.4122592 32.0127571 646.77 + 105.4123466 32.0128192 645.97 + 105.4124657 32.0128534 644.52 + 105.4125835 32.0128776 642.1 + 105.4127052 32.0128959 641.24 + 105.4128141 32.0129277 641.05 + 105.4129261 32.012969 641.72 + 105.4130343 32.0129971 641.11 + 105.413136 32.0130271 640.12 + 105.4132342 32.013062 640.02 + 105.4133116 32.013125 639.15 + 105.4133743 32.0131993 638.27 + 105.4134692 32.013241 637.47 + 105.4135775 32.0132555 636.75 + 105.4136872 32.0132486 635.39 + 105.4138117 32.013245 634.19 + 105.4139267 32.013215 633.42 + 105.4140332 32.0131568 632.51 + 105.4141473 32.0131451 630.35 + 105.4142623 32.0131452 628.48 + 105.4143865 32.0131486 627.28 + 105.4145025 32.0131429 626.9 + 105.4146149 32.0131442 627.98 + 105.4147275 32.0131278 629.15 + 105.4148416 32.0130884 630.93 + 105.4149602 32.0130788 632.64 + 105.4150678 32.0130955 632.36 + 105.41519 32.0131362 630.83 + 105.4153042 32.0131825 626.86 + 105.4154124 32.0132548 624.0 + 105.4155174 32.0133289 622.62 + 105.4156115 32.0134077 623.21 + 105.4156896 32.0134819 625.49 + 105.4157826 32.0135471 627.47 + 105.4158798 32.0136152 628.17 + 105.4159685 32.0136772 627.5 + 105.4160551 32.0137344 626.12 + 105.4161398 32.013794 625.98 + 105.4162305 32.0138599 625.26 + 105.4162798 32.013942 623.73 + 105.4163037 32.0140373 622.77 + 105.4163105 32.0141326 621.92 + 105.4163737 32.0142028 621.05 + 105.4164309 32.0142882 619.74 + 105.4164566 32.014384 618.39 + 105.4164638 32.0144782 617.58 + 105.4164945 32.0145711 617.29 + 105.4165605 32.0146621 617.29 + 105.4166503 32.0147409 617.12 + 105.4167392 32.0148254 616.42 + 105.4168153 32.0149114 615.73 + 105.4168854 32.0150042 615.41 + 105.4169785 32.0150482 615.84 + 105.4170741 32.015104 616.34 + 105.4171594 32.015164 616.75 + 105.4172629 32.0152138 616.39 + 105.4173632 32.0152561 615.96 + 105.4174702 32.0152638 615.89 + 105.417578 32.0152884 615.72 + 105.4176882 32.0153052 615.71 + 105.4178026 32.0153156 615.41 + 105.4179246 32.0153344 615.19 + 105.4180401 32.0153405 614.08 + 105.4181527 32.0153469 613.18 + 105.418278 32.0153253 612.63 + 105.4183994 32.0153276 611.63 + 105.4185274 32.0153165 611.27 + 105.4186504 32.0153101 610.68 + 105.4187647 32.0153135 610.17 + 105.418886 32.0153192 609.5 + 105.4190078 32.0153315 608.9 + 105.4191284 32.015327 609.2 + 105.4192335 32.0152833 610.19 + 105.4193317 32.0152221 611.48 + 105.419427 32.0151682 611.15 + 105.419507 32.015093 608.8 + 105.4195895 32.015017 606.18 + 105.4196829 32.0149562 604.08 + 105.4197707 32.0148942 602.32 + 105.4198587 32.014814 600.51 + 105.4199205 32.0147257 598.91 + 105.4199628 32.0146341 597.66 + 105.4200295 32.0145498 596.21 + 105.420132 32.0144913 595.65 + 105.4202122 32.0144272 595.24 + 105.420297 32.014366 595.18 + 105.4203887 32.0143015 594.8 + 105.4204689 32.0142154 594.41 + 105.4205194 32.0141176 593.72 + 105.4205794 32.014028 592.55 + 105.4206572 32.0139527 591.37 + 105.4207558 32.0138965 591.17 + 105.4207798 32.0138943 591.48 + 105.4208589 32.0138791 592.44 + 105.4209427 32.0138166 592.21 + 105.4209855 32.0137143 590.83 + 105.421025 32.0136107 589.18 + 105.4211064 32.0135511 588.2 + 105.4212166 32.0135081 588.41 + 105.4213245 32.0134697 589.27 + 105.421434 32.0134514 590.27 + 105.4215529 32.0134492 591.32 + 105.4216858 32.0134587 592.47 + 105.4218142 32.0134895 593.73 + 105.4219346 32.0135278 593.67 + 105.4220555 32.0135792 593.3 + 105.4221668 32.0136278 592.83 + 105.4222483 32.0136951 592.64 + 105.4223396 32.0137498 591.42 + 105.4224439 32.0137822 589.65 + 105.422551 32.0138065 588.12 + 105.4226648 32.0138015 587.3 + 105.4227983 32.0137906 586.78 + 105.4229133 32.0138148 585.63 + 105.4230227 32.0138621 583.9 + 105.4231354 32.0138978 582.56 + 105.4232609 32.0139112 581.07 + 105.4233837 32.0139086 579.36 + 105.4235086 32.0139049 577.92 + 105.4236228 32.0138885 576.88 + 105.4237379 32.0138394 576.03 + 105.4238299 32.0137658 574.29 + 105.423915 32.0136893 572.1 + 105.4239776 32.0136019 569.82 + 105.424057 32.0135371 568.01 + 105.4241505 32.0134932 565.77 + 105.4242367 32.0134314 564.32 + 105.4243082 32.0133492 563.19 + 105.4244019 32.0132823 562.59 + 105.424517 32.013261 562.81 + 105.424638 32.01326 563.58 + 105.4247544 32.013275 563.59 + 105.4248643 32.0132897 563.68 + 105.4249664 32.0133234 563.09 + 105.4250771 32.0133753 562.32 + 105.4251802 32.0134261 561.62 + 105.4252841 32.0134732 561.44 + 105.4253923 32.0135043 562.11 + 105.4255035 32.0135218 562.67 + 105.4256118 32.013515 562.55 + 105.4257301 32.0134942 562.62 + 105.4258408 32.0134852 561.83 + 105.4259457 32.0135086 561.22 + 105.4260598 32.0135266 560.52 + 105.4261715 32.0135573 560.21 + 105.426292 32.0135596 560.03 + 105.4264082 32.0135579 560.32 + 105.4265235 32.0135346 560.83 + 105.4266298 32.0135066 561.5 + 105.4267302 32.013466 561.07 + 105.4268441 32.0134307 559.88 + 105.4269585 32.013381 558.38 + 105.4270626 32.0133352 556.41 + 105.4271564 32.0132831 555.42 + 105.4272695 32.0132315 554.94 + 105.4273766 32.0131818 554.06 + 105.4274734 32.0131343 552.66 + 105.4275902 32.0130877 550.87 + 105.4277073 32.0130338 550.5 + 105.4278225 32.0129808 551.57 + 105.4279266 32.012931 552.27 + 105.428044 32.0128826 552.54 + 105.4281555 32.012832 552.95 + 105.4282732 32.012798 554.39 + 105.4283745 32.0127601 555.56 + 105.4284908 32.012755 555.92 + 105.4286032 32.0127528 556.17 + 105.4287289 32.0127473 556.1 + 105.4288394 32.0127231 555.32 + 105.4289535 32.0126853 554.02 + 105.4290645 32.0126397 550.7 + 105.4291718 32.0125885 546.18 + 105.4292793 32.0125715 542.06 + 105.4293908 32.0125915 539.15 + 105.4295052 32.01263 537.93 + 105.4296231 32.0126887 537.53 + 105.4297407 32.0127072 537.0 + 105.4298054 32.0126898 537.56 + 105.4299094 32.012674 539.3 + 105.4300168 32.0126687 539.73 + 105.4301335 32.0126473 539.42 + 105.4302532 32.0126262 538.89 + 105.4303768 32.0126249 539.07 + 105.4304938 32.0126602 538.39 + 105.4306342 32.012688 538.22 + 105.4307519 32.0127018 537.53 + 105.4308625 32.0127321 536.35 + 105.4309725 32.0127626 534.61 + 105.4310891 32.012781 533.36 + 105.4312036 32.0128147 532.26 + 105.4313008 32.0128782 531.59 + 105.4314056 32.0128869 531.59 + 105.4315028 32.0128523 531.21 + 105.4316049 32.0128139 530.69 + 105.4317167 32.0127837 530.13 + 105.4318283 32.0127574 529.3 + 105.4319331 32.0127105 528.35 + 105.4320475 32.0127013 527.73 + 105.4320794 32.0127697 526.94 + 105.4320142 32.0128513 524.0 + 105.4319906 32.0129564 521.25 + 105.4320461 32.0130367 518.6 + 105.4321486 32.0130547 515.03 + 105.4322648 32.0130497 511.96 + 105.4323778 32.0130622 508.97 + 105.4324717 32.013114 506.66 + 105.4325382 32.0131896 505.21 + 105.4325588 32.0132846 503.44 + 105.4325216 32.0133745 503.94 + 105.4324417 32.0134551 503.45 + 105.4323774 32.0135377 501.62 + 105.4323577 32.0136299 499.89 + 105.4323171 32.0137241 499.64 + 105.432295 32.0138173 500.83 + 105.4323364 32.0138972 503.48 + 105.4324389 32.0139245 506.67 + 105.4325561 32.0139294 510.0 + 105.4326807 32.0139269 512.45 + 105.4327931 32.0138958 515.87 + 105.4329125 32.0138349 518.59 + 105.433025 32.0137958 521.26 + 105.4331394 32.0137965 524.03 + 105.4332495 32.0138071 524.88 + 105.4333478 32.0138494 525.45 + 105.4333982 32.0139293 525.99 + 105.4334356 32.0140366 524.79 + 105.4334889 32.0141355 524.32 + 105.4335739 32.0141991 524.53 + 105.4336786 32.0142562 525.5 + 105.4337913 32.0142932 527.48 + 105.4339063 32.0143265 529.6 + 105.4340131 32.0143726 531.92 + 105.4340961 32.0144481 534.06 + 105.4341353 32.0145432 534.68 + 105.4341773 32.0146361 535.68 + 105.434256 32.0147163 535.64 + 105.4343445 32.0147946 535.67 + 105.4344454 32.014855 535.34 + 105.4345259 32.0149215 534.46 + 105.4345763 32.0150064 534.43 + 105.4346262 32.0150932 533.9 + 105.4346802 32.0151761 533.04 + 105.434713 32.0152733 533.41 + 105.4347847 32.0153556 535.13 + 105.4348244 32.0154416 537.4 + 105.4348809 32.0155256 537.48 + 105.4349134 32.0156152 537.75 + 105.4349491 32.0157131 538.59 + 105.4349822 32.0158113 539.54 + 105.435026 32.0159028 540.17 + 105.4350627 32.0159803 540.14 + 105.4350627 32.0159803 540.14 + 105.4350965 32.0160828 540.42 + 105.4350965 32.0160828 540.42 + 105.4351545 32.0161766 540.76 + 105.4352077 32.0162688 541.25 + 105.4352606 32.0163605 541.27 + 105.4353292 32.0164444 541.33 + 105.4353859 32.016532 541.62 + 105.4354347 32.016615 542.34 + 105.4354946 32.0166989 543.48 + 105.4355503 32.0167859 544.09 + 105.4356141 32.0168679 545.04 + 105.4356772 32.0169505 545.93 + 105.4357334 32.0170322 547.21 + 105.4358018 32.0171137 548.06 + 105.4358701 32.0171877 548.29 + 105.4359314 32.017269 548.64 + 105.435975 32.0173685 549.53 + 105.4360073 32.0174656 550.85 + 105.436034 32.0175634 552.98 + 105.436065 32.0176709 554.32 + 105.4360959 32.0177717 554.7 + 105.436112 32.0178694 554.91 + 105.4361104 32.0179672 554.82 + 105.4361207 32.0180702 555.11 + 105.436148 32.0181752 555.41 + 105.4361993 32.0182732 555.71 + 105.4362459 32.0183672 555.92 + 105.4362977 32.0184586 557.03 + 105.4363533 32.0185471 558.05 + 105.4364222 32.0186384 558.24 + 105.4364928 32.0187262 558.48 + 105.4365593 32.0188115 559.09 + 105.4365986 32.0189036 560.13 + 105.4366066 32.0190008 560.98 + 105.4366083 32.0190948 561.59 + 105.4366328 32.0191921 562.54 + 105.4366659 32.0192818 563.77 + 105.4367007 32.0193724 565.5 + 105.436719 32.0194673 566.66 + 105.4367284 32.0195614 566.21 + 105.436769 32.0196562 567.32 + 105.4368019 32.0197464 567.96 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368268 32.0197921 568.28 + 105.4368833 32.0198567 568.07 + 105.4368833 32.0198567 568.07 + 105.4369533 32.0199333 569.8 + 105.4370431 32.0200029 571.78 + 105.4371363 32.0200765 572.99 + 105.4372182 32.0201486 573.13 + 105.4373007 32.0202291 573.29 + 105.4373698 32.0203076 573.42 + 105.4374667 32.02037 573.5 + 105.4375419 32.0204438 573.76 + 105.4375982 32.020534 575.32 + 105.4376857 32.0206074 576.13 + 105.4377659 32.0206749 576.98 + 105.4378525 32.0207431 578.23 + 105.4379475 32.0207884 579.6 + 105.4380515 32.020833 580.67 + 105.4381456 32.0208825 581.24 + 105.4382126 32.0209521 581.27 + 105.4382974 32.0210292 581.93 + 105.4383776 32.0211068 582.73 + 105.4384311 32.0211923 583.92 + 105.4384899 32.021274 584.13 + 105.4385272 32.021381 583.56 + 105.4386022 32.0214572 584.01 + 105.4386499 32.021538 585.42 + 105.4386838 32.0216265 585.41 + 105.438721 32.0217118 583.6 + 105.4387732 32.0217918 584.2 + 105.4388562 32.0218511 585.92 + 105.4389513 32.0219107 588.15 + 105.4390424 32.0219842 589.98 + 105.4391417 32.0220497 590.07 + 105.4392208 32.0221256 590.17 + 105.4392703 32.0222106 589.28 + 105.439336 32.0222871 588.6 + 105.4394083 32.0223711 587.48 + 105.4394945 32.0224554 587.19 + 105.4395705 32.0225281 588.18 + 105.4396243 32.0226077 589.31 + 105.4397101 32.0226778 590.12 + 105.4397663 32.0227644 591.23 + 105.4398307 32.0228411 592.38 + 105.4399128 32.0229112 592.82 + 105.4400166 32.0229651 593.67 + 105.4401211 32.0230025 594.76 + 105.4402229 32.0230473 594.35 + 105.4403316 32.0230815 594.2 + 105.4404387 32.0231208 594.76 + 105.4405234 32.0231779 595.77 + 105.4405634 32.0232591 596.47 + 105.4405944 32.023347 598.46 + 105.4406051 32.0234481 599.73 + 105.4406456 32.0235476 601.82 + 105.4406754 32.0236464 602.59 + 105.4407172 32.0237468 602.68 + 105.4407624 32.0238387 602.3 + 105.4407933 32.0239397 602.04 + 105.4407998 32.0240344 604.05 + 105.4408068 32.0241352 605.75 + 105.4408117 32.0242372 606.46 + 105.4408656 32.0243306 606.82 + 105.4409342 32.0244056 606.9 + 105.441012 32.0244755 607.24 + 105.4411099 32.0245348 607.96 + 105.441206 32.0245911 609.14 + 105.4412807 32.0246636 609.77 + 105.4413467 32.0247366 610.68 + 105.4414302 32.0248054 612.93 + 105.4415022 32.0248838 614.51 + 105.4415556 32.0249744 616.05 + 105.4416302 32.025049 619.43 + 105.4417137 32.0251181 620.96 + 105.4418075 32.0251842 621.97 + 105.4418629 32.0252674 623.36 + 105.4419409 32.0253459 624.28 + 105.4420251 32.0254096 625.58 + 105.4421172 32.0254676 626.41 + 105.4422181 32.0255244 626.75 + 105.4423264 32.0255801 627.59 + 105.4424379 32.0256296 628.41 + 105.442542 32.025686 629.35 + 105.4426267 32.0257503 630.53 + 105.4426955 32.0258225 630.99 + 105.4427458 32.0259045 631.81 + 105.4428058 32.0259844 633.83 + 105.44286 32.0260752 636.35 + 105.4429223 32.0261558 640.46 + 105.4429808 32.0262445 643.1 + 105.4430501 32.0263261 644.61 + 105.4431261 32.0264124 645.29 + 105.4432002 32.0264893 645.98 + 105.4432567 32.0265676 646.21 + 105.4433316 32.0266318 645.82 + 105.443384 32.0267199 645.34 + 105.4434526 32.0268074 646.7 + 105.4435319 32.0268852 648.68 + 105.4435708 32.0269715 649.5 + 105.4435767 32.0270612 651.35 + 105.4436186 32.0271469 652.71 + 105.4436702 32.0272382 652.53 + 105.4437348 32.0273279 652.22 + 105.4438084 32.0274017 651.78 + 105.4438791 32.0274759 649.81 + 105.443969 32.0275247 647.1 + 105.443969 32.0275247 647.1 + 105.4441606 32.0276281 642.92 + 105.4441606 32.0276281 642.92 + 105.4442451 32.0276904 638.61 + 105.4443256 32.0277615 635.94 + 105.4444037 32.0278355 634.29 + 105.4444837 32.0279025 633.17 + 105.4445398 32.027979 631.47 + 105.4446085 32.0280528 630.15 + 105.4446794 32.0281314 629.01 + 105.4447748 32.0281905 627.76 + 105.4448742 32.0282558 626.1 + 105.4449836 32.0283219 624.25 + 105.4450819 32.0283858 622.03 + 105.4451714 32.0284452 620.56 + 105.4452301 32.0285232 619.72 + 105.4453007 32.0285932 618.81 + 105.4453099 32.0286808 617.6 + 105.4452482 32.0287635 616.35 + 105.4451567 32.0288422 615.25 + 105.4451453 32.0289342 614.24 + 105.4452128 32.0290061 612.93 + 105.4452973 32.0290863 611.41 + 105.4454102 32.0291089 609.43 + 105.4455335 32.0291091 606.32 + 105.4456458 32.0291381 603.47 + 105.4457566 32.0291704 601.38 + 105.4458649 32.0291964 599.58 + 105.4459758 32.0292199 597.35 + 105.4460976 32.0292102 595.01 + 105.4460583 32.0292817 593.5 + 105.4460217 32.0293767 593.84 + 105.4460259 32.0294844 593.35 + 105.4460592 32.0295776 592.21 + 105.4460542 32.0296776 590.18 + 105.4460553 32.0297741 585.85 + 105.4460592 32.0298767 582.6 + 105.4460955 32.0299754 579.46 + 105.4461473 32.0300612 575.61 + 105.4461603 32.0301485 572.16 + 105.4461824 32.0302347 568.48 + 105.4462114 32.0303245 565.56 + 105.446208 32.0304172 562.91 + 105.446215 32.0305157 560.54 + 105.4462462 32.030615 558.2 + 105.4462941 32.0307067 554.97 + 105.4463718 32.0307852 551.72 + 105.4464728 32.030848 548.05 + 105.446551 32.0309209 544.16 + 105.446637 32.0309813 542.15 + 105.4467421 32.0310197 540.67 + 105.4468449 32.0310697 538.88 + 105.4469431 32.0311167 536.74 + 105.4470402 32.0311603 535.21 + 105.4471444 32.031203 534.09 + 105.4472563 32.0312295 532.63 + 105.447363 32.0312714 530.08 + 105.4474498 32.0313464 527.94 + 105.4475305 32.0314231 525.34 + 105.4476225 32.0314696 523.0 + 105.4477108 32.0315203 521.37 + 105.4478051 32.031561 519.87 + 105.447903 32.0316072 517.82 + 105.4479994 32.031656 515.66 + 105.4480925 32.0317097 513.4 + 105.4482042 32.0317313 510.65 + 105.4483142 32.0317157 508.73 + 105.4484251 32.0316769 508.07 + 105.4485233 32.0316287 508.52 + 105.4485233 32.0316287 508.52 + 105.4485233 32.0316287 508.52 + 105.4485233 32.0316287 508.52 + 105.44861 32.031695 507.69 + 105.44861 32.031695 507.69 + 105.4486783 32.0317717 505.97 + 105.4487636 32.0318399 505.43 + 105.4488364 32.031922 505.76 + 105.4489305 32.0319897 505.91 + 105.4490474 32.0320293 505.95 + 105.4491605 32.0320403 506.06 + 105.4492653 32.0320752 507.02 + 105.4493714 32.0321314 507.7 + 105.4494743 32.0321841 506.84 + 105.4495095 32.0322683 505.7 + 105.4494789 32.0323584 504.54 + 105.4494155 32.0324501 504.22 + 105.4493545 32.0325373 504.38 + 105.4492866 32.0326169 505.51 + 105.4492512 32.0326423 507.44 + 105.4491955 32.0327045 508.76 + 105.4492417 32.0327846 508.13 + 105.4493232 32.0328534 508.03 + 105.4494399 32.0328955 508.1 + 105.4495698 32.0328941 508.88 + 105.4496887 32.0328695 509.19 + 105.4498032 32.0328859 509.06 + 105.4499212 32.0329114 508.82 + 105.4500389 32.0329146 509.8 + 105.4501575 32.0329025 510.66 + 105.4502737 32.0328868 510.33 + 105.4504051 32.0328799 509.42 + 105.4505209 32.0328869 508.38 + 105.450644 32.0328941 507.7 + 105.4507651 32.0329131 507.31 + 105.4508791 32.0329422 506.23 + 105.4509892 32.0329716 504.07 + 105.4510858 32.0330177 501.67 + 105.4511879 32.0330843 499.4 + 105.4512805 32.033161 497.25 + 105.4513723 32.0332308 495.38 + 105.4514607 32.0332992 493.8 + 105.451552 32.0333741 492.77 + 105.4516747 32.0334124 492.18 + 105.4517965 32.0334432 492.57 + 105.4519075 32.0334617 492.59 + 105.4520312 32.0334784 491.99 + 105.4521497 32.0334833 490.4 + 105.4522569 32.0334396 488.51 + 105.4523587 32.033388 487.52 + 105.4524691 32.0333443 486.78 + 105.4525758 32.0333181 486.27 + 105.4527009 32.0333204 487.44 + 105.4528318 32.0333324 487.94 + 105.4529499 32.033355 487.88 + 105.4530689 32.0333685 487.37 + 105.4531772 32.0334025 486.78 + 105.4532829 32.0334461 486.88 + 105.4533983 32.0334745 487.27 + 105.4535303 32.0334887 486.55 + 105.4536443 32.0334766 486.36 + 105.4537518 32.0334594 485.43 + 105.453865 32.0334487 483.4 + 105.453967 32.033409 482.06 + 105.454095 32.0334154 482.38 + 105.4542106 32.0334304 481.66 + 105.454333 32.0334532 480.51 + 105.4544506 32.0334588 479.39 + 105.454561 32.0334644 478.96 + 105.4546777 32.0334642 480.31 + 105.4547971 32.0334595 480.35 + 105.4549049 32.0334736 480.54 + 105.4549994 32.0335151 480.18 + 105.4550821 32.0335746 479.63 + 105.4551816 32.0336437 479.19 + 105.4552783 32.0336981 478.76 + 105.4553863 32.0337493 478.18 + 105.4554858 32.0337992 477.84 + 105.4555942 32.0338351 477.48 + 105.4558178 32.0337607 476.59 + 105.4557817 32.0338663 475.17 + 105.4558324 32.033945 474.11 + 105.4559219 32.0340062 474.79 + 105.4560277 32.0339853 475.1 + 105.4561442 32.0339506 475.92 + 105.4562503 32.0338952 476.25 + 105.456361 32.033863 476.92 + 105.456361 32.033863 476.92 + 2025-05-02T02:01:25Z + 2025-05-02T02:01:33Z + 2025-05-02T02:01:41Z + 2025-05-02T02:01:49Z + 2025-05-02T02:01:57Z + 2025-05-02T02:02:05Z + 2025-05-02T02:02:13Z + 2025-05-02T02:02:21Z + 2025-05-02T02:02:31Z + 2025-05-02T02:03:01Z + 2025-05-02T02:03:25Z + 2025-05-02T02:03:35Z + 2025-05-02T02:03:47Z + 2025-05-02T02:03:57Z + 2025-05-02T02:04:05Z + 2025-05-02T02:04:15Z + 2025-05-02T02:04:25Z + 2025-05-02T02:04:33Z + 2025-05-02T02:04:45Z + 2025-05-02T02:04:55Z + 2025-05-02T02:05:03Z + 2025-05-02T02:05:13Z + 2025-05-02T02:05:21Z + 2025-05-02T02:05:29Z + 2025-05-02T02:05:39Z + 2025-05-02T02:05:47Z + 2025-05-02T02:05:57Z + 2025-05-02T02:06:05Z + 2025-05-02T02:06:15Z + 2025-05-02T02:06:23Z + 2025-05-02T02:06:31Z + 2025-05-02T02:06:37Z + 2025-05-02T02:06:45Z + 2025-05-02T02:06:53Z + 2025-05-02T02:07:01Z + 2025-05-02T02:07:09Z + 2025-05-02T02:07:17Z + 2025-05-02T02:07:25Z + 2025-05-02T02:07:35Z + 2025-05-02T02:07:43Z + 2025-05-02T02:07:51Z + 2025-05-02T02:07:59Z + 2025-05-02T02:08:07Z + 2025-05-02T02:08:15Z + 2025-05-02T02:08:25Z + 2025-05-02T02:08:37Z + 2025-05-02T02:08:45Z + 2025-05-02T02:08:49Z + 2025-05-02T02:08:55Z + 2025-05-02T02:09:05Z + 2025-05-02T02:09:15Z + 2025-05-02T02:09:15Z + 2025-05-02T02:09:29Z + 2025-05-02T02:09:31Z + 2025-05-02T02:09:39Z + 2025-05-02T02:09:51Z + 2025-05-02T02:10:01Z + 2025-05-02T02:10:13Z + 2025-05-02T02:10:23Z + 2025-05-02T02:10:33Z + 2025-05-02T02:10:43Z + 2025-05-02T02:10:51Z + 2025-05-02T02:11:01Z + 2025-05-02T02:11:11Z + 2025-05-02T02:11:19Z + 2025-05-02T02:11:27Z + 2025-05-02T02:11:35Z + 2025-05-02T02:11:43Z + 2025-05-02T02:11:51Z + 2025-05-02T02:11:59Z + 2025-05-02T02:12:07Z + 2025-05-02T02:12:15Z + 2025-05-02T02:12:23Z + 2025-05-02T02:12:33Z + 2025-05-02T02:12:41Z + 2025-05-02T02:12:51Z + 2025-05-02T02:12:59Z + 2025-05-02T02:13:09Z + 2025-05-02T02:13:17Z + 2025-05-02T02:13:25Z + 2025-05-02T02:13:35Z + 2025-05-02T02:13:43Z + 2025-05-02T02:13:53Z + 2025-05-02T02:14:01Z + 2025-05-02T02:14:09Z + 2025-05-02T02:14:17Z + 2025-05-02T02:14:25Z + 2025-05-02T02:14:33Z + 2025-05-02T02:14:43Z + 2025-05-02T02:14:53Z + 2025-05-02T02:15:05Z + 2025-05-02T02:15:21Z + 2025-05-02T02:15:28Z + 2025-05-02T02:15:36Z + 2025-05-02T02:15:44Z + 2025-05-02T02:15:54Z + 2025-05-02T02:16:02Z + 2025-05-02T02:16:14Z + 2025-05-02T02:16:24Z + 2025-05-02T02:16:32Z + 2025-05-02T02:16:40Z + 2025-05-02T02:16:50Z + 2025-05-02T02:17:16Z + 2025-05-02T02:17:30Z + 2025-05-02T02:17:40Z + 2025-05-02T02:17:52Z + 2025-05-02T02:18:02Z + 2025-05-02T02:18:14Z + 2025-05-02T02:18:24Z + 2025-05-02T02:18:36Z + 2025-05-02T02:18:44Z + 2025-05-02T02:18:52Z + 2025-05-02T02:19:02Z + 2025-05-02T02:19:12Z + 2025-05-02T02:19:22Z + 2025-05-02T02:19:30Z + 2025-05-02T02:19:40Z + 2025-05-02T02:19:48Z + 2025-05-02T02:20:00Z + 2025-05-02T02:20:12Z + 2025-05-02T02:20:46Z + 2025-05-02T02:20:54Z + 2025-05-02T02:21:04Z + 2025-05-02T02:21:14Z + 2025-05-02T02:21:24Z + 2025-05-02T02:21:36Z + 2025-05-02T02:21:46Z + 2025-05-02T02:21:54Z + 2025-05-02T02:22:02Z + 2025-05-02T02:22:12Z + 2025-05-02T02:22:22Z + 2025-05-02T02:22:30Z + 2025-05-02T02:22:42Z + 2025-05-02T02:22:50Z + 2025-05-02T02:23:00Z + 2025-05-02T02:23:10Z + 2025-05-02T02:23:20Z + 2025-05-02T02:23:30Z + 2025-05-02T02:23:38Z + 2025-05-02T02:23:48Z + 2025-05-02T02:23:58Z + 2025-05-02T02:24:10Z + 2025-05-02T02:24:20Z + 2025-05-02T02:24:28Z + 2025-05-02T02:24:38Z + 2025-05-02T02:24:46Z + 2025-05-02T02:24:56Z + 2025-05-02T02:25:06Z + 2025-05-02T02:25:16Z + 2025-05-02T02:25:24Z + 2025-05-02T02:25:32Z + 2025-05-02T02:25:40Z + 2025-05-02T02:25:50Z + 2025-05-02T02:25:58Z + 2025-05-02T02:26:10Z + 2025-05-02T02:26:20Z + 2025-05-02T02:26:30Z + 2025-05-02T02:26:38Z + 2025-05-02T02:26:48Z + 2025-05-02T02:27:02Z + 2025-05-02T02:27:12Z + 2025-05-02T02:27:22Z + 2025-05-02T02:27:32Z + 2025-05-02T02:27:42Z + 2025-05-02T02:27:52Z + 2025-05-02T02:28:04Z + 2025-05-02T02:28:14Z + 2025-05-02T02:28:24Z + 2025-05-02T02:28:38Z + 2025-05-02T02:29:14Z + 2025-05-02T02:29:18Z + 2025-05-02T02:30:06Z + 2025-05-02T02:30:08Z + 2025-05-02T02:30:46Z + 2025-05-02T02:31:52Z + 2025-05-02T02:32:02Z + 2025-05-02T02:32:14Z + 2025-05-02T02:32:24Z + 2025-05-02T02:32:40Z + 2025-05-02T02:33:26Z + 2025-05-02T02:34:02Z + 2025-05-02T02:34:14Z + 2025-05-02T02:34:48Z + 2025-05-02T02:35:02Z + 2025-05-02T02:35:16Z + 2025-05-02T02:35:54Z + 2025-05-02T02:36:44Z + 2025-05-02T02:37:02Z + 2025-05-02T02:37:16Z + 2025-05-02T02:37:26Z + 2025-05-02T02:37:38Z + 2025-05-02T02:37:48Z + 2025-05-02T02:38:00Z + 2025-05-02T02:38:08Z + 2025-05-02T02:38:16Z + 2025-05-02T02:38:56Z + 2025-05-02T02:39:14Z + 2025-05-02T02:39:48Z + 2025-05-02T02:39:58Z + 2025-05-02T02:40:04Z + 2025-05-02T02:40:12Z + 2025-05-02T02:40:24Z + 2025-05-02T02:40:34Z + 2025-05-02T02:40:46Z + 2025-05-02T02:40:58Z + 2025-05-02T02:41:18Z + 2025-05-02T02:41:26Z + 2025-05-02T02:41:38Z + 2025-05-02T02:41:58Z + 2025-05-02T02:42:08Z + 2025-05-02T02:42:42Z + 2025-05-02T02:42:56Z + 2025-05-02T02:43:14Z + 2025-05-02T02:43:24Z + 2025-05-02T02:44:50Z + 2025-05-02T02:45:02Z + 2025-05-02T02:45:46Z + 2025-05-02T02:45:56Z + 2025-05-02T02:46:08Z + 2025-05-02T02:46:28Z + 2025-05-02T02:46:38Z + 2025-05-02T02:46:50Z + 2025-05-02T02:47:02Z + 2025-05-02T02:47:20Z + 2025-05-02T02:47:34Z + 2025-05-02T02:47:52Z + 2025-05-02T02:48:18Z + 2025-05-02T02:48:30Z + 2025-05-02T02:48:40Z + 2025-05-02T02:48:50Z + 2025-05-02T02:49:02Z + 2025-05-02T02:49:12Z + 2025-05-02T02:49:24Z + 2025-05-02T02:49:34Z + 2025-05-02T02:49:44Z + 2025-05-02T02:49:56Z + 2025-05-02T02:50:06Z + 2025-05-02T02:50:18Z + 2025-05-02T02:50:30Z + 2025-05-02T02:50:40Z + 2025-05-02T02:50:48Z + 2025-05-02T02:50:56Z + 2025-05-02T02:51:10Z + 2025-05-02T02:51:18Z + 2025-05-02T02:51:28Z + 2025-05-02T02:51:38Z + 2025-05-02T02:51:48Z + 2025-05-02T02:52:00Z + 2025-05-02T02:52:08Z + 2025-05-02T02:52:16Z + 2025-05-02T02:52:24Z + 2025-05-02T02:52:32Z + 2025-05-02T02:52:42Z + 2025-05-02T02:52:52Z + 2025-05-02T02:53:04Z + 2025-05-02T02:53:14Z + 2025-05-02T02:53:26Z + 2025-05-02T02:53:36Z + 2025-05-02T02:53:44Z + 2025-05-02T02:53:52Z + 2025-05-02T02:54:02Z + 2025-05-02T02:54:10Z + 2025-05-02T02:54:18Z + 2025-05-02T02:54:28Z + 2025-05-02T02:54:38Z + 2025-05-02T02:54:46Z + 2025-05-02T02:54:54Z + 2025-05-02T02:55:02Z + 2025-05-02T02:55:12Z + 2025-05-02T02:55:22Z + 2025-05-02T02:55:32Z + 2025-05-02T02:55:42Z + 2025-05-02T02:55:54Z + 2025-05-02T02:56:08Z + 2025-05-02T02:56:20Z + 2025-05-02T02:56:32Z + 2025-05-02T02:56:40Z + 2025-05-02T02:56:48Z + 2025-05-02T02:56:56Z + 2025-05-02T02:57:04Z + 2025-05-02T02:57:12Z + 2025-05-02T02:57:26Z + 2025-05-02T02:57:40Z + 2025-05-02T02:57:48Z + 2025-05-02T02:57:58Z + 2025-05-02T02:58:12Z + 2025-05-02T02:58:20Z + 2025-05-02T02:58:28Z + 2025-05-02T02:58:40Z + 2025-05-02T02:59:00Z + 2025-05-02T02:59:08Z + 2025-05-02T02:59:18Z + 2025-05-02T02:59:50Z + 2025-05-02T03:00:02Z + 2025-05-02T03:00:10Z + 2025-05-02T03:00:18Z + 2025-05-02T03:00:27Z + 2025-05-02T03:00:37Z + 2025-05-02T03:00:49Z + 2025-05-02T03:00:57Z + 2025-05-02T03:01:07Z + 2025-05-02T03:01:17Z + 2025-05-02T03:01:25Z + 2025-05-02T03:01:33Z + 2025-05-02T03:01:43Z + 2025-05-02T03:01:53Z + 2025-05-02T03:02:05Z + 2025-05-02T03:02:21Z + 2025-05-02T03:02:29Z + 2025-05-02T03:02:37Z + 2025-05-02T03:02:47Z + 2025-05-02T03:02:55Z + 2025-05-02T03:03:05Z + 2025-05-02T03:03:15Z + 2025-05-02T03:03:25Z + 2025-05-02T03:03:35Z + 2025-05-02T03:03:51Z + 2025-05-02T03:04:03Z + 2025-05-02T03:04:11Z + 2025-05-02T03:04:23Z + 2025-05-02T03:04:37Z + 2025-05-02T03:04:49Z + 2025-05-02T03:04:57Z + 2025-05-02T03:05:13Z + 2025-05-02T03:05:25Z + 2025-05-02T03:05:39Z + 2025-05-02T03:05:49Z + 2025-05-02T03:05:59Z + 2025-05-02T03:06:07Z + 2025-05-02T03:06:15Z + 2025-05-02T03:06:23Z + 2025-05-02T03:06:31Z + 2025-05-02T03:06:39Z + 2025-05-02T03:06:49Z + 2025-05-02T03:06:57Z + 2025-05-02T03:07:07Z + 2025-05-02T03:07:15Z + 2025-05-02T03:07:23Z + 2025-05-02T03:07:31Z + 2025-05-02T03:07:41Z + 2025-05-02T03:07:51Z + 2025-05-02T03:07:59Z + 2025-05-02T03:08:07Z + 2025-05-02T03:08:17Z + 2025-05-02T03:08:25Z + 2025-05-02T03:08:33Z + 2025-05-02T03:08:41Z + 2025-05-02T03:08:51Z + 2025-05-02T03:09:01Z + 2025-05-02T03:09:11Z + 2025-05-02T03:09:21Z + 2025-05-02T03:09:29Z + 2025-05-02T03:09:37Z + 2025-05-02T03:09:47Z + 2025-05-02T03:09:57Z + 2025-05-02T03:10:07Z + 2025-05-02T03:10:17Z + 2025-05-02T03:10:27Z + 2025-05-02T03:10:37Z + 2025-05-02T03:10:47Z + 2025-05-02T03:10:57Z + 2025-05-02T03:11:05Z + 2025-05-02T03:11:19Z + 2025-05-02T03:11:27Z + 2025-05-02T03:11:37Z + 2025-05-02T03:11:45Z + 2025-05-02T03:11:55Z + 2025-05-02T03:12:03Z + 2025-05-02T03:12:15Z + 2025-05-02T03:12:27Z + 2025-05-02T03:12:37Z + 2025-05-02T03:12:45Z + 2025-05-02T03:12:55Z + 2025-05-02T03:13:05Z + 2025-05-02T03:13:15Z + 2025-05-02T03:13:23Z + 2025-05-02T03:13:37Z + 2025-05-02T03:13:49Z + 2025-05-02T03:13:57Z + 2025-05-02T03:14:07Z + 2025-05-02T03:14:15Z + 2025-05-02T03:14:25Z + 2025-05-02T03:14:33Z + 2025-05-02T03:14:41Z + 2025-05-02T03:14:47Z + 2025-05-02T03:14:55Z + 2025-05-02T03:15:03Z + 2025-05-02T03:15:13Z + 2025-05-02T03:15:22Z + 2025-05-02T03:15:37Z + 2025-05-02T03:15:49Z + 2025-05-02T03:16:13Z + 2025-05-02T03:16:31Z + 2025-05-02T03:16:43Z + 2025-05-02T03:16:59Z + 2025-05-02T03:17:13Z + 2025-05-02T03:17:29Z + 2025-05-02T03:17:59Z + 2025-05-02T03:18:09Z + 2025-05-02T03:18:23Z + 2025-05-02T03:18:35Z + 2025-05-02T03:18:49Z + 2025-05-02T03:19:01Z + 2025-05-02T03:19:23Z + 2025-05-02T03:19:39Z + 2025-05-02T03:19:51Z + 2025-05-02T03:20:13Z + 2025-05-02T03:20:25Z + 2025-05-02T03:20:37Z + 2025-05-02T03:20:49Z + 2025-05-02T03:21:01Z + 2025-05-02T03:21:15Z + 2025-05-02T03:21:31Z + 2025-05-02T03:21:47Z + 2025-05-02T03:22:01Z + 2025-05-02T03:22:13Z + 2025-05-02T03:22:29Z + 2025-05-02T03:22:37Z + 2025-05-02T03:22:47Z + 2025-05-02T03:22:55Z + 2025-05-02T03:23:09Z + 2025-05-02T03:23:21Z + 2025-05-02T03:23:31Z + 2025-05-02T03:23:45Z + 2025-05-02T03:23:55Z + 2025-05-02T03:24:05Z + 2025-05-02T03:24:15Z + 2025-05-02T03:24:27Z + 2025-05-02T03:24:37Z + 2025-05-02T03:24:49Z + 2025-05-02T03:24:59Z + 2025-05-02T03:25:11Z + 2025-05-02T03:25:21Z + 2025-05-02T03:25:29Z + 2025-05-02T03:25:39Z + 2025-05-02T03:25:49Z + 2025-05-02T03:25:59Z + 2025-05-02T03:26:11Z + 2025-05-02T03:26:21Z + 2025-05-02T03:26:35Z + 2025-05-02T03:26:55Z + 2025-05-02T03:27:27Z + 2025-05-02T03:27:41Z + 2025-05-02T03:27:49Z + 2025-05-02T03:27:59Z + 2025-05-02T03:28:09Z + 2025-05-02T03:28:21Z + 2025-05-02T03:28:31Z + 2025-05-02T03:28:41Z + 2025-05-02T03:28:55Z + 2025-05-02T03:29:26Z + 2025-05-02T03:29:29Z + 2025-05-02T03:29:37Z + 2025-05-02T03:29:47Z + 2025-05-02T03:29:57Z + 2025-05-02T03:30:07Z + 2025-05-02T03:30:17Z + 2025-05-02T03:30:27Z + 2025-05-02T03:30:37Z + 2025-05-02T03:30:47Z + 2025-05-02T03:30:57Z + 2025-05-02T03:31:07Z + 2025-05-02T03:31:17Z + 2025-05-02T03:31:29Z + 2025-05-02T03:31:39Z + 2025-05-02T03:31:47Z + 2025-05-02T03:31:57Z + 2025-05-02T03:32:07Z + 2025-05-02T03:32:17Z + 2025-05-02T03:32:25Z + 2025-05-02T03:32:35Z + 2025-05-02T03:32:47Z + 2025-05-02T03:32:57Z + 2025-05-02T03:33:07Z + 2025-05-02T03:33:17Z + 2025-05-02T03:33:29Z + 2025-05-02T03:33:39Z + 2025-05-02T03:33:51Z + 2025-05-02T03:34:01Z + 2025-05-02T03:34:11Z + 2025-05-02T03:34:21Z + 2025-05-02T03:34:31Z + 2025-05-02T03:34:41Z + 2025-05-02T03:34:51Z + 2025-05-02T03:35:01Z + 2025-05-02T03:35:11Z + 2025-05-02T03:35:21Z + 2025-05-02T03:35:31Z + 2025-05-02T03:35:41Z + 2025-05-02T03:35:55Z + 2025-05-02T03:36:03Z + 2025-05-02T03:36:23Z + 2025-05-02T03:36:31Z + 2025-05-02T03:36:49Z + 2025-05-02T03:37:20Z + 2025-05-02T03:37:23Z + 2025-05-02T03:38:04Z + 2025-05-02T03:38:08Z + 2025-05-02T03:38:40Z + 2025-05-02T03:39:05Z + 2025-05-02T03:39:51Z + 2025-05-02T03:40:08Z + 2025-05-02T03:40:41Z + 2025-05-02T03:42:03Z + 2025-05-02T03:42:36Z + 2025-05-02T03:42:36Z + 2025-05-02T03:44:14Z + 2025-05-02T03:44:22Z + 2025-05-02T03:44:37Z + 2025-05-02T03:45:19Z + 2025-05-02T03:45:29Z + 2025-05-02T03:45:39Z + 2025-05-02T03:45:47Z + 2025-05-02T03:45:57Z + 2025-05-02T03:46:05Z + 2025-05-02T03:46:15Z + 2025-05-02T03:46:25Z + 2025-05-02T03:46:35Z + 2025-05-02T03:46:43Z + 2025-05-02T03:46:51Z + 2025-05-02T03:47:01Z + 2025-05-02T03:47:13Z + 2025-05-02T03:47:23Z + 2025-05-02T03:47:31Z + 2025-05-02T03:47:45Z + 2025-05-02T03:47:55Z + 2025-05-02T03:48:03Z + 2025-05-02T03:48:15Z + 2025-05-02T03:48:31Z + 2025-05-02T03:48:45Z + 2025-05-02T03:48:57Z + 2025-05-02T03:49:05Z + 2025-05-02T03:49:15Z + 2025-05-02T03:49:29Z + 2025-05-02T03:49:39Z + 2025-05-02T03:49:47Z + 2025-05-02T03:49:57Z + 2025-05-02T03:50:07Z + 2025-05-02T03:50:17Z + 2025-05-02T03:50:25Z + 2025-05-02T03:50:35Z + 2025-05-02T03:50:45Z + 2025-05-02T03:50:55Z + 2025-05-02T03:51:05Z + 2025-05-02T03:51:13Z + 2025-05-02T03:51:21Z + 2025-05-02T03:51:33Z + 2025-05-02T03:51:47Z + 2025-05-02T03:51:55Z + 2025-05-02T03:52:07Z + 2025-05-02T03:52:17Z + 2025-05-02T03:52:27Z + 2025-05-02T03:52:39Z + 2025-05-02T03:52:51Z + 2025-05-02T03:53:01Z + 2025-05-02T03:53:11Z + 2025-05-02T03:53:25Z + 2025-05-02T03:53:35Z + 2025-05-02T03:53:49Z + 2025-05-02T03:53:59Z + 2025-05-02T03:54:09Z + 2025-05-02T03:54:19Z + 2025-05-02T03:54:29Z + 2025-05-02T03:54:41Z + 2025-05-02T03:54:49Z + 2025-05-02T03:54:59Z + 2025-05-02T03:55:09Z + 2025-05-02T03:55:21Z + 2025-05-02T03:55:29Z + 2025-05-02T03:55:39Z + 2025-05-02T03:55:51Z + 2025-05-02T03:56:03Z + 2025-05-02T03:56:15Z + 2025-05-02T03:56:27Z + 2025-05-02T03:57:01Z + 2025-05-02T03:57:13Z + 2025-05-02T03:57:39Z + 2025-05-02T03:57:49Z + 2025-05-02T03:58:03Z + 2025-05-02T03:58:15Z + 2025-05-02T03:58:23Z + 2025-05-02T03:58:35Z + 2025-05-02T03:58:43Z + 2025-05-02T03:58:55Z + 2025-05-02T03:59:07Z + 2025-05-02T03:59:17Z + 2025-05-02T03:59:27Z + 2025-05-02T03:59:37Z + 2025-05-02T03:59:47Z + 2025-05-02T03:59:57Z + 2025-05-02T04:00:09Z + 2025-05-02T04:00:21Z + 2025-05-02T04:00:35Z + 2025-05-02T04:00:45Z + 2025-05-02T04:00:57Z + 2025-05-02T04:01:07Z + 2025-05-02T04:01:19Z + 2025-05-02T04:01:29Z + 2025-05-02T04:01:41Z + 2025-05-02T04:01:51Z + 2025-05-02T04:02:03Z + 2025-05-02T04:02:15Z + 2025-05-02T04:02:27Z + 2025-05-02T04:02:41Z + 2025-05-02T04:03:07Z + 2025-05-02T04:03:17Z + 2025-05-02T04:03:27Z + 2025-05-02T04:03:41Z + 2025-05-02T04:04:01Z + 2025-05-02T04:04:11Z + 2025-05-02T04:04:25Z + 2025-05-02T04:05:11Z + 2025-05-02T04:05:23Z + 2025-05-02T04:05:35Z + 2025-05-02T04:05:45Z + 2025-05-02T04:05:57Z + 2025-05-02T04:06:07Z + 2025-05-02T04:06:19Z + 2025-05-02T04:06:29Z + 2025-05-02T04:06:41Z + 2025-05-02T04:06:51Z + 2025-05-02T04:07:03Z + 2025-05-02T04:07:15Z + 2025-05-02T04:07:29Z + 2025-05-02T04:07:41Z + 2025-05-02T04:07:53Z + 2025-05-02T04:08:05Z + 2025-05-02T04:08:15Z + 2025-05-02T04:08:37Z + 2025-05-02T04:08:53Z + 2025-05-02T04:09:09Z + 2025-05-02T04:09:19Z + 2025-05-02T04:09:29Z + 2025-05-02T04:09:39Z + 2025-05-02T04:09:53Z + 2025-05-02T04:10:05Z + 2025-05-02T04:10:33Z + 2025-05-02T04:10:47Z + 2025-05-02T04:10:59Z + 2025-05-02T04:11:11Z + 2025-05-02T04:11:21Z + 2025-05-02T04:12:23Z + 2025-05-02T04:12:33Z + 2025-05-02T04:12:49Z + 2025-05-02T04:12:59Z + 2025-05-02T04:13:25Z + 2025-05-02T04:13:35Z + 2025-05-02T04:14:03Z + 2025-05-02T04:14:23Z + 2025-05-02T04:14:33Z + 2025-05-02T04:14:59Z + 2025-05-02T04:15:11Z + 2025-05-02T04:15:31Z + 2025-05-02T04:15:55Z + 2025-05-02T04:16:17Z + 2025-05-02T04:16:35Z + 2025-05-02T04:16:49Z + 2025-05-02T04:17:05Z + 2025-05-02T04:17:23Z + 2025-05-02T04:17:35Z + 2025-05-02T04:17:49Z + 2025-05-02T04:18:01Z + 2025-05-02T04:18:17Z + 2025-05-02T04:18:27Z + 2025-05-02T04:18:41Z + 2025-05-02T04:18:55Z + 2025-05-02T04:19:13Z + 2025-05-02T04:19:27Z + 2025-05-02T04:19:41Z + 2025-05-02T04:19:51Z + 2025-05-02T04:20:09Z + 2025-05-02T04:20:33Z + 2025-05-02T04:20:55Z + 2025-05-02T04:21:07Z + 2025-05-02T04:21:21Z + 2025-05-02T04:21:35Z + 2025-05-02T04:21:53Z + 2025-05-02T04:22:19Z + 2025-05-02T04:22:35Z + 2025-05-02T04:23:19Z + 2025-05-02T04:24:16Z + 2025-05-02T04:25:08Z + 2025-05-02T04:27:36Z + 2025-05-02T04:27:40Z + 2025-05-02T04:29:41Z + 2025-05-02T04:29:49Z + 2025-05-02T04:29:59Z + 2025-05-02T04:30:09Z + 2025-05-02T04:30:19Z + 2025-05-02T04:30:31Z + 2025-05-02T04:30:41Z + 2025-05-02T04:30:49Z + 2025-05-02T04:30:59Z + 2025-05-02T04:31:09Z + 2025-05-02T04:31:17Z + 2025-05-02T04:31:29Z + 2025-05-02T04:31:39Z + 2025-05-02T04:31:49Z + 2025-05-02T04:31:59Z + 2025-05-02T04:32:09Z + 2025-05-02T04:32:25Z + 2025-05-02T04:32:37Z + 2025-05-02T04:32:45Z + 2025-05-02T04:32:57Z + 2025-05-02T04:33:07Z + 2025-05-02T04:33:15Z + 2025-05-02T04:33:25Z + 2025-05-02T04:33:35Z + 2025-05-02T04:33:43Z + 2025-05-02T04:33:51Z + 2025-05-02T04:33:59Z + 2025-05-02T04:34:11Z + 2025-05-02T04:34:19Z + 2025-05-02T04:34:27Z + 2025-05-02T04:34:37Z + 2025-05-02T04:34:47Z + 2025-05-02T04:34:57Z + 2025-05-02T04:35:05Z + 2025-05-02T04:35:15Z + 2025-05-02T04:35:25Z + 2025-05-02T04:35:35Z + 2025-05-02T04:35:45Z + 2025-05-02T04:35:55Z + 2025-05-02T04:36:07Z + 2025-05-02T04:36:15Z + 2025-05-02T04:36:23Z + 2025-05-02T04:36:31Z + 2025-05-02T04:36:39Z + 2025-05-02T04:36:47Z + 2025-05-02T04:36:55Z + 2025-05-02T04:37:05Z + 2025-05-02T04:37:13Z + 2025-05-02T04:37:23Z + 2025-05-02T04:37:33Z + 2025-05-02T04:37:41Z + 2025-05-02T04:37:51Z + 2025-05-02T04:38:01Z + 2025-05-02T04:38:09Z + 2025-05-02T04:38:19Z + 2025-05-02T04:38:27Z + 2025-05-02T04:38:33Z + 2025-05-02T04:38:41Z + 2025-05-02T04:38:51Z + 2025-05-02T04:38:59Z + 2025-05-02T04:39:09Z + 2025-05-02T04:39:17Z + 2025-05-02T04:39:25Z + 2025-05-02T04:39:35Z + 2025-05-02T04:39:45Z + 2025-05-02T04:39:53Z + 2025-05-02T04:40:01Z + 2025-05-02T04:40:09Z + 2025-05-02T04:40:17Z + 2025-05-02T04:40:25Z + 2025-05-02T04:40:35Z + 2025-05-02T04:40:43Z + 2025-05-02T04:40:53Z + 2025-05-02T04:41:01Z + 2025-05-02T04:41:09Z + 2025-05-02T04:41:18Z + 2025-05-02T04:41:22Z + 2025-05-02T04:41:28Z + 2025-05-02T04:41:42Z + 2025-05-02T04:41:52Z + 2025-05-02T04:41:58Z + 2025-05-02T04:42:08Z + 2025-05-02T04:42:20Z + 2025-05-02T04:42:26Z + + + 1.3001883,1.6;1.2476866,1.4;1.191582,1.3;1.176655,1.3;1.217318,1.2;1.2409953,1.2;1.210112,1.2;1.2435689,1.2;0.0,1.0;0.0,1.0;0.89510196,1.0;0.89510196,1.0;1.0181205,1.3;0.9496625,1.3;1.1812875,1.5;1.0891522,1.5;1.0150322,1.5;1.1586397,1.5;0.6583297,1.5;0.89921975,1.5;1.3506311,1.5;1.3362188,1.4;1.402618,1.4;1.1277564,1.4;1.1658459,1.5;1.0989319,1.4;1.1457716,1.4;1.2816583,1.4;1.2281272,1.4;1.3187183,1.4;1.3079091,1.4;1.5534316,1.4;1.5570347,1.4;1.20445,1.4;1.3454839,1.5;1.3243803,1.4;1.4525461,1.5;1.3943825,1.4;1.1056234,1.5;1.263643,1.4;1.2718786,1.4;1.3027619,1.4;1.2317302,1.3;1.2394512,1.3;0.9455447,1.3;0.8287028,1.3;0.81892306,1.2;1.402618,1.2;2.0619771,1.1;1.1349626,1.4;1.1087117,1.4;1.1087117,1.4;1.2276125,1.1;1.2276125,1.1;1.232245,1.1;1.1869495,1.3;1.3161447,1.3;1.1174619,1.2;1.569388,1.1;1.0809166,1.1;1.1684195,1.3;1.1776844,1.5;0.95841277,1.5;0.82046723,1.5;1.27857,1.4;1.2327597,1.4;1.2569517,1.4;1.2085677,1.5;1.1195208,1.5;1.2245241,1.5;1.2482014,1.5;1.1478306,1.5;1.1668752,1.5;0.9872372,1.5;1.139595,1.5;1.0721664,1.5;1.1349626,1.5;1.1519483,1.6;1.2770258,1.6;1.2291566,1.6;1.1483452,1.6;1.1684195,1.6;1.0088556,1.6;1.0963583,1.6;1.0912111,1.6;1.145257,1.6;1.1313595,1.6;1.1421686,1.5;1.139595,1.4;1.1483452,1.4;0.0,1.4;1.195185,1.4;1.3779113,1.4;1.3485723,1.4;1.3264391,1.4;1.1365067,1.4;1.0917258,1.4;0.9213528,1.2;1.4623258,1.2;1.3604108,1.1;1.3691611,1.1;0.90797,1.1;0.68509525,1.1;0.89046943,1.4;0.9779722,1.4;0.9795164,1.5;0.7293614,1.4;0.8091433,1.5;1.0788578,1.5;0.7206111,1.5;1.0618719,1.4;1.1740814,1.4;0.8621597,1.4;1.0309886,1.4;0.8750278,1.4;1.0330476,1.3;1.0459156,1.3;1.1390803,1.3;0.93473554,1.3;0.7571564,1.2;0.86730695,1.4;1.3068798,1.3;1.2950411,1.2;1.2518045,1.1;1.0505481,1.2;0.9676778,1.2;0.96922195,1.2;1.3629844,1.1;1.5246072,1.1;1.4962975,1.1;1.4499725,1.2;1.788145,1.2;0.9928992,1.3;1.20445,1.3;0.8343647,1.3;0.84414446,1.3;1.0922406,1.3;1.2703345,1.3;1.1354772,1.3;1.0577542,1.3;1.1195208,1.3;0.87399834,1.3;0.9481183,1.4;1.1293006,1.3;1.1159178,1.3;1.1910672,1.3;1.0695928,1.3;1.0335622,1.2;1.1787139,1.2;1.139595,1.3;1.2476866,1.2;1.20445,1.2;1.0279002,1.3;1.1745961,1.3;1.0860639,1.2;1.0443714,1.2;1.1385655,1.2;1.4715909,1.1;1.1694489,1.0;0.6933308,1.0;1.213715,1.0;1.4988711,1.1;1.1447423,1.0;1.3094534,1.1;1.0294445,1.3;1.0119439,1.3;1.0649602,1.3;0.9939286,1.3;0.7139197,1.1;0.7139197,1.1;0.7139197,1.1;0.7139197,1.1;0.3567025,1.3;0.3567025,1.3;0.8194378,1.4;0.92238224,1.5;0.83642364,1.4;1.0279002,1.4;0.0,1.5;0.24809611,1.4;0.4519261,1.5;0.6814922,1.4;0.5116339,1.3;0.694875,1.3;0.6161225,1.2;0.0,1.3;0.6974486,1.6;0.8966461,1.5;0.7602447,1.5;0.7046547,1.6;0.7020811,1.6;0.82818806,1.5;0.8595861,1.5;0.87811613,1.5;0.9563539,1.5;0.19199139,1.5;0.58060664,1.5;0.58060664,1.5;0.6871542,1.5;0.6871542,1.5;1.1879789,1.4;0.8652481,1.4;0.972825,1.5;0.8477475,1.4;1.0484892,1.5;0.55178225,1.5;0.9995906,1.5;0.787525,1.4;0.40457165,1.3;0.79627526,1.4;0.7823778,1.5;0.89510196,1.6;0.37677667,1.5;0.8909842,1.4;1.0912111,1.5;0.87914556,1.5;0.5193547,1.5;0.9661336,1.6;0.7365675,1.5;0.7952458,1.5;0.9522361,1.5;0.74892086,1.5;0.5996514,1.4;0.87966025,1.6;0.657815,1.5;0.6964192,1.5;0.91311723,1.6;0.79730475,1.5;1.0793725,1.5;1.2358481,1.5;0.7530386,1.5;1.0145175,1.5;0.6722272,1.5;1.1148883,1.5;0.97900164,1.5;0.6516383,1.5;0.0,1.6;0.76796556,1.5;0.7669361,1.5;0.91157305,1.5;1.0222384,1.5;0.93679446,1.5;0.6454617,1.5;0.9872372,1.5;0.9105436,1.5;0.85649776,1.5;0.80451083,1.5;0.7221553,1.5;1.0222384,1.6;1.2512897,1.5;1.1184914,1.5;1.0315033,1.4;0.91311723,1.4;0.9095142,1.5;0.7617889,1.4;0.85392416,1.5;0.59862196,1.5;0.8570125,1.5;1.0026789,1.5;1.2584958,1.4;0.9110583,1.5;1.0495186,1.5;0.9630453,1.4;1.09327,1.4;0.95841277,1.5;1.2847466,1.4;1.1668752,1.5;1.1756256,1.5;1.38975,1.5;1.1195208,1.5;1.2178328,1.4;1.0685633,1.5;0.84208554,1.4;0.69178665,1.4;0.8209819,1.4;0.98157525,1.4;1.1298152,1.4;1.1061381,1.4;1.1818023,1.4;1.1478306,1.4;1.2178328,1.3;0.85804194,1.4;0.8410561,1.3;1.0258414,1.3;0.99495804,1.4;0.8585567,1.3;1.0942994,1.4;1.2373922,1.4;0.9697367,1.4;0.70259583,1.4;1.2687902,1.4;0.0,1.3;1.0335622,1.4;1.1576103,1.5;1.3912941,1.4;1.5421078,1.3;1.2219505,1.4;1.0582689,1.4;0.77053916,1.4;1.0912111,1.4;1.0608425,1.5;1.0345917,1.5;1.07474,1.5;1.384088,1.4;1.1709931,1.5;1.0474597,1.5;0.861645,1.3;0.7339939,1.5;0.98209,1.5;1.0726811,1.5;0.88738114,1.4;1.2219505,1.4;1.0330476,1.4;1.1349626,1.4;1.1977586,1.4;1.2971,1.3;0.54097307,1.4;0.8410561,1.4;0.9476036,1.4;0.88841057,1.4;0.6665653,1.4;0.72627306,1.5;1.0170912,1.5;0.5955336,1.4;0.73039085,1.4;0.69796336,1.5;1.0608425,1.5;1.1411391,1.5;1.2548928,1.5;1.2394512,1.4;1.3140858,1.5;1.2204064,1.4;1.0973878,1.4;1.0623866,1.5;1.1956997,1.5;1.0556953,1.5;1.1699636,1.5;1.1956997,1.4;1.126727,1.4;1.0505481,1.5;0.8601008,1.4;0.99495804,1.4;1.0639309,1.4;1.0428272,1.5;1.1468011,1.5;1.1164325,1.4;1.09327,1.4;0.98929614,1.4;0.89973444,1.5;1.0814314,1.4;1.1679047,1.4;1.0320181,1.4;1.0979025,1.5;1.1385655,1.4;1.1231239,1.4;1.0824609,1.4;1.2152592,1.4;1.2008469,1.4;1.2420248,1.4;1.1009909,1.5;1.1009909,1.4;1.2018764,1.4;0.88068974,1.4;0.93164724,1.4;1.0644456,1.4;1.2754817,1.4;1.1812875,1.4;1.2301861,1.4;1.0454009,1.4;0.7530386,1.4;1.0170912,1.4;1.1066527,1.4;1.0695928,1.3;1.0325328,1.4;1.0737106,1.4;1.2945263,1.4;0.0,1.2;1.2281272,1.3;1.2657019,1.3;1.154522,1.2;1.4592375,1.3;1.0505481,1.4;1.161728,1.4;1.1174619,1.5;1.55652,1.4;1.4134272,1.3;1.3398219,1.3;1.078343,1.3;1.0356212,1.2;0.8091433,1.3;0.8106875,1.3;0.60788697,1.4;0.6902425,1.5;1.2687902,1.5;0.7664214,1.3;0.9681925,1.4;0.67994803,1.3;0.68355113,1.5;0.94605947,1.5;0.66605055,1.5;0.8842928,1.5;0.6629622,1.5;0.85238,1.5;0.0,1.3;0.95841277,1.1;0.9038522,1.1;0.6238433,1.3;0.71289027,1.3;0.64752054,1.3;0.94142693,1.3;0.83899724,1.4;0.78649557,1.4;0.4004539,1.4;0.7648772,1.3;0.58420974,1.1;0.9362797,1.3;0.66862416,1.3;0.9846636,1.3;1.5549759,1.2;1.8483675,1.1;1.0176058,1.4;0.96407473,1.4;1.0917258,1.3;0.6104606,1.4;0.87657195,1.3;0.9980464,1.4;0.83385,1.4;0.98209,1.2;1.0824609,1.2;0.8909842,1.3;0.96922195,1.4;0.9069406,1.5;1.0515774,1.4;1.0268708,1.4;1.1570956,1.4;1.0335622,1.4;1.0984172,1.4;0.8225261,1.4;0.9100289,1.3;0.73965585,1.4;0.49722168,1.2;0.6439175,1.2;0.861645,1.0;1.0438566,1.2;1.2337892,1.2;1.030474,1.2;0.9095142,1.2;0.97642803,1.2;1.1256975,1.2;0.0,1.2;0.0,1.2;1.2620989,1.2;1.2620989,1.2;1.3135711,1.3;1.1622428,1.3;1.0829755,1.3;1.0701075,1.3;1.2029058,1.3;1.1200355,1.2;1.139595,1.3;1.1637869,1.2;1.1354772,1.3;1.1498895,1.2;0.8920136,1.3;1.1066527,1.3;1.1838611,1.3;1.1179767,1.3;1.1426834,1.3;1.0963583,1.3;1.2147444,1.3;1.4149714,1.2;1.1555514,1.2;1.1627575,1.2;1.0963583,1.2;1.1658459,1.2;1.1555514,1.2;1.2054795,1.2;0.935765,1.3;1.1818023,1.2;1.1107706,1.2;1.2435689,1.3;1.2198917,1.2;1.1560661,1.2;1.2214358,1.2;1.0397389,1.2;1.1164325,1.2;1.0546658,1.2;0.9403975,1.2;1.0577542,1.2;0.5996514,1.2;0.99238443,1.1;0.4143514,1.3;1.0850345,1.2;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.1;0.0,1.2;0.0,1.2;0.5193547,1.2;1.1751108,1.2;1.1838611,1.1;1.3109975,1.2;1.24151,1.2;1.2868055,1.2;1.1514336,1.1;1.0515774,1.0;1.1282711,1.0;1.1534925,1.3;1.22298,1.1;1.1576103,1.0;0.7159786,1.2;0.9959875,1.2;1.2250389,1.3;0.75355333,1.3;1.5076214,1.3;1.7763064,1.3;1.1982733,1.2;0.8343647,1.2;1.2456278,1.2;1.3789408,1.2;1.7531439,1.2;1.4062212,1.2;0.8101728,1.2;0.8235555,1.3;1.2168033,1.2;1.1956997,1.1;1.210112,1.1;1.1854053,1.1;1.4237217,1.2;1.2080531,1.2;1.1884936,1.2;1.2682755,1.2;1.4623258,1.2;1.4942386,1.2;1.5647556,1.2;1.3372483,1.1;1.0371653,1.3;1.0706222,1.3;1.0181205,1.3;1.1148883,1.3;1.1138589,1.2;0.85083586,1.3;0.8760572,1.3;0.88635164,1.3;0.9645894,1.3;0.69436026,1.3;0.8909842,1.2;0.82818806,1.2;1.0309886,1.2;1.2332745,1.2;1.31563,1.2;1.0855491,1.2;1.0634161,1.3;1.0520922,1.3;1.1318742,1.2;1.247172,1.2;0.92804414,1.3;0.9980464,1.2;1.0731958,1.2;0.90436697,1.3;0.93730915,1.3;0.75458276,1.3;0.7200964,1.1;0.7921575,1.3;0.935765,1.2;0.67274195,1.2;1.0757694,1.2;0.8112022,1.3;0.811717,1.3;1.0845197,1.3;0.9002492,1.3;1.01915,1.3;0.8199525,1.3;0.9512067,1.3;1.2518045,1.2;1.250775,1.2;1.1848905,1.2;1.1524631,1.2;1.1118,1.2;0.8559831,1.2;0.8703953,1.3;0.8075992,1.2;0.7756864,1.2;0.63156414,1.2;0.98569304,1.2;1.096873,1.2;1.0335622,1.2;1.0016495,1.1;0.9378239,1.0;1.0186353,1.2;0.92804414,1.1;1.1030498,1.2;0.6645064,1.3;0.53737,1.4;0.8359089,1.3;1.028415,1.3;1.0103997,1.2;0.6161225,1.3;1.2420248,1.3;0.7592153,1.3;0.7592153,1.3;0.9769428,1.3;0.9769428,1.3;1.0242972,1.3;1.0505481,1.3;1.1509188,1.3;0.94657415,1.3;1.3532047,1.3;0.92804414,1.2;1.454605,1.3;1.1066527,1.3;0.9419417,1.2;1.1560661,1.2;0.9445153,1.2;0.9481183,1.2;1.0392241,1.2;1.3418808,1.3;0.64031446,1.3;1.139595,1.3;0.74634725,1.3;0.8436297,1.3;1.0536364,1.3;2.207129,1.3;0.861645,1.3;1.1864347,1.3;0.4869272,1.3;1.0181205,1.3;0.6989928,1.2;0.806055,1.3;0.9419417,1.3;0.5270755,1.3;1.006282,1.3;0.70722836,1.3;0.87451303,1.3;0.83230585,1.3;1.8190284,1.4;0.77465695,1.4;0.50339836,1.4;0.9738544,1.3;0.5538411,1.3;0.67685974,1.3;0.8050256,1.3;0.6186961,1.3;0.5903864,1.3;0.6830364,1.3;0.806055,1.4;0.5595031,1.4;0.8652481,1.3;1.9590328,1.4;1.0798873,1.4;1.145257,1.3;0.71958166,1.3;1.4293836,1.4;1.3192331,1.3;1.2873203,1.3;0.84980637,1.3;1.1596692,1.3;1.0294445,1.2;1.1339331,1.3;0.0,1.2;0.46222055,1.3;0.4936186,1.3;1.0021641,1.2;0.9486331,1.2;1.1102558,1.2;0.83642364,1.2;0.45038193,1.1;0.63413775,1.3;0.8909842,1.3;0.8909842,1.3;0.8909842,1.3;0.8909842,1.3;0.73450863,1.4;0.73450863,1.4;1.2620989,1.4;1.0392241,1.3;1.0778283,1.3;1.2106267,1.3;1.1375362,1.4;1.013488,1.4;1.1895231,1.3;1.1684195,1.3;1.2440836,1.4;1.0891522,1.3;0.8436297,1.4;1.1416539,1.3;0.8667922,1.2;1.0906963,1.2;0.0,1.0;1.121065,1.3;0.8142906,1.4;1.0325328,1.4;1.0103997,1.4;1.1236386,1.3;1.1725372,1.4;1.328498,1.5;1.1370214,1.4;1.2579811,1.4;1.639905,1.4;1.4834294,1.4;1.0026789,1.5;1.250775,1.5;1.4170303,1.5;1.1725372,1.4;1.2317302,1.4;0.98826665,1.3;1.3562931,1.2;1.3459986,1.3;1.2986442,1.3;1.1781992,1.3;1.1586397,1.3;1.2255536,1.3;1.0258414,1.1;1.2327597,1.0;1.226583,1.0;1.5812267,1.2;1.7752769,1.3;1.1658459,1.3;1.4520314,1.3;1.1550367,1.2;1.263643,1.1;1.2183475,1.1;1.2435689,1.1;1.33416,1.1;1.3218067,1.2;0.9362797,1.1;1.2888645,1.1;1.0809166,1.3;1.4818853,1.2;1.8210872,1.2;1.9147667,1.1;1.3377631,1.1;1.5997567,1.2;1.636302,1.3;1.4890914,1.3;1.42681,1.3;1.3974708,1.1;0.95995694,1.1;1.1550367,1.1;1.2945263,1.1;1.3109975,1.1;1.3109975,1.1;1.2734228,1.1;1.2790847,1.1;1.2847466,1.1;1.2193769,1.1;1.2445984,1.1;1.532328,1.3;1.1329036,1.4;1.5539464,1.4;2.525742,1.7;2.138671,1.3;1.009885,1.4;1.274967,1.4;1.0639309,1.5;0.95738333,1.3;0.95738333,1.3; + + + 1746151381432:pause;1746151405474:resume;1746151755413:pause;1746151769976:resume;1746152954486:pause;1746152958575:resume;1746153006985:pause;1746153008996:resume;1746153588975:pause;1746153598993:resume;1746156566031:pause;1746156569990:resume;1746157040019:pause;1746157043973:resume;1746157084008:pause;1746157088014:resume;1746157120002:pause;1746157145993:resume;1746157191512:pause;1746157208253:resume;1746157241954:pause;1746157323992:resume;1746157356006:pause;1746157356022:resume;1746157454008:pause;1746157462025:resume;1746158711963:pause;1746158723957:resume;1746159856006:pause;1746159908028:resume;1746160056012:pause;1746160060003:resume;1746160946045:pause + + + +
+
+ + \ No newline at end of file diff --git "a/public/vaults/Publish/Attachments/\351\230\263\345\205\211\344\270\216\346\250\261\350\212\261.png" "b/public/vaults/Publish/Attachments/\351\230\263\345\205\211\344\270\216\346\250\261\350\212\261.png" new file mode 100644 index 0000000..cf3365c Binary files /dev/null and "b/public/vaults/Publish/Attachments/\351\230\263\345\205\211\344\270\216\346\250\261\350\212\261.png" differ diff --git "a/public/vaults/Publish/Attachments/\351\230\277\350\213\217\345\205\254\344\272\244.png" "b/public/vaults/Publish/Attachments/\351\230\277\350\213\217\345\205\254\344\272\244.png" new file mode 100644 index 0000000..e0fd972 Binary files /dev/null and "b/public/vaults/Publish/Attachments/\351\230\277\350\213\217\345\205\254\344\272\244.png" differ diff --git "a/public/vaults/Publish/Attachments/\351\230\277\350\213\217\345\276\222\346\255\245\347\231\273\345\261\261\350\267\257\347\272\277.png" "b/public/vaults/Publish/Attachments/\351\230\277\350\213\217\345\276\222\346\255\245\347\231\273\345\261\261\350\267\257\347\272\277.png" new file mode 100644 index 0000000..850dfec Binary files /dev/null and "b/public/vaults/Publish/Attachments/\351\230\277\350\213\217\345\276\222\346\255\245\347\231\273\345\261\261\350\267\257\347\272\277.png" differ diff --git "a/public/vaults/Publish/Attachments/\351\231\206\347\276\275\345\217\244\351\201\223.png" "b/public/vaults/Publish/Attachments/\351\231\206\347\276\275\345\217\244\351\201\223.png" new file mode 100644 index 0000000..8bf10dc Binary files /dev/null and "b/public/vaults/Publish/Attachments/\351\231\206\347\276\275\345\217\244\351\201\223.png" differ diff --git "a/public/vaults/Publish/Attachments/\351\243\236\346\234\2724\347\202\27118\346\213\215.png" "b/public/vaults/Publish/Attachments/\351\243\236\346\234\2724\347\202\27118\346\213\215.png" new file mode 100644 index 0000000..9932b1f Binary files /dev/null and "b/public/vaults/Publish/Attachments/\351\243\236\346\234\2724\347\202\27118\346\213\215.png" differ diff --git "a/public/vaults/Publish/Attachments/\351\243\236\346\234\272\344\270\2124\347\202\27118.png" "b/public/vaults/Publish/Attachments/\351\243\236\346\234\272\344\270\2124\347\202\27118.png" new file mode 100644 index 0000000..171c155 Binary files /dev/null and "b/public/vaults/Publish/Attachments/\351\243\236\346\234\272\344\270\2124\347\202\27118.png" differ diff --git "a/public/vaults/Publish/Attachments/\351\271\244\350\247\201\345\262\263\345\261\261\351\241\266\346\274\253\347\224\273\345\220\210\345\275\261.png" "b/public/vaults/Publish/Attachments/\351\271\244\350\247\201\345\262\263\345\261\261\351\241\266\346\274\253\347\224\273\345\220\210\345\275\261.png" new file mode 100644 index 0000000..dc3ec79 Binary files /dev/null and "b/public/vaults/Publish/Attachments/\351\271\244\350\247\201\345\262\263\345\261\261\351\241\266\346\274\253\347\224\273\345\220\210\345\275\261.png" differ diff --git "a/public/vaults/Publish/Attachments/\351\271\244\350\247\201\345\262\263\345\276\222\346\255\245\350\256\241\345\210\222.png" "b/public/vaults/Publish/Attachments/\351\271\244\350\247\201\345\262\263\345\276\222\346\255\245\350\256\241\345\210\222.png" new file mode 100644 index 0000000..979ae22 Binary files /dev/null and "b/public/vaults/Publish/Attachments/\351\271\244\350\247\201\345\262\263\345\276\222\346\255\245\350\256\241\345\210\222.png" differ diff --git "a/public/vaults/Publish/FunFacts/\351\230\263\345\217\260\346\244\215\347\211\251.md" "b/public/vaults/Publish/FunFacts/\351\230\263\345\217\260\346\244\215\347\211\251.md" new file mode 100644 index 0000000..b015ccf --- /dev/null +++ "b/public/vaults/Publish/FunFacts/\351\230\263\345\217\260\346\244\215\347\211\251.md" @@ -0,0 +1,11 @@ +## WIP + +活过的植物: +- 小葱 +- 土豆 +- 红薯 +- 苘麻 +- 姜 +- 橙红茑萝 +- 牵牛花 +- 香樟? diff --git a/public/vaults/Publish/How-to-Implement-obsidian-sharing-space.md b/public/vaults/Publish/How-to-Implement-obsidian-sharing-space.md new file mode 100644 index 0000000..e1f564c --- /dev/null +++ b/public/vaults/Publish/How-to-Implement-obsidian-sharing-space.md @@ -0,0 +1,288 @@ +--- +aliases: + - How-to-Implement-obsidian-sharing-space +tags: + - Tech +test: TeSt +--- + +## TL; DR + +1. Before developing a full-fledged blog with both front-end and back-end, I mainly use Obsidian for content output. +2. Key technologies used with Obsidian: + - OneDrive Sync - [Linux CLI OneDrive Client](https://github.com/abraunegg/onedrive) + - Open-source Obsidian Front-end - [Perlite](https://github.com/secure-77/Perlite) + - 3rd Comment System - [Cusdis](https://cusdis.com/) + +## About Sharing + +### Purpose + +- Digest knowledge through summarization +- Improve writing and foreign language skills +- Increase personal influence through sharing +- Serve as a potential personal corpus + +### Approach + +The initial intention was to develop a blog from scratch, both front-end and back-end, primarily because I am not a professional and wanted to use this opportunity to get a basic grasp of the full-stack development technologies and to try out some languages and frameworks that interest me. + +However, I wanted to find a way to publish content easily and consistently. After considering note-taking software like Obsidian, Notion, and Appflowy, I decided on Obsidian because of my preference for Markdown. Thus, until my custom blog is ready, I plan to use Obsidian for content output. + +Until a better output method is available, the [Obsidian](https://ob.freedeaths.com) platform will be used for publishing. + +## Implementation +### Prerequisites + +- The Obsidian Vault is stored on OneDrive. + - Pros: Natural multi-device sync + - Cons: No real-time sync solution on Android, requires third-party apps for sync +- Create a separate Vault for sharing. + This front-end project can only configure `HIDE_FOLDERS`, not specific folders to display. If Publish and non-Publish content are in the same Vault, it would require syncing more files and manually excluding some. The downside of separating them is the need to move content from the private Vault. + +### Deployment +#### OneDrive CLI Client + +1. Clone the [repository](https://github.com/abraunegg/onedrive) +2. (**If necessary**) Modify user & group + Since Oracle Cloud VPS defaults the username and group to `ubuntu`, to solve permission issues, I crudely modified `entrypoint.sh` and built it locally. I also added the `ubuntu` user to the `docker` group to avoid using `sudo`. + + ```bash + diff --git a/contrib/docker/entrypoint.sh b/contrib/docker/entrypoint.sh + index 8eb5294..de8574f 100755 + --- a/contrib/docker/entrypoint.sh + +++ b/contrib/docker/entrypoint.sh + @@ -7,7 +7,7 @@ set +H -euo pipefail + + # Create new group using target GID + if ! odgroup="$(getent group "$ONEDRIVE_GID")"; then + - odgroup='onedrive' + + odgroup='ubuntu' + groupadd "${odgroup}" -g "$ONEDRIVE_GID" + else + odgroup=${odgroup%%:*} + @@ -15,7 +15,7 @@ fi + + # Create new user using target UID + if ! oduser="$(getent passwd "$ONEDRIVE_UID")"; then + - oduser='onedrive' + + oduser='ubuntu' + useradd -m "${oduser}" -u "$ONEDRIVE_UID" -g "$ONEDRIVE_GID" + else + oduser="${oduser%%:*}" + ``` +3. Configuration + + - `conf/sync_list`: Configure to sync specific folders, such as `/Applications/Obsidian/Publish`. Note the OneDrive path, which starts from `/`, and the Chinese path works fine in practice. + - `conf/config`: + + ``` + sync_dir = "/onedrive/data" + skip_file = "~*|.~*|*.tmp|*.partial" + monitor_interval = "300" + download_only = "true" + no_remote_delete = "true" + sync_dir_permissions = "777" + sync_file_permissions = "777" + ``` + + `download_only` fits my needs. The file permissions and `*.partial` are workarounds to avoid permission issues during sync. As this setup mostly involves text and images, security is relatively manageable. +4. Create `docker-compose.yaml` and start + ```yaml + # version: "3" + services: + onedrive: + image: local-onedrive-debain # driveone/onedrive:edge + restart: unless-stopped + container_name: onedrive-pull + environment: + - ONEDRIVE_UID=1001 + - ONEDRIVE_GID=1001 + - ONEDRIVE_VERBOSE=1 + - ONEDRIVE_DEBUG=0 + - ONEDRIVE_DEBUG_HTTPS=0 + - "ONEDRIVE_AUTHFILES=/onedrive/conf/authUrl:/onedrive/conf/responseUrl" + - ONEDRIVE_RESYNC=0 # 根据文档决定要不要改 + - ONEDRIVE_DISPLAY_CONFIG=1 + - ONEDRIVE_DOWNLOADONLY=1 + volumes: + - /home/ubuntu/onedrive/conf:/onedrive/conf + - /home/ubuntu/onedrive/data:/onedrive/data + ``` + > Note: Initially, `authUrl` and `responseUrl` are required. After normal operation, it seems these two files will disappear, possibly replaced by a `refresh_token`. If you need to provide them again, you might have to go through the authorization process once more. Start with `docker compose up`, then `docker stop onedrive-pull`, and then `docker start onedrive-pull -i` to get the `authUrl`. Copy it to a browser to get the `responseUrl`. Configure these two files before they expire and then restart the container. + +#### Obsidian Front-End + +You can almost use this directly according to the `readme`. If you encounter any issues, refer to the Wiki. The main modifications in `docker-compose.yml` are: + +```yaml +- NOTES_PATH=Publish # Vault +- HIDE_FOLDERS=Attachments # pics +- HOME_FILE=Welcome # index md +- SITE_XXX=XXX # as you wish +``` + + Then you can start and enjoy it. + +#### Caddy & Cloudflare + +Additionally, you can configure HTTPS and CDN as needed. For personal projects, Caddy is a relatively simple solution. + +### Comment Plugin + +The above, as one-way output content, already satisfies the vast majority of needs. However, besides outputting content, a blog has another important function: interacting with readers, which is the commenting and replying feature. + +Initially, I thought I would have to abandon Perlite and implement it myself. It wasn't until after interacting with Claude 3.5 that I learned about the existence of third-party comment plugins. Once again, LLM came to my aid. + +After researching benchmarks of some third-party comment systems, such as [Third-party Comments 2023 Edition - Shuibaco • Water Eight](https://shuiba.co/third-party-comments-2023), my requirements were: +- Not requiring Google or GitHub accounts +- No need for additional account registration +- Can be hosted or self-deployed + +So I first tried Cusdis because it's simple enough. You can just add a div in index.php to load its JavaScript. Of course, to implement dark/light mode switching, I had to write an additional script. This was also solved by LLM, as I don't know PHP and my front-end knowledge is very limited. + +However, the third-party comment system introduces a new potential issue: +- It relies on a unique `page-id`. If this `page-id` is represented by the URI, which is the markdown filename, then changing the filename after comments have been made could potentially lead to the loss of previous comments. + +### Issues + +- [x] Comments: [Feature Request: Support for External Comment Systems (e.g., Cusdis) · Issue #138 · secure-77/Perlite (github.com)](https://github.com/secure-77/Perlite/issues/138) +- [ ] TOC on Mobile: [Implement Responsive Table of Contents (TOC) for Mobile View · Issue #141 · secure-77/Perlite (github.com)](https://github.com/secure-77/Perlite/issues/141) + +## 太长不看 + +1. 在自己手搓一个 Blog 前后端出来之前,主要基于 Obsidian 来输出 +2. Obsidian 主要技术栈: + - OneDrive 同步 - [Linux CLI OneDrive Client](https://github.com/abraunegg/onedrive) + - 开源 Obsidian 前端 - [Perlite](https://github.com/secure-77/Perlite) + - 第三方评论系统 - [Cusdis](https://cusdis.com/) + +## 关于分享 + +### 目的 + +- 通过总结消化知识 +- 提高写作能力和外语能力 +- 通过分享增加个人影响力 +- 作为潜在的个人语料集 + +### 手段 + +最初的意图是想手搓一个 Blog 前后端,原因主要是因为自己不是专业出身,想借此机会初步掌握全栈开发所需的技术栈,并尝试一下感兴趣的语言和框架。 + +但是又想尽量能够做到在一处安心输出,就能自然地发布,而自己主要考察的笔记本软件有 Obsidian、Notion 和 Appflowy。加之个人喜欢 Markdown,所以在手搓 Blog 准备好之前,打算用 Obsidian 先输出起来。 + +在其它更好的输出方式出来之前,[Obsidian](https://ob.freedeaths.com) 的输出平台会一直存在。 + +## 实现 +### 前提条件 + +- Obsidian 的 Vault 存储在 OneDrive 上。 + - Pros: 天然多端同步 + - Cons: 安卓上没有实时同步方案,要借助第三方 App 同步 +- 单独为分享新建一个 Vault + 这个前端项目只能配置 `HIDE_FOLDERS`,不能配置仅显示的文件夹,所以如果把 Publish 和非 Publish 放在一个 Vault 中,不得不同步更多的文件,并且要手动排除掉。单独分开唯一的坏处就是可能要从私有的 Vault 中搬运一次。 + +### 部署 +#### OneDrive CLI Client + +1. 克隆[仓库](https://github.com/abraunegg/onedrive) +2. (**如有必要**) 修改 user & group + 因为 Oracle Cloud 上的 VPS 默认用户名和组都是 `ubuntu`,为了解决权限问题,最终采取的策略是简单粗暴地魔改了 `entrypoint.sh`,然后本地 build。同时把 `ubuntu` 用户加入 `docker` 组,避免使用 `sudo`。 + ```bash + diff --git a/contrib/docker/entrypoint.sh b/contrib/docker/entrypoint.sh + index 8eb5294..de8574f 100755 + --- a/contrib/docker/entrypoint.sh + +++ b/contrib/docker/entrypoint.sh + @@ -7,7 +7,7 @@ set +H -euo pipefail + + # Create new group using target GID + if ! odgroup="$(getent group "$ONEDRIVE_GID")"; then + - odgroup='onedrive' + + odgroup='ubuntu' + groupadd "${odgroup}" -g "$ONEDRIVE_GID" + else + odgroup=${odgroup%%:*} + @@ -15,7 +15,7 @@ fi + + # Create new user using target UID + if ! oduser="$(getent passwd "$ONEDRIVE_UID")"; then + - oduser='onedrive' + + oduser='ubuntu' + useradd -m "${oduser}" -u "$ONEDRIVE_UID" -g "$ONEDRIVE_GID" + else + oduser="${oduser%%:*}" + ``` +3. 配置 + - `conf/sync_list`: 配置仅同步某些文件夹,比如 `/应用/Obsidian/Publish`。此处注意 OneDrive 上的路径,相当于是从 / 开始的,实测中文路径 OK。 + - `conf/config`: + ``` + sync_dir = "/onedrive/data" + skip_file = "~*|.~*|*.tmp|*.partial" + monitor_interval = "300" + download_only = "true" + no_remote_delete = "true" + sync_dir_permissions = "777" + sync_file_permissions = "777" + ``` + 其中 `download_only` 是我的需求。而两个权限以及 `*.partial` 是实践下来避免同步时权限问题的 Workaround,而且因为这里只有纯文本和图片,安全相对可控。 +4. 新建 `docker-compose.yaml` 并启动 + ``` + # version: "3" + services: + onedrive: + image: local-onedrive-debain # driveone/onedrive:edge + restart: unless-stopped + container_name: onedrive-pull + environment: + - ONEDRIVE_UID=1001 + - ONEDRIVE_GID=1001 + - ONEDRIVE_VERBOSE=1 + - ONEDRIVE_DEBUG=0 + - ONEDRIVE_DEBUG_HTTPS=0 + - "ONEDRIVE_AUTHFILES=/onedrive/conf/authUrl:/onedrive/conf/responseUrl" + - ONEDRIVE_RESYNC=0 # 根据文档决定要不要改 + - ONEDRIVE_DISPLAY_CONFIG=1 + - ONEDRIVE_DOWNLOADONLY=1 + volumes: + - /home/ubuntu/onedrive/conf:/onedrive/conf + - /home/ubuntu/onedrive/data:/onedrive/data + ``` + + > 注意:初次需要 authUrl 和 responseUrl,正常工作后,似乎这两个文件会消失,猜测可能是被 `refresh_token` 取代了。如果需要重新提供的时候,估计还要再走一遍授权流程。先 `docker compose up` 启动,再 `docker stop onedrive-pull`,再 `docker start onedrive-pull -i` 进去拿到 authUrl,复制到浏览器拿到 responseUrl,在失效之前配置好这两个文件,再重新启动容器。 + +#### Obsidian Front-end + +这个几乎就是直接根据 `readme` 使用即可,有问题可参考 Wiki。在 `docker-compose.yml` 中的主要修改有: + +```yaml +- NOTES_PATH=Publish # Vault +- HIDE_FOLDERS=Attachments # pics +- HOME_FILE=Welcome # index md +- SITE_XXX=XXX # as you wish +``` + + 然后就可以启动使用了。 + +#### Caddy & Cloudflare +额外地,可以再按需配置 HTTPS 和 CDN。个人项目用 Caddy 比较无脑。 + +### 评论插件 + +以上作为单向输出内容,已经满足绝大部分需求了。但是 Blog 除了输出内容以外,还有另一个重要的功能:与读者互动,也就是评论及回复功能。 + +起初以为只能放弃 Perlite 转而自己实现,在与 Claude 3.5 交互以后,才知道有第三方评论插件的存在,LLM 又一次帮到了我。 + +通过检索部分第三方评论系统的 Benchmark,例如 [第三方评论之2023年版 - Shuibaco • 水八口](https://shuiba.co/third-party-comments-2023),我的需求: +- 不强求 Google 或 GitHub 账号 +- 不需要额外注册账号 +- 可托管亦可自己部署 + +所以先尝试了 Cusdis,因为它足够简单,直接在 index.php 中添加一个 div 加载它的 js 就可以了。当然,为了实现 dark/light 的切换,又不得不多写了一段脚本,依然是 LLM 解决,因为我不会 PHP,前端知识也很匮乏。 + +但是第三方评论系统引入了一个新的潜在问题: +- 因为它依赖一个唯一的 `page-id`,如果这个 `page-id` 是用 URI 即 markdown 的文件名来表示的话,那么如果在产生评化以后再更改文件名可能会导致过去的评论丢失。 +### Issues + +- [x] 评论功能: [Feature Request: Support for External Comment Systems (e.g., Cusdis) · Issue #138 · secure-77/Perlite (github.com)](https://github.com/secure-77/Perlite/issues/138) +- [ ] 移动端 TOC 功能: [Implement Responsive Table of Contents (TOC) for Mobile View · Issue #141 · secure-77/Perlite (github.com)](https://github.com/secure-77/Perlite/issues/141) \ No newline at end of file diff --git a/public/vaults/Publish/LLM/Contribute-Groupchat-to-Autogen.md b/public/vaults/Publish/LLM/Contribute-Groupchat-to-Autogen.md new file mode 100644 index 0000000..3993a88 --- /dev/null +++ b/public/vaults/Publish/LLM/Contribute-Groupchat-to-Autogen.md @@ -0,0 +1,725 @@ +# How I Contributed to a 20k+ Stars Open Source Project for the First Time: Assist in Completing the Amazing Graph Feature for GroupChat in MicroSoft/AutoGen + +## Introduction + +### Background + +In the past year, Large Language Models (LLMs) have brought tremendous impact to the world, and PingCAP has been actively following up on AI empowered applications. We are a small team called Lab in PingCAP and are dedicated to developing better AI applications for business and developers. Previously, we developed TiDB Bot, which is a complex Retrieval-Augmented Generation (RAG) application, on which we wrote a [blog post](https://medium.com/@developer-relations/some-attempts-to-optimize-the-accuracy-of-tidb-bot-responses-42b109d0a073). + +At the same time, we developed a low-code platform for LLM application development and deployment based on Directed Acyclic Graphs (DAGs) for non-coders (to be open-sourced soon). + +In this series of explorations, We realized that DAG cannot effectively utilize loops, sacrificing the self-correction ability of LLM. And another subjective feelings is that the further potential of DAG + RAG may become more and more difficult to exploit, and we need to find a higher-ceiling and more imaginative pattern to make LLM better serve the business. Therefore, we started to try to use the Multi-Agents framework to solve more complex business problems. + +Among a lot of Multi-Agents frameworks, AutoGen caught my attention for the following reasons: + +1. The concept is simple enough +2. The examples in the Notebook are very inspiring + +This coincides with our previous idea, which is to use a relatively unified and simple paradigm (using multiple agents as a group similar to https://lilianweng.github.io/posts/2023-06-23-agent/) to solve a large class of tasks. The simple concept means strong universality (possibly accompanied by difficulty in handling). The awesome examples can indirectly prove that it has a high ceiling, a large imagination, so we decided to use AutoGen to do some experiments and evaluate how complex real business scenarios it can handle. + +![[../Attachments/LLMAgentConcept.png]] +### Motivation + +We have assigned the task of conducting an internal Exploratory Data Analysis (EDA) and Root Cause Analysis (RCA) to LLM. It involves understanding private domain knowledge, TEXT2SQL, data statistics and analysis, et al. It is a comprehensive Tabular Question Answering (TQA) task, and if we want to apply it in production, it requires more than just a successful experimental result. Reliability, cost, and other factors need to be considered. Additionally, LLM itself introduces uncertainty in its output. Therefore, the more complex the task and the longer the context, the higher the probability of error occurring at some point. There might be mistakes in writing SQL queries, the business tables might undergo changes, and the features that need to be analyzed may vary over time. Moreover, there is a possibility that the task description provided by the human initiating the task may not be accurate. All these reasons can lead to errors in intermediate steps. If we continue to use a DAG (Directed Acyclic Graph) to implement this, the probability of success will be very low, or we will need a significant amount of manual effort to increase the success rate. + +Therefore, we decided to use the AutoGen framework to address this problem. In PingCAP's practice, we have realized the importance of allowing the LLM to focus each prompt on one specific small task, rather than mixing multiple requirements together. So, for this complex task, we introduced `GroupChat`. The `Planner` focuses on breaking down the steps, while the `Engineer` and `Executor` focus on executing the tasks defined by the `Planner`. The `Critic` is responsible for double-checking the results. There is also a `User` agent to deliver the task. + +The experimental results have been quite exciting. Even with ultra-long contexts of 100K+ tokens, we have consistently achieved a success rate of 75% in producing the expected results. However, using it in a serious production environment is still not sufficient. The extremely long contexts pose significant challenges in terms of stability optimization and cost. Conducting several dozen repeated experiments has cost nearly $400. Therefore, we have to consider a more cost-effective experimental approach by decoupling the required capabilities of this task and using the "controlled variable method" to test each sub-capability isolatedly. + +In previous experiments, I noticed that not every GroupChat response was in the expected order, which resulted in adding a lot of irrelevant and confusing context, negatively impacting the final outcome and cost. Therefore, I am considering designing a specific evaluation for the GroupChat's ability to control the order of responses. And that's what motivated the story from there. + +## Contributions + +### Minimum Verification Test Design + +I designed a task as shown in the figure: each agent counts according to the transfer conditions. The current GPT-3.5 has no problem determining whether integers up to 30 are divisible by 3 or 5. Moreover, the context of this task is short enough, so it can be assumed that apart from the order of speech, the entire task should not pose any difficulties for GPT-4. + +![[../Attachments/FSM.png]] + +But the experimental results were astonishing. GPT-4 or GPT-4-turbo surprisingly failed to complete the task as expected, which I never expected. Controlling the order of speech seems to be the only job for `GroupChatManager`. This also means that in many scenarios, it may not be able to effectively complete tasks. + +If we consider each agent as a state, and each agent speaks according to certain conditions. For example, `User` always initiates the task first, followed by `Planner` creating a plan. Then `Engineer` and `Executor` work alternately, with `Critic` intervening when necessary, and after `Critic`, only `Planner` should revise additional plans. Each state can only exist at a time, and there are transition conditions between states. Therefore, `GroupChat` can be well abstracted as a Finite-State Machine (FSM). + +I noticed that there is a method called `speaker_selection_method` in the `GroupChat` class, so naturally, I thought of adding a method called `fsm` and providing a description of the FSM to allow the manager to select the next speaker based on its constraints. + +```python +fsm = { + "agents": [engineer, planner, executor, critic, user_proxy], + "transitions": [ + {"from": user_proxy, "to": planner, "on": None}, + {"from": planner, "to": engineer, "on": None}, + {"from": engineer, "to": executor, "on": "If the last number mentioned by `Engineer` is a multiple of 3, the next speaker can only be `Executor`."}, + {"from": executor, "to": engineer, "on": None}, + {"from": engineer, "to": critic, "on": "If the last number mentioned by `Engineer` is not a multiple of 3, the next speaker can only be `Executor`."}, + {"from": critic, "to": engineer, "on": "If the last number mentioned by the Critic is not a multiple of 5, the next speaker can only be `Planner`."}, + {"from": critic, "to": planner, "on": "If the last number mentioned by the Critic is a multiple of 5, the next speaker can only be `Planner`."}, + ] +} + +groupchat = autogen.GroupChat( + agents=[engineer, planner, executor, critic, user_proxy], messages=[], max_round=25, allow_repeat_speaker=False, finite_state_machine=fsm, speaker_selection_method="fsm" +) +``` + +Following my own design, I quickly implemented an MVP and the experimental results were consistent with expectations. I repeated it 20 times and achieved a 100% success rate. + +Just when I was excited and about to submit an issue, I decided to do a search in the history and found [PR #857](https://github.com/microsoft/autogen/pull/857), which attempted to use a graph to describe `GroupChat` and make it speak in a predetermined order. This overlaps with my idea. + +Furthermore, I discovered that in the released versions, `ConversableAgent` has a parameter called `description`, which is different from `system_message`. The latter is a system prompt for self-reference, while the former is used to introduce oneself to other agents. I can also describe the transition conditions in the FSM using the `description`. In other words, I can combine the `description` with the graph to achieve a complete description of the FSM. Without disrupting the existing design (using `description`) and maintaining high cohesion (using `on` conditions), I have decided to choose the former approach. + +When I found that PR #857 was also unable to count in the expected order, I opened an [issue](https://github.com/microsoft/autogen/issues/1400) on the repository immediately*. + +> [*] Note: As I mentioned [here](https://github.com/microsoft/autogen/issues/1400#issuecomment-1914368471), I made a mistake in a hurry before submitting the issue. I mistakenly thought that the code in my environment was the latest code from the branch where PR #857 was located. In fact, the latest code of PR #857 works as expected. Therefore, I sincerely apologize to everyone. + +### Push for the Merge of PR 857 + +After submitting the issue, I received very [positive feedbacks](https://github.com/microsoft/autogen/pull/857#issuecomment-1913909945) from the community. Due to [this opportunity](https://github.com/microsoft/autogen/pull/857#issuecomment-1911666678), I started considering how to provide the FSM feature to everyone. + +Although the original author of the PR mentioned that transition conditions were not considered in this PR**, as mentioned earlier, by combining the `description` parameter of `ConversableAgent` with the graph in PR #857, we can achieve the same effect as FSM. To avoid wasting time with new discussions that a new PR might bring, I decided to continue on the existing PR. + +For the existing PR, I actually only made two improvement suggestions: + +1. If a speaker has only one successor, there is no need for the LLM to determine the next speaker. We can directly output the successor as the next speaker. This not only enhances stability but also saves cost for calling LLM. +2. Because the next state in FSM is determined only by the current state and transition conditions, and is independent of any previous state, we only need to keep track of the last speaker and its content when selecting the next speaker. This also contributes to enhancing stability and reducing costs. The path to enhancing stability here is different from the first point. The first point directly avoids unnecessary LLM calling, while the second point avoids the side effects of long context on the quality of LLM output.** + +The first point was easily accepted by everyone, but both the PR author and the repository owner had concerns about the second point. They thought my suggestion was too radical and it was not adopted.** + +> [**] Note: I will summarize these in the "Lessons Learned" section. + +Because this PR has been open for nearly 2 months, it troubled me more than the above two enhancements. Firstly, this is a significant feature, and there are nearly a thousand comments in the PR with a lot of context. Additionally, I wasn't involved in the initial design discussion, so I need to quickly align myself with the information and understand the existing design details. + +Secondly, since this PR has not been merged into the main branch for a long time, many new features have been deployed, and they inevitably conflict with this PR in terms of design. This caused a unit test for another feature that depends on `GroupChat` to fail when attempting to merge PR #857 into the main branch. + +I carefully reviewed the conflicting feature, which provides the functionality for an external agent to initiate a task in GroupChat. This is also an important feature that I have considered before, where, for example, a doctor can request a consultation from another team when treating a patient. I believe it is crucial. So I further analyzed the points of conflict between the two PRs: [PR #912](https://github.com/microsoft/autogen/pull/912) introduces nodes that are not in the graph, resulting in its successor being empty, while PR #857 aims to gracefully exit if there is a sink node in the graph. Both of these requirements are reasonable. Therefore, I divided the case of having no successor into two categories, distinguishing whether it is outside of the graph or if it is a sink node, and implemented different handling strategies for them, effectively considering both of these features. + +After nearly a week of collaboration and with the help of multiple contributors, we successfully merged this feature into the main branch and officially released it to users in version `0.2.11`. + +## Application of the FSM Feature + +Actually, I believe that in most of use cases, besides brainstorming, FSM can be considered an essential feature of `GroupChat`. In addition to the existing notebook example, as I previously described in the issue, there is another way to implement FSM. You can think of it as a demonstration of how to organize `GroupChat` based on FSM in the `AutoGen` framework. + +### Usage + +1. Import dependencies + + ```python + from autogen.agentchat import GroupChat, AssistantAgent, UserProxyAgent, GroupChatManager + from autogen.oai.openai_utils import config_list_from_dotenv + ``` +2. Configure LLM parameters + + ```python + # Please feel free to change it as you wish + config_list = config_list_from_dotenv( + dotenv_file_path='.env', + model_api_key_map={'gpt-4-1106-preview':'OPENAI_API_KEY'}, + filter_dict={ + "model": { + "gpt-4-1106-preview" + } + } + ) + + gpt_config = { + "cache_seed": None, + "temperature": 0, + "config_list": config_list, + "timeout": 100, + } + ``` + +3. Define the task + + ```python + # describe the task + task = """Add 1 to the number output by the previous role. If the previous number is 20, output "TERMINATE".""" + ``` + +4. Define agents + + ```python + # agents configuration + engineer = AssistantAgent( + name="Engineer", + llm_config=gpt_config, + system_message=task, + description="""I am **ONLY** allowed to speak **immediately** after `Planner`, `Critic` and `Executor`. + If the last number mentioned by `Critic` is not a multiple of 5, the next speaker must be `Engineer`. + """ + ) + + planner = AssistantAgent( + name="Planner", + system_message=task, + llm_config=gpt_config, + description="""I am **ONLY** allowed to speak **immediately** after `User` or `Critic`. + If the last number mentioned by `Critic` is a multiple of 5, the next speaker must be `Planner`. + """ + ) + + executor = AssistantAgent( + name="Executor", + system_message=task, + is_termination_msg=lambda x: x.get("content", "") and x.get("content", "").rstrip().endswith("FINISH"), + llm_config=gpt_config, + description="""I am **ONLY** allowed to speak **immediately** after `Engineer`. + If the last number mentioned by `Engineer` is a multiple of 3, the next speaker can only be `Executor`. + """ + ) + + critic = AssistantAgent( + name="Critic", + system_message=task, + llm_config=gpt_config, + description="""I am **ONLY** allowed to speak **immediately** after `Engineer`. + If the last number mentioned by `Engineer` is not a multiple of 3, the next speaker can only be `Critic`. + """ + ) + + user_proxy = UserProxyAgent( + name="User", + system_message=task, + code_execution_config=False, + human_input_mode="NEVER", + llm_config=False, + description=""" + Never select me as a speaker. + """ + ) + ``` + + 1. Here, I have configured the `system_messages` as "task" because every agent should know what it needs to do. In this example, each agent has the same task, which is to count in sequence. + 2. **The most important point is the `description` parameter, where I have used natural language to describe the transition conditions of the FSM. Because the manager knows which agents are available next based on the constraints of the graph, I describe in the `description` field of each candidate agent when it can speak, effectively describing the transition conditions in the FSM.** + +5. Define the graph + + ```python + graph_dict = {} + graph_dict[user_proxy] = [planner] + graph_dict[planner] = [engineer] + graph_dict[engineer] = [critic, executor] + graph_dict[critic] = [engineer, planner] + graph_dict[executor] = [engineer] + ``` + + 1. **The graph here and the transition conditions mentioned above together form a complete FSM. Both are essential and cannot be missing.** + 2. You can visualize it as you wish, which is shown as follow + + ![[../Attachments/FSM-1.png]] + +6. Define a `GroupChat` and a `GroupChatManager` + + ```python + agents = [user_proxy, engineer, planner, executor, critic] + + # create the groupchat + group_chat = GroupChat(agents=agents, messages=[], max_round=25, allowed_or_disallowed_speaker_transitions=graph_dict, allow_repeat_speaker=None, speaker_transitions_type="allowed") + + # create the manager + manager = GroupChatManager( + groupchat=group_chat, + llm_config=gpt_config, + is_termination_msg=lambda x: x.get("content", "") and x.get("content", "").rstrip().endswith("TERMINATE"), + code_execution_config=False, + ) + ``` + +7. Initiate the chat + + ```python + # initiate the task + user_proxy.initiate_chat( + manager, + message="1", + clear_history=True + ) + ``` + +8. You may get the following output(I deleted the ignorable warning): + + ``` + User (to chat_manager): + + 1 + + -------------------------------------------------------------------------------- + Planner (to chat_manager): + + 2 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 3 + + -------------------------------------------------------------------------------- + Executor (to chat_manager): + + 4 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 5 + + -------------------------------------------------------------------------------- + Critic (to chat_manager): + + 6 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 7 + + -------------------------------------------------------------------------------- + Critic (to chat_manager): + + 8 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 9 + + -------------------------------------------------------------------------------- + Executor (to chat_manager): + + 10 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 11 + + -------------------------------------------------------------------------------- + Critic (to chat_manager): + + 12 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 13 + + -------------------------------------------------------------------------------- + Critic (to chat_manager): + + 14 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 15 + + -------------------------------------------------------------------------------- + Executor (to chat_manager): + + 16 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 17 + + -------------------------------------------------------------------------------- + Critic (to chat_manager): + + 18 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 19 + + -------------------------------------------------------------------------------- + Critic (to chat_manager): + + 20 + + -------------------------------------------------------------------------------- + Planner (to chat_manager): + + TERMINATE + ``` + +## Discussion + +So far, we have witnessed the power of FSM. I hope it can make everyone's `GroupChat` more controllable and predictable. Here, I would like to express my gratitude to all the developers who have helped me. Thank you for providing me with various information and suggestions. I would also like to thank the repo owners and the PR author for giving me this opportunity to collaborate in development and release this exciting feature. + +Furthermore, there are some lessons learned and prospects to share. + +### Lessons Learned + +1. Effective communication is crucial throughout the entire development process, especially in context of using a non-native language. This becomes even more important. Do not hesitate to clarify any areas of misunderstanding. + +2. In the parts I marked with [**] above, upon reflection, I realized that before I raised Issue #1400, it seemed that nobody had considered combining the `description` and graph in the solution. Although the example in the notebook was exciting, it was not a complete FSM. Therefore, in the original design, relying only on the `last_speaker` and its content to determine the next speaker could indeed pose reliability risks. I was confused because my second suggestion was not adopted, perhaps because I had assumed that everyone would combine the `description` and graph to use as a complete FSM. This may have caused a gap in understanding. The above is just my personal reflection from my perspective, so please correct me if I'm wrong. + +### Future Works + +1. As mentioned in the second item of the Lessons Learned, it could be considered to add an optional parameter that allows the `GroupChat` to configure the manager to only consider the last speaker, thus potentially improving accuracy and cost-effectiveness if the complete FSM provided. + +2. Before the release of `AutoGenStudio`, I had implemented a backend service locally that was almost identical. However, once `AutoGenStudio` was available, I quickly embraced it. At that time, `AutoGenStudio` did not yet support `GroupChat`. Although the new version now supports it, there may still be some breaking changes in terms of graph serialization and persistence. It is important to consider how to integrate the two with minimal impact. + +Finally, I would like to express my gratitude once again to everyone, including but not limited to the initiator @joshkyh of PR #857, the `AutoGen` repo owner @sonichi, Reviewers like @IANTHEREAL, @afourney, @qingyun-wu, et al., who has helped me throughout this process. This is my first time contributing to such a popular open-source project, and it has been a wonderful experience. I hope to contribute more ideas to the `AutoGen` project. + + +# 协助为 20000+ Star 的开源项目 AutoGen 贡献重要特性: 实现基于 FSM 的群聊 + +## 引言 + +### 背景 + +这一年多以内,LLM 给全世界带来了巨大的震撼,PingCAP 也积极跟进 AI 赋能的应用。我们是 PingCAP 里一个叫 Lab 的小团队,我们致力于开发更好的 AI 应用服务于业务和开发者。之前我们开发了 TiDB Bot,这是一个流程略有些复杂的检索增加生成 (Retrieval-Augmented Generation, RAG) 应用。同时我们开发了一个面向非程序员的基于有向无环图 (Directed Acyclic Graphs, DAG) 的 LLM 应用开发和服务低代码平台(即将开源)。在这一系列的探索过程中,我们意识到有向无环图无法有效地利用循环,牺牲了 LLM 自行纠错的能力。而且另一个主观感受是 DAG + RAG 的进一步潜力挖掘可能人效比会越来越低,我们需要找到一个天花板更高,想象力更丰富的模式来让 LLM 更好地服务于业务,所以开始试图用多智能体的框架来解决更复杂的业务问题。 + +在众多的多智能体框架中,AutoGen 因为以下优点吸引了我的注意: + +1. 概念足够简单 +2. Notebook 中的案例非常振奋人心 + +这和我们之前的设想不谋而合,我们期望用相对统一且简单的范式(利用多个类似于 https://lilianweng.github.io/posts/2023-06-23-agent/ 的智能体)去解决一大类任务。概念简单意味着通用性更强(可能伴随着难以驾驭),而 Notebook 中漂亮的案例可以侧面证明它的天花板足够高,想象力够大,所以我们决定用 AutoGen 来做一些尝试,评估它能胜任多复杂的真实业务场景。 + +![[../Attachments/LLMAgentConcept.png]] + +### 动机 + +我们在内部有一个数据探索 (Exploratory Data Analysis, EDA) + 根因分析 (Root Cause Analysis, RCA) 的任务计划交给 LLM 来尝试。它涉及到私域知识的理解、NL2SQL、数据统计及分析等多项内容,是一个综合性的表格问答 (Tabular Question Answering, TQA) 任务,如果想在生产上应用,不仅仅是一次成功的实验结果就足够的,可靠性、成本等等都是需要考量的问题。加之 LLM 本身输出就有不确定性,所以任务越复杂,上下文越长,在某个环节出错的概率就越大,SQL 可能写错,业务表也存在变更的可能性,不同时间需要下钻分析的特征是不一样的,而且发布任务的人类也可能没有准确地描述任务,种种原因都会导致中间环节的错误。如果还是使用 DAG 来实现,那它成功的概率就会非常小,或者我们需要用大量的人工来换取成功率的提升。 + +因此我们尝试用 AutoGen 框架来解决这个问题。在 PingCAP 的实践中,我们认识到,让每一次的 prompt 专注于一件事,而不是把多个需求杂糅在一起。所以针对这个复杂的任务我们引入了 GroupChat,Planner 专注于分解步骤,Engineer 和 Executor 专注于执行 Planner 的任务,Critic 专注于复查结果。 + +实验结果还是挺喜人的。我们在 100K tokens 的超长上下文中依然以 75% 的成功率稳定输出预期的结果。但想把它用在严肃的生产环境下又不太足够。超长的上下文给优化稳定性和成本都带来了巨大的挑战,几十次重复实验花费了近 400 美金。所以不得不考虑更高性价比的实验思路,即将这个任务需要的能力解耦,用“控制变量法”来尽可能单一地去测试各项子能力。 + +在之前的实验中,我发现并不是每一次 GroupChat 的发言顺序都和预期的一样,这会导致增加许多无意义且令人迷惑的上下文,对最终效果和成本都不利。所以我考虑单独设计一个考核 GroupChat 控制发言顺序的能力。也就是因此,才有了后面的故事。 + +## 贡献过程 + +### 最小实验设计 + +我设计了如图的任务:各智能体按转移条件依次报数。当前的 GPT-3.5 对于 30 以内的整数能否被 3 或 5 整除已经基本没有问题了。而且这个任务的上下文足够短,所以可以认为除了发言顺序以外,整个任务对于 GPT-4 来说应该是没有任何难点的。 + +![[../Attachments/FSM.png]] + +但实验结果非常惊人,GPT-4 或 GPT-4-turbo 竟然都无法按预期地完成这个任务,这是我万万没有想到的。控制发言顺序几乎是 `GroupChatManager` 唯一的工作。这也就意味着它在很多场景下,可能都无法出色有效地完成任务。 + +如果把每一个智能体看作一个状态,各个智能体按一定的条件依次发言。比如总是 `User` 先发起任务,然后 `Planner` 制定计划。之后是 `Engineer` 和 `Executor` 交替工作,`Critic` 在必要的时候介入,而在 `Critic` 之后只应该是 `Planner` 重新制定额外的计划。每次能且只能处在一个状态,在各状态之前存在转移条件。所以 `GroupChat` 可以很好地被抽象成一个有限状态机。 + +我注意到 `GroupChat` 类中有一个 `speaker_selection_method` 方法,所以自然而然地想到增加一个叫 `fsm` 的方法,同时的最后供一个 FSM 的描述来让 manager 在它的约束下选择下一位发言者。 + +```python +fsm = { + "agents": [engineer, planner, executor, critic, user_proxy], + "transitions": [ + {"from": user_proxy, "to": planner, "on": None}, + {"from": planner, "to": engineer, "on": None}, + {"from": engineer, "to": executor, "on": "If the last number mentioned by `Engineer` is a multiple of 3, the next speaker can only be `Executor`."}, + {"from": executor, "to": engineer, "on": None}, + {"from": engineer, "to": critic, "on": "If the last number mentioned by `Engineer` is not a multiple of 3, the next speaker can only be `Executor`."}, + {"from": critic, "to": engineer, "on": "If the last number mentioned by the Critic is not a multiple of 5, the next speaker can only be `Planner`."}, + {"from": critic, "to": planner, "on": "If the last number mentioned by the Critic is a multiple of 5, the next speaker can only be `Planner`."}, + ] +} + +groupchat = autogen.GroupChat( + agents=[engineer, planner, executor, critic, user_proxy], messages=[], max_round=25, allow_repeat_speaker=False, finite_state_machine=fsm, speaker_selection_method="fsm" +) +``` + +按照我自己的设计很快实现了一个 MVP,实验效果和预期一致,重复 20 次得到了 100% 的成功率。 + +在兴奋地打算提交 Issue 前再检索了一下历史,发现了 [PR #857](https://github.com/microsoft/autogen/pull/857) 试图用图来描述 `GroupChat`,让它可以按既定的顺序发言。这和我的想法有重合之处。 + +接下来,我又发现已发布的版本中,`ConversableAgent` 有一个 `description` 的参数,它不同于 `system_message`,后者是给自己看的 system prompt,而 `description` 是向别的智能体介绍自己用的。我同样可以把 FSM 里的 `on` 转移条件在 `description` 中去描述。也就是说,我可以将 `description` 和 Graph 结合,达到完整描述 FSM 的目的。在不破坏已有设计(采用 `description`)和高内聚(采用 `on` 条件)中,我决定选择前者。 + +当我发现 PR #857 同样无法按预期地顺序报数以后,我果然向 repo 提了 Issue*。 + +> [*] 注:正如我在[这里](https://github.com/microsoft/autogen/issues/1400#issuecomment-1914368471)所说,当时提交 Issue 前忙中出错,我误以为我环境中是 #857 所在分支的最新代码,而其实它的最新代码是可以按我预期状态工作的,所以我要向大家真诚道歉。 + +### 推进 PR #857 的合并 + +提出 Issue 之后,社区给了我[很积极的反馈](https://github.com/microsoft/autogen/pull/857#issuecomment-1913909945)。由于[这个契机](https://github.com/microsoft/autogen/pull/857#issuecomment-1911666678),我开始考虑如何将 FSM 的特性提供给大家。 + +虽然 PR 原作者提到,转移条件并没有在这个 PR 里考虑到**,但正如前文所说,将 `ConversableAgent` 的 `description` 参数和 PR #857 的图结合起来,即可得到 FSM 同样的效果。为了避免新开 PR 可能引起的新的讨论而浪费时间,我决定在现有的 PR 上继续。 + +对于现有的 PR,其实我只提出两个改进建议: + +1. 如果某一个发言者只有一个 successor,那就不需要 LLM 判断下一位发言者是谁,直接输出这个 successor 作为下一个说话者即可,这样不仅可以增强稳定性,还可以节省 LLM 的花销。 +2. 因为 FSM 的下一个状态仅由当前状态及转移条件决定,而与之前的任何一个状态都无关,所以在选择下一个说话者时,只需要保留最后一个说话者及其内容即可,同样可以达到增强稳定性和节省开销的作用。这里增强稳定性的路径和第一点不一样,第一点是地直接规避不必要的 LLM 判断,而第二点是避免过长的上下文对 LLM 输出质量的副作用**。 + +第一点很容易就被大家接受了,但是第二点 PR 作者和 Repo 所有者均有一定的担忧,认为我的建议过于激进,未被采纳**。 + +> [**] 注:我会在后文《经验教训》部分总结。 + +由于这个 PR 从提出到现在已接近 2 个月时间,反而是上面两个特性增加外的工作对我造成的阻碍更大。第一,这是一个不小的特性,PR 中前前后后的上下文有近千条,而且我也没有参与最初的设计讨论,我需要尽快地补齐所有的信息并理解原有的设计细节。 + +第二,由于此 PR 许久未合入主干,很多新的特性已上线,它们在设计上和此 PR 难免有冲突,导致在试图将 #857 合入主干时,引发了依赖 `GroupChat` 的另一个特性的单元测试失败。 + +我仔细看了冲突的特性,它是为 `GroupChat` 提供由外部智能体发起任务的功能。这也是我曾经考虑过的一个重要特性,就像病人就医时,医生可以向另一个团队请求会诊一样,我认为它非常重要。所以我进一步分析了两者的冲突点 [PR #912](https://github.com/microsoft/autogen/pull/912) 因为引入了不在 Graph 中的节点,导致它的 successor 为空,而 PR#857 是希望 graph 中如果有 sink 节点,可以优雅地退出,这两个诉求都是合理的。所以我将无 successor 分为了两类,识别区分它到底是不在图中还是是一个 sink 节点,针对它们采取不同的处理策略,合理兼顾了这两个特性。 + +经过近一周的接力,在多位贡献者的帮助下,成功将该特性合入主干并在 `0.2.11` 版本中正式提供给用户。 + +## FSM 特性的应用案例 + +其实我认为,除了头脑风暴等,在绝大多数应用场景中,FSM 可以被认为是 `GroupChat` 的必备特性。除了现有的 notebook 案例以外,我之前在 Issue 里描述的是另一种使用方法,大家可以认为它是在 `AutoGen` 框架中如何根据 FSM 来组织 `GroupChat` 的示范。 + +### 用法 + +1. 导入依赖 + + ```python + from autogen.agentchat import GroupChat, AssistantAgent, UserProxyAgent, GroupChatManager + from autogen.oai.openai_utils import config_list_from_dotenv + ``` +2. 配置 LLM 参数 + + ```python + # Please feel free to change it as you wish + config_list = config_list_from_dotenv( + dotenv_file_path='.env', + model_api_key_map={'gpt-4-1106-preview':'OPENAI_API_KEY'}, + filter_dict={ + "model": { + "gpt-4-1106-preview" + } + } + ) + + gpt_config = { + "cache_seed": None, + "temperature": 0, + "config_list": config_list, + "timeout": 100, + } + ``` + +3. 定义任务 + + ```python + # describe the task + task = """Add 1 to the number output by the previous role. If the previous number is 20, output "TERMINATE".""" + ``` + +4. 定义智能体 + + ```python + # agents configuration + engineer = AssistantAgent( + name="Engineer", + llm_config=gpt_config, + system_message=task, + description="""I am **ONLY** allowed to speak **immediately** after `Planner`, `Critic` and `Executor`. + If the last number mentioned by `Critic` is not a multiple of 5, the next speaker must be `Engineer`. + """ + ) + + planner = AssistantAgent( + name="Planner", + system_message=task, + llm_config=gpt_config, + description="""I am **ONLY** allowed to speak **immediately** after `User` or `Critic`. + If the last number mentioned by `Critic` is a multiple of 5, the next speaker must be `Planner`. + """ + ) + + executor = AssistantAgent( + name="Executor", + system_message=task, + is_termination_msg=lambda x: x.get("content", "") and x.get("content", "").rstrip().endswith("FINISH"), + llm_config=gpt_config, + description="""I am **ONLY** allowed to speak **immediately** after `Engineer`. + If the last number mentioned by `Engineer` is a multiple of 3, the next speaker can only be `Executor`. + """ + ) + + critic = AssistantAgent( + name="Critic", + system_message=task, + llm_config=gpt_config, + description="""I am **ONLY** allowed to speak **immediately** after `Engineer`. + If the last number mentioned by `Engineer` is not a multiple of 3, the next speaker can only be `Critic`. + """ + ) + + user_proxy = UserProxyAgent( + name="User", + system_message=task, + code_execution_config=False, + human_input_mode="NEVER", + llm_config=False, + description=""" + Never select me as a speaker. + """ + ) + ``` + + 1. 这里,我将 `system_messages` 配置成 "task",因为每个智能体各自的任务都是一样的,就是依次报数。 + 2. **最重要的是 `description` 参数, 我在这里用自然语言描述一 FSM 的转移条件。因为 manager 可以看到下一位发言者候选们的 `description` 参数,所以它与转移条件的作用是等价的,与传统 FSM 的区别是描述方式为自然语言,决策在 LLM。** + +5. 定义图 + + ```python + graph_dict = {} + graph_dict[user_proxy] = [planner] + graph_dict[planner] = [engineer] + graph_dict[engineer] = [critic, executor] + graph_dict[critic] = [engineer, planner] + graph_dict[executor] = [engineer] + ``` + + 1. **图和上面第 4 点中的转移条件共同组成了一个完整的 FSM,两者缺一不可。** + 2. 如果你想展示下图,可以安装相应依赖并用 AutoGen 自带的可视化函数。 + + ![[../Attachments/FSM-1.png]] + +6. 定义 `GroupChat` 和 `GroupChatManager` + + ```python + agents = [user_proxy, engineer, planner, executor, critic] + + # create the groupchat + group_chat = GroupChat(agents=agents, messages=[], max_round=25, allowed_or_disallowed_speaker_transitions=graph_dict, allow_repeat_speaker=None, speaker_transitions_type="allowed") + + # create the manager + manager = GroupChatManager( + groupchat=group_chat, + llm_config=gpt_config, + is_termination_msg=lambda x: x.get("content", "") and x.get("content", "").rstrip().endswith("TERMINATE"), + code_execution_config=False, + ) + ``` + +7. 初始化对话 + + ```python + # initiate the task + user_proxy.initiate_chat( + manager, + message="1", + clear_history=True + ) + ``` + +8. 你会得到以下输出(我删除了不必要的 Warning): + + ``` + User (to chat_manager): + + 1 + + -------------------------------------------------------------------------------- + Planner (to chat_manager): + + 2 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 3 + + -------------------------------------------------------------------------------- + Executor (to chat_manager): + + 4 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 5 + + -------------------------------------------------------------------------------- + Critic (to chat_manager): + + 6 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 7 + + -------------------------------------------------------------------------------- + Critic (to chat_manager): + + 8 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 9 + + -------------------------------------------------------------------------------- + Executor (to chat_manager): + + 10 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 11 + + -------------------------------------------------------------------------------- + Critic (to chat_manager): + + 12 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 13 + + -------------------------------------------------------------------------------- + Critic (to chat_manager): + + 14 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 15 + + -------------------------------------------------------------------------------- + Executor (to chat_manager): + + 16 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 17 + + -------------------------------------------------------------------------------- + Critic (to chat_manager): + + 18 + + -------------------------------------------------------------------------------- + Engineer (to chat_manager): + + 19 + + -------------------------------------------------------------------------------- + Critic (to chat_manager): + + 20 + + -------------------------------------------------------------------------------- + Planner (to chat_manager): + + TERMINATE + ``` + +## 讨论 + +至此,我们见识到了 FSM 的魔力。希望它能让大家的 `GroupChat` 变得更为可控、可预期。在此,我要感谢所有帮助到我的开发者,感谢大家的提供给我各种信息和建议,感谢 repo 所有者和 PR 作者给我这个合作开发的机会,让这个激动人心的特性得以发布出来。 + +另外还有一些经验教训和展望可以分享。 + +### 经验教训 + +1. 在整个开发过程中,充分的沟通是非常必要的,特别在用非母语的情境下,这一点更为重要。 +2. 在我上面用 [**] 标注的地方,事后了我反思一下,确实在我提出 Issue #1400 之前,大家似乎并没有考虑将 `description` 和 graph 相结合的方案,notebook 中的例子虽然激动人心,但确实也不是一个完整的 FSM。所以在原有的设计中,仅选择 `last_speaker` 和它的输出来决定下一个说话者,确实可能存在可靠性风险。而我因为我的建议二不被采纳而困惑,可能是我先入为主地认为大家会把 `description` 和 graph 结合成为一个完整的 FSM 来使用。可能因此产生了 GAP。以上只是我个人角度的反思,如有不对请大家指正。 + +### 进一步的工作 + +1. 就像我在《经验教训》中第二条提到的,可以考虑增加一个可选参数,让完整描述 FSM 的 `Groupchat` 可以配置 manager 只需要考虑最后一个发言者,理论上它会有利于准确性和省钱。 +2. 在 `AutoGenStudio` 发布之前,我在本地实现了一个几乎一样的后端服务。在 `AutoGenStudio` 出来以后,我果断倾向于拥抱 `AutoGenStudio`。在当时 `AutoGenStuio` 还不支持 `GroupChat`。虽然新的版本支持了,但是对 graph 的序列化和持久化,可能还会存在一些破坏性的变更。两者如何以最小代价结合,也是需要考虑的一个方向。 + +最后,我要再次感谢在此过程中所有帮助过我的人,包括但不限于 PR #857 的发起者 @joshkyh、`AutoGen` 的发起者 @sonichi、代码评审 @IANTHEREAL、@afourney、@qingyun-wu 等等。这是我第一次为热门开源项目做贡献。这是一次很棒的体验,希望以后可以为 `AutoGen` 提供更多特性。 \ No newline at end of file diff --git a/public/vaults/Publish/LLM/Multi-agent-Voyager-Play-Minecraft.md b/public/vaults/Publish/LLM/Multi-agent-Voyager-Play-Minecraft.md new file mode 100644 index 0000000..313e9fa --- /dev/null +++ b/public/vaults/Publish/LLM/Multi-agent-Voyager-Play-Minecraft.md @@ -0,0 +1,835 @@ +# The Voyager Paradigm: Minecraft as a Testbed for Multi-Agent AI Collaboration + +![[../Attachments/Minecraft.png]] + +## TL; DR + +Voyager is an outstanding application of multi-agent AI systems in the game Minecraft. Through the collaboration and division of labor among four intelligent agents, Voyager can explore and execute tasks in an open world, much like human players. The key lies in the hierarchical design of perception-decision-action. + +Overall, Voyager demonstrates an excellent paradigm for multi-agent collaboration, but further exploration is needed to extend its application to broader domains. Expanding Voyager’s capabilities to other areas may face several challenges: + +1. Designing appropriate skill libraries for new domains. +2. Adapting to different environments may require modifications to the agents’ perception and interaction mechanisms. +3. Differences in data processing methods. +4. Limitations in real-time processing capabilities of language models. + +## Overview + +Minecraft is an open-world game that provides a diverse environment for various interactions and experiments. The Voyager project stands out as a remarkable application of AI multi-agents, where different agents collaborate within the Minecraft environment to perform tasks dynamically. This collaboration mimics human-like gameplay through the strategic use of agents that manage tasks, skills, and actions, thereby pushing the boundaries of AI in interactive and complex world. + +## Prerequisites + +### Key Path + +> Minecraft ←→ [PrismarineJS/node-minecraft-protocol](https://github.com/PrismarineJS/node-minecraft-protocol) ←→ [PrismarineJS/mineflayer](https://github.com/PrismarineJS/mineflayer) ←→ [MineDojo/Voyager](https://github.com/MineDojo/Voyager) + +This key path represents the mechanism by which the LLM (Large Language Model) empowered Voyager plays Minecraft. + +- **Minecraft** provides the game environment. +- **node-minecraft-protocol** adds the ability to programmatically interact with Minecraft servers at a protocol level. +- **mineflayer** offers a high-level API for creating bots that can perform complex tasks within Minecraft. +- **Voyager** utilizes the capability of LLM to explore the open world within Minecraft. + - **Agents** cooperate with each other to play the game like a human being. + * **Curriculum Agent**: This agent possesses prior knowledge about Minecraft and can decide on the next task based on the observations from the environment and completed tasks. + * **Skill Manager**: The Skill Manager retrieves the appropriate skills based on task descriptions and is also capable of adding new skills when necessary. + * **Action Agent**: Decides how to solve the task with retrieved skills and observations from the environment and structures these as JavaScript codes. + * **Critic Agent**: The Critic Agent evaluates the actions taken by Action Agent, judging if the task is successful. + - **Bridge between Agents & Environment**: the bridge between Agents written in Python and Environment implemented in JavaScript. + - **Environment**: Voyager runs a node.js service to use mineflayer. To enhance the performance of the Agents, Voyager has implemented numerous fundamental skills and wrappers. + +### Auxiliary Path + +> Minecraft ←→ Fabric ←→ Fabric APIs ←→ Essential features for Voyager + +This auxiliary path is established to address the limitations posed by the lack of real-time processing capabilities in LLMs. Therefore, operations to pause/resume the game are necessary for agents. + +## Learning loop of Voyager + +![[../Attachments/Voyager流程.png]] + +### Pseudocode + +```Pseudocode +1: Initialize: +2: completed_tasks ← ∅ +3: failed_tasks ← ∅ +4: skill_library ← ∅ +5: while True do +6: task ← CurriculumAgent.ProposeNextTask(completed_tasks, failed_tasks) +7: success ← False +8: for i ← 1 to max_retries do +9: state ← env.reset() +10: skills ← SkillManager.RetrieveSkills(task, skill_library) +11: action ← ActionAgent.GenerateCode(state, task, skills) +12: state ← env.step(action) +13: success, critique ← CriticAgent.CheckTaskSuccess(state) +14: if success then +15: break +16: end if +17: end for +18: if success then +19: skill_library ← SkillManager.AddSkill(action, skill_library) +20: completed_tasks ← completed_tasks ∪ {task} +21: else +22: failed_tasks ← failed_tasks ∪ {task} +23: end if +24: end while +``` + +### Outer Loop + +1. **Propose New Task**: The workflow initiates with the system proposing a new task. The curriculum agent generates a new task based on the latest events and the prior knowledge of Minecraft. +2. **Reset**: After establishing a new task, the system enters the reset phase. This stage is composed of two critical subprocesses: + - **Retrieve Skills**: The Skill Manager selects the top five skills that best match the requirements of the task from the skill library for the Action Agent to choose from. + - **Observe Environment**: The Action Agent reviews previous events, primarily including: + * What code was executed last + * Any execution errors + * Chat logs (i.e., the output of the last executed code) + * Biome and time + * Nearby objects and creatures (from nearest to farthest) + * Status: health, hunger, coordinates + * Equipments + * What was in the inventory + * Locations of nearby chests + * What the task is + * Task context (more detailed information about the task) + * Any feedback from the Critic Agent +3. **Rollout**: With a new task set and after resetting its state, the system proceeds to the rollout stage. It operates in a loop, exiting only upon task success or after reaching the maximum number of failures. Specifically, the steps will be analyzed in detail in the Inner Loop section. +4. **Whether Add a Skill**: The skill is validated if the task completes successfully. Then the skill manager will ask the action agent to describe the skill and add it into the skill library unless it exists already. +5. **Update Exploration**: As the final step in the loop, this phase involves writing various events from the previous step to disk files, updating the spatiotemporal status, refreshing the task information, and preparing to propose the next task. + +### Inner Loop (Rollout) + +1. **Generate Code**: In this initial step, the action agent, working with a ReAct prompt, generates code that will be executed based on the assigned task, selected skills, and the current environmental status. +2. **Execute Code in Environment**: The generated code is then executed within a specific environment. This execution involves several nested steps: + - **Check Service**: The system performs checks to ensure that everything required is ready. + - **Resume Game**: If the environment is game-like or simulation-based, the “game” is resumed, which signifies the continuation of the environment’s progression to allow for code interaction. + - **Run Code**: The actual execution of the code takes place, which could involve manipulating the environment, processing data, or performing any number of actions as dictated by the generated scripts. + - **Pause Game**: If applicable, the game-like or simulation environment is paused, which may be necessary for the system to evaluate the outcome or to prepare for the next set of actions. + - **Return Observations**: Return the execution result as the latest events. +3. **Check Task Success**: After the code is run, the critic agent evaluates whether the task has been successfully completed. If failed, it will give some advice to the action agent. +4. **Update**: + - **Skills**: The system updates its repository of skills based on the recent execution outcomes. To increase the success rate of the next attempt, it is necessary to select more appropriate skills for the next task by incorporating a summary of the reasons for the previous failure into the existing task description. + - **Environment**: The environment itself may be updated as a result of the code execution, which could involve changes to the configuration, state, or available resources within the environment. + - **Memory**: The system updates its memory, which includes storing new experiences, observations, and results from the current rollout. This allows for learning and adaptation, as the system retains information that can be utilized in future decision-making processes. + +## Experiments + +Summarize Voyager’s performance during a 1+ hour gameplay session: + +**Curriculum Agent**: + +Responsible for creating a logical sequence of tasks, guiding the Action Agent to achieve higher-level objectives. Throughout the process, it proposed tasks such as gathering wood, crafting tools, mining ores, and smelting minerals, with gradually increasing difficulty. However, it needs to better gauge the capabilities of the Action Agent, as it sometimes repeatedly suggests tasks that the Action Agent is temporarily unable to complete, or that are outright impossible. + +**Action Agent**: + +Operates according to the task requirements set by the Curriculum Agent, performing actual gameplay actions. It is generally capable of completing tasks like gathering, crafting, and smelting, showing a decent understanding of the basic rules and processes of the game. However, some actions lack precision, such as when placing the furnace. There is room for improvement in mastering details like crafting recipes and smelting durations. + +**Critic Agent**: + +Responsible for evaluating whether the actions of the Action Agent meet the objectives set by the Curriculum Agent. It can accurately check changes in the quantity of items, providing objective feedback on success or failure. However, its criteria for judgment are relatively simplistic, lacking suggestions for optimizing successful tasks. + +### Typical successful logs + +```Text +Starting task Mine 1 wood log for at most 4 times +Render Action Agent system message with 0 skills +****Action Agent human message**** +Code from the last round: No code in the first round + +Execution error: No error + +Chat log: None + +Biome: forest + +Time: noon + +Nearby blocks: oak_leaves, birch_leaves, oak_log, birch_log + +Nearby entities (nearest to farthest): bee + +Health: 20.0/20 + +Hunger: 20.0/20 + +Position: x=-63.5, y=75.0, z=-15.5 + +Equipment: [None, None, None, None, None, None] + +Inventory (0/36): Empty + +Chests: None + +Task: Mine 1 wood log + +Context: You can mine one of oak, birch, spruce, jungle, acacia, dark oak, or mangrove logs. + +Critique: None + +****Action Agent ai message**** +Explain: Since the task is to mine 1 wood log and the nearby blocks include oak and birch logs, we can directly use the `mineBlock` function to mine one of these logs. The inventory is empty, and there is no equipment, but for mining a log, no specific tools are required. The biome and the presence of oak and birch logs confirm that these resources are readily available. + +Plan: +1) Check the inventory to see if there is already a wood log. If there is, the task is complete. +2) If not, use the `mineBlock` function to mine either an oak log or a birch log, as both are available nearby. +3) Update the bot's inventory to reflect the newly mined log. + +Code: +```javascript +async function mineOneWoodLog(bot) { + // Check if the bot already has a wood log in the inventory + const woodLog = bot.inventory.items().find(item => item.name.includes('log')); + if (woodLog) { + bot.chat("Wood log is already in the inventory."); + return; + } + + // Define the types of logs that can be mined + const logTypes = ['oak_log', 'birch_log', 'spruce_log', 'jungle_log', 'acacia_log', 'dark_oak_log', 'mangrove_log']; + + // Find a nearby log block + const targetLog = bot.findBlock({ + matching: block => logTypes.includes(block.name), + maxDistance: 32 + }); + + if (!targetLog) { + bot.chat("No log found within reach. Exploring to find one."); + // Explore to find a log if not immediately found + const foundLog = await exploreUntil(bot, new Vec3(1, 0, 1), 60, () => { + return bot.findBlock({ + matching: block => logTypes.includes(block.name), + maxDistance: 32 + }); + }); + if (!foundLog) { + bot.chat("Failed to find a log after exploring."); + return; + } + // Mine the found log + await mineBlock(bot, foundLog.name, 1); + } else { + // Mine the log directly if found + await mineBlock(bot, targetLog.name, 1); + } + + bot.chat("Wood log has been mined and added to the inventory."); +} + +This function first checks if the bot already has a log in its inventory. If not, it attempts to find a log nearby and mines it. If no log is found within the immediate vicinity, the bot will explore to find one and then mine it. +****Recorder message: 294 ticks have elapsed**** +****Recorder message: 1 iteration passed**** +****Critic Agent human message**** +Biome: forest + +Time: noon + +Nearby blocks: oak_leaves, oak_log, birch_leaves, birch_log + +Health: 20.0/20 + +Hunger: 20.0/20 + +Position: x=-63.5, y=73.0, z=-14.4 + +Equipment: [None, None, None, None, 'oak_log', None] + +Inventory (1/36): {'oak_log': 1} + +Chests: None + +Task: Mine 1 wood log + +Context: You can mine one of oak, birch, spruce, jungle, acacia, dark oak, or mangrove logs. + + +****Critic Agent ai message**** +{ + "reasoning": "You need to mine 1 wood log. You have 1 oak log in your inventory, which meets the requirement.", + "success": true, + "critique": "" +} +Skill Manager generated description for mineOneWoodLog: +async function mineOneWoodLog(bot) { + // The function is about mining a single wood log. It checks if the bot already has a wood log in the inventory and returns if it does. It then defines the types of logs that can be mined and searches for a nearby log block within a certain distance. If no log is found nearby, it explores the area to locate one. Once a log is found, it mines the log and adds it to the inventory, notifying the user of the successful action. +} +Completed task Mine 1 wood log. +Completed tasks: Mine 1 wood log +Failed tasks: +****Curriculum Agent human message**** +Nearby blocks: oak_leaves, oak_log, birch_leaves, birch_log + +Position: x=-63.5, y=73.0, z=-14.4 + +Equipment: [None, None, None, None, 'oak_log', None] + +Inventory (1/36): {'oak_log': 1} + +Chests: None + +Completed tasks so far: Mine 1 wood log + +Failed tasks that are too hard: None + + +****Curriculum Agent ai message**** +Reasoning: You have only one oak log in your inventory and no other resources or equipment. To progress, you'll need more basic materials like wood for crafting tools and other items. + +Task: Obtain 5 oak logs. +Curriculum Agent Question: How to obtain 5 oak logs in Minecraft? +Curriculum Agent Answer: To obtain 5 oak logs in Minecraft, you can start by finding oak trees in the game. Use a wooden or better axe to chop down the oak trees, and each tree should drop oak logs when broken. Collect the oak logs until you have 5 in your inventory. +Starting task Obtain 5 oak logs for at most 4 times +Skill Manager retrieving for 1 skills +Skill Manager retrieved skills: mineOneWoodLog +Render Action Agent system message with 1 skills +****Action Agent human message**** +Code from the last round: No code in the first round + +Execution error: No error + +Chat log: None + +Biome: forest + +Time: noon + +Nearby blocks: oak_leaves, oak_log, birch_leaves, birch_log + +Nearby entities (nearest to farthest): bee, chicken + +Health: 20.0/20 + +Hunger: 20.0/20 + +Position: x=-63.5, y=73.0, z=-14.4 + +Equipment: [None, None, None, None, 'oak_log', None] + +Inventory (1/36): {'oak_log': 1} + +Chests: None + +Task: Obtain 5 oak logs + +Context: Question: How to obtain 5 oak logs in Minecraft? +Answer: To obtain 5 oak logs in Minecraft, you can start by finding oak trees in the game. Use a wooden or better axe to chop down the oak trees, and each tree should drop oak logs when broken. Collect the oak logs until you have 5 in your inventory. + +Critique: None + + +****Action Agent ai message**** +Explain: +The task is to obtain 5 oak logs. The inventory already contains 1 oak log, so the bot needs to collect 4 more oak logs. The nearby blocks include oak logs, which means the bot can directly mine these without needing to explore further. + +Plan: +1) Check the current inventory to confirm the number of oak logs already collected. +2) Calculate the number of additional oak logs needed to reach a total of 5. +3) Use the `mineBlock` function to mine the required number of oak logs from nearby oak trees. +4) Confirm that the inventory has 5 oak logs after mining. + +Code: +```javascript +async function obtainFiveOakLogs(bot) { + // Check current inventory for oak logs + const currentOakLogs = bot.inventory.count(mcData.itemsByName['oak_log'].id); + bot.chat(`Currently have ${currentOakLogs} oak logs.`); + + // Calculate how many more oak logs are needed + const oakLogsNeeded = 5 - currentOakLogs; + + if (oakLogsNeeded > 0) { + // Find and mine the required number of oak logs + await mineBlock(bot, 'oak_log', oakLogsNeeded); + bot.chat(`Mined the required oak logs. Total now should be 5.`); + } else { + bot.chat("Already have 5 or more oak logs in inventory."); + } + + // Final check for inventory count (optional, for verification) + const finalCount = bot.inventory.count(mcData.itemsByName['oak_log'].id); + bot.chat(`Final count of oak logs in inventory: ${finalCount}`); +} + +This function checks the inventory for existing oak logs, calculates how many more are needed, mines the required amount, and verifies the final count. +****Recorder message: 786 ticks have elapsed**** +****Recorder message: 2 iteration passed**** +****Critic Agent human message**** +Biome: forest + +Time: noon + +Nearby blocks: oak_leaves, grass, grass_block, dirt, oak_log, birch_log, birch_leaves + +Health: 20.0/20 + +Hunger: 20.0/20 + +Position: x=-63.5, y=69.0, z=-14.4 + +Equipment: [None, None, None, None, 'oak_log', None] + +Inventory (1/36): {'oak_log': 5} + +Chests: None + +Task: Obtain 5 oak logs + +Context: Question: How to obtain 5 oak logs in Minecraft? +Answer: To obtain 5 oak logs in Minecraft, you can start by finding oak trees in the game. Use a wooden or better axe to chop down the oak trees, and each tree should drop oak logs when broken. Collect the oak logs until you have 5 in your inventory. + + +****Critic Agent ai message**** +{ + "reasoning": "You needed to obtain 5 oak logs. Your inventory shows you have 5 oak logs, which meets the task requirement.", + "success": true, + "critique": "" +} +Skill Manager retrieving for 1 skills +Skill Manager retrieved skills: mineOneWoodLog +Skill Manager generated description for obtainFiveOakLogs: +async function obtainFiveOakLogs(bot) { + // The function is focused on obtaining a total of five oak logs. It checks the current inventory for oak logs and calculates how many more logs are needed to reach five. If additional logs are required, it finds and mines the necessary number of oak logs. After mining, it confirms the updated total count of oak logs in the inventory. +} +Completed task Obtain 5 oak logs. +Completed tasks: Mine 1 wood log, Obtain 5 oak logs +Failed tasks: +****Curriculum Agent human message**** +Nearby blocks: oak_leaves, grass, grass_block, dirt, oak_log, birch_log, birch_leaves + +Position: x=-63.5, y=69.0, z=-14.4 + +Equipment: [None, None, None, None, 'oak_log', None] + +Inventory (1/36): {'oak_log': 5} + +Chests: None + +Completed tasks so far: Mine 1 wood log, Obtain 5 oak logs + +Failed tasks that are too hard: None +``` +## Discussion + +Voyager can be seen as a specialized form of Autogen, where both systems provide valuable insights into the functioning and potential of AI applications. While Voyager presents a compelling case for AI in gaming, where agents work like a controller for perception, decision-making and action, transferring its capabilities to other domains might present several challenges: + +1. **Skill Translation**: Before an agent can write skills for a new domain, it might require the development of meta-skills or foundational skills that support domain-specific knowledge and understanding. How to design the skill library is a challenge. +2. **Environment Adaptability**: Adapting AI agents to work with different types of environments, especially those that differ significantly from the gaming world, could require substantial changes in the agents’ perception and interaction mechanisms. +3. **Data Handling and Processing**: The way data is processed and handled in other domains might differ, necessitating modifications to the system’s data processing pipelines. +4. **Real-time Processing**: As mentioned, the current system uses workarounds for real-time processing limitations in LLMs. At this point, it seems there is no solution available; the only option is to choose to do the appropriate tasks. + +By addressing these challenges, the principles learned from Voyager could potentially be extended to a wider array of applications, enhancing the versatility and capability of AI systems across various fields. + +# 关于 Voyager 控制 Minecraft API 的整理 + +![[../Attachments/Minecraft.png]] + +## 太长不看 + +Voyager 是一个优秀的多智能体 AI 系统在 Minecraft 游戏中的应用。通过 4 个智能体分工协作,Voyager 能够像人类玩家一样在开放世界中进行探索和任务执行。其关键在于 perception-decision-action 的层级规划和内外循环的设计。 + +总的来说,Voyager 为多智能体协作展示了一种优秀的范式,但将其推广到更广泛的领域还需要进一步的探索。将 Voyager 的能力扩展到其他领域可能面临一些挑战:1) 针对新领域设计合适的技能库;2) 适应不同环境可能需要修改智能体的感知和交互机制;3) 数据处理方式的差异;4)语言模型实时处理能力的限制。 + +## 概述 + +Minecraft 是一款开放世界游戏,提供了一个多样化的环境用于各种交互和实验。Voyager 项目作为多智能体 AI 的一个优秀应用,其中不同的智能体在 Minecraft 环境中协作执行任务,探索世界。这种协作通过有策略地管理任务、技能和行动,模仿了人类的游戏方式,探索 AI 在交互式和复杂世界中的边界。 + +## 前置知识 + +### 关键路径 + +> Minecraft <--> [PrismarineJS/node-minecraft-protocol](https://link.zhihu.com/?target=https%3A//github.com/PrismarineJS/node-minecraft-protocol) <--> [PrismarineJS/mineflayer](https://link.zhihu.com/?target=https%3A//github.com/PrismarineJS/mineflayer) <--> [MineDojo/Voyager](https://link.zhihu.com/?target=https%3A//github.com/MineDojo/Voyager) + + +这个关键路径表示了基于 LLM 的 Voyager 控制 Minecraft API 的机制。 + +- **Minecraft** 提供游戏环境。 +- **node-minecraft-protocol** 提供了在协议级别以编程方式与 Minecraft 服务器交互的能力。 +- **mineflayer** 提供了一系列高级 API,用于创建可以在 Minecraft 中执行复杂任务的机器人。 +- **Voyager** 利用 LLM 的能力在 Minecraft 的开放世界中进行探索。各个智能体相互合作,像一个人一样在玩游戏。 + - **Curriculum Agent**:该智能体拥有关于 Minecraft 的先验知识,可以根据环境中的观察结果和已完成的任务决定下一个任务。 + - **Skill Manager**:它根据任务描述检索适当的技能,并且在必要时添加新技能。 + - **Action Agent**:根据检索到的技能和环境中的观察结果,决定如何解决任务,并将其构造为 JavaScript 代码。 + - **Critic Agent**:它评估 Action Agent 采取的行动,判断任务是否成功。 + - **智能体与环境之间的桥梁**:用 Python 编写的智能体与用 JavaScript 实现的环境之间的桥梁。 + - **环境**:Voyager 运行一个 node.js 服务来使用 mineflayer。为了提高智能体的性能,Voyager 实现了许多基本技能和包装器。 + +> 注意:如果要将 Voyager 的操作转移到不同的领域,设计的这一方面将至关重要且具有挑战性。 + +### 辅助路径 + +> Minecraft <--> Fabric <--> Fabric APIs <--> Voyager 的基本功能 + +建立这条辅助路径是为了解决由于 LLM 缺乏实时处理能力而带来的限制。对于智能体来说,暂停/恢复游戏的操作是必要的。 + +## Voyager 的学习循环 + +![[../Attachments/Voyager流程.png]] + +### 伪代码 + +```Pseudocode +1: Initialize: +2: completed_tasks ← ∅ +3: failed_tasks ← ∅ +4: skill_library ← ∅ +5: while True do +6: task ← CurriculumAgent.ProposeNextTask(completed_tasks, failed_tasks) +7: success ← False +8: for i ← 1 to max_retries do +9: state ← env.reset() +10: skills ← SkillManager.RetrieveSkills(task, skill_library) +11: action ← ActionAgent.GenerateCode(state, task, skills) +12: state ← env.step(action) +13: success, critique ← CriticAgent.CheckTaskSuccess(state) +14: if success then +15: break +16: end if +17: end for +18: if success then +19: skill_library ← SkillManager.AddSkill(action, skill_library) +20: completed_tasks ← completed_tasks ∪ {task} +21: else +22: failed_tasks ← failed_tasks ∪ {task} +23: end if +24: end while +``` + +### 外循环 + +1. **提出新任务**:工作流从提出新任务开始。Curriculum Agent 根据最新事件和 Minecraft 的先验知识生成新任务。 +2. **重置**:建立新任务后,系统进入重置阶段。这个阶段由两个关键的子过程组成: + 1. **检索技能**: Skill Manager 从技能库中选择与任务要求最匹配的前 5 个技能,供 Action Agent 选择。 + 2. **观察环境**:Action Agent 回顾之前的事件,主要包括: + 1. 上次执行的代码是什么 + 2. 有无执行错误信息 + 3. 聊天记录(即上次执行代码的输出) + 4. 环境和时间 + 5. 附近的物体和生物(由近及远) + 6. 状态:健康、饥饿、坐标 + 7. 装备 + 8. 仓库物品 + 9. 附近箱子的位置 + 10. 任务是什么 + 11. 任务上下文(关于任务的更详细信息) + 12. 来自 Critic Agent 的反馈 +3. **执行任务**:设置新任务并重置状态后,Action Agent 开始进入执行阶段。它本身就是一个循环,仅在任务成功或达到最大失败次数后退出。具体步骤将在内循环部分进行详细分析。 +4. **是否添加技能**:如果任务成功完成,则可以证明该技能是有用的。然后,如果该技能不在技能库中,Skill Manager 会要求 Action Agent描述该技能,并将其添加到技能库中。 +5. **更新探索**:作为循环中的最后一步,此阶段涉及将上一步中的各种事件写入磁盘文件,更新时空状态,刷新任务信息,为提出下一个任务做准备。 + +### 内循环(执行任务) + +1. **生成代码**:在此初始步骤中, Action Agent 以 ReAct 的方式工作。根据分配的任务、选定的技能和当前环境状态生成解决任务的代码。 +2. **在环境中执行代码**:生成的代码随后在特定环境中执行。这个执行涉及几个子步骤: + 1. **检查服务**:系统执行检查以确保所需的一切都已准备就绪。 + 2. **恢复游戏**:像前文描述,在 Agent 决策完毕后,需要恢复游戏,以允许代码和环境交互。 + 3. **运行代码**:实际执行代码,可能涉及操纵环境或物品等。 + 4. **暂停游戏**:运行完成以后,Agent 需要先暂停游戏,再开始整理信息并思考下一步行动。 + 5. **返回观察结果**:将执行结果作为最新事件返回。 +3. **检查任务成功**:Critic Agent 评估任务是否已成功完成。如果失败,它将向 Action Agent 提供新的建议。 +4. **更新**: + 1. **技能**: Skill Manager 根据最近的执行结果更新其技能库。为了提高下一次尝试的成功率,有必要通过将前一次失败原因总结合并到现有任务描述中,为下一个任务选择更合适的技能。 + 2. **环境**:环境本身可能因代码执行而更新,所以需要更新,如果任务失败,同样要恢复环境。 + 3. **记忆**:系统更新各种记忆,包括存储最新的事件以及最近的任务信息,以用于下一步任务的决策。 + +## 实验 + +总结一下 Voyager 在 1 个多小时试玩中的 Log 表现: +**Curriculum Agent**: +负责制定合理的任务序列,引导 Action Agent 完成更高阶的目标。在整个过程中提出了采集木头、制作工具、开采矿石、熔炼矿物等任务,难度逐步提升。但对 Action Agent 的能力把握还需加强,有时会反复提出 Action Agent 暂时无法完成的任务,或者根本不可能完成的任务。 +**Action Agent**: +根据 Curriculum Agent 的任务要求,执行实际的游戏操作。基本能够完成采集、合成、熔炼等任务,对游戏的基本规则和流程有一定的理解。但在某些操作上还不够精准,如放置熔炉时考虑不周。可以加强对合成配方、熔炼时间等细节的学习。 +**Critic Agent**: +负责评判 Action Agent 的行动是否达成了 Curriculum Agent 提出的任务目标。能够准确检查物品的数量变化,给出客观的成功或失败反馈。但评判依据相对单一,对于成功的任务没有如何更优的建议。 + +### 典型成功 Log + +```Text +Starting task Mine 1 wood log for at most 4 times +Render Action Agent system message with 0 skills +****Action Agent human message**** +Code from the last round: No code in the first round + +Execution error: No error + +Chat log: None + +Biome: forest + +Time: noon + +Nearby blocks: oak_leaves, birch_leaves, oak_log, birch_log + +Nearby entities (nearest to farthest): bee + +Health: 20.0/20 + +Hunger: 20.0/20 + +Position: x=-63.5, y=75.0, z=-15.5 + +Equipment: [None, None, None, None, None, None] + +Inventory (0/36): Empty + +Chests: None + +Task: Mine 1 wood log + +Context: You can mine one of oak, birch, spruce, jungle, acacia, dark oak, or mangrove logs. + +Critique: None + +****Action Agent ai message**** +Explain: Since the task is to mine 1 wood log and the nearby blocks include oak and birch logs, we can directly use the `mineBlock` function to mine one of these logs. The inventory is empty, and there is no equipment, but for mining a log, no specific tools are required. The biome and the presence of oak and birch logs confirm that these resources are readily available. + +Plan: +1) Check the inventory to see if there is already a wood log. If there is, the task is complete. +2) If not, use the `mineBlock` function to mine either an oak log or a birch log, as both are available nearby. +3) Update the bot's inventory to reflect the newly mined log. + +Code: +```javascript +async function mineOneWoodLog(bot) { + // Check if the bot already has a wood log in the inventory + const woodLog = bot.inventory.items().find(item => item.name.includes('log')); + if (woodLog) { + bot.chat("Wood log is already in the inventory."); + return; + } + + // Define the types of logs that can be mined + const logTypes = ['oak_log', 'birch_log', 'spruce_log', 'jungle_log', 'acacia_log', 'dark_oak_log', 'mangrove_log']; + + // Find a nearby log block + const targetLog = bot.findBlock({ + matching: block => logTypes.includes(block.name), + maxDistance: 32 + }); + + if (!targetLog) { + bot.chat("No log found within reach. Exploring to find one."); + // Explore to find a log if not immediately found + const foundLog = await exploreUntil(bot, new Vec3(1, 0, 1), 60, () => { + return bot.findBlock({ + matching: block => logTypes.includes(block.name), + maxDistance: 32 + }); + }); + if (!foundLog) { + bot.chat("Failed to find a log after exploring."); + return; + } + // Mine the found log + await mineBlock(bot, foundLog.name, 1); + } else { + // Mine the log directly if found + await mineBlock(bot, targetLog.name, 1); + } + + bot.chat("Wood log has been mined and added to the inventory."); +} + +This function first checks if the bot already has a log in its inventory. If not, it attempts to find a log nearby and mines it. If no log is found within the immediate vicinity, the bot will explore to find one and then mine it. +****Recorder message: 294 ticks have elapsed**** +****Recorder message: 1 iteration passed**** +****Critic Agent human message**** +Biome: forest + +Time: noon + +Nearby blocks: oak_leaves, oak_log, birch_leaves, birch_log + +Health: 20.0/20 + +Hunger: 20.0/20 + +Position: x=-63.5, y=73.0, z=-14.4 + +Equipment: [None, None, None, None, 'oak_log', None] + +Inventory (1/36): {'oak_log': 1} + +Chests: None + +Task: Mine 1 wood log + +Context: You can mine one of oak, birch, spruce, jungle, acacia, dark oak, or mangrove logs. + + +****Critic Agent ai message**** +{ + "reasoning": "You need to mine 1 wood log. You have 1 oak log in your inventory, which meets the requirement.", + "success": true, + "critique": "" +} +Skill Manager generated description for mineOneWoodLog: +async function mineOneWoodLog(bot) { + // The function is about mining a single wood log. It checks if the bot already has a wood log in the inventory and returns if it does. It then defines the types of logs that can be mined and searches for a nearby log block within a certain distance. If no log is found nearby, it explores the area to locate one. Once a log is found, it mines the log and adds it to the inventory, notifying the user of the successful action. +} +Completed task Mine 1 wood log. +Completed tasks: Mine 1 wood log +Failed tasks: +****Curriculum Agent human message**** +Nearby blocks: oak_leaves, oak_log, birch_leaves, birch_log + +Position: x=-63.5, y=73.0, z=-14.4 + +Equipment: [None, None, None, None, 'oak_log', None] + +Inventory (1/36): {'oak_log': 1} + +Chests: None + +Completed tasks so far: Mine 1 wood log + +Failed tasks that are too hard: None + + +****Curriculum Agent ai message**** +Reasoning: You have only one oak log in your inventory and no other resources or equipment. To progress, you'll need more basic materials like wood for crafting tools and other items. + +Task: Obtain 5 oak logs. +Curriculum Agent Question: How to obtain 5 oak logs in Minecraft? +Curriculum Agent Answer: To obtain 5 oak logs in Minecraft, you can start by finding oak trees in the game. Use a wooden or better axe to chop down the oak trees, and each tree should drop oak logs when broken. Collect the oak logs until you have 5 in your inventory. +Starting task Obtain 5 oak logs for at most 4 times +Skill Manager retrieving for 1 skills +Skill Manager retrieved skills: mineOneWoodLog +Render Action Agent system message with 1 skills +****Action Agent human message**** +Code from the last round: No code in the first round + +Execution error: No error + +Chat log: None + +Biome: forest + +Time: noon + +Nearby blocks: oak_leaves, oak_log, birch_leaves, birch_log + +Nearby entities (nearest to farthest): bee, chicken + +Health: 20.0/20 + +Hunger: 20.0/20 + +Position: x=-63.5, y=73.0, z=-14.4 + +Equipment: [None, None, None, None, 'oak_log', None] + +Inventory (1/36): {'oak_log': 1} + +Chests: None + +Task: Obtain 5 oak logs + +Context: Question: How to obtain 5 oak logs in Minecraft? +Answer: To obtain 5 oak logs in Minecraft, you can start by finding oak trees in the game. Use a wooden or better axe to chop down the oak trees, and each tree should drop oak logs when broken. Collect the oak logs until you have 5 in your inventory. + +Critique: None + + +****Action Agent ai message**** +Explain: +The task is to obtain 5 oak logs. The inventory already contains 1 oak log, so the bot needs to collect 4 more oak logs. The nearby blocks include oak logs, which means the bot can directly mine these without needing to explore further. + +Plan: +1) Check the current inventory to confirm the number of oak logs already collected. +2) Calculate the number of additional oak logs needed to reach a total of 5. +3) Use the `mineBlock` function to mine the required number of oak logs from nearby oak trees. +4) Confirm that the inventory has 5 oak logs after mining. + +Code: +```javascript +async function obtainFiveOakLogs(bot) { + // Check current inventory for oak logs + const currentOakLogs = bot.inventory.count(mcData.itemsByName['oak_log'].id); + bot.chat(`Currently have ${currentOakLogs} oak logs.`); + + // Calculate how many more oak logs are needed + const oakLogsNeeded = 5 - currentOakLogs; + + if (oakLogsNeeded > 0) { + // Find and mine the required number of oak logs + await mineBlock(bot, 'oak_log', oakLogsNeeded); + bot.chat(`Mined the required oak logs. Total now should be 5.`); + } else { + bot.chat("Already have 5 or more oak logs in inventory."); + } + + // Final check for inventory count (optional, for verification) + const finalCount = bot.inventory.count(mcData.itemsByName['oak_log'].id); + bot.chat(`Final count of oak logs in inventory: ${finalCount}`); +} + +This function checks the inventory for existing oak logs, calculates how many more are needed, mines the required amount, and verifies the final count. +****Recorder message: 786 ticks have elapsed**** +****Recorder message: 2 iteration passed**** +****Critic Agent human message**** +Biome: forest + +Time: noon + +Nearby blocks: oak_leaves, grass, grass_block, dirt, oak_log, birch_log, birch_leaves + +Health: 20.0/20 + +Hunger: 20.0/20 + +Position: x=-63.5, y=69.0, z=-14.4 + +Equipment: [None, None, None, None, 'oak_log', None] + +Inventory (1/36): {'oak_log': 5} + +Chests: None + +Task: Obtain 5 oak logs + +Context: Question: How to obtain 5 oak logs in Minecraft? +Answer: To obtain 5 oak logs in Minecraft, you can start by finding oak trees in the game. Use a wooden or better axe to chop down the oak trees, and each tree should drop oak logs when broken. Collect the oak logs until you have 5 in your inventory. + + +****Critic Agent ai message**** +{ + "reasoning": "You needed to obtain 5 oak logs. Your inventory shows you have 5 oak logs, which meets the task requirement.", + "success": true, + "critique": "" +} +Skill Manager retrieving for 1 skills +Skill Manager retrieved skills: mineOneWoodLog +Skill Manager generated description for obtainFiveOakLogs: +async function obtainFiveOakLogs(bot) { + // The function is focused on obtaining a total of five oak logs. It checks the current inventory for oak logs and calculates how many more logs are needed to reach five. If additional logs are required, it finds and mines the necessary number of oak logs. After mining, it confirms the updated total count of oak logs in the inventory. +} +Completed task Obtain 5 oak logs. +Completed tasks: Mine 1 wood log, Obtain 5 oak logs +Failed tasks: +****Curriculum Agent human message**** +Nearby blocks: oak_leaves, grass, grass_block, dirt, oak_log, birch_log, birch_leaves + +Position: x=-63.5, y=69.0, z=-14.4 + +Equipment: [None, None, None, None, 'oak_log', None] + +Inventory (1/36): {'oak_log': 5} + +Chests: None + +Completed tasks so far: Mine 1 wood log, Obtain 5 oak logs + +Failed tasks that are too hard: None +``` + +## 讨论 + +Voyager 可以被视为 Autogen 的一种特化应用,两者都为 AI 多智能体应用的功能和潜力提供了很好的参考。虽然 Voyager 向我们展示了 AI 多智能体玩游戏可能达到的水准(其中智能体们协作得像一个控制器,去感知、决策和行动)但将其能力转移到其他领域可能会面临几个挑战: + +1. 技能库的设计:在智能体能够为新领域编写技能之前,可能需要开发支持特定领域知识和理解的元技能或基础技能。如何设计技能库是一个挑战。 +2. 环境适应性:使 AI 智能体适应不同类型的环境,尤其是与游戏世界有显著差异的环境,可能需要对智能体的感知和交互机制进行实质性改变。 +3. 数据处理:其他领域中数据的处理和处理方式可能有所不同,需要对系统的数据处理管道进行修改。 +4. 实时处理:如前所述,当前系统使用变通方法来解决 LLM 中的实时处理限制。这一点上当前应该是无解的,只能选择去做它合适的任务。 + +通过解决这些挑战,从 Voyager 学到的东西才能扩展到更广泛的应用领域。 \ No newline at end of file diff --git a/public/vaults/Publish/Trips/Dream-Destinations.md b/public/vaults/Publish/Trips/Dream-Destinations.md new file mode 100644 index 0000000..157cb54 --- /dev/null +++ b/public/vaults/Publish/Trips/Dream-Destinations.md @@ -0,0 +1,74 @@ +## China + +### 陆羽古道&南浔古镇 + +陆羽古道位于湖州吴兴区。别人的徒步路线,从稍康村出发,走环线回到稍康村。全程 9 公里多,爬升 400 米,路比较野。这里的山全被剔了种上了茶树,一排排墨绿的茶树呈阶梯状分布,挺壮观。 + +![[../Attachments/陆羽古道.png]] + +## Japan + +[Into Japan Specialist Tours - Interactive Japan Map](https://intojapan.co.uk/japan-map/) + +![[../Attachments/日本世界遗产名录.png]] + + + +和歌山 +- 白浜 + - 住 + - Shirahama Key Terrace Hotel Seamore + - 食 + - Toretore 市场 + - Seamore 下的 key noodle 拉面 +- 熊野古道 + - [难度表](https://www.tb-kumano.jp/cn/kumano-kodo/difficulty-rating/) + - https://www.tb-kumano.jp/kumano-kodo/kodo-bustimetable/ + - https://www.tb-kumano.jp/kumano-kodo/maps/ + - [小雲取越](https://yamap.com/model-courses/24376) + - ![[../Attachments/熊野古道难度.png]] + +神奈川 +- 镰仓 +- 横滨 +- 逗子 叶山 + +伊东: +- 住: + - [片瀬館ひいな](https://www.katasekan.com/room/room2.html?id=sec1) 2 人一晚约 60000 円 (海一望露天風呂付客室) + - 界 伊东 + +长野: +- 没有直飞,名古屋没有方便的火车,只能先飞东京再到长野 [JR PASS](https://www.jreast.co.jp/multi/zh-CHS/pass/eastpass_n.html) +- 从东京去长野的车都相对比较挤,还有一个讨巧的办法是从新宿巴士站坐去歧阜飞彈的 [BUS](https://www.nouhibus.co.jp/highwaybus/shinjuku/#timetable),在平汤温泉下车转公交(30 分钟一班)也可以到达长野,好处是人少便宜,缺点是麻烦 +- [松本城](https://www.matsumoto-castle.jp/) +- 諏訪 霧ヶ峰 https://www.city.suwa.lg.jp/site/enjoy/36685.html +- 諏訪湖 - 你的名字打卡 +- [长野15个最佳景点](https://www.go-nagano.net/zh-hans/trip-idea/id18412) +- 住: + - https://hoshinoresorts.com/zh_cn/hotels/kaialps/ + - https://hoshinoresorts.com/zh_cn/hotels/kaimatsumoto/ + +## 户外路线轨迹测试 + +### GPX 文件测试 + +#### 1. YAMAP 鹤见岳 (已测试) +```gpx:@Publish/Attachments/yamap_2025-04-02_08_48.gpx``` + +#### 2. foooooot 红叶尚湖 +```gpx:@Publish/Attachments/红叶尚湖.gpx``` + +#### 3. Garmin 金牛道拦马墙到普安镇 +```gpx:@Publish/Attachments/金牛道拦马墙到普安镇.gpx``` + +### KML 文件测试 + +#### 4. 2bulu 金牛道拦马墙到普安镇 +```kml:@Publish/Attachments/金牛道拦马墙到普安镇.kml``` + +#### 5. 东西佘山含地铁绿道 +```kml:@Publish/Attachments/东西佘山含地铁绿道.kml``` + +#### 6. 中西citywalk (复杂KML,可能含照片) +```kml:@Publish/Attachments/中西citywalk.kml``` \ No newline at end of file diff --git "a/public/vaults/Publish/Trips/Plans/\345\244\217\344\271\213\345\214\227\346\265\267\351\201\223.md" "b/public/vaults/Publish/Trips/Plans/\345\244\217\344\271\213\345\214\227\346\265\267\351\201\223.md" new file mode 100644 index 0000000..15a9c46 --- /dev/null +++ "b/public/vaults/Publish/Trips/Plans/\345\244\217\344\271\213\345\214\227\346\265\267\351\201\223.md" @@ -0,0 +1,108 @@ +## Preface + +北海道,古代的虾夷地区,在日本其它岛屿的北面较远处,是较晚纳入管理的地区,地广人稀,以农业为主。与印象中的日本大部分地区可能不太一样,温泉、大雪山、花草农庄等亲近自然的主题是北海道的主打项目。 + +本攻略以2014年8月底蜜月之旅为蓝本,部分删节。雪山还在未来的计划中。 + +## Schedule + +### Day 1 上海-->札幌-->TOMAMU + +早上从上海出发,中午前落地入关(相比关西空港每次入关时间不超过5分钟,北海道不到1小时的入关时间算有点儿长)。[トマム](https://www.snowtomamu.jp/summer/zh/)(TOMAMU)是星野旗下的度假村,地处札幌东南的一座小山。这个火车站小到没有工作人员,所有在此上下的几乎都是度假村的游客,酒店也有接送大巴在车站候着每班列车。第一天落地后的第一趟列车当时就晚点了10分钟,让我小心眼地强行批评了一番。 + +这个度假村主要有两大看点:(1) 水之教堂;(2) 云海。 + +水之教堂作为教堂系列中的一个,是清水混凝土建筑大师安藤忠雄的代表作之一。月光、水面、光影的奇妙组合给人一种别样的肃穆。可以在官网查看参观时间,如果想在这里举办婚礼,应该需要提前很久并且价格不菲。 + +### Day 2 TOMAMU + +酒店会有每天云海出现时间和出现概率的预测。然后在凌晨会有上山的缆车。当时我运气不好,天气不佳。凌晨三点多出发,上山后雾蒙蒙的一片,但是在清冷的山顶喝一杯热咖啡,呼吸着清新的空气还是非常惬意的。山顶上有一些特别的伴手礼(日本的伴手礼或食物等,经常会有**地区限定**),是后来几次日本之行中意外最受好评的。具体是什么,以后有机会去这里玩的朋友才能知道,这里就不提了:) + +在两大看点之外,TOMAMU还有我们喜爱之处。 + +首先是它的餐厅。它有大小至少三个以上的餐厅。有自助的,有和式的,有西式的等等。其中的自助餐厅吹一波。整个餐厅是一个空间巨大的玻璃房,完全处在森林之中,环境特别舒服,晚上亦是如此。里面有不少台湾服务生,中文可以尝试。而且食物本身也是相当可口。可颂、牛奶及奶制品、玉米、水果都是相当美味。可颂甚至在回国以后也一直在寻找可以与之匹敌的,目前仍未找到。(照片是手机拍的,加上本人不懂摄影,所以会意即可~( ̄▽ ̄)~*) + +![[../../Attachments/tomamu餐厅.png]] + +山中漫步也是不错的休闲,还是专门针对小朋友的打卡活动(我俩倒是集齐了所有的图章,只是不好意思去和小朋友抢礼品)。运气好还可以看到一些小型或大型的动物(据说会有熊)。山中其实还有热气球、骑马等活动,冬天好像是一个还不错的雪场,可以滑雪。所以是一个在各个季节都可以花上两三天休闲的一个小地方。 + +### Day 3~4 札幌 + +札幌是我特别喜欢的一个城市(作为一个即使对某些东西特别不爽但仍对移民一直不感冒的人,札幌和函馆是我目前喜欢长住的城市)。城市街道甚至比京都还是容易认,走过一次就不需要地图的那种。 + +常见的景点有大通公园、狸小路商店街、JR塔、北海道神宫、白色恋人公园等。个人推荐往在JR札幌站附近(其实大部分城市住在JR站附近都是比较稳妥的选择)。这些地方在各大旅游网站都有介绍,其中白色恋人公园我们并未前往。以下就吹几个特别喜欢的。 + +* 北海道大学 + +![[../../Attachments/北海道大学.png]] + +北海道大学就在JR札幌的西北角1公里左右处。如果天气好的话,北海道大学美如画,即使我这种没啥审美的人随手可拍明信片。整个校园非常大,还有专门的树林散步道。与京都大学、东京大学相比,个人认为"北大"完胜。而且它以前就是农业学校,所以有自酿的酒以及自研的点心,其中饼干还是获得大赏的产品。校史馆也值得一逛。运气好的话还能看到学生社团活动,如射箭之类的。 + +* 汤咖喱PICANTE + +这家餐厅是唯一一个我们吃了三次以上的店。店就在北海道大学的正门东面大概三个Block。汤咖喱本身是北海道比较特有的一种吃法,温和得可以全喝完。里面的肉烂可以嚼骨,蔬菜也是一样,很合我俩的口味。如果各位看官有兴趣的话,不妨尝试一下。店面不大,不过不算难找,离北海道大学和JR札幌都不远。 + +* JR塔 + +整个北海道没有特别高的建筑,JR塔似乎是札幌的最高点了,在拉面共和国吃点东西,然后在JR塔上等日落,是一个可选的项目。本人喜欢逛书店和文具店,在JR札幌附近的商店里就有LOFT和三省堂,非常方便。 + +### Day 5 札幌-->美瑛-->富良野 + +札幌坐电车到美瑛。个人推荐美瑛胜过富良野,是一个特别漂亮的小镇(可惜当时没有住在这里,以后可能会再安排一次)。这里特别推荐Twinkle Bus,分为拓真线和丘陵线。这个Bus一定在事先确认好时间,然后一到日本就提前订好,这样可以方便地浏览美瑛的各个景点。当然如果时间充裕且可以骑行,慢慢逛肯定也不错(小菌同学不会骑车,残念╮(╯-╰)╭)花田、冰淇淋、玉米、树(部分日剧的取景地),一切都让人心旷神怡。 + +![[../../Attachments/美瑛花田.png]] + +![[../../Attachments/美瑛树.png]] + +除去Twinkle Bus,富美慢车是另一个神器,这两者是美瑛到富良野之间的交通灵魂(为了衔接,**务必提前从JR北海道官网确认好时刻**)。这趟慢车一路都是田园风光,半开放的车窗可以呼吸到新鲜的空气,棒。 + +JR富良野附近有一个有意思的餐厅,叫“唯我独尊咖喱”(吐槽:不知道是不是G高达东方不败的粉丝)。这家咖喱和札幌的汤咖喱是完全不同的风格,是浓郁型的。有意思的是,如果你吃完了,端着盘子去给老板唱歌(噜噜噜地哼也行),老板会给你免费加。 + +### Day 6 富良野 + +如果是住在王子酒店,会有酒店班车。我们住在了一个比较偏僻的民宿,距离车站5公里左右,距离王子酒店也有3公里以上,真正前不着村后不着店的地方(安全问题不用担心),傍晚时站在旅馆门口,只有一条路,从左到右,一眼到头,一个人一辆车都没有。所以我们不得不打车。老板娘人很好,饭菜非常可口,出租车也会提前帮我们电话预约好。店里有一只狗和两只猫,非常可爱。老板娘做饭以及客人吃饭的时候,它们只能眼巴巴地在门外看。 + +富田农场的游客实在太多,商业味过重。彩香之里相对更舒服一些,甚至富田农场沿途的一些小农场也比富田农场的感觉要好。 + +风之花园是山上的一个小花园,也是某取景地。周围的森林小屋在傍晚去会比较漂亮。附近还有一家森林里的咖啡店,叫“森之时计”,和TOMAMU的餐厅有类似的意境,坐着喝杯咖啡或者吃个简餐,都是个不错的选择,只是小木屋座位不多。 + +### Day 7 富良野-->登别 + +登别的主题是温泉,个人认为比洞爷的棒。登别温泉旅馆的价格从500到15000不等,如果预订得早可能会有惊喜,关于温泉酒店的选择,在[[../制作日本旅行攻略一般要点|制作日本旅行攻略一般要点]]有介绍。 + +我们住的没有私汤,但是房间非常大,兼具西式、和式房间。选择在饭点或最晚的时候去公共池子,可能可以单独享受一下(两个池子有一个是露天的,所以"殿/姬"(男/女浴池)会在某时间对调,千万注意)。 + +8月底的登别,有一个比较有名的祭典。我们事先没有查询,在我们离开的那天晚上开始,所以完美错过,但是仍然看到了他们的准备工作,也看到了不少有意思的花车。 + +登别最有名的是地狱谷,也是这里温泉的源头,除了空气中的硫磺味太重以外,真是非常震撼的自然景观,从山上流下的溪水都是热的,可以站在里面戏水。中间的一座小山上也有一些意外的小惊喜。 + +登别周围还有一些忍者村之类的人造景观,但是我们时间不够,以后可能带父母再来登别的时候会再仔细地发掘一下。 + +### Day 8 登别-->札幌-->东京 + +寝台列车没能如愿预订上,所以一路坐了大概8小时的火车去东京。因为日本的铁路很多紧贴着大海,所以沿途还是很看到很多美丽的景色。从海底穿海峡也是一次难得的体验。 + +## Postscript + +此次北海道之旅,主要是北海道的中部偏西的一小部分。主要就是花田和温泉。其中比较值得说的是: + +* TOMAMU作为一个度假村,是一个休闲之地。如果有一次两三天的假期想去日本并且不想买买买的话,这是一个不错的选择。 +* TOMAMU距离富良野其实不远,但是公共交通并不是特别方便,如果有其它方式,可以不必回札幌中转。 +* 北海道大学个人还挺推荐的。 +* 美瑛是个特别漂亮的小镇。 +* 民宿的话,不同客房的客人可能使用同一个浴池,分时间段提供服务,需要先来后到地预约使用时间,这个请注意。 +* 个人感觉登别在北海道算是个不错的温泉地(暂时本人也只去过两处,所以这个判断可能并不一定合适)。 +* 这次的行程路线上可能有一些绕,存在优化的可能性,根据天数选择JR PASS会是一个不错的选择。 +* 8月底的北海道,就我们那年,最高气温不到25度,早晨15度左右,气候宜人,可备长袖皮肤衣之类的,完全不用考虑太热的问题,是一个夏天避暑的好去处。 + +2014年日本之旅共11天,其中还包含约4天东京。挑几个个人认为值得体验的简单说一下吧。 + +* 札幌到东京的寝台列车(北斗星/仙后座)。在[[../制作日本旅行攻略一般要点|制作日本旅行攻略一般要点]]中提到从每月初开始在日本国内发售当月的车票。因为我们是8月底到达日本,当时只剩一张票了,所以错失了这次机会。卧铺的票价不低,但是个人感觉应该还是值得体验一次。 +* 东京对我俩来说,最有吸引力的应该是吉卜力美术馆。在里面可以看到随机短片,理论上只能在这里才能看到(然而后来貌似也能从网上找到),我们当时看的是水蜘蛛的短片,一贯的清新风。票可以在日本罗森等便利店购买,也可以和淘宝卖家商量如何交易(可以寄到酒店)。 +* 如果住在浅草寺附近,可以在早上6点趁着无人的时候先去逛一圈,会是个不错的体验,然后等9点以后再去。 +* 秋叶原买手办请货比三家,特别是在街边摆摊的价格差异很大。此地的店铺中文几乎畅行无阻。 +* 天空树、东京大学等个人感觉一般。 + +## Acknowledgements + +这次的攻略是小菌同学做的,前后花了一个月时间,小菌的日语并不是很好,相当不易,为我们打开了日本游大门。能有一个志同道合的人一起逛日本,真是的一件特别开心的事情。 \ No newline at end of file diff --git "a/public/vaults/Publish/Trips/Plans/\346\230\245\345\262\232\346\250\261\350\257\255\342\200\224\342\200\224\345\214\227\344\271\235\345\267\236\345\210\235\344\275\223\351\252\214.md" "b/public/vaults/Publish/Trips/Plans/\346\230\245\345\262\232\346\250\261\350\257\255\342\200\224\342\200\224\345\214\227\344\271\235\345\267\236\345\210\235\344\275\223\351\252\214.md" new file mode 100644 index 0000000..dc7617c --- /dev/null +++ "b/public/vaults/Publish/Trips/Plans/\346\230\245\345\262\232\346\250\261\350\257\255\342\200\224\342\200\224\345\214\227\344\271\235\345\267\236\345\210\235\344\275\223\351\252\214.md" @@ -0,0 +1,254 @@ +--- +tags: + - Japan + - Travel +--- + +# 流水账 + +## 前言 + +2025 年的春天,我们终于踏上了期待已久的日本北九州的樱花之旅。本趟行程承载了很多第一次——第一次在春日去日本追寻樱花,第一次感受九州岛的景观和美食,第一次在异国的登山徒步,第一次体验星野集团的"界"品牌。清明时节,让这些美好的初遇交织成了一段难忘的旅程。 + +## 3月31日 - 初见福冈 + +带上行李,从医院接上刚结束 24 小时值班的刘小菌同学,我们直奔浦东 T2。周一的路况比想象中的温和,12 点的航班从容不迫。短短 900 公里的飞行距离,转眼间就跨过东海,降落在“离市中心最近机场“的福冈机场。 从国际航站楼到地铁需要坐摆渡车去国内航站楼,从下飞机到地铁站,大约不到 20 分钟。从机场地铁站到 The Basics 酒店一共只有一站地铁加十分钟步行,令人惊叹,事实上,福冈市中心到机场地铁站都在 20 分钟以内。这家酒店的大堂设计极具现代感,让人眼前一亮。 + +![[../../Attachments/theBasicsHotel.png]] + +放下行李,刘小菌的体力条还没有见底,我们就出去逛吃逛吃。酒店门口的中比惠公园就给了我们第一个惊喜——樱花已经盛开,粉白的花瓣在春风中轻舞,为疲惫的旅人注入了新的活力。 福冈以拉面闻名,自然要以一碗热气腾腾的一兰总店拉面为刘小菌续命。饱腹之后,我们沿着河流漫步,处处可见樱花倒映水中的美景。福冈是一座被水润泽的城市,纵横交错的河道既有古老的运河,也有自然的水系。途经县立美术馆和县公会堂贵宾馆,这些建筑都在诉说着这座城市的历史与现代交织的故事。栉田神社的红色鸟居在樱花衬托下,更显庄重。 傍晚时分,我们看到了白骨顶、苍鹭和普通鸬鹚在河中觅食,为这个城市增添了几分生机与野趣。 + +## 4月1日 - 邂逅别府 + +清晨的福冈,早餐店处处排起长队,日本人还真是热衷于排队。 期待已久的由布院之森列车之旅启程了。虽然不是电气车,但车上独特的印章收集环节和精致的便当,都充满了日式的仪式感。三个小时的车程中,窗外的日本乡村风光徐徐展开,一路欣赏着田园风景,邂逅了 30 米高的慈恩瀑布。 + +别府,这座以温泉闻名的城市,恰逢第 111 届温泉祭开幕,街头巷尾都洋溢着节日的喜悦。从车站漫步到海边的界别府,开启了我们的温泉之旅。午餐时分,我们品尝到了让人难忘的当地特色——鸡腿肉天妇罗,汁水四溢的口感让刘小菌念念不忘,以至于后面每一天都想再吃,然而每每都错过,看来下次还要再来呢。 晚餐后的蓝调时间,我们在別府湾的海边散步。虽然在“的ヶ浜”摔了个屁蹲差点跑海里去了,但好在只是肘部擦伤,没有伤筋动骨。只是又下起了雨,我们上了别府塔又拍了拍酒店前充满艺术感的水塔装置,就早早回去休息了。因为明天才是本次行程最重要的一项活动。 + +评价一下“界 别府”。虽然房间里的温泉在露天,但是因为在 8 楼,估计是安全因素考虑,围栏很高,所以泡着温泉看大海是做不到的,虽然没去大浴场,但是感觉应该不会有特别惊艳的景致。所以总的来说,最重要最美的设计是面向大海的落地窗,是日出的方向。我们还有一天的机会来碰碰运气。今天看到了黑鸢和银鸥。 + +![[../../Attachments/blueBeach.png]] + +![[../../Attachments/beppuTower.png]] + +![[../../Attachments/beppuWaterTowerArt.png]] + +## 4 月 2 日 - 迷雾森林鹤见岳 + +我还是一如继往地早起打算碰碰运气,果然还是阴云密布,看不到日出。今天是本次旅行的重点和难点,我们第一次在国外爬山。虽然前一周在苏州的旺山和穹窿山进行了一个热身运动,但是前一天下了雨路面湿滑,气温可能也有点低,加上从数据上看,坡度远大于江浙沪徒步路线,始终心怀忐忑,感谢刘小菌同学提供了满满的正能量。我们一路走进巨大的迷雾森林。 + +![[../../Attachments/迷雾鹤见.png]] + +雨后的鹤见岳笼罩在迷雾中,仿佛一幅水墨画卷展开。潮湿的山路虽然有些滑,但沿途的指示清晰可辨。三个多小时的攀登过程中,只有一位日本爷叔与我们偶遇两次,其他的都是乘坐缆车的“普通游客”。我们深切感受了这座海拔 1375 米活火山的魅力。途中一度闪现了几缕阳光,美中不足的是到了山顶也没能看到拨云见山后的樱花和大海,多少有些遗憾。 + +现在的 AI 真是强大,我用我俩分别的照片合成了一张漫画合影,非常喜欢。下山的彩蛋也达成了,不过猫站长不在窝里,而是在外面营业,非常粘人,撸了好一会儿站长才不舍离开。 + +![[../../Attachments/鹤见岳山顶漫画合影.png]] + +第一次海外爬山徒步活动圆满成功,YAMAP 也很好用。小菌同学也感受到了乐趣,我们回家后又看了一季登山少女,之后有机会再来日本爬山吧。 + +![[../../Attachments/yamap_2025-04-02_08_48.gpx]] + +下山后,我们参观了充满地狱气息的龙卷地狱和血池地狱,感受着大自然的神奇力量。傍晚,我们在汤烟展望台静候着"扇山火祭り"。到最后才想起来查了下新闻,祭典因前日的雨水而推迟了,但整座城市随处可见的地热景观,依然让人印象深刻。“扇山火祭り”我就只能[盗个图](http://beppu-event.jp/onsenmatsuri/photo/photo.html)给大家感受下了。 + +![[../../Attachments/汤烟.png]] + +![[../../Attachments/汤烟望扇山.png]] + +![[../../Attachments/扇山火祭り.png]] + +## 4 月 3 日 - 别府日出 + +蓝调时间总是最让人心动,这一天的清晨终于如愿以偿。我和刘小菌一个在海边,一个在房间的落地窗前,双机位记录下了别府湾上绝美的日出。朝阳穿透云层,染红了天际,整个海湾仿佛被镀上了一层金边,绝景。 + +![[../../Attachments/别府日出与船.png]] + +![[../../Attachments/别府湾日出.png]] +![[../../Attachments/房间日出.png]] + +![[../../Attachments/别府日出剪影.png]] + +早餐过后,我们继续别府另五个地狱的巡礼。每一处地狱都有其独特的面貌:海地狱的钴蓝色温泉深邃得令人心醉,白池地狱的乳白色水汽缭绕如仙境等等。 在地狱巡礼途中,我们还品尝到了让毛利小五郎也为之着迷的极乐馒头。蒸汽腾腾的温泉与美食的完美结合,让人感受到了别府独特的魅力。 下午,我们乘坐由布院之森4号列车返回福冈。与来时不同,归程的心情更加从容,透过车窗看着阳光洒在田野上,不禁开始期待明天的熊本之行。 + +![[../../Attachments/柯南极乐馒头.png]] + +![[../../Attachments/完美茶花.png]] + +![[../../Attachments/海地狱花瓣.png]] + +## 4 月 4 日 - 熊本城与熊本熊 + +今天是熊本日归。第一站自然是名震天下的熊本城。作为日本三大名城之一的熊本城,十年前地震中令其受创严重,内部已然现代化改造,由钢铁从内部支撑着古朴的巨石。我是喜欢姬路城的修旧如旧的,所以对于日本这个多灾害的国家,想看的东西还是要趁早。如果让我推荐日本名城,我依然会坚定地首推姬路城,但是下一站应该会尽快去一趟松本城,以免再留遗憾吧。 + +![[../../Attachments/樱与熊本城.png]] + +![[../../Attachments/樱与咕咕.png]] + +中午,我们造访了熊本熊办公室。这个萌系代言人的魅力确实无可抵挡,半小时的拍摄活动虽然让人精疲力尽,但欢乐的气氛感染了每一个人。不得不说,在创造城市符号这件事上,熊本确实做到了极致。 下午来到了水前寺成趣园,这座袖珍版的东海道让人眼前一亮。园中的涌泉池水清澈见底,映照着周围的松树和建筑,构成了一幅精致的日本庭园图卷。春日的阳光透过枝叶洒在水面上,让整个园子显得生机盎然。水前寺成趣园的每一处细节都经过精心设计,展现了日本园林艺术的精髓。 + +![[../../Attachments/水前寺成趣园.png]] + +![[../../Attachments/阳光与樱花.png]] +## 4 月 5 日 - 福冈樱语 + +今天完全沉浸在了福冈的樱花世界里。舞鹤公园是福冈赏樱名所,这里的樱花与古城遗址相映生辉。漫步其中,樱瓣纷飞,仿佛走进了一场粉色的春之幻梦。园内的护城河倒映着满树樱花,构成了一幅浮世绘般的画面。 + +![[../../Attachments/大濠公园.png]] + +![[../../Attachments/舞鹤郁金香.png]] + +福冈美术馆给了我们一个意外的惊喜。除了标志性的草间弥生大南瓜,最令人印象深刻的是一件别具寓意的装置艺术——Yinka Shonibare的《Woman Shooting Cherry Blossoms》。这件2019年的作品以独特的视角诠释了和平与战争的命题:一个身着华美服饰的人形,手持的步枪却绽放出绚丽的樱花。艺术家通过这种反差的表达方式,让人深思樱花在不同时代所承载的不同含义。 + +![[../../Attachments/草间弥生.png]] + +![[../../Attachments/WomanShootingCherryBlossoms.png]] + +从美术馆出来,我们沿着大濠公园散步。这里有一段被我俩称为"小天桥立"的水景,确实与日本三景之一的天桥立有几分异曲同工。春日的阳光穿过樱花枝桠,在水面上洒下斑驳的光影,游人们或坐或立,静静享受着这份悠闲时光。 + +爱宕神社的参拜之路充满了神秘感,特别是下山时走过的那段幽深林径,仿佛从神隐之处穿越回现代都市。傍晚,我们登上了福冈塔。虽然日落被乌云遮挡,但夜幕降临后,霓虹初上的福冈夜景依然让人沉醉。特别是被樱花装点的塔身,在夜色中显得格外梦幻。 + +![[../../Attachments/福冈塔夜景.png]] + +![[../../Attachments/樱花福冈塔.png]] +## 4 月 6 日 意犹未尽 + +最后一天的整理运动,本想着简单地去栉田神社取个御朱印就收工,却意外发现了东长寺这颗遗珠。这座由空海大师从唐朝取经归来后建立的古刹,供奉着日本最大级别的木造大佛。最特别的是佛像下方的体验:在一段完全漆黑的回廊中前行,让人不由得放下所有思绪,屏蔽所有感观,用心感受这一段途程。这段出乎意料的寺院之旅,为整个行程画上了完美的句点。 + +![[../../Attachments/东长寺五重塔.png]] + +![[../../Attachments/福冈大佛.png]] + +[木造大佛图源](https://gofukuoka.jp/zh-cn/spots/detail/26928/) + +## 尾声 + +九州的春天,和预期的一样美丽。从繁华的福冈到温泉之城别府,从古城熊本到云雾缭绕的鹤见岳,每一站都有惊喜,每一天都值得回味。除了在都市里仰望怒放的樱花,这次却有机会在山野间寻芳,在云雾中觅踪,让这次赏樱有了完全不同的体验。这趟旅程,既收获了壮丽的自然景观,也领略了精致的人文风情。在别府的温泉旅馆里看日出,在福冈的街头巷尾觅美食,一路走来,处处都是让人想要再次造访的理由。 春日北九州,樱花烂漫时。这次的邂逅,不过是一个开始。 + +------------------------- + +# 计划 + +我们通常的安排是宽松且舒适的,所以没法既要又要,考虑时间和主要目标以及一些约束条件,不得不舍弃一部分计划,舍弃的部分会在以后再安排。 + +## 主体 + +这是第一次在樱花季去日本,想碰碰运气。这也是第一次去九州岛,所以想玩的点特别多。 +九州给我的标签有: 拉面、熊本城、火山、温泉、国际机场离市区 5 分钟。 +在做攻略的过程中,我放弃了很多点,一个挺重要的原因是,我发现虽然很多地图上看起来很顺,但是实际公共交通需要的时间都不短,不少都是 2 小时起步,感觉不如近畿地区便利。我们不是特种兵,所以会尽量安排地松散一些,然后把其中一些作为备案。 + +### 目标 +- 樱花 + ![[../../Attachments/樱花预想2025.png]] + + **已更新 2025 预测时间** [link](https://weathernews.jp/sakura/news/kaikaforecast/#kyushu) + + | 九州 | 地点 | 開花予想日 | 平年の開花日 | 満開予想日 | 平年の満開日 | + |---|---|---|---|---|---| + |福岡|福岡管区気象台|3/21開花|3/22|3/30満開|3/31| + |大分|大分地方気象台|3/23開花|3/24|4/1満開|4/4| + |熊本|熊本市西区春日|3/22開花|3/22|3/30満開|4/1| + + 因为是樱花季来的,那必须要安排一些樱花壮观一些的地点体验。目前可能考虑的点: + - https://www.crossroadfukuoka.jp/cn/articles/sakura + - https://kyushu.letsgojp.cn/archives/25054 + - 舞鹤公园 - 1000 株 19 种(名所) + - 大濠公园(紧邻舞鹤公园和福冈美术馆,一起走一圈,在福冈塔方向) + - [海之中道海滨公园](https://uminaka-park.jp/) - 1600 株(交通方便,单独一小岛,但方向不一起,下次一定) + - 爱宕神社 - 2000 株 愛宕桜祭り(4月1至15日) + - 小仓城(城类似大阪城的感觉,不想去,但是赏樱名所且有松本清张纪念馆) + - 熊本 - 水前寺成趣园(有点远,感觉没有很名所,考虑放弃) + - 熊本城 - 800 株(名所) +- 熊本城 + 已经因为严重地震重修开放,日本灾害太多,所以想尽可能早一些把想逛的城都逛一遍,以免再也没有机会逛到。姬路城给了我非常好的体验,大阪城和名古屋城都不喜欢,喜欢修旧如旧型的,所以熊本城和松本城是接下来两个最想逛的,这次一定要先看一下。而且熊本城也是赏樱名所 +- 温泉旅馆-界 + HOSHINOYA 一直是刘小菌想住一遍的,之前了解了它旗下的“界”系列,也就是温泉旅馆系列,在九州北部有三家,分别在阿苏、由布院和别府。我们一向优先“露天風呂付き客室”,考虑兼顾交通和玩所需的时间,两地各一天,不如一地两天,这次决定只去别府那家。 + ![[../../Attachments/别府海边散步.png]] +- 鹤见岳 + 在国内已经开始一些简单的徒步练习,而且在山上可以看海,这个作为日本的徒步练习第一步。一方面路线相对简单,而且是有缆车作为保底的,如果登顶后觉得下山累,多一个缆车下山的选项。另一方面,尝试一下 YAMAP App 的使用。登完山回去泡个温泉看看海,应该是一个很惬意的事情。 + https://www.beppu-ropeway.co.jp/cn/access/ 看起来这里也是可以赏樱的,只是因为海拔可能会有时间差。 + 走 [这个](https://yamap.com/activities/36829407) 的半程,上山走下山缆车。调整后的计划 [如下](https://yamap.com/plans/code/VxPtSSVhOs6HUBOfOYxr7NakhOFfiYuMVxdciAVTVUhp9PzSukPdBipxzrEG53-0YUA) + ![[../../Attachments/鹤见岳徒步计划.png]] +- 由布院之森 + 一个观光火车,从博多到由布院到别府。众所周知,日本的特殊火车很难预订,所以这个看运气吧,提前一个月做准备。具体要点如下: + - 比如要抢 4 月 1 日的票,那放票的时间是 3 月 1 日上午 9 点(日本时间上午 10 点),如果是 3 月 29 日~3 月 31 日,理论上应该也是这个点,因为 2 月 28 日放的是 3 月 28 日的票。 + - 在 3 月 1 日之前,比如 2 月 26 日,在 Klook 上先买北九州 JR Pass,像我,选 4 月 1 日开始使用。然后会有预订号,比如 GKE555775,两个人各有一个号,在前面的基础上加 JR0 和 JR1。 + - 可以在 [预订网站](https://kyushurailpass.jrkyushu.co.jp/reserve/) 提前注册账号,免得预订当天手忙脚乱。点指定席预订,登记电子邮箱,然后从邮箱链接进入,设置密码,下次就可以用这个登录。 + - 指定席预订再进来,旅行社名称选 Klook,预订编号就是上面的 GKE555775JR0,然后姓名是 FIRSTNAME LASTNAME( Klook 上是 LASTNAME FIRSTNAME),之前看的 [攻略](https://www.youtube.com/watch?v=gHoChvap11U) 上说的跟我的成功的过程填写要求不一样,说明可能会有变化,多试。 + - 预订过程要多刷,网站并发能力极差。可能要反复尝试半小时到一小时左右。 + - 注意,一般半天以内抢到票问题不大,一天以后几乎就卖完了。 + - 车上的便当也可以提前预约,同样是在上面的预订网站上,会收到邮件和预订码,然后需要自己到餐车去取。 + +### 简单功略 + +[计划时间线](https://plan.qyer.com/trip/V2cJYlFmBz9TYFI4Cm4NNg/?fromjournalview=1&source=share&from=d) (穷游行程助手 App 几乎没人维护,只有网页版可以看地图) + +这次没什么极限操作,所以交通不出换乘类详细信息了。 + +#### 参考 + +- [别府之旅](https://beppu-tourism.com/wp-content/themes/beppu-tourism-com/doc/pdf/pamphlet-chinese_kantaigo.pdf) +- ![[../../Attachments/大濠公园-爱宕山.png]] + +### Checklist + +- [x] 定休日/特殊活动避开(べっぷ鶴見岳一気登山大会每年 4 月第二个周末,2025 大会因去年台风塌方取消 [来源](http://beppu-event.jp/ikkitozan/),但不影响登山路线 [参考](https://yamap.com/activities/37057708)) +- [ ] JR Pass & 由布院之森 [预订网址](https://kyushurailpass.jrkyushu.co.jp/reserve/) [由布院之森 3 号 10 点 11 分](https://www.jrkyushu.co.jp/chinese/train/yufuin_no_mori.html) 只能提前一个月 [Klook 参考](https://www.klook.com/zh-TW/blog/yufuin-no-mori/) +- [ ] 观察 JR Pass 刷新时间点 (比如在 1 月 11 日中午可以预约到 2 月 11 日,但是最早可以约 2 月 11 日的时刻是多少) 如果由布院之森 3 号 (Yufuin-No-Mori 和 Yufu 不一样!) 订不到,可以考虑先 JR,再订返程由布院之森 4 号 +- [ ] 关注鹤见岳运行动态 https://www.beppu-ropeway.co.jp/cn/ +- [x] [火山防灾指导手册](https://www.pref.oita.jp/uploaded/attachment/1025194.pdf) +## 回收站 + +### 阿苏 + +阿苏是未来大概率会再单独安排的,我对九重国立公园还是非常感兴趣的,有火山、有湖泊、有湿地、有草甸、有火山博物馆、有界温泉旅馆等等。适合玩 2~3 天,如果是两个半天加一晚这种,不是很适合徒步登山等活动。 +看起来在熊本与别府的中间,但实际上的交通并不是很方便(可能是我功课做得还不充分),公交是在阿苏站附近,但是相对好的住宿在南阿苏,从 Google map 上南阿苏离徒步点不远,但是路径规划下来很费时,第一次去九州就不打算冒险了。另外一点就是,这种纯自然的活动,是看天吃饭的,火山活动、天气都可能非常影响体验。 +以后可能比较好的考虑是单独安排,或者熊本+阿苏、由布院+阿苏,后者如果时长够的话可能是一个不错的选项,先在阿苏徒步登山,再去由布院登山,泡温泉解乏。 + +公园简介: https://www.japan.travel/national-parks/zh-hans/parks/aso-kuju/see-and-do/ + +徒步/登山路线: https://aso-visitorcenter.com/climbing-information/ + +![[../../Attachments/阿苏徒步登山路线.png]] + +交通(产交 BUS): https://www.sankobus.jp/bus/asosen/jikoku/ + +![[../../Attachments/阿苏公交.png]] + +露天風呂付き客室: +- https://travel.rakuten.co.jp/share/batch/rrg_pg/pgenerator/hotel/id7/9660/index.html +- https://www.ikyu.com/kyushu/35090502/acr262144/t503/?adc=1&lc=1&per_page=20&pn=1&ppc=2&rc=1&rm=10206023&si=6 +- https://jigoku-onsen.co.jp/ +### 门司港(北九州市) + +吸引我的点有: +- 火车博物馆 +- 怀旧区(因为是老的通商口岸)&港口 +- 海底人行隧道(没什么好看的,有盖章) +- 号称“日本新三大夜景都市”第一名(2022) +- 河内藤园(北九州市,非门司港) +主要放弃的原因只是时间有限,所以以后会安排。如果这次发现有空出的时间,会安排。 +参考: +- https://www.gururich-kitaq.com/cn/downloads/tourist-data-download + + +### 相岛 + +主要特点是猫岛,约 270 个住民和 270 只猫的小岛,据说走一圈就 2~3 公里。因为上面大多数猫已绝育,所以可能是最后的狂欢了。放弃的原因主要有: +- 交通船本身时间不长,但是时间间隔较长,效率略低 +- 如果在国外万一发生被挠被咬,这个风险虽然不大,但是会很麻烦 +- 除了猫猫和海景,应该没有太多别的 +基于此,还是考虑玩上海的猫岛吧,万一伤了随时就医,哪里的猫猫都一样可爱不是。所以相岛大概率属于永久放弃的那种。 + +### 由布院 + +由布院和别府的定位比较接近,因为这两处都是日本出水量极大的名温泉。两处都离火山比较近,周边都可以徒步登山,区别是由布院山景更多(离阿苏更近),别府是依山傍海。 + +由于徒步登山不太适合两个半天一晚的这种安排,所以时间不能太碎,相比于一天由布院一天别府,不如直接两天别府,下次再来由布院。PS: 部分酒店住 2~3 天比住 1 天有 25% 左右的优惠。 + +吸引点: +- 界 由布院 +- 由布岳 +- 温泉街 + +### 太宰府 + +天满宫最有名的是 2 月的梅花祭,以及菅野的墓。观花大约在 1~2 月,樱花似乎不是它的强项,故也考虑放弃,择机再去。 \ No newline at end of file diff --git "a/public/vaults/Publish/Trips/Plans/\346\234\254\345\272\224\346\205\265\346\207\222\347\232\204\346\262\263\345\217\243\346\271\226--\345\256\214\347\276\216\351\200\206\345\257\214\345\243\253\344\271\213\346\227\205.md" "b/public/vaults/Publish/Trips/Plans/\346\234\254\345\272\224\346\205\265\346\207\222\347\232\204\346\262\263\345\217\243\346\271\226--\345\256\214\347\276\216\351\200\206\345\257\214\345\243\253\344\271\213\346\227\205.md" new file mode 100644 index 0000000..33d88ca --- /dev/null +++ "b/public/vaults/Publish/Trips/Plans/\346\234\254\345\272\224\346\205\265\346\207\222\347\232\204\346\262\263\345\217\243\346\271\226--\345\256\214\347\276\216\351\200\206\345\257\214\345\243\253\344\271\213\346\227\205.md" @@ -0,0 +1,232 @@ +--- +tags: + - Japan + - Travel +--- + +# 流水账 + +自 2020 年以来,因不能说的原因,已有四年未能踏足日本。2023 年底,终于再次办妥了我们和父母的日本 5 年签证,为随时可能的旅行做好准备。 + +2024 年 5 月,小菌同学询问端午节去处。考虑到国内小长假人山人海,再加上小菌下夜休多出的一天,我倾向于选择日本作为短期旅游目的地。虽然端午前后常遇梅雨,所以我希望找一个即使只待在酒店,也能安静欣赏风景的地方。 + +在富士五湖加小菌心仪虹夕诺雅已久的背景,又听说"逆富士"这个概念后,我决定在端午这个最不太合理的时节去河口湖看富士山。由于观赏逆富士的最佳位置在河口湖北侧,好位置的酒店预订极难,我们不得不将原本悠闲的旅行调整为"特种兵"行程。来回折腾了三天,终于订到了满意的组合,从慵懒的河口湖之旅变成了本应慵懒的河口湖之旅。 + +## 6 月 7 日 + +小菌同学早上 8 点半下夜休,打车去虹桥 T1 居然一路畅通,幸运+1,在机场坐了 2 个多小时才开放值机。首次尝试不托运,因为从东京下飞机到河口湖有近 3 小时的路程,而且班次没有那么密,一切顺利也要 21 点后到。小菌同学已经上了 25 小时班,想尽早能让她休息。 +去程非常顺利,幸运+1。虽然 JAL 晚起飞了近 20 分钟,但依然比预计提前了半分钟着陆羽田 T3,不愧是准点率最高的航司(虽然我看了下图才第一次知道预计到达时刻是落地时刻)。从落地到赶上第一趟电车一共仅花费 29 分钟。记个时刻供下次参考:预计 12:50 起飞,实际 13:12 起飞,计划到达 16:45,实际 16:44,16:56 开舱门,17:00 下机,17:07 电子申报结束并出海关,17:13 坐上 MonoRail。在 Visit Japan Web 二维码提前申报,没有托运以及机场流量相对平稳的加持下,简直完美,不能再快,几乎跟 LLM 推测的最短时间一致。 +![[../../Attachments/JL082.png]] +![[../../Attachments/飞机上4点18.png]] +这里看到的是馆山西侧海岸线,晴空万里,心情激动,就快要着陆了。 +![[../../Attachments/飞机4点18拍.png]] +另一架飞降落的航班,此时为日本当地时间 16:42,我们已经是往五点方向降落了,而它在我们右侧几乎同时降落,所以我暂时没分析出来是哪个航班。 +![[../../Attachments/另一架降落的飞机.png]] +![[../../Attachments/单轨电车.png]] +出发前就在网上订了大巴票(反正提前半小时退的话,基本没有损失),顺利的行程让我们在新宿还吃了一顿咖喱。咖喱屋ボングー NEWoMan新宿店是一家颜色特别深的咖喱,牛肉贼嫩,整体相当不错(6 月 9 日回新宿的时候发现它家大排长龙,所以我们当天没排队就吃到感觉也可以幸运+1)。大巴几乎准时到达了河口湖站,幸运+1。接下来是今天唯一的小插曲,没有出租车。这件事是有预期的,因为事先联系过酒店说是要打电话给他们。但是我发现我并不会拨号,我在日本用 +81 拨打酒店电话打不通,后来在车站找到了公用电话才搞定,事后问了一下 LLM,说可能应该是用 0081 之类的办法拨,这个只能下次再试了。 +夜晚的河口湖站还是有点小冷的,等了可能有 10 多分钟来了一辆 Alpha 把我们接到了虹夕诺雅,已经近 22 点了。工作人员把我们从前台再开车送到我们的 Cabin 203,虽然云量不少,但进门前刚好吹开一片,看到了漂亮的星空,顿时心情大好。请工作人员点了篝火,简单尝试拍了几个星空就睡觉了。 +![[../../Attachments/星空1.png]] +![[../../Attachments/星空2.png]] +## 6 月 8 日 + + 凌晨 3 点起床,继续躺在户外的石板上拍星空(倒也没觉得冷),看到了牛郎织女啥的。4点左右迎来蓝调时间,激动地 在3:45 肉眼分辨出富士山后,下一分钟捕捉到了富士山的第一缕轮廓。 + ![[../../Attachments/第一眼富士山.png]] + 我又激动地跑外面去拍。当天日出是 4:29,但是云量很大,而且事后我发现河口湖没法照顾到日出日落,分别应该去本栖湖和山中湖会更好,而这里只能拍到一些微微泛红的富士山。 + ![[../../Attachments/日出.png]]这家虹夕诺雅贵在两个点,一个是从房间看到的风景,如下图。 +![[../../Attachments/房间风景1.png]] + 另一个就是各种露营和亲近大自然的活动了。这次时间有限先安排了清晨河口湖划船。 + 幸运+1,上船之前,风平浪静,逆富士出现了! +![[../../Attachments/逆富士1.png]] +这个船又轻又低阻,我和小菌同学两个人就能提溜到河边,划个对穿应该要不了半小时,第一次体会到划船的趣味。 +![[../../Attachments/逆富士2.png]] +![[../../Attachments/河口湖划船.png]] +![[../../Attachments/河口湖全景.png]] +整个全景还是相当舒服的,还看到了戴围脖的富士山。 +![[../../Attachments/戴围巾的富士山.png]] +回来以后的早餐赏心悦目。 +![[../../Attachments/morning box.png]] + + 饼干夹烤棉花糖让我们仿佛置身于"摇曳露营"的场景中,别有一番乐趣。虽然这次未能体验酒店提供的森林徒步和登山活动,但我们将其列入下次造访的愿望清单。 + +享用完亲手制作并烘烤的披萨后,我们背起行囊,开始了前往下一家酒店。这段 5 公里的湖畔步道风景优美,还分布着许多有趣的景点,算得上一次不错的徒步。 + +首先是湖边的大石公园,不过午后的富士山已经被云完全盖住了,不然在各种花季过来应该也是一个优秀的拍照点。 +![[../../Attachments/大石公园.png]] +还有一如继往的井盖,和纸上看到的版本有区别。 +![[../../Attachments/井盖.png]] +![[../../Attachments/井盖示意.png]] + +接下来是八音盒之森,一个仿欧式建筑风格被鲜花包裹的童话般小镇,正值其 25 周年庆典。这里最引人入胜的是各种表演和自动乐器。小菌同学做了完美规划:我们先欣赏了自动风琴的演奏,随后欣赏了自动乐器与人声歌剧的完美融合,最后观看了结合自动乐器与喷泉的精彩表演。这种别具特色的小景点在日本随处可见,与国内常见的同质化景点形成鲜明对比,令人唏嘘。 + +我和小菌分别背着 20 斤和 10 斤的背包,徒步 5 公里后抵达了产屋旅馆,算是为未来的熊野古道之行进行了一个模拟考。这家传统的温泉酒店与网站上的照片如出一辙,最吸引人的是可以一边泡私汤一边欣赏富士山美景。虽然下午云层稍厚,遮挡了部分视野,但整体体验相当愉悦。 + +![[../../Attachments/产屋广告照.png]] + +产屋旅馆和虹夕诺雅完全是两个风格,它主打一个“人生を祝う”口号,所以在我们说明是结婚十周年纪念日以后,果然晚餐的时候整了些活儿加了个菜(而虹夕诺雅在得到同样的输入,只是“本当に? おめでとう”云云),整体感觉比竹取亭更好,毕竟有富士山加持。 +## 6 月 9 日 + +再次凌晨 3点 起床,又迎来一个风平浪静的清晨。我目睹了蓝调下的逆富士,幸运值爆表。拍了两张照片后,我赶紧叫醒小菌同学。虽然美景转瞬即逝,当她准备用手机拍摄时,云层已经遮住了山头,但我们能一起亲眼目睹这一绝景更显珍贵。在梅雨季节能连续两天欣赏到逆富士,属实无敌。下次若想再次邂逅,或许可以选择在秋冬季去本栖湖或山口湖,据说 1 月出现逆富士的概率最高。 + +![[../../Attachments/蓝调逆富士.png]] + +早餐时,我们收到了昨晚的合影和来自旅馆的祝福。恰逢天气转晴,一边品尝美味早餐,一边欣赏眼前的逆富士,令人心旷神怡。回到房间后,灵感乍现,于是有了下面的照片。 + +![[../../Attachments/私汤逆富士.png]] + +为此我特意在旅馆的反馈单上写了一大段,私汤的进水口持续流水,使得水面难以完全平静,否则这里本可成为拍摄逆富士的一个绝妙地点,换来了两张明信片。 + +随后,我们参观了久保田一竹美术馆和河口湖木之花美术馆。前者给人一种富豪收藏家庄园的感觉,展示的和服们可以拼成一幅画,震憾。后者则是池田あきこ的绘本美术馆,展出了原画和小镇设定模型,令人着迷,那肯定是入手了绘本。 + +午餐我们去了昨天看到的ほうとう研究所。小菌博士真有学问,原来ほうとう是一种粗面。拉面分量足,口味重,有趣。 + +退房后,我们漫步河口湖大桥,这里也是观赏逆富士的绝佳地点。沿湖东南角散步,我们还参观了宝石博物馆,还享用了一份神奇的石板烤三分熟炸牛排。河口湖车站人山人海,我们去网红罗森瞅了一眼,即便当天无法拍到富士山,仍有众多游客在此拍照。 + +晚上返回新宿的大巴堵了一小时多,我们抵达机场已过 22 点。羽田皇家花园酒店直通 T3 国际出发层,距离安检不到100米,比浦东的酒店更为便利,只是秉持着日本西式酒店一贯的狭小。 + +## 6 月 10 日 + +由于 9 点多的航班,我们 6 点多就用完早餐并办理退房。酒店的入住和退房都是自助机器操作,全程无需人工服务,体验有趣。可能因为每天都只睡不到 4 小时,醒来天旋地转,几乎无法走路,早餐就像不是自己吃的一样。所幸回程再无幺蛾子, JAL 的红茶哈根达斯还是好吃的。回到上海后,我睡了一下午,才活了过来。 + +这次行程中,我们完成了两天共 8 公里的重装徒步。气温在 20 度左右,以多云天气为主。整体感受体力消耗可接受,若非每晚仅睡 4 小时,应该会更加轻松。首次逆富士之旅完美收官,整体体验 90 分。4 年后的日本复健很成功,已经开始畅想下一次的目的地了。 + +![[../../Attachments/河口湖两天徒步路线.png]] + +最后附上我们结婚十周年物件的照片。我的执念是纪念日不是互赠而是共同的物件。十周年锡婚,看了一圈丑爆的锡器,只有下面这个让人眼前一亮。当时还不知道“逆富士”,但冥冥之中又完美呼应到了这次旅行,美哉。 + +![[../../Attachments/酒杯中的逆富士.png]] + +# 计划 +## 预期天气 + +[Fujikawaguchiko未来30天天气预报 | 和风天气 (qweather.com)](https://www.qweather.com/weather30d/fujikawaguchiko-26CFE.html) +甲信地方梅雨大概在 6 月 7 日开始 + +[本应慵懒的河口湖](https://plan.qyer.com/trip/V2cJY1FmBz9TZFI2Cm8NOg) + +## Day 1 + +6 月 7 日中午 12:50 虹桥全日空飞羽田,16:45 落地,公共交通至河口湖约需 3 个半小时。最早估计 20 点前能到,最晚如果能赶上 19:49,那可以在 23:26 到达河口湖。住虹夕诺雅。据说现在入境应该很快,不拖运 & Visit Japan Web QR 码已打印。 + +主要的风险都在于第一天的交通。 + +来自 Claude3 的估算,估计 18 点前上单轨电车的机会比较大。 + +| 步骤 | 最佳情况 | 平均情况 | 最差情况 | 说明 | +| :-----------: | :--: | :--: | :--: | :-------------------------- | +| 1. 飞机滑行到停机位 | 5分钟 | 10分钟 | 20分钟 | 取决于机场交通和停机位置 | +| 2. 下机 | 5分钟 | 10分钟 | 15分钟 | 根据您的座位位置和乘客人数 | +| 3. 通过隔离区 | 1分钟 | 2分钟 | 5分钟 | 无需隔离,只需扫描Visit Japan Web二维码 | +| 4. 入境审查 | 10分钟 | 20分钟 | 40分钟 | 取决于入境旅客人数,您已准备好二维码,速度会较快 | +| 5. 通过隧道到达单轨站台 | 5分钟 | 7分钟 | 10分钟 | 羽田机场第3航站楼到单轨站台步行时间 | +| 合计 | 26分钟 | 49分钟 | 90分钟 | | +可选方案有 + +| JR中央线 | 东京 | 新宿 | 大月 | 河口湖 | 到达优先级 | +| ------- | ----- | ----- | ----- | ----- | ----- | +| 直(12站台) | 19:05 | 19:19 | 21:11 | 22:07 | 4 | +| 特(9站台) | 19:15 | 19:30 | 20:49 | 21:46 | 2 | +| | 19:32 | 19:47 | 21:43 | 22:37 | 5 | +| | 19:52 | 20:07 | 21:43 | 22:37 | 5 | +| 特 | - | 21:00 | 22:30 | 23:26 | 6 | +| 特 | 21:45 | 22:00 | 23:10 | 00:05 | 7 | +| | | | | | | +| 富士急行巴士 | - | 新宿 | | 河口湖 | | +| | | 19:15 | | 21:00 | 1 | +| | | 20:15 | | 22:00 | 3 | +| | | 22:25 | | 00:11 | 8 | +| | | | | | | + +因为所有从东京发车的中央线都会在新宿停,加上急行巴士不能在 JR 买票,只能网上买或者新宿高速巴士总站买,加上到达优先级来看,从机场往新宿走是更合理的选项,即使浜松到东京只有 3 站,而浜松到新宿有 11 站。 +巴士票已购作为保底,因为提前半小时以上可以线上退票,费用相对不高。 +ICOCA 中已提前确认好余额,都在 4000~6000,足够去程费用了。所以JR東日本駅たびコンシェルジュ羽田空港(JR EAST TRAVEL Service)的沟通也可以省去了。 + +最终较好的方案为: +羽田はねだターミナル --> モノレール浜松町方面2番ホーム --> 浜松 3 番ホーム --> 新宿 15 番ホーム + +(不用在意时效,日文版 2021 年 10 月到现在时效的图和下图一样) +![[../../Attachments/羽田到达坐单轨.png]] +[東京モノレール:モノレール路線案内>モノレール浜松町駅>構内情報](https://www.tokyo-monorail.co.jp/guidance/hamamatucho/) +![[../../Attachments/浜松单轨.png]] +![[../../Attachments/浜松换乘.png]] +[2024-03-27 修正 壁貼り時刻表2024(富士急行線)](https://www.fujikyu-railway.jp/pdf/timetable20240401.pdf) +![[../../Attachments/富士急行线.png]] + +优选的火车: +1. JR中央线通勤快速 1915H 19:05 1番ホーム 东京发,22:07 到河口湖,中间不用换车 + + - 羽田到浜松町: 单轨列车,7 站 18 分钟,最晚上车时间是图中红框 + - ![[../../Attachments/羽田到浜松时刻.png]] + - 浜松到东京: JR 山手线往东京/上野,最晚上车时间如图红框 + +2. 次选 + +3. 中央线一定过新宿,也可往新宿坐中央线 + - [JR東日本:駅構内図・新宿駅](https://www.jreast.co.jp/estation/stations/866.html) + - 特快是 9,其它都是 12 + ![[../../Attachments/新宿站内.png]] +优选的巴士: +[富士五湖~新宿線 - 富士急行バス](https://bus.fujikyu.co.jp/highway/detail/id/1#d_h02) +![[../../Attachments/新宿 JR 1F2F 新南口.png]] +![[../../Attachments/新宿 JR 到巴士总站.png]] +![[../../Attachments/新宿到河口湖巴士路线.png]] +19:15/20:15/22:25 三班,不堵车 2 小时以内 +单轨电车最晚要上 18:18 到浜松,JR 山手最晚要上 18:41 到新宿 +![[../../Attachments/巴士去程1.png]] +![[../../Attachments/巴士在 B5.png]] + +## Day 2 + +6 月 8 日早上河口湖划独木舟,然后退房吃午饭,出发去另一个酒店,路程不到 5 公里,如果天气好可以沿着湖走过去,不到一小时,如果做周游巴士,全程不到半小时。沿途有多个景点。15:00 入住产屋,18:00 晚餐已订(含早)。 + +## Day 3 + +6 月 9 日 12:00 退房后往车站方向走,有两三个可玩的点。晚上去羽田机场附近住宿,已订。周围可玩点不太多,可以转下。 + +回城优先富士回遊号 [Shinjuku → Kawaguchiko Main Trains Timetable](https://www.jreast.co.jp/e/routemaps/pdf/routemaps_timetable.pdf) +下午 14:10/14:55/16:42(45)/17:33 直达新宿约 2 小时 + +## Day 4 + +6 月 10 日 9:15 羽田飞虹桥 + + +# References +- 交通 + - [JR東日本:駅構内図・バリアフリー情報(新宿駅)](https://www.jreast.co.jp/estation/stations/866.html) 同理可以查 JR 其它站或车次时刻表 + - [東京モノレール:モノレール路線案内>モノレール浜松町駅>構内情報](https://www.tokyo-monorail.co.jp/guidance/hamamatucho/) 单轨列车 + - [在线订退新宿-河口湖巴士票 highwaybus.com](https://www.highwaybus.com/gp/inbound/index) 高速巴士 + - [樓層圖 - 新宿高速巴士總站 | SEBT](https://shinjuku-busterminal.co.jp/zh-tw/floormap/4f.html) 新宿高速巴士站,今日运行计划查发车点 + - [富士五湖~新宿線 - 富士急行バス](https://bus.fujikyu.co.jp/highway/detail/id/1#d_h02) 巴士时刻表 + - [周遊バス](https://www.fujikyubus.co.jp/shuyu?_x_tr_sl=ja&_x_tr_tl=en&_x_tr_hl=ja&_x_tr_pto=wapp) + - [从羽田机场第3航站楼(单轨电车)到河口湖的路径 - NAVITIME](https://www.navitime.co.jp/transfer/searchlist?orvStationName=%E7%BE%BD%E7%94%B0%E7%A9%BA%E6%B8%AF%E7%AC%AC%EF%BC%93%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB(%E3%83%A2%E3%83%8E%E3%83%AC%E3%83%BC%E3%83%AB)&dnvStationName=%E6%B2%B3%E5%8F%A3%E6%B9%96&month=2024%2F06&day=07&hour=18&minute=00&basis=1&freePass=0&sort=4&wspeed=100&dnvStationCode=00001065&airplane=1&sprexprs=1&utrexprs=1&othexprs=1&mtrplbus=1&intercitybus=1&ferry=1#detail_route_2) + - [鉄道・きっぷの予約:JR東日本](https://www.jreast.co.jp/railway/) +- 玩 + - [河口湖音乐森林美术馆的亮点指南 | 河口湖音楽と森の美術館](https://kawaguchikomusicforest.jp/ch-s/) + - [富士河口湖温泉郷×温泉むすめ](https://bus.fujikyu.co.jp/onsenmusume-kawaguchiko/) + - [富士急行线各站散步地图-河口湖](https://www.fujikyu-railway.jp/stroll-map/pdf/kawaguchiko.pdf) + +![[../../Attachments/逆富士山.png]] +> 来源:[掌握幾個要訣 你也能成功拍到日本「逆富士」! - 佳能 台灣 (tw.canon)](https://tw.canon/zh_TW/consumer/20190131-ICP-eos-r-with-mt-fuji/article) +![[../../Attachments/河口湖住宿地图.png]] + +- Resources + - [【2024河口湖酒店】Top22河口湖住宿推薦,逆富士!泡溫泉! (viviantrip.tw)](https://viviantrip.tw/kawaguchiko-top13-hotels/) + - [【2024河口湖住宿】12間可以泡溫泉、看逆富士山飯店推薦 - Klook 客路部落格](https://www.klook.com/zh-TW/blog/kawaguchiko-hotels/) +- Access + - 东京到河口湖 + - [JR EAST Travel Service Center (Haneda)](https://www.jreast.co.jp/multi/zh-CHS/customer_support/service_center_haneda.html) - 有专门买当天车票的窗口 + - [从东京前往河口湖的交通方式总整理](https://tokyo.letsgojp.cn/archives/94083/) + - [JR・富士急行直通特急 富士回遊 新宿→河口湖間下り最速1時間53分富士急行線 富士山麓電気鉄道株式会社](https://www.fujikyu-railway.jp/fujikaiyuu/) + - [毎日運行 東京~河口湖 富士急行線 富士山麓電気鉄道株式会社](https://www.fujikyu-railway.jp/train/jr_train07.php) + - [富士山駅~羽田空港線 - 富士急行バス](https://bus.fujikyu.co.jp/highway/detail/id/4) + - 湖口湖 + - [周遊バス](https://www.fujikyubus.co.jp/shuyu) 未预订 +- Hotels + - [虹夕諾雅 富士](https://hoshinoresorts.com/zh_tw/hotels/hoshinoyafuji/) + - [産屋 うぶや](https://www.ubuya.co.jp/) + +- Fun + - [【河口湖自由行】必去10大景点:超美逆富士、最新富士街道私房拍摄地公开](https://tokyo.letsgojp.cn/archives/94425/) + - [富士河口湖温泉郷×温泉むすめ](https://bus.fujikyu.co.jp/onsenmusume-kawaguchiko/) + - [富士河口湖町観光情報サイト](https://fujisan.ne.jp/) + - [富士急行線で行こう!ぶらり各駅散策マップ](https://www.fujikyu-railway.jp/stroll-map/) \ No newline at end of file diff --git "a/public/vaults/Publish/Trips/Plans/\350\260\201\350\257\264\345\220\215\345\217\244\345\261\213\344\270\215\345\245\275\347\216\251.md" "b/public/vaults/Publish/Trips/Plans/\350\260\201\350\257\264\345\220\215\345\217\244\345\261\213\344\270\215\345\245\275\347\216\251.md" new file mode 100644 index 0000000..80b6245 --- /dev/null +++ "b/public/vaults/Publish/Trips/Plans/\350\260\201\350\257\264\345\220\215\345\217\244\345\261\213\344\270\215\345\245\275\347\216\251.md" @@ -0,0 +1,3 @@ +## WIP + +作为日本的第三大城市,不知道之前为什么会被评为不理想的旅游目的地(已不想回去考据)。虽然它是一个以丰田为主的工业城市,但明明有挺多有意思的东西。 \ No newline at end of file diff --git "a/public/vaults/Publish/Trips/Plans/\351\200\262\346\222\203\343\201\256\350\277\221\347\225\277.md" "b/public/vaults/Publish/Trips/Plans/\351\200\262\346\222\203\343\201\256\350\277\221\347\225\277.md" new file mode 100644 index 0000000..fe846d6 --- /dev/null +++ "b/public/vaults/Publish/Trips/Plans/\351\200\262\346\222\203\343\201\256\350\277\221\347\225\277.md" @@ -0,0 +1,54 @@ + +最近平时瞎忙有点累,好久没更了。今天的日本旅游攻略还是存货,这次与上次的一次真实旅游攻略不同,打算换一种方式,汇总3次同一地区的经历,推荐一些有意思的点。这个地区就是奈良,京都,大阪,神户一线,即大家熟知的关西地区。 + +## 0x00 豆知识 + +虽说称为关西地区不错,但是不够准确,因为关西是一个很大的范围,添加维基百科说明。更准确的描述应该是近畿地区,补维基百科图片。奈良县,京都府,大阪府,兵库县(神户)都是属于近畿。 + +这个地区可发掘的元素众多,和北海道一样,是值得玩很久的区域。 + +关西国际空港是前往近畿地区的主要入关口,我们就从大阪讲起。以我个人的经验,完全不用担心关西机场会不会出入境的游客特别多,出入关特别慢,这是目前为止,我入关最快的一个机场,三次入关没有一次超过5分钟的,体验特别好。机场吃的东西很多,目前没有特别推荐的,中式,日式,西式都还行。机场往JR去找外国人服务中心,中英日文都可以,推荐ICOCA(一种IC交通卡),需要在中国时在它官网申请,描述便利性。关西的JR PASS细分地区和时间段特别多,为了省钱,需要结合行程安排具体核算,或者直接按照官网的JR PASS来安排行程。 + +## 0x01 大阪(未完成) + +大阪这个城市,我个人不是特别推荐,是一个商业化的现代大都市,和上海,香港,东京这种定位差不多,而我们日本旅游都是吃玩住,从不走买买买的路线,所以大阪的诱惑力不大。 + +关于大阪,推荐海游馆所在海港附近。据说是亚洲最大的室内水族馆(非室内的应该在冲绳,以后要去),里面可以租中文语音讲解机。如果是带小朋友的话应该更棒,不过我们两个大朋友因为爱好生物和自然,所以也特别嗨。从顶自下模拟了很多场景,几个点,花园鳗,鲸,水母,翻车鱼,锤头鲨,手摸小鲨鱼,乐高玩具。正常走3小时,可以玩半天,还有一个餐厅,有意思的冷饮,看海景不错,如果人不是特别多的话。 + +边上购物中心,里面有个小小的博物馆,第一次看到了各种各样的海蛞蝓。里面还有仿昭和时期的小吃街,里面的鸡蛋灌饼非常好吃。 + +在海港可以坐圣玛利亚号船晃一小时,还有一个巨大的摩天轮,里面的细节设计很有心,会在玻璃窗上指出周围建筑名字和历史。下午时段去这片区域的话效率最高,因为选择是上摩天轮看白天或是夜景。 + +## 0x02 京都 + +京都是一个适合闲逛的城市。城市参照中国古代的西安和洛阳设计,目前应该是洛区更热闹一些。国内在高速发展期的城市建设很多是让人心寒的,最后再魔改一堆仿得很土的古建筑,甚至再加一堆声光污染的酒吧,和随处可见的人头,最后想安安静静地看看中国古代的东西还要去京都,真是令人唏嘘。 + +京都的街道非常容易辨认,还有一首认路的童谣配合,很有意思。第二次去的时候就几乎已经不需要地图了,另一个可以达到这种状态的是北海道的札幌。 + +京都的寺庙非常多,很多也非常漂亮,但是部分寺庙是需要提前预约的,而且方式各有不同,所以想去的寺庙需要提前去找官方确认。而且约了时间千万不要迟到,否则迟一刻钟人家真可能不让你进,出门在外,最好还是留点余量。寺庙里推荐一个,三千院,也是从知乎得知的,非常偏,从JR要坐40多站公交,但是非常值得。两头都是终点站,一路沿着鸭川坐过去,景色还是不错的(我也是第一次在城市的河道里看到梅花鹿)。三千院本身最吸引我的是满地的青苔以及藏在青苔中的Q版小地藏。 + +吃吃喝喝方面,像锦市场之类的知名度很高,我想提的是位于三条的一保堂这家茶店。本人非常爱茶并且把小菌同学也带成了茶迷,某个结婚纪念日礼物,我为我俩海淘了一次日本茶,当时并不知道日本有啥厉害的茶铺,找到这家也是缘分,查了一下说是近400年历史,尝过以后觉得不错。所以在去京都时特意去拜访它的本铺。传统的日式建筑,有可以坐下喝茶的位置,但是需要预约,不预约的话就看运气了。我们是等了两桌进去的,店员会教客人怎么泡,茶点心也是非常好吃,按照店员教的泡法,玉露的风味感觉更有层次,是一种有意思的体验。日本茶的种类也很多(远不止抹茶一种)和中国茶各有各的意思,而且价格相对国内的茶叶来说价格更为稳定和透明,但需要注意的是日本茶的保鲜期相对较短,请及时享用它的鲜美。 + +另外想提一下住了两次的日式旅馆。非常贴心的日式服务,前台跟你说"Welcome again"并且在你的房间里提前放上小礼物和字条,给我的感觉就是想再来。我觉得我下次再去京都市区应该还会住在这里吧。 + +## 0x03 奈良 + +关于奈良,梅花鹿、东大寺、春日大社等等都是广为人知的,所以这里就不再赘述。只对鹿提一句,还是要注意安全,所幸没有攻击我,只是地图被吃了。奈良想说的是镇上。作为日本最早的首都,古朴的街道和民居非常带感,有几处百年建筑可以参观,不妨慢慢地走走看看。另外就是酒香不怕巷子深,某条弄堂里有家酿酒厂叫春鹿,是一家有100多年历史的店铺。店里也是老式的木造建筑,可以在里面试喝,500日元5杯不同的酒,还挺有意思的。日本酒普遍度数不高,但是也不宜贪杯。 + +## 0x04 神户 + +神户是兵库县首府,是一个非常著名的港口,但更为人所知的应该是牛肉吧。确实,到这里不吃一下三大和牛之一的神户牛确实会有遗憾吧。但是之前对于和牛餐厅功课做得不够充分,而且有名的餐厅都需要提前预订,所以当时我们就在JR站附近跟着拉客大叔随便去了一家,不管那些得奖的金牌是不是和店里的牛肉有关系,但是至少小哥很帅,牛肉也确实很好吃。 + +其实最想吹的还是有马温泉,这是一个很古老很有名的温泉,以金汤银汤而闻名。目前去过的温泉街还不算多,其中最喜欢的是有马温泉和北海道登别地狱谷(后者更多的自然景观)。两次去有马温泉都是住在竹取亭円山,主要是给我们的感受实在是太棒了,虽然价格较贵(以我的价值观,值得花钱体验一次)。中文雇员很多,语言完全不需要担心。贷切温泉按小时免费预约,先到先得,共有四处,均有金银两泉,大小景致各有特点(本人已集齐♪(´▽`))。最厉害的房间里自带露天温泉和巨大露台,位于酒店最高层,一梯一户,泡着温泉遥望远山和温泉街,套间内部也是巨大,非常棒。旅馆的小点心、早餐和怀石料理也非常棒。第二次和父母一起去的时候,依然是第一次的料理长,不知是第二次来还是过年的缘故,料理长给我们加了两道菜。 + +温泉街上推荐俩。一是一家釜饭,米其林一星,平价料足味道佳,我们是去等开门的,吃完出来就好多排队的人了。二是玩具博物馆,我和父亲大人在一个超简单的玩具那里玩得不亦乐乎。最棒的是德国的一套火车小镇,惟妙惟肖,可惜没凑到火车运行的时间点(建议提前做功课),其它还看到了日本玩具奉茶童子的内部结构,再加上一堆的铁皮玩具,还是相当不错的。我们还买了一个很有意思的玩具,火柴盒里的世界。其它的请自行发掘。前几个月得知上海也有一个火车模型博物馆,打算抽空去看一下,应该会很有趣。 + +关于神户再提一处。以前这里也是租界类似的地区,所以有一个异人馆街,就是世界各国的一些使节或商人的聚集地,也有各国的建筑和物件。另外一个有意思的是不可思议领事馆,一个充分利用视觉错觉来为游客提供摄影场景的建筑,个人感觉还是比较有意思的,也是唯一一处留下很多人像照片的地点。 + +## 0x05 姬路 + +姬路也在兵库南部,离神户火车半小时的距离。这里的核心景点就是姬路城。对我来说,冲击力五星,以至于我在第一天下午参观后,第二天上午又去参观了一次。下个月还会带父母再去感受一下(特别带父母的情况下,不是特别建议冬天去,因为内部需要脱鞋,一来会比较凉,二来木头可能体感比较滑)。姬路城的名头很大,日本三大名城,日本第一名城,内部结构保存度极高(它的天守阁是12座现存天守之一)。在我看来,大阪城外部土豪式的贴金,内部全是现代化的设施,被素颜的姬路城完爆一百条街。关于姬路城可以语无伦次地吹爆好久,但还是不要剧透太多的好,如果有安排大阪神户线旅游的,推荐安排一天时间去姬路亲自体验一下它的魅力。在google play store有一个关于姬路城的AR体验互动应用himeji castle great discovery,有兴趣的朋友可以到日本后下载,增加一些小乐趣和小知识。 + +## 0x06 其它 + +下个月底会再去该地区,将会有一个新的打卡地点——日本三景之一的京都府宫津市天桥立。之前在我内心PK掉了兵库北的城崎温泉,但具体还是等我玩过以后再说吧。 \ No newline at end of file diff --git a/public/vaults/Publish/Trips/Visited-Places.md b/public/vaults/Publish/Trips/Visited-Places.md new file mode 100644 index 0000000..b1ee6e7 --- /dev/null +++ b/public/vaults/Publish/Trips/Visited-Places.md @@ -0,0 +1,48 @@ + +## China + + + +## Japan + +### 北海道 (ほっかいどう) + +[[Plans/夏之北海道|夏之北海道]] + +#### 札幌 (さっぽろ) +#### 函館 (はこだて) +#### トマム +#### 美瑛 (びえい) +#### 富良野 (ふらの) +#### 洞爺 (とうや) +#### 小樽 (おたる) +#### 登別 (のぼりべつ) + +### 近畿 (きんき) + +[[Plans/進撃の近畿|進撃の近畿]] + +#### 神戸 (こうべ) + +#### 姫路 (ひめじ) +#### 京都 (きょうと) +#### 奈良 (なら) + +#### 大阪 (おおさか) +#### 天橋立 (あまのはしだて) + +### 中京圏 (ちゅうきょうけん) + +#### 名古屋 (なごや) + +[[Plans/谁说名古屋不好玩|谁说名古屋不好玩]] + +### 甲信地方(こうしんちほう) + +#### 富士河口湖町(ふじかわぐちこまち) + +[[Plans/本应慵懒的河口湖--完美逆富士之旅|本应慵懒的河口湖--完美逆富士之旅]] + +### 北九州 + +[[Plans/春岚樱语——北九州初体验|春岚樱语——北九州初体验]] \ No newline at end of file diff --git "a/public/vaults/Publish/Trips/\345\210\266\344\275\234\346\227\245\346\234\254\346\227\205\350\241\214\346\224\273\347\225\245\344\270\200\350\210\254\350\246\201\347\202\271.md" "b/public/vaults/Publish/Trips/\345\210\266\344\275\234\346\227\245\346\234\254\346\227\205\350\241\214\346\224\273\347\225\245\344\270\200\350\210\254\350\246\201\347\202\271.md" new file mode 100644 index 0000000..466ce36 --- /dev/null +++ "b/public/vaults/Publish/Trips/\345\210\266\344\275\234\346\227\245\346\234\254\346\227\205\350\241\214\346\224\273\347\225\245\344\270\200\350\210\254\350\246\201\347\202\271.md" @@ -0,0 +1,168 @@ +![[../Attachments/日本.png]] + +## 0x00 Preconditions + +目前国外只去过日本,暂时也没有计划去其它国家。一方面是记录分享以前的行程,一方面是做未来的旅行计划。 + +### 0.1 自由行 or 跟团 + +个人认为日本是一个适合自由行的国家,因为同样是一个相当安全的国家,通过手写汉字也许比英文沟通还有效。另外就是中国游客是日本的主要外国客源,东京、大阪、京都这种大城市,汉语使用相当多。 + +作为参考,个人的日语和英文水平也极其有限,几乎没有遇到过特别大的问题(连火车上丢的包都找回来了(ง •_•)ง)。 + +另一个参考,有一次带父母去旅行,不会外语(手机上有一个翻译软件,实际没有使用),晚上让他们出去自由活动,玩得挺好,还去买了水果和点心啥的回宾馆给我吃。 + +如果实在担心,也可以先跟团后再评估自己是否能够自由行。本人从来不跟团,不对团进行评价。 + +### 0.2 W/ or W/O旅行攻略 + +首先,日本是一个适合做攻略的旅行目的地。绝大多数情况下,时刻表靠谱,各景点的介绍资料详尽到爱不释手,各种公共设施的信息也齐全得可怕。不夸张地说,在出行之前,几乎可以把Budget和Schedule安排到九成以上,连应急预案都可以做出来,偏差极小。 + +目前为止,去过五次,其中四次做了攻略。详细的单次旅行攻略可能压缩后会有几十M,甚至包含当地旅游指南、轨道交通站层图、换乘路线、景点地图及规划路线图等等。分享的旅行攻略只是攻略中的一部分,有兴趣详细了解的,可以交流。 + +有朋友提问,攻略做得那么细,去玩还有意思吗?从我以及家人的感受来说,趣味丝毫没有减少。过程中免不了惊喜,也免不了意外。不意外的部分可以向同行者分享攻略中有意思的背景,作为一个得瑟环节也是不错的。同时整个旅行风险更加可控(不招人喜欢的现实,万事皆项目,旅行也不例外,范围、成本、时间)。 + +个人也有不做攻略说走就走的经历。主要原因是没有准备时间。所以我选择了与过往某次类似的行程(去过的城市,不同的季节,没去的景点)。很多城市都打算在不同的季节去多次,所以在非初见的情况下,我也会考虑弱化攻略甚至完全不做攻略。比如京都和札幌别说没攻略,没地图现在也可以愉快玩一周(o( ̄▽ ̄*)o)。 + +完全不做攻略的自由行,如果是有钱有闲的看官,当然没有问题,看不够或者错过了就多去几次。作为项目,旅行通常是有既定的时间,如果不做攻略,通常范围和成本会偏离目标,就看各人如何权衡“自由/写意/随性/惊喜”与范围、成本的偏离程度了。 + +### 0.3 旅行目标 + +有需求才有项目计划。通常事先会有几个必去的地点以及可控长度的假期才会计划出行。比如要看一下薰衣草花四田,比如要去大阪环球影城看Harry Porter,又或者是秋叶原买买买。围绕这个核心需求,结合假期长度,合理填充剩余的时间。 + +## 0x01 旅行攻略基本要素 + +### 1.1 机酒 + +从国内出发的话,日本签证不接受个人直接办理,必须通过旅行社办理。在此不做公开的推荐,但请各位找靠谱的中介,免得拒签带来不必要的麻烦。 + +通常来说,在办理签证前,是需要提供机票和酒店信息的(当然旅行社也可以想办法帮你圆过去),而且在去程飞机上也需要填写落地第一家酒店的相关联系方式和回程部分信息的。所以,几乎也就意味着,在办理签证之前,以天为单位的项目节点是应该锁定的。 + +预算完全看个人规划。以上海为例,机票从约800到10000+不等,酒店从200到20000+不等,量力而行。 + +酒店的话个人习惯使用Booking预订,其实温泉酒店可能用日本相关协会网站检索效果更好,比如[有马温泉](http://www.arima-onsen.com/inn.html)的观光协会官网。因为日本是温泉胜地,所以这一点可以展开一部分。订之前确认好种类是非常有必要的,避免文化差异带来不愉快的体验。有两种相对私密的推荐,不妨在搜索时考虑加上。 + +* 貸切風呂あり:私汤,通常是分时段包场,酒店会有一些大小不等的公共的汤,分时间段给预约的旅客使用。 +* (露天)風呂客室あり:房间中带(露天)温泉 + +优点显而易见——不会遇到不认识的人,缺点也同样突出,通常来说带上述卖点的会贵一些,特别是第二个。如果运气好,也许可以找到便宜的。当然无论哪种,都是洗干净才能泡的。有纹身者会受到更大的限制。 + +### 1.2 交通&景点 + +除了来回飞机和第一天的酒店以外,其它食住行是相互制约的,是一个迭代优化的过程。先处理必选项(如某景点或某温泉酒店或某餐厅),然后填充可选项的景点,然后安排交通和住宿,如有冲突再调整安排,直到合理。 + +#### 1.2.1 交通 + +日本的TAXI确实相当贵,如无必要尽量避免。三五公里(百元RMB左右)的在必要时候也不要太犹豫,几十公里的慎重。有意思的是,仔细观察可以发现,TAXI司机以年长者为主,不乏70左右的银发。 + +据我以前的了解,通常国内的旅游签证是无法通过正规渠道办理自驾的。而且,日本是右舵为主。 + +地陪之类的没有接触过,本人是95%公共交通+5%TAXI的模式。 + +公交车、城际大巴、轨道交通都有官网,官网上都有详细的时刻表。需要注意的是: + +* 电车(主要指火车)主要是由JR运营,时刻表通常会每月/每两月更新一次,所有时刻表上都会注明有效期。如果你的出行计划刚好是在时刻表交替前后,需要小心。 +* 有些著名的电车(如札幌到东京的部分巨贵的卧铺车)需要预订,而且通常是在月初开放全月的预订(通常不可在网上预订)。所以有执念的要提前安排,最好是在当月1日到达日本,尽早预订。 +* 日本电车运营主体很多,不同运营公司的线路一定要分清楚。 +* 有些列车会在运行到某一站时分为前后两部分开往不同的地方(比如从大阪到大阪机场)…… +* JR PASS可在国内购买,是个好东西,但要结合行程考虑,大概率划算。其它交通卡如ICOCA通常需要提前在网上预订。 +* 城际大巴大多需要提前在网上订票,现场买票不一定能上车,如果座位满员的话。提前预订有时候有打折。 +* 其它暂时想不起来了 + +总之,建议时刻表查阅**官网**,随时关注**更新信息**。 + +#### 1.2.2 景点 + +景点这里包含了吃吃吃,玩玩玩,买买买。这个完全看个人喜好了,我和小菌同学对于买买买几乎没有兴趣,也就是知道大阪、东京这种城市适合购物,所以这个在以后具体分享的攻略里几乎也不会有体现。 + +吃吃吃玩玩玩首先要注意的是定休日,不一定每天都营业的,如果是必选项,必须安排好周几去。 + +吃的话,注意的是部分餐厅需要预约,有些是不预约不让进,有些是不预约要等。如果有必去的餐厅,务必提前查询信息,厉害的餐厅通常有网站。如果语言不过关,有一种方式供大家参考,到酒店以后,把你要预约的餐厅的时间、人数、联系方式、忌口给酒店,让酒店帮你预定。餐厅礼仪不再赘述。 + +玩的话,强烈推荐在锁定目标后浏览景点官网。中国旅游团常去的自不必说,一些能避开中国旅游团的景点,很多也有中文或者英文的网页和资料。比如[大沼公园](http://onumakouen.com/zh-hans/),[它的地图](http://onumakouen.com/wpcont2017/wp-content/uploads/2016/02/onumaMAP_zh-hs2016.pdf)是典型代表,有不同的规划路线,标注不同路线的游玩时间,公园内的所有设施等等。特别是不同路线的时长,为行程安排提供了有依据的参考,**吹爆**。 + +寺庙等景点,有些是需要提前预约的,预约方式也不尽相同,官网通常会有说明。另外需要注意的是,留好余量不要迟到,否则可能会被拒绝进入的。 + +### 1.3 必备APP + +日本的门户网站是雅虎。所以雅虎系的应用在日本都相当好用。 + +* 交通类: + * Free - Y!乘换案内:个人觉得最好用的交通APP,可以只用这一个,优点是信息更新快,换乘信息完善,站层图和站内设施信息完善,含步行。缺点是只有日语版,而且搜索栏输入中国汉字不一定会出结果。 + * [Limited - Japan Travel by NAVITIME - 日本旅游指南、公交搜索和路线规划](https://japantravel.navitime.com/zh-cn/) + * [【官方】日本国家旅游局(JNTO) APP已废](https://www.japan-travel.cn/) + * 其它:上面一个能用的话,其它都无所谓,相关的还可以推荐Y!MAP,和谷歌地图。 +* 翻译: + * 谷歌翻译和必应翻译都不错,需要提醒父母的使用说明是**尽量使用简单句**,不要说复杂的中文。 + * 完全没必要买人工-智能翻译的某飞产品。 +* 吃: + * 通常可以不用,最好用的那个是收费的,免费的如HOT PEPPER,勉强临时用用还行。 + +其它的印象中也用不太上,在制作攻略过程中的国内软件我就不说了,因为没人给我广告费。 + +### 1.4 通信 + +通常情况下,我都是使用租赁的 WIFI,没有使用过 ESIM 之类的经验。两个人五台设备分享,一般只要不单独行动都没有问题。 + +[更新至 2024 年 5 月] 以防万一,补一下资费信息: + +| ISP | 通话(无论主被叫) | 流量 | 套餐 | +| --- | --------- | ------ | --------------------------------- | +| 移动 | 0.99/m | 30/天封顶 | 88/4天流量,2G后限制到378kbps,电话10元20分钟/月 | +| 联通 | 0.95/m | 25/天封顶 | 85/4天流量,2G后限制到 384kbps,电话无 | + +### 1.5 Checklist +- 电器类 + - [ ] 氮化镓充电头 + - [ ] 二脚插排(可选) + - [ ] 转换头(可选,小型电子产品的充电器一般是宽电压,110 和 220V 都可) + - [ ] 充电宝 + - [ ] WIFI + - [ ] 充电线 + - [ ] 笔记本电脑(可选) +- 证件类 +- 穿 + - [ ] 一次性袜子/内裤 + - [ ] 外套/外裤 +- 洗漱包 + - [ ] 牙刷/牙膏/牙线 + - [ ] 护肤(如有) +- 药品 + - [ ] 拉肚子药 + - [ ] 创可贴 + - [ ] 碘伏棉棒 +- 其它 + - [ ] 垃圾袋 + - [ ] 盖章本 + - [ ] 腰包 + + +## 0x02 Related Topics + +**项目思维**:**时间、成本、范围**。生活中的很多事情都是如此。用好这个框架可以事半功倍,避免盲目。 + +关于一些坑: +- 关于自驾,目前我依然认为是非法的,属于万一出问题可能就完蛋,所以我是不会冒这个险的 + - [警察庁 外国の運転免許をお持ちの方](https://www.npa.go.jp/policies/application/license_renewal/have_DL_issed_another_country.html) + - [虽有学校,但感觉擦边](https://www.heianjidoushagakkou.jp/courses) + +## 0x03 Acknowledgements + +第一次日本旅行是2014年蜜月旅行,当时女博士还在读,所以攻略是她做的,花了大概一个月时间,所有的景点和换乘都相当详细,完成度也是非常高的。第一次的日本自由行体验相当好,奠定了我们要逛遍日本的目标。第二次的旅行我尝试做攻略以后就一发不可收拾,就爱上做功(xiang4)略(mu4)了。所以这个栏目要感谢太太♪(´▽`)。 +具体的行程攻略后续会分享,有兴趣的欢迎交流。 + +## 0x04 References + +- 徒步 + - [How to use Japanese hiking app YAMAP](https://www.emgoto.com/yamap-guide/) + - YAMAP App (GPX 下载收费) + - [YAMAP 路线难度定义](https://help.yamap.com/hc/ja/articles/900000967903-%E3%82%B3%E3%83%BC%E3%82%B9%E5%AE%9A%E6%95%B0%E3%81%A8%E3%81%AF) + - [全球 GPX 东亚少量](https://www.alltrails.com/explore) + - [GoogleMaps2GPX 只能 citywalk](https://mapstogpx.com/) +- 花見・桜名所 + - https://weathernews.jp/sakura/ +- 历史天气查询 + - https://www.data.jma.go.jp/stats/etrn/index.php + - 先选地点,再选时间,再选种类(注意,并不是所有观测点有所有时间的所有数据,选地点会有图例和注释) + - [出发前天气查询](https://www.japan.travel/en/weather/kyushu/) + - \ No newline at end of file diff --git a/public/vaults/Publish/Welcome.md b/public/vaults/Publish/Welcome.md new file mode 100755 index 0000000..3764c50 --- /dev/null +++ b/public/vaults/Publish/Welcome.md @@ -0,0 +1,266 @@ +--- +tags: + - test +uuid: 115e245b-8b76-43b8-9728-472b60e47705 +--- + +# 欢迎来到 Helenite + +这里是一个基于 React 的现代化 Obsidian Vault 查看器。 + +## 主要特性 + +- 🎨 **现代化界面** - 基于 React 18 + TypeScript 构建 +- 📱 **响应式设计** - 完美适配桌面端、平板和移动设备 +- ⚡ **高性能** - 使用 Vite 5 构建系统 +- 🎯 **专注阅读** - 只读模式,专注内容浏览 + +## 相关链接 + +这里是一些有用的外部链接: +- [React 官方文档](https://react.dev/) - 学习 React 框架 +- [TypeScript 手册](https://www.typescriptlang.org/docs/) - TypeScript 官方文档 +- [Obsidian 官网](https://obsidian.md) - 知识管理工具 +- [GitHub 仓库](https://github.com/anthropics/claude-code) - 项目源码 + +## Obsidian 语法支持 + +### 内部链接 +查看 [[Dream-Destinations]] 了解更多旅行计划,或者访问 [[Multi-agent]] 查看技术项目。 + +### 标签系统 +相关标签:#react #markdown #obsidian #typescript + +### 高亮显示 +这是一个 ==重要的高亮内容== 示例。 + +### Callouts + +> [!info] 信息提示 +> 这是一个信息类型的 callout 块。 + +> [!tip] 使用技巧 +> 你可以使用左侧的文件浏览器来导航不同的文档。 + +> [!warning] 注意事项 +> 这是只读模式,无法编辑文件内容。 + +> [!note] 技术架构 +> - React 18 + TypeScript +> - Mantine UI 7 + Tailwind CSS +> - Zustand 状态管理 +> - Unified + Remark Markdown 处理 + +> [!note] 技术架构 A +> 1. React 18 + TypeScript +> 2. Mantine UI 7 + Tailwind CSS + +## 数学公式支持 + +内联公式:$E = mc^2$ + +块级公式: +$$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$ + +## 代码块示例 + +```javascript +// React 组件示例 +function MarkdownViewer() { + const [content, setContent] = useState(''); + + useEffect(() => { + markdownProcessor.processWithMetadata(content) + .then(result => { + setRenderedContent(result.html); + }); + }, [content]); + + return
{renderedContent}
; +} +``` + +## 图表和可视化 + +### Mermaid 流程图 + +```mermaid +graph TB + A[用户请求] --> B[API 路由] + B --> C{认证检查} + C -->|通过| D[数据处理] + C -->|失败| E[返回错误] + D --> F[响应数据] + F --> G[前端渲染] +``` + +### 系统架构图 + +```mermaid +graph LR + subgraph "前端层" + A[React App] + B[Zustand Store] + C[API Hooks] + end + + subgraph "API 层" + D[FileTree API] + E[Graph API] + F[File API] + G[Search API] + end + + subgraph "数据层" + H[metadata.json] + I[Markdown 文件] + J[附件资源] + end + + A --> B + B --> C + C --> D + C --> E + C --> F + C --> G + D --> H + E --> H + F --> I + G --> H + F --> J +``` + +## 户外路线追踪 + +### GPX 轨迹文件测试 + +#### 陆羽古道环线 (内联 GPX) + +```gpx + + + + 陆羽古道环线 + 湖州吴兴区稍康村出发的经典环线路线 + + + 陆羽古道徒步 + 全程9公里,爬升400米 + + + 50 + 稍康村起点 + + + 120 + 茶园观景台1 + + + 200 + 山脊线 + + + 350 + 最高点 + + + 280 + 茶园观景台2 + + + 150 + 下山路 + + + 50 + 回到起点 + + + + + 50 + 停车场 + 村口停车场,可免费停车 + + + 350 + 山顶观景台 + 360度全景,可俯瞰整个茶园梯田 + + +``` + +#### YAMAP 徒步路线 (外部 GPX 文件) + +![[Attachments/yamap_2025-04-02_08_48.gpx]] + +### KML 文件测试 + +#### 城市漫步路线 + +![[Attachments/中西citywalk.kml]] + +#### 佘山绿道路线 + +![[Attachments/东西佘山含地铁绿道.kml]] + +#### 红叶 + +![[Attachments/红叶尚湖.gpx]] + +#### a + +![[Attachments/金牛道拦马墙到普安镇.kml]] + +![[Attachments/金牛道拦马墙到普安镇.gpx]] + +## 任务列表 + +- [x] 完成 API 架构重构 +- [x] 实现 FileTree API +- [x] 实现 Graph API +- [x] 实现 File API +- [ ] 实现 Search API +- [ ] 实现 Tag API +- [ ] 添加搜索功能 +- [ ] 优化移动端体验 + +## 引用和脚注 + +这里引用了一些重要的资源[^1],以及技术文档[^2]。 + +[^1]: React 官方文档: https://react.dev +[^2]: TypeScript 手册: https://www.typescriptlang.org/docs/ + +## 表格支持 + +| 功能 | 状态 | 优先级 | +|------|------|--------| +| 文件浏览 | ✅ 完成 | 高 | +| Markdown 渲染 | ✅ 完成 | 高 | +| 图谱可视化 | ✅ 完成 | 中 | +| 搜索功能 | 🚧 开发中 | 中 | +| 标签系统 | ⏳ 计划中 | 低 | + +## 多媒体内容 + +### 图片 +![示例图片](https://via.placeholder.com/600x300/4ade80/ffffff?text=Helenite+Preview) + +### 分隔线 +--- + +## 小玩意儿 + +[FIRE(Financial Independence, Retire Early) 提前退休财务规划计算器](https://fire.freedeaths.com) + +## 联系方式 + +如需留言或反馈,请发送邮件至 [freedeaths@gmail.com](mailto:freedeaths@gmail.com)。 + +> [!success] 测试完成 +> 这个文档包含了大部分 Markdown 语法和 Obsidian 特性,适合用于功能测试和展示。 + +--- + +选择左侧的其他文件来浏览更多内容。 diff --git a/public/vaults/Publish/metadata.json b/public/vaults/Publish/metadata.json new file mode 100644 index 0000000..e921c57 --- /dev/null +++ b/public/vaults/Publish/metadata.json @@ -0,0 +1,855 @@ +[ + { + "fileName": "How-to-Implement-obsidian-sharing-space", + "relativePath": "How-to-Implement-obsidian-sharing-space.md", + "tags": [ + "tech" + ], + "frontmatter": { + "test": "TeSt" + }, + "aliases": [ + "How-to-Implement-obsidian-sharing-space" + ], + "headings": [ + { + "heading": "TL; DR", + "level": 2 + }, + { + "heading": "About Sharing", + "level": 2 + }, + { + "heading": "Purpose", + "level": 3 + }, + { + "heading": "Approach", + "level": 3 + }, + { + "heading": "Implementation", + "level": 2 + }, + { + "heading": "Prerequisites", + "level": 3 + }, + { + "heading": "Deployment", + "level": 3 + }, + { + "heading": "OneDrive CLI Client", + "level": 4 + }, + { + "heading": "Obsidian Front-End", + "level": 4 + }, + { + "heading": "Caddy & Cloudflare", + "level": 4 + }, + { + "heading": "Comment Plugin", + "level": 3 + }, + { + "heading": "Issues", + "level": 3 + }, + { + "heading": "太长不看", + "level": 2 + }, + { + "heading": "关于分享", + "level": 2 + }, + { + "heading": "目的", + "level": 3 + }, + { + "heading": "手段", + "level": 3 + }, + { + "heading": "实现", + "level": 2 + }, + { + "heading": "前提条件", + "level": 3 + }, + { + "heading": "部署", + "level": 3 + }, + { + "heading": "OneDrive CLI Client", + "level": 4 + }, + { + "heading": "Obsidian Front-end", + "level": 4 + }, + { + "heading": "Caddy & Cloudflare", + "level": 4 + }, + { + "heading": "评论插件", + "level": 3 + }, + { + "heading": "Issues", + "level": 3 + } + ] + }, + { + "fileName": "Multi-agent-Voyager-Play-Minecraft", + "relativePath": "LLM/Multi-agent-Voyager-Play-Minecraft.md", + "headings": [ + { + "heading": "The Voyager Paradigm: Minecraft as a Testbed for Multi-Agent AI Collaboration", + "level": 1 + }, + { + "heading": "TL; DR", + "level": 2 + }, + { + "heading": "Overview", + "level": 2 + }, + { + "heading": "Prerequisites", + "level": 2 + }, + { + "heading": "Key Path", + "level": 3 + }, + { + "heading": "Auxiliary Path", + "level": 3 + }, + { + "heading": "Learning loop of Voyager", + "level": 2 + }, + { + "heading": "Pseudocode", + "level": 3 + }, + { + "heading": "Outer Loop", + "level": 3 + }, + { + "heading": "Inner Loop (Rollout)", + "level": 3 + }, + { + "heading": "Experiments", + "level": 2 + }, + { + "heading": "Typical successful logs", + "level": 3 + }, + { + "heading": "Discussion", + "level": 2 + }, + { + "heading": "关于 Voyager 控制 Minecraft API 的整理", + "level": 1 + }, + { + "heading": "太长不看", + "level": 2 + }, + { + "heading": "概述", + "level": 2 + }, + { + "heading": "前置知识", + "level": 2 + }, + { + "heading": "关键路径", + "level": 3 + }, + { + "heading": "辅助路径", + "level": 3 + }, + { + "heading": "Voyager 的学习循环", + "level": 2 + }, + { + "heading": "伪代码", + "level": 3 + }, + { + "heading": "外循环", + "level": 3 + }, + { + "heading": "内循环(执行任务)", + "level": 3 + }, + { + "heading": "实验", + "level": 2 + }, + { + "heading": "典型成功 Log", + "level": 3 + }, + { + "heading": "讨论", + "level": 2 + } + ] + }, + { + "fileName": "Contribute-Groupchat-to-Autogen", + "relativePath": "LLM/Contribute-Groupchat-to-Autogen.md", + "headings": [ + { + "heading": "How I Contributed to a 20k+ Stars Open Source Project for the First Time: Assist in Completing the Amazing Graph Feature for GroupChat in MicroSoft/AutoGen", + "level": 1 + }, + { + "heading": "Introduction", + "level": 2 + }, + { + "heading": "Background", + "level": 3 + }, + { + "heading": "Motivation", + "level": 3 + }, + { + "heading": "Contributions", + "level": 2 + }, + { + "heading": "Minimum Verification Test Design", + "level": 3 + }, + { + "heading": "Push for the Merge of PR 857", + "level": 3 + }, + { + "heading": "Application of the FSM Feature", + "level": 2 + }, + { + "heading": "Usage", + "level": 3 + }, + { + "heading": "Discussion", + "level": 2 + }, + { + "heading": "Lessons Learned", + "level": 3 + }, + { + "heading": "Future Works", + "level": 3 + }, + { + "heading": "协助为 20000+ Star 的开源项目 AutoGen 贡献重要特性: 实现基于 FSM 的群聊", + "level": 1 + }, + { + "heading": "引言", + "level": 2 + }, + { + "heading": "背景", + "level": 3 + }, + { + "heading": "动机", + "level": 3 + }, + { + "heading": "贡献过程", + "level": 2 + }, + { + "heading": "最小实验设计", + "level": 3 + }, + { + "heading": "推进 PR #857 的合并", + "level": 3 + }, + { + "heading": "FSM 特性的应用案例", + "level": 2 + }, + { + "heading": "用法", + "level": 3 + }, + { + "heading": "讨论", + "level": 2 + }, + { + "heading": "经验教训", + "level": 3 + }, + { + "heading": "进一步的工作", + "level": 3 + } + ] + }, + { + "fileName": "Welcome", + "relativePath": "Welcome.md", + "tags": [ + "test" + ] + }, + { + "fileName": "阳台植物", + "relativePath": "FunFacts/阳台植物.md", + "headings": [ + { + "heading": "WIP", + "level": 2 + } + ] + }, + { + "fileName": "Visited-Places", + "relativePath": "Trips/Visited-Places.md", + "headings": [ + { + "heading": "China", + "level": 2 + }, + { + "heading": "Japan", + "level": 2 + }, + { + "heading": "北海道 (ほっかいどう)", + "level": 3 + }, + { + "heading": "札幌 (さっぽろ)", + "level": 4 + }, + { + "heading": "函館 (はこだて)", + "level": 4 + }, + { + "heading": "トマム", + "level": 4 + }, + { + "heading": "美瑛 (びえい)", + "level": 4 + }, + { + "heading": "富良野 (ふらの)", + "level": 4 + }, + { + "heading": "洞爺 (とうや)", + "level": 4 + }, + { + "heading": "小樽 (おたる)", + "level": 4 + }, + { + "heading": "登別 (のぼりべつ)", + "level": 4 + }, + { + "heading": "近畿 (きんき)", + "level": 3 + }, + { + "heading": "神戸 (こうべ)", + "level": 4 + }, + { + "heading": "姫路 (ひめじ)", + "level": 4 + }, + { + "heading": "京都 (きょうと)", + "level": 4 + }, + { + "heading": "奈良 (なら)", + "level": 4 + }, + { + "heading": "大阪 (おおさか)", + "level": 4 + }, + { + "heading": "天橋立 (あまのはしだて)", + "level": 4 + }, + { + "heading": "中京圏 (ちゅうきょうけん)", + "level": 3 + }, + { + "heading": "名古屋 (なごや)", + "level": 4 + }, + { + "heading": "甲信地方(こうしんちほう)", + "level": 3 + }, + { + "heading": "富士河口湖町(ふじかわぐちこまち)", + "level": 4 + }, + { + "heading": "北九州", + "level": 3 + } + ], + "links": [ + { + "link": "夏之北海道", + "relativePath": "Trips/Plans/夏之北海道.md" + }, + { + "link": "進撃の近畿", + "relativePath": "Trips/Plans/進撃の近畿.md" + }, + { + "link": "谁说名古屋不好玩", + "relativePath": "Trips/Plans/谁说名古屋不好玩.md" + }, + { + "link": "本应慵懒的河口湖--完美逆富士之旅", + "relativePath": "Trips/Plans/本应慵懒的河口湖--完美逆富士之旅.md" + }, + { + "link": "春岚樱语——北九州初体验", + "relativePath": "Trips/Plans/春岚樱语——北九州初体验.md" + } + ] + }, + { + "fileName": "制作日本旅行攻略一般要点", + "relativePath": "Trips/制作日本旅行攻略一般要点.md", + "headings": [ + { + "heading": "0x00 Preconditions", + "level": 2 + }, + { + "heading": "0.1 自由行 or 跟团", + "level": 3 + }, + { + "heading": "0.2 W/ or W/O旅行攻略", + "level": 3 + }, + { + "heading": "0.3 旅行目标", + "level": 3 + }, + { + "heading": "0x01 旅行攻略基本要素", + "level": 2 + }, + { + "heading": "1.1 机酒", + "level": 3 + }, + { + "heading": "1.2 交通&景点", + "level": 3 + }, + { + "heading": "1.2.1 交通", + "level": 4 + }, + { + "heading": "1.2.2 景点", + "level": 4 + }, + { + "heading": "1.3 必备APP", + "level": 3 + }, + { + "heading": "1.4 通信", + "level": 3 + }, + { + "heading": "1.5 Checklist", + "level": 3 + }, + { + "heading": "0x02 Related Topics", + "level": 2 + }, + { + "heading": "0x03 Acknowledgements", + "level": 2 + }, + { + "heading": "0x04 References", + "level": 2 + } + ], + "backlinks": [ + { + "fileName": "夏之北海道", + "link": "制作日本旅行攻略一般要点", + "relativePath": "Trips/Plans/夏之北海道.md" + }, + { + "fileName": "夏之北海道", + "link": "制作日本旅行攻略一般要点", + "relativePath": "Trips/Plans/夏之北海道.md" + } + ] + }, + { + "fileName": "谁说名古屋不好玩", + "relativePath": "Trips/Plans/谁说名古屋不好玩.md", + "headings": [ + { + "heading": "WIP", + "level": 2 + } + ], + "backlinks": [ + { + "fileName": "Visited-Places", + "link": "谁说名古屋不好玩", + "relativePath": "Trips/Visited-Places.md" + } + ] + }, + { + "fileName": "進撃の近畿", + "relativePath": "Trips/Plans/進撃の近畿.md", + "headings": [ + { + "heading": "0x00 豆知识", + "level": 2 + }, + { + "heading": "0x01 大阪(未完成)", + "level": 2 + }, + { + "heading": "0x02 京都", + "level": 2 + }, + { + "heading": "0x03 奈良", + "level": 2 + }, + { + "heading": "0x04 神户", + "level": 2 + }, + { + "heading": "0x05 姬路", + "level": 2 + }, + { + "heading": "0x06 其它", + "level": 2 + } + ], + "backlinks": [ + { + "fileName": "Visited-Places", + "link": "進撃の近畿", + "relativePath": "Trips/Visited-Places.md" + } + ] + }, + { + "fileName": "春岚樱语——北九州初体验", + "relativePath": "Trips/Plans/春岚樱语——北九州初体验.md", + "tags": [ + "japan", + "travel" + ], + "frontmatter": {}, + "headings": [ + { + "heading": "流水账", + "level": 1 + }, + { + "heading": "前言", + "level": 2 + }, + { + "heading": "3月31日 - 初见福冈", + "level": 2 + }, + { + "heading": "4月1日 - 邂逅别府", + "level": 2 + }, + { + "heading": "4 月 2 日 - 迷雾森林鹤见岳", + "level": 2 + }, + { + "heading": "4 月 3 日 - 别府日出", + "level": 2 + }, + { + "heading": "4 月 4 日 - 熊本城与熊本熊", + "level": 2 + }, + { + "heading": "4 月 5 日 - 福冈樱语", + "level": 2 + }, + { + "heading": "4 月 6 日 意犹未尽", + "level": 2 + }, + { + "heading": "尾声", + "level": 2 + }, + { + "heading": "计划", + "level": 1 + }, + { + "heading": "主体", + "level": 2 + }, + { + "heading": "目标", + "level": 3 + }, + { + "heading": "简单功略", + "level": 3 + }, + { + "heading": "参考", + "level": 4 + }, + { + "heading": "Checklist", + "level": 3 + }, + { + "heading": "回收站", + "level": 2 + }, + { + "heading": "阿苏", + "level": 3 + }, + { + "heading": "门司港(北九州市)", + "level": 3 + }, + { + "heading": "相岛", + "level": 3 + }, + { + "heading": "由布院", + "level": 3 + }, + { + "heading": "太宰府", + "level": 3 + } + ], + "backlinks": [ + { + "fileName": "Visited-Places", + "link": "春岚樱语——北九州初体验", + "relativePath": "Trips/Visited-Places.md" + } + ] + }, + { + "fileName": "本应慵懒的河口湖--完美逆富士之旅", + "relativePath": "Trips/Plans/本应慵懒的河口湖--完美逆富士之旅.md", + "tags": [ + "japan", + "travel" + ], + "frontmatter": {}, + "headings": [ + { + "heading": "流水账", + "level": 1 + }, + { + "heading": "6 月 7 日", + "level": 2 + }, + { + "heading": "6 月 8 日", + "level": 2 + }, + { + "heading": "6 月 9 日", + "level": 2 + }, + { + "heading": "6 月 10 日", + "level": 2 + }, + { + "heading": "计划", + "level": 1 + }, + { + "heading": "预期天气", + "level": 2 + }, + { + "heading": "Day 1", + "level": 2 + }, + { + "heading": "Day 2", + "level": 2 + }, + { + "heading": "Day 3", + "level": 2 + }, + { + "heading": "Day 4", + "level": 2 + }, + { + "heading": "References", + "level": 1 + } + ], + "backlinks": [ + { + "fileName": "Visited-Places", + "link": "本应慵懒的河口湖--完美逆富士之旅", + "relativePath": "Trips/Visited-Places.md" + } + ] + }, + { + "fileName": "夏之北海道", + "relativePath": "Trips/Plans/夏之北海道.md", + "headings": [ + { + "heading": "Preface", + "level": 2 + }, + { + "heading": "Schedule", + "level": 2 + }, + { + "heading": "Day 1 上海-->札幌-->TOMAMU", + "level": 3 + }, + { + "heading": "Day 2 TOMAMU", + "level": 3 + }, + { + "heading": "Day 3~4 札幌", + "level": 3 + }, + { + "heading": "Day 5 札幌-->美瑛-->富良野", + "level": 3 + }, + { + "heading": "Day 6 富良野", + "level": 3 + }, + { + "heading": "Day 7 富良野-->登别", + "level": 3 + }, + { + "heading": "Day 8 登别-->札幌-->东京", + "level": 3 + }, + { + "heading": "Postscript", + "level": 2 + }, + { + "heading": "Acknowledgements", + "level": 2 + } + ], + "links": [ + { + "link": "制作日本旅行攻略一般要点", + "relativePath": "Trips/制作日本旅行攻略一般要点.md" + }, + { + "link": "制作日本旅行攻略一般要点", + "relativePath": "Trips/制作日本旅行攻略一般要点.md" + } + ], + "backlinks": [ + { + "fileName": "Visited-Places", + "link": "夏之北海道", + "relativePath": "Trips/Visited-Places.md" + } + ] + }, + { + "fileName": "Dream-Destinations", + "relativePath": "Trips/Dream-Destinations.md", + "headings": [ + { + "heading": "China", + "level": 2 + }, + { + "heading": "陆羽古道&南浔古镇", + "level": 3 + }, + { + "heading": "Japan", + "level": 2 + } + ] + } +] \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index 46b3129..c7b4a32 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,22 +1,81 @@ +import React, { Suspense } from 'react'; import { MantineProvider } from '@mantine/core'; import { Notifications } from '@mantine/notifications'; import { AppLayout } from './components/Layout/AppLayout'; import { useHashRouter } from './hooks/useHashRouter'; import { useSEO } from './hooks/useSEO'; +import { useVaultService } from './hooks/useVaultService'; + +// 条件性懒加载开发工具 - 只在开发环境加载 +const DevToolsPanel = import.meta.env.DEV + ? React.lazy(() => + import('./components/DevTools/DevToolsPanel').then((m) => ({ default: m.DevToolsPanel })) + ) + : React.lazy(() => + import('./components/DevTools/NoOpDevTools').then((m) => ({ default: m.DevToolsPanel })) + ); function App() { - // 初始化路由系统 + // 初始化 VaultService 集成 + const { loading, error } = useVaultService(); + + // 初始化新的路由系统 useHashRouter(); - - // 初始化 SEO 优化 + + // 初始化新的 SEO 优化 useSEO(); - + + // 显示加载状态 + if (loading) { + return ( + +
+ 🚀 初始化新架构 VaultService... +
+
+ ); + } + + // 显示错误状态 + if (error) { + return ( + +
+
❌ 新架构初始化失败
+
{error}
+
+
+ ); + } + return ( + {import.meta.env.DEV && ( + + + + )} ); } -export default App; \ No newline at end of file +export default App; diff --git a/src/assets/404.png b/src/assets/404.png new file mode 100644 index 0000000..1794b5c Binary files /dev/null and b/src/assets/404.png differ diff --git a/src/components/Backlinks/Backlinks.tsx b/src/components/Backlinks/Backlinks.tsx new file mode 100644 index 0000000..b68e2a6 --- /dev/null +++ b/src/components/Backlinks/Backlinks.tsx @@ -0,0 +1,106 @@ +import { useEffect, useState } from 'react'; +import { useVaultStore } from '../../stores/vaultStore.js'; + +interface BacklinkItem { + sourcePath: string; + sourceTitle?: string; + context: string; + line: number; +} + +/** + * 新架构反链组件 - 基于 VaultService 的数据访问 + * 显示指向当前文档的反向链接 + */ +export function Backlinks() { + const { currentDocument, activeFile } = useVaultStore(); + const [backlinks, setBacklinks] = useState([]); + + useEffect(() => { + if (currentDocument?.metadata?.backlinks) { + setBacklinks(currentDocument.metadata.backlinks); + } else { + setBacklinks([]); + } + }, [currentDocument]); + + const handleBacklinkClick = (backlink: BacklinkItem) => { + // console.log('NewBacklinks: 反链点击', backlink); + + // TODO: 导航到源文档 + if (backlink.sourcePath) { + // console.log('导航到文档:', backlink.sourcePath); + } + }; + + return ( +
+
🔗 反向链接
+ + {backlinks.length > 0 ? ( +
+ {backlinks.map((backlink, index) => ( +
handleBacklinkClick(backlink)} + className="p-3 bg-[var(--background-modifier-hover)] hover:bg-[var(--background-modifier-border)] rounded-lg cursor-pointer transition-colors" + > +
+
+ 📄{' '} + {backlink.sourceTitle || + backlink.sourcePath.split('/').pop()?.replace('.md', '') || + 'Untitled'} +
+
链接
+
+ + {backlink.context && ( +
+ 链接文本: "{backlink.context}" +
+ )} + + {backlink.sourcePath && ( +
+ 路径: {backlink.sourcePath} +
+ )} + + {backlink.context && ( +
+ "{backlink.context}" +
+ )} +
+ ))} +
+ ) : activeFile ? ( +
当前文档无反向链接
+ ) : ( +
选择一个文档查看反向链接
+ )} + + {/* 统计信息 */} +
+
+ 反链统计 + {backlinks.length} 个 +
+ {backlinks.length > 0 && ( +
+ 来自 {new Set(backlinks.map((b) => b.sourceTitle || b.sourcePath)).size} 个不同文档 +
+ )} +
+ + {/* 调试信息 */} +
+
NewBacklinks: ✅
+
当前文档: {activeFile ? '有' : '无'}
+
反链数量: {backlinks.length}
+
元数据: {currentDocument ? '✅' : '⏳'}
+
+
+ ); +} diff --git a/src/components/ContentViewer/ContentViewer.css b/src/components/ContentViewer/ContentViewer.css new file mode 100644 index 0000000..dc8d58c --- /dev/null +++ b/src/components/ContentViewer/ContentViewer.css @@ -0,0 +1,879 @@ +/* 复用原有的 Markdown 样式 */ +/* Custom styles for Markdown rendering */ +.markdown-viewer { + line-height: 1.6; + color: var(--text-normal); + font-family: var(--font-interface); + font-size: var(--font-text-size, 16px); + /* 全局文本折行处理 */ + word-wrap: break-word; + overflow-wrap: break-word; +} + +.markdown-viewer p { + margin: 0.5rem 0; +} + +.markdown-viewer strong { + font-weight: var(--font-weight-bold, 600); + color: var(--text-normal); +} + +.markdown-viewer em { + font-style: italic; + color: var(--text-normal); +} + +/* Code blocks - let highlight.js handle background colors */ +.markdown-viewer pre { + border-radius: 4px; + padding: 1rem; + overflow-x: auto; + font-size: 0.875rem; +} + +/* Inline code - let highlight.js handle background colors */ +.markdown-viewer code:not(pre code) { + padding: 0.125rem 0.25rem; + border-radius: 3px; + font-size: 0.875rem; +} + +/* Blockquotes */ +.markdown-viewer blockquote { + border-left: 4px solid var(--interactive-accent); + margin: 1rem 0; + padding-left: 1rem; + color: var(--text-muted); + font-style: italic; +} + +/* Tables */ +.markdown-viewer table { + border-collapse: collapse; + width: 100%; + margin: 1rem 0; +} + +.markdown-viewer th, +.markdown-viewer td { + border: 1px solid var(--background-modifier-border); + padding: 0.5rem; + text-align: left; +} + +.markdown-viewer th { + background-color: var(--background-secondary); + font-weight: 600; +} + +/* Links (General) - 长链接自动折行 */ +.markdown-viewer a:not(.internal-link):not(.tag) { + color: var(--text-accent); + text-decoration: none; + border-bottom: 1px solid transparent; + transition: border-color 0.2s ease; + /* 长链接折行处理 */ + word-wrap: break-word; + overflow-wrap: break-word; + word-break: break-all; + hyphens: auto; +} + +.markdown-viewer a:not(.internal-link):not(.tag):hover { + border-bottom-color: var(--text-accent); + text-decoration: none; +} + +/* External Links - 外部链接特殊样式 */ +.markdown-viewer a.external-link { + color: var(--text-accent); + text-decoration: none; + border-bottom: 1px solid transparent; + transition: all 0.2s ease; + /* 长链接折行处理 */ + word-wrap: break-word; + overflow-wrap: break-word; + word-break: break-all; + hyphens: auto; + position: relative; +} + +/* 外部链接图标 */ +.markdown-viewer a.external-link::after { + content: '↗'; + display: inline-block; + margin-left: 4px; + font-size: 0.8em; + opacity: 0.6; + transition: opacity 0.2s ease; + vertical-align: super; + line-height: 1; +} + +.markdown-viewer a.external-link:hover { + border-bottom-color: var(--text-accent); + text-decoration: none; +} + +.markdown-viewer a.external-link:hover::after { + opacity: 1; +} + +/* Headings */ +.markdown-viewer h1, +.markdown-viewer h2, +.markdown-viewer h3, +.markdown-viewer h4, +.markdown-viewer h5, +.markdown-viewer h6 { + color: var(--text-normal); + margin-top: 2rem; + margin-bottom: 0.75rem; + font-weight: var(--h1-weight, 600); + line-height: 1.3; +} + +.markdown-viewer h1:first-child, +.markdown-viewer h2:first-child, +.markdown-viewer h3:first-child, +.markdown-viewer h4:first-child, +.markdown-viewer h5:first-child, +.markdown-viewer h6:first-child { + margin-top: 0; +} + +.markdown-viewer h1 { + font-size: var(--h1-size, 2rem); + border-bottom: 2px solid var(--background-modifier-border); + padding-bottom: 0.5rem; + margin-bottom: 1rem; +} + +.markdown-viewer h2 { + font-size: var(--h2-size, 1.625rem); + border-bottom: 1px solid var(--background-modifier-border); + padding-bottom: 0.25rem; + margin-bottom: 0.875rem; +} + +.markdown-viewer h3 { + font-size: var(--h3-size, 1.375rem); +} + +.markdown-viewer h4 { + font-size: var(--h4-size, 1.125rem); +} + +.markdown-viewer h5 { + font-size: var(--h5-size, 1rem); +} + +.markdown-viewer h6 { + font-size: var(--h6-size, 0.875rem); + color: var(--text-muted); + text-transform: uppercase; + letter-spacing: 0.05em; +} + +/* Lists */ +.markdown-viewer ul, +.markdown-viewer ol { + margin: 1rem 0; + padding-left: 2rem; +} + +.markdown-viewer li { + margin: 0.25rem 0; +} + +/* Horizontal rule */ +.markdown-viewer hr { + border: none; + border-top: 2px solid var(--background-modifier-border); + margin: 2rem 0; + border-radius: 2px; +} + +/* Math expressions */ +.markdown-viewer .katex { + font-size: 1em; +} + +.markdown-viewer .katex-display { + margin: 1rem 0; +} + +/* ===== OBSIDIAN SPECIFIC STYLES ===== */ + +/* Internal Links [[link]] */ +.markdown-viewer .internal-link { + color: var(--text-accent); + text-decoration: none; + background-color: transparent; + border-radius: 3px; + padding: 0 2px; + transition: background-color 0.2s ease; +} + +.markdown-viewer .internal-link:hover { + background-color: var(--background-modifier-hover); + text-decoration: none; +} + +/* Invalid/unresolved links */ +.markdown-viewer .internal-link.invalid-link { + color: var(--text-error, var(--text-muted)); + cursor: default; +} + +.markdown-viewer .internal-link.invalid-link:hover { + background-color: var(--background-modifier-error-hover, rgba(var(--color-red-rgb), 0.1)); +} + +/* Obsidian image embeds */ +.markdown-viewer .obsidian-image { + max-width: 80%; + max-height: calc(100vh - 160px); /* Limit height to viewport minus header/padding */ + height: auto; + border-radius: var(--radius-s, 4px); + box-shadow: var(--shadow-s); + margin: 1rem auto; + display: block; + object-fit: contain; /* Maintain aspect ratio */ + cursor: pointer; + transition: all 0.3s ease; +} + +.markdown-viewer .obsidian-image:hover { + transform: scale(1.02); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); +} + +/* Tags #tag - Simple gray style to match other tags */ +.markdown-viewer .tag { + color: var(--tag-color, var(--text-muted)); + text-decoration: none; + background: var(--tag-background, rgba(var(--text-muted-rgb, 156, 163, 175), 0.1)); + border: 1px solid var(--background-modifier-border, rgba(0, 0, 0, 0.1)); + border-radius: var(--tag-radius, 4px); + padding: var(--tag-padding-y, 2px) var(--tag-padding-x, 8px); + font-size: 0.85em; + line-height: 1.4; + font-weight: 500; + display: inline-flex; + align-items: center; + margin: 2px 4px 2px 0; + transition: all 0.2s ease; + white-space: nowrap; + vertical-align: middle; +} + +/* Removed emoji prefix for cleaner tag appearance */ + +.markdown-viewer .tag:hover { + background: var(--tag-background-hover, rgba(var(--text-muted-rgb, 156, 163, 175), 0.15)); + border-color: var(--background-modifier-border-hover, rgba(0, 0, 0, 0.2)); + color: var(--tag-color-hover, var(--text-normal)); + text-decoration: none; + cursor: default; /* Prevent pointer cursor */ +} + +/* Highlights ==text== - Obsidian-style highlighting */ +.markdown-viewer .cm-highlight { + background-color: #ffeb3b33; /* Obsidian light yellow with opacity */ + color: var(--text-normal); + padding: 1px 3px; + border-radius: 3px; + font-style: normal; + font-weight: inherit; + box-decoration-break: clone; + -webkit-box-decoration-break: clone; +} + +/* Dark theme highlight - Obsidian dark style */ +[data-theme='dark'] .markdown-viewer .cm-highlight { + background-color: #d4af37; /* Obsidian golden yellow */ + color: #1a1a1a; /* Dark text on golden background for better readability */ +} + +/* ===== CALLOUTS ===== */ +.markdown-viewer .callout { + margin: 1rem 0; + padding: 0; + border-radius: var(--radius-m, 6px); + border: 1px solid var(--callout-border-color, var(--background-modifier-border)); + background-color: var(--callout-bg, var(--background-secondary)); + overflow: hidden; +} + +.markdown-viewer .callout-title { + display: flex; + align-items: center; + padding: 8px 12px; + background-color: var(--callout-title-bg, rgba(var(--callout-color), 0.1)); + border-bottom: 1px solid var(--callout-border-color, var(--background-modifier-border)); + font-weight: 600; + font-size: 0.95em; + color: var(--callout-title-color, var(--text-normal)); +} + +.markdown-viewer .callout-title::before { + content: var(--callout-icon, 'ℹ'); + margin-right: 8px; + font-size: 1.1em; + color: var(--callout-color, var(--text-accent)); +} + +.markdown-viewer .callout-content { + padding: 12px; +} + +.markdown-viewer .callout-content p { + margin: 0.25rem 0; +} + +.markdown-viewer .callout-content p:first-child { + margin-top: 0; +} + +.markdown-viewer .callout-content p:last-child { + margin-bottom: 0; +} + +/* Callout Types */ +.markdown-viewer .callout-info { + --callout-color: var(--color-blue-rgb, 8, 109, 221); + --callout-icon: 'ℹ'; +} + +.markdown-viewer .callout-tip { + --callout-color: var(--color-green-rgb, 0, 184, 117); + --callout-icon: '💡'; +} + +.markdown-viewer .callout-warning { + --callout-color: var(--color-orange-rgb, 255, 145, 0); + --callout-icon: '⚠'; +} + +.markdown-viewer .callout-error { + --callout-color: var(--color-red-rgb, 233, 49, 71); + --callout-icon: '❌'; +} + +.markdown-viewer .callout-note { + --callout-color: var(--color-blue-rgb, 8, 109, 221); + --callout-icon: '📝'; +} + +.markdown-viewer .callout-success { + --callout-color: var(--color-green-rgb, 0, 184, 117); + --callout-icon: '✅'; +} + +.markdown-viewer .callout-question { + --callout-color: var(--color-yellow-rgb, 224, 222, 113); + --callout-icon: '❓'; +} + +.markdown-viewer .callout-example { + --callout-color: var(--color-purple-rgb, 139, 69, 255); + --callout-icon: '📋'; +} + +.markdown-viewer .callout-quote { + --callout-color: var(--color-gray-rgb, 158, 158, 158); + --callout-icon: '💬'; +} + +/* ===== ENHANCED CODE STYLING ===== */ +/* Let highlight.js handle all code styling - just basic structure */ +.markdown-viewer pre { + border-radius: var(--radius-s, 4px); + padding: 12px 16px; + overflow-x: auto; + font-size: var(--code-size, 0.875em); + font-family: var(--font-monospace); + line-height: 1.4; + margin: 1rem 0; +} + +.markdown-viewer code:not(pre code) { + padding: 2px 4px; + border-radius: var(--radius-s, 3px); + font-size: var(--code-size, 0.875em); + font-family: var(--font-monospace); +} + +/* ===== ENHANCED TABLE STYLING ===== */ + +/* Table responsive container */ +.markdown-viewer .table-container { + width: 100%; + overflow-x: auto; + margin: 1rem 0; + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-s, 4px); + /* 添加滚动条样式 */ + scrollbar-width: thin; + scrollbar-color: var(--background-modifier-border) var(--background-secondary); +} + +.markdown-viewer .table-container::-webkit-scrollbar { + height: 6px; +} + +.markdown-viewer .table-container::-webkit-scrollbar-track { + background: var(--background-secondary); + border-radius: 3px; +} + +.markdown-viewer .table-container::-webkit-scrollbar-thumb { + background: var(--background-modifier-border); + border-radius: 3px; +} + +.markdown-viewer .table-container::-webkit-scrollbar-thumb:hover { + background: var(--interactive-accent); +} + +.markdown-viewer table { + border-collapse: collapse; + width: 100%; + min-width: 500px; /* 最小宽度确保可读性 */ + margin: 0; /* 容器已有边距 */ + border: none; /* 容器已有边框 */ + font-size: 0.9em; /* 比正文小一号 */ +} + +.markdown-viewer th { + background-color: var(--table-header-background, var(--background-secondary)); + font-weight: var(--font-weight-bold, 600); + color: var(--text-normal); + padding: 6px 10px; /* 紧凑间距 */ + border-bottom: 1px solid var(--background-modifier-border); + text-align: left; + white-space: nowrap; /* 防止标题换行 */ + max-width: 200px; /* 限制列宽 */ +} + +.markdown-viewer td { + padding: 6px 10px; /* 紧凑间距 */ + border-bottom: 1px solid var(--background-modifier-border-hover); + max-width: 200px; /* 限制列宽 */ + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; /* 防止内容换行,保持表格紧凑 */ +} + +.markdown-viewer tr:last-child td { + border-bottom: none; +} + +.markdown-viewer tr:hover { + background-color: var(--table-row-background-hover, var(--background-modifier-hover)); +} + +/* ===== ENHANCED LIST STYLING ===== */ +.markdown-viewer ul, +.markdown-viewer ol { + margin: 0.5rem 0; + padding-left: 1.5rem; +} + +.markdown-viewer li { + margin: 0.125rem 0; + line-height: 1.5; +} + +.markdown-viewer ul li { + list-style-type: disc; +} + +.markdown-viewer ol li { + list-style-type: decimal; +} + +.markdown-viewer ul ul li { + list-style-type: circle; +} + +.markdown-viewer ul ul ul li { + list-style-type: square; +} + +/* ===== ENHANCED BLOCKQUOTE STYLING ===== */ +.markdown-viewer blockquote { + border-left: 3px solid var(--quote-opening, var(--interactive-accent)); + margin: 1rem 0; + padding: 0 0 0 1rem; + color: var(--text-muted); + font-style: normal; + background-color: var(--background-secondary); + border-radius: 0 var(--radius-s, 4px) var(--radius-s, 4px) 0; + padding: 8px 12px; +} + +.markdown-viewer blockquote p { + margin: 0.25rem 0; +} + +/* ===== TRACK MAP SPECIFIC STYLES ===== */ +.markdown-viewer .track-map { + margin: 1.5rem auto; + width: 80%; + border-radius: var(--radius-m, 6px); + overflow: hidden; + box-shadow: var(--shadow-s); + display: block; +} + +/* Leaflet 地图缩放按钮移动端适配 */ +.track-container .leaflet-control-zoom a { + width: 26px !important; + height: 26px !important; + line-height: 26px !important; + font-size: 18px !important; +} + +@media (max-width: 768px) { + .track-container .leaflet-control-zoom a { + width: 22px !important; + height: 22px !important; + line-height: 22px !important; + font-size: 16px !important; + } +} + +/* ===== MERMAID DIAGRAM SPECIFIC STYLES ===== */ +.markdown-viewer .mermaid-diagram { + margin: 1.5rem auto; + width: 80%; + text-align: center; + background-color: var(--background-primary); + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-m, 6px); + padding: 1rem; + overflow: auto; + max-height: calc(100vh - 160px); /* Limit height to viewport minus header/padding */ + display: block; +} + +/* ===== FRONTMATTER TAGS STYLING ===== */ +/* Hide frontmatter separator lines - be more specific to avoid hiding the container */ +.markdown-viewer hr + .frontmatter-tags + hr { + display: none; +} + +.markdown-viewer .frontmatter-tags + hr { + display: none; +} + +.markdown-viewer hr:has(+ .frontmatter-tags) { + display: none; +} + +/* Container for frontmatter tags */ +.markdown-viewer .frontmatter-tags { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 8px; + margin: 1rem 0; + padding: 12px; + background-color: rgba(128, 128, 128, 0.02); + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-m, 6px); +} + +/* Tags label styling */ +.markdown-viewer .frontmatter-tags .tags-label { + font-weight: var(--font-weight-bold, 600); + color: var(--text-muted); + font-size: 0.9em; + margin-right: 4px; +} + +/* Frontmatter tag badges - inherit from main tag styling but with slight modifications */ +.markdown-viewer .frontmatter-tag { + /* Use the same badge styling as regular tags */ + color: var(--text-normal); + text-decoration: none; + background: linear-gradient(135deg, rgba(120, 120, 120, 0.15), rgba(100, 100, 100, 0.1)); + border: none; + border-radius: 16px; + padding: 4px 12px; + font-size: 0.8em; + line-height: 1.3; + font-weight: 600; + display: inline-flex; + align-items: center; + margin: 0; /* Override margin since container provides gap */ + transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + white-space: nowrap; + vertical-align: middle; +} + +.markdown-viewer .frontmatter-tag::before { + content: '#'; + margin-right: 4px; + font-size: 0.9em; + opacity: 0.6; + color: var(--text-muted); +} + +.markdown-viewer .frontmatter-tag:hover { + background: linear-gradient(135deg, rgba(140, 140, 140, 0.2), rgba(120, 120, 120, 0.15)); + transform: translateY(-1px); + box-shadow: 0 4px 8px rgba(120, 120, 120, 0.2); + cursor: default; /* Non-clickable for now */ +} + +/* ===== GLOBAL MEDIA CONTENT SIZE LIMITS ===== */ +/* All images should respect viewport height limits */ +.markdown-viewer img { + max-width: 80%; + max-height: calc(100vh - 160px); /* Consistent height limit */ + height: auto; + margin: 1rem auto; + display: block; + object-fit: contain; /* Maintain aspect ratio */ + cursor: pointer; + transition: all 0.3s ease; +} + +.markdown-viewer img:hover { + transform: scale(1.02); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); +} + +/* Video elements */ +.markdown-viewer video { + max-width: 80%; + max-height: calc(100vh - 160px); + height: auto; + margin: 1rem auto; + display: block; + object-fit: contain; +} + +/* Iframe elements (for embedded content) */ +.markdown-viewer iframe { + max-width: 80%; + max-height: calc(100vh - 160px); + width: 80%; + margin: 1rem auto; + display: block; + border: none; +} + +/* Canvas elements (for interactive content) */ +.markdown-viewer canvas { + max-width: 80%; + max-height: calc(100vh - 160px); + height: auto; + margin: 1rem auto; + display: block; +} + +/* ===== IMAGE ZOOM MODAL ===== */ +.image-zoom-modal { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 10000; + background: rgba(0, 0, 0, 0.85); + backdrop-filter: blur(5px); + display: flex; + align-items: center; + justify-content: center; + cursor: zoom-out; + opacity: 0; + transition: opacity 0.3s ease; +} + +.image-zoom-modal.show { + opacity: 1; +} + +.image-zoom-modal img { + max-width: 95vw; + max-height: 95vh; + width: auto; + height: auto; + object-fit: contain; + border-radius: 8px; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); + /* transform 现在由 React state 动态控制 */ +} + +.image-zoom-modal .close-hint { + position: absolute; + top: 20px; + right: 20px; + color: rgba(255, 255, 255, 0.9); + font-size: 14px; + font-weight: 500; + background: rgba(0, 0, 0, 0.6); + padding: 6px 10px; + border-radius: 6px; + pointer-events: none; + backdrop-filter: blur(4px); + white-space: nowrap; +} + +.image-zoom-modal .zoom-indicator { + position: absolute; + bottom: 20px; + left: 50%; + transform: translateX(-50%); + color: rgba(255, 255, 255, 0.9); + font-size: 16px; + font-weight: 600; + background: rgba(0, 0, 0, 0.6); + padding: 6px 12px; + border-radius: 20px; + pointer-events: none; + backdrop-filter: blur(4px); + min-width: 60px; + text-align: center; +} + +@media (max-width: 768px) { + .image-zoom-modal .close-hint { + top: 15px; + right: 15px; + font-size: 13px; + padding: 5px 8px; + } + + .image-zoom-modal .zoom-indicator { + bottom: 15px; + font-size: 14px; + padding: 4px 10px; + } +} + +/* 新架构特定样式 */ +.new-content-viewer { + height: 100%; + display: flex; + flex-direction: column; + position: relative; +} + +.new-content-header { + padding: 1rem; + border-bottom: 1px solid var(--background-modifier-border); + background: var(--background-secondary); +} + +.new-content-container { + flex: 1; + overflow-y: auto; + padding: 2rem; + max-width: 900px; + margin: 0 auto; + width: 100%; +} + +/* 确保 markdown-viewer 类被应用 */ +.new-markdown-content { + /* 继承所有 markdown-viewer 的样式 */ +} + +/* 加载状态 */ +.new-content-loading { + display: flex; + align-items: center; + justify-content: center; + height: 100%; + color: var(--text-muted); + font-size: 1.2rem; +} + +/* 错误状态 */ +.new-content-error { + display: flex; + align-items: center; + justify-content: center; + height: 100%; + color: var(--text-error); + padding: 2rem; + text-align: center; +} + +/* 调试信息 */ +.new-content-debug { + position: absolute; + bottom: 1rem; + right: 1rem; + padding: 0.5rem; + background: var(--background-secondary); + border: 1px solid var(--background-modifier-border); + border-radius: 4px; + font-size: 0.75rem; + color: var(--text-muted); + z-index: 100; +} + +/* Frontmatter tags styling - copied from MarkdownViewer.css without parent selector */ +.frontmatter-tags { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 8px; + margin: 1rem 0; + padding: 12px; + background-color: rgba(128, 128, 128, 0.02); + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-m, 6px); +} + +/* Tags label styling */ +.frontmatter-tags .tags-label { + font-weight: var(--font-weight-bold, 600); + color: var(--text-muted); + font-size: 0.9em; + margin-right: 4px; +} + +/* Frontmatter tag badges */ +.frontmatter-tag { + /* Use the same badge styling as regular tags */ + color: var(--text-normal); + text-decoration: none; + background: linear-gradient(135deg, rgba(120, 120, 120, 0.15), rgba(100, 100, 100, 0.1)); + border: none; + border-radius: 16px; + padding: 4px 12px; + font-size: 0.8em; + line-height: 1.3; + font-weight: 600; + display: inline-flex; + align-items: center; + margin: 0; /* Override margin since container provides gap */ + transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + white-space: nowrap; + vertical-align: middle; +} + +.frontmatter-tag::before { + content: '#'; + margin-right: 4px; + font-size: 0.9em; + opacity: 0.6; + color: var(--text-muted); +} + +.frontmatter-tag:hover { + background: linear-gradient(135deg, rgba(140, 140, 140, 0.2), rgba(120, 120, 120, 0.15)); + transform: translateY(-1px); + box-shadow: 0 4px 8px rgba(120, 120, 120, 0.2); + cursor: default; /* Non-clickable */ +} diff --git a/src/components/ContentViewer/ContentViewer.tsx b/src/components/ContentViewer/ContentViewer.tsx new file mode 100644 index 0000000..577618c --- /dev/null +++ b/src/components/ContentViewer/ContentViewer.tsx @@ -0,0 +1,207 @@ +/** + * 新架构内容查看器组件 + * 基于 VaultService 的文档内容显示,集成真实的 markdownProcessor + */ +import React, { useEffect, useState, useRef } from 'react'; +import { useVaultStore } from '../../stores/vaultStore.js'; +import { useUIStore } from '../../stores/uiStore.js'; +import './ContentViewer.css'; +import 'katex/dist/katex.min.css'; +import { VAULT_PATH } from '../../config/vaultConfig.js'; + +interface ContentViewerProps { + filePath: string | null; +} + +export const ContentViewer = React.memo(function ContentViewer({ filePath }: ContentViewerProps) { + const { vaultService, setCurrentDocument } = useVaultStore(); + const { theme } = useUIStore(); + const [reactContent, setReactContent] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [fileTags, setFileTags] = useState([]); + const [documentTitle, setDocumentTitle] = useState(''); + const contentRef = useRef(null); + + // Dynamic highlight.js theme loading + useEffect(() => { + // Remove existing highlight.js theme + const existingTheme = document.getElementById('highlight-theme'); + if (existingTheme) { + existingTheme.remove(); + } + + // Load appropriate theme based on current theme + const themeUrl = + theme === 'dark' + ? 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github-dark.min.css' + : 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css'; + + const link = document.createElement('link'); + link.id = 'highlight-theme'; + link.rel = 'stylesheet'; + link.href = themeUrl; + document.head.appendChild(link); + + return () => { + // Clean up on unmount + const themeToRemove = document.getElementById('highlight-theme'); + if (themeToRemove) { + themeToRemove.remove(); + } + }; + }, [theme]); + + useEffect(() => { + // Skip if the content is already loaded for this file + if (!filePath || !vaultService) { + setReactContent(null); + setFileTags([]); + setDocumentTitle(''); + setLoading(false); + setError(null); + return; + } + + const loadContent = async () => { + setLoading(true); + setError(null); + + try { + if (!vaultService) { + throw new Error('VaultService not initialized'); + } + + // 通过 VaultService 获取文档内容并处理 + const documentContent = await vaultService.getDocumentContent(filePath); + + // 创建 MarkdownProcessor 实例 + const { MarkdownProcessor } = await import( + '../../processors/markdown/MarkdownProcessor.js' + ); + const processor = new MarkdownProcessor(vaultService, { + enableObsidianLinks: true, + baseUrl: VAULT_PATH, + currentFilePath: filePath, + }); + + const processed = await processor.processContent(documentContent, filePath); + + // console.log('Processed content type:', typeof processed.content); + // console.log('Is React element?', React.isValidElement(processed.content)); + + setReactContent(processed.content); + + // 使用 VaultService 获取准确的文档信息(包括标签) + const documentInfo = await vaultService.getDocumentInfo(filePath); + + // 设置标签和标题 + setFileTags(documentInfo.tags || []); + setDocumentTitle( + documentInfo.title || filePath.split('/').pop()?.replace('.md', '') || 'Untitled' + ); + + // 更新 store 中的 currentDocument + setCurrentDocument({ + path: filePath, + content: documentContent, + metadata: { + ...processed.metadata, + tags: documentInfo.tags || [], + title: documentInfo.title, + }, + }); + } catch (err: unknown) { + // console.error('NewContentViewer: 加载失败', err); + + // 检查是否是文件未找到错误 + const error = err as { type?: string; message?: string }; + if (error?.type === 'FILE_NOT_FOUND' || error?.message?.includes('File not found')) { + setError('404'); + } else { + setError('加载失败'); + } + } finally { + setLoading(false); + } + }; + + loadContent(); + }, [filePath, vaultService, setCurrentDocument]); + + if (!filePath) { + return ( +
+
+
📄
+

+ 选择一个文件开始浏览 +

+

🚀 全新重写的 NewContentViewer 组件

+
+
+ ); + } + + return ( +
+ {/* Content - 复制老版本的结构和样式 */} +
+ {loading ? ( +
+
正在加载...
+
+ ) : error ? ( +
+ {error === '404' ? ( +
+ 404 +

+ + {filePath} 不存在 + +

+
+ ) : ( +
错误: {error}
+ )} +
+ ) : reactContent ? ( +
+ {/* 文档标题 - 复制老版本样式 */} + {documentTitle && ( +

+ {documentTitle} +

+ )} + + {/* 文档标签 - 完全复制老版本样式和行为 */} + {fileTags.length > 0 && ( +
+ Tags: + {fileTags.map((tag, index) => ( + + {tag.startsWith('#') ? tag : `#${tag}`} + + ))} +
+ )} + +
+ {reactContent} +
+
+ ) : ( +
+
选择一个文件开始阅读
+
+ )} +
+
+ ); +}); diff --git a/src/components/DevTools/DevToolsPanel.tsx b/src/components/DevTools/DevToolsPanel.tsx new file mode 100644 index 0000000..6b22030 --- /dev/null +++ b/src/components/DevTools/DevToolsPanel.tsx @@ -0,0 +1,271 @@ +/** + * 开发者工具面板 + * 浮动的开发工具集合,无需修改路由系统 + */ + +import React, { useState } from 'react'; +import { MarkdownProcessorTest } from './MarkdownProcessorTest'; + +interface DevTool { + key: string; + name: string; + icon: string; + component: React.ComponentType>; + description?: string; +} + +const DEV_TOOLS: DevTool[] = [ + { + key: 'markdown-test', + name: 'Markdown 处理器', + icon: '📝', + component: MarkdownProcessorTest, + description: '测试新版 Markdown 处理器功能', + }, + // 未来可以轻松添加更多工具 + // { + // key: 'graph-debug', + // name: '图谱调试', + // icon: '🕸️', + // component: GraphDebugTool, + // } +]; + +export function DevToolsPanel() { + const [isVisible, setIsVisible] = useState(false); + const [activeTool, setActiveTool] = useState(null); + const [isMinimized, setIsMinimized] = useState(false); + + // 只在开发环境显示 + if (import.meta.env.PROD) { + return null; + } + + const ActiveToolComponent = activeTool + ? DEV_TOOLS.find((tool) => tool.key === activeTool)?.component + : null; + + return ( + <> + {/* 触发按钮 */} + {!isVisible && ( +
setIsVisible(true)} + title="开发者工具" + > + 🛠️ +
+ )} + + {/* 开发工具面板 */} + {isVisible && ( +
+ {/* 工具栏 */} +
+
+ 🛠️ 开发者工具 + {activeTool && ( + + - {DEV_TOOLS.find((t) => t.key === activeTool)?.name} + + )} +
+ +
+ + +
+
+ + {!isMinimized && ( + <> + {/* 工具列表 */} + {!activeTool && ( +
+
+ {DEV_TOOLS.map((tool) => ( +
setActiveTool(tool.key)} + style={{ + padding: '16px', + border: '1px solid var(--background-modifier-border)', + borderRadius: '8px', + cursor: 'pointer', + transition: 'all 0.2s ease', + backgroundColor: 'var(--background-secondary)', + }} + onMouseEnter={(e) => { + e.currentTarget.style.borderColor = 'var(--interactive-accent)'; + e.currentTarget.style.backgroundColor = + 'var(--background-modifier-hover)'; + }} + onMouseLeave={(e) => { + e.currentTarget.style.borderColor = 'var(--background-modifier-border)'; + e.currentTarget.style.backgroundColor = 'var(--background-secondary)'; + }} + > +
+ {tool.icon} +
+
+ {tool.name} +
+ {tool.description && ( +
+ {tool.description} +
+ )} +
+ ))} +
+
+ )} + + {/* 工具内容 */} + {activeTool && ActiveToolComponent && ( +
+
+ +
+
+ +
+
+ )} + + )} +
+ )} + + ); +} diff --git a/src/components/DevTools/MarkdownProcessorTest.tsx b/src/components/DevTools/MarkdownProcessorTest.tsx new file mode 100644 index 0000000..b996389 --- /dev/null +++ b/src/components/DevTools/MarkdownProcessorTest.tsx @@ -0,0 +1,600 @@ +/** + * Markdown 处理器测试组件 + * 用于在不影响现有应用的情况下测试新的处理器 + */ + +import React, { useState, useCallback, useEffect } from 'react'; +import { + MarkdownProcessor, + type ProcessedMarkdown, +} from '../../processors/markdown/MarkdownProcessor.js'; +import type { IVaultService } from '../../services/interfaces/IVaultService.js'; +import { TestTrackMap } from './TestTrackMap.js'; +import { TrackMap } from '../TrackMap/TrackMap.js'; +import { MermaidDiagram } from '../MermaidDiagram.js'; +import { useVaultService } from '../../hooks/useVaultService.js'; + +interface MarkdownProcessorTestProps { + vaultService?: IVaultService; +} + +const SAMPLE_MARKDOWN = `# 🚀 新版 Markdown 处理器完整测试 + +## 📊 Mermaid 图表支持 + +\`\`\`mermaid +graph TD + A[开始] --> B{是否有轨迹数据?} + B -->|是| C[解析 GPX/KML] + B -->|否| D[生成默认地图] + C --> E[渲染地图] + D --> E + E --> F[完成] +\`\`\` + +\`\`\`mermaid +sequenceDiagram + participant User as 用户 + participant Processor as 处理器 + participant Map as 地图组件 + + User->>Processor: 输入 Markdown + Processor->>Processor: 解析语法 + Processor->>Map: 传递轨迹数据 + Map->>User: 显示地图 +\`\`\` + +## 🔗 Obsidian 内部链接支持 + +这里有一个内部文件链接:[[Abilities]] + +另一个子文件夹链接:[[FolderA/SubFolder/Abilities]] + +图片嵌入:![[Attachments/example.jpg]] + +## 🏷️ Obsidian 标签和样式 + +这里有一些标签:#markdown #processor #obsidian #test + +==高亮文本== 和 **粗体文本** 以及 *斜体文本* + +> [!info] 信息提醒 +> 这是一个信息类型的 callout + +> [!warning] ⚠️ 警告 +> 这是一个警告类型的 callout + +## 📈 数学公式支持 + +行内数学:$E = mc^2$ + +块级数学: +$$ +\\int_{-\\infty}^{\\infty} e^{-x^2} dx = \\sqrt{\\pi} +$$ + +## 🗺️ 轨迹地图测试 + +### 1. 内联 GPX 数据(上海红叶尚湖) +\`\`\`gpx + + + 红叶尚湖测试轨迹 + + 10 + 12 + 15 + + + +\`\`\` + +## 2. 内联 KML 数据(苏州路线) +\`\`\`kml + + + + 苏州古城路线 + + 拙政园 + 120.6265,31.3232,0 + + + 留园 + 120.6158,31.3156,0 + + + +\`\`\` + +## 3. 真实文件引用(Demo Vault) +🚴‍♂️ 金牛道骑行路线:![[Attachments/金牛道拦马墙到普安镇.gpx]] + +🍂 红叶尚湖徒步:![[Attachments/红叶尚湖.gpx]] + +🌸 上海绿道路线:[[Attachments/东西佘山含地铁绿道.kml]] + +🗻 YAMAP 登山路线:[[Attachments/yamap_2025-04-02_08_48.gpx]] + +## 4. Leaflet 单文件配置 +\`\`\`leaflet +gpx: "[[Attachments/yamap_2025-04-02_08_48.gpx]]" +zoom: 12 +center: [31.4, 120.7] +title: "YAMAP 登山路线" +\`\`\` + +## 5. Leaflet 多文件组合 +\`\`\`leaflet +gpx: + - "[[Attachments/金牛道拦马墙到普安镇.gpx]]" + - "[[Attachments/红叶尚湖.gpx]]" + - "[[Attachments/yamap_2025-04-02_08_48.gpx]]" +zoom: 9 +showAll: true +title: "华东地区户外路线合集" +clustering: + enabled: true + maxDistance: 20 +\`\`\` + +## 6. 足迹聚合地图 +\`\`\`footprints +userInputs: + - shanghai + - suzhou + - hangzhou + - nanjing +attachmentsPath: "@Attachments" +includeTracks: true +includePhotos: false +locationType: centerPoint +clustering: + enabled: true + maxDistance: 50 + minPoints: 2 +\`\`\` + +## 7. 混合内容测试 +这里有一个简单的轨迹:[[Attachments/东西佘山含地铁绿道.kml]],还有 **粗体文本** 和 ==高亮内容== 以及 #上海 #徒步 标签。 + +另一个内联链接测试:![[Attachments/yamap_2025-04-02_08_48.gpx]] + +> [!tip] 💡 提示 +> 以上所有轨迹文件都来自 Demo Vault 的真实数据,应该能够正常渲染地图。 + +> [!warning] ⚠️ 注意 +> 如果地图没有显示,可能是轨迹文件加载失败或组件渲染问题。 +`; + +export const MarkdownProcessorTest: React.FC = ({ vaultService }) => { + const { getAPI } = useVaultService(); + const [markdown, setMarkdown] = useState(SAMPLE_MARKDOWN); + const [processedResult, setProcessedResult] = useState(null); + const [error, setError] = useState(null); + const [processing, setProcessing] = useState(false); + const [showRealMaps, setShowRealMaps] = useState(false); + + // 创建真实的文件加载服务 + const createRealVaultService = () => { + const getRawDocumentContent = async (path: string) => { + try { + // console.log('📁 Loading file:', path); + // 确保路径正确,处理 Attachments/ 前缀 + let normalizedPath = path; + if (!path.startsWith('/') && !path.startsWith('Attachments/')) { + normalizedPath = `Attachments/${path}`; + } + + // 使用新的 VaultAPI 来获取文件内容 + const api = await getAPI(); + const content = await api.getDocumentContent(normalizedPath); + // console.log('✅ Loaded file:', path, 'Length:', content.length); + return content; + } catch (error) { + // console.warn('❌ Failed to load file:', path, error); + // 返回示例内容作为降级 + if (path.endsWith('.gpx')) { + return ` + + + 示例轨迹 - ${path} + + 10 + 12 + 15 + 18 + 20 + 25 + + +`; + } + if (path.endsWith('.kml')) { + return ` + + + 示例路线 - ${path} + + 示例路径 + + + 120.75,31.40,10 + 120.755,31.405,12 + 120.760,31.410,15 + 120.765,31.415,18 + 120.770,31.420,20 + 120.775,31.425,25 + + + + +`; + } + throw error; + } + }; + + return { + getRawDocumentContent, + getDocumentContent: async (path: string) => { + return getRawDocumentContent(path); + }, + }; + }; + + const processMarkdown = useCallback(async () => { + if (!markdown.trim()) return; + + setProcessing(true); + setError(null); + + try { + // 使用真实的文件加载服务 + const realVaultService = createRealVaultService(); + + const processor = new MarkdownProcessor(vaultService || (realVaultService as IVaultService), { + enableTracks: true, + enableObsidianLinks: true, + enableObsidianTags: true, + enableHighlights: true, + enableCallouts: true, + enableMath: true, + enableCodeHighlight: true, + enableMermaid: true, + }); + + const result = await processor.processContent(markdown); + // console.log('🗺️ Processing result:', result); + + // Debug trackMaps data in detail + if (result.trackMaps && result.trackMaps.length > 0) { + result.trackMaps.forEach((_track, _index) => { + // console.log(`🔍 TrackMap ${index}:`, { + // trackId: track.trackId, + // trackType: track.trackType, + // format: track.format, + // source: track.source, + // hasTrackData: !!track.trackData, + // hasTrackFile: !!track.trackFile, + // allProps: Object.keys(track) + // }); + }); + } + setProcessedResult(result); + } catch (err) { + setError(err instanceof Error ? err.message : '处理失败'); + // console.error('❌ Markdown processing error:', err); + } finally { + setProcessing(false); + } + }, [vaultService, markdown, getAPI]); + + useEffect(() => { + processMarkdown(); + }, [processMarkdown]); + + return ( +
+ {/* 输入区域 */} +
+
+

Markdown 输入

+ +
+ +