@xenon-device-management/xenon 2.14.0 → 2.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -29
- package/lib/package.json +6 -5
- package/lib/public/assets/{AnnotationOverlay-B_VNtKBH.js → AnnotationOverlay-2W4JvEyZ.js} +1 -1
- package/lib/public/assets/{ApiKeyGate-BwuaMjkX.js → ApiKeyGate-GmckX_7r.js} +1 -1
- package/lib/public/assets/DeviceMosaicView-DqODzkyo.js +2 -0
- package/lib/public/assets/{EmptyState-BSjhk_IV.js → EmptyState-7hETKEWb.js} +1 -1
- package/lib/public/assets/{FieldGroup-Cb5QZsE1.js → FieldGroup-GOgssFEP.js} +1 -1
- package/lib/public/assets/{FilterMenu-BAaSlWbW.js → FilterMenu-Yvf6RGMd.js} +1 -1
- package/lib/public/assets/{Menu-JGGYrSQQ.js → Menu-KrPnfdsf.js} +1 -1
- package/lib/public/assets/{Modal-CFCp3n9d.js → Modal-C6WjZFeI.js} +1 -1
- package/lib/public/assets/{RecordingPage-CbJj_EBT.js → RecordingPage-CSRIhZEh.js} +1 -1
- package/lib/public/assets/{RecordingsPage-BJeYnygR.js → RecordingsPage-CB8ST3nE.js} +1 -1
- package/lib/public/assets/{SegmentedControl-Bg42Atjy.js → SegmentedControl-C9o90KId.js} +1 -1
- package/lib/public/assets/{SettingCard-Njz1pUIJ.js → SettingCard-CPm3w9l2.js} +1 -1
- package/lib/public/assets/{Table-BcTm5xV2.js → Table-DwIgERRt.js} +1 -1
- package/lib/public/assets/{activity-DOVdsfMQ.js → activity-DrLbHifn.js} +1 -1
- package/lib/public/assets/ai-settings-DU_Ls06P.js +16 -0
- package/lib/public/assets/{api-keys-BKnNSTw9.js → api-keys-CWYdEzJ_.js} +1 -1
- package/lib/public/assets/{apps-D0SC6uw6.js → apps-BqNVdln7.js} +1 -1
- package/lib/public/assets/{arrow-left-MMbTmgoE.js → arrow-left-BtB0_Jg_.js} +1 -1
- package/lib/public/assets/{arrow-right-BMfnGmxW.js → arrow-right-C8NhdtyN.js} +1 -1
- package/lib/public/assets/{arrow-up-right-DuAftMWB.js → arrow-up-right-gMg0ffvv.js} +1 -1
- package/lib/public/assets/{auth-shell-nZC2JNDO.js → auth-shell-CiYZ3N4M.js} +2 -2
- package/lib/public/assets/{builds-page-hDCgTwkS.js → builds-page-EaaqDmLN.js} +1 -1
- package/lib/public/assets/{button-Dda4irn_.js → button-DDau4Axv.js} +1 -1
- package/lib/public/assets/{calendar-BMr0Q62v.js → calendar-DQ83B1ed.js} +1 -1
- package/lib/public/assets/{check-CZ9iw9-e.js → check-K1ovTQam.js} +1 -1
- package/lib/public/assets/{chevron-right-BRYJJVC9.js → chevron-right-Biq00pMt.js} +1 -1
- package/lib/public/assets/{circle-check-CqAJjQ5O.js → circle-check-CBv88cH7.js} +1 -1
- package/lib/public/assets/{circle-x-DlDJtnVz.js → circle-x-Bmltailn.js} +1 -1
- package/lib/public/assets/{clock-CpuDKysU.js → clock-BPrld-3h.js} +1 -1
- package/lib/public/assets/{copy-CAQydNFe.js → copy-t0QB14JI.js} +1 -1
- package/lib/public/assets/derive-UnLRp4r3.js +1 -0
- package/lib/public/assets/device-explorer-BgGZ8AvV.js +282 -0
- package/lib/public/assets/{download-C9XG6lLv.js → download-BroHxNOh.js} +1 -1
- package/lib/public/assets/forgot-password-Bjmf49i6.js +1 -0
- package/lib/public/assets/{h264Stream-VQBphYhg.js → h264Stream-DeD__6wa.js} +6 -6
- package/lib/public/assets/{index-DJGc1M2f.js → index-72oF89LJ.js} +1 -1
- package/lib/public/assets/index-B0JeuZbg.js +15 -0
- package/lib/public/assets/index-B0gQkEg0.js +219 -0
- package/lib/public/assets/{input-Cm0tmSoc.js → input-DIc4MSC7.js} +1 -1
- package/lib/public/assets/{line-chart-D2DyJCml.js → line-chart-BcWm2vW8.js} +1 -1
- package/lib/public/assets/{list-checks-UWf1GY99.js → list-checks-B06IJJad.js} +1 -1
- package/lib/public/assets/{lock-CCJv9m_I.js → lock-pVLvnN30.js} +1 -1
- package/lib/public/assets/{login-f8vOVW-U.js → login-CN77vy--.js} +1 -1
- package/lib/public/assets/{maintenance-settings-C1PrkuAH.js → maintenance-settings-CSdzQSkY.js} +1 -1
- package/lib/public/assets/{monitor-B2jDgwm7.js → monitor-BtrN5IkI.js} +1 -1
- package/lib/public/assets/{mouse-pointer-2-DLI1RtzU.js → mouse-pointer-2-CNsQfo6w.js} +1 -1
- package/lib/public/assets/{network-ebT86qoi.js → network-BSfA8ZxG.js} +1 -1
- package/lib/public/assets/{overview-C0aykVrd.js → overview-BfTebCK5.js} +1 -1
- package/lib/public/assets/{page-header-BjzgWz-T.js → page-header-D8KUX6Qg.js} +1 -1
- package/lib/public/assets/{play-DLG9t8FU.js → play-Cvc8xzic.js} +1 -1
- package/lib/public/assets/{plus-nBFSMu_X.js → plus-C9Zj84UF.js} +1 -1
- package/lib/public/assets/{profile-page-CSl0UYlv.js → profile-page-Bi27STgs.js} +1 -1
- package/lib/public/assets/{reset-password-LeOuHqmB.js → reset-password-CPsOuwSu.js} +1 -1
- package/lib/public/assets/runbook-page-DEQ-DBOX.js +304 -0
- package/lib/public/assets/{select-88jHcl-Z.js → select-BWpnhWXj.js} +1 -1
- package/lib/public/assets/{selector-detail-redirect-BbXKJjZM.js → selector-detail-redirect-BefSCSpe.js} +1 -1
- package/lib/public/assets/{selector-health-page-B4rA1Xkv.js → selector-health-page-MSk96Zz7.js} +1 -1
- package/lib/public/assets/session-detail-page-DPyBNef_.js +4 -0
- package/lib/public/assets/{settings-Dep_3kbA.css → settings-K8UHWMdI.css} +1 -1
- package/lib/public/assets/{settings-GF6ZMSQ6.js → settings-V6x-cXwy.js} +1 -1
- package/lib/public/assets/{stat-tile-BV98e_Sv.js → stat-tile-Duex-GZD.js} +1 -1
- package/lib/public/assets/{tablet-BiAsnFDj.js → tablet-BBcoqBmL.js} +1 -1
- package/lib/public/assets/{teams-B4-jrr-1.js → teams-ts8p5rEh.js} +1 -1
- package/lib/public/assets/{trash-2-C5RSuX0e.js → trash-2-CZ2ew6AZ.js} +1 -1
- package/lib/public/assets/{upload-BG7_rMXK.js → upload-Dv99y_le.js} +1 -1
- package/lib/public/assets/{use-builds-data-J-riQYyC.js → use-builds-data-DrYC8JCF.js} +1 -1
- package/lib/public/assets/{use-password-reset-mode-C8-eH-UG.js → use-password-reset-mode-C7QkBNkP.js} +1 -1
- package/lib/public/assets/{users-CFba5TSy.js → users-D7tKMESH.js} +1 -1
- package/lib/public/assets/{users-Cp0beJm3.js → users-gJ5Y01yo.js} +1 -1
- package/lib/public/assets/{video-off-DDsEISjV.js → video-off-CqZVuZGs.js} +1 -1
- package/lib/public/assets/{webhook-settings-BGu32vSB.js → webhook-settings-DI5DSW99.js} +1 -1
- package/lib/public/assets/{zap-l4VaXzq8.js → zap-ClcHFxfo.js} +1 -1
- package/lib/public/index.html +1 -1
- package/lib/schema.json +16 -12
- package/lib/src/InternalHttpClient.js +27 -5
- package/lib/src/XenonCapabilityManager.js +10 -3
- package/lib/src/app/dashboardPluginLink.js +117 -0
- package/lib/src/app/index.js +13 -34
- package/lib/src/app/openapi/control.yaml +6 -4
- package/lib/src/app/openapi/grid.yaml +8 -2
- package/lib/src/app/openapi/identity.yaml +103 -31
- package/lib/src/app/openapi/platform.yaml +33 -15
- package/lib/src/app/openapi/sessions.yaml +12 -3
- package/lib/src/app/routers/apikeys.js +14 -2
- package/lib/src/app/routers/auth.js +31 -6
- package/lib/src/app/routers/control.js +13 -5
- package/lib/src/app/routers/dashboard.js +42 -27
- package/lib/src/app/routers/grid.js +5 -3
- package/lib/src/app/routers/profile.js +21 -0
- package/lib/src/app/routers/users.js +12 -6
- package/lib/src/app/swagger.js +2 -0
- package/lib/src/app/ws/h264StreamWs.js +10 -1
- package/lib/src/app/ws/nodeSocketRelay.js +77 -11
- package/lib/src/config.js +1 -0
- package/lib/src/dashboard/commandLogFields.js +42 -0
- package/lib/src/dashboard/commands.js +5 -5
- package/lib/src/dashboard/event-manager.js +64 -204
- package/lib/src/dashboard/services/failure-analysis-service.js +118 -105
- package/lib/src/dashboard/services/failureCategories.js +264 -0
- package/lib/src/dashboard/sessionCommandSummary.js +39 -0
- package/lib/src/data-service/device-store.js +14 -1
- package/lib/src/data-service/prisma-store.js +19 -7
- package/lib/src/data-service/web-config-service.js +7 -0
- package/lib/src/device-managers/AndroidDeviceManager.js +61 -23
- package/lib/src/device-managers/IOSDeviceManager.js +10 -0
- package/lib/src/device-managers/android/AndroidH264StreamService.js +69 -20
- package/lib/src/device-managers/android/H264Multiplexer.js +38 -4
- package/lib/src/device-utils.js +29 -3
- package/lib/src/gateway/defaultGateway.js +1 -1
- package/lib/src/gateway/forwardToNode.js +6 -11
- package/lib/src/gateway/healReport.js +87 -0
- package/lib/src/gateway/hubSessionToken.js +27 -4
- package/lib/src/gateway/nodeWebDriverUrl.js +3 -5
- package/lib/src/gateway/sessionGateway.js +12 -2
- package/lib/src/generated/client/edge.js +4 -3
- package/lib/src/generated/client/index-browser.js +1 -0
- package/lib/src/generated/client/index.d.ts +32 -0
- package/lib/src/generated/client/index.js +4 -3
- package/lib/src/generated/client/package.json +1 -1
- package/lib/src/generated/client/schema.prisma +3 -0
- package/lib/src/generated/client/wasm.js +1 -0
- package/lib/src/helpers/outboundProxy.js +219 -0
- package/lib/src/index.js +21 -0
- package/lib/src/interceptors/CommandInterceptor.js +256 -196
- package/lib/src/interceptors/xenonScripts.js +28 -7
- package/lib/src/logger.js +3 -1
- package/lib/src/middleware/authMiddleware.js +15 -3
- package/lib/src/middleware/commandCaller.js +3 -3
- package/lib/src/middleware/verifyCredential.js +58 -1
- package/lib/src/plugin.js +16 -6
- package/lib/src/scripts/database-check.js +3 -3
- package/lib/src/scripts/initialize-database.js +35 -33
- package/lib/src/scripts/run-migrations.js +1079 -27
- package/lib/src/services/AICommandService.js +9 -2
- package/lib/src/services/AIService.js +192 -42
- package/lib/src/services/ApiKeyService.js +16 -5
- package/lib/src/services/EmailService.js +29 -0
- package/lib/src/services/InterceptorService.js +6 -2
- package/lib/src/services/OrphanSweeper.js +8 -0
- package/lib/src/services/SelectorStateService.js +11 -7
- package/lib/src/services/SelectorVerificationJob.js +21 -6
- package/lib/src/services/ServerManager.js +11 -1
- package/lib/src/services/SessionLifecycleService.js +118 -44
- package/lib/src/services/SocketClient.js +11 -0
- package/lib/src/services/SocketServer.js +380 -45
- package/lib/src/services/TeamService.js +5 -1
- package/lib/src/services/TracingService.js +171 -60
- package/lib/src/services/UserService.js +14 -3
- package/lib/src/services/UserSessionService.js +16 -4
- package/lib/src/services/bug-report/video-slice.js +4 -1
- package/lib/src/services/device-access/leaseOverride.js +7 -5
- package/lib/src/services/healing/FuzzyXmlHealingProvider.js +51 -0
- package/lib/src/services/healing/HealEtalonService.js +3 -2
- package/lib/src/services/healing/HealingOrchestrator.js +57 -72
- package/lib/src/services/healing/OcrHealingProvider.js +41 -64
- package/lib/src/services/healing/ResilioTreeHealingProvider.js +41 -50
- package/lib/src/services/healing/VisualAiHealingProvider.js +1 -1
- package/lib/src/services/healing/fingerprintIdentity.js +126 -0
- package/lib/src/services/healing/resilioPath.js +274 -0
- package/lib/src/services/identity/identityChanges.js +41 -0
- package/lib/src/services/logcat/SessionDeviceLogs.js +358 -0
- package/lib/src/services/logcat/deviceLogBook.js +164 -0
- package/lib/src/services/logcat/iosDriverLog.js +178 -0
- package/lib/src/services/ocr/ocrData.js +118 -0
- package/lib/src/services/ocr/vendor/LICENSE-tessdata.txt +202 -0
- package/lib/src/services/ocr/vendor/eng.traineddata.gz +0 -0
- package/lib/src/services/omni-vision/OmniVisionService.js +83 -56
- package/lib/src/services/passwordResetLink.js +50 -9
- package/lib/src/services/passwordResetMode.js +3 -1
- package/lib/src/services/publicUrl.js +45 -0
- package/lib/src/services/selector-health/SelectorVisibilityResolver.js +121 -0
- package/lib/src/services/session/sessionIdentity.js +5 -3
- package/lib/src/services/session/shutdownReason.js +26 -0
- package/lib/src/services/settings/aiEngineSettings.js +219 -0
- package/lib/src/services/token/JwtKeyService.js +8 -2
- package/lib/src/services/token/mcpTokenTtl.js +27 -0
- package/lib/src/services/token/mintedLifetime.js +51 -0
- package/lib/src/sessions/LocalSession.js +29 -1
- package/lib/src/sessions/RemoteSession.js +12 -2
- package/lib/src/sessions/SessionManager.js +4 -1
- package/lib/src/sessions/sessionMemory.js +25 -0
- package/lib/test/helpers/driver-log.js +38 -0
- package/lib/test/helpers/fake-ai-provider.js +188 -0
- package/lib/test/helpers/fake-http-proxy.js +106 -0
- package/lib/test/helpers/loki-stores.js +33 -0
- package/lib/test/helpers/otlp-probe.js +107 -0
- package/lib/test/helpers/page-sources.js +164 -0
- package/lib/test/helpers/scratch-database.js +57 -13
- package/lib/test/integration/androidDevices.spec.js +1 -1
- package/lib/test/integration/audit-ingest.spec.js +10 -10
- package/lib/test/integration/auth-flow.spec.js +9 -14
- package/lib/test/integration/auth-rate-limit.spec.js +6 -3
- package/lib/test/integration/bug-report-route.spec.js +22 -2
- package/lib/test/integration/forgot-password-rate-limit.spec.js +6 -3
- package/lib/test/integration/forgot-password.spec.js +17 -18
- package/lib/test/integration/ios/01iOSSimulator.spec.js +1 -1
- package/lib/test/integration/ios/02iOSDevices.spec.js +1 -1
- package/lib/test/integration/legacy-deprecation-headers.spec.js +5 -2
- package/lib/test/integration/migration.spec.js +6 -1
- package/lib/test/integration/node-pair-auth-rest.spec.js +5 -9
- package/lib/test/integration/ports-router.spec.js +4 -4
- package/lib/test/integration/prisma-device-store-add-devices.spec.js +2 -3
- package/lib/test/integration/prisma-device-store-team-filter.spec.js +2 -5
- package/lib/test/integration/profile-tokens.spec.js +10 -16
- package/lib/test/integration/recordings-router.spec.js +16 -16
- package/lib/test/integration/reset-revokes-sessions.spec.js +4 -9
- package/lib/test/integration/role-matrix.spec.js +4 -9
- package/lib/test/integration/sdk-leases-router.spec.js +9 -9
- package/lib/test/integration/sdk-version.spec.js +2 -2
- package/lib/test/integration/selector-health-endpoint.spec.js +5 -5
- package/lib/test/integration/selector-state-flow.spec.js +5 -5
- package/lib/test/integration/team-membership-migration.spec.js +73 -12
- package/lib/test/integration/team-visibility-apps.spec.js +15 -22
- package/lib/test/integration/team-visibility-control.spec.js +96 -69
- package/lib/test/integration/team-visibility-dashboard.spec.js +7 -23
- package/lib/test/integration/team-visibility-grid.spec.js +16 -15
- package/lib/test/integration/team-visibility-leases.spec.js +8 -11
- package/lib/test/integration/team-visibility-recordings.spec.js +6 -19
- package/lib/test/integration/team-visibility-sessions.spec.js +6 -19
- package/lib/test/integration/users-flow.spec.js +7 -12
- package/lib/test/integration/users-lockout.spec.js +5 -3
- package/lib/test/unit/EmailService.test.js +66 -0
- package/lib/test/unit/ResilioTreeHealingProvider.test.js +46 -19
- package/lib/test/unit/XenonCapabilityManager.spec.js +23 -0
- package/lib/test/unit/ai-call-time-limit.spec.js +130 -0
- package/lib/test/unit/ai-engine-settings.spec.js +338 -0
- package/lib/test/unit/ai-provider-switch.spec.js +130 -0
- package/lib/test/unit/ai-rate-limit.spec.js +126 -0
- package/lib/test/unit/android-adb-retry.spec.js +112 -0
- package/lib/test/unit/android-h264-viewers.spec.js +272 -0
- package/lib/test/unit/android-preview-hold.spec.js +3 -2
- package/lib/test/unit/apikeys-router.spec.js +84 -0
- package/lib/test/unit/authMiddleware.bearer.spec.js +9 -0
- package/lib/test/unit/authMiddleware.credentialLifetime.spec.js +149 -0
- package/lib/test/unit/bug-report/video-slice.spec.js +19 -0
- package/lib/test/unit/command-log-network-capture.spec.js +191 -0
- package/lib/test/unit/dashboard-events-device-logs.spec.js +255 -0
- package/lib/test/unit/dashboard-events-team-scope.spec.js +6 -3
- package/lib/test/unit/dashboard-plugin-link.spec.js +213 -0
- package/lib/test/unit/database-check.spec.js +1 -0
- package/lib/test/unit/device-log-book.spec.js +180 -0
- package/lib/test/unit/device-utils.spec.js +13 -4
- package/lib/test/unit/enable-dashboard-option.spec.js +57 -0
- package/lib/test/unit/event-log-session-data.spec.js +251 -0
- package/lib/test/unit/failure-analysis.spec.js +196 -0
- package/lib/test/unit/failure-categories.spec.js +130 -0
- package/lib/test/unit/failure-categorization.spec.js +393 -0
- package/lib/test/unit/fingerprint-identity.spec.js +433 -0
- package/lib/test/unit/h264-multiplexer.spec.js +46 -0
- package/lib/test/unit/heal-report.spec.js +71 -0
- package/lib/test/unit/healing-instrumentation.spec.js +6 -1
- package/lib/test/unit/healing-tier-gate.spec.js +74 -29
- package/lib/test/unit/healing-tiers-every-session.spec.js +219 -0
- package/lib/test/unit/hub-node-gateway-appium-server.spec.js +243 -1
- package/lib/test/unit/interceptor-visual-elements.spec.js +192 -0
- package/lib/test/unit/ios-driver-log.spec.js +168 -0
- package/lib/test/unit/ios-simulator-session-readiness.spec.js +187 -0
- package/lib/test/unit/ios-simulator-session-teardown.spec.js +158 -0
- package/lib/test/unit/lease/lease-override.spec.js +23 -6
- package/lib/test/unit/lease/session-lease-proof.spec.js +16 -4
- package/lib/test/unit/logcat-ws.spec.js +78 -37
- package/lib/test/unit/logger-json-levels.spec.js +44 -0
- package/lib/test/unit/mcp-token-ttl.spec.js +38 -0
- package/lib/test/unit/observability-example-loki.spec.js +25 -0
- package/lib/test/unit/ocr-healing-tier-real-ocr.spec.js +113 -0
- package/lib/test/unit/ocr-healing-tier.spec.js +122 -0
- package/lib/test/unit/ocr-offline.spec.js +213 -0
- package/lib/test/unit/omni-virtual-element-store.spec.js +301 -0
- package/lib/test/unit/omni-vision-ios-points.spec.js +0 -2
- package/lib/test/unit/omni-vision.spec.js +5 -7
- package/lib/test/unit/openapi-for-site.spec.js +80 -0
- package/lib/test/unit/outbound-proxy.spec.js +320 -0
- package/lib/test/unit/package-engines.spec.js +27 -0
- package/lib/test/unit/passwordResetMode.test.js +10 -2
- package/lib/test/unit/port-exhaustion.spec.js +2 -1
- package/lib/test/unit/profile-router.test.js +122 -1
- package/lib/test/unit/proxy-option.spec.js +358 -0
- package/lib/test/unit/queue-requester.spec.js +1 -1
- package/lib/test/unit/reset-link-address.spec.js +266 -0
- package/lib/test/unit/reset-link.test.js +10 -4
- package/lib/test/unit/resilio-path-healing.spec.js +270 -0
- package/lib/test/unit/run-migrations-database.spec.js +807 -0
- package/lib/test/unit/run-migrations-fail-fast.test.js +41 -27
- package/lib/test/unit/run-migrations.test.js +864 -0
- package/lib/test/unit/selector-health-actions.spec.js +3 -1
- package/lib/test/unit/selector-learning-every-session.spec.js +179 -0
- package/lib/test/unit/selector-state-service.spec.js +72 -23
- package/lib/test/unit/selector-verification-clean-build.spec.js +130 -0
- package/lib/test/unit/selector-verification-job.spec.js +28 -19
- package/lib/test/unit/selector-verification-missed-regression.spec.js +2 -2
- package/lib/test/unit/selector-visibility-resolver.spec.js +209 -0
- package/lib/test/unit/self-healing-boot.spec.js +10 -5
- package/lib/test/unit/self-healing-setting.spec.js +7 -6
- package/lib/test/unit/session-app-resolution.spec.js +5 -1
- package/lib/test/unit/session-attribution-wiring.spec.js +41 -13
- package/lib/test/unit/session-create-credential-owner.spec.js +242 -0
- package/lib/test/unit/session-credential-strip.spec.js +1 -1
- package/lib/test/unit/session-device-logs-ios.spec.js +180 -0
- package/lib/test/unit/session-device-logs.spec.js +356 -0
- package/lib/test/unit/session-end-failure-analysis.spec.js +133 -0
- package/lib/test/unit/session-log-indexes.spec.js +64 -3
- package/lib/test/unit/socket-team-scope.integration.spec.js +749 -0
- package/lib/test/unit/socketServer.scopedEmit.spec.js +237 -5
- package/lib/test/unit/socketServer.sessionCookie.spec.js +2 -1
- package/lib/test/unit/stream-start-pipelines.spec.js +72 -18
- package/lib/test/unit/token-mint-limits.spec.js +165 -0
- package/lib/test/unit/tracing-export-routing.spec.js +137 -0
- package/lib/test/unit/tracing-session-spans.spec.js +337 -0
- package/lib/test/unit/unexpected-shutdown-reason.spec.js +163 -0
- package/lib/test/unit/verify-credential.spec.js +33 -0
- package/lib/test/unit/vision-assertion.spec.js +3 -2
- package/lib/test/unit/web-config-service.spec.js +19 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -5
- package/prisma/migrations/20261004174413_locator_etalon_path/migration.sql +2 -0
- package/prisma/schema.prisma +3 -0
- package/schema.json +16 -12
- package/scripts/dev/readme-screenshots.js +276 -23
- package/scripts/dev/screenshot-fixtures/logcat.js +157 -0
- package/scripts/dev/screenshot-fixtures/phone-screen.html +469 -0
- package/scripts/dev/screenshot-fixtures/session.js +242 -0
- package/scripts/export-openapi.js +32 -0
- package/scripts/lib/openapi-for-site.js +79 -0
- package/lib/public/assets/BugReportButton-BAt0_pzq.js +0 -15
- package/lib/public/assets/DeviceMosaicView-BYaQHhTf.js +0 -2
- package/lib/public/assets/ai-settings-CsuJroRf.js +0 -21
- package/lib/public/assets/device-explorer-CdO6_nrn.js +0 -282
- package/lib/public/assets/forgot-password-CGnkRgE9.js +0 -1
- package/lib/public/assets/index-BbKEXUFH.js +0 -219
- package/lib/public/assets/runbook-page-CMMeQml9.js +0 -124
- package/lib/public/assets/session-detail-page-COL_RZxw.js +0 -4
- package/lib/src/scripts/prepare-prisma.js +0 -89
- /package/lib/public/assets/{BugReportButton-CPBjfiv4.css → index-CPBjfiv4.css} +0 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import{J as _e,R as Ie,i as Ir,u as Fr,j as ne,K as vr}from"./index-B0gQkEg0.js";import{h as Or}from"./derive-UnLRp4r3.js";import{A as Lr}from"./arrow-left-BtB0_Jg_.js";const $n=["http","https","mailto","tel"];function Dr(e){const n=(e||"").trim(),t=n.charAt(0);if(t==="#"||t==="/")return n;const r=n.indexOf(":");if(r===-1)return n;let i=-1;for(;++i<$n.length;){const l=$n[i];if(r===l.length&&n.slice(0,l.length).toLowerCase()===l)return n}return i=n.indexOf("?"),i!==-1&&r>i||(i=n.indexOf("#"),i!==-1&&r>i)?n:"javascript:void(0)"}/*!
|
|
2
|
+
* Determine if an object is a Buffer
|
|
3
|
+
*
|
|
4
|
+
* @author Feross Aboukhadijeh <https://feross.org>
|
|
5
|
+
* @license MIT
|
|
6
|
+
*/var zr=function(n){return n!=null&&n.constructor!=null&&typeof n.constructor.isBuffer=="function"&&n.constructor.isBuffer(n)};const Ot=_e(zr);function Ne(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?qn(e.position):"start"in e||"end"in e?qn(e):"line"in e||"column"in e?xn(e):""}function xn(e){return Wn(e&&e.line)+":"+Wn(e&&e.column)}function qn(e){return xn(e&&e.start)+"-"+xn(e&&e.end)}function Wn(e){return e&&typeof e=="number"?e:1}class ie extends Error{constructor(n,t,r){const i=[null,null];let l={start:{line:null,column:null},end:{line:null,column:null}};if(super(),typeof t=="string"&&(r=t,t=void 0),typeof r=="string"){const o=r.indexOf(":");o===-1?i[1]=r:(i[0]=r.slice(0,o),i[1]=r.slice(o+1))}t&&("type"in t||"position"in t?t.position&&(l=t.position):"start"in t||"end"in t?l=t:("line"in t||"column"in t)&&(l.start=t)),this.name=Ne(t)||"1:1",this.message=typeof n=="object"?n.message:n,this.stack="",typeof n=="object"&&n.stack&&(this.stack=n.stack),this.reason=this.message,this.fatal,this.line=l.start.line,this.column=l.start.column,this.position=l,this.source=i[0],this.ruleId=i[1],this.file,this.actual,this.expected,this.url,this.note}}ie.prototype.file="";ie.prototype.name="";ie.prototype.reason="";ie.prototype.message="";ie.prototype.stack="";ie.prototype.fatal=null;ie.prototype.column=null;ie.prototype.line=null;ie.prototype.source=null;ie.prototype.ruleId=null;ie.prototype.position=null;const pe={basename:Rr,dirname:Br,extname:Nr,join:Mr,sep:"/"};function Rr(e,n){if(n!==void 0&&typeof n!="string")throw new TypeError('"ext" argument must be a string');je(e);let t=0,r=-1,i=e.length,l;if(n===void 0||n.length===0||n.length>e.length){for(;i--;)if(e.charCodeAt(i)===47){if(l){t=i+1;break}}else r<0&&(l=!0,r=i+1);return r<0?"":e.slice(t,r)}if(n===e)return"";let o=-1,a=n.length-1;for(;i--;)if(e.charCodeAt(i)===47){if(l){t=i+1;break}}else o<0&&(l=!0,o=i+1),a>-1&&(e.charCodeAt(i)===n.charCodeAt(a--)?a<0&&(r=i):(a=-1,r=o));return t===r?r=o:r<0&&(r=e.length),e.slice(t,r)}function Br(e){if(je(e),e.length===0)return".";let n=-1,t=e.length,r;for(;--t;)if(e.charCodeAt(t)===47){if(r){n=t;break}}else r||(r=!0);return n<0?e.charCodeAt(0)===47?"/":".":n===1&&e.charCodeAt(0)===47?"//":e.slice(0,n)}function Nr(e){je(e);let n=e.length,t=-1,r=0,i=-1,l=0,o;for(;n--;){const a=e.charCodeAt(n);if(a===47){if(o){r=n+1;break}continue}t<0&&(o=!0,t=n+1),a===46?i<0?i=n:l!==1&&(l=1):i>-1&&(l=-1)}return i<0||t<0||l===0||l===1&&i===t-1&&i===r+1?"":e.slice(i,t)}function Mr(...e){let n=-1,t;for(;++n<e.length;)je(e[n]),e[n]&&(t=t===void 0?e[n]:t+"/"+e[n]);return t===void 0?".":_r(t)}function _r(e){je(e);const n=e.charCodeAt(0)===47;let t=jr(e,!n);return t.length===0&&!n&&(t="."),t.length>0&&e.charCodeAt(e.length-1)===47&&(t+="/"),n?"/"+t:t}function jr(e,n){let t="",r=0,i=-1,l=0,o=-1,a,s;for(;++o<=e.length;){if(o<e.length)a=e.charCodeAt(o);else{if(a===47)break;a=47}if(a===47){if(!(i===o-1||l===1))if(i!==o-1&&l===2){if(t.length<2||r!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){if(s=t.lastIndexOf("/"),s!==t.length-1){s<0?(t="",r=0):(t=t.slice(0,s),r=t.length-1-t.lastIndexOf("/")),i=o,l=0;continue}}else if(t.length>0){t="",r=0,i=o,l=0;continue}}n&&(t=t.length>0?t+"/..":"..",r=2)}else t.length>0?t+="/"+e.slice(i+1,o):t=e.slice(i+1,o),r=o-i-1;i=o,l=0}else a===46&&l>-1?l++:l=-1}return t}function je(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Hr={cwd:Ur};function Ur(){return"/"}function kn(e){return e!==null&&typeof e=="object"&&e.href&&e.origin}function Vr(e){if(typeof e=="string")e=new URL(e);else if(!kn(e)){const n=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw n.code="ERR_INVALID_ARG_TYPE",n}if(e.protocol!=="file:"){const n=new TypeError("The URL must be of scheme file");throw n.code="ERR_INVALID_URL_SCHEME",n}return $r(e)}function $r(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const n=e.pathname;let t=-1;for(;++t<n.length;)if(n.charCodeAt(t)===37&&n.charCodeAt(t+1)===50){const r=n.charCodeAt(t+2);if(r===70||r===102){const i=new TypeError("File URL path must not include encoded / characters");throw i.code="ERR_INVALID_FILE_URL_PATH",i}}return decodeURIComponent(n)}const un=["history","path","basename","stem","extname","dirname"];class Lt{constructor(n){let t;n?typeof n=="string"||qr(n)?t={value:n}:kn(n)?t={path:n}:t=n:t={},this.data={},this.messages=[],this.history=[],this.cwd=Hr.cwd(),this.value,this.stored,this.result,this.map;let r=-1;for(;++r<un.length;){const l=un[r];l in t&&t[l]!==void 0&&t[l]!==null&&(this[l]=l==="history"?[...t[l]]:t[l])}let i;for(i in t)un.includes(i)||(this[i]=t[i])}get path(){return this.history[this.history.length-1]}set path(n){kn(n)&&(n=Vr(n)),cn(n,"path"),this.path!==n&&this.history.push(n)}get dirname(){return typeof this.path=="string"?pe.dirname(this.path):void 0}set dirname(n){Xn(this.basename,"dirname"),this.path=pe.join(n||"",this.basename)}get basename(){return typeof this.path=="string"?pe.basename(this.path):void 0}set basename(n){cn(n,"basename"),sn(n,"basename"),this.path=pe.join(this.dirname||"",n)}get extname(){return typeof this.path=="string"?pe.extname(this.path):void 0}set extname(n){if(sn(n,"extname"),Xn(this.dirname,"extname"),n){if(n.charCodeAt(0)!==46)throw new Error("`extname` must start with `.`");if(n.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=pe.join(this.dirname,this.stem+(n||""))}get stem(){return typeof this.path=="string"?pe.basename(this.path,this.extname):void 0}set stem(n){cn(n,"stem"),sn(n,"stem"),this.path=pe.join(this.dirname||"",n+(this.extname||""))}toString(n){return(this.value||"").toString(n||void 0)}message(n,t,r){const i=new ie(n,t,r);return this.path&&(i.name=this.path+":"+i.name,i.file=this.path),i.fatal=!1,this.messages.push(i),i}info(n,t,r){const i=this.message(n,t,r);return i.fatal=null,i}fail(n,t,r){const i=this.message(n,t,r);throw i.fatal=!0,i}}function sn(e,n){if(e&&e.includes(pe.sep))throw new Error("`"+n+"` cannot be a path: did not expect `"+pe.sep+"`")}function cn(e,n){if(!e)throw new Error("`"+n+"` cannot be empty")}function Xn(e,n){if(!e)throw new Error("Setting `"+n+"` requires `path` to be set too")}function qr(e){return Ot(e)}function Qn(e){if(e)throw e}var $e=Object.prototype.hasOwnProperty,Dt=Object.prototype.toString,Yn=Object.defineProperty,Kn=Object.getOwnPropertyDescriptor,Gn=function(n){return typeof Array.isArray=="function"?Array.isArray(n):Dt.call(n)==="[object Array]"},Jn=function(n){if(!n||Dt.call(n)!=="[object Object]")return!1;var t=$e.call(n,"constructor"),r=n.constructor&&n.constructor.prototype&&$e.call(n.constructor.prototype,"isPrototypeOf");if(n.constructor&&!t&&!r)return!1;var i;for(i in n);return typeof i>"u"||$e.call(n,i)},Zn=function(n,t){Yn&&t.name==="__proto__"?Yn(n,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):n[t.name]=t.newValue},et=function(n,t){if(t==="__proto__")if($e.call(n,t)){if(Kn)return Kn(n,t).value}else return;return n[t]},Wr=function e(){var n,t,r,i,l,o,a=arguments[0],s=1,u=arguments.length,c=!1;for(typeof a=="boolean"&&(c=a,a=arguments[1]||{},s=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});s<u;++s)if(n=arguments[s],n!=null)for(t in n)r=et(a,t),i=et(n,t),a!==i&&(c&&i&&(Jn(i)||(l=Gn(i)))?(l?(l=!1,o=r&&Gn(r)?r:[]):o=r&&Jn(r)?r:{},Zn(a,{name:t,newValue:e(c,o,i)})):typeof i<"u"&&Zn(a,{name:t,newValue:i}));return a};const nt=_e(Wr);function wn(e){if(typeof e!="object"||e===null)return!1;const n=Object.getPrototypeOf(e);return(n===null||n===Object.prototype||Object.getPrototypeOf(n)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Xr(){const e=[],n={run:t,use:r};return n;function t(...i){let l=-1;const o=i.pop();if(typeof o!="function")throw new TypeError("Expected function as last argument, not "+o);a(null,...i);function a(s,...u){const c=e[++l];let m=-1;if(s){o(s);return}for(;++m<i.length;)(u[m]===null||u[m]===void 0)&&(u[m]=i[m]);i=u,c?Qr(c,a)(...u):o(null,...u)}}function r(i){if(typeof i!="function")throw new TypeError("Expected `middelware` to be a function, not "+i);return e.push(i),n}}function Qr(e,n){let t;return r;function r(...o){const a=e.length>o.length;let s;a&&o.push(i);try{s=e.apply(this,o)}catch(u){const c=u;if(a&&t)throw c;return i(c)}a||(s&&s.then&&typeof s.then=="function"?s.then(l,i):s instanceof Error?i(s):l(s))}function i(o,...a){t||(t=!0,n(o,...a))}function l(o){i(null,o)}}const Yr=Rt().freeze(),zt={}.hasOwnProperty;function Rt(){const e=Xr(),n=[];let t={},r,i=-1;return l.data=o,l.Parser=void 0,l.Compiler=void 0,l.freeze=a,l.attachers=n,l.use=s,l.parse=u,l.stringify=c,l.run=m,l.runSync=d,l.process=h,l.processSync=b,l;function l(){const x=Rt();let C=-1;for(;++C<n.length;)x.use(...n[C]);return x.data(nt(!0,{},t)),x}function o(x,C){return typeof x=="string"?arguments.length===2?(fn("data",r),t[x]=C,l):zt.call(t,x)&&t[x]||null:x?(fn("data",r),t=x,l):t}function a(){if(r)return l;for(;++i<n.length;){const[x,...C]=n[i];if(C[0]===!1)continue;C[0]===!0&&(C[0]=void 0);const k=x.call(l,...C);typeof k=="function"&&e.use(k)}return r=!0,i=Number.POSITIVE_INFINITY,l}function s(x,...C){let k;if(fn("use",r),x!=null)if(typeof x=="function")R(x,...C);else if(typeof x=="object")Array.isArray(x)?z(x):E(x);else throw new TypeError("Expected usable value, not `"+x+"`");return k&&(t.settings=Object.assign(t.settings||{},k)),l;function L(g){if(typeof g=="function")R(g);else if(typeof g=="object")if(Array.isArray(g)){const[T,...D]=g;R(T,...D)}else E(g);else throw new TypeError("Expected usable value, not `"+g+"`")}function E(g){z(g.plugins),g.settings&&(k=Object.assign(k||{},g.settings))}function z(g){let T=-1;if(g!=null)if(Array.isArray(g))for(;++T<g.length;){const D=g[T];L(D)}else throw new TypeError("Expected a list of plugins, not `"+g+"`")}function R(g,T){let D=-1,M;for(;++D<n.length;)if(n[D][0]===g){M=n[D];break}M?(wn(M[1])&&wn(T)&&(T=nt(!0,M[1],T)),M[1]=T):n.push([...arguments])}}function u(x){l.freeze();const C=Re(x),k=l.Parser;return pn("parse",k),tt(k,"parse")?new k(String(C),C).parse():k(String(C),C)}function c(x,C){l.freeze();const k=Re(C),L=l.Compiler;return hn("stringify",L),rt(x),tt(L,"compile")?new L(x,k).compile():L(x,k)}function m(x,C,k){if(rt(x),l.freeze(),!k&&typeof C=="function"&&(k=C,C=void 0),!k)return new Promise(L);L(null,k);function L(E,z){e.run(x,Re(C),R);function R(g,T,D){T=T||x,g?z(g):E?E(T):k(null,T,D)}}}function d(x,C){let k,L;return l.run(x,C,E),it("runSync","run",L),k;function E(z,R){Qn(z),k=R,L=!0}}function h(x,C){if(l.freeze(),pn("process",l.Parser),hn("process",l.Compiler),!C)return new Promise(k);k(null,C);function k(L,E){const z=Re(x);l.run(l.parse(z),z,(g,T,D)=>{if(g||!T||!D)R(g);else{const M=l.stringify(T,D);M==null||(Jr(M)?D.value=M:D.result=M),R(g,D)}});function R(g,T){g||!T?E(g):L?L(T):C(null,T)}}}function b(x){let C;l.freeze(),pn("processSync",l.Parser),hn("processSync",l.Compiler);const k=Re(x);return l.process(k,L),it("processSync","process",C),k;function L(E){C=!0,Qn(E)}}}function tt(e,n){return typeof e=="function"&&e.prototype&&(Kr(e.prototype)||n in e.prototype)}function Kr(e){let n;for(n in e)if(zt.call(e,n))return!0;return!1}function pn(e,n){if(typeof n!="function")throw new TypeError("Cannot `"+e+"` without `Parser`")}function hn(e,n){if(typeof n!="function")throw new TypeError("Cannot `"+e+"` without `Compiler`")}function fn(e,n){if(n)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function rt(e){if(!wn(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function it(e,n,t){if(!t)throw new Error("`"+e+"` finished async. Use `"+n+"` instead")}function Re(e){return Gr(e)?e:new Lt(e)}function Gr(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function Jr(e){return typeof e=="string"||Ot(e)}const Zr={};function ei(e,n){const t=Zr,r=typeof t.includeImageAlt=="boolean"?t.includeImageAlt:!0,i=typeof t.includeHtml=="boolean"?t.includeHtml:!0;return Bt(e,r,i)}function Bt(e,n,t){if(ni(e)){if("value"in e)return e.type==="html"&&!t?"":e.value;if(n&&"alt"in e&&e.alt)return e.alt;if("children"in e)return lt(e.children,n,t)}return Array.isArray(e)?lt(e,n,t):""}function lt(e,n,t){const r=[];let i=-1;for(;++i<e.length;)r[i]=Bt(e[i],n,t);return r.join("")}function ni(e){return!!(e&&typeof e=="object")}function fe(e,n,t,r){const i=e.length;let l=0,o;if(n<0?n=-n>i?0:i+n:n=n>i?i:n,t=t>0?t:0,r.length<1e4)o=Array.from(r),o.unshift(n,t),e.splice(...o);else for(t&&e.splice(n,t);l<r.length;)o=r.slice(l,l+1e4),o.unshift(n,0),e.splice(...o),l+=1e4,n+=1e4}function re(e,n){return e.length>0?(fe(e,e.length,0,n),e):n}const ot={}.hasOwnProperty;function ti(e){const n={};let t=-1;for(;++t<e.length;)ri(n,e[t]);return n}function ri(e,n){let t;for(t in n){const i=(ot.call(e,t)?e[t]:void 0)||(e[t]={}),l=n[t];let o;if(l)for(o in l){ot.call(i,o)||(i[o]=[]);const a=l[o];ii(i[o],Array.isArray(a)?a:a?[a]:[])}}}function ii(e,n){let t=-1;const r=[];for(;++t<n.length;)(n[t].add==="after"?e:r).push(n[t]);fe(e,0,0,r)}const li=/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/,he=be(/[A-Za-z]/),te=be(/[\dA-Za-z]/),oi=be(/[#-'*+\--9=?A-Z^-~]/);function bn(e){return e!==null&&(e<32||e===127)}const Sn=be(/\d/),ai=be(/[\dA-Fa-f]/),ui=be(/[!-/:-@[-`{-~]/);function F(e){return e!==null&&e<-2}function Z(e){return e!==null&&(e<0||e===32)}function N(e){return e===-2||e===-1||e===32}const si=be(li),ci=be(/\s/);function be(e){return n;function n(t){return t!==null&&e.test(String.fromCharCode(t))}}function V(e,n,t,r){const i=r?r-1:Number.POSITIVE_INFINITY;let l=0;return o;function o(s){return N(s)?(e.enter(t),a(s)):n(s)}function a(s){return N(s)&&l++<i?(e.consume(s),a):(e.exit(t),n(s))}}const pi={tokenize:hi};function hi(e){const n=e.attempt(this.parser.constructs.contentInitial,r,i);let t;return n;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),V(e,n,"linePrefix")}function i(a){return e.enter("paragraph"),l(a)}function l(a){const s=e.enter("chunkText",{contentType:"text",previous:t});return t&&(t.next=s),t=s,o(a)}function o(a){if(a===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(a);return}return F(a)?(e.consume(a),e.exit("chunkText"),l):(e.consume(a),o)}}const fi={tokenize:mi},at={tokenize:di};function mi(e){const n=this,t=[];let r=0,i,l,o;return a;function a(E){if(r<t.length){const z=t[r];return n.containerState=z[1],e.attempt(z[0].continuation,s,u)(E)}return u(E)}function s(E){if(r++,n.containerState._closeFlow){n.containerState._closeFlow=void 0,i&&L();const z=n.events.length;let R=z,g;for(;R--;)if(n.events[R][0]==="exit"&&n.events[R][1].type==="chunkFlow"){g=n.events[R][1].end;break}k(r);let T=z;for(;T<n.events.length;)n.events[T][1].end=Object.assign({},g),T++;return fe(n.events,R+1,0,n.events.slice(z)),n.events.length=T,u(E)}return a(E)}function u(E){if(r===t.length){if(!i)return d(E);if(i.currentConstruct&&i.currentConstruct.concrete)return b(E);n.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return n.containerState={},e.check(at,c,m)(E)}function c(E){return i&&L(),k(r),d(E)}function m(E){return n.parser.lazy[n.now().line]=r!==t.length,o=n.now().offset,b(E)}function d(E){return n.containerState={},e.attempt(at,h,b)(E)}function h(E){return r++,t.push([n.currentConstruct,n.containerState]),d(E)}function b(E){if(E===null){i&&L(),k(0),e.consume(E);return}return i=i||n.parser.flow(n.now()),e.enter("chunkFlow",{contentType:"flow",previous:l,_tokenizer:i}),x(E)}function x(E){if(E===null){C(e.exit("chunkFlow"),!0),k(0),e.consume(E);return}return F(E)?(e.consume(E),C(e.exit("chunkFlow")),r=0,n.interrupt=void 0,a):(e.consume(E),x)}function C(E,z){const R=n.sliceStream(E);if(z&&R.push(null),E.previous=l,l&&(l.next=E),l=E,i.defineSkip(E.start),i.write(R),n.parser.lazy[E.start.line]){let g=i.events.length;for(;g--;)if(i.events[g][1].start.offset<o&&(!i.events[g][1].end||i.events[g][1].end.offset>o))return;const T=n.events.length;let D=T,M,Q;for(;D--;)if(n.events[D][0]==="exit"&&n.events[D][1].type==="chunkFlow"){if(M){Q=n.events[D][1].end;break}M=!0}for(k(r),g=T;g<n.events.length;)n.events[g][1].end=Object.assign({},Q),g++;fe(n.events,D+1,0,n.events.slice(T)),n.events.length=g}}function k(E){let z=t.length;for(;z-- >E;){const R=t[z];n.containerState=R[1],R[0].exit.call(n,e)}t.length=E}function L(){i.write([null]),l=void 0,i=void 0,n.containerState._closeFlow=void 0}}function di(e,n,t){return V(e,e.attempt(this.parser.constructs.document,n,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function ut(e){if(e===null||Z(e)||ci(e))return 1;if(si(e))return 2}function Tn(e,n,t){const r=[];let i=-1;for(;++i<e.length;){const l=e[i].resolveAll;l&&!r.includes(l)&&(n=l(n,t),r.push(l))}return n}const Cn={name:"attention",tokenize:yi,resolveAll:gi};function gi(e,n){let t=-1,r,i,l,o,a,s,u,c;for(;++t<e.length;)if(e[t][0]==="enter"&&e[t][1].type==="attentionSequence"&&e[t][1]._close){for(r=t;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&n.sliceSerialize(e[r][1]).charCodeAt(0)===n.sliceSerialize(e[t][1]).charCodeAt(0)){if((e[r][1]._close||e[t][1]._open)&&(e[t][1].end.offset-e[t][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[t][1].end.offset-e[t][1].start.offset)%3))continue;s=e[r][1].end.offset-e[r][1].start.offset>1&&e[t][1].end.offset-e[t][1].start.offset>1?2:1;const m=Object.assign({},e[r][1].end),d=Object.assign({},e[t][1].start);st(m,-s),st(d,s),o={type:s>1?"strongSequence":"emphasisSequence",start:m,end:Object.assign({},e[r][1].end)},a={type:s>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[t][1].start),end:d},l={type:s>1?"strongText":"emphasisText",start:Object.assign({},e[r][1].end),end:Object.assign({},e[t][1].start)},i={type:s>1?"strong":"emphasis",start:Object.assign({},o.start),end:Object.assign({},a.end)},e[r][1].end=Object.assign({},o.start),e[t][1].start=Object.assign({},a.end),u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=re(u,[["enter",e[r][1],n],["exit",e[r][1],n]])),u=re(u,[["enter",i,n],["enter",o,n],["exit",o,n],["enter",l,n]]),u=re(u,Tn(n.parser.constructs.insideSpan.null,e.slice(r+1,t),n)),u=re(u,[["exit",l,n],["enter",a,n],["exit",a,n],["exit",i,n]]),e[t][1].end.offset-e[t][1].start.offset?(c=2,u=re(u,[["enter",e[t][1],n],["exit",e[t][1],n]])):c=0,fe(e,r-1,t-r+3,u),t=r+u.length-c-2;break}}for(t=-1;++t<e.length;)e[t][1].type==="attentionSequence"&&(e[t][1].type="data");return e}function yi(e,n){const t=this.parser.constructs.attentionMarkers.null,r=this.previous,i=ut(r);let l;return o;function o(s){return l=s,e.enter("attentionSequence"),a(s)}function a(s){if(s===l)return e.consume(s),a;const u=e.exit("attentionSequence"),c=ut(s),m=!c||c===2&&i||t.includes(s),d=!i||i===2&&c||t.includes(r);return u._open=!!(l===42?m:m&&(i||!d)),u._close=!!(l===42?d:d&&(c||!m)),n(s)}}function st(e,n){e.column+=n,e.offset+=n,e._bufferIndex+=n}const xi={name:"autolink",tokenize:ki};function ki(e,n,t){let r=0;return i;function i(h){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(h),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),l}function l(h){return he(h)?(e.consume(h),o):u(h)}function o(h){return h===43||h===45||h===46||te(h)?(r=1,a(h)):u(h)}function a(h){return h===58?(e.consume(h),r=0,s):(h===43||h===45||h===46||te(h))&&r++<32?(e.consume(h),a):(r=0,u(h))}function s(h){return h===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(h),e.exit("autolinkMarker"),e.exit("autolink"),n):h===null||h===32||h===60||bn(h)?t(h):(e.consume(h),s)}function u(h){return h===64?(e.consume(h),c):oi(h)?(e.consume(h),u):t(h)}function c(h){return te(h)?m(h):t(h)}function m(h){return h===46?(e.consume(h),r=0,c):h===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(h),e.exit("autolinkMarker"),e.exit("autolink"),n):d(h)}function d(h){if((h===45||te(h))&&r++<63){const b=h===45?d:m;return e.consume(h),b}return t(h)}}const Xe={tokenize:wi,partial:!0};function wi(e,n,t){return r;function r(l){return N(l)?V(e,i,"linePrefix")(l):i(l)}function i(l){return l===null||F(l)?n(l):t(l)}}const Nt={name:"blockQuote",tokenize:bi,continuation:{tokenize:Si},exit:Ci};function bi(e,n,t){const r=this;return i;function i(o){if(o===62){const a=r.containerState;return a.open||(e.enter("blockQuote",{_container:!0}),a.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(o),e.exit("blockQuoteMarker"),l}return t(o)}function l(o){return N(o)?(e.enter("blockQuotePrefixWhitespace"),e.consume(o),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),n):(e.exit("blockQuotePrefix"),n(o))}}function Si(e,n,t){const r=this;return i;function i(o){return N(o)?V(e,l,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o):l(o)}function l(o){return e.attempt(Nt,n,t)(o)}}function Ci(e){e.exit("blockQuote")}const Mt={name:"characterEscape",tokenize:Ei};function Ei(e,n,t){return r;function r(l){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(l),e.exit("escapeMarker"),i}function i(l){return ui(l)?(e.enter("characterEscapeValue"),e.consume(l),e.exit("characterEscapeValue"),e.exit("characterEscape"),n):t(l)}}const ct=document.createElement("i");function In(e){const n="&"+e+";";ct.innerHTML=n;const t=ct.textContent;return t.charCodeAt(t.length-1)===59&&e!=="semi"||t===n?!1:t}const _t={name:"characterReference",tokenize:Ai};function Ai(e,n,t){const r=this;let i=0,l,o;return a;function a(m){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(m),e.exit("characterReferenceMarker"),s}function s(m){return m===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(m),e.exit("characterReferenceMarkerNumeric"),u):(e.enter("characterReferenceValue"),l=31,o=te,c(m))}function u(m){return m===88||m===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(m),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),l=6,o=ai,c):(e.enter("characterReferenceValue"),l=7,o=Sn,c(m))}function c(m){if(m===59&&i){const d=e.exit("characterReferenceValue");return o===te&&!In(r.sliceSerialize(d))?t(m):(e.enter("characterReferenceMarker"),e.consume(m),e.exit("characterReferenceMarker"),e.exit("characterReference"),n)}return o(m)&&i++<l?(e.consume(m),c):t(m)}}const pt={tokenize:Ti,partial:!0},ht={name:"codeFenced",tokenize:Pi,concrete:!0};function Pi(e,n,t){const r=this,i={tokenize:R,partial:!0};let l=0,o=0,a;return s;function s(g){return u(g)}function u(g){const T=r.events[r.events.length-1];return l=T&&T[1].type==="linePrefix"?T[2].sliceSerialize(T[1],!0).length:0,a=g,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),c(g)}function c(g){return g===a?(o++,e.consume(g),c):o<3?t(g):(e.exit("codeFencedFenceSequence"),N(g)?V(e,m,"whitespace")(g):m(g))}function m(g){return g===null||F(g)?(e.exit("codeFencedFence"),r.interrupt?n(g):e.check(pt,x,z)(g)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),d(g))}function d(g){return g===null||F(g)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),m(g)):N(g)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),V(e,h,"whitespace")(g)):g===96&&g===a?t(g):(e.consume(g),d)}function h(g){return g===null||F(g)?m(g):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),b(g))}function b(g){return g===null||F(g)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),m(g)):g===96&&g===a?t(g):(e.consume(g),b)}function x(g){return e.attempt(i,z,C)(g)}function C(g){return e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),k}function k(g){return l>0&&N(g)?V(e,L,"linePrefix",l+1)(g):L(g)}function L(g){return g===null||F(g)?e.check(pt,x,z)(g):(e.enter("codeFlowValue"),E(g))}function E(g){return g===null||F(g)?(e.exit("codeFlowValue"),L(g)):(e.consume(g),E)}function z(g){return e.exit("codeFenced"),n(g)}function R(g,T,D){let M=0;return Q;function Q(B){return g.enter("lineEnding"),g.consume(B),g.exit("lineEnding"),A}function A(B){return g.enter("codeFencedFence"),N(B)?V(g,P,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(B):P(B)}function P(B){return B===a?(g.enter("codeFencedFenceSequence"),$(B)):D(B)}function $(B){return B===a?(M++,g.consume(B),$):M>=o?(g.exit("codeFencedFenceSequence"),N(B)?V(g,q,"whitespace")(B):q(B)):D(B)}function q(B){return B===null||F(B)?(g.exit("codeFencedFence"),T(B)):D(B)}}}function Ti(e,n,t){const r=this;return i;function i(o){return o===null?t(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),l)}function l(o){return r.parser.lazy[r.now().line]?t(o):n(o)}}const mn={name:"codeIndented",tokenize:Fi},Ii={tokenize:vi,partial:!0};function Fi(e,n,t){const r=this;return i;function i(u){return e.enter("codeIndented"),V(e,l,"linePrefix",5)(u)}function l(u){const c=r.events[r.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?o(u):t(u)}function o(u){return u===null?s(u):F(u)?e.attempt(Ii,o,s)(u):(e.enter("codeFlowValue"),a(u))}function a(u){return u===null||F(u)?(e.exit("codeFlowValue"),o(u)):(e.consume(u),a)}function s(u){return e.exit("codeIndented"),n(u)}}function vi(e,n,t){const r=this;return i;function i(o){return r.parser.lazy[r.now().line]?t(o):F(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):V(e,l,"linePrefix",5)(o)}function l(o){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?n(o):F(o)?i(o):t(o)}}const Oi={name:"codeText",tokenize:zi,resolve:Li,previous:Di};function Li(e){let n=e.length-4,t=3,r,i;if((e[t][1].type==="lineEnding"||e[t][1].type==="space")&&(e[n][1].type==="lineEnding"||e[n][1].type==="space")){for(r=t;++r<n;)if(e[r][1].type==="codeTextData"){e[t][1].type="codeTextPadding",e[n][1].type="codeTextPadding",t+=2,n-=2;break}}for(r=t-1,n++;++r<=n;)i===void 0?r!==n&&e[r][1].type!=="lineEnding"&&(i=r):(r===n||e[r][1].type==="lineEnding")&&(e[i][1].type="codeTextData",r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),n-=r-i-2,r=i+2),i=void 0);return e}function Di(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function zi(e,n,t){let r=0,i,l;return o;function o(m){return e.enter("codeText"),e.enter("codeTextSequence"),a(m)}function a(m){return m===96?(e.consume(m),r++,a):(e.exit("codeTextSequence"),s(m))}function s(m){return m===null?t(m):m===32?(e.enter("space"),e.consume(m),e.exit("space"),s):m===96?(l=e.enter("codeTextSequence"),i=0,c(m)):F(m)?(e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),s):(e.enter("codeTextData"),u(m))}function u(m){return m===null||m===32||m===96||F(m)?(e.exit("codeTextData"),s(m)):(e.consume(m),u)}function c(m){return m===96?(e.consume(m),i++,c):i===r?(e.exit("codeTextSequence"),e.exit("codeText"),n(m)):(l.type="codeTextData",u(m))}}function jt(e){const n={};let t=-1,r,i,l,o,a,s,u;for(;++t<e.length;){for(;t in n;)t=n[t];if(r=e[t],t&&r[1].type==="chunkFlow"&&e[t-1][1].type==="listItemPrefix"&&(s=r[1]._tokenizer.events,l=0,l<s.length&&s[l][1].type==="lineEndingBlank"&&(l+=2),l<s.length&&s[l][1].type==="content"))for(;++l<s.length&&s[l][1].type!=="content";)s[l][1].type==="chunkText"&&(s[l][1]._isInFirstContentOfListItem=!0,l++);if(r[0]==="enter")r[1].contentType&&(Object.assign(n,Ri(e,t)),t=n[t],u=!0);else if(r[1]._container){for(l=t,i=void 0;l--&&(o=e[l],o[1].type==="lineEnding"||o[1].type==="lineEndingBlank");)o[0]==="enter"&&(i&&(e[i][1].type="lineEndingBlank"),o[1].type="lineEnding",i=l);i&&(r[1].end=Object.assign({},e[i][1].start),a=e.slice(i,t),a.unshift(r),fe(e,i,t-i+1,a))}}return!u}function Ri(e,n){const t=e[n][1],r=e[n][2];let i=n-1;const l=[],o=t._tokenizer||r.parser[t.contentType](t.start),a=o.events,s=[],u={};let c,m,d=-1,h=t,b=0,x=0;const C=[x];for(;h;){for(;e[++i][1]!==h;);l.push(i),h._tokenizer||(c=r.sliceStream(h),h.next||c.push(null),m&&o.defineSkip(h.start),h._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(c),h._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),m=h,h=h.next}for(h=t;++d<a.length;)a[d][0]==="exit"&&a[d-1][0]==="enter"&&a[d][1].type===a[d-1][1].type&&a[d][1].start.line!==a[d][1].end.line&&(x=d+1,C.push(x),h._tokenizer=void 0,h.previous=void 0,h=h.next);for(o.events=[],h?(h._tokenizer=void 0,h.previous=void 0):C.pop(),d=C.length;d--;){const k=a.slice(C[d],C[d+1]),L=l.pop();s.unshift([L,L+k.length-1]),fe(e,L,2,k)}for(d=-1;++d<s.length;)u[b+s[d][0]]=b+s[d][1],b+=s[d][1]-s[d][0]-1;return u}const Bi={tokenize:_i,resolve:Mi},Ni={tokenize:ji,partial:!0};function Mi(e){return jt(e),e}function _i(e,n){let t;return r;function r(a){return e.enter("content"),t=e.enter("chunkContent",{contentType:"content"}),i(a)}function i(a){return a===null?l(a):F(a)?e.check(Ni,o,l)(a):(e.consume(a),i)}function l(a){return e.exit("chunkContent"),e.exit("content"),n(a)}function o(a){return e.consume(a),e.exit("chunkContent"),t.next=e.enter("chunkContent",{contentType:"content",previous:t}),t=t.next,i}}function ji(e,n,t){const r=this;return i;function i(o){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),V(e,l,"linePrefix")}function l(o){if(o===null||F(o))return t(o);const a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?n(o):e.interrupt(r.parser.constructs.flow,t,n)(o)}}function Ht(e,n,t,r,i,l,o,a,s){const u=s||Number.POSITIVE_INFINITY;let c=0;return m;function m(k){return k===60?(e.enter(r),e.enter(i),e.enter(l),e.consume(k),e.exit(l),d):k===null||k===32||k===41||bn(k)?t(k):(e.enter(r),e.enter(o),e.enter(a),e.enter("chunkString",{contentType:"string"}),x(k))}function d(k){return k===62?(e.enter(l),e.consume(k),e.exit(l),e.exit(i),e.exit(r),n):(e.enter(a),e.enter("chunkString",{contentType:"string"}),h(k))}function h(k){return k===62?(e.exit("chunkString"),e.exit(a),d(k)):k===null||k===60||F(k)?t(k):(e.consume(k),k===92?b:h)}function b(k){return k===60||k===62||k===92?(e.consume(k),h):h(k)}function x(k){return!c&&(k===null||k===41||Z(k))?(e.exit("chunkString"),e.exit(a),e.exit(o),e.exit(r),n(k)):c<u&&k===40?(e.consume(k),c++,x):k===41?(e.consume(k),c--,x):k===null||k===32||k===40||bn(k)?t(k):(e.consume(k),k===92?C:x)}function C(k){return k===40||k===41||k===92?(e.consume(k),x):x(k)}}function Ut(e,n,t,r,i,l){const o=this;let a=0,s;return u;function u(h){return e.enter(r),e.enter(i),e.consume(h),e.exit(i),e.enter(l),c}function c(h){return a>999||h===null||h===91||h===93&&!s||h===94&&!a&&"_hiddenFootnoteSupport"in o.parser.constructs?t(h):h===93?(e.exit(l),e.enter(i),e.consume(h),e.exit(i),e.exit(r),n):F(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),m(h))}function m(h){return h===null||h===91||h===93||F(h)||a++>999?(e.exit("chunkString"),c(h)):(e.consume(h),s||(s=!N(h)),h===92?d:m)}function d(h){return h===91||h===92||h===93?(e.consume(h),a++,m):m(h)}}function Vt(e,n,t,r,i,l){let o;return a;function a(d){return d===34||d===39||d===40?(e.enter(r),e.enter(i),e.consume(d),e.exit(i),o=d===40?41:d,s):t(d)}function s(d){return d===o?(e.enter(i),e.consume(d),e.exit(i),e.exit(r),n):(e.enter(l),u(d))}function u(d){return d===o?(e.exit(l),s(o)):d===null?t(d):F(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),V(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(d))}function c(d){return d===o||d===null||F(d)?(e.exit("chunkString"),u(d)):(e.consume(d),d===92?m:c)}function m(d){return d===o||d===92?(e.consume(d),c):c(d)}}function Me(e,n){let t;return r;function r(i){return F(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t=!0,r):N(i)?V(e,r,t?"linePrefix":"lineSuffix")(i):n(i)}}function Fe(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Hi={name:"definition",tokenize:Vi},Ui={tokenize:$i,partial:!0};function Vi(e,n,t){const r=this;let i;return l;function l(h){return e.enter("definition"),o(h)}function o(h){return Ut.call(r,e,a,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function a(h){return i=Fe(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),s):t(h)}function s(h){return Z(h)?Me(e,u)(h):u(h)}function u(h){return Ht(e,c,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function c(h){return e.attempt(Ui,m,m)(h)}function m(h){return N(h)?V(e,d,"whitespace")(h):d(h)}function d(h){return h===null||F(h)?(e.exit("definition"),r.parser.defined.push(i),n(h)):t(h)}}function $i(e,n,t){return r;function r(a){return Z(a)?Me(e,i)(a):t(a)}function i(a){return Vt(e,l,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function l(a){return N(a)?V(e,o,"whitespace")(a):o(a)}function o(a){return a===null||F(a)?n(a):t(a)}}const qi={name:"hardBreakEscape",tokenize:Wi};function Wi(e,n,t){return r;function r(l){return e.enter("hardBreakEscape"),e.consume(l),i}function i(l){return F(l)?(e.exit("hardBreakEscape"),n(l)):t(l)}}const Xi={name:"headingAtx",tokenize:Yi,resolve:Qi};function Qi(e,n){let t=e.length-2,r=3,i,l;return e[r][1].type==="whitespace"&&(r+=2),t-2>r&&e[t][1].type==="whitespace"&&(t-=2),e[t][1].type==="atxHeadingSequence"&&(r===t-1||t-4>r&&e[t-2][1].type==="whitespace")&&(t-=r+1===t?2:4),t>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[t][1].end},l={type:"chunkText",start:e[r][1].start,end:e[t][1].end,contentType:"text"},fe(e,r,t-r+1,[["enter",i,n],["enter",l,n],["exit",l,n],["exit",i,n]])),e}function Yi(e,n,t){let r=0;return i;function i(c){return e.enter("atxHeading"),l(c)}function l(c){return e.enter("atxHeadingSequence"),o(c)}function o(c){return c===35&&r++<6?(e.consume(c),o):c===null||Z(c)?(e.exit("atxHeadingSequence"),a(c)):t(c)}function a(c){return c===35?(e.enter("atxHeadingSequence"),s(c)):c===null||F(c)?(e.exit("atxHeading"),n(c)):N(c)?V(e,a,"whitespace")(c):(e.enter("atxHeadingText"),u(c))}function s(c){return c===35?(e.consume(c),s):(e.exit("atxHeadingSequence"),a(c))}function u(c){return c===null||c===35||Z(c)?(e.exit("atxHeadingText"),a(c)):(e.consume(c),u)}}const Ki=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],ft=["pre","script","style","textarea"],Gi={name:"htmlFlow",tokenize:nl,resolveTo:el,concrete:!0},Ji={tokenize:rl,partial:!0},Zi={tokenize:tl,partial:!0};function el(e){let n=e.length;for(;n--&&!(e[n][0]==="enter"&&e[n][1].type==="htmlFlow"););return n>1&&e[n-2][1].type==="linePrefix"&&(e[n][1].start=e[n-2][1].start,e[n+1][1].start=e[n-2][1].start,e.splice(n-2,2)),e}function nl(e,n,t){const r=this;let i,l,o,a,s;return u;function u(f){return c(f)}function c(f){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(f),m}function m(f){return f===33?(e.consume(f),d):f===47?(e.consume(f),l=!0,x):f===63?(e.consume(f),i=3,r.interrupt?n:p):he(f)?(e.consume(f),o=String.fromCharCode(f),C):t(f)}function d(f){return f===45?(e.consume(f),i=2,h):f===91?(e.consume(f),i=5,a=0,b):he(f)?(e.consume(f),i=4,r.interrupt?n:p):t(f)}function h(f){return f===45?(e.consume(f),r.interrupt?n:p):t(f)}function b(f){const se="CDATA[";return f===se.charCodeAt(a++)?(e.consume(f),a===se.length?r.interrupt?n:P:b):t(f)}function x(f){return he(f)?(e.consume(f),o=String.fromCharCode(f),C):t(f)}function C(f){if(f===null||f===47||f===62||Z(f)){const se=f===47,Ee=o.toLowerCase();return!se&&!l&&ft.includes(Ee)?(i=1,r.interrupt?n(f):P(f)):Ki.includes(o.toLowerCase())?(i=6,se?(e.consume(f),k):r.interrupt?n(f):P(f)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?t(f):l?L(f):E(f))}return f===45||te(f)?(e.consume(f),o+=String.fromCharCode(f),C):t(f)}function k(f){return f===62?(e.consume(f),r.interrupt?n:P):t(f)}function L(f){return N(f)?(e.consume(f),L):Q(f)}function E(f){return f===47?(e.consume(f),Q):f===58||f===95||he(f)?(e.consume(f),z):N(f)?(e.consume(f),E):Q(f)}function z(f){return f===45||f===46||f===58||f===95||te(f)?(e.consume(f),z):R(f)}function R(f){return f===61?(e.consume(f),g):N(f)?(e.consume(f),R):E(f)}function g(f){return f===null||f===60||f===61||f===62||f===96?t(f):f===34||f===39?(e.consume(f),s=f,T):N(f)?(e.consume(f),g):D(f)}function T(f){return f===s?(e.consume(f),s=null,M):f===null||F(f)?t(f):(e.consume(f),T)}function D(f){return f===null||f===34||f===39||f===47||f===60||f===61||f===62||f===96||Z(f)?R(f):(e.consume(f),D)}function M(f){return f===47||f===62||N(f)?E(f):t(f)}function Q(f){return f===62?(e.consume(f),A):t(f)}function A(f){return f===null||F(f)?P(f):N(f)?(e.consume(f),A):t(f)}function P(f){return f===45&&i===2?(e.consume(f),G):f===60&&i===1?(e.consume(f),Y):f===62&&i===4?(e.consume(f),ue):f===63&&i===3?(e.consume(f),p):f===93&&i===5?(e.consume(f),me):F(f)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(Ji,de,$)(f)):f===null||F(f)?(e.exit("htmlFlowData"),$(f)):(e.consume(f),P)}function $(f){return e.check(Zi,q,de)(f)}function q(f){return e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),B}function B(f){return f===null||F(f)?$(f):(e.enter("htmlFlowData"),P(f))}function G(f){return f===45?(e.consume(f),p):P(f)}function Y(f){return f===47?(e.consume(f),o="",ae):P(f)}function ae(f){if(f===62){const se=o.toLowerCase();return ft.includes(se)?(e.consume(f),ue):P(f)}return he(f)&&o.length<8?(e.consume(f),o+=String.fromCharCode(f),ae):P(f)}function me(f){return f===93?(e.consume(f),p):P(f)}function p(f){return f===62?(e.consume(f),ue):f===45&&i===2?(e.consume(f),p):P(f)}function ue(f){return f===null||F(f)?(e.exit("htmlFlowData"),de(f)):(e.consume(f),ue)}function de(f){return e.exit("htmlFlow"),n(f)}}function tl(e,n,t){const r=this;return i;function i(o){return F(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),l):t(o)}function l(o){return r.parser.lazy[r.now().line]?t(o):n(o)}}function rl(e,n,t){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Xe,n,t)}}const il={name:"htmlText",tokenize:ll};function ll(e,n,t){const r=this;let i,l,o;return a;function a(p){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(p),s}function s(p){return p===33?(e.consume(p),u):p===47?(e.consume(p),R):p===63?(e.consume(p),E):he(p)?(e.consume(p),D):t(p)}function u(p){return p===45?(e.consume(p),c):p===91?(e.consume(p),l=0,b):he(p)?(e.consume(p),L):t(p)}function c(p){return p===45?(e.consume(p),h):t(p)}function m(p){return p===null?t(p):p===45?(e.consume(p),d):F(p)?(o=m,Y(p)):(e.consume(p),m)}function d(p){return p===45?(e.consume(p),h):m(p)}function h(p){return p===62?G(p):p===45?d(p):m(p)}function b(p){const ue="CDATA[";return p===ue.charCodeAt(l++)?(e.consume(p),l===ue.length?x:b):t(p)}function x(p){return p===null?t(p):p===93?(e.consume(p),C):F(p)?(o=x,Y(p)):(e.consume(p),x)}function C(p){return p===93?(e.consume(p),k):x(p)}function k(p){return p===62?G(p):p===93?(e.consume(p),k):x(p)}function L(p){return p===null||p===62?G(p):F(p)?(o=L,Y(p)):(e.consume(p),L)}function E(p){return p===null?t(p):p===63?(e.consume(p),z):F(p)?(o=E,Y(p)):(e.consume(p),E)}function z(p){return p===62?G(p):E(p)}function R(p){return he(p)?(e.consume(p),g):t(p)}function g(p){return p===45||te(p)?(e.consume(p),g):T(p)}function T(p){return F(p)?(o=T,Y(p)):N(p)?(e.consume(p),T):G(p)}function D(p){return p===45||te(p)?(e.consume(p),D):p===47||p===62||Z(p)?M(p):t(p)}function M(p){return p===47?(e.consume(p),G):p===58||p===95||he(p)?(e.consume(p),Q):F(p)?(o=M,Y(p)):N(p)?(e.consume(p),M):G(p)}function Q(p){return p===45||p===46||p===58||p===95||te(p)?(e.consume(p),Q):A(p)}function A(p){return p===61?(e.consume(p),P):F(p)?(o=A,Y(p)):N(p)?(e.consume(p),A):M(p)}function P(p){return p===null||p===60||p===61||p===62||p===96?t(p):p===34||p===39?(e.consume(p),i=p,$):F(p)?(o=P,Y(p)):N(p)?(e.consume(p),P):(e.consume(p),q)}function $(p){return p===i?(e.consume(p),i=void 0,B):p===null?t(p):F(p)?(o=$,Y(p)):(e.consume(p),$)}function q(p){return p===null||p===34||p===39||p===60||p===61||p===96?t(p):p===47||p===62||Z(p)?M(p):(e.consume(p),q)}function B(p){return p===47||p===62||Z(p)?M(p):t(p)}function G(p){return p===62?(e.consume(p),e.exit("htmlTextData"),e.exit("htmlText"),n):t(p)}function Y(p){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),ae}function ae(p){return N(p)?V(e,me,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(p):me(p)}function me(p){return e.enter("htmlTextData"),o(p)}}const Fn={name:"labelEnd",tokenize:pl,resolveTo:cl,resolveAll:sl},ol={tokenize:hl},al={tokenize:fl},ul={tokenize:ml};function sl(e){let n=-1;for(;++n<e.length;){const t=e[n][1];(t.type==="labelImage"||t.type==="labelLink"||t.type==="labelEnd")&&(e.splice(n+1,t.type==="labelImage"?4:2),t.type="data",n++)}return e}function cl(e,n){let t=e.length,r=0,i,l,o,a;for(;t--;)if(i=e[t][1],l){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;e[t][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(o){if(e[t][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(l=t,i.type!=="labelLink")){r=2;break}}else i.type==="labelEnd"&&(o=t);const s={type:e[l][1].type==="labelLink"?"link":"image",start:Object.assign({},e[l][1].start),end:Object.assign({},e[e.length-1][1].end)},u={type:"label",start:Object.assign({},e[l][1].start),end:Object.assign({},e[o][1].end)},c={type:"labelText",start:Object.assign({},e[l+r+2][1].end),end:Object.assign({},e[o-2][1].start)};return a=[["enter",s,n],["enter",u,n]],a=re(a,e.slice(l+1,l+r+3)),a=re(a,[["enter",c,n]]),a=re(a,Tn(n.parser.constructs.insideSpan.null,e.slice(l+r+4,o-3),n)),a=re(a,[["exit",c,n],e[o-2],e[o-1],["exit",u,n]]),a=re(a,e.slice(o+1)),a=re(a,[["exit",s,n]]),fe(e,l,e.length,a),e}function pl(e,n,t){const r=this;let i=r.events.length,l,o;for(;i--;)if((r.events[i][1].type==="labelImage"||r.events[i][1].type==="labelLink")&&!r.events[i][1]._balanced){l=r.events[i][1];break}return a;function a(d){return l?l._inactive?m(d):(o=r.parser.defined.includes(Fe(r.sliceSerialize({start:l.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(d),e.exit("labelMarker"),e.exit("labelEnd"),s):t(d)}function s(d){return d===40?e.attempt(ol,c,o?c:m)(d):d===91?e.attempt(al,c,o?u:m)(d):o?c(d):m(d)}function u(d){return e.attempt(ul,c,m)(d)}function c(d){return n(d)}function m(d){return l._balanced=!0,t(d)}}function hl(e,n,t){return r;function r(m){return e.enter("resource"),e.enter("resourceMarker"),e.consume(m),e.exit("resourceMarker"),i}function i(m){return Z(m)?Me(e,l)(m):l(m)}function l(m){return m===41?c(m):Ht(e,o,a,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(m)}function o(m){return Z(m)?Me(e,s)(m):c(m)}function a(m){return t(m)}function s(m){return m===34||m===39||m===40?Vt(e,u,t,"resourceTitle","resourceTitleMarker","resourceTitleString")(m):c(m)}function u(m){return Z(m)?Me(e,c)(m):c(m)}function c(m){return m===41?(e.enter("resourceMarker"),e.consume(m),e.exit("resourceMarker"),e.exit("resource"),n):t(m)}}function fl(e,n,t){const r=this;return i;function i(a){return Ut.call(r,e,l,o,"reference","referenceMarker","referenceString")(a)}function l(a){return r.parser.defined.includes(Fe(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?n(a):t(a)}function o(a){return t(a)}}function ml(e,n,t){return r;function r(l){return e.enter("reference"),e.enter("referenceMarker"),e.consume(l),e.exit("referenceMarker"),i}function i(l){return l===93?(e.enter("referenceMarker"),e.consume(l),e.exit("referenceMarker"),e.exit("reference"),n):t(l)}}const dl={name:"labelStartImage",tokenize:gl,resolveAll:Fn.resolveAll};function gl(e,n,t){const r=this;return i;function i(a){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(a),e.exit("labelImageMarker"),l}function l(a){return a===91?(e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelImage"),o):t(a)}function o(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?t(a):n(a)}}const yl={name:"labelStartLink",tokenize:xl,resolveAll:Fn.resolveAll};function xl(e,n,t){const r=this;return i;function i(o){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(o),e.exit("labelMarker"),e.exit("labelLink"),l}function l(o){return o===94&&"_hiddenFootnoteSupport"in r.parser.constructs?t(o):n(o)}}const dn={name:"lineEnding",tokenize:kl};function kl(e,n){return t;function t(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),V(e,n,"linePrefix")}}const qe={name:"thematicBreak",tokenize:wl};function wl(e,n,t){let r=0,i;return l;function l(u){return e.enter("thematicBreak"),o(u)}function o(u){return i=u,a(u)}function a(u){return u===i?(e.enter("thematicBreakSequence"),s(u)):r>=3&&(u===null||F(u))?(e.exit("thematicBreak"),n(u)):t(u)}function s(u){return u===i?(e.consume(u),r++,s):(e.exit("thematicBreakSequence"),N(u)?V(e,a,"whitespace")(u):a(u))}}const J={name:"list",tokenize:Cl,continuation:{tokenize:El},exit:Pl},bl={tokenize:Tl,partial:!0},Sl={tokenize:Al,partial:!0};function Cl(e,n,t){const r=this,i=r.events[r.events.length-1];let l=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,o=0;return a;function a(h){const b=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(b==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Sn(h)){if(r.containerState.type||(r.containerState.type=b,e.enter(b,{_container:!0})),b==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(qe,t,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),s(h)}return t(h)}function s(h){return Sn(h)&&++o<10?(e.consume(h),s):(!r.interrupt||o<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):t(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Xe,r.interrupt?t:c,e.attempt(bl,d,m))}function c(h){return r.containerState.initialBlankLine=!0,l++,d(h)}function m(h){return N(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),d):t(h)}function d(h){return r.containerState.size=l+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,n(h)}}function El(e,n,t){const r=this;return r.containerState._closeFlow=void 0,e.check(Xe,i,l);function i(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,V(e,n,"listItemIndent",r.containerState.size+1)(a)}function l(a){return r.containerState.furtherBlankLines||!N(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Sl,n,o)(a))}function o(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,V(e,e.attempt(J,n,t),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function Al(e,n,t){const r=this;return V(e,i,"listItemIndent",r.containerState.size+1);function i(l){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?n(l):t(l)}}function Pl(e){e.exit(this.containerState.type)}function Tl(e,n,t){const r=this;return V(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(l){const o=r.events[r.events.length-1];return!N(l)&&o&&o[1].type==="listItemPrefixWhitespace"?n(l):t(l)}}const mt={name:"setextUnderline",tokenize:Fl,resolveTo:Il};function Il(e,n){let t=e.length,r,i,l;for(;t--;)if(e[t][0]==="enter"){if(e[t][1].type==="content"){r=t;break}e[t][1].type==="paragraph"&&(i=t)}else e[t][1].type==="content"&&e.splice(t,1),!l&&e[t][1].type==="definition"&&(l=t);const o={type:"setextHeading",start:Object.assign({},e[i][1].start),end:Object.assign({},e[e.length-1][1].end)};return e[i][1].type="setextHeadingText",l?(e.splice(i,0,["enter",o,n]),e.splice(l+1,0,["exit",e[r][1],n]),e[r][1].end=Object.assign({},e[l][1].end)):e[r][1]=o,e.push(["exit",o,n]),e}function Fl(e,n,t){const r=this;let i;return l;function l(u){let c=r.events.length,m;for(;c--;)if(r.events[c][1].type!=="lineEnding"&&r.events[c][1].type!=="linePrefix"&&r.events[c][1].type!=="content"){m=r.events[c][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||m)?(e.enter("setextHeadingLine"),i=u,o(u)):t(u)}function o(u){return e.enter("setextHeadingLineSequence"),a(u)}function a(u){return u===i?(e.consume(u),a):(e.exit("setextHeadingLineSequence"),N(u)?V(e,s,"lineSuffix")(u):s(u))}function s(u){return u===null||F(u)?(e.exit("setextHeadingLine"),n(u)):t(u)}}const vl={tokenize:Ol};function Ol(e){const n=this,t=e.attempt(Xe,r,e.attempt(this.parser.constructs.flowInitial,i,V(e,e.attempt(this.parser.constructs.flow,i,e.attempt(Bi,i)),"linePrefix")));return t;function r(l){if(l===null){e.consume(l);return}return e.enter("lineEndingBlank"),e.consume(l),e.exit("lineEndingBlank"),n.currentConstruct=void 0,t}function i(l){if(l===null){e.consume(l);return}return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),n.currentConstruct=void 0,t}}const Ll={resolveAll:qt()},Dl=$t("string"),zl=$t("text");function $t(e){return{tokenize:n,resolveAll:qt(e==="text"?Rl:void 0)};function n(t){const r=this,i=this.parser.constructs[e],l=t.attempt(i,o,a);return o;function o(c){return u(c)?l(c):a(c)}function a(c){if(c===null){t.consume(c);return}return t.enter("data"),t.consume(c),s}function s(c){return u(c)?(t.exit("data"),l(c)):(t.consume(c),s)}function u(c){if(c===null)return!0;const m=i[c];let d=-1;if(m)for(;++d<m.length;){const h=m[d];if(!h.previous||h.previous.call(r,r.previous))return!0}return!1}}}function qt(e){return n;function n(t,r){let i=-1,l;for(;++i<=t.length;)l===void 0?t[i]&&t[i][1].type==="data"&&(l=i,i++):(!t[i]||t[i][1].type!=="data")&&(i!==l+2&&(t[l][1].end=t[i-1][1].end,t.splice(l+2,i-l-2),i=l+2),l=void 0);return e?e(t,r):t}}function Rl(e,n){let t=0;for(;++t<=e.length;)if((t===e.length||e[t][1].type==="lineEnding")&&e[t-1][1].type==="data"){const r=e[t-1][1],i=n.sliceStream(r);let l=i.length,o=-1,a=0,s;for(;l--;){const u=i[l];if(typeof u=="string"){for(o=u.length;u.charCodeAt(o-1)===32;)a++,o--;if(o)break;o=-1}else if(u===-2)s=!0,a++;else if(u!==-1){l++;break}}if(a){const u={type:t===e.length||s||a<2?"lineSuffix":"hardBreakTrailing",start:{line:r.end.line,column:r.end.column-a,offset:r.end.offset-a,_index:r.start._index+l,_bufferIndex:l?o:r.start._bufferIndex+o},end:Object.assign({},r.end)};r.end=Object.assign({},u.start),r.start.offset===r.end.offset?Object.assign(r,u):(e.splice(t,0,["enter",u,n],["exit",u,n]),t+=2)}t++}return e}function Bl(e,n,t){let r=Object.assign(t?Object.assign({},t):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1});const i={},l=[];let o=[],a=[];const s={consume:L,enter:E,exit:z,attempt:T(R),check:T(g),interrupt:T(g,{interrupt:!0})},u={previous:null,code:null,containerState:{},events:[],parser:e,sliceStream:h,sliceSerialize:d,now:b,defineSkip:x,write:m};let c=n.tokenize.call(u,s);return n.resolveAll&&l.push(n),u;function m(A){return o=re(o,A),C(),o[o.length-1]!==null?[]:(D(n,0),u.events=Tn(l,u.events,u),u.events)}function d(A,P){return Ml(h(A),P)}function h(A){return Nl(o,A)}function b(){const{line:A,column:P,offset:$,_index:q,_bufferIndex:B}=r;return{line:A,column:P,offset:$,_index:q,_bufferIndex:B}}function x(A){i[A.line]=A.column,Q()}function C(){let A;for(;r._index<o.length;){const P=o[r._index];if(typeof P=="string")for(A=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===A&&r._bufferIndex<P.length;)k(P.charCodeAt(r._bufferIndex));else k(P)}}function k(A){c=c(A)}function L(A){F(A)?(r.line++,r.column=1,r.offset+=A===-3?2:1,Q()):A!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),u.previous=A}function E(A,P){const $=P||{};return $.type=A,$.start=b(),u.events.push(["enter",$,u]),a.push($),$}function z(A){const P=a.pop();return P.end=b(),u.events.push(["exit",P,u]),P}function R(A,P){D(A,P.from)}function g(A,P){P.restore()}function T(A,P){return $;function $(q,B,G){let Y,ae,me,p;return Array.isArray(q)?de(q):"tokenize"in q?de([q]):ue(q);function ue(K){return Ae;function Ae(xe){const Pe=xe!==null&&K[xe],Te=xe!==null&&K.null,on=[...Array.isArray(Pe)?Pe:Pe?[Pe]:[],...Array.isArray(Te)?Te:Te?[Te]:[]];return de(on)(xe)}}function de(K){return Y=K,ae=0,K.length===0?G:f(K[ae])}function f(K){return Ae;function Ae(xe){return p=M(),me=K,K.partial||(u.currentConstruct=K),K.name&&u.parser.constructs.disable.null.includes(K.name)?Ee():K.tokenize.call(P?Object.assign(Object.create(u),P):u,s,se,Ee)(xe)}}function se(K){return A(me,p),B}function Ee(K){return p.restore(),++ae<Y.length?f(Y[ae]):G}}}function D(A,P){A.resolveAll&&!l.includes(A)&&l.push(A),A.resolve&&fe(u.events,P,u.events.length-P,A.resolve(u.events.slice(P),u)),A.resolveTo&&(u.events=A.resolveTo(u.events,u))}function M(){const A=b(),P=u.previous,$=u.currentConstruct,q=u.events.length,B=Array.from(a);return{restore:G,from:q};function G(){r=A,u.previous=P,u.currentConstruct=$,u.events.length=q,a=B,Q()}}function Q(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function Nl(e,n){const t=n.start._index,r=n.start._bufferIndex,i=n.end._index,l=n.end._bufferIndex;let o;if(t===i)o=[e[t].slice(r,l)];else{if(o=e.slice(t,i),r>-1){const a=o[0];typeof a=="string"?o[0]=a.slice(r):o.shift()}l>0&&o.push(e[i].slice(0,l))}return o}function Ml(e,n){let t=-1;const r=[];let i;for(;++t<e.length;){const l=e[t];let o;if(typeof l=="string")o=l;else switch(l){case-5:{o="\r";break}case-4:{o=`
|
|
7
|
+
`;break}case-3:{o=`\r
|
|
8
|
+
`;break}case-2:{o=n?" ":" ";break}case-1:{if(!n&&i)continue;o=" ";break}default:o=String.fromCharCode(l)}i=l===-2,r.push(o)}return r.join("")}const _l={42:J,43:J,45:J,48:J,49:J,50:J,51:J,52:J,53:J,54:J,55:J,56:J,57:J,62:Nt},jl={91:Hi},Hl={[-2]:mn,[-1]:mn,32:mn},Ul={35:Xi,42:qe,45:[mt,qe],60:Gi,61:mt,95:qe,96:ht,126:ht},Vl={38:_t,92:Mt},$l={[-5]:dn,[-4]:dn,[-3]:dn,33:dl,38:_t,42:Cn,60:[xi,il],91:yl,92:[qi,Mt],93:Fn,95:Cn,96:Oi},ql={null:[Cn,Ll]},Wl={null:[42,95]},Xl={null:[]},Ql=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:Wl,contentInitial:jl,disable:Xl,document:_l,flow:Ul,flowInitial:Hl,insideSpan:ql,string:Vl,text:$l},Symbol.toStringTag,{value:"Module"}));function Yl(e){const t=ti([Ql,...(e||{}).extensions||[]]),r={defined:[],lazy:{},constructs:t,content:i(pi),document:i(fi),flow:i(vl),string:i(Dl),text:i(zl)};return r;function i(l){return o;function o(a){return Bl(r,l,a)}}}const dt=/[\0\t\n\r]/g;function Kl(){let e=1,n="",t=!0,r;return i;function i(l,o,a){const s=[];let u,c,m,d,h;for(l=n+l.toString(o),m=0,n="",t&&(l.charCodeAt(0)===65279&&m++,t=void 0);m<l.length;){if(dt.lastIndex=m,u=dt.exec(l),d=u&&u.index!==void 0?u.index:l.length,h=l.charCodeAt(d),!u){n=l.slice(m);break}if(h===10&&m===d&&r)s.push(-3),r=void 0;else switch(r&&(s.push(-5),r=void 0),m<d&&(s.push(l.slice(m,d)),e+=d-m),h){case 0:{s.push(65533),e++;break}case 9:{for(c=Math.ceil(e/4)*4,s.push(-2);e++<c;)s.push(-1);break}case 10:{s.push(-4),e=1;break}default:r=!0,e=1}m=d+1}return a&&(r&&s.push(-5),n&&s.push(n),s.push(null)),s}}function Gl(e){for(;!jt(e););return e}function Wt(e,n){const t=Number.parseInt(e,n);return t<9||t===11||t>13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(t&65535)===65535||(t&65535)===65534||t>1114111?"�":String.fromCharCode(t)}const Jl=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Zl(e){return e.replace(Jl,eo)}function eo(e,n,t){if(n)return n;if(t.charCodeAt(0)===35){const i=t.charCodeAt(1),l=i===120||i===88;return Wt(t.slice(l?2:1),l?16:10)}return In(t)||e}const Xt={}.hasOwnProperty,no=function(e,n,t){return typeof n!="string"&&(t=n,n=void 0),to(t)(Gl(Yl(t).document().write(Kl()(e,n,!0))))};function to(e){const n={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:a(Un),autolinkProtocol:A,autolinkEmail:A,atxHeading:a(_n),blockQuote:a(on),characterEscape:A,characterReference:A,codeFenced:a(Mn),codeFencedFenceInfo:s,codeFencedFenceMeta:s,codeIndented:a(Mn,s),codeText:a(kr,s),codeTextData:A,data:A,codeFlowValue:A,definition:a(wr),definitionDestinationString:s,definitionLabelString:s,definitionTitleString:s,emphasis:a(br),hardBreakEscape:a(jn),hardBreakTrailing:a(jn),htmlFlow:a(Hn,s),htmlFlowData:A,htmlText:a(Hn,s),htmlTextData:A,image:a(Sr),label:s,link:a(Un),listItem:a(Cr),listItemValue:b,listOrdered:a(Vn,h),listUnordered:a(Vn),paragraph:a(Er),reference:Ee,referenceString:s,resourceDestinationString:s,resourceTitleString:s,setextHeading:a(_n),strong:a(Ar),thematicBreak:a(Tr)},exit:{atxHeading:c(),atxHeadingSequence:T,autolink:c(),autolinkEmail:Te,autolinkProtocol:Pe,blockQuote:c(),characterEscapeValue:P,characterReferenceMarkerHexadecimal:Ae,characterReferenceMarkerNumeric:Ae,characterReferenceValue:xe,codeFenced:c(L),codeFencedFence:k,codeFencedFenceInfo:x,codeFencedFenceMeta:C,codeFlowValue:P,codeIndented:c(E),codeText:c(Y),codeTextData:P,data:P,definition:c(),definitionDestinationString:g,definitionLabelString:z,definitionTitleString:R,emphasis:c(),hardBreakEscape:c(q),hardBreakTrailing:c(q),htmlFlow:c(B),htmlFlowData:P,htmlText:c(G),htmlTextData:P,image:c(me),label:ue,labelText:p,lineEnding:$,link:c(ae),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:K,resourceDestinationString:de,resourceTitleString:f,resource:se,setextHeading:c(Q),setextHeadingLineSequence:M,setextHeadingText:D,strong:c(),thematicBreak:c()}};Qt(n,(e||{}).mdastExtensions||[]);const t={};return r;function r(y){let S={type:"root",children:[]};const I={stack:[S],tokenStack:[],config:n,enter:u,exit:m,buffer:s,resume:d,setData:l,getData:o},j=[];let H=-1;for(;++H<y.length;)if(y[H][1].type==="listOrdered"||y[H][1].type==="listUnordered")if(y[H][0]==="enter")j.push(H);else{const ce=j.pop();H=i(y,ce,H)}for(H=-1;++H<y.length;){const ce=n[y[H][0]];Xt.call(ce,y[H][1].type)&&ce[y[H][1].type].call(Object.assign({sliceSerialize:y[H][2].sliceSerialize},I),y[H][1])}if(I.tokenStack.length>0){const ce=I.tokenStack[I.tokenStack.length-1];(ce[1]||gt).call(I,void 0,ce[0])}for(S.position={start:we(y.length>0?y[0][1].start:{line:1,column:1,offset:0}),end:we(y.length>0?y[y.length-2][1].end:{line:1,column:1,offset:0})},H=-1;++H<n.transforms.length;)S=n.transforms[H](S)||S;return S}function i(y,S,I){let j=S-1,H=-1,ce=!1,ke,ge,De,ze;for(;++j<=I;){const W=y[j];if(W[1].type==="listUnordered"||W[1].type==="listOrdered"||W[1].type==="blockQuote"?(W[0]==="enter"?H++:H--,ze=void 0):W[1].type==="lineEndingBlank"?W[0]==="enter"&&(ke&&!ze&&!H&&!De&&(De=j),ze=void 0):W[1].type==="linePrefix"||W[1].type==="listItemValue"||W[1].type==="listItemMarker"||W[1].type==="listItemPrefix"||W[1].type==="listItemPrefixWhitespace"||(ze=void 0),!H&&W[0]==="enter"&&W[1].type==="listItemPrefix"||H===-1&&W[0]==="exit"&&(W[1].type==="listUnordered"||W[1].type==="listOrdered")){if(ke){let an=j;for(ge=void 0;an--;){const ye=y[an];if(ye[1].type==="lineEnding"||ye[1].type==="lineEndingBlank"){if(ye[0]==="exit")continue;ge&&(y[ge][1].type="lineEndingBlank",ce=!0),ye[1].type="lineEnding",ge=an}else if(!(ye[1].type==="linePrefix"||ye[1].type==="blockQuotePrefix"||ye[1].type==="blockQuotePrefixWhitespace"||ye[1].type==="blockQuoteMarker"||ye[1].type==="listItemIndent"))break}De&&(!ge||De<ge)&&(ke._spread=!0),ke.end=Object.assign({},ge?y[ge][1].start:W[1].end),y.splice(ge||j,0,["exit",ke,W[2]]),j++,I++}W[1].type==="listItemPrefix"&&(ke={type:"listItem",_spread:!1,start:Object.assign({},W[1].start),end:void 0},y.splice(j,0,["enter",ke,W[2]]),j++,I++,De=void 0,ze=!0)}}return y[S][1]._spread=ce,I}function l(y,S){t[y]=S}function o(y){return t[y]}function a(y,S){return I;function I(j){u.call(this,y(j),j),S&&S.call(this,j)}}function s(){this.stack.push({type:"fragment",children:[]})}function u(y,S,I){return this.stack[this.stack.length-1].children.push(y),this.stack.push(y),this.tokenStack.push([S,I]),y.position={start:we(S.start)},y}function c(y){return S;function S(I){y&&y.call(this,I),m.call(this,I)}}function m(y,S){const I=this.stack.pop(),j=this.tokenStack.pop();if(j)j[0].type!==y.type&&(S?S.call(this,y,j[0]):(j[1]||gt).call(this,y,j[0]));else throw new Error("Cannot close `"+y.type+"` ("+Ne({start:y.start,end:y.end})+"): it’s not open");return I.position.end=we(y.end),I}function d(){return ei(this.stack.pop())}function h(){l("expectingFirstListItemValue",!0)}function b(y){if(o("expectingFirstListItemValue")){const S=this.stack[this.stack.length-2];S.start=Number.parseInt(this.sliceSerialize(y),10),l("expectingFirstListItemValue")}}function x(){const y=this.resume(),S=this.stack[this.stack.length-1];S.lang=y}function C(){const y=this.resume(),S=this.stack[this.stack.length-1];S.meta=y}function k(){o("flowCodeInside")||(this.buffer(),l("flowCodeInside",!0))}function L(){const y=this.resume(),S=this.stack[this.stack.length-1];S.value=y.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),l("flowCodeInside")}function E(){const y=this.resume(),S=this.stack[this.stack.length-1];S.value=y.replace(/(\r?\n|\r)$/g,"")}function z(y){const S=this.resume(),I=this.stack[this.stack.length-1];I.label=S,I.identifier=Fe(this.sliceSerialize(y)).toLowerCase()}function R(){const y=this.resume(),S=this.stack[this.stack.length-1];S.title=y}function g(){const y=this.resume(),S=this.stack[this.stack.length-1];S.url=y}function T(y){const S=this.stack[this.stack.length-1];if(!S.depth){const I=this.sliceSerialize(y).length;S.depth=I}}function D(){l("setextHeadingSlurpLineEnding",!0)}function M(y){const S=this.stack[this.stack.length-1];S.depth=this.sliceSerialize(y).charCodeAt(0)===61?1:2}function Q(){l("setextHeadingSlurpLineEnding")}function A(y){const S=this.stack[this.stack.length-1];let I=S.children[S.children.length-1];(!I||I.type!=="text")&&(I=Pr(),I.position={start:we(y.start)},S.children.push(I)),this.stack.push(I)}function P(y){const S=this.stack.pop();S.value+=this.sliceSerialize(y),S.position.end=we(y.end)}function $(y){const S=this.stack[this.stack.length-1];if(o("atHardBreak")){const I=S.children[S.children.length-1];I.position.end=we(y.end),l("atHardBreak");return}!o("setextHeadingSlurpLineEnding")&&n.canContainEols.includes(S.type)&&(A.call(this,y),P.call(this,y))}function q(){l("atHardBreak",!0)}function B(){const y=this.resume(),S=this.stack[this.stack.length-1];S.value=y}function G(){const y=this.resume(),S=this.stack[this.stack.length-1];S.value=y}function Y(){const y=this.resume(),S=this.stack[this.stack.length-1];S.value=y}function ae(){const y=this.stack[this.stack.length-1];if(o("inReference")){const S=o("referenceType")||"shortcut";y.type+="Reference",y.referenceType=S,delete y.url,delete y.title}else delete y.identifier,delete y.label;l("referenceType")}function me(){const y=this.stack[this.stack.length-1];if(o("inReference")){const S=o("referenceType")||"shortcut";y.type+="Reference",y.referenceType=S,delete y.url,delete y.title}else delete y.identifier,delete y.label;l("referenceType")}function p(y){const S=this.sliceSerialize(y),I=this.stack[this.stack.length-2];I.label=Zl(S),I.identifier=Fe(S).toLowerCase()}function ue(){const y=this.stack[this.stack.length-1],S=this.resume(),I=this.stack[this.stack.length-1];if(l("inReference",!0),I.type==="link"){const j=y.children;I.children=j}else I.alt=S}function de(){const y=this.resume(),S=this.stack[this.stack.length-1];S.url=y}function f(){const y=this.resume(),S=this.stack[this.stack.length-1];S.title=y}function se(){l("inReference")}function Ee(){l("referenceType","collapsed")}function K(y){const S=this.resume(),I=this.stack[this.stack.length-1];I.label=S,I.identifier=Fe(this.sliceSerialize(y)).toLowerCase(),l("referenceType","full")}function Ae(y){l("characterReferenceType",y.type)}function xe(y){const S=this.sliceSerialize(y),I=o("characterReferenceType");let j;I?(j=Wt(S,I==="characterReferenceMarkerNumeric"?10:16),l("characterReferenceType")):j=In(S);const H=this.stack.pop();H.value+=j,H.position.end=we(y.end)}function Pe(y){P.call(this,y);const S=this.stack[this.stack.length-1];S.url=this.sliceSerialize(y)}function Te(y){P.call(this,y);const S=this.stack[this.stack.length-1];S.url="mailto:"+this.sliceSerialize(y)}function on(){return{type:"blockquote",children:[]}}function Mn(){return{type:"code",lang:null,meta:null,value:""}}function kr(){return{type:"inlineCode",value:""}}function wr(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function br(){return{type:"emphasis",children:[]}}function _n(){return{type:"heading",depth:void 0,children:[]}}function jn(){return{type:"break"}}function Hn(){return{type:"html",value:""}}function Sr(){return{type:"image",title:null,url:"",alt:null}}function Un(){return{type:"link",title:null,url:"",children:[]}}function Vn(y){return{type:"list",ordered:y.type==="listOrdered",start:null,spread:y._spread,children:[]}}function Cr(y){return{type:"listItem",spread:y._spread,checked:null,children:[]}}function Er(){return{type:"paragraph",children:[]}}function Ar(){return{type:"strong",children:[]}}function Pr(){return{type:"text",value:""}}function Tr(){return{type:"thematicBreak"}}}function we(e){return{line:e.line,column:e.column,offset:e.offset}}function Qt(e,n){let t=-1;for(;++t<n.length;){const r=n[t];Array.isArray(r)?Qt(e,r):ro(e,r)}}function ro(e,n){let t;for(t in n)if(Xt.call(n,t)){if(t==="canContainEols"){const r=n[t];r&&e[t].push(...r)}else if(t==="transforms"){const r=n[t];r&&e[t].push(...r)}else if(t==="enter"||t==="exit"){const r=n[t];r&&Object.assign(e[t],r)}}}function gt(e,n){throw e?new Error("Cannot close `"+e.type+"` ("+Ne({start:e.start,end:e.end})+"): a different token (`"+n.type+"`, "+Ne({start:n.start,end:n.end})+") is open"):new Error("Cannot close document, a token (`"+n.type+"`, "+Ne({start:n.start,end:n.end})+") is still open")}function io(e){Object.assign(this,{Parser:t=>{const r=this.data("settings");return no(t,Object.assign({},r,e,{extensions:this.data("micromarkExtensions")||[],mdastExtensions:this.data("fromMarkdownExtensions")||[]}))}})}function lo(e,n){const t={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(n),!0)};return e.patch(n,t),e.applyData(n,t)}function oo(e,n){const t={type:"element",tagName:"br",properties:{},children:[]};return e.patch(n,t),[e.applyData(n,t),{type:"text",value:`
|
|
9
|
+
`}]}function ao(e,n){const t=n.value?n.value+`
|
|
10
|
+
`:"",r=n.lang?n.lang.match(/^[^ \t]+(?=[ \t]|$)/):null,i={};r&&(i.className=["language-"+r]);let l={type:"element",tagName:"code",properties:i,children:[{type:"text",value:t}]};return n.meta&&(l.data={meta:n.meta}),e.patch(n,l),l=e.applyData(n,l),l={type:"element",tagName:"pre",properties:{},children:[l]},e.patch(n,l),l}function uo(e,n){const t={type:"element",tagName:"del",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)}function so(e,n){const t={type:"element",tagName:"em",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)}function Oe(e){const n=[];let t=-1,r=0,i=0;for(;++t<e.length;){const l=e.charCodeAt(t);let o="";if(l===37&&te(e.charCodeAt(t+1))&&te(e.charCodeAt(t+2)))i=2;else if(l<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(l))||(o=String.fromCharCode(l));else if(l>55295&&l<57344){const a=e.charCodeAt(t+1);l<56320&&a>56319&&a<57344?(o=String.fromCharCode(l,a),i=1):o="�"}else o=String.fromCharCode(l);o&&(n.push(e.slice(r,t),encodeURIComponent(o)),r=t+i+1,o=""),i&&(t+=i,i=0)}return n.join("")+e.slice(r)}function Yt(e,n){const t=String(n.identifier).toUpperCase(),r=Oe(t.toLowerCase()),i=e.footnoteOrder.indexOf(t);let l;i===-1?(e.footnoteOrder.push(t),e.footnoteCounts[t]=1,l=e.footnoteOrder.length):(e.footnoteCounts[t]++,l=i+1);const o=e.footnoteCounts[t],a={type:"element",tagName:"a",properties:{href:"#"+e.clobberPrefix+"fn-"+r,id:e.clobberPrefix+"fnref-"+r+(o>1?"-"+o:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(l)}]};e.patch(n,a);const s={type:"element",tagName:"sup",properties:{},children:[a]};return e.patch(n,s),e.applyData(n,s)}function co(e,n){const t=e.footnoteById;let r=1;for(;r in t;)r++;const i=String(r);return t[i]={type:"footnoteDefinition",identifier:i,children:[{type:"paragraph",children:n.children}],position:n.position},Yt(e,{type:"footnoteReference",identifier:i,position:n.position})}function po(e,n){const t={type:"element",tagName:"h"+n.depth,properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)}function ho(e,n){if(e.dangerous){const t={type:"raw",value:n.value};return e.patch(n,t),e.applyData(n,t)}return null}function Kt(e,n){const t=n.referenceType;let r="]";if(t==="collapsed"?r+="[]":t==="full"&&(r+="["+(n.label||n.identifier)+"]"),n.type==="imageReference")return{type:"text",value:"!["+n.alt+r};const i=e.all(n),l=i[0];l&&l.type==="text"?l.value="["+l.value:i.unshift({type:"text",value:"["});const o=i[i.length-1];return o&&o.type==="text"?o.value+=r:i.push({type:"text",value:r}),i}function fo(e,n){const t=e.definition(n.identifier);if(!t)return Kt(e,n);const r={src:Oe(t.url||""),alt:n.alt};t.title!==null&&t.title!==void 0&&(r.title=t.title);const i={type:"element",tagName:"img",properties:r,children:[]};return e.patch(n,i),e.applyData(n,i)}function mo(e,n){const t={src:Oe(n.url)};n.alt!==null&&n.alt!==void 0&&(t.alt=n.alt),n.title!==null&&n.title!==void 0&&(t.title=n.title);const r={type:"element",tagName:"img",properties:t,children:[]};return e.patch(n,r),e.applyData(n,r)}function go(e,n){const t={type:"text",value:n.value.replace(/\r?\n|\r/g," ")};e.patch(n,t);const r={type:"element",tagName:"code",properties:{},children:[t]};return e.patch(n,r),e.applyData(n,r)}function yo(e,n){const t=e.definition(n.identifier);if(!t)return Kt(e,n);const r={href:Oe(t.url||"")};t.title!==null&&t.title!==void 0&&(r.title=t.title);const i={type:"element",tagName:"a",properties:r,children:e.all(n)};return e.patch(n,i),e.applyData(n,i)}function xo(e,n){const t={href:Oe(n.url)};n.title!==null&&n.title!==void 0&&(t.title=n.title);const r={type:"element",tagName:"a",properties:t,children:e.all(n)};return e.patch(n,r),e.applyData(n,r)}function ko(e,n,t){const r=e.all(n),i=t?wo(t):Gt(n),l={},o=[];if(typeof n.checked=="boolean"){const c=r[0];let m;c&&c.type==="element"&&c.tagName==="p"?m=c:(m={type:"element",tagName:"p",properties:{},children:[]},r.unshift(m)),m.children.length>0&&m.children.unshift({type:"text",value:" "}),m.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:n.checked,disabled:!0},children:[]}),l.className=["task-list-item"]}let a=-1;for(;++a<r.length;){const c=r[a];(i||a!==0||c.type!=="element"||c.tagName!=="p")&&o.push({type:"text",value:`
|
|
11
|
+
`}),c.type==="element"&&c.tagName==="p"&&!i?o.push(...c.children):o.push(c)}const s=r[r.length-1];s&&(i||s.type!=="element"||s.tagName!=="p")&&o.push({type:"text",value:`
|
|
12
|
+
`});const u={type:"element",tagName:"li",properties:l,children:o};return e.patch(n,u),e.applyData(n,u)}function wo(e){let n=!1;if(e.type==="list"){n=e.spread||!1;const t=e.children;let r=-1;for(;!n&&++r<t.length;)n=Gt(t[r])}return n}function Gt(e){const n=e.spread;return n??e.children.length>1}function bo(e,n){const t={},r=e.all(n);let i=-1;for(typeof n.start=="number"&&n.start!==1&&(t.start=n.start);++i<r.length;){const o=r[i];if(o.type==="element"&&o.tagName==="li"&&o.properties&&Array.isArray(o.properties.className)&&o.properties.className.includes("task-list-item")){t.className=["contains-task-list"];break}}const l={type:"element",tagName:n.ordered?"ol":"ul",properties:t,children:e.wrap(r,!0)};return e.patch(n,l),e.applyData(n,l)}function So(e,n){const t={type:"element",tagName:"p",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)}function Co(e,n){const t={type:"root",children:e.wrap(e.all(n))};return e.patch(n,t),e.applyData(n,t)}function Eo(e,n){const t={type:"element",tagName:"strong",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)}const vn=Jt("start"),On=Jt("end");function Ao(e){return{start:vn(e),end:On(e)}}function Jt(e){return n;function n(t){const r=t&&t.position&&t.position[e]||{};return{line:r.line||null,column:r.column||null,offset:r.offset>-1?r.offset:null}}}function Po(e,n){const t=e.all(n),r=t.shift(),i=[];if(r){const o={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(n.children[0],o),i.push(o)}if(t.length>0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(t,!0)},a=vn(n.children[1]),s=On(n.children[n.children.length-1]);a.line&&s.line&&(o.position={start:a,end:s}),i.push(o)}const l={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(n,l),e.applyData(n,l)}function To(e,n,t){const r=t?t.children:void 0,l=(r?r.indexOf(n):1)===0?"th":"td",o=t&&t.type==="table"?t.align:void 0,a=o?o.length:n.children.length;let s=-1;const u=[];for(;++s<a;){const m=n.children[s],d={},h=o?o[s]:void 0;h&&(d.align=h);let b={type:"element",tagName:l,properties:d,children:[]};m&&(b.children=e.all(m),e.patch(m,b),b=e.applyData(n,b)),u.push(b)}const c={type:"element",tagName:"tr",properties:{},children:e.wrap(u,!0)};return e.patch(n,c),e.applyData(n,c)}function Io(e,n){const t={type:"element",tagName:"td",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)}const yt=9,xt=32;function Fo(e){const n=String(e),t=/\r?\n|\r/g;let r=t.exec(n),i=0;const l=[];for(;r;)l.push(kt(n.slice(i,r.index),i>0,!0),r[0]),i=r.index+r[0].length,r=t.exec(n);return l.push(kt(n.slice(i),i>0,!1)),l.join("")}function kt(e,n,t){let r=0,i=e.length;if(n){let l=e.codePointAt(r);for(;l===yt||l===xt;)r++,l=e.codePointAt(r)}if(t){let l=e.codePointAt(i-1);for(;l===yt||l===xt;)i--,l=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function vo(e,n){const t={type:"text",value:Fo(String(n.value))};return e.patch(n,t),e.applyData(n,t)}function Oo(e,n){const t={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(n,t),e.applyData(n,t)}const Lo={blockquote:lo,break:oo,code:ao,delete:uo,emphasis:so,footnoteReference:Yt,footnote:co,heading:po,html:ho,imageReference:fo,image:mo,inlineCode:go,linkReference:yo,link:xo,listItem:ko,list:bo,paragraph:So,root:Co,strong:Eo,table:Po,tableCell:Io,tableRow:To,text:vo,thematicBreak:Oo,toml:Ue,yaml:Ue,definition:Ue,footnoteDefinition:Ue};function Ue(){return null}const Zt=function(e){if(e==null)return Bo;if(typeof e=="string")return Ro(e);if(typeof e=="object")return Array.isArray(e)?Do(e):zo(e);if(typeof e=="function")return Qe(e);throw new Error("Expected function, string, or object as test")};function Do(e){const n=[];let t=-1;for(;++t<e.length;)n[t]=Zt(e[t]);return Qe(r);function r(...i){let l=-1;for(;++l<n.length;)if(n[l].call(this,...i))return!0;return!1}}function zo(e){return Qe(n);function n(t){let r;for(r in e)if(t[r]!==e[r])return!1;return!0}}function Ro(e){return Qe(n);function n(t){return t&&t.type===e}}function Qe(e){return n;function n(t,...r){return!!(t&&typeof t=="object"&&"type"in t&&e.call(this,t,...r))}}function Bo(){return!0}const No=!0,wt=!1,Mo="skip",_o=function(e,n,t,r){typeof n=="function"&&typeof t!="function"&&(r=t,t=n,n=null);const i=Zt(n),l=r?-1:1;o(e,void 0,[])();function o(a,s,u){const c=a&&typeof a=="object"?a:{};if(typeof c.type=="string"){const d=typeof c.tagName=="string"?c.tagName:typeof c.name=="string"?c.name:void 0;Object.defineProperty(m,"name",{value:"node ("+(a.type+(d?"<"+d+">":""))+")"})}return m;function m(){let d=[],h,b,x;if((!n||i(a,s,u[u.length-1]||null))&&(d=jo(t(a,u)),d[0]===wt))return d;if(a.children&&d[0]!==Mo)for(b=(r?a.children.length:-1)+l,x=u.concat(a);b>-1&&b<a.children.length;){if(h=o(a.children[b],b,x)(),h[0]===wt)return h;b=typeof h[1]=="number"?h[1]:b+l}return d}}};function jo(e){return Array.isArray(e)?e:typeof e=="number"?[No,e]:[e]}const Ln=function(e,n,t,r){typeof n=="function"&&typeof t!="function"&&(r=t,t=n,n=null),_o(e,n,i,r);function i(l,o){const a=o[o.length-1];return t(l,a?a.children.indexOf(l):null,a)}};function Ho(e){return!e||!e.position||!e.position.start||!e.position.start.line||!e.position.start.column||!e.position.end||!e.position.end.line||!e.position.end.column}const bt={}.hasOwnProperty;function Uo(e){const n=Object.create(null);if(!e||!e.type)throw new Error("mdast-util-definitions expected node");return Ln(e,"definition",r=>{const i=St(r.identifier);i&&!bt.call(n,i)&&(n[i]=r)}),t;function t(r){const i=St(r);return i&&bt.call(n,i)?n[i]:null}}function St(e){return String(e||"").toUpperCase()}const We={}.hasOwnProperty;function Vo(e,n){const t=n||{},r=t.allowDangerousHtml||!1,i={};return o.dangerous=r,o.clobberPrefix=t.clobberPrefix===void 0||t.clobberPrefix===null?"user-content-":t.clobberPrefix,o.footnoteLabel=t.footnoteLabel||"Footnotes",o.footnoteLabelTagName=t.footnoteLabelTagName||"h2",o.footnoteLabelProperties=t.footnoteLabelProperties||{className:["sr-only"]},o.footnoteBackLabel=t.footnoteBackLabel||"Back to content",o.unknownHandler=t.unknownHandler,o.passThrough=t.passThrough,o.handlers={...Lo,...t.handlers},o.definition=Uo(e),o.footnoteById=i,o.footnoteOrder=[],o.footnoteCounts={},o.patch=$o,o.applyData=qo,o.one=a,o.all=s,o.wrap=Xo,o.augment=l,Ln(e,"footnoteDefinition",u=>{const c=String(u.identifier).toUpperCase();We.call(i,c)||(i[c]=u)}),o;function l(u,c){if(u&&"data"in u&&u.data){const m=u.data;m.hName&&(c.type!=="element"&&(c={type:"element",tagName:"",properties:{},children:[]}),c.tagName=m.hName),c.type==="element"&&m.hProperties&&(c.properties={...c.properties,...m.hProperties}),"children"in c&&c.children&&m.hChildren&&(c.children=m.hChildren)}if(u){const m="type"in u?u:{position:u};Ho(m)||(c.position={start:vn(m),end:On(m)})}return c}function o(u,c,m,d){return Array.isArray(m)&&(d=m,m={}),l(u,{type:"element",tagName:c,properties:m||{},children:d||[]})}function a(u,c){return er(o,u,c)}function s(u){return Dn(o,u)}}function $o(e,n){e.position&&(n.position=Ao(e))}function qo(e,n){let t=n;if(e&&e.data){const r=e.data.hName,i=e.data.hChildren,l=e.data.hProperties;typeof r=="string"&&(t.type==="element"?t.tagName=r:t={type:"element",tagName:r,properties:{},children:[]}),t.type==="element"&&l&&(t.properties={...t.properties,...l}),"children"in t&&t.children&&i!==null&&i!==void 0&&(t.children=i)}return t}function er(e,n,t){const r=n&&n.type;if(!r)throw new Error("Expected node, got `"+n+"`");return We.call(e.handlers,r)?e.handlers[r](e,n,t):e.passThrough&&e.passThrough.includes(r)?"children"in n?{...n,children:Dn(e,n)}:n:e.unknownHandler?e.unknownHandler(e,n,t):Wo(e,n)}function Dn(e,n){const t=[];if("children"in n){const r=n.children;let i=-1;for(;++i<r.length;){const l=er(e,r[i],n);if(l){if(i&&r[i-1].type==="break"&&(!Array.isArray(l)&&l.type==="text"&&(l.value=l.value.replace(/^\s+/,"")),!Array.isArray(l)&&l.type==="element")){const o=l.children[0];o&&o.type==="text"&&(o.value=o.value.replace(/^\s+/,""))}Array.isArray(l)?t.push(...l):t.push(l)}}}return t}function Wo(e,n){const t=n.data||{},r="value"in n&&!(We.call(t,"hProperties")||We.call(t,"hChildren"))?{type:"text",value:n.value}:{type:"element",tagName:"div",properties:{},children:Dn(e,n)};return e.patch(n,r),e.applyData(n,r)}function Xo(e,n){const t=[];let r=-1;for(n&&t.push({type:"text",value:`
|
|
13
|
+
`});++r<e.length;)r&&t.push({type:"text",value:`
|
|
14
|
+
`}),t.push(e[r]);return n&&e.length>0&&t.push({type:"text",value:`
|
|
15
|
+
`}),t}function Qo(e){const n=[];let t=-1;for(;++t<e.footnoteOrder.length;){const r=e.footnoteById[e.footnoteOrder[t]];if(!r)continue;const i=e.all(r),l=String(r.identifier).toUpperCase(),o=Oe(l.toLowerCase());let a=0;const s=[];for(;++a<=e.footnoteCounts[l];){const m={type:"element",tagName:"a",properties:{href:"#"+e.clobberPrefix+"fnref-"+o+(a>1?"-"+a:""),dataFootnoteBackref:!0,className:["data-footnote-backref"],ariaLabel:e.footnoteBackLabel},children:[{type:"text",value:"↩"}]};a>1&&m.children.push({type:"element",tagName:"sup",children:[{type:"text",value:String(a)}]}),s.length>0&&s.push({type:"text",value:" "}),s.push(m)}const u=i[i.length-1];if(u&&u.type==="element"&&u.tagName==="p"){const m=u.children[u.children.length-1];m&&m.type==="text"?m.value+=" ":u.children.push({type:"text",value:" "}),u.children.push(...s)}else i.push(...s);const c={type:"element",tagName:"li",properties:{id:e.clobberPrefix+"fn-"+o},children:e.wrap(i,!0)};e.patch(r,c),n.push(c)}if(n.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:e.footnoteLabelTagName,properties:{...JSON.parse(JSON.stringify(e.footnoteLabelProperties)),id:"footnote-label"},children:[{type:"text",value:e.footnoteLabel}]},{type:"text",value:`
|
|
16
|
+
`},{type:"element",tagName:"ol",properties:{},children:e.wrap(n,!0)},{type:"text",value:`
|
|
17
|
+
`}]}}function nr(e,n){const t=Vo(e,n),r=t.one(e,null),i=Qo(t);return i&&r.children.push({type:"text",value:`
|
|
18
|
+
`},i),Array.isArray(r)?{type:"root",children:r}:r}const Yo=function(e,n){return e&&"run"in e?Ko(e,n):Go(e||n)};function Ko(e,n){return(t,r,i)=>{e.run(nr(t,n),r,l=>{i(l)})}}function Go(e){return n=>nr(n,e)}var tr={exports:{}},Jo="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Zo=Jo,ea=Zo;function rr(){}function ir(){}ir.resetWarningCache=rr;var na=function(){function e(r,i,l,o,a,s){if(s!==ea){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}e.isRequired=e;function n(){return e}var t={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:ir,resetWarningCache:rr};return t.PropTypes=t,t};tr.exports=na();var ta=tr.exports;const v=_e(ta);class He{constructor(n,t,r){this.property=n,this.normal=t,r&&(this.space=r)}}He.prototype.property={};He.prototype.normal={};He.prototype.space=null;function lr(e,n){const t={},r={};let i=-1;for(;++i<e.length;)Object.assign(t,e[i].property),Object.assign(r,e[i].normal);return new He(t,r,n)}function En(e){return e.toLowerCase()}class le{constructor(n,t){this.property=n,this.attribute=t}}le.prototype.space=null;le.prototype.boolean=!1;le.prototype.booleanish=!1;le.prototype.overloadedBoolean=!1;le.prototype.number=!1;le.prototype.commaSeparated=!1;le.prototype.spaceSeparated=!1;le.prototype.commaOrSpaceSeparated=!1;le.prototype.mustUseProperty=!1;le.prototype.defined=!1;let ra=0;const O=Ce(),X=Ce(),or=Ce(),w=Ce(),U=Ce(),ve=Ce(),ee=Ce();function Ce(){return 2**++ra}const An=Object.freeze(Object.defineProperty({__proto__:null,boolean:O,booleanish:X,commaOrSpaceSeparated:ee,commaSeparated:ve,number:w,overloadedBoolean:or,spaceSeparated:U},Symbol.toStringTag,{value:"Module"})),gn=Object.keys(An);class zn extends le{constructor(n,t,r,i){let l=-1;if(super(n,t),Ct(this,"space",i),typeof r=="number")for(;++l<gn.length;){const o=gn[l];Ct(this,gn[l],(r&An[o])===An[o])}}}zn.prototype.defined=!0;function Ct(e,n,t){t&&(e[n]=t)}const ia={}.hasOwnProperty;function Le(e){const n={},t={};let r;for(r in e.properties)if(ia.call(e.properties,r)){const i=e.properties[r],l=new zn(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(l.mustUseProperty=!0),n[r]=l,t[En(r)]=r,t[En(l.attribute)]=r}return new He(n,t,e.space)}const ar=Le({space:"xlink",transform(e,n){return"xlink:"+n.slice(5).toLowerCase()},properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}}),ur=Le({space:"xml",transform(e,n){return"xml:"+n.slice(3).toLowerCase()},properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function sr(e,n){return n in e?e[n]:n}function cr(e,n){return sr(e,n.toLowerCase())}const pr=Le({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:cr,properties:{xmlns:null,xmlnsXLink:null}}),hr=Le({transform(e,n){return n==="role"?n:"aria-"+n.slice(4).toLowerCase()},properties:{ariaActiveDescendant:null,ariaAtomic:X,ariaAutoComplete:null,ariaBusy:X,ariaChecked:X,ariaColCount:w,ariaColIndex:w,ariaColSpan:w,ariaControls:U,ariaCurrent:null,ariaDescribedBy:U,ariaDetails:null,ariaDisabled:X,ariaDropEffect:U,ariaErrorMessage:null,ariaExpanded:X,ariaFlowTo:U,ariaGrabbed:X,ariaHasPopup:null,ariaHidden:X,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:U,ariaLevel:w,ariaLive:null,ariaModal:X,ariaMultiLine:X,ariaMultiSelectable:X,ariaOrientation:null,ariaOwns:U,ariaPlaceholder:null,ariaPosInSet:w,ariaPressed:X,ariaReadOnly:X,ariaRelevant:null,ariaRequired:X,ariaRoleDescription:U,ariaRowCount:w,ariaRowIndex:w,ariaRowSpan:w,ariaSelected:X,ariaSetSize:w,ariaSort:null,ariaValueMax:w,ariaValueMin:w,ariaValueNow:w,ariaValueText:null,role:null}}),la=Le({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:cr,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:ve,acceptCharset:U,accessKey:U,action:null,allow:null,allowFullScreen:O,allowPaymentRequest:O,allowUserMedia:O,alt:null,as:null,async:O,autoCapitalize:null,autoComplete:U,autoFocus:O,autoPlay:O,blocking:U,capture:null,charSet:null,checked:O,cite:null,className:U,cols:w,colSpan:null,content:null,contentEditable:X,controls:O,controlsList:U,coords:w|ve,crossOrigin:null,data:null,dateTime:null,decoding:null,default:O,defer:O,dir:null,dirName:null,disabled:O,download:or,draggable:X,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:O,formTarget:null,headers:U,height:w,hidden:O,high:w,href:null,hrefLang:null,htmlFor:U,httpEquiv:U,id:null,imageSizes:null,imageSrcSet:null,inert:O,inputMode:null,integrity:null,is:null,isMap:O,itemId:null,itemProp:U,itemRef:U,itemScope:O,itemType:U,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:O,low:w,manifest:null,max:null,maxLength:w,media:null,method:null,min:null,minLength:w,multiple:O,muted:O,name:null,nonce:null,noModule:O,noValidate:O,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:O,optimum:w,pattern:null,ping:U,placeholder:null,playsInline:O,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:O,referrerPolicy:null,rel:U,required:O,reversed:O,rows:w,rowSpan:w,sandbox:U,scope:null,scoped:O,seamless:O,selected:O,shadowRootClonable:O,shadowRootDelegatesFocus:O,shadowRootMode:null,shape:null,size:w,sizes:null,slot:null,span:w,spellCheck:X,src:null,srcDoc:null,srcLang:null,srcSet:null,start:w,step:null,style:null,tabIndex:w,target:null,title:null,translate:null,type:null,typeMustMatch:O,useMap:null,value:X,width:w,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:U,axis:null,background:null,bgColor:null,border:w,borderColor:null,bottomMargin:w,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:O,declare:O,event:null,face:null,frame:null,frameBorder:null,hSpace:w,leftMargin:w,link:null,longDesc:null,lowSrc:null,marginHeight:w,marginWidth:w,noResize:O,noHref:O,noShade:O,noWrap:O,object:null,profile:null,prompt:null,rev:null,rightMargin:w,rules:null,scheme:null,scrolling:X,standby:null,summary:null,text:null,topMargin:w,valueType:null,version:null,vAlign:null,vLink:null,vSpace:w,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:O,disableRemotePlayback:O,prefix:null,property:null,results:w,security:null,unselectable:null}}),oa=Le({space:"svg",attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},transform:sr,properties:{about:ee,accentHeight:w,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:w,amplitude:w,arabicForm:null,ascent:w,attributeName:null,attributeType:null,azimuth:w,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:w,by:null,calcMode:null,capHeight:w,className:U,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:w,diffuseConstant:w,direction:null,display:null,dur:null,divisor:w,dominantBaseline:null,download:O,dx:null,dy:null,edgeMode:null,editable:null,elevation:w,enableBackground:null,end:null,event:null,exponent:w,externalResourcesRequired:null,fill:null,fillOpacity:w,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:ve,g2:ve,glyphName:ve,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:w,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:w,horizOriginX:w,horizOriginY:w,id:null,ideographic:w,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:w,k:w,k1:w,k2:w,k3:w,k4:w,kernelMatrix:ee,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:w,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:w,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:w,overlineThickness:w,paintOrder:null,panose1:null,path:null,pathLength:w,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:U,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:w,pointsAtY:w,pointsAtZ:w,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:ee,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:ee,rev:ee,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:ee,requiredFeatures:ee,requiredFonts:ee,requiredFormats:ee,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:w,specularExponent:w,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:w,strikethroughThickness:w,string:null,stroke:null,strokeDashArray:ee,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:w,strokeOpacity:w,strokeWidth:null,style:null,surfaceScale:w,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:ee,tabIndex:w,tableValues:null,target:null,targetX:w,targetY:w,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:ee,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:w,underlineThickness:w,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:w,values:null,vAlphabetic:w,vMathematical:w,vectorEffect:null,vHanging:w,vIdeographic:w,version:null,vertAdvY:w,vertOriginX:w,vertOriginY:w,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:w,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null}}),aa=/^data[-\w.:]+$/i,Et=/-[a-z]/g,ua=/[A-Z]/g;function sa(e,n){const t=En(n);let r=n,i=le;if(t in e.normal)return e.property[e.normal[t]];if(t.length>4&&t.slice(0,4)==="data"&&aa.test(n)){if(n.charAt(4)==="-"){const l=n.slice(5).replace(Et,pa);r="data"+l.charAt(0).toUpperCase()+l.slice(1)}else{const l=n.slice(4);if(!Et.test(l)){let o=l.replace(ua,ca);o.charAt(0)!=="-"&&(o="-"+o),n="data"+o}}i=zn}return new i(r,n)}function ca(e){return"-"+e.toLowerCase()}function pa(e){return e.charAt(1).toUpperCase()}const At={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},ha=lr([ur,ar,pr,hr,la],"html"),fa=lr([ur,ar,pr,hr,oa],"svg");function ma(e){if(e.allowedElements&&e.disallowedElements)throw new TypeError("Only one of `allowedElements` and `disallowedElements` should be defined");if(e.allowedElements||e.disallowedElements||e.allowElement)return n=>{Ln(n,"element",(t,r,i)=>{const l=i;let o;if(e.allowedElements?o=!e.allowedElements.includes(t.tagName):e.disallowedElements&&(o=e.disallowedElements.includes(t.tagName)),!o&&e.allowElement&&typeof r=="number"&&(o=!e.allowElement(t,r,l)),o&&typeof r=="number")return e.unwrapDisallowed&&t.children?l.children.splice(r,1,...t.children):l.children.splice(r,1),r})}}var fr={exports:{}},_={};/**
|
|
19
|
+
* @license React
|
|
20
|
+
* react-is.production.min.js
|
|
21
|
+
*
|
|
22
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
23
|
+
*
|
|
24
|
+
* This source code is licensed under the MIT license found in the
|
|
25
|
+
* LICENSE file in the root directory of this source tree.
|
|
26
|
+
*/var Rn=Symbol.for("react.element"),Bn=Symbol.for("react.portal"),Ye=Symbol.for("react.fragment"),Ke=Symbol.for("react.strict_mode"),Ge=Symbol.for("react.profiler"),Je=Symbol.for("react.provider"),Ze=Symbol.for("react.context"),da=Symbol.for("react.server_context"),en=Symbol.for("react.forward_ref"),nn=Symbol.for("react.suspense"),tn=Symbol.for("react.suspense_list"),rn=Symbol.for("react.memo"),ln=Symbol.for("react.lazy"),ga=Symbol.for("react.offscreen"),mr;mr=Symbol.for("react.module.reference");function oe(e){if(typeof e=="object"&&e!==null){var n=e.$$typeof;switch(n){case Rn:switch(e=e.type,e){case Ye:case Ge:case Ke:case nn:case tn:return e;default:switch(e=e&&e.$$typeof,e){case da:case Ze:case en:case ln:case rn:case Je:return e;default:return n}}case Bn:return n}}}_.ContextConsumer=Ze;_.ContextProvider=Je;_.Element=Rn;_.ForwardRef=en;_.Fragment=Ye;_.Lazy=ln;_.Memo=rn;_.Portal=Bn;_.Profiler=Ge;_.StrictMode=Ke;_.Suspense=nn;_.SuspenseList=tn;_.isAsyncMode=function(){return!1};_.isConcurrentMode=function(){return!1};_.isContextConsumer=function(e){return oe(e)===Ze};_.isContextProvider=function(e){return oe(e)===Je};_.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Rn};_.isForwardRef=function(e){return oe(e)===en};_.isFragment=function(e){return oe(e)===Ye};_.isLazy=function(e){return oe(e)===ln};_.isMemo=function(e){return oe(e)===rn};_.isPortal=function(e){return oe(e)===Bn};_.isProfiler=function(e){return oe(e)===Ge};_.isStrictMode=function(e){return oe(e)===Ke};_.isSuspense=function(e){return oe(e)===nn};_.isSuspenseList=function(e){return oe(e)===tn};_.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Ye||e===Ge||e===Ke||e===nn||e===tn||e===ga||typeof e=="object"&&e!==null&&(e.$$typeof===ln||e.$$typeof===rn||e.$$typeof===Je||e.$$typeof===Ze||e.$$typeof===en||e.$$typeof===mr||e.getModuleId!==void 0)};_.typeOf=oe;fr.exports=_;var ya=fr.exports;const xa=_e(ya);function ka(e){const n=e&&typeof e=="object"&&e.type==="text"?e.value||"":e;return typeof n=="string"&&n.replace(/[ \t\n\f\r]/g,"")===""}function wa(e){return e.join(" ").trim()}function ba(e,n){const t={};return(e[e.length-1]===""?[...e,""]:e).join((t.padRight?" ":"")+","+(t.padLeft===!1?"":" ")).trim()}var Nn={exports:{}},Pt=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,Sa=/\n/g,Ca=/^\s*/,Ea=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,Aa=/^:\s*/,Pa=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,Ta=/^[;\s]*/,Ia=/^\s+|\s+$/g,Fa=`
|
|
27
|
+
`,Tt="/",It="*",Se="",va="comment",Oa="declaration",La=function(e,n){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];n=n||{};var t=1,r=1;function i(b){var x=b.match(Sa);x&&(t+=x.length);var C=b.lastIndexOf(Fa);r=~C?b.length-C:r+b.length}function l(){var b={line:t,column:r};return function(x){return x.position=new o(b),u(),x}}function o(b){this.start=b,this.end={line:t,column:r},this.source=n.source}o.prototype.content=e;function a(b){var x=new Error(n.source+":"+t+":"+r+": "+b);if(x.reason=b,x.filename=n.source,x.line=t,x.column=r,x.source=e,!n.silent)throw x}function s(b){var x=b.exec(e);if(x){var C=x[0];return i(C),e=e.slice(C.length),x}}function u(){s(Ca)}function c(b){var x;for(b=b||[];x=m();)x!==!1&&b.push(x);return b}function m(){var b=l();if(!(Tt!=e.charAt(0)||It!=e.charAt(1))){for(var x=2;Se!=e.charAt(x)&&(It!=e.charAt(x)||Tt!=e.charAt(x+1));)++x;if(x+=2,Se===e.charAt(x-1))return a("End of comment missing");var C=e.slice(2,x-2);return r+=2,i(C),e=e.slice(x),r+=2,b({type:va,comment:C})}}function d(){var b=l(),x=s(Ea);if(x){if(m(),!s(Aa))return a("property missing ':'");var C=s(Pa),k=b({type:Oa,property:Ft(x[0].replace(Pt,Se)),value:C?Ft(C[0].replace(Pt,Se)):Se});return s(Ta),k}}function h(){var b=[];c(b);for(var x;x=d();)x!==!1&&(b.push(x),c(b));return b}return u(),h()};function Ft(e){return e?e.replace(Ia,Se):Se}var Da=La;function dr(e,n){var t=null;if(!e||typeof e!="string")return t;for(var r,i=Da(e),l=typeof n=="function",o,a,s=0,u=i.length;s<u;s++)r=i[s],o=r.property,a=r.value,l?n(o,a,r):a&&(t||(t={}),t[o]=a);return t}Nn.exports=dr;Nn.exports.default=dr;var za=Nn.exports;const Ra=_e(za),Pn={}.hasOwnProperty,Ba=new Set(["table","thead","tbody","tfoot","tr"]);function gr(e,n){const t=[];let r=-1,i;for(;++r<n.children.length;)i=n.children[r],i.type==="element"?t.push(Na(e,i,r,n)):i.type==="text"?(n.type!=="element"||!Ba.has(n.tagName)||!ka(i))&&t.push(i.value):i.type==="raw"&&!e.options.skipHtml&&t.push(i.value);return t}function Na(e,n,t,r){const i=e.options,l=i.transformLinkUri===void 0?Dr:i.transformLinkUri,o=e.schema,a=n.tagName,s={};let u=o,c;if(o.space==="html"&&a==="svg"&&(u=fa,e.schema=u),n.properties)for(c in n.properties)Pn.call(n.properties,c)&&_a(s,c,n.properties[c],e);(a==="ol"||a==="ul")&&e.listDepth++;const m=gr(e,n);(a==="ol"||a==="ul")&&e.listDepth--,e.schema=o;const d=n.position||{start:{line:null,column:null,offset:null},end:{line:null,column:null,offset:null}},h=i.components&&Pn.call(i.components,a)?i.components[a]:a,b=typeof h=="string"||h===Ie.Fragment;if(!xa.isValidElementType(h))throw new TypeError(`Component for name \`${a}\` not defined or is not renderable`);if(s.key=t,a==="a"&&i.linkTarget&&(s.target=typeof i.linkTarget=="function"?i.linkTarget(String(s.href||""),n.children,typeof s.title=="string"?s.title:null):i.linkTarget),a==="a"&&l&&(s.href=l(String(s.href||""),n.children,typeof s.title=="string"?s.title:null)),!b&&a==="code"&&r.type==="element"&&r.tagName!=="pre"&&(s.inline=!0),!b&&(a==="h1"||a==="h2"||a==="h3"||a==="h4"||a==="h5"||a==="h6")&&(s.level=Number.parseInt(a.charAt(1),10)),a==="img"&&i.transformImageUri&&(s.src=i.transformImageUri(String(s.src||""),String(s.alt||""),typeof s.title=="string"?s.title:null)),!b&&a==="li"&&r.type==="element"){const x=Ma(n);s.checked=x&&x.properties?!!x.properties.checked:null,s.index=yn(r,n),s.ordered=r.tagName==="ol"}return!b&&(a==="ol"||a==="ul")&&(s.ordered=a==="ol",s.depth=e.listDepth),(a==="td"||a==="th")&&(s.align&&(s.style||(s.style={}),s.style.textAlign=s.align,delete s.align),b||(s.isHeader=a==="th")),!b&&a==="tr"&&r.type==="element"&&(s.isHeader=r.tagName==="thead"),i.sourcePos&&(s["data-sourcepos"]=Ua(d)),!b&&i.rawSourcePos&&(s.sourcePosition=n.position),!b&&i.includeElementIndex&&(s.index=yn(r,n),s.siblingCount=yn(r)),b||(s.node=n),m.length>0?Ie.createElement(h,s,m):Ie.createElement(h,s)}function Ma(e){let n=-1;for(;++n<e.children.length;){const t=e.children[n];if(t.type==="element"&&t.tagName==="input")return t}return null}function yn(e,n){let t=-1,r=0;for(;++t<e.children.length&&e.children[t]!==n;)e.children[t].type==="element"&&r++;return r}function _a(e,n,t,r){const i=sa(r.schema,n);let l=t;l==null||l!==l||(Array.isArray(l)&&(l=i.commaSeparated?ba(l):wa(l)),i.property==="style"&&typeof l=="string"&&(l=ja(l)),i.space&&i.property?e[Pn.call(At,i.property)?At[i.property]:i.property]=l:i.attribute&&(e[i.attribute]=l))}function ja(e){const n={};try{Ra(e,t)}catch{}return n;function t(r,i){const l=r.slice(0,4)==="-ms-"?`ms-${r.slice(4)}`:r;n[l.replace(/-([a-z])/g,Ha)]=i}}function Ha(e,n){return n.toUpperCase()}function Ua(e){return[e.start.line,":",e.start.column,"-",e.end.line,":",e.end.column].map(String).join("")}const vt={}.hasOwnProperty,Va="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Ve={plugins:{to:"remarkPlugins",id:"change-plugins-to-remarkplugins"},renderers:{to:"components",id:"change-renderers-to-components"},astPlugins:{id:"remove-buggy-html-in-markdown-parser"},allowDangerousHtml:{id:"remove-buggy-html-in-markdown-parser"},escapeHtml:{id:"remove-buggy-html-in-markdown-parser"},source:{to:"children",id:"change-source-to-children"},allowNode:{to:"allowElement",id:"replace-allownode-allowedtypes-and-disallowedtypes"},allowedTypes:{to:"allowedElements",id:"replace-allownode-allowedtypes-and-disallowedtypes"},disallowedTypes:{to:"disallowedElements",id:"replace-allownode-allowedtypes-and-disallowedtypes"},includeNodeIndex:{to:"includeElementIndex",id:"change-includenodeindex-to-includeelementindex"}};function yr(e){for(const l in Ve)if(vt.call(Ve,l)&&vt.call(e,l)){const o=Ve[l];console.warn(`[react-markdown] Warning: please ${o.to?`use \`${o.to}\` instead of`:"remove"} \`${l}\` (see <${Va}#${o.id}> for more info)`),delete Ve[l]}const n=Yr().use(io).use(e.remarkPlugins||[]).use(Yo,{...e.remarkRehypeOptions,allowDangerousHtml:!0}).use(e.rehypePlugins||[]).use(ma,e),t=new Lt;typeof e.children=="string"?t.value=e.children:e.children!==void 0&&e.children!==null&&console.warn(`[react-markdown] Warning: please pass a string as \`children\` (not: \`${e.children}\`)`);const r=n.runSync(n.parse(t),t);if(r.type!=="root")throw new TypeError("Expected a `root` node");let i=Ie.createElement(Ie.Fragment,{},gr({options:e,schema:ha,listDepth:0},r));return e.className&&(i=Ie.createElement("div",{className:e.className},i)),i}yr.propTypes={children:v.string,className:v.string,allowElement:v.func,allowedElements:v.arrayOf(v.string),disallowedElements:v.arrayOf(v.string),unwrapDisallowed:v.bool,remarkPlugins:v.arrayOf(v.oneOfType([v.object,v.func,v.arrayOf(v.oneOfType([v.bool,v.string,v.object,v.func,v.arrayOf(v.any)]))])),rehypePlugins:v.arrayOf(v.oneOfType([v.object,v.func,v.arrayOf(v.oneOfType([v.bool,v.string,v.object,v.func,v.arrayOf(v.any)]))])),sourcePos:v.bool,rawSourcePos:v.bool,skipHtml:v.bool,includeElementIndex:v.bool,transformLinkUri:v.oneOfType([v.func,v.bool]),linkTarget:v.oneOfType([v.func,v.string]),transformImageUri:v.func,components:v.object};const Be={hub_restart:{title:"Hub restart",markdown:`# Hub restart
|
|
28
|
+
|
|
29
|
+
The Xenon server restarted or shut down while this session was running. When
|
|
30
|
+
it shuts down it ends the sessions it is running ("Hub shutdown"). After a
|
|
31
|
+
restart, a session on one of that server's own phones has ended with it, and
|
|
32
|
+
a session on a phone connected to another machine ends too if the server
|
|
33
|
+
can't pick it up again.
|
|
34
|
+
|
|
35
|
+
## Likely causes
|
|
36
|
+
|
|
37
|
+
- Someone restarted, stopped or updated the Xenon server.
|
|
38
|
+
- The server stopped unexpectedly and was started again.
|
|
39
|
+
- The computer running it restarted.
|
|
40
|
+
|
|
41
|
+
## What to do
|
|
42
|
+
|
|
43
|
+
1. Run the session again.
|
|
44
|
+
2. If restarts happen during test runs, ask whoever looks after the Xenon
|
|
45
|
+
server to plan them outside test hours, and to find out why it stopped if
|
|
46
|
+
nobody restarted it.
|
|
47
|
+
`},session_lost:{title:"Session lost",markdown:`# Session lost
|
|
48
|
+
|
|
49
|
+
The session stopped working partway through: the helper app Appium uses to
|
|
50
|
+
drive the phone (WebDriverAgent on an iPhone, UiAutomator2 on Android) stopped
|
|
51
|
+
answering, or Xenon lost track of the session. The failure reason or a failed
|
|
52
|
+
command says something like "Could not proxy command to the remote server",
|
|
53
|
+
"socket hang up", "instrumentation process is not running", "Session does not
|
|
54
|
+
exist" or "Session heartbeat timeout". It's rarely the test's fault.
|
|
55
|
+
|
|
56
|
+
## Likely causes
|
|
57
|
+
|
|
58
|
+
- The phone was unplugged, restarted, or lost its connection to the computer
|
|
59
|
+
it's plugged into.
|
|
60
|
+
- The helper app on the phone stopped, for example after running out of
|
|
61
|
+
memory, or was started again without the session.
|
|
62
|
+
- The computer the phone is plugged into stopped answering Xenon.
|
|
63
|
+
- On an iPhone, a command took longer than the session's
|
|
64
|
+
\`appium:commandTimeouts\` allows, and Appium ended the session ("Appium did
|
|
65
|
+
not get any response from").
|
|
66
|
+
|
|
67
|
+
## What to do
|
|
68
|
+
|
|
69
|
+
1. Run the session again.
|
|
70
|
+
2. On the **Devices** page, check the phone is still connected. If this keeps
|
|
71
|
+
happening on one phone, restart it and check its cable.
|
|
72
|
+
3. If new sessions on that phone then don't start at all, check on an iPhone
|
|
73
|
+
that it's unlocked, Auto-Lock is set to Never, Developer Mode is on
|
|
74
|
+
(Settings, Privacy & Security), and it trusts the computer it's plugged
|
|
75
|
+
into. If they still don't start, ask whoever looks after the lab.
|
|
76
|
+
4. If sessions on several phones were lost at the same time, ask whoever looks
|
|
77
|
+
after the Xenon server: the computer they're plugged into may have stopped.
|
|
78
|
+
`},timeout:{title:"Timeout",markdown:`# Timeout
|
|
79
|
+
|
|
80
|
+
Something ran out of time: the test sent no command for longer than its
|
|
81
|
+
\`newCommandTimeout\`, or a command, a script or a wait didn't finish in time.
|
|
82
|
+
The failure reason or a failed command says, for example, "New Command Timeout
|
|
83
|
+
of 60 seconds expired", "Session timed out due to inactivity" or "did not
|
|
84
|
+
complete before its timeout expired".
|
|
85
|
+
|
|
86
|
+
## Likely causes
|
|
87
|
+
|
|
88
|
+
- The test paused, hung or stopped between commands for longer than
|
|
89
|
+
\`newCommandTimeout\`: a long sleep, a step waiting on something outside the
|
|
90
|
+
app, or a test runner that crashed.
|
|
91
|
+
- A script or a web page took too long.
|
|
92
|
+
- Xenon waited for an element to become usable and it never did ("to be
|
|
93
|
+
enabled").
|
|
94
|
+
- On Android, the phone couldn't read the screen because the app never let it
|
|
95
|
+
go idle ("hogging the main UI thread"): an endless animation or video, or an
|
|
96
|
+
app busy on its main thread.
|
|
97
|
+
- A slow phone.
|
|
98
|
+
|
|
99
|
+
## What to do
|
|
100
|
+
|
|
101
|
+
Raise \`newCommandTimeout\` only if the app really needs long pauses between
|
|
102
|
+
commands. Otherwise:
|
|
103
|
+
|
|
104
|
+
1. In the **Commands** tab, find the last command and compare its time with
|
|
105
|
+
**Ended** in the session's details: a long gap means the test stopped sending
|
|
106
|
+
commands.
|
|
107
|
+
2. On the **Devices** page, check the phone's battery and temperature where
|
|
108
|
+
its card shows them: a hot or nearly flat phone slows down. They are the
|
|
109
|
+
phone's latest readings, not the ones from the run.
|
|
110
|
+
3. If the same command times out run after run, report it against the test,
|
|
111
|
+
or against the driver if the command clearly hung.
|
|
112
|
+
`},element_not_found:{title:"Element not found",markdown:`# Element not found
|
|
113
|
+
|
|
114
|
+
A command couldn't find the element the test asked for: the failure reason or
|
|
115
|
+
a failed command says "no such element" or "An element could not be located".
|
|
116
|
+
When AI self-healing is on, a failed find has already been tried again in the
|
|
117
|
+
other ways this session allows.
|
|
118
|
+
|
|
119
|
+
## Likely causes
|
|
120
|
+
|
|
121
|
+
- The screen wasn't ready: the element appeared after the test stopped looking.
|
|
122
|
+
- A different screen was showing: a dialog, a permission prompt, a sign-in page
|
|
123
|
+
or an error.
|
|
124
|
+
- The app had crashed or closed, so another app or the home screen was showing.
|
|
125
|
+
On Android an app that crashes outright gives the test no error of its own,
|
|
126
|
+
so its crash is filed here.
|
|
127
|
+
- The app changed: the element's id, text or place in the layout is different
|
|
128
|
+
now.
|
|
129
|
+
- The selector only works on some phones, screen sizes or languages.
|
|
130
|
+
|
|
131
|
+
## What to do
|
|
132
|
+
|
|
133
|
+
1. Open the **Screenshots** tab, or play the video in **Recording**, to see what
|
|
134
|
+
was on screen when the find failed.
|
|
135
|
+
2. If another app or the home screen was showing, the app may have crashed. On
|
|
136
|
+
Android, open **Device logs**, where the session has them, and tick **Errors
|
|
137
|
+
only**: a crash shows as "FATAL EXCEPTION", then the app's package name.
|
|
138
|
+
3. In the **Commands** tab, read the selector the failed find used and compare
|
|
139
|
+
it with that screen.
|
|
140
|
+
4. If the element only appeared late, wait for it in the test, or have Xenon
|
|
141
|
+
retry finds for a while: at the start of the session, run the
|
|
142
|
+
\`xenon: setAutowaitProperties\` script with
|
|
143
|
+
\`{ "enabled": true, "timeoutMs": 10000 }\` (\`executeScript\` in Java,
|
|
144
|
+
\`execute_script\` in Python, \`execute\` in WebdriverIO).
|
|
145
|
+
5. If the app changed, update the selector. Selectors that only still work
|
|
146
|
+
because Xenon heals them are listed in **Selector health**: fixing those
|
|
147
|
+
stops them failing like this one.
|
|
148
|
+
|
|
149
|
+
If the **Reason** in **Why it failed** is about something else, start from that.
|
|
150
|
+
`},stale_element:{title:"Stale element",markdown:`# Stale element
|
|
151
|
+
|
|
152
|
+
The test used an element it had found earlier, and the app had since redrawn
|
|
153
|
+
the screen, so that element no longer exists. The failure reason or a failed
|
|
154
|
+
command says "stale element reference", or the driver's own words: "does not
|
|
155
|
+
exist in DOM anymore" or "is not present in the cache or has expired"
|
|
156
|
+
(Android), "is not present in the current view anymore" or "expired from the
|
|
157
|
+
internal cache" (iPhone), "no longer attached to the DOM" (web pages).
|
|
158
|
+
|
|
159
|
+
## Likely causes
|
|
160
|
+
|
|
161
|
+
- The test kept an element across a change on screen: moving to another screen,
|
|
162
|
+
a list refreshing, the keyboard opening or closing, or an animation.
|
|
163
|
+
- The app redraws the screen by itself, for example a list that updates while
|
|
164
|
+
the test is using it.
|
|
165
|
+
- The app had crashed or closed, and the element went with it. On Android an
|
|
166
|
+
app that crashes outright gives the test no error of its own, so its crash
|
|
167
|
+
can show up here.
|
|
168
|
+
|
|
169
|
+
## What to do
|
|
170
|
+
|
|
171
|
+
1. In **Why it failed**, read the **Reason** to see which element it was.
|
|
172
|
+
2. Find the element again just before using it, rather than keeping it from
|
|
173
|
+
earlier in the test.
|
|
174
|
+
3. If the screen is still changing, wait for it to settle, for example for the
|
|
175
|
+
element to be visible again, before tapping or typing.
|
|
176
|
+
`},app_crash:{title:"App crash",markdown:`# App crash
|
|
177
|
+
|
|
178
|
+
The app under test stopped. On an iPhone the failure reason or a failed command
|
|
179
|
+
says the app "is not running, possibly crashed". A test that reports a crash in
|
|
180
|
+
its own words ("The application has crashed", "Application not responding")
|
|
181
|
+
lands here too.
|
|
182
|
+
|
|
183
|
+
An Android app that crashes outright gives the test no error of its own: the
|
|
184
|
+
next command fails on whatever replaced it, so the session is filed under
|
|
185
|
+
Element not found or Stale element. Where the session has **Device logs**, its
|
|
186
|
+
crash report is there.
|
|
187
|
+
|
|
188
|
+
## Likely causes
|
|
189
|
+
|
|
190
|
+
- A bug in the app, often on the last screen or action the test reached.
|
|
191
|
+
- The phone ran low on memory or was under heavy load.
|
|
192
|
+
- The app was closed: by the phone, or by a test step.
|
|
193
|
+
|
|
194
|
+
## What to do
|
|
195
|
+
|
|
196
|
+
1. Play the video in **Recording**, or open the **Screenshots** tab, to see the
|
|
197
|
+
last screen before the crash.
|
|
198
|
+
2. Open **Device logs**, where the session has them, and tick **Errors only**.
|
|
199
|
+
On Android the crash report is a "FATAL EXCEPTION", then the app's package
|
|
200
|
+
name and the code it failed in. On an iPhone they hold the app's own lines,
|
|
201
|
+
its errors and what the phone said about its launch and end: look near the
|
|
202
|
+
time it stopped.
|
|
203
|
+
3. On Android, check **Performance**: the phone's memory running out, or the
|
|
204
|
+
app's own memory climbing until the crash, points at the app using too much.
|
|
205
|
+
4. To watch it happen, open the phone from the **Devices** page, keep its Logs
|
|
206
|
+
open, and repeat the steps by hand.
|
|
207
|
+
5. If the app crashes by hand too, report it to its developers with a link to
|
|
208
|
+
this session and the log lines.
|
|
209
|
+
`},permission_blocked:{title:"Permission blocked",markdown:`# Permission blocked
|
|
210
|
+
|
|
211
|
+
A prompt was in front of what the test wanted to use. Phones don't report this
|
|
212
|
+
themselves: a native permission prompt usually shows up as Element not found.
|
|
213
|
+
This category comes from a web page on an iPhone ("unexpected alert open", "A
|
|
214
|
+
modal dialog was open"), or from a test that reports the prompt in its own
|
|
215
|
+
words ("Permission alert", "Allow while using app").
|
|
216
|
+
|
|
217
|
+
## Likely causes
|
|
218
|
+
|
|
219
|
+
- The app asked for a permission (location, camera, notifications...) the first
|
|
220
|
+
time it needed one on this phone, or after it was reinstalled.
|
|
221
|
+
- The phone showed a prompt of its own.
|
|
222
|
+
- A web page opened an alert.
|
|
223
|
+
|
|
224
|
+
## What to do
|
|
225
|
+
|
|
226
|
+
1. Open the **Screenshots** tab, or play the video in **Recording**, to see
|
|
227
|
+
which prompt was showing.
|
|
228
|
+
2. Let Appium answer such prompts:
|
|
229
|
+
- Android: \`appium:autoGrantPermissions: true\` grants the app the
|
|
230
|
+
permissions it asks for when Appium installs it. With
|
|
231
|
+
\`appium:noReset\` on an app that is already installed, it does nothing.
|
|
232
|
+
- iPhone: \`appium:autoAcceptAlerts: true\` accepts every alert, the app's
|
|
233
|
+
own included, and \`appium:autoDismissAlerts: true\` dismisses every alert.
|
|
234
|
+
3. If the test is meant to check the prompt itself, tap the right button in the
|
|
235
|
+
test before going on.
|
|
236
|
+
`},system_overload:{title:"System overload",markdown:`# System overload
|
|
237
|
+
|
|
238
|
+
Something ran out of memory or of open files. The failure reason or a failed
|
|
239
|
+
command says "OutOfMemoryError", "too many open files" or "EMFILE".
|
|
240
|
+
|
|
241
|
+
## Likely causes
|
|
242
|
+
|
|
243
|
+
- Appium's helper on the phone ran out of memory, most often while reading the
|
|
244
|
+
whole screen (the page source) of a very long list or web page. That is the
|
|
245
|
+
helper's own limit: the phone itself can have memory to spare.
|
|
246
|
+
- "too many open files": the computer running Xenon hit its limit, usually after
|
|
247
|
+
running many sessions for a long time.
|
|
248
|
+
|
|
249
|
+
## What to do
|
|
250
|
+
|
|
251
|
+
1. If the test reads the page source often on a long screen, find the elements
|
|
252
|
+
it needs instead.
|
|
253
|
+
2. If it keeps happening on one phone, restart that phone.
|
|
254
|
+
3. For "too many open files", ask whoever looks after the Xenon server: a
|
|
255
|
+
restart clears it, and the limit can be raised.
|
|
256
|
+
`},wda_failure:{title:"WDA failure",markdown:`# WDA failure
|
|
257
|
+
|
|
258
|
+
Older sessions were filed here when the failure reason or a failed command
|
|
259
|
+
mentioned WebDriverAgent, the helper app Appium puts on an iPhone to drive it,
|
|
260
|
+
or said "Session does not exist". Newer sessions that lose WebDriverAgent are
|
|
261
|
+
filed under Session lost, which has the same advice.
|
|
262
|
+
|
|
263
|
+
## What to do
|
|
264
|
+
|
|
265
|
+
1. Run the session again.
|
|
266
|
+
2. On the **Devices** page, check the iPhone is still connected. If this keeps
|
|
267
|
+
happening on one iPhone, restart it and check its cable.
|
|
268
|
+
3. If new sessions on that iPhone then don't start at all, check on the phone
|
|
269
|
+
that it's unlocked, Auto-Lock is set to Never, Developer Mode is on
|
|
270
|
+
(Settings, Privacy & Security), and it trusts the computer it's plugged
|
|
271
|
+
into. If they still don't start, ask whoever looks after the lab.
|
|
272
|
+
`},xenon_command_failure:{title:"Xenon command failure",markdown:`# Xenon command failure
|
|
273
|
+
|
|
274
|
+
Older sessions were filed here when the failure reason or a failed command said
|
|
275
|
+
"command failed". Despite the name, that rarely meant Xenon failed: most were a
|
|
276
|
+
stale element on a web page or in a web view on an iPhone ("An element command
|
|
277
|
+
failed because the referenced element is no longer attached to the DOM").
|
|
278
|
+
Newer sessions with a stale element are filed under Stale element.
|
|
279
|
+
|
|
280
|
+
## What to do
|
|
281
|
+
|
|
282
|
+
1. In **Why it failed**, read the **Reason** to see what it was.
|
|
283
|
+
2. For a stale element, find the element again just before using it, rather
|
|
284
|
+
than keeping it from earlier in the test.
|
|
285
|
+
3. If the screen is still changing, wait for it to settle before tapping or
|
|
286
|
+
typing.
|
|
287
|
+
`},unknown:{title:"Unknown",markdown:`# Finding out why it failed
|
|
288
|
+
|
|
289
|
+
Xenon couldn't tell what kind of failure this was, or has no runbook for its
|
|
290
|
+
kind yet. These steps help with any failure.
|
|
291
|
+
|
|
292
|
+
## What to do
|
|
293
|
+
|
|
294
|
+
1. In **Why it failed**, read the **Reason**, the **First failed command** and,
|
|
295
|
+
if there is one, the **AI analysis**.
|
|
296
|
+
2. In the **Commands** tab, tick **Errors only** to see every command that
|
|
297
|
+
failed. **Device logs** shows what the phone reported around the same time
|
|
298
|
+
(on an iPhone, about the app under test), and **Errors only** there shows its
|
|
299
|
+
errors.
|
|
300
|
+
3. Run the session again and see whether it fails the same way.
|
|
301
|
+
|
|
302
|
+
If the same kind of failure keeps landing here, report it with a link to the
|
|
303
|
+
session, so it can get a runbook of its own.
|
|
304
|
+
`}};function xr(e){return e.toLowerCase().trim().replace(/[\s-]+/g,"_")}function $a(e){if(!e)return Be.unknown;const n=xr(e);return Object.prototype.hasOwnProperty.call(Be,n)?Be[n]:Be.unknown}const qa={ul:({node:e,ordered:n,depth:t,className:r,...i})=>ne.jsx("ul",{className:`list-disc space-y-1 ${r??""}`.trim(),...i}),ol:({node:e,ordered:n,depth:t,className:r,...i})=>ne.jsx("ol",{className:`list-decimal space-y-1 ${r??""}`.trim(),...i})},Ya=()=>{const{category:e}=Ir(),n=Fr(),t=$a(e),r=!!e&&t===Be.unknown&&xr(e)!=="unknown",i=()=>{if(window.history.length<=1){n("/overview");return}n(-1)};return ne.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[ne.jsxs("header",{className:"flex items-center justify-between gap-4 px-4 py-3 border-b border-[var(--border)] bg-[var(--surface)]",children:[ne.jsxs("button",{type:"button",onClick:i,className:"inline-flex items-center gap-1.5 text-xs text-[var(--text-muted)] hover:text-[var(--text)] transition-colors",children:[ne.jsx(Lr,{className:"h-3.5 w-3.5"}),"Back"]}),ne.jsxs("div",{className:"flex items-center gap-2 text-xs text-[var(--text-dim)]",children:[ne.jsx(vr,{className:"h-3.5 w-3.5"}),ne.jsx("span",{className:"",children:"Runbook"})]})]}),ne.jsx("div",{className:"flex-1 overflow-y-auto",children:ne.jsxs("article",{className:"max-w-3xl mx-auto px-6 py-8 prose prose-invert prose-sm runbook-prose",children:[r&&ne.jsxs("div",{className:"mb-4 rounded-md border border-[var(--amber)]/30 bg-[var(--amber)]/5 px-3 py-2 text-xs text-[var(--amber)]",children:["There's no runbook for “",Or(e),"” failures yet, so these are the general steps."]}),ne.jsx(yr,{components:qa,children:t.markdown})]})})]})};export{Ya as RunbookPage,Ya as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as c,j as m}from"./index-
|
|
1
|
+
import{r as c,j as m}from"./index-B0gQkEg0.js";import{c as o}from"./utils-CDN07tui.js";const l=c.forwardRef(({className:s,selectSize:e="md",children:t,...a},r)=>m.jsx("select",{ref:r,className:o("select-base",e==="sm"&&"select-sm",s),...a,children:t}));l.displayName="Select";export{l as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{H as e,j as t,N as r}from"./index-
|
|
1
|
+
import{H as e,j as t,N as r}from"./index-B0gQkEg0.js";import{l as s}from"./view-state-83Z1gFME.js";const i=()=>{const[a]=e();return t.jsx(r,{to:s(a),replace:!0})};export{i as SelectorDetailRedirect,i as default};
|
package/lib/public/assets/{selector-health-page-B4rA1Xkv.js → selector-health-page-MSk96Zz7.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as ae,p as ne,r as d,j as t,A as fe,v as re,z as ve,w as ge,t as le,X as I,e as be,H as ye,b as je,Q as Ne}from"./index-
|
|
1
|
+
import{c as ae,p as ne,r as d,j as t,A as fe,v as re,z as ve,w as ge,t as le,X as I,e as be,H as ye,b as je,Q as Ne}from"./index-B0gQkEg0.js";import{P as Se}from"./page-header-D8KUX6Qg.js";import{a as ke}from"./SegmentedControl-C9o90KId.js";import{B as N}from"./button-DDau4Axv.js";import{S as we}from"./stat-tile-Duex-GZD.js";import{L as ie,n as Ce,C as Ae}from"./line-chart-BcWm2vW8.js";import{E as $e}from"./EmptyState-7hETKEWb.js";import{I as Me}from"./input-DIc4MSC7.js";import{S as H}from"./select-BWpnhWXj.js";import{s as _,r as Y,w as Ee,P as Te,b as _e}from"./view-state-83Z1gFME.js";import{p as Le}from"./labels-C21SA4JG.js";import{M as R}from"./Modal-C6WjZFeI.js";import{C as Ie}from"./check-K1ovTQam.js";import{C as oe}from"./copy-t0QB14JI.js";import"./utils-CDN07tui.js";import"./index-72oF89LJ.js";/**
|
|
2
2
|
* @license lucide-react v0.555.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|